Commit graph

1571 commits

Author SHA1 Message Date
Doxa Maps
ce442e58b8 Merge origin/development into gospel/phone-legend
# 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/manifest.json
2026-09-30 07:46:51 +00:00
Doxa Maps
dd592841db Merge remote-tracking branch 'origin/development' into upg100/land-s9-floor
# Conflicts:
#	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
2026-09-30 07:41:21 +00:00
Doxa Maps
6add0b1c22 Merge upg100/pin-radius (S9 v2) into upg100/credit-floor-lb, and rebuild my-upg-100-list from the merged source 2026-09-30 07:30:24 +00:00
Doxa Maps
bdf10ef7f9 UPG-100 on a phone: the batch HUD's floor drops the credit band
LegendMobile now moves both engines' bottom corners to the top of the
map below 768px, so the 30px credit band no longer sits under UPG-100's
bottom controls on a phone. --upg-credit-floor keeps the sheet and the
round menu button there and drops the band, so the batch HUD sits 30px
lower, over the sheet and the button. Desktop is unchanged.
2026-09-30 07:22:58 +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
fcb92ba555 Merge origin/development into gospel/phone-legend
# 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 07:11:18 +00:00
Doxa Maps
916c200797 Gospel Resources' folded phone legend is slimmer, and keeps Arabic on two lines 2026-09-30 07:09:38 +00:00
Doxa Maps
ba3aded063 Merge origin/development into gospel/fab-clearance 2026-09-30 07:04:59 +00:00
Doxa Maps
293f33d64f Merge remote-tracking branch 'origin/development' into upg100/no-speaker 2026-09-30 07:02:22 +00:00
Doxa Maps
8af13da855 UPG-100 pins: the tap target keeps its size while the dot shrinks
The smaller world-zoom dots also shrank what a tap hits. The pin click
was bound to the drawn layer, and both engines hit-test a circle at
radius + stroke (about 7 to 4 px at world zoom). An invisible twin,
'upg-pins-hit', now carries the drawn layer's previous ramps, and the
click and cursor handlers bind to it, so a tap selects what it selected
before and only the drawing changes. Both of its opacities are 0; the
stroke's default would otherwise draw an opaque black ring.

The visual gate's "is a pin here?" checks ask the twin, the layer a
tap actually hits. The comment that quoted the size report now
describes it instead.
2026-09-30 06:59:37 +00:00
Doxa Maps
575fb2a461 Merge origin/development into studio/revert-pure 2026-09-30 06:57:41 +00:00
Doxa Maps
52cab2408e Plugin Studio on a phone: a button to collapse the header
The layout hides the header's meta slot at phone width (its 56px bar has no
room for it), and the "Hide header" button lived there, so on a phone the
header could not be collapsed at all. A phone-only copy of the button now sits
in the header's end corner (44px, the tabs' corner radius, the same localised
label). The floating "Show header" button brings the header back, as on a
desktop. Wider screens are unchanged.
2026-09-30 06:55:44 +00:00
Doxa Maps
f85f4f8a66 Merge remote-tracking branch 'origin/development' into regions/ar-print-english 2026-09-30 06:53:16 +00:00
Doxa Maps
09d3fbd8b2 UPG-100 wall: the two-up comment keeps its reason, not its speaker
The comment on minCardPx 150 said who chose two-up. It now keeps the
engineering reason (work like the country posters; at two-up a poster
title is too small to read, and two-up was chosen with that trade shown
side by side) and names no one, so check:no-new-driver-references
passes again.

Template comment only: my-upg-100-list rebuilds byte-equal, and the
tree regenerates unchanged.
2026-09-30 06:51:21 +00:00
Doxa Maps
3ab442c2f2 Regions on phones: a new region or country opens at its top, and its map is square
Picking a region from the all-regions table, or a country from a region, kept the old scroll
height, so the new page opened at the bottom; the dashboard now scrolls its own container to the
top when the subject changes (switching to the list and back changes no subject and keeps its
place). The region and country maps take the all-regions map's square shape under 768px; the shared
map component keeps its portrait default for the country page.
2026-09-30 06:46:37 +00:00
Doxa Maps
5052031484 Merge origin/development into gospel/fab-clearance 2026-09-30 06:41:34 +00:00
Doxa Maps
6c2756e5b0 Merge remote-tracking branch 'origin/development' into upg100/land-terr-2up 2026-09-30 06:35:37 +00:00
Doxa Maps
f558b1b43f Cities with Internet and Gospel Resources lift their credit clear of the gallery's round ☰
On a phone the gallery's round ☰ sits in a bottom corner and covered the first ~30px of these maps'
licence credit (the last ~30-40px in Arabic, where it mirrors). The gallery publishes
--map-fab-clearance while the button shows, and every LegendMobile map lifts the engine's bottom
corners by it; these two maps have their own legends, so they never did. They now lift the same
corners, the credit's and a Mapbox wordmark's. The variable is unset without the button, so desktop
is unchanged.

