- Prayer Progress's column becomes the engine's square grouped card (controls="square"). Its first control is MapInfoButton, which opens the gallery's MapInfo for the tab. The gallery's tabInfo 'prayer-map' entry now uses trigger 'control', so the floating button hides while that control is on screen, and shows again (fail-open) whenever it is not. - MapInfo, control mode: the first-visit pointer now points at the control. Its place is measured against the pane (which scrolls) and goes on the control's physical inner side, so an Arabic page, whose column mirrors to the left, gets the pointer on the right with the arrow reversed. It shows at every width: the under-1200px rule was measured for the floating pointer crossing each tab's top strip, and does not apply here. - MapInfo, pointerKeep (prayer-map only): the popup offers "Keep tooltip activated" instead of the every-map "don't point again" box. It is off by default, and opening the popup retires the pointer. Checked, the pointer keeps showing on every load. It is stored per map. - mapInfo.keepPointer in all 11 locales. - Rebuilt doxa-simple-map and doxa-maps-spa, then tree and fix:sri. |
||
|---|---|---|
| .. | ||
| 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.