@mui/x-date-pickers 9.0.0-alpha.4 → 9.0.0

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 (300) hide show
  1. package/AdapterDateFnsBase/AdapterDateFnsBase.mjs +1 -1
  2. package/AdapterDayjs/AdapterDayjs.mjs +1 -1
  3. package/AdapterLuxon/AdapterLuxon.mjs +1 -1
  4. package/AdapterMoment/AdapterMoment.mjs +1 -1
  5. package/AdapterMomentHijri/AdapterMomentHijri.mjs +1 -1
  6. package/AdapterMomentJalaali/AdapterMomentJalaali.mjs +1 -1
  7. package/CHANGELOG.md +374 -2
  8. package/DateCalendar/DateCalendar.js +1 -1
  9. package/DateCalendar/DateCalendar.mjs +1 -1
  10. package/DateCalendar/DayCalendar.d.mts +7 -7
  11. package/DateCalendar/DayCalendar.d.ts +7 -7
  12. package/DateCalendar/DayCalendar.js +23 -25
  13. package/DateCalendar/DayCalendar.mjs +23 -25
  14. package/DateField/DateField.d.mts +1 -1
  15. package/DateField/DateField.d.ts +1 -1
  16. package/DateField/DateField.js +22 -28
  17. package/DateField/DateField.mjs +22 -28
  18. package/DateField/DateField.types.d.mts +3 -3
  19. package/DateField/DateField.types.d.ts +3 -3
  20. package/DateField/useDateField.d.mts +1 -1
  21. package/DateField/useDateField.d.ts +1 -1
  22. package/DateField/useDateField.js +1 -1
  23. package/DateField/useDateField.mjs +1 -1
  24. package/DatePicker/DatePicker.d.mts +1 -1
  25. package/DatePicker/DatePicker.d.ts +1 -1
  26. package/DatePicker/DatePicker.js +1 -5
  27. package/DatePicker/DatePicker.mjs +1 -5
  28. package/DatePicker/DatePicker.types.d.mts +3 -3
  29. package/DatePicker/DatePicker.types.d.ts +3 -3
  30. package/DateTimeField/DateTimeField.d.mts +1 -1
  31. package/DateTimeField/DateTimeField.d.ts +1 -1
  32. package/DateTimeField/DateTimeField.js +22 -28
  33. package/DateTimeField/DateTimeField.mjs +22 -28
  34. package/DateTimeField/DateTimeField.types.d.mts +2 -2
  35. package/DateTimeField/DateTimeField.types.d.ts +2 -2
  36. package/DateTimeField/useDateTimeField.d.mts +1 -1
  37. package/DateTimeField/useDateTimeField.d.ts +1 -1
  38. package/DateTimeField/useDateTimeField.js +1 -1
  39. package/DateTimeField/useDateTimeField.mjs +1 -1
  40. package/DateTimePicker/DateTimePicker.d.mts +1 -1
  41. package/DateTimePicker/DateTimePicker.d.ts +1 -1
  42. package/DateTimePicker/DateTimePicker.js +1 -5
  43. package/DateTimePicker/DateTimePicker.mjs +1 -5
  44. package/DateTimePicker/DateTimePicker.types.d.mts +3 -3
  45. package/DateTimePicker/DateTimePicker.types.d.ts +3 -3
  46. package/DesktopDatePicker/DesktopDatePicker.d.mts +1 -1
  47. package/DesktopDatePicker/DesktopDatePicker.d.ts +1 -1
  48. package/DesktopDatePicker/DesktopDatePicker.js +1 -5
  49. package/DesktopDatePicker/DesktopDatePicker.mjs +1 -5
  50. package/DesktopDatePicker/DesktopDatePicker.types.d.mts +3 -3
  51. package/DesktopDatePicker/DesktopDatePicker.types.d.ts +3 -3
  52. package/DesktopDateTimePicker/DesktopDateTimePicker.d.mts +1 -1
  53. package/DesktopDateTimePicker/DesktopDateTimePicker.d.ts +1 -1
  54. package/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -5
  55. package/DesktopDateTimePicker/DesktopDateTimePicker.mjs +1 -5
  56. package/DesktopDateTimePicker/DesktopDateTimePicker.types.d.mts +3 -3
  57. package/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +3 -3
  58. package/DesktopTimePicker/DesktopTimePicker.d.mts +1 -1
  59. package/DesktopTimePicker/DesktopTimePicker.d.ts +1 -1
  60. package/DesktopTimePicker/DesktopTimePicker.js +0 -4
  61. package/DesktopTimePicker/DesktopTimePicker.mjs +0 -4
  62. package/DesktopTimePicker/DesktopTimePicker.types.d.mts +3 -3
  63. package/DesktopTimePicker/DesktopTimePicker.types.d.ts +3 -3
  64. package/DigitalClock/DigitalClock.d.mts +1 -1
  65. package/DigitalClock/DigitalClock.d.ts +1 -1
  66. package/DigitalClock/DigitalClock.js +2 -2
  67. package/DigitalClock/DigitalClock.mjs +3 -3
  68. package/LocalizationProvider/LocalizationProvider.d.mts +0 -6
  69. package/LocalizationProvider/LocalizationProvider.d.ts +0 -6
  70. package/LocalizationProvider/LocalizationProvider.js +1 -10
  71. package/LocalizationProvider/LocalizationProvider.mjs +0 -9
  72. package/LocalizationProvider/index.d.mts +1 -1
  73. package/LocalizationProvider/index.d.ts +1 -1
  74. package/LocalizationProvider/index.js +0 -6
  75. package/LocalizationProvider/index.mjs +1 -1
  76. package/MobileDatePicker/MobileDatePicker.d.mts +1 -1
  77. package/MobileDatePicker/MobileDatePicker.d.ts +1 -1
  78. package/MobileDatePicker/MobileDatePicker.js +1 -5
  79. package/MobileDatePicker/MobileDatePicker.mjs +1 -5
  80. package/MobileDatePicker/MobileDatePicker.types.d.mts +3 -3
  81. package/MobileDatePicker/MobileDatePicker.types.d.ts +3 -3
  82. package/MobileDateTimePicker/MobileDateTimePicker.d.mts +1 -1
  83. package/MobileDateTimePicker/MobileDateTimePicker.d.ts +1 -1
  84. package/MobileDateTimePicker/MobileDateTimePicker.js +1 -5
  85. package/MobileDateTimePicker/MobileDateTimePicker.mjs +1 -5
  86. package/MobileDateTimePicker/MobileDateTimePicker.types.d.mts +3 -3
  87. package/MobileDateTimePicker/MobileDateTimePicker.types.d.ts +3 -3
  88. package/MobileTimePicker/MobileTimePicker.d.mts +1 -1
  89. package/MobileTimePicker/MobileTimePicker.d.ts +1 -1
  90. package/MobileTimePicker/MobileTimePicker.js +0 -4
  91. package/MobileTimePicker/MobileTimePicker.mjs +0 -4
  92. package/MobileTimePicker/MobileTimePicker.types.d.mts +3 -3
  93. package/MobileTimePicker/MobileTimePicker.types.d.ts +3 -3
  94. package/MonthCalendar/MonthCalendarButton.js +2 -2
  95. package/MonthCalendar/MonthCalendarButton.mjs +3 -3
  96. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +2 -2
  97. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.mjs +3 -3
  98. package/PickerDay/PickerDay.d.mts +14 -0
  99. package/PickerDay/PickerDay.d.ts +14 -0
  100. package/{PickerDay2/PickerDay2.js → PickerDay/PickerDay.js} +110 -45
  101. package/{PickerDay2/PickerDay2.mjs → PickerDay/PickerDay.mjs} +110 -45
  102. package/PickerDay/PickerDay.types.d.mts +137 -0
  103. package/PickerDay/PickerDay.types.d.ts +137 -0
  104. package/PickerDay/index.d.mts +4 -0
  105. package/PickerDay/index.d.ts +4 -0
  106. package/PickerDay/index.js +25 -0
  107. package/PickerDay/index.mjs +2 -0
  108. package/{PickerDay2/pickerDay2Classes.d.mts → PickerDay/pickerDayClasses.d.mts} +4 -4
  109. package/{PickerDay2/pickerDay2Classes.d.ts → PickerDay/pickerDayClasses.d.ts} +4 -4
  110. package/PickerDay/pickerDayClasses.js +14 -0
  111. package/PickerDay/pickerDayClasses.mjs +6 -0
  112. package/PickersTextField/PickersFilledInput/PickersFilledInput.js +37 -16
  113. package/PickersTextField/PickersFilledInput/PickersFilledInput.mjs +37 -16
  114. package/PickersTextField/PickersInput/PickersInput.js +35 -14
  115. package/PickersTextField/PickersInput/PickersInput.mjs +35 -14
  116. package/PickersTextField/PickersInputBase/PickersInputBase.js +38 -8
  117. package/PickersTextField/PickersInputBase/PickersInputBase.mjs +38 -8
  118. package/PickersTextField/PickersInputBase/PickersInputBase.types.d.mts +56 -13
  119. package/PickersTextField/PickersInputBase/PickersInputBase.types.d.ts +56 -13
  120. package/PickersTextField/PickersOutlinedInput/Outline.js +1 -1
  121. package/PickersTextField/PickersOutlinedInput/Outline.mjs +1 -1
  122. package/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +33 -11
  123. package/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.mjs +33 -11
  124. package/PickersTextField/PickersTextField.js +92 -39
  125. package/PickersTextField/PickersTextField.mjs +92 -39
  126. package/PickersTextField/PickersTextField.types.d.mts +56 -28
  127. package/PickersTextField/PickersTextField.types.d.ts +56 -28
  128. package/PickersTextField/index.d.mts +1 -1
  129. package/PickersTextField/index.d.ts +1 -1
  130. package/StaticDatePicker/StaticDatePicker.js +1 -1
  131. package/StaticDatePicker/StaticDatePicker.mjs +1 -1
  132. package/StaticDateTimePicker/StaticDateTimePicker.js +1 -1
  133. package/StaticDateTimePicker/StaticDateTimePicker.mjs +1 -1
  134. package/TimeField/TimeField.d.mts +1 -1
  135. package/TimeField/TimeField.d.ts +1 -1
  136. package/TimeField/TimeField.js +23 -29
  137. package/TimeField/TimeField.mjs +23 -29
  138. package/TimeField/TimeField.types.d.mts +2 -2
  139. package/TimeField/TimeField.types.d.ts +2 -2
  140. package/TimeField/useTimeField.d.mts +1 -1
  141. package/TimeField/useTimeField.d.ts +1 -1
  142. package/TimePicker/TimePicker.d.mts +1 -1
  143. package/TimePicker/TimePicker.d.ts +1 -1
  144. package/TimePicker/TimePicker.js +0 -4
  145. package/TimePicker/TimePicker.mjs +0 -4
  146. package/TimePicker/TimePicker.types.d.mts +3 -3
  147. package/TimePicker/TimePicker.types.d.ts +3 -3
  148. package/YearCalendar/YearCalendarButton.js +2 -2
  149. package/YearCalendar/YearCalendarButton.mjs +3 -3
  150. package/hooks/useParsedFormat.js +5 -7
  151. package/hooks/useParsedFormat.mjs +5 -7
  152. package/hooks/useSplitFieldProps.d.mts +1 -1
  153. package/hooks/useSplitFieldProps.d.ts +1 -1
  154. package/hooks/useSplitFieldProps.js +1 -1
  155. package/hooks/useSplitFieldProps.mjs +1 -1
  156. package/index.d.mts +1 -2
  157. package/index.d.ts +1 -2
  158. package/index.js +2 -14
  159. package/index.mjs +2 -3
  160. package/internals/components/PickerFieldUI.d.mts +11 -17
  161. package/internals/components/PickerFieldUI.d.ts +11 -17
  162. package/internals/components/PickerFieldUI.js +65 -114
  163. package/internals/components/PickerFieldUI.mjs +65 -114
  164. package/internals/components/PickerPopper/PickerPopper.js +3 -0
  165. package/internals/components/PickerPopper/PickerPopper.mjs +3 -0
  166. package/internals/components/PickersToolbar.js +3 -1
  167. package/internals/components/PickersToolbar.mjs +3 -1
  168. package/internals/demo/DemoContainer.js +6 -8
  169. package/internals/demo/DemoContainer.mjs +6 -8
  170. package/internals/hooks/PickerDay.types.d.mts +12 -0
  171. package/internals/hooks/PickerDay.types.d.ts +12 -0
  172. package/internals/hooks/useDesktopPicker/useDesktopPicker.d.mts +2 -2
  173. package/internals/hooks/useDesktopPicker/useDesktopPicker.d.ts +2 -2
  174. package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.mts +6 -6
  175. package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +6 -6
  176. package/internals/hooks/useField/buildSectionsFromFormat.d.mts +0 -1
  177. package/internals/hooks/useField/buildSectionsFromFormat.d.ts +0 -1
  178. package/internals/hooks/useField/buildSectionsFromFormat.js +1 -1
  179. package/internals/hooks/useField/buildSectionsFromFormat.mjs +1 -1
  180. package/internals/hooks/useField/index.d.mts +1 -1
  181. package/internals/hooks/useField/index.d.ts +1 -1
  182. package/internals/hooks/useField/index.js +2 -8
  183. package/internals/hooks/useField/index.mjs +1 -1
  184. package/internals/hooks/useField/useField.d.mts +2 -2
  185. package/internals/hooks/useField/useField.d.ts +2 -2
  186. package/internals/hooks/useField/useField.js +265 -8
  187. package/internals/hooks/useField/useField.mjs +264 -8
  188. package/internals/hooks/useField/useField.types.d.mts +11 -50
  189. package/internals/hooks/useField/useField.types.d.ts +11 -50
  190. package/internals/hooks/useField/useField.utils.d.mts +2 -3
  191. package/internals/hooks/useField/useField.utils.d.ts +2 -3
  192. package/internals/hooks/useField/useField.utils.js +8 -65
  193. package/internals/hooks/useField/useField.utils.mjs +6 -62
  194. package/internals/hooks/useField/useFieldHiddenInputProps.d.mts +2 -4
  195. package/internals/hooks/useField/useFieldHiddenInputProps.d.ts +2 -4
  196. package/internals/hooks/useField/useFieldHiddenInputProps.js +1 -3
  197. package/internals/hooks/useField/useFieldHiddenInputProps.mjs +1 -3
  198. package/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +0 -1
  199. package/internals/hooks/useField/useFieldInternalPropsWithDefaults.mjs +0 -1
  200. package/internals/hooks/useField/useFieldRootProps.d.mts +5 -5
  201. package/internals/hooks/useField/useFieldRootProps.d.ts +5 -5
  202. package/internals/hooks/useField/useFieldRootProps.js +183 -11
  203. package/internals/hooks/useField/useFieldRootProps.mjs +183 -11
  204. package/internals/hooks/useField/useFieldSectionContainerProps.d.mts +3 -5
  205. package/internals/hooks/useField/useFieldSectionContainerProps.d.ts +3 -5
  206. package/internals/hooks/useField/useFieldSectionContainerProps.js +2 -4
  207. package/internals/hooks/useField/useFieldSectionContainerProps.mjs +2 -4
  208. package/internals/hooks/useField/useFieldSectionContentProps.d.mts +6 -7
  209. package/internals/hooks/useField/useFieldSectionContentProps.d.ts +6 -7
  210. package/internals/hooks/useField/useFieldSectionContentProps.js +2 -4
  211. package/internals/hooks/useField/useFieldSectionContentProps.mjs +2 -4
  212. package/internals/hooks/useField/useFieldState.d.mts +4 -4
  213. package/internals/hooks/useField/useFieldState.d.ts +4 -4
  214. package/internals/hooks/useField/useFieldState.js +3 -6
  215. package/internals/hooks/useField/useFieldState.mjs +3 -6
  216. package/internals/hooks/useMobilePicker/useMobilePicker.d.mts +2 -2
  217. package/internals/hooks/useMobilePicker/useMobilePicker.d.ts +2 -2
  218. package/internals/hooks/useMobilePicker/useMobilePicker.types.d.mts +6 -6
  219. package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +6 -6
  220. package/internals/hooks/useNullableFieldPrivateContext.d.mts +1 -1
  221. package/internals/hooks/useNullableFieldPrivateContext.d.ts +1 -1
  222. package/internals/hooks/usePicker/usePicker.js +1 -3
  223. package/internals/hooks/usePicker/usePicker.mjs +1 -3
  224. package/{PickersDay → internals/hooks}/usePickerDayOwnerState.d.mts +2 -3
  225. package/{PickersDay → internals/hooks}/usePickerDayOwnerState.d.ts +2 -3
  226. package/{PickersDay → internals/hooks}/usePickerDayOwnerState.js +3 -5
  227. package/{PickersDay → internals/hooks}/usePickerDayOwnerState.mjs +3 -5
  228. package/internals/index.d.mts +4 -4
  229. package/internals/index.d.ts +4 -4
  230. package/internals/index.js +9 -9
  231. package/internals/index.mjs +3 -3
  232. package/internals/models/manager.d.mts +3 -5
  233. package/internals/models/manager.d.ts +3 -5
  234. package/internals/utils/valueManagers.js +1 -2
  235. package/internals/utils/valueManagers.mjs +2 -3
  236. package/managers/index.d.mts +2 -2
  237. package/managers/index.d.ts +2 -2
  238. package/managers/useDateManager.d.mts +3 -6
  239. package/managers/useDateManager.d.ts +3 -6
  240. package/managers/useDateManager.js +2 -6
  241. package/managers/useDateManager.mjs +2 -6
  242. package/managers/useDateTimeManager.d.mts +3 -6
  243. package/managers/useDateTimeManager.d.ts +3 -6
  244. package/managers/useDateTimeManager.js +2 -6
  245. package/managers/useDateTimeManager.mjs +2 -6
  246. package/managers/useTimeManager.d.mts +4 -6
  247. package/managers/useTimeManager.d.ts +4 -6
  248. package/managers/useTimeManager.js +1 -3
  249. package/managers/useTimeManager.mjs +1 -3
  250. package/models/fields.d.mts +3 -4
  251. package/models/fields.d.ts +3 -4
  252. package/models/manager.d.mts +2 -8
  253. package/models/manager.d.ts +2 -8
  254. package/package.json +55 -69
  255. package/themeAugmentation/components.d.mts +4 -8
  256. package/themeAugmentation/components.d.ts +4 -8
  257. package/themeAugmentation/overrides.d.mts +2 -4
  258. package/themeAugmentation/overrides.d.ts +2 -4
  259. package/themeAugmentation/props.d.mts +5 -7
  260. package/themeAugmentation/props.d.ts +5 -7
  261. package/PickerDay2/PickerDay2.d.mts +0 -7
  262. package/PickerDay2/PickerDay2.d.ts +0 -7
  263. package/PickerDay2/PickerDay2.types.d.mts +0 -18
  264. package/PickerDay2/PickerDay2.types.d.ts +0 -18
  265. package/PickerDay2/index.d.mts +0 -4
  266. package/PickerDay2/index.d.ts +0 -4
  267. package/PickerDay2/index.js +0 -25
  268. package/PickerDay2/index.mjs +0 -2
  269. package/PickerDay2/pickerDay2Classes.js +0 -14
  270. package/PickerDay2/pickerDay2Classes.mjs +0 -6
  271. package/PickersDay/PickersDay.d.mts +0 -15
  272. package/PickersDay/PickersDay.d.ts +0 -15
  273. package/PickersDay/PickersDay.js +0 -384
  274. package/PickersDay/PickersDay.mjs +0 -377
  275. package/PickersDay/PickersDay.types.d.mts +0 -114
  276. package/PickersDay/PickersDay.types.d.ts +0 -114
  277. package/PickersDay/index.d.mts +0 -4
  278. package/PickersDay/index.d.ts +0 -4
  279. package/PickersDay/index.js +0 -25
  280. package/PickersDay/index.mjs +0 -2
  281. package/PickersDay/pickersDayClasses.d.mts +0 -19
  282. package/PickersDay/pickersDayClasses.d.ts +0 -19
  283. package/PickersDay/pickersDayClasses.js +0 -14
  284. package/PickersDay/pickersDayClasses.mjs +0 -6
  285. package/internals/hooks/useField/useFieldRootHandleKeyDown.d.mts +0 -16
  286. package/internals/hooks/useField/useFieldRootHandleKeyDown.d.ts +0 -16
  287. package/internals/hooks/useField/useFieldRootHandleKeyDown.js +0 -211
  288. package/internals/hooks/useField/useFieldRootHandleKeyDown.mjs +0 -205
  289. package/internals/hooks/useField/useFieldV6TextField.d.mts +0 -26
  290. package/internals/hooks/useField/useFieldV6TextField.d.ts +0 -26
  291. package/internals/hooks/useField/useFieldV6TextField.js +0 -422
  292. package/internals/hooks/useField/useFieldV6TextField.mjs +0 -413
  293. package/internals/hooks/useField/useFieldV7TextField.d.mts +0 -3
  294. package/internals/hooks/useField/useFieldV7TextField.d.ts +0 -3
  295. package/internals/hooks/useField/useFieldV7TextField.js +0 -272
  296. package/internals/hooks/useField/useFieldV7TextField.mjs +0 -264
  297. /package/{PickerDay2/PickerDay2.types.js → PickerDay/PickerDay.types.js} +0 -0
  298. /package/{PickerDay2/PickerDay2.types.mjs → PickerDay/PickerDay.types.mjs} +0 -0
  299. /package/{PickersDay/PickersDay.types.js → internals/hooks/PickerDay.types.js} +0 -0
  300. /package/{PickersDay/PickersDay.types.mjs → internals/hooks/PickerDay.types.mjs} +0 -0
