doxa-maps/library/layouts
doxa-maps-88655c70 d5c283f474
Some checks are pending
build-gate / build (push) Waiting to run
Mobile drawer: an open rail sits above the plugin's own layers
On a phone, opening the studio's rail over the research dashboard left
the dashboard's filter row painted across the drawer. Mounted content
shares the drawer's stacking context, and the dashboard raises its
filter bar to z-index 55 while the drawer sat at 20.

While the drawer is open on a phone it now sits at z-index 1000: at
that moment it is the only thing you can use. Desktop and plugin modal
scrims keep their existing order. Checked at 390px on dashboard-plus-grid
in the studio: the drawer covers the dashboard completely. doxa-maps-spa
shares this layout and gets the same fix.
2026-09-25 03:47:16 +00:00
..
app-wrapper-material UPG-100: lead with Prayer Resources, map second 2026-09-23 20:33:00 +00:00
pane-wrapper Brand-neutral shared VerticalTabsLayout with lazy nested-element hosting; fix cap-5 prayer tab leaf path; neutralize library identifiers; add Forgejo CI build-gate workflow 2026-09-19 17:24:30 +00:00
README.md consolidate docs into documentation/ and deployment shells into deployment/ 2026-09-21 23:23:23 +00:00
StackLayout.vue Show the cap-4 composite in the studio's Simple Research slot 2026-09-23 23:26:40 +00:00
VerticalTabsLayout.vue Mobile drawer: an open rail sits above the plugin's own layers 2026-09-25 03:47:16 +00:00

layouts/ — app wrappers

Each folder here is an app wrapper: a host shell that composes doxa-maps plugin-designs (the independently-built custom elements) into one application.

  layouts/<wrapper>/          ← the HOST page (not a bundle)
  ┌──────────┬──────────────────────────────┐
  │ sidebar  │  mounts an app-profile here    │
  │ (nav.js) │  ┌──────────────┐              │
  │  ├ item  │  │ <doxa-map>    │  ← a         │
  │  ├ section│ │  (a bundle)   │    micro-    │
  │  └ folder │ └──────────────┘    frontend  │
  └──────────┴──────────────────────────────┘
  • app-profile = a self-contained custom element (the micro-frontend). app wrapper = the host that mounts them and provides nav/chrome. A wrapper is a host page, not a bundle-in-a-bundle.
  • Wrappers today: app-wrapper-material/, pane-wrapper/.
  • Icons are inline SVG only (no CDN) — an F-Droid/offline hard requirement.

Sidebar contract, target filtering, sidebar modes, staging: ../documentation/architecture/app-wrappers.md.