jacobtims/inline-date-time-picker
JacobTims Inline Date Time Picker provides a convenient inline date and time selection component for Laravel applications. It lets users choose dates and times directly within the page, avoiding popovers or modals, and integrates cleanly into forms for booking, scheduling, and event workflows.
Architecture fit: This is a Filament form-field plugin — it extends Filament's form component layer with an inline date/time picker (Livewire + Alpine driven UI). Architectural footprint is narrow and additive: register the plugin on a PanelProvider, publish assets, use the field in resources/forms. It does not touch auth, persistence, routing, or queues, so blast radius is contained to the panels that opt in. Of the three items in v2.1.0, only "Add Filament 5 support" is architecturally meaningful; the tar bumps are npm dev-dependency hygiene in the asset build pipeline and do not change the PHP runtime artifact unless assets are rebuilt.
Integration feasibility: High, conditional on our Filament version. The critical unknown is whether 2.1.0 widens constraints to include Filament 5 while retaining Filament 3/4, or effectively moves to Filament 5-only. The changelog line is a single sentence with no constraint detail and no mention of dropped majors. Semver at v2.x implies non-breaking, but "support for a new major" is exactly the class of release where maintainers quietly narrow the old range. Verify against composer.json, not the release note.
Technical risk:
Key questions: Does 2.1.0 retain Filament 3/4 constraints or narrow them? What are the PHP and Livewire floors, and do they match ours? Are published assets versioned such that an upgrade requires re-publishing (cache-busting)? Is there a test suite running across multiple Filament majors? What is the timezone/DST behavior on round-trip to Eloquent casts? Any known issues with SPA mode, dark mode, or panel-level theming?
Stack fit: Direct fit for a Laravel + Filament panel application. It is a drop-in form component, not an infrastructure dependency — no new services, storage, or background workers. If Filament is confined to one back-office panel, integration is scoped to that panel.
Migration path: Require ^2.1, register the plugin in the relevant PanelProvider, publish assets per the package's documented mechanism, then swap a single existing DateTimePicker field for the inline variant behind a feature flag. Rollback is a one-line composer constraint revert plus asset cleanup — cheap and reversible. If we are on Filament 4 today, the correct move is to pin ^2.0.1 and defer: this release changes nothing for us. If a Filament 5 upgrade is on the roadmap, 2.1.0 is a prerequisite unblocker and should be sequenced into that upgrade branch, not merged to main independently.
Compatibility: First action is a constraint audit of the package's composer.json against our locked Filament, Livewire, and PHP versions. Second is confirming our deploy handles published vendor assets correctly (compiled assets, CDN, cache-busting) — a stale asset is the most common silent breakage for Filament plugins.
Sequencing: (1) constraint audit against composer.lock; (2) spike the field on one staging resource; (3) UX parity check — keyboard entry, timezone display, validation messaging, mobile; (4) fold into the Filament 5 upgrade branch if that work is scheduled, otherwise hold; (5) broaden adoption only after the date/time semantics QA passes.
Maintenance: Low steady state — no migrations, no runtime services, no cron. Cost is lumpy and concentrated at Filament major upgrades, when we must wait on a compatible package release. Budget a recurring review task each Filament cycle rather than assuming continuous availability.
Support: Single-maintainer open source with no vendor SLA and no commercial backing. The realistic mitigation, if a blocking bug appears, is a fork (the surface is small — a form component and its JS) or a fallback to Filament's native DateTimePicker. Decide who owns that contingency before adoption, not after an incident.
Scaling: Negligible. The component is client-side rendering plus one form field; server-side cost is indistinguishable from the native picker at any realistic admin-panel volume.
Failure modes: (a) Filament major upgrade lands and the package lags — either the field breaks or the upgrade is blocked; (b) assets unpublished or stale after deploy — picker renders unstyled or inert; (c) Livewire/Alpine drift causing silent hydration failure with no console-visible error; (d) timezone/DST round-trip producing off-by-one-hour stored values — highest severity because it is data-affecting and quiet; (e) upstream abandonment, mitigated by the fork option above.
Ramp-up: Hours for a developer already fluent in Filament; the API intentionally mirrors the native field. The genuine investment is QA of date/time semantics across timezones and locales, not learning the package.
How can I help you explore Laravel packages today?