Skip to content

feat!: complete OpenChart v9 chart, map, and reader design - #137

Merged
rileyhilliard merged 17 commits into
mainfrom
codex/openchart-v9
Oct 19, 2026
Merged

rileyhilliard merged 17 commits into
mainfrom
codex/openchart-v9

Conversation

@rileyhilliard

@rileyhilliard rileyhilliard commented Oct 17, 2026 •

Copy link
Copy Markdown
Member

OpenChart v9 consolidates annotation/editing APIs, improves chart typography and map composition, and adds optional geographic labels, reader comparison, detail geography, and inset views. This includes the completed 8.x foundations and the approved desktop/map design RFC. Scope is OpenChart, its wrappers, documentation, and examples.

Merge is on hold at the user's request. Do not enable auto-merge or publish a release.

User-facing changes

  • Adopt notes-only figure growth, wrapped rich-text callouts, source-order numbering, priority/crossing-aware placement, automatic reference labels, and larger small text. Preserve authored opt-outs and pinned annotations.
  • Use onEdit(EditTransaction) across vanilla, React, Vue, and Svelte; remove the documented legacy APIs. Validate mark-specific options consistently in TypeScript, schema, and runtime. Deep-merge themes with explicit precedence and consistent live-token/export behavior.
  • Improve endpoint precision and measurement, area band anchors, grid/zero hierarchy, and map border/key hierarchy. Add measured bar-value placement and opt-in row inspection. Retain the reviewed existing bar proportions, endpoint spacing, and no-data hatch.
  • Give side map keys a measured gutter and compact quantitative range lists. Remove backplates from reserved keys while retaining readable backgrounds for actual overlays. This fixes the oversized right margin and tiny-map examples at desktop and narrow widths.
  • Add geographic text/callouts with bounded collision placement, stable note reserves, accessible inventory, and current-camera static export. The multiple-map gallery no longer exposes a deliberate invalid duplicate-ID action as an ordinary control.
  • Add opt-in typed date-slice and place comparison, A/B readouts, local search/ranking, overlap choice, explicit Show on map, and active/distribution keys. Controlled state is silent; data revisions, missing/filtered observations, and incompatible measures cannot yield invented comparisons.
  • Add fixed-fit contextual geography and explicitly labeled insets with independent cameras, shared observation identity, and scoped events/export. Real Texas county/Austin tract fixtures demonstrate detail without refitting primary points.
  • Share measured source/byline/footer/branding across charts, maps, tables, bar lists, Sankey, tile maps, and graphs; preserve custom brands and document intentional footer wrapping changes.

The v9 migration guide covers removals, changed defaults, wrappers, and the optional new APIs. migrateSpecV8 remains pure/idempotent; released-8.9.1 fixtures test expressible styling preservation and explicitly report layout differences that cannot be restored.

Verification

  • 8,177 unit tests passed across387 files; three intentional expected-failure cases.
  • 458 browser tests passed with11 existing skips:115 visual,106 annotation invariants,177 existing general invariants,60 new chart/map journeys. No retries.
  • All six package builds/typechecks, examples typecheck, lint1077 files, generated artifacts, boundary checks, and two release-script tests passed.
  • Public chart bundle213,339 gzip bytes, zero product dependencies.
  • Manual preview-mode zone scans at390/1280 plus wider desktop, dark and doubled-text plates; real Texas/Austin and multiple-map QA.
  • Independent full source review APPROVE; all findings fixed and89 focused regression tests independently rechecked.
  • All six Bun links resolve to the v9 checkout; built public exports/imports and a real compile verified.

All intended visual changes were inspected before accepting baselines. The final batch changes 41 existing images: measured attribution/layout plus three previously unbaselined review corrections (curve tangent pullback, UTC date-only ticks, trimmed numeric formatting). A compact slope date-label collision found during inspection was fixed. Before/after/diff manifests and manual desktop/narrow/light/dark/large-text captures are retained locally; no new reader/inset stories were added to visual baselines. Existing general invariant projects remain unchanged.

Feature-disabled paired compile measurements meet the 10% median guard: map17.932→17.718ms, line1.745→1.825ms, stacked area3.509→3.789ms. Tooltip semantic metadata is memoized per compile. Geographic placement meets the20ms p95 gate for200 candidates/50k vertices; reader pointer processing meets the8ms gate. These are measured engineering checks, not a recruited usability study.

The full ce:code-reviewer pass and regression rechecks cover transformed/inferred reader values, exclusive navigation ownership, duplicate observation identity, companion focus/page retention, stale inset actions, post-destroy behavior, explicit revision changes, displayed distribution counts, and topology-ID inset selection. All actionable findings are addressed before handoff.

Static export excludes transient pins and host HTML readouts. Slice comparison currently supports one line/area binding; unsupported layered bindings diagnose. Context detail has no independent measure/selection and source-plane declarations assert already-decoded coordinates rather than performing CRS conversion. Main merge, version bumps, tags, and publication are separate held steps.

@coderabbitai

coderabbitai Bot commented Oct 17, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 580 files, which is 480 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

Usage-priced reviews support at most 300 files.

⚙️ Run configuration
  • Configuration used: Repository: tryopendata/openchart/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 488874a4-8350-45ce-a70f-9768ed51cd63
📥 Commits

Reviewing files that changed from the base of the PR and between 8baef9e and 483bb9e.

