@mui/x-charts 6.0.0-alpha.9 → 6.18.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (325) hide show
  1. package/BarChart/BarChart.d.ts +26 -5
  2. package/BarChart/BarChart.js +93 -17
  3. package/BarChart/BarElement.d.ts +1319 -4
  4. package/BarChart/BarElement.js +10 -10
  5. package/BarChart/BarPlot.d.ts +17 -1
  6. package/BarChart/BarPlot.js +152 -66
  7. package/BarChart/formatter.js +2 -3
  8. package/BarChart/legend.js +1 -2
  9. package/CHANGELOG.md +797 -59
  10. package/ChartContainer/index.js +7 -5
  11. package/ChartsAxis/ChartsAxis.d.ts +9 -0
  12. package/ChartsAxis/ChartsAxis.js +33 -7
  13. package/ChartsAxis/axisClasses.d.ts +3 -3
  14. package/ChartsAxis/axisClasses.js +1 -2
  15. package/ChartsAxisHighlight/ChartsAxisHighlight.d.ts +21 -0
  16. package/ChartsAxisHighlight/ChartsAxisHighlight.js +61 -22
  17. package/ChartsClipPath/ChartsClipPath.d.ts +5 -0
  18. package/ChartsClipPath/ChartsClipPath.js +7 -2
  19. package/ChartsLegend/ChartsLegend.d.ts +45 -24
  20. package/ChartsLegend/ChartsLegend.js +193 -151
  21. package/ChartsLegend/chartsLegendClasses.d.ts +1 -1
  22. package/ChartsLegend/chartsLegendClasses.js +3 -4
  23. package/ChartsLegend/utils.d.ts +1 -6
  24. package/ChartsReferenceLine/ChartsReferenceLine.d.ts +10 -0
  25. package/ChartsReferenceLine/ChartsReferenceLine.js +78 -0
  26. package/ChartsReferenceLine/ChartsXReferenceLine.d.ts +13 -0
  27. package/ChartsReferenceLine/ChartsXReferenceLine.js +112 -0
  28. package/ChartsReferenceLine/ChartsYReferenceLine.d.ts +13 -0
  29. package/ChartsReferenceLine/ChartsYReferenceLine.js +112 -0
  30. package/ChartsReferenceLine/chartsReferenceLineClasses.d.ts +15 -0
  31. package/ChartsReferenceLine/chartsReferenceLineClasses.js +14 -0
  32. package/ChartsReferenceLine/common.d.ts +41 -0
  33. package/ChartsReferenceLine/common.js +27 -0
  34. package/ChartsReferenceLine/index.d.ts +2 -0
  35. package/ChartsReferenceLine/index.js +27 -0
  36. package/ChartsReferenceLine/package.json +6 -0
  37. package/ChartsSurface.d.ts +12 -1
  38. package/ChartsSurface.js +9 -18
  39. package/ChartsTooltip/ChartsAxisTooltipContent.d.ts +1 -0
  40. package/ChartsTooltip/ChartsAxisTooltipContent.js +46 -32
  41. package/ChartsTooltip/ChartsItemTooltipContent.d.ts +3 -2
  42. package/ChartsTooltip/ChartsItemTooltipContent.js +18 -9
  43. package/ChartsTooltip/ChartsTooltip.d.ts +32 -0
  44. package/ChartsTooltip/ChartsTooltip.js +62 -18
  45. package/ChartsTooltip/ChartsTooltipTable.d.ts +3 -10
  46. package/ChartsTooltip/ChartsTooltipTable.js +22 -20
  47. package/ChartsTooltip/tooltipClasses.js +1 -2
  48. package/ChartsTooltip/utils.js +2 -2
  49. package/ChartsXAxis/ChartsXAxis.d.ts +9 -0
  50. package/ChartsXAxis/ChartsXAxis.js +170 -45
  51. package/ChartsYAxis/ChartsYAxis.d.ts +9 -0
  52. package/ChartsYAxis/ChartsYAxis.js +95 -38
  53. package/LineChart/AreaElement.d.ts +11 -1
  54. package/LineChart/AreaElement.js +14 -6
  55. package/LineChart/AreaPlot.d.ts +11 -0
  56. package/LineChart/AreaPlot.js +27 -8
  57. package/LineChart/LineChart.d.ts +23 -3
  58. package/LineChart/LineChart.js +89 -17
  59. package/LineChart/LineElement.d.ts +11 -1
  60. package/LineChart/LineElement.js +14 -6
  61. package/LineChart/LineHighlightElement.d.ts +10 -0
  62. package/LineChart/LineHighlightElement.js +13 -4
  63. package/LineChart/LineHighlightPlot.d.ts +10 -0
  64. package/LineChart/LineHighlightPlot.js +15 -4
  65. package/LineChart/LinePlot.d.ts +10 -0
  66. package/LineChart/LinePlot.js +25 -12
  67. package/LineChart/MarkElement.d.ts +10 -0
  68. package/LineChart/MarkElement.js +14 -5
  69. package/LineChart/MarkPlot.d.ts +10 -0
  70. package/LineChart/MarkPlot.js +42 -10
  71. package/LineChart/formatter.js +5 -5
  72. package/LineChart/legend.js +1 -2
  73. package/PieChart/PieArc.d.ts +11 -13
  74. package/PieChart/PieArc.js +28 -60
  75. package/PieChart/PieArcLabel.d.ts +8 -9
  76. package/PieChart/PieArcLabel.js +46 -38
  77. package/PieChart/PieArcLabelPlot.d.ts +28 -0
  78. package/PieChart/PieArcLabelPlot.js +99 -0
  79. package/PieChart/PieArcPlot.d.ts +35 -0
  80. package/PieChart/PieArcPlot.js +92 -0
  81. package/PieChart/PieChart.d.ts +19 -5
  82. package/PieChart/PieChart.js +95 -18
  83. package/PieChart/PiePlot.d.ts +15 -9
  84. package/PieChart/PiePlot.js +77 -55
  85. package/PieChart/dataTransform/transition.d.ts +4 -0
  86. package/PieChart/dataTransform/transition.js +136 -0
  87. package/PieChart/dataTransform/useTransformData.d.ts +15 -0
  88. package/PieChart/dataTransform/useTransformData.js +67 -0
  89. package/PieChart/formatter.js +1 -2
  90. package/PieChart/legend.js +1 -2
  91. package/README.md +8 -14
  92. package/ResponsiveChartContainer/index.d.ts +13 -3
  93. package/ResponsiveChartContainer/index.js +7 -8
  94. package/ScatterChart/Scatter.d.ts +10 -0
  95. package/ScatterChart/Scatter.js +12 -2
  96. package/ScatterChart/ScatterChart.d.ts +16 -3
  97. package/ScatterChart/ScatterChart.js +77 -16
  98. package/ScatterChart/ScatterPlot.d.ts +10 -0
  99. package/ScatterChart/ScatterPlot.js +12 -2
  100. package/ScatterChart/formatter.js +1 -2
  101. package/ScatterChart/legend.js +1 -2
  102. package/SparkLineChart/SparkLineChart.d.ts +12 -3
  103. package/SparkLineChart/SparkLineChart.js +50 -7
  104. package/colorPalettes/colorPalettes.js +6 -12
  105. package/constants.js +5 -8
  106. package/context/CartesianContextProvider.d.ts +26 -1
  107. package/context/CartesianContextProvider.js +42 -16
  108. package/context/DrawingProvider.d.ts +25 -0
  109. package/context/DrawingProvider.js +18 -6
  110. package/context/HighlightProvider.d.ts +17 -0
  111. package/context/HighlightProvider.js +3 -4
  112. package/context/InteractionProvider.d.ts +6 -0
  113. package/context/InteractionProvider.js +3 -4
  114. package/context/SeriesContextProvider.d.ts +5 -0
  115. package/context/SeriesContextProvider.js +3 -4
  116. package/esm/BarChart/BarChart.js +90 -13
  117. package/esm/BarChart/BarElement.js +7 -4
  118. package/esm/BarChart/BarPlot.js +152 -67
  119. package/esm/BarChart/formatter.js +1 -1
  120. package/esm/ChartContainer/index.js +3 -0
  121. package/esm/ChartsAxis/ChartsAxis.js +32 -5
  122. package/esm/ChartsAxisHighlight/ChartsAxisHighlight.js +57 -20
  123. package/esm/ChartsClipPath/ChartsClipPath.js +5 -0
  124. package/esm/ChartsLegend/ChartsLegend.js +190 -144
  125. package/esm/ChartsLegend/chartsLegendClasses.js +1 -1
  126. package/esm/ChartsReferenceLine/ChartsReferenceLine.js +70 -0
  127. package/esm/ChartsReferenceLine/ChartsXReferenceLine.js +105 -0
  128. package/esm/ChartsReferenceLine/ChartsYReferenceLine.js +105 -0
  129. package/esm/ChartsReferenceLine/chartsReferenceLineClasses.js +6 -0
  130. package/esm/ChartsReferenceLine/common.js +20 -0
  131. package/esm/ChartsReferenceLine/index.js +2 -0
  132. package/esm/ChartsSurface.js +4 -12
  133. package/esm/ChartsTooltip/ChartsAxisTooltipContent.js +44 -30
  134. package/esm/ChartsTooltip/ChartsItemTooltipContent.js +15 -7
  135. package/esm/ChartsTooltip/ChartsTooltip.js +59 -14
  136. package/esm/ChartsTooltip/ChartsTooltipTable.js +17 -10
  137. package/esm/ChartsXAxis/ChartsXAxis.js +168 -43
  138. package/esm/ChartsYAxis/ChartsYAxis.js +93 -36
  139. package/esm/LineChart/AreaElement.js +10 -0
  140. package/esm/LineChart/AreaPlot.js +26 -6
  141. package/esm/LineChart/LineChart.js +86 -13
  142. package/esm/LineChart/LineElement.js +10 -0
  143. package/esm/LineChart/LineHighlightElement.js +10 -0
  144. package/esm/LineChart/LineHighlightPlot.js +13 -2
  145. package/esm/LineChart/LinePlot.js +25 -14
  146. package/esm/LineChart/MarkElement.js +11 -1
  147. package/esm/LineChart/MarkPlot.js +40 -8
  148. package/esm/LineChart/formatter.js +7 -3
  149. package/esm/PieChart/PieArc.js +26 -58
  150. package/esm/PieChart/PieArcLabel.js +43 -34
  151. package/esm/PieChart/PieArcLabelPlot.js +92 -0
  152. package/esm/PieChart/PieArcPlot.js +84 -0
  153. package/esm/PieChart/PieChart.js +93 -16
  154. package/esm/PieChart/PiePlot.js +76 -57
  155. package/esm/PieChart/dataTransform/transition.js +130 -0
  156. package/esm/PieChart/dataTransform/useTransformData.js +59 -0
  157. package/esm/ResponsiveChartContainer/index.js +3 -3
  158. package/esm/ScatterChart/Scatter.js +10 -0
  159. package/esm/ScatterChart/ScatterChart.js +74 -12
  160. package/esm/ScatterChart/ScatterPlot.js +10 -0
  161. package/esm/SparkLineChart/SparkLineChart.js +47 -3
  162. package/esm/constants.js +1 -1
  163. package/esm/context/CartesianContextProvider.js +41 -14
  164. package/esm/context/DrawingProvider.js +14 -0
  165. package/esm/hooks/useChartDimensions.js +2 -0
  166. package/esm/hooks/useMounted.js +16 -0
  167. package/esm/hooks/useReducedMotion.js +27 -0
  168. package/esm/hooks/useTicks.js +15 -9
  169. package/esm/index.js +1 -0
  170. package/esm/internals/components/AxisSharedComponents.js +15 -70
  171. package/esm/internals/components/ChartsText.js +77 -0
  172. package/esm/internals/domUtils.js +113 -0
  173. package/esm/internals/geometry.js +36 -0
  174. package/hooks/useAxisEvents.js +2 -2
  175. package/hooks/useChartDimensions.d.ts +2 -0
  176. package/hooks/useChartDimensions.js +5 -4
  177. package/hooks/useDrawingArea.js +2 -2
  178. package/hooks/useInteractionItemProps.js +2 -2
  179. package/hooks/useMounted.d.ts +1 -0
  180. package/hooks/useMounted.js +25 -0
  181. package/hooks/useReducedMotion.d.ts +8 -0
  182. package/hooks/useReducedMotion.js +33 -0
  183. package/hooks/useScale.d.ts +2 -2
  184. package/hooks/useScale.js +2 -2
  185. package/hooks/useTicks.d.ts +19 -11
  186. package/hooks/useTicks.js +19 -14
  187. package/index.d.ts +1 -0
  188. package/index.js +12 -1
  189. package/internals/components/AxisSharedComponents.d.ts +0 -4
  190. package/internals/components/AxisSharedComponents.js +18 -78
  191. package/internals/components/ChartsText.d.ts +35 -0
  192. package/internals/components/ChartsText.js +87 -0
  193. package/internals/defaultizeColor.d.ts +7 -2
  194. package/internals/defaultizeValueFormatter.js +1 -2
  195. package/internals/domUtils.d.ts +13 -0
  196. package/internals/domUtils.js +122 -0
  197. package/internals/geometry.d.ts +9 -0
  198. package/internals/geometry.js +42 -0
  199. package/internals/isBandScale.d.ts +3 -1
  200. package/internals/stackSeries.js +2 -4
  201. package/internals/utils.d.ts +5 -0
  202. package/legacy/BarChart/BarChart.js +90 -13
  203. package/legacy/BarChart/BarElement.js +6 -3
  204. package/legacy/BarChart/BarPlot.js +151 -63
  205. package/legacy/BarChart/formatter.js +1 -1
  206. package/legacy/ChartContainer/index.js +3 -0
  207. package/legacy/ChartsAxis/ChartsAxis.js +32 -5
  208. package/legacy/ChartsAxisHighlight/ChartsAxisHighlight.js +60 -20
  209. package/legacy/ChartsClipPath/ChartsClipPath.js +5 -0
  210. package/legacy/ChartsLegend/ChartsLegend.js +205 -142
  211. package/legacy/ChartsLegend/chartsLegendClasses.js +1 -1
  212. package/legacy/ChartsReferenceLine/ChartsReferenceLine.js +70 -0
  213. package/legacy/ChartsReferenceLine/ChartsXReferenceLine.js +105 -0
  214. package/legacy/ChartsReferenceLine/ChartsYReferenceLine.js +105 -0
  215. package/legacy/ChartsReferenceLine/chartsReferenceLineClasses.js +6 -0
  216. package/legacy/ChartsReferenceLine/common.js +20 -0
  217. package/legacy/ChartsReferenceLine/index.js +2 -0
  218. package/legacy/ChartsSurface.js +3 -12
  219. package/legacy/ChartsTooltip/ChartsAxisTooltipContent.js +22 -10
  220. package/legacy/ChartsTooltip/ChartsItemTooltipContent.js +15 -7
  221. package/legacy/ChartsTooltip/ChartsTooltip.js +62 -14
  222. package/legacy/ChartsTooltip/ChartsTooltipTable.js +34 -26
  223. package/legacy/ChartsXAxis/ChartsXAxis.js +176 -50
  224. package/legacy/ChartsYAxis/ChartsYAxis.js +97 -41
  225. package/legacy/LineChart/AreaElement.js +10 -0
  226. package/legacy/LineChart/AreaPlot.js +31 -7
  227. package/legacy/LineChart/LineChart.js +86 -13
  228. package/legacy/LineChart/LineElement.js +10 -0
  229. package/legacy/LineChart/LineHighlightElement.js +10 -0
  230. package/legacy/LineChart/LineHighlightPlot.js +13 -2
  231. package/legacy/LineChart/LinePlot.js +29 -12
  232. package/legacy/LineChart/MarkElement.js +11 -1
  233. package/legacy/LineChart/MarkPlot.js +39 -8
  234. package/legacy/LineChart/formatter.js +7 -3
  235. package/legacy/PieChart/PieArc.js +30 -62
  236. package/legacy/PieChart/PieArcLabel.js +48 -34
  237. package/legacy/PieChart/PieArcLabelPlot.js +93 -0
  238. package/legacy/PieChart/PieArcPlot.js +84 -0
  239. package/legacy/PieChart/PieChart.js +93 -16
  240. package/legacy/PieChart/PiePlot.js +76 -59
  241. package/legacy/PieChart/dataTransform/transition.js +142 -0
  242. package/legacy/PieChart/dataTransform/useTransformData.js +60 -0
  243. package/legacy/ResponsiveChartContainer/index.js +3 -3
  244. package/legacy/ScatterChart/Scatter.js +10 -0
  245. package/legacy/ScatterChart/ScatterChart.js +74 -12
  246. package/legacy/ScatterChart/ScatterPlot.js +10 -0
  247. package/legacy/SparkLineChart/SparkLineChart.js +47 -3
  248. package/legacy/constants.js +1 -1
  249. package/legacy/context/CartesianContextProvider.js +41 -14
  250. package/legacy/context/DrawingProvider.js +14 -0
  251. package/legacy/hooks/useChartDimensions.js +2 -0
  252. package/legacy/hooks/useMounted.js +21 -0
  253. package/legacy/hooks/useReducedMotion.js +27 -0
  254. package/legacy/hooks/useTicks.js +16 -9
  255. package/legacy/index.js +2 -1
  256. package/legacy/internals/components/AxisSharedComponents.js +11 -65
  257. package/legacy/internals/components/ChartsText.js +79 -0
  258. package/legacy/internals/domUtils.js +121 -0
  259. package/legacy/internals/geometry.js +37 -0
  260. package/models/axis.d.ts +58 -20
  261. package/models/layout.d.ts +13 -6
  262. package/models/seriesType/common.d.ts +16 -0
  263. package/models/seriesType/line.d.ts +8 -3
  264. package/models/seriesType/pie.d.ts +5 -1
  265. package/modern/BarChart/BarChart.js +90 -13
  266. package/modern/BarChart/BarElement.js +7 -4
  267. package/modern/BarChart/BarPlot.js +149 -65
  268. package/modern/BarChart/formatter.js +1 -1
  269. package/modern/ChartContainer/index.js +3 -0
  270. package/modern/ChartsAxis/ChartsAxis.js +31 -5
  271. package/modern/ChartsAxisHighlight/ChartsAxisHighlight.js +57 -20
  272. package/modern/ChartsClipPath/ChartsClipPath.js +5 -0
  273. package/modern/ChartsLegend/ChartsLegend.js +190 -144
  274. package/modern/ChartsLegend/chartsLegendClasses.js +1 -1
  275. package/modern/ChartsReferenceLine/ChartsReferenceLine.js +70 -0
  276. package/modern/ChartsReferenceLine/ChartsXReferenceLine.js +104 -0
  277. package/modern/ChartsReferenceLine/ChartsYReferenceLine.js +104 -0
  278. package/modern/ChartsReferenceLine/chartsReferenceLineClasses.js +6 -0
  279. package/modern/ChartsReferenceLine/common.js +20 -0
  280. package/modern/ChartsReferenceLine/index.js +2 -0
  281. package/modern/ChartsSurface.js +4 -12
  282. package/modern/ChartsTooltip/ChartsAxisTooltipContent.js +44 -30
  283. package/modern/ChartsTooltip/ChartsItemTooltipContent.js +15 -7
  284. package/modern/ChartsTooltip/ChartsTooltip.js +58 -14
  285. package/modern/ChartsTooltip/ChartsTooltipTable.js +17 -10
  286. package/modern/ChartsXAxis/ChartsXAxis.js +167 -42
  287. package/modern/ChartsYAxis/ChartsYAxis.js +92 -35
  288. package/modern/LineChart/AreaElement.js +10 -0
  289. package/modern/LineChart/AreaPlot.js +25 -6
  290. package/modern/LineChart/LineChart.js +86 -13
  291. package/modern/LineChart/LineElement.js +10 -0
  292. package/modern/LineChart/LineHighlightElement.js +10 -0
  293. package/modern/LineChart/LineHighlightPlot.js +13 -2
  294. package/modern/LineChart/LinePlot.js +23 -10
  295. package/modern/LineChart/MarkElement.js +11 -1
  296. package/modern/LineChart/MarkPlot.js +40 -8
  297. package/modern/LineChart/formatter.js +4 -3
  298. package/modern/PieChart/PieArc.js +26 -57
  299. package/modern/PieChart/PieArcLabel.js +43 -34
  300. package/modern/PieChart/PieArcLabelPlot.js +90 -0
  301. package/modern/PieChart/PieArcPlot.js +83 -0
  302. package/modern/PieChart/PieChart.js +93 -16
  303. package/modern/PieChart/PiePlot.js +76 -55
  304. package/modern/PieChart/dataTransform/transition.js +130 -0
  305. package/modern/PieChart/dataTransform/useTransformData.js +58 -0
  306. package/modern/ResponsiveChartContainer/index.js +3 -3
  307. package/modern/ScatterChart/Scatter.js +10 -0
  308. package/modern/ScatterChart/ScatterChart.js +74 -12
  309. package/modern/ScatterChart/ScatterPlot.js +10 -0
  310. package/modern/SparkLineChart/SparkLineChart.js +47 -3
  311. package/modern/constants.js +1 -1
  312. package/modern/context/CartesianContextProvider.js +40 -13
  313. package/modern/context/DrawingProvider.js +14 -0
  314. package/modern/hooks/useChartDimensions.js +2 -0
  315. package/modern/hooks/useMounted.js +16 -0
  316. package/modern/hooks/useReducedMotion.js +27 -0
  317. package/modern/hooks/useTicks.js +15 -9
  318. package/modern/index.js +2 -1
  319. package/modern/internals/components/AxisSharedComponents.js +15 -70
  320. package/modern/internals/components/ChartsText.js +77 -0
  321. package/modern/internals/domUtils.js +113 -0
  322. package/modern/internals/geometry.js +36 -0
  323. package/package.json +9 -6
  324. package/themeAugmentation/components.d.ts +1 -0
  325. package/themeAugmentation/overrides.d.ts +2 -0
