@mui/x-date-pickers 8.5.2 → 8.6.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 (186) hide show
  1. package/CHANGELOG.md +203 -11
  2. package/DateCalendar/DateCalendar.js +16 -16
  3. package/DateCalendar/DayCalendar.js +48 -48
  4. package/DateCalendar/useCalendarState.js +25 -25
  5. package/DateCalendar/useIsDateDisabled.js +2 -2
  6. package/DatePicker/DatePickerToolbar.js +7 -9
  7. package/DateTimeField/DateTimeField.js +1 -1
  8. package/DateTimePicker/DateTimePicker.js +1 -1
  9. package/DateTimePicker/DateTimePickerToolbar.js +12 -13
  10. package/DateTimePicker/shared.js +3 -3
  11. package/DesktopDatePicker/DesktopDatePicker.js +3 -3
  12. package/DesktopDateTimePicker/DesktopDateTimePicker.js +4 -4
  13. package/DesktopTimePicker/DesktopTimePicker.js +4 -4
  14. package/DigitalClock/DigitalClock.d.ts +1 -1
  15. package/DigitalClock/DigitalClock.js +16 -16
  16. package/LocalizationProvider/LocalizationProvider.d.ts +9 -3
  17. package/LocalizationProvider/LocalizationProvider.js +28 -19
  18. package/MobileDatePicker/MobileDatePicker.js +3 -3
  19. package/MobileDateTimePicker/MobileDateTimePicker.js +4 -4
  20. package/MobileTimePicker/MobileTimePicker.js +4 -4
  21. package/MonthCalendar/MonthCalendar.js +19 -18
  22. package/MultiSectionDigitalClock/MultiSectionDigitalClock.js +32 -32
  23. package/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.d.ts +4 -4
  24. package/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.js +7 -7
  25. package/PickerDay2/PickerDay2.js +3 -3
  26. package/PickersActionBar/PickersActionBar.d.ts +2 -2
  27. package/PickersActionBar/PickersActionBar.js +2 -2
  28. package/PickersCalendarHeader/PickersCalendarHeader.js +7 -8
  29. package/PickersDay/PickersDay.js +3 -3
  30. package/PickersDay/usePickerDayOwnerState.js +5 -5
  31. package/PickersTextField/PickersFilledInput/pickersFilledInputClasses.d.ts +1 -0
  32. package/PickersTextField/PickersInput/pickersInputClasses.d.ts +1 -0
  33. package/PickersTextField/PickersInputBase/pickersInputBaseClasses.d.ts +2 -0
  34. package/PickersTextField/PickersInputBase/pickersInputBaseClasses.js +1 -1
  35. package/PickersTextField/PickersOutlinedInput/pickersOutlinedInputClasses.d.ts +1 -0
  36. package/StaticDateTimePicker/StaticDateTimePicker.js +1 -1
  37. package/StaticTimePicker/StaticTimePicker.js +1 -1
  38. package/TimeClock/Clock.js +8 -9
  39. package/TimeClock/ClockNumbers.d.ts +3 -3
  40. package/TimeClock/ClockNumbers.js +5 -5
  41. package/TimeClock/TimeClock.js +29 -29
  42. package/TimeField/TimeField.js +1 -1
  43. package/TimePicker/TimePicker.js +1 -1
  44. package/TimePicker/TimePickerToolbar.js +7 -9
  45. package/TimePicker/shared.js +3 -3
  46. package/YearCalendar/YearCalendar.js +19 -18
  47. package/esm/DateCalendar/DateCalendar.js +16 -16
  48. package/esm/DateCalendar/DayCalendar.js +48 -48
  49. package/esm/DateCalendar/useCalendarState.js +25 -25
  50. package/esm/DateCalendar/useIsDateDisabled.js +2 -2
  51. package/esm/DatePicker/DatePickerToolbar.js +6 -8
  52. package/esm/DateTimeField/DateTimeField.js +1 -1
  53. package/esm/DateTimePicker/DateTimePicker.js +1 -1
  54. package/esm/DateTimePicker/DateTimePickerToolbar.js +11 -12
  55. package/esm/DateTimePicker/shared.js +3 -3
  56. package/esm/DesktopDatePicker/DesktopDatePicker.js +3 -3
  57. package/esm/DesktopDateTimePicker/DesktopDateTimePicker.js +4 -4
  58. package/esm/DesktopTimePicker/DesktopTimePicker.js +4 -4
  59. package/esm/DigitalClock/DigitalClock.d.ts +1 -1
  60. package/esm/DigitalClock/DigitalClock.js +16 -16
  61. package/esm/LocalizationProvider/LocalizationProvider.d.ts +9 -3
  62. package/esm/LocalizationProvider/LocalizationProvider.js +27 -18
  63. package/esm/MobileDatePicker/MobileDatePicker.js +3 -3
  64. package/esm/MobileDateTimePicker/MobileDateTimePicker.js +4 -4
  65. package/esm/MobileTimePicker/MobileTimePicker.js +4 -4
  66. package/esm/MonthCalendar/MonthCalendar.js +20 -19
  67. package/esm/MultiSectionDigitalClock/MultiSectionDigitalClock.js +32 -32
  68. package/esm/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.d.ts +4 -4
  69. package/esm/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.js +7 -7
  70. package/esm/PickerDay2/PickerDay2.js +3 -3
  71. package/esm/PickersActionBar/PickersActionBar.d.ts +2 -2
  72. package/esm/PickersActionBar/PickersActionBar.js +2 -2
  73. package/esm/PickersCalendarHeader/PickersCalendarHeader.js +6 -7
  74. package/esm/PickersDay/PickersDay.js +3 -3
  75. package/esm/PickersDay/usePickerDayOwnerState.js +5 -5
  76. package/esm/PickersTextField/PickersFilledInput/pickersFilledInputClasses.d.ts +1 -0
  77. package/esm/PickersTextField/PickersInput/pickersInputClasses.d.ts +1 -0
  78. package/esm/PickersTextField/PickersInputBase/pickersInputBaseClasses.d.ts +2 -0
  79. package/esm/PickersTextField/PickersInputBase/pickersInputBaseClasses.js +1 -1
  80. package/esm/PickersTextField/PickersOutlinedInput/pickersOutlinedInputClasses.d.ts +1 -0
  81. package/esm/StaticDateTimePicker/StaticDateTimePicker.js +1 -1
  82. package/esm/StaticTimePicker/StaticTimePicker.js +1 -1
  83. package/esm/TimeClock/Clock.js +7 -8
  84. package/esm/TimeClock/ClockNumbers.d.ts +3 -3
  85. package/esm/TimeClock/ClockNumbers.js +5 -5
  86. package/esm/TimeClock/TimeClock.js +29 -29
  87. package/esm/TimeField/TimeField.js +1 -1
  88. package/esm/TimePicker/TimePicker.js +1 -1
  89. package/esm/TimePicker/TimePickerToolbar.js +6 -8
  90. package/esm/TimePicker/shared.js +3 -3
  91. package/esm/YearCalendar/YearCalendar.js +20 -19
  92. package/esm/hooks/index.d.ts +2 -1
  93. package/esm/hooks/index.js +2 -1
  94. package/esm/hooks/useParsedFormat.js +6 -6
  95. package/esm/hooks/usePickerAdapter.d.ts +7 -0
  96. package/esm/hooks/usePickerAdapter.js +20 -0
  97. package/esm/hooks/usePickerTranslations.js +1 -1
  98. package/esm/index.js +1 -1
  99. package/esm/internals/components/pickersToolbarClasses.d.ts +1 -1
  100. package/esm/internals/demo/DemoContainer.d.ts +2 -3
  101. package/esm/internals/demo/DemoContainer.js +3 -2
  102. package/esm/internals/hooks/date-helpers-hooks.js +16 -16
  103. package/esm/internals/hooks/useClockReferenceDate.d.ts +2 -2
  104. package/esm/internals/hooks/useClockReferenceDate.js +3 -3
  105. package/esm/internals/hooks/useControlledValue.js +8 -7
  106. package/esm/internals/hooks/useField/buildSectionsFromFormat.d.ts +1 -1
  107. package/esm/internals/hooks/useField/buildSectionsFromFormat.js +17 -17
  108. package/esm/internals/hooks/useField/useField.types.d.ts +2 -2
  109. package/esm/internals/hooks/useField/useField.utils.d.ts +10 -10
  110. package/esm/internals/hooks/useField/useField.utils.js +69 -69
  111. package/esm/internals/hooks/useField/useFieldCharacterEditing.js +11 -11
  112. package/esm/internals/hooks/useField/useFieldRootHandleKeyDown.js +7 -7
  113. package/esm/internals/hooks/useField/useFieldSectionContentProps.js +15 -16
  114. package/esm/internals/hooks/useField/useFieldState.js +22 -24
  115. package/esm/internals/hooks/usePicker/hooks/useValueAndOpenStates.js +6 -6
  116. package/esm/internals/hooks/usePicker/usePicker.js +5 -6
  117. package/esm/internals/hooks/useUtils.d.ts +1 -8
  118. package/esm/internals/hooks/useUtils.js +3 -19
  119. package/esm/internals/index.d.ts +2 -1
  120. package/esm/internals/index.js +2 -1
  121. package/esm/internals/models/manager.d.ts +14 -14
  122. package/esm/internals/models/props/time.d.ts +1 -1
  123. package/esm/internals/utils/date-time-utils.d.ts +1 -1
  124. package/esm/internals/utils/date-time-utils.js +5 -5
  125. package/esm/internals/utils/date-utils.d.ts +11 -11
  126. package/esm/internals/utils/date-utils.js +34 -34
  127. package/esm/internals/utils/getDefaultReferenceDate.d.ts +2 -2
  128. package/esm/internals/utils/getDefaultReferenceDate.js +16 -16
  129. package/esm/internals/utils/time-utils.d.ts +5 -5
  130. package/esm/internals/utils/time-utils.js +12 -12
  131. package/esm/internals/utils/valueManagers.js +4 -4
  132. package/esm/managers/useDateManager.js +12 -12
  133. package/esm/managers/useDateTimeManager.js +13 -13
  134. package/esm/managers/useTimeManager.js +9 -10
  135. package/esm/validation/useValidation.d.ts +2 -3
  136. package/esm/validation/useValidation.js +2 -2
  137. package/esm/validation/validateDate.js +6 -6
  138. package/esm/validation/validateTime.js +6 -6
  139. package/hooks/index.d.ts +2 -1
  140. package/hooks/index.js +8 -1
  141. package/hooks/useParsedFormat.js +6 -6
  142. package/hooks/usePickerAdapter.d.ts +7 -0
  143. package/hooks/usePickerAdapter.js +29 -0
  144. package/hooks/usePickerTranslations.js +2 -2
  145. package/index.js +1 -1
  146. package/internals/components/pickersToolbarClasses.d.ts +1 -1
  147. package/internals/demo/DemoContainer.d.ts +2 -3
  148. package/internals/demo/DemoContainer.js +3 -2
  149. package/internals/hooks/date-helpers-hooks.js +16 -16
  150. package/internals/hooks/useClockReferenceDate.d.ts +2 -2
  151. package/internals/hooks/useClockReferenceDate.js +3 -3
  152. package/internals/hooks/useControlledValue.js +7 -7
  153. package/internals/hooks/useField/buildSectionsFromFormat.d.ts +1 -1
  154. package/internals/hooks/useField/buildSectionsFromFormat.js +17 -17
  155. package/internals/hooks/useField/useField.types.d.ts +2 -2
  156. package/internals/hooks/useField/useField.utils.d.ts +10 -10
  157. package/internals/hooks/useField/useField.utils.js +69 -69
  158. package/internals/hooks/useField/useFieldCharacterEditing.js +11 -11
  159. package/internals/hooks/useField/useFieldRootHandleKeyDown.js +7 -7
  160. package/internals/hooks/useField/useFieldSectionContentProps.js +14 -15
  161. package/internals/hooks/useField/useFieldState.js +23 -25
  162. package/internals/hooks/usePicker/hooks/useValueAndOpenStates.js +6 -6
  163. package/internals/hooks/usePicker/usePicker.js +5 -6
  164. package/internals/hooks/useUtils.d.ts +1 -8
  165. package/internals/hooks/useUtils.js +5 -24
  166. package/internals/index.d.ts +2 -1
  167. package/internals/index.js +2 -7
  168. package/internals/models/manager.d.ts +14 -14
  169. package/internals/models/props/time.d.ts +1 -1
  170. package/internals/utils/date-time-utils.d.ts +1 -1
  171. package/internals/utils/date-time-utils.js +5 -5
  172. package/internals/utils/date-utils.d.ts +11 -11
  173. package/internals/utils/date-utils.js +34 -34
  174. package/internals/utils/getDefaultReferenceDate.d.ts +2 -2
  175. package/internals/utils/getDefaultReferenceDate.js +16 -16
  176. package/internals/utils/time-utils.d.ts +5 -5
  177. package/internals/utils/time-utils.js +12 -12
  178. package/internals/utils/valueManagers.js +4 -4
  179. package/managers/useDateManager.js +12 -12
  180. package/managers/useDateTimeManager.js +13 -13
  181. package/managers/useTimeManager.js +10 -11
  182. package/package.json +2 -2
  183. package/validation/useValidation.d.ts +2 -3
  184. package/validation/useValidation.js +2 -2
  185. package/validation/validateDate.js +6 -6
  186. package/validation/validateTime.js +6 -6