⛔ Files ignored due to path filters: 114
  • e2e/visual/__screenshots__/stories-mobile.spec.ts-snapshots/bar-vertical-mobile-visual-mobile-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories-mobile.spec.ts-snapshots/dashboard-kpi-tile-mobile-visual-mobile-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories-mobile.spec.ts-snapshots/line-multi-series-mobile-visual-mobile-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories-mobile.spec.ts-snapshots/mr-auto-height-chrome-growth-mobile-visual-mobile-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories-mobile.spec.ts-snapshots/mr-chrome-layout-grow-mobile-visual-mobile-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories-mobile.spec.ts-snapshots/mr-chrome-max-lines-mobile-visual-mobile-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories-mobile.spec.ts-snapshots/mr-grouped-bars-many-rows-mobile-visual-mobile-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories-mobile.spec.ts-snapshots/mr-grouped-bars-sparse-ticks-mobile-visual-mobile-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories-mobile.spec.ts-snapshots/mr-grouped-columns-labels-all-mobile-visual-mobile-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories-mobile.spec.ts-snapshots/mr-inline-y-title-mobile-visual-mobile-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories-mobile.spec.ts-snapshots/mr-long-title-mobile-visual-mobile-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories-mobile.spec.ts-snapshots/mr-one-wide-x-label-large-ticks-mobile-visual-mobile-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories-mobile.spec.ts-snapshots/mr-one-wide-x-label-mobile-visual-mobile-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories-mobile.spec.ts-snapshots/mr-reference-lane-overflow-mobile-visual-mobile-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories-mobile.spec.ts-snapshots/mr-uniform-short-x-labels-mobile-visual-mobile-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories-mobile.spec.ts-snapshots/stacked-column-mobile-visual-mobile-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories-mobile.spec.ts-snapshots/table-cards-mobile-visual-mobile-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories-mobile.spec.ts-snapshots/v9-crowded-callouts-mobile-visual-mobile-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories-mobile.spec.ts-snapshots/v9-curves-mobile-visual-mobile-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories-mobile.spec.ts-snapshots/v9-notes-sizing-mobile-visual-mobile-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories-mobile.spec.ts-snapshots/v9-reference-labels-mobile-visual-mobile-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/a11y-pattern-fills-compact-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/a11y-pattern-fills-donut-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/a11y-pattern-fills-stacked-dark-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/a11y-pattern-fills-stacked-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/agents-chat-analyst-final-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/bar-horizontal-gradient-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/bar-vertical-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/beeswarm-basic-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/beeswarm-grouped-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/beeswarm-sized-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/bump-constructors-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/calendar-compact-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/calendar-diverging-year-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/calendar-sequential-two-years-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/canvas-scatter-static-dark-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/canvas-scatter-static-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/chart-with-annotations-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/chart-with-watermark-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/color-legend-binned-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/color-legend-dark-diverging-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/color-legend-gradient-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/compact-bar-320px-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/compact-line-320px-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/dark-mode-line-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/dashboard-kpi-tile-dark-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/dashboard-kpi-tile-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/dashboard-tiny-tile-140-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/dashboard-tiny-tile-metrics-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/distribution-density-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/distribution-histogram-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/donut-center-label-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/dual-axis-combo-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/election-donut-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/election-results-bar-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/legend-bottom-right-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/legend-bottom-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/legend-top-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/line-multi-series-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/long-axis-labels-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/map-us-states-categorical-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/map-us-states-dark-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/map-us-states-light-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/map-world-equal-earth-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/multi-series-area-overlap-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/multi-series-area-stacked-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/parliament-compact-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/parliament-eu-multi-party-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/parliament-us-house-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/pie-with-legend-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/preset-broadsheet-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/preset-terminal-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/range-arrow-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/range-bar-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/range-dumbbell-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/rect-heatmap-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/rotated-labels-with-source-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/sankey-energy-dark-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/sankey-energy-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/sankey-narrow-long-labels-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/sankey-other-bucket-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/scatter-trendline-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/scrolly-step-annotated-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/scrolly-step-base-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/scrolly-step-highlight-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/scrolly-step-payoff-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/scrolly-step-zoomed-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/series-search-mobile-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/series-search-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/simple-columns-flat-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/slope-market-share-compact-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/slope-market-share-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/stacked-column-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/table-basic-regular-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/table-cards-mobile-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/table-delta-bars-condensed-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/table-heatmap-dark-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/table-sparklines-shared-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/text-mark-labels-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/tilemap-categorical-dark-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/tilemap-quantitative-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/us-bubbles-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/v9-crowded-callouts-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/v9-curves-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/v9-notes-sizing-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/v9-reference-labels-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/waffle-basic-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/waffle-highlight-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/world-diverging-quantize-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/you-draw-it-dark-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/you-draw-it-mobile-visual-darwin.png is excluded by !**/*.png
  • e2e/visual/__screenshots__/stories.spec.ts-snapshots/you-draw-it-visual-darwin.png is excluded by !**/*.png
  • examples/src/__tests__/__fixtures__/v8-parity.json.gz is excluded by !**/*.gz
  • packages/engine/src/__tests__/__snapshots__/compile-snapshot.test.ts.snap is excluded by !**/*.snap
