diff --git a/library/components/hints/PinHint.vue b/library/components/hints/PinHint.vue index d8a05d6c8..720715d86 100644 --- a/library/components/hints/PinHint.vue +++ b/library/components/hints/PinHint.vue @@ -279,13 +279,17 @@ function syncAttribClearance(root) { if (!el || !root?.querySelector) return let h = 0 try { - // TWO attribution flavours ship in this repo and the pill must clear EITHER: - // .mapboxgl-ctrl-attrib — Mapbox's own control (useMapInstance, attributionControl:true) - // .doxa-attribution — our own credit line (useMapAttribution.js) on the profiles - // that construct with attributionControl:false - // Both are licence-required credit, so both are obstacles, never things to cover. + // THREE attribution flavours ship in this repo and the pill must clear ANY of them: + // .mapboxgl-ctrl-attrib — Mapbox's own control (useMapInstance, attributionControl:true) + // .maplibregl-ctrl-attrib — MapLibre's, the DEFAULT engine. Missing from this list, the pill + // kept the 20px fallback and, on a 390px phone where the credit wraps + // to two lines (37px), covered it by 35px on every map. Mapbox measured 0. + // .doxa-attribution — our own credit line (useMapAttribution.js) on the profiles + // that construct with attributionControl:false + // All are licence-required credit, so all are obstacles, never things to cover. const a = root.querySelector( - '.mapboxgl-ctrl-bottom-right .mapboxgl-ctrl-attrib, .mapboxgl-ctrl-bottom-right .doxa-attribution, .doxa-attribution') + '.mapboxgl-ctrl-bottom-right .mapboxgl-ctrl-attrib, .maplibregl-ctrl-bottom-right .maplibregl-ctrl-attrib, ' + + '.mapboxgl-ctrl-bottom-right .doxa-attribution, .maplibregl-ctrl-bottom-right .doxa-attribution, .doxa-attribution') if (a) { // Measure the strip the control OCCUPIES from the bottom of the box we are anchored // in, not the control's own height: Mapbox adds a margin inside