@mui/x-charts 8.0.0-alpha.0 → 8.0.0-alpha.2

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 (417) hide show
  1. package/BarChart/AnimatedBarElement.d.ts +15 -0
  2. package/BarChart/AnimatedBarElement.js +21 -0
  3. package/BarChart/BarChart.d.ts +4 -9
  4. package/BarChart/BarChart.js +3 -35
  5. package/BarChart/BarElement.d.ts +5 -1342
  6. package/BarChart/BarElement.js +10 -20
  7. package/BarChart/BarLabel/BarLabel.d.ts +298 -298
  8. package/BarChart/BarPlot.js +12 -2
  9. package/BarChart/useBarChartProps.d.ts +0 -2
  10. package/BarChart/useBarChartProps.js +2 -8
  11. package/CHANGELOG.md +651 -6
  12. package/ChartContainer/ChartContainer.d.ts +26 -19
  13. package/ChartContainer/ChartContainer.js +31 -25
  14. package/ChartContainer/useChartContainerProps.d.ts +5 -7
  15. package/ChartContainer/useChartContainerProps.js +12 -27
  16. package/ChartsAxis/axisClasses.js +2 -1
  17. package/ChartsAxisHighlight/ChartsAxisHighlight.d.ts +1 -17
  18. package/ChartsAxisHighlight/ChartsAxisHighlight.js +10 -96
  19. package/ChartsAxisHighlight/ChartsAxisHighlight.types.d.ts +5 -0
  20. package/ChartsAxisHighlight/ChartsAxisHighlight.types.js +1 -0
  21. package/ChartsAxisHighlight/ChartsAxisHighlightPath.d.ts +6 -0
  22. package/ChartsAxisHighlight/ChartsAxisHighlightPath.js +34 -0
  23. package/ChartsAxisHighlight/ChartsXAxisHighlight.d.ts +10 -0
  24. package/ChartsAxisHighlight/ChartsXAxisHighlight.js +53 -0
  25. package/ChartsAxisHighlight/ChartsYAxisHighlight.d.ts +10 -0
  26. package/ChartsAxisHighlight/ChartsYAxisHighlight.js +53 -0
  27. package/ChartsAxisHighlight/chartsAxisHighlightClasses.d.ts +7 -0
  28. package/ChartsAxisHighlight/chartsAxisHighlightClasses.js +6 -0
  29. package/ChartsAxisHighlight/index.d.ts +3 -0
  30. package/ChartsAxisHighlight/index.js +4 -1
  31. package/ChartsGrid/ChartsGrid.js +1 -1
  32. package/ChartsGrid/ChartsHorizontalGrid.d.ts +2 -2
  33. package/ChartsGrid/ChartsHorizontalGrid.js +3 -3
  34. package/ChartsGrid/ChartsVerticalGrid.d.ts +2 -2
  35. package/ChartsGrid/ChartsVerticalGrid.js +3 -3
  36. package/ChartsLegend/LegendPerItem.d.ts +2 -2
  37. package/ChartsLegend/chartsLegendClasses.js +2 -1
  38. package/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +9 -7
  39. package/ChartsSurface/ChartsSurface.d.ts +14 -15
  40. package/ChartsSurface/ChartsSurface.js +68 -35
  41. package/ChartsTooltip/ChartTooltip.types.d.ts +15 -0
  42. package/ChartsTooltip/ChartTooltip.types.js +1 -0
  43. package/ChartsTooltip/ChartsAxisTooltipContent.d.ts +7 -39
  44. package/ChartsTooltip/ChartsAxisTooltipContent.js +83 -72
  45. package/ChartsTooltip/ChartsItemTooltipContent.d.ts +5 -28
  46. package/ChartsTooltip/ChartsItemTooltipContent.js +54 -44
  47. package/ChartsTooltip/ChartsTooltip.d.ts +3 -69
  48. package/ChartsTooltip/ChartsTooltip.js +143 -145
  49. package/ChartsTooltip/ChartsTooltipContainer.d.ts +33 -0
  50. package/ChartsTooltip/ChartsTooltipContainer.js +280 -0
  51. package/ChartsTooltip/ChartsTooltipTable.js +1 -1
  52. package/ChartsTooltip/chartsTooltipClasses.d.ts +1 -0
  53. package/ChartsTooltip/chartsTooltipClasses.js +18 -2
  54. package/ChartsTooltip/index.d.ts +3 -3
  55. package/ChartsTooltip/index.js +2 -3
  56. package/ChartsTooltip/useAxisTooltip.d.ts +2 -2
  57. package/ChartsTooltip/useAxisTooltip.js +19 -19
  58. package/ChartsTooltip/useItemTooltip.d.ts +2 -3
  59. package/ChartsTooltip/useItemTooltip.js +5 -4
  60. package/ChartsTooltip/utils.d.ts +0 -3
  61. package/ChartsTooltip/utils.js +0 -8
  62. package/ChartsVoronoiHandler/ChartsVoronoiHandler.js +49 -36
  63. package/ChartsXAxis/ChartsXAxis.js +3 -17
  64. package/ChartsYAxis/ChartsYAxis.js +2 -17
  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 +42 -76
  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/AreaPlot.js +12 -2
  74. package/LineChart/CircleMarkElement.js +6 -5
  75. package/LineChart/LineChart.d.ts +4 -10
  76. package/LineChart/LineChart.js +3 -36
  77. package/LineChart/LineHighlightPlot.js +6 -5
  78. package/LineChart/LinePlot.js +12 -2
  79. package/LineChart/MarkElement.js +6 -5
  80. package/LineChart/useLineChartProps.d.ts +0 -2
  81. package/LineChart/useLineChartProps.js +2 -8
  82. package/PieChart/PieChart.d.ts +3 -9
  83. package/PieChart/PieChart.js +5 -41
  84. package/PieChart/PiePlot.js +2 -2
  85. package/PieChart/getPieCoordinates.d.ts +2 -2
  86. package/README.md +2 -2
  87. package/ScatterChart/Scatter.js +6 -5
  88. package/ScatterChart/ScatterChart.d.ts +4 -10
  89. package/ScatterChart/ScatterChart.js +5 -36
  90. package/ScatterChart/useScatterChartProps.d.ts +0 -2
  91. package/ScatterChart/useScatterChartProps.js +1 -9
  92. package/SparkLineChart/SparkLineChart.d.ts +3 -4
  93. package/SparkLineChart/SparkLineChart.js +4 -35
  94. package/context/CartesianProvider/defaultizeAxis.d.ts +9 -11
  95. package/context/ChartDataProvider/ChartDataProvider.d.ts +36 -19
  96. package/context/ChartDataProvider/ChartDataProvider.js +55 -48
  97. package/context/ChartDataProvider/useChartDataProviderProps.d.ts +25 -32
  98. package/context/ChartDataProvider/useChartDataProviderProps.js +22 -42
  99. package/context/ChartDataProvider/useDefaultizeAxis.d.ts +9 -11
  100. package/context/ChartProvider/ChartContext.d.ts +6 -0
  101. package/context/ChartProvider/ChartContext.js +8 -0
  102. package/context/ChartProvider/ChartProvider.d.ts +4 -0
  103. package/context/ChartProvider/ChartProvider.js +19 -0
  104. package/context/ChartProvider/ChartProvider.types.d.ts +24 -0
  105. package/context/ChartProvider/ChartProvider.types.js +1 -0
  106. package/context/ChartProvider/index.d.ts +3 -0
  107. package/context/ChartProvider/index.js +3 -0
  108. package/context/ChartProvider/useChartContext.d.ts +3 -0
  109. package/context/ChartProvider/useChartContext.js +11 -0
  110. package/context/{DrawingProvider.d.ts → DrawingAreaProvider/DrawingArea.types.d.ts} +3 -14
  111. package/context/DrawingAreaProvider/DrawingArea.types.js +1 -0
  112. package/context/DrawingAreaProvider/DrawingAreaContext.d.ts +3 -0
  113. package/context/DrawingAreaProvider/DrawingAreaContext.js +15 -0
  114. package/context/DrawingAreaProvider/DrawingAreaProvider.d.ts +3 -0
  115. package/{modern/context/DrawingProvider.js → context/DrawingAreaProvider/DrawingAreaProvider.js} +11 -41
  116. package/context/DrawingAreaProvider/index.d.ts +3 -0
  117. package/context/DrawingAreaProvider/index.js +3 -0
  118. package/context/InteractionSelectors.d.ts +382 -0
  119. package/context/InteractionSelectors.js +12 -0
  120. package/context/SizeProvider/Size.types.d.ts +30 -0
  121. package/context/SizeProvider/Size.types.js +1 -0
  122. package/context/SizeProvider/SizeContext.d.ts +4 -0
  123. package/context/SizeProvider/SizeContext.js +15 -0
  124. package/context/SizeProvider/SizeProvider.d.ts +11 -0
  125. package/context/SizeProvider/SizeProvider.js +26 -0
  126. package/context/SizeProvider/index.d.ts +4 -0
  127. package/context/SizeProvider/index.js +4 -0
  128. package/context/SizeProvider/useChartContainerDimensions.d.ts +9 -0
  129. package/{modern/ChartContainer → context/SizeProvider}/useChartContainerDimensions.js +16 -6
  130. package/context/SizeProvider/useSize.d.ts +5 -0
  131. package/context/SizeProvider/useSize.js +13 -0
  132. package/context/index.d.ts +2 -0
  133. package/context/index.js +2 -1
  134. package/hooks/useAxisEvents.js +32 -19
  135. package/hooks/useChartId.js +5 -6
  136. package/hooks/useDrawingArea.d.ts +2 -2
  137. package/hooks/useDrawingArea.js +2 -2
  138. package/hooks/useInteractionItemProps.js +22 -13
  139. package/hooks/useSvgRef.d.ts +1 -1
  140. package/hooks/useSvgRef.js +4 -8
  141. package/index.js +1 -1
  142. package/internals/components/ChartsAxesGradients/ChartsAxesGradients.d.ts +1 -1
  143. package/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +9 -7
  144. package/internals/computeAxisValue.d.ts +2 -2
  145. package/internals/defaultizeColor.d.ts +1 -1
  146. package/internals/index.d.ts +3 -4
  147. package/internals/index.js +3 -4
  148. package/internals/plugins/allPlugins.d.ts +1 -0
  149. package/internals/plugins/allPlugins.js +3 -0
  150. package/internals/plugins/corePlugins/corePlugins.d.ts +10 -0
  151. package/internals/plugins/corePlugins/corePlugins.js +7 -0
  152. package/internals/plugins/corePlugins/index.d.ts +2 -0
  153. package/internals/plugins/corePlugins/index.js +1 -0
  154. package/internals/plugins/corePlugins/useChartId/index.d.ts +2 -0
  155. package/internals/plugins/corePlugins/useChartId/index.js +1 -0
  156. package/internals/plugins/corePlugins/useChartId/useChartId.d.ts +3 -0
  157. package/internals/plugins/corePlugins/useChartId/useChartId.js +32 -0
  158. package/internals/plugins/corePlugins/useChartId/useChartId.selectors.d.ts +36 -0
  159. package/internals/plugins/corePlugins/useChartId/useChartId.selectors.js +9 -0
  160. package/internals/plugins/corePlugins/useChartId/useChartId.types.d.ts +20 -0
  161. package/internals/plugins/corePlugins/useChartId/useChartId.types.js +1 -0
  162. package/internals/plugins/corePlugins/useChartId/useChartId.utils.d.ts +1 -0
  163. package/internals/plugins/corePlugins/useChartId/useChartId.utils.js +5 -0
  164. package/internals/plugins/featurePlugins/useChartInteraction/index.d.ts +3 -0
  165. package/internals/plugins/featurePlugins/useChartInteraction/index.js +2 -0
  166. package/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.d.ts +3 -0
  167. package/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.js +73 -0
  168. package/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.d.ts +376 -0
  169. package/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.js +10 -0
  170. package/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.types.d.ts +57 -0
  171. package/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.types.js +1 -0
  172. package/internals/plugins/models/chart.d.ts +14 -0
  173. package/internals/plugins/models/chart.js +1 -0
  174. package/internals/plugins/models/helpers.d.ts +7 -0
  175. package/internals/plugins/models/helpers.js +1 -0
  176. package/internals/plugins/models/index.d.ts +3 -0
  177. package/internals/plugins/models/index.js +3 -0
  178. package/internals/plugins/models/plugin.d.ts +75 -0
  179. package/internals/plugins/models/plugin.js +1 -0
  180. package/internals/plugins/utils/ChartStore.d.ts +13 -0
  181. package/internals/plugins/utils/ChartStore.js +24 -0
  182. package/internals/plugins/utils/selectors.d.ts +9 -0
  183. package/internals/plugins/utils/selectors.js +37 -0
  184. package/internals/store/useCharts.d.ts +14 -0
  185. package/internals/store/useCharts.js +72 -0
  186. package/internals/store/useCharts.types.d.ts +5 -0
  187. package/internals/store/useCharts.types.js +1 -0
  188. package/internals/store/useSelector.d.ts +4 -0
  189. package/internals/store/useSelector.js +6 -0
  190. package/internals/store/useStore.d.ts +3 -0
  191. package/internals/store/useStore.js +17 -0
  192. package/models/axis.d.ts +1 -13
  193. package/modern/BarChart/AnimatedBarElement.js +21 -0
  194. package/modern/BarChart/BarChart.js +3 -35
  195. package/modern/BarChart/BarElement.js +10 -20
  196. package/modern/BarChart/BarPlot.js +12 -2
  197. package/modern/BarChart/useBarChartProps.js +2 -8
  198. package/modern/ChartContainer/ChartContainer.js +31 -25
  199. package/modern/ChartContainer/useChartContainerProps.js +12 -27
  200. package/modern/ChartsAxis/axisClasses.js +2 -1
  201. package/modern/ChartsAxisHighlight/ChartsAxisHighlight.js +10 -96
  202. package/modern/ChartsAxisHighlight/ChartsAxisHighlight.types.js +1 -0
  203. package/modern/ChartsAxisHighlight/ChartsAxisHighlightPath.js +34 -0
  204. package/modern/ChartsAxisHighlight/ChartsXAxisHighlight.js +53 -0
  205. package/modern/ChartsAxisHighlight/ChartsYAxisHighlight.js +53 -0
  206. package/modern/ChartsAxisHighlight/chartsAxisHighlightClasses.js +6 -0
  207. package/modern/ChartsAxisHighlight/index.js +4 -1
  208. package/modern/ChartsGrid/ChartsGrid.js +1 -1
  209. package/modern/ChartsGrid/ChartsHorizontalGrid.js +3 -3
  210. package/modern/ChartsGrid/ChartsVerticalGrid.js +3 -3
  211. package/modern/ChartsLegend/chartsLegendClasses.js +2 -1
  212. package/modern/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +9 -7
  213. package/modern/ChartsSurface/ChartsSurface.js +68 -35
  214. package/modern/ChartsTooltip/ChartTooltip.types.js +1 -0
  215. package/modern/ChartsTooltip/ChartsAxisTooltipContent.js +83 -72
  216. package/modern/ChartsTooltip/ChartsItemTooltipContent.js +54 -44
  217. package/modern/ChartsTooltip/ChartsTooltip.js +143 -145
  218. package/modern/ChartsTooltip/ChartsTooltipContainer.js +280 -0
  219. package/modern/ChartsTooltip/ChartsTooltipTable.js +1 -1
  220. package/modern/ChartsTooltip/chartsTooltipClasses.js +18 -2
  221. package/modern/ChartsTooltip/index.js +2 -3
  222. package/modern/ChartsTooltip/useAxisTooltip.js +19 -19
  223. package/modern/ChartsTooltip/useItemTooltip.js +5 -4
  224. package/modern/ChartsTooltip/utils.js +0 -8
  225. package/modern/ChartsVoronoiHandler/ChartsVoronoiHandler.js +49 -36
  226. package/modern/ChartsXAxis/ChartsXAxis.js +3 -17
  227. package/modern/ChartsYAxis/ChartsYAxis.js +2 -17
  228. package/modern/Gauge/Gauge.js +0 -6
  229. package/modern/Gauge/GaugeContainer.js +42 -76
  230. package/modern/LineChart/AnimatedArea.js +9 -18
  231. package/modern/LineChart/AnimatedLine.js +9 -20
  232. package/modern/LineChart/AreaPlot.js +12 -2
  233. package/modern/LineChart/CircleMarkElement.js +6 -5
  234. package/modern/LineChart/LineChart.js +3 -36
  235. package/modern/LineChart/LineHighlightPlot.js +6 -5
  236. package/modern/LineChart/LinePlot.js +12 -2
  237. package/modern/LineChart/MarkElement.js +6 -5
  238. package/modern/LineChart/useLineChartProps.js +2 -8
  239. package/modern/PieChart/PieChart.js +5 -41
  240. package/modern/PieChart/PiePlot.js +2 -2
  241. package/modern/ScatterChart/Scatter.js +6 -5
  242. package/modern/ScatterChart/ScatterChart.js +5 -36
  243. package/modern/ScatterChart/useScatterChartProps.js +1 -9
  244. package/modern/SparkLineChart/SparkLineChart.js +4 -35
  245. package/modern/context/ChartDataProvider/ChartDataProvider.js +55 -48
  246. package/modern/context/ChartDataProvider/useChartDataProviderProps.js +22 -42
  247. package/modern/context/ChartProvider/ChartContext.js +8 -0
  248. package/modern/context/ChartProvider/ChartProvider.js +19 -0
  249. package/modern/context/ChartProvider/ChartProvider.types.js +1 -0
  250. package/modern/context/ChartProvider/index.js +3 -0
  251. package/modern/context/ChartProvider/useChartContext.js +11 -0
  252. package/modern/context/DrawingAreaProvider/DrawingArea.types.js +1 -0
  253. package/modern/context/DrawingAreaProvider/DrawingAreaContext.js +15 -0
  254. package/{context/DrawingProvider.js → modern/context/DrawingAreaProvider/DrawingAreaProvider.js} +11 -41
  255. package/modern/context/DrawingAreaProvider/index.js +3 -0
  256. package/modern/context/InteractionSelectors.js +12 -0
  257. package/modern/context/SizeProvider/Size.types.js +1 -0
  258. package/modern/context/SizeProvider/SizeContext.js +15 -0
  259. package/modern/context/SizeProvider/SizeProvider.js +26 -0
  260. package/modern/context/SizeProvider/index.js +4 -0
  261. package/{ChartContainer → modern/context/SizeProvider}/useChartContainerDimensions.js +16 -6
  262. package/modern/context/SizeProvider/useSize.js +13 -0
  263. package/modern/context/index.js +2 -1
  264. package/modern/hooks/useAxisEvents.js +32 -19
  265. package/modern/hooks/useChartId.js +5 -6
  266. package/modern/hooks/useDrawingArea.js +2 -2
  267. package/modern/hooks/useInteractionItemProps.js +22 -13
  268. package/modern/hooks/useSvgRef.js +4 -8
  269. package/modern/index.js +1 -1
  270. package/modern/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +9 -7
  271. package/modern/internals/index.js +3 -4
  272. package/modern/internals/plugins/allPlugins.js +3 -0
  273. package/modern/internals/plugins/corePlugins/corePlugins.js +7 -0
  274. package/modern/internals/plugins/corePlugins/index.js +1 -0
  275. package/modern/internals/plugins/corePlugins/useChartId/index.js +1 -0
  276. package/modern/internals/plugins/corePlugins/useChartId/useChartId.js +32 -0
  277. package/modern/internals/plugins/corePlugins/useChartId/useChartId.selectors.js +9 -0
  278. package/modern/internals/plugins/corePlugins/useChartId/useChartId.types.js +1 -0
  279. package/modern/internals/plugins/corePlugins/useChartId/useChartId.utils.js +5 -0
  280. package/modern/internals/plugins/featurePlugins/useChartInteraction/index.js +2 -0
  281. package/modern/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.js +73 -0
  282. package/modern/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.js +10 -0
  283. package/modern/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.types.js +1 -0
  284. package/modern/internals/plugins/models/chart.js +1 -0
  285. package/modern/internals/plugins/models/helpers.js +1 -0
  286. package/modern/internals/plugins/models/index.js +3 -0
  287. package/modern/internals/plugins/models/plugin.js +1 -0
  288. package/modern/internals/plugins/utils/ChartStore.js +24 -0
  289. package/modern/internals/plugins/utils/selectors.js +37 -0
  290. package/modern/internals/store/useCharts.js +72 -0
  291. package/modern/internals/store/useCharts.types.js +1 -0
  292. package/modern/internals/store/useSelector.js +6 -0
  293. package/modern/internals/store/useStore.js +17 -0
  294. package/node/BarChart/AnimatedBarElement.js +28 -0
  295. package/node/BarChart/BarChart.js +3 -35
  296. package/node/BarChart/BarElement.js +11 -21
  297. package/node/BarChart/BarPlot.js +11 -1
  298. package/node/BarChart/useBarChartProps.js +2 -8
  299. package/node/ChartContainer/ChartContainer.js +31 -25
  300. package/node/ChartContainer/useChartContainerProps.js +12 -27
  301. package/node/ChartsAxis/axisClasses.js +5 -3
  302. package/node/ChartsAxisHighlight/ChartsAxisHighlight.js +12 -100
  303. package/node/ChartsAxisHighlight/ChartsAxisHighlight.types.js +5 -0
  304. package/node/ChartsAxisHighlight/ChartsAxisHighlightPath.js +40 -0
  305. package/node/ChartsAxisHighlight/ChartsXAxisHighlight.js +57 -0
  306. package/node/ChartsAxisHighlight/ChartsYAxisHighlight.js +57 -0
  307. package/node/ChartsAxisHighlight/chartsAxisHighlightClasses.js +14 -0
  308. package/node/ChartsAxisHighlight/index.js +33 -0
  309. package/node/ChartsGrid/ChartsGrid.js +2 -2
  310. package/node/ChartsGrid/ChartsHorizontalGrid.js +4 -4
  311. package/node/ChartsGrid/ChartsVerticalGrid.js +4 -4
  312. package/node/ChartsLegend/chartsLegendClasses.js +5 -3
  313. package/node/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +9 -7
  314. package/node/ChartsSurface/ChartsSurface.js +68 -35
  315. package/node/ChartsTooltip/ChartTooltip.types.js +5 -0
  316. package/node/ChartsTooltip/ChartsAxisTooltipContent.js +83 -73
  317. package/node/ChartsTooltip/ChartsItemTooltipContent.js +54 -45
  318. package/node/ChartsTooltip/ChartsTooltip.js +142 -144
  319. package/node/ChartsTooltip/ChartsTooltipContainer.js +286 -0
  320. package/node/ChartsTooltip/ChartsTooltipTable.js +2 -2
  321. package/node/ChartsTooltip/chartsTooltipClasses.js +22 -3
  322. package/node/ChartsTooltip/index.js +19 -28
  323. package/node/ChartsTooltip/useAxisTooltip.js +19 -19
  324. package/node/ChartsTooltip/useItemTooltip.js +5 -4
  325. package/node/ChartsTooltip/utils.js +0 -9
  326. package/node/ChartsVoronoiHandler/ChartsVoronoiHandler.js +50 -37
  327. package/node/ChartsXAxis/ChartsXAxis.js +3 -17
  328. package/node/ChartsYAxis/ChartsYAxis.js +2 -17
  329. package/node/Gauge/Gauge.js +0 -6
  330. package/node/Gauge/GaugeContainer.js +42 -76
  331. package/node/LineChart/AnimatedArea.js +9 -19
  332. package/node/LineChart/AnimatedLine.js +9 -21
  333. package/node/LineChart/AreaPlot.js +11 -1
  334. package/node/LineChart/CircleMarkElement.js +6 -5
  335. package/node/LineChart/LineChart.js +3 -36
  336. package/node/LineChart/LineHighlightPlot.js +6 -5
  337. package/node/LineChart/LinePlot.js +11 -1
  338. package/node/LineChart/MarkElement.js +6 -5
  339. package/node/LineChart/useLineChartProps.js +2 -8
  340. package/node/PieChart/PieChart.js +5 -41
  341. package/node/PieChart/PiePlot.js +2 -2
  342. package/node/ScatterChart/Scatter.js +6 -5
  343. package/node/ScatterChart/ScatterChart.js +5 -36
  344. package/node/ScatterChart/useScatterChartProps.js +1 -9
  345. package/node/SparkLineChart/SparkLineChart.js +4 -35
  346. package/node/context/ChartDataProvider/ChartDataProvider.js +55 -48
  347. package/node/context/ChartDataProvider/useChartDataProviderProps.js +22 -44
  348. package/node/context/ChartProvider/ChartContext.js +15 -0
  349. package/node/context/ChartProvider/ChartProvider.js +24 -0
  350. package/node/context/ChartProvider/ChartProvider.types.js +5 -0
  351. package/node/context/ChartProvider/index.js +38 -0
  352. package/node/context/ChartProvider/useChartContext.js +18 -0
  353. package/node/context/DrawingAreaProvider/DrawingArea.types.js +5 -0
  354. package/node/context/DrawingAreaProvider/DrawingAreaContext.js +21 -0
  355. package/node/context/{DrawingProvider.js → DrawingAreaProvider/DrawingAreaProvider.js} +12 -44
  356. package/node/context/DrawingAreaProvider/index.js +38 -0
  357. package/node/context/InteractionSelectors.js +18 -0
  358. package/node/context/SizeProvider/Size.types.js +5 -0
  359. package/node/context/SizeProvider/SizeContext.js +22 -0
  360. package/node/context/SizeProvider/SizeProvider.js +29 -0
  361. package/node/context/SizeProvider/index.js +49 -0
  362. package/node/{ChartContainer → context/SizeProvider}/useChartContainerDimensions.js +16 -6
  363. package/node/context/SizeProvider/useSize.js +20 -0
  364. package/node/context/index.js +10 -2
  365. package/node/hooks/useAxisEvents.js +33 -19
  366. package/node/hooks/useChartId.js +5 -7
  367. package/node/hooks/useDrawingArea.js +2 -2
  368. package/node/hooks/useInteractionItemProps.js +23 -14
  369. package/node/hooks/useSvgRef.js +4 -9
  370. package/node/index.js +1 -1
  371. package/node/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +8 -6
  372. package/node/internals/index.js +28 -40
  373. package/node/internals/plugins/allPlugins.js +10 -0
  374. package/node/internals/plugins/corePlugins/corePlugins.js +12 -0
  375. package/node/internals/plugins/corePlugins/index.js +12 -0
  376. package/node/internals/plugins/corePlugins/useChartId/index.js +12 -0
  377. package/node/internals/plugins/corePlugins/useChartId/useChartId.js +41 -0
  378. package/node/internals/plugins/corePlugins/useChartId/useChartId.selectors.js +15 -0
  379. package/node/internals/plugins/corePlugins/useChartId/useChartId.types.js +5 -0
  380. package/node/internals/plugins/corePlugins/useChartId/useChartId.utils.js +12 -0
  381. package/node/internals/plugins/featurePlugins/useChartInteraction/index.js +27 -0
  382. package/node/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.js +81 -0
  383. package/node/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.js +16 -0
  384. package/node/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.types.js +5 -0
  385. package/node/internals/plugins/models/chart.js +5 -0
  386. package/node/internals/plugins/models/helpers.js +5 -0
  387. package/node/internals/plugins/models/index.js +38 -0
  388. package/node/internals/plugins/models/plugin.js +5 -0
  389. package/node/internals/plugins/utils/ChartStore.js +31 -0
  390. package/node/internals/plugins/utils/selectors.js +44 -0
  391. package/node/internals/store/useCharts.js +80 -0
  392. package/node/internals/store/useCharts.types.js +5 -0
  393. package/node/internals/store/useSelector.js +13 -0
  394. package/node/internals/store/useStore.js +23 -0
  395. package/package.json +7 -5
  396. package/themeAugmentation/props.d.ts +1 -2
  397. package/ChartContainer/ResizableContainer.d.ts +0 -9
  398. package/ChartContainer/ResizableContainer.js +0 -26
  399. package/ChartContainer/useChartContainerDimensions.d.ts +0 -6
  400. package/ChartsTooltip/DefaultChartsAxisTooltipContent.d.ts +0 -7
  401. package/ChartsTooltip/DefaultChartsAxisTooltipContent.js +0 -123
  402. package/ChartsTooltip/DefaultChartsItemTooltipContent.d.ts +0 -8
  403. package/ChartsTooltip/DefaultChartsItemTooltipContent.js +0 -92
  404. package/context/InteractionProvider.d.ts +0 -50
  405. package/context/InteractionProvider.js +0 -78
  406. package/modern/ChartContainer/ResizableContainer.js +0 -26
  407. package/modern/ChartsTooltip/DefaultChartsAxisTooltipContent.js +0 -123
  408. package/modern/ChartsTooltip/DefaultChartsItemTooltipContent.js +0 -92
  409. package/modern/context/InteractionProvider.js +0 -78
  410. package/node/ChartContainer/ResizableContainer.js +0 -32
  411. package/node/ChartsTooltip/DefaultChartsAxisTooltipContent.js +0 -129
  412. package/node/ChartsTooltip/DefaultChartsItemTooltipContent.js +0 -98
  413. package/node/context/InteractionProvider.js +0 -85
  414. /package/ChartsGrid/{styledCommonents.d.ts → styledComponents.d.ts} +0 -0
  415. /package/ChartsGrid/{styledCommonents.js → styledComponents.js} +0 -0
  416. /package/modern/ChartsGrid/{styledCommonents.js → styledComponents.js} +0 -0
  417. /package/node/ChartsGrid/{styledCommonents.js → styledComponents.js} +0 -0
@@ -0,0 +1,14 @@
1
+ import * as React from 'react';
2
+ import { ChartStore } from '../plugins/utils/ChartStore';
3
+ import { ChartAnyPluginSignature, ChartInstance, ChartPublicAPI, ConvertSignaturesIntoPlugins } from '../plugins/models';
4
+ import { UseChartBaseProps } from './useCharts.types';
5
+ import { UseChartInteractionState } from '../plugins/featurePlugins/useChartInteraction/useChartInteraction.types';
6
+ export declare function useChartApiInitialization<T>(inputApiRef: React.MutableRefObject<T | undefined> | undefined): T;
7
+ export declare function useCharts<TSignatures extends readonly ChartAnyPluginSignature[], TProps extends Partial<UseChartBaseProps<TSignatures>>>(inPlugins: ConvertSignaturesIntoPlugins<TSignatures>, props: TProps): {
8
+ contextValue: {
9
+ store: ChartStore<readonly [import("../plugins/corePlugins/useChartId").UseChartIdSignature, ...TSignatures]> & UseChartInteractionState;
10
+ publicAPI: ChartPublicAPI<TSignatures>;
11
+ instance: ChartInstance<TSignatures>;
12
+ svgRef: React.RefObject<SVGSVGElement>;
13
+ };
14
+ };
@@ -0,0 +1,72 @@
1
+ import * as React from 'react';
2
+ import { ChartStore } from "../plugins/utils/ChartStore.js";
3
+ import { CHART_CORE_PLUGINS } from "../plugins/corePlugins/index.js";
4
+ export function useChartApiInitialization(inputApiRef) {
5
+ const fallbackPublicApiRef = React.useRef({});
6
+ if (inputApiRef) {
7
+ if (inputApiRef.current == null) {
8
+ // eslint-disable-next-line react-compiler/react-compiler
9
+ inputApiRef.current = {};
10
+ }
11
+ return inputApiRef.current;
12
+ }
13
+ return fallbackPublicApiRef.current;
14
+ }
15
+ let globalId = 0;
16
+ export function useCharts(inPlugins, props) {
17
+ const plugins = React.useMemo(() => [...CHART_CORE_PLUGINS, ...inPlugins], [inPlugins]);
18
+ const pluginParams = {}; // To generate when plugins use params.
19
+ const instanceRef = React.useRef({});
20
+ const instance = instanceRef.current;
21
+ const publicAPI = useChartApiInitialization(props.apiRef);
22
+ const innerSvgRef = React.useRef(null);
23
+ const storeRef = React.useRef(null);
24
+ if (storeRef.current == null) {
25
+ // eslint-disable-next-line react-compiler/react-compiler
26
+ globalId += 1;
27
+ const initialState = {
28
+ // TODO remove when the interaction moves to plugin
29
+ interaction: {
30
+ item: null,
31
+ axis: {
32
+ x: null,
33
+ y: null
34
+ }
35
+ },
36
+ cacheKey: {
37
+ id: globalId
38
+ }
39
+ };
40
+ plugins.forEach(plugin => {
41
+ if (plugin.getInitialState) {
42
+ Object.assign(initialState, plugin.getInitialState({}));
43
+ }
44
+ });
45
+ storeRef.current = new ChartStore(initialState);
46
+ }
47
+ const runPlugin = plugin => {
48
+ const pluginResponse = plugin({
49
+ instance,
50
+ params: pluginParams,
51
+ plugins: plugins,
52
+ store: storeRef.current,
53
+ svgRef: innerSvgRef
54
+ });
55
+ if (pluginResponse.publicAPI) {
56
+ Object.assign(publicAPI, pluginResponse.publicAPI);
57
+ }
58
+ if (pluginResponse.instance) {
59
+ Object.assign(instance, pluginResponse.instance);
60
+ }
61
+ };
62
+ plugins.forEach(runPlugin);
63
+ const contextValue = React.useMemo(() => ({
64
+ store: storeRef.current,
65
+ publicAPI,
66
+ instance,
67
+ svgRef: innerSvgRef
68
+ }), [instance, publicAPI]);
69
+ return {
70
+ contextValue
71
+ };
72
+ }
@@ -0,0 +1,5 @@
1
+ import * as React from 'react';
2
+ import { ChartAnyPluginSignature, ChartPublicAPI } from '../plugins/models';
3
+ export interface UseChartBaseProps<TSignatures extends readonly ChartAnyPluginSignature[]> {
4
+ apiRef: React.MutableRefObject<ChartPublicAPI<TSignatures> | undefined> | undefined;
5
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ import { ChartAnyPluginSignature, ChartState } from '../plugins/models';
2
+ import { ChartsSelector } from '../plugins/utils/selectors';
3
+ import { ChartStore } from '../plugins/utils/ChartStore';
4
+ export declare const useSelector: <TSignatures extends readonly ChartAnyPluginSignature[], TArgs, TValue>(store: ChartStore<TSignatures>, selector: ChartsSelector<ChartState<TSignatures>, TArgs, TValue>, args?: TArgs, equals?: (a: TValue, b: TValue) => boolean) => TValue;
@@ -0,0 +1,6 @@
1
+ import { useSyncExternalStoreWithSelector } from 'use-sync-external-store/with-selector';
2
+ const defaultCompare = Object.is;
3
+ export const useSelector = (store, selector, args = undefined, equals = defaultCompare) => {
4
+ const selectorWithArgs = state => selector(state, args);
5
+ return useSyncExternalStoreWithSelector(store.subscribe, store.getSnapshot, store.getSnapshot, selectorWithArgs, equals);
6
+ };
@@ -0,0 +1,3 @@
1
+ import { ChartStore } from '../plugins/utils/ChartStore';
2
+ import { UseChartInteractionSignature } from '../plugins/featurePlugins/useChartInteraction/useChartInteraction.types';
3
+ export declare function useStore(skipError?: boolean): ChartStore<[UseChartInteractionSignature]>;
@@ -0,0 +1,17 @@
1
+ import { useChartContext } from "../../context/ChartProvider/index.js";
2
+ // This hook should be removed because user and us should not interact with the store directly, but with public/private APIs
3
+ export function useStore(skipError) {
4
+ const context = useChartContext();
5
+ if (skipError) {
6
+ // TODO: Remove once store is used by all charts.
7
+ // This line is only for `useAxisEvents` which is in the surface of the Gauge.
8
+ // But the Gauge don't have store yet because it does not need the interaction provider.
9
+ // Will be fixed when every thing move to the store since every component will have access to it.
10
+ // @ts-ignore
11
+ return context?.store;
12
+ }
13
+ if (!context) {
14
+ throw new Error(['MUI X: Could not find the charts context.', 'It looks like you rendered your component outside of a ChartsContainer parent component.'].join('\n'));
15
+ }
16
+ return context.store;
17
+ }
package/models/axis.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { ScaleBand, ScaleLogarithmic, ScalePower, ScaleTime, ScaleLinear, ScalePoint, ScaleOrdinal, ScaleSequential, ScaleThreshold } from '@mui/x-charts-vendor/d3-scale';
2
- import { SxProps } from '@mui/system';
2
+ import { SxProps } from '@mui/system/styleFunctionSx';
3
3
  import { ChartsAxisClasses } from '../ChartsAxis/axisClasses';
4
4
  import type { TickParams } from '../hooks/useTicks';
5
5
  import { ChartsTextProps } from '../ChartsText';
@@ -58,12 +58,6 @@ export interface ChartsAxisProps extends TickParams {
58
58
  * @default 'currentColor'
59
59
  */
60
60
  fill?: string;
61
- /**
62
- * The font size of the axis ticks text.
63
- * @default 12
64
- * @deprecated Consider using `tickLabelStyle.fontSize` instead.
65
- */
66
- tickFontSize?: number;
67
61
  /**
68
62
  * The style applied to ticks text.
69
63
  */
@@ -83,12 +77,6 @@ export interface ChartsAxisProps extends TickParams {
83
77
  * The label of the axis.
84
78
  */
85
79
  label?: string;
86
- /**
87
- * The font size of the axis label.
88
- * @default 14
89
- * @deprecated Consider using `labelStyle.fontSize` instead.
90
- */
91
- labelFontSize?: number;
92
80
  /**
93
81
  * The stroke color of the axis line.
94
82
  * @default 'currentColor'
@@ -0,0 +1,21 @@
1
+ 'use client';
2
+
3
+ import _extends from "@babel/runtime/helpers/esm/extends";
4
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
5
+ const _excluded = ["ownerState"];
6
+ import * as React from 'react';
7
+ import { animated } from '@react-spring/web';
8
+ import { jsx as _jsx } from "react/jsx-runtime";
9
+ /**
10
+ * @ignore - internal component.
11
+ */
12
+ export function AnimatedBarElement(props) {
13
+ const {
14
+ ownerState
15
+ } = props,
16
+ other = _objectWithoutPropertiesLoose(props, _excluded);
17
+ return /*#__PURE__*/_jsx(animated.rect, _extends({}, other, {
18
+ filter: ownerState.isHighlighted ? 'brightness(120%)' : undefined,
19
+ opacity: ownerState.isFaded ? 0.3 : 1
20
+ }));
21
+ }
@@ -43,15 +43,15 @@ const BarChart = /*#__PURE__*/React.forwardRef(function BarChart(inProps, ref) {
43
43
  chartsAxisProps,
44
44
  axisHighlightProps,
45
45
  legendProps,
46
- tooltipProps,
47
46
  children
48
47
  } = useBarChartProps(props);
48
+ const Tooltip = props.slots?.tooltip ?? ChartsTooltip;
49
49
  return /*#__PURE__*/_jsxs(ChartContainer, _extends({
50
50
  ref: ref
51
51
  }, chartContainerProps, {
52
52
  children: [props.onAxisClick && /*#__PURE__*/_jsx(ChartsOnAxisClickHandler, _extends({}, axisClickHandlerProps)), /*#__PURE__*/_jsx(ChartsGrid, _extends({}, gridProps)), /*#__PURE__*/_jsxs("g", _extends({}, clipPathGroupProps, {
53
53
  children: [/*#__PURE__*/_jsx(BarPlot, _extends({}, barPlotProps)), /*#__PURE__*/_jsx(ChartsOverlay, _extends({}, overlayProps)), /*#__PURE__*/_jsx(ChartsAxisHighlight, _extends({}, axisHighlightProps))]
54
- })), /*#__PURE__*/_jsx(ChartsAxis, _extends({}, chartsAxisProps)), !props.hideLegend && /*#__PURE__*/_jsx(ChartsLegend, _extends({}, legendProps)), !props.loading && /*#__PURE__*/_jsx(ChartsTooltip, _extends({}, tooltipProps)), /*#__PURE__*/_jsx(ChartsClipPath, _extends({}, clipPathProps)), children]
54
+ })), /*#__PURE__*/_jsx(ChartsAxis, _extends({}, chartsAxisProps)), !props.hideLegend && /*#__PURE__*/_jsx(ChartsLegend, _extends({}, legendProps)), !props.loading && /*#__PURE__*/_jsx(Tooltip, _extends({}, props.slotProps?.tooltip)), /*#__PURE__*/_jsx(ChartsClipPath, _extends({}, clipPathProps)), children]
55
55
  }));
