@mui/x-date-pickers 8.0.0-beta.0 → 8.0.0-beta.2

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 (237) hide show
  1. package/CHANGELOG.md +171 -0
  2. package/DateCalendar/DateCalendar.js +4 -8
  3. package/DateCalendar/DayCalendar.d.ts +3 -7
  4. package/DateCalendar/DayCalendar.js +18 -10
  5. package/DateCalendar/index.d.ts +0 -1
  6. package/DateField/useDateField.d.ts +1 -1
  7. package/DateField/useDateField.js +2 -16
  8. package/DatePicker/DatePicker.js +1 -0
  9. package/DatePicker/shared.js +3 -9
  10. package/DateTimeField/useDateTimeField.d.ts +1 -1
  11. package/DateTimeField/useDateTimeField.js +2 -16
  12. package/DateTimePicker/DateTimePicker.js +1 -0
  13. package/DateTimePicker/shared.js +3 -13
  14. package/DesktopDatePicker/DesktopDatePicker.js +1 -0
  15. package/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -0
  16. package/DesktopTimePicker/DesktopTimePicker.js +1 -0
  17. package/MobileDatePicker/MobileDatePicker.js +1 -0
  18. package/MobileDateTimePicker/MobileDateTimePicker.js +1 -0
  19. package/MobileTimePicker/MobileTimePicker.js +1 -0
  20. package/MonthCalendar/MonthCalendar.js +4 -9
  21. package/PickersDay/PickersDay.d.ts +1 -72
  22. package/PickersDay/PickersDay.js +30 -28
  23. package/PickersDay/PickersDay.types.d.ts +114 -0
  24. package/PickersDay/PickersDay.types.js +5 -0
  25. package/PickersDay/index.d.ts +1 -1
  26. package/PickersDay/usePickerDayOwnerState.d.ts +14 -0
  27. package/PickersDay/usePickerDayOwnerState.js +40 -0
  28. package/PickersSectionList/PickersSectionList.d.ts +1 -1
  29. package/PickersSectionList/PickersSectionList.types.d.ts +2 -6
  30. package/TimeField/useTimeField.d.ts +1 -1
  31. package/TimeField/useTimeField.js +2 -16
  32. package/TimePicker/TimePicker.js +1 -0
  33. package/TimePicker/shared.js +3 -3
  34. package/YearCalendar/YearCalendar.js +4 -10
  35. package/esm/DateCalendar/DateCalendar.js +6 -10
  36. package/esm/DateCalendar/DayCalendar.d.ts +3 -7
  37. package/esm/DateCalendar/DayCalendar.js +18 -10
  38. package/esm/DateCalendar/index.d.ts +0 -1
  39. package/esm/DateField/useDateField.d.ts +1 -1
  40. package/esm/DateField/useDateField.js +3 -17
  41. package/esm/DatePicker/DatePicker.js +1 -0
  42. package/esm/DatePicker/shared.js +3 -9
  43. package/esm/DateTimeField/useDateTimeField.d.ts +1 -1
  44. package/esm/DateTimeField/useDateTimeField.js +3 -17
  45. package/esm/DateTimePicker/DateTimePicker.js +1 -0
  46. package/esm/DateTimePicker/shared.js +4 -14
  47. package/esm/DesktopDatePicker/DesktopDatePicker.js +1 -0
  48. package/esm/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -0
  49. package/esm/DesktopTimePicker/DesktopTimePicker.js +1 -0
  50. package/esm/MobileDatePicker/MobileDatePicker.js +1 -0
  51. package/esm/MobileDateTimePicker/MobileDateTimePicker.js +1 -0
  52. package/esm/MobileTimePicker/MobileTimePicker.js +1 -0
  53. package/esm/MonthCalendar/MonthCalendar.js +6 -11
  54. package/esm/PickersDay/PickersDay.d.ts +1 -72
  55. package/esm/PickersDay/PickersDay.js +30 -28
  56. package/esm/PickersDay/PickersDay.types.d.ts +114 -0
  57. package/esm/PickersDay/PickersDay.types.js +1 -0
  58. package/esm/PickersDay/index.d.ts +1 -1
  59. package/esm/PickersDay/usePickerDayOwnerState.d.ts +14 -0
  60. package/esm/PickersDay/usePickerDayOwnerState.js +32 -0
  61. package/esm/PickersSectionList/PickersSectionList.d.ts +1 -1
  62. package/esm/PickersSectionList/PickersSectionList.types.d.ts +2 -6
  63. package/esm/TimeField/useTimeField.d.ts +1 -1
  64. package/esm/TimeField/useTimeField.js +3 -17
  65. package/esm/TimePicker/TimePicker.js +1 -0
  66. package/esm/TimePicker/shared.js +3 -3
  67. package/esm/YearCalendar/YearCalendar.js +5 -11
  68. package/esm/hooks/useSplitFieldProps.d.ts +1 -1
  69. package/esm/index.js +1 -1
  70. package/esm/internals/components/PickerFieldUI.d.ts +5 -5
  71. package/esm/internals/hooks/useField/buildSectionsFromFormat.d.ts +2 -2
  72. package/esm/internals/hooks/useField/buildSectionsFromFormat.js +9 -9
  73. package/esm/internals/hooks/useField/index.d.ts +1 -1
  74. package/esm/internals/hooks/useField/syncSelectionToDOM.d.ts +9 -0
  75. package/esm/internals/hooks/useField/syncSelectionToDOM.js +50 -0
  76. package/esm/internals/hooks/useField/useField.d.ts +2 -4
  77. package/esm/internals/hooks/useField/useField.js +5 -229
  78. package/esm/internals/hooks/useField/useField.types.d.ts +55 -68
  79. package/esm/internals/hooks/useField/useField.utils.d.ts +3 -8
  80. package/esm/internals/hooks/useField/useField.utils.js +7 -149
  81. package/esm/internals/hooks/useField/useFieldCharacterEditing.d.ts +19 -26
  82. package/esm/internals/hooks/useField/useFieldCharacterEditing.js +42 -60
  83. package/esm/internals/hooks/useField/useFieldHiddenInputProps.d.ts +20 -0
  84. package/esm/internals/hooks/useField/useFieldHiddenInputProps.js +31 -0
  85. package/esm/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +8 -10
  86. package/esm/internals/hooks/useField/useFieldRootHandleKeyDown.d.ts +16 -0
  87. package/esm/internals/hooks/useField/useFieldRootHandleKeyDown.js +205 -0
  88. package/esm/internals/hooks/useField/useFieldRootProps.d.ts +32 -0
  89. package/esm/internals/hooks/useField/useFieldRootProps.js +150 -0
  90. package/esm/internals/hooks/useField/useFieldSectionContainerProps.d.ts +15 -0
  91. package/esm/internals/hooks/useField/useFieldSectionContainerProps.js +29 -0
  92. package/esm/internals/hooks/useField/useFieldSectionContentProps.d.ts +23 -0
  93. package/esm/internals/hooks/useField/useFieldSectionContentProps.js +226 -0
  94. package/esm/internals/hooks/useField/useFieldState.d.ts +23 -13
  95. package/esm/internals/hooks/useField/useFieldState.js +103 -30
  96. package/esm/internals/hooks/useField/useFieldV6TextField.d.ts +3 -3
  97. package/esm/internals/hooks/useField/useFieldV6TextField.js +202 -135
  98. package/esm/internals/hooks/useField/useFieldV7TextField.d.ts +3 -2
  99. package/esm/internals/hooks/useField/useFieldV7TextField.js +200 -367
  100. package/esm/internals/hooks/usePicker/usePicker.types.d.ts +1 -0
  101. package/esm/internals/index.d.ts +6 -5
  102. package/esm/internals/index.js +4 -3
  103. package/esm/locales/deDE.js +2 -3
  104. package/esm/managers/useDateManager.d.ts +4 -13
  105. package/esm/managers/useDateManager.js +21 -31
  106. package/esm/managers/useDateTimeManager.d.ts +4 -13
  107. package/esm/managers/useDateTimeManager.js +26 -36
  108. package/esm/managers/useTimeManager.d.ts +4 -13
  109. package/esm/managers/useTimeManager.js +17 -27
  110. package/esm/models/fields.d.ts +2 -2
  111. package/esm/models/manager.d.ts +6 -10
  112. package/esm/validation/validateDate.js +3 -4
  113. package/hooks/useSplitFieldProps.d.ts +1 -1
  114. package/index.js +1 -1
  115. package/internals/components/PickerFieldUI.d.ts +5 -5
  116. package/internals/hooks/useField/buildSectionsFromFormat.d.ts +2 -2
  117. package/internals/hooks/useField/buildSectionsFromFormat.js +9 -9
  118. package/internals/hooks/useField/index.d.ts +1 -1
  119. package/internals/hooks/useField/syncSelectionToDOM.d.ts +9 -0
  120. package/internals/hooks/useField/syncSelectionToDOM.js +56 -0
  121. package/internals/hooks/useField/useField.d.ts +2 -4
  122. package/internals/hooks/useField/useField.js +5 -231
  123. package/internals/hooks/useField/useField.types.d.ts +55 -68
  124. package/internals/hooks/useField/useField.utils.d.ts +3 -8
  125. package/internals/hooks/useField/useField.utils.js +9 -154
  126. package/internals/hooks/useField/useFieldCharacterEditing.d.ts +19 -26
  127. package/internals/hooks/useField/useFieldCharacterEditing.js +41 -59
  128. package/internals/hooks/useField/useFieldHiddenInputProps.d.ts +20 -0
  129. package/internals/hooks/useField/useFieldHiddenInputProps.js +39 -0
  130. package/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +8 -10
  131. package/internals/hooks/useField/useFieldRootHandleKeyDown.d.ts +16 -0
  132. package/internals/hooks/useField/useFieldRootHandleKeyDown.js +211 -0
  133. package/internals/hooks/useField/useFieldRootProps.d.ts +32 -0
  134. package/internals/hooks/useField/useFieldRootProps.js +156 -0
  135. package/internals/hooks/useField/useFieldSectionContainerProps.d.ts +15 -0
  136. package/internals/hooks/useField/useFieldSectionContainerProps.js +37 -0
  137. package/internals/hooks/useField/useFieldSectionContentProps.d.ts +23 -0
  138. package/internals/hooks/useField/useFieldSectionContentProps.js +234 -0
  139. package/internals/hooks/useField/useFieldState.d.ts +23 -13
  140. package/internals/hooks/useField/useFieldState.js +102 -29
  141. package/internals/hooks/useField/useFieldV6TextField.d.ts +3 -3
  142. package/internals/hooks/useField/useFieldV6TextField.js +202 -135
  143. package/internals/hooks/useField/useFieldV7TextField.d.ts +3 -2
  144. package/internals/hooks/useField/useFieldV7TextField.js +200 -367
  145. package/internals/hooks/usePicker/usePicker.types.d.ts +1 -0
  146. package/internals/index.d.ts +6 -5
  147. package/internals/index.js +25 -18
  148. package/locales/deDE.js +2 -3
  149. package/managers/useDateManager.d.ts +4 -13
  150. package/managers/useDateManager.js +21 -31
  151. package/managers/useDateTimeManager.d.ts +4 -13
  152. package/managers/useDateTimeManager.js +26 -36
  153. package/managers/useTimeManager.d.ts +4 -13
  154. package/managers/useTimeManager.js +18 -28
  155. package/models/fields.d.ts +2 -2
  156. package/models/manager.d.ts +6 -10
  157. package/modern/DateCalendar/DateCalendar.js +6 -10
  158. package/modern/DateCalendar/DayCalendar.d.ts +3 -7
  159. package/modern/DateCalendar/DayCalendar.js +18 -10
  160. package/modern/DateCalendar/index.d.ts +0 -1
  161. package/modern/DateField/useDateField.d.ts +1 -1
  162. package/modern/DateField/useDateField.js +3 -17
  163. package/modern/DatePicker/DatePicker.js +1 -0
  164. package/modern/DatePicker/shared.js +3 -9
  165. package/modern/DateTimeField/useDateTimeField.d.ts +1 -1
  166. package/modern/DateTimeField/useDateTimeField.js +3 -17
  167. package/modern/DateTimePicker/DateTimePicker.js +1 -0
  168. package/modern/DateTimePicker/shared.js +4 -14
  169. package/modern/DesktopDatePicker/DesktopDatePicker.js +1 -0
  170. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -0
  171. package/modern/DesktopTimePicker/DesktopTimePicker.js +1 -0
  172. package/modern/MobileDatePicker/MobileDatePicker.js +1 -0
  173. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +1 -0
  174. package/modern/MobileTimePicker/MobileTimePicker.js +1 -0
  175. package/modern/MonthCalendar/MonthCalendar.js +6 -11
  176. package/modern/PickersDay/PickersDay.d.ts +1 -72
  177. package/modern/PickersDay/PickersDay.js +30 -28
  178. package/modern/PickersDay/PickersDay.types.d.ts +114 -0
  179. package/modern/PickersDay/PickersDay.types.js +1 -0
  180. package/modern/PickersDay/index.d.ts +1 -1
  181. package/modern/PickersDay/usePickerDayOwnerState.d.ts +14 -0
  182. package/modern/PickersDay/usePickerDayOwnerState.js +32 -0
  183. package/modern/PickersSectionList/PickersSectionList.d.ts +1 -1
  184. package/modern/PickersSectionList/PickersSectionList.types.d.ts +2 -6
  185. package/modern/TimeField/useTimeField.d.ts +1 -1
  186. package/modern/TimeField/useTimeField.js +3 -17
  187. package/modern/TimePicker/TimePicker.js +1 -0
  188. package/modern/TimePicker/shared.js +3 -3
  189. package/modern/YearCalendar/YearCalendar.js +5 -11
  190. package/modern/hooks/useSplitFieldProps.d.ts +1 -1
  191. package/modern/index.js +1 -1
  192. package/modern/internals/components/PickerFieldUI.d.ts +5 -5
  193. package/modern/internals/hooks/useField/buildSectionsFromFormat.d.ts +2 -2
  194. package/modern/internals/hooks/useField/buildSectionsFromFormat.js +9 -9
  195. package/modern/internals/hooks/useField/index.d.ts +1 -1
  196. package/modern/internals/hooks/useField/syncSelectionToDOM.d.ts +9 -0
  197. package/modern/internals/hooks/useField/syncSelectionToDOM.js +50 -0
  198. package/modern/internals/hooks/useField/useField.d.ts +2 -4
  199. package/modern/internals/hooks/useField/useField.js +5 -229
  200. package/modern/internals/hooks/useField/useField.types.d.ts +55 -68
  201. package/modern/internals/hooks/useField/useField.utils.d.ts +3 -8
  202. package/modern/internals/hooks/useField/useField.utils.js +7 -149
  203. package/modern/internals/hooks/useField/useFieldCharacterEditing.d.ts +19 -26
  204. package/modern/internals/hooks/useField/useFieldCharacterEditing.js +42 -60
  205. package/modern/internals/hooks/useField/useFieldHiddenInputProps.d.ts +20 -0
  206. package/modern/internals/hooks/useField/useFieldHiddenInputProps.js +31 -0
  207. package/modern/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +8 -10
  208. package/modern/internals/hooks/useField/useFieldRootHandleKeyDown.d.ts +16 -0
  209. package/modern/internals/hooks/useField/useFieldRootHandleKeyDown.js +205 -0
  210. package/modern/internals/hooks/useField/useFieldRootProps.d.ts +32 -0
  211. package/modern/internals/hooks/useField/useFieldRootProps.js +150 -0
  212. package/modern/internals/hooks/useField/useFieldSectionContainerProps.d.ts +15 -0
  213. package/modern/internals/hooks/useField/useFieldSectionContainerProps.js +29 -0
  214. package/modern/internals/hooks/useField/useFieldSectionContentProps.d.ts +23 -0
  215. package/modern/internals/hooks/useField/useFieldSectionContentProps.js +226 -0
  216. package/modern/internals/hooks/useField/useFieldState.d.ts +23 -13
  217. package/modern/internals/hooks/useField/useFieldState.js +103 -30
  218. package/modern/internals/hooks/useField/useFieldV6TextField.d.ts +3 -3
  219. package/modern/internals/hooks/useField/useFieldV6TextField.js +202 -135
  220. package/modern/internals/hooks/useField/useFieldV7TextField.d.ts +3 -2
  221. package/modern/internals/hooks/useField/useFieldV7TextField.js +200 -367
  222. package/modern/internals/hooks/usePicker/usePicker.types.d.ts +1 -0
  223. package/modern/internals/index.d.ts +6 -5
  224. package/modern/internals/index.js +4 -3
  225. package/modern/locales/deDE.js +2 -3
  226. package/modern/managers/useDateManager.d.ts +4 -13
  227. package/modern/managers/useDateManager.js +21 -31
  228. package/modern/managers/useDateTimeManager.d.ts +4 -13
  229. package/modern/managers/useDateTimeManager.js +26 -36
  230. package/modern/managers/useTimeManager.d.ts +4 -13
  231. package/modern/managers/useTimeManager.js +17 -27
  232. package/modern/models/fields.d.ts +2 -2
  233. package/modern/models/manager.d.ts +6 -10
  234. package/modern/validation/validateDate.js +3 -4
  235. package/package.json +2 -2
  236. package/tsconfig.build.tsbuildinfo +1 -1
  237. package/validation/validateDate.js +3 -4
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import { PickersSectionListProps } from "./PickersSectionList.types.js";
2
+ import type { PickersSectionListProps } from './PickersSectionList.types';
3
3
  export declare const PickersSectionListRoot: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React.ClassAttributes<HTMLDivElement> | keyof React.HTMLAttributes<HTMLDivElement>>, {}>;
