@mui/x-data-grid 8.0.0-alpha.0 → 8.0.0-alpha.2

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 (216) hide show
  1. package/CHANGELOG.md +651 -6
  2. package/DataGrid/DataGrid.js +9 -9
  3. package/README.md +2 -2
  4. package/components/GridLoadingOverlay.d.ts +2 -2
  5. package/components/GridLoadingOverlay.js +4 -4
  6. package/components/GridPagination.js +2 -1
  7. package/components/base/GridOverlays.d.ts +4 -3
  8. package/components/base/GridOverlays.js +2 -24
  9. package/components/base/index.d.ts +0 -1
  10. package/components/base/index.js +1 -2
  11. package/components/cell/GridCell.js +10 -10
  12. package/components/columnSelection/GridCellCheckboxRenderer.js +2 -3
  13. package/components/columnSelection/GridHeaderCheckbox.js +2 -3
  14. package/components/columnsManagement/GridColumnsManagement.d.ts +2 -0
  15. package/components/columnsManagement/GridColumnsManagement.js +53 -6
  16. package/components/toolbar/GridToolbarColumnsButton.js +3 -4
  17. package/components/toolbar/GridToolbarDensitySelector.js +3 -4
  18. package/components/toolbar/GridToolbarExportContainer.js +3 -4
  19. package/components/toolbar/GridToolbarFilterButton.d.ts +2 -0
  20. package/components/toolbar/GridToolbarFilterButton.js +7 -6
  21. package/components/toolbar/GridToolbarQuickFilter.js +1 -0
  22. package/components/virtualization/GridVirtualScroller.js +5 -3
  23. package/constants/dataGridPropsDefaultValues.js +2 -3
  24. package/constants/gridClasses.d.ts +24 -0
  25. package/constants/gridClasses.js +1 -1
  26. package/constants/localeTextConstants.js +11 -0
  27. package/hooks/features/columnHeaders/useGridColumnHeaders.js +2 -2
  28. package/hooks/features/dimensions/gridDimensionsApi.d.ts +0 -4
  29. package/hooks/features/dimensions/useGridDimensions.js +3 -19
  30. package/hooks/features/index.d.ts +1 -0
  31. package/hooks/features/index.js +1 -0
  32. package/hooks/features/listView/gridListViewSelectors.d.ts +3 -1
  33. package/hooks/features/listView/gridListViewSelectors.js +3 -1
  34. package/hooks/features/listView/index.d.ts +1 -0
  35. package/hooks/features/listView/index.js +1 -0
  36. package/hooks/features/overlays/useGridOverlays.d.ts +7 -4
  37. package/hooks/features/overlays/useGridOverlays.js +19 -1
  38. package/hooks/features/rowSelection/useGridRowSelection.js +0 -9
  39. package/hooks/features/rowSelection/utils.js +2 -2
  40. package/hooks/features/virtualization/useGridVirtualScroller.d.ts +1 -1
  41. package/hooks/features/virtualization/useGridVirtualScroller.js +55 -15
  42. package/index.js +1 -1
  43. package/internals/index.d.ts +1 -0
  44. package/internals/index.js +1 -0
  45. package/joy/joySlots.js +7 -2
  46. package/locales/arSD.js +12 -0
  47. package/locales/beBY.js +12 -0
  48. package/locales/bgBG.js +13 -0
  49. package/locales/csCZ.js +13 -0
  50. package/locales/daDK.js +13 -0
  51. package/locales/deDE.js +11 -0
  52. package/locales/elGR.js +12 -0
  53. package/locales/esES.js +15 -4
  54. package/locales/faIR.js +13 -0
  55. package/locales/fiFI.js +13 -0
  56. package/locales/frFR.js +13 -0
  57. package/locales/heIL.js +13 -0
  58. package/locales/hrHR.js +13 -0
  59. package/locales/huHU.js +13 -0
  60. package/locales/isIS.js +12 -0
  61. package/locales/itIT.js +13 -0
  62. package/locales/jaJP.js +13 -0
  63. package/locales/koKR.js +12 -0
  64. package/locales/nbNO.js +13 -0
  65. package/locales/nlNL.js +13 -0
  66. package/locales/nnNO.js +13 -0
  67. package/locales/plPL.js +13 -0
  68. package/locales/ptBR.js +11 -0
  69. package/locales/ptPT.js +11 -0
  70. package/locales/roRO.js +12 -0
  71. package/locales/ruRU.js +13 -0
  72. package/locales/skSK.js +12 -0
  73. package/locales/svSE.js +17 -5
  74. package/locales/trTR.js +13 -0
  75. package/locales/ukUA.js +12 -0
  76. package/locales/urPK.js +12 -0
  77. package/locales/viVN.js +13 -0
  78. package/locales/zhCN.js +15 -4
  79. package/locales/zhHK.js +12 -0
  80. package/locales/zhTW.js +12 -0
  81. package/models/api/gridCoreApi.d.ts +1 -1
  82. package/models/api/gridLocaleTextApi.d.ts +10 -0
  83. package/models/colDef/gridColDef.d.ts +28 -24
  84. package/models/gridDataSource.d.ts +12 -12
  85. package/models/props/DataGridProps.d.ts +9 -9
  86. package/modern/DataGrid/DataGrid.js +9 -9
  87. package/modern/components/GridLoadingOverlay.js +4 -4
  88. package/modern/components/GridPagination.js +2 -1
  89. package/modern/components/base/GridOverlays.js +2 -24
  90. package/modern/components/base/index.js +1 -2
  91. package/modern/components/cell/GridCell.js +10 -10
  92. package/modern/components/columnSelection/GridCellCheckboxRenderer.js +2 -3
  93. package/modern/components/columnSelection/GridHeaderCheckbox.js +2 -3
  94. package/modern/components/columnsManagement/GridColumnsManagement.js +53 -6
  95. package/modern/components/toolbar/GridToolbarColumnsButton.js +3 -4
  96. package/modern/components/toolbar/GridToolbarDensitySelector.js +3 -4
  97. package/modern/components/toolbar/GridToolbarExportContainer.js +3 -4
  98. package/modern/components/toolbar/GridToolbarFilterButton.js +7 -6
  99. package/modern/components/toolbar/GridToolbarQuickFilter.js +1 -0
  100. package/modern/components/virtualization/GridVirtualScroller.js +5 -3
  101. package/modern/constants/dataGridPropsDefaultValues.js +2 -3
  102. package/modern/constants/gridClasses.js +1 -1
  103. package/modern/constants/localeTextConstants.js +11 -0
  104. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +2 -2
  105. package/modern/hooks/features/dimensions/useGridDimensions.js +3 -19
  106. package/modern/hooks/features/index.js +1 -0
  107. package/modern/hooks/features/listView/gridListViewSelectors.js +3 -1
  108. package/modern/hooks/features/listView/index.js +1 -0
  109. package/modern/hooks/features/overlays/useGridOverlays.js +19 -1
  110. package/modern/hooks/features/rowSelection/useGridRowSelection.js +0 -9
  111. package/modern/hooks/features/rowSelection/utils.js +2 -2
  112. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +55 -15
  113. package/modern/index.js +1 -1
  114. package/modern/internals/index.js +1 -0
  115. package/modern/joy/joySlots.js +7 -2
  116. package/modern/locales/arSD.js +12 -0
  117. package/modern/locales/beBY.js +12 -0
  118. package/modern/locales/bgBG.js +13 -0
  119. package/modern/locales/csCZ.js +13 -0
  120. package/modern/locales/daDK.js +13 -0
  121. package/modern/locales/deDE.js +11 -0
  122. package/modern/locales/elGR.js +12 -0
  123. package/modern/locales/esES.js +15 -4
  124. package/modern/locales/faIR.js +13 -0
  125. package/modern/locales/fiFI.js +13 -0
  126. package/modern/locales/frFR.js +13 -0
  127. package/modern/locales/heIL.js +13 -0
  128. package/modern/locales/hrHR.js +13 -0
  129. package/modern/locales/huHU.js +13 -0
  130. package/modern/locales/isIS.js +12 -0
  131. package/modern/locales/itIT.js +13 -0
  132. package/modern/locales/jaJP.js +13 -0
  133. package/modern/locales/koKR.js +12 -0
  134. package/modern/locales/nbNO.js +13 -0
  135. package/modern/locales/nlNL.js +13 -0
  136. package/modern/locales/nnNO.js +13 -0
  137. package/modern/locales/plPL.js +13 -0
  138. package/modern/locales/ptBR.js +11 -0
  139. package/modern/locales/ptPT.js +11 -0
  140. package/modern/locales/roRO.js +12 -0
  141. package/modern/locales/ruRU.js +13 -0
  142. package/modern/locales/skSK.js +12 -0
  143. package/modern/locales/svSE.js +17 -5
  144. package/modern/locales/trTR.js +13 -0
  145. package/modern/locales/ukUA.js +12 -0
  146. package/modern/locales/urPK.js +12 -0
  147. package/modern/locales/viVN.js +13 -0
  148. package/modern/locales/zhCN.js +15 -4
  149. package/modern/locales/zhHK.js +12 -0
  150. package/modern/locales/zhTW.js +12 -0
  151. package/node/DataGrid/DataGrid.js +9 -9
  152. package/node/components/GridLoadingOverlay.js +4 -4
  153. package/node/components/GridPagination.js +2 -1
  154. package/node/components/base/GridOverlays.js +2 -24
  155. package/node/components/base/index.js +0 -11
  156. package/node/components/cell/GridCell.js +10 -10
  157. package/node/components/columnSelection/GridCellCheckboxRenderer.js +2 -3
  158. package/node/components/columnSelection/GridHeaderCheckbox.js +2 -3
  159. package/node/components/columnsManagement/GridColumnsManagement.js +53 -6
  160. package/node/components/toolbar/GridToolbarColumnsButton.js +3 -4
  161. package/node/components/toolbar/GridToolbarDensitySelector.js +3 -4
  162. package/node/components/toolbar/GridToolbarExportContainer.js +3 -4
  163. package/node/components/toolbar/GridToolbarFilterButton.js +7 -6
  164. package/node/components/toolbar/GridToolbarQuickFilter.js +1 -0
  165. package/node/components/virtualization/GridVirtualScroller.js +5 -3
  166. package/node/constants/dataGridPropsDefaultValues.js +2 -3
  167. package/node/constants/gridClasses.js +1 -1
  168. package/node/constants/localeTextConstants.js +11 -0
  169. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +2 -2
  170. package/node/hooks/features/dimensions/useGridDimensions.js +2 -18
  171. package/node/hooks/features/index.js +11 -0
  172. package/node/hooks/features/listView/gridListViewSelectors.js +3 -1
  173. package/node/hooks/features/listView/index.js +16 -0
  174. package/node/hooks/features/overlays/useGridOverlays.js +21 -1
  175. package/node/hooks/features/rowSelection/useGridRowSelection.js +0 -9
  176. package/node/hooks/features/rowSelection/utils.js +2 -2
  177. package/node/hooks/features/virtualization/useGridVirtualScroller.js +55 -15
  178. package/node/index.js +1 -1
  179. package/node/internals/index.js +9 -2
  180. package/node/joy/joySlots.js +7 -2
  181. package/node/locales/arSD.js +12 -0
  182. package/node/locales/beBY.js +12 -0
  183. package/node/locales/bgBG.js +13 -0
  184. package/node/locales/csCZ.js +13 -0
  185. package/node/locales/daDK.js +13 -0
  186. package/node/locales/deDE.js +11 -0
  187. package/node/locales/elGR.js +12 -0
  188. package/node/locales/esES.js +15 -4
  189. package/node/locales/faIR.js +13 -0
  190. package/node/locales/fiFI.js +13 -0
  191. package/node/locales/frFR.js +13 -0
  192. package/node/locales/heIL.js +13 -0
  193. package/node/locales/hrHR.js +13 -0
  194. package/node/locales/huHU.js +13 -0
  195. package/node/locales/isIS.js +12 -0
  196. package/node/locales/itIT.js +13 -0
  197. package/node/locales/jaJP.js +13 -0
  198. package/node/locales/koKR.js +12 -0
  199. package/node/locales/nbNO.js +13 -0
  200. package/node/locales/nlNL.js +13 -0
  201. package/node/locales/nnNO.js +13 -0
  202. package/node/locales/plPL.js +13 -0
  203. package/node/locales/ptBR.js +11 -0
  204. package/node/locales/ptPT.js +11 -0
  205. package/node/locales/roRO.js +12 -0
  206. package/node/locales/ruRU.js +13 -0
  207. package/node/locales/skSK.js +12 -0
  208. package/node/locales/svSE.js +17 -5
  209. package/node/locales/trTR.js +13 -0
  210. package/node/locales/ukUA.js +12 -0
  211. package/node/locales/urPK.js +12 -0
  212. package/node/locales/viVN.js +13 -0
  213. package/node/locales/zhCN.js +15 -4
  214. package/node/locales/zhHK.js +12 -0
  215. package/node/locales/zhTW.js +12 -0
  216. package/package.json +4 -4
@@ -325,14 +325,6 @@ DataGridRaw.propTypes = {
325
325
  clipboardExport: PropTypes.bool,
326
326
  csvExport: PropTypes.bool
327
327
  }), PropTypes.bool]),
328
- /**
329
- * If `select`, a group header checkbox in indeterminate state (like "Select All" checkbox)
330
- * will select all the rows under it.
331
- * If `deselect`, it will deselect all the rows under it.
332
- * Works only if `checkboxSelection` is enabled.
333
- * @default "deselect"
334
- */
335
- indeterminateCheckboxAction: PropTypes.oneOf(['deselect', 'select']),
336
328
  /**
337
329
  * The initial state of the DataGrid.
338
330
  * The data in it will be set in the state on initialization but will not be controlled.
@@ -766,5 +758,13 @@ DataGridRaw.propTypes = {
766
758
  * If `true`, the Data Grid will auto span the cells over the rows having the same value.
767
759
  * @default false
768
760
  */
769
- unstable_rowSpanning: PropTypes.bool
761
+ unstable_rowSpanning: PropTypes.bool,
762
+ /**
763
+ * If `true`, the Data Grid enables column virtualization when `getRowHeight` is set to `() => 'auto'`.
764
+ * By default, column virtualization is disabled when dynamic row height is enabled to measure the row height correctly.
765
+ * For datasets with a large number of columns, this can cause performance issues.
766
+ * The downside of enabling this prop is that the row height will be estimated based the cells that are currently rendered, which can cause row height change when scrolling horizontally.
767
+ * @default false
768
+ */
769
+ virtualizeColumnsWithAutoRowHeight: PropTypes.bool
770
770
  };
