@mui/x-charts 7.15.0 → 7.17.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 (516) hide show
  1. package/BarChart/BarChart.js +26 -12
  2. package/BarChart/BarClipPath.js +1 -1
  3. package/BarChart/BarElement.js +4 -2
  4. package/BarChart/BarLabel/BarLabel.js +3 -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 +10 -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 +4 -3
  13. package/BarChart/plugin.js +3 -3
  14. package/BarChart/useBarChartProps.js +3 -1
  15. package/CHANGELOG.md +185 -1
  16. package/ChartContainer/ChartContainer.js +11 -9
  17. package/ChartContainer/index.js +1 -1
  18. package/ChartContainer/useChartContainerProps.js +4 -2
  19. package/ChartContainer/useDefaultizeAxis.js +3 -1
  20. package/ChartsAxis/ChartsAxis.js +5 -3
  21. package/ChartsAxis/index.js +2 -2
  22. package/ChartsAxisHighlight/ChartsAxisHighlight.js +6 -4
  23. package/ChartsAxisHighlight/index.js +1 -1
  24. package/ChartsClipPath/ChartsClipPath.js +3 -1
  25. package/ChartsClipPath/index.js +1 -1
  26. package/ChartsGrid/ChartsGrid.js +20 -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 +70 -26
  36. package/ChartsLegend/ChartsLegendItem.d.ts +26 -0
  37. package/ChartsLegend/ChartsLegendItem.js +65 -0
  38. package/ChartsLegend/ContinuousColorLegend.js +9 -7
  39. package/ChartsLegend/DefaultChartsLegend.d.ts +15 -2
  40. package/ChartsLegend/DefaultChartsLegend.js +31 -5
  41. package/ChartsLegend/LegendPerItem.d.ts +10 -6
  42. package/ChartsLegend/LegendPerItem.js +22 -35
  43. package/ChartsLegend/PiecewiseColorLegend.d.ts +9 -1
  44. package/ChartsLegend/PiecewiseColorLegend.js +31 -15
  45. package/ChartsLegend/chartsLegend.types.d.ts +39 -1
  46. package/ChartsLegend/chartsLegendClasses.d.ts +2 -0
  47. package/ChartsLegend/chartsLegendClasses.js +1 -1
  48. package/ChartsLegend/index.js +6 -6
  49. package/ChartsLegend/useAxis.js +4 -2
  50. package/ChartsLegend/utils.js +4 -4
  51. package/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +7 -5
  52. package/ChartsOnAxisClickHandler/index.js +1 -1
  53. package/ChartsOverlay/ChartsLoadingOverlay.js +3 -1
  54. package/ChartsOverlay/ChartsNoDataOverlay.js +3 -1
  55. package/ChartsOverlay/ChartsOverlay.js +5 -3
  56. package/ChartsOverlay/index.js +3 -3
  57. package/ChartsReferenceLine/ChartsReferenceLine.js +4 -2
  58. package/ChartsReferenceLine/ChartsXReferenceLine.js +7 -5
  59. package/ChartsReferenceLine/ChartsYReferenceLine.js +7 -5
  60. package/ChartsReferenceLine/common.js +1 -1
  61. package/ChartsReferenceLine/index.js +2 -2
  62. package/ChartsSurface/ChartsSurface.js +3 -1
  63. package/ChartsSurface/index.js +1 -1
  64. package/ChartsText/ChartsText.js +3 -1
  65. package/ChartsText/index.js +1 -1
  66. package/ChartsTooltip/ChartsAxisTooltipContent.js +6 -6
  67. package/ChartsTooltip/ChartsItemTooltipContent.d.ts +1 -1
  68. package/ChartsTooltip/ChartsItemTooltipContent.js +5 -5
  69. package/ChartsTooltip/ChartsTooltip.d.ts +2 -2
  70. package/ChartsTooltip/ChartsTooltip.js +15 -11
  71. package/ChartsTooltip/ChartsTooltipTable.js +10 -5
  72. package/ChartsTooltip/DefaultChartsAxisTooltipContent.js +7 -5
  73. package/ChartsTooltip/DefaultChartsItemTooltipContent.js +5 -3
  74. package/ChartsTooltip/chartsTooltipClasses.d.ts +2 -0
  75. package/ChartsTooltip/chartsTooltipClasses.js +1 -1
  76. package/ChartsTooltip/index.js +7 -7
  77. package/ChartsTooltip/utils.js +1 -1
  78. package/ChartsVoronoiHandler/ChartsVoronoiHandler.js +9 -7
  79. package/ChartsVoronoiHandler/index.js +1 -1
  80. package/ChartsXAxis/ChartsXAxis.js +20 -13
  81. package/ChartsXAxis/index.js +1 -1
  82. package/ChartsYAxis/ChartsYAxis.js +17 -10
  83. package/ChartsYAxis/index.js +1 -1
  84. package/Gauge/Gauge.js +7 -5
  85. package/Gauge/GaugeContainer.js +6 -4
  86. package/Gauge/GaugeProvider.js +3 -3
  87. package/Gauge/GaugeReferenceArc.js +3 -1
  88. package/Gauge/GaugeValueArc.js +3 -1
  89. package/Gauge/GaugeValueText.js +4 -2
  90. package/Gauge/index.js +7 -7
  91. package/LineChart/AnimatedArea.js +33 -14
  92. package/LineChart/AnimatedLine.js +34 -15
  93. package/LineChart/AreaElement.js +5 -3
  94. package/LineChart/AreaPlot.js +85 -78
  95. package/LineChart/CircleMarkElement.d.ts +34 -0
  96. package/LineChart/CircleMarkElement.js +107 -0
  97. package/LineChart/LineChart.d.ts +4 -0
  98. package/LineChart/LineChart.js +33 -15
  99. package/LineChart/LineElement.js +5 -3
  100. package/LineChart/LineHighlightElement.js +2 -0
  101. package/LineChart/LineHighlightPlot.js +10 -8
  102. package/LineChart/LinePlot.js +67 -60
  103. package/LineChart/MarkElement.d.ts +1 -19
  104. package/LineChart/MarkElement.js +7 -23
  105. package/LineChart/MarkPlot.d.ts +6 -0
  106. package/LineChart/MarkPlot.js +22 -12
  107. package/LineChart/formatter.js +2 -2
  108. package/LineChart/index.d.ts +2 -0
  109. package/LineChart/index.js +12 -11
  110. package/LineChart/legend.js +4 -3
  111. package/LineChart/markElementClasses.d.ts +20 -0
  112. package/LineChart/markElementClasses.js +19 -0
  113. package/LineChart/plugin.js +3 -3
  114. package/LineChart/useLineChartProps.js +8 -4
  115. package/PieChart/PieArc.js +3 -1
  116. package/PieChart/PieArcLabel.js +2 -0
  117. package/PieChart/PieArcLabelPlot.js +6 -4
  118. package/PieChart/PieArcPlot.js +6 -4
  119. package/PieChart/PieChart.js +22 -8
  120. package/PieChart/PiePlot.js +8 -6
  121. package/PieChart/dataTransform/useTransformData.js +3 -1
  122. package/PieChart/formatter.js +1 -1
  123. package/PieChart/getPieCoordinates.js +1 -1
  124. package/PieChart/index.js +7 -7
  125. package/PieChart/legend.js +4 -2
  126. package/PieChart/plugin.js +2 -2
  127. package/ResponsiveChartContainer/ResponsiveChartContainer.js +5 -3
  128. package/ResponsiveChartContainer/index.js +1 -1
  129. package/ResponsiveChartContainer/useChartContainerDimensions.js +3 -1
  130. package/ResponsiveChartContainer/useResponsiveChartContainerProps.js +3 -1
  131. package/ScatterChart/Scatter.js +7 -5
  132. package/ScatterChart/ScatterChart.js +26 -12
  133. package/ScatterChart/ScatterPlot.js +7 -5
  134. package/ScatterChart/formatter.js +1 -1
  135. package/ScatterChart/index.js +3 -3
  136. package/ScatterChart/legend.js +4 -3
  137. package/ScatterChart/plugin.js +3 -3
  138. package/ScatterChart/useScatterChartProps.js +2 -0
  139. package/SparkLineChart/SparkLineChart.js +8 -6
  140. package/SparkLineChart/index.js +1 -1
  141. package/colorPalettes/index.js +1 -1
  142. package/context/CartesianProvider/CartesianProvider.js +8 -6
  143. package/context/CartesianProvider/computeValue.js +6 -6
  144. package/context/CartesianProvider/defaultizeAxis.js +1 -1
  145. package/context/CartesianProvider/index.js +5 -5
  146. package/context/CartesianProvider/useCartesianContext.js +3 -1
  147. package/context/DrawingProvider.js +3 -1
  148. package/context/HighlightedProvider/HighlightedProvider.js +6 -4
  149. package/context/HighlightedProvider/index.js +4 -4
  150. package/context/HighlightedProvider/useHighlighted.js +3 -1
  151. package/context/HighlightedProvider/useItemHighlighted.js +3 -1
  152. package/context/InteractionProvider.js +2 -0
  153. package/context/PluginProvider/PluginProvider.js +4 -2
  154. package/context/PluginProvider/index.js +10 -10
  155. package/context/PluginProvider/mergePlugins.js +4 -4
  156. package/context/PluginProvider/useColorProcessor.js +3 -1
  157. package/context/PluginProvider/useSeriesFormatter.js +3 -1
  158. package/context/PluginProvider/useXExtremumGetter.js +1 -1
  159. package/context/PluginProvider/useYExtremumGetter.js +1 -1
  160. package/context/SeriesProvider/SeriesProvider.js +6 -4
  161. package/context/SeriesProvider/index.js +4 -4
  162. package/context/SeriesProvider/processSeries.js +1 -1
  163. package/context/ZAxisContextProvider.js +3 -1
  164. package/context/index.js +2 -2
  165. package/hooks/index.js +7 -7
  166. package/hooks/useAxis.js +3 -1
  167. package/hooks/useAxisEvents.js +8 -6
  168. package/hooks/useChartDimensions.js +3 -1
  169. package/hooks/useChartId.js +3 -1
  170. package/hooks/useColorScale.js +4 -2
  171. package/hooks/useDrawingArea.js +3 -1
  172. package/hooks/useInteractionItemProps.js +4 -2
  173. package/hooks/useMounted.js +2 -0
  174. package/hooks/useReducedMotion.js +15 -12
  175. package/hooks/useScale.js +4 -2
  176. package/hooks/useSeries.js +3 -1
  177. package/hooks/useSvgRef.js +3 -1
  178. package/hooks/useTicks.js +4 -2
  179. package/index.js +27 -27
  180. package/internals/components/AxisSharedComponents.js +1 -1
  181. package/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +5 -5
  182. package/internals/components/ChartsAxesGradients/index.js +1 -1
  183. package/internals/getWordsByLines.js +1 -1
  184. package/internals/index.js +31 -31
  185. package/internals/isCartesian.js +1 -1
  186. package/internals/useStringInterpolator.d.ts +1 -0
  187. package/{modern/internals/useAnimatedPath.js → internals/useStringInterpolator.js} +2 -15
  188. package/models/index.d.ts +1 -0
  189. package/models/index.js +5 -3
  190. package/models/seriesType/index.js +4 -4
  191. package/modern/BarChart/BarChart.js +26 -12
  192. package/modern/BarChart/BarClipPath.js +1 -1
  193. package/modern/BarChart/BarElement.js +4 -2
  194. package/modern/BarChart/BarLabel/BarLabel.js +3 -1
  195. package/modern/BarChart/BarLabel/BarLabelItem.js +4 -4
  196. package/modern/BarChart/BarLabel/BarLabelPlot.js +1 -1
  197. package/modern/BarChart/BarLabel/index.js +2 -2
  198. package/modern/BarChart/BarPlot.js +10 -8
  199. package/modern/BarChart/checkScaleErrors.js +2 -2
  200. package/modern/BarChart/formatter.js +2 -2
  201. package/modern/BarChart/index.js +4 -4
  202. package/modern/BarChart/legend.js +4 -3
  203. package/modern/BarChart/plugin.js +3 -3
  204. package/modern/BarChart/useBarChartProps.js +3 -1
  205. package/modern/ChartContainer/ChartContainer.js +11 -9
  206. package/modern/ChartContainer/index.js +1 -1
  207. package/modern/ChartContainer/useChartContainerProps.js +4 -2
  208. package/modern/ChartContainer/useDefaultizeAxis.js +3 -1
  209. package/modern/ChartsAxis/ChartsAxis.js +5 -3
  210. package/modern/ChartsAxis/index.js +2 -2
  211. package/modern/ChartsAxisHighlight/ChartsAxisHighlight.js +6 -4
  212. package/modern/ChartsAxisHighlight/index.js +1 -1
  213. package/modern/ChartsClipPath/ChartsClipPath.js +3 -1
  214. package/modern/ChartsClipPath/index.js +1 -1
  215. package/modern/ChartsGrid/ChartsGrid.js +20 -66
  216. package/modern/ChartsGrid/ChartsHorizontalGrid.js +36 -0
  217. package/modern/ChartsGrid/ChartsVerticalGrid.js +36 -0
  218. package/modern/ChartsGrid/index.js +2 -2
  219. package/modern/ChartsGrid/styledCommonents.js +22 -0
  220. package/modern/ChartsLegend/ChartsLegend.js +70 -26
  221. package/modern/ChartsLegend/ChartsLegendItem.js +65 -0
  222. package/modern/ChartsLegend/ContinuousColorLegend.js +9 -7
  223. package/modern/ChartsLegend/DefaultChartsLegend.js +31 -5
  224. package/modern/ChartsLegend/LegendPerItem.js +22 -35
  225. package/modern/ChartsLegend/PiecewiseColorLegend.js +31 -15
  226. package/modern/ChartsLegend/chartsLegendClasses.js +1 -1
  227. package/modern/ChartsLegend/index.js +6 -6
  228. package/modern/ChartsLegend/useAxis.js +4 -2
  229. package/modern/ChartsLegend/utils.js +4 -4
  230. package/modern/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +7 -5
  231. package/modern/ChartsOnAxisClickHandler/index.js +1 -1
  232. package/modern/ChartsOverlay/ChartsLoadingOverlay.js +3 -1
  233. package/modern/ChartsOverlay/ChartsNoDataOverlay.js +3 -1
  234. package/modern/ChartsOverlay/ChartsOverlay.js +5 -3
  235. package/modern/ChartsOverlay/index.js +3 -3
  236. package/modern/ChartsReferenceLine/ChartsReferenceLine.js +4 -2
  237. package/modern/ChartsReferenceLine/ChartsXReferenceLine.js +7 -5
  238. package/modern/ChartsReferenceLine/ChartsYReferenceLine.js +7 -5
  239. package/modern/ChartsReferenceLine/common.js +1 -1
  240. package/modern/ChartsReferenceLine/index.js +2 -2
  241. package/modern/ChartsSurface/ChartsSurface.js +3 -1
  242. package/modern/ChartsSurface/index.js +1 -1
  243. package/modern/ChartsText/ChartsText.js +3 -1
  244. package/modern/ChartsText/index.js +1 -1
  245. package/modern/ChartsTooltip/ChartsAxisTooltipContent.js +6 -6
  246. package/modern/ChartsTooltip/ChartsItemTooltipContent.js +5 -5
  247. package/modern/ChartsTooltip/ChartsTooltip.js +15 -11
  248. package/modern/ChartsTooltip/ChartsTooltipTable.js +10 -5
  249. package/modern/ChartsTooltip/DefaultChartsAxisTooltipContent.js +7 -5
  250. package/modern/ChartsTooltip/DefaultChartsItemTooltipContent.js +5 -3
  251. package/modern/ChartsTooltip/chartsTooltipClasses.js +1 -1
  252. package/modern/ChartsTooltip/index.js +7 -7
  253. package/modern/ChartsTooltip/utils.js +1 -1
  254. package/modern/ChartsVoronoiHandler/ChartsVoronoiHandler.js +9 -7
  255. package/modern/ChartsVoronoiHandler/index.js +1 -1
  256. package/modern/ChartsXAxis/ChartsXAxis.js +20 -13
  257. package/modern/ChartsXAxis/index.js +1 -1
  258. package/modern/ChartsYAxis/ChartsYAxis.js +17 -10
  259. package/modern/ChartsYAxis/index.js +1 -1
  260. package/modern/Gauge/Gauge.js +7 -5
  261. package/modern/Gauge/GaugeContainer.js +6 -4
  262. package/modern/Gauge/GaugeProvider.js +3 -3
  263. package/modern/Gauge/GaugeReferenceArc.js +3 -1
  264. package/modern/Gauge/GaugeValueArc.js +3 -1
  265. package/modern/Gauge/GaugeValueText.js +4 -2
  266. package/modern/Gauge/index.js +7 -7
  267. package/modern/LineChart/AnimatedArea.js +33 -14
  268. package/modern/LineChart/AnimatedLine.js +34 -15
  269. package/modern/LineChart/AreaElement.js +5 -3
  270. package/modern/LineChart/AreaPlot.js +85 -78
  271. package/modern/LineChart/CircleMarkElement.js +107 -0
  272. package/modern/LineChart/LineChart.js +33 -15
  273. package/modern/LineChart/LineElement.js +5 -3
  274. package/modern/LineChart/LineHighlightElement.js +2 -0
  275. package/modern/LineChart/LineHighlightPlot.js +10 -8
  276. package/modern/LineChart/LinePlot.js +67 -60
  277. package/modern/LineChart/MarkElement.js +7 -23
  278. package/modern/LineChart/MarkPlot.js +22 -12
  279. package/modern/LineChart/formatter.js +2 -2
  280. package/modern/LineChart/index.js +12 -11
  281. package/modern/LineChart/legend.js +4 -3
  282. package/modern/LineChart/markElementClasses.js +19 -0
  283. package/modern/LineChart/plugin.js +3 -3
  284. package/modern/LineChart/useLineChartProps.js +8 -4
  285. package/modern/PieChart/PieArc.js +3 -1
  286. package/modern/PieChart/PieArcLabel.js +2 -0
  287. package/modern/PieChart/PieArcLabelPlot.js +6 -4
  288. package/modern/PieChart/PieArcPlot.js +6 -4
  289. package/modern/PieChart/PieChart.js +22 -8
  290. package/modern/PieChart/PiePlot.js +8 -6
  291. package/modern/PieChart/dataTransform/useTransformData.js +3 -1
  292. package/modern/PieChart/formatter.js +1 -1
  293. package/modern/PieChart/getPieCoordinates.js +1 -1
  294. package/modern/PieChart/index.js +7 -7
  295. package/modern/PieChart/legend.js +4 -2
  296. package/modern/PieChart/plugin.js +2 -2
  297. package/modern/ResponsiveChartContainer/ResponsiveChartContainer.js +5 -3
  298. package/modern/ResponsiveChartContainer/index.js +1 -1
  299. package/modern/ResponsiveChartContainer/useChartContainerDimensions.js +3 -1
  300. package/modern/ResponsiveChartContainer/useResponsiveChartContainerProps.js +3 -1
  301. package/modern/ScatterChart/Scatter.js +7 -5
  302. package/modern/ScatterChart/ScatterChart.js +26 -12
  303. package/modern/ScatterChart/ScatterPlot.js +7 -5
  304. package/modern/ScatterChart/formatter.js +1 -1
  305. package/modern/ScatterChart/index.js +3 -3
  306. package/modern/ScatterChart/legend.js +4 -3
  307. package/modern/ScatterChart/plugin.js +3 -3
  308. package/modern/ScatterChart/useScatterChartProps.js +2 -0
  309. package/modern/SparkLineChart/SparkLineChart.js +8 -6
  310. package/modern/SparkLineChart/index.js +1 -1
  311. package/modern/colorPalettes/index.js +1 -1
  312. package/modern/context/CartesianProvider/CartesianProvider.js +8 -6
  313. package/modern/context/CartesianProvider/computeValue.js +6 -6
  314. package/modern/context/CartesianProvider/defaultizeAxis.js +1 -1
  315. package/modern/context/CartesianProvider/index.js +5 -5
  316. package/modern/context/CartesianProvider/useCartesianContext.js +3 -1
  317. package/modern/context/DrawingProvider.js +3 -1
  318. package/modern/context/HighlightedProvider/HighlightedProvider.js +6 -4
  319. package/modern/context/HighlightedProvider/index.js +4 -4
  320. package/modern/context/HighlightedProvider/useHighlighted.js +3 -1
  321. package/modern/context/HighlightedProvider/useItemHighlighted.js +3 -1
  322. package/modern/context/InteractionProvider.js +2 -0
  323. package/modern/context/PluginProvider/PluginProvider.js +4 -2
  324. package/modern/context/PluginProvider/index.js +10 -10
  325. package/modern/context/PluginProvider/mergePlugins.js +4 -4
  326. package/modern/context/PluginProvider/useColorProcessor.js +3 -1
  327. package/modern/context/PluginProvider/useSeriesFormatter.js +3 -1
  328. package/modern/context/PluginProvider/useXExtremumGetter.js +1 -1
  329. package/modern/context/PluginProvider/useYExtremumGetter.js +1 -1
  330. package/modern/context/SeriesProvider/SeriesProvider.js +6 -4
  331. package/modern/context/SeriesProvider/index.js +4 -4
  332. package/modern/context/SeriesProvider/processSeries.js +1 -1
  333. package/modern/context/ZAxisContextProvider.js +3 -1
  334. package/modern/context/index.js +2 -2
  335. package/modern/hooks/index.js +7 -7
  336. package/modern/hooks/useAxis.js +3 -1
  337. package/modern/hooks/useAxisEvents.js +8 -6
  338. package/modern/hooks/useChartDimensions.js +3 -1
  339. package/modern/hooks/useChartId.js +3 -1
  340. package/modern/hooks/useColorScale.js +4 -2
  341. package/modern/hooks/useDrawingArea.js +3 -1
  342. package/modern/hooks/useInteractionItemProps.js +4 -2
  343. package/modern/hooks/useMounted.js +2 -0
  344. package/modern/hooks/useReducedMotion.js +15 -12
  345. package/modern/hooks/useScale.js +4 -2
  346. package/modern/hooks/useSeries.js +3 -1
  347. package/modern/hooks/useSvgRef.js +3 -1
  348. package/modern/hooks/useTicks.js +4 -2
  349. package/modern/index.js +27 -27
  350. package/modern/internals/components/AxisSharedComponents.js +1 -1
  351. package/modern/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +5 -5
  352. package/modern/internals/components/ChartsAxesGradients/index.js +1 -1
  353. package/modern/internals/getWordsByLines.js +1 -1
  354. package/modern/internals/index.js +31 -31
  355. package/modern/internals/isCartesian.js +1 -1
  356. package/{internals/useAnimatedPath.js → modern/internals/useStringInterpolator.js} +2 -15
  357. package/modern/models/index.js +5 -3
  358. package/modern/models/seriesType/index.js +4 -4
  359. package/modern/themeAugmentation/index.js +0 -3
  360. package/node/BarChart/BarChart.js +16 -4
  361. package/node/BarChart/BarClipPath.js +2 -3
  362. package/node/BarChart/BarElement.js +3 -3
  363. package/node/BarChart/BarLabel/BarLabel.js +3 -3
  364. package/node/BarChart/BarLabel/BarLabelItem.js +2 -3
  365. package/node/BarChart/BarLabel/BarLabelPlot.js +2 -3
  366. package/node/BarChart/BarLabel/barLabelClasses.js +1 -1
  367. package/node/BarChart/BarPlot.js +3 -3
  368. package/node/BarChart/formatter.js +1 -1
  369. package/node/BarChart/legend.js +3 -2
  370. package/node/BarChart/plugin.js +1 -1
  371. package/node/BarChart/useBarChartProps.js +2 -1
  372. package/node/ChartContainer/ChartContainer.js +3 -3
  373. package/node/ChartContainer/useChartContainerProps.js +3 -3
  374. package/node/ChartContainer/useDefaultizeAxis.js +3 -3
  375. package/node/ChartsAxis/ChartsAxis.js +3 -3
  376. package/node/ChartsAxisHighlight/ChartsAxisHighlight.js +3 -3
  377. package/node/ChartsClipPath/ChartsClipPath.js +3 -3
  378. package/node/ChartsGrid/ChartsGrid.js +18 -66
  379. package/node/ChartsGrid/ChartsHorizontalGrid.js +43 -0
  380. package/node/ChartsGrid/ChartsVerticalGrid.js +43 -0
  381. package/node/ChartsGrid/chartsGridClasses.js +1 -1
  382. package/node/ChartsGrid/styledCommonents.js +28 -0
  383. package/node/ChartsLegend/ChartsLegend.js +66 -24
  384. package/node/ChartsLegend/ChartsLegendItem.js +72 -0
  385. package/node/ChartsLegend/ContinuousColorLegend.js +3 -3
  386. package/node/ChartsLegend/DefaultChartsLegend.js +31 -7
  387. package/node/ChartsLegend/LegendPerItem.js +20 -35
  388. package/node/ChartsLegend/PiecewiseColorLegend.js +29 -15
  389. package/node/ChartsLegend/chartsLegendClasses.js +1 -1
  390. package/node/ChartsLegend/legendItemsPlacement.js +1 -1
  391. package/node/ChartsLegend/useAxis.js +2 -2
  392. package/node/ChartsLegend/utils.js +1 -1
  393. package/node/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +4 -4
  394. package/node/ChartsOverlay/ChartsLoadingOverlay.js +3 -3
  395. package/node/ChartsOverlay/ChartsNoDataOverlay.js +3 -3
  396. package/node/ChartsOverlay/ChartsOverlay.js +3 -3
  397. package/node/ChartsReferenceLine/ChartsReferenceLine.js +3 -3
  398. package/node/ChartsReferenceLine/ChartsXReferenceLine.js +4 -4
  399. package/node/ChartsReferenceLine/ChartsYReferenceLine.js +4 -4
  400. package/node/ChartsReferenceLine/chartsReferenceLineClasses.js +1 -1
  401. package/node/ChartsReferenceLine/common.js +1 -1
  402. package/node/ChartsSurface/ChartsSurface.js +3 -3
  403. package/node/ChartsText/ChartsText.js +3 -3
  404. package/node/ChartsTooltip/ChartsAxisTooltipContent.js +2 -3
  405. package/node/ChartsTooltip/ChartsItemTooltipContent.js +2 -3
  406. package/node/ChartsTooltip/ChartsTooltip.js +11 -9
  407. package/node/ChartsTooltip/ChartsTooltipTable.js +9 -4
  408. package/node/ChartsTooltip/DefaultChartsAxisTooltipContent.js +4 -4
  409. package/node/ChartsTooltip/DefaultChartsItemTooltipContent.js +4 -4
  410. package/node/ChartsTooltip/chartsTooltipClasses.js +1 -1
  411. package/node/ChartsTooltip/utils.js +2 -3
  412. package/node/ChartsVoronoiHandler/ChartsVoronoiHandler.js +3 -3
  413. package/node/ChartsXAxis/ChartsXAxis.js +9 -4
  414. package/node/ChartsYAxis/ChartsYAxis.js +9 -4
  415. package/node/Gauge/Gauge.js +3 -3
  416. package/node/Gauge/GaugeContainer.js +3 -3
  417. package/node/Gauge/GaugeProvider.js +1 -2
  418. package/node/Gauge/GaugeReferenceArc.js +3 -3
  419. package/node/Gauge/GaugeValueArc.js +3 -3
  420. package/node/Gauge/GaugeValueText.js +3 -3
  421. package/node/Gauge/gaugeClasses.js +1 -1
  422. package/node/LineChart/AnimatedArea.js +31 -14
  423. package/node/LineChart/AnimatedLine.js +31 -14
  424. package/node/LineChart/AreaElement.js +3 -3
  425. package/node/LineChart/AreaPlot.js +79 -74
  426. package/node/LineChart/CircleMarkElement.js +113 -0
  427. package/node/LineChart/LineChart.js +20 -4
  428. package/node/LineChart/LineElement.js +3 -3
  429. package/node/LineChart/LineHighlightElement.js +3 -3
  430. package/node/LineChart/LineHighlightPlot.js +3 -3
  431. package/node/LineChart/LinePlot.js +61 -56
  432. package/node/LineChart/MarkElement.js +5 -25
  433. package/node/LineChart/MarkPlot.js +14 -6
  434. package/node/LineChart/formatter.js +1 -1
  435. package/node/LineChart/index.js +29 -1
  436. package/node/LineChart/legend.js +3 -2
  437. package/node/LineChart/markElementClasses.js +28 -0
  438. package/node/LineChart/plugin.js +1 -1
  439. package/node/LineChart/useLineChartProps.js +7 -4
  440. package/node/PieChart/PieArc.js +3 -3
  441. package/node/PieChart/PieArcLabel.js +3 -3
  442. package/node/PieChart/PieArcLabelPlot.js +3 -3
  443. package/node/PieChart/PieArcPlot.js +3 -3
  444. package/node/PieChart/PieChart.js +15 -3
  445. package/node/PieChart/PiePlot.js +3 -3
  446. package/node/PieChart/dataTransform/useTransformData.js +3 -3
  447. package/node/PieChart/formatter.js +1 -1
  448. package/node/PieChart/legend.js +3 -1
  449. package/node/PieChart/plugin.js +1 -1
  450. package/node/ResponsiveChartContainer/ResponsiveChartContainer.js +3 -3
  451. package/node/ResponsiveChartContainer/useChartContainerDimensions.js +4 -4
  452. package/node/ResponsiveChartContainer/useResponsiveChartContainerProps.js +2 -1
  453. package/node/ScatterChart/Scatter.js +3 -3
  454. package/node/ScatterChart/ScatterChart.js +16 -4
  455. package/node/ScatterChart/ScatterPlot.js +3 -3
  456. package/node/ScatterChart/legend.js +3 -2
  457. package/node/ScatterChart/plugin.js +1 -1
  458. package/node/ScatterChart/useScatterChartProps.js +2 -1
  459. package/node/SparkLineChart/SparkLineChart.js +3 -3
  460. package/node/context/CartesianProvider/CartesianContext.js +1 -2
  461. package/node/context/CartesianProvider/CartesianProvider.js +2 -2
  462. package/node/context/CartesianProvider/computeValue.js +1 -1
  463. package/node/context/CartesianProvider/defaultizeAxis.js +1 -1
  464. package/node/context/CartesianProvider/useCartesianContext.js +2 -2
  465. package/node/context/DrawingProvider.js +3 -3
  466. package/node/context/HighlightedProvider/HighlightedContext.js +1 -2
  467. package/node/context/HighlightedProvider/HighlightedProvider.js +3 -3
  468. package/node/context/HighlightedProvider/useHighlighted.js +2 -2
  469. package/node/context/HighlightedProvider/useItemHighlighted.js +1 -0
  470. package/node/context/InteractionProvider.js +3 -3
  471. package/node/context/PluginProvider/PluginContext.js +1 -2
  472. package/node/context/PluginProvider/PluginProvider.js +2 -2
  473. package/node/context/PluginProvider/useColorProcessor.js +2 -2
  474. package/node/context/PluginProvider/useSeriesFormatter.js +2 -2
  475. package/node/context/PluginProvider/useXExtremumGetter.js +1 -2
  476. package/node/context/PluginProvider/useYExtremumGetter.js +1 -2
  477. package/node/context/SeriesProvider/SeriesContext.js +1 -2
  478. package/node/context/SeriesProvider/SeriesProvider.js +2 -2
  479. package/node/context/SeriesProvider/processSeries.js +1 -1
  480. package/node/context/ZAxisContextProvider.js +3 -3
  481. package/node/hooks/useAxis.js +1 -0
  482. package/node/hooks/useAxisEvents.js +2 -2
  483. package/node/hooks/useChartDimensions.js +3 -3
  484. package/node/hooks/useChartId.js +2 -2
  485. package/node/hooks/useColorScale.js +2 -2
  486. package/node/hooks/useDrawingArea.js +2 -2
  487. package/node/hooks/useInteractionItemProps.js +2 -2
  488. package/node/hooks/useMounted.js +3 -3
  489. package/node/hooks/useReducedMotion.js +15 -12
  490. package/node/hooks/useScale.js +1 -0
  491. package/node/hooks/useSeries.js +2 -2
  492. package/node/hooks/useSvgRef.js +2 -2
  493. package/node/hooks/useTicks.js +2 -2
  494. package/node/index.js +1 -1
  495. package/node/internals/components/AxisSharedComponents.js +1 -1
  496. package/node/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +2 -3
  497. package/node/internals/components/ChartsAxesGradients/ChartsContinuousGradient.js +1 -2
  498. package/node/internals/components/ChartsAxesGradients/ChartsPiecewiseGradient.js +1 -2
  499. package/node/internals/defaultizeColor.js +1 -1
  500. package/node/internals/defaultizeValueFormatter.js +1 -1
  501. package/node/internals/domUtils.js +1 -1
  502. package/node/internals/getWordsByLines.js +1 -1
  503. package/node/internals/useStringInterpolator.js +28 -0
  504. package/node/tests/firePointerEvent.js +1 -1
  505. package/node/themeAugmentation/index.js +1 -38
  506. package/package.json +4 -3
  507. package/themeAugmentation/components.d.ts +2 -0
  508. package/themeAugmentation/index.d.ts +3 -3
  509. package/themeAugmentation/index.js +0 -3
  510. package/themeAugmentation/overrides.d.ts +6 -4
  511. package/internals/useAnimatedPath.d.ts +0 -1
  512. package/internals/warning.d.ts +0 -2
  513. package/internals/warning.js +0 -21
  514. package/modern/internals/warning.js +0 -21
  515. package/node/internals/useAnimatedPath.js +0 -42
  516. package/node/internals/warning.js +0 -28
