utm_source inherits from the embed URL (the question-mark mechanism)
Some checks are pending
Deploy to GitHub Pages / build (push) Waiting to run
Deploy to GitHub Pages / deploy (push) Blocked by required conditions

The page URL's ?utm_source= now outranks config/global/default in every outbound
people-group link — an iframe embedded as <page>?utm_source=agwm, a partner page
carrying its own ?utm_source, or a host page like /embed/map/?utm_source=agwm
all attribute their traffic automatically. Applied in the shared popup and both
dashboard drawer links.
This commit is contained in:
doxa-maps 2026-09-16 04:04:35 +00:00
parent 78fa7ac10a
commit d5ad3aab0b
30 changed files with 321 additions and 214 deletions

View file

@ -69,7 +69,8 @@ const prayHref = computed(() => {
if (!r) return null
// utm_source: outbound-traffic attribution (see PeopleGroupDetail.vue) — cfg
// override wins; default 'agwm'.
const utm = encodeURIComponent(String(detailCfg.value.utmSource || cfg.utmSource || 'agwm'))
const utmUrl = (() => { try { return new URLSearchParams(window.location.search).get('utm_source') || '' } catch (_) { return '' } })()
const utm = encodeURIComponent(String(utmUrl || detailCfg.value.utmSource || cfg.utmSource || 'agwm'))
const def = `https://pray.doxa.life/${encodeURIComponent(r.slug || '')}?source=doxalife&utm_source=${utm}`
return resolveUrl(detailCfg.value.prayUrl, r, def)
})
@ -77,7 +78,8 @@ const moreInfoHref = computed(() => {
const r = record.value
if (!r) return null
const origin = (typeof window !== 'undefined' && window.location?.origin) || 'https://doxa.life'
const utm = encodeURIComponent(String(detailCfg.value.utmSource || cfg.utmSource || 'agwm'))
const utmUrl = (() => { try { return new URLSearchParams(window.location.search).get('utm_source') || '' } catch (_) { return '' } })()
const utm = encodeURIComponent(String(utmUrl || detailCfg.value.utmSource || cfg.utmSource || 'agwm'))
const def = `${origin}/research/${encodeURIComponent(r.slug || '')}/?utm_source=${utm}`
return resolveUrl(detailCfg.value.moreInfoUrl, r, def)
})

View file

