@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
@@ -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,21 +1,32 @@
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 = ["drawingArea", "seriesToDisplay", "hidden"];
5
+ const _excluded = ["drawingArea", "seriesToDisplay", "hidden", "onItemClick"];
4
6
  import * as React from 'react';
5
7
  import PropTypes from 'prop-types';
6
8
  import { LegendPerItem } from "./LegendPerItem.js";
7
9
  import { jsx as _jsx } from "react/jsx-runtime";
10
+ const seriesContextBuilder = context => ({
11
+ type: 'series',
12
+ color: context.color,
13
+ label: context.label,
14
+ seriesId: context.seriesId,
15
+ itemId: context.itemId
16
+ });
8
17
  function DefaultChartsLegend(props) {
9
18
  const {
10
19
  seriesToDisplay,
11
- hidden
20
+ hidden,
21
+ onItemClick
12
22
  } = props,
13
23
  other = _objectWithoutPropertiesLoose(props, _excluded);
14
24
  if (hidden) {
15
25
  return null;
16
26
  }
17
27
  return /*#__PURE__*/_jsx(LegendPerItem, _extends({}, other, {
18
- itemsToDisplay: seriesToDisplay
28
+ itemsToDisplay: seriesToDisplay,
29
+ onItemClick: onItemClick ? (e, i) => onItemClick(e, seriesContextBuilder(seriesToDisplay[i]), i) : undefined
19
30
  }));
20
31
  }