@@ -1,15 +1,17 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["d", "skipAnimation", "ownerState"];
4
6
  import * as React from 'react';
5
7
  import PropTypes from 'prop-types';
6
- import { animated, useSpring } from '@react-spring/web';
8
+ import { animated, useTransition } from '@react-spring/web';
7
9
  import { color as d3Color } from '@mui/x-charts-vendor/d3-color';
8
10
  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';
11
+ import { cleanId } from "../internals/cleanId.js";
12
+ import { useChartId } from "../hooks/useChartId.js";
13
+ import { useDrawingArea } from "../hooks/useDrawingArea.js";
14
+ import { useStringInterpolator } from "../internals/useStringInterpolator.js";
13
15
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
16
  export const LineElementPath = styled(animated.path, {
15
17
  name: 'MuiLineElement',
@@ -51,16 +53,33 @@ function AnimatedLine(props) {
51
53
  right
52
54
  } = useDrawingArea();
53
55
  const chartId = useChartId();
54
- const path = useAnimatedPath(d, skipAnimation);
55
- const {
56
- animatedWidth
57
- } = useSpring({
56
+ const stringInterpolator = useStringInterpolator(d);
57
+ const transitionAppear = useTransition([1], {
58
58
  from: {
59
59
  animatedWidth: left
60
60
  },
61
61
  to: {
62
62
  animatedWidth: width + left + right
63
63
  },
64
+ enter: {
65
+ animatedWidth: width + left + right
66
+ },
67
+ leave: {
68
+ animatedWidth: left
69
+ },
70
+ reset: false,
71
+ immediate: skipAnimation
72
+ });
73
+ const transitionChange = useTransition([stringInterpolator], {
74
+ from: {
75
+ value: 0
76
+ },
77
+ to: {
78
+ value: 1
79
+ },
80
+ enter: {
81
+ value: 1
82
+ },
64
83
  reset: false,
65
84
  immediate: skipAnimation
66
85
  });
@@ -68,18 +87,18 @@ function AnimatedLine(props) {
68
87
  return /*#__PURE__*/_jsxs(React.Fragment, {
69
88
  children: [/*#__PURE__*/_jsx("clipPath", {
70
89
  id: clipId,
71
- children: /*#__PURE__*/_jsx(animated.rect, {
90
+ children: transitionAppear(style => /*#__PURE__*/_jsx(animated.rect, {
72
91
  x: 0,
73
92
  y: 0,
74
- width: animatedWidth,
93
+ width: style.animatedWidth,
75
94
  height: top + height + bottom
76
- })
95
+ }))
77
96
  }), /*#__PURE__*/_jsx("g", {
78
97
  clipPath: `url(#${clipId})`,
79
- children: /*#__PURE__*/_jsx(LineElementPath, _extends({}, other, {
98
+ children: transitionChange((style, interpolator) => /*#__PURE__*/_jsx(LineElementPath, _extends({}, other, {
80
99
  ownerState: ownerState,
81
- d: path
82
- }))
100
+ d: style.value.to(interpolator)
101
+ })))
83
102
  })]
84
103
  });
85
104
  }
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["id", "classes", "color", "gradientId", "slots", "slotProps", "onClick"];
@@ -7,9 +9,9 @@ import composeClasses from '@mui/utils/composeClasses';
7
9
  import useSlotProps from '@mui/utils/useSlotProps';
8
10
  import generateUtilityClass from '@mui/utils/generateUtilityClass';
9
11
  import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
10
- import { useInteractionItemProps } from '../hooks/useInteractionItemProps';
11
- import { AnimatedArea } from './AnimatedArea';
12
- import { useItemHighlighted } from '../context';
12
+ import { useInteractionItemProps } from "../hooks/useInteractionItemProps.js";
13
+ import { AnimatedArea } from "./AnimatedArea.js";
14
+ import { useItemHighlighted } from "../context/index.js";
13
15
  import { jsx as _jsx } from "react/jsx-runtime";
14
16
  export function getAreaElementUtilityClass(slot) {
15
17
  return generateUtilityClass('MuiAreaElement', slot);
@@ -1,94 +1,101 @@
1
+ 'use client';
2
+
1
3
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
4
  import _extends from "@babel/runtime/helpers/esm/extends";
3
5
  const _excluded = ["slots", "slotProps", "onItemClick", "skipAnimation"];
4
6
  import * as React from 'react';
5
7
  import PropTypes from 'prop-types';
6
8
  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';
9
+ import { useCartesianContext } from "../context/CartesianProvider/index.js";
10
+ import { AreaElement } from "./AreaElement.js";
11
+ import { getValueToPositionMapper } from "../hooks/useScale.js";
12
+ import getCurveFactory from "../internals/getCurve.js";
13
+ import { DEFAULT_X_AXIS_KEY } from "../constants/index.js";
14
+ import { useChartGradient } from "../internals/components/ChartsAxesGradients/index.js";
15
+ import { useLineSeries } from "../hooks/useSeries.js";
14
16
  import { jsx as _jsx } from "react/jsx-runtime";
15
17
  const useAggregatedData = () => {
16
18
  const seriesData = useLineSeries();
17
19
  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];
20
+
21
+ // This memo prevents odd line chart behavior when hydrating.
22
+ const allData = React.useMemo(() => {
23
+ if (seriesData === undefined) {
24
+ return [];
25
+ }
26
+ const {
27
+ series,
28
+ stackingGroups
29
+ } = seriesData;
30
+ const {
31
+ xAxis,
32
+ yAxis,
33
+ xAxisIds,
34
+ yAxisIds
35
+ } = axisData;
36
+ const defaultXAxisId = xAxisIds[0];
37
+ const defaultYAxisId = yAxisIds[0];
38
+ return stackingGroups.flatMap(({
39
+ ids: groupIds
40
+ }) => {
41
+ return [...groupIds].reverse() // Revert stacked area for a more pleasant animation
42
+ .map(seriesId => {
43
+ const {
44
+ xAxisId: xAxisIdProp,
45
+ yAxisId: yAxisIdProp,
46
+ xAxisKey = defaultXAxisId,
47
+ yAxisKey = defaultYAxisId,
48
+ stackedData,
49
+ data,
50
+ connectNulls,
51
+ baseline
52
+ } = series[seriesId];
53
+ const xAxisId = xAxisIdProp ?? xAxisKey;
54
+ const yAxisId = yAxisIdProp ?? yAxisKey;
55
+ const xScale = getValueToPositionMapper(xAxis[xAxisId].scale);
56
+ const yScale = yAxis[yAxisId].scale;
57
+ const xData = xAxis[xAxisId].data;
58
+ const gradientUsed = yAxis[yAxisId].colorScale && [yAxisId, 'y'] || xAxis[xAxisId].colorScale && [xAxisId, 'x'] || undefined;
59
+ if (process.env.NODE_ENV !== 'production') {
60
+ if (xData === undefined) {
61
+ 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.`);
62
+ }
63
+ if (xData.length < stackedData.length) {
64
+ 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).`);
65
+ }
75
66
  }
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
67
+ const areaPath = d3Area().x(d => xScale(d.x)).defined((_, i) => connectNulls || data[i] != null).y0(d => {
68
+ if (typeof baseline === 'number') {
69
+ return yScale(baseline);
70
+ }
71
+ if (baseline === 'max') {
72
+ return yScale.range()[1];
73
+ }
74
+ if (baseline === 'min') {
75
+ return yScale.range()[0];
76
+ }
77
+ const value = d.y && yScale(d.y[0]);
78
+ if (Number.isNaN(value)) {
79
+ return yScale.range()[0];
80
+ }
81
+ return value;
82
+ }).y1(d => d.y && yScale(d.y[1]));
83
+ const curve = getCurveFactory(series[seriesId].curve);
84
+ const formattedData = xData?.map((x, index) => ({
85
+ x,
86
+ y: stackedData[index]
87
+ })) ?? [];
88
+ const d3Data = connectNulls ? formattedData.filter((_, i) => data[i] != null) : formattedData;
89
+ const d = areaPath.curve(curve)(d3Data) || '';
90
+ return _extends({}, series[seriesId], {
91
+ gradientUsed,
92
+ d,
93
+ seriesId
94
+ });
89
95
  });
90
96
  });
91
- });
97
+ }, [seriesData, axisData]);
98
+ return allData;
92
99
  };
93
100
 
94
101
  /**
@@ -0,0 +1,34 @@
1
+ import * as React from 'react';
2
+ import { MarkElementOwnerState } from './markElementClasses';
3
+ export type CircleMarkElementProps = Omit<MarkElementOwnerState, 'isFaded' | 'isHighlighted'> & Omit<React.SVGProps<SVGPathElement>, 'ref' | 'id'> & {
4
+ /**
5
+ * The shape of the marker.
6
+ */
7
+ shape: 'circle' | 'cross' | 'diamond' | 'square' | 'star' | 'triangle' | 'wye';
8
+ /**
9
+ * If `true`, animations are skipped.
10
+ * @default false
11
+ */
12
+ skipAnimation?: boolean;
13
+ /**
14
+ * The index to the element in the series' data array.
15
+ */
16
+ dataIndex: number;
17
+ };
18
+ /**
19
+ * The line mark element that only render circle for performance improvement.
20
+ *
21
+ * Demos:
22
+ *
23
+ * - [Lines](https://mui.com/x/react-charts/lines/)
24
+ * - [Line demonstration](https://mui.com/x/react-charts/line-demo/)
25
+ *
26
+ * API:
27
+ *
28
+ * - [CircleMarkElement API](https://mui.com/x/api/charts/circle-mark-element/)
29
+ */
30
+ declare function CircleMarkElement(props: CircleMarkElementProps): React.JSX.Element;
31
+ declare namespace CircleMarkElement {
32
+ var propTypes: any;
33
+ }
34
+ export { CircleMarkElement };
@@ -0,0 +1,107 @@
1
+ 'use client';
2
+
3
+ import _extends from "@babel/runtime/helpers/esm/extends";
4
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
5
+ const _excluded = ["x", "y", "id", "classes", "color", "dataIndex", "onClick", "skipAnimation", "shape"];
6
+ import * as React from 'react';
7
+ import PropTypes from 'prop-types';
8
+ import { useTheme } from '@mui/material/styles';
9
+ import { warnOnce } from '@mui/x-internals/warning';
10
+ import { animated, useSpring } from '@react-spring/web';
11
+ import { InteractionContext } from "../context/InteractionProvider.js";
12
+ import { useInteractionItemProps } from "../hooks/useInteractionItemProps.js";
13
+ import { useItemHighlighted } from "../context/index.js";
14
+ import { useUtilityClasses } from "./markElementClasses.js";
15
+ import { jsx as _jsx } from "react/jsx-runtime";
16
+ /**
17
+ * The line mark element that only render circle for performance improvement.
18
+ *
19
+ * Demos:
20
+ *
21
+ * - [Lines](https://mui.com/x/react-charts/lines/)
22
+ * - [Line demonstration](https://mui.com/x/react-charts/line-demo/)
23
+ *
24
+ * API:
25
+ *
26
+ * - [CircleMarkElement API](https://mui.com/x/api/charts/circle-mark-element/)
27
+ */
28
+ function CircleMarkElement(props) {
29
+ const {
30
+ x,
31
+ y,
32
+ id,
33
+ classes: innerClasses,
34
+ color,
35
+ dataIndex,
36
+ onClick,
37
+ skipAnimation,
38
+ shape
39
+ } = props,
40
+ other = _objectWithoutPropertiesLoose(props, _excluded);
41
+ if (shape !== 'circle') {
42
+ warnOnce([`MUI X: The mark element of your line chart have shape "${shape}" which is not supported when using \`experimentalRendering=true\`.`, 'Only "circle" are supported with `experimentalRendering`.'].join('\n'), 'error');
43
+ }
44
+ const theme = useTheme();
45
+ const getInteractionItemProps = useInteractionItemProps();
46
+ const {
47
+ isFaded,
48
+ isHighlighted
49
+ } = useItemHighlighted({
50
+ seriesId: id
51
+ });
52
+ const {
53
+ axis
54
+ } = React.useContext(InteractionContext);
55
+ const position = useSpring({
56
+ to: {
57
+ x,
58
+ y
59
+ },
60
+ immediate: skipAnimation
61
+ });
62
+ const ownerState = {
63
+ id,
64
+ classes: innerClasses,
65
+ isHighlighted: axis.x?.index === dataIndex || isHighlighted,
66
+ isFaded,
67
+ color
68
+ };
69
+ const classes = useUtilityClasses(ownerState);
70
+ return /*#__PURE__*/_jsx(animated.circle, _extends({}, other, {
71
+ cx: position.x,
72
+ cy: position.y,
73
+ r: 5,
74
+ fill: (theme.vars || theme).palette.background.paper,
75
+ stroke: color,
76
+ strokeWidth: 2,
77
+ className: classes.root,
78
+ onClick: onClick,
79
+ cursor: onClick ? 'pointer' : 'unset'
80
+ }, getInteractionItemProps({
81
+ type: 'line',
82
+ seriesId: id,
83
+ dataIndex
84
+ })));
85
+ }
86
+ process.env.NODE_ENV !== "production" ? CircleMarkElement.propTypes = {
87
+ // ----------------------------- Warning --------------------------------
88
+ // | These PropTypes are generated from the TypeScript type definitions |
89
+ // | To update them edit the TypeScript types and run "pnpm proptypes" |
90
+ // ----------------------------------------------------------------------
91
+ classes: PropTypes.object,
92
+ /**
93
+ * The index to the element in the series' data array.
94
+ */
95
+ dataIndex: PropTypes.number.isRequired,
96
+ id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
97
+ /**
98
+ * The shape of the marker.
99
+ */
100
+ shape: PropTypes.oneOf(['circle', 'cross', 'diamond', 'square', 'star', 'triangle', 'wye']).isRequired,
101
+ /**
102
+ * If `true`, animations are skipped.
103
+ * @default false
104
+ */
105
+ skipAnimation: PropTypes.bool
106
+ } : void 0;
107
+ export { CircleMarkElement };
@@ -75,6 +75,10 @@ export interface LineChartProps extends Omit<ResponsiveChartContainerProps, 'ser
75
75
  * @default false
