solid-recharts 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 (639) hide show
  1. package/NEXT_SESSION_PROMPT.md +114 -0
  2. package/package.json +28 -0
  3. package/src/animation/AnimatedItems.tsx +169 -0
  4. package/src/animation/AnimationController.ts +24 -0
  5. package/src/animation/AnimationControllerImpl.ts +37 -0
  6. package/src/animation/AnimationHandle.ts +273 -0
  7. package/src/animation/CSSTransitionAnimate.tsx +142 -0
  8. package/src/animation/JavascriptAnimate.tsx +107 -0
  9. package/src/animation/easing.ts +261 -0
  10. package/src/animation/matchBy.ts +211 -0
  11. package/src/animation/timeoutController.ts +51 -0
  12. package/src/animation/useAnimationController.tsx +31 -0
  13. package/src/animation/useAnimationStartSnapshot.ts +73 -0
  14. package/src/animation/util.ts +16 -0
  15. package/src/cartesian/Area.tsx +810 -0
  16. package/src/cartesian/AreaRevealShape.tsx +250 -0
  17. package/src/cartesian/Bar.tsx +1216 -0
  18. package/src/cartesian/BarStack.tsx +148 -0
  19. package/src/cartesian/Brush.tsx +653 -0
  20. package/src/cartesian/CartesianAxis.tsx +541 -0
  21. package/src/cartesian/CartesianGrid.tsx +605 -0
  22. package/src/cartesian/ErrorBar.tsx +319 -0
  23. package/src/cartesian/Funnel.tsx +594 -0
  24. package/src/cartesian/GraphicalItemClipPath.tsx +75 -0
  25. package/src/cartesian/Line.tsx +742 -0
  26. package/src/cartesian/LineDrawShape.tsx +190 -0
  27. package/src/cartesian/ReferenceArea.tsx +275 -0
  28. package/src/cartesian/ReferenceDot.tsx +286 -0
  29. package/src/cartesian/ReferenceLine.tsx +414 -0
  30. package/src/cartesian/RenderedTicksReporter.tsx +49 -0
  31. package/src/cartesian/Scatter.tsx +741 -0
  32. package/src/cartesian/XAxis.tsx +293 -0
  33. package/src/cartesian/YAxis.tsx +333 -0
  34. package/src/cartesian/ZAxis.tsx +80 -0
  35. package/src/cartesian/getCartesianPosition.ts +255 -0
  36. package/src/cartesian/getEquidistantTicks.ts +126 -0
  37. package/src/cartesian/getTicks.ts +225 -0
  38. package/src/cartesian/useAnimatedLineLength.ts +84 -0
  39. package/src/chart/AreaChart.tsx +30 -0
  40. package/src/chart/BarChart.tsx +27 -0
  41. package/src/chart/CartesianChart.tsx +91 -0
  42. package/src/chart/CategoricalChart.tsx +60 -0
  43. package/src/chart/ComposedChart.tsx +29 -0
  44. package/src/chart/FunnelChart.tsx +29 -0
  45. package/src/chart/LineChart.tsx +29 -0
  46. package/src/chart/PieChart.tsx +41 -0
  47. package/src/chart/PolarChart.tsx +97 -0
  48. package/src/chart/RadarChart.tsx +37 -0
  49. package/src/chart/RadialBarChart.tsx +39 -0
  50. package/src/chart/RechartsWrapper.tsx +486 -0
  51. package/src/chart/Sankey.tsx +992 -0
  52. package/src/chart/ScatterChart.tsx +29 -0
  53. package/src/chart/SunburstChart.tsx +394 -0
  54. package/src/chart/Treemap.tsx +874 -0
  55. package/src/chart/types.ts +37 -0
  56. package/src/component/ActivePoints.tsx +136 -0
  57. package/src/component/Cell.tsx +72 -0
  58. package/src/component/Cursor.tsx +249 -0
  59. package/src/component/Customized.tsx +8 -0
  60. package/src/component/DefaultLegendContent.tsx +205 -0
  61. package/src/component/DefaultTooltipContent.tsx +247 -0
  62. package/src/component/Dots.tsx +128 -0
  63. package/src/component/Label.tsx +507 -0
  64. package/src/component/LabelList.tsx +270 -0
  65. package/src/component/Legend.tsx +273 -0
  66. package/src/component/ResponsiveContainer.tsx +397 -0
  67. package/src/component/Text.tsx +436 -0
  68. package/src/component/Tooltip.tsx +309 -0
  69. package/src/component/TooltipBoundingBox.tsx +152 -0
  70. package/src/component/responsiveContainerUtils.ts +128 -0
  71. package/src/container/ClipPathProvider.tsx +40 -0
  72. package/src/container/Layer.tsx +38 -0
  73. package/src/container/RootSurface.tsx +124 -0
  74. package/src/container/Surface.tsx +70 -0
  75. package/src/context/ErrorBarContext.tsx +85 -0
  76. package/src/context/PanoramaContext.tsx +13 -0
  77. package/src/context/RegisterGraphicalItemId.tsx +41 -0
  78. package/src/context/accessibilityContext.tsx +10 -0
  79. package/src/context/brushUpdateContext.ts +14 -0
  80. package/src/context/chartDataContext.tsx +79 -0
  81. package/src/context/chartLayoutContext.tsx +158 -0
  82. package/src/context/legendPayloadContext.ts +11 -0
  83. package/src/context/legendPortalContext.ts +11 -0
  84. package/src/context/tooltipContext.ts +72 -0
  85. package/src/context/tooltipPortalContext.ts +14 -0
  86. package/src/context/useTooltipAxis.ts +24 -0
  87. package/src/hooks.ts +312 -0
  88. package/src/index.ts +288 -0
  89. package/src/polar/Pie.tsx +912 -0
  90. package/src/polar/PolarAngleAxis.tsx +494 -0
  91. package/src/polar/PolarGrid.tsx +269 -0
  92. package/src/polar/PolarRadiusAxis.tsx +422 -0
  93. package/src/polar/Radar.tsx +652 -0
  94. package/src/polar/RadialBar.tsx +767 -0
  95. package/src/polar/defaultPolarAngleAxisProps.tsx +33 -0
  96. package/src/polar/defaultPolarRadiusAxisProps.tsx +28 -0
  97. package/src/shape/Cross.tsx +83 -0
  98. package/src/shape/Curve.tsx +335 -0
  99. package/src/shape/Dot.tsx +49 -0
  100. package/src/shape/Polygon.tsx +168 -0
  101. package/src/shape/Rectangle.tsx +301 -0
  102. package/src/shape/Sector.tsx +304 -0
  103. package/src/shape/Symbols.tsx +144 -0
  104. package/src/shape/Trapezoid.tsx +228 -0
  105. package/src/state/RechartsReduxContext.tsx +8 -0
  106. package/src/state/RechartsStoreContext.ts +15 -0
  107. package/src/state/RechartsStoreProvider.tsx +27 -0
  108. package/src/state/ReportChartProps.tsx +19 -0
  109. package/src/state/ReportEventSettings.tsx +19 -0
  110. package/src/state/ReportMainChartProps.tsx +35 -0
  111. package/src/state/ReportPolarOptions.tsx +28 -0
  112. package/src/state/SetLegendPayload.ts +50 -0
  113. package/src/state/SetTooltipEntrySettings.tsx +46 -0
  114. package/src/state/brushSlice.ts +60 -0
  115. package/src/state/cartesianAxisSlice.ts +288 -0
  116. package/src/state/chartDataSlice.ts +115 -0
  117. package/src/state/errorBarSlice.ts +84 -0
  118. package/src/state/eventSettingsSlice.ts +41 -0
  119. package/src/state/externalEventsMiddleware.ts +136 -0
  120. package/src/state/graphicalItemsSlice.ts +162 -0
  121. package/src/state/hooks.ts +42 -0
  122. package/src/state/keyboardEventsMiddleware.ts +213 -0
  123. package/src/state/layoutSlice.ts +71 -0
  124. package/src/state/legendSlice.ts +107 -0
  125. package/src/state/mouseEventsMiddleware.ts +103 -0
  126. package/src/state/optionsSlice.ts +64 -0
  127. package/src/state/polarAxisSlice.ts +65 -0
  128. package/src/state/polarOptionsSlice.ts +54 -0
  129. package/src/state/reduxDevtoolsJsonStringifyReplacer.ts +15 -0
  130. package/src/state/referenceElementsSlice.ts +121 -0
  131. package/src/state/renderedTicksSlice.ts +61 -0
  132. package/src/state/rootPropsSlice.ts +70 -0
  133. package/src/state/selectors/areaSelectors.ts +169 -0
  134. package/src/state/selectors/arrayEqualityCheck.ts +8 -0
  135. package/src/state/selectors/axisSelectors.ts +2196 -0
  136. package/src/state/selectors/barSelectors.ts +319 -0
  137. package/src/state/selectors/barStackSelectors.ts +79 -0
  138. package/src/state/selectors/brushSelectors.ts +40 -0
  139. package/src/state/selectors/combiners/combineActiveLabel.ts +21 -0
  140. package/src/state/selectors/combiners/combineActiveTooltipIndex.ts +93 -0
  141. package/src/state/selectors/combiners/combineAllBarPositions.ts +131 -0
  142. package/src/state/selectors/combiners/combineAxisRangeWithReverse.ts +17 -0
  143. package/src/state/selectors/combiners/combineBarPosition.ts +24 -0
  144. package/src/state/selectors/combiners/combineBarSizeList.ts +75 -0
  145. package/src/state/selectors/combiners/combineCheckedDomain.ts +49 -0
  146. package/src/state/selectors/combiners/combineConfiguredScale.ts +121 -0
  147. package/src/state/selectors/combiners/combineCoordinateForDefaultIndex.ts +43 -0
  148. package/src/state/selectors/combiners/combineDisplayedStackedData.ts +50 -0
  149. package/src/state/selectors/combiners/combineInverseScaleFunction.ts +17 -0
  150. package/src/state/selectors/combiners/combineRealScaleType.ts +48 -0
  151. package/src/state/selectors/combiners/combineStackedData.ts +28 -0
  152. package/src/state/selectors/combiners/combineTooltipInteractionState.ts +86 -0
  153. package/src/state/selectors/combiners/combineTooltipPayload.ts +203 -0
  154. package/src/state/selectors/combiners/combineTooltipPayloadConfigurations.ts +45 -0
  155. package/src/state/selectors/containerSelectors.ts +12 -0
  156. package/src/state/selectors/dataSelectors.ts +90 -0
  157. package/src/state/selectors/funnelSelectors.ts +83 -0
  158. package/src/state/selectors/graphicalItemSelectors.ts +23 -0
  159. package/src/state/selectors/legendSelectors.ts +29 -0
  160. package/src/state/selectors/lineSelectors.ts +111 -0
  161. package/src/state/selectors/numberDomainEqualityCheck.ts +8 -0
  162. package/src/state/selectors/pickAxisId.ts +6 -0
  163. package/src/state/selectors/pickAxisType.ts +4 -0
  164. package/src/state/selectors/pieSelectors.ts +103 -0
  165. package/src/state/selectors/polarAxisSelectors.ts +202 -0
  166. package/src/state/selectors/polarGridSelectors.ts +24 -0
  167. package/src/state/selectors/polarScaleSelectors.ts +149 -0
  168. package/src/state/selectors/polarSelectors.ts +211 -0
  169. package/src/state/selectors/radarSelectors.ts +152 -0
  170. package/src/state/selectors/radialBarSelectors.ts +328 -0
  171. package/src/state/selectors/rootPropsSelectors.ts +36 -0
  172. package/src/state/selectors/scatterSelectors.ts +77 -0
  173. package/src/state/selectors/selectAllAxes.ts +10 -0
  174. package/src/state/selectors/selectChartOffset.ts +15 -0
  175. package/src/state/selectors/selectChartOffsetInternal.ts +111 -0
  176. package/src/state/selectors/selectPlotArea.ts +27 -0
  177. package/src/state/selectors/selectTooltipAxisId.ts +6 -0
  178. package/src/state/selectors/selectTooltipAxisType.ts +33 -0
  179. package/src/state/selectors/selectTooltipEventType.ts +45 -0
  180. package/src/state/selectors/selectTooltipPayloadSearcher.ts +7 -0
  181. package/src/state/selectors/selectTooltipSettings.ts +6 -0
  182. package/src/state/selectors/selectTooltipState.ts +5 -0
  183. package/src/state/selectors/tooltipSelectors.ts +690 -0
  184. package/src/state/selectors/touchSelectors.ts +29 -0
  185. package/src/state/store.ts +167 -0
  186. package/src/state/tooltipSlice.ts +289 -0
  187. package/src/state/types/AreaSettings.ts +17 -0
  188. package/src/state/types/BarSettings.ts +16 -0
  189. package/src/state/types/LineSettings.ts +12 -0
  190. package/src/state/types/PieSettings.ts +32 -0
  191. package/src/state/types/RadarSettings.ts +6 -0
  192. package/src/state/types/RadialBarSettings.ts +10 -0
  193. package/src/state/types/ScatterSettings.ts +13 -0
  194. package/src/state/types/StackedGraphicalItem.ts +33 -0
  195. package/src/state/unregisterOnCleanup.ts +26 -0
  196. package/src/state/zIndexSlice.ts +128 -0
  197. package/src/synchronisation/syncRegistry.ts +131 -0
  198. package/src/synchronisation/syncSelectors.ts +7 -0
  199. package/src/synchronisation/types.ts +42 -0
  200. package/src/synchronisation/useChartSynchronisation.tsx +372 -0
  201. package/src/types.ts +39 -0
  202. package/src/util/ActiveShapeUtils.tsx +80 -0
  203. package/src/util/BarUtils.tsx +74 -0
  204. package/src/util/CartesianUtils.ts +53 -0
  205. package/src/util/ChartUtils.ts +696 -0
  206. package/src/util/Constants.ts +42 -0
  207. package/src/util/CssPrefixUtils.ts +24 -0
  208. package/src/util/DOMUtils.ts +141 -0
  209. package/src/util/DataUtils.ts +205 -0
  210. package/src/util/FunnelUtils.tsx +37 -0
  211. package/src/util/Global.ts +15 -0
  212. package/src/util/IfOverflow.ts +17 -0
  213. package/src/util/LRUCache.ts +46 -0
  214. package/src/util/LogUtils.ts +26 -0
  215. package/src/util/PolarUtils.ts +134 -0
  216. package/src/util/RadialBarUtils.tsx +35 -0
  217. package/src/util/ReduceCSSCalc.ts +186 -0
  218. package/src/util/ShallowEqual.ts +43 -0
  219. package/src/util/TickUtils.ts +61 -0
  220. package/src/util/YAxisUtils.ts +49 -0
  221. package/src/util/adaptEventHandlers.ts +69 -0
  222. package/src/util/axisPropsAreEqual.ts +42 -0
  223. package/src/util/collectionUtils.ts +83 -0
  224. package/src/util/createCartesianCharts.tsx +101 -0
  225. package/src/util/createEventProxy.ts +24 -0
  226. package/src/util/createPolarCharts.tsx +86 -0
  227. package/src/util/cursor/getCursorPoints.ts +48 -0
  228. package/src/util/cursor/getCursorRectangle.ts +31 -0
  229. package/src/util/cursor/getRadialCursorPoints.ts +34 -0
  230. package/src/util/excludeEventProps.ts +172 -0
  231. package/src/util/getActiveCoordinate.ts +205 -0
  232. package/src/util/getAxisTypeBasedOnLayout.ts +21 -0
  233. package/src/util/getEveryNth.ts +30 -0
  234. package/src/util/getRadiusAndStrokeWidthFromDot.ts +35 -0
  235. package/src/util/getRelativeCoordinate.ts +84 -0
  236. package/src/util/getSliced.ts +21 -0
  237. package/src/util/isDomainSpecifiedByUser.ts +217 -0
  238. package/src/util/isWellBehavedNumber.ts +10 -0
  239. package/src/util/objectPath.ts +129 -0
  240. package/src/util/payload/getUniqPayload.ts +31 -0
  241. package/src/util/propsAreEqual.ts +137 -0
  242. package/src/util/resolveDefaultProps.tsx +8 -0
  243. package/src/util/round.ts +35 -0
  244. package/src/util/scale/CartesianScaleHelper.ts +72 -0
  245. package/src/util/scale/CustomScaleDefinition.ts +82 -0
  246. package/src/util/scale/RechartsScale.ts +131 -0
  247. package/src/util/scale/createCategoricalInverse.ts +83 -0
  248. package/src/util/scale/getNiceTickValues.ts +334 -0
  249. package/src/util/scale/index.ts +3 -0
  250. package/src/util/scale/util/DecimalLite.ts +194 -0
  251. package/src/util/scale/util/arithmetic.ts +56 -0
  252. package/src/util/stacks/getStackSeriesIdentifier.ts +20 -0
  253. package/src/util/stacks/stackTypes.ts +53 -0
  254. package/src/util/svgPropertiesAndEvents.ts +84 -0
  255. package/src/util/svgPropertiesNoEvents.ts +520 -0
  256. package/src/util/tooltip/translate.ts +179 -0
  257. package/src/util/typedDataKey.ts +8 -0
  258. package/src/util/types.ts +724 -0
  259. package/src/util/useAnimationId.tsx +31 -0
  260. package/src/util/useElementOffset.ts +164 -0
  261. package/src/util/useId.ts +20 -0
  262. package/src/util/usePrefersReducedMotion.ts +44 -0
  263. package/src/util/useUniqueId.ts +34 -0
  264. package/src/zIndex/DefaultZIndexes.tsx +87 -0
  265. package/src/zIndex/ZIndexLayer.tsx +126 -0
  266. package/src/zIndex/ZIndexPortal.tsx +69 -0
  267. package/src/zIndex/getZIndexFromUnknown.tsx +17 -0
  268. package/src/zIndex/zIndexSelectors.ts +46 -0
  269. package/test/_data.ts +408 -0
  270. package/test/animation/AnimationController.typed.spec.ts +53 -0
  271. package/test/animation/AnimationControllerImpl.spec.ts +271 -0
  272. package/test/animation/CSSTransitionAnimate.timing.spec.tsx +473 -0
  273. package/test/animation/JavascriptAnimate.spec.tsx +62 -0
  274. package/test/animation/RechartsAnimation.spec.ts +636 -0
  275. package/test/animation/easing.spec.ts +218 -0
  276. package/test/animation/legacyAnimationLengthChange.spec.tsx +803 -0
  277. package/test/animation/matchBy.spec.ts +467 -0
  278. package/test/animation/mockAnimationController.ts +40 -0
  279. package/test/animation/mockControllerAnimationManager.ts +143 -0
  280. package/test/animation/mockTimeoutController.ts +114 -0
  281. package/test/animation/timeoutController.spec.ts +138 -0
  282. package/test/animation/useAnimationStartSnapshot.spec.ts +147 -0
  283. package/test/animation/util.spec.ts +28 -0
  284. package/test/cartesian/Area.animation.spec.tsx +363 -0
  285. package/test/cartesian/Area.range.spec.tsx +54 -0
  286. package/test/cartesian/Area.spec.tsx +1202 -0
  287. package/test/cartesian/Area.stacked.render.spec.tsx +69 -0
  288. package/test/cartesian/Area.typed.spec.tsx +209 -0
  289. package/test/cartesian/Axis.integration.spec.tsx +158 -0
  290. package/test/cartesian/Bar/Bar.csstransition.spec.tsx +299 -0
  291. package/test/cartesian/Bar/Bar.spec.tsx +2314 -0
  292. package/test/cartesian/Bar/Bar.typed.spec.tsx +192 -0
  293. package/test/cartesian/Bar.animation.spec.tsx +426 -0
  294. package/test/cartesian/Bar.stackDomain.spec.tsx +66 -0
  295. package/test/cartesian/Bar.stacked.render.spec.tsx +53 -0
  296. package/test/cartesian/Bar.truncateByDomain.spec.tsx +237 -0
  297. package/test/cartesian/Bar.zeroDimensionFiltering.spec.tsx +336 -0
  298. package/test/cartesian/BarStack.spec.tsx +91 -0
  299. package/test/cartesian/Brush.keyboard.spec.tsx +88 -0
  300. package/test/cartesian/Brush.panorama.spec.tsx +41 -0
  301. package/test/cartesian/Brush.props.spec.tsx +63 -0
  302. package/test/cartesian/Brush.render.spec.tsx +117 -0
  303. package/test/cartesian/Brush.spec.tsx +522 -0
  304. package/test/cartesian/Brush.stacked.spec.tsx +221 -0
  305. package/test/cartesian/CartesianAxis.render.spec.tsx +50 -0
  306. package/test/cartesian/CartesianAxis.spec.tsx +396 -0
  307. package/test/cartesian/CartesianGrid.render.spec.tsx +39 -0
  308. package/test/cartesian/CartesianGrid.spec.tsx +2103 -0
  309. package/test/cartesian/ErrorBar.render.spec.tsx +69 -0
  310. package/test/cartesian/ErrorBar.spec.tsx +2414 -0
  311. package/test/cartesian/Funnel.animation.spec.tsx +241 -0
  312. package/test/cartesian/Funnel.spec.tsx +226 -0
  313. package/test/cartesian/Funnel.typed.spec.tsx +221 -0
  314. package/test/cartesian/GraphicalItemClipPath.scale-behavior.spec.tsx +627 -0
  315. package/test/cartesian/GraphicalItemClipPath.spec.tsx +427 -0
  316. package/test/cartesian/Line.animation.spec.tsx +643 -0
  317. package/test/cartesian/Line.sparseAnimationPath.spec.tsx +98 -0
  318. package/test/cartesian/Line.spec.tsx +471 -0
  319. package/test/cartesian/Line.typed.spec.tsx +152 -0
  320. package/test/cartesian/ReferenceArea.render.spec.tsx +63 -0
  321. package/test/cartesian/ReferenceArea.spec.tsx +663 -0
  322. package/test/cartesian/ReferenceArea.typed.spec.tsx +74 -0
  323. package/test/cartesian/ReferenceDot.render.spec.tsx +55 -0
  324. package/test/cartesian/ReferenceDot.spec.tsx +462 -0
  325. package/test/cartesian/ReferenceDot.typed.spec.tsx +76 -0
  326. package/test/cartesian/ReferenceLine/ReferenceLine.panorama.spec.tsx +184 -0
  327. package/test/cartesian/ReferenceLine/ReferenceLine.spec.tsx +744 -0
  328. package/test/cartesian/ReferenceLine/ReferenceLine.typed.spec.tsx +74 -0
  329. package/test/cartesian/ReferenceLine/getEndPoints.spec.ts +399 -0
  330. package/test/cartesian/ReferenceLine.render.spec.tsx +134 -0
  331. package/test/cartesian/Scatter.animation.spec.tsx +381 -0
  332. package/test/cartesian/Scatter.render.spec.tsx +61 -0
  333. package/test/cartesian/Scatter.spec.tsx +406 -0
  334. package/test/cartesian/Scatter.typed.spec.tsx +153 -0
  335. package/test/cartesian/XAxis/XAxis.barSize.spec.tsx +336 -0
  336. package/test/cartesian/XAxis/XAxis.brush.spec.tsx +266 -0
  337. package/test/cartesian/XAxis/XAxis.categorydomain.spec.tsx +872 -0
  338. package/test/cartesian/XAxis/XAxis.dataKey.spec.tsx +86 -0
  339. package/test/cartesian/XAxis/XAxis.datatypes.spec.tsx +127 -0
  340. package/test/cartesian/XAxis/XAxis.hide.spec.tsx +106 -0
  341. package/test/cartesian/XAxis/XAxis.multiaxis.spec.tsx +336 -0
  342. package/test/cartesian/XAxis/XAxis.numberdomain.spec.tsx +1466 -0
  343. package/test/cartesian/XAxis/XAxis.padding.spec.tsx +758 -0
  344. package/test/cartesian/XAxis/XAxis.padding_clip.spec.tsx +65 -0
  345. package/test/cartesian/XAxis/XAxis.state.spec.tsx +355 -0
  346. package/test/cartesian/XAxis/XAxis.tick.spec.tsx +493 -0
  347. package/test/cartesian/XAxis/XAxis.timescale.spec.tsx +233 -0
  348. package/test/cartesian/XAxis/XAxis.type.spec.tsx +107 -0
  349. package/test/cartesian/XAxis/XAxis.typed.spec.tsx +102 -0
  350. package/test/cartesian/XAxis/XAxis.vertical.spec.tsx +265 -0
  351. package/test/cartesian/XAxis.tickFormatter.spec.tsx +54 -0
  352. package/test/cartesian/YAxis/YAxis.7362.derivedDomain.spec.tsx +230 -0
  353. package/test/cartesian/YAxis/YAxis.7362.spec.tsx +104 -0
  354. package/test/cartesian/YAxis/YAxis.interval-zero.spec.tsx +88 -0
  355. package/test/cartesian/YAxis/YAxis.label.spec.tsx +219 -0
  356. package/test/cartesian/YAxis/YAxis.spec.tsx +1595 -0
  357. package/test/cartesian/YAxis/YAxis.tick.spec.tsx +428 -0
  358. package/test/cartesian/YAxis/YAxis.tickFormatter.spec.tsx +54 -0
  359. package/test/cartesian/YAxis/YAxis.ticks.spec.tsx +263 -0
  360. package/test/cartesian/YAxis/YAxis.type.spec.tsx +107 -0
  361. package/test/cartesian/YAxis/YAxis.typed.spec.tsx +102 -0
  362. package/test/cartesian/ZAxis.spec.tsx +300 -0
  363. package/test/cartesian/ZAxis.typed.spec.tsx +33 -0
  364. package/test/cartesian/__snapshots__/Brush.spec.tsx.snap +5 -0
  365. package/test/cartesian/axisLineAndStroke.spec.tsx +72 -0
  366. package/test/cartesian/getCartesianPosition.spec.ts +907 -0
  367. package/test/cartesian/getEquidistantTicks.spec.ts +88 -0
  368. package/test/cartesian/getTicks.spec.ts +378 -0
  369. package/test/cartesian/miscFeatureGaps.spec.tsx +89 -0
  370. package/test/cartesian/useAnimatedLineLength.spec.ts +168 -0
  371. package/test/chart/AccessibilityLayer.spec.tsx +569 -0
  372. package/test/chart/AccessibilityScans.spec.tsx +286 -0
  373. package/test/chart/AreaChart.spec.tsx +409 -0
  374. package/test/chart/AreaChart.stacked.spec.tsx +1407 -0
  375. package/test/chart/AreaChart.typed.spec.tsx +39 -0
  376. package/test/chart/BarChart.spec.tsx +3719 -0
  377. package/test/chart/BarChart.typed.spec.tsx +60 -0
  378. package/test/chart/CategoricalChart.spec.tsx +255 -0
  379. package/test/chart/ComposedChart.spec.tsx +199 -0
  380. package/test/chart/ComposedChart.typed.spec.tsx +39 -0
  381. package/test/chart/FunnelChart.spec.tsx +215 -0
  382. package/test/chart/FunnelChart.typed.spec.tsx +39 -0
  383. package/test/chart/LineChart.multiseries.spec.tsx +50 -0
  384. package/test/chart/LineChart.smoke.spec.tsx +50 -0
  385. package/test/chart/LineChart.spec.tsx +930 -0
  386. package/test/chart/LineChart.typed.spec.tsx +39 -0
  387. package/test/chart/NicheChartTooltip.spec.tsx +81 -0
  388. package/test/chart/PieChart.spec.tsx +793 -0
  389. package/test/chart/PieChart.typed.spec.tsx +39 -0
  390. package/test/chart/RadarChart.spec.tsx +530 -0
  391. package/test/chart/RadarChart.typed.spec.tsx +39 -0
  392. package/test/chart/RadialBarChart.5966.spec.tsx +48 -0
  393. package/test/chart/RadialBarChart.spec.tsx +679 -0
  394. package/test/chart/RadialBarChart.typed.spec.tsx +39 -0
  395. package/test/chart/RechartsWrapper.spec.tsx +83 -0
  396. package/test/chart/Sankey.content.spec.tsx +46 -0
  397. package/test/chart/Sankey.spec.tsx +952 -0
  398. package/test/chart/Sankey.typed.spec.tsx +29 -0
  399. package/test/chart/ScatterChart.spec.tsx +2613 -0
  400. package/test/chart/ScatterChart.typed.spec.tsx +39 -0
  401. package/test/chart/SunburstChart.spec.tsx +146 -0
  402. package/test/chart/Treemap.animation.spec.tsx +52 -0
  403. package/test/chart/Treemap.spec.tsx +1003 -0
  404. package/test/chart/Treemap.typed.spec.tsx +26 -0
  405. package/test/chart/chartEvents.spec.tsx +127 -0
  406. package/test/chart/responsive.spec.tsx +620 -0
  407. package/test/component/Cell.render.spec.tsx +155 -0
  408. package/test/component/Cell.spec.tsx +12 -0
  409. package/test/component/Cursor.spec.tsx +186 -0
  410. package/test/component/DefaultTooltipContent.spec.tsx +102 -0
  411. package/test/component/Label.render.spec.tsx +63 -0
  412. package/test/component/Label.spec.tsx +686 -0
  413. package/test/component/Label.typed.spec.tsx +46 -0
  414. package/test/component/LabelList.spec.tsx +188 -0
  415. package/test/component/Legend.itemSorter.spec.tsx +704 -0
  416. package/test/component/Legend.render.spec.tsx +92 -0
  417. package/test/component/Legend.spec.tsx +2213 -0
  418. package/test/component/Legend.typed.spec.tsx +22 -0
  419. package/test/component/ResponsiveContainer.spec.tsx +523 -0
  420. package/test/component/ResponsiveContainerDataTest.spec.tsx +51 -0
  421. package/test/component/Text.spec.tsx +415 -0
  422. package/test/component/Text.typed.spec.tsx +46 -0
  423. package/test/component/Tooltip/ActiveDot.spec.tsx +370 -0
  424. package/test/component/Tooltip/Tooltip.animation.spec.tsx +209 -0
  425. package/test/component/Tooltip/Tooltip.content.spec.tsx +128 -0
  426. package/test/component/Tooltip/Tooltip.formatter.spec.tsx +152 -0
  427. package/test/component/Tooltip/Tooltip.includeHidden.spec.tsx +79 -0
  428. package/test/component/Tooltip/Tooltip.multipleDataArrays.spec.tsx +165 -0
  429. package/test/component/Tooltip/Tooltip.offset.spec.tsx +113 -0
  430. package/test/component/Tooltip/Tooltip.state.spec.tsx +74 -0
  431. package/test/component/Tooltip/Tooltip.sync.spec.tsx +639 -0
  432. package/test/component/Tooltip/defaultIndex.spec.tsx +227 -0
  433. package/test/component/Tooltip/graphicalItem.formatter.spec.tsx +138 -0
  434. package/test/component/Tooltip/itemSorter.spec.tsx +2815 -0
  435. package/test/component/Tooltip/tooltipEventType.spec.tsx +344 -0
  436. package/test/component/Tooltip/tooltipMouseHoverSelectors.ts +41 -0
  437. package/test/component/Tooltip/tooltipTestHelpers.tsx +162 -0
  438. package/test/component/Tooltip.defaultIndex.spec.tsx +48 -0
  439. package/test/component/Tooltip.hover.spec.tsx +61 -0
  440. package/test/component/Tooltip.item.spec.tsx +54 -0
  441. package/test/component/Tooltip.keyboard.spec.tsx +51 -0
  442. package/test/component/Tooltip.payload.spec.tsx +1716 -0
  443. package/test/component/Tooltip.touch.spec.tsx +39 -0
  444. package/test/component/Tooltip.visibility.spec.tsx +1889 -0
  445. package/test/component/TooltipBoundingBox.spec.tsx +89 -0
  446. package/test/component/responsiveContainerUtils.spec.ts +205 -0
  447. package/test/container/ClipPath.spec.tsx +602 -0
  448. package/test/container/chartDimensions.spec.tsx +368 -0
  449. package/test/context/chartLayoutContext.spec.tsx +378 -0
  450. package/test/helper/ExpectAxisDomain.tsx +27 -0
  451. package/test/helper/assertNotNull.ts +6 -0
  452. package/test/helper/assertZIndexLayerOrder.ts +19 -0
  453. package/test/helper/createSelectorTestCase.tsx +176 -0
  454. package/test/helper/expectAnimatedPieAngles.ts +100 -0
  455. package/test/helper/expectAnimatedPiePaths.ts +78 -0
  456. package/test/helper/expectAreaCurve.ts +15 -0
  457. package/test/helper/expectAxisTicks.ts +48 -0
  458. package/test/helper/expectBars.ts +54 -0
  459. package/test/helper/expectFunctionReturning.ts +58 -0
  460. package/test/helper/expectLabel.ts +32 -0
  461. package/test/helper/expectLastCalledWith.ts +48 -0
  462. package/test/helper/expectLine.ts +20 -0
  463. package/test/helper/expectPieSectors.ts +80 -0
  464. package/test/helper/expectScale.ts +37 -0
  465. package/test/helper/expectScatterPoints.ts +52 -0
  466. package/test/helper/expectStackGroups.ts +144 -0
  467. package/test/helper/mockAxes.ts +22 -0
  468. package/test/helper/mockGetBoundingClientRect.ts +66 -0
  469. package/test/helper/mockHTMLElementProperty.ts +19 -0
  470. package/test/helper/mockTouchingElement.ts +27 -0
  471. package/test/helper/offsetHelpers.ts +19 -0
  472. package/test/helper/parameterizedTestCases.tsx +99 -0
  473. package/test/helper/produceState.ts +32 -0
  474. package/test/helper/render.ts +7 -0
  475. package/test/helper/selectorTestHelpers.tsx +63 -0
  476. package/test/helper/trim.spec.ts +35 -0
  477. package/test/helper/trim.ts +11 -0
  478. package/test/hooks/useActiveTooltipDataPoints.spec.tsx +358 -0
  479. package/test/hooks/useAxisDomain.spec.tsx +361 -0
  480. package/test/hooks/useAxisScale.spec.tsx +283 -0
  481. package/test/hooks/useAxisTicks.spec.tsx +130 -0
  482. package/test/hooks/useOffset.spec.tsx +248 -0
  483. package/test/hooks/useTooltipStateHooks.spec.tsx +109 -0
  484. package/test/polar/Pie/Pie-TwoLevelPieChart.spec.tsx +135 -0
  485. package/test/polar/Pie/Pie.spec.tsx +784 -0
  486. package/test/polar/Pie/Pie.typed.spec.tsx +78 -0
  487. package/test/polar/Pie.animation.spec.tsx +529 -0
  488. package/test/polar/PieWithLegend.animation.spec.tsx +142 -0
  489. package/test/polar/PolarAngleAxis/PolarAngleAxis.events.spec.tsx +76 -0
  490. package/test/polar/PolarAngleAxis/PolarAngleAxis.spec.tsx +2079 -0
  491. package/test/polar/PolarAngleAxis/PolarAngleAxis.typed.spec.tsx +102 -0
  492. package/test/polar/PolarAngleAxis.render.spec.tsx +79 -0
  493. package/test/polar/PolarGrid.render.spec.tsx +75 -0
  494. package/test/polar/PolarGrid.spec.tsx +918 -0
  495. package/test/polar/PolarLegendPerRow.render.spec.tsx +85 -0
  496. package/test/polar/PolarRadiusAxis.events.spec.tsx +65 -0
  497. package/test/polar/PolarRadiusAxis.render.spec.tsx +52 -0
  498. package/test/polar/PolarRadiusAxis.spec.tsx +991 -0
  499. package/test/polar/PolarRadiusAxis.typed.spec.tsx +84 -0
  500. package/test/polar/PolarTooltipLegend.render.spec.tsx +80 -0
  501. package/test/polar/Radar.animation.spec.tsx +570 -0
  502. package/test/polar/Radar.render.spec.tsx +71 -0
  503. package/test/polar/Radar.spec.tsx +265 -0
  504. package/test/polar/Radar.typed.spec.tsx +119 -0
  505. package/test/polar/RadialBar/RadialBar.spec.tsx +1521 -0
  506. package/test/polar/RadialBar/RadialBar.typed.spec.tsx +132 -0
  507. package/test/polar/RadialBar.animation.spec.tsx +375 -0
  508. package/test/polar/RadialBar.render.spec.tsx +66 -0
  509. package/test/polar/RadialBar.stacked.spec.tsx +57 -0
  510. package/test/setup.ts +84 -0
  511. package/test/shape/ActiveShape.spec.tsx +181 -0
  512. package/test/shape/Cross.spec.tsx +60 -0
  513. package/test/shape/Cross.typed.spec.tsx +26 -0
  514. package/test/shape/Curve.spec.tsx +368 -0
  515. package/test/shape/Curve.typed.spec.tsx +69 -0
  516. package/test/shape/Dot.spec.tsx +73 -0
  517. package/test/shape/Dot.typed.spec.tsx +30 -0
  518. package/test/shape/Polygon.spec.tsx +357 -0
  519. package/test/shape/Polygon.typed.spec.tsx +28 -0
  520. package/test/shape/Rectangle.animation.spec.tsx +451 -0
  521. package/test/shape/Rectangle.spec.tsx +68 -0
  522. package/test/shape/Rectangle.typed.spec.tsx +24 -0
  523. package/test/shape/Sector.spec.tsx +76 -0
  524. package/test/shape/Sector.typed.spec.tsx +24 -0
  525. package/test/shape/Symbols.spec.tsx +43 -0
  526. package/test/shape/Symbols.typed.spec.tsx +24 -0
  527. package/test/shape/Trapezoid.spec.tsx +50 -0
  528. package/test/shape/Trapezoid.typed.spec.tsx +24 -0
  529. package/test/shape/__snapshots__/Cross.spec.tsx.snap +62 -0
  530. package/test/shape/__snapshots__/Curve.spec.tsx.snap +460 -0
  531. package/test/shape/__snapshots__/Polygon.spec.tsx.snap +58 -0
  532. package/test/shape/__snapshots__/Rectangle.spec.tsx.snap +117 -0
  533. package/test/shape/__snapshots__/Sector.spec.tsx.snap +71 -0
  534. package/test/shape/__snapshots__/Trapezoid.spec.tsx.snap +64 -0
  535. package/test/state/chartDataSlice.spec.ts +53 -0
  536. package/test/state/externalEventsMiddleware.spec.ts +178 -0
  537. package/test/state/graphicalItemsSlice.spec.ts +92 -0
  538. package/test/state/hooks.spec.tsx +68 -0
  539. package/test/state/legendSlice.spec.ts +44 -0
  540. package/test/state/mouseEventsMiddleware.spec.ts +75 -0
  541. package/test/state/optionsSlice.spec.ts +19 -0
  542. package/test/state/reduxDevtoolsJsonStringifyReplacer.spec.ts +25 -0
  543. package/test/state/referenceElementsSlice.spec.ts +84 -0
  544. package/test/state/selectors/areaSelectors.spec.tsx +77 -0
  545. package/test/state/selectors/axisSelectors.spec.tsx +1418 -0
  546. package/test/state/selectors/barStackSelectors.spec.tsx +752 -0
  547. package/test/state/selectors/brushSelectors.spec.tsx +30 -0
  548. package/test/state/selectors/cartesianAxisSlice.spec.ts +96 -0
  549. package/test/state/selectors/combineNiceTicks.spec.ts +207 -0
  550. package/test/state/selectors/combiners/combineActiveTooltipIndex.spec.ts +61 -0
  551. package/test/state/selectors/combiners/combineAllBarPositions.spec.ts +39 -0
  552. package/test/state/selectors/combiners/combineConfiguredScale.spec.ts +56 -0
  553. package/test/state/selectors/combiners/combineDisplayedStackedData.spec.ts +123 -0
  554. package/test/state/selectors/combiners/combineRealScaleType.spec.ts +80 -0
  555. package/test/state/selectors/containerSelectors.spec.tsx +168 -0
  556. package/test/state/selectors/dataSelectors.spec.tsx +136 -0
  557. package/test/state/selectors/legendSelectors.spec.tsx +113 -0
  558. package/test/state/selectors/lineSelectors.spec.tsx +60 -0
  559. package/test/state/selectors/pieSelectors.spec.tsx +72 -0
  560. package/test/state/selectors/radarSelectors.spec.tsx +496 -0
  561. package/test/state/selectors/rootPropsSelectors.spec.tsx +169 -0
  562. package/test/state/selectors/scatterSelectors.spec.tsx +47 -0
  563. package/test/state/selectors/selectActiveTooltipIndex.spec.tsx +234 -0
  564. package/test/state/selectors/selectAllAxes.spec.tsx +18 -0
  565. package/test/state/selectors/selectAxisDomain.spec.tsx +21 -0
  566. package/test/state/selectors/selectAxisDomainIncludingNiceTicks.spec.tsx +19 -0
  567. package/test/state/selectors/selectAxisRangeWithReverse.spec.tsx +22 -0
  568. package/test/state/selectors/selectAxisScale.spec.tsx +91 -0
  569. package/test/state/selectors/selectBarRectangles.stackOffset.spec.tsx +503 -0
  570. package/test/state/selectors/selectBaseAxis.spec.tsx +56 -0
  571. package/test/state/selectors/selectCartesianItemsSettings.spec.tsx +57 -0
  572. package/test/state/selectors/selectChartOffset.spec.tsx +26 -0
  573. package/test/state/selectors/selectDisplayedData.spec.tsx +282 -0
  574. package/test/state/selectors/selectIsTooltipActive.spec.tsx +231 -0
  575. package/test/state/selectors/selectNumericalDomain.spec.tsx +21 -0
  576. package/test/state/selectors/selectRealScaleType.spec.tsx +19 -0
  577. package/test/state/selectors/selectStackGroups.spec.tsx +322 -0
  578. package/test/state/selectors/selectXAxisPosition.spec.tsx +22 -0
  579. package/test/state/selectors/selectYAxisPosition.spec.tsx +22 -0
  580. package/test/state/selectors/selectors.spec.tsx +1613 -0
  581. package/test/state/throttling.spec.ts +200 -0
  582. package/test/state/zIndexSlice.spec.ts +85 -0
  583. package/test/synchronisation/useChartSynchronisation.spec.tsx +225 -0
  584. package/test/util/BarUtils.spec.ts +39 -0
  585. package/test/util/CartesianUtils/CartesianUtils.spec.ts +261 -0
  586. package/test/util/CartesianUtils/rectWithPoints.spec.ts +48 -0
  587. package/test/util/ChartUtils/ChartUtils.spec.ts +491 -0
  588. package/test/util/ChartUtils/appendOffsetOfLegend.spec.ts +136 -0
  589. package/test/util/ChartUtils/appendOffsetOfLegend.spec.tsx +133 -0
  590. package/test/util/ChartUtils/getCateCoordinateOfLine.spec.ts +83 -0
  591. package/test/util/ChartUtils/getStackedData.spec.ts +416 -0
  592. package/test/util/ChartUtils/truncateByDomain.spec.ts +70 -0
  593. package/test/util/DataUtils.spec.ts +385 -0
  594. package/test/util/DomUtils.spec.tsx +117 -0
  595. package/test/util/FunnelUtils.spec.tsx +70 -0
  596. package/test/util/Global.spec.ts +11 -0
  597. package/test/util/LRUCache.spec.ts +81 -0
  598. package/test/util/LogUtils.spec.ts +45 -0
  599. package/test/util/PolarUtils.spec.ts +66 -0
  600. package/test/util/ReduceCssCalcPrototype.spec.ts +141 -0
  601. package/test/util/ShallowEqual.spec.ts +102 -0
  602. package/test/util/TickUtils.spec.ts +29 -0
  603. package/test/util/axisPropsAreEqual.spec.ts +93 -0
  604. package/test/util/createChartHelpers.spec.tsx +210 -0
  605. package/test/util/cursor/getCursorPoints.spec.ts +136 -0
  606. package/test/util/cursor/getCursorRectangle.spec.ts +50 -0
  607. package/test/util/cursor/getRadialCursorPoints.spec.ts +36 -0
  608. package/test/util/errorValue.spec.ts +69 -0
  609. package/test/util/getEveryNth.spec.ts +39 -0
  610. package/test/util/getRadiusAndStrokeWidthFromDot.spec.ts +51 -0
  611. package/test/util/getRelativeCoordinate.spec.ts +250 -0
  612. package/test/util/getSliced.spec.ts +45 -0
  613. package/test/util/isDomainSpecifiedByUser.spec.ts +207 -0
  614. package/test/util/isWellBehavedNumber.spec.ts +54 -0
  615. package/test/util/payload/getUniqPayload.spec.ts +56 -0
  616. package/test/util/propsAreEqual.spec.ts +75 -0
  617. package/test/util/round.spec.ts +112 -0
  618. package/test/util/scale/arithmetic.spec.ts +61 -0
  619. package/test/util/scale/createCategoricalInverse.spec.ts +84 -0
  620. package/test/util/scale/getNiceTickValues.spec.ts +421 -0
  621. package/test/util/scale/getTickValuesFixedDomain.spec.ts +155 -0
  622. package/test/util/svgPropertiesAndEvents.spec.tsx +206 -0
  623. package/test/util/svgPropertiesNoEvents.spec.tsx +228 -0
  624. package/test/util/tooltip/translate.spec.ts +396 -0
  625. package/test/util/useAnimationId.spec.tsx +59 -0
  626. package/test/util/useElementOffset.spec.tsx +173 -0
  627. package/test/util/usePrefersReducedMotion.spec.ts +54 -0
  628. package/test/util/useUniqueId.spec.ts +99 -0
  629. package/test/utils/diagnostics-allowlist.ts +18 -0
  630. package/test/utils/diagnostics.ts +58 -0
  631. package/test/zIndex/AllZIndexPortals.spec.tsx +83 -0
  632. package/test/zIndex/DefaultZIndexes.spec.ts +80 -0
  633. package/test/zIndex/DynamicZIndex.spec.tsx +102 -0
  634. package/test/zIndex/ZIndexLayer.portalOwner.spec.tsx +125 -0
  635. package/test/zIndex/componentZIndex.spec.tsx +255 -0
  636. package/test/zIndex/getZIndexFromUnknown.spec.ts +51 -0
  637. package/test/zIndex/multiChartZIndexIsolation.spec.tsx +90 -0
  638. package/test/zIndex/zIndexSelectors.spec.ts +172 -0
  639. package/tsconfig.json +11 -0
