doxa-maps/library/layouts
Doxa Maps 2b342f8cbc Pane elements opt out of the viewport floor: --profile-min-h:0 on the pane mount
The root of the paint-over and of the keyboard regression rega's A/B found.
ProfileLoader's wrapper is min-height: var(--profile-min-h, 100dvh), and a
host that already sizes the element sets --profile-min-h:0 (the Gallery's
.dms-pane, VerticalTabs, plugin-studio). The pane column sizes each element
(inset:0 in its pane) but never set it, so on the standalone leaf each
pane's wrapper was 100dvh = 900 px inside an 843 px pane: the wall's
scroller ran 57 px past its pane, its first row's tapes painted over the
map, and Tab into those tapes scrolled the pane COLUMN (and, with the
clip, onto an invisible control). The Gallery was pane-sized only because
its own host set the variable. The clip stays as belt and braces.
2026-09-29 14:09:23 +00:00
..
app-wrapper-material The last library reference drops the speaker, and the baseline shrinks to what is left 2026-09-29 05:26:26 +00:00
pane-wrapper Pane elements opt out of the viewport floor: --profile-min-h:0 on the pane mount 2026-09-29 14:09:23 +00:00
README.md Move internal files out of the repo; fix five dead links; a fuller delegation diagram 2026-09-25 05:14:10 +00:00
StackLayout.vue library/ keeps the reason and drops the speaker: no comment quotes or cites the Driver 2026-09-29 05:26:25 +00:00
VerticalTabsLayout.vue library/ keeps the reason and drops the speaker: no comment quotes or cites the Driver 2026-09-29 05:26:25 +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.