@mui/x-date-pickers-pro 8.5.3 → 8.7.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.
Files changed (94) hide show
  1. package/CHANGELOG.md +210 -0
  2. package/DateRangeCalendar/DateRangeCalendar.js +39 -38
  3. package/DateRangeCalendar/DateRangeCalendar.types.d.ts +1 -1
  4. package/DateRangeCalendar/useDragRange.d.ts +2 -2
  5. package/DateRangeCalendar/useDragRange.js +17 -17
  6. package/DateRangePicker/DateRangePicker.js +1 -1
  7. package/DateRangePicker/DateRangePickerToolbar.js +4 -4
  8. package/DateRangePickerDay/DateRangePickerDay.js +5 -4
  9. package/DateRangePickerDay2/DateRangePickerDay2.js +5 -4
  10. package/DateTimeRangePicker/DateTimeRangePicker.js +2 -2
  11. package/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +11 -8
  12. package/DateTimeRangePicker/DateTimeRangePickerToolbar.js +3 -3
  13. package/DateTimeRangePicker/shared.js +3 -2
  14. package/DesktopDateRangePicker/DesktopDateRangePicker.js +5 -5
  15. package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +15 -9
  16. package/DesktopTimeRangePicker/DesktopTimeRangePicker.js +5 -4
  17. package/MobileDateRangePicker/MobileDateRangePicker.js +6 -6
  18. package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +7 -6
  19. package/MobileTimeRangePicker/MobileTimeRangePicker.js +7 -6
  20. package/MultiInputDateRangeField/MultiInputDateRangeField.js +1 -1
  21. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +2 -2
  22. package/MultiInputTimeRangeField/MultiInputTimeRangeField.js +2 -2
  23. package/PickersRangeCalendarHeader/PickersRangeCalendarHeader.js +4 -4
  24. package/SingleInputDateRangeField/SingleInputDateRangeField.js +1 -1
  25. package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +2 -2
  26. package/SingleInputTimeRangeField/SingleInputTimeRangeField.js +2 -2
  27. package/StaticDateRangePicker/StaticDateRangePicker.js +1 -1
  28. package/TimeRangePicker/TimeRangePicker.js +2 -2
  29. package/TimeRangePicker/TimeRangePickerTimeWrapper.js +11 -8
  30. package/TimeRangePicker/TimeRangePickerToolbar.js +7 -7
  31. package/TimeRangePicker/shared.js +3 -2
  32. package/esm/DateRangeCalendar/DateRangeCalendar.js +41 -40
  33. package/esm/DateRangeCalendar/DateRangeCalendar.types.d.ts +1 -1
  34. package/esm/DateRangeCalendar/useDragRange.d.ts +2 -2
  35. package/esm/DateRangeCalendar/useDragRange.js +17 -17
  36. package/esm/DateRangePicker/DateRangePicker.js +1 -1
  37. package/esm/DateRangePicker/DateRangePickerToolbar.js +6 -6
  38. package/esm/DateRangePickerDay/DateRangePickerDay.js +6 -5
  39. package/esm/DateRangePickerDay2/DateRangePickerDay2.js +6 -5
  40. package/esm/DateTimeRangePicker/DateTimeRangePicker.js +2 -2
  41. package/esm/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +10 -7
  42. package/esm/DateTimeRangePicker/DateTimeRangePickerToolbar.js +5 -5
  43. package/esm/DateTimeRangePicker/shared.js +4 -3
  44. package/esm/DesktopDateRangePicker/DesktopDateRangePicker.js +5 -5
  45. package/esm/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +13 -7
  46. package/esm/DesktopTimeRangePicker/DesktopTimeRangePicker.js +6 -5
  47. package/esm/MobileDateRangePicker/MobileDateRangePicker.js +6 -6
  48. package/esm/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +6 -5
  49. package/esm/MobileTimeRangePicker/MobileTimeRangePicker.js +7 -6
  50. package/esm/MultiInputDateRangeField/MultiInputDateRangeField.js +1 -1
  51. package/esm/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +2 -2
  52. package/esm/MultiInputTimeRangeField/MultiInputTimeRangeField.js +2 -2
  53. package/esm/PickersRangeCalendarHeader/PickersRangeCalendarHeader.js +6 -6
  54. package/esm/SingleInputDateRangeField/SingleInputDateRangeField.js +1 -1
  55. package/esm/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +2 -2
  56. package/esm/SingleInputTimeRangeField/SingleInputTimeRangeField.js +2 -2
  57. package/esm/StaticDateRangePicker/StaticDateRangePicker.js +1 -1
  58. package/esm/TimeRangePicker/TimeRangePicker.js +2 -2
  59. package/esm/TimeRangePicker/TimeRangePickerTimeWrapper.js +10 -7
  60. package/esm/TimeRangePicker/TimeRangePickerToolbar.js +9 -9
  61. package/esm/TimeRangePicker/shared.js +4 -3
  62. package/esm/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js +2 -0
  63. package/esm/hooks/useMultiInputRangeField/useTextFieldProps.js +2 -0
  64. package/esm/index.js +2 -1
  65. package/esm/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +1 -1
  66. package/esm/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +1 -1
  67. package/esm/internals/utils/date-range-manager.d.ts +4 -3
  68. package/esm/internals/utils/date-range-manager.js +14 -8
  69. package/esm/internals/utils/date-utils.d.ts +5 -5
  70. package/esm/internals/utils/date-utils.js +11 -11
  71. package/esm/internals/utils/valueManagers.js +12 -10
  72. package/esm/managers/useDateRangeManager.js +8 -8
  73. package/esm/managers/useDateTimeRangeManager.js +9 -9
  74. package/esm/managers/useTimeRangeManager.js +10 -10
  75. package/esm/validation/validateDateRange.js +1 -1
  76. package/esm/validation/validateDateTimeRange.js +1 -1
  77. package/esm/validation/validateTimeRange.js +1 -1
  78. package/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js +1 -0
  79. package/hooks/useMultiInputRangeField/useTextFieldProps.js +1 -0
  80. package/index.js +1 -1
  81. package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +1 -1
  82. package/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +1 -1
  83. package/internals/utils/date-range-manager.d.ts +4 -3
  84. package/internals/utils/date-range-manager.js +15 -8
  85. package/internals/utils/date-utils.d.ts +5 -5
  86. package/internals/utils/date-utils.js +11 -11
  87. package/internals/utils/valueManagers.js +12 -10
  88. package/managers/useDateRangeManager.js +6 -6
  89. package/managers/useDateTimeRangeManager.js +7 -7
  90. package/managers/useTimeRangeManager.js +8 -8
  91. package/package.json +4 -4
  92. package/validation/validateDateRange.js +1 -1
  93. package/validation/validateDateTimeRange.js +1 -1
  94. package/validation/validateTimeRange.js +1 -1