package/README.md CHANGED
@@ -16,8 +16,8 @@ This component has the following peer dependencies that you need to install as w
16
16
  ```json
17
17
  "peerDependencies": {
18
18
  "@mui/material": "^5.15.14 || ^6.0.0",
19
- "react": "^17.0.0 || ^18.0.0",
20
- "react-dom": "^17.0.0 || ^18.0.0"
19
+ "react": "^17.0.0 || ^18.0.0 || ^19.0.0",
20
+ "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0"
21
21
  },
22
22
  ```
23
23
 
@@ -4,12 +4,12 @@ export type GridLoadingOverlayVariant = 'circular-progress' | 'linear-progress'
4
4
  export interface GridLoadingOverlayProps extends GridOverlayProps {
5
5
  /**
6
6
  * The variant of the overlay.
7
- * @default 'circular-progress'
7
+ * @default 'linear-progress'
8
8
  */
9
9
  variant?: GridLoadingOverlayVariant;
10
10
  /**
11
11
  * The variant of the overlay when no rows are displayed.
12
- * @default 'circular-progress'
12
+ * @default 'skeleton'
13
13
  */
14
14
  noRowsVariant?: GridLoadingOverlayVariant;
15
15
  }
@@ -30,8 +30,8 @@ const LOADING_VARIANTS = {
30
30
  };
