@mui/x-data-grid 9.0.0-alpha.2 → 9.0.0-alpha.4

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,250 @@
1
1
  # Changelog
2
2
 
3
+ ## 9.0.0-alpha.4
4
+
5
+ _Mar 19, 2026_
6
+
7
+ We'd like to extend a big thank you to the 12 contributors who made this release possible. Here are some highlights ✨:
8
+
9
+ - 🐞 Bugfixes and internal improvements
10
+
11
+ The following team members contributed to this release:
12
+ @aemartos, @alexfauquette, @bernardobelchior, @Janpot, @JCQuintas, @LukasTy, @mapache-salvaje, @michelengelen, @noraleonte, @rita-codes, @sai6855, @siriwatknp
13
+
14
+ ### Data Grid
15
+
16
+ #### `@mui/x-data-grid@9.0.0-alpha.4`
17
+
18
+ - [DataGrid] Mark charts integration as stable (#21764) @JCQuintas
19
+ - [DataGrid] Move `elementOverrides` to constants and remove duplicates (#21618) @sai6855
20
+ - [DataGrid] Migrate from deprecated Material UI APIs (#21682) @siriwatknp
21
+
22
+ #### `@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')
23
+
24
+ Same changes as in `@mui/x-data-grid@9.0.0-alpha.4`.
25
+
26
+ #### `@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')
27
+
28
+ Same changes as in `@mui/x-data-grid-pro@9.0.0-alpha.4`.
29
+
30
+ ### Date and Time Pickers
31
+
32
+ #### `@mui/x-date-pickers@9.0.0-alpha.4`
33
+
34
+ - [pickers] Avoid stealing focus on click away (#13434) @LukasTy
35
+ - [pickers] Promote `fieldRef` to stable and add `clearValue` method (#21655) @michelengelen
36
+
37
+ #### `@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')
38
+
39
+ Same changes as in `@mui/x-date-pickers@9.0.0-alpha.4`.
40
+
41
+ ### Charts
42
+
43
+ #### `@mui/x-charts@9.0.0-alpha.4`
44
+
45
+ - [charts] Add v9 chart series types and helper functions migration (#21009) @bernardobelchior
46
+ - [charts] Extract event listener to the layer container (#21751) @alexfauquette
47
+ - [charts] Fix WebGL print export canvas stretching (#21738) @JCQuintas
48
+ - [charts] Improve deprecation warnings (#21760) @alexfauquette
49
+ - [charts] Improve type safety in `identifierCleaner` (#21719) @bernardobelchior
50
+ - [charts] Make `preferStrictDomainInLineCharts` the default (#21744) @JCQuintas
51
+ - [charts] Move title and description to the layer container (#21757) @alexfauquette
52
+ - [charts] Refactor `FunnelChart` classes structure (#21652) @JCQuintas
53
+ - [charts] Refactor `Heatmap` classes structure (#21653) @JCQuintas
54
+ - [charts] Refactor `RadarChart` classes structure (#21650) @JCQuintas
55
+ - [charts] Refactor `SankeyChart` classes structure (#21654) @JCQuintas
56
+ - [charts] Refactor legend getters to use utility functions (#21628) @sai6855
57
+ - [charts] Remove deprecated `ChartContainer` and `ChartDataProvider` (#21777) @alexfauquette
58
+ - [charts] Remove deprecated `itemId` from `SeriesLegendItemContext` (#21788) @alexfauquette
59
+ - [charts] Remove deprecated `useMouseTracker()` (#21787) @alexfauquette
60
+ - [charts] Remove deprecated classes (#21775) @alexfauquette
61
+ - [charts] Remove deprecated props from PieArcLabel animation (#21789) @alexfauquette
62
+ - [charts] Remove get*UtilityClass from public exports (#21769) @JCQuintas
63
+ - [charts] Remove the deprecated `disableHover` property (#21785) @alexfauquette
64
+ - [charts] Remove the deprecated `message` prop (#21784) @alexfauquette
65
+ - [charts] Remove deprecated props about voronoi (#21796) @alexfauquette
66
+ - [charts] Remove deprecated pieArcClasses (#21795) @alexfauquette
67
+ - [charts] Rename `data-series-id` by `data-series` (#21761) @alexfauquette
68
+ - [charts] Rename `voronoiMaxRadius`/`disableVoronoi` to `hitAreaRadius`/`disableHitArea` (#21750) @bernardobelchior
69
+ - [charts] Update pt-PT locale (#21296) @bernardobelchior
70
+ - [charts] Use different shape per series by default (#21713) @alexfauquette
71
+ - [charts] Add className prop to Radar components (#21794) @JCQuintas
72
+ - [charts] Add className prop to shared chart components (#21792) @JCQuintas
73
+ - [charts] Add className prop to BarPlot (#21791) @JCQuintas
74
+ - [charts] Portal tooltip into ChartsLayerContainer (#21801) @JCQuintas
75
+
76
+ #### `@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')
77
+
78
+ Same changes as in `@mui/x-charts@9.0.0-alpha.4`, plus:
79
+
80
+ - [charts-pro] Allow `brush` interaction to accept `requiredKeys/pointerMode` (#21716) @JCQuintas
81
+ - [charts-pro] Remove deprecated `onAxisClick` for Heatmap (#21786) @alexfauquette
82
+
83
+ #### `@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')
84
+
85
+ Same changes as in `@mui/x-charts-pro@9.0.0-alpha.4`, plus:
86
+
87
+ - [charts-premium] Add candlestick chart (#21129) @bernardobelchior
88
+
89
+ ### Tree View
90
+
91
+ #### `@mui/x-tree-view@9.0.0-alpha.4`
92
+
93
+ Internal changes.
94
+
95
+ #### `@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')
96
+
97
+ Same changes as in `@mui/x-tree-view@9.0.0-alpha.4`.
98
+
99
+ ### Codemod
100
+
101
+ #### `@mui/x-codemod@9.0.0-alpha.4`
102
+
103
+ Internal changes.
104
+
105
+ ### Docs
106
+
107
+ - [docs-infra] Exclude `ServerSideLazyLoadingRevalidation` from argos (#21734) @sai6855
108
+ - [docs] Update charts v9 migration guide to include premium package (#21743) @bernardobelchior
109
+ - [docs] Update v9 migration guides to install next tag (#21741) @bernardobelchior
110
+ - [docs] Revise the Pie chart docs (#21565) @mapache-salvaje
111
+ - [docs] Revise the Bar Chart docs (#21482) @mapache-salvaje
112
+ - [docs] Removed a `console.log` from an aggregation demo (#21698) @michelengelen
113
+
114
+ ### Core
115
+
116
+ - [code-infra] Add pkg-pr-new as dev dependency (#21754) @Janpot
117
+ - [code-infra] Prevent `combiner` to have default parameters (#21707) @JCQuintas
118
+ - [code-infra] Remove CI coverage collection and upload to Codecov (#21671) @Janpot
119
+ - [internal] Remove @bernardobelchior from Charts CODEOWNERS (#21776) @Copilot
120
+
121
+ ### Miscellaneous
122
+
123
+ - [x-license] Fix process.env.MUI_VERSION not being replaced during build (#21727) @aemartos
124
+ - [x-license] Add new watermark license status message (#21720) @aemartos
125
+
126
+ ## 9.0.0-alpha.3
127
+
128
+ _Mar 12, 2026_
129
+
130
+ We'd like to extend a big thank you to the 13 contributors who made this release possible. Here are some highlights ✨:
131
+
132
+ - 🐞 Bugfixes and internal improvements
133
+
134
+ The following team members contributed to this release:
135
+ @aemartos, @alexfauquette, @bernardobelchior, @brijeshb42, @cherniavskii, @flaviendelangle, @Janpot, @JCQuintas, @MBilalShafi, @michelengelen, @rita-codes, @sai6855, @siriwatknp
136
+
137
+ ### Data Grid
138
+
139
+ #### `@mui/x-data-grid@9.0.0-alpha.3`
140
+
141
+ - [DataGrid] Fix crash when `rows` and `rowModesModel` are updated simultaneously (#21265) @michelengelen
142
+ - [DataGrid] Add missing `resizablePanelHandle` classes to `gridClasses` object (#21538) @sai6855
143
+ - [DataGrid] Refactor `headerAlign` style calls (#21541) @sai6855
144
+
145
+ #### `@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')
146
+
147
+ Same changes as in `@mui/x-data-grid@9.0.0-alpha.3`, plus:
148
+
149
+ - [DataGridPro] Add `role="presentation"` to detail panel toggle header content (#21634) @michelengelen
150
+ - [DataGridPro] Fix sorting not reflected in nested server-side data (#21619) @MBilalShafi
151
+
152
+ #### `@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')
153
+
154
+ Same changes as in `@mui/x-data-grid-pro@9.0.0-alpha.3`.
155
+
156
+ ### Date and Time Pickers
157
+
158
+ #### `@mui/x-date-pickers@9.0.0-alpha.3`
159
+
160
+ - [pickers] Refactor `DateRangePickerDay` overrides to use a centralized `elementOverrides` object (#21426) @sai6855
161
+ - [pickers] Migrate from deprecated props for `PickersModalDialog` (#21702) @siriwatknp
162
+
163
+ #### `@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')
164
+
165
+ Same changes as in `@mui/x-date-pickers@9.0.0-alpha.3`.
166
+
167
+ ### Charts
168
+
169
+ #### `@mui/x-charts@9.0.0-alpha.3`
170
+
171
+ - [charts] Differentiate Line Plot roots classes (#21679) @JCQuintas
172
+ - [charts] Enable keyboard navigation by default (#21675) @alexfauquette
173
+ - [charts] Fix keyboard tooltip radar (#21667) @alexfauquette
174
+ - [charts] Fix selector default parameter (#21638) @JCQuintas
175
+ - [charts] Fix tooltip blink between node and pointer anchor (#21611) @alexfauquette
176
+ - [charts] Let tooltip and legend reflect the line shape (#21475) @alexfauquette
177
+ - [charts] Refactor `BarChart` classes structure (#21601) @JCQuintas
178
+ - [charts] Refactor `LineChart` classes structure (#21648) @JCQuintas
179
+ - [charts] Refactor `ScatterChart` classes structure (#21651) @JCQuintas
180
+ - [charts] Refactor `PieChart` classes structure (#21649) @JCQuintas
181
+ - [charts] Remove batch rendering checks in highlight selectors (#21646) @bernardobelchior
182
+ - [charts] Standardize generic arg names to `SeriesType` (#21694) @alexfauquette
183
+ - [charts] Simplify highlight hooks return types (#21695) @alexfauquette
184
+
185
+ #### `@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')
186
+
187
+ Same changes as in `@mui/x-charts@9.0.0-alpha.3`, plus:
188
+
189
+ - [charts-pro] Fix heatmap style override from `arc` to `cell` (#21693) @Copilot
190
+ - [charts-pro] Fix image export truncated when page is zoomed out (#21685) @bernardobelchior
191
+ - [charts-pro] Speed-up heatmap cell search with an index lookup (#21130) @alexfauquette
192
+ - [charts-pro] Fix heatmap highlight not working (#21710) @Copilot
193
+
194
+ #### `@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')
195
+
196
+ Same changes as in `@mui/x-charts-pro@9.0.0-alpha.3`, plus:
197
+
198
+ - [charts-premium] Re-enable WebGL tests (#21708) @bernardobelchior
199
+
200
+ ### Tree View
201
+
202
+ #### Breaking changes
203
+
204
+ - Remove `TreeViewBaseItem` type (use `TreeViewDefaultItemModelProperties` or a custom interface)
205
+ - Remove `useTreeViewApiRef` hook (use `useRichTreeViewApiRef`, `useSimpleTreeViewApiRef`, or `useRichTreeViewProApiRef`)
206
+ - Remove `status` from content slot props returned by `getContentProps()` (use `data-*` attributes; `status` on `useTreeItem` return value is unchanged)
207
+ - Remove deprecated CSS state classes from `treeItemClasses`: `expanded`, `selected`, `focused`, `disabled`, `editable`, `editing` (use `[data-expanded]`, `[data-selected]`, etc.)
208
+ - The `<RichTreeViewPro />` component has now virtualization enabled by default.
209
+ - The items used inside the `<RichTreeViewPro />` now have a default height of `32px`.
210
+ - The events of the `<RichTreeViewPro />` are now rendered as a flat list instead of a nested tree.
211
+
212
+ #### `@mui/x-tree-view@9.0.0-alpha.3`
213
+
214
+ - [tree view] Remove deprecated APIs (#21591) @flaviendelangle
215
+ - [tree view] Fix collapsed children not selected with `selectionPropagation.descendants` in `SimpleTreeView` (#21253) @flaviendelangle
216
+
217
+ #### `@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')
218
+
219
+ Same changes as in `@mui/x-tree-view@9.0.0-alpha.3`, plus:
220
+
221
+ - [RichTreeViewPro] Make the virtualization opt-out and port the layout doc from the data grid (#21461) @flaviendelangle
222
+
223
+ ### Codemod
224
+
225
+ #### `@mui/x-codemod@9.0.0-alpha.3`
226
+
227
+ Internal changes.
228
+
229
+ ### Docs
230
+
231
+ - [docs] Fix `AssistantWithDataSource` demo crashing (#21555) @sai6855
232
+ - [docs] Remove `Preview` pill from Sankey (#21623) @bernardobelchior
233
+ - [docs] Migrate internal Material UI deprecated APIs (#21680) @siriwatknp
234
+ - [docs] Remove `New` flag on Tree View and Date and Time Pickers features released before v9 alpha (#21585) @flaviendelangle
235
+
236
+ ### Core
237
+
238
+ - [code-infra] Remove checkout step (#21688) @Janpot
239
+ - [code-infra] Fix contributor generation in changelog (#21718) @brijeshb42
240
+ - [docs-infra] Do not point to non-existent v8 subdomain (#21640) @cherniavskii
241
+
242
+ ### Miscellaneous
243
+
244
+ - [test] Add missing tests for forwarding props to filter operators in DataGrid (#21441) @siriwatknp
245
+ - [x-license] Export additional license types and constants (#21625) @aemartos
246
+ - [x-license] Refactor license verification to accept package info object and add v9 version gating (#21690) @aemartos
247
+
3
248
  ## 9.0.0-alpha.2
4
249
 
5
250
  _Mar 5, 2026_
@@ -92,7 +337,7 @@ Internal changes.
92
337
 
93
338
  - [docs] Add backticks and parentheses to all functions and hooks (DX-173) (#21496) @mapache-salvaje
94
339
  - [docs] Remove mentions of `mySvgRef` (#21559) @bernardobelchior
95
- - [docs] Update Roadmap section in the docs (#20892) @alelthomas
340
+ - [docs] Update Roadmap section in the docs (#20892) @alelthomas
96
341
  - [docs] Add tutorial and example app for aggregation with row grouping (DX-162) (#21102) @mapache-salvaje
97
342
  - [docs] Fix missing codemod docs (#21604) @JCQuintas
98
343
 
@@ -11,6 +11,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
11
11
  var React = _interopRequireWildcard(require("react"));
12
12
  var _useId = _interopRequireDefault(require("@mui/utils/useId"));
13
13
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
14
+ var _capitalize = _interopRequireDefault(require("@mui/utils/capitalize"));
14
15
  var _RtlProvider = require("@mui/system/RtlProvider");
15
16
  var _doesSupportPreventScroll = require("../../utils/doesSupportPreventScroll");
16
17
  var _gridClasses = require("../../constants/gridClasses");
@@ -35,7 +36,7 @@ const useUtilityClasses = ownerState => {
35
36
  pinnedPosition
36
37
  } = ownerState;
37
38
  const slots = {
38
- root: ['columnHeader', headerAlign === 'left' && 'columnHeader--alignLeft', headerAlign === 'center' && 'columnHeader--alignCenter', headerAlign === 'right' && 'columnHeader--alignRight', isDragging && 'columnHeader--moving', showRightBorder && 'columnHeader--withRightBorder', showLeftBorder && 'columnHeader--withLeftBorder', 'withBorderColor', groupId === null ? 'columnHeader--emptyGroup' : 'columnHeader--filledGroup', pinnedPosition === _constants.PinnedColumnPosition.LEFT && 'columnHeader--pinnedLeft', pinnedPosition === _constants.PinnedColumnPosition.RIGHT && 'columnHeader--pinnedRight', isLastColumn && 'columnHeader--last'],
39
+ root: ['columnHeader', headerAlign && `columnHeader--align${(0, _capitalize.default)(headerAlign)}`, isDragging && 'columnHeader--moving', showRightBorder && 'columnHeader--withRightBorder', showLeftBorder && 'columnHeader--withLeftBorder', 'withBorderColor', groupId === null ? 'columnHeader--emptyGroup' : 'columnHeader--filledGroup', pinnedPosition === _constants.PinnedColumnPosition.LEFT && 'columnHeader--pinnedLeft', pinnedPosition === _constants.PinnedColumnPosition.RIGHT && 'columnHeader--pinnedRight', isLastColumn && 'columnHeader--last'],
39
40
  draggableContainer: ['columnHeaderDraggableContainer'],
40
41
  titleContainer: ['columnHeaderTitleContainer', 'withBorderColor'],
41
42
  titleContainerContent: ['columnHeaderTitleContainerContent']
@@ -4,6 +4,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import * as React from 'react';
5
5
  import useId from '@mui/utils/useId';
6
6
  import composeClasses from '@mui/utils/composeClasses';
7
+ import capitalize from '@mui/utils/capitalize';
7
8
  import { useRtl } from '@mui/system/RtlProvider';
8
9
  import { doesSupportPreventScroll } from "../../utils/doesSupportPreventScroll.mjs";
9
10
  import { getDataGridUtilityClass } from "../../constants/gridClasses.mjs";
@@ -28,7 +29,7 @@ const useUtilityClasses = ownerState => {
28
29
  pinnedPosition
29
30
  } = ownerState;
30
31
  const slots = {
31
- root: ['columnHeader', headerAlign === 'left' && 'columnHeader--alignLeft', headerAlign === 'center' && 'columnHeader--alignCenter', headerAlign === 'right' && 'columnHeader--alignRight', isDragging && 'columnHeader--moving', showRightBorder && 'columnHeader--withRightBorder', showLeftBorder && 'columnHeader--withLeftBorder', 'withBorderColor', groupId === null ? 'columnHeader--emptyGroup' : 'columnHeader--filledGroup', pinnedPosition === PinnedColumnPosition.LEFT && 'columnHeader--pinnedLeft', pinnedPosition === PinnedColumnPosition.RIGHT && 'columnHeader--pinnedRight', isLastColumn && 'columnHeader--last'],
32
+ root: ['columnHeader', headerAlign && `columnHeader--align${capitalize(headerAlign)}`, isDragging && 'columnHeader--moving', showRightBorder && 'columnHeader--withRightBorder', showLeftBorder && 'columnHeader--withLeftBorder', 'withBorderColor', groupId === null ? 'columnHeader--emptyGroup' : 'columnHeader--filledGroup', pinnedPosition === PinnedColumnPosition.LEFT && 'columnHeader--pinnedLeft', pinnedPosition === PinnedColumnPosition.RIGHT && 'columnHeader--pinnedRight', isLastColumn && 'columnHeader--last'],
32
33
  draggableContainer: ['columnHeaderDraggableContainer'],
33
34
  titleContainer: ['columnHeaderTitleContainer', 'withBorderColor'],
34
35
  titleContainerContent: ['columnHeaderTitleContainerContent']
@@ -12,6 +12,7 @@ var React = _interopRequireWildcard(require("react"));
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
13
  var _clsx = _interopRequireDefault(require("clsx"));
14
14
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
15
+ var _capitalize = _interopRequireDefault(require("@mui/utils/capitalize"));
15
16
  var _useId = _interopRequireDefault(require("@mui/utils/useId"));
16
17
  var _fastMemo = require("@mui/x-internals/fastMemo");
17
18
  var _RtlProvider = require("@mui/system/RtlProvider");
@@ -48,7 +49,7 @@ const useUtilityClasses = ownerState => {
48
49
  // todo refactor to a prop on col isNumeric or ?? ie: coltype===price wont work
49
50
  const isColumnNumeric = colDef.type === 'number';
50
51
  const slots = {
51
- root: ['columnHeader', colDef.headerAlign === 'left' && 'columnHeader--alignLeft', colDef.headerAlign === 'center' && 'columnHeader--alignCenter', colDef.headerAlign === 'right' && 'columnHeader--alignRight', isColumnSortable && 'columnHeader--sortable', isDragging && 'columnHeader--moving', isColumnSorted && 'columnHeader--sorted', isColumnFiltered && 'columnHeader--filtered', isColumnNumeric && 'columnHeader--numeric', 'withBorderColor', showRightBorder && 'columnHeader--withRightBorder', showLeftBorder && 'columnHeader--withLeftBorder', pinnedPosition === _constants.PinnedColumnPosition.LEFT && 'columnHeader--pinnedLeft', pinnedPosition === _constants.PinnedColumnPosition.RIGHT && 'columnHeader--pinnedRight',
52
+ root: ['columnHeader', colDef.headerAlign && `columnHeader--align${(0, _capitalize.default)(colDef.headerAlign)}`, isColumnSortable && 'columnHeader--sortable', isDragging && 'columnHeader--moving', isColumnSorted && 'columnHeader--sorted', isColumnFiltered && 'columnHeader--filtered', isColumnNumeric && 'columnHeader--numeric', 'withBorderColor', showRightBorder && 'columnHeader--withRightBorder', showLeftBorder && 'columnHeader--withLeftBorder', pinnedPosition === _constants.PinnedColumnPosition.LEFT && 'columnHeader--pinnedLeft', pinnedPosition === _constants.PinnedColumnPosition.RIGHT && 'columnHeader--pinnedRight',
52
53
  // TODO: Remove classes below and restore `:has` selectors when they are supported in jsdom
53
54
  // See https://github.com/mui/mui-x/pull/14559
54
55
  isSiblingFocused && 'columnHeader--siblingFocused'],
@@ -5,6 +5,7 @@ import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
7
  import composeClasses from '@mui/utils/composeClasses';
8
+ import capitalize from '@mui/utils/capitalize';
8
9
  import useId from '@mui/utils/useId';
9
10
  import { fastMemo } from '@mui/x-internals/fastMemo';
10
11
  import { useRtl } from '@mui/system/RtlProvider';
@@ -41,7 +42,7 @@ const useUtilityClasses = ownerState => {
41
42
  // todo refactor to a prop on col isNumeric or ?? ie: coltype===price wont work
42
43
  const isColumnNumeric = colDef.type === 'number';
43
44
  const slots = {
44
- root: ['columnHeader', colDef.headerAlign === 'left' && 'columnHeader--alignLeft', colDef.headerAlign === 'center' && 'columnHeader--alignCenter', colDef.headerAlign === 'right' && 'columnHeader--alignRight', isColumnSortable && 'columnHeader--sortable', isDragging && 'columnHeader--moving', isColumnSorted && 'columnHeader--sorted', isColumnFiltered && 'columnHeader--filtered', isColumnNumeric && 'columnHeader--numeric', 'withBorderColor', showRightBorder && 'columnHeader--withRightBorder', showLeftBorder && 'columnHeader--withLeftBorder', pinnedPosition === PinnedColumnPosition.LEFT && 'columnHeader--pinnedLeft', pinnedPosition === PinnedColumnPosition.RIGHT && 'columnHeader--pinnedRight',
45
+ root: ['columnHeader', colDef.headerAlign && `columnHeader--align${capitalize(colDef.headerAlign)}`, isColumnSortable && 'columnHeader--sortable', isDragging && 'columnHeader--moving', isColumnSorted && 'columnHeader--sorted', isColumnFiltered && 'columnHeader--filtered', isColumnNumeric && 'columnHeader--numeric', 'withBorderColor', showRightBorder && 'columnHeader--withRightBorder', showLeftBorder && 'columnHeader--withLeftBorder', pinnedPosition === PinnedColumnPosition.LEFT && 'columnHeader--pinnedLeft', pinnedPosition === PinnedColumnPosition.RIGHT && 'columnHeader--pinnedRight',
45
46
  // TODO: Remove classes below and restore `:has` selectors when they are supported in jsdom
46
47
  // See https://github.com/mui/mui-x/pull/14559
47
48
  isSiblingFocused && 'columnHeader--siblingFocused'],
@@ -22,17 +22,13 @@ const separatorIconDragStyles = {
22
22
  // https://github.com/emotion-js/emotion/issues/1105#issuecomment-1722524968
23
23
  const ignoreSsrWarning = '/* emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason */';
24
24
  const shouldShowBorderTopRightRadiusSelector = apiRef => !apiRef.current.state.dimensions.isReady ? apiRef.current.state.dimensions.scrollbarSize === 0 : apiRef.current.state.dimensions.hasScrollX && (!apiRef.current.state.dimensions.hasScrollY || apiRef.current.state.dimensions.scrollbarSize === 0);
25
- const elementOverrides = {
26
- root: ['autoHeight', 'autosizing', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'root--disableUserSelection', 'root--noToolbar', 'withVerticalBorder'],
27
- children: ['actionsCell', 'booleanCell', 'cell', 'cell--editable', 'cell--editing', 'cell--flex', 'cell--pinnedLeft', 'cell--pinnedRight', 'cell--rangeBottom', 'cell--rangeLeft', 'cell--rangeRight', 'cell--rangeTop', 'cell--selectionMode', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--withLeftBorder', 'cell--withRightBorder', 'cellCheckbox', 'cellEmpty', 'cellOffsetLeft', 'cellSkeleton', 'checkboxInput', 'columnHeader', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--emptyGroup', 'columnHeader--filledGroup', 'columnHeader--filtered', 'columnHeader--last', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--pinnedLeft', 'columnHeader--pinnedRight', 'columnHeader--siblingFocused', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--withLeftBorder', 'columnHeader--withRightBorder', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnSeparator', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'container--bottom', 'container--top', 'detailPanelToggleCell', 'detailPanelToggleCell--expanded', 'editBooleanCell', 'filterIcon', 'filler--borderBottom', 'filler--pinnedLeft', 'filler--pinnedRight', 'groupingCriteriaCell', 'groupingCriteriaCellLoadingContainer', 'groupingCriteriaCellToggle', 'headerFilterRow', 'iconSeparator', 'menuIcon', 'menuIconButton', 'menuList', 'menuOpen', 'overlayWrapperInner', 'pinnedRows', 'pinnedRows--bottom', 'pinnedRows--top', 'row', 'row--borderBottom', 'row--detailPanelExpanded', 'row--dragging', 'row--dynamicHeight', 'row--editable', 'row--editing', 'row--firstVisible', 'row--lastVisible', 'rowReorderCell', 'rowReorderCell--draggable', 'rowReorderCellContainer', 'rowReorderCellPlaceholder', 'rowSkeleton', 'scrollbar', 'scrollbar--horizontal', 'scrollbar--vertical', 'scrollbarFiller', 'scrollbarFiller--pinnedRight', 'sortIcon', 'treeDataGroupingCell', 'treeDataGroupingCellLoadingContainer', 'treeDataGroupingCellToggle', 'withBorderColor', 'row--beingDragged']
28
- };
29
25
  const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
30
26
  name: 'MuiDataGrid',
31
27
  slot: 'Root',
32
28
  overridesResolver: (props, styles) => {
33
29
  // Root overrides
34
30
  const overrides = [styles.root];
35
- elementOverrides.root.forEach(key => {
31
+ _gridClasses.gridClassesOverrides.root.forEach(key => {
36
32
  overrides.push({
37
33
  [`&.${_gridClasses.gridClasses[key]}`]: styles[key]
38
34
  });
@@ -41,7 +37,7 @@ const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
41
37
  // Child element overrides
42
38
  // - Only declare overrides here for class names that are not applied to `styled` components.
43
39
  // - For `styled` components, declare overrides in the component itself.
44
- elementOverrides.children.forEach(key => {
40
+ _gridClasses.gridClassesOverrides.children.forEach(key => {
45
41
  overrides.push({
46
42
  [`& .${_gridClasses.gridClasses[key]}`]: styles[key]
47
43
  });
@@ -1,5 +1,5 @@
1
1
  import { styled } from '@mui/material/styles';
2
- import { gridClasses as c } from "../../constants/gridClasses.mjs";
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";
5
5
  import { useGridPrivateApiContext } from "../../hooks/utils/useGridPrivateApiContext.mjs";
@@ -16,17 +16,13 @@ const separatorIconDragStyles = {
16
16
  // https://github.com/emotion-js/emotion/issues/1105#issuecomment-1722524968
17
17
  const ignoreSsrWarning = '/* emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason */';
18
18
  const shouldShowBorderTopRightRadiusSelector = apiRef => !apiRef.current.state.dimensions.isReady ? apiRef.current.state.dimensions.scrollbarSize === 0 : apiRef.current.state.dimensions.hasScrollX && (!apiRef.current.state.dimensions.hasScrollY || apiRef.current.state.dimensions.scrollbarSize === 0);
19
- const elementOverrides = {
20
- root: ['autoHeight', 'autosizing', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'root--disableUserSelection', 'root--noToolbar', 'withVerticalBorder'],
21
- children: ['actionsCell', 'booleanCell', 'cell', 'cell--editable', 'cell--editing', 'cell--flex', 'cell--pinnedLeft', 'cell--pinnedRight', 'cell--rangeBottom', 'cell--rangeLeft', 'cell--rangeRight', 'cell--rangeTop', 'cell--selectionMode', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--withLeftBorder', 'cell--withRightBorder', 'cellCheckbox', 'cellEmpty', 'cellOffsetLeft', 'cellSkeleton', 'checkboxInput', 'columnHeader', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--emptyGroup', 'columnHeader--filledGroup', 'columnHeader--filtered', 'columnHeader--last', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--pinnedLeft', 'columnHeader--pinnedRight', 'columnHeader--siblingFocused', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--withLeftBorder', 'columnHeader--withRightBorder', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnSeparator', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'container--bottom', 'container--top', 'detailPanelToggleCell', 'detailPanelToggleCell--expanded', 'editBooleanCell', 'filterIcon', 'filler--borderBottom', 'filler--pinnedLeft', 'filler--pinnedRight', 'groupingCriteriaCell', 'groupingCriteriaCellLoadingContainer', 'groupingCriteriaCellToggle', 'headerFilterRow', 'iconSeparator', 'menuIcon', 'menuIconButton', 'menuList', 'menuOpen', 'overlayWrapperInner', 'pinnedRows', 'pinnedRows--bottom', 'pinnedRows--top', 'row', 'row--borderBottom', 'row--detailPanelExpanded', 'row--dragging', 'row--dynamicHeight', 'row--editable', 'row--editing', 'row--firstVisible', 'row--lastVisible', 'rowReorderCell', 'rowReorderCell--draggable', 'rowReorderCellContainer', 'rowReorderCellPlaceholder', 'rowSkeleton', 'scrollbar', 'scrollbar--horizontal', 'scrollbar--vertical', 'scrollbarFiller', 'scrollbarFiller--pinnedRight', 'sortIcon', 'treeDataGroupingCell', 'treeDataGroupingCellLoadingContainer', 'treeDataGroupingCellToggle', 'withBorderColor', 'row--beingDragged']
22
- };
23
19
  export const GridRootStyles = styled('div', {
24
20
  name: 'MuiDataGrid',
25
21
  slot: 'Root',
26
22
  overridesResolver: (props, styles) => {
27
23
  // Root overrides
28
24
  const overrides = [styles.root];
29
- elementOverrides.root.forEach(key => {
25
+ gridClassesOverrides.root.forEach(key => {
30
26
  overrides.push({
31
27
  [`&.${c[key]}`]: styles[key]
32
28
  });
@@ -35,7 +31,7 @@ export const GridRootStyles = styled('div', {
35
31
  // Child element overrides
36
32
  // - Only declare overrides here for class names that are not applied to `styled` components.
37
33
  // - For `styled` components, declare overrides in the component itself.
38
- elementOverrides.children.forEach(key => {
34
+ gridClassesOverrides.children.forEach(key => {
39
35
  overrides.push({
40
36
  [`& .${c[key]}`]: styles[key]
41
37
  });
@@ -960,4 +960,20 @@ export interface GridClasses {
960
960
  }
961
961
  export type GridClassKey = keyof GridClasses;
962
962
  export declare function getDataGridUtilityClass(slot: string): string;
963
+ /**
964
+ * Class groups for the MuiDataGrid component used in GridRootStyles overridesResolver.
965
+ *
966
+ * Splits classes into two groups to support style overrides:
967
+ * - `root`: classes applied directly to the root element (use `&.className` selector)
968
+ * - `children`: classes applied to child elements (use `& .className` selector)
969
+ *
970
+ * These are spread into the gridClasses utility object and used for CSS-in-JS overrides.
971
+ *
972
+ * Only include class names here that are NOT applied via `styled` components.
973
+ * For `styled` components, declare overrides directly in the component definition.
974
+ */
975
+ export declare const gridClassesOverrides: {
976
+ readonly root: ["autoHeight", "autosizing", "root--densityStandard", "root--densityComfortable", "root--densityCompact", "root--disableUserSelection", "root--noToolbar", "withVerticalBorder"];
977
+ readonly children: ["actionsCell", "booleanCell", "cell", "cell--editable", "cell--editing", "cell--flex", "cell--pinnedLeft", "cell--pinnedRight", "cell--rangeBottom", "cell--rangeLeft", "cell--rangeRight", "cell--rangeTop", "cell--selectionMode", "cell--textCenter", "cell--textLeft", "cell--textRight", "cell--withLeftBorder", "cell--withRightBorder", "cellCheckbox", "cellEmpty", "cellOffsetLeft", "cellSkeleton", "checkboxInput", "columnHeader", "columnHeader--alignCenter", "columnHeader--alignLeft", "columnHeader--alignRight", "columnHeader--dragging", "columnHeader--emptyGroup", "columnHeader--filledGroup", "columnHeader--filtered", "columnHeader--last", "columnHeader--moving", "columnHeader--numeric", "columnHeader--pinnedLeft", "columnHeader--pinnedRight", "columnHeader--siblingFocused", "columnHeader--sortable", "columnHeader--sorted", "columnHeader--withLeftBorder", "columnHeader--withRightBorder", "columnHeaderCheckbox", "columnHeaderDraggableContainer", "columnHeaderTitleContainer", "columnHeaderTitleContainerContent", "columnSeparator", "columnSeparator--resizable", "columnSeparator--resizing", "columnSeparator--sideLeft", "columnSeparator--sideRight", "container--bottom", "container--top", "detailPanelToggleCell", "detailPanelToggleCell--expanded", "editBooleanCell", "filterIcon", "filler--borderBottom", "filler--pinnedLeft", "filler--pinnedRight", "groupingCriteriaCell", "groupingCriteriaCellLoadingContainer", "groupingCriteriaCellToggle", "headerFilterRow", "iconSeparator", "menuIcon", "menuIconButton", "menuList", "menuOpen", "overlayWrapperInner", "pinnedRows", "pinnedRows--bottom", "pinnedRows--top", "row", "row--borderBottom", "row--detailPanelExpanded", "row--dragging", "row--dynamicHeight", "row--editable", "row--editing", "row--firstVisible", "row--lastVisible", "rowReorderCell", "rowReorderCell--draggable", "rowReorderCellContainer", "rowReorderCellPlaceholder", "rowSkeleton", "scrollbar", "scrollbar--horizontal", "scrollbar--vertical", "scrollbarFiller", "scrollbarFiller--pinnedRight", "sortIcon", "treeDataGroupingCell", "treeDataGroupingCellLoadingContainer", "treeDataGroupingCellToggle", "withBorderColor", "row--beingDragged"];
978
+ };
963
979
  export declare const gridClasses: Record<keyof GridClasses, string>;
@@ -960,4 +960,20 @@ export interface GridClasses {
960
960
  }
961
961
  export type GridClassKey = keyof GridClasses;
962
962
  export declare function getDataGridUtilityClass(slot: string): string;
963
+ /**
964
+ * Class groups for the MuiDataGrid component used in GridRootStyles overridesResolver.
965
+ *
966
+ * Splits classes into two groups to support style overrides:
967
+ * - `root`: classes applied directly to the root element (use `&.className` selector)
968
+ * - `children`: classes applied to child elements (use `& .className` selector)
969
+ *
970
+ * These are spread into the gridClasses utility object and used for CSS-in-JS overrides.
971
+ *
972
+ * Only include class names here that are NOT applied via `styled` components.
973
+ * For `styled` components, declare overrides directly in the component definition.
974
+ */
975
+ export declare const gridClassesOverrides: {
976
+ readonly root: ["autoHeight", "autosizing", "root--densityStandard", "root--densityComfortable", "root--densityCompact", "root--disableUserSelection", "root--noToolbar", "withVerticalBorder"];
977
+ readonly children: ["actionsCell", "booleanCell", "cell", "cell--editable", "cell--editing", "cell--flex", "cell--pinnedLeft", "cell--pinnedRight", "cell--rangeBottom", "cell--rangeLeft", "cell--rangeRight", "cell--rangeTop", "cell--selectionMode", "cell--textCenter", "cell--textLeft", "cell--textRight", "cell--withLeftBorder", "cell--withRightBorder", "cellCheckbox", "cellEmpty", "cellOffsetLeft", "cellSkeleton", "checkboxInput", "columnHeader", "columnHeader--alignCenter", "columnHeader--alignLeft", "columnHeader--alignRight", "columnHeader--dragging", "columnHeader--emptyGroup", "columnHeader--filledGroup", "columnHeader--filtered", "columnHeader--last", "columnHeader--moving", "columnHeader--numeric", "columnHeader--pinnedLeft", "columnHeader--pinnedRight", "columnHeader--siblingFocused", "columnHeader--sortable", "columnHeader--sorted", "columnHeader--withLeftBorder", "columnHeader--withRightBorder", "columnHeaderCheckbox", "columnHeaderDraggableContainer", "columnHeaderTitleContainer", "columnHeaderTitleContainerContent", "columnSeparator", "columnSeparator--resizable", "columnSeparator--resizing", "columnSeparator--sideLeft", "columnSeparator--sideRight", "container--bottom", "container--top", "detailPanelToggleCell", "detailPanelToggleCell--expanded", "editBooleanCell", "filterIcon", "filler--borderBottom", "filler--pinnedLeft", "filler--pinnedRight", "groupingCriteriaCell", "groupingCriteriaCellLoadingContainer", "groupingCriteriaCellToggle", "headerFilterRow", "iconSeparator", "menuIcon", "menuIconButton", "menuList", "menuOpen", "overlayWrapperInner", "pinnedRows", "pinnedRows--bottom", "pinnedRows--top", "row", "row--borderBottom", "row--detailPanelExpanded", "row--dragging", "row--dynamicHeight", "row--editable", "row--editing", "row--firstVisible", "row--lastVisible", "rowReorderCell", "rowReorderCell--draggable", "rowReorderCellContainer", "rowReorderCellPlaceholder", "rowSkeleton", "scrollbar", "scrollbar--horizontal", "scrollbar--vertical", "scrollbarFiller", "scrollbarFiller--pinnedRight", "sortIcon", "treeDataGroupingCell", "treeDataGroupingCellLoadingContainer", "treeDataGroupingCellToggle", "withBorderColor", "row--beingDragged"];
978
+ };
963
979
  export declare const gridClasses: Record<keyof GridClasses, string>;
@@ -5,12 +5,29 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.getDataGridUtilityClass = getDataGridUtilityClass;
8
- exports.gridClasses = void 0;
8
+ exports.gridClassesOverrides = exports.gridClasses = void 0;
9
9
  var _generateUtilityClass = _interopRequireDefault(require("@mui/utils/generateUtilityClass"));
10
10
  var _generateUtilityClasses = _interopRequireDefault(require("@mui/utils/generateUtilityClasses"));
11
11
  function getDataGridUtilityClass(slot) {
12
12
  return (0, _generateUtilityClass.default)('MuiDataGrid', slot);
13
13
  }
14
- const gridClasses = exports.gridClasses = (0, _generateUtilityClasses.default)('MuiDataGrid', ['aiAssistantPanel', 'aiAssistantPanelHeader', 'aiAssistantPanelTitleContainer', 'aiAssistantPanelTitle', 'aiAssistantPanelBody', 'aiAssistantPanelEmptyText', 'aiAssistantPanelFooter', 'aiAssistantPanelConversation', 'aiAssistantPanelConversationList', 'aiAssistantPanelConversationTitle', 'aiAssistantPanelSuggestions', 'aiAssistantPanelSuggestionsList', 'aiAssistantPanelSuggestionsItem', 'aiAssistantPanelSuggestionsLabel', 'actionsCell', 'aggregationColumnHeader', 'aggregationColumnHeader--alignLeft', 'aggregationColumnHeader--alignCenter', 'aggregationColumnHeader--alignRight', 'aggregationColumnHeaderLabel', 'aggregationRowOverlayWrapper', 'autoHeight', 'autosizing', 'mainContent', 'withSidePanel', 'booleanCell', 'cell--editable', 'cell--editing', 'cell--flex', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--rangeTop', 'cell--rangeBottom', 'cell--rangeLeft', 'cell--rangeRight', 'cell--pinnedLeft', 'cell--pinnedRight', 'cell--selectionMode', 'cell', 'cellCheckbox', 'cellEmpty', 'cellSkeleton', 'cellOffsetLeft', 'checkboxInput', 'collapsible', 'collapsibleTrigger', 'collapsibleIcon', 'collapsiblePanel', 'columnHeader', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader--pinnedLeft', 'columnHeader--pinnedRight', 'columnHeader--last', 'columnHeader--siblingFocused', 'columnHeader--filter', 'columnHeaderFilterInput', 'columnHeaderFilterOperatorLabel', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderTitle', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnHeader--filledGroup', 'columnHeader--emptyGroup', 'columnHeaders', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'columnSeparator', 'columnsManagement', 'columnsManagementRow', 'columnsManagementHeader', 'columnsManagementSearchInput', 'columnsManagementFooter', 'columnsManagementScrollArea', 'columnsManagementEmptyText', 'container--top', 'container--bottom', 'detailPanel', 'detailPanelToggleCell', 'detailPanelToggleCell--expanded', 'footerCell', 'panel', 'panelHeader', 'panelWrapper', 'panelContent', 'panelFooter', 'paper', 'editBooleanCell', 'editInputCell', 'longTextCell', 'longTextCellContent', 'longTextCellExpandButton', 'longTextCellCollapseButton', 'longTextCellPopup', 'longTextCellPopperContent', 'editLongTextCell', 'editLongTextCellValue', 'editLongTextCellPopup', 'editLongTextCellPopperContent', 'editLongTextCellTextarea', 'filler', 'filler--borderBottom', 'filler--pinnedLeft', 'filler--pinnedRight', 'filterForm', 'filterFormDeleteIcon', 'filterFormLogicOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'headerFilterRow', 'iconButtonContainer', 'iconSeparator', 'main', 'main--hasPinnedRight', 'main--hiddenContent', 'menu', 'menuIcon', 'menuIconButton', 'menuOpen', 'menuList', 'overlay', 'overlayWrapper', 'overlayWrapperInner', 'root', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'root--disableUserSelection', 'root--noToolbar', 'row', 'row--editable', 'row--editing', 'row--firstVisible', 'row--lastVisible',
15
- // TODO v9: Rename to `cell--dragging`
16
- 'row--dragging', 'row--beingDragged', 'row--dynamicHeight', 'row--detailPanelExpanded', 'row--borderBottom', 'rowReorderCellPlaceholder', 'rowCount', 'rowReorderCellContainer', 'rowReorderCell', 'rowReorderCell--draggable', 'rowReorderIcon', 'rowSkeleton', 'scrollArea--left', 'scrollArea--right', 'scrollArea--up', 'scrollArea--down', 'scrollArea', 'scrollbar', 'scrollbar--vertical', 'scrollbar--horizontal', 'scrollbarFiller', 'scrollbarFiller--pinnedRight', 'scrollShadow', 'scrollShadow--vertical', 'scrollShadow--horizontal', 'selectedRowCount', 'sortButton', 'sortIcon', 'shadowScrollArea', 'sidebar', 'sidebarHeader', 'toolbarContainer', 'toolbar', 'toolbarLabel', 'toolbarDivider', 'toolbarFilterList', 'toolbarQuickFilter', 'toolbarQuickFilterTrigger', 'toolbarQuickFilterControl', 'virtualScroller', 'virtualScroller--hasScrollX', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'withVerticalBorder', 'withBorderColor', 'cell--withRightBorder', 'cell--withLeftBorder', 'columnHeader--withRightBorder', 'columnHeader--withLeftBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'treeDataGroupingCellLoadingContainer', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'groupingCriteriaCellLoadingContainer', 'pinnedRows', 'pinnedRows--top', 'pinnedRows--bottom', 'pivotPanelAvailableFields', 'pivotPanelField', 'pivotPanelField--sorted', 'pivotPanelFieldActionContainer', 'pivotPanelFieldCheckbox', 'pivotPanelFieldDragIcon', 'pivotPanelFieldList', 'pivotPanelFieldName', 'pivotPanelHeader', 'pivotPanelPlaceholder', 'pivotPanelScrollArea', 'pivotPanelSearchContainer', 'pivotPanelSection', 'pivotPanelSectionTitle', 'pivotPanelSections', 'pivotPanelSwitch', 'pivotPanelSwitchLabel', 'prompt', 'promptContent', 'promptText', 'promptFeedback', 'promptChangeList', 'promptChangesToggle', 'promptChangesToggleIcon', 'promptIcon', 'promptIconContainer', 'promptError', 'promptAction']);
14
+
15
+ /**
16
+ * Class groups for the MuiDataGrid component used in GridRootStyles overridesResolver.
17
+ *
18
+ * Splits classes into two groups to support style overrides:
19
+ * - `root`: classes applied directly to the root element (use `&.className` selector)
20
+ * - `children`: classes applied to child elements (use `& .className` selector)
21
+ *
22
+ * These are spread into the gridClasses utility object and used for CSS-in-JS overrides.
23
+ *
24
+ * Only include class names here that are NOT applied via `styled` components.
25
+ * For `styled` components, declare overrides directly in the component definition.
26
+ */
27
+ const gridClassesOverrides = exports.gridClassesOverrides = {
28
+ root: ['autoHeight', 'autosizing', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'root--disableUserSelection', 'root--noToolbar', 'withVerticalBorder'],
29
+ children: ['actionsCell', 'booleanCell', 'cell', 'cell--editable', 'cell--editing', 'cell--flex', 'cell--pinnedLeft', 'cell--pinnedRight', 'cell--rangeBottom', 'cell--rangeLeft', 'cell--rangeRight', 'cell--rangeTop', 'cell--selectionMode', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--withLeftBorder', 'cell--withRightBorder', 'cellCheckbox', 'cellEmpty', 'cellOffsetLeft', 'cellSkeleton', 'checkboxInput', 'columnHeader', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--emptyGroup', 'columnHeader--filledGroup', 'columnHeader--filtered', 'columnHeader--last', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--pinnedLeft', 'columnHeader--pinnedRight', 'columnHeader--siblingFocused', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--withLeftBorder', 'columnHeader--withRightBorder', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnSeparator', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'container--bottom', 'container--top', 'detailPanelToggleCell', 'detailPanelToggleCell--expanded', 'editBooleanCell', 'filterIcon', 'filler--borderBottom', 'filler--pinnedLeft', 'filler--pinnedRight', 'groupingCriteriaCell', 'groupingCriteriaCellLoadingContainer', 'groupingCriteriaCellToggle', 'headerFilterRow', 'iconSeparator', 'menuIcon', 'menuIconButton', 'menuList', 'menuOpen', 'overlayWrapperInner', 'pinnedRows', 'pinnedRows--bottom', 'pinnedRows--top', 'row', 'row--borderBottom', 'row--detailPanelExpanded',
30
+ // TODO v9: Rename to `cell--dragging`
31
+ 'row--dragging', 'row--dynamicHeight', 'row--editable', 'row--editing', 'row--firstVisible', 'row--lastVisible', 'rowReorderCell', 'rowReorderCell--draggable', 'rowReorderCellContainer', 'rowReorderCellPlaceholder', 'rowSkeleton', 'scrollbar', 'scrollbar--horizontal', 'scrollbar--vertical', 'scrollbarFiller', 'scrollbarFiller--pinnedRight', 'sortIcon', 'treeDataGroupingCell', 'treeDataGroupingCellLoadingContainer', 'treeDataGroupingCellToggle', 'withBorderColor', 'row--beingDragged']
32
+ };
33
+ const gridClasses = exports.gridClasses = (0, _generateUtilityClasses.default)('MuiDataGrid', [...gridClassesOverrides.root, ...gridClassesOverrides.children, 'aiAssistantPanel', 'aiAssistantPanelHeader', 'aiAssistantPanelTitleContainer', 'aiAssistantPanelTitle', 'aiAssistantPanelBody', 'aiAssistantPanelEmptyText', 'aiAssistantPanelFooter', 'aiAssistantPanelConversation', 'aiAssistantPanelConversationList', 'aiAssistantPanelConversationTitle', 'aiAssistantPanelSuggestions', 'aiAssistantPanelSuggestionsList', 'aiAssistantPanelSuggestionsItem', 'aiAssistantPanelSuggestionsLabel', 'aggregationColumnHeader', 'aggregationColumnHeader--alignLeft', 'aggregationColumnHeader--alignCenter', 'aggregationColumnHeader--alignRight', 'aggregationColumnHeaderLabel', 'aggregationRowOverlayWrapper', 'mainContent', 'withSidePanel', 'collapsible', 'collapsibleTrigger', 'collapsibleIcon', 'collapsiblePanel', 'columnHeader--filter', 'columnHeaderFilterInput', 'columnHeaderFilterOperatorLabel', 'columnHeaderTitle', 'columnHeaders', 'columnsManagement', 'columnsManagementRow', 'columnsManagementHeader', 'columnsManagementSearchInput', 'columnsManagementFooter', 'columnsManagementScrollArea', 'columnsManagementEmptyText', 'detailPanel', 'footerCell', 'panel', 'panelHeader', 'panelWrapper', 'panelContent', 'panelFooter', 'paper', 'editInputCell', 'longTextCell', 'longTextCellContent', 'longTextCellExpandButton', 'longTextCellCollapseButton', 'longTextCellPopup', 'longTextCellPopperContent', 'editLongTextCell', 'editLongTextCellValue', 'editLongTextCellPopup', 'editLongTextCellPopperContent', 'editLongTextCellTextarea', 'filler', 'filterForm', 'filterFormDeleteIcon', 'filterFormLogicOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'footerContainer', 'iconButtonContainer', 'main', 'main--hasPinnedRight', 'main--hiddenContent', 'menu', 'overlay', 'overlayWrapper', 'root', 'rowCount', 'rowReorderIcon', 'scrollArea--left', 'scrollArea--right', 'scrollArea--up', 'scrollArea--down', 'scrollArea', 'scrollShadow', 'scrollShadow--vertical', 'scrollShadow--horizontal', 'selectedRowCount', 'sortButton', 'shadowScrollArea', 'sidebar', 'sidebarHeader', 'toolbarContainer', 'toolbar', 'toolbarLabel', 'toolbarDivider', 'toolbarFilterList', 'toolbarQuickFilter', 'toolbarQuickFilterTrigger', 'toolbarQuickFilterControl', 'virtualScroller', 'virtualScroller--hasScrollX', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'pivotPanelAvailableFields', 'pivotPanelField', 'pivotPanelField--sorted', 'pivotPanelFieldActionContainer', 'pivotPanelFieldCheckbox', 'pivotPanelFieldDragIcon', 'pivotPanelFieldList', 'pivotPanelFieldName', 'pivotPanelHeader', 'pivotPanelPlaceholder', 'pivotPanelScrollArea', 'pivotPanelSearchContainer', 'pivotPanelSection', 'pivotPanelSectionTitle', 'pivotPanelSections', 'pivotPanelSwitch', 'pivotPanelSwitchLabel', 'prompt', 'promptContent', 'promptText', 'promptFeedback', 'promptChangeList', 'promptChangesToggle', 'promptChangesToggleIcon', 'promptIcon', 'promptIconContainer', 'promptError', 'promptAction', 'resizablePanelHandle', 'resizablePanelHandle--horizontal', 'resizablePanelHandle--vertical']);
@@ -3,6 +3,23 @@ import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
3
3
  export function getDataGridUtilityClass(slot) {
4
4
  return generateUtilityClass('MuiDataGrid', slot);
5
5
  }
6
- export const gridClasses = generateUtilityClasses('MuiDataGrid', ['aiAssistantPanel', 'aiAssistantPanelHeader', 'aiAssistantPanelTitleContainer', 'aiAssistantPanelTitle', 'aiAssistantPanelBody', 'aiAssistantPanelEmptyText', 'aiAssistantPanelFooter', 'aiAssistantPanelConversation', 'aiAssistantPanelConversationList', 'aiAssistantPanelConversationTitle', 'aiAssistantPanelSuggestions', 'aiAssistantPanelSuggestionsList', 'aiAssistantPanelSuggestionsItem', 'aiAssistantPanelSuggestionsLabel', 'actionsCell', 'aggregationColumnHeader', 'aggregationColumnHeader--alignLeft', 'aggregationColumnHeader--alignCenter', 'aggregationColumnHeader--alignRight', 'aggregationColumnHeaderLabel', 'aggregationRowOverlayWrapper', 'autoHeight', 'autosizing', 'mainContent', 'withSidePanel', 'booleanCell', 'cell--editable', 'cell--editing', 'cell--flex', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--rangeTop', 'cell--rangeBottom', 'cell--rangeLeft', 'cell--rangeRight', 'cell--pinnedLeft', 'cell--pinnedRight', 'cell--selectionMode', 'cell', 'cellCheckbox', 'cellEmpty', 'cellSkeleton', 'cellOffsetLeft', 'checkboxInput', 'collapsible', 'collapsibleTrigger', 'collapsibleIcon', 'collapsiblePanel', 'columnHeader', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--filtered', 'columnHeader--pinnedLeft', 'columnHeader--pinnedRight', 'columnHeader--last', 'columnHeader--siblingFocused', 'columnHeader--filter', 'columnHeaderFilterInput', 'columnHeaderFilterOperatorLabel', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderTitle', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnHeader--filledGroup', 'columnHeader--emptyGroup', 'columnHeaders', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'columnSeparator', 'columnsManagement', 'columnsManagementRow', 'columnsManagementHeader', 'columnsManagementSearchInput', 'columnsManagementFooter', 'columnsManagementScrollArea', 'columnsManagementEmptyText', 'container--top', 'container--bottom', 'detailPanel', 'detailPanelToggleCell', 'detailPanelToggleCell--expanded', 'footerCell', 'panel', 'panelHeader', 'panelWrapper', 'panelContent', 'panelFooter', 'paper', 'editBooleanCell', 'editInputCell', 'longTextCell', 'longTextCellContent', 'longTextCellExpandButton', 'longTextCellCollapseButton', 'longTextCellPopup', 'longTextCellPopperContent', 'editLongTextCell', 'editLongTextCellValue', 'editLongTextCellPopup', 'editLongTextCellPopperContent', 'editLongTextCellTextarea', 'filler', 'filler--borderBottom', 'filler--pinnedLeft', 'filler--pinnedRight', 'filterForm', 'filterFormDeleteIcon', 'filterFormLogicOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'headerFilterRow', 'iconButtonContainer', 'iconSeparator', 'main', 'main--hasPinnedRight', 'main--hiddenContent', 'menu', 'menuIcon', 'menuIconButton', 'menuOpen', 'menuList', 'overlay', 'overlayWrapper', 'overlayWrapperInner', 'root', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'root--disableUserSelection', 'root--noToolbar', 'row', 'row--editable', 'row--editing', 'row--firstVisible', 'row--lastVisible',
7
- // TODO v9: Rename to `cell--dragging`
8
- 'row--dragging', 'row--beingDragged', 'row--dynamicHeight', 'row--detailPanelExpanded', 'row--borderBottom', 'rowReorderCellPlaceholder', 'rowCount', 'rowReorderCellContainer', 'rowReorderCell', 'rowReorderCell--draggable', 'rowReorderIcon', 'rowSkeleton', 'scrollArea--left', 'scrollArea--right', 'scrollArea--up', 'scrollArea--down', 'scrollArea', 'scrollbar', 'scrollbar--vertical', 'scrollbar--horizontal', 'scrollbarFiller', 'scrollbarFiller--pinnedRight', 'scrollShadow', 'scrollShadow--vertical', 'scrollShadow--horizontal', 'selectedRowCount', 'sortButton', 'sortIcon', 'shadowScrollArea', 'sidebar', 'sidebarHeader', 'toolbarContainer', 'toolbar', 'toolbarLabel', 'toolbarDivider', 'toolbarFilterList', 'toolbarQuickFilter', 'toolbarQuickFilterTrigger', 'toolbarQuickFilterControl', 'virtualScroller', 'virtualScroller--hasScrollX', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'withVerticalBorder', 'withBorderColor', 'cell--withRightBorder', 'cell--withLeftBorder', 'columnHeader--withRightBorder', 'columnHeader--withLeftBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'treeDataGroupingCellLoadingContainer', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'groupingCriteriaCellLoadingContainer', 'pinnedRows', 'pinnedRows--top', 'pinnedRows--bottom', 'pivotPanelAvailableFields', 'pivotPanelField', 'pivotPanelField--sorted', 'pivotPanelFieldActionContainer', 'pivotPanelFieldCheckbox', 'pivotPanelFieldDragIcon', 'pivotPanelFieldList', 'pivotPanelFieldName', 'pivotPanelHeader', 'pivotPanelPlaceholder', 'pivotPanelScrollArea', 'pivotPanelSearchContainer', 'pivotPanelSection', 'pivotPanelSectionTitle', 'pivotPanelSections', 'pivotPanelSwitch', 'pivotPanelSwitchLabel', 'prompt', 'promptContent', 'promptText', 'promptFeedback', 'promptChangeList', 'promptChangesToggle', 'promptChangesToggleIcon', 'promptIcon', 'promptIconContainer', 'promptError', 'promptAction']);
6
+
7
+ /**
8
+ * Class groups for the MuiDataGrid component used in GridRootStyles overridesResolver.
9
+ *
10
+ * Splits classes into two groups to support style overrides:
11
+ * - `root`: classes applied directly to the root element (use `&.className` selector)
12
+ * - `children`: classes applied to child elements (use `& .className` selector)
13
+ *
14
+ * These are spread into the gridClasses utility object and used for CSS-in-JS overrides.
15
+ *
16
+ * Only include class names here that are NOT applied via `styled` components.
17
+ * For `styled` components, declare overrides directly in the component definition.
18
+ */
19
+ export const gridClassesOverrides = {
20
+ root: ['autoHeight', 'autosizing', 'root--densityStandard', 'root--densityComfortable', 'root--densityCompact', 'root--disableUserSelection', 'root--noToolbar', 'withVerticalBorder'],
21
+ children: ['actionsCell', 'booleanCell', 'cell', 'cell--editable', 'cell--editing', 'cell--flex', 'cell--pinnedLeft', 'cell--pinnedRight', 'cell--rangeBottom', 'cell--rangeLeft', 'cell--rangeRight', 'cell--rangeTop', 'cell--selectionMode', 'cell--textCenter', 'cell--textLeft', 'cell--textRight', 'cell--withLeftBorder', 'cell--withRightBorder', 'cellCheckbox', 'cellEmpty', 'cellOffsetLeft', 'cellSkeleton', 'checkboxInput', 'columnHeader', 'columnHeader--alignCenter', 'columnHeader--alignLeft', 'columnHeader--alignRight', 'columnHeader--dragging', 'columnHeader--emptyGroup', 'columnHeader--filledGroup', 'columnHeader--filtered', 'columnHeader--last', 'columnHeader--moving', 'columnHeader--numeric', 'columnHeader--pinnedLeft', 'columnHeader--pinnedRight', 'columnHeader--siblingFocused', 'columnHeader--sortable', 'columnHeader--sorted', 'columnHeader--withLeftBorder', 'columnHeader--withRightBorder', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnSeparator', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'container--bottom', 'container--top', 'detailPanelToggleCell', 'detailPanelToggleCell--expanded', 'editBooleanCell', 'filterIcon', 'filler--borderBottom', 'filler--pinnedLeft', 'filler--pinnedRight', 'groupingCriteriaCell', 'groupingCriteriaCellLoadingContainer', 'groupingCriteriaCellToggle', 'headerFilterRow', 'iconSeparator', 'menuIcon', 'menuIconButton', 'menuList', 'menuOpen', 'overlayWrapperInner', 'pinnedRows', 'pinnedRows--bottom', 'pinnedRows--top', 'row', 'row--borderBottom', 'row--detailPanelExpanded',
22
+ // TODO v9: Rename to `cell--dragging`
23
+ 'row--dragging', 'row--dynamicHeight', 'row--editable', 'row--editing', 'row--firstVisible', 'row--lastVisible', 'rowReorderCell', 'rowReorderCell--draggable', 'rowReorderCellContainer', 'rowReorderCellPlaceholder', 'rowSkeleton', 'scrollbar', 'scrollbar--horizontal', 'scrollbar--vertical', 'scrollbarFiller', 'scrollbarFiller--pinnedRight', 'sortIcon', 'treeDataGroupingCell', 'treeDataGroupingCellLoadingContainer', 'treeDataGroupingCellToggle', 'withBorderColor', 'row--beingDragged']
24
+ };
25
+ export const gridClasses = generateUtilityClasses('MuiDataGrid', [...gridClassesOverrides.root, ...gridClassesOverrides.children, 'aiAssistantPanel', 'aiAssistantPanelHeader', 'aiAssistantPanelTitleContainer', 'aiAssistantPanelTitle', 'aiAssistantPanelBody', 'aiAssistantPanelEmptyText', 'aiAssistantPanelFooter', 'aiAssistantPanelConversation', 'aiAssistantPanelConversationList', 'aiAssistantPanelConversationTitle', 'aiAssistantPanelSuggestions', 'aiAssistantPanelSuggestionsList', 'aiAssistantPanelSuggestionsItem', 'aiAssistantPanelSuggestionsLabel', 'aggregationColumnHeader', 'aggregationColumnHeader--alignLeft', 'aggregationColumnHeader--alignCenter', 'aggregationColumnHeader--alignRight', 'aggregationColumnHeaderLabel', 'aggregationRowOverlayWrapper', 'mainContent', 'withSidePanel', 'collapsible', 'collapsibleTrigger', 'collapsibleIcon', 'collapsiblePanel', 'columnHeader--filter', 'columnHeaderFilterInput', 'columnHeaderFilterOperatorLabel', 'columnHeaderTitle', 'columnHeaders', 'columnsManagement', 'columnsManagementRow', 'columnsManagementHeader', 'columnsManagementSearchInput', 'columnsManagementFooter', 'columnsManagementScrollArea', 'columnsManagementEmptyText', 'detailPanel', 'footerCell', 'panel', 'panelHeader', 'panelWrapper', 'panelContent', 'panelFooter', 'paper', 'editInputCell', 'longTextCell', 'longTextCellContent', 'longTextCellExpandButton', 'longTextCellCollapseButton', 'longTextCellPopup', 'longTextCellPopperContent', 'editLongTextCell', 'editLongTextCellValue', 'editLongTextCellPopup', 'editLongTextCellPopperContent', 'editLongTextCellTextarea', 'filler', 'filterForm', 'filterFormDeleteIcon', 'filterFormLogicOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'footerContainer', 'iconButtonContainer', 'main', 'main--hasPinnedRight', 'main--hiddenContent', 'menu', 'overlay', 'overlayWrapper', 'root', 'rowCount', 'rowReorderIcon', 'scrollArea--left', 'scrollArea--right', 'scrollArea--up', 'scrollArea--down', 'scrollArea', 'scrollShadow', 'scrollShadow--vertical', 'scrollShadow--horizontal', 'selectedRowCount', 'sortButton', 'shadowScrollArea', 'sidebar', 'sidebarHeader', 'toolbarContainer', 'toolbar', 'toolbarLabel', 'toolbarDivider', 'toolbarFilterList', 'toolbarQuickFilter', 'toolbarQuickFilterTrigger', 'toolbarQuickFilterControl', 'virtualScroller', 'virtualScroller--hasScrollX', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'pivotPanelAvailableFields', 'pivotPanelField', 'pivotPanelField--sorted', 'pivotPanelFieldActionContainer', 'pivotPanelFieldCheckbox', 'pivotPanelFieldDragIcon', 'pivotPanelFieldList', 'pivotPanelFieldName', 'pivotPanelHeader', 'pivotPanelPlaceholder', 'pivotPanelScrollArea', 'pivotPanelSearchContainer', 'pivotPanelSection', 'pivotPanelSectionTitle', 'pivotPanelSections', 'pivotPanelSwitch', 'pivotPanelSwitchLabel', 'prompt', 'promptContent', 'promptText', 'promptFeedback', 'promptChangeList', 'promptChangesToggle', 'promptChangesToggleIcon', 'promptIcon', 'promptIconContainer', 'promptError', 'promptAction', 'resizablePanelHandle', 'resizablePanelHandle--horizontal', 'resizablePanelHandle--vertical']);
@@ -1,4 +1,4 @@
1
1
  export * from "./envConstants.mjs";
2
2
  export * from "./localeTextConstants.mjs";
3
- export * from "./gridClasses.mjs";
3
+ export { type GridClassKey, type GridClasses, getDataGridUtilityClass, gridClasses } from "./gridClasses.mjs";
4
4
  export * from "./signature.mjs";
@@ -1,4 +1,4 @@
1
1
  export * from "./envConstants.js";
2
2
  export * from "./localeTextConstants.js";
3
- export * from "./gridClasses.js";
3
+ export { type GridClassKey, type GridClasses, getDataGridUtilityClass, gridClasses } from "./gridClasses.js";
4
4
  export * from "./signature.js";
@@ -3,9 +3,26 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ var _exportNames = {
7
+ getDataGridUtilityClass: true,
8
+ gridClasses: true
9
+ };
10
+ Object.defineProperty(exports, "getDataGridUtilityClass", {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _gridClasses.getDataGridUtilityClass;
14
+ }
15
+ });
16
+ Object.defineProperty(exports, "gridClasses", {
17
+ enumerable: true,
18
+ get: function () {
19
+ return _gridClasses.gridClasses;
20
+ }
21
+ });
6
22
  var _envConstants = require("./envConstants");
7
23
  Object.keys(_envConstants).forEach(function (key) {
8
24
  if (key === "default" || key === "__esModule") return;
25
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
9
26
  if (key in exports && exports[key] === _envConstants[key]) return;
10
27
  Object.defineProperty(exports, key, {
11
28
  enumerable: true,
@@ -17,6 +34,7 @@ Object.keys(_envConstants).forEach(function (key) {
17
34
  var _localeTextConstants = require("./localeTextConstants");
18
35
  Object.keys(_localeTextConstants).forEach(function (key) {
19
36
  if (key === "default" || key === "__esModule") return;
37
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
20
38
  if (key in exports && exports[key] === _localeTextConstants[key]) return;
21
39
  Object.defineProperty(exports, key, {
22
40
  enumerable: true,
@@ -26,19 +44,10 @@ Object.keys(_localeTextConstants).forEach(function (key) {
26
44
  });
27
45
  });
28
46
  var _gridClasses = require("./gridClasses");
29
- Object.keys(_gridClasses).forEach(function (key) {
30
- if (key === "default" || key === "__esModule") return;
31
- if (key in exports && exports[key] === _gridClasses[key]) return;
32
- Object.defineProperty(exports, key, {
33
- enumerable: true,
34
- get: function () {
35
- return _gridClasses[key];
36
- }
37
- });
38
- });
39
47
  var _signature = require("./signature");
40
48
  Object.keys(_signature).forEach(function (key) {
41
49
  if (key === "default" || key === "__esModule") return;
50
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
42
51
  if (key in exports && exports[key] === _signature[key]) return;
43
52
  Object.defineProperty(exports, key, {
44
53
  enumerable: true,
@@ -1,4 +1,4 @@
1
1
  export * from "./envConstants.mjs";
2
2
  export * from "./localeTextConstants.mjs";
3
- export * from "./gridClasses.mjs";
3
+ export { getDataGridUtilityClass, gridClasses } from "./gridClasses.mjs";
4
4
  export * from "./signature.mjs";
@@ -260,9 +260,10 @@ const useGridDataSourceBase = (apiRef, props, options = {}) => {
260
260
  };
261
261
  const debouncedFetchRows = React.useMemo(() => (0, _debounce.default)(fetchRows, 0), [fetchRows]);
262
262
  const handleFetchRowsOnParamsChange = React.useCallback(() => {
263
+ apiRef.current.setRows([]);
263
264
  stopPolling();
264
265
  debouncedFetchRows();
265
- }, [stopPolling, debouncedFetchRows]);
266
+ }, [stopPolling, debouncedFetchRows, apiRef]);
266
267
  const isFirstRender = React.useRef(true);
267
268
  React.useEffect(() => {
268
269
  if (isFirstRender.current) {
@@ -253,9 +253,10 @@ export const useGridDataSourceBase = (apiRef, props, options = {}) => {
253
253
  };
254
254
  const debouncedFetchRows = React.useMemo(() => debounce(fetchRows, 0), [fetchRows]);
255
255
  const handleFetchRowsOnParamsChange = React.useCallback(() => {
256
+ apiRef.current.setRows([]);
256
257
  stopPolling();
257
258
  debouncedFetchRows();
258
- }, [stopPolling, debouncedFetchRows]);
259
+ }, [stopPolling, debouncedFetchRows, apiRef]);
259
260
  const isFirstRender = React.useRef(true);
260
261
  React.useEffect(() => {
261
262
  if (isFirstRender.current) {
@@ -411,11 +411,15 @@ const useGridRowEditing = (apiRef, props) => {
411
411
  updateRowInRowModesModel(id, null);
412
412
  delete prevRowValuesLookup.current[id];
413
413
  };
414
- if (ignoreModifications) {
414
+ if (ignoreModifications && apiRef.current.getRow(id)) {
415
415
  finishRowEditMode();
416
416
  return;
417
417
  }
418
418
  const editingState = (0, _gridEditingSelectors.gridEditRowsStateSelector)(apiRef);
419
+ if (!editingState[id]) {
420
+ finishRowEditMode();
421
+ return;
422
+ }
419
423
  const row = prevRowValuesLookup.current[id];
420
424
  const isSomeFieldProcessingProps = Object.values(editingState[id]).some(fieldProps => fieldProps.isProcessingProps);
421
425
  if (isSomeFieldProcessingProps) {
@@ -474,14 +478,18 @@ const useGridRowEditing = (apiRef, props) => {
474
478
  Promise.resolve(processRowUpdate(rowUpdate, row, {
475
479
  rowId: id
476
480
  })).then(finalRowUpdate => {
477
- apiRef.current.updateRows([finalRowUpdate]);
481
+ if (apiRef.current.getRow(id)) {
482
+ apiRef.current.updateRows([finalRowUpdate]);
483
+ }
478
484
  finishRowEditMode();
479
485
  }).catch(handleError);
480
486
  } catch (errorThrown) {
481
487
  handleError(errorThrown);
482
488
  }
483
489
  } else {
484
- apiRef.current.updateRows([rowUpdate]);
490
+ if (apiRef.current.getRow(id)) {
491
+ apiRef.current.updateRows([rowUpdate]);
492
+ }
485
493
  finishRowEditMode();
486
494
  }
487
495
  });
@@ -649,6 +657,6 @@ const useGridRowEditing = (apiRef, props) => {
649
657
  }, params));
650
658
  }
651
659
  });
652
- }, [apiRef, rowModesModel, updateStateToStartRowEditMode, updateStateToStopRowEditMode]);
660
+ }, [apiRef, rowModesModel, updateOrDeleteRowState, updateStateToStartRowEditMode, updateStateToStopRowEditMode, updateRowInRowModesModel]);
653
661
  };
654
662
  exports.useGridRowEditing = useGridRowEditing;
@@ -404,11 +404,15 @@ export const useGridRowEditing = (apiRef, props) => {
404
404
  updateRowInRowModesModel(id, null);
405
405
  delete prevRowValuesLookup.current[id];
406
406
  };
407
- if (ignoreModifications) {
407
+ if (ignoreModifications && apiRef.current.getRow(id)) {
408
408
  finishRowEditMode();
409
409
  return;
410
410
  }
411
411
  const editingState = gridEditRowsStateSelector(apiRef);
412
+ if (!editingState[id]) {
413
+ finishRowEditMode();
414
+ return;
415
+ }
412
416
  const row = prevRowValuesLookup.current[id];
413
417
  const isSomeFieldProcessingProps = Object.values(editingState[id]).some(fieldProps => fieldProps.isProcessingProps);
414
418
  if (isSomeFieldProcessingProps) {
@@ -467,14 +471,18 @@ export const useGridRowEditing = (apiRef, props) => {
467
471
  Promise.resolve(processRowUpdate(rowUpdate, row, {
468
472
  rowId: id
469
473
  })).then(finalRowUpdate => {
470
- apiRef.current.updateRows([finalRowUpdate]);
474
+ if (apiRef.current.getRow(id)) {
475
+ apiRef.current.updateRows([finalRowUpdate]);
476
+ }
471
477
  finishRowEditMode();
472
478
  }).catch(handleError);
473
479
  } catch (errorThrown) {
474
480
  handleError(errorThrown);
475
481
  }
476
482
  } else {
477
- apiRef.current.updateRows([rowUpdate]);
483
+ if (apiRef.current.getRow(id)) {
484
+ apiRef.current.updateRows([rowUpdate]);
485
+ }
478
486
  finishRowEditMode();
479
487
  }
480
488
  });
@@ -642,5 +650,5 @@ export const useGridRowEditing = (apiRef, props) => {
642
650
  }, params));
643
651
  }
644
652
  });
645
- }, [apiRef, rowModesModel, updateStateToStartRowEditMode, updateStateToStopRowEditMode]);
653
+ }, [apiRef, rowModesModel, updateOrDeleteRowState, updateStateToStartRowEditMode, updateStateToStopRowEditMode, updateRowInRowModesModel]);
646
654
  };
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid v9.0.0-alpha.2
2
+ * @mui/x-data-grid v9.0.0-alpha.4
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
package/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid v9.0.0-alpha.2
2
+ * @mui/x-data-grid v9.0.0-alpha.4
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
package/material/index.js CHANGED
@@ -81,12 +81,14 @@ const _excluded = ["id", "label", "labelId", "material", "disabled", "slotProps"
81
81
  _excluded16 = ["id", "multiple", "freeSolo", "options", "getOptionLabel", "isOptionEqualToValue", "value", "onChange", "label", "placeholder", "slotProps", "material"],
82
82
  _excluded17 = ["key"],
83
83
  _excluded18 = ["inputProps", "InputProps", "InputLabelProps"],
84
- _excluded19 = ["slotProps", "material"],
85
- _excluded20 = ["material"],
86
- _excluded21 = ["ref", "open", "children", "className", "clickAwayTouchEvent", "clickAwayMouseEvent", "flip", "focusTrap", "onExited", "onClickAway", "onDidShow", "onDidHide", "id", "target", "transition", "placement", "material"],
87
- _excluded22 = ["native"],
88
- _excluded23 = ["children", "value", "active"],
89
- _excluded24 = ["items", "value", "material"];
84
+ _excluded19 = ["slotProps"],
85
+ _excluded20 = ["slotProps"],
86
+ _excluded21 = ["slotProps", "material"],
87
+ _excluded22 = ["material"],
88
+ _excluded23 = ["ref", "open", "children", "className", "clickAwayTouchEvent", "clickAwayMouseEvent", "flip", "focusTrap", "onExited", "onClickAway", "onDidShow", "onDidHide", "id", "target", "transition", "placement", "material"],
89
+ _excluded24 = ["native"],
90
+ _excluded25 = ["children", "value", "active"],
91
+ _excluded26 = ["items", "value", "material"];
90
92
  /* eslint-disable mui/disallow-react-api-in-server-components */
91
93
 
92
94
  const InputAdornment = (0, _styles.styled)(_InputAdornment.default, {
@@ -168,8 +170,10 @@ const BaseSelect = (0, _forwardRef.forwardRef)(function BaseSelect(props, ref) {
168
170
  const computedSize = size ?? textFieldDefaults.size;
169
171
  const computedVariant = textFieldDefaults.variant ?? 'outlined';
170
172
  const menuProps = {
171
- PaperProps: {
172
- onKeyDown
173
+ slotProps: {
174
+ paper: {
175
+ onKeyDown
176
+ }
173
177
  }
174
178
  };
175
179
  if (onClose) {
@@ -299,7 +303,9 @@ const BaseCheckbox = (0, _forwardRef.forwardRef)(function BaseCheckbox(props, re
299
303
  if (!label) {
300
304
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(Checkbox, (0, _extends2.default)({}, other, material, {
301
305
  className: (0, _clsx.default)(className, material?.className),
302
- inputProps: slotProps?.htmlInput,
306
+ slotProps: {
307
+ input: slotProps?.htmlInput
308
+ },
303
309
  ref: handleRef,
304
310
  touchRippleRef: rippleRef
305
311
  }));
@@ -307,7 +313,9 @@ const BaseCheckbox = (0, _forwardRef.forwardRef)(function BaseCheckbox(props, re
307
313
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(FormControlLabel, {
308
314
  className: className,
309
315
  control: /*#__PURE__*/(0, _jsxRuntime.jsx)(Checkbox, (0, _extends2.default)({}, other, material, {
310
- inputProps: slotProps?.htmlInput,
316
+ slotProps: {
317
+ input: slotProps?.htmlInput
318
+ },
311
319
  ref: handleRef,
312
320
  touchRippleRef: rippleRef
313
321
  })),
@@ -470,8 +478,6 @@ function BaseMenuItem(props) {
470
478
  }, "3")]);
471
479
  }
472
480
  function BaseTextField(props) {
473
- // MaterialUI v5 doesn't support slotProps, until we drop v5 support we need to
474
- // translate the pattern.
475
481
  const {
476
482
  slotProps,
477
483
  material
@@ -485,11 +491,13 @@ function BaseTextField(props) {
485
491
  variant: computedVariant,
486
492
  size: computedSize
487
493
  }, other, material, {
488
- inputProps: slotProps?.htmlInput,
489
- InputProps: transformInputProps(slotProps?.input),
490
- InputLabelProps: (0, _extends2.default)({
491
- shrink: true
492
- }, slotProps?.inputLabel)
494
+ slotProps: {
495
+ htmlInput: slotProps?.htmlInput,
496
+ input: transformInputProps(slotProps?.input),
497
+ inputLabel: (0, _extends2.default)({
498
+ shrink: true
499
+ }, slotProps?.inputLabel)
500
+ }
493
501
  }));
494
502
  }
495
503
  function BaseAutocomplete(props) {
@@ -518,7 +526,7 @@ function BaseAutocomplete(props) {
518
526
  isOptionEqualToValue: isOptionEqualToValue,
519
527
  value: value,
520
528
  onChange: onChange,
521
- renderTags: (currentValue, getTagProps) => currentValue.map((option, index) => {
529
+ renderValue: (currentValue, getTagProps) => currentValue.map((option, index) => {
522
530
  const _getTagProps = getTagProps({
523
531
  index
524
532
  }),
@@ -534,20 +542,33 @@ function BaseAutocomplete(props) {
534
542
  }),
535
543
  renderInput: params => {
536
544
  const {
537
- inputProps,
545
+ inputProps: htmlInputProps,
538
546
  InputProps,
539
547
  InputLabelProps
540
548
  } = params,
541
549
  inputRest = (0, _objectWithoutPropertiesLoose2.default)(params, _excluded18);
550
+ const _ref = slotProps?.textField ?? {},
551
+ {
552
+ slotProps: textFieldSlotProps
553
+ } = _ref,
554
+ textFieldRest = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded19);
555
+ const _ref2 = rootProps.slotProps?.baseTextField ?? {},
556
+ {
557
+ slotProps: baseTextFieldSlotProps
558
+ } = _ref2,
559
+ baseTextFieldRest = (0, _objectWithoutPropertiesLoose2.default)(_ref2, _excluded20);
542
560
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_TextField.default, (0, _extends2.default)({}, inputRest, {
543
561
  label: label,
544
- placeholder: placeholder,
545
- inputProps: inputProps,
546
- InputProps: transformInputProps(InputProps, false),
547
- InputLabelProps: (0, _extends2.default)({
548
- shrink: true
549
- }, InputLabelProps)
550
- }, slotProps?.textField, rootProps.slotProps?.baseTextField));
562
+ placeholder: placeholder
563
+ }, textFieldRest, baseTextFieldRest, {
564
+ slotProps: {
565
+ htmlInput: (0, _extends2.default)({}, htmlInputProps, textFieldSlotProps?.htmlInput, baseTextFieldSlotProps?.htmlInput),
566
+ input: (0, _extends2.default)({}, transformInputProps(InputProps, false), textFieldSlotProps?.input, baseTextFieldSlotProps?.input),
567
+ inputLabel: (0, _extends2.default)({
568
+ shrink: true
569
+ }, InputLabelProps, textFieldSlotProps?.inputLabel, baseTextFieldSlotProps?.inputLabel)
570
+ }
571
+ }));
551
572
  }
552
573
  }, other, material));
553
574
  }
@@ -562,7 +583,7 @@ function transformInputProps(props, wrapAdornments = true) {
562
583
  slotProps,
563
584
  material
564
585
  } = props,
565
- other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded19);
586
+ other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded21);
566
587
  const result = other;
567
588
  if (wrapAdornments) {
568
589
  if (result.startAdornment) {
@@ -596,7 +617,7 @@ const BaseTextarea = (0, _forwardRef.forwardRef)(function BaseTextarea(props, re
596
617
  const {
597
618
  material
598
619
  } = props,
599
- other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded20);
620
+ other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded22);
600
621
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_TextareaAutosize.default, (0, _extends2.default)({}, other, material, {
601
622
  ref: ref
602
623
  }));
@@ -621,7 +642,7 @@ function BasePopper(props) {
621
642
  placement,
622
643
  material
623
644
  } = props,
624
- other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded21);
645
+ other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded23);
625
646
  const modifiers = React.useMemo(() => {
626
647
  const result = [{
627
648
  name: 'preventOverflow',
@@ -712,11 +733,11 @@ function focusTrapWrapper(props, content) {
712
733
  })
713
734
  });
714
735
  }
715
- function BaseSelectOption(_ref) {
736
+ function BaseSelectOption(_ref3) {
716
737
  let {
717
738
  native
718
- } = _ref,
719
- props = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded22);
739
+ } = _ref3,
740
+ props = (0, _objectWithoutPropertiesLoose2.default)(_ref3, _excluded24);
720
741
  if (native) {
721
742
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("option", (0, _extends2.default)({}, props));
722
743
  }
@@ -751,7 +772,7 @@ function TabPanel(props) {
751
772
  children,
752
773
  active
753
774
  } = props,
754
- other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded23);
775
+ other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded25);
755
776
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(StyledTabPanel, (0, _extends2.default)({
756
777
  role: "tabpanel",
757
778
  style: {
@@ -761,13 +782,13 @@ function TabPanel(props) {
761
782
  children: children
762
783
  }));
763
784
  }
764
- function BaseTabs(_ref2) {
785
+ function BaseTabs(_ref4) {
765
786
  let {
766
787
  items,
767
788
  value,
768
789
  material
769
- } = _ref2,
770
- props = (0, _objectWithoutPropertiesLoose2.default)(_ref2, _excluded24);
790
+ } = _ref4,
791
+ props = (0, _objectWithoutPropertiesLoose2.default)(_ref4, _excluded26);
771
792
  const id = (0, _useId.default)();
772
793
  const labelId = `${id}-tab-${value}`;
773
794
  const panelId = `${id}-tabpanel-${value}`;
@@ -20,12 +20,14 @@ const _excluded = ["id", "label", "labelId", "material", "disabled", "slotProps"
20
20
  _excluded16 = ["id", "multiple", "freeSolo", "options", "getOptionLabel", "isOptionEqualToValue", "value", "onChange", "label", "placeholder", "slotProps", "material"],
21
21
  _excluded17 = ["key"],
22
22
  _excluded18 = ["inputProps", "InputProps", "InputLabelProps"],
23
- _excluded19 = ["slotProps", "material"],
24
- _excluded20 = ["material"],
25
- _excluded21 = ["ref", "open", "children", "className", "clickAwayTouchEvent", "clickAwayMouseEvent", "flip", "focusTrap", "onExited", "onClickAway", "onDidShow", "onDidHide", "id", "target", "transition", "placement", "material"],
26
- _excluded22 = ["native"],
27
- _excluded23 = ["children", "value", "active"],
28
- _excluded24 = ["items", "value", "material"];
23
+ _excluded19 = ["slotProps"],
24
+ _excluded20 = ["slotProps"],
25
+ _excluded21 = ["slotProps", "material"],
26
+ _excluded22 = ["material"],
27
+ _excluded23 = ["ref", "open", "children", "className", "clickAwayTouchEvent", "clickAwayMouseEvent", "flip", "focusTrap", "onExited", "onClickAway", "onDidShow", "onDidHide", "id", "target", "transition", "placement", "material"],
28
+ _excluded24 = ["native"],
29
+ _excluded25 = ["children", "value", "active"],
30
+ _excluded26 = ["items", "value", "material"];
29
31
  import * as React from 'react';
30
32
  import clsx from 'clsx';
31
33
  import useForkRef from '@mui/utils/useForkRef';
@@ -155,8 +157,10 @@ const BaseSelect = forwardRef(function BaseSelect(props, ref) {
155
157
  const computedSize = size ?? textFieldDefaults.size;
156
158
  const computedVariant = textFieldDefaults.variant ?? 'outlined';
157
159
  const menuProps = {
158
- PaperProps: {
159
- onKeyDown
160
+ slotProps: {
161
+ paper: {
162
+ onKeyDown
163
+ }
160
164
  }
161
165
  };
162
166
  if (onClose) {
@@ -286,7 +290,9 @@ const BaseCheckbox = forwardRef(function BaseCheckbox(props, ref) {
286
290
  if (!label) {
287
291
  return /*#__PURE__*/_jsx(Checkbox, _extends({}, other, material, {
288
292
  className: clsx(className, material?.className),
289
- inputProps: slotProps?.htmlInput,
293
+ slotProps: {
294
+ input: slotProps?.htmlInput
295
+ },
290
296
  ref: handleRef,
291
297
  touchRippleRef: rippleRef
292
298
  }));
@@ -294,7 +300,9 @@ const BaseCheckbox = forwardRef(function BaseCheckbox(props, ref) {
294
300
  return /*#__PURE__*/_jsx(FormControlLabel, {
295
301
  className: className,
296
302
  control: /*#__PURE__*/_jsx(Checkbox, _extends({}, other, material, {
297
- inputProps: slotProps?.htmlInput,
303
+ slotProps: {
304
+ input: slotProps?.htmlInput
305
+ },
298
306
  ref: handleRef,
299
307
  touchRippleRef: rippleRef
300
308
  })),
@@ -457,8 +465,6 @@ function BaseMenuItem(props) {
457
465
  }, "3")]);
458
466
  }
459
467
  function BaseTextField(props) {
460
- // MaterialUI v5 doesn't support slotProps, until we drop v5 support we need to
461
- // translate the pattern.
462
468
  const {
463
469
  slotProps,
464
470
  material
@@ -472,11 +478,13 @@ function BaseTextField(props) {
472
478
  variant: computedVariant,
473
479
  size: computedSize
474
480
  }, other, material, {
475
- inputProps: slotProps?.htmlInput,
476
- InputProps: transformInputProps(slotProps?.input),
477
- InputLabelProps: _extends({
478
- shrink: true
479
- }, slotProps?.inputLabel)
481
+ slotProps: {
482
+ htmlInput: slotProps?.htmlInput,
483
+ input: transformInputProps(slotProps?.input),
484
+ inputLabel: _extends({
485
+ shrink: true
486
+ }, slotProps?.inputLabel)
487
+ }
480
488
  }));
481
489
  }
482
490
  function BaseAutocomplete(props) {
@@ -505,7 +513,7 @@ function BaseAutocomplete(props) {
505
513
  isOptionEqualToValue: isOptionEqualToValue,
506
514
  value: value,
507
515
  onChange: onChange,
508
- renderTags: (currentValue, getTagProps) => currentValue.map((option, index) => {
516
+ renderValue: (currentValue, getTagProps) => currentValue.map((option, index) => {
509
517
  const _getTagProps = getTagProps({
510
518
  index
511
519
  }),
@@ -521,20 +529,33 @@ function BaseAutocomplete(props) {
521
529
  }),
522
530
  renderInput: params => {
523
531
  const {
524
- inputProps,
532
+ inputProps: htmlInputProps,
525
533
  InputProps,
526
534
  InputLabelProps
527
535
  } = params,
528
536
  inputRest = _objectWithoutPropertiesLoose(params, _excluded18);
537
+ const _ref = slotProps?.textField ?? {},
538
+ {
539
+ slotProps: textFieldSlotProps
540
+ } = _ref,
541
+ textFieldRest = _objectWithoutPropertiesLoose(_ref, _excluded19);
542
+ const _ref2 = rootProps.slotProps?.baseTextField ?? {},
543
+ {
544
+ slotProps: baseTextFieldSlotProps
545
+ } = _ref2,
546
+ baseTextFieldRest = _objectWithoutPropertiesLoose(_ref2, _excluded20);
529
547
  return /*#__PURE__*/_jsx(MUITextField, _extends({}, inputRest, {
530
548
  label: label,
531
- placeholder: placeholder,
532
- inputProps: inputProps,
533
- InputProps: transformInputProps(InputProps, false),
534
- InputLabelProps: _extends({
535
- shrink: true
536
- }, InputLabelProps)
537
- }, slotProps?.textField, rootProps.slotProps?.baseTextField));
549
+ placeholder: placeholder
550
+ }, textFieldRest, baseTextFieldRest, {
551
+ slotProps: {
552
+ htmlInput: _extends({}, htmlInputProps, textFieldSlotProps?.htmlInput, baseTextFieldSlotProps?.htmlInput),
553
+ input: _extends({}, transformInputProps(InputProps, false), textFieldSlotProps?.input, baseTextFieldSlotProps?.input),
554
+ inputLabel: _extends({
555
+ shrink: true
556
+ }, InputLabelProps, textFieldSlotProps?.inputLabel, baseTextFieldSlotProps?.inputLabel)
557
+ }
558
+ }));
538
559
  }
539
560
  }, other, material));
540
561
  }
@@ -549,7 +570,7 @@ function transformInputProps(props, wrapAdornments = true) {
549
570
  slotProps,
550
571
  material
551
572
  } = props,
552
- other = _objectWithoutPropertiesLoose(props, _excluded19);
573
+ other = _objectWithoutPropertiesLoose(props, _excluded21);
553
574
  const result = other;
554
575
  if (wrapAdornments) {
555
576
  if (result.startAdornment) {
@@ -583,7 +604,7 @@ const BaseTextarea = forwardRef(function BaseTextarea(props, ref) {
583
604
  const {
584
605
  material
585
606
  } = props,
586
- other = _objectWithoutPropertiesLoose(props, _excluded20);
607
+ other = _objectWithoutPropertiesLoose(props, _excluded22);
587
608
  return /*#__PURE__*/_jsx(MUITextareaAutosize, _extends({}, other, material, {
588
609
  ref: ref
589
610
  }));
@@ -608,7 +629,7 @@ function BasePopper(props) {
608
629
  placement,
609
630
  material
610
631
  } = props,
611
- other = _objectWithoutPropertiesLoose(props, _excluded21);
632
+ other = _objectWithoutPropertiesLoose(props, _excluded23);
612
633
  const modifiers = React.useMemo(() => {
613
634
  const result = [{
614
635
  name: 'preventOverflow',
@@ -699,11 +720,11 @@ function focusTrapWrapper(props, content) {
699
720
  })
700
721
  });
701
722
  }
702
- function BaseSelectOption(_ref) {
723
+ function BaseSelectOption(_ref3) {
703
724
  let {
704
725
  native
705
- } = _ref,
706
- props = _objectWithoutPropertiesLoose(_ref, _excluded22);
726
+ } = _ref3,
727
+ props = _objectWithoutPropertiesLoose(_ref3, _excluded24);
707
728
  if (native) {
708
729
  return /*#__PURE__*/_jsx("option", _extends({}, props));
709
730
  }
@@ -738,7 +759,7 @@ function TabPanel(props) {
738
759
  children,
739
760
  active
740
761
  } = props,
741
- other = _objectWithoutPropertiesLoose(props, _excluded23);
762
+ other = _objectWithoutPropertiesLoose(props, _excluded25);
742
763
  return /*#__PURE__*/_jsx(StyledTabPanel, _extends({
743
764
  role: "tabpanel",
744
765
  style: {
@@ -748,13 +769,13 @@ function TabPanel(props) {
748
769
  children: children
749
770
  }));
750
771
  }
751
- function BaseTabs(_ref2) {
772
+ function BaseTabs(_ref4) {
752
773
  let {
753
774
  items,
754
775
  value,
755
776
  material
756
- } = _ref2,
757
- props = _objectWithoutPropertiesLoose(_ref2, _excluded24);
777
+ } = _ref4,
778
+ props = _objectWithoutPropertiesLoose(_ref4, _excluded26);
758
779
  const id = useId();
759
780
  const labelId = `${id}-tab-${value}`;
760
781
  const panelId = `${id}-tabpanel-${value}`;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/x-data-grid",
3
- "version": "9.0.0-alpha.2",
3
+ "version": "9.0.0-alpha.4",
4
4
  "author": "MUI Team",
5
5
  "description": "The Community plan edition of the MUI X Data Grid components.",
6
6
  "license": "MIT",
@@ -42,8 +42,8 @@
42
42
  "clsx": "^2.1.1",
43
43
  "prop-types": "^15.8.1",
44
44
  "use-sync-external-store": "^1.6.0",
45
- "@mui/x-internals": "9.0.0-alpha.2",
46
- "@mui/x-virtualizer": "1.0.0-alpha.1"
45
+ "@mui/x-virtualizer": "1.0.0-beta.0",
46
+ "@mui/x-internals": "9.0.0-alpha.4"
47
47
  },
48
48
  "peerDependencies": {
49
49
  "@emotion/react": "^11.9.0",