@mui/x-date-pickers 8.0.0-alpha.0 → 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 (584) 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 +2215 -119
  21. package/DateCalendar/DateCalendar.js +5 -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 -45
  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 +92 -93
  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 -46
  56. package/DesktopTimePicker/DesktopTimePicker.js +6 -22
  57. package/DesktopTimePicker/DesktopTimePicker.types.d.ts +2 -2
  58. package/DigitalClock/DigitalClock.js +14 -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 +32 -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 +12 -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 -54
  85. package/PickersLayout/PickersLayout.types.d.ts +20 -22
  86. package/PickersLayout/usePickerLayout.d.ts +5 -4
  87. package/PickersLayout/usePickerLayout.js +26 -57
  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 +51 -44
  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 +10 -7
  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 +28 -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 +31 -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 +40 -64
  130. package/TimePicker/shared.d.ts +6 -6
  131. package/YearCalendar/YearCalendar.js +47 -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 +15 -6
  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 +94 -14
  164. package/internals/components/PickerProvider.js +28 -8
  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 +16 -15
  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 +36 -121
  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 +56 -49
  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 +3 -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 +8 -4
  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 +35 -69
  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 +10 -29
  206. package/internals/hooks/usePicker/usePicker.types.d.ts +11 -11
  207. package/internals/hooks/usePicker/usePickerProvider.d.ts +58 -7
  208. package/internals/hooks/usePicker/usePickerProvider.js +102 -12
  209. package/internals/hooks/usePicker/usePickerValue.d.ts +3 -2
  210. package/internals/hooks/usePicker/usePickerValue.js +100 -218
  211. package/internals/hooks/usePicker/usePickerValue.types.d.ts +135 -79
  212. package/internals/hooks/usePicker/usePickerViews.d.ts +59 -40
  213. package/internals/hooks/usePicker/usePickerViews.js +31 -19
  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 +8 -13
  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 +20 -15
  224. package/internals/hooks/useValueWithTimezone.js +13 -1
  225. package/internals/hooks/useViews.d.ts +5 -5
  226. package/internals/index.d.ts +28 -19
  227. package/internals/index.js +13 -8
  228. package/internals/models/common.d.ts +2 -1
  229. package/internals/models/fields.d.ts +8 -24
  230. package/internals/models/index.d.ts +1 -0
  231. package/internals/models/index.js +2 -1
  232. package/internals/models/manager.d.ts +15 -0
  233. package/internals/models/manager.js +1 -0
  234. package/internals/models/pickers.d.ts +1 -0
  235. package/internals/models/pickers.js +1 -0
  236. package/internals/models/props/basePickerProps.d.ts +3 -33
  237. package/internals/models/props/tabs.d.ts +0 -13
  238. package/internals/models/props/time.d.ts +2 -1
  239. package/internals/models/props/toolbar.d.ts +1 -20
  240. package/internals/models/value.d.ts +9 -0
  241. package/internals/utils/date-utils.d.ts +3 -3
  242. package/internals/utils/date-utils.js +1 -1
  243. package/internals/utils/utils.d.ts +3 -0
  244. package/internals/utils/utils.js +11 -1
  245. package/internals/utils/valueManagers.d.ts +4 -3
  246. package/internals/utils/valueManagers.js +4 -4
  247. package/locales/index.d.ts +1 -0
  248. package/locales/index.js +1 -0
  249. package/locales/nbNO.js +15 -19
  250. package/locales/nlNL.js +7 -7
  251. package/locales/roRO.js +15 -18
  252. package/locales/utils/getPickersLocalization.d.ts +0 -7
  253. package/locales/utils/getPickersLocalization.js +0 -13
  254. package/locales/zhTW.d.ts +80 -0
  255. package/locales/zhTW.js +73 -0
  256. package/managers/index.d.ts +6 -0
  257. package/managers/index.js +3 -0
  258. package/managers/package.json +6 -0
  259. package/managers/useDateManager.d.ts +27 -0
  260. package/managers/useDateManager.js +55 -0
  261. package/managers/useDateTimeManager.d.ts +28 -0
  262. package/managers/useDateTimeManager.js +60 -0
  263. package/managers/useTimeManager.d.ts +28 -0
  264. package/managers/useTimeManager.js +51 -0
  265. package/models/adapters.d.ts +5 -5
  266. package/models/common.d.ts +1 -0
  267. package/models/fields.d.ts +33 -10
  268. package/models/index.d.ts +1 -0
  269. package/models/index.js +1 -0
  270. package/models/manager.d.ts +87 -0
  271. package/models/manager.js +1 -0
  272. package/models/pickers.d.ts +25 -0
  273. package/models/validation.d.ts +2 -1
  274. package/modern/AdapterDateFns/AdapterDateFns.js +49 -47
  275. package/modern/AdapterDateFnsJalali/AdapterDateFnsJalali.js +48 -46
  276. package/modern/{AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.js → AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.js} +45 -52
  277. package/modern/AdapterDateFnsJalaliV2/index.js +1 -0
  278. package/modern/{AdapterDateFnsV3/AdapterDateFnsV3.js → AdapterDateFnsV2/AdapterDateFnsV2.js} +46 -54
  279. package/modern/AdapterDateFnsV2/index.js +1 -0
  280. package/modern/AdapterMoment/AdapterMoment.js +10 -0
  281. package/modern/DateCalendar/DateCalendar.js +5 -4
  282. package/modern/DateCalendar/DayCalendar.js +2 -0
  283. package/modern/DateCalendar/PickersFadeTransitionGroup.js +4 -6
  284. package/modern/DateCalendar/PickersSlideTransition.js +12 -5
  285. package/modern/DateField/DateField.js +29 -33
  286. package/modern/DateField/useDateField.js +14 -11
  287. package/modern/DatePicker/DatePicker.js +1 -1
  288. package/modern/DatePicker/DatePickerToolbar.js +17 -45
  289. package/modern/DateTimeField/DateTimeField.js +29 -33
  290. package/modern/DateTimeField/useDateTimeField.js +14 -11
  291. package/modern/DateTimePicker/DateTimePicker.js +2 -2
  292. package/modern/DateTimePicker/DateTimePickerTabs.js +15 -20
  293. package/modern/DateTimePicker/DateTimePickerToolbar.js +92 -93
  294. package/modern/DayCalendarSkeleton/DayCalendarSkeleton.js +10 -19
  295. package/modern/DesktopDatePicker/DesktopDatePicker.js +11 -17
  296. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +17 -27
  297. package/modern/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +9 -46
  298. package/modern/DesktopTimePicker/DesktopTimePicker.js +6 -22
  299. package/modern/DigitalClock/DigitalClock.js +14 -11
  300. package/modern/MobileDatePicker/MobileDatePicker.js +4 -14
  301. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +4 -14
  302. package/modern/MobileTimePicker/MobileTimePicker.js +4 -14
  303. package/modern/MonthCalendar/MonthCalendar.js +32 -11
  304. package/{MonthCalendar/PickersMonth.js → modern/MonthCalendar/MonthCalendarButton.js} +20 -61
  305. package/modern/MonthCalendar/index.js +1 -2
  306. package/modern/MonthCalendar/monthCalendarClasses.js +1 -1
  307. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClock.js +12 -7
  308. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +14 -10
  309. package/modern/PickersActionBar/PickersActionBar.js +26 -17
  310. package/modern/PickersCalendarHeader/PickersCalendarHeader.js +10 -7
  311. package/modern/PickersLayout/PickersLayout.js +23 -54
  312. package/modern/PickersLayout/usePickerLayout.js +26 -57
  313. package/modern/PickersSectionList/PickersSectionList.js +21 -16
  314. package/modern/PickersShortcuts/PickersShortcuts.js +21 -11
  315. package/modern/PickersTextField/PickersFilledInput/PickersFilledInput.js +34 -28
  316. package/modern/PickersTextField/PickersInput/PickersInput.js +20 -14
  317. package/modern/PickersTextField/PickersInput/pickersInputClasses.js +1 -1
  318. package/modern/PickersTextField/PickersInputBase/PickersInputBase.js +51 -44
  319. package/modern/PickersTextField/PickersOutlinedInput/Outline.js +13 -10
  320. package/modern/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +8 -14
  321. package/modern/PickersTextField/PickersTextField.js +75 -62
  322. package/modern/PickersTextField/usePickerTextFieldOwnerState.js +11 -0
  323. package/modern/StaticDatePicker/StaticDatePicker.js +2 -2
  324. package/modern/StaticDateTimePicker/StaticDateTimePicker.js +2 -2
  325. package/modern/StaticTimePicker/StaticTimePicker.js +2 -2
  326. package/modern/TimeClock/Clock.js +28 -27
  327. package/modern/TimeClock/ClockNumber.js +15 -11
  328. package/modern/TimeClock/ClockPointer.js +16 -10
  329. package/modern/TimeClock/TimeClock.js +31 -12
  330. package/modern/TimeField/TimeField.js +28 -32
  331. package/modern/TimeField/useTimeField.js +14 -11
  332. package/modern/TimePicker/TimePicker.js +2 -2
  333. package/modern/TimePicker/TimePickerToolbar.js +40 -64
  334. package/modern/YearCalendar/YearCalendar.js +47 -13
  335. package/{YearCalendar/PickersYear.js → modern/YearCalendar/YearCalendarButton.js} +20 -59
  336. package/modern/YearCalendar/index.js +1 -2
  337. package/modern/YearCalendar/yearCalendarClasses.js +1 -1
  338. package/modern/hooks/index.js +3 -1
  339. package/modern/hooks/useClearableField.js +4 -2
  340. package/modern/hooks/useIsValidValue.js +11 -0
  341. package/modern/hooks/useParsedFormat.js +11 -13
  342. package/modern/hooks/usePickerActionsContext.js +15 -0
  343. package/modern/hooks/usePickerContext.js +2 -2
  344. package/modern/hooks/useSplitFieldProps.js +8 -3
  345. package/modern/index.js +3 -2
  346. package/modern/internals/components/PickerFieldUI.js +317 -0
  347. package/{internals/components/PickersPopper.js → modern/internals/components/PickerPopper/PickerPopper.js} +47 -47
  348. package/modern/internals/components/PickerPopper/index.js +2 -0
  349. package/modern/internals/components/PickerPopper/pickerPopperClasses.js +6 -0
  350. package/modern/internals/components/PickerProvider.js +28 -8
  351. package/modern/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +12 -11
  352. package/modern/internals/components/PickersModalDialog.js +9 -3
  353. package/modern/internals/components/PickersToolbar.js +16 -15
  354. package/modern/internals/components/PickersToolbarButton.js +4 -6
  355. package/modern/internals/components/PickersToolbarText.js +11 -13
  356. package/modern/internals/hooks/date-helpers-hooks.js +4 -3
  357. package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.js +36 -121
  358. package/modern/internals/hooks/useField/buildSectionsFromFormat.js +1 -1
  359. package/modern/internals/hooks/useField/index.js +2 -1
  360. package/modern/internals/hooks/useField/useField.js +17 -4
  361. package/modern/internals/hooks/useField/useField.utils.js +2 -2
  362. package/modern/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +47 -0
  363. package/modern/internals/hooks/useField/useFieldState.js +3 -3
  364. package/modern/internals/hooks/useField/useFieldV6TextField.js +5 -2
  365. package/modern/internals/hooks/useField/useFieldV7TextField.js +8 -4
  366. package/modern/internals/hooks/useFieldOwnerState.js +16 -0
  367. package/modern/internals/hooks/useMobilePicker/useMobilePicker.js +35 -69
  368. package/modern/internals/hooks/useNullablePickerContext.js +10 -0
  369. package/modern/internals/hooks/useOpenState.js +11 -9
  370. package/modern/internals/hooks/usePicker/usePicker.js +10 -29
  371. package/modern/internals/hooks/usePicker/usePickerProvider.js +102 -12
  372. package/modern/internals/hooks/usePicker/usePickerValue.js +100 -218
  373. package/modern/internals/hooks/usePicker/usePickerViews.js +31 -19
  374. package/modern/internals/hooks/{useDefaultReduceAnimations.js → useReduceAnimations.js} +5 -2
  375. package/modern/internals/hooks/useStaticPicker/useStaticPicker.js +8 -13
  376. package/modern/internals/hooks/useToolbarOwnerState.js +13 -0
  377. package/modern/internals/hooks/useUtils.js +1 -1
  378. package/modern/internals/hooks/useValueWithTimezone.js +13 -1
  379. package/modern/internals/index.js +13 -8
  380. package/modern/internals/models/index.js +2 -1
  381. package/modern/internals/models/manager.js +1 -0
  382. package/modern/internals/models/pickers.js +1 -0
  383. package/modern/internals/utils/date-utils.js +1 -1
  384. package/modern/internals/utils/utils.js +11 -1
  385. package/modern/internals/utils/valueManagers.js +4 -4
  386. package/modern/locales/index.js +1 -0
  387. package/modern/locales/nbNO.js +15 -19
  388. package/modern/locales/nlNL.js +7 -7
  389. package/modern/locales/roRO.js +15 -18
  390. package/modern/locales/utils/getPickersLocalization.js +0 -13
  391. package/modern/locales/zhTW.js +73 -0
  392. package/modern/managers/index.js +3 -0
  393. package/modern/managers/useDateManager.js +55 -0
  394. package/modern/managers/useDateTimeManager.js +60 -0
  395. package/modern/managers/useTimeManager.js +51 -0
  396. package/modern/models/index.js +1 -0
  397. package/modern/models/manager.js +1 -0
  398. package/modern/validation/useValidation.js +1 -1
  399. package/modern/validation/validateDate.js +8 -0
  400. package/modern/validation/validateDateTime.js +8 -0
  401. package/modern/validation/validateTime.js +8 -0
  402. package/node/AdapterDateFns/AdapterDateFns.js +97 -97
  403. package/node/AdapterDateFnsJalali/AdapterDateFnsJalali.js +97 -96
  404. package/node/{AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.js → AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.js} +94 -101
  405. package/node/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.js +1 -1
  406. package/node/AdapterDateFnsV2/AdapterDateFnsV2.js +291 -0
  407. package/node/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.js +1 -1
  408. package/node/AdapterMoment/AdapterMoment.js +10 -0
  409. package/node/DateCalendar/DateCalendar.js +5 -4
  410. package/node/DateCalendar/DayCalendar.js +1 -0
  411. package/node/DateCalendar/PickersFadeTransitionGroup.js +4 -6
  412. package/node/DateCalendar/PickersSlideTransition.js +12 -5
  413. package/node/DateField/DateField.js +29 -33
  414. package/node/DateField/useDateField.js +13 -10
  415. package/node/DatePicker/DatePicker.js +1 -1
  416. package/node/DatePicker/DatePickerToolbar.js +17 -45
  417. package/node/DateTimeField/DateTimeField.js +29 -33
  418. package/node/DateTimeField/useDateTimeField.js +13 -10
  419. package/node/DateTimePicker/DateTimePicker.js +2 -2
  420. package/node/DateTimePicker/DateTimePickerTabs.js +15 -20
  421. package/node/DateTimePicker/DateTimePickerToolbar.js +93 -93
  422. package/node/DayCalendarSkeleton/DayCalendarSkeleton.js +10 -19
  423. package/node/DesktopDatePicker/DesktopDatePicker.js +11 -17
  424. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +17 -27
  425. package/node/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +10 -47
  426. package/node/DesktopTimePicker/DesktopTimePicker.js +6 -22
  427. package/node/DigitalClock/DigitalClock.js +14 -11
  428. package/node/MobileDatePicker/MobileDatePicker.js +4 -14
  429. package/node/MobileDateTimePicker/MobileDateTimePicker.js +4 -14
  430. package/node/MobileTimePicker/MobileTimePicker.js +4 -14
  431. package/node/MonthCalendar/MonthCalendar.js +32 -11
  432. package/node/MonthCalendar/{PickersMonth.js → MonthCalendarButton.js} +20 -61
  433. package/node/MonthCalendar/index.js +1 -8
  434. package/node/MonthCalendar/monthCalendarClasses.js +1 -1
  435. package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.js +12 -7
  436. package/node/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +13 -10
  437. package/node/PickersActionBar/PickersActionBar.js +28 -19
  438. package/node/PickersCalendarHeader/PickersCalendarHeader.js +10 -7
  439. package/node/PickersLayout/PickersLayout.js +23 -54
  440. package/node/PickersLayout/usePickerLayout.js +30 -61
  441. package/node/PickersSectionList/PickersSectionList.js +21 -16
  442. package/node/PickersShortcuts/PickersShortcuts.js +21 -11
  443. package/node/PickersTextField/PickersFilledInput/PickersFilledInput.js +34 -28
  444. package/node/PickersTextField/PickersInput/PickersInput.js +20 -14
  445. package/node/PickersTextField/PickersInput/pickersInputClasses.js +1 -1
  446. package/node/PickersTextField/PickersInputBase/PickersInputBase.js +51 -44
  447. package/node/PickersTextField/PickersOutlinedInput/Outline.js +13 -10
  448. package/node/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +8 -14
  449. package/node/PickersTextField/PickersTextField.js +75 -62
  450. package/node/PickersTextField/usePickerTextFieldOwnerState.js +18 -0
  451. package/node/StaticDatePicker/StaticDatePicker.js +2 -2
  452. package/node/StaticDateTimePicker/StaticDateTimePicker.js +2 -2
  453. package/node/StaticTimePicker/StaticTimePicker.js +2 -2
  454. package/node/TimeClock/Clock.js +28 -27
  455. package/node/TimeClock/ClockNumber.js +15 -11
  456. package/node/TimeClock/ClockPointer.js +15 -10
  457. package/node/TimeClock/TimeClock.js +31 -12
  458. package/node/TimeField/TimeField.js +28 -32
  459. package/node/TimeField/useTimeField.js +13 -10
  460. package/node/TimePicker/TimePicker.js +2 -2
  461. package/node/TimePicker/TimePickerToolbar.js +40 -64
  462. package/node/YearCalendar/YearCalendar.js +46 -12
  463. package/node/YearCalendar/{PickersYear.js → YearCalendarButton.js} +20 -59
  464. package/node/YearCalendar/index.js +1 -8
  465. package/node/YearCalendar/yearCalendarClasses.js +1 -1
  466. package/node/hooks/index.js +15 -1
  467. package/node/hooks/useClearableField.js +4 -2
  468. package/node/hooks/useIsValidValue.js +18 -0
  469. package/node/hooks/useParsedFormat.js +11 -13
  470. package/node/hooks/usePickerActionsContext.js +22 -0
  471. package/node/hooks/usePickerContext.js +5 -4
  472. package/node/hooks/useSplitFieldProps.js +7 -2
  473. package/node/index.js +13 -1
  474. package/node/internals/components/PickerFieldUI.js +329 -0
  475. package/node/internals/components/{PickersPopper.js → PickerPopper/PickerPopper.js} +48 -48
  476. package/node/internals/components/PickerPopper/index.js +25 -0
  477. package/node/internals/components/PickerPopper/pickerPopperClasses.js +14 -0
  478. package/node/internals/components/PickerProvider.js +30 -10
  479. package/node/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +12 -11
  480. package/node/internals/components/PickersModalDialog.js +9 -3
  481. package/node/internals/components/PickersToolbar.js +16 -15
  482. package/node/internals/components/PickersToolbarButton.js +4 -6
  483. package/node/internals/components/PickersToolbarText.js +10 -12
  484. package/node/internals/hooks/date-helpers-hooks.js +4 -3
  485. package/node/internals/hooks/useDesktopPicker/useDesktopPicker.js +38 -123
  486. package/node/internals/hooks/useField/buildSectionsFromFormat.js +1 -1
  487. package/node/internals/hooks/useField/index.js +8 -1
  488. package/node/internals/hooks/useField/useField.js +16 -3
  489. package/node/internals/hooks/useField/useField.utils.js +2 -2
  490. package/node/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +56 -0
  491. package/node/internals/hooks/useField/useFieldState.js +3 -3
  492. package/node/internals/hooks/useField/useFieldV6TextField.js +5 -2
  493. package/node/internals/hooks/useField/useFieldV7TextField.js +8 -4
  494. package/node/internals/hooks/useFieldOwnerState.js +24 -0
  495. package/node/internals/hooks/useMobilePicker/useMobilePicker.js +36 -70
  496. package/node/internals/hooks/useNullablePickerContext.js +16 -0
  497. package/node/internals/hooks/useOpenState.js +12 -9
  498. package/node/internals/hooks/usePicker/usePicker.js +10 -29
  499. package/node/internals/hooks/usePicker/usePickerProvider.js +105 -12
  500. package/node/internals/hooks/usePicker/usePickerValue.js +100 -217
  501. package/node/internals/hooks/usePicker/usePickerViews.js +31 -20
  502. package/node/internals/hooks/{useDefaultReduceAnimations.js → useReduceAnimations.js} +7 -4
  503. package/node/internals/hooks/useStaticPicker/useStaticPicker.js +8 -13
  504. package/node/internals/hooks/useToolbarOwnerState.js +21 -0
  505. package/node/internals/hooks/useUtils.js +1 -1
  506. package/node/internals/hooks/useValueWithTimezone.js +13 -1
  507. package/node/internals/index.js +87 -34
  508. package/node/internals/models/index.js +11 -0
  509. package/node/internals/models/manager.js +5 -0
  510. package/node/internals/models/pickers.js +5 -0
  511. package/node/internals/utils/date-utils.js +1 -1
  512. package/node/internals/utils/utils.js +14 -2
  513. package/node/internals/utils/valueManagers.js +4 -4
  514. package/node/locales/index.js +11 -0
  515. package/node/locales/nbNO.js +15 -19
  516. package/node/locales/nlNL.js +7 -7
  517. package/node/locales/roRO.js +15 -18
  518. package/node/locales/utils/getPickersLocalization.js +2 -16
  519. package/node/locales/zhTW.js +79 -0
  520. package/node/managers/index.js +26 -0
  521. package/node/managers/useDateManager.js +63 -0
  522. package/node/managers/useDateTimeManager.js +68 -0
  523. package/node/managers/useTimeManager.js +59 -0
  524. package/node/models/index.js +11 -0
  525. package/node/models/manager.js +5 -0
  526. package/node/validation/useValidation.js +1 -1
  527. package/node/validation/validateDate.js +8 -0
  528. package/node/validation/validateDateTime.js +8 -0
  529. package/node/validation/validateTime.js +8 -0
  530. package/package.json +7 -7
  531. package/themeAugmentation/components.d.ts +3 -11
  532. package/themeAugmentation/overrides.d.ts +5 -7
  533. package/themeAugmentation/props.d.ts +7 -9
  534. package/validation/extractValidationProps.d.ts +1 -1
  535. package/validation/useValidation.d.ts +7 -6
  536. package/validation/useValidation.js +1 -1
  537. package/validation/validateDate.d.ts +12 -3
  538. package/validation/validateDate.js +8 -0
  539. package/validation/validateDateTime.d.ts +12 -4
  540. package/validation/validateDateTime.js +8 -0
  541. package/validation/validateTime.d.ts +12 -3
  542. package/validation/validateTime.js +8 -0
  543. package/AdapterDateFnsJalaliV3/index.d.ts +0 -1
  544. package/AdapterDateFnsJalaliV3/index.js +0 -1
  545. package/AdapterDateFnsV3/index.d.ts +0 -1
  546. package/AdapterDateFnsV3/index.js +0 -1
  547. package/MonthCalendar/PickersMonth.d.ts +0 -28
  548. package/MonthCalendar/pickersMonthClasses.d.ts +0 -13
  549. package/MonthCalendar/pickersMonthClasses.js +0 -5
  550. package/YearCalendar/PickersYear.d.ts +0 -27
  551. package/YearCalendar/pickersYearClasses.d.ts +0 -13
  552. package/YearCalendar/pickersYearClasses.js +0 -5
  553. package/internals/components/pickersPopperClasses.d.ts +0 -9
  554. package/internals/components/pickersPopperClasses.js +0 -5
  555. package/internals/hooks/defaultizedFieldProps.d.ts +0 -18
  556. package/internals/hooks/defaultizedFieldProps.js +0 -40
  557. package/internals/hooks/useDefaultReduceAnimations.d.ts +0 -2
  558. package/internals/hooks/useIsLandscape.d.ts +0 -4
  559. package/internals/hooks/useIsLandscape.js +0 -35
  560. package/internals/hooks/usePicker/usePickerLayoutProps.d.ts +0 -33
  561. package/internals/hooks/usePicker/usePickerLayoutProps.js +0 -34
  562. package/internals/hooks/usePicker/usePickerOwnerState.d.ts +0 -10
  563. package/internals/hooks/usePicker/usePickerOwnerState.js +0 -16
  564. package/internals/utils/convertFieldResponseIntoMuiTextFieldProps.d.ts +0 -3
  565. package/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +0 -44
  566. package/modern/AdapterDateFnsJalaliV3/index.js +0 -1
  567. package/modern/AdapterDateFnsV3/index.js +0 -1
  568. package/modern/MonthCalendar/pickersMonthClasses.js +0 -5
  569. package/modern/YearCalendar/pickersYearClasses.js +0 -5
  570. package/modern/internals/components/pickersPopperClasses.js +0 -5
  571. package/modern/internals/hooks/defaultizedFieldProps.js +0 -40
  572. package/modern/internals/hooks/useIsLandscape.js +0 -35
  573. package/modern/internals/hooks/usePicker/usePickerLayoutProps.js +0 -34
  574. package/modern/internals/hooks/usePicker/usePickerOwnerState.js +0 -16
  575. package/modern/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +0 -44
  576. package/node/AdapterDateFnsV3/AdapterDateFnsV3.js +0 -299
  577. package/node/MonthCalendar/pickersMonthClasses.js +0 -12
  578. package/node/YearCalendar/pickersYearClasses.js +0 -12
  579. package/node/internals/components/pickersPopperClasses.js +0 -12
  580. package/node/internals/hooks/defaultizedFieldProps.js +0 -50
  581. package/node/internals/hooks/useIsLandscape.js +0 -43
  582. package/node/internals/hooks/usePicker/usePickerLayoutProps.js +0 -41
  583. package/node/internals/hooks/usePicker/usePickerOwnerState.js +0 -23
  584. package/node/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +0 -52
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.PickerFieldPrivateContext = void 0;
9
+ exports.useFieldInternalPropsWithDefaults = useFieldInternalPropsWithDefaults;
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+ var React = _interopRequireWildcard(require("react"));
12
+ var _useUtils = require("../useUtils");
13
+ var _useNullablePickerContext = require("../useNullablePickerContext");
14
+ const PickerFieldPrivateContext = exports.PickerFieldPrivateContext = /*#__PURE__*/React.createContext(null);
15
+
16
+ /**
17
+ * Applies the default values to the field internal props.
18
+ * This is a temporary hook that will be removed during a follow up when `useField` will receive the internal props without the defaults.
19
+ * It is only here to allow the migration to be done in smaller steps.
20
+ */
21
+ function useFieldInternalPropsWithDefaults({
22
+ manager,
23
+ internalProps
24
+ }) {
25
+ const localizationContext = (0, _useUtils.useLocalizationContext)();
26
+ const pickerContext = (0, _useNullablePickerContext.useNullablePickerContext)();
27
+ const fieldPrivateContext = React.useContext(PickerFieldPrivateContext);
28
+ const setValue = pickerContext?.setValue;
29
+ const handleChangeFromPicker = React.useCallback((newValue, ctx) => {
30
+ return setValue?.(newValue, {
31
+ validationError: ctx.validationError,
32
+ shouldClose: false
33
+ });
34
+ }, [setValue]);
35
+ return React.useMemo(() => {
36
+ let internalPropsWithDefaultsFromContext = internalProps;
37
+ // If one of the context is null,
38
+ // Then the field is used as a standalone component and the other context will be null as well.
39
+ if (fieldPrivateContext != null && pickerContext != null) {
40
+ internalPropsWithDefaultsFromContext = (0, _extends2.default)({
41
+ value: pickerContext.value,
42
+ onChange: handleChangeFromPicker,
43
+ timezone: pickerContext.timezone,
44
+ disabled: pickerContext.disabled,
45
+ format: pickerContext.fieldFormat,
46
+ formatDensity: fieldPrivateContext.formatDensity,
47
+ enableAccessibleFieldDOMStructure: fieldPrivateContext.enableAccessibleFieldDOMStructure,
48
+ selectedSections: fieldPrivateContext.selectedSections,
49
+ onSelectedSectionsChange: fieldPrivateContext.onSelectedSectionsChange
50
+ }, internalProps);
51
+ }
52
+ return manager.internal_applyDefaultsToFieldInternalProps((0, _extends2.default)({}, localizationContext, {
53
+ internalProps: internalPropsWithDefaultsFromContext
54
+ }));
55
+ }, [manager, localizationContext, pickerContext, fieldPrivateContext, internalProps, handleChangeFromPicker]);
56
+ }
@@ -49,6 +49,7 @@ const useFieldState = params => {
49
49
  timezone: timezoneProp,
50
50
  value: valueProp,
51
51
  defaultValue,
52
+ referenceDate: referenceDateProp,
52
53
  onChange,
53
54
  valueManager
54
55
  });
