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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (576) hide show
  1. package/AdapterDateFns/AdapterDateFns.d.ts +2 -4
  2. package/AdapterDateFns/AdapterDateFns.js +49 -47
  3. package/AdapterDateFnsBase/AdapterDateFnsBase.d.ts +1 -1
  4. package/AdapterDateFnsJalali/AdapterDateFnsJalali.d.ts +2 -4
  5. package/AdapterDateFnsJalali/AdapterDateFnsJalali.js +48 -46
  6. package/{AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.d.ts → AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.d.ts} +2 -2
  7. package/{AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.js → AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.js} +45 -52
  8. package/AdapterDateFnsJalaliV2/index.d.ts +1 -0
  9. package/AdapterDateFnsJalaliV2/index.js +1 -0
  10. package/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/package.json +1 -1
  11. package/{AdapterDateFnsV3/AdapterDateFnsV3.d.ts → AdapterDateFnsV2/AdapterDateFnsV2.d.ts} +2 -2
  12. package/{AdapterDateFnsV3/AdapterDateFnsV3.js → AdapterDateFnsV2/AdapterDateFnsV2.js} +46 -54
  13. package/AdapterDateFnsV2/index.d.ts +1 -0
  14. package/AdapterDateFnsV2/index.js +1 -0
  15. package/{AdapterDateFnsV3 → AdapterDateFnsV2}/package.json +1 -1
  16. package/AdapterDayjs/AdapterDayjs.d.ts +1 -1
  17. package/AdapterLuxon/AdapterLuxon.d.ts +1 -1
  18. package/AdapterMoment/AdapterMoment.d.ts +1 -1
  19. package/AdapterMoment/AdapterMoment.js +10 -0
  20. package/CHANGELOG.md +1903 -231
  21. package/DateCalendar/DateCalendar.js +4 -4
  22. package/DateCalendar/DateCalendar.types.d.ts +2 -1
  23. package/DateCalendar/DayCalendar.js +2 -0
  24. package/DateCalendar/PickersFadeTransitionGroup.d.ts +1 -1
  25. package/DateCalendar/PickersFadeTransitionGroup.js +4 -6
  26. package/DateCalendar/PickersSlideTransition.d.ts +1 -1
  27. package/DateCalendar/PickersSlideTransition.js +12 -5
  28. package/DateCalendar/useCalendarState.d.ts +6 -4
  29. package/DateField/DateField.js +29 -33
  30. package/DateField/DateField.types.d.ts +7 -15
  31. package/DateField/useDateField.d.ts +1 -1
  32. package/DateField/useDateField.js +14 -11
  33. package/DatePicker/DatePicker.js +1 -1
  34. package/DatePicker/DatePicker.types.d.ts +7 -3
  35. package/DatePicker/DatePickerToolbar.d.ts +1 -2
  36. package/DatePicker/DatePickerToolbar.js +17 -33
  37. package/DatePicker/shared.d.ts +6 -5
  38. package/DateTimeField/DateTimeField.js +29 -33
  39. package/DateTimeField/DateTimeField.types.d.ts +7 -16
  40. package/DateTimeField/useDateTimeField.d.ts +1 -1
  41. package/DateTimeField/useDateTimeField.js +14 -11
  42. package/DateTimePicker/DateTimePicker.js +2 -2
  43. package/DateTimePicker/DateTimePicker.types.d.ts +4 -5
  44. package/DateTimePicker/DateTimePickerTabs.d.ts +2 -5
  45. package/DateTimePicker/DateTimePickerTabs.js +15 -20
  46. package/DateTimePicker/DateTimePickerToolbar.d.ts +16 -5
  47. package/DateTimePicker/DateTimePickerToolbar.js +88 -80
  48. package/DateTimePicker/shared.d.ts +8 -8
  49. package/DayCalendarSkeleton/DayCalendarSkeleton.js +10 -19
  50. package/DesktopDatePicker/DesktopDatePicker.js +11 -17
  51. package/DesktopDatePicker/DesktopDatePicker.types.d.ts +7 -3
  52. package/DesktopDateTimePicker/DesktopDateTimePicker.js +17 -27
  53. package/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +2 -2
  54. package/DesktopDateTimePicker/DesktopDateTimePickerLayout.d.ts +2 -2
  55. package/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +9 -34
  56. package/DesktopTimePicker/DesktopTimePicker.js +6 -22
  57. package/DesktopTimePicker/DesktopTimePicker.types.d.ts +2 -2
  58. package/DigitalClock/DigitalClock.js +13 -11
  59. package/DigitalClock/DigitalClock.types.d.ts +8 -2
  60. package/MobileDatePicker/MobileDatePicker.js +4 -14
  61. package/MobileDatePicker/MobileDatePicker.types.d.ts +2 -3
  62. package/MobileDateTimePicker/MobileDateTimePicker.js +4 -14
  63. package/MobileDateTimePicker/MobileDateTimePicker.types.d.ts +4 -4
  64. package/MobileTimePicker/MobileTimePicker.js +4 -14
  65. package/MobileTimePicker/MobileTimePicker.types.d.ts +4 -4
  66. package/MonthCalendar/MonthCalendar.d.ts +1 -1
  67. package/MonthCalendar/MonthCalendar.js +31 -11
  68. package/MonthCalendar/MonthCalendar.types.d.ts +2 -2
  69. package/MonthCalendar/MonthCalendarButton.d.ts +24 -0
  70. package/{modern/MonthCalendar/PickersMonth.js → MonthCalendar/MonthCalendarButton.js} +20 -61
  71. package/MonthCalendar/index.d.ts +0 -3
  72. package/MonthCalendar/index.js +1 -2
  73. package/MonthCalendar/monthCalendarClasses.d.ts +7 -1
  74. package/MonthCalendar/monthCalendarClasses.js +1 -1
  75. package/MultiSectionDigitalClock/MultiSectionDigitalClock.js +11 -7
  76. package/MultiSectionDigitalClock/MultiSectionDigitalClock.types.d.ts +6 -6
  77. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.d.ts +4 -4
  78. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +14 -10
  79. package/PickersActionBar/PickersActionBar.d.ts +6 -7
  80. package/PickersActionBar/PickersActionBar.js +26 -17
  81. package/PickersCalendarHeader/PickersCalendarHeader.js +10 -7
  82. package/PickersCalendarHeader/PickersCalendarHeader.types.d.ts +3 -4
  83. package/PickersLayout/PickersLayout.d.ts +7 -5
  84. package/PickersLayout/PickersLayout.js +23 -42
  85. package/PickersLayout/PickersLayout.types.d.ts +20 -22
  86. package/PickersLayout/usePickerLayout.d.ts +5 -4
  87. package/PickersLayout/usePickerLayout.js +26 -53
  88. package/PickersSectionList/PickersSectionList.js +21 -16
  89. package/PickersSectionList/PickersSectionList.types.d.ts +13 -6
  90. package/PickersShortcuts/PickersShortcuts.d.ts +9 -11
  91. package/PickersShortcuts/PickersShortcuts.js +21 -11
  92. package/PickersShortcuts/index.d.ts +1 -1
  93. package/PickersTextField/PickersFilledInput/PickersFilledInput.d.ts +7 -0
  94. package/PickersTextField/PickersFilledInput/PickersFilledInput.js +34 -28
  95. package/PickersTextField/PickersFilledInput/pickersFilledInputClasses.d.ts +1 -1
  96. package/PickersTextField/PickersInput/PickersInput.js +20 -14
  97. package/PickersTextField/PickersInput/pickersInputClasses.d.ts +3 -2
  98. package/PickersTextField/PickersInput/pickersInputClasses.js +1 -1
  99. package/PickersTextField/PickersInputBase/PickersInputBase.d.ts +3 -6
  100. package/PickersTextField/PickersInputBase/PickersInputBase.js +43 -37
  101. package/PickersTextField/PickersInputBase/PickersInputBase.types.d.ts +1 -0
  102. package/PickersTextField/PickersOutlinedInput/Outline.d.ts +0 -1
  103. package/PickersTextField/PickersOutlinedInput/Outline.js +13 -10
  104. package/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +8 -14
  105. package/PickersTextField/PickersTextField.js +75 -62
  106. package/PickersTextField/PickersTextField.types.d.ts +43 -4
  107. package/PickersTextField/usePickerTextFieldOwnerState.d.ts +4 -0
  108. package/PickersTextField/usePickerTextFieldOwnerState.js +11 -0
  109. package/README.md +8 -5
  110. package/StaticDatePicker/StaticDatePicker.js +2 -2
  111. package/StaticDatePicker/StaticDatePicker.types.d.ts +2 -3
  112. package/StaticDateTimePicker/StaticDateTimePicker.js +2 -2
  113. package/StaticDateTimePicker/StaticDateTimePicker.types.d.ts +2 -2
  114. package/StaticTimePicker/StaticTimePicker.js +2 -2
  115. package/StaticTimePicker/StaticTimePicker.types.d.ts +2 -2
  116. package/TimeClock/Clock.d.ts +4 -0
  117. package/TimeClock/Clock.js +27 -27
  118. package/TimeClock/ClockNumber.js +15 -11
  119. package/TimeClock/ClockPointer.d.ts +6 -1
  120. package/TimeClock/ClockPointer.js +16 -10
  121. package/TimeClock/TimeClock.js +30 -12
  122. package/TimeField/TimeField.js +28 -32
  123. package/TimeField/TimeField.types.d.ts +7 -16
  124. package/TimeField/useTimeField.d.ts +1 -1
  125. package/TimeField/useTimeField.js +14 -11
  126. package/TimePicker/TimePicker.js +2 -2
  127. package/TimePicker/TimePicker.types.d.ts +4 -5
  128. package/TimePicker/TimePickerToolbar.d.ts +1 -3
  129. package/TimePicker/TimePickerToolbar.js +36 -51
  130. package/TimePicker/shared.d.ts +6 -6
  131. package/YearCalendar/YearCalendar.js +46 -13
  132. package/YearCalendar/YearCalendar.types.d.ts +2 -2
  133. package/YearCalendar/YearCalendarButton.d.ts +23 -0
  134. package/{modern/YearCalendar/PickersYear.js → YearCalendar/YearCalendarButton.js} +20 -59
  135. package/YearCalendar/index.d.ts +0 -3
  136. package/YearCalendar/index.js +1 -2
  137. package/YearCalendar/yearCalendarClasses.d.ts +7 -1
  138. package/YearCalendar/yearCalendarClasses.js +1 -1
  139. package/hooks/index.d.ts +2 -0
  140. package/hooks/index.js +3 -1
  141. package/hooks/useClearableField.d.ts +5 -3
  142. package/hooks/useClearableField.js +4 -2
  143. package/hooks/useIsValidValue.d.ts +7 -0
  144. package/hooks/useIsValidValue.js +11 -0
  145. package/hooks/useParsedFormat.d.ts +9 -7
  146. package/hooks/useParsedFormat.js +11 -13
  147. package/hooks/usePickerActionsContext.d.ts +7 -0
  148. package/hooks/usePickerActionsContext.js +15 -0
  149. package/hooks/usePickerContext.d.ts +5 -1
  150. package/hooks/usePickerContext.js +2 -2
  151. package/hooks/useSplitFieldProps.d.ts +12 -3
  152. package/hooks/useSplitFieldProps.js +8 -3
  153. package/index.d.ts +1 -0
  154. package/index.js +3 -2
  155. package/internals/components/PickerFieldUI.d.ts +133 -0
  156. package/internals/components/PickerFieldUI.js +317 -0
  157. package/internals/components/{PickersPopper.d.ts → PickerPopper/PickerPopper.d.ts} +26 -25
  158. package/{modern/internals/components/PickersPopper.js → internals/components/PickerPopper/PickerPopper.js} +47 -47
  159. package/internals/components/PickerPopper/index.d.ts +4 -0
  160. package/internals/components/PickerPopper/index.js +2 -0
  161. package/internals/components/PickerPopper/pickerPopperClasses.d.ts +9 -0
  162. package/internals/components/PickerPopper/pickerPopperClasses.js +6 -0
  163. package/internals/components/PickerProvider.d.ts +86 -32
  164. package/internals/components/PickerProvider.js +25 -7
  165. package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +12 -11
  166. package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.types.d.ts +11 -8
  167. package/internals/components/PickersModalDialog.d.ts +1 -3
  168. package/internals/components/PickersModalDialog.js +9 -3
  169. package/internals/components/PickersToolbar.d.ts +2 -3
  170. package/internals/components/PickersToolbar.js +15 -12
  171. package/internals/components/PickersToolbarButton.js +4 -6
  172. package/internals/components/PickersToolbarText.js +11 -13
  173. package/internals/hooks/date-helpers-hooks.js +4 -3
  174. package/internals/hooks/useClockReferenceDate.d.ts +2 -1
  175. package/internals/hooks/useDesktopPicker/useDesktopPicker.d.ts +1 -1
  176. package/internals/hooks/useDesktopPicker/useDesktopPicker.js +35 -120
  177. package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +16 -38
  178. package/internals/hooks/useField/buildSectionsFromFormat.js +1 -1
  179. package/internals/hooks/useField/index.d.ts +2 -0
  180. package/internals/hooks/useField/index.js +2 -1
  181. package/internals/hooks/useField/useField.d.ts +3 -3
  182. package/internals/hooks/useField/useField.js +17 -4
  183. package/internals/hooks/useField/useField.types.d.ts +55 -48
  184. package/internals/hooks/useField/useField.utils.d.ts +4 -3
  185. package/internals/hooks/useField/useField.utils.js +2 -2
  186. package/internals/hooks/useField/useFieldCharacterEditing.d.ts +6 -5
  187. package/internals/hooks/useField/useFieldInternalPropsWithDefaults.d.ts +15 -0
  188. package/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +47 -0
  189. package/internals/hooks/useField/useFieldState.d.ts +9 -8
  190. package/internals/hooks/useField/useFieldState.js +2 -3
  191. package/internals/hooks/useField/useFieldV6TextField.d.ts +4 -3
  192. package/internals/hooks/useField/useFieldV6TextField.js +5 -2
  193. package/internals/hooks/useField/useFieldV7TextField.js +6 -3
  194. package/internals/hooks/useFieldOwnerState.d.ts +6 -0
  195. package/internals/hooks/useFieldOwnerState.js +16 -0
  196. package/internals/hooks/useMobilePicker/useMobilePicker.d.ts +1 -1
  197. package/internals/hooks/useMobilePicker/useMobilePicker.js +34 -68
  198. package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +15 -22
  199. package/internals/hooks/useNullablePickerContext.d.ts +5 -0
  200. package/internals/hooks/useNullablePickerContext.js +10 -0
  201. package/internals/hooks/useOpenState.d.ts +3 -2
  202. package/internals/hooks/useOpenState.js +11 -9
  203. package/internals/hooks/usePicker/index.d.ts +1 -1
  204. package/internals/hooks/usePicker/usePicker.d.ts +3 -4
  205. package/internals/hooks/usePicker/usePicker.js +4 -20
  206. package/internals/hooks/usePicker/usePicker.types.d.ts +10 -10
  207. package/internals/hooks/usePicker/usePickerProvider.d.ts +45 -10
  208. package/internals/hooks/usePicker/usePickerProvider.js +50 -16
  209. package/internals/hooks/usePicker/usePickerValue.d.ts +3 -2
  210. package/internals/hooks/usePicker/usePickerValue.js +84 -214
  211. package/internals/hooks/usePicker/usePickerValue.types.d.ts +130 -75
  212. package/internals/hooks/usePicker/usePickerViews.d.ts +59 -41
  213. package/internals/hooks/usePicker/usePickerViews.js +31 -20
  214. package/internals/hooks/useReduceAnimations.d.ts +2 -0
  215. package/internals/hooks/{useDefaultReduceAnimations.js → useReduceAnimations.js} +5 -2
  216. package/internals/hooks/useStaticPicker/useStaticPicker.d.ts +1 -1
  217. package/internals/hooks/useStaticPicker/useStaticPicker.js +7 -12
  218. package/internals/hooks/useStaticPicker/useStaticPicker.types.d.ts +7 -13
  219. package/internals/hooks/useToolbarOwnerState.d.ts +10 -0
  220. package/internals/hooks/useToolbarOwnerState.js +13 -0
  221. package/internals/hooks/useUtils.d.ts +4 -3
  222. package/internals/hooks/useUtils.js +1 -1
  223. package/internals/hooks/useValueWithTimezone.d.ts +5 -4
  224. package/internals/hooks/useViews.d.ts +5 -5
  225. package/internals/index.d.ts +27 -18
  226. package/internals/index.js +13 -8
  227. package/internals/models/common.d.ts +1 -1
  228. package/internals/models/fields.d.ts +8 -24
  229. package/internals/models/index.d.ts +1 -0
  230. package/internals/models/index.js +2 -1
  231. package/internals/models/manager.d.ts +15 -0
  232. package/internals/models/manager.js +1 -0
  233. package/internals/models/pickers.d.ts +1 -0
  234. package/internals/models/pickers.js +1 -0
  235. package/internals/models/props/basePickerProps.d.ts +3 -33
  236. package/internals/models/props/tabs.d.ts +0 -13
  237. package/internals/models/props/time.d.ts +2 -1
  238. package/internals/models/props/toolbar.d.ts +1 -19
  239. package/internals/models/value.d.ts +9 -0
  240. package/internals/utils/date-utils.d.ts +1 -1
  241. package/internals/utils/date-utils.js +1 -1
  242. package/internals/utils/utils.d.ts +3 -0
  243. package/internals/utils/utils.js +11 -1
  244. package/internals/utils/valueManagers.d.ts +4 -3
  245. package/internals/utils/valueManagers.js +4 -4
  246. package/locales/index.d.ts +1 -0
  247. package/locales/index.js +1 -0
  248. package/locales/nbNO.js +15 -19
  249. package/locales/nlNL.js +7 -7
  250. package/locales/roRO.js +15 -18
  251. package/locales/utils/getPickersLocalization.d.ts +0 -7
  252. package/locales/utils/getPickersLocalization.js +0 -13
  253. package/locales/zhTW.d.ts +80 -0
  254. package/locales/zhTW.js +73 -0
  255. package/managers/index.d.ts +6 -0
  256. package/managers/index.js +3 -0
  257. package/managers/package.json +6 -0
  258. package/managers/useDateManager.d.ts +27 -0
  259. package/managers/useDateManager.js +55 -0
  260. package/managers/useDateTimeManager.d.ts +28 -0
  261. package/managers/useDateTimeManager.js +60 -0
  262. package/managers/useTimeManager.d.ts +28 -0
  263. package/managers/useTimeManager.js +51 -0
  264. package/models/adapters.d.ts +5 -5
  265. package/models/fields.d.ts +33 -9
  266. package/models/index.d.ts +1 -0
  267. package/models/index.js +1 -0
  268. package/models/manager.d.ts +87 -0
  269. package/models/manager.js +1 -0
  270. package/models/pickers.d.ts +7 -0
  271. package/models/validation.d.ts +2 -1
  272. package/modern/AdapterDateFns/AdapterDateFns.js +49 -47
  273. package/modern/AdapterDateFnsJalali/AdapterDateFnsJalali.js +48 -46
  274. package/modern/{AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.js → AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.js} +45 -52
  275. package/modern/AdapterDateFnsJalaliV2/index.js +1 -0
  276. package/modern/{AdapterDateFnsV3/AdapterDateFnsV3.js → AdapterDateFnsV2/AdapterDateFnsV2.js} +46 -54
  277. package/modern/AdapterDateFnsV2/index.js +1 -0
  278. package/modern/AdapterMoment/AdapterMoment.js +10 -0
  279. package/modern/DateCalendar/DateCalendar.js +4 -4
  280. package/modern/DateCalendar/DayCalendar.js +2 -0
  281. package/modern/DateCalendar/PickersFadeTransitionGroup.js +4 -6
  282. package/modern/DateCalendar/PickersSlideTransition.js +12 -5
  283. package/modern/DateField/DateField.js +29 -33
  284. package/modern/DateField/useDateField.js +14 -11
  285. package/modern/DatePicker/DatePicker.js +1 -1
  286. package/modern/DatePicker/DatePickerToolbar.js +17 -33
  287. package/modern/DateTimeField/DateTimeField.js +29 -33
  288. package/modern/DateTimeField/useDateTimeField.js +14 -11
  289. package/modern/DateTimePicker/DateTimePicker.js +2 -2
  290. package/modern/DateTimePicker/DateTimePickerTabs.js +15 -20
  291. package/modern/DateTimePicker/DateTimePickerToolbar.js +88 -80
  292. package/modern/DayCalendarSkeleton/DayCalendarSkeleton.js +10 -19
  293. package/modern/DesktopDatePicker/DesktopDatePicker.js +11 -17
  294. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +17 -27
  295. package/modern/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +9 -34
  296. package/modern/DesktopTimePicker/DesktopTimePicker.js +6 -22
  297. package/modern/DigitalClock/DigitalClock.js +13 -11
  298. package/modern/MobileDatePicker/MobileDatePicker.js +4 -14
  299. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +4 -14
  300. package/modern/MobileTimePicker/MobileTimePicker.js +4 -14
  301. package/modern/MonthCalendar/MonthCalendar.js +31 -11
  302. package/{MonthCalendar/PickersMonth.js → modern/MonthCalendar/MonthCalendarButton.js} +20 -61
  303. package/modern/MonthCalendar/index.js +1 -2
  304. package/modern/MonthCalendar/monthCalendarClasses.js +1 -1
  305. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClock.js +11 -7
  306. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +14 -10
  307. package/modern/PickersActionBar/PickersActionBar.js +26 -17
  308. package/modern/PickersCalendarHeader/PickersCalendarHeader.js +10 -7
  309. package/modern/PickersLayout/PickersLayout.js +23 -42
  310. package/modern/PickersLayout/usePickerLayout.js +26 -53
  311. package/modern/PickersSectionList/PickersSectionList.js +21 -16
  312. package/modern/PickersShortcuts/PickersShortcuts.js +21 -11
  313. package/modern/PickersTextField/PickersFilledInput/PickersFilledInput.js +34 -28
  314. package/modern/PickersTextField/PickersInput/PickersInput.js +20 -14
  315. package/modern/PickersTextField/PickersInput/pickersInputClasses.js +1 -1
  316. package/modern/PickersTextField/PickersInputBase/PickersInputBase.js +43 -37
  317. package/modern/PickersTextField/PickersOutlinedInput/Outline.js +13 -10
  318. package/modern/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +8 -14
  319. package/modern/PickersTextField/PickersTextField.js +75 -62
  320. package/modern/PickersTextField/usePickerTextFieldOwnerState.js +11 -0
  321. package/modern/StaticDatePicker/StaticDatePicker.js +2 -2
  322. package/modern/StaticDateTimePicker/StaticDateTimePicker.js +2 -2
  323. package/modern/StaticTimePicker/StaticTimePicker.js +2 -2
  324. package/modern/TimeClock/Clock.js +27 -27
  325. package/modern/TimeClock/ClockNumber.js +15 -11
  326. package/modern/TimeClock/ClockPointer.js +16 -10
  327. package/modern/TimeClock/TimeClock.js +30 -12
  328. package/modern/TimeField/TimeField.js +28 -32
  329. package/modern/TimeField/useTimeField.js +14 -11
  330. package/modern/TimePicker/TimePicker.js +2 -2
  331. package/modern/TimePicker/TimePickerToolbar.js +36 -51
  332. package/modern/YearCalendar/YearCalendar.js +46 -13
  333. package/{YearCalendar/PickersYear.js → modern/YearCalendar/YearCalendarButton.js} +20 -59
  334. package/modern/YearCalendar/index.js +1 -2
  335. package/modern/YearCalendar/yearCalendarClasses.js +1 -1
  336. package/modern/hooks/index.js +3 -1
  337. package/modern/hooks/useClearableField.js +4 -2
  338. package/modern/hooks/useIsValidValue.js +11 -0
  339. package/modern/hooks/useParsedFormat.js +11 -13
  340. package/modern/hooks/usePickerActionsContext.js +15 -0
  341. package/modern/hooks/usePickerContext.js +2 -2
  342. package/modern/hooks/useSplitFieldProps.js +8 -3
  343. package/modern/index.js +3 -2
  344. package/modern/internals/components/PickerFieldUI.js +317 -0
  345. package/{internals/components/PickersPopper.js → modern/internals/components/PickerPopper/PickerPopper.js} +47 -47
  346. package/modern/internals/components/PickerPopper/index.js +2 -0
  347. package/modern/internals/components/PickerPopper/pickerPopperClasses.js +6 -0
  348. package/modern/internals/components/PickerProvider.js +25 -7
  349. package/modern/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +12 -11
  350. package/modern/internals/components/PickersModalDialog.js +9 -3
  351. package/modern/internals/components/PickersToolbar.js +15 -12
  352. package/modern/internals/components/PickersToolbarButton.js +4 -6
  353. package/modern/internals/components/PickersToolbarText.js +11 -13
  354. package/modern/internals/hooks/date-helpers-hooks.js +4 -3
  355. package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.js +35 -120
  356. package/modern/internals/hooks/useField/buildSectionsFromFormat.js +1 -1
  357. package/modern/internals/hooks/useField/index.js +2 -1
  358. package/modern/internals/hooks/useField/useField.js +17 -4
  359. package/modern/internals/hooks/useField/useField.utils.js +2 -2
  360. package/modern/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +47 -0
  361. package/modern/internals/hooks/useField/useFieldState.js +2 -3
  362. package/modern/internals/hooks/useField/useFieldV6TextField.js +5 -2
  363. package/modern/internals/hooks/useField/useFieldV7TextField.js +6 -3
  364. package/modern/internals/hooks/useFieldOwnerState.js +16 -0
  365. package/modern/internals/hooks/useMobilePicker/useMobilePicker.js +34 -68
  366. package/modern/internals/hooks/useNullablePickerContext.js +10 -0
  367. package/modern/internals/hooks/useOpenState.js +11 -9
  368. package/modern/internals/hooks/usePicker/usePicker.js +4 -20
  369. package/modern/internals/hooks/usePicker/usePickerProvider.js +50 -16
  370. package/modern/internals/hooks/usePicker/usePickerValue.js +84 -214
  371. package/modern/internals/hooks/usePicker/usePickerViews.js +31 -20
  372. package/modern/internals/hooks/{useDefaultReduceAnimations.js → useReduceAnimations.js} +5 -2
  373. package/modern/internals/hooks/useStaticPicker/useStaticPicker.js +7 -12
  374. package/modern/internals/hooks/useToolbarOwnerState.js +13 -0
  375. package/modern/internals/hooks/useUtils.js +1 -1
  376. package/modern/internals/index.js +13 -8
  377. package/modern/internals/models/index.js +2 -1
  378. package/modern/internals/models/manager.js +1 -0
  379. package/modern/internals/models/pickers.js +1 -0
  380. package/modern/internals/utils/date-utils.js +1 -1
  381. package/modern/internals/utils/utils.js +11 -1
  382. package/modern/internals/utils/valueManagers.js +4 -4
  383. package/modern/locales/index.js +1 -0
  384. package/modern/locales/nbNO.js +15 -19
  385. package/modern/locales/nlNL.js +7 -7
  386. package/modern/locales/roRO.js +15 -18
  387. package/modern/locales/utils/getPickersLocalization.js +0 -13
  388. package/modern/locales/zhTW.js +73 -0
  389. package/modern/managers/index.js +3 -0
  390. package/modern/managers/useDateManager.js +55 -0
  391. package/modern/managers/useDateTimeManager.js +60 -0
  392. package/modern/managers/useTimeManager.js +51 -0
  393. package/modern/models/index.js +1 -0
  394. package/modern/models/manager.js +1 -0
  395. package/modern/validation/useValidation.js +1 -1
  396. package/modern/validation/validateDate.js +8 -0
  397. package/modern/validation/validateDateTime.js +8 -0
  398. package/modern/validation/validateTime.js +8 -0
  399. package/node/AdapterDateFns/AdapterDateFns.js +97 -97
  400. package/node/AdapterDateFnsJalali/AdapterDateFnsJalali.js +97 -96
  401. package/node/{AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.js → AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.js} +94 -101
  402. package/node/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.js +1 -1
  403. package/node/AdapterDateFnsV2/AdapterDateFnsV2.js +291 -0
  404. package/node/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.js +1 -1
  405. package/node/AdapterMoment/AdapterMoment.js +10 -0
  406. package/node/DateCalendar/DateCalendar.js +4 -4
  407. package/node/DateCalendar/DayCalendar.js +1 -0
  408. package/node/DateCalendar/PickersFadeTransitionGroup.js +4 -6
  409. package/node/DateCalendar/PickersSlideTransition.js +12 -5
  410. package/node/DateField/DateField.js +29 -33
  411. package/node/DateField/useDateField.js +13 -10
  412. package/node/DatePicker/DatePicker.js +1 -1
  413. package/node/DatePicker/DatePickerToolbar.js +17 -33
  414. package/node/DateTimeField/DateTimeField.js +29 -33
  415. package/node/DateTimeField/useDateTimeField.js +13 -10
  416. package/node/DateTimePicker/DateTimePicker.js +2 -2
  417. package/node/DateTimePicker/DateTimePickerTabs.js +15 -20
  418. package/node/DateTimePicker/DateTimePickerToolbar.js +89 -80
  419. package/node/DayCalendarSkeleton/DayCalendarSkeleton.js +10 -19
  420. package/node/DesktopDatePicker/DesktopDatePicker.js +11 -17
  421. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +17 -27
  422. package/node/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +10 -35
  423. package/node/DesktopTimePicker/DesktopTimePicker.js +6 -22
  424. package/node/DigitalClock/DigitalClock.js +13 -11
  425. package/node/MobileDatePicker/MobileDatePicker.js +4 -14
  426. package/node/MobileDateTimePicker/MobileDateTimePicker.js +4 -14
  427. package/node/MobileTimePicker/MobileTimePicker.js +4 -14
  428. package/node/MonthCalendar/MonthCalendar.js +31 -11
  429. package/node/MonthCalendar/{PickersMonth.js → MonthCalendarButton.js} +20 -61
  430. package/node/MonthCalendar/index.js +1 -8
  431. package/node/MonthCalendar/monthCalendarClasses.js +1 -1
  432. package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.js +11 -7
  433. package/node/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +13 -10
  434. package/node/PickersActionBar/PickersActionBar.js +28 -19
  435. package/node/PickersCalendarHeader/PickersCalendarHeader.js +10 -7
  436. package/node/PickersLayout/PickersLayout.js +23 -42
  437. package/node/PickersLayout/usePickerLayout.js +30 -57
  438. package/node/PickersSectionList/PickersSectionList.js +21 -16
  439. package/node/PickersShortcuts/PickersShortcuts.js +21 -11
  440. package/node/PickersTextField/PickersFilledInput/PickersFilledInput.js +34 -28
  441. package/node/PickersTextField/PickersInput/PickersInput.js +20 -14
  442. package/node/PickersTextField/PickersInput/pickersInputClasses.js +1 -1
  443. package/node/PickersTextField/PickersInputBase/PickersInputBase.js +43 -37
  444. package/node/PickersTextField/PickersOutlinedInput/Outline.js +13 -10
  445. package/node/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +8 -14
  446. package/node/PickersTextField/PickersTextField.js +75 -62
  447. package/node/PickersTextField/usePickerTextFieldOwnerState.js +18 -0
  448. package/node/StaticDatePicker/StaticDatePicker.js +2 -2
  449. package/node/StaticDateTimePicker/StaticDateTimePicker.js +2 -2
  450. package/node/StaticTimePicker/StaticTimePicker.js +2 -2
  451. package/node/TimeClock/Clock.js +27 -27
  452. package/node/TimeClock/ClockNumber.js +15 -11
  453. package/node/TimeClock/ClockPointer.js +15 -10
  454. package/node/TimeClock/TimeClock.js +30 -12
  455. package/node/TimeField/TimeField.js +28 -32
  456. package/node/TimeField/useTimeField.js +13 -10
  457. package/node/TimePicker/TimePicker.js +2 -2
  458. package/node/TimePicker/TimePickerToolbar.js +36 -51
  459. package/node/YearCalendar/YearCalendar.js +45 -12
  460. package/node/YearCalendar/{PickersYear.js → YearCalendarButton.js} +20 -59
  461. package/node/YearCalendar/index.js +1 -8
  462. package/node/YearCalendar/yearCalendarClasses.js +1 -1
  463. package/node/hooks/index.js +15 -1
  464. package/node/hooks/useClearableField.js +4 -2
  465. package/node/hooks/useIsValidValue.js +18 -0
  466. package/node/hooks/useParsedFormat.js +11 -13
  467. package/node/hooks/usePickerActionsContext.js +22 -0
  468. package/node/hooks/usePickerContext.js +5 -4
  469. package/node/hooks/useSplitFieldProps.js +7 -2
  470. package/node/index.js +13 -1
  471. package/node/internals/components/PickerFieldUI.js +329 -0
  472. package/node/internals/components/{PickersPopper.js → PickerPopper/PickerPopper.js} +48 -48
  473. package/node/internals/components/PickerPopper/index.js +25 -0
  474. package/node/internals/components/PickerPopper/pickerPopperClasses.js +14 -0
  475. package/node/internals/components/PickerProvider.js +27 -9
  476. package/node/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +12 -11
  477. package/node/internals/components/PickersModalDialog.js +9 -3
  478. package/node/internals/components/PickersToolbar.js +15 -12
  479. package/node/internals/components/PickersToolbarButton.js +4 -6
  480. package/node/internals/components/PickersToolbarText.js +10 -12
  481. package/node/internals/hooks/date-helpers-hooks.js +4 -3
  482. package/node/internals/hooks/useDesktopPicker/useDesktopPicker.js +37 -122
  483. package/node/internals/hooks/useField/buildSectionsFromFormat.js +1 -1
  484. package/node/internals/hooks/useField/index.js +8 -1
  485. package/node/internals/hooks/useField/useField.js +16 -3
  486. package/node/internals/hooks/useField/useField.utils.js +2 -2
  487. package/node/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +56 -0
  488. package/node/internals/hooks/useField/useFieldState.js +2 -3
  489. package/node/internals/hooks/useField/useFieldV6TextField.js +5 -2
  490. package/node/internals/hooks/useField/useFieldV7TextField.js +6 -3
  491. package/node/internals/hooks/useFieldOwnerState.js +24 -0
  492. package/node/internals/hooks/useMobilePicker/useMobilePicker.js +35 -69
  493. package/node/internals/hooks/useNullablePickerContext.js +16 -0
  494. package/node/internals/hooks/useOpenState.js +12 -9
  495. package/node/internals/hooks/usePicker/usePicker.js +4 -20
  496. package/node/internals/hooks/usePicker/usePickerProvider.js +51 -17
  497. package/node/internals/hooks/usePicker/usePickerValue.js +84 -213
  498. package/node/internals/hooks/usePicker/usePickerViews.js +31 -21
  499. package/node/internals/hooks/{useDefaultReduceAnimations.js → useReduceAnimations.js} +7 -4
  500. package/node/internals/hooks/useStaticPicker/useStaticPicker.js +7 -12
  501. package/node/internals/hooks/useToolbarOwnerState.js +21 -0
  502. package/node/internals/hooks/useUtils.js +1 -1
  503. package/node/internals/index.js +87 -34
  504. package/node/internals/models/index.js +11 -0
  505. package/node/internals/models/manager.js +5 -0
  506. package/node/internals/models/pickers.js +5 -0
  507. package/node/internals/utils/date-utils.js +1 -1
  508. package/node/internals/utils/utils.js +14 -2
  509. package/node/internals/utils/valueManagers.js +4 -4
  510. package/node/locales/index.js +11 -0
  511. package/node/locales/nbNO.js +15 -19
  512. package/node/locales/nlNL.js +7 -7
  513. package/node/locales/roRO.js +15 -18
  514. package/node/locales/utils/getPickersLocalization.js +2 -16
  515. package/node/locales/zhTW.js +79 -0
  516. package/node/managers/index.js +26 -0
  517. package/node/managers/useDateManager.js +63 -0
  518. package/node/managers/useDateTimeManager.js +68 -0
  519. package/node/managers/useTimeManager.js +59 -0
  520. package/node/models/index.js +11 -0
  521. package/node/models/manager.js +5 -0
  522. package/node/validation/useValidation.js +1 -1
  523. package/node/validation/validateDate.js +8 -0
  524. package/node/validation/validateDateTime.js +8 -0
  525. package/node/validation/validateTime.js +8 -0
  526. package/package.json +5 -5
  527. package/themeAugmentation/components.d.ts +3 -11
  528. package/themeAugmentation/overrides.d.ts +5 -7
  529. package/themeAugmentation/props.d.ts +7 -9
  530. package/validation/extractValidationProps.d.ts +1 -1
  531. package/validation/useValidation.d.ts +7 -6
  532. package/validation/useValidation.js +1 -1
  533. package/validation/validateDate.d.ts +12 -3
  534. package/validation/validateDate.js +8 -0
  535. package/validation/validateDateTime.d.ts +12 -4
  536. package/validation/validateDateTime.js +8 -0
  537. package/validation/validateTime.d.ts +12 -3
  538. package/validation/validateTime.js +8 -0
  539. package/AdapterDateFnsJalaliV3/index.d.ts +0 -1
  540. package/AdapterDateFnsJalaliV3/index.js +0 -1
  541. package/AdapterDateFnsV3/index.d.ts +0 -1
  542. package/AdapterDateFnsV3/index.js +0 -1
  543. package/MonthCalendar/PickersMonth.d.ts +0 -28
  544. package/MonthCalendar/pickersMonthClasses.d.ts +0 -13
  545. package/MonthCalendar/pickersMonthClasses.js +0 -5
  546. package/YearCalendar/PickersYear.d.ts +0 -27
  547. package/YearCalendar/pickersYearClasses.d.ts +0 -13
  548. package/YearCalendar/pickersYearClasses.js +0 -5
  549. package/internals/components/pickersPopperClasses.d.ts +0 -9
  550. package/internals/components/pickersPopperClasses.js +0 -5
  551. package/internals/hooks/defaultizedFieldProps.d.ts +0 -18
  552. package/internals/hooks/defaultizedFieldProps.js +0 -40
  553. package/internals/hooks/useDefaultReduceAnimations.d.ts +0 -2
  554. package/internals/hooks/useIsLandscape.d.ts +0 -4
  555. package/internals/hooks/useIsLandscape.js +0 -35
  556. package/internals/hooks/usePicker/usePickerLayoutProps.d.ts +0 -32
  557. package/internals/hooks/usePicker/usePickerLayoutProps.js +0 -31
  558. package/internals/utils/convertFieldResponseIntoMuiTextFieldProps.d.ts +0 -3
  559. package/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +0 -44
  560. package/modern/AdapterDateFnsJalaliV3/index.js +0 -1
  561. package/modern/AdapterDateFnsV3/index.js +0 -1
  562. package/modern/MonthCalendar/pickersMonthClasses.js +0 -5
  563. package/modern/YearCalendar/pickersYearClasses.js +0 -5
  564. package/modern/internals/components/pickersPopperClasses.js +0 -5
  565. package/modern/internals/hooks/defaultizedFieldProps.js +0 -40
  566. package/modern/internals/hooks/useIsLandscape.js +0 -35
  567. package/modern/internals/hooks/usePicker/usePickerLayoutProps.js +0 -31
  568. package/modern/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +0 -44
  569. package/node/AdapterDateFnsV3/AdapterDateFnsV3.js +0 -299
  570. package/node/MonthCalendar/pickersMonthClasses.js +0 -12
  571. package/node/YearCalendar/pickersYearClasses.js +0 -12
  572. package/node/internals/components/pickersPopperClasses.js +0 -12
  573. package/node/internals/hooks/defaultizedFieldProps.js +0 -50
  574. package/node/internals/hooks/useIsLandscape.js +0 -43
  575. package/node/internals/hooks/usePicker/usePickerLayoutProps.js +0 -38
  576. package/node/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +0 -52
