@mui/x-date-pickers 8.0.0-alpha.0 → 8.0.0-alpha.2

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 (223) hide show
  1. package/AdapterMoment/AdapterMoment.js +10 -0
  2. package/CHANGELOG.md +651 -6
  3. package/DateCalendar/DateCalendar.js +1 -0
  4. package/DateCalendar/DateCalendar.types.d.ts +2 -1
  5. package/DateCalendar/PickersFadeTransitionGroup.js +4 -6
  6. package/DateCalendar/PickersSlideTransition.js +12 -5
  7. package/DateCalendar/useCalendarState.d.ts +6 -4
  8. package/DateField/DateField.js +5 -4
  9. package/DateField/DateField.types.d.ts +10 -9
  10. package/DatePicker/DatePicker.types.d.ts +3 -3
  11. package/DatePicker/DatePickerToolbar.d.ts +3 -2
  12. package/DatePicker/DatePickerToolbar.js +0 -12
  13. package/DatePicker/shared.d.ts +6 -5
  14. package/DateTimeField/DateTimeField.js +5 -4
  15. package/DateTimeField/DateTimeField.types.d.ts +10 -10
  16. package/DateTimePicker/DateTimePicker.types.d.ts +3 -3
  17. package/DateTimePicker/DateTimePickerTabs.js +8 -6
  18. package/DateTimePicker/DateTimePickerToolbar.d.ts +3 -4
  19. package/DateTimePicker/DateTimePickerToolbar.js +6 -15
  20. package/DateTimePicker/shared.d.ts +6 -6
  21. package/DayCalendarSkeleton/DayCalendarSkeleton.js +10 -19
  22. package/DesktopDateTimePicker/DesktopDateTimePickerLayout.d.ts +2 -1
  23. package/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +10 -33
  24. package/DigitalClock/DigitalClock.js +1 -0
  25. package/MonthCalendar/MonthCalendar.js +1 -0
  26. package/MultiSectionDigitalClock/MultiSectionDigitalClock.js +1 -0
  27. package/MultiSectionDigitalClock/MultiSectionDigitalClock.types.d.ts +6 -6
  28. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.d.ts +4 -4
  29. package/PickersCalendarHeader/PickersCalendarHeader.js +8 -7
  30. package/PickersCalendarHeader/PickersCalendarHeader.types.d.ts +3 -4
  31. package/PickersLayout/PickersLayout.d.ts +7 -5
  32. package/PickersLayout/PickersLayout.js +22 -39
  33. package/PickersLayout/PickersLayout.types.d.ts +14 -15
  34. package/PickersLayout/usePickerLayout.d.ts +5 -4
  35. package/PickersLayout/usePickerLayout.js +20 -17
  36. package/PickersShortcuts/PickersShortcuts.d.ts +7 -6
  37. package/PickersTextField/PickersInputBase/PickersInputBase.js +10 -9
  38. package/PickersTextField/PickersTextField.js +2 -2
  39. package/README.md +9 -6
  40. package/TimeClock/Clock.js +1 -0
  41. package/TimeClock/TimeClock.js +1 -0
  42. package/TimeField/TimeField.js +5 -4
  43. package/TimeField/TimeField.types.d.ts +10 -10
  44. package/TimePicker/TimePicker.types.d.ts +3 -3
  45. package/TimePicker/TimePickerToolbar.d.ts +2 -3
  46. package/TimePicker/TimePickerToolbar.js +6 -15
  47. package/TimePicker/shared.d.ts +6 -6
  48. package/YearCalendar/YearCalendar.js +1 -0
  49. package/hooks/useParsedFormat.d.ts +2 -2
  50. package/hooks/useParsedFormat.js +1 -1
  51. package/hooks/useSplitFieldProps.d.ts +3 -3
  52. package/index.js +1 -1
  53. package/internals/components/PickerProvider.d.ts +26 -0
  54. package/internals/components/PickerProvider.js +3 -1
  55. package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +11 -10
  56. package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.types.d.ts +11 -8
  57. package/internals/components/PickersToolbar.d.ts +3 -3
  58. package/internals/components/PickersToolbar.js +2 -4
  59. package/internals/hooks/useClockReferenceDate.d.ts +2 -1
  60. package/internals/hooks/useDesktopPicker/useDesktopPicker.js +1 -1
  61. package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +14 -14
  62. package/internals/hooks/useField/useField.d.ts +3 -3
  63. package/internals/hooks/useField/useField.types.d.ts +46 -46
  64. package/internals/hooks/useField/useField.utils.d.ts +4 -3
  65. package/internals/hooks/useField/useFieldCharacterEditing.d.ts +6 -5
  66. package/internals/hooks/useField/useFieldState.d.ts +9 -8
  67. package/internals/hooks/useField/useFieldState.js +1 -1
  68. package/internals/hooks/useField/useFieldV6TextField.d.ts +4 -3
  69. package/internals/hooks/useField/useFieldV7TextField.js +2 -1
  70. package/internals/hooks/useFieldOwnerState.d.ts +6 -0
  71. package/internals/hooks/useFieldOwnerState.js +12 -0
  72. package/internals/hooks/useMobilePicker/useMobilePicker.js +1 -1
  73. package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +11 -11
  74. package/internals/hooks/usePicker/usePicker.d.ts +3 -3
  75. package/internals/hooks/usePicker/usePicker.js +10 -19
  76. package/internals/hooks/usePicker/usePicker.types.d.ts +8 -8
  77. package/internals/hooks/usePicker/usePickerProvider.d.ts +21 -6
  78. package/internals/hooks/usePicker/usePickerProvider.js +61 -5
  79. package/internals/hooks/usePicker/usePickerValue.d.ts +3 -2
  80. package/internals/hooks/usePicker/usePickerValue.js +18 -7
  81. package/internals/hooks/usePicker/usePickerValue.types.d.ts +32 -30
  82. package/internals/hooks/usePicker/usePickerViews.d.ts +11 -10
  83. package/internals/hooks/usePicker/usePickerViews.js +1 -0
  84. package/internals/hooks/useStaticPicker/useStaticPicker.js +1 -1
  85. package/internals/hooks/useStaticPicker/useStaticPicker.types.d.ts +5 -6
  86. package/internals/hooks/useValueWithTimezone.d.ts +20 -15
  87. package/internals/hooks/useValueWithTimezone.js +13 -1
  88. package/internals/hooks/useViews.d.ts +5 -5
  89. package/internals/index.d.ts +5 -3
  90. package/internals/index.js +1 -0
  91. package/internals/models/common.d.ts +2 -1
  92. package/internals/models/fields.d.ts +6 -1
  93. package/internals/models/pickers.d.ts +1 -0
  94. package/internals/models/pickers.js +1 -0
  95. package/internals/models/props/basePickerProps.d.ts +4 -3
  96. package/internals/models/props/time.d.ts +2 -1
  97. package/internals/models/props/toolbar.d.ts +2 -2
  98. package/internals/models/value.d.ts +9 -0
  99. package/internals/utils/date-utils.d.ts +3 -3
  100. package/internals/utils/valueManagers.d.ts +4 -3
  101. package/locales/nlNL.js +7 -7
  102. package/models/adapters.d.ts +4 -4
  103. package/models/common.d.ts +1 -0
  104. package/models/fields.d.ts +19 -6
  105. package/models/pickers.d.ts +18 -0
  106. package/models/validation.d.ts +2 -1
  107. package/modern/AdapterMoment/AdapterMoment.js +10 -0
  108. package/modern/DateCalendar/DateCalendar.js +1 -0
  109. package/modern/DateCalendar/PickersFadeTransitionGroup.js +4 -6
  110. package/modern/DateCalendar/PickersSlideTransition.js +12 -5
  111. package/modern/DateField/DateField.js +5 -4
  112. package/modern/DatePicker/DatePickerToolbar.js +0 -12
  113. package/modern/DateTimeField/DateTimeField.js +5 -4
  114. package/modern/DateTimePicker/DateTimePickerTabs.js +8 -6
  115. package/modern/DateTimePicker/DateTimePickerToolbar.js +6 -15
  116. package/modern/DayCalendarSkeleton/DayCalendarSkeleton.js +10 -19
  117. package/modern/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +10 -33
  118. package/modern/DigitalClock/DigitalClock.js +1 -0
  119. package/modern/MonthCalendar/MonthCalendar.js +1 -0
  120. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClock.js +1 -0
  121. package/modern/PickersCalendarHeader/PickersCalendarHeader.js +8 -7
  122. package/modern/PickersLayout/PickersLayout.js +22 -39
  123. package/modern/PickersLayout/usePickerLayout.js +20 -17
  124. package/modern/PickersTextField/PickersInputBase/PickersInputBase.js +10 -9
  125. package/modern/PickersTextField/PickersTextField.js +2 -2
  126. package/modern/TimeClock/Clock.js +1 -0
  127. package/modern/TimeClock/TimeClock.js +1 -0
  128. package/modern/TimeField/TimeField.js +5 -4
  129. package/modern/TimePicker/TimePickerToolbar.js +6 -15
  130. package/modern/YearCalendar/YearCalendar.js +1 -0
  131. package/modern/hooks/useParsedFormat.js +1 -1
  132. package/modern/index.js +1 -1
  133. package/modern/internals/components/PickerProvider.js +3 -1
  134. package/modern/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +11 -10
  135. package/modern/internals/components/PickersToolbar.js +2 -4
  136. package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.js +1 -1
  137. package/modern/internals/hooks/useField/useFieldState.js +1 -1
  138. package/modern/internals/hooks/useField/useFieldV7TextField.js +2 -1
  139. package/modern/internals/hooks/useFieldOwnerState.js +12 -0
  140. package/modern/internals/hooks/useMobilePicker/useMobilePicker.js +1 -1
  141. package/modern/internals/hooks/usePicker/usePicker.js +10 -19
  142. package/modern/internals/hooks/usePicker/usePickerProvider.js +61 -5
  143. package/modern/internals/hooks/usePicker/usePickerValue.js +18 -7
  144. package/modern/internals/hooks/usePicker/usePickerViews.js +1 -0
  145. package/modern/internals/hooks/useStaticPicker/useStaticPicker.js +1 -1
  146. package/modern/internals/hooks/useValueWithTimezone.js +13 -1
  147. package/modern/internals/index.js +1 -0
  148. package/modern/internals/models/pickers.js +1 -0
  149. package/modern/locales/nlNL.js +7 -7
  150. package/modern/validation/useValidation.js +1 -1
  151. package/modern/validation/validateDate.js +8 -0
  152. package/modern/validation/validateDateTime.js +8 -0
  153. package/modern/validation/validateTime.js +8 -0
  154. package/node/AdapterMoment/AdapterMoment.js +10 -0
  155. package/node/DateCalendar/DateCalendar.js +1 -0
  156. package/node/DateCalendar/PickersFadeTransitionGroup.js +4 -6
  157. package/node/DateCalendar/PickersSlideTransition.js +12 -5
  158. package/node/DateField/DateField.js +5 -4
  159. package/node/DatePicker/DatePickerToolbar.js +0 -12
  160. package/node/DateTimeField/DateTimeField.js +5 -4
  161. package/node/DateTimePicker/DateTimePickerTabs.js +8 -6
  162. package/node/DateTimePicker/DateTimePickerToolbar.js +6 -15
  163. package/node/DayCalendarSkeleton/DayCalendarSkeleton.js +10 -19
  164. package/node/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +11 -34
  165. package/node/DigitalClock/DigitalClock.js +1 -0
  166. package/node/MonthCalendar/MonthCalendar.js +1 -0
  167. package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.js +1 -0
  168. package/node/PickersCalendarHeader/PickersCalendarHeader.js +8 -7
  169. package/node/PickersLayout/PickersLayout.js +22 -39
  170. package/node/PickersLayout/usePickerLayout.js +20 -17
  171. package/node/PickersTextField/PickersInputBase/PickersInputBase.js +10 -9
  172. package/node/PickersTextField/PickersTextField.js +2 -2
  173. package/node/TimeClock/Clock.js +1 -0
  174. package/node/TimeClock/TimeClock.js +1 -0
  175. package/node/TimeField/TimeField.js +5 -4
  176. package/node/TimePicker/TimePickerToolbar.js +6 -15
  177. package/node/YearCalendar/YearCalendar.js +1 -0
  178. package/node/hooks/useParsedFormat.js +1 -1
  179. package/node/index.js +1 -1
  180. package/node/internals/components/PickerProvider.js +3 -1
  181. package/node/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +11 -10
  182. package/node/internals/components/PickersToolbar.js +2 -4
  183. package/node/internals/hooks/useDesktopPicker/useDesktopPicker.js +1 -1
  184. package/node/internals/hooks/useField/useFieldState.js +1 -1
  185. package/node/internals/hooks/useField/useFieldV7TextField.js +2 -1
  186. package/node/internals/hooks/useFieldOwnerState.js +20 -0
  187. package/node/internals/hooks/useMobilePicker/useMobilePicker.js +1 -1
  188. package/node/internals/hooks/usePicker/usePicker.js +11 -19
  189. package/node/internals/hooks/usePicker/usePickerProvider.js +64 -5
  190. package/node/internals/hooks/usePicker/usePickerValue.js +18 -6
  191. package/node/internals/hooks/usePicker/usePickerViews.js +1 -0
  192. package/node/internals/hooks/useStaticPicker/useStaticPicker.js +1 -1
  193. package/node/internals/hooks/useValueWithTimezone.js +13 -1
  194. package/node/internals/index.js +7 -0
  195. package/node/internals/models/pickers.js +5 -0
  196. package/node/locales/nlNL.js +7 -7
  197. package/node/validation/useValidation.js +1 -1
  198. package/node/validation/validateDate.js +8 -0
  199. package/node/validation/validateDateTime.js +8 -0
  200. package/node/validation/validateTime.js +8 -0
  201. package/package.json +4 -4
  202. package/themeAugmentation/overrides.d.ts +1 -1
  203. package/themeAugmentation/props.d.ts +3 -2
  204. package/validation/useValidation.d.ts +7 -6
  205. package/validation/useValidation.js +1 -1
  206. package/validation/validateDate.d.ts +12 -3
  207. package/validation/validateDate.js +8 -0
  208. package/validation/validateDateTime.d.ts +12 -4
  209. package/validation/validateDateTime.js +8 -0
  210. package/validation/validateTime.d.ts +12 -3
  211. package/validation/validateTime.js +8 -0
  212. package/internals/hooks/useIsLandscape.d.ts +0 -4
  213. package/internals/hooks/useIsLandscape.js +0 -35
  214. package/internals/hooks/usePicker/usePickerLayoutProps.d.ts +0 -33
  215. package/internals/hooks/usePicker/usePickerLayoutProps.js +0 -34
  216. package/internals/hooks/usePicker/usePickerOwnerState.d.ts +0 -10
  217. package/internals/hooks/usePicker/usePickerOwnerState.js +0 -16
  218. package/modern/internals/hooks/useIsLandscape.js +0 -35
  219. package/modern/internals/hooks/usePicker/usePickerLayoutProps.js +0 -34
  220. package/modern/internals/hooks/usePicker/usePickerOwnerState.js +0 -16
  221. package/node/internals/hooks/useIsLandscape.js +0 -43
  222. package/node/internals/hooks/usePicker/usePickerLayoutProps.js +0 -41
  223. package/node/internals/hooks/usePicker/usePickerOwnerState.js +0 -23