@ -378,9 +378,16 @@ function handleClose() {
// page override); default 'agwm'. The legacy `source=doxalife` param is KEPT so
// any existing consumer of it keeps working.
function utmSource() {
// THE QUESTION MARK IS THE MECHANISM: an embed URL like
// <embed-page>?utm_source=agwm (iframe) or a partner page's own ?utm_source
// is the per-placement tracking signal, so the PAGE URL outranks everything —
// whoever placed the embed decides the attribution. Then per-embed config,
// then the host global, then the default.
let fromUrl = ''
try { fromUrl = new URLSearchParams(window.location.search).get('utm_source') || '' } catch (_) {}
const fromConfig = profileConfig?.value?.utmSource
const fromHost = (typeof window !== 'undefined' && window.DOXA_UTM_SOURCE) || ''
return encodeURIComponent(String(fromConfig || fromHost || 'agwm'))
return encodeURIComponent(String(fromUrl || fromConfig || fromHost || 'agwm'))
}
// Slug-based URL templates (see docs/feedback.md → Section E).

View file

@ -50,6 +50,10 @@ const MAPBOX_CSS_URL = ENGINES.mapbox.css
// style — see the provider notes; a MapLibre map looks different by design.
const OPENFREEMAP_STYLE = 'https://tiles.openfreemap.org/styles/liberty'
// Named styles: the 12-style pack. A profile-config style of 'ink' /
// 'midnight-glow' / … resolves per engine here; raw URLs pass through.
import { resolveNamedStyle } from '../styles/registry.js'
/** The live engine global for a provider, or undefined if not yet loaded. */
function engineGlobal(provider) {
const name = ENGINES[provider]?.global || ENGINES.mapbox.global
@ -236,6 +240,10 @@ export function useMapInstance({
const isMaplibre = provider === 'maplibre'
async function initializeMap() {
// Resolve a NAMED style ('ink', 'satellite', …) for this engine; raw URLs
// and undefined keep their existing behavior (see library/styles/registry.js).
const _named = resolveNamedStyle(style, provider)
const effectiveStyle = _named.style || style
if (!containerRef.value) {
console.error('containerRef.value is null — call initializeMap() inside onMounted()')
return
@ -316,7 +324,7 @@ export function useMapInstance({
// GL-JS Map option surface; only the token/style differ from Mapbox.
map.value = new gl.Map({
container: containerRef.value, // real DOM element — never a string ID in shadow DOM
style: maplibreStyle(style),
style: maplibreStyle(effectiveStyle),
center,
zoom,
minZoom: initialMinZoom,
@ -332,7 +340,7 @@ export function useMapInstance({
map.value = new gl.Map({
accessToken: token, // BP #1 from W1A — per-instance token; avoids last-writer-wins on multi-embed pages
container: containerRef.value, // real DOM element — never a string ID in shadow DOM
style,
style: effectiveStyle,
center,
zoom,
minZoom: initialMinZoom,

View file

@ -0,0 +1,90 @@
// library/styles/registry.js — the named 12-style pack, every style on BOTH engines.
//
// WHY NAMES: profile-config carried raw style URLs, which (a) tie an embed to one
// engine (a mapbox:// URL is meaningless to MapLibre) and (b) scatter taste
// decisions across profiles. A NAME ('midnight-glow') resolves per provider, so
// the same embed config works on Mapbox and token-free MapLibre alike.
//
// PAIRING RULES:
// · mapbox side: official style URLs (Standard's lightPreset variants give
// day/dawn/dusk/night from ONE style doc — seamless theme flips, see
// useMapTheme.js). `lightPreset` here is a HINT profiles may apply on load.
// · maplibre side: FREE, no-key styles only — OpenFreeMap (liberty/bright/
// positron) and CARTO gl styles (positron/dark-matter/voyager). No free
// satellite imagery exists for MapLibre, so imagery styles fall back to the
// closest free look (noted per entry).
//
// A raw URL still works everywhere a name does (resolveNamedStyle passes
// mapbox:// and http(s):// through untouched) — nothing existing breaks.
export const STYLE_REGISTRY = [
{ id: 'midnight-glow', label: 'Midnight Glow', mood: 'the prayer-map dark — pins glow like embers',
mapbox: 'mapbox://styles/mapbox/standard', lightPreset: 'night',
maplibre: 'https://basemaps.cartocdn.com/gl/dark-matter-gl-style/style.json',
bestFor: ['doxa-simple-map', 'my-upg-100-list'] },
{ id: 'daylight', label: 'Daylight', mood: 'the same Standard world, lights on',
mapbox: 'mapbox://styles/mapbox/standard', lightPreset: 'day',
maplibre: 'https://tiles.openfreemap.org/styles/liberty',
bestFor: ['doxa-research-map', 'gospel-resources'] },
{ id: 'dawn', label: 'Dawn', mood: 'soft warm horizon — hopeful, quiet',
mapbox: 'mapbox://styles/mapbox/standard', lightPreset: 'dawn',
maplibre: 'https://tiles.openfreemap.org/styles/positron',
bestFor: ['doxa-simple-map'] },
{ id: 'dusk', label: 'Dusk', mood: 'blue hour — calm contrast for bright pins',
mapbox: 'mapbox://styles/mapbox/standard', lightPreset: 'dusk',
maplibre: 'https://basemaps.cartocdn.com/gl/dark-matter-gl-style/style.json',
bestFor: ['my-upg-100-list'] },
{ id: 'paper', label: 'Paper', mood: 'near-white minimal — data reads like print',
mapbox: 'mapbox://styles/mapbox/light-v11',
maplibre: 'https://basemaps.cartocdn.com/gl/positron-gl-style/style.json',
bestFor: ['research-dashboard', 'cities-internet'] },
{ id: 'ink', label: 'Ink', mood: 'near-black minimal — maximum pin contrast',
mapbox: 'mapbox://styles/mapbox/dark-v11',
maplibre: 'https://basemaps.cartocdn.com/gl/dark-matter-gl-style/style.json',
bestFor: ['my-upg-100-list', 'cities-internet'] },
{ id: 'streetlife', label: 'Street Life', mood: 'full street detail — city-scale work',
mapbox: 'mapbox://styles/mapbox/streets-v12',
maplibre: 'https://tiles.openfreemap.org/styles/bright',
bestFor: ['cities-internet', 'key-cities'] },
{ id: 'terrain', label: 'Terrain', mood: 'relief + parks — where people actually live',
mapbox: 'mapbox://styles/mapbox/outdoors-v12',
maplibre: 'https://tiles.openfreemap.org/styles/liberty',
bestFor: ['doxa-research-map', 'country-posters'] },
{ id: 'satellite', label: 'Satellite', mood: 'imagery — the real ground',
mapbox: 'mapbox://styles/mapbox/satellite-v9',
maplibre: 'https://basemaps.cartocdn.com/gl/voyager-gl-style/style.json', // no free imagery on MapLibre — closest free look
bestFor: ['country-posters'] },
{ id: 'hybrid', label: 'Hybrid', mood: 'imagery + labels — orientation without losing ground truth',
mapbox: 'mapbox://styles/mapbox/satellite-streets-v12',
maplibre: 'https://basemaps.cartocdn.com/gl/voyager-gl-style/style.json', // same fallback note as satellite
bestFor: ['key-cities'] },
{ id: 'wayfinder-day', label: 'Wayfinder Day', mood: 'high-legibility navigation palette',
mapbox: 'mapbox://styles/mapbox/navigation-day-v1',
maplibre: 'https://basemaps.cartocdn.com/gl/voyager-gl-style/style.json',
bestFor: ['gospel-resources'] },
{ id: 'wayfinder-night',label: 'Wayfinder Night',mood: 'dark navigation — dashboards at night',
mapbox: 'mapbox://styles/mapbox/navigation-night-v1',
maplibre: 'https://basemaps.cartocdn.com/gl/dark-matter-gl-style/style.json',
bestFor: ['research-dashboard'] },
]
const BY_ID = Object.fromEntries(STYLE_REGISTRY.map(s => [s.id, s]))
/**
* Resolve a profile-config `style` value for an engine.
* · a registry NAME → that entry's per-provider style URL
* · a raw mapbox:// or http(s):// URL → passed through untouched (legacy behavior)
* · anything else / undefined → undefined (caller keeps its own default)
* Returns { style, lightPreset } — lightPreset only for named Standard variants.
*/
export function resolveNamedStyle(value, provider = 'mapbox') {
if (typeof value !== 'string' || !value) return { style: undefined, lightPreset: undefined }
const entry = BY_ID[value]
if (entry) {
return provider === 'maplibre'
? { style: entry.maplibre, lightPreset: undefined }
: { style: entry.mapbox, lightPreset: entry.lightPreset }
}
if (/^(mapbox:\/\/|https?:\/\/)/.test(value)) return { style: value, lightPreset: undefined }
return { style: undefined, lightPreset: undefined }
}

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <country-posters-map> custom element. -->
<script src="../country-posters.js" integrity="sha384-FBtv267lu0P9eg9CMAttrXz1NOkbktgrwvUDjBJvRIEkpqxHCy1UD7ceJeIfAvjX" crossorigin="anonymous"></script>
<script src="../country-posters.js" integrity="sha384-n56xDdBrLifTiXMlqyiUMXXqLPhsdUlMPp7fPiD+DboNhQOiyKgZemKONDO2HxhC" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <country-posters-map> custom element. -->
<script src="../country-posters.js" integrity="sha384-FBtv267lu0P9eg9CMAttrXz1NOkbktgrwvUDjBJvRIEkpqxHCy1UD7ceJeIfAvjX" crossorigin="anonymous"></script>
<script src="../country-posters.js" integrity="sha384-n56xDdBrLifTiXMlqyiUMXXqLPhsdUlMPp7fPiD+DboNhQOiyKgZemKONDO2HxhC" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

File diff suppressed because one or more lines are too long

View file

@ -130,7 +130,7 @@ header.top .sub { margin-top: 3px; font: 12px/1.4 var(--sans); color: var(--mut)
<script>window.FORGE = {"mode":"built","scope":"bundle","manifestUrl":"../manifest.json","bundle":"country-posters","hrefBase":"../"};
/* file:// contract: manifest inlined at build — no fetch needed to render. */
window.FORGE.manifest = {"schema":"doxa-maps-manifest@1","generatedFrom":"app-profiles/*/*.vue","embedBase":".","bundleCount":9,"profileCount":17,"bundles":[{"bundle":"country-posters","scriptUrl":"./country-posters/country-posters.js","output":"doxa-maps/country-posters/country-posters.js","integrity":"sha384-FBtv267lu0P9eg9CMAttrXz1NOkbktgrwvUDjBJvRIEkpqxHCy1UD7ceJeIfAvjX","elements":["country-posters-map"],"profiles":[{"profile":"countries-map","file":"countries-map.vue","description":"","element":"country-posters-map","iframeUrl":"./country-posters/countries-map/index.html","scriptUrl":"./country-posters/country-posters.js","embed":{"iframe":"\u003ciframe src=\"./country-posters/countries-map/index.html\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript src=\"./country-posters/country-posters.js\" integrity=\"sha384-FBtv267lu0P9eg9CMAttrXz1NOkbktgrwvUDjBJvRIEkpqxHCy1UD7ceJeIfAvjX\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccountry-posters-map profile-config='{\"profile\":\"countries-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\"}'>\u003c/country-posters-map>"}},{"profile":"country-poster-wall","file":"country-poster-wall.vue","description":"","element":"country-posters-map","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\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript src=\"./country-posters/country-posters.js\" integrity=\"sha384-FBtv267lu0P9eg9CMAttrXz1NOkbktgrwvUDjBJvRIEkpqxHCy1UD7ceJeIfAvjX\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccountry-posters-map profile-config='{\"profile\":\"country-poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\"}'>\u003c/country-posters-map>"}}]}]};</script>
window.FORGE.manifest = {"schema":"doxa-maps-manifest@1","generatedFrom":"app-profiles/*/*.vue","embedBase":".","bundleCount":9,"profileCount":17,"bundles":[{"bundle":"country-posters","scriptUrl":"./country-posters/country-posters.js","output":"doxa-maps/country-posters/country-posters.js","integrity":"sha384-n56xDdBrLifTiXMlqyiUMXXqLPhsdUlMPp7fPiD+DboNhQOiyKgZemKONDO2HxhC","elements":["country-posters-map"],"profiles":[{"profile":"countries-map","file":"countries-map.vue","description":"","element":"country-posters-map","iframeUrl":"./country-posters/countries-map/index.html","scriptUrl":"./country-posters/country-posters.js","embed":{"iframe":"\u003ciframe src=\"./country-posters/countries-map/index.html\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript src=\"./country-posters/country-posters.js\" integrity=\"sha384-n56xDdBrLifTiXMlqyiUMXXqLPhsdUlMPp7fPiD+DboNhQOiyKgZemKONDO2HxhC\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccountry-posters-map profile-config='{\"profile\":\"countries-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\"}'>\u003c/country-posters-map>"}},{"profile":"country-poster-wall","file":"country-poster-wall.vue","description":"","element":"country-posters-map","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\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript src=\"./country-posters/country-posters.js\" integrity=\"sha384-n56xDdBrLifTiXMlqyiUMXXqLPhsdUlMPp7fPiD+DboNhQOiyKgZemKONDO2HxhC\" crossorigin=\"anonymous\">\u003c/script>\n\u003ccountry-posters-map profile-config='{\"profile\":\"country-poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\"}'>\u003c/country-posters-map>"}}]}]};</script>
<script>/**
* staging-forge.js — the ONE-PAGE semantic staging environment (root + bundle pages).
*

File diff suppressed because one or more lines are too long

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <demo-map> custom element. -->
<script src="../demo-map.js" integrity="sha384-B+SyViDxVGRi34FHMkYac/xvZ43ATdtjC581+MYPyim2Z8wk+6uAWj7DNt6GA+C2" crossorigin="anonymous"></script>
<script src="../demo-map.js" integrity="sha384-4+J4YYmXNDMdsv+sGd/8Q60hY2akzgpH968K1bHHClUxkXctNKRYlctvKlJbtK2b" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -27,7 +27,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <demo-map> custom element. -->
<script src="../../demo-map.js" integrity="sha384-B+SyViDxVGRi34FHMkYac/xvZ43ATdtjC581+MYPyim2Z8wk+6uAWj7DNt6GA+C2" crossorigin="anonymous"></script>
<script src="../../demo-map.js" integrity="sha384-4+J4YYmXNDMdsv+sGd/8Q60hY2akzgpH968K1bHHClUxkXctNKRYlctvKlJbtK2b" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -130,7 +130,7 @@ header.top .sub { margin-top: 3px; font: 12px/1.4 var(--sans); color: var(--mut)
<script>window.FORGE = {"mode":"built","scope":"bundle","manifestUrl":"../manifest.json","bundle":"demo-map","hrefBase":"../"};
/* file:// contract: manifest inlined at build — no fetch needed to render. */
window.FORGE.manifest = {"schema":"doxa-maps-manifest@1","generatedFrom":"app-profiles/*/*.vue","embedBase":".","bundleCount":9,"profileCount":17,"bundles":[{"bundle":"demo-map","scriptUrl":"./demo-map/demo-map.js","output":"doxa-maps/demo-map/demo-map.js","integrity":"sha384-B+SyViDxVGRi34FHMkYac/xvZ43ATdtjC581+MYPyim2Z8wk+6uAWj7DNt6GA+C2","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","iframeUrl":"./demo-map/demo-map/index.html","scriptUrl":"./demo-map/demo-map.js","embed":{"iframe":"\u003ciframe src=\"./demo-map/demo-map/index.html\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript src=\"./demo-map/demo-map.js\" integrity=\"sha384-B+SyViDxVGRi34FHMkYac/xvZ43ATdtjC581+MYPyim2Z8wk+6uAWj7DNt6GA+C2\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdemo-map profile-config='{\"profile\":\"demo-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\"}'>\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\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}],"bundle":"demo-map"}]}]};</script>
window.FORGE.manifest = {"schema":"doxa-maps-manifest@1","generatedFrom":"app-profiles/*/*.vue","embedBase":".","bundleCount":9,"profileCount":17,"bundles":[{"bundle":"demo-map","scriptUrl":"./demo-map/demo-map.js","output":"doxa-maps/demo-map/demo-map.js","integrity":"sha384-4+J4YYmXNDMdsv+sGd/8Q60hY2akzgpH968K1bHHClUxkXctNKRYlctvKlJbtK2b","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","iframeUrl":"./demo-map/demo-map/index.html","scriptUrl":"./demo-map/demo-map.js","embed":{"iframe":"\u003ciframe src=\"./demo-map/demo-map/index.html\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript src=\"./demo-map/demo-map.js\" integrity=\"sha384-4+J4YYmXNDMdsv+sGd/8Q60hY2akzgpH968K1bHHClUxkXctNKRYlctvKlJbtK2b\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdemo-map profile-config='{\"profile\":\"demo-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\"}'>\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\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}],"bundle":"demo-map"}]}]};</script>
<script>/**
* staging-forge.js — the ONE-PAGE semantic staging environment (root + bundle pages).
*

File diff suppressed because one or more lines are too long

View file

@ -130,7 +130,7 @@ header.top .sub { margin-top: 3px; font: 12px/1.4 var(--sans); color: var(--mut)
<script>window.FORGE = {"mode":"built","scope":"bundle","manifestUrl":"../manifest.json","bundle":"doxa-research-map","hrefBase":"../"};
/* file:// contract: manifest inlined at build — no fetch needed to render. */
window.FORGE.manifest = {"schema":"doxa-maps-manifest@1","generatedFrom":"app-profiles/*/*.vue","embedBase":".","bundleCount":9,"profileCount":17,"bundles":[{"bundle":"doxa-research-map","scriptUrl":"./doxa-research-map/doxa-research-map.js","output":"doxa-maps/doxa-research-map/doxa-research-map.js","integrity":"sha384-ucQyb81oBIScE6DAnHkfssGlIPACxSPP/BoC6mtdkuRn/XNSgyGDssUDTKtodUCL","elements":["doxa-research-map"],"profiles":[{"profile":"research-map","file":"research-map.vue","description":"","element":"doxa-research-map","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\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript src=\"./doxa-research-map/doxa-research-map.js\" integrity=\"sha384-ucQyb81oBIScE6DAnHkfssGlIPACxSPP/BoC6mtdkuRn/XNSgyGDssUDTKtodUCL\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-research-map profile-config='{\"profile\":\"research-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\"}'>\u003c/doxa-research-map>"}}]}]};</script>
window.FORGE.manifest = {"schema":"doxa-maps-manifest@1","generatedFrom":"app-profiles/*/*.vue","embedBase":".","bundleCount":9,"profileCount":17,"bundles":[{"bundle":"doxa-research-map","scriptUrl":"./doxa-research-map/doxa-research-map.js","output":"doxa-maps/doxa-research-map/doxa-research-map.js","integrity":"sha384-xUWb0a+reCVVmrFNLyDgblnoYvA/RCpEGD5kS5mjCm61bL0Zv463I89TMDuCBh2u","elements":["doxa-research-map"],"profiles":[{"profile":"research-map","file":"research-map.vue","description":"","element":"doxa-research-map","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\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript src=\"./doxa-research-map/doxa-research-map.js\" integrity=\"sha384-xUWb0a+reCVVmrFNLyDgblnoYvA/RCpEGD5kS5mjCm61bL0Zv463I89TMDuCBh2u\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-research-map profile-config='{\"profile\":\"research-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\"}'>\u003c/doxa-research-map>"}}]}]};</script>
<script>/**
* staging-forge.js — the ONE-PAGE semantic staging environment (root + bundle pages).
*

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <doxa-research-map> custom element. -->
<script src="../doxa-research-map.js" integrity="sha384-ucQyb81oBIScE6DAnHkfssGlIPACxSPP/BoC6mtdkuRn/XNSgyGDssUDTKtodUCL" crossorigin="anonymous"></script>
<script src="../doxa-research-map.js" integrity="sha384-xUWb0a+reCVVmrFNLyDgblnoYvA/RCpEGD5kS5mjCm61bL0Zv463I89TMDuCBh2u" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

File diff suppressed because one or more lines are too long

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <doxa-map> custom element. -->
<script src="../../doxa-simple-map.js" integrity="sha384-bhqFr7F7wpWDfWVigz0L7MH4tqQObm/W3xhcuzx82x9C64JFGpHDO8QgCRojX56a" crossorigin="anonymous"></script>
<script src="../../doxa-simple-map.js" integrity="sha384-MOCXLAI5Kvp+9NrDyR+YWkolkd8QOnBELgqHCKGYvnZtPIiI/yaoT7qxKPackT07" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <doxa-map> custom element. -->
<script src="../../doxa-simple-map.js" integrity="sha384-bhqFr7F7wpWDfWVigz0L7MH4tqQObm/W3xhcuzx82x9C64JFGpHDO8QgCRojX56a" crossorigin="anonymous"></script>
<script src="../../doxa-simple-map.js" integrity="sha384-MOCXLAI5Kvp+9NrDyR+YWkolkd8QOnBELgqHCKGYvnZtPIiI/yaoT7qxKPackT07" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <doxa-map> custom element. -->
<script src="../doxa-simple-map.js" integrity="sha384-bhqFr7F7wpWDfWVigz0L7MH4tqQObm/W3xhcuzx82x9C64JFGpHDO8QgCRojX56a" crossorigin="anonymous"></script>
<script src="../doxa-simple-map.js" integrity="sha384-MOCXLAI5Kvp+9NrDyR+YWkolkd8QOnBELgqHCKGYvnZtPIiI/yaoT7qxKPackT07" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <doxa-map> custom element. -->
<script src="../../doxa-simple-map.js" integrity="sha384-bhqFr7F7wpWDfWVigz0L7MH4tqQObm/W3xhcuzx82x9C64JFGpHDO8QgCRojX56a" crossorigin="anonymous"></script>
<script src="../../doxa-simple-map.js" integrity="sha384-MOCXLAI5Kvp+9NrDyR+YWkolkd8QOnBELgqHCKGYvnZtPIiI/yaoT7qxKPackT07" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -130,7 +130,7 @@ header.top .sub { margin-top: 3px; font: 12px/1.4 var(--sans); color: var(--mut)
<script>window.FORGE = {"mode":"built","scope":"bundle","manifestUrl":"../manifest.json","bundle":"doxa-simple-map","hrefBase":"../"};
/* file:// contract: manifest inlined at build — no fetch needed to render. */
window.FORGE.manifest = {"schema":"doxa-maps-manifest@1","generatedFrom":"app-profiles/*/*.vue","embedBase":".","bundleCount":9,"profileCount":17,"bundles":[{"bundle":"doxa-simple-map","scriptUrl":"./doxa-simple-map/doxa-simple-map.js","output":"doxa-maps/doxa-simple-map/doxa-simple-map.js","integrity":"sha384-bhqFr7F7wpWDfWVigz0L7MH4tqQObm/W3xhcuzx82x9C64JFGpHDO8QgCRojX56a","elements":["doxa-map","doxa-simple-map"],"profiles":[{"profile":"doxa-simple-map","file":"doxa-simple-map.vue","description":"","element":"doxa-map","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\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript src=\"./doxa-simple-map/doxa-simple-map.js\" integrity=\"sha384-bhqFr7F7wpWDfWVigz0L7MH4tqQObm/W3xhcuzx82x9C64JFGpHDO8QgCRojX56a\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-map profile-config='{\"profile\":\"doxa-simple-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\"}'>\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\" 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\" 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\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]}]};</script>
window.FORGE.manifest = {"schema":"doxa-maps-manifest@1","generatedFrom":"app-profiles/*/*.vue","embedBase":".","bundleCount":9,"profileCount":17,"bundles":[{"bundle":"doxa-simple-map","scriptUrl":"./doxa-simple-map/doxa-simple-map.js","output":"doxa-maps/doxa-simple-map/doxa-simple-map.js","integrity":"sha384-MOCXLAI5Kvp+9NrDyR+YWkolkd8QOnBELgqHCKGYvnZtPIiI/yaoT7qxKPackT07","elements":["doxa-map","doxa-simple-map"],"profiles":[{"profile":"doxa-simple-map","file":"doxa-simple-map.vue","description":"","element":"doxa-map","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\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript src=\"./doxa-simple-map/doxa-simple-map.js\" integrity=\"sha384-MOCXLAI5Kvp+9NrDyR+YWkolkd8QOnBELgqHCKGYvnZtPIiI/yaoT7qxKPackT07\" crossorigin=\"anonymous\">\u003c/script>\n\u003cdoxa-map profile-config='{\"profile\":\"doxa-simple-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\"}'>\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\" 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\" 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\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>"}}]}]}]};</script>
<script>/**
* staging-forge.js — the ONE-PAGE semantic staging environment (root + bundle pages).
*

File diff suppressed because one or more lines are too long

View file

@ -56,7 +56,7 @@
"bundle": "country-posters",
"scriptUrl": "./country-posters/country-posters.js",
"output": "doxa-maps/country-posters/country-posters.js",
"integrity": "sha384-FBtv267lu0P9eg9CMAttrXz1NOkbktgrwvUDjBJvRIEkpqxHCy1UD7ceJeIfAvjX",
"integrity": "sha384-n56xDdBrLifTiXMlqyiUMXXqLPhsdUlMPp7fPiD+DboNhQOiyKgZemKONDO2HxhC",
"elements": [
"country-posters-map"
],
@ -70,7 +70,7 @@
"scriptUrl": "./country-posters/country-posters.js",
"embed": {
"iframe": "<iframe src=\"./country-posters/countries-map/index.html\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script src=\"./country-posters/country-posters.js\" integrity=\"sha384-FBtv267lu0P9eg9CMAttrXz1NOkbktgrwvUDjBJvRIEkpqxHCy1UD7ceJeIfAvjX\" crossorigin=\"anonymous\"></script>\n<country-posters-map profile-config='{\"profile\":\"countries-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\"}'></country-posters-map>"
"script": "<script src=\"./country-posters/country-posters.js\" integrity=\"sha384-n56xDdBrLifTiXMlqyiUMXXqLPhsdUlMPp7fPiD+DboNhQOiyKgZemKONDO2HxhC\" crossorigin=\"anonymous\"></script>\n<country-posters-map profile-config='{\"profile\":\"countries-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\"}'></country-posters-map>"
}
},
{
@ -82,7 +82,7 @@
"scriptUrl": "./country-posters/country-posters.js",
"embed": {
"iframe": "<iframe src=\"./country-posters/country-poster-wall/index.html\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script src=\"./country-posters/country-posters.js\" integrity=\"sha384-FBtv267lu0P9eg9CMAttrXz1NOkbktgrwvUDjBJvRIEkpqxHCy1UD7ceJeIfAvjX\" crossorigin=\"anonymous\"></script>\n<country-posters-map profile-config='{\"profile\":\"country-poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\"}'></country-posters-map>"
"script": "<script src=\"./country-posters/country-posters.js\" integrity=\"sha384-n56xDdBrLifTiXMlqyiUMXXqLPhsdUlMPp7fPiD+DboNhQOiyKgZemKONDO2HxhC\" crossorigin=\"anonymous\"></script>\n<country-posters-map profile-config='{\"profile\":\"country-poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\"}'></country-posters-map>"
}
}
]
@ -91,7 +91,7 @@
"bundle": "demo-map",
"scriptUrl": "./demo-map/demo-map.js",
"output": "doxa-maps/demo-map/demo-map.js",
"integrity": "sha384-B+SyViDxVGRi34FHMkYac/xvZ43ATdtjC581+MYPyim2Z8wk+6uAWj7DNt6GA+C2",
"integrity": "sha384-4+J4YYmXNDMdsv+sGd/8Q60hY2akzgpH968K1bHHClUxkXctNKRYlctvKlJbtK2b",
"elements": [
"demo-map"
],
@ -105,7 +105,7 @@
"scriptUrl": "./demo-map/demo-map.js",
"embed": {
"iframe": "<iframe src=\"./demo-map/demo-map/index.html\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script src=\"./demo-map/demo-map.js\" integrity=\"sha384-B+SyViDxVGRi34FHMkYac/xvZ43ATdtjC581+MYPyim2Z8wk+6uAWj7DNt6GA+C2\" crossorigin=\"anonymous\"></script>\n<demo-map profile-config='{\"profile\":\"demo-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\"}'></demo-map>"
"script": "<script src=\"./demo-map/demo-map.js\" integrity=\"sha384-4+J4YYmXNDMdsv+sGd/8Q60hY2akzgpH968K1bHHClUxkXctNKRYlctvKlJbtK2b\" crossorigin=\"anonymous\"></script>\n<demo-map profile-config='{\"profile\":\"demo-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\"}'></demo-map>"
},
"instances": [
{
@ -132,7 +132,7 @@
"bundle": "doxa-research-map",
"scriptUrl": "./doxa-research-map/doxa-research-map.js",
"output": "doxa-maps/doxa-research-map/doxa-research-map.js",
"integrity": "sha384-ucQyb81oBIScE6DAnHkfssGlIPACxSPP/BoC6mtdkuRn/XNSgyGDssUDTKtodUCL",
"integrity": "sha384-xUWb0a+reCVVmrFNLyDgblnoYvA/RCpEGD5kS5mjCm61bL0Zv463I89TMDuCBh2u",
"elements": [
"doxa-research-map"
],
@ -146,7 +146,7 @@
"scriptUrl": "./doxa-research-map/doxa-research-map.js",
"embed": {
"iframe": "<iframe src=\"./doxa-research-map/research-map/index.html\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script src=\"./doxa-research-map/doxa-research-map.js\" integrity=\"sha384-ucQyb81oBIScE6DAnHkfssGlIPACxSPP/BoC6mtdkuRn/XNSgyGDssUDTKtodUCL\" crossorigin=\"anonymous\"></script>\n<doxa-research-map profile-config='{\"profile\":\"research-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\"}'></doxa-research-map>"
"script": "<script src=\"./doxa-research-map/doxa-research-map.js\" integrity=\"sha384-xUWb0a+reCVVmrFNLyDgblnoYvA/RCpEGD5kS5mjCm61bL0Zv463I89TMDuCBh2u\" crossorigin=\"anonymous\"></script>\n<doxa-research-map profile-config='{\"profile\":\"research-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\"}'></doxa-research-map>"
}
}
]
@ -155,7 +155,7 @@
"bundle": "doxa-simple-map",
"scriptUrl": "./doxa-simple-map/doxa-simple-map.js",
"output": "doxa-maps/doxa-simple-map/doxa-simple-map.js",
"integrity": "sha384-bhqFr7F7wpWDfWVigz0L7MH4tqQObm/W3xhcuzx82x9C64JFGpHDO8QgCRojX56a",
"integrity": "sha384-MOCXLAI5Kvp+9NrDyR+YWkolkd8QOnBELgqHCKGYvnZtPIiI/yaoT7qxKPackT07",
"elements": [
"doxa-map",
"doxa-simple-map"
@ -170,7 +170,7 @@
"scriptUrl": "./doxa-simple-map/doxa-simple-map.js",
"embed": {
"iframe": "<iframe src=\"./doxa-simple-map/doxa-simple-map/index.html\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script src=\"./doxa-simple-map/doxa-simple-map.js\" integrity=\"sha384-bhqFr7F7wpWDfWVigz0L7MH4tqQObm/W3xhcuzx82x9C64JFGpHDO8QgCRojX56a\" crossorigin=\"anonymous\"></script>\n<doxa-map profile-config='{\"profile\":\"doxa-simple-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\"}'></doxa-map>"
"script": "<script src=\"./doxa-simple-map/doxa-simple-map.js\" integrity=\"sha384-MOCXLAI5Kvp+9NrDyR+YWkolkd8QOnBELgqHCKGYvnZtPIiI/yaoT7qxKPackT07\" crossorigin=\"anonymous\"></script>\n<doxa-map profile-config='{\"profile\":\"doxa-simple-map\",\"tk\":\"YOUR_MAPBOX_TOKEN\"}'></doxa-map>"
},
"instances": [
{
@ -309,7 +309,7 @@
"bundle": "my-upg-100-list",
"scriptUrl": "./my-upg-100-list/my-upg-100-list.js",
"output": "doxa-maps/my-upg-100-list/my-upg-100-list.js",
"integrity": "sha384-EmL+y2EzMjdr+l2gPQNQ0WVmiSatcqpr50yMftD6vTaYYnkHyZL90vN2OIb4XXfi",
"integrity": "sha384-RW4eL0ddwRv7cC3GbCaImAGGDlgmymYlPF6EPjmum6kp2aUST/12N0UaJQUXnu6G",
"elements": [
"my-upg-100-list-map"
],
@ -323,7 +323,7 @@
"scriptUrl": "./my-upg-100-list/my-upg-100-list.js",
"embed": {
"iframe": "<iframe src=\"./my-upg-100-list/poster-wall/index.html\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-EmL+y2EzMjdr+l2gPQNQ0WVmiSatcqpr50yMftD6vTaYYnkHyZL90vN2OIb4XXfi\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\"}'></my-upg-100-list-map>"
"script": "<script src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-RW4eL0ddwRv7cC3GbCaImAGGDlgmymYlPF6EPjmum6kp2aUST/12N0UaJQUXnu6G\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\"}'></my-upg-100-list-map>"
}
},
{
@ -335,7 +335,7 @@
"scriptUrl": "./my-upg-100-list/my-upg-100-list.js",
"embed": {
"iframe": "<iframe src=\"./my-upg-100-list/upg-100-list/index.html\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-EmL+y2EzMjdr+l2gPQNQ0WVmiSatcqpr50yMftD6vTaYYnkHyZL90vN2OIb4XXfi\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\"}'></my-upg-100-list-map>"
"script": "<script src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-RW4eL0ddwRv7cC3GbCaImAGGDlgmymYlPF6EPjmum6kp2aUST/12N0UaJQUXnu6G\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\"}'></my-upg-100-list-map>"
}
}
]
@ -344,7 +344,7 @@
"bundle": "research-dashboard",
"scriptUrl": "./research-dashboard/research-dashboard.js",
"output": "doxa-maps/research-dashboard/research-dashboard.js",
"integrity": "sha384-lZ7gBho2rDVPcokskvREISv+36u3aHZnZZ/cX9sy180aP+qyCxdgmnd8VacYOfqq",
"integrity": "sha384-81wtuh3Qw0Cck8jLbIjwmHxy2epkFqZuzYoD/kDbP8L4VlRYXvs87VOjTueFF8dn",
"elements": [
"research-dashboard-map"
],
@ -358,7 +358,7 @@
"scriptUrl": "./research-dashboard/research-dashboard.js",
"embed": {
"iframe": "<iframe src=\"./research-dashboard/research-dashboard/index.html\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
"script": "<script src=\"./research-dashboard/research-dashboard.js\" integrity=\"sha384-lZ7gBho2rDVPcokskvREISv+36u3aHZnZZ/cX9sy180aP+qyCxdgmnd8VacYOfqq\" crossorigin=\"anonymous\"></script>\n<research-dashboard-map profile-config='{\"profile\":\"research-dashboard\",\"tk\":\"YOUR_MAPBOX_TOKEN\"}'></research-dashboard-map>"
"script": "<script src=\"./research-dashboard/research-dashboard.js\" integrity=\"sha384-81wtuh3Qw0Cck8jLbIjwmHxy2epkFqZuzYoD/kDbP8L4VlRYXvs87VOjTueFF8dn\" crossorigin=\"anonymous\"></script>\n<research-dashboard-map profile-config='{\"profile\":\"research-dashboard\",\"tk\":\"YOUR_MAPBOX_TOKEN\"}'></research-dashboard-map>"
},
"bundle": "research-dashboard"
}

View file

@ -130,7 +130,7 @@ header.top .sub { margin-top: 3px; font: 12px/1.4 var(--sans); color: var(--mut)
<script>window.FORGE = {"mode":"built","scope":"bundle","manifestUrl":"../manifest.json","bundle":"my-upg-100-list","hrefBase":"../"};
/* file:// contract: manifest inlined at build — no fetch needed to render. */
window.FORGE.manifest = {"schema":"doxa-maps-manifest@1","generatedFrom":"app-profiles/*/*.vue","embedBase":".","bundleCount":9,"profileCount":17,"bundles":[{"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-EmL+y2EzMjdr+l2gPQNQ0WVmiSatcqpr50yMftD6vTaYYnkHyZL90vN2OIb4XXfi","elements":["my-upg-100-list-map"],"profiles":[{"profile":"poster-wall","file":"poster-wall.vue","description":"","element":"my-upg-100-list-map","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\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-EmL+y2EzMjdr+l2gPQNQ0WVmiSatcqpr50yMftD6vTaYYnkHyZL90vN2OIb4XXfi\" crossorigin=\"anonymous\">\u003c/script>\n\u003cmy-upg-100-list-map profile-config='{\"profile\":\"poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\"}'>\u003c/my-upg-100-list-map>"}},{"profile":"upg-100-list","file":"upg-100-list.vue","description":"","element":"my-upg-100-list-map","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\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-EmL+y2EzMjdr+l2gPQNQ0WVmiSatcqpr50yMftD6vTaYYnkHyZL90vN2OIb4XXfi\" crossorigin=\"anonymous\">\u003c/script>\n\u003cmy-upg-100-list-map profile-config='{\"profile\":\"upg-100-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\"}'>\u003c/my-upg-100-list-map>"}}]}]};</script>
window.FORGE.manifest = {"schema":"doxa-maps-manifest@1","generatedFrom":"app-profiles/*/*.vue","embedBase":".","bundleCount":9,"profileCount":17,"bundles":[{"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-RW4eL0ddwRv7cC3GbCaImAGGDlgmymYlPF6EPjmum6kp2aUST/12N0UaJQUXnu6G","elements":["my-upg-100-list-map"],"profiles":[{"profile":"poster-wall","file":"poster-wall.vue","description":"","element":"my-upg-100-list-map","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\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-RW4eL0ddwRv7cC3GbCaImAGGDlgmymYlPF6EPjmum6kp2aUST/12N0UaJQUXnu6G\" crossorigin=\"anonymous\">\u003c/script>\n\u003cmy-upg-100-list-map profile-config='{\"profile\":\"poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\"}'>\u003c/my-upg-100-list-map>"}},{"profile":"upg-100-list","file":"upg-100-list.vue","description":"","element":"my-upg-100-list-map","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\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-RW4eL0ddwRv7cC3GbCaImAGGDlgmymYlPF6EPjmum6kp2aUST/12N0UaJQUXnu6G\" crossorigin=\"anonymous\">\u003c/script>\n\u003cmy-upg-100-list-map profile-config='{\"profile\":\"upg-100-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\"}'>\u003c/my-upg-100-list-map>"}}]}]};</script>
<script>/**
* staging-forge.js — the ONE-PAGE semantic staging environment (root + bundle pages).
*

File diff suppressed because one or more lines are too long

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <my-upg-100-list-map> custom element. -->
<script src="../my-upg-100-list.js" integrity="sha384-EmL+y2EzMjdr+l2gPQNQ0WVmiSatcqpr50yMftD6vTaYYnkHyZL90vN2OIb4XXfi" crossorigin="anonymous"></script>
<script src="../my-upg-100-list.js" integrity="sha384-RW4eL0ddwRv7cC3GbCaImAGGDlgmymYlPF6EPjmum6kp2aUST/12N0UaJQUXnu6G" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <my-upg-100-list-map> custom element. -->
<script src="../my-upg-100-list.js" integrity="sha384-EmL+y2EzMjdr+l2gPQNQ0WVmiSatcqpr50yMftD6vTaYYnkHyZL90vN2OIb4XXfi" crossorigin="anonymous"></script>
<script src="../my-upg-100-list.js" integrity="sha384-RW4eL0ddwRv7cC3GbCaImAGGDlgmymYlPF6EPjmum6kp2aUST/12N0UaJQUXnu6G" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order:

View file

@ -130,7 +130,7 @@ header.top .sub { margin-top: 3px; font: 12px/1.4 var(--sans); color: var(--mut)
<script>window.FORGE = {"mode":"built","scope":"bundle","manifestUrl":"../manifest.json","bundle":"research-dashboard","hrefBase":"../"};
/* file:// contract: manifest inlined at build — no fetch needed to render. */
window.FORGE.manifest = {"schema":"doxa-maps-manifest@1","generatedFrom":"app-profiles/*/*.vue","embedBase":".","bundleCount":9,"profileCount":17,"bundles":[{"bundle":"research-dashboard","scriptUrl":"./research-dashboard/research-dashboard.js","output":"doxa-maps/research-dashboard/research-dashboard.js","integrity":"sha384-lZ7gBho2rDVPcokskvREISv+36u3aHZnZZ/cX9sy180aP+qyCxdgmnd8VacYOfqq","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","iframeUrl":"./research-dashboard/research-dashboard/index.html","scriptUrl":"./research-dashboard/research-dashboard.js","embed":{"iframe":"\u003ciframe src=\"./research-dashboard/research-dashboard/index.html\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript src=\"./research-dashboard/research-dashboard.js\" integrity=\"sha384-lZ7gBho2rDVPcokskvREISv+36u3aHZnZZ/cX9sy180aP+qyCxdgmnd8VacYOfqq\" crossorigin=\"anonymous\">\u003c/script>\n\u003cresearch-dashboard-map profile-config='{\"profile\":\"research-dashboard\",\"tk\":\"YOUR_MAPBOX_TOKEN\"}'>\u003c/research-dashboard-map>"},"bundle":"research-dashboard"}]}]};</script>
window.FORGE.manifest = {"schema":"doxa-maps-manifest@1","generatedFrom":"app-profiles/*/*.vue","embedBase":".","bundleCount":9,"profileCount":17,"bundles":[{"bundle":"research-dashboard","scriptUrl":"./research-dashboard/research-dashboard.js","output":"doxa-maps/research-dashboard/research-dashboard.js","integrity":"sha384-81wtuh3Qw0Cck8jLbIjwmHxy2epkFqZuzYoD/kDbP8L4VlRYXvs87VOjTueFF8dn","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","iframeUrl":"./research-dashboard/research-dashboard/index.html","scriptUrl":"./research-dashboard/research-dashboard.js","embed":{"iframe":"\u003ciframe src=\"./research-dashboard/research-dashboard/index.html\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen>\u003c/iframe>","script":"\u003cscript src=\"./research-dashboard/research-dashboard.js\" integrity=\"sha384-81wtuh3Qw0Cck8jLbIjwmHxy2epkFqZuzYoD/kDbP8L4VlRYXvs87VOjTueFF8dn\" crossorigin=\"anonymous\">\u003c/script>\n\u003cresearch-dashboard-map profile-config='{\"profile\":\"research-dashboard\",\"tk\":\"YOUR_MAPBOX_TOKEN\"}'>\u003c/research-dashboard-map>"},"bundle":"research-dashboard"}]}]};</script>
<script>/**
* staging-forge.js — the ONE-PAGE semantic staging environment (root + bundle pages).
*

File diff suppressed because one or more lines are too long

View file

@ -29,7 +29,7 @@
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
<!-- Bundle IIFE — registers the <research-dashboard-map> custom element. -->
<script src="../research-dashboard.js" integrity="sha384-lZ7gBho2rDVPcokskvREISv+36u3aHZnZZ/cX9sy180aP+qyCxdgmnd8VacYOfqq" crossorigin="anonymous"></script>
<script src="../research-dashboard.js" integrity="sha384-81wtuh3Qw0Cck8jLbIjwmHxy2epkFqZuzYoD/kDbP8L4VlRYXvs87VOjTueFF8dn" crossorigin="anonymous"></script>
<script>
// Mapbox token resolution — the A3 ladder, in precedence order: