@mui/x-data-grid 8.28.1 → 8.28.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -5,9 +5,212 @@
5
5
  All notable changes to this project will be documented in this file.
6
6
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
7
7
 
8
- ## 8.28.1
8
+ ## 8.28.5
9
+
10
+ _May 8, 2026_
11
+
12
+ We'd like to extend a big thank you to the 2 contributors who made this release possible. Here are some highlights ✨:
13
+
14
+ - 🐞 Bugfixes
15
+
16
+ The following team members contributed to this release:
17
+ @LukasTy, @MBilalShafi
18
+
19
+ ### Data Grid
20
+
21
+ #### `@mui/x-data-grid@8.28.5`
22
+
23
+ - [DataGrid] Fix active filter detection for array values (#22357) @MBilalShafi
24
+ - [DataGrid] Fix crash when grouping/tree-data values match `Object.prototype` property names (#22343) @LukasTy
25
+
26
+ #### `@mui/x-data-grid-pro@8.28.5` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
27
+
28
+ Same changes as in `@mui/x-data-grid@8.28.5`.
29
+
30
+ #### `@mui/x-data-grid-premium@8.28.5` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
31
+
32
+ Same changes as in `@mui/x-data-grid-pro@8.28.5`.
33
+
34
+ ### Date and Time Pickers
35
+
36
+ #### `@mui/x-date-pickers@8.28.5`
37
+
38
+ - [pickers] Fix duplicate hour label in `MultiSectionDigitalClock` on DST day (#22350) @LukasTy
39
+
40
+ #### `@mui/x-date-pickers-pro@8.28.5` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
41
+
42
+ Same changes as in `@mui/x-date-pickers@8.28.5`.
43
+
44
+ ### Tree View
45
+
46
+ #### `@mui/x-tree-view@8.28.5`
47
+
48
+ - [tree view] Fix stale Tree View `apiRef` after keyed remount (#22355) @MBilalShafi
49
+
50
+ #### `@mui/x-tree-view-pro@8.28.5` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
51
+
52
+ Same changes as in `@mui/x-tree-view@8.28.5`.
53
+
54
+ ### Core
55
+
56
+ - [code-infra] Fix broken `valelint` and docs build (#22362) @LukasTy
57
+
58
+ ## 8.28.4
59
+
60
+ _Apr 27, 2026_
61
+
62
+ We'd like to extend a big thank you to the 3 contributors who made this release possible. Here are some highlights ✨:
63
+
64
+ - 🐞 Bugfixes
65
+
66
+ Special thanks go out to these community members for their valuable contributions:
67
+ @supunsathsara
68
+
69
+ The following team members contributed to this release:
70
+ @LukasTy, @michelengelen
71
+
72
+ ### Date and Time Pickers
73
+
74
+ #### `@mui/x-date-pickers@8.28.4`
75
+
76
+ - [pickers] Fix `DateRangeCalendar` drag with `AdapterDayjs` plain-constructor values (#22170) @LukasTy
77
+ - [pickers] Fix disabled state not overriding error border color (#22186) @supunsathsara
78
+ - [pickers] Use `convertToMeridiem` utility in `transferDateSectionValue` (#22132) @michelengelen
79
+
80
+ #### `@mui/x-date-pickers-pro@8.28.4` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
81
+
82
+ Same changes as in `@mui/x-date-pickers@8.28.4`.
83
+
84
+ ### Docs
85
+
86
+ - [docs] Remove obsolete v7 deprecation warning for `dayOfWeekFormatter` (#22120) @LukasTy
87
+ - [docs] Use mui.com for broken links checker known targets (#22171) @LukasTy
88
+
89
+ ## 8.28.3
90
+
91
+ _Apr 15, 2026_
92
+
93
+ We'd like to extend a big thank you to the 6 contributors who made this release possible. Here are some highlights ✨:
94
+
95
+ - 🐞 Bugfixes
96
+
97
+ Special thanks go out to this community member for their valuable contribution:
98
+ @nk10nikhil
99
+
100
+ The following team members contributed to this release:
101
+ @flaviendelangle, @LukasTy, @MBilalShafi, @michelengelen, @sai6855
102
+
103
+ ### Data Grid
104
+
105
+ #### `@mui/x-data-grid@8.28.2`
106
+
107
+ Internal changes.
9
108
 
10
- <!-- generated comparing v8.28.0..v8.x -->
109
+ #### `@mui/x-data-grid-pro@8.28.2` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
110
+
111
+ Same changes as in `@mui/x-data-grid@8.28.2`, plus:
112
+
113
+ - [DataGridPro] Improve trigger for nested row reordering (#21996) @MBilalShafi
114
+
115
+ #### `@mui/x-data-grid-premium@8.28.2` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
116
+
117
+ Same changes as in `@mui/x-data-grid-pro@8.28.2`.
118
+
119
+ ### Date and Time Pickers
120
+
121
+ #### `@mui/x-date-pickers@8.28.3`
122
+
123
+ - [pickers] Ensure correct `display` property on Day component (#21980) @LukasTy
124
+
125
+ #### `@mui/x-date-pickers-pro@8.28.3` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
126
+
127
+ Same changes as in `@mui/x-date-pickers@8.28.3`.
128
+
129
+ ### Charts
130
+
131
+ #### `@mui/x-charts@8.28.2`
132
+
133
+ - [charts] Add missing export for `ChartsBrushOverlay` (#21993) (#22008) @nk10nikhil
134
+
135
+ #### `@mui/x-charts-pro@8.28.2` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
136
+
137
+ Same changes as in `@mui/x-charts@8.28.2`.
138
+
139
+ #### `@mui/x-charts-premium@8.28.2` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
140
+
141
+ Same changes as in `@mui/x-charts-pro@8.28.2`.
142
+
143
+ ### Tree View
144
+
145
+ #### `@mui/x-tree-view@8.28.3`
146
+
147
+ - [tree view] Move `lazyLoadedItems` initialization to state initializer (#22087) @michelengelen
148
+
149
+ #### `@mui/x-tree-view-pro@8.28.3` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
150
+
151
+ Same changes as in `@mui/x-tree-view@8.28.3`, plus:
152
+
153
+ - [RichTreeViewPro] Allow to auto-expand lazy loaded items (#21957) @flaviendelangle
154
+
155
+ ### Docs
156
+
157
+ - [docs] Fix `TreeDataFullExample` data grid demo crash (#22007) @sai6855
158
+
159
+ ### Miscellaneous
160
+
161
+ - [core] Post v9 stable updates (#22035) @LukasTy
162
+
163
+ ## 8.28.2
164
+
165
+ _Apr 1, 2026_
166
+
167
+ We'd like to extend a big thank you to the 4 contributors who made this release possible.
168
+
169
+ Special thanks go out to this community member for their valuable contribution:
170
+ @mixelburg, @sibananda485
171
+
172
+ The following team members contributed to this release:
173
+ @dav-is, @JCQuintas
174
+
175
+ ### Data Grid
176
+
177
+ #### `@mui/x-data-grid@8.28.2`
178
+
179
+ - [DataGrid] Export `GridColumnUnsortedIconProps` for custom column icon slots (#21898) @mixelburg
180
+
181
+ #### `@mui/x-data-grid-pro@8.28.2` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
182
+
183
+ Same changes as in `@mui/x-data-grid@8.28.2`.
184
+
185
+ #### `@mui/x-data-grid-premium@8.28.2` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
186
+
187
+ Same changes as in `@mui/x-data-grid-pro@8.28.2`, plus:
188
+
189
+ - [DataGridPremium] Fix clipboard paste issue in portal (#21949) @sibananda485
190
+
191
+ ### Charts
192
+
193
+ #### `@mui/x-charts@8.28.2`
194
+
195
+ - [charts] Fix zoom slider preview with discard filter mode (#21906) @JCQuintas
196
+
197
+ #### `@mui/x-charts-pro@8.28.2` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
198
+
199
+ Same changes as in `@mui/x-charts@8.28.2`.
200
+
201
+ #### `@mui/x-charts-premium@8.28.2` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
202
+
203
+ Same changes as in `@mui/x-charts-pro@8.28.2`.
204
+
205
+ ### Docs
206
+
207
+ - [docs] Fix JSDOM → jsdom casing (#21908) @JCQuintas
208
+
209
+ ### Core
210
+
211
+ - [docs-infra] Set `SEARCH_INDEX` Env for v8 (#21875) @dav-is
212
+
213
+ ## 8.28.1
11
214
 
12
215
  _Mar 26, 2026_
13
216
 
@@ -40,9 +243,7 @@ Same changes as in `@mui/x-data-grid-pro@8.28.1`.
40
243
 
41
244
  _Mar 19, 2026_
42
245
 
43
- We'd like to extend a big thank you to the 5 contributors who made this release possible. Here are some highlights ✨:
44
-
45
- TODO INSERT HIGHLIGHTS
246
+ We'd like to extend a big thank you to the 5 contributors who made this release possible.
46
247
 
47
248
  The following team members contributed to this release:
48
249
  @alexfauquette, @brijeshb42, @Janpot, @JCQuintas, @sai6855
@@ -1,7 +1,10 @@
1
- import * as React from 'react';
2
1
  import type { GridBaseIconProps } from "../models/gridSlotsComponentsProps.js";
3
2
  import type { GridSortDirection } from "../models/gridSortModel.js";
4
3
  export interface GridColumnUnsortedIconProps extends GridBaseIconProps {
5
4
  sortingOrder: GridSortDirection[];
6
5
  }
7
- export declare const GridColumnUnsortedIcon: React.NamedExoticComponent<GridColumnUnsortedIconProps>;
6
+ declare function GridColumnUnsortedIcon(props: GridColumnUnsortedIconProps): import("react/jsx-runtime").JSX.Element | null;
7
+ declare namespace GridColumnUnsortedIcon {
8
+ var propTypes: any;
9
+ }
10
+ export { GridColumnUnsortedIcon };
@@ -5,21 +5,35 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.GridColumnUnsortedIcon = void 0;
8
+ exports.GridColumnUnsortedIcon = GridColumnUnsortedIcon;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
11
  var React = _interopRequireWildcard(require("react"));
12
+ var _propTypes = _interopRequireDefault(require("prop-types"));
12
13
  var _useGridRootProps = require("../hooks/utils/useGridRootProps");
13
14
  var _jsxRuntime = require("react/jsx-runtime");
14
15
  const _excluded = ["sortingOrder"];
15
- const GridColumnUnsortedIcon = exports.GridColumnUnsortedIcon = /*#__PURE__*/React.memo(function GridColumnHeaderSortIcon(props) {
16
+ function GridColumnUnsortedIcon(props) {
16
17
  const {
17
18
  sortingOrder
18
19
  } = props,
19
20
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
20
- const rootProps = (0, _useGridRootProps.useGridRootProps)();
21
+ const {
22
+ slots
23
+ } = (0, _useGridRootProps.useGridRootProps)();
21
24
  const [nextSortDirection] = sortingOrder;
22
- const Icon = nextSortDirection === 'asc' ? rootProps.slots.columnSortedAscendingIcon : rootProps.slots.columnSortedDescendingIcon;
25
+ const Icon = nextSortDirection === 'asc' ? slots.columnSortedAscendingIcon : slots.columnSortedDescendingIcon;
23
26
  return Icon ? /*#__PURE__*/(0, _jsxRuntime.jsx)(Icon, (0, _extends2.default)({}, other)) : null;
24
- });
25
- if (process.env.NODE_ENV !== "production") GridColumnUnsortedIcon.displayName = "GridColumnUnsortedIcon";
27
+ }
28
+ process.env.NODE_ENV !== "production" ? GridColumnUnsortedIcon.propTypes = {
29
+ // ----------------------------- Warning --------------------------------
30
+ // | These PropTypes are generated from the TypeScript type definitions |
31
+ // | To update them edit the TypeScript types and run "pnpm proptypes" |
32
+ // ----------------------------------------------------------------------
33
+ className: _propTypes.default.string,
34
+ color: _propTypes.default.string,
35
+ fontSize: _propTypes.default.oneOf(['inherit', 'large', 'medium', 'small']),
36
+ sortingOrder: _propTypes.default.arrayOf(_propTypes.default.oneOf(['asc', 'desc'])).isRequired,
37
+ style: _propTypes.default.object,
38
+ titleAccess: _propTypes.default.string
39
+ } : void 0;
@@ -23,4 +23,6 @@ export * from "./columnsPanel/index.js";
23
23
  export * from "./export/index.js";
24
24
  export * from "./filterPanel/index.js";
25
25
  export * from "./toolbarV8/index.js";
26
- export * from "./quickFilter/index.js";
26
+ export * from "./quickFilter/index.js";
27
+ export { GridColumnUnsortedIcon } from "./GridColumnUnsortedIcon.js";
28
+ export type { GridColumnUnsortedIconProps } from "./GridColumnUnsortedIcon.js";
@@ -4,8 +4,15 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  var _exportNames = {
7
- GridPagination: true
7
+ GridPagination: true,
8
+ GridColumnUnsortedIcon: true
8
9
  };
10
+ Object.defineProperty(exports, "GridColumnUnsortedIcon", {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _GridColumnUnsortedIcon.GridColumnUnsortedIcon;
14
+ }
15
+ });
9
16
  Object.defineProperty(exports, "GridPagination", {
10
17
  enumerable: true,
11
18
  get: function () {
@@ -312,4 +319,5 @@ Object.keys(_quickFilter).forEach(function (key) {
312
319
  return _quickFilter[key];
313
320
  }
314
321
  });
315
- });
322
+ });
323
+ var _GridColumnUnsortedIcon = require("./GridColumnUnsortedIcon");
@@ -1,7 +1,10 @@
1
- import * as React from 'react';
2
1
  import type { GridBaseIconProps } from "../models/gridSlotsComponentsProps.js";
3
2
  import type { GridSortDirection } from "../models/gridSortModel.js";
4
3
  export interface GridColumnUnsortedIconProps extends GridBaseIconProps {
5
4
  sortingOrder: GridSortDirection[];
6
5
  }
7
- export declare const GridColumnUnsortedIcon: React.NamedExoticComponent<GridColumnUnsortedIconProps>;
6
+ declare function GridColumnUnsortedIcon(props: GridColumnUnsortedIconProps): import("react/jsx-runtime").JSX.Element | null;
7
+ declare namespace GridColumnUnsortedIcon {
8
+ var propTypes: any;
9
+ }
10
+ export { GridColumnUnsortedIcon };
@@ -2,16 +2,31 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
3
  const _excluded = ["sortingOrder"];
4
4
  import * as React from 'react';
5
+ import PropTypes from 'prop-types';
5
6
  import { useGridRootProps } from "../hooks/utils/useGridRootProps.js";
6
7
  import { jsx as _jsx } from "react/jsx-runtime";
7
- export const GridColumnUnsortedIcon = /*#__PURE__*/React.memo(function GridColumnHeaderSortIcon(props) {
8
+ function GridColumnUnsortedIcon(props) {
8
9
  const {
9
10
  sortingOrder
10
11
  } = props,
11
12
  other = _objectWithoutPropertiesLoose(props, _excluded);
12
- const rootProps = useGridRootProps();
13
+ const {
14
+ slots
15
+ } = useGridRootProps();
13
16
  const [nextSortDirection] = sortingOrder;
14
- const Icon = nextSortDirection === 'asc' ? rootProps.slots.columnSortedAscendingIcon : rootProps.slots.columnSortedDescendingIcon;
17
+ const Icon = nextSortDirection === 'asc' ? slots.columnSortedAscendingIcon : slots.columnSortedDescendingIcon;
15
18
  return Icon ? /*#__PURE__*/_jsx(Icon, _extends({}, other)) : null;
16
- });
17
- if (process.env.NODE_ENV !== "production") GridColumnUnsortedIcon.displayName = "GridColumnUnsortedIcon";
19
+ }
20
+ process.env.NODE_ENV !== "production" ? GridColumnUnsortedIcon.propTypes = {
21
+ // ----------------------------- Warning --------------------------------
22
+ // | These PropTypes are generated from the TypeScript type definitions |
23
+ // | To update them edit the TypeScript types and run "pnpm proptypes" |
24
+ // ----------------------------------------------------------------------
25
+ className: PropTypes.string,
26
+ color: PropTypes.string,
27
+ fontSize: PropTypes.oneOf(['inherit', 'large', 'medium', 'small']),
28
+ sortingOrder: PropTypes.arrayOf(PropTypes.oneOf(['asc', 'desc'])).isRequired,
29
+ style: PropTypes.object,
30
+ titleAccess: PropTypes.string
31
+ } : void 0;
32
+ export { GridColumnUnsortedIcon };
@@ -23,4 +23,6 @@ export * from "./columnsPanel/index.js";
23
23
  export * from "./export/index.js";
24
24
  export * from "./filterPanel/index.js";
25
25
  export * from "./toolbarV8/index.js";
26
- export * from "./quickFilter/index.js";
26
+ export * from "./quickFilter/index.js";
27
+ export { GridColumnUnsortedIcon } from "./GridColumnUnsortedIcon.js";
28
+ export type { GridColumnUnsortedIconProps } from "./GridColumnUnsortedIcon.js";
@@ -23,4 +23,5 @@ export * from "./columnsPanel/index.js";
23
23
  export * from "./export/index.js";
24
24
  export * from "./filterPanel/index.js";
25
25
  export * from "./toolbarV8/index.js";
26
- export * from "./quickFilter/index.js";
26
+ export * from "./quickFilter/index.js";
27
+ export { GridColumnUnsortedIcon } from "./GridColumnUnsortedIcon.js";
@@ -175,7 +175,8 @@ export const gridFilterActiveItemsSelector = createSelectorMemoized(gridFilterMo
175
175
  if (!filterOperator) {
176
176
  return false;
177
177
  }
178
- return !filterOperator.InputComponent || item.value != null && item.value?.toString() !== '';
178
+ const hasFilterValue = Array.isArray(item.value) ? item.value.length > 0 : item.value != null && item.value?.toString() !== '';
179
+ return !filterOperator.InputComponent || hasFilterValue;
179
180
  }));
180
181
  /**
181
182
  * @category Filtering
@@ -10,7 +10,9 @@ export const buildRootGroup = () => ({
10
10
  groupingKey: null,
11
11
  isAutoGenerated: true,
12
12
  children: [],
13
- childrenFromPath: {},
13
+ // Prototype-less so user-supplied grouping values like `'constructor'`
14
+ // or `'__proto__'` cannot collide with `Object.prototype` properties.
15
+ childrenFromPath: Object.create(null),
14
16
  childrenExpanded: true,
15
17
  parent: null
16
18
  });
package/esm/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid v8.28.1
2
+ * @mui/x-data-grid v8.28.5
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -180,7 +180,8 @@ const gridFilterActiveItemsSelector = exports.gridFilterActiveItemsSelector = (0
180
180
  if (!filterOperator) {
181
181
  return false;
182
182
  }
183
- return !filterOperator.InputComponent || item.value != null && item.value?.toString() !== '';
183
+ const hasFilterValue = Array.isArray(item.value) ? item.value.length > 0 : item.value != null && item.value?.toString() !== '';
184
+ return !filterOperator.InputComponent || hasFilterValue;
184
185
  }));
185
186
  /**
186
187
  * @category Filtering
@@ -20,7 +20,9 @@ const buildRootGroup = () => ({
20
20
  groupingKey: null,
21
21
  isAutoGenerated: true,
22
22
  children: [],
23
- childrenFromPath: {},
23
+ // Prototype-less so user-supplied grouping values like `'constructor'`
24
+ // or `'__proto__'` cannot collide with `Object.prototype` properties.
25
+ childrenFromPath: Object.create(null),
24
26
  childrenExpanded: true,
25
27
  parent: null
26
28
  });
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid v8.28.1
2
+ * @mui/x-data-grid v8.28.5
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/x-data-grid",
3
- "version": "8.28.1",
3
+ "version": "8.28.5",
4
4
  "author": "MUI Team",
5
5
  "description": "The Community plan edition of the MUI X Data Grid components.",
6
6
  "license": "MIT",