@mui/x-data-grid 8.5.2 → 8.5.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.
package/CHANGELOG.md CHANGED
@@ -5,6 +5,101 @@
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.5.3
9
+
10
+ _Jun 19, 2025_
11
+
12
+ We'd like to extend a big thank you to the 10 contributors who made this release possible. Here are some highlights ✨:
13
+
14
+ - 📚 Documentation improvements
15
+ - 🐞 Bugfixes
16
+
17
+ Special thanks go out to the community members for their valuable contributions:
18
+ @alisasanib, @arminmeh, @sai6855
19
+
20
+ The following are all team members who have contributed to this release:
21
+ @alexfauquette, @bernardobelchior, @flaviendelangle, @JCQuintas, @LukasTy, @MBilalShafi, @oliviertassinari
22
+
23
+ ### Data Grid
24
+
25
+ #### `@mui/x-data-grid@8.5.3`
26
+
27
+ - [DataGrid] Fix export menu button tooltip being interactive when menu is open (#18327) @bernardobelchior
28
+ - [DataGrid] Fix column menu scroll close (#18065) @alisasanib
29
+ - [DataGrid] Fix page size issue with data source (#18419) @MBilalShafi
30
+
31
+ #### `@mui/x-data-grid-pro@8.5.3` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
32
+
33
+ Same changes as in `@mui/x-data-grid@8.5.3`, plus:
34
+
35
+ - [DataGridPro] Ignore missing `rowCount` response when new children are fetched with the data source (#17711) @arminmeh
36
+
37
+ #### `@mui/x-data-grid-premium@8.5.3` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
38
+
39
+ Same changes as in `@mui/x-data-grid-pro@8.5.3`.
40
+
41
+ ### Date and Time Pickers
42
+
43
+ #### `@mui/x-date-pickers@8.5.3`
44
+
45
+ - [pickers] Add `inputSizeSmall` to classes interface (#18242) @sai6855
46
+
47
+ #### `@mui/x-date-pickers-pro@8.5.3` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
48
+
49
+ Same changes as in `@mui/x-date-pickers@8.5.3`.
50
+
51
+ ### Charts
52
+
53
+ #### `@mui/x-charts@8.5.3`
54
+
55
+ - [charts] Add item class to list item around each series in legend (#18411) @bernardobelchior
56
+ - [charts] Allow `tabIndex` in surface and legend (#18344) @JCQuintas
57
+ - [charts] Explore selector typing (#18362) @alexfauquette
58
+ - [charts] Fix highlight with number ids (#18423) @alexfauquette
59
+ - [charts] Make scatter chart use data attributes (#18048) @alexfauquette
60
+
61
+ #### `@mui/x-charts-pro@8.5.3` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
62
+
63
+ Same changes as in `@mui/x-charts@8.5.3`, plus:
64
+
65
+ - [charts-pro] Add data-series to elements of funnel chart (#18067) @JCQuintas
66
+ - [charts-pro] Hide values outside minStart and maxEnd in zoom slider (#18336) @bernardobelchior
67
+ - [charts-pro] Fix `FunnelChart` label positioning with different curves (#18354) @JCQuintas
68
+
69
+ ### Tree View
70
+
71
+ #### `@mui/x-tree-view@8.5.3`
72
+
73
+ Internal changes.
74
+
75
+ #### `@mui/x-tree-view-pro@8.5.3` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
76
+
77
+ Same changes as in `@mui/x-tree-view@8.5.3`.
78
+
79
+ ### Codemod
80
+
81
+ #### `@mui/x-codemod@8.5.3`
82
+
83
+ Internal changes.
84
+
85
+ ### Docs
86
+
87
+ - [docs] Fix 404 in charts docs (#18440) @alexfauquette
88
+ - [docs][pickers] Fix adapter version resolving when opening demo to edit (#18363) @LukasTy
89
+
90
+ ### Core
91
+
92
+ - [core] Fix pnpm valelint error (#18420) @oliviertassinari
93
+
94
+ ### Miscellaneous
95
+
96
+ - [code-infra] Add back a `Playwright` renovate group (#18397) @LukasTy
97
+ - [code-infra] Setup `CODEOWNERS` for charts repositories (#18418) @JCQuintas
98
+ - [code-infra] Strengthen `URL` usage for test config (#18444) @LukasTy
99
+ - [code-infra] Use `vitest` bundled types (#17758) @JCQuintas
100
+ - [infra] Stabilise tests by removing babel and plugins from vitest (#18341) @JCQuintas
101
+ - [infra] Add automated release PR creation script (#18345) @michelengelen
102
+
8
103
  ## 8.5.2
9
104
 
10
105
  _Jun 12, 2025_
@@ -94,7 +189,7 @@ Same changes as in `@mui/x-tree-view@8.5.2`.
94
189
  - [code-infra] Revert `React` to `19.0.0` (#18265) @LukasTy
95
190
  - [code-infra] Use `catalog` for reused dependencies (#18302) @LukasTy
96
191
  - [infra] Remove unused karma/mocha deps and files (#18340) @JCQuintas
97
- - [infra] Update github label references to use 'scope' instead of 'component' (#18260) @michelengelen
192
+ - [infra] Update GitHub label references to use 'scope' instead of 'component' (#18260) @michelengelen
98
193
  - [infra] Use a single browser server in CI (#18230) @JCQuintas
99
194
 
100
195
  ## 8.5.1
@@ -189,15 +284,6 @@ Same changes as in `@mui/x-tree-view@8.5.1`.
189
284
 
190
285
  ### Core
191
286
 
192
- - chore(deps): bump @next/eslint-plugin-next to 15.3.3 (#18155) @renovate[bot]
193
- - chore(deps): bump @types/lodash to ^4.17.17 (#17990) @renovate[bot]
194
- - chore(deps): bump babel (#18157) @renovate[bot]
195
- - chore(deps): bump eslint to ^9.28.0 (#17352) @renovate[bot]
196
- - chore(deps): bump material ui (#17802) @renovate[bot]
197
- - chore(deps): bump next to ^15.3.3 (#18159) @renovate[bot]
198
- - chore(deps): bump ossf/scorecard-action action to v2.4.2 (#18160) @renovate[bot]
199
- - chore(deps): bump react-router to ^7.6.1 (#18162) @renovate[bot]
200
- - chore(deps): bump yargs to ^18.0.0 (#18169) @renovate[bot]
201
287
  - [code-infra] Different approach to console testing for `processRowUpdate` (#18213) @JCQuintas
202
288
  - [code-infra] Fix act warnings in DataGrid/toolbar (#18207) @JCQuintas
203
289
  - [code-infra] Remove `istanbul` references (#18194) @JCQuintas
@@ -4641,7 +4727,6 @@ No changes since `@mui/x-charts@7.22.2`.
4641
4727
  - [docs] Add `next` version links (#15423) @LukasTy
4642
4728
  - [docs] Use the `loading` state in the demos (#15538) @cherniavskii
4643
4729
  - [docs] Add data caching to lazy loaded detail panel demo (#15506) @cherniavskii
4644
-
4645
4730
  - [code-infra] Tentative fix for Argos flaky screenshot tests (#15399) @JCQuintas
4646
4731
  - [docs-infra] Transpile `.ts` demo files (#15421) @KenanYusuf
4647
4732
  - [core] Clarify release version bump strategy (#15536) @cherniavskii
@@ -2,4 +2,4 @@ import { DataGridProcessedProps } from "../../models/props/DataGridProps.js";
2
2
  export type OwnerState = DataGridProcessedProps;
3
3
  export declare const GridRootStyles: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme> & {
4
4
  ownerState: OwnerState;
5
- }, Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof import("react").ClassAttributes<HTMLDivElement> | keyof import("react").HTMLAttributes<HTMLDivElement>>, {}>;
5
+ }, Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof import("react").HTMLAttributes<HTMLDivElement> | keyof import("react").ClassAttributes<HTMLDivElement>>, {}>;
@@ -22,6 +22,12 @@ const _excluded = ["hideMenu", "colDef", "id", "labelledby", "className", "child
22
22
  const StyledMenuList = (0, _styles.styled)(_assert.NotRendered)(() => ({
23
23
  minWidth: 248
24
24
  }));
25
+ function handleMenuScrollCapture(event) {
26
+ if (!event.currentTarget.contains(event.target)) {
27
+ return;
28
+ }
29
+ event.stopPropagation();
30
+ }
25
31
  const GridColumnMenuContainer = exports.GridColumnMenuContainer = (0, _forwardRef.forwardRef)(function GridColumnMenuContainer(props, ref) {
26
32
  const {
27
33
  hideMenu,
@@ -47,6 +53,8 @@ const GridColumnMenuContainer = exports.GridColumnMenuContainer = (0, _forwardRe
47
53
  className: (0, _clsx.default)(_gridClasses.gridClasses.menuList, className),
48
54
  "aria-labelledby": labelledby,
49
55
  onKeyDown: handleListKeyDown,
56
+ onWheel: handleMenuScrollCapture,
57
+ onTouchMove: handleMenuScrollCapture,
50
58
  autoFocus: open
51
59
  }, other, {
52
60
  ref: ref,
@@ -131,6 +131,7 @@ function GridToolbar(props) {
131
131
  }), additionalItems, showExportMenu && (!rootProps.disableColumnFilter || !rootProps.disableColumnSelector) && /*#__PURE__*/(0, _jsxRuntime.jsx)(GridToolbarDivider, {}), showExportMenu && /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
132
132
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(rootProps.slots.baseTooltip, {
133
133
  title: apiRef.current.getLocaleText('toolbarExport'),
134
+ disableInteractive: exportMenuOpen,
134
135
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ToolbarButton.ToolbarButton, {
135
136
  ref: exportMenuTriggerRef,
136
137
  id: exportMenuTriggerId,
@@ -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/system").Theme>, Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React.HTMLAttributes<HTMLDivElement> | keyof React.ClassAttributes<HTMLDivElement>>, {}>;
10
10
  /**
11
11
  * The top level Toolbar component that provides context to child components.
12
12
  * It renders a styled `<div />` element.
@@ -2,4 +2,4 @@ import { DataGridProcessedProps } from "../../models/props/DataGridProps.js";
2
2
  export type OwnerState = DataGridProcessedProps;
3
3
  export declare const GridRootStyles: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme> & {
4
4
  ownerState: OwnerState;
5
- }, Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof import("react").ClassAttributes<HTMLDivElement> | keyof import("react").HTMLAttributes<HTMLDivElement>>, {}>;
5
+ }, Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof import("react").HTMLAttributes<HTMLDivElement> | keyof import("react").ClassAttributes<HTMLDivElement>>, {}>;
@@ -14,6 +14,12 @@ import { jsx as _jsx } from "react/jsx-runtime";
14
14
  const StyledMenuList = styled(NotRendered)(() => ({
15
15
  minWidth: 248
16
16
  }));
17
+ function handleMenuScrollCapture(event) {
18
+ if (!event.currentTarget.contains(event.target)) {
19
+ return;
20
+ }
21
+ event.stopPropagation();
22
+ }
17
23
  const GridColumnMenuContainer = forwardRef(function GridColumnMenuContainer(props, ref) {
18
24
  const {
19
25
  hideMenu,
@@ -39,6 +45,8 @@ const GridColumnMenuContainer = forwardRef(function GridColumnMenuContainer(prop
39
45
  className: clsx(gridClasses.menuList, className),
40
46
  "aria-labelledby": labelledby,
41
47
  onKeyDown: handleListKeyDown,
48
+ onWheel: handleMenuScrollCapture,
49
+ onTouchMove: handleMenuScrollCapture,
42
50
  autoFocus: open
43
51
  }, other, {
44
52
  ref: ref,
@@ -121,6 +121,7 @@ function GridToolbar(props) {
121
121
  }), additionalItems, showExportMenu && (!rootProps.disableColumnFilter || !rootProps.disableColumnSelector) && /*#__PURE__*/_jsx(GridToolbarDivider, {}), showExportMenu && /*#__PURE__*/_jsxs(React.Fragment, {
122
122
  children: [/*#__PURE__*/_jsx(rootProps.slots.baseTooltip, {
123
123
  title: apiRef.current.getLocaleText('toolbarExport'),
124
+ disableInteractive: exportMenuOpen,
124
125
  children: /*#__PURE__*/_jsx(ToolbarButton, {
125
126
  ref: exportMenuTriggerRef,
126
127
  id: exportMenuTriggerId,
@@ -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/system").Theme>, Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React.HTMLAttributes<HTMLDivElement> | keyof React.ClassAttributes<HTMLDivElement>>, {}>;
10
10
  /**
11
11
  * The top level Toolbar component that provides context to child components.
12
12
  * It renders a styled `<div />` element.
@@ -31,7 +31,7 @@ export interface GetHeadersParams {
31
31
  type OwnerState = DataGridProcessedProps;
32
32
  export declare const GridColumnHeaderRow: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme> & {
33
33
  ownerState: OwnerState;
34
- }, Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React.ClassAttributes<HTMLDivElement> | keyof React.HTMLAttributes<HTMLDivElement>>, {}>;
34
+ }, Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React.HTMLAttributes<HTMLDivElement> | keyof React.ClassAttributes<HTMLDivElement>>, {}>;
35
35
  export declare const useGridColumnHeaders: (props: UseGridColumnHeadersProps) => {
36
36
  renderContext: GridColumnsRenderContext;
37
37
  leftRenderContext: {
@@ -26,7 +26,7 @@ export class CacheChunkManager {
26
26
 
27
27
  // split the range into chunks
28
28
  const chunkedKeys = [];
29
- for (let i = key.start; i < key.end; i += this.chunkSize) {
29
+ for (let i = key.start; i <= key.end; i += this.chunkSize) {
30
30
  const end = Math.min(i + this.chunkSize - 1, key.end);
31
31
  chunkedKeys.push(_extends({}, key, {
32
32
  start: i,
package/esm/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid v8.5.2
2
+ * @mui/x-data-grid v8.5.3
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -7,5 +7,5 @@ interface TailwindDemoContainerProps {
7
7
  * WARNING: This is an internal component used in documentation to inject the Tailwind script.
8
8
  * Please do not use it in your application.
9
9
  */
10
- export declare function TailwindDemoContainer(props: TailwindDemoContainerProps): string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | React.ReactPortal | Iterable<React.ReactNode> | null | undefined> | React.JSX.Element | null | undefined;
10
+ export declare function TailwindDemoContainer(props: TailwindDemoContainerProps): string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | React.JSX.Element | null | undefined;
11
11
  export {};
@@ -267,6 +267,7 @@ export type TooltipProps = CommonProps & {
267
267
  children: React.ReactElement<any, any>;
268
268
  enterDelay?: number;
269
269
  title: React.ReactNode;
270
+ disableInteractive?: boolean;
270
271
  };
271
272
  export type IconProps = CommonProps<SVGSVGElement> & {
272
273
  fontSize?: 'small' | 'medium' | 'large' | 'inherit';
@@ -31,7 +31,7 @@ export interface GetHeadersParams {
31
31
  type OwnerState = DataGridProcessedProps;
32
32
  export declare const GridColumnHeaderRow: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme> & {
33
33
  ownerState: OwnerState;
34
- }, Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React.ClassAttributes<HTMLDivElement> | keyof React.HTMLAttributes<HTMLDivElement>>, {}>;
34
+ }, Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React.HTMLAttributes<HTMLDivElement> | keyof React.ClassAttributes<HTMLDivElement>>, {}>;
35
35
  export declare const useGridColumnHeaders: (props: UseGridColumnHeadersProps) => {
36
36
  renderContext: GridColumnsRenderContext;
37
37
  leftRenderContext: {
@@ -32,7 +32,7 @@ class CacheChunkManager {
32
32
 
33
33
  // split the range into chunks
34
34
  const chunkedKeys = [];
35
- for (let i = key.start; i < key.end; i += this.chunkSize) {
35
+ for (let i = key.start; i <= key.end; i += this.chunkSize) {
36
36
  const end = Math.min(i + this.chunkSize - 1, key.end);
37
37
  chunkedKeys.push((0, _extends2.default)({}, key, {
38
38
  start: i,
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid v8.5.2
2
+ * @mui/x-data-grid v8.5.3
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -7,5 +7,5 @@ interface TailwindDemoContainerProps {
7
7
  * WARNING: This is an internal component used in documentation to inject the Tailwind script.
8
8
  * Please do not use it in your application.
9
9
  */
10
- export declare function TailwindDemoContainer(props: TailwindDemoContainerProps): string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | React.ReactPortal | Iterable<React.ReactNode> | null | undefined> | React.JSX.Element | null | undefined;
10
+ export declare function TailwindDemoContainer(props: TailwindDemoContainerProps): string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | React.JSX.Element | null | undefined;
11
11
  export {};
@@ -267,6 +267,7 @@ export type TooltipProps = CommonProps & {
267
267
  children: React.ReactElement<any, any>;
268
268
  enterDelay?: number;
269
269
  title: React.ReactNode;
270
+ disableInteractive?: boolean;
270
271
  };
271
272
  export type IconProps = CommonProps<SVGSVGElement> & {
272
273
  fontSize?: 'small' | 'medium' | 'large' | 'inherit';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/x-data-grid",
3
- "version": "8.5.2",
3
+ "version": "8.5.3",
4
4
  "author": "MUI Team",
5
5
  "description": "The Community plan edition of the MUI X Data Grid components.",
6
6
  "main": "./index.js",
@@ -44,7 +44,7 @@
44
44
  "clsx": "^2.1.1",
45
45
  "prop-types": "^15.8.1",
46
46
  "use-sync-external-store": "^1.5.0",
47
- "@mui/x-internals": "8.5.2"
47
+ "@mui/x-internals": "8.5.3"
48
48
  },
49
49
  "peerDependencies": {
50
50
  "@emotion/react": "^11.9.0",