@mui/x-date-pickers-pro 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 (114) hide show
  1. package/CHANGELOG.md +122 -0
  2. package/DateRangeCalendar/DateRangeCalendar.js +1 -1
  3. package/DateRangeCalendar/DateRangeCalendar.types.d.ts +6 -6
  4. package/DateRangeCalendar/index.d.ts +1 -1
  5. package/DateRangePicker/DateRangePicker.js +6 -1
  6. package/DateRangePicker/DateRangePicker.types.d.ts +6 -6
  7. package/DateRangePicker/index.d.ts +1 -1
  8. package/DateRangePicker/shared.d.ts +5 -5
  9. package/DesktopDateRangePicker/DesktopDateRangePicker.js +6 -1
  10. package/DesktopDateRangePicker/DesktopDateRangePicker.types.d.ts +6 -6
  11. package/DesktopDateRangePicker/index.d.ts +1 -1
  12. package/MobileDateRangePicker/MobileDateRangePicker.js +6 -1
  13. package/MobileDateRangePicker/MobileDateRangePicker.types.d.ts +6 -6
  14. package/MobileDateRangePicker/index.d.ts +1 -1
  15. package/MultiInputDateRangeField/MultiInputDateRangeField.js +15 -52
  16. package/MultiInputDateRangeField/MultiInputDateRangeField.types.d.ts +4 -4
  17. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +15 -52
  18. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.d.ts +4 -4
  19. package/MultiInputTimeRangeField/MultiInputTimeRangeField.js +15 -52
  20. package/MultiInputTimeRangeField/MultiInputTimeRangeField.types.d.ts +4 -4
  21. package/SingleInputDateRangeField/SingleInputDateRangeField.js +17 -50
  22. package/SingleInputDateRangeField/SingleInputDateRangeField.types.d.ts +6 -9
  23. package/SingleInputDateRangeField/useSingleInputDateRangeField.d.ts +2 -2
  24. package/SingleInputDateRangeField/useSingleInputDateRangeField.js +1 -5
  25. package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +17 -50
  26. package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.types.d.ts +5 -9
  27. package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.d.ts +2 -2
  28. package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +1 -5
  29. package/SingleInputTimeRangeField/SingleInputTimeRangeField.js +18 -51
  30. package/SingleInputTimeRangeField/SingleInputTimeRangeField.types.d.ts +5 -9
  31. package/SingleInputTimeRangeField/useSingleInputTimeRangeField.d.ts +2 -2
  32. package/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +1 -5
  33. package/StaticDateRangePicker/StaticDateRangePicker.types.d.ts +6 -6
  34. package/StaticDateRangePicker/index.d.ts +1 -1
  35. package/index.js +1 -1
  36. package/internals/hooks/useDesktopRangePicker/index.d.ts +1 -1
  37. package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +3 -1
  38. package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.types.d.ts +7 -7
  39. package/internals/hooks/useEnrichedRangePickerFieldProps.d.ts +6 -5
  40. package/internals/hooks/useMobileRangePicker/index.d.ts +1 -1
  41. package/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +3 -1
  42. package/internals/hooks/useMobileRangePicker/useMobileRangePicker.types.d.ts +7 -7
  43. package/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.d.ts +1 -1
  44. package/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +2 -10
  45. package/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.d.ts +1 -1
  46. package/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +2 -10
  47. package/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.d.ts +0 -2
  48. package/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.d.ts +1 -1
  49. package/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +2 -10
  50. package/internals/hooks/useStaticRangePicker/index.d.ts +1 -1
  51. package/internals/hooks/useStaticRangePicker/useStaticRangePicker.types.d.ts +5 -5
  52. package/internals/models/rangePickerProps.d.ts +5 -0
  53. package/internals/utils/releaseInfo.js +1 -1
  54. package/legacy/DateRangeCalendar/DateRangeCalendar.js +1 -1
  55. package/legacy/DateRangePicker/DateRangePicker.js +6 -1
  56. package/legacy/DesktopDateRangePicker/DesktopDateRangePicker.js +6 -1
  57. package/legacy/MobileDateRangePicker/MobileDateRangePicker.js +6 -1
  58. package/legacy/MultiInputDateRangeField/MultiInputDateRangeField.js +15 -48
  59. package/legacy/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +15 -48
  60. package/legacy/MultiInputTimeRangeField/MultiInputTimeRangeField.js +15 -48
  61. package/legacy/SingleInputDateRangeField/SingleInputDateRangeField.js +19 -47
  62. package/legacy/SingleInputDateRangeField/useSingleInputDateRangeField.js +1 -4
  63. package/legacy/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +19 -47
  64. package/legacy/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +1 -4
  65. package/legacy/SingleInputTimeRangeField/SingleInputTimeRangeField.js +20 -48
  66. package/legacy/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +1 -4
  67. package/legacy/index.js +1 -1
  68. package/legacy/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +3 -1
  69. package/legacy/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +3 -1
  70. package/legacy/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +2 -10
  71. package/legacy/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +2 -10
  72. package/legacy/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +2 -10
  73. package/legacy/internals/utils/releaseInfo.js +1 -1
  74. package/modern/DateRangeCalendar/DateRangeCalendar.js +1 -1
  75. package/modern/DateRangePicker/DateRangePicker.js +6 -1
  76. package/modern/DesktopDateRangePicker/DesktopDateRangePicker.js +6 -1
  77. package/modern/MobileDateRangePicker/MobileDateRangePicker.js +6 -1
  78. package/modern/MultiInputDateRangeField/MultiInputDateRangeField.js +15 -52
  79. package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +15 -52
  80. package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.js +15 -52
  81. package/modern/SingleInputDateRangeField/SingleInputDateRangeField.js +17 -50
  82. package/modern/SingleInputDateRangeField/useSingleInputDateRangeField.js +1 -5
  83. package/modern/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +17 -50
  84. package/modern/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +1 -5
  85. package/modern/SingleInputTimeRangeField/SingleInputTimeRangeField.js +18 -51
  86. package/modern/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +1 -5
  87. package/modern/index.js +1 -1
  88. package/modern/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +3 -1
  89. package/modern/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +3 -1
  90. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +2 -10
  91. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +2 -10
  92. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +2 -10
  93. package/modern/internals/utils/releaseInfo.js +1 -1
  94. package/node/DateRangeCalendar/DateRangeCalendar.js +1 -1
  95. package/node/DateRangePicker/DateRangePicker.js +6 -1
  96. package/node/DesktopDateRangePicker/DesktopDateRangePicker.js +6 -1
  97. package/node/MobileDateRangePicker/MobileDateRangePicker.js +6 -1
  98. package/node/MultiInputDateRangeField/MultiInputDateRangeField.js +14 -51
  99. package/node/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +14 -51
  100. package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.js +14 -51
  101. package/node/SingleInputDateRangeField/SingleInputDateRangeField.js +17 -50
  102. package/node/SingleInputDateRangeField/useSingleInputDateRangeField.js +1 -5
  103. package/node/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +17 -50
  104. package/node/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +1 -5
  105. package/node/SingleInputTimeRangeField/SingleInputTimeRangeField.js +18 -51
  106. package/node/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +1 -5
  107. package/node/index.js +1 -1
  108. package/node/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +3 -1
  109. package/node/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +3 -1
  110. package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +2 -10
  111. package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +2 -10
  112. package/node/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +2 -10
  113. package/node/internals/utils/releaseInfo.js +1 -1
  114. package/package.json +2 -2
