@mui/x-date-pickers 7.22.2 → 8.0.0-alpha.0

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 (498) 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 +142 -155
  12. package/DateCalendar/DateCalendar.d.ts +1 -2
  13. package/DateCalendar/DateCalendar.js +20 -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 +12 -2
  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 +3 -3
  42. package/DateTimePicker/DateTimePickerToolbar.js +12 -2
  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 +10 -0
  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 +7 -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 +17 -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 +7 -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 +10 -0
  84. package/PickersLayout/PickersLayout.types.d.ts +14 -17
  85. package/PickersLayout/index.d.ts +1 -1
  86. package/PickersLayout/usePickerLayout.d.ts +1 -2
  87. package/PickersLayout/usePickerLayout.js +17 -18
  88. package/README.md +2 -2
  89. package/StaticDatePicker/StaticDatePicker.d.ts +1 -2
  90. package/StaticDatePicker/StaticDatePicker.js +14 -13
  91. package/StaticDatePicker/StaticDatePicker.types.d.ts +7 -7
  92. package/StaticDateTimePicker/StaticDateTimePicker.d.ts +1 -2
  93. package/StaticDateTimePicker/StaticDateTimePicker.js +15 -15
  94. package/StaticDateTimePicker/StaticDateTimePicker.types.d.ts +7 -7
  95. package/StaticTimePicker/StaticTimePicker.d.ts +1 -2
  96. package/StaticTimePicker/StaticTimePicker.js +8 -3
  97. package/StaticTimePicker/StaticTimePicker.types.d.ts +7 -7
  98. package/TimeClock/Clock.d.ts +4 -5
  99. package/TimeClock/Clock.js +3 -3
  100. package/TimeClock/ClockNumbers.d.ts +5 -5
  101. package/TimeClock/TimeClock.d.ts +1 -2
  102. package/TimeClock/TimeClock.js +7 -6
  103. package/TimeClock/TimeClock.types.d.ts +4 -4
  104. package/TimeField/TimeField.d.ts +1 -2
  105. package/TimeField/TimeField.js +6 -6
  106. package/TimeField/TimeField.types.d.ts +9 -14
  107. package/TimeField/index.d.ts +1 -1
  108. package/TimeField/useTimeField.d.ts +1 -2
  109. package/TimePicker/TimePicker.d.ts +1 -2
  110. package/TimePicker/TimePicker.js +9 -4
  111. package/TimePicker/TimePicker.types.d.ts +10 -13
  112. package/TimePicker/TimePickerToolbar.d.ts +2 -2
  113. package/TimePicker/TimePickerToolbar.js +12 -2
  114. package/TimePicker/shared.d.ts +10 -10
  115. package/YearCalendar/PickersYear.js +17 -13
  116. package/YearCalendar/YearCalendar.d.ts +1 -2
  117. package/YearCalendar/YearCalendar.js +17 -14
  118. package/YearCalendar/YearCalendar.types.d.ts +14 -15
  119. package/dateViewRenderers/dateViewRenderers.d.ts +3 -3
  120. package/hooks/index.d.ts +2 -2
  121. package/hooks/index.js +2 -2
  122. package/hooks/useClearableField.js +4 -3
  123. package/hooks/useParsedFormat.d.ts +2 -3
  124. package/hooks/useParsedFormat.js +2 -2
  125. package/hooks/usePickerContext.d.ts +4 -0
  126. package/hooks/usePickerContext.js +15 -0
  127. package/hooks/usePickerTranslations.d.ts +1 -0
  128. package/{modern/hooks/usePickersTranslations.js → hooks/usePickerTranslations.js} +1 -1
  129. package/index.js +1 -1
  130. package/internals/components/{PickersProvider.d.ts → PickerProvider.d.ts} +15 -8
  131. package/internals/components/PickerProvider.js +38 -0
  132. package/internals/hooks/date-helpers-hooks.d.ts +6 -6
  133. package/internals/hooks/defaultizedFieldProps.d.ts +7 -8
  134. package/internals/hooks/useClockReferenceDate.d.ts +5 -5
  135. package/internals/hooks/useDesktopPicker/useDesktopPicker.d.ts +1 -2
  136. package/internals/hooks/useDesktopPicker/useDesktopPicker.js +21 -17
  137. package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +15 -15
  138. package/internals/hooks/useField/buildSectionsFromFormat.d.ts +5 -5
  139. package/internals/hooks/useField/useField.d.ts +3 -3
  140. package/internals/hooks/useField/useField.js +1 -1
  141. package/internals/hooks/useField/useField.types.d.ts +38 -48
  142. package/internals/hooks/useField/useField.utils.d.ts +13 -13
  143. package/internals/hooks/useField/useField.utils.js +2 -1
  144. package/internals/hooks/useField/useFieldCharacterEditing.d.ts +4 -4
  145. package/internals/hooks/useField/useFieldState.d.ts +4 -4
  146. package/internals/hooks/useField/useFieldState.js +3 -3
  147. package/internals/hooks/useField/useFieldV7TextField.js +2 -2
  148. package/internals/hooks/useMobilePicker/useMobilePicker.d.ts +1 -2
  149. package/internals/hooks/useMobilePicker/useMobilePicker.js +23 -18
  150. package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +12 -12
  151. package/internals/hooks/usePicker/usePicker.d.ts +2 -2
  152. package/internals/hooks/usePicker/usePicker.js +12 -4
  153. package/internals/hooks/usePicker/usePicker.types.d.ts +7 -5
  154. package/internals/hooks/usePicker/usePickerLayoutProps.d.ts +2 -3
  155. package/internals/hooks/usePicker/usePickerOwnerState.d.ts +4 -3
  156. package/internals/hooks/usePicker/usePickerOwnerState.js +9 -6
  157. package/internals/hooks/usePicker/usePickerProvider.d.ts +10 -0
  158. package/internals/hooks/usePicker/usePickerProvider.js +21 -0
  159. package/internals/hooks/usePicker/usePickerValue.d.ts +2 -2
  160. package/internals/hooks/usePicker/usePickerValue.js +2 -7
  161. package/internals/hooks/usePicker/usePickerValue.types.d.ts +32 -34
  162. package/internals/hooks/usePicker/usePickerViews.d.ts +6 -11
  163. package/internals/hooks/usePickerPrivateContext.d.ts +4 -0
  164. package/internals/hooks/usePickerPrivateContext.js +9 -0
  165. package/internals/hooks/useStaticPicker/useStaticPicker.d.ts +1 -2
  166. package/internals/hooks/useStaticPicker/useStaticPicker.js +5 -4
  167. package/internals/hooks/useStaticPicker/useStaticPicker.types.d.ts +6 -6
  168. package/internals/hooks/useUtils.d.ts +7 -7
  169. package/internals/hooks/useValueWithTimezone.d.ts +5 -5
  170. package/internals/hooks/useViews.d.ts +3 -3
  171. package/internals/hooks/useViews.js +1 -1
  172. package/internals/index.d.ts +6 -4
  173. package/internals/index.js +2 -1
  174. package/internals/models/fields.d.ts +32 -7
  175. package/internals/models/formProps.d.ts +14 -0
  176. package/internals/models/helpers.d.ts +0 -4
  177. package/internals/models/index.d.ts +2 -0
  178. package/internals/models/index.js +3 -1
  179. package/internals/models/props/basePickerProps.d.ts +5 -6
  180. package/internals/models/props/{clock.d.ts → time.d.ts} +10 -17
  181. package/internals/models/props/toolbar.d.ts +2 -3
  182. package/internals/models/validation.d.ts +21 -25
  183. package/internals/models/value.d.ts +3 -0
  184. package/internals/models/value.js +1 -0
  185. package/internals/utils/date-time-utils.d.ts +7 -7
  186. package/internals/utils/date-utils.d.ts +16 -16
  187. package/internals/utils/getDefaultReferenceDate.d.ts +10 -10
  188. package/internals/utils/time-utils.d.ts +5 -5
  189. package/internals/utils/valueManagers.d.ts +3 -3
  190. package/locales/beBY.d.ts +3 -3
  191. package/locales/beBY.js +3 -3
  192. package/locales/bgBG.d.ts +3 -3
  193. package/locales/bgBG.js +3 -3
  194. package/locales/caES.d.ts +3 -3
  195. package/locales/caES.js +3 -3
  196. package/locales/csCZ.d.ts +3 -3
  197. package/locales/csCZ.js +3 -3
  198. package/locales/daDK.d.ts +3 -3
  199. package/locales/daDK.js +3 -3
  200. package/locales/deDE.d.ts +3 -3
  201. package/locales/deDE.js +3 -3
  202. package/locales/elGR.d.ts +3 -3
  203. package/locales/elGR.js +12 -13
  204. package/locales/enUS.d.ts +4 -4
  205. package/locales/enUS.js +3 -3
  206. package/locales/esES.d.ts +3 -3
  207. package/locales/esES.js +3 -3
  208. package/locales/eu.d.ts +3 -3
  209. package/locales/eu.js +3 -3
  210. package/locales/faIR.d.ts +3 -3
  211. package/locales/faIR.js +3 -3
  212. package/locales/fiFI.d.ts +3 -3
  213. package/locales/fiFI.js +3 -3
  214. package/locales/frFR.d.ts +3 -3
  215. package/locales/frFR.js +3 -3
  216. package/locales/heIL.d.ts +3 -3
  217. package/locales/heIL.js +3 -3
  218. package/locales/hrHR.d.ts +3 -3
  219. package/locales/hrHR.js +3 -3
  220. package/locales/huHU.d.ts +3 -3
  221. package/locales/huHU.js +3 -3
  222. package/locales/isIS.d.ts +3 -3
  223. package/locales/isIS.js +3 -3
  224. package/locales/itIT.d.ts +3 -3
  225. package/locales/itIT.js +3 -3
  226. package/locales/jaJP.d.ts +3 -3
  227. package/locales/jaJP.js +3 -3
  228. package/locales/koKR.d.ts +3 -3
  229. package/locales/koKR.js +3 -3
  230. package/locales/kzKZ.d.ts +3 -3
  231. package/locales/kzKZ.js +3 -3
  232. package/locales/mk.d.ts +3 -3
  233. package/locales/mk.js +3 -3
  234. package/locales/nbNO.d.ts +3 -3
  235. package/locales/nbNO.js +3 -3
  236. package/locales/nlNL.d.ts +3 -3
  237. package/locales/nlNL.js +3 -3
  238. package/locales/nnNO.d.ts +3 -3
  239. package/locales/nnNO.js +3 -3
  240. package/locales/plPL.d.ts +3 -3
  241. package/locales/plPL.js +3 -3
  242. package/locales/ptBR.d.ts +3 -3
  243. package/locales/ptBR.js +5 -3
  244. package/locales/ptPT.d.ts +3 -3
  245. package/locales/ptPT.js +3 -3
  246. package/locales/roRO.d.ts +3 -3
  247. package/locales/roRO.js +3 -3
  248. package/locales/ruRU.d.ts +3 -3
  249. package/locales/ruRU.js +3 -3
  250. package/locales/skSK.d.ts +3 -3
  251. package/locales/skSK.js +3 -3
  252. package/locales/svSE.d.ts +3 -3
  253. package/locales/svSE.js +3 -3
  254. package/locales/trTR.d.ts +3 -3
  255. package/locales/trTR.js +3 -3
  256. package/locales/ukUA.d.ts +3 -3
  257. package/locales/ukUA.js +3 -3
  258. package/locales/urPK.d.ts +3 -3
  259. package/locales/urPK.js +3 -3
  260. package/locales/utils/getPickersLocalization.d.ts +9 -9
  261. package/locales/utils/getPickersLocalization.js +1 -1
  262. package/locales/utils/pickersLocaleTextApi.d.ts +12 -36
  263. package/locales/viVN.d.ts +3 -3
  264. package/locales/viVN.js +3 -3
  265. package/locales/zhCN.d.ts +3 -3
  266. package/locales/zhCN.js +3 -3
  267. package/locales/zhHK.d.ts +3 -3
  268. package/locales/zhHK.js +3 -3
  269. package/models/adapters.d.ts +151 -202
  270. package/models/fields.d.ts +9 -41
  271. package/models/pickers.d.ts +10 -6
  272. package/modern/DateCalendar/DateCalendar.js +20 -22
  273. package/modern/DateCalendar/DayCalendar.js +13 -10
  274. package/modern/DateField/DateField.js +8 -10
  275. package/modern/DatePicker/DatePicker.js +15 -14
  276. package/modern/DatePicker/DatePickerToolbar.js +12 -2
  277. package/modern/DateTimeField/DateTimeField.js +9 -12
  278. package/modern/DateTimePicker/DateTimePicker.js +16 -16
  279. package/modern/DateTimePicker/DateTimePickerTabs.js +2 -2
  280. package/modern/DateTimePicker/DateTimePickerToolbar.js +12 -2
  281. package/modern/DesktopDatePicker/DesktopDatePicker.js +17 -16
  282. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +18 -18
  283. package/modern/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +10 -0
  284. package/modern/DesktopTimePicker/DesktopTimePicker.js +11 -6
  285. package/modern/DigitalClock/DigitalClock.js +7 -6
  286. package/modern/MobileDatePicker/MobileDatePicker.js +17 -16
  287. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +18 -18
  288. package/modern/MobileTimePicker/MobileTimePicker.js +11 -6
  289. package/modern/MonthCalendar/MonthCalendar.js +17 -14
  290. package/modern/MonthCalendar/PickersMonth.js +17 -13
  291. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClock.js +7 -6
  292. package/modern/PickersActionBar/PickersActionBar.js +2 -2
  293. package/modern/PickersCalendarHeader/PickersCalendarHeader.js +2 -2
  294. package/modern/PickersLayout/PickersLayout.js +10 -0
  295. package/modern/PickersLayout/usePickerLayout.js +17 -18
  296. package/modern/StaticDatePicker/StaticDatePicker.js +14 -13
  297. package/modern/StaticDateTimePicker/StaticDateTimePicker.js +15 -15
  298. package/modern/StaticTimePicker/StaticTimePicker.js +8 -3
  299. package/modern/TimeClock/Clock.js +3 -3
  300. package/modern/TimeClock/TimeClock.js +7 -6
  301. package/modern/TimeField/TimeField.js +6 -6
  302. package/modern/TimePicker/TimePicker.js +9 -4
  303. package/modern/TimePicker/TimePickerToolbar.js +12 -2
  304. package/modern/YearCalendar/PickersYear.js +17 -13
  305. package/modern/YearCalendar/YearCalendar.js +17 -14
  306. package/modern/hooks/index.js +2 -2
  307. package/modern/hooks/useClearableField.js +4 -3
  308. package/modern/hooks/useParsedFormat.js +2 -2
  309. package/modern/hooks/usePickerContext.js +15 -0
  310. package/{hooks/usePickersTranslations.js → modern/hooks/usePickerTranslations.js} +1 -1
  311. package/modern/index.js +1 -1
  312. package/modern/internals/components/PickerProvider.js +38 -0
  313. package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.js +21 -17
  314. package/modern/internals/hooks/useField/useField.js +1 -1
  315. package/modern/internals/hooks/useField/useField.utils.js +2 -1
  316. package/modern/internals/hooks/useField/useFieldState.js +3 -3
  317. package/modern/internals/hooks/useField/useFieldV7TextField.js +2 -2
  318. package/modern/internals/hooks/useMobilePicker/useMobilePicker.js +23 -18
  319. package/modern/internals/hooks/usePicker/usePicker.js +12 -4
  320. package/modern/internals/hooks/usePicker/usePickerOwnerState.js +9 -6
  321. package/modern/internals/hooks/usePicker/usePickerProvider.js +21 -0
  322. package/modern/internals/hooks/usePicker/usePickerValue.js +2 -7
  323. package/modern/internals/hooks/usePickerPrivateContext.js +9 -0
  324. package/modern/internals/hooks/useStaticPicker/useStaticPicker.js +5 -4
  325. package/modern/internals/hooks/useViews.js +1 -1
  326. package/modern/internals/index.js +2 -1
  327. package/modern/internals/models/formProps.js +1 -0
  328. package/modern/internals/models/index.js +3 -1
  329. package/modern/internals/models/props/time.js +1 -0
  330. package/modern/internals/models/value.js +1 -0
  331. package/modern/locales/beBY.js +3 -3
  332. package/modern/locales/bgBG.js +3 -3
  333. package/modern/locales/caES.js +3 -3
  334. package/modern/locales/csCZ.js +3 -3
  335. package/modern/locales/daDK.js +3 -3
  336. package/modern/locales/deDE.js +3 -3
  337. package/modern/locales/elGR.js +12 -13
  338. package/modern/locales/enUS.js +3 -3
  339. package/modern/locales/esES.js +3 -3
  340. package/modern/locales/eu.js +3 -3
  341. package/modern/locales/faIR.js +3 -3
  342. package/modern/locales/fiFI.js +3 -3
  343. package/modern/locales/frFR.js +3 -3
  344. package/modern/locales/heIL.js +3 -3
  345. package/modern/locales/hrHR.js +3 -3
  346. package/modern/locales/huHU.js +3 -3
  347. package/modern/locales/isIS.js +3 -3
  348. package/modern/locales/itIT.js +3 -3
  349. package/modern/locales/jaJP.js +3 -3
  350. package/modern/locales/koKR.js +3 -3
  351. package/modern/locales/kzKZ.js +3 -3
  352. package/modern/locales/mk.js +3 -3
  353. package/modern/locales/nbNO.js +3 -3
  354. package/modern/locales/nlNL.js +3 -3
  355. package/modern/locales/nnNO.js +3 -3
  356. package/modern/locales/plPL.js +3 -3
  357. package/modern/locales/ptBR.js +5 -3
  358. package/modern/locales/ptPT.js +3 -3
  359. package/modern/locales/roRO.js +3 -3
  360. package/modern/locales/ruRU.js +3 -3
  361. package/modern/locales/skSK.js +3 -3
  362. package/modern/locales/svSE.js +3 -3
  363. package/modern/locales/trTR.js +3 -3
  364. package/modern/locales/ukUA.js +3 -3
  365. package/modern/locales/urPK.js +3 -3
  366. package/modern/locales/utils/getPickersLocalization.js +1 -1
  367. package/modern/locales/viVN.js +3 -3
  368. package/modern/locales/zhCN.js +3 -3
  369. package/modern/locales/zhHK.js +3 -3
  370. package/modern/validation/useValidation.js +2 -3
  371. package/modern/validation/validateDate.js +5 -0
  372. package/modern/validation/validateDateTime.js +5 -0
  373. package/modern/validation/validateTime.js +5 -0
  374. package/node/DateCalendar/DateCalendar.js +20 -22
  375. package/node/DateCalendar/DayCalendar.js +13 -10
  376. package/node/DateField/DateField.js +8 -10
  377. package/node/DatePicker/DatePicker.js +15 -14
  378. package/node/DatePicker/DatePickerToolbar.js +12 -2
  379. package/node/DateTimeField/DateTimeField.js +9 -12
  380. package/node/DateTimePicker/DateTimePicker.js +16 -16
  381. package/node/DateTimePicker/DateTimePickerTabs.js +2 -2
  382. package/node/DateTimePicker/DateTimePickerToolbar.js +12 -2
  383. package/node/DesktopDatePicker/DesktopDatePicker.js +17 -16
  384. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +18 -18
  385. package/node/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +10 -0
  386. package/node/DesktopTimePicker/DesktopTimePicker.js +11 -6
  387. package/node/DigitalClock/DigitalClock.js +7 -6
  388. package/node/MobileDatePicker/MobileDatePicker.js +17 -16
  389. package/node/MobileDateTimePicker/MobileDateTimePicker.js +18 -18
  390. package/node/MobileTimePicker/MobileTimePicker.js +11 -6
  391. package/node/MonthCalendar/MonthCalendar.js +17 -14
  392. package/node/MonthCalendar/PickersMonth.js +17 -13
  393. package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.js +7 -6
  394. package/node/PickersActionBar/PickersActionBar.js +2 -2
  395. package/node/PickersCalendarHeader/PickersCalendarHeader.js +2 -2
  396. package/node/PickersLayout/PickersLayout.js +10 -0
  397. package/node/PickersLayout/usePickerLayout.js +17 -18
  398. package/node/StaticDatePicker/StaticDatePicker.js +14 -13
  399. package/node/StaticDateTimePicker/StaticDateTimePicker.js +15 -15
  400. package/node/StaticTimePicker/StaticTimePicker.js +8 -3
  401. package/node/TimeClock/Clock.js +3 -3
  402. package/node/TimeClock/TimeClock.js +7 -6
  403. package/node/TimeField/TimeField.js +6 -6
  404. package/node/TimePicker/TimePicker.js +9 -4
  405. package/node/TimePicker/TimePickerToolbar.js +12 -2
  406. package/node/YearCalendar/PickersYear.js +17 -13
  407. package/node/YearCalendar/YearCalendar.js +17 -14
  408. package/node/hooks/index.js +6 -6
  409. package/node/hooks/useClearableField.js +4 -3
  410. package/node/hooks/useParsedFormat.js +2 -2
  411. package/node/hooks/usePickerContext.js +21 -0
  412. package/node/hooks/usePickerTranslations.js +10 -0
  413. package/node/index.js +1 -1
  414. package/node/internals/components/PickerProvider.js +46 -0
  415. package/node/internals/hooks/useDesktopPicker/useDesktopPicker.js +21 -17
  416. package/node/internals/hooks/useField/useField.js +1 -1
  417. package/node/internals/hooks/useField/useField.utils.js +2 -1
  418. package/node/internals/hooks/useField/useFieldState.js +3 -3
  419. package/node/internals/hooks/useField/useFieldV7TextField.js +2 -2
  420. package/node/internals/hooks/useMobilePicker/useMobilePicker.js +23 -18
  421. package/node/internals/hooks/usePicker/usePicker.js +12 -4
  422. package/node/internals/hooks/usePicker/usePickerOwnerState.js +9 -6
  423. package/node/internals/hooks/usePicker/usePickerProvider.js +28 -0
  424. package/node/internals/hooks/usePicker/usePickerValue.js +1 -7
  425. package/node/internals/hooks/usePickerPrivateContext.js +15 -0
  426. package/node/internals/hooks/useStaticPicker/useStaticPicker.js +5 -4
  427. package/node/internals/hooks/useViews.js +3 -3
  428. package/node/internals/index.js +14 -7
  429. package/node/internals/models/index.js +22 -0
  430. package/node/internals/models/props/time.js +5 -0
  431. package/node/internals/models/value.js +5 -0
  432. package/node/locales/beBY.js +3 -3
  433. package/node/locales/bgBG.js +3 -3
  434. package/node/locales/caES.js +3 -3
  435. package/node/locales/csCZ.js +3 -3
  436. package/node/locales/daDK.js +3 -3
  437. package/node/locales/deDE.js +3 -3
  438. package/node/locales/elGR.js +12 -13
  439. package/node/locales/enUS.js +3 -3
  440. package/node/locales/esES.js +3 -3
  441. package/node/locales/eu.js +3 -3
  442. package/node/locales/faIR.js +3 -3
  443. package/node/locales/fiFI.js +3 -3
  444. package/node/locales/frFR.js +3 -3
  445. package/node/locales/heIL.js +3 -3
  446. package/node/locales/hrHR.js +3 -3
  447. package/node/locales/huHU.js +3 -3
  448. package/node/locales/isIS.js +3 -3
  449. package/node/locales/itIT.js +3 -3
  450. package/node/locales/jaJP.js +3 -3
  451. package/node/locales/koKR.js +3 -3
  452. package/node/locales/kzKZ.js +3 -3
  453. package/node/locales/mk.js +3 -3
  454. package/node/locales/nbNO.js +3 -3
  455. package/node/locales/nlNL.js +3 -3
  456. package/node/locales/nnNO.js +3 -3
  457. package/node/locales/plPL.js +3 -3
  458. package/node/locales/ptBR.js +5 -3
  459. package/node/locales/ptPT.js +3 -3
  460. package/node/locales/roRO.js +3 -3
  461. package/node/locales/ruRU.js +3 -3
  462. package/node/locales/skSK.js +3 -3
  463. package/node/locales/svSE.js +3 -3
  464. package/node/locales/trTR.js +3 -3
  465. package/node/locales/ukUA.js +3 -3
  466. package/node/locales/urPK.js +3 -3
  467. package/node/locales/utils/getPickersLocalization.js +1 -1
  468. package/node/locales/viVN.js +3 -3
  469. package/node/locales/zhCN.js +3 -3
  470. package/node/locales/zhHK.js +3 -3
  471. package/node/validation/useValidation.js +2 -3
  472. package/node/validation/validateDate.js +4 -0
  473. package/node/validation/validateDateTime.js +4 -0
  474. package/node/validation/validateTime.js +4 -0
  475. package/package.json +3 -3
  476. package/themeAugmentation/props.d.ts +28 -28
  477. package/timeViewRenderers/timeViewRenderers.d.ts +6 -6
  478. package/validation/extractValidationProps.d.ts +4 -4
  479. package/validation/useValidation.d.ts +9 -10
  480. package/validation/useValidation.js +2 -3
  481. package/validation/validateDate.d.ts +7 -2
  482. package/validation/validateDate.js +5 -0
  483. package/validation/validateDateTime.d.ts +10 -4
  484. package/validation/validateDateTime.js +5 -0
  485. package/validation/validateTime.d.ts +7 -2
  486. package/validation/validateTime.js +5 -0
  487. package/hooks/usePickersContext.d.ts +0 -4
  488. package/hooks/usePickersContext.js +0 -15
  489. package/hooks/usePickersTranslations.d.ts +0 -2
  490. package/internals/components/PickersProvider.js +0 -26
  491. package/modern/hooks/usePickersContext.js +0 -15
  492. package/modern/internals/components/PickersProvider.js +0 -26
  493. package/node/hooks/usePickersContext.js +0 -21
  494. package/node/hooks/usePickersTranslations.js +0 -10
  495. package/node/internals/components/PickersProvider.js +0 -34
  496. /package/internals/models/{props/clock.js → formProps.js} +0 -0
  497. /package/{modern/internals/models/props/clock.js → internals/models/props/time.js} +0 -0
  498. /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,15 @@ export const MonthCalendar = /*#__PURE__*/React.forwardRef(function MonthCalenda
99
98
  timezone: timezoneProp,
100
99
  value: valueProp,
101
100
  defaultValue,
102
- onChange: onChange,
101
+ onChange,
103
102
  valueManager: singleItemValueManager
104
103
  });
