doxa-maps/library/components
Doxa Maps 275ff51523 The tree legend's tabs, info buttons and carets are 24px tap targets
rega measured 13 controls under the 24px minimum in the country map's legend at 390px: the tier tabs
at 22px tall, their info buttons at 18x22, and the row carets. The tabs take a 24px minimum height and
the info buttons a 24px square. The carets grow to 24x24 while a -5px margin returns the extra space,
so the tree's indentation (which shares the caret width) does not move. One library component, so
every map with this legend gets it.
2026-09-29 05:26:23 +00:00
..
charts bandFill mode: 'fill-all' draws every group and lets the zoom separate them 2026-09-29 01:38:08 +00:00
dashboards Delete 7 unreachable library components, and gate the thing a census cannot see 2026-09-29 01:38:07 +00:00
hints The map controls and the pin hint printed; the attribution stays 2026-09-28 21:59:29 +00:00
legends The tree legend's tabs, info buttons and carets are 24px tap targets 2026-09-29 05:26:23 +00:00
map-controls The share menu's tabs mirrored the wrong way, and the check could not see them 2026-09-29 03:46:37 +00:00
maps Keep the engineering reason, drop the speaker: 31 Driver references to 0 2026-09-29 03:46:37 +00:00
poster Country Posters and the UPG-100 wall read in the page's language, and walls count in each language's plural forms 2026-09-29 05:26:23 +00:00
qa Comments state their findings instead of citing files outside the repo 2026-09-29 03:46:37 +00:00
regions Share the ported _globals.scss rules through one module 2026-09-29 01:38:08 +00:00
search The search header's filter labels follow a mid-session language switch 2026-09-28 13:37:44 +00:00
tables DataTable + StackLayout: physical left/right -> logical, where the rule mirrors 2026-09-28 09:48:45 +00:00
BackToTopButton.vue Shipped comments describe the behaviour instead of quoting a person 2026-09-28 17:40:35 +00:00
PeopleGroupDetail.vue Every animating library component now honours prefers-reduced-motion itself 2026-09-29 01:38:07 +00:00
README.md consolidate docs into documentation/ and deployment shells into deployment/ 2026-09-21 23:23:23 +00:00
ResearchMapFilterPanel.vue Four shared controls get a 24x24 target at every pointer, not only on touch (WCAG 2.5.8) 2026-09-26 13:35:57 +00:00
ResearchMapSideMenu.vue Every animating library component now honours prefers-reduced-motion itself 2026-09-29 01:38:07 +00:00
SideMenuDrawer.vue Every animating library component now honours prefers-reduced-motion itself 2026-09-29 01:38:07 +00:00
ViewSelect.vue Every animating library component now honours prefers-reduced-motion itself 2026-09-29 01:38: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.