@octanejs/visx 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +67 -0
- package/UPSTREAM.md +52 -0
- package/package.json +161 -0
- package/src/a11y/components/ChartA11yAnnouncer.tsrx +40 -0
- package/src/a11y/components/ChartA11yAnnouncer.tsrx.d.ts +14 -0
- package/src/a11y/components/ChartA11yDataTable.tsrx +40 -0
- package/src/a11y/components/ChartA11yDataTable.tsrx.d.ts +9 -0
- package/src/a11y/generators/ariaProps.ts +79 -0
- package/src/a11y/generators/dataTableHTML.ts +24 -0
- package/src/a11y/generators/description.ts +125 -0
- package/src/a11y/index.ts +35 -0
- package/src/a11y/keyboard/stateMachine.ts +231 -0
- package/src/a11y/react/index.ts +59 -0
- package/src/a11y/server.ts +29 -0
- package/src/a11y/types.ts +104 -0
- package/src/a11y/useChartA11y.tsrx +144 -0
- package/src/a11y/useChartA11y.tsrx.d.ts +27 -0
- package/src/a11y/useChartKeyboardNav.tsrx +234 -0
- package/src/a11y/useChartKeyboardNav.tsrx.d.ts +26 -0
- package/src/a11y/utils/data.ts +80 -0
- package/src/a11y/utils/format.ts +73 -0
- package/src/a11y/utils/table.ts +81 -0
- package/src/annotation/components/Annotation.tsrx +14 -0
- package/src/annotation/components/Annotation.tsrx.d.ts +8 -0
- package/src/annotation/components/CircleSubject.tsrx +37 -0
- package/src/annotation/components/CircleSubject.tsrx.d.ts +12 -0
- package/src/annotation/components/Connector.tsrx +75 -0
- package/src/annotation/components/Connector.tsrx.d.ts +14 -0
- package/src/annotation/components/EditableAnnotation.tsrx +179 -0
- package/src/annotation/components/EditableAnnotation.tsrx.d.ts +33 -0
- package/src/annotation/components/HtmlLabel.tsrx +93 -0
- package/src/annotation/components/HtmlLabel.tsrx.d.ts +10 -0
- package/src/annotation/components/Label.tsrx +249 -0
- package/src/annotation/components/Label.tsrx.d.ts +60 -0
- package/src/annotation/components/LabelAnchorLine.tsrx +32 -0
- package/src/annotation/components/LabelAnchorLine.tsrx.d.ts +12 -0
- package/src/annotation/components/LineSubject.tsrx +50 -0
- package/src/annotation/components/LineSubject.tsrx.d.ts +21 -0
- package/src/annotation/context/AnnotationContext.tsrx +6 -0
- package/src/annotation/context/AnnotationContext.tsrx.d.ts +4 -0
- package/src/annotation/index.ts +18 -0
- package/src/annotation/types/index.ts +10 -0
- package/src/axis/axis/Axis.tsrx +54 -0
- package/src/axis/axis/Axis.tsrx.d.ts +7 -0
- package/src/axis/axis/AxisBottom.tsrx +37 -0
- package/src/axis/axis/AxisBottom.tsrx.d.ts +10 -0
- package/src/axis/axis/AxisLeft.tsrx +37 -0
- package/src/axis/axis/AxisLeft.tsrx.d.ts +11 -0
- package/src/axis/axis/AxisRenderer.tsrx +102 -0
- package/src/axis/axis/AxisRenderer.tsrx.d.ts +3 -0
- package/src/axis/axis/AxisRight.tsrx +39 -0
- package/src/axis/axis/AxisRight.tsrx.d.ts +12 -0
- package/src/axis/axis/AxisTop.tsrx +38 -0
- package/src/axis/axis/AxisTop.tsrx.d.ts +11 -0
- package/src/axis/axis/Ticks.tsrx +56 -0
- package/src/axis/axis/Ticks.tsrx.d.ts +3 -0
- package/src/axis/constants/orientation.ts +12 -0
- package/src/axis/index.ts +10 -0
- package/src/axis/react/index.ts +5 -0
- package/src/axis/react/useAxis.tsrx +89 -0
- package/src/axis/react/useAxis.tsrx.d.ts +13 -0
- package/src/axis/types.ts +145 -0
- package/src/axis/utils/createPoint.ts +5 -0
- package/src/axis/utils/getAxisRangePaddingConfig.ts +11 -0
- package/src/axis/utils/getLabelTransform.ts +44 -0
- package/src/axis/utils/getTickFormatter.ts +19 -0
- package/src/axis/utils/getTickPosition.ts +28 -0
- package/src/bounds/enhancers/withBoundingRects.tsrx +59 -0
- package/src/bounds/enhancers/withBoundingRects.tsrx.d.ts +21 -0
- package/src/bounds/index.ts +6 -0
- package/src/brush/BaseBrush.tsrx +567 -0
- package/src/brush/BaseBrush.tsrx.d.ts +39 -0
- package/src/brush/Brush.tsrx +217 -0
- package/src/brush/Brush.tsrx.d.ts +56 -0
- package/src/brush/BrushCorner.tsrx +173 -0
- package/src/brush/BrushCorner.tsrx.d.ts +21 -0
- package/src/brush/BrushHandle.tsrx +222 -0
- package/src/brush/BrushHandle.tsrx.d.ts +33 -0
- package/src/brush/BrushOverlay.tsrx +18 -0
- package/src/brush/BrushOverlay.tsrx.d.ts +15 -0
- package/src/brush/BrushSelection.tsrx +181 -0
- package/src/brush/BrushSelection.tsrx.d.ts +27 -0
- package/src/brush/index.ts +9 -0
- package/src/brush/types.ts +62 -0
- package/src/brush/utils.ts +89 -0
- package/src/chart/config.ts +50 -0
- package/src/chart/domains.ts +47 -0
- package/src/chart/index.ts +33 -0
- package/src/chart/responsive.ts +3 -0
- package/src/chart/ticks.ts +90 -0
- package/src/chart/useChartDimensions.tsrx +74 -0
- package/src/chart/useChartDimensions.tsrx.d.ts +28 -0
- package/src/chord/Chord.tsrx +42 -0
- package/src/chord/Chord.tsrx.d.ts +22 -0
- package/src/chord/Ribbon.tsrx +63 -0
- package/src/chord/Ribbon.tsrx.d.ts +26 -0
- package/src/chord/index.ts +6 -0
- package/src/clip-path/clip-paths/CircleClipPath.tsrx +26 -0
- package/src/clip-path/clip-paths/CircleClipPath.tsrx.d.ts +14 -0
- package/src/clip-path/clip-paths/ClipPath.tsrx +21 -0
- package/src/clip-path/clip-paths/ClipPath.tsrx.d.ts +10 -0
- package/src/clip-path/clip-paths/RectClipPath.tsrx +28 -0
- package/src/clip-path/clip-paths/RectClipPath.tsrx.d.ts +15 -0
- package/src/clip-path/index.ts +4 -0
- package/src/curve/index.ts +21 -0
- package/src/delaunay/components/Polygon.tsrx +32 -0
- package/src/delaunay/components/Polygon.tsrx.d.ts +14 -0
- package/src/delaunay/delaunay.ts +17 -0
- package/src/delaunay/index.ts +4 -0
- package/src/delaunay/voronoi.ts +30 -0
- package/src/drag/Drag.tsrx +66 -0
- package/src/drag/Drag.tsrx.d.ts +17 -0
- package/src/drag/index.ts +13 -0
- package/src/drag/useDrag.tsrx +214 -0
- package/src/drag/useDrag.tsrx.d.ts +60 -0
- package/src/drag/util/clampNumber.ts +4 -0
- package/src/drag/util/getClosestPoint.ts +13 -0
- package/src/drag/util/raise.ts +8 -0
- package/src/drag/util/restrictPoint.ts +18 -0
- package/src/drag/util/useSamplesAlongPath.tsrx +26 -0
- package/src/drag/util/useSamplesAlongPath.tsrx.d.ts +3 -0
- package/src/drag/util/useStateWithCallback.tsrx +26 -0
- package/src/drag/util/useStateWithCallback.tsrx.d.ts +5 -0
- package/src/event/getXAndYFromEvent.ts +36 -0
- package/src/event/index.ts +3 -0
- package/src/event/localPoint.ts +18 -0
- package/src/event/localPointGeneric.ts +34 -0
- package/src/event/touchPoint.ts +2 -0
- package/src/event/typeGuards.ts +37 -0
- package/src/event/types.ts +13 -0
- package/src/external.d.ts +3 -0
- package/src/geo/graticule/Graticule.tsrx +97 -0
- package/src/geo/graticule/Graticule.tsrx.d.ts +52 -0
- package/src/geo/index.ts +13 -0
- package/src/geo/projections/Albers.tsrx +10 -0
- package/src/geo/projections/Albers.tsrx.d.ts +7 -0
- package/src/geo/projections/AlbersUsa.tsrx +10 -0
- package/src/geo/projections/AlbersUsa.tsrx.d.ts +7 -0
- package/src/geo/projections/CustomProjection.tsrx +10 -0
- package/src/geo/projections/CustomProjection.tsrx.d.ts +7 -0
- package/src/geo/projections/EqualEarth.tsrx +10 -0
- package/src/geo/projections/EqualEarth.tsrx.d.ts +7 -0
- package/src/geo/projections/Mercator.tsrx +10 -0
- package/src/geo/projections/Mercator.tsrx.d.ts +7 -0
- package/src/geo/projections/NaturalEarth.tsrx +10 -0
- package/src/geo/projections/NaturalEarth.tsrx.d.ts +7 -0
- package/src/geo/projections/Orthographic.tsrx +10 -0
- package/src/geo/projections/Orthographic.tsrx.d.ts +7 -0
- package/src/geo/projections/Projection.tsrx +201 -0
- package/src/geo/projections/Projection.tsrx.d.ts +86 -0
- package/src/geo/types.ts +14 -0
- package/src/glyph/glyphs/Glyph.tsrx +18 -0
- package/src/glyph/glyphs/Glyph.tsrx.d.ts +13 -0
- package/src/glyph/glyphs/GlyphCircle.tsrx +46 -0
- package/src/glyph/glyphs/GlyphCircle.tsrx.d.ts +18 -0
- package/src/glyph/glyphs/GlyphCross.tsrx +46 -0
- package/src/glyph/glyphs/GlyphCross.tsrx.d.ts +18 -0
- package/src/glyph/glyphs/GlyphDiamond.tsrx +46 -0
- package/src/glyph/glyphs/GlyphDiamond.tsrx.d.ts +18 -0
- package/src/glyph/glyphs/GlyphDot.tsrx +29 -0
- package/src/glyph/glyphs/GlyphDot.tsrx.d.ts +17 -0
- package/src/glyph/glyphs/GlyphSquare.tsrx +46 -0
- package/src/glyph/glyphs/GlyphSquare.tsrx.d.ts +18 -0
- package/src/glyph/glyphs/GlyphStar.tsrx +45 -0
- package/src/glyph/glyphs/GlyphStar.tsrx.d.ts +18 -0
- package/src/glyph/glyphs/GlyphTriangle.tsrx +46 -0
- package/src/glyph/glyphs/GlyphTriangle.tsrx.d.ts +18 -0
- package/src/glyph/glyphs/GlyphWye.tsrx +45 -0
- package/src/glyph/glyphs/GlyphWye.tsrx.d.ts +18 -0
- package/src/glyph/index.ts +20 -0
- package/src/gradient/gradients/GradientDarkgreenGreen.tsrx +13 -0
- package/src/gradient/gradients/GradientDarkgreenGreen.tsrx.d.ts +6 -0
- package/src/gradient/gradients/GradientLightgreenGreen.tsrx +13 -0
- package/src/gradient/gradients/GradientLightgreenGreen.tsrx.d.ts +6 -0
- package/src/gradient/gradients/GradientOrangeRed.tsrx +13 -0
- package/src/gradient/gradients/GradientOrangeRed.tsrx.d.ts +6 -0
- package/src/gradient/gradients/GradientPinkBlue.tsrx +13 -0
- package/src/gradient/gradients/GradientPinkBlue.tsrx.d.ts +6 -0
- package/src/gradient/gradients/GradientPinkRed.tsrx +13 -0
- package/src/gradient/gradients/GradientPinkRed.tsrx.d.ts +6 -0
- package/src/gradient/gradients/GradientPurpleOrange.tsrx +13 -0
- package/src/gradient/gradients/GradientPurpleOrange.tsrx.d.ts +6 -0
- package/src/gradient/gradients/GradientPurpleRed.tsrx +13 -0
- package/src/gradient/gradients/GradientPurpleRed.tsrx.d.ts +6 -0
- package/src/gradient/gradients/GradientPurpleTeal.tsrx +13 -0
- package/src/gradient/gradients/GradientPurpleTeal.tsrx.d.ts +6 -0
- package/src/gradient/gradients/GradientSteelPurple.tsrx +13 -0
- package/src/gradient/gradients/GradientSteelPurple.tsrx.d.ts +6 -0
- package/src/gradient/gradients/GradientTealBlue.tsrx +13 -0
- package/src/gradient/gradients/GradientTealBlue.tsrx.d.ts +6 -0
- package/src/gradient/gradients/LinearGradient.tsrx +85 -0
- package/src/gradient/gradients/LinearGradient.tsrx.d.ts +37 -0
- package/src/gradient/gradients/RadialGradient.tsrx +43 -0
- package/src/gradient/gradients/RadialGradient.tsrx.d.ts +5 -0
- package/src/gradient/index.ts +16 -0
- package/src/grid/grids/Grid.tsrx +86 -0
- package/src/grid/grids/Grid.tsrx.d.ts +30 -0
- package/src/grid/grids/GridAngle.tsrx +74 -0
- package/src/grid/grids/GridAngle.tsrx.d.ts +29 -0
- package/src/grid/grids/GridColumns.tsrx +76 -0
- package/src/grid/grids/GridColumns.tsrx.d.ts +18 -0
- package/src/grid/grids/GridPolar.tsrx +189 -0
- package/src/grid/grids/GridPolar.tsrx.d.ts +123 -0
- package/src/grid/grids/GridRadial.tsrx +92 -0
- package/src/grid/grids/GridRadial.tsrx.d.ts +44 -0
- package/src/grid/grids/GridRows.tsrx +76 -0
- package/src/grid/grids/GridRows.tsrx.d.ts +18 -0
- package/src/grid/index.ts +11 -0
- package/src/grid/types.ts +40 -0
- package/src/grid/utils/getScaleBandwidth.ts +5 -0
- package/src/grid/utils/polarToCartesian.ts +16 -0
- package/src/group/Group.tsrx +33 -0
- package/src/group/Group.tsrx.d.ts +16 -0
- package/src/group/index.ts +2 -0
- package/src/heatmap/heatmaps/HeatmapCircle.tsrx +109 -0
- package/src/heatmap/heatmaps/HeatmapCircle.tsrx.d.ts +44 -0
- package/src/heatmap/heatmaps/HeatmapRect.tsrx +121 -0
- package/src/heatmap/heatmaps/HeatmapRect.tsrx.d.ts +49 -0
- package/src/heatmap/index.ts +11 -0
- package/src/heatmap/types.ts +22 -0
- package/src/hierarchy/HierarchyDefaultLink.tsrx +19 -0
- package/src/hierarchy/HierarchyDefaultLink.tsrx.d.ts +13 -0
- package/src/hierarchy/HierarchyDefaultNode.tsrx +7 -0
- package/src/hierarchy/HierarchyDefaultNode.tsrx.d.ts +9 -0
- package/src/hierarchy/HierarchyDefaultRectNode.tsrx +7 -0
- package/src/hierarchy/HierarchyDefaultRectNode.tsrx.d.ts +10 -0
- package/src/hierarchy/hierarchies/Cluster.tsrx +81 -0
- package/src/hierarchy/hierarchies/Cluster.tsrx.d.ts +40 -0
- package/src/hierarchy/hierarchies/Pack.tsrx +69 -0
- package/src/hierarchy/hierarchies/Pack.tsrx.d.ts +35 -0
- package/src/hierarchy/hierarchies/Partition.tsrx +62 -0
- package/src/hierarchy/hierarchies/Partition.tsrx.d.ts +27 -0
- package/src/hierarchy/hierarchies/Tree.tsrx +82 -0
- package/src/hierarchy/hierarchies/Tree.tsrx.d.ts +43 -0
- package/src/hierarchy/hierarchies/Treemap.tsrx +97 -0
- package/src/hierarchy/hierarchies/Treemap.tsrx.d.ts +47 -0
- package/src/hierarchy/index.ts +26 -0
- package/src/hierarchy/types.ts +21 -0
- package/src/hierarchy/utils/setNumOrNumAccessor.ts +11 -0
- package/src/index.ts +74 -0
- package/src/internal/spring.tsrx +190 -0
- package/src/internal/spring.tsrx.d.ts +28 -0
- package/src/internal/useMeasure.tsrx +120 -0
- package/src/internal/useMeasure.tsrx.d.ts +22 -0
- package/src/kernel/accessors/normalizeAccessor.ts +59 -0
- package/src/kernel/domain/useDomain.tsrx +111 -0
- package/src/kernel/domain/useDomain.tsrx.d.ts +13 -0
- package/src/kernel/format/formatNumber.ts +8 -0
- package/src/kernel/ids/useStableId.tsrx +7 -0
- package/src/kernel/ids/useStableId.tsrx.d.ts +2 -0
- package/src/kernel/index.ts +25 -0
- package/src/kernel/memo/shallowEqual.ts +65 -0
- package/src/kernel/memo/useStructuralMemo.tsrx +18 -0
- package/src/kernel/memo/useStructuralMemo.tsrx.d.ts +3 -0
- package/src/kernel/path/createPath.ts +132 -0
- package/src/kernel/path/toPath2D.ts +41 -0
- package/src/kernel/refs/useLatestRef.tsrx +7 -0
- package/src/kernel/refs/useLatestRef.tsrx.d.ts +4 -0
- package/src/kernel/refs/useStableCallback.tsrx +13 -0
- package/src/kernel/refs/useStableCallback.tsrx.d.ts +2 -0
- package/src/kernel/warnings.ts +76 -0
- package/src/legend/index.ts +27 -0
- package/src/legend/legends/Legend/LegendItem.tsrx +35 -0
- package/src/legend/legends/Legend/LegendItem.tsrx.d.ts +16 -0
- package/src/legend/legends/Legend/LegendLabel.tsrx +39 -0
- package/src/legend/legends/Legend/LegendLabel.tsrx.d.ts +16 -0
- package/src/legend/legends/Legend/LegendShape.tsrx +64 -0
- package/src/legend/legends/Legend/LegendShape.tsrx.d.ts +25 -0
- package/src/legend/legends/Legend/index.tsrx +140 -0
- package/src/legend/legends/Legend/index.tsrx.d.ts +50 -0
- package/src/legend/legends/Linear.tsrx +23 -0
- package/src/legend/legends/Linear.tsrx.d.ts +11 -0
- package/src/legend/legends/Ordinal.tsrx +13 -0
- package/src/legend/legends/Ordinal.tsrx.d.ts +8 -0
- package/src/legend/legends/Quantile.tsrx +53 -0
- package/src/legend/legends/Quantile.tsrx.d.ts +12 -0
- package/src/legend/legends/Size.tsrx +37 -0
- package/src/legend/legends/Size.tsrx.d.ts +14 -0
- package/src/legend/legends/Threshold.tsrx +108 -0
- package/src/legend/legends/Threshold.tsrx.d.ts +23 -0
- package/src/legend/shapes/Circle.tsrx +27 -0
- package/src/legend/shapes/Circle.tsrx.d.ts +13 -0
- package/src/legend/shapes/Line.tsrx +33 -0
- package/src/legend/shapes/Line.tsrx.d.ts +13 -0
- package/src/legend/shapes/Rect.tsrx +23 -0
- package/src/legend/shapes/Rect.tsrx.d.ts +13 -0
- package/src/legend/types/index.ts +64 -0
- package/src/legend/util/defaultDomain.ts +21 -0
- package/src/legend/util/identity.ts +3 -0
- package/src/legend/util/labelTransformFactory.ts +18 -0
- package/src/legend/util/renderShape.ts +67 -0
- package/src/legend/util/valueOrIdentity.ts +12 -0
- package/src/marker/index.ts +9 -0
- package/src/marker/markers/Arrow.tsrx +30 -0
- package/src/marker/markers/Arrow.tsrx.d.ts +3 -0
- package/src/marker/markers/Circle.tsrx +26 -0
- package/src/marker/markers/Circle.tsrx.d.ts +3 -0
- package/src/marker/markers/Cross.tsrx +27 -0
- package/src/marker/markers/Cross.tsrx.d.ts +3 -0
- package/src/marker/markers/Line.tsrx +29 -0
- package/src/marker/markers/Line.tsrx.d.ts +3 -0
- package/src/marker/markers/Marker.tsrx +46 -0
- package/src/marker/markers/Marker.tsrx.d.ts +25 -0
- package/src/marker/markers/X.tsrx +6 -0
- package/src/marker/markers/X.tsrx.d.ts +3 -0
- package/src/mock-data/generators/genBin.ts +28 -0
- package/src/mock-data/generators/genBins.ts +27 -0
- package/src/mock-data/generators/genDateValue.ts +22 -0
- package/src/mock-data/generators/genPhyllotaxis.ts +27 -0
- package/src/mock-data/generators/genRandomNormalPoints.ts +32 -0
- package/src/mock-data/generators/genStats.ts +96 -0
- package/src/mock-data/generators/getSeededRandom.ts +9 -0
- package/src/mock-data/index.ts +40 -0
- package/src/mock-data/mocks/appleStock.ts +1289 -0
- package/src/mock-data/mocks/bitcoinPrice.ts +382 -0
- package/src/mock-data/mocks/browserUsage.ts +4053 -0
- package/src/mock-data/mocks/cityTemperature.ts +2207 -0
- package/src/mock-data/mocks/exoplanets.ts +5295 -0
- package/src/mock-data/mocks/groupDateValue.ts +22 -0
- package/src/mock-data/mocks/lesMiserables.ts +355 -0
- package/src/mock-data/mocks/letterFrequency.ts +35 -0
- package/src/mock-data/mocks/planets.ts +55 -0
- package/src/mock-data/mocks/shakespeare.ts +1870 -0
- package/src/network/DefaultLink.tsrx +16 -0
- package/src/network/DefaultLink.tsrx.d.ts +3 -0
- package/src/network/DefaultNode.tsrx +16 -0
- package/src/network/DefaultNode.tsrx.d.ts +9 -0
- package/src/network/Graph.tsrx +43 -0
- package/src/network/Graph.tsrx.d.ts +16 -0
- package/src/network/Links.tsrx +27 -0
- package/src/network/Links.tsrx.d.ts +12 -0
- package/src/network/Nodes.tsrx +41 -0
- package/src/network/Nodes.tsrx.d.ts +17 -0
- package/src/network/index.ts +11 -0
- package/src/network/types.ts +22 -0
- package/src/pattern/constants/index.ts +8 -0
- package/src/pattern/index.ts +16 -0
- package/src/pattern/patterns/Circles.tsrx +78 -0
- package/src/pattern/patterns/Circles.tsrx.d.ts +26 -0
- package/src/pattern/patterns/Hexagons.tsrx +63 -0
- package/src/pattern/patterns/Hexagons.tsrx.d.ts +26 -0
- package/src/pattern/patterns/Lines.tsrx +95 -0
- package/src/pattern/patterns/Lines.tsrx.d.ts +31 -0
- package/src/pattern/patterns/Path.tsrx +58 -0
- package/src/pattern/patterns/Path.tsrx.d.ts +28 -0
- package/src/pattern/patterns/Pattern.tsrx +25 -0
- package/src/pattern/patterns/Pattern.tsrx.d.ts +13 -0
- package/src/pattern/patterns/Waves.tsrx +69 -0
- package/src/pattern/patterns/Waves.tsrx.d.ts +26 -0
- package/src/point/Point.ts +20 -0
- package/src/point/index.ts +4 -0
- package/src/point/subtractPoints.ts +8 -0
- package/src/point/sumPoints.ts +8 -0
- package/src/react-spring/axis/AnimatedAxis.tsrx +28 -0
- package/src/react-spring/axis/AnimatedAxis.tsrx.d.ts +7 -0
- package/src/react-spring/axis/AnimatedTicks.tsrx +85 -0
- package/src/react-spring/axis/AnimatedTicks.tsrx.d.ts +6 -0
- package/src/react-spring/grid/AnimatedGridColumns.tsrx +38 -0
- package/src/react-spring/grid/AnimatedGridColumns.tsrx.d.ts +6 -0
- package/src/react-spring/grid/AnimatedGridLines.tsrx +47 -0
- package/src/react-spring/grid/AnimatedGridLines.tsrx.d.ts +10 -0
- package/src/react-spring/grid/AnimatedGridRows.tsrx +38 -0
- package/src/react-spring/grid/AnimatedGridRows.tsrx.d.ts +6 -0
- package/src/react-spring/index.ts +7 -0
- package/src/react-spring/spring-configs/useLineTransitionConfig.tsrx +102 -0
- package/src/react-spring/spring-configs/useLineTransitionConfig.tsrx.d.ts +50 -0
- package/src/react-spring/types/index.ts +1 -0
- package/src/responsive/components/ParentSize.tsrx +66 -0
- package/src/responsive/components/ParentSize.tsrx.d.ts +21 -0
- package/src/responsive/components/ScaleSVG.tsrx +44 -0
- package/src/responsive/components/ScaleSVG.tsrx.d.ts +19 -0
- package/src/responsive/enhancers/withParentSize.tsrx +101 -0
- package/src/responsive/enhancers/withParentSize.tsrx.d.ts +17 -0
- package/src/responsive/enhancers/withScreenSize.tsrx +64 -0
- package/src/responsive/enhancers/withScreenSize.tsrx.d.ts +17 -0
- package/src/responsive/hooks/useParentSize.tsrx +103 -0
- package/src/responsive/hooks/useParentSize.tsrx.d.ts +25 -0
- package/src/responsive/hooks/useScreenSize.tsrx +53 -0
- package/src/responsive/hooks/useScreenSize.tsrx.d.ts +12 -0
- package/src/responsive/index.ts +21 -0
- package/src/responsive/types/index.ts +36 -0
- package/src/responsive/utils/debounce.ts +59 -0
- package/src/sankey/Sankey.tsrx +157 -0
- package/src/sankey/Sankey.tsrx.d.ts +54 -0
- package/src/sankey/index.ts +20 -0
- package/src/sankey/types.ts +10 -0
- package/src/scale/createScale.ts +176 -0
- package/src/scale/index.ts +31 -0
- package/src/scale/operators/align.ts +16 -0
- package/src/scale/operators/base.ts +16 -0
- package/src/scale/operators/clamp.ts +16 -0
- package/src/scale/operators/constant.ts +16 -0
- package/src/scale/operators/domain.ts +25 -0
- package/src/scale/operators/exponent.ts +16 -0
- package/src/scale/operators/interpolate.ts +23 -0
- package/src/scale/operators/nice.ts +81 -0
- package/src/scale/operators/padding.ts +30 -0
- package/src/scale/operators/range.ts +22 -0
- package/src/scale/operators/reverse.ts +23 -0
- package/src/scale/operators/round.ts +32 -0
- package/src/scale/operators/scaleOperator.ts +86 -0
- package/src/scale/operators/unknown.ts +16 -0
- package/src/scale/operators/zero.ts +21 -0
- package/src/scale/react/index.ts +3 -0
- package/src/scale/react/useScale.tsrx +48 -0
- package/src/scale/react/useScale.tsrx.d.ts +20 -0
- package/src/scale/scales/band.ts +19 -0
- package/src/scale/scales/linear.ts +21 -0
- package/src/scale/scales/log.ts +21 -0
- package/src/scale/scales/ordinal.ts +13 -0
- package/src/scale/scales/point.ts +19 -0
- package/src/scale/scales/power.ts +22 -0
- package/src/scale/scales/quantile.ts +12 -0
- package/src/scale/scales/quantize.ts +18 -0
- package/src/scale/scales/radial.ts +19 -0
- package/src/scale/scales/squareRoot.ts +21 -0
- package/src/scale/scales/symlog.ts +21 -0
- package/src/scale/scales/threshold.ts +14 -0
- package/src/scale/scales/time.ts +20 -0
- package/src/scale/scales/utc.ts +20 -0
- package/src/scale/types/Base.ts +14 -0
- package/src/scale/types/BaseScaleConfig.ts +123 -0
- package/src/scale/types/Nice.ts +1 -0
- package/src/scale/types/Scale.ts +96 -0
- package/src/scale/types/ScaleConfig.ts +210 -0
- package/src/scale/types/ScaleInterpolate.ts +14 -0
- package/src/scale/updateScale.ts +163 -0
- package/src/scale/utils/coerceNumber.ts +10 -0
- package/src/scale/utils/createColorInterpolator.ts +43 -0
- package/src/scale/utils/getTicks.ts +25 -0
- package/src/scale/utils/inferScaleType.ts +60 -0
- package/src/scale/utils/isUtcScale.ts +16 -0
- package/src/scale/utils/scaleCanBeZeroed.ts +25 -0
- package/src/scale/utils/toString.ts +5 -0
- package/src/shape/index.ts +96 -0
- package/src/shape/react/index.ts +5 -0
- package/src/shape/react/usePie.tsrx +60 -0
- package/src/shape/react/usePie.tsrx.d.ts +20 -0
- package/src/shape/shapes/Arc.tsrx +60 -0
- package/src/shape/shapes/Arc.tsrx.d.ts +17 -0
- package/src/shape/shapes/Area.tsrx +32 -0
- package/src/shape/shapes/Area.tsrx.d.ts +4 -0
- package/src/shape/shapes/AreaClosed.tsrx +47 -0
- package/src/shape/shapes/AreaClosed.tsrx.d.ts +6 -0
- package/src/shape/shapes/AreaStack.tsrx +78 -0
- package/src/shape/shapes/AreaStack.tsrx.d.ts +7 -0
- package/src/shape/shapes/Bar.tsrx +18 -0
- package/src/shape/shapes/Bar.tsrx.d.ts +10 -0
- package/src/shape/shapes/BarGroup.tsrx +131 -0
- package/src/shape/shapes/BarGroup.tsrx.d.ts +57 -0
- package/src/shape/shapes/BarGroupHorizontal.tsrx +100 -0
- package/src/shape/shapes/BarGroupHorizontal.tsrx.d.ts +21 -0
- package/src/shape/shapes/BarRounded.tsrx +153 -0
- package/src/shape/shapes/BarRounded.tsrx.d.ts +44 -0
- package/src/shape/shapes/BarStack.tsrx +103 -0
- package/src/shape/shapes/BarStack.tsrx.d.ts +13 -0
- package/src/shape/shapes/BarStackHorizontal.tsrx +99 -0
- package/src/shape/shapes/BarStackHorizontal.tsrx.d.ts +13 -0
- package/src/shape/shapes/Circle.tsrx +18 -0
- package/src/shape/shapes/Circle.tsrx.d.ts +10 -0
- package/src/shape/shapes/Line.tsrx +43 -0
- package/src/shape/shapes/Line.tsrx.d.ts +21 -0
- package/src/shape/shapes/LinePath.tsrx +44 -0
- package/src/shape/shapes/LinePath.tsrx.d.ts +19 -0
- package/src/shape/shapes/LineRadial.tsrx +42 -0
- package/src/shape/shapes/LineRadial.tsrx.d.ts +12 -0
- package/src/shape/shapes/Pie.tsrx +87 -0
- package/src/shape/shapes/Pie.tsrx.d.ts +30 -0
- package/src/shape/shapes/Polygon.tsrx +85 -0
- package/src/shape/shapes/Polygon.tsrx.d.ts +37 -0
- package/src/shape/shapes/SplitLinePath.tsrx +86 -0
- package/src/shape/shapes/SplitLinePath.tsrx.d.ts +23 -0
- package/src/shape/shapes/Stack.tsrx +83 -0
- package/src/shape/shapes/Stack.tsrx.d.ts +25 -0
- package/src/shape/shapes/link/curve/LinkHorizontalCurve.tsrx +63 -0
- package/src/shape/shapes/link/curve/LinkHorizontalCurve.tsrx.d.ts +11 -0
- package/src/shape/shapes/link/curve/LinkRadialCurve.tsrx +72 -0
- package/src/shape/shapes/link/curve/LinkRadialCurve.tsrx.d.ts +9 -0
- package/src/shape/shapes/link/curve/LinkVerticalCurve.tsrx +62 -0
- package/src/shape/shapes/link/curve/LinkVerticalCurve.tsrx.d.ts +9 -0
- package/src/shape/shapes/link/diagonal/LinkHorizontal.tsrx +47 -0
- package/src/shape/shapes/link/diagonal/LinkHorizontal.tsrx.d.ts +7 -0
- package/src/shape/shapes/link/diagonal/LinkRadial.tsrx +49 -0
- package/src/shape/shapes/link/diagonal/LinkRadial.tsrx.d.ts +9 -0
- package/src/shape/shapes/link/diagonal/LinkVertical.tsrx +46 -0
- package/src/shape/shapes/link/diagonal/LinkVertical.tsrx.d.ts +6 -0
- package/src/shape/shapes/link/line/LinkHorizontalLine.tsrx +53 -0
- package/src/shape/shapes/link/line/LinkHorizontalLine.tsrx.d.ts +7 -0
- package/src/shape/shapes/link/line/LinkRadialLine.tsrx +58 -0
- package/src/shape/shapes/link/line/LinkRadialLine.tsrx.d.ts +5 -0
- package/src/shape/shapes/link/line/LinkVerticalLine.tsrx +53 -0
- package/src/shape/shapes/link/line/LinkVerticalLine.tsrx.d.ts +5 -0
- package/src/shape/shapes/link/step/LinkHorizontalStep.tsrx +59 -0
- package/src/shape/shapes/link/step/LinkHorizontalStep.tsrx.d.ts +12 -0
- package/src/shape/shapes/link/step/LinkRadialStep.tsrx +68 -0
- package/src/shape/shapes/link/step/LinkRadialStep.tsrx.d.ts +8 -0
- package/src/shape/shapes/link/step/LinkVerticalStep.tsrx +59 -0
- package/src/shape/shapes/link/step/LinkVerticalStep.tsrx.d.ts +10 -0
- package/src/shape/types/D3ShapeConfig.ts +91 -0
- package/src/shape/types/accessor.ts +9 -0
- package/src/shape/types/area.ts +14 -0
- package/src/shape/types/barGroup.ts +57 -0
- package/src/shape/types/barStack.ts +55 -0
- package/src/shape/types/base.ts +23 -0
- package/src/shape/types/index.ts +8 -0
- package/src/shape/types/link.ts +37 -0
- package/src/shape/types/stack.ts +15 -0
- package/src/shape/util/D3ShapeFactories.ts +125 -0
- package/src/shape/util/accessors.ts +25 -0
- package/src/shape/util/getBandwidth.ts +11 -0
- package/src/shape/util/getOrCreateMeasurementElement.ts +28 -0
- package/src/shape/util/getSplitLineSegments.ts +100 -0
- package/src/shape/util/setNumberOrNumberAccessor.ts +11 -0
- package/src/shape/util/stackOffset.ts +23 -0
- package/src/shape/util/stackOrder.ts +23 -0
- package/src/shape/util/trigonometry.ts +1 -0
- package/src/stats/BoxPlot.tsrx +257 -0
- package/src/stats/BoxPlot.tsrx.d.ts +51 -0
- package/src/stats/ViolinPlot.tsrx +78 -0
- package/src/stats/ViolinPlot.tsrx.d.ts +21 -0
- package/src/stats/index.ts +8 -0
- package/src/stats/types.ts +56 -0
- package/src/stats/util/computeStats.ts +71 -0
- package/src/text/Text.tsrx +43 -0
- package/src/text/Text.tsrx.d.ts +4 -0
- package/src/text/hooks/useText.tsrx +125 -0
- package/src/text/hooks/useText.tsrx.d.ts +7 -0
- package/src/text/index.ts +5 -0
- package/src/text/types.ts +54 -0
- package/src/text/util/getStringWidth.ts +38 -0
- package/src/text/util/memoize.ts +13 -0
- package/src/theme/compat/fromXYChartTheme.ts +132 -0
- package/src/theme/index.ts +14 -0
- package/src/theme/provider/ThemeScope.tsrx +58 -0
- package/src/theme/provider/ThemeScope.tsrx.d.ts +23 -0
- package/src/theme/provider/defineTheme.ts +67 -0
- package/src/theme/react/ThemeContext.tsrx +7 -0
- package/src/theme/react/ThemeContext.tsrx.d.ts +4 -0
- package/src/theme/react/ThemeProvider.tsrx +14 -0
- package/src/theme/react/ThemeProvider.tsrx.d.ts +4 -0
- package/src/theme/react/categoricalColor.ts +32 -0
- package/src/theme/react/index.ts +29 -0
- package/src/theme/react/useAxisStyle.tsrx +100 -0
- package/src/theme/react/useAxisStyle.tsrx.d.ts +23 -0
- package/src/theme/react/useCategoricalScale.tsrx +23 -0
- package/src/theme/react/useCategoricalScale.tsrx.d.ts +3 -0
- package/src/theme/react/useChartConfig.tsrx +108 -0
- package/src/theme/react/useChartConfig.tsrx.d.ts +15 -0
- package/src/theme/react/useColor.tsrx +18 -0
- package/src/theme/react/useColor.tsrx.d.ts +4 -0
- package/src/theme/react/useColorScale.tsrx +39 -0
- package/src/theme/react/useColorScale.tsrx.d.ts +7 -0
- package/src/theme/react/useGridStyle.tsrx +15 -0
- package/src/theme/react/useGridStyle.tsrx.d.ts +6 -0
- package/src/theme/react/useTheme.tsrx +7 -0
- package/src/theme/react/useTheme.tsrx.d.ts +3 -0
- package/src/theme/react/warn.ts +3 -0
- package/src/theme/runtime/createRuntimeTheme.ts +70 -0
- package/src/theme/runtime/resolveThemeInput.ts +19 -0
- package/src/theme/tokens/categorical.ts +18 -0
- package/src/theme/tokens/cssVar.ts +5 -0
- package/src/theme/tokens/dark.ts +51 -0
- package/src/theme/tokens/light.ts +62 -0
- package/src/theme/tokens/names.ts +49 -0
- package/src/theme/tokens/style.ts +45 -0
- package/src/theme/tokens/types.ts +118 -0
- package/src/theme/utils/warn.ts +5 -0
- package/src/threshold/Threshold.tsrx +112 -0
- package/src/threshold/Threshold.tsrx.d.ts +45 -0
- package/src/threshold/index.ts +2 -0
- package/src/tooltip/Portal.tsrx +27 -0
- package/src/tooltip/Portal.tsrx.d.ts +10 -0
- package/src/tooltip/context/TooltipPositionContext.tsrx +16 -0
- package/src/tooltip/context/TooltipPositionContext.tsrx.d.ts +11 -0
- package/src/tooltip/enhancers/withTooltip.tsrx +29 -0
- package/src/tooltip/enhancers/withTooltip.tsrx.d.ts +8 -0
- package/src/tooltip/floating/ChartTooltip.tsrx +95 -0
- package/src/tooltip/floating/ChartTooltip.tsrx.d.ts +29 -0
- package/src/tooltip/floating/ChartTooltipContent.tsrx +219 -0
- package/src/tooltip/floating/ChartTooltipContent.tsrx.d.ts +57 -0
- package/src/tooltip/floating/FloatingTooltip.tsrx +269 -0
- package/src/tooltip/floating/FloatingTooltip.tsrx.d.ts +20 -0
- package/src/tooltip/floating/anchors.ts +146 -0
- package/src/tooltip/floating/context.tsrx +29 -0
- package/src/tooltip/floating/context.tsrx.d.ts +9 -0
- package/src/tooltip/floating/index.ts +61 -0
- package/src/tooltip/floating/internalTypes.ts +125 -0
- package/src/tooltip/floating/middleware.ts +104 -0
- package/src/tooltip/floating/types.ts +198 -0
- package/src/tooltip/floating/useChartTooltip.tsrx +180 -0
- package/src/tooltip/floating/useChartTooltip.tsrx.d.ts +40 -0
- package/src/tooltip/floating/useFloatingTooltip.tsrx +301 -0
- package/src/tooltip/floating/useFloatingTooltip.tsrx.d.ts +3 -0
- package/src/tooltip/hooks/useTooltip.tsrx +67 -0
- package/src/tooltip/hooks/useTooltip.tsrx.d.ts +25 -0
- package/src/tooltip/hooks/useTooltipInPortal.tsrx +92 -0
- package/src/tooltip/hooks/useTooltipInPortal.tsrx.d.ts +34 -0
- package/src/tooltip/index.ts +20 -0
- package/src/tooltip/tooltips/Tooltip.tsrx +71 -0
- package/src/tooltip/tooltips/Tooltip.tsrx.d.ts +39 -0
- package/src/tooltip/tooltips/TooltipWithBounds.tsrx +82 -0
- package/src/tooltip/tooltips/TooltipWithBounds.tsrx.d.ts +9 -0
- package/src/voronoi/components/VoronoiPolygon.tsrx +32 -0
- package/src/voronoi/components/VoronoiPolygon.tsrx.d.ts +14 -0
- package/src/voronoi/index.ts +6 -0
- package/src/voronoi/react/index.ts +5 -0
- package/src/voronoi/react/useVoronoi.tsrx +30 -0
- package/src/voronoi/react/useVoronoi.tsrx.d.ts +10 -0
- package/src/voronoi/voronoi.ts +32 -0
- package/src/wordcloud/Wordcloud.tsrx +20 -0
- package/src/wordcloud/Wordcloud.tsrx.d.ts +7 -0
- package/src/wordcloud/d3-cloud.d.ts +1 -0
- package/src/wordcloud/index.ts +3 -0
- package/src/wordcloud/types.ts +154 -0
- package/src/wordcloud/useWordcloud.tsrx +277 -0
- package/src/wordcloud/useWordcloud.tsrx.d.ts +16 -0
- package/src/xychart/classes/DataRegistry.ts +53 -0
- package/src/xychart/components/Tooltip.tsrx +356 -0
- package/src/xychart/components/Tooltip.tsrx.d.ts +57 -0
- package/src/xychart/components/XYChart.tsrx +196 -0
- package/src/xychart/components/XYChart.tsrx.d.ts +47 -0
- package/src/xychart/components/annotation/AnimatedAnnotation.tsrx +72 -0
- package/src/xychart/components/annotation/AnimatedAnnotation.tsrx.d.ts +7 -0
- package/src/xychart/components/annotation/Annotation.tsrx +20 -0
- package/src/xychart/components/annotation/Annotation.tsrx.d.ts +7 -0
- package/src/xychart/components/annotation/AnnotationCircleSubject.tsrx +12 -0
- package/src/xychart/components/annotation/AnnotationCircleSubject.tsrx.d.ts +5 -0
- package/src/xychart/components/annotation/AnnotationConnector.tsrx +12 -0
- package/src/xychart/components/annotation/AnnotationConnector.tsrx.d.ts +5 -0
- package/src/xychart/components/annotation/AnnotationLabel.tsrx +29 -0
- package/src/xychart/components/annotation/AnnotationLabel.tsrx.d.ts +5 -0
- package/src/xychart/components/annotation/AnnotationLineSubject.tsrx +28 -0
- package/src/xychart/components/annotation/AnnotationLineSubject.tsrx.d.ts +9 -0
- package/src/xychart/components/annotation/private/BaseAnnotation.tsrx +86 -0
- package/src/xychart/components/annotation/private/BaseAnnotation.tsrx.d.ts +18 -0
- package/src/xychart/components/axis/AnimatedAxis.tsrx +15 -0
- package/src/xychart/components/axis/AnimatedAxis.tsrx.d.ts +9 -0
- package/src/xychart/components/axis/Axis.tsrx +11 -0
- package/src/xychart/components/axis/Axis.tsrx.d.ts +5 -0
- package/src/xychart/components/axis/BaseAxis.tsrx +94 -0
- package/src/xychart/components/axis/BaseAxis.tsrx.d.ts +15 -0
- package/src/xychart/components/grid/AnimatedGrid.tsrx +34 -0
- package/src/xychart/components/grid/AnimatedGrid.tsrx.d.ts +8 -0
- package/src/xychart/components/grid/BaseGrid.tsrx +49 -0
- package/src/xychart/components/grid/BaseGrid.tsrx.d.ts +16 -0
- package/src/xychart/components/grid/Grid.tsrx +9 -0
- package/src/xychart/components/grid/Grid.tsrx.d.ts +4 -0
- package/src/xychart/components/series/AnimatedAreaSeries.tsrx +8 -0
- package/src/xychart/components/series/AnimatedAreaSeries.tsrx.d.ts +4 -0
- package/src/xychart/components/series/AnimatedAreaStack.tsrx +8 -0
- package/src/xychart/components/series/AnimatedAreaStack.tsrx.d.ts +4 -0
- package/src/xychart/components/series/AnimatedBarGroup.tsrx +8 -0
- package/src/xychart/components/series/AnimatedBarGroup.tsrx.d.ts +4 -0
- package/src/xychart/components/series/AnimatedBarSeries.tsrx +15 -0
- package/src/xychart/components/series/AnimatedBarSeries.tsrx.d.ts +4 -0
- package/src/xychart/components/series/AnimatedBarStack.tsrx +8 -0
- package/src/xychart/components/series/AnimatedBarStack.tsrx.d.ts +4 -0
- package/src/xychart/components/series/AnimatedGlyphSeries.tsrx +28 -0
- package/src/xychart/components/series/AnimatedGlyphSeries.tsrx.d.ts +8 -0
- package/src/xychart/components/series/AnimatedLineSeries.tsrx +8 -0
- package/src/xychart/components/series/AnimatedLineSeries.tsrx.d.ts +4 -0
- package/src/xychart/components/series/AreaSeries.tsrx +7 -0
- package/src/xychart/components/series/AreaSeries.tsrx.d.ts +4 -0
- package/src/xychart/components/series/AreaStack.tsrx +7 -0
- package/src/xychart/components/series/AreaStack.tsrx.d.ts +4 -0
- package/src/xychart/components/series/BarGroup.tsrx +8 -0
- package/src/xychart/components/series/BarGroup.tsrx.d.ts +4 -0
- package/src/xychart/components/series/BarSeries.tsrx +13 -0
- package/src/xychart/components/series/BarSeries.tsrx.d.ts +5 -0
- package/src/xychart/components/series/BarStack.tsrx +8 -0
- package/src/xychart/components/series/BarStack.tsrx.d.ts +4 -0
- package/src/xychart/components/series/GlyphSeries.tsrx +38 -0
- package/src/xychart/components/series/GlyphSeries.tsrx.d.ts +8 -0
- package/src/xychart/components/series/LineSeries.tsrx +7 -0
- package/src/xychart/components/series/LineSeries.tsrx.d.ts +4 -0
- package/src/xychart/components/series/private/AnimatedBars.tsrx +151 -0
- package/src/xychart/components/series/private/AnimatedBars.tsrx.d.ts +5 -0
- package/src/xychart/components/series/private/AnimatedGlyphs.tsrx +108 -0
- package/src/xychart/components/series/private/AnimatedGlyphs.tsrx.d.ts +40 -0
- package/src/xychart/components/series/private/AnimatedPath.tsrx +47 -0
- package/src/xychart/components/series/private/AnimatedPath.tsrx.d.ts +4 -0
- package/src/xychart/components/series/private/Bars.tsrx +45 -0
- package/src/xychart/components/series/private/Bars.tsrx.d.ts +4 -0
- package/src/xychart/components/series/private/BaseAreaSeries.tsrx +187 -0
- package/src/xychart/components/series/private/BaseAreaSeries.tsrx.d.ts +20 -0
- package/src/xychart/components/series/private/BaseAreaStack.tsrx +259 -0
- package/src/xychart/components/series/private/BaseAreaStack.tsrx.d.ts +19 -0
- package/src/xychart/components/series/private/BaseBarGroup.tsrx +198 -0
- package/src/xychart/components/series/private/BaseBarGroup.tsrx.d.ts +15 -0
- package/src/xychart/components/series/private/BaseBarSeries.tsrx +154 -0
- package/src/xychart/components/series/private/BaseBarSeries.tsrx.d.ts +16 -0
- package/src/xychart/components/series/private/BaseBarStack.tsrx +192 -0
- package/src/xychart/components/series/private/BaseBarStack.tsrx.d.ts +14 -0
- package/src/xychart/components/series/private/BaseGlyphSeries.tsrx +107 -0
- package/src/xychart/components/series/private/BaseGlyphSeries.tsrx.d.ts +14 -0
- package/src/xychart/components/series/private/BaseLineSeries.tsrx +135 -0
- package/src/xychart/components/series/private/BaseLineSeries.tsrx.d.ts +14 -0
- package/src/xychart/components/series/private/defaultRenderGlyph.tsrx +29 -0
- package/src/xychart/components/series/private/defaultRenderGlyph.tsrx.d.ts +3 -0
- package/src/xychart/constants.ts +9 -0
- package/src/xychart/context/DataContext.tsrx +23 -0
- package/src/xychart/context/DataContext.tsrx.d.ts +11 -0
- package/src/xychart/context/EventEmitterContext.tsrx +6 -0
- package/src/xychart/context/EventEmitterContext.tsrx.d.ts +3 -0
- package/src/xychart/context/ThemeContext.tsrx +7 -0
- package/src/xychart/context/ThemeContext.tsrx.d.ts +4 -0
- package/src/xychart/context/TooltipContext.tsrx +7 -0
- package/src/xychart/context/TooltipContext.tsrx.d.ts +3 -0
- package/src/xychart/hooks/useDataRegistry.tsrx +41 -0
- package/src/xychart/hooks/useDataRegistry.tsrx.d.ts +5 -0
- package/src/xychart/hooks/useDimensions.tsrx +40 -0
- package/src/xychart/hooks/useDimensions.tsrx.d.ts +15 -0
- package/src/xychart/hooks/useEventEmitter.tsrx +62 -0
- package/src/xychart/hooks/useEventEmitter.tsrx.d.ts +24 -0
- package/src/xychart/hooks/useEventEmitters.tsrx +64 -0
- package/src/xychart/hooks/useEventEmitters.tsrx.d.ts +25 -0
- package/src/xychart/hooks/useEventHandlers.tsrx +162 -0
- package/src/xychart/hooks/useEventHandlers.tsrx.d.ts +31 -0
- package/src/xychart/hooks/useScales.tsrx +113 -0
- package/src/xychart/hooks/useScales.tsrx.d.ts +15 -0
- package/src/xychart/hooks/useSeriesEvents.tsrx +82 -0
- package/src/xychart/hooks/useSeriesEvents.tsrx.d.ts +18 -0
- package/src/xychart/hooks/useStackedData.tsrx +96 -0
- package/src/xychart/hooks/useStackedData.tsrx.d.ts +14 -0
- package/src/xychart/index.ts +56 -0
- package/src/xychart/providers/DataProvider.tsrx +141 -0
- package/src/xychart/providers/DataProvider.tsrx.d.ts +22 -0
- package/src/xychart/providers/EventEmitterProvider.tsrx +10 -0
- package/src/xychart/providers/EventEmitterProvider.tsrx.d.ts +6 -0
- package/src/xychart/providers/ThemeProvider.tsrx +13 -0
- package/src/xychart/providers/ThemeProvider.tsrx.d.ts +8 -0
- package/src/xychart/providers/TooltipProvider.tsrx +101 -0
- package/src/xychart/providers/TooltipProvider.tsrx.d.ts +10 -0
- package/src/xychart/theme/buildChartTheme.ts +178 -0
- package/src/xychart/theme/colors.ts +174 -0
- package/src/xychart/theme/themes/dark.ts +24 -0
- package/src/xychart/theme/themes/light.ts +16 -0
- package/src/xychart/typeguards/events.ts +12 -0
- package/src/xychart/typeguards/isValidNumber.ts +3 -0
- package/src/xychart/types/axis.ts +3 -0
- package/src/xychart/types/data.ts +57 -0
- package/src/xychart/types/event.ts +30 -0
- package/src/xychart/types/index.ts +6 -0
- package/src/xychart/types/series.ts +219 -0
- package/src/xychart/types/theme.ts +50 -0
- package/src/xychart/types/tooltip.ts +24 -0
- package/src/xychart/utils/cleanColorString.ts +4 -0
- package/src/xychart/utils/collectDataRegistryEntries.ts +50 -0
- package/src/xychart/utils/combineBarStackData.ts +51 -0
- package/src/xychart/utils/findNearestDatumSingleDimension.ts +64 -0
- package/src/xychart/utils/findNearestDatumX.ts +34 -0
- package/src/xychart/utils/findNearestDatumXY.ts +42 -0
- package/src/xychart/utils/findNearestDatumY.ts +34 -0
- package/src/xychart/utils/findNearestGroupDatum.ts +50 -0
- package/src/xychart/utils/findNearestStackDatum.ts +44 -0
- package/src/xychart/utils/getBarStackRegistryData.ts +49 -0
- package/src/xychart/utils/getChildrenAndGrandchildrenWithProps.ts +24 -0
- package/src/xychart/utils/getScaleBandwidth.ts +7 -0
- package/src/xychart/utils/getScaleBaseline.ts +24 -0
- package/src/xychart/utils/getScaledValueFactory.ts +21 -0
- package/src/xychart/utils/isDiscreteScale.ts +9 -0
- package/src/zoom/Zoom.tsrx +375 -0
- package/src/zoom/Zoom.tsrx.d.ts +62 -0
- package/src/zoom/index.ts +16 -0
- package/src/zoom/types.ts +120 -0
- package/src/zoom/util/matrix.ts +104 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// Generated by scripts/generate-tsrx-types.mjs.
|
|
2
|
+
import type { ReactNode, CSSProperties } from 'react';
|
|
3
|
+
import type { AnyD3Scale, ScaleInput } from '@octanejs/visx/scale';
|
|
4
|
+
import type { LegendLabelProps } from './LegendLabel.tsrx';
|
|
5
|
+
import type { FlexDirection, FormattedLabel, LabelFormatter, LabelFormatterFactory, LegendShape as LegendShapeType } from '../../types';
|
|
6
|
+
export type LegendProps<Scale extends AnyD3Scale> = {
|
|
7
|
+
/** Optional render function override. */
|
|
8
|
+
children?: (labels: FormattedLabel<ScaleInput<Scale>, ReturnType<Scale>>[]) => ReactNode;
|
|
9
|
+
/** Classname to be applied to legend container. */
|
|
10
|
+
className?: string;
|
|
11
|
+
/** Styles to be applied to the legend container. */
|
|
12
|
+
style?: CSSProperties;
|
|
13
|
+
/** Legend domain. */
|
|
14
|
+
domain?: ScaleInput<Scale>[];
|
|
15
|
+
/** Width of the legend shape. */
|
|
16
|
+
shapeWidth?: string | number;
|
|
17
|
+
/** Height of the legend shape. */
|
|
18
|
+
shapeHeight?: string | number;
|
|
19
|
+
/** Margin of the legend shape. */
|
|
20
|
+
shapeMargin?: string | number;
|
|
21
|
+
/** Flex-box alignment of legend item labels. */
|
|
22
|
+
labelAlign?: string;
|
|
23
|
+
/** `@octanejs/visx/scale` or `d3-scale` object used to generate the legend items. */
|
|
24
|
+
scale: Scale;
|
|
25
|
+
/** Flex-box flex of legend item labels. */
|
|
26
|
+
labelFlex?: string | number;
|
|
27
|
+
/** Margin of legend item labels. */
|
|
28
|
+
labelMargin?: string | number;
|
|
29
|
+
/** Margin of legend items. */
|
|
30
|
+
itemMargin?: string | number;
|
|
31
|
+
/** Flex direction of the legend itself. */
|
|
32
|
+
direction?: FlexDirection;
|
|
33
|
+
/** Flex direction of legend items. */
|
|
34
|
+
itemDirection?: FlexDirection;
|
|
35
|
+
/** Legend item fill accessor function. */
|
|
36
|
+
fill?: (label: FormattedLabel<ScaleInput<Scale>, ReturnType<Scale>>) => string | undefined;
|
|
37
|
+
/** Legend item size accessor function. */
|
|
38
|
+
size?: (label: FormattedLabel<ScaleInput<Scale>, ReturnType<Scale>>) => string | number | undefined;
|
|
39
|
+
/** Legend shape string preset or Element or Component. */
|
|
40
|
+
shape?: LegendShapeType<ScaleInput<Scale>, ReturnType<Scale>>;
|
|
41
|
+
/** Styles applied to legend shapes. */
|
|
42
|
+
shapeStyle?: (label: FormattedLabel<ScaleInput<Scale>, ReturnType<Scale>>) => CSSProperties;
|
|
43
|
+
/** Given a legend item and its index, returns an item label. */
|
|
44
|
+
labelFormat?: LabelFormatter<ScaleInput<Scale>>;
|
|
45
|
+
/** Given the legend scale and labelFormatter, returns a label with datum, index, value, and label. */
|
|
46
|
+
labelTransform?: LabelFormatterFactory<Scale>;
|
|
47
|
+
/** Additional props to be set on LegendLabel. */
|
|
48
|
+
legendLabelProps?: Partial<LegendLabelProps>;
|
|
49
|
+
};
|
|
50
|
+
export default function Legend<Scale extends AnyD3Scale>({ className, style, scale, shape, domain: inputDomain, fill, size, labelFormat, labelTransform, shapeWidth, shapeHeight, shapeMargin, shapeStyle, labelAlign, labelFlex, labelMargin, itemMargin, direction, itemDirection, legendLabelProps, children, ...legendItemProps }: LegendProps<Scale>): import("react").JSX.Element;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { PickD3Scale } from '@octanejs/visx/scale';
|
|
2
|
+
import type { LegendProps } from './Legend/index.tsrx';
|
|
3
|
+
import Legend from './Legend/index.tsrx';
|
|
4
|
+
import defaultDomain from '../util/defaultDomain';
|
|
5
|
+
|
|
6
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
7
|
+
type AnyLinearScale = PickD3Scale<'linear', any>;
|
|
8
|
+
|
|
9
|
+
export type LegendLinearProps<Scale extends AnyLinearScale> = {
|
|
10
|
+
/** Number of discrete steps to show in the legend. The scale domain is divided into this many intervals. */
|
|
11
|
+
steps?: number;
|
|
12
|
+
} & LegendProps<Scale>;
|
|
13
|
+
|
|
14
|
+
/** Linear scales map from continuous inputs to continuous outputs. */
|
|
15
|
+
export default function Linear<Scale extends AnyLinearScale>({
|
|
16
|
+
scale,
|
|
17
|
+
domain: inputDomain,
|
|
18
|
+
steps = 5,
|
|
19
|
+
...restProps
|
|
20
|
+
}: LegendLinearProps<Scale>) {
|
|
21
|
+
const domain = inputDomain || defaultDomain({ steps, scale });
|
|
22
|
+
return <Legend scale={scale} domain={domain} {...restProps} />;
|
|
23
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// Generated by scripts/generate-tsrx-types.mjs.
|
|
2
|
+
import type { PickD3Scale } from '@octanejs/visx/scale';
|
|
3
|
+
import type { LegendProps } from './Legend/index.tsrx';
|
|
4
|
+
type AnyLinearScale = PickD3Scale<'linear', any>;
|
|
5
|
+
export type LegendLinearProps<Scale extends AnyLinearScale> = {
|
|
6
|
+
/** Number of discrete steps to show in the legend. The scale domain is divided into this many intervals. */
|
|
7
|
+
steps?: number;
|
|
8
|
+
} & LegendProps<Scale>;
|
|
9
|
+
/** Linear scales map from continuous inputs to continuous outputs. */
|
|
10
|
+
export default function Linear<Scale extends AnyLinearScale>({ scale, domain: inputDomain, steps, ...restProps }: LegendLinearProps<Scale>): import("react").JSX.Element;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { PickD3Scale } from '@octanejs/visx/scale';
|
|
2
|
+
import type { LegendProps } from './Legend/index.tsrx';
|
|
3
|
+
import Legend from './Legend/index.tsrx';
|
|
4
|
+
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
6
|
+
type AnyOrdinalScale = PickD3Scale<'ordinal', any, any>;
|
|
7
|
+
|
|
8
|
+
export type LegendOrdinalProps<Scale extends AnyOrdinalScale> = LegendProps<Scale>;
|
|
9
|
+
|
|
10
|
+
/** Ordinal scales map from strings to an Output type. */
|
|
11
|
+
export default function Ordinal<Scale extends AnyOrdinalScale>(props: LegendOrdinalProps<Scale>) {
|
|
12
|
+
return <Legend {...props} />;
|
|
13
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// Generated by scripts/generate-tsrx-types.mjs.
|
|
2
|
+
import type { PickD3Scale } from '@octanejs/visx/scale';
|
|
3
|
+
import type { LegendProps } from './Legend/index.tsrx';
|
|
4
|
+
type AnyOrdinalScale = PickD3Scale<'ordinal', any, any>;
|
|
5
|
+
export type LegendOrdinalProps<Scale extends AnyOrdinalScale> = LegendProps<Scale>;
|
|
6
|
+
/** Ordinal scales map from strings to an Output type. */
|
|
7
|
+
export default function Ordinal<Scale extends AnyOrdinalScale>(props: LegendOrdinalProps<Scale>): import("react").JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { PickD3Scale } from '@octanejs/visx/scale';
|
|
2
|
+
import type { LegendProps } from './Legend/index.tsrx';
|
|
3
|
+
import Legend from './Legend/index.tsrx';
|
|
4
|
+
import type { LabelFormatterFactory } from '../types';
|
|
5
|
+
import identity from '../util/identity';
|
|
6
|
+
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
8
|
+
type AnyQuantileScale = PickD3Scale<'quantile', any>;
|
|
9
|
+
|
|
10
|
+
type FactoryProps = {
|
|
11
|
+
/** The delimiter string to use between the min and max values in the label (e.g., '-' renders as '0 - 10'). */
|
|
12
|
+
labelDelimiter?: string;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export type LegendQuantileProps<Scale extends AnyQuantileScale> = LegendProps<Scale> & FactoryProps;
|
|
16
|
+
|
|
17
|
+
function labelFormatterFactoryFactory<Scale extends AnyQuantileScale>({
|
|
18
|
+
labelDelimiter,
|
|
19
|
+
}: FactoryProps): LabelFormatterFactory<Scale> {
|
|
20
|
+
return ({ scale, labelFormat }) => (datum, index) => {
|
|
21
|
+
const [x0, x1] = scale.invertExtent(scale(datum));
|
|
22
|
+
return {
|
|
23
|
+
extent: [x0, x1],
|
|
24
|
+
text: `${labelFormat(x0, index)} ${labelDelimiter} ${labelFormat(x1, index)}`,
|
|
25
|
+
value: scale(x0),
|
|
26
|
+
datum,
|
|
27
|
+
index,
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/** A Quantile scale takes a number input and returns an Output. */
|
|
33
|
+
export default function Quantile<Scale extends AnyQuantileScale>({
|
|
34
|
+
domain: inputDomain,
|
|
35
|
+
scale,
|
|
36
|
+
labelFormat = identity,
|
|
37
|
+
labelTransform: inputLabelTransform,
|
|
38
|
+
labelDelimiter = '-',
|
|
39
|
+
...restProps
|
|
40
|
+
}: LegendQuantileProps<Scale>) {
|
|
41
|
+
// transform range into input values because it may contain more elements
|
|
42
|
+
const domain = inputDomain || scale.range().map((output) => scale.invertExtent(output)[0]);
|
|
43
|
+
const labelTransform =
|
|
44
|
+
inputLabelTransform || labelFormatterFactoryFactory<Scale>({ labelDelimiter });
|
|
45
|
+
|
|
46
|
+
return <Legend
|
|
47
|
+
scale={scale}
|
|
48
|
+
domain={domain}
|
|
49
|
+
labelFormat={labelFormat}
|
|
50
|
+
labelTransform={labelTransform}
|
|
51
|
+
{...restProps}
|
|
52
|
+
/>;
|
|
53
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// Generated by scripts/generate-tsrx-types.mjs.
|
|
2
|
+
import type { PickD3Scale } from '@octanejs/visx/scale';
|
|
3
|
+
import type { LegendProps } from './Legend/index.tsrx';
|
|
4
|
+
type AnyQuantileScale = PickD3Scale<'quantile', any>;
|
|
5
|
+
type FactoryProps = {
|
|
6
|
+
/** The delimiter string to use between the min and max values in the label (e.g., '-' renders as '0 - 10'). */
|
|
7
|
+
labelDelimiter?: string;
|
|
8
|
+
};
|
|
9
|
+
export type LegendQuantileProps<Scale extends AnyQuantileScale> = LegendProps<Scale> & FactoryProps;
|
|
10
|
+
/** A Quantile scale takes a number input and returns an Output. */
|
|
11
|
+
export default function Quantile<Scale extends AnyQuantileScale>({ domain: inputDomain, scale, labelFormat, labelTransform: inputLabelTransform, labelDelimiter, ...restProps }: LegendQuantileProps<Scale>): import("react").JSX.Element;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { D3Scale } from '@octanejs/visx/scale';
|
|
2
|
+
import type { LegendProps } from './Legend/index.tsrx';
|
|
3
|
+
import Legend from './Legend/index.tsrx';
|
|
4
|
+
import labelTransformFactory from '../util/labelTransformFactory';
|
|
5
|
+
import defaultDomain from '../util/defaultDomain';
|
|
6
|
+
import identity from '../util/identity';
|
|
7
|
+
|
|
8
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
9
|
+
type AnySizeScale = D3Scale<number, any, any>;
|
|
10
|
+
|
|
11
|
+
export type LegendSizeProps<Scale extends AnySizeScale> = {
|
|
12
|
+
/** Number of discrete steps to show in the legend. The scale domain is divided into this many intervals. */
|
|
13
|
+
steps?: number;
|
|
14
|
+
} & LegendProps<Scale>;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* A Size legend component that creates a legend with discrete size intervals.
|
|
18
|
+
* Useful for visualizing continuous numeric data with size-based scales.
|
|
19
|
+
*/
|
|
20
|
+
export default function Size<Scale extends AnySizeScale>({
|
|
21
|
+
scale,
|
|
22
|
+
domain: inputDomain,
|
|
23
|
+
steps = 5,
|
|
24
|
+
labelFormat = identity,
|
|
25
|
+
labelTransform = labelTransformFactory,
|
|
26
|
+
...restProps
|
|
27
|
+
}: LegendSizeProps<Scale>) {
|
|
28
|
+
const domain = inputDomain || defaultDomain({ steps, scale });
|
|
29
|
+
|
|
30
|
+
return <Legend
|
|
31
|
+
scale={scale}
|
|
32
|
+
domain={domain}
|
|
33
|
+
labelFormat={labelFormat}
|
|
34
|
+
labelTransform={labelTransform}
|
|
35
|
+
{...restProps}
|
|
36
|
+
/>;
|
|
37
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Generated by scripts/generate-tsrx-types.mjs.
|
|
2
|
+
import type { D3Scale } from '@octanejs/visx/scale';
|
|
3
|
+
import type { LegendProps } from './Legend/index.tsrx';
|
|
4
|
+
type AnySizeScale = D3Scale<number, any, any>;
|
|
5
|
+
export type LegendSizeProps<Scale extends AnySizeScale> = {
|
|
6
|
+
/** Number of discrete steps to show in the legend. The scale domain is divided into this many intervals. */
|
|
7
|
+
steps?: number;
|
|
8
|
+
} & LegendProps<Scale>;
|
|
9
|
+
/**
|
|
10
|
+
* A Size legend component that creates a legend with discrete size intervals.
|
|
11
|
+
* Useful for visualizing continuous numeric data with size-based scales.
|
|
12
|
+
*/
|
|
13
|
+
export default function Size<Scale extends AnySizeScale>({ scale, domain: inputDomain, steps, labelFormat, labelTransform, ...restProps }: LegendSizeProps<Scale>): import("react").JSX.Element;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import type { PickD3Scale, ScaleInput } from '@octanejs/visx/scale';
|
|
2
|
+
import type { LegendProps } from './Legend/index.tsrx';
|
|
3
|
+
import Legend from './Legend/index.tsrx';
|
|
4
|
+
import type { LabelFormatterFactory } from '../types';
|
|
5
|
+
import identity from '../util/identity';
|
|
6
|
+
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
8
|
+
type AnyThresholdScale = PickD3Scale<'threshold', any, any, any>;
|
|
9
|
+
|
|
10
|
+
const formatZero = (label: unknown) => (label === 0 ? '0' : label || '');
|
|
11
|
+
|
|
12
|
+
type TransformProps = {
|
|
13
|
+
/** The delimiter string to use between threshold values (e.g., '-' renders as '0 - 10'). */
|
|
14
|
+
labelDelimiter?: string;
|
|
15
|
+
/** The prefix to use for the lower threshold label (e.g., '<' renders as '< 10'). */
|
|
16
|
+
labelLower?: string;
|
|
17
|
+
/** The prefix to use for the upper threshold label (e.g., '>' renders as '> 100'). */
|
|
18
|
+
labelUpper?: string;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export type LegendThresholdProps<Scale extends AnyThresholdScale> =
|
|
22
|
+
LegendProps<Scale> & TransformProps & {
|
|
23
|
+
labelTransform?: LabelFormatterFactory<Scale>;
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
/** Default transform implicitly assumes that Datum is of type number. */
|
|
27
|
+
function defaultTransform<Scale extends AnyThresholdScale>({
|
|
28
|
+
labelDelimiter,
|
|
29
|
+
labelLower,
|
|
30
|
+
labelUpper,
|
|
31
|
+
}: TransformProps): LabelFormatterFactory<Scale> {
|
|
32
|
+
return ({ scale, labelFormat }) => {
|
|
33
|
+
const scaleRange = scale.range();
|
|
34
|
+
|
|
35
|
+
return (d, i) => {
|
|
36
|
+
const [d0, d1] =
|
|
37
|
+
scaleRange.length >= i ? scale.invertExtent(scaleRange[i]) : [undefined, undefined];
|
|
38
|
+
|
|
39
|
+
let delimiter = ` ${labelDelimiter} `;
|
|
40
|
+
let text = '';
|
|
41
|
+
let value: number | ScaleInput<Scale> | undefined;
|
|
42
|
+
|
|
43
|
+
if (d0 == null && typeof d1 === 'number') {
|
|
44
|
+
// lower threshold e.g., [undefined, number]
|
|
45
|
+
delimiter = labelLower || delimiter;
|
|
46
|
+
value = d1 - Math.abs(2 * d1 - 1); // guarantees a value smaller than the lower threshold
|
|
47
|
+
text = `${delimiter}${formatZero(labelFormat(d1, i))}`;
|
|
48
|
+
} else if (d0 != null && d1 != null) {
|
|
49
|
+
// threshold step
|
|
50
|
+
value = d;
|
|
51
|
+
text = `${formatZero(labelFormat(d0, i))}${delimiter}${formatZero(labelFormat(d1, i))}`;
|
|
52
|
+
} else if (typeof d0 === 'number' && d1 == null) {
|
|
53
|
+
// upper threshold e.g., [number, undefined]
|
|
54
|
+
delimiter = labelUpper || delimiter;
|
|
55
|
+
value = d0 + Math.abs(2 * d0 + 1); // // guarantees a value larger than the upper threshold
|
|
56
|
+
text = `${delimiter}${formatZero(labelFormat(d0, i))}`;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
return {
|
|
60
|
+
extent: [d0, d1],
|
|
61
|
+
value: scale(value),
|
|
62
|
+
text,
|
|
63
|
+
datum: d,
|
|
64
|
+
index: i,
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* A Threshold legend component for threshold scales.
|
|
72
|
+
* Threshold scales map continuous input values to discrete output values based on threshold boundaries.
|
|
73
|
+
* This component displays the threshold ranges with customizable delimiters and labels.
|
|
74
|
+
*/
|
|
75
|
+
export default function Threshold<Scale extends AnyThresholdScale>({
|
|
76
|
+
scale,
|
|
77
|
+
domain: inputDomain,
|
|
78
|
+
labelFormat = identity,
|
|
79
|
+
labelTransform: inputLabelTransform,
|
|
80
|
+
labelDelimiter = 'to',
|
|
81
|
+
labelLower = 'Less than ',
|
|
82
|
+
labelUpper = 'More than ',
|
|
83
|
+
...restProps
|
|
84
|
+
}: LegendThresholdProps<Scale>) {
|
|
85
|
+
// d3 docs specify that for n values in a domain, there should be n+1 values in the range
|
|
86
|
+
// https://github.com/d3/d3-scale#threshold_domain
|
|
87
|
+
// therefore if a domain is not specified we transform the range into input values
|
|
88
|
+
// because it should contain more elements
|
|
89
|
+
|
|
90
|
+
const domain =
|
|
91
|
+
inputDomain || scale.range().map((output) => scale.invertExtent(output)[0] as Range);
|
|
92
|
+
|
|
93
|
+
const labelTransform =
|
|
94
|
+
inputLabelTransform ||
|
|
95
|
+
defaultTransform<Scale>({
|
|
96
|
+
labelDelimiter,
|
|
97
|
+
labelLower,
|
|
98
|
+
labelUpper,
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
return <Legend
|
|
102
|
+
scale={scale}
|
|
103
|
+
domain={domain}
|
|
104
|
+
labelFormat={labelFormat}
|
|
105
|
+
labelTransform={labelTransform}
|
|
106
|
+
{...restProps}
|
|
107
|
+
/>;
|
|
108
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// Generated by scripts/generate-tsrx-types.mjs.
|
|
2
|
+
import type { PickD3Scale } from '@octanejs/visx/scale';
|
|
3
|
+
import type { LegendProps } from './Legend/index.tsrx';
|
|
4
|
+
import type { LabelFormatterFactory } from '../types';
|
|
5
|
+
type AnyThresholdScale = PickD3Scale<'threshold', any, any, any>;
|
|
6
|
+
type TransformProps = {
|
|
7
|
+
/** The delimiter string to use between threshold values (e.g., '-' renders as '0 - 10'). */
|
|
8
|
+
labelDelimiter?: string;
|
|
9
|
+
/** The prefix to use for the lower threshold label (e.g., '<' renders as '< 10'). */
|
|
10
|
+
labelLower?: string;
|
|
11
|
+
/** The prefix to use for the upper threshold label (e.g., '>' renders as '> 100'). */
|
|
12
|
+
labelUpper?: string;
|
|
13
|
+
};
|
|
14
|
+
export type LegendThresholdProps<Scale extends AnyThresholdScale> = LegendProps<Scale> & TransformProps & {
|
|
15
|
+
labelTransform?: LabelFormatterFactory<Scale>;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* A Threshold legend component for threshold scales.
|
|
19
|
+
* Threshold scales map continuous input values to discrete output values based on threshold boundaries.
|
|
20
|
+
* This component displays the threshold ranges with customizable delimiters and labels.
|
|
21
|
+
*/
|
|
22
|
+
export default function Threshold<Scale extends AnyThresholdScale>({ scale, domain: inputDomain, labelFormat, labelTransform: inputLabelTransform, labelDelimiter, labelLower, labelUpper, ...restProps }: LegendThresholdProps<Scale>): import("react").JSX.Element;
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { CSSProperties } from 'react';
|
|
2
|
+
import { Group } from '@octanejs/visx/group';
|
|
3
|
+
|
|
4
|
+
export type ShapeCircleProps = {
|
|
5
|
+
/** The fill color for the circle. */
|
|
6
|
+
fill?: string;
|
|
7
|
+
/** Width of the container. The circle radius is derived from max(width, height). */
|
|
8
|
+
width?: string | number;
|
|
9
|
+
/** Height of the container. The circle radius is derived from max(width, height). */
|
|
10
|
+
height?: string | number;
|
|
11
|
+
/** Additional CSS styles to apply to the circle. */
|
|
12
|
+
style?: CSSProperties;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export default function ShapeCircle({ fill, width, height, style }: ShapeCircleProps) {
|
|
16
|
+
const cleanWidth =
|
|
17
|
+
typeof width === 'string' || typeof width === 'undefined' ? 0 : width;
|
|
18
|
+
const cleanHeight =
|
|
19
|
+
typeof height === 'string' || typeof height === 'undefined' ? 0 : height;
|
|
20
|
+
const size = Math.max(cleanWidth, cleanHeight);
|
|
21
|
+
const radius = size / 2;
|
|
22
|
+
return <svg width={size} height={size}>
|
|
23
|
+
<Group top={radius} left={radius}>
|
|
24
|
+
<circle r={radius} fill={fill} style={style} />
|
|
25
|
+
</Group>
|
|
26
|
+
</svg>;
|
|
27
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// Generated by scripts/generate-tsrx-types.mjs.
|
|
2
|
+
import type { CSSProperties } from 'react';
|
|
3
|
+
export type ShapeCircleProps = {
|
|
4
|
+
/** The fill color for the circle. */
|
|
5
|
+
fill?: string;
|
|
6
|
+
/** Width of the container. The circle radius is derived from max(width, height). */
|
|
7
|
+
width?: string | number;
|
|
8
|
+
/** Height of the container. The circle radius is derived from max(width, height). */
|
|
9
|
+
height?: string | number;
|
|
10
|
+
/** Additional CSS styles to apply to the circle. */
|
|
11
|
+
style?: CSSProperties;
|
|
12
|
+
};
|
|
13
|
+
export default function ShapeCircle({ fill, width, height, style }: ShapeCircleProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { CSSProperties } from 'react';
|
|
2
|
+
import { Group } from '@octanejs/visx/group';
|
|
3
|
+
|
|
4
|
+
export type ShapeShapeLineProps = {
|
|
5
|
+
/** The stroke color for the line. Note: Despite the name, this is used as the stroke, not fill. */
|
|
6
|
+
fill?: string;
|
|
7
|
+
/** Width of the line. */
|
|
8
|
+
width?: string | number;
|
|
9
|
+
/** Height of the container. The line is vertically centered. */
|
|
10
|
+
height?: string | number;
|
|
11
|
+
/** Additional CSS styles to apply to the line. The strokeWidth from style is used for line thickness. */
|
|
12
|
+
style?: CSSProperties;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export default function ShapeLine({ fill, width, height, style }: ShapeShapeLineProps) {
|
|
16
|
+
const cleanHeight =
|
|
17
|
+
typeof height === 'string' || typeof height === 'undefined' ? 0 : height;
|
|
18
|
+
const lineThickness =
|
|
19
|
+
typeof style?.strokeWidth === 'number' ? style?.strokeWidth : 2;
|
|
20
|
+
return <svg width={width} height={height}>
|
|
21
|
+
<Group top={cleanHeight / 2 - lineThickness / 2}>
|
|
22
|
+
<line
|
|
23
|
+
x1={0}
|
|
24
|
+
x2={width}
|
|
25
|
+
y1={0}
|
|
26
|
+
y2={0}
|
|
27
|
+
stroke={fill}
|
|
28
|
+
strokeWidth={lineThickness}
|
|
29
|
+
style={style}
|
|
30
|
+
/>
|
|
31
|
+
</Group>
|
|
32
|
+
</svg>;
|
|
33
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// Generated by scripts/generate-tsrx-types.mjs.
|
|
2
|
+
import type { CSSProperties } from 'react';
|
|
3
|
+
export type ShapeShapeLineProps = {
|
|
4
|
+
/** The stroke color for the line. Note: Despite the name, this is used as the stroke, not fill. */
|
|
5
|
+
fill?: string;
|
|
6
|
+
/** Width of the line. */
|
|
7
|
+
width?: string | number;
|
|
8
|
+
/** Height of the container. The line is vertically centered. */
|
|
9
|
+
height?: string | number;
|
|
10
|
+
/** Additional CSS styles to apply to the line. The strokeWidth from style is used for line thickness. */
|
|
11
|
+
style?: CSSProperties;
|
|
12
|
+
};
|
|
13
|
+
export default function ShapeLine({ fill, width, height, style }: ShapeShapeLineProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { CSSProperties } from 'react';
|
|
2
|
+
|
|
3
|
+
export type ShapeRectProps = {
|
|
4
|
+
/** The fill color for the rectangle. */
|
|
5
|
+
fill?: string;
|
|
6
|
+
/** Width of the rectangle. */
|
|
7
|
+
width?: string | number;
|
|
8
|
+
/** Height of the rectangle. */
|
|
9
|
+
height?: string | number;
|
|
10
|
+
/** Additional CSS styles to apply to the rectangle. */
|
|
11
|
+
style?: CSSProperties;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export default function ShapeRect({ fill, width, height, style }: ShapeRectProps) {
|
|
15
|
+
return <div
|
|
16
|
+
style={{
|
|
17
|
+
width,
|
|
18
|
+
height,
|
|
19
|
+
background: fill,
|
|
20
|
+
...style,
|
|
21
|
+
}}
|
|
22
|
+
/>;
|
|
23
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// Generated by scripts/generate-tsrx-types.mjs.
|
|
2
|
+
import type { CSSProperties } from 'react';
|
|
3
|
+
export type ShapeRectProps = {
|
|
4
|
+
/** The fill color for the rectangle. */
|
|
5
|
+
fill?: string;
|
|
6
|
+
/** Width of the rectangle. */
|
|
7
|
+
width?: string | number;
|
|
8
|
+
/** Height of the rectangle. */
|
|
9
|
+
height?: string | number;
|
|
10
|
+
/** Additional CSS styles to apply to the rectangle. */
|
|
11
|
+
style?: CSSProperties;
|
|
12
|
+
};
|
|
13
|
+
export default function ShapeRect({ fill, width, height, style }: ShapeRectProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { AnyD3Scale, ScaleInput } from '@octanejs/visx/scale';
|
|
2
|
+
import type { ComponentClass, CSSProperties, FC } from 'react';
|
|
3
|
+
|
|
4
|
+
export type LabelFormatterFactory<Scale extends AnyD3Scale> = (args: {
|
|
5
|
+
scale: Scale;
|
|
6
|
+
labelFormat: LabelFormatter<ScaleInput<Scale>>;
|
|
7
|
+
}) => ItemTransformer<ScaleInput<Scale>, ReturnType<Scale>>;
|
|
8
|
+
|
|
9
|
+
export type LabelFormatter<Datum> = (
|
|
10
|
+
item: Datum,
|
|
11
|
+
itemIndex: number,
|
|
12
|
+
) => Datum | string | number | undefined;
|
|
13
|
+
|
|
14
|
+
export type FormattedLabel<Datum, Output, ExtraAttributes = {}> = {
|
|
15
|
+
datum: Datum;
|
|
16
|
+
index: number;
|
|
17
|
+
text: string;
|
|
18
|
+
value?: Output;
|
|
19
|
+
} & ExtraAttributes;
|
|
20
|
+
|
|
21
|
+
export type ItemTransformer<Datum, Output> = (
|
|
22
|
+
item: Datum,
|
|
23
|
+
itemIndex: number,
|
|
24
|
+
) => FormattedLabel<Datum, Output>;
|
|
25
|
+
|
|
26
|
+
export type RenderShapeProvidedProps<Data, Output> = {
|
|
27
|
+
width?: string | number;
|
|
28
|
+
height?: string | number;
|
|
29
|
+
label: FormattedLabel<Data, Output>;
|
|
30
|
+
item: Data;
|
|
31
|
+
itemIndex: number;
|
|
32
|
+
fill?: string;
|
|
33
|
+
size?: string | number;
|
|
34
|
+
style?: CSSProperties;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
export type LegendShape<Data, Output> =
|
|
38
|
+
| 'rect'
|
|
39
|
+
| 'circle'
|
|
40
|
+
| 'line'
|
|
41
|
+
| FC<RenderShapeProvidedProps<Data, Output>>
|
|
42
|
+
| ComponentClass<RenderShapeProvidedProps<Data, Output>>;
|
|
43
|
+
|
|
44
|
+
export type FillAccessor<Datum, Output> = (
|
|
45
|
+
label: FormattedLabel<Datum, Output>,
|
|
46
|
+
) => string | undefined;
|
|
47
|
+
|
|
48
|
+
export type SizeAccessor<Datum, Output> = (
|
|
49
|
+
label: FormattedLabel<Datum, Output>,
|
|
50
|
+
) => string | number | undefined;
|
|
51
|
+
|
|
52
|
+
export type ShapeStyleAccessor<Datum, Output> = (
|
|
53
|
+
label: FormattedLabel<Datum, Output>,
|
|
54
|
+
) => CSSProperties | undefined; // TODO: ideally this would support SVGProps, but this is invalid for Rect/Circle shapes
|
|
55
|
+
|
|
56
|
+
export type FlexDirection =
|
|
57
|
+
| 'inherit'
|
|
58
|
+
| 'initial'
|
|
59
|
+
| 'revert'
|
|
60
|
+
| 'unset'
|
|
61
|
+
| 'column'
|
|
62
|
+
| 'column-reverse'
|
|
63
|
+
| 'row'
|
|
64
|
+
| 'row-reverse';
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { D3Scale } from '@octanejs/visx/scale';
|
|
2
|
+
|
|
3
|
+
export default function defaultDomain<Scale extends D3Scale<number>>({
|
|
4
|
+
steps = 5,
|
|
5
|
+
scale,
|
|
6
|
+
}: {
|
|
7
|
+
steps: number;
|
|
8
|
+
scale: Scale;
|
|
9
|
+
}) {
|
|
10
|
+
const domain = scale.domain();
|
|
11
|
+
const start = domain[0];
|
|
12
|
+
const end = domain[domain.length - 1];
|
|
13
|
+
if (typeof start === 'number' && typeof end === 'number') {
|
|
14
|
+
const step = (end - start) / (steps - 1);
|
|
15
|
+
return new Array(steps).fill(1).reduce((acc, cur, i) => {
|
|
16
|
+
acc.push(start + i * step);
|
|
17
|
+
return acc;
|
|
18
|
+
}, []);
|
|
19
|
+
}
|
|
20
|
+
return [];
|
|
21
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { AnyD3Scale, ScaleInput } from '@octanejs/visx/scale';
|
|
2
|
+
import type { LabelFormatter, ItemTransformer } from '../types';
|
|
3
|
+
|
|
4
|
+
/** Returns a function which takes a Datum and index as input, and returns a formatted label object. */
|
|
5
|
+
export default function labelTransformFactory<Scale extends AnyD3Scale>({
|
|
6
|
+
scale,
|
|
7
|
+
labelFormat,
|
|
8
|
+
}: {
|
|
9
|
+
scale: Scale;
|
|
10
|
+
labelFormat: LabelFormatter<ScaleInput<Scale>>;
|
|
11
|
+
}): ItemTransformer<ScaleInput<Scale>, ReturnType<Scale>> {
|
|
12
|
+
return (d, i) => ({
|
|
13
|
+
datum: d,
|
|
14
|
+
index: i,
|
|
15
|
+
text: `${labelFormat(d, i)}`,
|
|
16
|
+
value: scale(d),
|
|
17
|
+
});
|
|
18
|
+
}
|