Commit graph

3999 commits

Author SHA1 Message Date
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
Doxa Maps
62f401ba92 Rebuild from the merged source (PinHint + development), then the tree and SRI 2026-09-30 07:12:22 +00:00
Doxa Maps
1d32aa1a97 Merge origin/development into exp-shepherd/pinhint-s3 at the landing turn
# 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
#	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:08:37 +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
575fb2a461 Merge origin/development into studio/revert-pure 2026-09-30 06:57:41 +00:00
Doxa Maps
2b81cd1ded Rebuild the Plugin Studio for its phone hide-header button, and regenerate the tree 2026-09-30 06:56:15 +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
083138362a Merge remote-tracking branch 'origin/development' into studio/revert-pure 2026-09-30 06:39:59 +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
3c87d5c033 The pin-hint pill counts the map credit only when it lies below the pill
A host may move the engine's credit to the TOP of the map (a phone layout with the sheet flush at the
bottom). creditFloor() would then have used a credit near y=10 as the floor, and syncAttribClearance()
would have reserved the whole map height (capped at 120px), so the pill lifted itself for nothing. Now
a credit in the upper half of the pill's layout parent is not counted: no floor, and the 20px default
clearance. Every credit is at the bottom today, so this changes nothing yet.
Every bundle rebuilt (PinHint ships through ProfileLoader), composites after their children, then the
tree and SRI.
2026-09-30 06:35:15 +00:00
Doxa Maps
a39035584d Merge remote-tracking branch 'origin/development' into simpleresearch-plugin/filters-icon 2026-09-30 06:23:59 +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
f8bd87c5d7 Rebuild the seven bundles item 5 touched from the merged source (PinHint + item 5 + S1), then the tree and SRI 2026-09-30 06:16:04 +00:00
Doxa Maps
016dec6043 Rebuild people-groups-grid, dashboard-plus-grid and big-picture for the search row beside the ☰ 2026-09-30 06:15:30 +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
fafd7844f3 Rebuild the gallery and the Plugin Studio for the round ☰, and regenerate the tree 2026-09-30 06:14:49 +00:00
Doxa Maps
014079a4b5 Phones: the round ☰ returns to the bottom-left, and the top bar goes
This reverts d83c89f28. On a phone the gallery's menu is again the round ☰
button in the pane's bottom corner (bottom-left; bottom-right in Arabic), with
no bar above the pane. While it shows, the layout again publishes
--map-fab-clearance and --map-fab-beside, and the maps keep their credits,
wordmarks, pin captions and search boxes clear of the button through them.
2026-09-30 06:12:29 +00:00
Doxa Maps
fadf263d8f Merge origin/development (item 5) into exp-shepherd/pinhint-s3
# 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/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/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
#	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:11:50 +00:00
Doxa Maps
d287dca663 The pin-hint pill: dismissed by the first pin tap, and above the gallery's menu button
- It is dismissed when the reader taps a pin, the gesture it teaches. The signals are
  uiStore.selectedPeopleGroup (the maps that select through uiStore.selectPeopleGroup) or a
  'dxmaps:pin-selected' event inside the map's root (a map with its own selection). It was left
  standing over the detail card that the tap had opened. A pan still does not dismiss it.
- Wide, the pill reached the gallery's round menu button (bottom-left). Its bottom now takes the
  larger of the credit clearance and --map-fab-clearance, which the layout publishes only while the
  button is rendered.
- Every bundle rebuilt (PinHint ships through ProfileLoader), composites after their children, then
  the tree and SRI.
