@mui/x-date-pickers-pro 8.0.0-alpha.7 → 8.0.0-alpha.9

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 (199) hide show
  1. package/CHANGELOG.md +551 -3
  2. package/DateRangeCalendar/DateRangeCalendar.js +4 -4
  3. package/DateRangePicker/DateRangePickerToolbar.js +3 -3
  4. package/DateTimeRangePicker/DateTimeRangePickerTabs.js +3 -3
  5. package/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +2 -2
  6. package/DateTimeRangePicker/DateTimeRangePickerToolbar.js +7 -7
  7. package/MultiInputDateRangeField/MultiInputDateRangeField.d.ts +9 -4
  8. package/MultiInputDateRangeField/MultiInputDateRangeField.js +12 -116
  9. package/MultiInputDateRangeField/index.d.ts +5 -3
  10. package/MultiInputDateRangeField/index.js +2 -2
  11. package/MultiInputDateRangeField/multiInputDateRangeFieldClasses.d.ts +6 -0
  12. package/MultiInputDateRangeField/multiInputDateRangeFieldClasses.js +4 -0
  13. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.d.ts +9 -4
  14. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +12 -116
  15. package/MultiInputDateTimeRangeField/index.d.ts +5 -3
  16. package/MultiInputDateTimeRangeField/index.js +2 -2
  17. package/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.d.ts +6 -0
  18. package/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.js +4 -0
  19. package/MultiInputTimeRangeField/MultiInputTimeRangeField.d.ts +9 -4
  20. package/MultiInputTimeRangeField/MultiInputTimeRangeField.js +13 -117
  21. package/MultiInputTimeRangeField/index.d.ts +5 -3
  22. package/MultiInputTimeRangeField/index.js +2 -2
  23. package/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.d.ts +6 -0
  24. package/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.js +4 -0
  25. package/SingleInputDateRangeField/SingleInputDateRangeField.js +20 -30
  26. package/SingleInputDateRangeField/SingleInputDateRangeField.types.d.ts +6 -17
  27. package/SingleInputDateRangeField/useSingleInputDateRangeField.d.ts +1 -1
  28. package/SingleInputDateRangeField/useSingleInputDateRangeField.js +2 -1
  29. package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +20 -30
  30. package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.types.d.ts +6 -18
  31. package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.d.ts +1 -1
  32. package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +2 -1
  33. package/SingleInputTimeRangeField/SingleInputTimeRangeField.js +20 -30
  34. package/SingleInputTimeRangeField/SingleInputTimeRangeField.types.d.ts +6 -18
  35. package/SingleInputTimeRangeField/useSingleInputTimeRangeField.d.ts +1 -1
  36. package/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +2 -1
  37. package/hooks/index.d.ts +1 -0
  38. package/hooks/index.js +2 -1
  39. package/hooks/useMultiInputRangeField/index.d.ts +1 -0
  40. package/hooks/useMultiInputRangeField/index.js +1 -0
  41. package/hooks/useMultiInputRangeField/useMultiInputRangeField.d.ts +53 -0
  42. package/hooks/useMultiInputRangeField/useMultiInputRangeField.js +149 -0
  43. package/{internals/hooks/useMultiInputFieldSelectedSections.d.ts → hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.d.ts} +3 -4
  44. package/{modern/internals/hooks/useMultiInputFieldSelectedSections.js → hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js} +10 -8
  45. package/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.d.ts +17 -0
  46. package/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +59 -0
  47. package/index.js +1 -1
  48. package/internals/hooks/models/index.d.ts +1 -1
  49. package/internals/hooks/models/useRangePicker.d.ts +4 -6
  50. package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +32 -42
  51. package/internals/hooks/{useEnrichedRangePickerFieldProps.d.ts → useEnrichedRangePickerField.d.ts} +15 -6
  52. package/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +39 -52
  53. package/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +23 -32
  54. package/internals/hooks/useRangePosition.d.ts +1 -1
  55. package/internals/hooks/useRangePosition.js +1 -1
  56. package/internals/models/dateTimeRange.d.ts +1 -6
  57. package/internals/models/fields.d.ts +1 -2
  58. package/internals/models/index.d.ts +0 -1
  59. package/internals/models/index.js +0 -1
  60. package/internals/models/managers.d.ts +3 -0
  61. package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.d.ts +3 -0
  62. package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +133 -0
  63. package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.d.ts +72 -0
  64. package/internals/utils/createMultiInputRangeField/index.d.ts +3 -0
  65. package/internals/utils/createMultiInputRangeField/index.js +2 -0
  66. package/internals/utils/releaseInfo.js +1 -1
  67. package/managers/index.d.ts +3 -3
  68. package/managers/useDateRangeManager.d.ts +1 -1
  69. package/managers/useDateRangeManager.js +3 -1
  70. package/managers/useDateTimeRangeManager.d.ts +1 -1
  71. package/managers/useDateTimeRangeManager.js +3 -1
  72. package/managers/useTimeRangeManager.d.ts +1 -1
  73. package/managers/useTimeRangeManager.js +3 -1
  74. package/models/fields.d.ts +1 -2
  75. package/models/index.d.ts +0 -2
  76. package/models/index.js +0 -2
  77. package/modern/DateRangeCalendar/DateRangeCalendar.js +4 -4
  78. package/modern/DateRangePicker/DateRangePickerToolbar.js +3 -3
  79. package/modern/DateTimeRangePicker/DateTimeRangePickerTabs.js +3 -3
  80. package/modern/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +2 -2
  81. package/modern/DateTimeRangePicker/DateTimeRangePickerToolbar.js +7 -7
  82. package/modern/MultiInputDateRangeField/MultiInputDateRangeField.js +12 -116
  83. package/modern/MultiInputDateRangeField/index.js +2 -2
  84. package/modern/MultiInputDateRangeField/multiInputDateRangeFieldClasses.js +4 -0
  85. package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +12 -116
  86. package/modern/MultiInputDateTimeRangeField/index.js +2 -2
  87. package/modern/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.js +4 -0
  88. package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.js +13 -117
  89. package/modern/MultiInputTimeRangeField/index.js +2 -2
  90. package/modern/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.js +4 -0
  91. package/modern/SingleInputDateRangeField/SingleInputDateRangeField.js +20 -30
  92. package/modern/SingleInputDateRangeField/useSingleInputDateRangeField.js +2 -1
  93. package/modern/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +20 -30
  94. package/modern/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +2 -1
  95. package/modern/SingleInputTimeRangeField/SingleInputTimeRangeField.js +20 -30
  96. package/modern/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +2 -1
  97. package/modern/hooks/index.js +2 -1
  98. package/modern/hooks/useMultiInputRangeField/index.js +1 -0
  99. package/modern/hooks/useMultiInputRangeField/useMultiInputRangeField.js +149 -0
  100. package/{internals/hooks/useMultiInputFieldSelectedSections.js → modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js} +10 -8
  101. package/modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +59 -0
  102. package/modern/index.js +1 -1
  103. package/modern/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +32 -42
  104. package/modern/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +39 -52
  105. package/modern/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +23 -32
  106. package/modern/internals/hooks/useRangePosition.js +1 -1
  107. package/modern/internals/models/index.js +0 -1
  108. package/modern/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +133 -0
  109. package/modern/internals/utils/createMultiInputRangeField/index.js +2 -0
  110. package/modern/internals/utils/releaseInfo.js +1 -1
  111. package/modern/managers/useDateRangeManager.js +3 -1
  112. package/modern/managers/useDateTimeRangeManager.js +3 -1
  113. package/modern/managers/useTimeRangeManager.js +3 -1
  114. package/modern/models/index.js +0 -2
  115. package/node/DateRangeCalendar/DateRangeCalendar.js +4 -4
  116. package/node/DateRangePicker/DateRangePickerToolbar.js +3 -3
  117. package/node/DateTimeRangePicker/DateTimeRangePickerTabs.js +3 -3
  118. package/node/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +2 -2
  119. package/node/DateTimeRangePicker/DateTimeRangePickerToolbar.js +7 -7
  120. package/node/MultiInputDateRangeField/MultiInputDateRangeField.js +11 -119
  121. package/node/MultiInputDateRangeField/index.js +3 -9
  122. package/node/MultiInputDateRangeField/multiInputDateRangeFieldClasses.js +12 -0
  123. package/node/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +11 -119
  124. package/node/MultiInputDateTimeRangeField/index.js +3 -9
  125. package/node/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.js +12 -0
  126. package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.js +12 -120
  127. package/node/MultiInputTimeRangeField/index.js +3 -9
  128. package/node/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.js +12 -0
  129. package/node/SingleInputDateRangeField/SingleInputDateRangeField.js +19 -29
  130. package/node/SingleInputDateRangeField/useSingleInputDateRangeField.js +2 -1
  131. package/node/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +19 -29
  132. package/node/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +2 -1
  133. package/node/SingleInputTimeRangeField/SingleInputTimeRangeField.js +19 -29
  134. package/node/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +2 -1
  135. package/node/hooks/index.js +8 -1
  136. package/node/hooks/useMultiInputRangeField/index.js +12 -0
  137. package/node/hooks/useMultiInputRangeField/useMultiInputRangeField.js +155 -0
  138. package/node/{internals/hooks/useMultiInputFieldSelectedSections.js → hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js} +11 -10
  139. package/node/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +66 -0
  140. package/node/index.js +1 -1
  141. package/node/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +31 -41
  142. package/node/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +41 -54
  143. package/node/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +22 -31
  144. package/node/internals/hooks/useRangePosition.js +1 -1
  145. package/node/internals/models/index.js +0 -11
  146. package/node/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +140 -0
  147. package/node/internals/utils/createMultiInputRangeField/index.js +19 -0
  148. package/node/internals/utils/releaseInfo.js +1 -1
  149. package/node/managers/useDateRangeManager.js +3 -1
  150. package/node/managers/useDateTimeRangeManager.js +3 -1
  151. package/node/managers/useTimeRangeManager.js +3 -1
  152. package/node/models/index.js +0 -22
  153. package/package.json +4 -4
  154. package/themeAugmentation/overrides.d.ts +6 -4
  155. package/themeAugmentation/props.d.ts +2 -2
  156. package/MultiInputDateRangeField/MultiInputDateRangeField.types.d.ts +0 -55
  157. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.d.ts +0 -56
  158. package/MultiInputTimeRangeField/MultiInputTimeRangeField.types.d.ts +0 -56
  159. package/internals/hooks/useMultiInputRangeField/shared.d.ts +0 -1
  160. package/internals/hooks/useMultiInputRangeField/shared.js +0 -9
  161. package/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.d.ts +0 -3
  162. package/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +0 -118
  163. package/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.d.ts +0 -3
  164. package/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -118
  165. package/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.d.ts +0 -11
  166. package/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.d.ts +0 -3
  167. package/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +0 -118
  168. package/internals/models/timeRange.d.ts +0 -6
  169. package/internals/models/timeRange.js +0 -1
  170. package/models/dateRange.d.ts +0 -7
  171. package/models/dateRange.js +0 -1
  172. package/models/multiInputRangeFieldClasses.d.ts +0 -7
  173. package/models/multiInputRangeFieldClasses.js +0 -1
  174. package/modern/MultiInputDateRangeField/MultiInputDateRangeField.types.js +0 -1
  175. package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.js +0 -1
  176. package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.types.js +0 -1
  177. package/modern/internals/hooks/useMultiInputRangeField/shared.js +0 -9
  178. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +0 -118
  179. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -118
  180. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.js +0 -1
  181. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +0 -118
  182. package/modern/internals/models/timeRange.js +0 -1
  183. package/modern/models/dateRange.js +0 -1
  184. package/modern/models/multiInputRangeFieldClasses.js +0 -1
  185. package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.types.js +0 -5
  186. package/node/internals/hooks/useMultiInputRangeField/shared.js +0 -16
  187. package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +0 -126
  188. package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -126
  189. package/node/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.js +0 -5
  190. package/node/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +0 -126
  191. package/node/internals/models/timeRange.js +0 -5
  192. package/node/models/dateRange.js +0 -5
  193. package/node/models/multiInputRangeFieldClasses.js +0 -5
  194. /package/{MultiInputDateRangeField/MultiInputDateRangeField.types.js → internals/models/managers.js} +0 -0
  195. /package/{MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.js → internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.js} +0 -0
  196. /package/{MultiInputTimeRangeField/MultiInputTimeRangeField.types.js → modern/internals/models/managers.js} +0 -0
  197. /package/{internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.js → modern/internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.js} +0 -0
  198. /package/node/{MultiInputDateRangeField/MultiInputDateRangeField.types.js → internals/models/managers.js} +0 -0
  199. /package/node/{MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.js → internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.js} +0 -0
