doxa-maps/library
Doxa Maps e6f778b1a4 Poster Design: draw India at 5.5 x 5.5 ft and 3 x 5 ft too
countrySheet.js now lets a requested side-lane format win over a large
country's default sheet, so the shared path draws India at 66x66 and
36x60 as well as 60x96. The two cards that were listed but not drawn now
draw the real whole-India poster at their own size, and the note that
said no country printed at those sizes (missing.largeFormat, 11 locales)
is removed: nothing refers to it.
2026-10-01 06:06:36 +00:00
..
api
charts Two gates the branch backlog turned red 2026-09-29 14:55:35 +00:00
colors
components PosterWall: sectionItemCountKey, so one section can be counted in its own words 2026-10-01 05:10:55 +00:00
composables CSV exports: a value starting with TAB or CR is neutralised too, and the gate asserts it 2026-09-30 21:09:29 +00:00
constants
dashboards
data WIP P0b: India's states and union territories table (derived from admin-membership, served as an asset, sha384-pinned in the same emitter run), its loader, the tree allowlist row, and check:india-states (not yet registered) 2026-09-30 21:17:28 +00:00
elements
i18n Poster Design: draw India at 5.5 x 5.5 ft and 3 x 5 ft too 2026-10-01 06:06:36 +00:00
layouts Research Gallery: a "Back to homepage" link above Collapse, and the poster rows in Prayer Mobilization 2026-09-30 20:16:15 +00:00
lists Merge branch 'bundler-2/driver-1650' into bundler-2/handoff 2026-09-29 14:50:44 +00:00
maps Merge branch 'bundler-2/whiteboard' into bundler-2/handoff 2026-09-29 14:50:39 +00:00
packet poster-render: side-lane CSS adds no byte to other formats; photos only from the known photo hosts 2026-10-01 06:03:48 +00:00
packets
print
scripts A poster series for India's states and union territories; series-isolation sees shared wording and poster text correctly 2026-09-30 23:33:34 +00:00
stores A collapsed legend reopens itself after you close a people-group detail 2026-09-29 11:56:47 +00:00
styles
utils Move four identical bodies into the library 2026-09-29 09:19:04 +00:00
vendor/cldr
index.js
ProfileLoader.vue Drop the country-map poster wall: +292 KB on every country page 2026-09-29 16:10:00 +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.