diff --git a/plugin-designs/doxa-research-map/research-map.vue b/plugin-designs/doxa-research-map/research-map.vue index ee49d973b..a48f8929b 100644 --- a/plugin-designs/doxa-research-map/research-map.vue +++ b/plugin-designs/doxa-research-map/research-map.vue @@ -239,7 +239,7 @@ useShadowStyles(` container, which would otherwise stretch the column across the map once the start edge moves. */ .mapboxgl-ctrl-top-left { top:12px!important;inset-inline-start:8px!important;inset-inline-end:auto!important;width:var(--map-legend-width,380px)!important;max-width:var(--map-legend-width,380px)!important;z-index:1200!important; } .mapboxgl-ctrl-top-left .mapboxgl-ctrl { margin:0!important;float:none!important; } - /* Pill geometry + PPLR-matched focus ring (qa: 2026-05-02). border-radius + /* Pill geometry + PPLR-matched focus ring. border-radius 999px matches PPLR's .pgc-input-wrap; focus-within ring uses PPLR's accent rgba(59,70,61,0.18) so the search bar reads as one column with the SemanticTreeLegend below it. Input font-size:13px / placeholder @@ -315,8 +315,8 @@ useShadowStyles(` /* isolation:isolate forces .rm-root to form its own stacking context so internal z-indexes (geocoder 1200, legend 1000, toolbar 10) compare only against each other and do NOT leak out to compete with page-level - elements like the site nav / hamburger menu (qa: 2026-05-04 user - reported the geocoder pill rendering above the page menu). Without + elements like the site nav / hamburger menu (the geocoder pill otherwise + rendered above the page menu). Without this, the host element doesn't establish a stacking context and the internal 1200 wins against any page elements with z-index < 1200. */ .rm-root { position:absolute;inset:0;display:flex;flex-direction:column;overflow:hidden;background:#ffffff;color:#1f2937;isolation:isolate; } @@ -1100,7 +1100,7 @@ const legendTitle = computed(() => { // @select to the same handler as the desktop instance — without this, // mobile row-clicks updated only instance.selection (shared via inject) // and never reached mapStore.selectFamily → applyDimFilter, so the -// dim-on-select / restore-on-deselect path never ran (qa: 2026-05-03 iter-18). +// dim-on-select / restore-on-deselect path never ran. provide('onSemanticTreeSelect', (node) => onSemanticTreeSelect(node)) // Resolves the active tab's strategy → color for a given feature, used by // useSelectedPin.js so the selection-pin matches the underlying dot color @@ -2985,8 +2985,8 @@ function applyContainerScale(width) { el.style.setProperty('--map-font-md', '13px') el.style.setProperty('--map-font-sm', '11px') // One width for the legend, the pin-detail card and the geocoder pill - // (qa: 2026-05-02 — a 400px detail card over a 380px legend read as two - // cards). SemanticTreeLegend's .stl-panel follows this variable too. + // A 400px detail card over a 380px legend read as two + // cards. SemanticTreeLegend's .stl-panel follows this variable too. // 400px (was 380) since the desktop type scale widened the numeric // columns; keeps "Full Prayer Coverage" on one line (2026-09-16). el.style.setProperty('--map-legend-width', '380px') @@ -3044,7 +3044,7 @@ onMounted(async () => { // any code branching on isMobile (LegendDesktop's internal LegendMobile // mount, mobile-only feature gates, etc.) runs the desktop path. // The CSS @media path on .rm-legend-mobile-slot still works either way, - // but isMobile-driven branches don't. (qa: 2026-05-02 mobile audit.) + // but isMobile-driven branches don't. uiStore.init?.() activeTabId.value = tabs.value[0]?.id ?? 'doxa-regions' if (uiStore.isMobile) uiStore.collapseLegend?.()