@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.
Files changed (767) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +67 -0
  3. package/UPSTREAM.md +52 -0
  4. package/package.json +161 -0
  5. package/src/a11y/components/ChartA11yAnnouncer.tsrx +40 -0
  6. package/src/a11y/components/ChartA11yAnnouncer.tsrx.d.ts +14 -0
  7. package/src/a11y/components/ChartA11yDataTable.tsrx +40 -0
  8. package/src/a11y/components/ChartA11yDataTable.tsrx.d.ts +9 -0
  9. package/src/a11y/generators/ariaProps.ts +79 -0
  10. package/src/a11y/generators/dataTableHTML.ts +24 -0
  11. package/src/a11y/generators/description.ts +125 -0
  12. package/src/a11y/index.ts +35 -0
  13. package/src/a11y/keyboard/stateMachine.ts +231 -0
  14. package/src/a11y/react/index.ts +59 -0
  15. package/src/a11y/server.ts +29 -0
  16. package/src/a11y/types.ts +104 -0
  17. package/src/a11y/useChartA11y.tsrx +144 -0
  18. package/src/a11y/useChartA11y.tsrx.d.ts +27 -0
  19. package/src/a11y/useChartKeyboardNav.tsrx +234 -0
  20. package/src/a11y/useChartKeyboardNav.tsrx.d.ts +26 -0
  21. package/src/a11y/utils/data.ts +80 -0
  22. package/src/a11y/utils/format.ts +73 -0
  23. package/src/a11y/utils/table.ts +81 -0
  24. package/src/annotation/components/Annotation.tsrx +14 -0
  25. package/src/annotation/components/Annotation.tsrx.d.ts +8 -0
  26. package/src/annotation/components/CircleSubject.tsrx +37 -0
  27. package/src/annotation/components/CircleSubject.tsrx.d.ts +12 -0
  28. package/src/annotation/components/Connector.tsrx +75 -0
  29. package/src/annotation/components/Connector.tsrx.d.ts +14 -0
  30. package/src/annotation/components/EditableAnnotation.tsrx +179 -0
  31. package/src/annotation/components/EditableAnnotation.tsrx.d.ts +33 -0
  32. package/src/annotation/components/HtmlLabel.tsrx +93 -0
  33. package/src/annotation/components/HtmlLabel.tsrx.d.ts +10 -0
  34. package/src/annotation/components/Label.tsrx +249 -0
  35. package/src/annotation/components/Label.tsrx.d.ts +60 -0
  36. package/src/annotation/components/LabelAnchorLine.tsrx +32 -0
  37. package/src/annotation/components/LabelAnchorLine.tsrx.d.ts +12 -0
  38. package/src/annotation/components/LineSubject.tsrx +50 -0
  39. package/src/annotation/components/LineSubject.tsrx.d.ts +21 -0
  40. package/src/annotation/context/AnnotationContext.tsrx +6 -0
  41. package/src/annotation/context/AnnotationContext.tsrx.d.ts +4 -0
  42. package/src/annotation/index.ts +18 -0
  43. package/src/annotation/types/index.ts +10 -0
  44. package/src/axis/axis/Axis.tsrx +54 -0
  45. package/src/axis/axis/Axis.tsrx.d.ts +7 -0
  46. package/src/axis/axis/AxisBottom.tsrx +37 -0
  47. package/src/axis/axis/AxisBottom.tsrx.d.ts +10 -0
  48. package/src/axis/axis/AxisLeft.tsrx +37 -0
  49. package/src/axis/axis/AxisLeft.tsrx.d.ts +11 -0
  50. package/src/axis/axis/AxisRenderer.tsrx +102 -0
  51. package/src/axis/axis/AxisRenderer.tsrx.d.ts +3 -0
  52. package/src/axis/axis/AxisRight.tsrx +39 -0
  53. package/src/axis/axis/AxisRight.tsrx.d.ts +12 -0
  54. package/src/axis/axis/AxisTop.tsrx +38 -0
  55. package/src/axis/axis/AxisTop.tsrx.d.ts +11 -0
  56. package/src/axis/axis/Ticks.tsrx +56 -0
  57. package/src/axis/axis/Ticks.tsrx.d.ts +3 -0
  58. package/src/axis/constants/orientation.ts +12 -0
  59. package/src/axis/index.ts +10 -0
  60. package/src/axis/react/index.ts +5 -0
  61. package/src/axis/react/useAxis.tsrx +89 -0
  62. package/src/axis/react/useAxis.tsrx.d.ts +13 -0
  63. package/src/axis/types.ts +145 -0
  64. package/src/axis/utils/createPoint.ts +5 -0
  65. package/src/axis/utils/getAxisRangePaddingConfig.ts +11 -0
  66. package/src/axis/utils/getLabelTransform.ts +44 -0
  67. package/src/axis/utils/getTickFormatter.ts +19 -0
  68. package/src/axis/utils/getTickPosition.ts +28 -0
  69. package/src/bounds/enhancers/withBoundingRects.tsrx +59 -0
  70. package/src/bounds/enhancers/withBoundingRects.tsrx.d.ts +21 -0
  71. package/src/bounds/index.ts +6 -0
  72. package/src/brush/BaseBrush.tsrx +567 -0
  73. package/src/brush/BaseBrush.tsrx.d.ts +39 -0
  74. package/src/brush/Brush.tsrx +217 -0
  75. package/src/brush/Brush.tsrx.d.ts +56 -0
  76. package/src/brush/BrushCorner.tsrx +173 -0
  77. package/src/brush/BrushCorner.tsrx.d.ts +21 -0
  78. package/src/brush/BrushHandle.tsrx +222 -0
  79. package/src/brush/BrushHandle.tsrx.d.ts +33 -0
  80. package/src/brush/BrushOverlay.tsrx +18 -0
  81. package/src/brush/BrushOverlay.tsrx.d.ts +15 -0
  82. package/src/brush/BrushSelection.tsrx +181 -0
  83. package/src/brush/BrushSelection.tsrx.d.ts +27 -0
  84. package/src/brush/index.ts +9 -0
  85. package/src/brush/types.ts +62 -0
  86. package/src/brush/utils.ts +89 -0
  87. package/src/chart/config.ts +50 -0
  88. package/src/chart/domains.ts +47 -0
  89. package/src/chart/index.ts +33 -0
  90. package/src/chart/responsive.ts +3 -0
  91. package/src/chart/ticks.ts +90 -0
  92. package/src/chart/useChartDimensions.tsrx +74 -0
  93. package/src/chart/useChartDimensions.tsrx.d.ts +28 -0
  94. package/src/chord/Chord.tsrx +42 -0
  95. package/src/chord/Chord.tsrx.d.ts +22 -0
  96. package/src/chord/Ribbon.tsrx +63 -0
  97. package/src/chord/Ribbon.tsrx.d.ts +26 -0
  98. package/src/chord/index.ts +6 -0
  99. package/src/clip-path/clip-paths/CircleClipPath.tsrx +26 -0
  100. package/src/clip-path/clip-paths/CircleClipPath.tsrx.d.ts +14 -0
  101. package/src/clip-path/clip-paths/ClipPath.tsrx +21 -0
  102. package/src/clip-path/clip-paths/ClipPath.tsrx.d.ts +10 -0
  103. package/src/clip-path/clip-paths/RectClipPath.tsrx +28 -0
  104. package/src/clip-path/clip-paths/RectClipPath.tsrx.d.ts +15 -0
  105. package/src/clip-path/index.ts +4 -0
  106. package/src/curve/index.ts +21 -0
  107. package/src/delaunay/components/Polygon.tsrx +32 -0
  108. package/src/delaunay/components/Polygon.tsrx.d.ts +14 -0
  109. package/src/delaunay/delaunay.ts +17 -0
  110. package/src/delaunay/index.ts +4 -0
  111. package/src/delaunay/voronoi.ts +30 -0
  112. package/src/drag/Drag.tsrx +66 -0
  113. package/src/drag/Drag.tsrx.d.ts +17 -0
  114. package/src/drag/index.ts +13 -0
  115. package/src/drag/useDrag.tsrx +214 -0
  116. package/src/drag/useDrag.tsrx.d.ts +60 -0
  117. package/src/drag/util/clampNumber.ts +4 -0
  118. package/src/drag/util/getClosestPoint.ts +13 -0
  119. package/src/drag/util/raise.ts +8 -0
  120. package/src/drag/util/restrictPoint.ts +18 -0
  121. package/src/drag/util/useSamplesAlongPath.tsrx +26 -0
  122. package/src/drag/util/useSamplesAlongPath.tsrx.d.ts +3 -0
  123. package/src/drag/util/useStateWithCallback.tsrx +26 -0
  124. package/src/drag/util/useStateWithCallback.tsrx.d.ts +5 -0
  125. package/src/event/getXAndYFromEvent.ts +36 -0
  126. package/src/event/index.ts +3 -0
  127. package/src/event/localPoint.ts +18 -0
  128. package/src/event/localPointGeneric.ts +34 -0
  129. package/src/event/touchPoint.ts +2 -0
  130. package/src/event/typeGuards.ts +37 -0
  131. package/src/event/types.ts +13 -0
  132. package/src/external.d.ts +3 -0
  133. package/src/geo/graticule/Graticule.tsrx +97 -0
  134. package/src/geo/graticule/Graticule.tsrx.d.ts +52 -0
  135. package/src/geo/index.ts +13 -0
  136. package/src/geo/projections/Albers.tsrx +10 -0
  137. package/src/geo/projections/Albers.tsrx.d.ts +7 -0
  138. package/src/geo/projections/AlbersUsa.tsrx +10 -0
  139. package/src/geo/projections/AlbersUsa.tsrx.d.ts +7 -0
  140. package/src/geo/projections/CustomProjection.tsrx +10 -0
  141. package/src/geo/projections/CustomProjection.tsrx.d.ts +7 -0
  142. package/src/geo/projections/EqualEarth.tsrx +10 -0
  143. package/src/geo/projections/EqualEarth.tsrx.d.ts +7 -0
  144. package/src/geo/projections/Mercator.tsrx +10 -0
  145. package/src/geo/projections/Mercator.tsrx.d.ts +7 -0
  146. package/src/geo/projections/NaturalEarth.tsrx +10 -0
  147. package/src/geo/projections/NaturalEarth.tsrx.d.ts +7 -0
  148. package/src/geo/projections/Orthographic.tsrx +10 -0
  149. package/src/geo/projections/Orthographic.tsrx.d.ts +7 -0
  150. package/src/geo/projections/Projection.tsrx +201 -0
  151. package/src/geo/projections/Projection.tsrx.d.ts +86 -0
  152. package/src/geo/types.ts +14 -0
  153. package/src/glyph/glyphs/Glyph.tsrx +18 -0
  154. package/src/glyph/glyphs/Glyph.tsrx.d.ts +13 -0
  155. package/src/glyph/glyphs/GlyphCircle.tsrx +46 -0
  156. package/src/glyph/glyphs/GlyphCircle.tsrx.d.ts +18 -0
  157. package/src/glyph/glyphs/GlyphCross.tsrx +46 -0
  158. package/src/glyph/glyphs/GlyphCross.tsrx.d.ts +18 -0
  159. package/src/glyph/glyphs/GlyphDiamond.tsrx +46 -0
  160. package/src/glyph/glyphs/GlyphDiamond.tsrx.d.ts +18 -0
  161. package/src/glyph/glyphs/GlyphDot.tsrx +29 -0
  162. package/src/glyph/glyphs/GlyphDot.tsrx.d.ts +17 -0
  163. package/src/glyph/glyphs/GlyphSquare.tsrx +46 -0
  164. package/src/glyph/glyphs/GlyphSquare.tsrx.d.ts +18 -0
  165. package/src/glyph/glyphs/GlyphStar.tsrx +45 -0
  166. package/src/glyph/glyphs/GlyphStar.tsrx.d.ts +18 -0
  167. package/src/glyph/glyphs/GlyphTriangle.tsrx +46 -0
  168. package/src/glyph/glyphs/GlyphTriangle.tsrx.d.ts +18 -0
  169. package/src/glyph/glyphs/GlyphWye.tsrx +45 -0
  170. package/src/glyph/glyphs/GlyphWye.tsrx.d.ts +18 -0
  171. package/src/glyph/index.ts +20 -0
  172. package/src/gradient/gradients/GradientDarkgreenGreen.tsrx +13 -0
  173. package/src/gradient/gradients/GradientDarkgreenGreen.tsrx.d.ts +6 -0
  174. package/src/gradient/gradients/GradientLightgreenGreen.tsrx +13 -0
  175. package/src/gradient/gradients/GradientLightgreenGreen.tsrx.d.ts +6 -0
  176. package/src/gradient/gradients/GradientOrangeRed.tsrx +13 -0
  177. package/src/gradient/gradients/GradientOrangeRed.tsrx.d.ts +6 -0
  178. package/src/gradient/gradients/GradientPinkBlue.tsrx +13 -0
  179. package/src/gradient/gradients/GradientPinkBlue.tsrx.d.ts +6 -0
  180. package/src/gradient/gradients/GradientPinkRed.tsrx +13 -0
  181. package/src/gradient/gradients/GradientPinkRed.tsrx.d.ts +6 -0
  182. package/src/gradient/gradients/GradientPurpleOrange.tsrx +13 -0
  183. package/src/gradient/gradients/GradientPurpleOrange.tsrx.d.ts +6 -0
  184. package/src/gradient/gradients/GradientPurpleRed.tsrx +13 -0
  185. package/src/gradient/gradients/GradientPurpleRed.tsrx.d.ts +6 -0
  186. package/src/gradient/gradients/GradientPurpleTeal.tsrx +13 -0
  187. package/src/gradient/gradients/GradientPurpleTeal.tsrx.d.ts +6 -0
  188. package/src/gradient/gradients/GradientSteelPurple.tsrx +13 -0
  189. package/src/gradient/gradients/GradientSteelPurple.tsrx.d.ts +6 -0
  190. package/src/gradient/gradients/GradientTealBlue.tsrx +13 -0
  191. package/src/gradient/gradients/GradientTealBlue.tsrx.d.ts +6 -0
  192. package/src/gradient/gradients/LinearGradient.tsrx +85 -0
  193. package/src/gradient/gradients/LinearGradient.tsrx.d.ts +37 -0
  194. package/src/gradient/gradients/RadialGradient.tsrx +43 -0
  195. package/src/gradient/gradients/RadialGradient.tsrx.d.ts +5 -0
  196. package/src/gradient/index.ts +16 -0
  197. package/src/grid/grids/Grid.tsrx +86 -0
  198. package/src/grid/grids/Grid.tsrx.d.ts +30 -0
  199. package/src/grid/grids/GridAngle.tsrx +74 -0
  200. package/src/grid/grids/GridAngle.tsrx.d.ts +29 -0
  201. package/src/grid/grids/GridColumns.tsrx +76 -0
  202. package/src/grid/grids/GridColumns.tsrx.d.ts +18 -0
  203. package/src/grid/grids/GridPolar.tsrx +189 -0
  204. package/src/grid/grids/GridPolar.tsrx.d.ts +123 -0
  205. package/src/grid/grids/GridRadial.tsrx +92 -0
  206. package/src/grid/grids/GridRadial.tsrx.d.ts +44 -0
  207. package/src/grid/grids/GridRows.tsrx +76 -0
  208. package/src/grid/grids/GridRows.tsrx.d.ts +18 -0
  209. package/src/grid/index.ts +11 -0
  210. package/src/grid/types.ts +40 -0
  211. package/src/grid/utils/getScaleBandwidth.ts +5 -0
  212. package/src/grid/utils/polarToCartesian.ts +16 -0
  213. package/src/group/Group.tsrx +33 -0
  214. package/src/group/Group.tsrx.d.ts +16 -0
  215. package/src/group/index.ts +2 -0
  216. package/src/heatmap/heatmaps/HeatmapCircle.tsrx +109 -0
  217. package/src/heatmap/heatmaps/HeatmapCircle.tsrx.d.ts +44 -0
  218. package/src/heatmap/heatmaps/HeatmapRect.tsrx +121 -0
  219. package/src/heatmap/heatmaps/HeatmapRect.tsrx.d.ts +49 -0
  220. package/src/heatmap/index.ts +11 -0
  221. package/src/heatmap/types.ts +22 -0
  222. package/src/hierarchy/HierarchyDefaultLink.tsrx +19 -0
  223. package/src/hierarchy/HierarchyDefaultLink.tsrx.d.ts +13 -0
  224. package/src/hierarchy/HierarchyDefaultNode.tsrx +7 -0
  225. package/src/hierarchy/HierarchyDefaultNode.tsrx.d.ts +9 -0
  226. package/src/hierarchy/HierarchyDefaultRectNode.tsrx +7 -0
  227. package/src/hierarchy/HierarchyDefaultRectNode.tsrx.d.ts +10 -0
  228. package/src/hierarchy/hierarchies/Cluster.tsrx +81 -0
  229. package/src/hierarchy/hierarchies/Cluster.tsrx.d.ts +40 -0
  230. package/src/hierarchy/hierarchies/Pack.tsrx +69 -0
  231. package/src/hierarchy/hierarchies/Pack.tsrx.d.ts +35 -0
  232. package/src/hierarchy/hierarchies/Partition.tsrx +62 -0
  233. package/src/hierarchy/hierarchies/Partition.tsrx.d.ts +27 -0
  234. package/src/hierarchy/hierarchies/Tree.tsrx +82 -0
  235. package/src/hierarchy/hierarchies/Tree.tsrx.d.ts +43 -0
  236. package/src/hierarchy/hierarchies/Treemap.tsrx +97 -0
  237. package/src/hierarchy/hierarchies/Treemap.tsrx.d.ts +47 -0
  238. package/src/hierarchy/index.ts +26 -0
  239. package/src/hierarchy/types.ts +21 -0
  240. package/src/hierarchy/utils/setNumOrNumAccessor.ts +11 -0
  241. package/src/index.ts +74 -0
  242. package/src/internal/spring.tsrx +190 -0
  243. package/src/internal/spring.tsrx.d.ts +28 -0
  244. package/src/internal/useMeasure.tsrx +120 -0
  245. package/src/internal/useMeasure.tsrx.d.ts +22 -0
  246. package/src/kernel/accessors/normalizeAccessor.ts +59 -0
  247. package/src/kernel/domain/useDomain.tsrx +111 -0
  248. package/src/kernel/domain/useDomain.tsrx.d.ts +13 -0
  249. package/src/kernel/format/formatNumber.ts +8 -0
  250. package/src/kernel/ids/useStableId.tsrx +7 -0
  251. package/src/kernel/ids/useStableId.tsrx.d.ts +2 -0
  252. package/src/kernel/index.ts +25 -0
  253. package/src/kernel/memo/shallowEqual.ts +65 -0
  254. package/src/kernel/memo/useStructuralMemo.tsrx +18 -0
  255. package/src/kernel/memo/useStructuralMemo.tsrx.d.ts +3 -0
  256. package/src/kernel/path/createPath.ts +132 -0
  257. package/src/kernel/path/toPath2D.ts +41 -0
  258. package/src/kernel/refs/useLatestRef.tsrx +7 -0
  259. package/src/kernel/refs/useLatestRef.tsrx.d.ts +4 -0
  260. package/src/kernel/refs/useStableCallback.tsrx +13 -0
  261. package/src/kernel/refs/useStableCallback.tsrx.d.ts +2 -0
  262. package/src/kernel/warnings.ts +76 -0
  263. package/src/legend/index.ts +27 -0
  264. package/src/legend/legends/Legend/LegendItem.tsrx +35 -0
  265. package/src/legend/legends/Legend/LegendItem.tsrx.d.ts +16 -0
  266. package/src/legend/legends/Legend/LegendLabel.tsrx +39 -0
  267. package/src/legend/legends/Legend/LegendLabel.tsrx.d.ts +16 -0
  268. package/src/legend/legends/Legend/LegendShape.tsrx +64 -0
  269. package/src/legend/legends/Legend/LegendShape.tsrx.d.ts +25 -0
  270. package/src/legend/legends/Legend/index.tsrx +140 -0
  271. package/src/legend/legends/Legend/index.tsrx.d.ts +50 -0
  272. package/src/legend/legends/Linear.tsrx +23 -0
  273. package/src/legend/legends/Linear.tsrx.d.ts +11 -0
  274. package/src/legend/legends/Ordinal.tsrx +13 -0
  275. package/src/legend/legends/Ordinal.tsrx.d.ts +8 -0
  276. package/src/legend/legends/Quantile.tsrx +53 -0
  277. package/src/legend/legends/Quantile.tsrx.d.ts +12 -0
  278. package/src/legend/legends/Size.tsrx +37 -0
  279. package/src/legend/legends/Size.tsrx.d.ts +14 -0
  280. package/src/legend/legends/Threshold.tsrx +108 -0
  281. package/src/legend/legends/Threshold.tsrx.d.ts +23 -0
  282. package/src/legend/shapes/Circle.tsrx +27 -0
  283. package/src/legend/shapes/Circle.tsrx.d.ts +13 -0
  284. package/src/legend/shapes/Line.tsrx +33 -0
  285. package/src/legend/shapes/Line.tsrx.d.ts +13 -0
  286. package/src/legend/shapes/Rect.tsrx +23 -0
  287. package/src/legend/shapes/Rect.tsrx.d.ts +13 -0
  288. package/src/legend/types/index.ts +64 -0
  289. package/src/legend/util/defaultDomain.ts +21 -0
  290. package/src/legend/util/identity.ts +3 -0
  291. package/src/legend/util/labelTransformFactory.ts +18 -0
  292. package/src/legend/util/renderShape.ts +67 -0
  293. package/src/legend/util/valueOrIdentity.ts +12 -0
  294. package/src/marker/index.ts +9 -0
  295. package/src/marker/markers/Arrow.tsrx +30 -0
  296. package/src/marker/markers/Arrow.tsrx.d.ts +3 -0
  297. package/src/marker/markers/Circle.tsrx +26 -0
  298. package/src/marker/markers/Circle.tsrx.d.ts +3 -0
  299. package/src/marker/markers/Cross.tsrx +27 -0
  300. package/src/marker/markers/Cross.tsrx.d.ts +3 -0
  301. package/src/marker/markers/Line.tsrx +29 -0
  302. package/src/marker/markers/Line.tsrx.d.ts +3 -0
  303. package/src/marker/markers/Marker.tsrx +46 -0
  304. package/src/marker/markers/Marker.tsrx.d.ts +25 -0
  305. package/src/marker/markers/X.tsrx +6 -0
  306. package/src/marker/markers/X.tsrx.d.ts +3 -0
  307. package/src/mock-data/generators/genBin.ts +28 -0
  308. package/src/mock-data/generators/genBins.ts +27 -0
  309. package/src/mock-data/generators/genDateValue.ts +22 -0
  310. package/src/mock-data/generators/genPhyllotaxis.ts +27 -0
  311. package/src/mock-data/generators/genRandomNormalPoints.ts +32 -0
  312. package/src/mock-data/generators/genStats.ts +96 -0
  313. package/src/mock-data/generators/getSeededRandom.ts +9 -0
  314. package/src/mock-data/index.ts +40 -0
  315. package/src/mock-data/mocks/appleStock.ts +1289 -0
  316. package/src/mock-data/mocks/bitcoinPrice.ts +382 -0
  317. package/src/mock-data/mocks/browserUsage.ts +4053 -0
  318. package/src/mock-data/mocks/cityTemperature.ts +2207 -0
  319. package/src/mock-data/mocks/exoplanets.ts +5295 -0
  320. package/src/mock-data/mocks/groupDateValue.ts +22 -0
  321. package/src/mock-data/mocks/lesMiserables.ts +355 -0
  322. package/src/mock-data/mocks/letterFrequency.ts +35 -0
  323. package/src/mock-data/mocks/planets.ts +55 -0
  324. package/src/mock-data/mocks/shakespeare.ts +1870 -0
  325. package/src/network/DefaultLink.tsrx +16 -0
  326. package/src/network/DefaultLink.tsrx.d.ts +3 -0
  327. package/src/network/DefaultNode.tsrx +16 -0
  328. package/src/network/DefaultNode.tsrx.d.ts +9 -0
  329. package/src/network/Graph.tsrx +43 -0
  330. package/src/network/Graph.tsrx.d.ts +16 -0
  331. package/src/network/Links.tsrx +27 -0
  332. package/src/network/Links.tsrx.d.ts +12 -0
  333. package/src/network/Nodes.tsrx +41 -0
  334. package/src/network/Nodes.tsrx.d.ts +17 -0
  335. package/src/network/index.ts +11 -0
  336. package/src/network/types.ts +22 -0
  337. package/src/pattern/constants/index.ts +8 -0
  338. package/src/pattern/index.ts +16 -0
  339. package/src/pattern/patterns/Circles.tsrx +78 -0
  340. package/src/pattern/patterns/Circles.tsrx.d.ts +26 -0
  341. package/src/pattern/patterns/Hexagons.tsrx +63 -0
  342. package/src/pattern/patterns/Hexagons.tsrx.d.ts +26 -0
  343. package/src/pattern/patterns/Lines.tsrx +95 -0
  344. package/src/pattern/patterns/Lines.tsrx.d.ts +31 -0
  345. package/src/pattern/patterns/Path.tsrx +58 -0
  346. package/src/pattern/patterns/Path.tsrx.d.ts +28 -0
  347. package/src/pattern/patterns/Pattern.tsrx +25 -0
  348. package/src/pattern/patterns/Pattern.tsrx.d.ts +13 -0
  349. package/src/pattern/patterns/Waves.tsrx +69 -0
  350. package/src/pattern/patterns/Waves.tsrx.d.ts +26 -0
  351. package/src/point/Point.ts +20 -0
  352. package/src/point/index.ts +4 -0
  353. package/src/point/subtractPoints.ts +8 -0
  354. package/src/point/sumPoints.ts +8 -0
  355. package/src/react-spring/axis/AnimatedAxis.tsrx +28 -0
  356. package/src/react-spring/axis/AnimatedAxis.tsrx.d.ts +7 -0
  357. package/src/react-spring/axis/AnimatedTicks.tsrx +85 -0
  358. package/src/react-spring/axis/AnimatedTicks.tsrx.d.ts +6 -0
  359. package/src/react-spring/grid/AnimatedGridColumns.tsrx +38 -0
  360. package/src/react-spring/grid/AnimatedGridColumns.tsrx.d.ts +6 -0
  361. package/src/react-spring/grid/AnimatedGridLines.tsrx +47 -0
  362. package/src/react-spring/grid/AnimatedGridLines.tsrx.d.ts +10 -0
  363. package/src/react-spring/grid/AnimatedGridRows.tsrx +38 -0
  364. package/src/react-spring/grid/AnimatedGridRows.tsrx.d.ts +6 -0
  365. package/src/react-spring/index.ts +7 -0
  366. package/src/react-spring/spring-configs/useLineTransitionConfig.tsrx +102 -0
  367. package/src/react-spring/spring-configs/useLineTransitionConfig.tsrx.d.ts +50 -0
  368. package/src/react-spring/types/index.ts +1 -0
  369. package/src/responsive/components/ParentSize.tsrx +66 -0
  370. package/src/responsive/components/ParentSize.tsrx.d.ts +21 -0
  371. package/src/responsive/components/ScaleSVG.tsrx +44 -0
  372. package/src/responsive/components/ScaleSVG.tsrx.d.ts +19 -0
  373. package/src/responsive/enhancers/withParentSize.tsrx +101 -0
  374. package/src/responsive/enhancers/withParentSize.tsrx.d.ts +17 -0
  375. package/src/responsive/enhancers/withScreenSize.tsrx +64 -0
  376. package/src/responsive/enhancers/withScreenSize.tsrx.d.ts +17 -0
  377. package/src/responsive/hooks/useParentSize.tsrx +103 -0
  378. package/src/responsive/hooks/useParentSize.tsrx.d.ts +25 -0
  379. package/src/responsive/hooks/useScreenSize.tsrx +53 -0
  380. package/src/responsive/hooks/useScreenSize.tsrx.d.ts +12 -0
  381. package/src/responsive/index.ts +21 -0
  382. package/src/responsive/types/index.ts +36 -0
  383. package/src/responsive/utils/debounce.ts +59 -0
  384. package/src/sankey/Sankey.tsrx +157 -0
  385. package/src/sankey/Sankey.tsrx.d.ts +54 -0
  386. package/src/sankey/index.ts +20 -0
  387. package/src/sankey/types.ts +10 -0
  388. package/src/scale/createScale.ts +176 -0
  389. package/src/scale/index.ts +31 -0
  390. package/src/scale/operators/align.ts +16 -0
  391. package/src/scale/operators/base.ts +16 -0
  392. package/src/scale/operators/clamp.ts +16 -0
  393. package/src/scale/operators/constant.ts +16 -0
  394. package/src/scale/operators/domain.ts +25 -0
  395. package/src/scale/operators/exponent.ts +16 -0
  396. package/src/scale/operators/interpolate.ts +23 -0
  397. package/src/scale/operators/nice.ts +81 -0
  398. package/src/scale/operators/padding.ts +30 -0
  399. package/src/scale/operators/range.ts +22 -0
  400. package/src/scale/operators/reverse.ts +23 -0
  401. package/src/scale/operators/round.ts +32 -0
  402. package/src/scale/operators/scaleOperator.ts +86 -0
  403. package/src/scale/operators/unknown.ts +16 -0
  404. package/src/scale/operators/zero.ts +21 -0
  405. package/src/scale/react/index.ts +3 -0
  406. package/src/scale/react/useScale.tsrx +48 -0
  407. package/src/scale/react/useScale.tsrx.d.ts +20 -0
  408. package/src/scale/scales/band.ts +19 -0
  409. package/src/scale/scales/linear.ts +21 -0
  410. package/src/scale/scales/log.ts +21 -0
  411. package/src/scale/scales/ordinal.ts +13 -0
  412. package/src/scale/scales/point.ts +19 -0
  413. package/src/scale/scales/power.ts +22 -0
  414. package/src/scale/scales/quantile.ts +12 -0
  415. package/src/scale/scales/quantize.ts +18 -0
  416. package/src/scale/scales/radial.ts +19 -0
  417. package/src/scale/scales/squareRoot.ts +21 -0
  418. package/src/scale/scales/symlog.ts +21 -0
  419. package/src/scale/scales/threshold.ts +14 -0
  420. package/src/scale/scales/time.ts +20 -0
  421. package/src/scale/scales/utc.ts +20 -0
  422. package/src/scale/types/Base.ts +14 -0
  423. package/src/scale/types/BaseScaleConfig.ts +123 -0
  424. package/src/scale/types/Nice.ts +1 -0
  425. package/src/scale/types/Scale.ts +96 -0
  426. package/src/scale/types/ScaleConfig.ts +210 -0
  427. package/src/scale/types/ScaleInterpolate.ts +14 -0
  428. package/src/scale/updateScale.ts +163 -0
  429. package/src/scale/utils/coerceNumber.ts +10 -0
  430. package/src/scale/utils/createColorInterpolator.ts +43 -0
  431. package/src/scale/utils/getTicks.ts +25 -0
  432. package/src/scale/utils/inferScaleType.ts +60 -0
  433. package/src/scale/utils/isUtcScale.ts +16 -0
  434. package/src/scale/utils/scaleCanBeZeroed.ts +25 -0
  435. package/src/scale/utils/toString.ts +5 -0
  436. package/src/shape/index.ts +96 -0
  437. package/src/shape/react/index.ts +5 -0
  438. package/src/shape/react/usePie.tsrx +60 -0
  439. package/src/shape/react/usePie.tsrx.d.ts +20 -0
  440. package/src/shape/shapes/Arc.tsrx +60 -0
  441. package/src/shape/shapes/Arc.tsrx.d.ts +17 -0
  442. package/src/shape/shapes/Area.tsrx +32 -0
  443. package/src/shape/shapes/Area.tsrx.d.ts +4 -0
  444. package/src/shape/shapes/AreaClosed.tsrx +47 -0
  445. package/src/shape/shapes/AreaClosed.tsrx.d.ts +6 -0
  446. package/src/shape/shapes/AreaStack.tsrx +78 -0
  447. package/src/shape/shapes/AreaStack.tsrx.d.ts +7 -0
  448. package/src/shape/shapes/Bar.tsrx +18 -0
  449. package/src/shape/shapes/Bar.tsrx.d.ts +10 -0
  450. package/src/shape/shapes/BarGroup.tsrx +131 -0
  451. package/src/shape/shapes/BarGroup.tsrx.d.ts +57 -0
  452. package/src/shape/shapes/BarGroupHorizontal.tsrx +100 -0
  453. package/src/shape/shapes/BarGroupHorizontal.tsrx.d.ts +21 -0
  454. package/src/shape/shapes/BarRounded.tsrx +153 -0
  455. package/src/shape/shapes/BarRounded.tsrx.d.ts +44 -0
  456. package/src/shape/shapes/BarStack.tsrx +103 -0
  457. package/src/shape/shapes/BarStack.tsrx.d.ts +13 -0
  458. package/src/shape/shapes/BarStackHorizontal.tsrx +99 -0
  459. package/src/shape/shapes/BarStackHorizontal.tsrx.d.ts +13 -0
  460. package/src/shape/shapes/Circle.tsrx +18 -0
  461. package/src/shape/shapes/Circle.tsrx.d.ts +10 -0
  462. package/src/shape/shapes/Line.tsrx +43 -0
  463. package/src/shape/shapes/Line.tsrx.d.ts +21 -0
  464. package/src/shape/shapes/LinePath.tsrx +44 -0
  465. package/src/shape/shapes/LinePath.tsrx.d.ts +19 -0
  466. package/src/shape/shapes/LineRadial.tsrx +42 -0
  467. package/src/shape/shapes/LineRadial.tsrx.d.ts +12 -0
  468. package/src/shape/shapes/Pie.tsrx +87 -0
  469. package/src/shape/shapes/Pie.tsrx.d.ts +30 -0
  470. package/src/shape/shapes/Polygon.tsrx +85 -0
  471. package/src/shape/shapes/Polygon.tsrx.d.ts +37 -0
  472. package/src/shape/shapes/SplitLinePath.tsrx +86 -0
  473. package/src/shape/shapes/SplitLinePath.tsrx.d.ts +23 -0
  474. package/src/shape/shapes/Stack.tsrx +83 -0
  475. package/src/shape/shapes/Stack.tsrx.d.ts +25 -0
  476. package/src/shape/shapes/link/curve/LinkHorizontalCurve.tsrx +63 -0
  477. package/src/shape/shapes/link/curve/LinkHorizontalCurve.tsrx.d.ts +11 -0
  478. package/src/shape/shapes/link/curve/LinkRadialCurve.tsrx +72 -0
  479. package/src/shape/shapes/link/curve/LinkRadialCurve.tsrx.d.ts +9 -0
  480. package/src/shape/shapes/link/curve/LinkVerticalCurve.tsrx +62 -0
  481. package/src/shape/shapes/link/curve/LinkVerticalCurve.tsrx.d.ts +9 -0
  482. package/src/shape/shapes/link/diagonal/LinkHorizontal.tsrx +47 -0
  483. package/src/shape/shapes/link/diagonal/LinkHorizontal.tsrx.d.ts +7 -0
  484. package/src/shape/shapes/link/diagonal/LinkRadial.tsrx +49 -0
  485. package/src/shape/shapes/link/diagonal/LinkRadial.tsrx.d.ts +9 -0
  486. package/src/shape/shapes/link/diagonal/LinkVertical.tsrx +46 -0
  487. package/src/shape/shapes/link/diagonal/LinkVertical.tsrx.d.ts +6 -0
  488. package/src/shape/shapes/link/line/LinkHorizontalLine.tsrx +53 -0
  489. package/src/shape/shapes/link/line/LinkHorizontalLine.tsrx.d.ts +7 -0
  490. package/src/shape/shapes/link/line/LinkRadialLine.tsrx +58 -0
  491. package/src/shape/shapes/link/line/LinkRadialLine.tsrx.d.ts +5 -0
  492. package/src/shape/shapes/link/line/LinkVerticalLine.tsrx +53 -0
  493. package/src/shape/shapes/link/line/LinkVerticalLine.tsrx.d.ts +5 -0
  494. package/src/shape/shapes/link/step/LinkHorizontalStep.tsrx +59 -0
  495. package/src/shape/shapes/link/step/LinkHorizontalStep.tsrx.d.ts +12 -0
  496. package/src/shape/shapes/link/step/LinkRadialStep.tsrx +68 -0
  497. package/src/shape/shapes/link/step/LinkRadialStep.tsrx.d.ts +8 -0
  498. package/src/shape/shapes/link/step/LinkVerticalStep.tsrx +59 -0
  499. package/src/shape/shapes/link/step/LinkVerticalStep.tsrx.d.ts +10 -0
  500. package/src/shape/types/D3ShapeConfig.ts +91 -0
  501. package/src/shape/types/accessor.ts +9 -0
  502. package/src/shape/types/area.ts +14 -0
  503. package/src/shape/types/barGroup.ts +57 -0
  504. package/src/shape/types/barStack.ts +55 -0
  505. package/src/shape/types/base.ts +23 -0
  506. package/src/shape/types/index.ts +8 -0
  507. package/src/shape/types/link.ts +37 -0
  508. package/src/shape/types/stack.ts +15 -0
  509. package/src/shape/util/D3ShapeFactories.ts +125 -0
  510. package/src/shape/util/accessors.ts +25 -0
  511. package/src/shape/util/getBandwidth.ts +11 -0
  512. package/src/shape/util/getOrCreateMeasurementElement.ts +28 -0
  513. package/src/shape/util/getSplitLineSegments.ts +100 -0
  514. package/src/shape/util/setNumberOrNumberAccessor.ts +11 -0
  515. package/src/shape/util/stackOffset.ts +23 -0
  516. package/src/shape/util/stackOrder.ts +23 -0
  517. package/src/shape/util/trigonometry.ts +1 -0
  518. package/src/stats/BoxPlot.tsrx +257 -0
  519. package/src/stats/BoxPlot.tsrx.d.ts +51 -0
  520. package/src/stats/ViolinPlot.tsrx +78 -0
  521. package/src/stats/ViolinPlot.tsrx.d.ts +21 -0
  522. package/src/stats/index.ts +8 -0
  523. package/src/stats/types.ts +56 -0
  524. package/src/stats/util/computeStats.ts +71 -0
  525. package/src/text/Text.tsrx +43 -0
  526. package/src/text/Text.tsrx.d.ts +4 -0
  527. package/src/text/hooks/useText.tsrx +125 -0
  528. package/src/text/hooks/useText.tsrx.d.ts +7 -0
  529. package/src/text/index.ts +5 -0
  530. package/src/text/types.ts +54 -0
  531. package/src/text/util/getStringWidth.ts +38 -0
  532. package/src/text/util/memoize.ts +13 -0
  533. package/src/theme/compat/fromXYChartTheme.ts +132 -0
  534. package/src/theme/index.ts +14 -0
  535. package/src/theme/provider/ThemeScope.tsrx +58 -0
  536. package/src/theme/provider/ThemeScope.tsrx.d.ts +23 -0
  537. package/src/theme/provider/defineTheme.ts +67 -0
  538. package/src/theme/react/ThemeContext.tsrx +7 -0
  539. package/src/theme/react/ThemeContext.tsrx.d.ts +4 -0
  540. package/src/theme/react/ThemeProvider.tsrx +14 -0
  541. package/src/theme/react/ThemeProvider.tsrx.d.ts +4 -0
  542. package/src/theme/react/categoricalColor.ts +32 -0
  543. package/src/theme/react/index.ts +29 -0
  544. package/src/theme/react/useAxisStyle.tsrx +100 -0
  545. package/src/theme/react/useAxisStyle.tsrx.d.ts +23 -0
  546. package/src/theme/react/useCategoricalScale.tsrx +23 -0
  547. package/src/theme/react/useCategoricalScale.tsrx.d.ts +3 -0
  548. package/src/theme/react/useChartConfig.tsrx +108 -0
  549. package/src/theme/react/useChartConfig.tsrx.d.ts +15 -0
  550. package/src/theme/react/useColor.tsrx +18 -0
  551. package/src/theme/react/useColor.tsrx.d.ts +4 -0
  552. package/src/theme/react/useColorScale.tsrx +39 -0
  553. package/src/theme/react/useColorScale.tsrx.d.ts +7 -0
  554. package/src/theme/react/useGridStyle.tsrx +15 -0
  555. package/src/theme/react/useGridStyle.tsrx.d.ts +6 -0
  556. package/src/theme/react/useTheme.tsrx +7 -0
  557. package/src/theme/react/useTheme.tsrx.d.ts +3 -0
  558. package/src/theme/react/warn.ts +3 -0
  559. package/src/theme/runtime/createRuntimeTheme.ts +70 -0
  560. package/src/theme/runtime/resolveThemeInput.ts +19 -0
  561. package/src/theme/tokens/categorical.ts +18 -0
  562. package/src/theme/tokens/cssVar.ts +5 -0
  563. package/src/theme/tokens/dark.ts +51 -0
  564. package/src/theme/tokens/light.ts +62 -0
  565. package/src/theme/tokens/names.ts +49 -0
  566. package/src/theme/tokens/style.ts +45 -0
  567. package/src/theme/tokens/types.ts +118 -0
  568. package/src/theme/utils/warn.ts +5 -0
  569. package/src/threshold/Threshold.tsrx +112 -0
  570. package/src/threshold/Threshold.tsrx.d.ts +45 -0
  571. package/src/threshold/index.ts +2 -0
  572. package/src/tooltip/Portal.tsrx +27 -0
  573. package/src/tooltip/Portal.tsrx.d.ts +10 -0
  574. package/src/tooltip/context/TooltipPositionContext.tsrx +16 -0
  575. package/src/tooltip/context/TooltipPositionContext.tsrx.d.ts +11 -0
  576. package/src/tooltip/enhancers/withTooltip.tsrx +29 -0
  577. package/src/tooltip/enhancers/withTooltip.tsrx.d.ts +8 -0
  578. package/src/tooltip/floating/ChartTooltip.tsrx +95 -0
  579. package/src/tooltip/floating/ChartTooltip.tsrx.d.ts +29 -0
  580. package/src/tooltip/floating/ChartTooltipContent.tsrx +219 -0
  581. package/src/tooltip/floating/ChartTooltipContent.tsrx.d.ts +57 -0
  582. package/src/tooltip/floating/FloatingTooltip.tsrx +269 -0
  583. package/src/tooltip/floating/FloatingTooltip.tsrx.d.ts +20 -0
  584. package/src/tooltip/floating/anchors.ts +146 -0
  585. package/src/tooltip/floating/context.tsrx +29 -0
  586. package/src/tooltip/floating/context.tsrx.d.ts +9 -0
  587. package/src/tooltip/floating/index.ts +61 -0
  588. package/src/tooltip/floating/internalTypes.ts +125 -0
  589. package/src/tooltip/floating/middleware.ts +104 -0
  590. package/src/tooltip/floating/types.ts +198 -0
  591. package/src/tooltip/floating/useChartTooltip.tsrx +180 -0
  592. package/src/tooltip/floating/useChartTooltip.tsrx.d.ts +40 -0
  593. package/src/tooltip/floating/useFloatingTooltip.tsrx +301 -0
  594. package/src/tooltip/floating/useFloatingTooltip.tsrx.d.ts +3 -0
  595. package/src/tooltip/hooks/useTooltip.tsrx +67 -0
  596. package/src/tooltip/hooks/useTooltip.tsrx.d.ts +25 -0
  597. package/src/tooltip/hooks/useTooltipInPortal.tsrx +92 -0
  598. package/src/tooltip/hooks/useTooltipInPortal.tsrx.d.ts +34 -0
  599. package/src/tooltip/index.ts +20 -0
  600. package/src/tooltip/tooltips/Tooltip.tsrx +71 -0
  601. package/src/tooltip/tooltips/Tooltip.tsrx.d.ts +39 -0
  602. package/src/tooltip/tooltips/TooltipWithBounds.tsrx +82 -0
  603. package/src/tooltip/tooltips/TooltipWithBounds.tsrx.d.ts +9 -0
  604. package/src/voronoi/components/VoronoiPolygon.tsrx +32 -0
  605. package/src/voronoi/components/VoronoiPolygon.tsrx.d.ts +14 -0
  606. package/src/voronoi/index.ts +6 -0
  607. package/src/voronoi/react/index.ts +5 -0
  608. package/src/voronoi/react/useVoronoi.tsrx +30 -0
  609. package/src/voronoi/react/useVoronoi.tsrx.d.ts +10 -0
  610. package/src/voronoi/voronoi.ts +32 -0
  611. package/src/wordcloud/Wordcloud.tsrx +20 -0
  612. package/src/wordcloud/Wordcloud.tsrx.d.ts +7 -0
  613. package/src/wordcloud/d3-cloud.d.ts +1 -0
  614. package/src/wordcloud/index.ts +3 -0
  615. package/src/wordcloud/types.ts +154 -0
  616. package/src/wordcloud/useWordcloud.tsrx +277 -0
  617. package/src/wordcloud/useWordcloud.tsrx.d.ts +16 -0
  618. package/src/xychart/classes/DataRegistry.ts +53 -0
  619. package/src/xychart/components/Tooltip.tsrx +356 -0
  620. package/src/xychart/components/Tooltip.tsrx.d.ts +57 -0
  621. package/src/xychart/components/XYChart.tsrx +196 -0
  622. package/src/xychart/components/XYChart.tsrx.d.ts +47 -0
  623. package/src/xychart/components/annotation/AnimatedAnnotation.tsrx +72 -0
  624. package/src/xychart/components/annotation/AnimatedAnnotation.tsrx.d.ts +7 -0
  625. package/src/xychart/components/annotation/Annotation.tsrx +20 -0
  626. package/src/xychart/components/annotation/Annotation.tsrx.d.ts +7 -0
  627. package/src/xychart/components/annotation/AnnotationCircleSubject.tsrx +12 -0
  628. package/src/xychart/components/annotation/AnnotationCircleSubject.tsrx.d.ts +5 -0
  629. package/src/xychart/components/annotation/AnnotationConnector.tsrx +12 -0
  630. package/src/xychart/components/annotation/AnnotationConnector.tsrx.d.ts +5 -0
  631. package/src/xychart/components/annotation/AnnotationLabel.tsrx +29 -0
  632. package/src/xychart/components/annotation/AnnotationLabel.tsrx.d.ts +5 -0
  633. package/src/xychart/components/annotation/AnnotationLineSubject.tsrx +28 -0
  634. package/src/xychart/components/annotation/AnnotationLineSubject.tsrx.d.ts +9 -0
  635. package/src/xychart/components/annotation/private/BaseAnnotation.tsrx +86 -0
  636. package/src/xychart/components/annotation/private/BaseAnnotation.tsrx.d.ts +18 -0
  637. package/src/xychart/components/axis/AnimatedAxis.tsrx +15 -0
  638. package/src/xychart/components/axis/AnimatedAxis.tsrx.d.ts +9 -0
  639. package/src/xychart/components/axis/Axis.tsrx +11 -0
  640. package/src/xychart/components/axis/Axis.tsrx.d.ts +5 -0
  641. package/src/xychart/components/axis/BaseAxis.tsrx +94 -0
  642. package/src/xychart/components/axis/BaseAxis.tsrx.d.ts +15 -0
  643. package/src/xychart/components/grid/AnimatedGrid.tsrx +34 -0
  644. package/src/xychart/components/grid/AnimatedGrid.tsrx.d.ts +8 -0
  645. package/src/xychart/components/grid/BaseGrid.tsrx +49 -0
  646. package/src/xychart/components/grid/BaseGrid.tsrx.d.ts +16 -0
  647. package/src/xychart/components/grid/Grid.tsrx +9 -0
  648. package/src/xychart/components/grid/Grid.tsrx.d.ts +4 -0
  649. package/src/xychart/components/series/AnimatedAreaSeries.tsrx +8 -0
  650. package/src/xychart/components/series/AnimatedAreaSeries.tsrx.d.ts +4 -0
  651. package/src/xychart/components/series/AnimatedAreaStack.tsrx +8 -0
  652. package/src/xychart/components/series/AnimatedAreaStack.tsrx.d.ts +4 -0
  653. package/src/xychart/components/series/AnimatedBarGroup.tsrx +8 -0
  654. package/src/xychart/components/series/AnimatedBarGroup.tsrx.d.ts +4 -0
  655. package/src/xychart/components/series/AnimatedBarSeries.tsrx +15 -0
  656. package/src/xychart/components/series/AnimatedBarSeries.tsrx.d.ts +4 -0
  657. package/src/xychart/components/series/AnimatedBarStack.tsrx +8 -0
  658. package/src/xychart/components/series/AnimatedBarStack.tsrx.d.ts +4 -0
  659. package/src/xychart/components/series/AnimatedGlyphSeries.tsrx +28 -0
  660. package/src/xychart/components/series/AnimatedGlyphSeries.tsrx.d.ts +8 -0
  661. package/src/xychart/components/series/AnimatedLineSeries.tsrx +8 -0
  662. package/src/xychart/components/series/AnimatedLineSeries.tsrx.d.ts +4 -0
  663. package/src/xychart/components/series/AreaSeries.tsrx +7 -0
  664. package/src/xychart/components/series/AreaSeries.tsrx.d.ts +4 -0
  665. package/src/xychart/components/series/AreaStack.tsrx +7 -0
  666. package/src/xychart/components/series/AreaStack.tsrx.d.ts +4 -0
  667. package/src/xychart/components/series/BarGroup.tsrx +8 -0
  668. package/src/xychart/components/series/BarGroup.tsrx.d.ts +4 -0
  669. package/src/xychart/components/series/BarSeries.tsrx +13 -0
  670. package/src/xychart/components/series/BarSeries.tsrx.d.ts +5 -0
  671. package/src/xychart/components/series/BarStack.tsrx +8 -0
  672. package/src/xychart/components/series/BarStack.tsrx.d.ts +4 -0
  673. package/src/xychart/components/series/GlyphSeries.tsrx +38 -0
  674. package/src/xychart/components/series/GlyphSeries.tsrx.d.ts +8 -0
  675. package/src/xychart/components/series/LineSeries.tsrx +7 -0
  676. package/src/xychart/components/series/LineSeries.tsrx.d.ts +4 -0
  677. package/src/xychart/components/series/private/AnimatedBars.tsrx +151 -0
  678. package/src/xychart/components/series/private/AnimatedBars.tsrx.d.ts +5 -0
  679. package/src/xychart/components/series/private/AnimatedGlyphs.tsrx +108 -0
  680. package/src/xychart/components/series/private/AnimatedGlyphs.tsrx.d.ts +40 -0
  681. package/src/xychart/components/series/private/AnimatedPath.tsrx +47 -0
  682. package/src/xychart/components/series/private/AnimatedPath.tsrx.d.ts +4 -0
  683. package/src/xychart/components/series/private/Bars.tsrx +45 -0
  684. package/src/xychart/components/series/private/Bars.tsrx.d.ts +4 -0
  685. package/src/xychart/components/series/private/BaseAreaSeries.tsrx +187 -0
  686. package/src/xychart/components/series/private/BaseAreaSeries.tsrx.d.ts +20 -0
  687. package/src/xychart/components/series/private/BaseAreaStack.tsrx +259 -0
  688. package/src/xychart/components/series/private/BaseAreaStack.tsrx.d.ts +19 -0
  689. package/src/xychart/components/series/private/BaseBarGroup.tsrx +198 -0
  690. package/src/xychart/components/series/private/BaseBarGroup.tsrx.d.ts +15 -0
  691. package/src/xychart/components/series/private/BaseBarSeries.tsrx +154 -0
  692. package/src/xychart/components/series/private/BaseBarSeries.tsrx.d.ts +16 -0
  693. package/src/xychart/components/series/private/BaseBarStack.tsrx +192 -0
  694. package/src/xychart/components/series/private/BaseBarStack.tsrx.d.ts +14 -0
  695. package/src/xychart/components/series/private/BaseGlyphSeries.tsrx +107 -0
  696. package/src/xychart/components/series/private/BaseGlyphSeries.tsrx.d.ts +14 -0
  697. package/src/xychart/components/series/private/BaseLineSeries.tsrx +135 -0
  698. package/src/xychart/components/series/private/BaseLineSeries.tsrx.d.ts +14 -0
  699. package/src/xychart/components/series/private/defaultRenderGlyph.tsrx +29 -0
  700. package/src/xychart/components/series/private/defaultRenderGlyph.tsrx.d.ts +3 -0
  701. package/src/xychart/constants.ts +9 -0
  702. package/src/xychart/context/DataContext.tsrx +23 -0
  703. package/src/xychart/context/DataContext.tsrx.d.ts +11 -0
  704. package/src/xychart/context/EventEmitterContext.tsrx +6 -0
  705. package/src/xychart/context/EventEmitterContext.tsrx.d.ts +3 -0
  706. package/src/xychart/context/ThemeContext.tsrx +7 -0
  707. package/src/xychart/context/ThemeContext.tsrx.d.ts +4 -0
  708. package/src/xychart/context/TooltipContext.tsrx +7 -0
  709. package/src/xychart/context/TooltipContext.tsrx.d.ts +3 -0
  710. package/src/xychart/hooks/useDataRegistry.tsrx +41 -0
  711. package/src/xychart/hooks/useDataRegistry.tsrx.d.ts +5 -0
  712. package/src/xychart/hooks/useDimensions.tsrx +40 -0
  713. package/src/xychart/hooks/useDimensions.tsrx.d.ts +15 -0
  714. package/src/xychart/hooks/useEventEmitter.tsrx +62 -0
  715. package/src/xychart/hooks/useEventEmitter.tsrx.d.ts +24 -0
  716. package/src/xychart/hooks/useEventEmitters.tsrx +64 -0
  717. package/src/xychart/hooks/useEventEmitters.tsrx.d.ts +25 -0
  718. package/src/xychart/hooks/useEventHandlers.tsrx +162 -0
  719. package/src/xychart/hooks/useEventHandlers.tsrx.d.ts +31 -0
  720. package/src/xychart/hooks/useScales.tsrx +113 -0
  721. package/src/xychart/hooks/useScales.tsrx.d.ts +15 -0
  722. package/src/xychart/hooks/useSeriesEvents.tsrx +82 -0
  723. package/src/xychart/hooks/useSeriesEvents.tsrx.d.ts +18 -0
  724. package/src/xychart/hooks/useStackedData.tsrx +96 -0
  725. package/src/xychart/hooks/useStackedData.tsrx.d.ts +14 -0
  726. package/src/xychart/index.ts +56 -0
  727. package/src/xychart/providers/DataProvider.tsrx +141 -0
  728. package/src/xychart/providers/DataProvider.tsrx.d.ts +22 -0
  729. package/src/xychart/providers/EventEmitterProvider.tsrx +10 -0
  730. package/src/xychart/providers/EventEmitterProvider.tsrx.d.ts +6 -0
  731. package/src/xychart/providers/ThemeProvider.tsrx +13 -0
  732. package/src/xychart/providers/ThemeProvider.tsrx.d.ts +8 -0
  733. package/src/xychart/providers/TooltipProvider.tsrx +101 -0
  734. package/src/xychart/providers/TooltipProvider.tsrx.d.ts +10 -0
  735. package/src/xychart/theme/buildChartTheme.ts +178 -0
  736. package/src/xychart/theme/colors.ts +174 -0
  737. package/src/xychart/theme/themes/dark.ts +24 -0
  738. package/src/xychart/theme/themes/light.ts +16 -0
  739. package/src/xychart/typeguards/events.ts +12 -0
  740. package/src/xychart/typeguards/isValidNumber.ts +3 -0
  741. package/src/xychart/types/axis.ts +3 -0
  742. package/src/xychart/types/data.ts +57 -0
  743. package/src/xychart/types/event.ts +30 -0
  744. package/src/xychart/types/index.ts +6 -0
  745. package/src/xychart/types/series.ts +219 -0
  746. package/src/xychart/types/theme.ts +50 -0
  747. package/src/xychart/types/tooltip.ts +24 -0
  748. package/src/xychart/utils/cleanColorString.ts +4 -0
  749. package/src/xychart/utils/collectDataRegistryEntries.ts +50 -0
  750. package/src/xychart/utils/combineBarStackData.ts +51 -0
  751. package/src/xychart/utils/findNearestDatumSingleDimension.ts +64 -0
  752. package/src/xychart/utils/findNearestDatumX.ts +34 -0
  753. package/src/xychart/utils/findNearestDatumXY.ts +42 -0
  754. package/src/xychart/utils/findNearestDatumY.ts +34 -0
  755. package/src/xychart/utils/findNearestGroupDatum.ts +50 -0
  756. package/src/xychart/utils/findNearestStackDatum.ts +44 -0
  757. package/src/xychart/utils/getBarStackRegistryData.ts +49 -0
  758. package/src/xychart/utils/getChildrenAndGrandchildrenWithProps.ts +24 -0
  759. package/src/xychart/utils/getScaleBandwidth.ts +7 -0
  760. package/src/xychart/utils/getScaleBaseline.ts +24 -0
  761. package/src/xychart/utils/getScaledValueFactory.ts +21 -0
  762. package/src/xychart/utils/isDiscreteScale.ts +9 -0
  763. package/src/zoom/Zoom.tsrx +375 -0
  764. package/src/zoom/Zoom.tsrx.d.ts +62 -0
  765. package/src/zoom/index.ts +16 -0
  766. package/src/zoom/types.ts +120 -0
  767. package/src/zoom/util/matrix.ts +104 -0
