Fixed
- The table filter renders again on Filament 5.11.2 (#267) — Filament 5.11.2 builds filter forms through
getFormSchema(), which skipped the plugin's override, soDateRangeFiltershowed no input. The field is now built ingetFormField(), which every supported Filament version (4.x and 5.x) uses.->form()and->schema()still replace it. - Presets respect
minDate()andmaxDate()(#268) — a preset with no overlap with the allowed range is disabled. A preset that partly overlaps is clamped to the bounds. When several presets clamp to the same range, the one you clicked is the one highlighted and labelled. - Time selects keep focus inside Filament modals and slide-overs (#264) — the modal's focus trap no longer pulls focus out of the picker, so the native hour and minute pickers open on iOS. This only applies inside an open Filament modal; elsewhere, focus events behave as before.
- The package stylesheet no longer overrides the panel's font and grays (#263, thanks @benlumley and @wit3) — since 5.0.8 the lazy-loaded stylesheet shipped Tailwind's theme, preflight and generic utilities, which replaced the panel's font and gray palette on any page with a picker. The stylesheet is now scoped to
fi-daterangepicker-*classes, its grays follow Filament's--gray-*, and the open/close animation is kept. linkedCalendars(false)works — each day calendar now has its own arrows and navigates on its own. The default (linked) is unchanged.disableCustomRange()works — the field shows only its presets; one click applies a preset and closes the dropdown, and the presets are reachable with the arrow keys. Without presets the option is ignored, so the dropdown is never empty.- A manual-input field can be cleared from the keyboard — emptying the input (select all + Backspace) now clears the state, as the clear button does.
- Tabbing away closes the picker — focus leaving the picker closes it and cancels a pending selection, like an outside click. Before, two dropdowns could stay open on top of each other.
- Filter indicator dates stay in order in RTL locales — in Arabic, Hebrew, Persian and Kurdish the indicator showed the range reversed. The range is now wrapped in Unicode LTR isolation marks (U+2066 … U+2069) in RTL locales only.
Behaviour changes to note
->modifyFormFieldUsing()now applies toDateRangeFilter. Before, it was ignored.- On
allowInput()fields, calendar clicks and presets now wait for Apply, like every other field (unlessautoApply()). Before, a completed range was committed immediately and Cancel could not undo it. - Fields that already call
disableCustomRange()orlinkedCalendars(false)change layout: those options did nothing until now. - Tab away now fires
cancel.daterangepickerandhide.daterangepicker. - In RTL locales the indicator label contains the invisible U+2066/U+2069 marks; tests asserting the exact string need updating.
- Presets that ran past
maxDate(e.g. "This month" withmaxDate(now())) now stop atmaxDate. - The dropdown's grays are now Filament's neutral grays instead of Tailwind's blue-tinted ones.
Development
testbench.yamlis committed, so the workbench demo runs aftercomposer install.composer servepublishes the assets and starts the demo, andcomposer testpurges the Testbench skeleton first.- New
/demo/tablepage with a real table filter, plus demo cases for presets vs min/max dates and a modal with a nested modal. - Dependencies: actions/checkout 7, actions/setup-node 7, happy-dom 21, follow-redirects 1.16.3; the unused
@vue/test-utilsis removed (closes the minimatch advisory).
Upgrading
Run php artisan filament:assets after updating; the JS and CSS changed.