Repository navigation
feat!: complete OpenChart v9 chart, map, and reader design - #137
Merged
Merged
Conversation
|
Important Review skippedToo 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
⛔ Files ignored due to path filters: 114
📒 Files selected for processing: 580
You can disable this status message by setting the
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. Comment |
…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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
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.The v9 migration guide covers removals, changed defaults, wrappers, and the optional new APIs.
migrateSpecV8remains pure/idempotent; released-8.9.1 fixtures test expressible styling preservation and explicitly report layout differences that cannot be restored.Verification
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-reviewerpass 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.