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

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 (580) 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 +2007 -230
  21. package/DateCalendar/DateCalendar.js +41 -22
  22. package/DateCalendar/DateCalendar.types.d.ts +2 -1
  23. package/DateCalendar/DayCalendar.d.ts +1 -2
  24. package/DateCalendar/DayCalendar.js +12 -36
  25. package/DateCalendar/PickersFadeTransitionGroup.d.ts +1 -1
  26. package/DateCalendar/PickersFadeTransitionGroup.js +4 -6
  27. package/DateCalendar/PickersSlideTransition.d.ts +1 -1
  28. package/DateCalendar/PickersSlideTransition.js +12 -5
  29. package/DateCalendar/useCalendarState.d.ts +13 -27
  30. package/DateCalendar/useCalendarState.js +65 -55
  31. package/DateField/DateField.js +29 -33
  32. package/DateField/DateField.types.d.ts +7 -15
  33. package/DateField/useDateField.d.ts +1 -1
  34. package/DateField/useDateField.js +14 -11
  35. package/DatePicker/DatePicker.js +1 -1
  36. package/DatePicker/DatePicker.types.d.ts +7 -3
  37. package/DatePicker/DatePickerToolbar.d.ts +1 -2
  38. package/DatePicker/DatePickerToolbar.js +17 -33
  39. package/DatePicker/shared.d.ts +6 -5
  40. package/DateTimeField/DateTimeField.js +29 -33
  41. package/DateTimeField/DateTimeField.types.d.ts +7 -16
  42. package/DateTimeField/useDateTimeField.d.ts +1 -1
  43. package/DateTimeField/useDateTimeField.js +14 -11
  44. package/DateTimePicker/DateTimePicker.js +2 -2
  45. package/DateTimePicker/DateTimePicker.types.d.ts +4 -5
  46. package/DateTimePicker/DateTimePickerTabs.d.ts +2 -5
  47. package/DateTimePicker/DateTimePickerTabs.js +15 -20
  48. package/DateTimePicker/DateTimePickerToolbar.d.ts +16 -5
  49. package/DateTimePicker/DateTimePickerToolbar.js +88 -80
  50. package/DateTimePicker/shared.d.ts +8 -8
  51. package/DayCalendarSkeleton/DayCalendarSkeleton.js +10 -19
  52. package/DesktopDatePicker/DesktopDatePicker.js +11 -17
  53. package/DesktopDatePicker/DesktopDatePicker.types.d.ts +7 -3
  54. package/DesktopDateTimePicker/DesktopDateTimePicker.js +17 -27
  55. package/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +2 -2
  56. package/DesktopDateTimePicker/DesktopDateTimePickerLayout.d.ts +2 -2
  57. package/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +9 -34
  58. package/DesktopTimePicker/DesktopTimePicker.js +6 -22
  59. package/DesktopTimePicker/DesktopTimePicker.types.d.ts +2 -2
  60. package/DigitalClock/DigitalClock.js +13 -11
  61. package/DigitalClock/DigitalClock.types.d.ts +8 -2
  62. package/MobileDatePicker/MobileDatePicker.js +4 -14
  63. package/MobileDatePicker/MobileDatePicker.types.d.ts +2 -3
  64. package/MobileDateTimePicker/MobileDateTimePicker.js +4 -14
  65. package/MobileDateTimePicker/MobileDateTimePicker.types.d.ts +4 -4
  66. package/MobileTimePicker/MobileTimePicker.js +4 -14
  67. package/MobileTimePicker/MobileTimePicker.types.d.ts +4 -4
  68. package/MonthCalendar/MonthCalendar.d.ts +1 -1
  69. package/MonthCalendar/MonthCalendar.js +31 -11
  70. package/MonthCalendar/MonthCalendar.types.d.ts +2 -2
  71. package/MonthCalendar/MonthCalendarButton.d.ts +24 -0
  72. package/{modern/MonthCalendar/PickersMonth.js → MonthCalendar/MonthCalendarButton.js} +20 -61
  73. package/MonthCalendar/index.d.ts +0 -3
  74. package/MonthCalendar/index.js +1 -2
  75. package/MonthCalendar/monthCalendarClasses.d.ts +7 -1
  76. package/MonthCalendar/monthCalendarClasses.js +1 -1
  77. package/MultiSectionDigitalClock/MultiSectionDigitalClock.js +11 -7
  78. package/MultiSectionDigitalClock/MultiSectionDigitalClock.types.d.ts +6 -6
  79. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.d.ts +4 -4
  80. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +14 -10
  81. package/PickersActionBar/PickersActionBar.d.ts +6 -7
  82. package/PickersActionBar/PickersActionBar.js +26 -17
  83. package/PickersCalendarHeader/PickersCalendarHeader.js +12 -9
  84. package/PickersCalendarHeader/PickersCalendarHeader.types.d.ts +4 -6
  85. package/PickersLayout/PickersLayout.d.ts +7 -5
  86. package/PickersLayout/PickersLayout.js +23 -42
  87. package/PickersLayout/PickersLayout.types.d.ts +20 -22
  88. package/PickersLayout/usePickerLayout.d.ts +5 -4
  89. package/PickersLayout/usePickerLayout.js +26 -53
  90. package/PickersSectionList/PickersSectionList.js +21 -16
  91. package/PickersSectionList/PickersSectionList.types.d.ts +13 -6
  92. package/PickersShortcuts/PickersShortcuts.d.ts +9 -11
  93. package/PickersShortcuts/PickersShortcuts.js +21 -11
  94. package/PickersShortcuts/index.d.ts +1 -1
  95. package/PickersTextField/PickersFilledInput/PickersFilledInput.d.ts +7 -0
  96. package/PickersTextField/PickersFilledInput/PickersFilledInput.js +34 -28
  97. package/PickersTextField/PickersFilledInput/pickersFilledInputClasses.d.ts +1 -1
  98. package/PickersTextField/PickersInput/PickersInput.js +20 -14
  99. package/PickersTextField/PickersInput/pickersInputClasses.d.ts +3 -2
  100. package/PickersTextField/PickersInput/pickersInputClasses.js +1 -1
  101. package/PickersTextField/PickersInputBase/PickersInputBase.d.ts +3 -6
  102. package/PickersTextField/PickersInputBase/PickersInputBase.js +45 -38
  103. package/PickersTextField/PickersInputBase/PickersInputBase.types.d.ts +1 -0
  104. package/PickersTextField/PickersOutlinedInput/Outline.d.ts +0 -1
  105. package/PickersTextField/PickersOutlinedInput/Outline.js +13 -10
  106. package/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +8 -14
  107. package/PickersTextField/PickersTextField.js +75 -62
  108. package/PickersTextField/PickersTextField.types.d.ts +43 -4
  109. package/PickersTextField/usePickerTextFieldOwnerState.d.ts +4 -0
  110. package/PickersTextField/usePickerTextFieldOwnerState.js +11 -0
  111. package/README.md +8 -5
  112. package/StaticDatePicker/StaticDatePicker.js +2 -2
  113. package/StaticDatePicker/StaticDatePicker.types.d.ts +2 -3
  114. package/StaticDateTimePicker/StaticDateTimePicker.js +2 -2
  115. package/StaticDateTimePicker/StaticDateTimePicker.types.d.ts +2 -2
  116. package/StaticTimePicker/StaticTimePicker.js +2 -2
  117. package/StaticTimePicker/StaticTimePicker.types.d.ts +2 -2
  118. package/TimeClock/Clock.d.ts +4 -0
  119. package/TimeClock/Clock.js +27 -27
  120. package/TimeClock/ClockNumber.js +15 -11
  121. package/TimeClock/ClockPointer.d.ts +6 -1
  122. package/TimeClock/ClockPointer.js +16 -10
  123. package/TimeClock/TimeClock.js +30 -12
  124. package/TimeField/TimeField.js +28 -32
  125. package/TimeField/TimeField.types.d.ts +7 -16
  126. package/TimeField/useTimeField.d.ts +1 -1
  127. package/TimeField/useTimeField.js +14 -11
  128. package/TimePicker/TimePicker.js +2 -2
  129. package/TimePicker/TimePicker.types.d.ts +4 -5
  130. package/TimePicker/TimePickerToolbar.d.ts +1 -3
  131. package/TimePicker/TimePickerToolbar.js +36 -51
  132. package/TimePicker/shared.d.ts +6 -6
  133. package/YearCalendar/YearCalendar.js +46 -13
  134. package/YearCalendar/YearCalendar.types.d.ts +2 -2
  135. package/YearCalendar/YearCalendarButton.d.ts +23 -0
  136. package/{modern/YearCalendar/PickersYear.js → YearCalendar/YearCalendarButton.js} +20 -59
  137. package/YearCalendar/index.d.ts +0 -3
  138. package/YearCalendar/index.js +1 -2
  139. package/YearCalendar/yearCalendarClasses.d.ts +7 -1
  140. package/YearCalendar/yearCalendarClasses.js +1 -1
  141. package/hooks/index.d.ts +2 -0
  142. package/hooks/index.js +3 -1
  143. package/hooks/useClearableField.d.ts +5 -3
  144. package/hooks/useClearableField.js +4 -2
  145. package/hooks/useIsValidValue.d.ts +7 -0
  146. package/hooks/useIsValidValue.js +11 -0
  147. package/hooks/useParsedFormat.d.ts +9 -7
  148. package/hooks/useParsedFormat.js +11 -13
  149. package/hooks/usePickerActionsContext.d.ts +7 -0
  150. package/hooks/usePickerActionsContext.js +15 -0
  151. package/hooks/usePickerContext.d.ts +5 -1
  152. package/hooks/usePickerContext.js +2 -2
  153. package/hooks/useSplitFieldProps.d.ts +12 -3
  154. package/hooks/useSplitFieldProps.js +8 -3
  155. package/index.d.ts +1 -0
  156. package/index.js +3 -2
  157. package/internals/components/PickerFieldUI.d.ts +133 -0
  158. package/internals/components/PickerFieldUI.js +317 -0
  159. package/internals/components/{PickersPopper.d.ts → PickerPopper/PickerPopper.d.ts} +26 -25
  160. package/{modern/internals/components/PickersPopper.js → internals/components/PickerPopper/PickerPopper.js} +47 -47
  161. package/internals/components/PickerPopper/index.d.ts +4 -0
  162. package/internals/components/PickerPopper/index.js +2 -0
  163. package/internals/components/PickerPopper/pickerPopperClasses.d.ts +9 -0
  164. package/internals/components/PickerPopper/pickerPopperClasses.js +6 -0
  165. package/internals/components/PickerProvider.d.ts +86 -32
  166. package/internals/components/PickerProvider.js +25 -7
  167. package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +12 -11
  168. package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.types.d.ts +11 -8
  169. package/internals/components/PickersModalDialog.d.ts +1 -3
  170. package/internals/components/PickersModalDialog.js +9 -3
  171. package/internals/components/PickersToolbar.d.ts +2 -3
  172. package/internals/components/PickersToolbar.js +15 -12
  173. package/internals/components/PickersToolbarButton.js +4 -6
  174. package/internals/components/PickersToolbarText.js +11 -13
  175. package/internals/hooks/date-helpers-hooks.js +4 -3
  176. package/internals/hooks/useClockReferenceDate.d.ts +2 -1
  177. package/internals/hooks/useDesktopPicker/useDesktopPicker.d.ts +1 -1
  178. package/internals/hooks/useDesktopPicker/useDesktopPicker.js +35 -120
  179. package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +16 -38
  180. package/internals/hooks/useField/buildSectionsFromFormat.js +1 -1
  181. package/internals/hooks/useField/index.d.ts +2 -0
  182. package/internals/hooks/useField/index.js +2 -1
  183. package/internals/hooks/useField/useField.d.ts +3 -3
  184. package/internals/hooks/useField/useField.js +17 -4
  185. package/internals/hooks/useField/useField.types.d.ts +55 -48
  186. package/internals/hooks/useField/useField.utils.d.ts +4 -3
  187. package/internals/hooks/useField/useField.utils.js +2 -2
  188. package/internals/hooks/useField/useFieldCharacterEditing.d.ts +6 -5
  189. package/internals/hooks/useField/useFieldInternalPropsWithDefaults.d.ts +15 -0
  190. package/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +47 -0
  191. package/internals/hooks/useField/useFieldState.d.ts +9 -8
  192. package/internals/hooks/useField/useFieldState.js +2 -3
  193. package/internals/hooks/useField/useFieldV6TextField.d.ts +4 -3
  194. package/internals/hooks/useField/useFieldV6TextField.js +5 -2
  195. package/internals/hooks/useField/useFieldV7TextField.js +6 -3
  196. package/internals/hooks/useFieldOwnerState.d.ts +6 -0
  197. package/internals/hooks/useFieldOwnerState.js +16 -0
  198. package/internals/hooks/useMobilePicker/useMobilePicker.d.ts +1 -1
  199. package/internals/hooks/useMobilePicker/useMobilePicker.js +34 -68
  200. package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +15 -22
  201. package/internals/hooks/useNullablePickerContext.d.ts +5 -0
  202. package/internals/hooks/useNullablePickerContext.js +10 -0
  203. package/internals/hooks/useOpenState.d.ts +3 -2
  204. package/internals/hooks/useOpenState.js +11 -9
  205. package/internals/hooks/usePicker/index.d.ts +1 -1
  206. package/internals/hooks/usePicker/usePicker.d.ts +3 -4
  207. package/internals/hooks/usePicker/usePicker.js +4 -20
  208. package/internals/hooks/usePicker/usePicker.types.d.ts +10 -10
  209. package/internals/hooks/usePicker/usePickerProvider.d.ts +45 -10
  210. package/internals/hooks/usePicker/usePickerProvider.js +50 -16
  211. package/internals/hooks/usePicker/usePickerValue.d.ts +3 -2
  212. package/internals/hooks/usePicker/usePickerValue.js +84 -214
  213. package/internals/hooks/usePicker/usePickerValue.types.d.ts +130 -75
  214. package/internals/hooks/usePicker/usePickerViews.d.ts +59 -41
  215. package/internals/hooks/usePicker/usePickerViews.js +31 -20
  216. package/internals/hooks/useReduceAnimations.d.ts +2 -0
  217. package/internals/hooks/{useDefaultReduceAnimations.js → useReduceAnimations.js} +5 -2
  218. package/internals/hooks/useStaticPicker/useStaticPicker.d.ts +1 -1
  219. package/internals/hooks/useStaticPicker/useStaticPicker.js +7 -12
  220. package/internals/hooks/useStaticPicker/useStaticPicker.types.d.ts +7 -13
  221. package/internals/hooks/useToolbarOwnerState.d.ts +10 -0
  222. package/internals/hooks/useToolbarOwnerState.js +13 -0
  223. package/internals/hooks/useUtils.d.ts +4 -3
  224. package/internals/hooks/useUtils.js +1 -1
  225. package/internals/hooks/useValueWithTimezone.d.ts +5 -4
  226. package/internals/hooks/useViews.d.ts +5 -5
  227. package/internals/index.d.ts +27 -18
  228. package/internals/index.js +13 -8
  229. package/internals/models/common.d.ts +1 -1
  230. package/internals/models/fields.d.ts +8 -24
  231. package/internals/models/index.d.ts +1 -0
  232. package/internals/models/index.js +2 -1
  233. package/internals/models/manager.d.ts +15 -0
  234. package/internals/models/manager.js +1 -0
  235. package/internals/models/pickers.d.ts +1 -0
  236. package/internals/models/pickers.js +1 -0
  237. package/internals/models/props/basePickerProps.d.ts +3 -33
  238. package/internals/models/props/tabs.d.ts +0 -13
  239. package/internals/models/props/time.d.ts +2 -1
  240. package/internals/models/props/toolbar.d.ts +1 -19
  241. package/internals/models/value.d.ts +9 -0
  242. package/internals/utils/date-utils.d.ts +1 -1
  243. package/internals/utils/date-utils.js +1 -1
  244. package/internals/utils/utils.d.ts +3 -0
  245. package/internals/utils/utils.js +11 -1
  246. package/internals/utils/valueManagers.d.ts +4 -3
  247. package/internals/utils/valueManagers.js +4 -4
  248. package/locales/index.d.ts +1 -0
  249. package/locales/index.js +1 -0
  250. package/locales/nbNO.js +15 -19
  251. package/locales/nlNL.js +7 -7
  252. package/locales/roRO.js +15 -18
  253. package/locales/utils/getPickersLocalization.d.ts +0 -7
  254. package/locales/utils/getPickersLocalization.js +0 -13
  255. package/locales/zhTW.d.ts +80 -0
  256. package/locales/zhTW.js +73 -0
  257. package/managers/index.d.ts +6 -0
  258. package/managers/index.js +3 -0
  259. package/managers/package.json +6 -0
  260. package/managers/useDateManager.d.ts +27 -0
  261. package/managers/useDateManager.js +55 -0
  262. package/managers/useDateTimeManager.d.ts +28 -0
  263. package/managers/useDateTimeManager.js +60 -0
  264. package/managers/useTimeManager.d.ts +28 -0
  265. package/managers/useTimeManager.js +51 -0
  266. package/models/adapters.d.ts +5 -5
  267. package/models/fields.d.ts +33 -9
  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 +7 -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 +41 -22
  282. package/modern/DateCalendar/DayCalendar.js +12 -36
  283. package/modern/DateCalendar/PickersFadeTransitionGroup.js +4 -6
  284. package/modern/DateCalendar/PickersSlideTransition.js +12 -5
  285. package/modern/DateCalendar/useCalendarState.js +65 -55
  286. package/modern/DateField/DateField.js +29 -33
  287. package/modern/DateField/useDateField.js +14 -11
  288. package/modern/DatePicker/DatePicker.js +1 -1
  289. package/modern/DatePicker/DatePickerToolbar.js +17 -33
  290. package/modern/DateTimeField/DateTimeField.js +29 -33
  291. package/modern/DateTimeField/useDateTimeField.js +14 -11
  292. package/modern/DateTimePicker/DateTimePicker.js +2 -2
  293. package/modern/DateTimePicker/DateTimePickerTabs.js +15 -20
  294. package/modern/DateTimePicker/DateTimePickerToolbar.js +88 -80
  295. package/modern/DayCalendarSkeleton/DayCalendarSkeleton.js +10 -19
  296. package/modern/DesktopDatePicker/DesktopDatePicker.js +11 -17
  297. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +17 -27
  298. package/modern/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +9 -34
  299. package/modern/DesktopTimePicker/DesktopTimePicker.js +6 -22
  300. package/modern/DigitalClock/DigitalClock.js +13 -11
  301. package/modern/MobileDatePicker/MobileDatePicker.js +4 -14
  302. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +4 -14
  303. package/modern/MobileTimePicker/MobileTimePicker.js +4 -14
  304. package/modern/MonthCalendar/MonthCalendar.js +31 -11
  305. package/{MonthCalendar/PickersMonth.js → modern/MonthCalendar/MonthCalendarButton.js} +20 -61
  306. package/modern/MonthCalendar/index.js +1 -2
  307. package/modern/MonthCalendar/monthCalendarClasses.js +1 -1
  308. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClock.js +11 -7
  309. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +14 -10
  310. package/modern/PickersActionBar/PickersActionBar.js +26 -17
  311. package/modern/PickersCalendarHeader/PickersCalendarHeader.js +12 -9
  312. package/modern/PickersLayout/PickersLayout.js +23 -42
  313. package/modern/PickersLayout/usePickerLayout.js +26 -53
  314. package/modern/PickersSectionList/PickersSectionList.js +21 -16
  315. package/modern/PickersShortcuts/PickersShortcuts.js +21 -11
  316. package/modern/PickersTextField/PickersFilledInput/PickersFilledInput.js +34 -28
  317. package/modern/PickersTextField/PickersInput/PickersInput.js +20 -14
  318. package/modern/PickersTextField/PickersInput/pickersInputClasses.js +1 -1
  319. package/modern/PickersTextField/PickersInputBase/PickersInputBase.js +45 -38
  320. package/modern/PickersTextField/PickersOutlinedInput/Outline.js +13 -10
  321. package/modern/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +8 -14
  322. package/modern/PickersTextField/PickersTextField.js +75 -62
  323. package/modern/PickersTextField/usePickerTextFieldOwnerState.js +11 -0
  324. package/modern/StaticDatePicker/StaticDatePicker.js +2 -2
  325. package/modern/StaticDateTimePicker/StaticDateTimePicker.js +2 -2
  326. package/modern/StaticTimePicker/StaticTimePicker.js +2 -2
  327. package/modern/TimeClock/Clock.js +27 -27
  328. package/modern/TimeClock/ClockNumber.js +15 -11
  329. package/modern/TimeClock/ClockPointer.js +16 -10
  330. package/modern/TimeClock/TimeClock.js +30 -12
  331. package/modern/TimeField/TimeField.js +28 -32
  332. package/modern/TimeField/useTimeField.js +14 -11
  333. package/modern/TimePicker/TimePicker.js +2 -2
  334. package/modern/TimePicker/TimePickerToolbar.js +36 -51
  335. package/modern/YearCalendar/YearCalendar.js +46 -13
  336. package/{YearCalendar/PickersYear.js → modern/YearCalendar/YearCalendarButton.js} +20 -59
  337. package/modern/YearCalendar/index.js +1 -2
  338. package/modern/YearCalendar/yearCalendarClasses.js +1 -1
  339. package/modern/hooks/index.js +3 -1
  340. package/modern/hooks/useClearableField.js +4 -2
  341. package/modern/hooks/useIsValidValue.js +11 -0
  342. package/modern/hooks/useParsedFormat.js +11 -13
  343. package/modern/hooks/usePickerActionsContext.js +15 -0
  344. package/modern/hooks/usePickerContext.js +2 -2
  345. package/modern/hooks/useSplitFieldProps.js +8 -3
  346. package/modern/index.js +3 -2
  347. package/modern/internals/components/PickerFieldUI.js +317 -0
  348. package/{internals/components/PickersPopper.js → modern/internals/components/PickerPopper/PickerPopper.js} +47 -47
  349. package/modern/internals/components/PickerPopper/index.js +2 -0
  350. package/modern/internals/components/PickerPopper/pickerPopperClasses.js +6 -0
  351. package/modern/internals/components/PickerProvider.js +25 -7
  352. package/modern/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +12 -11
  353. package/modern/internals/components/PickersModalDialog.js +9 -3
  354. package/modern/internals/components/PickersToolbar.js +15 -12
  355. package/modern/internals/components/PickersToolbarButton.js +4 -6
  356. package/modern/internals/components/PickersToolbarText.js +11 -13
  357. package/modern/internals/hooks/date-helpers-hooks.js +4 -3
  358. package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.js +35 -120
  359. package/modern/internals/hooks/useField/buildSectionsFromFormat.js +1 -1
  360. package/modern/internals/hooks/useField/index.js +2 -1
  361. package/modern/internals/hooks/useField/useField.js +17 -4
  362. package/modern/internals/hooks/useField/useField.utils.js +2 -2
  363. package/modern/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +47 -0
  364. package/modern/internals/hooks/useField/useFieldState.js +2 -3
  365. package/modern/internals/hooks/useField/useFieldV6TextField.js +5 -2
  366. package/modern/internals/hooks/useField/useFieldV7TextField.js +6 -3
  367. package/modern/internals/hooks/useFieldOwnerState.js +16 -0
  368. package/modern/internals/hooks/useMobilePicker/useMobilePicker.js +34 -68
  369. package/modern/internals/hooks/useNullablePickerContext.js +10 -0
  370. package/modern/internals/hooks/useOpenState.js +11 -9
  371. package/modern/internals/hooks/usePicker/usePicker.js +4 -20
  372. package/modern/internals/hooks/usePicker/usePickerProvider.js +50 -16
  373. package/modern/internals/hooks/usePicker/usePickerValue.js +84 -214
  374. package/modern/internals/hooks/usePicker/usePickerViews.js +31 -20
  375. package/modern/internals/hooks/{useDefaultReduceAnimations.js → useReduceAnimations.js} +5 -2
  376. package/modern/internals/hooks/useStaticPicker/useStaticPicker.js +7 -12
  377. package/modern/internals/hooks/useToolbarOwnerState.js +13 -0
  378. package/modern/internals/hooks/useUtils.js +1 -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 +41 -22
  410. package/node/DateCalendar/DayCalendar.js +12 -37
  411. package/node/DateCalendar/PickersFadeTransitionGroup.js +4 -6
  412. package/node/DateCalendar/PickersSlideTransition.js +12 -5
  413. package/node/DateCalendar/useCalendarState.js +66 -57
  414. package/node/DateField/DateField.js +29 -33
  415. package/node/DateField/useDateField.js +13 -10
  416. package/node/DatePicker/DatePicker.js +1 -1
  417. package/node/DatePicker/DatePickerToolbar.js +17 -33
  418. package/node/DateTimeField/DateTimeField.js +29 -33
  419. package/node/DateTimeField/useDateTimeField.js +13 -10
  420. package/node/DateTimePicker/DateTimePicker.js +2 -2
  421. package/node/DateTimePicker/DateTimePickerTabs.js +15 -20
  422. package/node/DateTimePicker/DateTimePickerToolbar.js +89 -80
  423. package/node/DayCalendarSkeleton/DayCalendarSkeleton.js +10 -19
  424. package/node/DesktopDatePicker/DesktopDatePicker.js +11 -17
  425. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +17 -27
  426. package/node/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +10 -35
  427. package/node/DesktopTimePicker/DesktopTimePicker.js +6 -22
  428. package/node/DigitalClock/DigitalClock.js +13 -11
  429. package/node/MobileDatePicker/MobileDatePicker.js +4 -14
  430. package/node/MobileDateTimePicker/MobileDateTimePicker.js +4 -14
  431. package/node/MobileTimePicker/MobileTimePicker.js +4 -14
  432. package/node/MonthCalendar/MonthCalendar.js +31 -11
  433. package/node/MonthCalendar/{PickersMonth.js → MonthCalendarButton.js} +20 -61
  434. package/node/MonthCalendar/index.js +1 -8
  435. package/node/MonthCalendar/monthCalendarClasses.js +1 -1
  436. package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.js +11 -7
  437. package/node/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +13 -10
  438. package/node/PickersActionBar/PickersActionBar.js +28 -19
  439. package/node/PickersCalendarHeader/PickersCalendarHeader.js +12 -9
  440. package/node/PickersLayout/PickersLayout.js +23 -42
  441. package/node/PickersLayout/usePickerLayout.js +30 -57
  442. package/node/PickersSectionList/PickersSectionList.js +21 -16
  443. package/node/PickersShortcuts/PickersShortcuts.js +21 -11
  444. package/node/PickersTextField/PickersFilledInput/PickersFilledInput.js +34 -28
  445. package/node/PickersTextField/PickersInput/PickersInput.js +20 -14
  446. package/node/PickersTextField/PickersInput/pickersInputClasses.js +1 -1
  447. package/node/PickersTextField/PickersInputBase/PickersInputBase.js +45 -38
  448. package/node/PickersTextField/PickersOutlinedInput/Outline.js +13 -10
  449. package/node/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +8 -14
  450. package/node/PickersTextField/PickersTextField.js +75 -62
  451. package/node/PickersTextField/usePickerTextFieldOwnerState.js +18 -0
  452. package/node/StaticDatePicker/StaticDatePicker.js +2 -2
  453. package/node/StaticDateTimePicker/StaticDateTimePicker.js +2 -2
  454. package/node/StaticTimePicker/StaticTimePicker.js +2 -2
  455. package/node/TimeClock/Clock.js +27 -27
  456. package/node/TimeClock/ClockNumber.js +15 -11
  457. package/node/TimeClock/ClockPointer.js +15 -10
  458. package/node/TimeClock/TimeClock.js +30 -12
  459. package/node/TimeField/TimeField.js +28 -32
  460. package/node/TimeField/useTimeField.js +13 -10
  461. package/node/TimePicker/TimePicker.js +2 -2
  462. package/node/TimePicker/TimePickerToolbar.js +36 -51
  463. package/node/YearCalendar/YearCalendar.js +45 -12
  464. package/node/YearCalendar/{PickersYear.js → YearCalendarButton.js} +20 -59
  465. package/node/YearCalendar/index.js +1 -8
  466. package/node/YearCalendar/yearCalendarClasses.js +1 -1
  467. package/node/hooks/index.js +15 -1
  468. package/node/hooks/useClearableField.js +4 -2
  469. package/node/hooks/useIsValidValue.js +18 -0
  470. package/node/hooks/useParsedFormat.js +11 -13
  471. package/node/hooks/usePickerActionsContext.js +22 -0
  472. package/node/hooks/usePickerContext.js +5 -4
  473. package/node/hooks/useSplitFieldProps.js +7 -2
  474. package/node/index.js +13 -1
  475. package/node/internals/components/PickerFieldUI.js +329 -0
  476. package/node/internals/components/{PickersPopper.js → PickerPopper/PickerPopper.js} +48 -48
  477. package/node/internals/components/PickerPopper/index.js +25 -0
  478. package/node/internals/components/PickerPopper/pickerPopperClasses.js +14 -0
  479. package/node/internals/components/PickerProvider.js +27 -9
  480. package/node/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +12 -11
  481. package/node/internals/components/PickersModalDialog.js +9 -3
  482. package/node/internals/components/PickersToolbar.js +15 -12
  483. package/node/internals/components/PickersToolbarButton.js +4 -6
  484. package/node/internals/components/PickersToolbarText.js +10 -12
  485. package/node/internals/hooks/date-helpers-hooks.js +4 -3
  486. package/node/internals/hooks/useDesktopPicker/useDesktopPicker.js +37 -122
  487. package/node/internals/hooks/useField/buildSectionsFromFormat.js +1 -1
  488. package/node/internals/hooks/useField/index.js +8 -1
  489. package/node/internals/hooks/useField/useField.js +16 -3
  490. package/node/internals/hooks/useField/useField.utils.js +2 -2
  491. package/node/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +56 -0
  492. package/node/internals/hooks/useField/useFieldState.js +2 -3
  493. package/node/internals/hooks/useField/useFieldV6TextField.js +5 -2
  494. package/node/internals/hooks/useField/useFieldV7TextField.js +6 -3
  495. package/node/internals/hooks/useFieldOwnerState.js +24 -0
  496. package/node/internals/hooks/useMobilePicker/useMobilePicker.js +35 -69
  497. package/node/internals/hooks/useNullablePickerContext.js +16 -0
  498. package/node/internals/hooks/useOpenState.js +12 -9
  499. package/node/internals/hooks/usePicker/usePicker.js +4 -20
  500. package/node/internals/hooks/usePicker/usePickerProvider.js +51 -17
  501. package/node/internals/hooks/usePicker/usePickerValue.js +84 -213
  502. package/node/internals/hooks/usePicker/usePickerViews.js +31 -21
  503. package/node/internals/hooks/{useDefaultReduceAnimations.js → useReduceAnimations.js} +7 -4
  504. package/node/internals/hooks/useStaticPicker/useStaticPicker.js +7 -12
  505. package/node/internals/hooks/useToolbarOwnerState.js +21 -0
  506. package/node/internals/hooks/useUtils.js +1 -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 +5 -5
  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 -32
  561. package/internals/hooks/usePicker/usePickerLayoutProps.js +0 -31
  562. package/internals/utils/convertFieldResponseIntoMuiTextFieldProps.d.ts +0 -3
  563. package/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +0 -44
  564. package/modern/AdapterDateFnsJalaliV3/index.js +0 -1
  565. package/modern/AdapterDateFnsV3/index.js +0 -1
  566. package/modern/MonthCalendar/pickersMonthClasses.js +0 -5
  567. package/modern/YearCalendar/pickersYearClasses.js +0 -5
  568. package/modern/internals/components/pickersPopperClasses.js +0 -5
  569. package/modern/internals/hooks/defaultizedFieldProps.js +0 -40
  570. package/modern/internals/hooks/useIsLandscape.js +0 -35
  571. package/modern/internals/hooks/usePicker/usePickerLayoutProps.js +0 -31
  572. package/modern/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +0 -44
  573. package/node/AdapterDateFnsV3/AdapterDateFnsV3.js +0 -299
  574. package/node/MonthCalendar/pickersMonthClasses.js +0 -12
  575. package/node/YearCalendar/pickersYearClasses.js +0 -12
  576. package/node/internals/components/pickersPopperClasses.js +0 -12
  577. package/node/internals/hooks/defaultizedFieldProps.js +0 -50
  578. package/node/internals/hooks/useIsLandscape.js +0 -43
  579. package/node/internals/hooks/usePicker/usePickerLayoutProps.js +0 -38
  580. package/node/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +0 -52
@@ -0,0 +1,317 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
+ const _excluded = ["enableAccessibleFieldDOMStructure"],
4
+ _excluded2 = ["InputProps", "readOnly", "onClear", "clearable", "clearButtonPosition", "openPickerButtonPosition", "openPickerAriaLabel"],
5
+ _excluded3 = ["onPaste", "onKeyDown", "inputMode", "readOnly", "InputProps", "inputProps", "inputRef", "onClear", "clearable", "clearButtonPosition", "openPickerButtonPosition", "openPickerAriaLabel"],
6
+ _excluded4 = ["ownerState"],
7
+ _excluded5 = ["ownerState"],
8
+ _excluded6 = ["ownerState"],
9
+ _excluded7 = ["ownerState"],
10
+ _excluded8 = ["InputProps", "inputProps"];
11
+ import * as React from 'react';
12
+ import useEventCallback from '@mui/utils/useEventCallback';
13
+ import useForkRef from '@mui/utils/useForkRef';
14
+ import resolveComponentProps from '@mui/utils/resolveComponentProps';
15
+ import MuiTextField from '@mui/material/TextField';
16
+ import MuiIconButton from '@mui/material/IconButton';
17
+ import MuiInputAdornment from '@mui/material/InputAdornment';
18
+ import useSlotProps from '@mui/utils/useSlotProps';
19
+ import { useFieldOwnerState } from "../hooks/useFieldOwnerState.js";
20
+ import { usePickerTranslations } from "../../hooks/index.js";
21
+ import { ClearIcon as MuiClearIcon } from "../../icons/index.js";
22
+ import { useNullablePickerContext } from "../hooks/useNullablePickerContext.js";
23
+ import { PickersTextField } from "../../PickersTextField/index.js";
24
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
25
+ export const cleanFieldResponse = _ref => {
26
+ let {
27
+ enableAccessibleFieldDOMStructure
28
+ } = _ref,
29
+ fieldResponse = _objectWithoutPropertiesLoose(_ref, _excluded);
30
+ if (enableAccessibleFieldDOMStructure) {
31
+ const {
32
+ InputProps,
33
+ readOnly,
34
+ onClear,
35
+ clearable,
36
+ clearButtonPosition,
37
+ openPickerButtonPosition,
38
+ openPickerAriaLabel
39
+ } = fieldResponse,
40
+ other = _objectWithoutPropertiesLoose(fieldResponse, _excluded2);
41
+ return {
42
+ clearable,
43
+ onClear,
44
+ clearButtonPosition,
45
+ openPickerButtonPosition,
46
+ openPickerAriaLabel,
47
+ textFieldProps: _extends({}, other, {
48
+ InputProps: _extends({}, InputProps ?? {}, {
49
+ readOnly
50
+ })
51
+ })
52
+ };
53
+ }
54
+ const {
55
+ onPaste,
56
+ onKeyDown,
57
+ inputMode,
58
+ readOnly,
59
+ InputProps,
60
+ inputProps,
61
+ inputRef,
62
+ onClear,
63
+ clearable,
64
+ clearButtonPosition,
65
+ openPickerButtonPosition,
66
+ openPickerAriaLabel
67
+ } = fieldResponse,
68
+ other = _objectWithoutPropertiesLoose(fieldResponse, _excluded3);
69
+ return {
70
+ clearable,
71
+ onClear,
72
+ clearButtonPosition,
73
+ openPickerButtonPosition,
74
+ openPickerAriaLabel,
75
+ textFieldProps: _extends({}, other, {
76
+ InputProps: _extends({}, InputProps ?? {}, {
77
+ readOnly
78
+ }),
79
+ inputProps: _extends({}, inputProps ?? {}, {
80
+ inputMode,
81
+ onPaste,
82
+ onKeyDown,
83
+ ref: inputRef
84
+ })
85
+ })
86
+ };
87
+ };
88
+ const PickerFieldUIContext = /*#__PURE__*/React.createContext({
89
+ slots: {},
90
+ slotProps: {},
91
+ inputRef: undefined
92
+ });
93
+
94
+ /**
95
+ * Adds the button to open the picker and the button to clear the value of the field.
96
+ * @ignore - internal component.
97
+ */
98
+ export function PickerFieldUI(props) {
99
+ const {
100
+ slots,
101
+ slotProps,
102
+ fieldResponse,
103
+ defaultOpenPickerIcon
104
+ } = props;
105
+ const translations = usePickerTranslations();
106
+ const pickerContext = useNullablePickerContext();
107
+ const pickerFieldUIContext = React.useContext(PickerFieldUIContext);
108
+ const {
109
+ textFieldProps,
110
+ onClear,
111
+ clearable,
112
+ openPickerAriaLabel,
113
+ clearButtonPosition: clearButtonPositionProp = 'end',
114
+ openPickerButtonPosition: openPickerButtonPositionProp = 'end'
115
+ } = cleanFieldResponse(fieldResponse);
116
+ const ownerState = useFieldOwnerState(textFieldProps);
117
+ const handleClickOpeningButton = useEventCallback(event => {
118
+ event.preventDefault();
119
+ pickerContext?.setOpen(prev => !prev);
120
+ });
121
+ const triggerStatus = pickerContext ? pickerContext.triggerStatus : 'hidden';
122
+ const clearButtonPosition = clearable ? clearButtonPositionProp : null;
123
+ const openPickerButtonPosition = triggerStatus !== 'hidden' ? openPickerButtonPositionProp : null;
124
+ const TextField = slots?.textField ?? pickerFieldUIContext.slots.textField ?? (fieldResponse.enableAccessibleFieldDOMStructure === false ? MuiTextField : PickersTextField);
125
+ const InputAdornment = slots?.inputAdornment ?? pickerFieldUIContext.slots.inputAdornment ?? MuiInputAdornment;
126
+ const _useSlotProps = useSlotProps({
127
+ elementType: InputAdornment,
128
+ externalSlotProps: mergeSlotProps(pickerFieldUIContext.slotProps.inputAdornment, slotProps?.inputAdornment),
129
+ additionalProps: {
130
+ position: 'start'
131
+ },
132
+ ownerState: _extends({}, ownerState, {
133
+ position: 'start'
134
+ })
135
+ }),
136
+ startInputAdornmentProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded4);
137
+ const _useSlotProps2 = useSlotProps({
138
+ elementType: InputAdornment,
139
+ externalSlotProps: slotProps?.inputAdornment,
140
+ additionalProps: {
141
+ position: 'end'
142
+ },
143
+ ownerState: _extends({}, ownerState, {
144
+ position: 'end'
145
+ })
146
+ }),
147
+ endInputAdornmentProps = _objectWithoutPropertiesLoose(_useSlotProps2, _excluded5);
148
+ const OpenPickerButton = pickerFieldUIContext.slots.openPickerButton ?? MuiIconButton;
149
+ // We don't want to forward the `ownerState` to the `<IconButton />` component, see mui/material-ui#34056
150
+ const _useSlotProps3 = useSlotProps({
151
+ elementType: OpenPickerButton,
152
+ externalSlotProps: pickerFieldUIContext.slotProps.openPickerButton,
153
+ additionalProps: {
154
+ disabled: triggerStatus === 'disabled',
155
+ onClick: handleClickOpeningButton,
156
+ 'aria-label': openPickerAriaLabel,
157
+ edge: clearButtonPosition === 'start' && openPickerButtonPosition === 'start' ? undefined : openPickerButtonPosition
158
+ },
159
+ ownerState
160
+ }),
161
+ openPickerButtonProps = _objectWithoutPropertiesLoose(_useSlotProps3, _excluded6);
162
+ const OpenPickerIcon = pickerFieldUIContext.slots.openPickerIcon ?? defaultOpenPickerIcon;
163
+ const openPickerIconProps = useSlotProps({
164
+ elementType: OpenPickerIcon,
165
+ externalSlotProps: pickerFieldUIContext.slotProps.openPickerIcon,
166
+ ownerState
167
+ });
168
+ const ClearButton = slots?.clearButton ?? pickerFieldUIContext.slots.clearButton ?? MuiIconButton;
169
+ // We don't want to forward the `ownerState` to the `<IconButton />` component, see mui/material-ui#34056
170
+ const _useSlotProps4 = useSlotProps({
171
+ elementType: ClearButton,
172
+ externalSlotProps: mergeSlotProps(pickerFieldUIContext.slotProps.clearButton, slotProps?.clearButton),
173
+ className: 'clearButton',
174
+ additionalProps: {
175
+ title: translations.fieldClearLabel,
176
+ tabIndex: -1,
177
+ onClick: onClear,
178
+ disabled: fieldResponse.disabled || fieldResponse.readOnly,
179
+ edge: clearButtonPosition === 'end' && openPickerButtonPosition === 'end' ? undefined : clearButtonPosition
180
+ },
181
+ ownerState
182
+ }),
183
+ clearButtonProps = _objectWithoutPropertiesLoose(_useSlotProps4, _excluded7);
184
+ const ClearIcon = slots?.clearIcon ?? pickerFieldUIContext.slots.clearIcon ?? MuiClearIcon;
185
+ const clearIconProps = useSlotProps({
186
+ elementType: ClearIcon,
187
+ externalSlotProps: mergeSlotProps(pickerFieldUIContext.slotProps.clearIcon, slotProps?.clearIcon),
188
+ additionalProps: {
189
+ fontSize: 'small'
190
+ },
191
+ ownerState
192
+ });
193
+ textFieldProps.ref = useForkRef(textFieldProps.ref, pickerContext?.rootRef);
194
+ if (!textFieldProps.InputProps) {
195
+ textFieldProps.InputProps = {};
196
+ }
197
+ if (pickerContext) {
198
+ textFieldProps.InputProps.ref = pickerContext.triggerRef;
199
+ }
200
+ if (!textFieldProps.InputProps?.startAdornment && (clearButtonPosition === 'start' || openPickerButtonPosition === 'start')) {
201
+ textFieldProps.InputProps.startAdornment = /*#__PURE__*/_jsxs(InputAdornment, _extends({}, startInputAdornmentProps, {
202
+ children: [openPickerButtonPosition === 'start' && /*#__PURE__*/_jsx(OpenPickerButton, _extends({}, openPickerButtonProps, {
203
+ children: /*#__PURE__*/_jsx(OpenPickerIcon, _extends({}, openPickerIconProps))
204
+ })), clearButtonPosition === 'start' && /*#__PURE__*/_jsx(ClearButton, _extends({}, clearButtonProps, {
205
+ children: /*#__PURE__*/_jsx(ClearIcon, _extends({}, clearIconProps))
206
+ }))]
207
+ }));
208
+ }
209
+ if (!textFieldProps.InputProps?.endAdornment && (clearButtonPosition === 'end' || openPickerButtonPosition === 'end')) {
210
+ textFieldProps.InputProps.endAdornment = /*#__PURE__*/_jsxs(InputAdornment, _extends({}, endInputAdornmentProps, {
211
+ children: [clearButtonPosition === 'end' && /*#__PURE__*/_jsx(ClearButton, _extends({}, clearButtonProps, {
212
+ children: /*#__PURE__*/_jsx(ClearIcon, _extends({}, clearIconProps))
213
+ })), openPickerButtonPosition === 'end' && /*#__PURE__*/_jsx(OpenPickerButton, _extends({}, openPickerButtonProps, {
214
+ children: /*#__PURE__*/_jsx(OpenPickerIcon, _extends({}, openPickerIconProps))
215
+ }))]
216
+ }));
217
+ }
218
+ if (clearButtonPosition != null) {
219
+ textFieldProps.sx = [{
220
+ '& .clearButton': {
221
+ opacity: 1
222
+ },
223
+ '@media (pointer: fine)': {
224
+ '& .clearButton': {
225
+ opacity: 0
226
+ },
227
+ '&:hover, &:focus-within': {
228
+ '.clearButton': {
229
+ opacity: 1
230
+ }
231
+ }
232
+ }
233
+ }, ...(Array.isArray(textFieldProps.sx) ? textFieldProps.sx : [textFieldProps.sx])];
234
+ }
235
+ return /*#__PURE__*/_jsx(TextField, _extends({}, textFieldProps));
236
+ }
237
+ function mergeSlotProps(slotPropsA, slotPropsB) {
238
+ if (!slotPropsA) {
239
+ return slotPropsB;
240
+ }
241
+ if (!slotPropsB) {
242
+ return slotPropsA;
243
+ }
244
+ return ownerState => {
245
+ return _extends({}, resolveComponentProps(slotPropsB, ownerState), resolveComponentProps(slotPropsA, ownerState));
246
+ };
247
+ }
248
+
249
+ /**
250
+ * The `textField` slot props cannot be handled inside `PickerFieldUI` because it would be a breaking change to not pass the enriched props to `useField`.
251
+ * Once the non-accessible DOM structure will be removed, we will be able to remove the `textField` slot and clean this logic.
252
+ */
253
+ export function useFieldTextFieldProps(parameters) {
254
+ const {
255
+ ref,
256
+ externalForwardedProps,
257
+ slotProps
258
+ } = parameters;
259
+ const pickerFieldUIContext = React.useContext(PickerFieldUIContext);
260
+ const pickerContext = useNullablePickerContext();
261
+ const ownerState = useFieldOwnerState(externalForwardedProps);
262
+ const {
263
+ InputProps,
264
+ inputProps
265
+ } = externalForwardedProps,
266
+ otherExternalForwardedProps = _objectWithoutPropertiesLoose(externalForwardedProps, _excluded8);
267
+ const textFieldProps = useSlotProps({
268
+ elementType: PickersTextField,
269
+ externalSlotProps: mergeSlotProps(pickerFieldUIContext.slotProps.textField, slotProps?.textField),
270
+ externalForwardedProps: otherExternalForwardedProps,
271
+ additionalProps: {
272
+ ref,
273
+ sx: pickerContext?.rootSx,
274
+ label: pickerContext?.label,
275
+ name: pickerContext?.name,
276
+ className: pickerContext?.rootClassName,
277
+ inputRef: pickerFieldUIContext.inputRef
278
+ },
279
+ ownerState
280
+ });
281
+
282
+ // TODO: Remove when mui/material-ui#35088 will be merged
283
+ textFieldProps.inputProps = _extends({}, inputProps, textFieldProps.inputProps);
284
+ textFieldProps.InputProps = _extends({}, InputProps, textFieldProps.InputProps);
285
+ return textFieldProps;
286
+ }
287
+ export function PickerFieldUIContextProvider(props) {
288
+ const {
289
+ slots = {},
290
+ slotProps = {},
291
+ inputRef,
292
+ children
293
+ } = props;
294
+ const contextValue = React.useMemo(() => ({
295
+ inputRef,
296
+ slots: {
297
+ openPickerButton: slots.openPickerButton,
298
+ openPickerIcon: slots.openPickerIcon,
299
+ textField: slots.textField,
300
+ inputAdornment: slots.inputAdornment,
301
+ clearIcon: slots.clearIcon,
302
+ clearButton: slots.clearButton
303
+ },
304
+ slotProps: {
305
+ openPickerButton: slotProps.openPickerButton,
306
+ openPickerIcon: slotProps.openPickerIcon,
307
+ textField: slotProps.textField,
308
+ inputAdornment: slotProps.inputAdornment,
309
+ clearIcon: slotProps.clearIcon,
310
+ clearButton: slotProps.clearButton
311
+ }
312
+ }), [inputRef, slots.openPickerButton, slots.openPickerIcon, slots.textField, slots.inputAdornment, slots.clearIcon, slots.clearButton, slotProps.openPickerButton, slotProps.openPickerIcon, slotProps.textField, slotProps.inputAdornment, slotProps.clearIcon, slotProps.clearButton]);
313
+ return /*#__PURE__*/_jsx(PickerFieldUIContext.Provider, {
314
+ value: contextValue,
315
+ children: children
316
+ });
317
+ }
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["PaperComponent", "popperPlacement", "ownerState", "children", "paperSlotProps", "paperClasses", "onPaperClick", "onPaperTouchStart"];
3
+ const _excluded = ["PaperComponent", "ownerState", "children", "paperSlotProps", "paperClasses", "onPaperClick", "onPaperTouchStart"];
4
4
  import * as React from 'react';