@@ -25,15 +25,15 @@ export interface MultiInputDateTimeRangeFieldProps<TDate> extends UseMultiInputD
25
25
  * Overridable component slots.
26
26
  * @default {}
27
27
  */
28
- slots?: MultiInputDateTimeRangeFieldSlotsComponent;
28
+ slots?: MultiInputDateTimeRangeFieldSlots;
29
29
  /**
30
30
  * The props used for each component slot.
31
31
  * @default {}
32
32
  */
33
- slotProps?: MultiInputDateTimeRangeFieldSlotsComponentsProps<TDate>;
33
+ slotProps?: MultiInputDateTimeRangeFieldSlotProps<TDate>;
34
34
  }
35
35
  export type MultiInputDateTimeRangeFieldOwnerState<TDate> = MultiInputDateTimeRangeFieldProps<TDate>;
36
- export interface MultiInputDateTimeRangeFieldSlotsComponent {
36
+ export interface MultiInputDateTimeRangeFieldSlots {
37
37
  /**
38
38
  * Element rendered at the root.
39
39
  * @default MultiInputDateTimeRangeFieldRoot
@@ -52,7 +52,7 @@ export interface MultiInputDateTimeRangeFieldSlotsComponent {
52
52
  */
53
53
  separator?: React.ElementType;
54
54
  }
55
- export interface MultiInputDateTimeRangeFieldSlotsComponentsProps<TDate> {
55
+ export interface MultiInputDateTimeRangeFieldSlotProps<TDate> {
56
56
  root?: SlotComponentProps<typeof Stack, {}, MultiInputDateTimeRangeFieldOwnerState<TDate>>;
57
57
  textField?: SlotComponentProps<typeof TextField, {}, MultiInputDateTimeRangeFieldOwnerState<TDate> & {
58
58
  position: RangePosition;
@@ -1,8 +1,6 @@
1
1
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
2
  import _extends from "@babel/runtime/helpers/esm/extends";
3
- const _excluded = ["slots", "slotProps", "disabled", "autoFocus", "unstableStartFieldRef", "unstableEndFieldRef", "className"],
4
- _excluded2 = ["onKeyDown", "ref", "readOnly", "inputMode"],
5
- _excluded3 = ["onKeyDown", "ref", "readOnly", "inputMode"];
3
+ const _excluded = ["slots", "slotProps", "disabled", "autoFocus", "unstableStartFieldRef", "unstableEndFieldRef", "className"];
6
4
  import * as React from 'react';
7
5
  import PropTypes from 'prop-types';
8
6
  import { clsx } from 'clsx';
@@ -12,7 +10,7 @@ import Typography from '@mui/material/Typography';
12
10
  import { styled, useThemeProps } from '@mui/material/styles';
13
11
  import { useSlotProps } from '@mui/base/utils';
14
12
  import { unstable_composeClasses as composeClasses, unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';
15
- import { splitFieldInternalAndForwardedProps } from '@mui/x-date-pickers/internals';
13
+ import { splitFieldInternalAndForwardedProps, convertFieldResponseIntoMuiTextFieldProps } from '@mui/x-date-pickers/internals';
16
14
  import { useMultiInputTimeRangeField } from '../internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField';
17
15
  import { jsx as _jsx } from "react/jsx-runtime";
18
16
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -116,58 +114,23 @@ const MultiInputTimeRangeField = /*#__PURE__*/React.forwardRef(function MultiInp
116
114
  ownerState,
117
115
  className: classes.separator
118
116
  });
119
- const _useMultiInputTimeRan = useMultiInputTimeRangeField({
120
- sharedProps: _extends({}, timeFieldInternalProps, {
121
- disabled
122
- }),
123
- startTextFieldProps,
124
- endTextFieldProps,
125
- startInputRef: startTextFieldProps.inputRef,
126
- unstableStartFieldRef,
127
- endInputRef: endTextFieldProps.inputRef,
128
- unstableEndFieldRef
117
+ const fieldResponse = useMultiInputTimeRangeField({
118
+ sharedProps: _extends({}, timeFieldInternalProps, {
119
+ disabled
129
120
  }),
130
- {
131
- startDate: {
132
- onKeyDown: onStartInputKeyDown,
133
- ref: startInputRef,
134
- readOnly: startReadOnly,
135
- inputMode: startInputMode
136
- },
137
- endDate: {
138
- onKeyDown: onEndInputKeyDown,
139
- ref: endInputRef,
140
- readOnly: endReadOnly,
141
- inputMode: endInputMode
142
- }
143
- } = _useMultiInputTimeRan,
144
- startDateProps = _objectWithoutPropertiesLoose(_useMultiInputTimeRan.startDate, _excluded3),
145
- endDateProps = _objectWithoutPropertiesLoose(_useMultiInputTimeRan.endDate, _excluded2);
121
+ startTextFieldProps,
122
+ endTextFieldProps,
123
+ unstableStartFieldRef,
124
+ unstableEndFieldRef
125
+ });
126
+ const startDateProps = convertFieldResponseIntoMuiTextFieldProps(fieldResponse.startDate);
127
+ const endDateProps = convertFieldResponseIntoMuiTextFieldProps(fieldResponse.endDate);
146
128
  return /*#__PURE__*/_jsxs(Root, _extends({}, rootProps, {
147
129
  children: [/*#__PURE__*/_jsx(TextField, _extends({
148
130
  fullWidth: true
149
- }, startDateProps, {
150
- InputProps: _extends({}, startDateProps.InputProps, {
151
- readOnly: startReadOnly
152
- }),
153
- inputProps: _extends({}, startDateProps.inputProps, {
154
- ref: startInputRef,
155
- inputMode: startInputMode,
156
- onKeyDown: onStartInputKeyDown
157
- })
158
- })), /*#__PURE__*/_jsx(Separator, _extends({}, separatorProps)), /*#__PURE__*/_jsx(TextField, _extends({
131
+ }, startDateProps)), /*#__PURE__*/_jsx(Separator, _extends({}, separatorProps)), /*#__PURE__*/_jsx(TextField, _extends({
159
132
  fullWidth: true
160
- }, endDateProps, {
161
- InputProps: _extends({}, endDateProps.InputProps, {
162
- readOnly: endReadOnly
163
- }),
164
- inputProps: _extends({}, endDateProps.inputProps, {
165
- ref: endInputRef,
166
- readOnly: endReadOnly,
167
- inputMode: endInputMode,
168
- onKeyDown: onEndInputKeyDown
169
- })
170
- }))]
133
+ }, endDateProps))]
171
134
  }));
172
135
  });