package/CHANGELOG.md CHANGED
@@ -5,6 +5,216 @@
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.7.0
9
+
10
+ _Jul 4, 2025_
11
+
12
+ We'd like to extend a big thank you to the 15 contributors who made this release possible. Here are some highlights ✨:
13
+
14
+ - 📊 Add `useChartProApiRef` for easier access to the API
15
+ - 📆 Support different start and end `referenceDate` props on range components
16
+ - 📚 Documentation improvements
17
+ - 🐞 Bugfixes
18
+ - 🌎 Improve Greek (el-GR) translations on the Charts
19
+ - 🌎 Improve Danish (da-DK) locale on the Data Grid
20
+
21
+ Special thanks go out to the community members for their valuable contributions:
22
+ @ShahrazH, @vadimkuragkovskiy, @whythecode
23
+
24
+ The following are all team members who have contributed to this release:
25
+ @alexfauquette, @brijeshb42, @mapache-salvaje, @arminmeh, @bernardobelchior, @bharatkashyap, @Janpot, @JCQuintas, @KenanYusuf, @LukasTy, @michelengelen, @rita-codes
26
+
27
+ ### Data Grid
28
+
29
+ #### `@mui/x-data-grid@8.7.0`
30
+
31
+ - [DataGrid] Fix column state restore with controlled column visibility model (#18567) @arminmeh
32
+ - [DataGrid] Fix styling virtualized column headers (#18603) @KenanYusuf
33
+ - [l10n] Improve Danish (da-DK) locale (#18537) @ShahrazH
34
+
35
+ #### `@mui/x-data-grid-pro@8.7.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
36
+
37
+ Same changes as in `@mui/x-data-grid@8.7.0`.
38
+
39
+ #### `@mui/x-data-grid-premium@8.7.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
40
+
41
+ Same changes as in `@mui/x-data-grid-pro@8.7.0`.
42
+
43
+ ### Date and Time Pickers
44
+
45
+ #### `@mui/x-date-pickers@8.7.0`
46
+
47
+ - [pickers] Support different `start` and `end` `referenceDate` props on range components (#18549) @LukasTy
48
+
49
+ #### `@mui/x-date-pickers-pro@8.7.0` [![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-date-pickers@8.7.0`.
52
+
53
+ ### Charts
54
+
55
+ #### `@mui/x-charts@8.7.0`
56
+
57
+ - [charts] Export `ChartsReferenceLineProps` (#18598) @bernardobelchior
58
+ - [charts] Extract bar and line plot logic into reusable hooks (#18541) @bernardobelchior
59
+ - [charts] Extract plot logic into separate files for reuse (#18522) @bernardobelchior
60
+ - [charts] Profile charts benchmarks using chromium (#18528) @bernardobelchior
61
+ - [l10n] Add Greek (el-GR) locale to charts (#18548) @whythecode
62
+
63
+ #### `@mui/x-charts-pro@8.7.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
64
+
65
+ Same changes as in `@mui/x-charts@8.7.0`, plus:
66
+
67
+ - [charts-pro] Add `useChartProApiRef` for easier refs (#18013) @JCQuintas
68
+ - [charts-pro] Add tests and classes to zoom slider (#18660) @JCQuintas
69
+ - [charts-pro] Fix geometry not handling gestures in specific scenarios (#18651) @JCQuintas
70
+ - [charts-pro] Rename `useChartApiContext` to `useChartProApiContext` (#18565) @JCQuintas
71
+ - [charts-pro] Zoom pointer improvements (#17480) @JCQuintas
72
+
73
+ ### Tree View
74
+
75
+ #### `@mui/x-tree-view@8.7.0`
76
+
77
+ Internal changes.
78
+
79
+ #### `@mui/x-tree-view-pro@8.7.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
80
+
81
+ Same changes as in `@mui/x-tree-view@8.7.0`, plus:
82
+
83
+ - [tree view pro] Add missing `dataSource` JSDoc (#18650) @LukasTy
84
+
85
+ ### Docs
86
+
87
+ - [docs] Add MCP stub (#18204) @bharatkashyap
88
+ - [docs] Fix AI Assistant proxy rewrite prefix (#18661) @arminmeh
89
+ - [docs] Improve test README.MD (#18634) @LukasTy
90
+ - [docs] Provide workaround for pie chart composition (#18600) @alexfauquette
91
+ - [docs][charts] Add donut chart as a special case of a pie chart (#18652) @bernardobelchior
92
+ - [docs][charts] Centralize country and continent data (#18604) @bernardobelchior
93
+ - [docs][data grid] Audit and revise the Pro row docs (#17926) @mapache-salvaje
94
+ - [docs][pickers] Add mention of theme augmentation in relevant migration section (#18608) @LukasTy
95
+
96
+ ### Core
97
+
98
+ - [core] Avoid stringifying `document` object (#18657) @vadimkuragkovskiy
99
+
100
+ ### Miscellaneous
101
+
102
+ - [code-infra] Bump code-infra version and fix breaking changes (#18653) @brijeshb42
103
+ - [code-infra] Ensure `material-ui/disallow-react-api-in-server-components` ESLint rule is applied (#18570) @LukasTy
104
+ - [code-infra] Migrate to flat eslint config (#18562) @brijeshb42
105
+ - [code-infra] Refactor eslint config (#18643) @LukasTy
106
+ - [infra] Add renovatebot rule for latest infra packages (#18609) @Janpot
107
+ - [infra] Move pushArgos script to code-infra (#18667) @Janpot
108
+ - [infra] Updates release script to fetch latest major version from upstream (#18552) @michelengelen
109
+ - [release] Add missing contributor to changelog (#18561) @bernardobelchior
110
+
111
+ ## 8.6.0
112
+
113
+ _Jun 27, 2025_
114
+
115
+ We'd like to extend a big thank you to the 12 contributors who made this release possible. Here are some highlights ✨:
116
+
117
+ - 📊 Add export menu to charts toolbar
118
+ - 📅 Add `usePickerAdapter` hook to access the date adapter.
119
+
120
+ You can use the adapter in your custom components if you need them to work with multiple date libraries — [Learn more](https://mui.com/x/react-date-pickers/custom-components/#access-date-adapter).
121
+ - 🌎 Improve Danish (da-DK) locale
122
+ - 🌎 Improve German (de-DE) locale
123
+
124
+ Special thanks go out to the community members for their valuable contributions:
125
+ @omalyutin, @ShahrazH, @vadimka123
126
+
127
+ The following are all team members who have contributed to this release:
128
+ @arminmeh, @bernardobelchior, @JCQuintas, @KenanYusuf, @LukasTy, @MBilalShafi, @michelengelen, @noraleonte, @rita-codes, @sai6855
129
+
130
+ ### Data Grid
131
+
132
+ #### `@mui/x-data-grid@8.6.0`
133
+
134
+ - [DataGrid] Fix `label` type in `GridActionsCellItem` type (#18175) @sai6855
135
+ - [DataGrid] Fix grid menu not closing when pressing escape/tab (#18300) @KenanYusuf
136
+ - [l10n] Improve Danish (da-DK) locale (#18428) @ShahrazH
137
+ - [l10n] Improve German (de-DE) locale (#18388) @omalyutin
138
+
139
+ #### `@mui/x-data-grid-pro@8.6.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link "Pro plan")
140
+
141
+ Same changes as in `@mui/x-data-grid@8.6.0`, plus:
142
+
143
+ - [DataGridPro] Fix lazy loading params calculated from rendering context (#18460) @arminmeh
144
+
145
+ #### `@mui/x-data-grid-premium@8.6.0` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link "Premium plan")
146
+
147
+ Same changes as in `@mui/x-data-grid-pro@8.6.0`.
148
+
149
+ ### Date and Time Pickers
150
+
151
+ #### `@mui/x-date-pickers@8.6.0`
152
+
153
+ - [pickers] Add `usePickerAdapter` hook (#18457) @LukasTy
154
+ - [pickers] Fix to use latest `value` when updating `lastCommittedValue` in internal state (#18518) @LukasTy
155
+ - [pickers] Use `usePickerAdapter` hook internally instead of `useUtils` (#18465) @LukasTy
156
+
157
+ #### `@mui/x-date-pickers-pro@8.6.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link "Pro plan")
158
+
159
+ Same changes as in `@mui/x-date-pickers@8.6.0`.
160
+
161
+ ### Charts
162
+
163
+ #### `@mui/x-charts@8.6.0`
164
+
165
+ - [charts] Add `data-series` to charts legend item (#18414) @bernardobelchior
166
+ - [charts] Add `data-series` to bar charts (#18413) @bernardobelchior
167
+ - [charts] Add `data-series` to elements of line chart (#18409) @bernardobelchior
168
+ - [charts] Add `data-series` to pie charts (#18432) @bernardobelchior
169
+ - [charts] Fix missing key in bar plot (#18502) @bernardobelchior
170
+ - [charts] Split axis utils from main file (#18517) @JCQuintas
171
+ - [charts] Improve touch behavior for polar axis (#18531) @JCQuintas
172
+ - [charts] Add `isElementInside` helper (#18530) @JCQuintas
173
+
174
+ #### `@mui/x-charts-pro@8.6.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link "Pro plan")
175
+
176
+ Same changes as in `@mui/x-charts@8.6.0`, plus:
177
+
178
+ - [charts-pro] Add export menu to charts toolbar (#18210) @bernardobelchior
179
+ - [charts-pro] Fix export docs mentioning tooltip instead of toolbar (#18490) @bernardobelchior
180
+ - [charts-pro] Fix iframe not being removed after print export (#18500) @bernardobelchior
181
+
182
+ ### Tree View
183
+
184
+ #### `@mui/x-tree-view@8.6.0`
185
+
186
+ Internal changes.
187
+
188
+ #### `@mui/x-tree-view-pro@8.6.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link "Pro plan")
189
+
190
+ Same changes as in `@mui/x-tree-view@8.6.0`, plus:
191
+
192
+ - [tree view pro] Fix theme augmentation (#18437) @LukasTy
193
+
194
+ ### Codemod
195
+
196
+ #### `@mui/x-codemod@8.6.0`
197
+
198
+ Internal changes.
199
+
200
+ ### Docs
201
+
202
+ - [docs] Document `GridRenderContext` (#18492) @arminmeh
203
+ - [docs] Prevent stale rows to appear on sort and filter change in the lazy loading demo (#18461) @arminmeh
204
+ - [docs][pickers] Update action bar demo to use the `nextOrAccept` action (#18505) @LukasTy
205
+ - [docs] Update indeterminate checkbox section in migration guide (#18229) @michelengelen
206
+ - [docs] Data source nested pagination recipe (#14777) @MBilalShafi
207
+
208
+ ### Core
209
+
210
+ - [core] Avoid json stringify whole window object (#18512) @vadimka123
211
+
212
+ ### Miscellaneous
213
+
214
+ - [code-infra] Dynamically get pickers adapters dependencies versions (#18446) @JCQuintas
215
+ - [infra] Adjust inquirer version and usage (#18495) @michelengelen
216
+ - [infra] Use `String.raw` for creating the remote regex (#18462) @michelengelen
217
+
8
218
  ## 8.5.3
9
219
 
10
220
  _Jun 19, 2025_
@@ -22,6 +22,7 @@ var _useId = _interopRequireDefault(require("@mui/utils/useId"));
22
22
  var _xLicense = require("@mui/x-license");
23
23
  var _internals = require("@mui/x-date-pickers/internals");
24
24
  var _warning = require("@mui/x-internals/warning");
25
+ var _hooks = require("@mui/x-date-pickers/hooks");
25
26
  var _dateRangeCalendarClasses = require("./dateRangeCalendarClasses");
26
27
  var _dateUtils = require("../internals/utils/date-utils");
27
28
  var _dateRangeManager = require("../internals/utils/date-range-manager");
@@ -36,7 +37,7 @@ var _DateRangePickerDay2 = require("../DateRangePickerDay2");
36
37
  var _jsxRuntime = require("react/jsx-runtime");
37
38
  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
39
  _excluded2 = ["isDragging", "rangeDragDay", "draggingDatePosition"];
39
- const releaseInfo = "MTc1MDI4NDAwMDAwMA==";
40
+ const releaseInfo = "MTc1MTU4MDAwMDAwMA==";
40
41
  const DateRangeCalendarRoot = (0, _styles.styled)('div', {
41
42
  name: 'MuiDateRangeCalendar',
42
43
  slot: 'Root'
@@ -194,7 +195,7 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
194
195
  focusedView: focusedViewProp,
195
196
  onFocusedViewChange
196
197
  });
197
- const utils = (0, _internals.useUtils)();
198
+ const adapter = (0, _hooks.usePickerAdapter)();
198
199
  const id = (0, _useId.default)();
199
200
  const {
200
201
  rangePosition,
@@ -215,7 +216,7 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
215
216
  newRange
216
217
  } = (0, _dateRangeManager.calculateRangeChange)({
217
218
  newDate,
218
- utils,
219
+ adapter,
219
220
  range: value,
220
221
  rangePosition,
221
222
  allowRangeFlip,
@@ -226,7 +227,7 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
226
227
  if (isNextSectionAvailable) {
227
228
  setRangePosition(nextSelection);
228
229
  }
229
- const isFullRangeSelected = rangePosition === 'end' && (0, _dateUtils.isRangeValid)(utils, newRange);
230
+ const isFullRangeSelected = rangePosition === 'end' && (0, _dateUtils.isRangeValid)(adapter, newRange);
230
231
  setValueAndGoToNextView(newRange, isFullRangeSelected || !isNextSectionAvailable ? 'finish' : 'partial', view);
231
232
  });
232
233
  const handleDrop = (0, _useEventCallback.default)(newDate => {
@@ -236,12 +237,12 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
236
237
 
237
238
  // Range going for the start of the start day to the end of the end day.
238
239
  // This makes sure that `isWithinRange` works with any time in the start and end day.
239
- const valueDayRange = React.useMemo(() => [!utils.isValid(value[0]) ? value[0] : utils.startOfDay(value[0]), !utils.isValid(value[1]) ? value[1] : utils.endOfDay(value[1])], [value, utils]);
240
+ const valueDayRange = React.useMemo(() => [!adapter.isValid(value[0]) ? value[0] : adapter.startOfDay(value[0]), !adapter.isValid(value[1]) ? value[1] : adapter.endOfDay(value[1])], [value, adapter]);
240
241
  const _useDragRange = (0, _useDragRange2.useDragRange)({
241
242
  disableDragEditing: shouldDisableDragEditing,
242
243
  onDrop: handleDrop,
243
244
  onDatePositionChange: handleDatePositionChange,
244
- utils,
245
+ adapter,
245
246
  dateRange: valueDayRange,
246
247
  timezone
247
248
  }),
@@ -263,14 +264,14 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
263
264
  return [null, null];
264
265
  }
265
266
  const newRange = (0, _dateRangeManager.calculateRangeChange)({
266
- utils,
267
+ adapter,
267
268
  range: valueDayRange,
268
269
  newDate: rangeDragDay,
269
270
  rangePosition,
270
271
  allowRangeFlip: true
271
272
  }).newRange;
272
- return newRange[0] !== null && newRange[1] !== null ? [utils.startOfDay(newRange[0]), utils.endOfDay(newRange[1])] : newRange;
273
- }, [rangePosition, rangeDragDay, utils, valueDayRange]);
273
+ return newRange[0] !== null && newRange[1] !== null ? [adapter.startOfDay(newRange[0]), adapter.endOfDay(newRange[1])] : newRange;
274
+ }, [rangePosition, rangeDragDay, adapter, valueDayRange]);
274
275
  const wrappedShouldDisableDate = React.useMemo(() => {
275
276
  if (!shouldDisableDate) {
276
277
  return undefined;
@@ -283,7 +284,7 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
283
284
  onMonthSwitchingAnimationEnd
284
285
  } = (0, _internals.useCalendarState)({
285
286
  value: value[0] || value[1],
286
- referenceDate,
287
+ referenceDate: (0, _dateRangeManager.resolveReferenceDate)(referenceDate, rangePosition),
287
288
  disableFuture,
288
289
  disablePast,
289
290
  maxDate,
@@ -293,24 +294,24 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
293
294
  shouldDisableDate: wrappedShouldDisableDate,
294
295
  timezone,
295
296
  getCurrentMonthFromVisibleDate: (visibleDate, prevMonth) => {
296
- const firstVisibleMonth = utils.addMonths(prevMonth, 1 - currentMonthCalendarPosition);
297
- const lastVisibleMonth = utils.endOfMonth(utils.addMonths(firstVisibleMonth, calendars - 1));
297
+ const firstVisibleMonth = adapter.addMonths(prevMonth, 1 - currentMonthCalendarPosition);
298
+ const lastVisibleMonth = adapter.endOfMonth(adapter.addMonths(firstVisibleMonth, calendars - 1));
298
299
 
299
300
  // The new focused day is inside the visible calendars,
300
301
  // Do not change the current month
301
- if (utils.isWithinRange(visibleDate, [firstVisibleMonth, lastVisibleMonth])) {
302
+ if (adapter.isWithinRange(visibleDate, [firstVisibleMonth, lastVisibleMonth])) {
302
303
  return prevMonth;
303
304
  }
304
305
 
305
306
  // The new focused day is after the last visible month,
306
307
  // Move the current month so that the new focused day is inside the first visible month
307
- if (utils.isAfter(visibleDate, lastVisibleMonth)) {
308
- return utils.startOfMonth(utils.addMonths(visibleDate, currentMonthCalendarPosition - 1));
308
+ if (adapter.isAfter(visibleDate, lastVisibleMonth)) {
309
+ return adapter.startOfMonth(adapter.addMonths(visibleDate, currentMonthCalendarPosition - 1));
309
310
  }
310
311
 
311
312
  // The new focused day is before the first visible month,
312
313
  // Move the current month so that the new focused day is inside the last visible month
313
- return utils.startOfMonth(utils.addMonths(visibleDate, currentMonthCalendarPosition - calendars));
314
+ return adapter.startOfMonth(adapter.addMonths(visibleDate, currentMonthCalendarPosition - calendars));
314
315
  }
315
316
  });
316
317
  const CalendarHeader = slots?.calendarHeader ?? _PickersRangeCalendarHeader.PickersRangeCalendarHeader;
@@ -343,7 +344,7 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
343
344
  const prevValue = React.useRef(null);
344
345
  React.useEffect(() => {
345
346
  const date = rangePosition === 'start' ? value[0] : value[1];
346
- if (!utils.isValid(date)) {
347
+ if (!adapter.isValid(date)) {
347
348
  return;
348
349
  }
349
350
  const prevDate = rangePosition === 'start' ? prevValue.current?.[0] : prevValue.current?.[1];
@@ -351,16 +352,16 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
351
352
 
352
353
  // The current date did not change, this call comes either from a `rangePosition` change or a change in the other date.
353
354
  // In both cases, we don't want to change the visible month(s).
354
- if (disableAutoMonthSwitching && prevDate && utils.isEqual(prevDate, date)) {
355
+ if (disableAutoMonthSwitching && prevDate && adapter.isEqual(prevDate, date)) {
355
356
  return;
356
357
  }
357
358
  const displayingMonthRange = calendars - currentMonthCalendarPosition;
358
- const currentMonthNumber = utils.getMonth(calendarState.currentMonth);
359
- const requestedMonthNumber = utils.getMonth(date);
360
- if (!utils.isSameYear(calendarState.currentMonth, date) || requestedMonthNumber < currentMonthNumber || requestedMonthNumber > currentMonthNumber + displayingMonthRange) {
359
+ const currentMonthNumber = adapter.getMonth(calendarState.currentMonth);
360
+ const requestedMonthNumber = adapter.getMonth(date);
361
+ if (!adapter.isSameYear(calendarState.currentMonth, date) || requestedMonthNumber < currentMonthNumber || requestedMonthNumber > currentMonthNumber + displayingMonthRange) {
361
362
  const newMonth = rangePosition === 'start' ? date :
362
363
  // If need to focus end, scroll to the state when "end" is displaying in the last calendar
363
- utils.addMonths(date, -displayingMonthRange);
364
+ adapter.addMonths(date, -displayingMonthRange);
364
365
  setVisibleDate({
365
366
  target: newMonth,
366
367
  reason: 'controlled-value-change'
@@ -384,7 +385,7 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
384
385
  onMouseLeave: () => setRangePreviewDay(null)
385
386
  }), []);
386
387
  const previewingRange = (0, _dateRangeManager.calculateRangePreview)({
387
- utils,
388
+ adapter,
388
389
  range: valueDayRange,
389
390
  newDate: rangePreviewDay,
390
391
  rangePosition
@@ -393,12 +394,12 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
393
394
  let cleanNewRangePreviewDay;
394
395
  if (valueDayRange[0] == null && valueDayRange[1] == null) {
395
396
  cleanNewRangePreviewDay = null;
396
- } else if ((0, _dateUtils.isWithinRange)(utils, newRangePreviewDay, valueDayRange)) {
397
+ } else if ((0, _dateUtils.isWithinRange)(adapter, newRangePreviewDay, valueDayRange)) {
397
398
  cleanNewRangePreviewDay = null;
398
399
  } else {
399
400
  cleanNewRangePreviewDay = newRangePreviewDay;
400
401
  }
401
- if (!(0, _internals.areDatesEqual)(utils, cleanNewRangePreviewDay, rangePreviewDay)) {
402
+ if (!(0, _internals.areDatesEqual)(adapter, cleanNewRangePreviewDay, rangePreviewDay)) {
402
403
  setRangePreviewDay(cleanNewRangePreviewDay);
403
404
  }
404
405
  });
@@ -411,8 +412,8 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
411
412
  day,
412
413
  isDaySelected
413
414
  } = dayOwnerState;
414
- const isSelectedStartDate = (0, _dateUtils.isStartOfRange)(utils, day, valueDayRange);
415
- const isSelectedEndDate = (0, _dateUtils.isEndOfRange)(utils, day, valueDayRange);
415
+ const isSelectedStartDate = (0, _dateUtils.isStartOfRange)(adapter, day, valueDayRange);
416
+ const isSelectedEndDate = (0, _dateUtils.isEndOfRange)(adapter, day, valueDayRange);
416
417
  const shouldInitDragging = !shouldDisableDragEditing && valueDayRange[0] && valueDayRange[1];
417
418
  const isElementDraggable = shouldInitDragging && (isSelectedStartDate || isSelectedEndDate);
418
419
  let datePosition;
@@ -421,15 +422,15 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
421
422
  } else if (isSelectedEndDate) {
422
423
  datePosition = 'end';
423
424
  }
424
- const isStartOfHighlighting = isDragging ? (0, _dateUtils.isStartOfRange)(utils, day, draggingRange) : isSelectedStartDate;
425
- const isEndOfHighlighting = isDragging ? (0, _dateUtils.isEndOfRange)(utils, day, draggingRange) : isSelectedEndDate;
425
+ const isStartOfHighlighting = isDragging ? (0, _dateUtils.isStartOfRange)(adapter, day, draggingRange) : isSelectedStartDate;
426
+ const isEndOfHighlighting = isDragging ? (0, _dateUtils.isEndOfRange)(adapter, day, draggingRange) : isSelectedEndDate;
426
427
  return (0, _extends2.default)({
427
- isPreviewing: shouldHavePreview ? (0, _dateUtils.isWithinRange)(utils, day, previewingRange) : false,
428
- isStartOfPreviewing: shouldHavePreview ? (0, _dateUtils.isStartOfRange)(utils, day, previewingRange) : false,
429
- isEndOfPreviewing: shouldHavePreview ? (0, _dateUtils.isEndOfRange)(utils, day, previewingRange) : false,
430
- isHighlighting: (0, _dateUtils.isWithinRange)(utils, day, isDragging ? draggingRange : valueDayRange),
428
+ isPreviewing: shouldHavePreview ? (0, _dateUtils.isWithinRange)(adapter, day, previewingRange) : false,
429
+ isStartOfPreviewing: shouldHavePreview ? (0, _dateUtils.isStartOfRange)(adapter, day, previewingRange) : false,
430
+ isEndOfPreviewing: shouldHavePreview ? (0, _dateUtils.isEndOfRange)(adapter, day, previewingRange) : false,
431
+ isHighlighting: (0, _dateUtils.isWithinRange)(adapter, day, isDragging ? draggingRange : valueDayRange),
431
432
  isStartOfHighlighting,
432
- isEndOfHighlighting: isDragging ? (0, _dateUtils.isEndOfRange)(utils, day, draggingRange) : isSelectedEndDate,
433
+ isEndOfHighlighting: isDragging ? (0, _dateUtils.isEndOfRange)(adapter, day, draggingRange) : isSelectedEndDate,
433
434
  onMouseEnter: shouldHavePreview ? handleDayMouseEnter : undefined,
434
435
  // apply selected styling to the dragging start or end day
435
436
  isVisuallySelected: isDaySelected || isDragging && (isStartOfHighlighting || isEndOfHighlighting),
@@ -448,11 +449,11 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
448
449
  (0, _warning.warnOnce)(['MUI X: The `currentMonthCalendarPosition` prop must be an integer between `1` and the amount of calendars rendered.', 'For example if you have 2 calendars rendered, it should be equal to either 1 or 2.']);
449
450
  }
450
451
  }
451
- const firstMonth = utils.addMonths(calendarState.currentMonth, 1 - currentMonthCalendarPosition);
452
+ const firstMonth = adapter.addMonths(calendarState.currentMonth, 1 - currentMonthCalendarPosition);
452
453
  return Array.from({
453
454
  length: calendars
454
- }).map((_, index) => utils.addMonths(firstMonth, index));
455
- }, [utils, calendarState.currentMonth, calendars, currentMonthCalendarPosition]);
455
+ }).map((_, index) => adapter.addMonths(firstMonth, index));
456
+ }, [adapter, calendarState.currentMonth, calendars, currentMonthCalendarPosition]);
456
457
  const hasFocus = focusedView !== null;
457
458
  const prevOpenViewRef = React.useRef(view);
458
459
  React.useEffect(() => {
@@ -686,7 +687,7 @@ process.env.NODE_ENV !== "production" ? DateRangeCalendar.propTypes = {
686
687
  * The date used to generate the new value when both `value` and `defaultValue` are empty.
687
688
  * @default The closest valid date using the validation props, except callbacks such as `shouldDisableDate`.
688
689
  */
689
- referenceDate: _propTypes.default.object,
690
+ referenceDate: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.object.isRequired), _propTypes.default.object]),
690
691
  /**
691
692
  * Component rendered on the "day" view when `props.loading` is true.
692
693
  * @returns {React.ReactNode} The node to render when loading.
@@ -73,7 +73,7 @@ export interface DateRangeCalendarProps extends ExportedDateRangeCalendarProps,
73
73
  * The date used to generate the new value when both `value` and `defaultValue` are empty.
74
74
  * @default The closest valid date using the validation props, except callbacks such as `shouldDisableDate`.
75
75
  */
76
- referenceDate?: PickerValidDate;
76
+ referenceDate?: PickerValidDate | [PickerValidDate, PickerValidDate];
77
77
  /**
78
78
  * The number of calendars to render.
79
79
  * @default 2
@@ -4,7 +4,7 @@ import { PickerRangeValue } from '@mui/x-date-pickers/internals';
4
4
  import { RangePosition } from "../models/index.js";
5
5
  interface UseDragRangeParams {
6
6
  disableDragEditing?: boolean;
7
- utils: MuiPickersAdapter;
7
+ adapter: MuiPickersAdapter;
8
8
  setRangeDragDay: (value: PickerValidDate | null) => void;
9
9
  setIsDragging: (value: boolean) => void;
10
10
  isDragging: boolean;
@@ -31,7 +31,7 @@ interface UseDragRangeResponse extends UseDragRangeEvents {
31
31
  }
32
32
  export declare const useDragRange: ({
33
33
  disableDragEditing,
34
- utils,
34
+ adapter,
35
35
  onDatePositionChange,
36
36
  onDrop,
37
37
  dateRange,
@@ -11,13 +11,13 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
11
11
  var React = _interopRequireWildcard(require("react"));
12
12
  var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallback"));
13
13
  var _dateUtils = require("../internals/utils/date-utils");
14
- const resolveDateFromTarget = (target, utils, timezone) => {
14
+ const resolveDateFromTarget = (target, adapter, timezone) => {
15
15
  const timestampString = target.dataset.timestamp;
16
16
  if (!timestampString) {
17
17
  return null;
18
18
  }
19
19
  const timestamp = +timestampString;
20
- return utils.date(new Date(timestamp).toISOString(), timezone);
20
+ return adapter.date(new Date(timestamp).toISOString(), timezone);
21
21
  };
22
22
  const isSameAsDraggingDate = event => {
23
23
  const timestampString = event.target.dataset.timestamp;
@@ -50,7 +50,7 @@ const resolveElementFromTouch = (event, ignoreTouchTarget) => {
50
50
  return null;
51
51
  };
52
52
  const useDragRangeEvents = ({
53
- utils,
53
+ adapter,
54
54
  setRangeDragDay,
55
55
  setIsDragging,
56
56
  isDragging,
@@ -71,12 +71,12 @@ const useDragRangeEvents = ({
71
71
  return false;
72
72
  }
73
73
  const shouldInitDragging = !disableDragEditing && !!dateRange[0] && !!dateRange[1];
74
- const isSelectedStartDate = (0, _dateUtils.isStartOfRange)(utils, day, dateRange);
75
- const isSelectedEndDate = (0, _dateUtils.isEndOfRange)(utils, day, dateRange);
74
+ const isSelectedStartDate = (0, _dateUtils.isStartOfRange)(adapter, day, dateRange);
75
+ const isSelectedEndDate = (0, _dateUtils.isEndOfRange)(adapter, day, dateRange);
76
76
  return shouldInitDragging && (isSelectedStartDate || isSelectedEndDate);
77
77
  };
78
78
  const handleDragStart = (0, _useEventCallback.default)(event => {
79
- const newDate = resolveDateFromTarget(event.target, utils, timezone);
79
+ const newDate = resolveDateFromTarget(event.target, adapter, timezone);
80
80
  if (!isElementDraggable(newDate)) {
81
81
  return;
82
82
  }
@@ -100,7 +100,7 @@ const useDragRangeEvents = ({
100
100
  if (!target) {
101
101
  return;
102
102
  }
103
- const newDate = resolveDateFromTarget(target, utils, timezone);
103
+ const newDate = resolveDateFromTarget(target, adapter, timezone);
104
104
  if (!isElementDraggable(newDate)) {
105
105
  return;
106
106
  }
@@ -113,14 +113,14 @@ const useDragRangeEvents = ({
113
113
  event.preventDefault();
114
114
  event.stopPropagation();
115
115
  event.dataTransfer.dropEffect = 'move';
116
- setRangeDragDay(resolveDateFromTarget(event.target, utils, timezone));
116
+ setRangeDragDay(resolveDateFromTarget(event.target, adapter, timezone));
117
117
  });
118
118
  const handleTouchMove = (0, _useEventCallback.default)(event => {
119
119
  const target = resolveElementFromTouch(event);
120
120
  if (!target) {
121
121
  return;
122
122
  }
123
- const newDate = resolveDateFromTarget(target, utils, timezone);
123
+ const newDate = resolveDateFromTarget(target, adapter, timezone);
124
124
  if (newDate) {
125
125
  setRangeDragDay(newDate);
126
126
  }
@@ -167,7 +167,7 @@ const useDragRangeEvents = ({
167
167
 
168
168
  // make sure the focused element is the element where touch ended
169
169
  target.focus();
170
- const newDate = resolveDateFromTarget(target, utils, timezone);
170
+ const newDate = resolveDateFromTarget(target, adapter, timezone);
171
171
  if (newDate) {
172
172
  onDrop(newDate);
173
173
  }
@@ -194,7 +194,7 @@ const useDragRangeEvents = ({
194
194
  if (isSameAsDraggingDate(event)) {
195
195
  return;
196
196
  }
197
- const newDate = resolveDateFromTarget(event.target, utils, timezone);
197
+ const newDate = resolveDateFromTarget(event.target, adapter, timezone);
198
198
  if (newDate) {
199
199
  onDrop(newDate);
200
200
  }
@@ -213,7 +213,7 @@ const useDragRangeEvents = ({
213
213
  };
214
214
  const useDragRange = ({
215
215
  disableDragEditing,
216
- utils,
216
+ adapter,
217
217
  onDatePositionChange,
218
218
  onDrop,
219
219
  dateRange,
@@ -222,24 +222,24 @@ const useDragRange = ({
222
222
  const [isDragging, setIsDragging] = React.useState(false);
223
223
  const [rangeDragDay, setRangeDragDay] = React.useState(null);
224
224
  const handleRangeDragDayChange = (0, _useEventCallback.default)(newValue => {
225
- if (!utils.isEqual(newValue, rangeDragDay)) {
225
+ if (!adapter.isEqual(newValue, rangeDragDay)) {
226
226
  setRangeDragDay(newValue);
227
227
  }
228
228
  });
229
229
  const draggingDatePosition = React.useMemo(() => {
230
230
  const [start, end] = dateRange;
231
231
  if (rangeDragDay) {
232
- if (start && utils.isBefore(rangeDragDay, start)) {
232
+ if (start && adapter.isBefore(rangeDragDay, start)) {
233
233
  return 'start';
234
234
  }
235
- if (end && utils.isAfter(rangeDragDay, end)) {
235
+ if (end && adapter.isAfter(rangeDragDay, end)) {
236
236
  return 'end';
237
237
  }
238
238
  }
239
239
  return null;
240
- }, [dateRange, rangeDragDay, utils]);
240
+ }, [dateRange, rangeDragDay, adapter]);
241
241
  const dragRangeEvents = useDragRangeEvents({
242
- utils,
242
+ adapter,
243
243
  onDatePositionChange,
244
244
  onDrop,
245
245
  setIsDragging,
@@ -275,7 +275,7 @@ process.env.NODE_ENV !== "production" ? DateRangePicker.propTypes = {
275
275
  * The date used to generate the new value when both `value` and `defaultValue` are empty.
276
276
  * @default The closest valid date-time using the validation props, except callbacks like `shouldDisable<...>`.
277
277
  */
278
- referenceDate: _propTypes.default.object,
278
+ referenceDate: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.object), _propTypes.default.object]),
279
279
  /**
280
280
  * Component rendered on the "day" view when `props.loading` is true.
281
281
  * @returns {React.ReactNode} The node to render when loading.
@@ -49,7 +49,7 @@ const DateRangePickerToolbarContainer = (0, _styles.styled)('div', {
49
49
  * - [DateRangePickerToolbar API](https://mui.com/x/api/date-pickers/date-range-picker-toolbar/)
50
50
  */
51
51
  const DateRangePickerToolbar = exports.DateRangePickerToolbar = /*#__PURE__*/React.forwardRef(function DateRangePickerToolbar(inProps, ref) {
52
- const utils = (0, _internals.useUtils)();
52
+ const adapter = (0, _hooks.usePickerAdapter)();
53
53
  const props = (0, _styles.useThemeProps)({
54
54
  props: inProps,
55
55
  name: 'MuiDateRangePickerToolbar'
@@ -72,12 +72,12 @@ const DateRangePickerToolbar = exports.DateRangePickerToolbar = /*#__PURE__*/Rea
72
72
  const classes = useUtilityClasses(classesProp);
73
73
 
74
74
  // This can't be a default value when spreading because it breaks the API generation.
75
- const toolbarFormat = toolbarFormatProp ?? utils.formats.shortDate;
75
+ const toolbarFormat = toolbarFormatProp ?? adapter.formats.shortDate;
76
76
  const formatDate = (date, fallback) => {
77
- if (!utils.isValid(date)) {
77
+ if (!adapter.isValid(date)) {
78
78
  return fallback;
79
79
  }
80
- return utils.formatByString(date, toolbarFormat);
80
+ return adapter.formatByString(date, toolbarFormat);
81
81
  };
82
82
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(DateRangePickerToolbarRoot, (0, _extends2.default)({}, other, {
83
83
  toolbarTitle: translations.dateRangePickerToolbarTitle,
@@ -17,6 +17,7 @@ var _styles = require("@mui/material/styles");
17
17
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
18
18
  var _internals = require("@mui/x-date-pickers/internals");
19
19
  var _PickersDay = require("@mui/x-date-pickers/PickersDay");
20
+ var _hooks = require("@mui/x-date-pickers/hooks");
20
21
  var _dateRangePickerDayClasses = require("./dateRangePickerDayClasses");
21
22
  var _jsxRuntime = require("react/jsx-runtime");
22
23
  const _excluded = ["className", "classes", "isEndOfHighlighting", "isEndOfPreviewing", "isHighlighting", "isPreviewing", "isStartOfHighlighting", "isStartOfPreviewing", "isVisuallySelected", "sx", "draggable", "isFirstVisibleCell", "isLastVisibleCell", "day", "selected", "disabled", "today", "outsideCurrentMonth", "disableMargin", "disableHighlightToday", "showDaysOutsideCurrentMonth"];
@@ -234,8 +235,8 @@ const DateRangePickerDayRaw = /*#__PURE__*/React.forwardRef(function DateRangePi
234
235
  showDaysOutsideCurrentMonth
235
236
  } = props,
236
237
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
237
- (0, _xLicense.useLicenseVerifier)('x-date-pickers-pro', "MTc1MDI4NDAwMDAwMA==");
238
- const utils = (0, _internals.useUtils)();
238
+ (0, _xLicense.useLicenseVerifier)('x-date-pickers-pro', "MTc1MTU4MDAwMDAwMA==");
239
+ const adapter = (0, _hooks.usePickerAdapter)();
239
240
  const shouldRenderHighlight = isHighlighting && !outsideCurrentMonth;
240
241
  const shouldRenderPreview = isPreviewing && !outsideCurrentMonth;
241
242
  const pickersDayOwnerState = (0, _internals.usePickerDayOwnerState)({
@@ -259,8 +260,8 @@ const DateRangePickerDayRaw = /*#__PURE__*/React.forwardRef(function DateRangePi
259
260
  isDayPreviewEnd: isEndOfPreviewing,
260
261
  isDayInsidePreview: isPreviewing && !isStartOfPreviewing && !isEndOfPreviewing,
261
262
  // Properties specific to the MUI implementation (some might be removed in the next major)
262
- isDayStartOfMonth: utils.isSameDay(day, utils.startOfMonth(day)),
263
- isDayEndOfMonth: utils.isSameDay(day, utils.endOfMonth(day)),
263
+ isDayStartOfMonth: adapter.isSameDay(day, adapter.startOfMonth(day)),
264
+ isDayEndOfMonth: adapter.isSameDay(day, adapter.endOfMonth(day)),
264
265
  isDayFirstVisibleCell: isFirstVisibleCell,
265
266
  isDayLastVisibleCell: isLastVisibleCell,
266
267
  isDayFillerCell: outsideCurrentMonth && !showDaysOutsideCurrentMonth