@@ -0,0 +1,724 @@
1
+ import type { JSX } from "@solidjs/web";
2
+ import type { Element } from "solid-js";
3
+ import type * as d3Scales from "victory-vendor/d3-scale";
4
+ import type { DotProps } from "../shape/Dot";
5
+ import type { ExternalMouseEvents } from "../chart/types";
6
+
7
+ // Minimal seed of recharts 3.8.1 src/util/types.ts (commit 7a23854).
8
+ //
9
+ // The reference `util/types` is a ~1400-line barrel that imports half the
10
+ // codebase (Area, Label, Text, axisSelectors, d3-scale, the public index). We do
11
+ // NOT port it whole — only the geometry/value types the currently-ported units
12
+ // reference, growing this file as later units need more ("declare/stub then
13
+ // backfill", per PORT_ORDER). Definitions are copied faithfully; the sole
14
+ // deviation is `ChartCoordinate`'s `any` fields → `unknown` (this repo bans
15
+ // `any`; the type is `@deprecated` and those fields aren't read structurally by
16
+ // current consumers).
17
+
18
+ export type CartesianLayout = "horizontal" | "vertical";
19
+ export type PolarLayout = "centric" | "radial";
20
+ /**
21
+ * @deprecated use either `CartesianLayout` or `PolarLayout` instead.
22
+ * Mixing both charts families leads to ambiguity in the type system.
23
+ * These two layouts share very few properties, so it is best to keep them separate.
24
+ */
25
+ export type LayoutType = CartesianLayout | PolarLayout;
26
+
27
+ export type AllowInDimension = {
28
+ x?: boolean;
29
+ y?: boolean;
30
+ };
31
+
32
+ export interface Coordinate {
33
+ x: number;
34
+ y: number;
35
+ }
36
+
37
+ export type RectangleCoordinate = {
38
+ x1: number;
39
+ y1: number;
40
+ x2: number;
41
+ y2: number;
42
+ };
43
+
44
+ export type RectanglePosition = {
45
+ x: number;
46
+ y: number;
47
+ width: number;
48
+ height: number;
49
+ };
50
+
51
+ /**
52
+ * Internal offset used everywhere in the chart layout pipeline.
53
+ * We use it internally but let's not expose it to the outside world.
54
+ */
55
+ export type ChartOffsetInternal = {
56
+ top: number;
57
+ bottom: number;
58
+ left: number;
59
+ right: number;
60
+ width: number;
61
+ height: number;
62
+ brushBottom: number;
63
+ };
64
+
65
+ /**
66
+ * @deprecated do not use: too many properties, mixing too many concepts, cartesian and polar together, everything optional.
67
+ * Instead, use either `Coordinate` or `PolarCoordinate`.
68
+ */
69
+ export interface ChartCoordinate extends Coordinate {
70
+ xAxis?: unknown;
71
+ yAxis?: unknown;
72
+ width?: unknown;
73
+ height?: unknown;
74
+ offset?: ChartOffsetInternal;
75
+ angle?: number;
76
+ radius?: number;
77
+ cx?: number;
78
+ cy?: number;
79
+ startAngle?: number;
80
+ endAngle?: number;
81
+ innerRadius?: number;
82
+ outerRadius?: number;
83
+ }
84
+
85
+ export type PolarCoordinate = Coordinate & {
86
+ angle: number;
87
+ startAngle: number;
88
+ endAngle: number;
89
+ clockWise: boolean;
90
+ cx: number;
91
+ cy: number;
92
+ innerRadius: number;
93
+ outerRadius: number;
94
+ radius: number;
95
+ };
96
+
97
+ export const isPolarCoordinate = (c: Coordinate | PolarCoordinate): c is PolarCoordinate => {
98
+ return "radius" in c && "startAngle" in c && "endAngle" in c;
99
+ };
100
+
101
+ export type Size = { width: number; height: number };
102
+
103
+ export type Percent = `${number}%`;
104
+
105
+ export type NonEmptyArray<T> = readonly [T, ...T[]];
106
+
107
+ export type SymbolType = "circle" | "cross" | "diamond" | "square" | "star" | "triangle" | "wye";
108
+
109
+ export type AnimationDuration = number;
110
+
111
+ export interface Margin {
112
+ top: number;
113
+ right: number;
114
+ bottom: number;
115
+ left: number;
116
+ }
117
+
118
+ export interface Padding {
119
+ top: number;
120
+ bottom: number;
121
+ left: number;
122
+ right: number;
123
+ }
124
+
125
+ export type StackOffsetType = "sign" | "expand" | "none" | "wiggle" | "silhouette" | "positive";
126
+
127
+ export interface EventThrottlingProps {
128
+ /** Time interval to throttle events: ms, or 'raf' to use requestAnimationFrame. @defaultValue 'raf' */
129
+ throttleDelay?: number | "raf";
130
+ /** Which events to throttle ('all' for every event; [] for none). @defaultValue ["mousemove","touchmove","pointermove","scroll","wheel"] */
131
+ throttledEvents?: ReadonlyArray<keyof GlobalEventHandlersEventMap> | "all";
132
+ }
133
+
134
+ export type BaseValue = number | "dataMin" | "dataMax";
135
+
136
+ export type TooltipEventType = "axis" | "item";
137
+
138
+ export type TooltipType = "none";
139
+
140
+ export type ChartStyle = Omit<JSX.CSSProperties, "height" | "width"> & {
141
+ width?: number | string;
142
+ height?: number | string;
143
+ };
144
+
145
+ export type LegendType =
146
+ | "circle"
147
+ | "cross"
148
+ | "diamond"
149
+ | "line"
150
+ | "plainline"
151
+ | "rect"
152
+ | "square"
153
+ | "star"
154
+ | "triangle"
155
+ | "wye"
156
+ | "none";
157
+
158
+ /**
159
+ * Seeded subset of recharts' (much larger, generic) CartesianChartProps — the
160
+ * props the chart-container scaffold currently reads. `className` → `class`
161
+ * (the sanctioned deviation). Grows as the chart surface expands.
162
+ */
163
+ export interface CartesianChartProps<DataPointType = unknown> extends ExternalMouseEvents {
164
+ width?: number | Percent;
165
+ height?: number | Percent;
166
+ data?: ReadonlyArray<DataPointType>;
167
+ margin?: Partial<Margin>;
168
+ layout?: LayoutType;
169
+ responsive?: boolean;
170
+ compact?: boolean;
171
+ title?: string;
172
+ desc?: string;
173
+ class?: string;
174
+ style?: ChartStyle;
175
+ cursor?: string;
176
+ id?: string;
177
+ /** ARIA role applied to the chart `<svg>` (overrides the accessibilityLayer default). */
178
+ role?: string;
179
+ /** tabindex applied to the chart `<svg>` (overrides the accessibilityLayer default). */
180
+ tabIndex?: number;
181
+ /** A chart-level dataKey (used by some charts as the implicit series key). */
182
+ dataKey?: DataKey<DataPointType>;
183
+ children?: JSX.Element;
184
+ // Reported into rootProps (UpdatableChartOptions):
185
+ accessibilityLayer?: boolean;
186
+ barCategoryGap?: number | string;
187
+ barGap?: number | string;
188
+ barSize?: number | string;
189
+ maxBarSize?: number;
190
+ stackOffset?: StackOffsetType;
191
+ syncId?: number | string;
192
+ syncMethod?: SyncMethod;
193
+ baseValue?: BaseValue;
194
+ reverseStackOrder?: boolean;
195
+ // Reported into eventSettings:
196
+ throttleDelay?: number | "raf";
197
+ throttledEvents?: ReadonlyArray<keyof GlobalEventHandlersEventMap> | "all";
198
+ }
199
+
200
+ /**
201
+ * Seeded subset of recharts' PolarChartProps (util/types.ts:1637) — the props
202
+ * the polar chart-container scaffold currently reads. Mirrors CartesianChartProps
203
+ * but `layout` is `PolarLayout` and adds the polar geometry props
204
+ * (cx/cy/innerRadius/outerRadius/startAngle/endAngle). `className` → `class`.
205
+ * Grows as the polar surface expands.
206
+ */
207
+ export interface PolarChartProps<DataPointType = unknown> extends ExternalMouseEvents {
208
+ width?: number | Percent;
209
+ height?: number | Percent;
210
+ data?: ReadonlyArray<DataPointType>;
211
+ margin?: Partial<Margin>;
212
+ layout?: PolarLayout;
213
+ responsive?: boolean;
214
+ compact?: boolean;
215
+ title?: string;
216
+ desc?: string;
217
+ class?: string;
218
+ style?: ChartStyle;
219
+ cursor?: string;
220
+ id?: string;
221
+ /** ARIA role applied to the chart `<svg>` (overrides the accessibilityLayer default). */
222
+ role?: string;
223
+ /** tabindex applied to the chart `<svg>` (overrides the accessibilityLayer default). */
224
+ tabIndex?: number;
225
+ /** A chart-level dataKey (used by some charts as the implicit series key). */
226
+ dataKey?: DataKey<DataPointType>;
227
+ children?: JSX.Element;
228
+ // Polar geometry (reported into polarOptions):
229
+ cx?: number | string;
230
+ cy?: number | string;
231
+ startAngle?: number;
232
+ endAngle?: number;
233
+ innerRadius?: number | string;
234
+ outerRadius?: number | string;
235
+ // Reported into rootProps (UpdatableChartOptions):
236
+ accessibilityLayer?: boolean;
237
+ barCategoryGap?: number | string;
238
+ barGap?: number | string;
239
+ barSize?: number | string;
240
+ maxBarSize?: number;
241
+ stackOffset?: StackOffsetType;
242
+ syncId?: number | string;
243
+ syncMethod?: SyncMethod;
244
+ reverseStackOrder?: boolean;
245
+ // Reported into eventSettings:
246
+ throttleDelay?: number | "raf";
247
+ throttledEvents?: ReadonlyArray<keyof GlobalEventHandlersEventMap> | "all";
248
+ }
249
+
250
+ // SyncMethod's canonical definition now lives in synchronisation/types (ported);
251
+ // import it for local use (CartesianChartProps) and re-export so existing
252
+ // consumers keep importing it from util/types. Type-only cyclic import
253
+ // (synchronisation/types imports geometry types back from here) — erased at runtime.
254
+ import type { SyncMethod } from "../synchronisation/types";
255
+ export type { SyncMethod };
256
+
257
+ // Re-export from its canonical home (animation/easing) so consumers can import it
258
+ // from util/types, as the reference does.
259
+ export type { EasingInput } from "../animation/easing";
260
+
261
+ /**
262
+ * @inline
263
+ */
264
+ export interface CartesianViewBox {
265
+ x?: number;
266
+ y?: number;
267
+ width?: number;
268
+ height?: number;
269
+ }
270
+
271
+ interface PolarViewBox {
272
+ cx?: number;
273
+ cy?: number;
274
+ innerRadius?: number;
275
+ outerRadius?: number;
276
+ startAngle?: number;
277
+ endAngle?: number;
278
+ clockWise?: boolean;
279
+ }
280
+
281
+ export type CartesianViewBoxRequired = Required<CartesianViewBox>;
282
+
283
+ export type PolarViewBoxRequired = Required<PolarViewBox>;
284
+
285
+ /**
286
+ * A box shaped like a trapezoid (used by Funnel and by Label positioning). The
287
+ * upper and lower sides can have different widths; `width` is the larger of the
288
+ * two. Ported from recharts util/types.
289
+ */
290
+ export type TrapezoidViewBox = {
291
+ /** The x-coordinate of the upper-left corner of the trapezoid. */
292
+ x: number;
293
+ /** The y-coordinate of the upper side of the trapezoid. */
294
+ y: number;
295
+ /** The width of the upper side. */
296
+ upperWidth: number;
297
+ /** The width of the lower side. */
298
+ lowerWidth: number;
299
+ /** The overall width: `Math.max(upperWidth, lowerWidth)`. */
300
+ width: number;
301
+ /** The height of the trapezoid. */
302
+ height: number;
303
+ };
304
+
305
+ /**
306
+ * @inline
307
+ */
308
+ export type ViewBox = CartesianViewBoxRequired | PolarViewBoxRequired;
309
+
310
+ export interface TickItem {
311
+ value: unknown;
312
+ coordinate: number;
313
+ index: number;
314
+ /**
315
+ * How far this tick is offset from the start of a category band.
316
+ * On axes that do not have bands, this will always be zero.
317
+ *
318
+ * We never read offset internally in Recharts,
319
+ * but it has been part of the external API so let's keep it here for people who do use it.
320
+ */
321
+ offset?: number;
322
+ }
323
+
324
+ export interface CartesianTickItem extends TickItem {
325
+ tickCoord?: number;
326
+ tickSize?: number;
327
+ isShow?: boolean;
328
+ }
329
+
330
+ export interface GeometrySector {
331
+ cx: number;
332
+ cy: number;
333
+ innerRadius: number;
334
+ outerRadius: number;
335
+ startAngle: number;
336
+ endAngle: number;
337
+ }
338
+
339
+ export type GeometrySectorWithCornerRadius = GeometrySector & {
340
+ cornerRadius: number;
341
+ forceCornerRadius: boolean;
342
+ cornerIsExternal: boolean;
343
+ };
344
+
345
+ export type RangeObj = PolarViewBoxRequired & {
346
+ angle: number;
347
+ radius: number;
348
+ };
349
+
350
+ type HTMLElementTarget = Pick<
351
+ HTMLElement,
352
+ "getBoundingClientRect" | "offsetWidth" | "offsetHeight"
353
+ >;
354
+ type SVGElementTarget = Pick<SVGGraphicsElement, "getBoundingClientRect" | "getBBox">;
355
+
356
+ /**
357
+ * Simplified version of the MouseEvent so that we don't have to mock the whole thing in tests.
358
+ * This is meant to represent the React.MouseEvent.
359
+ */
360
+ export interface HTMLMousePointer {
361
+ clientX: number;
362
+ clientY: number;
363
+ currentTarget: HTMLElementTarget;
364
+ }
365
+
366
+ export interface HTMLTouchPointer {
367
+ touches: ArrayLike<Pick<Touch, "clientX" | "clientY">>;
368
+ currentTarget: HTMLElementTarget;
369
+ }
370
+
371
+ /**
372
+ * Simplified version of the MouseEvent for SVG elements.
373
+ * SVG elements use getBBox() to get the intrinsic size instead of offsetWidth/offsetHeight.
374
+ */
375
+ export interface SVGMousePointer {
376
+ clientX: number;
377
+ clientY: number;
378
+ currentTarget: SVGElementTarget;
379
+ }
380
+
381
+ export interface SVGTouchPointer {
382
+ touches: ArrayLike<Pick<Touch, "clientX" | "clientY">>;
383
+ currentTarget: SVGElementTarget;
384
+ }
385
+
386
+ /**
387
+ * Recharts accepts mouse events from both HTML and SVG elements.
388
+ */
389
+ export type MousePointer = HTMLMousePointer | SVGMousePointer;
390
+ export type TouchPointer = HTMLTouchPointer | SVGTouchPointer;
391
+
392
+ /**
393
+ * Coordinates relative to the top-left corner of the active element.
394
+ * Also include scale which means that element that's scaled will return the same coordinates as element that's not scaled.
395
+ */
396
+ export interface RelativePointer {
397
+ relativeX: number;
398
+ relativeY: number;
399
+ }
400
+
401
+ export interface NullableCoordinate {
402
+ x: number | null;
403
+ y: number | null;
404
+ }
405
+
406
+ export type CategoricalDomainItem = number | string | Date;
407
+
408
+ export type CategoricalDomain = ReadonlyArray<CategoricalDomainItem>;
409
+
410
+ /**
411
+ * NumberDomain is an evaluated {@link AxisDomain}.
412
+ * Unlike {@link AxisDomain}, it has no variety - it's a tuple of two number.
413
+ * This is after all the keywords and functions were evaluated and what is left is [min, max].
414
+ *
415
+ * Know that the min, max values are not guaranteed to be nice numbers - values like -Infinity or NaN are possible.
416
+ *
417
+ * There are also `category` axes that have different things than numbers in their domain.
418
+ */
419
+ export type NumberDomain = readonly [min: number, max: number];
420
+
421
+ export type AxisDomainItem =
422
+ // `string & {}` keeps the literal suggestions ("auto"/…) visible in autocomplete
423
+ // without them being redundant constituents of a bare `string`.
424
+ (string & {}) | number | ((d: number) => string | number) | "auto" | "dataMin" | "dataMax";
425
+
426
+ /**
427
+ * The domain of axis.
428
+ * This is the definition
429
+ *
430
+ * Numeric domain is always defined by an array of exactly two values, for the min and the max of the axis.
431
+ * Categorical domain is defined as array of all possible values.
432
+ *
433
+ * Can be specified in many ways:
434
+ * - array of numbers
435
+ * - with special strings like 'dataMin' and 'dataMax'
436
+ * - with special string math like 'dataMin - 100'
437
+ * - with keyword 'auto'
438
+ * - or a function
439
+ * - array of functions
440
+ * - or a combination of the above
441
+ */
442
+ export type AxisDomain =
443
+ | ReadonlyArray<string>
444
+ | ReadonlyArray<number>
445
+ | Readonly<[AxisDomainItem, AxisDomainItem]>
446
+ | (([dataMin, dataMax]: NumberDomain, allowDataOverflow: boolean) => NumberDomain);
447
+
448
+ type DataKeyFunction<DataPointType, DataValueType> = {
449
+ bivarianceHack(obj: DataPointType): DataValueType;
450
+ }["bivarianceHack"];
451
+
452
+ /**
453
+ * Extracts values from data objects — ported from recharts' `TypedDataKey`
454
+ * (util/typedDataKey.ts). Simplifies to: a `string`/`number` key of the data
455
+ * point, or a function `(obj) => value`. The conditional preserves key
456
+ * autocomplete for strongly-typed rows.
457
+ *
458
+ * Deviation from recharts: `DataPointType` defaults to `unknown` (recharts uses
459
+ * `any`, which this repo bans). When the row type is `unknown` the conditional
460
+ * collapses to the loose `string | number | ((obj: unknown) => DataValueType)`
461
+ * form — identical behavior, no `any`. The single place the user's row-typed
462
+ * dataKey is erased to `DataKey<unknown>` (graphical-item registration) is the
463
+ * sanctioned loosening point per AGENTS.md.
464
+ */
465
+ export type TypedDataKey<
466
+ DataPointType = unknown,
467
+ DataValueType = unknown,
468
+ > = unknown extends DataPointType
469
+ ? string | number | DataKeyFunction<DataPointType, DataValueType>
470
+ : string extends keyof DataPointType
471
+ ? string | number | DataKeyFunction<DataPointType, DataValueType>
472
+ :
473
+ | {
474
+ [K in keyof DataPointType]: DataPointType[K] extends DataValueType
475
+ ? K extends string | number
476
+ ? K
477
+ : never
478
+ : never;
479
+ }[keyof DataPointType]
480
+ | (DataPointType extends ReadonlyArray<infer E>
481
+ ? E extends DataValueType
482
+ ? `${number}`
483
+ : never
484
+ : never)
485
+ | DataKeyFunction<DataPointType, DataValueType>;
486
+
487
+ export type DataKey<DataPointType = unknown, DataValueType = unknown> = TypedDataKey<
488
+ DataPointType,
489
+ DataValueType
490
+ >;
491
+
492
+ // ---------------------------------------------------------------------------
493
+ // Axis foundation types (grown from recharts 3.8.1 util/types.ts as the axis
494
+ // vertical lands). Copied faithfully; deviations noted inline.
495
+ // ---------------------------------------------------------------------------
496
+
497
+ export type AxisType = "xAxis" | "yAxis" | "zAxis" | "angleAxis" | "radiusAxis";
498
+
499
+ /**
500
+ * External axis type from props — evaluated to `'number'` | `'category'`
501
+ * internally based on the chart layout before it reaches the store.
502
+ */
503
+ export type AxisDomainTypeInput = "number" | "category" | "auto";
504
+
505
+ /**
506
+ * Individual axes resolve the `'auto'` type to either `'number'` or `'category'`
507
+ * (based on chart layout and axis kind) before storing it.
508
+ */
509
+ export type EvaluatedAxisDomainType = "number" | "category";
510
+
511
+ export type RechartsScaleType =
512
+ | "linear"
513
+ | "pow"
514
+ | "sqrt"
515
+ | "log"
516
+ | "symlog"
517
+ | "identity"
518
+ | "time"
519
+ | "band"
520
+ | "point"
521
+ | "ordinal"
522
+ | "quantile"
523
+ | "quantize"
524
+ | "utc"
525
+ | "sequential"
526
+ | "threshold";
527
+
528
+ /**
529
+ * Extracts values from data objects. Users may instead provide a custom scale
530
+ * function (see {@link CustomScaleDefinition}).
531
+ */
532
+ export type ScaleType = "auto" | RechartsScaleType;
533
+
534
+ /**
535
+ * The `scaleXxx` factory names exported by d3-scale (e.g. `scaleLinear`,
536
+ * `scaleBand`). Derived from the d3-scale module so it always matches what is
537
+ * actually available at runtime.
538
+ */
539
+ export type D3ScaleType = Extract<keyof typeof d3Scales, `scale${string}`>;
540
+
541
+ /**
542
+ * `tick` controls how an axis tick is rendered. recharts' type is
543
+ * `TextProps | ReactElement | ((props: T) => ReactNode) | boolean`; the Solid
544
+ * mapping is:
545
+ * - `ReactElement` (a passed element) → {@link JSX.Element} (`@solidjs/web`).
546
+ * - `((props: T) => ReactNode)` (render function) → `(props: T) => Element`
547
+ * ({@link Element} from `solid-js` is the renderer-neutral `ReactNode` analog).
548
+ * - `boolean` (toggle the default tick): NOT a separate member here, because in
549
+ * Solid the renderable `Element`/`JSX.Element` union already subsumes `boolean`
550
+ * (`tick={true}`/`tick={false}` still typecheck). Listing it would be a
551
+ * redundant constituent.
552
+ * - `TextProps` (props for the default `<Text>` tick): deferred until `<Text>`
553
+ * is ported — it joins this union then. (Not approximated with a loose object
554
+ * bag, which would wrongly accept arbitrary objects.)
555
+ */
556
+ export type TickProp<T> = JSX.Element | ((props: T) => Element);
557
+
558
+ /**
559
+ * The props a CartesianAxis passes to a function-form `tick` renderer
560
+ * (`tick={(props) => <text .../>}`). Mirrors recharts' XAxis/YAxisTickContentProps.
561
+ * Anchor/orientation literals are inlined to keep this in the low-level types module
562
+ * (no import cycle with component/Text or cartesianAxisSlice).
563
+ */
564
+ export interface CartesianTickContentProps {
565
+ x: number;
566
+ y: number;
567
+ payload: {
568
+ coordinate: number;
569
+ value: unknown;
570
+ index: number;
571
+ offset?: number;
572
+ tickCoord?: number;
573
+ isShow?: boolean;
574
+ };
575
+ index: number;
576
+ visibleTicksCount: number;
577
+ class: string;
578
+ fill: string;
579
+ stroke: string;
580
+ textAnchor: "start" | "middle" | "end" | "inherit";
581
+ verticalAnchor: "start" | "middle" | "end";
582
+ orientation: "top" | "bottom" | "left" | "right";
583
+ height: number;
584
+ width: number;
585
+ padding: { top?: number; bottom?: number; left?: number; right?: number } | string;
586
+ name: string | undefined;
587
+ tickFormatter: ((value: unknown, index: number) => string) | undefined;
588
+ angle: number;
589
+ }
590
+
591
+ /**
592
+ * recharts parity names: upstream splits the tick-content props into a base type
593
+ * plus X/Y variants that narrow `orientation`/`padding`. The port keeps ONE merged
594
+ * {@link CartesianTickContentProps}; these aliases re-expose the upstream names
595
+ * (with the X/Y orientation narrowing) for migration-friendly imports.
596
+ */
597
+ export type BaseTickContentProps = Omit<CartesianTickContentProps, "orientation" | "padding">;
598
+
599
+ /** recharts parity name — {@link CartesianTickContentProps} narrowed to an X axis. */
600
+ export type XAxisTickContentProps = BaseTickContentProps & {
601
+ orientation: "top" | "bottom";
602
+ padding: CartesianTickContentProps["padding"];
603
+ };
604
+
605
+ /** recharts parity name — {@link CartesianTickContentProps} narrowed to a Y axis. */
606
+ export type YAxisTickContentProps = BaseTickContentProps & {
607
+ orientation: "left" | "right";
608
+ padding: CartesianTickContentProps["padding"];
609
+ };
610
+
611
+ /**
612
+ * Formats a tick value for display. Deviation: recharts homes this in
613
+ * `cartesian/CartesianAxis`; that component is deferred, so the type lives here
614
+ * (its natural util home) and CartesianAxis can re-export it when ported.
615
+ */
616
+ export type TickFormatter = (value: unknown, index: number) => string;
617
+
618
+ /**
619
+ * 'preserveStart' keeps the left tick on collision and ensures the first tick is shown.
620
+ * 'preserveEnd' keeps the right tick on collision and ensures the last tick is shown.
621
+ * 'preserveStartEnd' keeps the left tick on collision and ensures first and last show.
622
+ * 'equidistantPreserveStart' picks an N so every Nth tick shows without collision.
623
+ * 'equidistantPreserveEnd' picks an N so every Nth tick shows, ensuring the last is visible.
624
+ */
625
+ export type AxisInterval =
626
+ | number
627
+ | "preserveStart"
628
+ | "preserveEnd"
629
+ | "preserveStartEnd"
630
+ | "equidistantPreserveStart"
631
+ | "equidistantPreserveEnd";
632
+
633
+ /**
634
+ * Ticks can be any type when the axis is `category`.
635
+ * Ticks must be numbers when the axis is `number`.
636
+ */
637
+ export type AxisTick = number | string;
638
+
639
+ // ---------------------------------------------------------------------------
640
+ // Dot / active-dot types (for <Line>/<Scatter>/<Area> dots). Deviations from
641
+ // recharts: `any` → `unknown`; `ReactNode` (render-fn return) → {@link Element};
642
+ // `ReactElement<SVGProps>` → {@link JSX.Element}; and recharts'
643
+ // `SVGPropsNoEvents<Omit<DotProps,…>>` is simplified to `DotProps` (our DotProps
644
+ // is already a Solid SVG-attr bag; Solid handles events via delegation).
645
+ // ---------------------------------------------------------------------------
646
+
647
+ export interface DotPoint {
648
+ readonly x: number | null;
649
+ readonly y: number | null;
650
+ readonly value?: unknown;
651
+ readonly payload?: unknown;
652
+ }
653
+
654
+ export type DotItemDotProps = DotProps & {
655
+ points: ReadonlyArray<DotPoint>;
656
+ index: number;
657
+ payload: unknown;
658
+ dataKey: DataKey<unknown> | undefined;
659
+ value: unknown;
660
+ };
661
+
662
+ export type ActiveDotProps = DotProps & {
663
+ payload: unknown;
664
+ index: number;
665
+ dataKey: DataKey<unknown> | undefined;
666
+ cx: number | undefined;
667
+ cy: number | undefined;
668
+ r: number | string | undefined;
669
+ fill: string;
670
+ strokeWidth: number;
671
+ stroke: string;
672
+ value: unknown;
673
+ };
674
+
675
+ // Deviation: recharts also allows a raw `ReactElement<SVGProps>` dot. In Solid a
676
+ // custom dot is passed as a render function (the idiom), and `JSX.Element` is the
677
+ // broad renderable union (it subsumes `boolean` and muddies narrowing), so the
678
+ // raw-element constituent is dropped — `boolean | render-fn | props-object` is
679
+ // cleanly discriminable by `typeof`.
680
+ export type DotType = boolean | ((props: DotItemDotProps) => Element) | Partial<DotProps>;
681
+
682
+ /**
683
+ * Animation metadata forwarded to custom chart shapes (v3.9).
684
+ *
685
+ * These props let a shape react to the current animation state without needing
686
+ * to know how its parent chart component computes the animated geometry.
687
+ *
688
+ * @since 3.9
689
+ */
690
+ export interface ShapeAnimationProps {
691
+ /**
692
+ * Normalized animation progress time in the approximately `[0, 1]` range.
693
+ * 0 = start of animation, 1 = end of animation. It already includes easing,
694
+ * so a custom Bézier curve may push it slightly out of range.
695
+ */
696
+ animationElapsedTime?: number;
697
+ /**
698
+ * Whether the parent chart element is currently animating.
699
+ */
700
+ isAnimating?: boolean;
701
+ /**
702
+ * Whether the current animation pass is the initial entrance animation.
703
+ * Some components have different "first render" and "data update" animations;
704
+ * this tracks which one is running.
705
+ */
706
+ isEntrance?: boolean;
707
+ }
708
+
709
+ /**
710
+ * A customizable shape prop. Deviation: recharts' first constituent is a
711
+ * `ReactElement` (cloned with injected props) — dropped here (same as DotType),
712
+ * since Solid has no cloneElement; a function (render prop), a partial-props
713
+ * object, or a boolean remain. `ElementType` is kept for signature parity.
714
+ */
715
+ export type ActiveShape<
716
+ PropsType = Record<string, unknown>,
717
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
718
+ ElementType = SVGElement,
719
+ > = ((props: PropsType, index?: string | number) => Element) | Partial<PropsType> | boolean;
720
+
721
+ export type ActiveDotType =
722
+ | boolean
723
+ | ((props: ActiveDotProps) => Element)
724
+ | Partial<ActiveDotProps>;