asignua/filament-toggle-icon-column
A Filament table column that renders a boolean value as a clickable icon, letting you toggle the state inline straight from the table row. Drop it into any Filament resource to replace clunky switches with a compact, customizable icon toggle with configurable colors.
Basis and confidence. No repository, composer.json, issue history, or test results were supplied — this evaluation is derived solely from the v1.0.1 release notes. Confidence is low-to-moderate; the release notes describe a Filament table icon-toggle column plugin (methods onColor(), offColor(), hoverColor() mirror Filament's IconColumn colour API), but version support, licence, and author are unverified. Treat the following as a screening assessment pending a 1–2 hour hands-on spike.
Architecture fit. The plugin is an additive UI component for a Filament panel: a boolean-state toggle rendered as a table icon. It requires no schema change, no new persistence layer, and no service provider wiring beyond Laravel package auto-discovery. That is the lowest-risk integration category available in the Filament ecosystem — it sits beside existing columns rather than between them and the model.
The colour fix is the most important signal. To make onColor()/offColor()/hoverColor() visible, the plugin now ships a stylesheet that applies Filament's --text / --dark-text CSS custom properties to its own markup, because Filament core only paints .fi-ta-icon > .fi-icon.fi-color. Two implications:
Integration feasibility. Straightforward: composer require, optional config publish, then php artisan filament:assets. The outstanding question is whether the shipped stylesheet is published via Filament's asset pipeline (making the filament:assets step mandatory) or loaded some other way — the notes imply the former. If so, this introduces a deploy-time step that is easy to omit in CI/CD, and the visible symptom of omission is identical to the original bug. Any upgrade runbook must include it.
Technical risk. Ranked:
Key questions for the maintainer (or the spike).
--text/--dark-text are absent?php artisan filament:assets mandatory on every deploy, and is that stated in the upgrade guide?Stack fit. Assumes Laravel 10/11/12, Livewire 3, Tailwind-based Filament panel. The plugin is a presentational table column over an existing boolean attribute — no migration, no queue, no external service. It integrates at the same layer as a stock IconColumn or ToggleColumn, so no architectural negotiation is required: if you already have a Filament resource table, this is a drop-in column.
Migration path. Two scenarios:
IconColumn + Action with the plugin column, then delete the now-dead action. Net code reduction, but verify the new column honours the same policy checks the old action did (->disabled()/->visible() equivalents).composer update, then php artisan filament:assets, then the standard Filament/Laravel cache clears (optimize:clear or equivalent) in the correct order for your pipeline. No breaking changes are announced — this is a patch, and tooltip copy changes are cosmetic. Colours will change in appearance (grey → intended colour), which is the fix but will look like an unexpected UI change to end users; call it out in release notes.Compatibility. Pin to a caret range and record the Filament constraint explicitly in the ADR. Test against the exact Filament version in use, not latest. Dark mode needs separate verification — the release notes claim both, but token behaviour differs and this is precisely where the 1.0.0 bug lived. Check RTL and any non-Latin locale rendering while the tooltip wording is also changing.
Sequencing.
filament:assets run; confirm colour renders in light and dark, on a Filament version identical to production.Decision. Recommend adopt for internal/admin panels with the asset step automated, conditional for customer-facing panels pending the authorisation and dark-mode verification.
Maintenance. Low code surface, but the dependency profile is the real cost: an actively churning Filament target plus a plugin that reaches into Filament's styling internals means every Filament upgrade requires a visual regression check of these specific icons. Budget for that explicitly in quarterly upgrade work; it is minutes per cycle, but only if someone remembers. Single-maintainer risk is real — assume you may need to fork or vendor the stylesheet.
Support. The turn-around from 1.0.0 to 1.0.1 for a visible defect is a positive responsiveness signal, and the maintainer documented the remedy rather than silently patching. The downside is that the defect shipped at all, and the fix is one your team must apply manually. Expect support tickets of the form "the toggle is grey again," almost always caused by unpublished assets or a Filament upgrade. Add the symptom and remedy to your internal runbook so first-line support can resolve it without escalation.
Scaling. Negligible: one small stylesheet per panel load and no additional queries. Two considerations as usage grows — (a) the stylesheet is loaded panel-wide even where no such column exists, so on a large multi-resource panel it is a small constant cost, not a per-row one; (b) the column is per-row UI, so tables large enough to need pagination will not see throughput impact. No action needed below a few hundred admin users.
Failure modes to monitor.
--text/--dark-text → silent colour regression, no error surfaced.Ramp-up. Under an hour for a developer already fluent in Filament resource tables; a few hours otherwise, almost all of it learning Filament column conventions rather than this package. Non-technical stakeholders need only the two-line summary: it makes a boolean editable directly from the table, and one deploy command must run with every update. Recommended owner: the developer who owns the admin panel, with the deploy checklist item as the single durable artefact from this evaluation.
How can I help you explore Laravel packages today?