Commit Graph

83 Commits

Author SHA1 Message Date
oleh 6fc8c29b50 Image export: surface rasterize/serialize failures instead of reporting 'not ready' 2026-06-14 20:39:10 +03:00
oleh 91b8b1e7fe Theme Builder: Layout/Axes/Legend/Type panels, scheme-render fix, fail-loud gallery 2026-06-14 13:08:29 +03:00
oleh b03c3b08ab Chart fonts: self-hosted roster + document.fonts.load render gate 2026-06-14 13:08:16 +03:00
oleh df6a0b3845 ColorField: shared color-input primitive, Theme Builder + Chart Builder migration 2026-06-14 11:02:20 +03:00
oleh 236b1c8a37 Chart tooltip: app-owned token styling, drop vega-tooltip's default sheet 2026-06-14 01:25:58 +03:00
oleh e4d1466ab0 Theme Builder: structured color/type controls, scheme catalog, diverging preview 2026-06-14 01:25:44 +03:00
oleh 0470389b41 Chart builder: intent front door, Heatmap mark, role-aware guidance 2026-06-13 12:08:11 +03:00
oleh 4e5108f434 Snippet naming: content-derived on publish, frozen on explicit rename 2026-06-13 10:13:57 +03:00
oleh 92bfe888b5 UX second pass: icon-only header, pane-toggle cue, schema columns, facet cleanup 2026-06-13 10:13:40 +03:00
oleh e0806bf3db Quiet fields: base.css field baseline, --field tokens, 3:1 border-strong, app-wide migration 2026-06-13 00:06:33 +03:00
oleh b8f0b97f22 Chart builder: equal shelf heights, pill floor, flat field rows, scroll affordance 2026-06-12 23:13:26 +03:00
oleh 7d4906ec38 Control scale: Button/IconButton primitives, two-height tokens, app-wide migration 2026-06-12 23:13:13 +03:00
oleh d1ba921141 SelectControl: 32px trigger scale + option-group divider in the theme picker 2026-06-12 21:46:53 +03:00
oleh ca70b3e491 Chart builder: discoverable entry points — Build Chart door, dataset picker, no-datasets state 2026-06-12 21:46:25 +03:00
oleh dbb4522d78 Workspace transfer: custom themes ride the export/import envelope 2026-06-12 21:45:44 +03:00
oleh 9a8b44380d Services: delete dead RelationshipService; rename persistence to snippet-persistence 2026-06-12 19:46:14 +03:00
oleh 538882b342 Modal system: break import cycles — component map moves to the shell 2026-06-12 19:45:50 +03:00
oleh 91b6e102eb Pane handles: extract shared useColResizeDrag pointer gesture 2026-06-12 19:42:24 +03:00
oleh 20d593a6a3 Popovers: extract shared usePopover hook; SettingsPopoverStore becomes PopoverStore 2026-06-12 19:40:35 +03:00
oleh 0e225d7d5c Eng-council sweep: export hygiene, dead code, helper dedup, declare vega-expression 2026-06-12 19:39:54 +03:00
oleh 0baac3c64b Editor: Extract Config to New Theme as a third Config action 2026-06-12 18:16:15 +03:00
oleh b193464f55 Chart theming: custom named themes + Theme Builder 2026-06-12 18:15:54 +03:00
oleh 44a601affd Chart theming: selectable chart theme + spec↔config merge/extract 2026-06-12 16:48:48 +03:00
oleh fe9d588103 Sort control: open with focus on the checked option, not the first 2026-06-12 14:45:45 +03:00
oleh ed66fe9c05 Chart builder: SelectControl pickers, channel chooser, per-type aggregates 2026-06-12 14:45:31 +03:00
oleh 4dcff4601d Chart builder: field-first shelf + value-or-field channels 2026-06-11 23:56:40 +03:00
oleh 9ebe398e75 Onboarding: re-fit container-width thumbnails on resize 2026-06-11 19:28:27 +03:00
oleh 1de8682b61 Datasets: make preview scroll region keyboard-reachable 2026-06-11 19:28:12 +03:00
oleh 2a0b4794df Chart builder: fold render diagnostic behind a disclosure 2026-06-11 19:27:03 +03:00
oleh 181b9da8ab Datasets: URL→inline conversion drops url/fetchedAt 2026-06-11 19:26:47 +03:00
oleh fe2b039698 Remote datasets: cap fetch body size 2026-06-11 19:21:51 +03:00
oleh 983c052f3b Chart builder: escape ./[/] in built field names 2026-06-11 19:21:28 +03:00
oleh d666599a58 Chart builder: drop unparseable expressions mid-edit, polite glyphed inline feedback 2026-06-11 16:08:03 +03:00
oleh 05df0cd7d3 Chart builder: filter/calculate transforms, data preview, and inline expression validation 2026-06-11 13:01:23 +03:00
oleh 1791ee9f8d Per-chart export: copy/download spec and PNG/SVG from the preview header 2026-06-10 18:30:31 +03:00
oleh 62d0697f0e Chart builder: data-aware defaults, one-click hint fixes, canvas preview, fullscreen modal 2026-06-10 17:10:18 +03:00
oleh 68a044752f Refine header emphasis, field-on-layer treatment, and narrow-pane control collapse 2026-06-10 14:14:02 +03:00
oleh 2410c6e965 Snapshot URL datasets locally on add; preview tabular data as a table 2026-06-10 10:24:42 +03:00
oleh 7599acd25e Redesign the Storage Monitor as a storage-composition breakdown (snippets · datasets · app) 2026-06-10 01:32:22 +03:00
oleh 3c053310ac Re-split library and preview when the editor is hidden; remember the editor's width 2026-06-09 23:54:20 +03:00
oleh 81f563a3e7 Replace the first-run placeholder seed with an onboarding canvas 2026-06-09 14:03:47 +03:00
oleh 7d247e8d2c Track datasetRefs against the live draft so manual edits and extract link immediately 2026-06-07 23:54:01 +03:00
oleh cdd5cf149f Emit pane aria-controls only while the pane is mounted 2026-06-07 23:11:32 +03:00
oleh 1d7798abc5 Serialize live-preview renders to prevent concurrent embeds (M3) 2026-06-07 23:08:56 +03:00
oleh 5ea2a0d038 Make DatasetStore the collision-free id authority 2026-06-07 23:05:51 +03:00
oleh 1cad9ba140 Extract reverse-lookup scan to core/relationships (one shared impl) 2026-06-07 23:04:20 +03:00
oleh 39555322e4 Profile per-column cardinality and extent; add data-aware chart warnings (M4, A3/A4) 2026-06-07 23:03:17 +03:00
oleh d94480f56d Wire SW update prompt and request persistent storage (M6, web.dev) 2026-06-07 20:39:07 +03:00
oleh 5dc5ef8724 Add durable toasts with an inline action button 2026-06-07 20:37:55 +03:00
oleh 123f1498b4 Add About & Privacy and Donate modals (M6, §01) 2026-06-07 20:04:08 +03:00