2026-09-30 06:11:45 +00:00
Doxa Maps
d089248aee Rebuild my-upg-100-list from the merged source (the territory fix + the two-up wall on item 5) 2026-09-30 06:08:57 +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
1a26e4116c Merge remote-tracking branch 'origin/development' into HEAD
# Conflicts:
#	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 06:07:39 +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
c67b091df6 Print on phones: print the page itself, and offer a Print button when the tap has expired
Every poster, prayer list and card deck printed from a hidden iframe (openPrintFrame), and phone browsers
do not honour a print() inside a subframe: no print dialog ever opened on a phone. printDocument() keeps
that iframe path unchanged on desktop; on a phone or tablet it mounts the document into the page under a
print-only stylesheet that hides everything else, and calls the page's own window.print(). When preparing
the document outlasted the tap's activation, the wall's progress dialog shows a Print button so the print
comes from a fresh tap. The poster wall (Regions, UPG-100, Country Posters) is the first user.
2026-09-30 05:55:52 +00:00
Doxa Maps
a78c86ce36 Merge origin/development into studio/phone-place, and rebuild cities-internet + doxa-maps-spa from the merged source 2026-09-30 05:54:47 +00:00
Doxa Maps
2cf1474a19 Rebuild cities-internet, gospel-resources and doxa-maps-spa from the merged source, then the tree and SRI 2026-09-30 05:54:20 +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
7d1ea68212 Merge origin/development into studio/phone-place, and rebuild the phone-placement bundles from the merged source 2026-09-30 05:49:57 +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
bca5932172 Merge remote-tracking branch 'origin/development' into HEAD
# Conflicts:
#	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 05:49:29 +00:00
Doxa Maps
e96ae2c133 Merge origin/development into exp-shepherd/pinhint-s3
# Conflicts:
#	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/resources-list/index.html
#	public/dx-maps/gospel-resources/resources-map/index.html
#	public/dx-maps/manifest.json
2026-09-30 05:48:47 +00:00
Doxa Maps
04a00ebc54 Rebuild every bundle for the pin-hint pill (PinHint ships in every bundle through ProfileLoader), then the tree and SRI 2026-09-30 05:48:26 +00:00
Doxa Maps
757779d519 check:selection-kinds: resolve REAL tapped features, not hand-made keys
The gate began from keys like 'adm0:IND', so it never ran resolveTerritory
on what the map hands the click handler, and it passed while every tapped
country resolved as a province. Section 4 feeds the resolver three real
tapestry shapes: a country (shapeName + iso3, no listId), an India state
(listId + shapeName + iso3), and a country drawn inside an Asia zone
(zone.adm0).

Two-sided: on the previous resolver it fails three ways (Sudan and Nepal
filed adm1 with null counts); on the fixed one it passes.
2026-09-30 05:47:04 +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
a8045d0733 Merge origin/development into exp-shepherd/pinhint-s3 2026-09-30 05:38:18 +00:00
Doxa Maps
86f693aca8 The pin-hint pill: at most two lines on a phone, and below the gallery's chrome
- left:50% alone capped the absolutely placed pill at HALF the map, about 195px at 390, so the
  sentence broke into four lines. width:max-content, with max-width 16px short of each edge, lets it
  take the width it needs: at most two lines on a phone, never touching the sides.
- z-index 2147482000 -> 12. In the gallery, plugin content shares one stacking context with
  VerticalTabsLayout's chrome (the menu button at 15, the drawer at 20, and 1000 while it is open on
  a phone), so the pill painted over the open drawer. 12 keeps it above the map's own base layers
  (canvas, scroll edges 2, control column 10) and below that chrome.
- The pill's lines are centred.
2026-09-30 05:37:36 +00:00
Doxa Maps
399496acee Rebuild people-groups-grid, dashboard-plus-grid and big-picture for the filters icon 2026-09-30 05:37:07 +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
c3523ae1fc The ⓘ panel on a phone is a bottom sheet over the map, not a full white page
On phones (up to 767px) the "What can this map do?" panel opened as a full-screen page: a few
lines of text at the top of an empty white screen, reading as a new page rather than a panel.
It is now a bottom sheet:

- it sizes to its content, up to 70% of the small viewport (svh, so a collapsing URL bar does not
  resize it), and scrolls inside, with its scroll kept to itself;
- the close button is 44px and stays in view in the sheet's header;
- the dimmed map above it stays visible, and a tap there closes the panel, as Escape does.

Desktop is unchanged. Rebuilt doxa-maps-spa (the only bundle that compiles MapInfo.vue), then
tree + SRI.
2026-09-30 05:35:46 +00:00
Doxa Maps
3d5cd9ab74 Rebuild 5 library-reach composites left stale by the parallel build (all-people-groups, cities-internet, demo-map, gospel-internet, prayer-walk-planner) 2026-09-30 05:28:47 +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