@mui/x-date-pickers 8.0.0-alpha.1 → 8.0.0-alpha.10

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 (576) hide show
  1. package/AdapterDateFns/AdapterDateFns.d.ts +2 -4
  2. package/AdapterDateFns/AdapterDateFns.js +49 -47
  3. package/AdapterDateFnsBase/AdapterDateFnsBase.d.ts +1 -1
  4. package/AdapterDateFnsJalali/AdapterDateFnsJalali.d.ts +2 -4
  5. package/AdapterDateFnsJalali/AdapterDateFnsJalali.js +48 -46
  6. package/{AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.d.ts → AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.d.ts} +2 -2
  7. package/{AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.js → AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.js} +45 -52
  8. package/AdapterDateFnsJalaliV2/index.d.ts +1 -0
  9. package/AdapterDateFnsJalaliV2/index.js +1 -0
  10. package/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/package.json +1 -1
  11. package/{AdapterDateFnsV3/AdapterDateFnsV3.d.ts → AdapterDateFnsV2/AdapterDateFnsV2.d.ts} +2 -2
  12. package/{AdapterDateFnsV3/AdapterDateFnsV3.js → AdapterDateFnsV2/AdapterDateFnsV2.js} +46 -54
  13. package/AdapterDateFnsV2/index.d.ts +1 -0
  14. package/AdapterDateFnsV2/index.js +1 -0
  15. package/{AdapterDateFnsV3 → AdapterDateFnsV2}/package.json +1 -1
  16. package/AdapterDayjs/AdapterDayjs.d.ts +1 -1
  17. package/AdapterLuxon/AdapterLuxon.d.ts +1 -1
  18. package/AdapterMoment/AdapterMoment.d.ts +1 -1
  19. package/AdapterMoment/AdapterMoment.js +10 -0
  20. package/CHANGELOG.md +1903 -231
  21. package/DateCalendar/DateCalendar.js +4 -4
  22. package/DateCalendar/DateCalendar.types.d.ts +2 -1
  23. package/DateCalendar/DayCalendar.js +2 -0
  24. package/DateCalendar/PickersFadeTransitionGroup.d.ts +1 -1
  25. package/DateCalendar/PickersFadeTransitionGroup.js +4 -6
  26. package/DateCalendar/PickersSlideTransition.d.ts +1 -1
  27. package/DateCalendar/PickersSlideTransition.js +12 -5
  28. package/DateCalendar/useCalendarState.d.ts +6 -4
  29. package/DateField/DateField.js +29 -33
  30. package/DateField/DateField.types.d.ts +7 -15
  31. package/DateField/useDateField.d.ts +1 -1
  32. package/DateField/useDateField.js +14 -11
  33. package/DatePicker/DatePicker.js +1 -1
  34. package/DatePicker/DatePicker.types.d.ts +7 -3
  35. package/DatePicker/DatePickerToolbar.d.ts +1 -2
  36. package/DatePicker/DatePickerToolbar.js +17 -33
  37. package/DatePicker/shared.d.ts +6 -5
  38. package/DateTimeField/DateTimeField.js +29 -33
  39. package/DateTimeField/DateTimeField.types.d.ts +7 -16
  40. package/DateTimeField/useDateTimeField.d.ts +1 -1
  41. package/DateTimeField/useDateTimeField.js +14 -11
  42. package/DateTimePicker/DateTimePicker.js +2 -2
  43. package/DateTimePicker/DateTimePicker.types.d.ts +4 -5
  44. package/DateTimePicker/DateTimePickerTabs.d.ts +2 -5
  45. package/DateTimePicker/DateTimePickerTabs.js +15 -20
  46. package/DateTimePicker/DateTimePickerToolbar.d.ts +16 -5
  47. package/DateTimePicker/DateTimePickerToolbar.js +88 -80
  48. package/DateTimePicker/shared.d.ts +8 -8
  49. package/DayCalendarSkeleton/DayCalendarSkeleton.js +10 -19
  50. package/DesktopDatePicker/DesktopDatePicker.js +11 -17
  51. package/DesktopDatePicker/DesktopDatePicker.types.d.ts +7 -3
  52. package/DesktopDateTimePicker/DesktopDateTimePicker.js +17 -27
  53. package/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +2 -2
  54. package/DesktopDateTimePicker/DesktopDateTimePickerLayout.d.ts +2 -2
  55. package/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +9 -34
  56. package/DesktopTimePicker/DesktopTimePicker.js +6 -22
  57. package/DesktopTimePicker/DesktopTimePicker.types.d.ts +2 -2
  58. package/DigitalClock/DigitalClock.js +13 -11
  59. package/DigitalClock/DigitalClock.types.d.ts +8 -2
  60. package/MobileDatePicker/MobileDatePicker.js +4 -14
  61. package/MobileDatePicker/MobileDatePicker.types.d.ts +2 -3
  62. package/MobileDateTimePicker/MobileDateTimePicker.js +4 -14
  63. package/MobileDateTimePicker/MobileDateTimePicker.types.d.ts +4 -4
  64. package/MobileTimePicker/MobileTimePicker.js +4 -14
  65. package/MobileTimePicker/MobileTimePicker.types.d.ts +4 -4
  66. package/MonthCalendar/MonthCalendar.d.ts +1 -1
  67. package/MonthCalendar/MonthCalendar.js +31 -11
  68. package/MonthCalendar/MonthCalendar.types.d.ts +2 -2
  69. package/MonthCalendar/MonthCalendarButton.d.ts +24 -0
  70. package/{modern/MonthCalendar/PickersMonth.js → MonthCalendar/MonthCalendarButton.js} +20 -61
  71. package/MonthCalendar/index.d.ts +0 -3
  72. package/MonthCalendar/index.js +1 -2
  73. package/MonthCalendar/monthCalendarClasses.d.ts +7 -1
  74. package/MonthCalendar/monthCalendarClasses.js +1 -1
  75. package/MultiSectionDigitalClock/MultiSectionDigitalClock.js +11 -7
  76. package/MultiSectionDigitalClock/MultiSectionDigitalClock.types.d.ts +6 -6
  77. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.d.ts +4 -4
  78. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +14 -10
  79. package/PickersActionBar/PickersActionBar.d.ts +6 -7
  80. package/PickersActionBar/PickersActionBar.js +26 -17
  81. package/PickersCalendarHeader/PickersCalendarHeader.js +10 -7
  82. package/PickersCalendarHeader/PickersCalendarHeader.types.d.ts +3 -4
  83. package/PickersLayout/PickersLayout.d.ts +7 -5
  84. package/PickersLayout/PickersLayout.js +23 -42
  85. package/PickersLayout/PickersLayout.types.d.ts +20 -22
  86. package/PickersLayout/usePickerLayout.d.ts +5 -4
  87. package/PickersLayout/usePickerLayout.js +26 -53
  88. package/PickersSectionList/PickersSectionList.js +21 -16
  89. package/PickersSectionList/PickersSectionList.types.d.ts +13 -6
  90. package/PickersShortcuts/PickersShortcuts.d.ts +9 -11
  91. package/PickersShortcuts/PickersShortcuts.js +21 -11
  92. package/PickersShortcuts/index.d.ts +1 -1
  93. package/PickersTextField/PickersFilledInput/PickersFilledInput.d.ts +7 -0
  94. package/PickersTextField/PickersFilledInput/PickersFilledInput.js +34 -28
  95. package/PickersTextField/PickersFilledInput/pickersFilledInputClasses.d.ts +1 -1
  96. package/PickersTextField/PickersInput/PickersInput.js +20 -14
  97. package/PickersTextField/PickersInput/pickersInputClasses.d.ts +3 -2
  98. package/PickersTextField/PickersInput/pickersInputClasses.js +1 -1
  99. package/PickersTextField/PickersInputBase/PickersInputBase.d.ts +3 -6
  100. package/PickersTextField/PickersInputBase/PickersInputBase.js +43 -37
  101. package/PickersTextField/PickersInputBase/PickersInputBase.types.d.ts +1 -0
  102. package/PickersTextField/PickersOutlinedInput/Outline.d.ts +0 -1
  103. package/PickersTextField/PickersOutlinedInput/Outline.js +13 -10
  104. package/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +8 -14
  105. package/PickersTextField/PickersTextField.js +75 -62
  106. package/PickersTextField/PickersTextField.types.d.ts +43 -4
  107. package/PickersTextField/usePickerTextFieldOwnerState.d.ts +4 -0
  108. package/PickersTextField/usePickerTextFieldOwnerState.js +11 -0
  109. package/README.md +8 -5
  110. package/StaticDatePicker/StaticDatePicker.js +2 -2
  111. package/StaticDatePicker/StaticDatePicker.types.d.ts +2 -3
  112. package/StaticDateTimePicker/StaticDateTimePicker.js +2 -2
  113. package/StaticDateTimePicker/StaticDateTimePicker.types.d.ts +2 -2
  114. package/StaticTimePicker/StaticTimePicker.js +2 -2
  115. package/StaticTimePicker/StaticTimePicker.types.d.ts +2 -2
  116. package/TimeClock/Clock.d.ts +4 -0
  117. package/TimeClock/Clock.js +27 -27
  118. package/TimeClock/ClockNumber.js +15 -11
  119. package/TimeClock/ClockPointer.d.ts +6 -1
  120. package/TimeClock/ClockPointer.js +16 -10
  121. package/TimeClock/TimeClock.js +30 -12
  122. package/TimeField/TimeField.js +28 -32
  123. package/TimeField/TimeField.types.d.ts +7 -16
  124. package/TimeField/useTimeField.d.ts +1 -1
  125. package/TimeField/useTimeField.js +14 -11
  126. package/TimePicker/TimePicker.js +2 -2
  127. package/TimePicker/TimePicker.types.d.ts +4 -5
  128. package/TimePicker/TimePickerToolbar.d.ts +1 -3
  129. package/TimePicker/TimePickerToolbar.js +36 -51
  130. package/TimePicker/shared.d.ts +6 -6
  131. package/YearCalendar/YearCalendar.js +46 -13
  132. package/YearCalendar/YearCalendar.types.d.ts +2 -2
  133. package/YearCalendar/YearCalendarButton.d.ts +23 -0
  134. package/{modern/YearCalendar/PickersYear.js → YearCalendar/YearCalendarButton.js} +20 -59
  135. package/YearCalendar/index.d.ts +0 -3
  136. package/YearCalendar/index.js +1 -2
  137. package/YearCalendar/yearCalendarClasses.d.ts +7 -1
  138. package/YearCalendar/yearCalendarClasses.js +1 -1
  139. package/hooks/index.d.ts +2 -0
  140. package/hooks/index.js +3 -1
  141. package/hooks/useClearableField.d.ts +5 -3
  142. package/hooks/useClearableField.js +4 -2
  143. package/hooks/useIsValidValue.d.ts +7 -0
  144. package/hooks/useIsValidValue.js +11 -0
  145. package/hooks/useParsedFormat.d.ts +9 -7
  146. package/hooks/useParsedFormat.js +11 -13
  147. package/hooks/usePickerActionsContext.d.ts +7 -0
  148. package/hooks/usePickerActionsContext.js +15 -0
  149. package/hooks/usePickerContext.d.ts +5 -1
  150. package/hooks/usePickerContext.js +2 -2
  151. package/hooks/useSplitFieldProps.d.ts +12 -3
  152. package/hooks/useSplitFieldProps.js +8 -3
  153. package/index.d.ts +1 -0
  154. package/index.js +3 -2
  155. package/internals/components/PickerFieldUI.d.ts +133 -0
  156. package/internals/components/PickerFieldUI.js +317 -0
  157. package/internals/components/{PickersPopper.d.ts → PickerPopper/PickerPopper.d.ts} +26 -25
  158. package/{modern/internals/components/PickersPopper.js → internals/components/PickerPopper/PickerPopper.js} +47 -47
  159. package/internals/components/PickerPopper/index.d.ts +4 -0
  160. package/internals/components/PickerPopper/index.js +2 -0
  161. package/internals/components/PickerPopper/pickerPopperClasses.d.ts +9 -0
  162. package/internals/components/PickerPopper/pickerPopperClasses.js +6 -0
  163. package/internals/components/PickerProvider.d.ts +86 -32
  164. package/internals/components/PickerProvider.js +25 -7
  165. package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +12 -11
  166. package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.types.d.ts +11 -8
  167. package/internals/components/PickersModalDialog.d.ts +1 -3
  168. package/internals/components/PickersModalDialog.js +9 -3
  169. package/internals/components/PickersToolbar.d.ts +2 -3
  170. package/internals/components/PickersToolbar.js +15 -12
  171. package/internals/components/PickersToolbarButton.js +4 -6
  172. package/internals/components/PickersToolbarText.js +11 -13
  173. package/internals/hooks/date-helpers-hooks.js +4 -3
  174. package/internals/hooks/useClockReferenceDate.d.ts +2 -1
  175. package/internals/hooks/useDesktopPicker/useDesktopPicker.d.ts +1 -1
  176. package/internals/hooks/useDesktopPicker/useDesktopPicker.js +35 -120
  177. package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +16 -38
  178. package/internals/hooks/useField/buildSectionsFromFormat.js +1 -1
  179. package/internals/hooks/useField/index.d.ts +2 -0
  180. package/internals/hooks/useField/index.js +2 -1
  181. package/internals/hooks/useField/useField.d.ts +3 -3
  182. package/internals/hooks/useField/useField.js +17 -4
  183. package/internals/hooks/useField/useField.types.d.ts +55 -48
  184. package/internals/hooks/useField/useField.utils.d.ts +4 -3
  185. package/internals/hooks/useField/useField.utils.js +2 -2
  186. package/internals/hooks/useField/useFieldCharacterEditing.d.ts +6 -5
  187. package/internals/hooks/useField/useFieldInternalPropsWithDefaults.d.ts +15 -0
  188. package/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +47 -0
  189. package/internals/hooks/useField/useFieldState.d.ts +9 -8
  190. package/internals/hooks/useField/useFieldState.js +2 -3
  191. package/internals/hooks/useField/useFieldV6TextField.d.ts +4 -3
  192. package/internals/hooks/useField/useFieldV6TextField.js +5 -2
  193. package/internals/hooks/useField/useFieldV7TextField.js +6 -3
  194. package/internals/hooks/useFieldOwnerState.d.ts +6 -0
  195. package/internals/hooks/useFieldOwnerState.js +16 -0
  196. package/internals/hooks/useMobilePicker/useMobilePicker.d.ts +1 -1
  197. package/internals/hooks/useMobilePicker/useMobilePicker.js +34 -68
  198. package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +15 -22
  199. package/internals/hooks/useNullablePickerContext.d.ts +5 -0
  200. package/internals/hooks/useNullablePickerContext.js +10 -0
  201. package/internals/hooks/useOpenState.d.ts +3 -2
  202. package/internals/hooks/useOpenState.js +11 -9
  203. package/internals/hooks/usePicker/index.d.ts +1 -1
  204. package/internals/hooks/usePicker/usePicker.d.ts +3 -4
  205. package/internals/hooks/usePicker/usePicker.js +4 -20
  206. package/internals/hooks/usePicker/usePicker.types.d.ts +10 -10
  207. package/internals/hooks/usePicker/usePickerProvider.d.ts +45 -10
  208. package/internals/hooks/usePicker/usePickerProvider.js +50 -16
  209. package/internals/hooks/usePicker/usePickerValue.d.ts +3 -2
  210. package/internals/hooks/usePicker/usePickerValue.js +84 -214
  211. package/internals/hooks/usePicker/usePickerValue.types.d.ts +130 -75
  212. package/internals/hooks/usePicker/usePickerViews.d.ts +59 -41
  213. package/internals/hooks/usePicker/usePickerViews.js +31 -20
  214. package/internals/hooks/useReduceAnimations.d.ts +2 -0
  215. package/internals/hooks/{useDefaultReduceAnimations.js → useReduceAnimations.js} +5 -2
  216. package/internals/hooks/useStaticPicker/useStaticPicker.d.ts +1 -1
  217. package/internals/hooks/useStaticPicker/useStaticPicker.js +7 -12
  218. package/internals/hooks/useStaticPicker/useStaticPicker.types.d.ts +7 -13
  219. package/internals/hooks/useToolbarOwnerState.d.ts +10 -0
  220. package/internals/hooks/useToolbarOwnerState.js +13 -0
  221. package/internals/hooks/useUtils.d.ts +4 -3
  222. package/internals/hooks/useUtils.js +1 -1
  223. package/internals/hooks/useValueWithTimezone.d.ts +5 -4
  224. package/internals/hooks/useViews.d.ts +5 -5
  225. package/internals/index.d.ts +27 -18
  226. package/internals/index.js +13 -8
  227. package/internals/models/common.d.ts +1 -1
  228. package/internals/models/fields.d.ts +8 -24
  229. package/internals/models/index.d.ts +1 -0
  230. package/internals/models/index.js +2 -1
  231. package/internals/models/manager.d.ts +15 -0
  232. package/internals/models/manager.js +1 -0
  233. package/internals/models/pickers.d.ts +1 -0
  234. package/internals/models/pickers.js +1 -0
  235. package/internals/models/props/basePickerProps.d.ts +3 -33
  236. package/internals/models/props/tabs.d.ts +0 -13
  237. package/internals/models/props/time.d.ts +2 -1
  238. package/internals/models/props/toolbar.d.ts +1 -19
  239. package/internals/models/value.d.ts +9 -0
  240. package/internals/utils/date-utils.d.ts +1 -1
  241. package/internals/utils/date-utils.js +1 -1
  242. package/internals/utils/utils.d.ts +3 -0
  243. package/internals/utils/utils.js +11 -1
  244. package/internals/utils/valueManagers.d.ts +4 -3
  245. package/internals/utils/valueManagers.js +4 -4
  246. package/locales/index.d.ts +1 -0
  247. package/locales/index.js +1 -0
  248. package/locales/nbNO.js +15 -19
  249. package/locales/nlNL.js +7 -7
  250. package/locales/roRO.js +15 -18
  251. package/locales/utils/getPickersLocalization.d.ts +0 -7
  252. package/locales/utils/getPickersLocalization.js +0 -13
  253. package/locales/zhTW.d.ts +80 -0
  254. package/locales/zhTW.js +73 -0
  255. package/managers/index.d.ts +6 -0
  256. package/managers/index.js +3 -0
  257. package/managers/package.json +6 -0
  258. package/managers/useDateManager.d.ts +27 -0
  259. package/managers/useDateManager.js +55 -0
  260. package/managers/useDateTimeManager.d.ts +28 -0
  261. package/managers/useDateTimeManager.js +60 -0
  262. package/managers/useTimeManager.d.ts +28 -0
  263. package/managers/useTimeManager.js +51 -0
  264. package/models/adapters.d.ts +5 -5
  265. package/models/fields.d.ts +33 -9
  266. package/models/index.d.ts +1 -0
  267. package/models/index.js +1 -0
  268. package/models/manager.d.ts +87 -0
  269. package/models/manager.js +1 -0
  270. package/models/pickers.d.ts +7 -0
  271. package/models/validation.d.ts +2 -1
  272. package/modern/AdapterDateFns/AdapterDateFns.js +49 -47
  273. package/modern/AdapterDateFnsJalali/AdapterDateFnsJalali.js +48 -46
  274. package/modern/{AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.js → AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.js} +45 -52
  275. package/modern/AdapterDateFnsJalaliV2/index.js +1 -0
  276. package/modern/{AdapterDateFnsV3/AdapterDateFnsV3.js → AdapterDateFnsV2/AdapterDateFnsV2.js} +46 -54
  277. package/modern/AdapterDateFnsV2/index.js +1 -0
  278. package/modern/AdapterMoment/AdapterMoment.js +10 -0
  279. package/modern/DateCalendar/DateCalendar.js +4 -4
  280. package/modern/DateCalendar/DayCalendar.js +2 -0
  281. package/modern/DateCalendar/PickersFadeTransitionGroup.js +4 -6
  282. package/modern/DateCalendar/PickersSlideTransition.js +12 -5
  283. package/modern/DateField/DateField.js +29 -33
  284. package/modern/DateField/useDateField.js +14 -11
  285. package/modern/DatePicker/DatePicker.js +1 -1
  286. package/modern/DatePicker/DatePickerToolbar.js +17 -33
  287. package/modern/DateTimeField/DateTimeField.js +29 -33
  288. package/modern/DateTimeField/useDateTimeField.js +14 -11
  289. package/modern/DateTimePicker/DateTimePicker.js +2 -2
  290. package/modern/DateTimePicker/DateTimePickerTabs.js +15 -20
  291. package/modern/DateTimePicker/DateTimePickerToolbar.js +88 -80
  292. package/modern/DayCalendarSkeleton/DayCalendarSkeleton.js +10 -19
  293. package/modern/DesktopDatePicker/DesktopDatePicker.js +11 -17
  294. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +17 -27
  295. package/modern/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +9 -34
  296. package/modern/DesktopTimePicker/DesktopTimePicker.js +6 -22
  297. package/modern/DigitalClock/DigitalClock.js +13 -11
  298. package/modern/MobileDatePicker/MobileDatePicker.js +4 -14
  299. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +4 -14
  300. package/modern/MobileTimePicker/MobileTimePicker.js +4 -14
  301. package/modern/MonthCalendar/MonthCalendar.js +31 -11
  302. package/{MonthCalendar/PickersMonth.js → modern/MonthCalendar/MonthCalendarButton.js} +20 -61
  303. package/modern/MonthCalendar/index.js +1 -2
  304. package/modern/MonthCalendar/monthCalendarClasses.js +1 -1
  305. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClock.js +11 -7
  306. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +14 -10
  307. package/modern/PickersActionBar/PickersActionBar.js +26 -17
  308. package/modern/PickersCalendarHeader/PickersCalendarHeader.js +10 -7
  309. package/modern/PickersLayout/PickersLayout.js +23 -42
  310. package/modern/PickersLayout/usePickerLayout.js +26 -53
  311. package/modern/PickersSectionList/PickersSectionList.js +21 -16
  312. package/modern/PickersShortcuts/PickersShortcuts.js +21 -11
  313. package/modern/PickersTextField/PickersFilledInput/PickersFilledInput.js +34 -28
  314. package/modern/PickersTextField/PickersInput/PickersInput.js +20 -14
  315. package/modern/PickersTextField/PickersInput/pickersInputClasses.js +1 -1
  316. package/modern/PickersTextField/PickersInputBase/PickersInputBase.js +43 -37
  317. package/modern/PickersTextField/PickersOutlinedInput/Outline.js +13 -10
  318. package/modern/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +8 -14
  319. package/modern/PickersTextField/PickersTextField.js +75 -62
  320. package/modern/PickersTextField/usePickerTextFieldOwnerState.js +11 -0
  321. package/modern/StaticDatePicker/StaticDatePicker.js +2 -2
  322. package/modern/StaticDateTimePicker/StaticDateTimePicker.js +2 -2
  323. package/modern/StaticTimePicker/StaticTimePicker.js +2 -2
  324. package/modern/TimeClock/Clock.js +27 -27
  325. package/modern/TimeClock/ClockNumber.js +15 -11
  326. package/modern/TimeClock/ClockPointer.js +16 -10
  327. package/modern/TimeClock/TimeClock.js +30 -12
  328. package/modern/TimeField/TimeField.js +28 -32
  329. package/modern/TimeField/useTimeField.js +14 -11
  330. package/modern/TimePicker/TimePicker.js +2 -2
  331. package/modern/TimePicker/TimePickerToolbar.js +36 -51
  332. package/modern/YearCalendar/YearCalendar.js +46 -13
  333. package/{YearCalendar/PickersYear.js → modern/YearCalendar/YearCalendarButton.js} +20 -59
  334. package/modern/YearCalendar/index.js +1 -2
  335. package/modern/YearCalendar/yearCalendarClasses.js +1 -1
  336. package/modern/hooks/index.js +3 -1
  337. package/modern/hooks/useClearableField.js +4 -2
  338. package/modern/hooks/useIsValidValue.js +11 -0
  339. package/modern/hooks/useParsedFormat.js +11 -13
  340. package/modern/hooks/usePickerActionsContext.js +15 -0
  341. package/modern/hooks/usePickerContext.js +2 -2
  342. package/modern/hooks/useSplitFieldProps.js +8 -3
  343. package/modern/index.js +3 -2
  344. package/modern/internals/components/PickerFieldUI.js +317 -0
  345. package/{internals/components/PickersPopper.js → modern/internals/components/PickerPopper/PickerPopper.js} +47 -47
  346. package/modern/internals/components/PickerPopper/index.js +2 -0
  347. package/modern/internals/components/PickerPopper/pickerPopperClasses.js +6 -0
  348. package/modern/internals/components/PickerProvider.js +25 -7
  349. package/modern/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +12 -11
  350. package/modern/internals/components/PickersModalDialog.js +9 -3
  351. package/modern/internals/components/PickersToolbar.js +15 -12
  352. package/modern/internals/components/PickersToolbarButton.js +4 -6
  353. package/modern/internals/components/PickersToolbarText.js +11 -13
  354. package/modern/internals/hooks/date-helpers-hooks.js +4 -3
  355. package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.js +35 -120
  356. package/modern/internals/hooks/useField/buildSectionsFromFormat.js +1 -1
  357. package/modern/internals/hooks/useField/index.js +2 -1
  358. package/modern/internals/hooks/useField/useField.js +17 -4
  359. package/modern/internals/hooks/useField/useField.utils.js +2 -2
  360. package/modern/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +47 -0
  361. package/modern/internals/hooks/useField/useFieldState.js +2 -3
  362. package/modern/internals/hooks/useField/useFieldV6TextField.js +5 -2
  363. package/modern/internals/hooks/useField/useFieldV7TextField.js +6 -3
  364. package/modern/internals/hooks/useFieldOwnerState.js +16 -0
  365. package/modern/internals/hooks/useMobilePicker/useMobilePicker.js +34 -68
  366. package/modern/internals/hooks/useNullablePickerContext.js +10 -0
  367. package/modern/internals/hooks/useOpenState.js +11 -9
  368. package/modern/internals/hooks/usePicker/usePicker.js +4 -20
  369. package/modern/internals/hooks/usePicker/usePickerProvider.js +50 -16
  370. package/modern/internals/hooks/usePicker/usePickerValue.js +84 -214
  371. package/modern/internals/hooks/usePicker/usePickerViews.js +31 -20
  372. package/modern/internals/hooks/{useDefaultReduceAnimations.js → useReduceAnimations.js} +5 -2
  373. package/modern/internals/hooks/useStaticPicker/useStaticPicker.js +7 -12
  374. package/modern/internals/hooks/useToolbarOwnerState.js +13 -0
  375. package/modern/internals/hooks/useUtils.js +1 -1
  376. package/modern/internals/index.js +13 -8
  377. package/modern/internals/models/index.js +2 -1
  378. package/modern/internals/models/manager.js +1 -0
  379. package/modern/internals/models/pickers.js +1 -0
  380. package/modern/internals/utils/date-utils.js +1 -1
  381. package/modern/internals/utils/utils.js +11 -1
  382. package/modern/internals/utils/valueManagers.js +4 -4
  383. package/modern/locales/index.js +1 -0
  384. package/modern/locales/nbNO.js +15 -19
  385. package/modern/locales/nlNL.js +7 -7
  386. package/modern/locales/roRO.js +15 -18
  387. package/modern/locales/utils/getPickersLocalization.js +0 -13
  388. package/modern/locales/zhTW.js +73 -0
  389. package/modern/managers/index.js +3 -0
  390. package/modern/managers/useDateManager.js +55 -0
  391. package/modern/managers/useDateTimeManager.js +60 -0
  392. package/modern/managers/useTimeManager.js +51 -0
  393. package/modern/models/index.js +1 -0
  394. package/modern/models/manager.js +1 -0
  395. package/modern/validation/useValidation.js +1 -1
  396. package/modern/validation/validateDate.js +8 -0
  397. package/modern/validation/validateDateTime.js +8 -0
  398. package/modern/validation/validateTime.js +8 -0
  399. package/node/AdapterDateFns/AdapterDateFns.js +97 -97
  400. package/node/AdapterDateFnsJalali/AdapterDateFnsJalali.js +97 -96
  401. package/node/{AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.js → AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.js} +94 -101
  402. package/node/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.js +1 -1
  403. package/node/AdapterDateFnsV2/AdapterDateFnsV2.js +291 -0
  404. package/node/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.js +1 -1
  405. package/node/AdapterMoment/AdapterMoment.js +10 -0
  406. package/node/DateCalendar/DateCalendar.js +4 -4
  407. package/node/DateCalendar/DayCalendar.js +1 -0
  408. package/node/DateCalendar/PickersFadeTransitionGroup.js +4 -6
  409. package/node/DateCalendar/PickersSlideTransition.js +12 -5
  410. package/node/DateField/DateField.js +29 -33
  411. package/node/DateField/useDateField.js +13 -10
  412. package/node/DatePicker/DatePicker.js +1 -1
  413. package/node/DatePicker/DatePickerToolbar.js +17 -33
  414. package/node/DateTimeField/DateTimeField.js +29 -33
  415. package/node/DateTimeField/useDateTimeField.js +13 -10
  416. package/node/DateTimePicker/DateTimePicker.js +2 -2
  417. package/node/DateTimePicker/DateTimePickerTabs.js +15 -20
  418. package/node/DateTimePicker/DateTimePickerToolbar.js +89 -80
  419. package/node/DayCalendarSkeleton/DayCalendarSkeleton.js +10 -19
  420. package/node/DesktopDatePicker/DesktopDatePicker.js +11 -17
  421. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +17 -27
  422. package/node/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +10 -35
  423. package/node/DesktopTimePicker/DesktopTimePicker.js +6 -22
  424. package/node/DigitalClock/DigitalClock.js +13 -11
  425. package/node/MobileDatePicker/MobileDatePicker.js +4 -14
  426. package/node/MobileDateTimePicker/MobileDateTimePicker.js +4 -14
  427. package/node/MobileTimePicker/MobileTimePicker.js +4 -14
  428. package/node/MonthCalendar/MonthCalendar.js +31 -11
  429. package/node/MonthCalendar/{PickersMonth.js → MonthCalendarButton.js} +20 -61
  430. package/node/MonthCalendar/index.js +1 -8
  431. package/node/MonthCalendar/monthCalendarClasses.js +1 -1
  432. package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.js +11 -7
  433. package/node/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +13 -10
  434. package/node/PickersActionBar/PickersActionBar.js +28 -19
  435. package/node/PickersCalendarHeader/PickersCalendarHeader.js +10 -7
  436. package/node/PickersLayout/PickersLayout.js +23 -42
  437. package/node/PickersLayout/usePickerLayout.js +30 -57
  438. package/node/PickersSectionList/PickersSectionList.js +21 -16
  439. package/node/PickersShortcuts/PickersShortcuts.js +21 -11
  440. package/node/PickersTextField/PickersFilledInput/PickersFilledInput.js +34 -28
  441. package/node/PickersTextField/PickersInput/PickersInput.js +20 -14
  442. package/node/PickersTextField/PickersInput/pickersInputClasses.js +1 -1
  443. package/node/PickersTextField/PickersInputBase/PickersInputBase.js +43 -37
  444. package/node/PickersTextField/PickersOutlinedInput/Outline.js +13 -10
  445. package/node/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +8 -14
  446. package/node/PickersTextField/PickersTextField.js +75 -62
  447. package/node/PickersTextField/usePickerTextFieldOwnerState.js +18 -0
  448. package/node/StaticDatePicker/StaticDatePicker.js +2 -2
  449. package/node/StaticDateTimePicker/StaticDateTimePicker.js +2 -2
  450. package/node/StaticTimePicker/StaticTimePicker.js +2 -2
  451. package/node/TimeClock/Clock.js +27 -27
  452. package/node/TimeClock/ClockNumber.js +15 -11
  453. package/node/TimeClock/ClockPointer.js +15 -10
  454. package/node/TimeClock/TimeClock.js +30 -12
  455. package/node/TimeField/TimeField.js +28 -32
  456. package/node/TimeField/useTimeField.js +13 -10
  457. package/node/TimePicker/TimePicker.js +2 -2
  458. package/node/TimePicker/TimePickerToolbar.js +36 -51
  459. package/node/YearCalendar/YearCalendar.js +45 -12
  460. package/node/YearCalendar/{PickersYear.js → YearCalendarButton.js} +20 -59
  461. package/node/YearCalendar/index.js +1 -8
  462. package/node/YearCalendar/yearCalendarClasses.js +1 -1
  463. package/node/hooks/index.js +15 -1
  464. package/node/hooks/useClearableField.js +4 -2
  465. package/node/hooks/useIsValidValue.js +18 -0
  466. package/node/hooks/useParsedFormat.js +11 -13
  467. package/node/hooks/usePickerActionsContext.js +22 -0
  468. package/node/hooks/usePickerContext.js +5 -4
  469. package/node/hooks/useSplitFieldProps.js +7 -2
  470. package/node/index.js +13 -1
  471. package/node/internals/components/PickerFieldUI.js +329 -0
  472. package/node/internals/components/{PickersPopper.js → PickerPopper/PickerPopper.js} +48 -48
  473. package/node/internals/components/PickerPopper/index.js +25 -0
  474. package/node/internals/components/PickerPopper/pickerPopperClasses.js +14 -0
  475. package/node/internals/components/PickerProvider.js +27 -9
  476. package/node/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +12 -11
  477. package/node/internals/components/PickersModalDialog.js +9 -3
  478. package/node/internals/components/PickersToolbar.js +15 -12
  479. package/node/internals/components/PickersToolbarButton.js +4 -6
  480. package/node/internals/components/PickersToolbarText.js +10 -12
  481. package/node/internals/hooks/date-helpers-hooks.js +4 -3
  482. package/node/internals/hooks/useDesktopPicker/useDesktopPicker.js +37 -122
  483. package/node/internals/hooks/useField/buildSectionsFromFormat.js +1 -1
  484. package/node/internals/hooks/useField/index.js +8 -1
  485. package/node/internals/hooks/useField/useField.js +16 -3
  486. package/node/internals/hooks/useField/useField.utils.js +2 -2
  487. package/node/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +56 -0
  488. package/node/internals/hooks/useField/useFieldState.js +2 -3
  489. package/node/internals/hooks/useField/useFieldV6TextField.js +5 -2
  490. package/node/internals/hooks/useField/useFieldV7TextField.js +6 -3
  491. package/node/internals/hooks/useFieldOwnerState.js +24 -0
  492. package/node/internals/hooks/useMobilePicker/useMobilePicker.js +35 -69
  493. package/node/internals/hooks/useNullablePickerContext.js +16 -0
  494. package/node/internals/hooks/useOpenState.js +12 -9
  495. package/node/internals/hooks/usePicker/usePicker.js +4 -20
  496. package/node/internals/hooks/usePicker/usePickerProvider.js +51 -17
  497. package/node/internals/hooks/usePicker/usePickerValue.js +84 -213
  498. package/node/internals/hooks/usePicker/usePickerViews.js +31 -21
  499. package/node/internals/hooks/{useDefaultReduceAnimations.js → useReduceAnimations.js} +7 -4
  500. package/node/internals/hooks/useStaticPicker/useStaticPicker.js +7 -12
  501. package/node/internals/hooks/useToolbarOwnerState.js +21 -0
  502. package/node/internals/hooks/useUtils.js +1 -1
  503. package/node/internals/index.js +87 -34
  504. package/node/internals/models/index.js +11 -0
  505. package/node/internals/models/manager.js +5 -0
  506. package/node/internals/models/pickers.js +5 -0
  507. package/node/internals/utils/date-utils.js +1 -1
  508. package/node/internals/utils/utils.js +14 -2
  509. package/node/internals/utils/valueManagers.js +4 -4
  510. package/node/locales/index.js +11 -0
  511. package/node/locales/nbNO.js +15 -19
  512. package/node/locales/nlNL.js +7 -7
  513. package/node/locales/roRO.js +15 -18
  514. package/node/locales/utils/getPickersLocalization.js +2 -16
  515. package/node/locales/zhTW.js +79 -0
  516. package/node/managers/index.js +26 -0
  517. package/node/managers/useDateManager.js +63 -0
  518. package/node/managers/useDateTimeManager.js +68 -0
  519. package/node/managers/useTimeManager.js +59 -0
  520. package/node/models/index.js +11 -0
  521. package/node/models/manager.js +5 -0
  522. package/node/validation/useValidation.js +1 -1
  523. package/node/validation/validateDate.js +8 -0
  524. package/node/validation/validateDateTime.js +8 -0
  525. package/node/validation/validateTime.js +8 -0
  526. package/package.json +5 -5
  527. package/themeAugmentation/components.d.ts +3 -11
  528. package/themeAugmentation/overrides.d.ts +5 -7
  529. package/themeAugmentation/props.d.ts +7 -9
  530. package/validation/extractValidationProps.d.ts +1 -1
  531. package/validation/useValidation.d.ts +7 -6
  532. package/validation/useValidation.js +1 -1
  533. package/validation/validateDate.d.ts +12 -3
  534. package/validation/validateDate.js +8 -0
  535. package/validation/validateDateTime.d.ts +12 -4
  536. package/validation/validateDateTime.js +8 -0
  537. package/validation/validateTime.d.ts +12 -3
  538. package/validation/validateTime.js +8 -0
  539. package/AdapterDateFnsJalaliV3/index.d.ts +0 -1
  540. package/AdapterDateFnsJalaliV3/index.js +0 -1
  541. package/AdapterDateFnsV3/index.d.ts +0 -1
  542. package/AdapterDateFnsV3/index.js +0 -1
  543. package/MonthCalendar/PickersMonth.d.ts +0 -28
  544. package/MonthCalendar/pickersMonthClasses.d.ts +0 -13
  545. package/MonthCalendar/pickersMonthClasses.js +0 -5
  546. package/YearCalendar/PickersYear.d.ts +0 -27
  547. package/YearCalendar/pickersYearClasses.d.ts +0 -13
  548. package/YearCalendar/pickersYearClasses.js +0 -5
  549. package/internals/components/pickersPopperClasses.d.ts +0 -9
  550. package/internals/components/pickersPopperClasses.js +0 -5
  551. package/internals/hooks/defaultizedFieldProps.d.ts +0 -18
  552. package/internals/hooks/defaultizedFieldProps.js +0 -40
  553. package/internals/hooks/useDefaultReduceAnimations.d.ts +0 -2
  554. package/internals/hooks/useIsLandscape.d.ts +0 -4
  555. package/internals/hooks/useIsLandscape.js +0 -35
  556. package/internals/hooks/usePicker/usePickerLayoutProps.d.ts +0 -32
  557. package/internals/hooks/usePicker/usePickerLayoutProps.js +0 -31
  558. package/internals/utils/convertFieldResponseIntoMuiTextFieldProps.d.ts +0 -3
  559. package/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +0 -44
  560. package/modern/AdapterDateFnsJalaliV3/index.js +0 -1
  561. package/modern/AdapterDateFnsV3/index.js +0 -1
  562. package/modern/MonthCalendar/pickersMonthClasses.js +0 -5
  563. package/modern/YearCalendar/pickersYearClasses.js +0 -5
  564. package/modern/internals/components/pickersPopperClasses.js +0 -5
  565. package/modern/internals/hooks/defaultizedFieldProps.js +0 -40
  566. package/modern/internals/hooks/useIsLandscape.js +0 -35
  567. package/modern/internals/hooks/usePicker/usePickerLayoutProps.js +0 -31
  568. package/modern/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +0 -44
  569. package/node/AdapterDateFnsV3/AdapterDateFnsV3.js +0 -299
  570. package/node/MonthCalendar/pickersMonthClasses.js +0 -12
  571. package/node/YearCalendar/pickersYearClasses.js +0 -12
  572. package/node/internals/components/pickersPopperClasses.js +0 -12
  573. package/node/internals/hooks/defaultizedFieldProps.js +0 -50
  574. package/node/internals/hooks/useIsLandscape.js +0 -43
  575. package/node/internals/hooks/usePicker/usePickerLayoutProps.js +0 -38
  576. package/node/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +0 -52
