@mui/x-data-grid 7.23.2 → 7.23.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.
Files changed (202) hide show
  1. package/CHANGELOG.md +86 -0
  2. package/DataGrid/DataGrid.js +7 -4
  3. package/README.md +1 -1
  4. package/components/GridColumnHeaders.d.ts +1 -1
  5. package/components/GridColumnHeaders.js +4 -4
  6. package/components/GridFooter.d.ts +2 -1
  7. package/components/GridFooter.js +4 -4
  8. package/components/GridLoadingOverlay.d.ts +1 -1
  9. package/components/GridLoadingOverlay.js +3 -2
  10. package/components/GridNoResultsOverlay.d.ts +2 -1
  11. package/components/GridNoResultsOverlay.js +4 -4
  12. package/components/GridNoRowsOverlay.d.ts +2 -1
  13. package/components/GridNoRowsOverlay.js +4 -4
  14. package/components/GridPagination.d.ts +1 -1
  15. package/components/GridPagination.js +5 -3
  16. package/components/GridRow.d.ts +1 -1
  17. package/components/GridRow.js +15 -3
  18. package/components/GridRowCount.d.ts +1 -1
  19. package/components/GridRowCount.js +3 -2
  20. package/components/GridSelectedRowCount.d.ts +4 -1
  21. package/components/GridSelectedRowCount.js +3 -2
  22. package/components/GridSkeletonLoadingOverlay.d.ts +1 -1
  23. package/components/GridSkeletonLoadingOverlay.js +4 -3
  24. package/components/cell/GridActionsCell.js +8 -1
  25. package/components/cell/GridActionsCellItem.d.ts +1 -1
  26. package/components/cell/GridActionsCellItem.js +3 -2
  27. package/components/cell/GridCell.d.ts +1 -1
  28. package/components/cell/GridCell.js +3 -2
  29. package/components/cell/GridEditInputCell.d.ts +1 -1
  30. package/components/cell/GridEditInputCell.js +72 -3
  31. package/components/columnHeaders/GridBaseColumnHeaders.d.ts +1 -1
  32. package/components/columnHeaders/GridBaseColumnHeaders.js +4 -3
  33. package/components/columnHeaders/GridColumnHeaderTitle.js +5 -3
  34. package/components/columnHeaders/GridGenericColumnHeaderItem.d.ts +1 -1
  35. package/components/columnHeaders/GridGenericColumnHeaderItem.js +3 -2
  36. package/components/columnHeaders/GridIconButtonContainer.d.ts +1 -1
  37. package/components/columnHeaders/GridIconButtonContainer.js +5 -3
  38. package/components/columnSelection/GridCellCheckboxRenderer.d.ts +2 -2
  39. package/components/columnSelection/GridCellCheckboxRenderer.js +6 -4
  40. package/components/columnSelection/GridHeaderCheckbox.d.ts +1 -1
  41. package/components/columnSelection/GridHeaderCheckbox.js +6 -4
  42. package/components/containers/GridFooterContainer.d.ts +1 -1
  43. package/components/containers/GridFooterContainer.js +5 -3
  44. package/components/containers/GridOverlay.d.ts +1 -1
  45. package/components/containers/GridOverlay.js +5 -3
  46. package/components/containers/GridRoot.d.ts +1 -1
  47. package/components/containers/GridRoot.js +5 -3
  48. package/components/containers/GridToolbarContainer.d.ts +1 -1
  49. package/components/containers/GridToolbarContainer.js +3 -2
  50. package/components/menu/columnMenu/GridColumnMenu.d.ts +2 -2
  51. package/components/menu/columnMenu/GridColumnMenu.js +5 -5
  52. package/components/menu/columnMenu/GridColumnMenuContainer.d.ts +1 -1
  53. package/components/menu/columnMenu/GridColumnMenuContainer.js +3 -2
  54. package/components/panel/GridPanel.d.ts +1 -1
  55. package/components/panel/GridPanel.js +3 -2
  56. package/components/panel/GridPanelWrapper.d.ts +1 -1
  57. package/components/panel/GridPanelWrapper.js +5 -3
  58. package/components/panel/filterPanel/GridFilterForm.d.ts +1 -1
  59. package/components/panel/filterPanel/GridFilterForm.js +3 -2
  60. package/components/panel/filterPanel/GridFilterInputValue.js +17 -10
  61. package/components/panel/filterPanel/GridFilterPanel.d.ts +1 -1
  62. package/components/panel/filterPanel/GridFilterPanel.js +4 -4
  63. package/components/toolbar/GridToolbar.d.ts +1 -1
  64. package/components/toolbar/GridToolbar.js +4 -4
  65. package/components/toolbar/GridToolbarColumnsButton.d.ts +1 -1
  66. package/components/toolbar/GridToolbarColumnsButton.js +3 -2
  67. package/components/toolbar/GridToolbarDensitySelector.d.ts +1 -1
  68. package/components/toolbar/GridToolbarDensitySelector.js +3 -2
  69. package/components/toolbar/GridToolbarExport.d.ts +1 -1
  70. package/components/toolbar/GridToolbarExport.js +2 -1
  71. package/components/toolbar/GridToolbarExportContainer.d.ts +1 -1
  72. package/components/toolbar/GridToolbarExportContainer.js +3 -2
  73. package/components/toolbar/GridToolbarFilterButton.d.ts +1 -1
  74. package/components/toolbar/GridToolbarFilterButton.js +3 -2
  75. package/components/virtualization/GridMainContainer.d.ts +3 -1
  76. package/components/virtualization/GridMainContainer.js +4 -3
  77. package/components/virtualization/GridVirtualScrollbar.d.ts +1 -1
  78. package/components/virtualization/GridVirtualScrollbar.js +2 -1
  79. package/components/virtualization/GridVirtualScrollerContent.d.ts +2 -0
  80. package/components/virtualization/GridVirtualScrollerContent.js +5 -5
  81. package/components/virtualization/GridVirtualScrollerRenderZone.d.ts +2 -0
  82. package/components/virtualization/GridVirtualScrollerRenderZone.js +5 -3
  83. package/hooks/features/columnHeaders/useGridColumnHeaders.js +10 -3
  84. package/hooks/features/columnResize/gridColumnResizeApi.d.ts +6 -0
  85. package/hooks/features/columnResize/gridColumnResizeApi.js +2 -1
  86. package/hooks/features/columnResize/useGridColumnResize.d.ts +1 -1
  87. package/hooks/features/columnResize/useGridColumnResize.js +9 -4
  88. package/hooks/features/columns/gridColumnsUtils.d.ts +1 -1
  89. package/hooks/features/columns/gridColumnsUtils.js +2 -1
  90. package/hooks/features/rows/useGridRowSpanning.js +13 -5
  91. package/hooks/features/virtualization/useGridVirtualScroller.js +11 -8
  92. package/index.js +1 -1
  93. package/internals/utils/useProps.js +3 -0
  94. package/locales/koKR.js +36 -39
  95. package/locales/nlNL.js +5 -6
  96. package/models/gridSlotsComponentsProps.d.ts +10 -0
  97. package/models/props/DataGridProps.d.ts +1 -0
  98. package/modern/DataGrid/DataGrid.js +7 -4
  99. package/modern/components/GridColumnHeaders.js +4 -4
  100. package/modern/components/GridFooter.js +4 -4
  101. package/modern/components/GridLoadingOverlay.js +3 -2
  102. package/modern/components/GridNoResultsOverlay.js +4 -4
  103. package/modern/components/GridNoRowsOverlay.js +4 -4
  104. package/modern/components/GridPagination.js +5 -3
  105. package/modern/components/GridRow.js +15 -3
  106. package/modern/components/GridRowCount.js +3 -2
  107. package/modern/components/GridSelectedRowCount.js +3 -2
  108. package/modern/components/GridSkeletonLoadingOverlay.js +4 -3
  109. package/modern/components/cell/GridActionsCell.js +8 -1
  110. package/modern/components/cell/GridActionsCellItem.js +3 -2
  111. package/modern/components/cell/GridCell.js +3 -2
  112. package/modern/components/cell/GridEditInputCell.js +72 -3
  113. package/modern/components/columnHeaders/GridBaseColumnHeaders.js +4 -3
  114. package/modern/components/columnHeaders/GridColumnHeaderTitle.js +5 -3
  115. package/modern/components/columnHeaders/GridGenericColumnHeaderItem.js +3 -2
  116. package/modern/components/columnHeaders/GridIconButtonContainer.js +5 -3
  117. package/modern/components/columnSelection/GridCellCheckboxRenderer.js +6 -4
  118. package/modern/components/columnSelection/GridHeaderCheckbox.js +6 -4
  119. package/modern/components/containers/GridFooterContainer.js +5 -3
  120. package/modern/components/containers/GridOverlay.js +5 -3
  121. package/modern/components/containers/GridRoot.js +5 -3
  122. package/modern/components/containers/GridToolbarContainer.js +3 -2
  123. package/modern/components/menu/columnMenu/GridColumnMenu.js +5 -5
  124. package/modern/components/menu/columnMenu/GridColumnMenuContainer.js +3 -2
  125. package/modern/components/panel/GridPanel.js +3 -2
  126. package/modern/components/panel/GridPanelWrapper.js +5 -3
  127. package/modern/components/panel/filterPanel/GridFilterForm.js +3 -2
  128. package/modern/components/panel/filterPanel/GridFilterInputValue.js +17 -10
  129. package/modern/components/panel/filterPanel/GridFilterPanel.js +4 -4
  130. package/modern/components/toolbar/GridToolbar.js +4 -4
  131. package/modern/components/toolbar/GridToolbarColumnsButton.js +3 -2
  132. package/modern/components/toolbar/GridToolbarDensitySelector.js +3 -2
  133. package/modern/components/toolbar/GridToolbarExport.js +2 -1
  134. package/modern/components/toolbar/GridToolbarExportContainer.js +3 -2
  135. package/modern/components/toolbar/GridToolbarFilterButton.js +3 -2
  136. package/modern/components/virtualization/GridMainContainer.js +4 -3
  137. package/modern/components/virtualization/GridVirtualScrollbar.js +2 -1
  138. package/modern/components/virtualization/GridVirtualScrollerContent.js +5 -5
  139. package/modern/components/virtualization/GridVirtualScrollerRenderZone.js +5 -3
  140. package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +10 -3
  141. package/modern/hooks/features/columnResize/gridColumnResizeApi.js +2 -1
  142. package/modern/hooks/features/columnResize/useGridColumnResize.js +9 -4
  143. package/modern/hooks/features/columns/gridColumnsUtils.js +2 -1
  144. package/modern/hooks/features/rows/useGridRowSpanning.js +13 -5
  145. package/modern/hooks/features/virtualization/useGridVirtualScroller.js +11 -8
  146. package/modern/index.js +1 -1
  147. package/modern/internals/utils/useProps.js +3 -0
  148. package/modern/locales/koKR.js +36 -39
  149. package/modern/locales/nlNL.js +5 -6
  150. package/node/DataGrid/DataGrid.js +7 -4
  151. package/node/components/GridColumnHeaders.js +4 -4
  152. package/node/components/GridFooter.js +4 -4
  153. package/node/components/GridLoadingOverlay.js +3 -2
  154. package/node/components/GridNoResultsOverlay.js +4 -4
  155. package/node/components/GridNoRowsOverlay.js +4 -4
  156. package/node/components/GridPagination.js +5 -3
  157. package/node/components/GridRow.js +15 -3
  158. package/node/components/GridRowCount.js +3 -2
  159. package/node/components/GridSelectedRowCount.js +3 -2
  160. package/node/components/GridSkeletonLoadingOverlay.js +4 -3
  161. package/node/components/cell/GridActionsCell.js +8 -1
  162. package/node/components/cell/GridActionsCellItem.js +3 -2
  163. package/node/components/cell/GridCell.js +3 -2
  164. package/node/components/cell/GridEditInputCell.js +72 -3
  165. package/node/components/columnHeaders/GridBaseColumnHeaders.js +4 -3
  166. package/node/components/columnHeaders/GridColumnHeaderTitle.js +5 -3
  167. package/node/components/columnHeaders/GridGenericColumnHeaderItem.js +3 -2
  168. package/node/components/columnHeaders/GridIconButtonContainer.js +5 -3
  169. package/node/components/columnSelection/GridCellCheckboxRenderer.js +6 -4
  170. package/node/components/columnSelection/GridHeaderCheckbox.js +6 -4
  171. package/node/components/containers/GridFooterContainer.js +5 -3
  172. package/node/components/containers/GridOverlay.js +5 -3
  173. package/node/components/containers/GridRoot.js +5 -3
  174. package/node/components/containers/GridToolbarContainer.js +3 -2
  175. package/node/components/menu/columnMenu/GridColumnMenu.js +5 -5
  176. package/node/components/menu/columnMenu/GridColumnMenuContainer.js +3 -2
  177. package/node/components/panel/GridPanel.js +3 -2
  178. package/node/components/panel/GridPanelWrapper.js +5 -3
  179. package/node/components/panel/filterPanel/GridFilterForm.js +3 -2
  180. package/node/components/panel/filterPanel/GridFilterInputValue.js +17 -10
  181. package/node/components/panel/filterPanel/GridFilterPanel.js +4 -4
  182. package/node/components/toolbar/GridToolbar.js +4 -4
  183. package/node/components/toolbar/GridToolbarColumnsButton.js +3 -2
  184. package/node/components/toolbar/GridToolbarDensitySelector.js +3 -2
  185. package/node/components/toolbar/GridToolbarExport.js +2 -1
  186. package/node/components/toolbar/GridToolbarExportContainer.js +3 -2
  187. package/node/components/toolbar/GridToolbarFilterButton.js +3 -2
  188. package/node/components/virtualization/GridMainContainer.js +4 -3
  189. package/node/components/virtualization/GridVirtualScrollbar.js +2 -1
  190. package/node/components/virtualization/GridVirtualScrollerContent.js +5 -5
  191. package/node/components/virtualization/GridVirtualScrollerRenderZone.js +5 -3
  192. package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +10 -3
  193. package/node/hooks/features/columnResize/gridColumnResizeApi.js +2 -1
  194. package/node/hooks/features/columnResize/useGridColumnResize.js +9 -4
  195. package/node/hooks/features/columns/gridColumnsUtils.js +2 -1
  196. package/node/hooks/features/rows/useGridRowSpanning.js +13 -5
  197. package/node/hooks/features/virtualization/useGridVirtualScroller.js +11 -8
  198. package/node/index.js +1 -1
  199. package/node/internals/utils/useProps.js +3 -0
  200. package/node/locales/koKR.js +36 -39
  201. package/node/locales/nlNL.js +5 -6
  202. package/package.json +1 -1
@@ -6,6 +6,7 @@ import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
7
  import { unstable_useForkRef as useForkRef } from '@mui/utils';
8
8
  import { fastMemo } from '@mui/x-internals/fastMemo';
9
+ import { forwardRef } from '@mui/x-internals/forwardRef';
9
10
  import { GridEditModes, GridRowModes, GridCellModes } from "../models/gridEditRowModel.js";
10
11
  import { gridClasses } from "../constants/gridClasses.js";
11
12
  import { composeGridClasses } from "../utils/composeGridClasses.js";
@@ -25,6 +26,7 @@ import { GridScrollbarFillerCell as ScrollbarFiller } from "./GridScrollbarFille
25
26
  import { getPinnedCellOffset } from "../internals/utils/getPinnedCellOffset.js";
26
27
  import { useGridConfiguration } from "../hooks/utils/useGridConfiguration.js";
27
28
  import { useGridPrivateApiContext } from "../hooks/utils/useGridPrivateApiContext.js";
29
+ import { gridVirtualizationColumnEnabledSelector } from "../hooks/index.js";
28
30
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
29
31
  function EmptyCell({
30
32
  width
@@ -47,7 +49,7 @@ process.env.NODE_ENV !== "production" ? EmptyCell.propTypes = {
47
49
  // ----------------------------------------------------------------------
48
50
  width: PropTypes.number.isRequired
49
51
  } : void 0;
50
- const GridRow = /*#__PURE__*/React.forwardRef(function GridRow(props, refProp) {
52
+ const GridRow = forwardRef(function GridRow(props, refProp) {
51
53
  const {
52
54
  selected,
53
55
  rowId,
@@ -89,6 +91,7 @@ const GridRow = /*#__PURE__*/React.forwardRef(function GridRow(props, refProp) {
89
91
  const gridHasFiller = dimensions.columnsTotalWidth < dimensions.viewportOuterSize.width;
90
92
  const editing = apiRef.current.getRowMode(rowId) === GridRowModes.Edit;
91
93
  const editable = rootProps.editMode === GridEditModes.Row;
94
+ const hasColumnVirtualization = useGridSelector(apiRef, gridVirtualizationColumnEnabledSelector);
92
95
  const hasFocusCell = focusedColumnIndex !== undefined;
93
96
  const hasVirtualFocusCellLeft = hasFocusCell && focusedColumnIndex >= pinnedColumns.left.length && focusedColumnIndex < renderContext.firstColumnIndex;
94
97
  const hasVirtualFocusCellRight = hasFocusCell && focusedColumnIndex < visibleColumns.length - pinnedColumns.right.length && focusedColumnIndex >= renderContext.lastColumnIndex;
@@ -270,7 +273,16 @@ const GridRow = /*#__PURE__*/React.forwardRef(function GridRow(props, refProp) {
270
273
  if (hasVirtualFocusCellLeft) {
271
274
  cells.push(getCell(visibleColumns[focusedColumnIndex], focusedColumnIndex - pinnedColumns.left.length, focusedColumnIndex, middleColumnsLength, PinnedPosition.VIRTUAL));
272
275
  }
273
- for (let i = renderContext.firstColumnIndex; i < renderContext.lastColumnIndex; i += 1) {
276
+ let firstColumnIndex;
277
+ let lastColumnIndex;
278
+ if (!rootProps.disableVirtualization && !hasColumnVirtualization) {
279
+ firstColumnIndex = 0;
280
+ lastColumnIndex = visibleColumns.length;
281
+ } else {
282
+ firstColumnIndex = renderContext.firstColumnIndex;
283
+ lastColumnIndex = renderContext.lastColumnIndex;
284
+ }
285
+ for (let i = firstColumnIndex; i < lastColumnIndex; i += 1) {
274
286
  const column = visibleColumns[i];
275
287
  const indexInSection = i - pinnedColumns.left.length;
276
288
  if (!column) {
@@ -292,13 +304,13 @@ const GridRow = /*#__PURE__*/React.forwardRef(function GridRow(props, refProp) {
292
304
  const expandedWidth = dimensions.viewportOuterSize.width - dimensions.columnsTotalWidth - scrollbarWidth;
293
305
  const emptyCellWidth = Math.max(0, expandedWidth);
294
306
  return /*#__PURE__*/_jsxs("div", _extends({
295
- ref: handleRef,
296
307
  "data-id": rowId,
297
308
  "data-rowindex": index,
298
309
  role: "row",
299
310
  className: clsx(...rowClassNames, classes.root, className),
300
311
  style: style
301
312
  }, ariaAttributes, eventHandlers, other, {
313
+ ref: handleRef,
302
314
  children: [leftCells, /*#__PURE__*/_jsx("div", {
303
315
  role: "presentation",
304
316
  className: gridClasses.cellOffsetLeft,
@@ -6,6 +6,7 @@ import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
7
  import composeClasses from '@mui/utils/composeClasses';
8
8
  import { styled } from '@mui/system';
9
+ import { forwardRef } from '@mui/x-internals/forwardRef';
9
10
  import { useGridApiContext } from "../hooks/utils/useGridApiContext.js";
10
11
  import { getDataGridUtilityClass } from "../constants/gridClasses.js";
11
12
  import { useGridRootProps } from "../hooks/utils/useGridRootProps.js";
@@ -30,7 +31,7 @@ const GridRowCountRoot = styled('div', {
30
31
  display: 'flex',
31
32
  margin: theme.spacing(0, 2)
32
33
  }));
33
- const GridRowCount = /*#__PURE__*/React.forwardRef(function GridRowCount(props, ref) {
34
+ const GridRowCount = forwardRef(function GridRowCount(props, ref) {
34
35
  const {
35
36
  className,
36
37
  rowCount,
@@ -45,10 +46,10 @@ const GridRowCount = /*#__PURE__*/React.forwardRef(function GridRowCount(props,
45
46
  }
46
47
  const text = visibleRowCount < rowCount ? apiRef.current.getLocaleText('footerTotalVisibleRows')(visibleRowCount, rowCount) : rowCount.toLocaleString();
47
48
  return /*#__PURE__*/_jsxs(GridRowCountRoot, _extends({
48
- ref: ref,
49
49
  className: clsx(classes.root, className),
50
50
  ownerState: ownerState
51
51
  }, other, {
52
+ ref: ref,
52
53
  children: [apiRef.current.getLocaleText('footerTotalRows'), " ", text]
53
54
  }));
54
55
  });
@@ -6,6 +6,7 @@ import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
7
  import composeClasses from '@mui/utils/composeClasses';
8
8
  import { styled } from '@mui/system';
9
+ import { forwardRef } from '@mui/x-internals/forwardRef';
9
10
  import { useGridApiContext } from "../hooks/utils/useGridApiContext.js";
10
11
  import { getDataGridUtilityClass } from "../constants/gridClasses.js";
11
12
  import { useGridRootProps } from "../hooks/utils/useGridRootProps.js";
@@ -38,7 +39,7 @@ const GridSelectedRowCountRoot = styled('div', {
38
39
  height: 'auto'
39
40
  }
40
41
  }));
41
- const GridSelectedRowCount = /*#__PURE__*/React.forwardRef(function GridSelectedRowCount(props, ref) {
42
+ const GridSelectedRowCount = forwardRef(function GridSelectedRowCount(props, ref) {
42
43
  const {
43
44
  className,
44
45
  selectedRowCount
@@ -49,10 +50,10 @@ const GridSelectedRowCount = /*#__PURE__*/React.forwardRef(function GridSelected
49
50
  const classes = useUtilityClasses(ownerState);
50
51
  const rowSelectedText = apiRef.current.getLocaleText('footerRowSelected')(selectedRowCount);
51
52
  return /*#__PURE__*/_jsx(GridSelectedRowCountRoot, _extends({
52
- ref: ref,
53
53
  className: clsx(classes.root, className),
54
54
  ownerState: ownerState
55
55
  }, other, {
56
+ ref: ref,
56
57
  children: rowSelectedText
57
58
  }));
58
59
  });
@@ -4,6 +4,7 @@ import clsx from 'clsx';
4
4
  import { styled } from '@mui/system';
5
5
  import useForkRef from '@mui/utils/useForkRef';
6
6
  import composeClasses from '@mui/utils/composeClasses';
7
+ import { forwardRef } from '@mui/x-internals/forwardRef';
7
8
  import { useGridApiContext } from "../hooks/utils/useGridApiContext.js";
8
9
  import { useGridRootProps } from "../hooks/utils/useGridRootProps.js";
9
10
  import { GridPinnedColumnPosition, gridColumnPositionsSelector, gridColumnsTotalWidthSelector, gridDimensionsSelector, gridVisibleColumnDefinitionsSelector, gridVisiblePinnedColumnDefinitionsSelector, useGridApiEventHandler, useGridSelector } from "../hooks/index.js";
@@ -34,7 +35,7 @@ const useUtilityClasses = ownerState => {
34
35
  return composeClasses(slots, getDataGridUtilityClass, classes);
35
36
  };
36
37
  const getColIndex = el => parseInt(el.getAttribute('data-colindex'), 10);
37
- const GridSkeletonLoadingOverlay = /*#__PURE__*/React.forwardRef(function GridSkeletonLoadingOverlay(props, forwardedRef) {
38
+ const GridSkeletonLoadingOverlay = forwardRef(function GridSkeletonLoadingOverlay(props, forwardedRef) {
38
39
  const rootProps = useGridRootProps();
39
40
  const {
40
41
  slots
@@ -172,9 +173,9 @@ const GridSkeletonLoadingOverlay = /*#__PURE__*/React.forwardRef(function GridSk
172
173
  };
173
174
  useGridApiEventHandler(apiRef, 'columnResize', handleColumnResize);
174
175
  return /*#__PURE__*/_jsx(SkeletonOverlay, _extends({
175
- className: classes.root,
176
- ref: handleRef
176
+ className: classes.root
177
177
  }, props, {
178
+ ref: handleRef,
178
179
  children: children
179
180
  }));
180
181
  });
@@ -90,6 +90,13 @@ function GridActionsCell(props) {
90
90
  const hideMenu = () => {
91
91
  setOpen(false);
92
92
  };
93
+ const toggleMenu = () => {
94
+ if (open) {
95
+ hideMenu();
96
+ } else {
97
+ showMenu();
98
+ }
99
+ };
93
100
  const handleTouchRippleRef = index => instance => {
94
101
  touchRippleRefs.current[index] = instance;
95
102
  };
@@ -160,7 +167,7 @@ function GridActionsCell(props) {
160
167
  "aria-controls": open ? menuId : undefined,
161
168
  role: "menuitem",
162
169
  size: "small",
163
- onClick: showMenu,
170
+ onClick: toggleMenu,
164
171
  touchRippleRef: handleTouchRippleRef(buttonId),
165
172
  tabIndex: focusedButtonIndex === iconButtons.length ? tabIndex : -1
166
173
  }, rootProps.slotProps?.baseIconButton, {
@@ -6,9 +6,10 @@ import * as React from 'react';
6
6
  import PropTypes from 'prop-types';
7
7
  import MenuItem from '@mui/material/MenuItem';
8
8
  import ListItemIcon from '@mui/material/ListItemIcon';
9
+ import { forwardRef } from '@mui/x-internals/forwardRef';
9
10
  import { useGridRootProps } from "../../hooks/utils/useGridRootProps.js";
10
11
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
- const GridActionsCellItem = /*#__PURE__*/React.forwardRef((props, ref) => {
12
+ const GridActionsCellItem = forwardRef((props, ref) => {
12
13
  const rootProps = useGridRootProps();
13
14
  if (!props.showInMenu) {
14
15
  const {
@@ -21,13 +22,13 @@ const GridActionsCellItem = /*#__PURE__*/React.forwardRef((props, ref) => {
21
22
  onClick?.(event);
22
23
  };
23
24
  return /*#__PURE__*/_jsx(rootProps.slots.baseIconButton, _extends({
24
- ref: ref,
25
25
  size: "small",
26
26
  role: "menuitem",
27
27
  "aria-label": label
28
28
  }, other, {
29
29
  onClick: handleClick
30
30
  }, rootProps.slotProps?.baseIconButton, {
31
+ ref: ref,
31
32
  children: /*#__PURE__*/React.cloneElement(icon, {
32
33
  fontSize: 'small'
33
34
  })
@@ -8,6 +8,7 @@ import clsx from 'clsx';
8
8
  import { unstable_useForkRef as useForkRef, unstable_composeClasses as composeClasses, unstable_ownerDocument as ownerDocument, unstable_capitalize as capitalize } from '@mui/utils';
9
9
  import { fastMemo } from '@mui/x-internals/fastMemo';
10
10
  import { useRtl } from '@mui/system/RtlProvider';
11
+ import { forwardRef } from '@mui/x-internals/forwardRef';
11
12
  import { doesSupportPreventScroll } from "../../utils/doesSupportPreventScroll.js";
12
13
  import { getDataGridUtilityClass, gridClasses } from "../../constants/gridClasses.js";
13
14
  import { GridCellModes } from "../../models/index.js";
@@ -76,7 +77,7 @@ let warnedOnce = false;
76
77
 
77
78
  // TODO(v7): Removing the wrapper will break the docs performance visualization demo.
78
79
 
79
- const GridCell = /*#__PURE__*/React.forwardRef(function GridCell(props, ref) {
80
+ const GridCell = forwardRef(function GridCell(props, ref) {
80
81
  const {
81
82
  column,
82
83
  rowId,
@@ -313,7 +314,6 @@ const GridCell = /*#__PURE__*/React.forwardRef(function GridCell(props, ref) {
313
314
  onDragOver: publish('cellDragOver', onDragOver)
314
315
  };
315
316
  return /*#__PURE__*/_jsx("div", _extends({
316
- ref: handleRef,
317
317
  className: clsx(classes.root, classNames, className),
318
318
  role: "gridcell",
319
319
  "data-field": field,
@@ -333,6 +333,7 @@ const GridCell = /*#__PURE__*/React.forwardRef(function GridCell(props, ref) {
333
333
  onKeyUp: publish('cellKeyUp', onKeyUp)
334
334
  }, draggableEventHandlers, other, {
335
335
  onFocus: handleFocus,
336
+ ref: handleRef,
336
337
  children: children
337
338
  }));
338
339
  });
@@ -2,9 +2,11 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
2
2
  import _extends from "@babel/runtime/helpers/esm/extends";
3
3
  const _excluded = ["id", "value", "formattedValue", "api", "field", "row", "rowNode", "colDef", "cellMode", "isEditable", "tabIndex", "hasFocus", "isValidating", "debounceMs", "isProcessingProps", "onValueChange"];
4
4
  import * as React from 'react';
5
+ import PropTypes from 'prop-types';
5
6
  import { unstable_composeClasses as composeClasses, unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';
6
7
  import { styled } from '@mui/material/styles';
7
8
  import InputBase from '@mui/material/InputBase';
9
+ import { forwardRef } from '@mui/x-internals/forwardRef';
8
10
  import { getDataGridUtilityClass } from "../../constants/gridClasses.js";
9
11
  import { useGridRootProps } from "../../hooks/utils/useGridRootProps.js";
10
12
  import { useGridApiContext } from "../../hooks/utils/useGridApiContext.js";
@@ -31,7 +33,7 @@ const GridEditInputCellRoot = styled(InputBase, {
31
33
  height: '100%'
32
34
  }
33
35
  }));
34
- const GridEditInputCell = /*#__PURE__*/React.forwardRef((props, ref) => {
36
+ const GridEditInputCell = forwardRef((props, ref) => {
35
37
  const rootProps = useGridRootProps();
36
38
  const {
37
39
  id,
@@ -79,7 +81,6 @@ const GridEditInputCell = /*#__PURE__*/React.forwardRef((props, ref) => {
79
81
  }
80
82
  }, [hasFocus]);
81
83
  return /*#__PURE__*/_jsx(GridEditInputCellRoot, _extends({
82
- ref: ref,
83
84
  inputRef: inputRef,
84
85
  className: classes.root,
85
86
  ownerState: rootProps,
@@ -91,7 +92,75 @@ const GridEditInputCell = /*#__PURE__*/React.forwardRef((props, ref) => {
91
92
  fontSize: "small",
92
93
  color: "action"
93
94
  }) : undefined
94
- }, other));
95
+ }, other, {
96
+ ref: ref
97
+ }));
95
98
  });
99
+ process.env.NODE_ENV !== "production" ? GridEditInputCell.propTypes = {
100
+ // ----------------------------- Warning --------------------------------
101
+ // | These PropTypes are generated from the TypeScript type definitions |
102
+ // | To update them edit the TypeScript types and run "pnpm proptypes" |
103
+ // ----------------------------------------------------------------------
104
+ /**
105
+ * GridApi that let you manipulate the grid.
106
+ */
107
+ api: PropTypes.object.isRequired,
108
+ /**
109
+ * The mode of the cell.
110
+ */
111
+ cellMode: PropTypes.oneOf(['edit', 'view']).isRequired,
112
+ changeReason: PropTypes.oneOf(['debouncedSetEditCellValue', 'setEditCellValue']),
113
+ /**
114
+ * The column of the row that the current cell belongs to.
115
+ */
116
+ colDef: PropTypes.object.isRequired,
117
+ debounceMs: PropTypes.number,
118
+ /**
119
+ * The column field of the cell that triggered the event.
120
+ */
121
+ field: PropTypes.string.isRequired,
122
+ /**
123
+ * The cell value formatted with the column valueFormatter.
124
+ */
125
+ formattedValue: PropTypes.any,
126
+ /**
127
+ * If true, the cell is the active element.
128
+ */
129
+ hasFocus: PropTypes.bool.isRequired,
130
+ /**
131
+ * The grid row id.
132
+ */
133
+ id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
134
+ /**
135
+ * If true, the cell is editable.
136
+ */
137
+ isEditable: PropTypes.bool,
138
+ isProcessingProps: PropTypes.bool,
139
+ isValidating: PropTypes.bool,
140
+ /**
141
+ * Callback called when the value is changed by the user.
142
+ * @param {React.ChangeEvent<HTMLInputElement>} event The event source of the callback.
143
+ * @param {Date | null} newValue The value that is going to be passed to `apiRef.current.setEditCellValue`.
144
+ * @returns {Promise<void> | void} A promise to be awaited before calling `apiRef.current.setEditCellValue`
145
+ */
146
+ onValueChange: PropTypes.func,
147
+ /**
148
+ * The row model of the row that the current cell belongs to.
149
+ */
150
+ row: PropTypes.any.isRequired,
151
+ /**
152
+ * The node of the row that the current cell belongs to.
153
+ */
154
+ rowNode: PropTypes.object.isRequired,
155
+ /**
156
+ * the tabIndex value.
157
+ */
158
+ tabIndex: PropTypes.oneOf([-1, 0]).isRequired,
159
+ /**
160
+ * The cell value.
161
+ * If the column has `valueGetter`, use `params.row` to directly access the fields.
162
+ */
163
+ value: PropTypes.any
164
+ } : void 0;
96
165
  export { GridEditInputCell };
97
166
  export const renderEditInputCell = params => /*#__PURE__*/_jsx(GridEditInputCell, _extends({}, params));
@@ -5,6 +5,7 @@ import * as React from 'react';
5
5
  import clsx from 'clsx';
6
6
  import composeClasses from '@mui/utils/composeClasses';
7
7
  import { styled } from '@mui/system';
8
+ import { forwardRef } from '@mui/x-internals/forwardRef';
8
9
  import { getDataGridUtilityClass } from "../../constants/gridClasses.js";
9
10
  import { useGridRootProps } from "../../hooks/utils/useGridRootProps.js";
10
11
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -27,7 +28,7 @@ const GridColumnHeadersRoot = styled('div', {
27
28
  borderTopLeftRadius: 'var(--unstable_DataGrid-radius)',
28
29
  borderTopRightRadius: 'var(--unstable_DataGrid-radius)'
29
30
  });
30
- export const GridBaseColumnHeaders = /*#__PURE__*/React.forwardRef(function GridColumnHeaders(props, ref) {
31
+ export const GridBaseColumnHeaders = forwardRef(function GridColumnHeaders(props, ref) {
31
32
  const {
32
33
  className
33
34
  } = props,
@@ -35,10 +36,10 @@ export const GridBaseColumnHeaders = /*#__PURE__*/React.forwardRef(function Grid
35
36
  const rootProps = useGridRootProps();
36
37
  const classes = useUtilityClasses(rootProps);
37
38
  return /*#__PURE__*/_jsx(GridColumnHeadersRoot, _extends({
38
- ref: ref,
39
39
  className: clsx(classes.root, className),
40
40
  ownerState: rootProps
41
41
  }, other, {
42
- role: "presentation"
42
+ role: "presentation",
43
+ ref: ref
43
44
  }));
44
45
  });
@@ -6,6 +6,7 @@ import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
7
  import composeClasses from '@mui/utils/composeClasses';
8
8
  import { styled } from '@mui/system';
9
+ import { forwardRef } from '@mui/x-internals/forwardRef';
9
10
  import { isOverflown } from "../../utils/domUtils.js";
10
11
  import { getDataGridUtilityClass } from "../../constants/gridClasses.js";
11
12
  import { useGridRootProps } from "../../hooks/utils/useGridRootProps.js";
@@ -30,7 +31,7 @@ const GridColumnHeaderTitleRoot = styled('div', {
30
31
  fontWeight: 'var(--unstable_DataGrid-headWeight)',
31
32
  lineHeight: 'normal'
32
33
  });
33
- const ColumnHeaderInnerTitle = /*#__PURE__*/React.forwardRef(function ColumnHeaderInnerTitle(props, ref) {
34
+ const ColumnHeaderInnerTitle = forwardRef(function ColumnHeaderInnerTitle(props, ref) {
34
35
  // Tooltip adds aria-label to the props, which is not needed since the children prop is a string
35
36
  // See https://github.com/mui/mui-x/pull/14482
36
37
  const {
@@ -40,10 +41,11 @@ const ColumnHeaderInnerTitle = /*#__PURE__*/React.forwardRef(function ColumnHead
40
41
  const rootProps = useGridRootProps();
41
42
  const classes = useUtilityClasses(rootProps);
42
43
  return /*#__PURE__*/_jsx(GridColumnHeaderTitleRoot, _extends({
43
- ref: ref,
44
44
  className: clsx(classes.root, className),
45
45
  ownerState: rootProps
46
- }, other));
46
+ }, other, {
47
+ ref: ref
48
+ }));
47
49
  });
48
50
  // No React.memo here as if we display the sort icon, we need to recalculate the isOver
49
51
  function GridColumnHeaderTitle(props) {
@@ -4,12 +4,13 @@ const _excluded = ["classes", "columnMenuOpen", "colIndex", "height", "isResizin
4
4
  import * as React from 'react';
5
5
  import clsx from 'clsx';
6
6
  import { unstable_useForkRef as useForkRef } from '@mui/utils';
7
+ import { forwardRef } from '@mui/x-internals/forwardRef';
7
8
  import { useGridPrivateApiContext } from "../../hooks/utils/useGridPrivateApiContext.js";
8
9
  import { GridColumnHeaderTitle } from "./GridColumnHeaderTitle.js";
9
10
  import { GridColumnHeaderSeparator } from "./GridColumnHeaderSeparator.js";
10
11
  import { useGridRootProps } from "../../hooks/utils/useGridRootProps.js";
11
12
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
12
- const GridGenericColumnHeaderItem = /*#__PURE__*/React.forwardRef(function GridGenericColumnHeaderItem(props, ref) {
13
+ const GridGenericColumnHeaderItem = forwardRef(function GridGenericColumnHeaderItem(props, ref) {
13
14
  const {
14
15
  classes,
15
16
  colIndex,
@@ -54,7 +55,6 @@ const GridGenericColumnHeaderItem = /*#__PURE__*/React.forwardRef(function GridG
54
55
  }
55
56
  }, [apiRef, hasFocus]);
56
57
  return /*#__PURE__*/_jsxs("div", _extends({
57
- ref: handleRef,
58
58
  className: clsx(classes.root, headerClassName),
59
59
  style: _extends({}, style, {
60
60
  height,
@@ -65,6 +65,7 @@ const GridGenericColumnHeaderItem = /*#__PURE__*/React.forwardRef(function GridG
65
65
  "aria-colindex": colIndex + 1,
66
66
  "aria-sort": ariaSort
67
67
  }, other, {
68
+ ref: handleRef,
68
69
  children: [/*#__PURE__*/_jsxs("div", _extends({
69
70
  className: classes.draggableContainer,
70
71
  draggable: isDraggable,
@@ -5,6 +5,7 @@ import * as React from 'react';
5
5
  import clsx from 'clsx';
6
6
  import composeClasses from '@mui/utils/composeClasses';
7
7
  import { styled } from '@mui/system';
8
+ import { forwardRef } from '@mui/x-internals/forwardRef';
8
9
  import { getDataGridUtilityClass } from "../../constants/gridClasses.js";
9
10
  import { useGridRootProps } from "../../hooks/utils/useGridRootProps.js";
10
11
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -26,7 +27,7 @@ const GridIconButtonContainerRoot = styled('div', {
26
27
  visibility: 'hidden',
27
28
  width: 0
28
29
  }));
29
- export const GridIconButtonContainer = /*#__PURE__*/React.forwardRef(function GridIconButtonContainer(props, ref) {
30
+ export const GridIconButtonContainer = forwardRef(function GridIconButtonContainer(props, ref) {
30
31
  const {
31
32
  className
32
33
  } = props,
@@ -34,8 +35,9 @@ export const GridIconButtonContainer = /*#__PURE__*/React.forwardRef(function Gr
34
35
  const rootProps = useGridRootProps();
35
36
  const classes = useUtilityClasses(rootProps);
36
37
  return /*#__PURE__*/_jsx(GridIconButtonContainerRoot, _extends({
37
- ref: ref,
38
38
  className: clsx(classes.root, className),
39
39
  ownerState: rootProps
40
- }, other));
40
+ }, other, {
41
+ ref: ref
42
+ }));
41
43
  });
@@ -4,6 +4,7 @@ const _excluded = ["field", "id", "formattedValue", "row", "rowNode", "colDef",
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import { unstable_composeClasses as composeClasses, unstable_useForkRef as useForkRef } from '@mui/utils';
7
+ import { forwardRef } from '@mui/x-internals/forwardRef';
7
8
  import { useGridApiContext } from "../../hooks/utils/useGridApiContext.js";
8
9
  import { useGridRootProps } from "../../hooks/utils/useGridRootProps.js";
9
10
  import { getDataGridUtilityClass } from "../../constants/gridClasses.js";
@@ -19,7 +20,7 @@ const useUtilityClasses = ownerState => {
19
20
  };
20
21
  return composeClasses(slots, getDataGridUtilityClass, classes);
21
22
  };
22
- const GridCellCheckboxForwardRef = /*#__PURE__*/React.forwardRef(function GridCellCheckboxRenderer(props, ref) {
23
+ const GridCellCheckboxForwardRef = forwardRef(function GridCellCheckboxRenderer(props, ref) {
23
24
  const {
24
25
  field,
25
26
  id,
@@ -79,10 +80,9 @@ const GridCellCheckboxForwardRef = /*#__PURE__*/React.forwardRef(function GridCe
79
80
  if (rowNode.type === 'footer' || rowNode.type === 'pinnedRow') {
80
81
  return null;
81
82
  }
82
- const label = apiRef.current.getLocaleText(isChecked ? 'checkboxSelectionUnselectRow' : 'checkboxSelectionSelectRow');
83
83
  const checked = rootProps.indeterminateCheckboxAction === 'select' ? isChecked && !isIndeterminate : isChecked;
84
+ const label = apiRef.current.getLocaleText(checked ? 'checkboxSelectionUnselectRow' : 'checkboxSelectionSelectRow');
84
85
  return /*#__PURE__*/_jsx(rootProps.slots.baseCheckbox, _extends({
85
- ref: handleRef,
86
86
  tabIndex: tabIndex,
87
87
  checked: checked,
88
88
  onChange: handleChange,
@@ -94,7 +94,9 @@ const GridCellCheckboxForwardRef = /*#__PURE__*/React.forwardRef(function GridCe
94
94
  indeterminate: isIndeterminate,
95
95
  disabled: !isSelectable,
96
96
  touchRippleRef: rippleRef /* FIXME: typing error */
97
- }, rootProps.slotProps?.baseCheckbox, other));
97
+ }, rootProps.slotProps?.baseCheckbox, other, {
98
+ ref: handleRef
99
+ }));
98
100
  });
99
101
  process.env.NODE_ENV !== "production" ? GridCellCheckboxForwardRef.propTypes = {
100
102
  // ----------------------------- Warning --------------------------------
@@ -4,6 +4,7 @@ const _excluded = ["field", "colDef"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import composeClasses from '@mui/utils/composeClasses';
7
+ import { forwardRef } from '@mui/x-internals/forwardRef';
7
8
  import { isMultipleRowSelectionEnabled } from "../../hooks/features/rowSelection/utils.js";
8
9
  import { useGridSelector } from "../../hooks/utils/useGridSelector.js";
9
10
  import { gridTabIndexColumnHeaderSelector } from "../../hooks/features/focus/gridFocusStateSelector.js";
@@ -23,7 +24,7 @@ const useUtilityClasses = ownerState => {
23
24
  };
24
25
  return composeClasses(slots, getDataGridUtilityClass, classes);
25
26
  };
26
- const GridHeaderCheckbox = /*#__PURE__*/React.forwardRef(function GridHeaderCheckbox(props, ref) {
27
+ const GridHeaderCheckbox = forwardRef(function GridHeaderCheckbox(props, ref) {
27
28
  const other = _objectWithoutPropertiesLoose(props, _excluded);
28
29
  const [, forceUpdate] = React.useState(false);
29
30
  const apiRef = useGridApiContext();
@@ -92,10 +93,9 @@ const GridHeaderCheckbox = /*#__PURE__*/React.forwardRef(function GridHeaderChec
92
93
  React.useEffect(() => {
93
94
  return apiRef.current.subscribeEvent('rowSelectionChange', handleSelectionChange);
94
95
  }, [apiRef, handleSelectionChange]);
95
- const label = apiRef.current.getLocaleText(isChecked ? 'checkboxSelectionUnselectAllRows' : 'checkboxSelectionSelectAllRows');
96
96
  const checked = rootProps.indeterminateCheckboxAction === 'select' ? isChecked && !isIndeterminate : isChecked;
97
+ const label = apiRef.current.getLocaleText(checked ? 'checkboxSelectionUnselectAllRows' : 'checkboxSelectionSelectAllRows');
97
98
  return /*#__PURE__*/_jsx(rootProps.slots.baseCheckbox, _extends({
98
- ref: ref,
99
99
  indeterminate: isIndeterminate,
100
100
  checked: checked,
101
101
  onChange: handleChange,
@@ -106,7 +106,9 @@ const GridHeaderCheckbox = /*#__PURE__*/React.forwardRef(function GridHeaderChec
106
106
  tabIndex: tabIndex,
107
107
  onKeyDown: handleKeyDown,
108
108
  disabled: !isMultipleRowSelectionEnabled(rootProps)
109
- }, rootProps.slotProps?.baseCheckbox, other));
109
+ }, rootProps.slotProps?.baseCheckbox, other, {
110
+ ref: ref
111
+ }));
110
112
  });
111
113
  process.env.NODE_ENV !== "production" ? GridHeaderCheckbox.propTypes = {
112
114
  // ----------------------------- Warning --------------------------------
@@ -6,6 +6,7 @@ import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
7
  import composeClasses from '@mui/utils/composeClasses';
8
8
  import { styled } from '@mui/system';
9
+ import { forwardRef } from '@mui/x-internals/forwardRef';
9
10
  import { getDataGridUtilityClass } from "../../constants/gridClasses.js";
10
11
  import { useGridRootProps } from "../../hooks/utils/useGridRootProps.js";
11
12
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -29,7 +30,7 @@ const GridFooterContainerRoot = styled('div', {
29
30
  minHeight: 52,
30
31
  borderTop: '1px solid'
31
32
  });
32
- const GridFooterContainer = /*#__PURE__*/React.forwardRef(function GridFooterContainer(props, ref) {
33
+ const GridFooterContainer = forwardRef(function GridFooterContainer(props, ref) {
33
34
  const {
34
35
  className
35
36
  } = props,
@@ -37,10 +38,11 @@ const GridFooterContainer = /*#__PURE__*/React.forwardRef(function GridFooterCon
37
38
  const rootProps = useGridRootProps();
38
39
  const classes = useUtilityClasses(rootProps);
39
40
  return /*#__PURE__*/_jsx(GridFooterContainerRoot, _extends({
40
- ref: ref,
41
41
  className: clsx(classes.root, className),
42
42
  ownerState: rootProps
43
- }, other));
43
+ }, other, {
44
+ ref: ref
45
+ }));
44
46
  });
45
47
  process.env.NODE_ENV !== "production" ? GridFooterContainer.propTypes = {
46
48
  // ----------------------------- Warning --------------------------------
@@ -6,6 +6,7 @@ import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
7
  import composeClasses from '@mui/utils/composeClasses';
8
8
  import { styled } from '@mui/system';
9
+ import { forwardRef } from '@mui/x-internals/forwardRef';
9
10
  import { getDataGridUtilityClass } from "../../constants/gridClasses.js";
10
11
  import { useGridRootProps } from "../../hooks/utils/useGridRootProps.js";
11
12
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -31,7 +32,7 @@ const GridOverlayRoot = styled('div', {
31
32
  justifyContent: 'center',
32
33
  backgroundColor: 'var(--unstable_DataGrid-overlayBackground)'
33
34
  });
34
- const GridOverlay = /*#__PURE__*/React.forwardRef(function GridOverlay(props, ref) {
35
+ const GridOverlay = forwardRef(function GridOverlay(props, ref) {
35
36
  const {
36
37
  className
37
38
  } = props,
@@ -39,10 +40,11 @@ const GridOverlay = /*#__PURE__*/React.forwardRef(function GridOverlay(props, re
39
40
  const rootProps = useGridRootProps();
40
41
  const classes = useUtilityClasses(rootProps);
41
42
  return /*#__PURE__*/_jsx(GridOverlayRoot, _extends({
42
- ref: ref,
43
43
  className: clsx(classes.root, className),
44
44
  ownerState: rootProps
45
- }, other));
45
+ }, other, {
46
+ ref: ref
47
+ }));
46
48
  });
47
49
  process.env.NODE_ENV !== "production" ? GridOverlay.propTypes = {
48
50
  // ----------------------------- Warning --------------------------------
@@ -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 { unstable_useForkRef as useForkRef, unstable_useEnhancedEffect as useEnhancedEffect, unstable_capitalize as capitalize, unstable_composeClasses as composeClasses } from '@mui/utils';
8
+ import { forwardRef } from '@mui/x-internals/forwardRef';
8
9
  import { GridRootStyles } from "./GridRootStyles.js";
9
10
  import { useGridSelector } from "../../hooks/utils/useGridSelector.js";
10
11
  import { useGridPrivateApiContext } from "../../hooks/utils/useGridPrivateApiContext.js";
@@ -23,7 +24,7 @@ const useUtilityClasses = (ownerState, density) => {
23
24
  };
24
25
  return composeClasses(slots, getDataGridUtilityClass, classes);
25
26
  };
26
- const GridRoot = /*#__PURE__*/React.forwardRef(function GridRoot(props, ref) {
27
+ const GridRoot = forwardRef(function GridRoot(props, ref) {
27
28
  const rootProps = useGridRootProps();
28
29
  const {
29
30
  className
@@ -45,10 +46,11 @@ const GridRoot = /*#__PURE__*/React.forwardRef(function GridRoot(props, ref) {
45
46
  return null;
46
47
  }
47
48
  return /*#__PURE__*/_jsx(GridRootStyles, _extends({
48
- ref: handleRef,
49
49
  className: clsx(classes.root, className),
50
50
  ownerState: ownerState
51
- }, other));
51
+ }, other, {
52
+ ref: handleRef
53
+ }));
52
54
  });
53
55
  process.env.NODE_ENV !== "production" ? GridRoot.propTypes = {
54
56
  // ----------------------------- Warning --------------------------------