@@ -0,0 +1,99 @@
1
+ import cx from 'classnames';
2
+ import type { SeriesPoint } from 'd3-shape';
3
+ import { stack as d3stack } from 'd3-shape';
4
+ import { Group } from '@octanejs/visx/group';
5
+ import type { ScaleInput } from '@octanejs/visx/scale';
6
+ import type { AddSVGProps, PositionScale, BaseBarStackProps, StackKey, Accessor } from '../types';
7
+ import { getFirstItem, getSecondItem } from '../util/accessors';
8
+ import getBandwidth from '../util/getBandwidth';
9
+ import setNumOrAccessor from '../util/setNumberOrNumberAccessor';
10
+ import stackOrder from '../util/stackOrder';
11
+ import stackOffset from '../util/stackOffset';
12
+ import Bar from './Bar.tsrx';
13
+
14
+ export type BarStackHorizontalProps<Datum, Key extends StackKey = StackKey, XScale extends PositionScale = PositionScale, YScale extends PositionScale = PositionScale> =
15
+ BaseBarStackProps<Datum, Key, XScale, YScale> & {
16
+ /** Returns the value mapped to the x0 of a bar. */
17
+ x0?: Accessor<SeriesPoint<Datum>, ScaleInput<XScale>>;
18
+ /** Returns the value mapped to the x1 of a bar. */
19
+ x1?: Accessor<SeriesPoint<Datum>, ScaleInput<XScale>>;
20
+ /** Returns the value mapped to the y of a bar. */
21
+ y: Accessor<Datum, ScaleInput<YScale>>;
22
+ };
23
+
24
+ export default function BarStackHorizontal<Datum, Key extends StackKey = StackKey, XScale extends PositionScale = PositionScale, YScale extends PositionScale = PositionScale>({
25
+ data,
26
+ className,
27
+ top,
28
+ left,
29
+ y,
30
+ x0 = getFirstItem,
31
+ x1 = getSecondItem,
32
+ xScale,
33
+ yScale,
34
+ color,
35
+ keys,
36
+ value,
37
+ order,
38
+ offset,
39
+ children,
40
+ ...restProps
41
+ }: AddSVGProps<BarStackHorizontalProps<Datum, Key, XScale, YScale>, SVGRectElement>) {
42
+ const stack = d3stack<Datum, Key>();
43
+ if (keys) stack.keys(keys);
44
+ if (value) setNumOrAccessor(stack.value, value);
45
+ if (order) stack.order(stackOrder(order));
46
+ if (offset) stack.offset(stackOffset(offset));
47
+
48
+ const stacks = stack(data);
49
+ const barHeight = getBandwidth(yScale);
50
+
51
+ const barStacks = stacks.map((barStack, i) => {
52
+ const { key } = barStack;
53
+ return {
54
+ index: i,
55
+ key,
56
+ bars: barStack.map((bar, j) => {
57
+ const barWidth = (xScale(x1(bar)) || 0) - (xScale(x0(bar)) || 0);
58
+ const barX = xScale(x0(bar));
59
+ const barY =
60
+ 'bandwidth' in yScale
61
+ ? yScale(y(bar.data))
62
+ : Math.max((yScale(y(bar.data)) || 0) - barWidth / 2);
63
+ return {
64
+ bar,
65
+ key,
66
+ index: j,
67
+ height: barHeight,
68
+ width: barWidth,
69
+ x: barX || 0,
70
+ y: barY || 0,
71
+ color: color(barStack.key, j),
72
+ };
73
+ }),
74
+ };
75
+ });
76
+
77
+ if (children) return <>
78
+ {children(barStacks)}
79
+ </>;
80
+
81
+ return <Group
82
+ className={cx('visx-bar-stack-horizontal', className)}
83
+ top={top}
84
+ left={left}
85
+ >{barStacks.map(
86
+ (barStack) => barStack.bars.map(
87
+ (bar) =>
88
+ <Bar
89
+ key={`bar-stack-${barStack.index}-${bar.index}`}
90
+ x={bar.x}
91
+ y={bar.y}
92
+ height={bar.height}
93
+ width={bar.width}
94
+ fill={bar.color}
95
+ {...restProps}
96
+ />,
97
+ ),
98
+ )}</Group>;
99
+ }
@@ -0,0 +1,13 @@
1
+ // Generated by scripts/generate-tsrx-types.mjs.
2
+ import type { SeriesPoint } from 'd3-shape';
3
+ import type { ScaleInput } from '@octanejs/visx/scale';
4
+ import type { AddSVGProps, PositionScale, BaseBarStackProps, StackKey, Accessor } from '../types';
5
+ export type BarStackHorizontalProps<Datum, Key extends StackKey = StackKey, XScale extends PositionScale = PositionScale, YScale extends PositionScale = PositionScale> = BaseBarStackProps<Datum, Key, XScale, YScale> & {
6
+ /** Returns the value mapped to the x0 of a bar. */
7
+ x0?: Accessor<SeriesPoint<Datum>, ScaleInput<XScale>>;
8
+ /** Returns the value mapped to the x1 of a bar. */
9
+ x1?: Accessor<SeriesPoint<Datum>, ScaleInput<XScale>>;
10
+ /** Returns the value mapped to the y of a bar. */
11
+ y: Accessor<Datum, ScaleInput<YScale>>;
12
+ };
13
+ export default function BarStackHorizontal<Datum, Key extends StackKey = StackKey, XScale extends PositionScale = PositionScale, YScale extends PositionScale = PositionScale>({ data, className, top, left, y, x0, x1, xScale, yScale, color, keys, value, order, offset, children, ...restProps }: AddSVGProps<BarStackHorizontalProps<Datum, Key, XScale, YScale>, SVGRectElement>): import("react").JSX.Element;
@@ -0,0 +1,18 @@
1
+ import type { Ref } from 'react';
2
+ import cx from 'classnames';
3
+ import type { AddSVGProps } from '../types';
4
+
5
+ export type CircleProps = {
6
+ /** className to apply to circle element. */
7
+ className?: string;
8
+ /** reference to circle element. */
9
+ innerRef?: Ref<SVGCircleElement>;
10
+ };
11
+
12
+ export default function Circle({
13
+ className,
14
+ innerRef,
15
+ ...restProps
16
+ }: AddSVGProps<CircleProps, SVGCircleElement>) {
17
+ return <circle ref={innerRef} className={cx('visx-circle', className)} {...restProps} />;
18
+ }
@@ -0,0 +1,10 @@
1
+ // Generated by scripts/generate-tsrx-types.mjs.
2
+ import type { Ref } from 'react';
3
+ import type { AddSVGProps } from '../types';
4
+ export type CircleProps = {
5
+ /** className to apply to circle element. */
6
+ className?: string;
7
+ /** reference to circle element. */
8
+ innerRef?: Ref<SVGCircleElement>;
9
+ };
10
+ export default function Circle({ className, innerRef, ...restProps }: AddSVGProps<CircleProps, SVGCircleElement>): import("react").JSX.Element;
@@ -0,0 +1,43 @@
1
+ import type { Ref } from 'react';
2
+ import cx from 'classnames';
3
+ import type { AddSVGProps } from '../types';
4
+
5
+ interface Point {
6
+ x?: number;
7
+ y?: number;
8
+ }
9
+
10
+ export type LineProps = {
11
+ /** className to apply to line element. */
12
+ className?: string;
13
+ /** reference to line element. */
14
+ innerRef?: Ref<SVGLineElement>;
15
+ /** fill color applied to line element. */
16
+ fill?: string;
17
+ /** Starting x,y point of the line. */
18
+ from?: Point;
19
+ /** Ending x,y point of the line. */
20
+ to?: Point;
21
+ };
22
+
23
+ export default function Line({
24
+ from = { x: 0, y: 0 },
25
+ to = { x: 1, y: 1 },
26
+ fill = 'transparent',
27
+ className,
28
+ innerRef,
29
+ ...restProps
30
+ }: AddSVGProps<LineProps, SVGLineElement>) {
31
+ const isRectilinear = from.x === to.x || from.y === to.y;
32
+ return <line
33
+ ref={innerRef}
34
+ className={cx('visx-line', className)}
35
+ x1={from.x}
36
+ y1={from.y}
37
+ x2={to.x}
38
+ y2={to.y}
39
+ fill={fill}
40
+ shapeRendering={isRectilinear ? 'crispEdges' : 'auto'}
41
+ {...restProps}
42
+ />;
43
+ }
@@ -0,0 +1,21 @@
1
+ // Generated by scripts/generate-tsrx-types.mjs.
2
+ import type { Ref } from 'react';
3
+ import type { AddSVGProps } from '../types';
4
+ interface Point {
5
+ x?: number;
6
+ y?: number;
7
+ }
8
+ export type LineProps = {
9
+ /** className to apply to line element. */
10
+ className?: string;
11
+ /** reference to line element. */
12
+ innerRef?: Ref<SVGLineElement>;
13
+ /** fill color applied to line element. */
14
+ fill?: string;
15
+ /** Starting x,y point of the line. */
16
+ from?: Point;
17
+ /** Ending x,y point of the line. */
18
+ to?: Point;
19
+ };
20
+ export default function Line({ from, to, fill, className, innerRef, ...restProps }: AddSVGProps<LineProps, SVGLineElement>): import("react").JSX.Element;
21
+ export {};
@@ -0,0 +1,44 @@
1
+ import type { Ref, ReactNode } from 'react';
2
+ import cx from 'classnames';
3
+ import type { Line as LineType } from 'd3-shape';
4
+ import type { AddSVGProps, LinePathConfig } from '../types';
5
+ import { line } from '../util/D3ShapeFactories';
6
+
7
+ export type LinePathProps<Datum> = {
8
+ /** Array of data for which to generate a line shape. */
9
+ data?: Datum[];
10
+ /** React RefObject passed to the path element. */
11
+ innerRef?: Ref<SVGPathElement>;
12
+ /** Override render function which is passed the configured path generator as input. */
13
+ children?: (args: { path: LineType<Datum> }) => ReactNode;
14
+ /** Fill color of the path element. */
15
+ fill?: string;
16
+ /** className applied to path element. */
17
+ className?: string;
18
+ } & LinePathConfig<Datum>;
19
+
20
+ export default function LinePath<Datum>({
21
+ children,
22
+ data = [],
23
+ x,
24
+ y,
25
+ fill = 'transparent',
26
+ className,
27
+ curve,
28
+ innerRef,
29
+ defined = () => true,
30
+ ...restProps
31
+ }: AddSVGProps<LinePathProps<Datum>, SVGPathElement>) {
32
+ const path = line<Datum>({ x, y, defined, curve });
33
+ if (children) return <>
34
+ {children({ path })}
35
+ </>;
36
+ return <path
37
+ ref={innerRef}
38
+ className={cx('visx-linepath', className)}
39
+ d={path(data) || ''}
40
+ fill={fill}
41
+ strokeLinecap="round"
42
+ {...restProps}
43
+ />;
44
+ }
@@ -0,0 +1,19 @@
1
+ // Generated by scripts/generate-tsrx-types.mjs.
2
+ import type { Ref, ReactNode } from 'react';
3
+ import type { Line as LineType } from 'd3-shape';
4
+ import type { AddSVGProps, LinePathConfig } from '../types';
5
+ export type LinePathProps<Datum> = {
6
+ /** Array of data for which to generate a line shape. */
7
+ data?: Datum[];
8
+ /** React RefObject passed to the path element. */
9
+ innerRef?: Ref<SVGPathElement>;
10
+ /** Override render function which is passed the configured path generator as input. */
11
+ children?: (args: {
12
+ path: LineType<Datum>;
13
+ }) => ReactNode;
14
+ /** Fill color of the path element. */
15
+ fill?: string;
16
+ /** className applied to path element. */
17
+ className?: string;
18
+ } & LinePathConfig<Datum>;
19
+ export default function LinePath<Datum>({ children, data, x, y, fill, className, curve, innerRef, defined, ...restProps }: AddSVGProps<LinePathProps<Datum>, SVGPathElement>): import("react").JSX.Element;
@@ -0,0 +1,42 @@
1
+ import type { ReactNode } from 'react';
2
+ import cx from 'classnames';
3
+ import type { RadialLine } from 'd3-shape';
4
+ import type { LinePathProps } from './LinePath.tsrx';
5
+ import type { AddSVGProps, RadialLinePathConfig } from '../types';
6
+ import { radialLine } from '../util/D3ShapeFactories';
7
+
8
+ export type LineRadialProps<Datum> =
9
+ Pick<LinePathProps<Datum>, 'className' | 'data' | 'fill' | 'innerRef'> & {
10
+ /** Override render function which is passed the configured path generator as input. */
11
+ children?: (args: { path: RadialLine<Datum> }) => ReactNode;
12
+ } & RadialLinePathConfig<Datum>;
13
+
14
+ export default function LineRadial<Datum>({
15
+ className,
16
+ angle,
17
+ radius,
18
+ defined,
19
+ curve,
20
+ data = [],
21
+ innerRef,
22
+ children,
23
+ fill = 'transparent',
24
+ ...restProps
25
+ }: AddSVGProps<LineRadialProps<Datum>, SVGPathElement>) {
26
+ const path = radialLine<Datum>({
27
+ angle,
28
+ radius,
29
+ defined,
30
+ curve,
31
+ });
32
+ if (children) return <>
33
+ {children({ path })}
34
+ </>;
35
+ return <path
36
+ ref={innerRef}
37
+ className={cx('visx-line-radial', className)}
38
+ d={path(data) || ''}
39
+ fill={fill}
40
+ {...restProps}
41
+ />;
42
+ }
@@ -0,0 +1,12 @@
1
+ // Generated by scripts/generate-tsrx-types.mjs.
2
+ import type { ReactNode } from 'react';
3
+ import type { RadialLine } from 'd3-shape';
4
+ import type { LinePathProps } from './LinePath.tsrx';
5
+ import type { AddSVGProps, RadialLinePathConfig } from '../types';
6
+ export type LineRadialProps<Datum> = Pick<LinePathProps<Datum>, 'className' | 'data' | 'fill' | 'innerRef'> & {
7
+ /** Override render function which is passed the configured path generator as input. */
8
+ children?: (args: {
9
+ path: RadialLine<Datum>;
10
+ }) => ReactNode;
11
+ } & RadialLinePathConfig<Datum>;
12
+ export default function LineRadial<Datum>({ className, angle, radius, defined, curve, data, innerRef, children, fill, ...restProps }: AddSVGProps<LineRadialProps<Datum>, SVGPathElement>): import("react").JSX.Element;
@@ -0,0 +1,87 @@
1
+ import type { ReactNode } from 'react';
2
+ import cx from 'classnames';
3
+ import { Group } from '@octanejs/visx/group';
4
+ import type { AddSVGProps, ArcPathConfig, PiePathConfig } from '../types';
5
+ import usePie from '../react/usePie.tsrx';
6
+ import type { PieArcDatum, UsePieResult } from '../react/usePie.tsrx';
7
+
8
+ export type { PieArcDatum };
9
+
10
+ type StringAccessor<Datum> = (pieArcDatum: PieArcDatum<Datum>) => string;
11
+
12
+ export type ProvidedProps<Datum> = UsePieResult<Datum>;
13
+
14
+ export type PieProps<Datum> = {
15
+ /** className applied to path element. */
16
+ className?: string;
17
+ /** Top offset of rendered Pie. */
18
+ top?: number;
19
+ /** Left offset of rendered Pie. */
20
+ left?: number;
21
+ /** Array of data to generate a Pie for. */
22
+ data?: Datum[];
23
+ /** Optional render function invoked for each Datum to render something (e.g., a Label) at each pie centroid. */
24
+ centroid?: (xyCoords: [number, number], arc: PieArcDatum<Datum>) => ReactNode;
25
+ // These three fields are renamed
26
+ /** Invoked for each datum, returns the value for a given Pie segment/arc datum. */
27
+ pieValue?: PiePathConfig<Datum>['value'];
28
+ /** Comparator function to sort *arcs*, overridden by pieSortValues if defined. If pieSort and pieSortValues are null, arcs match input data order. */
29
+ pieSort?: PiePathConfig<Datum>['sort'];
30
+ /** Comparator function to sort arc *values*, overrides pieSort if defined. If pieSort and pieSortValues are null, arcs match input data order. */
31
+ pieSortValues?: PiePathConfig<Datum>['sortValues'];
32
+ /** Render function override which is passed the configured arc generator as input. */
33
+ children?: (provided: ProvidedProps<Datum>) => ReactNode;
34
+ /** Optional accessor function to return the fill string value of a given arc. */
35
+ fill?: string | StringAccessor<Datum>;
36
+ } & Pick<PiePathConfig<Datum>, 'startAngle' | 'endAngle' | 'padAngle'> & Pick<ArcPathConfig<PieArcDatum<Datum>>, 'innerRadius' | 'outerRadius' | 'cornerRadius' | 'padRadius'>;
37
+
38
+ export default function Pie<Datum>({
39
+ className,
40
+ top,
41
+ left,
42
+ data = [],
43
+ centroid,
44
+ innerRadius = 0,
45
+ outerRadius,
46
+ cornerRadius,
47
+ startAngle,
48
+ endAngle,
49
+ padAngle,
50
+ padRadius,
51
+ pieSort,
52
+ pieSortValues,
53
+ pieValue,
54
+ children,
55
+ fill = '',
56
+ ...restProps
57
+ }: AddSVGProps<PieProps<Datum>, SVGPathElement>) {
58
+ const { arcs, path, pie } = usePie({
59
+ data,
60
+ innerRadius,
61
+ outerRadius,
62
+ cornerRadius,
63
+ startAngle,
64
+ endAngle,
65
+ padAngle,
66
+ padRadius,
67
+ pieSort,
68
+ pieSortValues,
69
+ pieValue,
70
+ });
71
+
72
+ if (children) return <>
73
+ {children({ arcs, path, pie })}
74
+ </>;
75
+
76
+ return <Group className="visx-pie-arcs-group" top={top} left={left}>{arcs.map(
77
+ (arc, i) => <g key={`pie-arc-${i}`}>
78
+ <path
79
+ className={cx('visx-pie-arc', className)}
80
+ d={path(arc) || ''}
81
+ fill={fill == null || typeof fill === 'string' ? fill : fill(arc)}
82
+ {...restProps}
83
+ />
84
+ {centroid?.(path.centroid(arc), arc)}
85
+ </g>,
86
+ )}</Group>;
87
+ }
@@ -0,0 +1,30 @@
1
+ // Generated by scripts/generate-tsrx-types.mjs.
2
+ import type { ReactNode } from 'react';
3
+ import type { AddSVGProps, ArcPathConfig, PiePathConfig } from '../types';
4
+ import type { PieArcDatum, UsePieResult } from '../react/usePie.tsrx';
5
+ export type { PieArcDatum };
6
+ type StringAccessor<Datum> = (pieArcDatum: PieArcDatum<Datum>) => string;
7
+ export type ProvidedProps<Datum> = UsePieResult<Datum>;
8
+ export type PieProps<Datum> = {
9
+ /** className applied to path element. */
10
+ className?: string;
11
+ /** Top offset of rendered Pie. */
12
+ top?: number;
13
+ /** Left offset of rendered Pie. */
14
+ left?: number;
15
+ /** Array of data to generate a Pie for. */
16
+ data?: Datum[];
17
+ /** Optional render function invoked for each Datum to render something (e.g., a Label) at each pie centroid. */
18
+ centroid?: (xyCoords: [number, number], arc: PieArcDatum<Datum>) => ReactNode;
19
+ /** Invoked for each datum, returns the value for a given Pie segment/arc datum. */
20
+ pieValue?: PiePathConfig<Datum>['value'];
21
+ /** Comparator function to sort *arcs*, overridden by pieSortValues if defined. If pieSort and pieSortValues are null, arcs match input data order. */
22
+ pieSort?: PiePathConfig<Datum>['sort'];
23
+ /** Comparator function to sort arc *values*, overrides pieSort if defined. If pieSort and pieSortValues are null, arcs match input data order. */
24
+ pieSortValues?: PiePathConfig<Datum>['sortValues'];
25
+ /** Render function override which is passed the configured arc generator as input. */
26
+ children?: (provided: ProvidedProps<Datum>) => ReactNode;
27
+ /** Optional accessor function to return the fill string value of a given arc. */
28
+ fill?: string | StringAccessor<Datum>;
29
+ } & Pick<PiePathConfig<Datum>, 'startAngle' | 'endAngle' | 'padAngle'> & Pick<ArcPathConfig<PieArcDatum<Datum>>, 'innerRadius' | 'outerRadius' | 'cornerRadius' | 'padRadius'>;
30
+ export default function Pie<Datum>({ className, top, left, data, centroid, innerRadius, outerRadius, cornerRadius, startAngle, endAngle, padAngle, padRadius, pieSort, pieSortValues, pieValue, children, fill, ...restProps }: AddSVGProps<PieProps<Datum>, SVGPathElement>): import("react").JSX.Element;
@@ -0,0 +1,85 @@
1
+ import type { ReactNode, Ref } from 'react';
2
+ import cx from 'classnames';
3
+ import { degreesToRadians } from '../util/trigonometry';
4
+ import type { AddSVGProps } from '../types';
5
+
6
+ const DEFAULT_CENTER = { x: 0, y: 0 };
7
+
8
+ export const getPoint = ({ sides = 4, size = 25, center = DEFAULT_CENTER, rotate = 0, side }: {
9
+ side: number;
10
+ } & NonNullable<Pick<PolygonProps, 'sides' | 'size' | 'center' | 'rotate'>>) => {
11
+ const degrees = (360 / sides) * side - rotate;
12
+ const radians = degreesToRadians(degrees);
13
+
14
+ return {
15
+ x: center.x + size * Math.cos(radians),
16
+ y: center.y + size * Math.sin(radians),
17
+ };
18
+ };
19
+
20
+ export const getPoints = ({ sides, size, center, rotate }: NonNullable<Pick<PolygonProps, | 'sides'
21
+ | 'size'
22
+ | 'center'
23
+ | 'rotate'>>) => new Array(sides).fill(0).map(
24
+ (_, side) => getPoint({
25
+ sides,
26
+ size,
27
+ center,
28
+ rotate,
29
+ side,
30
+ }),
31
+ );
32
+
33
+ export type PolygonProps = {
34
+ /** Number of polygon sides. */
35
+ sides?: number;
36
+ /** Size of the shape. */
37
+ size?: number;
38
+ /** Points to use to render the polygon. If this is defined, `sides`, `size`, `rotate`, and `center` are ignored. */
39
+ points?: [number, number][];
40
+ /** className to apply to polygon element. */
41
+ className?: string;
42
+ /** Rotation transform to apply to polygon. */
43
+ rotate?: number;
44
+ /** Render function override which is passed the generated polygon points. */
45
+ children?: (args: { points: [number, number][] }) => ReactNode;
46
+ /** Reference to polygon element. */
47
+ innerRef?: Ref<SVGPolygonElement>;
48
+ /** Polygon center position. */
49
+ center?: {
50
+ x: number;
51
+ y: number;
52
+ };
53
+ };
54
+
55
+ export default function Polygon({
56
+ sides = 4,
57
+ size = 25,
58
+ center = DEFAULT_CENTER,
59
+ rotate = 0,
60
+ className,
61
+ children,
62
+ innerRef,
63
+ points,
64
+ ...restProps
65
+ }: AddSVGProps<PolygonProps, SVGPolygonElement>) {
66
+ const pointsToRender: [number, number][] =
67
+ points ||
68
+ getPoints({
69
+ sides,
70
+ size,
71
+ center,
72
+ rotate,
73
+ }).map(({ x, y }) => [x, y]);
74
+
75
+ if (children) return <>
76
+ {children({ points: pointsToRender })}
77
+ </>;
78
+
79
+ return <polygon
80
+ ref={innerRef}
81
+ className={cx('visx-polygon', className)}
82
+ points={pointsToRender.join(' ')}
83
+ {...restProps}
84
+ />;
85
+ }
@@ -0,0 +1,37 @@
1
+ // Generated by scripts/generate-tsrx-types.mjs.
2
+ import type { ReactNode, Ref } from 'react';
3
+ import type { AddSVGProps } from '../types';
4
+ export declare const getPoint: ({ sides, size, center, rotate, side }: {
5
+ side: number;
6
+ } & NonNullable<Pick<PolygonProps, "sides" | "size" | "center" | "rotate">>) => {
7
+ x: number;
8
+ y: number;
9
+ };
10
+ export declare const getPoints: ({ sides, size, center, rotate }: NonNullable<Pick<PolygonProps, "sides" | "size" | "center" | "rotate">>) => {
11
+ x: number;
12
+ y: number;
13
+ }[];
14
+ export type PolygonProps = {
15
+ /** Number of polygon sides. */
16
+ sides?: number;
17
+ /** Size of the shape. */
18
+ size?: number;
19
+ /** Points to use to render the polygon. If this is defined, `sides`, `size`, `rotate`, and `center` are ignored. */
20
+ points?: [number, number][];
21
+ /** className to apply to polygon element. */
22
+ className?: string;
23
+ /** Rotation transform to apply to polygon. */
24
+ rotate?: number;
25
+ /** Render function override which is passed the generated polygon points. */
26
+ children?: (args: {
27
+ points: [number, number][];
28
+ }) => ReactNode;
29
+ /** Reference to polygon element. */
30
+ innerRef?: Ref<SVGPolygonElement>;
31
+ /** Polygon center position. */
32
+ center?: {
33
+ x: number;
34
+ y: number;
35
+ };
36
+ };
37
+ export default function Polygon({ sides, size, center, rotate, className, children, innerRef, points, ...restProps }: AddSVGProps<PolygonProps, SVGPolygonElement>): import("react").JSX.Element;
@@ -0,0 +1,86 @@
1
+ import { useMemo, Fragment } from 'octane';
2
+ import type { ReactNode, SVGProps } from 'react';
3
+ import type { GetLineSegmentsConfig } from '../util/getSplitLineSegments';
4
+ import getSplitLineSegments from '../util/getSplitLineSegments';
5
+ import { line } from '../util/D3ShapeFactories';
6
+ import type { LinePathConfig } from '../types';
7
+ import LinePath from './LinePath.tsrx';
8
+
9
+ interface Point {
10
+ x: number;
11
+ y: number;
12
+ }
13
+
14
+ const getX = (d: Point) => d.x || 0;
15
+ const getY = (d: Point) => d.y || 0;
16
+
17
+ export type SplitLinePathRenderer = (renderProps: {
18
+ index: number;
19
+ segment: { x: number; y: number }[];
20
+ styles?: Omit<SVGProps<SVGPathElement>, 'x' | 'y' | 'children'>;
21
+ }) => ReactNode;
22
+
23
+ export type SplitLinePathProps<Datum> = {
24
+ /** Array of data segments, where each segment will be a separate path in the rendered line. */
25
+ segments: Datum[][];
26
+ /** Styles to apply to each segment. If fewer styles are specified than the number of segments, they will be re-used. */
27
+ styles: Omit<SVGProps<SVGPathElement>, 'x' | 'y' | 'children'>[];
28
+ /** Override render function which is passed the configured path generator as input. */
29
+ children?: SplitLinePathRenderer;
30
+ /** className applied to path element. */
31
+ className?: string;
32
+ } & LinePathConfig<Datum> & Pick<GetLineSegmentsConfig, 'segmentation' | 'sampleRate'>;
33
+
34
+ export default function SplitLinePath<Datum>({
35
+ children,
36
+ className,
37
+ curve,
38
+ defined,
39
+ segmentation,
40
+ sampleRate,
41
+ segments,
42
+ x,
43
+ y,
44
+ styles,
45
+ }: SplitLinePathProps<Datum>) {
46
+ // Convert data in all segments to points.
47
+ const pointsInSegments = useMemo(() => {
48
+ const xFn =
49
+ typeof x === 'number' || typeof x === 'undefined' ? () => x : x;
50
+ const yFn =
51
+ typeof y === 'number' || typeof y === 'undefined' ? () => y : y;
52
+ return segments.map((s) => s.map((value, i) => ({ x: xFn(value, i, s), y: yFn(value, i, s) })));
53
+ }, [x, y, segments]);
54
+
55
+ const pathString = useMemo(() => {
56
+ const path = line<Datum>({ x, y, defined, curve });
57
+ return path(segments.flat()) || '';
58
+ }, [x, y, defined, curve, segments]);
59
+
60
+ const splitLineSegments = useMemo(
61
+ () => getSplitLineSegments({
62
+ path: pathString,
63
+ segmentation,
64
+ pointsInSegments,
65
+ sampleRate,
66
+ }),
67
+ [pathString, segmentation, pointsInSegments, sampleRate],
68
+ );
69
+
70
+ return <g>{splitLineSegments.map(
71
+ (segment, index) => children
72
+ ? <Fragment key={index}>{children({
73
+ index,
74
+ segment,
75
+ styles: styles[index] || styles[index % styles.length],
76
+ })}</Fragment>
77
+ : <LinePath
78
+ key={index}
79
+ className={className}
80
+ data={segment}
81
+ x={getX}
82
+ y={getY}
83
+ {...styles[index] || styles[index % styles.length]}
84
+ />,
85
+ )}</g>;
86
+ }