@@ -1,3 +1,3 @@
1
1
  export { useField } from "./useField.mjs";
2
- export { createDateStrForV7HiddenInputFromSections, createDateStrForV6InputFromSections } from "./useField.utils.mjs";
2
+ export { createDateStrForHiddenInputFromSections } from "./useField.utils.mjs";
3
3
  export { useFieldInternalPropsWithDefaults } from "./useFieldInternalPropsWithDefaults.mjs";
@@ -1,3 +1,3 @@
1
- import { UseFieldParameters, UseFieldReturnValue, UseFieldProps } from "./useField.types.mjs";
1
+ import { UseFieldParameters, UseFieldProps, UseFieldReturnValue } from "./useField.types.mjs";
2
2
  import { PickerValidValue } from "../../models/index.mjs";
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>;
3
+ export declare const useField: <TValue extends PickerValidValue, TError, TValidationProps extends {}, TProps extends UseFieldProps>(parameters: UseFieldParameters<TValue, TError, TValidationProps, TProps>) => UseFieldReturnValue<TProps>;
@@ -1,3 +1,3 @@
1
- import { UseFieldParameters, UseFieldReturnValue, UseFieldProps } from "./useField.types.js";
1
+ import { UseFieldParameters, UseFieldProps, UseFieldReturnValue } from "./useField.types.js";
2
2
  import { PickerValidValue } from "../../models/index.js";
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>;
3
+ export declare const useField: <TValue extends PickerValidValue, TError, TValidationProps extends {}, TProps extends UseFieldProps>(parameters: UseFieldParameters<TValue, TError, TValidationProps, TProps>) => UseFieldReturnValue<TProps>;
@@ -1,16 +1,273 @@
1
1
  "use strict";
