Skip to content

Harmonize public API contracts - #73

Merged
tannerlinsley merged 2 commits into
mainfrom
taren/public-api-harmonization-release
Aug 9, 2026
Merged

Harmonize public API contracts#73
tannerlinsley merged 2 commits into
mainfrom
taren/public-api-harmonization-release

Conversation

@tannerlinsley

Copy link
Copy Markdown
Member

Summary

  • complete the 17-item public API harmonization roadmap across core, scales, DOM adapters, React Native, docs, examples, and benchmarks
  • tighten compact scales and standardize responsive, control, focus, color, animation, export, and transform contracts
  • add host-refined tooltip types, shared DOM/native interaction policy, platform theme, complete typography measurement, and typed view composition
  • add the coordinated minor changeset, Unreleased migration guide, API friction evidence, import-map governance, and executable documentation checks

This rebased PR supersedes #72 without force-pushing its branch. It preserves the new ::chart-example documentation embedding system from main.

Release impact

Changesets will release the 12-package fixed set as coordinated minors. Current versions are 0.7.2; the expected version PR target is 0.8.0 for every package in the set.

Validation

  • pnpm validate
  • 260 test files / 1,742 tests
  • packed consumers, React Native/Expo, seven framework adapters, docs, bundle policy, and catalog index all passed

@coderabbitai

coderabbitai Bot commented Aug 9, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 258 files, which is 158 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.

This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 181a1023-f4f1-4c2a-b5ca-3b8e200c56bf

📥 Commits

Reviewing files that changed from the base of the PR and between 4ed1f9d and 57e8df8.

