Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Filament Toggle Icon Column Laravel Package

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.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

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:

  1. The plugin is not merely consuming Filament's public PHP API; it is compensating for a styling path Filament core does not expose. That is a coupling to Filament internals (class names, CSS variable names, light/dark token semantics) with no documented contract behind it. Filament minor or major releases can rename or rescope those tokens and regress colours silently — the failure mode is grey icons, not an exception.
  2. The fix arrived in a patch release, which suggests the colour API shipped in 1.0.0 without visual verification, and that test coverage may not include rendered-output assertions. Worth confirming whether a workbench demo (newly added) is backed by automated tests or is illustrative only.

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:

  • High: CSS/token coupling to Filament internals; risk scales directly with how actively you track Filament majors.
  • Medium: Missing or stale published assets in production produce a confusing, silent visual regression attributable to your team, not the vendor.
  • Medium: Package maturity and bus factor — a v1.0.x line with a follow-up patch this quickly usually indicates a single maintainer and thin test surface.
  • Low: Runtime performance; a toggle column adds negligible cost.
  • Low: Authorisation and data integrity, provided the plugin delegates writes to Filament/Livewire and respects policies. Must be verified — a column that mutates state outside the policy layer would be an immediate disqualifier.

Key questions for the maintainer (or the spike).

  • Which Filament major/minor versions are supported and tested? Is v3 and v4 both covered, given the token differences between them?
  • Does the stylesheet depend on Filament internal CSS variables that are not part of a published contract? Is there a fallback colour if --text/--dark-text are absent?
  • Is php artisan filament:assets mandatory on every deploy, and is that stated in the upgrade guide?
  • Does the toggle route through Filament's policy/authorisation layer, and does it support optimistic UI with Livewire re-render (colour updating without a full page refresh)?
  • What test coverage exists for rendered markup, and are the workbench demo and screenshots produced from CI or manually?
  • Are translations community-maintained, and what is the process for copy review?

Integration Approach

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:

  • From a custom action-plus-icon-column stopgap: replace the paired 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).
  • From plugin 1.0.0 to 1.0.1: 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.

  1. Composer install and a local filament:assets run; confirm colour renders in light and dark, on a Filament version identical to production.
  2. Verify authorisation and that the toggle persists correctly under Livewire, including concurrent-edit and validation-failure paths.
  3. Add the workbench demo to your demo/staging environment for stakeholder sign-off on tooltip copy and colour semantics — the copy is now product-visible text ("On. Click to turn off.") and may conflict with house style.
  4. Confirm the asset-publish step is encoded in the deploy pipeline, not a wiki page, before staging.
  5. Ship behind the existing panel; no feature flag needed at this blast radius, but schedule outside a change freeze given the visual change.

Decision. Recommend adopt for internal/admin panels with the asset step automated, conditional for customer-facing panels pending the authorisation and dark-mode verification.

Operational Impact

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.

  • Published assets absent or stale after deploy → icons render grey, indistinguishable from the 1.0.0 bug (most likely failure).
  • Filament renames or rescopes --text/--dark-text → silent colour regression, no error surfaced.
  • Dark-mode-only inconsistency, particularly if your panel overrides Filament's colour tokens via a custom theme.
  • Toggle not honouring policies or optimistic UI not re-rendering colour after state change.
  • Translation drift as tooltip copy changes propagate unevenly across locales.

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.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator
equipc/laravel-email-database-log
adedsec/nova-translated-labels