@mui/x-charts 7.3.2 → 7.5.0

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 (128) hide show
  1. package/BarChart/BarChart.js +18 -11
  2. package/BarChart/BarClipPath.d.ts +14 -0
  3. package/BarChart/BarClipPath.js +50 -0
  4. package/BarChart/BarElement.d.ts +10 -5
  5. package/BarChart/BarElement.js +3 -2
  6. package/BarChart/BarPlot.d.ts +4 -0
  7. package/BarChart/BarPlot.js +102 -30
  8. package/BarChart/getRadius.d.ts +15 -0
  9. package/BarChart/getRadius.js +37 -0
  10. package/BarChart/legend.js +13 -6
  11. package/BarChart/types.d.ts +25 -0
  12. package/BarChart/types.js +5 -0
  13. package/CHANGELOG.md +160 -2
  14. package/ChartContainer/ChartContainer.js +10 -10
  15. package/ChartsGrid/ChartsGrid.js +22 -11
  16. package/ChartsOverlay/ChartsLoadingOverlay.js +3 -3
  17. package/ChartsOverlay/ChartsNoDataOverlay.js +2 -2
  18. package/ChartsOverlay/ChartsOverlay.d.ts +9 -0
  19. package/ChartsTooltip/DefaultChartsAxisTooltipContent.js +4 -2
  20. package/ChartsTooltip/DefaultChartsItemTooltipContent.js +7 -3
  21. package/ChartsTooltip/utils.js +13 -8
  22. package/ChartsXAxis/ChartsXAxis.js +1 -2
  23. package/ChartsYAxis/ChartsYAxis.js +2 -2
  24. package/LineChart/AreaElement.d.ts +1 -1
  25. package/LineChart/AreaElement.js +3 -3
  26. package/LineChart/AreaPlot.js +3 -2
  27. package/LineChart/LineChart.js +11 -10
  28. package/LineChart/LineElement.d.ts +1 -1
  29. package/LineChart/LineElement.js +3 -3
  30. package/LineChart/LineHighlightElement.d.ts +1 -1
  31. package/LineChart/MarkElement.d.ts +1 -1
  32. package/LineChart/legend.js +13 -6
  33. package/PieChart/PieArc.d.ts +1 -1
  34. package/PieChart/PieArcLabel.d.ts +1 -1
  35. package/PieChart/PieArcLabel.js +3 -1
  36. package/PieChart/PieArcLabelPlot.js +14 -5
  37. package/PieChart/PieArcPlot.js +1 -1
  38. package/PieChart/PieChart.js +11 -10
  39. package/PieChart/formatter.js +4 -1
  40. package/PieChart/legend.js +15 -5
  41. package/ResponsiveChartContainer/ResponsiveChartContainer.js +10 -10
  42. package/ScatterChart/ScatterChart.js +16 -15
  43. package/ScatterChart/legend.js +13 -6
  44. package/SparkLineChart/SparkLineChart.js +5 -5
  45. package/context/ZAxisContextProvider.js +5 -5
  46. package/esm/BarChart/BarChart.js +18 -11
  47. package/esm/BarChart/BarClipPath.js +42 -0
  48. package/esm/BarChart/BarElement.js +3 -2
  49. package/esm/BarChart/BarPlot.js +103 -31
  50. package/esm/BarChart/getRadius.js +30 -0
  51. package/esm/BarChart/legend.js +13 -6
  52. package/esm/BarChart/types.js +1 -0
  53. package/esm/ChartContainer/ChartContainer.js +10 -10
  54. package/esm/ChartsGrid/ChartsGrid.js +23 -12
  55. package/esm/ChartsOverlay/ChartsLoadingOverlay.js +3 -3
  56. package/esm/ChartsOverlay/ChartsNoDataOverlay.js +2 -2
  57. package/esm/ChartsTooltip/DefaultChartsAxisTooltipContent.js +4 -2
  58. package/esm/ChartsTooltip/DefaultChartsItemTooltipContent.js +7 -3
  59. package/esm/ChartsTooltip/utils.js +13 -8
  60. package/esm/ChartsXAxis/ChartsXAxis.js +1 -2
  61. package/esm/ChartsYAxis/ChartsYAxis.js +2 -2
  62. package/esm/LineChart/AreaElement.js +3 -3
  63. package/esm/LineChart/AreaPlot.js +3 -2
  64. package/esm/LineChart/LineChart.js +11 -10
  65. package/esm/LineChart/LineElement.js +3 -3
  66. package/esm/LineChart/legend.js +13 -6
  67. package/esm/PieChart/PieArcLabel.js +3 -1
  68. package/esm/PieChart/PieArcLabelPlot.js +14 -5
  69. package/esm/PieChart/PieArcPlot.js +1 -1
  70. package/esm/PieChart/PieChart.js +11 -10
  71. package/esm/PieChart/formatter.js +4 -1
  72. package/esm/PieChart/legend.js +15 -5
  73. package/esm/ResponsiveChartContainer/ResponsiveChartContainer.js +10 -10
  74. package/esm/ScatterChart/ScatterChart.js +16 -15
  75. package/esm/ScatterChart/legend.js +13 -6
  76. package/esm/SparkLineChart/SparkLineChart.js +5 -5
  77. package/esm/context/ZAxisContextProvider.js +5 -5
  78. package/esm/hooks/useAxisEvents.js +12 -7
  79. package/esm/internals/getLabel.js +3 -0
  80. package/hooks/useAxisEvents.js +12 -7
  81. package/index.js +1 -1
  82. package/internals/defaultizeColor.d.ts +7 -5
  83. package/internals/getLabel.d.ts +1 -0
  84. package/internals/getLabel.js +9 -0
  85. package/internals/utils.d.ts +1 -1
  86. package/models/seriesType/bar.d.ts +4 -1
  87. package/models/seriesType/line.d.ts +4 -1
  88. package/models/seriesType/pie.d.ts +9 -4
  89. package/models/seriesType/scatter.d.ts +4 -1
  90. package/modern/BarChart/BarChart.js +18 -11
  91. package/modern/BarChart/BarClipPath.js +42 -0
  92. package/modern/BarChart/BarElement.js +3 -2
  93. package/modern/BarChart/BarPlot.js +103 -31
  94. package/modern/BarChart/getRadius.js +30 -0
  95. package/modern/BarChart/legend.js +13 -6
  96. package/modern/BarChart/types.js +1 -0
  97. package/modern/ChartContainer/ChartContainer.js +10 -10
  98. package/modern/ChartsGrid/ChartsGrid.js +23 -12
  99. package/modern/ChartsOverlay/ChartsLoadingOverlay.js +3 -3
  100. package/modern/ChartsOverlay/ChartsNoDataOverlay.js +2 -2
  101. package/modern/ChartsTooltip/DefaultChartsAxisTooltipContent.js +4 -2
  102. package/modern/ChartsTooltip/DefaultChartsItemTooltipContent.js +7 -3
  103. package/modern/ChartsTooltip/utils.js +13 -8
  104. package/modern/ChartsXAxis/ChartsXAxis.js +1 -2
  105. package/modern/ChartsYAxis/ChartsYAxis.js +2 -2
  106. package/modern/LineChart/AreaElement.js +3 -3
  107. package/modern/LineChart/AreaPlot.js +3 -2
  108. package/modern/LineChart/LineChart.js +11 -10
  109. package/modern/LineChart/LineElement.js +3 -3
  110. package/modern/LineChart/legend.js +13 -6
  111. package/modern/PieChart/PieArcLabel.js +3 -1
  112. package/modern/PieChart/PieArcLabelPlot.js +14 -5
  113. package/modern/PieChart/PieArcPlot.js +1 -1
  114. package/modern/PieChart/PieChart.js +11 -10
  115. package/modern/PieChart/formatter.js +4 -1
  116. package/modern/PieChart/legend.js +15 -5
  117. package/modern/ResponsiveChartContainer/ResponsiveChartContainer.js +10 -10
  118. package/modern/ScatterChart/ScatterChart.js +16 -15
  119. package/modern/ScatterChart/legend.js +13 -6
  120. package/modern/SparkLineChart/SparkLineChart.js +5 -5
  121. package/modern/context/ZAxisContextProvider.js +5 -5
  122. package/modern/hooks/useAxisEvents.js +12 -7
  123. package/modern/index.js +1 -1
  124. package/modern/internals/getLabel.js +3 -0
  125. package/package.json +3 -3
  126. package/themeAugmentation/components.d.ts +4 -0
  127. package/themeAugmentation/overrides.d.ts +2 -0
  128. package/themeAugmentation/props.d.ts +2 -0