@@ -5,6 +5,14 @@ import { singleItemValueManager } from "../internals/utils/valueManagers.js";
5
5
  * Validation props used by the Time Picker, Time Field and Clock components.
6
6
  */
7
7
 
8
+ /**
9
+ * Validation props as received by the validateTime method.
10
+ */
11
+
12
+ /**
13
+ * Name of the props that should be defaulted before being passed to the validateTime method.
14
+ */
15
+
8
16
  export const validateTime = ({
9
17
  adapter,
10
18
  value,
@@ -438,12 +438,22 @@ class AdapterMoment {
438
438
  const end = this.endOfWeek(this.endOfMonth(value));
439
439
  let count = 0;
440
440
  let current = start;
441
+ let currentDayOfYear = current.get('dayOfYear');
441
442
  const nestedWeeks = [];
442
443
  while (current.isBefore(end)) {
443
444
  const weekNumber = Math.floor(count / 7);
444
445
  nestedWeeks[weekNumber] = nestedWeeks[weekNumber] || [];
445
446
  nestedWeeks[weekNumber].push(current);
447
+ const prevDayOfYear = currentDayOfYear;
446
448
  current = this.addDays(current, 1);
449
+ currentDayOfYear = current.get('dayOfYear');
450
+
451
+ // If there is a TZ change at midnight, adding 1 day may only increase the date by 23 hours to 11pm
452
+ // To fix, bump the date into the next day (add 12 hours) and then revert to the start of the day
453
+ // See https://github.com/moment/moment/issues/4743#issuecomment-811306874 for context.
454
+ if (prevDayOfYear === currentDayOfYear) {
455
+ current = current.add(12, 'h').startOf('day');
456
+ }
447
457
  count += 1;
448
458
  }
449
459
  return nestedWeeks;
@@ -144,6 +144,7 @@ const DateCalendar = exports.DateCalendar = /*#__PURE__*/React.forwardRef(functi
144
144
  timezone: timezoneProp,
145
145
  value: valueProp,
146
146
  defaultValue,
147
+ referenceDate: referenceDateProp,
147
148
  onChange,
148
149
  valueManager: _valueManagers.singleItemValueManager
149
150
  });
@@ -14,10 +14,7 @@ var _styles = require("@mui/material/styles");
14
14
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
15
15
  var _pickersFadeTransitionGroupClasses = require("./pickersFadeTransitionGroupClasses");
16
16
  var _jsxRuntime = require("react/jsx-runtime");
17
- const useUtilityClasses = ownerState => {
18
- const {
19
- classes
20
- } = ownerState;
17
+ const useUtilityClasses = classes => {
21
18
  const slots = {
22
19
  root: ['root']
23
20
  };
@@ -44,9 +41,10 @@ function PickersFadeTransitionGroup(inProps) {
44
41
  children,
45
42
  className,
46
43
  reduceAnimations,
47
- transKey
44
+ transKey,
45
+ classes: classesProp
48
46
  } = props;
49
- const classes = useUtilityClasses(props);
47
+ const classes = useUtilityClasses(classesProp);
50
48
  const theme = (0, _styles.useTheme)();
51
49
  if (reduceAnimations) {
52
50
  return children;
@@ -14,11 +14,11 @@ var _styles = require("@mui/material/styles");
14
14
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
15
15
  var _reactTransitionGroup = require("react-transition-group");
16
16
  var _pickersSlideTransitionClasses = require("./pickersSlideTransitionClasses");
17
+ var _usePickerPrivateContext = require("../internals/hooks/usePickerPrivateContext");
17
18
  var _jsxRuntime = require("react/jsx-runtime");
18
19
  const _excluded = ["children", "className", "reduceAnimations", "slideDirection", "transKey", "classes"];
19
- const useUtilityClasses = ownerState => {
20
+ const useUtilityClasses = (classes, ownerState) => {
20
21
  const {
21
- classes,
22
22
  slideDirection
23
23
  } = ownerState;
24
24
  const slots = {
@@ -107,11 +107,18 @@ function PickersSlideTransition(inProps) {
107
107
  children,
108
108
  className,
109
109
  reduceAnimations,
110
- transKey
111
- // extracting `classes` from `other`
110
+ slideDirection,
111
+ transKey,
112
+ classes: classesProp
112
113
  } = props,
113
114
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
114
- const classes = useUtilityClasses(props);
115
+ const {
116
+ ownerState: pickerOwnerState
117
+ } = (0, _usePickerPrivateContext.usePickerPrivateContext)();
118
+ const ownerState = (0, _extends2.default)({}, pickerOwnerState, {
119
+ slideDirection
120
+ });
121
+ const classes = useUtilityClasses(classesProp, ownerState);
115
122
  const theme = (0, _styles.useTheme)();
116
123
  if (reduceAnimations) {
117
124
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
@@ -19,6 +19,7 @@ var _useDateField = require("./useDateField");
19
19
  var _hooks = require("../hooks");
20
20
  var _PickersTextField = require("../PickersTextField");
21
21
  var _convertFieldResponseIntoMuiTextFieldProps = require("../internals/utils/convertFieldResponseIntoMuiTextFieldProps");
22
+ var _useFieldOwnerState = require("../internals/hooks/useFieldOwnerState");
22
23
  var _jsxRuntime = require("react/jsx-runtime");
23
24
  const _excluded = ["slots", "slotProps", "InputProps", "inputProps"];
24
25
  /**
@@ -43,7 +44,7 @@ const DateField = exports.DateField = /*#__PURE__*/React.forwardRef(function Dat
43
44
  inputProps
44
45
  } = themeProps,
45
46
  other = (0, _objectWithoutPropertiesLoose2.default)(themeProps, _excluded);
46
- const ownerState = themeProps;
47
+ const ownerState = (0, _useFieldOwnerState.useFieldOwnerState)(themeProps);
47
48
  const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure === false ? _TextField.default : _PickersTextField.PickersTextField);
48
49
  const textFieldProps = (0, _useSlotProps.default)({
49
50
  elementType: TextField,
@@ -274,10 +275,10 @@ process.env.NODE_ENV !== "production" ? DateField.propTypes = {
274
275
  */
275
276
  shouldDisableYear: _propTypes.default.func,
276
277
  /**
277
- * If `true`, the format will respect the leading zeroes (e.g: on dayjs, the format `M/D/YYYY` will render `8/16/2018`)
278
- * If `false`, the format will always add leading zeroes (e.g: on dayjs, the format `M/D/YYYY` will render `08/16/2018`)
278
+ * If `true`, the format will respect the leading zeroes (for example on dayjs, the format `M/D/YYYY` will render `8/16/2018`)
279
+ * If `false`, the format will always add leading zeroes (for example on dayjs, the format `M/D/YYYY` will render `08/16/2018`)
279
280
  *
280
- * Warning n°1: Luxon is not able to respect the leading zeroes when using macro tokens (e.g: "DD"), so `shouldRespectLeadingZeros={true}` might lead to inconsistencies when using `AdapterLuxon`.
281
+ * Warning n°1: Luxon is not able to respect the leading zeroes when using macro tokens (for example "DD"), so `shouldRespectLeadingZeros={true}` might lead to inconsistencies when using `AdapterLuxon`.
281
282
  *
282
283
  * Warning n°2: When `shouldRespectLeadingZeros={true}`, the field will add an invisible character on the sections containing a single digit to make sure `onChange` is fired.
283
284
  * If you need to get the clean value from the input, you can remove this character using `input.value.replace(/\u200e/g, '')`.
@@ -114,12 +114,6 @@ process.env.NODE_ENV !== "production" ? DatePickerToolbar.propTypes = {
114
114
  */
115
115
  classes: _propTypes.default.object,
116
116
  className: _propTypes.default.string,
117
- /**
118
- * If `true`, the component is disabled.
119
- * When disabled, the value cannot be changed and no interaction is possible.
120
- * @default false
121
- */
122
- disabled: _propTypes.default.bool,
123
117
  /**
124
118
  * If `true`, show the toolbar even in desktop mode.
125
119
  * @default `true` for Desktop, `false` for Mobile.
@@ -133,12 +127,6 @@ process.env.NODE_ENV !== "production" ? DatePickerToolbar.propTypes = {
133
127
  * @param {TView} view The view to open
134
128
  */
135
129
  onViewChange: _propTypes.default.func.isRequired,
136
- /**
137
- * If `true`, the component is read-only.
138
- * When read-only, the value cannot be changed but the user can interact with the interface.
139
- * @default false
140
- */
141
- readOnly: _propTypes.default.bool,
142
130
  /**
143
131
  * The system prop that allows defining system overrides as well as additional CSS styles.
144
132
  */
@@ -19,6 +19,7 @@ var _useDateTimeField = require("./useDateTimeField");
19
19
  var _hooks = require("../hooks");
20
20
  var _PickersTextField = require("../PickersTextField");
21
21
  var _convertFieldResponseIntoMuiTextFieldProps = require("../internals/utils/convertFieldResponseIntoMuiTextFieldProps");
22
+ var _useFieldOwnerState = require("../internals/hooks/useFieldOwnerState");
22
23
  var _jsxRuntime = require("react/jsx-runtime");
23
24
  const _excluded = ["slots", "slotProps", "InputProps", "inputProps"];
24
25
  /**
@@ -43,7 +44,7 @@ const DateTimeField = exports.DateTimeField = /*#__PURE__*/React.forwardRef(func
43
44
  inputProps
44
45
  } = themeProps,
45
46
  other = (0, _objectWithoutPropertiesLoose2.default)(themeProps, _excluded);
46
- const ownerState = themeProps;
47
+ const ownerState = (0, _useFieldOwnerState.useFieldOwnerState)(themeProps);
47
48
  const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure === false ? _TextField.default : _PickersTextField.PickersTextField);
48
49
  const textFieldProps = (0, _useSlotProps.default)({
49
50
  elementType: TextField,
@@ -314,10 +315,10 @@ process.env.NODE_ENV !== "production" ? DateTimeField.propTypes = {
314
315
  */
315
316
  shouldDisableYear: _propTypes.default.func,
316
317
  /**
317
- * If `true`, the format will respect the leading zeroes (e.g: on dayjs, the format `M/D/YYYY` will render `8/16/2018`)
318
- * If `false`, the format will always add leading zeroes (e.g: on dayjs, the format `M/D/YYYY` will render `08/16/2018`)
318
+ * If `true`, the format will respect the leading zeroes (for example on dayjs, the format `M/D/YYYY` will render `8/16/2018`)
319
+ * If `false`, the format will always add leading zeroes (for example on dayjs, the format `M/D/YYYY` will render `08/16/2018`)
319
320
  *
320
- * Warning n°1: Luxon is not able to respect the leading zeroes when using macro tokens (e.g: "DD"), so `shouldRespectLeadingZeros={true}` might lead to inconsistencies when using `AdapterLuxon`.
321
+ * Warning n°1: Luxon is not able to respect the leading zeroes when using macro tokens (for example "DD"), so `shouldRespectLeadingZeros={true}` might lead to inconsistencies when using `AdapterLuxon`.
321
322
  *
322
323
  * Warning n°2: When `shouldRespectLeadingZeros={true}`, the field will add an invisible character on the sections containing a single digit to make sure `onChange` is fired.
323
324
  * If you need to get the clean value from the input, you can remove this character using `input.value.replace(/\u200e/g, '')`.
@@ -18,6 +18,7 @@ var _icons = require("../icons");
18
18
  var _usePickerTranslations = require("../hooks/usePickerTranslations");
19
19
  var _dateTimePickerTabsClasses = require("./dateTimePickerTabsClasses");
20
20
  var _dateUtils = require("../internals/utils/date-utils");
21
+ var _usePickerPrivateContext = require("../internals/hooks/usePickerPrivateContext");
21
22
  var _jsxRuntime = require("react/jsx-runtime");
22
23
  const viewToTab = view => {
23
24
  if ((0, _dateUtils.isDatePickerView)(view)) {
@@ -31,10 +32,7 @@ const tabToView = tab => {
31
32
  }
32
33
  return 'hours';
33
34
  };
34
- const useUtilityClasses = ownerState => {
35
- const {
36
- classes
37
- } = ownerState;
35
+ const useUtilityClasses = classes => {
38
36
  const slots = {
39
37
  root: ['root']
40
38
  };
@@ -79,10 +77,14 @@ const DateTimePickerTabs = exports.DateTimePickerTabs = function DateTimePickerT
79
77
  view,
80
78
  hidden = typeof window === 'undefined' || window.innerHeight < 667,
81
79
  className,
80
+ classes: classesProp,
82
81
  sx
83
82
  } = props;
84
83
  const translations = (0, _usePickerTranslations.usePickerTranslations)();
85
- const classes = useUtilityClasses(props);
84
+ const {
85
+ ownerState
86
+ } = (0, _usePickerPrivateContext.usePickerPrivateContext)();
87
+ const classes = useUtilityClasses(classesProp);
86
88
  const handleChange = (event, value) => {
87
89
  onViewChange(tabToView(value));
88
90
  };
@@ -90,7 +92,7 @@ const DateTimePickerTabs = exports.DateTimePickerTabs = function DateTimePickerT
90
92
  return null;
91
93
  }
92
94
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(DateTimePickerTabsRoot, {
93
- ownerState: props,
95
+ ownerState: ownerState,
94
96
  variant: "fullWidth",
95
97
  value: viewToTab(view),
96
98
  onChange: handleChange,
@@ -26,8 +26,9 @@ var _dimensions = require("../internals/constants/dimensions");
26
26
  var _dateUtils = require("../internals/utils/date-utils");
27
27
  var _pickersToolbarTextClasses = require("../internals/components/pickersToolbarTextClasses");
28
28
  var _pickersToolbarClasses = require("../internals/components/pickersToolbarClasses");
29
+ var _usePickerContext = require("../hooks/usePickerContext");
29
30
  var _jsxRuntime = require("react/jsx-runtime");
30
- const _excluded = ["ampm", "ampmInClock", "value", "onChange", "view", "isLandscape", "onViewChange", "toolbarFormat", "toolbarPlaceholder", "views", "disabled", "readOnly", "toolbarVariant", "toolbarTitle", "className"];
31
+ const _excluded = ["ampm", "ampmInClock", "value", "onChange", "view", "isLandscape", "onViewChange", "toolbarFormat", "toolbarPlaceholder", "views", "toolbarVariant", "toolbarTitle", "className"];
31
32
  const useUtilityClasses = ownerState => {
32
33
  const {
33
34
  classes,
@@ -233,14 +234,16 @@ function DateTimePickerToolbar(inProps) {
233
234
  toolbarFormat,
234
235
  toolbarPlaceholder = '––',
235
236
  views,
236
- disabled,
237
- readOnly,
238
237
  toolbarVariant = 'mobile',
239
238
  toolbarTitle: inToolbarTitle,
240
239
  className
241
240
  } = props,
242
241
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
243
242
  const isRtl = (0, _RtlProvider.useRtl)();
243
+ const {
244
+ disabled,
245
+ readOnly
246
+ } = (0, _usePickerContext.usePickerContext)();
244
247
  const ownerState = (0, _extends2.default)({}, props, {
245
248
  isRtl
246
249
  });
@@ -366,12 +369,6 @@ process.env.NODE_ENV !== "production" ? DateTimePickerToolbar.propTypes = {
366
369
  */
367
370
  classes: _propTypes.default.object,
368
371
  className: _propTypes.default.string,
369
- /**
370
- * If `true`, the component is disabled.
371
- * When disabled, the value cannot be changed and no interaction is possible.
372
- * @default false
373
- */
374
- disabled: _propTypes.default.bool,
375
372
  /**
376
373
  * If `true`, show the toolbar even in desktop mode.
377
374
  * @default `true` for Desktop, `false` for Mobile.
@@ -385,12 +382,6 @@ process.env.NODE_ENV !== "production" ? DateTimePickerToolbar.propTypes = {
385
382
  * @param {TView} view The view to open
386
383
  */
387
384
  onViewChange: _propTypes.default.func.isRequired,
388
- /**
389
- * If `true`, the component is read-only.
390
- * When read-only, the value cannot be changed but the user can interact with the interface.
391
- * @default false
392
- */
393
- readOnly: _propTypes.default.bool,
394
385
  /**
395
386
  * The system prop that allows defining system overrides as well as additional CSS styles.
396
387
  */
@@ -18,11 +18,8 @@ var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"
18
18
  var _dimensions = require("../internals/constants/dimensions");
19
19
  var _dayCalendarSkeletonClasses = require("./dayCalendarSkeletonClasses");
20
20
  var _jsxRuntime = require("react/jsx-runtime");
21
- const _excluded = ["className"];
22
- const useUtilityClasses = ownerState => {
23
- const {
24
- classes
25
- } = ownerState;
21
+ const _excluded = ["className", "classes"];
22
+ const useUtilityClasses = classes => {
26
23
  const slots = {
27
24
  root: ['root'],
28
25
  week: ['week'],
@@ -52,14 +49,9 @@ const DayCalendarSkeletonDay = (0, _styles.styled)(_Skeleton.default, {
52
49
  overridesResolver: (props, styles) => styles.daySkeleton
53
50
  })({
54
51
  margin: `0 ${_dimensions.DAY_MARGIN}px`,
55
- variants: [{
56
- props: {
57
- day: 0
58
- },
59
- style: {
60
- visibility: 'hidden'
61
- }
62
- }]
52
+ '&[data-day-in-month="0"]': {
53
+ visibility: 'hidden'
54
+ }
63
55
  });
64
56
  const monthMap = [[0, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 0, 0, 0]];
65
57
 
@@ -78,23 +70,22 @@ function DayCalendarSkeleton(inProps) {
78
70
  name: 'MuiDayCalendarSkeleton'
79
71
  });
80
72
  const {
81
- className
73
+ className,
74
+ classes: classesProp
82
75
  } = props,
83
76
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
84
- const classes = useUtilityClasses(other);
77
+ const classes = useUtilityClasses(classesProp);
85
78
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(DayCalendarSkeletonRoot, (0, _extends2.default)({
86
79
  className: (0, _clsx.default)(classes.root, className)
87
80
  }, other, {
88
81
  children: monthMap.map((week, index) => /*#__PURE__*/(0, _jsxRuntime.jsx)(DayCalendarSkeletonWeek, {
89
82
  className: classes.week,
90
- children: week.map((day, index2) => /*#__PURE__*/(0, _jsxRuntime.jsx)(DayCalendarSkeletonDay, {
83
+ children: week.map((dayInMonth, index2) => /*#__PURE__*/(0, _jsxRuntime.jsx)(DayCalendarSkeletonDay, {
91
84
  variant: "circular",
92
85
  width: _dimensions.DAY_SIZE,
93
86
  height: _dimensions.DAY_SIZE,
94
87
  className: classes.daySkeleton,
95
- ownerState: {
96
- day
97
- }
88
+ "data-day-in-month": dayInMonth
98
89
  }, index2))
99
90
  }, index))
100
91
  }));
@@ -1,41 +1,39 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.DesktopDateTimePickerLayout = void 0;
9
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
9
  var React = _interopRequireWildcard(require("react"));
11
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
12
11
  var _clsx = _interopRequireDefault(require("clsx"));
13
- var _RtlProvider = require("@mui/system/RtlProvider");
14
12
  var _Divider = _interopRequireDefault(require("@mui/material/Divider"));
15
13
  var _PickersLayout = require("../PickersLayout");
14
+ var _usePickerContext = require("../hooks/usePickerContext");
16
15
  var _jsxRuntime = require("react/jsx-runtime");
17
16
  /**
18
17
  * @ignore - internal component.
19
18
  */
20
19
  const DesktopDateTimePickerLayout = exports.DesktopDateTimePickerLayout = /*#__PURE__*/React.forwardRef(function DesktopDateTimePickerLayout(props, ref) {
21
- const isRtl = (0, _RtlProvider.useRtl)();
22
20
  const {
23
21
  toolbar,
24
22
  tabs,
25
23
  content,
26
24
  actionBar,
27
- shortcuts
25
+ shortcuts,
26
+ ownerState
28
27
  } = (0, _PickersLayout.usePickerLayout)(props);
28
+ const {
29
+ orientation
30
+ } = (0, _usePickerContext.usePickerContext)();
29
31
  const {
30
32
  sx,
31
33
  className,
32
- isLandscape,
33
34
  classes
34
35
  } = props;
35
36
  const isActionBarVisible = actionBar && (actionBar.props.actions?.length ?? 0) > 0;
36
- const ownerState = (0, _extends2.default)({}, props, {
37
- isRtl
38
- });
39
37
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_PickersLayout.PickersLayoutRoot, {
40
38
  ref: ref,
41
39
  className: (0, _clsx.default)(_PickersLayout.pickersLayoutClasses.root, classes?.root, className),
@@ -49,8 +47,9 @@ const DesktopDateTimePickerLayout = exports.DesktopDateTimePickerLayout = /*#__P
49
47
  }
50
48
  }, ...(Array.isArray(sx) ? sx : [sx])],
51
49
  ownerState: ownerState,
52
- children: [isLandscape ? shortcuts : toolbar, isLandscape ? toolbar : shortcuts, /*#__PURE__*/(0, _jsxRuntime.jsxs)(_PickersLayout.PickersLayoutContentWrapper, {
50
+ children: [orientation === 'landscape' ? shortcuts : toolbar, orientation === 'landscape' ? toolbar : shortcuts, /*#__PURE__*/(0, _jsxRuntime.jsxs)(_PickersLayout.PickersLayoutContentWrapper, {
53
51
  className: (0, _clsx.default)(_PickersLayout.pickersLayoutClasses.contentWrapper, classes?.contentWrapper),
52
+ ownerState: ownerState,
54
53
  sx: {
55
54
  display: 'grid'
56
55
  },
@@ -74,17 +73,6 @@ process.env.NODE_ENV !== "production" ? DesktopDateTimePickerLayout.propTypes =
74
73
  */
75
74
  classes: _propTypes.default.object,
76
75
  className: _propTypes.default.string,
77
- /**
78
- * If `true`, the component is disabled.
79
- * When disabled, the value cannot be changed and no interaction is possible.
80
- * @default false
81
- */
82
- disabled: _propTypes.default.bool,
83
- isLandscape: _propTypes.default.bool.isRequired,
84
- /**
85
- * `true` if the application is in right-to-left direction.
86
- */
87
- isRtl: _propTypes.default.bool.isRequired,
88
76
  isValid: _propTypes.default.func.isRequired,
89
77
  onAccept: _propTypes.default.func.isRequired,
90
78
  onCancel: _propTypes.default.func.isRequired,
@@ -96,16 +84,6 @@ process.env.NODE_ENV !== "production" ? DesktopDateTimePickerLayout.propTypes =
96
84
  onSelectShortcut: _propTypes.default.func.isRequired,
97
85
  onSetToday: _propTypes.default.func.isRequired,
98
86
  onViewChange: _propTypes.default.func.isRequired,
99
- /**
100
- * Force rendering in particular orientation.
101
- */
102
- orientation: _propTypes.default.oneOf(['landscape', 'portrait']),
103
- /**
104
- * If `true`, the component is read-only.
105
- * When read-only, the value cannot be changed but the user can interact with the interface.
106
- * @default false
107
- */
108
- readOnly: _propTypes.default.bool,
109
87
  /**
110
88
  * The props used for each component slot.
111
89
  * @default {}
@@ -120,8 +98,7 @@ process.env.NODE_ENV !== "production" ? DesktopDateTimePickerLayout.propTypes =
120
98
  * The system prop that allows defining system overrides as well as additional CSS styles.
121
99
  */
122
100
  sx: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object, _propTypes.default.bool])), _propTypes.default.func, _propTypes.default.object]),
123
- value: _propTypes.default.any,
101
+ value: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.object), _propTypes.default.object]),
124
102
  view: _propTypes.default.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']),
125
- views: _propTypes.default.arrayOf(_propTypes.default.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']).isRequired).isRequired,
126
- wrapperVariant: _propTypes.default.oneOf(['desktop', 'mobile'])
103
+ views: _propTypes.default.arrayOf(_propTypes.default.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']).isRequired).isRequired
127
104
  } : void 0;
@@ -156,6 +156,7 @@ const DigitalClock = exports.DigitalClock = /*#__PURE__*/React.forwardRef(functi
156
156
  timezone: timezoneProp,
157
157
  value: valueProp,
158
158
  defaultValue,
159
+ referenceDate: referenceDateProp,
159
160
  onChange,
160
161
  valueManager: _valueManagers.singleItemValueManager
161
162
  });
@@ -106,6 +106,7 @@ const MonthCalendar = exports.MonthCalendar = /*#__PURE__*/React.forwardRef(func
106
106
  timezone: timezoneProp,
107
107
  value: valueProp,
108
108
  defaultValue,
109
+ referenceDate: referenceDateProp,
109
110
  onChange,
110
111
  valueManager: _valueManagers.singleItemValueManager
111
112
  });
@@ -108,6 +108,7 @@ const MultiSectionDigitalClock = exports.MultiSectionDigitalClock = /*#__PURE__*
108
108
  timezone: timezoneProp,
109
109
  value: valueProp,
110
110
  defaultValue,
111
+ referenceDate: referenceDateProp,
111
112
  onChange,
112
113
  valueManager: _valueManagers.singleItemValueManager
113
114
  });
@@ -24,13 +24,11 @@ var _icons = require("../icons");
24
24
  var _PickersArrowSwitcher = require("../internals/components/PickersArrowSwitcher");
25
25
  var _dateHelpersHooks = require("../internals/hooks/date-helpers-hooks");
26
26
  var _pickersCalendarHeaderClasses = require("./pickersCalendarHeaderClasses");
27
+ var _usePickerPrivateContext = require("../internals/hooks/usePickerPrivateContext");
27
28
  var _jsxRuntime = require("react/jsx-runtime");
28
- const _excluded = ["slots", "slotProps", "currentMonth", "disabled", "disableFuture", "disablePast", "maxDate", "minDate", "onMonthChange", "onViewChange", "view", "reduceAnimations", "views", "labelId", "className", "timezone", "format"],
29
+ const _excluded = ["slots", "slotProps", "currentMonth", "disabled", "disableFuture", "disablePast", "maxDate", "minDate", "onMonthChange", "onViewChange", "view", "reduceAnimations", "views", "labelId", "className", "classes", "timezone", "format"],
29
30
  _excluded2 = ["ownerState"];
30
- const useUtilityClasses = ownerState => {
31
- const {
32
- classes
33
- } = ownerState;
31
+ const useUtilityClasses = classes => {
34
32
  const slots = {
35
33
  root: ['root'],
36
34
  labelContainer: ['labelContainer'],
@@ -139,12 +137,15 @@ const PickersCalendarHeader = exports.PickersCalendarHeader = /*#__PURE__*/React
139
137
  views,
140
138
  labelId,
141
139
  className,
140
+ classes: classesProp,
142
141
  timezone,
143
142
  format = `${utils.formats.month} ${utils.formats.year}`
144
143
  } = props,
145
144
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
146
- const ownerState = props;
147
- const classes = useUtilityClasses(props);
145
+ const {
146
+ ownerState
147
+ } = (0, _usePickerPrivateContext.usePickerPrivateContext)();
148
+ const classes = useUtilityClasses(classesProp);
148
149
  const SwitchViewButton = slots?.switchViewButton ?? PickersCalendarHeaderSwitchViewButton;
149
150
  const switchViewButtonProps = (0, _useSlotProps2.default)({
150
151
  elementType: SwitchViewButton,