@mui/x-charts 8.0.0-beta.2 → 8.0.0-beta.3

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 (345) hide show
  1. package/BarChart/AnimatedBarElement.d.ts +38 -8
  2. package/BarChart/AnimatedBarElement.js +5 -5
  3. package/BarChart/BarChart.js +2 -0
  4. package/BarChart/BarClipPath.d.ts +19 -1
  5. package/BarChart/BarClipPath.js +84 -17
  6. package/BarChart/BarElement.d.ts +9 -20
  7. package/BarChart/BarElement.js +29 -26
  8. package/BarChart/BarLabel/BarLabel.d.ts +27 -854
  9. package/BarChart/BarLabel/BarLabel.js +32 -5
  10. package/BarChart/BarLabel/BarLabel.types.d.ts +2 -0
  11. package/BarChart/BarLabel/BarLabelItem.d.ts +24 -0
  12. package/BarChart/BarLabel/BarLabelItem.js +18 -6
  13. package/BarChart/BarLabel/BarLabelPlot.js +16 -46
  14. package/BarChart/BarLabel/barLabelClasses.d.ts +3 -1
  15. package/BarChart/BarLabel/barLabelClasses.js +4 -3
  16. package/BarChart/BarPlot.js +37 -61
  17. package/BarChart/barElementClasses.d.ts +21 -0
  18. package/BarChart/barElementClasses.js +29 -0
  19. package/BarChart/getRadius.d.ts +1 -1
  20. package/BarChart/index.d.ts +2 -1
  21. package/BarChart/index.js +11 -0
  22. package/BarChart/seriesConfig/index.js +3 -1
  23. package/BarChart/seriesConfig/tooltip.d.ts +2 -1
  24. package/BarChart/seriesConfig/tooltip.js +14 -1
  25. package/BarChart/types.d.ts +2 -2
  26. package/CHANGELOG.md +141 -0
  27. package/ChartContainer/ChartContainer.js +4 -0
  28. package/ChartsLabel/ChartsLabelMark.js +0 -4
  29. package/ChartsLabel/index.d.ts +1 -0
  30. package/ChartsLabel/index.js +7 -0
  31. package/ChartsLegend/continuousColorLegendClasses.d.ts +1 -1
  32. package/ChartsTooltip/ChartsAxisTooltipContent.js +47 -55
  33. package/ChartsTooltip/ChartsItemTooltipContent.js +11 -9
  34. package/ChartsTooltip/ChartsTooltip.js +2 -2
  35. package/ChartsTooltip/ChartsTooltipContainer.js +3 -8
  36. package/ChartsTooltip/ChartsTooltipTable.d.ts +3 -1
  37. package/ChartsTooltip/ChartsTooltipTable.js +24 -9
  38. package/ChartsTooltip/chartsTooltipClasses.d.ts +4 -4
  39. package/ChartsTooltip/chartsTooltipClasses.js +2 -2
  40. package/ChartsTooltip/index.d.ts +1 -0
  41. package/ChartsTooltip/index.js +12 -0
  42. package/ChartsTooltip/useAxesTooltip.d.ts +7 -0
  43. package/ChartsTooltip/useAxesTooltip.js +18 -0
  44. package/ChartsTooltip/useAxisTooltip.d.ts +24 -3
  45. package/ChartsTooltip/useAxisTooltip.js +71 -37
  46. package/ChartsTooltip/useItemTooltip.js +4 -1
  47. package/ChartsXAxis/ChartsXAxis.js +5 -2
  48. package/ChartsYAxis/ChartsYAxis.js +69 -17
  49. package/LineChart/AnimatedArea.js +5 -22
  50. package/LineChart/AnimatedLine.d.ts +1 -4
  51. package/LineChart/AnimatedLine.js +10 -25
  52. package/LineChart/AppearingMask.d.ts +5 -0
  53. package/LineChart/AppearingMask.js +25 -18
  54. package/LineChart/CircleMarkElement.js +16 -22
  55. package/LineChart/LineChart.js +2 -0
  56. package/LineChart/LineHighlightPlot.js +2 -3
  57. package/LineChart/MarkElement.js +16 -27
  58. package/LineChart/MarkPlot.js +0 -1
  59. package/LineChart/markElementClasses.d.ts +3 -0
  60. package/LineChart/markElementClasses.js +4 -3
  61. package/LineChart/seriesConfig/index.js +3 -1
  62. package/LineChart/seriesConfig/tooltip.d.ts +2 -1
  63. package/LineChart/seriesConfig/tooltip.js +8 -1
  64. package/PieChart/PieArc.d.ts +19 -11
  65. package/PieChart/PieArc.js +37 -24
  66. package/PieChart/PieArcLabel.d.ts +22 -13
  67. package/PieChart/PieArcLabel.js +52 -48
  68. package/PieChart/PieArcLabelPlot.js +16 -34
  69. package/PieChart/PieArcPlot.js +21 -34
  70. package/PieChart/seriesConfig/tooltip.js +3 -0
  71. package/ScatterChart/ScatterChart.js +2 -0
  72. package/SparkLineChart/SparkLineChart.js +2 -0
  73. package/colorPalettes/colorPalettes.js +2 -2
  74. package/constants/index.d.ts +1 -1
  75. package/constants/index.js +1 -1
  76. package/context/AnimationProvider/AnimationProvider.js +4 -6
  77. package/esm/BarChart/AnimatedBarElement.d.ts +38 -8
  78. package/esm/BarChart/AnimatedBarElement.js +5 -5
  79. package/esm/BarChart/BarChart.js +2 -0
  80. package/esm/BarChart/BarClipPath.d.ts +19 -1
  81. package/esm/BarChart/BarClipPath.js +84 -17
  82. package/esm/BarChart/BarElement.d.ts +9 -20
  83. package/esm/BarChart/BarElement.js +28 -23
  84. package/esm/BarChart/BarLabel/BarLabel.d.ts +27 -854
  85. package/esm/BarChart/BarLabel/BarLabel.js +32 -5
  86. package/esm/BarChart/BarLabel/BarLabel.types.d.ts +2 -0
  87. package/esm/BarChart/BarLabel/BarLabelItem.d.ts +24 -0
  88. package/esm/BarChart/BarLabel/BarLabelItem.js +18 -6
  89. package/esm/BarChart/BarLabel/BarLabelPlot.js +16 -46
  90. package/esm/BarChart/BarLabel/barLabelClasses.d.ts +3 -1
  91. package/esm/BarChart/BarLabel/barLabelClasses.js +4 -3
  92. package/esm/BarChart/BarPlot.js +37 -61
  93. package/esm/BarChart/barElementClasses.d.ts +21 -0
  94. package/esm/BarChart/barElementClasses.js +19 -0
  95. package/esm/BarChart/getRadius.d.ts +1 -1
  96. package/esm/BarChart/index.d.ts +2 -1
  97. package/esm/BarChart/index.js +2 -1
  98. package/esm/BarChart/seriesConfig/index.js +2 -1
  99. package/esm/BarChart/seriesConfig/tooltip.d.ts +2 -1
  100. package/esm/BarChart/seriesConfig/tooltip.js +12 -0
  101. package/esm/BarChart/types.d.ts +2 -2
  102. package/esm/ChartContainer/ChartContainer.js +4 -0
  103. package/esm/ChartsLabel/ChartsLabelMark.js +0 -4
  104. package/esm/ChartsLabel/index.d.ts +1 -0
  105. package/esm/ChartsLabel/index.js +1 -0
  106. package/esm/ChartsLegend/continuousColorLegendClasses.d.ts +1 -1
  107. package/esm/ChartsTooltip/ChartsAxisTooltipContent.js +47 -55
  108. package/esm/ChartsTooltip/ChartsItemTooltipContent.js +11 -9
  109. package/esm/ChartsTooltip/ChartsTooltip.js +2 -2
  110. package/esm/ChartsTooltip/ChartsTooltipContainer.js +4 -9
  111. package/esm/ChartsTooltip/ChartsTooltipTable.d.ts +3 -1
  112. package/esm/ChartsTooltip/ChartsTooltipTable.js +23 -9
  113. package/esm/ChartsTooltip/chartsTooltipClasses.d.ts +4 -4
  114. package/esm/ChartsTooltip/chartsTooltipClasses.js +2 -2
  115. package/esm/ChartsTooltip/index.d.ts +1 -0
  116. package/esm/ChartsTooltip/index.js +1 -0
  117. package/esm/ChartsTooltip/useAxesTooltip.d.ts +7 -0
  118. package/esm/ChartsTooltip/useAxesTooltip.js +12 -0
  119. package/esm/ChartsTooltip/useAxisTooltip.d.ts +24 -3
  120. package/esm/ChartsTooltip/useAxisTooltip.js +72 -38
  121. package/esm/ChartsTooltip/useItemTooltip.js +4 -1
  122. package/esm/ChartsXAxis/ChartsXAxis.js +5 -2
  123. package/esm/ChartsYAxis/ChartsYAxis.js +69 -17
  124. package/esm/LineChart/AnimatedArea.js +5 -22
  125. package/esm/LineChart/AnimatedLine.d.ts +1 -4
  126. package/esm/LineChart/AnimatedLine.js +9 -24
  127. package/esm/LineChart/AppearingMask.d.ts +5 -0
  128. package/esm/LineChart/AppearingMask.js +23 -18
  129. package/esm/LineChart/CircleMarkElement.js +19 -25
  130. package/esm/LineChart/LineChart.js +2 -0
  131. package/esm/LineChart/LineHighlightPlot.js +3 -4
  132. package/esm/LineChart/MarkElement.js +17 -28
  133. package/esm/LineChart/MarkPlot.js +0 -1
  134. package/esm/LineChart/markElementClasses.d.ts +3 -0
  135. package/esm/LineChart/markElementClasses.js +4 -3
  136. package/esm/LineChart/seriesConfig/index.js +2 -1
  137. package/esm/LineChart/seriesConfig/tooltip.d.ts +2 -1
  138. package/esm/LineChart/seriesConfig/tooltip.js +6 -0
  139. package/esm/PieChart/PieArc.d.ts +19 -11
  140. package/esm/PieChart/PieArc.js +36 -23
  141. package/esm/PieChart/PieArcLabel.d.ts +22 -13
  142. package/esm/PieChart/PieArcLabel.js +51 -47
  143. package/esm/PieChart/PieArcLabelPlot.js +16 -34
  144. package/esm/PieChart/PieArcPlot.js +21 -34
  145. package/esm/PieChart/seriesConfig/tooltip.js +3 -0
  146. package/esm/ScatterChart/ScatterChart.js +2 -0
  147. package/esm/SparkLineChart/SparkLineChart.js +2 -0
  148. package/esm/colorPalettes/colorPalettes.js +2 -2
  149. package/esm/constants/index.d.ts +1 -1
  150. package/esm/constants/index.js +1 -1
  151. package/esm/context/AnimationProvider/AnimationProvider.js +3 -6
  152. package/esm/hooks/animation/index.d.ts +6 -0
  153. package/esm/hooks/animation/index.js +6 -0
  154. package/esm/hooks/animation/useAnimateArea.d.ts +15 -0
  155. package/esm/hooks/animation/useAnimateArea.js +27 -0
  156. package/esm/hooks/animation/useAnimateBar.d.ts +17 -0
  157. package/esm/hooks/animation/useAnimateBar.js +56 -0
  158. package/esm/hooks/animation/useAnimateBarLabel.d.ts +19 -0
  159. package/esm/hooks/animation/useAnimateBarLabel.js +59 -0
  160. package/esm/hooks/animation/useAnimateLine.d.ts +14 -0
  161. package/esm/hooks/animation/useAnimateLine.js +26 -0
  162. package/esm/hooks/animation/useAnimatePieArc.d.ts +15 -0
  163. package/esm/hooks/animation/useAnimatePieArc.js +70 -0
  164. package/esm/hooks/animation/useAnimatePieArcLabel.d.ts +15 -0
  165. package/esm/hooks/animation/useAnimatePieArcLabel.js +72 -0
  166. package/esm/hooks/index.d.ts +2 -1
  167. package/esm/hooks/index.js +2 -1
  168. package/esm/hooks/useInteractionItemProps.js +11 -0
  169. package/esm/index.js +1 -1
  170. package/esm/internals/animation/Transition.d.ts +37 -0
  171. package/esm/internals/animation/Transition.js +83 -0
  172. package/esm/internals/animation/animation.d.ts +4 -0
  173. package/esm/internals/animation/animation.js +4 -0
  174. package/esm/internals/animation/useAnimate.d.ts +19 -0
  175. package/esm/internals/animation/useAnimate.js +74 -0
  176. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.d.ts +1 -1
  177. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.js +9 -3
  178. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisTriggerTooltip.d.ts +5 -0
  179. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisTriggerTooltip.js +21 -0
  180. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.d.ts +8 -32
  181. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.d.ts +9 -1
  182. package/esm/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.js +60 -26
  183. package/esm/internals/plugins/models/seriesConfig/seriesConfig.types.d.ts +3 -1
  184. package/esm/internals/plugins/models/seriesConfig/tooltipGetter.types.d.ts +10 -4
  185. package/esm/internals/shallowEqual.d.ts +8 -0
  186. package/esm/internals/shallowEqual.js +31 -0
  187. package/esm/models/axis.d.ts +8 -0
  188. package/esm/themeAugmentation/overrides.d.ts +1 -1
  189. package/hooks/animation/index.d.ts +6 -0
  190. package/hooks/animation/index.js +71 -0
  191. package/hooks/animation/useAnimateArea.d.ts +15 -0
  192. package/hooks/animation/useAnimateArea.js +34 -0
  193. package/hooks/animation/useAnimateBar.d.ts +17 -0
  194. package/hooks/animation/useAnimateBar.js +62 -0
  195. package/hooks/animation/useAnimateBarLabel.d.ts +19 -0
  196. package/hooks/animation/useAnimateBarLabel.js +65 -0
  197. package/hooks/animation/useAnimateLine.d.ts +14 -0
  198. package/hooks/animation/useAnimateLine.js +33 -0
  199. package/hooks/animation/useAnimatePieArc.d.ts +15 -0
  200. package/hooks/animation/useAnimatePieArc.js +77 -0
  201. package/hooks/animation/useAnimatePieArcLabel.d.ts +15 -0
  202. package/hooks/animation/useAnimatePieArcLabel.js +79 -0
  203. package/hooks/index.d.ts +2 -1
  204. package/hooks/index.js +13 -1
  205. package/hooks/useInteractionItemProps.js +11 -0
  206. package/index.js +1 -1
  207. package/internals/animation/Transition.d.ts +37 -0
  208. package/internals/animation/Transition.js +89 -0
  209. package/internals/animation/animation.d.ts +4 -0
  210. package/internals/animation/animation.js +11 -0
  211. package/internals/animation/useAnimate.d.ts +19 -0
  212. package/internals/animation/useAnimate.js +80 -0
  213. package/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.d.ts +1 -1
  214. package/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.js +9 -3
  215. package/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisTriggerTooltip.d.ts +5 -0
  216. package/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisTriggerTooltip.js +28 -0
  217. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.d.ts +8 -32
  218. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.d.ts +9 -1
  219. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.js +61 -27
  220. package/internals/plugins/models/seriesConfig/seriesConfig.types.d.ts +3 -1
  221. package/internals/plugins/models/seriesConfig/tooltipGetter.types.d.ts +10 -4
  222. package/internals/shallowEqual.d.ts +8 -0
  223. package/internals/shallowEqual.js +37 -0
  224. package/models/axis.d.ts +8 -0
  225. package/modern/BarChart/AnimatedBarElement.d.ts +38 -8
  226. package/modern/BarChart/AnimatedBarElement.js +5 -5
  227. package/modern/BarChart/BarChart.js +2 -0
  228. package/modern/BarChart/BarClipPath.d.ts +19 -1
  229. package/modern/BarChart/BarClipPath.js +84 -17
  230. package/modern/BarChart/BarElement.d.ts +9 -20
  231. package/modern/BarChart/BarElement.js +28 -23
  232. package/modern/BarChart/BarLabel/BarLabel.d.ts +27 -854
  233. package/modern/BarChart/BarLabel/BarLabel.js +32 -5
  234. package/modern/BarChart/BarLabel/BarLabel.types.d.ts +2 -0
  235. package/modern/BarChart/BarLabel/BarLabelItem.d.ts +24 -0
  236. package/modern/BarChart/BarLabel/BarLabelItem.js +18 -6
  237. package/modern/BarChart/BarLabel/BarLabelPlot.js +16 -46
  238. package/modern/BarChart/BarLabel/barLabelClasses.d.ts +3 -1
  239. package/modern/BarChart/BarLabel/barLabelClasses.js +4 -3
  240. package/modern/BarChart/BarPlot.js +37 -61
  241. package/modern/BarChart/barElementClasses.d.ts +21 -0
  242. package/modern/BarChart/barElementClasses.js +19 -0
  243. package/modern/BarChart/getRadius.d.ts +1 -1
  244. package/modern/BarChart/index.d.ts +2 -1
  245. package/modern/BarChart/index.js +2 -1
  246. package/modern/BarChart/seriesConfig/index.js +2 -1
  247. package/modern/BarChart/seriesConfig/tooltip.d.ts +2 -1
  248. package/modern/BarChart/seriesConfig/tooltip.js +12 -0
  249. package/modern/BarChart/types.d.ts +2 -2
  250. package/modern/ChartContainer/ChartContainer.js +4 -0
  251. package/modern/ChartsLabel/ChartsLabelMark.js +0 -4
  252. package/modern/ChartsLabel/index.d.ts +1 -0
  253. package/modern/ChartsLabel/index.js +1 -0
  254. package/modern/ChartsLegend/continuousColorLegendClasses.d.ts +1 -1
  255. package/modern/ChartsTooltip/ChartsAxisTooltipContent.js +47 -55
  256. package/modern/ChartsTooltip/ChartsItemTooltipContent.js +11 -9
  257. package/modern/ChartsTooltip/ChartsTooltip.js +2 -2
  258. package/modern/ChartsTooltip/ChartsTooltipContainer.js +4 -9
  259. package/modern/ChartsTooltip/ChartsTooltipTable.d.ts +3 -1
  260. package/modern/ChartsTooltip/ChartsTooltipTable.js +23 -9
  261. package/modern/ChartsTooltip/chartsTooltipClasses.d.ts +4 -4
  262. package/modern/ChartsTooltip/chartsTooltipClasses.js +2 -2
  263. package/modern/ChartsTooltip/index.d.ts +1 -0
  264. package/modern/ChartsTooltip/index.js +1 -0
  265. package/modern/ChartsTooltip/useAxesTooltip.d.ts +7 -0
  266. package/modern/ChartsTooltip/useAxesTooltip.js +12 -0
  267. package/modern/ChartsTooltip/useAxisTooltip.d.ts +24 -3
  268. package/modern/ChartsTooltip/useAxisTooltip.js +72 -38
  269. package/modern/ChartsTooltip/useItemTooltip.js +4 -1
  270. package/modern/ChartsXAxis/ChartsXAxis.js +5 -2
  271. package/modern/ChartsYAxis/ChartsYAxis.js +69 -17
  272. package/modern/LineChart/AnimatedArea.js +5 -22
  273. package/modern/LineChart/AnimatedLine.d.ts +1 -4
  274. package/modern/LineChart/AnimatedLine.js +9 -24
  275. package/modern/LineChart/AppearingMask.d.ts +5 -0
  276. package/modern/LineChart/AppearingMask.js +23 -18
  277. package/modern/LineChart/CircleMarkElement.js +19 -25
  278. package/modern/LineChart/LineChart.js +2 -0
  279. package/modern/LineChart/LineHighlightPlot.js +3 -4
  280. package/modern/LineChart/MarkElement.js +17 -28
  281. package/modern/LineChart/MarkPlot.js +0 -1
  282. package/modern/LineChart/markElementClasses.d.ts +3 -0
  283. package/modern/LineChart/markElementClasses.js +4 -3
  284. package/modern/LineChart/seriesConfig/index.js +2 -1
  285. package/modern/LineChart/seriesConfig/tooltip.d.ts +2 -1
  286. package/modern/LineChart/seriesConfig/tooltip.js +6 -0
  287. package/modern/PieChart/PieArc.d.ts +19 -11
  288. package/modern/PieChart/PieArc.js +36 -23
  289. package/modern/PieChart/PieArcLabel.d.ts +22 -13
  290. package/modern/PieChart/PieArcLabel.js +51 -47
  291. package/modern/PieChart/PieArcLabelPlot.js +16 -34
  292. package/modern/PieChart/PieArcPlot.js +21 -34
  293. package/modern/PieChart/seriesConfig/tooltip.js +3 -0
  294. package/modern/ScatterChart/ScatterChart.js +2 -0
  295. package/modern/SparkLineChart/SparkLineChart.js +2 -0
  296. package/modern/colorPalettes/colorPalettes.js +2 -2
  297. package/modern/constants/index.d.ts +1 -1
  298. package/modern/constants/index.js +1 -1
  299. package/modern/context/AnimationProvider/AnimationProvider.js +3 -6
  300. package/modern/hooks/animation/index.d.ts +6 -0
  301. package/modern/hooks/animation/index.js +6 -0
  302. package/modern/hooks/animation/useAnimateArea.d.ts +15 -0
  303. package/modern/hooks/animation/useAnimateArea.js +27 -0
  304. package/modern/hooks/animation/useAnimateBar.d.ts +17 -0
  305. package/modern/hooks/animation/useAnimateBar.js +56 -0
  306. package/modern/hooks/animation/useAnimateBarLabel.d.ts +19 -0
  307. package/modern/hooks/animation/useAnimateBarLabel.js +59 -0
  308. package/modern/hooks/animation/useAnimateLine.d.ts +14 -0
  309. package/modern/hooks/animation/useAnimateLine.js +26 -0
  310. package/modern/hooks/animation/useAnimatePieArc.d.ts +15 -0
  311. package/modern/hooks/animation/useAnimatePieArc.js +70 -0
  312. package/modern/hooks/animation/useAnimatePieArcLabel.d.ts +15 -0
  313. package/modern/hooks/animation/useAnimatePieArcLabel.js +72 -0
  314. package/modern/hooks/index.d.ts +2 -1
  315. package/modern/hooks/index.js +2 -1
  316. package/modern/hooks/useInteractionItemProps.js +11 -0
  317. package/modern/index.js +1 -1
  318. package/modern/internals/animation/Transition.d.ts +37 -0
  319. package/modern/internals/animation/Transition.js +83 -0
  320. package/modern/internals/animation/animation.d.ts +4 -0
  321. package/modern/internals/animation/animation.js +4 -0
  322. package/modern/internals/animation/useAnimate.d.ts +19 -0
  323. package/modern/internals/animation/useAnimate.js +74 -0
  324. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.d.ts +1 -1
  325. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.js +9 -3
  326. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisTriggerTooltip.d.ts +5 -0
  327. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisTriggerTooltip.js +21 -0
  328. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxisRendering.selectors.d.ts +8 -32
  329. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.d.ts +9 -1
  330. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianInteraction.selectors.js +60 -26
  331. package/modern/internals/plugins/models/seriesConfig/seriesConfig.types.d.ts +3 -1
  332. package/modern/internals/plugins/models/seriesConfig/tooltipGetter.types.d.ts +10 -4
  333. package/modern/internals/shallowEqual.d.ts +8 -0
  334. package/modern/internals/shallowEqual.js +31 -0
  335. package/modern/models/axis.d.ts +8 -0
  336. package/modern/themeAugmentation/overrides.d.ts +1 -1
  337. package/package.json +8 -9
  338. package/themeAugmentation/overrides.d.ts +1 -1
  339. package/tsconfig.build.tsbuildinfo +1 -1
  340. package/PieChart/dataTransform/transition.d.ts +0 -4
  341. package/PieChart/dataTransform/transition.js +0 -145
  342. package/esm/PieChart/dataTransform/transition.d.ts +0 -4
  343. package/esm/PieChart/dataTransform/transition.js +0 -137
  344. package/modern/PieChart/dataTransform/transition.d.ts +0 -4
  345. package/modern/PieChart/dataTransform/transition.js +0 -137