173
136
  process.env.NODE_ENV !== "production" ? MultiInputTimeRangeField.propTypes = {
@@ -288,7 +251,7 @@ process.env.NODE_ENV !== "production" ? MultiInputTimeRangeField.propTypes = {
288
251
  * 4. If `null` is provided, no section will be selected
289
252
  * If not provided, the selected sections will be handled internally.
290
253
  */
291
- 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({
292
255
  endIndex: PropTypes.number.isRequired,
293
256
  startIndex: PropTypes.number.isRequired
294
257
  })]),
@@ -25,15 +25,15 @@ export interface MultiInputTimeRangeFieldProps<TDate> extends UseMultiInputTimeR
25
25
  * Overridable slots.
26
26
  * @default {}
27
27
  */
28
- slots?: MultiInputTimeRangeFieldSlotsComponent;
28
+ slots?: MultiInputTimeRangeFieldSlots;
29
29
  /**
30
30
  * The props used for each component slot.
31
31
  * @default {}
32
32
  */
33
- slotProps?: MultiInputTimeRangeFieldSlotsComponentsProps<TDate>;
33
+ slotProps?: MultiInputTimeRangeFieldSlotProps<TDate>;
34
34
  }
35
35
  export type MultiInputTimeRangeFieldOwnerState<TDate> = MultiInputTimeRangeFieldProps<TDate>;
