@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,76 +1,83 @@
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", "skipAnimation", "onItemClick"];
4
6
  import * as React from 'react';
5
7
  import PropTypes from 'prop-types';
6
8
  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';
9
+ import { useCartesianContext } from "../context/CartesianProvider/index.js";
10
+ import { LineElement } from "./LineElement.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.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).`);
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.flatMap(seriesId => {
42
+ const {
43
+ xAxisId: xAxisIdProp,
44
+ yAxisId: yAxisIdProp,
45
+ xAxisKey = defaultXAxisId,
46
+ yAxisKey = defaultYAxisId,
47
+ stackedData,
48
+ data,
49
+ connectNulls
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
+ }
58
64
  }
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
65
+ const linePath = d3Line().x(d => xScale(d.x)).defined((_, i) => connectNulls || data[i] != null).y(d => yScale(d.y[1]));
66
+ const formattedData = xData?.map((x, index) => ({
67
+ x,
68
+ y: stackedData[index]
69
+ })) ?? [];
70
+ const d3Data = connectNulls ? formattedData.filter((_, i) => data[i] != null) : formattedData;
71
+ const d = linePath.curve(getCurveFactory(series[seriesId].curve))(d3Data) || '';
72
+ return _extends({}, series[seriesId], {
73
+ gradientUsed,
74
+ d,
75
+ seriesId
76
+ });
71
77
  });
72
78
  });
73
- });
79
+ }, [seriesData, axisData]);
80
+ return allData;
74
81
  };
75
82
 
76
83
  /**
@@ -1,23 +1,5 @@
1
1
  import * as React from 'react';
2
- import { SeriesId } from '../models/seriesType/common';
3
- export interface MarkElementClasses {
4
- /** Styles applied to the root element. */
5
- root: string;
6
- /** Styles applied to the root element when highlighted. */
7
- highlighted: string;
8
- /** Styles applied to the root element when faded. */
9
- faded: string;
10
- }
11
- export type MarkElementClassKey = keyof MarkElementClasses;
12
- interface MarkElementOwnerState {
13
- id: SeriesId;
14
- color: string;
15
- isFaded: boolean;
16
- isHighlighted: boolean;
17
- classes?: Partial<MarkElementClasses>;
18
- }
19
- export declare function getMarkElementUtilityClass(slot: string): string;
20
- export declare const markElementClasses: MarkElementClasses;
2
+ import { MarkElementOwnerState } from './markElementClasses';
21
3
  export type MarkElementProps = Omit<MarkElementOwnerState, 'isFaded' | 'isHighlighted'> & Omit<React.SVGProps<SVGPathElement>, 'ref' | 'id'> & {
22
4
  /**
23
5
  * If `true`, animations are skipped.
@@ -1,35 +1,19 @@
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", "shape", "dataIndex", "onClick", "skipAnimation"];
4
6
  import * as React from 'react';
5
7
  import PropTypes from 'prop-types';
6
- import composeClasses from '@mui/utils/composeClasses';
7
- import generateUtilityClass from '@mui/utils/generateUtilityClass';
8
8
  import { styled } from '@mui/material/styles';
9
- import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
10
9
  import { symbol as d3Symbol, symbolsFill as d3SymbolsFill } from '@mui/x-charts-vendor/d3-shape';
11
10
  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';
11
+ import { getSymbol } from "../internals/getSymbol.js";
12
+ import { InteractionContext } from "../context/InteractionProvider.js";
13
+ import { useInteractionItemProps } from "../hooks/useInteractionItemProps.js";
14
+ import { useItemHighlighted } from "../context/index.js";
15
+ import { useUtilityClasses } from "./markElementClasses.js";
16
16
  import { jsx as _jsx } from "react/jsx-runtime";
17
- export function getMarkElementUtilityClass(slot) {
18
- return generateUtilityClass('MuiMarkElement', slot);
19
- }
20
- export const markElementClasses = generateUtilityClasses('MuiMarkElement', ['root', 'highlighted', 'faded']);
21
- const useUtilityClasses = ownerState => {
22
- const {
23
- classes,
24
- id,
25
- isFaded,
26
- isHighlighted
27
- } = ownerState;
28
- const slots = {
29
- root: ['root', `series-${id}`, isHighlighted && 'highlighted', isFaded && 'faded']
30
- };
31
- return composeClasses(slots, getMarkElementUtilityClass, classes);
32
- };
33
17
  const MarkElementPath = styled(animated.path, {
34
18
  name: 'MuiMarkElement',
35
19
  slot: 'Root',
@@ -24,6 +24,12 @@ export interface MarkPlotProps extends React.SVGAttributes<SVGSVGElement>, Pick<
24
24
  * @param {LineItemIdentifier} lineItemIdentifier The line mark item identifier.
25
25
  */
26
26
  onItemClick?: (event: React.MouseEvent<SVGElement, MouseEvent>, lineItemIdentifier: LineItemIdentifier) => void;
27
+ /**
28
+ * If `true` the mark element will only be able to render circle.
29
+ * Giving fewer customization options, but saving around 40ms per 1.000 marks.
30
+ * @default false
31
+ */
32
+ experimentalRendering?: boolean;
27
33
  }