2
+ 'use client';
2
3
 
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
3
6
  Object.defineProperty(exports, "__esModule", {
4
7
  value: true
5
8
  });
6
9
  exports.useField = void 0;
7
- var _useFieldV7TextField = require("./useFieldV7TextField");
8
- var _useFieldV6TextField = require("./useFieldV6TextField");
9
- var _useNullableFieldPrivateContext = require("../useNullableFieldPrivateContext");
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+ var _formatErrorMessage2 = _interopRequireDefault(require("@mui/x-internals/formatErrorMessage"));
12
+ var React = _interopRequireWildcard(require("react"));
13
+ var _useForkRef = _interopRequireDefault(require("@mui/utils/useForkRef"));
14
+ var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallback"));
15
+ var _useEnhancedEffect = _interopRequireDefault(require("@mui/utils/useEnhancedEffect"));
16
+ var _warning = require("@mui/x-internals/warning");
17
+ var _useField = require("./useField.utils");
18
+ var _utils = require("../../utils/utils");
19
+ var _hooks = require("../../../hooks");
20
+ var _useFieldCharacterEditing = require("./useFieldCharacterEditing");
21
+ var _useFieldState = require("./useFieldState");
22
+ var _useFieldInternalPropsWithDefaults = require("./useFieldInternalPropsWithDefaults");
23
+ var _syncSelectionToDOM = require("./syncSelectionToDOM");
24
+ var _useFieldRootProps = require("./useFieldRootProps");
25
+ var _useFieldHiddenInputProps = require("./useFieldHiddenInputProps");
26
+ var _useFieldSectionContainerProps = require("./useFieldSectionContainerProps");
27
+ var _useFieldSectionContentProps = require("./useFieldSectionContentProps");
10
28
  const useField = parameters => {
11
- const fieldPrivateContext = (0, _useNullableFieldPrivateContext.useNullableFieldPrivateContext)();
12
- const enableAccessibleFieldDOMStructure = parameters.props.enableAccessibleFieldDOMStructure ?? fieldPrivateContext?.enableAccessibleFieldDOMStructure ?? true;
13
- const useFieldTextField = enableAccessibleFieldDOMStructure ? _useFieldV7TextField.useFieldV7TextField : _useFieldV6TextField.useFieldV6TextField;
14
- return useFieldTextField(parameters);
29
+ const {
30
+ props,
31
+ manager,
32
+ skipContextFieldRefAssignment,
33
+ manager: {
34
+ valueType,
35
+ internal_useOpenPickerButtonAriaLabel: useOpenPickerButtonAriaLabel
36
+ }
37
+ } = parameters;
38
+ const {
39
+ internalProps,
40
+ forwardedProps
41
+ } = (0, _hooks.useSplitFieldProps)(props, valueType);
42
+ if (process.env.NODE_ENV !== 'production') {
43
+ if (forwardedProps.enableAccessibleFieldDOMStructure != null) {
44
+ (0, _warning.warnOnce)(['MUI X: The `enableAccessibleFieldDOMStructure` prop has been removed.', 'The accessible DOM structure is now the default and only option.', 'You can safely remove the prop from your code.', 'For more information, please have a look at the migration guide (https://mui.com/x/migration/migration-pickers-v8/).']);
45
+ }
46
+ }
47
+ const internalPropsWithDefaults = (0, _useFieldInternalPropsWithDefaults.useFieldInternalPropsWithDefaults)({
48
+ manager,
49
+ internalProps,
50
+ skipContextFieldRefAssignment
51
+ });
52
+ const {
53
+ sectionListRef: sectionListRefProp,
54
+ onBlur,
55
+ onClick,
56
+ onFocus,
57
+ onInput,
58
+ onPaste,
59
+ onKeyDown,
60
+ onClear,
61
+ clearable
62
+ } = forwardedProps;
63
+ const {
64
+ disabled = false,
65
+ readOnly = false,
66
+ autoFocus = false,
67
+ focused: focusedProp,
68
+ fieldRef
69
+ } = internalPropsWithDefaults;
70
+ const sectionListRef = React.useRef(null);
71
+ const handleSectionListRef = (0, _useForkRef.default)(sectionListRefProp, sectionListRef);
72
+ const domGetters = React.useMemo(() => ({
73
+ isReady: () => sectionListRef.current != null,
74
+ getRoot: () => sectionListRef.current.getRoot(),
75
+ getSectionContainer: sectionIndex => sectionListRef.current.getSectionContainer(sectionIndex),
76
+ getSectionContent: sectionIndex => sectionListRef.current.getSectionContent(sectionIndex),
77
+ getSectionIndexFromDOMElement: element => sectionListRef.current.getSectionIndexFromDOMElement(element)
78
+ }), [sectionListRef]);
79
+ const stateResponse = (0, _useFieldState.useFieldState)({
80
+ manager,
81
+ internalPropsWithDefaults,
82
+ forwardedProps
83
+ });
84
+ const {
85
+ // States and derived states
86
+ areAllSectionsEmpty,
87
+ error,
88
+ parsedSelectedSections,
89
+ sectionOrder,
90
+ state,
91
+ value,
92
+ // Methods to update the states
93
+ clearValue,
94
+ setSelectedSections
95
+ } = stateResponse;
96
+ const applyCharacterEditing = (0, _useFieldCharacterEditing.useFieldCharacterEditing)({
97
+ stateResponse
98
+ });
99
+ const openPickerAriaLabel = useOpenPickerButtonAriaLabel(value);
100
+ const [focused, setFocused] = React.useState(false);
101
+ function focusField(newSelectedSections = 0) {
102
+ if (disabled || !sectionListRef.current ||
103
+ // if the field is already focused, we don't need to focus it again
104
+ getActiveSectionIndex(sectionListRef) != null) {
105
+ return;
106
+ }
107
+ const newParsedSelectedSections = (0, _useField.parseSelectedSections)(newSelectedSections, state.sections);
108
+ setFocused(true);
109
+ sectionListRef.current.getSectionContent(newParsedSelectedSections).focus();
110
+ }
111
+ const rootProps = (0, _useFieldRootProps.useFieldRootProps)({
112
+ manager,
113
+ internalPropsWithDefaults,
114
+ stateResponse,
115
+ applyCharacterEditing,
116
+ focused,
117
+ setFocused,
118
+ domGetters
119
+ });
120
+ const hiddenInputProps = (0, _useFieldHiddenInputProps.useFieldHiddenInputProps)({
121
+ manager,
122
+ stateResponse
123
+ });
124
+ const createSectionContainerProps = (0, _useFieldSectionContainerProps.useFieldSectionContainerProps)({
125
+ stateResponse,
126
+ internalPropsWithDefaults
127
+ });
128
+ const createSectionContentProps = (0, _useFieldSectionContentProps.useFieldSectionContentProps)({
129
+ manager,
130
+ stateResponse,
131
+ applyCharacterEditing,
132
+ internalPropsWithDefaults,
133
+ domGetters,
134
+ focused
135
+ });
136
+ const handleRootKeyDown = (0, _useEventCallback.default)(event => {
137
+ onKeyDown?.(event);
138
+ rootProps.onKeyDown(event);
139
+ });
140
+ const handleRootBlur = (0, _useEventCallback.default)(event => {
141
+ onBlur?.(event);
142
+ rootProps.onBlur(event);
143
+ });
144
+ const handleRootFocus = (0, _useEventCallback.default)(event => {
145
+ onFocus?.(event);
146
+ rootProps.onFocus(event);
147
+ });
148
+ const handleRootClick = (0, _useEventCallback.default)(event => {
149
+ // The click event on the clear or open button would propagate to the input, trigger this handler and result in an inadvertent section selection.
150
+ // We avoid this by checking if the call of `handleInputClick` is actually intended, or a propagated call, which should be skipped.
151
+ if (event.isDefaultPrevented()) {
152
+ return;
153
+ }
154
+ onClick?.(event);
155
+ rootProps.onClick(event);
156
+ });
157
+ const handleRootPaste = (0, _useEventCallback.default)(event => {
158
+ onPaste?.(event);
159
+ rootProps.onPaste(event);
160
+ });
161
+ const handleRootInput = (0, _useEventCallback.default)(event => {
162
+ onInput?.(event);
163
+ rootProps.onInput(event);
164
+ });
165
+ const handleClear = (0, _useEventCallback.default)((event, ...args) => {
166
+ event.preventDefault();
167
+ onClear?.(event, ...args);
168
+ clearValue();
169
+ if (!isFieldFocused(sectionListRef)) {
170
+ // setSelectedSections is called internally
171
+ focusField(0);
172
+ } else {
173
+ setSelectedSections(sectionOrder.startIndex);
174
+ }
175
+ });
176
+ const elements = React.useMemo(() => {
177
+ return state.sections.map((section, sectionIndex) => {
178
+ const content = createSectionContentProps(section, sectionIndex);
179
+ return {
180
+ container: createSectionContainerProps(sectionIndex),
181
+ content,
182
+ before: {
183
+ children: section.startSeparator
184
+ },
185
+ after: {
186
+ children: section.endSeparator,
187
+ 'data-range-position': section.isEndFormatSeparator ? content['data-range-position'] : undefined
188
+ }
189
+ };
190
+ });
191
+ }, [state.sections, createSectionContainerProps, createSectionContentProps]);
192
+ React.useEffect(() => {
193
+ if (sectionListRef.current == null) {
194
+ throw new Error(process.env.NODE_ENV !== "production" ? `MUI X: The \`sectionListRef\` prop has not been initialized by \`PickersSectionList\`
195
+ You probably tried to pass a component to the \`textField\` slot that contains an \`<input />\` element instead of a \`PickersSectionList\`.
196
+
197
+ Learn more about the field accessible DOM structure on the MUI documentation: https://mui.com/x/react-date-pickers/fields/#fields-to-edit-a-single-element` : (0, _formatErrorMessage2.default)(249));
198
+ }
199
+ if (autoFocus && !disabled) {
200
+ sectionListRef.current.getSectionContent(sectionOrder.startIndex).focus();
201
+ }
202
+ }, []); // eslint-disable-line react-hooks/exhaustive-deps
203
+
204
+ (0, _useEnhancedEffect.default)(() => {
205
+ if (!focused || !sectionListRef.current) {
206
+ return;
207
+ }
208
+ if (parsedSelectedSections === 'all') {
209
+ sectionListRef.current.getRoot().focus();
210
+ } else if (typeof parsedSelectedSections === 'number') {
211
+ const domElement = sectionListRef.current.getSectionContent(parsedSelectedSections);
212
+ if (domElement) {
213
+ domElement.focus();
214
+ }
215
+ }
216
+ }, [parsedSelectedSections, focused]);
217
+ (0, _useEnhancedEffect.default)(() => {
218
+ (0, _syncSelectionToDOM.syncSelectionToDOM)({
219
+ focused,
220
+ domGetters,
221
+ stateResponse
222
+ });
223
+ });
224
+ React.useImperativeHandle(fieldRef, () => ({
225
+ getSections: () => state.sections,
226
+ getActiveSectionIndex: () => getActiveSectionIndex(sectionListRef),
227
+ setSelectedSections: newSelectedSections => {
228
+ if (disabled || !sectionListRef.current) {
229
+ return;
230
+ }
231
+ const newParsedSelectedSections = (0, _useField.parseSelectedSections)(newSelectedSections, state.sections);
232
+ const newActiveSectionIndex = newParsedSelectedSections === 'all' ? 0 : newParsedSelectedSections;
233
+ setFocused(newActiveSectionIndex !== null);
234
+ setSelectedSections(newSelectedSections);
235
+ },
236
+ focusField,
237
+ isFieldFocused: () => isFieldFocused(sectionListRef),
238
+ clearValue
239
+ }));
240
+ return (0, _extends2.default)({}, forwardedProps, rootProps, {
241
+ onBlur: handleRootBlur,
242
+ onClick: handleRootClick,
243
+ onFocus: handleRootFocus,
244
+ onInput: handleRootInput,
245
+ onPaste: handleRootPaste,
246
+ onKeyDown: handleRootKeyDown,
247
+ onClear: handleClear
248
+ }, hiddenInputProps, {
249
+ error,
250
+ clearable: Boolean(clearable && !areAllSectionsEmpty && !readOnly && !disabled),
251
+ focused: focusedProp ?? focused,
252
+ sectionListRef: handleSectionListRef,
253
+ // Additional
254
+ elements,
255
+ areAllSectionsEmpty,
256
+ disabled,
257
+ readOnly,
258
+ autoFocus,
259
+ openPickerAriaLabel
260
+ });
15
261
  };
