Commit graph

915 commits

Author SHA1 Message Date
Doxa Maps
6ff12ac0ae Regions maps on phones: the credit folds to its (i) after 3 s, mirrors in RTL, and MapLibre's logo goes
The attribution rule for a map without a footer sheet: the credit keeps the bottom corner (bottom-left in
right-to-left, where the round button sits bottom-right), above the scroll-edge strips; on a phone it folds
to its (i) three seconds after it first shows, and a tap expands it again; MapLibre's optional logo is
hidden, as its licence allows. Desktop is unchanged.
2026-09-30 09:48:02 +00:00
Doxa Maps
a7351ffb80 Merge upg100's packet-strings re-pin into train #3 2026-09-30 09:23:09 +00:00
Doxa Maps
b6af523fbe Merge origin/development into studio/a-bottom 2026-09-30 09:23:08 +00:00
Doxa Maps
0daf6db225 Re-pin packet-strings.json: non-English packet prints load their language again
The pair (a80f4fd6e) changed library/scripts/posters/packet-strings.json
(point 4's reading list) without re-running the pin script, so the served
copy (assets/lib/packet-strings.json) no longer matched
PACKET_STRINGS_SHA384. The print then refused it and fell back to the
bundled English block: every non-English packet printed in English.
check:poster-render-pinned has failed on development since.

Re-pinned (library/packet/poster-render.integrity.js, packet-strings only;
the generator and places pins are unchanged), and rebuilt the five bundles
that compile the pin in: country-posters, doxa-research-map,
my-upg-100-list, regions-dashboard, upg-neighbor. The tree and SRI
regenerated. check:poster-render-pinned: FAIL (2) on 7744a8418, PASS here.
2026-09-30 09:20:22 +00:00
Doxa Maps
f065ee504e Merge origin/development into gospel/legend-expand
# Conflicts:
#	public/dx-maps/cities-internet/cities-internet.js
#	public/dx-maps/cities-internet/connectivity-list/index.html
#	public/dx-maps/cities-internet/connectivity-map/index.html
#	public/dx-maps/cities-internet/data-tables/index.html
#	public/dx-maps/doxa-maps-spa/manifest.json
#	public/dx-maps/gospel-resources/charts/index.html
#	public/dx-maps/gospel-resources/data-tables/index.html
#	public/dx-maps/gospel-resources/gospel-dashboard/index.html
#	public/dx-maps/gospel-resources/gospel-resources.js
#	public/dx-maps/gospel-resources/resources-list/index.html
#	public/dx-maps/gospel-resources/resources-map/index.html
#	public/dx-maps/manifest.json
2026-09-30 09:15:03 +00:00
Doxa Maps
e61bebe75d Merge remote-tracking branch 'origin/development' into regions/pins-phone-poster 2026-09-30 09:08:02 +00:00
Doxa Maps
1cf5276724 Merge remote-tracking branch 'origin/upg100/perrow-deselect' into regions/pins-phone-poster
# Conflicts:
#	public/dx-maps/country-posters/countries-map/index.html
#	public/dx-maps/country-posters/country-poster-wall/index.html
#	public/dx-maps/country-posters/country-posters-mfe/index.html
#	public/dx-maps/country-posters/country-posters.js
#	public/dx-maps/doxa-maps-spa/manifest.json
#	public/dx-maps/manifest.json
#	public/dx-maps/my-upg-100-list/my-upg-100-list.js
#	public/dx-maps/my-upg-100-list/poster-wall/index.html
#	public/dx-maps/my-upg-100-list/upg-100-list/index.html
#	public/dx-maps/my-upg-100-list/upg-100-mfe/index.html
#	public/dx-maps/regions-dashboard/region-dashboards/index.html
#	public/dx-maps/regions-dashboard/regions-dashboard.js
#	public/dx-maps/regions-dashboard/regions-list/index.html
#	public/dx-maps/regions-dashboard/regions-mfe/index.html
2026-09-30 09:08:01 +00:00
Doxa Maps
49726ca785 Merge origin/development (a80f4fd6e, the pair) into upg100/perrow-deselect, and rebuild country-posters, my-upg-100-list and regions-dashboard from the merged source 2026-09-30 09:06:49 +00:00
Doxa Maps
0dd18029e2 Merge origin/development into studio/a-bottom 2026-09-30 09:06:35 +00:00
Doxa Maps
9129e6d95a Merge remote-tracking branch 'origin/development' into HEAD
# Conflicts:
#	public/dx-maps/doxa-maps-spa/manifest.json
#	public/dx-maps/doxa-research-map/doxa-research-map.js
#	public/dx-maps/doxa-research-map/research-map/index.html
#	public/dx-maps/doxa-research-map/research-map/maplibre/index.html
#	public/dx-maps/manifest.json
2026-09-30 09:01:13 +00:00
Doxa Maps
8aa2a3cd38 Merge the tab layout's ☰ lift and drawer order into the train (deep-research-plugin/fablift) 2026-09-30 08:58:07 +00:00
Doxa Maps
0562a187dd Regions pins: the highlighted-region radius puts the zoom interpolate at the top, the only form MapLibre parses 2026-09-30 08:55:59 +00:00
Doxa Maps
a80f4fd6e6 Merge origin/development (31e52876d) into upg100/land-pair, and rebuild the five reached bundles from the merged source 2026-09-30 08:55:16 +00:00
Doxa Maps
5b90a07fbc Gospel Resources and Cities with Internet: Expand legend / Collapse legend in each map's own keys, in all 11 locales 2026-09-30 08:50:31 +00:00
Doxa Maps
7be4825cc5 Tab layout: the open drawer sits above every plugin layer on phones
The open phone drawer was z-index 1000, the same as the phone legend
sheet (LegendMobile), so where the two share a stacking context DOM
order decided which one is drawn on top. It is now 100000: above every
plugin layer, still below a modal's scrim (MapInfo, 2147483000), which
must cover the drawer. Both CSS copies change identically.
2026-09-30 08:48:42 +00:00
Doxa Maps
042ff1aaa9 Poster walls offer only the per-row counts that fit; UPG-100's shown zone gets a clear chip
"Posters per row" offered 2-5 at every width, and the grid clamps a count
to what the viewport holds, so on a phone "3" and "4" still showed two.
The choices are now Auto plus every count up to what fits, capped at 5:
Auto / 1 / 2 on a 390px phone, up to 5 on a desktop. A stored preference
above the fit is shown as what is rendered and stays stored, so the
desktop keeps its choice. 1 joins the counts for the phone.

After "Show on map" isolated a zone, the only way back was re-tapping the
same legend row, inside a collapsed sheet on a phone. While a zone is
isolated (batch mode off), a chip above the map's floor names it with an
x that shows every zone again, through the wall's own deselect path
(applySelectZone(null)). Its label is the existing buttons.clearSelection.

Rebuilt: my-upg-100-list, country-posters, regions-dashboard; the tree and
SRI regenerated.
2026-09-30 08:48:24 +00:00
Doxa Maps
46d5d74ec4 Regions maps on phones: a pin tap opens its popup, a country tap opens its dashboard, and the maps are taller
On the all-regions map a pin tap jumped to the country's dashboard; a pin tap now opens the people
group's popup everywhere, and a tap on a country with no pin under it picks that country. The
invisible tap target is at least 7 px at every zoom, so pins answer a finger. On phones the maps are
half again as tall as they are wide (the square was too small for a popup), the left scroll-past
strip is off, and the popup is compact and lets a pinch through to the map. Desktop is unchanged.
2026-09-30 08:46:42 +00:00
Doxa Maps
659bdc372e Phones: the credit stays in the top corner on a map with the footer sheet, and folds after 3 s
On a map with the legend sheet the engine's credit keeps its top-start
corner, now above the scroll-edge strips, and folds to its (i) 3 s after it
first shows expanded. The full-width sheet, the 'dxmaps:legend-sheet' event
and the hidden MapLibre logo control stay.
2026-09-30 08:46:01 +00:00
Doxa Maps
33f03cc6ae Merge remote-tracking branch 'origin/development' into HEAD
# Conflicts:
#	public/dx-maps/cities-internet/cities-internet.js
#	public/dx-maps/cities-internet/connectivity-list/index.html
#	public/dx-maps/cities-internet/connectivity-map/index.html
#	public/dx-maps/cities-internet/data-tables/index.html
#	public/dx-maps/doxa-maps-spa/manifest.json
#	public/dx-maps/doxa-research-map/doxa-research-map.js
#	public/dx-maps/doxa-research-map/research-map/index.html
#	public/dx-maps/doxa-research-map/research-map/maplibre/index.html
#	public/dx-maps/doxa-simple-map/doxa-simple-map.js
#	public/dx-maps/doxa-simple-map/doxa-simple-map/adoption/index.html
#	public/dx-maps/doxa-simple-map/doxa-simple-map/engagement/index.html
#	public/dx-maps/doxa-simple-map/doxa-simple-map/index.html
#	public/dx-maps/doxa-simple-map/doxa-simple-map/prayer/index.html
#	public/dx-maps/manifest.json
2026-09-30 08:42:19 +00:00
Doxa Maps
10601f4b00 Phones: the all-regions pins shrink only below zoom 1, so the desktop chooser keeps its dots; rebuild my-upg-100-list for the poster dialog 2026-09-30 08:40:13 +00:00
Doxa Maps
6db929fe42 Tab layout: on phones the round ☰ rides above a map's legend sheet
A map's phone legend (LegendMobile) announces its sheet with the composed
'dxmaps:legend-sheet' event, dispatched from the sheet element. The layout
measures that element itself and lifts the circle to 8px above the sheet's
top edge: collapsed or open, wherever the map ends (Simple Research's map
stops 102px above the viewport, with its grid below), so the two never
overlap. It re-measures on each event, on the sheet's own resize (a
ResizeObserver, so the box is read after layout), on the pane's scroll
and on window resize, coalesced to a frame with a 100ms backup for a page
that gets no frames. Only a sheet on screen counts: another tab's pane
(hidden or inert), a scrolled-away map, or state 'gone' leave the circle
where it is today. With no event at all the placement is unchanged.