@@ -74,7 +74,7 @@ const DateTimeRangePickerToolbar = /*#__PURE__*/React.forwardRef(function DateTi
74
74
  const ownerState = useToolbarOwnerState();
75
75
  const {
76
76
  rangePosition,
77
- onRangePositionChange
77
+ setRangePosition
78
78
  } = usePickerRangePositionContext();
79
79
  const classes = useUtilityClasses(classesProp);
80
80
  const commonToolbarProps = {
@@ -97,18 +97,18 @@ const DateTimeRangePickerToolbar = /*#__PURE__*/React.forwardRef(function DateTi
97
97
  rangePosition,
98
98
  allowRangeFlip: true
99
99
  });
100
- onRangePositionChange(nextSelection);
100
+ setRangePosition(nextSelection);
101
101
  setValue(newRange, {
102
102
  changeImportance: 'set'
103
103
  });
104
- }, [setValue, onRangePositionChange, value, rangePosition, utils]);
104
+ }, [setValue, setRangePosition, value, rangePosition, utils]);
105
105
  const startOverrides = React.useMemo(() => {
106
106
  const handleStartRangeViewChange = newView => {
107
107
  if (newView === 'year' || newView === 'month') {
108
108
  return;
109
109
  }
110
110
  if (rangePosition !== 'start') {
111
- onRangePositionChange('start');
111
+ setRangePosition('start');
112
112
  }
113
113
  setView(newView);
114
114
  };
@@ -119,14 +119,14 @@ const DateTimeRangePickerToolbar = /*#__PURE__*/React.forwardRef(function DateTi
119
119
  setView: handleStartRangeViewChange,
120
120
  view: rangePosition === 'start' ? view : null
121
121
  };
122
- }, [value, wrappedSetValue, rangePosition, view, onRangePositionChange, setView]);
122
+ }, [value, wrappedSetValue, rangePosition, view, setRangePosition, setView]);
123
123
  const endOverrides = React.useMemo(() => {
124
124
  const handleEndRangeViewChange = newView => {
125
125
  if (newView === 'year' || newView === 'month') {
126
126
  return;
127
127
  }
128
128
  if (rangePosition !== 'end') {
129
- onRangePositionChange('end');
129
+ setRangePosition('end');
130
130
  }
131
131
  setView(newView);
132
132
  };
@@ -137,7 +137,7 @@ const DateTimeRangePickerToolbar = /*#__PURE__*/React.forwardRef(function DateTi
137
137
  setView: handleEndRangeViewChange,
138
138
  view: rangePosition === 'end' ? view : null
139
139
  };
140
- }, [value, wrappedSetValue, rangePosition, view, onRangePositionChange, setView]);
140
+ }, [value, wrappedSetValue, rangePosition, view, setRangePosition, setView]);
141
141
  if (hidden) {
142
142
  return null;
143
143
  }
