@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,174 @@
|
|
|
1
|
+
// source https://yeun.github.io/open-color/
|
|
2
|
+
export const allColors: {
|
|
3
|
+
[hue: string]: [string, string, string, string, string, string, string, string, string, string];
|
|
4
|
+
} = {
|
|
5
|
+
red: [
|
|
6
|
+
'#fff5f5',
|
|
7
|
+
'#ffe3e3',
|
|
8
|
+
'#ffc9c9',
|
|
9
|
+
'#ffa8a8',
|
|
10
|
+
'#ff8787',
|
|
11
|
+
'#ff6b6b',
|
|
12
|
+
'#fa5252',
|
|
13
|
+
'#f03e3e',
|
|
14
|
+
'#e03131',
|
|
15
|
+
'#c92a2a',
|
|
16
|
+
],
|
|
17
|
+
pink: [
|
|
18
|
+
'#fff0f6',
|
|
19
|
+
'#ffdeeb',
|
|
20
|
+
'#fcc2d7',
|
|
21
|
+
'#faa2c1',
|
|
22
|
+
'#f783ac',
|
|
23
|
+
'#f06595',
|
|
24
|
+
'#e64980',
|
|
25
|
+
'#d6336c',
|
|
26
|
+
'#c2255c',
|
|
27
|
+
'#a61e4d',
|
|
28
|
+
],
|
|
29
|
+
grape: [
|
|
30
|
+
'#f8f0fc',
|
|
31
|
+
'#f3d9fa',
|
|
32
|
+
'#eebefa',
|
|
33
|
+
'#e599f7',
|
|
34
|
+
'#da77f2',
|
|
35
|
+
'#cc5de8',
|
|
36
|
+
'#be4bdb',
|
|
37
|
+
'#ae3ec9',
|
|
38
|
+
'#9c36b5',
|
|
39
|
+
'#862e9c',
|
|
40
|
+
],
|
|
41
|
+
violet: [
|
|
42
|
+
'#f3f0ff',
|
|
43
|
+
'#e5dbff',
|
|
44
|
+
'#d0bfff',
|
|
45
|
+
'#b197fc',
|
|
46
|
+
'#9775fa',
|
|
47
|
+
'#845ef7',
|
|
48
|
+
'#7950f2',
|
|
49
|
+
'#7048e8',
|
|
50
|
+
'#6741d9',
|
|
51
|
+
'#5f3dc4',
|
|
52
|
+
],
|
|
53
|
+
indigo: [
|
|
54
|
+
'#edf2ff',
|
|
55
|
+
'#dbe4ff',
|
|
56
|
+
'#bac8ff',
|
|
57
|
+
'#91a7ff',
|
|
58
|
+
'#748ffc',
|
|
59
|
+
'#5c7cfa',
|
|
60
|
+
'#4c6ef5',
|
|
61
|
+
'#4263eb',
|
|
62
|
+
'#3b5bdb',
|
|
63
|
+
'#364fc7',
|
|
64
|
+
],
|
|
65
|
+
blue: [
|
|
66
|
+
'#e8f7ff',
|
|
67
|
+
'#ccedff',
|
|
68
|
+
'#a3daff',
|
|
69
|
+
'#72c3fc',
|
|
70
|
+
'#4dadf7',
|
|
71
|
+
'#329af0',
|
|
72
|
+
'#228ae6',
|
|
73
|
+
'#1c7cd6',
|
|
74
|
+
'#1b6ec2',
|
|
75
|
+
'#1862ab',
|
|
76
|
+
],
|
|
77
|
+
cyan: [
|
|
78
|
+
'#e3fafc',
|
|
79
|
+
'#c5f6fa',
|
|
80
|
+
'#99e9f2',
|
|
81
|
+
'#66d9e8',
|
|
82
|
+
'#3bc9db',
|
|
83
|
+
'#22b8cf',
|
|
84
|
+
'#15aabf',
|
|
85
|
+
'#1098ad',
|
|
86
|
+
'#0c8599',
|
|
87
|
+
'#0b7285',
|
|
88
|
+
],
|
|
89
|
+
teal: [
|
|
90
|
+
'#e6fcf5',
|
|
91
|
+
'#c3fae8',
|
|
92
|
+
'#96f2d7',
|
|
93
|
+
'#63e6be',
|
|
94
|
+
'#38d9a9',
|
|
95
|
+
'#20c997',
|
|
96
|
+
'#12b886',
|
|
97
|
+
'#0ca678',
|
|
98
|
+
'#099268',
|
|
99
|
+
'#087f5b',
|
|
100
|
+
],
|
|
101
|
+
green: [
|
|
102
|
+
'#ebfbee',
|
|
103
|
+
'#d3f9d8',
|
|
104
|
+
'#b2f2bb',
|
|
105
|
+
'#8ce99a',
|
|
106
|
+
'#69db7c',
|
|
107
|
+
'#51cf66',
|
|
108
|
+
'#40c057',
|
|
109
|
+
'#37b24d',
|
|
110
|
+
'#2f9e44',
|
|
111
|
+
'#2b8a3e',
|
|
112
|
+
],
|
|
113
|
+
lime: [
|
|
114
|
+
'#f4fce3',
|
|
115
|
+
'#e9fac8',
|
|
116
|
+
'#d8f5a2',
|
|
117
|
+
'#c0eb75',
|
|
118
|
+
'#a9e34b',
|
|
119
|
+
'#94d82d',
|
|
120
|
+
'#82c91e',
|
|
121
|
+
'#74b816',
|
|
122
|
+
'#66a80f',
|
|
123
|
+
'#5c940d',
|
|
124
|
+
],
|
|
125
|
+
yellow: [
|
|
126
|
+
'#fff9db',
|
|
127
|
+
'#fff3bf',
|
|
128
|
+
'#ffec99',
|
|
129
|
+
'#ffe066',
|
|
130
|
+
'#ffd43b',
|
|
131
|
+
'#fcc419',
|
|
132
|
+
'#fab005',
|
|
133
|
+
'#f59f00',
|
|
134
|
+
'#f08c00',
|
|
135
|
+
'#e67700',
|
|
136
|
+
],
|
|
137
|
+
orange: [
|
|
138
|
+
'#fff4e6',
|
|
139
|
+
'#ffe8cc',
|
|
140
|
+
'#ffd8a8',
|
|
141
|
+
'#ffc078',
|
|
142
|
+
'#ffa94d',
|
|
143
|
+
'#ff922b',
|
|
144
|
+
'#fd7e14',
|
|
145
|
+
'#f76707',
|
|
146
|
+
'#e8590c',
|
|
147
|
+
'#d9480f',
|
|
148
|
+
],
|
|
149
|
+
gray: [
|
|
150
|
+
'#f8f9fa',
|
|
151
|
+
'#f1f3f5',
|
|
152
|
+
'#e9ecef',
|
|
153
|
+
'#dee2e6',
|
|
154
|
+
'#ced4da',
|
|
155
|
+
'#adb5bd',
|
|
156
|
+
'#868e96',
|
|
157
|
+
'#495057',
|
|
158
|
+
'#343a40',
|
|
159
|
+
'#212529',
|
|
160
|
+
],
|
|
161
|
+
};
|
|
162
|
+
|
|
163
|
+
export const grayColors = allColors.gray;
|
|
164
|
+
export const textColor = grayColors[7];
|
|
165
|
+
|
|
166
|
+
export const defaultColors = [
|
|
167
|
+
allColors.cyan[9],
|
|
168
|
+
allColors.cyan[3],
|
|
169
|
+
allColors.yellow[5],
|
|
170
|
+
allColors.red[4],
|
|
171
|
+
allColors.grape[8],
|
|
172
|
+
allColors.grape[5],
|
|
173
|
+
allColors.pink[9],
|
|
174
|
+
];
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { allColors, grayColors } from '../colors';
|
|
2
|
+
import buildChartTheme from '../buildChartTheme';
|
|
3
|
+
|
|
4
|
+
export default buildChartTheme({
|
|
5
|
+
backgroundColor: '#222',
|
|
6
|
+
colors: [
|
|
7
|
+
allColors.cyan[4],
|
|
8
|
+
allColors.teal[1],
|
|
9
|
+
allColors.yellow[2],
|
|
10
|
+
allColors.red[4],
|
|
11
|
+
allColors.grape[3],
|
|
12
|
+
allColors.grape[6],
|
|
13
|
+
allColors.pink[3],
|
|
14
|
+
],
|
|
15
|
+
tickLength: 4,
|
|
16
|
+
svgLabelSmall: {
|
|
17
|
+
fill: grayColors[2],
|
|
18
|
+
},
|
|
19
|
+
svgLabelBig: {
|
|
20
|
+
fill: grayColors[0],
|
|
21
|
+
},
|
|
22
|
+
gridColor: grayColors[4],
|
|
23
|
+
gridColorDark: grayColors[1],
|
|
24
|
+
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { defaultColors, grayColors } from '../colors';
|
|
2
|
+
import buildChartTheme from '../buildChartTheme';
|
|
3
|
+
|
|
4
|
+
export default buildChartTheme({
|
|
5
|
+
backgroundColor: '#fff',
|
|
6
|
+
colors: defaultColors,
|
|
7
|
+
tickLength: 4,
|
|
8
|
+
svgLabelSmall: {
|
|
9
|
+
fill: grayColors[7],
|
|
10
|
+
},
|
|
11
|
+
svgLabelBig: {
|
|
12
|
+
fill: grayColors[9],
|
|
13
|
+
},
|
|
14
|
+
gridColor: grayColors[5],
|
|
15
|
+
gridColorDark: grayColors[9],
|
|
16
|
+
});
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { FocusEvent, PointerEvent } from 'react';
|
|
2
|
+
|
|
3
|
+
type EventType = PointerEvent | FocusEvent;
|
|
4
|
+
|
|
5
|
+
// functional definition of a PointerEvent (mouse, touch)
|
|
6
|
+
export function isPointerEvent(event?: EventType): event is PointerEvent {
|
|
7
|
+
return !!event && ('clientX' in event || 'changedTouches' in event);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export function isFocusEvent(event?: EventType): event is FocusEvent {
|
|
11
|
+
return !!event && !isPointerEvent(event);
|
|
12
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { AxisScale } from '@octanejs/visx/axis';
|
|
2
|
+
import type { ResizeObserverPolyfill } from '@octanejs/visx/responsive';
|
|
3
|
+
import type { ScaleTypeToD3Scale, ScaleInput } from '@octanejs/visx/scale';
|
|
4
|
+
import type DataRegistry from '../classes/DataRegistry';
|
|
5
|
+
import type { XYChartTheme } from './theme';
|
|
6
|
+
|
|
7
|
+
export type Margin = {
|
|
8
|
+
top: number;
|
|
9
|
+
right: number;
|
|
10
|
+
bottom: number;
|
|
11
|
+
left: number;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export type LegendShape = 'rect' | 'line' | 'dashed-line' | 'circle';
|
|
15
|
+
|
|
16
|
+
export interface DataRegistryEntry<XScale extends AxisScale, YScale extends AxisScale, Datum> {
|
|
17
|
+
/** unique data key */
|
|
18
|
+
key: string;
|
|
19
|
+
/** array of data for the key. */
|
|
20
|
+
data: Datum[];
|
|
21
|
+
/** function that returns the x value of a datum. */
|
|
22
|
+
xAccessor: (d: Datum) => ScaleInput<XScale>;
|
|
23
|
+
/** function that returns the y value of a datum. */
|
|
24
|
+
yAccessor: (d: Datum) => ScaleInput<YScale>;
|
|
25
|
+
/** whether the entry supports mouse events. */
|
|
26
|
+
mouseEvents?: boolean;
|
|
27
|
+
/** Optionally update the xScale. */
|
|
28
|
+
xScale?: <Scale extends AxisScale>(xScale: Scale) => Scale;
|
|
29
|
+
/** Optionally update the yScale. */
|
|
30
|
+
yScale?: <Scale extends AxisScale>(yScale: Scale) => Scale;
|
|
31
|
+
/** Legend shape for the data key. */
|
|
32
|
+
legendShape?: LegendShape;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export interface DataContextType<
|
|
36
|
+
XScale extends AxisScale,
|
|
37
|
+
YScale extends AxisScale,
|
|
38
|
+
Datum extends object,
|
|
39
|
+
> {
|
|
40
|
+
xScale: XScale;
|
|
41
|
+
yScale: YScale;
|
|
42
|
+
colorScale: ScaleTypeToD3Scale<string, string>['ordinal'];
|
|
43
|
+
width: number;
|
|
44
|
+
height: number;
|
|
45
|
+
innerWidth: number;
|
|
46
|
+
innerHeight: number;
|
|
47
|
+
margin: Margin;
|
|
48
|
+
dataRegistry: Omit<DataRegistry<XScale, YScale, Datum>, 'registry' | 'registryKeys'>;
|
|
49
|
+
registerData: (
|
|
50
|
+
data: DataRegistryEntry<XScale, YScale, Datum> | DataRegistryEntry<XScale, YScale, Datum>[],
|
|
51
|
+
) => void;
|
|
52
|
+
unregisterData: (keyOrKeys: string | string[]) => void;
|
|
53
|
+
setDimensions: (dims: { width: number; height: number; margin: Margin }) => void;
|
|
54
|
+
theme: XYChartTheme;
|
|
55
|
+
horizontal: boolean;
|
|
56
|
+
resizeObserverPolyfill?: ResizeObserverPolyfill;
|
|
57
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { AxisScale } from '@octanejs/visx/axis';
|
|
2
|
+
import type { ScaleInput } from '@octanejs/visx/scale';
|
|
3
|
+
import type { Emitter } from 'mitt';
|
|
4
|
+
|
|
5
|
+
export type EventEmitterContextType = Emitter;
|
|
6
|
+
|
|
7
|
+
/** Arguments for findNearestDatum* functions. */
|
|
8
|
+
export type NearestDatumArgs<
|
|
9
|
+
XScale extends AxisScale,
|
|
10
|
+
YScale extends AxisScale,
|
|
11
|
+
Datum extends object,
|
|
12
|
+
> = {
|
|
13
|
+
dataKey: string;
|
|
14
|
+
point: { x: number; y: number } | null;
|
|
15
|
+
xAccessor: (d: Datum) => ScaleInput<XScale>;
|
|
16
|
+
yAccessor: (d: Datum) => ScaleInput<YScale>;
|
|
17
|
+
data: Datum[];
|
|
18
|
+
width: number;
|
|
19
|
+
height: number;
|
|
20
|
+
xScale: XScale;
|
|
21
|
+
yScale: YScale;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
/** Return type for nearestDatum* functions. */
|
|
25
|
+
export type NearestDatumReturnType<Datum extends object> = {
|
|
26
|
+
datum: Datum;
|
|
27
|
+
index: number;
|
|
28
|
+
distanceX: number;
|
|
29
|
+
distanceY: number;
|
|
30
|
+
} | null;
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
import type { PointerEvent, FocusEvent, SVGProps } from 'react';
|
|
2
|
+
import type { AxisScale } from '@octanejs/visx/axis';
|
|
3
|
+
import type { ScaleInput } from '@octanejs/visx/scale';
|
|
4
|
+
import type { Series, SeriesPoint } from 'd3-shape';
|
|
5
|
+
|
|
6
|
+
/** Call signature of PointerEvent callback. */
|
|
7
|
+
export type EventHandlerParams<Datum> = {
|
|
8
|
+
/** Series key that datum belongs to. */
|
|
9
|
+
key: string;
|
|
10
|
+
/** Index of datum in series data array. */
|
|
11
|
+
index: number;
|
|
12
|
+
/** Datum. */
|
|
13
|
+
datum: Datum;
|
|
14
|
+
/** Optional distance of datum x value to event x value. Used to determine closest datum. */
|
|
15
|
+
distanceX?: number;
|
|
16
|
+
/** Optional distance of datum y value to event y value. Used to determine closest datum. */
|
|
17
|
+
distanceY?: number;
|
|
18
|
+
/** Coordinates of the event in svg space. */
|
|
19
|
+
svgPoint?: { x: number; y: number };
|
|
20
|
+
/** The PointerEvent or FocusEvent. */
|
|
21
|
+
event?: PointerEvent | FocusEvent;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export type SeriesProps<
|
|
25
|
+
XScale extends AxisScale,
|
|
26
|
+
YScale extends AxisScale,
|
|
27
|
+
Datum extends object,
|
|
28
|
+
> = {
|
|
29
|
+
/** Required data key for the Series, should be unique across all series. */
|
|
30
|
+
dataKey: string;
|
|
31
|
+
/** Data for the Series. */
|
|
32
|
+
data: Datum[];
|
|
33
|
+
/** Given a Datum, returns the x-scale value. */
|
|
34
|
+
xAccessor: (d: Datum) => ScaleInput<XScale>;
|
|
35
|
+
/** Given a Datum, returns the y-scale value. */
|
|
36
|
+
yAccessor: (d: Datum) => ScaleInput<YScale>;
|
|
37
|
+
/**
|
|
38
|
+
* Callback invoked for onPointerMove events for the nearest Datum to the PointerEvent.
|
|
39
|
+
* By default XYChart will capture and emit PointerEvents, invoking this function for
|
|
40
|
+
* any Series with a defined handler. Alternatively you may set <XYChart captureEvents={false} />
|
|
41
|
+
* and Series will emit their own events.
|
|
42
|
+
*/
|
|
43
|
+
onPointerMove?: ({
|
|
44
|
+
datum,
|
|
45
|
+
distanceX,
|
|
46
|
+
distanceY,
|
|
47
|
+
event,
|
|
48
|
+
index,
|
|
49
|
+
key,
|
|
50
|
+
svgPoint,
|
|
51
|
+
}: EventHandlerParams<Datum>) => void;
|
|
52
|
+
/**
|
|
53
|
+
* Callback invoked for onPointerOut events. By default XYChart will capture and emit
|
|
54
|
+
* PointerEvents, invoking this function for any Series with a defined handler.
|
|
55
|
+
* Alternatively you may set <XYChart captureEvents={false} /> and Series will emit
|
|
56
|
+
* their own events.
|
|
57
|
+
*/
|
|
58
|
+
onPointerOut?: (
|
|
59
|
+
/** The PointerEvent. */
|
|
60
|
+
event: PointerEvent,
|
|
61
|
+
) => void;
|
|
62
|
+
/**
|
|
63
|
+
* Callback invoked for onPointerUp events for the nearest Datum to the PointerEvent.
|
|
64
|
+
* By default XYChart will capture and emit PointerEvents, invoking this function for
|
|
65
|
+
* any Series with a defined handler. Alternatively you may set <XYChart captureEvents={false} />
|
|
66
|
+
* and Series will emit their own events.
|
|
67
|
+
*/
|
|
68
|
+
onPointerUp?: ({
|
|
69
|
+
datum,
|
|
70
|
+
distanceX,
|
|
71
|
+
distanceY,
|
|
72
|
+
event,
|
|
73
|
+
index,
|
|
74
|
+
key,
|
|
75
|
+
svgPoint,
|
|
76
|
+
}: EventHandlerParams<Datum>) => void;
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Callback invoked for onPointerDown events for the nearest Datum to the PointerEvent.
|
|
80
|
+
* By default XYChart will capture and emit PointerEvents, invoking this function for
|
|
81
|
+
* any Series with a defined handler. Alternatively you may set <XYChart captureEvents={false} />
|
|
82
|
+
* and Series will emit their own events.
|
|
83
|
+
*/
|
|
84
|
+
onPointerDown?: ({
|
|
85
|
+
datum,
|
|
86
|
+
distanceX,
|
|
87
|
+
distanceY,
|
|
88
|
+
event,
|
|
89
|
+
index,
|
|
90
|
+
key,
|
|
91
|
+
svgPoint,
|
|
92
|
+
}: EventHandlerParams<Datum>) => void;
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Callback invoked for onFocus events for the nearest Datum to the FocusEvent.
|
|
96
|
+
* XYChart will NOT capture and emit FocusEvents, they are emitted from individual Series glyph shapes.
|
|
97
|
+
*/
|
|
98
|
+
onFocus?: ({
|
|
99
|
+
datum,
|
|
100
|
+
distanceX,
|
|
101
|
+
distanceY,
|
|
102
|
+
event,
|
|
103
|
+
index,
|
|
104
|
+
key,
|
|
105
|
+
svgPoint,
|
|
106
|
+
}: EventHandlerParams<Datum>) => void;
|
|
107
|
+
/**
|
|
108
|
+
* Callback invoked for onBlur events for the nearest Datum to the FocusEvent.
|
|
109
|
+
* XYChart will NOT capture and emit FocusEvents, they are emitted from individual Series glyph shapes.
|
|
110
|
+
*/
|
|
111
|
+
onBlur?: (
|
|
112
|
+
/** The FocusEvent. */
|
|
113
|
+
event: FocusEvent,
|
|
114
|
+
) => void;
|
|
115
|
+
/** Whether the Series emits and subscribes to PointerEvents and FocusEvents (including Tooltip triggering). */
|
|
116
|
+
enableEvents?: boolean;
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
/** Bar shape. */
|
|
120
|
+
export type Bar = {
|
|
121
|
+
/** Unique key for Bar (not dataKey). */
|
|
122
|
+
key: string;
|
|
123
|
+
/** X coordinate of Bar. */
|
|
124
|
+
x: number;
|
|
125
|
+
/** Y coordinate of Bar. */
|
|
126
|
+
y: number;
|
|
127
|
+
/** Width of Bar. */
|
|
128
|
+
width: number;
|
|
129
|
+
/** Height of Bar. */
|
|
130
|
+
height: number;
|
|
131
|
+
/** Fill color of Bar */
|
|
132
|
+
fill?: string;
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
/** Props for base Bars components */
|
|
136
|
+
export type BarsProps<XScale extends AxisScale, YScale extends AxisScale> = {
|
|
137
|
+
bars: Bar[];
|
|
138
|
+
xScale: XScale;
|
|
139
|
+
yScale: YScale;
|
|
140
|
+
horizontal?: boolean;
|
|
141
|
+
/** Optional radius to apply to bar corners. */
|
|
142
|
+
radius?: number;
|
|
143
|
+
/** Whether to apply radius to all corners. */
|
|
144
|
+
radiusAll?: boolean;
|
|
145
|
+
/** Whether to apply radius to top corners. */
|
|
146
|
+
radiusTop?: boolean;
|
|
147
|
+
/** Whether to apply radius to right corners. */
|
|
148
|
+
radiusRight?: boolean;
|
|
149
|
+
/** Whether to apply radius to bottom corners. */
|
|
150
|
+
radiusBottom?: boolean;
|
|
151
|
+
/** Whether to apply radius to left corners. */
|
|
152
|
+
radiusLeft?: boolean;
|
|
153
|
+
} & Omit<
|
|
154
|
+
SVGProps<SVGRectElement | SVGPathElement>,
|
|
155
|
+
'x' | 'y' | 'width' | 'height' | 'ref' | 'children'
|
|
156
|
+
>;
|
|
157
|
+
|
|
158
|
+
// BarStack transforms its child series Datum into CombinedData<XScale, YScale>
|
|
159
|
+
export type BarStackDatum<XScale extends AxisScale, YScale extends AxisScale> = SeriesPoint<
|
|
160
|
+
CombinedStackData<XScale, YScale>
|
|
161
|
+
>;
|
|
162
|
+
|
|
163
|
+
export type BarStackData<XScale extends AxisScale, YScale extends AxisScale> = Series<
|
|
164
|
+
CombinedStackData<XScale, YScale>,
|
|
165
|
+
string
|
|
166
|
+
>[];
|
|
167
|
+
|
|
168
|
+
export type CombinedStackData<XScale extends AxisScale, YScale extends AxisScale> = {
|
|
169
|
+
[dataKey: string]: ScaleInput<XScale> | ScaleInput<YScale>;
|
|
170
|
+
} & { stack: ScaleInput<XScale> | ScaleInput<YScale>; positiveSum: number; negativeSum: number };
|
|
171
|
+
|
|
172
|
+
/** Glyphs */
|
|
173
|
+
export type GlyphsProps<
|
|
174
|
+
XScale extends AxisScale,
|
|
175
|
+
YScale extends AxisScale,
|
|
176
|
+
Datum extends object,
|
|
177
|
+
> = {
|
|
178
|
+
xScale: XScale;
|
|
179
|
+
yScale: YScale;
|
|
180
|
+
horizontal?: boolean;
|
|
181
|
+
glyphs: GlyphProps<Datum>[];
|
|
182
|
+
/** Callback to invoke for onBlur. */
|
|
183
|
+
onBlur?: (event: FocusEvent) => void;
|
|
184
|
+
/** Callback to invoke for onFocus. */
|
|
185
|
+
onFocus?: (event: FocusEvent) => void;
|
|
186
|
+
/** Callback to invoke for onPointerMove. */
|
|
187
|
+
onPointerMove?: (event: PointerEvent) => void;
|
|
188
|
+
/** Callback to invoke for onPointerOut. */
|
|
189
|
+
onPointerOut?: (event: PointerEvent) => void;
|
|
190
|
+
/** Callback to invoke for onPointerUp. */
|
|
191
|
+
onPointerUp?: (event: PointerEvent) => void;
|
|
192
|
+
};
|
|
193
|
+
|
|
194
|
+
export type GlyphProps<Datum extends object> = {
|
|
195
|
+
/** Unique key for Glyph (not dataKey). */
|
|
196
|
+
key: string;
|
|
197
|
+
/** Datum for Glyph. */
|
|
198
|
+
datum: Datum;
|
|
199
|
+
/** Index of Datum in data array. */
|
|
200
|
+
index: number;
|
|
201
|
+
/** X coordinate of Glyph. */
|
|
202
|
+
x: number;
|
|
203
|
+
/** Y coordinate of Glyph. */
|
|
204
|
+
y: number;
|
|
205
|
+
/** Size of Glyph. */
|
|
206
|
+
size: number;
|
|
207
|
+
/** Color of Glyph. */
|
|
208
|
+
color: string;
|
|
209
|
+
/** Callback to invoke for onBlur. */
|
|
210
|
+
onBlur?: (event: FocusEvent) => void;
|
|
211
|
+
/** Callback to invoke for onFocus. */
|
|
212
|
+
onFocus?: (event: FocusEvent) => void;
|
|
213
|
+
/** Callback to invoke for onPointerMove. */
|
|
214
|
+
onPointerMove?: (event: PointerEvent) => void;
|
|
215
|
+
/** Callback to invoke for onPointerOut. */
|
|
216
|
+
onPointerOut?: (event: PointerEvent) => void;
|
|
217
|
+
/** Callback to invoke for onPointerUp. */
|
|
218
|
+
onPointerUp?: (event: PointerEvent) => void;
|
|
219
|
+
};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { CSSProperties, HTMLAttributes, SVGAttributes } from 'react';
|
|
2
|
+
import type { TextProps } from '@octanejs/visx/text';
|
|
3
|
+
|
|
4
|
+
export type HTMLTextStyles = HTMLAttributes<HTMLDivElement>['style'];
|
|
5
|
+
|
|
6
|
+
export type LineStyles = Omit<SVGAttributes<SVGLineElement>, 'Key'>;
|
|
7
|
+
|
|
8
|
+
export type GridStyles = CSSProperties;
|
|
9
|
+
|
|
10
|
+
export type SVGTextProps = TextProps;
|
|
11
|
+
|
|
12
|
+
interface AxisStyle {
|
|
13
|
+
/** Axis label styles. */
|
|
14
|
+
axisLabel: SVGTextProps;
|
|
15
|
+
/** Axis line styles. */
|
|
16
|
+
axisLine: LineStyles;
|
|
17
|
+
/** Tick label styles. */
|
|
18
|
+
tickLabel: SVGTextProps;
|
|
19
|
+
/** Tick line styles. */
|
|
20
|
+
tickLine: LineStyles;
|
|
21
|
+
/** Length of axis tick lines. */
|
|
22
|
+
tickLength: number;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/** A complete chart theme includes style definitions for all axis orientations. */
|
|
26
|
+
export interface XYChartTheme {
|
|
27
|
+
/** Base background color. */
|
|
28
|
+
backgroundColor: string;
|
|
29
|
+
/** Ordinal colors to be used for default coloring by series `key`s. */
|
|
30
|
+
colors: string[];
|
|
31
|
+
/** Styles to applied to HMTL labels. */
|
|
32
|
+
htmlLabel: HTMLTextStyles;
|
|
33
|
+
/** Styles to applied to big SVG labels (axis label, annotation title, etc.). */
|
|
34
|
+
svgLabelBig: SVGTextProps;
|
|
35
|
+
/** Styles to applied to small SVG labels (tick label, annotation subtitle, etc.). */
|
|
36
|
+
svgLabelSmall: SVGTextProps;
|
|
37
|
+
/** Styles to be applied to chart grids. */
|
|
38
|
+
gridStyles: GridStyles;
|
|
39
|
+
/** Styles to be applied to axes (axis labels, ticks, tick labels). */
|
|
40
|
+
axisStyles: {
|
|
41
|
+
x: {
|
|
42
|
+
top: AxisStyle;
|
|
43
|
+
bottom: AxisStyle;
|
|
44
|
+
};
|
|
45
|
+
y: {
|
|
46
|
+
left: AxisStyle;
|
|
47
|
+
right: AxisStyle;
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { UseTooltipParams } from '@octanejs/visx/tooltip';
|
|
2
|
+
import type { EventHandlerParams } from './series';
|
|
3
|
+
|
|
4
|
+
export type TooltipDatum<Datum extends object> = {
|
|
5
|
+
/** Series key that datum belongs to. */
|
|
6
|
+
key: string;
|
|
7
|
+
/** Index of datum in series data array. */
|
|
8
|
+
index: number;
|
|
9
|
+
/** Datum. */
|
|
10
|
+
datum: Datum;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export type TooltipData<Datum extends object = object> = {
|
|
14
|
+
/** Nearest Datum to event across all Series. */
|
|
15
|
+
nearestDatum?: TooltipDatum<Datum> & { distance: number };
|
|
16
|
+
/** Nearest Datum to event across for each Series. */
|
|
17
|
+
datumByKey: {
|
|
18
|
+
[key: string]: TooltipDatum<Datum>;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export type TooltipContextType<Datum extends object> = UseTooltipParams<TooltipData<Datum>> & {
|
|
23
|
+
showTooltip: (params: EventHandlerParams<Datum>) => void;
|
|
24
|
+
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/* react-spring cannot tween colors with url ids (patterns, gradients), these helpers detect and clean them. */
|
|
2
|
+
const neutralCleanColor = 'rgba(0,0,0,0.1)';
|
|
3
|
+
export const colorHasUrl = (color?: string) => Boolean(color?.includes('url('));
|
|
4
|
+
export const cleanColor = (color?: string) => (colorHasUrl(color) ? neutralCleanColor : color);
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Children } from 'octane';
|
|
2
|
+
import type { ReactNode } from 'react';
|
|
3
|
+
import type { AxisScale } from '@octanejs/visx/axis';
|
|
4
|
+
import type { DataRegistryEntry } from '../types';
|
|
5
|
+
|
|
6
|
+
type ElementWithProps = { props?: Record<string, unknown> | null };
|
|
7
|
+
|
|
8
|
+
function hasProps(value: unknown): value is ElementWithProps {
|
|
9
|
+
return value !== null && typeof value === 'object' && 'props' in value;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Discovers series descriptors before their effects run. Octane's return-form
|
|
14
|
+
* TSRX preserves JSX children as element descriptors, so fixed-size XYChart
|
|
15
|
+
* scales can be built during the server render and the first hydration pass.
|
|
16
|
+
*/
|
|
17
|
+
export default function collectDataRegistryEntries<
|
|
18
|
+
XScale extends AxisScale,
|
|
19
|
+
YScale extends AxisScale,
|
|
20
|
+
Datum extends object,
|
|
21
|
+
>(children: ReactNode): DataRegistryEntry<XScale, YScale, Datum>[] {
|
|
22
|
+
const entries = new Map<string, DataRegistryEntry<XScale, YScale, Datum>>();
|
|
23
|
+
|
|
24
|
+
function visit(value: unknown): void {
|
|
25
|
+
for (const child of Children.toArray(value)) {
|
|
26
|
+
if (!hasProps(child) || child.props == null) continue;
|
|
27
|
+
const props = child.props;
|
|
28
|
+
const { data, dataKey, xAccessor, yAccessor } = props;
|
|
29
|
+
|
|
30
|
+
if (
|
|
31
|
+
typeof dataKey === 'string' &&
|
|
32
|
+
Array.isArray(data) &&
|
|
33
|
+
typeof xAccessor === 'function' &&
|
|
34
|
+
typeof yAccessor === 'function'
|
|
35
|
+
) {
|
|
36
|
+
entries.set(dataKey, {
|
|
37
|
+
key: dataKey,
|
|
38
|
+
data: data as Datum[],
|
|
39
|
+
xAccessor: xAccessor as DataRegistryEntry<XScale, YScale, Datum>['xAccessor'],
|
|
40
|
+
yAccessor: yAccessor as DataRegistryEntry<XScale, YScale, Datum>['yAccessor'],
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
if ('children' in props) visit(props.children);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
visit(children);
|
|
49
|
+
return [...entries.values()];
|
|
50
|
+
}
|