Regions mounts its cap-4 composite; UPG-100 drops its duplicate share and shrinks its dots
Some checks are pending
build-gate / build (push) Waiting to run
Some checks are pending
build-gate / build (push) Waiting to run
REGIONS WAS RENDERING AS A CAP-1. The regions-mfe composite (nested-elements-mfe over regions-list + region-dashboards, with the shared Select View strip) had shipped, but the shell entry still named the bare `regions-list` leaf -- the cap-1 half -- so one flat list rendered and the composite sat unused. The cause was in the shell, not the regions bundle. Compare the UPG-100 entry, which names `upg-100-mfe` and is why that tab has tabs. Measured in the shell after: Select View present, options "Regions List" / "Region Dashboards". DUPLICATE SHARE BUTTON. The map carried its own ShareButton while the composite header already mounts one. Removed the map-level control here rather than in the shared component, because sharing is per-map policy: Prayer Progress is the map meant for embedding elsewhere and keeps its own button; a map only ever seen inside a composite does not need one. Unused import dropped. DOTS WERE OVERCORRECTED. An earlier pass raised z=1 radius 4 -> 6 to fix "hard to see". Sound reasoning, wrong amount: it made this the largest-dotted map in the set (all-people-groups is 2.2 at z=0). Now 5 at z=1, keeping a deliberate step above the dense map without leaving the family; the halo carries visibility. Gates: template-literal, sfc-parse, sri all pass.
This commit is contained in:
parent
1cf4e89dab
commit
ca4343c25d
11 changed files with 118 additions and 91 deletions
|
|
@ -351,8 +351,18 @@ const TAB_DEFS = [
|
|||
// The third Dashboards row. `profile` names the ONE profile this bundle currently builds;
|
||||
// when the region-detail profile lands it becomes tab 2 INSIDE this element, so this entry
|
||||
// still does not change — the shell resolves the profile from the manifest either way.
|
||||
// ★ MOUNT THE COMPOSITE, NOT THE LEAF (Driver 2026-09-23: "the Regions tab is supposed to be a
|
||||
// capability-4 plugin, but right now it looks like it's only a capability-1").
|
||||
// He was right, and the cause was here rather than in the regions bundle: regions-mfe (the cap-4
|
||||
// nested-elements-mfe composing regions-list + region-dashboards, with the shared Select View
|
||||
// strip) HAD shipped, but this entry still named the bare `regions-list` leaf — the cap-1 half.
|
||||
// So the shell rendered one flat list with no tab strip while the composite sat unused.
|
||||
// The note above anticipated exactly this ("when the region-detail profile lands it becomes tab
|
||||
// 2 INSIDE this element") but assumed the shell would follow automatically; it does not — the
|
||||
// profile named here is the one that mounts. Compare the UPG-100 entry below, which correctly
|
||||
// names `upg-100-mfe` rather than `upg-100-list`: same shape, and it is why that tab has tabs.
|
||||
id: 'regions-dashboard', label: 'Regions', sub: 'regions and their countries', emoji: '🌐',
|
||||
bundle: 'regions-dashboard', profile: 'regions-list'
|
||||
bundle: 'regions-dashboard', profile: 'regions-mfe'
|
||||
},
|
||||
{
|
||||
id: 'upg-100', label: 'UPG-100 List', sub: 'my unreached list + posters', emoji: '📋',
|
||||
|
|
|
|||
|
|
@ -59,7 +59,6 @@ import ZoomOutButton from '@map/components/map-controls/ZoomOutButton.vue'
|
|||
import LocationButton from '@map/components/map-controls/LocationButton.vue'
|
||||
import FullscreenButton from '@map/components/map-controls/FullscreenButton.vue'
|
||||
import ThemeToggleButton from '@map/components/map-controls/ThemeToggleButton.vue'
|
||||
import ShareButton from '@map/components/map-controls/ShareButton.vue'
|
||||
// 09b-search-reuse-geocoder §1(b): CONSUME the shared geocoder search UI the
|
||||
// research-map already mounts (top-left, ABOVE the legend, mobile-friendly,
|
||||
// wraps mapbox-gl-geocoder). It builds its OWN localGeocoder from
|
||||
|
|
@ -1539,7 +1538,15 @@ onMounted(async () => {
|
|||
// nothing here. Sized for the count, not copied from the sibling: 6px at z=1 (+50%),
|
||||
// tapering back to the original 9px by z=8, where geography supplies the context and the
|
||||
// dots no longer need to carry it alone.
|
||||
'circle-radius': ['interpolate', ['linear'], ['zoom'], 1, 6, 4, 7.5, 8, 9],
|
||||
// ★ REVERTED TOWARD THE SIBLINGS (Driver 2026-09-23: "the dots are way too big, I never
|
||||
// asked for them to be that big, they're larger than the dots on most of the other maps").
|
||||
// He is right and this was my overcorrection: an earlier pass raised z=1 from 4 to 6 to fix
|
||||
// "hard to see", reasoning that 100 marks alone on a planet need more presence than
|
||||
// all-people-groups' 12,379. The reasoning was sound but the amount was not — at 6 this map
|
||||
// became the LARGEST of the set (all-people-groups is 2.2 at z=0, 3.4 at z=4), so it read as
|
||||
// wrong rather than as emphasised. 5 keeps a deliberate step above the dense map without
|
||||
// breaking the family; the halo below is what actually carries visibility at world zoom.
|
||||
'circle-radius': ['interpolate', ['linear'], ['zoom'], 1, 5, 4, 6.5, 8, 9],
|
||||
'circle-color': matchColorExpr, 'circle-opacity': 1,
|
||||
// Solid dark outer halo = the visibility win (frames every dot on any basemap).
|
||||
// Widened in step with the radius so the halo stays a frame, not a smudge: a 1.2px ring
|
||||
|
|
@ -1747,7 +1754,17 @@ onBeforeUnmount(() => {
|
|||
<LocationButton :map="mapRef" :is-dark="isDark" />
|
||||
<FullscreenButton :map-container="mapEl" :is-dark="isDark" />
|
||||
<ThemeToggleButton :is-dark="isDark" @toggle="handleToggleTheme" />
|
||||
<ShareButton :is-dark="isDark" :embed-path="'my-upg-100-list/upg-100-list/index.html'" />
|
||||
<!-- ★ NO MAP-LEVEL SHARE BUTTON HERE (Driver 2026-09-23, reported twice): "there's a share
|
||||
button on the map, but there's ALSO a share button on the header of the website. That's
|
||||
two separate share buttons. We don't need the one on the map."
|
||||
The composite upg-100-mfe.vue:217 already mounts a ShareButton in the header, and that is
|
||||
the one to keep — it shares the whole cap-4 element, whereas this one shared only the map
|
||||
half, so the duplicate was also the less useful of the two.
|
||||
★ REMOVED HERE, NOT IN THE SHARED COMPONENT: the share control is per-map policy, not a
|
||||
global. Prayer Progress is the map intended for embedding on other people's sites and MUST
|
||||
keep its own map-level button. A map that is only ever seen inside a composite (this one)
|
||||
does not need one; a map that is embedded standalone does. -->
|
||||
<!-- ShareButton intentionally omitted; the mfe header owns sharing for this bundle. -->
|
||||
<!-- R1.3 (i) + R1.4 (L4): the Batch Select toggle lives IN THE MAP CONTROLS
|
||||
RAIL and is THE SINGLE batch entry point (the HUD button is gone) — a
|
||||
profile-LOCAL button slotted as a peer of the shared controls (we
|
||||
|
|
|
|||
2
public/doxa-maps/doxa-maps-spa/doxa-maps-spa.js
generated
2
public/doxa-maps/doxa-maps-spa/doxa-maps-spa.js
generated
File diff suppressed because one or more lines are too long
|
|
@ -26,7 +26,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <doxa-maps-spa> custom element. -->
|
||||
<script src="../../doxa-maps-spa.js" integrity="sha384-T+Vb+RHoAB76ZnZ0wbg5KMkKrxBKStUH+Faf9PHc+efE1CZPiiW1NlerC1V8KaU1" crossorigin="anonymous"></script>
|
||||
<script src="../../doxa-maps-spa.js" integrity="sha384-GNqHiINJmPj5jwlIbFd3WQ2FfQy9VwJ6gZEjisE/TmS23X7RjCEz5YL81gKSVD5c" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <doxa-maps-spa> custom element. -->
|
||||
<script src="../doxa-maps-spa.js" integrity="sha384-T+Vb+RHoAB76ZnZ0wbg5KMkKrxBKStUH+Faf9PHc+efE1CZPiiW1NlerC1V8KaU1" crossorigin="anonymous"></script>
|
||||
<script src="../doxa-maps-spa.js" integrity="sha384-GNqHiINJmPj5jwlIbFd3WQ2FfQy9VwJ6gZEjisE/TmS23X7RjCEz5YL81gKSVD5c" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
2
public/doxa-maps/index.html
generated
2
public/doxa-maps/index.html
generated
File diff suppressed because one or more lines are too long
12
public/doxa-maps/manifest.json
generated
12
public/doxa-maps/manifest.json
generated
|
|
@ -280,7 +280,7 @@
|
|||
"bundle": "doxa-maps-spa",
|
||||
"scriptUrl": "./doxa-maps-spa/doxa-maps-spa.js",
|
||||
"output": "doxa-maps/doxa-maps-spa/doxa-maps-spa.js",
|
||||
"integrity": "sha384-T+Vb+RHoAB76ZnZ0wbg5KMkKrxBKStUH+Faf9PHc+efE1CZPiiW1NlerC1V8KaU1",
|
||||
"integrity": "sha384-GNqHiINJmPj5jwlIbFd3WQ2FfQy9VwJ6gZEjisE/TmS23X7RjCEz5YL81gKSVD5c",
|
||||
"elements": [
|
||||
"doxa-maps-spa"
|
||||
],
|
||||
|
|
@ -304,7 +304,7 @@
|
|||
"scriptUrl": "./doxa-maps-spa/doxa-maps-spa.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./doxa-maps-spa/doxa-maps-spa/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=\"./doxa-maps-spa/doxa-maps-spa.js\" integrity=\"sha384-T+Vb+RHoAB76ZnZ0wbg5KMkKrxBKStUH+Faf9PHc+efE1CZPiiW1NlerC1V8KaU1\" crossorigin=\"anonymous\"></script>\n<doxa-maps-spa profile-config='{\"profile\":\"doxa-maps-spa\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></doxa-maps-spa>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./doxa-maps-spa/doxa-maps-spa.js\" integrity=\"sha384-GNqHiINJmPj5jwlIbFd3WQ2FfQy9VwJ6gZEjisE/TmS23X7RjCEz5YL81gKSVD5c\" crossorigin=\"anonymous\"></script>\n<doxa-maps-spa profile-config='{\"profile\":\"doxa-maps-spa\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></doxa-maps-spa>"
|
||||
},
|
||||
"instances": [
|
||||
{
|
||||
|
|
@ -623,7 +623,7 @@
|
|||
"bundle": "my-upg-100-list",
|
||||
"scriptUrl": "./my-upg-100-list/my-upg-100-list.js",
|
||||
"output": "doxa-maps/my-upg-100-list/my-upg-100-list.js",
|
||||
"integrity": "sha384-Ejz1bj3BY55YwaQ/AbYYc/0E88rdhbvOUKs+ba2arx/UMufPkiDAcK5tcqyGF9AV",
|
||||
"integrity": "sha384-HnFFKkrNrn1G3n0Ytk55taH2k/0xGwgWh2vQwJZZWN6F2TTOD2X7vnMq8eqSXpnE",
|
||||
"elements": [
|
||||
"my-upg-100-list-map"
|
||||
],
|
||||
|
|
@ -643,7 +643,7 @@
|
|||
"scriptUrl": "./my-upg-100-list/my-upg-100-list.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./my-upg-100-list/poster-wall/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=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-Ejz1bj3BY55YwaQ/AbYYc/0E88rdhbvOUKs+ba2arx/UMufPkiDAcK5tcqyGF9AV\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-HnFFKkrNrn1G3n0Ytk55taH2k/0xGwgWh2vQwJZZWN6F2TTOD2X7vnMq8eqSXpnE\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -657,7 +657,7 @@
|
|||
"scriptUrl": "./my-upg-100-list/my-upg-100-list.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./my-upg-100-list/upg-100-list/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=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-Ejz1bj3BY55YwaQ/AbYYc/0E88rdhbvOUKs+ba2arx/UMufPkiDAcK5tcqyGF9AV\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-HnFFKkrNrn1G3n0Ytk55taH2k/0xGwgWh2vQwJZZWN6F2TTOD2X7vnMq8eqSXpnE\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -671,7 +671,7 @@
|
|||
"scriptUrl": "./my-upg-100-list/my-upg-100-list.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./my-upg-100-list/upg-100-mfe/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=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-Ejz1bj3BY55YwaQ/AbYYc/0E88rdhbvOUKs+ba2arx/UMufPkiDAcK5tcqyGF9AV\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-HnFFKkrNrn1G3n0Ytk55taH2k/0xGwgWh2vQwJZZWN6F2TTOD2X7vnMq8eqSXpnE\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
|
|||
148
public/doxa-maps/my-upg-100-list/my-upg-100-list.js
generated
148
public/doxa-maps/my-upg-100-list/my-upg-100-list.js
generated
File diff suppressed because one or more lines are too long
|
|
@ -29,7 +29,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <my-upg-100-list-map> custom element. -->
|
||||
<script src="../my-upg-100-list.js" integrity="sha384-Ejz1bj3BY55YwaQ/AbYYc/0E88rdhbvOUKs+ba2arx/UMufPkiDAcK5tcqyGF9AV" crossorigin="anonymous"></script>
|
||||
<script src="../my-upg-100-list.js" integrity="sha384-HnFFKkrNrn1G3n0Ytk55taH2k/0xGwgWh2vQwJZZWN6F2TTOD2X7vnMq8eqSXpnE" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <my-upg-100-list-map> custom element. -->
|
||||
<script src="../my-upg-100-list.js" integrity="sha384-Ejz1bj3BY55YwaQ/AbYYc/0E88rdhbvOUKs+ba2arx/UMufPkiDAcK5tcqyGF9AV" crossorigin="anonymous"></script>
|
||||
<script src="../my-upg-100-list.js" integrity="sha384-HnFFKkrNrn1G3n0Ytk55taH2k/0xGwgWh2vQwJZZWN6F2TTOD2X7vnMq8eqSXpnE" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <my-upg-100-list-map> custom element. -->
|
||||
<script src="../my-upg-100-list.js" integrity="sha384-Ejz1bj3BY55YwaQ/AbYYc/0E88rdhbvOUKs+ba2arx/UMufPkiDAcK5tcqyGF9AV" crossorigin="anonymous"></script>
|
||||
<script src="../my-upg-100-list.js" integrity="sha384-HnFFKkrNrn1G3n0Ytk55taH2k/0xGwgWh2vQwJZZWN6F2TTOD2X7vnMq8eqSXpnE" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
Loading…
Reference in a new issue