andisiahaan/livewire-dialog
A Laravel Livewire package for building accessible, customizable modal dialogs with minimal JavaScript. It simplifies opening, closing, and managing dialog state directly from Livewire components.
<livewire:dialog> component — a "buy" decision that frees a small slice of one sprint rather than committing a team to a capability.Adopt when:
aria-modal, screen-reader announcements) against your own checklist rather than trusting the README.Look elsewhere when:
For executives: this is a single MIT-licensed composer dependency that saves roughly one to two engineer-days of hand-built JavaScript per adoption site. It is a convenience utility, not a platform commitment, and the decision is reversible: it is small enough to vendor and fork, so the exit cost is a day's work rather than a migration. The honest caveat is maturity — zero stars, zero dependents, and a single maintainer mean we should treat it as a vendored helper rather than a strategic dependency, keep it off our most critical customer flows for now, and name our fallback (a hand-rolled Blade dialog or a design-system modal) up front.
For engineering: the integration surface is deliberately tiny — one Blade component, Livewire state/events for open and close, and slot-based content with no hand-wired JavaScript. That keeps markup declarative and dialogs in sync with component state. Before adopting, run a time-boxed spike to (1) confirm Livewire/Laravel version compatibility, (2) audit focus-trap and screen-reader behavior against our accessibility checklist, and (3) wrap the package behind our own <x-app.dialog> component so the underlying implementation stays swappable. Given the project's youth, pin the version, vendor it if we ship it broadly, and treat any upstream breakage as something we own rather than something we wait on.
How can I help you explore Laravel packages today?