asimnet/filament-ummulqura-date-picker
An Umm al-Qura (Hijri) date picker field for Filament forms and tables. Add drop-in Hijri date selection and display to your Laravel admin panels, with locale-aware formatting that works alongside Gregorian dates.
composer require asimnet/filament-ummulqura-date-picker:^1.2. Since v1.2.2 the package's own composer.json declares https://repo.schemava.dev/r/public (Packistry) as a composer-type repository so the backend dependency asimnet/ummulqura-calendar:^1.1 resolves. Packagist stays enabled for filament/forms, spatie/laravel-package-tools, and dev tooling — don't disable it.repo.schemava.dev is a private Composer repo; a bare composer require on a clean machine will fail with a 404/auth error before you ever see the package. Ask the maintainer for a token and set it once:
composer config --global http-basic.repo.schemava.dev <token> <token>
# or, for CI:
export COMPOSER_AUTH='{"http-basic":{"repo.schemava.dev":{"username":"token","password":"<token>"}}}'
composer show asimnet/ummulqura-calendar should report 1.1.0 and composer update -vvv should show it being served by repo.schemava.dev, not Packagist.src/ for the Filament field class and the tests/ directory (13 tests as of this release) — the tests are the most reliable usage documentation for the conversion and formatting API. Check composer.json for the supported Filament major version before assuming a v3 example works on v4.$table->date('hijri_date') or similar), and let the package/backing calendar handle conversion. Add the field, submit, and verify the stored value round-trips through the display format before wiring it into filters or tables.date/datetime and convert at the edges (form field display, table column, exports). Storing Hijri strings makes ordering, whereBetween, and timezone handling painful and locks you to one conversion library.asimnet/ummulqura-calendar, not the frontend. When you need a value outside the form field — table columns, PDF exports, API resources, scheduled reports — call the backend calendar's conversion helpers directly rather than re-implementing Umm al-Qura arithmetic or trusting JS.TextColumn::make('starts_at')
->formatStateUsing(fn ($state) => $calendar->toHijri($state)->format('Y-m-d'))
Keep the raw Gregorian value as the sortable/searchable state.after_or_equal run against whatever the field dehydrates. Either dehydrate to Gregorian via ->dehydrateStateUsing(...) and validate the Gregorian value, or express the comparison in Hijri. Mixing the two silently passes/fails near month boundaries.^1.2 and commit composer.lock. Don't float on * — the ^1.1 backend constraint is resolved transitively and a lockfile is your only guarantee that every environment gets the same conversion behaviour.asimnet/ummulqura-calendar:^1.1), so it's a safe patch — but any composer install/update on a machine without credentials now fails. Expect a wave of "it worked yesterday" tickets from CI runners, new hires, and Docker builds that previously had a warm vendor/ cache. Bake COMPOSER_AUTH into CI secrets and document it in onboarding."packagist.org": false in an effort to "use the private repo only" — you'll lose filament/forms, spatie/laravel-package-tools, and all dev tooling.composer.json declares a mirror, Satis, or a canonical repo that also carries asimnet/ummulqura-calendar, resolution can come from the wrong source with a different build. Verify with composer why asimnet/ummulqura-calendar and composer update -vvv after any infra change.http-basic (not bearer) unless the maintainer says otherwise. Auth failures surface as generic 404s — check composer diagnose before assuming the package is gone.Carbon in the app timezone (or explicitly UTC) and be deliberate about it. A Hijri date derived from a UTC timestamp can be off by a day for users east/west of you — a classic off-by-one that only shows up in production near midnight.composer diagnose → composer show asimnet/ummulqura-calendar (expect 1.1.0) → composer update -vvv (confirm which repo served it) → re-run the package's tests → then look at your own formatting code. In that order.vendor/ — the private-repo workflow makes forks and patch files expensive to maintain across updates.How can I help you explore Laravel packages today?