The ten ring names settled between gospel and exp, derived from exp's ringFor() rather than hand-numbered so the numbering cannot drift from the code that produces it. The screen legend already renders these words, so a printed sheet using them cannot disagree with the screen. Written as vocabulary in the header a caller reads, and deliberately NOT as a prop default. One cell is still open on the Driver's row 89 — "people" versus the brief's "culture" in column 1 — and if he keeps his, exactly three cells change, 1, 4 and 7, and nothing else: not the numbering, not the columns, not the colours. A default would bake a provisional word into every consumer that forgot to pass one, and would make this component the thing that decided a Driver question. Same reason ShareCalendar refuses to name its own metric. |
||
|---|---|---|
| .. | ||
| charts | ||
| dashboards | ||
| hints | ||
| legends | ||
| map-controls | ||
| poster | ||
| qa | ||
| regions | ||
| search | ||
| tables | ||
| 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.