@mui/x-charts-pro 9.1.0 → 9.3.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.
@@ -196,11 +196,11 @@ process.env.NODE_ENV !== "production" ? BarChartPro.propTypes = {
196
196
  hiddenItems: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.shape({
197
197
  dataIndex: _propTypes.default.number,
198
198
  seriesId: _propTypes.default.string.isRequired,
199
- type: _propTypes.default.oneOf(['bar'])
199
+ type: _propTypes.default.oneOf(['bar']).isRequired
200
200
  }), _propTypes.default.shape({
201
201
  dataIndex: _propTypes.default.number,
202
202
  seriesId: _propTypes.default.string.isRequired,
203
- type: _propTypes.default.oneOf(['bar']).isRequired
203
+ type: _propTypes.default.oneOf(['bar'])
204
204
  })]).isRequired),
205
205
  /**
206
206
  * If `true`, the legend is not rendered.
@@ -220,11 +220,11 @@ process.env.NODE_ENV !== "production" ? BarChartPro.propTypes = {
220
220
  */
221
221
  highlightedItem: _propTypes.default.oneOfType([_propTypes.default.shape({
222
222
  dataIndex: _propTypes.default.number,
223
- seriesId: _propTypes.default.string.isRequired,
224
- type: _propTypes.default.oneOf(['bar']).isRequired
223
+ seriesId: _propTypes.default.string.isRequired
225
224
  }), _propTypes.default.shape({
226
225
  dataIndex: _propTypes.default.number,
227
- seriesId: _propTypes.default.string.isRequired
226
+ seriesId: _propTypes.default.string.isRequired,
227
+ type: _propTypes.default.oneOf(['bar']).isRequired
228
228
  })]),
229
229
  /**
230
230
  * This prop is used to help implement the accessibility logic.
@@ -255,11 +255,11 @@ process.env.NODE_ENV !== "production" ? BarChartPro.propTypes = {
255
255
  initialHiddenItems: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.shape({
256
256
  dataIndex: _propTypes.default.number,
257
257
  seriesId: _propTypes.default.string.isRequired,
258
- type: _propTypes.default.oneOf(['bar'])
258
+ type: _propTypes.default.oneOf(['bar']).isRequired
259
259
  }), _propTypes.default.shape({
260
260
  dataIndex: _propTypes.default.number,
261
261
  seriesId: _propTypes.default.string.isRequired,
262
- type: _propTypes.default.oneOf(['bar']).isRequired
262
+ type: _propTypes.default.oneOf(['bar'])
263
263
  })]).isRequired),
264
264
  /**
265
265
  * The list of zoom data related to each axis.
@@ -403,11 +403,11 @@ process.env.NODE_ENV !== "production" ? BarChartPro.propTypes = {
403
403
  */
404
404
  tooltipItem: _propTypes.default.oneOfType([_propTypes.default.shape({
405
405
  dataIndex: _propTypes.default.number.isRequired,
406
- seriesId: _propTypes.default.string.isRequired,
407
- type: _propTypes.default.oneOf(['bar']).isRequired
406
+ seriesId: _propTypes.default.string.isRequired
408
407
  }), _propTypes.default.shape({
409
408
  dataIndex: _propTypes.default.number.isRequired,
410
- seriesId: _propTypes.default.string.isRequired
409
+ seriesId: _propTypes.default.string.isRequired,
410
+ type: _propTypes.default.oneOf(['bar']).isRequired
411
411
  })]),
412
412
  /**
413
413
  * The width of the chart in px. If not defined, it takes the width of the parent element.
@@ -430,11 +430,6 @@ process.env.NODE_ENV !== "production" ? BarChartPro.propTypes = {
430
430
  */
431
431
  zAxis: _propTypes.default.arrayOf(_propTypes.default.shape({
432
432
  colorMap: _propTypes.default.oneOfType([_propTypes.default.shape({
433
- colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
434
- type: _propTypes.default.oneOf(['ordinal']).isRequired,
435
- unknownColor: _propTypes.default.string,
436
- values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
437
- }), _propTypes.default.shape({
438
433
  color: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.string.isRequired), _propTypes.default.func]).isRequired,
439
434
  max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
440
435
  min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
@@ -443,6 +438,11 @@ process.env.NODE_ENV !== "production" ? BarChartPro.propTypes = {
443
438
  colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
444
439
  thresholds: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]).isRequired).isRequired,
445
440
  type: _propTypes.default.oneOf(['piecewise']).isRequired
441
+ }), _propTypes.default.shape({
442
+ colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
443
+ type: _propTypes.default.oneOf(['ordinal']).isRequired,
444
+ unknownColor: _propTypes.default.string,
445
+ values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
446
446
  })]),
