Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions .changeset/pre.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,13 @@
},
"changesets": [
"add-boxplot-component",
"add-smart-label-placement",
"add-stats-utils",
"add-violin-component",
"afraid-jobs-say",
"area-y0-baseline-default",
"band-scale-transform-brush",
"band-tick-spacing",
"beige-bears-joke",
"beige-doodles-shout",
"beige-trams-check",
Expand Down Expand Up @@ -77,10 +80,15 @@
"evil-hoops-return",
"fair-phones-wink",
"fast-insects-deny",
"fast-primitives-perf",
"fiery-lamps-tickle",
"five-stamps-drum",
"fix-area-all-zero",
"fix-barchart-diverging-edge-rounding",
"fix-geopath-canvas-tooltip",
"fix-implicit-series-domain",
"fix-scale-band-invert",
"fix-transform-projection-reactivity",
"flat-arcs-heal",
"flat-cases-enter",
"four-lizards-win",
Expand All @@ -93,7 +101,9 @@
"funny-otters-kick",
"funny-wasps-heal",
"geo-context-rename",
"geo-relative-scale-translate-extent",
"giant-donuts-yell",
"globe-scroll-zoom",
"good-glasses-design",
"green-hotels-strive",
"green-mirrors-retire",
Expand Down Expand Up @@ -130,6 +140,7 @@
"metal-flowers-sneeze",
"mighty-weeks-try",
"modern-nails-kiss",
"neat-vapors-shift",
"new-pans-serve",
"new-turtles-clean",
"nice-regions-ask",
Expand All @@ -146,6 +157,7 @@
"pink-flies-worry",
"pink-hornets-rest",
"pink-showers-hunt",
"plain-rings-itch",
"polite-parts-learn",
"poor-clocks-occur",
"pretty-roses-invent",
Expand Down Expand Up @@ -195,6 +207,7 @@
"spicy-gifts-float",
"spicy-seals-kiss",
"spline-motion-support",
"spline-per-segment-styling",
"spotty-plums-invite",
"spotty-rules-taste",
"swift-gifts-flow",
Expand All @@ -203,6 +216,7 @@
"tame-lamps-report",
"tangy-lies-strive",
"tasty-states-raise",
"text-format-tween",
"thick-months-join",
"thirty-glasses-pick",
"three-cities-chew",
Expand All @@ -220,6 +234,7 @@
"warm-mammals-deny",
"warm-women-glow",
"weak-donuts-tan",
"wet-cups-act",
"whole-women-listen",
"wide-berries-invite",
"wide-pillows-march",
Expand Down
44 changes: 44 additions & 0 deletions packages/layerchart/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,49 @@
# LayerChart

## 2.0.0-next.49

### Minor Changes

- feat(Labels): Add `smart` placement option ([#799](https://github.com/techniq/layerchart/pull/799))

New `placement="smart"` mode that dynamically positions labels based on neighboring point values (peak, trough, rising, falling) to reduce overlapping.

- feat(Chart, BrushState): Add band scale (categorical) support for transform pan/zoom and brush selection. Uses range-rescaling pattern to smoothly zoom and pan categorical bar charts. Automatically constrains panning to data boundaries and prevents zooming out past initial view. ([#449](https://github.com/techniq/layerchart/pull/449))

- feat(Chart): In projection mode, `scaleExtent` and `translateExtent` are now interpreted as relative values (like d3-zoom). `scaleExtent: [0.5, 8]` means 0.5x to 8x of the fitted projection scale. `translateExtent` is offset from the initial fitted position in pixels. ([#449](https://github.com/techniq/layerchart/pull/449))

- feat(Spline): Support function-valued `stroke`, `fill`, and `opacity` for per-segment styling ([#449](https://github.com/techniq/layerchart/pull/449))

- feat(Text): Add `format` prop and tween numeric `value` when `motion` is configured ([#449](https://github.com/techniq/layerchart/pull/449))

### Patch Changes

- Support `tickSpacing` for band scales on Axis, thinning tick labels when the domain is larger than the available space. Automatically shows more tick labels when zoomed in on band scale transforms. ([#449](https://github.com/techniq/layerchart/pull/449))

- perf: Optimize primitive component instantiation (~3-5x faster for Rect, Circle, Ellipse, Line, Text, Path, Group) ([#449](https://github.com/techniq/layerchart/pull/449))
- `createMotion`: Fast-path passthrough when no `motion` prop is provided, avoiding `$state`/`$effect` overhead per axis
- `createDataMotionMap`: Short-circuit when `motion` is `undefined`, skipping `parseMotionProp` overhead
- `createKey`: Only create fill/stroke key trackers in canvas layer (skipped for SVG/HTML)
- `registerComponent`: Skip `registerMark` for empty `MarkInfo` (pixel-mode marks)
- All primitives: Skip `$effect` for data motion tracking when no motion is configured
- Rect/Image: Avoid per-axis `parseMotionProp` calls when `motion` is `undefined`

- feat(Marker): Add `square` and `square-stroke` types ([#805](https://github.com/techniq/layerchart/pull/805))

- fix(GeoPath): Fix canvas tooltip by conditionally passing onclick to Path, preventing non-interactive overlays from capturing hit canvas events ([#449](https://github.com/techniq/layerchart/pull/449))

- fix(scaleBandInvert): Account for range offset in band scale inversion. Previously assumed range started at 0, causing incorrect pixel-to-category mapping when the scale range was transformed. ([#449](https://github.com/techniq/layerchart/pull/449))

- fix(TransformContext): Reactively sync `processTranslate` and `disablePointer` to TransformState when props change. Fixes inverted globe dragging when dynamically switching between flat and globe projections. ([#449](https://github.com/techniq/layerchart/pull/449))

- fix(Chart): Enable scroll zoom for globe projections by including `scale: true` in default `transformApply` for globes. ([#449](https://github.com/techniq/layerchart/pull/449))

- feat(Raster, Contour): support bounded geo raster overlays with projected interpolation ([#449](https://github.com/techniq/layerchart/pull/449))

- feat: Add Month component ([#671](https://github.com/techniq/layerchart/pull/671))

- fix(LinearGradient, RadialGradient): Register as `group` instead of `mark` in canvas component tree so wrapped children (e.g. Arc, Path) are rendered ([#449](https://github.com/techniq/layerchart/pull/449))

## 2.0.0-next.48

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/layerchart/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"license": "MIT",
"repository": "techniq/layerchart",
"homepage": "https://layerchart.com",
"version": "2.0.0-next.48",
"version": "2.0.0-next.49",
"scripts": {
"dev": "pnpm package:watch",
"package": "svelte-package",
Expand Down