PackageTrack
Sign in Get early access

malzariey/filament-daterangepicker-filter

This package uses daterangepciker library to filter date by a range or predefined date ranges (Today , Yesterday ...etc)

5.0.7 2.7M downloads/mo #1845 most downloaded on Packagist malzariey/filament-daterangepicker-filter

What this package is like to depend on

Last release 5 days ago

18 Aug 2026

Release timing varies

gaps range from 8 days to 5 months

Rarely documented

notes for 9 of 82 stable releases

Nothing withdrawn

no release was ever pulled

3 years old

82 releases · first in 2023

16 releases in the last 12 months

see the full history below

Release timeline

81 releases · Mar 2023 to Aug 2026
2024 2025 2026
Release Pre-release

Releases

latest 60 of 82
  1. 5.0.7 18 Aug 2026
    Release notes

    Fixed — date filters silently dropped rows when a display timezone was set

    getSystemTimezone() returned FilamentTimezone::get(). That is Filament's display timezone — core reads it for date-time columns, entries and pickers, and it falls back to config('app.timezone') when unset. The timezone a column is stored in is config('app.timezone'), which is what Eloquent writes with.

    While nobody calls FilamentTimezone::set() the two resolve to the same value and nothing is wrong. The moment somebody sets it — the documented way to show local times over UTC storage — the conversion in apply() became a no-op: input and system resolved to the same zone, so the parsed dates kept their local offset, and Laravel binds them with format(), which does not convert. Local wall-clock then reached the query against UTC data.

    Measured on a UTC column with the display set to Asia/Riyadh, filtering a single day:

    bindings    2026-08-18 00:00:00  /  2026-08-18 23:59:59   (+03 wall-clock)
    row stored  2026-08-17 22:00:00                            (01:00 that morning in Riyadh)
    returned    excluded
    

    Every row falling in the first hours of a local day was filed under the day before — silently, which is the worst way for a date filter to be wrong.

    The change

    • getTimezone() now defaults to FilamentTimezone::get() — the zone the dates on screen are written in.
    • getSystemTimezone() now returns config('app.timezone') — the zone the column is stored in.

    This matches what Filament's own DateTimePicker does.

    Upgrading

    No action needed, and nothing changes for you unless you call FilamentTimezone::set(). When it is unset it returns config('app.timezone'), so both getters resolve exactly as before.

    FilamentTimezone 5.0.6 5.0.7
    unset (default) input=UTC, storage=UTC identical
    Asia/Riyadh, UTC column input=Riyadh, storage=Riyadh — wrong input=Riyadh, storage=UTC — correct

    New systemTimezone() setter, for a column genuinely stored outside the application timezone:

    DateRangeFilter::make('created_at')->systemTimezone('Asia/Riyadh');

    Covered by tests/TimezoneSeparationTest.php — five tests, four of which fail without the fix.

    Open source →
  2. 5.0.6 11 Jun 2026
    Release notes

    What's Changed

    • Bump shell-quote from 1.8.3 to 1.8.4 in the npm_and_yarn group across 1 directory by @dependabot[bot] in #242
    • fix Romanian translations by @andreiio in #241

    Full Changelog: 5.0.5...5.0.6

    Open source →
  3. 5.0.5 08 Jun 2026

    Nothing published for this version

  4. 5.0.4 08 Jun 2026
    Release notes

    Month picker manual input stability

    This patch release completes the editable month picker work and fixes the input-mask crash found while testing the demo environment.

    Fixed

    • Month/year picker manual input no longer uses IMask's day-date mask for month-only or year-only formats.
    • Typing partial short-year values such as 01/22 in monthPicker()->singleCalendar()->allowInput()->format('m/Y') no longer causes a maximum call stack error.
    • Invalid partial month input stays non-destructive: the previous valid state remains selected until the user enters a complete valid value or clears the field.
    • The month picker header avoids stale bundled-JS Alpine references while keeping direct year editing and year navigation.

    Demo

    • Added a Workbench demo field for the exact manual-input configuration:
      monthPicker()->singleCalendar()->allowInput()->format('m/Y')

    Verification

    • npm test: 116 passed
    • npm run build: passed, rebuilt dist assets
    • composer test: 148 passed
    • php -l workbench/app/Filament/Pages/DemoPage.php: passed
    Open source →
  5. 5.0.3 08 Jun 2026
    Release notes

    Fix month picker year input rendering.

    • Replace the month picker header year select with a compact numeric year input.
    • Keep the active year visible and stable in the popup header.
    • Clamp out-of-range typed years back to configured min/max constraints.
    • Rebuild dist assets.

    Verification:

    • npm test: 115 passed
    • npm run build: passed
    • composer test: 148 passed
    Open source →
  6. 5.0.2 08 Jun 2026
    Release notes

    Summary

    Patch release for month picker editing and keyboard handling fixes.

    Fixed

    • Fixed month picker manual input Enter handling so typed month values are parsed and applied before keyboard confirmation logic.
    • Fixed month/year picker Enter behavior so non-day pickers do not call day-selection code.
    • Fixed invalid partial manual input overwriting the previous valid month picker state.

    Added

    • Added a direct year select control in the month picker popup header.
    • Added month picker year option constraints based on existing minYear, maxYear, minDate, and maxDate configuration.

    Compatibility

    • No PHP public API changes.
    • Existing day picker Enter behavior remains unchanged.
    • showDropdowns() day picker behavior remains unchanged.
    • Built dist assets are included.

    Verification

    • npm test: 4 test files passed, 114 tests passed.
    • npm run build: completed successfully and regenerated dist assets.
    • composer test: 148 tests passed, 213 assertions.

    Pull Request

    Open source →
  7. 5.0.1 02 Apr 2026
    Release notes

    What's Changed

    • Bump dependabot/fetch-metadata from 2.5.0 to 3.0.0 by @dependabot[bot] in #232
    • Fix timed preset matching in DateRangePicker (active range + range labels) by @bendbot

    Full Changelog: 5.0.0...5.0.1

    Open source →
  8. 5.0.0 02 Apr 2026
    Release notes

    🚀 v5.0 — Complete Rewrite: Alpine.js + Day.js

    A ground-up rewrite replacing jQuery & Moment.js with a native Alpine.js component powered by Day.js.

    This is a major release with breaking changes. The entire frontend has been rebuilt from scratch for better performance, smaller bundle size, and seamless Filament v4/v5 integration.


    ✨ What's New

    Architecture

    • Alpine.js Native — No more jQuery dependency. The picker is a first-class Alpine.js component with full Livewire reactivity.
    • Day.js — Replaced Moment.js (330KB) with Day.js (7KB) for date manipulation. ~97% smaller.
    • Floating UI — Replaced manual positioning with @floating-ui/dom for robust dropdown placement that handles scroll, resize, and viewport edges automatically.
    • IMask.js — Integrated input masking for precise manual date entry with auto-padding and block navigation.

    New Features

    • 🗓️ Month Picker->monthPicker() for selecting month ranges
    • 📅 Year Picker->yearPicker() for selecting year ranges
    • ⌨️ Manual Input->allowInput() enables typed date entry with format-aware masking
    • 🎯 Teleport->teleport() (enabled by default) moves the dropdown to <body>, solving z-index issues in modals and slide-overs
    • Keyboard Navigation — Full arrow key, Home/End, PageUp/PageDown, Enter/Escape support
    • 🔗 Dual State Fields->dualState('start_field', 'end_field') syncs to two separate Livewire properties
    • 📝 PHP Format Tokens->format('Y-m-d') uses PHP Carbon tokens. The package auto-converts to Day.js tokens for the frontend.
    • 🌍 32 Bundled Locales — All locales are statically imported and work without async loading: ar, cs, da, de, el, es, fa, fr, he, hu, id, it, ko, ku, lt, lv, nb, nl, pl, pt, pt-br, ro, ru, sk, sl, tr, uk, uz, vi, zh-cn, zh-tw

    Performance & Quality

    • Synchronous Init — No more async init(). Locales are bundled, eliminating runtime import latency.
    • 🧹 Static Format Map — PHP→Day.js format conversion uses a static class constant instead of rebuilding on every call.
    • 🎯 Strict Comparisons — All ==/!= replaced with ===/!== across the codebase.
    • 🧪 148 Tests — Comprehensive Pest test suite covering fields, filters, formats, Livewire integration, and default presets.

    💥 Breaking Changes

    Dependencies Removed

    Removed Replaced By
    jquery Alpine.js (bundled with Filament)
    moment / moment-timezone dayjs ^1.11
    daterangepicker (jQuery plugin) Native Alpine.js component

    API Changes

    Format Method

    - ->displayFormat('DD/MM/YYYY')  // Day.js tokens (still works, deprecated)
    + ->format('d/m/Y')              // PHP Carbon tokens (recommended)

    Deprecated Methods

    These methods still work but will be removed in a future version:

    Deprecated Use Instead
    ->displayFormat('DD/MM/YYYY') ->format('d/m/Y')
    ->setTimePickerOption(true) ->timePicker()
    ->setTimePickerIncrementOption(15) ->timePickerIncrement(15)
    ->setTimePicker24HourOption(true) ->timePicker24()
    ->setTimePickerSecondOption(true) ->timePickerSecond()
    ->setAutoApplyOption(true) ->autoApply()

    Filament Version

    • Requires Filament v4.0+ or Filament v5.0+
    • Uses Filament\Support\Facades\FilamentTimezone for system timezone

    📋 Migration Guide

    1. Update Dependencies

    composer require malzariey/filament-daterangepicker-filter:^5.0

    2. Remove jQuery/Moment Assets

    If you were manually including jQuery or Moment.js for this package, remove them — they're no longer needed.

    3. Update Format Calls

    // Before (v4)
    DateRangePicker::make('range')->displayFormat('DD/MM/YYYY');
    
    // After (v5) — use PHP Carbon tokens
    DateRangePicker::make('range')->format('d/m/Y');

    4. New Features (Optional)

    // Month picker
    DateRangePicker::make('month_range')->monthPicker();
    
    // Year picker
    DateRangePicker::make('year_range')->yearPicker();
    
    // Manual input with masking
    DateRangePicker::make('range')->allowInput();
    
    // Dual state (sync to two separate properties)
    DateRangePicker::make('range')->dualState('start_date', 'end_date');

    📦 Requirements

    Requirement Version
    PHP ^8.1
    Laravel ^10.0 | ^11.0 | ^12.0 | ^13.0
    Filament ^4.0 | ^5.0

    Runtime JS Dependencies (bundled)

    Package Version Purpose
    dayjs ^1.11 Date manipulation
    @floating-ui/dom ^1.6 Dropdown positioning
    imask ^7.6 Input masking

    🙏 Contributors

    Thanks to all contributors who helped shape this release:


    Full Changelog: 4.0.9...5.0.0

    Open source →
  9. 4.0.9 22 Mar 2026
    Release notes

    What's Changed

    New Contributors

    Full Changelog: 4.0.8...4.0.9

    Open source →
  10. 4.0.8 24 Jan 2026

    Nothing published for this version

  11. 4.0.7 19 Jan 2026

    Nothing published for this version

  12. 4.0.6 14 Aug 2025

    Nothing published for this version

  13. 4.0.2 19 Jan 2026

    Nothing published for this version

  14. 4.0.1 19 Jan 2026

    Nothing published for this version

  15. 3.4.3 12 Jun 2025

    Nothing published for this version

  16. 3.4.2 29 May 2025

    Nothing published for this version

  17. 3.4.1 13 May 2025

    Nothing published for this version

  18. 3.4.0 10 May 2025

    Nothing published for this version

  19. 3.3.1 04 May 2025

    Nothing published for this version

  20. 3.3.0 06 Apr 2025

    Nothing published for this version

  21. 3.2.3 10 Mar 2025

    Nothing published for this version

  22. 3.2.2 10 Mar 2025

    Nothing published for this version

  23. 3.2.1 25 Feb 2025

    Nothing published for this version

  24. 3.2.0 03 Feb 2025

    Nothing published for this version

  25. 3.1.2 02 Jan 2025

    Nothing published for this version

  26. 3.1.1 30 Oct 2024

    Nothing published for this version

  27. 3.1.0 18 Oct 2024

    Nothing published for this version

  28. 3.0.5 01 Oct 2024

    Nothing published for this version

  29. 3.0.4 23 Aug 2024

    Nothing published for this version

  30. 3.0.3 14 Aug 2024

    Nothing published for this version

  31. 3.0.2 10 Aug 2024

    Nothing published for this version

  32. 3.0.1 08 Aug 2024

    Nothing published for this version

  33. 3.0.0 02 Aug 2024

    Nothing published for this version

  34. 2.8.0 01 Jul 2024

    Nothing published for this version

  35. 2.7.3 07 Jun 2024

    Nothing published for this version

  36. 2.7.2 04 Jun 2024

    Nothing published for this version

  37. 2.7.1 04 Jun 2024

    Nothing published for this version

  38. 2.7.0 04 Jun 2024

    Nothing published for this version

  39. 2.6.2 17 May 2024

    Nothing published for this version

  40. 2.6.1 27 Apr 2024

    Nothing published for this version

  41. 2.5.7 18 Apr 2024

    Nothing published for this version

  42. 2.5.6 16 Apr 2024

    Nothing published for this version

  43. 2.5.5 16 Apr 2024

    Nothing published for this version

  44. 2.5.4 16 Apr 2024

    Nothing published for this version

  45. 2.5.3 13 Apr 2024

    Nothing published for this version

  46. 2.5.2 11 Apr 2024

    Nothing published for this version

  47. 2.5.1 09 Apr 2024

    Nothing published for this version

  48. 2.4.1 16 Mar 2024

    Nothing published for this version

  49. 2.4.0 13 Mar 2024

    Nothing published for this version

  50. 2.3.1 25 Nov 2023

    Nothing published for this version

  51. 2.3.0 24 Oct 2023

    Nothing published for this version

  52. 2.2.3 10 Oct 2023

    Nothing published for this version

  53. 2.2.2 15 Sep 2023

    Nothing published for this version

  54. 2.2.1 15 Sep 2023

    Nothing published for this version

  55. 2.1.3 13 Sep 2023

    Nothing published for this version

  56. 2.1.2 29 Aug 2023

    Nothing published for this version

  57. 2.1.1 25 Aug 2023

    Nothing published for this version

  58. 1.3.2 24 Jun 2023

    Nothing published for this version

  59. 1.3.1 no date

    Nothing published for this version

  60. 1.2.1 25 May 2023

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive