dx-life measured with a real finger: on the Regions map the header stayed. Regions scrolls
in its own containers (.rd-scroll, .rl-scroll) inside its own shadow root, and scroll events
never cross a shadow root, so the gallery-level listener never saw them. Touch and wheel
events do cross: on the first one over such a scroller, the page finds it in the event's
composed path and listens to its scrolls directly (once each), which also covers momentum.
The same half-the-gallery size rule keeps small lists, such as a legend sheet's, out.
The cloud dev server sets it so the devtools overlay does not sit on a phone during testing.
Unset, devtools stays on as before; devtools never ships in a production build.
The Driver, reviewing on a phone: on /deep-research the site header stayed while every other
page lets it scroll away, and the "Want Deeper Research?" line under the research map was far
too big.
/deep-research keeps the verified layout at rest: the page does not scroll, the header shows,
and the gallery fills the rest of the screen, its bottom menu button included. The gallery
scrolls inside its own main pane, so a finger or a wheel over it never moves the page. Once
that pane is scrolled down a little, <html> gets rg-header-hidden: the header hides and the
gallery takes the whole screen (100svh). Back at the pane's top, the header returns. One
scroller, so nothing fights its momentum. A capture-phase scroll listener on the gallery's
shadow root sees the pane; only a scroller at least half the gallery's height counts. Measured
with a real finger at 390: the map (703 px) and the open sheet (211 px) never resize, and the
header hides once and returns once.
/research: the line is 1.2rem, the size of the homepage's "Explore our research maps" link.
The whole dx-maps output folder, replaced with the tree committed on DX Maps development at
948012a00, which contains FINAL 29634ed07 (this branch's previous tree) and the first landings of
the Driver's mobile pass: the UPG-100 status badge stays off the map credits; in Arabic, Gospel
Resources opens the people-group card opposite the legend; no "campaign" in the DX Maps UI (the
near-neighbor planner speaks of movements); and the Regions map shows two country posters per
row on a phone.
Measured: 27 tree files, all modified, none added or removed; 0 assets. Rebuilt bundle folders
(6): country-posters, doxa-maps-spa, gospel-resources, my-upg-100-list, regions-dashboard, upg-neighbor; plus manifest.json. manifest.json does not record the DX Maps commit, so it is
recorded here. The live demo stays on the verified 3386489 until FINAL-2 is green.
The whole dx-maps output folder, replaced with the tree committed on DX Maps development at
29634ed07, which the fleet coordinator named FINAL. It contains 5484b844c, the previous refresh,
and studio's PINFLOOR (08e7e3c68). New in it: the map's licence credit is a floor for the
first-visit pin hint wherever the credit has moved; the (i) popup's backdrop sits above every
map's own top layer, so no pin hint floats over the dialog; and the Regions tab's print passes the
same series as the Country Posters wall.
Measured: 64 tree files, all modified, none added or removed; 0 assets. Rebuilt bundle folders
(17): all-people-groups, cities-internet, country-map, country-posters, demo-map, doxa-maps-spa, doxa-research-map, doxa-simple-map, gospel-internet, gospel-resources, my-upg-100-list, pplr-data-maps, regions-dashboard, research-dashboard, template-bundle, upg-neighbor, wall-of-people-groups; plus manifest.json. This site's own maps are among them: doxa-simple-map (/, /pray,
/adopt), doxa-research-map (/research) and doxa-maps-spa (/deep-research). manifest.json does not
record the DX Maps commit, so it is recorded here.
The whole dx-maps output folder, replaced with the tree committed on DX Maps development at
5484b844c, which the fleet coordinator named FINAL for the demo (it contains 99783ff0f, the
previous refresh). New in it: the Regions tab's country poster now comes from the one
country-sheet definition (it was still teal), and the 174 country previews were reshot with the
region hue and ink badges. Measured: 354 tree files, all modified, none added or removed; 348
of them are assets (174 posters, 174 previews); rebuilt: regions-dashboard (4 files) and
doxa-maps-spa (1), plus manifest.json. manifest.json does not record the DX Maps commit, so it
is recorded here.
The whole dx-maps output folder, replaced with the tree committed on DX Maps development at
99783ff0f (it contains 67fed8b79, the previous refresh). New in it: a research map, or Prayer Progress,
released while it is still starting no longer reports a failed map. Measured: 10 tree files, 0
asset files; rebuilt: doxa-research-map (this site's /research), doxa-simple-map (/, /pray, /adopt) and
doxa-maps-spa. manifest.json does not record the DX Maps commit, so it is recorded here.
The whole dx-maps output folder, replaced with the tree committed on DX Maps development at
67fed8b79 (it contains a6372eea8, the previous refresh). New in it: Big Picture's grid takes its
language from Big Picture, not from the page URL. Measured: 5 tree files, 0 asset files; rebuilt:
dashboard-plus-grid and doxa-maps-spa. manifest.json does not record the DX Maps commit, so it is
recorded here.
The whole dx-maps output folder, replaced with the tree committed on DX Maps development at
a6372eea8 (it contains f3b1566c7, the previous refresh). New in it: the "Tap a coloured dot" pill
(PinHint) clears MapLibre's credit on phones; the UPG-100 and Simple Research popups show the packet
and the card deck (the example images are now linked); on a phone Cities' info button takes the corner
above its zoom column; Big Picture's info button sits above its filter bar. Measured: 64 tree files,
0 asset files; 17 bundles rebuilt, among them doxa-simple-map, doxa-research-map and country-map,
which this site's own home, pray, adopt, research and country pages mount. manifest.json does not record
the DX Maps commit, so it is recorded here.
The whole dx-maps output folder, replaced with the tree committed on DX Maps development at
f3b1566c7 (it contains 838f6c14b, the previous refresh). New in it: the info button's one-time
"look at me" pointer shows on desktop only, at a measured width threshold. Measured: 5 tree files,
0 asset files; only the gallery bundle doxa-maps-spa and manifest.json changed. manifest.json does
not record the DX Maps commit, so it is recorded here.
The whole dx-maps output folder, replaced with the tree committed on DX Maps development at
838f6c14b (it contains c8fde7852, the previous refresh). New in it: 82 example images for the UPG-100
info popup (Middle East Core's packet pages and card deck) under assets/previews/examples, about 2.7
MB. Measured: 82 asset files added and 0 other files changed, so no bundle changed; nothing links
the images until the gallery's next build does. manifest.json does not record the DX Maps commit, so
it is recorded here.
The whole dx-maps output folder, replaced with the tree committed on DX Maps development at
c8fde7852 (it contains 99c22caf7, the previous refresh). New in it: switching from Arabic to another
language no longer leaves the page right-to-left; the maps read the page's own direction at mount and
push the locale under both keys. Measured: 16 tree files, 0 asset files; rebuilt: big-picture,
dashboard-plus-grid, doxa-maps-spa, people-groups-grid, research-map-plus-grid. manifest.json does not
record the DX Maps commit, so it is recorded here.
The whole dx-maps output folder, replaced with the tree committed on DX Maps development at
99c22caf7 (it contains a40f5ac68, the previous refresh). New in it: the gallery's info button sits
clear of each map's own controls on every tab (on a phone it takes each tab's free corner; on Regions
and UPG-100 it also clears the Share button), and Big Picture's and Simple Research's popup text
reads as one sentence after its label. Measured: 5 tree files, 0 asset files; only the gallery
bundle doxa-maps-spa and manifest.json changed. manifest.json does not record the DX Maps commit, so
it is recorded here.
The whole dx-maps output folder, replaced with the tree committed on DX Maps development at
a40f5ac68 (it contains 933687b14, the previous refresh). New in it: the prayer packet's low pages fill
the sheet (the knows-Christ grid 65 x 80, larger sets charts), and Middle East Core's stored poster
and preview are regenerated with tonight's renderer (ink pin badges), which the UPG-100 info popup
shows. Measured: 26 tree files, including 2 asset files (assets/posters/middle-east-core.html assets/previews/middle-east-core.webp); rebuilt: country-posters,
doxa-maps-spa, doxa-research-map, my-upg-100-list, regions-dashboard, upg-neighbor. manifest.json does
not record the DX Maps commit, so it is recorded here.
exp measured it on the shared browser at 390 x 844 on / and /adopt, in en and ar: a hit test at the
centre of the map's "+" landed on .doxa-map-scroll-pad--top (48 px, z-index 1500, full width below
769 px), so a tap there scrolled the page instead of zooming. The pad now stops 56 px short of the
end side, where the map's control column sits (right in LTR, left in RTL; a logical inset covers
both); the rest of the strip still scrolls the page. The pad is DX Life's own (f505248, the same on
production); it shows only with the simple map (home, pray, adopt), and only on phones.
The whole dx-maps output folder, replaced with the tree committed on DX Maps development at
933687b14 (it contains be3184207, the previous refresh, and 4bcce8ff8, which changed no tree file).
New in it: a card name hyphenates only where a word cannot fit (the earlier every-name rule is
reverted); the info popup's stacked-pages hint is visible; and the info button sits at the end of
the line, so in Arabic it mirrors and no longer covers the first tab. Measured: 27 tree files, 0
asset files; rebuilt: country-posters, doxa-maps-spa, doxa-research-map, my-upg-100-list,
regions-dashboard, upg-neighbor. manifest.json does not record the DX Maps commit, so it is recorded
here.
The whole dx-maps output folder, replaced with the tree committed on DX Maps development at
be3184207 (it contains c934f8020, the previous refresh). New in it: the prayer packet's
knows-Christ grid fills the page (the same 5,200 boxes, 80 x 65); a card name that must break
mid-word gets a hyphen; and each country poster is coloured by its region instead of one teal for
all 173 (regions' 1ab8524cf). Measured: 28 tree files, including 2 asset files
(assets/lib/poster-render.global.js assets/lib/poster-render.js); the bundles country-map, country-posters, doxa-maps-spa, doxa-research-map,
my-upg-100-list, regions-dashboard and upg-neighbor were rebuilt. manifest.json does not record the
DX Maps commit, so it is recorded here.
The whole dx-maps output folder, replaced with the tree committed on DX Maps development at
c934f8020 (it contains f46134771, the previous refresh; measured: 0 asset files changed, and the
gallery bundle doxa-maps-spa plus manifest.json changed). New in it: the caption for Simple
Research's example packet in the info popup, in all eleven locales. manifest.json does not record the
DX Maps commit, so it is recorded here.
The whole dx-maps output folder, replaced with the tree committed on DX Maps development at
f46134771 (it contains b8c7e9a39, the previous refresh; measured: 0 asset files changed, and the
gallery bundle doxa-maps-spa plus manifest.json changed). New in it: Big Picture's info popup shows
real output, an excerpt of its spreadsheet. manifest.json does not record the DX Maps commit, so it
is recorded here.
The whole dx-maps output folder, replaced with the tree committed on DX Maps development at
b8c7e9a39 (it contains bb1241d1e, the previous refresh). New in it: the prayer packet's "Who among
them knows Christ" page counts people, not weeks, and its totals come from the unrounded share; the
five packet consumers are rebuilt for both. No asset file changed. manifest.json does not record the
DX Maps commit, so it is recorded here.
rega's phone check (390 px) found the gallery's "What can this map do for you?" dialog with its title
and close button hidden under DX Life's header. The header is z-index 1500 (blocks/_header.scss) and
the dialog is a full-viewport layer at z-index 1000, full-screen below 600 px, so its top sat under
the header. On desktop a tall dialog (up to 88vh, centred) can reach under it too.
While the gallery is shown, <html> carries rg-gallery-mounted and .header drops to z-index 999, just
under the dialog. Nothing else changes: the header's nav has no dropdowns, and the mobile menu sits
outside .header at its own level. Only the Deep Research page sets the class, and it removes it on
leave.
The whole dx-maps output folder, replaced with the tree committed on DX Maps development at
bb1241d1e (1209 files; it contains cff06fb8e, the previous refresh). The Deep Research gallery now
shows the Driver's sections in his order: Dashboards (Big Picture, desktop only; Simple Research;
Regions), Prayer Mobilization (Prayer Progress, UPG-100 List), Gospel Research (Cities with
Internet, Gospel Resources), and Experimental, shown by default. It also carries two prayer-card
print fixes: a long people-group name is never cut off, and card photos print sharp. No asset file
changed. manifest.json does not record the DX Maps commit, so it is recorded here.
- /research: DX Life production's page, with the research map on its own and, under it, "Want
Deeper Research? See our Deep-Research Maps ->", linking to /deep-research (the locale prefix
kept by localePath, e.g. /ar/deep-research).
- i18n: "Want Deeper Research?", "See our Deep-Research Maps" and the page name "Deep Research" in
all 11 locales (en es fr pt de it zh ar ru hi ro), each in that file's own register. "Deep
Research" stays a name in every language, as the gallery's heading does.
- /deep-research: no longer passes {"experimental": false}; every section shows, Experimental
included, as the Driver lists it.
- / and /pray are unchanged: the engagement map and the prayer map (doxa-simple-map with those
presets).
- Docs: the branch is deep-research (clone line updated); DX-MAPS-GALLERY.md's research-page row
was still describing an earlier three-tab simple map and now describes the page as it is.
- MOBILIZATION-MAPS-LAPTOP.md: every map on the site, DX Life's own home, pray, adopt and country maps
included, uses MapLibre by default (the Driver's rule); NUXT_PUBLIC_MAP_PROVIDER=mapbox with
NUXT_PUBLIC_MAPBOX_TOKEN switches back to Mapbox as doxa.life uses it today. The dropped-in tree is
DX Maps development cff06fb8e.
- DX-MAPS-GALLERY.md: the Map engine paragraph said a token alone selects Mapbox, which stopped being
true when the provider setting came in; now it gives the real switch. It names what comes from
other hosts (the engine from jsDelivr, base-map tiles from OpenFreeMap and VersaTiles, one
dashboard's figures from the World Bank API, the prayer API). The tree sha is cff06fb8e.
- deep-research/index.vue: its comment no longer says "no third-party host" without qualification.
The whole dx-maps output folder, replaced with the tree committed on DX Maps development at
cff06fb8e (1209 files; it contains f0eb33951, the previous refresh). The gallery is now titled Deep
Research, honours the {"experimental": false} this site's /deep-research page passes (the Experimental
folder is hidden), remounts a tab on a live language switch, and every one of its seven tabs has the
"what can this map do for you?" info button. manifest.json does not record the DX Maps commit, so it
is recorded here.
The whole dx-maps output folder, replaced (not merged) with the tree committed on DX Maps
development at f0eb33951 (1209 files), which the DX Maps landing gates keep equal to a fresh build.
It carries the packet export fix (a2809b31f) and 32cf3f235. manifest.json does not record the DX Maps
commit it came from, so it is recorded here.
The embed snippets in this tree are relative to the tree root, so the folder works wherever it is
dropped; the gallery builds its embed URLs at runtime from the page's own origin. Every bundle this
site loads by name is in the tree: doxa-maps-spa, doxa-simple-map, doxa-research-map, country-map, and
the assets the static pages under public/embed and public/research use.
1. The page no longer loads Mapbox GL and the geocoder before the map bundle. They came from
api.mapbox.com, in one try with the bundle, so a slow or blocked Mapbox CDN meant NO map at all,
even with MapLibre, which needs nothing from Mapbox. Each dx-maps map loads its own engine, its CSS
and its geocoder, once, when it is built (ensureEngineScript in dx-maps' useMapInstance.js, which
reuses a loaded engine and never loads it twice). So the page now loads only the map bundle, in its
own try; Mapbox is fetched only when Mapbox is the provider, by the map, after the bundle.
2. The provider is always passed explicitly: 'mapbox' when the site chose it
(NUXT_PUBLIC_MAP_PROVIDER=mapbox with NUXT_PUBLIC_MAPBOX_TOKEN), otherwise 'maplibre'. A token
alone never selects Mapbox in dx-maps, so before this, choosing Mapbox had no effect: the maps ran
MapLibre carrying a token. Fixed in DoxaMapSlot (home, pray, adopt, research, country) and on
/deep-research.
Lineage: the provider handling (app/utils/mapProvider.ts and DoxaMapSlot's use of it) is NOT
production's code; it came with the drop-in lineage (b045200, an ancestor of 9860e78). DX Life
production (github master fc4d622) has no provider setting. The script chain in useDoxaMap is
production's pattern, which production needs for its own /js bundles; this branch loads dx-maps
bundles, which carry their own engine loader. With the default settings (MapLibre), home, pray and
adopt render the same map as before; they only stop downloading the unused Mapbox scripts and CSS.
The token handling matches production: the public token, passed only in Mapbox mode.
The Driver's rule for the Research page: as it is on the production site today, with the gallery off
it. The page file is now byte-identical to production's: the heading, the By Region link, the
research map (bundle research-map) and the UUPG list. The only change a visitor gets is where the map
comes from: DoxaMapSlot loads it from this site's /dx-maps/ tree, and MapLibre is the default engine.
Also corrects two statements that were already stale on the drop-in branch: the page has one
scrollbar and no footer (not a footer below the gallery), and the dropped-in tree is dx-maps
development 1bbc5ff87 (not main 11129455e).
- /deep-research gives the gallery profile-config {"experimental": false}: the curated sections
only, no Experimental folder. Galleries built before the flag ignore it.
- Both pages are now clean under the repo's ESLint config (layout only).
DX Life asked for the gallery under the name Deep Research, on a page of the site rather than a
subdomain, and not on the Research page.
- /deep-research: the gallery, exactly as it ran on the Research page (one scrollbar, no footer,
runtime tree base, MapLibre by default). It is in no menu and tells robots not to index it.
- /research: DX Life's own UUPG page again (the heading, the By Region link and the UUPG list),
with the production simple map (doxa-simple-map) carrying the Engagement, Prayer and Adoption
tabs that the home, pray and adopt pages each show one of.
- /regions: DX Life's own regions index and its menu item are back (LEGACY_REGIONS_PAGE and
USE_LEGACY_REGIONS_PAGE on); /countries goes to it.
- DoxaMapSlot: the map fills its box, not the viewport (--profile-min-h: 0), so the slot no longer
cuts off the map's attribution and bottom controls.
popupHtml() escaped the name, the subtitle, the stats, the description, the photo address and the two
button labels, but put prayUrl and profileUrl into href raw. Both end in the people group's slug,
which comes from the API, so a slug with a double quote would close the attribute. Both now go
through the escapeHtml the popup already uses. Found by the regions plugin, which fixed the same
inherited code in its dx-maps port.