@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,189 @@
1
+ import type { CSSProperties, SVGProps } from 'react';
2
+ import cx from 'classnames';
3
+ import { Group } from '@octanejs/visx/group';
4
+ import type { ScaleInput } from '@octanejs/visx/scale';
5
+ import type { LineProps } from '@octanejs/visx/shape';
6
+ import GridAngle from './GridAngle.tsrx';
7
+ import GridRadial from './GridRadial.tsrx';
8
+
9
+ import type { CommonGridProps, GridScale } from '../types';
10
+
11
+ export type GridPolarProps<AngleScale extends GridScale, RadialScale extends GridScale> =
12
+ CommonGridProps & {
13
+ /**
14
+ * If specified, the arc of each radial grid line will have this thickness, useful for fills.
15
+ */
16
+ /**
17
+ * If specified, the arc of each radial grid line will have this thickness, useful for fills.
18
+ */
19
+ /**
20
+ * If specified, the arc of each radial grid line will have this thickness, useful for fills.
21
+ */
22
+ /**
23
+ * If specified, the arc of each radial grid line will have this thickness, useful for fills.
24
+ */
25
+ arcThickness?: number;
26
+ /**
27
+ * The class name applied to the angle grid group.
28
+ */
29
+ classNameAngle?: string;
30
+ /**
31
+ * The class name applied to the radial grid group.
32
+ */
33
+ classNameRadial?: string;
34
+ /**
35
+ * The end angle of the arc of radial grid lines in radians.
36
+ */
37
+ endAngle?: number;
38
+ /**
39
+ * The color applied to the fill of the radial lines.
40
+ */
41
+ fillRadial?: string;
42
+ /**
43
+ * Radius which determines the start position of angle lines.
44
+ */
45
+ innerRadius?: number;
46
+ /**
47
+ * Classname applied to all angle line paths.
48
+ */
49
+ lineClassNameAngle?: string;
50
+ /**
51
+ * Classname applied to all radial line paths.
52
+ */
53
+ lineClassNameRadial?: string;
54
+ /**
55
+ * Style object set as the angle line path style attribute.
56
+ */
57
+ lineStyleAngle?: CSSProperties & LineProps & Omit<SVGProps<SVGLineElement>, keyof LineProps>;
58
+ /**
59
+ * Style object set as the radius line path style attribute.
60
+ */
61
+ lineStyleRadial?: CSSProperties & LineProps & Omit<SVGProps<SVGLineElement>, keyof LineProps>;
62
+ /**
63
+ * The number of angle ticks wanted for the grid. Note this is approximate due to d3's algorithm,
64
+ * you can use tickValues for greater control
65
+ */
66
+ numTicksAngle?: number;
67
+ /**
68
+ * The number of radial ticks wanted for the grid. Note this is approximate due to d3's algorithm,
69
+ * you can use tickValues for greater control
70
+ */
71
+ numTicksRadial?: number;
72
+ /**
73
+ * Radius which determines the end position of angle lines.
74
+ */
75
+ outerRadius: number;
76
+ /**
77
+ * A [d3](https://github.com/d3/d3-scale) or [visx](https://github.com/airbnb/visx/tree/master/packages/visx-scale)
78
+ * scale function used to generate the angle of angle lines.
79
+ */
80
+ scaleAngle: AngleScale;
81
+ /**
82
+ * A [d3](https://github.com/d3/d3-scale) or [visx](https://github.com/airbnb/visx/tree/master/packages/visx-scale)
83
+ * scale function used to generate the radius of radial lines.
84
+ */
85
+ scaleRadial: RadialScale;
86
+ /**
87
+ * The start angle of the arc of radial grid lines in radians.
88
+ */
89
+ startAngle?: number;
90
+ /**
91
+ * The color applied to the stroke of the angle lines.
92
+ */
93
+ strokeAngle?: string;
94
+ /**
95
+ * The color applied to the stroke of the radial lines.
96
+ */
97
+ strokeRadial?: string;
98
+ /**
99
+ * The pattern of dashes for angle line stroke.
100
+ */
101
+ strokeDasharrayAngle?: string;
102
+ /**
103
+ * The pattern of dashes for angle radial stroke.
104
+ */
105
+ strokeDasharrayRadial?: string;
106
+ /**
107
+ * The pixel value for the width of the angle lines.
108
+ */
109
+ strokeWidthAngle?: string | number;
110
+ /**
111
+ * The pixel value for the width of the radial lines.
112
+ */
113
+ strokeWidthRadial?: string | number;
114
+ /**
115
+ * An array of values that determine the number and values of the angle ticks. Falls
116
+ * back to `scale.ticks()` or `.domain()`.
117
+ */
118
+ tickValuesAngle?: ScaleInput<AngleScale>[];
119
+ /**
120
+ * An array of values that determine the number and values of the radial ticks. Falls
121
+ * back to `scale.ticks()` or `.domain()`.
122
+ */
123
+ tickValuesRadial?: ScaleInput<RadialScale>[];
124
+ /**
125
+ * A top pixel offset applied to the entire grid group.
126
+ */
127
+ top?: number;
128
+ };
129
+
130
+ export default function GridPolar<Scale extends GridScale>({
131
+ arcThickness,
132
+ className,
133
+ classNameAngle,
134
+ classNameRadial,
135
+ endAngle,
136
+ fillRadial,
137
+ innerRadius,
138
+ left,
139
+ lineClassNameAngle,
140
+ lineClassNameRadial,
141
+ lineStyleAngle,
142
+ lineStyleRadial,
143
+ numTicksAngle,
144
+ numTicksRadial,
145
+ outerRadius,
146
+ scaleAngle,
147
+ scaleRadial,
148
+ startAngle,
149
+ strokeAngle,
150
+ strokeRadial,
151
+ strokeWidthAngle,
152
+ strokeWidthRadial,
153
+ strokeDasharrayAngle,
154
+ strokeDasharrayRadial,
155
+ tickValuesAngle,
156
+ tickValuesRadial,
157
+ top,
158
+ }: GridPolarProps<Scale, Scale>) {
159
+ return <Group className={cx('visx-grid-polar', className)} top={top} left={left}>
160
+ <GridAngle
161
+ className={classNameAngle}
162
+ innerRadius={innerRadius}
163
+ lineClassName={lineClassNameAngle}
164
+ lineStyle={lineStyleAngle}
165
+ numTicks={numTicksAngle}
166
+ outerRadius={outerRadius}
167
+ scale={scaleAngle}
168
+ stroke={strokeAngle}
169
+ strokeWidth={strokeWidthAngle}
170
+ strokeDasharray={strokeDasharrayAngle}
171
+ tickValues={tickValuesAngle}
172
+ />
173
+ <GridRadial
174
+ arcThickness={arcThickness}
175
+ className={classNameRadial}
176
+ endAngle={endAngle}
177
+ fill={fillRadial}
178
+ lineClassName={lineClassNameRadial}
179
+ lineStyle={lineStyleRadial}
180
+ numTicks={numTicksRadial}
181
+ scale={scaleRadial}
182
+ startAngle={startAngle}
183
+ stroke={strokeRadial}
184
+ strokeWidth={strokeWidthRadial}
185
+ strokeDasharray={strokeDasharrayRadial}
186
+ tickValues={tickValuesRadial}
187
+ />
188
+ </Group>;
189
+ }
@@ -0,0 +1,123 @@
1
+ // Generated by scripts/generate-tsrx-types.mjs.
2
+ import type { CSSProperties, SVGProps } from 'react';
3
+ import type { ScaleInput } from '@octanejs/visx/scale';
4
+ import type { LineProps } from '@octanejs/visx/shape';
5
+ import type { CommonGridProps, GridScale } from '../types';
6
+ export type GridPolarProps<AngleScale extends GridScale, RadialScale extends GridScale> = CommonGridProps & {
7
+ /**
8
+ * If specified, the arc of each radial grid line will have this thickness, useful for fills.
9
+ */
10
+ /**
11
+ * If specified, the arc of each radial grid line will have this thickness, useful for fills.
12
+ */
13
+ /**
14
+ * If specified, the arc of each radial grid line will have this thickness, useful for fills.
15
+ */
16
+ /**
17
+ * If specified, the arc of each radial grid line will have this thickness, useful for fills.
18
+ */
19
+ arcThickness?: number;
20
+ /**
21
+ * The class name applied to the angle grid group.
22
+ */
23
+ classNameAngle?: string;
24
+ /**
25
+ * The class name applied to the radial grid group.
26
+ */
27
+ classNameRadial?: string;
28
+ /**
29
+ * The end angle of the arc of radial grid lines in radians.
30
+ */
31
+ endAngle?: number;
32
+ /**
33
+ * The color applied to the fill of the radial lines.
34
+ */
35
+ fillRadial?: string;
36
+ /**
37
+ * Radius which determines the start position of angle lines.
38
+ */
39
+ innerRadius?: number;
40
+ /**
41
+ * Classname applied to all angle line paths.
42
+ */
43
+ lineClassNameAngle?: string;
44
+ /**
45
+ * Classname applied to all radial line paths.
46
+ */
47
+ lineClassNameRadial?: string;
48
+ /**
49
+ * Style object set as the angle line path style attribute.
50
+ */
51
+ lineStyleAngle?: CSSProperties & LineProps & Omit<SVGProps<SVGLineElement>, keyof LineProps>;
52
+ /**
53
+ * Style object set as the radius line path style attribute.
54
+ */
55
+ lineStyleRadial?: CSSProperties & LineProps & Omit<SVGProps<SVGLineElement>, keyof LineProps>;
56
+ /**
57
+ * The number of angle ticks wanted for the grid. Note this is approximate due to d3's algorithm,
58
+ * you can use tickValues for greater control
59
+ */
60
+ numTicksAngle?: number;
61
+ /**
62
+ * The number of radial ticks wanted for the grid. Note this is approximate due to d3's algorithm,
63
+ * you can use tickValues for greater control
64
+ */
65
+ numTicksRadial?: number;
66
+ /**
67
+ * Radius which determines the end position of angle lines.
68
+ */
69
+ outerRadius: number;
70
+ /**
71
+ * A [d3](https://github.com/d3/d3-scale) or [visx](https://github.com/airbnb/visx/tree/master/packages/visx-scale)
72
+ * scale function used to generate the angle of angle lines.
73
+ */
74
+ scaleAngle: AngleScale;
75
+ /**
76
+ * A [d3](https://github.com/d3/d3-scale) or [visx](https://github.com/airbnb/visx/tree/master/packages/visx-scale)
77
+ * scale function used to generate the radius of radial lines.
78
+ */
79
+ scaleRadial: RadialScale;
80
+ /**
81
+ * The start angle of the arc of radial grid lines in radians.
82
+ */
83
+ startAngle?: number;
84
+ /**
85
+ * The color applied to the stroke of the angle lines.
86
+ */
87
+ strokeAngle?: string;
88
+ /**
89
+ * The color applied to the stroke of the radial lines.
90
+ */
91
+ strokeRadial?: string;
92
+ /**
93
+ * The pattern of dashes for angle line stroke.
94
+ */
95
+ strokeDasharrayAngle?: string;
96
+ /**
97
+ * The pattern of dashes for angle radial stroke.
98
+ */
99
+ strokeDasharrayRadial?: string;
100
+ /**
101
+ * The pixel value for the width of the angle lines.
102
+ */
103
+ strokeWidthAngle?: string | number;
104
+ /**
105
+ * The pixel value for the width of the radial lines.
106
+ */
107
+ strokeWidthRadial?: string | number;
108
+ /**
109
+ * An array of values that determine the number and values of the angle ticks. Falls
110
+ * back to `scale.ticks()` or `.domain()`.
111
+ */
112
+ tickValuesAngle?: ScaleInput<AngleScale>[];
113
+ /**
114
+ * An array of values that determine the number and values of the radial ticks. Falls
115
+ * back to `scale.ticks()` or `.domain()`.
116
+ */
117
+ tickValuesRadial?: ScaleInput<RadialScale>[];
118
+ /**
119
+ * A top pixel offset applied to the entire grid group.
120
+ */
121
+ top?: number;
122
+ };
123
+ export default function GridPolar<Scale extends GridScale>({ arcThickness, className, classNameAngle, classNameRadial, endAngle, fillRadial, innerRadius, left, lineClassNameAngle, lineClassNameRadial, lineStyleAngle, lineStyleRadial, numTicksAngle, numTicksRadial, outerRadius, scaleAngle, scaleRadial, startAngle, strokeAngle, strokeRadial, strokeWidthAngle, strokeWidthRadial, strokeDasharrayAngle, strokeDasharrayRadial, tickValuesAngle, tickValuesRadial, top, }: GridPolarProps<Scale, Scale>): import("react").JSX.Element;
@@ -0,0 +1,92 @@
1
+ import type { ReactNode, SVGProps } from 'react';
2
+ import cx from 'classnames';
3
+ import { Arc } from '@octanejs/visx/shape';
4
+ import type { ArcProps } from '@octanejs/visx/shape';
5
+ import { Group } from '@octanejs/visx/group';
6
+ import type { ScaleInput } from '@octanejs/visx/scale';
7
+ import { getTicks } from '@octanejs/visx/scale';
8
+
9
+ import type { CommonGridProps, GridScale } from '../types';
10
+
11
+ export type GridRadialProps<Scale extends GridScale> = CommonGridProps & {
12
+ /** `@octanejs/visx/scale` or `d3-scale` object used to convert value to position. */
13
+ scale: Scale;
14
+ /**
15
+ * Exact values used to generate grid lines using `scale`.
16
+ * Overrides `numTicks` if specified.
17
+ */
18
+ tickValues?: ScaleInput<Scale>[];
19
+ /**
20
+ * If specified, the arc of each radial grid line will have this thickness, useful for fills.
21
+ */
22
+ arcThickness?: number;
23
+ /**
24
+ * The end angle of the arc of radial grid lines in radians.
25
+ */
26
+ endAngle?: number;
27
+ /**
28
+ * The class name applied to all radial lines.
29
+ */
30
+ lineClassName?: string;
31
+ /**
32
+ * The color applied to the fill of the radial lines.
33
+ */
34
+ fill?: string;
35
+ /**
36
+ * The fill opacity applied to the fill of the radial lines.
37
+ */
38
+ fillOpacity?: number;
39
+ /**
40
+ * The start angle of the arc of radial grid lines in radians.
41
+ */
42
+ startAngle?: number;
43
+ /**
44
+ * Child components to the Arc.
45
+ */
46
+ children?: () => ReactNode;
47
+ };
48
+
49
+ export type AllGridRadialProps<Scale extends GridScale, Datum> =
50
+ GridRadialProps<Scale> & Omit<ArcProps<Datum> & Omit<SVGProps<SVGPathElement>, keyof ArcProps<Datum>>, keyof GridRadialProps<Scale>>;
51
+
52
+ export default function GridRadial<Scale extends GridScale, Datum>({
53
+ arcThickness,
54
+ className,
55
+ endAngle = 2 * Math.PI,
56
+ fill = 'transparent',
57
+ fillOpacity = 1,
58
+ left = 0,
59
+ lineClassName,
60
+ lineStyle,
61
+ numTicks = 10,
62
+ scale,
63
+ startAngle = 0,
64
+ stroke = '#eaf0f6',
65
+ strokeWidth = 1,
66
+ strokeDasharray,
67
+ tickValues,
68
+ top = 0,
69
+ ...restProps
70
+ }: AllGridRadialProps<Scale, Datum>) {
71
+ const radii = tickValues ?? getTicks(scale, numTicks);
72
+ const innerRadius = Math.min(...scale.domain());
73
+
74
+ return <Group className={cx('visx-grid-radial', className)} top={top} left={left}>{radii.map(
75
+ (radius, i) =>
76
+ <Arc
77
+ key={`radial-grid-${radius}-${i}`}
78
+ className={lineClassName}
79
+ startAngle={startAngle}
80
+ endAngle={endAngle}
81
+ innerRadius={scale(arcThickness ? radius - arcThickness : innerRadius) as number}
82
+ outerRadius={scale(radius) as number}
83
+ fill={fill}
84
+ fillOpacity={fillOpacity}
85
+ stroke={stroke}
86
+ strokeWidth={strokeWidth}
87
+ strokeDasharray={strokeDasharray}
88
+ style={lineStyle}
89
+ {...restProps}
90
+ />,
91
+ )}</Group>;
92
+ }
@@ -0,0 +1,44 @@
1
+ // Generated by scripts/generate-tsrx-types.mjs.
2
+ import type { ReactNode, SVGProps } from 'react';
3
+ import type { ArcProps } from '@octanejs/visx/shape';
4
+ import type { ScaleInput } from '@octanejs/visx/scale';
5
+ import type { CommonGridProps, GridScale } from '../types';
6
+ export type GridRadialProps<Scale extends GridScale> = CommonGridProps & {
7
+ /** `@octanejs/visx/scale` or `d3-scale` object used to convert value to position. */
8
+ scale: Scale;
9
+ /**
10
+ * Exact values used to generate grid lines using `scale`.
11
+ * Overrides `numTicks` if specified.
12
+ */
13
+ tickValues?: ScaleInput<Scale>[];
14
+ /**
15
+ * If specified, the arc of each radial grid line will have this thickness, useful for fills.
16
+ */
17
+ arcThickness?: number;
18
+ /**
19
+ * The end angle of the arc of radial grid lines in radians.
20
+ */
21
+ endAngle?: number;
22
+ /**
23
+ * The class name applied to all radial lines.
24
+ */
25
+ lineClassName?: string;
26
+ /**
27
+ * The color applied to the fill of the radial lines.
28
+ */
29
+ fill?: string;
30
+ /**
31
+ * The fill opacity applied to the fill of the radial lines.
32
+ */
33
+ fillOpacity?: number;
34
+ /**
35
+ * The start angle of the arc of radial grid lines in radians.
36
+ */
37
+ startAngle?: number;
38
+ /**
39
+ * Child components to the Arc.
40
+ */
41
+ children?: () => ReactNode;
42
+ };
43
+ export type AllGridRadialProps<Scale extends GridScale, Datum> = GridRadialProps<Scale> & Omit<ArcProps<Datum> & Omit<SVGProps<SVGPathElement>, keyof ArcProps<Datum>>, keyof GridRadialProps<Scale>>;
44
+ export default function GridRadial<Scale extends GridScale, Datum>({ arcThickness, className, endAngle, fill, fillOpacity, left, lineClassName, lineStyle, numTicks, scale, startAngle, stroke, strokeWidth, strokeDasharray, tickValues, top, ...restProps }: AllGridRadialProps<Scale, Datum>): import("react").JSX.Element;
@@ -0,0 +1,76 @@
1
+ import type { SVGProps } from 'react';
2
+ import cx from 'classnames';
3
+ import { Line } from '@octanejs/visx/shape';
4
+ import type { LineProps } from '@octanejs/visx/shape';
5
+ import { Group } from '@octanejs/visx/group';
6
+ import { Point } from '@octanejs/visx/point';
7
+ import type { ScaleInput } from '@octanejs/visx/scale';
8
+ import { getTicks, coerceNumber } from '@octanejs/visx/scale';
9
+ import type { CommonGridProps, GridScale } from '../types';
10
+ import getScaleBandwidth from '../utils/getScaleBandwidth';
11
+
12
+ export type GridRowsProps<Scale extends GridScale> = CommonGridProps & {
13
+ /** `@octanejs/visx/scale` or `d3-scale` object used to convert value to position. */
14
+ scale: Scale;
15
+ /**
16
+ * Exact values used to generate grid lines using `scale`.
17
+ * Overrides `numTicks` if specified.
18
+ */
19
+ tickValues?: ScaleInput<Scale>[];
20
+ /** Total width of each grid row line. */
21
+ width: number;
22
+ };
23
+
24
+ export type AllGridRowsProps<Scale extends GridScale> =
25
+ GridRowsProps<Scale> & Omit<LineProps & Omit<SVGProps<SVGLineElement>, keyof LineProps>, keyof GridRowsProps<Scale>>;
26
+
27
+ export default function GridRows<Scale extends GridScale>({
28
+ top = 0,
29
+ left = 0,
30
+ scale,
31
+ width,
32
+ stroke = '#eaf0f6',
33
+ strokeWidth = 1,
34
+ strokeDasharray,
35
+ className,
36
+ children,
37
+ numTicks = 10,
38
+ lineStyle,
39
+ offset,
40
+ tickValues,
41
+ ...restProps
42
+ }: AllGridRowsProps<Scale>) {
43
+ const ticks = tickValues ?? getTicks(scale, numTicks);
44
+ const scaleOffset = (offset ?? 0) + getScaleBandwidth(scale) / 2;
45
+ const tickLines = ticks.map((d, index) => {
46
+ const y = (coerceNumber(scale(d)) ?? 0) + scaleOffset;
47
+ return {
48
+ index,
49
+ from: new Point({
50
+ x: 0,
51
+ y,
52
+ }),
53
+ to: new Point({
54
+ x: width,
55
+ y,
56
+ }),
57
+ };
58
+ });
59
+ return <Group className={cx('visx-rows', className)} top={top} left={left}>
60
+ {children
61
+ ? children({ lines: tickLines })
62
+ : tickLines.map(
63
+ ({ from, to, index }) =>
64
+ <Line
65
+ key={`row-line-${index}`}
66
+ from={from}
67
+ to={to}
68
+ stroke={stroke}
69
+ strokeWidth={strokeWidth}
70
+ strokeDasharray={strokeDasharray}
71
+ style={lineStyle}
72
+ {...restProps}
73
+ />,
74
+ )}
75
+ </Group>;
76
+ }
@@ -0,0 +1,18 @@
1
+ // Generated by scripts/generate-tsrx-types.mjs.
2
+ import type { SVGProps } from 'react';
3
+ import type { LineProps } from '@octanejs/visx/shape';
4
+ import type { ScaleInput } from '@octanejs/visx/scale';
5
+ import type { CommonGridProps, GridScale } from '../types';
6
+ export type GridRowsProps<Scale extends GridScale> = CommonGridProps & {
7
+ /** `@octanejs/visx/scale` or `d3-scale` object used to convert value to position. */
8
+ scale: Scale;
9
+ /**
10
+ * Exact values used to generate grid lines using `scale`.
11
+ * Overrides `numTicks` if specified.
12
+ */
13
+ tickValues?: ScaleInput<Scale>[];
14
+ /** Total width of each grid row line. */
15
+ width: number;
16
+ };
17
+ export type AllGridRowsProps<Scale extends GridScale> = GridRowsProps<Scale> & Omit<LineProps & Omit<SVGProps<SVGLineElement>, keyof LineProps>, keyof GridRowsProps<Scale>>;
18
+ export default function GridRows<Scale extends GridScale>({ top, left, scale, width, stroke, strokeWidth, strokeDasharray, className, children, numTicks, lineStyle, offset, tickValues, ...restProps }: AllGridRowsProps<Scale>): import("react").JSX.Element;
@@ -0,0 +1,11 @@
1
+ // @octanejs/visx/grid
2
+ export { default as GridRows } from './grids/GridRows.tsrx';
3
+ export type { GridRowsProps, AllGridRowsProps } from './grids/GridRows.tsrx';
4
+ export { default as GridColumns } from './grids/GridColumns.tsrx';
5
+ export type { GridColumnsProps, AllGridColumnsProps } from './grids/GridColumns.tsrx';
6
+ export { default as Grid } from './grids/Grid.tsrx';
7
+ export { default as GridAngle } from './grids/GridAngle.tsrx';
8
+ export { default as GridRadial } from './grids/GridRadial.tsrx';
9
+ export { default as GridPolar } from './grids/GridPolar.tsrx';
10
+
11
+ export type * from './types';
@@ -0,0 +1,40 @@
1
+ import type { CSSProperties, ReactNode } from 'react';
2
+ import type { D3Scale, NumberLike } from '@octanejs/visx/scale';
3
+
4
+ // In order to plot values on an axis, output of the scale must be number.
5
+ // Some scales return undefined.
6
+ export type GridScaleOutput = number | NumberLike | undefined;
7
+
8
+ /** A catch-all type for scales that are compatible with grid */
9
+ export type GridScale<Output extends GridScaleOutput = GridScaleOutput> =
10
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
11
+ D3Scale<Output, any, any>;
12
+
13
+ export type GridLines = {
14
+ from: { x?: number; y?: number };
15
+ to: { x?: number; y?: number };
16
+ index: number;
17
+ }[];
18
+
19
+ export type CommonGridProps = {
20
+ /** classname to apply to line group element. */
21
+ className?: string;
22
+ /** Optionally override rendering of grid lines. */
23
+ children?: (props: { lines: GridLines }) => ReactNode;
24
+ /** Top offset to apply to glyph g element container. */
25
+ top?: number;
26
+ /** Left offset to apply to glyph g element container. */
27
+ left?: number;
28
+ /** Grid line stroke color. */
29
+ stroke?: string;
30
+ /** Grid line stroke thickness. */
31
+ strokeWidth?: string | number;
32
+ /** Grid line stroke-dasharray attribute. */
33
+ strokeDasharray?: string;
34
+ /** Approximate number of grid lines. Approximate due to d3 alogrithm, specify `tickValues` for precise control. */
35
+ numTicks?: number;
36
+ /** Styles to apply as grid line style. */
37
+ lineStyle?: CSSProperties;
38
+ /** Pixel offset to apply as a translation (y- for Rows, x- for Columns) to each grid lines. */
39
+ offset?: number;
40
+ };
@@ -0,0 +1,5 @@
1
+ import type { GridScale } from '../types';
2
+
3
+ export default function getScaleBandwidth(scale: GridScale) {
4
+ return 'bandwidth' in scale ? scale.bandwidth() : 0;
5
+ }
@@ -0,0 +1,16 @@
1
+ export type PolarCoordinate = {
2
+ radius: number;
3
+ angle: number;
4
+ };
5
+
6
+ export type CartesianCoordinate = {
7
+ x: number;
8
+ y: number;
9
+ };
10
+
11
+ export default function polarToCartesian({ radius, angle }: PolarCoordinate): CartesianCoordinate {
12
+ return {
13
+ x: radius * Math.cos(angle),
14
+ y: radius * Math.sin(angle),
15
+ };
16
+ }
@@ -0,0 +1,33 @@
1
+ import type { ReactNode, Ref, SVGProps } from 'react';
2
+ import cx from 'classnames';
3
+
4
+ export type GroupProps = {
5
+ /** Top offset applied to `<g/>`. */
6
+ top?: number;
7
+ /** Left offset applied to `<g/>`. */
8
+ left?: number;
9
+ /** Override `top` and `left` to provide the entire `transform` string. */
10
+ transform?: string;
11
+ /** className to apply to `<g/>`. */
12
+ className?: string;
13
+ children?: ReactNode;
14
+ /** ref to underlying `<g/>`. */
15
+ innerRef?: Ref<SVGGElement>;
16
+ };
17
+
18
+ export default function Group({
19
+ top = 0,
20
+ left = 0,
21
+ transform,
22
+ className,
23
+ children,
24
+ innerRef,
25
+ ...restProps
26
+ }: GroupProps & Omit<SVGProps<SVGGElement>, keyof GroupProps>) {
27
+ return <g
28
+ ref={innerRef}
29
+ className={cx('visx-group', className)}
30
+ transform={transform || `translate(${left}, ${top})`}
31
+ {...restProps}
32
+ >{children}</g>;
33
+ }
@@ -0,0 +1,16 @@
1
+ // Generated by scripts/generate-tsrx-types.mjs.
2
+ import type { ReactNode, Ref, SVGProps } from 'react';
3
+ export type GroupProps = {
4
+ /** Top offset applied to `<g/>`. */
5
+ top?: number;
6
+ /** Left offset applied to `<g/>`. */
7
+ left?: number;
8
+ /** Override `top` and `left` to provide the entire `transform` string. */
9
+ transform?: string;
10
+ /** className to apply to `<g/>`. */
11
+ className?: string;
12
+ children?: ReactNode;
13
+ /** ref to underlying `<g/>`. */
14
+ innerRef?: Ref<SVGGElement>;
15
+ };
16
+ export default function Group({ top, left, transform, className, children, innerRef, ...restProps }: GroupProps & Omit<SVGProps<SVGGElement>, keyof GroupProps>): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ // @octanejs/visx/group
2
+ export { default as Group } from './Group.tsrx';