@mui/x-date-pickers-pro 7.0.0-alpha.4 → 7.0.0-alpha.6

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 +342 -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 +5 -5
@@ -1,4 +1,4 @@
1
1
  import type { UseMultiInputTimeRangeFieldDefaultizedProps, UseMultiInputTimeRangeFieldParams, UseMultiInputTimeRangeFieldProps } from '../../../MultiInputTimeRangeField/MultiInputTimeRangeField.types';
2
2
  import type { UseMultiInputRangeFieldResponse } from './useMultiInputRangeField.types';
3
3
  export declare const useDefaultizedTimeRangeFieldProps: <TDate, AdditionalProps extends {}>(props: UseMultiInputTimeRangeFieldProps<TDate>) => UseMultiInputTimeRangeFieldDefaultizedProps<TDate, AdditionalProps>;
4
- export declare const useMultiInputTimeRangeField: <TDate, TTextFieldSlotProps extends {}>({ sharedProps: inSharedProps, startTextFieldProps, startInputRef, unstableStartFieldRef, endTextFieldProps, endInputRef, unstableEndFieldRef, }: UseMultiInputTimeRangeFieldParams<TDate, TTextFieldSlotProps>) => UseMultiInputRangeFieldResponse<TTextFieldSlotProps>;
4
+ export declare const useMultiInputTimeRangeField: <TDate, TTextFieldSlotProps extends {}>({ sharedProps: inSharedProps, startTextFieldProps, unstableStartFieldRef, endTextFieldProps, unstableEndFieldRef, }: UseMultiInputTimeRangeFieldParams<TDate, TTextFieldSlotProps>) => UseMultiInputRangeFieldResponse<TTextFieldSlotProps>;
@@ -19,10 +19,8 @@ export const useDefaultizedTimeRangeFieldProps = props => {
19
19
  export const useMultiInputTimeRangeField = ({
20
20
  sharedProps: inSharedProps,
21
21
  startTextFieldProps,
22
- startInputRef,
23
22
  unstableStartFieldRef,
24
23
  endTextFieldProps,
25
- endInputRef,
26
24
  unstableEndFieldRef
27
25
  }) => {
28
26
  const sharedProps = useDefaultizedTimeRangeFieldProps(inSharedProps);
@@ -104,14 +102,8 @@ export const useMultiInputTimeRangeField = ({
104
102
  selectedSections,
105
103
  onSelectedSectionsChange
106
104
  });
107
- const startDateResponse = useTimeField({
108
- props: startFieldProps,
109
- inputRef: startInputRef
110
- });
111
- const endDateResponse = useTimeField({
112
- props: endFieldProps,
113
- inputRef: endInputRef
114
- });
105
+ const startDateResponse = useTimeField(startFieldProps);
106
+ const endDateResponse = useTimeField(endFieldProps);
115
107
 
116
108
  /* TODO: Undo this change when a clearable behavior for multiple input range fields is implemented */
117
109
  return {
@@ -1,2 +1,2 @@
1
1
  export { useStaticRangePicker } from './useStaticRangePicker';
2
- export type { UseStaticRangePickerSlotsComponent, UseStaticRangePickerSlotsComponentsProps, StaticRangeOnlyPickerProps, } from './useStaticRangePicker.types';
2
+ export type { UseStaticRangePickerSlots, UseStaticRangePickerSlotProps, StaticRangeOnlyPickerProps, } from './useStaticRangePicker.types';
@@ -1,13 +1,13 @@
1
1
  import * as React from 'react';
2
2
  import { BasePickerProps, UsePickerParams, ExportedBaseToolbarProps, StaticOnlyPickerProps } from '@mui/x-date-pickers/internals';
3
- import { ExportedPickersLayoutSlotsComponent, ExportedPickersLayoutSlotsComponentsProps } from '@mui/x-date-pickers/PickersLayout';
3
+ import { ExportedPickersLayoutSlots, ExportedPickersLayoutSlotProps } from '@mui/x-date-pickers/PickersLayout';
4
4
  import { DateOrTimeViewWithMeridiem } from '@mui/x-date-pickers/internals/models';
5
5
  import { DateRange } from '../../models/range';
6
6
  import { UseRangePositionProps } from '../useRangePosition';
7
7
  import { RangeFieldSection } from '../../models/fields';
8
- export interface UseStaticRangePickerSlotsComponent<TDate, TView extends DateOrTimeViewWithMeridiem> extends ExportedPickersLayoutSlotsComponent<DateRange<TDate>, TDate, TView> {
8
+ export interface UseStaticRangePickerSlots<TDate, TView extends DateOrTimeViewWithMeridiem> extends ExportedPickersLayoutSlots<DateRange<TDate>, TDate, TView> {
9
9
  }
10
- export interface UseStaticRangePickerSlotsComponentsProps<TDate, TView extends DateOrTimeViewWithMeridiem> extends ExportedPickersLayoutSlotsComponentsProps<DateRange<TDate>, TDate, TView> {
10
+ export interface UseStaticRangePickerSlotProps<TDate, TView extends DateOrTimeViewWithMeridiem> extends ExportedPickersLayoutSlotProps<DateRange<TDate>, TDate, TView> {
11
11
  toolbar?: ExportedBaseToolbarProps;
12
12
  }
13
13
  export interface StaticRangeOnlyPickerProps extends StaticOnlyPickerProps, UseRangePositionProps {
@@ -17,12 +17,12 @@ export interface UseStaticRangePickerProps<TDate, TView extends DateOrTimeViewWi
17
17
  * Overridable components.
18
18
  * @default {}
19
19
  */
20
- slots?: UseStaticRangePickerSlotsComponent<TDate, TView>;
20
+ slots?: UseStaticRangePickerSlots<TDate, TView>;
21
21
  /**
22
22
  * The props used for each component slot.
23
23
  * @default {}
24
24
  */
25
- slotProps?: UseStaticRangePickerSlotsComponentsProps<TDate, TView>;
25
+ slotProps?: UseStaticRangePickerSlotProps<TDate, TView>;
26
26
  }
27
27
  export interface UseStaticRangePickerParams<TDate, TView extends DateOrTimeViewWithMeridiem, TExternalProps extends UseStaticRangePickerProps<TDate, TView, any, TExternalProps>> extends Pick<UsePickerParams<DateRange<TDate>, TDate, TView, RangeFieldSection, TExternalProps, {}>, 'valueManager' | 'valueType' | 'validator'> {
28
28
  props: TExternalProps;
@@ -14,4 +14,9 @@ export interface BaseRangeNonStaticPickerProps {
14
14
  * Ignored if the field has several inputs.
15
15
  */
16
16
  inputRef?: React.Ref<HTMLInputElement>;
17
+ /**
18
+ * Name attribute used by the `input` element in the Field.
19
+ * Ignored if the field has several inputs.
20
+ */
21
+ name?: string;
17
22
  }
@@ -1,6 +1,6 @@
1
1
  import { ponyfillGlobal } from '@mui/utils';
2
2
  export const getReleaseInfo = () => {
3
- const releaseInfo = "MTcwMTk5MDAwMDAwMA==";
3
+ const releaseInfo = "MTcwMzIyMTIwMDAwMA==";
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
@@ -497,7 +497,7 @@ var DateRangeCalendar = /*#__PURE__*/React.forwardRef(function DateRangeCalendar
497
497
  renderLoading: renderLoading,
498
498
  slots: slotsForDayCalendar,
499
499
  slotProps: slotPropsForDayCalendar,
500
- autoFocus: month === focusedMonth,
500
+ autoFocus: visibleMonths[month] === focusedMonth,
501
501
  fixedWeekNumber: fixedWeekNumber,
502
502
  displayWeekNumber: displayWeekNumber,
503
503
  timezone: timezone
@@ -181,6 +181,11 @@ process.env.NODE_ENV !== "production" ? DateRangePicker.propTypes = {
181
181
  * Minimal selectable date.
182
182
  */
183
183
  minDate: PropTypes.any,
184
+ /**
185
+ * Name attribute used by the `input` element in the Field.
186
+ * Ignored if the field has several inputs.
187
+ */
188
+ name: PropTypes.string,
184
189
  /**
185
190
  * Callback fired when the value is accepted.
186
191
  * @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.
@@ -267,7 +272,7 @@ process.env.NODE_ENV !== "production" ? DateRangePicker.propTypes = {
267
272
  * 4. If `null` is provided, no section will be selected
268
273
  * If not provided, the selected sections will be handled internally.
269
274
  */
270
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
275
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
271
276
  endIndex: PropTypes.number.isRequired,
272
277
  startIndex: PropTypes.number.isRequired
273
278
  })]),
@@ -190,6 +190,11 @@ DesktopDateRangePicker.propTypes = {
190
190
  * Minimal selectable date.
191
191
  */
192
192
  minDate: PropTypes.any,
193
+ /**
194
+ * Name attribute used by the `input` element in the Field.
195
+ * Ignored if the field has several inputs.
196
+ */
197
+ name: PropTypes.string,
193
198
  /**
194
199
  * Callback fired when the value is accepted.
195
200
  * @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.
@@ -276,7 +281,7 @@ DesktopDateRangePicker.propTypes = {
276
281
  * 4. If `null` is provided, no section will be selected
277
282
  * If not provided, the selected sections will be handled internally.
278
283
  */
279
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
284
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
280
285
  endIndex: PropTypes.number.isRequired,
281
286
  startIndex: PropTypes.number.isRequired
282
287
  })]),
@@ -190,6 +190,11 @@ MobileDateRangePicker.propTypes = {
190
190
  * Minimal selectable date.
191
191
  */
192
192
  minDate: PropTypes.any,
193
+ /**
194
+ * Name attribute used by the `input` element in the Field.
195
+ * Ignored if the field has several inputs.
196
+ */
197
+ name: PropTypes.string,
193
198
  /**
194
199
  * Callback fired when the value is accepted.
195
200
  * @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.
@@ -276,7 +281,7 @@ MobileDateRangePicker.propTypes = {
276
281
  * 4. If `null` is provided, no section will be selected
277
282
  * If not provided, the selected sections will be handled internally.
278
283
  */
279
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
284
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
280
285
  endIndex: PropTypes.number.isRequired,
281
286
  startIndex: PropTypes.number.isRequired
282
287
  })]),
@@ -1,8 +1,6 @@
1
1
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
2
2
  import _extends from "@babel/runtime/helpers/esm/extends";
3
- var _excluded = ["slots", "slotProps", "disabled", "autoFocus", "unstableStartFieldRef", "unstableEndFieldRef", "className"],
4
- _excluded2 = ["onKeyDown", "ref", "readOnly", "inputMode"],
5
- _excluded3 = ["onKeyDown", "ref", "readOnly", "inputMode"];
3
+ var _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";
@@ -119,54 +117,23 @@ var MultiInputDateRangeField = /*#__PURE__*/React.forwardRef(function MultiInput
119
117
  ownerState: ownerState,
120
118
  className: classes.separator
121
119
  });
122
- var _useMultiInputDateRan = useMultiInputDateRangeField({
123
- sharedProps: _extends({}, dateFieldInternalProps, {
124
- disabled: disabled
125
- }),
126
- startTextFieldProps: startTextFieldProps,
127
- endTextFieldProps: endTextFieldProps,
128
- unstableStartFieldRef: unstableStartFieldRef,
129
- unstableEndFieldRef: unstableEndFieldRef,
130
- startInputRef: startTextFieldProps.inputRef,
131
- endInputRef: endTextFieldProps.inputRef
120
+ var fieldResponse = useMultiInputDateRangeField({
121
+ sharedProps: _extends({}, dateFieldInternalProps, {
122
+ disabled: disabled
132
123
  }),
133
- _useMultiInputDateRan2 = _useMultiInputDateRan.startDate,
134
- onStartInputKeyDown = _useMultiInputDateRan2.onKeyDown,
135
- startInputRef = _useMultiInputDateRan2.ref,
136
- startReadOnly = _useMultiInputDateRan2.readOnly,
137
- startInputMode = _useMultiInputDateRan2.inputMode,
138
- startDateProps = _objectWithoutProperties(_useMultiInputDateRan2, _excluded2),
139
- _useMultiInputDateRan3 = _useMultiInputDateRan.endDate,
140
- onEndInputKeyDown = _useMultiInputDateRan3.onKeyDown,
141
- endInputRef = _useMultiInputDateRan3.ref,
142
- endReadOnly = _useMultiInputDateRan3.readOnly,
143
- endInputMode = _useMultiInputDateRan3.inputMode,
144
- endDateProps = _objectWithoutProperties(_useMultiInputDateRan3, _excluded3);
124
+ startTextFieldProps: startTextFieldProps,
125
+ endTextFieldProps: endTextFieldProps,
126
+ unstableStartFieldRef: unstableStartFieldRef,
127
+ unstableEndFieldRef: unstableEndFieldRef
128
+ });
129
+ var startDateProps = convertFieldResponseIntoMuiTextFieldProps(fieldResponse.startDate);
130
+ var endDateProps = convertFieldResponseIntoMuiTextFieldProps(fieldResponse.endDate);
145
131
  return /*#__PURE__*/_jsxs(Root, _extends({}, rootProps, {
146
132
  children: [/*#__PURE__*/_jsx(TextField, _extends({
147
133
  fullWidth: true
148
- }, startDateProps, {
149
- InputProps: _extends({}, startDateProps.InputProps, {
150
- readOnly: startReadOnly
151
- }),
152
- inputProps: _extends({}, startDateProps.inputProps, {
153
- ref: startInputRef,
154
- inputMode: startInputMode,
155
- onKeyDown: onStartInputKeyDown
156
- })
157
- })), /*#__PURE__*/_jsx(Separator, _extends({}, separatorProps)), /*#__PURE__*/_jsx(TextField, _extends({
134
+ }, startDateProps)), /*#__PURE__*/_jsx(Separator, _extends({}, separatorProps)), /*#__PURE__*/_jsx(TextField, _extends({
158
135
  fullWidth: true
159
- }, endDateProps, {
160
- InputProps: _extends({}, endDateProps.InputProps, {
161
- readOnly: endReadOnly
162
- }),
163
- inputProps: _extends({}, endDateProps.inputProps, {
164
- ref: endInputRef,
165
- readOnly: endReadOnly,
166
- inputMode: endInputMode,
167
- onKeyDown: onEndInputKeyDown
168
- })
169
- }))]
136
+ }, endDateProps))]
170
137
  }));