76
76
  */
77
77
  skipAnimation?: boolean;
78
+ /**
79
+ * If `true` marks will render `<circle />` instead of `<path />` and drop theme override for faster rendering.
80
+ */
81
+ experimentalMarkRendering?: boolean;
78
82
  }
79
83
  /**
80
84
  * Demos:
@@ -1,21 +1,23 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import * as React from 'react';
3
5
  import PropTypes from 'prop-types';
4
6
  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';
7
+ import { AreaPlot } from "./AreaPlot.js";
8
+ import { LinePlot } from "./LinePlot.js";
9
+ import { ResponsiveChartContainer } from "../ResponsiveChartContainer/index.js";
10
+ import { MarkPlot } from "./MarkPlot.js";
11
+ import { ChartsAxis } from "../ChartsAxis/ChartsAxis.js";
12
+ import { ChartsTooltip } from "../ChartsTooltip/index.js";
13
+ import { ChartsLegend } from "../ChartsLegend/index.js";
14
+ import { ChartsAxisHighlight } from "../ChartsAxisHighlight/index.js";
15
+ import { ChartsClipPath } from "../ChartsClipPath/index.js";
16
+ import { LineHighlightPlot } from "./LineHighlightPlot.js";
17
+ import { ChartsGrid } from "../ChartsGrid/index.js";
18
+ import { ChartsOnAxisClickHandler } from "../ChartsOnAxisClickHandler/index.js";
19
+ import { ChartsOverlay } from "../ChartsOverlay/index.js";
20
+ import { useLineChartProps } from "./useLineChartProps.js";
19
21
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
20
22
  /**
21
23
  * Demos:
@@ -52,7 +54,7 @@ const LineChart = /*#__PURE__*/React.forwardRef(function LineChart(inProps, ref)
52
54
  return /*#__PURE__*/_jsxs(ResponsiveChartContainer, _extends({
53
55
  ref: ref
54
56
  }, chartContainerProps, {
55
- children: [props.onAxisClick && /*#__PURE__*/_jsx(ChartsOnAxisClickHandler, _extends({}, axisClickHandlerProps)), props.grid && /*#__PURE__*/_jsx(ChartsGrid, _extends({}, gridProps)), /*#__PURE__*/_jsxs("g", _extends({}, clipPathGroupProps, {
57
+ children: [props.onAxisClick && /*#__PURE__*/_jsx(ChartsOnAxisClickHandler, _extends({}, axisClickHandlerProps)), /*#__PURE__*/_jsx(ChartsGrid, _extends({}, gridProps)), /*#__PURE__*/_jsxs("g", _extends({}, clipPathGroupProps, {
56
58
  children: [/*#__PURE__*/_jsx(AreaPlot, _extends({}, areaPlotProps)), /*#__PURE__*/_jsx(LinePlot, _extends({}, linePlotProps)), /*#__PURE__*/_jsx(ChartsOverlay, _extends({}, overlayProps)), /*#__PURE__*/_jsx(ChartsAxisHighlight, _extends({}, axisHighlightProps))]
57
59
  })), /*#__PURE__*/_jsx(ChartsAxis, _extends({}, chartsAxisProps)), /*#__PURE__*/_jsx("g", {
58
60
  "data-drawing-container": true,
@@ -102,6 +104,10 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
102
104
  * If `true`, render the line highlight item.
103
105
  */
104
106
  disableLineItemHighlight: PropTypes.bool,
107
+ /**
108
+ * If `true` marks will render `<circle />` instead of `<path />` and drop theme override for faster rendering.
109
+ */
110
+ experimentalMarkRendering: PropTypes.bool,
105
111
  /**
106
112
  * Option to display a cartesian grid in the background.
107
113
  */
@@ -133,6 +139,18 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
133
139
  classes: PropTypes.object,
134
140
  direction: PropTypes.oneOf(['column', 'row']),
135
141
  hidden: PropTypes.bool,
142
+ itemGap: PropTypes.number,
143
+ itemMarkHeight: PropTypes.number,
144
+ itemMarkWidth: PropTypes.number,
145
+ labelStyle: PropTypes.object,
146
+ markGap: PropTypes.number,
147
+ onItemClick: PropTypes.func,
148
+ padding: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({
149
+ bottom: PropTypes.number,
150
+ left: PropTypes.number,
151
+ right: PropTypes.number,
152
+ top: PropTypes.number
153
+ })]),
136
154
  position: PropTypes.shape({
137
155
  horizontal: PropTypes.oneOf(['left', 'middle', 'right']).isRequired,
138
156
  vertical: PropTypes.oneOf(['bottom', 'middle', 'top']).isRequired
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["id", "classes", "color", "gradientId", "slots", "slotProps", "onClick"];
@@ -7,9 +9,9 @@ import composeClasses from '@mui/utils/composeClasses';
7
9
  import useSlotProps from '@mui/utils/useSlotProps';
8
10
  import generateUtilityClass from '@mui/utils/generateUtilityClass';
9
11
  import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
10
- import { useInteractionItemProps } from '../hooks/useInteractionItemProps';
11
- import { AnimatedLine } from './AnimatedLine';
12
- import { useItemHighlighted } from '../context';
12
+ import { useInteractionItemProps } from "../hooks/useInteractionItemProps.js";
13
+ import { AnimatedLine } from "./AnimatedLine.js";
14
+ import { useItemHighlighted } from "../context/index.js";
13
15
  import { jsx as _jsx } from "react/jsx-runtime";
14
16
  export function getLineElementUtilityClass(slot) {
15
17
  return generateUtilityClass('MuiLineElement', slot);
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["x", "y", "id", "classes", "color"];
@@ -1,16 +1,18 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["slots", "slotProps"];
4
6
  import * as React from 'react';
5
7
  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';
8
+ import { useCartesianContext } from "../context/CartesianProvider/index.js";
9
+ import { LineHighlightElement } from "./LineHighlightElement.js";
10
+ import { getValueToPositionMapper } from "../hooks/useScale.js";
11
+ import { InteractionContext } from "../context/InteractionProvider.js";
12
+ import { DEFAULT_X_AXIS_KEY } from "../constants/index.js";
13
+ import getColor from "./getColor.js";
14
+ import { useLineSeries } from "../hooks/useSeries.js";
15
+ import { useDrawingArea } from "../hooks/useDrawingArea.js";
14
16
  import { jsx as _jsx } from "react/jsx-runtime";
15
17
  /**
16
18
  * Demos: