@mui/x-charts 7.22.3 → 8.0.0-alpha.1

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 (415) hide show
  1. package/BarChart/AnimatedBarElement.d.ts +15 -0
  2. package/BarChart/AnimatedBarElement.js +21 -0
  3. package/BarChart/BarChart.d.ts +11 -16
  4. package/BarChart/BarChart.js +9 -59
  5. package/BarChart/BarElement.d.ts +6 -1343
  6. package/BarChart/BarElement.js +10 -20
  7. package/BarChart/BarLabel/BarLabelItem.d.ts +1 -1
  8. package/BarChart/BarPlot.js +24 -6
  9. package/BarChart/extremums.js +3 -3
  10. package/BarChart/useBarChartProps.d.ts +2 -4
  11. package/BarChart/useBarChartProps.js +4 -11
  12. package/CHANGELOG.md +348 -12
  13. package/ChartContainer/ChartContainer.d.ts +4 -38
  14. package/ChartContainer/ChartContainer.js +15 -44
  15. package/ChartContainer/ResizableContainer.d.ts +22 -0
  16. package/ChartContainer/ResizableContainer.js +60 -0
  17. package/ChartContainer/useChartContainerProps.d.ts +8 -92
  18. package/ChartContainer/useChartContainerProps.js +29 -59
  19. package/ChartsAxisHighlight/ChartsAxisHighlight.d.ts +1 -17
  20. package/ChartsAxisHighlight/ChartsAxisHighlight.js +10 -96
  21. package/ChartsAxisHighlight/ChartsAxisHighlight.types.d.ts +5 -0
  22. package/ChartsAxisHighlight/ChartsAxisHighlightPath.d.ts +6 -0
  23. package/ChartsAxisHighlight/ChartsAxisHighlightPath.js +34 -0
  24. package/ChartsAxisHighlight/ChartsXAxisHighlight.d.ts +10 -0
  25. package/ChartsAxisHighlight/ChartsXAxisHighlight.js +53 -0
  26. package/ChartsAxisHighlight/ChartsYAxisHighlight.d.ts +10 -0
  27. package/ChartsAxisHighlight/ChartsYAxisHighlight.js +53 -0
  28. package/ChartsAxisHighlight/chartsAxisHighlightClasses.d.ts +7 -0
  29. package/ChartsAxisHighlight/chartsAxisHighlightClasses.js +6 -0
  30. package/ChartsAxisHighlight/index.d.ts +3 -0
  31. package/ChartsAxisHighlight/index.js +4 -1
  32. package/ChartsGrid/ChartsGrid.js +1 -1
  33. package/ChartsGrid/ChartsHorizontalGrid.d.ts +2 -2
  34. package/ChartsGrid/ChartsHorizontalGrid.js +3 -3
  35. package/ChartsGrid/ChartsVerticalGrid.d.ts +2 -2
  36. package/ChartsGrid/ChartsVerticalGrid.js +3 -3
  37. package/ChartsLegend/ChartsLegend.js +0 -3
  38. package/ChartsLegend/DefaultChartsLegend.d.ts +0 -5
  39. package/ChartsLegend/DefaultChartsLegend.js +1 -12
  40. package/ChartsLegend/LegendPerItem.d.ts +3 -3
  41. package/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +11 -9
  42. package/ChartsOverlay/ChartsOverlay.d.ts +1 -1
  43. package/ChartsSurface/ChartsSurface.d.ts +0 -15
  44. package/ChartsSurface/ChartsSurface.js +35 -34
  45. package/ChartsTooltip/ChartTooltip.types.d.ts +15 -0
  46. package/ChartsTooltip/ChartsAxisTooltipContent.d.ts +7 -39
  47. package/ChartsTooltip/ChartsAxisTooltipContent.js +83 -72
  48. package/ChartsTooltip/ChartsItemTooltipContent.d.ts +5 -28
  49. package/ChartsTooltip/ChartsItemTooltipContent.js +54 -44
  50. package/ChartsTooltip/ChartsTooltip.d.ts +3 -69
  51. package/ChartsTooltip/ChartsTooltip.js +162 -107
  52. package/ChartsTooltip/ChartsTooltipContainer.d.ts +33 -0
  53. package/ChartsTooltip/ChartsTooltipContainer.js +298 -0
  54. package/ChartsTooltip/chartsTooltipClasses.d.ts +1 -0
  55. package/ChartsTooltip/chartsTooltipClasses.js +18 -2
  56. package/ChartsTooltip/index.d.ts +3 -3
  57. package/ChartsTooltip/index.js +2 -3
  58. package/ChartsTooltip/useAxisTooltip.d.ts +2 -2
  59. package/ChartsTooltip/useAxisTooltip.js +21 -21
  60. package/ChartsTooltip/useItemTooltip.d.ts +1 -1
  61. package/ChartsTooltip/useItemTooltip.js +8 -7
  62. package/ChartsTooltip/utils.d.ts +5 -16
  63. package/ChartsTooltip/utils.js +45 -50
  64. package/ChartsVoronoiHandler/ChartsVoronoiHandler.js +50 -39
  65. package/Gauge/Gauge.d.ts +1 -1
  66. package/Gauge/Gauge.js +0 -6
  67. package/Gauge/GaugeContainer.d.ts +3 -3
  68. package/Gauge/GaugeContainer.js +60 -61
  69. package/LineChart/AnimatedArea.d.ts +0 -1333
  70. package/LineChart/AnimatedArea.js +9 -18
  71. package/LineChart/AnimatedLine.d.ts +0 -1333
  72. package/LineChart/AnimatedLine.js +9 -20
  73. package/LineChart/AreaElement.d.ts +1 -1
  74. package/LineChart/AreaPlot.js +14 -8
  75. package/LineChart/CircleMarkElement.js +6 -5
  76. package/LineChart/LineChart.d.ts +11 -17
  77. package/LineChart/LineChart.js +9 -60
  78. package/LineChart/LineElement.d.ts +1 -1
  79. package/LineChart/LineHighlightPlot.d.ts +1 -1
  80. package/LineChart/LineHighlightPlot.js +8 -11
  81. package/LineChart/LinePlot.js +14 -8
  82. package/LineChart/MarkElement.js +6 -5
  83. package/LineChart/MarkPlot.js +2 -6
  84. package/LineChart/extremums.js +10 -6
  85. package/LineChart/useLineChartProps.d.ts +2 -4
  86. package/LineChart/useLineChartProps.js +4 -11
  87. package/PieChart/PieArc.d.ts +0 -5
  88. package/PieChart/PieArc.js +1 -10
  89. package/PieChart/PieArcPlot.js +0 -5
  90. package/PieChart/PieChart.d.ts +10 -39
  91. package/PieChart/PieChart.js +20 -137
  92. package/PieChart/PiePlot.js +2 -2
  93. package/PieChart/getPieCoordinates.d.ts +2 -2
  94. package/README.md +4 -4
  95. package/ScatterChart/Scatter.js +6 -5
  96. package/ScatterChart/ScatterChart.d.ts +11 -17
  97. package/ScatterChart/ScatterChart.js +11 -60
  98. package/ScatterChart/ScatterPlot.js +3 -6
  99. package/ScatterChart/extremums.js +6 -6
  100. package/ScatterChart/useScatterChartProps.d.ts +2 -4
  101. package/ScatterChart/useScatterChartProps.js +3 -12
  102. package/SparkLineChart/SparkLineChart.d.ts +7 -8
  103. package/SparkLineChart/SparkLineChart.js +6 -33
  104. package/context/CartesianProvider/defaultizeAxis.d.ts +1 -1
  105. package/context/ChartDataProvider/ChartDataProvider.d.ts +31 -0
  106. package/{ResponsiveChartContainer/ResponsiveChartContainer.js → context/ChartDataProvider/ChartDataProvider.js} +45 -39
  107. package/context/ChartDataProvider/index.d.ts +1 -0
  108. package/context/ChartDataProvider/index.js +1 -0
  109. package/context/ChartDataProvider/useChartDataProviderProps.d.ts +94 -0
  110. package/context/ChartDataProvider/useChartDataProviderProps.js +66 -0
  111. package/{ChartContainer → context/ChartDataProvider}/useDefaultizeAxis.d.ts +12 -12
  112. package/{modern/ChartContainer → context/ChartDataProvider}/useDefaultizeAxis.js +1 -1
  113. package/context/{DrawingProvider.d.ts → DrawingAreaProvider/DrawingArea.types.d.ts} +3 -14
  114. package/context/DrawingAreaProvider/DrawingAreaContext.d.ts +8 -0
  115. package/context/DrawingAreaProvider/DrawingAreaContext.js +16 -0
  116. package/context/DrawingAreaProvider/DrawingAreaProvider.d.ts +3 -0
  117. package/{modern/context/DrawingProvider.js → context/DrawingAreaProvider/DrawingAreaProvider.js} +11 -41
  118. package/context/DrawingAreaProvider/index.d.ts +3 -0
  119. package/context/DrawingAreaProvider/index.js +3 -0
  120. package/context/HighlightedProvider/HighlightedContext.d.ts +0 -8
  121. package/context/HighlightedProvider/HighlightedProvider.js +1 -16
  122. package/context/InteractionProvider.d.ts +5 -48
  123. package/context/InteractionProvider.js +8 -64
  124. package/context/InteractionSelectors.d.ts +359 -0
  125. package/context/InteractionSelectors.js +12 -0
  126. package/context/PluginProvider/ExtremumGetter.types.d.ts +2 -2
  127. package/context/SizeProvider/Size.types.d.ts +30 -0
  128. package/context/SizeProvider/SizeContext.d.ts +4 -0
  129. package/context/SizeProvider/SizeContext.js +13 -0
  130. package/context/SizeProvider/SizeProvider.d.ts +11 -0
  131. package/context/SizeProvider/SizeProvider.js +26 -0
  132. package/context/SizeProvider/index.d.ts +4 -0
  133. package/context/SizeProvider/index.js +4 -0
  134. package/context/SizeProvider/useChartContainerDimensions.d.ts +9 -0
  135. package/{modern/ResponsiveChartContainer → context/SizeProvider}/useChartContainerDimensions.js +15 -7
  136. package/context/SizeProvider/useSize.d.ts +5 -0
  137. package/context/SizeProvider/useSize.js +13 -0
  138. package/context/SvgRefProvider/SvgRef.types.d.ts +8 -0
  139. package/context/SvgRefProvider/SvgRef.types.js +1 -0
  140. package/context/SvgRefProvider/SvgRefContext.d.ts +4 -0
  141. package/context/SvgRefProvider/SvgRefContext.js +17 -0
  142. package/context/SvgRefProvider/SvgRefProvider.d.ts +3 -0
  143. package/context/SvgRefProvider/SvgRefProvider.js +24 -0
  144. package/context/SvgRefProvider/index.d.ts +4 -0
  145. package/context/SvgRefProvider/index.js +4 -0
  146. package/context/SvgRefProvider/useSurfaceRef.d.ts +2 -0
  147. package/context/SvgRefProvider/useSurfaceRef.js +14 -0
  148. package/context/ZAxisContextProvider.d.ts +1 -1
  149. package/context/index.d.ts +2 -0
  150. package/context/index.js +2 -1
  151. package/hooks/useAxisEvents.js +32 -19
  152. package/hooks/useChartId.js +2 -2
  153. package/hooks/useDrawingArea.d.ts +2 -2
  154. package/hooks/useDrawingArea.js +2 -2
  155. package/hooks/useInteractionItemProps.js +19 -12
  156. package/hooks/useSvgRef.js +3 -3
  157. package/index.d.ts +1 -2
  158. package/index.js +2 -3
  159. package/internals/components/ChartsAxesGradients/ChartsAxesGradients.d.ts +1 -1
  160. package/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +9 -4
  161. package/internals/computeAxisValue.d.ts +2 -2
  162. package/internals/defaultizeColor.d.ts +1 -8
  163. package/internals/getSymbol.js +19 -3
  164. package/internals/index.d.ts +7 -6
  165. package/internals/index.js +7 -6
  166. package/internals/plugins/models/index.d.ts +35 -0
  167. package/internals/plugins/models/index.js +1 -0
  168. package/internals/plugins/utils/ChartStore.d.ts +12 -0
  169. package/internals/plugins/utils/ChartStore.js +26 -0
  170. package/internals/plugins/utils/ChartsStore.d.ts +12 -0
  171. package/internals/plugins/utils/ChartsStore.js +26 -0
  172. package/internals/plugins/utils/selectors.d.ts +9 -0
  173. package/internals/plugins/utils/selectors.js +37 -0
  174. package/internals/useCharts.d.ts +6 -0
  175. package/internals/useCharts.js +29 -0
  176. package/internals/useSelector.d.ts +4 -0
  177. package/internals/useSelector.js +6 -0
  178. package/internals/useStore.d.ts +2 -0
  179. package/internals/useStore.js +17 -0
  180. package/internals/useStringInterpolator.js +1 -0
  181. package/models/seriesType/bar.d.ts +1 -1
  182. package/models/seriesType/common.d.ts +0 -10
  183. package/models/seriesType/config.d.ts +1 -1
  184. package/models/seriesType/line.d.ts +1 -1
  185. package/models/seriesType/pie.d.ts +1 -1
  186. package/models/seriesType/scatter.d.ts +1 -6
  187. package/modern/BarChart/AnimatedBarElement.js +21 -0
  188. package/modern/BarChart/BarChart.js +9 -59
  189. package/modern/BarChart/BarElement.js +10 -20
  190. package/modern/BarChart/BarPlot.js +24 -6
  191. package/modern/BarChart/extremums.js +3 -3
  192. package/modern/BarChart/useBarChartProps.js +4 -11
  193. package/modern/ChartContainer/ChartContainer.js +15 -44
  194. package/modern/ChartContainer/ResizableContainer.js +60 -0
  195. package/modern/ChartContainer/useChartContainerProps.js +29 -59
  196. package/modern/ChartsAxisHighlight/ChartsAxisHighlight.js +10 -96
  197. package/modern/ChartsAxisHighlight/ChartsAxisHighlight.types.js +1 -0
  198. package/modern/ChartsAxisHighlight/ChartsAxisHighlightPath.js +34 -0
  199. package/modern/ChartsAxisHighlight/ChartsXAxisHighlight.js +53 -0
  200. package/modern/ChartsAxisHighlight/ChartsYAxisHighlight.js +53 -0
  201. package/modern/ChartsAxisHighlight/chartsAxisHighlightClasses.js +6 -0
  202. package/modern/ChartsAxisHighlight/index.js +4 -1
  203. package/modern/ChartsGrid/ChartsGrid.js +1 -1
  204. package/modern/ChartsGrid/ChartsHorizontalGrid.js +3 -3
  205. package/modern/ChartsGrid/ChartsVerticalGrid.js +3 -3
  206. package/modern/ChartsLegend/ChartsLegend.js +0 -3
  207. package/modern/ChartsLegend/DefaultChartsLegend.js +1 -12
  208. package/modern/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +11 -9
  209. package/modern/ChartsSurface/ChartsSurface.js +35 -34
  210. package/modern/ChartsTooltip/ChartTooltip.types.js +1 -0
  211. package/modern/ChartsTooltip/ChartsAxisTooltipContent.js +83 -72
  212. package/modern/ChartsTooltip/ChartsItemTooltipContent.js +54 -44
  213. package/modern/ChartsTooltip/ChartsTooltip.js +162 -107
  214. package/modern/ChartsTooltip/ChartsTooltipContainer.js +298 -0
  215. package/modern/ChartsTooltip/chartsTooltipClasses.js +18 -2
  216. package/modern/ChartsTooltip/index.js +2 -3
  217. package/modern/ChartsTooltip/useAxisTooltip.js +21 -21
  218. package/modern/ChartsTooltip/useItemTooltip.js +8 -7
  219. package/modern/ChartsTooltip/utils.js +45 -50
  220. package/modern/ChartsVoronoiHandler/ChartsVoronoiHandler.js +50 -39
  221. package/modern/Gauge/Gauge.js +0 -6
  222. package/modern/Gauge/GaugeContainer.js +60 -61
  223. package/modern/LineChart/AnimatedArea.js +9 -18
  224. package/modern/LineChart/AnimatedLine.js +9 -20
  225. package/modern/LineChart/AreaPlot.js +14 -8
  226. package/modern/LineChart/CircleMarkElement.js +6 -5
  227. package/modern/LineChart/LineChart.js +9 -60
  228. package/modern/LineChart/LineHighlightPlot.js +8 -11
  229. package/modern/LineChart/LinePlot.js +14 -8
  230. package/modern/LineChart/MarkElement.js +6 -5
  231. package/modern/LineChart/MarkPlot.js +2 -6
  232. package/modern/LineChart/extremums.js +10 -6
  233. package/modern/LineChart/useLineChartProps.js +4 -11
  234. package/modern/PieChart/PieArc.js +1 -10
  235. package/modern/PieChart/PieArcPlot.js +0 -5
  236. package/modern/PieChart/PieChart.js +20 -137
  237. package/modern/PieChart/PiePlot.js +2 -2
  238. package/modern/ScatterChart/Scatter.js +6 -5
  239. package/modern/ScatterChart/ScatterChart.js +11 -60
  240. package/modern/ScatterChart/ScatterPlot.js +3 -6
  241. package/modern/ScatterChart/extremums.js +6 -6
  242. package/modern/ScatterChart/useScatterChartProps.js +3 -12
  243. package/modern/SparkLineChart/SparkLineChart.js +6 -33
  244. package/modern/{ResponsiveChartContainer/ResponsiveChartContainer.js → context/ChartDataProvider/ChartDataProvider.js} +45 -39
  245. package/modern/context/ChartDataProvider/index.js +1 -0
  246. package/modern/context/ChartDataProvider/useChartDataProviderProps.js +66 -0
  247. package/{ChartContainer → modern/context/ChartDataProvider}/useDefaultizeAxis.js +1 -1
  248. package/modern/context/DrawingAreaProvider/DrawingArea.types.js +1 -0
  249. package/modern/context/DrawingAreaProvider/DrawingAreaContext.js +16 -0
  250. package/{context/DrawingProvider.js → modern/context/DrawingAreaProvider/DrawingAreaProvider.js} +11 -41
  251. package/modern/context/DrawingAreaProvider/index.js +3 -0
  252. package/modern/context/HighlightedProvider/HighlightedProvider.js +1 -16
  253. package/modern/context/InteractionProvider.js +8 -64
  254. package/modern/context/InteractionSelectors.js +12 -0
  255. package/modern/context/SizeProvider/Size.types.js +1 -0
  256. package/modern/context/SizeProvider/SizeContext.js +13 -0
  257. package/modern/context/SizeProvider/SizeProvider.js +26 -0
  258. package/modern/context/SizeProvider/index.js +4 -0
  259. package/{ResponsiveChartContainer → modern/context/SizeProvider}/useChartContainerDimensions.js +15 -7
  260. package/modern/context/SizeProvider/useSize.js +13 -0
  261. package/modern/context/SvgRefProvider/SvgRef.types.js +1 -0
  262. package/modern/context/SvgRefProvider/SvgRefContext.js +17 -0
  263. package/modern/context/SvgRefProvider/SvgRefProvider.js +24 -0
  264. package/modern/context/SvgRefProvider/index.js +4 -0
  265. package/modern/context/SvgRefProvider/useSurfaceRef.js +14 -0
  266. package/modern/context/index.js +2 -1
  267. package/modern/hooks/useAxisEvents.js +32 -19
  268. package/modern/hooks/useChartId.js +2 -2
  269. package/modern/hooks/useDrawingArea.js +2 -2
  270. package/modern/hooks/useInteractionItemProps.js +19 -12
  271. package/modern/hooks/useSvgRef.js +3 -3
  272. package/modern/index.js +2 -3
  273. package/modern/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +9 -4
  274. package/modern/internals/getSymbol.js +19 -3
  275. package/modern/internals/index.js +7 -6
  276. package/modern/internals/plugins/models/index.js +1 -0
  277. package/modern/internals/plugins/utils/ChartStore.js +26 -0
  278. package/modern/internals/plugins/utils/ChartsStore.js +26 -0
  279. package/modern/internals/plugins/utils/selectors.js +37 -0
  280. package/modern/internals/useCharts.js +29 -0
  281. package/modern/internals/useSelector.js +6 -0
  282. package/modern/internals/useStore.js +17 -0
  283. package/modern/internals/useStringInterpolator.js +1 -0
  284. package/node/BarChart/AnimatedBarElement.js +28 -0
  285. package/node/BarChart/BarChart.js +9 -59
  286. package/node/BarChart/BarElement.js +11 -21
  287. package/node/BarChart/BarPlot.js +22 -4
  288. package/node/BarChart/extremums.js +3 -3
  289. package/node/BarChart/useBarChartProps.js +4 -11
  290. package/node/ChartContainer/ChartContainer.js +14 -43
  291. package/node/ChartContainer/ResizableContainer.js +68 -0
  292. package/node/ChartContainer/useChartContainerProps.js +29 -60
  293. package/node/ChartsAxisHighlight/ChartsAxisHighlight.js +12 -100
  294. package/node/ChartsAxisHighlight/ChartsAxisHighlightPath.js +40 -0
  295. package/node/ChartsAxisHighlight/ChartsXAxisHighlight.js +57 -0
  296. package/node/ChartsAxisHighlight/ChartsYAxisHighlight.js +57 -0
  297. package/node/ChartsAxisHighlight/chartsAxisHighlightClasses.js +14 -0
  298. package/node/ChartsAxisHighlight/index.js +33 -0
  299. package/node/ChartsGrid/ChartsGrid.js +2 -2
  300. package/node/ChartsGrid/ChartsHorizontalGrid.js +4 -4
  301. package/node/ChartsGrid/ChartsVerticalGrid.js +4 -4
  302. package/node/ChartsLegend/ChartsLegend.js +0 -3
  303. package/node/ChartsLegend/DefaultChartsLegend.js +1 -12
  304. package/node/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +11 -9
  305. package/node/ChartsSurface/ChartsSurface.js +35 -34
  306. package/node/ChartsTooltip/ChartsAxisTooltipContent.js +83 -73
  307. package/node/ChartsTooltip/ChartsItemTooltipContent.js +54 -45
  308. package/node/ChartsTooltip/ChartsTooltip.js +161 -106
  309. package/node/ChartsTooltip/ChartsTooltipContainer.js +304 -0
  310. package/node/ChartsTooltip/chartsTooltipClasses.js +22 -3
  311. package/node/ChartsTooltip/index.js +19 -28
  312. package/node/ChartsTooltip/useAxisTooltip.js +21 -21
  313. package/node/ChartsTooltip/useItemTooltip.js +8 -7
  314. package/node/ChartsTooltip/utils.js +46 -53
  315. package/node/ChartsVoronoiHandler/ChartsVoronoiHandler.js +51 -40
  316. package/node/Gauge/Gauge.js +0 -6
  317. package/node/Gauge/GaugeContainer.js +60 -61
  318. package/node/LineChart/AnimatedArea.js +9 -19
  319. package/node/LineChart/AnimatedLine.js +9 -21
  320. package/node/LineChart/AreaPlot.js +13 -7
  321. package/node/LineChart/CircleMarkElement.js +6 -5
  322. package/node/LineChart/LineChart.js +9 -60
  323. package/node/LineChart/LineHighlightPlot.js +8 -11
  324. package/node/LineChart/LinePlot.js +13 -7
  325. package/node/LineChart/MarkElement.js +6 -5
  326. package/node/LineChart/MarkPlot.js +2 -6
  327. package/node/LineChart/extremums.js +10 -6
  328. package/node/LineChart/useLineChartProps.js +4 -11
  329. package/node/PieChart/PieArc.js +1 -10
  330. package/node/PieChart/PieArcPlot.js +0 -5
  331. package/node/PieChart/PieChart.js +20 -137
  332. package/node/PieChart/PiePlot.js +2 -2
  333. package/node/ScatterChart/Scatter.js +6 -5
  334. package/node/ScatterChart/ScatterChart.js +11 -60
  335. package/node/ScatterChart/ScatterPlot.js +3 -6
  336. package/node/ScatterChart/extremums.js +6 -6
  337. package/node/ScatterChart/useScatterChartProps.js +3 -12
  338. package/node/SparkLineChart/SparkLineChart.js +6 -33
  339. package/node/{ResponsiveChartContainer/ResponsiveChartContainer.js → context/ChartDataProvider/ChartDataProvider.js} +45 -39
  340. package/node/context/ChartDataProvider/index.js +16 -0
  341. package/node/context/ChartDataProvider/useChartDataProviderProps.js +72 -0
  342. package/node/{ChartContainer → context/ChartDataProvider}/useDefaultizeAxis.js +1 -1
  343. package/node/context/DrawingAreaProvider/DrawingArea.types.js +5 -0
  344. package/node/context/DrawingAreaProvider/DrawingAreaContext.js +22 -0
  345. package/node/context/{DrawingProvider.js → DrawingAreaProvider/DrawingAreaProvider.js} +12 -44
  346. package/node/context/DrawingAreaProvider/index.js +38 -0
  347. package/node/context/HighlightedProvider/HighlightedProvider.js +1 -16
  348. package/node/context/InteractionProvider.js +9 -66
  349. package/node/context/InteractionSelectors.js +18 -0
  350. package/node/context/SizeProvider/Size.types.js +5 -0
  351. package/node/context/SizeProvider/SizeContext.js +20 -0
  352. package/node/context/SizeProvider/SizeProvider.js +29 -0
  353. package/node/context/SizeProvider/index.js +49 -0
  354. package/node/{ResponsiveChartContainer → context/SizeProvider}/useChartContainerDimensions.js +15 -7
  355. package/node/context/SizeProvider/useSize.js +20 -0
  356. package/node/context/SvgRefProvider/SvgRef.types.js +5 -0
  357. package/node/context/SvgRefProvider/SvgRefContext.js +23 -0
  358. package/node/context/SvgRefProvider/SvgRefProvider.js +31 -0
  359. package/node/context/SvgRefProvider/index.js +49 -0
  360. package/node/context/SvgRefProvider/useSurfaceRef.js +20 -0
  361. package/node/context/index.js +10 -2
  362. package/node/hooks/useAxisEvents.js +33 -19
  363. package/node/hooks/useChartId.js +2 -2
  364. package/node/hooks/useDrawingArea.js +2 -2
  365. package/node/hooks/useInteractionItemProps.js +20 -13
  366. package/node/hooks/useSvgRef.js +3 -3
  367. package/node/index.js +5 -16
  368. package/node/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +9 -4
  369. package/node/internals/getSymbol.js +19 -3
  370. package/node/internals/index.js +64 -44
  371. package/node/internals/plugins/models/index.js +5 -0
  372. package/node/internals/plugins/utils/ChartStore.js +33 -0
  373. package/node/internals/plugins/utils/ChartsStore.js +33 -0
  374. package/node/internals/plugins/utils/selectors.js +44 -0
  375. package/node/internals/useCharts.js +36 -0
  376. package/node/internals/useSelector.js +13 -0
  377. package/node/internals/useStore.js +24 -0
  378. package/node/internals/useStringInterpolator.js +2 -0
  379. package/package.json +8 -6
  380. package/themeAugmentation/props.d.ts +1 -2
  381. package/ChartsTooltip/DefaultChartsAxisTooltipContent.d.ts +0 -7
  382. package/ChartsTooltip/DefaultChartsAxisTooltipContent.js +0 -123
  383. package/ChartsTooltip/DefaultChartsItemTooltipContent.d.ts +0 -8
  384. package/ChartsTooltip/DefaultChartsItemTooltipContent.js +0 -92
  385. package/ResponsiveChartContainer/ResizableContainer.d.ts +0 -9
  386. package/ResponsiveChartContainer/ResizableContainer.js +0 -26
  387. package/ResponsiveChartContainer/ResponsiveChartContainer.d.ts +0 -24
  388. package/ResponsiveChartContainer/index.d.ts +0 -1
  389. package/ResponsiveChartContainer/index.js +0 -1
  390. package/ResponsiveChartContainer/package.json +0 -6
  391. package/ResponsiveChartContainer/useChartContainerDimensions.d.ts +0 -6
  392. package/ResponsiveChartContainer/useResponsiveChartContainerProps.d.ts +0 -19
  393. package/ResponsiveChartContainer/useResponsiveChartContainerProps.js +0 -70
  394. package/internals/SlotComponentPropsFromProps.d.ts +0 -1
  395. package/models/helpers.d.ts +0 -3
  396. package/modern/ChartsTooltip/DefaultChartsAxisTooltipContent.js +0 -123
  397. package/modern/ChartsTooltip/DefaultChartsItemTooltipContent.js +0 -92
  398. package/modern/ResponsiveChartContainer/ResizableContainer.js +0 -26
  399. package/modern/ResponsiveChartContainer/index.js +0 -1
  400. package/modern/ResponsiveChartContainer/useResponsiveChartContainerProps.js +0 -70
  401. package/node/ChartsTooltip/DefaultChartsAxisTooltipContent.js +0 -129
  402. package/node/ChartsTooltip/DefaultChartsItemTooltipContent.js +0 -98
  403. package/node/ResponsiveChartContainer/ResizableContainer.js +0 -32
  404. package/node/ResponsiveChartContainer/index.js +0 -16
  405. package/node/ResponsiveChartContainer/useResponsiveChartContainerProps.js +0 -77
  406. /package/{internals/SlotComponentPropsFromProps.js → ChartsAxisHighlight/ChartsAxisHighlight.types.js} +0 -0
  407. /package/ChartsGrid/{styledCommonents.d.ts → styledComponents.d.ts} +0 -0
  408. /package/ChartsGrid/{styledCommonents.js → styledComponents.js} +0 -0
  409. /package/{models/helpers.js → ChartsTooltip/ChartTooltip.types.js} +0 -0
  410. /package/{modern/internals/SlotComponentPropsFromProps.js → context/DrawingAreaProvider/DrawingArea.types.js} +0 -0
  411. /package/{modern/models/helpers.js → context/SizeProvider/Size.types.js} +0 -0
  412. /package/modern/ChartsGrid/{styledCommonents.js → styledComponents.js} +0 -0
  413. /package/node/{internals/SlotComponentPropsFromProps.js → ChartsAxisHighlight/ChartsAxisHighlight.types.js} +0 -0
  414. /package/node/ChartsGrid/{styledCommonents.js → styledComponents.js} +0 -0
  415. /package/node/{models/helpers.js → ChartsTooltip/ChartTooltip.types.js} +0 -0