447
447
  data: _propTypes.default.array,
448
448
  dataKey: _propTypes.default.string,
@@ -464,6 +464,11 @@ process.env.NODE_ENV !== "production" ? BarChartPro.propTypes = {
464
464
  */
465
465
  zoomInteractionConfig: _propTypes.default.shape({
466
466
  pan: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf(['drag', 'pressAndDrag', 'wheel']), _propTypes.default.shape({
467
+ allowedDirection: _propTypes.default.oneOf(['x', 'xy', 'y']),
468
+ pointerMode: _propTypes.default.any,
469
+ requiredKeys: _propTypes.default.arrayOf(_propTypes.default.string),
470
+ type: _propTypes.default.oneOf(['wheel']).isRequired
471
+ }), _propTypes.default.shape({
467
472
  pointerMode: _propTypes.default.oneOf(['mouse', 'touch']),
468
473
  requiredKeys: _propTypes.default.arrayOf(_propTypes.default.string),
469
474
  type: _propTypes.default.oneOf(['drag']).isRequired
@@ -471,24 +476,11 @@ process.env.NODE_ENV !== "production" ? BarChartPro.propTypes = {
471
476
  pointerMode: _propTypes.default.oneOf(['mouse', 'touch']),
472
477
  requiredKeys: _propTypes.default.arrayOf(_propTypes.default.string),
473
478
  type: _propTypes.default.oneOf(['pressAndDrag']).isRequired
474
- }), _propTypes.default.shape({
475
- allowedDirection: _propTypes.default.oneOf(['x', 'xy', 'y']),
476
- pointerMode: _propTypes.default.any,
477
- requiredKeys: _propTypes.default.arrayOf(_propTypes.default.string),
478
- type: _propTypes.default.oneOf(['wheel']).isRequired
479
479
  })]).isRequired),
480
480
  zoom: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf(['brush', 'doubleTapReset', 'pinch', 'tapAndDrag', 'wheel']), _propTypes.default.shape({
481
- pointerMode: _propTypes.default.any,
482
- requiredKeys: _propTypes.default.arrayOf(_propTypes.default.string),
483
- type: _propTypes.default.oneOf(['wheel']).isRequired
484
- }), _propTypes.default.shape({
485
- pointerMode: _propTypes.default.any,
486
- requiredKeys: _propTypes.default.array,
487
- type: _propTypes.default.oneOf(['pinch']).isRequired
488
- }), _propTypes.default.shape({
489
481
  pointerMode: _propTypes.default.oneOf(['mouse', 'touch']),
490
482
  requiredKeys: _propTypes.default.arrayOf(_propTypes.default.string),
491
- type: _propTypes.default.oneOf(['tapAndDrag']).isRequired
483
+ type: _propTypes.default.oneOf(['brush']).isRequired
492
484
  }), _propTypes.default.shape({
493
485
  pointerMode: _propTypes.default.oneOf(['mouse', 'touch']),
494
486
  requiredKeys: _propTypes.default.arrayOf(_propTypes.default.string),
@@ -496,7 +488,15 @@ process.env.NODE_ENV !== "production" ? BarChartPro.propTypes = {
496
488
  }), _propTypes.default.shape({
497
489
  pointerMode: _propTypes.default.oneOf(['mouse', 'touch']),
498
490
  requiredKeys: _propTypes.default.arrayOf(_propTypes.default.string),
499
- type: _propTypes.default.oneOf(['brush']).isRequired
491
+ type: _propTypes.default.oneOf(['tapAndDrag']).isRequired
492
+ }), _propTypes.default.shape({
493
+ pointerMode: _propTypes.default.any,
494
+ requiredKeys: _propTypes.default.array,
495
+ type: _propTypes.default.oneOf(['pinch']).isRequired
496
+ }), _propTypes.default.shape({
497
+ pointerMode: _propTypes.default.any,
498
+ requiredKeys: _propTypes.default.arrayOf(_propTypes.default.string),
499
+ type: _propTypes.default.oneOf(['wheel']).isRequired
500
500
  })]).isRequired)
501
501
  })
502
502
  } : void 0;
@@ -189,11 +189,11 @@ process.env.NODE_ENV !== "production" ? BarChartPro.propTypes = {
189
189
  hiddenItems: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.shape({
190
190
  dataIndex: PropTypes.number,
191
191
  seriesId: PropTypes.string.isRequired,
192
- type: PropTypes.oneOf(['bar'])
192
+ type: PropTypes.oneOf(['bar']).isRequired
193
193
  }), PropTypes.shape({
194
194
  dataIndex: PropTypes.number,
195
195
  seriesId: PropTypes.string.isRequired,
196
- type: PropTypes.oneOf(['bar']).isRequired
196
+ type: PropTypes.oneOf(['bar'])
197
197
  })]).isRequired),
