{% comment %}A panel that slides in from any edge. The default slot holds the trigger
(open it with @click="drawerOpen = true"); the body goes in `content`, optional actions
in the `footer` slot. The open state is exposed via x-modelable so a parent can drive it
with x-model. `side` (right/left/top/bottom), `size` (sm-2xl), `title`/`description`,
`:dismissible` (overlay/Escape close), `:close_button`. Traps focus and locks body scroll
while open (requires the Alpine focus plugin).{% endcomment %}