Commit graph

4309 commits

Author SHA1 Message Date
Doxa Maps
011afa6440 Merge remote-tracking branch 'origin/development' into repo/mobile-app-howto 2026-09-30 10:27:50 +00:00
Doxa Maps
5cd90015f4 Rebuild LegendMobile's importers and the composites for the credit-fold hardening, then the tree and SRI 2026-09-30 10:25:37 +00:00
Doxa Maps
b4d26d1940 Merge remote-tracking branch 'origin/development' into upg100/mark5
# 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 10:24:16 +00:00
Doxa Maps
0cd52a64de Merge studio's LegendMobile credit-fold hardening into the PILLFAB train 2026-09-30 10:21:44 +00:00
Doxa Maps
2f49d2c382 Rebuild the PILLFAB train's union from the merged source (PinHint + the corner ☰ + LegendMobile + development), composites after their children, then the tree and SRI 2026-09-30 10:21:43 +00:00
Doxa Maps
d95c3b9820 Map-print template: the verse numbers read left to right in Arabic, the map's name reaches Simple Research, and the prayer line is fetched ahead
In a right-to-left footer the range "10:11–15" printed as "15–10:11": the numbers of each reference now sit in a
left-to-right isolate (packet-render's own split of book and numbers). The research-map-plus-grid composite
forwards the host's mapTitle to its map, which it did not pass on before. And the packet strings are fetched
when the map mounts (when the browser is idle), so the print's 3 s wait reads them from the cache instead of
dropping the line on a slow network.
2026-09-30 10:20:27 +00:00
Doxa Maps
4116582bc9 Phones: the legend's credit fold keeps looking until the credit is compact
An engine can mark its credit compact only after the map is ready, and the
fold stopped polling at a credit that was present but not yet compact, so
on such a map the credit never folded. It now stops only once the credit is
compact and already folded (a drag or a tap got there first), and keeps
looking, for up to 30 s as before, while it is not yet compact.
2026-09-30 10:18:26 +00:00
Doxa Maps
b1fdbf8a18 Rebuild people-groups-grid, dashboard-plus-grid and big-picture from the merged source in the lock, and regenerate the tree 2026-09-30 10:15:17 +00:00
Doxa Maps
3d8c97b760 Merge studio's LegendMobile (FABSIMPLE: the sheet always full width, the collapsed strip padded by --map-fab-beside) into the PILLFAB train
# Conflicts:
#	public/dx-maps/doxa-maps-spa/manifest.json
#	public/dx-maps/index.html
#	public/dx-maps/manifest.json
#	public/dx-maps/plugin-studio/plugin-studio.js
#	public/dx-maps/plugin-studio/plugin-studio/index.html
#	public/dx-maps/plugin-studio/plugin-studio/studio/index.html
2026-09-30 10:14:57 +00:00
Doxa Maps
1b7b70101c Merge remote-tracking branch 'origin/development' into simpleresearch-plugin/dxl-style
# Conflicts:
#	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/manifest.json
2026-09-30 10:14:23 +00:00
Doxa Maps
3f3f2fa359 The pin-hint pill: centred in the room the corner ☰ leaves (from --map-fab-beside to 12px), 40px, two lines, just above the legend 2026-09-30 10:14:11 +00:00
Doxa Maps
55ca562ed5 The pin-hint pill: two lines, the round ☰'s height and row, and still while the pane scrolls
- Two lines, each its own string, in a new catalogue area only PinHint names (line1 / line2 x 11,
  taken from today's one-sentence text at each locale's own separator; that text is untouched).
- 44px tall like the ☰, 12px text, a smaller bob. Capped to the width left between two ☰ footprints
  (--map-fab-beside), so it is centred with equal room and never reaches the ☰; with no ☰ it is
  simply centred.
- In the ☰'s row: while the layout shows the ☰, the base is the ☰'s own 12px bottom, and the clamp
  lifts it to 8px above the legend sheet, the gap the layout keeps for the ☰.
- It no longer reads --map-fab-clearance, which now carries the ☰'s scroll-tracked lift: inside the
  map, beside the legend, the pill stays over it by itself, and positioned from that lift it moved
  against the legend on every scroll.
2026-09-30 10:14:11 +00:00
Doxa Maps
cba3b0a872 Phones: the legend sheet stays full width, and its collapsed strip clears the corner menu button
The layout's round menu button now sits fixed in the bottom corner on the
start side and never moves, so the sheet no longer insets itself beside it:
it is always full width. The collapsed strip pads its start edge by
--map-fab-beside, the room the button takes, so its caret and title stay
clear of it (0 where there is no button); the detail footer, placed
absolutely, gets the same inset. Open, the sheet keeps its full width under
the button's small corner. The floating image returns to the start edge. The
'dxmaps:legend-sheet' event is still dispatched.
2026-09-30 10:14:01 +00:00
Doxa Maps
23597b2364 Regions maps on phones: the credit fold keeps looking until the credit first shows, so it folds in every language 2026-09-30 10:11:45 +00:00
Doxa Maps
fd3a399135 Rebuild people-groups-grid, dashboard-plus-grid and big-picture from the source, then the tree and SRI 2026-09-30 10:10:59 +00:00
Doxa Maps
3548c73c09 On a phone the grid's pill search keeps its own 15.2px text, so the placeholder fits beside the round ☰
With the ☰ resting in its corner the row pads its footprint on both sides, leaving the field about
230px wide at 390, where the live list's 19.5px text doesn't fit the placeholder. Above 576px the field
keeps the live list's size.
2026-09-30 10:10:00 +00:00
Doxa Maps
8e6664539f Merge origin/development into studio/rudder-circle 2026-09-30 10:08:20 +00:00
Doxa Maps
d8d3ab48c7 Merge remote-tracking branch 'origin/development' into repo/mobile-app-howto 2026-09-30 10:07:55 +00:00
Doxa Maps
4c7123f68e Rebuild the tab layout's consumers (doxa-maps-spa, plugin-studio) for the corner ☰
Then the tree and SRI; pages and manifests change only their integrity.
2026-09-30 10:06:12 +00:00
Doxa Maps
8444aa64b0 Map-print template: the prayer line waits at most 3 s for the packet strings, so a stalled network cannot hold the export 2026-09-30 10:05:36 +00:00
Doxa Maps
4efe3744da Tab layout: the round ☰ is a small fixed corner button on phones
The ☰ no longer rides above the legend sheet: that lift made it fly on
scroll and re-animate on a tab switch. It is now 40px, 8px from the
bottom-start corner of the layout (plus the safe area; bottom-right in
Arabic), and never moves: no lift, no scroll tracking, no transition.
It sits over the corner of the legend sheet; the collapsed sheet pads
its start edge by --map-fab-beside (now 56px = 8 + 40 + 8) so its caret
and title clear it. --map-fab-clearance stays 56px. The legend-sheet
listener, its measurement and --map-fab-sheet-inset are removed (the
sheet may keep dispatching its event). The open drawer keeps z 100000.
Both CSS copies change identically.
2026-09-30 10:05:24 +00:00
Doxa Maps
40c9b02907 Map-print template: rebuilt on development (the re-pinned packet strings), and the loading card is a status, not a dialog 2026-09-30 10:04:40 +00:00
Doxa Maps
f3fdf4bf37 Mobile apps from plugins: a how-to, with Deep Research as the worked example
documentation/how-to-build-mobile-apps-from-plugins/README.md explains why Deep Research
(doxa-maps-spa, its app preset) is the plugin to wrap first: the seven production maps in one
phone-ready shell, token-free on MapLibre. It then walks the whole path: tools, the wiring check,
one command, what each step does, another plugin as the app, making it your own, and fixes.

The one command needed two small changes; the default app is unchanged:
- internal/set-app-start-page.mjs takes APP_START=<plugin>/<screen>[/<preset>] and opens that page
  instead of the UPG-100 list. Unset, it behaves and marks the page exactly as before. A malformed
  value, a page missing from the build, or links that would not resolve are refused, as before.
- package.json: phone:from-tree is sync, start page, verify, assemble, install from the committed
  tree, with no full rebuild (bun run build refuses without BUILD_ALLOW=1).
  phone:deep-research is phone:from-tree with Deep Research as the start page.

how-to.md links the guide, and two of its lines are corrected: webDir is public/dx-maps/, and
apk:debug's first step is the full build, which asks for BUILD_ALLOW=1.

Checked, with no Android tools: the start page written for doxa-maps-spa/doxa-maps-spa/app, then
the app root served and loaded in the shared browser at 390 and 1280. It showed the gallery
element, 15 tabs (the seven maps and the experimental ones) and a drawn map, with 0 console errors
and 0 failed requests. --check passed for APP_START and failed for the default until it was
restored; the default run still writes the UPG-100 page with its original marker. The Gradle and
adb steps are those bun run phone already uses; they were not run here.
2026-09-30 10:04:34 +00:00
Doxa Maps
15915d9537 Merge origin/development into gospel/credit-corner
# 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 10:02:48 +00:00
Doxa Maps
23b96dfe6c Prayer packet: point 4's sheet carries no Metacamp footer
The new READ THE WORD sheet reused the points page's footer, so a packet
printed three Metacamp attributions where check:packet-browser counts
exactly two (the wheel and the points). The sheet already carries its
own credit line, the scripture's; the footer goes. Rebuilt the five
bundles that compile the renderer; the tree and SRI regenerated.
2026-09-30 09:59:29 +00:00
Doxa Maps
c0255fa8bc Merge remote-tracking branch 'origin/development' into regions/map-print-template
# 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 09:58:44 +00:00
Doxa Maps
efcd08a40c Share policy: record the regions dashboard's one share button 2026-09-30 09:57:20 +00:00
Doxa Maps
711a8b3e64 Rebuild people-groups-grid, dashboard-plus-grid and big-picture from the source, then the tree and SRI 2026-09-30 09:56:50 +00:00
Doxa Maps
72fb88a6ea The gallery gives each tab its map name (mapTitle) for the map-print header 2026-09-30 09:55:39 +00:00
Doxa Maps
56c6eacca5 The grid's search row keeps clear of the round ☰ only while the ☰ rests on it, and spans the row once the ☰ rides above the legend
The ☰ rests at the bottom of a phone's first screen until the map's legend sheet announces itself, so
while the map loads, or for good if it fails, it covered the start of the full-width field. The row now
pads by the ☰'s footprint on both sides while the layout's --vtl-fab-lift is 0, and not at all once the
☰ lifts, easing with the ☰'s own .2s move (none under reduced motion).
2026-09-30 09:50:10 +00:00
Doxa Maps
96cb58daaa Rebuild cities-internet and gospel-resources for the credit's fold clock, and regenerate the tree 2026-09-30 09:49:13 +00:00
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
59fd232a1f Merge remote-tracking branch 'origin/development' into HEAD 2026-09-30 09:45:11 +00:00
Doxa Maps
5180e5949b Rebuild people-groups-grid, dashboard-plus-grid and big-picture from the source, then the tree and SRI 2026-09-30 09:44:28 +00:00
Doxa Maps
02a5ea8e7e 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/manifest.json
2026-09-30 09:43:31 +00:00
Doxa Maps
bd1239a496 The credit's fold clock starts once the basemap credit has joined geoBoundaries 2026-09-30 09:43:08 +00:00
Doxa Maps
69e0e67075 Prayer packet: point 4 gets its own sheet, Mark 5:1-20 in full with verse 19 in bold
Point 4 (READ THE WORD) again prints Mark 5:1-20 in full, the texts the
packet shipped before a80f4fd6e (the public-domain versions on file for
en, es, fr, de, ru and ar; the English WEB text elsewhere, as before).
Verse 19 is in bold: point4_passage_bold holds it verbatim from the same
text, so the bold is a substring match and never a second rendering of
scripture. THE HEAVENLY FATHER'S HEART follows the passage.

The passage at a readable size (24px) and the twelve points at theirs do
not share one sheet, so point 4's reading has its own page right after the
points ("4. READ THE WORD"), and the points page gains more space between
points. Both sheets fit in all 11 locales.

The gates count the new sheet (packet-render +3, poster-prints 5 sheets,
a1-structure "... points · word") and assert the passage in full again,
verse 19 in bold and the seven readings. packet-strings.json is re-pinned,
and the five bundles that compile the pin are rebuilt (country-posters,
doxa-research-map, my-upg-100-list, regions-dashboard, upg-neighbor),
with the tree and SRI regenerated.
2026-09-30 09:41:43 +00:00
Doxa Maps
bb145b5c1c Rebuild cities-internet and gospel-resources for the compact credit, and regenerate the tree 2026-09-30 09:40:22 +00:00
Doxa Maps
0e282189b0 Rebuild the Plugin Studio for the Rudder circle, and regenerate the tree and SRI 2026-09-30 09:37:24 +00:00
Doxa Maps
70c716057a One map-print template, piloted on Simple Research: landscape, the map's name, the legend beside it, a prayer line
The map's "Export poster…" now prints through a shared template: always landscape Letter; a header with the
map's name (from the host's profile-config mapTitle), the view on screen as its subtitle; the legend as a
side panel; and a footer line from the prayer packet's final page (prayer point 6 with Luke 10:2 and
John 10:11-15, in the reader's language). While it renders, a loading screen like the poster wall's shows
the renderer's own progress. Without a mapTitle the view on screen stays the title, as before.
2026-09-30 09:36:48 +00:00
Doxa Maps
a66b120185 The grid's search and filters look like the live DX Life list: a pill search field, Show filters as an uppercase link, and 37px dropdowns
The values are the live /research list's own computed styles, measured at 390 and 1440. The search
field spans its row (up to 600px), since the round ☰ now rides above the map's legend sheet and no
longer rests on it. Every new rule is under .pgg-root, so Big Picture's header, which shares SearchBar
and FilterDropdown, is untouched; there the grid's search and filters are off. The filters still open
by default.
2026-09-30 09:36:45 +00:00
Doxa Maps
71be66803d Merge remote-tracking branch 'origin/development' into upg100/mark5 2026-09-30 09:32:34 +00:00
Doxa Maps
86034174b0 WIP Mark 5 page (source) 2026-09-30 09:32:33 +00:00
Doxa Maps
cfa26b7fbd Merge origin/development (train #3) into gospel/credit-corner 2026-09-30 09:32:09 +00:00
Doxa Maps
0f5f991dae Gospel Resources and Cities with Internet: one compact licence credit at the bottom end corner, folded after 3 s 2026-09-30 09:32:08 +00:00
Doxa Maps
fdb06b8b56 Phone pages: the app's height no longer changes as the address bar hides or shows
The host page of every full-page map (and the Plugin Studio) sized the
element to the viewport in a way that tracks the phone's address bar:
- the built fixed-viewport leaf used position:fixed with inset:0, which
  follows the DYNAMIC viewport, so the map and its legend sheet resized
  on every scroll that moved the bar;
- the Plugin Studio page and the dev server's leaf and studio pages used
  100vh, the LARGE viewport, taller than the view while the bar shows, so
  the page itself scrolled by the bar's height and the app seemed to
  resize.
All four now use height:100svh (100% first as the fallback where svh is
unknown), anchored top-left, and set --profile-min-h:0 so ProfileLoader's
100dvh floor cannot grow the element when the bar hides. On a desktop svh
equals the viewport, so nothing moves there. Scroll-page leaves (the
cap-4 stacks) are unchanged.

Regenerated the tree: 51 leaf pages and the Plugin Studio page change
only this rule and its comment; no bundle changes.
2026-09-30 09:31:46 +00:00
Doxa Maps
414a1929ae Plugin Studio: Rudder is a small mic circle in its corner, with no label
The corner widget's bubble was a pill that read "Rudder · voice to text" and
widened to 300 px to show the words while recording. It is now a 44 px circle
with the mic (a chevron while its panel is open): the label stays its
accessible name and tooltip, and the words show in the panel. Recording still
shows on the collapsed circle: a red ring that pulses, a red dot, and the mic
lit while speech is heard.
2026-09-30 09:31:27 +00:00
Doxa Maps
3e1eeffac5 Rebuild the seven ⓘ bundles for the short-description panel, then the tree and SRI 2026-09-30 09:29:05 +00:00
Doxa Maps
c2131fe1c5 The ⓘ panel leads with the map's short description, and the strategy opens on request
At the top of every "What can this map do?" panel: a "Short description" header and the map's
intro, on a pale band with the Rudder blue as its accent bar and the text in a darker shade of that
blue (5.6:1), so the eye finds it first. Below it, the strategy is a collapsed "Strategy ▾" disclosure
(a native details element, collapsed again on every open) instead of a tab; the examples follow
wherever a map has them. The tab machinery goes. New label mapInfo.shortDescription in all 11
locales.
2026-09-30 09:26:58 +00:00
Doxa Maps
3ca828421f Rebuild train #3's bundles and the re-pin's importers from the merged source, and regenerate the tree and SRI 2026-09-30 09:24:52 +00:00