A section of a poster wall (its head: the name, the count, the collapse toggle; and its cards: the preview, "show on map", the print options) is now its own component, library/components/poster/PosterSection.vue. The markup moved VERBATIM; PosterWall renders every group through it and PROVIDES what a section uses (its props, its collapse state, the print actions and their progress overlay) under POSTER_WALL_CTX. The section's CSS stays in PosterWall's one shadow-style string, which applies to this markup in the same root. Every wall renders the same DOM: measured in the shared browser, before (the pilot's built tree) vs after, at 1440 and 390, en and ar: Country Posters, UPG 100's poster wall, Poster Design's styles and the Regions list (with every region's posters open) are identical once the server port and the root's scope hash are normalised; the same cards, sections, intro text and scroll widths. The first step towards a reusable poster section. |
||
|---|---|---|
| .. | ||
| 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 | ||
| ShellLanguageMenu.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.