@@ -6,7 +6,7 @@ import Typography from '@mui/material/Typography';
6
6
  import clsx from 'clsx';
7
7
  import { useUtilityClasses } from "./chartsTooltipClasses.js";
8
8
  import { ChartsTooltipCell, ChartsTooltipPaper, ChartsTooltipRow, ChartsTooltipTable } from "./ChartsTooltipTable.js";
9
- import { useAxisTooltip } from "./useAxisTooltip.js";
9
+ import { useAxesTooltip } from "./useAxesTooltip.js";
10
10
  import { useXAxis, useYAxis } from "../hooks/index.js";
11
11
  import { ChartsLabelMark } from "../ChartsLabel/ChartsLabelMark.js";
12
12
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
@@ -15,70 +15,62 @@ function ChartsAxisTooltipContent(props) {
15
15
  classes: propClasses,
16
16
  sx
17
17
  } = props;
18
- const tooltipData = useAxisTooltip();
18
+ const tooltipData = useAxesTooltip();
19
19
  const xAxis = useXAxis();
20
20
  const yAxis = useYAxis();
21
21
  const classes = useUtilityClasses(propClasses);
22
22
  if (tooltipData === null) {
23
23
  return null;
24
24
  }
25
- const {
26
- axisDirection,
27
- axisValue,
28
- axisFormattedValue,
29
- seriesItems
30
- } = tooltipData;
31
- const axis = axisDirection === 'x' ? xAxis : yAxis;
32
25
  return /*#__PURE__*/_jsx(ChartsTooltipPaper, {
33
26
  sx: sx,
34
27
  className: classes.paper,
35
- children: /*#__PURE__*/_jsxs(ChartsTooltipTable, {
36
- className: classes.table,
37
- children: [axisValue != null && !axis.hideTooltip && /*#__PURE__*/_jsx("thead", {
38
- children: /*#__PURE__*/_jsx(ChartsTooltipRow, {
39
- className: classes.row,
40
- children: /*#__PURE__*/_jsx(ChartsTooltipCell, {
41
- colSpan: 3,
42
- className: clsx(classes.cell, classes.axisValueCell),
43
- children: /*#__PURE__*/_jsx(Typography, {
44
- children: axisFormattedValue
45
- })
46
- })
47
- })
48
- }), /*#__PURE__*/_jsx("tbody", {
49
- children: seriesItems.map(({
50
- seriesId,
51
- color,
52
- formattedValue,
53
- formattedLabel,
54
- markType
55
- }) => {
56
- if (formattedValue == null) {
57
- return null;
58
- }
59
- return /*#__PURE__*/_jsxs(ChartsTooltipRow, {
60
- className: classes.row,
61
- children: [/*#__PURE__*/_jsx(ChartsTooltipCell, {
62
- className: clsx(classes.markCell, classes.cell),
63
- children: color && /*#__PURE__*/_jsx(ChartsLabelMark, {
64
- type: markType,
65
- color: color,
66
- className: classes.mark
67
- })
68
- }), /*#__PURE__*/_jsx(ChartsTooltipCell, {
69
- className: clsx(classes.labelCell, classes.cell),
70
- children: formattedLabel ? /*#__PURE__*/_jsx(Typography, {
71
- children: formattedLabel
72
- }) : null
73
- }), /*#__PURE__*/_jsx(ChartsTooltipCell, {
74
- className: clsx(classes.valueCell, classes.cell),
75
- children: /*#__PURE__*/_jsx(Typography, {
28
+ children: tooltipData.map(({
29
+ axisId,
30
+ axisDirection,
31
+ axisValue,
32
+ axisFormattedValue,
33
+ seriesItems
34
+ }) => {
35
+ const axis = axisDirection === 'x' ? xAxis : yAxis;
36
+ return /*#__PURE__*/_jsxs(ChartsTooltipTable, {
37
+ className: classes.table,
38
+ children: [axisValue != null && !axis.hideTooltip && /*#__PURE__*/_jsx(Typography, {
39
+ component: "caption",
40
+ children: axisFormattedValue
41
+ }), /*#__PURE__*/_jsx("tbody", {
42
+ children: seriesItems.map(({
43
+ seriesId,
44
+ color,
45
+ formattedValue,
46
+ formattedLabel,
47
+ markType
48
+ }) => {
49
+ if (formattedValue == null) {
50
+ return null;
51
+ }
52
+ return /*#__PURE__*/_jsxs(ChartsTooltipRow, {
53
+ className: classes.row,
54
+ children: [/*#__PURE__*/_jsxs(ChartsTooltipCell, {
55
+ className: clsx(classes.labelCell, classes.cell),
56
+ component: "th",
57
+ children: [/*#__PURE__*/_jsx("div", {
58
+ className: classes.markContainer,
59
+ children: /*#__PURE__*/_jsx(ChartsLabelMark, {
60
+ type: markType,
61
+ color: color,
62
+ className: classes.mark
63
+ })
64
+ }), formattedLabel || null]
65
+ }), /*#__PURE__*/_jsx(ChartsTooltipCell, {
66
+ className: clsx(classes.valueCell, classes.cell),
67
+ component: "td",
76
68
  children: formattedValue
77
- })
78
- })]
79
- }, seriesId);
80
- })
81
- })]
69
+ })]
70
+ }, seriesId);
71
+ })
72
+ })]
73
+ }, axisId);
82
74
  })
83
75
  });
84
76
  }
@@ -32,18 +32,20 @@ function ChartsItemTooltipContent(props) {
32
32
  children: /*#__PURE__*/_jsx("tbody", {
33
33
  children: /*#__PURE__*/_jsxs(ChartsTooltipRow, {
34
34
  className: classes.row,
35
- children: [/*#__PURE__*/_jsx(ChartsTooltipCell, {
36
- className: clsx(classes.markCell, classes.cell),
37
- children: /*#__PURE__*/_jsx(ChartsLabelMark, {
38
- type: markType,
39
- color: color,
40
- className: classes.mark
41
- })
42
- }), /*#__PURE__*/_jsx(ChartsTooltipCell, {
35
+ children: [/*#__PURE__*/_jsxs(ChartsTooltipCell, {
43
36
  className: clsx(classes.labelCell, classes.cell),
44
- children: label
37
+ component: "th",
38
+ children: [/*#__PURE__*/_jsx("div", {
39
+ className: classes.markContainer,
40
+ children: /*#__PURE__*/_jsx(ChartsLabelMark, {
41
+ type: markType,
42
+ color: color,
43
+ className: classes.mark
44
+ })
45
+ }), label]
45
46
  }), /*#__PURE__*/_jsx(ChartsTooltipCell, {
46
47
  className: clsx(classes.valueCell, classes.cell),
48
+ component: "td",
47
49
  children: formattedValue
48
50
  })]
49
51
  })
@@ -58,7 +58,7 @@ process.env.NODE_ENV !== "production" ? ChartsTooltip.propTypes = {
58
58
  * The components used for each slot inside the Popper.
59
59
  * Either a string to use a HTML element or a component.
60
60
  *
61
- * @deprecated use the `slots` prop instead. This prop will be removed in v7. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/).
61
+ * @deprecated use the `slots` prop instead. This prop will be removed in a future major release. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/).
62
62
  * @default {}
63
63
  */
64
64
  components: PropTypes.shape({
@@ -67,7 +67,7 @@ process.env.NODE_ENV !== "production" ? ChartsTooltip.propTypes = {
67
67
  /**
68
68
  * The props used for each slot inside the Popper.
69
69
  *
70
- * @deprecated use the `slotProps` prop instead. This prop will be removed in v7. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/).
70
+ * @deprecated use the `slotProps` prop instead. This prop will be removed in a future major release. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/).
71
71
  * @default {}
72
72
  */
73
73
  componentsProps: PropTypes.shape({
@@ -14,9 +14,8 @@ import { useSvgRef } from "../hooks/useSvgRef.js";
14
14
  import { usePointerType } from "./utils.js";
15
15
  import { useSelector } from "../internals/store/useSelector.js";
16
16
  import { useStore } from "../internals/store/useStore.js";
17
- import { useXAxis } from "../hooks/index.js";
18
17
  import { selectorChartsInteractionItemIsDefined } from "../internals/plugins/featurePlugins/useChartInteraction/index.js";
19
- import { selectorChartsInteractionXAxisIsDefined, selectorChartsInteractionYAxisIsDefined } from "../internals/plugins/featurePlugins/useChartCartesianAxis/index.js";
18
+ import { selectorChartsInteractionAxisTooltip } from "../internals/plugins/featurePlugins/useChartCartesianAxis/index.js";
20
19
  import { jsx as _jsx } from "react/jsx-runtime";
21
20
  const ChartsTooltipRoot = styled(Popper, {
22
21
  name: 'MuiChartsTooltip',
@@ -28,7 +27,6 @@ const ChartsTooltipRoot = styled(Popper, {
28
27
  pointerEvents: 'none',
29
28
  zIndex: theme.zIndex.modal
30
29
  }));
31
- const axisHasData = axis => axis?.data !== undefined && axis.data.length !== 0;
32
30
 
33
31
  /**
34
32
  * Demos:
@@ -52,16 +50,13 @@ function ChartsTooltipContainer(inProps) {
52
50
  other = _objectWithoutPropertiesLoose(props, _excluded);
53
51
  const svgRef = useSvgRef();
54
52
  const pointerType = usePointerType();
55
- const xAxis = useXAxis();
56
53
  const popperRef = React.useRef(null);
57
54
  const positionRef = useLazyRef(() => ({
58
55
  x: 0,
59
56
  y: 0
60
57
  }));
61
58
  const store = useStore();
62
- const isOpen = useSelector(store,
63
- // eslint-disable-next-line no-nested-ternary
64
- trigger === 'axis' ? axisHasData(xAxis) ? selectorChartsInteractionXAxisIsDefined : selectorChartsInteractionYAxisIsDefined : selectorChartsInteractionItemIsDefined);
59
+ const isOpen = useSelector(store, trigger === 'axis' ? selectorChartsInteractionAxisTooltip : selectorChartsInteractionItemIsDefined);
65
60
  const popperOpen = pointerType !== null && isOpen; // tooltipHasData;
66
61
 
67
62
  React.useEffect(() => {
@@ -155,7 +150,7 @@ process.env.NODE_ENV !== "production" ? ChartsTooltipContainer.propTypes = {
155
150
  * The components used for each slot inside the Popper.
156
151
  * Either a string to use a HTML element or a component.
157
152
  *
158
- * @deprecated use the `slots` prop instead. This prop will be removed in v7. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/).
153
+ * @deprecated use the `slots` prop instead. This prop will be removed in a future major release. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/).
159
154
  * @default {}
160
155
  */
161
156
  components: PropTypes.shape({
@@ -164,7 +159,7 @@ process.env.NODE_ENV !== "production" ? ChartsTooltipContainer.propTypes = {
164
159
  /**
165
160
  * The props used for each slot inside the Popper.
166
161
  *
167
- * @deprecated use the `slotProps` prop instead. This prop will be removed in v7. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/).
162
+ * @deprecated use the `slotProps` prop instead. This prop will be removed in a future major release. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/).
168
163
  * @default {}
169
164
  */
170
165
  componentsProps: PropTypes.shape({
@@ -13,4 +13,6 @@ export declare const ChartsTooltipRow: import("@emotion/styled").StyledComponent
13
13
  /**
14
14
  * @ignore - internal component.
15
15
  */
16
- export declare const ChartsTooltipCell: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, Pick<import("react").DetailedHTMLProps<import("react").TdHTMLAttributes<HTMLTableDataCellElement>, HTMLTableDataCellElement>, keyof import("react").ClassAttributes<HTMLTableDataCellElement> | keyof import("react").TdHTMLAttributes<HTMLTableDataCellElement>>, {}>;
16
+ export declare const ChartsTooltipCell: import("@emotion/styled").StyledComponent<Pick<import("@mui/material").TypographyOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "p" | "style" | "typography" | "zIndex" | "classes" | "border" | "boxShadow" | "fontWeight" | "alignContent" | "alignItems" | "alignSelf" | "bottom" | "boxSizing" | "color" | "columnGap" | "display" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "fontFamily" | "fontSize" | "fontStyle" | "gridAutoColumns" | "gridAutoFlow" | "gridAutoRows" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "height" | "justifyContent" | "justifyItems" | "justifySelf" | "left" | "letterSpacing" | "lineHeight" | "marginBlockEnd" | "marginBlockStart" | "marginBottom" | "marginInlineEnd" | "marginInlineStart" | "marginLeft" | "marginRight" | "marginTop" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "order" | "paddingBlockEnd" | "paddingBlockStart" | "paddingBottom" | "paddingInlineEnd" | "paddingInlineStart" | "paddingLeft" | "paddingRight" | "paddingTop" | "position" | "right" | "rowGap" | "textAlign" | "textOverflow" | "textTransform" | "top" | "visibility" | "whiteSpace" | "width" | "borderBottom" | "borderColor" | "borderLeft" | "borderRadius" | "borderRight" | "borderTop" | "flex" | "gap" | "gridArea" | "gridColumn" | "gridRow" | "margin" | "marginBlock" | "marginInline" | "overflow" | "padding" | "paddingBlock" | "paddingInline" | "bgcolor" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "marginX" | "my" | "marginY" | "pt" | "pr" | "pb" | "pl" | "px" | "paddingX" | "py" | "paddingY" | "displayPrint" | "className" | "children" | "sx" | "align" | "gutterBottom" | "noWrap" | "paragraph" | "variant" | "variantMapping">, "p" | "slot" | "style" | "title" | "ref" | "typography" | "zIndex" | "classes" | "border" | "boxShadow" | "fontWeight" | "alignContent" | "alignItems" | "alignSelf" | "bottom" | "boxSizing" | "color" | "columnGap" | "content" | "display" | "flexBasis" | "flexDirection" | "flexGrow" | "flexShrink" | "flexWrap" | "fontFamily" | "fontSize" | "fontStyle" | "gridAutoColumns" | "gridAutoFlow" | "gridAutoRows" | "gridTemplateAreas" | "gridTemplateColumns" | "gridTemplateRows" | "height" | "justifyContent" | "justifyItems" | "justifySelf" | "left" | "letterSpacing" | "lineHeight" | "marginBlockEnd" | "marginBlockStart" | "marginBottom" | "marginInlineEnd" | "marginInlineStart" | "marginLeft" | "marginRight" | "marginTop" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "order" | "paddingBlockEnd" | "paddingBlockStart" | "paddingBottom" | "paddingInlineEnd" | "paddingInlineStart" | "paddingLeft" | "paddingRight" | "paddingTop" | "position" | "right" | "rowGap" | "textAlign" | "textOverflow" | "textTransform" | "top" | "translate" | "visibility" | "whiteSpace" | "width" | "borderBottom" | "borderColor" | "borderLeft" | "borderRadius" | "borderRight" | "borderTop" | "flex" | "gap" | "gridArea" | "gridColumn" | "gridRow" | "margin" | "marginBlock" | "marginInline" | "overflow" | "padding" | "paddingBlock" | "paddingInline" | "bgcolor" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "marginX" | "my" | "marginY" | "pt" | "pr" | "pb" | "pl" | "px" | "paddingX" | "py" | "paddingY" | "displayPrint" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "autoCapitalize" | "autoFocus" | "className" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "enterKeyHint" | "hidden" | "id" | "lang" | "nonce" | "spellCheck" | "tabIndex" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "rel" | "resource" | "rev" | "typeof" | "vocab" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "popover" | "popoverTargetAction" | "popoverTarget" | "inert" | "inputMode" | "is" | "exportparts" | "part" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-braillelabel" | "aria-brailleroledescription" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colindextext" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-description" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowindextext" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onResize" | "onResizeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerLeave" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onScrollEnd" | "onScrollEndCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onToggle" | "onBeforeToggle" | "onTransitionCancel" | "onTransitionCancelCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "onTransitionRun" | "onTransitionRunCapture" | "onTransitionStart" | "onTransitionStartCapture" | "sx" | "align" | "gutterBottom" | "noWrap" | "paragraph" | "variant" | "variantMapping"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme> & {
17
+ component?: React.ElementType;
18
+ }, {}, {}>;
@@ -1,4 +1,5 @@
1
1
  import { styled } from '@mui/material/styles';
2
+ import Typography from '@mui/material/Typography';
2
3
  import { chartsTooltipClasses } from "./chartsTooltipClasses.js";
3
4
 
4
5
  /**
@@ -28,8 +29,14 @@ export const ChartsTooltipTable = styled('table', {
28
29
  theme
29
30
  }) => ({
30
31
  borderSpacing: 0,
31
- '& thead td': {
32
- borderBottom: `solid ${(theme.vars || theme).palette.divider} 1px`
32
+ '& caption': {
33
+ borderBottom: `solid ${(theme.vars || theme).palette.divider} 1px`,
34
+ padding: theme.spacing(0.5, 1.5),
35
+ textAlign: 'start',
36
+ whiteSpace: 'nowrap',
37
+ '& span': {
38
+ marginRight: theme.spacing(1.5)
39
+ }
33
40
  }
34
41
  }));
35
42
 
@@ -54,20 +61,27 @@ export const ChartsTooltipRow = styled('tr', {
54
61
  /**
55
62
  * @ignore - internal component.
56
63
  */
57
- export const ChartsTooltipCell = styled('td', {
64
+ export const ChartsTooltipCell = styled(Typography, {
58
65
  name: 'MuiChartsTooltip',
59
- slot: 'Cell',
60
- overridesResolver: (props, styles) => styles.cell
66
+ slot: 'Cell'
61
67
  })(({
62
68
  theme
63
69
  }) => ({
64
70
  verticalAlign: 'middle',
65
71
  color: (theme.vars || theme).palette.text.secondary,
66
- [`&.${chartsTooltipClasses.labelCell}`]: {
72
+ textAlign: 'start',
73
+ [`&.${chartsTooltipClasses.cell}`]: {
67
74
  paddingLeft: theme.spacing(1),
68
- paddingRight: theme.spacing(1.5),
75
+ paddingRight: theme.spacing(1)
76
+ },
77
+ [`&.${chartsTooltipClasses.labelCell}`]: {
69
78
  fontWeight: theme.typography.fontWeightRegular
70
79
  },
80
+ [`& .${chartsTooltipClasses.markContainer}`]: {
81
+ display: 'inline-block',
82
+ width: `calc(20px + ${theme.spacing(1.5)})`,
83
+ verticalAlign: 'middle'
84
+ },
71
85
  [`&.${chartsTooltipClasses.valueCell}, &.${chartsTooltipClasses.axisValueCell}`]: {
72
86
  color: (theme.vars || theme).palette.text.primary,
73
87
  fontWeight: theme.typography.fontWeightMedium
@@ -76,10 +90,10 @@ export const ChartsTooltipCell = styled('td', {
76
90
  paddingLeft: theme.spacing(1.5),
77
91
  paddingRight: theme.spacing(1.5)
78
92
  },
79
- 'td:first-of-type&': {
93
+ 'td:first-of-type&, th:first-of-type&': {
80
94
  paddingLeft: theme.spacing(1.5)
81
95
  },
82
- 'td:last-of-type&': {
96
+ 'td:last-of-type&, th:last-of-type&': {
83
97
  paddingRight: theme.spacing(1.5)
84
98
  }
85
99
  }));
@@ -11,8 +11,8 @@ export interface ChartsTooltipClasses {
11
11
  cell: string;
12
12
  /** Styles applied to the mark element. */
13
13
  mark: string;
14
- /** Styles applied to the markCell element. */
15
- markCell: string;
14
+ /** Styles applied to the markContainer element. */
15
+ markContainer: string;
16
16
  /** Styles applied to the labelCell element. */
17
17
  labelCell: string;
18
18
  /** Styles applied to the valueCell element. */
@@ -20,7 +20,7 @@ export interface ChartsTooltipClasses {
20
20
  /** Styles applied to the axisValueCell element. Only available for axis tooltip. */
21
21
  axisValueCell: string;
22
22
  }
23
- export type ChartsTooltipClassKey = keyof Omit<ChartsTooltipClasses, 'markCell' | 'labelCell' | 'valueCell'>;
23
+ export type ChartsTooltipClassKey = keyof Omit<ChartsTooltipClasses, 'markContainer' | 'labelCell' | 'valueCell'>;
24
24
  export declare function getChartsTooltipUtilityClass(slot: string): string;
25
25
  export declare const chartsTooltipClasses: ChartsTooltipClasses;
26
- export declare const useUtilityClasses: (classes?: Partial<ChartsTooltipClasses>) => Record<"root" | "mark" | "table" | "cell" | "row" | "markCell" | "labelCell" | "valueCell" | "paper" | "axisValueCell", string>;
26
+ export declare const useUtilityClasses: (classes?: Partial<ChartsTooltipClasses>) => Record<"root" | "mark" | "table" | "cell" | "row" | "markContainer" | "labelCell" | "valueCell" | "paper" | "axisValueCell", string>;
@@ -4,7 +4,7 @@ import composeClasses from '@mui/utils/composeClasses';
4
4
  export function getChartsTooltipUtilityClass(slot) {
5
5
  return generateUtilityClass('MuiChartsTooltip', slot);
6
6
  }
7
- export const chartsTooltipClasses = generateUtilityClasses('MuiChartsTooltip', ['root', 'paper', 'table', 'row', 'cell', 'mark', 'markCell', 'labelCell', 'valueCell', 'axisValueCell']);
7
+ export const chartsTooltipClasses = generateUtilityClasses('MuiChartsTooltip', ['root', 'paper', 'table', 'row', 'cell', 'mark', 'markContainer', 'labelCell', 'valueCell', 'axisValueCell']);
8
8
  export const useUtilityClasses = classes => {
9
9
  const slots = {
10
10
  root: ['root'],
@@ -13,7 +13,7 @@ export const useUtilityClasses = classes => {
13
13
  row: ['row'],
14
14
  cell: ['cell'],
15
15
  mark: ['mark'],
16
- markCell: ['markCell'],
16
+ markContainer: ['markContainer'],
17
17
  labelCell: ['labelCell'],
18
18
  valueCell: ['valueCell'],
19
19
  axisValueCell: ['axisValueCell']
@@ -7,5 +7,6 @@ export * from "./ChartsItemTooltipContent.js";
7
7
  export * from "./ChartsTooltipTable.js";
8
8
  export * from "./useItemTooltip.js";
9
9
  export * from "./useAxisTooltip.js";
10
+ export * from "./useAxesTooltip.js";
10
11
  export { useMouseTracker } from "./utils.js";
11
12
  export * from "./ChartTooltip.types.js";
@@ -6,5 +6,6 @@ export * from "./ChartsItemTooltipContent.js";
6
6
  export * from "./ChartsTooltipTable.js";
7
7
  export * from "./useItemTooltip.js";
8
8
  export * from "./useAxisTooltip.js";
9
+ export * from "./useAxesTooltip.js";
9
10
  export { useMouseTracker } from "./utils.js";
10
11
  export * from "./ChartTooltip.types.js";
@@ -0,0 +1,7 @@
1
+ import { UseAxisTooltipParams, UseAxisTooltipReturnValue } from "./useAxisTooltip.js";
2
+ type UseAxesTooltipParams = Omit<UseAxisTooltipParams, 'multipleAxes'>;
3
+ /**
4
+ * Returns the axes to display in the tooltip and the series item related to them.
5
+ */
6
+ export declare function useAxesTooltip(params?: UseAxesTooltipParams): UseAxisTooltipReturnValue[] | null;
7
+ export {};
@@ -0,0 +1,12 @@
1
+ 'use client';
2
+
3
+ import _extends from "@babel/runtime/helpers/esm/extends";
4
+ import { useAxisTooltip } from "./useAxisTooltip.js";
5
+ /**
6
+ * Returns the axes to display in the tooltip and the series item related to them.
7
+ */
8
+ export function useAxesTooltip(params) {
9
+ return useAxisTooltip(_extends({}, params, {
10
+ multipleAxes: true
11
+ }));
12
+ }
@@ -1,12 +1,25 @@
1
1
  import { SeriesId } from "../models/seriesType/common.js";
2
+ import { AxisId } from "../models/axis.js";
2
3
  import { CartesianChartSeriesType, ChartsSeriesConfig } from "../models/seriesType/config.js";
3
4
  import { ChartsLabelMarkProps } from "../ChartsLabel/index.js";
4
5
  export interface UseAxisTooltipReturnValue<SeriesT extends CartesianChartSeriesType = CartesianChartSeriesType, AxisValueT extends string | number | Date = string | number | Date> {
5
6
  axisDirection: 'x' | 'y';
6
- dataIndex: number;
7
- seriesItems: SeriesItem<SeriesT>[];
7
+ axisId: AxisId;
8
8
  axisValue: AxisValueT;
9
9
  axisFormattedValue: string;
10
+ dataIndex: number;
11
+ seriesItems: SeriesItem<SeriesT>[];
12
+ }
13
+ export interface UseAxisTooltipParams {
14
+ /**
15
+ * If `true`, the hook returns an array with an object per active axis.
16
+ */
17
+ multipleAxes?: boolean;
18
+ /**
19
+ * The axis directions to consider.
20
+ * If not defined, all directions are considered
21
+ */
22
+ directions?: ('x' | 'y')[];
10
23
  }
11
24
  interface SeriesItem<T extends CartesianChartSeriesType> {
12
25
  seriesId: SeriesId;
@@ -16,5 +29,13 @@ interface SeriesItem<T extends CartesianChartSeriesType> {
16
29
  formattedLabel: string | null;
17
30
  markType: ChartsLabelMarkProps['type'];
18
31
  }
19
- export declare function useAxisTooltip(): UseAxisTooltipReturnValue | null;
32
+ /**
33
+ * @deprecated Use `useAxesTooltip` instead.
34
+ */
35
+ export declare function useAxisTooltip(params: UseAxisTooltipParams & {
36
+ multipleAxes: true;
37
+ }): UseAxisTooltipReturnValue[] | null;
38
+ export declare function useAxisTooltip(params?: UseAxisTooltipParams & {
39
+ multipleAxes?: false;
40
+ }): UseAxisTooltipReturnValue | null;
20
41
  export {};
@@ -9,13 +9,38 @@ import { isCartesianSeriesType } from "../internals/isCartesian.js";
9
9
  import { utcFormatter } from "./utils.js";
10
10
  import { useXAxes, useXAxis, useYAxes, useYAxis } from "../hooks/useAxis.js";
11
11
  import { useZAxes } from "../hooks/useZAxis.js";
12
- import { selectorChartsInteractionXAxis, selectorChartsInteractionYAxis } from "../internals/plugins/featurePlugins/useChartCartesianAxis/index.js";
13
- export function useAxisTooltip() {
12
+ import { selectorChartsInteractionTooltipXAxes, selectorChartsInteractionTooltipYAxes } from "../internals/plugins/featurePlugins/useChartCartesianAxis/index.js";
13
+ function defaultAxisTooltipConfig(axis, dataIndex, axisDirection) {
14
+ const axisValue = axis.data?.[dataIndex] ?? null;
15
+ const axisFormatter = axis.valueFormatter ?? (v => axis.scaleType === 'utc' ? utcFormatter(v) : v.toLocaleString());
16
+ const axisFormattedValue = axisFormatter(axisValue, {
17
+ location: 'tooltip',
18
+ scale: axis.scale
19
+ });
20
+ return {
21
+ axisDirection,
22
+ axisId: axis.id,
23
+ dataIndex,
24
+ axisValue,
25
+ axisFormattedValue,
26
+ seriesItems: []
27
+ };
28
+ }
29
+
30
+ /**
31
+ * @deprecated Use `useAxesTooltip` instead.
32
+ */
33
+
34
+ export function useAxisTooltip(params = {}) {
35
+ const {
36
+ multipleAxes,
37
+ directions
38
+ } = params;
14
39
  const defaultXAxis = useXAxis();
15
40
  const defaultYAxis = useYAxis();
16
- const xAxisHasData = defaultXAxis.data !== undefined && defaultXAxis.data.length !== 0;
17
41
  const store = useStore();
18
- const axisData = useSelector(store, xAxisHasData ? selectorChartsInteractionXAxis : selectorChartsInteractionYAxis);
42
+ const tooltipXAxes = useSelector(store, selectorChartsInteractionTooltipXAxes);
43
+ const tooltipYAxes = useSelector(store, selectorChartsInteractionTooltipYAxes);
19
44
  const series = useSeries();
20
45
  const {
21
46
  xAxis
@@ -28,61 +53,70 @@ export function useAxisTooltip() {
28
53
  zAxisIds
29
54
  } = useZAxes();
30
55
  const colorProcessors = useColorProcessor();
31
- if (axisData === null) {
56
+ if (tooltipXAxes.length === 0 && tooltipYAxes.length === 0) {
32
57
  return null;
33
58
  }
34
- const {
35
- index: dataIndex,
36
- value: axisValue
37
- } = axisData;
38
- const USED_AXIS_ID = xAxisHasData ? defaultXAxis.id : defaultYAxis.id;
39
- const usedAxis = xAxisHasData ? defaultXAxis : defaultYAxis;
40
- const relevantSeries = Object.keys(series).filter(isCartesianSeriesType).flatMap(seriesType => {
59
+ const tooltipAxes = [];
60
+ if (directions === undefined || directions.includes('x')) {
61
+ tooltipXAxes.forEach(({
62
+ axisId,
63
+ dataIndex
64
+ }) => {
65
+ if (!multipleAxes && tooltipAxes.length > 1) {
66
+ return;
67
+ }
68
+ tooltipAxes.push(defaultAxisTooltipConfig(xAxis[axisId], dataIndex, 'x'));
69
+ });
70
+ }
71
+ if (directions === undefined || directions.includes('y')) {
72
+ tooltipYAxes.forEach(({
73
+ axisId,
74
+ dataIndex
75
+ }) => {
76
+ if (!multipleAxes && tooltipAxes.length > 1) {
77
+ return;
78
+ }
79
+ tooltipAxes.push(defaultAxisTooltipConfig(yAxis[axisId], dataIndex, 'y'));
80
+ });
81
+ }
82
+ Object.keys(series).filter(isCartesianSeriesType).flatMap(seriesType => {
41
83
  const seriesOfType = series[seriesType];
42
84
  if (!seriesOfType) {
43
85
  return [];
44
86
  }
45
- return seriesOfType.seriesOrder.map(seriesId => {
87
+ return seriesOfType.seriesOrder.forEach(seriesId => {
46
88
  const seriesToAdd = seriesOfType.series[seriesId];
47
- const providedXAxisId = seriesToAdd.xAxisId;
48
- const providedYAxisId = seriesToAdd.yAxisId;
49
- const axisKey = xAxisHasData ? providedXAxisId : providedYAxisId;
50
-
89
+ const providedXAxisId = seriesToAdd.xAxisId ?? defaultXAxis.id;
90
+ const providedYAxisId = seriesToAdd.yAxisId ?? defaultYAxis.id;
91
+ const tooltipItemIndex = tooltipAxes.findIndex(({
92
+ axisDirection,
93
+ axisId
94
+ }) => axisDirection === 'x' && axisId === providedXAxisId || axisDirection === 'y' && axisId === providedYAxisId);
51
95
  // Test if the series uses the default axis
52
- if (axisKey === undefined || axisKey === USED_AXIS_ID) {
53
- const xAxisId = providedXAxisId ?? defaultXAxis.id;
54
- const yAxisId = providedYAxisId ?? defaultYAxis.id;
96
+ if (tooltipItemIndex >= 0) {
55
97
  const zAxisId = 'zAxisId' in seriesToAdd ? seriesToAdd.zAxisId : zAxisIds[0];
56
- const color = colorProcessors[seriesType]?.(seriesToAdd, xAxis[xAxisId], yAxis[yAxisId], zAxisId ? zAxis[zAxisId] : undefined)(dataIndex) ?? '';
98
+ const {
99
+ dataIndex
100
+ } = tooltipAxes[tooltipItemIndex];
101
+ const color = colorProcessors[seriesType]?.(seriesToAdd, xAxis[providedXAxisId], yAxis[providedYAxisId], zAxisId ? zAxis[zAxisId] : undefined)(dataIndex) ?? '';
57
102
  const value = seriesToAdd.data[dataIndex] ?? null;
58
103
  const formattedValue = seriesToAdd.valueFormatter(value, {
59
104
  dataIndex
60
105
  });
61
106
  const formattedLabel = getLabel(seriesToAdd.label, 'tooltip') ?? null;
62
- return {
107
+ tooltipAxes[tooltipItemIndex].seriesItems.push({
63
108
  seriesId,
64
109
  color,
65
110
  value,
66
111
  formattedValue,
67
112
  formattedLabel,
68
113
  markType: seriesToAdd.labelMarkType
69
- };
114
+ });
70
115
  }
71
- return undefined;
72
116
  });
73
- }).filter(function truthy(item) {
74
- return Boolean(item);
75
- });
76
- const axisFormatter = usedAxis.valueFormatter ?? (v => usedAxis.scaleType === 'utc' ? utcFormatter(v) : v.toLocaleString());
77
- const axisFormattedValue = axisFormatter(axisValue, {
78
- location: 'tooltip',
79
- scale: usedAxis.scale
80
117
  });
81
- return {
82
- axisDirection: xAxisHasData ? 'x' : 'y',
83
- dataIndex,
84
- seriesItems: relevantSeries,
85
- axisValue,
86
- axisFormattedValue
87
- };
118
+ if (!multipleAxes) {
119
+ return tooltipAxes.length === 0 ? tooltipAxes[0] : null;
120
+ }
121
+ return tooltipAxes;
88
122
  }
@@ -30,7 +30,10 @@ export function useItemTooltip() {
30
30
  if (!identifier || identifier.dataIndex === undefined) {
31
31
  return null;
32
32
  }
33
- const itemSeries = series[identifier.type].series[identifier.seriesId];
33
+ const itemSeries = series[identifier.type]?.series[identifier.seriesId];
34
+ if (!itemSeries) {
35
+ return null;
36
+ }
34
37
  const getColor = seriesConfig[itemSeries.type].colorProcessor?.(itemSeries, xAxisId && xAxis[xAxisId], yAxisId && yAxis[yAxisId], zAxisId && zAxis[zAxisId]) ?? (() => '');
35
38
  return seriesConfig[itemSeries.type].tooltipGetter({
36
39
  series: itemSeries,