@mui/x-data-grid 8.27.0 → 8.27.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/CHANGELOG.md +158 -0
  2. package/DataGrid/DataGrid.js +7 -0
  3. package/DataGrid/index.js +0 -1
  4. package/components/GridColumnSortButton.js +2 -2
  5. package/components/GridScrollArea.js +2 -2
  6. package/components/GridScrollShadows.js +2 -2
  7. package/components/GridSkeletonLoadingOverlay.js +2 -2
  8. package/components/base/GridOverlays.js +3 -3
  9. package/components/columnHeaders/GridColumnHeaderItem.js +31 -1
  10. package/components/columnHeaders/GridColumnHeaderTitle.js +2 -2
  11. package/components/columnHeaders/GridIconButtonContainer.js +2 -2
  12. package/components/containers/GridRootStyles.js +23 -217
  13. package/components/menu/columnMenu/GridColumnMenu.d.ts +2 -2
  14. package/components/menu/columnMenu/GridColumnMenu.js +2 -0
  15. package/components/menu/columnMenu/GridColumnMenuProps.d.ts +9 -1
  16. package/components/menu/columnMenu/index.d.ts +1 -1
  17. package/components/menu/columnMenu/index.js +0 -12
  18. package/components/toolbar/GridToolbarQuickFilter.js +4 -4
  19. package/components/toolbarV8/GridToolbar.js +3 -3
  20. package/components/toolbarV8/Toolbar.d.ts +1 -1
  21. package/components/toolbarV8/Toolbar.js +2 -2
  22. package/components/virtualization/GridBottomContainer.js +2 -2
  23. package/components/virtualization/GridMainContainer.js +3 -3
  24. package/components/virtualization/GridTopContainer.js +2 -2
  25. package/components/virtualization/GridVirtualScrollbar.d.ts +1 -1
  26. package/components/virtualization/GridVirtualScrollbar.js +5 -5
  27. package/components/virtualization/GridVirtualScroller.js +2 -2
  28. package/components/virtualization/GridVirtualScrollerFiller.js +6 -6
  29. package/constants/dataGridPropsDefaultValues.js +1 -0
  30. package/esm/DataGrid/DataGrid.js +7 -0
  31. package/esm/DataGrid/index.js +0 -1
  32. package/esm/components/GridColumnSortButton.js +1 -1
  33. package/esm/components/GridScrollArea.js +1 -1
  34. package/esm/components/GridScrollShadows.js +1 -1
  35. package/esm/components/GridSkeletonLoadingOverlay.js +1 -1
  36. package/esm/components/base/GridOverlays.js +1 -1
  37. package/esm/components/columnHeaders/GridColumnHeaderItem.js +31 -1
  38. package/esm/components/columnHeaders/GridColumnHeaderTitle.js +1 -1
  39. package/esm/components/columnHeaders/GridIconButtonContainer.js +1 -1
  40. package/esm/components/containers/GridRootStyles.js +23 -217
  41. package/esm/components/menu/columnMenu/GridColumnMenu.d.ts +2 -2
  42. package/esm/components/menu/columnMenu/GridColumnMenu.js +2 -0
  43. package/esm/components/menu/columnMenu/GridColumnMenuProps.d.ts +9 -1
  44. package/esm/components/menu/columnMenu/index.d.ts +1 -1
  45. package/esm/components/menu/columnMenu/index.js +0 -1
  46. package/esm/components/toolbar/GridToolbarQuickFilter.js +1 -1
  47. package/esm/components/toolbarV8/GridToolbar.js +1 -1
  48. package/esm/components/toolbarV8/Toolbar.d.ts +1 -1
  49. package/esm/components/toolbarV8/Toolbar.js +1 -1
  50. package/esm/components/virtualization/GridBottomContainer.js +1 -1
  51. package/esm/components/virtualization/GridMainContainer.js +1 -1
  52. package/esm/components/virtualization/GridTopContainer.js +1 -1
  53. package/esm/components/virtualization/GridVirtualScrollbar.d.ts +1 -1
  54. package/esm/components/virtualization/GridVirtualScrollbar.js +1 -1
  55. package/esm/components/virtualization/GridVirtualScroller.js +1 -1
  56. package/esm/components/virtualization/GridVirtualScrollerFiller.js +1 -1
  57. package/esm/constants/dataGridPropsDefaultValues.js +1 -0
  58. package/esm/hooks/features/columnMenu/getColumnMenuItemKeys.d.ts +17 -0
  59. package/esm/hooks/features/columnMenu/getColumnMenuItemKeys.js +36 -0
  60. package/esm/hooks/features/columnMenu/useGridColumnMenuSlots.js +11 -16
  61. package/esm/hooks/features/dataSource/models.d.ts +4 -1
  62. package/esm/hooks/features/dataSource/useGridDataSourceBase.d.ts +5 -2
  63. package/esm/hooks/features/dataSource/useGridDataSourceBase.js +93 -6
  64. package/esm/hooks/features/editing/useGridRowEditing.js +14 -4
  65. package/esm/index.js +1 -1
  66. package/esm/internals/index.d.ts +1 -0
  67. package/esm/models/api/gridEditingApi.d.ts +0 -1
  68. package/esm/models/params/gridRowParams.d.ts +0 -1
  69. package/esm/models/props/DataGridProps.d.ts +7 -0
  70. package/hooks/features/columnMenu/getColumnMenuItemKeys.d.ts +17 -0
  71. package/hooks/features/columnMenu/getColumnMenuItemKeys.js +43 -0
  72. package/hooks/features/columnMenu/useGridColumnMenuSlots.js +11 -16
  73. package/hooks/features/dataSource/models.d.ts +4 -1
  74. package/hooks/features/dataSource/useGridDataSourceBase.d.ts +5 -2
  75. package/hooks/features/dataSource/useGridDataSourceBase.js +92 -5
  76. package/hooks/features/editing/useGridRowEditing.js +14 -4
  77. package/index.js +1 -1
  78. package/internals/index.d.ts +1 -0
  79. package/models/api/gridEditingApi.d.ts +0 -1
  80. package/models/params/gridRowParams.d.ts +0 -1
  81. package/models/props/DataGridProps.d.ts +7 -0
  82. package/package.json +1 -1
  83. package/esm/index.css +0 -5
  84. package/index.css +0 -5
@@ -93,6 +93,8 @@ const GridColumnMenu = exports.GridColumnMenu = (0, _forwardRef.forwardRef)(func
93
93
  }));
94
94
  });
95
95
  if (process.env.NODE_ENV !== "production") GridColumnMenu.displayName = "GridColumnMenu";
96
+ GridColumnMenu.defaultSlots = GRID_COLUMN_MENU_SLOTS;
97
+ GridColumnMenu.defaultSlotProps = GRID_COLUMN_MENU_SLOT_PROPS;
96
98
  process.env.NODE_ENV !== "production" ? GridColumnMenu.propTypes = {
97
99
  // ----------------------------- Warning --------------------------------
98
100
  // | These PropTypes are generated from the TypeScript type definitions |
@@ -9,4 +9,12 @@ export interface GridColumnMenuContainerProps extends React.HTMLAttributes<HTMLU
9
9
  labelledby?: string;
10
10
  }
11
11
  export interface GridGenericColumnMenuProps extends GridColumnMenuRootProps, GridColumnMenuContainerProps {}
12
- export interface GridColumnMenuProps extends Omit<GridGenericColumnMenuProps, 'defaultSlots' | 'defaultSlotProps'> {}
12
+ export interface GridColumnMenuProps extends Omit<GridGenericColumnMenuProps, 'defaultSlots' | 'defaultSlotProps'> {}
13
+ /**
14
+ * Type for column menu components with static defaultSlots and defaultSlotProps.
15
+ * Used by GridColumnMenu, GridProColumnMenu, and GridPremiumColumnMenu.
16
+ */
17
+ export type GridColumnMenuComponent = React.ForwardRefExoticComponent<GridColumnMenuProps & React.RefAttributes<HTMLUListElement>> & {
18
+ defaultSlots: GridColumnMenuRootProps['defaultSlots'];
19
+ defaultSlotProps: GridColumnMenuRootProps['defaultSlotProps'];
20
+ };
@@ -1,5 +1,5 @@
1
1
  export * from "./GridColumnHeaderMenu.js";
2
- export * from "./GridColumnMenuProps.js";
2
+ export type { GridColumnMenuContainerProps, GridGenericColumnMenuProps, GridColumnMenuProps } from "./GridColumnMenuProps.js";
3
3
  export * from "./GridColumnMenuItemProps.js";
4
4
  export * from "./GridColumnMenuContainer.js";
5
5
  export { GridGenericColumnMenu } from "./GridColumnMenu.js";
@@ -24,18 +24,6 @@ Object.keys(_GridColumnHeaderMenu).forEach(function (key) {
24
24
  }
25
25
  });
26
26
  });
27
- var _GridColumnMenuProps = require("./GridColumnMenuProps");
28
- Object.keys(_GridColumnMenuProps).forEach(function (key) {
29
- if (key === "default" || key === "__esModule") return;
30
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
31
- if (key in exports && exports[key] === _GridColumnMenuProps[key]) return;
32
- Object.defineProperty(exports, key, {
33
- enumerable: true,
34
- get: function () {
35
- return _GridColumnMenuProps[key];
36
- }
37
- });
38
- });
39
27
  var _GridColumnMenuItemProps = require("./GridColumnMenuItemProps");
40
28
  Object.keys(_GridColumnMenuItemProps).forEach(function (key) {
41
29
  if (key === "default" || key === "__esModule") return;
@@ -9,7 +9,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
9
9
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
12
- var _system = require("@mui/system");
12
+ var _styles = require("@mui/material/styles");
13
13
  var _clsx = _interopRequireDefault(require("clsx"));
14
14
  var _constants = require("../../constants");
15
15
  var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
@@ -31,14 +31,14 @@ const useUtilityClasses = ownerState => {
31
31
  };
32
32
  return (0, _composeClasses.default)(slots, _constants.getDataGridUtilityClass, classes);
33
33
  };
34
- const GridQuickFilterRoot = (0, _system.styled)('div', {
34
+ const GridQuickFilterRoot = (0, _styles.styled)('div', {
35
35
  name: 'MuiDataGrid',
36
36
  slot: 'ToolbarQuickFilter'
37
37
  })({
38
38
  display: 'grid',
39
39
  alignItems: 'center'
40
40
  });
41
- const GridQuickFilterTrigger = (0, _system.styled)(_toolbarV.ToolbarButton, {
41
+ const GridQuickFilterTrigger = (0, _styles.styled)(_toolbarV.ToolbarButton, {
42
42
  name: 'MuiDataGrid',
43
43
  slot: 'ToolbarQuickFilterTrigger'
44
44
  })(({
@@ -55,7 +55,7 @@ const GridQuickFilterTrigger = (0, _system.styled)(_toolbarV.ToolbarButton, {
55
55
 
56
56
  // TODO: Use NotRendered from /utils/assert
57
57
  // Currently causes react-docgen to fail
58
- const GridQuickFilterTextField = (0, _system.styled)(_props => {
58
+ const GridQuickFilterTextField = (0, _styles.styled)(_props => {
59
59
  throw new Error('Failed assertion: should not be rendered');
60
60
  }, {
61
61
  name: 'MuiDataGrid',
@@ -14,7 +14,7 @@ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runt
14
14
  var React = _interopRequireWildcard(require("react"));
15
15
  var _propTypes = _interopRequireDefault(require("prop-types"));
16
16
  var _useId = _interopRequireDefault(require("@mui/utils/useId"));
17
- var _system = require("@mui/system");
17
+ var _styles = require("@mui/material/styles");
18
18
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
19
19
  var _GridMenu = require("../menu/GridMenu");
20
20
  var _Toolbar = require("./Toolbar");
@@ -42,14 +42,14 @@ const useUtilityClasses = ownerState => {
42
42
  };
43
43
  return (0, _composeClasses.default)(slots, _gridClasses.getDataGridUtilityClass, classes);
44
44
  };
45
- const Divider = (0, _system.styled)(_assert.NotRendered, {
45
+ const Divider = (0, _styles.styled)(_assert.NotRendered, {
46
46
  name: 'MuiDataGrid',
47
47
  slot: 'ToolbarDivider'
48
48
  })({
49
49
  height: '50%',
50
50
  margin: _cssVariables.vars.spacing(0, 0.5)
51
51
  });
52
- const Label = (0, _system.styled)('span', {
52
+ const Label = (0, _styles.styled)('span', {
53
53
  name: 'MuiDataGrid',
54
54
  slot: 'ToolbarLabel'
55
55
  })({
@@ -6,7 +6,7 @@ export type ToolbarProps = React.HTMLAttributes<HTMLDivElement> & {
6
6
  */
7
7
  render?: RenderProp<React.ComponentProps<typeof ToolbarRoot>>;
8
8
  };
9
- declare const ToolbarRoot: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/system").Theme>, Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React.ClassAttributes<HTMLDivElement> | keyof React.HTMLAttributes<HTMLDivElement>>, {}>;
9
+ declare const ToolbarRoot: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme>, Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React.ClassAttributes<HTMLDivElement> | keyof React.HTMLAttributes<HTMLDivElement>>, {}>;
10
10
  /**
11
11
  * The top level Toolbar component that provides context to child components.
12
12
  * It renders a styled `<div />` element.
@@ -11,7 +11,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
11
11
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
12
12
  var React = _interopRequireWildcard(require("react"));
13
13
  var _propTypes = _interopRequireDefault(require("prop-types"));
14
- var _system = require("@mui/system");
14
+ var _styles = require("@mui/material/styles");
15
15
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
16
16
  var _clsx = _interopRequireDefault(require("clsx"));
17
17
  var _forwardRef = require("@mui/x-internals/forwardRef");
@@ -32,7 +32,7 @@ const useUtilityClasses = ownerState => {
32
32
  };
33
33
  return (0, _composeClasses.default)(slots, _gridClasses.getDataGridUtilityClass, classes);
34
34
  };
35
- const ToolbarRoot = (0, _system.styled)('div', {
35
+ const ToolbarRoot = (0, _styles.styled)('div', {
36
36
  name: 'MuiDataGrid',
37
37
  slot: 'Toolbar'
38
38
  })({
@@ -9,7 +9,7 @@ exports.GridBottomContainer = GridBottomContainer;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var React = _interopRequireWildcard(require("react"));
11
11
  var _clsx = _interopRequireDefault(require("clsx"));
12
- var _system = require("@mui/system");
12
+ var _styles = require("@mui/material/styles");
13
13
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
14
14
  var _gridClasses = require("../../constants/gridClasses");
15
15
  var _jsxRuntime = require("react/jsx-runtime");
@@ -19,7 +19,7 @@ const useUtilityClasses = () => {
19
19
  };
20
20
  return (0, _composeClasses.default)(slots, _gridClasses.getDataGridUtilityClass, {});
21
21
  };
22
- const Element = (0, _system.styled)('div', {
22
+ const Element = (0, _styles.styled)('div', {
23
23
  slot: 'internal',
24
24
  shouldForwardProp: undefined
25
25
  })({
@@ -9,12 +9,12 @@ Object.defineProperty(exports, "__esModule", {
9
9
  exports.GridMainContainer = void 0;
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
11
  var React = _interopRequireWildcard(require("react"));
12
- var _system = require("@mui/system");
12
+ var _styles = require("@mui/material/styles");
13
13
  var _forwardRef = require("@mui/x-internals/forwardRef");
14
14
  var _useGridRootProps = require("../../hooks/utils/useGridRootProps");
15
15
  var _useGridConfiguration = require("../../hooks/utils/useGridConfiguration");
16
16
  var _jsxRuntime = require("react/jsx-runtime");
17
- const GridPanelAnchor = (0, _system.styled)('div', {
17
+ const GridPanelAnchor = (0, _styles.styled)('div', {
18
18
  slot: 'internal',
19
19
  shouldForwardProp: undefined
20
20
  })({
@@ -23,7 +23,7 @@ const GridPanelAnchor = (0, _system.styled)('div', {
23
23
  left: 0,
24
24
  width: 'calc(100% - (var(--DataGrid-hasScrollY) * var(--DataGrid-scrollbarSize)))'
25
25
  });
26
- const Element = (0, _system.styled)('div', {
26
+ const Element = (0, _styles.styled)('div', {
27
27
  name: 'MuiDataGrid',
28
28
  slot: 'Main',
29
29
  overridesResolver: (props, styles) => {
@@ -9,7 +9,7 @@ exports.GridTopContainer = GridTopContainer;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var React = _interopRequireWildcard(require("react"));
11
11
  var _clsx = _interopRequireDefault(require("clsx"));
12
- var _system = require("@mui/system");
12
+ var _styles = require("@mui/material/styles");
13
13
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
14
14
  var _gridClasses = require("../../constants/gridClasses");
15
15
  var _jsxRuntime = require("react/jsx-runtime");
@@ -19,7 +19,7 @@ const useUtilityClasses = () => {
19
19
  };
20
20
  return (0, _composeClasses.default)(slots, _gridClasses.getDataGridUtilityClass, {});
21
21
  };
22
- const Element = (0, _system.styled)('div', {
22
+ const Element = (0, _styles.styled)('div', {
23
23
  slot: 'internal',
24
24
  shouldForwardProp: undefined
25
25
  })({
@@ -8,6 +8,6 @@ type GridVirtualScrollbarProps = {
8
8
  }>;
9
9
  };
10
10
  export declare const scrollbarSizeCssExpression = "calc(max(var(--DataGrid-scrollbarSize), 14px))";
11
- export declare const ScrollbarCorner: import("@emotion/styled").StyledComponent<Pick<import("@mui/system").MUIStyledCommonProps<import("@mui/system").Theme> & Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React.ClassAttributes<HTMLDivElement> | keyof React.HTMLAttributes<HTMLDivElement>>, keyof React.ClassAttributes<HTMLDivElement> | keyof React.HTMLAttributes<HTMLDivElement> | keyof import("@mui/system").MUIStyledCommonProps<import("@mui/system").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/system").Theme>, {}, {}>;
11
+ export declare const ScrollbarCorner: import("@emotion/styled").StyledComponent<Pick<import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme> & Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React.ClassAttributes<HTMLDivElement> | keyof React.HTMLAttributes<HTMLDivElement>>, keyof React.ClassAttributes<HTMLDivElement> | keyof React.HTMLAttributes<HTMLDivElement> | keyof import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme>, {}, {}>;
12
12
  declare const GridVirtualScrollbar: React.ForwardRefExoticComponent<GridVirtualScrollbarProps> | React.ForwardRefExoticComponent<GridVirtualScrollbarProps & React.RefAttributes<HTMLDivElement>>;
13
13
  export { GridVirtualScrollbar };
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "__esModule", {
8
8
  });
9
9
  exports.scrollbarSizeCssExpression = exports.ScrollbarCorner = exports.GridVirtualScrollbar = void 0;
10
10
  var React = _interopRequireWildcard(require("react"));
11
- var _system = require("@mui/system");
11
+ var _styles = require("@mui/material/styles");
12
12
  var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallback"));
13
13
  var _useForkRef = _interopRequireDefault(require("@mui/utils/useForkRef"));
14
14
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
@@ -35,7 +35,7 @@ const useUtilityClasses = (ownerState, position) => {
35
35
  // to appear and have a real size. We set it to 14px because it seems like an acceptable value and we
36
36
  // don't have a method to find the required size for scrollbars on those platforms.
37
37
  const scrollbarSizeCssExpression = exports.scrollbarSizeCssExpression = 'calc(max(var(--DataGrid-scrollbarSize), 14px))';
38
- const Scrollbar = (0, _system.styled)('div', {
38
+ const Scrollbar = (0, _styles.styled)('div', {
39
39
  slot: 'internal',
40
40
  shouldForwardProp: undefined
41
41
  })({
@@ -47,7 +47,7 @@ const Scrollbar = (0, _system.styled)('div', {
47
47
  },
48
48
  '--size': scrollbarSizeCssExpression
49
49
  });
50
- const ScrollbarVertical = (0, _system.styled)(Scrollbar, {
50
+ const ScrollbarVertical = (0, _styles.styled)(Scrollbar, {
51
51
  slot: 'internal'
52
52
  })({
53
53
  width: 'var(--size)',
@@ -62,7 +62,7 @@ const ScrollbarVertical = (0, _system.styled)(Scrollbar, {
62
62
  top: 'var(--DataGrid-headersTotalHeight)',
63
63
  right: 0
64
64
  });
65
- const ScrollbarHorizontal = (0, _system.styled)(Scrollbar, {
65
+ const ScrollbarHorizontal = (0, _styles.styled)(Scrollbar, {
66
66
  slot: 'internal'
67
67
  })({
68
68
  width: 'calc(var(--DataGrid-hasScrollX) * (100% - var(--DataGrid-hasScrollY) * var(--DataGrid-scrollbarSize)))',
@@ -76,7 +76,7 @@ const ScrollbarHorizontal = (0, _system.styled)(Scrollbar, {
76
76
  },
77
77
  bottom: 0
78
78
  });
79
- const ScrollbarCorner = exports.ScrollbarCorner = (0, _system.styled)(Scrollbar, {
79
+ const ScrollbarCorner = exports.ScrollbarCorner = (0, _styles.styled)(Scrollbar, {
80
80
  slot: 'internal'
81
81
  })({
82
82
  width: 'var(--size)',
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.GridVirtualScroller = GridVirtualScroller;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var React = _interopRequireWildcard(require("react"));
11
- var _system = require("@mui/system");
11
+ var _styles = require("@mui/material/styles");
12
12
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
13
13
  var _gridDimensionsSelectors = require("../../hooks/features/dimensions/gridDimensionsSelectors");
14
14
  var _rows = require("../../hooks/features/rows");
@@ -44,7 +44,7 @@ const useUtilityClasses = ownerState => {
44
44
  };
45
45
  return (0, _composeClasses.default)(slots, _gridClasses.getDataGridUtilityClass, classes);
46
46
  };
47
- const Scroller = (0, _system.styled)('div', {
47
+ const Scroller = (0, _styles.styled)('div', {
48
48
  name: 'MuiDataGrid',
49
49
  slot: 'VirtualScroller',
50
50
  overridesResolver: (props, styles) => {
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.GridVirtualScrollerFiller = void 0;
8
8
  var React = _interopRequireWildcard(require("react"));
9
- var _system = require("@mui/system");
9
+ var _styles = require("@mui/material/styles");
10
10
  var _fastMemo = require("@mui/x-internals/fastMemo");
11
11
  var _cssVariables = require("../../constants/cssVariables");
12
12
  var _useGridSelector = require("../../hooks/utils/useGridSelector");
@@ -14,7 +14,7 @@ var _useGridApiContext = require("../../hooks/utils/useGridApiContext");
14
14
  var _dimensions = require("../../hooks/features/dimensions");
15
15
  var _constants = require("../../constants");
16
16
  var _jsxRuntime = require("react/jsx-runtime");
17
- const Filler = (0, _system.styled)('div', {
17
+ const Filler = (0, _styles.styled)('div', {
18
18
  slot: 'internal',
19
19
  shouldForwardProp: undefined
20
20
  })({
@@ -23,7 +23,7 @@ const Filler = (0, _system.styled)('div', {
23
23
  width: 'var(--DataGrid-rowWidth)',
24
24
  boxSizing: 'border-box'
25
25
  });
26
- const Pinned = (0, _system.styled)('div', {
26
+ const Pinned = (0, _styles.styled)('div', {
27
27
  slot: 'internal',
28
28
  shouldForwardProp: undefined
29
29
  })({
@@ -33,17 +33,17 @@ const Pinned = (0, _system.styled)('div', {
33
33
  borderTop: '1px solid var(--rowBorderColor)',
34
34
  backgroundColor: _cssVariables.vars.cell.background.pinned
35
35
  });
36
- const PinnedLeft = (0, _system.styled)(Pinned, {
36
+ const PinnedLeft = (0, _styles.styled)(Pinned, {
37
37
  slot: 'internal'
38
38
  })({
39
39
  left: 0
40
40
  });
41
- const PinnedRight = (0, _system.styled)(Pinned, {
41
+ const PinnedRight = (0, _styles.styled)(Pinned, {
42
42
  slot: 'internal'
43
43
  })({
44
44
  right: 0
45
45
  });
46
- const Main = (0, _system.styled)('div', {
46
+ const Main = (0, _styles.styled)('div', {
47
47
  slot: 'internal',
48
48
  shouldForwardProp: undefined
49
49
  })({
@@ -30,6 +30,7 @@ const DATA_GRID_PROPS_DEFAULT_VALUES = exports.DATA_GRID_PROPS_DEFAULT_VALUES =
30
30
  disableMultipleColumnsFiltering: false,
31
31
  disableMultipleColumnsSorting: false,
32
32
  disableMultipleRowSelection: false,
33
+ dataSourceRevalidateMs: 0,
33
34
  disableRowSelectionOnClick: false,
34
35
  disableRowSelectionExcludeModel: false,
35
36
  disableVirtualization: false,
@@ -173,6 +173,13 @@ DataGridRaw.propTypes = {
173
173
  get: PropTypes.func.isRequired,
174
174
  set: PropTypes.func.isRequired
175
175
  }),
176
+ /**
177
+ * If positive, the Data Grid will periodically revalidate data source rows by
178
+ * re-fetching them from the server when the cache entry has expired.
179
+ * Set to `0` to disable polling.
180
+ * @default 0
181
+ */
182
+ dataSourceRevalidateMs: PropTypes.number,
176
183
  /**
177
184
  * Set the density of the Data Grid.
178
185
  * @default "standard"
@@ -1,2 +1 @@
1
- import '../index.css';
2
1
  export * from "./DataGrid.js";
@@ -4,7 +4,7 @@ const _excluded = ["direction", "index", "sortingOrder", "disabled", "className"
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import composeClasses from '@mui/utils/composeClasses';
7
- import { styled } from '@mui/system';
7
+ import { styled } from '@mui/material/styles';
8
8
  import clsx from 'clsx';
9
9
  import { useGridApiContext } from "../hooks/utils/useGridApiContext.js";
10
10
  import { getDataGridUtilityClass } from "../constants/gridClasses.js";
@@ -5,7 +5,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
5
5
  import * as React from 'react';
6
6
  import useEventCallback from '@mui/utils/useEventCallback';
7
7
  import composeClasses from '@mui/utils/composeClasses';
8
- import { styled } from '@mui/system';
8
+ import { styled } from '@mui/material/styles';
9
9
  import { fastMemo } from '@mui/x-internals/fastMemo';
10
10
  import { forwardRef } from '@mui/x-internals/forwardRef';
11
11
  import { useGridRootProps } from "../hooks/utils/useGridRootProps.js";
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
 
3
3
  import * as React from 'react';
4
- import { styled } from '@mui/system';
4
+ import { styled } from '@mui/material/styles';
5
5
  import { useRtl } from '@mui/system/RtlProvider';
6
6
  import composeClasses from '@mui/utils/composeClasses';
7
7
  import { gridDimensionsSelector, gridPinnedColumnsSelector, useGridEvent, useGridSelector } from "../hooks/index.js";
@@ -5,7 +5,7 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
5
5
  const _excluded = ["skeletonRowsCount", "visibleColumns", "showFirstRowBorder"];
6
6
  import * as React from 'react';
7
7
  import clsx from 'clsx';
8
- import { styled } from '@mui/system';
8
+ import { styled } from '@mui/material/styles';
9
9
  import useForkRef from '@mui/utils/useForkRef';
10
10
  import composeClasses from '@mui/utils/composeClasses';
11
11
  import { useRtl } from '@mui/system/RtlProvider';
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
3
  import PropTypes from 'prop-types';
4
- import { styled } from '@mui/system';
4
+ import { styled } from '@mui/material/styles';
5
5
  import composeClasses from '@mui/utils/composeClasses';
6
6
  import { minimalContentHeight } from "../../hooks/features/rows/gridRowsUtils.js";
7
7
  import { useGridSelector } from "../../hooks/utils/useGridSelector.js";
@@ -10,6 +10,7 @@ import { fastMemo } from '@mui/x-internals/fastMemo';
10
10
  import { useRtl } from '@mui/system/RtlProvider';
11
11
  import { doesSupportPreventScroll } from "../../utils/doesSupportPreventScroll.js";
12
12
  import { useGridPrivateApiContext } from "../../hooks/utils/useGridPrivateApiContext.js";
13
+ import { getColumnMenuItemKeys } from "../../hooks/features/columnMenu/getColumnMenuItemKeys.js";
13
14
  import { ColumnHeaderMenuIcon } from "./ColumnHeaderMenuIcon.js";
14
15
  import { GridColumnHeaderMenu } from "../menu/columnMenu/GridColumnHeaderMenu.js";
15
16
  import { gridClasses, getDataGridUtilityClass } from "../../constants/gridClasses.js";
@@ -78,6 +79,30 @@ function GridColumnHeaderItem(props) {
78
79
  const columnMenuButtonId = useId();
79
80
  const iconButtonRef = React.useRef(null);
80
81
  const [showColumnMenuIcon, setShowColumnMenuIcon] = React.useState(columnMenuOpen);
82
+ const columnMenuSlotProps = rootProps.slotProps?.columnMenu;
83
+ const columnMenuComponent = rootProps.slots.columnMenu;
84
+ const defaultSlots = columnMenuComponent?.defaultSlots;
85
+ const defaultSlotProps = columnMenuComponent?.defaultSlotProps;
86
+ const hasKnownDefaultColumnMenu = defaultSlots != null && defaultSlotProps != null;
87
+ const columnMenuItemKeys = React.useMemo(() => {
88
+ if (!hasKnownDefaultColumnMenu) {
89
+ return [];
90
+ }
91
+ return getColumnMenuItemKeys({
92
+ apiRef,
93
+ colDef,
94
+ defaultSlots,
95
+ defaultSlotProps,
96
+ slots: columnMenuSlotProps?.slots,
97
+ slotProps: columnMenuSlotProps?.slotProps
98
+ });
99
+ }, [apiRef, colDef, defaultSlotProps, defaultSlots, hasKnownDefaultColumnMenu, columnMenuSlotProps?.slotProps, columnMenuSlotProps?.slots]);
100
+
101
+ // If we don't have a "known" default column menu (i.e. a custom menu component
102
+ // without `defaultSlots` / `defaultSlotProps` statics), we treat it as opaque
103
+ // and assume it has items, so we always show the column menu icon.
104
+ // Only the built-in/default menu path can hide the icon when there are no items.
105
+ const hasColumnMenuItems = !hasKnownDefaultColumnMenu || columnMenuItemKeys.length > 0;
81
106
  const isDraggable = !rootProps.disableColumnReorder && !disableReorder && !colDef.disableReorder;
82
107
  let headerComponent;
83
108
  if (colDef.renderHeader) {
@@ -128,10 +153,15 @@ function GridColumnHeaderItem(props) {
128
153
  setShowColumnMenuIcon(columnMenuOpen);
129
154
  }
130
155
  }, [showColumnMenuIcon, columnMenuOpen]);
156
+ React.useEffect(() => {
157
+ if (hasKnownDefaultColumnMenu && columnMenuOpen && !hasColumnMenuItems) {
158
+ apiRef.current.hideColumnMenu();
159
+ }
160
+ }, [apiRef, columnMenuOpen, hasColumnMenuItems, hasKnownDefaultColumnMenu]);
131
161
  const handleExited = React.useCallback(() => {
132
162
  setShowColumnMenuIcon(false);
133
163
  }, []);
134
- const columnMenuIconButton = !rootProps.disableColumnMenu && !colDef.disableColumnMenu && /*#__PURE__*/_jsx(ColumnHeaderMenuIcon, {
164
+ const columnMenuIconButton = !rootProps.disableColumnMenu && !colDef.disableColumnMenu && hasColumnMenuItems && /*#__PURE__*/_jsx(ColumnHeaderMenuIcon, {
135
165
  colDef: colDef,
136
166
  columnMenuId: columnMenuId,
137
167
  columnMenuButtonId: columnMenuButtonId,
@@ -7,7 +7,7 @@ import * as React from 'react';
7
7
  import PropTypes from 'prop-types';
8
8
  import clsx from 'clsx';
9
9
  import composeClasses from '@mui/utils/composeClasses';
10
- import { styled } from '@mui/system';
10
+ import { styled } from '@mui/material/styles';
11
11
  import { forwardRef } from '@mui/x-internals/forwardRef';
12
12
  import { isOverflown } from "../../utils/domUtils.js";
13
13
  import { getDataGridUtilityClass } from "../../constants/gridClasses.js";
@@ -6,7 +6,7 @@ const _excluded = ["className"];
6
6
  import * as React from 'react';
7
7
  import clsx from 'clsx';
8
8
  import composeClasses from '@mui/utils/composeClasses';
9
- import { styled } from '@mui/system';
9
+ import { styled } from '@mui/material/styles';
10
10
  import { forwardRef } from '@mui/x-internals/forwardRef';
11
11
  import { getDataGridUtilityClass } from "../../constants/gridClasses.js";
12
12
  import { useGridRootProps } from "../../hooks/utils/useGridRootProps.js";