@mui/x-date-pickers 7.0.0-alpha.4 → 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 (173) hide show
  1. package/CHANGELOG.md +122 -0
  2. package/DateCalendar/DateCalendar.types.d.ts +6 -6
  3. package/DateCalendar/DayCalendar.d.ts +4 -4
  4. package/DateCalendar/index.d.ts +1 -1
  5. package/DateField/DateField.js +17 -50
  6. package/DateField/DateField.types.d.ts +5 -9
  7. package/DateField/useDateField.d.ts +2 -2
  8. package/DateField/useDateField.js +1 -5
  9. package/DatePicker/DatePicker.js +5 -1
  10. package/DatePicker/DatePicker.types.d.ts +6 -6
  11. package/DatePicker/index.d.ts +1 -1
  12. package/DatePicker/shared.d.ts +6 -6
  13. package/DateTimeField/DateTimeField.js +17 -50
  14. package/DateTimeField/DateTimeField.types.d.ts +5 -9
  15. package/DateTimeField/useDateTimeField.d.ts +2 -2
  16. package/DateTimeField/useDateTimeField.js +1 -5
  17. package/DateTimePicker/DateTimePicker.js +5 -1
  18. package/DateTimePicker/DateTimePicker.types.d.ts +6 -6
  19. package/DateTimePicker/index.d.ts +1 -1
  20. package/DateTimePicker/shared.d.ts +6 -6
  21. package/DesktopDatePicker/DesktopDatePicker.js +7 -2
  22. package/DesktopDatePicker/DesktopDatePicker.types.d.ts +6 -6
  23. package/DesktopDatePicker/index.d.ts +1 -1
  24. package/DesktopDateTimePicker/DesktopDateTimePicker.js +5 -1
  25. package/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +8 -8
  26. package/DesktopDateTimePicker/index.d.ts +1 -1
  27. package/DesktopTimePicker/DesktopTimePicker.js +5 -1
  28. package/DesktopTimePicker/DesktopTimePicker.types.d.ts +8 -8
  29. package/DesktopTimePicker/index.d.ts +1 -1
  30. package/DigitalClock/DigitalClock.types.d.ts +4 -4
  31. package/DigitalClock/index.d.ts +1 -1
  32. package/MobileDatePicker/MobileDatePicker.js +7 -2
  33. package/MobileDatePicker/MobileDatePicker.types.d.ts +6 -6
  34. package/MobileDatePicker/index.d.ts +1 -1
  35. package/MobileDateTimePicker/MobileDateTimePicker.js +5 -1
  36. package/MobileDateTimePicker/MobileDateTimePicker.types.d.ts +6 -6
  37. package/MobileDateTimePicker/index.d.ts +1 -1
  38. package/MobileTimePicker/MobileTimePicker.js +5 -1
  39. package/MobileTimePicker/MobileTimePicker.types.d.ts +6 -6
  40. package/MobileTimePicker/index.d.ts +1 -1
  41. package/MultiSectionDigitalClock/MultiSectionDigitalClock.types.d.ts +4 -4
  42. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.d.ts +3 -3
  43. package/MultiSectionDigitalClock/index.d.ts +1 -1
  44. package/PickersCalendarHeader/PickersCalendarHeader.types.d.ts +8 -8
  45. package/PickersCalendarHeader/index.d.ts +1 -1
  46. package/PickersLayout/PickersLayout.types.d.ts +6 -6
  47. package/PickersLayout/index.d.ts +1 -1
  48. package/StaticDatePicker/StaticDatePicker.js +1 -1
  49. package/StaticDatePicker/StaticDatePicker.types.d.ts +7 -7
  50. package/StaticDatePicker/index.d.ts +1 -1
  51. package/StaticDateTimePicker/StaticDateTimePicker.types.d.ts +7 -7
  52. package/StaticDateTimePicker/index.d.ts +1 -1
  53. package/StaticTimePicker/StaticTimePicker.types.d.ts +7 -7
  54. package/StaticTimePicker/index.d.ts +1 -1
  55. package/TimeClock/TimeClock.types.d.ts +5 -5
  56. package/TimeClock/index.d.ts +1 -1
  57. package/TimeField/TimeField.js +17 -50
  58. package/TimeField/TimeField.types.d.ts +5 -9
  59. package/TimeField/useTimeField.d.ts +2 -2
  60. package/TimeField/useTimeField.js +1 -5
  61. package/TimePicker/TimePicker.js +5 -1
  62. package/TimePicker/TimePicker.types.d.ts +6 -6
  63. package/TimePicker/index.d.ts +1 -1
  64. package/TimePicker/shared.d.ts +5 -5
  65. package/hooks/index.d.ts +1 -0
  66. package/hooks/useClearableField.d.ts +32 -20
  67. package/hooks/useClearableField.js +32 -33
  68. package/index.js +1 -1
  69. package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.types.d.ts +9 -9
  70. package/internals/components/PickersArrowSwitcher/index.d.ts +3 -1
  71. package/internals/components/PickersArrowSwitcher/index.js +2 -1
  72. package/internals/components/PickersModalDialog.d.ts +4 -4
  73. package/internals/components/PickersPopper.d.ts +4 -4
  74. package/internals/hooks/useDesktopPicker/index.d.ts +1 -1
  75. package/internals/hooks/useDesktopPicker/useDesktopPicker.js +2 -0
  76. package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +8 -8
  77. package/internals/hooks/useField/index.d.ts +1 -1
  78. package/internals/hooks/useField/useField.js +3 -3
  79. package/internals/hooks/useField/useField.types.d.ts +4 -24
  80. package/internals/hooks/useField/useField.utils.js +24 -4
  81. package/internals/hooks/useField/useFieldState.js +7 -3
  82. package/internals/hooks/useMobilePicker/index.d.ts +1 -1
  83. package/internals/hooks/useMobilePicker/useMobilePicker.js +3 -1
  84. package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +7 -7
  85. package/internals/hooks/useStaticPicker/index.d.ts +1 -1
  86. package/internals/hooks/useStaticPicker/useStaticPicker.types.d.ts +5 -5
  87. package/internals/index.d.ts +7 -6
  88. package/internals/index.js +1 -0
  89. package/internals/models/props/basePickerProps.d.ts +4 -0
  90. package/internals/utils/convertFieldResponseIntoMuiTextFieldProps.d.ts +3 -0
  91. package/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +26 -0
  92. package/legacy/DateField/DateField.js +19 -47
  93. package/legacy/DateField/useDateField.js +1 -4
  94. package/legacy/DatePicker/DatePicker.js +5 -1
  95. package/legacy/DateTimeField/DateTimeField.js +19 -47
  96. package/legacy/DateTimeField/useDateTimeField.js +1 -4
  97. package/legacy/DateTimePicker/DateTimePicker.js +5 -1
  98. package/legacy/DesktopDatePicker/DesktopDatePicker.js +7 -2
  99. package/legacy/DesktopDateTimePicker/DesktopDateTimePicker.js +5 -1
  100. package/legacy/DesktopTimePicker/DesktopTimePicker.js +5 -1
  101. package/legacy/MobileDatePicker/MobileDatePicker.js +7 -2
  102. package/legacy/MobileDateTimePicker/MobileDateTimePicker.js +5 -1
  103. package/legacy/MobileTimePicker/MobileTimePicker.js +5 -1
  104. package/legacy/StaticDatePicker/StaticDatePicker.js +1 -1
  105. package/legacy/TimeField/TimeField.js +19 -47
  106. package/legacy/TimeField/useTimeField.js +1 -4
  107. package/legacy/TimePicker/TimePicker.js +5 -1
  108. package/legacy/hooks/useClearableField.js +30 -32
  109. package/legacy/index.js +1 -1
  110. package/legacy/internals/components/PickersArrowSwitcher/index.js +2 -1
  111. package/legacy/internals/hooks/useDesktopPicker/useDesktopPicker.js +2 -0
  112. package/legacy/internals/hooks/useField/useField.js +4 -4
  113. package/legacy/internals/hooks/useField/useField.utils.js +26 -4
  114. package/legacy/internals/hooks/useField/useFieldState.js +7 -3
  115. package/legacy/internals/hooks/useMobilePicker/useMobilePicker.js +3 -1
  116. package/legacy/internals/index.js +1 -0
  117. package/legacy/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +24 -0
  118. package/models/fields.d.ts +2 -1
  119. package/modern/DateField/DateField.js +17 -50
  120. package/modern/DateField/useDateField.js +1 -5
  121. package/modern/DatePicker/DatePicker.js +5 -1
  122. package/modern/DateTimeField/DateTimeField.js +17 -50
  123. package/modern/DateTimeField/useDateTimeField.js +1 -5
  124. package/modern/DateTimePicker/DateTimePicker.js +5 -1
  125. package/modern/DesktopDatePicker/DesktopDatePicker.js +7 -2
  126. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +5 -1
  127. package/modern/DesktopTimePicker/DesktopTimePicker.js +5 -1
  128. package/modern/MobileDatePicker/MobileDatePicker.js +7 -2
  129. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +5 -1
  130. package/modern/MobileTimePicker/MobileTimePicker.js +5 -1
  131. package/modern/StaticDatePicker/StaticDatePicker.js +1 -1
  132. package/modern/TimeField/TimeField.js +17 -50
  133. package/modern/TimeField/useTimeField.js +1 -5
  134. package/modern/TimePicker/TimePicker.js +5 -1
  135. package/modern/hooks/useClearableField.js +32 -33
  136. package/modern/index.js +1 -1
  137. package/modern/internals/components/PickersArrowSwitcher/index.js +2 -1
  138. package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.js +2 -0
  139. package/modern/internals/hooks/useField/useField.js +3 -3
  140. package/modern/internals/hooks/useField/useField.utils.js +24 -4
  141. package/modern/internals/hooks/useField/useFieldState.js +7 -3
  142. package/modern/internals/hooks/useMobilePicker/useMobilePicker.js +3 -1
  143. package/modern/internals/index.js +1 -0
  144. package/modern/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +26 -0
  145. package/node/DateField/DateField.js +18 -51
  146. package/node/DateField/useDateField.js +1 -5
  147. package/node/DatePicker/DatePicker.js +5 -1
  148. package/node/DateTimeField/DateTimeField.js +18 -51
  149. package/node/DateTimeField/useDateTimeField.js +1 -5
  150. package/node/DateTimePicker/DateTimePicker.js +5 -1
  151. package/node/DesktopDatePicker/DesktopDatePicker.js +10 -5
  152. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +5 -1
  153. package/node/DesktopTimePicker/DesktopTimePicker.js +5 -1
  154. package/node/MobileDatePicker/MobileDatePicker.js +10 -5
  155. package/node/MobileDateTimePicker/MobileDateTimePicker.js +5 -1
  156. package/node/MobileTimePicker/MobileTimePicker.js +5 -1
  157. package/node/StaticDatePicker/StaticDatePicker.js +2 -2
  158. package/node/TimeField/TimeField.js +18 -51
  159. package/node/TimeField/useTimeField.js +1 -5
  160. package/node/TimePicker/TimePicker.js +5 -1
  161. package/node/hooks/useClearableField.js +33 -34
  162. package/node/index.js +1 -1
  163. package/node/internals/components/PickersArrowSwitcher/index.js +14 -1
  164. package/node/internals/hooks/useDesktopPicker/useDesktopPicker.js +2 -0
  165. package/node/internals/hooks/useField/useField.js +3 -3
  166. package/node/internals/hooks/useField/useField.utils.js +24 -4
  167. package/node/internals/hooks/useField/useFieldState.js +7 -3
  168. package/node/internals/hooks/useMobilePicker/useMobilePicker.js +3 -1
  169. package/node/internals/index.js +7 -0
  170. package/node/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +34 -0
  171. package/package.json +2 -2
  172. package/themeAugmentation/overrides.d.ts +5 -7
  173. package/themeAugmentation/props.d.ts +6 -8
