@mui/x-date-pickers 7.0.0-alpha.3 → 7.0.0-alpha.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (261) hide show
  1. package/AdapterLuxon/AdapterLuxon.d.ts +27 -27
  2. package/AdapterLuxon/AdapterLuxon.js +0 -1
  3. package/CHANGELOG.md +245 -0
  4. package/DateCalendar/DateCalendar.types.d.ts +6 -6
  5. package/DateCalendar/DayCalendar.d.ts +4 -4
  6. package/DateCalendar/index.d.ts +1 -1
  7. package/DateCalendar/useCalendarState.js +0 -1
  8. package/DateField/DateField.js +17 -50
  9. package/DateField/DateField.types.d.ts +5 -9
  10. package/DateField/useDateField.d.ts +2 -2
  11. package/DateField/useDateField.js +1 -5
  12. package/DatePicker/DatePicker.js +5 -1
  13. package/DatePicker/DatePicker.types.d.ts +6 -6
  14. package/DatePicker/index.d.ts +1 -1
  15. package/DatePicker/shared.d.ts +6 -6
  16. package/DateTimeField/DateTimeField.js +17 -50
  17. package/DateTimeField/DateTimeField.types.d.ts +5 -9
  18. package/DateTimeField/useDateTimeField.d.ts +2 -2
  19. package/DateTimeField/useDateTimeField.js +1 -5
  20. package/DateTimePicker/DateTimePicker.js +5 -1
  21. package/DateTimePicker/DateTimePicker.types.d.ts +6 -6
  22. package/DateTimePicker/index.d.ts +1 -1
  23. package/DateTimePicker/shared.d.ts +6 -6
  24. package/DesktopDatePicker/DesktopDatePicker.js +7 -2
  25. package/DesktopDatePicker/DesktopDatePicker.types.d.ts +6 -6
  26. package/DesktopDatePicker/index.d.ts +1 -1
  27. package/DesktopDateTimePicker/DesktopDateTimePicker.js +5 -1
  28. package/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +8 -8
  29. package/DesktopDateTimePicker/index.d.ts +1 -1
  30. package/DesktopTimePicker/DesktopTimePicker.js +5 -1
  31. package/DesktopTimePicker/DesktopTimePicker.types.d.ts +8 -8
  32. package/DesktopTimePicker/index.d.ts +1 -1
  33. package/DigitalClock/DigitalClock.types.d.ts +4 -4
  34. package/DigitalClock/index.d.ts +1 -1
  35. package/MobileDatePicker/MobileDatePicker.js +7 -2
  36. package/MobileDatePicker/MobileDatePicker.types.d.ts +6 -6
  37. package/MobileDatePicker/index.d.ts +1 -1
  38. package/MobileDateTimePicker/MobileDateTimePicker.js +5 -1
  39. package/MobileDateTimePicker/MobileDateTimePicker.types.d.ts +6 -6
  40. package/MobileDateTimePicker/index.d.ts +1 -1
  41. package/MobileTimePicker/MobileTimePicker.js +5 -1
  42. package/MobileTimePicker/MobileTimePicker.types.d.ts +6 -6
  43. package/MobileTimePicker/index.d.ts +1 -1
  44. package/MonthCalendar/MonthCalendar.js +0 -1
  45. package/MultiSectionDigitalClock/MultiSectionDigitalClock.types.d.ts +4 -4
  46. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.d.ts +3 -3
  47. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +8 -2
  48. package/MultiSectionDigitalClock/index.d.ts +1 -1
  49. package/MultiSectionDigitalClock/multiSectionDigitalClockSectionClasses.js +2 -2
  50. package/PickersCalendarHeader/PickersCalendarHeader.js +4 -4
  51. package/PickersCalendarHeader/PickersCalendarHeader.types.d.ts +8 -8
  52. package/PickersCalendarHeader/index.d.ts +1 -1
  53. package/PickersLayout/PickersLayout.types.d.ts +6 -6
  54. package/PickersLayout/index.d.ts +1 -1
  55. package/StaticDatePicker/StaticDatePicker.js +1 -1
  56. package/StaticDatePicker/StaticDatePicker.types.d.ts +7 -7
  57. package/StaticDatePicker/index.d.ts +1 -1
  58. package/StaticDateTimePicker/StaticDateTimePicker.types.d.ts +7 -7
  59. package/StaticDateTimePicker/index.d.ts +1 -1
  60. package/StaticTimePicker/StaticTimePicker.types.d.ts +7 -7
  61. package/StaticTimePicker/index.d.ts +1 -1
  62. package/TimeClock/Clock.js +0 -1
  63. package/TimeClock/ClockPointer.js +0 -1
  64. package/TimeClock/TimeClock.types.d.ts +5 -5
  65. package/TimeClock/index.d.ts +1 -1
  66. package/TimeField/TimeField.js +17 -50
  67. package/TimeField/TimeField.types.d.ts +5 -9
  68. package/TimeField/useTimeField.d.ts +2 -2
  69. package/TimeField/useTimeField.js +1 -5
  70. package/TimePicker/TimePicker.js +5 -1
  71. package/TimePicker/TimePicker.types.d.ts +6 -6
  72. package/TimePicker/index.d.ts +1 -1
  73. package/TimePicker/shared.d.ts +5 -5
  74. package/YearCalendar/YearCalendar.js +0 -1
  75. package/hooks/index.d.ts +1 -0
  76. package/hooks/useClearableField.d.ts +32 -20
  77. package/hooks/useClearableField.js +32 -33
  78. package/index.js +1 -1
  79. package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.types.d.ts +9 -9
  80. package/internals/components/PickersArrowSwitcher/index.d.ts +3 -1
  81. package/internals/components/PickersArrowSwitcher/index.js +2 -1
  82. package/internals/components/PickersModalDialog.d.ts +4 -4
  83. package/internals/components/PickersPopper.d.ts +4 -4
  84. package/internals/components/PickersTextField/Outline.d.ts +7 -1
  85. package/internals/components/PickersTextField/Outline.js +2 -4
  86. package/internals/components/PickersTextField/PickersInput.d.ts +1 -2
  87. package/internals/components/PickersTextField/PickersInput.js +117 -112
  88. package/internals/components/PickersTextField/PickersInput.types.d.ts +35 -20
  89. package/internals/components/PickersTextField/PickersTextField.js +57 -48
  90. package/internals/components/PickersTextField/PickersTextField.types.d.ts +19 -16
  91. package/internals/components/PickersTextField/pickersTextFieldClasses.d.ts +11 -7
  92. package/internals/components/PickersTextField/pickersTextFieldClasses.js +1 -1
  93. package/internals/constants/dimensions.d.ts +1 -1
  94. package/internals/constants/dimensions.js +1 -1
  95. package/internals/demo/DemoContainer.d.ts +4 -0
  96. package/internals/demo/DemoContainer.js +47 -19
  97. package/internals/hooks/useClockReferenceDate.js +0 -1
  98. package/internals/hooks/useDesktopPicker/index.d.ts +1 -1
  99. package/internals/hooks/useDesktopPicker/useDesktopPicker.js +2 -0
  100. package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +8 -8
  101. package/internals/hooks/useField/index.d.ts +1 -1
  102. package/internals/hooks/useField/useField.js +3 -3
  103. package/internals/hooks/useField/useField.types.d.ts +4 -24
  104. package/internals/hooks/useField/useField.utils.js +24 -6
  105. package/internals/hooks/useField/useFieldState.js +7 -3
  106. package/internals/hooks/useMobilePicker/index.d.ts +1 -1
  107. package/internals/hooks/useMobilePicker/useMobilePicker.js +3 -1
  108. package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +7 -7
  109. package/internals/hooks/useStaticPicker/index.d.ts +1 -1
  110. package/internals/hooks/useStaticPicker/useStaticPicker.types.d.ts +5 -5
  111. package/internals/hooks/useViews.js +0 -1
  112. package/internals/index.d.ts +7 -6
  113. package/internals/index.js +1 -0
  114. package/internals/models/props/basePickerProps.d.ts +4 -0
  115. package/internals/utils/convertFieldResponseIntoMuiTextFieldProps.d.ts +3 -0
  116. package/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +26 -0
  117. package/legacy/AdapterLuxon/AdapterLuxon.js +0 -1
  118. package/legacy/DateCalendar/useCalendarState.js +0 -1
  119. package/legacy/DateField/DateField.js +19 -47
  120. package/legacy/DateField/useDateField.js +1 -4
  121. package/legacy/DatePicker/DatePicker.js +5 -1
  122. package/legacy/DateTimeField/DateTimeField.js +19 -47
  123. package/legacy/DateTimeField/useDateTimeField.js +1 -4
  124. package/legacy/DateTimePicker/DateTimePicker.js +5 -1
  125. package/legacy/DesktopDatePicker/DesktopDatePicker.js +7 -2
  126. package/legacy/DesktopDateTimePicker/DesktopDateTimePicker.js +5 -1
  127. package/legacy/DesktopTimePicker/DesktopTimePicker.js +5 -1
  128. package/legacy/MobileDatePicker/MobileDatePicker.js +7 -2
  129. package/legacy/MobileDateTimePicker/MobileDateTimePicker.js +5 -1
  130. package/legacy/MobileTimePicker/MobileTimePicker.js +5 -1
  131. package/legacy/MonthCalendar/MonthCalendar.js +0 -1
  132. package/legacy/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +8 -2
  133. package/legacy/MultiSectionDigitalClock/multiSectionDigitalClockSectionClasses.js +2 -2
  134. package/legacy/PickersCalendarHeader/PickersCalendarHeader.js +4 -4
  135. package/legacy/StaticDatePicker/StaticDatePicker.js +1 -1
  136. package/legacy/TimeClock/Clock.js +0 -1
  137. package/legacy/TimeClock/ClockPointer.js +0 -1
  138. package/legacy/TimeField/TimeField.js +19 -47
  139. package/legacy/TimeField/useTimeField.js +1 -4
  140. package/legacy/TimePicker/TimePicker.js +5 -1
  141. package/legacy/YearCalendar/YearCalendar.js +0 -1
  142. package/legacy/hooks/useClearableField.js +30 -32
  143. package/legacy/index.js +1 -1
  144. package/legacy/internals/components/PickersArrowSwitcher/index.js +2 -1
  145. package/legacy/internals/components/PickersTextField/Outline.js +1 -4
  146. package/legacy/internals/components/PickersTextField/PickersInput.js +119 -115
  147. package/legacy/internals/components/PickersTextField/PickersTextField.js +51 -51
  148. package/legacy/internals/components/PickersTextField/pickersTextFieldClasses.js +1 -1
  149. package/legacy/internals/constants/dimensions.js +1 -1
  150. package/legacy/internals/demo/DemoContainer.js +45 -19
  151. package/legacy/internals/hooks/useClockReferenceDate.js +0 -1
  152. package/legacy/internals/hooks/useDesktopPicker/useDesktopPicker.js +2 -0
  153. package/legacy/internals/hooks/useField/useField.js +4 -4
  154. package/legacy/internals/hooks/useField/useField.utils.js +26 -6
  155. package/legacy/internals/hooks/useField/useFieldState.js +7 -3
  156. package/legacy/internals/hooks/useMobilePicker/useMobilePicker.js +3 -1
  157. package/legacy/internals/hooks/useViews.js +0 -1
  158. package/legacy/internals/index.js +1 -0
  159. package/legacy/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +24 -0
  160. package/legacy/locales/plPL.js +0 -1
  161. package/legacy/locales/svSE.js +0 -1
  162. package/legacy/locales/urPK.js +0 -1
  163. package/locales/plPL.js +0 -1
  164. package/locales/svSE.js +0 -1
  165. package/locales/urPK.js +0 -1
  166. package/models/fields.d.ts +2 -1
  167. package/modern/AdapterLuxon/AdapterLuxon.js +0 -1
  168. package/modern/DateCalendar/useCalendarState.js +0 -1
  169. package/modern/DateField/DateField.js +17 -50
  170. package/modern/DateField/useDateField.js +1 -5
  171. package/modern/DatePicker/DatePicker.js +5 -1
  172. package/modern/DateTimeField/DateTimeField.js +17 -50
  173. package/modern/DateTimeField/useDateTimeField.js +1 -5
  174. package/modern/DateTimePicker/DateTimePicker.js +5 -1
  175. package/modern/DesktopDatePicker/DesktopDatePicker.js +7 -2
  176. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +5 -1
  177. package/modern/DesktopTimePicker/DesktopTimePicker.js +5 -1
  178. package/modern/MobileDatePicker/MobileDatePicker.js +7 -2
  179. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +5 -1
  180. package/modern/MobileTimePicker/MobileTimePicker.js +5 -1
  181. package/modern/MonthCalendar/MonthCalendar.js +0 -1
  182. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +8 -2
  183. package/modern/MultiSectionDigitalClock/multiSectionDigitalClockSectionClasses.js +2 -2
  184. package/modern/PickersCalendarHeader/PickersCalendarHeader.js +4 -4
  185. package/modern/StaticDatePicker/StaticDatePicker.js +1 -1
  186. package/modern/TimeClock/Clock.js +0 -1
  187. package/modern/TimeClock/ClockPointer.js +0 -1
  188. package/modern/TimeField/TimeField.js +17 -50
  189. package/modern/TimeField/useTimeField.js +1 -5
  190. package/modern/TimePicker/TimePicker.js +5 -1
  191. package/modern/YearCalendar/YearCalendar.js +0 -1
  192. package/modern/hooks/useClearableField.js +32 -33
  193. package/modern/index.js +1 -1
  194. package/modern/internals/components/PickersArrowSwitcher/index.js +2 -1
  195. package/modern/internals/components/PickersTextField/Outline.js +2 -4
  196. package/modern/internals/components/PickersTextField/PickersInput.js +116 -112
  197. package/modern/internals/components/PickersTextField/PickersTextField.js +57 -47
  198. package/modern/internals/components/PickersTextField/pickersTextFieldClasses.js +1 -1
  199. package/modern/internals/constants/dimensions.js +1 -1
  200. package/modern/internals/demo/DemoContainer.js +47 -19
  201. package/modern/internals/hooks/useClockReferenceDate.js +0 -1
  202. package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.js +2 -0
  203. package/modern/internals/hooks/useField/useField.js +3 -3
  204. package/modern/internals/hooks/useField/useField.utils.js +24 -6
  205. package/modern/internals/hooks/useField/useFieldState.js +7 -3
  206. package/modern/internals/hooks/useMobilePicker/useMobilePicker.js +3 -1
  207. package/modern/internals/hooks/useViews.js +0 -1
  208. package/modern/internals/index.js +1 -0
  209. package/modern/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +26 -0
  210. package/modern/locales/plPL.js +0 -1
  211. package/modern/locales/svSE.js +0 -1
  212. package/modern/locales/urPK.js +0 -1
  213. package/node/AdapterLuxon/AdapterLuxon.js +0 -1
  214. package/node/DateCalendar/useCalendarState.js +0 -1
  215. package/node/DateField/DateField.js +18 -51
  216. package/node/DateField/useDateField.js +1 -5
  217. package/node/DatePicker/DatePicker.js +5 -1
  218. package/node/DateTimeField/DateTimeField.js +18 -51
  219. package/node/DateTimeField/useDateTimeField.js +1 -5
  220. package/node/DateTimePicker/DateTimePicker.js +5 -1
  221. package/node/DesktopDatePicker/DesktopDatePicker.js +10 -5
  222. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +5 -1
  223. package/node/DesktopTimePicker/DesktopTimePicker.js +5 -1
  224. package/node/MobileDatePicker/MobileDatePicker.js +10 -5
  225. package/node/MobileDateTimePicker/MobileDateTimePicker.js +5 -1
  226. package/node/MobileTimePicker/MobileTimePicker.js +5 -1
  227. package/node/MonthCalendar/MonthCalendar.js +0 -1
  228. package/node/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +8 -2
  229. package/node/MultiSectionDigitalClock/multiSectionDigitalClockSectionClasses.js +2 -2
  230. package/node/PickersCalendarHeader/PickersCalendarHeader.js +4 -4
  231. package/node/StaticDatePicker/StaticDatePicker.js +2 -2
  232. package/node/TimeClock/Clock.js +0 -1
  233. package/node/TimeClock/ClockPointer.js +0 -1
  234. package/node/TimeField/TimeField.js +18 -51
  235. package/node/TimeField/useTimeField.js +1 -5
  236. package/node/TimePicker/TimePicker.js +5 -1
  237. package/node/YearCalendar/YearCalendar.js +0 -1
  238. package/node/hooks/useClearableField.js +33 -34
  239. package/node/index.js +1 -1
  240. package/node/internals/components/PickersArrowSwitcher/index.js +14 -1
  241. package/node/internals/components/PickersTextField/Outline.js +2 -4
  242. package/node/internals/components/PickersTextField/PickersInput.js +119 -115
  243. package/node/internals/components/PickersTextField/PickersTextField.js +58 -48
  244. package/node/internals/components/PickersTextField/pickersTextFieldClasses.js +1 -1
  245. package/node/internals/constants/dimensions.js +1 -1
  246. package/node/internals/demo/DemoContainer.js +47 -19
  247. package/node/internals/hooks/useClockReferenceDate.js +0 -1
  248. package/node/internals/hooks/useDesktopPicker/useDesktopPicker.js +2 -0
  249. package/node/internals/hooks/useField/useField.js +3 -3
  250. package/node/internals/hooks/useField/useField.utils.js +24 -6
  251. package/node/internals/hooks/useField/useFieldState.js +7 -3
  252. package/node/internals/hooks/useMobilePicker/useMobilePicker.js +3 -1
  253. package/node/internals/hooks/useViews.js +0 -1
  254. package/node/internals/index.js +7 -0
  255. package/node/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +34 -0
  256. package/node/locales/plPL.js +0 -1
  257. package/node/locales/svSE.js +0 -1
  258. package/node/locales/urPK.js +0 -1
  259. package/package.json +6 -6
  260. package/themeAugmentation/overrides.d.ts +5 -7
  261. package/themeAugmentation/props.d.ts +6 -8