@@ -1,22 +1,25 @@
1
1
  'use client';
2
2
 
3
- import { singleItemFieldValueManager, singleItemValueManager } from "../internals/utils/valueManagers.js";
4
- import { useField } from "../internals/hooks/useField/index.js";
5
- import { validateTime } from "../validation/index.js";
3
+ import { useField, useFieldInternalPropsWithDefaults } from "../internals/hooks/useField/index.js";
6
4
  import { useSplitFieldProps } from "../hooks/index.js";
7
- import { useDefaultizedTimeField } from "../internals/hooks/defaultizedFieldProps.js";
8
- export const useTimeField = inProps => {
9
- const props = useDefaultizedTimeField(inProps);
5
+ import { useTimeManager } from "../managers/index.js";
6
+ export const useTimeField = props => {
7
+ const manager = useTimeManager(props);
10
8
  const {
11
9
  forwardedProps,
12
10
  internalProps
13
11
  } = useSplitFieldProps(props, 'time');
12
+ const internalPropsWithDefaults = useFieldInternalPropsWithDefaults({
13
+ manager,
14
+ internalProps
15
+ });
14
16
  return useField({
15
17
  forwardedProps,
16
- internalProps,
17
- valueManager: singleItemValueManager,
18
- fieldValueManager: singleItemFieldValueManager,
19
- validator: validateTime,
20
- valueType: 'time'
18
+ internalProps: internalPropsWithDefaults,
19
+ valueManager: manager.internal_valueManager,
20
+ fieldValueManager: manager.internal_fieldValueManager,
21
+ validator: manager.validator,
22
+ valueType: manager.valueType,
23
+ getOpenPickerButtonAriaLabel: manager.internal_getOpenPickerButtonAriaLabel
21
24
  });
22
25
  };
@@ -69,8 +69,8 @@ process.env.NODE_ENV !== "production" ? TimePicker.propTypes = {
69
69
  autoFocus: PropTypes.bool,
70
70
  className: PropTypes.string,
71
71
  /**
72
- * If `true`, the popover or modal will close after submitting the full date.
73
- * @default `true` for desktop, `false` for mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).
72
+ * If `true`, the Picker will close after submitting the full date.
73
+ * @default false
74
74
  */
75
75
  closeOnSelect: PropTypes.bool,
76
76
  /**
@@ -1,11 +1,10 @@
1
1
  import { DesktopTimePickerProps, DesktopTimePickerSlots, DesktopTimePickerSlotProps } from '../DesktopTimePicker';
2
- import { BaseSingleInputFieldProps, TimeViewWithMeridiem } from '../internals/models';
2
+ import { BaseSingleInputFieldProps, PickerValue, TimeViewWithMeridiem } from '../internals/models';
3
3
  import { MobileTimePickerProps, MobileTimePickerSlots, MobileTimePickerSlotProps } from '../MobileTimePicker';
4
- import { FieldSection, PickerValidDate, TimeValidationError } from '../models';
5
4
  import { ValidateTimeProps } from '../validation/validateTime';
6
- export interface TimePickerSlots extends DesktopTimePickerSlots, MobileTimePickerSlots<TimeViewWithMeridiem> {
5
+ export interface TimePickerSlots extends DesktopTimePickerSlots, MobileTimePickerSlots {
7
6
  }
8
- export interface TimePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends DesktopTimePickerSlotProps<TEnableAccessibleFieldDOMStructure>, MobileTimePickerSlotProps<TimeViewWithMeridiem, TEnableAccessibleFieldDOMStructure> {
7
+ export interface TimePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends DesktopTimePickerSlotProps<TEnableAccessibleFieldDOMStructure>, MobileTimePickerSlotProps<TEnableAccessibleFieldDOMStructure> {
9
8
  }
10
9
  export interface TimePickerProps<TEnableAccessibleFieldDOMStructure extends boolean = true> extends DesktopTimePickerProps<TEnableAccessibleFieldDOMStructure>, Omit<MobileTimePickerProps<TimeViewWithMeridiem, TEnableAccessibleFieldDOMStructure>, 'views'> {
11
10
  /**
@@ -28,4 +27,4 @@ export interface TimePickerProps<TEnableAccessibleFieldDOMStructure extends bool
28
27
  /**
29
28
  * Props the field can receive when used inside a time picker (<TimePicker />, <DesktopTimePicker /> or <MobileTimePicker /> component).
30
29
  */
31
- export type TimePickerFieldProps<TEnableAccessibleFieldDOMStructure extends boolean = true> = ValidateTimeProps & BaseSingleInputFieldProps<PickerValidDate | null, FieldSection, TEnableAccessibleFieldDOMStructure, TimeValidationError>;
30
+ export type TimePickerFieldProps = ValidateTimeProps & BaseSingleInputFieldProps<PickerValue>;
@@ -1,9 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { BaseToolbarProps, ExportedBaseToolbarProps } from '../internals/models/props/toolbar';
3
3
  import { TimePickerToolbarClasses } from './timePickerToolbarClasses';
4
- import { TimeViewWithMeridiem } from '../internals/models';
5
- import { PickerValidDate } from '../models';
6
- export interface TimePickerToolbarProps extends BaseToolbarProps<PickerValidDate | null, TimeViewWithMeridiem>, ExportedTimePickerToolbarProps {
4
+ export interface TimePickerToolbarProps extends BaseToolbarProps, ExportedTimePickerToolbarProps {
7
5
  ampm?: boolean;
8
6
  ampmInClock?: boolean;
9
7
  }
@@ -2,11 +2,10 @@
2
2
 
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
5
- const _excluded = ["ampm", "ampmInClock", "value", "isLandscape", "onChange", "view", "onViewChange", "views", "className"];
5
+ const _excluded = ["ampm", "ampmInClock", "className", "classes"];
6
6
  import * as React from 'react';
7
7
  import clsx from 'clsx';
8
8
  import PropTypes from 'prop-types';
9
- import { useRtl } from '@mui/system/RtlProvider';
10
9
  import { styled, useThemeProps } from '@mui/material/styles';
11
10
  import composeClasses from '@mui/utils/composeClasses';
12
11
  import { PickersToolbarText } from "../internals/components/PickersToolbarText.js";
@@ -19,18 +18,18 @@ import { useMeridiemMode } from "../internals/hooks/date-helpers-hooks.js";
19
18
  import { getTimePickerToolbarUtilityClass, timePickerToolbarClasses } from "./timePickerToolbarClasses.js";
20
19
  import { formatMeridiem } from "../internals/utils/date-utils.js";
21
20
  import { usePickerContext } from "../hooks/index.js";
21
+ import { useToolbarOwnerState } from "../internals/hooks/useToolbarOwnerState.js";
22
22
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
23
- const useUtilityClasses = ownerState => {
23
+ const useUtilityClasses = (classes, ownerState) => {
24
24
  const {
25
- isLandscape,
26
- classes,
27
- isRtl
25
+ pickerOrientation,
26
+ toolbarDirection
28
27
  } = ownerState;
29
28
  const slots = {
30
29
  root: ['root'],
31
30
  separator: ['separator'],
32
- hourMinuteLabel: ['hourMinuteLabel', isLandscape && 'hourMinuteLabelLandscape', isRtl && 'hourMinuteLabelReverse'],
33
- ampmSelection: ['ampmSelection', isLandscape && 'ampmLandscape'],
31
+ hourMinuteLabel: ['hourMinuteLabel', pickerOrientation === 'landscape' && 'hourMinuteLabelLandscape', toolbarDirection === 'rtl' && 'hourMinuteLabelReverse'],
32
+ ampmSelection: ['ampmSelection', pickerOrientation === 'landscape' && 'ampmLandscape'],
34
33
  ampmLabel: ['ampmLabel']
35
34
  };
36
35
  return composeClasses(slots, getTimePickerToolbarUtilityClass, classes);
@@ -62,14 +61,14 @@ const TimePickerToolbarHourMinuteLabel = styled('div', {
62
61
  alignItems: 'flex-end',
63
62
  variants: [{
64
63
  props: {
65
- isRtl: true
64
+ toolbarDirection: 'rtl'
66
65
  },
67
66
  style: {
68
67
  flexDirection: 'row-reverse'
69
68
  }
70
69
  }, {
71
70
  props: {
72
- isLandscape: true
71
+ pickerOrientation: 'landscape'
73
72
  },
74
73
  style: {
75
74
  marginTop: 'auto'
@@ -94,7 +93,7 @@ const TimePickerToolbarAmPmSelection = styled('div', {
94
93
  },
95
94
  variants: [{
96
95
  props: {
97
- isLandscape: true
96
+ pickerOrientation: 'landscape'
98
97
  },
99
98
  style: {
100
99
  margin: '4px 0 auto',
@@ -123,32 +122,36 @@ function TimePickerToolbar(inProps) {
123
122
  const {
124
123
  ampm,
125
124
  ampmInClock,
126
- value,
127
- isLandscape,
128
- onChange,
129
- view,
130
- onViewChange,
131
- views,
132
- className
125
+ className,
126
+ classes: classesProp
133
127
  } = props,
134
128
  other = _objectWithoutPropertiesLoose(props, _excluded);
135
129
  const utils = useUtils();
136
130
  const translations = usePickerTranslations();
137
- const isRtl = useRtl();
131
+ const ownerState = useToolbarOwnerState();
132
+ const classes = useUtilityClasses(classesProp, ownerState);
138
133
  const {
134
+ value,
135
+ setValue,
139
136
  disabled,
140
- readOnly
137
+ readOnly,
138
+ view,
139
+ setView,
140
+ views
141
141
  } = usePickerContext();
142
142
  const showAmPmControl = Boolean(ampm && !ampmInClock && views.includes('hours'));
143
143
  const {
144
144
  meridiemMode,
145
145
  handleMeridiemChange
146
- } = useMeridiemMode(value, ampm, onChange);
147
- const formatHours = time => ampm ? utils.format(time, 'hours12h') : utils.format(time, 'hours24h');
148
- const ownerState = _extends({}, props, {
149
- isRtl
150
- });
151
- const classes = useUtilityClasses(ownerState);
146
+ } = useMeridiemMode(value, ampm, newValue => setValue(newValue, {
147
+ changeImportance: 'set'
148
+ }));
149
+ const formatSection = format => {
150
+ if (!utils.isValid(value)) {
151
+ return '--';
152
+ }
153
+ return utils.format(value, format);
154
+ };
152
155
  const separator = /*#__PURE__*/_jsx(TimePickerToolbarSeparator, {
153
156
  tabIndex: -1,
154
157
  value: ":",
@@ -159,7 +162,6 @@ function TimePickerToolbar(inProps) {
159
162
  return /*#__PURE__*/_jsxs(TimePickerToolbarRoot, _extends({
160
163
  landscapeDirection: "row",
161
164
  toolbarTitle: translations.timePickerToolbarTitle,
162
- isLandscape: isLandscape,
163
165
  ownerState: ownerState,
164
166
  className: clsx(classes.root, className)
165
167
  }, other, {
@@ -169,20 +171,20 @@ function TimePickerToolbar(inProps) {
169
171
  children: [arrayIncludes(views, 'hours') && /*#__PURE__*/_jsx(PickersToolbarButton, {
170
172
  tabIndex: -1,
171
173
  variant: "h3",
172
- onClick: () => onViewChange('hours'),
174
+ onClick: () => setView('hours'),
173
175
  selected: view === 'hours',
174
- value: value ? formatHours(value) : '--'
176
+ value: formatSection(ampm ? 'hours12h' : 'hours24h')
175
177
  }), arrayIncludes(views, ['hours', 'minutes']) && separator, arrayIncludes(views, 'minutes') && /*#__PURE__*/_jsx(PickersToolbarButton, {
176
178
  tabIndex: -1,
177
179
  variant: "h3",
178
- onClick: () => onViewChange('minutes'),
180
+ onClick: () => setView('minutes'),
179
181
  selected: view === 'minutes',
180
- value: value ? utils.format(value, 'minutes') : '--'
182
+ value: formatSection('minutes')
181
183
  }), arrayIncludes(views, ['minutes', 'seconds']) && separator, arrayIncludes(views, 'seconds') && /*#__PURE__*/_jsx(PickersToolbarButton, {
182
184
  variant: "h3",
183
- onClick: () => onViewChange('seconds'),
185
+ onClick: () => setView('seconds'),
184
186
  selected: view === 'seconds',
185
- value: value ? utils.format(value, 'seconds') : '--'
187
+ value: formatSection('seconds')
186
188
  })]
187
189
  }), showAmPmControl && /*#__PURE__*/_jsxs(TimePickerToolbarAmPmSelection, {
188
190
  className: classes.ampmSelection,
@@ -224,14 +226,6 @@ process.env.NODE_ENV !== "production" ? TimePickerToolbar.propTypes = {
224
226
  * @default `true` for Desktop, `false` for Mobile.
225
227
  */
226
228
  hidden: PropTypes.bool,
227
- isLandscape: PropTypes.bool.isRequired,
228
- onChange: PropTypes.func.isRequired,
229
- /**
230
- * Callback called when a toolbar is clicked
231
- * @template TView
232
- * @param {TView} view The view to open
233
- */
234
- onViewChange: PropTypes.func.isRequired,
235
229
  /**
236
230
  * The system prop that allows defining system overrides as well as additional CSS styles.
237
231
  */
@@ -245,15 +239,6 @@ process.env.NODE_ENV !== "production" ? TimePickerToolbar.propTypes = {
245
239
  * Toolbar value placeholder—it is displayed when the value is empty.
246
240
  * @default "––"
247
241
  */
248
- toolbarPlaceholder: PropTypes.node,
249
- value: PropTypes.object,
250
- /**
251
- * Currently visible picker view.
252
- */
253
- view: PropTypes.oneOf(['hours', 'meridiem', 'minutes', 'seconds']).isRequired,
254
- /**
255
- * Available views.
256
- */
257
- views: PropTypes.arrayOf(PropTypes.oneOf(['hours', 'meridiem', 'minutes', 'seconds']).isRequired).isRequired
242
+ toolbarPlaceholder: PropTypes.node
258
243
  } : void 0;
259
244
  export { TimePickerToolbar };
@@ -2,14 +2,14 @@ import * as React from 'react';
2
2
  import { DefaultizedProps } from '@mui/x-internals/types';
3
3
  import { TimeClockSlots, TimeClockSlotProps } from '../TimeClock/TimeClock.types';
4
4
  import { BasePickerInputProps } from '../internals/models/props/basePickerProps';
5
- import { BaseTimeValidationProps } from '../internals/models/validation';
6
5
  import { LocalizedComponent } from '../locales/utils/pickersLocaleTextApi';
7
6
  import { TimePickerToolbarProps, ExportedTimePickerToolbarProps } from './TimePickerToolbar';
8
- import { PickerValidDate, TimeValidationError } from '../models';
7
+ import { TimeValidationError } from '../models';
9
8
  import { PickerViewRendererLookup } from '../internals/hooks/usePicker/usePickerViews';
10
9
  import { TimeViewRendererProps } from '../timeViewRenderers';
11
10
  import { BaseClockProps, ExportedBaseClockProps } from '../internals/models/props/time';
12
- import { TimeViewWithMeridiem } from '../internals/models';
11
+ import { PickerValue, TimeViewWithMeridiem } from '../internals/models';
12
+ import { ValidateTimePropsToDefault } from '../validation/validateTime';
13
13
  export interface BaseTimePickerSlots extends TimeClockSlots {
14
14
  /**
15
15
  * Custom component for the toolbar rendered above the views.
@@ -20,8 +20,8 @@ export interface BaseTimePickerSlots extends TimeClockSlots {
20
20
  export interface BaseTimePickerSlotProps extends TimeClockSlotProps {
21
21
  toolbar?: ExportedTimePickerToolbarProps;
22
22
  }
23
- export type TimePickerViewRenderers<TView extends TimeViewWithMeridiem, TAdditionalProps extends {} = {}> = PickerViewRendererLookup<PickerValidDate | null, TView, TimeViewRendererProps<TView, BaseClockProps<TView>>, TAdditionalProps>;
24
- export interface BaseTimePickerProps<TView extends TimeViewWithMeridiem> extends BasePickerInputProps<PickerValidDate | null, TView, TimeValidationError>, ExportedBaseClockProps {
23
+ export type TimePickerViewRenderers<TView extends TimeViewWithMeridiem> = PickerViewRendererLookup<PickerValue, TView, TimeViewRendererProps<TView, BaseClockProps<TView>>>;
24
+ export interface BaseTimePickerProps<TView extends TimeViewWithMeridiem> extends BasePickerInputProps<PickerValue, TView, TimeValidationError>, ExportedBaseClockProps {
25
25
  /**
26
26
  * Display ampm controls under the clock (instead of in the toolbar).
27
27
  * @default true on desktop, false on mobile
@@ -44,6 +44,6 @@ export interface BaseTimePickerProps<TView extends TimeViewWithMeridiem> extends
44
44
  */
45
45
  viewRenderers?: Partial<TimePickerViewRenderers<TView>>;
46
46
  }
47
- type UseTimePickerDefaultizedProps<TView extends TimeViewWithMeridiem, Props extends BaseTimePickerProps<TView>> = LocalizedComponent<DefaultizedProps<Props, 'views' | 'openTo' | 'ampm' | keyof BaseTimeValidationProps>>;
47
+ type UseTimePickerDefaultizedProps<TView extends TimeViewWithMeridiem, Props extends BaseTimePickerProps<TView>> = LocalizedComponent<DefaultizedProps<Props, 'views' | 'openTo' | 'ampm' | ValidateTimePropsToDefault>>;
48
48
  export declare function useTimePickerDefaultizedProps<TView extends TimeViewWithMeridiem, Props extends BaseTimePickerProps<TView>>(props: Props, name: string): UseTimePickerDefaultizedProps<TView, Props>;
49
49
  export {};
@@ -7,9 +7,10 @@ import * as React from 'react';
7
7
  import PropTypes from 'prop-types';
8
8
  import clsx from 'clsx';
9
9
  import { useRtl } from '@mui/system/RtlProvider';
10
+ import { shouldForwardProp } from '@mui/system/createStyled';
10
11
  import { styled, useThemeProps } from '@mui/material/styles';
11
12
  import { unstable_useForkRef as useForkRef, unstable_composeClasses as composeClasses, unstable_useControlled as useControlled, unstable_useEventCallback as useEventCallback } from '@mui/utils';
12
- import { PickersYear } from "./PickersYear.js";
13
+ import { YearCalendarButton } from "./YearCalendarButton.js";
13
14
  import { useUtils, useNow, useDefaultDates } from "../internals/hooks/useUtils.js";
14
15
  import { getYearCalendarUtilityClass } from "./yearCalendarClasses.js";
15
16
  import { applyDefaultDate } from "../internals/utils/date-utils.js";
@@ -18,7 +19,7 @@ import { SECTION_TYPE_GRANULARITY } from "../internals/utils/getDefaultReference
18
19
  import { useControlledValueWithTimezone } from "../internals/hooks/useValueWithTimezone.js";
19
20
  import { DIALOG_WIDTH, MAX_CALENDAR_HEIGHT } from "../internals/constants/dimensions.js";
20
21
  import { usePickerPrivateContext } from "../internals/hooks/usePickerPrivateContext.js";
21
- import { jsx as _jsx } from "react/jsx-runtime";
22
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
22
23
  const useUtilityClasses = classes => {
23
24
  const slots = {
24
25
  root: ['root']
@@ -37,6 +38,7 @@ function useYearCalendarDefaultizedProps(props, name) {
37
38
  disableFuture: false
38
39
  }, themeProps, {
39
40
  yearsPerRow: themeProps.yearsPerRow ?? 3,
41
+ yearsOrder: themeProps.yearsOrder ?? 'asc',
40
42
  minDate: applyDefaultDate(utils, themeProps.minDate, defaultDates.minDate),
41
43
  maxDate: applyDefaultDate(utils, themeProps.maxDate, defaultDates.maxDate)
42
44
  });
@@ -44,19 +46,43 @@ function useYearCalendarDefaultizedProps(props, name) {
44
46
  const YearCalendarRoot = styled('div', {
45
47
  name: 'MuiYearCalendar',
46
48
  slot: 'Root',
47
- overridesResolver: (props, styles) => styles.root
49
+ shouldForwardProp: prop => shouldForwardProp(prop) && prop !== 'yearsPerRow'
48
50
  })({
49
51
  display: 'flex',
50
- flexDirection: 'row',
51
52
  flexWrap: 'wrap',
53
+ justifyContent: 'space-evenly',
54
+ rowGap: 12,
55
+ padding: '6px 0',
52
56
  overflowY: 'auto',
53
57
  height: '100%',
54
- padding: '0 4px',
55
58
  width: DIALOG_WIDTH,
56
59
  maxHeight: MAX_CALENDAR_HEIGHT,
57
60
  // avoid padding increasing width over defined
58
61
  boxSizing: 'border-box',
59
- position: 'relative'
62
+ position: 'relative',
63
+ variants: [{
64
+ props: {
65
+ yearsPerRow: 3
66
+ },
67
+ style: {
68
+ columnGap: 24
69
+ }
70
+ }, {
71
+ props: {
72
+ yearsPerRow: 4
73
+ },
74
+ style: {
75
+ columnGap: 0,
76
+ padding: '0 2px'
77
+ }
78
+ }]
79
+ });
80
+ const YearCalendarButtonFiller = styled('div', {
81
+ name: 'MuiYearCalendar',
82
+ slot: 'ButtonFiller'
83
+ })({
84
+ height: 36,
85
+ width: 72
60
86
  });
61
87
  /**
62
88
  * Demos:
@@ -87,7 +113,7 @@ export const YearCalendar = /*#__PURE__*/React.forwardRef(function YearCalendar(
87
113
  onYearFocus,
88
114
  hasFocus,
89
115
  onFocusedViewChange,
90
- yearsOrder = 'asc',
116
+ yearsOrder,
91
117
  yearsPerRow,
92
118
  timezone: timezoneProp,
93
119
  gridLabelId,
@@ -239,18 +265,23 @@ export const YearCalendar = /*#__PURE__*/React.forwardRef(function YearCalendar(
239
265
  if (yearsOrder === 'desc') {
240
266
  yearRange.reverse();
241
267
  }
242
- return /*#__PURE__*/_jsx(YearCalendarRoot, _extends({
268
+ let fillerAmount = yearsPerRow - yearRange.length % yearsPerRow;
269
+ if (fillerAmount === yearsPerRow) {
270
+ fillerAmount = 0;
271
+ }
272
+ return /*#__PURE__*/_jsxs(YearCalendarRoot, _extends({
243
273
  ref: handleRef,
244
274
  className: clsx(classes.root, className),
245
275
  ownerState: ownerState,
246
276
  role: "radiogroup",
247
- "aria-labelledby": gridLabelId
277
+ "aria-labelledby": gridLabelId,
278
+ yearsPerRow: yearsPerRow
248
279
  }, other, {
249
- children: yearRange.map(year => {
280
+ children: [yearRange.map(year => {
250
281
  const yearNumber = utils.getYear(year);
251
282
  const isSelected = yearNumber === selectedYear;
252
283
  const isDisabled = disabled || isYearDisabled(year);
253
- return /*#__PURE__*/_jsx(PickersYear, {
284
+ return /*#__PURE__*/_jsx(YearCalendarButton, {
254
285
  selected: isSelected,
255
286
  value: yearNumber,
256
287
  onClick: handleYearSelection,
@@ -261,12 +292,14 @@ export const YearCalendar = /*#__PURE__*/React.forwardRef(function YearCalendar(
261
292
  onFocus: handleYearFocus,
262
293
  onBlur: handleYearBlur,
263
294
  "aria-current": todayYear === yearNumber ? 'date' : undefined,
264
- yearsPerRow: yearsPerRow,
265
295
  slots: slots,
266
296
  slotProps: slotProps,
297
+ classes: classesProp,
267
298
  children: utils.format(year, 'year')
268
299
  }, utils.format(year, 'year'));
269
- })
300
+ }), Array.from({
301
+ length: fillerAmount
302
+ }, (_, index) => /*#__PURE__*/_jsx(YearCalendarButtonFiller, {}, index))]
270
303
  }));
271
304
  });
272
305
  process.env.NODE_ENV !== "production" ? YearCalendar.propTypes = {
@@ -6,7 +6,7 @@ import { YearCalendarClasses } from './yearCalendarClasses';
6
6
  import { BaseDateValidationProps, YearValidationProps } from '../internals/models/validation';
7
7
  import { PickerOwnerState, PickerValidDate, TimezoneProps } from '../models';
8
8
  import { FormProps } from '../internals/models/formProps';
9
- export interface PickerYearOwnerState extends PickerOwnerState {
9
+ export interface YearButtonOwnerState extends PickerOwnerState {
10
10
  isYearSelected: boolean;
11
11
  isYearDisabled: boolean;
12
12
  }
@@ -20,7 +20,7 @@ export interface YearCalendarSlots {
20
20
  export interface YearCalendarSlotProps {
21
21
  yearButton?: SlotComponentPropsFromProps<React.HTMLAttributes<HTMLButtonElement> & {
22
22
  sx: SxProps;
23
- }, {}, PickerYearOwnerState>;
23
+ }, {}, YearButtonOwnerState>;
24
24
  }
25
25
  export interface ExportedYearCalendarProps {
26
26
  /**
@@ -0,0 +1,23 @@
1
+ import * as React from 'react';
2
+ import { YearCalendarSlotProps, YearCalendarSlots } from './YearCalendar.types';
3
+ import { YearCalendarClasses } from './yearCalendarClasses';
4
+ export interface YearCalendarButtonProps {
5
+ value: number;
6
+ tabIndex: number;
7
+ selected: boolean;
8
+ disabled: boolean;
9
+ autoFocus: boolean;
10
+ classes: Partial<YearCalendarClasses> | undefined;
11
+ slots: YearCalendarSlots | undefined;
12
+ slotProps: YearCalendarSlotProps | undefined;
13
+ 'aria-current': React.AriaAttributes['aria-current'];
14
+ children: React.ReactNode;
15
+ onClick: (event: React.MouseEvent, year: number) => void;
16
+ onKeyDown: (event: React.KeyboardEvent, year: number) => void;
17
+ onFocus: (event: React.FocusEvent, year: number) => void;
18
+ onBlur: (event: React.FocusEvent, year: number) => void;
19
+ }
20
+ /**
21
+ * @ignore - internal component.
22
+ */
23
+ export declare const YearCalendarButton: React.NamedExoticComponent<YearCalendarButtonProps>;
@@ -1,47 +1,27 @@
1
1
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
2
  import _extends from "@babel/runtime/helpers/esm/extends";
3
- const _excluded = ["autoFocus", "className", "classes", "children", "disabled", "selected", "value", "tabIndex", "onClick", "onKeyDown", "onFocus", "onBlur", "aria-current", "yearsPerRow", "slots", "slotProps"];
3
+ const _excluded = ["autoFocus", "classes", "disabled", "selected", "value", "onClick", "onKeyDown", "onFocus", "onBlur", "slots", "slotProps"];
4
4
  import * as React from 'react';
5
- import clsx from 'clsx';
6
- import { styled, alpha, useThemeProps } from '@mui/material/styles';
5
+ import { styled, alpha } from '@mui/material/styles';
7
6
  import useSlotProps from '@mui/utils/useSlotProps';
8
7
  import composeClasses from '@mui/utils/composeClasses';
9
8
  import useEnhancedEffect from '@mui/utils/useEnhancedEffect';
10
- import { getPickersYearUtilityClass, pickersYearClasses } from "./pickersYearClasses.js";
11
9
  import { usePickerPrivateContext } from "../internals/hooks/usePickerPrivateContext.js";
10
+ import { getYearCalendarUtilityClass, yearCalendarClasses } from "./yearCalendarClasses.js";
12
11
  import { jsx as _jsx } from "react/jsx-runtime";
13
12
  const useUtilityClasses = (classes, ownerState) => {
14
13
  const slots = {
15
- root: ['root'],
16
- yearButton: ['yearButton', ownerState.isYearDisabled && 'disabled', ownerState.isYearSelected && 'selected']
14
+ button: ['button', ownerState.isYearDisabled && 'disabled', ownerState.isYearSelected && 'selected']
17
15
  };
18
- return composeClasses(slots, getPickersYearUtilityClass, classes);
16
+ return composeClasses(slots, getYearCalendarUtilityClass, classes);
19
17
  };
20
- const PickersYearRoot = styled('div', {
21
- name: 'MuiPickersYear',
22
- slot: 'Root',
23
- overridesResolver: (_, styles) => [styles.root]
24
- })({
25
- display: 'flex',
26
- alignItems: 'center',
27
- justifyContent: 'center',
28
- flexBasis: '33.3%',
29
- variants: [{
30
- props: {
31
- yearsPerRow: 4
32
- },
33
- style: {
34
- flexBasis: '25%'
35
- }
36
- }]
37
- });
38
- const YearCalendarButton = styled('button', {
39
- name: 'MuiPickersYear',
40
- slot: 'YearButton',
41
- overridesResolver: (_, styles) => [styles.yearButton, {
42
- [`&.${pickersYearClasses.disabled}`]: styles.disabled
18
+ const DefaultYearButton = styled('button', {
19
+ name: 'MuiYearCalendar',
20
+ slot: 'Button',
21
+ overridesResolver: (_, styles) => [styles.button, {
22
+ [`&.${yearCalendarClasses.disabled}`]: styles.disabled
43
23
  }, {
44
- [`&.${pickersYearClasses.selected}`]: styles.selected
24
+ [`&.${yearCalendarClasses.selected}`]: styles.selected
45
25
  }]
46
26
  })(({
47
27
  theme
@@ -51,7 +31,6 @@ const YearCalendarButton = styled('button', {
51
31
  border: 0,
52
32
  outline: 0
53
33
  }, theme.typography.subtitle1, {
54
- margin: '6px 0',
55
34
  height: 36,
56
35
  width: 72,
57
36
  borderRadius: 18,
@@ -66,10 +45,10 @@ const YearCalendarButton = styled('button', {
66
45
  cursor: 'auto',
67
46
  pointerEvents: 'none'
68
47
  },
69
- [`&.${pickersYearClasses.disabled}`]: {
48
+ [`&.${yearCalendarClasses.disabled}`]: {
70
49
  color: (theme.vars || theme).palette.text.secondary
71
50
  },
72
- [`&.${pickersYearClasses.selected}`]: {
51
+ [`&.${yearCalendarClasses.selected}`]: {
73
52
  color: (theme.vars || theme).palette.primary.contrastText,
74
53
  backgroundColor: (theme.vars || theme).palette.primary.main,
75
54
  '&:focus, &:hover': {
@@ -81,28 +60,17 @@ const YearCalendarButton = styled('button', {
81
60
  /**
82
61
  * @ignore - internal component.
83
62
  */
84
- export const PickersYear = /*#__PURE__*/React.memo(function PickersYear(inProps) {
85
- const props = useThemeProps({
86
- props: inProps,
87
- name: 'MuiPickersYear'
88
- });
63
+ export const YearCalendarButton = /*#__PURE__*/React.memo(function YearCalendarButton(props) {
89
64
  const {
90
65
  autoFocus,
91
- className,
92
66
  classes: classesProp,
93
- children,
94
- disabled = false,
95
- selected = false,
67
+ disabled,
68
+ selected,
96
69
  value,
97
- tabIndex,
98
70
  onClick,
99
71
  onKeyDown,
100
72
  onFocus,
101
73
  onBlur,
102
- 'aria-current': ariaCurrent
103
- // We don't want to forward this prop to the root element
104
- ,
105
-
106
74
  slots,
107
75
  slotProps
108
76
  } = props,
@@ -124,18 +92,16 @@ export const PickersYear = /*#__PURE__*/React.memo(function PickersYear(inProps)
124
92
  ref.current?.focus();
125
93
  }
126
94
  }, [autoFocus]);
127
- const YearButton = slots?.yearButton ?? YearCalendarButton;
95
+ const YearButton = slots?.yearButton ?? DefaultYearButton;
128
96
  const yearButtonProps = useSlotProps({
129
97
  elementType: YearButton,
130
98
  externalSlotProps: slotProps?.yearButton,
99
+ externalForwardedProps: other,
131
100
  additionalProps: {
132
- children,
133
101
  disabled,
134
- tabIndex,
135
102
  ref,
136
103
  type: 'button',
137
104
  role: 'radio',
138
- 'aria-current': ariaCurrent,
139
105
  'aria-checked': selected,
140
106
  onClick: event => onClick(event, value),
141
107
  onKeyDown: event => onKeyDown(event, value),
@@ -143,12 +109,7 @@ export const PickersYear = /*#__PURE__*/React.memo(function PickersYear(inProps)
143
109
  onBlur: event => onBlur(event, value)
144
110
  },
145
111
  ownerState,
146
- className: classes.yearButton
112
+ className: classes.button
147
113
  });
148
- return /*#__PURE__*/_jsx(PickersYearRoot, _extends({
149
- className: clsx(classes.root, className),
150
- ownerState: ownerState
151
- }, other, {
152
- children: /*#__PURE__*/_jsx(YearButton, _extends({}, yearButtonProps))
153
- }));
114
+ return /*#__PURE__*/_jsx(YearButton, _extends({}, yearButtonProps));
154
115
  });
@@ -2,6 +2,3 @@ export { YearCalendar } from './YearCalendar';
2
2
  export type { YearCalendarProps, YearCalendarSlots, YearCalendarSlotProps, } from './YearCalendar.types';
3
3
  export { yearCalendarClasses, getYearCalendarUtilityClass } from './yearCalendarClasses';
4
4
  export type { YearCalendarClasses, YearCalendarClassKey } from './yearCalendarClasses';
5
- export { pickersYearClasses } from './pickersYearClasses';
6
- export type { PickersYearClasses, PickersYearClassKey } from './pickersYearClasses';
7
- export type { ExportedPickersYearProps } from './PickersYear';
@@ -1,3 +1,2 @@
1
1
  export { YearCalendar } from "./YearCalendar.js";
2
- export { yearCalendarClasses, getYearCalendarUtilityClass } from "./yearCalendarClasses.js";
3
- export { pickersYearClasses } from "./pickersYearClasses.js";
2
+ export { yearCalendarClasses, getYearCalendarUtilityClass } from "./yearCalendarClasses.js";
@@ -1,7 +1,13 @@
1
1
  export interface YearCalendarClasses {
2
2
  /** Styles applied to the root element. */
3
3
  root: string;
4
+ /** Styles applied to the button element that represents a single year */
5
+ button: string;
6
+ /** Styles applied to a disabled button element. */
7
+ disabled: string;
8
+ /** Styles applied to a selected button element. */
9
+ selected: string;
4
10
  }
5
11
  export type YearCalendarClassKey = keyof YearCalendarClasses;
6
12
  export declare function getYearCalendarUtilityClass(slot: string): string;
7
- export declare const yearCalendarClasses: Record<"root", string>;
13
+ export declare const yearCalendarClasses: Record<"button" | "disabled" | "selected" | "root", string>;