doxa-maps/library
Doxa Maps c21bcd2e13 Share this page never copies a token; neutral wording in the P3 comments
pageLink() drops ?tk= from the page's address: a leaf page reads a token from
there and leaves it in place, so pressing Share would have sent it. The URL is
rewritten only when tk is present; every other link is the address as it stands.
The comments name the page, not who measured it, and no longer cite a request.
check:map-menu-anchor strips a same-line comment before testing each return, so
a fallback named only in a comment no longer passes.
2026-10-03 06:18:57 +00:00
..
api
charts Two gates the branch backlog turned red 2026-09-29 14:55:35 +00:00
colors
components Share this page never copies a token; neutral wording in the P3 comments 2026-10-03 06:18:57 +00:00
composables useViewAddress: say which writers share commitUrl, and why a push copies the router's state 2026-10-03 05:23:18 +00:00
constants Poster sizes: the ladder offers eight sizes (paper, 18x24, 36x36, 36x48, 36x60, 36x66, 66x66, 60x96) 2026-09-30 23:49:05 +00:00
dashboards Docs: "reusable by default" in the library guides, and Deep Research by its name 2026-10-01 08:27:04 +00:00
data Print files: a stale cached copy of a pinned file is fetched once more, fresh 2026-10-02 19:05:37 +00:00
elements Poster section element: card-action="dashboard" turns each card's sticker into Show dashboard and dispatches dxm-poster-dashboard for the host (absent keeps Show on map) 2026-10-02 12:43:50 +00:00
i18n Share opens on "Share this page"; Embed is its own tab; a header menu opens beside its button (shareable pages P3) 2026-10-03 06:05:46 +00:00
layouts The plugin is 'UPG100 Posters', x11 (the series stays 'UPG100 List'), and every spaced 'UPG 100' label becomes 'UPG100' 2026-10-02 21:48:33 +00:00
lists
maps Source comments state design history and measurements as facts, without quoting or naming anyone 2026-10-01 00:37:17 +00:00
packet Merge commit '1d8f5f1cc' into poster-design-plugin/experimental 2026-10-03 05:10:30 +00:00
packets
print
scripts UPG100 packet: full-width life charts, a shorter page-1 strategy, self-fitting points 2026-10-03 00:20:58 +00:00
stores
styles
utils Merge remote-tracking branch 'origin/development' into upg100/pg-names 2026-10-01 13:25:01 +00:00
vendor/cldr
index.js
ProfileLoader.vue Host floor: one module, a latch for a max-height host, and a gate that pins measure-once 2026-10-02 10:01:46 +00:00
README.md

library/ (@map) — the shared map template

The other half of the architecture (see ../plugin-designs/README.md): every map in plugin-designs/<your-map>/ composes the reusable, parameterized pieces that live here. Fix something here and every map benefits on the next build; break something here and every map breaks — read components/WARNING.md before touching shared pieces.

Folder What lives there
ProfileLoader.vue The root of every bundle: parses profile-config, loads the profile, provides the stores + config
components/ Shared UI — map, legends, controls, popup (PeopleGroupDetail), tables, charts, hints (README)
composables/ Shared logic — map engine (useMapInstance), provider switch, shadow-DOM styles, theming
stores/ Per-instance Pinia stores (ui / map / data) — provided by ProfileLoader, injected by children
api/ Data-source registry (sources.json) + fetch layer — the JAMstack runtime wiring
colors/ Color sets maps opt into via profile-config.colorSet
i18n/ The shared string catalogs (all maps speak the same languages)
data/ Small shared datasets baked at build time (big served data lives in ../data/)
constants/ Shared constants
scripts/ Maintainer pipelines (posters, research) — not part of any bundle

The rule of thumb (same as WARNING.md): custom code in your app-profile, reusable code here — and things only move from the first to the second once they've earned it.