doxa-maps/plugin-designs/country-posters
Doxa Maps 99816626af Every shadow stylesheet gets its own label, and a gate keeps it that way
useShadowStyles keys its <style> by the label and overwrites an existing
tag with the same key, so two components sharing a label keep only the
last one's CSS in a shared shadow root. The regions list lost its sheet
this way to the region card, which had kept the list's label when it was
extracted.

check:shadow-style-labels-unique (gates:pre) fails any label two calls
share, globally rather than per shadow root, so a copied or forked
component is caught when it is copied. It reads the real parsers,
classifies every reference to the function (a rebinding, .call, a
re-export or a namespace import fails instead of hiding a call),
cross-checks the AST against the token stream, and covers the other
ways two calls share a key: unlabelled calls under the dev server's
per-component key, and a fixed label over CSS that varies per caller.

countries-map.vue, a fork of research-map.vue, carried the same label;
it is now 'countries-map', with the country-posters bundle rebuilt and
the tree regenerated. The composable's JSDoc called the label a
debugging name; it now says it is the key.
2026-09-29 17:42:44 +00:00
..
assets/previews Rename app-profiles -> plugin-designs; build green under new naming (load-bearing paths updated, guards pass) 2026-09-17 18:18:18 +00:00
countries-map.meta.json Country posters and Prayer Progress: every profile has a name in the manifest 2026-09-28 07:33:23 +00:00
countries-map.vue Every shadow stylesheet gets its own label, and a gate keeps it that way 2026-09-29 17:42:44 +00:00
country-poster-wall.meta.json Country posters and Prayer Progress: every profile has a name in the manifest 2026-09-28 07:33:23 +00:00
country-poster-wall.vue Name each Country Posters card in the reader's language 2026-09-29 09:10:27 +00:00
country-posters-mfe.meta.json Keep the reason, drop the speaker, in the UPG-100 and Country Posters plugins 2026-09-29 09:10:26 +00:00
country-posters-mfe.vue Keep the reason, drop the speaker, in the UPG-100 and Country Posters plugins 2026-09-29 09:10:26 +00:00
index.html Session work: strobe fix, grid layout, stacked tree legend, selection camera, chip bounding, asset inheritance, gates 2026-09-20 04:49:25 +00:00
index.js Repair what the union resolution duplicated 2026-09-29 16:01:45 +00:00