28
34
  /**
29
35
  * Demos:
@@ -1,17 +1,20 @@
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
- const _excluded = ["slots", "slotProps", "skipAnimation", "onItemClick"];
5
+ const _excluded = ["slots", "slotProps", "skipAnimation", "onItemClick", "experimentalRendering"];
4
6
  import * as React from 'react';
5
7
  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';
8
+ import { useCartesianContext } from "../context/CartesianProvider/index.js";
9
+ import { MarkElement } from "./MarkElement.js";
10
+ import { getValueToPositionMapper } from "../hooks/useScale.js";
11
+ import { useChartId } from "../hooks/useChartId.js";
12
+ import { DEFAULT_X_AXIS_KEY } from "../constants/index.js";
13
+ import { cleanId } from "../internals/cleanId.js";
14
+ import getColor from "./getColor.js";
15
+ import { useLineSeries } from "../hooks/useSeries.js";
16
+ import { useDrawingArea } from "../hooks/useDrawingArea.js";
17
+ import { CircleMarkElement } from "./CircleMarkElement.js";
15
18
  import { jsx as _jsx } from "react/jsx-runtime";
16
19
  /**
17
20
  * Demos:
@@ -28,14 +31,15 @@ function MarkPlot(props) {
28
31
  slots,
29
32
  slotProps,
30
33
  skipAnimation,
31
- onItemClick
34
+ onItemClick,
35
+ experimentalRendering
32
36
  } = props,
33
37
  other = _objectWithoutPropertiesLoose(props, _excluded);
34
38
  const seriesData = useLineSeries();
35
39
  const axisData = useCartesianContext();
36
40
  const chartId = useChartId();
37
41
  const drawingArea = useDrawingArea();
38
- const Mark = slots?.mark ?? MarkElement;
42
+ const Mark = slots?.mark ?? (experimentalRendering ? CircleMarkElement : MarkElement);
39
43
  if (seriesData === undefined) {
40
44
  return null;
41
45
  }
@@ -149,6 +153,12 @@ process.env.NODE_ENV !== "production" ? MarkPlot.propTypes = {
149
153
  // | These PropTypes are generated from the TypeScript type definitions |
150
154
  // | To update them edit the TypeScript types and run "pnpm proptypes" |
151
155
  // ----------------------------------------------------------------------
156
+ /**
157
+ * If `true` the mark element will only be able to render circle.
158
+ * Giving fewer customization options, but saving around 40ms per 1.000 marks.
159
+ * @default false
160
+ */
161
+ experimentalRendering: PropTypes.bool,
152
162
  /**
153
163
  * Callback fired when a line mark item is clicked.
154
164
  * @param {React.MouseEvent<SVGPathElement, MouseEvent>} event The event source of the callback.
@@ -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
@@ -9,3 +9,5 @@ export * from './LineElement';
9
9
  export * from './AnimatedLine';
10
10
  export * from './MarkElement';
11
11
  export * from './LineHighlightElement';
12
+ export type { MarkElementClasses, MarkElementClassKey } from './markElementClasses';
13
+ export { getMarkElementUtilityClass, markElementClasses } from './markElementClasses';
@@ -1,11 +1,12 @@
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";
12
+ export { getMarkElementUtilityClass, markElementClasses } from "./markElementClasses.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,
@@ -10,9 +10,10 @@ const legendGetter = params => {
10
10
  return acc;
11
11
  }
12
12
  acc.push({
13
+ id: seriesId,
14
+ seriesId,
13
15
  color: series[seriesId].color,
14
- label: formattedLabel,
15
- id: seriesId
16
+ label: formattedLabel
16
17
  });
17
18
  return acc;
18
19
  }, []);
@@ -0,0 +1,20 @@
1
+ import { SeriesId } from '../models/seriesType/common';
2
+ export interface MarkElementClasses {
3
+ /** Styles applied to the root element. */
4
+ root: string;
5
+ /** Styles applied to the root element when highlighted. */
6
+ highlighted: string;
7
+ /** Styles applied to the root element when faded. */
8
+ faded: string;
9
+ }
10
+ export type MarkElementClassKey = keyof MarkElementClasses;
11
+ export interface MarkElementOwnerState {
12
+ id: SeriesId;
13
+ color: string;
14
+ isFaded: boolean;
15
+ isHighlighted: boolean;
16
+ classes?: Partial<MarkElementClasses>;
17
+ }
18
+ export declare function getMarkElementUtilityClass(slot: string): string;
19
+ export declare const markElementClasses: MarkElementClasses;
20
+ export declare const useUtilityClasses: (ownerState: MarkElementOwnerState) => Record<"root", string>;
@@ -0,0 +1,19 @@
1
+ import composeClasses from '@mui/utils/composeClasses';
2
+ import generateUtilityClass from '@mui/utils/generateUtilityClass';
3
+ import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
4
+ export function getMarkElementUtilityClass(slot) {
5
+ return generateUtilityClass('MuiMarkElement', slot);
6
+ }
7
+ export const markElementClasses = generateUtilityClasses('MuiMarkElement', ['root', 'highlighted', 'faded']);
8
+ export const useUtilityClasses = ownerState => {
9
+ const {
10
+ classes,
11
+ id,
12
+ isFaded,
13
+ isHighlighted
14
+ } = ownerState;
15
+ const slots = {
16
+ root: ['root', `series-${id}`, isHighlighted && 'highlighted', isFaded && 'faded']
17
+ };
18
+ return composeClasses(slots, getMarkElementUtilityClass, classes);
19
+ };
@@ -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,
@@ -1,8 +1,10 @@
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
- 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"];
5
+ 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", "experimentalMarkRendering"];
4
6
  import useId from '@mui/utils/useId';