--map-fab-clearance rises with the circle, and --map-fab-sheet-inset:0
is published only while a sheet lifts it, so that sheet can take the
full width. The circle moves by transform (no layout property). Both CSS
copies change identically.

Measured with a stand-in sheet planted in a plugin's shadow root (it
announces after its box is laid out, as the real sheet does), at 390 in
en and ar, twice each: collapsed, open, after a scroll, another tab's
sheet ignored, gone back to today. All pass.
2026-09-30 08:37:50 +00:00
Doxa Maps
7f9f155d24 Phones: the bottom-of-map standard in the legend sheet
The engine's credit moves from the top corner to the end side just above the
sheet, and folds to its (i) four seconds after it first shows expanded. The
logo corner sits beside the menu button, and MapLibre's optional logo control
is hidden. The sheet announces itself with a 'dxmaps:legend-sheet' event
(bubbling, composed), so the layout can lift its round menu button above it.
The sheet takes the full width while the layout says it lifts the button
(--map-fab-sheet-inset); otherwise it stays beside the button. The older
corner rules are scoped to .lm-on, so they end with the last sheet.
2026-09-30 08:36:48 +00:00
Doxa Maps
538f505996 Merge remote-tracking branch 'origin/development' into HEAD
# Conflicts:
#	public/dx-maps/doxa-maps-spa/manifest.json
#	public/dx-maps/doxa-research-map/doxa-research-map.js
#	public/dx-maps/doxa-research-map/research-map/index.html
#	public/dx-maps/doxa-research-map/research-map/maplibre/index.html
#	public/dx-maps/manifest.json
2026-09-30 08:33:36 +00:00
Doxa Maps
fa2a7fc0e7 Merge branch 'upg100/p6-card-row-dev' into upg100/land-pair
# Conflicts:
#	public/dx-maps/country-posters/countries-map/index.html
#	public/dx-maps/country-posters/country-poster-wall/index.html
#	public/dx-maps/country-posters/country-posters-mfe/index.html
#	public/dx-maps/country-posters/country-posters.js
#	public/dx-maps/doxa-maps-spa/manifest.json
#	public/dx-maps/manifest.json
#	public/dx-maps/my-upg-100-list/my-upg-100-list.js
#	public/dx-maps/my-upg-100-list/poster-wall/index.html
#	public/dx-maps/my-upg-100-list/upg-100-list/index.html
#	public/dx-maps/my-upg-100-list/upg-100-mfe/index.html
#	public/dx-maps/regions-dashboard/region-dashboards/index.html
#	public/dx-maps/regions-dashboard/regions-dashboard.js
#	public/dx-maps/regions-dashboard/regions-list/index.html
#	public/dx-maps/regions-dashboard/regions-mfe/index.html
2026-09-30 08:33:01 +00:00
Doxa Maps
411fa9d9ac Merge branch 'upg100/packet-heart' into upg100/land-pair
# Conflicts:
#	public/dx-maps/country-posters/countries-map/index.html
#	public/dx-maps/country-posters/country-poster-wall/index.html
#	public/dx-maps/country-posters/country-posters-mfe/index.html
#	public/dx-maps/country-posters/country-posters.js
#	public/dx-maps/doxa-maps-spa/manifest.json
#	public/dx-maps/doxa-research-map/doxa-research-map.js
#	public/dx-maps/doxa-research-map/research-map/index.html
#	public/dx-maps/doxa-research-map/research-map/maplibre/index.html
#	public/dx-maps/manifest.json
#	public/dx-maps/my-upg-100-list/my-upg-100-list.js
#	public/dx-maps/my-upg-100-list/poster-wall/index.html
#	public/dx-maps/my-upg-100-list/upg-100-list/index.html
#	public/dx-maps/my-upg-100-list/upg-100-mfe/index.html
#	public/dx-maps/regions-dashboard/region-dashboards/index.html
#	public/dx-maps/regions-dashboard/regions-dashboard.js
#	public/dx-maps/regions-dashboard/regions-list/index.html
#	public/dx-maps/regions-dashboard/regions-mfe/index.html
#	public/dx-maps/upg-neighbor/upg-neighbor.js
#	public/dx-maps/upg-neighbor/upg-neighbor/bloom-cockpit/index.html
#	public/dx-maps/upg-neighbor/upg-neighbor/flower-mesh/index.html
#	public/dx-maps/upg-neighbor/upg-neighbor/index.html
#	public/dx-maps/upg-neighbor/upg-neighbor/lang-cluster/index.html
#	public/dx-maps/upg-neighbor/upg-neighbor/send-map/index.html
#	public/dx-maps/upg-neighbor/upg-neighbor/upg-neighbors/index.html
2026-09-30 08:32:56 +00:00
Doxa Maps
6b3aae2c99 Phones: smaller all-regions pins with the same tap targets, and a poster size a phone can draw
The all-regions map drew its pins at their zoom-2 size below zoom 2, which is where a phone's globe
sits, so they read far too large. They now shrink below zoom 2 (unchanged from zoom 2 up, so desktop
keeps them), and an invisible hit twin with the old radii takes the click and the cursor, so a tap
selects exactly what it did before.

The poster dialog's default is 24x36 in at 300 dpi, a 78-megapixel render: minutes on a desktop, and
beyond a phone's canvas limit, so "Export poster" appeared to do nothing on a phone. On a phone it now
opens on Letter at 150 dpi, and sizes or resolutions over the phone canvas limit are disabled with the
reason shown, in every locale. Desktop is unchanged.
2026-09-30 08:30:57 +00:00
Doxa Maps
8105b1e76a Prayer packet: point 4 prints a short reading list, and the 12 points are larger
Point 4 (READ THE WORD) printed Mark 5:1-20 in full at 14px, the longest
and smallest text in the packet. It now prints THE HEAVENLY FATHER'S
HEART: one heading, one framing line and seven short readings (Noah,
Lot, Rahab, the Gerasene, Cornelius, Lydia, the jailer), each a
household the Father saved through one person. The names come from each
locale's block; the addresses stay canonical English in the data and the
book is named in the packet's language, like every other reference
(Genesis and Joshua added to the 11 books tables).

That room goes to the twelve points: body 17 -> 22px, heading 19 -> 24px,
references 14 -> 17px, and 13 -> 16px between points. The page still fits
one sheet in all 11 locales (the tightest, de, ends 59px above the
bottom).

The gates that asserted the full passage (packet-render, packet-browser,
poster-prints) now assert the list: a .p4-heart block with its seven
readings. Rebuilt: my-upg-100-list, country-posters, regions-dashboard,
doxa-research-map, upg-neighbor; the tree and SRI regenerated.
2026-09-30 08:29:54 +00:00
Doxa Maps
1ca45566fe Merge origin/development into studio/lm-host-scope 2026-09-30 08:28:27 +00:00
Doxa Maps
7646e222fe The "What can this map do?" button shows a question mark, not an (i)
The map's attribution control is a round (i) as well, and two identical glyphs on one map read as the
same thing. Both copies of the glyph change: MapInfoButton (the map control and the dashboard header
button) and MapInfo's floating fallback button.
2026-09-30 08:21:16 +00:00
Doxa Maps
ad8765d9eb Merge remote-tracking branch 'origin/development' into regions/print-rollout
# Conflicts:
#	public/dx-maps/country-posters/countries-map/index.html
#	public/dx-maps/country-posters/country-poster-wall/index.html
#	public/dx-maps/country-posters/country-posters-mfe/index.html
#	public/dx-maps/country-posters/country-posters.js
#	public/dx-maps/doxa-maps-spa/manifest.json
#	public/dx-maps/doxa-research-map/doxa-research-map.js
#	public/dx-maps/doxa-research-map/research-map/index.html
#	public/dx-maps/doxa-research-map/research-map/maplibre/index.html
#	public/dx-maps/manifest.json
#	public/dx-maps/my-upg-100-list/my-upg-100-list.js
#	public/dx-maps/my-upg-100-list/poster-wall/index.html
#	public/dx-maps/my-upg-100-list/upg-100-list/index.html
#	public/dx-maps/my-upg-100-list/upg-100-mfe/index.html
#	public/dx-maps/regions-dashboard/region-dashboards/index.html
#	public/dx-maps/regions-dashboard/regions-dashboard.js
#	public/dx-maps/regions-dashboard/regions-list/index.html
#	public/dx-maps/regions-dashboard/regions-mfe/index.html
2026-09-30 08:20:54 +00:00
Doxa Maps
f25be96b4b Print on phones: a new print also clears a print document another map left on the page 2026-09-30 08:20:29 +00:00
Doxa Maps
d2e9eefcf5 Merge remote-tracking branch 'origin/development' into HEAD 2026-09-30 08:17:23 +00:00
Doxa Maps
2b2f2a728a Merge commit 'refs/ppp/strat' into HEAD 2026-09-30 08:17:23 +00:00
Doxa Maps
756053fecf Map info: the strategy copy in its own catalogue area, shipped only where it renders
The strategy (bottom line + points, 41 keys per locale) moves out of the
mapInfo area into a new mapStrategy area (library/i18n/locales/<lc>/
mapStrategy.json, keyed mapStrategy.tab.<id>), and tabInfo's strategyKey
rows name it. The two tab labels stay in mapInfo.