Rebuilds cities-internet and gospel-resources, with their pages and the two manifests.
2026-09-30 06:19:59 +00:00
Doxa Maps
7d2a5f7778 The grid's search row starts beside the gallery's round ☰ on a phone
At rest on a phone the search row sits where the gallery's 44px ☰ circle lands (bottom-left, or
bottom-right in Arabic), so the circle covered the start of the search box. The row now starts at
--map-fab-beside, which the layout publishes only while the circle shows. Everywhere else the
value is 0, so the change does nothing until the circle comes back.
2026-09-30 06:15:30 +00:00
Doxa Maps
f61bce7ea6 Gospel Resources: a country or people-group selection tells the tap hint it can go
The tap hint goes away on the reader's first pin, and it listens for uiStore.selectPeopleGroup,
which this map never calls: it selects through its own refs. A selection here now says so with the
dxmaps:pin-selected event the hint also hears, from inside the map's root. The watch sits after both
refs are declared; above them it would throw at setup.

Rebuilds gospel-resources only, with its pages and the two manifests.
2026-09-30 06:07:54 +00:00
Doxa Maps
bc8bb3345b Merge branch 'upg100/wall-2up' into upg100/land-terr-2up
# Conflicts:
#	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
2026-09-30 06:07:40 +00:00
Doxa Maps
0990c7bbc0 Merge branch 'upg100/territory-counts' into upg100/land-terr-2up
# Conflicts:
#	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
2026-09-30 06:07:38 +00:00
Doxa Maps
3df69dde01 Regions: the country poster prints in English in every locale, like the Country Posters wall
The Regions tab handed the sheet generator its localised card, so an Arabic reader's poster read
"Pray for السودان" and Administrative areas "السودان" beside an English "Countries: Sudan". The poster
is English by recorded decision; the generator now gets the data's own record by id, as the wall does.
2026-09-30 06:01:39 +00:00
Doxa Maps
3aec8b1f8d UPG-100 pins: small when zoomed out, unchanged zoomed in
Reported from a phone: the pins are "comically large" zoomed out. The
radius ramp began at z=1 (5 px), and MapLibre clamps below the first
stop, so the whole-world view drew all 2,107 dots at 5 px with a 1.8 px
halo. India and Africa became solid blobs, and the zone labels vanished
under them. The old sizing reasoned from one hundred dots; the map draws
every group of every list.

The ramp now starts at z=0 (2.6 px), between all-people-groups (2.2)
and the library's standard ramp (3), and reaches the same 9 px by z=8.
The halo shrinks with it (0.9 px at z=0) but stays solid and dark,
because the dots sit on fills of their own zone's hue.

Measured on the frozen item-5 candidate with this bundle overlaid, at
the gallery's opening zoom (1.5) at 390 and 1440: a pin went from
14.1 px across to 8.3 px (radius 5.25 → 3.05, halo 1.81 → 1.09), about
35% of the area. From z=8 on nothing changes.
2026-09-30 05:55:56 +00:00
Doxa Maps
002b256ce1 Cities with Internet and Gospel Resources get the edge scroll strips on their map
Both maps build their map with new gl.Map rather than through useMapInstance, so nothing ever wired the
shared scroll strips for them: on a phone there was no scroll escape at the map's edges, where every
other map has one. They now render the two strips beside the map and hand them to
useEdgeScrollAffordance, UPG-100's pattern, flagged per embed by edgeScrollAffordance (default on).
The strips sit under everything but the canvas, so the licence credit stays on top of them.

Rebuilds cities-internet and gospel-resources, with their pages and the two manifests.
2026-09-30 05:54:22 +00:00
Doxa Maps
7eef2a7393 UPG-100 wall: "Posters per row: 2" shows two on a phone
The select read 2 while the wall showed one. The shared clamp (210px per
card) forced one column at 390 and silently overrode it. The wall now
opts into PosterWall's minCardPx (150), as the country posters did, so a
phone keeps the columns the reader chose.

