diff --git a/documentation/readme-images/cap1-single-element.png b/documentation/readme-images/cap1-single-element.png
index ba166bfc6..6667cf46d 100644
Binary files a/documentation/readme-images/cap1-single-element.png and b/documentation/readme-images/cap1-single-element.png differ
diff --git a/documentation/readme-images/cap2-adoption.png b/documentation/readme-images/cap2-adoption.png
index c2abe0323..67b775c39 100644
Binary files a/documentation/readme-images/cap2-adoption.png and b/documentation/readme-images/cap2-adoption.png differ
diff --git a/documentation/readme-images/cap2-engagement.png b/documentation/readme-images/cap2-engagement.png
index 4bcb8dc29..85173e1bf 100644
Binary files a/documentation/readme-images/cap2-engagement.png and b/documentation/readme-images/cap2-engagement.png differ
diff --git a/documentation/readme-images/cap2-prayer.png b/documentation/readme-images/cap2-prayer.png
index e47ce82f4..d7b46fab6 100644
Binary files a/documentation/readme-images/cap2-prayer.png and b/documentation/readme-images/cap2-prayer.png differ
diff --git a/documentation/readme-images/cap3-monolithic-research.png b/documentation/readme-images/cap3-monolithic-research.png
index f0ce23bd6..72fc96466 100644
Binary files a/documentation/readme-images/cap3-monolithic-research.png and b/documentation/readme-images/cap3-monolithic-research.png differ
diff --git a/documentation/readme-images/cap4-upg100-list.png b/documentation/readme-images/cap4-upg100-list.png
index 86756b72d..c89156c73 100644
Binary files a/documentation/readme-images/cap4-upg100-list.png and b/documentation/readme-images/cap4-upg100-list.png differ
diff --git a/documentation/readme-images/cap4-upg100-mfe.png b/documentation/readme-images/cap4-upg100-mfe.png
index bc8a71c37..9eabc0fc0 100644
Binary files a/documentation/readme-images/cap4-upg100-mfe.png and b/documentation/readme-images/cap4-upg100-mfe.png differ
diff --git a/documentation/readme-images/cap5-doxa-maps-spa.png b/documentation/readme-images/cap5-doxa-maps-spa.png
index 459dbe0fe..176563117 100644
Binary files a/documentation/readme-images/cap5-doxa-maps-spa.png and b/documentation/readme-images/cap5-doxa-maps-spa.png differ
diff --git a/documentation/readme-images/cap5-plugin-studio.png b/documentation/readme-images/cap5-plugin-studio.png
index f0b4b5656..f07ea25d7 100644
Binary files a/documentation/readme-images/cap5-plugin-studio.png and b/documentation/readme-images/cap5-plugin-studio.png differ
diff --git a/documentation/readme-images/deploy1-iframe.png b/documentation/readme-images/deploy1-iframe.png
index 244439305..17d787aa4 100644
Binary files a/documentation/readme-images/deploy1-iframe.png and b/documentation/readme-images/deploy1-iframe.png differ
diff --git a/documentation/readme-images/deploy2-mobile-spa.png b/documentation/readme-images/deploy2-mobile-spa.png
index bd9c165c6..b2502d91e 100644
Binary files a/documentation/readme-images/deploy2-mobile-spa.png and b/documentation/readme-images/deploy2-mobile-spa.png differ
diff --git a/documentation/readme-images/deploy3-research-dashboard.png b/documentation/readme-images/deploy3-research-dashboard.png
index 1cb0cc716..7962eecd0 100644
Binary files a/documentation/readme-images/deploy3-research-dashboard.png and b/documentation/readme-images/deploy3-research-dashboard.png differ
diff --git a/library/components/search/SearchFilterHeader.vue b/library/components/search/SearchFilterHeader.vue
index dcb398bba..82d1e800e 100644
--- a/library/components/search/SearchFilterHeader.vue
+++ b/library/components/search/SearchFilterHeader.vue
@@ -324,12 +324,22 @@ function onClearAll() { emit('clear-all') }
Wrapping is the right lever rather than shrinking the dropdowns: their fixed 168px width is itself
a Driver decision ("filters not so wide"), and a flexible width was what made them jump as a
selection changed. So the row now flows onto a second line when it must.
- The justify-content pair below is KEPT for the reason its own comment gives — `safe` degrades
- space-evenly to flex-start rather than pushing the first item to a negative offset. That hazard
- applied to a scroller and costs nothing here, so it stays rather than being simplified away. */
+ ★ AND START THE WRAPPED LINE ON THE SAME LEFT EDGE (2026-09-23). `space-evenly` was kept here
+ when wrapping landed, on the reasoning that `safe` made it harmless. That reasoning was about a
+ SCROLLER — a single line that could push its first item to a negative offset — and it does not
+ survive wrapping: space-evenly distributes EACH LINE independently, so a final line holding one
+ orphan centres that orphan under the seven above it.
+ MEASURED at three viewports on the shipped dashboard, line-2 left edge vs line-1:
+ 1440px line1 x=36 line2 x=636 — 600px adrift
+ 1280px line1 x=16 line2 x=556 — 540px adrift
+ 1024px line1 x=33 line2 x=132 — 99px adrift
+ A lone centred "Status" control under a left-aligned row does not read as a layout decision, it
+ reads as a bug — which is the bar this is held to. flex-start keeps every line on one edge, so a
+ wrapped row looks like a grid at any width. The `safe` keyword is dropped with it: it exists to
+ rescue centred/space-* distributions from negative offsets, and flex-start cannot produce one. */
.sfh__filters-row {
display: flex; flex-wrap: wrap; align-items: center; gap: var(--dx-filter-gap, 10px);
- justify-content: space-evenly; justify-content: safe space-evenly;
+ justify-content: flex-start;
overflow-x: clip; padding-bottom: 2px;
scrollbar-width: thin; -webkit-overflow-scrolling: touch;
}
diff --git a/public/__gallery/index.html b/public/__gallery/index.html
index c1485a0de..fb639b6cf 100644
--- a/public/__gallery/index.html
+++ b/public/__gallery/index.html
@@ -94,7 +94,7 @@ code{font-family:ui-monospace,Menlo,monospace}
(function () {
var TREE = "../doxa-maps", TOKEN_SRC = "window.MAP_TOKEN_URL", BAKED_TOKEN = "pk.eyJ1IjoiZ29zeXN0ZW1zIiwiYSI6ImNtZm9vM291czA3amQya3BzYW42YW9ibTcifQ.52WM0IpxY9FcB0zc9f1zbQ", API_BASE = "https://pray.doxa.life", ASSETS_BASE = "", QA = false;
var DEFAULT_TOKEN_URL = '/api/maps/token';
- var BAKED = [{"b":"all-people-groups","s":"./all-people-groups/all-people-groups.js","i":"sha384-naI/FjUN6z0mTDZsarX/PHn6uR/XAs1dXnRBGtfLE4xJcfVhDJ7KzoB9+VvLIuCz","e":["all-people-groups"],"p":[{"p":"all-people-groups","e":"all-people-groups","u":"./all-people-groups/all-people-groups/index.html","d":"All 12,379 people groups (peoplegroups.org) in four colors — reached,","c":1,"em":{"iframe":"\u003ciframe src=\"./all-people-groups/all-people-groups/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./all-people-groups/all-people-groups.js\" integrity=\"sha384-naI/FjUN6z0mTDZsarX/PHn6uR/XAs1dXnRBGtfLE4xJcfVhDJ7KzoB9+VvLIuCz\" crossorigin=\"anonymous\">\u003c/script>\n\u003call-people-groups profile-config='{\"profile\":\"all-people-groups\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/all-people-groups>"}}]},{"b":"big-picture","s":"./big-picture/big-picture.js","i":"sha384-1a5gFxBj6maJ3KbyTQxVeW7fn1bhN5H/cOwObkCd6cyh/M1Q1KCDoMPnbB/IHrjD","e":["bp-big-picture","bp-research-header","people-groups-grid"],"p":[{"p":"big-picture","e":"bp-big-picture","u":"./big-picture/big-picture/index.html","d":"The Cat-4 composite that PAIRS the two real capability elements of the","c":4,"em":{"iframe":"\u003ciframe src=\"./big-picture/big-picture/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./big-picture/big-picture.js\" integrity=\"sha384-1a5gFxBj6maJ3KbyTQxVeW7fn1bhN5H/cOwObkCd6cyh/M1Q1KCDoMPnbB/IHrjD\" crossorigin=\"anonymous\">\u003c/script>\n\u003cbp-big-picture profile-config='{\"profile\":\"big-picture\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/bp-big-picture>"},"in":[{"id":"big-picture","t":"Big Picture — research header ↔ people-groups grid (composite)","a":"","pr":{"profile":"big-picture","provider":"maplibre","instanceId":"bp-big-picture"},"e":"bp-big-picture","u":"./big-picture/big-picture/big-picture/index.html"},{"id":"frontier","t":"Big Picture — frontier accent","a":"","pr":{"profile":"big-picture","provider":"maplibre","instanceId":"bp-big-picture-frontier","accent":"#22d3ee","title":"Big Picture — Frontier Focus"},"e":"bp-big-picture","u":"./big-picture/big-picture/frontier/index.html"}]}]},{"b":"cities-internet","s":"./cities-internet/cities-internet.js","i":"sha384-kfg3Gt4MMo/j+uMGWwO9z0NbV0Rw2irE/Kb2hnKGV5K47XpblcHtnSYXl2zuoE0R","e":["cities-internet-map"],"p":[{"p":"connectivity-list","e":"cities-internet-map","u":"./cities-internet/connectivity-list/index.html","d":"Countries where DX people groups live, grouped by region, showing measured internet penetration","c":1,"em":{"iframe":"\u003ciframe src=\"./cities-internet/connectivity-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-kfg3Gt4MMo/j+uMGWwO9z0NbV0Rw2irE/Kb2hnKGV5K47XpblcHtnSYXl2zuoE0R\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccities-internet-map profile-config='{\"profile\":\"connectivity-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/cities-internet-map>"}},{"p":"connectivity-map","e":"cities-internet-map","u":"./cities-internet/connectivity-map/index.html","d":"Every country shaded by measured internet penetration, with its named carriers and dominant","c":1,"em":{"iframe":"\u003ciframe src=\"./cities-internet/connectivity-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-kfg3Gt4MMo/j+uMGWwO9z0NbV0Rw2irE/Kb2hnKGV5K47XpblcHtnSYXl2zuoE0R\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccities-internet-map profile-config='{\"profile\":\"connectivity-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/cities-internet-map>"}},{"p":"data-tables","e":"cities-internet-map","u":"./cities-internet/data-tables/index.html","d":"Four validated research tables, one tab each, with sortable and filterable columns, CSV and JSON","c":1,"em":{"iframe":"\u003ciframe src=\"./cities-internet/data-tables/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-kfg3Gt4MMo/j+uMGWwO9z0NbV0Rw2irE/Kb2hnKGV5K47XpblcHtnSYXl2zuoE0R\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccities-internet-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/cities-internet-map>"}}]},{"b":"country-posters","s":"./country-posters/country-posters.js","i":"sha384-Q0SZzHrCI5ZVp8JM/8gTLQxG9OjZDyupQBy75/nFTS8XO2GTDVLHvxgNMElP6J1x","e":["country-posters-map"],"p":[{"p":"countries-map","e":"country-posters-map","u":"./country-posters/countries-map/index.html","d":"The researcher's workbench retargeted from people groups to COUNTRIES — region","c":1,"em":{"iframe":"\u003ciframe src=\"./country-posters/countries-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./country-posters/country-posters.js\" integrity=\"sha384-Q0SZzHrCI5ZVp8JM/8gTLQxG9OjZDyupQBy75/nFTS8XO2GTDVLHvxgNMElP6J1x\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccountry-posters-map profile-config='{\"profile\":\"countries-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/country-posters-map>"}},{"p":"country-poster-wall","e":"country-posters-map","u":"./country-posters/country-poster-wall/index.html","d":"One printable card per country, grouped into COLLAPSIBLE regional sections so the","c":1,"em":{"iframe":"\u003ciframe src=\"./country-posters/country-poster-wall/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./country-posters/country-posters.js\" integrity=\"sha384-Q0SZzHrCI5ZVp8JM/8gTLQxG9OjZDyupQBy75/nFTS8XO2GTDVLHvxgNMElP6J1x\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccountry-posters-map profile-config='{\"profile\":\"country-poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/country-posters-map>"}}]},{"b":"dashboard-plus-grid","s":"./dashboard-plus-grid/dashboard-plus-grid.js","i":"sha384-xpa86HoTmKX01/ckN2L2cQbAry77D2mlRbWKagjx1VIUkoygkRor9SFt8t8vuWNM","e":["dashboard-plus-grid"],"p":[{"p":"dashboard-plus-grid","e":"dashboard-plus-grid","u":"./dashboard-plus-grid/dashboard-plus-grid/index.html","d":"Both children are IMPORTED DIRECTLY (compiled into this ONE bundle — no runtime bundle","c":4,"em":{"iframe":"\u003ciframe src=\"./dashboard-plus-grid/dashboard-plus-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./dashboard-plus-grid/dashboard-plus-grid.js\" integrity=\"sha384-xpa86HoTmKX01/ckN2L2cQbAry77D2mlRbWKagjx1VIUkoygkRor9SFt8t8vuWNM\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdashboard-plus-grid profile-config='{\"profile\":\"dashboard-plus-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/dashboard-plus-grid>"},"in":[{"id":"default","t":"default","a":"","pr":{"profile":"dashboard-plus-grid"},"e":"dashboard-plus-grid","u":"./dashboard-plus-grid/dashboard-plus-grid/default/index.html"}]}]},{"b":"demo-map","s":"./demo-map/demo-map.js","i":"sha384-hK5bhikq6HS+Q1t5g9tqAWlosKbQcnzlxLx36svZffWk11HKbIsTk0f8yJxjVZE0","e":["demo-map"],"p":[{"p":"demo-map","e":"demo-map","u":"./demo-map/demo-map/index.html","d":"Simple two-tab demo map. Tab 1 colors pins by religion (shared","c":2,"em":{"iframe":"\u003ciframe src=\"./demo-map/demo-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./demo-map/demo-map.js\" integrity=\"sha384-hK5bhikq6HS+Q1t5g9tqAWlosKbQcnzlxLx36svZffWk11HKbIsTk0f8yJxjVZE0\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdemo-map profile-config='{\"profile\":\"demo-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/demo-map>"},"in":[{"id":"maplibre","t":"Demo map — MapLibre (token-free)","a":"","pr":{"profile":"demo-map","provider":"maplibre","instanceId":"demo-maplibre"},"e":"demo-map","u":"./demo-map/demo-map/maplibre/index.html"}]}]},{"b":"doxa-maps-spa","s":"./doxa-maps-spa/doxa-maps-spa.js","i":"sha384-GJiuI3T69Om//h3hE5AEeqIF3H6EnXrQVNj5BiAyLZcABodDXAA/pDYVxXsDT1Pq","e":["doxa-maps-spa"],"p":[{"p":"doxa-maps-spa","e":"doxa-maps-spa","u":"./doxa-maps-spa/doxa-maps-spa/index.html","d":"The DX-maps app itself: one element whose vertical-tab rail nests every other","c":5,"em":{"iframe":"\u003ciframe src=\"./doxa-maps-spa/doxa-maps-spa/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./doxa-maps-spa/doxa-maps-spa.js\" integrity=\"sha384-GJiuI3T69Om//h3hE5AEeqIF3H6EnXrQVNj5BiAyLZcABodDXAA/pDYVxXsDT1Pq\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-maps-spa profile-config='{\"profile\":\"doxa-maps-spa\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/doxa-maps-spa>"},"in":[{"id":"app","t":"DX-Maps SPA — Big Picture + every research map (app-shell)","a":"","pr":{"profile":"doxa-maps-spa","provider":"maplibre","instanceId":"doxa-maps-spa-app","title":"DX-Maps"},"e":"doxa-maps-spa","u":"./doxa-maps-spa/doxa-maps-spa/app/index.html"}]}]},{"b":"doxa-research-map","s":"./doxa-research-map/doxa-research-map.js","i":"sha384-b/PsN3X7B4wcvGGzT0e4BKGh7lcaon2YmmqkX2X7IMJuxR02/P7MIagRa6ST5k48","e":["doxa-research-map"],"p":[{"p":"research-map","e":"doxa-research-map","u":"./doxa-research-map/research-map/index.html","d":"The researcher's workbench: every piece a missiologist, demographer or","c":3,"em":{"iframe":"\u003ciframe src=\"./doxa-research-map/research-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./doxa-research-map/doxa-research-map.js\" integrity=\"sha384-b/PsN3X7B4wcvGGzT0e4BKGh7lcaon2YmmqkX2X7IMJuxR02/P7MIagRa6ST5k48\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-research-map profile-config='{\"profile\":\"research-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/doxa-research-map>"}}]},{"b":"doxa-simple-map","s":"./doxa-simple-map/doxa-simple-map.js","i":"sha384-rCyNuvFWnAdNbWopNuqv22ZliamYyGXoI2wsPImdhXKU0CKS4VRB9tRtBCH4mR5X","e":["doxa-map","doxa-simple-map"],"p":[{"p":"doxa-simple-map","e":"doxa-map","u":"./doxa-simple-map/doxa-simple-map/index.html","d":"The simple world map, shipped as three presets off ONE prop table —","c":2,"em":{"iframe":"\u003ciframe src=\"./doxa-simple-map/doxa-simple-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./doxa-simple-map/doxa-simple-map.js\" integrity=\"sha384-rCyNuvFWnAdNbWopNuqv22ZliamYyGXoI2wsPImdhXKU0CKS4VRB9tRtBCH4mR5X\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-map profile-config='{\"profile\":\"doxa-simple-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/doxa-map>"},"in":[{"id":"prayer","t":"Prayer Map","a":"https://pray.doxa.life","pr":{"profile":"doxa-simple-map","instanceId":"embed-prayer","dataSource":"pray-tools","tabs":[{"id":"prayer","colorStrategy":"prayer","legend":"prayer","popup":"prayer"}]},"e":"doxa-map","u":"./doxa-simple-map/doxa-simple-map/prayer/index.html"},{"id":"engagement","t":"Engagement Map","a":"https://pray.doxa.life","pr":{"profile":"doxa-simple-map","instanceId":"embed-engagement","dataSource":"pray-tools","tabs":[{"id":"engagement","colorStrategy":"engagement","legend":"engagement","popup":"engagement"}]},"e":"doxa-map","u":"./doxa-simple-map/doxa-simple-map/engagement/index.html"},{"id":"adoption","t":"Adoption Map","a":"https://pray.doxa.life","pr":{"profile":"doxa-simple-map","instanceId":"embed-adoption","dataSource":"pray-tools","tabs":[{"id":"adoption","colorStrategy":"adoption","legend":"adoption","popup":"adoption"}]},"e":"doxa-map","u":"./doxa-simple-map/doxa-simple-map/adoption/index.html"}]}]},{"b":"doxa-vision-card","s":"./doxa-vision-card/doxa-vision-card.js","i":"sha384-2mza3cltN5LQQIrlENG/IVL6Icd9zzcFve3E8R8VWuCdYOGW9uGKFvxcbu6eFfwn","e":["doxa-vision-card"],"p":[{"p":"doxa-vision-card","e":"doxa-vision-card","u":"./doxa-vision-card/doxa-vision-card/index.html","d":"The Capability-1 example: ONE folder -> ONE bundle -> ONE element.","c":2,"em":{"iframe":"\u003ciframe src=\"./doxa-vision-card/doxa-vision-card/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./doxa-vision-card/doxa-vision-card.js\" integrity=\"sha384-2mza3cltN5LQQIrlENG/IVL6Icd9zzcFve3E8R8VWuCdYOGW9uGKFvxcbu6eFfwn\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-vision-card profile-config='{\"profile\":\"doxa-vision-card\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/doxa-vision-card>"},"in":[{"id":"default","t":"Vision card — reach at a glance","a":"","pr":{"profile":"doxa-vision-card","provider":"maplibre","instanceId":"vision-card-default"},"e":"doxa-vision-card","u":"./doxa-vision-card/doxa-vision-card/default/index.html"},{"id":"frontier","t":"Vision card — frontier accent","a":"","pr":{"profile":"doxa-vision-card","provider":"maplibre","instanceId":"vision-card-frontier","accent":"#22d3ee","title":"The last frontier of the gospel.","tagline":"Frontier people groups — where fewer than one in a thousand follow Jesus.","stats":[{"value":"1,910","label":"Frontier groups","note":"under 0.1% believers"},{"value":"2.1B","label":"People","note":"living in frontier settings"},{"value":"0.1%","label":"Christian","note":"or fewer, in each group"}]},"e":"doxa-vision-card","u":"./doxa-vision-card/doxa-vision-card/frontier/index.html"}]}]},{"b":"golden-path-check","s":"./golden-path-check/golden-path-check.js","i":"sha384-1V/sT5SkV0U9yTCK9ELIOFfU1ZIJkInIF6nG3UllJ4dxax3RsEAupSGLJEFK6e14","e":["golden-path-check"],"p":[{"p":"golden-path-check","e":"golden-path-check","u":"./golden-path-check/golden-path-check/index.html","d":"A live self-test of the develop-a-plugin-and-see-it-live path: it reads the built","c":1,"em":{"iframe":"\u003ciframe src=\"./golden-path-check/golden-path-check/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./golden-path-check/golden-path-check.js\" integrity=\"sha384-1V/sT5SkV0U9yTCK9ELIOFfU1ZIJkInIF6nG3UllJ4dxax3RsEAupSGLJEFK6e14\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgolden-path-check profile-config='{\"profile\":\"golden-path-check\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/golden-path-check>"}}]},{"b":"gospel-resources","s":"./gospel-resources/gospel-resources.js","i":"sha384-kwkY9M2y5xy9ez4XnaLwzqzshed9rNRbLcQKmwDCpiqJrK+9QufTgyYaRvLnbIRh","e":["gospel-resources-map"],"p":[{"p":"charts","e":"gospel-resources-map","u":"./gospel-resources/charts/index.html","d":"The gap by LANGUAGE (ISO 639-3) rather than by people group — because one translation serves every","c":1,"em":{"iframe":"\u003ciframe src=\"./gospel-resources/charts/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-kwkY9M2y5xy9ez4XnaLwzqzshed9rNRbLcQKmwDCpiqJrK+9QufTgyYaRvLnbIRh\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"charts\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}},{"p":"data-tables","e":"gospel-resources-map","u":"./gospel-resources/data-tables/index.html","d":"Two validated tables: what resources exist per people group, and whether that access is keeping","c":1,"em":{"iframe":"\u003ciframe src=\"./gospel-resources/data-tables/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-kwkY9M2y5xy9ez4XnaLwzqzshed9rNRbLcQKmwDCpiqJrK+9QufTgyYaRvLnbIRh\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}},{"p":"resources-list","e":"gospel-resources-map","u":"./gospel-resources/resources-list/index.html","d":"Which DX people groups have scripture in their own language, and which have none. The zero-resource","c":1,"em":{"iframe":"\u003ciframe src=\"./gospel-resources/resources-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-kwkY9M2y5xy9ez4XnaLwzqzshed9rNRbLcQKmwDCpiqJrK+9QufTgyYaRvLnbIRh\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"resources-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}},{"p":"resources-map","e":"gospel-resources-map","u":"./gospel-resources/resources-map/index.html","d":"Every country shaded by how much of its unengaged population has NO gospel resource in their own","c":1,"em":{"iframe":"\u003ciframe src=\"./gospel-resources/resources-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-kwkY9M2y5xy9ez4XnaLwzqzshed9rNRbLcQKmwDCpiqJrK+9QufTgyYaRvLnbIRh\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"resources-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}}]},{"b":"my-upg-100-list","s":"./my-upg-100-list/my-upg-100-list.js","i":"sha384-dNxJTe2UKQCaovLHNakWSo8fbGsaVedscY2Mr1Ca5adYvVbAWsb1Ei1b1X1bwEgs","e":["my-upg-100-list-map"],"p":[{"p":"poster-wall","e":"my-upg-100-list-map","u":"./my-upg-100-list/poster-wall/index.html","d":"A wall of printable poster cards, one per 100-list entry, each with a \"Show on map\" action that","c":1,"em":{"iframe":"\u003ciframe src=\"./my-upg-100-list/poster-wall/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-dNxJTe2UKQCaovLHNakWSo8fbGsaVedscY2Mr1Ca5adYvVbAWsb1Ei1b1X1bwEgs\" crossorigin=\"anonymous\">\u003c/script>\n\u003cmy-upg-100-list-map profile-config='{\"profile\":\"poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/my-upg-100-list-map>"}},{"p":"upg-100-list","e":"my-upg-100-list-map","u":"./my-upg-100-list/upg-100-list/index.html","d":"A personal unreached-people-groups list painted as true boundary polygons —","c":1,"em":{"iframe":"\u003ciframe 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>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-dNxJTe2UKQCaovLHNakWSo8fbGsaVedscY2Mr1Ca5adYvVbAWsb1Ei1b1X1bwEgs\" crossorigin=\"anonymous\">\u003c/script>\n\u003cmy-upg-100-list-map profile-config='{\"profile\":\"upg-100-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/my-upg-100-list-map>"}},{"p":"upg-100-mfe","e":"my-upg-100-list-map","u":"./my-upg-100-list/upg-100-mfe/index.html","d":"The standalone, shareable and embeddable composite of the my-upg-100-list family — it nests the map","c":4,"em":{"iframe":"\u003ciframe 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>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-dNxJTe2UKQCaovLHNakWSo8fbGsaVedscY2Mr1Ca5adYvVbAWsb1Ei1b1X1bwEgs\" crossorigin=\"anonymous\">\u003c/script>\n\u003cmy-upg-100-list-map profile-config='{\"profile\":\"upg-100-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/my-upg-100-list-map>"}}]},{"b":"people-groups-grid","s":"./people-groups-grid/people-groups-grid.js","i":"sha384-mF3qp2IR9wmDTPTcyoDFFuULYRfv4ERi+0VsZGHov+Nb4mxF4ab2p3EYRZNTT22X","e":["people-groups-grid"],"p":[{"p":"people-groups-grid","e":"people-groups-grid","u":"./people-groups-grid/people-groups-grid/index.html","d":"The people-groups grid as an owned custom element: card list, search and four","c":2,"em":{"iframe":"\u003ciframe src=\"./people-groups-grid/people-groups-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./people-groups-grid/people-groups-grid.js\" integrity=\"sha384-mF3qp2IR9wmDTPTcyoDFFuULYRfv4ERi+0VsZGHov+Nb4mxF4ab2p3EYRZNTT22X\" crossorigin=\"anonymous\">\u003c/script>\n\u003cpeople-groups-grid profile-config='{\"profile\":\"people-groups-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/people-groups-grid>"},"in":[{"id":"people-groups-grid","t":"People Groups Grid — standalone (own search + 4 dropdowns)","a":"","pr":{"profile":"people-groups-grid","provider":"maplibre","instanceId":"people-groups-grid","pray-base-url":"https://pray.doxa.life"},"e":"people-groups-grid","u":"./people-groups-grid/people-groups-grid/people-groups-grid/index.html"},{"id":"driven","t":"People Groups Grid — externally driven (controls off, props/events)","a":"","pr":{"profile":"people-groups-grid","provider":"maplibre","instanceId":"people-groups-grid-driven","pray-base-url":"https://pray.doxa.life","show-search":"false","show-filters":"false"},"e":"people-groups-grid","u":"./people-groups-grid/people-groups-grid/driven/index.html"}]}]},{"b":"plugin-studio","s":"./plugin-studio/plugin-studio.js","i":"sha384-+4N51SbBq5OSUi/EFebDNcqv4vwrmWJh8Ynj5Hs6XOqXI2vATZBkKSRI3zwGV4Kc","e":["plugin-studio"],"p":[{"p":"plugin-studio","e":"plugin-studio","u":"./plugin-studio/plugin-studio/index.html","d":"The developer's viewing surface: a sidebar that is the composability ladder","c":5,"em":{"iframe":"\u003ciframe src=\"./plugin-studio/plugin-studio/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./plugin-studio/plugin-studio.js\" integrity=\"sha384-+4N51SbBq5OSUi/EFebDNcqv4vwrmWJh8Ynj5Hs6XOqXI2vATZBkKSRI3zwGV4Kc\" crossorigin=\"anonymous\">\u003c/script>\n\u003cplugin-studio profile-config='{\"profile\":\"plugin-studio\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/plugin-studio>"},"in":[{"id":"studio","t":"Plugin Studio — every element by capability 5 -> 1 (developer studio)","a":"","pr":{"profile":"plugin-studio","provider":"maplibre","instanceId":"plugin-studio","title":"Plugin Studio"},"e":"plugin-studio","u":"./plugin-studio/plugin-studio/studio/index.html"}]}]},{"b":"research-dashboard","s":"./research-dashboard/research-dashboard.js","i":"sha384-c4mIRnGTwxFLVHbA8tH6u7YiWvIXG8k7ocJHbtQYiUE8Nv/mWD9/GNFnpWsL1dM6","e":["research-dashboard-map"],"p":[{"p":"research-dashboard","e":"research-dashboard-map","u":"./research-dashboard/research-dashboard/index.html","d":"Coordinated-Multiple-Views research dashboard for 10/40-window UPGs (live pray.doxa.life): docked facet rail + map-as-hero + linked table/charts, brushing-and-linking over one in-memory store.","c":3,"em":{"iframe":"\u003ciframe src=\"./research-dashboard/research-dashboard/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./research-dashboard/research-dashboard.js\" integrity=\"sha384-c4mIRnGTwxFLVHbA8tH6u7YiWvIXG8k7ocJHbtQYiUE8Nv/mWD9/GNFnpWsL1dM6\" crossorigin=\"anonymous\">\u003c/script>\n\u003cresearch-dashboard-map profile-config='{\"profile\":\"research-dashboard\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/research-dashboard-map>"}}]},{"b":"research-map-plus-grid","s":"./research-map-plus-grid/research-map-plus-grid.js","i":"sha384-Dyh9E7k/YtwVCKP4lulQpWs9+oqKV5LJjxEnJMufru4zAzyZpbHyz0pja7hPwIwS","e":["research-map-plus-grid"],"p":[{"p":"research-map-plus-grid","e":"research-map-plus-grid","u":"./research-map-plus-grid/research-map-plus-grid/index.html","d":"The monolithic 7-tab research map (cap-3) on top, the People Groups grid beneath,","c":4,"em":{"iframe":"\u003ciframe src=\"./research-map-plus-grid/research-map-plus-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./research-map-plus-grid/research-map-plus-grid.js\" integrity=\"sha384-Dyh9E7k/YtwVCKP4lulQpWs9+oqKV5LJjxEnJMufru4zAzyZpbHyz0pja7hPwIwS\" crossorigin=\"anonymous\">\u003c/script>\n\u003cresearch-map-plus-grid profile-config='{\"profile\":\"research-map-plus-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/research-map-plus-grid>"},"in":[{"id":"default","t":"default","a":"","pr":{"profile":"research-map-plus-grid"},"e":"research-map-plus-grid","u":"./research-map-plus-grid/research-map-plus-grid/default/index.html"}]}]},{"b":"stack-demo","s":"./stack-demo/stack-demo.js","i":"sha384-Wt5wtm3JMmbuKqXaBDYZ2Mrw3LF/q8LQ14d+qFPi958kH8aPJPAFGMvqHCD6BICy","e":["stack-demo"],"p":[{"p":"stack-demo","e":"stack-demo","u":"./stack-demo/stack-demo/index.html","d":"Groups TWO independent elements TOP-TO-BOTTOM so you can embed the pair on a page and","c":4,"em":{"iframe":"\u003ciframe src=\"./stack-demo/stack-demo/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./stack-demo/stack-demo.js\" integrity=\"sha384-Wt5wtm3JMmbuKqXaBDYZ2Mrw3LF/q8LQ14d+qFPi958kH8aPJPAFGMvqHCD6BICy\" crossorigin=\"anonymous\">\u003c/script>\n\u003cstack-demo profile-config='{\"profile\":\"stack-demo\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/stack-demo>"},"in":[{"id":"pair","t":"pair","a":"","pr":{"profile":"stack-demo"},"e":"stack-demo","u":"./stack-demo/stack-demo/pair/index.html"}]}]},{"b":"template-bundle","s":"./template-bundle/template-bundle.js","i":"sha384-4QsipLdtw9IIrA5qQdnhgmo70TH+33QMVdVZdYJFVTUp44Bvz9Y31g+DSKYInsTW","e":["template-bundle"],"p":[{"p":"template-map-a","e":"template-bundle","u":"./template-bundle/template-map-a/index.html","d":"Minimal example profile A — a colored placeholder, no Mapbox or data.","c":1,"em":{"iframe":"\u003ciframe src=\"./template-bundle/template-map-a/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./template-bundle/template-bundle.js\" integrity=\"sha384-4QsipLdtw9IIrA5qQdnhgmo70TH+33QMVdVZdYJFVTUp44Bvz9Y31g+DSKYInsTW\" crossorigin=\"anonymous\">\u003c/script>\n\u003ctemplate-bundle profile-config='{\"profile\":\"template-map-a\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/template-bundle>"}},{"p":"template-map-b","e":"template-bundle","u":"./template-bundle/template-map-b/index.html","d":"Minimal example profile B — a second profile in the same bundle.","c":1,"em":{"iframe":"\u003ciframe src=\"./template-bundle/template-map-b/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./template-bundle/template-bundle.js\" integrity=\"sha384-4QsipLdtw9IIrA5qQdnhgmo70TH+33QMVdVZdYJFVTUp44Bvz9Y31g+DSKYInsTW\" crossorigin=\"anonymous\">\u003c/script>\n\u003ctemplate-bundle profile-config='{\"profile\":\"template-map-b\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/template-bundle>"}}]}];
+ var BAKED = [{"b":"all-people-groups","s":"./all-people-groups/all-people-groups.js","i":"sha384-naI/FjUN6z0mTDZsarX/PHn6uR/XAs1dXnRBGtfLE4xJcfVhDJ7KzoB9+VvLIuCz","e":["all-people-groups"],"p":[{"p":"all-people-groups","e":"all-people-groups","u":"./all-people-groups/all-people-groups/index.html","d":"All 12,379 people groups (peoplegroups.org) in four colors — reached,","c":1,"em":{"iframe":"\u003ciframe src=\"./all-people-groups/all-people-groups/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./all-people-groups/all-people-groups.js\" integrity=\"sha384-naI/FjUN6z0mTDZsarX/PHn6uR/XAs1dXnRBGtfLE4xJcfVhDJ7KzoB9+VvLIuCz\" crossorigin=\"anonymous\">\u003c/script>\n\u003call-people-groups profile-config='{\"profile\":\"all-people-groups\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/all-people-groups>"}}]},{"b":"big-picture","s":"./big-picture/big-picture.js","i":"sha384-1a5gFxBj6maJ3KbyTQxVeW7fn1bhN5H/cOwObkCd6cyh/M1Q1KCDoMPnbB/IHrjD","e":["bp-big-picture","bp-research-header","people-groups-grid"],"p":[{"p":"big-picture","e":"bp-big-picture","u":"./big-picture/big-picture/index.html","d":"The Cat-4 composite that PAIRS the two real capability elements of the","c":4,"em":{"iframe":"\u003ciframe src=\"./big-picture/big-picture/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./big-picture/big-picture.js\" integrity=\"sha384-1a5gFxBj6maJ3KbyTQxVeW7fn1bhN5H/cOwObkCd6cyh/M1Q1KCDoMPnbB/IHrjD\" crossorigin=\"anonymous\">\u003c/script>\n\u003cbp-big-picture profile-config='{\"profile\":\"big-picture\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/bp-big-picture>"},"in":[{"id":"big-picture","t":"Big Picture — research header ↔ people-groups grid (composite)","a":"","pr":{"profile":"big-picture","provider":"maplibre","instanceId":"bp-big-picture"},"e":"bp-big-picture","u":"./big-picture/big-picture/big-picture/index.html"},{"id":"frontier","t":"Big Picture — frontier accent","a":"","pr":{"profile":"big-picture","provider":"maplibre","instanceId":"bp-big-picture-frontier","accent":"#22d3ee","title":"Big Picture — Frontier Focus"},"e":"bp-big-picture","u":"./big-picture/big-picture/frontier/index.html"}]}]},{"b":"cities-internet","s":"./cities-internet/cities-internet.js","i":"sha384-kfg3Gt4MMo/j+uMGWwO9z0NbV0Rw2irE/Kb2hnKGV5K47XpblcHtnSYXl2zuoE0R","e":["cities-internet-map"],"p":[{"p":"connectivity-list","e":"cities-internet-map","u":"./cities-internet/connectivity-list/index.html","d":"Countries where DX people groups live, grouped by region, showing measured internet penetration","c":1,"em":{"iframe":"\u003ciframe src=\"./cities-internet/connectivity-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-kfg3Gt4MMo/j+uMGWwO9z0NbV0Rw2irE/Kb2hnKGV5K47XpblcHtnSYXl2zuoE0R\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccities-internet-map profile-config='{\"profile\":\"connectivity-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/cities-internet-map>"}},{"p":"connectivity-map","e":"cities-internet-map","u":"./cities-internet/connectivity-map/index.html","d":"Every country shaded by measured internet penetration, with its named carriers and dominant","c":1,"em":{"iframe":"\u003ciframe src=\"./cities-internet/connectivity-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-kfg3Gt4MMo/j+uMGWwO9z0NbV0Rw2irE/Kb2hnKGV5K47XpblcHtnSYXl2zuoE0R\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccities-internet-map profile-config='{\"profile\":\"connectivity-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/cities-internet-map>"}},{"p":"data-tables","e":"cities-internet-map","u":"./cities-internet/data-tables/index.html","d":"Four validated research tables, one tab each, with sortable and filterable columns, CSV and JSON","c":1,"em":{"iframe":"\u003ciframe src=\"./cities-internet/data-tables/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-kfg3Gt4MMo/j+uMGWwO9z0NbV0Rw2irE/Kb2hnKGV5K47XpblcHtnSYXl2zuoE0R\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccities-internet-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/cities-internet-map>"}}]},{"b":"country-posters","s":"./country-posters/country-posters.js","i":"sha384-Q0SZzHrCI5ZVp8JM/8gTLQxG9OjZDyupQBy75/nFTS8XO2GTDVLHvxgNMElP6J1x","e":["country-posters-map"],"p":[{"p":"countries-map","e":"country-posters-map","u":"./country-posters/countries-map/index.html","d":"The researcher's workbench retargeted from people groups to COUNTRIES — region","c":1,"em":{"iframe":"\u003ciframe src=\"./country-posters/countries-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./country-posters/country-posters.js\" integrity=\"sha384-Q0SZzHrCI5ZVp8JM/8gTLQxG9OjZDyupQBy75/nFTS8XO2GTDVLHvxgNMElP6J1x\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccountry-posters-map profile-config='{\"profile\":\"countries-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/country-posters-map>"}},{"p":"country-poster-wall","e":"country-posters-map","u":"./country-posters/country-poster-wall/index.html","d":"One printable card per country, grouped into COLLAPSIBLE regional sections so the","c":1,"em":{"iframe":"\u003ciframe src=\"./country-posters/country-poster-wall/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./country-posters/country-posters.js\" integrity=\"sha384-Q0SZzHrCI5ZVp8JM/8gTLQxG9OjZDyupQBy75/nFTS8XO2GTDVLHvxgNMElP6J1x\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccountry-posters-map profile-config='{\"profile\":\"country-poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/country-posters-map>"}}]},{"b":"dashboard-plus-grid","s":"./dashboard-plus-grid/dashboard-plus-grid.js","i":"sha384-/qhSKrIAbbUgEn7TNhtn6VuqpE3ApxLg8otkL8MD4KexFyTVrnmvztqD81Ourj1W","e":["dashboard-plus-grid"],"p":[{"p":"dashboard-plus-grid","e":"dashboard-plus-grid","u":"./dashboard-plus-grid/dashboard-plus-grid/index.html","d":"Both children are IMPORTED DIRECTLY (compiled into this ONE bundle — no runtime bundle","c":4,"em":{"iframe":"\u003ciframe src=\"./dashboard-plus-grid/dashboard-plus-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./dashboard-plus-grid/dashboard-plus-grid.js\" integrity=\"sha384-/qhSKrIAbbUgEn7TNhtn6VuqpE3ApxLg8otkL8MD4KexFyTVrnmvztqD81Ourj1W\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdashboard-plus-grid profile-config='{\"profile\":\"dashboard-plus-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/dashboard-plus-grid>"},"in":[{"id":"default","t":"default","a":"","pr":{"profile":"dashboard-plus-grid"},"e":"dashboard-plus-grid","u":"./dashboard-plus-grid/dashboard-plus-grid/default/index.html"}]}]},{"b":"demo-map","s":"./demo-map/demo-map.js","i":"sha384-hK5bhikq6HS+Q1t5g9tqAWlosKbQcnzlxLx36svZffWk11HKbIsTk0f8yJxjVZE0","e":["demo-map"],"p":[{"p":"demo-map","e":"demo-map","u":"./demo-map/demo-map/index.html","d":"Simple two-tab demo map. Tab 1 colors pins by religion (shared","c":2,"em":{"iframe":"\u003ciframe src=\"./demo-map/demo-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./demo-map/demo-map.js\" integrity=\"sha384-hK5bhikq6HS+Q1t5g9tqAWlosKbQcnzlxLx36svZffWk11HKbIsTk0f8yJxjVZE0\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdemo-map profile-config='{\"profile\":\"demo-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/demo-map>"},"in":[{"id":"maplibre","t":"Demo map — MapLibre (token-free)","a":"","pr":{"profile":"demo-map","provider":"maplibre","instanceId":"demo-maplibre"},"e":"demo-map","u":"./demo-map/demo-map/maplibre/index.html"}]}]},{"b":"doxa-maps-spa","s":"./doxa-maps-spa/doxa-maps-spa.js","i":"sha384-GJiuI3T69Om//h3hE5AEeqIF3H6EnXrQVNj5BiAyLZcABodDXAA/pDYVxXsDT1Pq","e":["doxa-maps-spa"],"p":[{"p":"doxa-maps-spa","e":"doxa-maps-spa","u":"./doxa-maps-spa/doxa-maps-spa/index.html","d":"The DX-maps app itself: one element whose vertical-tab rail nests every other","c":5,"em":{"iframe":"\u003ciframe src=\"./doxa-maps-spa/doxa-maps-spa/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./doxa-maps-spa/doxa-maps-spa.js\" integrity=\"sha384-GJiuI3T69Om//h3hE5AEeqIF3H6EnXrQVNj5BiAyLZcABodDXAA/pDYVxXsDT1Pq\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-maps-spa profile-config='{\"profile\":\"doxa-maps-spa\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/doxa-maps-spa>"},"in":[{"id":"app","t":"DX-Maps SPA — Big Picture + every research map (app-shell)","a":"","pr":{"profile":"doxa-maps-spa","provider":"maplibre","instanceId":"doxa-maps-spa-app","title":"DX-Maps"},"e":"doxa-maps-spa","u":"./doxa-maps-spa/doxa-maps-spa/app/index.html"}]}]},{"b":"doxa-research-map","s":"./doxa-research-map/doxa-research-map.js","i":"sha384-b/PsN3X7B4wcvGGzT0e4BKGh7lcaon2YmmqkX2X7IMJuxR02/P7MIagRa6ST5k48","e":["doxa-research-map"],"p":[{"p":"research-map","e":"doxa-research-map","u":"./doxa-research-map/research-map/index.html","d":"The researcher's workbench: every piece a missiologist, demographer or","c":3,"em":{"iframe":"\u003ciframe src=\"./doxa-research-map/research-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./doxa-research-map/doxa-research-map.js\" integrity=\"sha384-b/PsN3X7B4wcvGGzT0e4BKGh7lcaon2YmmqkX2X7IMJuxR02/P7MIagRa6ST5k48\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-research-map profile-config='{\"profile\":\"research-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/doxa-research-map>"}}]},{"b":"doxa-simple-map","s":"./doxa-simple-map/doxa-simple-map.js","i":"sha384-rCyNuvFWnAdNbWopNuqv22ZliamYyGXoI2wsPImdhXKU0CKS4VRB9tRtBCH4mR5X","e":["doxa-map","doxa-simple-map"],"p":[{"p":"doxa-simple-map","e":"doxa-map","u":"./doxa-simple-map/doxa-simple-map/index.html","d":"The simple world map, shipped as three presets off ONE prop table —","c":2,"em":{"iframe":"\u003ciframe src=\"./doxa-simple-map/doxa-simple-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./doxa-simple-map/doxa-simple-map.js\" integrity=\"sha384-rCyNuvFWnAdNbWopNuqv22ZliamYyGXoI2wsPImdhXKU0CKS4VRB9tRtBCH4mR5X\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-map profile-config='{\"profile\":\"doxa-simple-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/doxa-map>"},"in":[{"id":"prayer","t":"Prayer Map","a":"https://pray.doxa.life","pr":{"profile":"doxa-simple-map","instanceId":"embed-prayer","dataSource":"pray-tools","tabs":[{"id":"prayer","colorStrategy":"prayer","legend":"prayer","popup":"prayer"}]},"e":"doxa-map","u":"./doxa-simple-map/doxa-simple-map/prayer/index.html"},{"id":"engagement","t":"Engagement Map","a":"https://pray.doxa.life","pr":{"profile":"doxa-simple-map","instanceId":"embed-engagement","dataSource":"pray-tools","tabs":[{"id":"engagement","colorStrategy":"engagement","legend":"engagement","popup":"engagement"}]},"e":"doxa-map","u":"./doxa-simple-map/doxa-simple-map/engagement/index.html"},{"id":"adoption","t":"Adoption Map","a":"https://pray.doxa.life","pr":{"profile":"doxa-simple-map","instanceId":"embed-adoption","dataSource":"pray-tools","tabs":[{"id":"adoption","colorStrategy":"adoption","legend":"adoption","popup":"adoption"}]},"e":"doxa-map","u":"./doxa-simple-map/doxa-simple-map/adoption/index.html"}]}]},{"b":"doxa-vision-card","s":"./doxa-vision-card/doxa-vision-card.js","i":"sha384-2mza3cltN5LQQIrlENG/IVL6Icd9zzcFve3E8R8VWuCdYOGW9uGKFvxcbu6eFfwn","e":["doxa-vision-card"],"p":[{"p":"doxa-vision-card","e":"doxa-vision-card","u":"./doxa-vision-card/doxa-vision-card/index.html","d":"The Capability-1 example: ONE folder -> ONE bundle -> ONE element.","c":2,"em":{"iframe":"\u003ciframe src=\"./doxa-vision-card/doxa-vision-card/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./doxa-vision-card/doxa-vision-card.js\" integrity=\"sha384-2mza3cltN5LQQIrlENG/IVL6Icd9zzcFve3E8R8VWuCdYOGW9uGKFvxcbu6eFfwn\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-vision-card profile-config='{\"profile\":\"doxa-vision-card\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/doxa-vision-card>"},"in":[{"id":"default","t":"Vision card — reach at a glance","a":"","pr":{"profile":"doxa-vision-card","provider":"maplibre","instanceId":"vision-card-default"},"e":"doxa-vision-card","u":"./doxa-vision-card/doxa-vision-card/default/index.html"},{"id":"frontier","t":"Vision card — frontier accent","a":"","pr":{"profile":"doxa-vision-card","provider":"maplibre","instanceId":"vision-card-frontier","accent":"#22d3ee","title":"The last frontier of the gospel.","tagline":"Frontier people groups — where fewer than one in a thousand follow Jesus.","stats":[{"value":"1,910","label":"Frontier groups","note":"under 0.1% believers"},{"value":"2.1B","label":"People","note":"living in frontier settings"},{"value":"0.1%","label":"Christian","note":"or fewer, in each group"}]},"e":"doxa-vision-card","u":"./doxa-vision-card/doxa-vision-card/frontier/index.html"}]}]},{"b":"golden-path-check","s":"./golden-path-check/golden-path-check.js","i":"sha384-1V/sT5SkV0U9yTCK9ELIOFfU1ZIJkInIF6nG3UllJ4dxax3RsEAupSGLJEFK6e14","e":["golden-path-check"],"p":[{"p":"golden-path-check","e":"golden-path-check","u":"./golden-path-check/golden-path-check/index.html","d":"A live self-test of the develop-a-plugin-and-see-it-live path: it reads the built","c":1,"em":{"iframe":"\u003ciframe src=\"./golden-path-check/golden-path-check/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./golden-path-check/golden-path-check.js\" integrity=\"sha384-1V/sT5SkV0U9yTCK9ELIOFfU1ZIJkInIF6nG3UllJ4dxax3RsEAupSGLJEFK6e14\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgolden-path-check profile-config='{\"profile\":\"golden-path-check\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/golden-path-check>"}}]},{"b":"gospel-resources","s":"./gospel-resources/gospel-resources.js","i":"sha384-kwkY9M2y5xy9ez4XnaLwzqzshed9rNRbLcQKmwDCpiqJrK+9QufTgyYaRvLnbIRh","e":["gospel-resources-map"],"p":[{"p":"charts","e":"gospel-resources-map","u":"./gospel-resources/charts/index.html","d":"The gap by LANGUAGE (ISO 639-3) rather than by people group — because one translation serves every","c":1,"em":{"iframe":"\u003ciframe src=\"./gospel-resources/charts/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-kwkY9M2y5xy9ez4XnaLwzqzshed9rNRbLcQKmwDCpiqJrK+9QufTgyYaRvLnbIRh\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"charts\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}},{"p":"data-tables","e":"gospel-resources-map","u":"./gospel-resources/data-tables/index.html","d":"Two validated tables: what resources exist per people group, and whether that access is keeping","c":1,"em":{"iframe":"\u003ciframe src=\"./gospel-resources/data-tables/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-kwkY9M2y5xy9ez4XnaLwzqzshed9rNRbLcQKmwDCpiqJrK+9QufTgyYaRvLnbIRh\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}},{"p":"resources-list","e":"gospel-resources-map","u":"./gospel-resources/resources-list/index.html","d":"Which DX people groups have scripture in their own language, and which have none. The zero-resource","c":1,"em":{"iframe":"\u003ciframe src=\"./gospel-resources/resources-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-kwkY9M2y5xy9ez4XnaLwzqzshed9rNRbLcQKmwDCpiqJrK+9QufTgyYaRvLnbIRh\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"resources-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}},{"p":"resources-map","e":"gospel-resources-map","u":"./gospel-resources/resources-map/index.html","d":"Every country shaded by how much of its unengaged population has NO gospel resource in their own","c":1,"em":{"iframe":"\u003ciframe src=\"./gospel-resources/resources-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-kwkY9M2y5xy9ez4XnaLwzqzshed9rNRbLcQKmwDCpiqJrK+9QufTgyYaRvLnbIRh\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"resources-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}}]},{"b":"my-upg-100-list","s":"./my-upg-100-list/my-upg-100-list.js","i":"sha384-dNxJTe2UKQCaovLHNakWSo8fbGsaVedscY2Mr1Ca5adYvVbAWsb1Ei1b1X1bwEgs","e":["my-upg-100-list-map"],"p":[{"p":"poster-wall","e":"my-upg-100-list-map","u":"./my-upg-100-list/poster-wall/index.html","d":"A wall of printable poster cards, one per 100-list entry, each with a \"Show on map\" action that","c":1,"em":{"iframe":"\u003ciframe src=\"./my-upg-100-list/poster-wall/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-dNxJTe2UKQCaovLHNakWSo8fbGsaVedscY2Mr1Ca5adYvVbAWsb1Ei1b1X1bwEgs\" crossorigin=\"anonymous\">\u003c/script>\n\u003cmy-upg-100-list-map profile-config='{\"profile\":\"poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/my-upg-100-list-map>"}},{"p":"upg-100-list","e":"my-upg-100-list-map","u":"./my-upg-100-list/upg-100-list/index.html","d":"A personal unreached-people-groups list painted as true boundary polygons —","c":1,"em":{"iframe":"\u003ciframe 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>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-dNxJTe2UKQCaovLHNakWSo8fbGsaVedscY2Mr1Ca5adYvVbAWsb1Ei1b1X1bwEgs\" crossorigin=\"anonymous\">\u003c/script>\n\u003cmy-upg-100-list-map profile-config='{\"profile\":\"upg-100-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/my-upg-100-list-map>"}},{"p":"upg-100-mfe","e":"my-upg-100-list-map","u":"./my-upg-100-list/upg-100-mfe/index.html","d":"The standalone, shareable and embeddable composite of the my-upg-100-list family — it nests the map","c":4,"em":{"iframe":"\u003ciframe 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>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-dNxJTe2UKQCaovLHNakWSo8fbGsaVedscY2Mr1Ca5adYvVbAWsb1Ei1b1X1bwEgs\" crossorigin=\"anonymous\">\u003c/script>\n\u003cmy-upg-100-list-map profile-config='{\"profile\":\"upg-100-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/my-upg-100-list-map>"}}]},{"b":"people-groups-grid","s":"./people-groups-grid/people-groups-grid.js","i":"sha384-mF3qp2IR9wmDTPTcyoDFFuULYRfv4ERi+0VsZGHov+Nb4mxF4ab2p3EYRZNTT22X","e":["people-groups-grid"],"p":[{"p":"people-groups-grid","e":"people-groups-grid","u":"./people-groups-grid/people-groups-grid/index.html","d":"The people-groups grid as an owned custom element: card list, search and four","c":2,"em":{"iframe":"\u003ciframe src=\"./people-groups-grid/people-groups-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./people-groups-grid/people-groups-grid.js\" integrity=\"sha384-mF3qp2IR9wmDTPTcyoDFFuULYRfv4ERi+0VsZGHov+Nb4mxF4ab2p3EYRZNTT22X\" crossorigin=\"anonymous\">\u003c/script>\n\u003cpeople-groups-grid profile-config='{\"profile\":\"people-groups-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/people-groups-grid>"},"in":[{"id":"people-groups-grid","t":"People Groups Grid — standalone (own search + 4 dropdowns)","a":"","pr":{"profile":"people-groups-grid","provider":"maplibre","instanceId":"people-groups-grid","pray-base-url":"https://pray.doxa.life"},"e":"people-groups-grid","u":"./people-groups-grid/people-groups-grid/people-groups-grid/index.html"},{"id":"driven","t":"People Groups Grid — externally driven (controls off, props/events)","a":"","pr":{"profile":"people-groups-grid","provider":"maplibre","instanceId":"people-groups-grid-driven","pray-base-url":"https://pray.doxa.life","show-search":"false","show-filters":"false"},"e":"people-groups-grid","u":"./people-groups-grid/people-groups-grid/driven/index.html"}]}]},{"b":"plugin-studio","s":"./plugin-studio/plugin-studio.js","i":"sha384-+4N51SbBq5OSUi/EFebDNcqv4vwrmWJh8Ynj5Hs6XOqXI2vATZBkKSRI3zwGV4Kc","e":["plugin-studio"],"p":[{"p":"plugin-studio","e":"plugin-studio","u":"./plugin-studio/plugin-studio/index.html","d":"The developer's viewing surface: a sidebar that is the composability ladder","c":5,"em":{"iframe":"\u003ciframe src=\"./plugin-studio/plugin-studio/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./plugin-studio/plugin-studio.js\" integrity=\"sha384-+4N51SbBq5OSUi/EFebDNcqv4vwrmWJh8Ynj5Hs6XOqXI2vATZBkKSRI3zwGV4Kc\" crossorigin=\"anonymous\">\u003c/script>\n\u003cplugin-studio profile-config='{\"profile\":\"plugin-studio\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/plugin-studio>"},"in":[{"id":"studio","t":"Plugin Studio — every element by capability 5 -> 1 (developer studio)","a":"","pr":{"profile":"plugin-studio","provider":"maplibre","instanceId":"plugin-studio","title":"Plugin Studio"},"e":"plugin-studio","u":"./plugin-studio/plugin-studio/studio/index.html"}]}]},{"b":"research-dashboard","s":"./research-dashboard/research-dashboard.js","i":"sha384-7deBWTaAE1237o9NDmPofHmH+1/3OXG+9lOkAlrPqTbCgSHe6TqRFvBlZX7JZ7iv","e":["research-dashboard-map"],"p":[{"p":"research-dashboard","e":"research-dashboard-map","u":"./research-dashboard/research-dashboard/index.html","d":"Coordinated-Multiple-Views research dashboard for 10/40-window UPGs (live pray.doxa.life): docked facet rail + map-as-hero + linked table/charts, brushing-and-linking over one in-memory store.","c":3,"em":{"iframe":"\u003ciframe src=\"./research-dashboard/research-dashboard/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./research-dashboard/research-dashboard.js\" integrity=\"sha384-7deBWTaAE1237o9NDmPofHmH+1/3OXG+9lOkAlrPqTbCgSHe6TqRFvBlZX7JZ7iv\" crossorigin=\"anonymous\">\u003c/script>\n\u003cresearch-dashboard-map profile-config='{\"profile\":\"research-dashboard\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/research-dashboard-map>"}}]},{"b":"research-map-plus-grid","s":"./research-map-plus-grid/research-map-plus-grid.js","i":"sha384-Dyh9E7k/YtwVCKP4lulQpWs9+oqKV5LJjxEnJMufru4zAzyZpbHyz0pja7hPwIwS","e":["research-map-plus-grid"],"p":[{"p":"research-map-plus-grid","e":"research-map-plus-grid","u":"./research-map-plus-grid/research-map-plus-grid/index.html","d":"The monolithic 7-tab research map (cap-3) on top, the People Groups grid beneath,","c":4,"em":{"iframe":"\u003ciframe src=\"./research-map-plus-grid/research-map-plus-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./research-map-plus-grid/research-map-plus-grid.js\" integrity=\"sha384-Dyh9E7k/YtwVCKP4lulQpWs9+oqKV5LJjxEnJMufru4zAzyZpbHyz0pja7hPwIwS\" crossorigin=\"anonymous\">\u003c/script>\n\u003cresearch-map-plus-grid profile-config='{\"profile\":\"research-map-plus-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/research-map-plus-grid>"},"in":[{"id":"default","t":"default","a":"","pr":{"profile":"research-map-plus-grid"},"e":"research-map-plus-grid","u":"./research-map-plus-grid/research-map-plus-grid/default/index.html"}]}]},{"b":"stack-demo","s":"./stack-demo/stack-demo.js","i":"sha384-Wt5wtm3JMmbuKqXaBDYZ2Mrw3LF/q8LQ14d+qFPi958kH8aPJPAFGMvqHCD6BICy","e":["stack-demo"],"p":[{"p":"stack-demo","e":"stack-demo","u":"./stack-demo/stack-demo/index.html","d":"Groups TWO independent elements TOP-TO-BOTTOM so you can embed the pair on a page and","c":4,"em":{"iframe":"\u003ciframe src=\"./stack-demo/stack-demo/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./stack-demo/stack-demo.js\" integrity=\"sha384-Wt5wtm3JMmbuKqXaBDYZ2Mrw3LF/q8LQ14d+qFPi958kH8aPJPAFGMvqHCD6BICy\" crossorigin=\"anonymous\">\u003c/script>\n\u003cstack-demo profile-config='{\"profile\":\"stack-demo\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/stack-demo>"},"in":[{"id":"pair","t":"pair","a":"","pr":{"profile":"stack-demo"},"e":"stack-demo","u":"./stack-demo/stack-demo/pair/index.html"}]}]},{"b":"template-bundle","s":"./template-bundle/template-bundle.js","i":"sha384-4QsipLdtw9IIrA5qQdnhgmo70TH+33QMVdVZdYJFVTUp44Bvz9Y31g+DSKYInsTW","e":["template-bundle"],"p":[{"p":"template-map-a","e":"template-bundle","u":"./template-bundle/template-map-a/index.html","d":"Minimal example profile A — a colored placeholder, no Mapbox or data.","c":1,"em":{"iframe":"\u003ciframe src=\"./template-bundle/template-map-a/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./template-bundle/template-bundle.js\" integrity=\"sha384-4QsipLdtw9IIrA5qQdnhgmo70TH+33QMVdVZdYJFVTUp44Bvz9Y31g+DSKYInsTW\" crossorigin=\"anonymous\">\u003c/script>\n\u003ctemplate-bundle profile-config='{\"profile\":\"template-map-a\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/template-bundle>"}},{"p":"template-map-b","e":"template-bundle","u":"./template-bundle/template-map-b/index.html","d":"Minimal example profile B — a second profile in the same bundle.","c":1,"em":{"iframe":"\u003ciframe src=\"./template-bundle/template-map-b/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./template-bundle/template-bundle.js\" integrity=\"sha384-4QsipLdtw9IIrA5qQdnhgmo70TH+33QMVdVZdYJFVTUp44Bvz9Y31g+DSKYInsTW\" crossorigin=\"anonymous\">\u003c/script>\n\u003ctemplate-bundle profile-config='{\"profile\":\"template-map-b\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/template-bundle>"}}]}];
var snip = function snip(b, p, x) {
var u = (x || p).u, tag = (x && x.e) || p.e || b.e[0] || b.b
var r = { iframe: '' }
diff --git a/public/doxa-maps/dashboard-plus-grid/dashboard-plus-grid.js b/public/doxa-maps/dashboard-plus-grid/dashboard-plus-grid.js
index 3ba61343f..3fe8ffcd5 100644
--- a/public/doxa-maps/dashboard-plus-grid/dashboard-plus-grid.js
+++ b/public/doxa-maps/dashboard-plus-grid/dashboard-plus-grid.js
@@ -663,7 +663,7 @@
z-index:2; touch-action:pan-y; pointer-events:auto; background:transparent; }
.map-scroll-edge--left{ left:0; }
.map-scroll-edge--right{ right:0; }
-`,"rd-mappanel"),(R,Z)=>(H(),K("div",{ref_key:"mapWrap",ref:ee,class:"rd-mapwrap","data-sub":"map","data-projection":J.value},[I("div",{ref_key:"mapContainer",ref:P,class:"rd-mapc","data-map-canvas":""},null,512),Z[1]||(Z[1]=I("div",{class:"map-scroll-edge map-scroll-edge--left"},null,-1)),Z[2]||(Z[2]=I("div",{class:"map-scroll-edge map-scroll-edge--right"},null,-1)),Pe(wx,{class:"rd-zoomtools","has-geocoder":!1,"data-map-zoom-controls":""},{default:yo(()=>[Pe(kx,{map:he(w),disabled:!h.value},null,8,["map","disabled"]),Pe($x,{map:he(w),disabled:!F.value},null,8,["map","disabled"])]),_:1}),I("span",{class:"rd-proj",role:"button",tabindex:"0","data-proj-toggle":"",onClick:pe},ce(J.value==="globe"?"🌐 Globe":"▭ Flat"),1),Z[3]||(Z[3]=I("div",{class:"rd-maptag"},"UPG choropleth · click a country to filter · click a pin to select",-1)),I("div",Ex,[Z[0]||(Z[0]=I("div",{class:"lg-h"},"UPGs / country",-1)),(H(!0),K(xe,null,He(ge.value,ie=>(H(),K("div",{key:ie.l,class:"lg-row"},[I("span",{class:"lg-sw",style:it({background:ie.c})},null,4),I("span",null,ce(ie.l),1)]))),128))])],8,Sx))}},Px=".filter-dropdown{position:relative;flex:0 0 auto;width:var(--dx-filter-w, 168px);min-width:var(--dx-filter-w, 168px);max-width:var(--dx-filter-w, 168px)}@media (max-width: 576px){.filter-dropdown{width:var(--dx-filter-w-sm, 140px);min-width:var(--dx-filter-w-sm, 140px);max-width:var(--dx-filter-w-sm, 140px)}}.filter-dropdown__trigger{width:100%;padding:var(--dx-filter-pad-y, 4px) 12px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:6px;font-size:.875rem;color:var(--dx-text, #3b463d);text-align:start;background:var(--dx-elevated, #fff);border:1px solid var(--dx-line, #d1d4cd);border-radius:8px;transition:border-color .15s ease}.filter-dropdown__trigger:hover{border-color:var(--dx-accent, #92b195)}.filter-dropdown__trigger[data-active]{background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18));border-color:var(--dx-accent, #92b195)}.filter-dropdown__label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-dropdown__chevron{flex-shrink:0;transition:transform .2s ease}.filter-dropdown.is-open .filter-dropdown__chevron{transform:rotate(180deg)}.filter-dropdown__menu{position:fixed;z-index:2147483000;background-color:var(--dx-elevated, #fff);color:var(--dx-text, #3b463d);border:1px solid var(--dx-line, #d1d4cd);border-radius:8px;box-shadow:0 4px 12px #0000001f;overflow:hidden;display:flex;flex-direction:column;min-width:160px}.filter-dropdown__search{border:none;border-bottom:1px solid var(--dx-line, #d1d4cd);border-radius:0;padding:6px 12px;width:100%;font-size:.875rem;color:var(--dx-text, #3b463d);background:var(--dx-elevated, #fff);outline:none;box-sizing:border-box}.filter-dropdown__search::placeholder{color:var(--dx-muted, #6d766e)}.filter-dropdown__clear{display:block;width:100%;background:none;border:none;border-bottom:1px solid var(--dx-line, #d1d4cd);padding:6px 12px;font-size:.875rem;color:var(--dx-text, #3b463d);cursor:pointer;text-align:start;text-decoration:underline;text-decoration-color:var(--dx-accent, #92b195);text-underline-offset:3px}.filter-dropdown__clear:hover{background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18))}.filter-dropdown__options{flex:1 1 auto;min-height:0;max-height:250px;overflow-y:auto}.filter-dropdown__search,.filter-dropdown__clear{flex:0 0 auto}.filter-dropdown__option{padding:5px 12px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-size:.875rem;transition:background-color .1s ease}.filter-dropdown__option[data-selected]{font-weight:700;color:var(--dx-text, #3b463d);box-shadow:inset 3px 0 0 var(--dx-accent, #92b195)}.filter-dropdown__option:hover,.filter-dropdown__option[data-highlighted]{background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18))}.filter-dropdown__count{color:var(--dx-muted, #6d766e);font-size:.75rem;margin-inline-start:6px}.filter-dropdown__no-options{padding:12px;font-size:.875rem;color:var(--dx-muted, #6d766e);text-align:center}",Nx=["data-active","aria-expanded"],Ix={class:"filter-dropdown__label"},Fx=["value","placeholder"],Rx={class:"filter-dropdown__options"},Mx={key:0,class:"filter-dropdown__no-options"},Ox=["data-highlighted","data-selected","aria-selected","onClick","onMouseenter"],Dx={class:"filter-dropdown__count"},Jn=dn({__name:"FilterDropdown",props:{label:{type:String,required:!0},name:{type:String,required:!0},options:{type:Array,default:()=>[]},value:{type:String,default:""},placeholder:{type:String,default:"Type to search..."}},emits:["filter-change","filter-clear"],setup(e,{emit:t}){const o=e,n=t,r=ue(!1),s=ue(""),a=ue(-1),l=ue(null),i=ue(null),c=ue(null),u=ue({});function p(A){const U=A.ownerDocument,X=U.createElement("div");X.style.cssText="position:fixed;top:0;left:0;width:0;height:0;pointer-events:none;opacity:0",(A.parentElement||A.getRootNode().body||U.body).appendChild(X);const me=X.getBoundingClientRect();return X.remove(),{x:me.left,y:me.top}}function m(){const A=c.value;if(!A)return;const U=A.getBoundingClientRect(),X=window.innerWidth,re=window.innerHeight,me=320,q=4,Y=8,C=Math.round(Math.min(U.width,X-Y*2)),T=U.right>Y&&U.leftX-Y?M=Math.round(Math.max(U.right-C,Y)):M=Math.round(Math.max(U.left,Y)):M=Math.round(Math.min(Math.max(U.left,Y),X-C-Y));const z=re-U.bottom,Q=z<180&&U.top>z,se=p(A),te=Math.round(M-se.x);u.value=Q?{top:"auto",bottom:`${Math.round(re-U.top+q+se.y)}px`,left:`${te}px`,width:`${C}px`,maxHeight:`${Math.round(Math.min(me,U.top-q-Y))}px`}:{top:`${Math.round(U.bottom+q-se.y)}px`,bottom:"auto",left:`${te}px`,width:`${C}px`,maxHeight:`${Math.round(Math.min(me,z-q-Y))}px`}}function v(){r.value&&m()}const P=le(()=>{if(!s.value)return o.options;const A=s.value.toLowerCase();return o.options.filter(U=>U.label.toLowerCase().includes(A))}),x=le(()=>o.options.find(A=>A.value===o.value));function w(A){var X;const U=((X=A.composedPath)==null?void 0:X.call(A))??[];l.value&&!U.includes(l.value)&&f()}function N(){r.value?f():y()}function y(){r.value=!0,s.value="",a.value=-1,m(),document.addEventListener("click",w),window.addEventListener("scroll",v,!0),window.addEventListener("resize",v),$n(()=>{var A;m(),(A=i.value)==null||A.focus()})}function f(){r.value=!1,s.value="",a.value=-1,document.removeEventListener("click",w),window.removeEventListener("scroll",v,!0),window.removeEventListener("resize",v)}function g(A){s.value=A.target.value,a.value=-1}function _(A){const U=P.value;switch(A.key){case"ArrowDown":A.preventDefault(),a.value=Math.min(a.value+1,U.length-1),E();break;case"ArrowUp":A.preventDefault(),a.value=Math.max(a.value-1,0),E();break;case"Enter":{A.preventDefault();const X=U[a.value];X&&$(X);break}case"Escape":A.preventDefault(),f();break}}function E(){$n(()=>{var U;const A=(U=l.value)==null?void 0:U.querySelector(".filter-dropdown__option[data-highlighted]");A==null||A.scrollIntoView({block:"nearest"})})}function $(A){n("filter-change",{name:o.name,value:A.value,label:A.label,type:A.type}),f()}function O(){n("filter-clear",{name:o.name}),f()}return Ht(()=>{document.removeEventListener("click",w),window.removeEventListener("scroll",v,!0),window.removeEventListener("resize",v)}),(A,U)=>(H(),K("div",{ref_key:"rootRef",ref:l,class:Me(["filter-dropdown",{"is-open":r.value}])},[I("button",{ref_key:"triggerRef",ref:c,class:"filter-dropdown__trigger input","data-active":e.value?"":void 0,type:"button","aria-haspopup":"listbox","aria-expanded":r.value,onClick:N},[I("span",Ix,[x.value?(H(),K(xe,{key:0},[nt(ce(e.label)+": ",1),I("strong",null,ce(x.value.label),1)],64)):(H(),K(xe,{key:1},[nt(ce(e.label),1)],64))]),U[0]||(U[0]=I("svg",{class:"filter-dropdown__chevron",width:"12",height:"12",viewBox:"0 0 12 12",xmlns:"http://www.w3.org/2000/svg"},[I("path",{d:"M2 4l4 4 4-4",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],8,Nx),r.value?(H(),K("div",{key:0,class:"filter-dropdown__menu",role:"listbox",style:it(u.value)},[I("input",{ref_key:"searchInputRef",ref:i,class:"filter-dropdown__search",type:"text",value:s.value,placeholder:e.placeholder,onInput:g,onKeydown:_},null,40,Fx),e.value?(H(),K("button",{key:0,class:"filter-dropdown__clear",type:"button",onClick:O},"Clear selection")):Ce("",!0),I("div",Rx,[P.value.length===0?(H(),K("div",Mx,"No options found")):(H(!0),K(xe,{key:1},He(P.value,(X,re)=>(H(),K("div",{key:X.value,class:"filter-dropdown__option",role:"option","data-highlighted":re===a.value?"":void 0,"data-selected":X.value===e.value?"":void 0,"aria-selected":X.value===e.value,onClick:me=>$(X),onMouseenter:me=>a.value=re},[I("span",null,ce(X.label),1),I("span",Dx,ce(X.count),1)],40,Ox))),128))])],4)):Ce("",!0)],2))}},[["styles",[Px]]]),jx=".sfh{--brand: var(--dx-accent, #92b195);--ink: var(--dx-text, #3b463d);--mut: var(--dx-muted, #6d766e);--line: var(--dx-line, #d1d4cd);--card: var(--dx-elevated, #fff);display:flex;flex-direction:column;gap:var(--dx-sfh-gap, 4px);width:100%;box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;color:var(--ink)}.sfh__search-row{display:flex;align-items:center;gap:12px;justify-content:center}.sfh__search-row>:first-child{flex:0 1 auto}.sfh__toggle{flex:0 0 auto;background:none;border:none;cursor:pointer;font-size:.875rem;color:var(--ink);display:inline-flex;align-items:center;gap:4px;white-space:nowrap;padding:4px 2px;text-decoration:underline;text-decoration-color:var(--brand);text-underline-offset:4px}.sfh__toggle-chev{transition:transform .2s ease}.sfh__toggle[aria-expanded=true] .sfh__toggle-chev{transform:rotate(180deg)}.sfh__filters-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--dx-filter-gap, 10px);justify-content:space-evenly;justify-content:safe space-evenly;overflow-x:clip;padding-bottom:2px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.sfh__dd{flex:0 0 auto}.sfh__filters-row::-webkit-scrollbar{height:8px}.sfh__filters-row::-webkit-scrollbar-thumb{background:var(--dx-scroll-thumb, #c4c8c0);border-radius:8px}.sfh__filters-row::-webkit-scrollbar-track{background:transparent}.sfh__pill{flex:0 0 auto;padding:6px 12px;cursor:pointer;font-size:.875rem;color:inherit;background:var(--card);border:1px solid var(--line);border-radius:8px;white-space:nowrap;transition:border-color .15s ease,background .15s ease}.sfh__pill:hover{border-color:var(--brand)}.sfh__pill[data-active]{background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18));border-color:var(--brand);color:var(--ink)}.sfh__chips{display:flex;flex-wrap:nowrap;gap:6px;align-items:center;justify-content:center;min-height:var(--dx-sel-row-h, 16px)}.sfh__chip-strip{flex:0 1 auto;min-width:0;display:flex;flex-wrap:nowrap;gap:6px;align-items:center;justify-content:center;justify-content:safe center;overflow-x:auto;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.sfh__chip-strip::-webkit-scrollbar{height:6px}.sfh__chip-strip::-webkit-scrollbar-thumb{background:var(--dx-scroll-thumb, #c4c8c0);border-radius:8px}.sfh__chip-strip::-webkit-scrollbar-track{background:transparent}.sfh__sel-label{flex:0 0 auto;font-size:.6875rem;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--mut, #6d766e);opacity:.75}.sfh__sel-world{flex:0 0 auto;font-size:.75rem;color:var(--mut, #6d766e)}.sfh__chip{flex:0 0 auto;display:inline-flex;gap:4px;align-items:center;background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18));color:var(--ink);border:1px solid var(--line);border-radius:100px;padding:0 8px;font-size:.75rem;line-height:1;white-space:nowrap;height:var(--dx-sel-row-h, 16px);box-sizing:border-box}.sfh__chip-x{background:none;border:none;cursor:pointer;font-size:1.05em;line-height:1;color:inherit;padding:0;display:inline-flex;align-items:center}.sfh__chip-x:hover{opacity:.7}.sfh__clear{flex:0 0 auto;white-space:nowrap;background:none;border:none;cursor:pointer;font-size:.75rem;line-height:1;color:var(--mut, #6d766e);text-decoration:underline;text-decoration-color:var(--brand);text-underline-offset:3px;padding:0 4px;margin-inline-start:2px}.sfh__clear:hover{color:var(--ink)}",zx={class:"sfh"},Ux={key:0,class:"sfh__search-row"},Bx=["aria-expanded"],Gx=["aria-label"],qx=["data-active","onClick"],Vx={class:"sfh__chip-strip"},Hx={class:"sfh__sel-label"},Wx=["aria-label","onClick"],Kx={key:1,class:"sfh__sel-world"},Yx=dn({__name:"SearchFilterHeader",props:{search:{type:String,default:""},filters:{type:Array,default:()=>[]},toggles:{type:Array,default:()=>[]},activeChips:{type:Array,default:null},searchPlaceholder:{type:String,default:"Search…"},searchMaxWidth:{type:String,default:"520px"},showSearch:{type:[Boolean,String],default:!0},showFilters:{type:[Boolean,String],default:!0},startExpanded:{type:Boolean,default:!1},collapsible:{type:Boolean,default:!0},labels:{type:Object,default:()=>({})}},emits:["update:search","search","filter-change","filter-clear","toggle","remove-filter","clear-all"],setup(e,{emit:t}){const o=e,n=t,r=y=>!(y===!1||y==="false"||y==="0"||y===0),s=le(()=>r(o.showSearch)),a=le(()=>r(o.showFilters)),l=le(()=>({show_filters:"Show Filters",hide_filters:"Hide Filters",clear_all:"Clear All",type_to_search:"Type to search...",filters:"Filters",...o.labels})),i=ue(o.startExpanded||!o.collapsible);function c(){i.value=!i.value}const u=le(()=>!o.collapsible||!s.value||i.value),p=le(()=>{if(Array.isArray(o.activeChips))return o.activeChips;const y=[];for(const f of o.filters){if(!f.value)continue;const g=(f.options||[]).find(_=>_.value===f.value);y.push({name:f.name,label:g?g.label:f.value})}for(const f of o.toggles)f.active&&y.push({name:f.name,label:f.label});return y});function m(y){const f=(y==null?void 0:y.value)??"";n("update:search",f),n("search",{value:f})}function v(y){n("filter-change",y)}function P(y){n("filter-clear",y)}function x(y){n("toggle",{name:y.name,active:!y.active})}function w(y){n("remove-filter",{name:y})}function N(){n("clear-all")}return(y,f)=>(H(),K("div",zx,[s.value?(H(),K("div",Ux,[Pe(Sa,{"model-value":e.search,placeholder:e.searchPlaceholder,"aria-label":e.searchPlaceholder,"max-width":e.searchMaxWidth,onSearch:m},null,8,["model-value","placeholder","aria-label","max-width"]),a.value&&e.collapsible?(H(),K("button",{key:0,class:"sfh__toggle",type:"button","aria-expanded":u.value,onClick:c},[nt(ce(u.value?l.value.hide_filters:l.value.show_filters)+" ",1),f[0]||(f[0]=I("svg",{class:"sfh__toggle-chev",width:"12",height:"12",viewBox:"0 0 12 12",xmlns:"http://www.w3.org/2000/svg"},[I("path",{d:"M2 4l4 4 4-4",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],8,Bx)):Ce("",!0)])):Ce("",!0),a.value&&u.value?(H(),K("div",{key:1,class:"sfh__filters-row",role:"group","aria-label":l.value.filters},[(H(!0),K(xe,null,He(e.filters,g=>(H(),xo(Jn,{key:g.name,class:"sfh__dd",label:g.label,name:g.name,options:g.options||[],value:g.value||"",placeholder:g.placeholder||l.value.type_to_search,onFilterChange:v,onFilterClear:P},null,8,["label","name","options","value","placeholder"]))),128)),(H(!0),K(xe,null,He(e.toggles,g=>(H(),K("button",{key:g.name,class:"sfh__pill",type:"button","data-active":g.active?"":void 0,onClick:_=>x(g)},ce(g.label),9,qx))),128))],8,Gx)):Ce("",!0),a.value?(H(),K("div",{key:2,class:Me(["sfh__chips",{"is-empty":!p.value.length}])},[I("div",Vx,[I("span",Hx,ce(l.value.selected||"Selected"),1),p.value.length?(H(),K(xe,{key:0},[(H(!0),K(xe,null,He(p.value,g=>(H(),K("span",{key:g.name,class:"sfh__chip"},[nt(ce(g.label)+" ",1),I("button",{class:"sfh__chip-x",type:"button","aria-label":`Remove ${g.label}`,onClick:_=>w(g.name)},"×",8,Wx)]))),128)),I("button",{class:"sfh__clear",type:"button",onClick:N},ce(l.value.clear_all),1)],64)):(H(),K("span",Kx,ce(l.value.world||"World"),1))])],2)):Ce("",!0)]))}},[["styles",[jx]]]),Xx={class:"rd-research-filters","data-region":"filters","data-sub":"research-filters"},Yr="prayer_level",Jx={__name:"DashboardResearchFilters",setup(e){const t=Le("selectionBus",null),o=Le("dashboardData",null),n=Le("dashboardConfig",{}),r=le(()=>{var $;return(($=o==null?void 0:o.rows)==null?void 0:$.value)||[]}),s=(t==null?void 0:t.filterSet)||{},a={label:"Prayer",get:$=>{const O=$==null?void 0:$.people_praying,A=O&&typeof O=="object"?O.value:O;return Vn[an({peoplePraying:A??null})]}},l=le(()=>({[Yr]:a,...n.facets||{}})),i=le(()=>Object.fromEntries(Object.entries(l.value).map(([$,O])=>[$,O.get]))),c=le(()=>n.researchFilters||{}),u=le(()=>{const $=c.value.dropdowns||["wagf_region","wagf_block","country_code","people_group","religion"];return[Yr,...$.filter(O=>O!==Yr)]}),p=le(()=>c.value.searchPlaceholder||"Search people groups, place, language, religion…");function m($,O){const A=Object.keys($);return A.length?O.filter(U=>A.every(X=>{const re=i.value[X];return re?re(U)===$[X]:!0})):O}function v($){var me;const O=i.value[$];if(!O)return[];const A=(me=l.value[$])==null?void 0:me.optionLabel,U={};for(const[q,Y]of Object.entries(s))q!==$&&(U[q]=Y);const X=m(U,r.value),re=new Map;for(const q of X){const Y=O(q);if(Y==null||Y==="")continue;const C=re.get(Y);C?C.count+=1:re.set(Y,{label:A&&A(q)||Y,count:1})}return Array.from(re.entries()).map(([q,{label:Y,count:C}])=>({value:q,label:Y,count:C})).sort((q,Y)=>String(q.label).localeCompare(String(Y.label)))}const P=le(()=>u.value.map($=>{var O;return{name:$,label:((O=l.value[$])==null?void 0:O.label)||$,options:v($),value:s[$]||""}})),{labelFor:x}=Wn(n,Le("dataStore",null),Le("searchSourceId",null)),w=le(()=>Object.keys(s).map($=>{var A;const O=s[$];return{name:$,label:`${((A=l.value[$])==null?void 0:A.label)||$}: ${$===Yr?O:x($,O)}`}})),N=le(()=>{var $;return(($=t==null?void 0:t.searchTerm)==null?void 0:$.value)||""});function y($){t==null||t.setSearch(($==null?void 0:$.value)??"")}function f($){t==null||t.setFilter($.name,$.value)}function g($){t==null||t.setFilter($.name,null)}function _($){t==null||t.setFilter($.name,null)}function E(){t==null||t.clearFilters()}return Et(`
+`,"rd-mappanel"),(R,Z)=>(H(),K("div",{ref_key:"mapWrap",ref:ee,class:"rd-mapwrap","data-sub":"map","data-projection":J.value},[I("div",{ref_key:"mapContainer",ref:P,class:"rd-mapc","data-map-canvas":""},null,512),Z[1]||(Z[1]=I("div",{class:"map-scroll-edge map-scroll-edge--left"},null,-1)),Z[2]||(Z[2]=I("div",{class:"map-scroll-edge map-scroll-edge--right"},null,-1)),Pe(wx,{class:"rd-zoomtools","has-geocoder":!1,"data-map-zoom-controls":""},{default:yo(()=>[Pe(kx,{map:he(w),disabled:!h.value},null,8,["map","disabled"]),Pe($x,{map:he(w),disabled:!F.value},null,8,["map","disabled"])]),_:1}),I("span",{class:"rd-proj",role:"button",tabindex:"0","data-proj-toggle":"",onClick:pe},ce(J.value==="globe"?"🌐 Globe":"▭ Flat"),1),Z[3]||(Z[3]=I("div",{class:"rd-maptag"},"UPG choropleth · click a country to filter · click a pin to select",-1)),I("div",Ex,[Z[0]||(Z[0]=I("div",{class:"lg-h"},"UPGs / country",-1)),(H(!0),K(xe,null,He(ge.value,ie=>(H(),K("div",{key:ie.l,class:"lg-row"},[I("span",{class:"lg-sw",style:it({background:ie.c})},null,4),I("span",null,ce(ie.l),1)]))),128))])],8,Sx))}},Px=".filter-dropdown{position:relative;flex:0 0 auto;width:var(--dx-filter-w, 168px);min-width:var(--dx-filter-w, 168px);max-width:var(--dx-filter-w, 168px)}@media (max-width: 576px){.filter-dropdown{width:var(--dx-filter-w-sm, 140px);min-width:var(--dx-filter-w-sm, 140px);max-width:var(--dx-filter-w-sm, 140px)}}.filter-dropdown__trigger{width:100%;padding:var(--dx-filter-pad-y, 4px) 12px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:6px;font-size:.875rem;color:var(--dx-text, #3b463d);text-align:start;background:var(--dx-elevated, #fff);border:1px solid var(--dx-line, #d1d4cd);border-radius:8px;transition:border-color .15s ease}.filter-dropdown__trigger:hover{border-color:var(--dx-accent, #92b195)}.filter-dropdown__trigger[data-active]{background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18));border-color:var(--dx-accent, #92b195)}.filter-dropdown__label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-dropdown__chevron{flex-shrink:0;transition:transform .2s ease}.filter-dropdown.is-open .filter-dropdown__chevron{transform:rotate(180deg)}.filter-dropdown__menu{position:fixed;z-index:2147483000;background-color:var(--dx-elevated, #fff);color:var(--dx-text, #3b463d);border:1px solid var(--dx-line, #d1d4cd);border-radius:8px;box-shadow:0 4px 12px #0000001f;overflow:hidden;display:flex;flex-direction:column;min-width:160px}.filter-dropdown__search{border:none;border-bottom:1px solid var(--dx-line, #d1d4cd);border-radius:0;padding:6px 12px;width:100%;font-size:.875rem;color:var(--dx-text, #3b463d);background:var(--dx-elevated, #fff);outline:none;box-sizing:border-box}.filter-dropdown__search::placeholder{color:var(--dx-muted, #6d766e)}.filter-dropdown__clear{display:block;width:100%;background:none;border:none;border-bottom:1px solid var(--dx-line, #d1d4cd);padding:6px 12px;font-size:.875rem;color:var(--dx-text, #3b463d);cursor:pointer;text-align:start;text-decoration:underline;text-decoration-color:var(--dx-accent, #92b195);text-underline-offset:3px}.filter-dropdown__clear:hover{background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18))}.filter-dropdown__options{flex:1 1 auto;min-height:0;max-height:250px;overflow-y:auto}.filter-dropdown__search,.filter-dropdown__clear{flex:0 0 auto}.filter-dropdown__option{padding:5px 12px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-size:.875rem;transition:background-color .1s ease}.filter-dropdown__option[data-selected]{font-weight:700;color:var(--dx-text, #3b463d);box-shadow:inset 3px 0 0 var(--dx-accent, #92b195)}.filter-dropdown__option:hover,.filter-dropdown__option[data-highlighted]{background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18))}.filter-dropdown__count{color:var(--dx-muted, #6d766e);font-size:.75rem;margin-inline-start:6px}.filter-dropdown__no-options{padding:12px;font-size:.875rem;color:var(--dx-muted, #6d766e);text-align:center}",Nx=["data-active","aria-expanded"],Ix={class:"filter-dropdown__label"},Fx=["value","placeholder"],Rx={class:"filter-dropdown__options"},Mx={key:0,class:"filter-dropdown__no-options"},Ox=["data-highlighted","data-selected","aria-selected","onClick","onMouseenter"],Dx={class:"filter-dropdown__count"},Jn=dn({__name:"FilterDropdown",props:{label:{type:String,required:!0},name:{type:String,required:!0},options:{type:Array,default:()=>[]},value:{type:String,default:""},placeholder:{type:String,default:"Type to search..."}},emits:["filter-change","filter-clear"],setup(e,{emit:t}){const o=e,n=t,r=ue(!1),s=ue(""),a=ue(-1),l=ue(null),i=ue(null),c=ue(null),u=ue({});function p(A){const U=A.ownerDocument,X=U.createElement("div");X.style.cssText="position:fixed;top:0;left:0;width:0;height:0;pointer-events:none;opacity:0",(A.parentElement||A.getRootNode().body||U.body).appendChild(X);const me=X.getBoundingClientRect();return X.remove(),{x:me.left,y:me.top}}function m(){const A=c.value;if(!A)return;const U=A.getBoundingClientRect(),X=window.innerWidth,re=window.innerHeight,me=320,q=4,Y=8,C=Math.round(Math.min(U.width,X-Y*2)),T=U.right>Y&&U.leftX-Y?M=Math.round(Math.max(U.right-C,Y)):M=Math.round(Math.max(U.left,Y)):M=Math.round(Math.min(Math.max(U.left,Y),X-C-Y));const z=re-U.bottom,Q=z<180&&U.top>z,se=p(A),te=Math.round(M-se.x);u.value=Q?{top:"auto",bottom:`${Math.round(re-U.top+q+se.y)}px`,left:`${te}px`,width:`${C}px`,maxHeight:`${Math.round(Math.min(me,U.top-q-Y))}px`}:{top:`${Math.round(U.bottom+q-se.y)}px`,bottom:"auto",left:`${te}px`,width:`${C}px`,maxHeight:`${Math.round(Math.min(me,z-q-Y))}px`}}function v(){r.value&&m()}const P=le(()=>{if(!s.value)return o.options;const A=s.value.toLowerCase();return o.options.filter(U=>U.label.toLowerCase().includes(A))}),x=le(()=>o.options.find(A=>A.value===o.value));function w(A){var X;const U=((X=A.composedPath)==null?void 0:X.call(A))??[];l.value&&!U.includes(l.value)&&f()}function N(){r.value?f():y()}function y(){r.value=!0,s.value="",a.value=-1,m(),document.addEventListener("click",w),window.addEventListener("scroll",v,!0),window.addEventListener("resize",v),$n(()=>{var A;m(),(A=i.value)==null||A.focus()})}function f(){r.value=!1,s.value="",a.value=-1,document.removeEventListener("click",w),window.removeEventListener("scroll",v,!0),window.removeEventListener("resize",v)}function g(A){s.value=A.target.value,a.value=-1}function _(A){const U=P.value;switch(A.key){case"ArrowDown":A.preventDefault(),a.value=Math.min(a.value+1,U.length-1),E();break;case"ArrowUp":A.preventDefault(),a.value=Math.max(a.value-1,0),E();break;case"Enter":{A.preventDefault();const X=U[a.value];X&&$(X);break}case"Escape":A.preventDefault(),f();break}}function E(){$n(()=>{var U;const A=(U=l.value)==null?void 0:U.querySelector(".filter-dropdown__option[data-highlighted]");A==null||A.scrollIntoView({block:"nearest"})})}function $(A){n("filter-change",{name:o.name,value:A.value,label:A.label,type:A.type}),f()}function O(){n("filter-clear",{name:o.name}),f()}return Ht(()=>{document.removeEventListener("click",w),window.removeEventListener("scroll",v,!0),window.removeEventListener("resize",v)}),(A,U)=>(H(),K("div",{ref_key:"rootRef",ref:l,class:Me(["filter-dropdown",{"is-open":r.value}])},[I("button",{ref_key:"triggerRef",ref:c,class:"filter-dropdown__trigger input","data-active":e.value?"":void 0,type:"button","aria-haspopup":"listbox","aria-expanded":r.value,onClick:N},[I("span",Ix,[x.value?(H(),K(xe,{key:0},[nt(ce(e.label)+": ",1),I("strong",null,ce(x.value.label),1)],64)):(H(),K(xe,{key:1},[nt(ce(e.label),1)],64))]),U[0]||(U[0]=I("svg",{class:"filter-dropdown__chevron",width:"12",height:"12",viewBox:"0 0 12 12",xmlns:"http://www.w3.org/2000/svg"},[I("path",{d:"M2 4l4 4 4-4",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],8,Nx),r.value?(H(),K("div",{key:0,class:"filter-dropdown__menu",role:"listbox",style:it(u.value)},[I("input",{ref_key:"searchInputRef",ref:i,class:"filter-dropdown__search",type:"text",value:s.value,placeholder:e.placeholder,onInput:g,onKeydown:_},null,40,Fx),e.value?(H(),K("button",{key:0,class:"filter-dropdown__clear",type:"button",onClick:O},"Clear selection")):Ce("",!0),I("div",Rx,[P.value.length===0?(H(),K("div",Mx,"No options found")):(H(!0),K(xe,{key:1},He(P.value,(X,re)=>(H(),K("div",{key:X.value,class:"filter-dropdown__option",role:"option","data-highlighted":re===a.value?"":void 0,"data-selected":X.value===e.value?"":void 0,"aria-selected":X.value===e.value,onClick:me=>$(X),onMouseenter:me=>a.value=re},[I("span",null,ce(X.label),1),I("span",Dx,ce(X.count),1)],40,Ox))),128))])],4)):Ce("",!0)],2))}},[["styles",[Px]]]),jx=".sfh{--brand: var(--dx-accent, #92b195);--ink: var(--dx-text, #3b463d);--mut: var(--dx-muted, #6d766e);--line: var(--dx-line, #d1d4cd);--card: var(--dx-elevated, #fff);display:flex;flex-direction:column;gap:var(--dx-sfh-gap, 4px);width:100%;box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;color:var(--ink)}.sfh__search-row{display:flex;align-items:center;gap:12px;justify-content:center}.sfh__search-row>:first-child{flex:0 1 auto}.sfh__toggle{flex:0 0 auto;background:none;border:none;cursor:pointer;font-size:.875rem;color:var(--ink);display:inline-flex;align-items:center;gap:4px;white-space:nowrap;padding:4px 2px;text-decoration:underline;text-decoration-color:var(--brand);text-underline-offset:4px}.sfh__toggle-chev{transition:transform .2s ease}.sfh__toggle[aria-expanded=true] .sfh__toggle-chev{transform:rotate(180deg)}.sfh__filters-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--dx-filter-gap, 10px);justify-content:flex-start;overflow-x:clip;padding-bottom:2px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.sfh__dd{flex:0 0 auto}.sfh__filters-row::-webkit-scrollbar{height:8px}.sfh__filters-row::-webkit-scrollbar-thumb{background:var(--dx-scroll-thumb, #c4c8c0);border-radius:8px}.sfh__filters-row::-webkit-scrollbar-track{background:transparent}.sfh__pill{flex:0 0 auto;padding:6px 12px;cursor:pointer;font-size:.875rem;color:inherit;background:var(--card);border:1px solid var(--line);border-radius:8px;white-space:nowrap;transition:border-color .15s ease,background .15s ease}.sfh__pill:hover{border-color:var(--brand)}.sfh__pill[data-active]{background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18));border-color:var(--brand);color:var(--ink)}.sfh__chips{display:flex;flex-wrap:nowrap;gap:6px;align-items:center;justify-content:center;min-height:var(--dx-sel-row-h, 16px)}.sfh__chip-strip{flex:0 1 auto;min-width:0;display:flex;flex-wrap:nowrap;gap:6px;align-items:center;justify-content:center;justify-content:safe center;overflow-x:auto;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.sfh__chip-strip::-webkit-scrollbar{height:6px}.sfh__chip-strip::-webkit-scrollbar-thumb{background:var(--dx-scroll-thumb, #c4c8c0);border-radius:8px}.sfh__chip-strip::-webkit-scrollbar-track{background:transparent}.sfh__sel-label{flex:0 0 auto;font-size:.6875rem;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--mut, #6d766e);opacity:.75}.sfh__sel-world{flex:0 0 auto;font-size:.75rem;color:var(--mut, #6d766e)}.sfh__chip{flex:0 0 auto;display:inline-flex;gap:4px;align-items:center;background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18));color:var(--ink);border:1px solid var(--line);border-radius:100px;padding:0 8px;font-size:.75rem;line-height:1;white-space:nowrap;height:var(--dx-sel-row-h, 16px);box-sizing:border-box}.sfh__chip-x{background:none;border:none;cursor:pointer;font-size:1.05em;line-height:1;color:inherit;padding:0;display:inline-flex;align-items:center}.sfh__chip-x:hover{opacity:.7}.sfh__clear{flex:0 0 auto;white-space:nowrap;background:none;border:none;cursor:pointer;font-size:.75rem;line-height:1;color:var(--mut, #6d766e);text-decoration:underline;text-decoration-color:var(--brand);text-underline-offset:3px;padding:0 4px;margin-inline-start:2px}.sfh__clear:hover{color:var(--ink)}",zx={class:"sfh"},Ux={key:0,class:"sfh__search-row"},Bx=["aria-expanded"],Gx=["aria-label"],qx=["data-active","onClick"],Vx={class:"sfh__chip-strip"},Hx={class:"sfh__sel-label"},Wx=["aria-label","onClick"],Kx={key:1,class:"sfh__sel-world"},Yx=dn({__name:"SearchFilterHeader",props:{search:{type:String,default:""},filters:{type:Array,default:()=>[]},toggles:{type:Array,default:()=>[]},activeChips:{type:Array,default:null},searchPlaceholder:{type:String,default:"Search…"},searchMaxWidth:{type:String,default:"520px"},showSearch:{type:[Boolean,String],default:!0},showFilters:{type:[Boolean,String],default:!0},startExpanded:{type:Boolean,default:!1},collapsible:{type:Boolean,default:!0},labels:{type:Object,default:()=>({})}},emits:["update:search","search","filter-change","filter-clear","toggle","remove-filter","clear-all"],setup(e,{emit:t}){const o=e,n=t,r=y=>!(y===!1||y==="false"||y==="0"||y===0),s=le(()=>r(o.showSearch)),a=le(()=>r(o.showFilters)),l=le(()=>({show_filters:"Show Filters",hide_filters:"Hide Filters",clear_all:"Clear All",type_to_search:"Type to search...",filters:"Filters",...o.labels})),i=ue(o.startExpanded||!o.collapsible);function c(){i.value=!i.value}const u=le(()=>!o.collapsible||!s.value||i.value),p=le(()=>{if(Array.isArray(o.activeChips))return o.activeChips;const y=[];for(const f of o.filters){if(!f.value)continue;const g=(f.options||[]).find(_=>_.value===f.value);y.push({name:f.name,label:g?g.label:f.value})}for(const f of o.toggles)f.active&&y.push({name:f.name,label:f.label});return y});function m(y){const f=(y==null?void 0:y.value)??"";n("update:search",f),n("search",{value:f})}function v(y){n("filter-change",y)}function P(y){n("filter-clear",y)}function x(y){n("toggle",{name:y.name,active:!y.active})}function w(y){n("remove-filter",{name:y})}function N(){n("clear-all")}return(y,f)=>(H(),K("div",zx,[s.value?(H(),K("div",Ux,[Pe(Sa,{"model-value":e.search,placeholder:e.searchPlaceholder,"aria-label":e.searchPlaceholder,"max-width":e.searchMaxWidth,onSearch:m},null,8,["model-value","placeholder","aria-label","max-width"]),a.value&&e.collapsible?(H(),K("button",{key:0,class:"sfh__toggle",type:"button","aria-expanded":u.value,onClick:c},[nt(ce(u.value?l.value.hide_filters:l.value.show_filters)+" ",1),f[0]||(f[0]=I("svg",{class:"sfh__toggle-chev",width:"12",height:"12",viewBox:"0 0 12 12",xmlns:"http://www.w3.org/2000/svg"},[I("path",{d:"M2 4l4 4 4-4",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],8,Bx)):Ce("",!0)])):Ce("",!0),a.value&&u.value?(H(),K("div",{key:1,class:"sfh__filters-row",role:"group","aria-label":l.value.filters},[(H(!0),K(xe,null,He(e.filters,g=>(H(),xo(Jn,{key:g.name,class:"sfh__dd",label:g.label,name:g.name,options:g.options||[],value:g.value||"",placeholder:g.placeholder||l.value.type_to_search,onFilterChange:v,onFilterClear:P},null,8,["label","name","options","value","placeholder"]))),128)),(H(!0),K(xe,null,He(e.toggles,g=>(H(),K("button",{key:g.name,class:"sfh__pill",type:"button","data-active":g.active?"":void 0,onClick:_=>x(g)},ce(g.label),9,qx))),128))],8,Gx)):Ce("",!0),a.value?(H(),K("div",{key:2,class:Me(["sfh__chips",{"is-empty":!p.value.length}])},[I("div",Vx,[I("span",Hx,ce(l.value.selected||"Selected"),1),p.value.length?(H(),K(xe,{key:0},[(H(!0),K(xe,null,He(p.value,g=>(H(),K("span",{key:g.name,class:"sfh__chip"},[nt(ce(g.label)+" ",1),I("button",{class:"sfh__chip-x",type:"button","aria-label":`Remove ${g.label}`,onClick:_=>w(g.name)},"×",8,Wx)]))),128)),I("button",{class:"sfh__clear",type:"button",onClick:N},ce(l.value.clear_all),1)],64)):(H(),K("span",Kx,ce(l.value.world||"World"),1))])],2)):Ce("",!0)]))}},[["styles",[jx]]]),Xx={class:"rd-research-filters","data-region":"filters","data-sub":"research-filters"},Yr="prayer_level",Jx={__name:"DashboardResearchFilters",setup(e){const t=Le("selectionBus",null),o=Le("dashboardData",null),n=Le("dashboardConfig",{}),r=le(()=>{var $;return(($=o==null?void 0:o.rows)==null?void 0:$.value)||[]}),s=(t==null?void 0:t.filterSet)||{},a={label:"Prayer",get:$=>{const O=$==null?void 0:$.people_praying,A=O&&typeof O=="object"?O.value:O;return Vn[an({peoplePraying:A??null})]}},l=le(()=>({[Yr]:a,...n.facets||{}})),i=le(()=>Object.fromEntries(Object.entries(l.value).map(([$,O])=>[$,O.get]))),c=le(()=>n.researchFilters||{}),u=le(()=>{const $=c.value.dropdowns||["wagf_region","wagf_block","country_code","people_group","religion"];return[Yr,...$.filter(O=>O!==Yr)]}),p=le(()=>c.value.searchPlaceholder||"Search people groups, place, language, religion…");function m($,O){const A=Object.keys($);return A.length?O.filter(U=>A.every(X=>{const re=i.value[X];return re?re(U)===$[X]:!0})):O}function v($){var me;const O=i.value[$];if(!O)return[];const A=(me=l.value[$])==null?void 0:me.optionLabel,U={};for(const[q,Y]of Object.entries(s))q!==$&&(U[q]=Y);const X=m(U,r.value),re=new Map;for(const q of X){const Y=O(q);if(Y==null||Y==="")continue;const C=re.get(Y);C?C.count+=1:re.set(Y,{label:A&&A(q)||Y,count:1})}return Array.from(re.entries()).map(([q,{label:Y,count:C}])=>({value:q,label:Y,count:C})).sort((q,Y)=>String(q.label).localeCompare(String(Y.label)))}const P=le(()=>u.value.map($=>{var O;return{name:$,label:((O=l.value[$])==null?void 0:O.label)||$,options:v($),value:s[$]||""}})),{labelFor:x}=Wn(n,Le("dataStore",null),Le("searchSourceId",null)),w=le(()=>Object.keys(s).map($=>{var A;const O=s[$];return{name:$,label:`${((A=l.value[$])==null?void 0:A.label)||$}: ${$===Yr?O:x($,O)}`}})),N=le(()=>{var $;return(($=t==null?void 0:t.searchTerm)==null?void 0:$.value)||""});function y($){t==null||t.setSearch(($==null?void 0:$.value)??"")}function f($){t==null||t.setFilter($.name,$.value)}function g($){t==null||t.setFilter($.name,null)}function _($){t==null||t.setFilter($.name,null)}function E(){t==null||t.clearFilters()}return Et(`
.rd-research-filters{ position:relative; z-index:55; height:100%; box-sizing:border-box;
padding:3px var(--rd-edge,14px); background:var(--rd-panel,#fff); border-bottom:1px solid var(--rd-line, #d1d4cd);
overflow:visible; }
diff --git a/public/doxa-maps/dashboard-plus-grid/dashboard-plus-grid/default/index.html b/public/doxa-maps/dashboard-plus-grid/dashboard-plus-grid/default/index.html
index 4eeb5a436..ec97e00ab 100644
--- a/public/doxa-maps/dashboard-plus-grid/dashboard-plus-grid/default/index.html
+++ b/public/doxa-maps/dashboard-plus-grid/dashboard-plus-grid/default/index.html
@@ -40,7 +40,7 @@
-
+
-
+
+ window.FORGE.manifest = {"schema":"doxa-maps-manifest@1","generatedFrom":"plugin-designs/*/*.vue","embedBase":".","bundleCount":19,"profileCount":28,"bundles":[{"bundle":"all-people-groups","scriptUrl":"./all-people-groups/all-people-groups.js","output":"doxa-maps/all-people-groups/all-people-groups.js","integrity":"sha384-naI/FjUN6z0mTDZsarX/PHn6uR/XAs1dXnRBGtfLE4xJcfVhDJ7KzoB9+VvLIuCz","elements":["all-people-groups"],"profiles":[{"profile":"all-people-groups","file":"all-people-groups.vue","description":"All 12,379 people groups (peoplegroups.org) in four colors — reached,","element":"all-people-groups","type":"single","isMap":true,"iframeUrl":"./all-people-groups/all-people-groups/index.html","scriptUrl":"./all-people-groups/all-people-groups.js","embed":{"iframe":"\u003ciframe src=\"./all-people-groups/all-people-groups/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./all-people-groups/all-people-groups.js\" integrity=\"sha384-naI/FjUN6z0mTDZsarX/PHn6uR/XAs1dXnRBGtfLE4xJcfVhDJ7KzoB9+VvLIuCz\" crossorigin=\"anonymous\">\u003c/script>\n\u003call-people-groups profile-config='{\"profile\":\"all-people-groups\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/all-people-groups>"},"bundle":"all-people-groups"}]},{"bundle":"big-picture","scriptUrl":"./big-picture/big-picture.js","output":"doxa-maps/big-picture/big-picture.js","integrity":"sha384-1a5gFxBj6maJ3KbyTQxVeW7fn1bhN5H/cOwObkCd6cyh/M1Q1KCDoMPnbB/IHrjD","elements":["bp-big-picture","bp-research-header","people-groups-grid"],"profiles":[{"profile":"big-picture","file":"big-picture.vue","description":"The Cat-4 composite that PAIRS the two real capability elements of the","element":"bp-big-picture","type":"nested-elements-mfe","isMap":false,"iframeUrl":"./big-picture/big-picture/index.html","scriptUrl":"./big-picture/big-picture.js","embed":{"iframe":"\u003ciframe src=\"./big-picture/big-picture/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./big-picture/big-picture.js\" integrity=\"sha384-1a5gFxBj6maJ3KbyTQxVeW7fn1bhN5H/cOwObkCd6cyh/M1Q1KCDoMPnbB/IHrjD\" crossorigin=\"anonymous\">\u003c/script>\n\u003cbp-big-picture profile-config='{\"profile\":\"big-picture\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/bp-big-picture>"},"instances":[{"id":"big-picture","title":"Big Picture — research header ↔ people-groups grid (composite)","apiBaseUrl":"","props":{"profile":"big-picture","provider":"maplibre","instanceId":"bp-big-picture"},"element":"bp-big-picture","iframeUrl":"./big-picture/big-picture/big-picture/index.html","embed":{"iframe":"\u003ciframe src=\"./big-picture/big-picture/big-picture/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"frontier","title":"Big Picture — frontier accent","apiBaseUrl":"","props":{"profile":"big-picture","provider":"maplibre","instanceId":"bp-big-picture-frontier","accent":"#22d3ee","title":"Big Picture — Frontier Focus"},"element":"bp-big-picture","iframeUrl":"./big-picture/big-picture/frontier/index.html","embed":{"iframe":"\u003ciframe src=\"./big-picture/big-picture/frontier/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}],"bundle":"big-picture"}]},{"bundle":"cities-internet","scriptUrl":"./cities-internet/cities-internet.js","output":"doxa-maps/cities-internet/cities-internet.js","integrity":"sha384-kfg3Gt4MMo/j+uMGWwO9z0NbV0Rw2irE/Kb2hnKGV5K47XpblcHtnSYXl2zuoE0R","elements":["cities-internet-map"],"profiles":[{"profile":"connectivity-list","file":"connectivity-list.vue","description":"Countries where DX people groups live, grouped by region, showing measured internet penetration","element":"cities-internet-map","type":"single","isMap":false,"iframeUrl":"./cities-internet/connectivity-list/index.html","scriptUrl":"./cities-internet/cities-internet.js","embed":{"iframe":"\u003ciframe src=\"./cities-internet/connectivity-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-kfg3Gt4MMo/j+uMGWwO9z0NbV0Rw2irE/Kb2hnKGV5K47XpblcHtnSYXl2zuoE0R\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccities-internet-map profile-config='{\"profile\":\"connectivity-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/cities-internet-map>"}},{"profile":"connectivity-map","file":"connectivity-map.vue","description":"Every country shaded by measured internet penetration, with its named carriers and dominant","element":"cities-internet-map","type":"single","isMap":true,"iframeUrl":"./cities-internet/connectivity-map/index.html","scriptUrl":"./cities-internet/cities-internet.js","embed":{"iframe":"\u003ciframe src=\"./cities-internet/connectivity-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-kfg3Gt4MMo/j+uMGWwO9z0NbV0Rw2irE/Kb2hnKGV5K47XpblcHtnSYXl2zuoE0R\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccities-internet-map profile-config='{\"profile\":\"connectivity-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/cities-internet-map>"}},{"profile":"data-tables","file":"data-tables.vue","description":"Four validated research tables, one tab each, with sortable and filterable columns, CSV and JSON","element":"cities-internet-map","type":"single","isMap":false,"iframeUrl":"./cities-internet/data-tables/index.html","scriptUrl":"./cities-internet/cities-internet.js","embed":{"iframe":"\u003ciframe src=\"./cities-internet/data-tables/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./cities-internet/cities-internet.js\" integrity=\"sha384-kfg3Gt4MMo/j+uMGWwO9z0NbV0Rw2irE/Kb2hnKGV5K47XpblcHtnSYXl2zuoE0R\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccities-internet-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/cities-internet-map>"}}]},{"bundle":"country-posters","scriptUrl":"./country-posters/country-posters.js","output":"doxa-maps/country-posters/country-posters.js","integrity":"sha384-Q0SZzHrCI5ZVp8JM/8gTLQxG9OjZDyupQBy75/nFTS8XO2GTDVLHvxgNMElP6J1x","elements":["country-posters-map"],"profiles":[{"profile":"countries-map","file":"countries-map.vue","description":"The researcher's workbench retargeted from people groups to COUNTRIES — region","element":"country-posters-map","type":"single","isMap":true,"iframeUrl":"./country-posters/countries-map/index.html","scriptUrl":"./country-posters/country-posters.js","embed":{"iframe":"\u003ciframe src=\"./country-posters/countries-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./country-posters/country-posters.js\" integrity=\"sha384-Q0SZzHrCI5ZVp8JM/8gTLQxG9OjZDyupQBy75/nFTS8XO2GTDVLHvxgNMElP6J1x\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccountry-posters-map profile-config='{\"profile\":\"countries-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/country-posters-map>"}},{"profile":"country-poster-wall","file":"country-poster-wall.vue","description":"One printable card per country, grouped into COLLAPSIBLE regional sections so the","element":"country-posters-map","type":"single","isMap":false,"iframeUrl":"./country-posters/country-poster-wall/index.html","scriptUrl":"./country-posters/country-posters.js","embed":{"iframe":"\u003ciframe src=\"./country-posters/country-poster-wall/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./country-posters/country-posters.js\" integrity=\"sha384-Q0SZzHrCI5ZVp8JM/8gTLQxG9OjZDyupQBy75/nFTS8XO2GTDVLHvxgNMElP6J1x\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccountry-posters-map profile-config='{\"profile\":\"country-poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/country-posters-map>"}}]},{"bundle":"dashboard-plus-grid","scriptUrl":"./dashboard-plus-grid/dashboard-plus-grid.js","output":"doxa-maps/dashboard-plus-grid/dashboard-plus-grid.js","integrity":"sha384-/qhSKrIAbbUgEn7TNhtn6VuqpE3ApxLg8otkL8MD4KexFyTVrnmvztqD81Ourj1W","elements":["dashboard-plus-grid"],"profiles":[{"profile":"dashboard-plus-grid","file":"dashboard-plus-grid.vue","description":"Both children are IMPORTED DIRECTLY (compiled into this ONE bundle — no runtime bundle","element":"dashboard-plus-grid","type":"nested-elements-mfe","isMap":true,"iframeUrl":"./dashboard-plus-grid/dashboard-plus-grid/index.html","scriptUrl":"./dashboard-plus-grid/dashboard-plus-grid.js","embed":{"iframe":"\u003ciframe src=\"./dashboard-plus-grid/dashboard-plus-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./dashboard-plus-grid/dashboard-plus-grid.js\" integrity=\"sha384-/qhSKrIAbbUgEn7TNhtn6VuqpE3ApxLg8otkL8MD4KexFyTVrnmvztqD81Ourj1W\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdashboard-plus-grid profile-config='{\"profile\":\"dashboard-plus-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/dashboard-plus-grid>"},"instances":[{"id":"default","title":"default","apiBaseUrl":"","props":{"profile":"dashboard-plus-grid"},"element":"dashboard-plus-grid","iframeUrl":"./dashboard-plus-grid/dashboard-plus-grid/default/index.html","embed":{"iframe":"\u003ciframe src=\"./dashboard-plus-grid/dashboard-plus-grid/default/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"demo-map","scriptUrl":"./demo-map/demo-map.js","output":"doxa-maps/demo-map/demo-map.js","integrity":"sha384-hK5bhikq6HS+Q1t5g9tqAWlosKbQcnzlxLx36svZffWk11HKbIsTk0f8yJxjVZE0","elements":["demo-map"],"profiles":[{"profile":"demo-map","file":"demo-map.vue","description":"Simple two-tab demo map. Tab 1 colors pins by religion (shared","element":"demo-map","type":"parameterized","isMap":true,"iframeUrl":"./demo-map/demo-map/index.html","scriptUrl":"./demo-map/demo-map.js","embed":{"iframe":"\u003ciframe src=\"./demo-map/demo-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./demo-map/demo-map.js\" integrity=\"sha384-hK5bhikq6HS+Q1t5g9tqAWlosKbQcnzlxLx36svZffWk11HKbIsTk0f8yJxjVZE0\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdemo-map profile-config='{\"profile\":\"demo-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/demo-map>"},"instances":[{"id":"maplibre","title":"Demo map — MapLibre (token-free)","apiBaseUrl":"","props":{"profile":"demo-map","provider":"maplibre","instanceId":"demo-maplibre"},"element":"demo-map","iframeUrl":"./demo-map/demo-map/maplibre/index.html","embed":{"iframe":"\u003ciframe src=\"./demo-map/demo-map/maplibre/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}],"bundle":"demo-map"}]},{"bundle":"doxa-maps-spa","scriptUrl":"./doxa-maps-spa/doxa-maps-spa.js","output":"doxa-maps/doxa-maps-spa/doxa-maps-spa.js","integrity":"sha384-GJiuI3T69Om//h3hE5AEeqIF3H6EnXrQVNj5BiAyLZcABodDXAA/pDYVxXsDT1Pq","elements":["doxa-maps-spa"],"profiles":[{"profile":"doxa-maps-spa","file":"doxa-maps-spa.vue","description":"The DX-maps app itself: one element whose vertical-tab rail nests every other","element":"doxa-maps-spa","type":"nested-mfe-spa","isMap":false,"iframeUrl":"./doxa-maps-spa/doxa-maps-spa/index.html","scriptUrl":"./doxa-maps-spa/doxa-maps-spa.js","embed":{"iframe":"\u003ciframe src=\"./doxa-maps-spa/doxa-maps-spa/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./doxa-maps-spa/doxa-maps-spa.js\" integrity=\"sha384-GJiuI3T69Om//h3hE5AEeqIF3H6EnXrQVNj5BiAyLZcABodDXAA/pDYVxXsDT1Pq\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-maps-spa profile-config='{\"profile\":\"doxa-maps-spa\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/doxa-maps-spa>"},"instances":[{"id":"app","title":"DX-Maps SPA — Big Picture + every research map (app-shell)","apiBaseUrl":"","props":{"profile":"doxa-maps-spa","provider":"maplibre","instanceId":"doxa-maps-spa-app","title":"DX-Maps"},"element":"doxa-maps-spa","iframeUrl":"./doxa-maps-spa/doxa-maps-spa/app/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-maps-spa/doxa-maps-spa/app/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"doxa-research-map","scriptUrl":"./doxa-research-map/doxa-research-map.js","output":"doxa-maps/doxa-research-map/doxa-research-map.js","integrity":"sha384-b/PsN3X7B4wcvGGzT0e4BKGh7lcaon2YmmqkX2X7IMJuxR02/P7MIagRa6ST5k48","elements":["doxa-research-map"],"profiles":[{"profile":"research-map","file":"research-map.vue","description":"The researcher's workbench: every piece a missiologist, demographer or","element":"doxa-research-map","type":"monolithic","isMap":true,"iframeUrl":"./doxa-research-map/research-map/index.html","scriptUrl":"./doxa-research-map/doxa-research-map.js","embed":{"iframe":"\u003ciframe src=\"./doxa-research-map/research-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./doxa-research-map/doxa-research-map.js\" integrity=\"sha384-b/PsN3X7B4wcvGGzT0e4BKGh7lcaon2YmmqkX2X7IMJuxR02/P7MIagRa6ST5k48\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-research-map profile-config='{\"profile\":\"research-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/doxa-research-map>"}}]},{"bundle":"doxa-simple-map","scriptUrl":"./doxa-simple-map/doxa-simple-map.js","output":"doxa-maps/doxa-simple-map/doxa-simple-map.js","integrity":"sha384-rCyNuvFWnAdNbWopNuqv22ZliamYyGXoI2wsPImdhXKU0CKS4VRB9tRtBCH4mR5X","elements":["doxa-map","doxa-simple-map"],"profiles":[{"profile":"doxa-simple-map","file":"doxa-simple-map.vue","description":"The simple world map, shipped as three presets off ONE prop table —","element":"doxa-map","type":"parameterized","isMap":true,"iframeUrl":"./doxa-simple-map/doxa-simple-map/index.html","scriptUrl":"./doxa-simple-map/doxa-simple-map.js","embed":{"iframe":"\u003ciframe src=\"./doxa-simple-map/doxa-simple-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./doxa-simple-map/doxa-simple-map.js\" integrity=\"sha384-rCyNuvFWnAdNbWopNuqv22ZliamYyGXoI2wsPImdhXKU0CKS4VRB9tRtBCH4mR5X\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-map profile-config='{\"profile\":\"doxa-simple-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/doxa-map>"},"instances":[{"id":"prayer","title":"Prayer Map","apiBaseUrl":"https://pray.doxa.life","props":{"profile":"doxa-simple-map","instanceId":"embed-prayer","dataSource":"pray-tools","tabs":[{"id":"prayer","colorStrategy":"prayer","legend":"prayer","popup":"prayer"}]},"element":"doxa-map","iframeUrl":"./doxa-simple-map/doxa-simple-map/prayer/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-simple-map/doxa-simple-map/prayer/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"engagement","title":"Engagement Map","apiBaseUrl":"https://pray.doxa.life","props":{"profile":"doxa-simple-map","instanceId":"embed-engagement","dataSource":"pray-tools","tabs":[{"id":"engagement","colorStrategy":"engagement","legend":"engagement","popup":"engagement"}]},"element":"doxa-map","iframeUrl":"./doxa-simple-map/doxa-simple-map/engagement/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-simple-map/doxa-simple-map/engagement/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"adoption","title":"Adoption Map","apiBaseUrl":"https://pray.doxa.life","props":{"profile":"doxa-simple-map","instanceId":"embed-adoption","dataSource":"pray-tools","tabs":[{"id":"adoption","colorStrategy":"adoption","legend":"adoption","popup":"adoption"}]},"element":"doxa-map","iframeUrl":"./doxa-simple-map/doxa-simple-map/adoption/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-simple-map/doxa-simple-map/adoption/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"doxa-vision-card","scriptUrl":"./doxa-vision-card/doxa-vision-card.js","output":"doxa-maps/doxa-vision-card/doxa-vision-card.js","integrity":"sha384-2mza3cltN5LQQIrlENG/IVL6Icd9zzcFve3E8R8VWuCdYOGW9uGKFvxcbu6eFfwn","elements":["doxa-vision-card"],"profiles":[{"profile":"doxa-vision-card","file":"doxa-vision-card.vue","description":"The Capability-1 example: ONE folder -> ONE bundle -> ONE element.","element":"doxa-vision-card","type":"parameterized","isMap":false,"iframeUrl":"./doxa-vision-card/doxa-vision-card/index.html","scriptUrl":"./doxa-vision-card/doxa-vision-card.js","embed":{"iframe":"\u003ciframe src=\"./doxa-vision-card/doxa-vision-card/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./doxa-vision-card/doxa-vision-card.js\" integrity=\"sha384-2mza3cltN5LQQIrlENG/IVL6Icd9zzcFve3E8R8VWuCdYOGW9uGKFvxcbu6eFfwn\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-vision-card profile-config='{\"profile\":\"doxa-vision-card\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/doxa-vision-card>"},"instances":[{"id":"default","title":"Vision card — reach at a glance","apiBaseUrl":"","props":{"profile":"doxa-vision-card","provider":"maplibre","instanceId":"vision-card-default"},"element":"doxa-vision-card","iframeUrl":"./doxa-vision-card/doxa-vision-card/default/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-vision-card/doxa-vision-card/default/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"frontier","title":"Vision card — frontier accent","apiBaseUrl":"","props":{"profile":"doxa-vision-card","provider":"maplibre","instanceId":"vision-card-frontier","accent":"#22d3ee","title":"The last frontier of the gospel.","tagline":"Frontier people groups — where fewer than one in a thousand follow Jesus.","stats":[{"value":"1,910","label":"Frontier groups","note":"under 0.1% believers"},{"value":"2.1B","label":"People","note":"living in frontier settings"},{"value":"0.1%","label":"Christian","note":"or fewer, in each group"}]},"element":"doxa-vision-card","iframeUrl":"./doxa-vision-card/doxa-vision-card/frontier/index.html","embed":{"iframe":"\u003ciframe src=\"./doxa-vision-card/doxa-vision-card/frontier/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}],"bundle":"doxa-vision-card"}]},{"bundle":"golden-path-check","scriptUrl":"./golden-path-check/golden-path-check.js","output":"doxa-maps/golden-path-check/golden-path-check.js","integrity":"sha384-1V/sT5SkV0U9yTCK9ELIOFfU1ZIJkInIF6nG3UllJ4dxax3RsEAupSGLJEFK6e14","elements":["golden-path-check"],"profiles":[{"profile":"golden-path-check","file":"golden-path-check.vue","description":"A live self-test of the develop-a-plugin-and-see-it-live path: it reads the built","element":"golden-path-check","type":"single","isMap":false,"iframeUrl":"./golden-path-check/golden-path-check/index.html","scriptUrl":"./golden-path-check/golden-path-check.js","embed":{"iframe":"\u003ciframe src=\"./golden-path-check/golden-path-check/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./golden-path-check/golden-path-check.js\" integrity=\"sha384-1V/sT5SkV0U9yTCK9ELIOFfU1ZIJkInIF6nG3UllJ4dxax3RsEAupSGLJEFK6e14\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgolden-path-check profile-config='{\"profile\":\"golden-path-check\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/golden-path-check>"}}]},{"bundle":"gospel-resources","scriptUrl":"./gospel-resources/gospel-resources.js","output":"doxa-maps/gospel-resources/gospel-resources.js","integrity":"sha384-kwkY9M2y5xy9ez4XnaLwzqzshed9rNRbLcQKmwDCpiqJrK+9QufTgyYaRvLnbIRh","elements":["gospel-resources-map"],"profiles":[{"profile":"charts","file":"charts.vue","description":"The gap by LANGUAGE (ISO 639-3) rather than by people group — because one translation serves every","element":"gospel-resources-map","type":"single","isMap":false,"iframeUrl":"./gospel-resources/charts/index.html","scriptUrl":"./gospel-resources/gospel-resources.js","embed":{"iframe":"\u003ciframe src=\"./gospel-resources/charts/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-kwkY9M2y5xy9ez4XnaLwzqzshed9rNRbLcQKmwDCpiqJrK+9QufTgyYaRvLnbIRh\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"charts\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}},{"profile":"data-tables","file":"data-tables.vue","description":"Two validated tables: what resources exist per people group, and whether that access is keeping","element":"gospel-resources-map","type":"single","isMap":false,"iframeUrl":"./gospel-resources/data-tables/index.html","scriptUrl":"./gospel-resources/gospel-resources.js","embed":{"iframe":"\u003ciframe src=\"./gospel-resources/data-tables/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-kwkY9M2y5xy9ez4XnaLwzqzshed9rNRbLcQKmwDCpiqJrK+9QufTgyYaRvLnbIRh\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"data-tables\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}},{"profile":"resources-list","file":"resources-list.vue","description":"Which DX people groups have scripture in their own language, and which have none. The zero-resource","element":"gospel-resources-map","type":"single","isMap":false,"iframeUrl":"./gospel-resources/resources-list/index.html","scriptUrl":"./gospel-resources/gospel-resources.js","embed":{"iframe":"\u003ciframe src=\"./gospel-resources/resources-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-kwkY9M2y5xy9ez4XnaLwzqzshed9rNRbLcQKmwDCpiqJrK+9QufTgyYaRvLnbIRh\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"resources-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}},{"profile":"resources-map","file":"resources-map.vue","description":"Every country shaded by how much of its unengaged population has NO gospel resource in their own","element":"gospel-resources-map","type":"single","isMap":true,"iframeUrl":"./gospel-resources/resources-map/index.html","scriptUrl":"./gospel-resources/gospel-resources.js","embed":{"iframe":"\u003ciframe src=\"./gospel-resources/resources-map/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./gospel-resources/gospel-resources.js\" integrity=\"sha384-kwkY9M2y5xy9ez4XnaLwzqzshed9rNRbLcQKmwDCpiqJrK+9QufTgyYaRvLnbIRh\" crossorigin=\"anonymous\">\u003c/script>\n\u003cgospel-resources-map profile-config='{\"profile\":\"resources-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/gospel-resources-map>"}}]},{"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-dNxJTe2UKQCaovLHNakWSo8fbGsaVedscY2Mr1Ca5adYvVbAWsb1Ei1b1X1bwEgs","elements":["my-upg-100-list-map"],"profiles":[{"profile":"poster-wall","file":"poster-wall.vue","description":"A wall of printable poster cards, one per 100-list entry, each with a \"Show on map\" action that","element":"my-upg-100-list-map","type":"single","isMap":true,"iframeUrl":"./my-upg-100-list/poster-wall/index.html","scriptUrl":"./my-upg-100-list/my-upg-100-list.js","embed":{"iframe":"\u003ciframe src=\"./my-upg-100-list/poster-wall/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-dNxJTe2UKQCaovLHNakWSo8fbGsaVedscY2Mr1Ca5adYvVbAWsb1Ei1b1X1bwEgs\" crossorigin=\"anonymous\">\u003c/script>\n\u003cmy-upg-100-list-map profile-config='{\"profile\":\"poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/my-upg-100-list-map>"}},{"profile":"upg-100-list","file":"upg-100-list.vue","description":"A personal unreached-people-groups list painted as true boundary polygons —","element":"my-upg-100-list-map","type":"single","isMap":true,"iframeUrl":"./my-upg-100-list/upg-100-list/index.html","scriptUrl":"./my-upg-100-list/my-upg-100-list.js","embed":{"iframe":"\u003ciframe 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>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-dNxJTe2UKQCaovLHNakWSo8fbGsaVedscY2Mr1Ca5adYvVbAWsb1Ei1b1X1bwEgs\" crossorigin=\"anonymous\">\u003c/script>\n\u003cmy-upg-100-list-map profile-config='{\"profile\":\"upg-100-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/my-upg-100-list-map>"}},{"profile":"upg-100-mfe","file":"upg-100-mfe.vue","description":"The standalone, shareable and embeddable composite of the my-upg-100-list family — it nests the map","element":"my-upg-100-list-map","type":"nested-elements-mfe","isMap":true,"iframeUrl":"./my-upg-100-list/upg-100-mfe/index.html","scriptUrl":"./my-upg-100-list/my-upg-100-list.js","embed":{"iframe":"\u003ciframe 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>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-dNxJTe2UKQCaovLHNakWSo8fbGsaVedscY2Mr1Ca5adYvVbAWsb1Ei1b1X1bwEgs\" crossorigin=\"anonymous\">\u003c/script>\n\u003cmy-upg-100-list-map profile-config='{\"profile\":\"upg-100-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/my-upg-100-list-map>"}}]},{"bundle":"people-groups-grid","scriptUrl":"./people-groups-grid/people-groups-grid.js","output":"doxa-maps/people-groups-grid/people-groups-grid.js","integrity":"sha384-mF3qp2IR9wmDTPTcyoDFFuULYRfv4ERi+0VsZGHov+Nb4mxF4ab2p3EYRZNTT22X","elements":["people-groups-grid"],"profiles":[{"profile":"people-groups-grid","file":"people-groups-grid.vue","description":"The people-groups grid as an owned custom element: card list, search and four","element":"people-groups-grid","type":"parameterized","isMap":false,"iframeUrl":"./people-groups-grid/people-groups-grid/index.html","scriptUrl":"./people-groups-grid/people-groups-grid.js","embed":{"iframe":"\u003ciframe src=\"./people-groups-grid/people-groups-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./people-groups-grid/people-groups-grid.js\" integrity=\"sha384-mF3qp2IR9wmDTPTcyoDFFuULYRfv4ERi+0VsZGHov+Nb4mxF4ab2p3EYRZNTT22X\" crossorigin=\"anonymous\">\u003c/script>\n\u003cpeople-groups-grid profile-config='{\"profile\":\"people-groups-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/people-groups-grid>"},"instances":[{"id":"people-groups-grid","title":"People Groups Grid — standalone (own search + 4 dropdowns)","apiBaseUrl":"","props":{"profile":"people-groups-grid","provider":"maplibre","instanceId":"people-groups-grid","pray-base-url":"https://pray.doxa.life"},"element":"people-groups-grid","iframeUrl":"./people-groups-grid/people-groups-grid/people-groups-grid/index.html","embed":{"iframe":"\u003ciframe src=\"./people-groups-grid/people-groups-grid/people-groups-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}},{"id":"driven","title":"People Groups Grid — externally driven (controls off, props/events)","apiBaseUrl":"","props":{"profile":"people-groups-grid","provider":"maplibre","instanceId":"people-groups-grid-driven","pray-base-url":"https://pray.doxa.life","show-search":"false","show-filters":"false"},"element":"people-groups-grid","iframeUrl":"./people-groups-grid/people-groups-grid/driven/index.html","embed":{"iframe":"\u003ciframe src=\"./people-groups-grid/people-groups-grid/driven/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"plugin-studio","scriptUrl":"./plugin-studio/plugin-studio.js","output":"doxa-maps/plugin-studio/plugin-studio.js","integrity":"sha384-+4N51SbBq5OSUi/EFebDNcqv4vwrmWJh8Ynj5Hs6XOqXI2vATZBkKSRI3zwGV4Kc","elements":["plugin-studio"],"profiles":[{"profile":"plugin-studio","file":"plugin-studio.vue","description":"The developer's viewing surface: a sidebar that is the composability ladder","element":"plugin-studio","type":"nested-mfe-spa","isMap":false,"iframeUrl":"./plugin-studio/plugin-studio/index.html","scriptUrl":"./plugin-studio/plugin-studio.js","embed":{"iframe":"\u003ciframe src=\"./plugin-studio/plugin-studio/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./plugin-studio/plugin-studio.js\" integrity=\"sha384-+4N51SbBq5OSUi/EFebDNcqv4vwrmWJh8Ynj5Hs6XOqXI2vATZBkKSRI3zwGV4Kc\" crossorigin=\"anonymous\">\u003c/script>\n\u003cplugin-studio profile-config='{\"profile\":\"plugin-studio\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/plugin-studio>"},"instances":[{"id":"studio","title":"Plugin Studio — every element by capability 5 -> 1 (developer studio)","apiBaseUrl":"","props":{"profile":"plugin-studio","provider":"maplibre","instanceId":"plugin-studio","title":"Plugin Studio"},"element":"plugin-studio","iframeUrl":"./plugin-studio/plugin-studio/studio/index.html","embed":{"iframe":"\u003ciframe src=\"./plugin-studio/plugin-studio/studio/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"research-dashboard","scriptUrl":"./research-dashboard/research-dashboard.js","output":"doxa-maps/research-dashboard/research-dashboard.js","integrity":"sha384-7deBWTaAE1237o9NDmPofHmH+1/3OXG+9lOkAlrPqTbCgSHe6TqRFvBlZX7JZ7iv","elements":["research-dashboard-map"],"profiles":[{"profile":"research-dashboard","file":"research-dashboard.vue","description":"Coordinated-Multiple-Views research dashboard for 10/40-window UPGs (live pray.doxa.life): docked facet rail + map-as-hero + linked table/charts, brushing-and-linking over one in-memory store.","element":"research-dashboard-map","type":"monolithic","isMap":true,"iframeUrl":"./research-dashboard/research-dashboard/index.html","scriptUrl":"./research-dashboard/research-dashboard.js","embed":{"iframe":"\u003ciframe src=\"./research-dashboard/research-dashboard/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./research-dashboard/research-dashboard.js\" integrity=\"sha384-7deBWTaAE1237o9NDmPofHmH+1/3OXG+9lOkAlrPqTbCgSHe6TqRFvBlZX7JZ7iv\" crossorigin=\"anonymous\">\u003c/script>\n\u003cresearch-dashboard-map profile-config='{\"profile\":\"research-dashboard\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/research-dashboard-map>"},"bundle":"research-dashboard"}]},{"bundle":"research-map-plus-grid","scriptUrl":"./research-map-plus-grid/research-map-plus-grid.js","output":"doxa-maps/research-map-plus-grid/research-map-plus-grid.js","integrity":"sha384-Dyh9E7k/YtwVCKP4lulQpWs9+oqKV5LJjxEnJMufru4zAzyZpbHyz0pja7hPwIwS","elements":["research-map-plus-grid"],"profiles":[{"profile":"research-map-plus-grid","file":"research-map-plus-grid.vue","description":"The monolithic 7-tab research map (cap-3) on top, the People Groups grid beneath,","element":"research-map-plus-grid","type":"nested-elements-mfe","isMap":false,"iframeUrl":"./research-map-plus-grid/research-map-plus-grid/index.html","scriptUrl":"./research-map-plus-grid/research-map-plus-grid.js","embed":{"iframe":"\u003ciframe src=\"./research-map-plus-grid/research-map-plus-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./research-map-plus-grid/research-map-plus-grid.js\" integrity=\"sha384-Dyh9E7k/YtwVCKP4lulQpWs9+oqKV5LJjxEnJMufru4zAzyZpbHyz0pja7hPwIwS\" crossorigin=\"anonymous\">\u003c/script>\n\u003cresearch-map-plus-grid profile-config='{\"profile\":\"research-map-plus-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/research-map-plus-grid>"},"instances":[{"id":"default","title":"default","apiBaseUrl":"","props":{"profile":"research-map-plus-grid"},"element":"research-map-plus-grid","iframeUrl":"./research-map-plus-grid/research-map-plus-grid/default/index.html","embed":{"iframe":"\u003ciframe src=\"./research-map-plus-grid/research-map-plus-grid/default/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"stack-demo","scriptUrl":"./stack-demo/stack-demo.js","output":"doxa-maps/stack-demo/stack-demo.js","integrity":"sha384-Wt5wtm3JMmbuKqXaBDYZ2Mrw3LF/q8LQ14d+qFPi958kH8aPJPAFGMvqHCD6BICy","elements":["stack-demo"],"profiles":[{"profile":"stack-demo","file":"stack-demo.vue","description":"Groups TWO independent elements TOP-TO-BOTTOM so you can embed the pair on a page and","element":"stack-demo","type":"nested-elements-mfe","isMap":false,"iframeUrl":"./stack-demo/stack-demo/index.html","scriptUrl":"./stack-demo/stack-demo.js","embed":{"iframe":"\u003ciframe src=\"./stack-demo/stack-demo/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./stack-demo/stack-demo.js\" integrity=\"sha384-Wt5wtm3JMmbuKqXaBDYZ2Mrw3LF/q8LQ14d+qFPi958kH8aPJPAFGMvqHCD6BICy\" crossorigin=\"anonymous\">\u003c/script>\n\u003cstack-demo profile-config='{\"profile\":\"stack-demo\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/stack-demo>"},"instances":[{"id":"pair","title":"pair","apiBaseUrl":"","props":{"profile":"stack-demo"},"element":"stack-demo","iframeUrl":"./stack-demo/stack-demo/pair/index.html","embed":{"iframe":"\u003ciframe src=\"./stack-demo/stack-demo/pair/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]},{"bundle":"template-bundle","scriptUrl":"./template-bundle/template-bundle.js","output":"doxa-maps/template-bundle/template-bundle.js","integrity":"sha384-4QsipLdtw9IIrA5qQdnhgmo70TH+33QMVdVZdYJFVTUp44Bvz9Y31g+DSKYInsTW","elements":["template-bundle"],"profiles":[{"profile":"template-map-a","file":"template-map-a.vue","description":"Minimal example profile A — a colored placeholder, no Mapbox or data.","element":"template-bundle","type":"single","isMap":false,"iframeUrl":"./template-bundle/template-map-a/index.html","scriptUrl":"./template-bundle/template-bundle.js","embed":{"iframe":"\u003ciframe src=\"./template-bundle/template-map-a/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./template-bundle/template-bundle.js\" integrity=\"sha384-4QsipLdtw9IIrA5qQdnhgmo70TH+33QMVdVZdYJFVTUp44Bvz9Y31g+DSKYInsTW\" crossorigin=\"anonymous\">\u003c/script>\n\u003ctemplate-bundle profile-config='{\"profile\":\"template-map-a\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/template-bundle>"},"bundle":"template-bundle"},{"profile":"template-map-b","file":"template-map-b.vue","description":"Minimal example profile B — a second profile in the same bundle.","element":"template-bundle","type":"single","isMap":false,"iframeUrl":"./template-bundle/template-map-b/index.html","scriptUrl":"./template-bundle/template-bundle.js","embed":{"iframe":"\u003ciframe src=\"./template-bundle/template-map-b/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript>window.MAP_APP_API_URL=\"https://pray.doxa.life\";\u003c/script>\n\u003cscript src=\"./template-bundle/template-bundle.js\" integrity=\"sha384-4QsipLdtw9IIrA5qQdnhgmo70TH+33QMVdVZdYJFVTUp44Bvz9Y31g+DSKYInsTW\" crossorigin=\"anonymous\">\u003c/script>\n\u003ctemplate-bundle profile-config='{\"profile\":\"template-map-b\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'>\u003c/template-bundle>"},"bundle":"template-bundle"}]}]};
\n\n"
+ "script": "\n\n"
},
"instances": [
{
@@ -764,7 +764,7 @@
"bundle": "research-dashboard",
"scriptUrl": "./research-dashboard/research-dashboard.js",
"output": "doxa-maps/research-dashboard/research-dashboard.js",
- "integrity": "sha384-c4mIRnGTwxFLVHbA8tH6u7YiWvIXG8k7ocJHbtQYiUE8Nv/mWD9/GNFnpWsL1dM6",
+ "integrity": "sha384-7deBWTaAE1237o9NDmPofHmH+1/3OXG+9lOkAlrPqTbCgSHe6TqRFvBlZX7JZ7iv",
"elements": [
"research-dashboard-map"
],
@@ -780,7 +780,7 @@
"scriptUrl": "./research-dashboard/research-dashboard.js",
"embed": {
"iframe": "",
- "script": "\n\n"
+ "script": "\n\n"
},
"bundle": "research-dashboard"
}
diff --git a/public/doxa-maps/research-dashboard/research-dashboard.js b/public/doxa-maps/research-dashboard/research-dashboard.js
index 93b1debb4..510f6ea1d 100644
--- a/public/doxa-maps/research-dashboard/research-dashboard.js
+++ b/public/doxa-maps/research-dashboard/research-dashboard.js
@@ -665,7 +665,7 @@
z-index:2; touch-action:pan-y; pointer-events:auto; background:transparent; }
.map-scroll-edge--left{ left:0; }
.map-scroll-edge--right{ right:0; }
-`,"rd-mappanel"),(N,W)=>(Q(),ne("div",{ref_key:"mapWrap",ref:le,class:"rd-mapwrap","data-sub":"map","data-projection":X.value},[F("div",{ref_key:"mapContainer",ref:A,class:"rd-mapc","data-map-canvas":""},null,512),W[1]||(W[1]=F("div",{class:"map-scroll-edge map-scroll-edge--left"},null,-1)),W[2]||(W[2]=F("div",{class:"map-scroll-edge map-scroll-edge--right"},null,-1)),Ie(Y0,{class:"rd-zoomtools","has-geocoder":!1,"data-map-zoom-controls":""},{default:Xn(()=>[Ie(X0,{map:pe(v),disabled:!m.value},null,8,["map","disabled"]),Ie(J0,{map:pe(v),disabled:!j.value},null,8,["map","disabled"])]),_:1}),F("span",{class:"rd-proj",role:"button",tabindex:"0","data-proj-toggle":"",onClick:me},fe(X.value==="globe"?"🌐 Globe":"▭ Flat"),1),W[3]||(W[3]=F("div",{class:"rd-maptag"},"UPG choropleth · click a country to filter · click a pin to select",-1)),F("div",Q0,[W[0]||(W[0]=F("div",{class:"lg-h"},"UPGs / country",-1)),(Q(!0),ne(Ae,null,Qe(ge.value,ie=>(Q(),ne("div",{key:ie.l,class:"lg-row"},[F("span",{class:"lg-sw",style:gt({background:ie.c})},null,4),F("span",null,fe(ie.l),1)]))),128))])],8,Z0))}},rw=".filter-dropdown{position:relative;flex:0 0 auto;width:var(--dx-filter-w, 168px);min-width:var(--dx-filter-w, 168px);max-width:var(--dx-filter-w, 168px)}@media (max-width: 576px){.filter-dropdown{width:var(--dx-filter-w-sm, 140px);min-width:var(--dx-filter-w-sm, 140px);max-width:var(--dx-filter-w-sm, 140px)}}.filter-dropdown__trigger{width:100%;padding:var(--dx-filter-pad-y, 4px) 12px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:6px;font-size:.875rem;color:var(--dx-text, #3b463d);text-align:start;background:var(--dx-elevated, #fff);border:1px solid var(--dx-line, #d1d4cd);border-radius:8px;transition:border-color .15s ease}.filter-dropdown__trigger:hover{border-color:var(--dx-accent, #92b195)}.filter-dropdown__trigger[data-active]{background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18));border-color:var(--dx-accent, #92b195)}.filter-dropdown__label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-dropdown__chevron{flex-shrink:0;transition:transform .2s ease}.filter-dropdown.is-open .filter-dropdown__chevron{transform:rotate(180deg)}.filter-dropdown__menu{position:fixed;z-index:2147483000;background-color:var(--dx-elevated, #fff);color:var(--dx-text, #3b463d);border:1px solid var(--dx-line, #d1d4cd);border-radius:8px;box-shadow:0 4px 12px #0000001f;overflow:hidden;display:flex;flex-direction:column;min-width:160px}.filter-dropdown__search{border:none;border-bottom:1px solid var(--dx-line, #d1d4cd);border-radius:0;padding:6px 12px;width:100%;font-size:.875rem;color:var(--dx-text, #3b463d);background:var(--dx-elevated, #fff);outline:none;box-sizing:border-box}.filter-dropdown__search::placeholder{color:var(--dx-muted, #6d766e)}.filter-dropdown__clear{display:block;width:100%;background:none;border:none;border-bottom:1px solid var(--dx-line, #d1d4cd);padding:6px 12px;font-size:.875rem;color:var(--dx-text, #3b463d);cursor:pointer;text-align:start;text-decoration:underline;text-decoration-color:var(--dx-accent, #92b195);text-underline-offset:3px}.filter-dropdown__clear:hover{background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18))}.filter-dropdown__options{flex:1 1 auto;min-height:0;max-height:250px;overflow-y:auto}.filter-dropdown__search,.filter-dropdown__clear{flex:0 0 auto}.filter-dropdown__option{padding:5px 12px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-size:.875rem;transition:background-color .1s ease}.filter-dropdown__option[data-selected]{font-weight:700;color:var(--dx-text, #3b463d);box-shadow:inset 3px 0 0 var(--dx-accent, #92b195)}.filter-dropdown__option:hover,.filter-dropdown__option[data-highlighted]{background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18))}.filter-dropdown__count{color:var(--dx-muted, #6d766e);font-size:.75rem;margin-inline-start:6px}.filter-dropdown__no-options{padding:12px;font-size:.875rem;color:var(--dx-muted, #6d766e);text-align:center}",sw=["data-active","aria-expanded"],aw={class:"filter-dropdown__label"},iw=["value","placeholder"],lw={class:"filter-dropdown__options"},cw={key:0,class:"filter-dropdown__no-options"},uw=["data-highlighted","data-selected","aria-selected","onClick","onMouseenter"],dw={class:"filter-dropdown__count"},fw=Jr({__name:"FilterDropdown",props:{label:{type:String,required:!0},name:{type:String,required:!0},options:{type:Array,default:()=>[]},value:{type:String,default:""},placeholder:{type:String,default:"Type to search..."}},emits:["filter-change","filter-clear"],setup(e,{emit:t}){const n=e,o=t,r=ce(!1),s=ce(""),a=ce(-1),i=ce(null),l=ce(null),c=ce(null),u=ce({});function p(S){const O=S.ownerDocument,q=O.createElement("div");q.style.cssText="position:fixed;top:0;left:0;width:0;height:0;pointer-events:none;opacity:0",(S.parentElement||S.getRootNode().body||O.body).appendChild(q);const he=q.getBoundingClientRect();return q.remove(),{x:he.left,y:he.top}}function b(){const S=c.value;if(!S)return;const O=S.getBoundingClientRect(),q=window.innerWidth,J=window.innerHeight,he=320,B=4,H=8,L=Math.round(Math.min(O.width,q-H*2)),T=O.right>H&&O.leftq-H?R=Math.round(Math.max(O.right-L,H)):R=Math.round(Math.max(O.left,H)):R=Math.round(Math.min(Math.max(O.left,H),q-L-H));const z=J-O.bottom,Y=z<180&&O.top>z,ee=p(S),K=Math.round(R-ee.x);u.value=Y?{top:"auto",bottom:`${Math.round(J-O.top+B+ee.y)}px`,left:`${K}px`,width:`${L}px`,maxHeight:`${Math.round(Math.min(he,O.top-B-H))}px`}:{top:`${Math.round(O.bottom+B-ee.y)}px`,bottom:"auto",left:`${K}px`,width:`${L}px`,maxHeight:`${Math.round(Math.min(he,z-B-H))}px`}}function x(){r.value&&b()}const A=re(()=>{if(!s.value)return n.options;const S=s.value.toLowerCase();return n.options.filter(O=>O.label.toLowerCase().includes(S))}),y=re(()=>n.options.find(S=>S.value===n.value));function v(S){var q;const O=((q=S.composedPath)==null?void 0:q.call(S))??[];i.value&&!O.includes(i.value)&&d()}function E(){r.value?d():_()}function _(){r.value=!0,s.value="",a.value=-1,b(),document.addEventListener("click",v),window.addEventListener("scroll",x,!0),window.addEventListener("resize",x),Nn(()=>{var S;b(),(S=l.value)==null||S.focus()})}function d(){r.value=!1,s.value="",a.value=-1,document.removeEventListener("click",v),window.removeEventListener("scroll",x,!0),window.removeEventListener("resize",x)}function f(S){s.value=S.target.value,a.value=-1}function g(S){const O=A.value;switch(S.key){case"ArrowDown":S.preventDefault(),a.value=Math.min(a.value+1,O.length-1),k();break;case"ArrowUp":S.preventDefault(),a.value=Math.max(a.value-1,0),k();break;case"Enter":{S.preventDefault();const q=O[a.value];q&&$(q);break}case"Escape":S.preventDefault(),d();break}}function k(){Nn(()=>{var O;const S=(O=i.value)==null?void 0:O.querySelector(".filter-dropdown__option[data-highlighted]");S==null||S.scrollIntoView({block:"nearest"})})}function $(S){o("filter-change",{name:n.name,value:S.value,label:S.label,type:S.type}),d()}function M(){o("filter-clear",{name:n.name}),d()}return Ot(()=>{document.removeEventListener("click",v),window.removeEventListener("scroll",x,!0),window.removeEventListener("resize",x)}),(S,O)=>(Q(),ne("div",{ref_key:"rootRef",ref:i,class:Me(["filter-dropdown",{"is-open":r.value}])},[F("button",{ref_key:"triggerRef",ref:c,class:"filter-dropdown__trigger input","data-active":e.value?"":void 0,type:"button","aria-haspopup":"listbox","aria-expanded":r.value,onClick:E},[F("span",aw,[y.value?(Q(),ne(Ae,{key:0},[nt(fe(e.label)+": ",1),F("strong",null,fe(y.value.label),1)],64)):(Q(),ne(Ae,{key:1},[nt(fe(e.label),1)],64))]),O[0]||(O[0]=F("svg",{class:"filter-dropdown__chevron",width:"12",height:"12",viewBox:"0 0 12 12",xmlns:"http://www.w3.org/2000/svg"},[F("path",{d:"M2 4l4 4 4-4",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],8,sw),r.value?(Q(),ne("div",{key:0,class:"filter-dropdown__menu",role:"listbox",style:gt(u.value)},[F("input",{ref_key:"searchInputRef",ref:l,class:"filter-dropdown__search",type:"text",value:s.value,placeholder:e.placeholder,onInput:f,onKeydown:g},null,40,iw),e.value?(Q(),ne("button",{key:0,class:"filter-dropdown__clear",type:"button",onClick:M},"Clear selection")):ze("",!0),F("div",lw,[A.value.length===0?(Q(),ne("div",cw,"No options found")):(Q(!0),ne(Ae,{key:1},Qe(A.value,(q,J)=>(Q(),ne("div",{key:q.value,class:"filter-dropdown__option",role:"option","data-highlighted":J===a.value?"":void 0,"data-selected":q.value===e.value?"":void 0,"aria-selected":q.value===e.value,onClick:he=>$(q),onMouseenter:he=>a.value=J},[F("span",null,fe(q.label),1),F("span",dw,fe(q.count),1)],40,uw))),128))])],4)):ze("",!0)],2))}},[["styles",[rw]]]),pw=".sfh{--brand: var(--dx-accent, #92b195);--ink: var(--dx-text, #3b463d);--mut: var(--dx-muted, #6d766e);--line: var(--dx-line, #d1d4cd);--card: var(--dx-elevated, #fff);display:flex;flex-direction:column;gap:var(--dx-sfh-gap, 4px);width:100%;box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;color:var(--ink)}.sfh__search-row{display:flex;align-items:center;gap:12px;justify-content:center}.sfh__search-row>:first-child{flex:0 1 auto}.sfh__toggle{flex:0 0 auto;background:none;border:none;cursor:pointer;font-size:.875rem;color:var(--ink);display:inline-flex;align-items:center;gap:4px;white-space:nowrap;padding:4px 2px;text-decoration:underline;text-decoration-color:var(--brand);text-underline-offset:4px}.sfh__toggle-chev{transition:transform .2s ease}.sfh__toggle[aria-expanded=true] .sfh__toggle-chev{transform:rotate(180deg)}.sfh__filters-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--dx-filter-gap, 10px);justify-content:space-evenly;justify-content:safe space-evenly;overflow-x:clip;padding-bottom:2px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.sfh__dd{flex:0 0 auto}.sfh__filters-row::-webkit-scrollbar{height:8px}.sfh__filters-row::-webkit-scrollbar-thumb{background:var(--dx-scroll-thumb, #c4c8c0);border-radius:8px}.sfh__filters-row::-webkit-scrollbar-track{background:transparent}.sfh__pill{flex:0 0 auto;padding:6px 12px;cursor:pointer;font-size:.875rem;color:inherit;background:var(--card);border:1px solid var(--line);border-radius:8px;white-space:nowrap;transition:border-color .15s ease,background .15s ease}.sfh__pill:hover{border-color:var(--brand)}.sfh__pill[data-active]{background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18));border-color:var(--brand);color:var(--ink)}.sfh__chips{display:flex;flex-wrap:nowrap;gap:6px;align-items:center;justify-content:center;min-height:var(--dx-sel-row-h, 16px)}.sfh__chip-strip{flex:0 1 auto;min-width:0;display:flex;flex-wrap:nowrap;gap:6px;align-items:center;justify-content:center;justify-content:safe center;overflow-x:auto;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.sfh__chip-strip::-webkit-scrollbar{height:6px}.sfh__chip-strip::-webkit-scrollbar-thumb{background:var(--dx-scroll-thumb, #c4c8c0);border-radius:8px}.sfh__chip-strip::-webkit-scrollbar-track{background:transparent}.sfh__sel-label{flex:0 0 auto;font-size:.6875rem;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--mut, #6d766e);opacity:.75}.sfh__sel-world{flex:0 0 auto;font-size:.75rem;color:var(--mut, #6d766e)}.sfh__chip{flex:0 0 auto;display:inline-flex;gap:4px;align-items:center;background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18));color:var(--ink);border:1px solid var(--line);border-radius:100px;padding:0 8px;font-size:.75rem;line-height:1;white-space:nowrap;height:var(--dx-sel-row-h, 16px);box-sizing:border-box}.sfh__chip-x{background:none;border:none;cursor:pointer;font-size:1.05em;line-height:1;color:inherit;padding:0;display:inline-flex;align-items:center}.sfh__chip-x:hover{opacity:.7}.sfh__clear{flex:0 0 auto;white-space:nowrap;background:none;border:none;cursor:pointer;font-size:.75rem;line-height:1;color:var(--mut, #6d766e);text-decoration:underline;text-decoration-color:var(--brand);text-underline-offset:3px;padding:0 4px;margin-inline-start:2px}.sfh__clear:hover{color:var(--ink)}",gw={class:"sfh"},hw={key:0,class:"sfh__search-row"},mw=["aria-expanded"],bw=["aria-label"],_w=["data-active","onClick"],yw={class:"sfh__chip-strip"},vw={class:"sfh__sel-label"},ww=["aria-label","onClick"],xw={key:1,class:"sfh__sel-world"},kw=Jr({__name:"SearchFilterHeader",props:{search:{type:String,default:""},filters:{type:Array,default:()=>[]},toggles:{type:Array,default:()=>[]},activeChips:{type:Array,default:null},searchPlaceholder:{type:String,default:"Search…"},searchMaxWidth:{type:String,default:"520px"},showSearch:{type:[Boolean,String],default:!0},showFilters:{type:[Boolean,String],default:!0},startExpanded:{type:Boolean,default:!1},collapsible:{type:Boolean,default:!0},labels:{type:Object,default:()=>({})}},emits:["update:search","search","filter-change","filter-clear","toggle","remove-filter","clear-all"],setup(e,{emit:t}){const n=e,o=t,r=_=>!(_===!1||_==="false"||_==="0"||_===0),s=re(()=>r(n.showSearch)),a=re(()=>r(n.showFilters)),i=re(()=>({show_filters:"Show Filters",hide_filters:"Hide Filters",clear_all:"Clear All",type_to_search:"Type to search...",filters:"Filters",...n.labels})),l=ce(n.startExpanded||!n.collapsible);function c(){l.value=!l.value}const u=re(()=>!n.collapsible||!s.value||l.value),p=re(()=>{if(Array.isArray(n.activeChips))return n.activeChips;const _=[];for(const d of n.filters){if(!d.value)continue;const f=(d.options||[]).find(g=>g.value===d.value);_.push({name:d.name,label:f?f.label:d.value})}for(const d of n.toggles)d.active&&_.push({name:d.name,label:d.label});return _});function b(_){const d=(_==null?void 0:_.value)??"";o("update:search",d),o("search",{value:d})}function x(_){o("filter-change",_)}function A(_){o("filter-clear",_)}function y(_){o("toggle",{name:_.name,active:!_.active})}function v(_){o("remove-filter",{name:_})}function E(){o("clear-all")}return(_,d)=>(Q(),ne("div",gw,[s.value?(Q(),ne("div",hw,[Ie(Ou,{"model-value":e.search,placeholder:e.searchPlaceholder,"aria-label":e.searchPlaceholder,"max-width":e.searchMaxWidth,onSearch:b},null,8,["model-value","placeholder","aria-label","max-width"]),a.value&&e.collapsible?(Q(),ne("button",{key:0,class:"sfh__toggle",type:"button","aria-expanded":u.value,onClick:c},[nt(fe(u.value?i.value.hide_filters:i.value.show_filters)+" ",1),d[0]||(d[0]=F("svg",{class:"sfh__toggle-chev",width:"12",height:"12",viewBox:"0 0 12 12",xmlns:"http://www.w3.org/2000/svg"},[F("path",{d:"M2 4l4 4 4-4",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],8,mw)):ze("",!0)])):ze("",!0),a.value&&u.value?(Q(),ne("div",{key:1,class:"sfh__filters-row",role:"group","aria-label":i.value.filters},[(Q(!0),ne(Ae,null,Qe(e.filters,f=>(Q(),Yt(fw,{key:f.name,class:"sfh__dd",label:f.label,name:f.name,options:f.options||[],value:f.value||"",placeholder:f.placeholder||i.value.type_to_search,onFilterChange:x,onFilterClear:A},null,8,["label","name","options","value","placeholder"]))),128)),(Q(!0),ne(Ae,null,Qe(e.toggles,f=>(Q(),ne("button",{key:f.name,class:"sfh__pill",type:"button","data-active":f.active?"":void 0,onClick:g=>y(f)},fe(f.label),9,_w))),128))],8,bw)):ze("",!0),a.value?(Q(),ne("div",{key:2,class:Me(["sfh__chips",{"is-empty":!p.value.length}])},[F("div",yw,[F("span",vw,fe(i.value.selected||"Selected"),1),p.value.length?(Q(),ne(Ae,{key:0},[(Q(!0),ne(Ae,null,Qe(p.value,f=>(Q(),ne("span",{key:f.name,class:"sfh__chip"},[nt(fe(f.label)+" ",1),F("button",{class:"sfh__chip-x",type:"button","aria-label":`Remove ${f.label}`,onClick:g=>v(f.name)},"×",8,ww)]))),128)),F("button",{class:"sfh__clear",type:"button",onClick:E},fe(i.value.clear_all),1)],64)):(Q(),ne("span",xw,fe(i.value.world||"World"),1))])],2)):ze("",!0)]))}},[["styles",[pw]]]),$w={class:"rd-research-filters","data-region":"filters","data-sub":"research-filters"},rs="prayer_level",Sw={__name:"DashboardResearchFilters",setup(e){const t=Se("selectionBus",null),n=Se("dashboardData",null),o=Se("dashboardConfig",{}),r=re(()=>{var $;return(($=n==null?void 0:n.rows)==null?void 0:$.value)||[]}),s=(t==null?void 0:t.filterSet)||{},a={label:"Prayer",get:$=>{const M=$==null?void 0:$.people_praying,S=M&&typeof M=="object"?M.value:M;return Ko[co({peoplePraying:S??null})]}},i=re(()=>({[rs]:a,...o.facets||{}})),l=re(()=>Object.fromEntries(Object.entries(i.value).map(([$,M])=>[$,M.get]))),c=re(()=>o.researchFilters||{}),u=re(()=>{const $=c.value.dropdowns||["wagf_region","wagf_block","country_code","people_group","religion"];return[rs,...$.filter(M=>M!==rs)]}),p=re(()=>c.value.searchPlaceholder||"Search people groups, place, language, religion…");function b($,M){const S=Object.keys($);return S.length?M.filter(O=>S.every(q=>{const J=l.value[q];return J?J(O)===$[q]:!0})):M}function x($){var he;const M=l.value[$];if(!M)return[];const S=(he=i.value[$])==null?void 0:he.optionLabel,O={};for(const[B,H]of Object.entries(s))B!==$&&(O[B]=H);const q=b(O,r.value),J=new Map;for(const B of q){const H=M(B);if(H==null||H==="")continue;const L=J.get(H);L?L.count+=1:J.set(H,{label:S&&S(B)||H,count:1})}return Array.from(J.entries()).map(([B,{label:H,count:L}])=>({value:B,label:H,count:L})).sort((B,H)=>String(B.label).localeCompare(String(H.label)))}const A=re(()=>u.value.map($=>{var M;return{name:$,label:((M=i.value[$])==null?void 0:M.label)||$,options:x($),value:s[$]||""}})),{labelFor:y}=Yo(o,Se("dataStore",null),Se("searchSourceId",null)),v=re(()=>Object.keys(s).map($=>{var S;const M=s[$];return{name:$,label:`${((S=i.value[$])==null?void 0:S.label)||$}: ${$===rs?M:y($,M)}`}})),E=re(()=>{var $;return(($=t==null?void 0:t.searchTerm)==null?void 0:$.value)||""});function _($){t==null||t.setSearch(($==null?void 0:$.value)??"")}function d($){t==null||t.setFilter($.name,$.value)}function f($){t==null||t.setFilter($.name,null)}function g($){t==null||t.setFilter($.name,null)}function k(){t==null||t.clearFilters()}return Tt(`
+`,"rd-mappanel"),(N,W)=>(Q(),ne("div",{ref_key:"mapWrap",ref:le,class:"rd-mapwrap","data-sub":"map","data-projection":X.value},[F("div",{ref_key:"mapContainer",ref:A,class:"rd-mapc","data-map-canvas":""},null,512),W[1]||(W[1]=F("div",{class:"map-scroll-edge map-scroll-edge--left"},null,-1)),W[2]||(W[2]=F("div",{class:"map-scroll-edge map-scroll-edge--right"},null,-1)),Ie(Y0,{class:"rd-zoomtools","has-geocoder":!1,"data-map-zoom-controls":""},{default:Xn(()=>[Ie(X0,{map:pe(v),disabled:!m.value},null,8,["map","disabled"]),Ie(J0,{map:pe(v),disabled:!j.value},null,8,["map","disabled"])]),_:1}),F("span",{class:"rd-proj",role:"button",tabindex:"0","data-proj-toggle":"",onClick:me},fe(X.value==="globe"?"🌐 Globe":"▭ Flat"),1),W[3]||(W[3]=F("div",{class:"rd-maptag"},"UPG choropleth · click a country to filter · click a pin to select",-1)),F("div",Q0,[W[0]||(W[0]=F("div",{class:"lg-h"},"UPGs / country",-1)),(Q(!0),ne(Ae,null,Qe(ge.value,ie=>(Q(),ne("div",{key:ie.l,class:"lg-row"},[F("span",{class:"lg-sw",style:gt({background:ie.c})},null,4),F("span",null,fe(ie.l),1)]))),128))])],8,Z0))}},rw=".filter-dropdown{position:relative;flex:0 0 auto;width:var(--dx-filter-w, 168px);min-width:var(--dx-filter-w, 168px);max-width:var(--dx-filter-w, 168px)}@media (max-width: 576px){.filter-dropdown{width:var(--dx-filter-w-sm, 140px);min-width:var(--dx-filter-w-sm, 140px);max-width:var(--dx-filter-w-sm, 140px)}}.filter-dropdown__trigger{width:100%;padding:var(--dx-filter-pad-y, 4px) 12px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:6px;font-size:.875rem;color:var(--dx-text, #3b463d);text-align:start;background:var(--dx-elevated, #fff);border:1px solid var(--dx-line, #d1d4cd);border-radius:8px;transition:border-color .15s ease}.filter-dropdown__trigger:hover{border-color:var(--dx-accent, #92b195)}.filter-dropdown__trigger[data-active]{background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18));border-color:var(--dx-accent, #92b195)}.filter-dropdown__label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-dropdown__chevron{flex-shrink:0;transition:transform .2s ease}.filter-dropdown.is-open .filter-dropdown__chevron{transform:rotate(180deg)}.filter-dropdown__menu{position:fixed;z-index:2147483000;background-color:var(--dx-elevated, #fff);color:var(--dx-text, #3b463d);border:1px solid var(--dx-line, #d1d4cd);border-radius:8px;box-shadow:0 4px 12px #0000001f;overflow:hidden;display:flex;flex-direction:column;min-width:160px}.filter-dropdown__search{border:none;border-bottom:1px solid var(--dx-line, #d1d4cd);border-radius:0;padding:6px 12px;width:100%;font-size:.875rem;color:var(--dx-text, #3b463d);background:var(--dx-elevated, #fff);outline:none;box-sizing:border-box}.filter-dropdown__search::placeholder{color:var(--dx-muted, #6d766e)}.filter-dropdown__clear{display:block;width:100%;background:none;border:none;border-bottom:1px solid var(--dx-line, #d1d4cd);padding:6px 12px;font-size:.875rem;color:var(--dx-text, #3b463d);cursor:pointer;text-align:start;text-decoration:underline;text-decoration-color:var(--dx-accent, #92b195);text-underline-offset:3px}.filter-dropdown__clear:hover{background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18))}.filter-dropdown__options{flex:1 1 auto;min-height:0;max-height:250px;overflow-y:auto}.filter-dropdown__search,.filter-dropdown__clear{flex:0 0 auto}.filter-dropdown__option{padding:5px 12px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-size:.875rem;transition:background-color .1s ease}.filter-dropdown__option[data-selected]{font-weight:700;color:var(--dx-text, #3b463d);box-shadow:inset 3px 0 0 var(--dx-accent, #92b195)}.filter-dropdown__option:hover,.filter-dropdown__option[data-highlighted]{background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18))}.filter-dropdown__count{color:var(--dx-muted, #6d766e);font-size:.75rem;margin-inline-start:6px}.filter-dropdown__no-options{padding:12px;font-size:.875rem;color:var(--dx-muted, #6d766e);text-align:center}",sw=["data-active","aria-expanded"],aw={class:"filter-dropdown__label"},iw=["value","placeholder"],lw={class:"filter-dropdown__options"},cw={key:0,class:"filter-dropdown__no-options"},uw=["data-highlighted","data-selected","aria-selected","onClick","onMouseenter"],dw={class:"filter-dropdown__count"},fw=Jr({__name:"FilterDropdown",props:{label:{type:String,required:!0},name:{type:String,required:!0},options:{type:Array,default:()=>[]},value:{type:String,default:""},placeholder:{type:String,default:"Type to search..."}},emits:["filter-change","filter-clear"],setup(e,{emit:t}){const n=e,o=t,r=ce(!1),s=ce(""),a=ce(-1),i=ce(null),l=ce(null),c=ce(null),u=ce({});function p(S){const O=S.ownerDocument,q=O.createElement("div");q.style.cssText="position:fixed;top:0;left:0;width:0;height:0;pointer-events:none;opacity:0",(S.parentElement||S.getRootNode().body||O.body).appendChild(q);const he=q.getBoundingClientRect();return q.remove(),{x:he.left,y:he.top}}function b(){const S=c.value;if(!S)return;const O=S.getBoundingClientRect(),q=window.innerWidth,J=window.innerHeight,he=320,B=4,H=8,L=Math.round(Math.min(O.width,q-H*2)),T=O.right>H&&O.leftq-H?R=Math.round(Math.max(O.right-L,H)):R=Math.round(Math.max(O.left,H)):R=Math.round(Math.min(Math.max(O.left,H),q-L-H));const z=J-O.bottom,Y=z<180&&O.top>z,ee=p(S),K=Math.round(R-ee.x);u.value=Y?{top:"auto",bottom:`${Math.round(J-O.top+B+ee.y)}px`,left:`${K}px`,width:`${L}px`,maxHeight:`${Math.round(Math.min(he,O.top-B-H))}px`}:{top:`${Math.round(O.bottom+B-ee.y)}px`,bottom:"auto",left:`${K}px`,width:`${L}px`,maxHeight:`${Math.round(Math.min(he,z-B-H))}px`}}function x(){r.value&&b()}const A=re(()=>{if(!s.value)return n.options;const S=s.value.toLowerCase();return n.options.filter(O=>O.label.toLowerCase().includes(S))}),y=re(()=>n.options.find(S=>S.value===n.value));function v(S){var q;const O=((q=S.composedPath)==null?void 0:q.call(S))??[];i.value&&!O.includes(i.value)&&d()}function E(){r.value?d():_()}function _(){r.value=!0,s.value="",a.value=-1,b(),document.addEventListener("click",v),window.addEventListener("scroll",x,!0),window.addEventListener("resize",x),Nn(()=>{var S;b(),(S=l.value)==null||S.focus()})}function d(){r.value=!1,s.value="",a.value=-1,document.removeEventListener("click",v),window.removeEventListener("scroll",x,!0),window.removeEventListener("resize",x)}function f(S){s.value=S.target.value,a.value=-1}function g(S){const O=A.value;switch(S.key){case"ArrowDown":S.preventDefault(),a.value=Math.min(a.value+1,O.length-1),k();break;case"ArrowUp":S.preventDefault(),a.value=Math.max(a.value-1,0),k();break;case"Enter":{S.preventDefault();const q=O[a.value];q&&$(q);break}case"Escape":S.preventDefault(),d();break}}function k(){Nn(()=>{var O;const S=(O=i.value)==null?void 0:O.querySelector(".filter-dropdown__option[data-highlighted]");S==null||S.scrollIntoView({block:"nearest"})})}function $(S){o("filter-change",{name:n.name,value:S.value,label:S.label,type:S.type}),d()}function M(){o("filter-clear",{name:n.name}),d()}return Ot(()=>{document.removeEventListener("click",v),window.removeEventListener("scroll",x,!0),window.removeEventListener("resize",x)}),(S,O)=>(Q(),ne("div",{ref_key:"rootRef",ref:i,class:Me(["filter-dropdown",{"is-open":r.value}])},[F("button",{ref_key:"triggerRef",ref:c,class:"filter-dropdown__trigger input","data-active":e.value?"":void 0,type:"button","aria-haspopup":"listbox","aria-expanded":r.value,onClick:E},[F("span",aw,[y.value?(Q(),ne(Ae,{key:0},[nt(fe(e.label)+": ",1),F("strong",null,fe(y.value.label),1)],64)):(Q(),ne(Ae,{key:1},[nt(fe(e.label),1)],64))]),O[0]||(O[0]=F("svg",{class:"filter-dropdown__chevron",width:"12",height:"12",viewBox:"0 0 12 12",xmlns:"http://www.w3.org/2000/svg"},[F("path",{d:"M2 4l4 4 4-4",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],8,sw),r.value?(Q(),ne("div",{key:0,class:"filter-dropdown__menu",role:"listbox",style:gt(u.value)},[F("input",{ref_key:"searchInputRef",ref:l,class:"filter-dropdown__search",type:"text",value:s.value,placeholder:e.placeholder,onInput:f,onKeydown:g},null,40,iw),e.value?(Q(),ne("button",{key:0,class:"filter-dropdown__clear",type:"button",onClick:M},"Clear selection")):ze("",!0),F("div",lw,[A.value.length===0?(Q(),ne("div",cw,"No options found")):(Q(!0),ne(Ae,{key:1},Qe(A.value,(q,J)=>(Q(),ne("div",{key:q.value,class:"filter-dropdown__option",role:"option","data-highlighted":J===a.value?"":void 0,"data-selected":q.value===e.value?"":void 0,"aria-selected":q.value===e.value,onClick:he=>$(q),onMouseenter:he=>a.value=J},[F("span",null,fe(q.label),1),F("span",dw,fe(q.count),1)],40,uw))),128))])],4)):ze("",!0)],2))}},[["styles",[rw]]]),pw=".sfh{--brand: var(--dx-accent, #92b195);--ink: var(--dx-text, #3b463d);--mut: var(--dx-muted, #6d766e);--line: var(--dx-line, #d1d4cd);--card: var(--dx-elevated, #fff);display:flex;flex-direction:column;gap:var(--dx-sfh-gap, 4px);width:100%;box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;color:var(--ink)}.sfh__search-row{display:flex;align-items:center;gap:12px;justify-content:center}.sfh__search-row>:first-child{flex:0 1 auto}.sfh__toggle{flex:0 0 auto;background:none;border:none;cursor:pointer;font-size:.875rem;color:var(--ink);display:inline-flex;align-items:center;gap:4px;white-space:nowrap;padding:4px 2px;text-decoration:underline;text-decoration-color:var(--brand);text-underline-offset:4px}.sfh__toggle-chev{transition:transform .2s ease}.sfh__toggle[aria-expanded=true] .sfh__toggle-chev{transform:rotate(180deg)}.sfh__filters-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--dx-filter-gap, 10px);justify-content:flex-start;overflow-x:clip;padding-bottom:2px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.sfh__dd{flex:0 0 auto}.sfh__filters-row::-webkit-scrollbar{height:8px}.sfh__filters-row::-webkit-scrollbar-thumb{background:var(--dx-scroll-thumb, #c4c8c0);border-radius:8px}.sfh__filters-row::-webkit-scrollbar-track{background:transparent}.sfh__pill{flex:0 0 auto;padding:6px 12px;cursor:pointer;font-size:.875rem;color:inherit;background:var(--card);border:1px solid var(--line);border-radius:8px;white-space:nowrap;transition:border-color .15s ease,background .15s ease}.sfh__pill:hover{border-color:var(--brand)}.sfh__pill[data-active]{background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18));border-color:var(--brand);color:var(--ink)}.sfh__chips{display:flex;flex-wrap:nowrap;gap:6px;align-items:center;justify-content:center;min-height:var(--dx-sel-row-h, 16px)}.sfh__chip-strip{flex:0 1 auto;min-width:0;display:flex;flex-wrap:nowrap;gap:6px;align-items:center;justify-content:center;justify-content:safe center;overflow-x:auto;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.sfh__chip-strip::-webkit-scrollbar{height:6px}.sfh__chip-strip::-webkit-scrollbar-thumb{background:var(--dx-scroll-thumb, #c4c8c0);border-radius:8px}.sfh__chip-strip::-webkit-scrollbar-track{background:transparent}.sfh__sel-label{flex:0 0 auto;font-size:.6875rem;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--mut, #6d766e);opacity:.75}.sfh__sel-world{flex:0 0 auto;font-size:.75rem;color:var(--mut, #6d766e)}.sfh__chip{flex:0 0 auto;display:inline-flex;gap:4px;align-items:center;background-color:var(--dx-accent-weak, rgba(146, 177, 149, .18));color:var(--ink);border:1px solid var(--line);border-radius:100px;padding:0 8px;font-size:.75rem;line-height:1;white-space:nowrap;height:var(--dx-sel-row-h, 16px);box-sizing:border-box}.sfh__chip-x{background:none;border:none;cursor:pointer;font-size:1.05em;line-height:1;color:inherit;padding:0;display:inline-flex;align-items:center}.sfh__chip-x:hover{opacity:.7}.sfh__clear{flex:0 0 auto;white-space:nowrap;background:none;border:none;cursor:pointer;font-size:.75rem;line-height:1;color:var(--mut, #6d766e);text-decoration:underline;text-decoration-color:var(--brand);text-underline-offset:3px;padding:0 4px;margin-inline-start:2px}.sfh__clear:hover{color:var(--ink)}",gw={class:"sfh"},hw={key:0,class:"sfh__search-row"},mw=["aria-expanded"],bw=["aria-label"],_w=["data-active","onClick"],yw={class:"sfh__chip-strip"},vw={class:"sfh__sel-label"},ww=["aria-label","onClick"],xw={key:1,class:"sfh__sel-world"},kw=Jr({__name:"SearchFilterHeader",props:{search:{type:String,default:""},filters:{type:Array,default:()=>[]},toggles:{type:Array,default:()=>[]},activeChips:{type:Array,default:null},searchPlaceholder:{type:String,default:"Search…"},searchMaxWidth:{type:String,default:"520px"},showSearch:{type:[Boolean,String],default:!0},showFilters:{type:[Boolean,String],default:!0},startExpanded:{type:Boolean,default:!1},collapsible:{type:Boolean,default:!0},labels:{type:Object,default:()=>({})}},emits:["update:search","search","filter-change","filter-clear","toggle","remove-filter","clear-all"],setup(e,{emit:t}){const n=e,o=t,r=_=>!(_===!1||_==="false"||_==="0"||_===0),s=re(()=>r(n.showSearch)),a=re(()=>r(n.showFilters)),i=re(()=>({show_filters:"Show Filters",hide_filters:"Hide Filters",clear_all:"Clear All",type_to_search:"Type to search...",filters:"Filters",...n.labels})),l=ce(n.startExpanded||!n.collapsible);function c(){l.value=!l.value}const u=re(()=>!n.collapsible||!s.value||l.value),p=re(()=>{if(Array.isArray(n.activeChips))return n.activeChips;const _=[];for(const d of n.filters){if(!d.value)continue;const f=(d.options||[]).find(g=>g.value===d.value);_.push({name:d.name,label:f?f.label:d.value})}for(const d of n.toggles)d.active&&_.push({name:d.name,label:d.label});return _});function b(_){const d=(_==null?void 0:_.value)??"";o("update:search",d),o("search",{value:d})}function x(_){o("filter-change",_)}function A(_){o("filter-clear",_)}function y(_){o("toggle",{name:_.name,active:!_.active})}function v(_){o("remove-filter",{name:_})}function E(){o("clear-all")}return(_,d)=>(Q(),ne("div",gw,[s.value?(Q(),ne("div",hw,[Ie(Ou,{"model-value":e.search,placeholder:e.searchPlaceholder,"aria-label":e.searchPlaceholder,"max-width":e.searchMaxWidth,onSearch:b},null,8,["model-value","placeholder","aria-label","max-width"]),a.value&&e.collapsible?(Q(),ne("button",{key:0,class:"sfh__toggle",type:"button","aria-expanded":u.value,onClick:c},[nt(fe(u.value?i.value.hide_filters:i.value.show_filters)+" ",1),d[0]||(d[0]=F("svg",{class:"sfh__toggle-chev",width:"12",height:"12",viewBox:"0 0 12 12",xmlns:"http://www.w3.org/2000/svg"},[F("path",{d:"M2 4l4 4 4-4",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})],-1))],8,mw)):ze("",!0)])):ze("",!0),a.value&&u.value?(Q(),ne("div",{key:1,class:"sfh__filters-row",role:"group","aria-label":i.value.filters},[(Q(!0),ne(Ae,null,Qe(e.filters,f=>(Q(),Yt(fw,{key:f.name,class:"sfh__dd",label:f.label,name:f.name,options:f.options||[],value:f.value||"",placeholder:f.placeholder||i.value.type_to_search,onFilterChange:x,onFilterClear:A},null,8,["label","name","options","value","placeholder"]))),128)),(Q(!0),ne(Ae,null,Qe(e.toggles,f=>(Q(),ne("button",{key:f.name,class:"sfh__pill",type:"button","data-active":f.active?"":void 0,onClick:g=>y(f)},fe(f.label),9,_w))),128))],8,bw)):ze("",!0),a.value?(Q(),ne("div",{key:2,class:Me(["sfh__chips",{"is-empty":!p.value.length}])},[F("div",yw,[F("span",vw,fe(i.value.selected||"Selected"),1),p.value.length?(Q(),ne(Ae,{key:0},[(Q(!0),ne(Ae,null,Qe(p.value,f=>(Q(),ne("span",{key:f.name,class:"sfh__chip"},[nt(fe(f.label)+" ",1),F("button",{class:"sfh__chip-x",type:"button","aria-label":`Remove ${f.label}`,onClick:g=>v(f.name)},"×",8,ww)]))),128)),F("button",{class:"sfh__clear",type:"button",onClick:E},fe(i.value.clear_all),1)],64)):(Q(),ne("span",xw,fe(i.value.world||"World"),1))])],2)):ze("",!0)]))}},[["styles",[pw]]]),$w={class:"rd-research-filters","data-region":"filters","data-sub":"research-filters"},rs="prayer_level",Sw={__name:"DashboardResearchFilters",setup(e){const t=Se("selectionBus",null),n=Se("dashboardData",null),o=Se("dashboardConfig",{}),r=re(()=>{var $;return(($=n==null?void 0:n.rows)==null?void 0:$.value)||[]}),s=(t==null?void 0:t.filterSet)||{},a={label:"Prayer",get:$=>{const M=$==null?void 0:$.people_praying,S=M&&typeof M=="object"?M.value:M;return Ko[co({peoplePraying:S??null})]}},i=re(()=>({[rs]:a,...o.facets||{}})),l=re(()=>Object.fromEntries(Object.entries(i.value).map(([$,M])=>[$,M.get]))),c=re(()=>o.researchFilters||{}),u=re(()=>{const $=c.value.dropdowns||["wagf_region","wagf_block","country_code","people_group","religion"];return[rs,...$.filter(M=>M!==rs)]}),p=re(()=>c.value.searchPlaceholder||"Search people groups, place, language, religion…");function b($,M){const S=Object.keys($);return S.length?M.filter(O=>S.every(q=>{const J=l.value[q];return J?J(O)===$[q]:!0})):M}function x($){var he;const M=l.value[$];if(!M)return[];const S=(he=i.value[$])==null?void 0:he.optionLabel,O={};for(const[B,H]of Object.entries(s))B!==$&&(O[B]=H);const q=b(O,r.value),J=new Map;for(const B of q){const H=M(B);if(H==null||H==="")continue;const L=J.get(H);L?L.count+=1:J.set(H,{label:S&&S(B)||H,count:1})}return Array.from(J.entries()).map(([B,{label:H,count:L}])=>({value:B,label:H,count:L})).sort((B,H)=>String(B.label).localeCompare(String(H.label)))}const A=re(()=>u.value.map($=>{var M;return{name:$,label:((M=i.value[$])==null?void 0:M.label)||$,options:x($),value:s[$]||""}})),{labelFor:y}=Yo(o,Se("dataStore",null),Se("searchSourceId",null)),v=re(()=>Object.keys(s).map($=>{var S;const M=s[$];return{name:$,label:`${((S=i.value[$])==null?void 0:S.label)||$}: ${$===rs?M:y($,M)}`}})),E=re(()=>{var $;return(($=t==null?void 0:t.searchTerm)==null?void 0:$.value)||""});function _($){t==null||t.setSearch(($==null?void 0:$.value)??"")}function d($){t==null||t.setFilter($.name,$.value)}function f($){t==null||t.setFilter($.name,null)}function g($){t==null||t.setFilter($.name,null)}function k(){t==null||t.clearFilters()}return Tt(`
.rd-research-filters{ position:relative; z-index:55; height:100%; box-sizing:border-box;
padding:3px var(--rd-edge,14px); background:var(--rd-panel,#fff); border-bottom:1px solid var(--rd-line, #d1d4cd);
overflow:visible; }
diff --git a/public/doxa-maps/research-dashboard/research-dashboard/index.html b/public/doxa-maps/research-dashboard/research-dashboard/index.html
index 133388e99..43ca8f72e 100644
--- a/public/doxa-maps/research-dashboard/research-dashboard/index.html
+++ b/public/doxa-maps/research-dashboard/research-dashboard/index.html
@@ -29,7 +29,7 @@
-
+