doxa-maps/library/components
Doxa Maps 6b3aae2c99 Phones: smaller all-regions pins with the same tap targets, and a poster size a phone can draw
The all-regions map drew its pins at their zoom-2 size below zoom 2, which is where a phone's globe
sits, so they read far too large. They now shrink below zoom 2 (unchanged from zoom 2 up, so desktop
keeps them), and an invisible hit twin with the old radii takes the click and the cursor, so a tap
selects exactly what it did before.

The poster dialog's default is 24x36 in at 300 dpi, a 78-megapixel render: minutes on a desktop, and
beyond a phone's canvas limit, so "Export poster" appeared to do nothing on a phone. On a phone it now
opens on Letter at 150 dpi, and sizes or resolutions over the phone canvas limit are disabled with the
reason shown, in every locale. Desktop is unchanged.
2026-09-30 08:30:57 +00:00
..
charts Drop three resurrected library components, and re-home a doc comment 2026-09-29 16:06:28 +00:00
dashboards A filter chip with several values says "or", in the reader's language 2026-09-29 13:29:19 +00:00
hints The pin-hint pill counts the map credit only when it lies below the pill 2026-09-30 06:35:15 +00:00
info Prayer Progress carries its own "What can this map do?", so the ⓘ works wherever the map is embedded 2026-09-30 06:15:11 +00:00
legends Phones: the engine's credit on one line, in smaller type 2026-09-30 07:20:49 +00:00
map-controls Prayer Progress carries its own "What can this map do?", so the ⓘ works wherever the map is embedded 2026-09-30 06:15:11 +00:00
maps Phones: smaller all-regions pins with the same tap targets, and a poster size a phone can draw 2026-09-30 08:30:57 +00:00
poster Phones: smaller all-regions pins with the same tap targets, and a poster size a phone can draw 2026-09-30 08:30:57 +00:00
qa Comments state their findings instead of citing files outside the repo 2026-09-29 03:46:37 +00:00
regions The region card stops overwriting the regions list's stylesheet 2026-09-29 16:32:15 +00:00
search The browser-side generator keeps the reason and drops the speaker 2026-09-29 05:26:27 +00:00
tables A table row's detail sheet names itself in the reader's language when its first column is empty 2026-09-29 12:44:25 +00:00
BackToTopButton.vue Shipped comments describe the behaviour instead of quoting a person 2026-09-28 17:40:35 +00:00
LargerScreenNotice.vue The phone notice holds its place above any profile, and pads the right side in Arabic 2026-09-29 08:11:49 +00:00
PeopleGroupDetail.vue Merge branch 'bundler-2/driver-1650' into bundler-2/handoff 2026-09-29 14:50:44 +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.