21
32
  process.env.NODE_ENV !== "production" ? DefaultChartsLegend.propTypes = {
@@ -73,6 +84,13 @@ process.env.NODE_ENV !== "production" ? DefaultChartsLegend.propTypes = {
73
84
  * @default 5
74
85
  */
75
86
  markGap: PropTypes.number,
87
+ /**
88
+ * Callback fired when a legend item is clicked.
89
+ * @param {React.MouseEvent<SVGRectElement, MouseEvent>} event The click event.
90
+ * @param {SeriesLegendItemContext} legendItem The legend item data.
91
+ * @param {number} index The index of the clicked legend item.
92
+ */
93
+ onItemClick: PropTypes.func,
76
94
  /**
77
95
  * Legend padding (in px).
78
96
  * Can either be a single number, or an object with top, left, bottom, right properties.
@@ -95,7 +113,11 @@ process.env.NODE_ENV !== "production" ? DefaultChartsLegend.propTypes = {
95
113
  seriesToDisplay: PropTypes.arrayOf(PropTypes.shape({
96
114
  color: PropTypes.string.isRequired,
97
115
  id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
98
- label: PropTypes.string.isRequired
116
+ itemId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
117
+ label: PropTypes.string.isRequired,
118
+ maxValue: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
119
+ minValue: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
120
+ seriesId: PropTypes.oneOfType([PropTypes.number, PropTypes.string])
99
121
  })).isRequired
100
122
  } : void 0;
101
123
  export { DefaultChartsLegend };
@@ -1,15 +1,17 @@
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 = ["rotate", "dominantBaseline"];
4
6
  import * as React from 'react';
5
7
  import NoSsr from '@mui/material/NoSsr';
6
8
  import { useTheme, styled } from '@mui/material/styles';
7
- import { useRtl } from '@mui/system/RtlProvider';
8
- import { ChartsText } from "../ChartsText/index.js";
9
9
  import { getWordsByLines } from "../internals/getWordsByLines.js";
10
10
  import { legendItemPlacements } from "./legendItemsPlacement.js";
11
11
  import { useDrawingArea } from "../hooks/useDrawingArea.js";
12
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
12
+ import { ChartsLegendItem } from "./ChartsLegendItem.js";
13
+ import { createElement as _createElement } from "react";
14
+ import { jsx as _jsx } from "react/jsx-runtime";
13
15
  export const ChartsLegendRoot = styled('g', {
14
16
  name: 'MuiChartsLegend',
15
17
  slot: 'Root',
@@ -51,10 +53,10 @@ export function LegendPerItem(props) {
51
53
  markGap = 5,
52
54
  itemGap = 10,
53
55
  padding: paddingProps = 10,
54
- labelStyle: inLabelStyle
56
+ labelStyle: inLabelStyle,
57
+ onItemClick
55
58
  } = props;
56
59
  const theme = useTheme();
57
- const isRtl = useRtl();
58
60
  const drawingArea = useDrawingArea();
59
61
  const labelStyle = React.useMemo(() => _extends({}, theme.typography.subtitle1, {
60
62
  color: 'inherit',
@@ -110,29 +112,18 @@ export function LegendPerItem(props) {
110
112
  return /*#__PURE__*/_jsx(NoSsr, {
111
113
  children: /*#__PURE__*/_jsx(ChartsLegendRoot, {
112
114
  className: classes?.root,
113
- children: itemsWithPosition.map(({
114
- id,
115
- label,
116
- color,
117
- positionX,
118
- positionY
119
- }) => /*#__PURE__*/_jsxs("g", {
120
- className: classes?.series,
121
- transform: `translate(${gapX + (isRtl ? legendWidth - positionX : positionX)} ${gapY + positionY})`,
122
- children: [/*#__PURE__*/_jsx("rect", {
123
- className: classes?.mark,
124
- x: isRtl ? -itemMarkWidth : 0,
125
- y: -itemMarkHeight / 2,
126
- width: itemMarkWidth,
127
- height: itemMarkHeight,
128
- fill: color
129
- }), /*#__PURE__*/_jsx(ChartsText, {
130
- style: labelStyle,
131
- text: label,
132
- x: (isRtl ? -1 : 1) * (itemMarkWidth + markGap),
133
- y: 0
134
- })]
135
- }, id))
115
+ children: itemsWithPosition.map((item, i) => /*#__PURE__*/_createElement(ChartsLegendItem, _extends({}, item, {
116
+ key: item.id,
117
+ gapX: gapX,
118
+ gapY: gapY,
119
+ legendWidth: legendWidth,
120
+ itemMarkHeight: itemMarkHeight,
121
+ itemMarkWidth: itemMarkWidth,
122
+ markGap: markGap,
123
+ labelStyle: labelStyle,
124
+ classes: classes,
125
+ onClick: onItemClick ? e => onItemClick(e, i) : undefined
126
+ })))
136
127
  })
137
128
  });
138
129
  }
@@ -1,6 +1,8 @@
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 = ["axisDirection", "axisId", "hideFirst", "hideLast", "labelFormatter"];
5
+ const _excluded = ["axisDirection", "axisId", "hideFirst", "hideLast", "labelFormatter", "onItemClick"];
4
6
  import * as React from 'react';
5
7
  import PropTypes from 'prop-types';
6
8
  import { useAxis } from "./useAxis.js";
@@ -16,13 +18,21 @@ function defaultLabelFormatter(params) {
16
18
  }
17
19
  return `${params.formattedMin}-${params.formattedMax}`;
18
20
  }