The build ships an area only to bundles whose code names it, and only
the gallery shell names mapStrategy. mapInfo ships to every map bundle
for its standalone info button, so before this change each map bundle
carried every map's strategy in eleven languages without rendering it.
Measured on the rebuilt bundles against development 63a64d1bf, gzip:
doxa-research-map +3.7 KB (was +47.9), cities-internet +4.0 (was +47.9),
gospel-resources +6.7, research-dashboard +3.8, dashboard-plus-grid
+3.7, doxa-simple-map +3.5; the gallery shell +33.9 KB, where the
strategy renders. check:i18n-treeshake PASS (26 bundles); the strategy
text is in the shell and in none of the six map bundles.

The moved values are identical to the ones they replace (a parsed-JSON
comparison per locale). Rebuilt the seven mapInfo carriers, then the
tree and SRI; pages and manifests change only their integrity.
2026-09-30 08:16:49 +00:00
Doxa Maps
5fbe2829e1 The ⓘ strategy tabs follow the ARIA tabs pattern: a tabpanel, and arrow keys between the tabs
The panel is role=tabpanel, labelled by the selected tab; each tab names it with aria-controls. Only the
selected tab is in the tab order, and Left/Right switch tabs with focus following.
2026-09-30 08:16:35 +00:00
Doxa Maps
f51eb3c367 Merge remote-tracking branch 'origin/development' into regions/rg-credit 2026-09-30 08:05:23 +00:00
Doxa Maps
7d5d7a62d8 Print on phones: the shared Print bar is labelled in the reader's language from the wall and the poster prints too 2026-09-30 08:04:52 +00:00
Doxa Maps
9b39577830 The ⓘ panel shows each map's strategy: an intro, then the strategy, with Examples | Strategy tabs where a map has examples
MapInfo gains a `strategyKey` prop: a catalogue key prefix whose .bottom is the bottom line and .p1, .p2 … the
points, read in order until the first missing one (the catalogue decides how many). The popup shows the intro
(the lead), then:
- a map with examples AND a strategy gets two tabs, Examples first, then Strategy (44px targets, reset to
  Examples on every open);
