@mui/x-date-pickers 9.0.0-alpha.4 → 9.0.0-rc.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 (290) 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 +262 -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 -4
  17. package/DateField/DateField.mjs +22 -4
  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 -4
  33. package/DateTimeField/DateTimeField.mjs +22 -4
  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/MobileDatePicker/MobileDatePicker.d.mts +1 -1
  69. package/MobileDatePicker/MobileDatePicker.d.ts +1 -1
  70. package/MobileDatePicker/MobileDatePicker.js +1 -5
  71. package/MobileDatePicker/MobileDatePicker.mjs +1 -5
  72. package/MobileDatePicker/MobileDatePicker.types.d.mts +3 -3
  73. package/MobileDatePicker/MobileDatePicker.types.d.ts +3 -3
  74. package/MobileDateTimePicker/MobileDateTimePicker.d.mts +1 -1
  75. package/MobileDateTimePicker/MobileDateTimePicker.d.ts +1 -1
  76. package/MobileDateTimePicker/MobileDateTimePicker.js +1 -5
  77. package/MobileDateTimePicker/MobileDateTimePicker.mjs +1 -5
  78. package/MobileDateTimePicker/MobileDateTimePicker.types.d.mts +3 -3
  79. package/MobileDateTimePicker/MobileDateTimePicker.types.d.ts +3 -3
  80. package/MobileTimePicker/MobileTimePicker.d.mts +1 -1
  81. package/MobileTimePicker/MobileTimePicker.d.ts +1 -1
  82. package/MobileTimePicker/MobileTimePicker.js +0 -4
  83. package/MobileTimePicker/MobileTimePicker.mjs +0 -4
  84. package/MobileTimePicker/MobileTimePicker.types.d.mts +3 -3
  85. package/MobileTimePicker/MobileTimePicker.types.d.ts +3 -3
  86. package/MonthCalendar/MonthCalendarButton.js +2 -2
  87. package/MonthCalendar/MonthCalendarButton.mjs +3 -3
  88. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +2 -2
  89. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.mjs +3 -3
  90. package/PickerDay/PickerDay.d.mts +14 -0
  91. package/PickerDay/PickerDay.d.ts +14 -0
  92. package/{PickerDay2/PickerDay2.js → PickerDay/PickerDay.js} +110 -45
  93. package/{PickerDay2/PickerDay2.mjs → PickerDay/PickerDay.mjs} +110 -45
  94. package/PickerDay/PickerDay.types.d.mts +137 -0
  95. package/PickerDay/PickerDay.types.d.ts +137 -0
  96. package/PickerDay/index.d.mts +4 -0
  97. package/PickerDay/index.d.ts +4 -0
  98. package/PickerDay/index.js +25 -0
  99. package/PickerDay/index.mjs +2 -0
  100. package/{PickerDay2/pickerDay2Classes.d.mts → PickerDay/pickerDayClasses.d.mts} +4 -4
  101. package/{PickerDay2/pickerDay2Classes.d.ts → PickerDay/pickerDayClasses.d.ts} +4 -4
  102. package/PickerDay/pickerDayClasses.js +14 -0
  103. package/PickerDay/pickerDayClasses.mjs +6 -0
  104. package/PickersTextField/PickersFilledInput/PickersFilledInput.js +27 -1
  105. package/PickersTextField/PickersFilledInput/PickersFilledInput.mjs +27 -1
  106. package/PickersTextField/PickersInput/PickersInput.js +27 -1
  107. package/PickersTextField/PickersInput/PickersInput.mjs +27 -1
  108. package/PickersTextField/PickersInputBase/PickersInputBase.js +26 -0
  109. package/PickersTextField/PickersInputBase/PickersInputBase.mjs +26 -0
  110. package/PickersTextField/PickersInputBase/PickersInputBase.types.d.mts +26 -0
  111. package/PickersTextField/PickersInputBase/PickersInputBase.types.d.ts +26 -0
  112. package/PickersTextField/PickersOutlinedInput/Outline.js +1 -1
  113. package/PickersTextField/PickersOutlinedInput/Outline.mjs +1 -1
  114. package/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +27 -1
  115. package/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.mjs +27 -1
  116. package/PickersTextField/PickersTextField.js +42 -2
  117. package/PickersTextField/PickersTextField.mjs +42 -2
  118. package/PickersTextField/PickersTextField.types.d.mts +22 -6
  119. package/PickersTextField/PickersTextField.types.d.ts +22 -6
  120. package/StaticDatePicker/StaticDatePicker.js +1 -1
  121. package/StaticDatePicker/StaticDatePicker.mjs +1 -1
  122. package/StaticDateTimePicker/StaticDateTimePicker.js +1 -1
  123. package/StaticDateTimePicker/StaticDateTimePicker.mjs +1 -1
  124. package/TimeField/TimeField.d.mts +1 -1
  125. package/TimeField/TimeField.d.ts +1 -1
  126. package/TimeField/TimeField.js +22 -4
  127. package/TimeField/TimeField.mjs +22 -4
  128. package/TimeField/TimeField.types.d.mts +2 -2
  129. package/TimeField/TimeField.types.d.ts +2 -2
  130. package/TimeField/useTimeField.d.mts +1 -1
  131. package/TimeField/useTimeField.d.ts +1 -1
  132. package/TimePicker/TimePicker.d.mts +1 -1
  133. package/TimePicker/TimePicker.d.ts +1 -1
  134. package/TimePicker/TimePicker.js +0 -4
  135. package/TimePicker/TimePicker.mjs +0 -4
  136. package/TimePicker/TimePicker.types.d.mts +3 -3
  137. package/TimePicker/TimePicker.types.d.ts +3 -3
  138. package/YearCalendar/YearCalendarButton.js +2 -2
  139. package/YearCalendar/YearCalendarButton.mjs +3 -3
  140. package/hooks/useParsedFormat.js +5 -7
  141. package/hooks/useParsedFormat.mjs +5 -7
  142. package/hooks/useSplitFieldProps.d.mts +1 -1
  143. package/hooks/useSplitFieldProps.d.ts +1 -1
  144. package/hooks/useSplitFieldProps.js +1 -1
  145. package/hooks/useSplitFieldProps.mjs +1 -1
  146. package/index.d.mts +1 -2
  147. package/index.d.ts +1 -2
  148. package/index.js +2 -14
  149. package/index.mjs +2 -3
  150. package/internals/components/PickerFieldUI.d.mts +22 -13
  151. package/internals/components/PickerFieldUI.d.ts +22 -13
  152. package/internals/components/PickerFieldUI.js +22 -80
  153. package/internals/components/PickerFieldUI.mjs +22 -80
  154. package/internals/components/PickerPopper/PickerPopper.js +3 -0
  155. package/internals/components/PickerPopper/PickerPopper.mjs +3 -0
  156. package/internals/components/PickersToolbar.js +3 -1
  157. package/internals/components/PickersToolbar.mjs +3 -1
  158. package/internals/demo/DemoContainer.js +6 -8
  159. package/internals/demo/DemoContainer.mjs +6 -8
  160. package/internals/hooks/PickerDay.types.d.mts +12 -0
  161. package/internals/hooks/PickerDay.types.d.ts +12 -0
  162. package/internals/hooks/useDesktopPicker/useDesktopPicker.d.mts +2 -2
  163. package/internals/hooks/useDesktopPicker/useDesktopPicker.d.ts +2 -2
  164. package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.mts +6 -6
  165. package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +6 -6
  166. package/internals/hooks/useField/buildSectionsFromFormat.d.mts +0 -1
  167. package/internals/hooks/useField/buildSectionsFromFormat.d.ts +0 -1
  168. package/internals/hooks/useField/buildSectionsFromFormat.js +1 -1
  169. package/internals/hooks/useField/buildSectionsFromFormat.mjs +1 -1
  170. package/internals/hooks/useField/index.d.mts +1 -1
  171. package/internals/hooks/useField/index.d.ts +1 -1
  172. package/internals/hooks/useField/index.js +2 -8
  173. package/internals/hooks/useField/index.mjs +1 -1
  174. package/internals/hooks/useField/useField.d.mts +2 -2
  175. package/internals/hooks/useField/useField.d.ts +2 -2
  176. package/internals/hooks/useField/useField.js +265 -8
  177. package/internals/hooks/useField/useField.mjs +264 -8
  178. package/internals/hooks/useField/useField.types.d.mts +11 -50
  179. package/internals/hooks/useField/useField.types.d.ts +11 -50
  180. package/internals/hooks/useField/useField.utils.d.mts +2 -3
  181. package/internals/hooks/useField/useField.utils.d.ts +2 -3
  182. package/internals/hooks/useField/useField.utils.js +8 -65
  183. package/internals/hooks/useField/useField.utils.mjs +6 -62
  184. package/internals/hooks/useField/useFieldHiddenInputProps.d.mts +2 -4
  185. package/internals/hooks/useField/useFieldHiddenInputProps.d.ts +2 -4
  186. package/internals/hooks/useField/useFieldHiddenInputProps.js +1 -3
  187. package/internals/hooks/useField/useFieldHiddenInputProps.mjs +1 -3
  188. package/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +0 -1
  189. package/internals/hooks/useField/useFieldInternalPropsWithDefaults.mjs +0 -1
  190. package/internals/hooks/useField/useFieldRootProps.d.mts +5 -5
  191. package/internals/hooks/useField/useFieldRootProps.d.ts +5 -5
  192. package/internals/hooks/useField/useFieldRootProps.js +183 -11
  193. package/internals/hooks/useField/useFieldRootProps.mjs +183 -11
  194. package/internals/hooks/useField/useFieldSectionContainerProps.d.mts +3 -5
  195. package/internals/hooks/useField/useFieldSectionContainerProps.d.ts +3 -5
  196. package/internals/hooks/useField/useFieldSectionContainerProps.js +2 -4
  197. package/internals/hooks/useField/useFieldSectionContainerProps.mjs +2 -4
  198. package/internals/hooks/useField/useFieldSectionContentProps.d.mts +6 -7
  199. package/internals/hooks/useField/useFieldSectionContentProps.d.ts +6 -7
  200. package/internals/hooks/useField/useFieldSectionContentProps.js +2 -4
  201. package/internals/hooks/useField/useFieldSectionContentProps.mjs +2 -4
  202. package/internals/hooks/useField/useFieldState.d.mts +4 -4
  203. package/internals/hooks/useField/useFieldState.d.ts +4 -4
  204. package/internals/hooks/useField/useFieldState.js +3 -6
  205. package/internals/hooks/useField/useFieldState.mjs +3 -6
  206. package/internals/hooks/useMobilePicker/useMobilePicker.d.mts +2 -2
  207. package/internals/hooks/useMobilePicker/useMobilePicker.d.ts +2 -2
  208. package/internals/hooks/useMobilePicker/useMobilePicker.types.d.mts +6 -6
  209. package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +6 -6
  210. package/internals/hooks/useNullableFieldPrivateContext.d.mts +1 -1
  211. package/internals/hooks/useNullableFieldPrivateContext.d.ts +1 -1
  212. package/internals/hooks/usePicker/usePicker.js +1 -3
  213. package/internals/hooks/usePicker/usePicker.mjs +1 -3
  214. package/{PickersDay → internals/hooks}/usePickerDayOwnerState.d.mts +2 -3
  215. package/{PickersDay → internals/hooks}/usePickerDayOwnerState.d.ts +2 -3
  216. package/{PickersDay → internals/hooks}/usePickerDayOwnerState.js +3 -5
  217. package/{PickersDay → internals/hooks}/usePickerDayOwnerState.mjs +3 -5
  218. package/internals/index.d.mts +4 -4
  219. package/internals/index.d.ts +4 -4
  220. package/internals/index.js +9 -9
  221. package/internals/index.mjs +3 -3
  222. package/internals/models/manager.d.mts +3 -5
  223. package/internals/models/manager.d.ts +3 -5
  224. package/internals/utils/valueManagers.js +1 -2
  225. package/internals/utils/valueManagers.mjs +2 -3
  226. package/managers/index.d.mts +2 -2
  227. package/managers/index.d.ts +2 -2
  228. package/managers/useDateManager.d.mts +3 -6
  229. package/managers/useDateManager.d.ts +3 -6
  230. package/managers/useDateManager.js +2 -6
  231. package/managers/useDateManager.mjs +2 -6
  232. package/managers/useDateTimeManager.d.mts +3 -6
  233. package/managers/useDateTimeManager.d.ts +3 -6
  234. package/managers/useDateTimeManager.js +2 -6
  235. package/managers/useDateTimeManager.mjs +2 -6
  236. package/managers/useTimeManager.d.mts +4 -6
  237. package/managers/useTimeManager.d.ts +4 -6
  238. package/managers/useTimeManager.js +1 -3
  239. package/managers/useTimeManager.mjs +1 -3
  240. package/models/fields.d.mts +3 -4
  241. package/models/fields.d.ts +3 -4
  242. package/models/manager.d.mts +2 -8
  243. package/models/manager.d.ts +2 -8
  244. package/package.json +55 -69
  245. package/themeAugmentation/components.d.mts +4 -8
  246. package/themeAugmentation/components.d.ts +4 -8
  247. package/themeAugmentation/overrides.d.mts +2 -4
  248. package/themeAugmentation/overrides.d.ts +2 -4
  249. package/themeAugmentation/props.d.mts +5 -7
  250. package/themeAugmentation/props.d.ts +5 -7
  251. package/PickerDay2/PickerDay2.d.mts +0 -7
  252. package/PickerDay2/PickerDay2.d.ts +0 -7
  253. package/PickerDay2/PickerDay2.types.d.mts +0 -18
  254. package/PickerDay2/PickerDay2.types.d.ts +0 -18
  255. package/PickerDay2/index.d.mts +0 -4
  256. package/PickerDay2/index.d.ts +0 -4
  257. package/PickerDay2/index.js +0 -25
  258. package/PickerDay2/index.mjs +0 -2
  259. package/PickerDay2/pickerDay2Classes.js +0 -14
  260. package/PickerDay2/pickerDay2Classes.mjs +0 -6
  261. package/PickersDay/PickersDay.d.mts +0 -15
  262. package/PickersDay/PickersDay.d.ts +0 -15
  263. package/PickersDay/PickersDay.js +0 -384
  264. package/PickersDay/PickersDay.mjs +0 -377
  265. package/PickersDay/PickersDay.types.d.mts +0 -114
  266. package/PickersDay/PickersDay.types.d.ts +0 -114
  267. package/PickersDay/index.d.mts +0 -4
  268. package/PickersDay/index.d.ts +0 -4
  269. package/PickersDay/index.js +0 -25
  270. package/PickersDay/index.mjs +0 -2
  271. package/PickersDay/pickersDayClasses.d.mts +0 -19
  272. package/PickersDay/pickersDayClasses.d.ts +0 -19
  273. package/PickersDay/pickersDayClasses.js +0 -14
  274. package/PickersDay/pickersDayClasses.mjs +0 -6
  275. package/internals/hooks/useField/useFieldRootHandleKeyDown.d.mts +0 -16
  276. package/internals/hooks/useField/useFieldRootHandleKeyDown.d.ts +0 -16
  277. package/internals/hooks/useField/useFieldRootHandleKeyDown.js +0 -211
  278. package/internals/hooks/useField/useFieldRootHandleKeyDown.mjs +0 -205
  279. package/internals/hooks/useField/useFieldV6TextField.d.mts +0 -26
  280. package/internals/hooks/useField/useFieldV6TextField.d.ts +0 -26
  281. package/internals/hooks/useField/useFieldV6TextField.js +0 -422
  282. package/internals/hooks/useField/useFieldV6TextField.mjs +0 -413
  283. package/internals/hooks/useField/useFieldV7TextField.d.mts +0 -3
  284. package/internals/hooks/useField/useFieldV7TextField.d.ts +0 -3
  285. package/internals/hooks/useField/useFieldV7TextField.js +0 -272
  286. package/internals/hooks/useField/useFieldV7TextField.mjs +0 -264
  287. /package/{PickerDay2/PickerDay2.types.js → PickerDay/PickerDay.types.js} +0 -0
  288. /package/{PickerDay2/PickerDay2.types.mjs → PickerDay/PickerDay.types.mjs} +0 -0
  289. /package/{PickersDay/PickersDay.types.js → internals/hooks/PickerDay.types.js} +0 -0
  290. /package/{PickersDay/PickersDay.types.mjs → internals/hooks/PickerDay.types.mjs} +0 -0
