The open state was a fixed 30% of the map: a three-row legend sat in a mostly empty sheet, and a long tree scrolled inside one. At rest in the open state the sheet now takes its content's height, capped at 45% of the map. A drag still sets an explicit height; the collapsed and fully open states are unchanged. The detail view's mini image follows the open sheet's real top edge. The start state was a race. Every map's own mount code means collapsed on a phone, but uiStore.init() measures the breakpoint in a ResizeObserver whose first callback runs after mount, so Simple Research read the 'desktop' default and started open on every load at 390, while Prayer Progress started collapsed. The sheet now applies the collapsed start state itself, once, the first time it sees the phone breakpoint, unless a people group is selected. |
||
|---|---|---|
| .. | ||
| charts | ||
| dashboards | ||
| hints | ||
| info | ||
| legends | ||
| map-controls | ||
| maps | ||
| poster | ||
| qa | ||
| regions | ||
| search | ||
| tables | ||
| BackToTopButton.vue | ||
| LargerScreenNotice.vue | ||
| PeopleGroupDetail.vue | ||
| README.md | ||
| ResearchMapFilterPanel.vue | ||
| ResearchMapSideMenu.vue | ||
| SideMenuDrawer.vue | ||
| ViewSelect.vue | ||
| WARNING.md | ||
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>, callsuseShadowStyles(), and reaches stores viainject('mapStore' | 'uiStore' | 'dataStore')— never a direct store import.
Full catalog + conventions:
../../documentation/architecture/components.md ·
per-file roles: ../../documentation/reference.md.