@@ -13,6 +13,17 @@ import { ChartsAxisHighlight } from '../ChartsAxisHighlight';
13
13
  import { ChartsClipPath } from '../ChartsClipPath';
14
14
  import { jsx as _jsx } from "react/jsx-runtime";
15
15
  import { jsxs as _jsxs } from "react/jsx-runtime";
16
+ /**
17
+ * Demos:
18
+ *
19
+ * - [Bars](https://mui.com/x/react-charts/bars/)
20
+ * - [Bar demonstration](https://mui.com/x/react-charts/bar-demo/)
21
+ * - [Stacking](https://mui.com/x/react-charts/stacking/)
22
+ *
23
+ * API:
24
+ *
25
+ * - [BarChart API](https://mui.com/x/api/charts/bar-chart/)
26
+ */
16
27
  var BarChart = /*#__PURE__*/React.forwardRef(function BarChart(props, ref) {
17
28
  var xAxis = props.xAxis,
18
29
  yAxis = props.yAxis,
@@ -31,6 +42,7 @@ var BarChart = /*#__PURE__*/React.forwardRef(function BarChart(props, ref) {
31
42
  leftAxis = props.leftAxis,
32
43
  rightAxis = props.rightAxis,
33
44
  bottomAxis = props.bottomAxis,
45
+ skipAnimation = props.skipAnimation,
34
46
  children = props.children,
35
47
  slots = props.slots,
36
48
  slotProps = props.slotProps;
@@ -81,7 +93,8 @@ var BarChart = /*#__PURE__*/React.forwardRef(function BarChart(props, ref) {
81
93
  clipPath: "url(#".concat(clipPathId, ")"),
82
94
  children: /*#__PURE__*/_jsx(BarPlot, {
83
95
  slots: slots,
84
- slotProps: slotProps
96
+ slotProps: slotProps,
97
+ skipAnimation: skipAnimation
85
98
  })
86
99
  }), /*#__PURE__*/_jsx(ChartsAxis, {
87
100
  topAxis: topAxis,
@@ -106,6 +119,13 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
106
119
  // | These PropTypes are generated from the TypeScript type definitions |
107
120
  // | To update them edit the TypeScript types and run "yarn proptypes" |
108
121
  // ----------------------------------------------------------------------
122
+ /**
123
+ * Object `{ x, y }` that defines how the charts highlight the mouse position along the x- and y-axes.
124
+ * The two properties accept the following values:
125
+ * - 'none': display nothing.
126
+ * - 'line': display a line at the current mouse position.
127
+ * - 'band': display a band at the current mouse position. Only available with band scale.
128
+ */
109
129
  axisHighlight: PropTypes.shape({
110
130
  x: PropTypes.oneOf(['band', 'line', 'none']),
111
131
  y: PropTypes.oneOf(['band', 'line', 'none'])
@@ -116,18 +136,22 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
116
136
  * @default xAxisIds[0] The id of the first provided axis
117
137
  */
118
138
  bottomAxis: PropTypes.oneOfType([PropTypes.shape({
119
- axisId: PropTypes.string.isRequired,
139
+ axisId: PropTypes.string,
120
140
  classes: PropTypes.object,
121
141
  disableLine: PropTypes.bool,
122
142
  disableTicks: PropTypes.bool,
123
143
  fill: PropTypes.string,
124
144
  label: PropTypes.string,
125
145
  labelFontSize: PropTypes.number,
146
+ labelStyle: PropTypes.object,
126
147
  position: PropTypes.oneOf(['bottom', 'top']),
127
148
  slotProps: PropTypes.object,
128
149
  slots: PropTypes.object,
129
150
  stroke: PropTypes.string,
130
151
  tickFontSize: PropTypes.number,
152
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
153
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
154
+ tickLabelStyle: PropTypes.object,
131
155
  tickMaxStep: PropTypes.number,
132
156
  tickMinStep: PropTypes.number,
133
157
  tickNumber: PropTypes.number,
@@ -139,9 +163,21 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
139
163
  * Color palette used to colorize multiple series.
140
164
  */
141
165
  colors: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.func]),
166
+ /**
167
+ * An array of objects that can be used to populate series and axes data using their `dataKey` property.
168
+ */
142
169
  dataset: PropTypes.arrayOf(PropTypes.object),
143
170
  desc: PropTypes.string,
171
+ /**
172
+ * If `true`, the charts will not listen to the mouse move event.
173
+ * It might break interactive features, but will improve performance.
174
+ * @default false
175
+ */
144
176
  disableAxisListener: PropTypes.bool,
177
+ /**
178
+ * The height of the chart in px. If not defined, it takes the height of the parent element.
179
+ * @default undefined
180
+ */
145
181
  height: PropTypes.number,
146
182
  layout: PropTypes.oneOf(['horizontal', 'vertical']),
147
183
  /**
@@ -150,41 +186,47 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
150
186
  * @default yAxisIds[0] The id of the first provided axis
151
187
  */
152
188
  leftAxis: PropTypes.oneOfType([PropTypes.shape({
153
- axisId: PropTypes.string.isRequired,
189
+ axisId: PropTypes.string,
154
190
  classes: PropTypes.object,
155
191
  disableLine: PropTypes.bool,
156
192
  disableTicks: PropTypes.bool,
157
193
  fill: PropTypes.string,
158
194
  label: PropTypes.string,
159
195
  labelFontSize: PropTypes.number,
196
+ labelStyle: PropTypes.object,
160
197
  position: PropTypes.oneOf(['left', 'right']),
161
198
  slotProps: PropTypes.object,
162
199
  slots: PropTypes.object,
163
200
  stroke: PropTypes.string,
164
201
  tickFontSize: PropTypes.number,
202
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
203
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
204
+ tickLabelStyle: PropTypes.object,
165
205
  tickMaxStep: PropTypes.number,
166
206
  tickMinStep: PropTypes.number,
167
207
  tickNumber: PropTypes.number,
168
208
  tickSize: PropTypes.number
169
209
  }), PropTypes.string]),
210
+ /**
211
+ * @deprecated Consider using `slotProps.legend` instead.
212
+ */
170
213
  legend: PropTypes.shape({
171
214
  classes: PropTypes.object,
172
215
  direction: PropTypes.oneOf(['column', 'row']),
173
216
  hidden: PropTypes.bool,
174
- itemWidth: PropTypes.number,
175
- markSize: PropTypes.number,
176
- offset: PropTypes.shape({
177
- x: PropTypes.number,
178
- y: PropTypes.number
179
- }),
180
217
  position: PropTypes.shape({
181
218
  horizontal: PropTypes.oneOf(['left', 'middle', 'right']).isRequired,
182
219
  vertical: PropTypes.oneOf(['bottom', 'middle', 'top']).isRequired
183
220
  }),
184
221
  slotProps: PropTypes.object,
185
- slots: PropTypes.object,
186
- spacing: PropTypes.number
222
+ slots: PropTypes.object
187
223
  }),
224
+ /**
225
+ * The margin between the SVG and the drawing area.
226
+ * It's used for leaving some space for extra information such as the x- and y-axis or legend.
227
+ * Accepts an object with the optional properties: `top`, `bottom`, `left`, and `right`.
228
+ * @default object Depends on the charts type.
229
+ */
188
230
  margin: PropTypes.shape({
189
231
  bottom: PropTypes.number,
190
232
  left: PropTypes.number,
@@ -197,18 +239,22 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
197
239
  * @default null
198
240
  */
199
241
  rightAxis: PropTypes.oneOfType([PropTypes.shape({
200
- axisId: PropTypes.string.isRequired,
242
+ axisId: PropTypes.string,
201
243
  classes: PropTypes.object,
202
244
  disableLine: PropTypes.bool,
203
245
  disableTicks: PropTypes.bool,
204
246
  fill: PropTypes.string,
205
247
  label: PropTypes.string,
206
248
  labelFontSize: PropTypes.number,
249
+ labelStyle: PropTypes.object,
207
250
  position: PropTypes.oneOf(['left', 'right']),
208
251
  slotProps: PropTypes.object,
209
252
  slots: PropTypes.object,
210
253
  stroke: PropTypes.string,
211
254
  tickFontSize: PropTypes.number,
255
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
256
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
257
+ tickLabelStyle: PropTypes.object,
212
258
  tickMaxStep: PropTypes.number,
213
259
  tickMinStep: PropTypes.number,
214
260
  tickNumber: PropTypes.number,
@@ -233,6 +279,11 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
233
279
  xAxisKey: PropTypes.string,
234
280
  yAxisKey: PropTypes.string
235
281
  })).isRequired,
282
+ /**
283
+ * If `true`, animations are skiped.
284
+ * @default false
285
+ */
286
+ skipAnimation: PropTypes.bool,
236
287
  /**
237
288
  * The props used for each component slot.
238
289
  * @default {}
@@ -249,6 +300,8 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
249
300
  axisContent: PropTypes.elementType,
250
301
  classes: PropTypes.object,
251
302
  itemContent: PropTypes.elementType,
303
+ slotProps: PropTypes.object,
304
+ slots: PropTypes.object,
252
305
  trigger: PropTypes.oneOf(['axis', 'item', 'none'])
253
306
  }),
254
307
  /**
@@ -257,18 +310,22 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
257
310
  * @default null
258
311
  */
259
312
  topAxis: PropTypes.oneOfType([PropTypes.shape({
260
- axisId: PropTypes.string.isRequired,
313
+ axisId: PropTypes.string,
261
314
  classes: PropTypes.object,
262
315
  disableLine: PropTypes.bool,
263
316
  disableTicks: PropTypes.bool,
264
317
  fill: PropTypes.string,
265
318
  label: PropTypes.string,
266
319
  labelFontSize: PropTypes.number,
320
+ labelStyle: PropTypes.object,
267
321
  position: PropTypes.oneOf(['bottom', 'top']),
268
322
  slotProps: PropTypes.object,
269
323
  slots: PropTypes.object,
270
324
  stroke: PropTypes.string,
271
325
  tickFontSize: PropTypes.number,
326
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
327
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
328
+ tickLabelStyle: PropTypes.object,
272
329
  tickMaxStep: PropTypes.number,
273
330
  tickMinStep: PropTypes.number,
274
331
  tickNumber: PropTypes.number,
@@ -280,7 +337,15 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
280
337
  x: PropTypes.number,
281
338
  y: PropTypes.number
282
339
  }),
340
+ /**
341
+ * The width of the chart in px. If not defined, it takes the width of the parent element.
342
+ * @default undefined
343
+ */
283
344
  width: PropTypes.number,
345
+ /**
346
+ * The configuration of the x-axes.
347
+ * If not provided, a default axis config is used with id set to `DEFAULT_X_AXIS_KEY`.
348
+ */
284
349
  xAxis: PropTypes.arrayOf(PropTypes.shape({
285
350
  axisId: PropTypes.string,
286
351
  classes: PropTypes.object,
@@ -293,6 +358,7 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
293
358
  id: PropTypes.string,
294
359
  label: PropTypes.string,
295
360
  labelFontSize: PropTypes.number,
361
+ labelStyle: PropTypes.object,
296
362
  max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
297
363
  min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
298
364
  position: PropTypes.oneOf(['bottom', 'left', 'right', 'top']),
@@ -301,12 +367,19 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
301
367
  slots: PropTypes.object,
302
368
  stroke: PropTypes.string,
303
369
  tickFontSize: PropTypes.number,
370
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
371
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
372
+ tickLabelStyle: PropTypes.object,
304
373
  tickMaxStep: PropTypes.number,
305
374
  tickMinStep: PropTypes.number,
306
375
  tickNumber: PropTypes.number,
307
376
  tickSize: PropTypes.number,
308
377
  valueFormatter: PropTypes.func
309
378
  })),
379
+ /**
380
+ * The configuration of the y-axes.
381
+ * If not provided, a default axis config is used with id set to `DEFAULT_Y_AXIS_KEY`.
382
+ */
310
383
  yAxis: PropTypes.arrayOf(PropTypes.shape({
311
384
  axisId: PropTypes.string,
312
385
  classes: PropTypes.object,
@@ -319,6 +392,7 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
319
392
  id: PropTypes.string,
320
393
  label: PropTypes.string,
321
394
  labelFontSize: PropTypes.number,
395
+ labelStyle: PropTypes.object,
322
396
  max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
323
397
  min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
324
398
  position: PropTypes.oneOf(['bottom', 'left', 'right', 'top']),
@@ -327,6 +401,9 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
327
401
  slots: PropTypes.object,
328
402
  stroke: PropTypes.string,
329
403
  tickFontSize: PropTypes.number,
404
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
405
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
406
+ tickLabelStyle: PropTypes.object,
330
407
  tickMaxStep: PropTypes.number,
331
408
  tickMinStep: PropTypes.number,
332
409
  tickNumber: PropTypes.number,
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
- var _excluded = ["id", "dataIndex", "classes", "color", "highlightScope", "slots", "slotProps"];
3
+ var _excluded = ["id", "dataIndex", "classes", "color", "highlightScope", "slots", "slotProps", "style"];
4
4
  import * as React from 'react';
5
5
  import composeClasses from '@mui/utils/composeClasses';
6
6
  import { useSlotProps } from '@mui/base/utils';
@@ -8,13 +8,14 @@ import generateUtilityClass from '@mui/utils/generateUtilityClass';
8
8
  import { styled } from '@mui/material/styles';
9
9
  import { color as d3Color } from 'd3-color';
10
10
  import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
11
+ import { animated } from '@react-spring/web';
11
12
  import { getIsFaded, getIsHighlighted, useInteractionItemProps } from '../hooks/useInteractionItemProps';
12
13
  import { InteractionContext } from '../context/InteractionProvider';
13
14
  import { jsx as _jsx } from "react/jsx-runtime";
14
15
  export function getBarElementUtilityClass(slot) {
15
16
  return generateUtilityClass('MuiBarElement', slot);
16
17
  }
17
- export var lineElementClasses = generateUtilityClasses('MuiBarElement', ['root']);
18
+ export var barElementClasses = generateUtilityClasses('MuiBarElement', ['root']);
18
19
  var useUtilityClasses = function useUtilityClasses(ownerState) {
19
20
  var classes = ownerState.classes,
20
21
  id = ownerState.id;
@@ -23,7 +24,7 @@ var useUtilityClasses = function useUtilityClasses(ownerState) {
23
24
  };
24
25
  return composeClasses(slots, getBarElementUtilityClass, classes);
25
26
  };
26
- export var BarElementPath = styled('rect', {
27
+ export var BarElementPath = styled(animated.rect, {
27
28
  name: 'MuiBarElement',
28
29
  slot: 'Root',
29
30
  overridesResolver: function overridesResolver(_, styles) {
@@ -48,6 +49,7 @@ export function BarElement(props) {
48
49
  highlightScope = props.highlightScope,
49
50
  slots = props.slots,
50
51
  slotProps = props.slotProps,
52
+ style = props.style,
51
53
  other = _objectWithoutProperties(props, _excluded);
52
54
  var getInteractionItemProps = useInteractionItemProps(highlightScope);
53
55
  var _React$useContext = React.useContext(InteractionContext),
@@ -80,6 +82,7 @@ export function BarElement(props) {
80
82
  seriesId: id,
81
83
  dataIndex: dataIndex
82
84
  }), {
85
+ style: style,
83
86
  className: classes.root
84
87
  }),
85
88
  ownerState: ownerState
@@ -1,12 +1,15 @@
1
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
1
2
  import _extends from "@babel/runtime/helpers/esm/extends";
2
3
  import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
4
+ var _excluded = ["skipAnimation"];
3
5
  import * as React from 'react';
4
6
  import PropTypes from 'prop-types';
7
+ import { useTransition } from '@react-spring/web';
5
8
  import { SeriesContext } from '../context/SeriesContextProvider';
6
9
  import { CartesianContext } from '../context/CartesianContextProvider';
7
10
  import { BarElement } from './BarElement';
8
11
  import { isBandScaleConfig } from '../models/axis';
9
-
12
+ import { jsx as _jsx } from "react/jsx-runtime";
10
13
  /**
11
14
  * Solution of the equations
12
15
  * W = barWidth * N + offset * (N-1)
@@ -16,7 +19,6 @@ import { isBandScaleConfig } from '../models/axis';
16
19
  * @param gapRatio The ratio of the gap between bars over the bar width.
17
20
  * @returns The bar width and the offset between bars.
18
21
  */
19
- import { jsx as _jsx } from "react/jsx-runtime";
20
22
  function getBandSize(_ref) {
21
23
  var W = _ref.bandWidth,
22
24
  N = _ref.numberOfGroups,
@@ -34,12 +36,14 @@ function getBandSize(_ref) {
34
36
  offset: offset
35
37
  };
36
38
  }
37
- function BarPlot(props) {
38
- var seriesData = React.useContext(SeriesContext).bar;
39
+ var useCompletedData = function useCompletedData() {
40
+ var _React$useContext$bar;
41
+ var seriesData = (_React$useContext$bar = React.useContext(SeriesContext).bar) != null ? _React$useContext$bar : {
42
+ series: {},
43
+ stackingGroups: [],
44
+ seriesOrder: []
45
+ };
39
46
  var axisData = React.useContext(CartesianContext);
40
- if (seriesData === undefined) {
41
- return null;
42
- }
43
47
  var series = seriesData.series,
44
48
  stackingGroups = seriesData.stackingGroups;
45
49
  var xAxis = axisData.xAxis,
@@ -48,64 +52,143 @@ function BarPlot(props) {
48
52
  yAxisIds = axisData.yAxisIds;
49
53
  var defaultXAxisId = xAxisIds[0];
50
54
  var defaultYAxisId = yAxisIds[0];
51
- return /*#__PURE__*/_jsx(React.Fragment, {
52
- children: stackingGroups.flatMap(function (_ref2, groupIndex) {
53
- var groupIds = _ref2.ids;
54
- return groupIds.flatMap(function (seriesId) {
55
- var _series$seriesId$xAxi, _series$seriesId$yAxi;
56
- var xAxisKey = (_series$seriesId$xAxi = series[seriesId].xAxisKey) != null ? _series$seriesId$xAxi : defaultXAxisId;
57
- var yAxisKey = (_series$seriesId$yAxi = series[seriesId].yAxisKey) != null ? _series$seriesId$yAxi : defaultYAxisId;
58
- var xAxisConfig = xAxis[xAxisKey];
59
- var yAxisConfig = yAxis[yAxisKey];
60
- var verticalLayout = series[seriesId].layout === 'vertical';
61
- var baseScaleConfig;
62
- if (verticalLayout) {
63
- if (!isBandScaleConfig(xAxisConfig)) {
64
- throw new Error("Axis with id \"".concat(xAxisKey, "\" shoud be of type \"band\" to display the bar series of id \"").concat(seriesId, "\""));
65
- }
66
- if (xAxis[xAxisKey].data === undefined) {
67
- throw new Error("Axis with id \"".concat(xAxisKey, "\" shoud have data property"));
68
- }
69
- baseScaleConfig = xAxisConfig;
70
- } else {
71
- if (!isBandScaleConfig(yAxisConfig)) {
72
- throw new Error("Axis with id \"".concat(yAxisKey, "\" shoud be of type \"band\" to display the bar series of id \"").concat(seriesId, "\""));
73
- }
74
- if (yAxis[yAxisKey].data === undefined) {
75
- throw new Error("Axis with id \"".concat(xAxisKey, "\" shoud have data property"));
76
- }
77
- baseScaleConfig = yAxisConfig;
55
+ var data = stackingGroups.flatMap(function (_ref2, groupIndex) {
56
+ var groupIds = _ref2.ids;
57
+ return groupIds.flatMap(function (seriesId) {
58
+ var _series$seriesId$xAxi, _series$seriesId$yAxi;
59
+ var xAxisKey = (_series$seriesId$xAxi = series[seriesId].xAxisKey) != null ? _series$seriesId$xAxi : defaultXAxisId;
60
+ var yAxisKey = (_series$seriesId$yAxi = series[seriesId].yAxisKey) != null ? _series$seriesId$yAxi : defaultYAxisId;
61
+ var xAxisConfig = xAxis[xAxisKey];
62
+ var yAxisConfig = yAxis[yAxisKey];
63
+ var verticalLayout = series[seriesId].layout === 'vertical';
64
+ var baseScaleConfig;
65
+ if (verticalLayout) {
66
+ if (!isBandScaleConfig(xAxisConfig)) {
67
+ throw new Error("Axis with id \"".concat(xAxisKey, "\" shoud be of type \"band\" to display the bar series of id \"").concat(seriesId, "\""));
68
+ }
69
+ if (xAxis[xAxisKey].data === undefined) {
70
+ throw new Error("Axis with id \"".concat(xAxisKey, "\" shoud have data property"));
71
+ }
72
+ baseScaleConfig = xAxisConfig;
73
+ } else {
74
+ if (!isBandScaleConfig(yAxisConfig)) {
75
+ throw new Error("Axis with id \"".concat(yAxisKey, "\" shoud be of type \"band\" to display the bar series of id \"").concat(seriesId, "\""));
78
76
  }
79
- var xScale = xAxisConfig.scale;
80
- var yScale = yAxisConfig.scale;
81
- var bandWidth = baseScaleConfig.scale.bandwidth();
82
- var _getBandSize = getBandSize({
83
- bandWidth: bandWidth,
84
- numberOfGroups: stackingGroups.length,
85
- gapRatio: baseScaleConfig.barGapRatio
86
- }),
87
- barWidth = _getBandSize.barWidth,
88
- offset = _getBandSize.offset;
89
- var barOffset = groupIndex * (barWidth + offset);
90
- var _series$seriesId = series[seriesId],
91
- stackedData = _series$seriesId.stackedData,
92
- color = _series$seriesId.color;
93
- return stackedData.map(function (values, dataIndex) {
94
- var _xAxis$xAxisKey$data, _yAxis$yAxisKey$data;
95
- var baseline = Math.min.apply(Math, _toConsumableArray(values));
96
- var value = Math.max.apply(Math, _toConsumableArray(values));
97
- return /*#__PURE__*/_jsx(BarElement, _extends({
98
- id: seriesId,
99
- dataIndex: dataIndex,
100
- x: verticalLayout ? xScale((_xAxis$xAxisKey$data = xAxis[xAxisKey].data) == null ? void 0 : _xAxis$xAxisKey$data[dataIndex]) + barOffset : xScale(baseline),
101
- y: verticalLayout ? yScale(value) : yScale((_yAxis$yAxisKey$data = yAxis[yAxisKey].data) == null ? void 0 : _yAxis$yAxisKey$data[dataIndex]) + barOffset,
102
- height: verticalLayout ? Math.abs(yScale(baseline) - yScale(value)) : barWidth,
103
- width: verticalLayout ? barWidth : Math.abs(xScale(baseline) - xScale(value)),
104
- color: color,
105
- highlightScope: series[seriesId].highlightScope
106
- }, props), "".concat(seriesId, "-").concat(dataIndex));
107
- });
77
+ if (yAxis[yAxisKey].data === undefined) {
78
+ throw new Error("Axis with id \"".concat(xAxisKey, "\" shoud have data property"));
79
+ }
80
+ baseScaleConfig = yAxisConfig;
81
+ }
82
+ var xScale = xAxisConfig.scale;
83
+ var yScale = yAxisConfig.scale;
84
+ var bandWidth = baseScaleConfig.scale.bandwidth();
85
+ var _getBandSize = getBandSize({
86
+ bandWidth: bandWidth,
87
+ numberOfGroups: stackingGroups.length,
88
+ gapRatio: baseScaleConfig.barGapRatio
89
+ }),
90
+ barWidth = _getBandSize.barWidth,
91
+ offset = _getBandSize.offset;
92
+ var barOffset = groupIndex * (barWidth + offset);
93
+ var _series$seriesId = series[seriesId],
94
+ stackedData = _series$seriesId.stackedData,
95
+ color = _series$seriesId.color;
96
+ return stackedData.map(function (values, dataIndex) {
97
+ var _xAxis$xAxisKey$data, _yAxis$yAxisKey$data;
98
+ var bottom = Math.min.apply(Math, _toConsumableArray(values));
99
+ var top = Math.max.apply(Math, _toConsumableArray(values));
100
+ return {
101
+ bottom: bottom,
102
+ top: top,
103
+ seriesId: seriesId,
104
+ dataIndex: dataIndex,
105
+ layout: series[seriesId].layout,
106
+ x: verticalLayout ? xScale((_xAxis$xAxisKey$data = xAxis[xAxisKey].data) == null ? void 0 : _xAxis$xAxisKey$data[dataIndex]) + barOffset : xScale(bottom),
107
+ y: verticalLayout ? yScale(top) : yScale((_yAxis$yAxisKey$data = yAxis[yAxisKey].data) == null ? void 0 : _yAxis$yAxisKey$data[dataIndex]) + barOffset,
108
+ xOrigin: xScale(0),
109
+ yOrigin: yScale(0),
110
+ height: verticalLayout ? Math.abs(yScale(bottom) - yScale(top)) : barWidth,
111
+ width: verticalLayout ? barWidth : Math.abs(xScale(bottom) - xScale(top)),
112
+ color: color,
113
+ highlightScope: series[seriesId].highlightScope
114
+ };
108
115
  });
116
+ });
117
+ });
118
+ return data;
119
+ };
120
+ var getOutStyle = function getOutStyle(_ref3) {
121
+ var layout = _ref3.layout,
122
+ yOrigin = _ref3.yOrigin,
123
+ x = _ref3.x,
124
+ width = _ref3.width,
125
+ y = _ref3.y,
126
+ xOrigin = _ref3.xOrigin,
127
+ height = _ref3.height;
128
+ return _extends({}, layout === 'vertical' ? {
129
+ y: yOrigin,
130
+ x: x,
131
+ height: 0,
132
+ width: width
133
+ } : {
134
+ y: y,
135
+ x: xOrigin,
136
+ height: height,
137
+ width: 0
138
+ });
139
+ };
140
+ var getInStyle = function getInStyle(_ref4) {
141
+ var x = _ref4.x,
142
+ width = _ref4.width,
143
+ y = _ref4.y,
144
+ height = _ref4.height;
145
+ return {
146
+ y: y,
147
+ x: x,
148
+ height: height,
149
+ width: width
150
+ };
151
+ };
152
+
153
+ /**
154
+ * Demos:
155
+ *
156
+ * - [Bars](https://mui.com/x/react-charts/bars/)
157
+ * - [Bar demonstration](https://mui.com/x/react-charts/bar-demo/)
158
+ * - [Stacking](https://mui.com/x/react-charts/stacking/)
159
+ *
160
+ * API:
161
+ *
162
+ * - [BarPlot API](https://mui.com/x/api/charts/bar-plot/)
163
+ */
164
+ function BarPlot(props) {
165
+ var completedData = useCompletedData();
166
+ var skipAnimation = props.skipAnimation,
167
+ other = _objectWithoutProperties(props, _excluded);
168
+ var transition = useTransition(completedData, {
169
+ keys: function keys(bar) {
170
+ return "".concat(bar.seriesId, "-").concat(bar.dataIndex);
171
+ },
172
+ from: getOutStyle,
173
+ leave: getOutStyle,
174
+ enter: getInStyle,
175
+ update: getInStyle,
176
+ immediate: skipAnimation
177
+ });
178
+ return /*#__PURE__*/_jsx(React.Fragment, {
179
+ children: transition(function (style, _ref5) {
180
+ var seriesId = _ref5.seriesId,
181
+ dataIndex = _ref5.dataIndex,
182
+ color = _ref5.color,
183
+ highlightScope = _ref5.highlightScope;
184
+ return /*#__PURE__*/_jsx(BarElement, _extends({
185
+ id: seriesId,
186
+ dataIndex: dataIndex,
187
+ highlightScope: highlightScope,
188
+ color: color
189
+ }, other, {
190
+ style: style
191
+ }));
109
192
  })
110
193
  });
111
194
  }
@@ -114,6 +197,11 @@ process.env.NODE_ENV !== "production" ? BarPlot.propTypes = {
114
197
  // | These PropTypes are generated from the TypeScript type definitions |
115
198
  // | To update them edit the TypeScript types and run "yarn proptypes" |
116
199
  // ----------------------------------------------------------------------
200
+ /**
201
+ * If `true`, animations are skiped.
202
+ * @default false
203
+ */
204
+ skipAnimation: PropTypes.bool,
117
205
  /**
118
206
  * The props used for each component slot.
119
207
  * @default {}
@@ -57,7 +57,7 @@ var formatter = function formatter(params, dataset) {
57
57
  seriesOrder: seriesOrder,
58
58
  stackingGroups: stackingGroups,
59
59
  series: defaultizeValueFormatter(completedSeries, function (v) {
60
- return v.toLocaleString();
60
+ return v == null ? void 0 : v.toLocaleString();
61
61
  })
62
62
  };
63
63
  };
@@ -3,6 +3,7 @@ import useForkRef from '@mui/utils/useForkRef';
3
3
  import { DrawingProvider } from '../context/DrawingProvider';
4
4
  import { SeriesContextProvider } from '../context/SeriesContextProvider';
5
5
  import { InteractionProvider } from '../context/InteractionProvider';
6
+ import { useReducedMotion } from '../hooks/useReducedMotion';
6
7
  import { ChartsSurface } from '../ChartsSurface';
7
8
  import { CartesianContextProvider } from '../context/CartesianContextProvider';
8
9
  import { HighlightProvider } from '../context/HighlightProvider';
@@ -23,6 +24,8 @@ export var ChartContainer = /*#__PURE__*/React.forwardRef(function ChartContaine
23
24
  children = props.children;
24
25
  var svgRef = React.useRef(null);
25
26
  var handleRef = useForkRef(ref, svgRef);
27
+ useReducedMotion(); // a11y reduce motion (see: https://react-spring.dev/docs/utilities/use-reduced-motion)
28
+
26
29
  return /*#__PURE__*/_jsx(DrawingProvider, {
27
30
  width: width,
28
31
  height: height,