{{-- Native modal — hidden by the browser until showModal(), so it can never "leak open" if CSS/JS is stale. Opened by a [data-modal="id"] trigger; closed by [data-modal-close], Esc, or backdrop click (admin.js). --}} @props(['id', 'title', 'icon' => 'fa-light fa-pen-to-square', 'eyebrow' => 'Amendment']) {{-- wire:ignore.self keeps the native dialog's open/modal state across Livewire re-renders (morphdom would otherwise drop the `open` attribute); the form inside still morphs, so inline validation updates live. --}}