@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
@@ -1,24 +1,31 @@
1
1
  import * as React from 'react';
2
2
  import { ChartDataProviderProps } from '../context/ChartDataProvider';
3
- export interface ChartContainerProps extends Omit<ChartDataProviderProps, 'width' | 'height'> {
4
- /**
5
- * The width of the chart in px. If not defined, it takes the width of the parent element.
6
- */
7
- width?: number;
8
- /**
9
- * The height of the chart in px. If not defined, it takes the height of the parent element.
10
- */
11
- height?: number;
12
- /**
13
- * The chart will try to wait for the parent container to resolve its size
14
- * before it renders for the first time.
15
- *
16
- * This can be useful in some scenarios where the chart appear to grow after
17
- * the first render, like when used inside a grid.
18
- *
19
- * @default false
20
- */
21
- resolveSizeBeforeRender?: boolean;
3
+ import { ChartsSurfaceProps } from '../ChartsSurface';
4
+ export interface ChartContainerProps extends ChartDataProviderProps, ChartsSurfaceProps {
22
5
  }
6
+ /**
7
+ * It sets up the data providers as well as the `<svg>` for the chart.
8
+ *
9
+ * This is a combination of both the `ChartDataProvider` and `ChartsSurface` components.
10
+ *
11
+ * Demos:
12
+ *
13
+ * - [Composition](http://localhost:3001/x/react-charts/composition/)
14
+ *
15
+ * API:
16
+ *
17
+ * - [ChartContainer API](https://mui.com/x/api/charts/chart-container/)
18
+ *
19
+ * @example
20
+ * ```jsx
21
+ * <ChartContainer
22
+ * series={[{ label: "Label", type: "bar", data: [10, 20] }]}
23
+ * xAxis={[{ data: ["A", "B"], scaleType: "band", id: "x-axis" }]}
24
+ * >
25
+ * <BarPlot />
26
+ * <ChartsXAxis position="bottom" axisId="x-axis" />
27
+ * </ChartContainer>
28
+ * ```
29
+ */
23
30
  declare const ChartContainer: React.ForwardRefExoticComponent<ChartContainerProps & React.RefAttributes<SVGSVGElement>>;
24
31
  export { ChartContainer };
@@ -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']),
@@ -1,14 +1,12 @@
1
+ import * as React from 'react';
2
+ import { ChartsSurfaceProps } from '../ChartsSurface';
1
3
  import { ChartDataProviderProps } from '../context/ChartDataProvider';
2
4
  import type { ChartContainerProps } from './ChartContainer';
3
5
  export type UseChartContainerPropsReturnValue = {
4
- hasIntrinsicSize: boolean;
5
6
  chartDataProviderProps: ChartDataProviderProps;
6
- resizableChartContainerProps: {
7
- ownerState: {
8
- width: ChartContainerProps['width'];
9
- height: ChartContainerProps['height'];
10
- };
11
- ref: React.Ref<HTMLDivElement>;
7
+ chartsSurfaceProps: ChartsSurfaceProps & {
8
+ ref: React.Ref<SVGSVGElement>;
12
9
  };
10
+ children: React.ReactNode;
13
11
  };
14
12
  export declare const useChartContainerProps: (props: ChartContainerProps, ref: React.Ref<SVGSVGElement>) => UseChartContainerPropsReturnValue;
@@ -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
  }
@@ -1,21 +1,5 @@
1
1
  import * as React from 'react';
2
- export interface ChartsAxisHighlightClasses {
3
- /** Styles applied to the root element. */
4
- root: string;
5
- }
6
- export type ChartsAxisHighlightClassKey = keyof ChartsAxisHighlightClasses;
7
- export declare function getAxisHighlightUtilityClass(slot: string): string;
8
- export declare const chartsAxisHighlightClasses: ChartsAxisHighlightClasses;
9
- export declare const ChartsAxisHighlightPath: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme> & {
10
- ownerState: {
11
- axisHighlight: AxisHighlight;
12
- };
13
- }, Pick<React.SVGProps<SVGPathElement>, keyof React.SVGProps<SVGPathElement>>, {}>;
14
- type AxisHighlight = 'none' | 'line' | 'band';
15
- export type ChartsAxisHighlightProps = {
16
- x?: AxisHighlight;
17
- y?: AxisHighlight;
18
- };
2
+ import { ChartsAxisHighlightProps } from './ChartsAxisHighlight.types';
19
3
  /**
20
4
  * Demos:
21
5
  *
@@ -1,57 +1,19 @@
1
1
  'use client';
2
2
 
3
- import _extends from "@babel/runtime/helpers/esm/extends";
4
3
  import * as React from 'react';
5
4
  import PropTypes from 'prop-types';
6
5
  import composeClasses from '@mui/utils/composeClasses';
7
- import generateUtilityClass from '@mui/utils/generateUtilityClass';
8
- import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
9
- import { styled } from '@mui/material/styles';
10
- import { InteractionContext } from "../context/InteractionProvider.js";
11
- import { useCartesianContext } from "../context/CartesianProvider/index.js";
12
- import { getValueToPositionMapper } from "../hooks/useScale.js";
13
- import { isBandScale } from "../internals/isBandScale.js";
6
+ import { getAxisHighlightUtilityClass } from "./chartsAxisHighlightClasses.js";
7
+ import ChartsYHighlight from "./ChartsYAxisHighlight.js";
8
+ import ChartsXHighlight from "./ChartsXAxisHighlight.js";
14
9
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
15
- export function getAxisHighlightUtilityClass(slot) {
16
- return generateUtilityClass('MuiChartsAxisHighlight', slot);
17
- }
18
- export const chartsAxisHighlightClasses = generateUtilityClasses('MuiChartsAxisHighlight', ['root']);
19
10
  const useUtilityClasses = () => {
20
11
  const slots = {
21
12
  root: ['root']
22
13
  };
23
14
  return composeClasses(slots, getAxisHighlightUtilityClass);
24
15
  };
25
- export const ChartsAxisHighlightPath = styled('path', {
26
- name: 'MuiChartsAxisHighlight',
27
- slot: 'Root',
28
- overridesResolver: (_, styles) => styles.root
29
- })(({
30
- theme
31
- }) => ({
32
- pointerEvents: 'none',
33
- variants: [{
34
- props: {
35
- axisHighlight: 'band'
36
- },
37
- style: _extends({
38
- fill: 'white',
39
- fillOpacity: 0.1
40
- }, theme.applyStyles('light', {
41
- fill: 'gray'
42
- }))
43
- }, {
44
- props: {
45
- axisHighlight: 'line'
46
- },
47
- style: _extends({
48
- strokeDasharray: '5 2',
49
- stroke: '#ffffff'
50
- }, theme.applyStyles('light', {
51
- stroke: '#000000'
52
- }))
53
- }]
54
- }));
16
+
55
17
  /**
56
18
  * Demos:
57
19
  *
@@ -66,62 +28,14 @@ function ChartsAxisHighlight(props) {
66
28
  x: xAxisHighlight,
67
29
  y: yAxisHighlight
68
30
  } = props;
69
- const {
70
- xAxisIds,
71
- xAxis,
72
- yAxisIds,
73
- yAxis
74
- } = useCartesianContext();
75
31
  const classes = useUtilityClasses();
76
- const USED_X_AXIS_ID = xAxisIds[0];
77
- const USED_Y_AXIS_ID = yAxisIds[0];
78
- const xScale = xAxis[USED_X_AXIS_ID].scale;
79
- const yScale = yAxis[USED_Y_AXIS_ID].scale;
80
- const {
81
- axis
82
- } = React.useContext(InteractionContext);
83
- const getXPosition = getValueToPositionMapper(xScale);
84
- const getYPosition = getValueToPositionMapper(yScale);
85
- const axisX = axis.x;
86
- const axisY = axis.y;
87
- const isBandScaleX = xAxisHighlight === 'band' && axisX !== null && isBandScale(xScale);
88
- const isBandScaleY = yAxisHighlight === 'band' && axisY !== null && isBandScale(yScale);
89
- if (process.env.NODE_ENV !== 'production') {
90
- const isXError = isBandScaleX && xScale(axisX.value) === undefined;
91
- const isYError = isBandScaleY && yScale(axisY.value) === undefined;
92
- if (isXError || isYError) {
93
- console.error([`MUI X: The position value provided for the axis is not valid for the current scale.`, `This probably means something is wrong with the data passed to the chart.`, `The ChartsAxisHighlight component will not be displayed.`].join('\n'));
94
- }
95
- }
96
32
  return /*#__PURE__*/_jsxs(React.Fragment, {
97
- children: [isBandScaleX && xScale(axisX.value) !== undefined && /*#__PURE__*/_jsx(ChartsAxisHighlightPath
98
- // @ts-expect-error, xScale value is checked in the statement above
99
- , {
100
- d: `M ${xScale(axisX.value) - (xScale.step() - xScale.bandwidth()) / 2} ${yScale.range()[0]} l ${xScale.step()} 0 l 0 ${yScale.range()[1] - yScale.range()[0]} l ${-xScale.step()} 0 Z`,
101
- className: classes.root,
102
- ownerState: {
103
- axisHighlight: 'band'
104
- }
105
- }), isBandScaleY && yScale(axisY.value) !== undefined && /*#__PURE__*/_jsx(ChartsAxisHighlightPath, {
106
- d: `M ${xScale.range()[0]} ${
107
- // @ts-expect-error, yScale value is checked in the statement above
108
- yScale(axisY.value) - (yScale.step() - yScale.bandwidth()) / 2} l 0 ${yScale.step()} l ${xScale.range()[1] - xScale.range()[0]} 0 l 0 ${-yScale.step()} Z`,
109
- className: classes.root,
110
- ownerState: {
111
- axisHighlight: 'band'
112
- }
113
- }), xAxisHighlight === 'line' && axis.x !== null && /*#__PURE__*/_jsx(ChartsAxisHighlightPath, {
114
- d: `M ${getXPosition(axis.x.value)} ${yScale.range()[0]} L ${getXPosition(axis.x.value)} ${yScale.range()[1]}`,
115
- className: classes.root,
116
- ownerState: {
117
- axisHighlight: 'line'
118
- }
119
- }), yAxisHighlight === 'line' && axis.y !== null && /*#__PURE__*/_jsx(ChartsAxisHighlightPath, {
120
- d: `M ${xScale.range()[0]} ${getYPosition(axis.y.value)} L ${xScale.range()[1]} ${getYPosition(axis.y.value)}`,
121
- className: classes.root,
122
- ownerState: {
123
- axisHighlight: 'line'
124
- }
33
+ children: [xAxisHighlight && /*#__PURE__*/_jsx(ChartsXHighlight, {
34
+ type: xAxisHighlight,
35
+ classes: classes
36
+ }), yAxisHighlight && /*#__PURE__*/_jsx(ChartsYHighlight, {
37
+ type: yAxisHighlight,
38
+ classes: classes
125
39
  })]
126
40
  });
127
41
  }
@@ -0,0 +1,5 @@
1
+ export type ChartsAxisHighlightType = 'none' | 'line' | 'band';
2
+ export type ChartsAxisHighlightProps = {
3
+ x?: ChartsAxisHighlightType;
4
+ y?: ChartsAxisHighlightType;
5
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ import { ChartsAxisHighlightType } from './ChartsAxisHighlight.types';
2
+ export declare const ChartsAxisHighlightPath: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme> & {
3
+ ownerState: {
4
+ axisHighlight: ChartsAxisHighlightType;
5
+ };
6
+ }, Pick<import("react").SVGProps<SVGPathElement>, keyof import("react").SVGProps<SVGPathElement>>, {}>;
@@ -0,0 +1,34 @@
1
+ 'use client';
2
+
3
+ import _extends from "@babel/runtime/helpers/esm/extends";
4
+ import { styled } from '@mui/material/styles';
5
+ export const ChartsAxisHighlightPath = styled('path', {
6
+ name: 'MuiChartsAxisHighlight',
7
+ slot: 'Root',
8
+ overridesResolver: (_, styles) => styles.root
9
+ })(({
10
+ theme
11
+ }) => ({
12
+ pointerEvents: 'none',
13
+ variants: [{
14
+ props: {
15
+ axisHighlight: 'band'
16
+ },
17
+ style: _extends({
18
+ fill: 'white',
19
+ fillOpacity: 0.1
20
+ }, theme.applyStyles('light', {
21
+ fill: 'gray'
22
+ }))
23
+ }, {
24
+ props: {
25
+ axisHighlight: 'line'
26
+ },
27
+ style: _extends({
28
+ strokeDasharray: '5 2',
29
+ stroke: '#ffffff'
30
+ }, theme.applyStyles('light', {
31
+ stroke: '#000000'
32
+ }))
33
+ }]
34
+ }));
@@ -0,0 +1,10 @@
1
+ import * as React from 'react';
2
+ import { ChartsAxisHighlightType } from './ChartsAxisHighlight.types';
3
+ import { ChartsAxisHighlightClasses } from './chartsAxisHighlightClasses';
4
+ /**
5
+ * @ignore - internal component.
6
+ */
7
+ export default function ChartsXHighlight(props: {
8
+ type: ChartsAxisHighlightType;
9
+ classes: ChartsAxisHighlightClasses;
10
+ }): React.JSX.Element;
@@ -0,0 +1,53 @@
1
+ 'use client';
2
+
3
+ import * as React from 'react';
4
+ import { getValueToPositionMapper, useXScale } from "../hooks/useScale.js";
5
+ import { isBandScale } from "../internals/isBandScale.js";
6
+ import { useSelector } from "../internals/store/useSelector.js";
7
+ import { useStore } from "../internals/store/useStore.js";
8
+ import { selectorChartsInteractionXAxis } from "../internals/plugins/featurePlugins/useChartInteraction/index.js";
9
+ import { useDrawingArea } from "../hooks/index.js";
10
+ import { ChartsAxisHighlightPath } from "./ChartsAxisHighlightPath.js";
11
+
12
+ /**
13
+ * @ignore - internal component.
14
+ */
15
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
16
+ export default function ChartsXHighlight(props) {
17
+ const {
18
+ type,
19
+ classes
20
+ } = props;
21
+ const {
22
+ top,
23
+ height
24
+ } = useDrawingArea();
25
+ const xScale = useXScale();
26
+ const store = useStore();
27
+ const axisX = useSelector(store, selectorChartsInteractionXAxis);
28
+ const getXPosition = getValueToPositionMapper(xScale);
29
+ const isBandScaleX = type === 'band' && axisX !== null && isBandScale(xScale);
30
+ if (process.env.NODE_ENV !== 'production') {
31
+ const isError = isBandScaleX && xScale(axisX.value) === undefined;
32
+ if (isError) {
33
+ console.error([`MUI X: The position value provided for the axis is not valid for the current scale.`, `This probably means something is wrong with the data passed to the chart.`, `The ChartsAxisHighlight component will not be displayed.`].join('\n'));
34
+ }
35
+ }
36
+ return /*#__PURE__*/_jsxs(React.Fragment, {
37
+ children: [isBandScaleX && xScale(axisX.value) !== undefined && /*#__PURE__*/_jsx(ChartsAxisHighlightPath
38
+ // @ts-expect-error, xScale value is checked in the statement above
39
+ , {
40
+ d: `M ${xScale(axisX.value) - (xScale.step() - xScale.bandwidth()) / 2} ${top} l ${xScale.step()} 0 l 0 ${height} l ${-xScale.step()} 0 Z`,
41
+ className: classes.root,
42
+ ownerState: {
43
+ axisHighlight: 'band'
44
+ }
45
+ }), type === 'line' && axisX !== null && /*#__PURE__*/_jsx(ChartsAxisHighlightPath, {
46
+ d: `M ${getXPosition(axisX.value)} ${top} L ${getXPosition(axisX.value)} ${top + height}`,
47
+ className: classes.root,
48
+ ownerState: {
49
+ axisHighlight: 'line'
50
+ }
51
+ })]
52
+ });
53
+ }
@@ -0,0 +1,10 @@
1
+ import * as React from 'react';
2
+ import { ChartsAxisHighlightType } from './ChartsAxisHighlight.types';
3
+ import { ChartsAxisHighlightClasses } from './chartsAxisHighlightClasses';
4
+ /**
5
+ * @ignore - internal component.
6
+ */
7
+ export default function ChartsYHighlight(props: {
8
+ type: ChartsAxisHighlightType;
9
+ classes: ChartsAxisHighlightClasses;
10
+ }): React.JSX.Element;
@@ -0,0 +1,53 @@
1
+ 'use client';
2
+
3
+ import * as React from 'react';
4
+ import { getValueToPositionMapper, useYScale } from "../hooks/useScale.js";
5
+ import { isBandScale } from "../internals/isBandScale.js";
6
+ import { useSelector } from "../internals/store/useSelector.js";
7
+ import { useStore } from "../internals/store/useStore.js";
8
+ import { selectorChartsInteractionYAxis } from "../internals/plugins/featurePlugins/useChartInteraction/index.js";
9
+ import { useDrawingArea } from "../hooks/index.js";
10
+ import { ChartsAxisHighlightPath } from "./ChartsAxisHighlightPath.js";
11
+
12
+ /**
13
+ * @ignore - internal component.
14
+ */
15
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
16
+ export default function ChartsYHighlight(props) {
17
+ const {
18
+ type,
19
+ classes
20
+ } = props;
21
+ const {
22
+ left,
23
+ width
24
+ } = useDrawingArea();
25
+ const yScale = useYScale();
26
+ const store = useStore();
27
+ const axisY = useSelector(store, selectorChartsInteractionYAxis);
28
+ const getYPosition = getValueToPositionMapper(yScale);
29
+ const isBandScaleY = type === 'band' && axisY !== null && isBandScale(yScale);
30
+ if (process.env.NODE_ENV !== 'production') {
31
+ const isError = isBandScaleY && yScale(axisY.value) === undefined;
32
+ if (isError) {
33
+ console.error([`MUI X: The position value provided for the axis is not valid for the current scale.`, `This probably means something is wrong with the data passed to the chart.`, `The ChartsAxisHighlight component will not be displayed.`].join('\n'));
34
+ }
35
+ }
36
+ return /*#__PURE__*/_jsxs(React.Fragment, {
37
+ children: [isBandScaleY && yScale(axisY.value) !== undefined && /*#__PURE__*/_jsx(ChartsAxisHighlightPath, {
38
+ d: `M ${left} ${
39
+ // @ts-expect-error, yScale value is checked in the statement above
40
+ yScale(axisY.value) - (yScale.step() - yScale.bandwidth()) / 2} l 0 ${yScale.step()} l ${width} 0 l 0 ${-yScale.step()} Z`,
41
+ className: classes.root,
42
+ ownerState: {
43
+ axisHighlight: 'band'
44
+ }
45
+ }), type === 'line' && axisY !== null && /*#__PURE__*/_jsx(ChartsAxisHighlightPath, {
46
+ d: `M ${left} ${getYPosition(axisY.value)} L ${left + width} ${getYPosition(axisY.value)}`,
47
+ className: classes.root,
48
+ ownerState: {
49
+ axisHighlight: 'line'
50
+ }
51
+ })]
52
+ });
53
+ }
@@ -0,0 +1,7 @@
1
+ export interface ChartsAxisHighlightClasses {
2
+ /** Styles applied to the root element. */
3
+ root: string;
4
+ }
5
+ export type ChartsAxisHighlightClassKey = keyof ChartsAxisHighlightClasses;
6
+ export declare function getAxisHighlightUtilityClass(slot: string): string;
7
+ export declare const chartsAxisHighlightClasses: ChartsAxisHighlightClasses;
@@ -0,0 +1,6 @@
1
+ import generateUtilityClass from '@mui/utils/generateUtilityClass';
2
+ import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
3
+ export function getAxisHighlightUtilityClass(slot) {
4
+ return generateUtilityClass('MuiChartsAxisHighlight', slot);
5
+ }
6
+ export const chartsAxisHighlightClasses = generateUtilityClasses('MuiChartsAxisHighlight', ['root']);
@@ -1 +1,4 @@
1
1
  export * from './ChartsAxisHighlight';
2
+ export * from './chartsAxisHighlightClasses';
3
+ export * from './ChartsAxisHighlight.types';
4
+ export * from './ChartsAxisHighlightPath';
@@ -1 +1,4 @@
1
- export * from "./ChartsAxisHighlight.js";
1
+ export * from "./ChartsAxisHighlight.js";
2
+ export * from "./chartsAxisHighlightClasses.js";
3
+ export * from "./ChartsAxisHighlight.types.js";
4
+ export * from "./ChartsAxisHighlightPath.js";
@@ -10,7 +10,7 @@ import { useThemeProps } from '@mui/material/styles';
10
10
  import { useCartesianContext } from "../context/CartesianProvider/index.js";
11
11
  import { getChartsGridUtilityClass } from "./chartsGridClasses.js";
12
12
  import { useDrawingArea } from "../hooks/useDrawingArea.js";
13
- import { GridRoot } from "./styledCommonents.js";
13
+ import { GridRoot } from "./styledComponents.js";
14
14
  import { ChartsGridVertical } from "./ChartsVerticalGrid.js";
15
15
  import { ChartsGridHorizontal } from "./ChartsHorizontalGrid.js";
16
16
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
@@ -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
  /**