- a map with only a strategy goes straight to it, under a Strategy heading;
- a map with neither is unchanged.
The takeaway is not shown beside a strategy, which supersedes it. Labels come from mapInfo.tabExamples and
mapInfo.tabStrategy. Prayer Progress's own info (for embeds) names its strategy key too.
2026-09-30 08:04:11 +00:00
Doxa Maps
82334f0c70 Map info: an introduction and a strategy for every map, in 11 locales
Each map's lead becomes its introduction, and each gains a strategy: a
bottom line and 3-5 points (tab.<id>.strategy.bottom, .p1 ... .pN), plus
the Examples / Strategy tab labels (tabExamples, tabStrategy). The copy
is each map owner's, checked against what that map does today; every
locale has the same point count as English, with no empty entries.
Quoted interface words are each locale's own labels (Pray for them, Add
to Your Website, the Gospel map's Gap / Resources found / none found,
the Prayer / Engagement / Adoption tabs, the gallery's tab names, the
Regions button), so the text names what the reader actually sees.

Only the 7 leads change; 43 keys are added per locale; nothing else in
these files moves. i18n parity, never-translated and keys-exist pass.
2026-09-30 08:04:09 +00:00
Doxa Maps
dcd16f743f Regions maps on phones: the map credit stays in its bottom corner
The shared region/country map lifted its bottom corners by the gallery's round-button clearance whenever
that button rendered. That suits a map that fills the screen, but the Regions maps sit in the page flow,
so on a phone the credit floated 80-100 px up the map. The lift is removed; the full-height maps keep
their own clearance in the mobile legend.
2026-09-30 08:00:03 +00:00
Doxa Maps
63a64d1bf9 Merge remote-tracking branch 'origin/development' into HEAD
# Conflicts:
#	public/dx-maps/cities-internet/cities-internet.js
#	public/dx-maps/cities-internet/connectivity-list/index.html
#	public/dx-maps/cities-internet/connectivity-map/index.html
#	public/dx-maps/cities-internet/data-tables/index.html
#	public/dx-maps/doxa-maps-spa/manifest.json
#	public/dx-maps/doxa-research-map/doxa-research-map.js
#	public/dx-maps/doxa-research-map/research-map/index.html
#	public/dx-maps/doxa-research-map/research-map/maplibre/index.html
#	public/dx-maps/doxa-simple-map/doxa-simple-map.js
#	public/dx-maps/doxa-simple-map/doxa-simple-map/adoption/index.html
#	public/dx-maps/doxa-simple-map/doxa-simple-map/engagement/index.html
#	public/dx-maps/doxa-simple-map/doxa-simple-map/index.html
#	public/dx-maps/doxa-simple-map/doxa-simple-map/prayer/index.html
#	public/dx-maps/gospel-resources/charts/index.html
#	public/dx-maps/gospel-resources/data-tables/index.html
#	public/dx-maps/gospel-resources/gospel-dashboard/index.html
#	public/dx-maps/gospel-resources/gospel-resources.js
#	public/dx-maps/gospel-resources/resources-list/index.html
#	public/dx-maps/gospel-resources/resources-map/index.html
#	public/dx-maps/manifest.json
2026-09-30 07:58:25 +00:00
Doxa Maps
68c51dbc2a Phones: the credit moves up only while a legend sheet is mounted, and the handle keeps its drag
Two phone legend fixes in LegendMobile.