@@ -1,9 +1,9 @@
1
1
  export { PickersArrowSwitcher } from './components/PickersArrowSwitcher/PickersArrowSwitcher';
2
- export type { ExportedPickersArrowSwitcherProps, PickersArrowSwitcherSlotsComponent, PickersArrowSwitcherSlotsComponentsProps, } from './components/PickersArrowSwitcher';
2
+ export type { ExportedPickersArrowSwitcherProps, PickersArrowSwitcherSlots, PickersArrowSwitcherSlotProps, } from './components/PickersArrowSwitcher';
3
3
  export { PickersModalDialog } from './components/PickersModalDialog';
4
- export type { PickersModalDialogSlotsComponent, PickersModalDialogSlotsComponentsProps, } from './components/PickersModalDialog';
4
+ export type { PickersModalDialogSlots, PickersModalDialogSlotProps, } from './components/PickersModalDialog';
5
5
  export { PickersPopper } from './components/PickersPopper';
6
- export type { PickersPopperSlotsComponent, PickersPopperSlotsComponentsProps, } from './components/PickersPopper';
6
+ export type { PickersPopperSlots, PickersPopperSlotProps } from './components/PickersPopper';
7
7
  export { PickersToolbar } from './components/PickersToolbar';
8
8
  export type { PickersToolbarProps } from './components/PickersToolbar';
