Skip to content

Isometric transform fixes - #936

Merged
techniq merged 1 commit into
mainfrom
sean-zlai/isometric-transform-fixes
Oct 10, 2026
Merged

techniq merged 1 commit into
mainfrom
sean-zlai/isometric-transform-fixes

Conversation

@techniq

@techniq techniq commented Oct 10, 2026

Copy link
Copy Markdown
Owner

No description provided.

- Preserve dragged isometric angles and initialize newly added views correctly
- Prevent pan, rotate, and pinch release clicks from reaching underlying marks
@changeset-bot

changeset-bot Bot commented Oct 10, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: a6eb74e

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
layerchart Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@pkg-pr-new

pkg-pr-new Bot commented Oct 10, 2026

Copy link
Copy Markdown

Open in StackBlitz

npm i https://pkg.pr.new/layerchart@936

commit: a6eb74e

@github-actions

github-actions Bot commented Oct 10, 2026 •

Copy link
Copy Markdown
Contributor
built with Refined Cloudflare Pages Action

⚡ Cloudflare Pages Deployment

Name Status Preview Last Commit
layerchart ✅ Ready (View Log) Visit Preview a6eb74e

@github-actions

Copy link
Copy Markdown
Contributor

Bundle Size Analysis

Use-Case Scenarios