56
56
  });
57
57
  process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
@@ -63,7 +63,7 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
63
63
  * The configuration of axes highlight.
64
64
  * Default is set to 'band' in the bar direction.
65
65
  * Depends on `layout` prop.
66
- * @see See {@link https://mui.com/x/react-charts/highlighting highlighting docs} for more details.
66
+ * @see See {@link https://mui.com/x/react-charts/highlighting/ highlighting docs} for more details.
67
67
  */
68
68
  axisHighlight: PropTypes.shape({
69
69
  x: PropTypes.oneOf(['band', 'line', 'none']),
@@ -174,16 +174,6 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
174
174
  * @param {BarItemIdentifier} barItemIdentifier The bar item identifier.
175
175
  */
176
176
  onItemClick: PropTypes.func,
177
- /**
178
- * The chart will try to wait for the parent container to resolve its size
179
- * before it renders for the first time.
180
- *
181
- * This can be useful in some scenarios where the chart appear to grow after
182
- * the first render, like when used inside a grid.
183
- *
184
- * @default false
185
- */
186
- resolveSizeBeforeRender: PropTypes.bool,
187
177
  /**
188
178
  * Indicate which axis to display the right of the charts.
189
179
  * Can be a string (the id of the axis) or an object `ChartsYAxisProps`.
@@ -212,30 +202,12 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
212
202
  slots: PropTypes.object,
213
203
  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
214
204
  title: PropTypes.string,
215
- /**
216
- * The configuration of the tooltip.
217
- * @see See {@link https://mui.com/x/react-charts/tooltip/ tooltip docs} for more details.
218
- */
219
- tooltip: PropTypes.shape({
220
- axisContent: PropTypes.elementType,
221
- classes: PropTypes.object,
222
- itemContent: PropTypes.elementType,
223
- slotProps: PropTypes.object,
224
- slots: PropTypes.object,
225
- trigger: PropTypes.oneOf(['axis', 'item', 'none'])
226
- }),
227
205
  /**
228
206
  * Indicate which axis to display the top of the charts.
229
207
  * Can be a string (the id of the axis) or an object `ChartsXAxisProps`.
230
208
  * @default null
231
209
  */
232
210
  topAxis: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),
233
- viewBox: PropTypes.shape({
234
- height: PropTypes.number,
235
- width: PropTypes.number,
236
- x: PropTypes.number,
237
- y: PropTypes.number
238
- }),
239
211
  /**
240
212
  * The width of the chart in px. If not defined, it takes the width of the parent element.
241
213
  */
@@ -271,7 +243,6 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
271
243
  hideTooltip: PropTypes.bool,
272
244
  id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
273
245
  label: PropTypes.string,
274
- labelFontSize: PropTypes.number,
275
246
  labelStyle: PropTypes.object,
276
247
  max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
277
248
  min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
@@ -282,7 +253,6 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
282
253
  slots: PropTypes.object,
283
254
  stroke: PropTypes.string,
284
255
  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
285
- tickFontSize: PropTypes.number,
286
256
  tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
287
257
  tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
288
258
  tickLabelPlacement: PropTypes.oneOf(['middle', 'tick']),
@@ -325,7 +295,6 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
325
295
  hideTooltip: PropTypes.bool,
326
296
  id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
327
297
  label: PropTypes.string,
328
- labelFontSize: PropTypes.number,
329
298
  labelStyle: PropTypes.object,
330
299
  max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
331
300
  min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
@@ -336,7 +305,6 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
336
305
  slots: PropTypes.object,
337
306
  stroke: PropTypes.string,
338
307
  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
339
- tickFontSize: PropTypes.number,
340
308
  tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
341
309
  tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
342
310
  tickLabelPlacement: PropTypes.oneOf(['middle', 'tick']),
@@ -8,39 +8,27 @@ import PropTypes from 'prop-types';
8
8
  import composeClasses from '@mui/utils/composeClasses';
9
9
  import useSlotProps from '@mui/utils/useSlotProps';
10
10
  import generateUtilityClass from '@mui/utils/generateUtilityClass';
11
- import { styled } from '@mui/material/styles';
12
11
  import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
13
- import { color as d3Color } from '@mui/x-charts-vendor/d3-color';
14
- import { animated } from '@react-spring/web';
15
12
  import { useInteractionItemProps } from "../hooks/useInteractionItemProps.js";
16
13
  import { useItemHighlighted } from "../context/index.js";
14
+ import { AnimatedBarElement } from "./AnimatedBarElement.js";
17
15
  import { jsx as _jsx } from "react/jsx-runtime";
18
16
  export function getBarElementUtilityClass(slot) {
19
17
  return generateUtilityClass('MuiBarElement', slot);
20
18
  }
21
- export const barElementClasses = generateUtilityClasses('MuiBarElement', ['root']);
19
+ export const barElementClasses = generateUtilityClasses('MuiBarElement', ['root', 'highlighted', 'faded']);
22
20
  const useUtilityClasses = ownerState => {
23
21
  const {
24
22
  classes,
25
- id
23
+ id,
24
+ isHighlighted,
25
+ isFaded
26
26
  } = ownerState;
27
27
  const slots = {
28
- root: ['root', `series-${id}`]
28
+ root: ['root', `series-${id}`, isHighlighted && 'highlighted', isFaded && 'faded']
29
29
  };
30
30
  return composeClasses(slots, getBarElementUtilityClass, classes);
31
31
  };
32
- export const BarElementPath = styled(animated.rect, {
33
- name: 'MuiBarElement',
34
- slot: 'Root',
35
- overridesResolver: (_, styles) => styles.root
36
- })(({
37
- ownerState
38
- }) => ({
39
- stroke: 'none',
40
- fill: ownerState.isHighlighted ? d3Color(ownerState.color).brighter(0.5).formatHex() : ownerState.color,
41
- transition: 'opacity 0.2s ease-in, fill 0.2s ease-in',
42
- opacity: ownerState.isFaded && 0.3 || 1
43
- }));
44
32
  function BarElement(props) {
45
33
  const {
46
34
  id,
@@ -70,7 +58,7 @@ function BarElement(props) {
70
58
  isHighlighted
71
59
  };
72
60
  const classes = useUtilityClasses(ownerState);
73
- const Bar = slots?.bar ?? BarElementPath;
61
+ const Bar = slots?.bar ?? AnimatedBarElement;
74
62
  const barProps = useSlotProps({
75
63
  elementType: Bar,
76
64
  externalSlotProps: slotProps?.bar,
@@ -82,7 +70,9 @@ function BarElement(props) {
82
70
  }), {
83
71
  style,
84
72
  onClick,
85
- cursor: onClick ? 'pointer' : 'unset'
73
+ cursor: onClick ? 'pointer' : 'unset',
74
+ stroke: 'none',
75
+ fill: color
86
76
  }),
87
77
  className: classes.root,
88
78
  ownerState
@@ -6,8 +6,9 @@ const _excluded = ["skipAnimation", "onItemClick", "borderRadius", "barLabel"];
6
6
  import * as React from 'react';
7
7
  import PropTypes from 'prop-types';
8
8
  import { useTransition } from '@react-spring/web';
9
+ import { styled } from '@mui/material/styles';
9
10
  import { useCartesianContext } from "../context/CartesianProvider/index.js";
10
- import { BarElement } from "./BarElement.js";
11
+ import { BarElement, barElementClasses } from "./BarElement.js";
11
12
  import getColor from "./getColor.js";
12
13
  import { useChartId, useDrawingArea } from "../hooks/index.js";
13
14
  import { BarClipPath } from "./BarClipPath.js";
@@ -179,6 +180,15 @@ const enterStyle = ({
179
180
  height,
180
181
  width
181
182
  });
183
+ const BarPlotRoot = styled('g', {
184
+ name: 'MuiBarPlot',
185
+ slot: 'Root',
186
+ overridesResolver: (_, styles) => styles.root
187
+ })({
188
+ [`& .${barElementClasses.root}`]: {
189
+ transition: 'opacity 0.2s ease-in, fill 0.2s ease-in'
190
+ }
191
+ });
182
192
 
183
193
  /**
184
194
  * Demos:
@@ -221,7 +231,7 @@ function BarPlot(props) {
221
231
  update: enterStyle,
222
232
  immediate: skipAnimation
223
233
  });
224
- return /*#__PURE__*/_jsxs(React.Fragment, {
234
+ return /*#__PURE__*/_jsxs(BarPlotRoot, {
225
235
  children: [!withoutBorderRadius && maskTransition((style, {
226
236
  id,
227
237
  hasPositive,
@@ -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 = ["xAxis", "yAxis", "series", "width", "height", "margin", "colors", "dataset", "sx", "tooltip", "onAxisClick", "axisHighlight", "grid", "topAxis", "leftAxis", "rightAxis", "bottomAxis", "children", "slots", "slotProps", "skipAnimation", "loading", "layout", "onItemClick", "highlightedItem", "onHighlightChange", "borderRadius", "barLabel", "className", "hideLegend"];
5
+ const _excluded = ["xAxis", "yAxis", "series", "width", "height", "margin", "colors", "dataset", "sx", "onAxisClick", "axisHighlight", "grid", "topAxis", "leftAxis", "rightAxis", "bottomAxis", "children", "slots", "slotProps", "skipAnimation", "loading", "layout", "onItemClick", "highlightedItem", "onHighlightChange", "borderRadius", "barLabel", "className", "hideLegend"];
6
6
  import useId from '@mui/utils/useId';
7
7
  import { DEFAULT_X_AXIS_KEY, DEFAULT_Y_AXIS_KEY } from "../constants/index.js";
8
8
  /**
@@ -23,7 +23,6 @@ export const useBarChartProps = props => {
23
23
  colors,
24
24
  dataset,
25
25
  sx,
26
- tooltip,
27
26
  onAxisClick,
28
27
  axisHighlight,
29
28
  grid,
@@ -74,7 +73,7 @@ export const useBarChartProps = props => {
74
73
  sx,
75
74
  highlightedItem,
76
75
  onHighlightChange,
77
- disableAxisListener: tooltip?.trigger !== 'axis' && axisHighlight?.x === 'none' && axisHighlight?.y === 'none' && !onAxisClick,
76
+ disableAxisListener: slotProps?.tooltip?.trigger !== 'axis' && axisHighlight?.x === 'none' && axisHighlight?.y === 'none' && !onAxisClick,
78
77
  className,
79
78
  skipAnimation
80
79
  });
@@ -120,10 +119,6 @@ export const useBarChartProps = props => {
120
119
  slots,
121
120
  slotProps
122
121
  };
123
- const tooltipProps = _extends({}, tooltip, {
124
- slots,
125
- slotProps
126
- });
127
122
  return {
128
123
  chartContainerProps,
129
124
  barPlotProps,
@@ -135,7 +130,6 @@ export const useBarChartProps = props => {
135
130
  chartsAxisProps,
136
131
  axisHighlightProps,
137
132
  legendProps,
138
- tooltipProps,
139
133
  children
140
134
  };
141
135
  };
@@ -4,17 +4,43 @@ import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import { ChartDataProvider } from "../context/ChartDataProvider/index.js";
7
- import { ResizableContainer } from "./ResizableContainer.js";
8
7
  import { useChartContainerProps } from "./useChartContainerProps.js";
8
+ import { ChartsSurface } from "../ChartsSurface/index.js";
9
9
  import { jsx as _jsx } from "react/jsx-runtime";
10
+ /**
11
+ * It sets up the data providers as well as the `<svg>` for the chart.
12
+ *
13
+ * This is a combination of both the `ChartDataProvider` and `ChartsSurface` components.
14
+ *
15
+ * Demos:
16
+ *
17
+ * - [Composition](http://localhost:3001/x/react-charts/composition/)
18
+ *
19
+ * API:
20
+ *
21
+ * - [ChartContainer API](https://mui.com/x/api/charts/chart-container/)
22
+ *
23
+ * @example
24
+ * ```jsx
25
+ * <ChartContainer
26
+ * series={[{ label: "Label", type: "bar", data: [10, 20] }]}
27
+ * xAxis={[{ data: ["A", "B"], scaleType: "band", id: "x-axis" }]}
28
+ * >
29
+ * <BarPlot />
30
+ * <ChartsXAxis position="bottom" axisId="x-axis" />
31
+ * </ChartContainer>
32
+ * ```
33
+ */
10
34
  const ChartContainer = /*#__PURE__*/React.forwardRef(function ChartContainer(props, ref) {
11
35
  const {
12
- hasIntrinsicSize,
13
36
  chartDataProviderProps,
14
- resizableChartContainerProps
37
+ children,
38
+ chartsSurfaceProps
15
39
  } = useChartContainerProps(props, ref);
16
- return /*#__PURE__*/_jsx(ResizableContainer, _extends({}, resizableChartContainerProps, {
17
- children: hasIntrinsicSize ? /*#__PURE__*/_jsx(ChartDataProvider, _extends({}, chartDataProviderProps)) : null
40
+ return /*#__PURE__*/_jsx(ChartDataProvider, _extends({}, chartDataProviderProps, {
41
+ children: /*#__PURE__*/_jsx(ChartsSurface, _extends({}, chartsSurfaceProps, {
42
+ children: children
43
+ }))
18
44
  }));
19
45
  });
20
46
  process.env.NODE_ENV !== "production" ? ChartContainer.propTypes = {
@@ -74,16 +100,6 @@ process.env.NODE_ENV !== "production" ? ChartContainer.propTypes = {
74
100
  * If not provided, the container supports line, bar, scatter and pie charts.
75
101
  */
76
102
  plugins: PropTypes.arrayOf(PropTypes.object),
77
- /**
78
- * The chart will try to wait for the parent container to resolve its size
79
- * before it renders for the first time.
80
- *
81
- * This can be useful in some scenarios where the chart appear to grow after
82
- * the first render, like when used inside a grid.
83
- *
84
- * @default false
85
- */
86
- resolveSizeBeforeRender: PropTypes.bool,
87
103
  /**
88
104
  * The array of series to display.
89
105
  * Each type of series has its own specificity.
@@ -97,12 +113,6 @@ process.env.NODE_ENV !== "production" ? ChartContainer.propTypes = {
97
113
  skipAnimation: PropTypes.bool,
98
114
  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
99
115
  title: PropTypes.string,
100
- viewBox: PropTypes.shape({
101
- height: PropTypes.number,
102
- width: PropTypes.number,
103
- x: PropTypes.number,
104
- y: PropTypes.number
105
- }),
106
116
  /**
107
117
  * The width of the chart in px. If not defined, it takes the width of the parent element.
108
118
  */
@@ -138,7 +148,6 @@ process.env.NODE_ENV !== "production" ? ChartContainer.propTypes = {
138
148
  hideTooltip: PropTypes.bool,
139
149
  id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
140
150
  label: PropTypes.string,
141
- labelFontSize: PropTypes.number,
142
151
  labelStyle: PropTypes.object,
143
152
  max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
144
153
  min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
@@ -149,7 +158,6 @@ process.env.NODE_ENV !== "production" ? ChartContainer.propTypes = {
149
158
  slots: PropTypes.object,
150
159
  stroke: PropTypes.string,
151
160
  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
152
- tickFontSize: PropTypes.number,
153
161
  tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
154
162
  tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
155
163
  tickLabelPlacement: PropTypes.oneOf(['middle', 'tick']),
@@ -192,7 +200,6 @@ process.env.NODE_ENV !== "production" ? ChartContainer.propTypes = {
192
200
  hideTooltip: PropTypes.bool,
193
201
  id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
194
202
  label: PropTypes.string,
195
- labelFontSize: PropTypes.number,
196
203
  labelStyle: PropTypes.object,
197
204
  max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
198
205
  min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
@@ -203,7 +210,6 @@ process.env.NODE_ENV !== "production" ? ChartContainer.propTypes = {
203
210
  slots: PropTypes.object,
204
211
  stroke: PropTypes.string,
205
212
  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
206
- tickFontSize: PropTypes.number,
207
213
  tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
208
214
  tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
209
215
  tickLabelPlacement: PropTypes.oneOf(['middle', 'tick']),
@@ -2,13 +2,11 @@
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 = ["width", "height", "resolveSizeBeforeRender", "margin", "children", "series", "colors", "dataset", "desc", "disableAxisListener", "highlightedItem", "onHighlightChange", "plugins", "sx", "title", "viewBox", "xAxis", "yAxis", "zAxis", "skipAnimation"];
6
- import { useChartContainerDimensions } from "./useChartContainerDimensions.js";
5
+ const _excluded = ["width", "height", "margin", "children", "series", "colors", "dataset", "desc", "disableAxisListener", "highlightedItem", "onHighlightChange", "plugins", "sx", "title", "xAxis", "yAxis", "zAxis", "skipAnimation"];
7
6
  export const useChartContainerProps = (props, ref) => {
8
7
  const {
9
8
  width,
10
9
  height,
11
- resolveSizeBeforeRender,
12
10
  margin,
13
11
  children,
14
12
  series,
@@ -21,50 +19,37 @@ export const useChartContainerProps = (props, ref) => {
21
19
  plugins,
22
20
  sx,
23
21
  title,
24
- viewBox,
25
22
  xAxis,
26
23
  yAxis,
27
24
  zAxis,
28
25
  skipAnimation
29
26
  } = props,
30
27
  other = _objectWithoutPropertiesLoose(props, _excluded);
31
- const {
32
- containerRef,
33
- width: dWidth,
34
- height: dHeight
35
- } = useChartContainerDimensions(width, height, resolveSizeBeforeRender);
36
- const resizableChartContainerProps = _extends({}, other, {
37
- ownerState: {
38
- width,
39
- height
40
- },
41
- ref: containerRef
42
- });
28
+ const chartsSurfaceProps = _extends({
29
+ title,
30
+ desc,
31
+ sx,
32
+ disableAxisListener,
33
+ ref
34
+ }, other);
43
35
  const chartDataProviderProps = {
44
36
  margin,
45
- children,
46
37
  series,
47
38
  colors,
48
39
  dataset,
49
- desc,
50
- disableAxisListener,
51
40
  highlightedItem,
52
41
  onHighlightChange,
53
42
  plugins,
54
- sx,
55
- title,
56
- viewBox,
57
43
  xAxis,
58
44
  yAxis,
59
45
  zAxis,
60
46
  skipAnimation,
61
- width: dWidth,
62
- height: dHeight,
63
- ref
47
+ width,
48
+ height
64
49
  };
65
50
  return {
66
- hasIntrinsicSize: Boolean(dWidth && dHeight),
67
51
  chartDataProviderProps,
68
- resizableChartContainerProps
52
+ chartsSurfaceProps,
53
+ children
69
54
  };
70
55
  };
@@ -1,4 +1,5 @@
1
- import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';
1
+ import generateUtilityClass from '@mui/utils/generateUtilityClass';
2
+ import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
2
3
  export function getAxisUtilityClass(slot) {
3
4
  return generateUtilityClass('MuiChartsAxis', slot);
4
5
  }