package/CHANGELOG.md CHANGED
@@ -3,6 +3,144 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## v7.5.0
7
+
8
+ _May 17, 2024_
9
+
10
+ We'd like to offer a big thanks to the 10 contributors who made this release possible. Here are some highlights ✨:
11
+
12
+ - 🎁 Add support for checkbox selection on the Tree View components
13
+ - 🌍 Improve Norwegian (nb-NO) and Spanish (es-ES) locales on the Data Grid
14
+ - 🐞 Bugfixes
15
+ - 📚 Documentation improvements
16
+
17
+ ### Data Grid
18
+
19
+ #### `@mui/x-data-grid@7.5.0`
20
+
21
+ - [DataGrid] Fix `rowModesModel` controlled prop (#13056) @Janpot
22
+ - [DataGrid] Reduce bundle size with error messages (#12992) @oliviertassinari
23
+ - [l10n] Improve Norwegian (nb-NO) locale (#13106) @oliverlaidma
24
+ - [l10n] Improve Spanish (es-ES) locale (#13133) @Jucabel
25
+
26
+ #### `@mui/x-data-grid-pro@7.5.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
27
+
28
+ Same changes as in `@mui/x-data-grid@7.5.0`.
29
+
30
+ #### `@mui/x-data-grid-premium@7.5.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
31
+
32
+ Same changes as in `@mui/x-data-grid-pro@7.5.0`.
33
+
34
+ ### Date and Time Pickers
35
+
36
+ #### `@mui/x-date-pickers@7.5.0`
37
+
38
+ - [fields] Allow empty `textField` slot placeholder value (#13148) @arthurbalduini
39
+ - [pickers] Fix `AdapterMomentJalaali` regression (#13144) @LukasTy
40
+ - [pickers] Fix field focusing when switching to view without a renderer (#13112) @LukasTy
41
+ - [pickers] Reuse `AdapterDateFnsBase` in Jalali adapters (#13075) @LukasTy
42
+
43
+ #### `@mui/x-date-pickers-pro@7.5.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
44
+
45
+ Same changes as in `@mui/x-date-pickers@7.5.0`.
46
+
47
+ ### Charts
48
+
49
+ #### `@mui/x-charts@7.5.0`
50
+
51
+ - [charts] Tooltip with `trigger=axis` now follow touch on mobile (#13043) @wzdorowa
52
+ - [charts] Allow `series.label` property to receive a function with the "location" it is going to be displayed on (#12830) @JCQuintas
53
+ - [charts] Improve TypeScript performance (#13137) @alexfauquette
54
+ - [charts] Fix area order when overlapping (#13121) @alexfauquette
55
+ - [charts] Improve `useSlotProps` types (#13141) @alexfauquette
56
+ - [charts] Fix using the theme's font in the Overlay (#13107) @alexfauquette
57
+
58
+ ### Tree View
59
+
60
+ #### `@mui/x-tree-view@7.5.0`
61
+
62
+ - [TreeView] Add support for checkbox selection (#11452) @flaviendelangle
63
+ - [TreeView] Remove unused code (#12917) @flaviendelangle
64
+
65
+ ### Docs
66
+
67
+ - [docs] Document missing Charts API's (#12875) @alexfauquette
68
+
69
+ ### Core
70
+
71
+ - [core] Avoid root level `@mui/x-date-pickers` imports (#13120) @LukasTy
72
+ - [core] Refactor ESLint config to disallow root level imports (#13130) @LukasTy
73
+ - [core] Simplify Danger's config (#13062) @oliviertassinari
74
+ - [core] Shift aliasing from babel to webpack (#13051) @Janpot
75
+ - [core] Reuse the `SectionTitle` component in the doc (#13139) @alexfauquette
76
+
77
+ ## 7.4.0
78
+
79
+ _May 10, 2024_
80
+
81
+ We'd like to offer a big thanks to the 9 contributors who made this release possible. Here are some highlights ✨:
82
+
83
+ - ✨ Add optional `id` attribute on shortcut items of the Date and Time Pickers
84
+ - 🎁 Add support for `date-fns-jalali` v3 in the Date and Time Pickers
85
+ - 🚀 Support rounded corners on `BarChart`
86
+ - 🌍 Add accessibility page to TreeView docs
87
+ - 🐞 Bugfixes
88
+ - 📚 Documentation improvements
89
+
90
+ ### Data Grid
91
+
92
+ #### `@mui/x-data-grid@7.4.0`
93
+
94
+ - [DataGrid] Fix error when focus moves from column header to `svg` element (#13028) @oukunan
95
+ - [DataGrid] Fix error on column groups change (#12965) @romgrk
96
+
97
+ #### `@mui/x-data-grid-pro@7.4.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
98
+
99
+ Same changes as in `@mui/x-data-grid@7.4.0`.
100
+
101
+ #### `@mui/x-data-grid-premium@7.4.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
102
+
103
+ Same changes as in `@mui/x-data-grid-pro@7.4.0`.
104
+
105
+ ### Date and Time Pickers
106
+
107
+ #### `@mui/x-date-pickers@7.4.0`
108
+
109
+ - [fields] Fix regression preventing form submit on "Enter" click (#13065) @LukasTy
110
+ - [pickers] Add `AdapterDateFnsJalaliV3` adapter (#12891) @smmoosavi
111
+ - [pickers] Add optional `id` attribute on shortcut items (#12976) @noraleonte
112
+
113
+ #### `@mui/x-date-pickers-pro@7.4.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
114
+
115
+ Same changes as in `@mui/x-date-pickers@7.4.0`.
116
+
117
+ ### Charts
118
+
119
+ #### `@mui/x-charts@7.4.0`
120
+
121
+ - [charts] Add `ChartsGrid` to `themeAugmentation` (#13026) @noraleonte
122
+ - [charts] Support rounded corners on `BarChart` (#12834) @JCQuintas
123
+
124
+ ### Tree View
125
+
126
+ #### `@mui/x-tree-view@7.4.0`
127
+
128
+ - [TreeView] Fix props propagation and theme entry in `TreeItem2` (#12889) @flaviendelangle
129
+
130
+ ### Docs
131
+
132
+ - [docs] Add accessibility page to TreeView docs (#12845) @noraleonte
133
+ - [docs] Fix Charts styling typos (#13061) @oliviertassinari
134
+ - [docs] Fix legal link to EULA free trial (#13013) @oliviertassinari
135
+ - [docs] Update interface name in pinned columns docs (#13070) @cherniavskii
136
+
137
+ ### Core
138
+
139
+ - [core] Improve release process docs (#12977) @JCQuintas
140
+ - [core] Prepare React 19 (#12991) @oliviertassinari
141
+ - [docs-infra] Fix Netlify PR preview path (#12993) @oliviertassinari
142
+ - [infra] Automation: Add release PR reviewers (#12982) @michelengelen
143
+
6
144
  ## 7.3.2
7
145
 
8
146
  _May 2, 2024_
@@ -17,8 +155,6 @@ We'd like to offer a big thanks to the 11 contributors who made this release pos
17
155
  - 🐞 Bugfixes
18
156
  - 📚 Documentation improvements
19
157
 
20
- <!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->
21
-
22
158
  ### Data Grid
23
159
 
24
160
  #### `@mui/x-data-grid@7.3.2`
@@ -3281,6 +3417,28 @@ Here is an example of the renaming for the `<ChartsTooltip />` component.
3281
3417
  - [core] Update release instructions as per v7 configuration (#10962) @MBilalShafi
3282
3418
  - [license] Correctly throw errors (#10924) @oliviertassinari
3283
3419
 
3420
+ ## 6.19.12
3421
+
3422
+ _May 17, 2024_
3423
+
3424
+ We'd like to offer a big thanks to the 2 contributors who made this release possible. Here are some highlights ✨:
3425
+
3426
+ - 🐞 Bugfixes
3427
+
3428
+ ### Date Pickers
3429
+
3430
+ #### `@mui/x-date-pickers@6.19.12`
3431
+
3432
+ - [pickers] Fix `AdapterMomentJalaali` regression (#13150) @LukasTy
3433
+
3434
+ #### `@mui/x-date-pickers-pro@6.19.12` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
3435
+
3436
+ Same changes as in `@mui/x-date-pickers@6.19.12`.
3437
+
3438
+ ### Docs
3439
+
3440
+ - [docs] Use MUI X v6 in Codesandbox and Stackblitz demos (#12838) @cherniavskii
3441
+
3284
3442
  ## 6.19.11
3285
3443
 
3286
3444
  _Apr 18, 2024_
@@ -136,6 +136,11 @@ process.env.NODE_ENV !== "production" ? ChartContainer.propTypes = {
136
136
  axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
137
137
  classes: _propTypes.default.object,
138
138
  colorMap: _propTypes.default.oneOfType([_propTypes.default.shape({
139
+ colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
140
+ type: _propTypes.default.oneOf(['ordinal']).isRequired,
141
+ unknownColor: _propTypes.default.string,
142
+ values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
143
+ }), _propTypes.default.shape({
139
144
  color: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.string.isRequired), _propTypes.default.func]).isRequired,
140
145
  max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
141
146
  min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
@@ -144,11 +149,6 @@ process.env.NODE_ENV !== "production" ? ChartContainer.propTypes = {
144
149
  colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
145
150
  thresholds: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]).isRequired).isRequired,
146
151
  type: _propTypes.default.oneOf(['piecewise']).isRequired
147
- }), _propTypes.default.shape({
148
- colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
149
- type: _propTypes.default.oneOf(['ordinal']).isRequired,
150
- unknownColor: _propTypes.default.string,
151
- values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
152
152
  })]),
153
153
  data: _propTypes.default.array,
154
154
  dataKey: _propTypes.default.string,
@@ -189,6 +189,11 @@ process.env.NODE_ENV !== "production" ? ChartContainer.propTypes = {
189
189
  axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
190
190
  classes: _propTypes.default.object,
191
191
  colorMap: _propTypes.default.oneOfType([_propTypes.default.shape({
192
+ colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
193
+ type: _propTypes.default.oneOf(['ordinal']).isRequired,
194
+ unknownColor: _propTypes.default.string,
195
+ values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
196
+ }), _propTypes.default.shape({
192
197
  color: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.string.isRequired), _propTypes.default.func]).isRequired,
193
198
  max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
194
199
  min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
@@ -197,11 +202,6 @@ process.env.NODE_ENV !== "production" ? ChartContainer.propTypes = {
197
202
  colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
198
203
  thresholds: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]).isRequired).isRequired,
199
204
  type: _propTypes.default.oneOf(['piecewise']).isRequired
200
- }), _propTypes.default.shape({
201
- colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
202
- type: _propTypes.default.oneOf(['ordinal']).isRequired,
203
- unknownColor: _propTypes.default.string,
204
- values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
205
205
  })]),
206
206
  data: _propTypes.default.array,
207
207
  dataKey: _propTypes.default.string,
@@ -21,15 +21,22 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
21
21
  const GridRoot = (0, _styles.styled)('g', {
22
22
  name: 'MuiChartsGrid',
23
23
  slot: 'Root',
24
- overridesResolver: (props, styles) => styles.root
24
+ overridesResolver: (props, styles) => [{
25
+ [`&.${_chartsGridClasses.chartsGridClasses.verticalLine}`]: styles.verticalLine
26
+ }, {
27
+ [`&.${_chartsGridClasses.chartsGridClasses.horizontalLine}`]: styles.horizontalLine
28
+ }, styles.root]
29
+ })({});
30
+ const GridLine = (0, _styles.styled)('line', {
31
+ name: 'MuiChartsGrid',
32
+ slot: 'Line',
33
+ overridesResolver: (props, styles) => styles.line
25
34
  })(({
26
35
  theme
27
36
  }) => ({
28
- [`& .${_chartsGridClasses.chartsGridClasses.line}`]: {
29
- stroke: (theme.vars || theme).palette.divider,
30
- shapeRendering: 'crispEdges',
31
- strokeWidth: 1
32
- }
37
+ stroke: (theme.vars || theme).palette.divider,
38
+ shapeRendering: 'crispEdges',
39
+ strokeWidth: 1
33
40
  }));
34
41
  const useUtilityClasses = ({
35
42
  classes
@@ -51,18 +58,22 @@ const useUtilityClasses = ({
51
58
  * - [ChartsGrid API](https://mui.com/x/api/charts/charts-axis/)
52
59
  */
53
60
  function ChartsGrid(props) {
61
+ const themeProps = (0, _styles.useThemeProps)({
62
+ props,
63
+ name: 'MuiChartsGrid'
64
+ });
54
65
  const {
55
66
  vertical,
56
67
  horizontal
57
- } = props,
58
- other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
68
+ } = themeProps,
69
+ other = (0, _objectWithoutPropertiesLoose2.default)(themeProps, _excluded);
59
70
  const {
60
71
  xAxis,
61
72
  xAxisIds,
62
73
  yAxis,
63
74
  yAxisIds
64
75
  } = React.useContext(_CartesianContextProvider.CartesianContext);
65
- const classes = useUtilityClasses(props);
76
+ const classes = useUtilityClasses(themeProps);
66
77
  const horizontalAxisId = yAxisIds[0];
67
78
  const verticalAxisId = xAxisIds[0];
68
79
  const {
@@ -90,7 +101,7 @@ function ChartsGrid(props) {
90
101
  children: [vertical && xTicks.map(({
91
102
  formattedValue,
92
103
  offset
93
- }) => /*#__PURE__*/(0, _jsxRuntime.jsx)("line", {
104
+ }) => /*#__PURE__*/(0, _jsxRuntime.jsx)(GridLine, {
94
105
  y1: yScale.range()[0],
95
106
  y2: yScale.range()[1],
96
107
  x1: offset,
@@ -99,7 +110,7 @@ function ChartsGrid(props) {
99
110
  }, `vertical-${formattedValue}`)), horizontal && yTicks.map(({
100
111
  formattedValue,
101
112
  offset
102
- }) => /*#__PURE__*/(0, _jsxRuntime.jsx)("line", {
113
+ }) => /*#__PURE__*/(0, _jsxRuntime.jsx)(GridLine, {
103
114
  y1: offset,
104
115
  y2: offset,
105
116
  x1: xScale.range()[0],
@@ -5,8 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.ChartsLoadingOverlay = ChartsLoadingOverlay;
8
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
8
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var React = _interopRequireWildcard(require("react"));
11
11
  var _styles = require("@mui/material/styles");
12
12
  var _useDrawingArea = require("../hooks/useDrawingArea");
@@ -16,7 +16,7 @@ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return
16
16
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
17
17
  const StyledText = (0, _styles.styled)('text')(({
18
18
  theme
19
- }) => ({
19
+ }) => (0, _extends2.default)({}, theme.typography.body2, {
20
20
  stroke: 'none',
21
21
  fill: theme.palette.text.primary,
22
22
  shapeRendering: 'crispEdges',
@@ -38,6 +38,6 @@ function ChartsLoadingOverlay(props) {
38
38
  x: left + width / 2,
39
39
  y: top + height / 2
40
40
  }, other, {
41
- children: message ?? 'Loading data ...'
41
+ children: message ?? 'Loading data'
42
42
  }));
43
43
  }
@@ -5,8 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.ChartsNoDataOverlay = ChartsNoDataOverlay;
8
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
8
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var React = _interopRequireWildcard(require("react"));
11
11
  var _styles = require("@mui/material/styles");
12
12
  var _useDrawingArea = require("../hooks/useDrawingArea");
@@ -16,7 +16,7 @@ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return
16
16
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
17
17
  const StyledText = (0, _styles.styled)('text')(({
18
18
  theme
19
- }) => ({
19
+ }) => (0, _extends2.default)({}, theme.typography.body2, {
20
20
  stroke: 'none',
21
21
  fill: theme.palette.text.primary,
22
22
  shapeRendering: 'crispEdges',
@@ -27,9 +27,18 @@ export interface ChartsOverlaySlotProps {
27
27
  export interface ChartsOverlayProps {
28
28
  /**
29
29
  * If `true`, a loading overlay is displayed.
30
+ * @default false
30
31
  */
31
32
  loading?: boolean;
33
+ /**
34
+ * Overridable component slots.
35
+ * @default {}
36
+ */
32
37
  slots?: ChartsOverlaySlots;
38
+ /**
39
+ * The props used for each component slot.
40
+ * @default {}
41
+ */
33
42
  slotProps?: ChartsOverlaySlotProps;
34
43
  }
35
44
  export declare function ChartsOverlay(props: ChartsOverlayProps): React.JSX.Element | null;
@@ -11,6 +11,7 @@ var _clsx = _interopRequireDefault(require("clsx"));
11
11
  var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
12
12
  var _ChartsTooltipTable = require("./ChartsTooltipTable");
13
13
  var _utils = require("./utils");
14
+ var _getLabel = require("../internals/getLabel");
14
15
  var _jsxRuntime = require("react/jsx-runtime");
15
16
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
16
17
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
@@ -59,6 +60,7 @@ function DefaultChartsAxisTooltipContent(props) {
59
60
  if (formattedValue == null) {
60
61
  return null;
61
62
  }
63
+ const formattedLabel = (0, _getLabel.getLabel)(label, 'tooltip');
62
64
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_ChartsTooltipTable.ChartsTooltipRow, {
63
65
  className: classes.row,
64
66
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsTooltipTable.ChartsTooltipCell, {
@@ -69,8 +71,8 @@ function DefaultChartsAxisTooltipContent(props) {
69
71
  })
70
72
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsTooltipTable.ChartsTooltipCell, {
71
73
  className: (0, _clsx.default)(classes.labelCell, classes.cell),
72
- children: label ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
73
- children: label
74
+ children: formattedLabel ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography.default, {
75
+ children: formattedLabel
74
76
  }) : null
75
77
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsTooltipTable.ChartsTooltipCell, {
76
78
  className: (0, _clsx.default)(classes.valueCell, classes.cell),
@@ -5,10 +5,12 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.DefaultChartsItemTooltipContent = DefaultChartsItemTooltipContent;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
8
9
  var React = _interopRequireWildcard(require("react"));
9
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
10
11
  var _clsx = _interopRequireDefault(require("clsx"));
11
12
  var _ChartsTooltipTable = require("./ChartsTooltipTable");
13
+ var _getLabel = require("../internals/getLabel");
12
14
  var _jsxRuntime = require("react/jsx-runtime");
13
15
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
14
16
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
@@ -28,12 +30,14 @@ function DefaultChartsItemTooltipContent(props) {
28
30
  color
29
31
  } = series.type === 'pie' ? {
30
32
  color: getColor(itemData.dataIndex),
31
- displayedLabel: series.data[itemData.dataIndex].label
33
+ displayedLabel: (0, _getLabel.getLabel)(series.data[itemData.dataIndex].label, 'tooltip')
32
34
  } : {
33
35
  color: getColor(itemData.dataIndex) ?? series.color,
34
- displayedLabel: series.label
36
+ displayedLabel: (0, _getLabel.getLabel)(series.label, 'tooltip')
35
37
  };
36
- const value = series.data[itemData.dataIndex];
38
+ const value = series.type === 'pie' ? (0, _extends2.default)({}, series.data[itemData.dataIndex], {
39
+ label: (0, _getLabel.getLabel)(series.data[itemData.dataIndex].label, 'tooltip')
40
+ }) : series.data[itemData.dataIndex];
37
41
  const formattedValue = series.valueFormatter?.(value, {
38
42
  dataIndex: itemData.dataIndex
39
43
  });
@@ -66,20 +66,25 @@ function useMouseTracker() {
66
66
  if (element === null) {
67
67
  return () => {};
68
68
  }
69
- const handleMouseOut = () => {
69
+ const handleOut = () => {
70
70
  setMousePosition(null);
71
71
  };
72
- const handleMouseMove = event => {
72
+ const handleMove = event => {
73
+ const target = 'targetTouches' in event ? event.targetTouches[0] : event;
73
74
  setMousePosition({
74
- x: event.clientX,
75
- y: event.clientY
75
+ x: target.clientX,
76
+ y: target.clientY
76
77
  });
77
78
  };
78
- element.addEventListener('mouseout', handleMouseOut);
79
- element.addEventListener('mousemove', handleMouseMove);
79
+ element.addEventListener('mouseout', handleOut);
80
+ element.addEventListener('mousemove', handleMove);
81
+ element.addEventListener('touchend', handleOut);
82
+ element.addEventListener('touchmove', handleMove);
80
83
  return () => {
81
- element.removeEventListener('mouseout', handleMouseOut);
82
- element.removeEventListener('mousemove', handleMouseMove);
84
+ element.removeEventListener('mouseout', handleOut);
85
+ element.removeEventListener('mousemove', handleMove);
86
+ element.addEventListener('touchend', handleOut);
87
+ element.addEventListener('touchmove', handleMove);
83
88
  };
84
89
  }, [svgRef]);
85
90
  return mousePosition;
@@ -176,8 +176,7 @@ function ChartsXAxis(inProps) {
176
176
  textAnchor: 'middle',
177
177
  dominantBaseline: position === 'bottom' ? 'hanging' : 'auto',
178
178
  fontSize: tickFontSize ?? 12
179
- }, tickLabelStyle),
180
- className: classes.tickLabel
179
+ }, tickLabelStyle)
181
180
  },
182
181
  className: classes.tickLabel,
183
182
  ownerState: {}
@@ -129,9 +129,9 @@ function ChartsYAxis(inProps) {
129
129
  fontSize: tickFontSize,
130
130
  textAnchor: position === 'right' ? 'start' : 'end',
131
131
  dominantBaseline: 'central'
132
- }, tickLabelStyle),
133
- className: classes.tickLabel
132
+ }, tickLabelStyle)
134
133
  },
134
+ className: classes.tickLabel,
135
135
  ownerState: {}
136
136
  });
137
137
  const axisLabelProps = (0, _utils.useSlotProps)({
@@ -31,7 +31,7 @@ export interface AreaElementSlots {
31
31
  export interface AreaElementSlotProps {
32
32
  area?: AnimatedAreaProps;
33
33
  }
34
- export interface AreaElementProps extends Omit<AreaElementOwnerState, 'isFaded' | 'isHighlighted'>, Pick<AnimatedAreaProps, 'skipAnimation'>, Omit<React.ComponentPropsWithoutRef<'path'>, 'color' | 'id'> {
34
+ export interface AreaElementProps extends Omit<AreaElementOwnerState, 'isFaded' | 'isHighlighted'>, Pick<AnimatedAreaProps, 'skipAnimation'>, Omit<React.SVGProps<SVGPathElement>, 'ref' | 'color' | 'id'> {
35
35
  d: string;
36
36
  highlightScope?: Partial<HighlightScope>;
37
37
  /**
@@ -85,17 +85,17 @@ function AreaElement(props) {
85
85
  const areaProps = (0, _utils.useSlotProps)({
86
86
  elementType: Area,
87
87
  externalSlotProps: slotProps?.area,
88
- additionalProps: (0, _extends2.default)({}, other, getInteractionItemProps({
88
+ additionalProps: (0, _extends2.default)({}, getInteractionItemProps({
89
89
  type: 'line',
90
90
  seriesId: id
91
91
  }), {
92
- className: classes.root,
93
92
  onClick,
94
93
  cursor: onClick ? 'pointer' : 'unset'
95
94
  }),
95
+ className: classes.root,
96
96
  ownerState
97
97
  });
98
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(Area, (0, _extends2.default)({}, areaProps));
98
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Area, (0, _extends2.default)({}, other, areaProps));
99
99
  }
100
100
  process.env.NODE_ENV !== "production" ? AreaElement.propTypes = {
101
101
  // ----------------------------- Warning --------------------------------
@@ -42,7 +42,8 @@ const useAggregatedData = () => {
42
42
  return stackingGroups.flatMap(({
43
43
  ids: groupIds
44
44
  }) => {
45
- return groupIds.flatMap(seriesId => {
45
+ return [...groupIds].reverse() // Revert stacked area for a more pleasant animation
46
+ .map(seriesId => {
46
47
  const {
47
48
  xAxisKey = defaultXAxisId,
48
49
  yAxisKey = defaultYAxisId,
@@ -101,7 +102,7 @@ function AreaPlot(props) {
101
102
  const getGradientId = (0, _ChartsAxesGradients.useChartGradient)();
102
103
  const completedData = useAggregatedData();
103
104
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("g", (0, _extends2.default)({}, other, {
104
- children: completedData.reverse().map(({
105
+ children: completedData.map(({
105
106
  d,
106
107
  seriesId,
107
108
  color,
@@ -214,6 +214,7 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
214
214
  }),
215
215
  /**
216
216
  * If `true`, a loading overlay is displayed.
217
+ * @default false
217
218
  */
218
219
  loading: _propTypes.default.bool,
219
220
  /**
@@ -313,6 +314,11 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
313
314
  axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
314
315
  classes: _propTypes.default.object,
315
316
  colorMap: _propTypes.default.oneOfType([_propTypes.default.shape({
317
+ colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
318
+ type: _propTypes.default.oneOf(['ordinal']).isRequired,
319
+ unknownColor: _propTypes.default.string,
320
+ values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
321
+ }), _propTypes.default.shape({
316
322
  color: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.string.isRequired), _propTypes.default.func]).isRequired,
317
323
  max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
318
324
  min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
@@ -321,11 +327,6 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
321
327
  colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
322
328
  thresholds: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]).isRequired).isRequired,
323
329
  type: _propTypes.default.oneOf(['piecewise']).isRequired
324
- }), _propTypes.default.shape({
325
- colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
326
- type: _propTypes.default.oneOf(['ordinal']).isRequired,
327
- unknownColor: _propTypes.default.string,
328
- values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
329
330
  })]),
330
331
  data: _propTypes.default.array,
331
332
  dataKey: _propTypes.default.string,
@@ -366,6 +367,11 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
366
367
  axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
367
368
  classes: _propTypes.default.object,
368
369
  colorMap: _propTypes.default.oneOfType([_propTypes.default.shape({
370
+ colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
371
+ type: _propTypes.default.oneOf(['ordinal']).isRequired,
372
+ unknownColor: _propTypes.default.string,
373
+ values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
374
+ }), _propTypes.default.shape({
369
375
  color: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.string.isRequired), _propTypes.default.func]).isRequired,
370
376
  max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
371
377
  min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
@@ -374,11 +380,6 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
374
380
  colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
375
381
  thresholds: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]).isRequired).isRequired,
376
382
  type: _propTypes.default.oneOf(['piecewise']).isRequired
377
- }), _propTypes.default.shape({
378
- colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
379
- type: _propTypes.default.oneOf(['ordinal']).isRequired,
380
- unknownColor: _propTypes.default.string,
381
- values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
382
383
  })]),
383
384
  data: _propTypes.default.array,
384
385
  dataKey: _propTypes.default.string,
@@ -31,7 +31,7 @@ export interface LineElementSlots {
31
31
  export interface LineElementSlotProps {
32
32
  line?: AnimatedLineProps;
33
33
  }
34
- export interface LineElementProps extends Omit<LineElementOwnerState, 'isFaded' | 'isHighlighted'>, Pick<AnimatedLineProps, 'skipAnimation'>, Omit<React.ComponentPropsWithoutRef<'path'>, 'color' | 'id'> {
34
+ export interface LineElementProps extends Omit<LineElementOwnerState, 'isFaded' | 'isHighlighted'>, Pick<AnimatedLineProps, 'skipAnimation'>, Omit<React.SVGProps<SVGPathElement>, 'ref' | 'color' | 'id'> {
35
35
  d: string;
36
36
  highlightScope?: Partial<HighlightScope>;
37
37
  /**
@@ -85,17 +85,17 @@ function LineElement(props) {
85
85
  const lineProps = (0, _utils.useSlotProps)({
86
86
  elementType: Line,
87
87
  externalSlotProps: slotProps?.line,
88
- additionalProps: (0, _extends2.default)({}, other, getInteractionItemProps({
88
+ additionalProps: (0, _extends2.default)({}, getInteractionItemProps({
89
89
  type: 'line',
90
90
  seriesId: id
91
91
  }), {
92
- className: classes.root,
93
92
  onClick,
94
93
  cursor: onClick ? 'pointer' : 'unset'
95
94
  }),
95
+ className: classes.root,
96
96
  ownerState
97
97
  });
98
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(Line, (0, _extends2.default)({}, lineProps));
98
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Line, (0, _extends2.default)({}, other, lineProps));
99
99
  }
100
100
  process.env.NODE_ENV !== "production" ? LineElement.propTypes = {
101
101
  // ----------------------------- Warning --------------------------------
@@ -14,7 +14,7 @@ interface LineHighlightElementOwnerState {
14
14
  }
15
15
  export declare function getHighlightElementUtilityClass(slot: string): string;
16
16
  export declare const lineHighlightElementClasses: LineHighlightElementClasses;
17
- export type LineHighlightElementProps = LineHighlightElementOwnerState & Omit<React.ComponentPropsWithoutRef<'circle'>, 'id'> & {};
17
+ export type LineHighlightElementProps = LineHighlightElementOwnerState & Omit<React.SVGProps<SVGCircleElement>, 'ref' | 'id'>;
18
18
  /**
19
19
  * Demos:
20
20
  *
@@ -19,7 +19,7 @@ interface MarkElementOwnerState {
19
19
  }
20
20
  export declare function getMarkElementUtilityClass(slot: string): string;
21
21
  export declare const markElementClasses: MarkElementClasses;
22
- export type MarkElementProps = Omit<MarkElementOwnerState, 'isFaded' | 'isHighlighted'> & Omit<React.ComponentPropsWithoutRef<'path'>, 'id'> & {
22
+ export type MarkElementProps = Omit<MarkElementOwnerState, 'isFaded' | 'isHighlighted'> & Omit<React.SVGProps<SVGPathElement>, 'ref' | 'id'> & {
23
23
  /**
24
24
  * If `true`, animations are skipped.
25
25
  * @default false