@mui/x-charts 7.16.0 → 7.18.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 (398) hide show
  1. package/BarChart/BarChart.js +13 -0
  2. package/BarChart/BarElement.js +2 -0
  3. package/BarChart/BarLabel/BarLabel.js +2 -0
  4. package/BarChart/BarPlot.js +2 -0
  5. package/BarChart/legend.js +3 -2
  6. package/BarChart/useBarChartProps.js +2 -0
  7. package/CHANGELOG.md +184 -4
  8. package/ChartContainer/ChartContainer.js +2 -0
  9. package/ChartContainer/useChartContainerProps.js +2 -0
  10. package/ChartContainer/useDefaultizeAxis.js +2 -0
  11. package/ChartsAxis/ChartsAxis.js +2 -0
  12. package/ChartsAxisHighlight/ChartsAxisHighlight.js +2 -0
  13. package/ChartsClipPath/ChartsClipPath.js +2 -0
  14. package/ChartsGrid/ChartsGrid.js +2 -0
  15. package/ChartsLegend/ChartsLegend.d.ts +2 -2
  16. package/ChartsLegend/ChartsLegend.js +11 -1
  17. package/ChartsLegend/ChartsLegendItem.d.ts +26 -0
  18. package/ChartsLegend/ChartsLegendItem.js +65 -0
  19. package/ChartsLegend/ContinuousColorLegend.js +2 -0
  20. package/ChartsLegend/DefaultChartsLegend.d.ts +9 -1
  21. package/ChartsLegend/DefaultChartsLegend.js +26 -4
  22. package/ChartsLegend/LegendPerItem.d.ts +1 -0
  23. package/ChartsLegend/LegendPerItem.js +19 -28
  24. package/ChartsLegend/PiecewiseColorLegend.d.ts +9 -1
  25. package/ChartsLegend/PiecewiseColorLegend.js +28 -7
  26. package/ChartsLegend/chartsLegend.types.d.ts +39 -1
  27. package/ChartsLegend/chartsLegendClasses.d.ts +2 -0
  28. package/ChartsLegend/chartsLegendClasses.js +1 -1
  29. package/ChartsLegend/useAxis.js +2 -0
  30. package/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +3 -1
  31. package/ChartsOverlay/ChartsLoadingOverlay.js +2 -0
  32. package/ChartsOverlay/ChartsNoDataOverlay.js +2 -0
  33. package/ChartsOverlay/ChartsOverlay.js +2 -0
  34. package/ChartsReferenceLine/ChartsReferenceLine.js +2 -0
  35. package/ChartsReferenceLine/ChartsXReferenceLine.js +3 -1
  36. package/ChartsReferenceLine/ChartsYReferenceLine.js +3 -1
  37. package/ChartsSurface/ChartsSurface.js +2 -0
  38. package/ChartsText/ChartsText.js +2 -0
  39. package/ChartsTooltip/ChartsTooltip.js +2 -0
  40. package/ChartsTooltip/DefaultChartsAxisTooltipContent.js +2 -0
  41. package/ChartsTooltip/DefaultChartsItemTooltipContent.js +2 -0
  42. package/ChartsTooltip/index.d.ts +3 -0
  43. package/ChartsTooltip/index.js +4 -1
  44. package/ChartsTooltip/useAxisTooltip.d.ts +18 -0
  45. package/ChartsTooltip/useAxisTooltip.js +84 -0
  46. package/ChartsTooltip/useItemTooltip.d.ts +10 -0
  47. package/ChartsTooltip/useItemTooltip.js +64 -0
  48. package/ChartsTooltip/utils.d.ts +2 -1
  49. package/ChartsVoronoiHandler/ChartsVoronoiHandler.js +2 -0
  50. package/ChartsXAxis/ChartsXAxis.js +2 -0
  51. package/ChartsYAxis/ChartsYAxis.js +2 -0
  52. package/Gauge/Gauge.js +2 -0
  53. package/Gauge/GaugeContainer.js +2 -0
  54. package/Gauge/GaugeReferenceArc.js +2 -0
  55. package/Gauge/GaugeValueArc.js +2 -0
  56. package/Gauge/GaugeValueText.js +2 -0
  57. package/LineChart/AnimatedArea.js +2 -0
  58. package/LineChart/AnimatedLine.js +14 -22
  59. package/LineChart/AreaElement.js +2 -0
  60. package/LineChart/AreaPlot.js +2 -0
  61. package/LineChart/CircleMarkElement.d.ts +34 -0
  62. package/LineChart/CircleMarkElement.js +107 -0
  63. package/LineChart/LineChart.d.ts +4 -0
  64. package/LineChart/LineChart.js +17 -0
  65. package/LineChart/LineElement.js +2 -0
  66. package/LineChart/LineHighlightElement.js +2 -0
  67. package/LineChart/LineHighlightPlot.js +2 -0
  68. package/LineChart/LinePlot.js +2 -0
  69. package/LineChart/MarkElement.d.ts +1 -19
  70. package/LineChart/MarkElement.js +3 -19
  71. package/LineChart/MarkPlot.d.ts +6 -0
  72. package/LineChart/MarkPlot.js +13 -3
  73. package/LineChart/index.d.ts +2 -0
  74. package/LineChart/index.js +2 -1
  75. package/LineChart/legend.js +3 -2
  76. package/LineChart/markElementClasses.d.ts +20 -0
  77. package/LineChart/markElementClasses.js +19 -0
  78. package/LineChart/useLineChartProps.js +7 -3
  79. package/PieChart/PieArc.js +2 -0
  80. package/PieChart/PieArcLabel.js +2 -0
  81. package/PieChart/PieArcLabelPlot.js +2 -0
  82. package/PieChart/PieArcPlot.js +2 -0
  83. package/PieChart/PieChart.js +13 -0
  84. package/PieChart/PiePlot.js +2 -0
  85. package/PieChart/dataTransform/useTransformData.js +2 -0
  86. package/PieChart/legend.js +3 -1
  87. package/ResponsiveChartContainer/ResponsiveChartContainer.d.ts +10 -0
  88. package/ResponsiveChartContainer/ResponsiveChartContainer.js +12 -0
  89. package/ResponsiveChartContainer/useChartContainerDimensions.d.ts +1 -1
  90. package/ResponsiveChartContainer/useChartContainerDimensions.js +35 -9
  91. package/ResponsiveChartContainer/useResponsiveChartContainerProps.js +5 -2
  92. package/ScatterChart/Scatter.js +2 -0
  93. package/ScatterChart/ScatterChart.js +13 -0
  94. package/ScatterChart/ScatterPlot.js +2 -0
  95. package/ScatterChart/legend.js +3 -2
  96. package/ScatterChart/useScatterChartProps.js +2 -0
  97. package/SparkLineChart/SparkLineChart.js +12 -0
  98. package/context/CartesianProvider/CartesianProvider.js +5 -3
  99. package/context/CartesianProvider/getAxisExtremum.d.ts +1 -1
  100. package/context/CartesianProvider/getAxisExtremum.js +5 -4
  101. package/context/CartesianProvider/index.d.ts +0 -5
  102. package/context/CartesianProvider/index.js +1 -6
  103. package/context/CartesianProvider/useCartesianContext.js +2 -0
  104. package/context/DrawingProvider.js +2 -0
  105. package/context/HighlightedProvider/HighlightedProvider.js +2 -0
  106. package/context/HighlightedProvider/useHighlighted.js +2 -0
  107. package/context/HighlightedProvider/useItemHighlighted.js +2 -0
  108. package/context/InteractionProvider.js +2 -0
  109. package/context/PluginProvider/ExtremumGetter.types.d.ts +1 -0
  110. package/context/PluginProvider/Plugin.types.d.ts +4 -0
  111. package/context/PluginProvider/PluginContext.js +3 -1
  112. package/context/PluginProvider/PluginProvider.js +2 -0
  113. package/context/PluginProvider/index.d.ts +2 -0
  114. package/context/PluginProvider/index.js +3 -1
  115. package/context/PluginProvider/mergePlugins.d.ts +10 -0
  116. package/context/PluginProvider/mergePlugins.js +11 -1
  117. package/context/PluginProvider/useColorProcessor.js +2 -0
  118. package/context/PluginProvider/useRadiusExtremumGetter.d.ts +4 -0
  119. package/context/PluginProvider/useRadiusExtremumGetter.js +17 -0
  120. package/context/PluginProvider/useRotationExtremumGetter.d.ts +4 -0
  121. package/context/PluginProvider/useRotationExtremumGetter.js +17 -0
  122. package/context/PluginProvider/useSeriesFormatter.js +2 -0
  123. package/context/PolarProvider/Polar.types.d.ts +42 -0
  124. package/context/PolarProvider/Polar.types.js +1 -0
  125. package/context/PolarProvider/PolarContext.d.ts +4 -0
  126. package/context/PolarProvider/PolarContext.js +13 -0
  127. package/context/PolarProvider/PolarProvider.d.ts +4 -0
  128. package/context/PolarProvider/PolarProvider.js +49 -0
  129. package/context/PolarProvider/getAxisExtremum.d.ts +4 -0
  130. package/context/PolarProvider/getAxisExtremum.js +20 -0
  131. package/context/PolarProvider/index.d.ts +0 -0
  132. package/context/PolarProvider/index.js +0 -0
  133. package/context/PolarProvider/usePolarContext.d.ts +2 -0
  134. package/context/PolarProvider/usePolarContext.js +10 -0
  135. package/context/SeriesProvider/SeriesProvider.js +2 -0
  136. package/context/ZAxisContextProvider.js +2 -0
  137. package/hooks/useAxis.js +2 -0
  138. package/hooks/useAxisEvents.js +2 -0
  139. package/hooks/useChartDimensions.js +2 -0
  140. package/hooks/useChartId.js +2 -0
  141. package/hooks/useColorScale.js +2 -0
  142. package/hooks/useDrawingArea.js +2 -0
  143. package/hooks/useInteractionItemProps.js +2 -0
  144. package/hooks/useMounted.js +2 -0
  145. package/hooks/useReducedMotion.js +2 -0
  146. package/hooks/useScale.js +2 -0
  147. package/hooks/useSeries.js +2 -0
  148. package/hooks/useSvgRef.js +2 -0
  149. package/hooks/useTicks.js +2 -0
  150. package/index.js +1 -1
  151. package/internals/computeAxisValue.d.ts +38 -0
  152. package/{modern/context/CartesianProvider/computeValue.js → internals/computeAxisValue.js} +28 -15
  153. package/internals/index.d.ts +1 -0
  154. package/internals/index.js +1 -0
  155. package/models/axis.d.ts +20 -0
  156. package/models/seriesType/config.d.ts +6 -2
  157. package/modern/BarChart/BarChart.js +13 -0
  158. package/modern/BarChart/BarElement.js +2 -0
  159. package/modern/BarChart/BarLabel/BarLabel.js +2 -0
  160. package/modern/BarChart/BarPlot.js +2 -0
  161. package/modern/BarChart/legend.js +3 -2
  162. package/modern/BarChart/useBarChartProps.js +2 -0
  163. package/modern/ChartContainer/ChartContainer.js +2 -0
  164. package/modern/ChartContainer/useChartContainerProps.js +2 -0
  165. package/modern/ChartContainer/useDefaultizeAxis.js +2 -0
  166. package/modern/ChartsAxis/ChartsAxis.js +2 -0
  167. package/modern/ChartsAxisHighlight/ChartsAxisHighlight.js +2 -0
  168. package/modern/ChartsClipPath/ChartsClipPath.js +2 -0
  169. package/modern/ChartsGrid/ChartsGrid.js +2 -0
  170. package/modern/ChartsLegend/ChartsLegend.js +11 -1
  171. package/modern/ChartsLegend/ChartsLegendItem.js +65 -0
  172. package/modern/ChartsLegend/ContinuousColorLegend.js +2 -0
  173. package/modern/ChartsLegend/DefaultChartsLegend.js +26 -4
  174. package/modern/ChartsLegend/LegendPerItem.js +19 -28
  175. package/modern/ChartsLegend/PiecewiseColorLegend.js +28 -7
  176. package/modern/ChartsLegend/chartsLegendClasses.js +1 -1
  177. package/modern/ChartsLegend/useAxis.js +2 -0
  178. package/modern/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +3 -1
  179. package/modern/ChartsOverlay/ChartsLoadingOverlay.js +2 -0
  180. package/modern/ChartsOverlay/ChartsNoDataOverlay.js +2 -0
  181. package/modern/ChartsOverlay/ChartsOverlay.js +2 -0
  182. package/modern/ChartsReferenceLine/ChartsReferenceLine.js +2 -0
  183. package/modern/ChartsReferenceLine/ChartsXReferenceLine.js +3 -1
  184. package/modern/ChartsReferenceLine/ChartsYReferenceLine.js +3 -1
  185. package/modern/ChartsSurface/ChartsSurface.js +2 -0
  186. package/modern/ChartsText/ChartsText.js +2 -0
  187. package/modern/ChartsTooltip/ChartsTooltip.js +2 -0
  188. package/modern/ChartsTooltip/DefaultChartsAxisTooltipContent.js +2 -0
  189. package/modern/ChartsTooltip/DefaultChartsItemTooltipContent.js +2 -0
  190. package/modern/ChartsTooltip/index.js +4 -1
  191. package/modern/ChartsTooltip/useAxisTooltip.js +84 -0
  192. package/modern/ChartsTooltip/useItemTooltip.js +64 -0
  193. package/modern/ChartsVoronoiHandler/ChartsVoronoiHandler.js +2 -0
  194. package/modern/ChartsXAxis/ChartsXAxis.js +2 -0
  195. package/modern/ChartsYAxis/ChartsYAxis.js +2 -0
  196. package/modern/Gauge/Gauge.js +2 -0
  197. package/modern/Gauge/GaugeContainer.js +2 -0
  198. package/modern/Gauge/GaugeReferenceArc.js +2 -0
  199. package/modern/Gauge/GaugeValueArc.js +2 -0
  200. package/modern/Gauge/GaugeValueText.js +2 -0
  201. package/modern/LineChart/AnimatedArea.js +2 -0
  202. package/modern/LineChart/AnimatedLine.js +14 -22
  203. package/modern/LineChart/AreaElement.js +2 -0
  204. package/modern/LineChart/AreaPlot.js +2 -0
  205. package/modern/LineChart/CircleMarkElement.js +107 -0
  206. package/modern/LineChart/LineChart.js +17 -0
  207. package/modern/LineChart/LineElement.js +2 -0
  208. package/modern/LineChart/LineHighlightElement.js +2 -0
  209. package/modern/LineChart/LineHighlightPlot.js +2 -0
  210. package/modern/LineChart/LinePlot.js +2 -0
  211. package/modern/LineChart/MarkElement.js +3 -19
  212. package/modern/LineChart/MarkPlot.js +13 -3
  213. package/modern/LineChart/index.js +2 -1
  214. package/modern/LineChart/legend.js +3 -2
  215. package/modern/LineChart/markElementClasses.js +19 -0
  216. package/modern/LineChart/useLineChartProps.js +7 -3
  217. package/modern/PieChart/PieArc.js +2 -0
  218. package/modern/PieChart/PieArcLabel.js +2 -0
  219. package/modern/PieChart/PieArcLabelPlot.js +2 -0
  220. package/modern/PieChart/PieArcPlot.js +2 -0
  221. package/modern/PieChart/PieChart.js +13 -0
  222. package/modern/PieChart/PiePlot.js +2 -0
  223. package/modern/PieChart/dataTransform/useTransformData.js +2 -0
  224. package/modern/PieChart/legend.js +3 -1
  225. package/modern/ResponsiveChartContainer/ResponsiveChartContainer.js +12 -0
  226. package/modern/ResponsiveChartContainer/useChartContainerDimensions.js +35 -9
  227. package/modern/ResponsiveChartContainer/useResponsiveChartContainerProps.js +5 -2
  228. package/modern/ScatterChart/Scatter.js +2 -0
  229. package/modern/ScatterChart/ScatterChart.js +13 -0
  230. package/modern/ScatterChart/ScatterPlot.js +2 -0
  231. package/modern/ScatterChart/legend.js +3 -2
  232. package/modern/ScatterChart/useScatterChartProps.js +2 -0
  233. package/modern/SparkLineChart/SparkLineChart.js +12 -0
  234. package/modern/context/CartesianProvider/CartesianProvider.js +5 -3
  235. package/modern/context/CartesianProvider/getAxisExtremum.js +5 -4
  236. package/modern/context/CartesianProvider/index.js +1 -6
  237. package/modern/context/CartesianProvider/useCartesianContext.js +2 -0
  238. package/modern/context/DrawingProvider.js +2 -0
  239. package/modern/context/HighlightedProvider/HighlightedProvider.js +2 -0
  240. package/modern/context/HighlightedProvider/useHighlighted.js +2 -0
  241. package/modern/context/HighlightedProvider/useItemHighlighted.js +2 -0
  242. package/modern/context/InteractionProvider.js +2 -0
  243. package/modern/context/PluginProvider/PluginContext.js +3 -1
  244. package/modern/context/PluginProvider/PluginProvider.js +2 -0
  245. package/modern/context/PluginProvider/index.js +3 -1
  246. package/modern/context/PluginProvider/mergePlugins.js +11 -1
  247. package/modern/context/PluginProvider/useColorProcessor.js +2 -0
  248. package/modern/context/PluginProvider/useRadiusExtremumGetter.js +17 -0
  249. package/modern/context/PluginProvider/useRotationExtremumGetter.js +17 -0
  250. package/modern/context/PluginProvider/useSeriesFormatter.js +2 -0
  251. package/modern/context/PolarProvider/Polar.types.js +1 -0
  252. package/modern/context/PolarProvider/PolarContext.js +13 -0
  253. package/modern/context/PolarProvider/PolarProvider.js +49 -0
  254. package/modern/context/PolarProvider/getAxisExtremum.js +20 -0
  255. package/modern/context/PolarProvider/index.js +0 -0
  256. package/modern/context/PolarProvider/usePolarContext.js +10 -0
  257. package/modern/context/SeriesProvider/SeriesProvider.js +2 -0
  258. package/modern/context/ZAxisContextProvider.js +2 -0
  259. package/modern/hooks/useAxis.js +2 -0
  260. package/modern/hooks/useAxisEvents.js +2 -0
  261. package/modern/hooks/useChartDimensions.js +2 -0
  262. package/modern/hooks/useChartId.js +2 -0
  263. package/modern/hooks/useColorScale.js +2 -0
  264. package/modern/hooks/useDrawingArea.js +2 -0
  265. package/modern/hooks/useInteractionItemProps.js +2 -0
  266. package/modern/hooks/useMounted.js +2 -0
  267. package/modern/hooks/useReducedMotion.js +2 -0
  268. package/modern/hooks/useScale.js +2 -0
  269. package/modern/hooks/useSeries.js +2 -0
  270. package/modern/hooks/useSvgRef.js +2 -0
  271. package/modern/hooks/useTicks.js +2 -0
  272. package/modern/index.js +1 -1
  273. package/{context/CartesianProvider/computeValue.js → modern/internals/computeAxisValue.js} +28 -15
  274. package/modern/internals/index.js +1 -0
  275. package/node/BarChart/BarChart.js +12 -0
  276. package/node/BarChart/BarElement.js +1 -0
  277. package/node/BarChart/BarLabel/BarLabel.js +1 -0
  278. package/node/BarChart/BarPlot.js +1 -0
  279. package/node/BarChart/legend.js +3 -2
  280. package/node/BarChart/useBarChartProps.js +1 -0
  281. package/node/ChartContainer/ChartContainer.js +1 -0
  282. package/node/ChartContainer/useChartContainerProps.js +1 -0
  283. package/node/ChartContainer/useDefaultizeAxis.js +1 -0
  284. package/node/ChartsAxis/ChartsAxis.js +1 -0
  285. package/node/ChartsAxisHighlight/ChartsAxisHighlight.js +1 -0
  286. package/node/ChartsClipPath/ChartsClipPath.js +1 -0
  287. package/node/ChartsGrid/ChartsGrid.js +1 -0
  288. package/node/ChartsLegend/ChartsLegend.js +10 -1
  289. package/node/ChartsLegend/ChartsLegendItem.js +72 -0
  290. package/node/ChartsLegend/ContinuousColorLegend.js +1 -0
  291. package/node/ChartsLegend/DefaultChartsLegend.js +25 -4
  292. package/node/ChartsLegend/LegendPerItem.js +18 -28
  293. package/node/ChartsLegend/PiecewiseColorLegend.js +27 -7
  294. package/node/ChartsLegend/chartsLegendClasses.js +1 -1
  295. package/node/ChartsLegend/useAxis.js +1 -0
  296. package/node/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +2 -1
  297. package/node/ChartsOverlay/ChartsLoadingOverlay.js +1 -0
  298. package/node/ChartsOverlay/ChartsNoDataOverlay.js +1 -0
  299. package/node/ChartsOverlay/ChartsOverlay.js +1 -0
  300. package/node/ChartsReferenceLine/ChartsReferenceLine.js +1 -0
  301. package/node/ChartsReferenceLine/ChartsXReferenceLine.js +2 -1
  302. package/node/ChartsReferenceLine/ChartsYReferenceLine.js +2 -1
  303. package/node/ChartsSurface/ChartsSurface.js +1 -0
  304. package/node/ChartsText/ChartsText.js +1 -0
  305. package/node/ChartsTooltip/ChartsTooltip.js +1 -0
  306. package/node/ChartsTooltip/DefaultChartsAxisTooltipContent.js +1 -0
  307. package/node/ChartsTooltip/DefaultChartsItemTooltipContent.js +1 -0
  308. package/node/ChartsTooltip/index.js +42 -1
  309. package/node/ChartsTooltip/useAxisTooltip.js +90 -0
  310. package/node/ChartsTooltip/useItemTooltip.js +71 -0
  311. package/node/ChartsVoronoiHandler/ChartsVoronoiHandler.js +1 -0
  312. package/node/ChartsXAxis/ChartsXAxis.js +1 -0
  313. package/node/ChartsYAxis/ChartsYAxis.js +1 -0
  314. package/node/Gauge/Gauge.js +1 -0
  315. package/node/Gauge/GaugeContainer.js +1 -0
  316. package/node/Gauge/GaugeReferenceArc.js +1 -0
  317. package/node/Gauge/GaugeValueArc.js +1 -0
  318. package/node/Gauge/GaugeValueText.js +1 -0
  319. package/node/LineChart/AnimatedArea.js +1 -0
  320. package/node/LineChart/AnimatedLine.js +13 -22
  321. package/node/LineChart/AreaElement.js +1 -0
  322. package/node/LineChart/AreaPlot.js +1 -0
  323. package/node/LineChart/CircleMarkElement.js +113 -0
  324. package/node/LineChart/LineChart.js +16 -0
  325. package/node/LineChart/LineElement.js +1 -0
  326. package/node/LineChart/LineHighlightElement.js +1 -0
  327. package/node/LineChart/LineHighlightPlot.js +1 -0
  328. package/node/LineChart/LinePlot.js +1 -0
  329. package/node/LineChart/MarkElement.js +3 -22
  330. package/node/LineChart/MarkPlot.js +12 -3
  331. package/node/LineChart/index.js +29 -1
  332. package/node/LineChart/legend.js +3 -2
  333. package/node/LineChart/markElementClasses.js +28 -0
  334. package/node/LineChart/useLineChartProps.js +6 -3
  335. package/node/PieChart/PieArc.js +1 -0
  336. package/node/PieChart/PieArcLabel.js +1 -0
  337. package/node/PieChart/PieArcLabelPlot.js +1 -0
  338. package/node/PieChart/PieArcPlot.js +1 -0
  339. package/node/PieChart/PieChart.js +12 -0
  340. package/node/PieChart/PiePlot.js +1 -0
  341. package/node/PieChart/dataTransform/useTransformData.js +1 -0
  342. package/node/PieChart/legend.js +3 -1
  343. package/node/ResponsiveChartContainer/ResponsiveChartContainer.js +11 -0
  344. package/node/ResponsiveChartContainer/useChartContainerDimensions.js +34 -9
  345. package/node/ResponsiveChartContainer/useResponsiveChartContainerProps.js +4 -2
  346. package/node/ScatterChart/Scatter.js +1 -0
  347. package/node/ScatterChart/ScatterChart.js +12 -0
  348. package/node/ScatterChart/ScatterPlot.js +1 -0
  349. package/node/ScatterChart/legend.js +3 -2
  350. package/node/ScatterChart/useScatterChartProps.js +1 -0
  351. package/node/SparkLineChart/SparkLineChart.js +11 -0
  352. package/node/context/CartesianProvider/CartesianProvider.js +4 -3
  353. package/node/context/CartesianProvider/getAxisExtremum.js +5 -4
  354. package/node/context/CartesianProvider/index.js +1 -13
  355. package/node/context/CartesianProvider/useCartesianContext.js +1 -0
  356. package/node/context/DrawingProvider.js +1 -0
  357. package/node/context/HighlightedProvider/HighlightedProvider.js +1 -0
  358. package/node/context/HighlightedProvider/useHighlighted.js +1 -0
  359. package/node/context/HighlightedProvider/useItemHighlighted.js +1 -0
  360. package/node/context/InteractionProvider.js +1 -0
  361. package/node/context/PluginProvider/PluginContext.js +3 -1
  362. package/node/context/PluginProvider/PluginProvider.js +1 -0
  363. package/node/context/PluginProvider/index.js +22 -0
  364. package/node/context/PluginProvider/mergePlugins.js +11 -1
  365. package/node/context/PluginProvider/useColorProcessor.js +1 -0
  366. package/node/context/PluginProvider/useRadiusExtremumGetter.js +23 -0
  367. package/node/context/PluginProvider/useRotationExtremumGetter.js +23 -0
  368. package/node/context/PluginProvider/useSeriesFormatter.js +1 -0
  369. package/node/context/PolarProvider/Polar.types.js +5 -0
  370. package/node/context/PolarProvider/PolarContext.js +20 -0
  371. package/node/context/PolarProvider/PolarProvider.js +54 -0
  372. package/node/context/PolarProvider/getAxisExtremum.js +27 -0
  373. package/node/context/PolarProvider/index.js +1 -0
  374. package/node/context/PolarProvider/usePolarContext.js +17 -0
  375. package/node/context/SeriesProvider/SeriesProvider.js +1 -0
  376. package/node/context/ZAxisContextProvider.js +1 -0
  377. package/node/hooks/useAxis.js +1 -0
  378. package/node/hooks/useAxisEvents.js +1 -0
  379. package/node/hooks/useChartDimensions.js +1 -0
  380. package/node/hooks/useChartId.js +1 -0
  381. package/node/hooks/useColorScale.js +1 -0
  382. package/node/hooks/useDrawingArea.js +1 -0
  383. package/node/hooks/useInteractionItemProps.js +1 -0
  384. package/node/hooks/useMounted.js +1 -0
  385. package/node/hooks/useReducedMotion.js +1 -0
  386. package/node/hooks/useScale.js +1 -0
  387. package/node/hooks/useSeries.js +1 -0
  388. package/node/hooks/useSvgRef.js +1 -0
  389. package/node/hooks/useTicks.js +1 -0
  390. package/node/index.js +1 -1
  391. package/node/{context/CartesianProvider/computeValue.js → internals/computeAxisValue.js} +29 -16
  392. package/node/internals/index.js +12 -0
  393. package/package.json +4 -4
  394. package/context/CartesianProvider/computeValue.d.ts +0 -30
  395. package/internals/warning.d.ts +0 -2
  396. package/internals/warning.js +0 -21
  397. package/modern/internals/warning.js +0 -21
  398. package/node/internals/warning.js +0 -28
