@mui/x-data-grid 8.27.3 → 8.27.4

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,62 @@
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.27.4
9
+
10
+ _Mar 5, 2026_
11
+
12
+ We'd like to extend a big thank you to the 6 contributors who made this release possible. Here are some highlights ✨:
13
+
14
+ - 🐞 Bugfixes
15
+ - 🌎 Improve Ukrainian (uk-UA) locale
16
+
17
+ Special thanks go out to this community member for their valuable contribution:
18
+ @lion1963
19
+
20
+ The following team members contributed to this release:
21
+ @arminmeh, @brijeshb42, @dav-is, @JCQuintas, @sai6855
22
+
23
+ ### Data Grid
24
+
25
+ #### `@mui/x-data-grid@8.27.4`
26
+
27
+ - [DataGrid] Prevent unnecessary row selection checkbox rerendering (#21571) @arminmeh
28
+ - [DataGrid] Make `GridScrollArea` overrides resolver dynamic (#21612) @sai6855
29
+ - [l10n] Improve Ukrainian (uk-UA) locale (#21381) @lion1963
30
+
31
+ #### `@mui/x-data-grid-pro@8.27.4` [![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.27.4`, plus:
34
+
35
+ - [DataGridPro] Use `getRowId` prop to calculate the tree data row update (#21544) @arminmeh
36
+
37
+ #### `@mui/x-data-grid-premium@8.27.4` [![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.27.4`.
40
+
41
+ ### Charts
42
+
43
+ #### `@mui/x-charts@8.27.4`
44
+
45
+ - [charts] Deprecate `ChartDataProvider` in favour of `ChartsDataProvider` (#21549) @JCQuintas
46
+ - [charts] Rename `ChartContainer` to `ChartsContainer` (#21186) @JCQuintas
47
+ - [charts] Rename `ChartZoomSlider` to `ChartsZoomSlider` (#21572) @JCQuintas
48
+
49
+ #### `@mui/x-charts-pro@8.27.4` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
50
+
51
+ Same changes as in `@mui/x-charts@8.27.4`.
52
+
53
+ #### `@mui/x-charts-premium@8.27.4` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
54
+
55
+ Same changes as in `@mui/x-charts-pro@8.27.4`.
56
+
57
+ ### Core
58
+
59
+ - [code-infra] Add eslint rule to prevent `Math.random` in docs (#21505) (#21563) @JCQuintas
60
+ - [code-infra] V8 Dedupe (#21561) @JCQuintas
61
+ - [docs-infra] Apply Cookie Banner to v8.x Branch (#21448) @dav-is
62
+ - [code-infra] Setup checkout to do full clone for non master branches (#21624) @brijeshb42
63
+
8
64
  ## 8.27.3
9
65
 
10
66
  _Feb 25, 2026_
@@ -42,15 +42,12 @@ const useUtilityClasses = ownerState => {
42
42
  const GridScrollAreaRawRoot = (0, _styles.styled)('div', {
43
43
  name: 'MuiDataGrid',
44
44
  slot: 'ScrollArea',
45
- overridesResolver: (props, styles) => [{
46
- [`&.${_constants.gridClasses['scrollArea--left']}`]: styles['scrollArea--left']
47
- }, {
48
- [`&.${_constants.gridClasses['scrollArea--right']}`]: styles['scrollArea--right']
49
- }, {
50
- [`&.${_constants.gridClasses['scrollArea--up']}`]: styles['scrollArea--up']
51
- }, {
52
- [`&.${_constants.gridClasses['scrollArea--down']}`]: styles['scrollArea--down']
53
- }, styles.scrollArea]
45
+ overridesResolver: (props, styles) => {
46
+ const {
47
+ ownerState
48
+ } = props;
49
+ return [styles.scrollArea, styles[`scrollArea--${ownerState.scrollDirection}`]];
50
+ }
54
51
  })(() => ({
55
52
  position: 'absolute',
56
53
  zIndex: 101,
@@ -52,7 +52,7 @@ const GridCellCheckboxForwardRef = exports.GridCellCheckboxForwardRef = (0, _for
52
52
  } = (0, _useGridSelector.useGridSelector)(apiRef, _utils.checkboxPropsSelector, {
53
53
  groupId: id,
54
54
  autoSelectParents: rootProps.rowSelectionPropagation?.parents ?? false
55
- });
55
+ }, _useGridSelector.objectShallowCompare);
56
56
  const disabled = !isSelectable;
57
57
  const handleChange = event => {
58
58
  if (disabled) {
@@ -35,15 +35,12 @@ const useUtilityClasses = ownerState => {
35
35
  const GridScrollAreaRawRoot = styled('div', {
36
36
  name: 'MuiDataGrid',
37
37
  slot: 'ScrollArea',
38
- overridesResolver: (props, styles) => [{
39
- [`&.${gridClasses['scrollArea--left']}`]: styles['scrollArea--left']
40
- }, {
41
- [`&.${gridClasses['scrollArea--right']}`]: styles['scrollArea--right']
42
- }, {
43
- [`&.${gridClasses['scrollArea--up']}`]: styles['scrollArea--up']
44
- }, {
45
- [`&.${gridClasses['scrollArea--down']}`]: styles['scrollArea--down']
46
- }, styles.scrollArea]
38
+ overridesResolver: (props, styles) => {
39
+ const {
40
+ ownerState
41
+ } = props;
42
+ return [styles.scrollArea, styles[`scrollArea--${ownerState.scrollDirection}`]];
43
+ }
47
44
  })(() => ({
48
45
  position: 'absolute',
49
46
  zIndex: 101,
@@ -12,7 +12,7 @@ import { forwardRef } from '@mui/x-internals/forwardRef';
12
12
  import { useGridApiContext } from "../../hooks/utils/useGridApiContext.js";
13
13
  import { useGridRootProps } from "../../hooks/utils/useGridRootProps.js";
14
14
  import { getDataGridUtilityClass } from "../../constants/gridClasses.js";
15
- import { useGridSelector } from "../../hooks/utils/useGridSelector.js";
15
+ import { useGridSelector, objectShallowCompare } from "../../hooks/utils/useGridSelector.js";
16
16
  import { checkboxPropsSelector } from "../../hooks/features/rowSelection/utils.js";
17
17
  import { jsx as _jsx } from "react/jsx-runtime";
18
18
  const useUtilityClasses = ownerState => {
@@ -45,7 +45,7 @@ const GridCellCheckboxForwardRef = forwardRef(function GridCellCheckboxRenderer(
45
45
  } = useGridSelector(apiRef, checkboxPropsSelector, {
46
46
  groupId: id,
47
47
  autoSelectParents: rootProps.rowSelectionPropagation?.parents ?? false
48
- });
48
+ }, objectShallowCompare);
49
49
  const disabled = !isSelectable;
50
50
  const handleChange = event => {
51
51
  if (disabled) {
package/esm/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid v8.27.3
2
+ * @mui/x-data-grid v8.27.4
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -188,18 +188,19 @@ const ukUAGrid = {
188
188
  collapseDetailPanel: 'Приховати',
189
189
  // Pagination
190
190
  paginationRowsPerPage: 'Рядків на сторінці:',
191
- // paginationDisplayedRows: ({
192
- // from,
193
- // to,
194
- // count,
195
- // estimated
196
- // }) => {
197
- // if (!estimated) {
198
- // return `${from}–${to} of ${count !== -1 ? count : `more than ${to}`}`;
199
- // }
200
- // const estimatedLabel = estimated && estimated > to ? `around ${estimated}` : `more than ${to}`;
201
- // return `${from}–${to} of ${count !== -1 ? count : estimatedLabel}`;
202
- // },
191
+ paginationDisplayedRows: ({
192
+ from,
193
+ to,
194
+ count,
195
+ estimated
196
+ }) => {
197
+ const unknownRowCount = count == null || count === -1;
198
+ if (!estimated) {
199
+ return `${from}–${to} з ${!unknownRowCount ? count : `більше ніж ${to}`}`;
200
+ }
201
+ const estimatedLabel = estimated && estimated > to ? `близько ${estimated}` : `більше ніж ${to}`;
202
+ return `${from}–${to} з ${!unknownRowCount ? count : estimatedLabel}`;
203
+ },
203
204
  paginationItemAriaLabel: type => {
204
205
  if (type === 'first') {
205
206
  return 'Перейти на першу сторінку';
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-data-grid v8.27.3
2
+ * @mui/x-data-grid v8.27.4
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
package/locales/ukUA.js CHANGED
@@ -194,18 +194,19 @@ const ukUAGrid = {
194
194
  collapseDetailPanel: 'Приховати',
195
195
  // Pagination
196
196
  paginationRowsPerPage: 'Рядків на сторінці:',
197
- // paginationDisplayedRows: ({
198
- // from,
199
- // to,
200
- // count,
201
- // estimated
202
- // }) => {
203
- // if (!estimated) {
204
- // return `${from}–${to} of ${count !== -1 ? count : `more than ${to}`}`;
205
- // }
206
- // const estimatedLabel = estimated && estimated > to ? `around ${estimated}` : `more than ${to}`;
207
- // return `${from}–${to} of ${count !== -1 ? count : estimatedLabel}`;
208
- // },
197
+ paginationDisplayedRows: ({
198
+ from,
199
+ to,
200
+ count,
201
+ estimated
202
+ }) => {
203
+ const unknownRowCount = count == null || count === -1;
204
+ if (!estimated) {
205
+ return `${from}–${to} з ${!unknownRowCount ? count : `більше ніж ${to}`}`;
206
+ }
207
+ const estimatedLabel = estimated && estimated > to ? `близько ${estimated}` : `більше ніж ${to}`;
208
+ return `${from}–${to} з ${!unknownRowCount ? count : estimatedLabel}`;
209
+ },
209
210
  paginationItemAriaLabel: type => {
210
211
  if (type === 'first') {
211
212
  return 'Перейти на першу сторінку';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/x-data-grid",
3
- "version": "8.27.3",
3
+ "version": "8.27.4",
4
4
  "author": "MUI Team",
5
5
  "description": "The Community plan edition of the MUI X Data Grid components.",
6
6
  "license": "MIT",