@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,109 @@
|
|
|
1
|
+
import type { ReactNode, SVGProps } from 'react';
|
|
2
|
+
import cx from 'classnames';
|
|
3
|
+
import { Group } from '@octanejs/visx/group';
|
|
4
|
+
import type { GenericCell, ColorScale, OpacityScale } from '../types';
|
|
5
|
+
|
|
6
|
+
export type HeatmapCircleProps<ColumnDatum, BinDatum> = {
|
|
7
|
+
/** Array of column data (one per column desired) for the heatmap. */
|
|
8
|
+
data?: ColumnDatum[];
|
|
9
|
+
/** Left offset applied to heatmap wrapper g element. */
|
|
10
|
+
left?: number;
|
|
11
|
+
/** Top offset applied to heatmap wrapper g element. */
|
|
12
|
+
top?: number;
|
|
13
|
+
/** Pixel gap between heatmap circles. */
|
|
14
|
+
gap?: number;
|
|
15
|
+
/** Pixel radius of heatmap circles. */
|
|
16
|
+
radius?: number;
|
|
17
|
+
/** Given a column index, returns the x position of a circle cell. */
|
|
18
|
+
xScale: (columnIndex: number) => number;
|
|
19
|
+
/** Given a row index, returns the y position of a circle cell. */
|
|
20
|
+
yScale: (rowIndex: number) => number;
|
|
21
|
+
/** Given a count value, returns the desired circle fill color. */
|
|
22
|
+
colorScale?: ColorScale;
|
|
23
|
+
/** Given a count value, returns the desired circle fill opacity. */
|
|
24
|
+
opacityScale?: OpacityScale;
|
|
25
|
+
/** Accessor that returns an array of cell BinDatums (rows) for the provided ColumnData. */
|
|
26
|
+
bins?: (column: ColumnDatum) => BinDatum[];
|
|
27
|
+
/** Accessor that returns the count for the provided Bin. */
|
|
28
|
+
count?: (bin: BinDatum) => number;
|
|
29
|
+
/** className to apply to each heatmap circle element. */
|
|
30
|
+
className?: string;
|
|
31
|
+
/** Render function override, provided with heatmap. */
|
|
32
|
+
children?: (cells: CircleCell<ColumnDatum, BinDatum>[][]) => ReactNode;
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
export type CircleCell<ColumnDatum, BinDatum> = GenericCell<ColumnDatum, BinDatum> & {
|
|
36
|
+
/** Computed radius for the circle (radius - gap). */
|
|
37
|
+
r: number;
|
|
38
|
+
/** Input radius for the circle including specified gap. */
|
|
39
|
+
radius: number;
|
|
40
|
+
/** x position of the cell circle center. */
|
|
41
|
+
cx: number;
|
|
42
|
+
/** y position of the cell circle center. */
|
|
43
|
+
cy: number;
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
export default function HeatmapCircle<ColumnDatum, BinDatum>({
|
|
47
|
+
className,
|
|
48
|
+
top,
|
|
49
|
+
left,
|
|
50
|
+
data = [],
|
|
51
|
+
gap = 1,
|
|
52
|
+
radius = 6,
|
|
53
|
+
xScale,
|
|
54
|
+
yScale,
|
|
55
|
+
colorScale = () => undefined,
|
|
56
|
+
opacityScale = () => 1,
|
|
57
|
+
bins = (column: any) => column?.bins, // eslint-disable-line @typescript-eslint/no-explicit-any
|
|
58
|
+
count = (cell: any) => cell?.count, // eslint-disable-line @typescript-eslint/no-explicit-any
|
|
59
|
+
children,
|
|
60
|
+
...restProps
|
|
61
|
+
}: HeatmapCircleProps<ColumnDatum, BinDatum> & Omit<SVGProps<SVGCircleElement>, | keyof HeatmapCircleProps<ColumnDatum, BinDatum>
|
|
62
|
+
| 'r'
|
|
63
|
+
| 'cx'
|
|
64
|
+
| 'cy'
|
|
65
|
+
| 'fill'
|
|
66
|
+
| 'fillOpacity'>) {
|
|
67
|
+
const innerRadius = radius - gap;
|
|
68
|
+
|
|
69
|
+
const heatmap: CircleCell<ColumnDatum, BinDatum>[][] = data.map((columnDatum, column) => {
|
|
70
|
+
const x = xScale(column);
|
|
71
|
+
return bins(columnDatum).map((bin, row) => {
|
|
72
|
+
const countValue = count(bin);
|
|
73
|
+
return {
|
|
74
|
+
bin,
|
|
75
|
+
row,
|
|
76
|
+
column,
|
|
77
|
+
datum: columnDatum,
|
|
78
|
+
radius,
|
|
79
|
+
gap,
|
|
80
|
+
count: countValue,
|
|
81
|
+
cx: radius + x,
|
|
82
|
+
cy: yScale(row) + gap + radius,
|
|
83
|
+
r: innerRadius,
|
|
84
|
+
opacity: opacityScale(countValue),
|
|
85
|
+
color: colorScale(countValue),
|
|
86
|
+
};
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
if (children) return <>
|
|
91
|
+
{children(heatmap)}
|
|
92
|
+
</>;
|
|
93
|
+
|
|
94
|
+
return <Group className="visx-heatmap-circles" top={top} left={left}>{heatmap.flatMap(
|
|
95
|
+
(columns) => columns.map(
|
|
96
|
+
(bin) =>
|
|
97
|
+
<circle
|
|
98
|
+
key={`heatmap-tile-circle-${bin.row}-${bin.column}`}
|
|
99
|
+
className={cx('visx-heatmap-circle', className)}
|
|
100
|
+
r={bin.r}
|
|
101
|
+
cx={bin.cx}
|
|
102
|
+
cy={bin.cy}
|
|
103
|
+
fill={bin.color}
|
|
104
|
+
fillOpacity={bin.opacity}
|
|
105
|
+
{...restProps}
|
|
106
|
+
/>,
|
|
107
|
+
),
|
|
108
|
+
)}</Group>;
|
|
109
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
// Generated by scripts/generate-tsrx-types.mjs.
|
|
2
|
+
import type { ReactNode, SVGProps } from 'react';
|
|
3
|
+
import type { GenericCell, ColorScale, OpacityScale } from '../types';
|
|
4
|
+
export type HeatmapCircleProps<ColumnDatum, BinDatum> = {
|
|
5
|
+
/** Array of column data (one per column desired) for the heatmap. */
|
|
6
|
+
data?: ColumnDatum[];
|
|
7
|
+
/** Left offset applied to heatmap wrapper g element. */
|
|
8
|
+
left?: number;
|
|
9
|
+
/** Top offset applied to heatmap wrapper g element. */
|
|
10
|
+
top?: number;
|
|
11
|
+
/** Pixel gap between heatmap circles. */
|
|
12
|
+
gap?: number;
|
|
13
|
+
/** Pixel radius of heatmap circles. */
|
|
14
|
+
radius?: number;
|
|
15
|
+
/** Given a column index, returns the x position of a circle cell. */
|
|
16
|
+
xScale: (columnIndex: number) => number;
|
|
17
|
+
/** Given a row index, returns the y position of a circle cell. */
|
|
18
|
+
yScale: (rowIndex: number) => number;
|
|
19
|
+
/** Given a count value, returns the desired circle fill color. */
|
|
20
|
+
colorScale?: ColorScale;
|
|
21
|
+
/** Given a count value, returns the desired circle fill opacity. */
|
|
22
|
+
opacityScale?: OpacityScale;
|
|
23
|
+
/** Accessor that returns an array of cell BinDatums (rows) for the provided ColumnData. */
|
|
24
|
+
bins?: (column: ColumnDatum) => BinDatum[];
|
|
25
|
+
/** Accessor that returns the count for the provided Bin. */
|
|
26
|
+
count?: (bin: BinDatum) => number;
|
|
27
|
+
/** className to apply to each heatmap circle element. */
|
|
28
|
+
className?: string;
|
|
29
|
+
/** Render function override, provided with heatmap. */
|
|
30
|
+
children?: (cells: CircleCell<ColumnDatum, BinDatum>[][]) => ReactNode;
|
|
31
|
+
};
|
|
32
|
+
export type CircleCell<ColumnDatum, BinDatum> = GenericCell<ColumnDatum, BinDatum> & {
|
|
33
|
+
/** Computed radius for the circle (radius - gap). */
|
|
34
|
+
r: number;
|
|
35
|
+
/** Input radius for the circle including specified gap. */
|
|
36
|
+
radius: number;
|
|
37
|
+
/** x position of the cell circle center. */
|
|
38
|
+
cx: number;
|
|
39
|
+
/** y position of the cell circle center. */
|
|
40
|
+
cy: number;
|
|
41
|
+
};
|
|
42
|
+
export default function HeatmapCircle<ColumnDatum, BinDatum>({ className, top, left, data, gap, radius, xScale, yScale, colorScale, opacityScale, bins, // eslint-disable-line @typescript-eslint/no-explicit-any
|
|
43
|
+
count, // eslint-disable-line @typescript-eslint/no-explicit-any
|
|
44
|
+
children, ...restProps }: HeatmapCircleProps<ColumnDatum, BinDatum> & Omit<SVGProps<SVGCircleElement>, keyof HeatmapCircleProps<ColumnDatum, BinDatum> | 'r' | 'cx' | 'cy' | 'fill' | 'fillOpacity'>): import("react").JSX.Element;
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import type { ReactNode, SVGProps } from 'react';
|
|
2
|
+
import cx from 'classnames';
|
|
3
|
+
import { Group } from '@octanejs/visx/group';
|
|
4
|
+
import type { GenericCell, ColorScale, OpacityScale } from '../types';
|
|
5
|
+
|
|
6
|
+
export type HeatmapRectProps<ColumnDatum, BinDatum> = {
|
|
7
|
+
/** Array of column data (one per column desired) for the heatmap. */
|
|
8
|
+
data?: ColumnDatum[];
|
|
9
|
+
/** Left offset applied to heatmap wrapper g element. */
|
|
10
|
+
left?: number;
|
|
11
|
+
/** Top offset applied to heatmap wrapper g element. */
|
|
12
|
+
top?: number;
|
|
13
|
+
/** Width of a rect bin. */
|
|
14
|
+
binWidth?: number;
|
|
15
|
+
/** Height of a rect bin. */
|
|
16
|
+
binHeight?: number;
|
|
17
|
+
/** */
|
|
18
|
+
x0?: number;
|
|
19
|
+
/** Pixel gap between heatmap rects. */
|
|
20
|
+
gap?: number;
|
|
21
|
+
/** Given a column index, returns the x position of a rect cell. */
|
|
22
|
+
xScale: (columnIndex: number) => number;
|
|
23
|
+
/** Given a row index, returns the y position of a rect cell. */
|
|
24
|
+
yScale: (rowIndex: number) => number;
|
|
25
|
+
/** Given a count value, returns the desired rect fill color. */
|
|
26
|
+
colorScale?: ColorScale;
|
|
27
|
+
/** Given a count value, returns the desired rect fill opacity. */
|
|
28
|
+
opacityScale?: OpacityScale;
|
|
29
|
+
/** Accessor that returns an array of cell BinDatums (rows) for the provided ColumnData. */
|
|
30
|
+
bins?: (column: ColumnDatum) => BinDatum[];
|
|
31
|
+
/** Accessor that returns the count for the provided Bin. */
|
|
32
|
+
count?: (bin: BinDatum) => number;
|
|
33
|
+
/** className to apply to each heatmap rect element. */
|
|
34
|
+
className?: string;
|
|
35
|
+
/** Render function override, provided with heatmap. */
|
|
36
|
+
children?: (cells: RectCell<ColumnDatum, BinDatum>[][]) => ReactNode;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
export type RectCell<ColumnDatum, BinDatum> = GenericCell<ColumnDatum, BinDatum> & {
|
|
40
|
+
/** binWidth less grid gap (effective width). */
|
|
41
|
+
width: number;
|
|
42
|
+
/** binHeight less grid gap (effective height). */
|
|
43
|
+
height: number;
|
|
44
|
+
/** x position of the cell rect. */
|
|
45
|
+
x: number;
|
|
46
|
+
/** y position of the cell rect. */
|
|
47
|
+
y: number;
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
export type ComponentProps<ColumnDatum, BinDatum> =
|
|
51
|
+
HeatmapRectProps<ColumnDatum, BinDatum> & Omit<SVGProps<SVGRectElement>, | keyof HeatmapRectProps<ColumnDatum, BinDatum>
|
|
52
|
+
| 'width'
|
|
53
|
+
| 'height'
|
|
54
|
+
| 'x'
|
|
55
|
+
| 'y'
|
|
56
|
+
| 'fill'
|
|
57
|
+
| 'fillOpacity'>;
|
|
58
|
+
|
|
59
|
+
export default function HeatmapRect<ColumnDatum, BinDatum>({
|
|
60
|
+
className,
|
|
61
|
+
top,
|
|
62
|
+
left,
|
|
63
|
+
data = [],
|
|
64
|
+
binWidth = 6,
|
|
65
|
+
binHeight = 6,
|
|
66
|
+
x0 = 0,
|
|
67
|
+
gap = 1,
|
|
68
|
+
xScale,
|
|
69
|
+
yScale,
|
|
70
|
+
colorScale = () => undefined,
|
|
71
|
+
opacityScale = () => 1,
|
|
72
|
+
bins = (d: any) => d?.bins, // eslint-disable-line @typescript-eslint/no-explicit-any
|
|
73
|
+
count = (d: any) => d?.count, // eslint-disable-line @typescript-eslint/no-explicit-any
|
|
74
|
+
children,
|
|
75
|
+
...restProps
|
|
76
|
+
}: ComponentProps<ColumnDatum, BinDatum>) {
|
|
77
|
+
const width = binWidth - gap;
|
|
78
|
+
const height = binHeight - gap;
|
|
79
|
+
|
|
80
|
+
const heatmap: RectCell<ColumnDatum, BinDatum>[][] = data.map((datum, column) => {
|
|
81
|
+
const x = xScale(column);
|
|
82
|
+
return bins(datum).map((bin, row) => {
|
|
83
|
+
const countValue = count(bin);
|
|
84
|
+
return {
|
|
85
|
+
bin,
|
|
86
|
+
row,
|
|
87
|
+
column,
|
|
88
|
+
datum,
|
|
89
|
+
width,
|
|
90
|
+
height,
|
|
91
|
+
gap,
|
|
92
|
+
count: countValue,
|
|
93
|
+
x: x + x0,
|
|
94
|
+
y: yScale(row) + gap,
|
|
95
|
+
color: colorScale(countValue),
|
|
96
|
+
opacity: opacityScale(countValue),
|
|
97
|
+
};
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
if (children) return <>
|
|
102
|
+
{children(heatmap)}
|
|
103
|
+
</>;
|
|
104
|
+
|
|
105
|
+
return <Group className="visx-heatmap-rects" top={top} left={left}>{heatmap.flatMap(
|
|
106
|
+
(_bins) => _bins.map(
|
|
107
|
+
(bin) =>
|
|
108
|
+
<rect
|
|
109
|
+
key={`heatmap-tile-rect-${bin.row}-${bin.column}`}
|
|
110
|
+
className={cx('visx-heatmap-rect', className)}
|
|
111
|
+
width={bin.width}
|
|
112
|
+
height={bin.height}
|
|
113
|
+
x={bin.x}
|
|
114
|
+
y={bin.y}
|
|
115
|
+
fill={bin.color}
|
|
116
|
+
fillOpacity={bin.opacity}
|
|
117
|
+
{...restProps}
|
|
118
|
+
/>,
|
|
119
|
+
),
|
|
120
|
+
)}</Group>;
|
|
121
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
// Generated by scripts/generate-tsrx-types.mjs.
|
|
2
|
+
import type { ReactNode, SVGProps } from 'react';
|
|
3
|
+
import type { GenericCell, ColorScale, OpacityScale } from '../types';
|
|
4
|
+
export type HeatmapRectProps<ColumnDatum, BinDatum> = {
|
|
5
|
+
/** Array of column data (one per column desired) for the heatmap. */
|
|
6
|
+
data?: ColumnDatum[];
|
|
7
|
+
/** Left offset applied to heatmap wrapper g element. */
|
|
8
|
+
left?: number;
|
|
9
|
+
/** Top offset applied to heatmap wrapper g element. */
|
|
10
|
+
top?: number;
|
|
11
|
+
/** Width of a rect bin. */
|
|
12
|
+
binWidth?: number;
|
|
13
|
+
/** Height of a rect bin. */
|
|
14
|
+
binHeight?: number;
|
|
15
|
+
/** */
|
|
16
|
+
x0?: number;
|
|
17
|
+
/** Pixel gap between heatmap rects. */
|
|
18
|
+
gap?: number;
|
|
19
|
+
/** Given a column index, returns the x position of a rect cell. */
|
|
20
|
+
xScale: (columnIndex: number) => number;
|
|
21
|
+
/** Given a row index, returns the y position of a rect cell. */
|
|
22
|
+
yScale: (rowIndex: number) => number;
|
|
23
|
+
/** Given a count value, returns the desired rect fill color. */
|
|
24
|
+
colorScale?: ColorScale;
|
|
25
|
+
/** Given a count value, returns the desired rect fill opacity. */
|
|
26
|
+
opacityScale?: OpacityScale;
|
|
27
|
+
/** Accessor that returns an array of cell BinDatums (rows) for the provided ColumnData. */
|
|
28
|
+
bins?: (column: ColumnDatum) => BinDatum[];
|
|
29
|
+
/** Accessor that returns the count for the provided Bin. */
|
|
30
|
+
count?: (bin: BinDatum) => number;
|
|
31
|
+
/** className to apply to each heatmap rect element. */
|
|
32
|
+
className?: string;
|
|
33
|
+
/** Render function override, provided with heatmap. */
|
|
34
|
+
children?: (cells: RectCell<ColumnDatum, BinDatum>[][]) => ReactNode;
|
|
35
|
+
};
|
|
36
|
+
export type RectCell<ColumnDatum, BinDatum> = GenericCell<ColumnDatum, BinDatum> & {
|
|
37
|
+
/** binWidth less grid gap (effective width). */
|
|
38
|
+
width: number;
|
|
39
|
+
/** binHeight less grid gap (effective height). */
|
|
40
|
+
height: number;
|
|
41
|
+
/** x position of the cell rect. */
|
|
42
|
+
x: number;
|
|
43
|
+
/** y position of the cell rect. */
|
|
44
|
+
y: number;
|
|
45
|
+
};
|
|
46
|
+
export type ComponentProps<ColumnDatum, BinDatum> = HeatmapRectProps<ColumnDatum, BinDatum> & Omit<SVGProps<SVGRectElement>, keyof HeatmapRectProps<ColumnDatum, BinDatum> | 'width' | 'height' | 'x' | 'y' | 'fill' | 'fillOpacity'>;
|
|
47
|
+
export default function HeatmapRect<ColumnDatum, BinDatum>({ className, top, left, data, binWidth, binHeight, x0, gap, xScale, yScale, colorScale, opacityScale, bins, // eslint-disable-line @typescript-eslint/no-explicit-any
|
|
48
|
+
count, // eslint-disable-line @typescript-eslint/no-explicit-any
|
|
49
|
+
children, ...restProps }: ComponentProps<ColumnDatum, BinDatum>): import("react").JSX.Element;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// @octanejs/visx/heatmap
|
|
2
|
+
export { default as HeatmapCircle } from './heatmaps/HeatmapCircle.tsrx';
|
|
3
|
+
export { default as HeatmapRect } from './heatmaps/HeatmapRect.tsrx';
|
|
4
|
+
|
|
5
|
+
export type * from './types';
|
|
6
|
+
export type { CircleCell, HeatmapCircleProps } from './heatmaps/HeatmapCircle.tsrx';
|
|
7
|
+
export type {
|
|
8
|
+
ComponentProps as HeatmapRectComponentProps,
|
|
9
|
+
HeatmapRectProps,
|
|
10
|
+
RectCell,
|
|
11
|
+
} from './heatmaps/HeatmapRect.tsrx';
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface GenericCell<ColumnDatum, BinDatum> {
|
|
2
|
+
/** BinDatum for cell. */
|
|
3
|
+
bin: BinDatum;
|
|
4
|
+
/** Cell row index. */
|
|
5
|
+
row: number;
|
|
6
|
+
/** Cell column index. */
|
|
7
|
+
column: number;
|
|
8
|
+
/** ColumnDatum for the cell. */
|
|
9
|
+
datum: ColumnDatum;
|
|
10
|
+
/** Cell gap specified. */
|
|
11
|
+
gap: number;
|
|
12
|
+
/** Count returned for this BinDatum. */
|
|
13
|
+
count?: number | null;
|
|
14
|
+
/** Opacity returned for this BinDatum's count. */
|
|
15
|
+
opacity: number | undefined;
|
|
16
|
+
/** Color returned for this BinDatum's count. */
|
|
17
|
+
color: string | undefined;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export type ColorScale = (count: number | { valueOf(): number }) => string | undefined;
|
|
21
|
+
|
|
22
|
+
export type OpacityScale = (count: number | { valueOf(): number }) => number | undefined;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
type Node = { x: number; y: number };
|
|
2
|
+
|
|
3
|
+
export type LinkProps = {
|
|
4
|
+
link?: { source: Node; target: Node };
|
|
5
|
+
};
|
|
6
|
+
|
|
7
|
+
const DEFAULT_LINK = { source: { x: 0, y: 0 }, target: { x: 0, y: 0 } };
|
|
8
|
+
|
|
9
|
+
export default function HierarchyDefaultLink({ link = DEFAULT_LINK }: LinkProps) {
|
|
10
|
+
return <line
|
|
11
|
+
x1={link.source.x}
|
|
12
|
+
y1={link.source.y}
|
|
13
|
+
x2={link.target.x}
|
|
14
|
+
y2={link.target.y}
|
|
15
|
+
strokeWidth={2}
|
|
16
|
+
stroke="#999"
|
|
17
|
+
strokeOpacity={0.6}
|
|
18
|
+
/>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// Generated by scripts/generate-tsrx-types.mjs.
|
|
2
|
+
type Node = {
|
|
3
|
+
x: number;
|
|
4
|
+
y: number;
|
|
5
|
+
};
|
|
6
|
+
export type LinkProps = {
|
|
7
|
+
link?: {
|
|
8
|
+
source: Node;
|
|
9
|
+
target: Node;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
export default function HierarchyDefaultLink({ link }: LinkProps): import("react").JSX.Element;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export type NodeProps = {
|
|
2
|
+
node: { x0: number; x1: number; y0: number; y1: number };
|
|
3
|
+
};
|
|
4
|
+
|
|
5
|
+
export default function HierarchyDefaultRectNode({ node: { x0, x1, y0, y1 } }: NodeProps) {
|
|
6
|
+
return <rect x={x0} y={y0} width={Math.abs(x1 - x0)} height={Math.abs(y1 - y0)} fill="#21D4FD" />;
|
|
7
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// Generated by scripts/generate-tsrx-types.mjs.
|
|
2
|
+
export type NodeProps = {
|
|
3
|
+
node: {
|
|
4
|
+
x0: number;
|
|
5
|
+
x1: number;
|
|
6
|
+
y0: number;
|
|
7
|
+
y1: number;
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
export default function HierarchyDefaultRectNode({ node: { x0, x1, y0, y1 } }: NodeProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { createElement } from 'octane';
|
|
2
|
+
import type { ReactNode, FunctionComponent, ComponentClass } from 'react';
|
|
3
|
+
import cx from 'classnames';
|
|
4
|
+
import { Group } from '@octanejs/visx/group';
|
|
5
|
+
import type { HierarchyNode, HierarchyPointNode, HierarchyPointLink } from 'd3-hierarchy';
|
|
6
|
+
import { cluster as d3cluster } from 'd3-hierarchy';
|
|
7
|
+
import DefaultLink from '../HierarchyDefaultLink.tsrx';
|
|
8
|
+
import DefaultNode from '../HierarchyDefaultNode.tsrx';
|
|
9
|
+
|
|
10
|
+
export type NodeComponentProps<Datum> = { node: HierarchyPointNode<Datum> };
|
|
11
|
+
export type LinkComponentProps<Datum> = { link: HierarchyPointLink<Datum> };
|
|
12
|
+
|
|
13
|
+
export type ClusterProps<Datum> = {
|
|
14
|
+
/** The root hierarchy node from which to derive the treemap layout. */
|
|
15
|
+
root: HierarchyNode<Datum>;
|
|
16
|
+
/** Render override function which is passed the computed cluster layout data. */
|
|
17
|
+
children?: (pack: HierarchyPointNode<Datum>) => ReactNode;
|
|
18
|
+
/** top offset applied to the g element container. */
|
|
19
|
+
top?: number;
|
|
20
|
+
/** left offset applied to the g element container. */
|
|
21
|
+
left?: number;
|
|
22
|
+
/** className applied to the g element container. */
|
|
23
|
+
className?: string;
|
|
24
|
+
/**
|
|
25
|
+
* Sets this cluster layout’s size to the specified two-element array of numbers `[width, height]`.
|
|
26
|
+
* This is an arbitrary coordinate system, e.g., for a radial layout, a size of `[360, radius]`
|
|
27
|
+
* corresponds to a breadth of 360° and a depth of radius.
|
|
28
|
+
*/
|
|
29
|
+
size?: [number, number];
|
|
30
|
+
/**
|
|
31
|
+
* Sets this cluster layout’s node size to the specified two-element array of numbers `[width, height]`.
|
|
32
|
+
* If unset, layout size is used instead. When a node size is specified, the root node is always
|
|
33
|
+
* positioned at `⟨0, 0⟩`.
|
|
34
|
+
*/
|
|
35
|
+
nodeSize?: [number, number];
|
|
36
|
+
/** Sets the separation accessor, used to separate neighboring leaves. */
|
|
37
|
+
separation?: (a: HierarchyPointNode<Datum>, b: HierarchyPointNode<Datum>) => number;
|
|
38
|
+
/** Component which renders a single cluster link, passed the link object. */
|
|
39
|
+
linkComponent?: | FunctionComponent<LinkComponentProps<Datum>>
|
|
40
|
+
| ComponentClass<LinkComponentProps<Datum>>;
|
|
41
|
+
/** Component which renders a single cluster node, passed the node object. */
|
|
42
|
+
nodeComponent?: | FunctionComponent<NodeComponentProps<Datum>>
|
|
43
|
+
| ComponentClass<NodeComponentProps<Datum>>;
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
export default function Cluster<Datum>({
|
|
47
|
+
top,
|
|
48
|
+
left,
|
|
49
|
+
className,
|
|
50
|
+
root,
|
|
51
|
+
size,
|
|
52
|
+
nodeSize,
|
|
53
|
+
separation,
|
|
54
|
+
children,
|
|
55
|
+
linkComponent = DefaultLink,
|
|
56
|
+
nodeComponent = DefaultNode,
|
|
57
|
+
}: ClusterProps<Datum>) {
|
|
58
|
+
const cluster = d3cluster<Datum>();
|
|
59
|
+
if (size) cluster.size(size);
|
|
60
|
+
if (nodeSize !== undefined) cluster.nodeSize(nodeSize);
|
|
61
|
+
if (separation) cluster.separation(separation);
|
|
62
|
+
|
|
63
|
+
const data = cluster(root);
|
|
64
|
+
|
|
65
|
+
if (children) return <>
|
|
66
|
+
{children(data)}
|
|
67
|
+
</>;
|
|
68
|
+
|
|
69
|
+
return <Group top={top} left={left} className={cx('visx-cluster', className)}>
|
|
70
|
+
{linkComponent &&
|
|
71
|
+
data.links().map(
|
|
72
|
+
(link, i) =>
|
|
73
|
+
<Group key={`cluster-link-${i}`}>{createElement(linkComponent, { link })}</Group>,
|
|
74
|
+
)}
|
|
75
|
+
{nodeComponent &&
|
|
76
|
+
data.descendants().map(
|
|
77
|
+
(node, i) =>
|
|
78
|
+
<Group key={`cluster-node-${i}`}>{createElement(nodeComponent, { node })}</Group>,
|
|
79
|
+
)}
|
|
80
|
+
</Group>;
|
|
81
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// Generated by scripts/generate-tsrx-types.mjs.
|
|
2
|
+
import type { ReactNode, FunctionComponent, ComponentClass } from 'react';
|
|
3
|
+
import type { HierarchyNode, HierarchyPointNode, HierarchyPointLink } from 'd3-hierarchy';
|
|
4
|
+
export type NodeComponentProps<Datum> = {
|
|
5
|
+
node: HierarchyPointNode<Datum>;
|
|
6
|
+
};
|
|
7
|
+
export type LinkComponentProps<Datum> = {
|
|
8
|
+
link: HierarchyPointLink<Datum>;
|
|
9
|
+
};
|
|
10
|
+
export type ClusterProps<Datum> = {
|
|
11
|
+
/** The root hierarchy node from which to derive the treemap layout. */
|
|
12
|
+
root: HierarchyNode<Datum>;
|
|
13
|
+
/** Render override function which is passed the computed cluster layout data. */
|
|
14
|
+
children?: (pack: HierarchyPointNode<Datum>) => ReactNode;
|
|
15
|
+
/** top offset applied to the g element container. */
|
|
16
|
+
top?: number;
|
|
17
|
+
/** left offset applied to the g element container. */
|
|
18
|
+
left?: number;
|
|
19
|
+
/** className applied to the g element container. */
|
|
20
|
+
className?: string;
|
|
21
|
+
/**
|
|
22
|
+
* Sets this cluster layout’s size to the specified two-element array of numbers `[width, height]`.
|
|
23
|
+
* This is an arbitrary coordinate system, e.g., for a radial layout, a size of `[360, radius]`
|
|
24
|
+
* corresponds to a breadth of 360° and a depth of radius.
|
|
25
|
+
*/
|
|
26
|
+
size?: [number, number];
|
|
27
|
+
/**
|
|
28
|
+
* Sets this cluster layout’s node size to the specified two-element array of numbers `[width, height]`.
|
|
29
|
+
* If unset, layout size is used instead. When a node size is specified, the root node is always
|
|
30
|
+
* positioned at `⟨0, 0⟩`.
|
|
31
|
+
*/
|
|
32
|
+
nodeSize?: [number, number];
|
|
33
|
+
/** Sets the separation accessor, used to separate neighboring leaves. */
|
|
34
|
+
separation?: (a: HierarchyPointNode<Datum>, b: HierarchyPointNode<Datum>) => number;
|
|
35
|
+
/** Component which renders a single cluster link, passed the link object. */
|
|
36
|
+
linkComponent?: FunctionComponent<LinkComponentProps<Datum>> | ComponentClass<LinkComponentProps<Datum>>;
|
|
37
|
+
/** Component which renders a single cluster node, passed the node object. */
|
|
38
|
+
nodeComponent?: FunctionComponent<NodeComponentProps<Datum>> | ComponentClass<NodeComponentProps<Datum>>;
|
|
39
|
+
};
|
|
40
|
+
export default function Cluster<Datum>({ top, left, className, root, size, nodeSize, separation, children, linkComponent, nodeComponent, }: ClusterProps<Datum>): import("react").JSX.Element;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { createElement } from 'octane';
|
|
2
|
+
import type { ReactNode, FunctionComponent, ComponentClass } from 'react';
|
|
3
|
+
import cx from 'classnames';
|
|
4
|
+
import { Group } from '@octanejs/visx/group';
|
|
5
|
+
import type { HierarchyNode, HierarchyCircularNode } from 'd3-hierarchy';
|
|
6
|
+
import { pack as d3pack } from 'd3-hierarchy';
|
|
7
|
+
import DefaultNode from '../HierarchyDefaultNode.tsrx';
|
|
8
|
+
|
|
9
|
+
export type PackProps<Datum> = {
|
|
10
|
+
/** The root hierarchy node from which to derive the pack layout. */
|
|
11
|
+
root: HierarchyNode<Datum>;
|
|
12
|
+
/** Render override function which is passed the computed pack layout data. */
|
|
13
|
+
children?: (pack: HierarchyCircularNode<Datum>) => ReactNode;
|
|
14
|
+
/** top offset applied to the g element container. */
|
|
15
|
+
top?: number;
|
|
16
|
+
/** left offset applied to the g element container. */
|
|
17
|
+
left?: number;
|
|
18
|
+
/** className applied to the g element container. */
|
|
19
|
+
className?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Radius accessor function which defines the radius of each leaf node.
|
|
22
|
+
* If the radius accessor is null, the radius of each leaf circle is derived
|
|
23
|
+
* from the leaf node.value, and scaled proportionally to fit within
|
|
24
|
+
* the defined layout `size`.
|
|
25
|
+
*/
|
|
26
|
+
radius?: (node: HierarchyNode<Datum>) => number;
|
|
27
|
+
/** Sets the pack layout size to the defined [width, height]. */
|
|
28
|
+
size?: [number, number];
|
|
29
|
+
/**
|
|
30
|
+
* Sets this pack layout's padding accessor to the specified number or function,
|
|
31
|
+
* which determines approximate separation of nodes in the resulting pack.
|
|
32
|
+
*/
|
|
33
|
+
padding?: number;
|
|
34
|
+
/** Component which renders a single pack node, passed the node object. */
|
|
35
|
+
nodeComponent?: | FunctionComponent<NodeComponentProps<Datum>>
|
|
36
|
+
| ComponentClass<NodeComponentProps<Datum>>;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
export type NodeComponentProps<Datum> = { node: HierarchyCircularNode<Datum> };
|
|
40
|
+
|
|
41
|
+
export default function Pack<Datum>({
|
|
42
|
+
top,
|
|
43
|
+
left,
|
|
44
|
+
className,
|
|
45
|
+
root,
|
|
46
|
+
radius,
|
|
47
|
+
size,
|
|
48
|
+
padding,
|
|
49
|
+
children,
|
|
50
|
+
nodeComponent = DefaultNode,
|
|
51
|
+
}: PackProps<Datum>) {
|
|
52
|
+
const pack = d3pack<Datum>();
|
|
53
|
+
if (size) pack.size(size);
|
|
54
|
+
if (radius !== undefined) pack.radius(radius);
|
|
55
|
+
if (padding) pack.padding(padding);
|
|
56
|
+
|
|
57
|
+
const data = pack(root);
|
|
58
|
+
|
|
59
|
+
if (children) return <>
|
|
60
|
+
{children(data)}
|
|
61
|
+
</>;
|
|
62
|
+
|
|
63
|
+
return <Group top={top} left={left} className={cx('visx-pack', className)}>
|
|
64
|
+
{nodeComponent &&
|
|
65
|
+
data.descendants().map(
|
|
66
|
+
(node, i) => <Group key={`pack-node-${i}`}>{createElement(nodeComponent, { node })}</Group>,
|
|
67
|
+
)}
|
|
68
|
+
</Group>;
|
|
69
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// Generated by scripts/generate-tsrx-types.mjs.
|
|
2
|
+
import type { ReactNode, FunctionComponent, ComponentClass } from 'react';
|
|
3
|
+
import type { HierarchyNode, HierarchyCircularNode } from 'd3-hierarchy';
|
|
4
|
+
export type PackProps<Datum> = {
|
|
5
|
+
/** The root hierarchy node from which to derive the pack layout. */
|
|
6
|
+
root: HierarchyNode<Datum>;
|
|
7
|
+
/** Render override function which is passed the computed pack layout data. */
|
|
8
|
+
children?: (pack: HierarchyCircularNode<Datum>) => ReactNode;
|
|
9
|
+
/** top offset applied to the g element container. */
|
|
10
|
+
top?: number;
|
|
11
|
+
/** left offset applied to the g element container. */
|
|
12
|
+
left?: number;
|
|
13
|
+
/** className applied to the g element container. */
|
|
14
|
+
className?: string;
|
|
15
|
+
/**
|
|
16
|
+
* Radius accessor function which defines the radius of each leaf node.
|
|
17
|
+
* If the radius accessor is null, the radius of each leaf circle is derived
|
|
18
|
+
* from the leaf node.value, and scaled proportionally to fit within
|
|
19
|
+
* the defined layout `size`.
|
|
20
|
+
*/
|
|
21
|
+
radius?: (node: HierarchyNode<Datum>) => number;
|
|
22
|
+
/** Sets the pack layout size to the defined [width, height]. */
|
|
23
|
+
size?: [number, number];
|
|
24
|
+
/**
|
|
25
|
+
* Sets this pack layout's padding accessor to the specified number or function,
|
|
26
|
+
* which determines approximate separation of nodes in the resulting pack.
|
|
27
|
+
*/
|
|
28
|
+
padding?: number;
|
|
29
|
+
/** Component which renders a single pack node, passed the node object. */
|
|
30
|
+
nodeComponent?: FunctionComponent<NodeComponentProps<Datum>> | ComponentClass<NodeComponentProps<Datum>>;
|
|
31
|
+
};
|
|
32
|
+
export type NodeComponentProps<Datum> = {
|
|
33
|
+
node: HierarchyCircularNode<Datum>;
|
|
34
|
+
};
|
|
35
|
+
export default function Pack<Datum>({ top, left, className, root, radius, size, padding, children, nodeComponent, }: PackProps<Datum>): import("react").JSX.Element;
|