A page's own reduced-motion reset never crosses a shadow boundary, so library components rendered inside custom elements slid, faded and spun for readers who asked for less motion: thirteen of them, including the legends and map controls (regions-plugin found it on ProgressBar and named the class). useShadowStyles now injects one prefers-reduced-motion reset into each shadow root it styles, which covers every component styled through it, including later ones. PosterDialog, FilterDropdown and SearchFilterHeader style themselves with <style> blocks and carry their own guard. check:shadow-reduced-motion (in gates:pre): useShadowStyles must inject the reset, and every animating library component must be covered. It fails without the reset (negative-tested) and found the three <style>-block components on its first run. |
||
|---|---|---|
| .. | ||
| slots | ||
| PosterDialog.vue | ||
| PosterPreview.vue | ||
| PosterWall.vue | ||
| README.md | ||
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 byuseMapPoster(). - Page sizes:
library/constants/posterSizes.js. Defaults:library/constants/posterDefaults.js.
Full wiring + slot contract: ../../../documentation/architecture/components.md.