MapInfo (library/components/info) answers "what can this map do for you?" with real output the map makes, pre-generated so it opens at once. The examples are an ordered list of kinds rather than a fixed set, because maps make different things: an image (a poster), pages (a packet that shows its first page and expands to every page), a deck (cards that expand from a stack to a grid) and a table (a real excerpt of the spreadsheet a map exports, with translatable headers). An example whose image is missing drops out quietly: no broken-image icon, no empty frame. The pointer at the button goes for good once that map's popup has been opened and closed; a checkbox in the popup turns it off on every map. Both are kept in localStorage behind a guard, so private browsing cannot break the page. On a phone the popup takes the whole screen; Escape closes it and focus returns to the button. The pointer's motion stops under prefers-reduced-motion. All of its text is one new catalogue area, 'mapInfo', in all eleven locales: the component's own words, and each map's lead, takeaway and note as mapInfo.tab.<tabId>.<field>. One area because a bundle ships only the areas its source names, and the gallery that mounts a popup per map names none of the maps' own areas. This commit carries the UPG-100 map's two sentences; the other maps' follow. |
||
|---|---|---|
| .. | ||
| 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.