Map +40px again: shellH 542 -> 582, mapH 300 -> 340
Some checks are pending
build-gate / build (push) Waiting to run

Second Driver raise, same routing as the first: shell and map move
together so the whole gain lands in the map row; the table's derived
share stays at its height. Storage key v4 -> v5 so the new default is
seen immediately. Measured live: map row + canvas 340px, table 244px,
shell 703px.
This commit is contained in:
doxa-maps-88655c70 2026-09-23 23:49:55 +00:00
parent 61bd1cf8c5
commit da3e3dc589
9 changed files with 79 additions and 76 deletions

View file

@ -441,7 +441,7 @@ useShadowStyles(`
earlier today and reverted when a probe reported "no shell" — the real cause was a DEAD DEV
SERVER, not this CSS. Verified this time against a live server with a screenshot. */
.rd-shell.rd-page-scroll{ height:auto; --table-h:auto;
grid-template-rows: var(--rd-topbar-h,38px) auto var(--rd-stats-h,22px) var(--rd-map-h,300px) auto; }
grid-template-rows: var(--rd-topbar-h,38px) auto var(--rd-stats-h,22px) var(--rd-map-h,340px) auto; }
/* ★ COLLAPSE GIVES ITS SPACE TO THE MAP (Driver 2026-09-23: "collapsing the table is supposed to
collapse down and increase the size of the map -- instead it collapsed up and introduced white
space under the collapsed table"). The base .rd-table-collapsed template still says 1fr for the
@ -453,10 +453,10 @@ useShadowStyles(`
open: two owners of one height is the bug this file keeps re-learning. */
.rd-shell.rd-page-scroll.rd-table-collapsed{
grid-template-rows: var(--rd-topbar-h,38px) auto var(--rd-stats-h,22px)
calc(var(--rd-shell-h, 542px) - var(--table-bar-h,30px)) var(--table-bar-h,30px); }
calc(var(--rd-shell-h, 582px) - var(--table-bar-h,30px)) var(--table-bar-h,30px); }
.rd-shell.rd-page-scroll.rd-table-collapsed > [data-region="map"]{
height:calc(var(--rd-shell-h, 542px) - var(--table-bar-h,30px)); }
.rd-shell.rd-page-scroll > [data-region="map"]{ height:var(--rd-map-h, 300px); overflow:hidden; }
height:calc(var(--rd-shell-h, 582px) - var(--table-bar-h,30px)); }
.rd-shell.rd-page-scroll > [data-region="map"]{ height:var(--rd-map-h, 340px); overflow:hidden; }
.rd-shell.rd-page-scroll > [data-region="table"]{ overflow:visible; }
.rd-shell.rd-page-scroll .rd-table-wrap{ height:auto; }
/* ★ THE TABLE KEEPS AN INTERNAL SCROLL, BUT A GENEROUS ONE — and that is the whole fix.
@ -523,7 +523,7 @@ useShadowStyles(`
GOAL CONTEXT: "we are trying to RECLAIM HEIGHT." 7 rows is 182px against today's 300px keyhole,
so this alone returns 118px of the ~147px available. */
.rd-shell.rd-page-scroll .rd-grid{
max-height:var(--rd-table-max-h, calc(var(--rd-shell-h, 542px) - var(--rd-map-h, 300px) - var(--rd-table-bar-h, 32px) - var(--rd-table-foot-h, 28px))); }
max-height:var(--rd-table-max-h, calc(var(--rd-shell-h, 582px) - var(--rd-map-h, 340px) - var(--rd-table-bar-h, 32px) - var(--rd-table-foot-h, 28px))); }
/* ── FACETS/RAIL COLUMNS BOUNDED IN PAGE-SCROLL MODE (BUG-DASHBOARD-BAND-GROWS-ENORMOUS) ──────
THE ROOT CAUSE, one level up from the table rule above. .rd-facets/.rd-rail are authored
height:100%, which is correct in the FIXED-VIEWPORT grid (rows sum to a real, bounded
@ -607,7 +607,7 @@ useShadowStyles(`
the surplus painted as the grey band the Driver reported between/under map and table, and
made a divider drag look broken (the row would not follow, the slack just moved).
ONE QUANTITY, ONE OWNER applies to fallbacks too: same var, same fallback, everywhere. */
max-height:calc(var(--rd-shell-h, 542px) + 1px); }
max-height:calc(var(--rd-shell-h, 582px) + 1px); }
/* ★ THE ELEMENT MUST SIZE TO ITS CONTENT IN PAGE-SCROLL (Driver 2026-09-23: "massive grey gap
between map and table and the map overflows into the people-group grid page — the dashboard

View file

@ -108,7 +108,10 @@ import { ref, unref, onMounted, onBeforeUnmount } from 'vue'
// mapH 260 -> 300 (Driver 2026-09-23 follow-up: the +40px was to be "added to the map -- map is
// 40px taller display room"). shellH stays 542, so the table's derived share returns to its
// pre-+40 height and the whole gain lands in the map row.
const DEFAULTS = { facetW: 296, railW: 296, tableH: '34%', mapH: 300, shellH: 542 }
// +40px again (Driver 2026-09-23 second raise: "go taller with the dashboard by another 40px,
// add that to the height of the map"): shellH 542 -> 582 and mapH 300 -> 340 move together, so
// the whole gain lands in the map row and the table's derived share stays put.
const DEFAULTS = { facetW: 296, railW: 296, tableH: '34%', mapH: 340, shellH: 582 }
const CLAMPS = { facetW: [160, 420], railW: [200, 520], tableH: [12, 70], mapH: [220, 1400], shellH: [400, 2600] }
// Mirrors the CSS fallback --rd-table-bar-h (research-dashboard.vue's .rd-table-bar budget calc) —
@ -138,7 +141,7 @@ export function useDashboardLayout(options = {}) {
// fresh drag re-personalises from there. The v1 blob is left in place, inert.
// v2 -> v3: retire stored layouts so the new 542 default is actually SEEN -- a persisted
// shellH:502 from the previous default would silently mask this change on the Driver's browser.
storageKey = 'rd-dashboard-layout-v4',
storageKey = 'rd-dashboard-layout-v5',
} = options
const defaults = { ...DEFAULTS, ...(options.defaults || {}) }

File diff suppressed because one or more lines are too long

View file

@ -40,7 +40,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <dashboard-plus-grid> custom element. -->
<script src="../../dashboard-plus-grid.js" integrity="sha384-5cdQ8p58ktHysAAacoO4Fa71ukeM0ZFQO3lFnzL51DdNBmrxugr0hd7nG3lmIZ5W" crossorigin="anonymous"></script>
<script src="../../dashboard-plus-grid.js" integrity="sha384-kZMxuH4eFOdlUYzW/YB197NaF7MH6qQlNRkQmJFthFUSxa9oQst7lyH/LYK29Yqt" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -40,7 +40,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <dashboard-plus-grid> custom element. -->
<script src="../dashboard-plus-grid.js" integrity="sha384-5cdQ8p58ktHysAAacoO4Fa71ukeM0ZFQO3lFnzL51DdNBmrxugr0hd7nG3lmIZ5W" crossorigin="anonymous"></script>
<script src="../dashboard-plus-grid.js" integrity="sha384-kZMxuH4eFOdlUYzW/YB197NaF7MH6qQlNRkQmJFthFUSxa9oQst7lyH/LYK29Yqt" 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

@ -193,7 +193,7 @@
"bundle": "dashboard-plus-grid",
"scriptUrl": "./dashboard-plus-grid/dashboard-plus-grid.js",
"output": "doxa-maps/dashboard-plus-grid/dashboard-plus-grid.js",
"integrity": "sha384-5cdQ8p58ktHysAAacoO4Fa71ukeM0ZFQO3lFnzL51DdNBmrxugr0hd7nG3lmIZ5W",
"integrity": "sha384-kZMxuH4eFOdlUYzW/YB197NaF7MH6qQlNRkQmJFthFUSxa9oQst7lyH/LYK29Yqt",
"elements": [
"dashboard-plus-grid"
],
@ -213,7 +213,7 @@
"scriptUrl": "./dashboard-plus-grid/dashboard-plus-grid.js",
"embed": {
"iframe": "<iframe src=\"./dashboard-plus-grid/dashboard-plus-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./dashboard-plus-grid/dashboard-plus-grid.js\" integrity=\"sha384-5cdQ8p58ktHysAAacoO4Fa71ukeM0ZFQO3lFnzL51DdNBmrxugr0hd7nG3lmIZ5W\" crossorigin=\"anonymous\"></script>\n<dashboard-plus-grid profile-config='{\"profile\":\"dashboard-plus-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></dashboard-plus-grid>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./dashboard-plus-grid/dashboard-plus-grid.js\" integrity=\"sha384-kZMxuH4eFOdlUYzW/YB197NaF7MH6qQlNRkQmJFthFUSxa9oQst7lyH/LYK29Yqt\" crossorigin=\"anonymous\"></script>\n<dashboard-plus-grid profile-config='{\"profile\":\"dashboard-plus-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></dashboard-plus-grid>"
},
"instances": [
{
@ -878,7 +878,7 @@
"bundle": "research-dashboard",
"scriptUrl": "./research-dashboard/research-dashboard.js",
"output": "doxa-maps/research-dashboard/research-dashboard.js",
"integrity": "sha384-TSoH4Y3PWqIII0JP8c5QCi67iSGzwDzp0DovZ/4JhszwI61XJd7sjc2xwI0EvbCU",
"integrity": "sha384-uYPQZjDB+0BMyy/Vit6cXnhYiBLVAsqMGWzdYnczTXdMR9OCCLTXFbwUL3GE7pGd",
"elements": [
"research-dashboard-map"
],
@ -894,7 +894,7 @@
"scriptUrl": "./research-dashboard/research-dashboard.js",
"embed": {
"iframe": "<iframe src=\"./research-dashboard/research-dashboard/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./research-dashboard/research-dashboard.js\" integrity=\"sha384-TSoH4Y3PWqIII0JP8c5QCi67iSGzwDzp0DovZ/4JhszwI61XJd7sjc2xwI0EvbCU\" crossorigin=\"anonymous\"></script>\n<research-dashboard-map profile-config='{\"profile\":\"research-dashboard\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></research-dashboard-map>"
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./research-dashboard/research-dashboard.js\" integrity=\"sha384-uYPQZjDB+0BMyy/Vit6cXnhYiBLVAsqMGWzdYnczTXdMR9OCCLTXFbwUL3GE7pGd\" crossorigin=\"anonymous\"></script>\n<research-dashboard-map profile-config='{\"profile\":\"research-dashboard\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></research-dashboard-map>"
},
"bundle": "research-dashboard"
}

File diff suppressed because one or more lines are too long

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <research-dashboard-map> custom element. -->
<script src="../research-dashboard.js" integrity="sha384-TSoH4Y3PWqIII0JP8c5QCi67iSGzwDzp0DovZ/4JhszwI61XJd7sjc2xwI0EvbCU" crossorigin="anonymous"></script>
<script src="../research-dashboard.js" integrity="sha384-uYPQZjDB+0BMyy/Vit6cXnhYiBLVAsqMGWzdYnczTXdMR9OCCLTXFbwUL3GE7pGd" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order: