{# Layout JSON embedded as a data island (#635) #}
{% if workspace.purpose %}

{{ workspace.purpose }}

{% endif %} {% if workspace.context_options_url %}
{% endif %} {# ── Toolbar ── #}
{# Reset button #} {# Save button — reflects saveState #}
{# ── Card Grid ── #} {# Pointer drag/resize listeners are registered imperatively in the dashboard Alpine component's init()/destroy() (same lifecycle pattern used by dzTable for issue #795) — using @.window here leaks the listener across HTMX morph navigations and throws ReferenceError on the next pointer event. #}
{# ── Add Card ── #}
{% include 'workspace/_card_picker.html' %}
{# Detail drawer (preserved unchanged) #}