9
9
  export { pickersToolbarClasses } from './components/pickersToolbarClasses';
@@ -24,14 +24,14 @@ export { DAY_MARGIN, DIALOG_WIDTH } from './constants/dimensions';
24
24
  export { useControlledValueWithTimezone } from './hooks/useValueWithTimezone';
25
25
  export type { DesktopOnlyPickerProps } from './hooks/useDesktopPicker';
26
26
  export { useField, createDateStrForInputFromSections, addPositionPropertiesToSections, } from './hooks/useField';
27
- export type { UseFieldInternalProps, UseFieldParams, UseFieldResponse, UseFieldForwardedProps, FieldValueManager, FieldChangeHandler, FieldChangeHandlerContext, FieldSlotsComponents, FieldSlotsComponentsProps, } from './hooks/useField';
27
+ export type { UseFieldInternalProps, UseFieldParams, UseFieldResponse, UseFieldForwardedProps, FieldValueManager, FieldChangeHandler, FieldChangeHandlerContext, } from './hooks/useField';
28
28
  export type { MobileOnlyPickerProps } from './hooks/useMobilePicker';
29
29
  export { usePicker } from './hooks/usePicker';
30
30
  export type { UsePickerResponse, UsePickerParams, UsePickerProps } from './hooks/usePicker';
