solid-recharts 0.2.1 → 1.0.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 (488) hide show
  1. package/package.json +13 -11
  2. package/src/animation/AnimatedItems.tsx +2 -4
  3. package/src/animation/CSSTransitionAnimate.tsx +41 -39
  4. package/src/animation/JavascriptAnimate.tsx +45 -41
  5. package/src/cartesian/Area.tsx +4 -4
  6. package/src/cartesian/AreaRevealShape.tsx +1 -1
  7. package/src/cartesian/Bar.tsx +33 -21
  8. package/src/cartesian/BarStack.tsx +5 -5
  9. package/src/cartesian/Brush.tsx +19 -15
  10. package/src/cartesian/CartesianAxis.tsx +4 -4
  11. package/src/cartesian/CartesianGrid.tsx +5 -5
  12. package/src/cartesian/ErrorBar.tsx +9 -7
  13. package/src/cartesian/Funnel.tsx +3 -3
  14. package/src/cartesian/GraphicalItemClipPath.tsx +1 -1
  15. package/src/cartesian/Line.tsx +18 -16
  16. package/src/cartesian/LineDrawShape.tsx +14 -13
  17. package/src/cartesian/ReferenceArea.tsx +4 -4
  18. package/src/cartesian/ReferenceDot.tsx +4 -4
  19. package/src/cartesian/ReferenceLine.tsx +4 -4
  20. package/src/cartesian/RenderedTicksReporter.tsx +19 -17
  21. package/src/cartesian/Scatter.tsx +3 -3
  22. package/src/cartesian/XAxis.tsx +1 -1
  23. package/src/cartesian/YAxis.tsx +35 -33
  24. package/src/cartesian/ZAxis.tsx +3 -2
  25. package/src/chart/AreaChart.tsx +1 -1
  26. package/src/chart/BarChart.tsx +1 -1
  27. package/src/chart/CartesianChart.tsx +4 -3
  28. package/src/chart/CategoricalChart.tsx +5 -5
  29. package/src/chart/ComposedChart.tsx +1 -1
  30. package/src/chart/FunnelChart.tsx +1 -1
  31. package/src/chart/LineChart.tsx +1 -1
  32. package/src/chart/PieChart.tsx +4 -3
  33. package/src/chart/PolarChart.tsx +4 -3
  34. package/src/chart/RadarChart.tsx +4 -3
  35. package/src/chart/RadialBarChart.tsx +7 -3
  36. package/src/chart/RechartsWrapper.tsx +14 -24
  37. package/src/chart/Sankey.tsx +9 -6
  38. package/src/chart/ScatterChart.tsx +1 -1
  39. package/src/chart/SunburstChart.tsx +5 -4
  40. package/src/chart/Treemap.tsx +5 -4
  41. package/src/component/ActivePoints.tsx +6 -6
  42. package/src/component/Cell.tsx +23 -5
  43. package/src/component/Cursor.tsx +3 -3
  44. package/src/component/DefaultLegendContent.tsx +8 -6
  45. package/src/component/DefaultTooltipContent.tsx +14 -10
  46. package/src/component/Dots.tsx +5 -5
  47. package/src/component/Label.tsx +13 -10
  48. package/src/component/LabelList.tsx +12 -7
  49. package/src/component/Legend.tsx +26 -21
  50. package/src/component/ResponsiveContainer.tsx +52 -49
  51. package/src/component/Text.tsx +5 -5
  52. package/src/component/Tooltip.tsx +21 -18
  53. package/src/component/TooltipBoundingBox.tsx +18 -16
  54. package/src/component/responsiveContainerUtils.ts +1 -1
  55. package/src/container/ClipPathProvider.tsx +3 -3
  56. package/src/container/Layer.tsx +5 -5
  57. package/src/container/RootSurface.tsx +1 -1
  58. package/src/container/Surface.tsx +5 -6
  59. package/src/context/ErrorBarContext.tsx +2 -2
  60. package/src/context/PanoramaContext.tsx +2 -2
  61. package/src/context/RegisterGraphicalItemId.tsx +4 -2
  62. package/src/context/chartDataContext.tsx +26 -23
  63. package/src/context/chartLayoutContext.tsx +16 -12
  64. package/src/polar/Pie.tsx +13 -12
  65. package/src/polar/PolarAngleAxis.tsx +3 -3
  66. package/src/polar/PolarGrid.tsx +5 -5
  67. package/src/polar/PolarRadiusAxis.tsx +3 -3
  68. package/src/polar/Radar.tsx +3 -3
  69. package/src/polar/RadialBar.tsx +3 -3
  70. package/src/shape/Cross.tsx +5 -5
  71. package/src/shape/Curve.tsx +6 -7
  72. package/src/shape/Dot.tsx +4 -4
  73. package/src/shape/Polygon.tsx +5 -5
  74. package/src/shape/Rectangle.tsx +22 -20
  75. package/src/shape/Sector.tsx +5 -5
  76. package/src/shape/Symbols.tsx +5 -5
  77. package/src/shape/Trapezoid.tsx +29 -27
  78. package/src/state/RechartsStoreProvider.tsx +5 -3
  79. package/src/state/ReportChartProps.tsx +8 -6
  80. package/src/state/ReportEventSettings.tsx +8 -6
  81. package/src/state/ReportMainChartProps.tsx +11 -9
  82. package/src/state/ReportPolarOptions.tsx +15 -13
  83. package/src/state/SetLegendPayload.ts +1 -1
  84. package/src/state/SetTooltipEntrySettings.tsx +1 -1
  85. package/src/state/brushSlice.ts +10 -8
  86. package/src/state/cartesianAxisSlice.ts +46 -38
  87. package/src/state/chartDataSlice.ts +29 -23
  88. package/src/state/errorBarSlice.ts +22 -16
  89. package/src/state/eventSettingsSlice.ts +11 -9
  90. package/src/state/graphicalItemsSlice.ts +17 -13
  91. package/src/state/layoutSlice.ts +27 -19
  92. package/src/state/legendSlice.ts +24 -18
  93. package/src/state/optionsSlice.ts +8 -6
  94. package/src/state/polarAxisSlice.ts +21 -13
  95. package/src/state/polarOptionsSlice.ts +16 -14
  96. package/src/state/referenceElementsSlice.ts +25 -19
  97. package/src/state/registerInStore.ts +15 -13
  98. package/src/state/renderedTicksSlice.ts +11 -7
  99. package/src/state/rootPropsSlice.ts +16 -14
  100. package/src/state/tooltipSlice.ts +115 -95
  101. package/src/state/unregisterOnCleanup.ts +5 -20
  102. package/src/state/zIndexSlice.ts +50 -42
  103. package/src/synchronisation/useChartSynchronisation.tsx +213 -217
  104. package/src/util/ActiveShapeUtils.tsx +2 -2
  105. package/src/util/BarUtils.tsx +5 -3
  106. package/src/util/DirectPortal.tsx +107 -0
  107. package/src/util/FunnelUtils.tsx +1 -1
  108. package/src/util/RadialBarUtils.tsx +4 -3
  109. package/src/util/createCartesianCharts.tsx +1 -1
  110. package/src/util/createPolarCharts.tsx +1 -1
  111. package/src/util/svgPropertiesAndEvents.ts +1 -1
  112. package/src/util/tooltip/translate.ts +2 -2
  113. package/src/util/types.ts +2 -2
  114. package/src/zIndex/ZIndexLayer.tsx +39 -68
  115. package/src/zIndex/ZIndexPortal.tsx +29 -25
  116. package/test/_data.ts +0 -408
  117. package/test/animation/AnimationController.typed.spec.ts +0 -53
  118. package/test/animation/AnimationControllerImpl.spec.ts +0 -271
  119. package/test/animation/CSSTransitionAnimate.timing.spec.tsx +0 -473
  120. package/test/animation/JavascriptAnimate.spec.tsx +0 -62
  121. package/test/animation/RechartsAnimation.spec.ts +0 -636
  122. package/test/animation/easing.spec.ts +0 -218
  123. package/test/animation/legacyAnimationLengthChange.spec.tsx +0 -803
  124. package/test/animation/matchBy.spec.ts +0 -467
  125. package/test/animation/mockAnimationController.ts +0 -40
  126. package/test/animation/mockControllerAnimationManager.ts +0 -143
  127. package/test/animation/mockTimeoutController.ts +0 -114
  128. package/test/animation/timeoutController.spec.ts +0 -138
  129. package/test/animation/useAnimationStartSnapshot.spec.ts +0 -147
  130. package/test/animation/util.spec.ts +0 -28
  131. package/test/cartesian/Area.animation.spec.tsx +0 -363
  132. package/test/cartesian/Area.range.spec.tsx +0 -54
  133. package/test/cartesian/Area.spec.tsx +0 -1202
  134. package/test/cartesian/Area.stacked.render.spec.tsx +0 -69
  135. package/test/cartesian/Area.typed.spec.tsx +0 -209
  136. package/test/cartesian/Axis.integration.spec.tsx +0 -158
  137. package/test/cartesian/Bar/Bar.csstransition.spec.tsx +0 -299
  138. package/test/cartesian/Bar/Bar.spec.tsx +0 -2314
  139. package/test/cartesian/Bar/Bar.typed.spec.tsx +0 -192
  140. package/test/cartesian/Bar.animation.spec.tsx +0 -426
  141. package/test/cartesian/Bar.stackDomain.spec.tsx +0 -66
  142. package/test/cartesian/Bar.stacked.render.spec.tsx +0 -53
  143. package/test/cartesian/Bar.truncateByDomain.spec.tsx +0 -237
  144. package/test/cartesian/Bar.zeroDimensionFiltering.spec.tsx +0 -336
  145. package/test/cartesian/BarStack.spec.tsx +0 -91
  146. package/test/cartesian/Brush.keyboard.spec.tsx +0 -88
  147. package/test/cartesian/Brush.panorama.spec.tsx +0 -41
  148. package/test/cartesian/Brush.props.spec.tsx +0 -63
  149. package/test/cartesian/Brush.render.spec.tsx +0 -117
  150. package/test/cartesian/Brush.spec.tsx +0 -522
  151. package/test/cartesian/Brush.stacked.spec.tsx +0 -221
  152. package/test/cartesian/CartesianAxis.render.spec.tsx +0 -50
  153. package/test/cartesian/CartesianAxis.spec.tsx +0 -396
  154. package/test/cartesian/CartesianGrid.render.spec.tsx +0 -39
  155. package/test/cartesian/CartesianGrid.spec.tsx +0 -2103
  156. package/test/cartesian/ErrorBar.render.spec.tsx +0 -69
  157. package/test/cartesian/ErrorBar.spec.tsx +0 -2414
  158. package/test/cartesian/Funnel.animation.spec.tsx +0 -241
  159. package/test/cartesian/Funnel.spec.tsx +0 -226
  160. package/test/cartesian/Funnel.typed.spec.tsx +0 -221
  161. package/test/cartesian/GraphicalItemClipPath.scale-behavior.spec.tsx +0 -627
  162. package/test/cartesian/GraphicalItemClipPath.spec.tsx +0 -427
  163. package/test/cartesian/Line.animation.spec.tsx +0 -643
  164. package/test/cartesian/Line.sparseAnimationPath.spec.tsx +0 -98
  165. package/test/cartesian/Line.spec.tsx +0 -471
  166. package/test/cartesian/Line.typed.spec.tsx +0 -152
  167. package/test/cartesian/ReferenceArea.render.spec.tsx +0 -63
  168. package/test/cartesian/ReferenceArea.spec.tsx +0 -663
  169. package/test/cartesian/ReferenceArea.typed.spec.tsx +0 -74
  170. package/test/cartesian/ReferenceDot.render.spec.tsx +0 -55
  171. package/test/cartesian/ReferenceDot.spec.tsx +0 -462
  172. package/test/cartesian/ReferenceDot.typed.spec.tsx +0 -76
  173. package/test/cartesian/ReferenceLine/ReferenceLine.panorama.spec.tsx +0 -184
  174. package/test/cartesian/ReferenceLine/ReferenceLine.spec.tsx +0 -744
  175. package/test/cartesian/ReferenceLine/ReferenceLine.typed.spec.tsx +0 -74
  176. package/test/cartesian/ReferenceLine/getEndPoints.spec.ts +0 -399
  177. package/test/cartesian/ReferenceLine.render.spec.tsx +0 -134
  178. package/test/cartesian/Scatter.animation.spec.tsx +0 -381
  179. package/test/cartesian/Scatter.render.spec.tsx +0 -61
  180. package/test/cartesian/Scatter.spec.tsx +0 -406
  181. package/test/cartesian/Scatter.typed.spec.tsx +0 -153
  182. package/test/cartesian/XAxis/XAxis.barSize.spec.tsx +0 -336
  183. package/test/cartesian/XAxis/XAxis.brush.spec.tsx +0 -266
  184. package/test/cartesian/XAxis/XAxis.categorydomain.spec.tsx +0 -872
  185. package/test/cartesian/XAxis/XAxis.dataKey.spec.tsx +0 -86
  186. package/test/cartesian/XAxis/XAxis.datatypes.spec.tsx +0 -127
  187. package/test/cartesian/XAxis/XAxis.hide.spec.tsx +0 -106
  188. package/test/cartesian/XAxis/XAxis.multiaxis.spec.tsx +0 -336
  189. package/test/cartesian/XAxis/XAxis.numberdomain.spec.tsx +0 -1466
  190. package/test/cartesian/XAxis/XAxis.padding.spec.tsx +0 -758
  191. package/test/cartesian/XAxis/XAxis.padding_clip.spec.tsx +0 -65
  192. package/test/cartesian/XAxis/XAxis.state.spec.tsx +0 -355
  193. package/test/cartesian/XAxis/XAxis.tick.spec.tsx +0 -493
  194. package/test/cartesian/XAxis/XAxis.timescale.spec.tsx +0 -233
  195. package/test/cartesian/XAxis/XAxis.type.spec.tsx +0 -107
  196. package/test/cartesian/XAxis/XAxis.typed.spec.tsx +0 -102
  197. package/test/cartesian/XAxis/XAxis.vertical.spec.tsx +0 -265
  198. package/test/cartesian/XAxis.tickFormatter.spec.tsx +0 -54
  199. package/test/cartesian/YAxis/YAxis.7362.derivedDomain.spec.tsx +0 -230
  200. package/test/cartesian/YAxis/YAxis.7362.spec.tsx +0 -104
  201. package/test/cartesian/YAxis/YAxis.interval-zero.spec.tsx +0 -88
  202. package/test/cartesian/YAxis/YAxis.label.spec.tsx +0 -219
  203. package/test/cartesian/YAxis/YAxis.spec.tsx +0 -1595
  204. package/test/cartesian/YAxis/YAxis.tick.spec.tsx +0 -428
  205. package/test/cartesian/YAxis/YAxis.tickFormatter.spec.tsx +0 -54
  206. package/test/cartesian/YAxis/YAxis.ticks.spec.tsx +0 -263
  207. package/test/cartesian/YAxis/YAxis.type.spec.tsx +0 -107
  208. package/test/cartesian/YAxis/YAxis.typed.spec.tsx +0 -102
  209. package/test/cartesian/ZAxis.spec.tsx +0 -300
  210. package/test/cartesian/ZAxis.typed.spec.tsx +0 -33
  211. package/test/cartesian/__snapshots__/Brush.spec.tsx.snap +0 -5
  212. package/test/cartesian/axisLineAndStroke.spec.tsx +0 -72
  213. package/test/cartesian/getCartesianPosition.spec.ts +0 -907
  214. package/test/cartesian/getEquidistantTicks.spec.ts +0 -88
  215. package/test/cartesian/getTicks.spec.ts +0 -378
  216. package/test/cartesian/miscFeatureGaps.spec.tsx +0 -89
  217. package/test/cartesian/useAnimatedLineLength.spec.ts +0 -168
  218. package/test/chart/AccessibilityLayer.spec.tsx +0 -569
  219. package/test/chart/AccessibilityScans.spec.tsx +0 -286
  220. package/test/chart/AreaChart.spec.tsx +0 -409
  221. package/test/chart/AreaChart.stacked.spec.tsx +0 -1407
  222. package/test/chart/AreaChart.typed.spec.tsx +0 -39
  223. package/test/chart/BarChart.spec.tsx +0 -3719
  224. package/test/chart/BarChart.typed.spec.tsx +0 -60
  225. package/test/chart/CategoricalChart.spec.tsx +0 -255
  226. package/test/chart/ComposedChart.spec.tsx +0 -199
  227. package/test/chart/ComposedChart.typed.spec.tsx +0 -39
  228. package/test/chart/FunnelChart.spec.tsx +0 -215
  229. package/test/chart/FunnelChart.typed.spec.tsx +0 -39
  230. package/test/chart/LineChart.multiseries.spec.tsx +0 -50
  231. package/test/chart/LineChart.smoke.spec.tsx +0 -50
  232. package/test/chart/LineChart.spec.tsx +0 -930
  233. package/test/chart/LineChart.typed.spec.tsx +0 -39
  234. package/test/chart/NicheChartTooltip.spec.tsx +0 -81
  235. package/test/chart/PieChart.spec.tsx +0 -793
  236. package/test/chart/PieChart.typed.spec.tsx +0 -39
  237. package/test/chart/RadarChart.spec.tsx +0 -530
  238. package/test/chart/RadarChart.typed.spec.tsx +0 -39
  239. package/test/chart/RadialBarChart.5966.spec.tsx +0 -48
  240. package/test/chart/RadialBarChart.spec.tsx +0 -679
  241. package/test/chart/RadialBarChart.typed.spec.tsx +0 -39
  242. package/test/chart/RechartsWrapper.spec.tsx +0 -83
  243. package/test/chart/Sankey.content.spec.tsx +0 -46
  244. package/test/chart/Sankey.spec.tsx +0 -952
  245. package/test/chart/Sankey.typed.spec.tsx +0 -29
  246. package/test/chart/ScatterChart.spec.tsx +0 -2613
  247. package/test/chart/ScatterChart.typed.spec.tsx +0 -39
  248. package/test/chart/SunburstChart.spec.tsx +0 -146
  249. package/test/chart/Treemap.animation.spec.tsx +0 -52
  250. package/test/chart/Treemap.spec.tsx +0 -1003
  251. package/test/chart/Treemap.typed.spec.tsx +0 -26
  252. package/test/chart/chartEvents.spec.tsx +0 -127
  253. package/test/chart/responsive.spec.tsx +0 -620
  254. package/test/component/Cell.render.spec.tsx +0 -155
  255. package/test/component/Cell.spec.tsx +0 -12
  256. package/test/component/Cursor.spec.tsx +0 -186
  257. package/test/component/DefaultTooltipContent.spec.tsx +0 -102
  258. package/test/component/Label.render.spec.tsx +0 -63
  259. package/test/component/Label.spec.tsx +0 -686
  260. package/test/component/Label.typed.spec.tsx +0 -46
  261. package/test/component/LabelList.spec.tsx +0 -188
  262. package/test/component/Legend.itemSorter.spec.tsx +0 -704
  263. package/test/component/Legend.render.spec.tsx +0 -92
  264. package/test/component/Legend.spec.tsx +0 -2213
  265. package/test/component/Legend.typed.spec.tsx +0 -22
  266. package/test/component/ResponsiveContainer.spec.tsx +0 -523
  267. package/test/component/ResponsiveContainerDataTest.spec.tsx +0 -51
  268. package/test/component/Text.spec.tsx +0 -415
  269. package/test/component/Text.typed.spec.tsx +0 -46
  270. package/test/component/Tooltip/ActiveDot.spec.tsx +0 -370
  271. package/test/component/Tooltip/Tooltip.animation.spec.tsx +0 -209
  272. package/test/component/Tooltip/Tooltip.content.spec.tsx +0 -128
  273. package/test/component/Tooltip/Tooltip.formatter.spec.tsx +0 -152
  274. package/test/component/Tooltip/Tooltip.includeHidden.spec.tsx +0 -79
  275. package/test/component/Tooltip/Tooltip.multipleDataArrays.spec.tsx +0 -165
  276. package/test/component/Tooltip/Tooltip.offset.spec.tsx +0 -113
  277. package/test/component/Tooltip/Tooltip.state.spec.tsx +0 -74
  278. package/test/component/Tooltip/Tooltip.sync.spec.tsx +0 -639
  279. package/test/component/Tooltip/defaultIndex.spec.tsx +0 -227
  280. package/test/component/Tooltip/graphicalItem.formatter.spec.tsx +0 -138
  281. package/test/component/Tooltip/itemSorter.spec.tsx +0 -2815
  282. package/test/component/Tooltip/tooltipEventType.spec.tsx +0 -344
  283. package/test/component/Tooltip/tooltipMouseHoverSelectors.ts +0 -41
  284. package/test/component/Tooltip/tooltipTestHelpers.tsx +0 -162
  285. package/test/component/Tooltip.defaultIndex.spec.tsx +0 -48
  286. package/test/component/Tooltip.hover.spec.tsx +0 -61
  287. package/test/component/Tooltip.item.spec.tsx +0 -54
  288. package/test/component/Tooltip.keyboard.spec.tsx +0 -51
  289. package/test/component/Tooltip.payload.spec.tsx +0 -1716
  290. package/test/component/Tooltip.touch.spec.tsx +0 -39
  291. package/test/component/Tooltip.visibility.spec.tsx +0 -1889
  292. package/test/component/TooltipBoundingBox.spec.tsx +0 -89
  293. package/test/component/responsiveContainerUtils.spec.ts +0 -205
  294. package/test/container/ClipPath.spec.tsx +0 -602
  295. package/test/container/chartDimensions.spec.tsx +0 -368
  296. package/test/context/chartLayoutContext.spec.tsx +0 -378
  297. package/test/helper/ExpectAxisDomain.tsx +0 -27
  298. package/test/helper/assertNotNull.ts +0 -6
  299. package/test/helper/assertZIndexLayerOrder.ts +0 -19
  300. package/test/helper/createSelectorTestCase.tsx +0 -176
  301. package/test/helper/expectAnimatedPieAngles.ts +0 -100
  302. package/test/helper/expectAnimatedPiePaths.ts +0 -78
  303. package/test/helper/expectAreaCurve.ts +0 -15
  304. package/test/helper/expectAxisTicks.ts +0 -48
  305. package/test/helper/expectBars.ts +0 -54
  306. package/test/helper/expectFunctionReturning.ts +0 -58
  307. package/test/helper/expectLabel.ts +0 -32
  308. package/test/helper/expectLastCalledWith.ts +0 -48
  309. package/test/helper/expectLine.ts +0 -20
  310. package/test/helper/expectPieSectors.ts +0 -80
  311. package/test/helper/expectScale.ts +0 -37
  312. package/test/helper/expectScatterPoints.ts +0 -52
  313. package/test/helper/expectStackGroups.ts +0 -144
  314. package/test/helper/mockAxes.ts +0 -22
  315. package/test/helper/mockGetBoundingClientRect.ts +0 -66
  316. package/test/helper/mockHTMLElementProperty.ts +0 -19
  317. package/test/helper/mockTouchingElement.ts +0 -27
  318. package/test/helper/offsetHelpers.ts +0 -19
  319. package/test/helper/parameterizedTestCases.tsx +0 -99
  320. package/test/helper/produceState.ts +0 -32
  321. package/test/helper/selectorTestHelpers.tsx +0 -63
  322. package/test/helper/trim.spec.ts +0 -35
  323. package/test/helper/trim.ts +0 -11
  324. package/test/hooks/useActiveTooltipDataPoints.spec.tsx +0 -358
  325. package/test/hooks/useAxisDomain.spec.tsx +0 -361
  326. package/test/hooks/useAxisScale.spec.tsx +0 -283
  327. package/test/hooks/useAxisTicks.spec.tsx +0 -130
  328. package/test/hooks/useOffset.spec.tsx +0 -248
  329. package/test/hooks/useTooltipStateHooks.spec.tsx +0 -109
  330. package/test/polar/Pie/Pie-TwoLevelPieChart.spec.tsx +0 -135
  331. package/test/polar/Pie/Pie.spec.tsx +0 -784
  332. package/test/polar/Pie/Pie.typed.spec.tsx +0 -78
  333. package/test/polar/Pie.animation.spec.tsx +0 -529
  334. package/test/polar/PieWithLegend.animation.spec.tsx +0 -142
  335. package/test/polar/PolarAngleAxis/PolarAngleAxis.events.spec.tsx +0 -76
  336. package/test/polar/PolarAngleAxis/PolarAngleAxis.spec.tsx +0 -2079
  337. package/test/polar/PolarAngleAxis/PolarAngleAxis.typed.spec.tsx +0 -102
  338. package/test/polar/PolarAngleAxis.render.spec.tsx +0 -79
  339. package/test/polar/PolarGrid.render.spec.tsx +0 -75
  340. package/test/polar/PolarGrid.spec.tsx +0 -918
  341. package/test/polar/PolarLegendPerRow.render.spec.tsx +0 -85
  342. package/test/polar/PolarRadiusAxis.events.spec.tsx +0 -65
  343. package/test/polar/PolarRadiusAxis.render.spec.tsx +0 -52
  344. package/test/polar/PolarRadiusAxis.spec.tsx +0 -991
  345. package/test/polar/PolarRadiusAxis.typed.spec.tsx +0 -84
  346. package/test/polar/PolarTooltipLegend.render.spec.tsx +0 -80
  347. package/test/polar/Radar.animation.spec.tsx +0 -570
  348. package/test/polar/Radar.render.spec.tsx +0 -71
  349. package/test/polar/Radar.spec.tsx +0 -265
  350. package/test/polar/Radar.typed.spec.tsx +0 -119
  351. package/test/polar/RadialBar/RadialBar.spec.tsx +0 -1521
  352. package/test/polar/RadialBar/RadialBar.typed.spec.tsx +0 -132
  353. package/test/polar/RadialBar.animation.spec.tsx +0 -375
  354. package/test/polar/RadialBar.render.spec.tsx +0 -66
  355. package/test/polar/RadialBar.stacked.spec.tsx +0 -57
  356. package/test/setup.ts +0 -84
  357. package/test/shape/ActiveShape.spec.tsx +0 -181
  358. package/test/shape/Cross.spec.tsx +0 -60
  359. package/test/shape/Cross.typed.spec.tsx +0 -26
  360. package/test/shape/Curve.spec.tsx +0 -368
  361. package/test/shape/Curve.typed.spec.tsx +0 -69
  362. package/test/shape/Dot.spec.tsx +0 -73
  363. package/test/shape/Dot.typed.spec.tsx +0 -30
  364. package/test/shape/Polygon.spec.tsx +0 -357
  365. package/test/shape/Polygon.typed.spec.tsx +0 -28
  366. package/test/shape/Rectangle.animation.spec.tsx +0 -451
  367. package/test/shape/Rectangle.spec.tsx +0 -68
  368. package/test/shape/Rectangle.typed.spec.tsx +0 -24
  369. package/test/shape/Sector.spec.tsx +0 -76
  370. package/test/shape/Sector.typed.spec.tsx +0 -24
  371. package/test/shape/Symbols.spec.tsx +0 -43
  372. package/test/shape/Symbols.typed.spec.tsx +0 -24
  373. package/test/shape/Trapezoid.spec.tsx +0 -50
  374. package/test/shape/Trapezoid.typed.spec.tsx +0 -24
  375. package/test/shape/__snapshots__/Cross.spec.tsx.snap +0 -62
  376. package/test/shape/__snapshots__/Curve.spec.tsx.snap +0 -460
  377. package/test/shape/__snapshots__/Polygon.spec.tsx.snap +0 -58
  378. package/test/shape/__snapshots__/Rectangle.spec.tsx.snap +0 -117
  379. package/test/shape/__snapshots__/Sector.spec.tsx.snap +0 -71
  380. package/test/shape/__snapshots__/Trapezoid.spec.tsx.snap +0 -64
  381. package/test/state/chartDataSlice.spec.ts +0 -53
  382. package/test/state/createCollectionActions.spec.ts +0 -87
  383. package/test/state/createSelector.spec.ts +0 -158
  384. package/test/state/externalEventsMiddleware.spec.ts +0 -178
  385. package/test/state/graphicalItemsSlice.spec.ts +0 -92
  386. package/test/state/hooks.spec.tsx +0 -68
  387. package/test/state/legendSlice.spec.ts +0 -44
  388. package/test/state/mouseEventsMiddleware.spec.ts +0 -75
  389. package/test/state/optionsSlice.spec.ts +0 -19
  390. package/test/state/referenceElementsSlice.spec.ts +0 -84
  391. package/test/state/registerInStore.spec.tsx +0 -101
  392. package/test/state/selectors/areaSelectors.spec.tsx +0 -77
  393. package/test/state/selectors/axisSelectors.spec.tsx +0 -1418
  394. package/test/state/selectors/barStackSelectors.spec.tsx +0 -752
  395. package/test/state/selectors/brushSelectors.spec.tsx +0 -30
  396. package/test/state/selectors/cartesianAxisSlice.spec.ts +0 -96
  397. package/test/state/selectors/combineNiceTicks.spec.ts +0 -207
  398. package/test/state/selectors/combiners/combineActiveTooltipIndex.spec.ts +0 -61
  399. package/test/state/selectors/combiners/combineAllBarPositions.spec.ts +0 -39
  400. package/test/state/selectors/combiners/combineConfiguredScale.spec.ts +0 -56
  401. package/test/state/selectors/combiners/combineDisplayedStackedData.spec.ts +0 -123
  402. package/test/state/selectors/combiners/combineRealScaleType.spec.ts +0 -80
  403. package/test/state/selectors/containerSelectors.spec.tsx +0 -168
  404. package/test/state/selectors/dataSelectors.spec.tsx +0 -136
  405. package/test/state/selectors/legendSelectors.spec.tsx +0 -113
  406. package/test/state/selectors/lineSelectors.spec.tsx +0 -60
  407. package/test/state/selectors/pieSelectors.spec.tsx +0 -72
  408. package/test/state/selectors/radarSelectors.spec.tsx +0 -496
  409. package/test/state/selectors/rootPropsSelectors.spec.tsx +0 -169
  410. package/test/state/selectors/scatterSelectors.spec.tsx +0 -47
  411. package/test/state/selectors/selectActiveTooltipIndex.spec.tsx +0 -234
  412. package/test/state/selectors/selectAllAxes.spec.tsx +0 -18
  413. package/test/state/selectors/selectAxisDomain.spec.tsx +0 -21
  414. package/test/state/selectors/selectAxisDomainIncludingNiceTicks.spec.tsx +0 -19
  415. package/test/state/selectors/selectAxisRangeWithReverse.spec.tsx +0 -22
  416. package/test/state/selectors/selectAxisScale.spec.tsx +0 -91
  417. package/test/state/selectors/selectBarRectangles.stackOffset.spec.tsx +0 -503
  418. package/test/state/selectors/selectBaseAxis.spec.tsx +0 -56
  419. package/test/state/selectors/selectCartesianItemsSettings.spec.tsx +0 -57
  420. package/test/state/selectors/selectChartOffset.spec.tsx +0 -26
  421. package/test/state/selectors/selectDisplayedData.spec.tsx +0 -282
  422. package/test/state/selectors/selectIsTooltipActive.spec.tsx +0 -231
  423. package/test/state/selectors/selectNumericalDomain.spec.tsx +0 -21
  424. package/test/state/selectors/selectRealScaleType.spec.tsx +0 -19
  425. package/test/state/selectors/selectStackGroups.spec.tsx +0 -322
  426. package/test/state/selectors/selectXAxisPosition.spec.tsx +0 -22
  427. package/test/state/selectors/selectYAxisPosition.spec.tsx +0 -22
  428. package/test/state/selectors/selectorMemoization.spec.tsx +0 -136
  429. package/test/state/selectors/selectors.spec.tsx +0 -1613
  430. package/test/state/throttling.spec.ts +0 -200
  431. package/test/state/zIndexSlice.spec.ts +0 -85
  432. package/test/synchronisation/useChartSynchronisation.spec.tsx +0 -225
  433. package/test/util/BarUtils.spec.ts +0 -39
  434. package/test/util/CartesianUtils/CartesianUtils.spec.ts +0 -261
  435. package/test/util/CartesianUtils/rectWithPoints.spec.ts +0 -48
  436. package/test/util/ChartUtils/ChartUtils.spec.ts +0 -491
  437. package/test/util/ChartUtils/appendOffsetOfLegend.spec.ts +0 -136
  438. package/test/util/ChartUtils/appendOffsetOfLegend.spec.tsx +0 -133
  439. package/test/util/ChartUtils/getCateCoordinateOfLine.spec.ts +0 -97
  440. package/test/util/ChartUtils/getStackedData.spec.ts +0 -416
  441. package/test/util/ChartUtils/truncateByDomain.spec.ts +0 -70
  442. package/test/util/DataUtils.spec.ts +0 -385
  443. package/test/util/DomUtils.spec.tsx +0 -117
  444. package/test/util/FunnelUtils.spec.tsx +0 -70
  445. package/test/util/Global.spec.ts +0 -11
  446. package/test/util/LRUCache.spec.ts +0 -81
  447. package/test/util/LogUtils.spec.ts +0 -45
  448. package/test/util/PolarUtils.spec.ts +0 -66
  449. package/test/util/ReduceCssCalcPrototype.spec.ts +0 -141
  450. package/test/util/ShallowEqual.spec.ts +0 -102
  451. package/test/util/TickUtils.spec.ts +0 -29
  452. package/test/util/createChartHelpers.spec.tsx +0 -210
  453. package/test/util/cursor/getCursorPoints.spec.ts +0 -136
  454. package/test/util/cursor/getCursorRectangle.spec.ts +0 -50
  455. package/test/util/cursor/getRadialCursorPoints.spec.ts +0 -36
  456. package/test/util/errorValue.spec.ts +0 -69
  457. package/test/util/getEveryNth.spec.ts +0 -39
  458. package/test/util/getRadiusAndStrokeWidthFromDot.spec.ts +0 -51
  459. package/test/util/getRelativeCoordinate.spec.ts +0 -250
  460. package/test/util/getSliced.spec.ts +0 -45
  461. package/test/util/isDomainSpecifiedByUser.spec.ts +0 -207
  462. package/test/util/isWellBehavedNumber.spec.ts +0 -54
  463. package/test/util/payload/getUniqPayload.spec.ts +0 -56
  464. package/test/util/propsAreEqual.spec.ts +0 -75
  465. package/test/util/round.spec.ts +0 -112
  466. package/test/util/scale/arithmetic.spec.ts +0 -61
  467. package/test/util/scale/createCategoricalInverse.spec.ts +0 -84
  468. package/test/util/scale/getNiceTickValues.spec.ts +0 -421
  469. package/test/util/scale/getTickValuesFixedDomain.spec.ts +0 -155
  470. package/test/util/svgPropertiesAndEvents.spec.tsx +0 -206
  471. package/test/util/svgPropertiesNoEvents.spec.tsx +0 -228
  472. package/test/util/tooltip/translate.spec.ts +0 -396
  473. package/test/util/useAnimationId.spec.tsx +0 -59
  474. package/test/util/useElementOffset.spec.tsx +0 -173
  475. package/test/util/usePrefersReducedMotion.spec.ts +0 -54
  476. package/test/util/useUniqueId.spec.ts +0 -99
  477. package/test/utils/diagnostics-allowlist.ts +0 -18
  478. package/test/utils/diagnostics.ts +0 -58
  479. package/test/zIndex/AllZIndexPortals.spec.tsx +0 -83
  480. package/test/zIndex/DefaultZIndexes.spec.ts +0 -80
  481. package/test/zIndex/DynamicZIndex.spec.tsx +0 -102
  482. package/test/zIndex/ZIndexLayer.portalOwner.spec.tsx +0 -125
  483. package/test/zIndex/componentZIndex.spec.tsx +0 -255
  484. package/test/zIndex/getZIndexFromUnknown.spec.ts +0 -51
  485. package/test/zIndex/multiChartZIndexIsolation.spec.tsx +0 -90
  486. package/test/zIndex/zIndexSelectors.spec.ts +0 -172
  487. package/test-results/.last-run.json +0 -4
  488. package/tsconfig.json +0 -11
