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

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 (514) hide show
  1. package/AdapterDateFns/AdapterDateFns.d.ts +1 -1
  2. package/AdapterDateFnsBase/AdapterDateFnsBase.d.ts +3 -3
  3. package/AdapterDateFnsJalali/AdapterDateFnsJalali.d.ts +1 -1
  4. package/AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.d.ts +1 -1
  5. package/AdapterDateFnsV3/AdapterDateFnsV3.d.ts +1 -1
  6. package/AdapterDayjs/AdapterDayjs.d.ts +2 -2
  7. package/AdapterLuxon/AdapterLuxon.d.ts +2 -2
  8. package/AdapterMoment/AdapterMoment.d.ts +2 -2
  9. package/AdapterMomentHijri/AdapterMomentHijri.d.ts +2 -2
  10. package/AdapterMomentJalaali/AdapterMomentJalaali.d.ts +2 -2
  11. package/CHANGELOG.md +348 -12
  12. package/DateCalendar/DateCalendar.d.ts +1 -2
  13. package/DateCalendar/DateCalendar.js +21 -22
  14. package/DateCalendar/DateCalendar.types.d.ts +21 -31
  15. package/DateCalendar/DayCalendar.d.ts +25 -24
  16. package/DateCalendar/DayCalendar.js +13 -10
  17. package/DateCalendar/index.d.ts +1 -0
  18. package/DateCalendar/useCalendarState.d.ts +16 -16
  19. package/DateCalendar/useIsDateDisabled.d.ts +2 -2
  20. package/DateField/DateField.d.ts +1 -2
  21. package/DateField/DateField.js +8 -10
  22. package/DateField/DateField.types.d.ts +8 -9
  23. package/DateField/index.d.ts +1 -1
  24. package/DateField/useDateField.d.ts +1 -2
  25. package/DatePicker/DatePicker.d.ts +1 -2
  26. package/DatePicker/DatePicker.js +15 -14
  27. package/DatePicker/DatePicker.types.d.ts +10 -11
  28. package/DatePicker/DatePickerToolbar.d.ts +2 -2
  29. package/DatePicker/DatePickerToolbar.js +2 -4
  30. package/DatePicker/shared.d.ts +11 -11
  31. package/DateTimeField/DateTimeField.d.ts +1 -2
  32. package/DateTimeField/DateTimeField.js +9 -12
  33. package/DateTimeField/DateTimeField.types.d.ts +9 -14
  34. package/DateTimeField/index.d.ts +1 -1
  35. package/DateTimeField/useDateTimeField.d.ts +1 -2
  36. package/DateTimePicker/DateTimePicker.d.ts +1 -2
  37. package/DateTimePicker/DateTimePicker.js +16 -16
  38. package/DateTimePicker/DateTimePicker.types.d.ts +10 -13
  39. package/DateTimePicker/DateTimePickerTabs.d.ts +1 -2
  40. package/DateTimePicker/DateTimePickerTabs.js +2 -2
  41. package/DateTimePicker/DateTimePickerToolbar.d.ts +5 -5
  42. package/DateTimePicker/DateTimePickerToolbar.js +8 -7
  43. package/DateTimePicker/shared.d.ts +12 -12
  44. package/DesktopDatePicker/DesktopDatePicker.d.ts +1 -2
  45. package/DesktopDatePicker/DesktopDatePicker.js +17 -16
  46. package/DesktopDatePicker/DesktopDatePicker.types.d.ts +7 -7
  47. package/DesktopDateTimePicker/DesktopDateTimePicker.d.ts +1 -2
  48. package/DesktopDateTimePicker/DesktopDateTimePicker.js +18 -18
  49. package/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +8 -8
  50. package/DesktopDateTimePicker/DesktopDateTimePickerLayout.d.ts +1 -2
  51. package/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +0 -2
  52. package/DesktopTimePicker/DesktopTimePicker.d.ts +1 -2
  53. package/DesktopTimePicker/DesktopTimePicker.js +11 -6
  54. package/DesktopTimePicker/DesktopTimePicker.types.d.ts +8 -8
  55. package/DigitalClock/DigitalClock.d.ts +1 -2
  56. package/DigitalClock/DigitalClock.js +8 -6
  57. package/DigitalClock/DigitalClock.types.d.ts +4 -4
  58. package/LocalizationProvider/LocalizationProvider.d.ts +12 -12
  59. package/MobileDatePicker/MobileDatePicker.d.ts +1 -2
  60. package/MobileDatePicker/MobileDatePicker.js +17 -16
  61. package/MobileDatePicker/MobileDatePicker.types.d.ts +7 -7
  62. package/MobileDateTimePicker/MobileDateTimePicker.d.ts +2 -2
  63. package/MobileDateTimePicker/MobileDateTimePicker.js +18 -18
  64. package/MobileDateTimePicker/MobileDateTimePicker.types.d.ts +7 -7
  65. package/MobileTimePicker/MobileTimePicker.d.ts +2 -2
  66. package/MobileTimePicker/MobileTimePicker.js +11 -6
  67. package/MobileTimePicker/MobileTimePicker.types.d.ts +7 -7
  68. package/MonthCalendar/MonthCalendar.d.ts +3 -4
  69. package/MonthCalendar/MonthCalendar.js +18 -14
  70. package/MonthCalendar/MonthCalendar.types.d.ts +14 -15
  71. package/MonthCalendar/PickersMonth.js +17 -13
  72. package/MultiSectionDigitalClock/MultiSectionDigitalClock.d.ts +1 -2
  73. package/MultiSectionDigitalClock/MultiSectionDigitalClock.js +8 -6
  74. package/MultiSectionDigitalClock/MultiSectionDigitalClock.types.d.ts +3 -4
  75. package/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.d.ts +9 -9
  76. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.d.ts +2 -3
  77. package/PickersActionBar/PickersActionBar.js +2 -2
  78. package/PickersCalendarHeader/PickersCalendarHeader.d.ts +1 -2
  79. package/PickersCalendarHeader/PickersCalendarHeader.js +2 -2
  80. package/PickersCalendarHeader/PickersCalendarHeader.types.d.ts +9 -9
  81. package/PickersDay/PickersDay.d.ts +8 -8
  82. package/PickersLayout/PickersLayout.d.ts +2 -3
  83. package/PickersLayout/PickersLayout.js +0 -2
  84. package/PickersLayout/PickersLayout.types.d.ts +16 -19
  85. package/PickersLayout/index.d.ts +1 -1
  86. package/PickersLayout/usePickerLayout.d.ts +1 -2
  87. package/PickersLayout/usePickerLayout.js +18 -23
  88. package/PickersTextField/PickersInputBase/PickersInputBase.js +10 -9
  89. package/PickersTextField/PickersTextField.js +2 -2
  90. package/README.md +4 -4
  91. package/StaticDatePicker/StaticDatePicker.d.ts +1 -2
  92. package/StaticDatePicker/StaticDatePicker.js +14 -13
  93. package/StaticDatePicker/StaticDatePicker.types.d.ts +7 -7
  94. package/StaticDateTimePicker/StaticDateTimePicker.d.ts +1 -2
  95. package/StaticDateTimePicker/StaticDateTimePicker.js +15 -15
  96. package/StaticDateTimePicker/StaticDateTimePicker.types.d.ts +7 -7
  97. package/StaticTimePicker/StaticTimePicker.d.ts +1 -2
  98. package/StaticTimePicker/StaticTimePicker.js +8 -3
  99. package/StaticTimePicker/StaticTimePicker.types.d.ts +7 -7
  100. package/TimeClock/Clock.d.ts +4 -5
  101. package/TimeClock/Clock.js +4 -3
  102. package/TimeClock/ClockNumbers.d.ts +5 -5
  103. package/TimeClock/TimeClock.d.ts +1 -2
  104. package/TimeClock/TimeClock.js +8 -6
  105. package/TimeClock/TimeClock.types.d.ts +4 -4
  106. package/TimeField/TimeField.d.ts +1 -2
  107. package/TimeField/TimeField.js +6 -6
  108. package/TimeField/TimeField.types.d.ts +9 -14
  109. package/TimeField/index.d.ts +1 -1
  110. package/TimeField/useTimeField.d.ts +1 -2
  111. package/TimePicker/TimePicker.d.ts +1 -2
  112. package/TimePicker/TimePicker.js +9 -4
  113. package/TimePicker/TimePicker.types.d.ts +10 -13
  114. package/TimePicker/TimePickerToolbar.d.ts +2 -2
  115. package/TimePicker/TimePickerToolbar.js +8 -7
  116. package/TimePicker/shared.d.ts +10 -10
  117. package/YearCalendar/PickersYear.js +17 -13
  118. package/YearCalendar/YearCalendar.d.ts +1 -2
  119. package/YearCalendar/YearCalendar.js +18 -14
  120. package/YearCalendar/YearCalendar.types.d.ts +14 -15
  121. package/dateViewRenderers/dateViewRenderers.d.ts +3 -3
  122. package/hooks/index.d.ts +2 -2
  123. package/hooks/index.js +2 -2
  124. package/hooks/useClearableField.js +4 -3
  125. package/hooks/useParsedFormat.d.ts +2 -3
  126. package/hooks/useParsedFormat.js +2 -2
  127. package/hooks/usePickerContext.d.ts +4 -0
  128. package/hooks/usePickerContext.js +15 -0
  129. package/hooks/usePickerTranslations.d.ts +1 -0
  130. package/{modern/hooks/usePickersTranslations.js → hooks/usePickerTranslations.js} +1 -1
  131. package/hooks/useSplitFieldProps.d.ts +3 -3
  132. package/index.js +1 -1
  133. package/internals/components/PickerProvider.d.ts +67 -0
  134. package/internals/components/PickerProvider.js +40 -0
  135. package/internals/hooks/date-helpers-hooks.d.ts +6 -6
  136. package/internals/hooks/defaultizedFieldProps.d.ts +7 -8
  137. package/internals/hooks/useClockReferenceDate.d.ts +5 -5
  138. package/internals/hooks/useDesktopPicker/useDesktopPicker.d.ts +1 -2
  139. package/internals/hooks/useDesktopPicker/useDesktopPicker.js +22 -18
  140. package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +15 -15
  141. package/internals/hooks/useField/buildSectionsFromFormat.d.ts +5 -5
  142. package/internals/hooks/useField/useField.d.ts +3 -3
  143. package/internals/hooks/useField/useField.js +1 -1
  144. package/internals/hooks/useField/useField.types.d.ts +40 -50
  145. package/internals/hooks/useField/useField.utils.d.ts +15 -15
  146. package/internals/hooks/useField/useFieldCharacterEditing.d.ts +4 -4
  147. package/internals/hooks/useField/useFieldState.d.ts +4 -4
  148. package/internals/hooks/useField/useFieldState.js +4 -3
  149. package/internals/hooks/useField/useFieldV7TextField.js +4 -3
  150. package/internals/hooks/useMobilePicker/useMobilePicker.d.ts +1 -2
  151. package/internals/hooks/useMobilePicker/useMobilePicker.js +24 -19
  152. package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +12 -12
  153. package/internals/hooks/usePicker/usePicker.d.ts +2 -2
  154. package/internals/hooks/usePicker/usePicker.js +15 -10
  155. package/internals/hooks/usePicker/usePicker.types.d.ts +9 -7
  156. package/internals/hooks/usePicker/usePickerLayoutProps.d.ts +6 -8
  157. package/internals/hooks/usePicker/usePickerLayoutProps.js +2 -5
  158. package/internals/hooks/usePicker/usePickerProvider.d.ts +26 -0
  159. package/internals/hooks/usePicker/usePickerProvider.js +77 -0
  160. package/internals/hooks/usePicker/usePickerValue.d.ts +2 -2
  161. package/internals/hooks/usePicker/usePickerValue.js +7 -10
  162. package/internals/hooks/usePicker/usePickerValue.types.d.ts +38 -39
  163. package/internals/hooks/usePicker/usePickerViews.d.ts +7 -11
  164. package/internals/hooks/usePicker/usePickerViews.js +1 -0
  165. package/internals/hooks/usePickerPrivateContext.d.ts +4 -0
  166. package/internals/hooks/usePickerPrivateContext.js +9 -0
  167. package/internals/hooks/useStaticPicker/useStaticPicker.d.ts +1 -2
  168. package/internals/hooks/useStaticPicker/useStaticPicker.js +6 -5
  169. package/internals/hooks/useStaticPicker/useStaticPicker.types.d.ts +6 -6
  170. package/internals/hooks/useUtils.d.ts +7 -7
  171. package/internals/hooks/useValueWithTimezone.d.ts +19 -15
  172. package/internals/hooks/useValueWithTimezone.js +13 -1
  173. package/internals/hooks/useViews.d.ts +3 -3
  174. package/internals/hooks/useViews.js +1 -1
  175. package/internals/index.d.ts +7 -5
  176. package/internals/index.js +2 -1
  177. package/internals/models/common.d.ts +2 -1
  178. package/internals/models/fields.d.ts +32 -7
  179. package/internals/models/formProps.d.ts +14 -0
  180. package/internals/models/helpers.d.ts +0 -4
  181. package/internals/models/index.d.ts +2 -0
  182. package/internals/models/index.js +3 -1
  183. package/internals/models/props/basePickerProps.d.ts +5 -6
  184. package/internals/models/props/{clock.d.ts → time.d.ts} +10 -17
  185. package/internals/models/props/toolbar.d.ts +0 -2
  186. package/internals/models/validation.d.ts +21 -25
  187. package/internals/models/value.d.ts +3 -0
  188. package/internals/models/value.js +1 -0
  189. package/internals/utils/date-time-utils.d.ts +7 -7
  190. package/internals/utils/date-utils.d.ts +17 -17
  191. package/internals/utils/getDefaultReferenceDate.d.ts +10 -10
  192. package/internals/utils/time-utils.d.ts +5 -5
  193. package/internals/utils/valueManagers.d.ts +3 -3
  194. package/locales/beBY.d.ts +3 -3
  195. package/locales/beBY.js +3 -3
  196. package/locales/bgBG.d.ts +3 -3
  197. package/locales/bgBG.js +3 -3
  198. package/locales/caES.d.ts +3 -3
  199. package/locales/caES.js +3 -3
  200. package/locales/csCZ.d.ts +3 -3
  201. package/locales/csCZ.js +3 -3
  202. package/locales/daDK.d.ts +3 -3
  203. package/locales/daDK.js +3 -3
  204. package/locales/deDE.d.ts +3 -3
  205. package/locales/deDE.js +3 -3
  206. package/locales/elGR.d.ts +3 -3
  207. package/locales/elGR.js +12 -13
  208. package/locales/enUS.d.ts +4 -4
  209. package/locales/enUS.js +3 -3
  210. package/locales/esES.d.ts +3 -3
  211. package/locales/esES.js +3 -3
  212. package/locales/eu.d.ts +3 -3
  213. package/locales/eu.js +3 -3
  214. package/locales/faIR.d.ts +3 -3
  215. package/locales/faIR.js +3 -3
  216. package/locales/fiFI.d.ts +3 -3
  217. package/locales/fiFI.js +3 -3
  218. package/locales/frFR.d.ts +3 -3
  219. package/locales/frFR.js +3 -3
  220. package/locales/heIL.d.ts +3 -3
  221. package/locales/heIL.js +3 -3
  222. package/locales/hrHR.d.ts +3 -3
  223. package/locales/hrHR.js +3 -3
  224. package/locales/huHU.d.ts +3 -3
  225. package/locales/huHU.js +3 -3
  226. package/locales/isIS.d.ts +3 -3
  227. package/locales/isIS.js +3 -3
  228. package/locales/itIT.d.ts +3 -3
  229. package/locales/itIT.js +3 -3
  230. package/locales/jaJP.d.ts +3 -3
  231. package/locales/jaJP.js +3 -3
  232. package/locales/koKR.d.ts +3 -3
  233. package/locales/koKR.js +3 -3
  234. package/locales/kzKZ.d.ts +3 -3
  235. package/locales/kzKZ.js +3 -3
  236. package/locales/mk.d.ts +3 -3
  237. package/locales/mk.js +3 -3
  238. package/locales/nbNO.d.ts +3 -3
  239. package/locales/nbNO.js +3 -3
  240. package/locales/nlNL.d.ts +3 -3
  241. package/locales/nlNL.js +3 -3
  242. package/locales/nnNO.d.ts +3 -3
  243. package/locales/nnNO.js +3 -3
  244. package/locales/plPL.d.ts +3 -3
  245. package/locales/plPL.js +3 -3
  246. package/locales/ptBR.d.ts +3 -3
  247. package/locales/ptBR.js +5 -3
  248. package/locales/ptPT.d.ts +3 -3
  249. package/locales/ptPT.js +3 -3
  250. package/locales/roRO.d.ts +3 -3
  251. package/locales/roRO.js +3 -3
  252. package/locales/ruRU.d.ts +3 -3
  253. package/locales/ruRU.js +3 -3
  254. package/locales/skSK.d.ts +3 -3
  255. package/locales/skSK.js +3 -3
  256. package/locales/svSE.d.ts +3 -3
  257. package/locales/svSE.js +3 -3
  258. package/locales/trTR.d.ts +3 -3
  259. package/locales/trTR.js +3 -3
  260. package/locales/ukUA.d.ts +3 -3
  261. package/locales/ukUA.js +3 -3
  262. package/locales/urPK.d.ts +3 -3
  263. package/locales/urPK.js +3 -3
  264. package/locales/utils/getPickersLocalization.d.ts +9 -9
  265. package/locales/utils/getPickersLocalization.js +1 -1
  266. package/locales/utils/pickersLocaleTextApi.d.ts +12 -36
  267. package/locales/viVN.d.ts +3 -3
  268. package/locales/viVN.js +3 -3
  269. package/locales/zhCN.d.ts +3 -3
  270. package/locales/zhCN.js +3 -3
  271. package/locales/zhHK.d.ts +3 -3
  272. package/locales/zhHK.js +3 -3
  273. package/models/adapters.d.ts +151 -202
  274. package/models/common.d.ts +1 -0
  275. package/models/fields.d.ts +9 -42
  276. package/models/pickers.d.ts +28 -6
  277. package/modern/DateCalendar/DateCalendar.js +21 -22
  278. package/modern/DateCalendar/DayCalendar.js +13 -10
  279. package/modern/DateField/DateField.js +8 -10
  280. package/modern/DatePicker/DatePicker.js +15 -14
  281. package/modern/DatePicker/DatePickerToolbar.js +2 -4
  282. package/modern/DateTimeField/DateTimeField.js +9 -12
  283. package/modern/DateTimePicker/DateTimePicker.js +16 -16
  284. package/modern/DateTimePicker/DateTimePickerTabs.js +2 -2
  285. package/modern/DateTimePicker/DateTimePickerToolbar.js +8 -7
  286. package/modern/DesktopDatePicker/DesktopDatePicker.js +17 -16
  287. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +18 -18
  288. package/modern/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +0 -2
  289. package/modern/DesktopTimePicker/DesktopTimePicker.js +11 -6
  290. package/modern/DigitalClock/DigitalClock.js +8 -6
  291. package/modern/MobileDatePicker/MobileDatePicker.js +17 -16
  292. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +18 -18
  293. package/modern/MobileTimePicker/MobileTimePicker.js +11 -6
  294. package/modern/MonthCalendar/MonthCalendar.js +18 -14
  295. package/modern/MonthCalendar/PickersMonth.js +17 -13
  296. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClock.js +8 -6
  297. package/modern/PickersActionBar/PickersActionBar.js +2 -2
  298. package/modern/PickersCalendarHeader/PickersCalendarHeader.js +2 -2
  299. package/modern/PickersLayout/PickersLayout.js +0 -2
  300. package/modern/PickersLayout/usePickerLayout.js +18 -23
  301. package/modern/PickersTextField/PickersInputBase/PickersInputBase.js +10 -9
  302. package/modern/PickersTextField/PickersTextField.js +2 -2
  303. package/modern/StaticDatePicker/StaticDatePicker.js +14 -13
  304. package/modern/StaticDateTimePicker/StaticDateTimePicker.js +15 -15
  305. package/modern/StaticTimePicker/StaticTimePicker.js +8 -3
  306. package/modern/TimeClock/Clock.js +4 -3
  307. package/modern/TimeClock/TimeClock.js +8 -6
  308. package/modern/TimeField/TimeField.js +6 -6
  309. package/modern/TimePicker/TimePicker.js +9 -4
  310. package/modern/TimePicker/TimePickerToolbar.js +8 -7
  311. package/modern/YearCalendar/PickersYear.js +17 -13
  312. package/modern/YearCalendar/YearCalendar.js +18 -14
  313. package/modern/hooks/index.js +2 -2
  314. package/modern/hooks/useClearableField.js +4 -3
  315. package/modern/hooks/useParsedFormat.js +2 -2
  316. package/modern/hooks/usePickerContext.js +15 -0
  317. package/{hooks/usePickersTranslations.js → modern/hooks/usePickerTranslations.js} +1 -1
  318. package/modern/index.js +1 -1
  319. package/modern/internals/components/PickerProvider.js +40 -0
  320. package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.js +22 -18
  321. package/modern/internals/hooks/useField/useField.js +1 -1
  322. package/modern/internals/hooks/useField/useFieldState.js +4 -3
  323. package/modern/internals/hooks/useField/useFieldV7TextField.js +4 -3
  324. package/modern/internals/hooks/useMobilePicker/useMobilePicker.js +24 -19
  325. package/modern/internals/hooks/usePicker/usePicker.js +15 -10
  326. package/modern/internals/hooks/usePicker/usePickerLayoutProps.js +2 -5
  327. package/modern/internals/hooks/usePicker/usePickerProvider.js +77 -0
  328. package/modern/internals/hooks/usePicker/usePickerValue.js +7 -10
  329. package/modern/internals/hooks/usePicker/usePickerViews.js +1 -0
  330. package/modern/internals/hooks/usePickerPrivateContext.js +9 -0
  331. package/modern/internals/hooks/useStaticPicker/useStaticPicker.js +6 -5
  332. package/modern/internals/hooks/useValueWithTimezone.js +13 -1
  333. package/modern/internals/hooks/useViews.js +1 -1
  334. package/modern/internals/index.js +2 -1
  335. package/modern/internals/models/formProps.js +1 -0
  336. package/modern/internals/models/index.js +3 -1
  337. package/modern/internals/models/props/time.js +1 -0
  338. package/modern/internals/models/value.js +1 -0
  339. package/modern/locales/beBY.js +3 -3
  340. package/modern/locales/bgBG.js +3 -3
  341. package/modern/locales/caES.js +3 -3
  342. package/modern/locales/csCZ.js +3 -3
  343. package/modern/locales/daDK.js +3 -3
  344. package/modern/locales/deDE.js +3 -3
  345. package/modern/locales/elGR.js +12 -13
  346. package/modern/locales/enUS.js +3 -3
  347. package/modern/locales/esES.js +3 -3
  348. package/modern/locales/eu.js +3 -3
  349. package/modern/locales/faIR.js +3 -3
  350. package/modern/locales/fiFI.js +3 -3
  351. package/modern/locales/frFR.js +3 -3
  352. package/modern/locales/heIL.js +3 -3
  353. package/modern/locales/hrHR.js +3 -3
  354. package/modern/locales/huHU.js +3 -3
  355. package/modern/locales/isIS.js +3 -3
  356. package/modern/locales/itIT.js +3 -3
  357. package/modern/locales/jaJP.js +3 -3
  358. package/modern/locales/koKR.js +3 -3
  359. package/modern/locales/kzKZ.js +3 -3
  360. package/modern/locales/mk.js +3 -3
  361. package/modern/locales/nbNO.js +3 -3
  362. package/modern/locales/nlNL.js +3 -3
  363. package/modern/locales/nnNO.js +3 -3
  364. package/modern/locales/plPL.js +3 -3
  365. package/modern/locales/ptBR.js +5 -3
  366. package/modern/locales/ptPT.js +3 -3
  367. package/modern/locales/roRO.js +3 -3
  368. package/modern/locales/ruRU.js +3 -3
  369. package/modern/locales/skSK.js +3 -3
  370. package/modern/locales/svSE.js +3 -3
  371. package/modern/locales/trTR.js +3 -3
  372. package/modern/locales/ukUA.js +3 -3
  373. package/modern/locales/urPK.js +3 -3
  374. package/modern/locales/utils/getPickersLocalization.js +1 -1
  375. package/modern/locales/viVN.js +3 -3
  376. package/modern/locales/zhCN.js +3 -3
  377. package/modern/locales/zhHK.js +3 -3
  378. package/modern/validation/useValidation.js +2 -3
  379. package/modern/validation/validateDate.js +5 -0
  380. package/modern/validation/validateDateTime.js +5 -0
  381. package/modern/validation/validateTime.js +5 -0
  382. package/node/DateCalendar/DateCalendar.js +21 -22
  383. package/node/DateCalendar/DayCalendar.js +13 -10
  384. package/node/DateField/DateField.js +8 -10
  385. package/node/DatePicker/DatePicker.js +15 -14
  386. package/node/DatePicker/DatePickerToolbar.js +2 -4
  387. package/node/DateTimeField/DateTimeField.js +9 -12
  388. package/node/DateTimePicker/DateTimePicker.js +16 -16
  389. package/node/DateTimePicker/DateTimePickerTabs.js +2 -2
  390. package/node/DateTimePicker/DateTimePickerToolbar.js +8 -7
  391. package/node/DesktopDatePicker/DesktopDatePicker.js +17 -16
  392. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +18 -18
  393. package/node/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +0 -2
  394. package/node/DesktopTimePicker/DesktopTimePicker.js +11 -6
  395. package/node/DigitalClock/DigitalClock.js +8 -6
  396. package/node/MobileDatePicker/MobileDatePicker.js +17 -16
  397. package/node/MobileDateTimePicker/MobileDateTimePicker.js +18 -18
  398. package/node/MobileTimePicker/MobileTimePicker.js +11 -6
  399. package/node/MonthCalendar/MonthCalendar.js +18 -14
  400. package/node/MonthCalendar/PickersMonth.js +17 -13
  401. package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.js +8 -6
  402. package/node/PickersActionBar/PickersActionBar.js +2 -2
  403. package/node/PickersCalendarHeader/PickersCalendarHeader.js +2 -2
  404. package/node/PickersLayout/PickersLayout.js +0 -2
  405. package/node/PickersLayout/usePickerLayout.js +18 -23
  406. package/node/PickersTextField/PickersInputBase/PickersInputBase.js +10 -9
  407. package/node/PickersTextField/PickersTextField.js +2 -2
  408. package/node/StaticDatePicker/StaticDatePicker.js +14 -13
  409. package/node/StaticDateTimePicker/StaticDateTimePicker.js +15 -15
  410. package/node/StaticTimePicker/StaticTimePicker.js +8 -3
  411. package/node/TimeClock/Clock.js +4 -3
  412. package/node/TimeClock/TimeClock.js +8 -6
  413. package/node/TimeField/TimeField.js +6 -6
  414. package/node/TimePicker/TimePicker.js +9 -4
  415. package/node/TimePicker/TimePickerToolbar.js +8 -7
  416. package/node/YearCalendar/PickersYear.js +17 -13
  417. package/node/YearCalendar/YearCalendar.js +18 -14
  418. package/node/hooks/index.js +6 -6
  419. package/node/hooks/useClearableField.js +4 -3
  420. package/node/hooks/useParsedFormat.js +2 -2
  421. package/node/hooks/usePickerContext.js +21 -0
  422. package/node/hooks/usePickerTranslations.js +10 -0
  423. package/node/index.js +1 -1
  424. package/node/internals/components/PickerProvider.js +48 -0
  425. package/node/internals/hooks/useDesktopPicker/useDesktopPicker.js +22 -18
  426. package/node/internals/hooks/useField/useField.js +1 -1
  427. package/node/internals/hooks/useField/useFieldState.js +4 -3
  428. package/node/internals/hooks/useField/useFieldV7TextField.js +4 -3
  429. package/node/internals/hooks/useMobilePicker/useMobilePicker.js +24 -19
  430. package/node/internals/hooks/usePicker/usePicker.js +15 -10
  431. package/node/internals/hooks/usePicker/usePickerLayoutProps.js +2 -5
  432. package/node/internals/hooks/usePicker/usePickerProvider.js +87 -0
  433. package/node/internals/hooks/usePicker/usePickerValue.js +6 -10
  434. package/node/internals/hooks/usePicker/usePickerViews.js +1 -0
  435. package/node/internals/hooks/usePickerPrivateContext.js +15 -0
  436. package/node/internals/hooks/useStaticPicker/useStaticPicker.js +6 -5
  437. package/node/internals/hooks/useValueWithTimezone.js +13 -1
  438. package/node/internals/hooks/useViews.js +3 -3
  439. package/node/internals/index.js +14 -7
  440. package/node/internals/models/index.js +22 -0
  441. package/node/internals/models/props/time.js +5 -0
  442. package/node/internals/models/value.js +5 -0
  443. package/node/locales/beBY.js +3 -3
  444. package/node/locales/bgBG.js +3 -3
  445. package/node/locales/caES.js +3 -3
  446. package/node/locales/csCZ.js +3 -3
  447. package/node/locales/daDK.js +3 -3
  448. package/node/locales/deDE.js +3 -3
  449. package/node/locales/elGR.js +12 -13
  450. package/node/locales/enUS.js +3 -3
  451. package/node/locales/esES.js +3 -3
  452. package/node/locales/eu.js +3 -3
  453. package/node/locales/faIR.js +3 -3
  454. package/node/locales/fiFI.js +3 -3
  455. package/node/locales/frFR.js +3 -3
  456. package/node/locales/heIL.js +3 -3
  457. package/node/locales/hrHR.js +3 -3
  458. package/node/locales/huHU.js +3 -3
  459. package/node/locales/isIS.js +3 -3
  460. package/node/locales/itIT.js +3 -3
  461. package/node/locales/jaJP.js +3 -3
  462. package/node/locales/koKR.js +3 -3
  463. package/node/locales/kzKZ.js +3 -3
  464. package/node/locales/mk.js +3 -3
  465. package/node/locales/nbNO.js +3 -3
  466. package/node/locales/nlNL.js +3 -3
  467. package/node/locales/nnNO.js +3 -3
  468. package/node/locales/plPL.js +3 -3
  469. package/node/locales/ptBR.js +5 -3
  470. package/node/locales/ptPT.js +3 -3
  471. package/node/locales/roRO.js +3 -3
  472. package/node/locales/ruRU.js +3 -3
  473. package/node/locales/skSK.js +3 -3
  474. package/node/locales/svSE.js +3 -3
  475. package/node/locales/trTR.js +3 -3
  476. package/node/locales/ukUA.js +3 -3
  477. package/node/locales/urPK.js +3 -3
  478. package/node/locales/utils/getPickersLocalization.js +1 -1
  479. package/node/locales/viVN.js +3 -3
  480. package/node/locales/zhCN.js +3 -3
  481. package/node/locales/zhHK.js +3 -3
  482. package/node/validation/useValidation.js +2 -3
  483. package/node/validation/validateDate.js +4 -0
  484. package/node/validation/validateDateTime.js +4 -0
  485. package/node/validation/validateTime.js +4 -0
  486. package/package.json +5 -5
  487. package/themeAugmentation/props.d.ts +28 -28
  488. package/timeViewRenderers/timeViewRenderers.d.ts +6 -6
  489. package/validation/extractValidationProps.d.ts +4 -4
  490. package/validation/useValidation.d.ts +9 -10
  491. package/validation/useValidation.js +2 -3
  492. package/validation/validateDate.d.ts +7 -2
  493. package/validation/validateDate.js +5 -0
  494. package/validation/validateDateTime.d.ts +10 -4
  495. package/validation/validateDateTime.js +5 -0
  496. package/validation/validateTime.d.ts +7 -2
  497. package/validation/validateTime.js +5 -0
  498. package/hooks/usePickersContext.d.ts +0 -4
  499. package/hooks/usePickersContext.js +0 -15
  500. package/hooks/usePickersTranslations.d.ts +0 -2
  501. package/internals/components/PickersProvider.d.ts +0 -34
  502. package/internals/components/PickersProvider.js +0 -26
  503. package/internals/hooks/usePicker/usePickerOwnerState.d.ts +0 -9
  504. package/internals/hooks/usePicker/usePickerOwnerState.js +0 -13
  505. package/modern/hooks/usePickersContext.js +0 -15
  506. package/modern/internals/components/PickersProvider.js +0 -26
  507. package/modern/internals/hooks/usePicker/usePickerOwnerState.js +0 -13
  508. package/node/hooks/usePickersContext.js +0 -21
  509. package/node/hooks/usePickersTranslations.js +0 -10
  510. package/node/internals/components/PickersProvider.js +0 -34
  511. package/node/internals/hooks/usePicker/usePickerOwnerState.js +0 -20
  512. /package/internals/models/{props/clock.js → formProps.js} +0 -0
  513. /package/{modern/internals/models/props/clock.js → internals/models/props/time.js} +0 -0
  514. /package/node/internals/models/{props/clock.js → formProps.js} +0 -0
@@ -8,7 +8,7 @@ import { refType } from '@mui/utils';
8
8
  import { singleItemValueManager } from "../internals/utils/valueManagers.js";
9
9
  import { DateTimeField } from "../DateTimeField/index.js";
10
10
  import { useDateTimePickerDefaultizedProps } from "../DateTimePicker/shared.js";
11
- import { usePickersTranslations } from "../hooks/usePickersTranslations.js";
11
+ import { usePickerTranslations } from "../hooks/usePickerTranslations.js";
12
12
  import { useUtils } from "../internals/hooks/useUtils.js";
13
13
  import { extractValidationProps, validateDateTime } from "../validation/index.js";
14
14
  import { useMobilePicker } from "../internals/hooks/useMobilePicker/index.js";
@@ -27,7 +27,7 @@ import { buildGetOpenDialogAriaText } from "../locales/utils/getPickersLocalizat
27
27
  * - [MobileDateTimePicker API](https://mui.com/x/api/date-pickers/mobile-date-time-picker/)
28
28
  */
29
29
  const MobileDateTimePicker = /*#__PURE__*/React.forwardRef(function MobileDateTimePicker(inProps, ref) {
30
- const translations = usePickersTranslations();
30
+ const translations = usePickerTranslations();
31
31
  const utils = useUtils();
32
32
 
33
33
  // Props with the default values common to all date time pickers
@@ -109,9 +109,9 @@ MobileDateTimePicker.propTypes = {
109
109
  closeOnSelect: PropTypes.bool,
110
110
  /**
111
111
  * Formats the day of week displayed in the calendar header.
112
- * @param {TDate} date The date of the day of week provided by the adapter.
112
+ * @param {PickerValidDate} date The date of the day of week provided by the adapter.
113
113
  * @returns {string} The name to display.
114
- * @default (date: TDate) => adapter.format(date, 'weekdayShort').charAt(0).toUpperCase()
114
+ * @default (date: PickerValidDate) => adapter.format(date, 'weekdayShort').charAt(0).toUpperCase()
115
115
  */
116
116
  dayOfWeekFormatter: PropTypes.func,
117
117
  /**
@@ -120,7 +120,8 @@ MobileDateTimePicker.propTypes = {
120
120
  */
121
121
  defaultValue: PropTypes.object,
122
122
  /**
123
- * If `true`, the picker and text field are disabled.
123
+ * If `true`, the component is disabled.
124
+ * When disabled, the value cannot be changed and no interaction is possible.
124
125
  * @default false
125
126
  */
126
127
  disabled: PropTypes.bool,
@@ -154,7 +155,7 @@ MobileDateTimePicker.propTypes = {
154
155
  */
155
156
  displayWeekNumber: PropTypes.bool,
156
157
  /**
157
- * @default false
158
+ * @default true
158
159
  */
159
160
  enableAccessibleFieldDOMStructure: PropTypes.any,
160
161
  /**
@@ -267,8 +268,7 @@ MobileDateTimePicker.propTypes = {
267
268
  onError: PropTypes.func,
268
269
  /**
269
270
  * Callback fired on month change.
270
- * @template TDate
271
- * @param {TDate} month The new month.
271
+ * @param {PickerValidDate} month The new month.
272
272
  */
273
273
  onMonthChange: PropTypes.func,
274
274
  /**
@@ -289,8 +289,7 @@ MobileDateTimePicker.propTypes = {
289
289
  onViewChange: PropTypes.func,
290
290
  /**
291
291
  * Callback fired on year change.
292
- * @template TDate
293
- * @param {TDate} year The new year.
292
+ * @param {PickerValidDate} year The new year.
294
293
  */
295
294
  onYearChange: PropTypes.func,
296
295
  /**
@@ -308,6 +307,11 @@ MobileDateTimePicker.propTypes = {
308
307
  * Force rendering in particular orientation.
309
308
  */
310
309
  orientation: PropTypes.oneOf(['landscape', 'portrait']),
310
+ /**
311
+ * If `true`, the component is read-only.
312
+ * When read-only, the value cannot be changed but the user can interact with the interface.
313
+ * @default false
314
+ */
311
315
  readOnly: PropTypes.bool,
312
316
  /**
313
317
  * If `true`, disable heavy animations.
@@ -340,30 +344,26 @@ MobileDateTimePicker.propTypes = {
340
344
  *
341
345
  * Warning: This function can be called multiple times (for example when rendering date calendar, checking if focus can be moved to a certain date, etc.). Expensive computations can impact performance.
342
346
  *
343
- * @template TDate
344
- * @param {TDate} day The date to test.
347
+ * @param {PickerValidDate} day The date to test.
345
348
  * @returns {boolean} If `true` the date will be disabled.
346
349
  */
347
350
  shouldDisableDate: PropTypes.func,
348
351
  /**
349
352
  * Disable specific month.
350
- * @template TDate
351
- * @param {TDate} month The month to test.
353
+ * @param {PickerValidDate} month The month to test.
352
354
  * @returns {boolean} If `true`, the month will be disabled.
353
355
  */
354
356
  shouldDisableMonth: PropTypes.func,
355
357
  /**
356
358
  * Disable specific time.
357
- * @template TDate
358
- * @param {TDate} value The value to check.
359
+ * @param {PickerValidDate} value The value to check.
359
360
  * @param {TimeView} view The clock type of the timeValue.
360
361
  * @returns {boolean} If `true` the time will be disabled.
361
362
  */
362
363
  shouldDisableTime: PropTypes.func,
363
364
  /**
364
365
  * Disable specific year.
365
- * @template TDate
366
- * @param {TDate} year The year to test.
366
+ * @param {PickerValidDate} year The year to test.
367
367
  * @returns {boolean} If `true`, the year will be disabled.
368
368
  */
369
369
  shouldDisableYear: PropTypes.func,
@@ -8,7 +8,7 @@ import { refType } from '@mui/utils';
8
8
  import { singleItemValueManager } from "../internals/utils/valueManagers.js";
9
9
  import { TimeField } from "../TimeField/index.js";
10
10
  import { useTimePickerDefaultizedProps } from "../TimePicker/shared.js";
11
- import { usePickersTranslations } from "../hooks/usePickersTranslations.js";
11
+ import { usePickerTranslations } from "../hooks/usePickerTranslations.js";
12
12
  import { useUtils } from "../internals/hooks/useUtils.js";
13
13
  import { extractValidationProps, validateTime } from "../validation/index.js";
14
14
  import { useMobilePicker } from "../internals/hooks/useMobilePicker/index.js";
@@ -26,7 +26,7 @@ import { buildGetOpenDialogAriaText } from "../locales/utils/getPickersLocalizat
26
26
  * - [MobileTimePicker API](https://mui.com/x/api/date-pickers/mobile-time-picker/)
27
27
  */
28
28
  const MobileTimePicker = /*#__PURE__*/React.forwardRef(function MobileTimePicker(inProps, ref) {
29
- const translations = usePickersTranslations();
29
+ const translations = usePickerTranslations();
30
30
  const utils = useUtils();
31
31
 
32
32
  // Props with the default values common to all time pickers
@@ -106,7 +106,8 @@ MobileTimePicker.propTypes = {
106
106
  */
107
107
  defaultValue: PropTypes.object,
108
108
  /**
109
- * If `true`, the picker and text field are disabled.
109
+ * If `true`, the component is disabled.
110
+ * When disabled, the value cannot be changed and no interaction is possible.
110
111
  * @default false
111
112
  */
112
113
  disabled: PropTypes.bool,
@@ -131,7 +132,7 @@ MobileTimePicker.propTypes = {
131
132
  */
132
133
  disablePast: PropTypes.bool,
133
134
  /**
134
- * @default false
135
+ * @default true
135
136
  */
136
137
  enableAccessibleFieldDOMStructure: PropTypes.any,
137
138
  /**
@@ -239,6 +240,11 @@ MobileTimePicker.propTypes = {
239
240
  * Force rendering in particular orientation.
240
241
  */
241
242
  orientation: PropTypes.oneOf(['landscape', 'portrait']),
243
+ /**
244
+ * If `true`, the component is read-only.
245
+ * When read-only, the value cannot be changed but the user can interact with the interface.
246
+ * @default false
247
+ */
242
248
  readOnly: PropTypes.bool,
243
249
  /**
244
250
  * If `true`, disable heavy animations.
@@ -262,8 +268,7 @@ MobileTimePicker.propTypes = {
262
268
  selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number]),
263
269
  /**
264
270
  * Disable specific time.
265
- * @template TDate
266
- * @param {TDate} value The value to check.
271
+ * @param {PickerValidDate} value The value to check.
267
272
  * @param {TimeView} view The clock type of the timeValue.
268
273
  * @returns {boolean} If `true` the time will be disabled.
269
274
  */
@@ -2,7 +2,7 @@
2
2
 
3
3
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
4
4
  import _extends from "@babel/runtime/helpers/esm/extends";
5
- const _excluded = ["className", "value", "defaultValue", "referenceDate", "disabled", "disableFuture", "disablePast", "maxDate", "minDate", "onChange", "shouldDisableMonth", "readOnly", "disableHighlightToday", "autoFocus", "onMonthFocus", "hasFocus", "onFocusedViewChange", "monthsPerRow", "timezone", "gridLabelId", "slots", "slotProps"];
5
+ const _excluded = ["className", "classes", "value", "defaultValue", "referenceDate", "disabled", "disableFuture", "disablePast", "maxDate", "minDate", "onChange", "shouldDisableMonth", "readOnly", "disableHighlightToday", "autoFocus", "onMonthFocus", "hasFocus", "onFocusedViewChange", "monthsPerRow", "timezone", "gridLabelId", "slots", "slotProps"];
6
6
  import * as React from 'react';
7
7
  import PropTypes from 'prop-types';
8
8
  import clsx from 'clsx';
@@ -17,11 +17,9 @@ import { singleItemValueManager } from "../internals/utils/valueManagers.js";
17
17
  import { SECTION_TYPE_GRANULARITY } from "../internals/utils/getDefaultReferenceDate.js";
18
18
  import { useControlledValueWithTimezone } from "../internals/hooks/useValueWithTimezone.js";
19
19
  import { DIALOG_WIDTH } from "../internals/constants/dimensions.js";
20
+ import { usePickerPrivateContext } from "../internals/hooks/usePickerPrivateContext.js";
20
21
  import { jsx as _jsx } from "react/jsx-runtime";
21
- const useUtilityClasses = ownerState => {
22
- const {
23
- classes
24
- } = ownerState;
22
+ const useUtilityClasses = classes => {
25
23
  const slots = {
26
24
  root: ['root']
27
25
  };
@@ -68,6 +66,7 @@ export const MonthCalendar = /*#__PURE__*/React.forwardRef(function MonthCalenda
68
66
  const props = useMonthCalendarDefaultizedProps(inProps, 'MuiMonthCalendar');
69
67
  const {
70
68
  className,
69
+ classes: classesProp,
71
70
  value: valueProp,
72
71
  defaultValue,
73
72
  referenceDate: referenceDateProp,
@@ -99,12 +98,16 @@ export const MonthCalendar = /*#__PURE__*/React.forwardRef(function MonthCalenda
99
98
  timezone: timezoneProp,
100
99
  value: valueProp,
101
100
  defaultValue,
102
- onChange: onChange,
101
+ referenceDate: referenceDateProp,
102
+ onChange,
103
103
  valueManager: singleItemValueManager
104
104
  });
105
105
  const now = useNow(timezone);
106
106
  const isRtl = useRtl();
107
107
  const utils = useUtils();
108
+ const {
109
+ ownerState
110
+ } = usePickerPrivateContext();
108
111
  const referenceDate = React.useMemo(() => singleItemValueManager.getInitialReferenceValue({
109
112
  value,
110
113
  utils,
@@ -114,8 +117,7 @@ export const MonthCalendar = /*#__PURE__*/React.forwardRef(function MonthCalenda
114
117
  granularity: SECTION_TYPE_GRANULARITY.month
115
118
  }), [] // eslint-disable-line react-hooks/exhaustive-deps
116
119
  );
117
- const ownerState = props;
118
- const classes = useUtilityClasses(ownerState);
120
+ const classes = useUtilityClasses(classesProp);
119
121
  const todayMonth = React.useMemo(() => utils.getMonth(now), [utils, now]);
120
122
  const selectedMonth = React.useMemo(() => {
121
123
  if (value != null) {
@@ -252,7 +254,9 @@ process.env.NODE_ENV !== "production" ? MonthCalendar.propTypes = {
252
254
  */
253
255
  defaultValue: PropTypes.object,
254
256
  /**
255
- * If `true` picker is disabled
257
+ * If `true`, the component is disabled.
258
+ * When disabled, the value cannot be changed and no interaction is possible.
259
+ * @default false
256
260
  */
257
261
  disabled: PropTypes.bool,
258
262
  /**
@@ -289,14 +293,15 @@ process.env.NODE_ENV !== "production" ? MonthCalendar.propTypes = {
289
293
  monthsPerRow: PropTypes.oneOf([3, 4]),
290
294
  /**
291
295
  * Callback fired when the value changes.
292
- * @template TDate
293
- * @param {TDate} value The new value.
296
+ * @param {PickerValidDate} value The new value.
294
297
  */
295
298
  onChange: PropTypes.func,
296
299
  onFocusedViewChange: PropTypes.func,
297
300
  onMonthFocus: PropTypes.func,
298
301
  /**
299
- * If `true` picker is readonly
302
+ * If `true`, the component is read-only.
303
+ * When read-only, the value cannot be changed but the user can interact with the interface.
304
+ * @default false
300
305
  */
301
306
  readOnly: PropTypes.bool,
302
307
  /**
@@ -306,8 +311,7 @@ process.env.NODE_ENV !== "production" ? MonthCalendar.propTypes = {
306
311
  referenceDate: PropTypes.object,
307
312
  /**
308
313
  * Disable specific month.
309
- * @template TDate
310
- * @param {TDate} month The month to test.
314
+ * @param {PickerValidDate} month The month to test.
311
315
  * @returns {boolean} If `true`, the month will be disabled.
312
316
  */
313
317
  shouldDisableMonth: PropTypes.func,
@@ -1,6 +1,6 @@
1
1
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
2
  import _extends from "@babel/runtime/helpers/esm/extends";
3
- const _excluded = ["autoFocus", "className", "children", "disabled", "selected", "value", "tabIndex", "onClick", "onKeyDown", "onFocus", "onBlur", "aria-current", "aria-label", "monthsPerRow", "slots", "slotProps"];
3
+ const _excluded = ["autoFocus", "className", "classes", "children", "disabled", "selected", "value", "tabIndex", "onClick", "onKeyDown", "onFocus", "onBlur", "aria-current", "aria-label", "monthsPerRow", "slots", "slotProps"];
4
4
  import * as React from 'react';
5
5
  import clsx from 'clsx';
6
6
  import { styled, alpha, useThemeProps } from '@mui/material/styles';
@@ -8,16 +8,12 @@ import useSlotProps from '@mui/utils/useSlotProps';
8
8
  import composeClasses from '@mui/utils/composeClasses';
9
9
  import useEnhancedEffect from '@mui/utils/useEnhancedEffect';
10
10
  import { getPickersMonthUtilityClass, pickersMonthClasses } from "./pickersMonthClasses.js";
11
+ import { usePickerPrivateContext } from "../internals/hooks/usePickerPrivateContext.js";
11
12
  import { jsx as _jsx } from "react/jsx-runtime";
12
- const useUtilityClasses = ownerState => {
13
- const {
14
- disabled,
15
- selected,
16
- classes
17
- } = ownerState;
13
+ const useUtilityClasses = (classes, ownerState) => {
18
14
  const slots = {
19
15
  root: ['root'],
20
- monthButton: ['monthButton', disabled && 'disabled', selected && 'selected']
16
+ monthButton: ['monthButton', ownerState.isMonthDisabled && 'disabled', ownerState.isMonthSelected && 'selected']
21
17
  };
22
18
  return composeClasses(slots, getPickersMonthUtilityClass, classes);
23
19
  };
@@ -93,9 +89,10 @@ export const PickersMonth = /*#__PURE__*/React.memo(function PickersMonth(inProp
93
89
  const {
94
90
  autoFocus,
95
91
  className,
92
+ classes: classesProp,
96
93
  children,
97
- disabled,
98
- selected,
94
+ disabled = false,
95
+ selected = false,
99
96
  value,
100
97
  tabIndex,
101
98
  onClick,
@@ -112,7 +109,14 @@ export const PickersMonth = /*#__PURE__*/React.memo(function PickersMonth(inProp
112
109
  } = props,
113
110
  other = _objectWithoutPropertiesLoose(props, _excluded);
114
111
  const ref = React.useRef(null);
115
- const classes = useUtilityClasses(props);
112
+ const {
113
+ ownerState: pickerOwnerState
114
+ } = usePickerPrivateContext();
115
+ const ownerState = _extends({}, pickerOwnerState, {
116
+ isMonthDisabled: disabled,
117
+ isMonthSelected: selected
118
+ });
119
+ const classes = useUtilityClasses(classesProp, ownerState);
116
120
 
117
121
  // We can't forward the `autoFocus` to the button because it is a native button, not a MUI Button
118
122
  useEnhancedEffect(() => {
@@ -140,12 +144,12 @@ export const PickersMonth = /*#__PURE__*/React.memo(function PickersMonth(inProp
140
144
  onFocus: event => onFocus(event, value),
141
145
  onBlur: event => onBlur(event, value)
142
146
  },
143
- ownerState: props,
147
+ ownerState,
144
148
  className: classes.monthButton
145
149
  });
146
150
  return /*#__PURE__*/_jsx(PickersMonthRoot, _extends({
147
151
  className: clsx(classes.root, className),
148
- ownerState: props
152
+ ownerState: ownerState
149
153
  }, other, {
150
154
  children: /*#__PURE__*/_jsx(MonthButton, _extends({}, monthButtonProps))
151
155
  }));
@@ -10,7 +10,7 @@ import { useRtl } from '@mui/system/RtlProvider';
10
10
  import { styled, useThemeProps } from '@mui/material/styles';
11
11
  import useEventCallback from '@mui/utils/useEventCallback';
12
12
  import composeClasses from '@mui/utils/composeClasses';
13
- import { usePickersTranslations } from "../hooks/usePickersTranslations.js";
13
+ import { usePickerTranslations } from "../hooks/usePickerTranslations.js";
14
14
  import { useUtils, useNow } from "../internals/hooks/useUtils.js";
15
15
  import { convertValueToMeridiem, createIsAfterIgnoreDatePart } from "../internals/utils/time-utils.js";
16
16
  import { useViews } from "../internals/hooks/useViews.js";
@@ -101,10 +101,11 @@ export const MultiSectionDigitalClock = /*#__PURE__*/React.forwardRef(function M
101
101
  timezone: timezoneProp,
102
102
  value: valueProp,
103
103
  defaultValue,
104
+ referenceDate: referenceDateProp,
104
105
  onChange,
105
106
  valueManager: singleItemValueManager
106
107
  });
107
- const translations = usePickersTranslations();
108
+ const translations = usePickerTranslations();
108
109
  const now = useNow(timezone);
109
110
  const timeSteps = React.useMemo(() => _extends({
110
111
  hours: 1,
@@ -368,7 +369,8 @@ process.env.NODE_ENV !== "production" ? MultiSectionDigitalClock.propTypes = {
368
369
  */
369
370
  defaultValue: PropTypes.object,
370
371
  /**
371
- * If `true`, the picker views and text field are disabled.
372
+ * If `true`, the component is disabled.
373
+ * When disabled, the value cannot be changed and no interaction is possible.
372
374
  * @default false
373
375
  */
374
376
  disabled: PropTypes.bool,
@@ -435,7 +437,8 @@ process.env.NODE_ENV !== "production" ? MultiSectionDigitalClock.propTypes = {
435
437
  */
436
438
  openTo: PropTypes.oneOf(['hours', 'meridiem', 'minutes', 'seconds']),
437
439
  /**
438
- * If `true`, the picker views and text field are read-only.
440
+ * If `true`, the component is read-only.
441
+ * When read-only, the value cannot be changed but the user can interact with the interface.
439
442
  * @default false
440
443
  */
441
444
  readOnly: PropTypes.bool,
@@ -446,8 +449,7 @@ process.env.NODE_ENV !== "production" ? MultiSectionDigitalClock.propTypes = {
446
449
  referenceDate: PropTypes.object,
447
450
  /**
448
451
  * Disable specific time.
449
- * @template TDate
450
- * @param {TDate} value The value to check.
452
+ * @param {PickerValidDate} value The value to check.
451
453
  * @param {TimeView} view The clock type of the timeValue.
452
454
  * @returns {boolean} If `true` the time will be disabled.
453
455
  */
@@ -7,7 +7,7 @@ import * as React from 'react';
7
7
  import PropTypes from 'prop-types';
8
8
  import Button from '@mui/material/Button';
9
9
  import DialogActions from '@mui/material/DialogActions';
10
- import { usePickersTranslations } from "../hooks/usePickersTranslations.js";
10
+ import { usePickerTranslations } from "../hooks/usePickerTranslations.js";
11
11
  import { jsx as _jsx } from "react/jsx-runtime";
12
12
  /**
13
13
  * Demos:
@@ -28,7 +28,7 @@ function PickersActionBar(props) {
28
28
  actions
29
29
  } = props,
30
30
  other = _objectWithoutPropertiesLoose(props, _excluded);
31
- const translations = usePickersTranslations();
31
+ const translations = usePickerTranslations();
32
32
  if (actions == null || actions.length === 0) {
33
33
  return null;
34
34
  }
@@ -12,7 +12,7 @@ import { styled, useThemeProps } from '@mui/material/styles';
12
12
  import useSlotProps from '@mui/utils/useSlotProps';
13
13
  import composeClasses from '@mui/utils/composeClasses';
14
14
  import IconButton from '@mui/material/IconButton';
15
- import { usePickersTranslations } from "../hooks/usePickersTranslations.js";
15
+ import { usePickerTranslations } from "../hooks/usePickerTranslations.js";
16
16
  import { useUtils } from "../internals/hooks/useUtils.js";
17
17
  import { PickersFadeTransitionGroup } from "../DateCalendar/PickersFadeTransitionGroup.js";
18
18
  import { ArrowDropDownIcon } from "../icons/index.js";
@@ -110,7 +110,7 @@ const PickersCalendarHeaderSwitchViewIcon = styled(ArrowDropDownIcon, {
110
110
  * - [PickersCalendarHeader API](https://mui.com/x/api/date-pickers/pickers-calendar-header/)
111
111
  */
112
112
  const PickersCalendarHeader = /*#__PURE__*/React.forwardRef(function PickersCalendarHeader(inProps, ref) {
113
- const translations = usePickersTranslations();
113
+ const translations = usePickerTranslations();
114
114
  const utils = useUtils();
115
115
  const props = useThemeProps({
116
116
  props: inProps,
@@ -145,7 +145,6 @@ process.env.NODE_ENV !== "production" ? PickersLayout.propTypes = {
145
145
  */
146
146
  classes: PropTypes.object,
147
147
  className: PropTypes.string,
148
- disabled: PropTypes.bool,
149
148
  isLandscape: PropTypes.bool.isRequired,
150
149
  /**
151
150
  * `true` if the application is in right-to-left direction.
@@ -166,7 +165,6 @@ process.env.NODE_ENV !== "production" ? PickersLayout.propTypes = {
166
165
  * Force rendering in particular orientation.
167
166
  */
168
167
  orientation: PropTypes.oneOf(['landscape', 'portrait']),
169
- readOnly: PropTypes.bool,
170
168
  /**
171
169
  * The props used for each component slot.
172
170
  * @default {}
@@ -7,13 +7,13 @@ import composeClasses from '@mui/utils/composeClasses';
7
7
  import { PickersActionBar } from "../PickersActionBar/index.js";
8
8
  import { getPickersLayoutUtilityClass } from "./pickersLayoutClasses.js";
9
9
  import { PickersShortcuts } from "../PickersShortcuts/index.js";
10
+ import { usePickerPrivateContext } from "../internals/hooks/usePickerPrivateContext.js";
10
11
  import { jsx as _jsx } from "react/jsx-runtime";
11
12
  function toolbarHasView(toolbarProps) {
12
13
  return toolbarProps.view !== null;
13
14
  }
14
- const useUtilityClasses = ownerState => {
15
+ const useUtilityClasses = (classes, ownerState) => {
15
16
  const {
16
- classes,
17
17
  isLandscape
18
18
  } = ownerState;
19
19
  const slots = {
@@ -28,6 +28,9 @@ const useUtilityClasses = ownerState => {
28
28
  return composeClasses(slots, getPickersLayoutUtilityClass, classes);
29
29
  };
30
30
  const usePickerLayout = props => {
31
+ const {
32
+ ownerState: pickersOwnerState
33
+ } = usePickerPrivateContext();
31
34
  const {
32
35
  wrapperVariant,
33
36
  onAccept,
@@ -42,17 +45,20 @@ const usePickerLayout = props => {
42
45
  onSelectShortcut,
43
46
  isValid,
44
47
  isLandscape,
45
- disabled,
46
- readOnly,
47
48
  children,
48
49
  slots,
49
- slotProps
50
+ slotProps,
51
+ classes: classesProp
50
52
  // TODO: Remove this "as" hack. It get introduced to mark `value` prop in PickersLayoutProps as not required.
51
53
  // The true type should be
52
- // - For pickers value: TDate | null
53
- // - For range pickers value: [TDate | null, TDate | null]
54
+ // - For pickers value: PickerValidDate | null
55
+ // - For range pickers value: [PickerValidDate | null, PickerValidDate | null]
54
56
  } = props;
55
- const classes = useUtilityClasses(props);
57
+ const ownerState = _extends({}, pickersOwnerState, {
58
+ wrapperVariant,
59
+ isLandscape
60
+ });
61
+ const classes = useUtilityClasses(classesProp, ownerState);
56
62
 
57
63
  // Action bar
58
64
  const ActionBar = slots?.actionBar ?? PickersActionBar;
@@ -67,9 +73,7 @@ const usePickerLayout = props => {
67
73
  actions: wrapperVariant === 'desktop' ? [] : ['cancel', 'accept']
68
74
  },
69
75
  className: classes.actionBar,
70
- ownerState: _extends({}, props, {
71
- wrapperVariant
72
- })
76
+ ownerState
73
77
  });
74
78
  const actionBar = /*#__PURE__*/_jsx(ActionBar, _extends({}, actionBarProps));
75
79
 
@@ -84,14 +88,10 @@ const usePickerLayout = props => {
84
88
  value,
85
89
  view,
86
90
  onViewChange,
87
- views,
88
- disabled,
89
- readOnly
91
+ views
90
92
  },
91
93
  className: classes.toolbar,
92
- ownerState: _extends({}, props, {
93
- wrapperVariant
94
- })
94
+ ownerState
95
95
  });
96
96
  const toolbar = toolbarHasView(toolbarProps) && !!Toolbar ? /*#__PURE__*/_jsx(Toolbar, _extends({}, toolbarProps)) : null;
97
97
 
@@ -117,12 +117,7 @@ const usePickerLayout = props => {
117
117
  onChange: onSelectShortcut
118
118
  },
119
119
  className: classes.shortcuts,
120
- ownerState: {
121
- isValid,
122
- isLandscape,
123
- onChange: onSelectShortcut,
124
- wrapperVariant
125
- }
120
+ ownerState
126
121
  });
127
122
  const shortcuts = view && !!Shortcuts ? /*#__PURE__*/_jsx(Shortcuts, _extends({}, shortcutsProps)) : null;
128
123
  return {
@@ -1,6 +1,6 @@
1
1
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
2
  import _extends from "@babel/runtime/helpers/esm/extends";
3
- const _excluded = ["elements", "areAllSectionsEmpty", "defaultValue", "label", "value", "onChange", "id", "autoFocus", "endAdornment", "startAdornment", "renderSuffix", "slots", "slotProps", "contentEditable", "tabIndex", "onInput", "onPaste", "onKeyDown", "fullWidth", "name", "readOnly", "inputProps", "inputRef", "sectionListRef"];
3
+ const _excluded = ["elements", "areAllSectionsEmpty", "defaultValue", "label", "value", "onChange", "id", "autoFocus", "endAdornment", "startAdornment", "renderSuffix", "slots", "slotProps", "contentEditable", "tabIndex", "onInput", "onPaste", "onKeyDown", "fullWidth", "name", "readOnly", "inputProps", "inputRef", "sectionListRef", "onFocus", "onBlur"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import { useFormControl } from '@mui/material/FormControl';
@@ -194,7 +194,9 @@ const PickersInputBase = /*#__PURE__*/React.forwardRef(function PickersInputBase
194
194
  readOnly,
195
195
  inputProps,
196
196
  inputRef,
197
- sectionListRef
197
+ sectionListRef,
198
+ onFocus,
199
+ onBlur
198
200
  } = props,
199
201
  other = _objectWithoutPropertiesLoose(props, _excluded);
200
202
  const rootRef = React.useRef(null);
@@ -206,13 +208,12 @@ const PickersInputBase = /*#__PURE__*/React.forwardRef(function PickersInputBase
206
208
  throw new Error('MUI X: PickersInputBase should always be used inside a PickersTextField component');
207
209
  }
208
210
  const handleInputFocus = event => {
209
- // Fix a bug with IE11 where the focus/blur events are triggered
210
- // while the component is disabled.
211
- if (muiFormControl.disabled) {
212
- event.stopPropagation();
213
- return;
214
- }
215
211
  muiFormControl.onFocus?.(event);
212
+ onFocus?.(event);
213
+ };
214
+ const handleInputBlur = event => {
215
+ muiFormControl.onBlur?.(event);
216
+ onBlur?.(event);
216
217
  };
217
218
  React.useEffect(() => {
218
219
  if (muiFormControl) {
@@ -254,7 +255,7 @@ const PickersInputBase = /*#__PURE__*/React.forwardRef(function PickersInputBase
254
255
  tabIndex: tabIndex,
255
256
  className: classes.sectionsContainer,
256
257
  onFocus: handleInputFocus,
257
- onBlur: muiFormControl.onBlur,
258
+ onBlur: handleInputBlur,
258
259
  onInput: onInput,
259
260
  onPaste: onPaste,
260
261
  onKeyDown: onKeyDown,
@@ -105,8 +105,6 @@ const PickersTextField = /*#__PURE__*/React.forwardRef(function PickersTextField
105
105
  className: clsx(classes.root, className),
106
106
  ref: handleRootRef,
107
107
  focused: focused,
108
- onFocus: onFocus,
109
- onBlur: onBlur,
110
108
  disabled: disabled,
111
109
  variant: variant,
112
110
  error: error,
@@ -128,6 +126,8 @@ const PickersTextField = /*#__PURE__*/React.forwardRef(function PickersTextField
128
126
  onKeyUp: onKeyUp,
129
127
  onInput: onInput,
130
128
  onPaste: onPaste,
129
+ onFocus: onFocus,
130
+ onBlur: onBlur,
131
131
  endAdornment: endAdornment,
132
132
  startAdornment: startAdornment,
133
133
  tabIndex: tabIndex,