Core (7 changed)
Scenario Current New Change
🟡 core-canvas 240.74 KB
62.22 gz
241.12 KB
62.34 gz
+0.38 KB (+0.2%)
+0.11 gz (+0.2%)
🟡 core-line 239.80 KB
61.07 gz
240.18 KB
61.15 gz
+0.38 KB (+0.2%)
+0.08 gz (+0.1%)
🟡 core-scatter 232.39 KB
58.86 gz
232.77 KB
58.97 gz
+0.38 KB (+0.2%)
+0.11 gz (+0.2%)
🟡 core-geo 225.76 KB
57.90 gz
226.14 KB
58.02 gz
+0.38 KB (+0.2%)
+0.11 gz (+0.2%)
🟡 core-html 225.06 KB
57.44 gz
225.44 KB
57.56 gz
+0.38 KB (+0.2%)
+0.12 gz (+0.2%)
🟡 core-svg 223.11 KB
56.96 gz
223.49 KB
57.09 gz
+0.38 KB (+0.2%)
+0.14 gz (+0.2%)
🟡 core 223.11 KB
56.84 gz
223.48 KB
56.94 gz
+0.38 KB (+0.2%)
+0.10 gz (+0.2%)
Base (agnostic) (4 changed)
Scenario Current New Change
🟡 base-svg-agnostic 382.79 KB
89.12 gz
383.17 KB
89.22 gz
+0.38 KB (+0.1%)
+0.10 gz (+0.1%)
🟡 base-canvas-agnostic 382.79 KB
89.12 gz
383.17 KB
89.22 gz
+0.38 KB (+0.1%)
+0.10 gz (+0.1%)
🟡 base-html-agnostic 382.79 KB
89.12 gz
383.17 KB
89.22 gz
+0.38 KB (+0.1%)
+0.10 gz (+0.1%)
🟡 base 382.78 KB
89.11 gz
383.16 KB
89.22 gz
+0.38 KB (+0.1%)
+0.10 gz (+0.1%)
Base (layer-specific) (3 changed)
Scenario Current New Change
🟡 base-canvas 370.04 KB
86.50 gz
370.41 KB
86.60 gz
+0.38 KB (+0.1%)
+0.10 gz (+0.1%)
🟡 base-html 361.82 KB
83.99 gz
362.20 KB
84.08 gz
+0.38 KB (+0.1%)
+0.10 gz (+0.1%)
🟡 base-svg 359.91 KB
83.54 gz
360.29 KB
83.65 gz
+0.38 KB (+0.1%)
+0.11 gz (+0.1%)
Cartesian charts (27 changed)
Scenario Current New Change
🟡 PieChart 425.66 KB
98.38 gz
426.03 KB
98.48 gz
+0.38 KB (+0.1%)
+0.10 gz (+0.1%)
🟡 ArcChart 418.67 KB
97.01 gz
419.05 KB
97.11 gz
+0.38 KB (+0.1%)
+0.10 gz (+0.1%)
🟡 LineChart 414.06 KB
96.47 gz
414.44 KB
96.58 gz
+0.38 KB (+0.1%)
+0.11 gz (+0.1%)
🟡 PieChart-canvas 410.91 KB
95.36 gz
411.29 KB
95.44 gz
+0.38 KB (+0.1%)
+0.08 gz (+0.1%)
🟡 AreaChart 406.38 KB
94.20 gz
406.75 KB
94.28 gz
+0.38 KB (+0.1%)
+0.08 gz (+0.1%)
🟡 ArcChart-canvas 404.50 KB
94.12 gz
404.88 KB
94.21 gz
+0.38 KB (+0.1%)
+0.09 gz (+0.1%)
🟡 area-chart 401.77 KB
93.16 gz
402.15 KB
93.25 gz
+0.38 KB (+0.1%)
+0.09 gz (+0.1%)
🟡 PieChart-svg 400.95 KB
92.54 gz
401.33 KB
92.65 gz
+0.38 KB (+0.1%)
+0.11 gz (+0.1%)
🟡 line-chart-interactive 399.99 KB
92.96 gz
400.37 KB
93.06 gz
+0.38 KB (+0.1%)
+0.10 gz (+0.1%)
🟡 pie-chart 396.31 KB
92.10 gz
396.69 KB
92.20 gz
+0.38 KB (+0.1%)
+0.10 gz (+0.1%)
🟡 ArcChart-svg 394.53 KB
91.21 gz
394.91 KB
91.31 gz
+0.38 KB (+0.1%)
+0.10 gz (+0.1%)
🟡 BarChart 394.14 KB
91.50 gz
394.52 KB
91.60 gz
+0.38 KB (+0.1%)
+0.11 gz (+0.1%)
🟡 AreaChart-canvas 392.98 KB
91.45 gz
393.36 KB
91.55 gz
+0.38 KB (+0.1%)
+0.11 gz (+0.1%)
🟡 bar-chart 388.08 KB
90.20 gz
388.46 KB
90.31 gz
+0.38 KB (+0.1%)
+0.11 gz (+0.1%)
🟡 ScatterChart 387.64 KB
90.18 gz
388.02 KB
90.28 gz
+0.38 KB (+0.1%)
+0.10 gz (+0.1%)
🟡 scatter-chart 383.87 KB
89.41 gz
384.25 KB
89.51 gz
+0.38 KB (+0.1%)
+0.10 gz (+0.1%)
🟡 line-chart 383.29 KB
89.17 gz
383.66 KB
89.27 gz
+0.38 KB (+0.1%)
+0.10 gz (+0.1%)
🟡 AreaChart-svg 382.88 KB
88.46 gz
383.25 KB
88.58 gz
+0.38 KB (+0.1%)
+0.12 gz (+0.1%)
🟡 BarChart-canvas 380.44 KB
88.71 gz
380.81 KB
88.81 gz
+0.38 KB (+0.1%)
+0.10 gz (+0.1%)
🟡 LineChart-canvas 377.01 KB
88.07 gz
377.39 KB
88.15 gz
+0.38 KB (+0.1%)
+0.09 gz (+0.1%)
🟡 ScatterChart-canvas 374.16 KB
87.38 gz
374.54 KB
87.46 gz
+0.38 KB (+0.1%)
+0.09 gz (+0.1%)
🟡 BarChart-svg 370.33 KB
85.76 gz
370.71 KB
85.85 gz
+0.38 KB (+0.1%)
+0.09 gz (+0.1%)
🟡 line-chart-canvas 370.06 KB
86.52 gz
370.44 KB
86.62 gz
+0.38 KB (+0.1%)
+0.10 gz (+0.1%)
🟡 LineChart-svg 366.91 KB
85.10 gz
367.29 KB
85.20 gz
+0.38 KB (+0.1%)
+0.10 gz (+0.1%)
🟡 ScatterChart-svg 364.06 KB
84.39 gz
364.43 KB
84.49 gz
+0.38 KB (+0.1%)
+0.10 gz (+0.1%)
🟡 line-chart-html 361.84 KB
84.00 gz
362.22 KB
84.09 gz
+0.38 KB (+0.1%)
+0.10 gz (+0.1%)
🟡 line-chart-svg 359.93 KB
83.55 gz
360.31 KB
83.66 gz
+0.38 KB (+0.1%)
+0.11 gz (+0.1%)
Geo (3 changed)
Scenario Current New Change
🟡 geo-full 457.49 KB
108.50 gz
457.87 KB
108.59 gz
+0.38 KB (+0.1%)
+0.09 gz (+0.1%)
🟡 geo-tiles 405.04 KB
94.78 gz
405.42 KB
94.88 gz
+0.38 KB (+0.1%)
+0.10 gz (+0.1%)
🟡 geo 399.92 KB
93.11 gz
400.30 KB
93.21 gz
+0.38 KB (+0.1%)
+0.11 gz (+0.1%)
Hierarchy (4 changed)
Scenario Current New Change
🟡 hierarchy-tree 393.57 KB
92.07 gz
393.95 KB
92.17 gz
+0.38 KB (+0.1%)
+0.10 gz (+0.1%)
🟡 hierarchy-treemap 390.46 KB
91.29 gz
390.84 KB
91.38 gz
+0.38 KB (+0.1%)
+0.09 gz (+0.1%)
🟡 hierarchy-pack 389.87 KB
91.19 gz
390.25 KB
91.29 gz
+0.38 KB (+0.1%)
+0.10 gz (+0.1%)
🟡 dodge 387.59 KB
90.53 gz
387.97 KB
90.64 gz
+0.38 KB (+0.1%)
+0.11 gz (+0.1%)
Graph / network (4 changed)
Scenario Current New Change
🟡 dagre 452.40 KB
108.08 gz
452.77 KB
108.20 gz
+0.38 KB (+0.1%)
+0.13 gz (+0.1%)
🟡 force 395.99 KB
92.92 gz
396.37 KB
93.02 gz
+0.38 KB (+0.1%)
+0.10 gz (+0.1%)
🟡 sankey 395.78 KB
92.26 gz
396.16 KB
92.36 gz
+0.38 KB (+0.1%)
+0.10 gz (+0.1%)
🟡 chord 392.46 KB
91.34 gz
392.84 KB
91.43 gz
+0.38 KB (+0.1%)
+0.09 gz (+0.1%)
Components (1 changed)
Scenario Current New Change
🟡 TransformContext 27.45 KB
6.88 gz
27.67 KB
6.93 gz
+0.23 KB (+0.8%)
+0.05 gz (+0.7%)
Worst case (1 changed)
Scenario Current New Change
🟡 all 1111.04 KB
262.38 gz
1111.64 KB
262.54 gz
+0.60 KB (+0.1%)
+0.17 gz (+0.1%)

