@mui/x-date-pickers-pro 8.0.0-alpha.12 → 8.0.0-alpha.14

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 (159) hide show
  1. package/CHANGELOG.md +430 -0
  2. package/DateRangePicker/DateRangePicker.types.d.ts +2 -2
  3. package/DateTimeRangePicker/DateTimeRangePicker.types.d.ts +2 -2
  4. package/DateTimeRangePicker/shared.d.ts +2 -2
  5. package/DesktopDateRangePicker/DesktopDateRangePicker.js +2 -2
  6. package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +2 -2
  7. package/MobileDateRangePicker/MobileDateRangePicker.js +2 -2
  8. package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +2 -2
  9. package/SingleInputDateRangeField/useSingleInputDateRangeField.d.ts +1 -1
  10. package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.d.ts +1 -1
  11. package/SingleInputTimeRangeField/useSingleInputTimeRangeField.d.ts +1 -1
  12. package/dateRangeViewRenderers/dateRangeViewRenderers.d.ts +6 -4
  13. package/dateRangeViewRenderers/dateRangeViewRenderers.js +13 -8
  14. package/esm/DateRangePicker/DateRangePicker.types.d.ts +2 -2
  15. package/esm/DateTimeRangePicker/DateTimeRangePicker.types.d.ts +2 -2
  16. package/esm/DateTimeRangePicker/shared.d.ts +2 -2
  17. package/esm/DesktopDateRangePicker/DesktopDateRangePicker.js +2 -2
  18. package/esm/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +2 -2
  19. package/esm/MobileDateRangePicker/MobileDateRangePicker.js +2 -2
  20. package/esm/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +2 -2
  21. package/esm/SingleInputDateRangeField/useSingleInputDateRangeField.d.ts +1 -1
  22. package/esm/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.d.ts +1 -1
  23. package/esm/SingleInputTimeRangeField/useSingleInputTimeRangeField.d.ts +1 -1
  24. package/esm/dateRangeViewRenderers/dateRangeViewRenderers.d.ts +6 -4
  25. package/esm/dateRangeViewRenderers/dateRangeViewRenderers.js +13 -8
  26. package/esm/hooks/index.d.ts +2 -1
  27. package/esm/hooks/useMultiInputRangeField/index.d.ts +2 -1
  28. package/esm/hooks/useMultiInputRangeField/useMultiInputRangeField.d.ts +37 -18
  29. package/esm/hooks/useMultiInputRangeField/useMultiInputRangeField.js +41 -50
  30. package/esm/hooks/useMultiInputRangeField/useMultiInputRangeFieldRootProps.d.ts +11 -0
  31. package/esm/hooks/useMultiInputRangeField/useMultiInputRangeFieldRootProps.js +25 -0
  32. package/esm/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.d.ts +4 -1
  33. package/esm/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js +3 -2
  34. package/esm/hooks/useMultiInputRangeField/useTextFieldProps.d.ts +30 -0
  35. package/esm/hooks/useMultiInputRangeField/useTextFieldProps.js +141 -0
  36. package/esm/index.js +1 -1
  37. package/esm/internals/hooks/models/index.d.ts +1 -1
  38. package/esm/internals/hooks/models/useRangePicker.d.ts +4 -11
  39. package/esm/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +8 -75
  40. package/esm/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.types.d.ts +17 -5
  41. package/esm/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +17 -47
  42. package/esm/internals/hooks/useMobileRangePicker/useMobileRangePicker.types.d.ts +18 -5
  43. package/esm/internals/hooks/useRangePosition.d.ts +1 -4
  44. package/esm/internals/hooks/useRangePosition.js +1 -18
  45. package/esm/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +3 -3
  46. package/esm/internals/hooks/useStaticRangePicker/useStaticRangePicker.types.d.ts +2 -2
  47. package/esm/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +26 -32
  48. package/esm/internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.d.ts +1 -1
  49. package/esm/internals/utils/createMultiInputRangeField/useTextFieldProps.d.ts +12 -0
  50. package/esm/internals/utils/createMultiInputRangeField/useTextFieldProps.js +36 -0
  51. package/esm/internals/utils/date-fields-utils.d.ts +4 -1
  52. package/esm/internals/utils/date-fields-utils.js +5 -1
  53. package/esm/internals/utils/releaseInfo.js +1 -1
  54. package/esm/internals/utils/valueManagers.js +31 -30
  55. package/esm/managers/useDateRangeManager.d.ts +2 -4
  56. package/esm/managers/useDateRangeManager.js +8 -1
  57. package/esm/managers/useDateTimeRangeManager.d.ts +2 -4
  58. package/esm/managers/useDateTimeRangeManager.js +8 -1
  59. package/esm/managers/useTimeRangeManager.d.ts +2 -4
  60. package/esm/managers/useTimeRangeManager.js +10 -1
  61. package/esm/models/fields.d.ts +5 -18
  62. package/hooks/index.d.ts +2 -1
  63. package/hooks/useMultiInputRangeField/index.d.ts +2 -1
  64. package/hooks/useMultiInputRangeField/useMultiInputRangeField.d.ts +37 -18
  65. package/hooks/useMultiInputRangeField/useMultiInputRangeField.js +40 -51
  66. package/hooks/useMultiInputRangeField/useMultiInputRangeFieldRootProps.d.ts +11 -0
  67. package/hooks/useMultiInputRangeField/useMultiInputRangeFieldRootProps.js +31 -0
  68. package/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.d.ts +4 -1
  69. package/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js +3 -1
  70. package/hooks/useMultiInputRangeField/useTextFieldProps.d.ts +30 -0
  71. package/hooks/useMultiInputRangeField/useTextFieldProps.js +149 -0
  72. package/index.js +1 -1
  73. package/internals/hooks/models/index.d.ts +1 -1
  74. package/internals/hooks/models/useRangePicker.d.ts +4 -11
  75. package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +7 -74
  76. package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.types.d.ts +17 -5
  77. package/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +17 -47
  78. package/internals/hooks/useMobileRangePicker/useMobileRangePicker.types.d.ts +18 -5
  79. package/internals/hooks/useRangePosition.d.ts +1 -4
  80. package/internals/hooks/useRangePosition.js +1 -18
  81. package/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +3 -3
  82. package/internals/hooks/useStaticRangePicker/useStaticRangePicker.types.d.ts +2 -2
  83. package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +25 -31
  84. package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.d.ts +1 -1
  85. package/internals/utils/createMultiInputRangeField/useTextFieldProps.d.ts +12 -0
  86. package/internals/utils/createMultiInputRangeField/useTextFieldProps.js +44 -0
  87. package/internals/utils/date-fields-utils.d.ts +4 -1
  88. package/internals/utils/date-fields-utils.js +6 -1
  89. package/internals/utils/releaseInfo.js +1 -1
  90. package/internals/utils/valueManagers.js +31 -30
  91. package/managers/useDateRangeManager.d.ts +2 -4
  92. package/managers/useDateRangeManager.js +8 -1
  93. package/managers/useDateTimeRangeManager.d.ts +2 -4
  94. package/managers/useDateTimeRangeManager.js +8 -1
  95. package/managers/useTimeRangeManager.d.ts +2 -4
  96. package/managers/useTimeRangeManager.js +10 -1
  97. package/models/fields.d.ts +5 -18
  98. package/modern/DateRangePicker/DateRangePicker.types.d.ts +2 -2
  99. package/modern/DateTimeRangePicker/DateTimeRangePicker.types.d.ts +2 -2
  100. package/modern/DateTimeRangePicker/shared.d.ts +2 -2
  101. package/modern/DesktopDateRangePicker/DesktopDateRangePicker.js +2 -2
  102. package/modern/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +2 -2
  103. package/modern/MobileDateRangePicker/MobileDateRangePicker.js +2 -2
  104. package/modern/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +2 -2
  105. package/modern/SingleInputDateRangeField/useSingleInputDateRangeField.d.ts +1 -1
  106. package/modern/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.d.ts +1 -1
  107. package/modern/SingleInputTimeRangeField/useSingleInputTimeRangeField.d.ts +1 -1
  108. package/modern/dateRangeViewRenderers/dateRangeViewRenderers.d.ts +6 -4
  109. package/modern/dateRangeViewRenderers/dateRangeViewRenderers.js +13 -8
  110. package/modern/hooks/index.d.ts +2 -1
  111. package/modern/hooks/useMultiInputRangeField/index.d.ts +2 -1
  112. package/modern/hooks/useMultiInputRangeField/useMultiInputRangeField.d.ts +37 -18
  113. package/modern/hooks/useMultiInputRangeField/useMultiInputRangeField.js +41 -50
  114. package/modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldRootProps.d.ts +11 -0
  115. package/modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldRootProps.js +25 -0
  116. package/modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.d.ts +4 -1
  117. package/modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js +3 -2
  118. package/modern/hooks/useMultiInputRangeField/useTextFieldProps.d.ts +30 -0
  119. package/modern/hooks/useMultiInputRangeField/useTextFieldProps.js +141 -0
  120. package/modern/index.js +1 -1
  121. package/modern/internals/hooks/models/index.d.ts +1 -1
  122. package/modern/internals/hooks/models/useRangePicker.d.ts +4 -11
  123. package/modern/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +8 -75
  124. package/modern/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.types.d.ts +17 -5
  125. package/modern/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +17 -47
  126. package/modern/internals/hooks/useMobileRangePicker/useMobileRangePicker.types.d.ts +18 -5
  127. package/modern/internals/hooks/useRangePosition.d.ts +1 -4
  128. package/modern/internals/hooks/useRangePosition.js +1 -18
  129. package/modern/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +3 -3
  130. package/modern/internals/hooks/useStaticRangePicker/useStaticRangePicker.types.d.ts +2 -2
  131. package/modern/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +26 -32
  132. package/modern/internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.d.ts +1 -1
  133. package/modern/internals/utils/createMultiInputRangeField/useTextFieldProps.d.ts +12 -0
  134. package/modern/internals/utils/createMultiInputRangeField/useTextFieldProps.js +36 -0
  135. package/modern/internals/utils/date-fields-utils.d.ts +4 -1
  136. package/modern/internals/utils/date-fields-utils.js +5 -1
  137. package/modern/internals/utils/releaseInfo.js +1 -1
  138. package/modern/internals/utils/valueManagers.js +31 -30
  139. package/modern/managers/useDateRangeManager.d.ts +2 -4
  140. package/modern/managers/useDateRangeManager.js +8 -1
  141. package/modern/managers/useDateTimeRangeManager.d.ts +2 -4
  142. package/modern/managers/useDateTimeRangeManager.js +8 -1
  143. package/modern/managers/useTimeRangeManager.d.ts +2 -4
  144. package/modern/managers/useTimeRangeManager.js +10 -1
  145. package/modern/models/fields.d.ts +5 -18
  146. package/package.json +4 -4
  147. package/tsconfig.build.tsbuildinfo +1 -1
  148. package/esm/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.d.ts +0 -17
  149. package/esm/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +0 -59
  150. package/esm/internals/hooks/useEnrichedRangePickerField.d.ts +0 -70
  151. package/esm/internals/hooks/useEnrichedRangePickerField.js +0 -236
  152. package/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.d.ts +0 -17
  153. package/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +0 -66
  154. package/internals/hooks/useEnrichedRangePickerField.d.ts +0 -70
  155. package/internals/hooks/useEnrichedRangePickerField.js +0 -245
  156. package/modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.d.ts +0 -17
  157. package/modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +0 -59
  158. package/modern/internals/hooks/useEnrichedRangePickerField.d.ts +0 -70
  159. package/modern/internals/hooks/useEnrichedRangePickerField.js +0 -236
@@ -1,17 +1,15 @@
1
1
  "use strict";
2
2
  'use client';
3
3
 
4
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.useMultiInputRangeField = useMultiInputRangeField;
9
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
- var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallback"));
11
8
  var _internals = require("@mui/x-date-pickers/internals");
12
9
  var _validation = require("@mui/x-date-pickers/validation");
13
- var _useMultiInputRangeFieldTextFieldProps = require("./useMultiInputRangeFieldTextFieldProps");
10
+ var _useTextFieldProps = require("./useTextFieldProps");
14
11
  var _useMultiInputRangeFieldSelectedSections = require("./useMultiInputRangeFieldSelectedSections");
12
+ var _useMultiInputRangeFieldRootProps = require("./useMultiInputRangeFieldRootProps");
15
13
  /**
16
14
  * Basic example:
17
15
  *
@@ -24,36 +22,38 @@ var _useMultiInputRangeFieldSelectedSections = require("./useMultiInputRangeFiel
24
22
  * function MultiInputField(props) {
25
23
  * const manager = useDateRangeManager();
26
24
  * const { internalProps, forwardedProps } = useSplitFieldProps(props, 'date');
27
- * const { startDate, endDate } = useMultiInputRangeField({
25
+ * const response = useMultiInputRangeField({
28
26
  * manager,
29
27
  * internalProps,
30
- * startForwardedProps: forwardedProps,
31
- * endForwardedProps: forwardedProps,
28
+ * startTextFieldProps: {},
29
+ * endTextFieldProps: {},
30
+ * rootProps: forwardedProps,
32
31
  * });
33
32
  *
34
33
  * return (
35
- * <Box {...forwardedProps}>
36
- * <PickersTextField {...startDate} />
34
+ * <Box {...response.root}>
35
+ * <PickersTextField {...response.startTextField} />
37
36
  * <span>{' – '}</span>
38
- * <PickersTextField {...endDate} />
37
+ * <PickersTextField {...response.endTextField} />
39
38
  * </Box>
40
39
  * );
41
40
  * }
42
41
  * ```
43
42
  *
44
- * @param {UseMultiInputRangeFieldParameters<TManager, TForwardedProps>} parameters The parameters of the hook.
43
+ * @param {UseMultiInputRangeFieldParameters<TManager, TTextFieldProps>} parameters The parameters of the hook.
45
44
  * @param {TManager} parameters.manager The manager of the field.
46
45
  * @param {PickerManagerFieldInternalProps<TManager>} parameters.internalProps The internal props of the field.
47
- * @param {TForwardedProps} parameters.startForwardedProps The forwarded props of the start field.
48
- * @param {TForwardedProps} parameters.endForwardedProps The forwarded props of the end field.
49
- * @returns {UseMultiInputRangeFieldReturnValue<TManager, TForwardedProps>} The props to pass to the start and the end components.
46
+ * @param {TTextFieldProps} parameters.startForwardedProps The forwarded props of the start field.
47
+ * @param {TTextFieldProps} parameters.endForwardedProps The forwarded props of the end field.
48
+ * @returns {UseMultiInputRangeFieldReturnValue<TManager, TTextFieldProps>} The props to pass to the start and the end components.
50
49
  */
