doxa-maps/library/components
doxa-maps-88655c70 6189966a89
Some checks are pending
build-gate / build (push) Waiting to run
Give selections a permanent row so the app stops jumping under the cursor
The selections row left the DOM whenever nothing was selected, so it appeared on every
select and vanished on every clear — and the map, the table and the grid moved each
time. That is what made the dashboard hard to use: not where the chips sat, but that
everything below them shifted while you were looking at it.

The row now always renders and only its contents change. Empty it reads "Selected
World", which is also true rather than merely a placeholder: nothing filtered really
does mean the whole world is in scope. Clear-all is simply absent when there is nothing
to clear, instead of the row collapsing around it.

Height is pinned and the row no longer wraps, because wrapping was the other way it
could grow; a long selection scrolls sideways instead of taking a second line. Slim
enough to read as a status strip rather than a tray.

Measured across all three states — empty, selected, cleared — the row height stays 28px
and the map top stays at 186px. Nothing below the row moves.
2026-09-22 16:14:27 +00:00
..
charts Prepare repo to the vision: BLUF vision-cast README, library warning, SRI injection, term scrub 2026-09-15 22:58:19 +00:00
hints lift the pin hint into view when its host clips it 2026-09-21 12:30:11 +00:00
legends consolidate docs into documentation/ and deployment shells into deployment/ 2026-09-21 23:23:23 +00:00
map-controls consolidate docs into documentation/ and deployment shells into deployment/ 2026-09-21 23:23:23 +00:00
poster consolidate docs into documentation/ and deployment shells into deployment/ 2026-09-21 23:23:23 +00:00
qa 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
search Give selections a permanent row so the app stops jumping under the cursor 2026-09-22 16:14:27 +00:00
tables Prepare repo to the vision: BLUF vision-cast README, library warning, SRI injection, term scrub 2026-09-15 22:58:19 +00:00
PeopleGroupDetail.vue consolidate docs into documentation/ and deployment shells into deployment/ 2026-09-21 23:23:23 +00:00
README.md consolidate docs into documentation/ and deployment shells into deployment/ 2026-09-21 23:23:23 +00:00
ResearchMapFilterPanel.vue doxa-maps — portable bundler for embeddable JAMstack maps 2026-09-10 01:53:07 +00:00
ResearchMapSideMenu.vue doxa-maps — portable bundler for embeddable JAMstack maps 2026-09-10 01:53:07 +00:00
SideMenuDrawer.vue doxa-maps — portable bundler for embeddable JAMstack maps 2026-09-10 01:53:07 +00:00
WARNING.md Complete app-profiles->plugin-designs sweep across comments/docs; build green; layouts kept at root (load-bearing) 2026-09-17 18:18:19 +00:00

library/components/ — shared Vue components

The map UI, built from parameterized pieces every app-profile reuses. Fix one here and every map benefits — never edit a shared component to customize one map.

  library/components/
  ┌───────────────────────────────────────────┐
  │ legends/        map-controls/   poster/      │
  │ charts/         tables/                       │
  │ PeopleGroupDetail.vue   SideMenuDrawer.vue    │
  │ ResearchMapFilterPanel.vue  …SideMenu.vue     │
  └───────────────────────────────────────────┘
     reused by every app-profile via @map/components/…
  • legends/, map-controls/, poster/ each have their own README.
  • Every component uses <script setup>, calls useShadowStyles(), and reaches stores via inject('mapStore' | 'uiStore' | 'dataStore') — never a direct store import.

Full catalog + conventions: ../../documentation/architecture/components.md · per-file roles: ../../documentation/reference.md.