Measured at 390, en + ar, with this bundle overlaid on the frozen item-5
candidate: 2 columns (select 2), cards 162px, 0 of 12 action labels
clipped. The poster thumbnails are 114px wide, so a poster's title band
renders about 9px tall (25px at one per row). The title is not readable
at that size; the two-up choice was made with that in view. The
two-line "Show on map" pill and the print options overhanging the card
are PosterWall's own (their fixes are separate).
2026-09-30 05:50:40 +00:00
Doxa Maps
cf16866111 Merge remote-tracking branch 'origin/development' into simpleresearch-plugin/filters-icon 2026-09-30 05:49:30 +00:00
Doxa Maps
6dead067b9 Merge origin/development into gospel/phone-legend
# Conflicts:
#	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 05:48:44 +00:00
Doxa Maps
08dc0bdbe2 UPG-100: a tapped country counts its people groups again
Select your own territory always found 0 people groups (reported from a
phone). resolveTerritory filed a feature as ADM1 whenever it had a
shapeName. The world ADM0 boundaries now carry one too (Sudan:
{ shapeGroup:'SDN', shapeName:'Sudan', iso3:'SDN' }), so every tapped
country became a province:
- key adm1:Sudan with a null count, and a HUD total of 0 UUPG;
- a Prayer List that refused it: "No people-group data for Sudan —
  select the country instead".

The level now comes from where zone-geometry drew the feature. India
states and China provinces come ONLY from the gb-IND/CHN-ADM1 pools, and
only when properties.listId matches the zone, so an ADM1 feature carries
listId; a country never does. A legacy feature with a shapeName and no
iso3 stays ADM1.

Measured at 390 on the frozen item-5 candidate, with this bundle
overlaid:
- tap Sudan → adm0:SDN, 105; tap Chad → adm0:TCD, 53; total 158;
- Prayer List fetches the groups and prints (1 print, no error).
The same flow as served before the fix: adm1:Sudan, 0 UUPG, the refusal,
0 prints.
2026-09-30 05:47:03 +00:00
Doxa Maps
11cb626de9 Merge origin/development into gospel/info-control
# 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/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 05:42:39 +00:00
Doxa Maps
8761483879 The grid's "Hide filters" icon no longer turns upside down
The filters toggle turned every svg in the button over when the filters were open. So the filter
icon beside the label flipped as well, with its longest line at the bottom, which read as a broken
icon. That shows on a phone, where the grid opens with its filters expanded. Only the chevron turns
over now.
2026-09-30 05:37:07 +00:00
Doxa Maps
2b70820f24 Gospel Resources on a phone: a slimmer folded legend, and an open one that stops at 70%
Folded, the legend took three rows of large pill-round controls, about 30% of a phone's page. The
Gap / Resources found buttons are 32px now and squared to the fold button's corners, the search box
is slimmer, and the fold button shares the mode row: two rows instead of three. Open, the legend stops
at 70% of the map and scrolls inside, instead of covering all of it. 32px stays above WCAG 2.5.8's
24px floor. Desktop is unchanged.

Rebuilds gospel-resources only, with its pages and the two manifests.
2026-09-30 05:35:14 +00:00
Doxa Maps
ed1091f59b Merge remote-tracking branch 'origin/development' into big-picture-plugin/bp-c3-header
# Conflicts:
#	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/manifest.json
2026-09-30 05:16:14 +00:00
Doxa Maps
7378832cc9 On a phone, Cities' and Gospel Resources' control column starts below the folded legend
The ⓘ is now the column's top control, and its one-time pointer runs sideways from it across the
map's top band. On a phone that band is these maps' legend (title and fold button), and MapToolbar's
phone rule put the column at top:72px inside it, so the pointer lay over the legend's title and
buttons. Below 700px the column now starts 8px under the FOLDED legend's measured bottom, whatever its
height in each language. It is measured only while folded and before the toolbar exists, so opening
the legend never moves the controls. Desktop is unchanged.