5
5
  import useSlotProps from '@mui/utils/useSlotProps';
6
6
  import Grow from '@mui/material/Grow';
@@ -10,22 +10,20 @@ import MuiPopper from '@mui/material/Popper';
10
10
  import BaseFocusTrap from '@mui/material/Unstable_TrapFocus';
11
11
  import { unstable_useForkRef as useForkRef, unstable_useEventCallback as useEventCallback, unstable_ownerDocument as ownerDocument, unstable_composeClasses as composeClasses } from '@mui/utils';
12
12
  import { styled, useThemeProps } from '@mui/material/styles';
13
- import { getPickersPopperUtilityClass } from "./pickersPopperClasses.js";
14
- import { getActiveElement } from "../utils/utils.js";
15
- import { useDefaultReduceAnimations } from "../hooks/useDefaultReduceAnimations.js";
13
+ import { getPickerPopperUtilityClass } from "./pickerPopperClasses.js";
14
+ import { getActiveElement } from "../../utils/utils.js";
15
+ import { usePickerPrivateContext } from "../../hooks/usePickerPrivateContext.js";
16
+ import { usePickerContext } from "../../../hooks/index.js";
16
17
  import { jsx as _jsx } from "react/jsx-runtime";
17
- const useUtilityClasses = ownerState => {
18
- const {
19
- classes
20
- } = ownerState;
18
+ const useUtilityClasses = classes => {
21
19
  const slots = {
22
20
  root: ['root'],
23
21
  paper: ['paper']
24
22
  };
25
- return composeClasses(slots, getPickersPopperUtilityClass, classes);
23
+ return composeClasses(slots, getPickerPopperUtilityClass, classes);
26
24
  };
27
- const PickersPopperRoot = styled(MuiPopper, {
28
- name: 'MuiPickersPopper',
25
+ const PickerPopperRoot = styled(MuiPopper, {
26
+ name: 'MuiPickerPopper',
29
27
  slot: 'Root',
30
28
  overridesResolver: (_, styles) => styles.root
31
29
  })(({
@@ -33,8 +31,8 @@ const PickersPopperRoot = styled(MuiPopper, {
33
31
  }) => ({
34
32
  zIndex: theme.zIndex.modal
35
33
  }));
36
- const PickersPopperPaper = styled(MuiPaper, {
37
- name: 'MuiPickersPopper',
34
+ const PickerPopperPaper = styled(MuiPaper, {
35
+ name: 'MuiPickerPopper',
38
36
  slot: 'Paper',
39
37
  overridesResolver: (_, styles) => styles.paper
40
38
  })({
@@ -42,8 +40,8 @@ const PickersPopperPaper = styled(MuiPaper, {
42
40
  transformOrigin: 'top center',
43
41
  variants: [{
44
42
  props: ({
45
- placement
46
- }) => ['top', 'top-start', 'top-end'].includes(placement),
43
+ popperPlacement
44
+ }) => ['top', 'top-start', 'top-end'].includes(popperPlacement),
47
45
  style: {
48
46
  transformOrigin: 'bottom center'
49
47
  }
@@ -164,11 +162,10 @@ function useClickAwayListener(active, onClickAway) {
164
162
  }, [active, handleClickAway]);
165
163
  return [nodeRef, handleSynthetic, handleSynthetic];
166
164
  }
167
- const PickersPopperPaperWrapper = /*#__PURE__*/React.forwardRef((props, ref) => {
165
+ const PickerPopperPaperWrapper = /*#__PURE__*/React.forwardRef((props, ref) => {
168
166
  const {
169
167
  PaperComponent,
170
- popperPlacement,
171
- ownerState: inOwnerState,
168
+ ownerState,
172
169
  children,
173
170
  paperSlotProps,
174
171
  paperClasses,
@@ -178,9 +175,6 @@ const PickersPopperPaperWrapper = /*#__PURE__*/React.forwardRef((props, ref) =>
178
175
  // https://mui.com/material-ui/transitions/#child-requirement
179
176
  } = props,
180
177
  other = _objectWithoutPropertiesLoose(props, _excluded);
181
- const ownerState = _extends({}, inOwnerState, {
182
- placement: popperPlacement
183
- });
184
178
  const paperProps = useSlotProps({
185
179
  elementType: PaperComponent,
186
180
  externalSlotProps: paperSlotProps,
@@ -205,39 +199,44 @@ const PickersPopperPaperWrapper = /*#__PURE__*/React.forwardRef((props, ref) =>
205
199
  children: children
206
200
  }));
207
201
  });
208
- export function PickersPopper(inProps) {
202
+ export function PickerPopper(inProps) {
209
203
  const props = useThemeProps({
210
204
  props: inProps,
211
- name: 'MuiPickersPopper'
205
+ name: 'MuiPickerPopper'
212
206
  });
213
207
  const {
214
- anchorEl,
215
208
  children,
216
209
  containerRef = null,
217
- shouldRestoreFocus,
218
210
  onBlur,
219
- onDismiss,
220
- open,
221
211
  role,
222
- placement,
212
+ placement = 'bottom-start',
223
213
  slots,
224
214
  slotProps,
225
- reduceAnimations: inReduceAnimations
215
+ classes: classesProp
226
216
  } = props;
217
+ const {
218
+ open,
219
+ triggerRef,
220
+ reduceAnimations
221
+ } = usePickerContext();
222
+ const {
223
+ dismissViews,
224
+ doesTheCurrentViewHasAnUI
225
+ } = usePickerPrivateContext();
227
226
  React.useEffect(() => {
228
227
  function handleKeyDown(nativeEvent) {
229
228
  if (open && nativeEvent.key === 'Escape') {
230
- onDismiss();
229
+ dismissViews();
231
230
  }
232
231
  }
233
232
  document.addEventListener('keydown', handleKeyDown);
234
233
  return () => {
235
234
  document.removeEventListener('keydown', handleKeyDown);
236
235
  };
237
- }, [onDismiss, open]);
236
+ }, [dismissViews, open]);
238
237
  const lastFocusedElementRef = React.useRef(null);
239
238
  React.useEffect(() => {
240
- if (role === 'tooltip' || shouldRestoreFocus && !shouldRestoreFocus()) {
239
+ if (role === 'tooltip' || !doesTheCurrentViewHasAnUI()) {
241
240
  return;
242
241
  }
243
242
  if (open) {
@@ -251,26 +250,29 @@ export function PickersPopper(inProps) {
251
250
  }
252
251
  });
253
252
  }
254
- }, [open, role, shouldRestoreFocus]);
255
- const [clickAwayRef, onPaperClick, onPaperTouchStart] = useClickAwayListener(open, onBlur ?? onDismiss);
253
+ }, [open, role, doesTheCurrentViewHasAnUI]);
254
+ const [clickAwayRef, onPaperClick, onPaperTouchStart] = useClickAwayListener(open, onBlur ?? dismissViews);
256
255
  const paperRef = React.useRef(null);
257
256
  const handleRef = useForkRef(paperRef, containerRef);
258
257
  const handlePaperRef = useForkRef(handleRef, clickAwayRef);
259
- const ownerState = props;
260
- const classes = useUtilityClasses(ownerState);
261
- const defaultReduceAnimations = useDefaultReduceAnimations();
262
- const reduceAnimations = inReduceAnimations ?? defaultReduceAnimations;
258
+ const classes = useUtilityClasses(classesProp);
259
+ const {
260
+ ownerState: pickerOwnerState
261
+ } = usePickerPrivateContext();
262
+ const ownerState = _extends({}, pickerOwnerState, {
263
+ popperPlacement: placement
264
+ });
263
265
  const handleKeyDown = event => {
264
266
  if (event.key === 'Escape') {
265
267
  // stop the propagation to avoid closing parent modal
266
268
  event.stopPropagation();
267
- onDismiss();
269
+ dismissViews();
268
270
  }
269
271
  };
270
272
  const Transition = slots?.desktopTransition ?? reduceAnimations ? Fade : Grow;
271
273
  const FocusTrap = slots?.desktopTrapFocus ?? BaseFocusTrap;
272
- const Paper = slots?.desktopPaper ?? PickersPopperPaper;
273
- const Popper = slots?.popper ?? PickersPopperRoot;
274
+ const Paper = slots?.desktopPaper ?? PickerPopperPaper;
275
+ const Popper = slots?.popper ?? PickerPopperRoot;
274
276
  const popperProps = useSlotProps({
275
277
  elementType: Popper,
276
278
  externalSlotProps: slotProps?.popper,
@@ -278,17 +280,16 @@ export function PickersPopper(inProps) {
278
280
  transition: true,
279
281
  role,
280
282
  open,
281
- anchorEl,
282
283
  placement,
284
+ anchorEl: triggerRef.current,
283
285
  onKeyDown: handleKeyDown
284
286
  },
285
287
  className: classes.root,
286
- ownerState: props
288
+ ownerState
287
289
  });
288
290
  return /*#__PURE__*/_jsx(Popper, _extends({}, popperProps, {
289
291
  children: ({
290
- TransitionProps,
291
- placement: popperPlacement
292
+ TransitionProps
292
293
  }) => /*#__PURE__*/_jsx(FocusTrap, _extends({
293
294
  open: open,
294
295
  disableAutoFocus: true
@@ -301,10 +302,9 @@ export function PickersPopper(inProps) {
301
302
  isEnabled: () => true
302
303
  }, slotProps?.desktopTrapFocus, {
303
304
  children: /*#__PURE__*/_jsx(Transition, _extends({}, TransitionProps, slotProps?.desktopTransition, {
304
- children: /*#__PURE__*/_jsx(PickersPopperPaperWrapper, {
305
+ children: /*#__PURE__*/_jsx(PickerPopperPaperWrapper, {
305
306
  PaperComponent: Paper,
306
307
  ownerState: ownerState,
307
- popperPlacement: popperPlacement,
308
308
  ref: handlePaperRef,
309
309
  onPaperClick: onPaperClick,
310
310
  onPaperTouchStart: onPaperTouchStart,
@@ -0,0 +1,2 @@
1
+ export { PickerPopper } from "./PickerPopper.js";
2
+ export { pickerPopperClasses, getPickerPopperUtilityClass } from "./pickerPopperClasses.js";
@@ -0,0 +1,6 @@
1
+ import generateUtilityClass from '@mui/utils/generateUtilityClass';
2
+ import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
3
+ export function getPickerPopperUtilityClass(slot) {
4
+ return generateUtilityClass('MuiPickerPopper', slot);
5
+ }
6
+ export const pickerPopperClasses = generateUtilityClasses('MuiPickerPopper', ['root', 'paper']);
@@ -1,7 +1,10 @@
1
1
  import * as React from 'react';
2
2
  import { LocalizationProvider } from "../../LocalizationProvider/index.js";
3
+ import { IsValidValueContext } from "../../hooks/useIsValidValue.js";
4
+ import { PickerFieldPrivateContext } from "../hooks/useField/useFieldInternalPropsWithDefaults.js";
5
+ import { PickerContext } from "../../hooks/usePickerContext.js";
3
6
  import { jsx as _jsx } from "react/jsx-runtime";
4
- export const PickerContext = /*#__PURE__*/React.createContext(null);
7
+ export const PickerActionsContext = /*#__PURE__*/React.createContext(null);
5
8
  export const PickerPrivateContext = /*#__PURE__*/React.createContext({
6
9
  ownerState: {
7
10
  isPickerDisabled: false,
@@ -10,7 +13,10 @@ export const PickerPrivateContext = /*#__PURE__*/React.createContext({
10
13
  isPickerOpen: false,
11
14
  pickerVariant: 'desktop',
12
15
  pickerOrientation: 'portrait'
13
- }
16
+ },
17
+ dismissViews: () => {},
18
+ hasUIView: true,
19
+ doesTheCurrentViewHasAnUI: () => true
14
20
  });
15
21
 
16
22
  /**
@@ -23,17 +29,29 @@ export const PickerPrivateContext = /*#__PURE__*/React.createContext({
23
29
  export function PickerProvider(props) {
24
30
  const {
25
31
  contextValue,
32
+ actionsContextValue,
26
33
  privateContextValue,
34
+ fieldPrivateContextValue,
35
+ isValidContextValue,
27
36
  localeText,
28
37
  children
29
38
  } = props;
30
39
  return /*#__PURE__*/_jsx(PickerContext.Provider, {
31
40
  value: contextValue,
32
- children: /*#__PURE__*/_jsx(PickerPrivateContext.Provider, {
33
- value: privateContextValue,
34
- children: /*#__PURE__*/_jsx(LocalizationProvider, {
35
- localeText: localeText,
36
- children: children
41
+ children: /*#__PURE__*/_jsx(PickerActionsContext.Provider, {
42
+ value: actionsContextValue,
43
+ children: /*#__PURE__*/_jsx(PickerPrivateContext.Provider, {
44
+ value: privateContextValue,
45
+ children: /*#__PURE__*/_jsx(PickerFieldPrivateContext.Provider, {
46
+ value: fieldPrivateContextValue,
47
+ children: /*#__PURE__*/_jsx(IsValidValueContext.Provider, {
48
+ value: isValidContextValue,
49
+ children: /*#__PURE__*/_jsx(LocalizationProvider, {
50
+ localeText: localeText,
51
+ children: children
52
+ })
53
+ })
54
+ })
37
55
  })
38
56
  })
39
57
  });
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["children", "className", "slots", "slotProps", "isNextDisabled", "isNextHidden", "onGoToNext", "nextLabel", "isPreviousDisabled", "isPreviousHidden", "onGoToPrevious", "previousLabel", "labelId"],
3
+ const _excluded = ["children", "className", "slots", "slotProps", "isNextDisabled", "isNextHidden", "onGoToNext", "nextLabel", "isPreviousDisabled", "isPreviousHidden", "onGoToPrevious", "previousLabel", "labelId", "classes"],
4
4
  _excluded2 = ["ownerState"],
5
5
  _excluded3 = ["ownerState"];
6
6
  import * as React from 'react';
@@ -13,6 +13,7 @@ import useSlotProps from '@mui/utils/useSlotProps';
13
13
  import IconButton from '@mui/material/IconButton';
14
14
  import { ArrowLeftIcon, ArrowRightIcon } from "../../../icons/index.js";
15
15
  import { getPickersArrowSwitcherUtilityClass } from "./pickersArrowSwitcherClasses.js";
16
+ import { usePickerPrivateContext } from "../../hooks/usePickerPrivateContext.js";
16
17
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
17
18
  const PickersArrowSwitcherRoot = styled('div', {
18
19
  name: 'MuiPickersArrowSwitcher',
@@ -37,17 +38,14 @@ const PickersArrowSwitcherButton = styled(IconButton, {
37
38
  })({
38
39
  variants: [{
39
40
  props: {
40
- hidden: true
41
+ isButtonHidden: true
41
42
  },
42
43
  style: {
43
44
  visibility: 'hidden'
44
45
  }
45
46
  }]
46
47
  });
47
- const useUtilityClasses = ownerState => {
48
- const {
49
- classes
50
- } = ownerState;
48
+ const useUtilityClasses = classes => {
51
49
  const slots = {
52
50
  root: ['root'],
53
51
  spacer: ['spacer'],
@@ -78,11 +76,14 @@ export const PickersArrowSwitcher = /*#__PURE__*/React.forwardRef(function Picke
78
76
  isPreviousHidden,
79
77
  onGoToPrevious,
80
78
  previousLabel,
81
- labelId
79
+ labelId,
80
+ classes: classesProp
82
81
  } = props,
83
82
  other = _objectWithoutPropertiesLoose(props, _excluded);
84
- const ownerState = props;
85
- const classes = useUtilityClasses(ownerState);
83
+ const {
84
+ ownerState
85
+ } = usePickerPrivateContext();
86
+ const classes = useUtilityClasses(classesProp);
86
87
  const nextProps = {
87
88
  isDisabled: isNextDisabled,
88
89
  isHidden: isNextHidden,
@@ -108,7 +109,7 @@ export const PickersArrowSwitcher = /*#__PURE__*/React.forwardRef(function Picke
108
109
  onClick: previousProps.goTo
109
110
  },
110
111
  ownerState: _extends({}, ownerState, {
111
- hidden: previousProps.isHidden
112
+ isButtonHidden: previousProps.isHidden ?? false
112
113
  }),
113
114
  className: clsx(classes.button, classes.previousIconButton)
114
115
  });
@@ -125,7 +126,7 @@ export const PickersArrowSwitcher = /*#__PURE__*/React.forwardRef(function Picke
125
126
  onClick: nextProps.goTo
126
127
  },
127
128
  ownerState: _extends({}, ownerState, {
128
- hidden: nextProps.isHidden
129
+ isButtonHidden: nextProps.isHidden ?? false
129
130
  }),
130
131
  className: clsx(classes.button, classes.nextIconButton)
131
132
  });