@@ -71,7 +72,6 @@ const useFieldState = params => {
71
72
  const stateWithoutReferenceDate = {
72
73
  sections,
73
74
  value: valueFromTheOutside,
74
- referenceValue: valueManager.emptyValue,
75
75
  tempValueStrAndroid: null
76
76
  };
77
77
  const granularity = (0, _getDefaultReferenceDate.getSectionTypeGranularity)(sections);
@@ -156,7 +156,7 @@ const useFieldState = params => {
156
156
  const updateValueFromValueStr = valueStr => {
157
157
  const parseDateStr = (dateStr, referenceDate) => {
158
158
  const date = utils.parse(dateStr, format);
159
- if (date == null || !utils.isValid(date)) {
159
+ if (!utils.isValid(date)) {
160
160
  return null;
161
161
  }
162
162
  const sections = (0, _buildSectionsFromFormat.buildSectionsFromFormat)({
@@ -207,7 +207,7 @@ const useFieldState = params => {
207
207
  * Then we merge the value of the modified sections into the reference date.
208
208
  * This makes sure that we don't lose some information of the initial date (like the time on a date field).
209
209
  */
210
- if (newActiveDate != null && utils.isValid(newActiveDate)) {
210
+ if (utils.isValid(newActiveDate)) {
211
211
  const mergedDate = (0, _useField.mergeDateIntoReferenceDate)(utils, newActiveDate, newActiveDateSections, activeDateManager.referenceDate, true);
212
212
  values = activeDateManager.getNewValuesFromNewActiveDate(mergedDate);
213
213
  shouldPublish = true;
@@ -44,8 +44,8 @@ const addPositionPropertiesToSections = (sections, localizedDigits, isRtl) => {
44
44
  exports.addPositionPropertiesToSections = addPositionPropertiesToSections;
45
45
  const useFieldV6TextField = params => {
46
46
  const isRtl = (0, _RtlProvider.useRtl)();
47
- const focusTimeoutRef = React.useRef();
48
- const selectionSyncTimeoutRef = React.useRef();
47
+ const focusTimeoutRef = React.useRef(undefined);
48
+ const selectionSyncTimeoutRef = React.useRef(undefined);
49
49
  const {
50
50
  forwardedProps: {
51
51
  onFocus,
@@ -246,6 +246,9 @@ const useFieldV6TextField = params => {
246
246
  const shouldUseEventData = eventData && eventData.length > 1;
247
247
  const valueStr = shouldUseEventData ? eventData : targetValue;
248
248
  const cleanValueStr = cleanString(valueStr);
249
+ if (parsedSelectedSections === 'all') {
250
+ setSelectedSections(activeSectionIndex);
251
+ }
249
252
 
250
253
  // If no section is selected or eventData should be used, we just try to parse the new value
251
254
  // This line is mostly triggered by imperative code / application tests.
@@ -19,7 +19,8 @@ const useFieldV7TextField = params => {
19
19
  const {
20
20
  internalProps: {
21
21
  disabled,
22
- readOnly = false
22
+ readOnly = false,
23
+ autoFocus = false
23
24
  },
24
25
  forwardedProps: {
25
26
  sectionListRef: inSectionListRef,
@@ -28,8 +29,7 @@ const useFieldV7TextField = params => {
28
29
  onFocus,
29
30
  onInput,
30
31
  onPaste,
31
- focused: focusedProp,
32
- autoFocus = false
32
+ focused: focusedProp
33
33
  },
34
34
  fieldValueManager,
35
35
  applyCharacterEditing,
@@ -184,6 +184,9 @@ const useFieldV7TextField = params => {
184
184
  } else if (keyPressed.length > 1) {
185
185
  updateValueFromValueStr(keyPressed);
186
186
  } else {
187
+ if (parsedSelectedSections === 'all') {
188
+ setSelectedSections(0);
189
+ }
187
190
  applyCharacterEditing({
188
191
  keyPressed,
189
192
  sectionIndex: 0
@@ -206,8 +209,9 @@ const useFieldV7TextField = params => {
206
209
  if (focused || !sectionListRef.current) {
207
210
  return;
208
211
  }
212
+ const activeElement = (0, _utils.getActiveElement)(document);
209
213
  setFocused(true);
210
- const isFocusInsideASection = sectionListRef.current.getSectionIndexFromDOMElement((0, _utils.getActiveElement)(document)) != null;
214
+ const isFocusInsideASection = sectionListRef.current.getSectionIndexFromDOMElement(activeElement) != null;
211
215
  if (!isFocusInsideASection) {
212
216
  setSelectedSections(sectionOrder.startIndex);
213
217
  }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.useFieldOwnerState = useFieldOwnerState;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var React = _interopRequireWildcard(require("react"));
11
+ var _RtlProvider = require("@mui/system/RtlProvider");
12
+ var _usePickerPrivateContext = require("./usePickerPrivateContext");
13
+ function useFieldOwnerState(parameters) {
14
+ const {
15
+ ownerState: pickerOwnerState
16
+ } = (0, _usePickerPrivateContext.usePickerPrivateContext)();
17
+ const isRtl = (0, _RtlProvider.useRtl)();
18
+ return React.useMemo(() => (0, _extends2.default)({}, pickerOwnerState, {
19
+ isFieldDisabled: parameters.disabled ?? false,
20
+ isFieldReadOnly: parameters.readOnly ?? false,
21
+ isFieldRequired: parameters.required ?? false,
22
+ fieldDirection: isRtl ? 'rtl' : 'ltr'
23
+ }), [pickerOwnerState, parameters.disabled, parameters.readOnly, parameters.required, isRtl]);
24
+ }
@@ -9,16 +9,17 @@ exports.useMobilePicker = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
11
  var React = _interopRequireWildcard(require("react"));
12
- var _useSlotProps = _interopRequireDefault(require("@mui/utils/useSlotProps"));
12
+ var _useSlotProps2 = _interopRequireDefault(require("@mui/utils/useSlotProps"));
13
13
  var _useForkRef = _interopRequireDefault(require("@mui/utils/useForkRef"));
14
14
  var _useId = _interopRequireDefault(require("@mui/utils/useId"));
15
15
  var _PickersModalDialog = require("../../components/PickersModalDialog");
16
16
  var _usePicker = require("../usePicker");
17
- var _utils = require("../../utils/utils");
18
17
  var _PickersLayout = require("../../../PickersLayout");
19
18
  var _PickerProvider = require("../../components/PickerProvider");
19
+ var _PickerFieldUI = require("../../components/PickerFieldUI");
20
20
  var _jsxRuntime = require("react/jsx-runtime");
21
- const _excluded = ["props", "getOpenDialogAriaText"];
21
+ const _excluded = ["props"],
22
+ _excluded2 = ["ownerState"];
22
23
  /**
23
24
  * Hook managing all the single-date mobile pickers:
24
25
  * - MobileDatePicker
@@ -27,87 +28,48 @@ const _excluded = ["props", "getOpenDialogAriaText"];
27
28
  */
28
29
  const useMobilePicker = _ref => {
29
30
  let {
30
- props,
31
- getOpenDialogAriaText
31
+ props
32
32
  } = _ref,
33
33
  pickerParams = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
34
34
  const {
35
35
  slots,
36
36
  slotProps: innerSlotProps,
37
- className,
38
- sx,
39
- format,
40
- formatDensity,
41
- enableAccessibleFieldDOMStructure,
42
- selectedSections,
43
- onSelectedSectionsChange,
44
- timezone,
45
- name,
46
37
  label,
47
38
  inputRef,
48
39
  readOnly,
49
- disabled,
40
+ autoFocus,
50
41
  localeText
51
42
  } = props;
52
43
  const fieldRef = React.useRef(null);
53
44
  const labelId = (0, _useId.default)();
54
45
  const isToolbarHidden = innerSlotProps?.toolbar?.hidden ?? false;
55
46
  const {
56
- open,
57
- actions,
58
- layoutProps,
59
47
  providerProps,
60
48
  renderCurrentView,
61
- fieldProps: pickerFieldProps,
62
49
  ownerState
63
50
  } = (0, _usePicker.usePicker)((0, _extends2.default)({}, pickerParams, {
64
51
  props,
65
52
  fieldRef,
66
53
  localeText,
67
54
  autoFocusView: true,
68
- additionalViewProps: {},
69
- wrapperVariant: 'mobile'
55
+ variant: 'mobile'
70
56
  }));
71
57
  const Field = slots.field;
72
- const fieldProps = (0, _useSlotProps.default)({
73
- elementType: Field,
74
- externalSlotProps: innerSlotProps?.field,
75
- additionalProps: (0, _extends2.default)({
76
- // Internal props
77
- readOnly: readOnly ?? true,
78
- disabled,
79
- format,
80
- formatDensity,
81
- enableAccessibleFieldDOMStructure,
82
- selectedSections,
83
- onSelectedSectionsChange,
84
- timezone
85
- }, pickerFieldProps, {
86
- // onChange and value
87
-
88
- // Forwarded props
89
- className,
90
- sx,
91
- label,
92
- name
93
- }, isToolbarHidden && {
94
- id: labelId
95
- }, !(disabled || readOnly) && {
96
- onClick: actions.onOpen,
97
- onKeyDown: (0, _utils.onSpaceOrEnter)(actions.onOpen)
98
- }, !!inputRef && {
99
- inputRef
58
+ const _useSlotProps = (0, _useSlotProps2.default)({
59
+ elementType: Field,
60
+ externalSlotProps: innerSlotProps?.field,
61
+ additionalProps: (0, _extends2.default)({
62
+ // Internal props
63
+ readOnly,
64
+ autoFocus: autoFocus && !props.open,
65
+ // Forwarded props
66
+ focused: providerProps.contextValue.open ? true : undefined
67
+ }, isToolbarHidden && {
68
+ id: labelId
69
+ }),
70
+ ownerState
100
71
  }),
101
- ownerState
102
- });
103
-
104
- // TODO: Move to `useSlotProps` when https://github.com/mui/material-ui/pull/35088 will be merged
105
- fieldProps.inputProps = (0, _extends2.default)({}, fieldProps.inputProps, {
106
- 'aria-label': getOpenDialogAriaText(pickerFieldProps.value)
107
- });
108
- const slotsForField = (0, _extends2.default)({
109
- textField: slots.textField
110
- }, fieldProps.slots);
72
+ fieldProps = (0, _objectWithoutPropertiesLoose2.default)(_useSlotProps, _excluded2);
111
73
  const Layout = slots.layout ?? _PickersLayout.PickersLayout;
112
74
  let labelledById = labelId;
113
75
  if (isToolbarHidden) {
@@ -125,22 +87,26 @@ const useMobilePicker = _ref => {
125
87
  'aria-labelledby': labelledById
126
88
  }, innerSlotProps?.mobilePaper)
127
89
  });
90
+
91
+ // TODO: This `as any` will go away once the field ref is handled by the context.
128
92
  const handleFieldRef = (0, _useForkRef.default)(fieldRef, fieldProps.unstableFieldRef);
129
- const renderPicker = () => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_PickerProvider.PickerProvider, (0, _extends2.default)({}, providerProps, {
130
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Field, (0, _extends2.default)({}, fieldProps, {
131
- slots: slotsForField,
132
- slotProps: slotProps,
133
- unstableFieldRef: handleFieldRef
134
- })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickersModalDialog.PickersModalDialog, (0, _extends2.default)({}, actions, {
135
- open: open,
93
+ const renderPicker = () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerProvider.PickerProvider, (0, _extends2.default)({}, providerProps, {
94
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_PickerFieldUI.PickerFieldUIContextProvider, {
136
95
  slots: slots,
137
96
  slotProps: slotProps,
138
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Layout, (0, _extends2.default)({}, layoutProps, slotProps?.layout, {
97
+ inputRef: inputRef,
98
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Field, (0, _extends2.default)({}, fieldProps, {
99
+ unstableFieldRef: handleFieldRef
100
+ })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickersModalDialog.PickersModalDialog, {
139
101
  slots: slots,
140
102
  slotProps: slotProps,
141
- children: renderCurrentView()
142
- }))
143
- }))]
103
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Layout, (0, _extends2.default)({}, slotProps?.layout, {
104
+ slots: slots,
105
+ slotProps: slotProps,
106
+ children: renderCurrentView()
107
+ }))
108
+ })]
109
+ })
144
110
  }));
145
111
  return {
146
112
  renderPicker
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ 'use client';
3
+
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.useNullablePickerContext = void 0;
9
+ var React = _interopRequireWildcard(require("react"));
10
+ var _usePickerContext = require("../../hooks/usePickerContext");
11
+ /**
12
+ * Returns the context passed by the picker that wraps the current component.
13
+ * If the context is not found, returns `null`.
14
+ */
15
+ const useNullablePickerContext = () => React.useContext(_usePickerContext.PickerContext);
16
+ exports.useNullablePickerContext = useNullablePickerContext;
@@ -1,18 +1,20 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
3
4
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.useOpenState = void 0;
8
9
  var React = _interopRequireWildcard(require("react"));
10
+ var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallback"));
9
11
  const useOpenState = ({
10
12
  open,
11
13
  onOpen,
12
14
  onClose
13
15
  }) => {
14
16
  const isControllingOpenProp = React.useRef(typeof open === 'boolean').current;
15
- const [openState, setIsOpenState] = React.useState(false);
17
+ const [openState, setOpenState] = React.useState(false);
16
18
 
17
19
  // It is required to update inner state in useEffect in order to avoid situation when
18
20
  // Our component is not mounted yet, but `open` state is set to `true` (for example initially opened)
@@ -21,23 +23,24 @@ const useOpenState = ({
21
23
  if (typeof open !== 'boolean') {
22
24
  throw new Error('You must not mix controlling and uncontrolled mode for `open` prop');
23
25
  }
24
- setIsOpenState(open);
26
+ setOpenState(open);
25
27
  }
26
28
  }, [isControllingOpenProp, open]);
27
- const setIsOpen = React.useCallback(newIsOpen => {
29
+ const setOpen = (0, _useEventCallback.default)(action => {
30
+ const newOpen = typeof action === 'function' ? action(openState) : action;
28
31
  if (!isControllingOpenProp) {
29
- setIsOpenState(newIsOpen);
32
+ setOpenState(newOpen);
30
33
  }
31
- if (newIsOpen && onOpen) {
34
+ if (newOpen && onOpen) {
32
35
  onOpen();
33
36
  }
34
- if (!newIsOpen && onClose) {
37
+ if (!newOpen && onClose) {
35
38
  onClose();
36
39
  }
37
- }, [isControllingOpenProp, onOpen, onClose]);
40
+ });
38
41
  return {
39
- isOpen: openState,
40
- setIsOpen
42
+ open: openState,
43
+ setOpen
41
44
  };
42
45
  };
43
46
  exports.useOpenState = useOpenState;
@@ -7,15 +7,13 @@ exports.usePicker = void 0;
7
7
  var _warning = require("@mui/x-internals/warning");
8
8
  var _usePickerValue = require("./usePickerValue");
9
9
  var _usePickerViews = require("./usePickerViews");
10
- var _usePickerLayoutProps = require("./usePickerLayoutProps");
11
- var _usePickerOwnerState = require("./usePickerOwnerState");
12
10
  var _usePickerProvider = require("./usePickerProvider");
13
11
  const usePicker = ({
12
+ ref,
14
13
  props,
15
14
  valueManager,
16
15
  valueType,
17
- wrapperVariant,
18
- additionalViewProps,
16
+ variant,
19
17
  validator,
20
18
  autoFocusView,
21
19
  rendererInterceptor,
@@ -31,48 +29,31 @@ const usePicker = ({
31
29
  props,
32
30
  valueManager,
33
31
  valueType,
34
- wrapperVariant,
35
32
  validator
36
33
  });
37
34
  const pickerViewsResponse = (0, _usePickerViews.usePickerViews)({
38
35
  props,
39
- additionalViewProps,
40
36
  autoFocusView,
41
37
  fieldRef,
42
38
  propsFromPickerValue: pickerValueResponse.viewProps,
43
39
  rendererInterceptor
44
40
  });
45
- const pickerLayoutResponse = (0, _usePickerLayoutProps.usePickerLayoutProps)({
46
- props,
47
- wrapperVariant,
48
- propsFromPickerValue: pickerValueResponse.layoutProps,
49
- propsFromPickerViews: pickerViewsResponse.layoutProps
50
- });
51
- const pickerOwnerState = (0, _usePickerOwnerState.usePickerOwnerState)({
52
- props,
53
- pickerValueResponse,
54
- valueManager
55
- });
56
41
  const providerProps = (0, _usePickerProvider.usePickerProvider)({
57
- pickerValueResponse,
58
- ownerState: pickerOwnerState,
59
- localeText
42
+ ref,
43
+ props,
44
+ localeText,
45
+ valueManager,
46
+ variant,
47
+ paramsFromUsePickerValue: pickerValueResponse.provider,
48
+ paramsFromUsePickerViews: pickerViewsResponse.provider
60
49
  });
61
50
  return {
62
- // Picker value
63
- open: pickerValueResponse.open,
64
- actions: pickerValueResponse.actions,
65
- fieldProps: pickerValueResponse.fieldProps,
66
51
  // Picker views
67
52
  renderCurrentView: pickerViewsResponse.renderCurrentView,
68
- hasUIView: pickerViewsResponse.hasUIView,
69
- shouldRestoreFocus: pickerViewsResponse.shouldRestoreFocus,
70
- // Picker layout
71
- layoutProps: pickerLayoutResponse.layoutProps,
72
53
  // Picker provider
73
54
  providerProps,
74
55
  // Picker owner state
75
- ownerState: pickerOwnerState
56
+ ownerState: providerProps.privateContextValue.ownerState
76
57
  };
77
58
  };
78
59
  exports.usePicker = usePicker;
@@ -1,28 +1,121 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
8
+ exports.usePickerOrientation = void 0;
7
9
  exports.usePickerProvider = usePickerProvider;
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
8
11
  var React = _interopRequireWildcard(require("react"));
12
+ var _useEnhancedEffect = _interopRequireDefault(require("@mui/utils/useEnhancedEffect"));
13
+ var _useUtils = require("../useUtils");
14
+ var _utils = require("../../utils/utils");
15
+ var _useReduceAnimations = require("../useReduceAnimations");
16
+ function getOrientation() {
17
+ if (typeof window === 'undefined') {
18
+ return 'portrait';
19
+ }
20
+ if (window.screen && window.screen.orientation && window.screen.orientation.angle) {
21
+ return Math.abs(window.screen.orientation.angle) === 90 ? 'landscape' : 'portrait';
22
+ }
23
+
24
+ // Support IOS safari
25
+ if (window.orientation) {
26
+ return Math.abs(Number(window.orientation)) === 90 ? 'landscape' : 'portrait';
27
+ }
28
+ return 'portrait';
29
+ }
30
+ const usePickerOrientation = (views, customOrientation) => {
31
+ const [orientation, setOrientation] = React.useState(getOrientation);
32
+ (0, _useEnhancedEffect.default)(() => {
33
+ const eventHandler = () => {
34
+ setOrientation(getOrientation());
35
+ };
36
+ window.addEventListener('orientationchange', eventHandler);
37
+ return () => {
38
+ window.removeEventListener('orientationchange', eventHandler);
39
+ };
40
+ }, []);
41
+ if ((0, _utils.arrayIncludes)(views, ['hours', 'minutes', 'seconds'])) {
42
+ // could not display 13:34:44 in landscape mode
43
+ return 'portrait';
44
+ }
45
+ return customOrientation ?? orientation;
46
+ };
47
+ exports.usePickerOrientation = usePickerOrientation;
9
48
  function usePickerProvider(parameters) {
10
49
  const {
11
- pickerValueResponse,
12
- ownerState,
13
- localeText
50
+ ref,
51
+ props,
52
+ valueManager,
53
+ localeText,
54
+ variant,
55
+ paramsFromUsePickerValue,
56
+ paramsFromUsePickerViews
14
57
  } = parameters;
15
- const contextValue = React.useMemo(() => ({
16
- onOpen: pickerValueResponse.actions.onOpen,
17
- onClose: pickerValueResponse.actions.onClose,
18
- open: pickerValueResponse.open
19
- }), [pickerValueResponse.actions.onOpen, pickerValueResponse.actions.onClose, pickerValueResponse.open]);
20
- const privateContextValue = React.useMemo(() => ({
58
+ const utils = (0, _useUtils.useUtils)();
59
+ const orientation = usePickerOrientation(paramsFromUsePickerViews.views, props.orientation);
60
+ const reduceAnimations = (0, _useReduceAnimations.useReduceAnimations)(props.reduceAnimations);
61
+ const triggerRef = React.useRef(null);
62
+ const ownerState = React.useMemo(() => ({
63
+ isPickerValueEmpty: valueManager.areValuesEqual(utils, paramsFromUsePickerValue.value, valueManager.emptyValue),
64
+ isPickerOpen: paramsFromUsePickerValue.contextValue.open,
65
+ isPickerDisabled: props.disabled ?? false,
66
+ isPickerReadOnly: props.readOnly ?? false,
67
+ pickerOrientation: orientation,
68
+ pickerVariant: variant
69
+ }), [utils, valueManager, paramsFromUsePickerValue.value, paramsFromUsePickerValue.contextValue.open, orientation, variant, props.disabled, props.readOnly]);
70
+ const triggerStatus = React.useMemo(() => {
71
+ if (props.disableOpenPicker || !paramsFromUsePickerViews.hasUIView) {
72
+ return 'hidden';
73
+ }
74
+ if (props.disabled || props.readOnly) {
75
+ return 'disabled';
76
+ }
77
+ return 'enabled';
78
+ }, [props.disableOpenPicker, paramsFromUsePickerViews.hasUIView, props.disabled, props.readOnly]);
79
+ const contextValue = React.useMemo(() => (0, _extends2.default)({}, paramsFromUsePickerValue.contextValue, paramsFromUsePickerViews.contextValue, {
80
+ disabled: props.disabled ?? false,
81
+ readOnly: props.readOnly ?? false,
82
+ variant,
83
+ orientation,
84
+ reduceAnimations,
85
+ triggerRef,
86
+ triggerStatus,
87
+ fieldFormat: props.format ?? '',
88
+ name: props.name,
89
+ label: props.label,
90
+ rootSx: props.sx,
91
+ rootRef: ref,
92
+ rootClassName: props.className
93
+ }), [paramsFromUsePickerValue.contextValue, paramsFromUsePickerViews.contextValue, ref, variant, orientation, reduceAnimations, props.disabled, props.readOnly, props.format, props.className, props.name, props.label, props.sx, triggerRef, triggerStatus]);
94
+ const privateContextValue = React.useMemo(() => (0, _extends2.default)({}, paramsFromUsePickerValue.privateContextValue, paramsFromUsePickerViews.privateContextValue, {
21
95
  ownerState
22
- }), [ownerState]);
96
+ }), [paramsFromUsePickerValue.privateContextValue, paramsFromUsePickerViews.privateContextValue, ownerState]);
97
+ const actionsContextValue = React.useMemo(() => (0, _extends2.default)({}, paramsFromUsePickerValue.actionsContextValue, paramsFromUsePickerViews.actionsContextValue), [paramsFromUsePickerValue.actionsContextValue, paramsFromUsePickerViews.actionsContextValue]);
98
+ const fieldPrivateContextValue = React.useMemo(() => ({
99
+ formatDensity: props.formatDensity,
100
+ enableAccessibleFieldDOMStructure: props.enableAccessibleFieldDOMStructure,
101
+ selectedSections: props.selectedSections,
102
+ onSelectedSectionsChange: props.onSelectedSectionsChange
103
+ }), [props.formatDensity, props.enableAccessibleFieldDOMStructure, props.selectedSections, props.onSelectedSectionsChange]);
23
104
  return {
24
105
  localeText,
25
106
  contextValue,
26
- privateContextValue
107
+ privateContextValue,
108
+ actionsContextValue,
109
+ fieldPrivateContextValue,
110
+ isValidContextValue: paramsFromUsePickerValue.isValidContextValue
27
111
  };
28
- }
112
+ }
113
+
114
+ /**
115
+ * Props used to create the picker's contexts.
116
+ * Those props are exposed on all the pickers.
117
+ */
118
+
119
+ /**
120
+ * Props used to create the picker's contexts and that are not available on static pickers.
121
+ */