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.
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.
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.
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.
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.
The mapInfo catalogue ships in seven bundles (cities-internet,
dashboard-plus-grid, doxa-maps-spa, doxa-research-map, doxa-simple-map,
gospel-resources, research-dashboard) and the tab layout in two
(doxa-maps-spa, plugin-studio): eight rebuilt, then the tree and SRI.
Pages and manifests change only those bundles' integrity hashes.
- The closed phone drawer casts no shadow. Parked off-screen at
translateX(-100%), its 28px blur still darkened the start edge of every
map (measured at 390: the left 30px about 22 luminance levels darker
than with the shadow off, a repeat shot identical). The shadow now
belongs to the open drawer only; in Arabic the same rule covers the
drawer parked off the right edge.
- A row with disabled (a desktop-only map on a phone, e.g. Big Picture)
renders greyed, with aria-disabled and a not-allowed cursor; its badge
keeps its accent colour. pick() is unchanged, so the consumer still
receives the click and can say why the row does not open.
Both CSS copies change identically.
- Simple Research: the list follows a region, religion or language
chosen on the map, and the map follows a search of the list (a single
pin opens that group's detail, it does not filter the list). Its
takeaway and example-packet strings are gone with the row's takeaway.
- Prayer Progress: the groups on DOXA's prayer list, not every unreached
people group; prayer coverage on every preset, engagement and adoption
on the full map; the takeaway links to the group's prayer page (the map's
Share shares the map, not a group).
- Regions: every country except India prints (China does); the posters,
packets and card decks are printed from each region's "View country
posters" wall, not the country dashboard, and there is no poster share.
- Cities with Internet: banded by the share of people using the internet
(mobile use is shown, it does not set the band); India also by state
from its 2019-21 survey; low means few online, not no one.
Each locale quotes its own label for the Regions button. The per-map
owners supplied the corrections from their code. i18n parity, never-
translated and keys-exist pass.
- Simple Research drops the example packet (a UPG-100 zone's, not
something its own view makes) and its takeaway line, which promised a
poster and a prayer packet a reader cannot reach from this map.
- Every tab whose map draws people-group pins (UPG-100, Simple Research,
Prayer Progress, Cities with Internet, Gospel Resources) carries the
approximate-location caveat as its info note (pins.approximate), so
it stays findable where a phone legend no longer states it.
- The Regions comment no longer says China is withheld: China prints.
The gallery bundle grows by about 3.6 KB raw (1.1 KB gzipped) for the pins
catalogue area; the rebuild is in the commit that closes this series.
Every bottom placement of the engine's credit failed a reader on a phone: under
the open sheet it was covered, lifted above the sheet it floated mid-map, and
in a strip below the sheet it pushed the legend off the map's bottom edge. On a
phone both engines' bottom corners now move to the top corner on the start
side, opposite the map's own control column (left; right in RTL), and the sheet
sits flush at the map's bottom, starting beside the round menu button
(--map-fab-beside) so the button covers none of it. The move is !important so a
plugin's own lift of its bottom corners cannot push the credit off the top.
Desktop is unchanged.
On a phone there is no room for "The dot marks where this people is found, not
a town or a boundary" beside the legend, so the caption chip under the sheet is
gone: the sentence shows in no resting state (collapsed, or open with nothing
selected). A tapped dot's detail view keeps its note inside the sheet, where it
explains shared dots, and the tree's own copy stays off. The credit strip under
the sheet is the bottom controls alone again. Desktop is unchanged.
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.
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.
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.
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.