Rebuilds cities-internet and gospel-resources, with their pages and the two manifests.
2026-09-30 05:06:12 +00:00
Doxa Maps
b227f76085 Merge remote-tracking branch 'origin/development' into big-picture-plugin/bp-c3-header
# Conflicts:
#	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-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 05:01:31 +00:00
Doxa Maps
6b05bd242c Simple Research: "What can this map do?" becomes the map's top round control
The research map draws the ⓘ as the first button of its own control column (MapInfoButton), and the
gallery's Simple Research row switches to trigger: 'control' in the same commit, so the tab never
shows two ⓘ, and never shows none. At mount the map tells the gallery that its control is coming, so
the floating ⓘ does not flash while a slow phone loads. A failure or an unmount withdraws that
promise, and the floating ⓘ comes back at once. On a page with no gallery nothing answers, and the
map is unchanged.
2026-09-30 04:48:20 +00:00
Doxa Maps
792d4e1ae9 Cities with Internet and Gospel Resources tell the gallery their ⓘ is coming
Their control column renders only once the map exists, after the data, which can take tens of
seconds on a slow phone. At mount each map now tells the gallery's MapInfo that a control is on its
way (Prayer Progress's announcement), so MapInfo waits for the map instead of flashing its floating
ⓘ first. A failure or an unmount before the map exists withdraws the promise, so the floating ⓘ
shows at once. Gospel's single-card page builds no map and promises nothing.

Rebuilds cities-internet and gospel-resources, with their pages and the two manifests.
2026-09-30 04:48:10 +00:00
Doxa Maps
947133d259 Merge prayer-progress-plugin/info-pending (step A) into gospel/info-control
# Conflicts:
#	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/manifest.json
2026-09-30 04:46:37 +00:00
Doxa Maps
5cbabe7ffa Cities with Internet and Gospel Resources: "What can this map do?" is the top of their control column
The ⓘ becomes the first round control in each map's own column (MapInfoButton, as Prayer Progress
has it), and each tab's gallery row says trigger: 'control', so there is exactly one ⓘ: the control.
MapInfo keeps its fail-open, so a page where the control never arrives still gets the floating one.

Rebuilds cities-internet, gospel-resources and doxa-maps-spa, with their pages and the two manifests.
2026-09-30 04:44:32 +00:00
Doxa Maps
3d462ec308 The ⓘ control's pointer: once per page load, gone after a click or a tab change, no checkbox
Every map whose ⓘ is its own control (MapInfo trigger 'control') now gets the same pointer:
it shows the first time that control is on screen in a page load, and goes for the rest of the
load once the reader opens the popup or leaves the tab. A full reload shows it again. This is
page-load memory, never storage, so the popup offers no checkbox in control mode: the "Keep
tooltip turned on" box and its string (all 11 locales) are removed, along with the pointerKeep
prop that selected this model per tab. Floating-mode maps keep their stored model and their
"don't point again" box, unchanged.

Leaving the tab is read from the pane (hidden or inert), on the control's intersection change
and the existing 1.5 s measurement tick.

Rebuilt doxa-simple-map (it ships the mapInfo catalogue) and doxa-maps-spa, then tree + SRI.
2026-09-30 04:41:04 +00:00
Doxa Maps
8a271596ce Merge remote-tracking branch 'origin/development' into big-picture-plugin/bp-c3-header
# Conflicts:
#	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/manifest.json
2026-09-30 04:34:58 +00:00
Doxa Maps
d7b496c6b1 Prayer Progress tells the gallery its ⓘ is coming, so the floating one never flashes on a slow load
Prayer Progress draws its control column only once the style and the people-group data are in,
which on a slow phone can take longer than any fixed wait, and then the gallery's floating ⓘ
appeared and was swapped for the control. Now the map announces at mount that a control is on its
way ('dxmaps:mapinfo-pending'), and MapInfo waits for the map instead of a clock.

- A known failure (the map reports an error) or an unmount before the map is ready withdraws the
  announcement, and the floating ⓘ shows at once.
- While a control is pending, the 30 s wait becomes a 90 s backstop (time on screen), so an
  unreported failure still gets a floating ⓘ.
- A map that never announces anything keeps the 30 s wait, and pages with no MapInfo are unchanged.

Rebuilt doxa-simple-map and doxa-maps-spa, then tree + SRI.
2026-09-30 04:32:55 +00:00
Doxa Maps
d0de376f4a Big Picture header: rounded-square ⓘ left of a rounded-square Share
The dashboard header gains an info button ("What can this map do for you?") to
the left of Share. Both are rounded squares at the vertical tabs' radius
(--vtl-radius), matching the app's own roundedness; map controls stay round.

Built as a reusable, parameterized header-button form so other dashboards adopt
it by prop, not by copy:
- MapControlButton: new shape="rounded-square" (border-radius: var(--vtl-radius,8px)).
- ShareButton / MapInfoButton: a shape prop forwarded to MapControlButton;
  ShareButton also squares its rotating ring so a round ring never wraps a square.
  Defaults stay 'round' — every existing consumer is unchanged in behaviour.
- research-dashboard DashboardTopBar mounts the ⓘ and Share as one header-button
  group, sized to the bar with the 44px tap target kept for both. DOM order
  [ⓘ, Share] puts ⓘ at the logical start: left in English, right of Share in
  Arabic (the flex row reverses under rtl).
- doxa-maps-spa dashboard-plus-grid tab -> trigger:'control', so the tab's
  MapInfo is driven by the header ⓘ and the gallery's floating ⓘ is suppressed:
  exactly one ⓘ, fail-open. No new strings (reuses mapInfo.open, 11 locales).
