@mui/x-data-grid 9.1.0 → 9.2.0
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
|
@@ -1,5 +1,108 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 9.2.0
|
|
4
|
+
|
|
5
|
+
_May 13, 2026_
|
|
6
|
+
|
|
7
|
+
We'd like to extend a big thank you to the 9 contributors who made this release possible. Here are some highlights ✨:
|
|
8
|
+
|
|
9
|
+
- ⚡️ Add a WebGL renderer to the [Bar chart](https://mui.com/x/react-charts/bars/#webgl-renderer)
|
|
10
|
+
- 📊 Add a radial charts with the [radial line](https://mui.com/x/react-charts/radial-lines/), [radial bar](https://mui.com/x/react-charts/radial-bars/), and the [radial grid and axes](https://mui.com/x/react-charts/radial-axes/)
|
|
11
|
+
- 🐞 Bugfixes
|
|
12
|
+
- 📚 Documentation improvements
|
|
13
|
+
|
|
14
|
+
Special thanks go out to these community members for their valuable contributions:
|
|
15
|
+
@Anexus5919, @mustafajw07
|
|
16
|
+
|
|
17
|
+
The following team members contributed to this release:
|
|
18
|
+
@aemartos, @alexfauquette, @bernardobelchior, @JCQuintas, @oliviertassinari, @sai6855, @siriwatknp
|
|
19
|
+
|
|
20
|
+
### Data Grid
|
|
21
|
+
|
|
22
|
+
#### `@mui/x-data-grid@9.2.0`
|
|
23
|
+
|
|
24
|
+
- [data grid] Add support for pinned columns in `GridVirtualScroller` (#22347) @sai6855
|
|
25
|
+
- [data grid] Remove unused CSS (#22390) @oliviertassinari
|
|
26
|
+
|
|
27
|
+
#### `@mui/x-data-grid-pro@9.2.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
28
|
+
|
|
29
|
+
Same changes as in `@mui/x-data-grid@9.2.0`.
|
|
30
|
+
|
|
31
|
+
#### `@mui/x-data-grid-premium@9.2.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
32
|
+
|
|
33
|
+
Same changes as in `@mui/x-data-grid-pro@9.2.0`.
|
|
34
|
+
|
|
35
|
+
### Date and Time Pickers
|
|
36
|
+
|
|
37
|
+
#### `@mui/x-date-pickers@9.2.0`
|
|
38
|
+
|
|
39
|
+
- [pickers] Trim test helpers' default load graph (#22421) @JCQuintas
|
|
40
|
+
|
|
41
|
+
#### `@mui/x-date-pickers-pro@9.2.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
42
|
+
|
|
43
|
+
Same changes as in `@mui/x-date-pickers@9.2.0`.
|
|
44
|
+
|
|
45
|
+
### Charts
|
|
46
|
+
|
|
47
|
+
#### `@mui/x-charts@9.2.0`
|
|
48
|
+
|
|
49
|
+
Internal changes.
|
|
50
|
+
|
|
51
|
+
#### `@mui/x-charts-pro@9.2.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
52
|
+
|
|
53
|
+
Same changes as in `@mui/x-charts@9.2.0`.
|
|
54
|
+
|
|
55
|
+
#### `@mui/x-charts-premium@9.2.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
56
|
+
|
|
57
|
+
Same changes as in `@mui/x-charts-pro@9.2.0`, plus:
|
|
58
|
+
|
|
59
|
+
- [charts-premium] Add `Highlight` support to `RadialBarChart` (#22322) @alexfauquette
|
|
60
|
+
- [charts-premium] Add `WebGL` renderer to `BarChartPremium` (#22354) @JCQuintas
|
|
61
|
+
- [charts-premium] Add mark shape support to the radial line (#22242) @alexfauquette
|
|
62
|
+
- [charts-premium] `RadialBarChart` support axis interaction with layout horizontal (#22319) @alexfauquette
|
|
63
|
+
|
|
64
|
+
### Tree View
|
|
65
|
+
|
|
66
|
+
#### `@mui/x-tree-view@9.1.0`
|
|
67
|
+
|
|
68
|
+
Internal changes.
|
|
69
|
+
|
|
70
|
+
#### `@mui/x-tree-view-pro@9.1.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
71
|
+
|
|
72
|
+
Same changes as in `@mui/x-tree-view@9.1.0`.
|
|
73
|
+
|
|
74
|
+
### Scheduler
|
|
75
|
+
|
|
76
|
+
#### `@mui/x-scheduler@9.0.0-alpha.6`
|
|
77
|
+
|
|
78
|
+
- [scheduler] Complete ARIA grid semantics on `EventTimeline` and `EventCalendar` (#22266) @Anexus5919
|
|
79
|
+
- [scheduler] Improve UX for recurrence tab (#22287) @mustafajw07
|
|
80
|
+
|
|
81
|
+
#### `@mui/x-scheduler-premium@9.0.0-alpha.6` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
82
|
+
|
|
83
|
+
Same changes as in `@mui/x-scheduler@9.0.0-alpha.6`.
|
|
84
|
+
|
|
85
|
+
### Codemod
|
|
86
|
+
|
|
87
|
+
#### `@mui/x-codemod@9.1.0`
|
|
88
|
+
|
|
89
|
+
Internal changes.
|
|
90
|
+
|
|
91
|
+
### Docs
|
|
92
|
+
|
|
93
|
+
- [docs] Document the `RadialBarChart` (#22320) @alexfauquette
|
|
94
|
+
- [docs] Add histogram demo to bar-demo page (#22373) @siriwatknp
|
|
95
|
+
- [docs] Add radial bar to the nav bar (#22429) @alexfauquette
|
|
96
|
+
- [docs] Split radial grid and radial line pages (#22238) @alexfauquette
|
|
97
|
+
|
|
98
|
+
### Miscellaneous
|
|
99
|
+
|
|
100
|
+
- [test] Disable animations in chart benchmarks (#22433) @bernardobelchior
|
|
101
|
+
- [test] Move `x-internal-gestures` vitest isolate flag to test block (#22427) @JCQuintas
|
|
102
|
+
- [test] Reduce flakiness in `MobileTimeRangePicker` multi-input `describeValue` tests (#22422) @JCQuintas
|
|
103
|
+
- [x-license] Exclude compat test pins from Renovate major bumps (#22414) @aemartos
|
|
104
|
+
- [x-license] Add cross-major license format compatibility tests (#22335) @aemartos
|
|
105
|
+
|
|
3
106
|
## 9.1.0
|
|
4
107
|
|
|
5
108
|
_May 8, 2026_
|
|
@@ -55,7 +55,9 @@ const Scroller = (0, _styles.styled)('div', {
|
|
|
55
55
|
} = props;
|
|
56
56
|
return [styles.virtualScroller, ownerState.hasScrollX && styles['virtualScroller--hasScrollX']];
|
|
57
57
|
}
|
|
58
|
-
})({
|
|
58
|
+
})(({
|
|
59
|
+
ownerState
|
|
60
|
+
}) => ({
|
|
59
61
|
position: 'relative',
|
|
60
62
|
height: '100%',
|
|
61
63
|
flexGrow: 1,
|
|
@@ -70,8 +72,10 @@ const Scroller = (0, _styles.styled)('div', {
|
|
|
70
72
|
overflow: 'hidden'
|
|
71
73
|
},
|
|
72
74
|
// See https://github.com/mui/mui-x/issues/10547
|
|
73
|
-
zIndex: 0
|
|
74
|
-
|
|
75
|
+
zIndex: 0,
|
|
76
|
+
// Prevent overscroll bounce from revealing content behind pinned column shadows on macOS.
|
|
77
|
+
overscrollBehaviorX: ownerState.hasPinnedColumns ? 'none' : undefined
|
|
78
|
+
}));
|
|
75
79
|
const Viewport = (0, _styles.styled)('div', {
|
|
76
80
|
slot: 'internal',
|
|
77
81
|
shouldForwardProp: undefined
|
|
@@ -82,30 +86,30 @@ const Viewport = (0, _styles.styled)('div', {
|
|
|
82
86
|
position: 'sticky',
|
|
83
87
|
top: 0,
|
|
84
88
|
left: 0,
|
|
85
|
-
overflow: 'hidden'
|
|
86
|
-
scrollbarWidth: 'none' /* Firefox */,
|
|
87
|
-
'&::-webkit-scrollbar': {
|
|
88
|
-
display: 'none' /* Safari and Chrome */
|
|
89
|
-
}
|
|
89
|
+
overflow: 'hidden'
|
|
90
90
|
}
|
|
91
91
|
});
|
|
92
92
|
const hasPinnedRightSelector = apiRef => apiRef.current.state.dimensions.rightPinnedWidth > 0;
|
|
93
|
+
const hasPinnedLeftSelector = apiRef => apiRef.current.state.dimensions.leftPinnedWidth > 0;
|
|
93
94
|
function GridVirtualScroller(props) {
|
|
94
95
|
const apiRef = (0, _useGridPrivateApiContext.useGridPrivateApiContext)();
|
|
95
96
|
const rootProps = (0, _useGridRootProps.useGridRootProps)();
|
|
96
97
|
const hasScrollY = (0, _useGridSelector.useGridSelector)(apiRef, _gridDimensionsSelectors.gridHasScrollYSelector);
|
|
97
98
|
const hasScrollX = (0, _useGridSelector.useGridSelector)(apiRef, _gridDimensionsSelectors.gridHasScrollXSelector);
|
|
98
99
|
const hasPinnedRight = (0, _useGridSelector.useGridSelector)(apiRef, hasPinnedRightSelector);
|
|
100
|
+
const hasPinnedLeft = (0, _useGridSelector.useGridSelector)(apiRef, hasPinnedLeftSelector);
|
|
99
101
|
const hasBottomFiller = (0, _useGridSelector.useGridSelector)(apiRef, _gridDimensionsSelectors.gridHasBottomFillerSelector);
|
|
100
102
|
const {
|
|
101
103
|
overlayType,
|
|
102
104
|
loadingOverlayVariant
|
|
103
105
|
} = (0, _useGridOverlays.useGridOverlays)(apiRef, rootProps);
|
|
104
106
|
const Overlay = rootProps.slots?.[overlayType];
|
|
107
|
+
const hasPinnedColumns = hasPinnedRight || hasPinnedLeft;
|
|
105
108
|
const ownerState = {
|
|
106
109
|
classes: rootProps.classes,
|
|
107
110
|
hasScrollX,
|
|
108
111
|
hasPinnedRight,
|
|
112
|
+
hasPinnedColumns,
|
|
109
113
|
overlayType,
|
|
110
114
|
loadingOverlayVariant
|
|
111
115
|
};
|
|
@@ -47,7 +47,9 @@ const Scroller = styled('div', {
|
|
|
47
47
|
} = props;
|
|
48
48
|
return [styles.virtualScroller, ownerState.hasScrollX && styles['virtualScroller--hasScrollX']];
|
|
49
49
|
}
|
|
50
|
-
})({
|
|
50
|
+
})(({
|
|
51
|
+
ownerState
|
|
52
|
+
}) => ({
|
|
51
53
|
position: 'relative',
|
|
52
54
|
height: '100%',
|
|
53
55
|
flexGrow: 1,
|
|
@@ -62,8 +64,10 @@ const Scroller = styled('div', {
|
|
|
62
64
|
overflow: 'hidden'
|
|
63
65
|
},
|
|
64
66
|
// See https://github.com/mui/mui-x/issues/10547
|
|
65
|
-
zIndex: 0
|
|
66
|
-
|
|
67
|
+
zIndex: 0,
|
|
68
|
+
// Prevent overscroll bounce from revealing content behind pinned column shadows on macOS.
|
|
69
|
+
overscrollBehaviorX: ownerState.hasPinnedColumns ? 'none' : undefined
|
|
70
|
+
}));
|
|
67
71
|
const Viewport = styled('div', {
|
|
68
72
|
slot: 'internal',
|
|
69
73
|
shouldForwardProp: undefined
|
|
@@ -74,30 +78,30 @@ const Viewport = styled('div', {
|
|
|
74
78
|
position: 'sticky',
|
|
75
79
|
top: 0,
|
|
76
80
|
left: 0,
|
|
77
|
-
overflow: 'hidden'
|
|
78
|
-
scrollbarWidth: 'none' /* Firefox */,
|
|
79
|
-
'&::-webkit-scrollbar': {
|
|
80
|
-
display: 'none' /* Safari and Chrome */
|
|
81
|
-
}
|
|
81
|
+
overflow: 'hidden'
|
|
82
82
|
}
|
|
83
83
|
});
|
|
84
84
|
const hasPinnedRightSelector = apiRef => apiRef.current.state.dimensions.rightPinnedWidth > 0;
|
|
85
|
+
const hasPinnedLeftSelector = apiRef => apiRef.current.state.dimensions.leftPinnedWidth > 0;
|
|
85
86
|
function GridVirtualScroller(props) {
|
|
86
87
|
const apiRef = useGridPrivateApiContext();
|
|
87
88
|
const rootProps = useGridRootProps();
|
|
88
89
|
const hasScrollY = useGridSelector(apiRef, gridHasScrollYSelector);
|
|
89
90
|
const hasScrollX = useGridSelector(apiRef, gridHasScrollXSelector);
|
|
90
91
|
const hasPinnedRight = useGridSelector(apiRef, hasPinnedRightSelector);
|
|
92
|
+
const hasPinnedLeft = useGridSelector(apiRef, hasPinnedLeftSelector);
|
|
91
93
|
const hasBottomFiller = useGridSelector(apiRef, gridHasBottomFillerSelector);
|
|
92
94
|
const {
|
|
93
95
|
overlayType,
|
|
94
96
|
loadingOverlayVariant
|
|
95
97
|
} = useGridOverlays(apiRef, rootProps);
|
|
96
98
|
const Overlay = rootProps.slots?.[overlayType];
|
|
99
|
+
const hasPinnedColumns = hasPinnedRight || hasPinnedLeft;
|
|
97
100
|
const ownerState = {
|
|
98
101
|
classes: rootProps.classes,
|
|
99
102
|
hasScrollX,
|
|
100
103
|
hasPinnedRight,
|
|
104
|
+
hasPinnedColumns,
|
|
101
105
|
overlayType,
|
|
102
106
|
loadingOverlayVariant
|
|
103
107
|
};
|
package/index.js
CHANGED
package/index.mjs
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mui/x-data-grid",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.2.0",
|
|
4
4
|
"author": "MUI Team",
|
|
5
5
|
"description": "The Community plan edition of the MUI X Data Grid components.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"@babel/runtime": "^7.29.2",
|
|
41
|
-
"@mui/utils": "9.0.
|
|
41
|
+
"@mui/utils": "9.0.1",
|
|
42
42
|
"clsx": "^2.1.1",
|
|
43
43
|
"prop-types": "^15.8.1",
|
|
44
44
|
"use-sync-external-store": "^1.6.0",
|