📒 Files selected for processing: 580
  • .claude/rules/frontend/react.md
  • .claude/rules/testing.md
  • .claude/rules/visual-regression.md
  • CHANGELOG.md
  • README.md
  • bunfig.toml
  • docs/accessibility.md
  • docs/agent-patterns.md
  • docs/architecture.md
  • docs/chart-types.md
  • docs/codebase-map.md
  • docs/dashboards.md
  • docs/design-evolution.md
  • docs/design-system.md
  • docs/generating-specs.md
  • docs/geographic-labels.md
  • docs/getting-started.md
  • docs/integration-guide.md
  • docs/migrating-v9.md
  • docs/spec-reference.md
  • docs/tables.md
  • docs/theming-tokens.md
  • e2e/annotation-invariants/curves.spec.ts
  • e2e/annotation-invariants/gestures.spec.ts
  • e2e/annotation-invariants/layout.spec.ts
  • e2e/annotation-invariants/notes.spec.ts
  • e2e/chart-map-design/attribution.spec.ts
  • e2e/chart-map-design/geo-labels.spec.ts
  • e2e/chart-map-design/geo-views.spec.ts
  • e2e/chart-map-design/reader.spec.ts
  • e2e/invariants/canvas-alpha-parity.spec.ts
  • e2e/invariants/known-bugs.spec.ts
  • e2e/invariants/library-interactions.spec.ts
  • e2e/invariants/rendered-invariants.spec.ts
  • e2e/settle.ts
  • e2e/visual/capture.ts
  • e2e/visual/stories-mobile.spec.ts
  • e2e/visual/stories.spec.ts
  • examples/src/__tests__/migration-parity.test.ts
  • examples/src/__tests__/migration-v8-approved-changes.ts
  • examples/src/__tests__/migration-v8-attribution-changes.ts
  • examples/src/__tests__/migration-v8-parity.test.ts
  • examples/src/__tests__/parity-signature.ts
  • examples/src/__tests__/v9-editorial-examples.test.ts
  • examples/src/charts/mobile-regression.stories.tsx
  • examples/src/gallery/attribution.stories.tsx
  • examples/src/gallery/charts-bar-column.stories.tsx
  • examples/src/gallery/charts-line-area.stories.tsx
  • examples/src/gallery/design-chart-candidates.stories.tsx
  • examples/src/gallery/features-annotations.stories.tsx
  • examples/src/gallery/features-edit-mode.demos.ts
  • examples/src/gallery/features-edit-mode.stories.tsx
  • examples/src/gallery/features-theming.stories.tsx
  • examples/src/gallery/geo-labels.stories.tsx
  • examples/src/gallery/geo-views.stories.tsx
  • examples/src/gallery/maps.stories.tsx
  • examples/src/gallery/playground.stories.tsx
  • examples/src/gallery/reader.stories.tsx
  • examples/src/gallery/row-hover.stories.tsx
  • examples/src/gallery/showcase.stories.tsx
  • examples/src/gallery/welcome.stories.tsx
  • examples/src/geojson.d.ts
  • examples/src/testing/fixtures-bars.stories.tsx
  • examples/src/testing/fixtures-lines.stories.tsx
  • llms-full.txt
  • llms.txt
  • package.json
  • packages/core/README.md
  • packages/core/schema/chart.schema.json
  • packages/core/schema/table.schema.json
  • packages/core/schema/vizspec.schema.json
  • packages/core/src/accessibility/__tests__/alt-text.test.ts
  • packages/core/src/accessibility/alt-text.ts
  • packages/core/src/helpers/__tests__/edit-transactions.test.ts
  • packages/core/src/helpers/__tests__/json-pointer.test.ts
  • packages/core/src/helpers/__tests__/spec-builders.test.ts
  • packages/core/src/helpers/edit-transactions.ts
  • packages/core/src/helpers/json-pointer.ts
  • packages/core/src/helpers/spec-builders.ts
  • packages/core/src/index.ts
  • packages/core/src/layout/__tests__/attribution.test.ts
  • packages/core/src/layout/__tests__/chrome.test.ts
  • packages/core/src/layout/__tests__/note-band-compat.test.ts
  • packages/core/src/layout/chrome.ts
  • packages/core/src/layout/index.ts
  • packages/core/src/locale/__tests__/format.test.ts
  • packages/core/src/locale/format.ts
  • packages/core/src/responsive/index.ts
  • packages/core/src/responsive/metrics.ts
  • packages/core/src/schema/__tests__/schema.test.ts
  • packages/core/src/styles/__tests__/token-theme-parity.test.ts
  • packages/core/src/styles/base.css
  • packages/core/src/styles/dark.css
  • packages/core/src/styles/index.css
  • packages/core/src/styles/interaction.css
  • packages/core/src/styles/reader.css
  • packages/core/src/styles/table.css
  • packages/core/src/styles/token-definitions.ts
  • packages/core/src/styles/tokens.css
  • packages/core/src/theme/__tests__/chart-map-tokens.test.ts
  • packages/core/src/theme/__tests__/config-parity.test.ts
  • packages/core/src/theme/__tests__/dark-mode.test.ts
  • packages/core/src/theme/__tests__/defaults.test.ts
  • packages/core/src/theme/__tests__/presets.test.ts
  • packages/core/src/theme/__tests__/resolve.test.ts
  • packages/core/src/theme/__tests__/v9-contracts.test.ts
  • packages/core/src/theme/dark-mode.ts
  • packages/core/src/theme/defaults.ts
  • packages/core/src/theme/index.ts
  • packages/core/src/theme/merge.ts
  • packages/core/src/theme/presets.ts
  • packages/core/src/theme/resolve.ts
  • packages/core/src/types/design.ts
  • packages/core/src/types/events.ts
  • packages/core/src/types/geo-color-key.ts
  • packages/core/src/types/geo-labels.ts
  • packages/core/src/types/geo-reader.ts
  • packages/core/src/types/geo-views.ts
  • packages/core/src/types/index.ts
  • packages/core/src/types/layout.ts
  • packages/core/src/types/reader-slices.ts
  • packages/core/src/types/spec.ts
  • packages/core/src/types/theme.ts
  • packages/engine/src/__test-fixtures__/mark-options.ts
  • packages/engine/src/__test-fixtures__/specs.ts
  • packages/engine/src/__test-fixtures__/v8-styling.json
  • packages/engine/src/__tests__/annotation-behavior.test.ts
  • packages/engine/src/__tests__/axes.test.ts
  • packages/engine/src/__tests__/axis-title-header.test.ts
  • packages/engine/src/__tests__/compile-animation.test.ts
  • packages/engine/src/__tests__/compile-chart.test.ts
  • packages/engine/src/__tests__/compile-footnotes.test.ts
  • packages/engine/src/__tests__/compile-reentry.test.ts
  • packages/engine/src/__tests__/compile-snapshot.test.ts
  • packages/engine/src/__tests__/date-only-temporal.test.ts
  • packages/engine/src/__tests__/design-label-placement.test.ts
  • packages/engine/src/__tests__/dimensions.test.ts
  • packages/engine/src/__tests__/facet-grow-opt-in.test.ts
  • packages/engine/src/__tests__/facet.test.ts
  • packages/engine/src/__tests__/figure-frame.test.ts
  • packages/engine/src/__tests__/grid-hierarchy.test.ts
  • packages/engine/src/__tests__/known-bugs.test.ts
  • packages/engine/src/__tests__/layer-endpoint-identification.test.ts
  • packages/engine/src/__tests__/layer-identity.test.ts
  • packages/engine/src/__tests__/layer-legend-assembly.test.ts
  • packages/engine/src/__tests__/layout-invariants.test.ts
  • packages/engine/src/__tests__/mark-keys.test.ts
  • packages/engine/src/__tests__/migrate-spec-v8.test.ts
  • packages/engine/src/__tests__/scales.test.ts
  • packages/engine/src/__tests__/series-color-parity.test.ts
  • packages/engine/src/__tests__/spec-sugar.test.ts
  • packages/engine/src/__tests__/stroke-dash-series.test.ts
  • packages/engine/src/__tests__/theme-precedence.test.ts
  • packages/engine/src/__tests__/track-a-wrapping-and-dual-axis.test.ts
  • packages/engine/src/annotations/__tests__/compute.test.ts
  • packages/engine/src/annotations/__tests__/connector-control.test.ts
  • packages/engine/src/annotations/__tests__/connector-crossings.test.ts
  • packages/engine/src/annotations/__tests__/data-label-connectors.test.ts
  • packages/engine/src/annotations/__tests__/edit-context.test.ts
  • packages/engine/src/annotations/__tests__/endpoint-marker-dot.test.ts
  • packages/engine/src/annotations/__tests__/layout-opt-ins.test.ts
  • packages/engine/src/annotations/__tests__/reference-placement.test.ts
  • packages/engine/src/annotations/__tests__/resolve-text.test.ts
  • packages/engine/src/annotations/__tests__/thinning.test.ts
  • packages/engine/src/annotations/__tests__/v9-defaults.test.ts
  • packages/engine/src/annotations/collisions.ts
  • packages/engine/src/annotations/compute.ts
  • packages/engine/src/annotations/connector-crossings.ts
  • packages/engine/src/annotations/constants.ts
  • packages/engine/src/annotations/geometry.ts
  • packages/engine/src/annotations/notes.ts
  • packages/engine/src/annotations/placement.ts
  • packages/engine/src/annotations/position.ts
  • packages/engine/src/annotations/reference-layout.ts
  • packages/engine/src/annotations/resolve-text.ts
  • packages/engine/src/annotations/thinning.ts
  • packages/engine/src/barlist/__tests__/compile-barlist.test.ts
  • packages/engine/src/barlist/compile-barlist.ts
  • packages/engine/src/barlist/types.ts
  • packages/engine/src/charts/bar/__tests__/label-plan.test.ts
  • packages/engine/src/charts/bar/__tests__/labels.test.ts
  • packages/engine/src/charts/bar/__tests__/layout-capacity.test.ts
  • packages/engine/src/charts/bar/__tests__/theme-font.test.ts
  • packages/engine/src/charts/bar/index.ts
  • packages/engine/src/charts/bar/label-plan.ts
  • packages/engine/src/charts/bar/labels.ts
  • packages/engine/src/charts/binned-bar/__tests__/compute.test.ts
  • packages/engine/src/charts/column/__tests__/compute.test.ts
  • packages/engine/src/charts/column/__tests__/labels.test.ts
  • packages/engine/src/charts/column/index.ts
  • packages/engine/src/charts/column/labels.ts
  • packages/engine/src/charts/dot/index.ts
  • packages/engine/src/charts/dot/labels.ts
  • packages/engine/src/charts/line/__tests__/compute.test.ts
  • packages/engine/src/charts/line/__tests__/density.test.ts
  • packages/engine/src/charts/line/__tests__/labels.test.ts
  • packages/engine/src/charts/line/__tests__/mark-options.test.ts
  • packages/engine/src/charts/line/area.ts
  • packages/engine/src/charts/line/compute.ts
  • packages/engine/src/charts/line/curves.ts
  • packages/engine/src/charts/line/index.ts
  • packages/engine/src/charts/line/labels.ts
  • packages/engine/src/charts/parliament/__tests__/compute.test.ts
  • packages/engine/src/charts/pie/__tests__/compute.test.ts
  • packages/engine/src/charts/pie/__tests__/labels.test.ts
  • packages/engine/src/charts/post-process.ts
  • packages/engine/src/charts/range/__tests__/compute.test.ts
  • packages/engine/src/charts/range/index.ts
  • packages/engine/src/charts/range/labels.ts
  • packages/engine/src/charts/registry.ts
  • packages/engine/src/charts/scatter/__tests__/compute.test.ts
  • packages/engine/src/charts/utils.ts
  • packages/engine/src/charts/waffle/__tests__/compute.test.ts
  • packages/engine/src/compile.ts
  • packages/engine/src/compile/__tests__/fill-patterns.test.ts
  • packages/engine/src/compile/__tests__/watermark-obstacle.test.ts
  • packages/engine/src/compile/accessibility.ts
  • packages/engine/src/compile/annotation-obstacles.ts
  • packages/engine/src/compile/breakpoint-overrides.ts
  • packages/engine/src/compile/chart-scales.ts
  • packages/engine/src/compile/chart.ts
  • packages/engine/src/compile/display-defaults.ts
  • packages/engine/src/compile/faceted.ts
  • packages/engine/src/compile/fill-patterns.ts
  • packages/engine/src/compile/height-context.ts
  • packages/engine/src/compile/internal-options.ts
  • packages/engine/src/compile/layer.ts
  • packages/engine/src/compile/prepare.ts
  • packages/engine/src/compile/render-spec.ts
  • packages/engine/src/compile/scale-invert.ts
  • packages/engine/src/compile/series-summary.ts
  • packages/engine/src/compile/spec-sugar.ts
  • packages/engine/src/compile/watermark-obstacle.ts
  • packages/engine/src/compiler/__tests__/a11y-warnings.test.ts
  • packages/engine/src/compiler/__tests__/compile.test.ts
  • packages/engine/src/compiler/__tests__/fixtures/vl-parity/layer-theta.json
  • packages/engine/src/compiler/__tests__/fixtures/vl-parity/theta-arc.json
  • packages/engine/src/compiler/__tests__/mark-options.test.ts
  • packages/engine/src/compiler/__tests__/mark-render-mode.test.ts
  • packages/engine/src/compiler/__tests__/normalize.test.ts
  • packages/engine/src/compiler/__tests__/point-size.test.ts
  • packages/engine/src/compiler/__tests__/v9-removed-fields.test.ts
  • packages/engine/src/compiler/__tests__/validate-did-you-mean.test.ts
  • packages/engine/src/compiler/__tests__/validate-near-miss.test.ts
  • packages/engine/src/compiler/__tests__/validate.test.ts
  • packages/engine/src/compiler/a11y-warnings.ts
  • packages/engine/src/compiler/animation.ts
  • packages/engine/src/compiler/index.ts
  • packages/engine/src/compiler/mark-options.ts
  • packages/engine/src/compiler/normalize.ts
  • packages/engine/src/compiler/removed-spec-fields.ts
  • packages/engine/src/compiler/sparkline-defaults.ts
  • packages/engine/src/compiler/types.ts
  • packages/engine/src/compiler/validate.ts
  • packages/engine/src/compiler/validation/barlist.ts
  • packages/engine/src/compiler/validation/chart.ts
  • packages/engine/src/compiler/validation/common-fields.ts
  • packages/engine/src/compiler/validation/geo-map.ts
  • packages/engine/src/compiler/validation/graph.ts
  • packages/engine/src/compiler/validation/helpers.ts
  • packages/engine/src/compiler/validation/label-placement.ts
  • packages/engine/src/compiler/validation/layer.ts
  • packages/engine/src/compiler/validation/mark-rules.ts
  • packages/engine/src/compiler/validation/sankey.ts
  • packages/engine/src/compiler/validation/table.ts
  • packages/engine/src/compiler/validation/tilemap.ts
  • packages/engine/src/data/area-stack.ts
  • packages/engine/src/data/sort-by-field.ts
  • packages/engine/src/design/__tests__/design.test.ts
  • packages/engine/src/design/__tests__/reader-slices.test.ts
  • packages/engine/src/design/diagnostics.ts
  • packages/engine/src/design/patch.ts
  • packages/engine/src/design/reader-slices.ts
  • packages/engine/src/endpoint-labels/__tests__/area-semantics.test.ts
  • packages/engine/src/endpoint-labels/__tests__/compute.test.ts
  • packages/engine/src/endpoint-labels/__tests__/fit-budget.test.ts
  • packages/engine/src/endpoint-labels/__tests__/precision.test.ts
  • packages/engine/src/endpoint-labels/__tests__/source.test.ts
  • packages/engine/src/endpoint-labels/compute.ts
  • packages/engine/src/endpoint-labels/format.ts
  • packages/engine/src/endpoint-labels/formatter.ts
  • packages/engine/src/endpoint-labels/interior.ts
  • packages/engine/src/endpoint-labels/observations.ts
  • packages/engine/src/endpoint-labels/precision.ts
  • packages/engine/src/endpoint-labels/predict.ts
  • packages/engine/src/endpoint-labels/source.ts
  • packages/engine/src/geo/__tests__/color-key.test.ts
  • packages/engine/src/geo/__tests__/compile-geo-map.test.ts
  • packages/engine/src/geo/__tests__/fixtures/travis-tracts-2020.geojson
  • packages/engine/src/geo/__tests__/fixtures/travis-tracts-2020.source.json
  • packages/engine/src/geo/__tests__/label-geometry.test.ts
  • packages/engine/src/geo/__tests__/labels-compile.test.ts
  • packages/engine/src/geo/__tests__/labels-validation.test.ts
  • packages/engine/src/geo/__tests__/labels.test.ts
  • packages/engine/src/geo/__tests__/layout.test.ts
  • packages/engine/src/geo/__tests__/legend-semantics.test.ts
  • packages/engine/src/geo/__tests__/overlay-layout.test.ts
  • packages/engine/src/geo/__tests__/reader-index.test.ts
  • packages/engine/src/geo/__tests__/view-geometry.test.ts
  • packages/engine/src/geo/__tests__/views-compile.test.ts
  • packages/engine/src/geo/color-key.ts
  • packages/engine/src/geo/compile-geo-map.ts
  • packages/engine/src/geo/label-geometry.ts
  • packages/engine/src/geo/labels.ts
  • packages/engine/src/geo/layout.ts
  • packages/engine/src/geo/legend-semantics.ts
  • packages/engine/src/geo/overlay-layout.ts
  • packages/engine/src/geo/reader-index.ts
  • packages/engine/src/geo/types.ts
  • packages/engine/src/geo/view-geometry.ts
  • packages/engine/src/graphs/__tests__/compile-graph.test.ts
  • packages/engine/src/graphs/__tests__/encoding.test.ts
  • packages/engine/src/graphs/__tests__/graph-resolvers.test.ts
  • packages/engine/src/graphs/compile-graph.ts
  • packages/engine/src/index.ts
  • packages/engine/src/layout/__tests__/area-stack-cache.test.ts
  • packages/engine/src/layout/__tests__/axis-defaults.test.ts
  • packages/engine/src/layout/__tests__/reference-lane.test.ts
  • packages/engine/src/layout/__tests__/signed-area-domain.test.ts
  • packages/engine/src/layout/axes.ts
  • packages/engine/src/layout/axes/ticks.ts
  • packages/engine/src/layout/axis-title-plan.ts
  • packages/engine/src/layout/budget.ts
  • packages/engine/src/layout/dimensions.ts
  • packages/engine/src/layout/facet.ts
  • packages/engine/src/layout/frame.ts
  • packages/engine/src/layout/plan.ts
  • packages/engine/src/layout/scales.ts
  • packages/engine/src/layout/shared.ts
  • packages/engine/src/layout/stack.ts
  • packages/engine/src/legend/__tests__/size.test.ts
  • packages/engine/src/legend/__tests__/suppression.test.ts
  • packages/engine/src/legend/compute.ts
  • packages/engine/src/legend/suppression.ts
  • packages/engine/src/migration/v8.ts
  • packages/engine/src/sankey/__tests__/compile-sankey.test.ts
  • packages/engine/src/sankey/__tests__/layout.test.ts
  • packages/engine/src/sankey/compile-sankey.ts
  • packages/engine/src/sankey/types.ts
  • packages/engine/src/tables/__tests__/category-colors.test.ts
  • packages/engine/src/tables/__tests__/compile-table.test.ts
  • packages/engine/src/tables/__tests__/format-cells.test.ts
  • packages/engine/src/tables/__tests__/table-design.test.ts
  • packages/engine/src/tables/compile-table.ts
  • packages/engine/src/tilemap/__tests__/compile-tilemap.test.ts
  • packages/engine/src/tilemap/compile-tilemap.ts
  • packages/engine/src/tilemap/layout.ts
  • packages/engine/src/tilemap/types.ts
  • packages/engine/src/tooltips/__tests__/semantic-fields.test.ts
  • packages/engine/src/tooltips/compute.ts
  • packages/engine/src/tooltips/metadata.ts
  • packages/engine/src/transforms/filter.ts
  • packages/engine/src/transforms/window.ts
  • packages/react/README.md
  • packages/react/src/BarList.tsx
  • packages/react/src/Chart.tsx
  • packages/react/src/ChartStory.tsx
  • packages/react/src/DataTable.tsx
  • packages/react/src/GeoMap.tsx
  • packages/react/src/Graph.tsx
  • packages/react/src/Sankey.tsx
  • packages/react/src/ThemeContext.tsx
  • packages/react/src/TileMap.tsx
  • packages/react/src/__tests__/Chart.test.tsx
  • packages/react/src/__tests__/GeoMap.test.tsx
  • packages/react/src/__tests__/Graph.dimensions.test.tsx
  • packages/react/src/__tests__/Graph.suppress-entrance.test.tsx
  • packages/react/src/__tests__/update-vs-remount.test.tsx
  • packages/react/src/__tests__/useGraph.test.tsx
  • packages/react/src/__typechecks__/reader.tsx
  • packages/react/src/hooks.ts
  • packages/react/src/hooks/useGraph.ts
  • packages/react/src/hooks/useTable.ts
  • packages/react/src/index.ts
  • packages/react/tsup.config.ts
  • packages/react/vitest.config.ts
  • packages/svelte/README.md
  • packages/svelte/package.json
  • packages/svelte/src/BarList.svelte
  • packages/svelte/src/Chart.svelte
  • packages/svelte/src/ChartStory.svelte
  • packages/svelte/src/DataTable.svelte
  • packages/svelte/src/GeoMap.svelte
  • packages/svelte/src/Graph.svelte
  • packages/svelte/src/Sankey.svelte
  • packages/svelte/src/TileMap.svelte
  • packages/svelte/src/__tests__/Chart.test.ts
  • packages/svelte/src/__tests__/GeoMap.test.ts
  • packages/svelte/src/__tests__/Graph.dimensions.test.ts
  • packages/svelte/src/__tests__/Graph.test.ts
  • packages/svelte/src/__tests__/ThemeContext.test.ts
  • packages/svelte/src/__tests__/update-count.test.ts
  • packages/svelte/src/composables/useChart.svelte.ts
  • packages/svelte/src/composables/useGraph.svelte.ts
  • packages/svelte/src/index.ts
  • packages/svelte/src/types.ts
  • packages/svelte/vitest.config.ts
  • packages/vanilla/README.md
  • packages/vanilla/src/__test-fixtures__/geo-label-spec.ts
  • packages/vanilla/src/__test-fixtures__/graph-frame-clock.ts
  • packages/vanilla/src/__tests__/animation.test.ts
  • packages/vanilla/src/__tests__/annotation-gestures.test.ts
  • packages/vanilla/src/__tests__/annotation-identity.test.ts
  • packages/vanilla/src/__tests__/annotation-notes.test.ts
  • packages/vanilla/src/__tests__/annotations-render.test.ts
  • packages/vanilla/src/__tests__/attribution.test.ts
  • packages/vanilla/src/__tests__/barlist-mount.test.ts
  • packages/vanilla/src/__tests__/canvas-mode.test.ts
  • packages/vanilla/src/__tests__/chrome-renderer.test.ts
  • packages/vanilla/src/__tests__/compound-labels.test.ts
  • packages/vanilla/src/__tests__/deprecations.test.ts
  • packages/vanilla/src/__tests__/edit-events.test.ts
  • packages/vanilla/src/__tests__/edit-transactions.test.ts
  • packages/vanilla/src/__tests__/editable-prop.test.ts
  • packages/vanilla/src/__tests__/endpoint-labels-renderer.test.ts
  • packages/vanilla/src/__tests__/events.test.ts
  • packages/vanilla/src/__tests__/export-canvas.test.ts
  • packages/vanilla/src/__tests__/export-gif.test.ts
  • packages/vanilla/src/__tests__/export-mount-themes.test.ts
  • packages/vanilla/src/__tests__/export-sequence.test.ts
  • packages/vanilla/src/__tests__/font-race.test.ts
  • packages/vanilla/src/__tests__/interaction-mode.test.ts
  • packages/vanilla/src/__tests__/label-halo.test.ts
  • packages/vanilla/src/__tests__/lifecycle-contracts.test.ts
  • packages/vanilla/src/__tests__/map-companion.test.ts
  • packages/vanilla/src/__tests__/map-key-text.test.ts
  • packages/vanilla/src/__tests__/map-label-inventory.test.ts
  • packages/vanilla/src/__tests__/map-labels.test.ts
  • packages/vanilla/src/__tests__/map-reader-territory.test.ts
  • packages/vanilla/src/__tests__/map-reader.test.ts
  • packages/vanilla/src/__tests__/map-view-camera.test.ts
  • packages/vanilla/src/__tests__/map-views.test.ts
  • packages/vanilla/src/__tests__/map-zoom.test.ts
  • packages/vanilla/src/__tests__/map.test.ts
  • packages/vanilla/src/__tests__/mount.test.ts
  • packages/vanilla/src/__tests__/note-band-compat.test.ts
  • packages/vanilla/src/__tests__/public-edit-api.test.ts
  • packages/vanilla/src/__tests__/reader-panel.test.ts
  • packages/vanilla/src/__tests__/reader-view-model.test.ts
  • packages/vanilla/src/__tests__/reader.test.ts
  • packages/vanilla/src/__tests__/row-hover.test.ts
  • packages/vanilla/src/__tests__/sankey.test.ts
  • packages/vanilla/src/__tests__/selection-events.test.ts
  • packages/vanilla/src/__tests__/series-search.test.ts
  • packages/vanilla/src/__tests__/slice-reader-perf.test.ts
  • packages/vanilla/src/__tests__/slice-reader.test.ts
  • packages/vanilla/src/__tests__/static.test.ts
  • packages/vanilla/src/__tests__/table-design.test.ts
  • packages/vanilla/src/__tests__/table-keyboard.test.ts
  • packages/vanilla/src/__tests__/table-mount.test.ts
  • packages/vanilla/src/__tests__/theme-style-block.test.ts
  • packages/vanilla/src/__tests__/theme-tokens.test.ts
  • packages/vanilla/src/__tests__/tilemap.test.ts
  • packages/vanilla/src/__tests__/transition.test.ts
  • packages/vanilla/src/__tests__/you-draw-it.test.ts
  • packages/vanilla/src/__typechecks__/reader.ts
  • packages/vanilla/src/animation-vars.ts
  • packages/vanilla/src/barlist-mount.ts
  • packages/vanilla/src/barlist-renderer.ts
  • packages/vanilla/src/chart-editing.ts
  • packages/vanilla/src/chart-export.ts
  • packages/vanilla/src/chart-sizing.ts
  • packages/vanilla/src/dom-helpers.ts
  • packages/vanilla/src/export-gif.ts
  • packages/vanilla/src/export-sequence.ts
  • packages/vanilla/src/export.ts
  • packages/vanilla/src/graph-3d/__tests__/mount.test.ts
  • packages/vanilla/src/graph-3d/mount.ts
  • packages/vanilla/src/graph-mount.ts
  • packages/vanilla/src/graph/__tests__/entrance.test.ts
  • packages/vanilla/src/graph/__tests__/graph-highlight.test.ts
  • packages/vanilla/src/graph/__tests__/graph-mount-update.test.ts
  • packages/vanilla/src/graph/__tests__/graph-mount.test.ts
  • packages/vanilla/src/graph/__tests__/graph-seed-exemption.test.ts
  • packages/vanilla/src/graph/__tests__/renderer-registry.test.ts
  • packages/vanilla/src/graph/focus-model.ts
  • packages/vanilla/src/graph/graph-data.ts
  • packages/vanilla/src/graph/mount-types.ts
  • packages/vanilla/src/graph/renderer-registry.ts
  • packages/vanilla/src/graph/shell.ts
  • packages/vanilla/src/graph/simulation-worker.ts
  • packages/vanilla/src/graph/simulation.ts
  • packages/vanilla/src/graph/tooltip-content.ts
  • packages/vanilla/src/graph/update-fades.ts
  • packages/vanilla/src/index.ts
  • packages/vanilla/src/interactions/annotation-notes.ts
  • packages/vanilla/src/interactions/annotation-nudges.ts
  • packages/vanilla/src/interactions/crosshair.ts
  • packages/vanilla/src/interactions/edit-transactions.ts
  • packages/vanilla/src/interactions/editing-drags.ts
  • packages/vanilla/src/interactions/gesture-edit.ts
  • packages/vanilla/src/interactions/index.ts
  • packages/vanilla/src/interactions/legend-interaction.ts
  • packages/vanilla/src/interactions/reader-arbitration.ts
  • packages/vanilla/src/interactions/row-hover.ts
  • packages/vanilla/src/interactions/selection.ts
  • packages/vanilla/src/map-camera.ts
  • packages/vanilla/src/map-color-key.ts
  • packages/vanilla/src/map-companion.ts
  • packages/vanilla/src/map-label-inventory.ts
  • packages/vanilla/src/map-labels.ts
  • packages/vanilla/src/map-mount.ts
  • packages/vanilla/src/map-reader-overlays.ts
  • packages/vanilla/src/map-reader.ts
  • packages/vanilla/src/map-renderer.ts
  • packages/vanilla/src/map-view-camera.ts
  • packages/vanilla/src/map-view-renderer.ts
  • packages/vanilla/src/map-zoom.ts
  • packages/vanilla/src/mount-types.ts
  • packages/vanilla/src/mount.ts
  • packages/vanilla/src/observation-reader.ts
  • packages/vanilla/src/reader-binding.ts
  • packages/vanilla/src/reader-options.ts
  • packages/vanilla/src/reader-panel.ts
  • packages/vanilla/src/reader-view-model.ts
  • packages/vanilla/src/reader.ts
  • packages/vanilla/src/renderers/annotations.ts
  • packages/vanilla/src/renderers/attribution-footer.ts
  • packages/vanilla/src/renderers/axes.ts
  • packages/vanilla/src/renderers/brand.ts
  • packages/vanilla/src/renderers/chrome.ts
  • packages/vanilla/src/renderers/endpoint-labels.ts
  • packages/vanilla/src/renderers/legend.ts
  • packages/vanilla/src/renderers/table-cells.ts
  • packages/vanilla/src/sankey-mount.ts
  • packages/vanilla/src/sankey-renderer.ts
  • packages/vanilla/src/scatter-canvas/__tests__/renderer.test.ts
  • packages/vanilla/src/scatter-canvas/__tests__/state.test.ts
  • packages/vanilla/src/scatter-canvas/interactions.ts
  • packages/vanilla/src/scatter-canvas/renderer.ts
  • packages/vanilla/src/scatter-canvas/state.ts
  • packages/vanilla/src/scatter-canvas/types.ts
  • packages/vanilla/src/series-visibility.ts
  • packages/vanilla/src/slice-reader.ts
  • packages/vanilla/src/static.ts
  • packages/vanilla/src/story/__tests__/tween.test.ts
  • packages/vanilla/src/story/create-chart-story.ts
  • packages/vanilla/src/story/tween.ts
  • packages/vanilla/src/story/types.ts
  • packages/vanilla/src/svg-ids.ts
  • packages/vanilla/src/svg-renderer.ts
  • packages/vanilla/src/table-mount.ts
  • packages/vanilla/src/table-renderer.ts
  • packages/vanilla/src/theme-style-block.ts
  • packages/vanilla/src/theme-tokens.ts
  • packages/vanilla/src/tilemap-mount.ts
  • packages/vanilla/src/tilemap-renderer.ts
  • packages/vanilla/src/transition/apply.ts
  • packages/vanilla/src/transition/chrome-tweens.ts
  • packages/vanilla/src/transition/driver.ts
  • packages/vanilla/tsup.config.ts
  • packages/vue/README.md
  • packages/vue/src/BarList.ts
  • packages/vue/src/Chart.ts
  • packages/vue/src/ChartStory.ts
  • packages/vue/src/DataTable.ts
  • packages/vue/src/GeoMap.ts
  • packages/vue/src/Graph.ts
  • packages/vue/src/Sankey.ts
  • packages/vue/src/ThemeProvider.ts
  • packages/vue/src/TileMap.ts
  • packages/vue/src/__tests__/Chart.test.ts
  • packages/vue/src/__tests__/GeoMap.test.ts
  • packages/vue/src/__tests__/Graph.dimensions.test.ts
  • packages/vue/src/__tests__/Graph.suppress-entrance.test.ts
  • packages/vue/src/__tests__/update-count.test.ts
  • packages/vue/src/__tests__/useChart.test.ts
  • packages/vue/src/__tests__/useTable.test.ts
  • packages/vue/src/composables/useChart.ts
  • packages/vue/src/composables/useGraph.ts
  • packages/vue/src/index.ts
  • packages/vue/tsup.config.ts
  • plans/desktop-chart-and-geomap-execution.md
  • plans/rfc-desktop-chart-and-geomap-design.md
  • playwright.config.ts
  • scripts/capture-v8-parity.mjs
  • scripts/generate-css-tokens.mjs
  • scripts/generate-llms.mjs
  • scripts/llm-eval/fixtures.json
  • scripts/llm-eval/run.mjs

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