The rule that moves the engine's bottom corners to the top lives in CSS injected
once into the host's shadow root and never removed. Cities with Internet mounts
the sheet only for its phone people-group card, so after "back to legend" its
credit stayed at the top, under the map's own legend (measured at 390: 1 of 11
points visible). The move is now scoped to a class on the host that is set while
at least one LegendMobile is mounted, counted so the desktop legend's hidden twin
cannot clear it early.

A drag on the sheet's handle fell through to whatever scrolls behind the map:
on UPG-100's Map view a downward drag on the collapsed sheet scrolled its pane
column 655px back to the list. The handle (the drag strip, the title rows, and
the whole sheet while collapsed) now has touch-action:none, and a collapsed sheet
holds the gesture as a backstop. A tap still reaches the caret.
2026-09-30 07:58:08 +00:00
Doxa Maps
d12380ce22 Poster walls: a card contains its print row when the row wraps
At two posters per row on a phone (a ~162px card) the print row wraps to
three lines, and because it is a sticker pinned over the banner's bottom
edge that grows downward, it hung about 45px below the card's white box.
Each card is now fitted to its own row: a ResizeObserver on every .pfs
writes --pfs-room on its card when the row hangs past the white box (the
part below the banner, plus 8px of daylight, that the 26px bottom padding
does not cover). A row that fits writes 0, so every card that already
contained its row is unchanged.