31
31
  export type { UsePickerValueNonStaticProps, PickerValueManager, PickerSelectionState, } from './hooks/usePicker/usePickerValue.types';
32
32
  export type { UsePickerViewsNonStaticProps, PickerViewRendererLookup, UsePickerViewsProps, } from './hooks/usePicker/usePickerViews';
33
33
  export { useStaticPicker } from './hooks/useStaticPicker';
34
- export type { StaticOnlyPickerProps, UseStaticPickerSlotsComponent, UseStaticPickerSlotsComponentsProps, } from './hooks/useStaticPicker';
34
+ export type { StaticOnlyPickerProps, UseStaticPickerSlots, UseStaticPickerSlotProps, } from './hooks/useStaticPicker';
35
35
  export { useLocalizationContext, useDefaultDates, useUtils, useLocaleText, useNow, } from './hooks/useUtils';
36
36
  export type { ExportedUseViewsOptions } from './hooks/useViews';
37
37
  export { useValidation } from './hooks/useValidation';
@@ -43,6 +43,7 @@ export type { BaseToolbarProps, ExportedBaseToolbarProps } from './models/props/
43
43
  export type { DefaultizedProps, MakeOptional } from './models/helpers';
44
44
  export type { WrapperVariant } from './models/common';
45
45
  export type { BaseDateValidationProps, BaseTimeValidationProps, TimeValidationProps, MonthValidationProps, YearValidationProps, DayValidationProps, DateTimeValidationProps, } from './models/validation';
46
+ export { convertFieldResponseIntoMuiTextFieldProps } from './utils/convertFieldResponseIntoMuiTextFieldProps';
46
47
  export { applyDefaultDate, replaceInvalidDateByNull, areDatesEqual, getTodayDate, } from './utils/date-utils';
47
48
  export { splitFieldInternalAndForwardedProps } from './utils/fields';
48
49
  export { getDefaultReferenceDate } from './utils/getDefaultReferenceDate';
@@ -54,6 +55,6 @@ export { validateDateTime } from './utils/validation/validateDateTime';
54
55
  export { validateTime } from './utils/validation/validateTime';
55
56
  export { buildDeprecatedPropsWarning, buildWarning } from './utils/warning';
56
57
  export { DayCalendar } from '../DateCalendar/DayCalendar';
57
- export type { DayCalendarProps, DayCalendarSlotsComponent, DayCalendarSlotsComponentsProps, ExportedDayCalendarProps, } from '../DateCalendar/DayCalendar';
58
+ export type { DayCalendarProps, DayCalendarSlots, DayCalendarSlotProps, ExportedDayCalendarProps, } from '../DateCalendar/DayCalendar';
58
59
  export type { ExportedDateCalendarProps } from '../DateCalendar/DateCalendar.types';
59
60
  export { useCalendarState } from '../DateCalendar/useCalendarState';
@@ -16,6 +16,7 @@ export { useStaticPicker } from './hooks/useStaticPicker';
16
16
  export { useLocalizationContext, useDefaultDates, useUtils, useLocaleText, useNow } from './hooks/useUtils';
17
17
  export { useValidation } from './hooks/useValidation';
18
18
  export { usePreviousMonthDisabled, useNextMonthDisabled } from './hooks/date-helpers-hooks';
19
+ export { convertFieldResponseIntoMuiTextFieldProps } from './utils/convertFieldResponseIntoMuiTextFieldProps';
19
20
  export { applyDefaultDate, replaceInvalidDateByNull, areDatesEqual, getTodayDate } from './utils/date-utils';
20
21
  export { splitFieldInternalAndForwardedProps } from './utils/fields';
21
22
  export { getDefaultReferenceDate } from './utils/getDefaultReferenceDate';
