@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,10 +25,8 @@ export var useDefaultizedDateTimeRangeFieldProps = function useDefaultizedDateTi
25
25
  export var useMultiInputDateTimeRangeField = function useMultiInputDateTimeRangeField(_ref) {
26
26
  var inSharedProps = _ref.sharedProps,
27
27
  startTextFieldProps = _ref.startTextFieldProps,
28
- startInputRef = _ref.startInputRef,
29
28
  unstableStartFieldRef = _ref.unstableStartFieldRef,
30
29
  endTextFieldProps = _ref.endTextFieldProps,
31
- endInputRef = _ref.endInputRef,
32
30
  unstableEndFieldRef = _ref.unstableEndFieldRef;
33
31
  var sharedProps = useDefaultizedDateTimeRangeFieldProps(inSharedProps);
34
32
  var adapter = useLocalizationContext();
@@ -106,14 +104,8 @@ export var useMultiInputDateTimeRangeField = function useMultiInputDateTimeRange
106
104
  selectedSections: selectedSections,
107
105
  onSelectedSectionsChange: onSelectedSectionsChange
108
106
  });
109
- var startDateResponse = useDateTimeField({
110
- props: startFieldProps,
111
- inputRef: startInputRef
112
- });
113
- var endDateResponse = useDateTimeField({
114
- props: endFieldProps,
115
- inputRef: endInputRef
116
- });
107
+ var startDateResponse = useDateTimeField(startFieldProps);
108
+ var endDateResponse = useDateTimeField(endFieldProps);
117
109
 
118
110
  /* TODO: Undo this change when a clearable behavior for multiple input range fields is implemented */
