Commit Graph

118 Commits

Author SHA1 Message Date
oleh 693f5d7073 Fix dataset-ref walk false positive and wire spec-mandated success toasts
- Prune the data payload and top-level datasets keys in all three ref walks
  (extractDatasetRefs, renameDatasetInSpec, resolveDatasetRefs) so a data row
  carrying a field named "data" is no longer misread as a library reference,
  spuriously rewritten, or made to throw DatasetNotFoundError. Adds tests,
  including a guard that lookup-transform refs (from.data) still resolve.
- Wire the deferred success toasts now the Toaster has landed: publish, revert,
  extract-to-dataset, and snippet/dataset delete. Copy follows the council
  title-vs-message rule (title states the action, message adds the consequence).
- Reconcile the spec's blanket toast mandate to "toast only what the user can't
  already see": no toast on visible-result creates (snippet, dataset form);
  Copy Reference stays inline and gains an aria-live announcement (new shared
  .visually-hidden utility) instead of a toast-per-copy.
- Move the toast region to bottom-right so it stops covering the header action
  cluster (Publish/Revert, theme/datasets).
- Update docs/spec 01F/02/05 and docs/architecture/07 + 10 to match.
2026-06-05 16:34:58 +03:00
oleh a4e4d96d3b Add dataset library, extract-to-dataset, and render-time reference resolution 2026-06-05 15:49:40 +03:00
oleh ad239d7d49 Show size and a draft indicator in snippet-library rows 2026-06-05 14:11:00 +03:00
oleh cc0814a596 Unify segmented controls on a shared module with grey selection 2026-06-05 13:41:29 +03:00
oleh 0f8738cd0c Fix draft-dot alignment by floating it into the card gutter 2026-06-05 13:41:25 +03:00
oleh 109c33e2cd Add app-shell heading and skip link (WCAG 2.4.1 / GOV.UK) 2026-06-05 12:58:54 +03:00
oleh 38c2ac15c2 Backfill interactive-control accessibility against the council (APG) 2026-06-05 12:58:32 +03:00
oleh 8ef749c2d0 Report pane resize handle size to assistive tech (APG window splitter) 2026-06-05 12:33:19 +03:00
oleh 3839f92f1d Add notification toasts and surface persistence failures instead of failing silently 2026-06-05 11:19:50 +03:00
oleh c50f141d57 Add resizable panes with drag handles, min widths, and persistence 2026-06-05 10:46:07 +03:00
oleh 411bfbc6c2 Implement fit-mode rendering contract with container sizing and pane re-fit 2026-06-05 10:45:41 +03:00
oleh f4253f50ca Add draft/published editor workflow with publish, revert, and dirty indicator 2026-06-05 10:45:09 +03:00
oleh 7d7034ef1a Add in-app confirmation dialog replacing window.confirm 2026-06-05 02:28:37 +03:00
oleh 0c7297624e Format entire codebase with Prettier (mechanical, no behavior change) 2026-06-05 01:43:28 +03:00
oleh 939950b136 Add ESLint + pre-commit hook and fix the issues it surfaced 2026-06-05 01:42:42 +03:00
oleh 22f0556ef8 Implement M1.5 visual design foundation: tokens, IBM Plex, theme toggle, chart themes 2026-06-05 01:29:10 +03:00
oleh ca54bb66b1 Implement M1 authoring loop: library, editor, live preview, persistence
M1 MVP from docs/IMPLEMENTATION-PLAN.md, with the /alignment pass applied.

- core: Snippet model + factory; prepareSpecForRender (copy-not-mutate); per-theme Vega chart config
- state/orchestration: SnippetStore with debounced auto-save; IndexedDB adapter + read-time migration; startup hydration + write-through persistence
- ui: SnippetLibrary, SpecEditor (Monaco edcore.main — full editor features, JSON-only languages), LivePreview
- build: Monaco/Vega manual chunks; raised PWA precache ceiling
- alignment: flush a valid draft on snippet switch (+regression tests); TODO breadcrumbs for the preview render race and the window.confirm delete
- housekeeping: gitignore .claude/projects/
2026-06-05 00:16:24 +03:00
oleh 056644450c Initial scaffold: spec, architecture playbook, and M0 skeleton 2026-06-04 22:14:33 +03:00