Understanding this report
  • Use-case scenarios measure the bundle cost of common chart configurations (e.g. a line chart with axes)
  • Individual components measure each component imported in isolation
  • Svelte runtime is excluded; sizes reflect layerchart + its dependencies (d3, etc.)
  • When multiple components share dependencies (e.g. d3-scale), the real-world cost is lower than the sum of individual sizes
  • Changes smaller than 10 bytes or 0.1% are considered insignificant

@techniq
techniq merged commit 93fc811 into main Oct 10, 2026
10 checks passed
@techniq
techniq deleted the sean-zlai/isometric-transform-fixes branch October 10, 2026 00:25
@github-actions github-actions Bot mentioned this pull request Oct 10, 2026
renovate Bot added a commit to cigaleapp/cigale that referenced this pull request Oct 19, 2026
##### [v2.6.1](https://github.com/techniq/layerchart/releases/tag/layerchart%402.6.1)

##### Patch Changes

- fix(TransformContext): Don't click what a pan, rotate, or pinch is released over ([#936](techniq/layerchart#936))

- fix(Chart): Don't ease an `isometric` view's angles while dragging ([#936](techniq/layerchart#936))

- fix(Chart): Ease an `isometric` view added after the chart was created, starting it at its own angles ([#936](techniq/layerchart#936))
##### [v2.6.0](https://github.com/techniq/layerchart/releases/tag/layerchart%402.6.0)

##### Minor Changes

- feat(Contour): Stroke unfilled contours in the bands' colors when no `stroke` is given ([#934](techniq/layerchart#934))

- feat(Frame|Grid|Axis|Highlight): Draw an `isometric` chart's back walls, their gridlines (`<Grid z>`), a height axis (`<Axis placement="back">`), and highlights at a point's height ([#934](techniq/layerchart#934))

- feat: Support `z` heights on an `isometric` chart — boxes (`Rect`, `Cell`, `Calendar`, `Bars` with `valueAxis="z"`), floating `Circle`, `Text`, `Labels` and `ArcLabel`, `Line` stems, and extruded `Polygon`, `Path`, `GeoPath`, `Contour`, `Pie`, `Area` and `Spline` ([#934](techniq/layerchart#934))

- breaking(Chart|Spline|Area): Rename the `z` grouping channel to `g` (ex. `<Spline g="id">`), freeing `z` for a third position ([#934](techniq/layerchart#934))

- feat(TransformContext): Switch `mode` without remounting the chart ([#934](techniq/layerchart#934))

- feat(Chart): Support `view={isometric}` to draw the plot area as a floor seen at an angle, turned with `isometric({ rotate, tilt })` or by dragging (`transform={{ drag: 'rotate' }}`), with `viewport` text facing the viewer ([#934](techniq/layerchart#934))

- feat(Ellipse): Support `rotate` to turn the ellipse about its center ([#934](techniq/layerchart#934))

##### Patch Changes

- fix(TransformContext): Zoom in / out about the middle of the plot area, and center a `canvas` zoom without resetting its scale ([#934](techniq/layerchart#934))

- fix(GeoPath): Start a tweened map shape as itself rather than rising from a baseline ([#934](techniq/layerchart#934))

- fix(Axis): Size an `angle` axis' ticks by its circle rather than the chart's width, so a continuous angle scale's tick count no longer changes with width (square charts get more ticks) ([#934](techniq/layerchart#934))

- fix(Link): Draw links whose ends share an `x` or `y` ([#934](techniq/layerchart#934))

- fix(BrushContext): Draw and measure the brush through a `canvas` pan / zoom ([#934](techniq/layerchart#934))

- fix(TooltipContext): Account for `transform.mode: 'canvas'` pan / zoom in bisect modes and `'data'` tooltip placement ([#934](techniq/layerchart#934))
##### [v2.5.2](https://github.com/techniq/layerchart/releases/tag/layerchart%402.5.2)

##### Patch Changes

- fix(ArcChart|AreaChart|BarChart|LineChart|PieChart|ScatterChart): Support `bind:ref`, and `bind:context` on the `.svg` / `.canvas` variants ([#930](techniq/layerchart#930)) ([#931](techniq/layerchart#931))
renovate Bot added a commit to cigaleapp/cigale that referenced this pull request Oct 19, 2026
##### [v2.7.0](https://github.com/techniq/layerchart/releases/tag/layerchart%402.7.0)

##### Minor Changes

- feat(Axis): Add `domain` to label the chart's scale in other units, such as a secondary axis ([#941](techniq/layerchart#941))

- feat(TooltipItem): Add `seriesKey` to simplify setting the label, color, and value from a series ([#941](techniq/layerchart#941))

##### Patch Changes

- fix(Axis): Only drop the last tick of an `xInterval` / `yInterval` axis when it falls on the domain's end ([#941](techniq/layerchart#941))

- fix(Axis): Label `scaleUtc()` ticks in UTC when no `format` is given ([#941](techniq/layerchart#941))

- fix(BarChart): Place a grouped series in its own sub-band when its `value` is an accessor or a field other than its `key` ([#941](techniq/layerchart#941))

- fix(AreaChart|BarChart|LineChart|ScatterChart|PieChart|ArcChart|Layer): Render server-side with `ssr` instead of overflowing the stack ([#940](techniq/layerchart#940)) ([#943](techniq/layerchart#943))
##### [v2.6.1](https://github.com/techniq/layerchart/releases/tag/layerchart%402.6.1)

##### Patch Changes

- fix(TransformContext): Don't click what a pan, rotate, or pinch is released over ([#936](techniq/layerchart#936))

- fix(Chart): Don't ease an `isometric` view's angles while dragging ([#936](techniq/layerchart#936))

- fix(Chart): Ease an `isometric` view added after the chart was created, starting it at its own angles ([#936](techniq/layerchart#936))
##### [v2.6.0](https://github.com/techniq/layerchart/releases/tag/layerchart%402.6.0)

##### Minor Changes

- feat(Contour): Stroke unfilled contours in the bands' colors when no `stroke` is given ([#934](techniq/layerchart#934))

- feat(Frame|Grid|Axis|Highlight): Draw an `isometric` chart's back walls, their gridlines (`<Grid z>`), a height axis (`<Axis placement="back">`), and highlights at a point's height ([#934](techniq/layerchart#934))

- feat: Support `z` heights on an `isometric` chart — boxes (`Rect`, `Cell`, `Calendar`, `Bars` with `valueAxis="z"`), floating `Circle`, `Text`, `Labels` and `ArcLabel`, `Line` stems, and extruded `Polygon`, `Path`, `GeoPath`, `Contour`, `Pie`, `Area` and `Spline` ([#934](techniq/layerchart#934))

- breaking(Chart|Spline|Area): Rename the `z` grouping channel to `g` (ex. `<Spline g="id">`), freeing `z` for a third position ([#934](techniq/layerchart#934))

- feat(TransformContext): Switch `mode` without remounting the chart ([#934](techniq/layerchart#934))

- feat(Chart): Support `view={isometric}` to draw the plot area as a floor seen at an angle, turned with `isometric({ rotate, tilt })` or by dragging (`transform={{ drag: 'rotate' }}`), with `viewport` text facing the viewer ([#934](techniq/layerchart#934))

- feat(Ellipse): Support `rotate` to turn the ellipse about its center ([#934](techniq/layerchart#934))

##### Patch Changes

- fix(TransformContext): Zoom in / out about the middle of the plot area, and center a `canvas` zoom without resetting its scale ([#934](techniq/layerchart#934))

- fix(GeoPath): Start a tweened map shape as itself rather than rising from a baseline ([#934](techniq/layerchart#934))

- fix(Axis): Size an `angle` axis' ticks by its circle rather than the chart's width, so a continuous angle scale's tick count no longer changes with width (square charts get more ticks) ([#934](techniq/layerchart#934))

- fix(Link): Draw links whose ends share an `x` or `y` ([#934](techniq/layerchart#934))

- fix(BrushContext): Draw and measure the brush through a `canvas` pan / zoom ([#934](techniq/layerchart#934))

- fix(TooltipContext): Account for `transform.mode: 'canvas'` pan / zoom in bisect modes and `'data'` tooltip placement ([#934](techniq/layerchart#934))
##### [v2.5.2](https://github.com/techniq/layerchart/releases/tag/layerchart%402.5.2)

##### Patch Changes

- fix(ArcChart|AreaChart|BarChart|LineChart|PieChart|ScatterChart): Support `bind:ref`, and `bind:context` on the `.svg` / `.canvas` variants ([#930](techniq/layerchart#930)) ([#931](techniq/layerchart#931))

This branch was successfully deployed

1 active deployment
Preview — a6eb74e6 Deployed Oct 10, 2026 by github-actions[bot]
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