@mui/x-date-pickers-pro 9.7.0 β 9.8.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 +130 -1
- package/DateRangeCalendar/DateRangeCalendar.js +6 -5
- package/DateRangeCalendar/DateRangeCalendar.mjs +6 -5
- package/DateRangePickerDay/DateRangePickerDay.js +2 -2
- package/DateRangePickerDay/DateRangePickerDay.mjs +2 -2
- package/index.js +1 -1
- package/index.mjs +1 -1
- package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +2 -2
- package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.mjs +2 -2
- package/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +2 -2
- package/internals/hooks/useMobileRangePicker/useMobileRangePicker.mjs +2 -2
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,135 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 9.8.0
|
|
4
|
+
|
|
5
|
+
_Jul 2, 2026_
|
|
6
|
+
|
|
7
|
+
We'd like to extend a big thank you to the 18 contributors who made this release possible. Here are some highlights β¨:
|
|
8
|
+
|
|
9
|
+
- πΊοΈ New [`MapImagePlot`](https://mui.com/x/react-charts/map/) for rendering raster base maps, with `onItemClick` support on map shapes (Premium)
|
|
10
|
+
- π New [`usePolarGeometry`](https://mui.com/x/react-charts/hooks/use-polar-geometry/) hook to build custom radial overlays
|
|
11
|
+
- π Bugfixes
|
|
12
|
+
- π Documentation improvements
|
|
13
|
+
|
|
14
|
+
Special thanks go out to these community members for their valuable contributions:
|
|
15
|
+
@Anexus5919, @aromanio, @greymoth-jp, @mustafajw07, @timbuckley, @voidmatcha
|
|
16
|
+
|
|
17
|
+
The following team members contributed to this release:
|
|
18
|
+
@alexfauquette, @arminmeh, @cherniavskii, @flaviendelangle, @Janpot, @JCQuintas, @joserodolfofreitas, @LukasTy, @mapache-salvaje, @michelengelen, @rita-codes, @sai6855
|
|
19
|
+
|
|
20
|
+
### Data Grid
|
|
21
|
+
|
|
22
|
+
#### `@mui/x-data-grid@9.8.0`
|
|
23
|
+
|
|
24
|
+
- [DataGrid] Prevent cell editing from resurrecting a deleted row (#22958) @Anexus5919
|
|
25
|
+
- [DataGrid] Avoid reading `type` of `undefined` in `gridRowUtils` (#21808) @timbuckley
|
|
26
|
+
- [DataGrid] Improved get started tutorial (#22911) @joserodolfofreitas
|
|
27
|
+
- [l10n] Improve Japanese (ja-JP) locale (#23001) @greymoth-jp
|
|
28
|
+
|
|
29
|
+
#### `@mui/x-data-grid-pro@9.8.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
30
|
+
|
|
31
|
+
Same changes as in `@mui/x-data-grid@9.8.0`.
|
|
32
|
+
|
|
33
|
+
#### `@mui/x-data-grid-premium@9.8.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
34
|
+
|
|
35
|
+
Same changes as in `@mui/x-data-grid-pro@9.8.0`, plus:
|
|
36
|
+
|
|
37
|
+
- [DataGridPremium] Escape `singleSelect` values in Excel export with `escapeFormulas` enabled (#22851) @Anexus5919
|
|
38
|
+
|
|
39
|
+
### Date and Time Pickers
|
|
40
|
+
|
|
41
|
+
#### `@mui/x-date-pickers@9.8.0`
|
|
42
|
+
|
|
43
|
+
- [pickers] Fix localized digit crash (#22995) @alexfauquette
|
|
44
|
+
- [pickers] Flag the first and last visible day cell across year boundaries (#22981) @Anexus5919
|
|
45
|
+
- [pickers] Use calendar day tokens in `AdapterMomentHijri` and `AdapterMomentJalaali` formats (#22974) @Anexus5919
|
|
46
|
+
- [pickers] Use the Hijri day token in `AdapterMomentHijri` `normalDateWithWeekday` (#22972) @Anexus5919
|
|
47
|
+
- [l10n] Improve Romanian (ro-RO) locale (#22969) @aromanio
|
|
48
|
+
|
|
49
|
+
#### `@mui/x-date-pickers-pro@9.8.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
50
|
+
|
|
51
|
+
Same changes as in `@mui/x-date-pickers@9.8.0`, plus:
|
|
52
|
+
|
|
53
|
+
- [DateRangeCalendar] Fix auto month-switch across the year boundary (#22987) @Anexus5919
|
|
54
|
+
|
|
55
|
+
### Charts
|
|
56
|
+
|
|
57
|
+
#### `@mui/x-charts@9.8.0`
|
|
58
|
+
|
|
59
|
+
- [charts] Decouple `d3-geo` from the universal tooltip (#23011) @sai6855
|
|
60
|
+
- [charts] Deduplicate `getGroupingConfig` (#22889) @sai6855
|
|
61
|
+
- [charts] Expose `usePolarGeometry` hook for radial overlays (#22892) @mustafajw07
|
|
62
|
+
|
|
63
|
+
#### `@mui/x-charts-pro@9.8.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
64
|
+
|
|
65
|
+
Same changes as in `@mui/x-charts@9.8.0`.
|
|
66
|
+
|
|
67
|
+
#### `@mui/x-charts-premium@9.8.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
68
|
+
|
|
69
|
+
Same changes as in `@mui/x-charts-pro@9.8.0`, plus:
|
|
70
|
+
|
|
71
|
+
- [charts-premium] Add `onItemClick` support for the Map shapes (#22876) @sai6855
|
|
72
|
+
- [charts-premium] Replace `dataIndex` with `name` in map identifier (#22891) @sai6855
|
|
73
|
+
- [charts-premium] Share helper function (#23030) @alexfauquette
|
|
74
|
+
- [charts-premium] Extract shared WebGL utilities across bar/scatter/heatmap renderers (#22466) @sai6855
|
|
75
|
+
- [charts-premium] Add `MapImagePlot` for raster base maps (#22977) @JCQuintas
|
|
76
|
+
|
|
77
|
+
### Tree View
|
|
78
|
+
|
|
79
|
+
#### `@mui/x-tree-view@9.8.0`
|
|
80
|
+
|
|
81
|
+
- [TreeView] Fix extra selection event when clicking a collapsed parent item (#22249) @michelengelen
|
|
82
|
+
- [TreeView] Enforce top-level type imports (#23034) @Janpot
|
|
83
|
+
|
|
84
|
+
#### `@mui/x-tree-view-pro@9.8.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
85
|
+
|
|
86
|
+
Same changes as in `@mui/x-tree-view@9.8.0`.
|
|
87
|
+
|
|
88
|
+
### Scheduler
|
|
89
|
+
|
|
90
|
+
#### `@mui/x-scheduler@9.0.0-beta.4`
|
|
91
|
+
|
|
92
|
+
- [scheduler] Enforce top-level type imports (#22931) @Janpot
|
|
93
|
+
- [scheduler] Keep the occurrence date when editing only one recurring event (#23007) @Anexus5919
|
|
94
|
+
- [scheduler] Track bundle size of scheduler packages (#22682) @flaviendelangle
|
|
95
|
+
- [scheduler] Add `viewConfig` prop to limit displayed hours in the day and week views (#22929) @flaviendelangle
|
|
96
|
+
|
|
97
|
+
#### `@mui/x-scheduler-premium@9.0.0-beta.4` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
98
|
+
|
|
99
|
+
Same changes as in `@mui/x-scheduler@9.0.0-beta.4`, plus:
|
|
100
|
+
|
|
101
|
+
- [scheduler] Collapsible resources in the timeline (#22920) @rita-codes
|
|
102
|
+
|
|
103
|
+
### Codemod
|
|
104
|
+
|
|
105
|
+
#### `@mui/x-codemod@9.8.0`
|
|
106
|
+
|
|
107
|
+
Internal changes.
|
|
108
|
+
|
|
109
|
+
### Docs
|
|
110
|
+
|
|
111
|
+
- [docs] Add recipe for conditional master-detail panels (#22971) @michelengelen
|
|
112
|
+
- [docs] Add recipe for describing active filters in the toolbar (#22970) @michelengelen
|
|
113
|
+
- [docs] Add recipe for triggering clipboard copy from a button (#22967) @michelengelen
|
|
114
|
+
- [docs] Clarify that `fieldRef.current.focusField()` is the canonical way to focus a field (#22937) @michelengelen
|
|
115
|
+
- [docs][scheduler] Another copyediting pass across the Scheduler docs (#22619) @mapache-salvaje
|
|
116
|
+
- [docs][charts] Add map example for arbitrary GeoJSON shapes (#22976) @JCQuintas
|
|
117
|
+
- [docs][charts] Double point count in `ScatterAsyncRenderer` demo (#22906) @JCQuintas
|
|
118
|
+
|
|
119
|
+
### Core
|
|
120
|
+
|
|
121
|
+
- [code-infra] Fix tracking branch bug in release script (#22956) @michelengelen
|
|
122
|
+
- [code-infra] Remove mark-duplicate workflow (#22994) @cherniavskii
|
|
123
|
+
- [code-infra] Revert `nanoid@3.3.15` `minimumReleaseAge` exemption (#22953) @LukasTy
|
|
124
|
+
|
|
125
|
+
### Miscellaneous
|
|
126
|
+
|
|
127
|
+
- [internals] Fix `ERR_UNSUPPORTED_DIR_IMPORT` for `core-js-pure` in Node ESM (#22985) @michelengelen
|
|
128
|
+
- [internals] Harden `useDisposable` React internals read with safeReact (#22986) @rita-codes
|
|
129
|
+
- [internals] Replace core-js `DisposableStack` ponyfill with a minimal fallback (#23002) @sai6855
|
|
130
|
+
- [test] Assert the edited `dateTime` cell value in the e2e edit test (#22982) @voidmatcha
|
|
131
|
+
- [virtualizer] Remeasure scrollbars when layout changes (#22914) @arminmeh
|
|
132
|
+
|
|
3
133
|
## 9.7.0
|
|
4
134
|
|
|
5
135
|
_Jun 25, 2026_
|
|
@@ -178,7 +308,6 @@ Same changes as in `@mui/x-charts-pro@9.6.0`, plus:
|
|
|
178
308
|
- [charts-premium] Support maps tooltip positioned on items (#22648) @alexfauquette
|
|
179
309
|
- [docs] Show how to export maps (#22837) @alexfauquette
|
|
180
310
|
|
|
181
|
-
|
|
182
311
|
### Tree View
|
|
183
312
|
|
|
184
313
|
#### `@mui/x-tree-view@9.6.0`
|
|
@@ -37,8 +37,8 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
|
37
37
|
const _excluded = ["value", "defaultValue", "referenceDate", "onChange", "className", "classes", "disableFuture", "disablePast", "minDate", "maxDate", "shouldDisableDate", "reduceAnimations", "onMonthChange", "rangePosition", "defaultRangePosition", "onRangePositionChange", "calendars", "currentMonthCalendarPosition", "slots", "slotProps", "loading", "renderLoading", "disableHighlightToday", "focusedView", "onFocusedViewChange", "readOnly", "disabled", "showDaysOutsideCurrentMonth", "dayOfWeekFormatter", "disableAutoMonthSwitching", "autoFocus", "fixedWeekNumber", "disableDragEditing", "displayWeekNumber", "timezone", "availableRangePositions", "views", "view", "openTo", "onViewChange"],
|
|
38
38
|
_excluded2 = ["isDragging", "rangeDragDay", "draggingDatePosition"];
|
|
39
39
|
const packageInfo = {
|
|
40
|
-
releaseDate: "
|
|
41
|
-
version: "9.
|
|
40
|
+
releaseDate: "MTc4Mjk1MDQwMDAwMA==",
|
|
41
|
+
version: "9.8.0",
|
|
42
42
|
name: 'x-date-pickers-pro'
|
|
43
43
|
};
|
|
44
44
|
const DateRangeCalendarRoot = (0, _styles.styled)('div', {
|
|
@@ -348,9 +348,10 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
|
|
|
348
348
|
return;
|
|
349
349
|
}
|
|
350
350
|
const displayingMonthRange = calendars - currentMonthCalendarPosition;
|
|
351
|
-
|
|
352
|
-
const
|
|
353
|
-
|
|
351
|
+
// Use absolute months (year * 12 + month) so the comparison stays correct across year boundaries.
|
|
352
|
+
const currentMonthNumber = adapter.getYear(calendarState.currentMonth) * 12 + adapter.getMonth(calendarState.currentMonth);
|
|
353
|
+
const requestedMonthNumber = adapter.getYear(date) * 12 + adapter.getMonth(date);
|
|
354
|
+
if (requestedMonthNumber < currentMonthNumber || requestedMonthNumber > currentMonthNumber + displayingMonthRange) {
|
|
354
355
|
const newMonth = rangePosition === 'start' ? date :
|
|
355
356
|
// If need to focus end, scroll to the state when "end" is displaying in the last calendar
|
|
356
357
|
adapter.addMonths(date, -displayingMonthRange);
|
|
@@ -30,8 +30,8 @@ import { PickersRangeCalendarHeader } from "../PickersRangeCalendarHeader/index.
|
|
|
30
30
|
import { useNullablePickerRangePositionContext } from "../internals/hooks/useNullablePickerRangePositionContext.mjs";
|
|
31
31
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
32
32
|
const packageInfo = {
|
|
33
|
-
releaseDate: "
|
|
34
|
-
version: "9.
|
|
33
|
+
releaseDate: "MTc4Mjk1MDQwMDAwMA==",
|
|
34
|
+
version: "9.8.0",
|
|
35
35
|
name: 'x-date-pickers-pro'
|
|
36
36
|
};
|
|
37
37
|
const DateRangeCalendarRoot = styled('div', {
|
|
@@ -341,9 +341,10 @@ const DateRangeCalendar = /*#__PURE__*/React.forwardRef(function DateRangeCalend
|
|
|
341
341
|
return;
|
|
342
342
|
}
|
|
343
343
|
const displayingMonthRange = calendars - currentMonthCalendarPosition;
|
|
344
|
-
|
|
345
|
-
const
|
|
346
|
-
|
|
344
|
+
// Use absolute months (year * 12 + month) so the comparison stays correct across year boundaries.
|
|
345
|
+
const currentMonthNumber = adapter.getYear(calendarState.currentMonth) * 12 + adapter.getMonth(calendarState.currentMonth);
|
|
346
|
+
const requestedMonthNumber = adapter.getYear(date) * 12 + adapter.getMonth(date);
|
|
347
|
+
if (requestedMonthNumber < currentMonthNumber || requestedMonthNumber > currentMonthNumber + displayingMonthRange) {
|
|
347
348
|
const newMonth = rangePosition === 'start' ? date :
|
|
348
349
|
// If need to focus end, scroll to the state when "end" is displaying in the last calendar
|
|
349
350
|
adapter.addMonths(date, -displayingMonthRange);
|
|
@@ -328,8 +328,8 @@ const DateRangePickerDayRaw = /*#__PURE__*/React.forwardRef(function DateRangePi
|
|
|
328
328
|
name: 'MuiDateRangePickerDay'
|
|
329
329
|
});
|
|
330
330
|
(0, _internals.useLicenseVerifier)({
|
|
331
|
-
releaseDate: "
|
|
332
|
-
version: "9.
|
|
331
|
+
releaseDate: "MTc4Mjk1MDQwMDAwMA==",
|
|
332
|
+
version: "9.8.0",
|
|
333
333
|
name: 'x-date-pickers-pro'
|
|
334
334
|
});
|
|
335
335
|
const adapter = (0, _hooks.usePickerAdapter)();
|
|
@@ -321,8 +321,8 @@ const DateRangePickerDayRaw = /*#__PURE__*/React.forwardRef(function DateRangePi
|
|
|
321
321
|
name: 'MuiDateRangePickerDay'
|
|
322
322
|
});
|
|
323
323
|
useLicenseVerifier({
|
|
324
|
-
releaseDate: "
|
|
325
|
-
version: "9.
|
|
324
|
+
releaseDate: "MTc4Mjk1MDQwMDAwMA==",
|
|
325
|
+
version: "9.8.0",
|
|
326
326
|
name: 'x-date-pickers-pro'
|
|
327
327
|
});
|
|
328
328
|
const adapter = usePickerAdapter();
|
package/index.js
CHANGED
package/index.mjs
CHANGED
|
@@ -26,8 +26,8 @@ const useDesktopRangePicker = _ref => {
|
|
|
26
26
|
} = _ref,
|
|
27
27
|
pickerParams = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
|
|
28
28
|
(0, _internals.useLicenseVerifier)({
|
|
29
|
-
releaseDate: "
|
|
30
|
-
version: "9.
|
|
29
|
+
releaseDate: "MTc4Mjk1MDQwMDAwMA==",
|
|
30
|
+
version: "9.8.0",
|
|
31
31
|
name: 'x-date-pickers-pro'
|
|
32
32
|
});
|
|
33
33
|
const {
|
|
@@ -19,8 +19,8 @@ export const useDesktopRangePicker = _ref => {
|
|
|
19
19
|
} = _ref,
|
|
20
20
|
pickerParams = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
21
21
|
useLicenseVerifier({
|
|
22
|
-
releaseDate: "
|
|
23
|
-
version: "9.
|
|
22
|
+
releaseDate: "MTc4Mjk1MDQwMDAwMA==",
|
|
23
|
+
version: "9.8.0",
|
|
24
24
|
name: 'x-date-pickers-pro'
|
|
25
25
|
});
|
|
26
26
|
const {
|
|
@@ -28,8 +28,8 @@ const useMobileRangePicker = _ref => {
|
|
|
28
28
|
} = _ref,
|
|
29
29
|
pickerParams = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
|
|
30
30
|
(0, _internals.useLicenseVerifier)({
|
|
31
|
-
releaseDate: "
|
|
32
|
-
version: "9.
|
|
31
|
+
releaseDate: "MTc4Mjk1MDQwMDAwMA==",
|
|
32
|
+
version: "9.8.0",
|
|
33
33
|
name: 'x-date-pickers-pro'
|
|
34
34
|
});
|
|
35
35
|
const {
|
|
@@ -21,8 +21,8 @@ export const useMobileRangePicker = _ref => {
|
|
|
21
21
|
} = _ref,
|
|
22
22
|
pickerParams = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
23
23
|
useLicenseVerifier({
|
|
24
|
-
releaseDate: "
|
|
25
|
-
version: "9.
|
|
24
|
+
releaseDate: "MTc4Mjk1MDQwMDAwMA==",
|
|
25
|
+
version: "9.8.0",
|
|
26
26
|
name: 'x-date-pickers-pro'
|
|
27
27
|
});
|
|
28
28
|
const {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mui/x-date-pickers-pro",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.8.0",
|
|
4
4
|
"author": "MUI Team",
|
|
5
5
|
"description": "The Pro plan edition of the MUI X Date and Time Picker components.",
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE",
|
|
@@ -35,9 +35,9 @@
|
|
|
35
35
|
"clsx": "^2.1.1",
|
|
36
36
|
"prop-types": "^15.8.1",
|
|
37
37
|
"react-transition-group": "^4.4.5",
|
|
38
|
-
"@mui/x-
|
|
39
|
-
"@mui/x-license": "^9.
|
|
40
|
-
"@mui/x-
|
|
38
|
+
"@mui/x-internals": "^9.8.0",
|
|
39
|
+
"@mui/x-license": "^9.8.0",
|
|
40
|
+
"@mui/x-date-pickers": "^9.8.0"
|
|
41
41
|
},
|
|
42
42
|
"peerDependencies": {
|
|
43
43
|
"@emotion/react": "^11.9.0",
|