171
138
  });
172
139
  process.env.NODE_ENV !== "production" ? MultiInputDateRangeField.propTypes = {
@@ -270,7 +237,7 @@ process.env.NODE_ENV !== "production" ? MultiInputDateRangeField.propTypes = {
270
237
  * 4. If `null` is provided, no section will be selected
271
238
  * If not provided, the selected sections will be handled internally.
272
239
  */
273
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
240
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
274
241
  endIndex: PropTypes.number.isRequired,
275
242
  startIndex: PropTypes.number.isRequired
276
243
  })]),
@@ -1,8 +1,6 @@
1
1
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
2
2
  import _extends from "@babel/runtime/helpers/esm/extends";
3
- var _excluded = ["slots", "slotProps", "disabled", "autoFocus", "unstableStartFieldRef", "unstableEndFieldRef", "className"],
4
- _excluded2 = ["onKeyDown", "ref", "readOnly", "inputMode"],
5
- _excluded3 = ["onKeyDown", "ref", "readOnly", "inputMode"];
3
+ var _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";
@@ -119,54 +117,23 @@ var MultiInputDateTimeRangeField = /*#__PURE__*/React.forwardRef(function MultiI
119
117
  ownerState: ownerState,
120
118
  className: classes.separator
121
119
  });
122
- var _useMultiInputDateTim = useMultiInputDateTimeRangeField({
123
- sharedProps: _extends({}, dateTimeFieldInternalProps, {
124
- disabled: disabled
125
- }),
126
- startTextFieldProps: startTextFieldProps,
127
- endTextFieldProps: endTextFieldProps,
128
- startInputRef: startTextFieldProps.inputRef,
129
- unstableStartFieldRef: unstableStartFieldRef,
130
- endInputRef: endTextFieldProps.inputRef,
131
- unstableEndFieldRef: unstableEndFieldRef
120
+ var fieldResponse = useMultiInputDateTimeRangeField({
121
+ sharedProps: _extends({}, dateTimeFieldInternalProps, {
122
+ disabled: disabled
132
123
  }),
133
- _useMultiInputDateTim2 = _useMultiInputDateTim.startDate,
134
- onStartInputKeyDown = _useMultiInputDateTim2.onKeyDown,
135
- startInputRef = _useMultiInputDateTim2.ref,
136
- startReadOnly = _useMultiInputDateTim2.readOnly,
137
- startInputMode = _useMultiInputDateTim2.inputMode,
138
- startDateProps = _objectWithoutProperties(_useMultiInputDateTim2, _excluded2),
139
- _useMultiInputDateTim3 = _useMultiInputDateTim.endDate,
140
- onEndInputKeyDown = _useMultiInputDateTim3.onKeyDown,
141
- endInputRef = _useMultiInputDateTim3.ref,
142
- endReadOnly = _useMultiInputDateTim3.readOnly,
143
- endInputMode = _useMultiInputDateTim3.inputMode,
144
- endDateProps = _objectWithoutProperties(_useMultiInputDateTim3, _excluded3);
124
+ startTextFieldProps: startTextFieldProps,
125
+ endTextFieldProps: endTextFieldProps,
126
+ unstableStartFieldRef: unstableStartFieldRef,
127
+ unstableEndFieldRef: unstableEndFieldRef
128
+ });
129
+ var startDateProps = convertFieldResponseIntoMuiTextFieldProps(fieldResponse.startDate);
130
+ var endDateProps = convertFieldResponseIntoMuiTextFieldProps(fieldResponse.endDate);
145
131
  return /*#__PURE__*/_jsxs(Root, _extends({}, rootProps, {
146
132
  children: [/*#__PURE__*/_jsx(TextField, _extends({
147
133
  fullWidth: true
148
- }, startDateProps, {
149
- InputProps: _extends({}, startDateProps.InputProps, {
150
- readOnly: startReadOnly
151
- }),
152
- inputProps: _extends({}, startDateProps.inputProps, {
153
- ref: startInputRef,
154
- inputMode: startInputMode,
155
- onKeyDown: onStartInputKeyDown
156
- })
157
- })), /*#__PURE__*/_jsx(Separator, _extends({}, separatorProps)), /*#__PURE__*/_jsx(TextField, _extends({
134
+ }, startDateProps)), /*#__PURE__*/_jsx(Separator, _extends({}, separatorProps)), /*#__PURE__*/_jsx(TextField, _extends({
158
135
  fullWidth: true
159
- }, endDateProps, {
160
- InputProps: _extends({}, endDateProps.InputProps, {
161
- readOnly: endReadOnly
162
- }),
163
- inputProps: _extends({}, endDateProps.inputProps, {
164
- ref: endInputRef,
165
- readOnly: endReadOnly,
166
- inputMode: endInputMode,
167
- onKeyDown: onEndInputKeyDown
168
- })
169
- }))]
136
+ }, endDateProps))]
170
137
  }));
