|
Some checks are pending
build-gate / build (push) Waiting to run
MapControlMenu's 'fit inside the map' height clamp is right for a map host but wrong for ShareButton's header fallback: the fallback tags the ~56px header band as the area (data-map-area='share-fallback'), and the menu clamped INSIDE it -- measured on upg-100-mfe, a 291px share menu rendered with a 69px scrolling body. A menu must never outgrow a MAP's walls, but a header band is not a wall (nothing clips below it), so a share-fallback area now bounds against the VIEWPORT. Measured: header host body 291/291 no scroll, menu 342px tall below the band; map host (doxa-simple-map) unchanged, 287/287 within the map. Real map areas keep the original walls -- only the self-tagged fallback takes the new branch. |
||
|---|---|---|
| .. | ||
| 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.