198
198
  /**
199
199
  * If `true`, the legend is not rendered.
@@ -213,11 +213,11 @@ process.env.NODE_ENV !== "production" ? BarChartPro.propTypes = {
213
213
  */
214
214
  highlightedItem: PropTypes.oneOfType([PropTypes.shape({
215
215
  dataIndex: PropTypes.number,
216
- seriesId: PropTypes.string.isRequired,
217
- type: PropTypes.oneOf(['bar']).isRequired
216
+ seriesId: PropTypes.string.isRequired
218
217
  }), PropTypes.shape({
219
218
  dataIndex: PropTypes.number,
220
- seriesId: PropTypes.string.isRequired
219
+ seriesId: PropTypes.string.isRequired,
220
+ type: PropTypes.oneOf(['bar']).isRequired
221
221
  })]),
222
222
  /**
223
223
  * This prop is used to help implement the accessibility logic.
@@ -248,11 +248,11 @@ process.env.NODE_ENV !== "production" ? BarChartPro.propTypes = {
248
248
  initialHiddenItems: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.shape({
249
249
  dataIndex: PropTypes.number,
250
250
  seriesId: PropTypes.string.isRequired,
251
- type: PropTypes.oneOf(['bar'])
251
+ type: PropTypes.oneOf(['bar']).isRequired
252
252
  }), PropTypes.shape({
253
253
  dataIndex: PropTypes.number,
254
254
  seriesId: PropTypes.string.isRequired,
255
- type: PropTypes.oneOf(['bar']).isRequired
255
+ type: PropTypes.oneOf(['bar'])
256
256
  })]).isRequired),
257
257
  /**
258
258
  * The list of zoom data related to each axis.
@@ -396,11 +396,11 @@ process.env.NODE_ENV !== "production" ? BarChartPro.propTypes = {
396
396
  */
397
397
  tooltipItem: PropTypes.oneOfType([PropTypes.shape({
398
398
  dataIndex: PropTypes.number.isRequired,
399
- seriesId: PropTypes.string.isRequired,
400
- type: PropTypes.oneOf(['bar']).isRequired
399
+ seriesId: PropTypes.string.isRequired
401
400
  }), PropTypes.shape({
402
401
  dataIndex: PropTypes.number.isRequired,
403
- seriesId: PropTypes.string.isRequired
402
+ seriesId: PropTypes.string.isRequired,
403
+ type: PropTypes.oneOf(['bar']).isRequired
404
404
  })]),
405
405
  /**
406
406
  * The width of the chart in px. If not defined, it takes the width of the parent element.
@@ -423,11 +423,6 @@ process.env.NODE_ENV !== "production" ? BarChartPro.propTypes = {
423
423
  */
424
424
  zAxis: PropTypes.arrayOf(PropTypes.shape({
425
425
  colorMap: PropTypes.oneOfType([PropTypes.shape({
426
- colors: PropTypes.arrayOf(PropTypes.string).isRequired,
427
- type: PropTypes.oneOf(['ordinal']).isRequired,
428
- unknownColor: PropTypes.string,
429
- values: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number, PropTypes.string]).isRequired)
430
- }), PropTypes.shape({
431
426
  color: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string.isRequired), PropTypes.func]).isRequired,
432
427
  max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
433
428
  min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
@@ -436,6 +431,11 @@ process.env.NODE_ENV !== "production" ? BarChartPro.propTypes = {
436
431
  colors: PropTypes.arrayOf(PropTypes.string).isRequired,
437
432
  thresholds: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]).isRequired).isRequired,
438
433
  type: PropTypes.oneOf(['piecewise']).isRequired
434
+ }), PropTypes.shape({
435
+ colors: PropTypes.arrayOf(PropTypes.string).isRequired,
436
+ type: PropTypes.oneOf(['ordinal']).isRequired,
437
+ unknownColor: PropTypes.string,
438
+ values: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number, PropTypes.string]).isRequired)
439
439
  })]),
440
440
  data: PropTypes.array,
441
441
  dataKey: PropTypes.string,
@@ -457,6 +457,11 @@ process.env.NODE_ENV !== "production" ? BarChartPro.propTypes = {
457
457
  */
458
458
  zoomInteractionConfig: PropTypes.shape({
459
459
  pan: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.oneOf(['drag', 'pressAndDrag', 'wheel']), PropTypes.shape({
460
+ allowedDirection: PropTypes.oneOf(['x', 'xy', 'y']),
461
+ pointerMode: PropTypes.any,
462
+ requiredKeys: PropTypes.arrayOf(PropTypes.string),
463
+ type: PropTypes.oneOf(['wheel']).isRequired
464
+ }), PropTypes.shape({
460
465
  pointerMode: PropTypes.oneOf(['mouse', 'touch']),
461
466
  requiredKeys: PropTypes.arrayOf(PropTypes.string),
462
467
  type: PropTypes.oneOf(['drag']).isRequired
@@ -464,24 +469,11 @@ process.env.NODE_ENV !== "production" ? BarChartPro.propTypes = {
464
469
  pointerMode: PropTypes.oneOf(['mouse', 'touch']),
465
470
  requiredKeys: PropTypes.arrayOf(PropTypes.string),
466
471
  type: PropTypes.oneOf(['pressAndDrag']).isRequired
467
- }), PropTypes.shape({
468
- allowedDirection: PropTypes.oneOf(['x', 'xy', 'y']),
469
- pointerMode: PropTypes.any,
470
- requiredKeys: PropTypes.arrayOf(PropTypes.string),
471
- type: PropTypes.oneOf(['wheel']).isRequired
472
472
  })]).isRequired),
473
473
  zoom: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.oneOf(['brush', 'doubleTapReset', 'pinch', 'tapAndDrag', 'wheel']), PropTypes.shape({
474
- pointerMode: PropTypes.any,
475
- requiredKeys: PropTypes.arrayOf(PropTypes.string),
476
- type: PropTypes.oneOf(['wheel']).isRequired
477
- }), PropTypes.shape({
478
- pointerMode: PropTypes.any,
479
- requiredKeys: PropTypes.array,
480
- type: PropTypes.oneOf(['pinch']).isRequired
481
- }), PropTypes.shape({
482
474
  pointerMode: PropTypes.oneOf(['mouse', 'touch']),
483
475
  requiredKeys: PropTypes.arrayOf(PropTypes.string),
484
- type: PropTypes.oneOf(['tapAndDrag']).isRequired
476
+ type: PropTypes.oneOf(['brush']).isRequired
485
477
  }), PropTypes.shape({
486
478
  pointerMode: PropTypes.oneOf(['mouse', 'touch']),
487
479
  requiredKeys: PropTypes.arrayOf(PropTypes.string),
@@ -489,7 +481,15 @@ process.env.NODE_ENV !== "production" ? BarChartPro.propTypes = {
489
481
  }), PropTypes.shape({
490
482
  pointerMode: PropTypes.oneOf(['mouse', 'touch']),
491
483
  requiredKeys: PropTypes.arrayOf(PropTypes.string),
492
- type: PropTypes.oneOf(['brush']).isRequired
484
+ type: PropTypes.oneOf(['tapAndDrag']).isRequired
485
+ }), PropTypes.shape({
486
+ pointerMode: PropTypes.any,
487
+ requiredKeys: PropTypes.array,
488
+ type: PropTypes.oneOf(['pinch']).isRequired
489
+ }), PropTypes.shape({
490
+ pointerMode: PropTypes.any,
491
+ requiredKeys: PropTypes.arrayOf(PropTypes.string),
492
+ type: PropTypes.oneOf(['wheel']).isRequired
493
493
  })]).isRequired)
494
494
  })
495
495
  } : void 0;
package/CHANGELOG.md CHANGED
@@ -1,5 +1,226 @@
1
1
  # Changelog
2
2
 