…axes

Layout
- layout/frame.ts owns figure sizing for both the layout plan and the
  budget, so the planned plot is the drawn plot. The plan re-resolves the
  x-label angle after the y-title gutter or inline y-label inset narrows
  the bands.
- Date-only temporal strings get a UTC time scale, so ticks land on the
  data's dates in every timezone (the last year tick no longer drops west
  of UTC). Annotations resolve on utc scales; ScaleInvert.scaleType
  includes 'utc'.
- Layers report a subtract-mode note overflow once instead of dropping it.

Structure
- Split compile/chart.ts (compileChartInternal), vanilla mount, chart
  editing, graph mount and focus model into targeted modules.

Fixes
- Graph search before the first simulation tick matches nodes.
- The last-visible-series legend guard covers strokeDash-only lines.

Tests and docs
- Figure-frame, date-only (pinned non-UTC zones), re-entry, mock removal,
  e2e settle helpers, v8 parity harness; TypeScript audit; docs, llms.txt
  and migration guide updates; reviewed visual baselines.

Claude-Session: https://claude.ai/code/session_01HwX535kxsQsMJP36qDo6VT
Add measured bar value placement, endpoint precision and source semantics,
area band/interior labels, axis headers, map legend gutters, and theme controls.
Fix signed area domains, independent-layer legend assembly, and constrained
label layouts. Reuse area geometry within each compile without stale updates.

Include migration guidance, generated schemas, regression coverage, and
reviewed visual baselines. Keep proposed default retunes gated on design review.
@rileyhilliard rileyhilliard changed the title feat!: ship OpenChart v9 annotation UX and API consolidation feat!: complete OpenChart v9 chart, map, and reader design Oct 19, 2026
@rileyhilliard
rileyhilliard merged commit 308aaec into main Oct 19, 2026
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant