@mui/x-internals 9.0.0-alpha.2 → 9.0.0-rc.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,510 @@
1
1
  # Changelog
2
2
 
3
+ ## 9.0.0-rc.0
4
+
5
+ <!-- generated comparing v9.0.0-beta.0..master -->
6
+
7
+ _Apr 7, 2026_
8
+
9
+ We'd like to extend a big thank you to the 18 contributors who made this release possible.
10
+
11
+ Special thanks go out to these community members for their valuable contributions:
12
+ @mixelburg, @sibananda485, @youjin-hong
13
+
14
+ The following team members contributed to this release:
15
+ @aemartos, @alexfauquette, @arminmeh, @brijeshb42, @flaviendelangle, @JCQuintas, @LukasTy, @mapache-salvaje, @MBilalShafi, @michelengelen, @noraleonte, @rita-codes, @romgrk, @siriwatknp, @ZeeshanTamboli
16
+
17
+ ### Data Grid
18
+
19
+ #### `@mui/x-data-grid@9.0.0-rc.0`
20
+
21
+ - [DataGrid] Rename filter panel `Columns` label to singular `Column` (#21935) @youjin-hong
22
+ - [DataGrid] Export `GridColumnUnsortedIconProps` for custom column icon slots (#21658) @mixelburg
23
+ - [DataGrid] Remove `x-virtualizer`'s `virtualScroller` from public API (#21936) @romgrk
24
+ - [DataGrid][virtualizer] Scrolling without render gaps (#21616) @romgrk
25
+
26
+ #### `@mui/x-data-grid-pro@9.0.0-rc.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@9.0.0-rc.0`, plus:
29
+
30
+ - [DataGridPro] Improve trigger for nested row reordering (#21642) @MBilalShafi
31
+ - [DataGridPro] Undeprecate `onRowsScrollEnd` prop (#21912) @MBilalShafi
32
+
33
+ #### `@mui/x-data-grid-premium@9.0.0-rc.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
34
+
35
+ Same changes as in `@mui/x-data-grid-pro@9.0.0-rc.0`, plus:
36
+
37
+ - [DataGridPremium] Fix clipboard paste issue in portal (#21931) @sibananda485
38
+
39
+ ### Date and Time Pickers
40
+
41
+ #### Breaking changes
42
+
43
+ - Accessible DOM structure is now the only default. [Read more](https://next.mui.com/x/migration/migration-pickers-v8/#accessible-dom-structure-is-now-the-default)
44
+ - The `PickerDay2` and `DateRangePickerDay2` components were propagated to stable while removing the previous defaults. [Read more](https://next.mui.com/x/migration/migration-pickers-v8/#day-slot)
45
+
46
+ #### `@mui/x-date-pickers@9.0.0-rc.0`
47
+
48
+ - [pickers] Remove `PickersDay` and `DateRangePickerDay` and promote their `2` versions as replacements (#21739) @michelengelen
49
+
50
+ #### `@mui/x-date-pickers-pro@9.0.0-rc.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
51
+
52
+ Same changes as in `@mui/x-date-pickers@9.0.0-rc.0`.
53
+
54
+ ### Charts
55
+
56
+ #### `@mui/x-charts@9.0.0-rc.0.0`
57
+
58
+ - [charts] Make line visibility toggle start from the baseline (#21893) @alexfauquette
59
+ - [charts] Remove the container overflow (#21955) @alexfauquette
60
+ - [charts] Revert `theme.alpha` for non-channel token (#21965) @siriwatknp
61
+
62
+ #### `@mui/x-charts-pro@9.0.0-rc.0.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
63
+
64
+ Same changes as in `@mui/x-charts@9.0.0-rc.0.0`, plus:
65
+
66
+ - [charts-pro] Zoom slider touch improvements (#21832) @JCQuintas
67
+ - [charts-pro] Add `seriesIds` filter to zoom slider preview (#21933) @JCQuintas
68
+ - [charts-pro] Fix zoom slider preview with discard filter mode (#21883) @JCQuintas
69
+
70
+ #### `@mui/x-charts-premium@9.0.0-rc.0.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
71
+
72
+ Same changes as in `@mui/x-charts-pro@9.0.0-rc.0.0`, plus:
73
+
74
+ - [charts-premium] Add series `valueFormatter` to candlestick chart (#21905) @JCQuintas
75
+ - [charts-premium] Add zoom slider preview support for candlestick charts (#21914) @JCQuintas
76
+ - [charts-premium] Allow color customization in `Candlestick` chart (#21838) @JCQuintas
77
+ - [charts-premium] Support hide/show for OHLC (candlestick) series (#21807) @Copilot
78
+ - [charts-premium] Add `dataset` support to `Candlestick` chart (#21872) @JCQuintas
79
+ - [charts-premium] Add candlestick page to sidebar navigation (#21834) @JCQuintas
80
+
81
+ ### Tree View
82
+
83
+ #### `@mui/x-tree-view@9.0.0-rc.0`
84
+
85
+ Internal changes.
86
+
87
+ #### `@mui/x-tree-view-pro@9.0.0-rc.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
88
+
89
+ Same changes as in `@mui/x-tree-view@9.0.0-rc.0`, plus:
90
+
91
+ - [RichTreeViewPro] Allow to auto-expand lazy loaded items (#21759) @flaviendelangle
92
+
93
+ ### Scheduler
94
+
95
+ #### `@mui/x-scheduler@9.0.0-alpha.0`
96
+
97
+ - [scheduler] Add locale files, adapt l10n scripts, and add localization table to docs (#21870) @rita-codes
98
+ - [scheduler] Add planned features to the docs (#21705) @rita-codes
99
+ - [scheduler] Add scheduler to docs introduction (#21845) @rita-codes
100
+ - [scheduler] Add wide docs to scheduler (#21860) @noraleonte
101
+ - [scheduler] All day event bugfixes (#21884) @noraleonte
102
+ - [scheduler] Autofocus title field (#21947) @noraleonte
103
+ - [scheduler] Change default event creation trigger to single click (#21979) @rita-codes
104
+ - [scheduler] Change order of the views on the view selector (#21904) @rita-codes
105
+ - [scheduler] Disabled border color for the repeat day picker in dark mode (#21987) @rita-codes
106
+ - [scheduler] Drop unused dependency (#21956) @flaviendelangle
107
+ - [scheduler] Fix all-day event shifting to previous day in negative UTC offsets (#21994) @rita-codes
108
+ - [scheduler] Fix dark theme localization demos (#21992) @noraleonte
109
+ - [scheduler] Fix licensing confusion in docs (#21939) @rita-codes
110
+ - [scheduler] Fix preferences menu width shift when toggling options + Improve preferences menu accessibility (#21902) @rita-codes
111
+ - [scheduler] Prepare for the alpha launch (#21859) @rita-codes
112
+ - [scheduler] Sync Base UI internals and apply good practices (#21946) @flaviendelangle
113
+ - [scheduler] Update close modal aria label translation (#21940) @rita-codes
114
+ - [scheduler] Add Spanish (es-ES) locale (#21900) @rita-codes
115
+ - [scheduler] Improve French (fr-FR) locale (#21941) @rita-codes
116
+ - [scheduler] Improve Romanian (ro-RO) locale (#21942) @rita-codes
117
+
118
+ #### `@mui/x-scheduler-premium@9.0.0-alpha.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
119
+
120
+ Same changes as in `@mui/x-scheduler@9.0.0-alpha.0`.
121
+
122
+ ### Codemod
123
+
124
+ #### `@mui/x-codemod@9.0.0-rc.0`
125
+
126
+ Internal changes.
127
+
128
+ ### Docs
129
+
130
+ - [docs] Fix JSDOM → jsdom casing (#21907) @JCQuintas
131
+ - [docs] Remove Joy UI references and dependency (#21937) @siriwatknp
132
+ - [docs] Remove none generated files (#21886) @alexfauquette
133
+ - [docs] Remove unused interactive demo code (#21945) @LukasTy
134
+ - [docs] Revise the Funnel doc (#21677) @mapache-salvaje
135
+ - [docs] Revise the Line chart docs (#21554) @mapache-salvaje
136
+ - [docs] Revise the Radar doc (#21674) @mapache-salvaje
137
+ - [docs] Revise the Sankey doc (#21678) @mapache-salvaje
138
+ - [docs] Revise the Scatter chart docs (#21564) @mapache-salvaje
139
+
140
+ ### Core
141
+
142
+ - [docs-infra] Update to the latest monorepo (#21971) @brijeshb42
143
+ - [internal] Remove checks for `materialVersion >= 6` (#21975) @LukasTy
144
+
145
+ ### Miscellaneous
146
+
147
+ - [core] Bump @mui/material to v9.0.0-beta.1 (#21858) @siriwatknp
148
+ - [core] Update browserslistrc (#21974) @siriwatknp
149
+ - [deps] Bump minimum core packages to 7.3.0 to adopt theme color manipulator (#21892) @siriwatknp
150
+ - [telemetry] Prefer upstream remote over origin for `projectId` (#21882) @aemartos
151
+ - [telemetry] Send `repoHash`, `[x]packageNameHash`, and `rootPathHash` alongside `projectId` (#21896) @aemartos
152
+ - [test] Exclude flaky `DataGrid` argos test (#21977) @MBilalShafi
153
+ - [test] Fix flaky `DataGrid` test (#22000) @arminmeh
154
+ - [test] Remove `componentsProp` test from `describeConformance` (#21897) @ZeeshanTamboli
155
+ - [x-license] Change `orderId` type from `number` to `string` (#21885) @aemartos
156
+
157
+ ## 9.0.0-beta.0
158
+
159
+ <!-- generated comparing v9.0.0-alpha.4..master -->
160
+
161
+ _Mar 27, 2026_
162
+
163
+ We'd like to extend a big thank you to the 10 contributors who made this release possible. Here are some highlights ✨:
164
+
165
+ - 🔊 New Charts voiceover component for improved screen reader support
166
+ - ⌨️ Charts keyboard navigation improvements: axis tooltip now shows when navigating with the keyboard
167
+ - 📊 Charts axes now can be set to automatically resize to fit their content
168
+ - 📝 New `rowCheckbox` slot in Data Grid for easier checkbox column customization
169
+ - ⚡️ `fetchRows()` API in Data Grid Pro now defaults `start` and `end` based on scroll position with lazy loading
170
+ - 🐞 Bugfixes and internal improvements
171
+
172
+ The following team members contributed to this release:
173
+ @aemartos, @alexfauquette, @arminmeh, @cherniavskii, @Janpot, @JCQuintas, @mapache-salvaje, @michelengelen, @noraleonte, @rita-codes
174
+
175
+ ### Data Grid
176
+
177
+ #### `@mui/x-data-grid@9.0.0-beta.0`
178
+
179
+ - [DataGrid] Add `rowCheckbox` slot for easier customization (#21797) @michelengelen
180
+ - [DataGrid] Prevent repeated `hasScrollbar` state updates (#21820) @arminmeh
181
+
182
+ #### `@mui/x-data-grid-pro@9.0.0-beta.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
183
+
184
+ Same changes as in `@mui/x-data-grid@9.0.0-beta.0`, plus:
185
+
186
+ - [DataGridPro] `fetchRows()` API's default `start` and `end` params based on scroll position with lazy loading (#21742) @arminmeh
187
+
188
+ #### `@mui/x-data-grid-premium@9.0.0-beta.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
189
+
190
+ Same changes as in `@mui/x-data-grid-pro@9.0.0-beta.0`.
191
+
192
+ ### Date and Time Pickers
193
+
194
+ #### `@mui/x-date-pickers@9.0.0-beta.0`
195
+
196
+ Internal changes.
197
+
198
+ #### `@mui/x-date-pickers-pro@9.0.0-beta.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
199
+
200
+ Same changes as in `@mui/x-date-pickers@9.0.0-beta.0`.
201
+
202
+ ### Charts
203
+
204
+ #### `@mui/x-charts@9.0.0-beta.0`
205
+
206
+ - [charts] Add `className` prop to Pro chart plot components (#21793) @JCQuintas
207
+ - [charts] Add experimental position-based pointer interaction for line series (#21809) @JCQuintas
208
+ - [charts] Add l10n to the bar accessibility (#21815) @alexfauquette
209
+ - [charts] Add localization for the basic charts (#21822) @alexfauquette
210
+ - [charts] Add voiceover component (#21344) @alexfauquette
211
+ - [charts] Allow axes to automatically resize to content (#21087) @JCQuintas
212
+ - [charts] Document multiple use-cases for references (#21768) @alexfauquette
213
+ - [charts] Remove compatibility layer for React vs native events (#21780) @JCQuintas
214
+ - [charts] Remove deprecated `barLabel` props (#21783) @alexfauquette
215
+ - [charts] Show axis tooltip when navigating with keyboard (#21689) @Copilot
216
+
217
+ #### `@mui/x-charts-pro@9.0.0-beta.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
218
+
219
+ Same changes as in `@mui/x-charts@9.0.0-beta.0`.
220
+
221
+ #### `@mui/x-charts-premium@9.0.0-beta.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
222
+
223
+ Same changes as in `@mui/x-charts-pro@9.0.0-beta.0`.
224
+
225
+ ### Tree View
226
+
227
+ #### `@mui/x-tree-view@9.0.0-alpha.4`
228
+
229
+ Internal changes.
230
+
231
+ #### `@mui/x-tree-view-pro@9.0.0-alpha.4` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
232
+
233
+ Same changes as in `@mui/x-tree-view@9.0.0-alpha.4`.
234
+
235
+ ### Codemod
236
+
237
+ #### `@mui/x-codemod@9.0.0-alpha.4`
238
+
239
+ Internal changes.
240
+
241
+ ### Docs
242
+
243
+ - [docs] Document how to customize voiceover announcement (#21833) @alexfauquette
244
+ - [docs] Remove Discord mention from docs (#21855) @mapache-salvaje
245
+ - [docs] Remove stabilized experimental feature from demo (#21869) @JCQuintas
246
+ - [docs] Update telemetry guide to reflect pseudonymous data collection and license compliance (#21812) @aemartos
247
+ - [docs] Revise the Sparkline doc (#21614) @mapache-salvaje
248
+ - [docs] Revise the Gauge doc (#21673) @mapache-salvaje
249
+ - [docs] Revise the Heatmap doc (#21676) @mapache-salvaje
250
+
251
+ ### Core
252
+
253
+ - [code-infra] Remove unused deps and unify es-toolkit via catalog (#21840) @Janpot
254
+ - [code-infra] Update @mui/internal-bundle-size-checker to canary.68 (#21836) @Janpot
255
+ - [code-infra] Update next (#21837) @Janpot
256
+ - [internal] Remove headless data grid packages (#21843) @cherniavskii
257
+
258
+ ### Miscellaneous
259
+
260
+ - Add @romgrk to CODEOWNERS for `x-virtualizer` and `x-internals` (#21819) @Copilot
261
+ - [x-license] add 2022 plan version (#21814) @aemartos
262
+
263
+ ## 9.0.0-alpha.4
264
+
265
+ _Mar 19, 2026_
266
+
267
+ We'd like to extend a big thank you to the 12 contributors who made this release possible. Here are some highlights ✨:
268
+
269
+ - 🐞 Bugfixes and internal improvements
270
+
271
+ The following team members contributed to this release:
272
+ @aemartos, @alexfauquette, @bernardobelchior, @Janpot, @JCQuintas, @LukasTy, @mapache-salvaje, @michelengelen, @noraleonte, @rita-codes, @sai6855, @siriwatknp
273
+
274
+ ### Data Grid
275
+
276
+ #### `@mui/x-data-grid@9.0.0-alpha.4`
277
+
278
+ - [DataGrid] Mark charts integration as stable (#21764) @JCQuintas
279
+ - [DataGrid] Move `elementOverrides` to constants and remove duplicates (#21618) @sai6855
280
+ - [DataGrid] Migrate from deprecated Material UI APIs (#21682) @siriwatknp
281
+
282
+ #### `@mui/x-data-grid-pro@9.0.0-alpha.4` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
283
+
284
+ Same changes as in `@mui/x-data-grid@9.0.0-alpha.4`.
285
+
286
+ #### `@mui/x-data-grid-premium@9.0.0-alpha.4` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
287
+
288
+ Same changes as in `@mui/x-data-grid-pro@9.0.0-alpha.4`.
289
+
290
+ ### Date and Time Pickers
291
+
292
+ #### `@mui/x-date-pickers@9.0.0-alpha.4`
293
+
294
+ - [pickers] Avoid stealing focus on click away (#13434) @LukasTy
295
+ - [pickers] Promote `fieldRef` to stable and add `clearValue` method (#21655) @michelengelen
296
+
297
+ #### `@mui/x-date-pickers-pro@9.0.0-alpha.4` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
298
+
299
+ Same changes as in `@mui/x-date-pickers@9.0.0-alpha.4`.
300
+
301
+ ### Charts
302
+
303
+ #### `@mui/x-charts@9.0.0-alpha.4`
304
+
305
+ - [charts] Add v9 chart series types and helper functions migration (#21009) @bernardobelchior
306
+ - [charts] Extract event listener to the layer container (#21751) @alexfauquette
307
+ - [charts] Fix WebGL print export canvas stretching (#21738) @JCQuintas
308
+ - [charts] Improve deprecation warnings (#21760) @alexfauquette
309
+ - [charts] Improve type safety in `identifierCleaner` (#21719) @bernardobelchior
310
+ - [charts] Make `preferStrictDomainInLineCharts` the default (#21744) @JCQuintas
311
+ - [charts] Move title and description to the layer container (#21757) @alexfauquette
312
+ - [charts] Refactor `FunnelChart` classes structure (#21652) @JCQuintas
313
+ - [charts] Refactor `Heatmap` classes structure (#21653) @JCQuintas
314
+ - [charts] Refactor `RadarChart` classes structure (#21650) @JCQuintas
315
+ - [charts] Refactor `SankeyChart` classes structure (#21654) @JCQuintas
316
+ - [charts] Refactor legend getters to use utility functions (#21628) @sai6855
317
+ - [charts] Remove deprecated `ChartContainer` and `ChartDataProvider` (#21777) @alexfauquette
318
+ - [charts] Remove deprecated `itemId` from `SeriesLegendItemContext` (#21788) @alexfauquette
319
+ - [charts] Remove deprecated `useMouseTracker()` (#21787) @alexfauquette
320
+ - [charts] Remove deprecated classes (#21775) @alexfauquette
321
+ - [charts] Remove deprecated props from PieArcLabel animation (#21789) @alexfauquette
322
+ - [charts] Remove get\*UtilityClass from public exports (#21769) @JCQuintas
323
+ - [charts] Remove the deprecated `disableHover` property (#21785) @alexfauquette
324
+ - [charts] Remove the deprecated `message` prop (#21784) @alexfauquette
325
+ - [charts] Remove deprecated props about voronoi (#21796) @alexfauquette
326
+ - [charts] Remove deprecated pieArcClasses (#21795) @alexfauquette
327
+ - [charts] Rename `data-series-id` by `data-series` (#21761) @alexfauquette
328
+ - [charts] Rename `voronoiMaxRadius`/`disableVoronoi` to `hitAreaRadius`/`disableHitArea` (#21750) @bernardobelchior
329
+ - [charts] Update pt-PT locale (#21296) @bernardobelchior
330
+ - [charts] Use different shape per series by default (#21713) @alexfauquette
331
+ - [charts] Add className prop to Radar components (#21794) @JCQuintas
332
+ - [charts] Add className prop to shared chart components (#21792) @JCQuintas
333
+ - [charts] Add className prop to BarPlot (#21791) @JCQuintas
334
+ - [charts] Portal tooltip into ChartsLayerContainer (#21801) @JCQuintas
335
+
336
+ #### `@mui/x-charts-pro@9.0.0-alpha.4` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
337
+
338
+ Same changes as in `@mui/x-charts@9.0.0-alpha.4`, plus:
339
+
340
+ - [charts-pro] Allow `brush` interaction to accept `requiredKeys/pointerMode` (#21716) @JCQuintas
341
+ - [charts-pro] Remove deprecated `onAxisClick` for Heatmap (#21786) @alexfauquette
342
+
343
+ #### `@mui/x-charts-premium@9.0.0-alpha.4` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
344
+
345
+ Same changes as in `@mui/x-charts-pro@9.0.0-alpha.4`, plus:
346
+
347
+ - [charts-premium] Add candlestick chart (#21129) @bernardobelchior
348
+
349
+ ### Tree View
350
+
351
+ #### `@mui/x-tree-view@9.0.0-alpha.4`
352
+
353
+ Internal changes.
354
+
355
+ #### `@mui/x-tree-view-pro@9.0.0-alpha.4` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
356
+
357
+ Same changes as in `@mui/x-tree-view@9.0.0-alpha.4`.
358
+
359
+ ### Codemod
360
+
361
+ #### `@mui/x-codemod@9.0.0-alpha.4`
362
+
363
+ Internal changes.
364
+
365
+ ### Docs
366
+
367
+ - [docs-infra] Exclude `ServerSideLazyLoadingRevalidation` from argos (#21734) @sai6855
368
+ - [docs] Update charts v9 migration guide to include premium package (#21743) @bernardobelchior
369
+ - [docs] Update v9 migration guides to install next tag (#21741) @bernardobelchior
370
+ - [docs] Revise the Pie chart docs (#21565) @mapache-salvaje
371
+ - [docs] Revise the Bar Chart docs (#21482) @mapache-salvaje
372
+ - [docs] Removed a `console.log` from an aggregation demo (#21698) @michelengelen
373
+
374
+ ### Core
375
+
376
+ - [code-infra] Add pkg-pr-new as dev dependency (#21754) @Janpot
377
+ - [code-infra] Prevent `combiner` to have default parameters (#21707) @JCQuintas
378
+ - [code-infra] Remove CI coverage collection and upload to Codecov (#21671) @Janpot
379
+ - [internal] Remove @bernardobelchior from Charts CODEOWNERS (#21776) @Copilot
380
+
381
+ ### Miscellaneous
382
+
383
+ - [x-license] Fix process.env.MUI_VERSION not being replaced during build (#21727) @aemartos
384
+ - [x-license] Add new watermark license status message (#21720) @aemartos
385
+
386
+ ## 9.0.0-alpha.3
387
+
388
+ _Mar 12, 2026_
389
+
390
+ We'd like to extend a big thank you to the 13 contributors who made this release possible. Here are some highlights ✨:
391
+
392
+ - 🐞 Bugfixes and internal improvements
393
+
394
+ The following team members contributed to this release:
395
+ @aemartos, @alexfauquette, @bernardobelchior, @brijeshb42, @cherniavskii, @flaviendelangle, @Janpot, @JCQuintas, @MBilalShafi, @michelengelen, @rita-codes, @sai6855, @siriwatknp
396
+
397
+ ### Data Grid
398
+
399
+ #### `@mui/x-data-grid@9.0.0-alpha.3`
400
+
401
+ - [DataGrid] Fix crash when `rows` and `rowModesModel` are updated simultaneously (#21265) @michelengelen
402
+ - [DataGrid] Add missing `resizablePanelHandle` classes to `gridClasses` object (#21538) @sai6855
403
+ - [DataGrid] Refactor `headerAlign` style calls (#21541) @sai6855
404
+
405
+ #### `@mui/x-data-grid-pro@9.0.0-alpha.3` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
406
+
407
+ Same changes as in `@mui/x-data-grid@9.0.0-alpha.3`, plus:
408
+
409
+ - [DataGridPro] Add `role="presentation"` to detail panel toggle header content (#21634) @michelengelen
410
+ - [DataGridPro] Fix sorting not reflected in nested server-side data (#21619) @MBilalShafi
411
+
412
+ #### `@mui/x-data-grid-premium@9.0.0-alpha.3` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
413
+
414
+ Same changes as in `@mui/x-data-grid-pro@9.0.0-alpha.3`.
415
+
416
+ ### Date and Time Pickers
417
+
418
+ #### `@mui/x-date-pickers@9.0.0-alpha.3`
419
+
420
+ - [pickers] Refactor `DateRangePickerDay` overrides to use a centralized `elementOverrides` object (#21426) @sai6855
421
+ - [pickers] Migrate from deprecated props for `PickersModalDialog` (#21702) @siriwatknp
422
+
423
+ #### `@mui/x-date-pickers-pro@9.0.0-alpha.3` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
424
+
425
+ Same changes as in `@mui/x-date-pickers@9.0.0-alpha.3`.
426
+
427
+ ### Charts
428
+
429
+ #### `@mui/x-charts@9.0.0-alpha.3`
430
+
431
+ - [charts] Differentiate Line Plot roots classes (#21679) @JCQuintas
432
+ - [charts] Enable keyboard navigation by default (#21675) @alexfauquette
433
+ - [charts] Fix keyboard tooltip radar (#21667) @alexfauquette
434
+ - [charts] Fix selector default parameter (#21638) @JCQuintas
435
+ - [charts] Fix tooltip blink between node and pointer anchor (#21611) @alexfauquette
436
+ - [charts] Let tooltip and legend reflect the line shape (#21475) @alexfauquette
437
+ - [charts] Refactor `BarChart` classes structure (#21601) @JCQuintas
438
+ - [charts] Refactor `LineChart` classes structure (#21648) @JCQuintas
439
+ - [charts] Refactor `ScatterChart` classes structure (#21651) @JCQuintas
440
+ - [charts] Refactor `PieChart` classes structure (#21649) @JCQuintas
441
+ - [charts] Remove batch rendering checks in highlight selectors (#21646) @bernardobelchior
442
+ - [charts] Standardize generic arg names to `SeriesType` (#21694) @alexfauquette
443
+ - [charts] Simplify highlight hooks return types (#21695) @alexfauquette
444
+
445
+ #### `@mui/x-charts-pro@9.0.0-alpha.3` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
446
+
447
+ Same changes as in `@mui/x-charts@9.0.0-alpha.3`, plus:
448
+
449
+ - [charts-pro] Fix heatmap style override from `arc` to `cell` (#21693) @Copilot
450
+ - [charts-pro] Fix image export truncated when page is zoomed out (#21685) @bernardobelchior
451
+ - [charts-pro] Speed-up heatmap cell search with an index lookup (#21130) @alexfauquette
452
+ - [charts-pro] Fix heatmap highlight not working (#21710) @Copilot
453
+
454
+ #### `@mui/x-charts-premium@9.0.0-alpha.3` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
455
+
456
+ Same changes as in `@mui/x-charts-pro@9.0.0-alpha.3`, plus:
457
+
458
+ - [charts-premium] Re-enable WebGL tests (#21708) @bernardobelchior
459
+
460
+ ### Tree View
461
+
462
+ #### Breaking changes
463
+
464
+ - Remove `TreeViewBaseItem` type (use `TreeViewDefaultItemModelProperties` or a custom interface)
465
+ - Remove `useTreeViewApiRef` hook (use `useRichTreeViewApiRef`, `useSimpleTreeViewApiRef`, or `useRichTreeViewProApiRef`)
466
+ - Remove `status` from content slot props returned by `getContentProps()` (use `data-*` attributes; `status` on `useTreeItem` return value is unchanged)
467
+ - Remove deprecated CSS state classes from `treeItemClasses`: `expanded`, `selected`, `focused`, `disabled`, `editable`, `editing` (use `[data-expanded]`, `[data-selected]`, etc.)
468
+ - The `<RichTreeViewPro />` component has now virtualization enabled by default.
469
+ - The items used inside the `<RichTreeViewPro />` now have a default height of `32px`.
470
+ - The items of the `<RichTreeViewPro />` are now rendered as a flat list instead of a nested tree.
471
+
472
+ #### `@mui/x-tree-view@9.0.0-alpha.3`
473
+
474
+ - [tree view] Remove deprecated APIs (#21591) @flaviendelangle
475
+ - [tree view] Fix collapsed children not selected with `selectionPropagation.descendants` in `SimpleTreeView` (#21253) @flaviendelangle
476
+
477
+ #### `@mui/x-tree-view-pro@9.0.0-alpha.3` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
478
+
479
+ Same changes as in `@mui/x-tree-view@9.0.0-alpha.3`, plus:
480
+
481
+ - [RichTreeViewPro] Make the virtualization opt-out and port the layout doc from the data grid (#21461) @flaviendelangle
482
+
483
+ ### Codemod
484
+
485
+ #### `@mui/x-codemod@9.0.0-alpha.3`
486
+
487
+ Internal changes.
488
+
489
+ ### Docs
490
+
491
+ - [docs] Fix `AssistantWithDataSource` demo crashing (#21555) @sai6855
492
+ - [docs] Remove `Preview` pill from Sankey (#21623) @bernardobelchior
493
+ - [docs] Migrate internal Material UI deprecated APIs (#21680) @siriwatknp
494
+ - [docs] Remove `New` flag on Tree View and Date and Time Pickers features released before v9 alpha (#21585) @flaviendelangle
495
+
496
+ ### Core
497
+
498
+ - [code-infra] Remove checkout step (#21688) @Janpot
499
+ - [code-infra] Fix contributor generation in changelog (#21718) @brijeshb42
500
+ - [docs-infra] Do not point to non-existent v8 subdomain (#21640) @cherniavskii
501
+
502
+ ### Miscellaneous
503
+
504
+ - [test] Add missing tests for forwarding props to filter operators in DataGrid (#21441) @siriwatknp
505
+ - [x-license] Export additional license types and constants (#21625) @aemartos
506
+ - [x-license] Refactor license verification to accept package info object and add v9 version gating (#21690) @aemartos
507
+
3
508
  ## 9.0.0-alpha.2
4
509
 
5
510
  _Mar 5, 2026_
@@ -92,7 +597,7 @@ Internal changes.
92
597
 
93
598
  - [docs] Add backticks and parentheses to all functions and hooks (DX-173) (#21496) @mapache-salvaje
94
599
  - [docs] Remove mentions of `mySvgRef` (#21559) @bernardobelchior
95
- - [docs] Update Roadmap section in the docs (#20892) @alelthomas
600
+ - [docs] Update Roadmap section in the docs (#20892) @alelthomas
96
601
  - [docs] Add tutorial and example app for aggregation with row grouping (DX-162) (#21102) @mapache-salvaje
97
602
  - [docs] Fix missing codemod docs (#21604) @JCQuintas
98
603
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/x-internals",
3
- "version": "9.0.0-alpha.2",
3
+ "version": "9.0.0-rc.0",
4
4
  "author": "MUI Team",
5
5
  "description": "Utility functions for the MUI X packages (internal use only).",
6
6
  "license": "MIT",
@@ -31,7 +31,7 @@
31
31
  },
32
32
  "dependencies": {
33
33
  "@babel/runtime": "^7.28.6",
34
- "@mui/utils": "^7.3.7",
34
+ "@mui/utils": "9.0.0-beta.1",
35
35
  "reselect": "^5.1.1",
36
36
  "use-sync-external-store": "^1.6.0"
37
37
  },
package/store/Store.mjs CHANGED
@@ -60,7 +60,7 @@ export class Store {
60
60
  }));
61
61
  }
62
62
  }
63
- use = (() => (selector, a1, a2, a3) => {
63
+ use = (selector, a1, a2, a3) => {
64
64
  return useStore(this, selector, a1, a2, a3);
65
- })();
65
+ };
66
66
  }
@@ -1,6 +1,55 @@
1
1
  import { OverrideMemoizeOptions, UnknownMemoizer } from 'reselect';
2
2
  import type { CreateSelectorFunction } from "./createSelectorType.mjs";
3
3
  export type { CreateSelectorFunction } from "./createSelectorType.mjs";
4
+ /**
5
+ * Creates a selector function that can be used to derive values from the store's state.
6
+ *
7
+ * The combiner function can have up to three additional parameters, but it **cannot have optional or default parameters**.
8
+ *
9
+ * This function accepts up to six functions and combines them into a single selector function.
10
+ * The resulting selector will take the state from the combined selectors and any additional parameters required by the combiner.
11
+ *
12
+ * The return type of the resulting selector is determined by the return type of the combiner function.
13
+ *
14
+ * @example
15
+ * const selector = createSelector(
16
+ * (state) => state.disabled
17
+ * );
18
+ *
19
+ * @example
20
+ * const selector = createSelector(
21
+ * (state) => state.disabled,
22
+ * (state) => state.open,
23
+ * (disabled, open) => ({ disabled, open })
24
+ * );
25
+ */
4
26
  export declare const createSelector: CreateSelectorFunction;
5
27
  export declare const createSelectorMemoizedWithOptions: (options?: OverrideMemoizeOptions<UnknownMemoizer>) => CreateSelectorFunction;
28
+ /**
29
+ * Creates a memoized selector function that can be used to derive values from the store's state.
30
+ * This is useful for selectors that produce non-primitive values, such as objects or arrays, where memoization can help prevent unnecessary re-renders in React components.
31
+ *
32
+ * The memoization is implemented in a way that only the most recent selector result is cached.
33
+ * This is suitable for cases where the selector is called with the same state and arguments repeatedly,
34
+ * but may not be ideal for selectors that are called with a wide variety of states and arguments.
35
+ *
36
+ * The combiner function can have up to three additional parameters, but it **cannot have optional or default parameters**.
37
+ *
38
+ * This function accepts up to six functions and combines them into a single selector function.
39
+ * The resulting selector will take the state from the combined selectors and any additional parameters required by the combiner.
40
+ *
41
+ * The return type of the resulting selector is determined by the return type of the combiner function.
42
+ *
43
+ * @example
44
+ * const selector = createSelectorMemoized(
45
+ * (state) => state.disabled
46
+ * );
47
+ *
48
+ * @example
49
+ * const selector = createSelectorMemoized(
50
+ * (state) => state.disabled,
51
+ * (state) => state.open,
52
+ * (disabled, open) => ({ disabled, open })
53
+ * );
54
+ */
6
55
  export declare const createSelectorMemoized: CreateSelectorFunction;
@@ -1,6 +1,55 @@
1
1
  import { OverrideMemoizeOptions, UnknownMemoizer } from 'reselect';
2
2
  import type { CreateSelectorFunction } from "./createSelectorType.js";
3
3
  export type { CreateSelectorFunction } from "./createSelectorType.js";
4
+ /**
5
+ * Creates a selector function that can be used to derive values from the store's state.
6
+ *
7
+ * The combiner function can have up to three additional parameters, but it **cannot have optional or default parameters**.
8
+ *
9
+ * This function accepts up to six functions and combines them into a single selector function.
10
+ * The resulting selector will take the state from the combined selectors and any additional parameters required by the combiner.
11
+ *
12
+ * The return type of the resulting selector is determined by the return type of the combiner function.
13
+ *
14
+ * @example
15
+ * const selector = createSelector(
16
+ * (state) => state.disabled
17
+ * );
18
+ *
19
+ * @example
20
+ * const selector = createSelector(
21
+ * (state) => state.disabled,
22
+ * (state) => state.open,
23
+ * (disabled, open) => ({ disabled, open })
24
+ * );
25
+ */
4
26
  export declare const createSelector: CreateSelectorFunction;
5
27
  export declare const createSelectorMemoizedWithOptions: (options?: OverrideMemoizeOptions<UnknownMemoizer>) => CreateSelectorFunction;
28
+ /**
29
+ * Creates a memoized selector function that can be used to derive values from the store's state.
30
+ * This is useful for selectors that produce non-primitive values, such as objects or arrays, where memoization can help prevent unnecessary re-renders in React components.
31
+ *
32
+ * The memoization is implemented in a way that only the most recent selector result is cached.
33
+ * This is suitable for cases where the selector is called with the same state and arguments repeatedly,
34
+ * but may not be ideal for selectors that are called with a wide variety of states and arguments.
35
+ *
36
+ * The combiner function can have up to three additional parameters, but it **cannot have optional or default parameters**.
37
+ *
38
+ * This function accepts up to six functions and combines them into a single selector function.
39
+ * The resulting selector will take the state from the combined selectors and any additional parameters required by the combiner.
40
+ *
41
+ * The return type of the resulting selector is determined by the return type of the combiner function.
42
+ *
43
+ * @example
44
+ * const selector = createSelectorMemoized(
45
+ * (state) => state.disabled
46
+ * );
47
+ *
48
+ * @example
49
+ * const selector = createSelectorMemoized(
50
+ * (state) => state.disabled,
51
+ * (state) => state.open,
52
+ * (disabled, open) => ({ disabled, open })
53
+ * );
54
+ */
6
55
  export declare const createSelectorMemoized: CreateSelectorFunction;
@@ -16,6 +16,28 @@ const reselectCreateSelector = (0, _reselect.createSelectorCreator)({
16
16
  equalityCheck: Object.is
17
17
  }
18
18
  });
19
+ /**
20
+ * Creates a selector function that can be used to derive values from the store's state.
21
+ *
22
+ * The combiner function can have up to three additional parameters, but it **cannot have optional or default parameters**.
23
+ *
24
+ * This function accepts up to six functions and combines them into a single selector function.
25
+ * The resulting selector will take the state from the combined selectors and any additional parameters required by the combiner.
26
+ *
27
+ * The return type of the resulting selector is determined by the return type of the combiner function.
28
+ *
29
+ * @example
30
+ * const selector = createSelector(
31
+ * (state) => state.disabled
32
+ * );
33
+ *
34
+ * @example
35
+ * const selector = createSelector(
36
+ * (state) => state.disabled,
37
+ * (state) => state.open,
38
+ * (disabled, open) => ({ disabled, open })
39
+ * );
40
+ */
19
41
  /* eslint-disable id-denylist */
20
42
  const createSelector = (a, b, c, d, e, f, g, h, ...other) => {
21
43
  if (other.length > 0) {
@@ -169,5 +191,33 @@ const createSelectorMemoizedWithOptions = options => (...inputs) => {
169
191
  };
170
192
  return selector;
171
193
  };
194
+
195
+ /**
196
+ * Creates a memoized selector function that can be used to derive values from the store's state.
197
+ * This is useful for selectors that produce non-primitive values, such as objects or arrays, where memoization can help prevent unnecessary re-renders in React components.
198
+ *
199
+ * The memoization is implemented in a way that only the most recent selector result is cached.
200
+ * This is suitable for cases where the selector is called with the same state and arguments repeatedly,
201
+ * but may not be ideal for selectors that are called with a wide variety of states and arguments.
202
+ *
203
+ * The combiner function can have up to three additional parameters, but it **cannot have optional or default parameters**.
204
+ *
205
+ * This function accepts up to six functions and combines them into a single selector function.
206
+ * The resulting selector will take the state from the combined selectors and any additional parameters required by the combiner.
207
+ *
208
+ * The return type of the resulting selector is determined by the return type of the combiner function.
209
+ *
210
+ * @example
211
+ * const selector = createSelectorMemoized(
212
+ * (state) => state.disabled
213
+ * );
214
+ *
215
+ * @example
216
+ * const selector = createSelectorMemoized(
217
+ * (state) => state.disabled,
218
+ * (state) => state.open,
219
+ * (disabled, open) => ({ disabled, open })
220
+ * );
221
+ */
172
222
  exports.createSelectorMemoizedWithOptions = createSelectorMemoizedWithOptions;
173
223
  const createSelectorMemoized = exports.createSelectorMemoized = createSelectorMemoizedWithOptions();
@@ -9,6 +9,28 @@ const reselectCreateSelector = createSelectorCreator({
9
9
  equalityCheck: Object.is
10
10
  }
11
11
  });
12
+ /**
13
+ * Creates a selector function that can be used to derive values from the store's state.
14
+ *
15
+ * The combiner function can have up to three additional parameters, but it **cannot have optional or default parameters**.
16
+ *
17
+ * This function accepts up to six functions and combines them into a single selector function.
18
+ * The resulting selector will take the state from the combined selectors and any additional parameters required by the combiner.
19
+ *
20
+ * The return type of the resulting selector is determined by the return type of the combiner function.
21
+ *
22
+ * @example
23
+ * const selector = createSelector(
24
+ * (state) => state.disabled
25
+ * );
26
+ *
27
+ * @example
28
+ * const selector = createSelector(
29
+ * (state) => state.disabled,
30
+ * (state) => state.open,
31
+ * (disabled, open) => ({ disabled, open })
32
+ * );
33
+ */
12
34
  /* eslint-disable id-denylist */
13
35
  export const createSelector = (a, b, c, d, e, f, g, h, ...other) => {
14
36
  if (other.length > 0) {
@@ -162,4 +184,32 @@ export const createSelectorMemoizedWithOptions = options => (...inputs) => {
162
184
  };
163
185
  return selector;
164
186
  };
187
+
188
+ /**
189
+ * Creates a memoized selector function that can be used to derive values from the store's state.
190
+ * This is useful for selectors that produce non-primitive values, such as objects or arrays, where memoization can help prevent unnecessary re-renders in React components.
191
+ *
192
+ * The memoization is implemented in a way that only the most recent selector result is cached.
193
+ * This is suitable for cases where the selector is called with the same state and arguments repeatedly,
194
+ * but may not be ideal for selectors that are called with a wide variety of states and arguments.
195
+ *
196
+ * The combiner function can have up to three additional parameters, but it **cannot have optional or default parameters**.
197
+ *
198
+ * This function accepts up to six functions and combines them into a single selector function.
199
+ * The resulting selector will take the state from the combined selectors and any additional parameters required by the combiner.
200
+ *
201
+ * The return type of the resulting selector is determined by the return type of the combiner function.
202
+ *
203
+ * @example
204
+ * const selector = createSelectorMemoized(
205
+ * (state) => state.disabled
206
+ * );
207
+ *
208
+ * @example
209
+ * const selector = createSelectorMemoized(
210
+ * (state) => state.disabled,
211
+ * (state) => state.open,
212
+ * (disabled, open) => ({ disabled, open })
213
+ * );
214
+ */
165
215
  export const createSelectorMemoized = createSelectorMemoizedWithOptions();
@@ -1,5 +1,14 @@
1
1
  import type { Selector } from 'reselect';
2
- export type CreateSelectorFunction = <const Args extends any[], const Selectors extends ReadonlyArray<Selector<any>>, const Combiner extends (...args: readonly [...ReturnTypes<Selectors>, ...Args]) => any>(...items: [...Selectors, Combiner]) => (...args: Selectors['length'] extends 0 ? MergeParams<ReturnTypes<Selectors>, Parameters<Combiner>> : [StateFromSelectorList<Selectors>, ...MergeParams<ReturnTypes<Selectors>, Parameters<Combiner>>]) => ReturnType<Combiner>;
2
+ /**
3
+ * The NoOptionalParams type is a utility type that checks if a function has optional or default parameters.
4
+ * If the function has optional or default parameters, it returns a string literal type with an error message.
5
+ * Otherwise, it returns the original function type.
6
+ *
7
+ * This is used to enforce that the combiner function passed to createSelector does not have optional or default parameters,
8
+ * as memoization relies on the Function.length property, which does not account for optional or default parameters.
9
+ */
10
+ type NoOptionalParams<F extends Fn> = Parameters<F> extends Required<Parameters<F>> ? F : 'Combiner cannot have optional or default parameters because memoization relies on Function.length';
11
+ export type CreateSelectorFunction = <const Args extends any[], const Selectors extends ReadonlyArray<Selector<any>>, const Combiner extends (...args: readonly [...ReturnTypes<Selectors>, ...Args]) => any>(...items: [...Selectors, NoOptionalParams<Combiner>]) => (...args: Selectors['length'] extends 0 ? MergeParams<ReturnTypes<Selectors>, Parameters<Combiner>> : [StateFromSelectorList<Selectors>, ...MergeParams<ReturnTypes<Selectors>, Parameters<Combiner>>]) => ReturnType<Combiner>;
3
12
  type StateFromSelectorList<Selectors extends readonly any[]> = Selectors extends [f: infer F, ...other: infer R] ? StateFromSelector<F> extends StateFromSelectorList<R> ? StateFromSelector<F> : StateFromSelectorList<R> : {};
4
13
  type StateFromSelector<T> = T extends ((first: infer F, ...args: any[]) => any) ? F : never;
5
14
  type Fn = (...args: any[]) => any;
@@ -1,5 +1,14 @@
1
1
  import type { Selector } from 'reselect';
2
- export type CreateSelectorFunction = <const Args extends any[], const Selectors extends ReadonlyArray<Selector<any>>, const Combiner extends (...args: readonly [...ReturnTypes<Selectors>, ...Args]) => any>(...items: [...Selectors, Combiner]) => (...args: Selectors['length'] extends 0 ? MergeParams<ReturnTypes<Selectors>, Parameters<Combiner>> : [StateFromSelectorList<Selectors>, ...MergeParams<ReturnTypes<Selectors>, Parameters<Combiner>>]) => ReturnType<Combiner>;
2
+ /**
3
+ * The NoOptionalParams type is a utility type that checks if a function has optional or default parameters.
4
+ * If the function has optional or default parameters, it returns a string literal type with an error message.
5
+ * Otherwise, it returns the original function type.
6
+ *
7
+ * This is used to enforce that the combiner function passed to createSelector does not have optional or default parameters,
8
+ * as memoization relies on the Function.length property, which does not account for optional or default parameters.
9
+ */
10
+ type NoOptionalParams<F extends Fn> = Parameters<F> extends Required<Parameters<F>> ? F : 'Combiner cannot have optional or default parameters because memoization relies on Function.length';
11
+ export type CreateSelectorFunction = <const Args extends any[], const Selectors extends ReadonlyArray<Selector<any>>, const Combiner extends (...args: readonly [...ReturnTypes<Selectors>, ...Args]) => any>(...items: [...Selectors, NoOptionalParams<Combiner>]) => (...args: Selectors['length'] extends 0 ? MergeParams<ReturnTypes<Selectors>, Parameters<Combiner>> : [StateFromSelectorList<Selectors>, ...MergeParams<ReturnTypes<Selectors>, Parameters<Combiner>>]) => ReturnType<Combiner>;
3
12
  type StateFromSelectorList<Selectors extends readonly any[]> = Selectors extends [f: infer F, ...other: infer R] ? StateFromSelector<F> extends StateFromSelectorList<R> ? StateFromSelector<F> : StateFromSelectorList<R> : {};
4
13
  type StateFromSelector<T> = T extends ((first: infer F, ...args: any[]) => any) ? F : never;
5
14
  type Fn = (...args: any[]) => any;