layerchart@2.0.0-next.49
Pre-releaseMinor Changes
-
feat(Labels): Add
smartplacement option (#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)
-
feat(Chart): In projection mode,
scaleExtentandtranslateExtentare now interpreted as relative values (like d3-zoom).scaleExtent: [0.5, 8]means 0.5x to 8x of the fitted projection scale.translateExtentis offset from the initial fitted position in pixels. (#449) -
feat(Spline): Support function-valued
stroke,fill, andopacityfor per-segment styling (#449) -
feat(Text): Add
formatprop and tween numericvaluewhenmotionis configured (#449)
Patch Changes
-
Support
tickSpacingfor 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) -
perf: Optimize primitive component instantiation (~3-5x faster for Rect, Circle, Ellipse, Line, Text, Path, Group) (#449)
createMotion: Fast-path passthrough when nomotionprop is provided, avoiding$state/$effectoverhead per axiscreateDataMotionMap: Short-circuit whenmotionisundefined, skippingparseMotionPropoverheadcreateKey: Only create fill/stroke key trackers in canvas layer (skipped for SVG/HTML)registerComponent: SkipregisterMarkfor emptyMarkInfo(pixel-mode marks)- All primitives: Skip
$effectfor data motion tracking when no motion is configured - Rect/Image: Avoid per-axis
parseMotionPropcalls whenmotionisundefined
-
feat(Marker): Add
squareandsquare-stroketypes (#805) -
fix(GeoPath): Fix canvas tooltip by conditionally passing onclick to Path, preventing non-interactive overlays from capturing hit canvas events (#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)
-
fix(TransformContext): Reactively sync
processTranslateanddisablePointerto TransformState when props change. Fixes inverted globe dragging when dynamically switching between flat and globe projections. (#449) -
fix(Chart): Enable scroll zoom for globe projections by including
scale: truein defaulttransformApplyfor globes. (#449) -
feat(Raster, Contour): support bounded geo raster overlays with projected interpolation (#449)
-
feat: Add Month component (#671)
-
fix(LinearGradient, RadialGradient): Register as
groupinstead ofmarkin canvas component tree so wrapped children (e.g. Arc, Path) are rendered (#449)