@@ -1,8 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["slots", "slotProps", "InputProps", "inputProps"],
4
- _excluded2 = ["inputRef"],
5
- _excluded3 = ["ref", "onPaste", "onKeyDown", "inputMode", "readOnly", "clearable", "onClear"];
3
+ const _excluded = ["slots", "slotProps", "InputProps", "inputProps"];
6
4
  import * as React from 'react';
7
5
  import PropTypes from 'prop-types';
8
6
  import MuiTextField from '@mui/material/TextField';
@@ -11,6 +9,7 @@ import { useSlotProps } from '@mui/base/utils';
11
9
  import { refType } from '@mui/utils';
12
10
  import { useDateField } from './useDateField';
13
11
  import { useClearableField } from '../hooks';
12
+ import { convertFieldResponseIntoMuiTextFieldProps } from '../internals/utils/convertFieldResponseIntoMuiTextFieldProps';
14
13
  import { jsx as _jsx } from "react/jsx-runtime";
15
14
  /**
16
15
  * Demos:
@@ -22,7 +21,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
22
21
  *
23
22
  * - [DateField API](https://mui.com/x/api/date-pickers/date-field/)
24
23
  */
25
- const DateField = /*#__PURE__*/React.forwardRef(function DateField(inProps, ref) {
24
+ const DateField = /*#__PURE__*/React.forwardRef(function DateField(inProps, inRef) {
26
25
  const themeProps = useThemeProps({
27
26
  props: inProps,
28
27
  name: 'MuiDateField'
@@ -36,58 +35,26 @@ const DateField = /*#__PURE__*/React.forwardRef(function DateField(inProps, ref)
36
35
  other = _objectWithoutPropertiesLoose(themeProps, _excluded);
37
36
  const ownerState = themeProps;
38
37
  const TextField = slots?.textField ?? MuiTextField;
39
- const _useSlotProps = useSlotProps({
40
- elementType: TextField,
41
- externalSlotProps: slotProps?.textField,
42
- externalForwardedProps: other,
43
- ownerState
44
- }),
45
- {
46
- inputRef: externalInputRef
47
- } = _useSlotProps,
48
- textFieldProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);
38
+ const textFieldProps = useSlotProps({
39
+ elementType: TextField,
40
+ externalSlotProps: slotProps?.textField,
41
+ externalForwardedProps: other,
42
+ additionalProps: {
43
+ ref: inRef
44
+ },
45
+ ownerState
46
+ });
49
47
 
50
48
  // TODO: Remove when mui/material-ui#35088 will be merged
51
49
  textFieldProps.inputProps = _extends({}, inputProps, textFieldProps.inputProps);
52
50
  textFieldProps.InputProps = _extends({}, InputProps, textFieldProps.InputProps);
53
- const _useDateField = useDateField({
54
- props: textFieldProps,
55
- inputRef: externalInputRef
56
- }),
57
- {
58
- ref: inputRef,
59
- onPaste,
60
- onKeyDown,
61
- inputMode,
62
- readOnly,
63
- clearable,
64
- onClear
65
- } = _useDateField,
66
- fieldProps = _objectWithoutPropertiesLoose(_useDateField, _excluded3);
67
- const {
68
- InputProps: ProcessedInputProps,
69
- fieldProps: processedFieldProps
70
- } = useClearableField({
71
- onClear,
72
- clearable,
73
- fieldProps,
74
- InputProps: fieldProps.InputProps,
51
+ const fieldResponse = useDateField(textFieldProps);
52
+ const convertedFieldResponse = convertFieldResponseIntoMuiTextFieldProps(fieldResponse);
53
+ const processedFieldProps = useClearableField(_extends({}, convertedFieldResponse, {
75
54
  slots,
76
55
  slotProps
77
- });
78
- return /*#__PURE__*/_jsx(TextField, _extends({
79
- ref: ref
80
- }, processedFieldProps, {
81
- InputProps: _extends({}, ProcessedInputProps, {
82
- readOnly
83
- }),
84
- inputProps: _extends({}, fieldProps.inputProps, {
85
- inputMode,
86
- onPaste,
87
- onKeyDown,
88
- ref: inputRef
89
- })
90
56
  }));
57
+ return /*#__PURE__*/_jsx(TextField, _extends({}, processedFieldProps));
91
58
  });
92
59
  process.env.NODE_ENV !== "production" ? DateField.propTypes = {
93
60
  // ----------------------------- Warning --------------------------------
@@ -265,7 +232,7 @@ process.env.NODE_ENV !== "production" ? DateField.propTypes = {
265
232
  * 4. If `null` is provided, no section will be selected
266
233
  * If not provided, the selected sections will be handled internally.
267
234
  */
268
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
235
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
269
236
  endIndex: PropTypes.number.isRequired,
270
237
  startIndex: PropTypes.number.isRequired
271
238
  })]),
@@ -16,17 +16,13 @@ const useDefaultizedDateField = props => {
16
16
  maxDate: applyDefaultDate(utils, props.maxDate, defaultDates.maxDate)
17
17
  });
18
18
  };
19
- export const useDateField = ({
20
- props: inProps,
21
- inputRef
22
- }) => {
19
+ export const useDateField = inProps => {
23
20
  const props = useDefaultizedDateField(inProps);
24
21
  const {
25
22
  forwardedProps,
26
23
  internalProps
27
24
  } = splitFieldInternalAndForwardedProps(props, 'date');
28
25
  return useField({
29
- inputRef,
30
26
  forwardedProps,
31
27
  internalProps,
32
28
  valueManager: singleItemValueManager,
@@ -160,6 +160,10 @@ process.env.NODE_ENV !== "production" ? DatePicker.propTypes = {
160
160
  * @default 3
161
161
  */
162
162
  monthsPerRow: PropTypes.oneOf([3, 4]),
163
+ /**
164
+ * Name attribute used by the `input` element in the Field.
165
+ */
166
+ name: PropTypes.string,
163
167
  /**
164
168
  * Callback fired when the value is accepted.
165
169
  * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.
@@ -258,7 +262,7 @@ process.env.NODE_ENV !== "production" ? DatePicker.propTypes = {
258
262
  * 4. If `null` is provided, no section will be selected
259
263
  * If not provided, the selected sections will be handled internally.
260
264
  */
261
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
265
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
262
266
  endIndex: PropTypes.number.isRequired,
263
267
  startIndex: PropTypes.number.isRequired
264
268
  })]),
@@ -1,8 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["slots", "slotProps", "InputProps", "inputProps"],
4
- _excluded2 = ["inputRef"],
5
- _excluded3 = ["ref", "onPaste", "onKeyDown", "inputMode", "readOnly", "clearable", "onClear"];
3
+ const _excluded = ["slots", "slotProps", "InputProps", "inputProps"];
6
4
  import * as React from 'react';
7
5
  import PropTypes from 'prop-types';
8
6
  import MuiTextField from '@mui/material/TextField';
@@ -11,6 +9,7 @@ import { useSlotProps } from '@mui/base/utils';
11
9
  import { refType } from '@mui/utils';
12
10
  import { useDateTimeField } from './useDateTimeField';
13
11
  import { useClearableField } from '../hooks';
12
+ import { convertFieldResponseIntoMuiTextFieldProps } from '../internals/utils/convertFieldResponseIntoMuiTextFieldProps';
14
13
  import { jsx as _jsx } from "react/jsx-runtime";
15
14
  /**
16
15
  * Demos:
@@ -22,7 +21,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
22
21
  *
23
22
  * - [DateTimeField API](https://mui.com/x/api/date-pickers/date-time-field/)
24
23
  */
25
- const DateTimeField = /*#__PURE__*/React.forwardRef(function DateTimeField(inProps, ref) {
24
+ const DateTimeField = /*#__PURE__*/React.forwardRef(function DateTimeField(inProps, inRef) {
26
25
  const themeProps = useThemeProps({
27
26
  props: inProps,
28
27
  name: 'MuiDateTimeField'
@@ -36,58 +35,26 @@ const DateTimeField = /*#__PURE__*/React.forwardRef(function DateTimeField(inPro
36
35
  other = _objectWithoutPropertiesLoose(themeProps, _excluded);
37
36
  const ownerState = themeProps;
38
37
  const TextField = slots?.textField ?? MuiTextField;
39
- const _useSlotProps = useSlotProps({
40
- elementType: TextField,
41
- externalSlotProps: slotProps?.textField,
42
- externalForwardedProps: other,
43
- ownerState
44
- }),
45
- {
46
- inputRef: externalInputRef
47
- } = _useSlotProps,
48
- textFieldProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);
38
+ const textFieldProps = useSlotProps({
39
+ elementType: TextField,
40
+ externalSlotProps: slotProps?.textField,
41
+ externalForwardedProps: other,
42
+ ownerState,
43
+ additionalProps: {
44
+ ref: inRef
45
+ }
46
+ });
49
47
 
50
48
  // TODO: Remove when mui/material-ui#35088 will be merged
51
49
  textFieldProps.inputProps = _extends({}, inputProps, textFieldProps.inputProps);
52
50
  textFieldProps.InputProps = _extends({}, InputProps, textFieldProps.InputProps);
53
- const _useDateTimeField = useDateTimeField({
54
- props: textFieldProps,
55
- inputRef: externalInputRef
56
- }),
57
- {
58
- ref: inputRef,
59
- onPaste,
60
- onKeyDown,
61
- inputMode,
62
- readOnly,
63
- clearable,
64
- onClear
65
- } = _useDateTimeField,
66
- fieldProps = _objectWithoutPropertiesLoose(_useDateTimeField, _excluded3);
67
- const {
68
- InputProps: ProcessedInputProps,
69
- fieldProps: processedFieldProps
70
- } = useClearableField({
71
- onClear,
72
- clearable,
73
- fieldProps,
74
- InputProps: fieldProps.InputProps,
51
+ const fieldResponse = useDateTimeField(textFieldProps);
52
+ const convertedFieldResponse = convertFieldResponseIntoMuiTextFieldProps(fieldResponse);
53
+ const processedFieldProps = useClearableField(_extends({}, convertedFieldResponse, {
75
54
  slots,
76
55
  slotProps
77
- });
78
- return /*#__PURE__*/_jsx(TextField, _extends({
79
- ref: ref
80
- }, processedFieldProps, {
81
- InputProps: _extends({}, ProcessedInputProps, {
82
- readOnly
83
- }),
84
- inputProps: _extends({}, fieldProps.inputProps, {
85
- inputMode,
86
- onPaste,
87
- onKeyDown,
88
- ref: inputRef
89
- })
90
56
  }));
57
+ return /*#__PURE__*/_jsx(TextField, _extends({}, processedFieldProps));
91
58
  });
92
59
  process.env.NODE_ENV !== "production" ? DateTimeField.propTypes = {
93
60
  // ----------------------------- Warning --------------------------------
@@ -298,7 +265,7 @@ process.env.NODE_ENV !== "production" ? DateTimeField.propTypes = {
298
265
  * 4. If `null` is provided, no section will be selected
299
266
  * If not provided, the selected sections will be handled internally.
300
267
  */
301
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
268
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
302
269
  endIndex: PropTypes.number.isRequired,
303
270
  startIndex: PropTypes.number.isRequired
304
271
  })]),
@@ -21,17 +21,13 @@ const useDefaultizedDateTimeField = props => {
21
21
  maxTime: props.maxDateTime ?? props.maxTime
22
22
  });
23
23
  };
24
- export const useDateTimeField = ({
25
- props: inProps,
26
- inputRef
27
- }) => {
24
+ export const useDateTimeField = inProps => {
28
25
  const props = useDefaultizedDateTimeField(inProps);
29
26
  const {
30
27
  forwardedProps,
31
28
  internalProps
32
29
  } = splitFieldInternalAndForwardedProps(props, 'date-time');
33
30
  return useField({
34
- inputRef,
35
31
  forwardedProps,
36
32
  internalProps,
37
33
  valueManager: singleItemValueManager,
@@ -198,6 +198,10 @@ process.env.NODE_ENV !== "production" ? DateTimePicker.propTypes = {
198
198
  * @default 3
199
199
  */
200
200
  monthsPerRow: PropTypes.oneOf([3, 4]),
201
+ /**
202
+ * Name attribute used by the `input` element in the Field.
203
+ */
204
+ name: PropTypes.string,
201
205
  /**
202
206
  * Callback fired when the value is accepted.
203
207
  * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.
@@ -296,7 +300,7 @@ process.env.NODE_ENV !== "production" ? DateTimePicker.propTypes = {
296
300
  * 4. If `null` is provided, no section will be selected
297
301
  * If not provided, the selected sections will be handled internally.
298
302
  */
299
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
303
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
300
304
  endIndex: PropTypes.number.isRequired,
301
305
  startIndex: PropTypes.number.isRequired
302
306
  })]),
@@ -5,7 +5,8 @@ import { resolveComponentProps } from '@mui/base/utils';
5
5
  import { refType } from '@mui/utils';
6
6
  import { singleItemValueManager } from '../internals/utils/valueManagers';
7
7
  import { useDatePickerDefaultizedProps } from '../DatePicker/shared';
8
- import { useLocaleText, useUtils, validateDate } from '../internals';
8
+ import { useLocaleText, useUtils } from '../internals/hooks/useUtils';
9
+ import { validateDate } from '../internals/utils/validation/validateDate';
9
10
  import { useDesktopPicker } from '../internals/hooks/useDesktopPicker';
10
11
  import { CalendarIcon } from '../icons';
11
12
  import { DateField } from '../DateField';
@@ -174,6 +175,10 @@ DesktopDatePicker.propTypes = {
174
175
  * @default 3
175
176
  */
176
177
  monthsPerRow: PropTypes.oneOf([3, 4]),
178
+ /**
179
+ * Name attribute used by the `input` element in the Field.
180
+ */
181
+ name: PropTypes.string,
177
182
  /**
178
183
  * Callback fired when the value is accepted.
179
184
  * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.
@@ -272,7 +277,7 @@ DesktopDatePicker.propTypes = {
272
277
  * 4. If `null` is provided, no section will be selected
273
278
  * If not provided, the selected sections will be handled internally.
274
279
  */
275
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
280
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
276
281
  endIndex: PropTypes.number.isRequired,
277
282
  startIndex: PropTypes.number.isRequired
278
283
  })]),
@@ -251,6 +251,10 @@ DesktopDateTimePicker.propTypes = {
251
251
  * @default 3
252
252
  */
253
253
  monthsPerRow: PropTypes.oneOf([3, 4]),
254
+ /**
255
+ * Name attribute used by the `input` element in the Field.
256
+ */
257
+ name: PropTypes.string,
254
258
  /**
255
259
  * Callback fired when the value is accepted.
256
260
  * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.
@@ -349,7 +353,7 @@ DesktopDateTimePicker.propTypes = {
349
353
  * 4. If `null` is provided, no section will be selected
350
354
  * If not provided, the selected sections will be handled internally.
351
355
  */
352
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
356
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
353
357
  endIndex: PropTypes.number.isRequired,
354
358
  startIndex: PropTypes.number.isRequired
355
359
  })]),
@@ -185,6 +185,10 @@ DesktopTimePicker.propTypes = {
185
185
  * @default 1
186
186
  */
187
187
  minutesStep: PropTypes.number,
188
+ /**
189
+ * Name attribute used by the `input` element in the Field.
190
+ */
191
+ name: PropTypes.string,
188
192
  /**
189
193
  * Callback fired when the value is accepted.
190
194
  * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.
@@ -265,7 +269,7 @@ DesktopTimePicker.propTypes = {
265
269
  * 4. If `null` is provided, no section will be selected
266
270
  * If not provided, the selected sections will be handled internally.
267
271
  */
268
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
272
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
269
273
  endIndex: PropTypes.number.isRequired,
270
274
  startIndex: PropTypes.number.isRequired
271
275
  })]),
