{#- Vendored interaction stack (no CDN, no build step): htmx serves fragments, Alpine owns client state. All four load deferred and execute in this order before DOMContentLoaded: htmx core, its alpine-morph extension (defineExtension needs the htmx global), Alpine's morph plugin (registers Alpine.morph on alpine:init), Alpine core. -#}
{%- set shell_ctx = shell if shell is defined else none %} {%- set nav_sections = (shell_ctx.nav.sections if shell_ctx else none) or [] %} {%- set selector = (shell_ctx.selector if shell_ctx else none) %} {%- set palette = (shell_ctx.palette if shell_ctx else none) %}