4
4
  export declare const PickersSectionListSection: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, keyof React.ClassAttributes<HTMLSpanElement> | keyof React.HTMLAttributes<HTMLSpanElement>>, {}>;
5
5
  export declare const PickersSectionListSectionSeparator: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, keyof React.ClassAttributes<HTMLSpanElement> | keyof React.HTMLAttributes<HTMLSpanElement>>, {}>;
@@ -2,6 +2,7 @@ import * as React from 'react';
2
2
  import { SlotComponentProps } from '@mui/utils';
3
3
  import { PickersSectionListClasses } from "./pickersSectionListClasses.js";
4
4
  import { PickerOwnerState } from "../models/index.js";
5
+ import type { UseFieldDOMGetters } from '../internals/hooks/useField/useField.types';
5
6
  export interface PickersSectionListSlots {
6
7
  root: React.ElementType;
7
8
  section: React.ElementType;
@@ -28,12 +29,7 @@ export interface PickersSectionElement {
28
29
  before: React.HTMLAttributes<HTMLSpanElement>;
29
30
  after: React.HTMLAttributes<HTMLSpanElement>;
30
31
  }
31
- export interface PickersSectionListRef {
32
- getRoot: () => HTMLElement;
33
- getSectionContainer: (sectionIndex: number) => HTMLElement;
34
- getSectionContent: (sectionIndex: number) => HTMLElement;
35
- getSectionIndexFromDOMElement: (element: Element | null | undefined) => number | null;
36
- }
32
+ export interface PickersSectionListRef extends Omit<UseFieldDOMGetters, 'isReady'> {}
37
33
  export interface ExportedPickersSectionListProps extends Pick<React.HTMLAttributes<HTMLDivElement>, 'tabIndex'> {
38
34
  /**
39
35
  * The elements to render.
@@ -1,2 +1,2 @@
1
1
  import { UseTimeFieldProps } from "./TimeField.types.js";
2
- export declare const useTimeField: <TEnableAccessibleFieldDOMStructure extends boolean, TAllProps extends UseTimeFieldProps<TEnableAccessibleFieldDOMStructure>>(props: TAllProps) => import("../internals").UseFieldResponse<TEnableAccessibleFieldDOMStructure, Omit<TAllProps, "disabled" | "readOnly" | "value" | "defaultValue" | "autoFocus" | "onChange" | "onError" | "format" | "focused" | keyof import("../internals").BaseTimeValidationProps | keyof import("../internals").TimeValidationProps | "ampm" | "referenceDate" | "formatDensity" | "timezone" | "shouldRespectLeadingZeros" | "selectedSections" | "onSelectedSectionsChange" | "unstableFieldRef" | "unstableStartFieldRef" | "unstableEndFieldRef" | "enableAccessibleFieldDOMStructure" | "dateSeparator">>;
2
+ export declare const useTimeField: <TEnableAccessibleFieldDOMStructure extends boolean, TProps extends UseTimeFieldProps<TEnableAccessibleFieldDOMStructure>>(props: TProps) => import("../internals").UseFieldReturnValue<TEnableAccessibleFieldDOMStructure, TProps>;
@@ -1,25 +1,11 @@
1
1
  'use client';
2
2
 
3
- import { useField, useFieldInternalPropsWithDefaults } from "../internals/hooks/useField/index.js";
4
- import { useSplitFieldProps } from "../hooks/index.js";
3
+ import { useField } from "../internals/hooks/useField/index.js";
5
4
  import { useTimeManager } from "../managers/index.js";
6
5
  export const useTimeField = props => {
7
6
  const manager = useTimeManager(props);
8
- const {
9
- forwardedProps,
10
- internalProps
11
- } = useSplitFieldProps(props, 'time');
12
- const internalPropsWithDefaults = useFieldInternalPropsWithDefaults({
13
- manager,
14
- internalProps
15
- });
16
7
  return useField({
17
- forwardedProps,
18
- internalProps: internalPropsWithDefaults,
19
- valueManager: manager.internal_valueManager,
20
- fieldValueManager: manager.internal_fieldValueManager,
21
- validator: manager.validator,
22
- valueType: manager.valueType,
23
- getOpenPickerButtonAriaLabel: manager.internal_useOpenPickerButtonAriaLabel()
8
+ manager,
9
+ props
24
10
  });
25
11
  };
@@ -102,6 +102,7 @@ process.env.NODE_ENV !== "production" ? TimePicker.propTypes = {
102
102
  disableIgnoringDatePartForTimeValidation: PropTypes.bool,
103
103
  /**
104
104
  * If `true`, the button to open the Picker will not be rendered (it will only render the field).
105
+ * @deprecated Use the [field component](https://next.mui.com/x/react-date-pickers/fields/) instead.
105
106
  * @default false
106
107
  */
107
108
  disableOpenPicker: PropTypes.bool,
@@ -4,12 +4,14 @@ import { useThemeProps } from '@mui/material/styles';
4
4
  import { useUtils } from "../internals/hooks/useUtils.js";
5
5
  import { TimePickerToolbar } from "./TimePickerToolbar.js";
6
6
  import { applyDefaultViewProps } from "../internals/utils/views.js";
7
+ import { useApplyDefaultValuesToTimeValidationProps } from "../managers/useTimeManager.js";
7
8
  export function useTimePickerDefaultizedProps(props, name) {
8
9
  const utils = useUtils();
9
10
  const themeProps = useThemeProps({
10
11
  props,
11
12
  name
12
13
  });
14
+ const validationProps = useApplyDefaultValuesToTimeValidationProps(themeProps);
13
15
  const ampm = themeProps.ampm ?? utils.is12HourCycleInCurrentLocale();
14
16
  const localeText = React.useMemo(() => {
15
17
  if (themeProps.localeText?.toolbarTitle == null) {
@@ -19,7 +21,7 @@ export function useTimePickerDefaultizedProps(props, name) {
19
21
  timePickerToolbarTitle: themeProps.localeText.toolbarTitle
20
22
  });
21
23
  }, [themeProps.localeText]);
22
- return _extends({}, themeProps, {
24
+ return _extends({}, themeProps, validationProps, {
23
25
  ampm,
24
26
  localeText
25
27
  }, applyDefaultViewProps({
@@ -28,8 +30,6 @@ export function useTimePickerDefaultizedProps(props, name) {
28
30
  defaultViews: ['hours', 'minutes'],
29
31
  defaultOpenTo: 'hours'
30
32
  }), {
31
- disableFuture: themeProps.disableFuture ?? false,
32
- disablePast: themeProps.disablePast ?? false,
33
33
  slots: _extends({
34
34
  toolbar: TimePickerToolbar
35
35
  }, themeProps.slots),
@@ -11,14 +11,14 @@ import { shouldForwardProp } from '@mui/system/createStyled';
11
11
  import { styled, useThemeProps } from '@mui/material/styles';
12
12
  import { unstable_useForkRef as useForkRef, unstable_composeClasses as composeClasses, unstable_useControlled as useControlled, unstable_useEventCallback as useEventCallback } from '@mui/utils';
13
13
  import { YearCalendarButton } from "./YearCalendarButton.js";
14
- import { useUtils, useNow, useDefaultDates } from "../internals/hooks/useUtils.js";
14
+ import { useUtils, useNow } from "../internals/hooks/useUtils.js";
15
15
  import { getYearCalendarUtilityClass } from "./yearCalendarClasses.js";
16
- import { applyDefaultDate } from "../internals/utils/date-utils.js";
17
16
  import { singleItemValueManager } from "../internals/utils/valueManagers.js";
18
17
  import { SECTION_TYPE_GRANULARITY } from "../internals/utils/getDefaultReferenceDate.js";
19
18
  import { useControlledValue } from "../internals/hooks/useControlledValue.js";
20
19
  import { DIALOG_WIDTH, MAX_CALENDAR_HEIGHT } from "../internals/constants/dimensions.js";
21
20
  import { usePickerPrivateContext } from "../internals/hooks/usePickerPrivateContext.js";
21
+ import { useApplyDefaultValuesToDateValidationProps } from "../managers/useDateManager.js";
22
22
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
23
23
  const useUtilityClasses = classes => {
24
24
  const slots = {
@@ -27,20 +27,14 @@ const useUtilityClasses = classes => {
27
27
  return composeClasses(slots, getYearCalendarUtilityClass, classes);
28
28
  };
29
29
  function useYearCalendarDefaultizedProps(props, name) {
30
- const utils = useUtils();
31
- const defaultDates = useDefaultDates();
32
30
  const themeProps = useThemeProps({
33
31
  props,
34
32
  name
35
33
  });
36
- return _extends({
37
- disablePast: false,
38
- disableFuture: false
39
- }, themeProps, {
34
+ const validationProps = useApplyDefaultValuesToDateValidationProps(themeProps);
35
+ return _extends({}, themeProps, validationProps, {
40
36
  yearsPerRow: themeProps.yearsPerRow ?? 3,
41
- yearsOrder: themeProps.yearsOrder ?? 'asc',
42
- minDate: applyDefaultDate(utils, themeProps.minDate, defaultDates.minDate),
43
- maxDate: applyDefaultDate(utils, themeProps.maxDate, defaultDates.maxDate)
37
+ yearsOrder: themeProps.yearsOrder ?? 'asc'
44
38
  });
45
39
  }
46
40
  const YearCalendarRoot = styled('div', {
@@ -1,7 +1,7 @@
1
1
  import { DATE_TIME_VALIDATION_PROP_NAMES, DATE_VALIDATION_PROP_NAMES, TIME_VALIDATION_PROP_NAMES } from "../validation/extractValidationProps.js";
2
2
  import { PickerValueType } from "../models/common.js";
3
3
  declare const SHARED_FIELD_INTERNAL_PROP_NAMES: readonly ["value", "defaultValue", "referenceDate", "format", "formatDensity", "onChange", "timezone", "onError", "shouldRespectLeadingZeros", "selectedSections", "onSelectedSectionsChange", "unstableFieldRef", "unstableStartFieldRef", "unstableEndFieldRef", "enableAccessibleFieldDOMStructure", "disabled", "readOnly", "dateSeparator", "autoFocus", "focused"];
4
- type InternalPropNames<TValueType extends PickerValueType> = (typeof SHARED_FIELD_INTERNAL_PROP_NAMES)[number] | (TValueType extends 'date' | 'date-time' ? (typeof DATE_VALIDATION_PROP_NAMES)[number] : never) | (TValueType extends 'time' | 'date-time' ? (typeof TIME_VALIDATION_PROP_NAMES)[number] : never) | (TValueType extends 'date-time' ? (typeof DATE_TIME_VALIDATION_PROP_NAMES)[number] : never);
4
+ export type InternalPropNames<TValueType extends PickerValueType> = (typeof SHARED_FIELD_INTERNAL_PROP_NAMES)[number] | (TValueType extends 'date' | 'date-time' ? (typeof DATE_VALIDATION_PROP_NAMES)[number] : never) | (TValueType extends 'time' | 'date-time' ? (typeof TIME_VALIDATION_PROP_NAMES)[number] : never) | (TValueType extends 'date-time' ? (typeof DATE_TIME_VALIDATION_PROP_NAMES)[number] : never);
5
5
  /**
6
6
  * Split the props received by the field component into:
7
7
  * - `internalProps` which are used by the various hooks called by the field component.
package/modern/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-date-pickers v8.0.0-beta.0
2
+ * @mui/x-date-pickers v8.0.0-beta.2
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -6,9 +6,9 @@ import { SvgIconProps } from '@mui/material/SvgIcon';
6
6
  import { MakeOptional, SlotComponentPropsFromProps } from '@mui/x-internals/types';
7
7
  import { FieldOwnerState } from "../../models/index.js";
8
8
  import { UseFieldOwnerStateParameters } from "../hooks/useFieldOwnerState.js";
9
- import type { UseFieldResponse } from '../hooks/useField';
9
+ import type { UseFieldReturnValue, UseFieldProps } from '../hooks/useField';
10
10
  import { PickersTextFieldProps } from "../../PickersTextField/index.js";
11
- export declare const cleanFieldResponse: <TFieldResponse extends MakeOptional<UseFieldResponse<any, ExportedPickerFieldUIProps & {
11
+ export declare const cleanFieldResponse: <TFieldResponse extends MakeOptional<UseFieldReturnValue<any, ExportedPickerFieldUIProps & {
12
12
  [key: string]: any;
13
13
  }>, "onClear" | "clearable">>({
14
14
  enableAccessibleFieldDOMStructure,
@@ -22,7 +22,7 @@ export declare const PickerFieldUIContext: React.Context<PickerFieldUIContextVal
22
22
  * Adds the button to open the Picker and the button to clear the value of the field.
23
23
  * @ignore - internal component.
24
24
  */
25
- export declare function PickerFieldUI(props: PickerFieldUIProps): React.JSX.Element;
25
+ export declare function PickerFieldUI<TEnableAccessibleFieldDOMStructure extends boolean, TProps extends UseFieldProps<TEnableAccessibleFieldDOMStructure>>(props: PickerFieldUIProps<TEnableAccessibleFieldDOMStructure, TProps>): React.JSX.Element;
26
26
  export interface ExportedPickerFieldUIProps {
27
27
  /**
28
28
  * If `true`, a clear button will be shown in the field allowing value clearing.
@@ -46,7 +46,7 @@ export interface ExportedPickerFieldUIProps {
46
46
  */
47
47
  openPickerButtonPosition?: 'start' | 'end';
48
48
  }
49
- export interface PickerFieldUIProps {
49
+ export interface PickerFieldUIProps<TEnableAccessibleFieldDOMStructure extends boolean, TProps extends UseFieldProps<TEnableAccessibleFieldDOMStructure>> {
50
50
  /**
51
51
  * Overridable component slots.
52
52
  * @default {}
@@ -60,7 +60,7 @@ export interface PickerFieldUIProps {
60
60
  /**
61
61
  * Object returned by the `useField` hook or one of its wrapper (for example `useDateField`).
62
62
  */
63
- fieldResponse: UseFieldResponse<any, any>;
63
+ fieldResponse: UseFieldReturnValue<TEnableAccessibleFieldDOMStructure, TProps>;
64
64
  /**
65
65
  * The component to use to render the Picker opening icon if none is provided in the Picker's slots.
66
66
  */
@@ -1,6 +1,6 @@
1
1
  import { FieldSection, MuiPickersAdapter, PickerValidDate } from "../../../models/index.js";
2
2
  import { PickersLocaleText } from "../../../locales/index.js";
3
- interface BuildSectionsFromFormatParams {
3
+ interface BuildSectionsFromFormatParameters {
4
4
  utils: MuiPickersAdapter;
5
5
  format: string;
6
6
  formatDensity: 'dense' | 'spacious';
@@ -11,5 +11,5 @@ interface BuildSectionsFromFormatParams {
11
11
  date: PickerValidDate | null;
12
12
  enableAccessibleFieldDOMStructure: boolean;
13
13
  }
14
- export declare const buildSectionsFromFormat: (params: BuildSectionsFromFormatParams) => FieldSection[];
14
+ export declare const buildSectionsFromFormat: (parameters: BuildSectionsFromFormatParameters) => FieldSection[];
15
15
  export {};
@@ -141,12 +141,12 @@ const createSection = ({
141
141
  modified: false
142
142
  });
143
143
  };
144
- const buildSections = params => {
144
+ const buildSections = parameters => {
145
145
  const {
146
146
  utils,
147
147
  expandedFormat,
148
148
  escapedParts
149
- } = params;
149
+ } = parameters;
150
150
  const now = utils.date(undefined);
151
151
  const sections = [];
152
152
  let startSeparator = '';
@@ -171,7 +171,7 @@ const buildSections = params => {
171
171
  while (word.length > 0) {
172
172
  const firstWord = regExpFirstTokenInWord.exec(word)[1];
173
173
  word = word.slice(firstWord.length);
174
- sections.push(createSection(_extends({}, params, {
174
+ sections.push(createSection(_extends({}, parameters, {
175
175
  now,
176
176
  token: firstWord,
177
177
  startSeparator
@@ -236,19 +236,19 @@ const postProcessSections = ({
236
236
  return section;
237
237
  });
238
238
  };
239
- export const buildSectionsFromFormat = params => {
240
- let expandedFormat = expandFormat(params);
241
- if (params.isRtl && params.enableAccessibleFieldDOMStructure) {
239
+ export const buildSectionsFromFormat = parameters => {
240
+ let expandedFormat = expandFormat(parameters);
241
+ if (parameters.isRtl && parameters.enableAccessibleFieldDOMStructure) {
242
242
  expandedFormat = expandedFormat.split(' ').reverse().join(' ');
243
243
  }
244
- const escapedParts = getEscapedPartsFromFormat(_extends({}, params, {
244
+ const escapedParts = getEscapedPartsFromFormat(_extends({}, parameters, {
245
245
  expandedFormat
246
246
  }));
247
- const sections = buildSections(_extends({}, params, {
247
+ const sections = buildSections(_extends({}, parameters, {
248
248
  expandedFormat,
249
249
  escapedParts
250
250
  }));
251
- return postProcessSections(_extends({}, params, {
251
+ return postProcessSections(_extends({}, parameters, {
252
252
  sections
253
253
  }));
254
254
  };
@@ -1,4 +1,4 @@
1
1
  export { useField } from "./useField.js";
2
- export type { FieldValueManager, UseFieldInternalProps, UseFieldParams, UseFieldResponse, FieldChangeHandler, FieldChangeHandlerContext } from './useField.types';
2
+ export type { UseFieldInternalProps, UseFieldParameters, UseFieldReturnValue, UseFieldProps, FieldValueManager, FieldChangeHandler, FieldChangeHandlerContext } from './useField.types';
3
3
  export { createDateStrForV7HiddenInputFromSections, createDateStrForV6InputFromSections } from "./useField.utils.js";
4
4
  export { useFieldInternalPropsWithDefaults } from "./useFieldInternalPropsWithDefaults.js";
@@ -0,0 +1,9 @@
1
+ import { PickerValidValue } from "../../models/index.js";
2
+ import { UseFieldDOMGetters } from "./useField.types.js";
3
+ import { UseFieldStateReturnValue } from "./useFieldState.js";
4
+ export declare function syncSelectionToDOM<TValue extends PickerValidValue>(parameters: SyncSelectionToDOMParameters<TValue>): void;
5
+ export interface SyncSelectionToDOMParameters<TValue extends PickerValidValue> {
6
+ domGetters: UseFieldDOMGetters;
7
+ stateResponse: UseFieldStateReturnValue<TValue>;
8
+ focused: boolean;
9
+ }
@@ -0,0 +1,50 @@
1
+ import { getActiveElement } from "../../utils/utils.js";
2
+ export function syncSelectionToDOM(parameters) {
3
+ const {
4
+ focused,
5
+ domGetters,
6
+ stateResponse: {
7
+ // States and derived states
8
+ parsedSelectedSections,
9
+ state
10
+ }
11
+ } = parameters;
12
+ if (!domGetters.isReady()) {
13
+ return;
14
+ }
15
+ const selection = document.getSelection();
16
+ if (!selection) {
17
+ return;
18
+ }
19
+ if (parsedSelectedSections == null) {
20
+ // If the selection contains an element inside the field, we reset it.
21
+ if (selection.rangeCount > 0 && domGetters.getRoot().contains(selection.getRangeAt(0).startContainer)) {
22
+ selection.removeAllRanges();
23
+ }
24
+ if (focused) {
25
+ domGetters.getRoot().blur();
26
+ }
27
+ return;
28
+ }
29
+
30
+ // On multi input range pickers we want to update selection range only for the active input
31
+ if (!domGetters.getRoot().contains(getActiveElement(document))) {
32
+ return;
33
+ }
34
+ const range = new window.Range();
35
+ let target;
36
+ if (parsedSelectedSections === 'all') {
37
+ target = domGetters.getRoot();
38
+ } else {
39
+ const section = state.sections[parsedSelectedSections];
40
+ if (section.type === 'empty') {
41
+ target = domGetters.getSectionContainer(parsedSelectedSections);
42
+ } else {
43
+ target = domGetters.getSectionContent(parsedSelectedSections);
44
+ }
45
+ }
46
+ range.selectNodeContents(target);
47
+ target.focus();
48
+ selection.removeAllRanges();
49
+ selection.addRange(range);
50
+ }
@@ -1,5 +1,3 @@
1
- import { UseFieldParams, UseFieldResponse, UseFieldCommonForwardedProps, UseFieldInternalProps, UseFieldForwardedProps } from "./useField.types.js";
1
+ import { UseFieldParameters, UseFieldReturnValue, UseFieldProps } from "./useField.types.js";
2
2
  import { PickerValidValue } from "../../models/index.js";
3
- export declare const useField: <TValue extends PickerValidValue, TEnableAccessibleFieldDOMStructure extends boolean, TForwardedProps extends UseFieldCommonForwardedProps & UseFieldForwardedProps<TEnableAccessibleFieldDOMStructure>, TInternalProps extends UseFieldInternalProps<TValue, TEnableAccessibleFieldDOMStructure, any> & {
4
- minutesStep?: number;
5
- }>(params: UseFieldParams<TValue, TEnableAccessibleFieldDOMStructure, TForwardedProps, TInternalProps>) => UseFieldResponse<TEnableAccessibleFieldDOMStructure, TForwardedProps>;
3
+ export declare const useField: <TValue extends PickerValidValue, TEnableAccessibleFieldDOMStructure extends boolean, TError, TValidationProps extends {}, TProps extends UseFieldProps<TEnableAccessibleFieldDOMStructure>>(parameters: UseFieldParameters<TValue, TEnableAccessibleFieldDOMStructure, TError, TValidationProps, TProps>) => UseFieldReturnValue<TEnableAccessibleFieldDOMStructure, TProps>;
@@ -1,233 +1,9 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
- import * as React from 'react';
3
- import useEnhancedEffect from '@mui/utils/useEnhancedEffect';
4
- import useEventCallback from '@mui/utils/useEventCallback';
5
- import { useRtl } from '@mui/system/RtlProvider';
6
- import { useValidation } from "../../../validation/index.js";
7
- import { useUtils } from "../useUtils.js";
8
- import { adjustSectionValue, getSectionOrder } from "./useField.utils.js";
9
- import { useFieldState } from "./useFieldState.js";
10
- import { useFieldCharacterEditing } from "./useFieldCharacterEditing.js";
11
1
  import { useFieldV7TextField } from "./useFieldV7TextField.js";
12
2
  import { useFieldV6TextField } from "./useFieldV6TextField.js";
13
- export const useField = params => {
14
- const utils = useUtils();
15
- const {
16
- internalProps,
17
- internalProps: {
18
- unstableFieldRef,
19
- minutesStep,
20
- enableAccessibleFieldDOMStructure = true,
21
- disabled = false,
22
- readOnly = false,
23
- autoFocus = false
24
- },
25
- forwardedProps: {
26
- onKeyDown,
27
- error,
28
- clearable,
29
- onClear
30
- },
31
- fieldValueManager,
32
- validator,
33
- getOpenPickerButtonAriaLabel: getOpenDialogAriaText
34
- } = params;
35
- const isRtl = useRtl();
36
- const stateResponse = useFieldState(params);
37
- const {
38
- state,
39
- value,
40
- activeSectionIndex,
41
- parsedSelectedSections,
42
- setSelectedSections,
43
- clearValue,
44
- clearActiveSection,
45
- updateSectionValue,
46
- setTempAndroidValueStr,
47
- sectionsValueBoundaries,
48
- localizedDigits,
49
- timezone
50
- } = stateResponse;
51
- const characterEditingResponse = useFieldCharacterEditing({
52
- sections: state.sections,
53
- updateSectionValue,
54
- sectionsValueBoundaries,
55
- localizedDigits,
56
- setTempAndroidValueStr,
57
- timezone
58
- });
59
- const {
60
- resetCharacterQuery
61
- } = characterEditingResponse;
62
- const areAllSectionsEmpty = React.useMemo(() => state.sections.every(section => section.value === ''), [state.sections]);
3
+ import { useNullableFieldPrivateContext } from "../useNullableFieldPrivateContext.js";
4
+ export const useField = parameters => {
5
+ const fieldPrivateContext = useNullableFieldPrivateContext();
6
+ const enableAccessibleFieldDOMStructure = parameters.props.enableAccessibleFieldDOMStructure ?? fieldPrivateContext?.enableAccessibleFieldDOMStructure ?? true;
63
7
  const useFieldTextField = enableAccessibleFieldDOMStructure ? useFieldV7TextField : useFieldV6TextField;
64
- const sectionOrder = React.useMemo(() => getSectionOrder(state.sections, isRtl && !enableAccessibleFieldDOMStructure), [state.sections, isRtl, enableAccessibleFieldDOMStructure]);
65
- const {
66
- returnedValue,
67
- interactions
68
- } = useFieldTextField(_extends({}, params, stateResponse, characterEditingResponse, {
69
- areAllSectionsEmpty,
70
- sectionOrder
71
- }));
72
- const handleContainerKeyDown = useEventCallback(event => {
73
- onKeyDown?.(event);
74
- if (disabled) {
75
- return;
76
- }
77
- // eslint-disable-next-line default-case
78
- switch (true) {
79
- // Select all
80
- case (event.ctrlKey || event.metaKey) && String.fromCharCode(event.keyCode) === 'A' && !event.shiftKey && !event.altKey:
81
- {
82
- // prevent default to make sure that the next line "select all" while updating
83
- // the internal state at the same time.
84
- event.preventDefault();
85
- setSelectedSections('all');
86
- break;
87
- }
88
-
89
- // Move selection to next section
90
- case event.key === 'ArrowRight':
91
- {
92
- event.preventDefault();
93
- if (parsedSelectedSections == null) {
94
- setSelectedSections(sectionOrder.startIndex);
95
- } else if (parsedSelectedSections === 'all') {
96
- setSelectedSections(sectionOrder.endIndex);
97
- } else {
98
- const nextSectionIndex = sectionOrder.neighbors[parsedSelectedSections].rightIndex;
99
- if (nextSectionIndex !== null) {
100
- setSelectedSections(nextSectionIndex);
101
- }
102
- }
103
- break;
104
- }
105
-
106
- // Move selection to previous section
107
- case event.key === 'ArrowLeft':
108
- {
109
- event.preventDefault();
110
- if (parsedSelectedSections == null) {
111
- setSelectedSections(sectionOrder.endIndex);
112
- } else if (parsedSelectedSections === 'all') {
113
- setSelectedSections(sectionOrder.startIndex);
114
- } else {
115
- const nextSectionIndex = sectionOrder.neighbors[parsedSelectedSections].leftIndex;
116
- if (nextSectionIndex !== null) {
117
- setSelectedSections(nextSectionIndex);
118
- }
119
- }
120
- break;
121
- }
122
-
123
- // Reset the value of the selected section
124
- case event.key === 'Delete':
125
- {
126
- event.preventDefault();
127
- if (readOnly) {
128
- break;
129
- }
130
- if (parsedSelectedSections == null || parsedSelectedSections === 'all') {
131
- clearValue();
132
- } else {
133
- clearActiveSection();
134
- }
135
- resetCharacterQuery();
136
- break;
137
- }
138
-
139
- // Increment / decrement the selected section value
140
- case ['ArrowUp', 'ArrowDown', 'Home', 'End', 'PageUp', 'PageDown'].includes(event.key):
141
- {
142
- event.preventDefault();
143
- if (readOnly || activeSectionIndex == null) {
144
- break;
145
- }
146
-
147
- // if all sections are selected, mark the currently editing one as selected
148
- if (parsedSelectedSections === 'all') {
149
- setSelectedSections(activeSectionIndex);
150
- }
151
- const activeSection = state.sections[activeSectionIndex];
152
- const newSectionValue = adjustSectionValue(utils, timezone, activeSection, event.key, sectionsValueBoundaries, localizedDigits, fieldValueManager.getDateFromSection(value, activeSection), {
153
- minutesStep
154
- });
155
- updateSectionValue({
156
- section: activeSection,
157
- newSectionValue,
158
- shouldGoToNextSection: false
159
- });
160
- break;
161
- }
162
- }
163
- });
164
- useEnhancedEffect(() => {
165
- interactions.syncSelectionToDOM();
166
- });
167
- const {
168
- hasValidationError
169
- } = useValidation({
170
- props: internalProps,
171
- validator,
172
- timezone,
173
- value,
174
- onError: internalProps.onError
175
- });
176
- const inputError = React.useMemo(() => {
177
- // only override when `error` is undefined.
178
- // in case of multi input fields, the `error` value is provided externally and will always be defined.
179
- if (error !== undefined) {
180
- return error;
181
- }
182
- return hasValidationError;
183
- }, [hasValidationError, error]);
184
- React.useEffect(() => {
185
- if (!inputError && activeSectionIndex == null) {
186
- resetCharacterQuery();
187
- }
188
- }, [state.referenceValue, activeSectionIndex, inputError]); // eslint-disable-line react-hooks/exhaustive-deps
189
-
190
- // If `tempValueStrAndroid` is still defined for some section when running `useEffect`,
191
- // Then `onChange` has only been called once, which means the user pressed `Backspace` to reset the section.
192
- // This causes a small flickering on Android,
193
- // But we can't use `useEnhancedEffect` which is always called before the second `onChange` call and then would cause false positives.
194
- React.useEffect(() => {
195
- if (state.tempValueStrAndroid != null && activeSectionIndex != null) {
196
- resetCharacterQuery();
197
- clearActiveSection();
198
- }
199
- }, [state.sections]); // eslint-disable-line react-hooks/exhaustive-deps
200
-
201
- React.useImperativeHandle(unstableFieldRef, () => ({
202
- getSections: () => state.sections,
203
- getActiveSectionIndex: interactions.getActiveSectionIndexFromDOM,
204
- setSelectedSections: interactions.setSelectedSections,
205
- focusField: interactions.focusField,
206
- isFieldFocused: interactions.isFieldFocused
207
- }));
208
- const handleClearValue = useEventCallback((event, ...args) => {
209
- event.preventDefault();
210
- onClear?.(event, ...args);
211
- clearValue();
212
- if (!interactions.isFieldFocused()) {
213
- // setSelectedSections is called internally
214
- interactions.focusField(0);
215
- } else {
216
- setSelectedSections(sectionOrder.startIndex);
217
- }
218
- });
219
- const commonForwardedProps = {
220
- onKeyDown: handleContainerKeyDown,
221
- onClear: handleClearValue,
222
- error: inputError,
223
- clearable: Boolean(clearable && !areAllSectionsEmpty && !readOnly && !disabled)
224
- };
225
- const openPickerAriaLabel = React.useMemo(() => getOpenDialogAriaText(value), [getOpenDialogAriaText, value]);
226
- const commonAdditionalProps = {
227
- disabled,
228
- readOnly,
229
- autoFocus,
230
- openPickerAriaLabel
231
- };
232
- return _extends({}, params.forwardedProps, commonForwardedProps, commonAdditionalProps, returnedValue);
8
+ return useFieldTextField(parameters);
233
9
  };