doxa-maps/plugin-designs/regions-dashboard
Doxa Maps 520973c1d7 One country-sheet definition: the Regions tab's poster was still teal
exp's second read of 1ab8524cf found a real defect on the demo path, and a census
of the tree found the cause was worse than the symptom.

THE SYMPTOM: the Regions tab printed a TEAL country poster and logged a warn,
while Country Posters printed the same country HUED. That is precisely the "two
different posters for one country" the hue change exists to refuse.

THE CAUSE: regions-list.vue:73 imported a plugin-local copy,
src/country-sheet-print.js, byte-identical to library/packet/countrySheet.js
except for the region key. The region forwarding was added to the LIBRARY file,
so countryRegionColor(undefined) returned the old flat teal and warned.

★ AND THE LIBRARY FILE HAD NO IMPORTERS AT ALL. Its own comment claimed two
consumers -- the country-poster wall and <doxa-country-map> -- and a census found
NEITHER was true: regions-list imported the local copy, and
country-poster-wall.vue:94 defines its own inline countrySheet that calls
generateCountrySheet directly (passing the whole record, which is why THAT path
was correctly hued). So the module was an orphan wearing a comment that said
otherwise, and the region key was added where nothing read it. A move that was
never finished, and the duplicate stayed invisible until one copy was edited.

regions-list now imports the library module, the copy is deleted, and the
comment says what is true. Not re-copied: a duplicate of that file is
indistinguishable from it until one side is edited, and then it is a silent
divergence.

CHAIN VERIFIED TO SOURCE, since the hue is only right if the region survives
every hop: POSTER_BY_ISO3 holds country-posters.json records, which all carry a
region; localisedPoster SPREADS the record in both its branches, so the key
survives a locale switch; postersFor passes it; makeCountrySheet forwards it.
ARTIFACT PROOF: the region forwarding in the rebuilt regions-dashboard bundle
goes from 1 occurrence to 2, and POSTER_REGIONS plus the full region-name list
are present in it.

The no-poster fallback branch in postersFor still builds an object without a
region, deliberately: it has no sheet to draw, and it already carries
unsupportedReason.

NOTE ON HISTORY, not rewritten: f6a3f85a2 is titled "Rebuild the three
consumers…" but it also carries SOURCE changes -- the ink .pin-num-bg in the
shared renderer and the warn-once in posterSheets.js. The title understates it.
It is pushed, so it stands; recorded here instead.
2026-09-29 20:55:27 +00:00
..
scripts Keep the reason, drop the speaker, in the four capitalised comments 2026-09-29 10:51:10 +00:00
src One country-sheet definition: the Regions tab's poster was still teal 2026-09-29 20:55:27 +00:00
dxlife-tokens.js Port their base line-height (1.5); our 1.1 override was compensating for its absence 2026-09-26 05:33:12 +00:00
index.html Regions element gets the Select View tabs, shared with UPG-100 2026-09-23 19:08:00 +00:00
index.js Repair what the union resolution duplicated 2026-09-29 16:01:45 +00:00
region-dashboards.meta.json Regions: the selected page is now an exact clone; the chooser is the one addition 2026-09-24 00:59:10 +00:00
region-dashboards.vue The three Regions roots resolve against their own host box, not the page 2026-09-29 14:38:56 +00:00
regions-list.meta.json Regions: the selected page is now an exact clone; the chooser is the one addition 2026-09-24 00:59:10 +00:00
regions-list.vue One country-sheet definition: the Regions tab's poster was still teal 2026-09-29 20:55:27 +00:00
regions-mfe.meta.json Keep the engineering reason, drop the speaker: 31 Driver references to 0 2026-09-29 03:46:37 +00:00
regions-mfe.vue Track every pane's getter, prune detached ones, and say when one throws 2026-09-29 17:32:33 +00:00