@@ -0,0 +1,49 @@
1
+ 'use client';
2
+
3
+ import * as React from 'react';
4
+ import { computeAxisValue } from "../../internals/computeAxisValue.js";
5
+ import { useDrawingArea } from "../../hooks/useDrawingArea.js";
6
+ import { useSeries } from "../../hooks/useSeries.js";
7
+ import { PolarContext } from "./PolarContext.js";
8
+ import { useRadiusExtremumGetter } from "../PluginProvider/useRadiusExtremumGetter.js";
9
+ import { useRotationExtremumGetter } from "../PluginProvider/useRotationExtremumGetter.js";
10
+ import { jsx as _jsx } from "react/jsx-runtime";
11
+ function PolarProvider(props) {
12
+ const {
13
+ rotationAxis,
14
+ radiusAxis,
15
+ children
16
+ } = props;
17
+ const formattedSeries = useSeries();
18
+ const drawingArea = useDrawingArea();
19
+ const rotationExtremumGetters = useRotationExtremumGetter();
20
+ const radiusExtremumGetters = useRadiusExtremumGetter();
21
+ const rotationValues = React.useMemo(() => computeAxisValue({
22
+ drawingArea,
23
+ formattedSeries,
24
+ axis: rotationAxis,
25
+ extremumGetters: rotationExtremumGetters,
26
+ axisDirection: 'rotation'
27
+ }), [drawingArea, formattedSeries, rotationAxis, rotationExtremumGetters]);
28
+ const radiusValues = React.useMemo(() => computeAxisValue({
29
+ drawingArea,
30
+ formattedSeries,
31
+ axis: radiusAxis,
32
+ extremumGetters: radiusExtremumGetters,
33
+ axisDirection: 'radius'
34
+ }), [drawingArea, formattedSeries, radiusAxis, radiusExtremumGetters]);
35
+ const value = React.useMemo(() => ({
36
+ isInitialized: true,
37
+ data: {
38
+ rotationAxis: rotationValues.axis,
39
+ radiusAxis: radiusValues.axis,
40
+ rotationAxisIds: rotationValues.axisIds,
41
+ radiusAxisIds: radiusValues.axisIds
42
+ }
43
+ }), [rotationValues, radiusValues]);
44
+ return /*#__PURE__*/_jsx(PolarContext.Provider, {
45
+ value: value,
46
+ children: children
47
+ });
48
+ }
49
+ export { PolarProvider };
@@ -0,0 +1,4 @@
1
+ import { AxisConfig } from '../../models';
2
+ import { FormattedSeries } from '../SeriesProvider';
3
+ import { ExtremumGettersConfig } from '../PluginProvider';
4
+ export declare const getAxisExtremum: (axis: AxisConfig, getters: ExtremumGettersConfig, axisIndex: number, formattedSeries: FormattedSeries) => number[];
@@ -0,0 +1,20 @@
1
+ const axisExtremumCallback = (acc, chartType, axis, getters, axisIndex, formattedSeries) => {
2
+ const getter = getters[chartType];
3
+ const series = formattedSeries[chartType]?.series ?? {};
4
+ const [minChartTypeData, maxChartTypeData] = getter?.({
5
+ series,
6
+ axis,
7
+ axisIndex,
8
+ isDefaultAxis: axisIndex === 0
9
+ }) ?? [Infinity, -Infinity];
10
+ const [minData, maxData] = acc;
11
+ return [Math.min(minChartTypeData, minData), Math.max(maxChartTypeData, maxData)];
12
+ };
13
+ export const getAxisExtremum = (axis, getters, axisIndex, formattedSeries) => {
14
+ const charTypes = Object.keys(getters);
15
+ const extremums = charTypes.reduce((acc, charType) => axisExtremumCallback(acc, charType, axis, getters, axisIndex, formattedSeries), [Infinity, -Infinity]);
16
+ if (Number.isNaN(extremums[0]) || Number.isNaN(extremums[1])) {
17
+ return [Infinity, -Infinity];
18
+ }
19
+ return extremums;
20
+ };
File without changes
File without changes
@@ -0,0 +1,2 @@
1
+ import { PolarContextState } from './Polar.types';
2
+ export declare const usePolarContext: () => PolarContextState;
@@ -0,0 +1,10 @@
1
+ 'use client';
2
+
3
+ import * as React from 'react';
4
+ import { PolarContext } from "./PolarContext.js";
5
+ export const usePolarContext = () => {
6
+ const {
7
+ data
8
+ } = React.useContext(PolarContext);
9
+ return data;
10
+ };
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
4
  import { useTheme } from '@mui/material/styles';