119
111
  return {
@@ -19,10 +19,8 @@ export var useDefaultizedTimeRangeFieldProps = function useDefaultizedTimeRangeF
19
19
  export var useMultiInputTimeRangeField = function useMultiInputTimeRangeField(_ref) {
20
20
  var inSharedProps = _ref.sharedProps,
21
21
  startTextFieldProps = _ref.startTextFieldProps,
22
- startInputRef = _ref.startInputRef,
23
22
  unstableStartFieldRef = _ref.unstableStartFieldRef,
24
23
  endTextFieldProps = _ref.endTextFieldProps,
25
- endInputRef = _ref.endInputRef,
26
24
  unstableEndFieldRef = _ref.unstableEndFieldRef;
27
25
  var sharedProps = useDefaultizedTimeRangeFieldProps(inSharedProps);
28
26
  var adapter = useLocalizationContext();
@@ -100,14 +98,8 @@ export var useMultiInputTimeRangeField = function useMultiInputTimeRangeField(_r
100
98
  selectedSections: selectedSections,
101
99
  onSelectedSectionsChange: onSelectedSectionsChange
102
100
  });
103
- var startDateResponse = useTimeField({
104
- props: startFieldProps,
105
- inputRef: startInputRef
106
- });
107
- var endDateResponse = useTimeField({
108
- props: endFieldProps,
109
- inputRef: endInputRef
110
- });
101
+ var startDateResponse = useTimeField(startFieldProps);
102
+ var endDateResponse = useTimeField(endFieldProps);
111
103
 
112
104
  /* TODO: Undo this change when a clearable behavior for multiple input range fields is implemented */
113
105
  return {
@@ -1,6 +1,6 @@
1
1
  import { ponyfillGlobal } from '@mui/utils';
2
2
  export var getReleaseInfo = function getReleaseInfo() {
3
- var releaseInfo = "MTcwMTk5MDAwMDAwMA==";
3
+ var releaseInfo = "MTcwMjQ5NDAwMDAwMA==";
4
4
  if (process.env.NODE_ENV !== 'production') {
5
5
  // A simple hack to set the value in the test environment (has no build step).
6
6
  // eslint-disable-next-line no-useless-concat
@@ -470,7 +470,7 @@ const DateRangeCalendar = /*#__PURE__*/React.forwardRef(function DateRangeCalend
470
470
  renderLoading: renderLoading,
471
471
  slots: slotsForDayCalendar,
472
472
  slotProps: slotPropsForDayCalendar,
473
- autoFocus: month === focusedMonth,
473
+ autoFocus: visibleMonths[month] === focusedMonth,
474
474
  fixedWeekNumber: fixedWeekNumber,
475
475
  displayWeekNumber: displayWeekNumber,
476
476
  timezone: timezone
@@ -182,6 +182,11 @@ process.env.NODE_ENV !== "production" ? DateRangePicker.propTypes = {
182
182
  * Minimal selectable date.
183
183
  */
184
184
  minDate: PropTypes.any,
185
+ /**
186
+ * Name attribute used by the `input` element in the Field.
187
+ * Ignored if the field has several inputs.
188
+ */
189
+ name: PropTypes.string,
185
190
  /**
186
191
  * Callback fired when the value is accepted.
187
192
  * @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.
@@ -268,7 +273,7 @@ process.env.NODE_ENV !== "production" ? DateRangePicker.propTypes = {
268
273
  * 4. If `null` is provided, no section will be selected
269
274
  * If not provided, the selected sections will be handled internally.
270
275
  */
271
- 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({
272
277
  endIndex: PropTypes.number.isRequired,
273
278
  startIndex: PropTypes.number.isRequired
274
279
  })]),
@@ -187,6 +187,11 @@ DesktopDateRangePicker.propTypes = {
187
187
  * Minimal selectable date.
188
188
  */
189
189
  minDate: PropTypes.any,
190
+ /**
191
+ * Name attribute used by the `input` element in the Field.
192
+ * Ignored if the field has several inputs.
193
+ */
194
+ name: PropTypes.string,
190
195
  /**
191
196
  * Callback fired when the value is accepted.
192
197
  * @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.
@@ -273,7 +278,7 @@ DesktopDateRangePicker.propTypes = {
273
278
  * 4. If `null` is provided, no section will be selected
274
279
  * If not provided, the selected sections will be handled internally.
275
280
  */
276
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
281
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
277
282
  endIndex: PropTypes.number.isRequired,
278
283
  startIndex: PropTypes.number.isRequired
279
284
  })]),
@@ -187,6 +187,11 @@ MobileDateRangePicker.propTypes = {
187
187
  * Minimal selectable date.
188
188
  */
189
189
  minDate: PropTypes.any,
190
+ /**
191
+ * Name attribute used by the `input` element in the Field.
192
+ * Ignored if the field has several inputs.
193
+ */
194
+ name: PropTypes.string,
190
195
  /**
191
196
  * Callback fired when the value is accepted.
192
197
  * @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.
@@ -273,7 +278,7 @@ MobileDateRangePicker.propTypes = {
273
278
  * 4. If `null` is provided, no section will be selected
274
279
  * If not provided, the selected sections will be handled internally.
275
280
  */
276
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
281
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
277
282
  endIndex: PropTypes.number.isRequired,
278
283
  startIndex: PropTypes.number.isRequired
279
284
  })]),
@@ -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 { useMultiInputDateRangeField } from '../internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField';
17
15
  import { jsx as _jsx } from "react/jsx-runtime";
18
16
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -112,58 +110,23 @@ const MultiInputDateRangeField = /*#__PURE__*/React.forwardRef(function MultiInp
112
110
  ownerState,
113
111
  className: classes.separator
114
112
  });
115
- const _useMultiInputDateRan = useMultiInputDateRangeField({
116
- sharedProps: _extends({}, dateFieldInternalProps, {
117
- disabled
118
- }),
119
- startTextFieldProps,
120
- endTextFieldProps,
121
- unstableStartFieldRef,
122
- unstableEndFieldRef,
123
- startInputRef: startTextFieldProps.inputRef,
124
- endInputRef: endTextFieldProps.inputRef
113
+ const fieldResponse = useMultiInputDateRangeField({
114
+ sharedProps: _extends({}, dateFieldInternalProps, {
115
+ disabled
125
116
  }),
126
- {
127
- startDate: {
128
- onKeyDown: onStartInputKeyDown,
129
- ref: startInputRef,
130
- readOnly: startReadOnly,
131
- inputMode: startInputMode
132
- },
133
- endDate: {
134
- onKeyDown: onEndInputKeyDown,
135
- ref: endInputRef,
136
- readOnly: endReadOnly,
137
- inputMode: endInputMode
138
- }
139
- } = _useMultiInputDateRan,
140
- startDateProps = _objectWithoutPropertiesLoose(_useMultiInputDateRan.startDate, _excluded3),
141
- endDateProps = _objectWithoutPropertiesLoose(_useMultiInputDateRan.endDate, _excluded2);
117
+ startTextFieldProps,
118
+ endTextFieldProps,
119
+ unstableStartFieldRef,
120
+ unstableEndFieldRef
121
+ });
122
+ const startDateProps = convertFieldResponseIntoMuiTextFieldProps(fieldResponse.startDate);
123
+ const endDateProps = convertFieldResponseIntoMuiTextFieldProps(fieldResponse.endDate);
142
124
  return /*#__PURE__*/_jsxs(Root, _extends({}, rootProps, {
143
125
  children: [/*#__PURE__*/_jsx(TextField, _extends({
144
126
  fullWidth: true
145
- }, startDateProps, {
146
- InputProps: _extends({}, startDateProps.InputProps, {
147
- readOnly: startReadOnly
148
- }),
149
- inputProps: _extends({}, startDateProps.inputProps, {
150
- ref: startInputRef,
151
- inputMode: startInputMode,
152
- onKeyDown: onStartInputKeyDown
153
- })
154
- })), /*#__PURE__*/_jsx(Separator, _extends({}, separatorProps)), /*#__PURE__*/_jsx(TextField, _extends({
127
+ }, startDateProps)), /*#__PURE__*/_jsx(Separator, _extends({}, separatorProps)), /*#__PURE__*/_jsx(TextField, _extends({
155
128
  fullWidth: true
156
- }, endDateProps, {
157
- InputProps: _extends({}, endDateProps.InputProps, {
158
- readOnly: endReadOnly
159
- }),
160
- inputProps: _extends({}, endDateProps.inputProps, {
161
- ref: endInputRef,
162
- readOnly: endReadOnly,
163
- inputMode: endInputMode,
164
- onKeyDown: onEndInputKeyDown
165
- })
166
- }))]
129
+ }, endDateProps))]
167
130
  }));
168
131
  });
169
132
  process.env.NODE_ENV !== "production" ? MultiInputDateRangeField.propTypes = {
@@ -267,7 +230,7 @@ process.env.NODE_ENV !== "production" ? MultiInputDateRangeField.propTypes = {
267
230
  * 4. If `null` is provided, no section will be selected
268
231
  * If not provided, the selected sections will be handled internally.
269
232
  */
270
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
233
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
271
234
  endIndex: PropTypes.number.isRequired,
272
235
  startIndex: PropTypes.number.isRequired
273
236
  })]),
@@ -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 { useMultiInputDateTimeRangeField } from '../internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField';
17
15
  import { jsx as _jsx } from "react/jsx-runtime";
18
16
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -112,58 +110,23 @@ const MultiInputDateTimeRangeField = /*#__PURE__*/React.forwardRef(function Mult
112
110
  ownerState,
113
111
  className: classes.separator
114
112
  });
