@mui/x-date-pickers 8.28.4 → 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,6 +5,56 @@
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.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
+
8
58
  ## 8.28.4
9
59
 
10
60
  _Apr 27, 2026_
@@ -32,9 +32,16 @@ const getHourSectionOptions = ({
32
32
  const isFocused = hour => {
33
33
  return isSelected(hour, adapter.getHours(valueOrReferenceDate));
34
34
  };
35
+
36
+ // Anchor label generation to a fixed non-transition day (month=0, day=15) —
37
+ // `adapter.setHours(now, N)` on a transition day can roll forward and emit
38
+ // duplicate labels (see https://github.com/mui/mui-x/issues/22084). Order:
39
+ // `setMonth` first so day-overflow is harmless; non-Gregorian adapters land
40
+ // on a different month-15 here but are all TZ-incompatible.
41
+ const labelReferenceDate = adapter.setDate(adapter.setMonth(adapter.startOfDay(now), 0), 15);
35
42
  const endHour = ampm ? 11 : 23;
36
43
  for (let hour = 0; hour <= endHour; hour += timeStep) {
37
- let label = adapter.format(adapter.setHours(now, hour), ampm ? 'hours12h' : 'hours24h');
44
+ let label = adapter.format(adapter.setHours(labelReferenceDate, hour), ampm ? 'hours12h' : 'hours24h');
38
45
  const ariaLabel = resolveAriaLabel(parseInt(label, 10).toString());
39
46
  label = adapter.formatNumber(label);
40
47
  result.push({
@@ -26,9 +26,16 @@ export const getHourSectionOptions = ({
26
26
  const isFocused = hour => {
27
27
  return isSelected(hour, adapter.getHours(valueOrReferenceDate));
28
28
  };
29
+
30
+ // Anchor label generation to a fixed non-transition day (month=0, day=15) —
31
+ // `adapter.setHours(now, N)` on a transition day can roll forward and emit
32
+ // duplicate labels (see https://github.com/mui/mui-x/issues/22084). Order:
33
+ // `setMonth` first so day-overflow is harmless; non-Gregorian adapters land
34
+ // on a different month-15 here but are all TZ-incompatible.
35
+ const labelReferenceDate = adapter.setDate(adapter.setMonth(adapter.startOfDay(now), 0), 15);
29
36
  const endHour = ampm ? 11 : 23;
30
37
  for (let hour = 0; hour <= endHour; hour += timeStep) {
31
- let label = adapter.format(adapter.setHours(now, hour), ampm ? 'hours12h' : 'hours24h');
38
+ let label = adapter.format(adapter.setHours(labelReferenceDate, hour), ampm ? 'hours12h' : 'hours24h');
32
39
  const ariaLabel = resolveAriaLabel(parseInt(label, 10).toString());
33
40
  label = adapter.formatNumber(label);
34
41
  result.push({
package/esm/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-date-pickers v8.28.4
2
+ * @mui/x-date-pickers v8.28.5
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-date-pickers v8.28.4
2
+ * @mui/x-date-pickers 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-date-pickers",
3
- "version": "8.28.4",
3
+ "version": "8.28.5",
4
4
  "author": "MUI Team",
5
5
  "description": "The community edition of the MUI X Date and Time Picker components.",
6
6
  "license": "MIT",