@@ -1,10 +1,10 @@
1
1
  import * as React from 'react';
2
- import { DrawingArea } from '../context/DrawingProvider';
2
+ import { DrawingAreaState } from '../context/DrawingAreaProvider';
3
3
  import { AxisDefaultized, ChartsYAxisProps, ScaleName } from '../models/axis';
4
4
  import { ChartsGridClasses } from './chartsGridClasses';
5
5
  interface ChartsGridHorizontalProps {
6
6
  axis: AxisDefaultized<ScaleName, any, ChartsYAxisProps>;
7
- drawingArea: DrawingArea;
7
+ drawingArea: DrawingAreaState;
8
8
  classes: Partial<ChartsGridClasses>;
9
9
  }
10
10
  /**
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { useTicks } from "../hooks/useTicks.js";
3
- import { GridLine } from "./styledCommonents.js";
3
+ import { GridLine } from "./styledComponents.js";
4
4
  import { jsx as _jsx } from "react/jsx-runtime";
5
5
  /**
6
6
  * @ignore - internal component.
@@ -23,7 +23,7 @@ export function ChartsGridHorizontal(props) {
23
23
  });
24
24
  return /*#__PURE__*/_jsx(React.Fragment, {
25
25
  children: yTicks.map(({
26
- formattedValue,
26
+ value,
27
27
  offset
28
28
  }) => /*#__PURE__*/_jsx(GridLine, {
29
29
  y1: offset,
@@ -31,6 +31,6 @@ export function ChartsGridHorizontal(props) {
31
31
  x1: drawingArea.left,
32
32
  x2: drawingArea.left + drawingArea.width,
33
33
  className: classes.horizontalLine
34
- }, `horizontal-${formattedValue}`))
34
+ }, `horizontal-${value}`))
35
35
  });
