@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
@@ -19,20 +19,17 @@ var _useUtils = require("../internals/hooks/useUtils");
19
19
  var _shared = require("./shared");
20
20
  var _clockClasses = require("./clockClasses");
21
21
  var _dateUtils = require("../internals/utils/date-utils");
22
+ var _usePickerPrivateContext = require("../internals/hooks/usePickerPrivateContext");
22
23
  var _jsxRuntime = require("react/jsx-runtime");
23
- const useUtilityClasses = ownerState => {
24
- const {
25
- classes,
26
- meridiemMode
27
- } = ownerState;
24
+ const useUtilityClasses = (classes, ownerState) => {
28
25
  const slots = {
29
26
  root: ['root'],
30
27
  clock: ['clock'],
31
28
  wrapper: ['wrapper'],
32
29
  squareMask: ['squareMask'],
33
30
  pin: ['pin'],
34
- amButton: ['amButton', meridiemMode === 'am' && 'selected'],
35
- pmButton: ['pmButton', meridiemMode === 'pm' && 'selected'],
31
+ amButton: ['amButton', ownerState.clockMeridiemMode === 'am' && 'selected'],
32
+ pmButton: ['pmButton', ownerState.clockMeridiemMode === 'pm' && 'selected'],
36
33
  meridiemText: ['meridiemText']
37
34
  };
38
35
  return (0, _utils.unstable_composeClasses)(slots, _clockClasses.getClockUtilityClass, classes);
@@ -86,7 +83,7 @@ const ClockSquareMask = (0, _styles.styled)('div', {
86
83
  userSelect: 'none',
87
84
  variants: [{
88
85
  props: {
89
- disabled: false
86
+ isClockDisabled: false
90
87
  },
91
88
  style: {
92
89
  '@media (pointer: fine)': {
@@ -188,15 +185,23 @@ function Clock(inProps) {
188
185
  selectedId,
189
186
  type,
190
187
  viewValue,
188
+ viewRange: [minViewValue, maxViewValue],
191
189
  disabled = false,
192
190
  readOnly,
193
- className
191
+ className,
192
+ classes: classesProp
194
193
  } = props;
195
- const ownerState = props;
196
194
  const utils = (0, _useUtils.useUtils)();
197
195
  const translations = (0, _usePickerTranslations.usePickerTranslations)();
196
+ const {
197
+ ownerState: pickerOwnerState
198
+ } = (0, _usePickerPrivateContext.usePickerPrivateContext)();
199
+ const ownerState = (0, _extends2.default)({}, pickerOwnerState, {
200
+ isClockDisabled: disabled,
201
+ clockMeridiemMode: meridiemMode
202
+ });
198
203
  const isMoving = React.useRef(false);
199
- const classes = useUtilityClasses(ownerState);
204
+ const classes = useUtilityClasses(classesProp, ownerState);
200
205
  const isSelectedTimeDisabled = isTimeDisabled(viewValue, type);
201
206
  const isPointerInner = !ampm && type === 'hours' && (viewValue < 1 || viewValue > 12);
202
207
  const handleValueChange = (newValue, isFinish) => {
@@ -230,6 +235,7 @@ function Clock(inProps) {
230
235
  setTime(event, 'finish');
231
236
  isMoving.current = false;
232
237
  }
238
+ event.preventDefault();
233
239
  };
234
240
  const handleMouseMove = event => {
235
241
  // event.buttons & PRIMARY_MOUSE_BUTTON
@@ -243,12 +249,7 @@ function Clock(inProps) {
243
249
  }
244
250
  setTime(event.nativeEvent, 'finish');
245
251
  };
246
- const hasSelected = React.useMemo(() => {
247
- if (type === 'hours') {
248
- return true;
249
- }
250
- return viewValue % 5 === 0;
251
- }, [type, viewValue]);
252
+ const isPointerBetweenTwoClockValues = type === 'hours' ? false : viewValue % 5 !== 0;
252
253
  const keyboardControlStep = type === 'minutes' ? minutesStep : 1;
253
254
  const listboxRef = React.useRef(null);
254
255
  // Since this is rendered when a Popper is opened we can't use passive effects.
@@ -259,6 +260,8 @@ function Clock(inProps) {
259
260
  listboxRef.current.focus();
260
261
  }
261
262
  }, [autoFocus]);
263
+ const clampValue = newValue => Math.max(minViewValue, Math.min(maxViewValue, newValue));
264
+ const circleValue = newValue => (newValue + (maxViewValue + 1)) % (maxViewValue + 1);
262
265
  const handleKeyDown = event => {
263
266
  // TODO: Why this early exit?
264
267
  if (isMoving.current) {
@@ -267,27 +270,27 @@ function Clock(inProps) {
267
270
  switch (event.key) {
268
271
  case 'Home':
269
272
  // reset both hours and minutes
270
- handleValueChange(0, 'partial');
273
+ handleValueChange(minViewValue, 'partial');
271
274
  event.preventDefault();
272
275
  break;
273
276
  case 'End':
274
- handleValueChange(type === 'minutes' ? 59 : 23, 'partial');
277
+ handleValueChange(maxViewValue, 'partial');
275
278
  event.preventDefault();
276
279
  break;
277
280
  case 'ArrowUp':
278
- handleValueChange(viewValue + keyboardControlStep, 'partial');
281
+ handleValueChange(circleValue(viewValue + keyboardControlStep), 'partial');
279
282
  event.preventDefault();
280
283
  break;
281
284
  case 'ArrowDown':
282
- handleValueChange(viewValue - keyboardControlStep, 'partial');
285
+ handleValueChange(circleValue(viewValue - keyboardControlStep), 'partial');
283
286
  event.preventDefault();
284
287
  break;
285
288
  case 'PageUp':
286
- handleValueChange(viewValue + 5, 'partial');
289
+ handleValueChange(clampValue(viewValue + 5), 'partial');
287
290
  event.preventDefault();
288
291
  break;
289
292
  case 'PageDown':
290
- handleValueChange(viewValue - 5, 'partial');
293
+ handleValueChange(clampValue(viewValue - 5), 'partial');
291
294
  event.preventDefault();
292
295
  break;
293
296
  case 'Enter':
@@ -309,9 +312,7 @@ function Clock(inProps) {
309
312
  onTouchEnd: handleTouchEnd,
310
313
  onMouseUp: handleMouseUp,
311
314
  onMouseMove: handleMouseMove,
312
- ownerState: {
313
- disabled
314
- },
315
+ ownerState: ownerState,
315
316
  className: classes.squareMask
316
317
  }), !isSelectedTimeDisabled && /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
317
318
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(ClockPin, {
@@ -320,7 +321,7 @@ function Clock(inProps) {
320
321
  type: type,
321
322
  viewValue: viewValue,
322
323
  isInner: isPointerInner,
323
- hasSelected: hasSelected
324
+ isBetweenTwoClockValues: isPointerBetweenTwoClockValues
324
325
  })]
325
326
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(ClockWrapper, {
326
327
  "aria-activedescendant": selectedId,
@@ -14,16 +14,12 @@ var _styles = require("@mui/material/styles");
14
14
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
15
15
  var _shared = require("./shared");
16
16
  var _clockNumberClasses = require("./clockNumberClasses");
17
+ var _usePickerPrivateContext = require("../internals/hooks/usePickerPrivateContext");
17
18
  var _jsxRuntime = require("react/jsx-runtime");
18
- const _excluded = ["className", "disabled", "index", "inner", "label", "selected"];
19
- const useUtilityClasses = ownerState => {
20
- const {
21
- classes,
22
- selected,
23
- disabled
24
- } = ownerState;
19
+ const _excluded = ["className", "classes", "disabled", "index", "inner", "label", "selected"];
20
+ const useUtilityClasses = (classes, ownerState) => {
25
21
  const slots = {
26
- root: ['root', selected && 'selected', disabled && 'disabled']
22
+ root: ['root', ownerState.isClockNumberSelected && 'selected', ownerState.isClockNumberDisabled && 'disabled']
27
23
  };
28
24
  return (0, _composeClasses.default)(slots, _clockNumberClasses.getClockNumberUtilityClass, classes);
29
25
  };
@@ -60,7 +56,7 @@ const ClockNumberRoot = (0, _styles.styled)('span', {
60
56
  },
61
57
  variants: [{
62
58
  props: {
63
- inner: true
59
+ isClockNumberInInnerRing: true
64
60
  },
65
61
  style: (0, _extends2.default)({}, theme.typography.body2, {
66
62
  color: (theme.vars || theme).palette.text.secondary
@@ -78,6 +74,7 @@ function ClockNumber(inProps) {
78
74
  });
79
75
  const {
80
76
  className,
77
+ classes: classesProp,
81
78
  disabled,
82
79
  index,
83
80
  inner,
@@ -85,8 +82,15 @@ function ClockNumber(inProps) {
85
82
  selected
86
83
  } = props,
87
84
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
88
- const ownerState = props;
89
- const classes = useUtilityClasses(ownerState);
85
+ const {
86
+ ownerState: pickerOwnerState
87
+ } = (0, _usePickerPrivateContext.usePickerPrivateContext)();
88
+ const ownerState = (0, _extends2.default)({}, pickerOwnerState, {
89
+ isClockNumberInInnerRing: inner,
90
+ isClockNumberSelected: selected,
91
+ isClockNumberDisabled: disabled
92
+ });
93
+ const classes = useUtilityClasses(classesProp, ownerState);
90
94
  const angle = index % 12 / 12 * Math.PI * 2 - Math.PI / 2;
91
95
  const length = (_shared.CLOCK_WIDTH - _shared.CLOCK_HOUR_WIDTH - 2) / 2 * (inner ? 0.65 : 1);
92
96
  const x = Math.round(Math.cos(angle) * length);
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ 'use client';
2
3
 
3
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
5
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
@@ -14,12 +15,10 @@ var _styles = require("@mui/material/styles");
14
15
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
15
16
  var _shared = require("./shared");
16
17
  var _clockPointerClasses = require("./clockPointerClasses");
18
+ var _usePickerPrivateContext = require("../internals/hooks/usePickerPrivateContext");
17
19
  var _jsxRuntime = require("react/jsx-runtime");
18
- const _excluded = ["className", "hasSelected", "isInner", "type", "viewValue"];
19
- const useUtilityClasses = ownerState => {
20
- const {
21
- classes
22
- } = ownerState;
20
+ const _excluded = ["className", "classes", "isBetweenTwoClockValues", "isInner", "type", "viewValue"];
21
+ const useUtilityClasses = classes => {
23
22
  const slots = {
24
23
  root: ['root'],
25
24
  thumb: ['thumb']
@@ -41,7 +40,7 @@ const ClockPointerRoot = (0, _styles.styled)('div', {
41
40
  transformOrigin: 'center bottom 0px',
42
41
  variants: [{
43
42
  props: {
44
- shouldAnimate: true
43
+ isClockPointerAnimated: true
45
44
  },
46
45
  style: {
47
46
  transition: theme.transitions.create(['transform', 'height'])
@@ -66,7 +65,7 @@ const ClockPointerThumb = (0, _styles.styled)('div', {
66
65
  boxSizing: 'content-box',
67
66
  variants: [{
68
67
  props: {
69
- hasSelected: true
68
+ isBetweenTwoClockValues: false
70
69
  },
71
70
  style: {
72
71
  backgroundColor: (theme.vars || theme).palette.primary.main
@@ -84,6 +83,8 @@ function ClockPointer(inProps) {
84
83
  });
85
84
  const {
86
85
  className,
86
+ classes: classesProp,
87
+ isBetweenTwoClockValues,
87
88
  isInner,
88
89
  type,
89
90
  viewValue
@@ -93,10 +94,14 @@ function ClockPointer(inProps) {
93
94
  React.useEffect(() => {
94
95
  previousType.current = type;
95
96
  }, [type]);
96
- const ownerState = (0, _extends2.default)({}, props, {
97
- shouldAnimate: previousType.current !== type
97
+ const {
98
+ ownerState: pickerOwnerState
99
+ } = (0, _usePickerPrivateContext.usePickerPrivateContext)();
100
+ const ownerState = (0, _extends2.default)({}, pickerOwnerState, {
101
+ isClockPointerAnimated: previousType.current !== type,
102
+ isClockPointerBetweenTwoValues: isBetweenTwoClockValues
98
103
  });
99
- const classes = useUtilityClasses(ownerState);
104
+ const classes = useUtilityClasses(classesProp);
100
105
  const getAngleStyle = () => {
101
106
  const max = type === 'hours' ? 12 : 60;
102
107
  let angle = 360 / max * viewValue;
@@ -27,12 +27,10 @@ var _ClockNumbers = require("./ClockNumbers");
27
27
  var _useValueWithTimezone = require("../internals/hooks/useValueWithTimezone");
28
28
  var _valueManagers = require("../internals/utils/valueManagers");
29
29
  var _useClockReferenceDate = require("../internals/hooks/useClockReferenceDate");
30
+ var _usePickerPrivateContext = require("../internals/hooks/usePickerPrivateContext");
30
31
  var _jsxRuntime = require("react/jsx-runtime");
31
- const _excluded = ["ampm", "ampmInClock", "autoFocus", "slots", "slotProps", "value", "defaultValue", "referenceDate", "disableIgnoringDatePartForTimeValidation", "maxTime", "minTime", "disableFuture", "disablePast", "minutesStep", "shouldDisableTime", "showViewSwitcher", "onChange", "view", "views", "openTo", "onViewChange", "focusedView", "onFocusedViewChange", "className", "disabled", "readOnly", "timezone"];
32
- const useUtilityClasses = ownerState => {
33
- const {
34
- classes
35
- } = ownerState;
32
+ const _excluded = ["ampm", "ampmInClock", "autoFocus", "slots", "slotProps", "value", "defaultValue", "referenceDate", "disableIgnoringDatePartForTimeValidation", "maxTime", "minTime", "disableFuture", "disablePast", "minutesStep", "shouldDisableTime", "showViewSwitcher", "onChange", "view", "views", "openTo", "onViewChange", "focusedView", "onFocusedViewChange", "className", "classes", "disabled", "readOnly", "timezone"];
33
+ const useUtilityClasses = classes => {
36
34
  const slots = {
37
35
  root: ['root'],
38
36
  arrowSwitcher: ['arrowSwitcher']
@@ -100,6 +98,7 @@ const TimeClock = exports.TimeClock = /*#__PURE__*/React.forwardRef(function Tim
100
98
  focusedView,
101
99
  onFocusedViewChange,
102
100
  className,
101
+ classes: classesProp,
103
102
  disabled,
104
103
  readOnly,
105
104
  timezone: timezoneProp
@@ -114,6 +113,7 @@ const TimeClock = exports.TimeClock = /*#__PURE__*/React.forwardRef(function Tim
114
113
  timezone: timezoneProp,
115
114
  value: valueProp,
116
115
  defaultValue,
116
+ referenceDate: referenceDateProp,
117
117
  onChange,
118
118
  valueManager: _valueManagers.singleItemValueManager
119
119
  });
@@ -126,6 +126,10 @@ const TimeClock = exports.TimeClock = /*#__PURE__*/React.forwardRef(function Tim
126
126
  });
127
127
  const translations = (0, _usePickerTranslations.usePickerTranslations)();
128
128
  const now = (0, _useUtils.useNow)(timezone);
129
+ const selectedId = (0, _utils.unstable_useId)();
130
+ const {
131
+ ownerState
132
+ } = (0, _usePickerPrivateContext.usePickerPrivateContext)();
129
133
  const {
130
134
  view,
131
135
  setView,
@@ -189,6 +193,9 @@ const TimeClock = exports.TimeClock = /*#__PURE__*/React.forwardRef(function Tim
189
193
  {
190
194
  const valueWithMeridiem = (0, _timeUtils.convertValueToMeridiem)(rawValue, meridiemMode, ampm);
191
195
  const dateWithNewHours = utils.setHours(valueOrReferenceDate, valueWithMeridiem);
196
+ if (utils.getHours(dateWithNewHours) !== valueWithMeridiem) {
197
+ return true;
198
+ }
192
199
  const start = utils.setSeconds(utils.setMinutes(dateWithNewHours, 0), 0);
193
200
  const end = utils.setSeconds(utils.setMinutes(dateWithNewHours, 59), 59);
194
201
  return !containsValidTime({
@@ -220,7 +227,6 @@ const TimeClock = exports.TimeClock = /*#__PURE__*/React.forwardRef(function Tim
220
227
  throw new Error('not supported');
221
228
  }
222
229
  }, [ampm, valueOrReferenceDate, disableIgnoringDatePartForTimeValidation, maxTime, meridiemMode, minTime, minutesStep, shouldDisableTime, utils, disableFuture, disablePast, now, views]);
223
- const selectedId = (0, _utils.unstable_useId)();
224
230
  const viewProps = React.useMemo(() => {
225
231
  switch (view) {
226
232
  case 'hours':
@@ -229,9 +235,20 @@ const TimeClock = exports.TimeClock = /*#__PURE__*/React.forwardRef(function Tim
229
235
  const valueWithMeridiem = (0, _timeUtils.convertValueToMeridiem)(hourValue, meridiemMode, ampm);
230
236
  setValueAndGoToNextView(utils.setHours(valueOrReferenceDate, valueWithMeridiem), isFinish, 'hours');
231
237
  };
238
+ const viewValue = utils.getHours(valueOrReferenceDate);
239
+ let viewRange;
240
+ if (ampm) {
241
+ if (viewValue > 12) {
242
+ viewRange = [12, 23];
243
+ } else {
244
+ viewRange = [0, 11];
245
+ }
246
+ } else {
247
+ viewRange = [0, 23];
248
+ }
232
249
  return {
233
250
  onChange: handleHoursChange,
234
- viewValue: utils.getHours(valueOrReferenceDate),
251
+ viewValue,
235
252
  children: (0, _ClockNumbers.getHourNumbers)({
236
253
  value,
237
254
  utils,
@@ -240,7 +257,8 @@ const TimeClock = exports.TimeClock = /*#__PURE__*/React.forwardRef(function Tim
240
257
  getClockNumberText: translations.hoursClockNumberText,
241
258
  isDisabled: hourValue => disabled || isTimeDisabled(hourValue, 'hours'),
242
259
  selectedId
243
- })
260
+ }),
261
+ viewRange
244
262
  };
245
263
  }
246
264
  case 'minutes':
@@ -259,7 +277,8 @@ const TimeClock = exports.TimeClock = /*#__PURE__*/React.forwardRef(function Tim
259
277
  getClockNumberText: translations.minutesClockNumberText,
260
278
  isDisabled: minuteValue => disabled || isTimeDisabled(minuteValue, 'minutes'),
261
279
  selectedId
262
- })
280
+ }),
281
+ viewRange: [0, 59]
263
282
  };
264
283
  }
265
284
  case 'seconds':
@@ -278,15 +297,15 @@ const TimeClock = exports.TimeClock = /*#__PURE__*/React.forwardRef(function Tim
278
297
  getClockNumberText: translations.secondsClockNumberText,
279
298
  isDisabled: secondValue => disabled || isTimeDisabled(secondValue, 'seconds'),
280
299
  selectedId
281
- })
300
+ }),
301
+ viewRange: [0, 59]
282
302
  };
283
303
  }
284
304
  default:
285
305
  throw new Error('You must provide the type for ClockView');
286
306
  }
287
307
  }, [view, utils, value, ampm, translations.hoursClockNumberText, translations.minutesClockNumberText, translations.secondsClockNumberText, meridiemMode, setValueAndGoToNextView, valueOrReferenceDate, isTimeDisabled, selectedId, disabled]);
288
- const ownerState = props;
289
- const classes = useUtilityClasses(ownerState);
308
+ const classes = useUtilityClasses(classesProp);
290
309
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(TimeClockRoot, (0, _extends2.default)({
291
310
  ref: ref,
292
311
  className: (0, _clsx.default)(classes.root, className),
@@ -7,18 +7,14 @@ Object.defineProperty(exports, "__esModule", {
7
7
  value: true
8
8
  });
9
9
  exports.TimeField = void 0;
10
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
10
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
12
11
  var React = _interopRequireWildcard(require("react"));
13
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
14
- var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
15
13
  var _styles = require("@mui/material/styles");
16
- var _useSlotProps = _interopRequireDefault(require("@mui/utils/useSlotProps"));
17
14
  var _utils = require("@mui/utils");
18
15
  var _useTimeField = require("./useTimeField");
19
- var _hooks = require("../hooks");
20
- var _PickersTextField = require("../PickersTextField");
21
- var _convertFieldResponseIntoMuiTextFieldProps = require("../internals/utils/convertFieldResponseIntoMuiTextFieldProps");
16
+ var _PickerFieldUI = require("../internals/components/PickerFieldUI");
17
+ var _icons = require("../icons");
22
18
  var _jsxRuntime = require("react/jsx-runtime");
23
19
  const _excluded = ["slots", "slotProps", "InputProps", "inputProps"];
24
20
  /**
@@ -38,33 +34,21 @@ const TimeField = exports.TimeField = /*#__PURE__*/React.forwardRef(function Tim
38
34
  });
39
35
  const {
40
36
  slots,
41
- slotProps,
42
- InputProps,
43
- inputProps
37
+ slotProps
44
38
  } = themeProps,
45
39
  other = (0, _objectWithoutPropertiesLoose2.default)(themeProps, _excluded);
46
- const ownerState = themeProps;
47
- const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure === false ? _TextField.default : _PickersTextField.PickersTextField);
48
- const textFieldProps = (0, _useSlotProps.default)({
49
- elementType: TextField,
50
- externalSlotProps: slotProps?.textField,
51
- externalForwardedProps: other,
52
- ownerState,
53
- additionalProps: {
54
- ref: inRef
55
- }
40
+ const textFieldProps = (0, _PickerFieldUI.useFieldTextFieldProps)({
41
+ slotProps,
42
+ ref: inRef,
43
+ externalForwardedProps: other
56
44
  });
57
-
58
- // TODO: Remove when mui/material-ui#35088 will be merged
59
- textFieldProps.inputProps = (0, _extends2.default)({}, inputProps, textFieldProps.inputProps);
60
- textFieldProps.InputProps = (0, _extends2.default)({}, InputProps, textFieldProps.InputProps);
61
45
  const fieldResponse = (0, _useTimeField.useTimeField)(textFieldProps);
62
- const convertedFieldResponse = (0, _convertFieldResponseIntoMuiTextFieldProps.convertFieldResponseIntoMuiTextFieldProps)(fieldResponse);
63
- const processedFieldProps = (0, _hooks.useClearableField)((0, _extends2.default)({}, convertedFieldResponse, {
64
- slots,
65
- slotProps
66
- }));
67
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(TextField, (0, _extends2.default)({}, processedFieldProps));
46
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerFieldUI.PickerFieldUI, {
47
+ slots: slots,
48
+ slotProps: slotProps,
49
+ fieldResponse: fieldResponse,
50
+ defaultOpenPickerIcon: _icons.ClockIcon
51
+ });
68
52
  });
69
53
  process.env.NODE_ENV !== "production" ? TimeField.propTypes = {
70
54
  // ----------------------------- Warning --------------------------------
@@ -87,6 +71,12 @@ process.env.NODE_ENV !== "production" ? TimeField.propTypes = {
87
71
  * @default false
88
72
  */
89
73
  clearable: _propTypes.default.bool,
74
+ /**
75
+ * The position at which the clear button is placed.
76
+ * If the field is not clearable, the button is not rendered.
77
+ * @default 'end'
78
+ */
79
+ clearButtonPosition: _propTypes.default.oneOf(['end', 'start']),
90
80
  /**
91
81
  * The color of the component.
92
82
  * It supports both default and custom theme colors, which can be added as shown in the
@@ -240,6 +230,12 @@ process.env.NODE_ENV !== "production" ? TimeField.propTypes = {
240
230
  * @param {FieldSelectedSections} newValue The new selected sections.
241
231
  */
242
232
  onSelectedSectionsChange: _propTypes.default.func,
233
+ /**
234
+ * The position at which the opening button is placed.
235
+ * If there is no picker to open, the button is not rendered
236
+ * @default 'end'
237
+ */
238
+ openPickerButtonPosition: _propTypes.default.oneOf(['end', 'start']),
243
239
  /**
244
240
  * If `true`, the component is read-only.
245
241
  * When read-only, the value cannot be changed but the user can interact with the interface.
@@ -275,10 +271,10 @@ process.env.NODE_ENV !== "production" ? TimeField.propTypes = {
275
271
  */
276
272
  shouldDisableTime: _propTypes.default.func,
277
273
  /**
278
- * If `true`, the format will respect the leading zeroes (e.g: on dayjs, the format `M/D/YYYY` will render `8/16/2018`)
279
- * If `false`, the format will always add leading zeroes (e.g: on dayjs, the format `M/D/YYYY` will render `08/16/2018`)
274
+ * If `true`, the format will respect the leading zeroes (for example on dayjs, the format `M/D/YYYY` will render `8/16/2018`)
275
+ * If `false`, the format will always add leading zeroes (for example on dayjs, the format `M/D/YYYY` will render `08/16/2018`)
280
276
  *
281
- * Warning n°1: Luxon is not able to respect the leading zeroes when using macro tokens (e.g: "DD"), so `shouldRespectLeadingZeros={true}` might lead to inconsistencies when using `AdapterLuxon`.
277
+ * Warning n°1: Luxon is not able to respect the leading zeroes when using macro tokens (for example "DD"), so `shouldRespectLeadingZeros={true}` might lead to inconsistencies when using `AdapterLuxon`.
282
278
  *
283
279
  * Warning n°2: When `shouldRespectLeadingZeros={true}`, the field will add an invisible character on the sections containing a single digit to make sure `onChange` is fired.
284
280
  * If you need to get the clean value from the input, you can remove this character using `input.value.replace(/\u200e/g, '')`.
@@ -5,24 +5,27 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.useTimeField = void 0;
8
- var _valueManagers = require("../internals/utils/valueManagers");
9
8
  var _useField = require("../internals/hooks/useField");
10
- var _validation = require("../validation");
11
9
  var _hooks = require("../hooks");
12
- var _defaultizedFieldProps = require("../internals/hooks/defaultizedFieldProps");
13
- const useTimeField = inProps => {
14
- const props = (0, _defaultizedFieldProps.useDefaultizedTimeField)(inProps);
10
+ var _managers = require("../managers");
11
+ const useTimeField = props => {
12
+ const manager = (0, _managers.useTimeManager)(props);
15
13
  const {
16
14
  forwardedProps,
17
15
  internalProps
18
16
  } = (0, _hooks.useSplitFieldProps)(props, 'time');
17
+ const internalPropsWithDefaults = (0, _useField.useFieldInternalPropsWithDefaults)({
18
+ manager,
19
+ internalProps
20
+ });
19
21
  return (0, _useField.useField)({
20
22
  forwardedProps,
21
- internalProps,
22
- valueManager: _valueManagers.singleItemValueManager,
23
- fieldValueManager: _valueManagers.singleItemFieldValueManager,
24
- validator: _validation.validateTime,
25
- valueType: 'time'
23
+ internalProps: internalPropsWithDefaults,
24
+ valueManager: manager.internal_valueManager,
25
+ fieldValueManager: manager.internal_fieldValueManager,
26
+ validator: manager.validator,
27
+ valueType: manager.valueType,
28
+ getOpenPickerButtonAriaLabel: manager.internal_getOpenPickerButtonAriaLabel
26
29
  });
27
30
  };
28
31
  exports.useTimeField = useTimeField;
@@ -76,8 +76,8 @@ process.env.NODE_ENV !== "production" ? TimePicker.propTypes = {
76
76
  autoFocus: _propTypes.default.bool,
77
77
  className: _propTypes.default.string,
78
78
  /**
79
- * If `true`, the popover or modal will close after submitting the full date.
80
- * @default `true` for desktop, `false` for mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).
79
+ * If `true`, the Picker will close after submitting the full date.
80
+ * @default false
81
81
  */
82
82
  closeOnSelect: _propTypes.default.bool,
83
83
  /**