3
+ ## 9.3.0
4
+
5
+ _May 21, 2026_
6
+
7
+ We'd like to extend a big thank you to the 16 contributors who made this release possible. Here are some highlights ✨:
8
+
9
+ - 📆 Refactor Calendar Range drag editing to use Pointer Events instead of drag and touch events combination (#22279)
10
+ - ✨ Apply lazy loading to `EventTimelinePremium` (#22308)
11
+ - 🐞 Bugfixes
12
+ - 📚 Documentation improvements
13
+ - 🌎 Added Norwegian bokmål (nb-NO) locale to the Scheduler
14
+ - 🌎 Improved Swedish (sv-SE) locale on the Data Grid
15
+
16
+ Special thanks go out to these community members for their valuable contributions:
17
+ @Anexus5919, @jvskriubakken, @oscar-b, @rin, @viktormelin
18
+
19
+ The following team members contributed to this release:
20
+ @aemartos, @alexfauquette, @arminmeh, @Janpot, @JCQuintas, @LukasTy, @mj12albert, @oliviertassinari, @rita-codes, @romgrk, @sai6855
21
+
22
+ ### Data Grid
23
+
24
+ #### `@mui/x-data-grid@9.3.0`
25
+
26
+ - [DataGrid] Fix scrollbar disappearing after multiple resizes (#22512) @LukasTy
27
+ - [DataGrid] Revert "Add support for pinned columns in `GridVirtualScroller`" (#22467) @oliviertassinari
28
+ - [l10n] Improve Swedish (svSE) locale (#21851) @viktormelin
29
+
30
+ #### `@mui/x-data-grid-pro@9.3.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
31
+
32
+ Same changes as in `@mui/x-data-grid@9.3.0`.
33
+
34
+ #### `@mui/x-data-grid-premium@9.3.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
35
+
36
+ Same changes as in `@mui/x-data-grid-pro@9.3.0`.
37
+
38
+ ### Date and Time Pickers
39
+
40
+ #### `@mui/x-date-pickers@9.3.0`
41
+
42
+ - [pickers] Fix disabled state styling for `PickersTextField` standard and filled variants (#22189) @LukasTy
43
+ - [pickers] Fix previous month disabled state calculation (#22524) @mj12albert
44
+ - [pickers] Merge `slotProps.sectionContent` in `PickersInputBase` (#22324) @rin
45
+
46
+ #### `@mui/x-date-pickers-pro@9.3.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
47
+
48
+ Same changes as in `@mui/x-date-pickers@9.3.0`, plus:
49
+
50
+ - [DateRangeCalendar] Use Pointer Events for drag editing (#22279) @LukasTy
51
+
52
+ ### Charts
53
+
54
+ #### `@mui/x-charts@9.3.0`
55
+
56
+ - [charts] Add `data-series` to elements of radar chart (#22523) @alexfauquette
57
+ - [charts] Add environment check for warning messages in axis and radar hooks (#22506) @sai6855
58
+ - [charts] Chart `seriesConfig` deduplication for lines and bars (#22257) @sai6855
59
+ - [charts] Fix highlighted item crash (#22539) @oscar-b
60
+ - [charts] Fix the line and mark class (#22526) @alexfauquette
61
+ - [charts] Fix use of deprecated API in docs (#22469) @oliviertassinari
62
+ - [charts] Improve performance of `evaluateCurveY` function (#22407) @sai6855
63
+
64
+ #### `@mui/x-charts-pro@9.3.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
65
+
66
+ Same changes as in `@mui/x-charts@9.3.0`.
67
+
68
+ #### `@mui/x-charts-premium@9.3.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
69
+
70
+ Same changes as in `@mui/x-charts-pro@9.3.0`, plus:
71
+
72
+ - [charts-premium] Add `closePath` option to the radial line series (#22517) @alexfauquette
73
+
74
+ ### Tree View
75
+
76
+ #### `@mui/x-tree-view-pro@9.3.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
77
+
78
+ Internal changes.
79
+
80
+ ### Scheduler
81
+
82
+ #### `@mui/x-scheduler@9.0.0-alpha.7`
83
+
84
+ - [I10n] Add Norwegian bokmål (nb-NO) locale (#22415) @jvskriubakken
85
+
86
+ #### `@mui/x-scheduler-premium@9.0.0-alpha.7` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
87
+
88
+ Same changes as in `@mui/x-scheduler@9.0.0-alpha.7`, plus:
89
+
90
+ - [scheduler] Apply lazy loading to `EventTimelinePremium` (#22308) @rita-codes
91
+ - [scheduler] Deduplicate staged ranges within the debounce window (#22476) @Anexus5919
92
+ - [scheduler] Pass full event objects to `dataSource.updateEvents` (#22462) @rita-codes
93
+
94
+ ### Docs
95
+
96
+ - [docs] Automatically update supported versions (#21850) @arminmeh
97
+ - [docs] Fix `New` label on bar charts docs (#22473) @oliviertassinari
98
+ - [docs] Improve premium page header for charts (#22474) @oliviertassinari
99
+ - [docs] Sync `README` with licensing/licensing.md in scheduler (#22468) @oliviertassinari
100
+
101
+ ### Core
102
+
103
+ - [code-infra] Cover docs overview composites with Argos (#22283) @LukasTy
104
+ - [code-infra] Enable `mui/no-presentation-role` lint rule (#22360) @Janpot
105
+ - [code-infra] Make generated `propTypes` union order deterministic (#22521) @JCQuintas
106
+ - [code-infra] Make screenshots stable across different ordering of the tests (#22449) @Janpot
107
+ - [code-infra] Optimize visual regression testing (#22447) @Janpot
108
+ - [code-infra] Replace markdownlint with remark from code-infra (#22255) @Janpot
109
+
110
+ ### Miscellaneous
111
+
112
+ - [virtualizer] Improve `controlled` mode performance (#22123) @romgrk
113
+ - [data-grid-generator] Include `tree-data` params in `useDemoData` cache key (#22456) @Janpot
114
+ - [test] Fix flaky browser tests and optimize (#22431) @Janpot
115
+ - [test] Speed up `test_types` job (#22442) @Janpot
116
+ - [test] Trim ffmpeg install in `test_regressions` (#22459) @Janpot
117
+ - [test] Add WebGL performance benchmarks for charts (#22471) @JCQuintas
118
+ - [test] Expand chart performance benchmarks for charts (#22472) @JCQuintas
119
+ - [x-license] use workspace dep for v9 in cross-major compat tests (#22504) @aemartos
120
+
121
+ ## 9.2.0
122
+
123
+ _May 13, 2026_
124
+
125
+ We'd like to extend a big thank you to the 9 contributors who made this release possible. Here are some highlights ✨:
126
+
127
+ - ⚡️ Add a WebGL renderer to the [Bar chart](https://mui.com/x/react-charts/bars/#webgl-renderer)
128
+ - 📊 Add a radial charts with the [radial line](https://mui.com/x/react-charts/radial-lines/), [radial bar](https://mui.com/x/react-charts/radial-bars/), and the [radial grid and axes](https://mui.com/x/react-charts/radial-axes/)
129
+ - 🐞 Bugfixes
130
+ - 📚 Documentation improvements
131
+
132
+ Special thanks go out to these community members for their valuable contributions:
133
+ @Anexus5919, @mustafajw07
134
+
135
+ The following team members contributed to this release:
136
+ @aemartos, @alexfauquette, @bernardobelchior, @JCQuintas, @oliviertassinari, @sai6855, @siriwatknp
137
+
138
+ ### Data Grid
139
+
140
+ #### `@mui/x-data-grid@9.2.0`
141
+
142
+ - [data grid] Add support for pinned columns in `GridVirtualScroller` (#22347) @sai6855
143
+ - [data grid] Remove unused CSS (#22390) @oliviertassinari
144
+
145
+ #### `@mui/x-data-grid-pro@9.2.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
146
+
147
+ Same changes as in `@mui/x-data-grid@9.2.0`.
148
+
149
+ #### `@mui/x-data-grid-premium@9.2.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
150
+
151
+ Same changes as in `@mui/x-data-grid-pro@9.2.0`.
152
+
153
+ ### Date and Time Pickers
154
+
155
+ #### `@mui/x-date-pickers@9.2.0`
156
+
157
+ - [pickers] Trim test helpers' default load graph (#22421) @JCQuintas
158
+
159
+ #### `@mui/x-date-pickers-pro@9.2.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
160
+
161
+ Same changes as in `@mui/x-date-pickers@9.2.0`.
162
+
163
+ ### Charts
164
+
165
+ #### `@mui/x-charts@9.2.0`
166
+
167
+ Internal changes.
168
+
169
+ #### `@mui/x-charts-pro@9.2.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
170
+
171
+ Same changes as in `@mui/x-charts@9.2.0`.
172
+
173
+ #### `@mui/x-charts-premium@9.2.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
174
+
175
+ Same changes as in `@mui/x-charts-pro@9.2.0`, plus:
176
+
177
+ - [charts-premium] Add `Highlight` support to `RadialBarChart` (#22322) @alexfauquette
178
+ - [charts-premium] Add `WebGL` renderer to `BarChartPremium` (#22354) @JCQuintas
179
+ - [charts-premium] Add mark shape support to the radial line (#22242) @alexfauquette
180
+ - [charts-premium] `RadialBarChart` support axis interaction with layout horizontal (#22319) @alexfauquette
181
+
182
+ ### Tree View
183
+
184
+ #### `@mui/x-tree-view@9.1.0`
185
+
186
+ Internal changes.
187
+
188
+ #### `@mui/x-tree-view-pro@9.1.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
189
+
190
+ Same changes as in `@mui/x-tree-view@9.1.0`.
191
+
192
+ ### Scheduler
193
+
194
+ #### `@mui/x-scheduler@9.0.0-alpha.6`
195
+
196
+ - [scheduler] Complete ARIA grid semantics on `EventTimeline` and `EventCalendar` (#22266) @Anexus5919
197
+ - [scheduler] Improve UX for recurrence tab (#22287) @mustafajw07
198
+
199
+ #### `@mui/x-scheduler-premium@9.0.0-alpha.6` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
200
+
201
+ Same changes as in `@mui/x-scheduler@9.0.0-alpha.6`.
202
+
203
+ ### Codemod
204
+
205
+ #### `@mui/x-codemod@9.1.0`
206
+
207
+ Internal changes.
208
+
209
+ ### Docs
210
+
211
+ - [docs] Document the `RadialBarChart` (#22320) @alexfauquette
212
+ - [docs] Add histogram demo to bar-demo page (#22373) @siriwatknp
213
+ - [docs] Add radial bar to the nav bar (#22429) @alexfauquette
214
+ - [docs] Split radial grid and radial line pages (#22238) @alexfauquette
215
+
216
+ ### Miscellaneous
217
+
218
+ - [test] Disable animations in chart benchmarks (#22433) @bernardobelchior
219
+ - [test] Move `x-internal-gestures` vitest isolate flag to test block (#22427) @JCQuintas
220
+ - [test] Reduce flakiness in `MobileTimeRangePicker` multi-input `describeValue` tests (#22422) @JCQuintas
221
+ - [x-license] Exclude compat test pins from Renovate major bumps (#22414) @aemartos
222
+ - [x-license] Add cross-major license format compatibility tests (#22335) @aemartos
223
+
3
224
  ## 9.1.0
4
225
 
5
226
  _May 8, 2026_
@@ -18,8 +18,8 @@ var _useChartsDataProviderProProps = require("./useChartsDataProviderProProps");
18
18
  var _ChartsWatermark = require("../internals/ChartsWatermark");
19
19
  var _jsxRuntime = require("react/jsx-runtime");
20
20
  const packageInfo = {
21
- releaseDate: "MTc3ODE5ODQwMDAwMA==",
22
- version: "9.1.0",
21
+ releaseDate: "MTc3OTMyMTYwMDAwMA==",
22
+ version: "9.3.0",
23
23
  name: 'x-charts-pro'
24
24
  };
25
25
  const defaultSeriesConfigPro = exports.defaultSeriesConfigPro = _internals.defaultSeriesConfig;
@@ -11,8 +11,8 @@ import { useChartsDataProviderProProps } from "./useChartsDataProviderProProps.m
11
11
  import { ChartsWatermark } from "../internals/ChartsWatermark.mjs";
12
12
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
13
  const packageInfo = {
14
- releaseDate: "MTc3ODE5ODQwMDAwMA==",
15
- version: "9.1.0",
14
+ releaseDate: "MTc3OTMyMTYwMDAwMA==",
15
+ version: "9.3.0",
16
16
  name: 'x-charts-pro'
17
17
  };
18
18
  export const defaultSeriesConfigPro = defaultSeriesConfig;
@@ -106,7 +106,7 @@ process.env.NODE_ENV !== "production" ? FunnelChart.propTypes = {
106
106
  disableTicks: _propTypes.default.bool,
107
107
  id: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
108
108
  position: _propTypes.default.oneOf(['bottom', 'left', 'none', 'right', 'top']),
109
- scaleType: _propTypes.default.oneOf(['log']),
109
+ scaleType: _propTypes.default.oneOf(['linear']),
110
110
  size: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number]),
111
111
  tickLabelStyle: _propTypes.default.object,
112
112
  tickSize: _propTypes.default.number
@@ -116,7 +116,7 @@ process.env.NODE_ENV !== "production" ? FunnelChart.propTypes = {
116
116
  disableTicks: _propTypes.default.bool,
117
117
  id: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
118
118
  position: _propTypes.default.oneOf(['bottom', 'left', 'none', 'right', 'top']),
119
- scaleType: _propTypes.default.oneOf(['symlog']),
119
+ scaleType: _propTypes.default.oneOf(['log']),
120
120
  size: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number]),
121
121
  tickLabelStyle: _propTypes.default.object,
122
122
  tickSize: _propTypes.default.number
@@ -146,7 +146,7 @@ process.env.NODE_ENV !== "production" ? FunnelChart.propTypes = {
146
146
  disableTicks: _propTypes.default.bool,
147
147
  id: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
148
148
  position: _propTypes.default.oneOf(['bottom', 'left', 'none', 'right', 'top']),
149
- scaleType: _propTypes.default.oneOf(['time']),
149
+ scaleType: _propTypes.default.oneOf(['symlog']),
150
150
  size: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number]),
151
151
  tickLabelStyle: _propTypes.default.object,
152
152
  tickSize: _propTypes.default.number
@@ -156,7 +156,7 @@ process.env.NODE_ENV !== "production" ? FunnelChart.propTypes = {
156
156
  disableTicks: _propTypes.default.bool,
157
157
  id: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
158
158
  position: _propTypes.default.oneOf(['bottom', 'left', 'none', 'right', 'top']),
159
- scaleType: _propTypes.default.oneOf(['utc']),
159
+ scaleType: _propTypes.default.oneOf(['time']),
160
160
  size: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number]),
161
161
  tickLabelStyle: _propTypes.default.object,
162
162
  tickSize: _propTypes.default.number
@@ -166,7 +166,7 @@ process.env.NODE_ENV !== "production" ? FunnelChart.propTypes = {
166
166
  disableTicks: _propTypes.default.bool,
167
167
  id: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
168
168
  position: _propTypes.default.oneOf(['bottom', 'left', 'none', 'right', 'top']),
169
- scaleType: _propTypes.default.oneOf(['linear']),
169
+ scaleType: _propTypes.default.oneOf(['utc']),
170
170
  size: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number]),
171
171
  tickLabelStyle: _propTypes.default.object,
172
172
  tickSize: _propTypes.default.number
@@ -228,11 +228,11 @@ process.env.NODE_ENV !== "production" ? FunnelChart.propTypes = {
228
228
  hiddenItems: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.shape({
229
229
  dataIndex: _propTypes.default.number,
230
230
  seriesId: _propTypes.default.string.isRequired,
231
- type: _propTypes.default.oneOf(['funnel'])
231
+ type: _propTypes.default.oneOf(['funnel']).isRequired
232
232
  }), _propTypes.default.shape({
233
233
  dataIndex: _propTypes.default.number,
234
234
  seriesId: _propTypes.default.string.isRequired,
235
- type: _propTypes.default.oneOf(['funnel']).isRequired
235
+ type: _propTypes.default.oneOf(['funnel'])
236
236
  })]).isRequired),
237
237
  /**
238
238
  * If `true`, the legend is not rendered.
@@ -245,11 +245,11 @@ process.env.NODE_ENV !== "production" ? FunnelChart.propTypes = {
245
245
  */
246
246
  highlightedItem: _propTypes.default.oneOfType([_propTypes.default.shape({
247
247
  dataIndex: _propTypes.default.number,
248
- seriesId: _propTypes.default.string.isRequired,
249
- type: _propTypes.default.oneOf(['funnel']).isRequired
248
+ seriesId: _propTypes.default.string.isRequired
250
249
  }), _propTypes.default.shape({
251
250
  dataIndex: _propTypes.default.number,
252
- seriesId: _propTypes.default.string.isRequired
251
+ seriesId: _propTypes.default.string.isRequired,
252
+ type: _propTypes.default.oneOf(['funnel']).isRequired
253
253
  })]),
254
254
  /**
255
255
  * This prop is used to help implement the accessibility logic.
@@ -280,11 +280,11 @@ process.env.NODE_ENV !== "production" ? FunnelChart.propTypes = {
280
280
  initialHiddenItems: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.shape({
281
281
  dataIndex: _propTypes.default.number,
282
282
  seriesId: _propTypes.default.string.isRequired,
283
- type: _propTypes.default.oneOf(['funnel'])
283
+ type: _propTypes.default.oneOf(['funnel']).isRequired
284
284
  }), _propTypes.default.shape({
285
285
  dataIndex: _propTypes.default.number,
286
286
  seriesId: _propTypes.default.string.isRequired,
287
- type: _propTypes.default.oneOf(['funnel']).isRequired
287
+ type: _propTypes.default.oneOf(['funnel'])
288
288
  })]).isRequired),
289
289
  /**
290
290
  * If `true`, a loading overlay is displayed.
@@ -370,11 +370,11 @@ process.env.NODE_ENV !== "production" ? FunnelChart.propTypes = {
370
370
  */
371
371
  tooltipItem: _propTypes.default.oneOfType([_propTypes.default.shape({
372
372
  dataIndex: _propTypes.default.number.isRequired,
373
- seriesId: _propTypes.default.string.isRequired,
374
- type: _propTypes.default.oneOf(['funnel']).isRequired
373
+ seriesId: _propTypes.default.string.isRequired
375
374
  }), _propTypes.default.shape({
376
375
  dataIndex: _propTypes.default.number.isRequired,
377
- seriesId: _propTypes.default.string.isRequired
376
+ seriesId: _propTypes.default.string.isRequired,
377
+ type: _propTypes.default.oneOf(['funnel']).isRequired
378
378
  })]),
379
379
  /**
380
380
  * The width of the chart in px. If not defined, it takes the width of the parent element.