@@ -5,7 +5,8 @@ import { resolveComponentProps } from '@mui/base/utils';
5
5
  import { refType } from '@mui/utils';
6
6
  import { useMobilePicker } from '../internals/hooks/useMobilePicker';
7
7
  import { useDatePickerDefaultizedProps } from '../DatePicker/shared';
8
- import { useLocaleText, useUtils, validateDate } from '../internals';
8
+ import { useUtils, useLocaleText } from '../internals/hooks/useUtils';
9
+ import { validateDate } from '../internals/utils/validation/validateDate';
9
10
  import { DateField } from '../DateField';
10
11
  import { extractValidationProps } from '../internals/utils/validation/extractValidationProps';
11
12
  import { singleItemValueManager } from '../internals/utils/valueManagers';
@@ -171,6 +172,10 @@ MobileDatePicker.propTypes = {
171
172
  * @default 3
172
173
  */
173
174
  monthsPerRow: PropTypes.oneOf([3, 4]),
175
+ /**
176
+ * Name attribute used by the `input` element in the Field.
177
+ */
178
+ name: PropTypes.string,
174
179
  /**
175
180
  * Callback fired when the value is accepted.
176
181
  * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.
@@ -269,7 +274,7 @@ MobileDatePicker.propTypes = {
269
274
  * 4. If `null` is provided, no section will be selected
270
275
  * If not provided, the selected sections will be handled internally.
271
276
  */
272
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
277
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
273
278
  endIndex: PropTypes.number.isRequired,
274
279
  startIndex: PropTypes.number.isRequired
275
280
  })]),
