doxa-maps/library/components/poster
doxa-maps-88655c70 87bd98d610
Some checks are pending
build-gate / build (push) Waiting to run
Restore the clickable poster preview — the last capability the migration dropped
Migrating my-upg-100-list onto the shared wall left one behind, and it was not
decoration: clicking the poster preview opened it for printing, a Driver-named
behaviour ("show the poster in the browser to help print it"). I removed it, so
this is a regression I introduced and am closing.

previewAction: 'none' | 'print'. Default 'none' keeps the image inert, which is
exactly what country-posters and key-cities render today.

★ IT IS A KEYBOARD CONTROL, NOT JUST A CLICK TARGET. The original carried
role="button", tabindex="0" and Enter/Space handlers alongside @click. Re-adding
the click alone would have been a half-restoration that LOOKS complete — an <img>
with only @click is unreachable without a mouse, and the focus-visible outline is
how a keyboard user sees where they are on a control that is otherwise a picture.
The alt and title change with the mode too: "prayer poster" and "click to preview
and print" are different promises to a screen reader.

buttons.previewPrintPoster added to all eleven locales in the same change;
check:i18n-parity still reports 0 keys of debt.

VERIFIED AT THE RENDERED LAYER, and exercised BY KEYBOARD rather than by mouse:
  100-list (preview-action="print") — 27 previews, is-clickable, role=button,
  tabindex=0, cursor zoom-in, translated title, descriptive alt. Focused the image
  and dispatched ENTER: 1 print frame opened, 0 downloads, 0 errors, with every
  .webp ABORTED so it ran through the rasterise fallback.
  country-posters (default) — 174 previews, is-clickable false, role null,
  tabindex null, original alt. Inert exactly as before.

That completes the consolidation: my-upg-100-list 890 -> 179 lines, and all four
walls now render from one 633-line component with nothing left unported.
2026-09-24 10:02:22 +00:00
..
slots consolidate docs into documentation/ and deployment shells into deployment/ 2026-09-21 23:23:23 +00:00
PosterDialog.vue Checkpoint the swarm's in-flight work 2026-09-22 21:42:18 +00:00
PosterPreview.vue doxa-maps — portable bundler for embeddable JAMstack maps 2026-09-10 01:53:07 +00:00
PosterWall.vue Restore the clickable poster preview — the last capability the migration dropped 2026-09-24 10:02:22 +00:00
README.md consolidate docs into documentation/ and deployment shells into deployment/ 2026-09-21 23:23:23 +00:00

library/components/poster/ — poster export UI

The dialog and preview surfaces that turn a live map into a printable poster. Used by research-map.vue.

  PosterDialog.vue   ← pick size, orientation, title → export
  PosterPreview.vue  ← live preview, updates as you change settings
  PosterWall.vue     ← grid of poster previews
  slots/             ← the composable regions of a poster (own README)
        fed by useMapPoster() · sizes from constants/posterSizes.js
  • Open/close state comes from inject('uiStore'); the preview is fed by useMapPoster().
  • Page sizes: library/constants/posterSizes.js. Defaults: library/constants/posterDefaults.js.

Full wiring + slot contract: ../../../documentation/architecture/components.md.