115
- const _useMultiInputDateTim = useMultiInputDateTimeRangeField({
116
- sharedProps: _extends({}, dateTimeFieldInternalProps, {
117
- disabled
118
- }),
119
- startTextFieldProps,
120
- endTextFieldProps,
121
- startInputRef: startTextFieldProps.inputRef,
122
- unstableStartFieldRef,
123
- endInputRef: endTextFieldProps.inputRef,
124
- unstableEndFieldRef
113
+ const fieldResponse = useMultiInputDateTimeRangeField({
114
+ sharedProps: _extends({}, dateTimeFieldInternalProps, {
115
+ disabled
125
116
  }),
126
- {
127
- startDate: {
128
- onKeyDown: onStartInputKeyDown,
129
- ref: startInputRef,
130
- readOnly: startReadOnly,
131
- inputMode: startInputMode
132
- },
133
- endDate: {
134
- onKeyDown: onEndInputKeyDown,
135
- ref: endInputRef,
136
- readOnly: endReadOnly,
137
- inputMode: endInputMode
138
- }
139
- } = _useMultiInputDateTim,
140
- startDateProps = _objectWithoutPropertiesLoose(_useMultiInputDateTim.startDate, _excluded3),
141
- endDateProps = _objectWithoutPropertiesLoose(_useMultiInputDateTim.endDate, _excluded2);
117
+ startTextFieldProps,
118
+ endTextFieldProps,
119
+ unstableStartFieldRef,
120
+ unstableEndFieldRef
121
+ });
122
+ const startDateProps = convertFieldResponseIntoMuiTextFieldProps(fieldResponse.startDate);
123
+ const endDateProps = convertFieldResponseIntoMuiTextFieldProps(fieldResponse.endDate);
142
124
  return /*#__PURE__*/_jsxs(Root, _extends({}, rootProps, {
143
125
  children: [/*#__PURE__*/_jsx(TextField, _extends({
144
126
  fullWidth: true
145
- }, startDateProps, {
146
- InputProps: _extends({}, startDateProps.InputProps, {
147
- readOnly: startReadOnly
148
- }),
149
- inputProps: _extends({}, startDateProps.inputProps, {
150
- ref: startInputRef,
151
- inputMode: startInputMode,
152
- onKeyDown: onStartInputKeyDown
153
- })
154
- })), /*#__PURE__*/_jsx(Separator, _extends({}, separatorProps)), /*#__PURE__*/_jsx(TextField, _extends({
127
+ }, startDateProps)), /*#__PURE__*/_jsx(Separator, _extends({}, separatorProps)), /*#__PURE__*/_jsx(TextField, _extends({
155
128
  fullWidth: true
156
- }, endDateProps, {
157
- InputProps: _extends({}, endDateProps.InputProps, {
158
- readOnly: endReadOnly
159
- }),
160
- inputProps: _extends({}, endDateProps.inputProps, {
161
- ref: endInputRef,
162
- readOnly: endReadOnly,
163
- inputMode: endInputMode,
164
- onKeyDown: onEndInputKeyDown
165
- })
166
- }))]
129
+ }, endDateProps))]
167
130
  }));
168
131
  });
169
132
  process.env.NODE_ENV !== "production" ? MultiInputDateTimeRangeField.propTypes = {
@@ -300,7 +263,7 @@ process.env.NODE_ENV !== "production" ? MultiInputDateTimeRangeField.propTypes =
300
263
  * 4. If `null` is provided, no section will be selected
301
264
  * If not provided, the selected sections will be handled internally.
302
265
  */
303
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
266
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
304
267
  endIndex: PropTypes.number.isRequired,
305
268
  startIndex: PropTypes.number.isRequired
306
269
  })]),
@@ -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";
@@ -112,58 +110,23 @@ const MultiInputTimeRangeField = /*#__PURE__*/React.forwardRef(function MultiInp
112
110
  ownerState,
113
111
  className: classes.separator
114
112
  });
115
- const _useMultiInputTimeRan = useMultiInputTimeRangeField({
116
- sharedProps: _extends({}, timeFieldInternalProps, {
117
- disabled
118
- }),
119
- startTextFieldProps,
120
- endTextFieldProps,
121
- startInputRef: startTextFieldProps.inputRef,
122
- unstableStartFieldRef,
123
- endInputRef: endTextFieldProps.inputRef,
124
- unstableEndFieldRef
113
+ const fieldResponse = useMultiInputTimeRangeField({
114
+ sharedProps: _extends({}, timeFieldInternalProps, {
115
+ disabled
125
116
  }),
126
- {
127
- startDate: {
128
- onKeyDown: onStartInputKeyDown,
129
- ref: startInputRef,
130
- readOnly: startReadOnly,
131
- inputMode: startInputMode
132
- },
133
- endDate: {
134
- onKeyDown: onEndInputKeyDown,
135
- ref: endInputRef,
136
- readOnly: endReadOnly,
137
- inputMode: endInputMode
138
- }
139
- } = _useMultiInputTimeRan,
140
- startDateProps = _objectWithoutPropertiesLoose(_useMultiInputTimeRan.startDate, _excluded3),
141
- endDateProps = _objectWithoutPropertiesLoose(_useMultiInputTimeRan.endDate, _excluded2);
117
+ startTextFieldProps,
118
+ endTextFieldProps,
119
+ unstableStartFieldRef,
120
+ unstableEndFieldRef
121
+ });
122
+ const startDateProps = convertFieldResponseIntoMuiTextFieldProps(fieldResponse.startDate);
123
+ const endDateProps = convertFieldResponseIntoMuiTextFieldProps(fieldResponse.endDate);
142
124
  return /*#__PURE__*/_jsxs(Root, _extends({}, rootProps, {
143
125
  children: [/*#__PURE__*/_jsx(TextField, _extends({
144
126
  fullWidth: true
145
- }, startDateProps, {
146
- InputProps: _extends({}, startDateProps.InputProps, {
147
- readOnly: startReadOnly
148
- }),
149
- inputProps: _extends({}, startDateProps.inputProps, {
150
- ref: startInputRef,
151
- inputMode: startInputMode,
152
- onKeyDown: onStartInputKeyDown
153
- })
154
- })), /*#__PURE__*/_jsx(Separator, _extends({}, separatorProps)), /*#__PURE__*/_jsx(TextField, _extends({
127
+ }, startDateProps)), /*#__PURE__*/_jsx(Separator, _extends({}, separatorProps)), /*#__PURE__*/_jsx(TextField, _extends({
155
128
  fullWidth: true
156
- }, endDateProps, {
157
- InputProps: _extends({}, endDateProps.InputProps, {
158
- readOnly: endReadOnly
159
- }),
160
- inputProps: _extends({}, endDateProps.inputProps, {
161
- ref: endInputRef,
162
- readOnly: endReadOnly,
163
- inputMode: endInputMode,
164
- onKeyDown: onEndInputKeyDown
165
- })
166
- }))]
129
+ }, endDateProps))]
167
130
  }));
