@mui/x-data-grid-premium 9.0.0-beta.0 → 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,159 @@
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
+
3
157
  ## 9.0.0-beta.0
4
158
 
5
159
  <!-- generated comparing v9.0.0-alpha.4..master -->
@@ -313,7 +467,7 @@ Same changes as in `@mui/x-charts-pro@9.0.0-alpha.3`, plus:
313
467
  - Remove deprecated CSS state classes from `treeItemClasses`: `expanded`, `selected`, `focused`, `disabled`, `editable`, `editing` (use `[data-expanded]`, `[data-selected]`, etc.)
314
468
  - The `<RichTreeViewPro />` component has now virtualization enabled by default.
315
469
  - The items used inside the `<RichTreeViewPro />` now have a default height of `32px`.
316
- - The events of the `<RichTreeViewPro />` are now rendered as a flat list instead of a nested tree.
470
+ - The items of the `<RichTreeViewPro />` are now rendered as a flat list instead of a nested tree.
317
471
 
318
472
  #### `@mui/x-tree-view@9.0.0-alpha.3`
319
473
 
@@ -51,8 +51,8 @@ const configuration = {
51
51
  }
52
52
  };
53
53
  const packageInfo = {
54
- releaseDate: "MTc3NDU2OTYwMDAwMA==",
55
- version: "9.0.0-beta.0",
54
+ releaseDate: "MTc3NTUyMDAwMDAwMA==",
55
+ version: "9.0.0-rc.0",
56
56
  name: 'x-data-grid-premium'
57
57
  };
58
58
  const watermark = /*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.Watermark, {
@@ -501,6 +501,7 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
501
501
  * For each feature, if the flag is not explicitly set to `true`, then the feature is fully disabled, and neither property nor method calls will have any effect.
502
502
  */
503
503
  experimentalFeatures: _propTypes.default.shape({
504
+ virtualizerLayoutMode: _propTypes.default.oneOf(['controlled', 'uncontrolled']),
504
505
  warnIfFocusStateIsNotSynced: _propTypes.default.bool
505
506
  }),
506
507
  /**
@@ -1138,7 +1139,7 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
1138
1139
  * @param {GridRowScrollEndParams} params With all properties from [[GridRowScrollEndParams]].
1139
1140
  * @param {MuiEvent<{}>} event The event object.
1140
1141
  * @param {GridCallbackDetails} details Additional details for this callback.
1141
- * @deprecated Use the {@link https://mui.com/x/react-data-grid/server-side-data/lazy-loading/#infinite-loading Server-side data-Infinite loading} instead.
1142
+ * Prefer to use {@link https://mui.com/x/react-data-grid/server-side-data/lazy-loading/#infinite-loading Server-side data-Infinite loading} unless it doesn't fulfill your needs.
1142
1143
  */
1143
1144
  onRowsScrollEnd: _propTypes.default.func,