@@ -20,10 +20,10 @@
20
20
  // `any`); the value comes from `getValueByDataKey`, which is genuinely
21
21
  // untyped, and only x/y are needed to draw. It flows through `scale.map`
22
22
  // (which accepts `unknown`) unchanged.
23
- import { createEffect, createMemo, createSignal, merge, Show, untrack } from "solid-js";
23
+ import { createMemo, createSignal, Show, untrack, mergeProps, createEffect, on } from "solid-js";
24
24
  import { useActiveTooltipDataPoints } from "../hooks";
25
25
  import { selectActiveTooltipIndex } from "../state/selectors/tooltipSelectors";
26
- import type { JSX } from "@solidjs/web";
26
+ import type { JSX } from "solid-js";
27
27
  import { useAppSelector, useAppStore } from "../state/hooks";
28
28
  import {
29
29
  AnimatedItems,
@@ -341,7 +341,7 @@ export const lineDefaultProps = {
341
341
 
342
342
  export const Line = (props: LineProps): JSX.Element => {
343
343
  const store = useAppStore();
344
- const merged = merge(lineDefaultProps, props);
344
+ const merged = mergeProps(lineDefaultProps, props);
345
345
  const isPanorama = useIsPanorama();
346
346
  const layout = useCartesianChartLayout();
347
347
  const id = useUniqueId("recharts-line", props.id);
@@ -499,19 +499,21 @@ export const Line = (props: LineProps): JSX.Element => {
499
499
  // settled dasharray the new curve's true length — mirroring recharts, which
500
500
  // recomputes totalLength on the post-animation re-render.
501
501
  createEffect(
502
- () => ({ points: points(), showLabels: !isAnimating() }),
503
- () => {
504
- if (curveEl?.getTotalLength == null) {
505
- return;
506
- }
507
- let length = 0;
508
- try {
509
- length = curveEl.getTotalLength() || 0;
510
- } catch {
511
- return; // getTotalLength can throw on detached/empty paths — keep the last value.
512
- }
513
- setTotalLength(length);
514
- },
502
+ on(
503
+ () => ({ points: points(), showLabels: !isAnimating() }),
504
+ () => {
505
+ if (curveEl?.getTotalLength == null) {
506
+ return;
507
+ }
508
+ let length = 0;
509
+ try {
510
+ length = curveEl.getTotalLength() || 0;
511
+ } catch {
512
+ return; // getTotalLength can throw on detached/empty paths — keep the last value.
513
+ }
514
+ setTotalLength(length);
515
+ },
516
+ ),
515
517
  );
516
518
 
517
519
  // Raw user event handlers forwarded to the curve. recharts' StaticCurve spreads
@@ -16,8 +16,8 @@
16
16
  // forwards the element to the parent-supplied `forwardPathRef` so the parent
17
17
  // (<Line>) can drive `shouldUpdatePreviousRef`/`getVisibleLength` off the same
18
18
  // measured length.
19
- import { createEffect, createSignal, omit } from "solid-js";
20
- import type { JSX } from "@solidjs/web";
19
+ import { createSignal, splitProps, createEffect, on } from "solid-js";
20
+ import type { JSX } from "solid-js";
21
21
  import { Curve, type CurveProps } from "../shape/Curve";
22
22
  import type { ShapeAnimationProps } from "../util/types";
23
23
 
@@ -145,14 +145,16 @@ export function LineDrawShape(props: LineDrawShapeProps): JSX.Element {
145
145
  // would force a synchronous SVG layout (reflow) each frame for a value nothing
146
146
  // reads. Guarding on visibleLength drops those per-frame reflows.
147
147
  createEffect(
148
- () => ({ points: props.points, visibleLength: props.visibleLength }),
149
- (deps) => {
150
- if (deps.visibleLength == null || pathEl?.getTotalLength == null) {
151
- return;
152
- }
153
- const length = getTotalLength(pathEl);
154
- setTotalLength(length);
155
- },
148
+ on(
149
+ () => ({ points: props.points, visibleLength: props.visibleLength }),
150
+ (deps) => {
151
+ if (deps.visibleLength == null || pathEl?.getTotalLength == null) {
152
+ return;
153
+ }
154
+ const length = getTotalLength(pathEl);
155
+ setTotalLength(length);
156
+ },
157
+ ),
156
158
  );
157
159
 
158
160
  const strokeDasharray = (): string | undefined => {
@@ -170,8 +172,7 @@ export function LineDrawShape(props: LineDrawShapeProps): JSX.Element {
170
172
  // Strip the animation-only props before forwarding to <Curve>; we set
171
173
  // connectNulls/strokeDasharray/pathRef explicitly below. `omit` keeps the
172
174
  // remaining props reactive (no destructuring of `props`).
173
- const curveProps = omit(
174
- props,
175
+ const curveProps = splitProps(props, [
175
176
  "animationElapsedTime",
176
177
  "isAnimating",
177
178
  "isEntrance",
@@ -179,7 +180,7 @@ export function LineDrawShape(props: LineDrawShapeProps): JSX.Element {
179
180
  "forwardPathRef",
180
181
  "strokeDasharray",
181
182
  "connectNulls",
182
- );
183
+ ])[1];
183
184
 
184
185
  return (
185
186
  <Curve
@@ -16,8 +16,8 @@
16
16
  // - PERMANENT-N/A (by design, NOT deferred): the custom-element `shape` branch
17
17
  // (React.cloneElement — use the render-function form). <Label>
18
18
  // CHILDREN are not rendered (the `label` prop is).
19
- import { createMemo, merge, Show } from "solid-js";
20
- import type { JSX } from "@solidjs/web";
19
+ import { createMemo, Show, mergeProps } from "solid-js";
20
+ import type { JSX } from "solid-js";
21
21
  import { Layer } from "../container/Layer";
22
22
  import {
23
23
  CartesianLabelContextProvider,
@@ -164,7 +164,7 @@ const referenceAreaDefaultProps = {
164
164
  } as const satisfies Partial<Props>;
165
165
 
166
166
  function ReferenceAreaImpl(props: Props): JSX.Element {
167
- const merged = merge(referenceAreaDefaultProps, props);
167
+ const merged = mergeProps(referenceAreaDefaultProps, props);
168
168
  const clipPathId = useClipPathId();
169
169
  const isPanorama = useIsPanorama();
170
170
  const xAxisScale = useAppSelector((s) => selectAxisScale(s, "xAxis", merged.xAxisId, isPanorama));
@@ -243,7 +243,7 @@ export function ReferenceArea<
243
243
  XValueType extends ReferenceCoordinateValue = ReferenceCoordinateValue,
244
244
  YValueType extends ReferenceCoordinateValue = ReferenceCoordinateValue,
245
245
  >(props: Props<XValueType, YValueType>): JSX.Element {
246
- const merged = merge(referenceAreaDefaultProps, props);
246
+ const merged = mergeProps(referenceAreaDefaultProps, props);
247
247
  const id = useUniqueId("recharts-reference-area");
248
248
  return (
249
249
  <>
@@ -12,8 +12,8 @@
12
12
  // - PERMANENT-N/A (by design, NOT deferred): the custom-element `shape` branch
13
13
  // (React.cloneElement — use the render-function form);
14
14
  // `children` is not rendered (CartesianLabelContext).
15
- import { createMemo, merge, Show } from "solid-js";
16
- import type { JSX } from "@solidjs/web";
15
+ import { createMemo, Show, mergeProps } from "solid-js";
16
+ import type { JSX } from "solid-js";
17
17
  import { Layer } from "../container/Layer";
18
18
  import { Dot, type DotProps } from "../shape/Dot";
19
19
  import {
@@ -183,7 +183,7 @@ const referenceDotDefaultProps = {
183
183
  } as const satisfies Partial<Props>;
184
184
 
185
185
  function ReferenceDotImpl(props: Props): JSX.Element {
186
- const merged = merge(referenceDotDefaultProps, props);
186
+ const merged = mergeProps(referenceDotDefaultProps, props);
187
187
  const clipPathId = useClipPathId();
188
188
  const isPanorama = useIsPanorama();
189
189
  const xAxisScale = useAppSelector((s) => selectAxisScale(s, "xAxis", merged.xAxisId, isPanorama));
@@ -255,7 +255,7 @@ export function ReferenceDot<
255
255
  XValueType extends ReferenceCoordinateValue = ReferenceCoordinateValue,
256
256
  YValueType extends ReferenceCoordinateValue = ReferenceCoordinateValue,
257
257
  >(props: Props<XValueType, YValueType>): JSX.Element {
258
- const merged = merge(referenceDotDefaultProps, props);
258
+ const merged = mergeProps(referenceDotDefaultProps, props);
259
259
  const id = useUniqueId("recharts-reference-dot");
260
260
  return (
261
261
  <>
@@ -16,8 +16,8 @@
16
16
  // render-function form; the default-`<line>` branch is kept). <Label> CHILDREN
17
17
  // are not rendered (the `label` prop is).
18
18
  import { type CamelSvgProps } from "../util/svgPropertiesNoEvents";
19
- import { createMemo, merge, Show } from "solid-js";
20
- import type { JSX } from "@solidjs/web";
19
+ import { createMemo, Show, mergeProps } from "solid-js";
20
+ import type { JSX } from "solid-js";
21
21
  import { Layer } from "../container/Layer";
22
22
  import {
23
23
  CartesianLabelContextProvider,
@@ -282,7 +282,7 @@ const referenceLineDefaultProps = {
282
282
  } as const satisfies Partial<Props>;
283
283
 
284
284
  function ReferenceLineImpl(props: Props): JSX.Element {
285
- const merged = merge(referenceLineDefaultProps, props);
285
+ const merged = mergeProps(referenceLineDefaultProps, props);
286
286
  const isPanorama = useIsPanorama();
287
287
  const clipPathId = useClipPathId();
288
288
  const viewBox = useViewBox();
@@ -384,7 +384,7 @@ export function ReferenceLine<
384
384
  XValueType extends ReferenceCoordinateValue = ReferenceCoordinateValue,
385
385
  YValueType extends ReferenceCoordinateValue = ReferenceCoordinateValue,
386
386
  >(props: Props<XValueType, YValueType>): JSX.Element {
387
- const merged = merge(referenceLineDefaultProps, props);
387
+ const merged = mergeProps(referenceLineDefaultProps, props);
388
388
  const id = useUniqueId("recharts-reference-line");
389
389
  return (
390
390
  <>
@@ -1,3 +1,4 @@
1
+ import { createEffect, on } from "solid-js";
1
2
  // Ported from recharts 3.8.1 src/cartesian/CartesianAxis.tsx RenderedTicksReporter
2
3
  // (commit 7a23854).
3
4
  //
@@ -5,8 +6,7 @@
5
6
  // useXAxisTicks/useYAxisTicks hooks (and the tick-snap inverse scale) can read
6
7
  // them. Solid deviation: useEffect add + cleanup remove → createEffect + onCleanup
7
8
  // (the same effect-dispatch idiom the other Report* components use).
8
- import { createEffect } from "solid-js";
9
- import type { JSX } from "@solidjs/web";
9
+ import type { JSX } from "solid-js";
10
10
  import { useAppStore } from "../state/hooks";
11
11
  import type { AxisId } from "../state/cartesianAxisSlice";
12
12
  import type { CartesianTickItem, TickItem } from "../util/types";
@@ -21,21 +21,23 @@ export function RenderedTicksReporter(props: {
21
21
  let prev: { axisType: "xAxis" | "yAxis"; axisId: AxisId } | null = null;
22
22
 
23
23
  createEffect(
24
- (): { axisType: "xAxis" | "yAxis"; axisId: AxisId; ticks: ReadonlyArray<TickItem> } => ({
25
- axisType: props.axisType,
26
- axisId: props.axisId,
27
- // Expose only the external tick shape (drop internal props).
28
- ticks: props.ticks.map((t) => ({
29
- value: t.value,
30
- coordinate: t.coordinate,
31
- offset: t.offset,
32
- index: t.index,
33
- })),
34
- }),
35
- (payload) => {
36
- store?.actions.renderedTicks.setRenderedTicks(payload);
37
- prev = { axisType: payload.axisType, axisId: payload.axisId };
38
- },
24
+ on(
25
+ (): { axisType: "xAxis" | "yAxis"; axisId: AxisId; ticks: ReadonlyArray<TickItem> } => ({
26
+ axisType: props.axisType,
27
+ axisId: props.axisId,
28
+ // Expose only the external tick shape (drop internal props).
29
+ ticks: props.ticks.map((t) => ({
30
+ value: t.value,
31
+ coordinate: t.coordinate,
32
+ offset: t.offset,
33
+ index: t.index,
34
+ })),
35
+ }),
36
+ (payload) => {
37
+ store?.actions.renderedTicks.setRenderedTicks(payload);
38
+ prev = { axisType: payload.axisType, axisId: payload.axisId };
39
+ },
40
+ ),
39
41
  );
40
42
 
41
43
  unregisterOnCleanup(() => {
@@ -10,8 +10,8 @@
10
10
  // joint/fitting line) are wired.) Solid deviations:
11
11
  // resolveDefaultProps→merge; effect-dispatch registration → createEffect/onCleanup;
12
12
  // the `@ts-expect-error`-laden value plumbing is replaced with typed coercion.
13
- import { createMemo, For, merge, Show } from "solid-js";
14
- import type { JSX } from "@solidjs/web";
13
+ import { createMemo, For, Show, mergeProps } from "solid-js";
14
+ import type { JSX } from "solid-js";
15
15
  import { useAppSelector, useAppStore } from "../state/hooks";
16
16
  import { useIsPanorama } from "../context/PanoramaContext";
17
17
  import { useUniqueId } from "../util/useUniqueId";
@@ -383,7 +383,7 @@ const scatterErrorBarFormatter: ErrorBarDataPointFormatter = (
383
383
 
384
384
  export const Scatter = (props: ScatterProps): JSX.Element => {
385
385
  const store = useAppStore();
386
- const merged = merge(scatterDefaultProps, props);
386
+ const merged = mergeProps(scatterDefaultProps, props);
387
387
  const isPanorama = useIsPanorama();
388
388
  const id = useUniqueId("recharts-scatter", props.id);
389
389
  // `shape` is either a built-in symbol type or a custom render fn; resolve once.
@@ -11,7 +11,7 @@
11
11
  // recharts' `resolveDefaultProps`: explicit `undefined` falls back to defaults.
12
12
  import { type CamelSvgProps } from "../util/svgPropertiesNoEvents";
13
13
  import { createMemo, Show } from "solid-js";
14
- import type { JSX } from "@solidjs/web";
14
+ import type { JSX } from "solid-js";
15
15
  import { useAppSelector, useAppStore } from "../state/hooks";
16
16
  import {
17
17
  NiceTicksAlgorithm,
@@ -4,8 +4,8 @@
4
4
  // via createEffect + defaults resolved like recharts' resolveDefaultProps); the
5
5
  // visual `<CartesianAxis>` IS rendered at the bottom of this file.
6
6
  import { type CamelSvgProps } from "../util/svgPropertiesNoEvents";
7
- import { createEffect, createMemo, Show } from "solid-js";
8
- import type { JSX } from "@solidjs/web";
7
+ import { createMemo, Show, createEffect, on } from "solid-js";
8
+ import type { JSX } from "solid-js";
9
9
  import { useAppSelector, useAppStore } from "../state/hooks";
10
10
  import {
11
11
  NiceTicksAlgorithm,
@@ -225,42 +225,44 @@ export function YAxis<DataPointType = unknown, DataValueType = unknown>(
225
225
  // Dynamic Y-axis width: when `width="auto"` (and the label is not a function/element),
226
226
  // recharts measures the rendered tick-value DOM via `getCalculatedYAxisWidth` and feeds
227
227
  // the result back into the store with `updateYAxisWidth`. Mirror that with the codebase's
228
- // two-arg createEffect(compute, apply): the compute tracks the reactive inputs (ticks +
228
+ // two-arg createEffect(on(compute, apply)): the compute tracks the reactive inputs (ticks +
229
229
  // size), the apply does the DOM measurement and the store write (untracked — so it cannot
230
230
  // re-trigger itself; the slice's `updateYAxisWidth` + the Math.round equality also guard
231
231
  // oscillation).
232
232
  let layerEl: SVGGElement | null = null;
233
233
  createEffect(
234
- () => ({
235
- ticks: ticks(),
236
- size: size(),
237
- width: props.width,
238
- label: props.label,
239
- id: yAxisId(),
240
- }),
241
- (inputs) => {
242
- if (inputs.width !== "auto" || isLabelContentAFunction(inputs.label)) {
243
- return;
244
- }
245
- const el = layerEl;
246
- if (el == null || inputs.ticks == null || inputs.size == null || store == null) {
247
- return;
248
- }
249
- const tickNodes = el.getElementsByClassName("recharts-cartesian-axis-tick-value");
250
- if (tickNodes.length === 0) {
251
- return;
252
- }
253
- const updatedYAxisWidth = getCalculatedYAxisWidth({
254
- ticks: tickNodes,
255
- label: undefined,
256
- labelGapWithTick: 5,
257
- tickSize: 6,
258
- tickMargin: 2,
259
- });
260
- if (Math.round(inputs.size.width) !== Math.round(updatedYAxisWidth)) {
261
- store.actions.cartesianAxis.updateYAxisWidth({ id: inputs.id, width: updatedYAxisWidth });
262
- }
263
- },
234
+ on(
235
+ () => ({
236
+ ticks: ticks(),
237
+ size: size(),
238
+ width: props.width,
239
+ label: props.label,
240
+ id: yAxisId(),
241
+ }),
242
+ (inputs) => {
243
+ if (inputs.width !== "auto" || isLabelContentAFunction(inputs.label)) {
244
+ return;
245
+ }
246
+ const el = layerEl;
247
+ if (el == null || inputs.ticks == null || inputs.size == null || store == null) {
248
+ return;
249
+ }
250
+ const tickNodes = el.getElementsByClassName("recharts-cartesian-axis-tick-value");
251
+ if (tickNodes.length === 0) {
252
+ return;
253
+ }
254
+ const updatedYAxisWidth = getCalculatedYAxisWidth({
255
+ ticks: tickNodes,
256
+ label: undefined,
257
+ labelGapWithTick: 5,
258
+ tickSize: 6,
259
+ tickMargin: 2,
260
+ });
261
+ if (Math.round(inputs.size.width) !== Math.round(updatedYAxisWidth)) {
262
+ store.actions.cartesianAxis.updateYAxisWidth({ id: inputs.id, width: updatedYAxisWidth });
263
+ }
264
+ },
265
+ ),
264
266
  );
265
267
 
266
268
  return (
@@ -1,10 +1,11 @@
1
+ import { mergeProps } from "solid-js";
1
2
  // Ported from recharts 3.8.1 src/cartesian/ZAxis.tsx (commit 7a23854).
2
3
  //
3
4
  // REGISTRATION-ONLY: ZAxis never renders (it has no ticks/line); it only pushes
4
5
  // settings into the cartesianAxis slice so Scatter can size its points by the z
5
6
  // value. Solid deviations: useLayoutEffect/prevRef → createEffect add/replace +
6
7
  // onCleanup remove (the XAxis/YAxis idiom); defaults via merge.
7
- import { merge } from "solid-js";
8
+
8
9
  import { useAppStore } from "../state/hooks";
9
10
  import { AxisId, ZAxisSettings } from "../state/cartesianAxisSlice";
10
11
  import { implicitZAxis } from "../state/selectors/axisSelectors";
@@ -35,7 +36,7 @@ export function ZAxis<DataPointType = unknown, DataValueType = unknown>(
35
36
  props: ZAxisProps<DataPointType, DataValueType>,
36
37
  ): null {
37
38
  const store = useAppStore();
38
- const merged = merge(zAxisDefaultProps, props);
39
+ const merged = mergeProps(zAxisDefaultProps, props);
39
40
 
40
41
  if (store != null) {
41
42
  registerInStore<ZAxisSettings>(
@@ -1,7 +1,7 @@
1
1
  // Ported from recharts 3.8.1 src/chart/AreaChart.tsx (commit 7a23854).
2
2
  // `forwardRef` → `ref` prop; thin user-facing wrapper over CartesianChart
3
3
  // (mirrors LineChart — differs only in chartName / allowed tooltip event types).
4
- import type { JSX } from "@solidjs/web";
4
+ import type { JSX } from "solid-js";
5
5
  import { arrayTooltipSearcher } from "../state/optionsSlice";
6
6
  import { CartesianChart } from "./CartesianChart";
7
7
  import { CartesianChartProps, TooltipEventType } from "../util/types";
@@ -1,6 +1,6 @@
1
1
  // Ported from recharts 3.8.1 src/chart/BarChart.tsx (commit 7a23854).
2
2
  // `forwardRef` → `ref` prop; thin user-facing wrapper over CartesianChart.
3
- import type { JSX } from "@solidjs/web";
3
+ import type { JSX } from "solid-js";
4
4
  import { arrayTooltipSearcher } from "../state/optionsSlice";
5
5
  import { CartesianChart } from "./CartesianChart";
6
6
  import { CartesianChartProps, TooltipEventType } from "../util/types";
@@ -1,11 +1,12 @@
1
+ import { splitProps } from "solid-js";
1
2
  // Ported from recharts 3.8.1 src/chart/CartesianChart.tsx (commit 7a23854).
2
3
  //
3
4
  // Solid deviations: `forwardRef` → `ref` prop; `resolveDefaultProps` → per-field
4
5
  // `?? default` accessors (see the defaults-use-solid-merge memory — using
5
6
  // explicit nullish-coalescing avoids `merge`'s undefined-override gotcha AND the
6
7
  // required-ness typing gap). Provider + Report components mirror recharts.
7
- import { omit } from "solid-js";
8
- import type { JSX } from "@solidjs/web";
8
+
9
+ import type { JSX } from "solid-js";
9
10
  import { ChartOptions } from "../state/optionsSlice";
10
11
  import { RechartsStoreProvider } from "../state/RechartsStoreProvider";
11
12
  import { ChartDataContextProvider } from "../context/chartDataContext";
@@ -83,7 +84,7 @@ export const CartesianChart = (props: CartesianChartOptions): JSX.Element => {
83
84
  {/* Spread WITHOUT children (a `{...cp()}` spread eagerly evaluates the
84
85
  children getter here, before the provider sets context — running them
85
86
  outside the store); pass children as a lazy JSX child instead. */}
86
- <CategoricalChart {...omit(cp(), "children")} ref={props.ref}>
87
+ <CategoricalChart {...splitProps(cp(), ["children"])[1]} ref={props.ref}>
87
88
  {cp().children}
88
89
  </CategoricalChart>
89
90
  </RechartsStoreProvider>
@@ -1,10 +1,11 @@
1
+ import { splitProps } from "solid-js";
1
2
  // Ported from recharts 3.8.1 src/chart/CategoricalChart.tsx (commit 7a23854).
2
3
  //
3
4
  // Solid deviations: `forwardRef` → `ref` prop; no destructuring (omit + props);
4
5
  // `className` → `class`. The `compact` (Brush panorama) branch is deferred. Event
5
6
  // handlers are not forwarded yet (RechartsWrapper is render-only).
6
- import { omit } from "solid-js";
7
- import type { JSX } from "@solidjs/web";
7
+
8
+ import type { JSX } from "solid-js";
8
9
  import { RootSurface } from "../container/RootSurface";
9
10
  import { RechartsWrapper } from "./RechartsWrapper";
10
11
  import { ClipPathProvider } from "../container/ClipPathProvider";
@@ -18,8 +19,7 @@ export interface CategoricalChartProps extends CartesianChartProps {
18
19
  export const CategoricalChart = (props: CategoricalChartProps): JSX.Element => {
19
20
  const attrs = (): Record<string, unknown> =>
20
21
  svgPropertiesNoEventsKeepCase({
21
- ...omit(
22
- props,
22
+ ...splitProps(props, [
23
23
  "width",
24
24
  "height",
25
25
  "responsive",
@@ -30,7 +30,7 @@ export const CategoricalChart = (props: CategoricalChartProps): JSX.Element => {
30
30
  "title",
31
31
  "desc",
32
32
  "ref",
33
- ),
33
+ ])[1],
34
34
  });
35
35
 
36
36
  return (
@@ -1,6 +1,6 @@
1
1
  // Ported from recharts 3.8.1 src/chart/ComposedChart.tsx (commit 7a23854).
2
2
  // `forwardRef` → `ref` prop; thin user-facing wrapper over CartesianChart.
3
- import type { JSX } from "@solidjs/web";
3
+ import type { JSX } from "solid-js";
4
4
  import { arrayTooltipSearcher } from "../state/optionsSlice";
5
5
  import { CartesianChart } from "./CartesianChart";
6
6
  import { CartesianChartProps, TooltipEventType } from "../util/types";
@@ -1,6 +1,6 @@
1
1
  // Ported from recharts 3.8.1 src/chart/FunnelChart.tsx (commit 7a23854).
2
2
  // `forwardRef` → `ref` prop; thin user-facing wrapper over CartesianChart.
3
- import type { JSX } from "@solidjs/web";
3
+ import type { JSX } from "solid-js";
4
4
  import { arrayTooltipSearcher } from "../state/optionsSlice";
5
5
  import { CartesianChart } from "./CartesianChart";
6
6
  import { CartesianChartProps, TooltipEventType } from "../util/types";
@@ -1,6 +1,6 @@
1
1
  // Ported from recharts 3.8.1 src/chart/LineChart.tsx (commit 7a23854).
2
2
  // `forwardRef` → `ref` prop; the user-facing convenience wrapper over CartesianChart.
3
- import type { JSX } from "@solidjs/web";
3
+ import type { JSX } from "solid-js";
4
4
  import { arrayTooltipSearcher } from "../state/optionsSlice";
5
5
  import { CartesianChart } from "./CartesianChart";
6
6
  import { CartesianChartProps, TooltipEventType } from "../util/types";
@@ -1,3 +1,4 @@
1
+ import { mergeProps, splitProps } from "solid-js";
1
2
  // Ported from recharts 3.8.1 src/chart/PieChart.tsx (commit 7a23854).
2
3
  // `forwardRef` → `ref` prop; the user-facing convenience wrapper over PolarChart.
3
4
  // `resolveDefaultProps` → Solid `merge` (lazy proxy — does NOT eagerly evaluate
@@ -5,8 +6,8 @@
5
6
  // (layout "centric", startAngle 0, endAngle 360) win over PolarChart's polar
6
7
  // defaults. `ref` is omitted from categoricalChartProps and passed separately,
7
8
  // mirroring the reference's forwardRef split.
8
- import { merge, omit } from "solid-js";
9
- import type { JSX } from "@solidjs/web";
9
+
10
+ import type { JSX } from "solid-js";
10
11
  import { arrayTooltipSearcher } from "../state/optionsSlice";
11
12
  import { PolarChart } from "./PolarChart";
12
13
  import { PolarChartProps, TooltipEventType } from "../util/types";
@@ -26,7 +27,7 @@ export interface PieChartProps<DataPointType = unknown> extends PolarChartProps<
26
27
  export function PieChart<DataPointType = unknown>(
27
28
  props: PieChartProps<DataPointType>,
28
29
  ): JSX.Element {
29
- const categoricalChartProps = merge(defaultPieChartProps, omit(props, "ref"));
30
+ const categoricalChartProps = mergeProps(defaultPieChartProps, splitProps(props, ["ref"])[1]);
30
31
 
31
32
  return (
32
33
  <PolarChart
@@ -1,3 +1,4 @@
1
+ import { splitProps } from "solid-js";
1
2
  // Ported from recharts 3.8.1 src/chart/PolarChart.tsx (commit 7a23854).
2
3
  //
3
4
  // Solid deviations: `forwardRef` → `ref` prop; `resolveDefaultProps` → per-field
@@ -7,8 +8,8 @@
7
8
  // The polar geometry props (cx/cy/innerRadius/outerRadius/startAngle/endAngle)
8
9
  // pass through to CategoricalChart exactly as in the reference — svgPropertiesNoEvents
9
10
  // forwards cx/cy onto the root <svg> (faithful) and drops the rest.
10
- import { omit } from "solid-js";
11
- import type { JSX } from "@solidjs/web";
11
+
12
+ import type { JSX } from "solid-js";
12
13
  import { ChartOptions } from "../state/optionsSlice";
13
14
  import { RechartsStoreProvider } from "../state/RechartsStoreProvider";
14
15
  import { ChartDataContextProvider } from "../context/chartDataContext";
@@ -89,7 +90,7 @@ export const PolarChart = (props: PolarChartOptions): JSX.Element => {
89
90
  {/* Spread WITHOUT children (a `{...cp()}` spread eagerly evaluates the
90
91
  children getter here, before the provider sets context — running them
91
92
  outside the store); pass children as a lazy JSX child instead. */}
92
- <CategoricalChart {...omit(cp(), "children")} ref={props.ref}>
93
+ <CategoricalChart {...splitProps(cp(), ["children"])[1]} ref={props.ref}>
93
94
  {cp().children}
94
95
  </CategoricalChart>
95
96
  </RechartsStoreProvider>
@@ -1,8 +1,9 @@
1
+ import { mergeProps, splitProps } from "solid-js";
1
2
  // Ported from recharts 3.8.1 src/chart/RadarChart.tsx (commit 7a23854).
2
3
  // `forwardRef`→`ref` prop; `resolveDefaultProps`→`merge` (lazy proxy, see PieChart).
3
4
  // RadarChart-specific defaults: layout "centric", startAngle 90, endAngle -270.
4
- import { merge, omit } from "solid-js";
5
- import type { JSX } from "@solidjs/web";
5
+
6
+ import type { JSX } from "solid-js";
6
7
  import { arrayTooltipSearcher } from "../state/optionsSlice";
7
8
  import { PolarChart } from "./PolarChart";
8
9
  import { PolarChartProps, TooltipEventType } from "../util/types";
@@ -22,7 +23,7 @@ export interface RadarChartProps<DataPointType = unknown> extends PolarChartProp
22
23
  export function RadarChart<DataPointType = unknown>(
23
24
  props: RadarChartProps<DataPointType>,
24
25
  ): JSX.Element {
25
- const categoricalChartProps = merge(defaultRadarChartProps, omit(props, "ref"));
26
+ const categoricalChartProps = mergeProps(defaultRadarChartProps, splitProps(props, ["ref"])[1]);
26
27
 
27
28
  return (
28
29
  <PolarChart
@@ -1,8 +1,9 @@
1
+ import { mergeProps, splitProps } from "solid-js";
1
2
  // Ported from recharts 3.8.1 src/chart/RadialBarChart.tsx (commit 7a23854).
2
3
  // `forwardRef`→`ref` prop; `resolveDefaultProps`→`merge`. RadialBarChart defaults:
3
4
  // layout "radial", startAngle 0, endAngle 360 (PolarChart fills cx/cy/radii).
4
- import { merge, omit } from "solid-js";
5
- import type { JSX } from "@solidjs/web";
5
+
6
+ import type { JSX } from "solid-js";
6
7
  import { arrayTooltipSearcher } from "../state/optionsSlice";
7
8
  import { PolarChart } from "./PolarChart";
8
9
  import { PolarChartProps, TooltipEventType } from "../util/types";
@@ -24,7 +25,10 @@ export interface RadialBarChartProps<
24
25
  export function RadialBarChart<DataPointType = unknown>(
25
26
  props: RadialBarChartProps<DataPointType>,
26
27
  ): JSX.Element {
27
- const categoricalChartProps = merge(defaultRadialBarChartProps, omit(props, "ref"));
28
+ const categoricalChartProps = mergeProps(
29
+ defaultRadialBarChartProps,
30
+ splitProps(props, ["ref"])[1],
31
+ );
28
32
 
29
33
  return (
30
34
  <PolarChart