Second of the shared-library batches, in the shepherd's order: ShareButton, DataTable, LegendTools, and PinHint's dismiss label. ★ THE ONE THAT MATTERS MOST IS THE PARAGRAPH A PARTNER READS. ShareButton's embed tab explains where to paste the snippet — "WordPress, Squarespace, Wix, or any site that accepts HTML widgets" — and it was English on every locale of a product whose whole pitch is that a partner can drop it into their own page. The two tab labels beside it likewise. Also wired: the data table's CSV and JSON buttons, its row-detail hint and dialog label; the legend's Clusters button and the Minimum Spanning Tree option with its explanation; and the pin hint's Dismiss. ★ SIX SITES NEEDED NO NEW WORDING AT ALL — they already had translations in all eleven locales and were still typed into the template: four "Close" buttons (buttons.close) across PosterDialog, DataTable, MapControlMenu and the QA corner, "Expand legend" (aria.expandLegend) and PosterWall's "people groups". Those are the cheapest defect in the whole catalogue: the work was done, the reader just never saw it. CSV and JSON are keyed but identical in all eleven, like DPI in the poster batch. A format acronym is not an untranslated string; the key exists so a language that does translate it can, without anyone editing a component. ★ LIBRARY CHANGE — studio's to land under rule 5B. I have NOT rebuilt anything. Until it lands, every string falls back to the English it reads today. Measured with the source audit: shared-library strings with no catalogue entry go 32 → 21, and the has-a-key-but-hardcoded class goes 6 → 2. Remaining, in order: QaCorner (10, a developer tool), SemanticTreeLegend (4), PosterPreview, PosterWall and VerticalTabsLayout (2 each). |
||
|---|---|---|
| .. | ||
| FullscreenButton.vue | ||
| GeocoderComponent.vue | ||
| HamburgerButton.vue | ||
| HelpButton.vue | ||
| index.js | ||
| LocationButton.vue | ||
| MapControlButton.vue | ||
| MapControlMenu.vue | ||
| MapToolbar.vue | ||
| README.md | ||
| ShareButton.vue | ||
| ThemeToggleButton.vue | ||
| ZoomInButton.vue | ||
| ZoomOutButton.vue | ||
library/components/map-controls/ — toolbar buttons
Each file is a single, focused button or input that mounts inside the map's control area. Replaces
the older monolithic MapControlsComponent.vue.
MapToolbar.vue (container)
├─ ZoomInButton · ZoomOutButton · LocationButton
├─ FullscreenButton · HamburgerButton · ThemeToggleButton
├─ HelpButton · ShareButton
└─ GeocoderComponent (all built on MapControlButton.vue)
- Every button takes a
sizeprop (sm | md | lg) and follows theMapControlButtonshape. - Click handlers go through
inject('mapStore')orgetMap()— never a captured Mapbox instance. - To add one: copy
ZoomInButton.vueand register it inMapToolbar.vue.
Full conventions + catalog: ../../../documentation/architecture/components.md.