@@ -1,14 +1,13 @@
1
1
  import { warnOnce } from '@mui/x-internals/warning';
2
2
  import { usePickerValue } from "./usePickerValue.js";
3
3
  import { usePickerViews } from "./usePickerViews.js";
4
- import { usePickerLayoutProps } from "./usePickerLayoutProps.js";
5
4
  import { usePickerProvider } from "./usePickerProvider.js";
6
5
  export const usePicker = ({
6
+ ref,
7
7
  props,
8
8
  valueManager,
9
9
  valueType,
10
10
  variant,
11
- additionalViewProps,
12
11
  validator,
13
12
  autoFocusView,
14
13
  rendererInterceptor,
@@ -24,42 +23,27 @@ export const usePicker = ({
24
23
  props,
25
24
  valueManager,
26
25
  valueType,
27
- variant,
28
26
  validator
29
27
  });
30
28
  const pickerViewsResponse = usePickerViews({
31
29
  props,
32
- additionalViewProps,
33
30
  autoFocusView,
34
31
  fieldRef,
35
32
  propsFromPickerValue: pickerValueResponse.viewProps,
36
33
  rendererInterceptor
37
34
  });
38
- const pickerLayoutResponse = usePickerLayoutProps({
39
- props,
40
- variant,
41
- propsFromPickerValue: pickerValueResponse.layoutProps,
42
- propsFromPickerViews: pickerViewsResponse.layoutProps
43
- });
44
35
  const providerProps = usePickerProvider({
36
+ ref,
45
37
  props,
46
- pickerValueResponse,
47
38
  localeText,
48
39
  valueManager,
49
40
  variant,
50
- views: pickerViewsResponse.views
41
+ paramsFromUsePickerValue: pickerValueResponse.provider,
42
+ paramsFromUsePickerViews: pickerViewsResponse.provider
51
43
  });
52
44
  return {
53
- // Picker value
54
- open: pickerValueResponse.open,
55
- actions: pickerValueResponse.actions,
56
- fieldProps: pickerValueResponse.fieldProps,
57
45
  // Picker views
58
46
  renderCurrentView: pickerViewsResponse.renderCurrentView,
59
- hasUIView: pickerViewsResponse.hasUIView,
60
- shouldRestoreFocus: pickerViewsResponse.shouldRestoreFocus,
61
- // Picker layout
62
- layoutProps: pickerLayoutResponse.layoutProps,
63
47
  // Picker provider
64
48
  providerProps,
65
49
  // Picker owner state
@@ -1,20 +1,20 @@
1
- import { UsePickerValueParams, UsePickerValueProps, UsePickerValueBaseProps, UsePickerValueResponse } from './usePickerValue.types';
2
- import { UsePickerViewsProps, UsePickerViewParams, UsePickerViewsResponse, UsePickerViewsBaseProps } from './usePickerViews';
3
- import { UsePickerLayoutPropsResponse } from './usePickerLayoutProps';
4
- import { FieldSection, PickerOwnerState } from '../../../models';
5
- import { DateOrTimeViewWithMeridiem } from '../../models';
1
+ import { UsePickerValueParams, UsePickerValueProps, UsePickerValueBaseProps } from './usePickerValue.types';
2
+ import { UsePickerViewsProps, UsePickerViewParams, UsePickerViewsBaseProps } from './usePickerViews';
3
+ import { InferError, PickerOwnerState } from '../../../models';
4
+ import { DateOrTimeViewWithMeridiem, PickerValidValue } from '../../models';
6
5
  import { UsePickerProviderParameters, UsePickerProviderProps, UsePickerProviderReturnValue } from './usePickerProvider';
7
6
  /**
8
7
  * Props common to all picker headless implementations.
9
8
  */
10
- export interface UsePickerBaseProps<TValue, TView extends DateOrTimeViewWithMeridiem, TError, TExternalProps extends UsePickerViewsProps<TValue, TView, any, any>, TAdditionalProps extends {}> extends UsePickerValueBaseProps<TValue, TError>, UsePickerViewsBaseProps<TValue, TView, TExternalProps, TAdditionalProps>, UsePickerProviderProps {
9
+ export interface UsePickerBaseProps<TValue extends PickerValidValue, TView extends DateOrTimeViewWithMeridiem, TError, TExternalProps extends UsePickerViewsProps<TValue, TView, any>> extends UsePickerValueBaseProps<TValue, TError>, UsePickerViewsBaseProps<TValue, TView, TExternalProps>, UsePickerProviderProps {
11
10
  }
12
- export interface UsePickerProps<TValue, TView extends DateOrTimeViewWithMeridiem, TError, TExternalProps extends UsePickerViewsProps<TValue, TView, any, any>, TAdditionalProps extends {}> extends UsePickerValueProps<TValue, TError>, UsePickerViewsProps<TValue, TView, TExternalProps, TAdditionalProps>, UsePickerProviderProps {
11
+ export interface UsePickerProps<TValue extends PickerValidValue, TView extends DateOrTimeViewWithMeridiem, TError, TExternalProps extends UsePickerViewsProps<TValue, TView, any>> extends UsePickerValueProps<TValue, TError>, UsePickerViewsProps<TValue, TView, TExternalProps>, UsePickerProviderProps {
13
12
  }
14
- export interface UsePickerParams<TValue, TView extends DateOrTimeViewWithMeridiem, TSection extends FieldSection, TExternalProps extends UsePickerProps<TValue, TView, any, any, any>, TAdditionalProps extends {}> extends Pick<UsePickerValueParams<TValue, TExternalProps>, 'valueManager' | 'valueType' | 'variant' | 'validator'>, Pick<UsePickerViewParams<TValue, TView, TSection, TExternalProps, TAdditionalProps>, 'additionalViewProps' | 'autoFocusView' | 'rendererInterceptor' | 'fieldRef'>, Pick<UsePickerProviderParameters<TValue>, 'localeText'> {
13
+ export interface UsePickerParams<TValue extends PickerValidValue, TView extends DateOrTimeViewWithMeridiem, TExternalProps extends UsePickerProps<TValue, TView, any, any>> extends Pick<UsePickerValueParams<TValue, TExternalProps>, 'valueManager' | 'valueType' | 'validator'>, Pick<UsePickerViewParams<TValue, TView, TExternalProps>, 'autoFocusView' | 'rendererInterceptor' | 'fieldRef'>, Pick<UsePickerProviderParameters<TValue, TView, InferError<TExternalProps>>, 'localeText' | 'variant' | 'ref'> {
15
14
  props: TExternalProps;
16
15
  }
17
- export interface UsePickerResponse<TValue, TView extends DateOrTimeViewWithMeridiem, TSection extends FieldSection, TError> extends Omit<UsePickerValueResponse<TValue, TSection, TError>, 'viewProps' | 'layoutProps'>, Omit<UsePickerViewsResponse<TView>, 'layoutProps' | 'views'>, UsePickerLayoutPropsResponse<TValue, TView> {
16
+ export interface UsePickerReturnValue<TValue extends PickerValidValue> {
18
17
  ownerState: PickerOwnerState;
19
- providerProps: UsePickerProviderReturnValue;
18
+ renderCurrentView: () => React.ReactNode;
19
+ providerProps: UsePickerProviderReturnValue<TValue>;
20
20
  }
@@ -1,21 +1,24 @@
1
- import { FieldSection } from '../../../models';
2
- import { PickerValueManager, UsePickerValueResponse } from './usePickerValue.types';
1
+ import * as React from 'react';
2
+ import { PickerValueManager, UsePickerValueProviderParams } from './usePickerValue.types';
3
3
  import { PickerProviderProps } from '../../components/PickerProvider';
4
4
  import type { UsePickerProps } from './usePicker.types';
5
- import { DateOrTimeViewWithMeridiem, FormProps, PickerOrientation, PickerVariant } from '../../models';
5
+ import { DateOrTimeViewWithMeridiem, FormProps, PickerOrientation, PickerValidValue, PickerVariant } from '../../models';
6
+ import { UsePickerViewsProviderParams } from './usePickerViews';
7
+ import { PickerFieldPrivateContextValue } from '../useField/useFieldInternalPropsWithDefaults';
6
8
  export declare const usePickerOrientation: (views: readonly DateOrTimeViewWithMeridiem[], customOrientation: PickerOrientation | undefined) => PickerOrientation;
7
- export declare function usePickerProvider<TValue>(parameters: UsePickerProviderParameters<TValue>): UsePickerProviderReturnValue;
8
- export interface UsePickerProviderParameters<TValue> extends Pick<PickerProviderProps, 'localeText'> {
9
- props: UsePickerProps<TValue, any, any, any, any>;
10
- pickerValueResponse: UsePickerValueResponse<TValue, FieldSection, any>;
9
+ export declare function usePickerProvider<TValue extends PickerValidValue, TView extends DateOrTimeViewWithMeridiem, TError>(parameters: UsePickerProviderParameters<TValue, TView, TError>): UsePickerProviderReturnValue<TValue>;
10
+ export interface UsePickerProviderParameters<TValue extends PickerValidValue, TView extends DateOrTimeViewWithMeridiem, TError> extends Pick<PickerProviderProps<TValue>, 'localeText'> {
11
+ ref: React.ForwardedRef<HTMLDivElement> | undefined;
12
+ props: UsePickerProps<TValue, any, any, any> & UsePickerProviderNonStaticProps;
11
13
  valueManager: PickerValueManager<TValue, any>;
12
14
  variant: PickerVariant;
13
- views: readonly DateOrTimeViewWithMeridiem[];
15
+ paramsFromUsePickerValue: UsePickerValueProviderParams<TValue, TError>;
16
+ paramsFromUsePickerViews: UsePickerViewsProviderParams<TView>;
14
17
  }
15
- export interface UsePickerProviderReturnValue extends Omit<PickerProviderProps, 'children'> {
18
+ export interface UsePickerProviderReturnValue<TValue extends PickerValidValue> extends Omit<PickerProviderProps<TValue>, 'children'> {
16
19
  }
17
20
  /**
18
- * Props used to create the private context.
21
+ * Props used to create the picker's contexts.
19
22
  * Those props are exposed on all the pickers.
20
23
  */
21
24
  export interface UsePickerProviderProps extends FormProps {
@@ -23,4 +26,36 @@ export interface UsePickerProviderProps extends FormProps {
23
26
  * Force rendering in particular orientation.
24
27
  */
25
28
  orientation?: PickerOrientation;
29
+ /**
30
+ * If `true`, disable heavy animations.
31
+ * @default `@media(prefers-reduced-motion: reduce)` || `navigator.userAgent` matches Android <10 or iOS <13
32
+ */
33
+ reduceAnimations?: boolean;
34
+ }
35
+ /**
36
+ * Props used to create the picker's contexts and that are not available on static pickers.
37
+ */
38
+ export interface UsePickerProviderNonStaticProps extends PickerFieldPrivateContextValue {
39
+ /**
40
+ * Format of the date when rendered in the input(s).
41
+ * Defaults to localized format based on the used `views`.
42
+ */
43
+ format?: string;
44
+ /**
45
+ * If `true`, the open picker button will not be rendered (renders only the field).
46
+ * @default false
47
+ */
48
+ disableOpenPicker?: boolean;
49
+ /**
50
+ * The label content.
51
+ */
52
+ label?: React.ReactNode;
53
+ /**
54
+ * Pass a ref to the `input` element.
55
+ */
56
+ inputRef?: React.Ref<HTMLInputElement>;
57
+ /**
58
+ * Name attribute used by the `input` element in the Field.
59
+ */
60
+ name?: string;
26
61
  }
@@ -1,7 +1,9 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
1
2
  import * as React from 'react';
2
3
  import useEnhancedEffect from '@mui/utils/useEnhancedEffect';
3
4
  import { useUtils } from "../useUtils.js";
4
5
  import { arrayIncludes } from "../../utils/utils.js";
6
+ import { useReduceAnimations } from "../useReduceAnimations.js";
5
7
  function getOrientation() {
6
8
  if (typeof window === 'undefined') {
7
9
  return 'portrait';
@@ -35,43 +37,75 @@ export const usePickerOrientation = (views, customOrientation) => {
35
37
  };
36
38
  export function usePickerProvider(parameters) {
37
39
  const {
40
+ ref,
38
41
  props,
39
- pickerValueResponse,
40
42
  valueManager,
41
43
  localeText,
42
44
  variant,
43
- views
45
+ paramsFromUsePickerValue,
46
+ paramsFromUsePickerViews
44
47
  } = parameters;
45
48
  const utils = useUtils();
46
- const orientation = usePickerOrientation(views, props.orientation);
49
+ const orientation = usePickerOrientation(paramsFromUsePickerViews.views, props.orientation);
50
+ const reduceAnimations = useReduceAnimations(props.reduceAnimations);
51
+ const triggerRef = React.useRef(null);
47
52
  const ownerState = React.useMemo(() => ({
48
- isPickerValueEmpty: valueManager.areValuesEqual(utils, pickerValueResponse.viewProps.value, valueManager.emptyValue),
49
- isPickerOpen: pickerValueResponse.open,
53
+ isPickerValueEmpty: valueManager.areValuesEqual(utils, paramsFromUsePickerValue.value, valueManager.emptyValue),
54
+ isPickerOpen: paramsFromUsePickerValue.contextValue.open,
50
55
  isPickerDisabled: props.disabled ?? false,
51
56
  isPickerReadOnly: props.readOnly ?? false,
52
57
  pickerOrientation: orientation,
53
58
  pickerVariant: variant
54
- }), [utils, valueManager, pickerValueResponse.viewProps.value, pickerValueResponse.open, orientation, variant, props.disabled, props.readOnly]);
55
- const contextValue = React.useMemo(() => ({
56
- onOpen: pickerValueResponse.actions.onOpen,
57
- onClose: pickerValueResponse.actions.onClose,
58
- open: pickerValueResponse.open,
59
+ }), [utils, valueManager, paramsFromUsePickerValue.value, paramsFromUsePickerValue.contextValue.open, orientation, variant, props.disabled, props.readOnly]);
60
+ const triggerStatus = React.useMemo(() => {
61
+ if (props.disableOpenPicker || !paramsFromUsePickerViews.hasUIView) {
62
+ return 'hidden';
63
+ }
64
+ if (props.disabled || props.readOnly) {
65
+ return 'disabled';
66
+ }
67
+ return 'enabled';
68
+ }, [props.disableOpenPicker, paramsFromUsePickerViews.hasUIView, props.disabled, props.readOnly]);
69
+ const contextValue = React.useMemo(() => _extends({}, paramsFromUsePickerValue.contextValue, paramsFromUsePickerViews.contextValue, {
59
70
  disabled: props.disabled ?? false,
60
71
  readOnly: props.readOnly ?? false,
61
72
  variant,
62
- orientation
63
- }), [pickerValueResponse.actions.onOpen, pickerValueResponse.actions.onClose, pickerValueResponse.open, variant, orientation, props.disabled, props.readOnly]);
64
- const privateContextValue = React.useMemo(() => ({
73
+ orientation,
74
+ reduceAnimations,
75
+ triggerRef,
76
+ triggerStatus,
77
+ fieldFormat: props.format ?? '',
78
+ name: props.name,
79
+ label: props.label,
80
+ rootSx: props.sx,
81
+ rootRef: ref,
82
+ rootClassName: props.className
83
+ }), [paramsFromUsePickerValue.contextValue, paramsFromUsePickerViews.contextValue, ref, variant, orientation, reduceAnimations, props.disabled, props.readOnly, props.format, props.className, props.name, props.label, props.sx, triggerRef, triggerStatus]);
84
+ const privateContextValue = React.useMemo(() => _extends({}, paramsFromUsePickerValue.privateContextValue, paramsFromUsePickerViews.privateContextValue, {
65
85
  ownerState
66
- }), [ownerState]);
86
+ }), [paramsFromUsePickerValue.privateContextValue, paramsFromUsePickerViews.privateContextValue, ownerState]);
87
+ const actionsContextValue = React.useMemo(() => _extends({}, paramsFromUsePickerValue.actionsContextValue, paramsFromUsePickerViews.actionsContextValue), [paramsFromUsePickerValue.actionsContextValue, paramsFromUsePickerViews.actionsContextValue]);
88
+ const fieldPrivateContextValue = React.useMemo(() => ({
89
+ formatDensity: props.formatDensity,
90
+ enableAccessibleFieldDOMStructure: props.enableAccessibleFieldDOMStructure,
91
+ selectedSections: props.selectedSections,
92
+ onSelectedSectionsChange: props.onSelectedSectionsChange
93
+ }), [props.formatDensity, props.enableAccessibleFieldDOMStructure, props.selectedSections, props.onSelectedSectionsChange]);
67
94
  return {
68
95
  localeText,
69
96
  contextValue,
70
- privateContextValue
97
+ privateContextValue,
98
+ actionsContextValue,
99
+ fieldPrivateContextValue,
100
+ isValidContextValue: paramsFromUsePickerValue.isValidContextValue
71
101
  };
72
102
  }
73
103
 
74
104
  /**
75
- * Props used to create the private context.
105
+ * Props used to create the picker's contexts.
76
106
  * Those props are exposed on all the pickers.
107
+ */
108
+
109
+ /**
110
+ * Props used to create the picker's contexts and that are not available on static pickers.
77
111
  */
@@ -1,6 +1,7 @@
1
- import { FieldSection, InferError } from '../../../models';
1
+ import { InferError } from '../../../models';
2
2
  import { UsePickerValueProps, UsePickerValueParams, UsePickerValueResponse } from './usePickerValue.types';
3
+ import { PickerValidValue } from '../../models';
3
4
  /**
4
5
  * Manage the value lifecycle of all the pickers.
5
6
  */
6
- export declare const usePickerValue: <TValue, TSection extends FieldSection, TExternalProps extends UsePickerValueProps<TValue, any>>({ props, valueManager, valueType, variant, validator, }: UsePickerValueParams<TValue, TExternalProps>) => UsePickerValueResponse<TValue, TSection, InferError<TExternalProps>>;
7
+ export declare const usePickerValue: <TValue extends PickerValidValue, TExternalProps extends UsePickerValueProps<TValue, any>>({ props, valueManager, valueType, validator, }: UsePickerValueParams<TValue, TExternalProps>) => UsePickerValueResponse<TValue, InferError<TExternalProps>>;
@@ -5,107 +5,6 @@ import { useOpenState } from "../useOpenState.js";
5
5
  import { useLocalizationContext, useUtils } from "../useUtils.js";
6
6
  import { useValidation } from "../../../validation/index.js";
7
7
  import { useValueWithTimezone } from "../useValueWithTimezone.js";
8
-
9
- /**
10
- * Decide if the new value should be published
11
- * The published value will be passed to `onChange` if defined.
12
- */
13
- const shouldPublishValue = params => {
14
- const {
15
- action,
16
- hasChanged,
17
- dateState,
18
- isControlled
19
- } = params;
20
- const isCurrentValueTheDefaultValue = !isControlled && !dateState.hasBeenModifiedSinceMount;
21
-
22
- // The field is responsible for only calling `onChange` when needed.
23
- if (action.name === 'setValueFromField') {
24
- return true;
25
- }
26
- if (action.name === 'setValueFromAction') {
27
- // If the component is not controlled, and the value has not been modified since the mount,
28
- // Then we want to publish the default value whenever the user pressed the "Accept", "Today" or "Clear" button.
29
- if (isCurrentValueTheDefaultValue && ['accept', 'today', 'clear'].includes(action.pickerAction)) {
30
- return true;
31
- }
32
- return hasChanged(dateState.lastPublishedValue);
33
- }
34
- if (action.name === 'setValueFromView' && action.selectionState !== 'shallow') {
35
- // On the first view,
36
- // If the value is not controlled, then clicking on any value (including the one equal to `defaultValue`) should call `onChange`
37
- if (isCurrentValueTheDefaultValue) {
38
- return true;
39
- }
40
- return hasChanged(dateState.lastPublishedValue);
41
- }
42
- if (action.name === 'setValueFromShortcut') {
43
- // On the first view,
44
- // If the value is not controlled, then clicking on any value (including the one equal to `defaultValue`) should call `onChange`
45
- if (isCurrentValueTheDefaultValue) {
46
- return true;
47
- }
48
- return hasChanged(dateState.lastPublishedValue);
49
- }
50
- return false;
51
- };
52
-
53
- /**
54
- * Decide if the new value should be committed.
55
- * The committed value will be passed to `onAccept` if defined.
56
- * It will also be used as a reset target when calling the `cancel` picker action (when clicking on the "Cancel" button).
57
- */
58
- const shouldCommitValue = params => {
59
- const {
60
- action,
61
- hasChanged,
62
- dateState,
63
- isControlled,
64
- closeOnSelect
65
- } = params;
66
- const isCurrentValueTheDefaultValue = !isControlled && !dateState.hasBeenModifiedSinceMount;
67
- if (action.name === 'setValueFromAction') {
68
- // If the component is not controlled, and the value has not been modified since the mount,
69
- // Then we want to commit the default value whenever the user pressed the "Accept", "Today" or "Clear" button.
70
- if (isCurrentValueTheDefaultValue && ['accept', 'today', 'clear'].includes(action.pickerAction)) {
71
- return true;
72
- }
73
- return hasChanged(dateState.lastCommittedValue);
74
- }
75
- if (action.name === 'setValueFromView' && action.selectionState === 'finish' && closeOnSelect) {
76
- // On picker where the 1st view is also the last view,
77
- // If the value is not controlled, then clicking on any value (including the one equal to `defaultValue`) should call `onAccept`
78
- if (isCurrentValueTheDefaultValue) {
79
- return true;
80
- }
81
- return hasChanged(dateState.lastCommittedValue);
82
- }
83
- if (action.name === 'setValueFromShortcut') {
84
- return action.changeImportance === 'accept' && hasChanged(dateState.lastCommittedValue);
85
- }
86
- return false;
87
- };
88
-
89
- /**
90
- * Decide if the picker should be closed after the value is updated.
91
- */
92
- const shouldClosePicker = params => {
93
- const {
94
- action,
95
- closeOnSelect
96
- } = params;
97
- if (action.name === 'setValueFromAction') {
98
- return true;
99
- }
100
- if (action.name === 'setValueFromView') {
101
- return action.selectionState === 'finish' && closeOnSelect;
102
- }
103
- if (action.name === 'setValueFromShortcut') {
104
- return action.changeImportance === 'accept';
105
- }
106
- return false;
107
- };
108
-
109
8
  /**
110
9
  * Manage the value lifecycle of all the pickers.
111
10
  */
@@ -113,7 +12,6 @@ export const usePickerValue = ({
113
12
  props,
114
13
  valueManager,
115
14
  valueType,
116
- variant,
117
15
  validator
118
16
  }) => {
119
17
  const {
@@ -121,7 +19,7 @@ export const usePickerValue = ({
121
19
  onChange,
122
20
  value: inValueWithoutRenderTimezone,
123
21
  defaultValue: inDefaultValue,
124
- closeOnSelect = variant === 'desktop',
22
+ closeOnSelect = false,
125
23
  timezone: timezoneProp,
126
24
  referenceDate
127
25
  } = props;
@@ -151,8 +49,8 @@ export const usePickerValue = ({
151
49
  const utils = useUtils();
152
50
  const adapter = useLocalizationContext();
153
51
  const {
154
- isOpen,
155
- setIsOpen
52
+ open,
53
+ setOpen
156
54
  } = useOpenState(props);
157
55
  const {
158
56
  timezone,
@@ -201,44 +99,51 @@ export const usePickerValue = ({
201
99
  value: dateState.draft,
202
100
  onError: props.onError
203
101
  });
204
- const updateDate = useEventCallback(action => {
205
- const updaterParams = {
206
- action,
207
- dateState,
208
- hasChanged: comparison => !valueManager.areValuesEqual(utils, action.value, comparison),
209
- isControlled,
210
- closeOnSelect
211
- };
212
- const shouldPublish = shouldPublishValue(updaterParams);
213
- const shouldCommit = shouldCommitValue(updaterParams);
214
- const shouldClose = shouldClosePicker(updaterParams);
102
+ const setValue = useEventCallback((newValue, options) => {
103
+ const {
104
+ changeImportance = 'accept',
105
+ skipPublicationIfPristine = false,
106
+ validationError,
107
+ shortcut,
108
+ shouldClose = changeImportance === 'accept'
109
+ } = options ?? {};
110
+ let shouldPublish;
111
+ let shouldCommit;
112
+ if (!skipPublicationIfPristine && !isControlled && !dateState.hasBeenModifiedSinceMount) {
113
+ // If the value is not controlled and the value has never been modified before,
114
+ // Then clicking on any value (including the one equal to `defaultValue`) should call `onChange` and `onAccept`
115
+ shouldPublish = true;
116
+ shouldCommit = changeImportance === 'accept';
117
+ } else {
118
+ shouldPublish = !valueManager.areValuesEqual(utils, newValue, dateState.lastPublishedValue);
119
+ shouldCommit = changeImportance === 'accept' && !valueManager.areValuesEqual(utils, newValue, dateState.lastCommittedValue);
120
+ }
215
121
  setDateState(prev => _extends({}, prev, {
216
- draft: action.value,
217
- lastPublishedValue: shouldPublish ? action.value : prev.lastPublishedValue,
218
- lastCommittedValue: shouldCommit ? action.value : prev.lastCommittedValue,
122
+ draft: newValue,
123
+ lastPublishedValue: shouldPublish ? newValue : prev.lastPublishedValue,
124
+ lastCommittedValue: shouldCommit ? newValue : prev.lastCommittedValue,
219
125
  hasBeenModifiedSinceMount: true
220
126
  }));
221
127
  let cachedContext = null;
222
128
  const getContext = () => {
223
129
  if (!cachedContext) {
224
- const validationError = action.name === 'setValueFromField' ? action.context.validationError : getValidationErrorForNewValue(action.value);
225
130
  cachedContext = {
226
- validationError
131
+ validationError: validationError == null ? getValidationErrorForNewValue(newValue) : validationError
227
132
  };
228
- if (action.name === 'setValueFromShortcut') {
229
- cachedContext.shortcut = action.shortcut;
133
+ if (shortcut) {
134
+ cachedContext.shortcut = shortcut;
230
135
  }
231
136
  }
232
137
  return cachedContext;
233
138
  };
234
139
  if (shouldPublish) {
235
- handleValueChange(action.value, getContext());
140
+ handleValueChange(newValue, getContext());
236
141
  }
237
142
  if (shouldCommit && onAccept) {
238
- onAccept(action.value, getContext());
143
+ onAccept(newValue, getContext());
239
144
  }
240
145
  if (shouldClose) {
241
- setIsOpen(false);
146
+ setOpen(false);
242
147
  }
243
148
  });
244
149
  if (dateState.lastControlledValue !== inValueWithoutRenderTimezone) {
@@ -252,85 +157,6 @@ export const usePickerValue = ({
252
157
  hasBeenModifiedSinceMount: true
253
158
  }));
254
159
  }
255
- const handleClear = useEventCallback(() => {
256
- updateDate({
257
- value: valueManager.emptyValue,
258
- name: 'setValueFromAction',
259
- pickerAction: 'clear'
260
- });
261
- });
262
- const handleAccept = useEventCallback(() => {
263
- updateDate({
264
- value: dateState.lastPublishedValue,
265
- name: 'setValueFromAction',
266
- pickerAction: 'accept'
267
- });
268
- });
269
- const handleDismiss = useEventCallback(() => {
270
- updateDate({
271
- value: dateState.lastPublishedValue,
272
- name: 'setValueFromAction',
273
- pickerAction: 'dismiss'
274
- });
275
- });
276
- const handleCancel = useEventCallback(() => {
277
- updateDate({
278
- value: dateState.lastCommittedValue,
279
- name: 'setValueFromAction',
280
- pickerAction: 'cancel'
281
- });
282
- });
283
- const handleSetToday = useEventCallback(() => {
284
- updateDate({
285
- value: valueManager.getTodayValue(utils, timezone, valueType),
286
- name: 'setValueFromAction',
287
- pickerAction: 'today'
288
- });
289
- });
290
- const handleOpen = useEventCallback(event => {
291
- event.preventDefault();
292
- setIsOpen(true);
293
- });
294
- const handleClose = useEventCallback(event => {
295
- event?.preventDefault();
296
- setIsOpen(false);
297
- });
298
- const handleChange = useEventCallback((newValue, selectionState = 'partial') => updateDate({
299
- name: 'setValueFromView',
300
- value: newValue,
301
- selectionState
302
- }));
303
- const handleSelectShortcut = useEventCallback((newValue, changeImportance, shortcut) => updateDate({
304
- name: 'setValueFromShortcut',
305
- value: newValue,
306
- changeImportance,
307
- shortcut
308
- }));
309
- const handleChangeFromField = useEventCallback((newValue, context) => updateDate({
310
- name: 'setValueFromField',
311
- value: newValue,
312
- context
313
- }));
314
- const actions = {
315
- onClear: handleClear,
316
- onAccept: handleAccept,
317
- onDismiss: handleDismiss,
318
- onCancel: handleCancel,
319
- onSetToday: handleSetToday,
320
- onOpen: handleOpen,
321
- onClose: handleClose
322
- };
323
- const fieldResponse = {
324
- value: dateState.draft,
325
- onChange: handleChangeFromField
326
- };
327
- const viewValue = React.useMemo(() => valueManager.cleanValue(utils, dateState.draft), [utils, valueManager, dateState.draft]);
328
- const viewResponse = {
329
- value: viewValue,
330
- onChange: handleChange,
331
- onClose: handleClose,
332
- open: isOpen
333
- };
334
160
  const isValid = testedValue => {
335
161
  const error = validator({
336
162
  adapter,
@@ -340,17 +166,61 @@ export const usePickerValue = ({
340
166
  });
341
167
  return !valueManager.hasError(error);
342
168
  };
343
- const layoutResponse = _extends({}, actions, {
344
- value: viewValue,
345
- onChange: handleChange,
346
- onSelectShortcut: handleSelectShortcut,
347
- isValid
169
+ const clearValue = useEventCallback(() => setValue(valueManager.emptyValue));
170
+ const setValueToToday = useEventCallback(() => setValue(valueManager.getTodayValue(utils, timezone, valueType)));
171
+ const acceptValueChanges = useEventCallback(() => setValue(dateState.lastPublishedValue));
172
+ const cancelValueChanges = useEventCallback(() => setValue(dateState.lastCommittedValue, {
173
+ skipPublicationIfPristine: true
174
+ }));
175
+ const dismissViews = useEventCallback(() => {
176
+ setValue(dateState.lastPublishedValue, {
177
+ skipPublicationIfPristine: true
178
+ });
179
+ });
180
+ const setValueFromView = useEventCallback((newValue, selectionState = 'partial') => {
181
+ // TODO: Expose a new method (private?) like `setView` that only updates the draft value.
182
+ if (selectionState === 'shallow') {
183
+ setDateState(prev => _extends({}, prev, {
184
+ draft: newValue,
185
+ hasBeenModifiedSinceMount: true
186
+ }));
187
+ }
188
+ setValue(newValue, {
189
+ changeImportance: selectionState === 'finish' && closeOnSelect ? 'accept' : 'set'
190
+ });
348
191
  });
192
+ const valueWithoutError = React.useMemo(() => valueManager.cleanValue(utils, dateState.draft), [utils, valueManager, dateState.draft]);
193
+ const viewResponse = {
194
+ value: valueWithoutError,
195
+ onChange: setValueFromView,
196
+ open,
197
+ setOpen
198
+ };
199
+ const actionsContextValue = React.useMemo(() => ({
200
+ setValue,
201
+ setOpen,
202
+ clearValue,
203
+ setValueToToday,
204
+ acceptValueChanges,
205
+ cancelValueChanges
206
+ }), [setValue, setOpen, clearValue, setValueToToday, acceptValueChanges, cancelValueChanges]);
207
+ const contextValue = React.useMemo(() => _extends({}, actionsContextValue, {
208
+ value: dateState.draft,
209
+ timezone,
210
+ open
211
+ }), [actionsContextValue, timezone, open, dateState.draft]);
212
+ const privateContextValue = React.useMemo(() => ({
213
+ dismissViews
214
+ }), [dismissViews]);
215
+ const providerParams = {
216
+ value: dateState.draft,
217
+ contextValue,
218
+ actionsContextValue,
219
+ privateContextValue,
220
+ isValidContextValue: isValid
221
+ };
349
222
  return {
350
- open: isOpen,
351
- fieldProps: fieldResponse,
352
223
  viewProps: viewResponse,
353
- layoutProps: layoutResponse,
354
- actions
224
+ provider: providerParams
355
225
  };
356
226
  };