36
36
  }
@@ -1,10 +1,10 @@
1
1
  import * as React from 'react';
2
- import { DrawingArea } from '../context/DrawingProvider';
2
+ import { DrawingAreaState } from '../context/DrawingAreaProvider';
3
3
  import { AxisDefaultized, ChartsXAxisProps, ScaleName } from '../models/axis';
4
4
  import { ChartsGridClasses } from './chartsGridClasses';
5
5
  interface ChartsGridVerticalProps {
6
6
  axis: AxisDefaultized<ScaleName, any, ChartsXAxisProps>;
7
- drawingArea: DrawingArea;
7
+ drawingArea: DrawingAreaState;
8
8
  classes: Partial<ChartsGridClasses>;
9
9
  }
10
10
  /**
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { useTicks } from "../hooks/useTicks.js";
3
- import { GridLine } from "./styledCommonents.js";
3
+ import { GridLine } from "./styledComponents.js";
4
4
  import { jsx as _jsx } from "react/jsx-runtime";
5
5
  /**
6
6
  * @ignore - internal component.
@@ -23,7 +23,7 @@ export function ChartsGridVertical(props) {
23
23
  });
24
24
  return /*#__PURE__*/_jsx(React.Fragment, {
25
25
  children: xTicks.map(({
26
- formattedValue,
26
+ value,
27
27
  offset
28
28
  }) => /*#__PURE__*/_jsx(GridLine, {
29
29
  y1: drawingArea.top,
@@ -31,6 +31,6 @@ export function ChartsGridVertical(props) {
31
31
  x1: offset,
32
32
  x2: offset,
33
33
  className: classes.verticalLine
34
- }, `vertical-${formattedValue}`))
34
+ }, `vertical-${value}`))
35
35
  });