105
104
  const now = useNow(timezone);
106
105
  const isRtl = useRtl();
107
106
  const utils = useUtils();
107
+ const {
108
+ ownerState
109
+ } = usePickerPrivateContext();
108
110
  const referenceDate = React.useMemo(() => singleItemValueManager.getInitialReferenceValue({
109
111
  value,
110
112
  utils,
@@ -114,8 +116,7 @@ export const MonthCalendar = /*#__PURE__*/React.forwardRef(function MonthCalenda
114
116
  granularity: SECTION_TYPE_GRANULARITY.month
115
117
  }), [] // eslint-disable-line react-hooks/exhaustive-deps
116
118
  );
117
- const ownerState = props;
118
- const classes = useUtilityClasses(ownerState);
119
+ const classes = useUtilityClasses(classesProp);
119
120
  const todayMonth = React.useMemo(() => utils.getMonth(now), [utils, now]);
120
121
  const selectedMonth = React.useMemo(() => {
121
122
  if (value != null) {
@@ -252,7 +253,9 @@ process.env.NODE_ENV !== "production" ? MonthCalendar.propTypes = {
252
253
  */
253
254
  defaultValue: PropTypes.object,
254
255
  /**
255
- * If `true` picker is disabled
256
+ * If `true`, the component is disabled.
257
+ * When disabled, the value cannot be changed and no interaction is possible.
258
+ * @default false
256
259
  */
257
260
  disabled: PropTypes.bool,
258
261
  /**
@@ -289,14 +292,15 @@ process.env.NODE_ENV !== "production" ? MonthCalendar.propTypes = {
289
292
  monthsPerRow: PropTypes.oneOf([3, 4]),
290
293
  /**
291
294
  * Callback fired when the value changes.
292
- * @template TDate
293
- * @param {TDate} value The new value.
295
+ * @param {PickerValidDate} value The new value.
294
296
  */
295
297
  onChange: PropTypes.func,
296
298
  onFocusedViewChange: PropTypes.func,
297
299
  onMonthFocus: PropTypes.func,
298
300
  /**
299
- * If `true` picker is readonly
301
+ * If `true`, the component is read-only.
302
+ * When read-only, the value cannot be changed but the user can interact with the interface.
303
+ * @default false
300
304
  */
301
305
  readOnly: PropTypes.bool,
302
306
  /**
@@ -306,8 +310,7 @@ process.env.NODE_ENV !== "production" ? MonthCalendar.propTypes = {
306
310
  referenceDate: PropTypes.object,
307
311
  /**
308
312
  * Disable specific month.
309
- * @template TDate
310
- * @param {TDate} month The month to test.
313
+ * @param {PickerValidDate} month The month to test.
311
314
  * @returns {boolean} If `true`, the month will be disabled.
312
315
  */
313
316
  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";
@@ -104,7 +104,7 @@ export const MultiSectionDigitalClock = /*#__PURE__*/React.forwardRef(function M
104
104
  onChange,
105
105
  valueManager: singleItemValueManager
106
106
  });
107
- const translations = usePickersTranslations();
107
+ const translations = usePickerTranslations();
108
108
  const now = useNow(timezone);
109
109
  const timeSteps = React.useMemo(() => _extends({
110
110
  hours: 1,
@@ -368,7 +368,8 @@ process.env.NODE_ENV !== "production" ? MultiSectionDigitalClock.propTypes = {
368
368
  */
369
369
  defaultValue: PropTypes.object,
370
370
  /**
371
- * If `true`, the picker views and text field are disabled.
371
+ * If `true`, the component is disabled.
372
+ * When disabled, the value cannot be changed and no interaction is possible.
372
373
  * @default false
373
374
  */
374
375
  disabled: PropTypes.bool,
@@ -435,7 +436,8 @@ process.env.NODE_ENV !== "production" ? MultiSectionDigitalClock.propTypes = {
435
436
  */
436
437
  openTo: PropTypes.oneOf(['hours', 'meridiem', 'minutes', 'seconds']),
437
438
  /**
438
- * If `true`, the picker views and text field are read-only.
439
+ * If `true`, the component is read-only.
440
+ * When read-only, the value cannot be changed but the user can interact with the interface.
439
441
  * @default false
440
442
  */
441
443
  readOnly: PropTypes.bool,
@@ -446,8 +448,7 @@ process.env.NODE_ENV !== "production" ? MultiSectionDigitalClock.propTypes = {
446
448
  referenceDate: PropTypes.object,
447
449
  /**
448
450
  * Disable specific time.
449
- * @template TDate
450
- * @param {TDate} value The value to check.
451
+ * @param {PickerValidDate} value The value to check.
451
452
  * @param {TimeView} view The clock type of the timeValue.
452
453
  * @returns {boolean} If `true` the time will be disabled.
453
454
  */
@@ -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,6 +145,11 @@ process.env.NODE_ENV !== "production" ? PickersLayout.propTypes = {
145
145
  */
146
146
  classes: PropTypes.object,
147
147
  className: PropTypes.string,
148
+ /**
149
+ * If `true`, the component is disabled.
150
+ * When disabled, the value cannot be changed and no interaction is possible.
151
+ * @default false
152
+ */
148
153
  disabled: PropTypes.bool,
149
154
  isLandscape: PropTypes.bool.isRequired,
150
155
  /**
@@ -166,6 +171,11 @@ process.env.NODE_ENV !== "production" ? PickersLayout.propTypes = {
166
171
  * Force rendering in particular orientation.
167
172
  */
168
173
  orientation: PropTypes.oneOf(['landscape', 'portrait']),
174
+ /**
175
+ * If `true`, the component is read-only.
176
+ * When read-only, the value cannot be changed but the user can interact with the interface.
177
+ * @default false
178
+ */
169
179
  readOnly: PropTypes.bool,
170
180
  /**
171
181
  * The props used for each component slot.
@@ -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,
@@ -46,13 +49,18 @@ const usePickerLayout = props => {
46
49
  readOnly,
47
50
  children,
48
51
  slots,
49
- slotProps
52
+ slotProps,
53
+ classes: classesProp
50
54
  // TODO: Remove this "as" hack. It get introduced to mark `value` prop in PickersLayoutProps as not required.
51
55
  // The true type should be
52
- // - For pickers value: TDate | null
53
- // - For range pickers value: [TDate | null, TDate | null]
56
+ // - For pickers value: PickerValidDate | null
57
+ // - For range pickers value: [PickerValidDate | null, PickerValidDate | null]
54
58
  } = props;
55
- const classes = useUtilityClasses(props);
59
+ const ownerState = _extends({}, pickersOwnerState, {
60
+ wrapperVariant,
61
+ isLandscape
62
+ });
63
+ const classes = useUtilityClasses(classesProp, ownerState);
56
64
 
57
65
  // Action bar
58
66
  const ActionBar = slots?.actionBar ?? PickersActionBar;
@@ -67,9 +75,7 @@ const usePickerLayout = props => {
67
75
  actions: wrapperVariant === 'desktop' ? [] : ['cancel', 'accept']
68
76
  },
69
77
  className: classes.actionBar,
70
- ownerState: _extends({}, props, {
71
- wrapperVariant
72
- })
78
+ ownerState
73
79
  });
74
80
  const actionBar = /*#__PURE__*/_jsx(ActionBar, _extends({}, actionBarProps));
75
81
 
@@ -89,9 +95,7 @@ const usePickerLayout = props => {
89
95
  readOnly
90
96
  },
91
97
  className: classes.toolbar,
92
- ownerState: _extends({}, props, {
93
- wrapperVariant
94
- })
98
+ ownerState
95
99
  });
96
100
  const toolbar = toolbarHasView(toolbarProps) && !!Toolbar ? /*#__PURE__*/_jsx(Toolbar, _extends({}, toolbarProps)) : null;
97
101
 
@@ -117,12 +121,7 @@ const usePickerLayout = props => {
117
121
  onChange: onSelectShortcut
118
122
  },
119
123
  className: classes.shortcuts,
120
- ownerState: {
121
- isValid,
122
- isLandscape,
123
- onChange: onSelectShortcut,
124
- wrapperVariant
125
- }
124
+ ownerState
126
125
  });
127
126
  const shortcuts = view && !!Shortcuts ? /*#__PURE__*/_jsx(Shortcuts, _extends({}, shortcutsProps)) : null;
128
127
  return {
@@ -64,9 +64,9 @@ StaticDatePicker.propTypes = {
64
64
  className: PropTypes.string,
65
65
  /**
66
66
  * Formats the day of week displayed in the calendar header.
67
- * @param {TDate} date The date of the day of week provided by the adapter.
67
+ * @param {PickerValidDate} date The date of the day of week provided by the adapter.
68
68
  * @returns {string} The name to display.
69
- * @default (date: TDate) => adapter.format(date, 'weekdayShort').charAt(0).toUpperCase()
69
+ * @default (date: PickerValidDate) => adapter.format(date, 'weekdayShort').charAt(0).toUpperCase()
70
70
  */
71
71
  dayOfWeekFormatter: PropTypes.func,
72
72
  /**
@@ -75,7 +75,8 @@ StaticDatePicker.propTypes = {
75
75
  */
76
76
  defaultValue: PropTypes.object,
77
77
  /**
78
- * If `true`, the picker and text field are disabled.
78
+ * If `true`, the component is disabled.
79
+ * When disabled, the value cannot be changed and no interaction is possible.
79
80
  * @default false
80
81
  */
81
82
  disabled: PropTypes.bool,
@@ -168,8 +169,7 @@ StaticDatePicker.propTypes = {
168
169
  onError: PropTypes.func,
169
170
  /**
170
171
  * Callback fired on month change.
171
- * @template TDate
172
- * @param {TDate} month The new month.
172
+ * @param {PickerValidDate} month The new month.
173
173
  */
174
174
  onMonthChange: PropTypes.func,
175
175
  /**
@@ -180,8 +180,7 @@ StaticDatePicker.propTypes = {
180
180
  onViewChange: PropTypes.func,
181
181
  /**
182
182
  * Callback fired on year change.
183
- * @template TDate
184
- * @param {TDate} year The new year.
183
+ * @param {PickerValidDate} year The new year.
185
184
  */
186
185
  onYearChange: PropTypes.func,
187
186
  /**
@@ -194,6 +193,11 @@ StaticDatePicker.propTypes = {
194
193
  * Force rendering in particular orientation.
195
194
  */
196
195
  orientation: PropTypes.oneOf(['landscape', 'portrait']),
196
+ /**
197
+ * If `true`, the component is read-only.
198
+ * When read-only, the value cannot be changed but the user can interact with the interface.
199
+ * @default false
200
+ */
197
201
  readOnly: PropTypes.bool,
198
202
  /**
199
203
  * If `true`, disable heavy animations.
@@ -216,22 +220,19 @@ StaticDatePicker.propTypes = {
216
220
  *
217
221
  * 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.
218
222
  *
219
- * @template TDate
220
- * @param {TDate} day The date to test.
223
+ * @param {PickerValidDate} day The date to test.
221
224
  * @returns {boolean} If `true` the date will be disabled.
222
225
  */
223
226
  shouldDisableDate: PropTypes.func,
224
227
  /**
225
228
  * Disable specific month.
226
- * @template TDate
227
- * @param {TDate} month The month to test.
229
+ * @param {PickerValidDate} month The month to test.
228
230
  * @returns {boolean} If `true`, the month will be disabled.
229
231
  */
230
232
  shouldDisableMonth: PropTypes.func,
231
233
  /**
232
234
  * Disable specific year.
233
- * @template TDate
234
- * @param {TDate} year The year to test.
235
+ * @param {PickerValidDate} year The year to test.
235
236
  * @returns {boolean} If `true`, the year will be disabled.
236
237
  */
237
238
  shouldDisableYear: PropTypes.func,