@mui/x-data-grid 9.0.1 → 9.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/CHANGELOG.md +257 -0
  2. package/components/base/GridOverlays.js +1 -1
  3. package/components/base/GridOverlays.mjs +1 -1
  4. package/components/cell/GridCell.d.mts +0 -7
  5. package/components/cell/GridCell.d.ts +0 -7
  6. package/components/cell/GridCell.js +1 -8
  7. package/components/cell/GridCell.mjs +0 -7
  8. package/components/containers/GridRootStyles.js +21 -10
  9. package/components/containers/GridRootStyles.mjs +22 -11
  10. package/components/panel/GridPanelHeader.d.mts +3 -0
  11. package/components/panel/GridPanelHeader.d.ts +3 -0
  12. package/components/panel/GridPanelHeader.js +4 -0
  13. package/components/panel/GridPanelHeader.mjs +4 -0
  14. package/components/virtualization/GridVirtualScroller.js +23 -27
  15. package/components/virtualization/GridVirtualScroller.mjs +24 -28
  16. package/hooks/core/strategyProcessing/useGridStrategyProcessing.d.mts +0 -2
  17. package/hooks/core/strategyProcessing/useGridStrategyProcessing.d.ts +0 -2
  18. package/hooks/core/strategyProcessing/useGridStrategyProcessing.js +2 -2
  19. package/hooks/core/strategyProcessing/useGridStrategyProcessing.mjs +1 -1
  20. package/hooks/core/useGridVirtualizer.d.mts +2 -2
  21. package/hooks/core/useGridVirtualizer.d.ts +2 -2
  22. package/hooks/core/useGridVirtualizer.js +1 -1
  23. package/hooks/core/useGridVirtualizer.mjs +2 -2
  24. package/hooks/features/columns/gridColumnsUtils.d.mts +0 -5
  25. package/hooks/features/columns/gridColumnsUtils.d.ts +0 -5
  26. package/hooks/features/columns/gridColumnsUtils.js +1 -2
  27. package/hooks/features/columns/gridColumnsUtils.mjs +1 -1
  28. package/hooks/features/dimensions/useGridDimensions.js +10 -0
  29. package/hooks/features/dimensions/useGridDimensions.mjs +10 -0
  30. package/hooks/features/rows/gridRowSpanningUtils.d.mts +0 -1
  31. package/hooks/features/rows/gridRowSpanningUtils.d.ts +0 -1
  32. package/hooks/features/rows/gridRowSpanningUtils.js +0 -4
  33. package/hooks/features/rows/gridRowSpanningUtils.mjs +0 -3
  34. package/hooks/features/rows/gridRowsUtils.d.mts +1 -2
  35. package/hooks/features/rows/gridRowsUtils.d.ts +1 -2
  36. package/hooks/features/rows/gridRowsUtils.js +2 -3
  37. package/hooks/features/rows/gridRowsUtils.mjs +1 -2
  38. package/hooks/features/rows/useGridParamsApi.d.mts +0 -1
  39. package/hooks/features/rows/useGridParamsApi.d.ts +0 -1
  40. package/hooks/features/rows/useGridParamsApi.js +0 -2
  41. package/hooks/features/rows/useGridParamsApi.mjs +1 -1
  42. package/hooks/features/rows/useGridRowsOverridableMethods.js +37 -15
  43. package/hooks/features/rows/useGridRowsOverridableMethods.mjs +37 -15
  44. package/hooks/features/virtualization/useGridVirtualization.d.mts +2 -2
  45. package/hooks/features/virtualization/useGridVirtualization.d.ts +2 -2
  46. package/hooks/utils/useGridSelector.d.mts +0 -1
  47. package/hooks/utils/useGridSelector.d.ts +0 -1
  48. package/hooks/utils/useGridSelector.js +1 -2
  49. package/hooks/utils/useGridSelector.mjs +1 -1
  50. package/index.js +1 -1
  51. package/index.mjs +1 -1
  52. package/package.json +3 -3
  53. package/hooks/core/gridCoreSelector.d.mts +0 -6
  54. package/hooks/core/gridCoreSelector.d.ts +0 -6
  55. package/hooks/core/gridCoreSelector.js +0 -12
  56. package/hooks/core/gridCoreSelector.mjs +0 -6
package/CHANGELOG.md CHANGED
@@ -1,5 +1,262 @@
1
1
  # Changelog
2
2
 
3
+ ## 9.0.3
4
+
5
+ _Apr 27, 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
+ - ⌨️ Keyboard support for creating events in the Scheduler
10
+
11
+ Special thanks go out to these community members for their valuable contributions:
12
+ @supunsathsara, @ZAKIURREHMAN
13
+
14
+ The following team members contributed to this release:
15
+ @aemartos, @alexfauquette, @arminmeh, @brijeshb42, @Janpot, @JCQuintas, @LukasTy, @MBilalShafi, @michelengelen, @oliviertassinari, @rita-codes, @romgrk, @sai6855, @siriwatknp
16
+
17
+ ### Data Grid
18
+
19
+ #### `@mui/x-data-grid@9.0.3`
20
+
21
+ - [DataGrid] Fix `:first-child` SSR warning when `MuiDataGrid.styleOverrides` is set (#22081) @siriwatknp
22
+ - [DataGrid] Fix row reordering when filter hides rows (#22096) @siriwatknp
23
+ - [DataGrid] Remove unused `LayoutDataGridLegacy` class (#22009) @romgrk
24
+ - [DataGrid] Remove unused code, clean up grid-related utilities and deprecate `GridPanelHeader` (#22112) @sai6855
25
+ - [DataGrid] Fix columns cutting off after resizing (#22088) @ZAKIURREHMAN
26
+
27
+ #### `@mui/x-data-grid-pro@9.0.3` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
28
+
29
+ Same changes as in `@mui/x-data-grid@9.0.3`.
30
+
31
+ #### `@mui/x-data-grid-premium@9.0.3` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
32
+
33
+ Same changes as in `@mui/x-data-grid-pro@9.0.3`, plus:
34
+
35
+ - [DataGridPremium] Fix row grouping model updates not being reflected (#22122) @MBilalShafi
36
+
37
+ ### Date and Time Pickers
38
+
39
+ #### `@mui/x-date-pickers@9.0.3`
40
+
41
+ - [pickers] Fix `DateRangeCalendar` drag with `AdapterDayjs` plain-constructor values (#22165) @LukasTy
42
+ - [pickers] Fix disabled state not overriding error border color (#21169) @supunsathsara
43
+ - [pickers] Forward `data-*` and `aria-*` attributes to the root (#22147) @LukasTy
44
+ - [pickers] Support `K` and `k` hour format tokens (#22108) @michelengelen
45
+
46
+ #### `@mui/x-date-pickers-pro@9.0.3` [![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.0.3`, plus:
49
+
50
+ - [DateRangeCalendar] Ensure date dragging triggers regardless of trigger element (#21868) @michelengelen
51
+
52
+ ### Charts
53
+
54
+ #### `@mui/x-charts@9.0.3`
55
+
56
+ - [charts] Centralize WebGL clear/render cycle (context-based) (#22127) @JCQuintas
57
+ - [charts] Fix closest series detection for line charts (#22168) @alexfauquette
58
+ - [charts] Fix radius grid lines when axis uses point scale (#22134) @alexfauquette
59
+ - [charts] Use cubic solver for berzier intersection (#22152) @alexfauquette
60
+
61
+ #### `@mui/x-charts-pro@9.0.3` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
62
+
63
+ Same changes as in `@mui/x-charts@9.0.3`, plus:
64
+
65
+ - [charts-pro] Fix wheel zoom clamping with custom `minStart`/`maxEnd` (#22159) @JCQuintas
66
+
67
+ #### `@mui/x-charts-premium@9.0.3` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
68
+
69
+ Same changes as in `@mui/x-charts-pro@9.0.3`, plus:
70
+
71
+ - [charts] Create a `'radialLine'` series type (#22066) @alexfauquette
72
+ - [charts] Plot radial line (#22133) @alexfauquette
73
+ - [charts] Remove `HeatmapWebGLRenderer` indirection (#22169) @JCQuintas
74
+
75
+ ### Tree View
76
+
77
+ #### `@mui/x-tree-view@9.0.2`
78
+
79
+ Internal changes.
80
+
81
+ #### `@mui/x-tree-view-pro@9.0.2` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
82
+
83
+ Same changes as in `@mui/x-tree-view@9.0.2`.
84
+
85
+ ### Scheduler
86
+
87
+ #### Breaking changes
88
+
89
+ - The `views` of `EventTimelinePremium` have been renamed to `presets`, with names that describe the header layout. The props `view`/`defaultView`/`views`/`onViewChange` are now `preset`/`defaultPreset`/`presets`/`onPresetChange`, and the type `EventTimelinePremiumView` is now `EventTimelinePremiumPreset`.
90
+
91
+ | Old | New |
92
+ | :------- | :------------- |
93
+ | `time` | `dayAndHour` |
94
+ | `days` | `day` |
95
+ | `weeks` | `dayAndWeek` |
96
+ | `months` | `monthAndYear` |
97
+ | `years` | `year` |
98
+
99
+ CSS variables (`--time-cell-width`, etc.) and headless store state (`state.view`, `setView`) follow the same rename. The `presets` array is now sorted internally against a canonical zoom order.
100
+
101
+ #### `@mui/x-scheduler@9.0.0-alpha.3`
102
+
103
+ - [scheduler] Allow creating events via keyboard - EventCalendar (#21967) @rita-codes
104
+ - [scheduler] Prefix element IDs with a unique Scheduler instance ID (#22109) @rita-codes
105
+
106
+ #### `@mui/x-scheduler-premium@9.0.0-alpha.3` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
107
+
108
+ Same changes as in `@mui/x-scheduler@9.0.0-alpha.3`.
109
+
110
+ - [scheduler] Allow creating events via keyboard - `EventTimeline` (#22119) @rita-codes
111
+ - [scheduler] Rename `EventTimeline` `views` to ordered presets (#22130) @rita-codes
112
+
113
+ ### Docs
114
+
115
+ - [docs] Cleanup generated llm md files for chat (#22163) @brijeshb42
116
+ - [docs] Fix `highlightScope` description (#22154) @alexfauquette
117
+ - [docs] Remove obsolete v7 deprecation warning for `dayOfWeekFormatter` (#22111) @LukasTy
118
+ - [docs] Use mui.com for broken links checker known targets (#22129) @JCQuintas
119
+ - [docs] Document picker behavior inside MUI `Dialog` and provide recommended solutions (#22144) @michelengelen
120
+ - [docs] Improve v9 license key version mismatch error guidance (#22180) @aemartos
121
+
122
+ ### Core
123
+
124
+ - [code-infra] Reduce concurrency for package build to 5 (#22115) @Janpot
125
+ - [code-infra] Rename `docsx` alias to `docs` (#22155) @brijeshb42
126
+ - [docs-infra] Remove monorepo dependency (#22025) @brijeshb42
127
+ - [docs-infra] Use latest published packages (#22086) @brijeshb42
128
+ - [test] Refactor Pickers tests to async user-event (#22043) @LukasTy
129
+ - [test] Remove redundant explicit `unmount()` calls from Pickers tests (#22118) @LukasTy
130
+
131
+ ### Miscellaneous
132
+
133
+ - [infra] Update `.gitignore` to exclude `.claude/worktrees` (#22145) @michelengelen
134
+ - [infra] Enable branch tracking when creating release branch (#22177) @michelengelen
135
+ - [license] Add MIT license to `x-virtualizer` package (#22164) @michelengelen
136
+ - [website] Fix outdated MUI logos (#22117) @oliviertassinari
137
+ - [internal] Try avoiding store update when virtualization is disabled (#22093) @arminmeh
138
+
139
+ ## 9.0.2
140
+
141
+ <!-- generated comparing v9.0.1..master -->
142
+
143
+ _Apr 15, 2026_
144
+
145
+ We'd like to extend a big thank you to the 12 contributors who made this release possible. Here are some highlights ✨:
146
+
147
+ - 📊 Added `valueGetter` to axes and series configurations, which allow for dynamically getting data out of a `dataset`.
148
+ - 🐞 Bugfixes
149
+ - 📚 Docs updates
150
+
151
+ Special thanks go out to these community members for their valuable contributions:
152
+ @Anexus5919, @nk10nikhil
153
+
154
+ The following team members contributed to this release:
155
+ @aemartos, @alexfauquette, @brijeshb42, @Janpot, @JCQuintas, @LukasTy, @MBilalShafi, @michelengelen, @rita-codes, @sai6855
156
+
157
+ ### Data Grid
158
+
159
+ #### `@mui/x-data-grid@9.0.2`
160
+
161
+ - [DataGrid] Fix skeleton overlay backdrop issue (#21951) @MBilalShafi
162
+ - [DataGrid] Make `overridesResolver` of `ResizablePanelHandle` dynamic (#21724) @sai6855
163
+
164
+ #### `@mui/x-data-grid-pro@9.0.2` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
165
+
166
+ Same changes as in `@mui/x-data-grid@9.0.2`.
167
+
168
+ #### `@mui/x-data-grid-premium@9.0.2` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
169
+
170
+ Same changes as in `@mui/x-data-grid-pro@9.0.2`.
171
+
172
+ ### Date and Time Pickers
173
+
174
+ #### `@mui/x-date-pickers@9.0.2`
175
+
176
+ - [fields] Allow `openPickerButtonPosition` on single-input range fields (#22011) @LukasTy
177
+ - [pickers] Fix spurious `onBlur`/`onFocus` firing during field focus transitions (#22098) @LukasTy
178
+ - [pickers] Use `convertToMeridiem` utility in `transferDateSectionValue` (#22062) @michelengelen
179
+
180
+ #### `@mui/x-date-pickers-pro@9.0.2` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
181
+
182
+ Same changes as in `@mui/x-date-pickers@9.0.2`.
183
+
184
+ ### Charts
185
+
186
+ #### `@mui/x-charts@9.0.2`
187
+
188
+ - [charts] Add `valueGetter` to axes and series (#21963) @JCQuintas
189
+ - [charts] Create a `ChartsRadialDataProvider` (#22047) @alexfauquette
190
+ - [charts] Create a `ChartsRadialGrid` (#22085) @alexfauquette
191
+ - [charts] Deprecate `Scatter` component (#22060) @JCQuintas
192
+ - [charts] Remove duplicate `useThemeProps` call (#22045) @alexfauquette
193
+ - [charts] Simplify focus state handling in `BarElement` component (#22101) @sai6855
194
+
195
+ #### `@mui/x-charts-pro@9.0.2` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
196
+
197
+ Same changes as in `@mui/x-charts@9.0.2`, plus:
198
+
199
+ - [charts-pro] Add range buttons to toolbar (#21964) @JCQuintas
200
+
201
+ #### `@mui/x-charts-premium@9.0.2` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
202
+
203
+ Same changes as in `@mui/x-charts-pro@9.0.2`.
204
+
205
+ ### Tree View
206
+
207
+ #### `@mui/x-tree-view@9.0.2`
208
+
209
+ Internal changes.
210
+
211
+ #### `@mui/x-tree-view-pro@9.0.2` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
212
+
213
+ Same changes as in `@mui/x-tree-view@9.0.2`, plus:
214
+
215
+ - [tree view] Move `lazyLoadedItems` initialization to state initializer (#22073) @michelengelen
216
+
217
+ ### Scheduler
218
+
219
+ #### `@mui/x-scheduler@9.0.0-alpha.2`
220
+
221
+ - [scheduler] Add recurrence icon to recurring events in `EventTimeline` (#22019) (#22046) @nk10nikhil
222
+ - [scheduler] Reset scroll position when navigating to a new time period (#22036) @Anexus5919
223
+ - [l10n] Improve German (de-DE) locale (#21944) @rita-codes
224
+ - [l10n] Improve Portuguese - Portugal (pt-PT) locale & Improve Portuguese - Brazil (pt-BR) locale (#21943) @rita-codes
225
+
226
+ #### `@mui/x-scheduler-premium@9.0.0-alpha.2` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
227
+
228
+ Same changes as in `@mui/x-scheduler@9.0.0-alpha.2`.
229
+
230
+ ### Chat
231
+
232
+ #### `@mui/x-chat@9.0.0-alpha.1`
233
+
234
+ - Internal changes.
235
+
236
+ #### `@mui/x-chat-headless@9.0.0-alpha.1`
237
+
238
+ - Internal changes.
239
+
240
+ ### Docs
241
+
242
+ - [docs] Add data grid `isAnyOf` paste recipe (#21961) @MBilalShafi
243
+ - [docs] Add `@mui/material` upgrade requirement to v9 migration guides (#22068) @LukasTy
244
+ - [docs] Fix pages width with `disableToc` (#22051) @LukasTy
245
+ - [docs] Split charts axis page (#22069) @alexfauquette
246
+ - [docs] Update `ChartsRadialDataProvider` API page imports (#22072) @JCQuintas
247
+
248
+ ### Core
249
+
250
+ - [code-infra] Fix lock file (#22053) @JCQuintas
251
+ - [code-infra] Limit `release:build` lerna concurrency to 6 (#22077) @Janpot
252
+ - [docs-infra] Update monorepo dependency with relevant migration (#22041) @brijeshb42
253
+
254
+ ### Miscellaneous
255
+
256
+ - [telemetry] Skip runtime resolution when telemetry is disabled (#22078) @aemartos
257
+ - [test] Remove v7 suffix from test helpers and stale comments (#22023) @LukasTy
258
+ - [scheduler] Fix README for published packages (#22042) @rita-codes
259
+
3
260
  ## 9.0.1
4
261
 
5
262
  <!-- generated comparing v9.0.0..master -->
@@ -76,7 +76,7 @@ function GridOverlayWrapper(props) {
76
76
  className: classes.inner,
77
77
  style: {
78
78
  height,
79
- width: dimensions.viewportOuterSize.width
79
+ width: props.loadingOverlayVariant === 'skeleton' ? Math.max(dimensions.viewportOuterSize.width, dimensions.columnsTotalWidth) : dimensions.viewportOuterSize.width
80
80
  }
81
81
  }, props))
82
82
  }));
@@ -68,7 +68,7 @@ export function GridOverlayWrapper(props) {
68
68
  className: classes.inner,
69
69
  style: {
70
70
  height,
71
- width: dimensions.viewportOuterSize.width
71
+ width: props.loadingOverlayVariant === 'skeleton' ? Math.max(dimensions.viewportOuterSize.width, dimensions.columnsTotalWidth) : dimensions.viewportOuterSize.width
72
72
  }
73
73
  }, props))
74
74
  }));
@@ -2,14 +2,7 @@ import * as React from 'react';
2
2
  import { type GridRowId } from "../../models/index.mjs";
3
3
  import type { GridAlignment, GridStateColDef } from "../../models/colDef/gridColDef.mjs";
4
4
  import type { GridRowModel, GridTreeNode } from "../../models/gridRows.mjs";
5
- import { GridPinnedColumnPosition } from "../../hooks/features/columns/gridColumnsInterfaces.mjs";
6
5
  import { PinnedColumnPosition } from "../../internals/constants.mjs";
7
- export declare const gridPinnedColumnPositionLookup: {
8
- 1: GridPinnedColumnPosition;
9
- 2: GridPinnedColumnPosition;
10
- 0: undefined;
11
- 3: undefined;
12
- };
13
6
  export type GridCellProps = React.HTMLAttributes<HTMLDivElement> & {
14
7
  align: GridAlignment;
15
8
  className?: string;
@@ -2,14 +2,7 @@ import * as React from 'react';
2
2
  import { type GridRowId } from "../../models/index.js";
3
3
  import type { GridAlignment, GridStateColDef } from "../../models/colDef/gridColDef.js";
4
4
  import type { GridRowModel, GridTreeNode } from "../../models/gridRows.js";
5
- import { GridPinnedColumnPosition } from "../../hooks/features/columns/gridColumnsInterfaces.js";
6
5
  import { PinnedColumnPosition } from "../../internals/constants.js";
7
- export declare const gridPinnedColumnPositionLookup: {
8
- 1: GridPinnedColumnPosition;
9
- 2: GridPinnedColumnPosition;
10
- 0: undefined;
11
- 3: undefined;
12
- };
13
6
  export type GridCellProps = React.HTMLAttributes<HTMLDivElement> & {
14
7
  align: GridAlignment;
15
8
  className?: string;
@@ -6,7 +6,7 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
6
6
  Object.defineProperty(exports, "__esModule", {
7
7
  value: true
8
8
  });
9
- exports.gridPinnedColumnPositionLookup = exports.GridCell = void 0;
9
+ exports.GridCell = void 0;
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
11
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
12
12
  var React = _interopRequireWildcard(require("react"));
@@ -28,7 +28,6 @@ var _models = require("../../models");
28
28
  var _useGridSelector = require("../../hooks/utils/useGridSelector");
29
29
  var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
30
30
  var _gridFocusStateSelector = require("../../hooks/features/focus/gridFocusStateSelector");
31
- var _gridColumnsInterfaces = require("../../hooks/features/columns/gridColumnsInterfaces");
32
31
  var _constants = require("../../internals/constants");
33
32
  var _useGridPrivateApiContext = require("../../hooks/utils/useGridPrivateApiContext");
34
33
  var _usePinnedScrollOffset = require("../../hooks/utils/usePinnedScrollOffset");
@@ -38,12 +37,6 @@ var _useGridConfiguration = require("../../hooks/utils/useGridConfiguration");
38
37
  var _jsxRuntime = require("react/jsx-runtime");
39
38
  const _excluded = ["column", "row", "rowId", "rowNode", "align", "children", "colIndex", "width", "className", "style", "colSpan", "disableDragEvents", "isNotVisible", "pinnedOffset", "pinnedPosition", "showRightBorder", "showLeftBorder", "onClick", "onDoubleClick", "onMouseDown", "onMouseUp", "onMouseOver", "onKeyDown", "onKeyUp", "onDragEnter", "onDragOver"],
40
39
  _excluded2 = ["changeReason", "unstable_updateValueOnRender"];
41
- const gridPinnedColumnPositionLookup = exports.gridPinnedColumnPositionLookup = {
42
- [_constants.PinnedColumnPosition.LEFT]: _gridColumnsInterfaces.GridPinnedColumnPosition.LEFT,
43
- [_constants.PinnedColumnPosition.RIGHT]: _gridColumnsInterfaces.GridPinnedColumnPosition.RIGHT,
44
- [_constants.PinnedColumnPosition.NONE]: undefined,
45
- [_constants.PinnedColumnPosition.VIRTUAL]: undefined
46
- };
47
40
  const useUtilityClasses = ownerState => {
48
41
  const {
49
42
  align,
@@ -23,7 +23,6 @@ import { GridCellModes } from "../../models/index.mjs";
23
23
  import { useGridSelector } from "../../hooks/utils/useGridSelector.mjs";
24
24
  import { useGridRootProps } from "../../hooks/utils/useGridRootProps.mjs";
25
25
  import { gridFocusCellSelector, gridTabIndexCellSelector } from "../../hooks/features/focus/gridFocusStateSelector.mjs";
26
- import { GridPinnedColumnPosition } from "../../hooks/features/columns/gridColumnsInterfaces.mjs";
27
26
  import { PinnedColumnPosition } from "../../internals/constants.mjs";
28
27
  import { useGridPrivateApiContext } from "../../hooks/utils/useGridPrivateApiContext.mjs";
29
28
  import { usePinnedScrollOffset } from "../../hooks/utils/usePinnedScrollOffset.mjs";
@@ -31,12 +30,6 @@ import { gridEditCellStateSelector } from "../../hooks/features/editing/gridEdit
31
30
  import { attachPinnedStyle } from "../../internals/utils/index.mjs";
32
31
  import { useGridConfiguration } from "../../hooks/utils/useGridConfiguration.mjs";
33
32
  import { jsx as _jsx } from "react/jsx-runtime";
34
- export const gridPinnedColumnPositionLookup = {
35
- [PinnedColumnPosition.LEFT]: GridPinnedColumnPosition.LEFT,
36
- [PinnedColumnPosition.RIGHT]: GridPinnedColumnPosition.RIGHT,
37
- [PinnedColumnPosition.NONE]: undefined,
38
- [PinnedColumnPosition.VIRTUAL]: undefined
39
- };
40
33
  const useUtilityClasses = ownerState => {
41
34
  const {
42
35
  align,
@@ -29,18 +29,22 @@ const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
29
29
  // Root overrides
30
30
  const overrides = [styles.root];
31
31
  _gridClasses.gridClassesOverrides.root.forEach(key => {
32
- overrides.push({
33
- [`&.${_gridClasses.gridClasses[key]}`]: styles[key]
34
- });
32
+ if (styles[key] !== undefined) {
33
+ overrides.push({
34
+ [`&.${_gridClasses.gridClasses[key]}`]: styles[key]
35
+ });
36
+ }
35
37
  });
36
38
 
37
39
  // Child element overrides
38
40
  // - Only declare overrides here for class names that are not applied to `styled` components.
39
41
  // - For `styled` components, declare overrides in the component itself.
40
42
  _gridClasses.gridClassesOverrides.children.forEach(key => {
41
- overrides.push({
42
- [`& .${_gridClasses.gridClasses[key]}`]: styles[key]
43
- });
43
+ if (styles[key] !== undefined) {
44
+ overrides.push({
45
+ [`& .${_gridClasses.gridClasses[key]}`]: styles[key]
46
+ });
47
+ }
44
48
  });
45
49
  return overrides;
46
50
  }
@@ -132,10 +136,17 @@ const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
132
136
  transform: 'translate(0, 0)',
133
137
  // Create a stacking context to keep scrollbars from showing on top
134
138
 
135
- [`.${_gridClasses.gridClasses.main} > *:first-child${ignoreSsrWarning}`]: {
136
- borderTopLeftRadius: 'var(--unstable_DataGrid-radius)',
137
- borderTopRightRadius: 'var(--unstable_DataGrid-radius)'
138
- },
139
+ // Use `css` tagged template so the ignore-comment remains a sibling of the
140
+ // `:first-child` rule in the stylis AST. Previously, the comment was embedded
141
+ // in the object-key selector, which got separated from the rule during
142
+ // pre-serialization when `styleOverrides` were applied, re-triggering Emotion's
143
+ // unsafe-selector SSR warning. https://github.com/emotion-js/emotion/issues/1105
144
+ [`.${_gridClasses.gridClasses.main}`]: (0, _styles.css)`
145
+ & > *:first-child ${ignoreSsrWarning} {
146
+ border-top-left-radius: var(--unstable_DataGrid-radius);
147
+ border-top-right-radius: var(--unstable_DataGrid-radius);
148
+ }
149
+ `,
139
150
  [`&.${_gridClasses.gridClasses.autoHeight}`]: {
140
151
  height: 'auto'
141
152
  },
@@ -1,4 +1,4 @@
1
- import { styled } from '@mui/material/styles';
1
+ import { styled, css } from '@mui/material/styles';
2
2
  import { gridClasses as c, gridClassesOverrides } from "../../constants/gridClasses.mjs";
3
3
  import { vars } from "../../constants/cssVariables.mjs";
4
4
  import { useGridSelector } from "../../hooks/utils/useGridSelector.mjs";
@@ -23,18 +23,22 @@ export const GridRootStyles = styled('div', {
23
23
  // Root overrides
24
24
  const overrides = [styles.root];
25
25
  gridClassesOverrides.root.forEach(key => {
26
- overrides.push({
27
- [`&.${c[key]}`]: styles[key]
28
- });
26
+ if (styles[key] !== undefined) {
27
+ overrides.push({
28
+ [`&.${c[key]}`]: styles[key]
29
+ });
30
+ }
29
31
  });
30
32
 
31
33
  // Child element overrides
32
34
  // - Only declare overrides here for class names that are not applied to `styled` components.
33
35
  // - For `styled` components, declare overrides in the component itself.
34
36
  gridClassesOverrides.children.forEach(key => {
35
- overrides.push({
36
- [`& .${c[key]}`]: styles[key]
37
- });
37
+ if (styles[key] !== undefined) {
38
+ overrides.push({
39
+ [`& .${c[key]}`]: styles[key]
40
+ });
41
+ }
38
42
  });
39
43
  return overrides;
40
44
  }
@@ -126,10 +130,17 @@ export const GridRootStyles = styled('div', {
126
130
  transform: 'translate(0, 0)',
127
131
  // Create a stacking context to keep scrollbars from showing on top
128
132
 
129
- [`.${c.main} > *:first-child${ignoreSsrWarning}`]: {
130
- borderTopLeftRadius: 'var(--unstable_DataGrid-radius)',
131
- borderTopRightRadius: 'var(--unstable_DataGrid-radius)'
132
- },
133
+ // Use `css` tagged template so the ignore-comment remains a sibling of the
134
+ // `:first-child` rule in the stylis AST. Previously, the comment was embedded
135
+ // in the object-key selector, which got separated from the rule during
136
+ // pre-serialization when `styleOverrides` were applied, re-triggering Emotion's
137
+ // unsafe-selector SSR warning. https://github.com/emotion-js/emotion/issues/1105
138
+ [`.${c.main}`]: css`
139
+ & > *:first-child ${ignoreSsrWarning} {
140
+ border-top-left-radius: var(--unstable_DataGrid-radius);
141
+ border-top-right-radius: var(--unstable_DataGrid-radius);
142
+ }
143
+ `,
133
144
  [`&.${c.autoHeight}`]: {
134
145
  height: 'auto'
135
146
  },
@@ -1,5 +1,8 @@
1
1
  import * as React from 'react';
2
2
  import { type SxProps, type Theme } from '@mui/system';
3
+ /**
4
+ * @deprecated This component is not used internally and will be removed in a future major release.
5
+ */
3
6
  declare function GridPanelHeader(props: React.HTMLAttributes<HTMLDivElement> & {
4
7
  sx?: SxProps<Theme>;
5
8
  }): import("react/jsx-runtime").JSX.Element;
@@ -1,5 +1,8 @@
1
1
  import * as React from 'react';
2
2
  import { type SxProps, type Theme } from '@mui/system';
3
+ /**
4
+ * @deprecated This component is not used internally and will be removed in a future major release.
5
+ */
3
6
  declare function GridPanelHeader(props: React.HTMLAttributes<HTMLDivElement> & {
4
7
  sx?: SxProps<Theme>;
5
8
  }): import("react/jsx-runtime").JSX.Element;
@@ -33,6 +33,10 @@ const GridPanelHeaderRoot = (0, _system.styled)('div', {
33
33
  })({
34
34
  padding: _cssVariables.vars.spacing(1)
35
35
  });
36
+
37
+ /**
38
+ * @deprecated This component is not used internally and will be removed in a future major release.
39
+ */
36
40
  function GridPanelHeader(props) {
37
41
  const {
38
42
  className
@@ -25,6 +25,10 @@ const GridPanelHeaderRoot = styled('div', {
25
25
  })({
26
26
  padding: vars.spacing(1)
27
27
  });
28
+
29
+ /**
30
+ * @deprecated This component is not used internally and will be removed in a future major release.
31
+ */
28
32
  function GridPanelHeader(props) {
29
33
  const {
30
34
  className
@@ -113,39 +113,35 @@ function GridVirtualScroller(props) {
113
113
  const virtualizer = (0, _useGridVirtualizer.useGridVirtualizer)();
114
114
  const layoutMode = virtualizer.store.use(_xVirtualizer.Virtualization.selectors.layoutMode);
115
115
  const hasContentFiller = layoutMode === 'uncontrolled' && loadingOverlayVariant !== 'skeleton';
116
- const {
117
- getContainerProps,
118
- getScrollerProps,
119
- getScrollerContentProps,
120
- getViewportProps,
121
- getContentProps,
122
- getPositionerProps,
123
- getScrollbarVerticalProps,
124
- getScrollbarHorizontalProps,
125
- getRows,
126
- getScrollAreaProps,
127
- getContainerVerticalProps
128
- } = virtualizer.api.getters;
129
- const rows = getRows(undefined, (0, _rows.gridRowTreeSelector)(apiRef));
130
- const containerVerticalProps = getContainerVerticalProps();
116
+ const containerProps = virtualizer.store.use(_xVirtualizer.LayoutDataGrid.selectors.containerProps);
117
+ const scrollerProps = virtualizer.store.use(_xVirtualizer.LayoutDataGrid.selectors.scrollerProps);
118
+ const scrollerContentProps = virtualizer.store.use(_xVirtualizer.LayoutDataGrid.selectors.scrollerContentProps);
119
+ const viewportProps = virtualizer.store.use(_xVirtualizer.LayoutDataGrid.selectors.viewportProps);
120
+ const contentProps = virtualizer.store.use(_xVirtualizer.LayoutDataGrid.selectors.contentProps);
121
+ const positionerProps = virtualizer.store.use(_xVirtualizer.LayoutDataGrid.selectors.positionerProps);
122
+ const scrollbarVerticalProps = virtualizer.store.use(_xVirtualizer.LayoutDataGrid.selectors.scrollbarVerticalProps);
123
+ const scrollbarHorizontalProps = virtualizer.store.use(_xVirtualizer.LayoutDataGrid.selectors.scrollbarHorizontalProps);
124
+ const scrollAreaProps = virtualizer.store.use(_xVirtualizer.LayoutDataGrid.selectors.scrollAreaProps);
125
+ const containerVerticalProps = virtualizer.store.use(_xVirtualizer.LayoutDataGrid.selectors.containerVerticalProps);
126
+ const rows = virtualizer.api.getters.getRows(undefined, (0, _rows.gridRowTreeSelector)(apiRef));
131
127
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_GridMainContainer.GridMainContainer, (0, _extends2.default)({
132
128
  className: (0, _clsx.default)(classes.root, layoutMode === 'controlled' && _gridClasses.gridClasses['virtualizer--layoutControlled'])
133
- }, getContainerProps(), {
129
+ }, containerProps, {
134
130
  ownerState: ownerState,
135
131
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_GridScrollArea.GridScrollArea, (0, _extends2.default)({
136
132
  scrollDirection: "left"
137
- }, getScrollAreaProps())), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridScrollArea.GridScrollArea, (0, _extends2.default)({
133
+ }, scrollAreaProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridScrollArea.GridScrollArea, (0, _extends2.default)({
138
134
  scrollDirection: "right"
139
- }, getScrollAreaProps())), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridScrollArea.GridScrollArea, (0, _extends2.default)({
135
+ }, scrollAreaProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridScrollArea.GridScrollArea, (0, _extends2.default)({
140
136
  scrollDirection: "up"
141
- }, getScrollAreaProps())), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridScrollArea.GridScrollArea, (0, _extends2.default)({
137
+ }, scrollAreaProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridScrollArea.GridScrollArea, (0, _extends2.default)({
142
138
  scrollDirection: "down"
143
- }, getScrollAreaProps())), /*#__PURE__*/(0, _jsxRuntime.jsx)(Scroller, (0, _extends2.default)({
139
+ }, scrollAreaProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(Scroller, (0, _extends2.default)({
144
140
  className: classes.scroller
145
- }, getScrollerProps(), {
141
+ }, scrollerProps, {
146
142
  ownerState: ownerState,
147
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridVirtualScrollerContent.GridVirtualScrollerContent, (0, _extends2.default)({}, getScrollerContentProps(), {
148
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(Viewport, (0, _extends2.default)({}, getViewportProps(), {
143
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridVirtualScrollerContent.GridVirtualScrollerContent, (0, _extends2.default)({}, scrollerContentProps, {
144
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(Viewport, (0, _extends2.default)({}, viewportProps, {
149
145
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_GridTopContainer.GridTopContainer, (0, _extends2.default)({}, containerVerticalProps, {
150
146
  children: [!rootProps.listView && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridHeaders.GridHeaders, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.pinnedRows, {
151
147
  position: "top"
@@ -156,11 +152,11 @@ function GridVirtualScroller(props) {
156
152
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Overlay, (0, _extends2.default)({}, rootProps.slotProps?.[overlayType]))
157
153
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_GridVirtualScrollerRenderZone.GridVirtualScrollerRenderZone, (0, _extends2.default)({
158
154
  role: "rowgroup"
159
- }, getPositionerProps(), {
155
+ }, positionerProps, {
160
156
  children: [rows, /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.detailPanels, {})]
161
157
  })), hasContentFiller && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", (0, _extends2.default)({
162
158
  className: _gridClasses.gridClasses.contentFiller
163
- }, getContentProps())), hasBottomFiller && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridVirtualScrollerFiller.GridVirtualScrollerFiller, {
159
+ }, contentProps)), hasBottomFiller && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridVirtualScrollerFiller.GridVirtualScrollerFiller, {
164
160
  rowsLength: rows.length
165
161
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.bottomContainer, (0, _extends2.default)({}, containerVerticalProps, {
166
162
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.pinnedRows, {
@@ -174,13 +170,13 @@ function GridVirtualScroller(props) {
174
170
  position: "horizontal"
175
171
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridVirtualScrollbar.GridVirtualScrollbar, (0, _extends2.default)({
176
172
  position: "horizontal"
177
- }, getScrollbarHorizontalProps()))]
173
+ }, scrollbarHorizontalProps))]
178
174
  }), hasScrollY && /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
179
175
  children: [rootProps.pinnedRowsSectionSeparator?.endsWith('shadow') && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridScrollShadows.GridScrollShadows, {
180
176
  position: "vertical"
181
177
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridVirtualScrollbar.GridVirtualScrollbar, (0, _extends2.default)({
182
178
  position: "vertical"
183
- }, getScrollbarVerticalProps()))]
179
+ }, scrollbarVerticalProps))]
184
180
  }), hasScrollX && hasScrollY && /*#__PURE__*/(0, _jsxRuntime.jsx)(_GridVirtualScrollbar.ScrollbarCorner, {
185
181
  "aria-hidden": "true"
186
182
  }), props.children]