{
"schema": "doxa-maps-manifest@1",
"generatedFrom": "plugin-designs/*/*.vue",
"embedBase": ".",
"bundleCount": 25,
"profileCount": 37,
"runtime": {
"apiBaseUrl": "https://pray.doxa.life"
},
"bundles": [
{
"bundle": "all-people-groups",
"scriptUrl": "./all-people-groups/all-people-groups.js",
"output": "dx-maps/all-people-groups/all-people-groups.js",
"integrity": "sha384-Hyu82pGG4OWWb5qm5gfp3dDF4vqvXnlZQ8/d86okNGi0nV5GNhyIApwby/FrkZ1g",
"elements": [
"all-people-groups"
],
"stage": "experimental",
"profiles": [
{
"profile": "all-people-groups",
"stage": "experimental",
"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": "",
"script": "\n\n\n\n"
},
"bundle": "all-people-groups"
}
]
},
{
"bundle": "big-picture",
"scriptUrl": "./big-picture/big-picture.js",
"output": "dx-maps/big-picture/big-picture.js",
"integrity": "sha384-ok/EhX34F4Novw0CMxEoYa69SLQmXtc4QzI1zPW1KV9t5bKlnxsoMxSNO68ea29O",
"elements": [
"bp-big-picture",
"bp-research-header",
"people-groups-grid"
],
"composes": [
"bp-research-header",
"people-groups-grid"
],
"stage": "experimental",
"profiles": [
{
"profile": "big-picture",
"stage": "experimental",
"label": "Big Picture (research header ↔ real people-groups grid via props/events)",
"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": "",
"script": "\n\n"
},
"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": ""
}
},
{
"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": ""
}
}
],
"bundle": "big-picture"
}
]
},
{
"bundle": "cities-internet",
"scriptUrl": "./cities-internet/cities-internet.js",
"output": "dx-maps/cities-internet/cities-internet.js",
"integrity": "sha384-xF3apO1XPKnZJfNBNxWRVjaJOG5uhEqm5SqMXid8fF8/481LpPDs+gUjrMwgWAwv",
"elements": [
"cities-internet-map"
],
"stage": "production",
"profiles": [
{
"profile": "connectivity-list",
"stage": "experimental",
"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": "",
"script": "\n\n"
}
},
{
"profile": "connectivity-map",
"stage": "production",
"label": "Cities with Internet — 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": "",
"script": "\n\n\n\n"
}
},
{
"profile": "data-tables",
"stage": "experimental",
"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": "",
"script": "\n\n"
}
}
]
},
{
"bundle": "country-posters",
"scriptUrl": "./country-posters/country-posters.js",
"output": "dx-maps/country-posters/country-posters.js",
"integrity": "sha384-rEKY48xZ75Hf09EduTtEELEIdpGoEFDujcRk3Lwx9/E3P2W/f0iZDRY0JHg2xSM4",
"elements": [
"country-posters-map"
],
"composes": [
"country-posters/country-poster-wall",
"country-posters/countries-map"
],
"stage": "experimental",
"profiles": [
{
"profile": "countries-map",
"stage": "experimental",
"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": "",
"script": "\n\n\n\n"
}
},
{
"profile": "country-poster-wall",
"stage": "experimental",
"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": "",
"script": "\n\n"
}
},
{
"profile": "country-posters-mfe",
"stage": "experimental",
"label": "Country Posters — Wall + Map",
"file": "country-posters-mfe.vue",
"description": "Country Posters as ONE two-tab element — the countries map and the printable",
"element": "country-posters-mfe",
"type": "nested-elements-mfe",
"isMap": true,
"iframeUrl": "./country-posters/country-posters-mfe/index.html",
"scriptUrl": "./country-posters/country-posters.js",
"embed": {
"iframe": "",
"script": "\n\n\n\n"
}
}
]
},
{
"bundle": "dashboard-plus-grid",
"scriptUrl": "./dashboard-plus-grid/dashboard-plus-grid.js",
"output": "dx-maps/dashboard-plus-grid/dashboard-plus-grid.js",
"integrity": "sha384-KKQCv8v895tYjwayG6saIYk3ymn3wmk6X3TEwv+sQ5pU9BDkErSFF7JEuUTdsZCF",
"elements": [
"dashboard-plus-grid"
],
"composes": [
"research-dashboard",
"people-groups-grid"
],
"stage": "production",
"profiles": [
{
"profile": "dashboard-plus-grid",
"stage": "production",
"label": "Dashboard + Grid (baked into one element, stacked to scroll)",
"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": "",
"script": "\n\n\n\n"
},
"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": ""
}
}
]
}
]
},
{
"bundle": "demo-map",
"scriptUrl": "./demo-map/demo-map.js",
"output": "dx-maps/demo-map/demo-map.js",
"integrity": "sha384-okPjbmNdBwckUKJibLgUkoTjZ2+rwOQNGxWZO+hv8HXCPMWWOZyAawTHo6EOqBk3",
"elements": [
"demo-map"
],
"stage": "experimental",
"profiles": [
{
"profile": "demo-map",
"stage": "experimental",
"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": "",
"script": "\n\n\n\n"
},
"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": ""
}
}
],
"bundle": "demo-map"
}
]
},
{
"bundle": "doxa-maps-spa",
"scriptUrl": "./doxa-maps-spa/doxa-maps-spa.js",
"output": "dx-maps/doxa-maps-spa/doxa-maps-spa.js",
"integrity": "sha384-O6x4cLrNP72ZluOLN/4Ty5bjoJlMJ8ayem3KT6HQO9WryPqGyRpNvDkXYMj0KdR6",
"elements": [
"doxa-maps-spa"
],
"composes": [
"dashboard-plus-grid/dashboard-plus-grid",
"research-map-plus-grid/research-map-plus-grid",
"regions-dashboard/regions-mfe",
"my-upg-100-list/upg-100-mfe",
"doxa-simple-map/doxa-simple-map",
"cities-internet/connectivity-map",
"gospel-resources/resources-map"
],
"stage": "experimental",
"profiles": [
{
"profile": "doxa-maps-spa",
"stage": "experimental",
"label": "Research Gallery (vertical-tab app shell: the seven production maps)",
"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": "",
"script": "\n\n"
},
"instances": [
{
"id": "app",
"title": "Research Gallery — Big Picture + every research map (app-shell)",
"apiBaseUrl": "",
"props": {
"profile": "doxa-maps-spa",
"provider": "maplibre",
"instanceId": "doxa-maps-spa-app",
"title": "Research Gallery"
},
"element": "doxa-maps-spa",
"iframeUrl": "./doxa-maps-spa/doxa-maps-spa/app/index.html",
"embed": {
"iframe": ""
}
}
]
}
]
},
{
"bundle": "doxa-research-map",
"scriptUrl": "./doxa-research-map/doxa-research-map.js",
"output": "dx-maps/doxa-research-map/doxa-research-map.js",
"integrity": "sha384-B6gF69v23HjaSAYYpOT3XNCu60fKgswgggVrBhT43TB0CGJkOSzYYTTkKDq96+Ch",
"elements": [
"doxa-research-map"
],
"stage": "experimental",
"profiles": [
{
"profile": "research-map",
"stage": "experimental",
"label": "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": "",
"script": "\n\n\n\n"
},
"instances": [
{
"id": "maplibre",
"title": "Research map — MapLibre (token-free, no search bar)",
"apiBaseUrl": "",
"props": {
"profile": "research-map",
"provider": "maplibre",
"instanceId": "research-map-maplibre"
},
"element": "doxa-research-map",
"iframeUrl": "./doxa-research-map/research-map/maplibre/index.html",
"embed": {
"iframe": ""
}
}
]
}
]
},
{
"bundle": "doxa-simple-map",
"scriptUrl": "./doxa-simple-map/doxa-simple-map.js",
"output": "dx-maps/doxa-simple-map/doxa-simple-map.js",
"integrity": "sha384-CkbrFX71L8DOqo4LtACDbHX9vw7e/ZSR+TczWh0BTqm8Nm60QzR1O7Zr87tkxcG8",
"elements": [
"doxa-map",
"doxa-simple-map"
],
"stage": "production",
"profiles": [
{
"profile": "doxa-simple-map",
"stage": "production",
"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": "",
"script": "\n\n\n\n"
},
"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": ""
}
},
{
"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": ""
}
},
{
"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": ""
}
}
]
}
]
},
{
"bundle": "doxa-vision-card",
"scriptUrl": "./doxa-vision-card/doxa-vision-card.js",
"output": "dx-maps/doxa-vision-card/doxa-vision-card.js",
"integrity": "sha384-ZChtIPhUBbNtPSWFmaGfEJWMn/LnEJWC+/qyPGAOYSRenGdrx+ZjoOchfsLg0Epr",
"elements": [
"doxa-vision-card"
],
"stage": "experimental",
"profiles": [
{
"profile": "doxa-vision-card",
"stage": "experimental",
"file": "doxa-vision-card.vue",
"description": "A true funnel of the remaining task, every number computed from data: all people",
"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": "",
"script": "\n\n"
},
"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": ""
}
},
{
"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: fewer than one person in a thousand is an evangelical believer."
},
"element": "doxa-vision-card",
"iframeUrl": "./doxa-vision-card/doxa-vision-card/frontier/index.html",
"embed": {
"iframe": ""
}
}
],
"bundle": "doxa-vision-card"
}
]
},
{
"bundle": "golden-path-check",
"scriptUrl": "./golden-path-check/golden-path-check.js",
"output": "dx-maps/golden-path-check/golden-path-check.js",
"integrity": "sha384-1V/sT5SkV0U9yTCK9ELIOFfU1ZIJkInIF6nG3UllJ4dxax3RsEAupSGLJEFK6e14",
"elements": [
"golden-path-check"
],
"stage": "experimental",
"profiles": [
{
"profile": "golden-path-check",
"stage": "experimental",
"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": "",
"script": "\n\n"
}
}
]
},
{
"bundle": "gospel-internet",
"scriptUrl": "./gospel-internet/gospel-internet.js",
"output": "dx-maps/gospel-internet/gospel-internet.js",
"integrity": "sha384-r2/iEI33cY/Yx5AxDqaNaXmiqubSasJOXAf6UsW8gS4tD7zmuVLcrcS3522hichl",
"elements": [
"gospel-internet-board"
],
"stage": "experimental",
"profiles": [
{
"profile": "board",
"stage": "experimental",
"label": "Gospel x Internet — the board",
"heavy": true,
"file": "board.vue",
"description": "For every remaining people group: what gospel resources exist in a language they use, and how much of their country (or Indian state) is online to receive them.",
"element": "gospel-internet-board",
"type": "single",
"isMap": true,
"iframeUrl": "./gospel-internet/board/index.html",
"scriptUrl": "./gospel-internet/gospel-internet.js",
"embed": {
"iframe": "",
"script": "\n\n\n\n"
},
"instances": [
{
"id": "board",
"title": "Gospel x Internet — the board",
"apiBaseUrl": "",
"props": {
"profile": "board",
"urlState": "query",
"pinHint": false
},
"element": "gospel-internet-board",
"iframeUrl": "./gospel-internet/board/board/index.html",
"embed": {
"iframe": ""
}
},
{
"id": "zero",
"title": "Nothing in their own language — the front door",
"apiBaseUrl": "",
"props": {
"profile": "board",
"view": "zero",
"urlState": "query",
"pinHint": false
},
"element": "gospel-internet-board",
"iframeUrl": "./gospel-internet/board/zero/index.html",
"embed": {
"iframe": ""
}
},
{
"id": "india-china",
"title": "India and China by state and province",
"apiBaseUrl": "",
"props": {
"profile": "board",
"view": "province",
"panel": "map",
"urlState": "query",
"pinHint": false
},
"element": "gospel-internet-board",
"iframeUrl": "./gospel-internet/board/india-china/index.html",
"embed": {
"iframe": ""
}
},
{
"id": "language-tree",
"title": "Language tree — which languages have the gospel, family by family",
"apiBaseUrl": "",
"props": {
"profile": "board",
"panel": "tree",
"urlState": "query",
"pinHint": false
},
"element": "gospel-internet-board",
"iframeUrl": "./gospel-internet/board/language-tree/index.html",
"embed": {
"iframe": ""
}
},
{
"id": "platforms",
"title": "Platforms — which apps would carry a resource there",
"apiBaseUrl": "",
"props": {
"profile": "board",
"view": "platforms",
"urlState": "query",
"pinHint": false
},
"element": "gospel-internet-board",
"iframeUrl": "./gospel-internet/board/platforms/index.html",
"embed": {
"iframe": ""
}
},
{
"id": "project-700",
"title": "Project 700 — the list as a partner embed",
"apiBaseUrl": "",
"props": {
"profile": "board",
"list": "700",
"urlState": "query",
"pinHint": false
},
"element": "gospel-internet-board",
"iframeUrl": "./gospel-internet/board/project-700/index.html",
"embed": {
"iframe": ""
}
}
]
}
]
},
{
"bundle": "gospel-resources",
"scriptUrl": "./gospel-resources/gospel-resources.js",
"output": "dx-maps/gospel-resources/gospel-resources.js",
"integrity": "sha384-oAcjki1Dxj2C/ZhiV+uaQmiWHWSeXHqhx7uvTeT2nqxpcQQnoUivuifvS4UhczjY",
"elements": [
"gospel-resources-map"
],
"composes": [
"resources-map",
"data-tables"
],
"stage": "production",
"profiles": [
{
"profile": "charts",
"stage": "experimental",
"file": "charts.vue",
"description": "The gap measured by LANGUAGE (ISO 639-3) rather than by people group, because one translation serves every group that speaks it, so counting by group overstates how much work remains.",
"element": "gospel-resources-map",
"type": "single",
"isMap": false,
"iframeUrl": "./gospel-resources/charts/index.html",
"scriptUrl": "./gospel-resources/gospel-resources.js",
"embed": {
"iframe": "",
"script": "\n\n"
}
},
{
"profile": "data-tables",
"stage": "experimental",
"file": "data-tables.vue",
"description": "Eleven tables covering both halves of one question: every gospel resource with its real URL and how much Scripture it is, and the 1,613 people groups where nothing was found with the pools searched recorded per row, plus translation priority, bridge languages, city bridges, the deaf gap and access against population growth.",
"element": "gospel-resources-map",
"type": "single",
"isMap": false,
"iframeUrl": "./gospel-resources/data-tables/index.html",
"scriptUrl": "./gospel-resources/gospel-resources.js",
"embed": {
"iframe": "",
"script": "\n\n"
}
},
{
"profile": "gospel-dashboard",
"stage": "production",
"label": "Gospel Dashboard (map + tables baked into one element, stacked to scroll)",
"file": "gospel-dashboard.vue",
"description": "The gospel map and its tables as one scrolling element: 12,379 people-group pins with the real Scripture, film and Bible-story links for each group's own language, above every resource with its URL and the 1,613 groups where nothing was found, exportable as CSV.",
"element": "gospel-resources-map",
"type": "nested-elements-mfe",
"isMap": true,
"iframeUrl": "./gospel-resources/gospel-dashboard/index.html",
"scriptUrl": "./gospel-resources/gospel-resources.js",
"embed": {
"iframe": "",
"script": "\n\n\n\n"
}
},
{
"profile": "resources-list",
"stage": "experimental",
"file": "resources-list.vue",
"description": "Which people groups have Scripture in their own language and which have none, zero-resource languages first, with every link the verification pass proved and Open Bible Stories labelled as stories rather than as Scripture.",
"element": "gospel-resources-map",
"type": "single",
"isMap": false,
"iframeUrl": "./gospel-resources/resources-list/index.html",
"scriptUrl": "./gospel-resources/gospel-resources.js",
"embed": {
"iframe": "",
"script": "\n\n"
}
},
{
"profile": "resources-map",
"stage": "experimental",
"label": "Gospel Resources — resources map",
"file": "resources-map.vue",
"description": "12,379 people-group pins over a country choropleth: tap a pin for the Scripture, audio, film, Bible-story and training links that exist in that group's own language with real URLs, tap a country for every group in it, search by group, language or ISO 639-3 code, and filter to the groups where nothing was found.",
"element": "gospel-resources-map",
"type": "single",
"isMap": true,
"iframeUrl": "./gospel-resources/resources-map/index.html",
"scriptUrl": "./gospel-resources/gospel-resources.js",
"embed": {
"iframe": "",
"script": "\n\n\n\n"
}
}
]
},
{
"bundle": "my-upg-100-list",
"scriptUrl": "./my-upg-100-list/my-upg-100-list.js",
"output": "dx-maps/my-upg-100-list/my-upg-100-list.js",
"integrity": "sha384-C0U354itQsRbzjkVCXMyE8Me4wKbmPqauyckaB+auXRdll+L1HMxbSJ8B9SRY/O4",
"elements": [
"my-upg-100-list-map"
],
"composes": [
"my-upg-100-list/upg-100-list",
"my-upg-100-list/poster-wall"
],
"stage": "production",
"profiles": [
{
"profile": "poster-wall",
"stage": "experimental",
"file": "poster-wall.vue",
"description": "A wall of printable poster cards, one per 100-list entry, each with a \"Show on map\"",
"element": "my-upg-100-list-map",
"type": "single",
"isMap": false,
"iframeUrl": "./my-upg-100-list/poster-wall/index.html",
"scriptUrl": "./my-upg-100-list/my-upg-100-list.js",
"embed": {
"iframe": "",
"script": "\n\n"
}
},
{
"profile": "upg-100-list",
"stage": "experimental",
"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": "",
"script": "\n\n\n\n"
}
},
{
"profile": "upg-100-mfe",
"stage": "production",
"label": "UPG-100 — Map + Prayer Lists",
"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": "",
"script": "\n\n\n\n"
}
}
]
},
{
"bundle": "people-groups-grid",
"scriptUrl": "./people-groups-grid/people-groups-grid.js",
"output": "dx-maps/people-groups-grid/people-groups-grid.js",
"integrity": "sha384-iSSXDdIeHrAuuvA8zvtD2unbSq7DozG9x6wTncSFUzfdHGgRuiO2VzM7NM3qCVsO",
"elements": [
"people-groups-grid"
],
"stage": "experimental",
"profiles": [
{
"profile": "people-groups-grid",
"stage": "experimental",
"label": "People Groups Grid (Cat-2 prop-table: search + 4 dropdowns + faceted counts; show-search/show-filters + groups-filtered)",
"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": "",
"script": "\n\n"
},
"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": ""
}
},
{
"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": ""
}
}
]
}
]
},
{
"bundle": "plugin-studio",
"scriptUrl": "./plugin-studio/plugin-studio.js",
"output": "dx-maps/plugin-studio/plugin-studio.js",
"integrity": "sha384-dVe39HIJ0Dw20gfFjUlrOgtMMyN4J99FMOdxnyfoJtdxK3rCy8tjr+RxY5ruTs80",
"elements": [
"plugin-studio"
],
"composes": [
"dashboard-plus-grid",
"people-groups-grid",
"doxa-research-map",
"doxa-simple-map",
"cities-internet-map",
"gospel-resources-map",
"my-upg-100-list-map",
"doxa-vision-card",
"all-people-groups",
"research-dashboard"
],
"stage": "experimental",
"profiles": [
{
"profile": "plugin-studio",
"stage": "experimental",
"label": "Plugin Studio (cap-5 developer studio: every element by capability 5 -> 1)",
"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": "",
"script": "\n\n"
},
"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": ""
}
}
]
}
]
},
{
"bundle": "pplr-data-maps",
"scriptUrl": "./pplr-data-maps/pplr-data-maps.js",
"output": "dx-maps/pplr-data-maps/pplr-data-maps.js",
"integrity": "sha384-rubpRmSBkm6v202d1whkPHrDHqpD+3+OKsqAYaaYcFHxjH4McsdsZUypXrcHgUVz",
"elements": [
"pplr-data-maps"
],
"stage": "experimental",
"profiles": [
{
"profile": "pplr-data-maps",
"stage": "experimental",
"label": "PPLR Data Maps",
"file": "pplr-data-maps.vue",
"description": "Ten views that let a researcher check the PPLR people-group data by eye",
"element": "pplr-data-maps",
"type": "monolithic",
"isMap": true,
"iframeUrl": "./pplr-data-maps/pplr-data-maps/index.html",
"scriptUrl": "./pplr-data-maps/pplr-data-maps.js",
"embed": {
"iframe": "",
"script": "\n\n\n\n"
},
"bundle": "pplr-data-maps"
}
]
},
{
"bundle": "prayer-walk-planner",
"scriptUrl": "./prayer-walk-planner/prayer-walk-planner.js",
"output": "dx-maps/prayer-walk-planner/prayer-walk-planner.js",
"integrity": "sha384-T/NWde52/TY+ljyOu26UBMz9HPVwDymkMlBInRm3XFg8liVBWWfeul1vAPNUUq6K",
"elements": [
"prayer-walk-planner"
],
"stage": "experimental",
"profiles": [
{
"profile": "prayer-walk-planner",
"stage": "experimental",
"file": "prayer-walk-planner.vue",
"description": "A simple polygon-drawing tool for planning prayer-walking routes.",
"element": "prayer-walk-planner",
"type": "single",
"isMap": true,
"iframeUrl": "./prayer-walk-planner/prayer-walk-planner/index.html",
"scriptUrl": "./prayer-walk-planner/prayer-walk-planner.js",
"embed": {
"iframe": "",
"script": "\n\n\n\n"
}
}
]
},
{
"bundle": "regions-dashboard",
"scriptUrl": "./regions-dashboard/regions-dashboard.js",
"output": "dx-maps/regions-dashboard/regions-dashboard.js",
"integrity": "sha384-C8sYbeAQnDL/S+hHhGHXNtzSjOZXjx9S6usln36EJJ0S9i9kGWS1M+0EDLyRzTcy",
"elements": [
"regions-dashboard"
],
"composes": [
"regions-dashboard/regions-list",
"regions-dashboard/region-dashboards"
],
"stage": "production",
"profiles": [
{
"profile": "region-dashboards",
"stage": "experimental",
"label": "Regions — region + country dashboard",
"file": "region-dashboards.vue",
"description": "The dashboard half of the 2-tab Regions element: given a region (or a",
"element": "regions-dashboard",
"type": "single",
"isMap": true,
"iframeUrl": "./regions-dashboard/region-dashboards/index.html",
"scriptUrl": "./regions-dashboard/regions-dashboard.js",
"embed": {
"iframe": "",
"script": "\n\n\n\n"
}
},
{
"profile": "regions-list",
"stage": "experimental",
"label": "Regions — the list page",
"file": "regions-list.vue",
"description": "A refactor of DX-life's /regions index page (app/pages/regions/index.vue) into",
"element": "regions-dashboard",
"type": "single",
"isMap": false,
"iframeUrl": "./regions-dashboard/regions-list/index.html",
"scriptUrl": "./regions-dashboard/regions-dashboard.js",
"embed": {
"iframe": "",
"script": "\n\n"
}
},
{
"profile": "regions-mfe",
"stage": "production",
"label": "Regions — List + Dashboards",
"file": "regions-mfe.vue",
"description": "The composite: ONE element carrying the SELECT VIEW switcher",
"element": "regions-dashboard",
"type": "nested-elements-mfe",
"isMap": true,
"iframeUrl": "./regions-dashboard/regions-mfe/index.html",
"scriptUrl": "./regions-dashboard/regions-dashboard.js",
"embed": {
"iframe": "",
"script": "\n\n\n\n"
}
}
]
},
{
"bundle": "research-dashboard",
"scriptUrl": "./research-dashboard/research-dashboard.js",
"output": "dx-maps/research-dashboard/research-dashboard.js",
"integrity": "sha384-KDXJbKFaAbMwrZNlONidwpxb4AXWHVIHKN+ASJpHjgDTH5Uhfzv5EOXhxVBAzTi0",
"elements": [
"research-dashboard-map"
],
"stage": "experimental",
"profiles": [
{
"profile": "research-dashboard",
"stage": "experimental",
"label": "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": "",
"script": "\n\n\n\n"
},
"bundle": "research-dashboard"
}
]
},
{
"bundle": "research-map-plus-grid",
"scriptUrl": "./research-map-plus-grid/research-map-plus-grid.js",
"output": "dx-maps/research-map-plus-grid/research-map-plus-grid.js",
"integrity": "sha384-malo2pC/K0/1Xi9kyDubh+4tY9HC56zcO/VsgppNf5c4AXvXG9RMxqVHYoFAoOr5",
"elements": [
"research-map-plus-grid"
],
"composes": [
"doxa-research-map",
"people-groups-grid"
],
"stage": "production",
"profiles": [
{
"profile": "research-map-plus-grid",
"stage": "production",
"label": "Research Map + Grid (mobile composite, stacked to scroll)",
"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": "",
"script": "\n\n"
},
"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": ""
}
}
]
}
]
},
{
"bundle": "rudder-voice",
"scriptUrl": "./rudder-voice/rudder-voice.js",
"output": "dx-maps/rudder-voice/rudder-voice.js",
"integrity": "sha384-mPb2Q/qsmkqwX6e5QOD95dq551HeIfvvDHm43RjEyWx4IBphNGJov8Er5cQCf/Ey",
"elements": [
"rudder-voice"
],
"stage": "experimental",
"profiles": [
{
"profile": "rudder-voice",
"stage": "experimental",
"label": "Rudder — voice to text (desktop)",
"widget": {
"corner": "bottom-right"
},
"file": "rudder-voice.vue",
"description": "A DESKTOP-target plugin (rudder-voice.meta.json \"targets\": [\"desktop\"]). The speech",
"element": "rudder-voice",
"type": "single",
"isMap": false,
"iframeUrl": "./rudder-voice/rudder-voice/index.html",
"scriptUrl": "./rudder-voice/rudder-voice.js",
"embed": {
"iframe": "",
"script": "\n\n"
}
}
]
},
{
"bundle": "stack-demo",
"scriptUrl": "./stack-demo/stack-demo.js",
"output": "dx-maps/stack-demo/stack-demo.js",
"integrity": "sha384-Pg93Oyzao9WxHJMSJZPF798o1/Klk2ie7EDLTpVpQd0HaKCDDEHRDWUjt6OYwzqi",
"elements": [
"stack-demo"
],
"composes": [
"research-dashboard-map",
"people-groups-grid"
],
"stage": "experimental",
"profiles": [
{
"profile": "stack-demo",
"stage": "experimental",
"label": "Stack Demo (two elements stacked to scroll — StackLayout)",
"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": "",
"script": "\n\n"
},
"instances": [
{
"id": "pair",
"title": "pair",
"apiBaseUrl": "",
"props": {
"profile": "stack-demo"
},
"element": "stack-demo",
"iframeUrl": "./stack-demo/stack-demo/pair/index.html",
"embed": {
"iframe": ""
}
}
]
}
]
},
{
"bundle": "upg-neighbor",
"scriptUrl": "./upg-neighbor/upg-neighbor.js",
"output": "dx-maps/upg-neighbor/upg-neighbor.js",
"integrity": "sha384-3rvydQZI/y8vGGArQua/O3VWTpBVIbkLcXMK2SQttHKpDOJfJY8epyKY0rJJseJC",
"elements": [
"upg-neighbor"
],
"stage": "experimental",
"profiles": [
{
"profile": "upg-neighbor",
"stage": "experimental",
"label": "My UPG Neighbors",
"file": "upg-neighbor.vue",
"description": "Near-neighbor mobilization on Winter's E-scale: who to mobilize, in what language, where",
"element": "upg-neighbor",
"type": "monolithic",
"isMap": true,
"iframeUrl": "./upg-neighbor/upg-neighbor/index.html",
"scriptUrl": "./upg-neighbor/upg-neighbor.js",
"embed": {
"iframe": "",
"script": "\n\n\n\n"
},
"instances": [
{
"id": "send-map",
"title": "Mobilize near neighbors",
"apiBaseUrl": "",
"props": {
"profile": "upg-neighbor",
"view": "mobilize"
},
"element": "upg-neighbor",
"iframeUrl": "./upg-neighbor/upg-neighbor/send-map/index.html",
"embed": {
"iframe": ""
}
},
{
"id": "upg-neighbors",
"title": "UPG Neighbors: mobilize",
"apiBaseUrl": "",
"props": {
"profile": "upg-neighbor",
"view": "mobilize"
},
"element": "upg-neighbor",
"iframeUrl": "./upg-neighbor/upg-neighbor/upg-neighbors/index.html",
"embed": {
"iframe": ""
}
},
{
"id": "lang-cluster",
"title": "Bridge-language campaigns",
"apiBaseUrl": "",
"props": {
"profile": "upg-neighbor",
"view": "campaigns"
},
"element": "upg-neighbor",
"iframeUrl": "./upg-neighbor/upg-neighbor/lang-cluster/index.html",
"embed": {
"iframe": ""
}
},
{
"id": "bloom-cockpit",
"title": "Mobilize near neighbors",
"apiBaseUrl": "",
"props": {
"profile": "upg-neighbor",
"view": "mobilize"
},
"element": "upg-neighbor",
"iframeUrl": "./upg-neighbor/upg-neighbor/bloom-cockpit/index.html",
"embed": {
"iframe": ""
}
},
{
"id": "flower-mesh",
"title": "Mobilize near neighbors",
"apiBaseUrl": "",
"props": {
"profile": "upg-neighbor",
"view": "mobilize"
},
"element": "upg-neighbor",
"iframeUrl": "./upg-neighbor/upg-neighbor/flower-mesh/index.html",
"embed": {
"iframe": ""
}
}
],
"bundle": "upg-neighbor"
}
]
},
{
"bundle": "wall-of-people-groups",
"scriptUrl": "./wall-of-people-groups/wall-of-people-groups.js",
"output": "dx-maps/wall-of-people-groups/wall-of-people-groups.js",
"integrity": "sha384-5eLtMJ/7TstCqIQ8d545ygM23iim57boexFlAAvrVfUGDCjMwVYF61iTtX0JX07L",
"elements": [
"wall-of-people-groups"
],
"stage": "experimental",
"profiles": [
{
"profile": "wall-of-people-groups",
"stage": "experimental",
"label": "Wall of People Groups",
"file": "wall-of-people-groups.vue",
"description": "Every Doxa people group as a card on one zoomable prayer wall",
"element": "wall-of-people-groups",
"type": "monolithic",
"isMap": false,
"iframeUrl": "./wall-of-people-groups/wall-of-people-groups/index.html",
"scriptUrl": "./wall-of-people-groups/wall-of-people-groups.js",
"embed": {
"iframe": "",
"script": "\n\n"
},
"bundle": "wall-of-people-groups"
}
]
}
]
}