ptplugins/filament-auto-filters
Filament Auto Filters automatically generates table filters for Filament resources, reducing boilerplate and keeping admin panels consistent. Configure filters with minimal setup and give users faster, more intuitive ways to narrow down records.
12.50 => "$12.50", pending_review => "Pending review", plan tiers in lifecycle order rather than alphabetical. This is a shippable UX improvement, not just a developer convenience.distinct_max_options still applies to the mapped format, so allowing rich labels doesn't open a new path to unbounded dropdowns. No new capacity or infra review is triggered by adopting the feature.Consider it when:
distinctOptionsUsing) rather than per-endpoint formatting code, so label behavior stays consistent across screens.Look elsewhere when:
Specific caution for 1.4.1: switching an option list from the flat format to the associative format silently drops blank values. If any legitimate option is represented by an empty string (e.g. an "unassigned"/"not set" bucket), that filter choice will disappear from the UI when you migrate to the map. Treat that as a product behavior change to QA on each list you convert, and decide whether "not set" needs a placeholder value rather than blank. Second, the map's order and labels are now yours to maintain — label drift (a renamed status, a stale currency format) becomes a product-owned defect rather than something the package normalizes for you.
For executives: A routine, additive patch to a dependency we use to generate filter options. It lets our filter dropdowns show human-readable, correctly formatted, deliberately ordered choices — dollar amounts instead of 12.5, "Pending review" instead of pending_review, pipeline stages in workflow order — without new backend work. No breaking changes, no migration, no added infrastructure; the existing cap on option counts still protects performance. Cost is a small amount of configuration plus QA on the specific filters we convert.
For engineering: Version 1.4.1 lets distinctOptionsUsing return an associative value => label map. Order and labels pass through untouched, blank values are discarded, and distinct_max_options is still enforced; returning a flat list preserves the current behavior exactly. Adoption is opt-in per option list, so we can convert filters incrementally and roll back one at a time. Two things to watch in review: (1) blank-valued options are dropped in map mode — confirm no "unset" facet is lost, and (2) labels and ordering are now our responsibility to keep accurate. Recommend converting the highest-traffic filters first and adding a test per converted list asserting the expected key/label pairs.
How can I help you explore Laravel packages today?