Commit graph

1839 commits

Author SHA1 Message Date
Doxa Maps
75e581019e UPG-100 packet page 1 is the full UPG-100 poster: the letter sheet with its title, scripture banner, three-column header and footer, generated at the click
generateSheet gains `sparse` (default: every format but 'packet', so every existing caller is unchanged);
the UPG-100 zone sheet answers the packet's 'packet' request with the full letter poster, the same
1500x1941 page. check:poster-browser-equiv compares that sheet with Node's letter format without SPARSE.
2026-10-02 19:44:34 +00:00
Doxa Maps
d329a3a612 Posterverse: the Bless India Posters rail label is the plugin's own title
The rail row now uses the plugin's own title in all 11 locales, copied from its
catalogue (blessIndiaPosters.title), so the rail and the plugin name it the same
way. Copied rather than read at runtime: naming that catalogue area from the
shell would ship the plugin's whole catalogue inside posterverse.js.
check:posterverse-shelf arm F asserts the two stay equal in every locale; its
self-test plants a drifted label.
2026-10-02 19:08:38 +00:00
Doxa Maps
6e6afb1499 Research Gallery: a short rail name for Gospel × Internet in 11 languages
The Experimental row showed the titleized id ("Gospel Internet") in every
language: tabLabel() translates a discovered tab only when strings.js has
'tab.<id>', and the manifest carries no title. Add 'tab.gospel-internet'
after 'tab.bless-india-posters' in each locale, with the plugin's own
strings. Rebuilt the gallery bundle; it differs from the pilot's only by
these 11 strings.
2026-10-02 18:45:39 +00:00
Doxa Maps
fc946bd5fe Merge development into repo/p2-neutral (built files from development; rebuilt next) 2026-10-02 18:13:27 +00:00
Doxa Maps
d63951cf39 Merge remote-tracking branch 'refs/remotes/origin/development' into deep-research/bless-india-label 2026-10-02 18:08:26 +00:00
Doxa Maps
421a13edc8 Gallery: Bless India Posters' Experimental row takes the plugin's own title in every language 2026-10-02 17:44:16 +00:00
Doxa Maps
db1c1da808 Localize the poster header per locale (phrase, not scripture)
The poster sheet's own header 'Bless India in Jesus' name' printed in
English for every reader. It's a phrase, so add a posterHeader key x11
and pass the reader's-locale header to the generator. The footer verse
stays the English PD blessing until the strict-PD per-locale sourcing
lands. Verified: ar poster header = باركوا الهند باسم يسوع.
2026-10-02 17:33:17 +00:00
Doxa Maps
6cd0a8b73c Localize Bless India plugin UI in all 11 locales + RTL
The plugin's own page chrome (title, intro, buttons, stats, notes) was
English in every locale, and in RTL shells its full stops jumped to the
start. Add the page strings to blessIndiaPosters.json x11, look them up
from the reader's locale (profile-config from the shells; ?lang / <html
lang> on the standalone leaf), set dir=rtl for ar/he/fa/ur, and format
counts via the locale. Verified: ar leaf draws dir=rtl with the Arabic
title; en draws dir=ltr.
2026-10-02 17:22:33 +00:00
Doxa Maps
44ca332b65 Merge remote-tracking branch 'origin/development' into reg-post/bless-india-posters 2026-10-02 16:53:19 +00:00
Doxa Maps
824a7ef2c2 Fix Bless India asset base: resolveAssetsBase(profileConfig) not runtime deriveTreeBase
deriveTreeBase() called inside build() returned '' (document.currentScript is
null by then), so the India boundaries loaded from /assets (the host's HTML
page) and the poster failed with 'Unexpected token <'. Use the house helper
resolveAssetsBase(profileConfig): the shells pass an absolute assetsBase, and
the standalone leaf falls back to the bundle's own tree root (import.meta.url,
captured at load). Verified: the leaf draws the 3-sheet poster, 0 errors.
2026-10-02 16:52:55 +00:00
Doxa Maps
6d4ce5129b Posterverse: Bless India Posters is in the tree, so composes declares it
The bless-india-posters bundle is now on the pilot branch, so its Experimental
row is no longer provisional and posterverse.meta.json composes it.
2026-10-02 16:40:24 +00:00
Doxa Maps
00dbf9a79b Posterverse: a Bless India Posters row in Experimental, and unpinned mounting for scroll pages
The Experimental folder gains a bless-india-posters row, provisional until
its bundle is in the tree (a missing bundle prunes the row, so nothing shows
before it lands), with its label in all 11 locales. Its root is a
natural-height page of poster cards, so a row may set scroll: the element is
then mounted unpinned at its natural height and the pane scrolls it, instead
of being pinned to the pane, which would trap the page's own content.
check:posterverse-shelf expects the row and the scroll set by name; its
self-test drops the row and drops the flag.
2026-10-02 16:40:24 +00:00
Doxa Maps
01197e2121 Merge remote-tracking branch 'refs/remotes/origin/development' into deep-research/bless-india-shelf 2026-10-02 16:35:57 +00:00
Doxa Maps
174385d75e Gallery: Bless India Posters mounts at natural height when it joins Experimental 2026-10-02 16:27:53 +00:00
Doxa Maps
bffde832f5 Merge remote-tracking branch 'origin/development' into reg-post/bless-india-posters
# Conflicts:
#	public/README.md
#	public/dx-maps/doxa-maps-spa/manifest.json
#	public/dx-maps/manifest.json
2026-10-02 16:25:55 +00:00
Doxa Maps
c25bcf4f5c Add Bless India Posters plugin (generative, experimental)
A public preview plugin for the whole-India poster: every India people
group on one printable sheet, generated live from the current data
(nothing stored) and shown as its printable sheets with the glue strips.
Each poster carries the blessing — header "Bless India in Jesus' name"
and the Aaronic blessing (Numbers 6:24-26), switchable.

