@mui/x-charts 7.15.0 → 7.16.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 (470) hide show
  1. package/BarChart/BarChart.js +23 -12
  2. package/BarChart/BarClipPath.js +1 -1
  3. package/BarChart/BarElement.js +2 -2
  4. package/BarChart/BarLabel/BarLabel.js +1 -1
  5. package/BarChart/BarLabel/BarLabelItem.js +4 -4
  6. package/BarChart/BarLabel/BarLabelPlot.js +1 -1
  7. package/BarChart/BarLabel/index.js +2 -2
  8. package/BarChart/BarPlot.js +8 -8
  9. package/BarChart/checkScaleErrors.js +2 -2
  10. package/BarChart/formatter.js +2 -2
  11. package/BarChart/index.js +4 -4
  12. package/BarChart/legend.js +1 -1
  13. package/BarChart/plugin.js +3 -3
  14. package/BarChart/useBarChartProps.js +1 -1
  15. package/CHANGELOG.md +98 -1
  16. package/ChartContainer/ChartContainer.js +9 -9
  17. package/ChartContainer/index.js +1 -1
  18. package/ChartContainer/useChartContainerProps.js +2 -2
  19. package/ChartContainer/useDefaultizeAxis.js +1 -1
  20. package/ChartsAxis/ChartsAxis.js +3 -3
  21. package/ChartsAxis/index.js +2 -2
  22. package/ChartsAxisHighlight/ChartsAxisHighlight.js +4 -4
  23. package/ChartsAxisHighlight/index.js +1 -1
  24. package/ChartsClipPath/ChartsClipPath.js +1 -1
  25. package/ChartsClipPath/index.js +1 -1
  26. package/ChartsGrid/ChartsGrid.js +18 -66
  27. package/ChartsGrid/ChartsHorizontalGrid.d.ts +14 -0
  28. package/ChartsGrid/ChartsHorizontalGrid.js +36 -0
  29. package/ChartsGrid/ChartsVerticalGrid.d.ts +14 -0
  30. package/ChartsGrid/ChartsVerticalGrid.js +36 -0
  31. package/ChartsGrid/index.js +2 -2
  32. package/ChartsGrid/styledCommonents.d.ts +2 -0
  33. package/ChartsGrid/styledCommonents.js +22 -0
  34. package/ChartsLegend/ChartsLegend.d.ts +4 -13
  35. package/ChartsLegend/ChartsLegend.js +59 -25
  36. package/ChartsLegend/ContinuousColorLegend.js +7 -7
  37. package/ChartsLegend/DefaultChartsLegend.d.ts +6 -1
  38. package/ChartsLegend/DefaultChartsLegend.js +7 -3
  39. package/ChartsLegend/LegendPerItem.d.ts +9 -6
  40. package/ChartsLegend/LegendPerItem.js +4 -8
  41. package/ChartsLegend/PiecewiseColorLegend.js +3 -8
  42. package/ChartsLegend/index.js +6 -6
  43. package/ChartsLegend/useAxis.js +2 -2
  44. package/ChartsLegend/utils.js +4 -4
  45. package/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +4 -4
  46. package/ChartsOnAxisClickHandler/index.js +1 -1
  47. package/ChartsOverlay/ChartsLoadingOverlay.js +1 -1
  48. package/ChartsOverlay/ChartsNoDataOverlay.js +1 -1
  49. package/ChartsOverlay/ChartsOverlay.js +3 -3
  50. package/ChartsOverlay/index.js +3 -3
  51. package/ChartsReferenceLine/ChartsReferenceLine.js +2 -2
  52. package/ChartsReferenceLine/ChartsXReferenceLine.js +5 -5
  53. package/ChartsReferenceLine/ChartsYReferenceLine.js +5 -5
  54. package/ChartsReferenceLine/common.js +1 -1
  55. package/ChartsReferenceLine/index.js +2 -2
  56. package/ChartsSurface/ChartsSurface.js +1 -1
  57. package/ChartsSurface/index.js +1 -1
  58. package/ChartsText/ChartsText.js +1 -1
  59. package/ChartsText/index.js +1 -1
  60. package/ChartsTooltip/ChartsAxisTooltipContent.js +6 -6
  61. package/ChartsTooltip/ChartsItemTooltipContent.d.ts +1 -1
  62. package/ChartsTooltip/ChartsItemTooltipContent.js +5 -5
  63. package/ChartsTooltip/ChartsTooltip.d.ts +2 -2
  64. package/ChartsTooltip/ChartsTooltip.js +13 -11
  65. package/ChartsTooltip/ChartsTooltipTable.js +10 -5
  66. package/ChartsTooltip/DefaultChartsAxisTooltipContent.js +5 -5
  67. package/ChartsTooltip/DefaultChartsItemTooltipContent.js +3 -3
  68. package/ChartsTooltip/chartsTooltipClasses.d.ts +2 -0
  69. package/ChartsTooltip/chartsTooltipClasses.js +1 -1
  70. package/ChartsTooltip/index.js +7 -7
  71. package/ChartsTooltip/utils.js +1 -1
  72. package/ChartsVoronoiHandler/ChartsVoronoiHandler.js +7 -7
  73. package/ChartsVoronoiHandler/index.js +1 -1
  74. package/ChartsXAxis/ChartsXAxis.js +18 -13
  75. package/ChartsXAxis/index.js +1 -1
  76. package/ChartsYAxis/ChartsYAxis.js +15 -10
  77. package/ChartsYAxis/index.js +1 -1
  78. package/Gauge/Gauge.js +5 -5
  79. package/Gauge/GaugeContainer.js +4 -4
  80. package/Gauge/GaugeProvider.js +3 -3
  81. package/Gauge/GaugeReferenceArc.js +1 -1
  82. package/Gauge/GaugeValueArc.js +1 -1
  83. package/Gauge/GaugeValueText.js +2 -2
  84. package/Gauge/index.js +7 -7
  85. package/LineChart/AnimatedArea.js +31 -14
  86. package/LineChart/AnimatedLine.js +32 -15
  87. package/LineChart/AreaElement.js +3 -3
  88. package/LineChart/AreaPlot.js +83 -78
  89. package/LineChart/LineChart.js +26 -15
  90. package/LineChart/LineElement.js +3 -3
  91. package/LineChart/LineHighlightPlot.js +8 -8
  92. package/LineChart/LinePlot.js +65 -60
  93. package/LineChart/MarkElement.js +4 -4
  94. package/LineChart/MarkPlot.js +9 -9
  95. package/LineChart/formatter.js +2 -2
  96. package/LineChart/index.js +11 -11
  97. package/LineChart/legend.js +1 -1
  98. package/LineChart/plugin.js +3 -3
  99. package/LineChart/useLineChartProps.js +1 -1
  100. package/PieChart/PieArc.js +1 -1
  101. package/PieChart/PieArcLabelPlot.js +4 -4
  102. package/PieChart/PieArcPlot.js +4 -4
  103. package/PieChart/PieChart.js +19 -8
  104. package/PieChart/PiePlot.js +6 -6
  105. package/PieChart/dataTransform/useTransformData.js +1 -1
  106. package/PieChart/formatter.js +1 -1
  107. package/PieChart/getPieCoordinates.js +1 -1
  108. package/PieChart/index.js +7 -7
  109. package/PieChart/legend.js +1 -1
  110. package/PieChart/plugin.js +2 -2
  111. package/ResponsiveChartContainer/ResponsiveChartContainer.js +3 -3
  112. package/ResponsiveChartContainer/index.js +1 -1
  113. package/ResponsiveChartContainer/useResponsiveChartContainerProps.js +1 -1
  114. package/ScatterChart/Scatter.js +5 -5
  115. package/ScatterChart/ScatterChart.js +23 -12
  116. package/ScatterChart/ScatterPlot.js +5 -5
  117. package/ScatterChart/formatter.js +1 -1
  118. package/ScatterChart/index.js +3 -3
  119. package/ScatterChart/legend.js +1 -1
  120. package/ScatterChart/plugin.js +3 -3
  121. package/SparkLineChart/SparkLineChart.js +6 -6
  122. package/SparkLineChart/index.js +1 -1
  123. package/colorPalettes/index.js +1 -1
  124. package/context/CartesianProvider/CartesianProvider.js +6 -6
  125. package/context/CartesianProvider/computeValue.js +6 -6
  126. package/context/CartesianProvider/defaultizeAxis.js +1 -1
  127. package/context/CartesianProvider/index.js +5 -5
  128. package/context/CartesianProvider/useCartesianContext.js +1 -1
  129. package/context/DrawingProvider.js +1 -1
  130. package/context/HighlightedProvider/HighlightedProvider.js +4 -4
  131. package/context/HighlightedProvider/index.js +4 -4
  132. package/context/HighlightedProvider/useHighlighted.js +1 -1
  133. package/context/HighlightedProvider/useItemHighlighted.js +1 -1
  134. package/context/PluginProvider/PluginProvider.js +2 -2
  135. package/context/PluginProvider/index.js +10 -10
  136. package/context/PluginProvider/mergePlugins.js +4 -4
  137. package/context/PluginProvider/useColorProcessor.js +1 -1
  138. package/context/PluginProvider/useSeriesFormatter.js +1 -1
  139. package/context/PluginProvider/useXExtremumGetter.js +1 -1
  140. package/context/PluginProvider/useYExtremumGetter.js +1 -1
  141. package/context/SeriesProvider/SeriesProvider.js +4 -4
  142. package/context/SeriesProvider/index.js +4 -4
  143. package/context/SeriesProvider/processSeries.js +1 -1
  144. package/context/ZAxisContextProvider.js +1 -1
  145. package/context/index.js +2 -2
  146. package/hooks/index.js +7 -7
  147. package/hooks/useAxis.js +1 -1
  148. package/hooks/useAxisEvents.js +6 -6
  149. package/hooks/useChartDimensions.js +1 -1
  150. package/hooks/useChartId.js +1 -1
  151. package/hooks/useColorScale.js +2 -2
  152. package/hooks/useDrawingArea.js +1 -1
  153. package/hooks/useInteractionItemProps.js +2 -2
  154. package/hooks/useReducedMotion.js +13 -12
  155. package/hooks/useScale.js +2 -2
  156. package/hooks/useSeries.js +1 -1
  157. package/hooks/useSvgRef.js +1 -1
  158. package/hooks/useTicks.js +2 -2
  159. package/index.js +27 -27
  160. package/internals/components/AxisSharedComponents.js +1 -1
  161. package/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +5 -5
  162. package/internals/components/ChartsAxesGradients/index.js +1 -1
  163. package/internals/getWordsByLines.js +1 -1
  164. package/internals/index.js +31 -31
  165. package/internals/isCartesian.js +1 -1
  166. package/internals/useStringInterpolator.d.ts +1 -0
  167. package/internals/{useAnimatedPath.js → useStringInterpolator.js} +2 -15
  168. package/models/index.d.ts +1 -0
  169. package/models/index.js +5 -3
  170. package/models/seriesType/index.js +4 -4
  171. package/modern/BarChart/BarChart.js +23 -12
  172. package/modern/BarChart/BarClipPath.js +1 -1
  173. package/modern/BarChart/BarElement.js +2 -2
  174. package/modern/BarChart/BarLabel/BarLabel.js +1 -1
  175. package/modern/BarChart/BarLabel/BarLabelItem.js +4 -4
  176. package/modern/BarChart/BarLabel/BarLabelPlot.js +1 -1
  177. package/modern/BarChart/BarLabel/index.js +2 -2
  178. package/modern/BarChart/BarPlot.js +8 -8
  179. package/modern/BarChart/checkScaleErrors.js +2 -2
  180. package/modern/BarChart/formatter.js +2 -2
  181. package/modern/BarChart/index.js +4 -4
  182. package/modern/BarChart/legend.js +1 -1
  183. package/modern/BarChart/plugin.js +3 -3
  184. package/modern/BarChart/useBarChartProps.js +1 -1
  185. package/modern/ChartContainer/ChartContainer.js +9 -9
  186. package/modern/ChartContainer/index.js +1 -1
  187. package/modern/ChartContainer/useChartContainerProps.js +2 -2
  188. package/modern/ChartContainer/useDefaultizeAxis.js +1 -1
  189. package/modern/ChartsAxis/ChartsAxis.js +3 -3
  190. package/modern/ChartsAxis/index.js +2 -2
  191. package/modern/ChartsAxisHighlight/ChartsAxisHighlight.js +4 -4
  192. package/modern/ChartsAxisHighlight/index.js +1 -1
  193. package/modern/ChartsClipPath/ChartsClipPath.js +1 -1
  194. package/modern/ChartsClipPath/index.js +1 -1
  195. package/modern/ChartsGrid/ChartsGrid.js +18 -66
  196. package/modern/ChartsGrid/ChartsHorizontalGrid.js +36 -0
  197. package/modern/ChartsGrid/ChartsVerticalGrid.js +36 -0
  198. package/modern/ChartsGrid/index.js +2 -2
  199. package/modern/ChartsGrid/styledCommonents.js +22 -0
  200. package/modern/ChartsLegend/ChartsLegend.js +59 -25
  201. package/modern/ChartsLegend/ContinuousColorLegend.js +7 -7
  202. package/modern/ChartsLegend/DefaultChartsLegend.js +7 -3
  203. package/modern/ChartsLegend/LegendPerItem.js +4 -8
  204. package/modern/ChartsLegend/PiecewiseColorLegend.js +3 -8
  205. package/modern/ChartsLegend/index.js +6 -6
  206. package/modern/ChartsLegend/useAxis.js +2 -2
  207. package/modern/ChartsLegend/utils.js +4 -4
  208. package/modern/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +4 -4
  209. package/modern/ChartsOnAxisClickHandler/index.js +1 -1
  210. package/modern/ChartsOverlay/ChartsLoadingOverlay.js +1 -1
  211. package/modern/ChartsOverlay/ChartsNoDataOverlay.js +1 -1
  212. package/modern/ChartsOverlay/ChartsOverlay.js +3 -3
  213. package/modern/ChartsOverlay/index.js +3 -3
  214. package/modern/ChartsReferenceLine/ChartsReferenceLine.js +2 -2
  215. package/modern/ChartsReferenceLine/ChartsXReferenceLine.js +5 -5
  216. package/modern/ChartsReferenceLine/ChartsYReferenceLine.js +5 -5
  217. package/modern/ChartsReferenceLine/common.js +1 -1
  218. package/modern/ChartsReferenceLine/index.js +2 -2
  219. package/modern/ChartsSurface/ChartsSurface.js +1 -1
  220. package/modern/ChartsSurface/index.js +1 -1
  221. package/modern/ChartsText/ChartsText.js +1 -1
  222. package/modern/ChartsText/index.js +1 -1
  223. package/modern/ChartsTooltip/ChartsAxisTooltipContent.js +6 -6
  224. package/modern/ChartsTooltip/ChartsItemTooltipContent.js +5 -5
  225. package/modern/ChartsTooltip/ChartsTooltip.js +13 -11
  226. package/modern/ChartsTooltip/ChartsTooltipTable.js +10 -5
  227. package/modern/ChartsTooltip/DefaultChartsAxisTooltipContent.js +5 -5
  228. package/modern/ChartsTooltip/DefaultChartsItemTooltipContent.js +3 -3
  229. package/modern/ChartsTooltip/chartsTooltipClasses.js +1 -1
  230. package/modern/ChartsTooltip/index.js +7 -7
  231. package/modern/ChartsTooltip/utils.js +1 -1
  232. package/modern/ChartsVoronoiHandler/ChartsVoronoiHandler.js +7 -7
  233. package/modern/ChartsVoronoiHandler/index.js +1 -1
  234. package/modern/ChartsXAxis/ChartsXAxis.js +18 -13
  235. package/modern/ChartsXAxis/index.js +1 -1
  236. package/modern/ChartsYAxis/ChartsYAxis.js +15 -10
  237. package/modern/ChartsYAxis/index.js +1 -1
  238. package/modern/Gauge/Gauge.js +5 -5
  239. package/modern/Gauge/GaugeContainer.js +4 -4
  240. package/modern/Gauge/GaugeProvider.js +3 -3
  241. package/modern/Gauge/GaugeReferenceArc.js +1 -1
  242. package/modern/Gauge/GaugeValueArc.js +1 -1
  243. package/modern/Gauge/GaugeValueText.js +2 -2
  244. package/modern/Gauge/index.js +7 -7
  245. package/modern/LineChart/AnimatedArea.js +31 -14
  246. package/modern/LineChart/AnimatedLine.js +32 -15
  247. package/modern/LineChart/AreaElement.js +3 -3
  248. package/modern/LineChart/AreaPlot.js +83 -78
  249. package/modern/LineChart/LineChart.js +26 -15
  250. package/modern/LineChart/LineElement.js +3 -3
  251. package/modern/LineChart/LineHighlightPlot.js +8 -8
  252. package/modern/LineChart/LinePlot.js +65 -60
  253. package/modern/LineChart/MarkElement.js +4 -4
  254. package/modern/LineChart/MarkPlot.js +9 -9
  255. package/modern/LineChart/formatter.js +2 -2
  256. package/modern/LineChart/index.js +11 -11
  257. package/modern/LineChart/legend.js +1 -1
  258. package/modern/LineChart/plugin.js +3 -3
  259. package/modern/LineChart/useLineChartProps.js +1 -1
  260. package/modern/PieChart/PieArc.js +1 -1
  261. package/modern/PieChart/PieArcLabelPlot.js +4 -4
  262. package/modern/PieChart/PieArcPlot.js +4 -4
  263. package/modern/PieChart/PieChart.js +19 -8
  264. package/modern/PieChart/PiePlot.js +6 -6
  265. package/modern/PieChart/dataTransform/useTransformData.js +1 -1
  266. package/modern/PieChart/formatter.js +1 -1
  267. package/modern/PieChart/getPieCoordinates.js +1 -1
  268. package/modern/PieChart/index.js +7 -7
  269. package/modern/PieChart/legend.js +1 -1
  270. package/modern/PieChart/plugin.js +2 -2
  271. package/modern/ResponsiveChartContainer/ResponsiveChartContainer.js +3 -3
  272. package/modern/ResponsiveChartContainer/index.js +1 -1
  273. package/modern/ResponsiveChartContainer/useResponsiveChartContainerProps.js +1 -1
  274. package/modern/ScatterChart/Scatter.js +5 -5
  275. package/modern/ScatterChart/ScatterChart.js +23 -12
  276. package/modern/ScatterChart/ScatterPlot.js +5 -5
  277. package/modern/ScatterChart/formatter.js +1 -1
  278. package/modern/ScatterChart/index.js +3 -3
  279. package/modern/ScatterChart/legend.js +1 -1
  280. package/modern/ScatterChart/plugin.js +3 -3
  281. package/modern/SparkLineChart/SparkLineChart.js +6 -6
  282. package/modern/SparkLineChart/index.js +1 -1
  283. package/modern/colorPalettes/index.js +1 -1
  284. package/modern/context/CartesianProvider/CartesianProvider.js +6 -6
  285. package/modern/context/CartesianProvider/computeValue.js +6 -6
  286. package/modern/context/CartesianProvider/defaultizeAxis.js +1 -1
  287. package/modern/context/CartesianProvider/index.js +5 -5
  288. package/modern/context/CartesianProvider/useCartesianContext.js +1 -1
  289. package/modern/context/DrawingProvider.js +1 -1
  290. package/modern/context/HighlightedProvider/HighlightedProvider.js +4 -4
  291. package/modern/context/HighlightedProvider/index.js +4 -4
  292. package/modern/context/HighlightedProvider/useHighlighted.js +1 -1
  293. package/modern/context/HighlightedProvider/useItemHighlighted.js +1 -1
  294. package/modern/context/PluginProvider/PluginProvider.js +2 -2
  295. package/modern/context/PluginProvider/index.js +10 -10
  296. package/modern/context/PluginProvider/mergePlugins.js +4 -4
  297. package/modern/context/PluginProvider/useColorProcessor.js +1 -1
  298. package/modern/context/PluginProvider/useSeriesFormatter.js +1 -1
  299. package/modern/context/PluginProvider/useXExtremumGetter.js +1 -1
  300. package/modern/context/PluginProvider/useYExtremumGetter.js +1 -1
  301. package/modern/context/SeriesProvider/SeriesProvider.js +4 -4
  302. package/modern/context/SeriesProvider/index.js +4 -4
  303. package/modern/context/SeriesProvider/processSeries.js +1 -1
  304. package/modern/context/ZAxisContextProvider.js +1 -1
  305. package/modern/context/index.js +2 -2
  306. package/modern/hooks/index.js +7 -7
  307. package/modern/hooks/useAxis.js +1 -1
  308. package/modern/hooks/useAxisEvents.js +6 -6
  309. package/modern/hooks/useChartDimensions.js +1 -1
  310. package/modern/hooks/useChartId.js +1 -1
  311. package/modern/hooks/useColorScale.js +2 -2
  312. package/modern/hooks/useDrawingArea.js +1 -1
  313. package/modern/hooks/useInteractionItemProps.js +2 -2
  314. package/modern/hooks/useReducedMotion.js +13 -12
  315. package/modern/hooks/useScale.js +2 -2
  316. package/modern/hooks/useSeries.js +1 -1
  317. package/modern/hooks/useSvgRef.js +1 -1
  318. package/modern/hooks/useTicks.js +2 -2
  319. package/modern/index.js +27 -27
  320. package/modern/internals/components/AxisSharedComponents.js +1 -1
  321. package/modern/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +5 -5
  322. package/modern/internals/components/ChartsAxesGradients/index.js +1 -1
  323. package/modern/internals/getWordsByLines.js +1 -1
  324. package/modern/internals/index.js +31 -31
  325. package/modern/internals/isCartesian.js +1 -1
  326. package/modern/internals/{useAnimatedPath.js → useStringInterpolator.js} +2 -15
  327. package/modern/models/index.js +5 -3
  328. package/modern/models/seriesType/index.js +4 -4
  329. package/modern/themeAugmentation/index.js +0 -3
  330. package/node/BarChart/BarChart.js +14 -4
  331. package/node/BarChart/BarClipPath.js +2 -3
  332. package/node/BarChart/BarElement.js +2 -3
  333. package/node/BarChart/BarLabel/BarLabel.js +2 -3
  334. package/node/BarChart/BarLabel/BarLabelItem.js +2 -3
  335. package/node/BarChart/BarLabel/BarLabelPlot.js +2 -3
  336. package/node/BarChart/BarLabel/barLabelClasses.js +1 -1
  337. package/node/BarChart/BarPlot.js +2 -3
  338. package/node/BarChart/formatter.js +1 -1
  339. package/node/BarChart/plugin.js +1 -1
  340. package/node/BarChart/useBarChartProps.js +1 -1
  341. package/node/ChartContainer/ChartContainer.js +2 -3
  342. package/node/ChartContainer/useChartContainerProps.js +2 -3
  343. package/node/ChartContainer/useDefaultizeAxis.js +2 -3
  344. package/node/ChartsAxis/ChartsAxis.js +2 -3
  345. package/node/ChartsAxisHighlight/ChartsAxisHighlight.js +2 -3
  346. package/node/ChartsClipPath/ChartsClipPath.js +2 -3
  347. package/node/ChartsGrid/ChartsGrid.js +17 -66
  348. package/node/ChartsGrid/ChartsHorizontalGrid.js +43 -0
  349. package/node/ChartsGrid/ChartsVerticalGrid.js +43 -0
  350. package/node/ChartsGrid/chartsGridClasses.js +1 -1
  351. package/node/ChartsGrid/styledCommonents.js +28 -0
  352. package/node/ChartsLegend/ChartsLegend.js +56 -23
  353. package/node/ChartsLegend/ContinuousColorLegend.js +2 -3
  354. package/node/ChartsLegend/DefaultChartsLegend.js +8 -5
  355. package/node/ChartsLegend/LegendPerItem.js +2 -7
  356. package/node/ChartsLegend/PiecewiseColorLegend.js +2 -8
  357. package/node/ChartsLegend/legendItemsPlacement.js +1 -1
  358. package/node/ChartsLegend/useAxis.js +1 -2
  359. package/node/ChartsLegend/utils.js +1 -1
  360. package/node/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +2 -3
  361. package/node/ChartsOverlay/ChartsLoadingOverlay.js +2 -3
  362. package/node/ChartsOverlay/ChartsNoDataOverlay.js +2 -3
  363. package/node/ChartsOverlay/ChartsOverlay.js +2 -3
  364. package/node/ChartsReferenceLine/ChartsReferenceLine.js +2 -3
  365. package/node/ChartsReferenceLine/ChartsXReferenceLine.js +2 -3
  366. package/node/ChartsReferenceLine/ChartsYReferenceLine.js +2 -3
  367. package/node/ChartsReferenceLine/chartsReferenceLineClasses.js +1 -1
  368. package/node/ChartsReferenceLine/common.js +1 -1
  369. package/node/ChartsSurface/ChartsSurface.js +2 -3
  370. package/node/ChartsText/ChartsText.js +2 -3
  371. package/node/ChartsTooltip/ChartsAxisTooltipContent.js +2 -3
  372. package/node/ChartsTooltip/ChartsItemTooltipContent.js +2 -3
  373. package/node/ChartsTooltip/ChartsTooltip.js +10 -9
  374. package/node/ChartsTooltip/ChartsTooltipTable.js +9 -4
  375. package/node/ChartsTooltip/DefaultChartsAxisTooltipContent.js +3 -4
  376. package/node/ChartsTooltip/DefaultChartsItemTooltipContent.js +3 -4
  377. package/node/ChartsTooltip/chartsTooltipClasses.js +1 -1
  378. package/node/ChartsTooltip/utils.js +2 -3
  379. package/node/ChartsVoronoiHandler/ChartsVoronoiHandler.js +2 -3
  380. package/node/ChartsXAxis/ChartsXAxis.js +8 -4
  381. package/node/ChartsYAxis/ChartsYAxis.js +8 -4
  382. package/node/Gauge/Gauge.js +2 -3
  383. package/node/Gauge/GaugeContainer.js +2 -3
  384. package/node/Gauge/GaugeProvider.js +1 -2
  385. package/node/Gauge/GaugeReferenceArc.js +2 -3
  386. package/node/Gauge/GaugeValueArc.js +2 -3
  387. package/node/Gauge/GaugeValueText.js +2 -3
  388. package/node/Gauge/gaugeClasses.js +1 -1
  389. package/node/LineChart/AnimatedArea.js +30 -14
  390. package/node/LineChart/AnimatedLine.js +30 -14
  391. package/node/LineChart/AreaElement.js +2 -3
  392. package/node/LineChart/AreaPlot.js +78 -74
  393. package/node/LineChart/LineChart.js +14 -4
  394. package/node/LineChart/LineElement.js +2 -3
  395. package/node/LineChart/LineHighlightElement.js +2 -3
  396. package/node/LineChart/LineHighlightPlot.js +2 -3
  397. package/node/LineChart/LinePlot.js +60 -56
  398. package/node/LineChart/MarkElement.js +2 -3
  399. package/node/LineChart/MarkPlot.js +2 -3
  400. package/node/LineChart/formatter.js +1 -1
  401. package/node/LineChart/plugin.js +1 -1
  402. package/node/LineChart/useLineChartProps.js +1 -1
  403. package/node/PieChart/PieArc.js +2 -3
  404. package/node/PieChart/PieArcLabel.js +2 -3
  405. package/node/PieChart/PieArcLabelPlot.js +2 -3
  406. package/node/PieChart/PieArcPlot.js +2 -3
  407. package/node/PieChart/PieChart.js +13 -3
  408. package/node/PieChart/PiePlot.js +2 -3
  409. package/node/PieChart/dataTransform/useTransformData.js +2 -3
  410. package/node/PieChart/formatter.js +1 -1
  411. package/node/PieChart/plugin.js +1 -1
  412. package/node/ResponsiveChartContainer/ResponsiveChartContainer.js +2 -3
  413. package/node/ResponsiveChartContainer/useChartContainerDimensions.js +2 -3
  414. package/node/ResponsiveChartContainer/useResponsiveChartContainerProps.js +1 -1
  415. package/node/ScatterChart/Scatter.js +2 -3
  416. package/node/ScatterChart/ScatterChart.js +14 -4
  417. package/node/ScatterChart/ScatterPlot.js +2 -3
  418. package/node/ScatterChart/plugin.js +1 -1
  419. package/node/ScatterChart/useScatterChartProps.js +1 -1
  420. package/node/SparkLineChart/SparkLineChart.js +2 -3
  421. package/node/context/CartesianProvider/CartesianContext.js +1 -2
  422. package/node/context/CartesianProvider/CartesianProvider.js +1 -2
  423. package/node/context/CartesianProvider/computeValue.js +1 -1
  424. package/node/context/CartesianProvider/defaultizeAxis.js +1 -1
  425. package/node/context/CartesianProvider/useCartesianContext.js +1 -2
  426. package/node/context/DrawingProvider.js +2 -3
  427. package/node/context/HighlightedProvider/HighlightedContext.js +1 -2
  428. package/node/context/HighlightedProvider/HighlightedProvider.js +2 -3
  429. package/node/context/HighlightedProvider/useHighlighted.js +1 -2
  430. package/node/context/InteractionProvider.js +2 -3
  431. package/node/context/PluginProvider/PluginContext.js +1 -2
  432. package/node/context/PluginProvider/PluginProvider.js +1 -2
  433. package/node/context/PluginProvider/useColorProcessor.js +1 -2
  434. package/node/context/PluginProvider/useSeriesFormatter.js +1 -2
  435. package/node/context/PluginProvider/useXExtremumGetter.js +1 -2
  436. package/node/context/PluginProvider/useYExtremumGetter.js +1 -2
  437. package/node/context/SeriesProvider/SeriesContext.js +1 -2
  438. package/node/context/SeriesProvider/SeriesProvider.js +1 -2
  439. package/node/context/SeriesProvider/processSeries.js +1 -1
  440. package/node/context/ZAxisContextProvider.js +2 -3
  441. package/node/hooks/useAxisEvents.js +1 -2
  442. package/node/hooks/useChartDimensions.js +2 -3
  443. package/node/hooks/useChartId.js +1 -2
  444. package/node/hooks/useColorScale.js +1 -2
  445. package/node/hooks/useDrawingArea.js +1 -2
  446. package/node/hooks/useInteractionItemProps.js +1 -2
  447. package/node/hooks/useMounted.js +2 -3
  448. package/node/hooks/useReducedMotion.js +14 -12
  449. package/node/hooks/useSeries.js +1 -2
  450. package/node/hooks/useSvgRef.js +1 -2
  451. package/node/hooks/useTicks.js +1 -2
  452. package/node/index.js +1 -1
  453. package/node/internals/components/AxisSharedComponents.js +1 -1
  454. package/node/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +2 -3
  455. package/node/internals/components/ChartsAxesGradients/ChartsContinuousGradient.js +1 -2
  456. package/node/internals/components/ChartsAxesGradients/ChartsPiecewiseGradient.js +1 -2
  457. package/node/internals/defaultizeColor.js +1 -1
  458. package/node/internals/defaultizeValueFormatter.js +1 -1
  459. package/node/internals/domUtils.js +1 -1
  460. package/node/internals/getWordsByLines.js +1 -1
  461. package/node/internals/useStringInterpolator.js +28 -0
  462. package/node/tests/firePointerEvent.js +1 -1
  463. package/node/themeAugmentation/index.js +1 -38
  464. package/package.json +4 -3
  465. package/themeAugmentation/components.d.ts +2 -0
  466. package/themeAugmentation/index.d.ts +3 -3
  467. package/themeAugmentation/index.js +0 -3
  468. package/themeAugmentation/overrides.d.ts +6 -4
  469. package/internals/useAnimatedPath.d.ts +0 -1
  470. package/node/internals/useAnimatedPath.js +0 -42