36
- export interface MultiInputTimeRangeFieldSlotsComponent {
36
+ export interface MultiInputTimeRangeFieldSlots {
37
37
  /**
38
38
  * Element rendered at the root.
39
39
  * @default MultiInputTimeRangeFieldRoot
@@ -52,7 +52,7 @@ export interface MultiInputTimeRangeFieldSlotsComponent {
52
52
  */
53
53
  separator?: React.ElementType;
54
54
  }
55
- export interface MultiInputTimeRangeFieldSlotsComponentsProps<TDate> {
55
+ export interface MultiInputTimeRangeFieldSlotProps<TDate> {
56
56
  root?: SlotComponentProps<typeof Stack, {}, MultiInputTimeRangeFieldOwnerState<TDate>>;
57
57
  textField?: SlotComponentProps<typeof TextField, {}, MultiInputTimeRangeFieldOwnerState<TDate> & {
58
58
  position: RangePosition;
@@ -1,14 +1,13 @@
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';
9
7
  import { useThemeProps } from '@mui/material/styles';
10
8
  import { useSlotProps } from '@mui/base/utils';
11
9
  import { useClearableField } from '@mui/x-date-pickers/hooks';
10
+ import { convertFieldResponseIntoMuiTextFieldProps } from '@mui/x-date-pickers/internals';
12
11
  import { refType } from '@mui/utils';
13
12
  import { useSingleInputDateRangeField } from './useSingleInputDateRangeField';
14
13
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -22,7 +21,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
22
21
  *
23
22
  * - [SingleInputDateRangeField API](https://mui.com/x/api/single-input-date-range-field/)
24
23
  */
25
- const SingleInputDateRangeField = /*#__PURE__*/React.forwardRef(function SingleInputDateRangeField(inProps, ref) {
24
+ const SingleInputDateRangeField = /*#__PURE__*/React.forwardRef(function SingleInputDateRangeField(inProps, inRef) {
26
25
  var _slots$textField;
27
26
  const themeProps = useThemeProps({
28
27
  props: inProps,
@@ -37,58 +36,26 @@ const SingleInputDateRangeField = /*#__PURE__*/React.forwardRef(function SingleI
37
36
  other = _objectWithoutPropertiesLoose(themeProps, _excluded);
38
37
  const ownerState = themeProps;
39
38
  const TextField = (_slots$textField = slots == null ? void 0 : slots.textField) != null ? _slots$textField : MuiTextField;
40
- const _useSlotProps = useSlotProps({
41
- elementType: TextField,
42
- externalSlotProps: slotProps == null ? void 0 : slotProps.textField,
43
- externalForwardedProps: other,
44
- ownerState
45
- }),
46
- {
47
- inputRef: externalInputRef
48
- } = _useSlotProps,
49
- textFieldProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);
39
+ const textFieldProps = useSlotProps({
40
+ elementType: TextField,
41
+ externalSlotProps: slotProps == null ? void 0 : slotProps.textField,
42
+ externalForwardedProps: other,
43
+ ownerState,
44
+ additionalProps: {
45
+ ref: inRef
46
+ }
47
+ });
50
48
 
51
49
  // TODO: Remove when mui/material-ui#35088 will be merged
52
50
  textFieldProps.inputProps = _extends({}, inputProps, textFieldProps.inputProps);
53
51
  textFieldProps.InputProps = _extends({}, InputProps, textFieldProps.InputProps);
54
- const _useSingleInputDateRa = useSingleInputDateRangeField({
55
- props: textFieldProps,
56
- inputRef: externalInputRef
57
- }),
58
- {
59
- ref: inputRef,
60
- onPaste,
61
- onKeyDown,
62
- inputMode,
63
- readOnly,
64
- clearable,
65
- onClear
66
- } = _useSingleInputDateRa,
67
- fieldProps = _objectWithoutPropertiesLoose(_useSingleInputDateRa, _excluded3);
68
- const {
69
- InputProps: ProcessedInputProps,
70
- fieldProps: processedFieldProps
71
- } = useClearableField({
72
- onClear,
73
- clearable,
74
- fieldProps,
75
- InputProps: fieldProps.InputProps,
52
+ const fieldResponse = useSingleInputDateRangeField(textFieldProps);
53
+ const convertedFieldResponse = convertFieldResponseIntoMuiTextFieldProps(fieldResponse);
54
+ const processedFieldProps = useClearableField(_extends({}, convertedFieldResponse, {
76
55
  slots,
77
56
  slotProps
78
- });
79
- return /*#__PURE__*/_jsx(TextField, _extends({
80
- ref: ref
81
- }, processedFieldProps, {
82
- InputProps: _extends({}, ProcessedInputProps, {
83
- readOnly
84
- }),
85
- inputProps: _extends({}, fieldProps.inputProps, {
86
- inputMode,
87
- onPaste,
88
- onKeyDown,
89
- ref: inputRef
90
- })
91
57
  }));
58
+ return /*#__PURE__*/_jsx(TextField, _extends({}, processedFieldProps));
92
59
  });
93
60
  SingleInputDateRangeField.fieldType = 'single-input';
94
61
  process.env.NODE_ENV !== "production" ? SingleInputDateRangeField.propTypes = {
@@ -267,7 +234,7 @@ process.env.NODE_ENV !== "production" ? SingleInputDateRangeField.propTypes = {
267
234
  * 4. If `null` is provided, no section will be selected
268
235
  * If not provided, the selected sections will be handled internally.
269
236
  */
270
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
237
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
271
238
  endIndex: PropTypes.number.isRequired,
272
239
  startIndex: PropTypes.number.isRequired
273
240
  })]),
@@ -1,12 +1,9 @@
1
1
  import * as React from 'react';
2
2
  import { SlotComponentProps } from '@mui/base/utils';
3
3
  import TextField from '@mui/material/TextField';
4
- import { FieldsTextFieldProps, FieldSlotsComponents, FieldSlotsComponentsProps } from '@mui/x-date-pickers/internals';
4
+ import { FieldsTextFieldProps } from '@mui/x-date-pickers/internals';
5
+ import { UseClearableFieldSlots, UseClearableFieldSlotProps } from '@mui/x-date-pickers/hooks';
5
6
  import { UseDateRangeFieldDefaultizedProps, UseDateRangeFieldProps } from '../internals/models';
6
- export interface UseSingleInputDateRangeFieldParams<TDate, TChildProps extends {}> {
7
- props: UseSingleInputDateRangeFieldComponentProps<TDate, TChildProps>;
8
- inputRef?: React.Ref<HTMLInputElement>;
9
- }
10
7
  export interface UseSingleInputDateRangeFieldProps<TDate> extends UseDateRangeFieldProps<TDate> {
11
8
  }
12
9
  export type UseSingleInputDateRangeFieldDefaultizedProps<TDate, AdditionalProps extends {}> = UseDateRangeFieldDefaultizedProps<TDate> & Omit<AdditionalProps, 'value' | 'defaultValue' | 'onChange'>;
@@ -16,15 +13,15 @@ export type SingleInputDateRangeFieldProps<TDate, TChildProps extends {} = Field
16
13
  * Overridable component slots.
17
14
  * @default {}
18
15
  */
19
- slots?: SingleInputDateRangeFieldSlotsComponent;
16
+ slots?: SingleInputDateRangeFieldSlots;
20
17
  /**
21
18
  * The props used for each component slot.
22
19
  * @default {}
23
20
  */
24
- slotProps?: SingleInputDateRangeFieldSlotsComponentsProps<TDate>;
21
+ slotProps?: SingleInputDateRangeFieldSlotProps<TDate>;
25
22
  };
26
23
  export type SingleInputDateRangeFieldOwnerState<TDate> = SingleInputDateRangeFieldProps<TDate>;
27
- export interface SingleInputDateRangeFieldSlotsComponent extends FieldSlotsComponents {
24
+ export interface SingleInputDateRangeFieldSlots extends UseClearableFieldSlots {
28
25
  /**
29
26
  * Form control with an input to render the value.
30
27
  * Receives the same props as `@mui/material/TextField`.
@@ -32,6 +29,6 @@ export interface SingleInputDateRangeFieldSlotsComponent extends FieldSlotsCompo
32
29
  */
33
30
  textField?: React.ElementType;
34
31
  }
35
- export interface SingleInputDateRangeFieldSlotsComponentsProps<TDate> extends FieldSlotsComponentsProps {
32
+ export interface SingleInputDateRangeFieldSlotProps<TDate> extends UseClearableFieldSlotProps {
36
33
  textField?: SlotComponentProps<typeof TextField, {}, SingleInputDateRangeFieldOwnerState<TDate>>;
37
34
  }
@@ -1,3 +1,3 @@
1
- import { UseSingleInputDateRangeFieldDefaultizedProps, UseSingleInputDateRangeFieldParams, UseSingleInputDateRangeFieldProps } from './SingleInputDateRangeField.types';
1
+ import { UseSingleInputDateRangeFieldComponentProps, UseSingleInputDateRangeFieldDefaultizedProps, UseSingleInputDateRangeFieldProps } from './SingleInputDateRangeField.types';
2
2
  export declare const useDefaultizedDateRangeFieldProps: <TDate, AdditionalProps extends {}>(props: UseSingleInputDateRangeFieldProps<TDate>) => UseSingleInputDateRangeFieldDefaultizedProps<TDate, AdditionalProps>;
3
- export declare const useSingleInputDateRangeField: <TDate, TChildProps extends {}>({ props: inProps, inputRef, }: UseSingleInputDateRangeFieldParams<TDate, TChildProps>) => import("@mui/x-date-pickers/internals").UseFieldResponse<Omit<UseSingleInputDateRangeFieldDefaultizedProps<TDate, TChildProps>, keyof UseSingleInputDateRangeFieldProps<any>>>;
3
+ export declare const useSingleInputDateRangeField: <TDate, TChildProps extends {}>(inProps: UseSingleInputDateRangeFieldComponentProps<TDate, TChildProps>) => import("@mui/x-date-pickers/internals").UseFieldResponse<Omit<UseSingleInputDateRangeFieldDefaultizedProps<TDate, TChildProps>, keyof UseSingleInputDateRangeFieldProps<any>>>;
@@ -14,17 +14,13 @@ export const useDefaultizedDateRangeFieldProps = props => {
14
14
  maxDate: applyDefaultDate(utils, props.maxDate, defaultDates.maxDate)
15
15
  });
16
16
  };
17
- export const useSingleInputDateRangeField = ({
18
- props: inProps,
19
- inputRef
20
- }) => {
17
+ export const useSingleInputDateRangeField = inProps => {
21
18
  const props = useDefaultizedDateRangeFieldProps(inProps);
22
19
  const {
23
20
  forwardedProps,
24
21
  internalProps
25
22
  } = splitFieldInternalAndForwardedProps(props, 'date');
26
23
  return useField({
27
- inputRef,
28
24
  forwardedProps,
29
25
  internalProps,
30
26
  valueManager: rangeValueManager,
@@ -1,11 +1,10 @@
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';
7
+ import { convertFieldResponseIntoMuiTextFieldProps } from '@mui/x-date-pickers/internals';
9
8
  import { useThemeProps } from '@mui/material/styles';
10
9
  import { useSlotProps } from '@mui/base/utils';
11
10
  import { useClearableField } from '@mui/x-date-pickers/hooks';
@@ -22,7 +21,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
22
21
  *
23
22
  * - [SingleInputDateTimeRangeField API](https://mui.com/x/api/single-input-date-time-range-field/)
24
23
  */
25
- const SingleInputDateTimeRangeField = /*#__PURE__*/React.forwardRef(function SingleInputDateTimeRangeField(inProps, ref) {
24
+ const SingleInputDateTimeRangeField = /*#__PURE__*/React.forwardRef(function SingleInputDateTimeRangeField(inProps, inRef) {
26
25
  var _slots$textField;
27
26
  const themeProps = useThemeProps({
28
27
  props: inProps,
@@ -37,58 +36,26 @@ const SingleInputDateTimeRangeField = /*#__PURE__*/React.forwardRef(function Sin
37
36
  other = _objectWithoutPropertiesLoose(themeProps, _excluded);
38
37
  const ownerState = themeProps;
39
38
  const TextField = (_slots$textField = slots == null ? void 0 : slots.textField) != null ? _slots$textField : MuiTextField;
40
- const _useSlotProps = useSlotProps({
41
- elementType: TextField,
42
- externalSlotProps: slotProps == null ? void 0 : slotProps.textField,
43
- externalForwardedProps: other,
44
- ownerState
45
- }),
46
- {
47
- inputRef: externalInputRef
48
- } = _useSlotProps,
49
- textFieldProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);
39
+ const textFieldProps = useSlotProps({
40
+ elementType: TextField,
41
+ externalSlotProps: slotProps == null ? void 0 : slotProps.textField,
42
+ externalForwardedProps: other,
43
+ ownerState,
44
+ additionalProps: {
45
+ ref: inRef
46
+ }
47
+ });
50
48
 
51
49
  // TODO: Remove when mui/material-ui#35088 will be merged
52
50
  textFieldProps.inputProps = _extends({}, inputProps, textFieldProps.inputProps);
53
51
  textFieldProps.InputProps = _extends({}, InputProps, textFieldProps.InputProps);
54
- const _useSingleInputDateTi = useSingleInputDateTimeRangeField({
55
- props: textFieldProps,
56
- inputRef: externalInputRef
57
- }),
58
- {
59
- ref: inputRef,
60
- onPaste,
61
- onKeyDown,
62
- inputMode,
63
- readOnly,
64
- clearable,
65
- onClear
66
- } = _useSingleInputDateTi,
67
- fieldProps = _objectWithoutPropertiesLoose(_useSingleInputDateTi, _excluded3);
68
- const {
69
- InputProps: ProcessedInputProps,
70
- fieldProps: processedFieldProps
71
- } = useClearableField({
72
- onClear,
73
- clearable,
74
- fieldProps,
75
- InputProps: fieldProps.InputProps,
52
+ const fieldResponse = useSingleInputDateTimeRangeField(textFieldProps);
53
+ const convertedFieldResponse = convertFieldResponseIntoMuiTextFieldProps(fieldResponse);
54
+ const processedFieldProps = useClearableField(_extends({}, convertedFieldResponse, {
76
55
  slots,
77
56
  slotProps
78
- });
79
- return /*#__PURE__*/_jsx(TextField, _extends({
80
- ref: ref
81
- }, processedFieldProps, {
82
- InputProps: _extends({}, ProcessedInputProps, {
83
- readOnly
84
- }),
85
- inputProps: _extends({}, fieldProps.inputProps, {
86
- inputMode,
87
- onPaste,
88
- onKeyDown,
89
- ref: inputRef
90
- })
91
57
  }));
58
+ return /*#__PURE__*/_jsx(TextField, _extends({}, processedFieldProps));
92
59
  });
93
60
  SingleInputDateTimeRangeField.fieldType = 'single-input';
94
61
  process.env.NODE_ENV !== "production" ? SingleInputDateTimeRangeField.propTypes = {
@@ -300,7 +267,7 @@ process.env.NODE_ENV !== "production" ? SingleInputDateTimeRangeField.propTypes
300
267
  * 4. If `null` is provided, no section will be selected
301
268
  * If not provided, the selected sections will be handled internally.
302
269
  */
303
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
270
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
304
271
  endIndex: PropTypes.number.isRequired,
305
272
  startIndex: PropTypes.number.isRequired
306
273
  })]),
@@ -2,12 +2,8 @@ import * as React from 'react';
2
2
  import { SlotComponentProps } from '@mui/base/utils';
3
3
  import TextField from '@mui/material/TextField';
4
4
  import { FieldsTextFieldProps } from '@mui/x-date-pickers/internals/models/fields';
5
- import { FieldSlotsComponents, FieldSlotsComponentsProps } from '@mui/x-date-pickers/internals';
5
+ import { UseClearableFieldSlots, UseClearableFieldSlotProps } from '@mui/x-date-pickers/hooks';
6
6
  import { UseDateTimeRangeFieldDefaultizedProps, UseDateTimeRangeFieldProps } from '../internals/models';
7
- export interface UseSingleInputDateTimeRangeFieldParams<TDate, TChildProps extends {}> {
8
- props: UseSingleInputDateTimeRangeFieldComponentProps<TDate, TChildProps>;
9
- inputRef?: React.Ref<HTMLInputElement>;
10
- }
11
7
  export interface UseSingleInputDateTimeRangeFieldProps<TDate> extends UseDateTimeRangeFieldProps<TDate> {
12
8
  }
13
9
  export type UseSingleInputDateTimeRangeFieldDefaultizedProps<TDate, AdditionalProps extends {}> = UseDateTimeRangeFieldDefaultizedProps<TDate> & AdditionalProps;
@@ -17,15 +13,15 @@ export interface SingleInputDateTimeRangeFieldProps<TDate> extends UseSingleInpu
17
13
  * Overridable component slots.
18
14
  * @default {}
19
15
  */
20
- slots?: SingleInputDateTimeRangeFieldSlotsComponent;
16
+ slots?: SingleInputDateTimeRangeFieldSlots;
21
17
  /**
22
18
  * The props used for each component slot.
23
19
  * @default {}
24
20
  */
25
- slotProps?: SingleInputDateTimeRangeFieldSlotsComponentsProps<TDate>;
21
+ slotProps?: SingleInputDateTimeRangeFieldSlotProps<TDate>;
26
22
  }
27
23
  export type SingleInputDateTimeRangeFieldOwnerState<TDate> = SingleInputDateTimeRangeFieldProps<TDate>;
28
- export interface SingleInputDateTimeRangeFieldSlotsComponent extends FieldSlotsComponents {
24
+ export interface SingleInputDateTimeRangeFieldSlots extends UseClearableFieldSlots {
29
25
  /**
30
26
  * Form control with an input to render the value.
31
27
  * Receives the same props as `@mui/material/TextField`.
@@ -33,6 +29,6 @@ export interface SingleInputDateTimeRangeFieldSlotsComponent extends FieldSlotsC
33
29
  */
34
30
  textField?: React.ElementType;
35
31
  }
36
- export interface SingleInputDateTimeRangeFieldSlotsComponentsProps<TDate> extends FieldSlotsComponentsProps {
32
+ export interface SingleInputDateTimeRangeFieldSlotProps<TDate> extends UseClearableFieldSlotProps {
37
33
  textField?: SlotComponentProps<typeof TextField, {}, SingleInputDateTimeRangeFieldOwnerState<TDate>>;
38
34
  }
@@ -1,3 +1,3 @@
1
- import { UseSingleInputDateTimeRangeFieldDefaultizedProps, UseSingleInputDateTimeRangeFieldParams, UseSingleInputDateTimeRangeFieldProps } from './SingleInputDateTimeRangeField.types';
1
+ import { UseSingleInputDateTimeRangeFieldComponentProps, UseSingleInputDateTimeRangeFieldDefaultizedProps, UseSingleInputDateTimeRangeFieldProps } from './SingleInputDateTimeRangeField.types';
2
2
  export declare const useDefaultizedTimeRangeFieldProps: <TDate, AdditionalProps extends {}>(props: UseSingleInputDateTimeRangeFieldProps<TDate>) => UseSingleInputDateTimeRangeFieldDefaultizedProps<TDate, AdditionalProps>;
3
- export declare const useSingleInputDateTimeRangeField: <TDate, TChildProps extends {}>({ props: inProps, inputRef, }: UseSingleInputDateTimeRangeFieldParams<TDate, TChildProps>) => import("@mui/x-date-pickers/internals").UseFieldResponse<Omit<UseSingleInputDateTimeRangeFieldDefaultizedProps<TDate, TChildProps>, keyof UseSingleInputDateTimeRangeFieldProps<any>>>;
3
+ export declare const useSingleInputDateTimeRangeField: <TDate, TChildProps extends {}>(inProps: UseSingleInputDateTimeRangeFieldComponentProps<TDate, TChildProps>) => import("@mui/x-date-pickers/internals").UseFieldResponse<Omit<UseSingleInputDateTimeRangeFieldDefaultizedProps<TDate, TChildProps>, keyof UseSingleInputDateTimeRangeFieldProps<any>>>;
@@ -19,17 +19,13 @@ export const useDefaultizedTimeRangeFieldProps = props => {
19
19
  disableIgnoringDatePartForTimeValidation: Boolean(props.minDateTime || props.maxDateTime)
20
20
  });
21
21
  };
22
- export const useSingleInputDateTimeRangeField = ({
23
- props: inProps,
24
- inputRef
25
- }) => {
22
+ export const useSingleInputDateTimeRangeField = inProps => {
26
23
  const props = useDefaultizedTimeRangeFieldProps(inProps);
27
24
  const {
28
25
  forwardedProps,
29
26
  internalProps
30
27
  } = splitFieldInternalAndForwardedProps(props, 'date-time');
31
28
  return useField({
32
- inputRef,
33
29
  forwardedProps,
34
30
  internalProps,
35
31
  valueManager: rangeValueManager,
@@ -1,12 +1,11 @@
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
- import { useClearableField } from '@mui/x-date-pickers/hooks';
9
6
  import MuiTextField from '@mui/material/TextField';
7
+ import { useClearableField } from '@mui/x-date-pickers/hooks';
8
+ import { convertFieldResponseIntoMuiTextFieldProps } from '@mui/x-date-pickers/internals';
10
9
  import { useThemeProps } from '@mui/material/styles';
11
10
  import { useSlotProps } from '@mui/base/utils';
12
11
  import { refType } from '@mui/utils';
@@ -22,7 +21,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
22
21
  *
23
22
  * - [SingleInputTimeRangeField API](https://mui.com/x/api/single-input-time-range-field/)
24
23
  */
25
- const SingleInputTimeRangeField = /*#__PURE__*/React.forwardRef(function SingleInputTimeRangeField(inProps, ref) {
24
+ const SingleInputTimeRangeField = /*#__PURE__*/React.forwardRef(function SingleInputTimeRangeField(inProps, inRef) {
26
25
  var _slots$textField;
27
26
  const themeProps = useThemeProps({
28
27
  props: inProps,
@@ -37,58 +36,26 @@ const SingleInputTimeRangeField = /*#__PURE__*/React.forwardRef(function SingleI
37
36
  other = _objectWithoutPropertiesLoose(themeProps, _excluded);
38
37
  const ownerState = themeProps;
39
38
  const TextField = (_slots$textField = slots == null ? void 0 : slots.textField) != null ? _slots$textField : MuiTextField;
40
- const _useSlotProps = useSlotProps({
41
- elementType: TextField,
42
- externalSlotProps: slotProps == null ? void 0 : slotProps.textField,
43
- externalForwardedProps: other,
44
- ownerState
45
- }),
46
- {
47
- inputRef: externalInputRef
48
- } = _useSlotProps,
49
- textFieldProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);
39
+ const textFieldProps = useSlotProps({
40
+ elementType: TextField,
41
+ externalSlotProps: slotProps == null ? void 0 : slotProps.textField,
42
+ externalForwardedProps: other,
43
+ ownerState,
44
+ additionalProps: {
45
+ ref: inRef
46
+ }
47
+ });
50
48
 
51
49
  // TODO: Remove when mui/material-ui#35088 will be merged
52
50
  textFieldProps.inputProps = _extends({}, inputProps, textFieldProps.inputProps);
53
51
  textFieldProps.InputProps = _extends({}, InputProps, textFieldProps.InputProps);
54
- const _useSingleInputTimeRa = useSingleInputTimeRangeField({
55
- props: textFieldProps,
56
- inputRef: externalInputRef
57
- }),
58
- {
59
- ref: inputRef,
60
- onPaste,
61
- onKeyDown,
62
- inputMode,
63
- readOnly,
64
- clearable,
65
- onClear
66
- } = _useSingleInputTimeRa,
67
- fieldProps = _objectWithoutPropertiesLoose(_useSingleInputTimeRa, _excluded3);
68
- const {
69
- InputProps: ProcessedInputProps,
70
- fieldProps: processedFieldProps
71
- } = useClearableField({
72
- onClear,
73
- clearable,
74
- fieldProps,
75
- InputProps: fieldProps.InputProps,
52
+ const fieldResponse = useSingleInputTimeRangeField(textFieldProps);
53
+ const convertedFieldResponse = convertFieldResponseIntoMuiTextFieldProps(fieldResponse);
54
+ const processedFieldProps = useClearableField(_extends({}, convertedFieldResponse, {
76
55
  slots,
77
56
  slotProps
78
- });
79
- return /*#__PURE__*/_jsx(TextField, _extends({
80
- ref: ref
81
- }, processedFieldProps, {
82
- InputProps: _extends({}, ProcessedInputProps, {
83
- readOnly
84
- }),
85
- inputProps: _extends({}, fieldProps.inputProps, {
86
- inputMode,
87
- onPaste,
88
- onKeyDown,
89
- ref: inputRef
90
- })
91
57
  }));
58
+ return /*#__PURE__*/_jsx(TextField, _extends({}, processedFieldProps));
92
59
  });
93
60
  SingleInputTimeRangeField.fieldType = 'single-input';
94
61
  process.env.NODE_ENV !== "production" ? SingleInputTimeRangeField.propTypes = {
@@ -284,7 +251,7 @@ process.env.NODE_ENV !== "production" ? SingleInputTimeRangeField.propTypes = {
284
251
  * 4. If `null` is provided, no section will be selected
285
252
  * If not provided, the selected sections will be handled internally.
286
253
  */
287
- 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({
288
255
  endIndex: PropTypes.number.isRequired,
289
256
  startIndex: PropTypes.number.isRequired
290
257
  })]),