31
31
  const GridLoadingOverlay = /*#__PURE__*/React.forwardRef(function GridLoadingOverlay(props, ref) {
32
32
  const {
33
- variant = 'circular-progress',
34
- noRowsVariant = 'circular-progress',
33
+ variant = 'linear-progress',
34
+ noRowsVariant = 'skeleton',
35
35
  style
36
36
  } = props,
37
37
  other = _objectWithoutPropertiesLoose(props, _excluded);
@@ -52,13 +52,13 @@ process.env.NODE_ENV !== "production" ? GridLoadingOverlay.propTypes = {
52
52
  // ----------------------------------------------------------------------
53
53
  /**
54
54
  * The variant of the overlay when no rows are displayed.
55
- * @default 'circular-progress'
55
+ * @default 'skeleton'
56
56
  */
57
57
  noRowsVariant: PropTypes.oneOf(['circular-progress', 'linear-progress', 'skeleton']),
58
58
  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
59
59
  /**
60
60
  * The variant of the overlay.
61
- * @default 'circular-progress'
61
+ * @default 'linear-progress'
62
62
  */
63
63
  variant: PropTypes.oneOf(['circular-progress', 'linear-progress', 'skeleton'])
64
64
  } : void 0;
@@ -50,7 +50,8 @@ const defaultLabelDisplayedRows = ({
50
50
  if (!estimated) {
51
51
  return `${from}–${to} of ${count !== -1 ? count : `more than ${to}`}`;
52
52
  }
53
- return `${from}–${to} of ${count !== -1 ? count : `more than ${estimated > to ? estimated : to}`}`;
53
+ const estimateLabel = estimated && estimated > to ? `around ${estimated}` : `more than ${to}`;
54
+ return `${from}–${to} of ${count !== -1 ? count : estimateLabel}`;
54
55
  };
55
56
 
56
57
  // A mutable version of a readonly array.
@@ -1,12 +1,13 @@
1
1
  import * as React from 'react';
2
- import { GridOverlayType } from '../../hooks/features/overlays/useGridOverlays';
3
2
  import { GridLoadingOverlayVariant } from '../GridLoadingOverlay';
3
+ import { GridSlotsComponent } from '../../models';
4
+ export type GridOverlayType = keyof Pick<GridSlotsComponent, 'noRowsOverlay' | 'noResultsOverlay' | 'loadingOverlay'> | null;
4
5
  interface GridOverlaysProps {
5
6
  overlayType: GridOverlayType;
6
7
  loadingOverlayVariant: GridLoadingOverlayVariant | null;
7
8
  }
8
- export declare function GridOverlays(props: GridOverlaysProps): React.JSX.Element | null;
9
- export declare namespace GridOverlays {
9
+ export declare function GridOverlayWrapper(props: React.PropsWithChildren<GridOverlaysProps>): React.JSX.Element;
10
+ export declare namespace GridOverlayWrapper {
10
11
  var propTypes: any;
11
12
  }
12
13
  export {};
@@ -52,7 +52,7 @@ const useUtilityClasses = ownerState => {
52
52
  };
53
53
  return composeClasses(slots, getDataGridUtilityClass, classes);
54
54
  };
55
- function GridOverlayWrapper(props) {
55
+ export function GridOverlayWrapper(props) {
56
56
  const apiRef = useGridApiContext();
57
57
  const rootProps = useGridRootProps();
58
58
  const dimensions = useGridSelector(apiRef, gridDimensionsSelector);
@@ -83,26 +83,4 @@ process.env.NODE_ENV !== "production" ? GridOverlayWrapper.propTypes = {
83
83
  // ----------------------------------------------------------------------
84
84
  loadingOverlayVariant: PropTypes.oneOf(['circular-progress', 'linear-progress', 'skeleton']),
85
85
  overlayType: PropTypes.oneOf(['loadingOverlay', 'noResultsOverlay', 'noRowsOverlay'])
86
- } : void 0;
87
- process.env.NODE_ENV !== "production" ? GridOverlays.propTypes = {
88
- // ----------------------------- Warning --------------------------------
89
- // | These PropTypes are generated from the TypeScript type definitions |
90
- // | To update them edit the TypeScript types and run "pnpm proptypes" |
91
- // ----------------------------------------------------------------------
92
- loadingOverlayVariant: PropTypes.oneOf(['circular-progress', 'linear-progress', 'skeleton']),
93
- overlayType: PropTypes.oneOf(['loadingOverlay', 'noResultsOverlay', 'noRowsOverlay'])
94
- } : void 0;
95
- export function GridOverlays(props) {
96
- const {
97
- overlayType
98
- } = props;
99
- const rootProps = useGridRootProps();
100
- if (!overlayType) {
101
- return null;
102
- }
103
- const Overlay = rootProps.slots?.[overlayType];
104
- const overlayProps = rootProps.slotProps?.[overlayType];
105
- return /*#__PURE__*/_jsx(GridOverlayWrapper, _extends({}, props, {
106
- children: /*#__PURE__*/_jsx(Overlay, _extends({}, overlayProps))
107
- }));
108
- }
86
+ } : void 0;
@@ -1,3 +1,2 @@
1
1
  export * from './GridBody';
2
2
  export * from './GridFooterPlaceholder';
3
- export * from './GridOverlays';
@@ -1,3 +1,2 @@
1
1
  export * from "./GridBody.js";
2
- export * from "./GridFooterPlaceholder.js";
3
- export * from "./GridOverlays.js";
2
+ export * from "./GridFooterPlaceholder.js";
@@ -15,7 +15,6 @@ import { useGridSelector, objectShallowCompare } from "../../hooks/utils/useGrid
15
15
  import { useGridApiContext } from "../../hooks/utils/useGridApiContext.js";
16
16
  import { useGridRootProps } from "../../hooks/utils/useGridRootProps.js";
17
17
  import { gridFocusCellSelector } from "../../hooks/features/focus/gridFocusStateSelector.js";
18
- import { MissingRowIdError } from "../../hooks/features/rows/useGridParamsApi.js";
19
18
  import { shouldCellShowLeftBorder, shouldCellShowRightBorder } from "../../utils/cellBorderUtils.js";
20
19
  import { GridPinnedColumnPosition } from "../../hooks/features/columns/gridColumnsInterfaces.js";
21
20
  import { gridRowSpanningHiddenCellsSelector, gridRowSpanningSpannedCellsSelector } from "../../hooks/features/rows/gridRowSpanningSelectors.js";
@@ -114,16 +113,13 @@ const GridCell = /*#__PURE__*/React.forwardRef(function GridCell(props, ref) {
114
113
  // This is required because `.getCellParams` tries to get the `state.rows.tree` entry
115
114
  // associated with `rowId`/`fieldId`, but this selector runs after the state has been
116
115
  // updated, while `rowId`/`fieldId` reference an entry in the old state.
117
- try {
118
- const result = apiRef.current.getCellParams(rowId, field);
119
- result.api = apiRef.current;
120
- return result;
121
- } catch (error) {
122
- if (error instanceof MissingRowIdError) {
123
- return EMPTY_CELL_PARAMS;
124
- }
125
- throw error;
116
+ const row = apiRef.current.getRow(rowId);
117
+ if (!row) {
118
+ return EMPTY_CELL_PARAMS;
126
119
  }
120
+ const result = apiRef.current.getCellParams(rowId, field);
121
+ result.api = apiRef.current;
122
+ return result;
127
123
  }, objectShallowCompare);
128
124
  const isSelected = useGridSelector(apiRef, () => apiRef.current.unstable_applyPipeProcessors('isCellSelected', false, {
129
125
  id: rowId,
@@ -211,6 +207,7 @@ const GridCell = /*#__PURE__*/React.forwardRef(function GridCell(props, ref) {
211
207
  padding: 0,
212
208
  opacity: 0,
213
209
  width: 0,
210
+ height: 0,
214
211
  border: 0
215
212
  };
216
213
  }
@@ -229,6 +226,9 @@ const GridCell = /*#__PURE__*/React.forwardRef(function GridCell(props, ref) {
229
226
  if (rowSpan > 1) {
230
227
  cellStyle.height = `calc(var(--height) * ${rowSpan})`;
231
228
  cellStyle.zIndex = 5;
229
+ if (isLeftPinned || isRightPinned) {
230
+ cellStyle.zIndex = 6;
231
+ }
232
232
  }
233
233
  return cellStyle;
234
234
  }, [width, isNotVisible, styleProp, pinnedOffset, pinnedPosition, isRtl, rowSpan]);
@@ -79,12 +79,11 @@ const GridCellCheckboxForwardRef = /*#__PURE__*/React.forwardRef(function GridCe
79
79
  if (rowNode.type === 'footer' || rowNode.type === 'pinnedRow') {
80
80
  return null;
81
81
  }
82
- const label = apiRef.current.getLocaleText(isChecked ? 'checkboxSelectionUnselectRow' : 'checkboxSelectionSelectRow');
83
- const checked = rootProps.indeterminateCheckboxAction === 'select' ? isChecked && !isIndeterminate : isChecked;
82
+ const label = apiRef.current.getLocaleText(isChecked && !isIndeterminate ? 'checkboxSelectionUnselectRow' : 'checkboxSelectionSelectRow');
84
83
  return /*#__PURE__*/_jsx(rootProps.slots.baseCheckbox, _extends({
85
84
  ref: handleRef,
86
85
  tabIndex: tabIndex,
87
- checked: checked,
86
+ checked: isChecked && !isIndeterminate,
88
87
  onChange: handleChange,
89
88
  className: classes.root,
90
89
  inputProps: {
@@ -92,12 +92,11 @@ const GridHeaderCheckbox = /*#__PURE__*/React.forwardRef(function GridHeaderChec
92
92
  React.useEffect(() => {
93
93
  return apiRef.current.subscribeEvent('rowSelectionChange', handleSelectionChange);
94
94
  }, [apiRef, handleSelectionChange]);
95
- const label = apiRef.current.getLocaleText(isChecked ? 'checkboxSelectionUnselectAllRows' : 'checkboxSelectionSelectAllRows');
96
- const checked = rootProps.indeterminateCheckboxAction === 'select' ? isChecked && !isIndeterminate : isChecked;
95
+ const label = apiRef.current.getLocaleText(isChecked && !isIndeterminate ? 'checkboxSelectionUnselectAllRows' : 'checkboxSelectionSelectAllRows');
97
96
  return /*#__PURE__*/_jsx(rootProps.slots.baseCheckbox, _extends({
98
97
  ref: ref,
99
98
  indeterminate: isIndeterminate,
100
- checked: checked,
99
+ checked: isChecked && !isIndeterminate,
101
100
  onChange: handleChange,
102
101
  className: classes.root,
103
102
  inputProps: {
@@ -1,8 +1,10 @@
1
1
  import * as React from 'react';
2
+ import { TextFieldProps } from '@mui/material/TextField';
2
3
  import type { GridColDef } from '../../models/colDef/gridColDef';
3
4
  export interface GridColumnsManagementProps {
4
5
  sort?: 'asc' | 'desc';
5
6
  searchPredicate?: (column: GridColDef, searchValue: string) => boolean;
7
+ searchInputProps?: Partial<TextFieldProps>;
6
8
  /**
7
9
  * If `true`, the column search field will be focused automatically.
8
10
  * If `false`, the first column switch input will be focused automatically.
@@ -5,6 +5,8 @@ import PropTypes from 'prop-types';
5
5
  import composeClasses from '@mui/utils/composeClasses';
6
6
  import FormControlLabel from '@mui/material/FormControlLabel';
7
7
  import { styled } from '@mui/material/styles';
8
+ import TextField from '@mui/material/TextField';
9
+ import { inputBaseClasses } from '@mui/material/InputBase';
8
10
  import { gridColumnDefinitionsSelector, gridColumnVisibilityModelSelector } from "../../hooks/features/columns/gridColumnsSelector.js";
9
11
  import { useGridSelector } from "../../hooks/utils/useGridSelector.js";
10
12
  import { useGridApiContext } from "../../hooks/utils/useGridApiContext.js";
@@ -20,6 +22,7 @@ const useUtilityClasses = ownerState => {
20
22
  const slots = {
21
23
  root: ['columnsManagement'],
22
24
  header: ['columnsManagementHeader'],
25
+ searchInput: ['columnsManagementSearchInput'],
23
26
  footer: ['columnsManagementFooter'],
24
27
  row: ['columnsManagementRow']
25
28
  };
@@ -42,7 +45,8 @@ function GridColumnsManagement(props) {
42
45
  disableShowHideToggle = false,
43
46
  disableResetButton = false,
44
47
  toggleAllMode = 'all',
45
- getTogglableColumns
48
+ getTogglableColumns,
49
+ searchInputProps
46
50
  } = props;
47
51
  const isResetDisabled = React.useMemo(() => checkColumnVisibilityModelsSame(columnVisibilityModel, initialColumnVisibilityModel), [columnVisibilityModel, initialColumnVisibilityModel]);
48
52
  const sortedColumns = React.useMemo(() => {
@@ -109,28 +113,52 @@ function GridColumnsManagement(props) {
109
113
  }
110
114
  return false;
111
115
  };
116
+ const handleSearchReset = React.useCallback(() => {
117
+ setSearchValue('');
118
+ searchInputRef.current.focus();
119
+ }, []);
112
120
  return /*#__PURE__*/_jsxs(React.Fragment, {
113
121
  children: [/*#__PURE__*/_jsx(GridColumnsManagementHeader, {
114
122
  className: classes.header,
115
123
  ownerState: rootProps,
116
- children: /*#__PURE__*/_jsx(rootProps.slots.baseTextField, _extends({
124
+ children: /*#__PURE__*/_jsx(SearchInput, _extends({
125
+ as: rootProps.slots.baseTextField,
126
+ ownerState: rootProps,
117
127
  placeholder: apiRef.current.getLocaleText('columnsManagementSearchTitle'),
118
128
  inputRef: searchInputRef,
129
+ className: classes.searchInput,
119
130
  value: searchValue,
120
131
  onChange: handleSearchValueChange,
121
132
  variant: "outlined",
122
133
  size: "small",
134
+ type: "search",
123
135
  InputProps: {
124
136
  startAdornment: /*#__PURE__*/_jsx(rootProps.slots.baseInputAdornment, {
125
137
  position: "start",
126
138
  children: /*#__PURE__*/_jsx(rootProps.slots.quickFilterIcon, {})
127
139
  }),
128
- sx: {
129
- pl: 1.5
130
- }
140
+ endAdornment: /*#__PURE__*/_jsx(rootProps.slots.baseIconButton, _extends({
141
+ "aria-label": apiRef.current.getLocaleText('columnsManagementDeleteIconLabel'),
142
+ size: "small",
143
+ sx: [searchValue ? {
144
+ visibility: 'visible'
145
+ } : {
146
+ visibility: 'hidden'
147
+ }],
148
+ tabIndex: -1,
149
+ onClick: handleSearchReset
150
+ }, rootProps.slotProps?.baseIconButton, {
151
+ children: /*#__PURE__*/_jsx(rootProps.slots.quickFilterClearIcon, {
152
+ fontSize: "small"
153
+ })
154
+ }))
155
+ },
156
+ inputProps: {
157
+ 'aria-label': apiRef.current.getLocaleText('columnsManagementSearchTitle')
131
158
  },
159
+ autoComplete: "off",
132
160
  fullWidth: true
133
- }, rootProps.slotProps?.baseTextField))
161
+ }, rootProps.slotProps?.baseTextField, searchInputProps))
134
162
  }), /*#__PURE__*/_jsxs(GridColumnsManagementBody, {
135
163
  className: classes.root,
136
164
  ownerState: rootProps,
@@ -205,6 +233,7 @@ process.env.NODE_ENV !== "production" ? GridColumnsManagement.propTypes = {
205
233
  * @returns {GridColDef['field'][]} The list of togglable columns' field names.
206
234
  */
207
235
  getTogglableColumns: PropTypes.func,
236
+ searchInputProps: PropTypes.object,
208
237
  searchPredicate: PropTypes.func,
209
238
  sort: PropTypes.oneOf(['asc', 'desc']),
210
239
  /**
@@ -239,6 +268,24 @@ const GridColumnsManagementHeader = styled('div', {
239
268
  }) => ({
240
269
  padding: theme.spacing(1.5, 3)
241
270
  }));
271
+ const SearchInput = styled(TextField, {
272
+ name: 'MuiDataGrid',
273
+ slot: 'ColumnsManagementSearchInput',
274
+ overridesResolver: (props, styles) => styles.columnsManagementSearchInput
275
+ })(({
276
+ theme
277
+ }) => ({
278
+ [`& .${inputBaseClasses.root}`]: {
279
+ padding: theme.spacing(0, 1.5, 0, 1.5)
280
+ },
281
+ [`& .${inputBaseClasses.input}::-webkit-search-decoration,
282
+ & .${inputBaseClasses.input}::-webkit-search-cancel-button,
283
+ & .${inputBaseClasses.input}::-webkit-search-results-button,
284
+ & .${inputBaseClasses.input}::-webkit-search-results-decoration`]: {
285
+ /* clears the 'X' icon from Chrome */
286
+ display: 'none'
287
+ }
288
+ }));
242
289
  const GridColumnsManagementFooter = styled('div', {
243
290
  name: 'MuiDataGrid',
244
291
  slot: 'ColumnsManagementFooter',
@@ -36,7 +36,7 @@ const GridToolbarColumnsButton = /*#__PURE__*/React.forwardRef(function GridTool
36
36
  return /*#__PURE__*/_jsx(rootProps.slots.baseTooltip, _extends({
37
37
  title: apiRef.current.getLocaleText('toolbarColumnsLabel'),
38
38
  enterDelay: 1000
39
- }, tooltipProps, rootProps.slotProps?.baseTooltip, {
39
+ }, rootProps.slotProps?.baseTooltip, tooltipProps, {
40
40
  children: /*#__PURE__*/_jsx(rootProps.slots.baseButton, _extends({
41
41
  ref: ref,
42
42
  id: columnButtonId,
@@ -45,10 +45,9 @@ const GridToolbarColumnsButton = /*#__PURE__*/React.forwardRef(function GridTool
45
45
  "aria-haspopup": "menu",
46
46
  "aria-expanded": isOpen,
47
47
  "aria-controls": isOpen ? columnPanelId : undefined,
48
- startIcon: /*#__PURE__*/_jsx(rootProps.slots.columnSelectorIcon, {})
49
- }, buttonProps, {
48
+ startIcon: /*#__PURE__*/_jsx(rootProps.slots.columnSelectorIcon, {}),
50
49
  onClick: showColumns
51
- }, rootProps.slotProps?.baseButton, {
50
+ }, rootProps.slotProps?.baseButton, buttonProps, {
52
51
  children: apiRef.current.getLocaleText('toolbarColumns')
53
52
  }))
54
53
  }));
@@ -83,7 +83,7 @@ const GridToolbarDensitySelector = /*#__PURE__*/React.forwardRef(function GridTo
83
83
  children: [/*#__PURE__*/_jsx(rootProps.slots.baseTooltip, _extends({
84
84
  title: apiRef.current.getLocaleText('toolbarDensityLabel'),
85
85
  enterDelay: 1000
86
- }, tooltipProps, rootProps.slotProps?.baseTooltip, {
86
+ }, rootProps.slotProps?.baseTooltip, tooltipProps, {
87
87
  children: /*#__PURE__*/_jsx(rootProps.slots.baseButton, _extends({
88
88
  ref: handleRef,
89
89
  size: "small",
@@ -92,10 +92,9 @@ const GridToolbarDensitySelector = /*#__PURE__*/React.forwardRef(function GridTo
92
92
  "aria-haspopup": "menu",
93
93
  "aria-expanded": open,
94
94
  "aria-controls": open ? densityMenuId : undefined,
95
- id: densityButtonId
96
- }, buttonProps, {
95
+ id: densityButtonId,
97
96
  onClick: handleDensitySelectorOpen
98
- }, rootProps.slotProps?.baseButton, {
97
+ }, rootProps.slotProps?.baseButton, buttonProps, {
99
98
  children: apiRef.current.getLocaleText('toolbarDensity')
100
99
  }))
101
100
  })), /*#__PURE__*/_jsx(GridMenu, {
@@ -42,7 +42,7 @@ const GridToolbarExportContainer = /*#__PURE__*/React.forwardRef(function GridTo
42
42
  children: [/*#__PURE__*/_jsx(rootProps.slots.baseTooltip, _extends({
43
43
  title: apiRef.current.getLocaleText('toolbarExportLabel'),
44
44
  enterDelay: 1000
45
- }, tooltipProps, rootProps.slotProps?.baseTooltip, {
45
+ }, rootProps.slotProps?.baseTooltip, tooltipProps, {
46
46
  children: /*#__PURE__*/_jsx(rootProps.slots.baseButton, _extends({
47
47
  ref: handleRef,
48
48
  size: "small",
@@ -51,10 +51,9 @@ const GridToolbarExportContainer = /*#__PURE__*/React.forwardRef(function GridTo
51
51
  "aria-label": apiRef.current.getLocaleText('toolbarExportLabel'),
52
52
  "aria-haspopup": "menu",
53
53
  "aria-controls": open ? exportMenuId : undefined,
54
- id: exportButtonId
55
- }, buttonProps, {
54
+ id: exportButtonId,
56
55
  onClick: handleMenuOpen
57
- }, rootProps.slotProps?.baseButton, {
56
+ }, rootProps.slotProps?.baseButton, buttonProps, {
58
57
  children: apiRef.current.getLocaleText('toolbarExport')
59
58
  }))
60
59
  })), /*#__PURE__*/_jsx(GridMenu, {
@@ -1,6 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { ButtonProps } from '@mui/material/Button';
3
3
  import { TooltipProps } from '@mui/material/Tooltip';
4
+ import { BadgeProps } from '@mui/material/Badge';
4
5
  export interface GridToolbarFilterButtonProps {
5
6
  /**
6
7
  * The props used for each slot inside.
@@ -9,6 +10,7 @@ export interface GridToolbarFilterButtonProps {
9
10
  slotProps?: {
10
11
  button?: Partial<ButtonProps>;
11
12
  tooltip?: Partial<TooltipProps>;
13
+ badge?: Partial<BadgeProps>;
12
14
  };
13
15
  }
14
16
  declare const GridToolbarFilterButton: React.ForwardRefExoticComponent<GridToolbarFilterButtonProps & React.RefAttributes<HTMLButtonElement>>;
@@ -37,6 +37,7 @@ const GridToolbarFilterButton = /*#__PURE__*/React.forwardRef(function GridToolb
37
37
  } = props;
38
38
  const buttonProps = slotProps.button || {};
39
39
  const tooltipProps = slotProps.tooltip || {};
40
+ const badgeProps = slotProps.badge || {};
40
41
  const apiRef = useGridApiContext();
41
42
  const rootProps = useGridRootProps();
42
43
  const activeFilters = useGridSelector(apiRef, gridFilterActiveItemsSelector);
@@ -94,7 +95,7 @@ const GridToolbarFilterButton = /*#__PURE__*/React.forwardRef(function GridToolb
94
95
  return /*#__PURE__*/_jsx(rootProps.slots.baseTooltip, _extends({
95
96
  title: tooltipContentNode,
96
97
  enterDelay: 1000
97
- }, tooltipProps, rootProps.slotProps?.baseTooltip, {
98
+ }, rootProps.slotProps?.baseTooltip, tooltipProps, {
98
99
  children: /*#__PURE__*/_jsx(rootProps.slots.baseButton, _extends({
99
100
  ref: ref,
100
101
  id: filterButtonId,
@@ -103,14 +104,14 @@ const GridToolbarFilterButton = /*#__PURE__*/React.forwardRef(function GridToolb
103
104
  "aria-controls": isOpen ? filterPanelId : undefined,
104
105
  "aria-expanded": isOpen,
105
106
  "aria-haspopup": true,
106
- startIcon: /*#__PURE__*/_jsx(rootProps.slots.baseBadge, {
107
+ startIcon: /*#__PURE__*/_jsx(rootProps.slots.baseBadge, _extends({
107
108
  badgeContent: activeFilters.length,
108
- color: "primary",
109
+ color: "primary"
110
+ }, rootProps.slotProps?.baseBadge, badgeProps, {
109
111
  children: /*#__PURE__*/_jsx(rootProps.slots.openFilterButtonIcon, {})
110
- })
111
- }, buttonProps, {
112
+ })),
112
113
  onClick: toggleFilter
113
- }, rootProps.slotProps?.baseButton, {
114
+ }, rootProps.slotProps?.baseButton, buttonProps, {
114
115
  children: apiRef.current.getLocaleText('toolbarFilters')
115
116
  }))
116
117
  }));
@@ -78,6 +78,7 @@ function GridToolbarQuickFilter(props) {
78
78
  apiRef.current.setQuickFilterValues(newQuickFilterValues);
79
79
  }, [apiRef, quickFilterParser]);
80
80
  const debouncedUpdateSearchValue = React.useMemo(() => debounce(updateSearchValue, debounceMs), [updateSearchValue, debounceMs]);
81
+ React.useEffect(() => debouncedUpdateSearchValue.clear, [debouncedUpdateSearchValue]);
81
82
  const handleSearchValueChange = React.useCallback(event => {
82
83
  const newSearchValue = event.target.value;
83
84
  setSearchValue(newSearchValue);
@@ -10,7 +10,6 @@ import { getDataGridUtilityClass } from "../../constants/gridClasses.js";
10
10
  import { gridDimensionsSelector } from "../../hooks/features/dimensions/index.js";
11
11
  import { useGridVirtualScroller } from "../../hooks/features/virtualization/useGridVirtualScroller.js";
12
12
  import { useGridOverlays } from "../../hooks/features/overlays/useGridOverlays.js";
13
- import { GridOverlays as Overlays } from "../base/GridOverlays.js";
14
13
  import { GridHeaders } from "../GridHeaders.js";
15
14
  import { GridMainContainer as Container } from "./GridMainContainer.js";
16
15
  import { GridTopContainer as TopContainer } from "./GridTopContainer.js";
@@ -55,7 +54,10 @@ function GridVirtualScroller(props) {
55
54
  const apiRef = useGridApiContext();
56
55
  const rootProps = useGridRootProps();
57
56
  const dimensions = useGridSelector(apiRef, gridDimensionsSelector);
58
- const overlaysProps = useGridOverlays();
57
+ const {
58
+ getOverlay,
59
+ overlaysProps
60
+ } = useGridOverlays();
59
61
  const classes = useUtilityClasses(rootProps, dimensions, overlaysProps.loadingOverlayVariant);
60
62
  const virtualScroller = useGridVirtualScroller();
61
63
  const {
@@ -84,7 +86,7 @@ function GridVirtualScroller(props) {
84
86
  position: "top",
85
87
  virtualScroller: virtualScroller
86
88
  })]
87
- }), /*#__PURE__*/_jsx(Overlays, _extends({}, overlaysProps)), /*#__PURE__*/_jsx(Content, _extends({}, getContentProps(), {
89
+ }), getOverlay(), /*#__PURE__*/_jsx(Content, _extends({}, getContentProps(), {
88
90
  children: /*#__PURE__*/_jsxs(RenderZone, _extends({}, getRenderZoneProps(), {
89
91
  children: [rows, /*#__PURE__*/_jsx(rootProps.slots.detailPanels, {
90
92
  virtualScroller: virtualScroller
@@ -34,8 +34,6 @@ export const DATA_GRID_PROPS_DEFAULT_VALUES = {
34
34
  hideFooterSelectedRowCount: false,
35
35
  ignoreDiacritics: false,
36
36
  ignoreValueFormatterDuringExport: false,
37
- // TODO v8: Update to 'select'
38
- indeterminateCheckboxAction: 'deselect',
39
37
  keepColumnPositionIfDraggedOutside: false,
40
38
  keepNonExistentRowsSelected: false,
41
39
  loading: false,
@@ -56,5 +54,6 @@ export const DATA_GRID_PROPS_DEFAULT_VALUES = {
56
54
  sortingMode: 'client',
57
55
  sortingOrder: ['asc', 'desc', null],
58
56
  throttleRowsMs: 0,
59
- unstable_rowSpanning: false
57
+ unstable_rowSpanning: false,
58
+ virtualizeColumnsWithAutoRowHeight: false
60
59
  };
@@ -236,6 +236,10 @@ export interface GridClasses {
236
236
  * Styles applied to the columns management header element.
237
237
  */
238
238
  columnsManagementHeader: string;
239
+ /**
240
+ * Styles applied to the columns management search input element.
241
+ */
242
+ columnsManagementSearchInput: string;
239
243
  /**
240
244
  * Styles applied to the columns management footer element.
241
245
  */
@@ -582,6 +586,26 @@ export interface GridClasses {
582
586
  * Styles applied to the toolbar filter list element.
583
587
  */
584
588
  toolbarFilterList: string;
589
+ /**
590
+ * Styles applied to the toolbar prompt control element.
591
+ */
592
+ toolbarPromptControl: string;
593
+ /**
594
+ * Styles applied to the toolbar prompt control element when recording.
595
+ */
596
+ 'toolbarPromptControl--recording': string;
597
+ /**
598
+ * Styles applied to the toolbar prompt control recording indicator element.
599
+ */
600
+ toolbarPromptControlRecordingIndicator: string;
601
+ /**
602
+ * Styles applied to the toolbar prompt control record button element.
603
+ */
604
+ toolbarPromptControlRecordButton: string;
605
+ /**
606
+ * Styles applied to the toolbar prompt control send button element.
607
+ */
608
+ toolbarPromptControlSendButton: string;
585
609
  /**
586
610
  * Styles applied the grid if `showColumnVerticalBorder={true}`.
587
611
  */
@@ -2,4 +2,4 @@ import { unstable_generateUtilityClasses as generateUtilityClasses, unstable_gen
2
2
  export function getDataGridUtilityClass(slot) {
3
3
  return generateUtilityClass('MuiDataGrid', slot);
4
4
  }
5
- export const gridClasses = generateUtilityClasses('MuiDataGrid', ['actionsCell', 'aggregationColumnHeader', 'aggregationColumnHeader--alignLeft', 'aggregationColumnHeader--alignCenter', 'aggregationColumnHeader--alignRight', 'aggregationColumnHeaderLabel', 'autoHeight', 'autosizing', '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', '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--lastUnpinned', 'columnHeader--siblingFocused', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderTitle', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnHeader--filledGroup', 'columnHeader--emptyGroup', 'columnHeaders', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'columnSeparator', 'columnsManagement', 'columnsManagementRow', 'columnsManagementHeader', 'columnsManagementFooter', 'container--top', 'container--bottom', 'detailPanel', 'detailPanels', 'detailPanelToggleCell', 'detailPanelToggleCell--expanded', 'footerCell', 'panel', 'panelHeader', 'panelWrapper', 'panelContent', 'panelFooter', 'paper', 'editBooleanCell', 'editInputCell', 'filler', 'filler--borderBottom', 'filler--pinnedLeft', 'filler--pinnedRight', 'filterForm', 'filterFormDeleteIcon', 'filterFormLogicOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'headerFilterRow', 'iconButtonContainer', 'iconSeparator', 'main', 'main--hasPinnedRight', 'main--hasSkeletonLoadingOverlay', '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', 'row--dragging', 'row--dynamicHeight', 'row--detailPanelExpanded', 'row--borderBottom', 'rowReorderCellPlaceholder', 'rowCount', 'rowReorderCellContainer', 'rowReorderCell', 'rowReorderCell--draggable', 'rowSkeleton', 'scrollArea--left', 'scrollArea--right', 'scrollArea', 'scrollbar', 'scrollbar--vertical', 'scrollbar--horizontal', 'scrollbarFiller', 'scrollbarFiller--header', 'scrollbarFiller--borderTop', 'scrollbarFiller--borderBottom', 'scrollbarFiller--pinnedRight', 'selectedRowCount', 'sortIcon', 'toolbarContainer', 'toolbarFilterList', 'virtualScroller', 'virtualScroller--hasScrollX', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'pinnedColumns', 'withVerticalBorder', 'withBorderColor', 'cell--withRightBorder', 'cell--withLeftBorder', 'columnHeader--withRightBorder', 'columnHeader--withLeftBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'treeDataGroupingCellLoadingContainer', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'groupingCriteriaCellLoadingContainer', 'pinnedRows', 'pinnedRows--top', 'pinnedRows--bottom', 'pinnedRowsRenderZone']);
5
+ export const gridClasses = generateUtilityClasses('MuiDataGrid', ['actionsCell', 'aggregationColumnHeader', 'aggregationColumnHeader--alignLeft', 'aggregationColumnHeader--alignCenter', 'aggregationColumnHeader--alignRight', 'aggregationColumnHeaderLabel', 'autoHeight', 'autosizing', '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', '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--lastUnpinned', 'columnHeader--siblingFocused', 'columnHeaderCheckbox', 'columnHeaderDraggableContainer', 'columnHeaderTitle', 'columnHeaderTitleContainer', 'columnHeaderTitleContainerContent', 'columnHeader--filledGroup', 'columnHeader--emptyGroup', 'columnHeaders', 'columnSeparator--resizable', 'columnSeparator--resizing', 'columnSeparator--sideLeft', 'columnSeparator--sideRight', 'columnSeparator', 'columnsManagement', 'columnsManagementRow', 'columnsManagementHeader', 'columnsManagementSearchInput', 'columnsManagementFooter', 'container--top', 'container--bottom', 'detailPanel', 'detailPanels', 'detailPanelToggleCell', 'detailPanelToggleCell--expanded', 'footerCell', 'panel', 'panelHeader', 'panelWrapper', 'panelContent', 'panelFooter', 'paper', 'editBooleanCell', 'editInputCell', 'filler', 'filler--borderBottom', 'filler--pinnedLeft', 'filler--pinnedRight', 'filterForm', 'filterFormDeleteIcon', 'filterFormLogicOperatorInput', 'filterFormColumnInput', 'filterFormOperatorInput', 'filterFormValueInput', 'filterIcon', 'footerContainer', 'headerFilterRow', 'iconButtonContainer', 'iconSeparator', 'main', 'main--hasPinnedRight', 'main--hasSkeletonLoadingOverlay', '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', 'row--dragging', 'row--dynamicHeight', 'row--detailPanelExpanded', 'row--borderBottom', 'rowReorderCellPlaceholder', 'rowCount', 'rowReorderCellContainer', 'rowReorderCell', 'rowReorderCell--draggable', 'rowSkeleton', 'scrollArea--left', 'scrollArea--right', 'scrollArea', 'scrollbar', 'scrollbar--vertical', 'scrollbar--horizontal', 'scrollbarFiller', 'scrollbarFiller--header', 'scrollbarFiller--borderTop', 'scrollbarFiller--borderBottom', 'scrollbarFiller--pinnedRight', 'selectedRowCount', 'sortIcon', 'toolbarContainer', 'toolbarFilterList', 'toolbarPromptControl', 'toolbarPromptControl--recording', 'toolbarPromptControlRecordingIndicator', 'toolbarPromptControlRecordButton', 'toolbarPromptControlSendButton', 'virtualScroller', 'virtualScroller--hasScrollX', 'virtualScrollerContent', 'virtualScrollerContent--overflowed', 'virtualScrollerRenderZone', 'pinnedColumns', 'withVerticalBorder', 'withBorderColor', 'cell--withRightBorder', 'cell--withLeftBorder', 'columnHeader--withRightBorder', 'columnHeader--withLeftBorder', 'treeDataGroupingCell', 'treeDataGroupingCellToggle', 'treeDataGroupingCellLoadingContainer', 'groupingCriteriaCell', 'groupingCriteriaCellToggle', 'groupingCriteriaCellLoadingContainer', 'pinnedRows', 'pinnedRows--top', 'pinnedRows--bottom', 'pinnedRowsRenderZone']);
@@ -21,6 +21,16 @@ export const GRID_DEFAULT_LOCALE_TEXT = {
21
21
  toolbarQuickFilterPlaceholder: 'Search…',
22
22
  toolbarQuickFilterLabel: 'Search',
23
23
  toolbarQuickFilterDeleteIconLabel: 'Clear',
24
+ // Prompt toolbar field
25
+ toolbarPromptControlPlaceholder: 'Type a prompt…',
26
+ toolbarPromptControlWithRecordingPlaceholder: 'Type or record a prompt…',
27
+ toolbarPromptControlRecordingPlaceholder: 'Listening for prompt…',
28
+ toolbarPromptControlLabel: 'Prompt input',
29
+ toolbarPromptControlRecordButtonDefaultLabel: 'Record',
30
+ toolbarPromptControlRecordButtonActiveLabel: 'Stop recording',
31
+ toolbarPromptControlSendActionLabel: 'Send',
32
+ toolbarPromptControlSendActionAriaLabel: 'Send prompt',
33
+ toolbarPromptControlErrorMessage: 'An error occurred while processing the request. Please try again with a different prompt.',
24
34
  // Export selector toolbar button text
25
35
  toolbarExport: 'Export',
26
36
  toolbarExportLabel: 'Export',
@@ -32,6 +42,7 @@ export const GRID_DEFAULT_LOCALE_TEXT = {
32
42
  columnsManagementNoColumns: 'No columns',
33
43
  columnsManagementShowHideAllText: 'Show/Hide All',
34
44
  columnsManagementReset: 'Reset',
45
+ columnsManagementDeleteIconLabel: 'Clear',
35
46
  // Filter panel text
36
47
  filterPanelAddFilter: 'Add filter',
37
48
  filterPanelRemoveAll: 'Remove all',