3
5
  import { blueberryTwilightPalette } from "../../colorPalettes/index.js";
@@ -1,3 +1,5 @@
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';
package/hooks/useAxis.js CHANGED
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import { useCartesianContext } from "../context/CartesianProvider/index.js";
2
4
  export function useXAxis(identifier) {
3
5
  const {
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
4
  import { InteractionContext } from "../context/InteractionProvider.js";
3
5
  import { useCartesianContext } from "../context/CartesianProvider/index.js";
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import * as React from 'react';
3
5
  import { DEFAULT_MARGINS } from "../constants/index.js";
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
4
  import { DrawingContext } from "../context/DrawingProvider.js";
3
5
  export function useChartId() {
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
4
  import { useCartesianContext } from "../context/CartesianProvider/index.js";
3
5
  import { ZAxisContext } from "../context/ZAxisContextProvider.js";
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
4
  import { DrawingContext } from "../context/DrawingProvider.js";
3
5
  export function useDrawingArea() {
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
4
  import { InteractionContext } from "../context/InteractionProvider.js";
3
5
  import { useHighlighted } from "../context/index.js";
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
4
  import useEnhancedEffect from '@mui/utils/useEnhancedEffect';
3
5
  export function useMounted(defer = false) {
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import { useIsomorphicLayoutEffect, Globals } from '@react-spring/web';
2
4
  const handleMediaChange = e => {
3
5
  Globals.assign({
package/hooks/useScale.js CHANGED
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import { isBandScale } from "../internals/isBandScale.js";
2
4
  import { useXAxis, useYAxis } from "./useAxis.js";
3
5
 
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
4
  import { SeriesContext } from "../context/SeriesProvider/index.js";
3
5
 
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
4
  import { SvgContext } from "../context/DrawingProvider.js";
3
5
  export function useSvgRef() {
package/hooks/useTicks.js CHANGED
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
4
  import { isBandScale } from "../internals/isBandScale.js";
3
5
  import { isInfinity } from "../internals/isInfinity.js";
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-charts v7.16.0
2
+ * @mui/x-charts v7.18.0
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -0,0 +1,38 @@
1
+ import { AxisConfig, ScaleName } from '../models';
2
+ import { ChartsXAxisProps, ChartsAxisProps, ChartsYAxisProps, ChartsRadiusAxisProps, ChartsRotationAxisProps } from '../models/axis';
3
+ import { CartesianChartSeriesType } from '../models/seriesType/config';
4
+ import { DrawingArea } from '../context/DrawingProvider';
5
+ import { FormattedSeries } from '../context/SeriesProvider';
6
+ import { ExtremumGetter } from '../context/PluginProvider';
7
+ import { DefaultizedAxisConfig, ZoomData, ZoomOptions, GetZoomAxisFilters } from '../context/CartesianProvider/Cartesian.types';
8
+ type ComputeResult<T extends ChartsAxisProps> = {
9
+ axis: DefaultizedAxisConfig<T>;
10
+ axisIds: string[];
11
+ };
12
+ type ComputeCommonParams = {
13
+ drawingArea: DrawingArea;
14
+ formattedSeries: FormattedSeries;
15
+ extremumGetters: {
16
+ [K in CartesianChartSeriesType]?: ExtremumGetter<K>;
17
+ };
18
+ zoomData?: ZoomData[];
19
+ zoomOptions?: ZoomOptions;
20
+ getFilters?: GetZoomAxisFilters;
21
+ };
22
+ export declare function computeAxisValue(options: ComputeCommonParams & {
23
+ axis: AxisConfig<ScaleName, any, ChartsYAxisProps>[];
24
+ axisDirection: 'y';
25
+ }): ComputeResult<ChartsYAxisProps>;
26
+ export declare function computeAxisValue(options: ComputeCommonParams & {
27
+ axis: AxisConfig<ScaleName, any, ChartsXAxisProps>[];
28
+ axisDirection: 'x';
29
+ }): ComputeResult<ChartsAxisProps>;
30
+ export declare function computeAxisValue(options: ComputeCommonParams & {
31
+ axis: AxisConfig<ScaleName, any, ChartsRadiusAxisProps>[];
32
+ axisDirection: 'radius';
33
+ }): ComputeResult<ChartsRadiusAxisProps>;
34
+ export declare function computeAxisValue(options: ComputeCommonParams & {
35
+ axis: AxisConfig<ScaleName, any, ChartsRotationAxisProps>[];
36
+ axisDirection: 'rotation';
37
+ }): ComputeResult<ChartsRotationAxisProps>;
38
+ export {};
@@ -1,15 +1,29 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import { scaleBand, scalePoint, scaleTime } from '@mui/x-charts-vendor/d3-scale';
3
- import { isBandScaleConfig, isPointScaleConfig } from "../../models/axis.js";
4
- import { getColorScale, getOrdinalColorScale } from "../../internals/colorScale.js";
5
- import { getTickNumber } from "../../hooks/useTicks.js";
6
- import { getScale } from "../../internals/getScale.js";
7
- import { zoomScaleRange } from "./zoom.js";
8
- import { getAxisExtremum } from "./getAxisExtremum.js";
9
- const getRange = (drawingArea, axisDirection, isReverse) => {
3
+ import { isBandScaleConfig, isPointScaleConfig } from "../models/axis.js";
4
+ import { getColorScale, getOrdinalColorScale } from "./colorScale.js";
5
+ import { getTickNumber } from "../hooks/useTicks.js";
6
+ import { getScale } from "./getScale.js";
7
+ import { zoomScaleRange } from "../context/CartesianProvider/zoom.js";
8
+ import { getAxisExtremum } from "../context/CartesianProvider/getAxisExtremum.js";
9
+ function getRange(drawingArea, axisDirection, axis) {
10
+ if (axisDirection === 'rotation') {
11
+ const {
12
+ startAngle = 0,
13
+ endAngle = startAngle + 360
14
+ } = axis;
15
+ return axis.reverse ? [Math.PI * startAngle / 180, Math.PI * endAngle / 180] : [Math.PI * endAngle / 180, Math.PI * startAngle / 180];
16
+ }
17
+ if (axisDirection === 'radius') {
18
+ const {
19
+ minRadius = 0,
20
+ maxRadius = Math.min(drawingArea.width, drawingArea.height) / 2
21
+ } = axis;
22
+ return [minRadius, maxRadius];
23
+ }
10
24
  const range = axisDirection === 'x' ? [drawingArea.left, drawingArea.left + drawingArea.width] : [drawingArea.top + drawingArea.height, drawingArea.top];
11
- return isReverse ? range.reverse() : range;
12
- };
25
+ return axis.reverse ? [range[1], range[0]] : range;
26
+ }
13
27
  const isDateData = data => data?.[0] instanceof Date;
14
28
  function createDateFormatter(axis, range) {
15
29
  const timeScale = scaleTime(axis.data, range);
@@ -19,7 +33,7 @@ function createDateFormatter(axis, range) {
19
33
  }
20
34
  const DEFAULT_CATEGORY_GAP_RATIO = 0.2;
21
35
  const DEFAULT_BAR_GAP_RATIO = 0.1;
22
- export function computeValue({
36
+ export function computeAxisValue({
23
37
  drawingArea,
24
38
  formattedSeries,
25
39
  axis: allAxis,
@@ -32,21 +46,20 @@ export function computeValue({
32
46
  const completeAxis = {};
33
47
  allAxis.forEach((eachAxis, axisIndex) => {
34
48
  const axis = eachAxis;
35
- const isDefaultAxis = axisIndex === 0;
36
49
  const zoomOption = zoomOptions?.[axis.id];
37
50
  const zoom = zoomData?.find(({
38
51
  axisId
39
52
  }) => axisId === axis.id);
40
53
  const zoomRange = zoom ? [zoom.start, zoom.end] : [0, 100];
41
- const range = getRange(drawingArea, axisDirection, axis.reverse);
42
- const [minData, maxData] = getAxisExtremum(axis, extremumGetters, isDefaultAxis, formattedSeries, zoom === undefined && !zoomOption ? getFilters : undefined // Do not apply filtering if zoom is already defined.
54
+ const range = getRange(drawingArea, axisDirection, axis);
55
+ const [minData, maxData] = getAxisExtremum(axis, extremumGetters, axisIndex, formattedSeries, zoom === undefined && !zoomOption ? getFilters : undefined // Do not apply filtering if zoom is already defined.
43
56
  );
44
57
  const data = axis.data ?? [];
45
58
  if (isBandScaleConfig(axis)) {
46
59
  const categoryGapRatio = axis.categoryGapRatio ?? DEFAULT_CATEGORY_GAP_RATIO;
47
60
  const barGapRatio = axis.barGapRatio ?? DEFAULT_BAR_GAP_RATIO;
48
61
  // Reverse range because ordinal scales are presented from top to bottom on y-axis
49
- const scaleRange = axisDirection === 'x' ? range : [range[1], range[0]];
62
+ const scaleRange = axisDirection === 'y' ? [range[1], range[0]] : range;
50
63
  const zoomedRange = zoomScaleRange(scaleRange, zoomRange);
51
64
  completeAxis[axis.id] = _extends({
52
65
  categoryGapRatio,
@@ -65,7 +78,7 @@ export function computeValue({
65
78
  }
66
79
  }
67
80
  if (isPointScaleConfig(axis)) {
68
- const scaleRange = axisDirection === 'x' ? range : [...range].reverse();
81
+ const scaleRange = axisDirection === 'y' ? [...range].reverse() : range;
69
82
  const zoomedRange = zoomScaleRange(scaleRange, zoomRange);
70
83
  completeAxis[axis.id] = _extends({}, axis, {
71
84
  data,
@@ -17,6 +17,7 @@ export * from './getSVGPoint';
17
17
  export * from './isDefined';
18
18
  export { unstable_cleanupDOM } from './domUtils';
19
19
  export * from './getScale';
20
+ export * from './computeAxisValue';
20
21
  export * from '../context/CartesianProvider';
21
22
  export * from '../context/DrawingProvider';
22
23
  export * from '../context/InteractionProvider';
@@ -22,6 +22,7 @@ export * from "./getSVGPoint.js";
22
22
  export * from "./isDefined.js";
23
23
  export { unstable_cleanupDOM } from "./domUtils.js";
24
24
  export * from "./getScale.js";
25
+ export * from "./computeAxisValue.js";
25
26
 
26
27
  // contexts
27
28
 
package/models/axis.d.ts CHANGED
@@ -127,6 +127,26 @@ export interface ChartsXAxisProps extends ChartsAxisProps {
127
127
  */
128
128
  position?: 'top' | 'bottom';
129
129
  }
130
+ export interface ChartsRotationAxisProps extends ChartsAxisProps {
131
+ /**
132
+ * The start angle (in deg).
133
+ */
134
+ startAngle?: number;
135
+ /**
136
+ * The end angle (in deg).
137
+ */
138
+ endAngle?: number;
139
+ }
140
+ export interface ChartsRadiusAxisProps extends ChartsAxisProps {
141
+ /**
142
+ * The minimal radius.
143
+ */
144
+ minRadius?: number;
145
+ /**
146
+ * The maximal radius.
147
+ */
148
+ maxRadius?: number;
149
+ }
130
150
  export type ScaleName = keyof AxisScaleConfig;
131
151
  export type ContinuousScaleName = 'linear' | 'log' | 'pow' | 'sqrt' | 'time' | 'utc';
132
152
  export interface AxisScaleConfig {
@@ -1,7 +1,7 @@
1
- import { ScatterSeriesType, DefaultizedScatterSeriesType, ScatterItemIdentifier } from './scatter';
1
+ import { ScatterSeriesType, DefaultizedScatterSeriesType, ScatterItemIdentifier, ScatterValueType } from './scatter';
2
2
  import { LineSeriesType, DefaultizedLineSeriesType, LineItemIdentifier } from './line';
3
3
  import { BarItemIdentifier, BarSeriesType, DefaultizedBarSeriesType } from './bar';
4
- import { PieSeriesType, DefaultizedPieSeriesType, PieItemIdentifier, PieValueType } from './pie';
4
+ import { PieSeriesType, DefaultizedPieSeriesType, PieItemIdentifier, PieValueType, DefaultizedPieValueType } from './pie';
5
5
  import { DefaultizedProps, MakeOptional } from '../helpers';
6
6
  export interface ChartsSeriesConfig {
7
7
  bar: {
@@ -20,6 +20,7 @@ export interface ChartsSeriesConfig {
20
20
  */
21
21
  seriesProp: BarSeriesType;
22
22
  itemIdentifier: BarItemIdentifier;
23
+ valueType: number | null;
23
24
  canBeStacked: true;
24
25
  cartesian: true;
25
26
  };
@@ -30,6 +31,7 @@ export interface ChartsSeriesConfig {
30
31
  series: DefaultizedLineSeriesType;
31
32
  seriesProp: LineSeriesType;
32
33
  itemIdentifier: LineItemIdentifier;
34
+ valueType: number | null;
33
35
  canBeStacked: true;
34
36
  cartesian: true;
35
37
  };
@@ -39,6 +41,7 @@ export interface ChartsSeriesConfig {
39
41
  };
40
42
  series: DefaultizedScatterSeriesType;
41
43
  seriesProp: ScatterSeriesType;
44
+ valueType: ScatterValueType;
42
45
  itemIdentifier: ScatterItemIdentifier;
43
46
  cartesian: true;
44
47
  };
@@ -51,6 +54,7 @@ export interface ChartsSeriesConfig {
51
54
  series: DefaultizedPieSeriesType;
52
55
  seriesProp: PieSeriesType<MakeOptional<PieValueType, 'id'>>;
53
56
  itemIdentifier: PieItemIdentifier;
57
+ valueType: DefaultizedPieValueType;
54
58
  };
55
59
  }
56
60
  export type ChartSeriesType = keyof ChartsSeriesConfig;
@@ -1,3 +1,5 @@
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';
@@ -144,6 +146,7 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
144
146
  itemMarkWidth: PropTypes.number,
145
147
  labelStyle: PropTypes.object,
146
148
  markGap: PropTypes.number,
149
+ onItemClick: PropTypes.func,
147
150
  padding: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({
148
151
  bottom: PropTypes.number,
149
152
  left: PropTypes.number,
@@ -193,6 +196,16 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
193
196
  * @param {BarItemIdentifier} barItemIdentifier The bar item identifier.
194
197
  */
195
198
  onItemClick: PropTypes.func,
199
+ /**
200
+ * The chart will try to wait for the parent container to resolve its size
201
+ * before it renders for the first time.
202
+ *
203
+ * This can be useful in some scenarios where the chart appear to grow after
204
+ * the first render, like when used inside a grid.
205
+ *
206
+ * @default false
207
+ */
208
+ resolveSizeBeforeRender: PropTypes.bool,
196
209
  /**
197
210
  * Indicate which axis to display the right of the charts.
198
211
  * Can be a string (the id of the axis) or an object `ChartsYAxisProps`.
@@ -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", "dataIndex", "classes", "color", "slots", "slotProps", "style", "onClick"];
@@ -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 = ["seriesId", "dataIndex", "color", "isFaded", "isHighlighted", "classes"];
@@ -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 = ["skipAnimation", "onItemClick", "borderRadius", "barLabel"];
@@ -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
  }, []);
@@ -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", "dataset", "sx", "tooltip", "onAxisClick", "axisHighlight", "legend", "grid", "topAxis", "leftAxis", "rightAxis", "bottomAxis", "children", "slots", "slotProps", "skipAnimation", "loading", "layout", "onItemClick", "highlightedItem", "onHighlightChange", "borderRadius", "barLabel", "className"];
@@ -1,3 +1,5 @@
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';
@@ -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 = ["width", "height", "series", "margin", "xAxis", "yAxis", "zAxis", "colors", "dataset", "sx", "title", "desc", "disableAxisListener", "highlightedItem", "onHighlightChange", "plugins", "children"];
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import * as React from 'react';
3
5
  import { DEFAULT_X_AXIS_KEY, DEFAULT_Y_AXIS_KEY } from "../constants/index.js";
@@ -1,3 +1,5 @@
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';
@@ -1,3 +1,5 @@
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';
@@ -1,3 +1,5 @@
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';
@@ -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 = ["vertical", "horizontal"];
@@ -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 = ["slots", "slotProps"];
@@ -21,7 +23,8 @@ const useUtilityClasses = ownerState => {
21
23
  root: ['root', direction],
22
24
  mark: ['mark'],
23
25
  label: ['label'],
24
- series: ['series']
26
+ series: ['series'],
27
+ itemBackground: ['itemBackground']
25
28
  };
26
29
  return composeClasses(slots, getLegendUtilityClass, classes);
27
30
  };
@@ -108,6 +111,13 @@ process.env.NODE_ENV !== "production" ? ChartsLegend.propTypes = {
108
111
  * @default 5
109
112
  */
110
113
  markGap: PropTypes.number,
114
+ /**
115
+ * Callback fired when a legend item is clicked.
116
+ * @param {React.MouseEvent<SVGRectElement, MouseEvent>} event The click event.
117
+ * @param {SeriesLegendItemContext} legendItem The legend item data.
118
+ * @param {number} index The index of the clicked legend item.
119
+ */
120
+ onItemClick: PropTypes.func,
111
121
  /**
112
122
  * Legend padding (in px).
113
123
  * Can either be a single number, or an object with top, left, bottom, right properties.
@@ -0,0 +1,65 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import * as React from 'react';
3
+ import clsx from 'clsx';
4
+ import { useRtl } from '@mui/system/RtlProvider';
5
+ import { ChartsText } from "../ChartsText/index.js";
6
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
+ /**
8
+ * @ignore - internal component.
9
+ */
10
+ function ChartsLegendItem(props) {
11
+ const isRTL = useRtl();
12
+ const {
13
+ id,
14
+ positionY,
15
+ label,
16
+ positionX,
17
+ innerHeight,
18
+ innerWidth,
19
+ legendWidth,
20
+ color,
21
+ gapX,
22
+ gapY,
23
+ itemMarkHeight,
24
+ itemMarkWidth,
25
+ markGap,
26
+ labelStyle,
27
+ classes,
28
+ onClick
29
+ } = props;
30
+ return /*#__PURE__*/_jsxs("g", {
31
+ className: clsx(classes?.series, `${classes?.series}-${id}`),
32
+ transform: `translate(${gapX + (isRTL ? legendWidth - positionX : positionX)} ${gapY + positionY})`,
33
+ children: [/*#__PURE__*/_jsx("rect", {
34
+ x: isRTL ? -(innerWidth + 2) : -2,
35
+ y: -itemMarkHeight / 2 - 2,
36
+ width: innerWidth + 4,
37
+ height: innerHeight + 4,
38
+ fill: "transparent",
39
+ className: classes?.itemBackground,
40
+ onClick: onClick,
41
+ style: {
42
+ pointerEvents: onClick ? 'all' : 'none',
43
+ cursor: onClick ? 'pointer' : 'unset'
44
+ }
45
+ }), /*#__PURE__*/_jsx("rect", {
46
+ className: classes?.mark,
47
+ x: isRTL ? -itemMarkWidth : 0,
48
+ y: -itemMarkHeight / 2,
49
+ width: itemMarkWidth,
50
+ height: itemMarkHeight,
51
+ fill: color,
52
+ style: {
53
+ pointerEvents: 'none'
54
+ }
55
+ }), /*#__PURE__*/_jsx(ChartsText, {
56
+ style: _extends({
57
+ pointerEvents: 'none'
58
+ }, labelStyle),
59
+ text: label,
60
+ x: (isRTL ? -1 : 1) * (itemMarkWidth + markGap),
61
+ y: 0
62
+ })]
63
+ });
64
+ }
65
+ export { ChartsLegendItem };