2026-09-30 04:27:44 +00:00
Doxa Maps
3b933aefd4 Prayer Progress: round, spaced controls again, and no floating ⓘ while the map loads
The control column goes back to the library's round, spaced buttons at every width; the square
grouped card read too compact, on phones most of all. The ⓘ stays the top control.

In control mode, MapInfo no longer shows its floating button before the map's control has
announced itself. The map draws its column only once it is ready (style and people-group data),
so the floating ⓘ appeared for a moment and was then replaced by the control. The wait is bounded
at 30 s of time on screen, counted only while the pane is visible and not inert: measured column
arrival times run from 7 to 19 s on a local serve, so a shorter wait expired inside a normal load
and flashed late. If no control arrives, the floating button shows, so there is still always a way
to open the popup. Once a control has announced itself, measurement alone decides, as before.

MapInfo's plain <script> block (the page-load pointer memory) now sits above <script setup>, so
check:setup-order no longer reads it as used before its definition; its explanation moves into
<script setup> so the library index keeps the component's own description. Compiled output is
unchanged by the move.

Rebuilt doxa-simple-map and doxa-maps-spa (the only bundle that compiles MapInfo.vue), then
tree + SRI.
2026-09-30 04:17:28 +00:00
Doxa Maps
148f3cffe6 Merge origin/development into exp-shepherd/pp-info-control at the landing turn 2026-09-30 03:48:23 +00:00
Doxa Maps
79a426822c Merge remote-tracking branch 'origin/development' into regions/sparse-consistent 2026-09-30 03:41:13 +00:00
Doxa Maps
48a1a747ba Prayer Progress: "What can this map do?" is the top of its own control column
- Prayer Progress's column becomes the engine's square grouped card (controls="square"). Its first
  control is MapInfoButton, which opens the gallery's MapInfo for the tab. The gallery's tabInfo
  'prayer-map' entry now uses trigger 'control', so the floating button hides while that control is
  on screen, and shows again (fail-open) whenever it is not.
- MapInfo, control mode: the first-visit pointer now points at the control. Its place is measured
  against the pane (which scrolls) and goes on the control's physical inner side, so an Arabic page,
  whose column mirrors to the left, gets the pointer on the right with the arrow reversed. It shows at
  every width: the under-1200px rule was measured for the floating pointer crossing each tab's top
  strip, and does not apply here.
- MapInfo, pointerKeep (prayer-map only): the popup offers "Keep tooltip activated" instead of the
  every-map "don't point again" box. It is off by default, and opening the popup retires the pointer.
  Checked, the pointer keeps showing on every load. It is stored per map.
- mapInfo.keepPointer in all 11 locales.
- Rebuilt doxa-simple-map and doxa-maps-spa, then tree and fix:sri.
2026-09-30 03:31:15 +00:00
Doxa Maps
1728372a1e Reshoot the 173 country previews in the SPARSE layout
The country poster previews were the dense layout -- small facts table, both
vision columns, a smaller map -- while every UPG-100 thumbnail is SPARSE. Now
that the click-time print is SPARSE too, the stored country previews have to be,
or the card and the print disagree.

Generated with SPARSE=1 and checked BEFORE any browser time:
  · the generator's own layout guards: 173 of 173 ok, octilinear, 0 diagonals.
  · SPARSE on all 173: 0 sheets draw a dense-table element; all 173 carry the
    bold "N UPG's" count.
  · real values: 0 sheets show 0, NaN or blank population. Worst cases by UPG
    count: Sudan 105 / ~20.7M, Brazil 103 / ~63K, Laos 95 / ~968K.
Shot on the fleet's shared Chromium (no private browser), one page at a time:
173 of 173, 0 failed, all 3000x3000, none blank. Smoke-tested and looked at
first: Sudan shows the bold facts row, no vision columns, "1 of ~170 maps".

ALL 173 CHANGE: 173 source thumbnails, 173 full-size and 173 served previews
differ from development, 0 strays, nothing written to a stray library/ path.

China is deliberately NOT here: its thumbnail stays the dense "map 174 of 174"
it has tonight. Its print becomes SPARSE with "map 1 of 1" via the small-total
guard. The remaining numbering difference is R-CHN-SERIES-TIER, a product call
after the demo.
2026-09-30 03:30:10 +00:00
Doxa Maps
766d829028 Merge origin/development into gospel/cities-legend-fold 2026-09-30 02:57:55 +00:00
Doxa Maps
0288d3d083 Merge remote-tracking branch 'origin/development' into bundler-2/sr-band-first-screen 2026-09-30 02:53:10 +00:00