21
+ const piecewiseColorContextBuilder = context => ({
22
+ type: 'piecewiseColor',
23
+ color: context.color,
24
+ label: context.label,
25
+ maxValue: context.maxValue,
26
+ minValue: context.minValue
27
+ });
19
28
  function PiecewiseColorLegend(props) {
20
29
  const {
21
30
  axisDirection,
22
31
  axisId,
23
32
  hideFirst,
24
33
  hideLast,
25
- labelFormatter = defaultLabelFormatter
34
+ labelFormatter = defaultLabelFormatter,
35
+ onItemClick
26
36
  } = props,
27
37
  other = _objectWithoutPropertiesLoose(props, _excluded);
28
38
  const axisItem = useAxis({
@@ -43,30 +53,34 @@ function PiecewiseColorLegend(props) {
43
53
  if (hideFirst && isFirst || hideLast && isLast) {
44
54
  return null;
45
55
  }
46
- const label = labelFormatter(_extends({}, index === 0 ? {
56
+ const data = _extends({}, isFirst ? {
47
57
  min: null,
48
58
  formattedMin: null
49
59
  } : {
50
60
  min: colorMap.thresholds[index - 1],
51
61
  formattedMin: formattedLabels[index - 1]
52
- }, index === colorMap.colors.length - 1 ? {
62
+ }, isLast ? {
53
63
  max: null,
54
64
  formattedMax: null
55
65
  } : {
56
66
  max: colorMap.thresholds[index],
57
67
  formattedMax: formattedLabels[index]
58
- }));
68
+ });
69
+ const label = labelFormatter(data);
59
70
  if (label === null) {
60
71
  return null;
61
72
  }
62
73
  return {
63
74
  id: label,
64
75
  color,
65
- label
76
+ label,
77
+ minValue: data.min,
78
+ maxValue: data.max
66
79
  };
67
80
  }).filter(notNull);
68
81
  return /*#__PURE__*/_jsx(LegendPerItem, _extends({}, other, {
69
- itemsToDisplay: itemsToDisplay
82
+ itemsToDisplay: itemsToDisplay,
83
+ onItemClick: onItemClick ? (e, i) => onItemClick(e, piecewiseColorContextBuilder(itemsToDisplay[i]), i) : undefined
70
84
  }));
71
85
  }
72
86
  process.env.NODE_ENV !== "production" ? PiecewiseColorLegend.propTypes = {
@@ -134,6 +148,13 @@ process.env.NODE_ENV !== "production" ? PiecewiseColorLegend.propTypes = {
134
148
  * @default 5
135
149
  */
136
150
  markGap: PropTypes.number,
151
+ /**
152
+ * Callback fired when a legend item is clicked.
153
+ * @param {React.MouseEvent<SVGRectElement, MouseEvent>} event The click event.
154
+ * @param {PiecewiseColorLegendItemContext} legendItem The legend item data.
155
+ * @param {number} index The index of the clicked legend item.
156
+ */
157
+ onItemClick: PropTypes.func,
137
158
  /**
138
159
  * Legend padding (in px).
139
160
  * Can either be a single number, or an object with top, left, bottom, right properties.
@@ -2,4 +2,4 @@ import { unstable_generateUtilityClass as generateUtilityClass, unstable_generat
2
2
  export function getLegendUtilityClass(slot) {
3
3
  return generateUtilityClass('MuiChartsLegend', slot);
4
4
  }
5
- export const legendClasses = generateUtilityClasses('MuiChartsLegend', ['root', 'series', 'mark', 'label', 'column', 'row']);
5
+ export const legendClasses = generateUtilityClasses('MuiChartsLegend', ['root', 'series', 'itemBackground', 'mark', 'label', 'column', 'row']);
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
4
  import { ZAxisContext } from "../context/ZAxisContextProvider.js";
3
5
  import { useCartesianContext } from "../context/CartesianProvider/useCartesianContext.js";
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
4
  import PropTypes from 'prop-types';
3
5
  import { InteractionContext } from "../context/InteractionProvider.js";
@@ -27,7 +29,7 @@ function ChartsOnAxisClickHandler(props) {
27
29
  }
28
30
  const handleMouseClick = event => {
29
31
  event.preventDefault();
30
- const isXaxis = (axis.x && axis.x.index) !== undefined;
32
+ const isXaxis = axis.x && axis.x.index !== -1;
31
33
  const USED_AXIS_ID = isXaxis ? xAxisIds[0] : yAxisIds[0];
32
34
  const dataIndex = isXaxis ? axis.x && axis.x.index : axis.y && axis.y.index;
33
35
  if (dataIndex == null) {
@@ -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 = ["message"];
@@ -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 = ["message"];
@@ -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 { ChartsLoadingOverlay } from "./ChartsLoadingOverlay.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,11 +1,13 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import * as React from 'react';
3
5
  import composeClasses from '@mui/utils/composeClasses';
6
+ import { warnOnce } from '@mui/x-internals/warning';
4
7
  import { useDrawingArea, useXScale } from "../hooks/index.js";
5
8
  import { ReferenceLineRoot } from "./common.js";
6
9
  import { ChartsText } from "../ChartsText/index.js";
7
10
  import { getReferenceLineUtilityClass } from "./chartsReferenceLineClasses.js";
8
- import { warnOnce } from "../internals/warning.js";
9
11
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
12
  const getTextParams = ({
11
13
  top,
@@ -1,11 +1,13 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import * as React from 'react';
3
5
  import composeClasses from '@mui/utils/composeClasses';
6
+ import { warnOnce } from '@mui/x-internals/warning';
4
7
  import { useDrawingArea, useYScale } from "../hooks/index.js";
5
8
  import { ReferenceLineRoot } from "./common.js";
6
9
  import { ChartsText } from "../ChartsText/index.js";
7
10
  import { getReferenceLineUtilityClass } from "./chartsReferenceLineClasses.js";
8
- import { warnOnce } from "../internals/warning.js";
9
11
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
12
  const getTextParams = ({
11
13
  left,
@@ -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 = ["children", "width", "height", "viewBox", "disableAxisListener", "className", "title", "desc"];
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["x", "y", "style", "text", "ownerState"],
@@ -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 * as React from 'react';
2
4
  import PropTypes from 'prop-types';
3
5
  import clsx from 'clsx';
@@ -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';
@@ -4,4 +4,7 @@ export * from "./ChartsAxisTooltipContent.js";
4
4
  export * from "./ChartsItemTooltipContent.js";
5
5
  export * from "./DefaultChartsAxisTooltipContent.js";
6
6
  export * from "./DefaultChartsItemTooltipContent.js";
7
- export * from "./ChartsTooltipTable.js";
7
+ export * from "./ChartsTooltipTable.js";
8
+ export * from "./useItemTooltip.js";
9
+ export * from "./useAxisTooltip.js";
10
+ export { useMouseTracker } from "./utils.js";
@@ -0,0 +1,84 @@
1
+ 'use client';
2
+
3
+ import * as React from 'react';
4
+ import { InteractionContext } from "../context/InteractionProvider.js";
5
+ import { useSeries } from "../hooks/useSeries.js";
6
+ import { useCartesianContext } from "../context/CartesianProvider/index.js";
7
+ import { ZAxisContext } from "../context/ZAxisContextProvider.js";
8
+ import { useColorProcessor } from "../context/PluginProvider/useColorProcessor.js";
9
+ import { getLabel } from "../internals/getLabel.js";
10
+ import { isCartesianSeriesType } from "../internals/isCartesian.js";
11
+ import { utcFormatter } from "./utils.js";
12
+ export function useAxisTooltip() {
13
+ const {
14
+ axis
15
+ } = React.useContext(InteractionContext);
16
+ const series = useSeries();
17
+ const {
18
+ xAxis,
19
+ yAxis,
20
+ xAxisIds,
21
+ yAxisIds
22
+ } = useCartesianContext();
23
+ const {
24
+ zAxis,
25
+ zAxisIds
26
+ } = React.useContext(ZAxisContext);
27
+ const colorProcessors = useColorProcessor();
28
+
29
+ // By default use the x-axis
30
+ const isXaxis = axis.x !== null && axis.x.index !== -1;
31
+ const axisData = isXaxis ? axis.x && axis.x : axis.y && axis.y;
32
+ if (axisData === null) {
33
+ return null;
34
+ }
35
+ const {
36
+ index: dataIndex,
37
+ value: axisValue
38
+ } = axisData;
39
+ const USED_AXIS_ID = isXaxis ? xAxisIds[0] : yAxisIds[0];
40
+ const usedAxis = isXaxis ? xAxis[USED_AXIS_ID] : yAxis[USED_AXIS_ID];
41
+ const relevantSeries = Object.keys(series).filter(isCartesianSeriesType).flatMap(seriesType => {
42
+ const seriesOfType = series[seriesType];
43
+ if (!seriesOfType) {
44
+ return [];
45
+ }
46
+ return seriesOfType.seriesOrder.map(seriesId => {
47
+ const seriesToAdd = seriesOfType.series[seriesId];
48
+ const providedXAxisId = seriesToAdd.xAxisId ?? seriesToAdd.xAxisKey;
49
+ const providedYAxisId = seriesToAdd.yAxisId ?? seriesToAdd.yAxisKey;
50
+ const axisKey = isXaxis ? providedXAxisId : providedYAxisId;
51
+
52
+ // Test if the series uses the default axis
53
+ if (axisKey === undefined || axisKey === USED_AXIS_ID) {
54
+ const xAxisId = providedXAxisId ?? xAxisIds[0];
55
+ const yAxisId = providedYAxisId ?? yAxisIds[0];
56
+ const zAxisId = seriesToAdd.zAxisId ?? seriesToAdd.zAxisKey ?? zAxisIds[0];
57
+ const color = colorProcessors[seriesType]?.(seriesToAdd, xAxis[xAxisId], yAxis[yAxisId], zAxisId && zAxis[zAxisId])(dataIndex) ?? '';
58
+ const value = seriesToAdd.data[dataIndex] ?? null;
59
+ const formattedValue = seriesToAdd.valueFormatter(value, {
60
+ dataIndex
61
+ });
62
+ const formattedLabel = getLabel(seriesToAdd.label, 'tooltip') ?? null;
63
+ return {
64
+ seriesId,
65
+ color,
66
+ value,
67
+ formattedValue,
68
+ formattedLabel
69
+ };
70
+ }
71
+ return undefined;
72
+ });
73
+ }).filter(item => item != null);
74
+ const axisFormatter = usedAxis.valueFormatter ?? (v => usedAxis.scaleType === 'utc' ? utcFormatter(v) : v.toLocaleString());
75
+ const axisFormattedValue = axisFormatter(axisValue, {
76
+ location: 'tooltip'
77
+ });
78
+ return {
79
+ identifier: axis,
80
+ seriesItems: relevantSeries,
81
+ axisValue,
82
+ axisFormattedValue
83
+ };
84
+ }
@@ -0,0 +1,64 @@
1
+ 'use client';
2
+
3
+ import _extends from "@babel/runtime/helpers/esm/extends";
4
+ import * as React from 'react';
5
+ import { InteractionContext } from "../context/InteractionProvider.js";
6
+ import { useSeries } from "../hooks/useSeries.js";
7
+ import { useCartesianContext } from "../context/CartesianProvider/index.js";
8
+ import { ZAxisContext } from "../context/ZAxisContextProvider.js";
9
+ import { useColorProcessor } from "../context/PluginProvider/useColorProcessor.js";
10
+ import { getLabel } from "../internals/getLabel.js";
11
+ export function useItemTooltip() {
12
+ const {
13
+ item
14
+ } = React.useContext(InteractionContext);
15
+ const series = useSeries();
16
+ const {
17
+ xAxis,
18
+ yAxis,
19
+ xAxisIds,
20
+ yAxisIds
21
+ } = useCartesianContext();
22
+ const {
23
+ zAxis,
24
+ zAxisIds
25
+ } = React.useContext(ZAxisContext);
26
+ const colorProcessors = useColorProcessor();
27
+ const xAxisId = series.xAxisId ?? series.xAxisKey ?? xAxisIds[0];
28
+ const yAxisId = series.yAxisId ?? series.yAxisKey ?? yAxisIds[0];
29
+ const zAxisId = series.zAxisId ?? series.zAxisKey ?? zAxisIds[0];
30
+ if (!item || item.dataIndex === undefined) {
31
+ return null;
32
+ }
33
+ const itemSeries = series[item.type].series[item.seriesId];
34
+ const getColor = colorProcessors[itemSeries.type]?.(itemSeries, xAxisId && xAxis[xAxisId], yAxisId && yAxis[yAxisId], zAxisId && zAxis[zAxisId]) ?? (() => '');
35
+ if (itemSeries.type === 'pie') {
36
+ const point = itemSeries.data[item.dataIndex];
37
+ const label = getLabel(point.label, 'tooltip');
38
+ const value = _extends({}, point, {
39
+ label
40
+ });
41
+ const formattedValue = itemSeries.valueFormatter?.(value, {
42
+ dataIndex: item.dataIndex
43
+ });
44
+ return {
45
+ identifier: item,
46
+ color: getColor(item.dataIndex),
47
+ label,
48
+ value,
49
+ formattedValue
50
+ };
51
+ }
52
+ const label = getLabel(itemSeries.label, 'tooltip');
53
+ const value = itemSeries.data[item.dataIndex];
54
+ const formattedValue = itemSeries.valueFormatter?.(value, {
55
+ dataIndex: item.dataIndex
56
+ });
57
+ return {
58
+ identifier: item,
59
+ color: getColor(item.dataIndex),
60
+ label,
61
+ value,
62
+ formattedValue
63
+ };
64
+ }
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
4
  import PropTypes from 'prop-types';
3
5
  import { Delaunay } from '@mui/x-charts-vendor/d3-delaunay';
@@ -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 = ["scale", "tickNumber", "reverse"];
@@ -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 = ["scale", "tickNumber"];
@@ -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 = ["text", "children", "classes", "className"];
@@ -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", "margin", "title", "desc", "value", "valueMin", "valueMax", "startAngle", "endAngle", "outerRadius", "innerRadius", "cornerRadius", "cx", "cy", "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 { arc as d3Arc } from '@mui/x-charts-vendor/d3-shape';
@@ -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 { arc as d3Arc } from '@mui/x-charts-vendor/d3-shape';
@@ -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 = ["text", "className"];
@@ -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 = ["d", "skipAnimation", "ownerState"];
@@ -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 = ["d", "skipAnimation", "ownerState"];
@@ -42,29 +44,19 @@ function AnimatedLine(props) {
42
44
  ownerState
43
45
  } = props,
44
46
  other = _objectWithoutPropertiesLoose(props, _excluded);
45
- const {
46
- left,
47
- top,
48
- bottom,
49
- width,
50
- height,
51
- right
52
- } = useDrawingArea();
47
+ const drawingArea = useDrawingArea();
53
48
  const chartId = useChartId();
54
49
  const stringInterpolator = useStringInterpolator(d);
55
- const transitionAppear = useTransition([1], {
56
- from: {
57
- animatedWidth: left
58
- },
59
- to: {
60
- animatedWidth: width + left + right
61
- },
62
- enter: {
63
- animatedWidth: width + left + right
64
- },
65
- leave: {
66
- animatedWidth: left
67
- },
50
+ const transitionAppear = useTransition([drawingArea], {
51
+ from: v => ({
52
+ animatedWidth: v.left
53
+ }),
54
+ enter: v => ({
55
+ animatedWidth: v.width + v.left + v.right
56
+ }),
57
+ leave: v => ({
58
+ animatedWidth: v.width + v.left + v.right
59
+ }),
68
60
  reset: false,
69
61
  immediate: skipAnimation
70
62
  });
@@ -89,7 +81,7 @@ function AnimatedLine(props) {
89
81
  x: 0,
90
82
  y: 0,
91
83
  width: style.animatedWidth,
92
- height: top + height + bottom
84
+ height: drawingArea.top + drawingArea.height + drawingArea.bottom
93
85
  }))
94
86
  }), /*#__PURE__*/_jsx("g", {
95
87
  clipPath: `url(#${clipId})`,
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["id", "classes", "color", "gradientId", "slots", "slotProps", "onClick"];
@@ -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", "onItemClick", "skipAnimation"];