Commit Graph

94 Commits

Author SHA1 Message Date
oleh 552900dac5 Build: landing/learn shed eager Monaco+Vega; post-build gate + immutable asset caching 2026-07-02 22:34:24 +03:00
oleh e42a535726 Editor: CodeLens + completion to scaffold Vega-Lite params; shared snippet core 2026-07-02 22:15:50 +03:00
oleh 87b1b98c12 Editor: CodeLens to scaffold Vega-Lite data transforms
Add a discoverable '+ Add transform' / '+ filter/aggregate/...' CodeLens in the
spec editor that scaffolds field-typed transform[] steps, with a type-to-filter
completion on the same catalog as an accelerator. New pure core
(spec-data-transforms): step-slot and view-site classification, the field-typed
catalog, and comma affixing. Deliberately the one home the schema leaves bare —
inline channel transforms and the transform key stay with the JSON schema.

Rename the composition toolbar menu Transform -> Compose so it reads distinctly
from a data transform. Deferred (recorded at their sites): extract a shared
cursor-lens skeleton across the two installers; a shared completion replace-range
helper (now 3 sites); params scaffolding as the sibling feature.
2026-07-01 15:43:48 +03:00
oleh da6a675982 Editor: Vega-Lite expression intelligence; single-home render errors 2026-07-01 05:00:47 +03:00
oleh a8696f7195 Editor: TODO to lift the wireframe drag-math into core (eng-council) 2026-06-30 17:00:51 +03:00
oleh c019660692 Editor: composition wireframe — pull-out, stacking, and simplify 2026-06-30 15:42:22 +03:00
oleh 26b383ff33 Editor: render a layer as one framed row of mark glyphs
A layer is one plotting space with several marks stacked in z-order, so it now renders as a single frame holding its child marks as a row of glyphs, badged with a new 'layers' glyph — instead of offset stacked cards that read as separate spaces and hid the lower glyphs. Each mark stays an individual treeitem, so selection and Alt+up/down z-order reorder are unchanged.
2026-06-29 14:59:01 +03:00
oleh 216797ff9b Editor: interactive composition wireframe — drag to reorder and restructure
Drag a view's box (or Alt+up/down) to reorder it within its container; drag onto another view's edge to pair the two in a new row/column, move across containers, or insert. Each leaf shows a glyph of its mark type.

Core: spec-restructure.wrapViews (wrap, with flatten-to-insert, collapse, and data-pin invariants) and spec-insert.moveViewTo; the editor applies every drag as one undoable edit via AppStore.composeRequest, keeping the editor the single text source.
2026-06-29 14:25:31 +03:00
oleh 57604a80a6 Editor: composition structure wireframe (read-only) 2026-06-29 12:39:59 +03:00
oleh 4d1825b5ff Editor: cursor-scoped Add view and reorder for composition views 2026-06-29 11:06:56 +03:00
oleh 8aa05e503d Inspector: live data updates under interactive selections 2026-06-29 09:58:32 +03:00
oleh 6656811b8e Editor: view-scoped Extract-to-Dataset for inline and self-defined data 2026-06-29 02:08:59 +03:00
oleh 8cad80f738 Inspector: multi-view data inspection with a per-table view picker 2026-06-28 22:16:59 +03:00
oleh 31458114fb Editor: spec transforms (wrap/simplify/add-view) and dataset-aware hints 2026-06-28 16:56:20 +03:00
oleh fd5c51a761 Copy: state the AI-free stance as a confidentiality benefit; record the exploration 2026-06-27 23:11:20 +03:00
oleh 43d3b480d9 Copy: pare product claims to what we can certify, cut rule-of-three cadence, record arch 10 §10 2026-06-26 23:09:47 +03:00
oleh c6ca988e40 Tests: drop change-detector component tests 2026-06-25 01:08:56 +03:00
oleh 2dce270ac7 About: acknowledge the projects Astrolabe is built on and shaped by 2026-06-25 01:08:24 +03:00
oleh d76a7a5014 Theme Builder: accordion panels across the full config surface, vertical-tab nav, reflective gallery 2026-06-21 17:14:58 +03:00
oleh 318a0919c6 Support: add a feedback email, rebrand from Donate, tighten privacy copy 2026-06-21 01:46:19 +03:00
oleh be8cfc402d Chart Builder: open a snippet in the builder to edit it in place 2026-06-20 12:36:37 +03:00
oleh efb5a9bbe0 Data inspector: input/resolved rows below the chart, with a resizable divider
A collapsible Data panel under the Live Preview and Chart Builder charts shows the rows the chart actually uses, switching between Input (parsed source) and Resolved (post-transform) views read from the live Vega view. Collapsed by default; the open-state and a draggable height divider persist.

Rows come through a new RenderHandle.inspectData() accessor, so no component touches the view: core/result-data picks the most-upstream source and most-downstream result from the compiled dataflow, read lazily. The divider reuses the window-splitter pattern (horizontal variant).

Consolidations: a shared DataTable primitive replaces the inspector's and the builder's duplicate read-only tables; useResizeDrag merges the col/row drag-gesture twins.

Docs: spec 04/06 and arch 05/10 updated; the now-shipped exploration memo removed.
2026-06-18 02:22:03 +03:00
oleh d8a7bcb7c1 Fonts: carry uploaded faces through export/import + embed in SVG export 2026-06-16 23:52:16 +03:00
oleh 778b4d848a Donate: redirect to Ukraine's defense (savelife.in.ua) 2026-06-16 23:05:05 +03:00
oleh 5d3aba608a Chart theming: user font upload (FontFace-from-IndexedDB) + variable-font weight support 2026-06-16 21:41:04 +03:00
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 df6a0b3845 ColorField: shared color-input primitive, Theme Builder + Chart Builder migration 2026-06-14 11:02:20 +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 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