@@ -0,0 +1,12 @@
1
+ import { PickerValidDate } from "../../models/index.js";
2
+ export interface PickerDayOwnerState {
3
+ day: PickerValidDate;
4
+ isDaySelected: boolean;
5
+ isDayDisabled: boolean;
6
+ isDayCurrent: boolean;
7
+ isDayOutsideMonth: boolean;
8
+ isDayStartOfWeek: boolean;
9
+ isDayEndOfWeek: boolean;
10
+ disableHighlightToday: boolean;
11
+ showDaysOutsideCurrentMonth: boolean;
12
+ }
@@ -6,10 +6,10 @@ import { DateOrTimeViewWithMeridiem } from "../../models/index.mjs";
6
6
  * - DesktopDateTimePicker
7
7
  * - DesktopTimePicker
8
8
  */
9
- export declare const useDesktopPicker: <TView extends DateOrTimeViewWithMeridiem, TEnableAccessibleFieldDOMStructure extends boolean, TExternalProps extends UseDesktopPickerProps<TView, TEnableAccessibleFieldDOMStructure, any, TExternalProps>>({
9
+ export declare const useDesktopPicker: <TView extends DateOrTimeViewWithMeridiem, TExternalProps extends UseDesktopPickerProps<TView, any, TExternalProps>>({
10
10
  props,
11
11
  steps,
12
12
  ...pickerParams
13
- }: UseDesktopPickerParams<TView, TEnableAccessibleFieldDOMStructure, TExternalProps>) => {
13
+ }: UseDesktopPickerParams<TView, TExternalProps>) => {
14
14
  renderPicker: () => import("react/jsx-runtime").JSX.Element;
15
15
  };
@@ -6,10 +6,10 @@ import { DateOrTimeViewWithMeridiem } from "../../models/index.js";
6
6
  * - DesktopDateTimePicker
7
7
  * - DesktopTimePicker
8
8
  */
9
- export declare const useDesktopPicker: <TView extends DateOrTimeViewWithMeridiem, TEnableAccessibleFieldDOMStructure extends boolean, TExternalProps extends UseDesktopPickerProps<TView, TEnableAccessibleFieldDOMStructure, any, TExternalProps>>({
9
+ export declare const useDesktopPicker: <TView extends DateOrTimeViewWithMeridiem, TExternalProps extends UseDesktopPickerProps<TView, any, TExternalProps>>({
10
10
  props,
11
11
  steps,
12
12
  ...pickerParams
13
- }: UseDesktopPickerParams<TView, TEnableAccessibleFieldDOMStructure, TExternalProps>) => {
13
+ }: UseDesktopPickerParams<TView, TExternalProps>) => {
14
14
  renderPicker: () => import("react/jsx-runtime").JSX.Element;
15
15
  };
@@ -14,10 +14,10 @@ export interface UseDesktopPickerSlots extends Pick<PickerPopperSlots, 'desktopP
14
14
  */
15
15
  field: React.ElementType;
16
16
  }
17
- export interface ExportedUseDesktopPickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends PickerPopperSlotProps, ExportedPickersLayoutSlotProps<PickerValue>, PickerFieldUISlotPropsFromContext {
18
- field?: SlotComponentPropsFromProps<PickerFieldSlotProps<PickerValue, TEnableAccessibleFieldDOMStructure>, {}, PickerOwnerState>;
17
+ export interface ExportedUseDesktopPickerSlotProps extends PickerPopperSlotProps, ExportedPickersLayoutSlotProps<PickerValue>, PickerFieldUISlotPropsFromContext {
18
+ field?: SlotComponentPropsFromProps<PickerFieldSlotProps<PickerValue>, {}, PickerOwnerState>;
19
19
  }
20
- export interface UseDesktopPickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends ExportedUseDesktopPickerSlotProps<TEnableAccessibleFieldDOMStructure>, Pick<PickersLayoutSlotProps<PickerValue>, 'toolbar'> {}
20
+ export interface UseDesktopPickerSlotProps extends ExportedUseDesktopPickerSlotProps, Pick<PickersLayoutSlotProps<PickerValue>, 'toolbar'> {}
21
21
  export interface DesktopOnlyPickerProps extends UsePickerNonStaticProps {
22
22
  /**
23
23
  * If `true`, the `input` element is focused during the first mount.
@@ -25,7 +25,7 @@ export interface DesktopOnlyPickerProps extends UsePickerNonStaticProps {
25
25
  */
26
26
  autoFocus?: boolean;
27
27
  }
28
- export interface UseDesktopPickerProps<TView extends DateOrTimeViewWithMeridiem, TEnableAccessibleFieldDOMStructure extends boolean, TError, TExternalProps extends UsePickerProps<PickerValue, TView, TError, any>> extends BasePickerProps<PickerValue, any, TError, TExternalProps>, MakeRequired<DesktopOnlyPickerProps, 'format'> {
28
+ export interface UseDesktopPickerProps<TView extends DateOrTimeViewWithMeridiem, TError, TExternalProps extends UsePickerProps<PickerValue, TView, TError, any>> extends BasePickerProps<PickerValue, any, TError, TExternalProps>, MakeRequired<DesktopOnlyPickerProps, 'format'> {
29
29
  /**
30
30
  * Overridable component slots.
31
31
  * @default {}
@@ -35,9 +35,9 @@ export interface UseDesktopPickerProps<TView extends DateOrTimeViewWithMeridiem,
35
35
  * The props used for each component slot.
36
36
  * @default {}
37
37
  */
38
- slotProps?: UseDesktopPickerSlotProps<TEnableAccessibleFieldDOMStructure>;
38
+ slotProps?: UseDesktopPickerSlotProps;
39
39
  }
40
- export interface UseDesktopPickerParams<TView extends DateOrTimeViewWithMeridiem, TEnableAccessibleFieldDOMStructure extends boolean, TExternalProps extends UseDesktopPickerProps<TView, TEnableAccessibleFieldDOMStructure, any, TExternalProps>> extends Pick<UsePickerParameters<PickerValue, TView, TExternalProps>, 'valueManager' | 'valueType' | 'validator' | 'rendererInterceptor' | 'ref'> {
40
+ export interface UseDesktopPickerParams<TView extends DateOrTimeViewWithMeridiem, TExternalProps extends UseDesktopPickerProps<TView, any, TExternalProps>> extends Pick<UsePickerParameters<PickerValue, TView, TExternalProps>, 'valueManager' | 'valueType' | 'validator' | 'rendererInterceptor' | 'ref'> {
41
41
  props: TExternalProps;
42
42
  /**
43
43
  * Steps available for the picker.
@@ -14,10 +14,10 @@ export interface UseDesktopPickerSlots extends Pick<PickerPopperSlots, 'desktopP
14
14
  */
15
15
  field: React.ElementType;
16
16
  }
17
- export interface ExportedUseDesktopPickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends PickerPopperSlotProps, ExportedPickersLayoutSlotProps<PickerValue>, PickerFieldUISlotPropsFromContext {
18
- field?: SlotComponentPropsFromProps<PickerFieldSlotProps<PickerValue, TEnableAccessibleFieldDOMStructure>, {}, PickerOwnerState>;
17
+ export interface ExportedUseDesktopPickerSlotProps extends PickerPopperSlotProps, ExportedPickersLayoutSlotProps<PickerValue>, PickerFieldUISlotPropsFromContext {
18
+ field?: SlotComponentPropsFromProps<PickerFieldSlotProps<PickerValue>, {}, PickerOwnerState>;
19
19
  }
20
- export interface UseDesktopPickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends ExportedUseDesktopPickerSlotProps<TEnableAccessibleFieldDOMStructure>, Pick<PickersLayoutSlotProps<PickerValue>, 'toolbar'> {}
20
+ export interface UseDesktopPickerSlotProps extends ExportedUseDesktopPickerSlotProps, Pick<PickersLayoutSlotProps<PickerValue>, 'toolbar'> {}
21
21
  export interface DesktopOnlyPickerProps extends UsePickerNonStaticProps {
22
22
  /**
23
23
  * If `true`, the `input` element is focused during the first mount.
@@ -25,7 +25,7 @@ export interface DesktopOnlyPickerProps extends UsePickerNonStaticProps {
25
25
  */
26
26
  autoFocus?: boolean;
27
27
  }
28
- export interface UseDesktopPickerProps<TView extends DateOrTimeViewWithMeridiem, TEnableAccessibleFieldDOMStructure extends boolean, TError, TExternalProps extends UsePickerProps<PickerValue, TView, TError, any>> extends BasePickerProps<PickerValue, any, TError, TExternalProps>, MakeRequired<DesktopOnlyPickerProps, 'format'> {
28
+ export interface UseDesktopPickerProps<TView extends DateOrTimeViewWithMeridiem, TError, TExternalProps extends UsePickerProps<PickerValue, TView, TError, any>> extends BasePickerProps<PickerValue, any, TError, TExternalProps>, MakeRequired<DesktopOnlyPickerProps, 'format'> {
29
29
  /**
30
30
  * Overridable component slots.
31
31
  * @default {}
@@ -35,9 +35,9 @@ export interface UseDesktopPickerProps<TView extends DateOrTimeViewWithMeridiem,
35
35
  * The props used for each component slot.
36
36
  * @default {}
37
37
  */
38
- slotProps?: UseDesktopPickerSlotProps<TEnableAccessibleFieldDOMStructure>;
38
+ slotProps?: UseDesktopPickerSlotProps;
39
39
  }
40
- export interface UseDesktopPickerParams<TView extends DateOrTimeViewWithMeridiem, TEnableAccessibleFieldDOMStructure extends boolean, TExternalProps extends UseDesktopPickerProps<TView, TEnableAccessibleFieldDOMStructure, any, TExternalProps>> extends Pick<UsePickerParameters<PickerValue, TView, TExternalProps>, 'valueManager' | 'valueType' | 'validator' | 'rendererInterceptor' | 'ref'> {
40
+ export interface UseDesktopPickerParams<TView extends DateOrTimeViewWithMeridiem, TExternalProps extends UseDesktopPickerProps<TView, any, TExternalProps>> extends Pick<UsePickerParameters<PickerValue, TView, TExternalProps>, 'valueManager' | 'valueType' | 'validator' | 'rendererInterceptor' | 'ref'> {
41
41
  props: TExternalProps;
42
42
  /**
43
43
  * Steps available for the picker.
@@ -9,7 +9,6 @@ interface BuildSectionsFromFormatParameters {
9
9
  localeText: PickersLocaleText;
10
10
  localizedDigits: string[];
11
11
  date: PickerValidDate | null;
12
- enableAccessibleFieldDOMStructure: boolean;
13
12
  }
14
13
  export declare const buildSectionsFromFormat: (parameters: BuildSectionsFromFormatParameters) => FieldSection[];
15
14
  export {};
@@ -9,7 +9,6 @@ interface BuildSectionsFromFormatParameters {
9
9
  localeText: PickersLocaleText;
10
10
  localizedDigits: string[];
11
11
  date: PickerValidDate | null;
12
- enableAccessibleFieldDOMStructure: boolean;
13
12
  }
14
13
  export declare const buildSectionsFromFormat: (parameters: BuildSectionsFromFormatParameters) => FieldSection[];
15
14
  export {};
@@ -247,7 +247,7 @@ const postProcessSections = ({
247
247
  };
248
248
  const buildSectionsFromFormat = parameters => {
249
249
  let expandedFormat = expandFormat(parameters);
250
- if (parameters.isRtl && parameters.enableAccessibleFieldDOMStructure) {
250
+ if (parameters.isRtl) {
251
251
  expandedFormat = expandedFormat.split(' ').reverse().join(' ');
252
252
  }
253
253
  const escapedParts = getEscapedPartsFromFormat((0, _extends2.default)({}, parameters, {
@@ -240,7 +240,7 @@ const postProcessSections = ({
240
240
  };
241
241
  export const buildSectionsFromFormat = parameters => {
242
242
  let expandedFormat = expandFormat(parameters);
243
- if (parameters.isRtl && parameters.enableAccessibleFieldDOMStructure) {
243
+ if (parameters.isRtl) {
244
244
  expandedFormat = expandedFormat.split(' ').reverse().join(' ');
245
245
  }
246
246
  const escapedParts = getEscapedPartsFromFormat(_extends({}, parameters, {
@@ -1,4 +1,4 @@
1
1
  export { useField } from "./useField.mjs";
2
2
  export type { UseFieldInternalProps, UseFieldParameters, UseFieldReturnValue, UseFieldProps, FieldValueManager, FieldChangeHandler, FieldChangeHandlerContext } from "./useField.types.mjs";
3
- export { createDateStrForV7HiddenInputFromSections, createDateStrForV6InputFromSections } from "./useField.utils.mjs";
3
+ export { createDateStrForHiddenInputFromSections } from "./useField.utils.mjs";
4
4
  export { useFieldInternalPropsWithDefaults } from "./useFieldInternalPropsWithDefaults.mjs";
@@ -1,4 +1,4 @@
1
1
  export { useField } from "./useField.js";
2
2
  export type { UseFieldInternalProps, UseFieldParameters, UseFieldReturnValue, UseFieldProps, FieldValueManager, FieldChangeHandler, FieldChangeHandlerContext } from "./useField.types.js";
3
- export { createDateStrForV7HiddenInputFromSections, createDateStrForV6InputFromSections } from "./useField.utils.js";
3
+ export { createDateStrForHiddenInputFromSections } from "./useField.utils.js";
4
4
  export { useFieldInternalPropsWithDefaults } from "./useFieldInternalPropsWithDefaults.js";
@@ -3,16 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- Object.defineProperty(exports, "createDateStrForV6InputFromSections", {
6
+ Object.defineProperty(exports, "createDateStrForHiddenInputFromSections", {
7
7
  enumerable: true,
8
8
  get: function () {
9
- return _useField2.createDateStrForV6InputFromSections;
10
- }
11
- });
12
- Object.defineProperty(exports, "createDateStrForV7HiddenInputFromSections", {
13
- enumerable: true,
14
- get: function () {
15
- return _useField2.createDateStrForV7HiddenInputFromSections;
9
+ return _useField2.createDateStrForHiddenInputFromSections;
16
10
  }
17
11
  });
18
12
  Object.defineProperty(exports, "useField", {
@@ -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
+ }