Enhance a native <dialog data-hl-modal>. Opening and closing are fully
declarative through Invoker Commands: a button with command="show-modal"
and commandfor opens it, and a command="close" button inside closes it,
with no JavaScript. showModal() already provides the top layer, focus trap,
background inert, and ::backdrop; this enhancer only labels the dialog,
locks background scroll while open, and mirrors the native open/close into
onOpenChange/hl:open-change and the returned imperative API.
Enhance a native
<dialog data-hl-modal>. Opening and closing are fully declarative through Invoker Commands: a button withcommand="show-modal"andcommandforopens it, and acommand="close"button inside closes it, with no JavaScript.showModal()already provides the top layer, focus trap, backgroundinert, and::backdrop; this enhancer only labels the dialog, locks background scroll while open, and mirrors the native open/close intoonOpenChange/hl:open-changeand the returned imperative API.