tevans
e648c17e79
refactor: dedupe art-tray thumbnail template; test real escaping path
2026-07-20 15:47:06 +01:00
tevans
13c71c5aae
feat: <art-tray> pencil-art library search UI with HTML escaping
2026-07-20 15:38:47 +01:00
tevans
5bdeef654e
refactor: shared escapeHtml util; escape prop-viewer src/alt
2026-07-20 15:35:57 +01:00
tevans and Claude Opus 4.8
9a5e4c4ce4
feat: <prop-viewer> fullscreen prop overlay
...
Implements fullscreen image overlay component for displaying art to players.
Methods: show(src, label), dismiss(), isOpen(). Starts hidden. Clicking
overlay dismisses. Strict TDD: 3 tests passing.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-20 15:30:56 +01:00
tevans
f61eb48038
fix: HTML-escape seed + NPC fields in <npc-tray> to prevent markup breakage
2026-07-20 15:21:59 +01:00
tevans
cb86a780b9
feat: <npc-tray> seed-to-character generator UI
2026-07-20 15:17:30 +01:00
tevans
1348048d50
feat: <gm-shell> wiring, styles, and AFTERIMAGE boot
...
Adds the gm-shell root element that owns store/clock/stamps/scenario,
mounts director-rail and dice-tray, handles reached (stamp + persist)
and open-tool (toggle dice tray), and boots the AFTERIMAGE scenario in
main.js. Also adds tests/setup.js + a vite.config.js setupFiles entry:
Node's newer built-in global `localStorage` shadows jsdom's per-window
implementation in vitest's jsdom environment, leaving localStorage
undefined in tests until replaced with a real jsdom-backed instance.
2026-07-20 14:15:50 +01:00
tevans and Claude Opus 4.8
549cb190d2
feat: <dice-tray> roller wired to rule-packs
...
Implement Task 10: dice-tray Web Component with:
- Polyhedral die picker (d4-d20, d100)
- Deterministic roll() using injected RNG
- Rule-pack interpretation for successes/ones/verdict
- Event emission on roll completion
- Reactive rendering on die type/count change
TDD: 3 passing tests (picker render, roll+interpret+verdict, die-type switching)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-20 14:05:52 +01:00
tevans
579dea996d
feat: <director-rail> pacing component
2026-07-20 14:01:51 +01:00