Generates with the plugin's own copy of the renderer; shows the sheets
via the shared PanelSheets and prints as a document at true size.
Public and experimental; a phone sees the preview but Print is blocked
(desktop only) until a design is proven phone-safe. Registers the
blessIndia poster type for the catalogue; label translated in 11
locales. Replaces the earlier India Posters review draft (not landed).
Element <bless-india-posters>.
2026-10-02 16:22:30 +00:00
Doxa Maps
ebbee89eea Merge development into repo/p2-neutral 2026-10-02 15:49:50 +00:00
Doxa Maps
6d89e6b8ce Merge commit '85c27e94f7d349722e1ade77fc17b71baf450aab' into poster-design-plugin/catalogue 2026-10-02 13:17:10 +00:00
Doxa Maps
86ade3356d Merge commit '56571a9bd72d6470514c34d71982f63e290125f3' into poster-design-plugin/catalogue 2026-10-02 13:11:33 +00:00
Doxa Maps
85c27e94f7 Merge remote-tracking branch 'origin/development' into regions/card-action 2026-10-02 13:04:01 +00:00
Doxa Maps
c9a494024b Merge commit '3cb185da1f299194b8c9940abc9e81503d855d77' into poster-design-plugin/catalogue 2026-10-02 13:00:56 +00:00
Doxa Maps
4e60f35ea9 Merge remote-tracking branch 'origin/development' into regions/card-action 2026-10-02 12:53:44 +00:00
Doxa Maps
8931f6a28c Merge remote-tracking branch 'refs/remotes/origin/development' into deep-research/manifest-revalidate
# 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-10-02 12:47:06 +00:00
Doxa Maps
ea8a74b350 check:poster-section covers card-action, with poisons for an ignored attribute and an event that cannot leave the shadow root 2026-10-02 12:43:51 +00:00
Doxa Maps
3cb185da1f Merge remote-tracking branch 'refs/remotes/origin/development' into deep-research/poster-sections-not-experimental 2026-10-02 12:41:24 +00:00
Doxa Maps
f9a28bde47 Merge remote-tracking branch 'origin/development' into regions/poster-sections 2026-10-02 12:31:04 +00:00
Doxa Maps
544ffed652 Posterverse: the Experimental folder starts open
Closed, the folder sat mid-drawer under the one short Posters section with
empty space below, so it read as a caption with nothing under it and was easy
to miss on a phone. Open, its plugins show like any section's rows; a reader
can still collapse it. check:posterverse-shelf asserts the open default, and
its self-test plants a closed folder.
2026-10-02 12:26:16 +00:00
Doxa Maps
6ccbe827bc check:poster-design-catalogue: poison a sample that exists but cannot be drawn
The samples arm is now a function the self-test can poison: with withholding
switched off, India (no sheet tier, no outlines) must fail as a sample that
cannot be drawn. Closes the branch the arm had no poison for.
2026-10-02 12:20:40 +00:00
Doxa Maps
2f4cabf85f Poster Design: the 66x66 and 36x60 side-lane cards get a real sample
India, the one large-sheet country, now prints at 5 x 8 ft only, so the
5.5 x 5.5 ft and 3 x 5 ft side-lane cards would have drawn India's 60x96 sheet
under their own label. They now sample the largest drawable countries (China
at 66x66, Sudan at 36x60) through the same shared sheet path, and their
details say that no country prints at this size today
(posterDesign.missing.noCountryAtSize, 11 locales). The 60x96 card keeps
India and stays withheld. check:poster-design-catalogue now checks every
sample: drawable, or withheld by countrySheet.js.
2026-10-02 12:12:18 +00:00
Doxa Maps
a4b57256ab Gallery: Poster Sections stays out of Experimental (a template plugin other plugins and sites embed) 2026-10-02 12:09:37 +00:00
Doxa Maps
0b47851a41 Merge commit '8fe8603ca2c5d42a252d3f372c9770046e924727' into poster-design-plugin/catalogue
# Conflicts:
#	package.json
#	public/dx-maps/doxa-maps-spa/manifest.json
#	public/dx-maps/manifest.json
#	public/dx-maps/poster-design/poster-design-mfe/index.html
#	public/dx-maps/poster-design/poster-design.js
#	public/dx-maps/poster-design/poster-sizes/index.html
#	public/dx-maps/poster-design/poster-styles/index.html
2026-10-02 12:07:13 +00:00
Doxa Maps
2deff898c3 Merge remote-tracking branch 'origin/development' into regions/poster-sections
# Conflicts:
#	public/README.md
#	public/dx-maps/doxa-maps-spa/manifest.json
#	public/dx-maps/manifest.json
2026-10-02 12:06:01 +00:00
Doxa Maps
c590e9fef4 Gallery: after a deploy, a returning reader runs the new bundles, not stale cached copies
A host that serves the tree with Last-Modified and no Cache-Control lets a browser run its cached files for
hours. Measured: a typed-URL revisit after a deploy requested none of the gallery, the manifest or the bundles,
so a returning reader ran the old files, or an old manifest against a new bundle.

