phattarachai/filament-thai-date-picker
A Filament PHP form field that adds a Thai Buddhist calendar date picker to your admin panels. Users pick dates in Thai format while values are converted to and from standard Gregorian dates for storage, making Thai-localized Filament apps simple to build.
Architecture fit. phattarachai/filament-thai-date-picker is a thin presentation-layer extension for Filament form fields, adding Buddhist Era (BE) year rendering and Thai-localized date/time picking. It carries no persistence, queue, or service-layer concerns — it formats and captures a value that Laravel/Filament already stores. That keeps the blast radius small and makes it a low-ceremony fit for any Filament panel serving Thai users.
What changed in v4.1.0.
filament/forms >= 5.10.1. Projects on older Filament 5 must remain on 4.0.x. This converts the package from "drop-in" to a coupled dependency on Filament's minor version line.displayFormat() now honours BE years (e.g. 11 ตุลาคม 2569). Defaults unchanged (j M y, j M y H:i), so existing rendering is not silently altered — a good backward-compatibility signal.->date(false)) plus date limits now sync correctly with Filament 5.10.1.Integration feasibility. Composer-level only. No migrations, no config publishing required for basic use, no data model impact. The realistic friction is sequencing: we cannot take 4.1.0 without first being on Filament 5.10.1+, and we cannot stay on 4.0.x indefinitely if 4.1.x becomes the maintained line.
Technical risk.
>= 5.10.1 floor means a Filament security/bugfix release could force a simultaneous package bump, or conversely a package bump could force a Filament upgrade outside our cadence.Key questions.
Stack fit. Laravel + Filament v5 admin panels, Composer-managed. Fits cleanly as a form-field dependency with no architectural concessions. Best suited to internal admin/back-office panels where Thai date entry is a usability requirement rather than a public-facing concern.
Migration path (4.0.2 → 4.1.0).
filament/forms versions across all panels and any shared internal packages.composer why-not filament/forms 5.10.1-style checks to surface constraint conflicts early.displayFormat() for BE output — as a deliberate, per-field opt-in, not a global default change.Compatibility.
Sequencing recommendation.
displayFormat() per field where BE output is explicitly wanted; leave defaults alone to minimise diff surface.Maintenance. Net improvement — removing the forked Blade view means we no longer inherit a template that drifts from Filament's own. The cost moves from "template drift we can patch ourselves" to "internal-markup dependency we cannot patch without forking." Ongoing effort is a small, recurring regression-test tax on every Filament upgrade rather than sporadic larger fixes.
Support. Support burden is concentrated in two areas: Filament version-matrix questions ("why can't we install 4.1.0?") and BE formatting correctness reports ("the date shows 2569 but the export shows 2026"). The second is the more damaging class of ticket because it erodes trust in reported data. Document explicitly that BE formatting is presentation-only and enumerate everywhere dates are rendered outside this package.
Scaling. Effectively zero runtime cost — client-side widget behaviour and a formatting call. Scales with the number of Filament panels and form fields, not with traffic or data volume. No queue, cache, or storage implications. The real "scaling" constraint is organisational: every additional panel and every additional Filament upgrade multiplies the regression-test surface.
Failure modes.
Ramp-up. Low for any developer already fluent in Filament form schemas — it is a drop-in field with a familiar fluent API, and the unchanged defaults mean existing code needs no edits. The non-obvious skills are (a) Thai/BE correctness review, which needs a Thai-speaking reviewer in the QA loop, and (b) awareness that this is an internal-markup-dependent package, so "it renders" is not sufficient verification after a Filament upgrade. Budget roughly half a day of regression testing per Filament minor upgrade and a one-off day for the initial 5.10.1 + 4.1.0 adoption, including workaround cleanup.
How can I help you explore Laravel packages today?