@@ -59,4 +59,8 @@ export interface BaseNonRangeNonStaticPickerProps {
59
59
  * Pass a ref to the `input` element.
60
60
  */
61
61
  inputRef?: React.Ref<HTMLInputElement>;
62
+ /**
63
+ * Name attribute used by the `input` element in the Field.
64
+ */
65
+ name?: string;
62
66
  }
@@ -0,0 +1,3 @@
1
+ import { TextFieldProps } from '@mui/material/TextField';
2
+ import { UseFieldResponse } from '../hooks/useField';
3
+ export declare const convertFieldResponseIntoMuiTextFieldProps: <TFieldResponse extends UseFieldResponse<any>>(fieldResponse: TFieldResponse) => TextFieldProps;
@@ -0,0 +1,26 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
+ const _excluded = ["onPaste", "onKeyDown", "inputMode", "readOnly", "InputProps", "inputProps", "inputRef"];
4
+ export const convertFieldResponseIntoMuiTextFieldProps = fieldResponse => {
5
+ const {
6
+ onPaste,
7
+ onKeyDown,
8
+ inputMode,
9
+ readOnly,
10
+ InputProps,
11
+ inputProps,
12
+ inputRef
13
+ } = fieldResponse,
14
+ other = _objectWithoutPropertiesLoose(fieldResponse, _excluded);
15
+ return _extends({}, other, {
16
+ InputProps: _extends({}, InputProps != null ? InputProps : {}, {
17
+ readOnly
18
+ }),
19
+ inputProps: _extends({}, inputProps != null ? inputProps : {}, {
20
+ inputMode,
21
+ onPaste,
22
+ onKeyDown,
23
+ ref: inputRef
24
+ })
25
+ });
26
+ };
@@ -1,8 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
- var _excluded = ["slots", "slotProps", "InputProps", "inputProps"],
4
- _excluded2 = ["inputRef"],
5
- _excluded3 = ["ref", "onPaste", "onKeyDown", "inputMode", "readOnly", "clearable", "onClear"];
3
+ var _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
- var DateField = /*#__PURE__*/React.forwardRef(function DateField(inProps, ref) {
24
+ var DateField = /*#__PURE__*/React.forwardRef(function DateField(inProps, inRef) {
26
25
  var _slots$textField;
27
26
  var themeProps = useThemeProps({
28
27
  props: inProps,
@@ -35,53 +34,26 @@ var DateField = /*#__PURE__*/React.forwardRef(function DateField(inProps, ref) {
35
34
  other = _objectWithoutProperties(themeProps, _excluded);
36
35
  var ownerState = themeProps;
37
36
  var TextField = (_slots$textField = slots == null ? void 0 : slots.textField) != null ? _slots$textField : MuiTextField;
38
- var _useSlotProps = useSlotProps({
39
- elementType: TextField,
40
- externalSlotProps: slotProps == null ? void 0 : slotProps.textField,
41
- externalForwardedProps: other,
42
- ownerState: ownerState
43
- }),
44
- externalInputRef = _useSlotProps.inputRef,
45
- textFieldProps = _objectWithoutProperties(_useSlotProps, _excluded2);
37
+ var textFieldProps = useSlotProps({
38
+ elementType: TextField,
39
+ externalSlotProps: slotProps == null ? void 0 : slotProps.textField,
40
+ externalForwardedProps: other,
41
+ additionalProps: {
42
+ ref: inRef
43
+ },
44
+ ownerState: ownerState
45
+ });
46
46
 
47
47
  // TODO: Remove when mui/material-ui#35088 will be merged
48
48
  textFieldProps.inputProps = _extends({}, inputProps, textFieldProps.inputProps);
49
49
  textFieldProps.InputProps = _extends({}, InputProps, textFieldProps.InputProps);
50
- var _useDateField = useDateField({
51
- props: textFieldProps,
52
- inputRef: externalInputRef
53
- }),
54
- inputRef = _useDateField.ref,
55
- onPaste = _useDateField.onPaste,
56
- onKeyDown = _useDateField.onKeyDown,
57
- inputMode = _useDateField.inputMode,
58
- readOnly = _useDateField.readOnly,
59
- clearable = _useDateField.clearable,
60
- onClear = _useDateField.onClear,
61
- fieldProps = _objectWithoutProperties(_useDateField, _excluded3);
62
- var _useClearableField = useClearableField({
63
- onClear: onClear,
64
- clearable: clearable,
65
- fieldProps: fieldProps,
66
- InputProps: fieldProps.InputProps,
67
- slots: slots,
68
- slotProps: slotProps
69
- }),
70
- ProcessedInputProps = _useClearableField.InputProps,
71
- processedFieldProps = _useClearableField.fieldProps;
72
- return /*#__PURE__*/_jsx(TextField, _extends({
73
- ref: ref
74
- }, processedFieldProps, {
75
- InputProps: _extends({}, ProcessedInputProps, {
76
- readOnly: readOnly
77
- }),
78
- inputProps: _extends({}, fieldProps.inputProps, {
79
- inputMode: inputMode,
80
- onPaste: onPaste,
81
- onKeyDown: onKeyDown,
82
- ref: inputRef
83
- })
50
+ var fieldResponse = useDateField(textFieldProps);
51
+ var convertedFieldResponse = convertFieldResponseIntoMuiTextFieldProps(fieldResponse);
52
+ var processedFieldProps = useClearableField(_extends({}, convertedFieldResponse, {
53
+ slots: slots,
54
+ slotProps: slotProps
84
55
  }));
56
+ return /*#__PURE__*/_jsx(TextField, _extends({}, processedFieldProps));
85
57
  });
86
58
  process.env.NODE_ENV !== "production" ? DateField.propTypes = {
87
59
  // ----------------------------- Warning --------------------------------
@@ -259,7 +231,7 @@ process.env.NODE_ENV !== "production" ? DateField.propTypes = {
259
231
  * 4. If `null` is provided, no section will be selected
260
232
  * If not provided, the selected sections will be handled internally.
261
233
  */
262
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
234
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
263
235
  endIndex: PropTypes.number.isRequired,
264
236
  startIndex: PropTypes.number.isRequired
265
237
  })]),
@@ -17,15 +17,12 @@ var useDefaultizedDateField = function useDefaultizedDateField(props) {
17
17
  maxDate: applyDefaultDate(utils, props.maxDate, defaultDates.maxDate)
18
18
  });
19
19
  };
20
- export var useDateField = function useDateField(_ref) {
21
- var inProps = _ref.props,
22
- inputRef = _ref.inputRef;
20
+ export var useDateField = function useDateField(inProps) {
23
21
  var props = useDefaultizedDateField(inProps);
24
22
  var _splitFieldInternalAn = splitFieldInternalAndForwardedProps(props, 'date'),
25
23
  forwardedProps = _splitFieldInternalAn.forwardedProps,
26
24
  internalProps = _splitFieldInternalAn.internalProps;
27
25
  return useField({
28
- inputRef: inputRef,
29
26
  forwardedProps: forwardedProps,
30
27
  internalProps: internalProps,
31
28
  valueManager: singleItemValueManager,
@@ -159,6 +159,10 @@ process.env.NODE_ENV !== "production" ? DatePicker.propTypes = {
159
159
  * @default 3
160
160
  */
161
161
  monthsPerRow: PropTypes.oneOf([3, 4]),
162
+ /**
163
+ * Name attribute used by the `input` element in the Field.
164
+ */
165
+ name: PropTypes.string,
162
166
  /**
163
167
  * Callback fired when the value is accepted.
164
168
  * @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.
@@ -257,7 +261,7 @@ process.env.NODE_ENV !== "production" ? DatePicker.propTypes = {
257
261
  * 4. If `null` is provided, no section will be selected
258
262
  * If not provided, the selected sections will be handled internally.
259
263
  */
260
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
264
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
261
265
  endIndex: PropTypes.number.isRequired,
262
266
  startIndex: PropTypes.number.isRequired
263
267
  })]),
@@ -1,8 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
- var _excluded = ["slots", "slotProps", "InputProps", "inputProps"],
4
- _excluded2 = ["inputRef"],
5
- _excluded3 = ["ref", "onPaste", "onKeyDown", "inputMode", "readOnly", "clearable", "onClear"];
3
+ var _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
- var DateTimeField = /*#__PURE__*/React.forwardRef(function DateTimeField(inProps, ref) {
24
+ var DateTimeField = /*#__PURE__*/React.forwardRef(function DateTimeField(inProps, inRef) {
26
25
  var _slots$textField;
27
26
  var themeProps = useThemeProps({
28
27
  props: inProps,
@@ -35,53 +34,26 @@ var DateTimeField = /*#__PURE__*/React.forwardRef(function DateTimeField(inProps
35
34
  other = _objectWithoutProperties(themeProps, _excluded);
36
35
  var ownerState = themeProps;
37
36
  var TextField = (_slots$textField = slots == null ? void 0 : slots.textField) != null ? _slots$textField : MuiTextField;
38
- var _useSlotProps = useSlotProps({
39
- elementType: TextField,
40
- externalSlotProps: slotProps == null ? void 0 : slotProps.textField,
41
- externalForwardedProps: other,
42
- ownerState: ownerState
43
- }),
44
- externalInputRef = _useSlotProps.inputRef,
45
- textFieldProps = _objectWithoutProperties(_useSlotProps, _excluded2);
37
+ var textFieldProps = useSlotProps({
38
+ elementType: TextField,
39
+ externalSlotProps: slotProps == null ? void 0 : slotProps.textField,
40
+ externalForwardedProps: other,
41
+ ownerState: ownerState,
42
+ additionalProps: {
43
+ ref: inRef
44
+ }
45
+ });
46
46
 
47
47
  // TODO: Remove when mui/material-ui#35088 will be merged
48
48
  textFieldProps.inputProps = _extends({}, inputProps, textFieldProps.inputProps);
49
49
  textFieldProps.InputProps = _extends({}, InputProps, textFieldProps.InputProps);
50
- var _useDateTimeField = useDateTimeField({
51
- props: textFieldProps,
52
- inputRef: externalInputRef
53
- }),
54
- inputRef = _useDateTimeField.ref,
55
- onPaste = _useDateTimeField.onPaste,
56
- onKeyDown = _useDateTimeField.onKeyDown,
57
- inputMode = _useDateTimeField.inputMode,
58
- readOnly = _useDateTimeField.readOnly,
59
- clearable = _useDateTimeField.clearable,
60
- onClear = _useDateTimeField.onClear,
61
- fieldProps = _objectWithoutProperties(_useDateTimeField, _excluded3);
62
- var _useClearableField = useClearableField({
63
- onClear: onClear,
64
- clearable: clearable,
65
- fieldProps: fieldProps,
66
- InputProps: fieldProps.InputProps,
67
- slots: slots,
68
- slotProps: slotProps
69
- }),
70
- ProcessedInputProps = _useClearableField.InputProps,
71
- processedFieldProps = _useClearableField.fieldProps;
72
- return /*#__PURE__*/_jsx(TextField, _extends({
73
- ref: ref
74
- }, processedFieldProps, {
75
- InputProps: _extends({}, ProcessedInputProps, {
76
- readOnly: readOnly
77
- }),
78
- inputProps: _extends({}, fieldProps.inputProps, {
79
- inputMode: inputMode,
80
- onPaste: onPaste,
81
- onKeyDown: onKeyDown,
82
- ref: inputRef
83
- })
50
+ var fieldResponse = useDateTimeField(textFieldProps);
51
+ var convertedFieldResponse = convertFieldResponseIntoMuiTextFieldProps(fieldResponse);
52
+ var processedFieldProps = useClearableField(_extends({}, convertedFieldResponse, {
53
+ slots: slots,
54
+ slotProps: slotProps
84
55
  }));
56
+ return /*#__PURE__*/_jsx(TextField, _extends({}, processedFieldProps));
85
57
  });
86
58
  process.env.NODE_ENV !== "production" ? DateTimeField.propTypes = {
87
59
  // ----------------------------- Warning --------------------------------
@@ -292,7 +264,7 @@ process.env.NODE_ENV !== "production" ? DateTimeField.propTypes = {
292
264
  * 4. If `null` is provided, no section will be selected
293
265
  * If not provided, the selected sections will be handled internally.
294
266
  */
295
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
267
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
296
268
  endIndex: PropTypes.number.isRequired,
297
269
  startIndex: PropTypes.number.isRequired
298
270
  })]),
@@ -22,15 +22,12 @@ var useDefaultizedDateTimeField = function useDefaultizedDateTimeField(props) {
22
22
  maxTime: (_props$maxDateTime2 = props.maxDateTime) != null ? _props$maxDateTime2 : props.maxTime
23
23
  });
24
24
  };
25
- export var useDateTimeField = function useDateTimeField(_ref) {
26
- var inProps = _ref.props,
27
- inputRef = _ref.inputRef;
25
+ export var useDateTimeField = function useDateTimeField(inProps) {
28
26
  var props = useDefaultizedDateTimeField(inProps);
29
27
  var _splitFieldInternalAn = splitFieldInternalAndForwardedProps(props, 'date-time'),
30
28
  forwardedProps = _splitFieldInternalAn.forwardedProps,
31
29
  internalProps = _splitFieldInternalAn.internalProps;
32
30
  return useField({
33
- inputRef: inputRef,
34
31
  forwardedProps: forwardedProps,
35
32
  internalProps: internalProps,
36
33
  valueManager: singleItemValueManager,
@@ -197,6 +197,10 @@ process.env.NODE_ENV !== "production" ? DateTimePicker.propTypes = {
197
197
  * @default 3
198
198
  */
199
199
  monthsPerRow: PropTypes.oneOf([3, 4]),
200
+ /**
201
+ * Name attribute used by the `input` element in the Field.
202
+ */
203
+ name: PropTypes.string,
200
204
  /**
201
205
  * Callback fired when the value is accepted.
202
206
  * @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.
@@ -295,7 +299,7 @@ process.env.NODE_ENV !== "production" ? DateTimePicker.propTypes = {
295
299
  * 4. If `null` is provided, no section will be selected
296
300
  * If not provided, the selected sections will be handled internally.
297
301
  */
298
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
302
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
299
303
  endIndex: PropTypes.number.isRequired,
300
304
  startIndex: PropTypes.number.isRequired
301
305
  })]),
@@ -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';
@@ -177,6 +178,10 @@ DesktopDatePicker.propTypes = {
177
178
  * @default 3
178
179
  */
179
180
  monthsPerRow: PropTypes.oneOf([3, 4]),
181
+ /**
182
+ * Name attribute used by the `input` element in the Field.
183
+ */
184
+ name: PropTypes.string,
180
185
  /**
181
186
  * Callback fired when the value is accepted.
182
187
  * @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.
@@ -275,7 +280,7 @@ DesktopDatePicker.propTypes = {
275
280
  * 4. If `null` is provided, no section will be selected
276
281
  * If not provided, the selected sections will be handled internally.
277
282
  */
278
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
283
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
279
284
  endIndex: PropTypes.number.isRequired,
280
285
  startIndex: PropTypes.number.isRequired
281
286
  })]),
@@ -253,6 +253,10 @@ DesktopDateTimePicker.propTypes = {
253
253
  * @default 3
254
254
  */
255
255
  monthsPerRow: PropTypes.oneOf([3, 4]),
256
+ /**
257
+ * Name attribute used by the `input` element in the Field.
258
+ */
259
+ name: PropTypes.string,
256
260
  /**
257
261
  * Callback fired when the value is accepted.
258
262
  * @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.
@@ -351,7 +355,7 @@ DesktopDateTimePicker.propTypes = {
351
355
  * 4. If `null` is provided, no section will be selected
352
356
  * If not provided, the selected sections will be handled internally.
353
357
  */
354
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
358
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
355
359
  endIndex: PropTypes.number.isRequired,
356
360
  startIndex: PropTypes.number.isRequired
357
361
  })]),
@@ -189,6 +189,10 @@ DesktopTimePicker.propTypes = {
189
189
  * @default 1
190
190
  */
191
191
  minutesStep: PropTypes.number,
192
+ /**
193
+ * Name attribute used by the `input` element in the Field.
194
+ */
195
+ name: PropTypes.string,
192
196
  /**
193
197
  * Callback fired when the value is accepted.
194
198
  * @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 +273,7 @@ DesktopTimePicker.propTypes = {
269
273
  * 4. If `null` is provided, no section will be selected
270
274
  * If not provided, the selected sections will be handled internally.
271
275
  */
272
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
276
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
273
277
  endIndex: PropTypes.number.isRequired,
274
278
  startIndex: PropTypes.number.isRequired
275
279
  })]),
@@ -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';
@@ -174,6 +175,10 @@ MobileDatePicker.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 @@ MobileDatePicker.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
  })]),