5
- import { DEFAULT_X_AXIS_KEY } from '../constants';
7
+ import { DEFAULT_X_AXIS_KEY } from "../constants/index.js";
6
8
  /**
7
9
  * A helper function that extracts LineChartProps from the input props
8
10
  * and returns an object with props for the children components of LineChart.
@@ -41,7 +43,8 @@ export const useLineChartProps = props => {
41
43
  loading,
42
44
  highlightedItem,
43
45
  onHighlightChange,
44
- className
46
+ className,
47
+ experimentalMarkRendering
45
48
  } = props,
46
49
  other = _objectWithoutPropertiesLoose(props, _excluded);
47
50
  const id = useId();
@@ -99,7 +102,8 @@ export const useLineChartProps = props => {
99
102
  slots,
100
103
  slotProps,
101
104
  onItemClick: onMarkClick,
102
- skipAnimation
105
+ skipAnimation,
106
+ experimentalRendering: experimentalMarkRendering
103
107
  };
104
108
  const overlayProps = {
105
109
  slots,
@@ -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 = ["classes", "color", "cornerRadius", "dataIndex", "endAngle", "id", "innerRadius", "isFaded", "isHighlighted", "onClick", "outerRadius", "paddingAngle", "startAngle", "highlightScope"];
@@ -9,7 +11,7 @@ import composeClasses from '@mui/utils/composeClasses';
9
11
  import generateUtilityClass from '@mui/utils/generateUtilityClass';
10
12
  import { styled } from '@mui/material/styles';
11
13
  import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
12
- import { useInteractionItemProps } from '../hooks/useInteractionItemProps';
14
+ import { useInteractionItemProps } from "../hooks/useInteractionItemProps.js";
13
15
  import { jsx as _jsx } from "react/jsx-runtime";
14
16
  export function getPieArcUtilityClass(slot) {
15
17
  return generateUtilityClass('MuiPieArc', 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 = ["id", "classes", "color", "startAngle", "endAngle", "paddingAngle", "arcLabelRadius", "innerRadius", "outerRadius", "cornerRadius", "formattedArcLabel", "isHighlighted", "isFaded", "style"];
@@ -1,3 +1,5 @@
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 = ["arcLabel", "arcLabelMinAngle", "arcLabelRadius", "cornerRadius", "data", "faded", "highlighted", "id", "innerRadius", "outerRadius", "paddingAngle", "skipAnimation", "slotProps", "slots"],
@@ -5,10 +7,10 @@ const _excluded = ["arcLabel", "arcLabelMinAngle", "arcLabelRadius", "cornerRadi
5
7
  import * as React from 'react';
6
8
  import PropTypes from 'prop-types';
7
9
  import { useTransition } from '@react-spring/web';
8
- import { defaultLabelTransitionConfig } from './dataTransform/transition';
9
- import { useTransformData } from './dataTransform/useTransformData';
10
- import { PieArcLabel } from './PieArcLabel';
11
- import { getLabel } from '../internals/getLabel';
10
+ import { defaultLabelTransitionConfig } from "./dataTransform/transition.js";
11
+ import { useTransformData } from "./dataTransform/useTransformData.js";
12
+ import { PieArcLabel } from "./PieArcLabel.js";
13
+ import { getLabel } from "../internals/getLabel.js";
12
14
  import { jsx as _jsx } from "react/jsx-runtime";
13
15
  const RATIO = 180 / Math.PI;
14
16
  function getItemLabel(arcLabel, arcLabelMinAngle, item) {
@@ -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 = ["slots", "slotProps", "innerRadius", "outerRadius", "cornerRadius", "paddingAngle", "id", "highlighted", "faded", "data", "onItemClick", "skipAnimation"],
@@ -5,10 +7,10 @@ const _excluded = ["slots", "slotProps", "innerRadius", "outerRadius", "cornerRa
5
7
  import * as React from 'react';
6
8
  import PropTypes from 'prop-types';
7
9
  import { useTransition } from '@react-spring/web';
8
- import { PieArc } from './PieArc';
9
- import { defaultTransitionConfig } from './dataTransform/transition';
10
- import { useTransformData } from './dataTransform/useTransformData';
11
- import { useHighlighted } from '../context';
10
+ import { PieArc } from "./PieArc.js";
11
+ import { defaultTransitionConfig } from "./dataTransform/transition.js";
12
+ import { useTransformData } from "./dataTransform/useTransformData.js";
13
+ import { useHighlighted } from "../context/index.js";
12
14
  import { jsx as _jsx } from "react/jsx-runtime";
13
15
  function PieArcPlot(props) {
14
16
  const {
@@ -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 = ["xAxis", "yAxis", "series", "width", "height", "margin", "colors", "sx", "tooltip", "axisHighlight", "skipAnimation", "legend", "topAxis", "leftAxis", "rightAxis", "bottomAxis", "children", "slots", "slotProps", "onItemClick", "loading", "highlightedItem", "onHighlightChange", "className"];
@@ -5,14 +7,14 @@ import * as React from 'react';
5
7
  import PropTypes from 'prop-types';
6
8
  import { useRtl } from '@mui/system/RtlProvider';
7
9
  import { useThemeProps } from '@mui/material/styles';
8
- import { ResponsiveChartContainer } from '../ResponsiveChartContainer';
9
- import { ChartsAxis } from '../ChartsAxis/ChartsAxis';
10
- import { DEFAULT_X_AXIS_KEY } from '../constants';
11
- import { ChartsTooltip } from '../ChartsTooltip';
12
- import { ChartsLegend } from '../ChartsLegend';
13
- import { ChartsAxisHighlight } from '../ChartsAxisHighlight';
14
- import { PiePlot } from './PiePlot';
15
- import { ChartsOverlay } from '../ChartsOverlay';
10
+ import { ResponsiveChartContainer } from "../ResponsiveChartContainer/index.js";
11
+ import { ChartsAxis } from "../ChartsAxis/ChartsAxis.js";
12
+ import { DEFAULT_X_AXIS_KEY } from "../constants/index.js";
13
+ import { ChartsTooltip } from "../ChartsTooltip/index.js";
14
+ import { ChartsLegend } from "../ChartsLegend/index.js";
15
+ import { ChartsAxisHighlight } from "../ChartsAxisHighlight/index.js";
16
+ import { PiePlot } from "./PiePlot.js";
17
+ import { ChartsOverlay } from "../ChartsOverlay/index.js";
16
18
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
17
19
  const defaultMargin = {
18
20
  top: 5,
@@ -192,6 +194,18 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
192
194
  classes: PropTypes.object,
193
195
  direction: PropTypes.oneOf(['column', 'row']),
194
196
  hidden: PropTypes.bool,
197
+ itemGap: PropTypes.number,
198
+ itemMarkHeight: PropTypes.number,
199
+ itemMarkWidth: PropTypes.number,
200
+ labelStyle: PropTypes.object,
201
+ markGap: PropTypes.number,
202
+ onItemClick: PropTypes.func,
203
+ padding: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({
204
+ bottom: PropTypes.number,
205
+ left: PropTypes.number,
206
+ right: PropTypes.number,
207
+ top: PropTypes.number
208
+ })]),
195
209
  position: PropTypes.shape({
196
210
  horizontal: PropTypes.oneOf(['left', 'middle', 'right']).isRequired,
197
211
  vertical: PropTypes.oneOf(['bottom', 'middle', 'top']).isRequired
@@ -1,11 +1,13 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
4
  import PropTypes from 'prop-types';
3
- import { DrawingContext } from '../context/DrawingProvider';
4
- import { PieArcPlot } from './PieArcPlot';
5
- import { PieArcLabelPlot } from './PieArcLabelPlot';
6
- import { getPercentageValue } from '../internals/getPercentageValue';
7
- import { getPieCoordinates } from './getPieCoordinates';
8
- import { usePieSeries } from '../hooks/useSeries';
5
+ import { DrawingContext } from "../context/DrawingProvider.js";
6
+ import { PieArcPlot } from "./PieArcPlot.js";
7
+ import { PieArcLabelPlot } from "./PieArcLabelPlot.js";
8
+ import { getPercentageValue } from "../internals/getPercentageValue.js";
9
+ import { getPieCoordinates } from "./getPieCoordinates.js";
10
+ import { usePieSeries } from "../hooks/useSeries.js";
9
11
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
12
  /**
11
13
  * Demos:
@@ -1,6 +1,8 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import * as React from 'react';
3
- import { useHighlighted } from '../../context';
5
+ import { useHighlighted } from "../../context/index.js";
4
6
  export function useTransformData(series) {
5
7
  const {
6
8
  id: seriesId,
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import { pie as d3Pie } from '@mui/x-charts-vendor/d3-shape';
3
- import { getLabel } from '../internals/getLabel';
3
+ import { getLabel } from "../internals/getLabel.js";
4
4
  const getSortingComparator = (comparator = 'none') => {
5
5
  if (typeof comparator === 'function') {
6
6
  return comparator;
@@ -1,4 +1,4 @@
1
- import { getPercentageValue } from '../internals/getPercentageValue';
1
+ import { getPercentageValue } from "../internals/getPercentageValue.js";
2
2
  export function getPieCoordinates(series, drawing) {
3
3
  const {
4
4
  height,
package/PieChart/index.js CHANGED
@@ -1,7 +1,7 @@
1
- export * from './PieChart';
2
- export * from './PiePlot';
3
- export * from './PieArcPlot';
4
- export * from './PieArcLabelPlot';
5
- export * from './PieArc';
6
- export * from './PieArcLabel';
7
- export * from './getPieCoordinates';
1
+ export * from "./PieChart.js";
2
+ export * from "./PiePlot.js";
3
+ export * from "./PieArcPlot.js";
4
+ export * from "./PieArcLabelPlot.js";
5
+ export * from "./PieArc.js";
6
+ export * from "./PieArcLabel.js";
7
+ export * from "./getPieCoordinates.js";