168
131
  });
169
132
  process.env.NODE_ENV !== "production" ? MultiInputTimeRangeField.propTypes = {
@@ -284,7 +247,7 @@ process.env.NODE_ENV !== "production" ? MultiInputTimeRangeField.propTypes = {
284
247
  * 4. If `null` is provided, no section will be selected
285
248
  * If not provided, the selected sections will be handled internally.
286
249
  */
287
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
250
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
288
251
  endIndex: PropTypes.number.isRequired,
289
252
  startIndex: PropTypes.number.isRequired
290
253
  })]),
@@ -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
  const themeProps = useThemeProps({
27
26
  props: inProps,
28
27
  name: 'MuiSingleInputDateRangeField'
@@ -36,58 +35,26 @@ const SingleInputDateRangeField = /*#__PURE__*/React.forwardRef(function SingleI
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 _useSingleInputDateRa = useSingleInputDateRangeField({
54
- props: textFieldProps,
55
- inputRef: externalInputRef
56
- }),
57
- {
58
- ref: inputRef,
59
- onPaste,
60
- onKeyDown,
61
- inputMode,
62
- readOnly,
63
- clearable,
64
- onClear
65
- } = _useSingleInputDateRa,
66
- fieldProps = _objectWithoutPropertiesLoose(_useSingleInputDateRa, _excluded3);
67
- const {
68
- InputProps: ProcessedInputProps,
69
- fieldProps: processedFieldProps
70
- } = useClearableField({
71
- onClear,
72
- clearable,
73
- fieldProps,
74
- InputProps: fieldProps.InputProps,
51
+ const fieldResponse = useSingleInputDateRangeField(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
  SingleInputDateRangeField.fieldType = 'single-input';
93
60
  process.env.NODE_ENV !== "production" ? SingleInputDateRangeField.propTypes = {
@@ -266,7 +233,7 @@ process.env.NODE_ENV !== "production" ? SingleInputDateRangeField.propTypes = {
266
233
  * 4. If `null` is provided, no section will be selected
267
234
  * If not provided, the selected sections will be handled internally.
268
235
  */
269
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
236
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
270
237
  endIndex: PropTypes.number.isRequired,
271
238
  startIndex: PropTypes.number.isRequired
272
239
  })]),
@@ -13,17 +13,13 @@ export const useDefaultizedDateRangeFieldProps = props => {
13
13
  maxDate: applyDefaultDate(utils, props.maxDate, defaultDates.maxDate)
14
14
  });
15
15
  };
16
- export const useSingleInputDateRangeField = ({
17
- props: inProps,
18
- inputRef
19
- }) => {
16
+ export const useSingleInputDateRangeField = inProps => {
20
17
  const props = useDefaultizedDateRangeFieldProps(inProps);
21
18
  const {
22
19
  forwardedProps,
23
20
  internalProps
24
21
  } = splitFieldInternalAndForwardedProps(props, 'date');
25
22
  return useField({
26
- inputRef,
27
23
  forwardedProps,
28
24
  internalProps,
29
25
  valueManager: rangeValueManager,