51
50
  function useMultiInputRangeField(parameters) {
52
51
  const {
53
52
  manager,
54
53
  internalProps,
55
- startForwardedProps,
56
- endForwardedProps
54
+ rootProps,
55
+ startTextFieldProps,
56
+ endTextFieldProps
57
57
  } = parameters;
58
58
  const internalPropsWithDefaults = (0, _internals.useFieldInternalPropsWithDefaults)({
59
59
  manager,
@@ -90,34 +90,20 @@ function useMultiInputRangeField(parameters) {
90
90
  onChange,
91
91
  valueManager: manager.internal_valueManager
92
92
  });
93
- const {
94
- validationError,
95
- getValidationErrorForNewValue
96
- } = (0, _validation.useValidation)({
93
+ const validation = (0, _validation.useValidation)({
97
94
  props: internalPropsWithDefaults,
98
95
  value,
99
96
  timezone,
100
97
  validator: manager.validator,
101
98
  onError: internalPropsWithDefaults.onError
102
99
  });
103
- const buildChangeHandler = index => {
104
- return (newSingleValue, rawContext) => {
105
- const newRange = index === 0 ? [newSingleValue, value[1]] : [value[0], newSingleValue];
106
- const context = (0, _extends2.default)({}, rawContext, {
107
- validationError: getValidationErrorForNewValue(newRange)
108
- });
109
- handleValueChange(newRange, context);
110
- };
111
- };
112
- const handleStartDateChange = (0, _useEventCallback.default)(buildChangeHandler(0));
113
- const handleEndDateChange = (0, _useEventCallback.default)(buildChangeHandler(1));
114
100
  const selectedSectionsResponse = (0, _useMultiInputRangeFieldSelectedSections.useMultiInputRangeFieldSelectedSections)({
115
101
  selectedSections,
116
102
  onSelectedSectionsChange,
117
103
  unstableStartFieldRef,
118
104
  unstableEndFieldRef
119
105
  });
120
- const sharedProps = {
106
+ const sharedInternalProps = {
121
107
  disabled,
122
108
  readOnly,
123
109
  timezone,
@@ -126,30 +112,33 @@ function useMultiInputRangeField(parameters) {
126
112
  shouldRespectLeadingZeros,
127
113
  enableAccessibleFieldDOMStructure
128
114
  };
129
- const startDateProps = (0, _useMultiInputRangeFieldTextFieldProps.useMultiInputRangeFieldTextFieldProps)({
115
+ const rootResponse = (0, _useMultiInputRangeFieldRootProps.useMultiInputRangeFieldRootProps)(rootProps);
116
+ const startTextFieldResponse = (0, _useTextFieldProps.useTextFieldProps)({
130
117
  valueType: manager.valueType,
131
- fieldProps: (0, _extends2.default)({
132
- error: !!validationError[0]
133
- }, startForwardedProps, selectedSectionsResponse.start, sharedProps, {
134
- value: valueProp === undefined ? undefined : valueProp[0],
135
- defaultValue: defaultValue === undefined ? undefined : defaultValue[0],
136
- onChange: handleStartDateChange,
137
- autoFocus // Do not add on end field.
138
- })
118
+ position: 'start',
119
+ value,
120
+ onChange: handleValueChange,
121
+ autoFocus,
122
+ validation,
123
+ forwardedProps: startTextFieldProps,
124
+ selectedSectionProps: selectedSectionsResponse.start,
125
+ sharedInternalProps
139
126
  });
140
- const endDateProps = (0, _useMultiInputRangeFieldTextFieldProps.useMultiInputRangeFieldTextFieldProps)({
127
+ const endTextFieldResponse = (0, _useTextFieldProps.useTextFieldProps)({
141
128
  valueType: manager.valueType,
142
- fieldProps: (0, _extends2.default)({
143
- error: !!validationError[1]
144
- }, endForwardedProps, selectedSectionsResponse.end, sharedProps, {
145
- value: valueProp === undefined ? undefined : valueProp[1],
146
- defaultValue: defaultValue === undefined ? undefined : defaultValue[1],
147
- onChange: handleEndDateChange
148
- })
129
+ position: 'end',
130
+ value,
131
+ onChange: handleValueChange,
132
+ autoFocus,
133
+ validation,
134
+ forwardedProps: endTextFieldProps,
135
+ selectedSectionProps: selectedSectionsResponse.end,
136
+ sharedInternalProps
149
137
  });
150
138
  return {
151
- startDate: startDateProps,
152
- endDate: endDateProps,
139
+ root: rootResponse,
140
+ startTextField: startTextFieldResponse,
141
+ endTextField: endTextFieldResponse,
153
142
  enableAccessibleFieldDOMStructure
154
143
  };
155
144
  }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @ignore - internal hook.
3
+ */
4
+ export declare function useMultiInputRangeFieldRootProps<TForwardedProps extends {
5
+ [key: string]: any;
6
+ }>(forwardedProps: TForwardedProps): UseMultiInputRangeFieldRootPropsReturnValue<TForwardedProps>;
7
+ export type UseMultiInputRangeFieldRootPropsReturnValue<TForwardedProps extends {
8
+ [key: string]: any;
9
+ }> = Omit<TForwardedProps, 'onBlur'> & {
10
+ onBlur: () => void;
11
+ };
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useMultiInputRangeFieldRootProps = useMultiInputRangeFieldRootProps;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallback"));
10
+ var _internals = require("@mui/x-date-pickers/internals");
11
+ /**
12
+ * @ignore - internal hook.
13
+ */
14
+ function useMultiInputRangeFieldRootProps(forwardedProps) {
15
+ const pickerContext = (0, _internals.useNullablePickerContext)();
16
+ const privatePickerContext = (0, _internals.usePickerPrivateContext)();
17
+ const handleBlur = (0, _useEventCallback.default)(() => {
18
+ if (!pickerContext || privatePickerContext.viewContainerRole !== 'tooltip') {
19
+ return;
20
+ }
21
+ (0, _internals.executeInTheNextEventLoopTick)(() => {
22
+ if (privatePickerContext.rootRefObject.current?.contains((0, _internals.getActiveElement)(document)) || pickerContext.popupRef.current?.contains((0, _internals.getActiveElement)(document))) {
23
+ return;
24
+ }
25
+ privatePickerContext.dismissViews();
26
+ });
27
+ });
28
+ return (0, _extends2.default)({}, forwardedProps, {
29
+ onBlur: handleBlur
30
+ });
31
+ }
@@ -3,7 +3,7 @@ import { PickerRangeValue, PickerValue, UseFieldInternalProps } from '@mui/x-dat
3
3
  import { FieldRef, FieldSelectedSections } from '@mui/x-date-pickers/models';
4
4
  import { MultiInputFieldRefs } from "../../models/index.js";
5
5
  interface UseMultiInputRangeFieldSelectedSectionsParameters extends Pick<UseFieldInternalProps<PickerRangeValue, any, any>, 'selectedSections' | 'onSelectedSectionsChange'>, MultiInputFieldRefs {}
6
- interface UseMultiInputFieldSelectedSectionsResponseItem {
6
+ export interface UseMultiInputFieldSelectedSectionsResponseItem {
7
7
  unstableFieldRef?: React.Ref<FieldRef<PickerValue>>;
8
8
  selectedSections: FieldSelectedSections;
9
9
  onSelectedSectionsChange: (newSelectedSections: FieldSelectedSections) => void;
@@ -12,5 +12,8 @@ interface UseMultiInputFieldSelectedSectionsResponse {
12
12
  start: UseMultiInputFieldSelectedSectionsResponseItem;
13
13
  end: UseMultiInputFieldSelectedSectionsResponseItem;
14
14
  }
15
+ /**
16
+ * @ignore - internal hook.
17
+ */
15
18
  export declare const useMultiInputRangeFieldSelectedSections: (parameters: UseMultiInputRangeFieldSelectedSectionsParameters) => UseMultiInputFieldSelectedSectionsResponse;
16
19
  export {};
@@ -1,5 +1,4 @@
1
1
  "use strict";
2
- 'use client';
3
2
 
4
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
4
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
@@ -10,6 +9,9 @@ exports.useMultiInputRangeFieldSelectedSections = void 0;
10
9
  var React = _interopRequireWildcard(require("react"));
11
10
  var _useForkRef = _interopRequireDefault(require("@mui/utils/useForkRef"));
12
11
  var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallback"));
12
+ /**
13
+ * @ignore - internal hook.
14
+ */
13
15
  const useMultiInputRangeFieldSelectedSections = parameters => {
14
16
  const unstableEndFieldRef = React.useRef(null);
15
17
  const handleUnstableEndFieldRef = (0, _useForkRef.default)(parameters.unstableEndFieldRef, unstableEndFieldRef);
@@ -0,0 +1,30 @@
1
+ import * as React from 'react';
2
+ import { UseValidationReturnValue } from '@mui/x-date-pickers/validation';
3
+ import { PickerValueType } from '@mui/x-date-pickers/models';
4
+ import { FieldChangeHandler, PickerManagerEnableAccessibleFieldDOMStructure, PickerManagerError, PickerRangeValue, PickerValue, RangePosition, UseFieldInternalProps } from '@mui/x-date-pickers/internals';
5
+ import { PickerAnyRangeManager } from "../../internals/models/managers.js";
6
+ import { UseMultiInputFieldSelectedSectionsResponseItem } from "./useMultiInputRangeFieldSelectedSections.js";
7
+ import type { UseMultiInputRangeFieldTextFieldProps } from './useMultiInputRangeField';
8
+ /**
9
+ * @ignore - internal hook.
10
+ */
11
+ export declare function useTextFieldProps<TManager extends PickerAnyRangeManager, TForwardedProps extends UseTextFieldBaseForwardedProps>(parameters: UseTextFieldPropsParameters<TManager, TForwardedProps>): UseMultiInputRangeFieldTextFieldProps<PickerManagerEnableAccessibleFieldDOMStructure<TManager>, TForwardedProps>;
12
+ interface UseTextFieldPropsParameters<TManager extends PickerAnyRangeManager, TForwardedProps extends UseTextFieldBaseForwardedProps> {
13
+ valueType: PickerValueType;
14
+ value: PickerRangeValue;
15
+ onChange: FieldChangeHandler<PickerRangeValue, PickerManagerError<TManager>>;
16
+ autoFocus: boolean | undefined;
17
+ forwardedProps: TForwardedProps;
18
+ sharedInternalProps: UseTextFieldSharedInternalProps<TManager>;
19
+ selectedSectionProps: UseMultiInputFieldSelectedSectionsResponseItem;
20
+ position: RangePosition;
21
+ validation: UseValidationReturnValue<PickerRangeValue, PickerManagerError<TManager>>;
22
+ }
23
+ export interface UseTextFieldBaseForwardedProps {
24
+ onKeyDown?: React.KeyboardEventHandler;
25
+ onClick?: React.MouseEventHandler;
26
+ onFocus?: React.FocusEventHandler;
27
+ [key: string]: any;
28
+ }
29
+ interface UseTextFieldSharedInternalProps<TManager extends PickerAnyRangeManager> extends Pick<UseFieldInternalProps<PickerValue, PickerManagerEnableAccessibleFieldDOMStructure<TManager>, PickerManagerError<TManager>>, 'enableAccessibleFieldDOMStructure' | 'disabled' | 'readOnly' | 'timezone' | 'format' | 'formatDensity' | 'shouldRespectLeadingZeros'> {}
30
+ export {};
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.useTextFieldProps = useTextFieldProps;
9
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+ var React = _interopRequireWildcard(require("react"));
12
+ var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallback"));
13
+ var _managers = require("@mui/x-date-pickers/managers");
14
+ var _hooks = require("@mui/x-date-pickers/hooks");
15
+ var _internals = require("@mui/x-date-pickers/internals");
16
+ var _useNullablePickerRangePositionContext = require("../../internals/hooks/useNullablePickerRangePositionContext");
17
+ const _excluded = ["clearable", "onClear", "openPickerAriaLabel"];
18
+ /**
19
+ * @ignore - internal hook.
20
+ */
21
+ function useTextFieldProps(parameters) {
22
+ const pickerContext = (0, _internals.useNullablePickerContext)();
23
+ const fieldPrivateContext = (0, _internals.useNullableFieldPrivateContext)();
24
+ const pickerPrivateContext = (0, _internals.usePickerPrivateContext)();
25
+ const rangePositionContext = (0, _useNullablePickerRangePositionContext.useNullablePickerRangePositionContext)();
26
+ const rangePosition = rangePositionContext?.rangePosition ?? 'start';
27
+ const setRangePosition = rangePositionContext?.setRangePosition;
28
+ const previousRangePosition = React.useRef(rangePosition);
29
+ const {
30
+ forwardedProps,
31
+ sharedInternalProps,
32
+ selectedSectionProps,
33
+ valueType,
34
+ position,
35
+ value,
36
+ onChange,
37
+ autoFocus,
38
+ validation
39
+ } = parameters;
40
+ let useManager;
41
+ switch (valueType) {
42
+ case 'date':
43
+ {
44
+ useManager = _managers.useDateManager;
45
+ break;
46
+ }
47
+ case 'time':
48
+ {
49
+ useManager = _managers.useTimeManager;
50
+ break;
51
+ }
52
+ case 'date-time':
53
+ {
54
+ useManager = _managers.useDateTimeManager;
55
+ break;
56
+ }
57
+ default:
58
+ {
59
+ throw new Error(`Unknown valueType: ${valueType}`);
60
+ }
61
+ }
62
+ const manager = useManager({
63
+ enableAccessibleFieldDOMStructure: sharedInternalProps.enableAccessibleFieldDOMStructure
64
+ });
65
+ const openPickerIfPossible = event => {
66
+ if (!pickerContext) {
67
+ return;
68
+ }
69
+ setRangePosition?.(position);
70
+ if (pickerContext.triggerStatus === 'enabled') {
71
+ event.preventDefault();
72
+ pickerContext.setOpen(true);
73
+ }
74
+ };
75
+ const handleKeyDown = (0, _useEventCallback.default)(event => {
76
+ if (event.key === 'Enter' || event.key === ' ') {
77
+ openPickerIfPossible(event);
78
+ }
79
+ });
80
+
81
+ // Registering `onClick` listener on the root element as well to correctly handle cases where user is clicking on `label`
82
+ // which has `pointer-events: none` and due to DOM structure the `input` does not catch the click event
83
+ const handleClick = (0, _useEventCallback.default)(event => {
84
+ openPickerIfPossible(event);
85
+ });
86
+ const handleFocus = (0, _useEventCallback.default)(event => {
87
+ forwardedProps.onFocus?.(event);
88
+ if (pickerContext?.open) {
89
+ setRangePosition?.(position);
90
+ if (previousRangePosition.current !== position && pickerContext.initialView) {
91
+ pickerContext.setView?.(pickerContext.initialView);
92
+ }
93
+ }
94
+ });
95
+ const handleChange = (0, _useEventCallback.default)((newSingleValue, rawContext) => {
96
+ const newRange = position === 'start' ? [newSingleValue, value[1]] : [value[0], newSingleValue];
97
+ const context = (0, _extends2.default)({}, rawContext, {
98
+ validationError: validation.getValidationErrorForNewValue(newRange)
99
+ });
100
+ onChange(newRange, context);
101
+ });
102
+ const allProps = (0, _extends2.default)({
103
+ value: position === 'start' ? value[0] : value[1],
104
+ error: position === 'start' ? !!validation.validationError[0] : !!validation.validationError[1],
105
+ id: `${pickerPrivateContext.labelId}-${position}`,
106
+ autoFocus: position === 'start' ? autoFocus : undefined
107
+ }, forwardedProps, sharedInternalProps, selectedSectionProps, {
108
+ onClick: handleClick,
109
+ onFocus: handleFocus,
110
+ onKeyDown: handleKeyDown,
111
+ onChange: handleChange
112
+ });
113
+ const splittedProps = (0, _hooks.useSplitFieldProps)(allProps, valueType);
114
+ const internalPropsWithDefaults = (0, _internals.useFieldInternalPropsWithDefaults)({
115
+ manager,
116
+ internalProps: splittedProps.internalProps,
117
+ skipContextFieldRefAssignment: rangePosition !== position
118
+ });
119
+ const _ref = (0, _internals.useField)({
120
+ forwardedProps: splittedProps.forwardedProps,
121
+ internalProps: internalPropsWithDefaults,
122
+ valueManager: manager.internal_valueManager,
123
+ fieldValueManager: manager.internal_fieldValueManager,
124
+ validator: manager.validator,
125
+ valueType: manager.valueType,
126
+ // TODO v8: Add a real aria label before moving the opening logic to the field on range pickers.
127
+ getOpenPickerButtonAriaLabel: () => ''
128
+ }),
129
+ fieldResponse = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
130
+ React.useEffect(() => {
131
+ if (!pickerContext?.open || pickerContext?.variant === 'mobile') {
132
+ return;
133
+ }
134
+ fieldPrivateContext?.fieldRef.current?.focusField();
135
+ if (!fieldPrivateContext?.fieldRef.current || pickerContext.view === pickerContext.initialView) {
136
+ // could happen when the user is switching between the inputs
137
+ previousRangePosition.current = rangePosition;
138
+ return;
139
+ }
140
+
141
+ // bring back focus to the field
142
+ // currentView is present on DateTimeRangePicker
143
+ fieldPrivateContext?.fieldRef.current.setSelectedSections(
144
+ // use the current view or `0` when the range position has just been swapped
145
+ previousRangePosition.current === rangePosition ? pickerContext.view : 0);
146
+ previousRangePosition.current = rangePosition;
147
+ }, [rangePosition, pickerContext?.open, pickerContext?.variant, pickerContext?.initialView, pickerContext?.view, fieldPrivateContext?.fieldRef]);
148
+ return fieldResponse;
149
+ }
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-date-pickers-pro v8.0.0-alpha.12
2
+ * @mui/x-date-pickers-pro v8.0.0-alpha.14
3
3
  *
4
4
  * @license MUI X Commercial
5
5
  * This source code is licensed under the commercial license found in the
@@ -1 +1 @@
1
- export type { UseRangePickerSlots, UseRangePickerSlotProps, RangeOnlyPickerProps, UseRangePickerProps, UseRangePickerParams } from './useRangePicker';
1
+ export type { RangeOnlyPickerProps, UseRangePickerProps, UseRangePickerParams } from './useRangePicker';
@@ -1,15 +1,8 @@
1
- import { UsePickerParams, BasePickerProps, ExportedBaseToolbarProps, UsePickerViewsProps, UsePickerValueNonStaticProps, UsePickerProviderNonStaticProps, DateOrTimeViewWithMeridiem, ExportedBaseTabsProps, PickerRangeValue } from '@mui/x-date-pickers/internals';
2
- import { ExportedPickersLayoutSlots, ExportedPickersLayoutSlotProps } from '@mui/x-date-pickers/PickersLayout';
1
+ import { UsePickerParameters, BasePickerProps, UsePickerProps, UsePickerNonStaticProps, DateOrTimeViewWithMeridiem, PickerRangeValue } from '@mui/x-date-pickers/internals';
3
2
  import { BaseRangeNonStaticPickerProps } from "../../models/index.js";
4
3
  import { UseRangePositionProps } from "../useRangePosition.js";
5
- import { RangePickerFieldSlots, RangePickerFieldSlotProps } from "../useEnrichedRangePickerField.js";
6
- export interface UseRangePickerSlots extends ExportedPickersLayoutSlots<PickerRangeValue>, RangePickerFieldSlots {}
7
- export interface UseRangePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends ExportedPickersLayoutSlotProps<PickerRangeValue>, RangePickerFieldSlotProps<TEnableAccessibleFieldDOMStructure> {
8
- tabs?: ExportedBaseTabsProps;
9
- toolbar?: ExportedBaseToolbarProps;
10
- }
11
- export interface RangeOnlyPickerProps extends UsePickerValueNonStaticProps, UsePickerProviderNonStaticProps, BaseRangeNonStaticPickerProps, UseRangePositionProps {}
12
- export interface UseRangePickerProps<TView extends DateOrTimeViewWithMeridiem, TError, TExternalProps extends UsePickerViewsProps<any, TView, any>> extends RangeOnlyPickerProps, BasePickerProps<PickerRangeValue, TView, TError, TExternalProps> {}
13
- export interface UseRangePickerParams<TView extends DateOrTimeViewWithMeridiem, TExternalProps extends UseRangePickerProps<TView, any, TExternalProps>> extends Pick<UsePickerParams<PickerRangeValue, TView, TExternalProps>, 'valueManager' | 'valueType' | 'validator' | 'rendererInterceptor' | 'ref'> {
4
+ export interface RangeOnlyPickerProps extends UsePickerNonStaticProps, BaseRangeNonStaticPickerProps, UseRangePositionProps {}
5
+ export interface UseRangePickerProps<TView extends DateOrTimeViewWithMeridiem, TError, TExternalProps extends UsePickerProps<PickerRangeValue, TView, TError, any>> extends RangeOnlyPickerProps, BasePickerProps<PickerRangeValue, TView, TError, TExternalProps> {}
6
+ export interface UseRangePickerParams<TView extends DateOrTimeViewWithMeridiem, TExternalProps extends UseRangePickerProps<TView, any, TExternalProps>> extends Pick<UsePickerParameters<PickerRangeValue, TView, TExternalProps>, 'valueManager' | 'valueType' | 'validator' | 'rendererInterceptor' | 'ref'> {
14
7
  props: TExternalProps;
15
8
  }
@@ -13,10 +13,10 @@ var _useSlotProps2 = _interopRequireDefault(require("@mui/utils/useSlotProps"));
13
13
  var _xLicense = require("@mui/x-license");
14
14
  var _PickersLayout = require("@mui/x-date-pickers/PickersLayout");
15
15
  var _internals = require("@mui/x-date-pickers/internals");
16
- var _useEnrichedRangePickerField = require("../useEnrichedRangePickerField");
17
16
  var _releaseInfo = require("../../utils/releaseInfo");
18
17
  var _useRangePosition = require("../useRangePosition");
19
18
  var _usePickerRangePositionContext = require("../../../hooks/usePickerRangePositionContext");
19
+ var _dateFieldsUtils = require("../../utils/date-fields-utils");
20
20
  var _jsxRuntime = require("react/jsx-runtime");
21
21
  const _excluded = ["props"],
22
22
  _excluded2 = ["ownerState"];
@@ -31,27 +31,11 @@ const useDesktopRangePicker = _ref => {
31
31
  slots,
32
32
  slotProps,
33
33
  inputRef,
34
- readOnly,
35
- autoFocus,
36
- disableOpenPicker,
37
34
  localeText
38
35
  } = props;
39
- const fieldContainerRef = React.useRef(null);
40
- const popperRef = React.useRef(null);
41
- const startFieldRef = React.useRef(null);
42
- const endFieldRef = React.useRef(null);
43
- const singleInputFieldRef = React.useRef(null);
44
- const initialView = React.useRef(props.openTo ?? null);
45
- const fieldType = slots.field.fieldType ?? 'multi-input';
46
- const rangePositionResponse = (0, _useRangePosition.useRangePosition)(props, fieldType === 'single-input' ? singleInputFieldRef : undefined);
47
- let fieldRef;
48
- if (fieldType === 'single-input') {
49
- fieldRef = singleInputFieldRef;
50
- } else if (rangePositionResponse.rangePosition === 'start') {
51
- fieldRef = startFieldRef;
52
- } else {
53
- fieldRef = endFieldRef;
54
- }
36
+ const fieldType = (0, _dateFieldsUtils.getRangeFieldType)(slots.field);
37
+ const viewContainerRole = fieldType === 'single-input' ? 'dialog' : 'tooltip';
38
+ const rangePositionResponse = (0, _useRangePosition.useRangePosition)(props);
55
39
  const {
56
40
  providerProps,
57
41
  renderCurrentView,
@@ -59,77 +43,26 @@ const useDesktopRangePicker = _ref => {
59
43
  } = (0, _internals.usePicker)((0, _extends2.default)({}, pickerParams, {
60
44
  props,
61
45
  variant: 'desktop',
62
- autoFocusView: false,
63
- fieldRef,
46
+ autoFocusView: viewContainerRole === 'dialog',
47
+ viewContainerRole,
64
48
  localeText
65
49
  }));
66
-
67
- // Temporary hack to hide the opening button on the range pickers until we have migrate them to the new opening logic.
68
- providerProps.contextValue.triggerStatus = 'hidden';
69
- React.useEffect(() => {
70
- if (providerProps.contextValue.view) {
71
- initialView.current = providerProps.contextValue.view;
72
- }
73
- // eslint-disable-next-line react-hooks/exhaustive-deps
74
- }, []);
75
- const handleBlur = () => {
76
- (0, _internals.executeInTheNextEventLoopTick)(() => {
77
- if (fieldContainerRef.current?.contains((0, _internals.getActiveElement)(document)) || popperRef.current?.contains((0, _internals.getActiveElement)(document))) {
78
- return;
79
- }
80
-
81
- // This direct access to `providerProps` will go away once the range fields stop having their views in a tooltip.
82
- providerProps.privateContextValue.dismissViews();
83
- });
84
- };
85
50
  const Field = slots.field;
86
51
  const _useSlotProps = (0, _useSlotProps2.default)({
87
52
  elementType: Field,
88
53
  externalSlotProps: slotProps?.field,
89
- additionalProps: {
90
- // Internal props
91
- readOnly,
92
- autoFocus: autoFocus && !props.open,
93
- // Forwarded props
94
- ref: fieldContainerRef
95
- },
96
54
  ownerState
97
55
  }),
98
56
  fieldProps = (0, _objectWithoutPropertiesLoose2.default)(_useSlotProps, _excluded2);
99
- const enrichedFieldResponse = (0, _useEnrichedRangePickerField.useEnrichedRangePickerField)((0, _extends2.default)({
100
- variant: 'desktop',
101
- fieldType,
102
- // These direct access to `providerProps` will go away once the range fields handle the picker opening
103
- contextValue: providerProps.contextValue,
104
- fieldPrivateContextValue: providerProps.fieldPrivateContextValue,
105
- readOnly,
106
- disableOpenPicker,
107
- localeText,
108
- onBlur: handleBlur,
109
- pickerSlotProps: slotProps,
110
- pickerSlots: slots,
111
- fieldProps,
112
- anchorRef: providerProps.contextValue.triggerRef,
113
- startFieldRef,
114
- endFieldRef,
115
- singleInputFieldRef,
116
- currentView: providerProps.contextValue.view !== props.openTo ? providerProps.contextValue.view : undefined,
117
- initialView: initialView.current ?? undefined
118
- }, rangePositionResponse));
119
57
  const Layout = slots?.layout ?? _PickersLayout.PickersLayout;
120
58
  const renderPicker = () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.PickerProvider, (0, _extends2.default)({}, providerProps, {
121
- // This override will go away once the range fields handle the picker opening
122
- fieldPrivateContextValue: (0, _extends2.default)({}, providerProps.fieldPrivateContextValue, enrichedFieldResponse.fieldPrivateContextValue),
123
59
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.PickerFieldUIContextProvider, {
124
60
  slots: slots,
125
61
  slotProps: slotProps,
126
62
  inputRef: inputRef,
127
63
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_usePickerRangePositionContext.PickerRangePositionContext.Provider, {
128
64
  value: rangePositionResponse,
129
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Field, (0, _extends2.default)({}, enrichedFieldResponse.fieldProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.PickerPopper, {
130
- role: "tooltip",
131
- containerRef: popperRef,
132
- onBlur: handleBlur,
65
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Field, (0, _extends2.default)({}, fieldProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.PickerPopper, {
133
66
  slots: slots,
134
67
  slotProps: slotProps,
135
68
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Layout, (0, _extends2.default)({}, slotProps?.layout, {
@@ -1,14 +1,26 @@
1
- import { PickerPopperSlots, PickerPopperSlotProps, UsePickerViewsProps, DateOrTimeViewWithMeridiem } from '@mui/x-date-pickers/internals';
2
- import { RangeOnlyPickerProps, UseRangePickerParams, UseRangePickerProps, UseRangePickerSlotProps, UseRangePickerSlots } from "../models/useRangePicker.js";
3
- export interface UseDesktopRangePickerSlots extends UseRangePickerSlots, PickerPopperSlots {}
4
- export interface UseDesktopRangePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends UseRangePickerSlotProps<TEnableAccessibleFieldDOMStructure>, PickerPopperSlotProps {}
1
+ import { SlotComponentPropsFromProps } from '@mui/x-internals/types';
2
+ import { PickerFieldSlotProps, PickerOwnerState } from '@mui/x-date-pickers/models';
3
+ import { PickerPopperSlots, PickerPopperSlotProps, UsePickerProps, DateOrTimeViewWithMeridiem, PickerRangeValue, PickerFieldUISlotsFromContext, PickerFieldUISlotPropsFromContext } from '@mui/x-date-pickers/internals';
4
+ import { ExportedPickersLayoutSlotProps, ExportedPickersLayoutSlots } from '@mui/x-date-pickers/PickersLayout';
5
+ import { RangeOnlyPickerProps, UseRangePickerParams, UseRangePickerProps } from "../models/useRangePicker.js";
6
+ export interface UseDesktopRangePickerSlots extends PickerPopperSlots, ExportedPickersLayoutSlots<PickerRangeValue>, PickerFieldUISlotsFromContext {
7
+ /**
8
+ * Component used to enter the date with the keyboard.
9
+ */
10
+ field: React.ElementType;
11
+ }
12
+ export interface UseDesktopRangePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends PickerPopperSlotProps, ExportedPickersLayoutSlotProps<PickerRangeValue>, PickerFieldUISlotPropsFromContext {
13
+ field?: SlotComponentPropsFromProps<PickerFieldSlotProps<PickerRangeValue, TEnableAccessibleFieldDOMStructure> & {
14
+ dateSeparator?: string;
15
+ }, {}, PickerOwnerState>;
16
+ }
5
17
  export interface DesktopRangeOnlyPickerProps extends RangeOnlyPickerProps {
6
18
  /**
7
19
  * If `true`, the start `input` element is focused during the first mount.
8
20
  */
9
21
  autoFocus?: boolean;
10
22
  }
11
- export interface UseDesktopRangePickerProps<TView extends DateOrTimeViewWithMeridiem, TEnableAccessibleFieldDOMStructure extends boolean, TError, TExternalProps extends UsePickerViewsProps<any, TView, any>> extends UseRangePickerProps<TView, TError, TExternalProps> {
23
+ export interface UseDesktopRangePickerProps<TView extends DateOrTimeViewWithMeridiem, TEnableAccessibleFieldDOMStructure extends boolean, TError, TExternalProps extends UsePickerProps<PickerRangeValue, TView, TError, any>> extends UseRangePickerProps<TView, TError, TExternalProps> {
12
24
  /**
13
25
  * Overridable component slots.
14
26
  * @default {}