- The manifest is fetched with cache 'no-cache', so it is always revalidated (a 304 when unchanged).
- A fingerprint of the manifest (every bundle's integrity) is kept per tree. When it differs from the reader's
  last visit, every bundle the browser already holds gets one conditional request before any tab mounts:
  a 304 refreshes it, and a 200 is cancelled at its headers, which drops the stale copy. The plain <script>
  that follows, the gallery's own or a composite's for its children, then runs the new file at the same URL.
- A version query is not used: loadScriptOnce keys its registry by the full href, so X.js?v= next to a
  composite's plain X.js would run the bundle twice.
- A first visit with an empty cache costs nothing extra (only-if-cached finds nothing held), and so does an
  ordinary visit with an unchanged manifest. The mount waits at most 8 s for the check.
2026-10-02 11:39:17 +00:00
Doxa Maps
813dbb73d1 Merge commit '1bddf78a676b33782e5c7e54890497dc39f235f5' into poster-design-plugin/poster-sections 2026-10-02 11:34:59 +00:00
Doxa Maps
fc5b26ace9 check:country-sheet-one-path self-test: the Regions-list phone-block poison runs only while the list draws its own sheets 2026-10-02 11:31:18 +00:00
Doxa Maps
cd31ec1dfd Merge remote-tracking branch 'origin/development' into regions/poster-sections
# Conflicts:
#	plugin-designs/country-posters/scripts/check-poster-section.mjs
#	plugin-designs/regions-dashboard/regions-list.vue
#	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/country-posters/poster-section/index.html
#	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-10-02 11:19:59 +00:00
Doxa Maps
50266ad32e Merge development (2fc9b94f0) into the India tab
# 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/country-posters/poster-section/index.html
#	public/dx-maps/doxa-maps-spa/manifest.json
#	public/dx-maps/manifest.json
#	public/dx-maps/poster-design/poster-design-mfe/index.html
#	public/dx-maps/poster-design/poster-design.js
#	public/dx-maps/poster-design/poster-sizes/index.html
#	public/dx-maps/poster-design/poster-styles/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-10-02 11:05:14 +00:00
Doxa Maps
ed0a1a57b1 Poster Sections: country presets only until another poster type can load on the page
A preset page loads only poster-sections.js, so a preset of a poster type
registered by another plugin's script (upg100-list) could only say No
posters. The generator now gives no presets to a type whose file is not on
the tree, and check:poster-sections fails on any such preset: 9 presets
remain (7 regions, all regions, configure).

The tree generator writes a page per preset but never deletes one, so the
dropped presets' pages (the 10 upg100 ones and countries-other) are removed,
and a new arm holds the built preset pages to exactly the presets.
2026-10-02 10:56:43 +00:00
Doxa Maps
40cfb1da68 Add India Posters review plugin (preview-only)
A review gallery for the whole-India poster challenge — fitting every
India people group on one printable sheet. It gathers each design
attempt with what was tried and the measured result, and lets a
reviewer label it, score it 1-10, and tag it a best practice or one to
avoid (saved locally, exportable as JSON).

Withheld from every public build: the attempts, their descriptions,
and the poster documents load only under the dev server, in a dev-only
gallery module that compiles away. A production build shows only the
"solution in progress" notice and emits zero whole-country-poster
bytes. Element <india-posters>; stage experimental, visibility team.
2026-10-02 10:55:46 +00:00
Doxa Maps
dc9014bb83 check:poster-section covers min-card-px and show-header, with poisons for a dropped attribute and an unwired view 2026-10-02 10:38:59 +00:00
Doxa Maps
7e3023d680 Poster Sections: presets regenerated on the corrected regions, countries-other gone
The pilot's country data now places every country in a real region, so the
country type has 7 regions. gen:poster-sections-presets regenerated the list
(19 presets); check:poster-sections had failed on the stale countries-other
preset and passes now. Bundle, tree and SRI rebuilt.
2026-10-02 10:36:06 +00:00
Doxa Maps
073ee575df Merge remote-tracking branch 'origin/development' into poster-design-plugin/poster-sections 2026-10-02 10:25:29 +00:00
Doxa Maps
823b2b603b Regions list: its poster sections keep two posters a row on a phone 2026-10-02 10:07:33 +00:00
Doxa Maps
4bde3d7c90 Regions list: each region's View country posters toggle embeds the shared poster section, and one Show on map handler serves the list and the Country Posters view 2026-10-02 10:02:30 +00:00
Doxa Maps
6932bebd2c check:country-sheet-one-path accepts a Regions list that delegates to <dxm-poster-section>: the list is checked like the wall only while it calls makeCountrySheet itself, and the library country type must withhold India's rows and poster either way (arm H). 2026-10-02 09:53:06 +00:00
Doxa Maps
446ed37d1c Poster Sections: generate the presets from each poster type's own regions
gen:poster-sections-presets writes poster-sections.instances.json from each
type's scopes() (all regions, then one preset per region titled by the type's
own section title in the site's English, then configure), the same list
check:poster-sections holds the file to. Today it reproduces the 20 presets
exactly, in the data's region order; when the data's regions change, running
it is the whole fix.
2026-10-02 09:50:33 +00:00
Doxa Maps
7cd40a6e8e Pin wording: shared points and key-city clusters claim only what is certain
A pin's position is generalised, so it does not tell a reader the locality or where a group is
centred.

- pins.sharedPoint in all 11 locales and ApproxPinNote.vue's fallback: the groups sharing the point
  are named and counted ("{n} groups share this dot"); the locality claim is gone.
- keyCities map.note, map.sheetNote and list.caveat.row in all 11 locales: a cluster is of
  people-group pins, not centroids, and each pin marks a people group, not a town.
- The key-cities and languages-per-city caveats in build-tabulator-tables.mjs and in every committed
  copy of those two tables (only that one field changes), derive-city-candidates.mjs's caveat, and
  the matching comments in key-cities, name-clusters and the poster generator.
- check-approx-pin-note's pass line no longer calls pins localities. Two UI-strings baseline entries
  whose strings no longer exist in their files are dropped.
2026-10-02 09:21:54 +00:00
Doxa Maps
a56e775bf8 Pin wording: a dot marks a people group, not where it is found
Locations are generalised, so a dot's position is not a claim about where a people group lives.
The pin notes now say only what is certain: a dot marks a people group, not a town or a boundary,
and its position is approximate.

- pins.approximate in all 11 locales, and ApproxPinNote.vue's fallback and header.
- gospelInternet notice.pin / notice.pins / notice.standing / facet.provinceNote in all 11 locales,
  their T() fallbacks (GiDrawer, GiMap, GiFacetRail, board) and the README line. notice.pin no longer
  takes {country}. The shared-point and internet-figure clauses are unchanged.
- gospel-resources: the province sheet's English sentence, and the `approximate` notes that
  build-gospel-by-province.mjs writes into the shipped tables. Both tables and gospel-internet.json
  are regenerated: only those notes and the generated dates change, every row is identical.
- Comments and the embed README say the same. The UI-strings baseline follows the new sentence.
2026-10-02 09:16:04 +00:00
Doxa Maps
b3daa34ab1 P2 (2/2): five more lines without "design note" as a person, in the UPG-100 data scripts
clusters.json (one decision_pending value; the field is not in the built tree), retag-adm1.mjs (a
comment and a console message), search-index.js and uncovered-proof.mjs (comments) state the reason
without a persona. derive-city-candidates.mjs's safety_note no longer repeats "separate".
2026-10-02 08:51:19 +00:00
Doxa Maps
02b44a7343 No caller can open India's withheld poster: posterWithheld()/largeSheet() read the DEV-only preview themselves (no opener argument). The open preview is proved under Vite (check:poster-section C2, DEV true as on the pilot's dev server); check:country-sheet-one-path fails if an opener argument comes back. 2026-10-02 08:50:58 +00:00