@@ -1,8 +1,13 @@
1
1
  import * as React from 'react';
2
- import { MultiInputDateRangeFieldProps } from './MultiInputDateRangeField.types';
3
- import { MultiInputRangeFieldClasses } from '../models';
4
- export declare const multiInputDateRangeFieldClasses: MultiInputRangeFieldClasses;
5
- export declare const getMultiInputDateRangeFieldUtilityClass: (slot: string) => string;
2
+ import { UseDateRangeManagerReturnValue } from '../managers';
3
+ import { MultiInputRangeFieldProps } from '../internals/utils/createMultiInputRangeField';
4
+ import { MultiInputDateRangeFieldClasses } from './multiInputDateRangeFieldClasses';
5
+ export interface MultiInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean> extends MultiInputRangeFieldProps<UseDateRangeManagerReturnValue<TEnableAccessibleFieldDOMStructure>> {
6
+ /**
7
+ * Override or extend the styles applied to the component.
8
+ */
9
+ classes?: Partial<MultiInputDateRangeFieldClasses>;
10
+ }
6
11
  type MultiInputDateRangeFieldComponent = (<TEnableAccessibleFieldDOMStructure extends boolean = true>(props: MultiInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure> & React.RefAttributes<HTMLDivElement>) => React.JSX.Element) & {
7
12
  propTypes?: any;
8
13
  };
@@ -1,48 +1,11 @@
1
1
  'use client';
2
2
 
3
- import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
4
- import _extends from "@babel/runtime/helpers/esm/extends";
5
- const _excluded = ["slots", "slotProps", "unstableStartFieldRef", "unstableEndFieldRef", "className", "classes"];
6
- import * as React from 'react';
7
3
  import PropTypes from 'prop-types';