@@ -3,13 +3,13 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
3
3
  const _excluded = ["d", "skipAnimation", "ownerState"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
- import { animated, useSpring } from '@react-spring/web';
6
+ import { animated, useTransition } from '@react-spring/web';
7
7
  import { color as d3Color } from '@mui/x-charts-vendor/d3-color';
8
8
  import { styled } from '@mui/material/styles';
9
- import { useAnimatedPath } from '../internals/useAnimatedPath';
10
- import { cleanId } from '../internals/cleanId';
11
- import { useChartId } from '../hooks/useChartId';
12
- import { useDrawingArea } from '../hooks/useDrawingArea';
9
+ import { cleanId } from "../internals/cleanId.js";
10
+ import { useChartId } from "../hooks/useChartId.js";
11
+ import { useDrawingArea } from "../hooks/useDrawingArea.js";
12
+ import { useStringInterpolator } from "../internals/useStringInterpolator.js";
13
13
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
14
  export const LineElementPath = styled(animated.path, {
15
15
  name: 'MuiLineElement',
@@ -51,16 +51,33 @@ function AnimatedLine(props) {
51
51
  right
52
52
  } = useDrawingArea();
53
53
  const chartId = useChartId();
54
- const path = useAnimatedPath(d, skipAnimation);
55
- const {
56
- animatedWidth
57
- } = useSpring({
54
+ const stringInterpolator = useStringInterpolator(d);
55
+ const transitionAppear = useTransition([1], {
58
56
  from: {
59
57
  animatedWidth: left
60
58
  },
61
59
  to: {
62
60
  animatedWidth: width + left + right
63
61
  },
62
+ enter: {
63
+ animatedWidth: width + left + right
64
+ },
65
+ leave: {
66
+ animatedWidth: left
67
+ },
68
+ reset: false,
69
+ immediate: skipAnimation
70
+ });
71
+ const transitionChange = useTransition([stringInterpolator], {
72
+ from: {
73
+ value: 0
74
+ },
75
+ to: {
76
+ value: 1
77
+ },
78
+ enter: {
79
+ value: 1
80
+ },
64
81
  reset: false,
65
82
  immediate: skipAnimation
66
83
  });
@@ -68,18 +85,18 @@ function AnimatedLine(props) {
68
85
  return /*#__PURE__*/_jsxs(React.Fragment, {
69
86
  children: [/*#__PURE__*/_jsx("clipPath", {
70
87
  id: clipId,
71
- children: /*#__PURE__*/_jsx(animated.rect, {
88
+ children: transitionAppear(style => /*#__PURE__*/_jsx(animated.rect, {
72
89
  x: 0,
73
90
  y: 0,
74
- width: animatedWidth,
91
+ width: style.animatedWidth,
75
92
  height: top + height + bottom
76
- })
93
+ }))
77
94
  }), /*#__PURE__*/_jsx("g", {
78
95
  clipPath: `url(#${clipId})`,
79
- children: /*#__PURE__*/_jsx(LineElementPath, _extends({}, other, {
96
+ children: transitionChange((style, interpolator) => /*#__PURE__*/_jsx(LineElementPath, _extends({}, other, {
80
97
  ownerState: ownerState,
81
- d: path
82
- }))
98
+ d: style.value.to(interpolator)
99
+ })))
83
100
  })]
84
101
  });
85
102
  }
@@ -7,9 +7,9 @@ import composeClasses from '@mui/utils/composeClasses';
7
7
  import useSlotProps from '@mui/utils/useSlotProps';
8
8
  import generateUtilityClass from '@mui/utils/generateUtilityClass';
9
9
  import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
10
- import { useInteractionItemProps } from '../hooks/useInteractionItemProps';
11
- import { AnimatedArea } from './AnimatedArea';
12
- import { useItemHighlighted } from '../context';
10
+ import { useInteractionItemProps } from "../hooks/useInteractionItemProps.js";
11
+ import { AnimatedArea } from "./AnimatedArea.js";
12
+ import { useItemHighlighted } from "../context/index.js";
13
13
  import { jsx as _jsx } from "react/jsx-runtime";
14
14
  export function getAreaElementUtilityClass(slot) {
15
15
  return generateUtilityClass('MuiAreaElement', slot);
@@ -4,91 +4,96 @@ const _excluded = ["slots", "slotProps", "onItemClick", "skipAnimation"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import { area as d3Area } from '@mui/x-charts-vendor/d3-shape';
7
- import { useCartesianContext } from '../context/CartesianProvider';
8
- import { AreaElement } from './AreaElement';
9
- import { getValueToPositionMapper } from '../hooks/useScale';
10
- import getCurveFactory from '../internals/getCurve';
11
- import { DEFAULT_X_AXIS_KEY } from '../constants';
12
- import { useChartGradient } from '../internals/components/ChartsAxesGradients';
13
- import { useLineSeries } from '../hooks/useSeries';
7
+ import { useCartesianContext } from "../context/CartesianProvider/index.js";
8
+ import { AreaElement } from "./AreaElement.js";
9
+ import { getValueToPositionMapper } from "../hooks/useScale.js";
10
+ import getCurveFactory from "../internals/getCurve.js";
11
+ import { DEFAULT_X_AXIS_KEY } from "../constants/index.js";
12
+ import { useChartGradient } from "../internals/components/ChartsAxesGradients/index.js";
13
+ import { useLineSeries } from "../hooks/useSeries.js";
14
14
  import { jsx as _jsx } from "react/jsx-runtime";
15
15
  const useAggregatedData = () => {
16
16
  const seriesData = useLineSeries();
17
17
  const axisData = useCartesianContext();
18
- if (seriesData === undefined) {
19
- return [];
20
- }
21
- const {
22
- series,
23
- stackingGroups
24
- } = seriesData;
25
- const {
26
- xAxis,
27
- yAxis,
28
- xAxisIds,
29
- yAxisIds
30
- } = axisData;
31
- const defaultXAxisId = xAxisIds[0];
32
- const defaultYAxisId = yAxisIds[0];
33
- return stackingGroups.flatMap(({
34
- ids: groupIds
35
- }) => {
36
- return [...groupIds].reverse() // Revert stacked area for a more pleasant animation
37
- .map(seriesId => {
38
- const {
39
- xAxisId: xAxisIdProp,
40
- yAxisId: yAxisIdProp,
41
- xAxisKey = defaultXAxisId,
42
- yAxisKey = defaultYAxisId,
43
- stackedData,
44
- data,
45
- connectNulls,
46
- baseline
47
- } = series[seriesId];
48
- const xAxisId = xAxisIdProp ?? xAxisKey;
49
- const yAxisId = yAxisIdProp ?? yAxisKey;
50
- const xScale = getValueToPositionMapper(xAxis[xAxisId].scale);
51
- const yScale = yAxis[yAxisId].scale;
52
- const xData = xAxis[xAxisId].data;
53
- const gradientUsed = yAxis[yAxisId].colorScale && [yAxisId, 'y'] || xAxis[xAxisId].colorScale && [xAxisId, 'x'] || undefined;
54
- if (process.env.NODE_ENV !== 'production') {
55
- if (xData === undefined) {
56
- throw new Error(`MUI X: ${xAxisId === DEFAULT_X_AXIS_KEY ? 'The first `xAxis`' : `The x-axis with id "${xAxisId}"`} should have data property to be able to display a line plot.`);
57
- }
58
- if (xData.length < stackedData.length) {
59
- throw new Error(`MUI X: The data length of the x axis (${xData.length} items) is lower than the length of series (${stackedData.length} items).`);
60
- }
61
- }
62
- const areaPath = d3Area().x(d => xScale(d.x)).defined((_, i) => connectNulls || data[i] != null).y0(d => {
63
- if (typeof baseline === 'number') {
64
- return yScale(baseline);
65
- }
66
- if (baseline === 'max') {
67
- return yScale.range()[1];
68
- }
69
- if (baseline === 'min') {
70
- return yScale.range()[0];
71
- }
72
- const value = d.y && yScale(d.y[0]);
73
- if (Number.isNaN(value)) {
74
- return yScale.range()[0];
18
+
19
+ // This memo prevents odd line chart behavior when hydrating.
20
+ const allData = React.useMemo(() => {
21
+ if (seriesData === undefined) {
22
+ return [];
23
+ }
24
+ const {
25
+ series,
26
+ stackingGroups
27
+ } = seriesData;
28
+ const {
29
+ xAxis,
30
+ yAxis,
31
+ xAxisIds,
32
+ yAxisIds
33
+ } = axisData;
34
+ const defaultXAxisId = xAxisIds[0];
35
+ const defaultYAxisId = yAxisIds[0];
36
+ return stackingGroups.flatMap(({
37
+ ids: groupIds
38
+ }) => {
39
+ return [...groupIds].reverse() // Revert stacked area for a more pleasant animation
40
+ .map(seriesId => {
41
+ const {
42
+ xAxisId: xAxisIdProp,
43
+ yAxisId: yAxisIdProp,
44
+ xAxisKey = defaultXAxisId,
45
+ yAxisKey = defaultYAxisId,
46
+ stackedData,
47
+ data,
48
+ connectNulls,
49
+ baseline
50
+ } = series[seriesId];
51
+ const xAxisId = xAxisIdProp ?? xAxisKey;
52
+ const yAxisId = yAxisIdProp ?? yAxisKey;
53
+ const xScale = getValueToPositionMapper(xAxis[xAxisId].scale);
54
+ const yScale = yAxis[yAxisId].scale;
55
+ const xData = xAxis[xAxisId].data;
56
+ const gradientUsed = yAxis[yAxisId].colorScale && [yAxisId, 'y'] || xAxis[xAxisId].colorScale && [xAxisId, 'x'] || undefined;
57
+ if (process.env.NODE_ENV !== 'production') {
58
+ if (xData === undefined) {
59
+ throw new Error(`MUI X: ${xAxisId === DEFAULT_X_AXIS_KEY ? 'The first `xAxis`' : `The x-axis with id "${xAxisId}"`} should have data property to be able to display a line plot.`);
60
+ }
61
+ if (xData.length < stackedData.length) {
62
+ throw new Error(`MUI X: The data length of the x axis (${xData.length} items) is lower than the length of series (${stackedData.length} items).`);
63
+ }
75
64
  }
76
- return value;
77
- }).y1(d => d.y && yScale(d.y[1]));
78
- const curve = getCurveFactory(series[seriesId].curve);
79
- const formattedData = xData?.map((x, index) => ({
80
- x,
81
- y: stackedData[index]
82
- })) ?? [];
83
- const d3Data = connectNulls ? formattedData.filter((_, i) => data[i] != null) : formattedData;
84
- const d = areaPath.curve(curve)(d3Data) || '';
85
- return _extends({}, series[seriesId], {
86
- gradientUsed,
87
- d,
88
- seriesId
65
+ const areaPath = d3Area().x(d => xScale(d.x)).defined((_, i) => connectNulls || data[i] != null).y0(d => {
66
+ if (typeof baseline === 'number') {
67
+ return yScale(baseline);
68
+ }
69
+ if (baseline === 'max') {
70
+ return yScale.range()[1];
71
+ }
72
+ if (baseline === 'min') {
73
+ return yScale.range()[0];
74
+ }
75
+ const value = d.y && yScale(d.y[0]);
76
+ if (Number.isNaN(value)) {
77
+ return yScale.range()[0];
78
+ }
79
+ return value;
80
+ }).y1(d => d.y && yScale(d.y[1]));
81
+ const curve = getCurveFactory(series[seriesId].curve);
82
+ const formattedData = xData?.map((x, index) => ({
83
+ x,
84
+ y: stackedData[index]
85
+ })) ?? [];
86
+ const d3Data = connectNulls ? formattedData.filter((_, i) => data[i] != null) : formattedData;
87
+ const d = areaPath.curve(curve)(d3Data) || '';
88
+ return _extends({}, series[seriesId], {
89
+ gradientUsed,
90
+ d,
91
+ seriesId
92
+ });
89
93
  });
90
94
  });
91
- });
95
+ }, [seriesData, axisData]);
96
+ return allData;
92
97
  };
93
98
 
94
99
  /**
@@ -2,20 +2,20 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
3
  import PropTypes from 'prop-types';
4
4
  import { useThemeProps } from '@mui/material/styles';
5
- import { AreaPlot } from './AreaPlot';
6
- import { LinePlot } from './LinePlot';
7
- import { ResponsiveChartContainer } from '../ResponsiveChartContainer';
8
- import { MarkPlot } from './MarkPlot';
9
- import { ChartsAxis } from '../ChartsAxis/ChartsAxis';
10
- import { ChartsTooltip } from '../ChartsTooltip';
11
- import { ChartsLegend } from '../ChartsLegend';
12
- import { ChartsAxisHighlight } from '../ChartsAxisHighlight';
13
- import { ChartsClipPath } from '../ChartsClipPath';
14
- import { LineHighlightPlot } from './LineHighlightPlot';
15
- import { ChartsGrid } from '../ChartsGrid';
16
- import { ChartsOnAxisClickHandler } from '../ChartsOnAxisClickHandler';
17
- import { ChartsOverlay } from '../ChartsOverlay';
18
- import { useLineChartProps } from './useLineChartProps';
5
+ import { AreaPlot } from "./AreaPlot.js";
6
+ import { LinePlot } from "./LinePlot.js";
7
+ import { ResponsiveChartContainer } from "../ResponsiveChartContainer/index.js";
8
+ import { MarkPlot } from "./MarkPlot.js";
9
+ import { ChartsAxis } from "../ChartsAxis/ChartsAxis.js";
10
+ import { ChartsTooltip } from "../ChartsTooltip/index.js";
11
+ import { ChartsLegend } from "../ChartsLegend/index.js";
12
+ import { ChartsAxisHighlight } from "../ChartsAxisHighlight/index.js";
13
+ import { ChartsClipPath } from "../ChartsClipPath/index.js";
14
+ import { LineHighlightPlot } from "./LineHighlightPlot.js";
15
+ import { ChartsGrid } from "../ChartsGrid/index.js";
16
+ import { ChartsOnAxisClickHandler } from "../ChartsOnAxisClickHandler/index.js";
17
+ import { ChartsOverlay } from "../ChartsOverlay/index.js";
18
+ import { useLineChartProps } from "./useLineChartProps.js";
19
19
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
20
20
  /**
21
21
  * Demos:
@@ -52,7 +52,7 @@ const LineChart = /*#__PURE__*/React.forwardRef(function LineChart(inProps, ref)
52
52
  return /*#__PURE__*/_jsxs(ResponsiveChartContainer, _extends({
53
53
  ref: ref
54
54
  }, chartContainerProps, {
55
- children: [props.onAxisClick && /*#__PURE__*/_jsx(ChartsOnAxisClickHandler, _extends({}, axisClickHandlerProps)), props.grid && /*#__PURE__*/_jsx(ChartsGrid, _extends({}, gridProps)), /*#__PURE__*/_jsxs("g", _extends({}, clipPathGroupProps, {
55
+ children: [props.onAxisClick && /*#__PURE__*/_jsx(ChartsOnAxisClickHandler, _extends({}, axisClickHandlerProps)), /*#__PURE__*/_jsx(ChartsGrid, _extends({}, gridProps)), /*#__PURE__*/_jsxs("g", _extends({}, clipPathGroupProps, {
56
56
  children: [/*#__PURE__*/_jsx(AreaPlot, _extends({}, areaPlotProps)), /*#__PURE__*/_jsx(LinePlot, _extends({}, linePlotProps)), /*#__PURE__*/_jsx(ChartsOverlay, _extends({}, overlayProps)), /*#__PURE__*/_jsx(ChartsAxisHighlight, _extends({}, axisHighlightProps))]
57
57
  })), /*#__PURE__*/_jsx(ChartsAxis, _extends({}, chartsAxisProps)), /*#__PURE__*/_jsx("g", {
58
58
  "data-drawing-container": true,
@@ -133,6 +133,17 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
133
133
  classes: PropTypes.object,
134
134
  direction: PropTypes.oneOf(['column', 'row']),
135
135
  hidden: PropTypes.bool,
136
+ itemGap: PropTypes.number,
137
+ itemMarkHeight: PropTypes.number,
138
+ itemMarkWidth: PropTypes.number,
139
+ labelStyle: PropTypes.object,
140
+ markGap: PropTypes.number,
141
+ padding: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({
142
+ bottom: PropTypes.number,
143
+ left: PropTypes.number,
144
+ right: PropTypes.number,
145
+ top: PropTypes.number
146
+ })]),
136
147
  position: PropTypes.shape({
137
148
  horizontal: PropTypes.oneOf(['left', 'middle', 'right']).isRequired,
138
149
  vertical: PropTypes.oneOf(['bottom', 'middle', 'top']).isRequired
@@ -7,9 +7,9 @@ import composeClasses from '@mui/utils/composeClasses';
7
7
  import useSlotProps from '@mui/utils/useSlotProps';
8
8
  import generateUtilityClass from '@mui/utils/generateUtilityClass';
9
9
  import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
10
- import { useInteractionItemProps } from '../hooks/useInteractionItemProps';
11
- import { AnimatedLine } from './AnimatedLine';
12
- import { useItemHighlighted } from '../context';
10
+ import { useInteractionItemProps } from "../hooks/useInteractionItemProps.js";
11
+ import { AnimatedLine } from "./AnimatedLine.js";
12
+ import { useItemHighlighted } from "../context/index.js";
13
13
  import { jsx as _jsx } from "react/jsx-runtime";
14
14
  export function getLineElementUtilityClass(slot) {
15
15
  return generateUtilityClass('MuiLineElement', slot);
@@ -3,14 +3,14 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
3
3
  const _excluded = ["slots", "slotProps"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
- import { useCartesianContext } from '../context/CartesianProvider';
7
- import { LineHighlightElement } from './LineHighlightElement';
8
- import { getValueToPositionMapper } from '../hooks/useScale';
9
- import { InteractionContext } from '../context/InteractionProvider';
10
- import { DEFAULT_X_AXIS_KEY } from '../constants';
11
- import getColor from './getColor';
12
- import { useLineSeries } from '../hooks/useSeries';
13
- import { useDrawingArea } from '../hooks/useDrawingArea';
6
+ import { useCartesianContext } from "../context/CartesianProvider/index.js";
7
+ import { LineHighlightElement } from "./LineHighlightElement.js";
8
+ import { getValueToPositionMapper } from "../hooks/useScale.js";
9
+ import { InteractionContext } from "../context/InteractionProvider.js";
10
+ import { DEFAULT_X_AXIS_KEY } from "../constants/index.js";
11
+ import getColor from "./getColor.js";
12
+ import { useLineSeries } from "../hooks/useSeries.js";
13
+ import { useDrawingArea } from "../hooks/useDrawingArea.js";
14
14
  import { jsx as _jsx } from "react/jsx-runtime";
15
15
  /**
16
16
  * Demos:
@@ -4,73 +4,78 @@ const _excluded = ["slots", "slotProps", "skipAnimation", "onItemClick"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import { line as d3Line } from '@mui/x-charts-vendor/d3-shape';
7
- import { useCartesianContext } from '../context/CartesianProvider';
8
- import { LineElement } from './LineElement';
9
- import { getValueToPositionMapper } from '../hooks/useScale';
10
- import getCurveFactory from '../internals/getCurve';
11
- import { DEFAULT_X_AXIS_KEY } from '../constants';
12
- import { useChartGradient } from '../internals/components/ChartsAxesGradients';
13
- import { useLineSeries } from '../hooks/useSeries';
7
+ import { useCartesianContext } from "../context/CartesianProvider/index.js";
8
+ import { LineElement } from "./LineElement.js";
9
+ import { getValueToPositionMapper } from "../hooks/useScale.js";
10
+ import getCurveFactory from "../internals/getCurve.js";
11
+ import { DEFAULT_X_AXIS_KEY } from "../constants/index.js";
12
+ import { useChartGradient } from "../internals/components/ChartsAxesGradients/index.js";
13
+ import { useLineSeries } from "../hooks/useSeries.js";
14
14
  import { jsx as _jsx } from "react/jsx-runtime";
15
15
  const useAggregatedData = () => {
16
16
  const seriesData = useLineSeries();
17
17
  const axisData = useCartesianContext();
18
- if (seriesData === undefined) {
19
- return [];
20
- }
21
- const {
22
- series,
23
- stackingGroups
24
- } = seriesData;
25
- const {
26
- xAxis,
27
- yAxis,
28
- xAxisIds,
29
- yAxisIds
30
- } = axisData;
31
- const defaultXAxisId = xAxisIds[0];
32
- const defaultYAxisId = yAxisIds[0];
33
- return stackingGroups.flatMap(({
34
- ids: groupIds
35
- }) => {
36
- return groupIds.flatMap(seriesId => {
37
- const {
38
- xAxisId: xAxisIdProp,
39
- yAxisId: yAxisIdProp,
40
- xAxisKey = defaultXAxisId,
41
- yAxisKey = defaultYAxisId,
42
- stackedData,
43
- data,
44
- connectNulls
45
- } = series[seriesId];
46
- const xAxisId = xAxisIdProp ?? xAxisKey;
47
- const yAxisId = yAxisIdProp ?? yAxisKey;
48
- const xScale = getValueToPositionMapper(xAxis[xAxisId].scale);
49
- const yScale = yAxis[yAxisId].scale;
50
- const xData = xAxis[xAxisId].data;
51
- const gradientUsed = yAxis[yAxisId].colorScale && [yAxisId, 'y'] || xAxis[xAxisId].colorScale && [xAxisId, 'x'] || undefined;
52
- if (process.env.NODE_ENV !== 'production') {
53
- if (xData === undefined) {
54
- throw new Error(`MUI X: ${xAxisId === DEFAULT_X_AXIS_KEY ? 'The first `xAxis`' : `The x-axis with id "${xAxisId}"`} should have data property to be able to display a line plot.`);
55
- }
56
- if (xData.length < stackedData.length) {
57
- throw new Error(`MUI X: The data length of the x axis (${xData.length} items) is lower than the length of series (${stackedData.length} items).`);
18
+
19
+ // This memo prevents odd line chart behavior when hydrating.
20
+ const allData = React.useMemo(() => {
21
+ if (seriesData === undefined) {
22
+ return [];
23
+ }
24
+ const {
25
+ series,
26
+ stackingGroups
27
+ } = seriesData;
28
+ const {
29
+ xAxis,
30
+ yAxis,
31
+ xAxisIds,
32
+ yAxisIds
33
+ } = axisData;
34
+ const defaultXAxisId = xAxisIds[0];
35
+ const defaultYAxisId = yAxisIds[0];
36
+ return stackingGroups.flatMap(({
37
+ ids: groupIds
38
+ }) => {
39
+ return groupIds.flatMap(seriesId => {
40
+ const {
41
+ xAxisId: xAxisIdProp,
42
+ yAxisId: yAxisIdProp,
43
+ xAxisKey = defaultXAxisId,
44
+ yAxisKey = defaultYAxisId,
45
+ stackedData,
46
+ data,
47
+ connectNulls
48
+ } = series[seriesId];
49
+ const xAxisId = xAxisIdProp ?? xAxisKey;
50
+ const yAxisId = yAxisIdProp ?? yAxisKey;
51
+ const xScale = getValueToPositionMapper(xAxis[xAxisId].scale);
52
+ const yScale = yAxis[yAxisId].scale;
53
+ const xData = xAxis[xAxisId].data;
54
+ const gradientUsed = yAxis[yAxisId].colorScale && [yAxisId, 'y'] || xAxis[xAxisId].colorScale && [xAxisId, 'x'] || undefined;
55
+ if (process.env.NODE_ENV !== 'production') {
56
+ if (xData === undefined) {
57
+ throw new Error(`MUI X: ${xAxisId === DEFAULT_X_AXIS_KEY ? 'The first `xAxis`' : `The x-axis with id "${xAxisId}"`} should have data property to be able to display a line plot.`);
58
+ }
59
+ if (xData.length < stackedData.length) {
60
+ throw new Error(`MUI X: The data length of the x axis (${xData.length} items) is lower than the length of series (${stackedData.length} items).`);
61
+ }
58
62
  }
59
- }
60
- const linePath = d3Line().x(d => xScale(d.x)).defined((_, i) => connectNulls || data[i] != null).y(d => yScale(d.y[1]));
61
- const formattedData = xData?.map((x, index) => ({
62
- x,
63
- y: stackedData[index]
64
- })) ?? [];
65
- const d3Data = connectNulls ? formattedData.filter((_, i) => data[i] != null) : formattedData;
66
- const d = linePath.curve(getCurveFactory(series[seriesId].curve))(d3Data) || '';
67
- return _extends({}, series[seriesId], {
68
- gradientUsed,
69
- d,
70
- seriesId
63
+ const linePath = d3Line().x(d => xScale(d.x)).defined((_, i) => connectNulls || data[i] != null).y(d => yScale(d.y[1]));
64
+ const formattedData = xData?.map((x, index) => ({
65
+ x,
66
+ y: stackedData[index]
67
+ })) ?? [];
68
+ const d3Data = connectNulls ? formattedData.filter((_, i) => data[i] != null) : formattedData;
69
+ const d = linePath.curve(getCurveFactory(series[seriesId].curve))(d3Data) || '';
70
+ return _extends({}, series[seriesId], {
71
+ gradientUsed,
72
+ d,
73
+ seriesId
74
+ });
71
75
  });
72
76
  });
73
- });
77
+ }, [seriesData, axisData]);
78
+ return allData;
74
79
  };
75
80
 
76
81
  /**
@@ -9,10 +9,10 @@ import { styled } from '@mui/material/styles';
9
9
  import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
10
10
  import { symbol as d3Symbol, symbolsFill as d3SymbolsFill } from '@mui/x-charts-vendor/d3-shape';
11
11
  import { animated, to, useSpring } from '@react-spring/web';
12
- import { getSymbol } from '../internals/getSymbol';
13
- import { InteractionContext } from '../context/InteractionProvider';
14
- import { useInteractionItemProps } from '../hooks/useInteractionItemProps';
15
- import { useItemHighlighted } from '../context';
12
+ import { getSymbol } from "../internals/getSymbol.js";
13
+ import { InteractionContext } from "../context/InteractionProvider.js";
14
+ import { useInteractionItemProps } from "../hooks/useInteractionItemProps.js";
15
+ import { useItemHighlighted } from "../context/index.js";
16
16
  import { jsx as _jsx } from "react/jsx-runtime";
17
17
  export function getMarkElementUtilityClass(slot) {
18
18
  return generateUtilityClass('MuiMarkElement', slot);
@@ -3,15 +3,15 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
3
3
  const _excluded = ["slots", "slotProps", "skipAnimation", "onItemClick"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
- import { useCartesianContext } from '../context/CartesianProvider';
7
- import { MarkElement } from './MarkElement';
8
- import { getValueToPositionMapper } from '../hooks/useScale';
9
- import { useChartId } from '../hooks/useChartId';
10
- import { DEFAULT_X_AXIS_KEY } from '../constants';
11
- import { cleanId } from '../internals/cleanId';
12
- import getColor from './getColor';
13
- import { useLineSeries } from '../hooks/useSeries';
14
- import { useDrawingArea } from '../hooks/useDrawingArea';
6
+ import { useCartesianContext } from "../context/CartesianProvider/index.js";
7
+ import { MarkElement } from "./MarkElement.js";
8
+ import { getValueToPositionMapper } from "../hooks/useScale.js";
9
+ import { useChartId } from "../hooks/useChartId.js";
10
+ import { DEFAULT_X_AXIS_KEY } from "../constants/index.js";
11
+ import { cleanId } from "../internals/cleanId.js";
12
+ import getColor from "./getColor.js";
13
+ import { useLineSeries } from "../hooks/useSeries.js";
14
+ import { useDrawingArea } from "../hooks/useDrawingArea.js";
15
15
  import { jsx as _jsx } from "react/jsx-runtime";
16
16
  /**
17
17
  * Demos:
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import { stack as d3Stack } from '@mui/x-charts-vendor/d3-shape';
3
- import { getStackingGroups } from '../internals/stackSeries';
4
- import { defaultizeValueFormatter } from '../internals/defaultizeValueFormatter';
3
+ import { getStackingGroups } from "../internals/stackSeries.js";
4
+ import { defaultizeValueFormatter } from "../internals/defaultizeValueFormatter.js";
5
5
  let warnedOnce = false;
6
6
 
7
7
  // For now it's a copy past of bar charts formatter, but maybe will diverge later
@@ -1,11 +1,11 @@
1
- export * from './LineChart';
2
- export * from './LinePlot';
3
- export * from './AreaPlot';
4
- export * from './MarkPlot';
5
- export * from './LineHighlightPlot';
6
- export * from './AreaElement';
7
- export * from './AnimatedArea';
8
- export * from './LineElement';
9
- export * from './AnimatedLine';
10
- export * from './MarkElement';
11
- export * from './LineHighlightElement';
1
+ export * from "./LineChart.js";
2
+ export * from "./LinePlot.js";
3
+ export * from "./AreaPlot.js";
4
+ export * from "./MarkPlot.js";
5
+ export * from "./LineHighlightPlot.js";
6
+ export * from "./AreaElement.js";
7
+ export * from "./AnimatedArea.js";
8
+ export * from "./LineElement.js";
9
+ export * from "./AnimatedLine.js";
10
+ export * from "./MarkElement.js";
11
+ export * from "./LineHighlightElement.js";
@@ -1,4 +1,4 @@
1
- import { getLabel } from '../internals/getLabel';
1
+ import { getLabel } from "../internals/getLabel.js";
2
2
  const legendGetter = params => {
3
3
  const {
4
4
  seriesOrder,
@@ -1,6 +1,6 @@
1
- import { getExtremumX, getExtremumY } from './extremums';
2
- import formatter from './formatter';
3
- import getColor from './getColor';
1
+ import { getExtremumX, getExtremumY } from "./extremums.js";
2
+ import formatter from "./formatter.js";
3
+ import getColor from "./getColor.js";
4
4
  export const plugin = {
5
5
  seriesType: 'line',
6
6
  colorProcessor: getColor,
@@ -2,7 +2,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
3
  const _excluded = ["xAxis", "yAxis", "series", "width", "height", "margin", "colors", "dataset", "sx", "tooltip", "onAxisClick", "onAreaClick", "onLineClick", "onMarkClick", "axisHighlight", "disableLineItemHighlight", "legend", "grid", "topAxis", "leftAxis", "rightAxis", "bottomAxis", "children", "slots", "slotProps", "skipAnimation", "loading", "highlightedItem", "onHighlightChange", "className"];
4
4
  import useId from '@mui/utils/useId';
5
- import { DEFAULT_X_AXIS_KEY } from '../constants';
5
+ import { DEFAULT_X_AXIS_KEY } from "../constants/index.js";
6
6
  /**
7
7
  * A helper function that extracts LineChartProps from the input props
8
8
  * and returns an object with props for the children components of LineChart.