171
138
  });
172
139
  process.env.NODE_ENV !== "production" ? MultiInputDateTimeRangeField.propTypes = {
@@ -303,7 +270,7 @@ process.env.NODE_ENV !== "production" ? MultiInputDateTimeRangeField.propTypes =
303
270
  * 4. If `null` is provided, no section will be selected
304
271
  * If not provided, the selected sections will be handled internally.
305
272
  */
306
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
273
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
307
274
  endIndex: PropTypes.number.isRequired,
308
275
  startIndex: PropTypes.number.isRequired
309
276
  })]),
@@ -1,8 +1,6 @@
1
1
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
2
2
  import _extends from "@babel/runtime/helpers/esm/extends";
3
- var _excluded = ["slots", "slotProps", "disabled", "autoFocus", "unstableStartFieldRef", "unstableEndFieldRef", "className"],
4
- _excluded2 = ["onKeyDown", "ref", "readOnly", "inputMode"],
5
- _excluded3 = ["onKeyDown", "ref", "readOnly", "inputMode"];
3
+ var _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";
@@ -119,54 +117,23 @@ var MultiInputTimeRangeField = /*#__PURE__*/React.forwardRef(function MultiInput
119
117
  ownerState: ownerState,
120
118
  className: classes.separator
121
119
  });
