MailglassAdmin.GalleryLive (MailglassAdmin v1.7.0)

Copy Markdown View Source

Dev-only component gallery at /dev/mail/gallery.

Renders every shared component × every state × both themes side-by-side from an in-code specimen list. No DB access. No mailable scan. No preview_session assigns.

Each specimen cell is anchored with a stable data-testid="gallery-{component}-{state}" and contains twin data-theme="mailglass-light" and data-theme="mailglass-dark" wrappers so a single structural assertion covers both themes.

Route: /dev/mail/gallery (mounted inside the preview live_session — dev-only by the adopter's if dev_routes wrapping).

Coverage

STATE-LD-01: icon STATE-LD-02: logo STATE-LD-03: flash (error, info, success, warning kinds) STATE-LD-04: badge (warning, stub) STATE-LD-05: status_badge (22 atoms + phantom nil) STATE-LD-06: nav_link, nav_pill (active, inactive) STATE-LD-07: tenant_chip (with-tenant, no-tenant) STATE-LD-08: theme_toggle (light-mode, dark-mode) STATE-LD-09: orientation_strip (deliveries, inbound, preview) STATE-LD-10: shell is the full page layout — not a gallery specimen STATE-LD-11: deliveries_list (populated-unselected, populated-selected, empty) STATE-LD-12: detail_header (shown, absent) — operator variant only STATE-LD-13: filters_form (empty, filled) — static assigns, no phx-submit STATE-LD-14: support_cards (tier1-shown, tier1-hidden) STATE-LD-15: suppression_card (present, absent) STATE-LD-16: timeline (populated, highlighted-event, empty) STATE-LD-17: replay_modal (closed) — open states require live event STATE-LD-18: routing_trace (empty, all-passing, first-failing) STATE-LD-19: evidence_card (no-evidence, redacted, revealed, denied) STATE-LD-20: device_frame (inactive-btn) STATE-LD-21: tabs (inactive-tab) STATE-LD-22: sidebar (mailable-collapsed, mailable-expanded, scenario-active)

Boundary classification: submodule auto-classifies into the MailglassAdmin root boundary.