|
1 | 1 | # LayerChart |
2 | 2 |
|
| 3 | +## 2.0.0-next.49 |
| 4 | + |
| 5 | +### Minor Changes |
| 6 | + |
| 7 | +- feat(Labels): Add `smart` placement option ([#799](https://github.com/techniq/layerchart/pull/799)) |
| 8 | + |
| 9 | + New `placement="smart"` mode that dynamically positions labels based on neighboring point values (peak, trough, rising, falling) to reduce overlapping. |
| 10 | + |
| 11 | +- 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)) |
| 12 | + |
| 13 | +- 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)) |
| 14 | + |
| 15 | +- feat(Spline): Support function-valued `stroke`, `fill`, and `opacity` for per-segment styling ([#449](https://github.com/techniq/layerchart/pull/449)) |
| 16 | + |
| 17 | +- feat(Text): Add `format` prop and tween numeric `value` when `motion` is configured ([#449](https://github.com/techniq/layerchart/pull/449)) |
| 18 | + |
| 19 | +### Patch Changes |
| 20 | + |
| 21 | +- 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)) |
| 22 | + |
| 23 | +- perf: Optimize primitive component instantiation (~3-5x faster for Rect, Circle, Ellipse, Line, Text, Path, Group) ([#449](https://github.com/techniq/layerchart/pull/449)) |
| 24 | + - `createMotion`: Fast-path passthrough when no `motion` prop is provided, avoiding `$state`/`$effect` overhead per axis |
| 25 | + - `createDataMotionMap`: Short-circuit when `motion` is `undefined`, skipping `parseMotionProp` overhead |
| 26 | + - `createKey`: Only create fill/stroke key trackers in canvas layer (skipped for SVG/HTML) |
| 27 | + - `registerComponent`: Skip `registerMark` for empty `MarkInfo` (pixel-mode marks) |
| 28 | + - All primitives: Skip `$effect` for data motion tracking when no motion is configured |
| 29 | + - Rect/Image: Avoid per-axis `parseMotionProp` calls when `motion` is `undefined` |
| 30 | + |
| 31 | +- feat(Marker): Add `square` and `square-stroke` types ([#805](https://github.com/techniq/layerchart/pull/805)) |
| 32 | + |
| 33 | +- 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)) |
| 34 | + |
| 35 | +- 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)) |
| 36 | + |
| 37 | +- 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)) |
| 38 | + |
| 39 | +- 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)) |
| 40 | + |
| 41 | +- feat(Raster, Contour): support bounded geo raster overlays with projected interpolation ([#449](https://github.com/techniq/layerchart/pull/449)) |
| 42 | + |
| 43 | +- feat: Add Month component ([#671](https://github.com/techniq/layerchart/pull/671)) |
| 44 | + |
| 45 | +- 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)) |
| 46 | + |
3 | 47 | ## 2.0.0-next.48 |
4 | 48 |
|
5 | 49 | ### Patch Changes |
|
0 commit comments