122
- var _useMultiInputTimeRan = useMultiInputTimeRangeField({
123
- sharedProps: _extends({}, timeFieldInternalProps, {
124
- disabled: disabled
125
- }),
126
- startTextFieldProps: startTextFieldProps,
127
- endTextFieldProps: endTextFieldProps,
128
- startInputRef: startTextFieldProps.inputRef,
129
- unstableStartFieldRef: unstableStartFieldRef,
130
- endInputRef: endTextFieldProps.inputRef,
131
- unstableEndFieldRef: unstableEndFieldRef
120
+ var fieldResponse = useMultiInputTimeRangeField({
121
+ sharedProps: _extends({}, timeFieldInternalProps, {
122
+ disabled: disabled
132
123
  }),
133
- _useMultiInputTimeRan2 = _useMultiInputTimeRan.startDate,
134
- onStartInputKeyDown = _useMultiInputTimeRan2.onKeyDown,
135
- startInputRef = _useMultiInputTimeRan2.ref,
136
- startReadOnly = _useMultiInputTimeRan2.readOnly,
137
- startInputMode = _useMultiInputTimeRan2.inputMode,
138
- startDateProps = _objectWithoutProperties(_useMultiInputTimeRan2, _excluded2),
139
- _useMultiInputTimeRan3 = _useMultiInputTimeRan.endDate,
140
- onEndInputKeyDown = _useMultiInputTimeRan3.onKeyDown,
141
- endInputRef = _useMultiInputTimeRan3.ref,
142
- endReadOnly = _useMultiInputTimeRan3.readOnly,
143
- endInputMode = _useMultiInputTimeRan3.inputMode,
144
- endDateProps = _objectWithoutProperties(_useMultiInputTimeRan3, _excluded3);
124
+ startTextFieldProps: startTextFieldProps,
125
+ endTextFieldProps: endTextFieldProps,
126
+ unstableStartFieldRef: unstableStartFieldRef,
127
+ unstableEndFieldRef: unstableEndFieldRef
128
+ });
129
+ var startDateProps = convertFieldResponseIntoMuiTextFieldProps(fieldResponse.startDate);
130
+ var endDateProps = convertFieldResponseIntoMuiTextFieldProps(fieldResponse.endDate);
145
131
  return /*#__PURE__*/_jsxs(Root, _extends({}, rootProps, {
146
132
  children: [/*#__PURE__*/_jsx(TextField, _extends({
147
133
  fullWidth: true
148
- }, startDateProps, {
149
- InputProps: _extends({}, startDateProps.InputProps, {
150
- readOnly: startReadOnly
151
- }),
152
- inputProps: _extends({}, startDateProps.inputProps, {
153
- ref: startInputRef,
154
- inputMode: startInputMode,
155
- onKeyDown: onStartInputKeyDown
156
- })
157
- })), /*#__PURE__*/_jsx(Separator, _extends({}, separatorProps)), /*#__PURE__*/_jsx(TextField, _extends({
134
+ }, startDateProps)), /*#__PURE__*/_jsx(Separator, _extends({}, separatorProps)), /*#__PURE__*/_jsx(TextField, _extends({
158
135
  fullWidth: true
159
- }, endDateProps, {
160
- InputProps: _extends({}, endDateProps.InputProps, {
161
- readOnly: endReadOnly
162
- }),
163
- inputProps: _extends({}, endDateProps.inputProps, {
164
- ref: endInputRef,
165
- readOnly: endReadOnly,
166
- inputMode: endInputMode,
167
- onKeyDown: onEndInputKeyDown
168
- })
169
- }))]
136
+ }, endDateProps))]
170
137
  }));
171
138
  });
172
139
  process.env.NODE_ENV !== "production" ? MultiInputTimeRangeField.propTypes = {
@@ -287,7 +254,7 @@ process.env.NODE_ENV !== "production" ? MultiInputTimeRangeField.propTypes = {
287
254
  * 4. If `null` is provided, no section will be selected
288
255
  * If not provided, the selected sections will be handled internally.
289
256
  */
290
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
257
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
291
258
  endIndex: PropTypes.number.isRequired,
292
259
  startIndex: PropTypes.number.isRequired
293
260
  })]),
@@ -1,14 +1,13 @@
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';
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
- var SingleInputDateRangeField = /*#__PURE__*/React.forwardRef(function SingleInputDateRangeField(inProps, ref) {
24
+ var SingleInputDateRangeField = /*#__PURE__*/React.forwardRef(function SingleInputDateRangeField(inProps, inRef) {
26
25
  var _slots$textField;
27
26
  var themeProps = useThemeProps({
28
27
  props: inProps,
@@ -35,53 +34,26 @@ var SingleInputDateRangeField = /*#__PURE__*/React.forwardRef(function SingleInp
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 _useSingleInputDateRa = useSingleInputDateRangeField({
51
- props: textFieldProps,
52
- inputRef: externalInputRef
53
- }),
54
- inputRef = _useSingleInputDateRa.ref,
55
- onPaste = _useSingleInputDateRa.onPaste,
56
- onKeyDown = _useSingleInputDateRa.onKeyDown,
57
- inputMode = _useSingleInputDateRa.inputMode,
58
- readOnly = _useSingleInputDateRa.readOnly,
59
- clearable = _useSingleInputDateRa.clearable,
60
- onClear = _useSingleInputDateRa.onClear,
61
- fieldProps = _objectWithoutProperties(_useSingleInputDateRa, _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 = useSingleInputDateRangeField(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
  SingleInputDateRangeField.fieldType = 'single-input';
87
59
  process.env.NODE_ENV !== "production" ? SingleInputDateRangeField.propTypes = {
@@ -260,7 +232,7 @@ process.env.NODE_ENV !== "production" ? SingleInputDateRangeField.propTypes = {
260
232
  * 4. If `null` is provided, no section will be selected
261
233
  * If not provided, the selected sections will be handled internally.
262
234
  */
263
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
235
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
264
236
  endIndex: PropTypes.number.isRequired,
265
237
  startIndex: PropTypes.number.isRequired
266
238
  })]),
@@ -14,15 +14,12 @@ export var useDefaultizedDateRangeFieldProps = function useDefaultizedDateRangeF
14
14
  maxDate: applyDefaultDate(utils, props.maxDate, defaultDates.maxDate)
15
15
  });
16
16
  };
17
- export var useSingleInputDateRangeField = function useSingleInputDateRangeField(_ref) {
18
- var inProps = _ref.props,
19
- inputRef = _ref.inputRef;
17
+ export var useSingleInputDateRangeField = function useSingleInputDateRangeField(inProps) {
20
18
  var props = useDefaultizedDateRangeFieldProps(inProps);
21
19
  var _splitFieldInternalAn = splitFieldInternalAndForwardedProps(props, 'date'),
22
20
  forwardedProps = _splitFieldInternalAn.forwardedProps,
23
21
  internalProps = _splitFieldInternalAn.internalProps;
24
22
  return useField({
25
- inputRef: inputRef,
26
23
  forwardedProps: forwardedProps,
27
24
  internalProps: internalProps,
28
25
  valueManager: rangeValueManager,