8
- import clsx from 'clsx';
9
- import Stack from '@mui/material/Stack';
10
- import MuiTextField from '@mui/material/TextField';
11
- import Typography from '@mui/material/Typography';
12
- import { styled, useThemeProps } from '@mui/material/styles';
13
- import useSlotProps from '@mui/utils/useSlotProps';
14
- import { unstable_composeClasses as composeClasses, unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';
15
- import { convertFieldResponseIntoMuiTextFieldProps, useFieldOwnerState } from '@mui/x-date-pickers/internals';
16
- import { useSplitFieldProps } from '@mui/x-date-pickers/hooks';
17
- import { PickersTextField } from '@mui/x-date-pickers/PickersTextField';
18
- import { useMultiInputDateRangeField } from "../internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js";
19
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
20
- export const multiInputDateRangeFieldClasses = generateUtilityClasses('MuiMultiInputDateRangeField', ['root', 'separator']);
21
- export const getMultiInputDateRangeFieldUtilityClass = slot => generateUtilityClass('MuiMultiInputDateRangeField', slot);
22
- const useUtilityClasses = classes => {
23
- const slots = {
24
- root: ['root'],
25
- separator: ['separator']
26
- };
27
- return composeClasses(slots, getMultiInputDateRangeFieldUtilityClass, classes);
28
- };
29
- const MultiInputDateRangeFieldRoot = styled(/*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/_jsx(Stack, _extends({
30
- ref: ref,
31
- spacing: 2,
32
- direction: "row",
33
- alignItems: "center"
34
- }, props))), {
35
- name: 'MuiMultiInputDateRangeField',
36
- slot: 'Root',
37
- overridesResolver: (props, styles) => styles.root
38
- })({});
39
- const MultiInputDateRangeFieldSeparator = styled(Typography, {
40
- name: 'MuiMultiInputDateRangeField',
41
- slot: 'Separator',
42
- overridesResolver: (props, styles) => styles.separator
43
- })({
44
- lineHeight: '1.4375em' // 23px
45
- });
4
+ import { useDateRangeManager } from "../managers/index.js";
5
+ import {
6
+ // The alias is needed to have the doc gen working.
7
+ createMultiInputRangeField as createMultiInputDateRangeField } from "../internals/utils/createMultiInputRangeField/index.js";
8
+ import { getMultiInputDateRangeFieldUtilityClass } from "./multiInputDateRangeFieldClasses.js";
46
9
  /**
47
10
  * Demos:
48
11
  *
@@ -53,86 +16,19 @@ const MultiInputDateRangeFieldSeparator = styled(Typography, {
53
16
  *
54
17
  * - [MultiInputDateRangeField API](https://mui.com/x/api/multi-input-date-range-field/)
55
18
  */
56
- const MultiInputDateRangeField = /*#__PURE__*/React.forwardRef(function MultiInputDateRangeField(inProps, ref) {
57
- const themeProps = useThemeProps({
58
- props: inProps,
59
- name: 'MuiMultiInputDateRangeField'
60
- });
61
- const {
62
- internalProps,
63
- forwardedProps
64
- } = useSplitFieldProps(themeProps, 'date');
65
- const {
66
- slots,
67
- slotProps,
68
- unstableStartFieldRef,
69
- unstableEndFieldRef,
70
- className,
71
- classes: classesProp
72
- } = forwardedProps,
73
- otherForwardedProps = _objectWithoutPropertiesLoose(forwardedProps, _excluded);
74
- const ownerState = useFieldOwnerState(internalProps);
75
- const classes = useUtilityClasses(classesProp);
76
- const Root = slots?.root ?? MultiInputDateRangeFieldRoot;
77
- const rootProps = useSlotProps({
78
- elementType: Root,
79
- externalSlotProps: slotProps?.root,
80
- externalForwardedProps: otherForwardedProps,
81
- additionalProps: {
82
- ref
83
- },
84
- ownerState,
85
- className: clsx(className, classes.root)
86
- });
87
- const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure === false ? MuiTextField : PickersTextField);
88
- const startTextFieldProps = useSlotProps({
89
- elementType: TextField,
90
- externalSlotProps: slotProps?.textField,
91
- ownerState: _extends({}, ownerState, {
92
- position: 'start'
93
- })
94
- });
95
- const endTextFieldProps = useSlotProps({
96
- elementType: TextField,
97
- externalSlotProps: slotProps?.textField,
98
- ownerState: _extends({}, ownerState, {
99
- position: 'end'
100
- })
101
- });
102
- const Separator = slots?.separator ?? MultiInputDateRangeFieldSeparator;
103
- const separatorProps = useSlotProps({
104
- elementType: Separator,
105
- externalSlotProps: slotProps?.separator,
106
- additionalProps: {
107
- children: ` ${internalProps.dateSeparator ?? '–'} `
108
- },
109
- ownerState,
110
- className: classes.separator
111
- });
112
- const fieldResponse = useMultiInputDateRangeField({
113
- sharedProps: internalProps,
114
- startTextFieldProps,
115
- endTextFieldProps,
116
- unstableStartFieldRef,
117
- unstableEndFieldRef
118
- });
119
- const startDateProps = convertFieldResponseIntoMuiTextFieldProps(fieldResponse.startDate);
120
- const endDateProps = convertFieldResponseIntoMuiTextFieldProps(fieldResponse.endDate);
121
- return /*#__PURE__*/_jsxs(Root, _extends({}, rootProps, {
122
- children: [/*#__PURE__*/_jsx(TextField, _extends({
123
- fullWidth: true
124
- }, startDateProps)), /*#__PURE__*/_jsx(Separator, _extends({}, separatorProps)), /*#__PURE__*/_jsx(TextField, _extends({
125
- fullWidth: true
126
- }, endDateProps))]
127
- }));
19
+ const MultiInputDateRangeField = createMultiInputDateRangeField({
20
+ name: 'MuiMultiInputDateRangeField',
21
+ getUtilityClass: getMultiInputDateRangeFieldUtilityClass,
22
+ useManager: useDateRangeManager
128
23
  });
129
- process.env.NODE_ENV !== "production" ? MultiInputDateRangeField.propTypes = {
24
+ MultiInputDateRangeField.propTypes = {
130
25
  // ----------------------------- Warning --------------------------------
131
26
  // | These PropTypes are generated from the TypeScript type definitions |
132
27
  // | To update them edit the TypeScript types and run "pnpm proptypes" |
133
28
  // ----------------------------------------------------------------------
134
29
  /**
135
30
  * If `true`, the `input` element is focused during the first mount.
31
+ * @default false
136
32
  */
137
33
  autoFocus: PropTypes.bool,
138
34
  /**
@@ -315,5 +211,5 @@ process.env.NODE_ENV !== "production" ? MultiInputDateRangeField.propTypes = {
315
211
  * Used when the component is controlled.
316
212
  */
317
213
  value: PropTypes.arrayOf(PropTypes.object)
318
- } : void 0;
214
+ };
319
215
  export { MultiInputDateRangeField };
@@ -1,3 +1,5 @@
1
- export { MultiInputDateRangeField, getMultiInputDateRangeFieldUtilityClass, multiInputDateRangeFieldClasses, } from './MultiInputDateRangeField';
2
- export { useMultiInputDateRangeField as unstable_useMultiInputDateRangeField } from '../internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField';
3
- export type { UseMultiInputDateRangeFieldProps, UseMultiInputDateRangeFieldComponentProps, MultiInputDateRangeFieldProps, } from './MultiInputDateRangeField.types';
1
+ export { MultiInputDateRangeField } from './MultiInputDateRangeField';
2
+ export type { MultiInputDateRangeFieldProps } from './MultiInputDateRangeField';
3
+ export { multiInputDateRangeFieldClasses, getMultiInputDateRangeFieldUtilityClass, } from './multiInputDateRangeFieldClasses';
4
+ export type { MultiInputDateRangeFieldClassKey, MultiInputDateRangeFieldClasses, } from './multiInputDateRangeFieldClasses';
5
+ export type { MultiInputRangeFieldSlots as MultiInputDateRangeFieldSlots, MultiInputRangeFieldSlotProps as MultiInputDateRangeFieldSlotProps, } from '../internals/utils/createMultiInputRangeField';
@@ -1,2 +1,2 @@
1
- export { MultiInputDateRangeField, getMultiInputDateRangeFieldUtilityClass, multiInputDateRangeFieldClasses } from "./MultiInputDateRangeField.js";
2
- export { useMultiInputDateRangeField as unstable_useMultiInputDateRangeField } from "../internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js";
1
+ export { MultiInputDateRangeField } from "./MultiInputDateRangeField.js";
2
+ export { multiInputDateRangeFieldClasses, getMultiInputDateRangeFieldUtilityClass } from "./multiInputDateRangeFieldClasses.js";
@@ -0,0 +1,6 @@
1
+ import { MultiInputRangeFieldClasses } from '../internals/utils/createMultiInputRangeField';
2
+ export interface MultiInputDateRangeFieldClasses extends MultiInputRangeFieldClasses {
3
+ }
4
+ export type MultiInputDateRangeFieldClassKey = keyof MultiInputRangeFieldClasses;
5
+ export declare const multiInputDateRangeFieldClasses: MultiInputRangeFieldClasses;
6
+ export declare const getMultiInputDateRangeFieldUtilityClass: (slot: string) => string;
@@ -0,0 +1,4 @@
1
+ import generateUtilityClass from '@mui/utils/generateUtilityClass';
2
+ import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
3
+ export const multiInputDateRangeFieldClasses = generateUtilityClasses('MuiMultiInputDateRangeField', ['root', 'separator']);
4
+ export const getMultiInputDateRangeFieldUtilityClass = slot => generateUtilityClass('MuiMultiInputDateRangeField', slot);
@@ -1,8 +1,13 @@
1
1
  import * as React from 'react';
2
- import { MultiInputDateTimeRangeFieldProps } from './MultiInputDateTimeRangeField.types';
3
- import { MultiInputRangeFieldClasses } from '../models';
4
- export declare const multiInputDateTimeRangeFieldClasses: MultiInputRangeFieldClasses;
5
- export declare const getMultiInputDateTimeRangeFieldUtilityClass: (slot: string) => string;
2
+ import { UseDateTimeRangeManagerReturnValue } from '../managers';
3
+ import { MultiInputRangeFieldProps } from '../internals/utils/createMultiInputRangeField';
4
+ import { MultiInputDateTimeRangeFieldClasses } from './multiInputDateTimeRangeFieldClasses';
5
+ export interface MultiInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean> extends MultiInputRangeFieldProps<UseDateTimeRangeManagerReturnValue<TEnableAccessibleFieldDOMStructure>> {
6
+ /**
7
+ * Override or extend the styles applied to the component.
8
+ */
9
+ classes?: Partial<MultiInputDateTimeRangeFieldClasses>;
10
+ }
6
11
  type MultiInputDateTimeRangeFieldComponent = (<TEnableAccessibleFieldDOMStructure extends boolean = true>(props: MultiInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure> & React.RefAttributes<HTMLDivElement>) => React.JSX.Element) & {
7
12
  propTypes?: any;
8
13
  };
@@ -1,48 +1,11 @@
1
1
  'use client';
2
2
 
3
- import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
4
- import _extends from "@babel/runtime/helpers/esm/extends";
5
- const _excluded = ["slots", "slotProps", "unstableStartFieldRef", "unstableEndFieldRef", "className", "classes"];
6
- import * as React from 'react';
7
3
  import PropTypes from 'prop-types';
8
- import clsx from 'clsx';
9
- import Stack from '@mui/material/Stack';
10
- import MuiTextField from '@mui/material/TextField';
11
- import Typography from '@mui/material/Typography';
12
- import { styled, useThemeProps } from '@mui/material/styles';
13
- import useSlotProps from '@mui/utils/useSlotProps';
14
- import { unstable_composeClasses as composeClasses, unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';
15
- import { convertFieldResponseIntoMuiTextFieldProps, useFieldOwnerState } from '@mui/x-date-pickers/internals';
16
- import { useSplitFieldProps } from '@mui/x-date-pickers/hooks';
17
- import { PickersTextField } from '@mui/x-date-pickers/PickersTextField';
18
- import { useMultiInputDateTimeRangeField } from "../internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js";
19
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
20
- export const multiInputDateTimeRangeFieldClasses = generateUtilityClasses('MuiMultiInputDateTimeRangeField', ['root', 'separator']);
21
- export const getMultiInputDateTimeRangeFieldUtilityClass = slot => generateUtilityClass('MuiMultiInputDateTimeRangeField', slot);
22
- const useUtilityClasses = classes => {
23
- const slots = {
24
- root: ['root'],
25
- separator: ['separator']
26
- };
27
- return composeClasses(slots, getMultiInputDateTimeRangeFieldUtilityClass, classes);
28
- };
29
- const MultiInputDateTimeRangeFieldRoot = styled(/*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/_jsx(Stack, _extends({
30
- ref: ref,
31
- spacing: 2,
32
- direction: "row",
33
- alignItems: "center"
34
- }, props))), {
35
- name: 'MuiMultiInputDateTimeRangeField',
36
- slot: 'Root',
37
- overridesResolver: (props, styles) => styles.root
38
- })({});
39
- const MultiInputDateTimeRangeFieldSeparator = styled(Typography, {
40
- name: 'MuiMultiInputDateTimeRangeField',
41
- slot: 'Separator',
42
- overridesResolver: (props, styles) => styles.separator
43
- })({
44
- lineHeight: '1.4375em' // 23px
45
- });
4
+ import { useDateTimeRangeManager } from "../managers/index.js";
5
+ import {
6
+ // The alias is needed to have the doc gen working.
7
+ createMultiInputRangeField as createMultiInputDateTimeRangeField } from "../internals/utils/createMultiInputRangeField/index.js";
8
+ import { getMultiInputDateTimeRangeFieldUtilityClass } from "./multiInputDateTimeRangeFieldClasses.js";
46
9
  /**
47
10
  * Demos:
48
11
  *
@@ -53,80 +16,12 @@ const MultiInputDateTimeRangeFieldSeparator = styled(Typography, {
53
16
  *
54
17
  * - [MultiInputDateTimeRangeField API](https://mui.com/x/api/multi-input-date-time-range-field/)
55
18
  */
56
- const MultiInputDateTimeRangeField = /*#__PURE__*/React.forwardRef(function MultiInputDateTimeRangeField(inProps, ref) {
57
- const themeProps = useThemeProps({
58
- props: inProps,
59
- name: 'MuiMultiInputDateTimeRangeField'
60
- });
61
- const {
62
- internalProps,
63
- forwardedProps
64
- } = useSplitFieldProps(themeProps, 'date-time');
65
- const {
66
- slots,
67
- slotProps,
68
- unstableStartFieldRef,
69
- unstableEndFieldRef,
70
- className,
71
- classes: classesProp
72
- } = forwardedProps,
73
- otherForwardedProps = _objectWithoutPropertiesLoose(forwardedProps, _excluded);
74
- const ownerState = useFieldOwnerState(themeProps);
75
- const classes = useUtilityClasses(classesProp);
76
- const Root = slots?.root ?? MultiInputDateTimeRangeFieldRoot;
77
- const rootProps = useSlotProps({
78
- elementType: Root,
79
- externalSlotProps: slotProps?.root,
80
- externalForwardedProps: otherForwardedProps,
81
- additionalProps: {
82
- ref
83
- },
84
- ownerState,
85
- className: clsx(className, classes.root)
86
- });
87
- const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure === false ? MuiTextField : PickersTextField);
88
- const startTextFieldProps = useSlotProps({
89
- elementType: TextField,
90
- externalSlotProps: slotProps?.textField,
91
- ownerState: _extends({}, ownerState, {
92
- position: 'start'
93
- })
94
- });
95
- const endTextFieldProps = useSlotProps({
96
- elementType: TextField,
97
- externalSlotProps: slotProps?.textField,
98
- ownerState: _extends({}, ownerState, {
99
- position: 'end'
100
- })
101
- });
102
- const Separator = slots?.separator ?? MultiInputDateTimeRangeFieldSeparator;
103
- const separatorProps = useSlotProps({
104
- elementType: Separator,
105
- externalSlotProps: slotProps?.separator,
106
- additionalProps: {
107
- children: ` ${internalProps.dateSeparator ?? '–'} `
108
- },
109
- ownerState,
110
- className: classes.separator
111
- });
112
- const fieldResponse = useMultiInputDateTimeRangeField({
113
- sharedProps: internalProps,
114
- startTextFieldProps,
115
- endTextFieldProps,
116
- unstableStartFieldRef,
117
- unstableEndFieldRef
118
- });
119
- const startDateProps = convertFieldResponseIntoMuiTextFieldProps(fieldResponse.startDate);
120
- const endDateProps = convertFieldResponseIntoMuiTextFieldProps(fieldResponse.endDate);
121
- return /*#__PURE__*/_jsxs(Root, _extends({}, rootProps, {
122
- children: [/*#__PURE__*/_jsx(TextField, _extends({
123
- fullWidth: true
124
- }, startDateProps)), /*#__PURE__*/_jsx(Separator, _extends({}, separatorProps)), /*#__PURE__*/_jsx(TextField, _extends({
125
- fullWidth: true
126
- }, endDateProps))]
127
- }));
19
+ const MultiInputDateTimeRangeField = createMultiInputDateTimeRangeField({
20
+ name: 'MuiMultiInputDateTimeRangeField',
21
+ getUtilityClass: getMultiInputDateTimeRangeFieldUtilityClass,
22
+ useManager: useDateTimeRangeManager
128
23
  });
129
- process.env.NODE_ENV !== "production" ? MultiInputDateTimeRangeField.propTypes = {
24
+ MultiInputDateTimeRangeField.propTypes = {
130
25
  // ----------------------------- Warning --------------------------------
131
26
  // | These PropTypes are generated from the TypeScript type definitions |
132
27
  // | To update them edit the TypeScript types and run "pnpm proptypes" |
@@ -138,6 +33,7 @@ process.env.NODE_ENV !== "production" ? MultiInputDateTimeRangeField.propTypes =
138
33
  ampm: PropTypes.bool,
139
34
  /**
140
35
  * If `true`, the `input` element is focused during the first mount.
36
+ * @default false
141
37
  */
142
38
  autoFocus: PropTypes.bool,
143
39
  /**
@@ -355,5 +251,5 @@ process.env.NODE_ENV !== "production" ? MultiInputDateTimeRangeField.propTypes =
355
251
  * Used when the component is controlled.
356
252
  */
357
253
  value: PropTypes.arrayOf(PropTypes.object)
358
- } : void 0;
254
+ };
359
255
  export { MultiInputDateTimeRangeField };
@@ -1,3 +1,5 @@
1
- export { MultiInputDateTimeRangeField, getMultiInputDateTimeRangeFieldUtilityClass, multiInputDateTimeRangeFieldClasses, } from './MultiInputDateTimeRangeField';
2
- export { useMultiInputDateTimeRangeField as unstable_useMultiInputDateTimeRangeField } from '../internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField';
3
- export type { UseMultiInputDateTimeRangeFieldProps, UseMultiInputDateTimeRangeFieldComponentProps, MultiInputDateTimeRangeFieldProps, } from './MultiInputDateTimeRangeField.types';
1
+ export { MultiInputDateTimeRangeField } from './MultiInputDateTimeRangeField';
2
+ export type { MultiInputDateTimeRangeFieldProps } from './MultiInputDateTimeRangeField';
3
+ export { multiInputDateTimeRangeFieldClasses, getMultiInputDateTimeRangeFieldUtilityClass, } from './multiInputDateTimeRangeFieldClasses';
4
+ export type { MultiInputDateTimeRangeFieldClassKey, MultiInputDateTimeRangeFieldClasses, } from './multiInputDateTimeRangeFieldClasses';
5
+ export type { MultiInputRangeFieldSlots as MultiInputDateTimeRangeFieldSlots, MultiInputRangeFieldSlotProps as MultiInputDateTimeRangeFieldSlotProps, } from '../internals/utils/createMultiInputRangeField';
@@ -1,2 +1,2 @@
1
- export { MultiInputDateTimeRangeField, getMultiInputDateTimeRangeFieldUtilityClass, multiInputDateTimeRangeFieldClasses } from "./MultiInputDateTimeRangeField.js";
2
- export { useMultiInputDateTimeRangeField as unstable_useMultiInputDateTimeRangeField } from "../internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js";
1
+ export { MultiInputDateTimeRangeField } from "./MultiInputDateTimeRangeField.js";
2
+ export { multiInputDateTimeRangeFieldClasses, getMultiInputDateTimeRangeFieldUtilityClass } from "./multiInputDateTimeRangeFieldClasses.js";
@@ -0,0 +1,6 @@
1
+ import { MultiInputRangeFieldClasses } from '../internals/utils/createMultiInputRangeField';
2
+ export interface MultiInputDateTimeRangeFieldClasses extends MultiInputRangeFieldClasses {
3
+ }
4
+ export type MultiInputDateTimeRangeFieldClassKey = keyof MultiInputRangeFieldClasses;
5
+ export declare const multiInputDateTimeRangeFieldClasses: MultiInputRangeFieldClasses;
6
+ export declare const getMultiInputDateTimeRangeFieldUtilityClass: (slot: string) => string;
@@ -0,0 +1,4 @@
1
+ import generateUtilityClass from '@mui/utils/generateUtilityClass';
2
+ import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
3
+ export const multiInputDateTimeRangeFieldClasses = generateUtilityClasses('MuiMultiInputDateTimeRangeField', ['root', 'separator']);
4
+ export const getMultiInputDateTimeRangeFieldUtilityClass = slot => generateUtilityClass('MuiMultiInputDateTimeRangeField', slot);
@@ -1,8 +1,13 @@
1
1
  import * as React from 'react';
2
- import { MultiInputTimeRangeFieldProps } from './MultiInputTimeRangeField.types';
3
- import { MultiInputRangeFieldClasses } from '../models';
4
- export declare const multiInputTimeRangeFieldClasses: MultiInputRangeFieldClasses;
5
- export declare const getMultiInputTimeRangeFieldUtilityClass: (slot: string) => string;
2
+ import { UseTimeRangeManagerReturnValue } from '../managers';
3
+ import { MultiInputRangeFieldProps } from '../internals/utils/createMultiInputRangeField';
4
+ import { MultiInputTimeRangeFieldClasses } from './multiInputTimeRangeFieldClasses';
5
+ export interface MultiInputTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean> extends MultiInputRangeFieldProps<UseTimeRangeManagerReturnValue<TEnableAccessibleFieldDOMStructure>> {
6
+ /**
7
+ * Override or extend the styles applied to the component.
8
+ */
9
+ classes?: Partial<MultiInputTimeRangeFieldClasses>;
10
+ }
6
11
  type MultiInputTimeRangeFieldComponent = (<TEnableAccessibleFieldDOMStructure extends boolean = true>(props: MultiInputTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure> & React.RefAttributes<HTMLDivElement>) => React.JSX.Element) & {
7
12
  propTypes?: any;
8
13
  };
@@ -1,48 +1,11 @@
1
1
  'use client';
2
2
 
3
- import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
4
- import _extends from "@babel/runtime/helpers/esm/extends";
5
- const _excluded = ["slots", "slotProps", "unstableStartFieldRef", "unstableEndFieldRef", "className", "classes"];
6
- import * as React from 'react';
7
3
  import PropTypes from 'prop-types';
8
- import { clsx } from 'clsx';
9
- import Stack from '@mui/material/Stack';
10
- import MuiTextField from '@mui/material/TextField';
11
- import Typography from '@mui/material/Typography';
12
- import { styled, useThemeProps } from '@mui/material/styles';
13
- import useSlotProps from '@mui/utils/useSlotProps';
14
- import { unstable_composeClasses as composeClasses, unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';
15
- import { convertFieldResponseIntoMuiTextFieldProps, useFieldOwnerState } from '@mui/x-date-pickers/internals';
16
- import { useSplitFieldProps } from '@mui/x-date-pickers/hooks';
17
- import { PickersTextField } from '@mui/x-date-pickers/PickersTextField';
18
- import { useMultiInputTimeRangeField } from "../internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js";
19
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
20
- export const multiInputTimeRangeFieldClasses = generateUtilityClasses('MuiMultiInputTimeRangeField', ['root', 'separator']);
21
- export const getMultiInputTimeRangeFieldUtilityClass = slot => generateUtilityClass('MuiMultiInputTimeRangeField', slot);
22
- const useUtilityClasses = classes => {
23
- const slots = {
24
- root: ['root'],
25
- separator: ['separator']
26
- };
27
- return composeClasses(slots, getMultiInputTimeRangeFieldUtilityClass, classes);
28
- };
29
- const MultiInputTimeRangeFieldRoot = styled(/*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/_jsx(Stack, _extends({
30
- ref: ref,
31
- spacing: 2,
32
- direction: "row",
33
- alignItems: "center"
34
- }, props))), {
35
- name: 'MuiMultiInputTimeRangeField',
36
- slot: 'Root',
37
- overridesResolver: (props, styles) => styles.root
38
- })({});
39
- const MultiInputTimeRangeFieldSeparator = styled(Typography, {
40
- name: 'MuiMultiInputTimeRangeField',
41
- slot: 'Separator',
42
- overridesResolver: (props, styles) => styles.separator
43
- })({
44
- lineHeight: '1.4375em' // 23px
45
- });
4
+ import { useTimeRangeManager } from "../managers/index.js";
5
+ import {
6
+ // The alias is needed to have the doc gen working.
7
+ createMultiInputRangeField as createMultiInputTimeRangeField } from "../internals/utils/createMultiInputRangeField/index.js";
8
+ import { getMultiInputTimeRangeFieldUtilityClass } from "./multiInputTimeRangeFieldClasses.js";
46
9
  /**
47
10
  * Demos:
48
11
  *
@@ -53,80 +16,12 @@ const MultiInputTimeRangeFieldSeparator = styled(Typography, {
53
16
  *
54
17
  * - [MultiInputTimeRangeField API](https://mui.com/x/api/multi-input-time-range-field/)
55
18
  */
56
- const MultiInputTimeRangeField = /*#__PURE__*/React.forwardRef(function MultiInputTimeRangeField(inProps, ref) {
57
- const themeProps = useThemeProps({
58
- props: inProps,
59
- name: 'MuiMultiInputTimeRangeField'
60
- });
61
- const {
62
- internalProps,
63
- forwardedProps
64
- } = useSplitFieldProps(themeProps, 'time');
65
- const {
66
- slots,
67
- slotProps,
68
- unstableStartFieldRef,
69
- unstableEndFieldRef,
70
- className,
71
- classes: classesProp
72
- } = forwardedProps,
73
- otherForwardedProps = _objectWithoutPropertiesLoose(forwardedProps, _excluded);
74
- const ownerState = useFieldOwnerState(themeProps);
75
- const classes = useUtilityClasses(classesProp);
76
- const Root = slots?.root ?? MultiInputTimeRangeFieldRoot;
77
- const rootProps = useSlotProps({
78
- elementType: Root,
79
- externalSlotProps: slotProps?.root,
80
- externalForwardedProps: otherForwardedProps,
81
- additionalProps: {
82
- ref
83
- },
84
- ownerState,
85
- className: clsx(className, classes.root)
86
- });
87
- const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure === false ? MuiTextField : PickersTextField);
88
- const startTextFieldProps = useSlotProps({
89
- elementType: TextField,
90
- externalSlotProps: slotProps?.textField,
91
- ownerState: _extends({}, ownerState, {
92
- position: 'start'
93
- })
94
- });
95
- const endTextFieldProps = useSlotProps({
96
- elementType: TextField,
97
- externalSlotProps: slotProps?.textField,
98
- ownerState: _extends({}, ownerState, {
99
- position: 'end'
100
- })
101
- });
102
- const Separator = slots?.separator ?? MultiInputTimeRangeFieldSeparator;
103
- const separatorProps = useSlotProps({
104
- elementType: Separator,
105
- externalSlotProps: slotProps?.separator,
106
- additionalProps: {
107
- children: ` ${internalProps.dateSeparator ?? '–'} `
108
- },
109
- ownerState,
110
- className: classes.separator
111
- });
112
- const fieldResponse = useMultiInputTimeRangeField({
113
- sharedProps: internalProps,
114
- startTextFieldProps,
115
- endTextFieldProps,
116
- unstableStartFieldRef,
117
- unstableEndFieldRef
118
- });
119
- const startDateProps = convertFieldResponseIntoMuiTextFieldProps(fieldResponse.startDate);
120
- const endDateProps = convertFieldResponseIntoMuiTextFieldProps(fieldResponse.endDate);
121
- return /*#__PURE__*/_jsxs(Root, _extends({}, rootProps, {
122
- children: [/*#__PURE__*/_jsx(TextField, _extends({
123
- fullWidth: true
124
- }, startDateProps)), /*#__PURE__*/_jsx(Separator, _extends({}, separatorProps)), /*#__PURE__*/_jsx(TextField, _extends({
125
- fullWidth: true
126
- }, endDateProps))]
127
- }));
19
+ const MultiInputTimeRangeField = createMultiInputTimeRangeField({
20
+ name: 'MuiMultiInputTimeRangeField',
21
+ getUtilityClass: getMultiInputTimeRangeFieldUtilityClass,
22
+ useManager: useTimeRangeManager
128
23
  });
129
- process.env.NODE_ENV !== "production" ? MultiInputTimeRangeField.propTypes = {
24
+ MultiInputTimeRangeField.propTypes = {
130
25
  // ----------------------------- Warning --------------------------------
131
26
  // | These PropTypes are generated from the TypeScript type definitions |
132
27
  // | To update them edit the TypeScript types and run "pnpm proptypes" |
@@ -138,6 +33,7 @@ process.env.NODE_ENV !== "production" ? MultiInputTimeRangeField.propTypes = {
138
33
  ampm: PropTypes.bool,
139
34
  /**
140
35
  * If `true`, the `input` element is focused during the first mount.
36
+ * @default false
141
37
  */
142
38
  autoFocus: PropTypes.bool,
143
39
  /**
@@ -288,7 +184,7 @@ process.env.NODE_ENV !== "production" ? MultiInputTimeRangeField.propTypes = {
288
184
  */
289
185
  slotProps: PropTypes.object,
290
186
  /**
291
- * Overridable slots.
187
+ * Overridable component slots.
292
188
  * @default {}
293
189
  */
294
190
  slots: PropTypes.object,
@@ -327,5 +223,5 @@ process.env.NODE_ENV !== "production" ? MultiInputTimeRangeField.propTypes = {
327
223
  * Used when the component is controlled.
328
224
  */
329
225
  value: PropTypes.arrayOf(PropTypes.object)
330
- } : void 0;
226
+ };
331
227
  export { MultiInputTimeRangeField };