@@ -223,6 +223,10 @@ MobileDateTimePicker.propTypes = {
223
223
  * @default 3
224
224
  */
225
225
  monthsPerRow: PropTypes.oneOf([3, 4]),
226
+ /**
227
+ * Name attribute used by the `input` element in the Field.
228
+ */
229
+ name: PropTypes.string,
226
230
  /**
227
231
  * Callback fired when the value is accepted.
228
232
  * @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.
@@ -321,7 +325,7 @@ MobileDateTimePicker.propTypes = {
321
325
  * 4. If `null` is provided, no section will be selected
322
326
  * If not provided, the selected sections will be handled internally.
323
327
  */
324
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
328
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
325
329
  endIndex: PropTypes.number.isRequired,
326
330
  startIndex: PropTypes.number.isRequired
327
331
  })]),
@@ -167,6 +167,10 @@ MobileTimePicker.propTypes = {
167
167
  * @default 1
168
168
  */
169
169
  minutesStep: PropTypes.number,
170
+ /**
171
+ * Name attribute used by the `input` element in the Field.
172
+ */
173
+ name: PropTypes.string,
170
174
  /**
171
175
  * Callback fired when the value is accepted.
172
176
  * @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.
@@ -247,7 +251,7 @@ MobileTimePicker.propTypes = {
247
251
  * 4. If `null` is provided, no section will be selected
248
252
  * If not provided, the selected sections will be handled internally.
249
253
  */
250
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
254
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
251
255
  endIndex: PropTypes.number.isRequired,
252
256
  startIndex: PropTypes.number.isRequired
253
257
  })]),
@@ -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: