@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
@@ -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,4 @@
1
+ export { PickerPopper } from './PickerPopper';
2
+ export type { ExportedPickerPopperProps } from './PickerPopper';
3
+ export { pickerPopperClasses, getPickerPopperUtilityClass } from './pickerPopperClasses';
4
+ export type { PickerPopperClassKey, PickerPopperClasses } from './pickerPopperClasses';
@@ -0,0 +1,2 @@
1
+ export { PickerPopper } from "./PickerPopper.js";
2
+ export { pickerPopperClasses, getPickerPopperUtilityClass } from "./pickerPopperClasses.js";
@@ -0,0 +1,9 @@
1
+ export interface PickerPopperClasses {
2
+ /** Styles applied to the root element. */
3
+ root: string;
4
+ /** Styles applied to the paper element. */
5
+ paper: string;
6
+ }
7
+ export type PickerPopperClassKey = keyof PickerPopperClasses;
8
+ export declare function getPickerPopperUtilityClass(slot: string): string;
9
+ export declare const pickerPopperClasses: Record<"root" | "paper", string>;
@@ -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,8 +1,13 @@
1
1
  import * as React from 'react';
2
+ import { SxProps } from '@mui/system';
3
+ import { Theme } from '@mui/material/styles';
2
4
  import { PickerOwnerState } from '../../models';
3
5
  import { PickersInputLocaleText } from '../../locales';
4
- import { PickerOrientation, PickerVariant } from '../models';
5
- export declare const PickerContext: React.Context<PickerContextValue | null>;
6
+ import { DateOrTimeViewWithMeridiem, PickerOrientation, PickerValidValue, PickerVariant } from '../models';
7
+ import type { UsePickerValueActionsContextValue, UsePickerValueContextValue, UsePickerValuePrivateContextValue } from '../hooks/usePicker/usePickerValue.types';
8
+ import { UsePickerViewsActionsContextValue, UsePickerViewsContextValue, UsePickerViewsPrivateContextValue } from '../hooks/usePicker/usePickerViews';
9
+ import { PickerFieldPrivateContextValue } from '../hooks/useField/useFieldInternalPropsWithDefaults';
10
+ export declare const PickerActionsContext: React.Context<PickerActionsContextValue<any, any, any> | null>;
6
11
  export declare const PickerPrivateContext: React.Context<PickerPrivateContextValue>;
7
12
  /**
8
13
  * Provides the context for the various parts of a picker component:
@@ -11,55 +16,104 @@ export declare const PickerPrivateContext: React.Context<PickerPrivateContextVal
11
16
  *
12
17
  * @ignore - do not document.
13
18
  */
14
- export declare function PickerProvider(props: PickerProviderProps): React.JSX.Element;
15
- export interface PickerProviderProps {
16
- contextValue: PickerContextValue;
19
+ export declare function PickerProvider<TValue extends PickerValidValue>(props: PickerProviderProps<TValue>): React.JSX.Element;
20
+ export interface PickerProviderProps<TValue extends PickerValidValue> {
21
+ contextValue: PickerContextValue<any, any, any>;
22
+ actionsContextValue: PickerActionsContextValue<any, any, any>;
17
23
  privateContextValue: PickerPrivateContextValue;
24
+ fieldPrivateContextValue: PickerFieldPrivateContextValue;
25
+ isValidContextValue: (value: TValue) => boolean;
18
26
  localeText: PickersInputLocaleText | undefined;
19
27
  children: React.ReactNode;
20
28
  }
21
- export interface PickerContextValue {
29
+ export interface PickerContextValue<TValue extends PickerValidValue, TView extends DateOrTimeViewWithMeridiem, TError> extends UsePickerValueContextValue<TValue, TError>, UsePickerViewsContextValue<TView> {
22
30
  /**
23
- * Open the picker.
24
- * @param {React.UIEvent} event The DOM event that triggered the change.
25
- */
26
- onOpen: (event: React.UIEvent) => void;
27
- /**
28
- * Close the picker.
29
- * @param {React.UIEvent} event The DOM event that triggered the change.
30
- */
31
- onClose: (event: React.UIEvent) => void;
32
- /**
33
- * `true` if the picker is open, `false` otherwise.
34
- */
35
- open: boolean;
36
- /**
37
- * `true` if the picker is disabled, `false` otherwise.
31
+ * Whether the picker is disabled.
38
32
  */
39
33
  disabled: boolean;
40
34
  /**
41
- * `true` if the picker is read-only, `false` otherwise.
35
+ * Whether the picker is read-only.
42
36
  */
43
37
  readOnly: boolean;
44
38
  /**
45
39
  * The responsive variant of the picker.
46
- * Is equal to "desktop" when using a desktop picker (like <DesktopDatePicker />).
47
- * Is equal to "mobile" when using a mobile picker (like <MobileDatePicker />).
48
- * Is equal to "mobile" or "desktop" when using a responsive picker (like <DatePicker />) depending on the `desktopModeMediaQuery` prop.
49
- * Is equal to "mobile" or "desktop" when using a static picker (like <StaticDatePicker />) depending on the `displayStaticWrapperAs` prop.
50
- * Is always equal to "desktop" if the component you are accessing the ownerState from is not wrapped by a picker.
40
+ * It is equal to "desktop" when using a desktop picker (like <DesktopDatePicker />).
41
+ * It is equal to "mobile" when using a mobile picker (like <MobileDatePicker />).
42
+ * It is equal to "mobile" or "desktop" when using a responsive picker (like <DatePicker />) depending on the `desktopModeMediaQuery` prop.
43
+ * It is equal to "mobile" or "desktop" when using a static picker (like <StaticDatePicker />) depending on the `displayStaticWrapperAs` prop.
44
+ * It is always equal to "desktop" if the component you are accessing the context from is not wrapped by a picker.
51
45
  */
52
46
  variant: PickerVariant;
53
47
  /**
54
48
  * The orientation of the picker.
55
- * Is equal to "landscape" when the picker is in landscape orientation.
56
- * Is equal to "portrait" when the picker is in portrait orientation.
57
- * You can use the "orientation" on any picker component to force the orientation.
58
- * Is always equal to "portrait" if the component you are accessing the ownerState from is not wrapped by a picker.
49
+ * On Time Pickers and Date Time Pickers, it is always equal to "portrait".
50
+ * On Date Pickers, it is equal to the picker `orientation` prop if defined, otherwise it is based on the current orientation of the user's screen.
51
+ * It is always equal to "portrait" if the component you are accessing the context from is not wrapped by a picker.
59
52
  */
60
53
  orientation: PickerOrientation;
54
+ /**
55
+ * Whether the heavy animations should be disabled.
56
+ * @default `@media(prefers-reduced-motion: reduce)` || `navigator.userAgent` matches Android <10 or iOS <13
57
+ */
58
+ reduceAnimations?: boolean;
59
+ /**
60
+ * The ref to attach to the element that triggers the Picker opening.
61
+ * When using a built-in field component, this property is automatically attached to the right element.
62
+ */
63
+ triggerRef: React.RefObject<any>;
64
+ /**
65
+ * The status of the element that triggers the Picker opening.
66
+ * If it is "hidden", the field should not render the UI to open the Picker.
67
+ * If it is "disabled", the field should render a disabled UI to open the Picker.
68
+ * If it is "enabled", the field should render an interactive UI to open the Picker.
69
+ */
70
+ triggerStatus: 'hidden' | 'disabled' | 'enabled';
71
+ /**
72
+ * The format to use when rendering the value in the field.
73
+ * It is equal to the picker `format` prop if defined.
74
+ * It is generated based on the available views if not defined.
75
+ * It is always equal to an empty string if the picker does not have a field (static pickers).
76
+ * It is always equal to an empty string if the component you are accessing the context from is not wrapped by a picker.
77
+ */
78
+ fieldFormat: string;
79
+ /**
80
+ * The name to apply to the <input /> element if the picker contains one.
81
+ * If the picker has a field, it should probably be applied to its input element.
82
+ * It is equal to the picker `name` prop if defined (the prop does not exist on static pickers).
83
+ * It is always equal to undefined if the component you are accessing the context from is not wrapped by a picker.
84
+ */
85
+ name: string | undefined;
86
+ /**
87
+ * The label to render by the field if the picker contains one.
88
+ * It is equal to the picker `label` prop if defined (the prop does not exist on static pickers).
89
+ * It is always equal to undefined if the component you are accessing the context from is not wrapped by a picker.
90
+ */
91
+ label: React.ReactNode | undefined;
92
+ /**
93
+ * The class name to apply to the root element.
94
+ * If the picker has a field, it should be applied to field root element, otherwise to the layout root element.
95
+ * It is equal to the picker `className` prop if defined.
96
+ * It is always equal to undefined if the component you are accessing the context from is not wrapped by a picker.
97
+ */
98
+ rootClassName: string | undefined;
99
+ /**
100
+ * The MUI style prop to apply to the root element.
101
+ * If the picker has a field, it should be applied to field root element, otherwise to the layout root element.
102
+ * It is equal to the picker `sx` prop if defined.
103
+ * It is always equal to undefined if the component you are accessing the context from is not wrapped by a picker.
104
+ */
105
+ rootSx: SxProps<Theme> | undefined;
106
+ /**
107
+ * The ref to attach to the root element.
108
+ * If the picker has a field, it should be attached to field root element, otherwise to the layout root element.
109
+ * It is equal to the ref passed to the picker component if defined.
110
+ * It is always equal to undefined if the component you are accessing the context from is not wrapped by a picker.
111
+ */
112
+ rootRef: React.ForwardedRef<HTMLDivElement> | undefined;
113
+ }
114
+ export interface PickerActionsContextValue<TValue extends PickerValidValue, TView extends DateOrTimeViewWithMeridiem, TError = string | null> extends UsePickerValueActionsContextValue<TValue, TError>, UsePickerViewsActionsContextValue<TView> {
61
115
  }
62
- export interface PickerPrivateContextValue {
116
+ export interface PickerPrivateContextValue extends UsePickerValuePrivateContextValue, UsePickerViewsPrivateContextValue {
63
117
  /**
64
118
  * The ownerState of the picker.
65
119
  */
@@ -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
  });
@@ -3,6 +3,7 @@ import { SlotComponentProps } from '@mui/utils';
3
3
  import IconButton from '@mui/material/IconButton';
4
4
  import SvgIcon from '@mui/material/SvgIcon';
5
5
  import { PickersArrowSwitcherClasses } from './pickersArrowSwitcherClasses';
6
+ import { PickerOwnerState } from '../../../models';
6
7
  export interface ExportedPickersArrowSwitcherProps {
7
8
  /**
8
9
  * Overridable component slots.
@@ -36,7 +37,12 @@ export interface PickersArrowSwitcherProps extends ExportedPickersArrowSwitcherP
36
37
  nextLabel: string;
37
38
  labelId?: string;
38
39
  }
39
- export type PickersArrowSwitcherOwnerState = PickersArrowSwitcherProps;
40
+ export interface PickersArrowSwitcherOwnerState extends PickerOwnerState {
41
+ /**
42
+ * If `true`, this button should be hidden.
43
+ */
44
+ isButtonHidden: boolean;
45
+ }
40
46
  export interface PickersArrowSwitcherSlotPropsOverrides {
41
47
  }
42
48
  export interface PickersArrowSwitcherSlots {
@@ -61,12 +67,9 @@ export interface PickersArrowSwitcherSlots {
61
67
  */
62
68
  rightArrowIcon?: React.ElementType;
63
69
  }
64
- export interface PickersArrowSwitcherButtonSlotOwnerState extends PickersArrowSwitcherOwnerState {
65
- hidden?: boolean;
66
- }
67
70
  export interface PickersArrowSwitcherSlotProps {
68
- previousIconButton?: SlotComponentProps<typeof IconButton, PickersArrowSwitcherSlotPropsOverrides, PickersArrowSwitcherButtonSlotOwnerState>;
69
- nextIconButton?: SlotComponentProps<typeof IconButton, PickersArrowSwitcherSlotPropsOverrides, PickersArrowSwitcherButtonSlotOwnerState>;
70
- leftArrowIcon?: SlotComponentProps<typeof SvgIcon, PickersArrowSwitcherSlotPropsOverrides, PickersArrowSwitcherButtonSlotOwnerState>;
71
- rightArrowIcon?: SlotComponentProps<typeof SvgIcon, PickersArrowSwitcherSlotPropsOverrides, PickersArrowSwitcherButtonSlotOwnerState>;
71
+ previousIconButton?: SlotComponentProps<typeof IconButton, PickersArrowSwitcherSlotPropsOverrides, PickersArrowSwitcherOwnerState>;
72
+ nextIconButton?: SlotComponentProps<typeof IconButton, PickersArrowSwitcherSlotPropsOverrides, PickersArrowSwitcherOwnerState>;
73
+ leftArrowIcon?: SlotComponentProps<typeof SvgIcon, PickersArrowSwitcherSlotPropsOverrides, PickerOwnerState>;
74
+ rightArrowIcon?: SlotComponentProps<typeof SvgIcon, PickersArrowSwitcherSlotPropsOverrides, PickerOwnerState>;
72
75
  }
@@ -2,7 +2,6 @@ import * as React from 'react';
2
2
  import { DialogProps as MuiDialogProps } from '@mui/material/Dialog';
3
3
  import { PaperProps as MuiPaperProps } from '@mui/material/Paper';
4
4
  import { TransitionProps as MuiTransitionProps } from '@mui/material/transitions';
5
- import { UsePickerValueActions } from '../hooks/usePicker/usePickerValue.types';
6
5
  export interface PickersModalDialogSlots {
7
6
  /**
8
7
  * Custom component for the dialog inside which the views are rendered on mobile.
@@ -34,7 +33,7 @@ export interface PickersModalDialogSlotProps {
34
33
  */
35
34
  mobileTransition?: Partial<MuiTransitionProps>;
36
35
  }
37
- export interface PickersModalDialogProps extends UsePickerValueActions {
36
+ export interface PickersModalDialogProps {
38
37
  /**
39
38
  * Overridable component slots.
40
39
  * @default {}
@@ -45,6 +44,5 @@ export interface PickersModalDialogProps extends UsePickerValueActions {
45
44
  * @default {}
46
45
  */
47
46
  slotProps?: PickersModalDialogSlotProps;
48
- open: boolean;
49
47
  }
50
48
  export declare function PickersModalDialog(props: React.PropsWithChildren<PickersModalDialogProps>): React.JSX.Element;
@@ -5,6 +5,8 @@ import Fade from '@mui/material/Fade';
5
5
  import MuiDialog, { dialogClasses } from '@mui/material/Dialog';
6
6
  import { styled } from '@mui/material/styles';
7
7
  import { DIALOG_WIDTH } from "../constants/dimensions.js";
8
+ import { usePickerContext } from "../../hooks/index.js";
9
+ import { usePickerPrivateContext } from "../hooks/usePickerPrivateContext.js";
8
10
  import { jsx as _jsx } from "react/jsx-runtime";
9
11
  const PickersModalDialogRoot = styled(MuiDialog)({
10
12
  [`& .${dialogClasses.container}`]: {
@@ -23,16 +25,20 @@ const PickersModalDialogContent = styled(DialogContent)({
23
25
  export function PickersModalDialog(props) {
24
26
  const {
25
27
  children,
26
- onDismiss,
27
- open,
28
28
  slots,
29
29
  slotProps
30
30
  } = props;
31
+ const {
32
+ open
33
+ } = usePickerContext();
34
+ const {
35
+ dismissViews
36
+ } = usePickerPrivateContext();
31
37
  const Dialog = slots?.dialog ?? PickersModalDialogRoot;
32
38
  const Transition = slots?.mobileTransition ?? Fade;
33
39
  return /*#__PURE__*/_jsx(Dialog, _extends({
34
40
  open: open,
35
- onClose: onDismiss
41
+ onClose: dismissViews
36
42
  }, slotProps?.dialog, {
37
43
  TransitionComponent: Transition,
38
44
  TransitionProps: slotProps?.mobileTransition,
@@ -1,14 +1,13 @@
1
1
  import * as React from 'react';
2
2
  import { BaseToolbarProps } from '../models/props/toolbar';
3
3
  import { PickersToolbarClasses } from './pickersToolbarClasses';
4
- import { DateOrTimeViewWithMeridiem } from '../models';
5
- export interface PickersToolbarProps<TValue, TView extends DateOrTimeViewWithMeridiem> extends Pick<BaseToolbarProps<TValue, TView>, 'isLandscape' | 'hidden' | 'titleId'> {
4
+ export interface PickersToolbarProps extends Pick<BaseToolbarProps, 'hidden' | 'titleId'> {
6
5
  className?: string;
7
6
  landscapeDirection?: 'row' | 'column';
8
7
  toolbarTitle: React.ReactNode;
9
8
  classes?: Partial<PickersToolbarClasses>;
10
9
  }
11
- type PickersToolbarComponent = (<TValue, TView extends DateOrTimeViewWithMeridiem>(props: React.PropsWithChildren<PickersToolbarProps<TValue, TView>> & React.RefAttributes<HTMLDivElement>) => React.JSX.Element) & {
10
+ type PickersToolbarComponent = ((props: React.PropsWithChildren<PickersToolbarProps> & React.RefAttributes<HTMLDivElement>) => React.JSX.Element) & {
12
11
  propTypes?: any;
13
12
  };
14
13
  export declare const PickersToolbar: PickersToolbarComponent;