1144
1145
  /**
@@ -44,8 +44,8 @@ const configuration = {
44
44
  }
45
45
  };
46
46
  const packageInfo = {
47
- releaseDate: "MTc3NDU2OTYwMDAwMA==",
48
- version: "9.0.0-beta.0",
47
+ releaseDate: "MTc3NTUyMDAwMDAwMA==",
48
+ version: "9.0.0-rc.0",
49
49
  name: 'x-data-grid-premium'
50
50
  };
51
51
  const watermark = /*#__PURE__*/_jsx(Watermark, {
@@ -494,6 +494,7 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
494
494
  * For each feature, if the flag is not explicitly set to `true`, then the feature is fully disabled, and neither property nor method calls will have any effect.
495
495
  */
496
496
  experimentalFeatures: PropTypes.shape({
497
+ virtualizerLayoutMode: PropTypes.oneOf(['controlled', 'uncontrolled']),
497
498
  warnIfFocusStateIsNotSynced: PropTypes.bool
498
499
  }),
499
500
  /**
@@ -1131,7 +1132,7 @@ process.env.NODE_ENV !== "production" ? DataGridPremiumRaw.propTypes = {
1131
1132
  * @param {GridRowScrollEndParams} params With all properties from [[GridRowScrollEndParams]].
1132
1133
  * @param {MuiEvent<{}>} event The event object.
1133
1134
  * @param {GridCallbackDetails} details Additional details for this callback.
1134
- * @deprecated Use the {@link https://mui.com/x/react-data-grid/server-side-data/lazy-loading/#infinite-loading Server-side data-Infinite loading} instead.
1135
+ * Prefer to use {@link https://mui.com/x/react-data-grid/server-side-data/lazy-loading/#infinite-loading Server-side data-Infinite loading} unless it doesn't fulfill your needs.
1135
1136
  */
1136
1137
  onRowsScrollEnd: PropTypes.func,
1137
1138
  /**
@@ -31,7 +31,10 @@ const Element = (0, _styles.styled)('div', {
31
31
  })({
32
32
  position: 'sticky',
33
33
  zIndex: 40,
34
- bottom: 'calc(var(--DataGrid-hasScrollX) * var(--DataGrid-scrollbarSize))'
34
+ bottom: 'calc(var(--DataGrid-hasScrollX) * var(--DataGrid-scrollbarSize))',
35
+ [`.${_xDataGridPro.gridClasses['virtualizer--layoutControlled']} &`]: {
36
+ position: 'absolute'
37
+ }
35
38
  });
36
39
  function GridBottomContainer(props) {
37
40
  const classes = useUtilityClasses();
@@ -23,7 +23,10 @@ const Element = styled('div', {
23
23
  })({
24
24
  position: 'sticky',
25
25
  zIndex: 40,
26
- bottom: 'calc(var(--DataGrid-hasScrollX) * var(--DataGrid-scrollbarSize))'
26
+ bottom: 'calc(var(--DataGrid-hasScrollX) * var(--DataGrid-scrollbarSize))',
27
+ [`.${gridClasses['virtualizer--layoutControlled']} &`]: {
28
+ position: 'absolute'
29
+ }
27
30
  });
28
31
  export function GridBottomContainer(props) {
29
32
  const classes = useUtilityClasses();
@@ -287,6 +287,11 @@ const useGridClipboardImport = (apiRef, props) => {
287
287
  onBeforeClipboardPasteStart
288
288
  } = props;
289
289
  const handlePaste = React.useCallback(async (params, event) => {
290
+ // Ignore portal
291
+ // Do not apply shortcuts if the focus is not on the cell root component
292
+ if ((0, _internals.isEventTargetInPortal)(event)) {
293
+ return;
294
+ }
290
295
  if (!enableClipboardPaste) {
291
296
  return;
292
297
  }
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
3
  import { GRID_CHECKBOX_SELECTION_FIELD, gridFocusCellSelector, gridVisibleColumnFieldsSelector, useGridEventPriority, useGridEvent, gridPaginatedVisibleSortedGridRowIdsSelector, gridExpandedSortedRowIdsSelector, gridRowSelectionIdsSelector, gridRowSelectionCountSelector } from '@mui/x-data-grid';
4
- import { getRowIdFromRowModel, getActiveElement, useGridRegisterPipeProcessor, getPublicApiRef, isPasteShortcut, useGridLogger } from '@mui/x-data-grid/internals';
4
+ import { getRowIdFromRowModel, getActiveElement, useGridRegisterPipeProcessor, getPublicApiRef, isPasteShortcut, useGridLogger, isEventTargetInPortal } from '@mui/x-data-grid/internals';
5
5
  import { warnOnce } from '@mui/x-internals/warning';
6
6
  import { GRID_DETAIL_PANEL_TOGGLE_FIELD, GRID_REORDER_COL_DEF } from '@mui/x-data-grid-pro';
7
7
  import debounce from '@mui/utils/debounce';
@@ -53,7 +53,7 @@ async function getTextFromClipboard(rootEl) {
53
53
 
54
54
  // Keeps track of updated rows during clipboard paste
55
55
  class CellValueUpdater {
56
- rowsToUpdate = (() => new Map())();
56
+ rowsToUpdate = new Map();
57
57
  constructor(options) {
58
58
  this.options = options;
59
59
  this.updateRow = batchRowUpdates(options.apiRef.current.updateRows, 50);
@@ -279,6 +279,11 @@ export const useGridClipboardImport = (apiRef, props) => {
279
279
  onBeforeClipboardPasteStart
280
280
  } = props;
281
281
  const handlePaste = React.useCallback(async (params, event) => {
282
+ // Ignore portal
283
+ // Do not apply shortcuts if the focus is not on the cell root component
284
+ if (isEventTargetInPortal(event)) {
285
+ return;
286
+ }
282
287
  if (!enableClipboardPaste) {
283
288
  return;
284
289
  }
@@ -100,7 +100,7 @@ const useGridRowsOverridableMethods = (apiRef, props) => {
100
100
  };
101
101
  return _rowGroupingReorderExecutor.rowGroupingReorderExecutor.execute(executionContext);
102
102
  }, [apiRef, processRowUpdate, onProcessRowUpdateError]);
103
- if (flatTree) {
103
+ if (flatTree && !props.treeData) {
104
104
  return {
105
105
  setRowIndex: setRowIndexPlain,
106
106
  setRowPosition: setRowPositionPlain
@@ -92,7 +92,7 @@ export const useGridRowsOverridableMethods = (apiRef, props) => {
92
92
  };
93
93
  return rowGroupingReorderExecutor.execute(executionContext);
94
94
  }, [apiRef, processRowUpdate, onProcessRowUpdateError]);
95
- if (flatTree) {
95
+ if (flatTree && !props.treeData) {
96
96
  return {
97
97
  setRowIndex: setRowIndexPlain,
98
98
  setRowPosition: setRowPositionPlain
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid-premium v9.0.0-beta.0
2
+ * @mui/x-data-grid-premium v9.0.0-rc.0
3
3
  *
4
4
  * @license SEE LICENSE IN LICENSE
5
5
  * This source code is licensed under the SEE LICENSE IN LICENSE license found in the
package/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid-premium v9.0.0-beta.0
2
+ * @mui/x-data-grid-premium v9.0.0-rc.0
3
3
  *
4
4
  * @license SEE LICENSE IN LICENSE
5
5
  * This source code is licensed under the SEE LICENSE IN LICENSE license found in the
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/x-data-grid-premium",
3
- "version": "9.0.0-beta.0",
3
+ "version": "9.0.0-rc.0",
4
4
  "author": "MUI Team",
5
5
  "description": "The Premium plan edition of the MUI X Data Grid Components.",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -34,20 +34,20 @@
34
34
  },
35
35
  "dependencies": {
36
36
  "@babel/runtime": "^7.28.6",
37
- "@mui/utils": "^7.3.7",
38
- "@mui/x-internal-exceljs-fork": "4.4.4",
37
+ "@mui/utils": "9.0.0-beta.1",
38
+ "@mui/x-internal-exceljs-fork": "4.4.5",
39
39
  "clsx": "^2.1.1",
40
40
  "prop-types": "^15.8.1",
41
- "@mui/x-data-grid": "9.0.0-beta.0",
42
- "@mui/x-data-grid-pro": "9.0.0-beta.0",
43
- "@mui/x-internals": "9.0.0-alpha.4",
44
- "@mui/x-license": "9.0.0-beta.0"
41
+ "@mui/x-data-grid": "9.0.0-rc.0",
42
+ "@mui/x-data-grid-pro": "9.0.0-rc.0",
43
+ "@mui/x-license": "9.0.0-rc.0",
44
+ "@mui/x-internals": "9.0.0-rc.0"
45
45
  },
46
46
  "peerDependencies": {
47
47
  "@emotion/react": "^11.9.0",
48
48
  "@emotion/styled": "^11.8.1",
49
- "@mui/material": "^5.15.14 || ^6.0.0 || ^7.0.0",
50
- "@mui/system": "^5.15.14 || ^6.0.0 || ^7.0.0",
49
+ "@mui/material": "^7.3.0 || ^9.0.0-beta.0 || ^9.0.0",
50
+ "@mui/system": "^7.3.0 || ^9.0.0-beta.1",
51
51
  "react": "^17.0.0 || ^18.0.0 || ^19.0.0",
52
52
  "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0"
53
53
  },