github malzariey/filament-daterangepicker-filter 5.0.12
5.0.12 — every locale reads back, Escape in filter panels, and opt-in bound times

one hour ago

Fixed

Locales

  • Arabic noon and AM/PM — Arabic 12-hour pickers showed noon as ص (morning) and the AM/PM selects in English. Noon is now م, and the selects show ص / م.
  • Every formatted value reads back, in every locale — the picker couldn't read back some of its own text (Kurdish month names, 12-hour times in Kurdish, Russian, Korean and Chinese, weekday formats), so a stored value could show empty or wrong after a reload. All 33 bundled locales now round-trip.
  • Dual-state 12-hour fields store afternoon times in Arabic, Russian, Korean, Kurdish and Chinese, and calendar picks on an empty field are written in the page locale.
  • Dual-state storage is written in English — a storage format with names or AM/PM (A, MMMM) was written in the page locale (م, نوفمبر, утра), which Carbon cannot read. Values stored that way by older versions still load.
  • Greek and Norwegian load — Laravel and Filament use el and nb; the translations lived only under gr and no. Both pairs now ship as full copies, so published overrides of either keep working.
  • Weekday headers in Russian, Ukrainian and Lithuanian — Monday showed Friday's label and the header lost a column.

Picker

  • Escape inside Filament's filter panel closes only the picker — the first Escape closes the picker, a second closes the panel.
  • Space types a space in allowInput() fields — it used to pick the highlighted day and wipe what was typed. ArrowDown now opens a closed typed field.
  • Year-picker arrows respect minYear()/maxYear() and minDate()/maxDate(), and the day calendar's month arrows stop at the minDate/maxDate months.
  • An explicit placeholder() shows on allowInput() fields even when it equals the format hint (e.g. mm/yyyy).
  • An impossible time can't become "Invalid Date" — Apply stays disabled until the time is valid, and the last valid time is kept.
  • Dual-state ends cover the whole minute — with minutes but no seconds on screen, the end is stored at :59 (as the server already did for defaults).
  • Disabled dates are much faster in non-English locales (parsed once instead of on every calendar cell).

Formats

  • jS renders ordinals ("1st", "2nd"…) and e the timezone name, in the browser and on the server.
  • Unsupported PHP tokens (N, W, z, T, S not after j, t, L, B, I, Z, c, r) render as before and are now logged once a day as a warning naming the token. They will throw in 6.0.

Added

  • enforceBoundTimes() (opt-in) — with timePicker(), the bound days keep to the time of minDate()/maxDate(): out-of-range hours and minutes are disabled, presets and picks are clamped, typed values outside are rejected, and timed Carbon bounds are sent in the display timezone. Off by default, so existing fields behave exactly as in 5.0.11. Note: now() is fixed when the page renders.

Behaviour changes to note

  • In allowInput() fields, Space is a character and ArrowDown opens the picker.
  • Clearing still stores '' from the browser and null from the Clear button, as in 5.0.11; unifying on null is planned for 6.0.
  • A view published before 5.0.12 keeps the old placeholder behaviour until it is republished.

Upgrading

Run php artisan filament:assets after updating; the JS changed.

Don't miss a new filament-daterangepicker-filter release

NewReleases is sending notifications on new releases.