@@ -9,8 +9,8 @@ import PropTypes from 'prop-types';
9
9
  import { styled, useThemeProps } from '@mui/material/styles';
10
10
  import composeClasses from '@mui/utils/composeClasses';
11
11
  import useId from '@mui/utils/useId';
12
- import { usePickerTranslations } from "../hooks/usePickerTranslations.js";
13
- import { useUtils, useNow } from "../internals/hooks/useUtils.js";
12
+ import { usePickerAdapter, usePickerTranslations } from "../hooks/index.js";
13
+ import { useNow } from "../internals/hooks/useUtils.js";
14
14
  import { PickersArrowSwitcher } from "../internals/components/PickersArrowSwitcher/index.js";
15
15
  import { convertValueToMeridiem, createIsAfterIgnoreDatePart } from "../internals/utils/time-utils.js";
16
16
  import { useViews } from "../internals/hooks/useViews.js";
@@ -60,13 +60,13 @@ const TIME_CLOCK_DEFAULT_VIEWS = ['hours', 'minutes'];
60
60
  * - [TimeClock API](https://mui.com/x/api/date-pickers/time-clock/)
61
61
  */
62
62
  export const TimeClock = /*#__PURE__*/React.forwardRef(function TimeClock(inProps, ref) {
63
- const utils = useUtils();
63
+ const adapter = usePickerAdapter();
64
64
  const props = useThemeProps({
65
65
  props: inProps,
66
66
  name: 'MuiTimeClock'
67
67
  });
68
68
  const {
69
- ampm = utils.is12HourCycleInCurrentLocale(),
69
+ ampm = adapter.is12HourCycleInCurrentLocale(),
70
70
  ampmInClock = false,
71
71
  autoFocus,
72
72
  slots,
@@ -112,7 +112,7 @@ export const TimeClock = /*#__PURE__*/React.forwardRef(function TimeClock(inProp
112
112
  const valueOrReferenceDate = useClockReferenceDate({
113
113
  value,
114
114
  referenceDate: referenceDateProp,
115
- utils,
115
+ adapter,
116
116
  props,
117
117
  timezone
118
118
  });
@@ -142,7 +142,7 @@ export const TimeClock = /*#__PURE__*/React.forwardRef(function TimeClock(inProp
142
142
  handleMeridiemChange
143
143
  } = useMeridiemMode(valueOrReferenceDate, ampm, setValueAndGoToNextView);
144
144
  const isTimeDisabled = React.useCallback((rawValue, viewType) => {
145
- const isAfter = createIsAfterIgnoreDatePart(disableIgnoringDatePartForTimeValidation, utils);
145
+ const isAfter = createIsAfterIgnoreDatePart(disableIgnoringDatePartForTimeValidation, adapter);
146
146
  const shouldCheckPastEnd = viewType === 'hours' || viewType === 'minutes' && views.includes('seconds');
147
147
  const containsValidTime = ({
148
148
  start,
@@ -169,11 +169,11 @@ export const TimeClock = /*#__PURE__*/React.forwardRef(function TimeClock(inProp
169
169
  if (shouldDisableTime) {
170
170
  switch (viewType) {
171
171
  case 'hours':
172
- return !shouldDisableTime(utils.setHours(valueOrReferenceDate, timeValue), 'hours');
172
+ return !shouldDisableTime(adapter.setHours(valueOrReferenceDate, timeValue), 'hours');
173
173
  case 'minutes':
174
- return !shouldDisableTime(utils.setMinutes(valueOrReferenceDate, timeValue), 'minutes');
174
+ return !shouldDisableTime(adapter.setMinutes(valueOrReferenceDate, timeValue), 'minutes');
175
175
  case 'seconds':
176
- return !shouldDisableTime(utils.setSeconds(valueOrReferenceDate, timeValue), 'seconds');
176
+ return !shouldDisableTime(adapter.setSeconds(valueOrReferenceDate, timeValue), 'seconds');
177
177
  default:
178
178
  return false;
179
179
  }
@@ -184,12 +184,12 @@ export const TimeClock = /*#__PURE__*/React.forwardRef(function TimeClock(inProp
184
184
  case 'hours':
185
185
  {
186
186
  const valueWithMeridiem = convertValueToMeridiem(rawValue, meridiemMode, ampm);
187
- const dateWithNewHours = utils.setHours(valueOrReferenceDate, valueWithMeridiem);
188
- if (utils.getHours(dateWithNewHours) !== valueWithMeridiem) {
187
+ const dateWithNewHours = adapter.setHours(valueOrReferenceDate, valueWithMeridiem);
188
+ if (adapter.getHours(dateWithNewHours) !== valueWithMeridiem) {
189
189
  return true;
190
190
  }
191
- const start = utils.setSeconds(utils.setMinutes(dateWithNewHours, 0), 0);
192
- const end = utils.setSeconds(utils.setMinutes(dateWithNewHours, 59), 59);
191
+ const start = adapter.setSeconds(adapter.setMinutes(dateWithNewHours, 0), 0);
192
+ const end = adapter.setSeconds(adapter.setMinutes(dateWithNewHours, 59), 59);
193
193
  return !containsValidTime({
194
194
  start,
195
195
  end
@@ -197,9 +197,9 @@ export const TimeClock = /*#__PURE__*/React.forwardRef(function TimeClock(inProp
197
197
  }
198
198
  case 'minutes':
199
199
  {
200
- const dateWithNewMinutes = utils.setMinutes(valueOrReferenceDate, rawValue);
201
- const start = utils.setSeconds(dateWithNewMinutes, 0);
202
- const end = utils.setSeconds(dateWithNewMinutes, 59);
200
+ const dateWithNewMinutes = adapter.setMinutes(valueOrReferenceDate, rawValue);
201
+ const start = adapter.setSeconds(dateWithNewMinutes, 0);
202
+ const end = adapter.setSeconds(dateWithNewMinutes, 59);
203
203
  return !containsValidTime({
204
204
  start,
205
205
  end
@@ -207,7 +207,7 @@ export const TimeClock = /*#__PURE__*/React.forwardRef(function TimeClock(inProp
207
207
  }
208
208
  case 'seconds':
209
209
  {
210
- const dateWithNewSeconds = utils.setSeconds(valueOrReferenceDate, rawValue);
210
+ const dateWithNewSeconds = adapter.setSeconds(valueOrReferenceDate, rawValue);
211
211
  const start = dateWithNewSeconds;
212
212
  const end = dateWithNewSeconds;
213
213
  return !containsValidTime({
@@ -218,16 +218,16 @@ export const TimeClock = /*#__PURE__*/React.forwardRef(function TimeClock(inProp
218
218
  default:
219
219
  throw new Error('not supported');
220
220
  }
221
- }, [ampm, valueOrReferenceDate, disableIgnoringDatePartForTimeValidation, maxTime, meridiemMode, minTime, minutesStep, shouldDisableTime, utils, disableFuture, disablePast, now, views]);
221
+ }, [ampm, valueOrReferenceDate, disableIgnoringDatePartForTimeValidation, maxTime, meridiemMode, minTime, minutesStep, shouldDisableTime, adapter, disableFuture, disablePast, now, views]);
222
222
  const viewProps = React.useMemo(() => {
223
223
  switch (view) {
224
224
  case 'hours':
225
225
  {
226
226
  const handleHoursChange = (hourValue, isFinish) => {
227
227
  const valueWithMeridiem = convertValueToMeridiem(hourValue, meridiemMode, ampm);
228
- setValueAndGoToNextView(utils.setHours(valueOrReferenceDate, valueWithMeridiem), isFinish, 'hours');
228
+ setValueAndGoToNextView(adapter.setHours(valueOrReferenceDate, valueWithMeridiem), isFinish, 'hours');
229
229
  };
230
- const viewValue = utils.getHours(valueOrReferenceDate);
230
+ const viewValue = adapter.getHours(valueOrReferenceDate);
231
231
  let viewRange;
232
232
  if (ampm) {
233
233
  if (viewValue > 12) {
@@ -243,7 +243,7 @@ export const TimeClock = /*#__PURE__*/React.forwardRef(function TimeClock(inProp
243
243
  viewValue,
244
244
  children: getHourNumbers({
245
245
  value,
246
- utils,
246
+ adapter,
247
247
  ampm,
248
248
  onChange: handleHoursChange,
249
249
  getClockNumberText: translations.hoursClockNumberText,
@@ -255,15 +255,15 @@ export const TimeClock = /*#__PURE__*/React.forwardRef(function TimeClock(inProp
255
255
  }
256
256
  case 'minutes':
257
257
  {
258
- const minutesValue = utils.getMinutes(valueOrReferenceDate);
258
+ const minutesValue = adapter.getMinutes(valueOrReferenceDate);
259
259
  const handleMinutesChange = (minuteValue, isFinish) => {
260
- setValueAndGoToNextView(utils.setMinutes(valueOrReferenceDate, minuteValue), isFinish, 'minutes');
260
+ setValueAndGoToNextView(adapter.setMinutes(valueOrReferenceDate, minuteValue), isFinish, 'minutes');
261
261
  };
262
262
  return {
263
263
  viewValue: minutesValue,
264
264
  onChange: handleMinutesChange,
265
265
  children: getMinutesNumbers({
266
- utils,
266
+ adapter,
267
267
  value: minutesValue,
268
268
  onChange: handleMinutesChange,
269
269
  getClockNumberText: translations.minutesClockNumberText,
@@ -275,15 +275,15 @@ export const TimeClock = /*#__PURE__*/React.forwardRef(function TimeClock(inProp
275
275
  }
276
276
  case 'seconds':
277
277
  {
278
- const secondsValue = utils.getSeconds(valueOrReferenceDate);
278
+ const secondsValue = adapter.getSeconds(valueOrReferenceDate);
279
279
  const handleSecondsChange = (secondValue, isFinish) => {
280
- setValueAndGoToNextView(utils.setSeconds(valueOrReferenceDate, secondValue), isFinish, 'seconds');
280
+ setValueAndGoToNextView(adapter.setSeconds(valueOrReferenceDate, secondValue), isFinish, 'seconds');
281
281
  };
282
282
  return {
283
283
  viewValue: secondsValue,
284
284
  onChange: handleSecondsChange,
285
285
  children: getMinutesNumbers({
286
- utils,
286
+ adapter,
287
287
  value: secondsValue,
288
288
  onChange: handleSecondsChange,
289
289
  getClockNumberText: translations.secondsClockNumberText,
@@ -296,7 +296,7 @@ export const TimeClock = /*#__PURE__*/React.forwardRef(function TimeClock(inProp
296
296
  default:
297
297
  throw new Error('You must provide the type for ClockView');
298
298
  }
299
- }, [view, utils, value, ampm, translations.hoursClockNumberText, translations.minutesClockNumberText, translations.secondsClockNumberText, meridiemMode, setValueAndGoToNextView, valueOrReferenceDate, isTimeDisabled, selectedId, disabled]);
299
+ }, [view, adapter, value, ampm, translations.hoursClockNumberText, translations.minutesClockNumberText, translations.secondsClockNumberText, meridiemMode, setValueAndGoToNextView, valueOrReferenceDate, isTimeDisabled, selectedId, disabled]);
300
300
  const classes = useUtilityClasses(classesProp);
301
301
  return /*#__PURE__*/_jsxs(TimeClockRoot, _extends({
302
302
  ref: ref,
@@ -338,7 +338,7 @@ process.env.NODE_ENV !== "production" ? TimeClock.propTypes = {
338
338
  // ----------------------------------------------------------------------
339
339
  /**
340
340
  * 12h/24h view for hour selection clock.
341
- * @default utils.is12HourCycleInCurrentLocale()
341
+ * @default adapter.is12HourCycleInCurrentLocale()
342
342
  */
343
343
  ampm: PropTypes.bool,
344
344
  /**
@@ -51,7 +51,7 @@ process.env.NODE_ENV !== "production" ? TimeField.propTypes = {
51
51
  // ----------------------------------------------------------------------
52
52
  /**
53
53
  * 12h/24h view for hour selection clock.
54
- * @default utils.is12HourCycleInCurrentLocale()
54
+ * @default adapter.is12HourCycleInCurrentLocale()
55
55
  */
56
56
  ampm: PropTypes.bool,
57
57
  /**
@@ -53,7 +53,7 @@ process.env.NODE_ENV !== "production" ? TimePicker.propTypes = {
53
53
  // ----------------------------------------------------------------------
54
54
  /**
55
55
  * 12h/24h view for hour selection clock.
56
- * @default utils.is12HourCycleInCurrentLocale()
56
+ * @default adapter.is12HourCycleInCurrentLocale()
57
57
  */
58
58
  ampm: PropTypes.bool,
59
59
  /**
@@ -12,12 +12,10 @@ import { PickersToolbarText } from "../internals/components/PickersToolbarText.j
12
12
  import { PickersToolbarButton } from "../internals/components/PickersToolbarButton.js";
13
13
  import { PickersToolbar } from "../internals/components/PickersToolbar.js";
14
14
  import { arrayIncludes } from "../internals/utils/utils.js";
15
- import { usePickerTranslations } from "../hooks/usePickerTranslations.js";
16
- import { useUtils } from "../internals/hooks/useUtils.js";
15
+ import { usePickerAdapter, usePickerContext, usePickerTranslations } from "../hooks/index.js";
17
16
  import { useMeridiemMode } from "../internals/hooks/date-helpers-hooks.js";
18
17
  import { getTimePickerToolbarUtilityClass, timePickerToolbarClasses } from "./timePickerToolbarClasses.js";
19
18
  import { formatMeridiem } from "../internals/utils/date-utils.js";
20
- import { usePickerContext } from "../hooks/index.js";
21
19
  import { useToolbarOwnerState } from "../internals/hooks/useToolbarOwnerState.js";
22
20
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
23
21
  const useUtilityClasses = (classes, ownerState) => {
@@ -124,7 +122,7 @@ function TimePickerToolbar(inProps) {
124
122
  classes: classesProp
125
123
  } = props,
126
124
  other = _objectWithoutPropertiesLoose(props, _excluded);
127
- const utils = useUtils();
125
+ const adapter = usePickerAdapter();
128
126
  const translations = usePickerTranslations();
129
127
  const ownerState = useToolbarOwnerState();
130
128
  const classes = useUtilityClasses(classesProp, ownerState);
@@ -145,10 +143,10 @@ function TimePickerToolbar(inProps) {
145
143
  changeImportance: 'set'
146
144
  }));
147
145
  const formatSection = format => {
148
- if (!utils.isValid(value)) {
146
+ if (!adapter.isValid(value)) {
149
147
  return '--';
150
148
  }
151
- return utils.format(value, format);
149
+ return adapter.format(value, format);
152
150
  };
153
151
  const separator = /*#__PURE__*/_jsx(TimePickerToolbarSeparator, {
154
152
  tabIndex: -1,
@@ -192,7 +190,7 @@ function TimePickerToolbar(inProps) {
192
190
  variant: "subtitle2",
193
191
  selected: meridiemMode === 'am',
194
192
  typographyClassName: classes.ampmLabel,
195
- value: formatMeridiem(utils, 'am'),
193
+ value: formatMeridiem(adapter, 'am'),
196
194
  onClick: readOnly ? undefined : () => handleMeridiemChange('am'),
197
195
  disabled: disabled
198
196
  }), /*#__PURE__*/_jsx(PickersToolbarButton, {
@@ -200,7 +198,7 @@ function TimePickerToolbar(inProps) {
200
198
  variant: "subtitle2",
201
199
  selected: meridiemMode === 'pm',
202
200
  typographyClassName: classes.ampmLabel,
203
- value: formatMeridiem(utils, 'pm'),
201
+ value: formatMeridiem(adapter, 'pm'),
204
202
  onClick: readOnly ? undefined : () => handleMeridiemChange('pm'),
205
203
  disabled: disabled
206
204
  })]
@@ -1,18 +1,18 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
3
  import { useThemeProps } from '@mui/material/styles';
4
- import { useUtils } from "../internals/hooks/useUtils.js";
5
4
  import { TimePickerToolbar } from "./TimePickerToolbar.js";
6
5
  import { applyDefaultViewProps } from "../internals/utils/views.js";
7
6
  import { useApplyDefaultValuesToTimeValidationProps } from "../managers/useTimeManager.js";
7
+ import { usePickerAdapter } from "../hooks/usePickerAdapter.js";
8
8
  export function useTimePickerDefaultizedProps(props, name) {
9
- const utils = useUtils();
9
+ const adapter = usePickerAdapter();
10
10
  const themeProps = useThemeProps({
11
11
  props,
12
12
  name
13
13
  });
14
14
  const validationProps = useApplyDefaultValuesToTimeValidationProps(themeProps);
15
- const ampm = themeProps.ampm ?? utils.is12HourCycleInCurrentLocale();
15
+ const ampm = themeProps.ampm ?? adapter.is12HourCycleInCurrentLocale();
16
16
  const localeText = React.useMemo(() => {
17
17
  if (themeProps.localeText?.toolbarTitle == null) {
18
18
  return themeProps.localeText;
@@ -14,7 +14,7 @@ import composeClasses from '@mui/utils/composeClasses';
14
14
  import useControlled from '@mui/utils/useControlled';
15
15
  import useEventCallback from '@mui/utils/useEventCallback';
16
16
  import { YearCalendarButton } from "./YearCalendarButton.js";
17
- import { useUtils, useNow } from "../internals/hooks/useUtils.js";
17
+ import { useNow } from "../internals/hooks/useUtils.js";
18
18
  import { getYearCalendarUtilityClass } from "./yearCalendarClasses.js";
19
19
  import { singleItemValueManager } from "../internals/utils/valueManagers.js";
20
20
  import { SECTION_TYPE_GRANULARITY } from "../internals/utils/getDefaultReferenceDate.js";
@@ -22,6 +22,7 @@ import { useControlledValue } from "../internals/hooks/useControlledValue.js";
22
22
  import { DIALOG_WIDTH, MAX_CALENDAR_HEIGHT } from "../internals/constants/dimensions.js";
23
23
  import { usePickerPrivateContext } from "../internals/hooks/usePickerPrivateContext.js";
24
24
  import { useApplyDefaultValuesToDateValidationProps } from "../managers/useDateManager.js";
25
+ import { usePickerAdapter } from "../hooks/usePickerAdapter.js";
25
26
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
26
27
  const useUtilityClasses = classes => {
27
28
  const slots = {
@@ -133,13 +134,13 @@ export const YearCalendar = /*#__PURE__*/React.forwardRef(function YearCalendar(
133
134
  });
134
135
  const now = useNow(timezone);
135
136
  const isRtl = useRtl();
136
- const utils = useUtils();
137
+ const adapter = usePickerAdapter();
137
138
  const {
138
139
  ownerState
139
140
  } = usePickerPrivateContext();
140
141
  const referenceDate = React.useMemo(() => singleItemValueManager.getInitialReferenceValue({
141
142
  value,
142
- utils,
143
+ adapter,
143
144
  props,
144
145
  timezone,
145
146
  referenceDate: referenceDateProp,
@@ -147,14 +148,14 @@ export const YearCalendar = /*#__PURE__*/React.forwardRef(function YearCalendar(
147
148
  }), [] // eslint-disable-line react-hooks/exhaustive-deps
148
149
  );
149
150
  const classes = useUtilityClasses(classesProp);
150
- const todayYear = React.useMemo(() => utils.getYear(now), [utils, now]);
151
+ const todayYear = React.useMemo(() => adapter.getYear(now), [adapter, now]);
151
152
  const selectedYear = React.useMemo(() => {
152
153
  if (value != null) {
153
- return utils.getYear(value);
154
+ return adapter.getYear(value);
154
155
  }
155
156
  return null;
156
- }, [value, utils]);
157
- const [focusedYear, setFocusedYear] = React.useState(() => selectedYear || utils.getYear(referenceDate));
157
+ }, [value, adapter]);
158
+ const [focusedYear, setFocusedYear] = React.useState(() => selectedYear || adapter.getYear(referenceDate));
158
159
  const [internalHasFocus, setInternalHasFocus] = useControlled({
159
160
  name: 'YearCalendar',
160
161
  state: 'hasFocus',
@@ -168,33 +169,33 @@ export const YearCalendar = /*#__PURE__*/React.forwardRef(function YearCalendar(
168
169
  }
169
170
  });
170
171
  const isYearDisabled = React.useCallback(dateToValidate => {
171
- if (disablePast && utils.isBeforeYear(dateToValidate, now)) {
172
+ if (disablePast && adapter.isBeforeYear(dateToValidate, now)) {
172
173
  return true;
173
174
  }
174
- if (disableFuture && utils.isAfterYear(dateToValidate, now)) {
175
+ if (disableFuture && adapter.isAfterYear(dateToValidate, now)) {
175
176
  return true;
176
177
  }
177
- if (minDate && utils.isBeforeYear(dateToValidate, minDate)) {
178
+ if (minDate && adapter.isBeforeYear(dateToValidate, minDate)) {
178
179
  return true;
179
180
  }
180
- if (maxDate && utils.isAfterYear(dateToValidate, maxDate)) {
181
+ if (maxDate && adapter.isAfterYear(dateToValidate, maxDate)) {
181
182
  return true;
182
183
  }
183
184
  if (!shouldDisableYear) {
184
185
  return false;
185
186
  }
186
- const yearToValidate = utils.startOfYear(dateToValidate);
187
+ const yearToValidate = adapter.startOfYear(dateToValidate);
187
188
  return shouldDisableYear(yearToValidate);
188
- }, [disableFuture, disablePast, maxDate, minDate, now, shouldDisableYear, utils]);
189
+ }, [disableFuture, disablePast, maxDate, minDate, now, shouldDisableYear, adapter]);
189
190
  const handleYearSelection = useEventCallback((event, year) => {
190
191
  if (readOnly) {
191
192
  return;
192
193
  }
193
- const newDate = utils.setYear(value ?? referenceDate, year);
194
+ const newDate = adapter.setYear(value ?? referenceDate, year);
194
195
  handleValueChange(newDate);
195
196
  });
196
197
  const focusYear = useEventCallback(year => {
197
- if (!isYearDisabled(utils.setYear(value ?? referenceDate, year))) {
198
+ if (!isYearDisabled(adapter.setYear(value ?? referenceDate, year))) {
198
199
  setFocusedYear(year);
199
200
  changeHasFocus(true);
200
201
  onYearFocus?.(year);
@@ -258,7 +259,7 @@ export const YearCalendar = /*#__PURE__*/React.forwardRef(function YearCalendar(
258
259
  }
259
260
  scrollerRef.current.scrollTop = elementBottom - clientHeight / 2 - offsetHeight / 2;
260
261
  }, [autoFocus]);
261
- const yearRange = utils.getYearRange([minDate, maxDate]);
262
+ const yearRange = adapter.getYearRange([minDate, maxDate]);
262
263
  if (yearsOrder === 'desc') {
263
264
  yearRange.reverse();
264
265
  }
@@ -275,7 +276,7 @@ export const YearCalendar = /*#__PURE__*/React.forwardRef(function YearCalendar(
275
276
  yearsPerRow: yearsPerRow
276
277
  }, other, {
277
278
  children: [yearRange.map(year => {
278
- const yearNumber = utils.getYear(year);
279
+ const yearNumber = adapter.getYear(year);
279
280
  const isSelected = yearNumber === selectedYear;
280
281
  const isDisabled = disabled || isYearDisabled(year);
281
282
  return /*#__PURE__*/_jsx(YearCalendarButton, {
@@ -292,8 +293,8 @@ export const YearCalendar = /*#__PURE__*/React.forwardRef(function YearCalendar(
292
293
  slots: slots,
293
294
  slotProps: slotProps,
294
295
  classes: classesProp,
295
- children: utils.format(year, 'year')
296
- }, utils.format(year, 'year'));
296
+ children: adapter.format(year, 'year')
297
+ }, adapter.format(year, 'year'));
297
298
  }), Array.from({
298
299
  length: fillerAmount
299
300
  }, (_, index) => /*#__PURE__*/_jsx(YearCalendarButtonFiller, {}, index))]
@@ -3,4 +3,5 @@ export { useSplitFieldProps } from "./useSplitFieldProps.js";
3
3
  export { useParsedFormat } from "./useParsedFormat.js";
4
4
  export { usePickerContext } from "./usePickerContext.js";
5
5
  export { usePickerActionsContext } from "./usePickerActionsContext.js";
6
- export { useIsValidValue } from "./useIsValidValue.js";
6
+ export { useIsValidValue } from "./useIsValidValue.js";
7
+ export { usePickerAdapter } from "./usePickerAdapter.js";
@@ -3,4 +3,5 @@ export { useSplitFieldProps } from "./useSplitFieldProps.js";
3
3
  export { useParsedFormat } from "./useParsedFormat.js";
4
4
  export { usePickerContext } from "./usePickerContext.js";
5
5
  export { usePickerActionsContext } from "./usePickerActionsContext.js";
6
- export { useIsValidValue } from "./useIsValidValue.js";
6
+ export { useIsValidValue } from "./useIsValidValue.js";
7
+ export { usePickerAdapter } from "./usePickerAdapter.js";
@@ -2,7 +2,7 @@
2
2
 
3
3
  import * as React from 'react';
4
4
  import { useRtl } from '@mui/system/RtlProvider';
5
- import { useUtils } from "../internals/hooks/useUtils.js";
5
+ import { usePickerAdapter } from "./usePickerAdapter.js";
6
6
  import { buildSectionsFromFormat } from "../internals/hooks/useField/buildSectionsFromFormat.js";
7
7
  import { getLocalizedDigits } from "../internals/hooks/useField/useField.utils.js";
8
8
  import { usePickerTranslations } from "./usePickerTranslations.js";
@@ -16,16 +16,16 @@ import { useNullablePickerContext } from "../internals/hooks/useNullablePickerCo
16
16
  */
17
17
  export const useParsedFormat = (parameters = {}) => {
18
18
  const pickerContext = useNullablePickerContext();
19
- const utils = useUtils();
19
+ const adapter = usePickerAdapter();
20
20
  const isRtl = useRtl();
21
21
  const translations = usePickerTranslations();
22
- const localizedDigits = React.useMemo(() => getLocalizedDigits(utils), [utils]);
22
+ const localizedDigits = React.useMemo(() => getLocalizedDigits(adapter), [adapter]);
23
23
  const {
24
- format = pickerContext?.fieldFormat ?? utils.formats.fullDate
24
+ format = pickerContext?.fieldFormat ?? adapter.formats.fullDate
25
25
  } = parameters;
26
26
  return React.useMemo(() => {
27
27
  const sections = buildSectionsFromFormat({
28
- utils,
28
+ adapter,
29
29
  format,
30
30
  formatDensity: 'dense',
31
31
  isRtl,
@@ -37,5 +37,5 @@ export const useParsedFormat = (parameters = {}) => {
37
37
  enableAccessibleFieldDOMStructure: false
38
38
  });
39
39
  return sections.map(section => `${section.startSeparator}${section.placeholder}${section.endSeparator}`).join('');
40
- }, [utils, isRtl, translations, localizedDigits, format]);
40
+ }, [adapter, isRtl, translations, localizedDigits, format]);
41
41
  };
@@ -0,0 +1,7 @@
1
+ import { PickersAdapterContextValue } from "../LocalizationProvider/LocalizationProvider.js";
2
+ import { PickersLocaleText } from "../locales/utils/pickersLocaleTextApi.js";
3
+ export declare const useLocalizationContext: () => UseLocalizationContextReturnValue;
4
+ export interface UseLocalizationContextReturnValue extends Omit<PickersAdapterContextValue, 'localeText'> {
5
+ localeText: PickersLocaleText;
6
+ }
7
+ export declare const usePickerAdapter: () => import("@mui/x-date-pickers/models").MuiPickersAdapter<any>;
@@ -0,0 +1,20 @@
1
+ 'use client';
2
+
3
+ import _extends from "@babel/runtime/helpers/esm/extends";
4
+ import * as React from 'react';
5
+ import { DEFAULT_LOCALE } from "../locales/enUS.js";
6
+ import { PickerAdapterContext } from "../LocalizationProvider/LocalizationProvider.js";
7
+ export const useLocalizationContext = () => {
8
+ const localization = React.useContext(PickerAdapterContext);
9
+ if (localization === null) {
10
+ throw new Error(['MUI X: Can not find the date and time pickers localization context.', 'It looks like you forgot to wrap your component in LocalizationProvider.', 'This can also happen if you are bundling multiple versions of the `@mui/x-date-pickers` package'].join('\n'));
11
+ }
12
+ if (localization.adapter === null) {
13
+ throw new Error(['MUI X: Can not find the date and time pickers adapter from its localization context.', 'It looks like you forgot to pass a `dateAdapter` to your LocalizationProvider.'].join('\n'));
14
+ }
15
+ const localeText = React.useMemo(() => _extends({}, DEFAULT_LOCALE, localization.localeText), [localization.localeText]);
16
+ return React.useMemo(() => _extends({}, localization, {
17
+ localeText
18
+ }), [localization, localeText]);
19
+ };
20
+ export const usePickerAdapter = () => useLocalizationContext().adapter;
@@ -1,4 +1,4 @@
1
1
  'use client';
2
2
 
3
- import { useLocalizationContext } from "../internals/hooks/useUtils.js";
3
+ import { useLocalizationContext } from "./usePickerAdapter.js";
4
4
  export const usePickerTranslations = () => useLocalizationContext().localeText;
package/esm/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-date-pickers v8.5.2
2
+ * @mui/x-date-pickers v8.6.0
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -8,4 +8,4 @@ export interface PickersToolbarClasses {
8
8
  }
9
9
  export type PickersToolbarClassKey = keyof PickersToolbarClasses;
10
10
  export declare function getPickersToolbarUtilityClass(slot: string): string;
11
- export declare const pickersToolbarClasses: Record<"root" | "content" | "title", string>;
11
+ export declare const pickersToolbarClasses: Record<"root" | "title" | "content", string>;
@@ -1,15 +1,14 @@
1
1
  import * as React from 'react';
2
+ import { StackProps } from '@mui/material/Stack';
2
3
  import { SxProps, Theme } from '@mui/material/styles';
3
4
  interface DemoGridProps {
4
5
  children: React.ReactNode;
5
6
  components: string[];
6
7
  sx?: SxProps<Theme>;
7
8
  }
8
- interface DemoItemProps {
9
+ interface DemoItemProps extends Omit<StackProps, 'component'> {
9
10
  label?: React.ReactNode;
10
11
  component?: string;
11
- children: React.ReactNode;
12
- sx?: SxProps<Theme>;
13
12
  }
14
13
  /**
15
14
  * WARNING: This is an internal component used in documentation to achieve a desired layout.
@@ -41,7 +41,8 @@ export function DemoItem(props) {
41
41
  label,
42
42
  children,
43
43
  component,
44
- sx: sxProp
44
+ sx: sxProp,
45
+ alignItems = 'stretch'
45
46
  } = props;
46
47
  let spacing;
47
48
  let sx = sxProp;
@@ -57,7 +58,7 @@ export function DemoItem(props) {
57
58
  }
58
59
  return /*#__PURE__*/_jsxs(Stack, {
59
60
  direction: "column",
60
- alignItems: "stretch",
61
+ alignItems: alignItems,
61
62
  spacing: spacing,
62
63
  sx: sx,
63
64
  children: [label && /*#__PURE__*/_jsx(Typography, {
@@ -1,38 +1,38 @@
1
1
  import * as React from 'react';
2
- import { useUtils } from "./useUtils.js";
3
2
  import { getMeridiem, convertToMeridiem } from "../utils/time-utils.js";
3
+ import { usePickerAdapter } from "../../hooks/usePickerAdapter.js";
4
4
  export function useNextMonthDisabled(month, {
5
5
  disableFuture,
6
6
  maxDate,
7
7
  timezone
8
8
  }) {
9
- const utils = useUtils();
9
+ const adapter = usePickerAdapter();
10
10
  return React.useMemo(() => {
11
- const now = utils.date(undefined, timezone);
12
- const lastEnabledMonth = utils.startOfMonth(disableFuture && utils.isBefore(now, maxDate) ? now : maxDate);
13
- return !utils.isAfter(lastEnabledMonth, month);
14
- }, [disableFuture, maxDate, month, utils, timezone]);
11
+ const now = adapter.date(undefined, timezone);
12
+ const lastEnabledMonth = adapter.startOfMonth(disableFuture && adapter.isBefore(now, maxDate) ? now : maxDate);
13
+ return !adapter.isAfter(lastEnabledMonth, month);
14
+ }, [disableFuture, maxDate, month, adapter, timezone]);
15
15
  }
16
16
  export function usePreviousMonthDisabled(month, {
17
17
  disablePast,
18
18
  minDate,
19
19
  timezone
20
20
  }) {
21
- const utils = useUtils();
21
+ const adapter = usePickerAdapter();
22
22
  return React.useMemo(() => {
23
- const now = utils.date(undefined, timezone);
24
- const firstEnabledMonth = utils.startOfMonth(disablePast && utils.isAfter(now, minDate) ? now : minDate);
25
- return !utils.isBefore(firstEnabledMonth, month);
26
- }, [disablePast, minDate, month, utils, timezone]);
23
+ const now = adapter.date(undefined, timezone);
24
+ const firstEnabledMonth = adapter.startOfMonth(disablePast && adapter.isAfter(now, minDate) ? now : minDate);
25
+ return !adapter.isBefore(firstEnabledMonth, month);
26
+ }, [disablePast, minDate, month, adapter, timezone]);
27
27
  }
28
28
  export function useMeridiemMode(date, ampm, onChange, selectionState) {
29
- const utils = useUtils();
30
- const cleanDate = React.useMemo(() => !utils.isValid(date) ? null : date, [utils, date]);
31
- const meridiemMode = getMeridiem(cleanDate, utils);
29
+ const adapter = usePickerAdapter();
30
+ const cleanDate = React.useMemo(() => !adapter.isValid(date) ? null : date, [adapter, date]);
31
+ const meridiemMode = getMeridiem(cleanDate, adapter);
32
32
  const handleMeridiemChange = React.useCallback(mode => {
33
- const timeWithMeridiem = cleanDate == null ? null : convertToMeridiem(cleanDate, mode, Boolean(ampm), utils);
33
+ const timeWithMeridiem = cleanDate == null ? null : convertToMeridiem(cleanDate, mode, Boolean(ampm), adapter);
34
34
  onChange(timeWithMeridiem, selectionState ?? 'partial');
35
- }, [ampm, cleanDate, onChange, selectionState, utils]);
35
+ }, [ampm, cleanDate, onChange, selectionState, adapter]);
36
36
  return {
37
37
  meridiemMode,
38
38
  handleMeridiemChange
@@ -3,13 +3,13 @@ import { PickerValue } from "../models/index.js";
3
3
  export declare const useClockReferenceDate: <TProps extends {}>({
4
4
  value,
5
5
  referenceDate: referenceDateProp,
6
- utils,
6
+ adapter,
7
7
  props,
8
8
  timezone
9
9
  }: {
10
10
  value: PickerValue;
11
11
  referenceDate: PickerValidDate | undefined;
12
- utils: MuiPickersAdapter;
12
+ adapter: MuiPickersAdapter;
13
13
  props: TProps;
14
14
  timezone: PickersTimezone;
15
15
  }) => PickerValidDate;
@@ -5,18 +5,18 @@ import { SECTION_TYPE_GRANULARITY } from "../utils/getDefaultReferenceDate.js";
5
5
  export const useClockReferenceDate = ({
6
6
  value,
7
7
  referenceDate: referenceDateProp,
8
- utils,
8
+ adapter,
9
9
  props,
10
10
  timezone
11
11
  }) => {
12
12
  const referenceDate = React.useMemo(() => singleItemValueManager.getInitialReferenceValue({
13
13
  value,
14
- utils,
14
+ adapter,
15
15
  props,
16
16
  referenceDate: referenceDateProp,
17
17
  granularity: SECTION_TYPE_GRANULARITY.day,
18
18
  timezone,
19
- getTodayDate: () => getTodayDate(utils, timezone, 'date')
19
+ getTodayDate: () => getTodayDate(adapter, timezone, 'date')
20
20
  }),
21
21
  // We only want to compute the reference date on mount.
22
22
  [] // eslint-disable-line react-hooks/exhaustive-deps