@@ -220,6 +220,10 @@ MobileDateTimePicker.propTypes = {
220
220
  * @default 3
221
221
  */
222
222
  monthsPerRow: PropTypes.oneOf([3, 4]),
223
+ /**
224
+ * Name attribute used by the `input` element in the Field.
225
+ */
226
+ name: PropTypes.string,
223
227
  /**
224
228
  * Callback fired when the value is accepted.
225
229
  * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.
@@ -318,7 +322,7 @@ MobileDateTimePicker.propTypes = {
318
322
  * 4. If `null` is provided, no section will be selected
319
323
  * If not provided, the selected sections will be handled internally.
320
324
  */
321
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
325
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
322
326
  endIndex: PropTypes.number.isRequired,
323
327
  startIndex: PropTypes.number.isRequired
324
328
  })]),
@@ -164,6 +164,10 @@ MobileTimePicker.propTypes = {
164
164
  * @default 1
165
165
  */
166
166
  minutesStep: PropTypes.number,
167
+ /**
168
+ * Name attribute used by the `input` element in the Field.
169
+ */
170
+ name: PropTypes.string,
167
171
  /**
168
172
  * Callback fired when the value is accepted.
169
173
  * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.
@@ -244,7 +248,7 @@ MobileTimePicker.propTypes = {
244
248
  * 4. If `null` is provided, no section will be selected
245
249
  * If not provided, the selected sections will be handled internally.
246
250
  */
247
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
251
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
248
252
  endIndex: PropTypes.number.isRequired,
249
253
  startIndex: PropTypes.number.isRequired
250
254
  })]),