36
36
  }
@@ -11,7 +11,6 @@ import { useThemeProps, useTheme } from '@mui/material/styles';
11
11
  import { getSeriesToDisplay } from "./utils.js";
12
12
  import { getLegendUtilityClass } from "./chartsLegendClasses.js";
13
13
  import { DefaultChartsLegend } from "./DefaultChartsLegend.js";
14
- import { useDrawingArea } from "../hooks/index.js";
15
14
  import { useSeries } from "../hooks/useSeries.js";
16
15
  import { jsx as _jsx } from "react/jsx-runtime";
17
16
  const useUtilityClasses = ownerState => {
@@ -50,7 +49,6 @@ function ChartsLegend(inProps) {
50
49
  const classes = useUtilityClasses(_extends({}, defaultizedProps, {
51
50
  theme
52
51
  }));
53
- const drawingArea = useDrawingArea();
54
52
  const series = useSeries();
55
53
  const seriesToDisplay = getSeriesToDisplay(series);
56
54
  const ChartLegendRender = slots?.legend ?? DefaultChartsLegend;
@@ -59,7 +57,6 @@ function ChartsLegend(inProps) {
59
57
  externalSlotProps: slotProps?.legend,
60
58
  additionalProps: _extends({}, other, {
61
59
  classes,
62
- drawingArea,
63
60
  series,
64
61
  seriesToDisplay
65
62
  }),
@@ -1,15 +1,10 @@
1
1
  import * as React from 'react';
2
2
  import { FormattedSeries } from '../context/SeriesProvider';
3
3
  import { LegendPerItemProps } from './LegendPerItem';
4
- import { DrawingArea } from '../context/DrawingProvider';
5
4
  import { SeriesLegendItemContext } from './chartsLegend.types';
6
5
  export interface LegendRendererProps extends Omit<LegendPerItemProps, 'itemsToDisplay' | 'onItemClick'> {
7
6
  series: FormattedSeries;
8
7
  seriesToDisplay: LegendPerItemProps['itemsToDisplay'];
9
- /**
10
- * @deprecated Use the `useDrawingArea` hook instead.
11
- */
12
- drawingArea: Omit<DrawingArea, 'isPointInside'>;
13
8
  /**
14
9
  * Callback fired when a legend item is clicked.
15
10
  * @param {React.MouseEvent<SVGRectElement, MouseEvent>} event The click event.
@@ -2,7 +2,7 @@
2
2
 
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
5
- const _excluded = ["drawingArea", "seriesToDisplay", "hidden", "onItemClick"];
5
+ const _excluded = ["seriesToDisplay", "hidden", "onItemClick"];
6
6
  import * as React from 'react';
7
7
  import PropTypes from 'prop-types';
8
8
  import { LegendPerItem } from "./LegendPerItem.js";
@@ -43,17 +43,6 @@ process.env.NODE_ENV !== "production" ? DefaultChartsLegend.propTypes = {
43
43
  * The default depends on the chart.
44
44
  */
45
45
  direction: PropTypes.oneOf(['column', 'row']).isRequired,
46
- /**
47
- * @deprecated Use the `useDrawingArea` hook instead.
48
- */
49
- drawingArea: PropTypes.shape({
50
- bottom: PropTypes.number.isRequired,
51
- height: PropTypes.number.isRequired,
52
- left: PropTypes.number.isRequired,
53
- right: PropTypes.number.isRequired,
54
- top: PropTypes.number.isRequired,
55
- width: PropTypes.number.isRequired
56
- }).isRequired,
57
46
  /**
58
47
  * Set to true to hide the legend.
59
48
  * @default false
@@ -1,15 +1,15 @@
1
1
  import * as React from 'react';
2
- import { DrawingArea } from '../context/DrawingProvider';
2
+ import { DefaultizedProps } from '@mui/x-internals/types';
3
+ import { DrawingAreaState } from '../context/DrawingAreaProvider';
3
4
  import { ChartsTextStyle } from '../ChartsText';
4
5
  import { CardinalDirections } from '../models/layout';
5
6
  import { LegendItemParams } from './chartsLegend.types';
6
7
  import { AnchorPosition, Direction, LegendPlacement } from './legend.types';
7
8
  import { ChartsLegendClasses } from './chartsLegendClasses';
8
- import { DefaultizedProps } from '../models/helpers';
9
9
  export type ChartsLegendRootOwnerState = {
10
10
  position: AnchorPosition;
11
11
  direction: Direction;
12
- drawingArea: DrawingArea;
12
+ drawingArea: DrawingAreaState;
13
13
  offsetX?: number;
14
14
  offsetY?: number;
15
15
  seriesNumber: number;
@@ -2,10 +2,10 @@
2
2
 
3
3
  import * as React from 'react';
4
4
  import PropTypes from 'prop-types';
5
- import { InteractionContext } from "../context/InteractionProvider.js";
6
5
  import { useSeries } from "../hooks/useSeries.js";
7
6
  import { useSvgRef } from "../hooks/index.js";
8
7
  import { useCartesianContext } from "../context/CartesianProvider/index.js";
8
+ import { useStore } from "../internals/useStore.js";
9
9
  import { jsx as _jsx } from "react/jsx-runtime";
10
10
  function ChartsOnAxisClickHandler(props) {
11
11
  const {
@@ -13,9 +13,7 @@ function ChartsOnAxisClickHandler(props) {
13
13
  } = props;
14
14
  const svgRef = useSvgRef();
15
15
  const series = useSeries();
16
- const {
17
- axis
18
- } = React.useContext(InteractionContext);
16
+ const store = useStore();
19
17
  const {
20
18
  xAxisIds,
21
19
  xAxis,
@@ -29,9 +27,13 @@ function ChartsOnAxisClickHandler(props) {
29
27
  }
30
28
  const handleMouseClick = event => {
31
29
  event.preventDefault();
32
- const isXaxis = axis.x && axis.x.index !== -1;
30
+ const {
31
+ x: axisX,
32
+ y: axisY
33
+ } = store.value.interaction.axis;
34
+ const isXaxis = axisX && axisX.index !== -1;
33
35
  const USED_AXIS_ID = isXaxis ? xAxisIds[0] : yAxisIds[0];
34
- const dataIndex = isXaxis ? axis.x && axis.x.index : axis.y && axis.y.index;
36
+ const dataIndex = isXaxis ? axisX && axisX.index : axisY && axisY.index;
35
37
  if (dataIndex == null) {
36
38
  return;
37
39
  }
@@ -39,8 +41,8 @@ function ChartsOnAxisClickHandler(props) {
39
41
  Object.keys(series).filter(seriesType => ['bar', 'line'].includes(seriesType)).forEach(seriesType => {
40
42
  series[seriesType]?.seriesOrder.forEach(seriesId => {
41
43
  const seriesItem = series[seriesType].series[seriesId];
42
- const providedXAxisId = seriesItem.xAxisId ?? seriesItem.xAxisKey;
43
- const providedYAxisId = seriesItem.yAxisId ?? seriesItem.yAxisKey;
44
+ const providedXAxisId = seriesItem.xAxisId;
45
+ const providedYAxisId = seriesItem.yAxisId;
44
46
  const axisKey = isXaxis ? providedXAxisId : providedYAxisId;
45
47
  if (axisKey === undefined || axisKey === USED_AXIS_ID) {
46
48
  seriesValues[seriesId] = seriesItem.data[dataIndex];
@@ -58,7 +60,7 @@ function ChartsOnAxisClickHandler(props) {
58
60
  return () => {
59
61
  element.removeEventListener('click', handleMouseClick);
60
62
  };
61
- }, [axis.x, axis.y, onAxisClick, series, svgRef, xAxis, xAxisIds, yAxis, yAxisIds]);
63
+ }, [onAxisClick, series, store, svgRef, xAxis, xAxisIds, yAxis, yAxisIds]);
62
64
 
63
65
  // eslint-disable-next-line react/jsx-no-useless-fragment
64
66
  return /*#__PURE__*/_jsx(React.Fragment, {});
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { SxProps, Theme } from '@mui/material/styles';
3
- import { SlotComponentPropsFromProps } from '../internals/SlotComponentPropsFromProps';
3
+ import { SlotComponentPropsFromProps } from '@mui/x-internals/types';
4
4
  export declare function useNoData(): boolean;
5
5
  export type CommonOverlayProps = React.SVGAttributes<SVGTextElement> & {
6
6
  /**
@@ -1,21 +1,6 @@
1
1
  import { SxProps, Theme } from '@mui/material/styles';
2
2
  import * as React from 'react';
3
- type ViewBox = {
4
- x?: number;
5
- y?: number;
6
- width?: number;
7
- height?: number;
8
- };
9
3
  export interface ChartsSurfaceProps {
10
- /**
11
- * The width of the chart in px.
12
- */
13
- width: number;
14
- /**
15
- * The height of the chart in px.
16
- */
17
- height: number;
18
- viewBox?: ViewBox;
19
4
  className?: string;
20
5
  title?: string;
21
6
  desc?: string;
@@ -2,13 +2,18 @@
2
2
 
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
5
- const _excluded = ["children", "width", "height", "viewBox", "disableAxisListener", "className", "title", "desc"];
5
+ const _excluded = ["children", "disableAxisListener", "className", "title", "desc"];
6
6
  import { styled, useThemeProps } from '@mui/material/styles';
7
7
  import PropTypes from 'prop-types';
8
8
  import * as React from 'react';
9
+ import useForkRef from '@mui/utils/useForkRef';
9
10
  import { useAxisEvents } from "../hooks/useAxisEvents.js";
11
+ import { ChartsAxesGradients } from "../internals/components/ChartsAxesGradients/index.js";
12
+ import { useDrawingArea } from "../hooks/index.js";
13
+ import { useSurfaceRef } from "../context/SvgRefProvider/index.js";
14
+ import { useSize } from "../context/SizeProvider/index.js";
10
15
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
- const ChartChartsSurfaceStyles = styled('svg', {
16
+ const ChartsSurfaceStyles = styled('svg', {
12
17
  name: 'MuiChartsSurface',
13
18
  slot: 'Root'
14
19
  })(() => ({
@@ -17,40 +22,50 @@ const ChartChartsSurfaceStyles = styled('svg', {
17
22
  touchAction: 'none'
18
23
  }));
19
24
  const ChartsSurface = /*#__PURE__*/React.forwardRef(function ChartsSurface(inProps, ref) {
20
- const props = useThemeProps({
25
+ const {
26
+ width,
27
+ height,
28
+ left,
29
+ right,
30
+ top,
31
+ bottom
32
+ } = useDrawingArea();
33
+ const {
34
+ hasIntrinsicSize
35
+ } = useSize();
36
+ const surfaceRef = useSurfaceRef();
37
+ const handleRef = useForkRef(surfaceRef, ref);
38
+ const themeProps = useThemeProps({
21
39
  props: inProps,
22
40
  name: 'MuiChartsSurface'
23
41
  });
24
42
  const {
25
43
  children,
26
- width,
27
- height,
28
- viewBox,
29
44
  disableAxisListener = false,
30
45
  className,
31
46
  title,
32
47
  desc
33
- } = props,
34
- other = _objectWithoutPropertiesLoose(props, _excluded);
35
- const svgView = _extends({
36
- width,
37
- height,
48
+ } = themeProps,
49
+ other = _objectWithoutPropertiesLoose(themeProps, _excluded);
50
+ const svgWidth = width + left + right;
51
+ const svgHeight = height + top + bottom;
52
+ const svgView = {
53
+ width: svgWidth,
54
+ height: svgHeight,
38
55
  x: 0,
39
56
  y: 0
40
- }, viewBox);
57
+ };
41
58
  useAxisEvents(disableAxisListener);
42
- return /*#__PURE__*/_jsxs(ChartChartsSurfaceStyles, _extends({
43
- width: width,
44
- height: height,
59
+ return /*#__PURE__*/_jsxs(ChartsSurfaceStyles, _extends({
45
60
  viewBox: `${svgView.x} ${svgView.y} ${svgView.width} ${svgView.height}`,
46
- ref: ref,
47
61
  className: className
48
62
  }, other, {
49
- children: [/*#__PURE__*/_jsx("title", {
63
+ ref: handleRef,
64
+ children: [title && /*#__PURE__*/_jsx("title", {
50
65
  children: title
51
- }), /*#__PURE__*/_jsx("desc", {
66
+ }), desc && /*#__PURE__*/_jsx("desc", {
52
67
  children: desc
53
- }), children]
68
+ }), /*#__PURE__*/_jsx(ChartsAxesGradients, {}), hasIntrinsicSize && children]
54
69
  }));
55
70
  });
56
71
  process.env.NODE_ENV !== "production" ? ChartsSurface.propTypes = {
@@ -67,21 +82,7 @@ process.env.NODE_ENV !== "production" ? ChartsSurface.propTypes = {
67
82
  * @default false
68
83
  */
69
84
  disableAxisListener: PropTypes.bool,
70
- /**
71
- * The height of the chart in px.
72
- */
73
- height: PropTypes.number.isRequired,
74
85
  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
75
- title: PropTypes.string,
76
- viewBox: PropTypes.shape({
77
- height: PropTypes.number,
78
- width: PropTypes.number,
79
- x: PropTypes.number,
80
- y: PropTypes.number
81
- }),
82
- /**
83
- * The width of the chart in px.
84
- */
85
- width: PropTypes.number.isRequired
86
+ title: PropTypes.string
86
87
  } : void 0;
87
88
  export { ChartsSurface };
@@ -0,0 +1,15 @@
1
+ import { ChartsTooltipProps } from './ChartsTooltip';
2
+ export interface ChartsTooltipSlots {
3
+ /**
4
+ * Custom component for the tooltip popper.
5
+ * @default ChartsTooltipRoot
6
+ */
7
+ tooltip?: React.ElementType<ChartsTooltipProps>;
8
+ }
9
+ export interface ChartsTooltipSlotProps {
10
+ /**
11
+ * Custom component for the tooltip popper.
12
+ * @default ChartsTooltipRoot
13
+ */
14
+ tooltip?: Partial<ChartsTooltipProps>;
15
+ }
@@ -1,47 +1,15 @@
1
1
  import * as React from 'react';
2
2
  import { SxProps, Theme } from '@mui/material/styles';
3
- import { AxisInteractionData } from '../context/InteractionProvider';
4
- import { ChartSeriesDefaultized, ChartSeriesType } from '../models/seriesType/config';
5
- import { AxisDefaultized } from '../models/axis';
6
3
  import { ChartsTooltipClasses } from './chartsTooltipClasses';
7
- type ChartSeriesDefaultizedWithColorGetter = ChartSeriesDefaultized<ChartSeriesType> & {
8
- getColor: (dataIndex: number) => string;
9
- };
10
- export type ChartsAxisContentProps = {
11
- /**
12
- * Data identifying the triggered axis.
13
- */
14
- axisData: AxisInteractionData;
15
- /**
16
- * The series linked to the triggered axis.
17
- */
18
- series: ChartSeriesDefaultizedWithColorGetter[];
19
- /**
20
- * The properties of the triggered axis.
21
- */
22
- axis: AxisDefaultized;
23
- /**
24
- * The index of the data item triggered.
25
- */
26
- dataIndex?: null | number;
27
- /**
28
- * The value associated to the current mouse position.
29
- */
30
- axisValue: string | number | Date | null;
4
+ export interface ChartsAxisTooltipContentProps {
31
5
  /**
32
6
  * Override or extend the styles applied to the component.
33
7
  */
34
- classes: ChartsTooltipClasses;
35
- sx?: SxProps<Theme>;
36
- };
37
- /**
38
- * @ignore - internal component.
39
- */
40
- declare function ChartsAxisTooltipContent(props: {
41
- axisData: AxisInteractionData;
42
- content?: React.ElementType<ChartsAxisContentProps>;
43
- contentProps?: Partial<ChartsAxisContentProps>;
8
+ classes?: Partial<ChartsTooltipClasses>;
44
9
  sx?: SxProps<Theme>;
45
- classes: ChartsAxisContentProps['classes'];
46
- }): React.JSX.Element;
10
+ }
11
+ declare function ChartsAxisTooltipContent(props: ChartsAxisTooltipContentProps): React.JSX.Element | null;
12
+ declare namespace ChartsAxisTooltipContent {
13
+ var propTypes: any;
14
+ }
47
15
  export { ChartsAxisTooltipContent };
@@ -1,80 +1,91 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
1
+ 'use client';
2
+
2
3
  import * as React from 'react';
3
- import useSlotProps from '@mui/utils/useSlotProps';
4
- import { useCartesianContext } from "../context/CartesianProvider/index.js";
5
- import { DefaultChartsAxisTooltipContent } from "./DefaultChartsAxisTooltipContent.js";
6
- import { ZAxisContext } from "../context/ZAxisContextProvider.js";
7
- import { useColorProcessor } from "../context/PluginProvider/useColorProcessor.js";
8
- import { isCartesianSeriesType } from "../internals/isCartesian.js";
9
- import { useSeries } from "../hooks/useSeries.js";
10
- import { jsx as _jsx } from "react/jsx-runtime";
11
- /**
12
- * @ignore - internal component.
13
- */
4
+ import PropTypes from 'prop-types';
5
+ import Typography from '@mui/material/Typography';
6
+ import clsx from 'clsx';
7
+ import { useUtilityClasses } from "./chartsTooltipClasses.js";
8
+ import { ChartsTooltipCell, ChartsTooltipMark, ChartsTooltipPaper, ChartsTooltipRow, ChartsTooltipTable } from "./ChartsTooltipTable.js";
9
+ import { useAxisTooltip } from "./useAxisTooltip.js";
10
+ import { useXAxis, useYAxis } from "../hooks/index.js";
11
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
12
  function ChartsAxisTooltipContent(props) {
15
13
  const {
16
- content,
17
- contentProps,
18
- axisData,
19
- sx,
20
- classes
14
+ classes: propClasses,
15
+ sx
21
16
  } = props;
22
- const isXaxis = axisData.x && axisData.x.index !== -1;
23
- const dataIndex = isXaxis ? axisData.x && axisData.x.index : axisData.y && axisData.y.index;
24
- const axisValue = isXaxis ? axisData.x && axisData.x.value : axisData.y && axisData.y.value;
17
+ const tootlipData = useAxisTooltip();
18
+ const xAxis = useXAxis();
19
+ const yAxis = useYAxis();
20
+ const classes = useUtilityClasses(propClasses);
21
+ if (tootlipData === null) {
22
+ return null;
23
+ }
25
24
  const {
26
- xAxisIds,
27
- xAxis,
28
- yAxisIds,
29
- yAxis
30
- } = useCartesianContext();
31
- const {
32
- zAxisIds,
33
- zAxis
34
- } = React.useContext(ZAxisContext);
35
- const series = useSeries();
36
- const colorProcessors = useColorProcessor();
37
- const USED_AXIS_ID = isXaxis ? xAxisIds[0] : yAxisIds[0];
38
- const relevantSeries = React.useMemo(() => {
39
- const rep = [];
40
- Object.keys(series).filter(isCartesianSeriesType).forEach(seriesType => {
41
- series[seriesType].seriesOrder.forEach(seriesId => {
42
- const item = series[seriesType].series[seriesId];
43
- const providedXAxisId = item.xAxisId ?? item.xAxisKey;
44
- const providedYAxisId = item.yAxisId ?? item.yAxisKey;
45
- const axisKey = isXaxis ? providedXAxisId : providedYAxisId;
46
- if (axisKey === undefined || axisKey === USED_AXIS_ID) {
47
- const seriesToAdd = series[seriesType].series[seriesId];
48
- const xAxisId = providedXAxisId ?? xAxisIds[0];
49
- const yAxisId = providedYAxisId ?? yAxisIds[0];
50
- const zAxisId = seriesToAdd.zAxisId ?? seriesToAdd.zAxisKey ?? zAxisIds[0];
51
- const getColor = colorProcessors[seriesType]?.(seriesToAdd, xAxis[xAxisId], yAxis[yAxisId], zAxisId && zAxis[zAxisId]) ?? (() => '');
52
- rep.push(_extends({}, seriesToAdd, {
53
- getColor
54
- }));
55
- }
56
- });
57
- });
58
- return rep;
59
- }, [USED_AXIS_ID, colorProcessors, isXaxis, series, xAxis, xAxisIds, yAxis, yAxisIds, zAxis, zAxisIds]);
60
- const relevantAxis = React.useMemo(() => {
61
- return isXaxis ? xAxis[USED_AXIS_ID] : yAxis[USED_AXIS_ID];
62
- }, [USED_AXIS_ID, isXaxis, xAxis, yAxis]);
63
- const Content = content ?? DefaultChartsAxisTooltipContent;
64
- const chartTooltipContentProps = useSlotProps({
65
- elementType: Content,
66
- externalSlotProps: contentProps,
67
- additionalProps: {
68
- axisData,
69
- series: relevantSeries,
70
- axis: relevantAxis,
71
- dataIndex,
72
- axisValue,
73
- sx,
74
- classes
75
- },
76
- ownerState: {}
25
+ axisDirection,
26
+ axisValue,
27
+ axisFormattedValue,
28
+ seriesItems
29
+ } = tootlipData;
30
+ const axis = axisDirection === 'x' ? xAxis : yAxis;
31
+ return /*#__PURE__*/_jsx(ChartsTooltipPaper, {
32
+ sx: sx,
33
+ className: classes.paper,
34
+ children: /*#__PURE__*/_jsxs(ChartsTooltipTable, {
35
+ className: classes.table,
36
+ children: [axisValue != null && !axis.hideTooltip && /*#__PURE__*/_jsx("thead", {
37
+ children: /*#__PURE__*/_jsx(ChartsTooltipRow, {
38
+ children: /*#__PURE__*/_jsx(ChartsTooltipCell, {
39
+ colSpan: 3,
40
+ children: /*#__PURE__*/_jsx(Typography, {
41
+ children: axisFormattedValue
42
+ })
43
+ })
44
+ })
45
+ }), /*#__PURE__*/_jsx("tbody", {
46
+ children: seriesItems.map(({
47
+ seriesId,
48
+ color,
49
+ formattedValue,
50
+ formattedLabel
51
+ }) => {
52
+ if (formattedValue == null) {
53
+ return null;
54
+ }
55
+ return /*#__PURE__*/_jsxs(ChartsTooltipRow, {
56
+ className: classes.row,
57
+ children: [/*#__PURE__*/_jsx(ChartsTooltipCell, {
58
+ className: clsx(classes.markCell, classes.cell),
59
+ children: color && /*#__PURE__*/_jsx(ChartsTooltipMark, {
60
+ color: color,
61
+ className: classes.mark
62
+ })
63
+ }), /*#__PURE__*/_jsx(ChartsTooltipCell, {
64
+ className: clsx(classes.labelCell, classes.cell),
65
+ children: formattedLabel ? /*#__PURE__*/_jsx(Typography, {
66
+ children: formattedLabel
67
+ }) : null
68
+ }), /*#__PURE__*/_jsx(ChartsTooltipCell, {
69
+ className: clsx(classes.valueCell, classes.cell),
70
+ children: /*#__PURE__*/_jsx(Typography, {
71
+ children: formattedValue
72
+ })
73
+ })]
74
+ }, seriesId);
75
+ })
76
+ })]
77
+ })
77
78
  });
78
- return /*#__PURE__*/_jsx(Content, _extends({}, chartTooltipContentProps));
79
79
  }
80
+ process.env.NODE_ENV !== "production" ? ChartsAxisTooltipContent.propTypes = {
81
+ // ----------------------------- Warning --------------------------------
82
+ // | These PropTypes are generated from the TypeScript type definitions |
83
+ // | To update them edit the TypeScript types and run "pnpm proptypes" |
84
+ // ----------------------------------------------------------------------
85
+ /**
86
+ * Override or extend the styles applied to the component.
87
+ */
88
+ classes: PropTypes.object,
89
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])
90
+ } : void 0;
80
91
  export { ChartsAxisTooltipContent };
@@ -1,38 +1,15 @@
1
1
  import * as React from 'react';
2
2
  import { SxProps, Theme } from '@mui/material/styles';
3
- import { ItemInteractionData } from '../context/InteractionProvider';
4
- import { ChartSeriesDefaultized, ChartSeriesType } from '../models/seriesType/config';
5
3
  import { ChartsTooltipClasses } from './chartsTooltipClasses';
6
- export interface ChartsItemContentProps<T extends ChartSeriesType> {
7
- /**
8
- * The data used to identify the triggered item.
9
- */
10
- itemData: ItemInteractionData<T>;
11
- /**
12
- * The series linked to the triggered item.
13
- */
14
- series: ChartSeriesDefaultized<T>;
4
+ export interface ChartsItemTooltipContentProps {
15
5
  /**
16
6
  * Override or extend the styles applied to the component.
17
7
  */
18
- classes: ChartsTooltipClasses;
19
- /**
20
- * Get the color of the item with index `dataIndex`.
21
- * @param {number} dataIndex The data index of the item.
22
- * @returns {string} The color to display.
23
- */
24
- getColor: (dataIndex: number) => string;
8
+ classes?: Partial<ChartsTooltipClasses>;
25
9
  sx?: SxProps<Theme>;
26
10
  }
27
- export interface ChartsItemTooltipContentProps<T extends ChartSeriesType> {
28
- itemData: ItemInteractionData<T>;
29
- content?: React.ElementType<ChartsItemContentProps<T>>;
30
- contentProps?: Partial<ChartsItemContentProps<T>>;
31
- sx?: SxProps<Theme>;
32
- classes: ChartsItemContentProps<T>['classes'];
11
+ declare function ChartsItemTooltipContent(props: ChartsItemTooltipContentProps): React.JSX.Element | null;
12
+ declare namespace ChartsItemTooltipContent {
13
+ var propTypes: any;
33
14
  }
34
- /**
35
- * @ignore - internal component.
36
- */
37
- declare function ChartsItemTooltipContent<T extends ChartSeriesType>(props: ChartsItemTooltipContentProps<T>): React.JSX.Element;
38
15
  export { ChartsItemTooltipContent };