mirror of
https://github.com/olehomelchenko/astrolabe.git
synced 2026-08-08 02:02:33 +00:00
af9ee1e4c08dabd03d9b173cadc8368bb5e2192b
- Per-channel transforms: aggregate (sum/mean/median/min/max), quantitative bin, and temporal timeUnit granularity; bin and aggregate are mutually exclusive. A field-less "Count of records" measure (Voyager's count(*)). - Chart-level sort (rank a categorical axis by its measure) and stacking (zero / 100% normalize), each shown only when it applies. - Field type is a fixed N|O|Q|T segmented control with the column's invalid types disabled; SegmentedControl gains APG-correct disabled options. - A crowded-category-axis warning (a raw measure drawing one mark per row over a large dataset) and a disabled-Create hint (says why it's disabled). - Drop the Create success toast — the new snippet is immediately visible. - Docs: spec §06, research-doc §8 backlog (incl. the cardinality/extent profiling TODO), architecture 01 (stable-selector rule) and 05 (builder-local preview), and a profiling breadcrumb.
Astrolabe
A browser-based snippet manager for Vega-Lite visualizations. Author chart specs as JSON, watch them render live, and keep a personal, searchable library — fully local, offline-capable, no account.
Astrolabe is a spec-driven rebuild on an architecture adapted from its sibling project Syto. The authoritative behavioral contract lives in
docs/spec/. See SOUL.md for the philosophy and docs/IMPLEMENTATION-PLAN.md for the build sequence.
Stack
Vite · TypeScript · React + Zustand · Monaco · Vega-Lite + vega-embed · IndexedDB · PWA (offline + installable).
Develop
npm install
npm run dev # dev server
npm run build # typecheck + production build (+ service worker)
npm run typecheck
npm test # Vitest
Status
M0 — Skeleton. Toolchain green (typecheck, tests, build, PWA). The three-pane shell renders; features land milestone by milestone per the implementation plan (MVP at end of M1).
License
TBD.
Description
Languages
TypeScript
92%
CSS
7.7%
JavaScript
0.2%
HTML
0.1%