16
- exports.useField = useField;
262
+ exports.useField = useField;
263
+ function getActiveSectionIndex(sectionListRef) {
264
+ const activeElement = (0, _utils.getActiveElement)(sectionListRef.current?.getRoot());
265
+ if (!activeElement || !sectionListRef.current || !sectionListRef.current.getRoot().contains(activeElement)) {
266
+ return null;
267
+ }
268
+ return sectionListRef.current.getSectionIndexFromDOMElement(activeElement);
269
+ }
270
+ function isFieldFocused(sectionListRef) {
271
+ const activeElement = (0, _utils.getActiveElement)(sectionListRef.current?.getRoot());
272
+ return !!sectionListRef.current && sectionListRef.current.getRoot().contains(activeElement);
273
+ }
@@ -1,9 +1,265 @@
1
- import { useFieldV7TextField } from "./useFieldV7TextField.mjs";
2
- import { useFieldV6TextField } from "./useFieldV6TextField.mjs";
3
- import { useNullableFieldPrivateContext } from "../useNullableFieldPrivateContext.mjs";
1
+ 'use client';
2
+
3
+ import _extends from "@babel/runtime/helpers/esm/extends";
4
+ import _formatErrorMessage from "@mui/x-internals/formatErrorMessage";
5
+ import * as React from 'react';
6
+ import useForkRef from '@mui/utils/useForkRef';
7
+ import useEventCallback from '@mui/utils/useEventCallback';
8
+ import useEnhancedEffect from '@mui/utils/useEnhancedEffect';
9
+ import { warnOnce } from '@mui/x-internals/warning';
10
+ import { parseSelectedSections } from "./useField.utils.mjs";
11
+ import { getActiveElement } from "../../utils/utils.mjs";
12
+ import { useSplitFieldProps } from "../../../hooks/index.mjs";
13
+ import { useFieldCharacterEditing } from "./useFieldCharacterEditing.mjs";
14
+ import { useFieldState } from "./useFieldState.mjs";
15
+ import { useFieldInternalPropsWithDefaults } from "./useFieldInternalPropsWithDefaults.mjs";
16
+ import { syncSelectionToDOM } from "./syncSelectionToDOM.mjs";
17
+ import { useFieldRootProps } from "./useFieldRootProps.mjs";
18
+ import { useFieldHiddenInputProps } from "./useFieldHiddenInputProps.mjs";
19
+ import { useFieldSectionContainerProps } from "./useFieldSectionContainerProps.mjs";
20
+ import { useFieldSectionContentProps } from "./useFieldSectionContentProps.mjs";
4
21
  export const useField = parameters => {
5
- const fieldPrivateContext = useNullableFieldPrivateContext();
6
- const enableAccessibleFieldDOMStructure = parameters.props.enableAccessibleFieldDOMStructure ?? fieldPrivateContext?.enableAccessibleFieldDOMStructure ?? true;
7
- const useFieldTextField = enableAccessibleFieldDOMStructure ? useFieldV7TextField : useFieldV6TextField;
8
- return useFieldTextField(parameters);
9
- };
22
+ const {
23
+ props,
24
+ manager,
25
+ skipContextFieldRefAssignment,
26
+ manager: {
27
+ valueType,
28
+ internal_useOpenPickerButtonAriaLabel: useOpenPickerButtonAriaLabel
29
+ }
30
+ } = parameters;
31
+ const {
32
+ internalProps,
33
+ forwardedProps
34
+ } = useSplitFieldProps(props, valueType);
35
+ if (process.env.NODE_ENV !== 'production') {
36
+ if (forwardedProps.enableAccessibleFieldDOMStructure != null) {
37
+ warnOnce(['MUI X: The `enableAccessibleFieldDOMStructure` prop has been removed.', 'The accessible DOM structure is now the default and only option.', 'You can safely remove the prop from your code.', 'For more information, please have a look at the migration guide (https://mui.com/x/migration/migration-pickers-v8/).']);
38
+ }
39
+ }
40
+ const internalPropsWithDefaults = useFieldInternalPropsWithDefaults({
41
+ manager,
42
+ internalProps,
43
+ skipContextFieldRefAssignment
44
+ });
45
+ const {
46
+ sectionListRef: sectionListRefProp,
47
+ onBlur,
48
+ onClick,
49
+ onFocus,
50
+ onInput,
51
+ onPaste,
52
+ onKeyDown,
53
+ onClear,
54
+ clearable
55
+ } = forwardedProps;
56
+ const {
57
+ disabled = false,
58
+ readOnly = false,
59
+ autoFocus = false,
60
+ focused: focusedProp,
61
+ fieldRef
62
+ } = internalPropsWithDefaults;
63
+ const sectionListRef = React.useRef(null);
64
+ const handleSectionListRef = useForkRef(sectionListRefProp, sectionListRef);
65
+ const domGetters = React.useMemo(() => ({
66
+ isReady: () => sectionListRef.current != null,
67
+ getRoot: () => sectionListRef.current.getRoot(),
68
+ getSectionContainer: sectionIndex => sectionListRef.current.getSectionContainer(sectionIndex),
69
+ getSectionContent: sectionIndex => sectionListRef.current.getSectionContent(sectionIndex),
70
+ getSectionIndexFromDOMElement: element => sectionListRef.current.getSectionIndexFromDOMElement(element)
71
+ }), [sectionListRef]);
72
+ const stateResponse = useFieldState({
73
+ manager,
74
+ internalPropsWithDefaults,
75
+ forwardedProps
76
+ });
77
+ const {
78
+ // States and derived states
79
+ areAllSectionsEmpty,
80
+ error,
81
+ parsedSelectedSections,
82
+ sectionOrder,
83
+ state,
84
+ value,
85
+ // Methods to update the states
86
+ clearValue,
87
+ setSelectedSections
88
+ } = stateResponse;
89
+ const applyCharacterEditing = useFieldCharacterEditing({
90
+ stateResponse
91
+ });
92
+ const openPickerAriaLabel = useOpenPickerButtonAriaLabel(value);
93
+ const [focused, setFocused] = React.useState(false);
94
+ function focusField(newSelectedSections = 0) {
95
+ if (disabled || !sectionListRef.current ||
96
+ // if the field is already focused, we don't need to focus it again
97
+ getActiveSectionIndex(sectionListRef) != null) {
98
+ return;
99
+ }
100
+ const newParsedSelectedSections = parseSelectedSections(newSelectedSections, state.sections);
101
+ setFocused(true);
102
+ sectionListRef.current.getSectionContent(newParsedSelectedSections).focus();
103
+ }
104
+ const rootProps = useFieldRootProps({
105
+ manager,
106
+ internalPropsWithDefaults,
107
+ stateResponse,
108
+ applyCharacterEditing,
109
+ focused,
110
+ setFocused,
111
+ domGetters
112
+ });
113
+ const hiddenInputProps = useFieldHiddenInputProps({
114
+ manager,
115
+ stateResponse
116
+ });
117
+ const createSectionContainerProps = useFieldSectionContainerProps({
118
+ stateResponse,
119
+ internalPropsWithDefaults
120
+ });
121
+ const createSectionContentProps = useFieldSectionContentProps({
122
+ manager,
123
+ stateResponse,
124
+ applyCharacterEditing,
125
+ internalPropsWithDefaults,
126
+ domGetters,
127
+ focused
128
+ });
129
+ const handleRootKeyDown = useEventCallback(event => {
130
+ onKeyDown?.(event);
131
+ rootProps.onKeyDown(event);
132
+ });
133
+ const handleRootBlur = useEventCallback(event => {
134
+ onBlur?.(event);
135
+ rootProps.onBlur(event);
136
+ });
137
+ const handleRootFocus = useEventCallback(event => {
138
+ onFocus?.(event);
139
+ rootProps.onFocus(event);
140
+ });
141
+ const handleRootClick = useEventCallback(event => {
142
+ // The click event on the clear or open button would propagate to the input, trigger this handler and result in an inadvertent section selection.
143
+ // We avoid this by checking if the call of `handleInputClick` is actually intended, or a propagated call, which should be skipped.
144
+ if (event.isDefaultPrevented()) {
145
+ return;
146
+ }
147
+ onClick?.(event);
148
+ rootProps.onClick(event);
149
+ });
150
+ const handleRootPaste = useEventCallback(event => {
151
+ onPaste?.(event);
152
+ rootProps.onPaste(event);
153
+ });
154
+ const handleRootInput = useEventCallback(event => {
155
+ onInput?.(event);
156
+ rootProps.onInput(event);
157
+ });
158
+ const handleClear = useEventCallback((event, ...args) => {
159
+ event.preventDefault();
160
+ onClear?.(event, ...args);
161
+ clearValue();
162
+ if (!isFieldFocused(sectionListRef)) {
163
+ // setSelectedSections is called internally
164
+ focusField(0);
165
+ } else {
166
+ setSelectedSections(sectionOrder.startIndex);
167
+ }
168
+ });
169
+ const elements = React.useMemo(() => {
170
+ return state.sections.map((section, sectionIndex) => {
171
+ const content = createSectionContentProps(section, sectionIndex);
172
+ return {
173
+ container: createSectionContainerProps(sectionIndex),
174
+ content,
175
+ before: {
176
+ children: section.startSeparator
177
+ },
178
+ after: {
179
+ children: section.endSeparator,
180
+ 'data-range-position': section.isEndFormatSeparator ? content['data-range-position'] : undefined
181
+ }
182
+ };
183
+ });
184
+ }, [state.sections, createSectionContainerProps, createSectionContentProps]);
185
+ React.useEffect(() => {
186
+ if (sectionListRef.current == null) {
187
+ throw new Error(process.env.NODE_ENV !== "production" ? `MUI X: The \`sectionListRef\` prop has not been initialized by \`PickersSectionList\`
188
+ You probably tried to pass a component to the \`textField\` slot that contains an \`<input />\` element instead of a \`PickersSectionList\`.
189
+
190
+ Learn more about the field accessible DOM structure on the MUI documentation: https://mui.com/x/react-date-pickers/fields/#fields-to-edit-a-single-element` : _formatErrorMessage(249));
191
+ }
192
+ if (autoFocus && !disabled) {
193
+ sectionListRef.current.getSectionContent(sectionOrder.startIndex).focus();
194
+ }
195
+ }, []); // eslint-disable-line react-hooks/exhaustive-deps
196
+
197
+ useEnhancedEffect(() => {
198
+ if (!focused || !sectionListRef.current) {
199
+ return;
200
+ }
201
+ if (parsedSelectedSections === 'all') {
202
+ sectionListRef.current.getRoot().focus();
203
+ } else if (typeof parsedSelectedSections === 'number') {
204
+ const domElement = sectionListRef.current.getSectionContent(parsedSelectedSections);
205
+ if (domElement) {
206
+ domElement.focus();
207
+ }
208
+ }
209
+ }, [parsedSelectedSections, focused]);
210
+ useEnhancedEffect(() => {
211
+ syncSelectionToDOM({
212
+ focused,
213
+ domGetters,
214
+ stateResponse
215
+ });
216
+ });
217
+ React.useImperativeHandle(fieldRef, () => ({
218
+ getSections: () => state.sections,
219
+ getActiveSectionIndex: () => getActiveSectionIndex(sectionListRef),
220
+ setSelectedSections: newSelectedSections => {
221
+ if (disabled || !sectionListRef.current) {
222
+ return;
223
+ }
224
+ const newParsedSelectedSections = parseSelectedSections(newSelectedSections, state.sections);
225
+ const newActiveSectionIndex = newParsedSelectedSections === 'all' ? 0 : newParsedSelectedSections;
226
+ setFocused(newActiveSectionIndex !== null);
227
+ setSelectedSections(newSelectedSections);
228
+ },
229
+ focusField,
230
+ isFieldFocused: () => isFieldFocused(sectionListRef),
231
+ clearValue
232
+ }));
233
+ return _extends({}, forwardedProps, rootProps, {
234
+ onBlur: handleRootBlur,
235
+ onClick: handleRootClick,
236
+ onFocus: handleRootFocus,
237
+ onInput: handleRootInput,
238
+ onPaste: handleRootPaste,
239
+ onKeyDown: handleRootKeyDown,
240
+ onClear: handleClear
241
+ }, hiddenInputProps, {
242
+ error,
243
+ clearable: Boolean(clearable && !areAllSectionsEmpty && !readOnly && !disabled),
244
+ focused: focusedProp ?? focused,
245
+ sectionListRef: handleSectionListRef,
246
+ // Additional
247
+ elements,
248
+ areAllSectionsEmpty,
249
+ disabled,
250
+ readOnly,
251
+ autoFocus,
252
+ openPickerAriaLabel
253
+ });
254
+ };
255
+ function getActiveSectionIndex(sectionListRef) {
256
+ const activeElement = getActiveElement(sectionListRef.current?.getRoot());
257
+ if (!activeElement || !sectionListRef.current || !sectionListRef.current.getRoot().contains(activeElement)) {
258
+ return null;
259
+ }
260
+ return sectionListRef.current.getSectionIndexFromDOMElement(activeElement);
261
+ }
262
+ function isFieldFocused(sectionListRef) {
263
+ const activeElement = getActiveElement(sectionListRef.current?.getRoot());
264
+ return !!sectionListRef.current && sectionListRef.current.getRoot().contains(activeElement);
265
+ }