doxa-maps/plugin-designs/research-map-plus-grid/index.html
doxa-maps b57aef457c
Some checks are pending
build-gate / build (push) Waiting to run
Add the mobile capability-4 composite: research map above the people-groups grid
The desktop composite pairs the research dashboard with the grid. This is its
mobile sibling: the monolithic 7-tab research map on top, the same grid beneath,
stacked to scroll. Which one a shell shows is an aspect-ratio choice made at the
SPA level, so neither plugin knows about the other and both stay embeddable.

The grid's own search and filters are ON here. The desktop composite turns them
off because the dashboard header owns those controls and drives the grid through
props; the research map has no such header, so switching them off would leave the
grid with no way to be searched at all.

Composes its children by tag and bundle URL rather than importing their .vue
files. Importing the research map directly would bypass its bundle entry, which
is where its three bundle-private colour strategies, its profile registry, its
Pinia and i18n pair and the RTL text plugin are installed — and losing those is a
runtime defect in a green build, because a thrown setup() removes the subtree
with an empty error.

Add check:composite-srcs, which resolves every nested src against the built tree
and asserts every nested tag is registered. A wrong relative depth is a 404, and
the stack layout swallows a failed section on purpose so one broken child cannot
take the whole stack down — which means the cost of that resilience is a silently
empty band. Negative-tested both ways: breaking the depth and renaming a tag each
fail with the file and path named; restoring returns to pass.
2026-09-22 07:34:02 +00:00

41 lines
2.3 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>doxa-maps · research-map-plus-grid staging</title>
<link rel="icon" href="data:,">
<style>
/* Material LIGHT only — the standing palette (#f3f3f1 surface, #fff, #3b463d text,
#92b195 accent, #d1d4cd border, #6d766e muted). No dark mode, no prefers-color-scheme.
NOTE: the older sibling staging pages still carry a dark slab; do not copy that here. */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html, body { background: #f3f3f1; color: #3b463d; min-height: 100%;
font-family: 'Public Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif; }
.wrap { max-width: 1200px; margin: 0 auto; padding: 28px 20px 48px; }
h1 { font-size: 22px; font-weight: 700; letter-spacing: -0.02em; }
.sub { color: #6d766e; font-size: 13px; margin: 6px 0 24px; max-width: 820px; }
.sub code { color: #3b463d; background: #fff; border: 1px solid #d1d4cd; border-radius: 4px; padding: 1px 4px; }
.host { border: 1px solid #d1d4cd; border-radius: 12px; overflow: hidden; background: #fff; }
research-map-plus-grid { display: block; width: 100%; }
</style>
</head>
<body>
<div class="wrap">
<h1>research-map-plus-grid · staging</h1>
<p class="sub">Capability&nbsp;4 — the monolithic <code>doxa-research-map</code> stacked above the
cap-2 <code>people-groups-grid</code> via the shared <code>StackLayout</code>. Scroll down through
both. This is the <strong>mobile</strong> sibling of <code>dashboard-plus-grid</code>; the SPA
chooses which one to show by aspect ratio. Embed
<code>&lt;research-map-plus-grid&gt;</code> anywhere.</p>
<div class="host">
<research-map-plus-grid></research-map-plus-grid>
</div>
</div>
<!-- The GENERATED leaf pages set window.MAP_TOKEN from the baked build-config token (see
generate-tree.mjs) so the nested map finds a token. On this hand-written staging page (which
the generator does not touch) a real host would set window.MAP_TOKEN itself; the people-groups
grid renders regardless (it needs no map token). -->
<script type="module" src="./index.js"></script>
</body>
</html>