@@ -110,7 +110,6 @@ export const MonthCalendar = /*#__PURE__*/React.forwardRef(function MonthCalenda
110
110
  granularity: SECTION_TYPE_GRANULARITY.month
111
111
  }), [] // eslint-disable-line react-hooks/exhaustive-deps
112
112
  );
113
-
114
113
  const ownerState = props;
115
114
  const classes = useUtilityClasses(ownerState);
116
115
  const todayMonth = React.useMemo(() => utils.getMonth(now), [utils, now]);
@@ -36,7 +36,12 @@ const MultiSectionDigitalClockSectionRoot = styled(MenuList, {
36
36
  '@media (prefers-reduced-motion: no-preference)': {
37
37
  scrollBehavior: ownerState.alreadyRendered ? 'smooth' : 'auto'
38
38
  },
39
- '&:hover': {
39
+ '@media (pointer: fine)': {
40
+ '&:hover': {
41
+ overflowY: 'auto'
42
+ }
43
+ },
44
+ '@media (pointer: none), (pointer: coarse)': {
40
45
  overflowY: 'auto'
41
46
  },
42
47
  '&:not(:first-of-type)': {
@@ -152,7 +157,8 @@ export const MultiSectionDigitalClockSection = /*#__PURE__*/React.forwardRef(fun
152
157
  "aria-disabled": readOnly,
153
158
  "aria-label": option.ariaLabel,
154
159
  "aria-selected": isSelected,
155
- tabIndex: tabIndex
160
+ tabIndex: tabIndex,
161
+ className: classes.item
156
162
  }, slotProps?.digitalClockSectionItem, {
157
163
  children: option.label
158
164
  }), option.label);
@@ -1,6 +1,6 @@
1
1
  import generateUtilityClass from '@mui/utils/generateUtilityClass';
2
2
  import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
3
3
  export function getMultiSectionDigitalClockSectionUtilityClass(slot) {
4
- return generateUtilityClass('MuiMultiSectionDigitalClock', slot);
4
+ return generateUtilityClass('MuiMultiSectionDigitalClockSection', slot);
5
5
  }
6
- export const multiSectionDigitalClockSectionClasses = generateUtilityClasses('MuiMultiSectionDigitalClock', ['root', 'item']);
6
+ export const multiSectionDigitalClockSectionClasses = generateUtilityClasses('MuiMultiSectionDigitalClockSection', ['root', 'item']);
@@ -38,13 +38,13 @@ const PickersCalendarHeaderRoot = styled('div', {
38
38
  })({
39
39
  display: 'flex',
40
40
  alignItems: 'center',
41
- marginTop: 16,
42
- marginBottom: 8,
41
+ marginTop: 12,
42
+ marginBottom: 4,
43
43
  paddingLeft: 24,
44
44
  paddingRight: 12,
45
45
  // prevent jumping in safari
46
- maxHeight: 30,
47
- minHeight: 30
46
+ maxHeight: 40,
47
+ minHeight: 40
48
48
  });
49
49
  const PickersCalendarHeaderLabelContainer = styled('div', {
50
50
  name: 'MuiPickersCalendarHeader',
@@ -4,7 +4,7 @@ import PropTypes from 'prop-types';
4
4
  import { useDatePickerDefaultizedProps } from '../DatePicker/shared';
5
5
  import { renderDateViewCalendar } from '../dateViewRenderers';
6
6
  import { useStaticPicker } from '../internals/hooks/useStaticPicker';
7
- import { validateDate } from '../internals';
7
+ import { validateDate } from '../internals/utils/validation/validateDate';
8
8
  import { singleItemValueManager } from '../internals/utils/valueManagers';
9
9
  /**
10
10
  * Demos:
@@ -276,7 +276,6 @@ export function Clock(inProps) {
276
276
  // do nothing
277
277
  }
278
278
  };
279
-
280
279
  return /*#__PURE__*/_jsxs(ClockRoot, {
281
280
  className: clsx(className, classes.root),
282
281
  children: [/*#__PURE__*/_jsxs(ClockClock, {
@@ -85,7 +85,6 @@ export function ClockPointer(inProps) {
85
85
  if (type === 'hours' && viewValue > 12) {
86
86
  angle -= 360; // round up angle to max 360 degrees
87
87
  }
88
-
89
88
  return {
90
89
  height: Math.round((isInner ? 0.26 : 0.4) * CLOCK_WIDTH),
91
90
  transform: `rotateZ(${angle}deg)`
@@ -1,8 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["slots", "slotProps", "InputProps", "inputProps"],
4
- _excluded2 = ["inputRef"],
5
- _excluded3 = ["ref", "onPaste", "onKeyDown", "inputMode", "readOnly", "clearable", "onClear"];
3
+ const _excluded = ["slots", "slotProps", "InputProps", "inputProps"];
6
4
  import * as React from 'react';
7
5
  import PropTypes from 'prop-types';
8
6
  import MuiTextField from '@mui/material/TextField';
@@ -11,6 +9,7 @@ import { useSlotProps } from '@mui/base/utils';
11
9
  import { refType } from '@mui/utils';
12
10
  import { useTimeField } from './useTimeField';
13
11
  import { useClearableField } from '../hooks';
12
+ import { convertFieldResponseIntoMuiTextFieldProps } from '../internals/utils/convertFieldResponseIntoMuiTextFieldProps';
14
13
  import { jsx as _jsx } from "react/jsx-runtime";
15
14
  /**
16
15
  * Demos:
@@ -22,7 +21,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
22
21
  *
23
22
  * - [TimeField API](https://mui.com/x/api/date-pickers/time-field/)
24
23
  */
25
- const TimeField = /*#__PURE__*/React.forwardRef(function TimeField(inProps, ref) {
24
+ const TimeField = /*#__PURE__*/React.forwardRef(function TimeField(inProps, inRef) {
26
25
  const themeProps = useThemeProps({
27
26
  props: inProps,
28
27
  name: 'MuiTimeField'
@@ -36,58 +35,26 @@ const TimeField = /*#__PURE__*/React.forwardRef(function TimeField(inProps, ref)
36
35
  other = _objectWithoutPropertiesLoose(themeProps, _excluded);
37
36
  const ownerState = themeProps;
38
37
  const TextField = slots?.textField ?? MuiTextField;
39
- const _useSlotProps = useSlotProps({
40
- elementType: TextField,
41
- externalSlotProps: slotProps?.textField,
42
- externalForwardedProps: other,
43
- ownerState
44
- }),
45
- {
46
- inputRef: externalInputRef
47
- } = _useSlotProps,
48
- textFieldProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);
38
+ const textFieldProps = useSlotProps({
39
+ elementType: TextField,
40
+ externalSlotProps: slotProps?.textField,
41
+ externalForwardedProps: other,
42
+ ownerState,
43
+ additionalProps: {
44
+ ref: inRef
45
+ }
46
+ });
49
47
 
50
48
  // TODO: Remove when mui/material-ui#35088 will be merged
51
49
  textFieldProps.inputProps = _extends({}, inputProps, textFieldProps.inputProps);
52
50
  textFieldProps.InputProps = _extends({}, InputProps, textFieldProps.InputProps);
53
- const _useTimeField = useTimeField({
54
- props: textFieldProps,
55
- inputRef: externalInputRef
56
- }),
57
- {
58
- ref: inputRef,
59
- onPaste,
60
- onKeyDown,
61
- inputMode,
62
- readOnly,
63
- clearable,
64
- onClear
65
- } = _useTimeField,
66
- fieldProps = _objectWithoutPropertiesLoose(_useTimeField, _excluded3);
67
- const {
68
- InputProps: ProcessedInputProps,
69
- fieldProps: processedFieldProps
70
- } = useClearableField({
71
- onClear,
72
- clearable,
73
- fieldProps,
74
- InputProps: fieldProps.InputProps,
51
+ const fieldResponse = useTimeField(textFieldProps);
52
+ const convertedFieldResponse = convertFieldResponseIntoMuiTextFieldProps(fieldResponse);
53
+ const processedFieldProps = useClearableField(_extends({}, convertedFieldResponse, {
75
54
  slots,
76
55
  slotProps
77
- });
78
- return /*#__PURE__*/_jsx(TextField, _extends({
79
- ref: ref
80
- }, processedFieldProps, {
81
- InputProps: _extends({}, ProcessedInputProps, {
82
- readOnly
83
- }),
84
- inputProps: _extends({}, fieldProps.inputProps, {
85
- inputMode,
86
- onPaste,
87
- onKeyDown,
88
- ref: inputRef
89
- })
90
56
  }));
57
+ return /*#__PURE__*/_jsx(TextField, _extends({}, processedFieldProps));
91
58
  });
92
59
  process.env.NODE_ENV !== "production" ? TimeField.propTypes = {
93
60
  // ----------------------------- Warning --------------------------------
@@ -282,7 +249,7 @@ process.env.NODE_ENV !== "production" ? TimeField.propTypes = {
282
249
  * 4. If `null` is provided, no section will be selected
283
250
  * If not provided, the selected sections will be handled internally.
284
251
  */
285
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
252
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
286
253
  endIndex: PropTypes.number.isRequired,
287
254
  startIndex: PropTypes.number.isRequired
288
255
  })]),