📒 Files selected for processing (258)
  • .changeset/harmonize-public-api.md
  • API-FRICTION.md
  • API-HARMONIZATION-ROADMAP.md
  • CHANGELOG.md
  • benchmarks/bundle-size/universal-baseline.json
  • benchmarks/comparison/bundle-baseline.json
  • benchmarks/comparison/libraries/tanstack/base.ts
  • benchmarks/conformance/INTERACTION-UX-AUDIT.md
  • benchmarks/conformance/cases/02-multi-line-end-labels/tanstack.ts
  • benchmarks/conformance/cases/117-focus-cursor-motion/tanstack.ts
  • benchmarks/conformance/cases/119-stacked-bar-band-cursor/view.tsx
  • benchmarks/conformance/cases/19-moving-average-line/tanstack.ts
  • benchmarks/conformance/cases/22-bollinger-band/tanstack.test.ts
  • benchmarks/conformance/cases/22-bollinger-band/tanstack.ts
  • benchmarks/conformance/cases/27-parallel-coordinates/tanstack.ts
  • benchmarks/conformance/cases/29-waterfall/tanstack.test.ts
  • benchmarks/conformance/cases/29-waterfall/tanstack.ts
  • benchmarks/conformance/cases/33-difference-chart/tanstack.test.ts
  • benchmarks/conformance/cases/33-difference-chart/tanstack.ts
  • benchmarks/conformance/cases/34-pointer-tooltip/tanstack.ts
  • benchmarks/conformance/cases/35-grouped-tooltip/tanstack.ts
  • benchmarks/conformance/cases/40-force-directed-network/tanstack.ts
  • benchmarks/conformance/cases/54-bump-ranking/tanstack.test.ts
  • benchmarks/conformance/cases/54-bump-ranking/tanstack.ts
  • benchmarks/conformance/cases/55-indexed-multi-line/tanstack.ts
  • benchmarks/conformance/cases/56-connected-scatter/tanstack.test.ts
  • benchmarks/conformance/cases/56-connected-scatter/tanstack.ts
  • benchmarks/conformance/cases/60-lag-autocorrelation/tanstack.ts
  • benchmarks/conformance/cases/65-voronoi-nearest-tooltip/tanstack.ts
  • benchmarks/conformance/cases/75-radar/tanstack.ts
  • benchmarks/conformance/cases/80-echarts-axis-pointer/tanstack.ts
  • benchmarks/conformance/cases/81-recharts-interactive-legend/view.tsx
  • benchmarks/conformance/cases/82-chart-table-selection/view.tsx
  • benchmarks/conformance/cases/83-focus-context-window/tanstack.test.ts
  • benchmarks/conformance/cases/83-focus-context-window/view.tsx
  • benchmarks/conformance/cases/84-pinned-nested-chart-tooltip/view.tsx
  • benchmarks/conformance/cases/85-scrollable-resource-lanes/tanstack.test.ts
  • benchmarks/conformance/cases/85-scrollable-resource-lanes/tanstack.ts
  • benchmarks/conformance/cases/86-streaming-window-preservation/view.tsx
  • benchmarks/conformance/cases/87-echarts-synchronized-cursors/tanstack.ts
  • benchmarks/conformance/cases/88-echarts-free-cursor/tanstack.ts
  • benchmarks/conformance/cases/89-brush-range-selection/tanstack.ts
  • benchmarks/conformance/cases/90-zoomable-time-window/tanstack.ts
  • benchmarks/conformance/cases/91-timeline-playback-scrubber/tanstack.ts
  • benchmarks/conformance/cases/92-editable-event-range/tanstack.ts
  • benchmarks/conformance/cases/99-comparative-radar/tanstack.ts
  • benchmarks/conformance/shared/mount.ts
  • benchmarks/entries/charts-histogram-svg.ts
  • benchmarks/entries/charts-react-stats-parity.tsx
  • benchmarks/entries/charts-stats-parity.ts
  • benchmarks/entries/charts-transform-reduce.ts
  • benchmarks/entries/charts-transform-rolling-window.ts
  • benchmarks/entries/charts-transform-suite.ts
  • benchmarks/entries/charts-transform-window.ts
  • benchmarks/motion/update-poc.ts
  • benchmarks/rendering.ts
  • docs/comparison.md
  • docs/concepts/chart-definitions.md
  • docs/concepts/layout-axes-and-coordinates.md
  • docs/examples/interactive-charts.md
  • docs/examples/lines-and-areas.md
  • docs/examples/polar-and-radar.md
  • docs/framework/alpine/reference/chart.md
  • docs/framework/angular/reference/chart.md
  • docs/framework/lit/reference/chart.md
  • docs/framework/octane/quick-start.md
  • docs/framework/octane/reference/chart.md
  • docs/framework/preact/reference/chart.md
  • docs/framework/react/adapter.md
  • docs/framework/react/quick-start.md
  • docs/framework/react/reference/chart.md
  • docs/framework/solid/reference/chart.md
  • docs/framework/svelte/reference/chart.md
  • docs/framework/vue/reference/chart.md
  • docs/guides/accessibility.md
  • docs/guides/bundle-size-and-performance.md
  • docs/guides/custom-marks-and-renderers.md
  • docs/guides/dynamic-data-and-animation.md
  • docs/guides/interactions-and-selections.md
  • docs/guides/responsive-charts.md
  • docs/guides/ssr-and-hydration.md
  • docs/guides/themes-and-styling.md
  • docs/guides/tooltips-and-focus.md
  • docs/guides/transforms-and-reactivity.md
  • docs/installation.md
  • docs/overview.md
  • docs/reference/chart-definitions.md
  • docs/reference/chart-spec.md
  • docs/reference/custom-extensions.md
  • docs/reference/dom-host.md
  • docs/reference/focus-and-interaction.md
  • docs/reference/index.md
  • docs/reference/rendering-and-export.md
  • docs/reference/runtime-and-scene.md
  • docs/reference/scales-guides-and-color.md
  • docs/reference/transforms.md
  • docs/reference/types.md
  • docs/reference/view-composition.md
  • examples/charts-react/src/App.tsx
  • examples/sandbox/src/App.tsx
  • examples/sandbox/src/InteractionGeometryLab.test.ts
  • examples/sandbox/src/InteractionGeometryLab.tsx
  • llms.txt
  • packages/alpine-charts/src/index.ts
  • packages/angular-charts/src/index.ts
  • packages/charts-core-d3/docs/tanstack-stats-migration.md
  • packages/charts-core-d3/src/dom.ts
  • packages/charts-core-d3/src/export.ts
  • packages/charts-core-d3/src/focus.ts
  • packages/charts-core-d3/src/index.ts
  • packages/charts-core-d3/src/runtime.test.ts
  • packages/charts-core-d3/src/runtime.ts
  • packages/charts-core-d3/src/scene.ts
  • packages/charts-core-d3/src/types.ts
  • packages/charts-core/README.md
  • packages/charts-core/docs/comparison.md
  • packages/charts-core/docs/concepts/chart-definitions.md
  • packages/charts-core/docs/concepts/layout-axes-and-coordinates.md
  • packages/charts-core/docs/examples/interactive-charts.md
  • packages/charts-core/docs/examples/lines-and-areas.md
  • packages/charts-core/docs/examples/polar-and-radar.md
  • packages/charts-core/docs/framework/alpine/reference/chart.md
  • packages/charts-core/docs/framework/angular/reference/chart.md
  • packages/charts-core/docs/framework/lit/reference/chart.md
  • packages/charts-core/docs/framework/octane/quick-start.md
  • packages/charts-core/docs/framework/octane/reference/chart.md
  • packages/charts-core/docs/framework/preact/reference/chart.md
  • packages/charts-core/docs/framework/react/adapter.md
  • packages/charts-core/docs/framework/react/quick-start.md
  • packages/charts-core/docs/framework/react/reference/chart.md
  • packages/charts-core/docs/framework/solid/reference/chart.md
  • packages/charts-core/docs/framework/svelte/reference/chart.md
  • packages/charts-core/docs/framework/vue/reference/chart.md
  • packages/charts-core/docs/guides/accessibility.md
  • packages/charts-core/docs/guides/bundle-size-and-performance.md
  • packages/charts-core/docs/guides/custom-marks-and-renderers.md
  • packages/charts-core/docs/guides/dynamic-data-and-animation.md
  • packages/charts-core/docs/guides/interactions-and-selections.md
  • packages/charts-core/docs/guides/responsive-charts.md
  • packages/charts-core/docs/guides/ssr-and-hydration.md
  • packages/charts-core/docs/guides/themes-and-styling.md
  • packages/charts-core/docs/guides/tooltips-and-focus.md
  • packages/charts-core/docs/guides/transforms-and-reactivity.md
  • packages/charts-core/docs/installation.md
  • packages/charts-core/docs/overview.md
  • packages/charts-core/docs/reference/chart-definitions.md
  • packages/charts-core/docs/reference/chart-spec.md
  • packages/charts-core/docs/reference/custom-extensions.md
  • packages/charts-core/docs/reference/dom-host.md
  • packages/charts-core/docs/reference/focus-and-interaction.md
  • packages/charts-core/docs/reference/index.md
  • packages/charts-core/docs/reference/rendering-and-export.md
  • packages/charts-core/docs/reference/runtime-and-scene.md
  • packages/charts-core/docs/reference/scales-guides-and-color.md
  • packages/charts-core/docs/reference/transforms.md
  • packages/charts-core/docs/reference/types.md
  • packages/charts-core/docs/reference/view-composition.md
  • packages/charts-core/llms.txt
  • packages/charts-core/package.json
  • packages/charts-core/src/box.test.ts
  • packages/charts-core/src/box.ts
  • packages/charts-core/src/canvas.test.ts
  • packages/charts-core/src/canvas.ts
  • packages/charts-core/src/cursor-host.ts
  • packages/charts-core/src/cursor.test.ts
  • packages/charts-core/src/dom-text.test.ts
  • packages/charts-core/src/dom-text.ts
  • packages/charts-core/src/dom-types.ts
  • packages/charts-core/src/export.ts
  • packages/charts-core/src/exports.test.ts
  • packages/charts-core/src/facet.ts
  • packages/charts-core/src/focus.test.ts
  • packages/charts-core/src/focus.ts
  • packages/charts-core/src/guide-layout.test.ts
  • packages/charts-core/src/guide-layout.ts
  • packages/charts-core/src/hierarchy-tree.test.ts
  • packages/charts-core/src/hierarchy-treemap.test.ts
  • packages/charts-core/src/index.ts
  • packages/charts-core/src/interaction-brush.test.ts
  • packages/charts-core/src/interaction-brush.ts
  • packages/charts-core/src/interaction-cursor.test.ts
  • packages/charts-core/src/interaction-cursor.ts
  • packages/charts-core/src/interaction-handle.test.ts
  • packages/charts-core/src/interaction-handle.ts
  • packages/charts-core/src/interaction-zoom.test.ts
  • packages/charts-core/src/interaction-zoom.ts
  • packages/charts-core/src/interaction.ts
  • packages/charts-core/src/interactive-legend.test.ts
  • packages/charts-core/src/mark-state-transition.ts
  • packages/charts-core/src/mark-state.ts
  • packages/charts-core/src/motion.test.ts
  • packages/charts-core/src/network-force.test.ts
  • packages/charts-core/src/polar-pie.test.ts
  • packages/charts-core/src/regression.test.ts
  • packages/charts-core/src/regression.ts
  • packages/charts-core/src/renderer.test.ts
  • packages/charts-core/src/renderer.ts
  • packages/charts-core/src/runtime.test.ts
  • packages/charts-core/src/runtime.ts
  • packages/charts-core/src/scales.ts
  • packages/charts-core/src/scene.test.ts
  • packages/charts-core/src/scene.ts
  • packages/charts-core/src/svg-surface.ts
  • packages/charts-core/src/tooltip-model.ts
  • packages/charts-core/src/tooltip-placement.ts
  • packages/charts-core/src/tooltip-position.ts
  • packages/charts-core/src/tooltip.ts
  • packages/charts-core/src/transform-internal.ts
  • packages/charts-core/src/transform-mosaic.test.ts
  • packages/charts-core/src/transform-rank.ts
  • packages/charts-core/src/transform-reduce.ts
  • packages/charts-core/src/transform-rolling-window.ts
  • packages/charts-core/src/transform.test.ts
  • packages/charts-core/src/transform.ts
  • packages/charts-core/src/type-contract.test.ts
  • packages/charts-core/src/types.ts
  • packages/charts-core/src/universal-types.ts
  • packages/charts-core/src/universal.ts
  • packages/charts-core/src/view-compose.test.ts
  • packages/charts-core/src/view.test.ts
  • packages/charts-core/src/view.ts
  • packages/charts-fixtures/src/stats-parity.test.ts
  • packages/charts-scales/src/band-kernel.ts
  • packages/charts-scales/src/categorical.test.ts
  • packages/charts-scales/src/linear.test.ts
  • packages/charts-scales/src/linear.ts
  • packages/charts-scales/src/ordinal.ts
  • packages/lit-charts/src/index.ts
  • packages/octane-charts/README.md
  • packages/octane-charts/src/canvas-types.ts
  • packages/octane-charts/src/index.ts
  • packages/octane-charts/src/renderer-types.ts
  • packages/octane-charts/src/types.ts
  • packages/octane-charts/src/types.type-test.ts
  • packages/preact-charts/src/index.ts
  • packages/react-charts/README.md
  • packages/react-charts/src/CanvasChart.tsx
  • packages/react-charts/src/Chart.test.tsx
  • packages/react-charts/src/Chart.tsx
  • packages/react-charts/src/RendererChart.tsx
  • packages/react-charts/src/index.ts
  • packages/react-native-charts/README.md
  • packages/react-native-charts/src/Chart.test.tsx
  • packages/react-native-charts/src/Chart.tsx
  • packages/react-native-charts/src/SvgScene.test.tsx
  • packages/react-native-charts/src/SvgScene.tsx
  • packages/react-native-charts/src/Tooltip.test.ts
  • packages/react-native-charts/src/Tooltip.tsx
  • packages/react-native-charts/src/interaction.ts
  • packages/solid-charts/src/index.ts
  • packages/svelte-charts/src/index.ts
  • packages/svelte-charts/tests/TooltipBodyFixture.svelte
  • packages/vue-charts/src/index.ts
  • scripts/check-packed-consumers.mjs
  • scripts/docs-contract.mjs
  • scripts/evaluate-chart-authoring.mjs
  • scripts/measure-bundles.mjs
  • scripts/public-callback-contract.mjs

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


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.

@nx-cloud

nx-cloud Bot commented Aug 9, 2026

Copy link
Copy Markdown

View your CI Pipeline Execution ↗ for commit 57e8df8

Command Status Duration Result
nx run charts-workspace:ci-distributed ✅ Succeeded 2m 20s View ↗
nx run charts-workspace:package-check ✅ Succeeded <1s View ↗
nx run charts-workspace:benchmark-check ✅ Succeeded <1s View ↗

☁️ Nx Cloud last updated this comment at 2026-08-09 03:50:25 UTC

@tannerlinsley
tannerlinsley merged commit 35832f7 into main Aug 9, 2026
18 checks passed
@tannerlinsley
tannerlinsley deleted the taren/public-api-harmonization-release branch August 9, 2026 03:51
@github-actions github-actions Bot mentioned this pull request Aug 9, 2026
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