@mui/x-data-grid 8.10.1 → 8.10.2

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,92 @@
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.10.2
9
+
10
+ _Aug 20, 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
+ - 🌎 Improve Finnish (fi-FI) locale on the Data Grid
15
+
16
+ Special thanks go out to the community members for their valuable contributions:
17
+ @lauri-heinonen-2025-04, @Methuselah96, @sai6855, @wilcoschoneveld
18
+
19
+ The following are all team members who have contributed to this release:
20
+ @alexfauquette, @cherniavskii, @flaviendelangle, @Janpot, @oliviertassinari, @rita-codes
21
+
22
+ ### Data Grid
23
+
24
+ #### `@mui/x-data-grid@8.10.2`
25
+
26
+ - [DataGrid] Fix display for `<GridEditSingleSelect />` when `density='compact'` (#19249) @sai6855
27
+ - [DataGrid] Fix column header sortable classname when using `disableColumnSorting` (#19222) @wilcoschoneveld
28
+ - [l10n] Improve finnish (fi-FI) locale (#19163) @lauri-heinonen-2025-04
29
+
30
+ #### `@mui/x-data-grid-pro@8.10.2` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link "Pro plan")
31
+
32
+ Same changes as in `@mui/x-data-grid@8.10.2`, plus:
33
+
34
+ - [DataGridPro] Fix quick filter not working in List View mode (#19254) @cherniavskii
35
+
36
+ #### `@mui/x-data-grid-premium@8.10.2` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link "Premium plan")
37
+
38
+ Same changes as in `@mui/x-data-grid-pro@8.10.2`.
39
+
40
+ ### Date and Time Pickers
41
+
42
+ #### `@mui/x-date-pickers@8.10.2`
43
+
44
+ Internal changes.
45
+
46
+ #### `@mui/x-date-pickers-pro@8.10.2` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link "Pro plan")
47
+
48
+ Same changes as in `@mui/x-date-pickers@8.10.2`.
49
+
50
+ ### Charts
51
+
52
+ #### `@mui/x-charts@8.10.2`
53
+
54
+ Internal changes.
55
+
56
+ #### `@mui/x-charts-pro@8.10.2` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link "Pro plan")
57
+
58
+ Same changes as in `@mui/x-charts@8.10.2`.
59
+
60
+ ### Tree View
61
+
62
+ #### `@mui/x-tree-view@8.10.2`
63
+
64
+ - [tree view] Add `aria-hidden` to the Tree Item Checkbox (#19246) @flaviendelangle
65
+
66
+ #### `@mui/x-tree-view-pro@8.10.2` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link "Pro plan")
67
+
68
+ Same changes as in `@mui/x-tree-view@8.10.2`.
69
+
70
+ ### Codemod
71
+
72
+ #### `@mui/x-codemod@8.10.2`
73
+
74
+ Internal changes.
75
+
76
+ ### Docs
77
+
78
+ - [docs] Fix links to the pyramid chart (#19250) @alexfauquette
79
+
80
+ ### Core
81
+
82
+ - [internal] Avoid script for CI only @oliviertassinari
83
+ - [internal] Fix `renovate.json` @oliviertassinari
84
+ - [internal] Polish renovate config @oliviertassinari
85
+ - [internal] Rename core to internal (#19203) @oliviertassinari
86
+ - [internal] Update link to GitHub labels @oliviertassinari
87
+
88
+ ### Miscellaneous
89
+
90
+ - [code-infra] Prepare for incoming `execa` update (#19229) @Janpot
91
+ - [virtualizer] Fix type import (#19192) @Methuselah96
92
+ - [virtualizer] Improve type export (#19192) @Methuselah96
93
+
8
94
  ## 8.10.1
9
95
 
10
96
  _Aug 15, 2025_
@@ -26,6 +26,9 @@ var _constants = require("../../internals/constants");
26
26
  var _utils = require("../../internals/utils");
27
27
  var _jsxRuntime = require("react/jsx-runtime");
28
28
  const useUtilityClasses = ownerState => {
29
+ const {
30
+ disableColumnSorting
31
+ } = (0, _useGridRootProps.useGridRootProps)();
29
32
  const {
30
33
  colDef,
31
34
  classes,
@@ -38,12 +41,13 @@ const useUtilityClasses = ownerState => {
38
41
  isLastUnpinned,
39
42
  isSiblingFocused
40
43
  } = ownerState;
44
+ const isColumnSortable = colDef.sortable && !disableColumnSorting;
41
45
  const isColumnSorted = sortDirection != null;
42
46
  const isColumnFiltered = filterItemsCounter != null && filterItemsCounter > 0;
43
47
  // todo refactor to a prop on col isNumeric or ?? ie: coltype===price wont work
44
48
  const isColumnNumeric = colDef.type === 'number';
45
49
  const slots = {
46
- root: ['columnHeader', colDef.headerAlign === 'left' && 'columnHeader--alignLeft', colDef.headerAlign === 'center' && 'columnHeader--alignCenter', colDef.headerAlign === 'right' && 'columnHeader--alignRight', colDef.sortable && 'columnHeader--sortable', isDragging && 'columnHeader--moving', isColumnSorted && 'columnHeader--sorted', isColumnFiltered && 'columnHeader--filtered', isColumnNumeric && 'columnHeader--numeric', 'withBorderColor', showRightBorder && 'columnHeader--withRightBorder', showLeftBorder && 'columnHeader--withLeftBorder', pinnedPosition === _constants.PinnedColumnPosition.LEFT && 'columnHeader--pinnedLeft', pinnedPosition === _constants.PinnedColumnPosition.RIGHT && 'columnHeader--pinnedRight',
50
+ root: ['columnHeader', colDef.headerAlign === 'left' && 'columnHeader--alignLeft', colDef.headerAlign === 'center' && 'columnHeader--alignCenter', colDef.headerAlign === 'right' && 'columnHeader--alignRight', isColumnSortable && 'columnHeader--sortable', isDragging && 'columnHeader--moving', isColumnSorted && 'columnHeader--sorted', isColumnFiltered && 'columnHeader--filtered', isColumnNumeric && 'columnHeader--numeric', 'withBorderColor', showRightBorder && 'columnHeader--withRightBorder', showLeftBorder && 'columnHeader--withLeftBorder', pinnedPosition === _constants.PinnedColumnPosition.LEFT && 'columnHeader--pinnedLeft', pinnedPosition === _constants.PinnedColumnPosition.RIGHT && 'columnHeader--pinnedRight',
47
51
  // TODO: Remove classes below and restore `:has` selectors when they are supported in jsdom
48
52
  // See https://github.com/mui/mui-x/pull/14559
49
53
  isLastUnpinned && 'columnHeader--lastUnpinned', isSiblingFocused && 'columnHeader--siblingFocused'],
@@ -689,6 +689,11 @@ const GridRootStyles = exports.GridRootStyles = (0, _styles.styled)('div', {
689
689
  outlineOffset: focusOutlineWidth * -1
690
690
  }
691
691
  },
692
+ [`& .${_gridClasses.gridClasses['cell--editing']}`]: {
693
+ '& .MuiInputBase-root': {
694
+ height: '100%'
695
+ }
696
+ },
692
697
  [`& .${_gridClasses.gridClasses['row--editing']}`]: {
693
698
  boxShadow: _cssVariables.vars.shadows.base
694
699
  },
@@ -19,6 +19,9 @@ import { PinnedColumnPosition } from "../../internals/constants.js";
19
19
  import { attachPinnedStyle } from "../../internals/utils/index.js";
20
20
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
21
21
  const useUtilityClasses = ownerState => {
22
+ const {
23
+ disableColumnSorting
24
+ } = useGridRootProps();
22
25
  const {
23
26
  colDef,
24
27
  classes,
@@ -31,12 +34,13 @@ const useUtilityClasses = ownerState => {
31
34
  isLastUnpinned,
32
35
  isSiblingFocused
33
36
  } = ownerState;
37
+ const isColumnSortable = colDef.sortable && !disableColumnSorting;
34
38
  const isColumnSorted = sortDirection != null;
35
39
  const isColumnFiltered = filterItemsCounter != null && filterItemsCounter > 0;
36
40
  // todo refactor to a prop on col isNumeric or ?? ie: coltype===price wont work
37
41
  const isColumnNumeric = colDef.type === 'number';
38
42
  const slots = {
39
- root: ['columnHeader', colDef.headerAlign === 'left' && 'columnHeader--alignLeft', colDef.headerAlign === 'center' && 'columnHeader--alignCenter', colDef.headerAlign === 'right' && 'columnHeader--alignRight', colDef.sortable && 'columnHeader--sortable', isDragging && 'columnHeader--moving', isColumnSorted && 'columnHeader--sorted', isColumnFiltered && 'columnHeader--filtered', isColumnNumeric && 'columnHeader--numeric', 'withBorderColor', showRightBorder && 'columnHeader--withRightBorder', showLeftBorder && 'columnHeader--withLeftBorder', pinnedPosition === PinnedColumnPosition.LEFT && 'columnHeader--pinnedLeft', pinnedPosition === PinnedColumnPosition.RIGHT && 'columnHeader--pinnedRight',
43
+ root: ['columnHeader', colDef.headerAlign === 'left' && 'columnHeader--alignLeft', colDef.headerAlign === 'center' && 'columnHeader--alignCenter', colDef.headerAlign === 'right' && 'columnHeader--alignRight', isColumnSortable && 'columnHeader--sortable', isDragging && 'columnHeader--moving', isColumnSorted && 'columnHeader--sorted', isColumnFiltered && 'columnHeader--filtered', isColumnNumeric && 'columnHeader--numeric', 'withBorderColor', showRightBorder && 'columnHeader--withRightBorder', showLeftBorder && 'columnHeader--withLeftBorder', pinnedPosition === PinnedColumnPosition.LEFT && 'columnHeader--pinnedLeft', pinnedPosition === PinnedColumnPosition.RIGHT && 'columnHeader--pinnedRight',
40
44
  // TODO: Remove classes below and restore `:has` selectors when they are supported in jsdom
41
45
  // See https://github.com/mui/mui-x/pull/14559
42
46
  isLastUnpinned && 'columnHeader--lastUnpinned', isSiblingFocused && 'columnHeader--siblingFocused'],
@@ -683,6 +683,11 @@ export const GridRootStyles = styled('div', {
683
683
  outlineOffset: focusOutlineWidth * -1
684
684
  }
685
685
  },
686
+ [`& .${c['cell--editing']}`]: {
687
+ '& .MuiInputBase-root': {
688
+ height: '100%'
689
+ }
690
+ },
686
691
  [`& .${c['row--editing']}`]: {
687
692
  boxShadow: vars.shadows.base
688
693
  },
@@ -3,7 +3,7 @@ import { warnOnce } from '@mui/x-internals/warning';
3
3
  import { GridLogicOperator } from "../../../models/index.js";
4
4
  import { getDefaultGridFilterModel } from "./gridFilterState.js";
5
5
  import { getPublicApiRef } from "../../../utils/getPublicApiRef.js";
6
- import { gridColumnFieldsSelector, gridColumnLookupSelector, gridVisibleColumnFieldsSelector } from "../columns/index.js";
6
+ import { gridColumnFieldsSelector, gridColumnLookupSelector, gridColumnVisibilityModelSelector } from "../columns/index.js";
7
7
  let hasEval;
8
8
  function getHasEval() {
9
9
  if (hasEval !== undefined) {
@@ -191,7 +191,16 @@ const buildAggregatedQuickFilterApplier = (filterModel, apiRef) => {
191
191
  if (quickFilterValues.length === 0) {
192
192
  return null;
193
193
  }
194
- const columnFields = shouldQuickFilterExcludeHiddenColumns(filterModel) ? gridVisibleColumnFieldsSelector(apiRef) : gridColumnFieldsSelector(apiRef);
194
+ const allColumnFields = gridColumnFieldsSelector(apiRef);
195
+ const columnVisibilityModel = gridColumnVisibilityModelSelector(apiRef);
196
+ let columnFields;
197
+ if (shouldQuickFilterExcludeHiddenColumns(filterModel)) {
198
+ // Do not use gridVisibleColumnFieldsSelector here, because quick filter won't work in the list view mode
199
+ // See https://github.com/mui/mui-x/issues/19145
200
+ columnFields = allColumnFields.filter(field => columnVisibilityModel[field] !== false);
201
+ } else {
202
+ columnFields = allColumnFields;
203
+ }
195
204
  const appliersPerField = [];
196
205
  const {
197
206
  ignoreDiacritics
package/esm/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid v8.10.1
2
+ * @mui/x-data-grid v8.10.2
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -3,8 +3,8 @@ const fiFIGrid = {
3
3
  // Root
4
4
  noRowsLabel: 'Ei rivejä',
5
5
  noResultsOverlayLabel: 'Ei tuloksia.',
6
- // noColumnsOverlayLabel: 'No columns',
7
- // noColumnsOverlayManageColumns: 'Manage columns',
6
+ noColumnsOverlayLabel: 'Ei sarakkeita',
7
+ noColumnsOverlayManageColumns: 'Hallitse sarakkeita',
8
8
  // emptyPivotOverlayLabel: 'Add fields to rows, columns, and values to create a pivot table',
9
9
 
10
10
  // Density selector toolbar button text
@@ -58,9 +58,9 @@ const fiFIGrid = {
58
58
  filterPanelInputPlaceholder: 'Suodattimen arvo',
59
59
  // Filter operators text
60
60
  filterOperatorContains: 'sisältää',
61
- // filterOperatorDoesNotContain: 'does not contain',
61
+ filterOperatorDoesNotContain: 'ei sisällä',
62
62
  filterOperatorEquals: 'on yhtä suuri kuin',
63
- // filterOperatorDoesNotEqual: 'does not equal',
63
+ filterOperatorDoesNotEqual: 'on eri suuri kuin',
64
64
  filterOperatorStartsWith: 'alkaa',
65
65
  filterOperatorEndsWith: 'päättyy',
66
66
  filterOperatorIs: 'on',
@@ -80,9 +80,9 @@ const fiFIGrid = {
80
80
  'filterOperator<=': '<=',
81
81
  // Header filter operators text
82
82
  headerFilterOperatorContains: 'Sisältää',
83
- // headerFilterOperatorDoesNotContain: 'Does not contain',
83
+ headerFilterOperatorDoesNotContain: 'Ei sisällä',
84
84
  headerFilterOperatorEquals: 'On yhtä suuri kuin',
85
- // headerFilterOperatorDoesNotEqual: 'Does not equal',
85
+ headerFilterOperatorDoesNotEqual: 'On eri suuri kuin',
86
86
  headerFilterOperatorStartsWith: 'Alkaa',
87
87
  headerFilterOperatorEndsWith: 'Päättyy',
88
88
  headerFilterOperatorIs: 'On',
@@ -203,7 +203,16 @@ const buildAggregatedQuickFilterApplier = (filterModel, apiRef) => {
203
203
  if (quickFilterValues.length === 0) {
204
204
  return null;
205
205
  }
206
- const columnFields = shouldQuickFilterExcludeHiddenColumns(filterModel) ? (0, _columns.gridVisibleColumnFieldsSelector)(apiRef) : (0, _columns.gridColumnFieldsSelector)(apiRef);
206
+ const allColumnFields = (0, _columns.gridColumnFieldsSelector)(apiRef);
207
+ const columnVisibilityModel = (0, _columns.gridColumnVisibilityModelSelector)(apiRef);
208
+ let columnFields;
209
+ if (shouldQuickFilterExcludeHiddenColumns(filterModel)) {
210
+ // Do not use gridVisibleColumnFieldsSelector here, because quick filter won't work in the list view mode
211
+ // See https://github.com/mui/mui-x/issues/19145
212
+ columnFields = allColumnFields.filter(field => columnVisibilityModel[field] !== false);
213
+ } else {
214
+ columnFields = allColumnFields;
215
+ }
207
216
  const appliersPerField = [];
208
217
  const {
209
218
  ignoreDiacritics
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid v8.10.1
2
+ * @mui/x-data-grid v8.10.2
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
package/locales/fiFI.js CHANGED
@@ -9,8 +9,8 @@ const fiFIGrid = {
9
9
  // Root
10
10
  noRowsLabel: 'Ei rivejä',
11
11
  noResultsOverlayLabel: 'Ei tuloksia.',
12
- // noColumnsOverlayLabel: 'No columns',
13
- // noColumnsOverlayManageColumns: 'Manage columns',
12
+ noColumnsOverlayLabel: 'Ei sarakkeita',
13
+ noColumnsOverlayManageColumns: 'Hallitse sarakkeita',
14
14
  // emptyPivotOverlayLabel: 'Add fields to rows, columns, and values to create a pivot table',
15
15
 
16
16
  // Density selector toolbar button text
@@ -64,9 +64,9 @@ const fiFIGrid = {
64
64
  filterPanelInputPlaceholder: 'Suodattimen arvo',
65
65
  // Filter operators text
66
66
  filterOperatorContains: 'sisältää',
67
- // filterOperatorDoesNotContain: 'does not contain',
67
+ filterOperatorDoesNotContain: 'ei sisällä',
68
68
  filterOperatorEquals: 'on yhtä suuri kuin',
69
- // filterOperatorDoesNotEqual: 'does not equal',
69
+ filterOperatorDoesNotEqual: 'on eri suuri kuin',
70
70
  filterOperatorStartsWith: 'alkaa',
71
71
  filterOperatorEndsWith: 'päättyy',
72
72
  filterOperatorIs: 'on',
@@ -86,9 +86,9 @@ const fiFIGrid = {
86
86
  'filterOperator<=': '<=',
87
87
  // Header filter operators text
88
88
  headerFilterOperatorContains: 'Sisältää',
89
- // headerFilterOperatorDoesNotContain: 'Does not contain',
89
+ headerFilterOperatorDoesNotContain: 'Ei sisällä',
90
90
  headerFilterOperatorEquals: 'On yhtä suuri kuin',
91
- // headerFilterOperatorDoesNotEqual: 'Does not equal',
91
+ headerFilterOperatorDoesNotEqual: 'On eri suuri kuin',
92
92
  headerFilterOperatorStartsWith: 'Alkaa',
93
93
  headerFilterOperatorEndsWith: 'Päättyy',
94
94
  headerFilterOperatorIs: 'On',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/x-data-grid",
3
- "version": "8.10.1",
3
+ "version": "8.10.2",
4
4
  "author": "MUI Team",
5
5
  "description": "The Community plan edition of the MUI X Data Grid components.",
6
6
  "main": "./index.js",
@@ -43,8 +43,8 @@
43
43
  "clsx": "^2.1.1",
44
44
  "prop-types": "^15.8.1",
45
45
  "use-sync-external-store": "^1.5.0",
46
- "@mui/x-internals": "8.10.0",
47
- "@mui/x-virtualizer": "0.1.2"
46
+ "@mui/x-internals": "8.10.2",
47
+ "@mui/x-virtualizer": "0.1.3"
48
48
  },
49
49
  "peerDependencies": {
50
50
  "@emotion/react": "^11.9.0",
@@ -70,23 +70,23 @@
70
70
  "exports": {
71
71
  "./package.json": "./package.json",
72
72
  ".": {
73
- "import": {
74
- "types": "./esm/index.d.ts",
75
- "default": "./esm/index.js"
76
- },
77
73
  "require": {
78
74
  "types": "./index.d.ts",
79
75
  "default": "./index.js"
76
+ },
77
+ "import": {
78
+ "types": "./esm/index.d.ts",
79
+ "default": "./esm/index.js"
80
80
  }
81
81
  },
82
82
  "./*": {
83
- "import": {
84
- "types": "./esm/*/index.d.ts",
85
- "default": "./esm/*/index.js"
86
- },
87
83
  "require": {
88
84
  "types": "./*/index.d.ts",
89
85
  "default": "./*/index.js"
86
+ },
87
+ "import": {
88
+ "types": "./esm/*/index.d.ts",
89
+ "default": "./esm/*/index.js"
90
90
  }
91
91
  },
92
92
  "./esm": null