check:poster-card-fits asserts it: a print row may not end below its own
card (below-card N). Rebuilt: my-upg-100-list, country-posters,
regions-dashboard; the tree and SRI regenerated.
2026-09-30 07:55:03 +00:00
Doxa Maps
9a03de6c99 Merge remote-tracking branch 'origin/deep-research-plugin/gal1' into HEAD
# Conflicts:
#	public/dx-maps/cities-internet/cities-internet.js
#	public/dx-maps/cities-internet/connectivity-list/index.html
#	public/dx-maps/cities-internet/connectivity-map/index.html
#	public/dx-maps/cities-internet/data-tables/index.html
#	public/dx-maps/dashboard-plus-grid/dashboard-plus-grid.js
#	public/dx-maps/dashboard-plus-grid/dashboard-plus-grid/default/index.html
#	public/dx-maps/dashboard-plus-grid/dashboard-plus-grid/index.html
#	public/dx-maps/doxa-maps-spa/manifest.json
#	public/dx-maps/doxa-research-map/doxa-research-map.js
#	public/dx-maps/doxa-research-map/research-map/index.html
#	public/dx-maps/doxa-research-map/research-map/maplibre/index.html
#	public/dx-maps/doxa-simple-map/doxa-simple-map.js
#	public/dx-maps/doxa-simple-map/doxa-simple-map/adoption/index.html
#	public/dx-maps/doxa-simple-map/doxa-simple-map/engagement/index.html
#	public/dx-maps/doxa-simple-map/doxa-simple-map/index.html
#	public/dx-maps/doxa-simple-map/doxa-simple-map/prayer/index.html
#	public/dx-maps/gospel-resources/charts/index.html
#	public/dx-maps/gospel-resources/data-tables/index.html
#	public/dx-maps/gospel-resources/gospel-dashboard/index.html
#	public/dx-maps/gospel-resources/gospel-resources.js
#	public/dx-maps/gospel-resources/resources-list/index.html
#	public/dx-maps/gospel-resources/resources-map/index.html
#	public/dx-maps/manifest.json
#	public/dx-maps/research-dashboard/research-dashboard.js
#	public/dx-maps/research-dashboard/research-dashboard/index.html
2026-09-30 07:34:58 +00:00
Doxa Maps
5973e5dcd5 Merge remote-tracking branch 'origin/development' into HEAD
# Conflicts:
#	public/dx-maps/cities-internet/cities-internet.js
#	public/dx-maps/cities-internet/connectivity-list/index.html
#	public/dx-maps/cities-internet/connectivity-map/index.html
#	public/dx-maps/cities-internet/data-tables/index.html
#	public/dx-maps/doxa-maps-spa/doxa-maps-spa.js
#	public/dx-maps/doxa-maps-spa/doxa-maps-spa/app/index.html
#	public/dx-maps/doxa-maps-spa/doxa-maps-spa/index.html
#	public/dx-maps/doxa-maps-spa/manifest.json
#	public/dx-maps/doxa-research-map/doxa-research-map.js
#	public/dx-maps/doxa-research-map/research-map/index.html
#	public/dx-maps/doxa-research-map/research-map/maplibre/index.html
#	public/dx-maps/doxa-simple-map/doxa-simple-map.js
#	public/dx-maps/doxa-simple-map/doxa-simple-map/adoption/index.html
#	public/dx-maps/doxa-simple-map/doxa-simple-map/engagement/index.html
#	public/dx-maps/doxa-simple-map/doxa-simple-map/index.html
#	public/dx-maps/doxa-simple-map/doxa-simple-map/prayer/index.html
#	public/dx-maps/gospel-resources/charts/index.html
#	public/dx-maps/gospel-resources/data-tables/index.html
#	public/dx-maps/gospel-resources/gospel-dashboard/index.html
#	public/dx-maps/gospel-resources/gospel-resources.js
#	public/dx-maps/gospel-resources/resources-list/index.html
#	public/dx-maps/gospel-resources/resources-map/index.html
#	public/dx-maps/manifest.json
#	public/dx-maps/research-dashboard/research-dashboard.js
#	public/dx-maps/research-dashboard/research-dashboard/index.html
2026-09-30 07:34:53 +00:00
Doxa Maps
c001f0c059 Merge origin/development into studio/legend-final 2026-09-30 07:34:33 +00:00
Doxa Maps
f544ca6334 Print on phones, everywhere: the map's poster dialog, research-map, the gospel tree, the planner and the wall
Every other caller of the in-place print moves onto the phone path the poster wall already uses:
printImageBlob (the map's poster/download dialog and research-map) prints the page itself on a phone,
and the gospel tree, the prayer-walk planner and the wall of people groups call printDocument. A caller
without its own progress dialog gets a shared Print bar when the tap has expired, labelled through the
caller's own translator. Desktop keeps the in-place frame unchanged. Source only; the bundles are rebuilt
when it lands.
2026-09-30 07:34:19 +00:00
Doxa Maps
35486223bb Phones: the engine's credit on one line, in smaller type
At the top of a phone map the credit shares the edge with the map's control
column, and at 10px it took two lines. It is now 8.5px, capped 44px short of
the column (35px wide at 390), which fits the whole MapLibre licence text on one
line (294px against about 302px of room, measured at 390). It still wraps rather
than clips, so a longer credit shows whole on two lines instead of losing terms.
2026-09-30 07:20:49 +00:00
Doxa Maps
0bdbd3536b Merge remote-tracking branch 'origin/development' into regions/s5-p8-land
# Conflicts:
#	public/dx-maps/doxa-maps-spa/manifest.json
#	public/dx-maps/manifest.json
#	public/dx-maps/regions-dashboard/region-dashboards/index.html
#	public/dx-maps/regions-dashboard/regions-dashboard.js
#	public/dx-maps/regions-dashboard/regions-list/index.html
#	public/dx-maps/regions-dashboard/regions-mfe/index.html
2026-09-30 07:19:55 +00:00
Doxa Maps
983f301bab Merge branch 'regions/phone-dashboard' into regions/s5-p8-land
# Conflicts:
#	public/dx-maps/country-posters/countries-map/index.html
#	public/dx-maps/country-posters/country-poster-wall/index.html
#	public/dx-maps/country-posters/country-posters-mfe/index.html
#	public/dx-maps/country-posters/country-posters.js
#	public/dx-maps/doxa-maps-spa/manifest.json
#	public/dx-maps/manifest.json
#	public/dx-maps/my-upg-100-list/my-upg-100-list.js
#	public/dx-maps/my-upg-100-list/poster-wall/index.html
#	public/dx-maps/my-upg-100-list/upg-100-list/index.html
#	public/dx-maps/my-upg-100-list/upg-100-mfe/index.html
#	public/dx-maps/regions-dashboard/region-dashboards/index.html
#	public/dx-maps/regions-dashboard/regions-dashboard.js
#	public/dx-maps/regions-dashboard/regions-list/index.html
#	public/dx-maps/regions-dashboard/regions-mfe/index.html
2026-09-30 07:19:39 +00:00