Put the collapse guard on the host, where the rest of the fleet keeps it
Some checks are pending
Deploy to GitHub Pages / build (push) Waiting to run
Deploy to GitHub Pages / deploy (push) Blocked by required conditions

Dropping the floor outright removed a guard. :host here was only display:block,
so an embed that gives the element no height leaves .gb{height:100%} resolving
against an auto-height parent and renders nothing — the collapse the floor was
there to prevent. The standalone leaf hides this, because it sizes the element
with position:fixed and inset:0; an arbitrary embed does not.

The floor belongs on :host, which is where every other plugin keeps it —
research-map at 320px, people-groups at 420px, big-picture at 480px. This plugin
was the one that put it on the inner root instead, and that is the whole bug: on
the host it guards a collapse while a shell that sizes its own pane can override
it from outside, whereas on .gb it could only push the element past its pane and
hand the host a second scrollbar across the tab strip.

The value is carried over unchanged rather than tuned while it moves, though
640px is the largest floor in the fleet and worth a second look on its own.
This commit is contained in:
Doxa Maps 2026-09-28 14:47:56 +00:00
parent ac21afea21
commit 2250ed4fe4
11 changed files with 20 additions and 13 deletions

View file

@ -170,7 +170,14 @@ watch(() => [board.filtered.value.length, board.all.value.length], ([n, total])
const sourcesLine = computed(() => (board.meta.value.sources || []).join(' · '))
useShadowStyles(
':host{display:block}' +
// THE FLOOR LIVES ON :host, NOT ON .gb — the house pattern (research-map 320px,
// people-groups 420px, big-picture 480px all put it here). It IS a collapse guard: :host
// was only display:block, so an embed that gives the element no height would leave
// .gb{height:100%} resolving against an auto-height parent and render nothing at all.
// On the host it still guards that case, while a shell that sizes its own pane can
// override it from outside; on .gb it could only ever push the element past its pane and
// hand the host a second scrollbar over the tab strip.
':host{display:block;width:100%;height:100%;min-height:640px}' +
// min-height:0, NOT a pixel floor. With height:100% a floor taller than the pane makes the
// element overflow its host, so the HOST scrolls the whole plugin — tab strip included — and
// the reader gets a second scrollbar that hides the tabs. Every inner grid area already

View file

@ -615,7 +615,7 @@
"bundle": "gospel-internet",
"scriptUrl": "./gospel-internet/gospel-internet.js",
"output": "dx-maps/gospel-internet/gospel-internet.js",
"integrity": "sha384-pOsEqDURkoCiKPeAro9zdVMTmreY20+N9lqU8piXhEgQEOV+snCxvTG0rXWheAOJ",
"integrity": "sha384-LEx6FMflv8Qjg3AaMhUj4Fhm/O0R29R0lYWbJHNu8N/hfiQqObV1j0ALFcTN4P4q",
"elements": [
"gospel-internet-board"
],
@ -635,7 +635,7 @@
"scriptUrl": "./gospel-internet/gospel-internet.js",
"embed": {
"iframe": "<iframe src=\"./gospel-internet/board/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-internet/gospel-internet.js\" integrity=\"sha384-pOsEqDURkoCiKPeAro9zdVMTmreY20+N9lqU8piXhEgQEOV+snCxvTG0rXWheAOJ\" crossorigin=\"anonymous\"></script>\n<gospel-internet-board profile-config='{\"profile\":\"board\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-internet-board>"
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-internet/gospel-internet.js\" integrity=\"sha384-LEx6FMflv8Qjg3AaMhUj4Fhm/O0R29R0lYWbJHNu8N/hfiQqObV1j0ALFcTN4P4q\" crossorigin=\"anonymous\"></script>\n<gospel-internet-board profile-config='{\"profile\":\"board\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-internet-board>"
},
"instances": [
{

View file

@ -36,7 +36,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <gospel-internet-board> custom element. -->
<script src="../../gospel-internet.js" integrity="sha384-pOsEqDURkoCiKPeAro9zdVMTmreY20+N9lqU8piXhEgQEOV+snCxvTG0rXWheAOJ" crossorigin="anonymous"></script>
<script src="../../gospel-internet.js" integrity="sha384-LEx6FMflv8Qjg3AaMhUj4Fhm/O0R29R0lYWbJHNu8N/hfiQqObV1j0ALFcTN4P4q" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -36,7 +36,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <gospel-internet-board> custom element. -->
<script src="../gospel-internet.js" integrity="sha384-pOsEqDURkoCiKPeAro9zdVMTmreY20+N9lqU8piXhEgQEOV+snCxvTG0rXWheAOJ" crossorigin="anonymous"></script>
<script src="../gospel-internet.js" integrity="sha384-LEx6FMflv8Qjg3AaMhUj4Fhm/O0R29R0lYWbJHNu8N/hfiQqObV1j0ALFcTN4P4q" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -36,7 +36,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <gospel-internet-board> custom element. -->
<script src="../../gospel-internet.js" integrity="sha384-pOsEqDURkoCiKPeAro9zdVMTmreY20+N9lqU8piXhEgQEOV+snCxvTG0rXWheAOJ" crossorigin="anonymous"></script>
<script src="../../gospel-internet.js" integrity="sha384-LEx6FMflv8Qjg3AaMhUj4Fhm/O0R29R0lYWbJHNu8N/hfiQqObV1j0ALFcTN4P4q" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -36,7 +36,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <gospel-internet-board> custom element. -->
<script src="../../gospel-internet.js" integrity="sha384-pOsEqDURkoCiKPeAro9zdVMTmreY20+N9lqU8piXhEgQEOV+snCxvTG0rXWheAOJ" crossorigin="anonymous"></script>
<script src="../../gospel-internet.js" integrity="sha384-LEx6FMflv8Qjg3AaMhUj4Fhm/O0R29R0lYWbJHNu8N/hfiQqObV1j0ALFcTN4P4q" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -36,7 +36,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <gospel-internet-board> custom element. -->
<script src="../../gospel-internet.js" integrity="sha384-pOsEqDURkoCiKPeAro9zdVMTmreY20+N9lqU8piXhEgQEOV+snCxvTG0rXWheAOJ" crossorigin="anonymous"></script>
<script src="../../gospel-internet.js" integrity="sha384-LEx6FMflv8Qjg3AaMhUj4Fhm/O0R29R0lYWbJHNu8N/hfiQqObV1j0ALFcTN4P4q" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -36,7 +36,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <gospel-internet-board> custom element. -->
<script src="../../gospel-internet.js" integrity="sha384-pOsEqDURkoCiKPeAro9zdVMTmreY20+N9lqU8piXhEgQEOV+snCxvTG0rXWheAOJ" crossorigin="anonymous"></script>
<script src="../../gospel-internet.js" integrity="sha384-LEx6FMflv8Qjg3AaMhUj4Fhm/O0R29R0lYWbJHNu8N/hfiQqObV1j0ALFcTN4P4q" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -36,7 +36,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <gospel-internet-board> custom element. -->
<script src="../../gospel-internet.js" integrity="sha384-pOsEqDURkoCiKPeAro9zdVMTmreY20+N9lqU8piXhEgQEOV+snCxvTG0rXWheAOJ" crossorigin="anonymous"></script>
<script src="../../gospel-internet.js" integrity="sha384-LEx6FMflv8Qjg3AaMhUj4Fhm/O0R29R0lYWbJHNu8N/hfiQqObV1j0ALFcTN4P4q" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

File diff suppressed because one or more lines are too long

View file

@ -615,7 +615,7 @@
"bundle": "gospel-internet",
"scriptUrl": "./gospel-internet/gospel-internet.js",
"output": "dx-maps/gospel-internet/gospel-internet.js",
"integrity": "sha384-pOsEqDURkoCiKPeAro9zdVMTmreY20+N9lqU8piXhEgQEOV+snCxvTG0rXWheAOJ",
"integrity": "sha384-LEx6FMflv8Qjg3AaMhUj4Fhm/O0R29R0lYWbJHNu8N/hfiQqObV1j0ALFcTN4P4q",
"elements": [
"gospel-internet-board"
],
@ -635,7 +635,7 @@
"scriptUrl": "./gospel-internet/gospel-internet.js",
"embed": {
"iframe": "<iframe src=\"./gospel-internet/board/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-internet/gospel-internet.js\" integrity=\"sha384-pOsEqDURkoCiKPeAro9zdVMTmreY20+N9lqU8piXhEgQEOV+snCxvTG0rXWheAOJ\" crossorigin=\"anonymous\"></script>\n<gospel-internet-board profile-config='{\"profile\":\"board\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-internet-board>"
"script": "<!-- Mapbox engine, fetched early. Keep it only with a real Mapbox token in \"tk\": without one (or with \"provider\":\"maplibre\") the map draws with MapLibre and this line must go -->\n<link rel=\"preload\" as=\"script\" href=\"https://api.mapbox.com/mapbox-gl-js/v3.24.0/mapbox-gl.js\" integrity=\"sha384-tO0clamXONKwbiz7O6xJpUeyJbTSPugC+xM9clvfFvKTH3i8SmCawHGdf5quMWmZ\" crossorigin=\"anonymous\">\n<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./gospel-internet/gospel-internet.js\" integrity=\"sha384-LEx6FMflv8Qjg3AaMhUj4Fhm/O0R29R0lYWbJHNu8N/hfiQqObV1j0ALFcTN4P4q\" crossorigin=\"anonymous\"></script>\n<gospel-internet-board profile-config='{\"profile\":\"board\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></gospel-internet-board>"
},
"instances": [
{