@mui/x-date-pickers 6.5.0 → 6.7.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 (343) hide show
  1. package/AdapterDateFns/AdapterDateFns.d.ts +6 -0
  2. package/AdapterDateFns/AdapterDateFns.js +38 -19
  3. package/AdapterDateFnsJalali/AdapterDateFnsJalali.d.ts +6 -0
  4. package/AdapterDateFnsJalali/AdapterDateFnsJalali.js +35 -16
  5. package/AdapterDayjs/AdapterDayjs.d.ts +14 -1
  6. package/AdapterDayjs/AdapterDayjs.js +143 -25
  7. package/AdapterLuxon/AdapterLuxon.d.ts +7 -1
  8. package/AdapterLuxon/AdapterLuxon.js +78 -28
  9. package/AdapterMoment/AdapterMoment.d.ts +12 -1
  10. package/AdapterMoment/AdapterMoment.js +103 -13
  11. package/AdapterMomentHijri/AdapterMomentHijri.d.ts +4 -0
  12. package/AdapterMomentHijri/AdapterMomentHijri.js +30 -19
  13. package/AdapterMomentJalaali/AdapterMomentJalaali.d.ts +4 -0
  14. package/AdapterMomentJalaali/AdapterMomentJalaali.js +30 -19
  15. package/CHANGELOG.md +150 -2
  16. package/DateCalendar/DateCalendar.js +2 -2
  17. package/DateCalendar/DayCalendar.d.ts +1 -1
  18. package/DateCalendar/PickersCalendarHeader.d.ts +1 -1
  19. package/DateCalendar/PickersCalendarHeader.js +2 -2
  20. package/DateCalendar/PickersFadeTransitionGroup.d.ts +1 -1
  21. package/DateCalendar/PickersSlideTransition.d.ts +1 -1
  22. package/DateField/DateField.js +6 -0
  23. package/DateField/DateField.types.d.ts +1 -1
  24. package/DatePicker/DatePickerToolbar.js +6 -15
  25. package/DatePicker/shared.d.ts +1 -5
  26. package/DatePicker/shared.js +1 -16
  27. package/DateTimeField/DateTimeField.js +6 -0
  28. package/DateTimeField/DateTimeField.types.d.ts +1 -1
  29. package/DateTimePicker/DateTimePicker.js +19 -2
  30. package/DateTimePicker/DateTimePicker.types.d.ts +4 -3
  31. package/DateTimePicker/DateTimePickerTabs.d.ts +3 -3
  32. package/DateTimePicker/DateTimePickerTabs.js +6 -5
  33. package/DateTimePicker/DateTimePickerToolbar.d.ts +5 -4
  34. package/DateTimePicker/DateTimePickerToolbar.js +46 -22
  35. package/DateTimePicker/shared.d.ts +6 -6
  36. package/DayCalendarSkeleton/DayCalendarSkeleton.d.ts +1 -1
  37. package/DesktopDatePicker/DesktopDatePicker.js +5 -4
  38. package/DesktopDateTimePicker/DesktopDateTimePicker.js +58 -11
  39. package/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +10 -3
  40. package/DesktopTimePicker/DesktopTimePicker.js +7 -3
  41. package/LocalizationProvider/LocalizationProvider.js +1 -0
  42. package/MobileDatePicker/MobileDatePicker.js +3 -2
  43. package/MobileDateTimePicker/MobileDateTimePicker.js +5 -1
  44. package/MobileDateTimePicker/MobileDateTimePicker.types.d.ts +8 -7
  45. package/MobileTimePicker/MobileTimePicker.js +5 -1
  46. package/MonthCalendar/MonthCalendar.js +2 -2
  47. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +4 -3
  48. package/PickersActionBar/PickersActionBar.d.ts +2 -2
  49. package/PickersLayout/PickersLayout.d.ts +1 -1
  50. package/PickersShortcuts/PickersShortcuts.d.ts +2 -2
  51. package/README.md +5 -5
  52. package/StaticDateTimePicker/StaticDateTimePicker.types.d.ts +1 -1
  53. package/TimeClock/Clock.d.ts +1 -1
  54. package/TimeClock/ClockNumber.d.ts +1 -1
  55. package/TimeClock/ClockNumbers.d.ts +2 -2
  56. package/TimeClock/ClockPointer.d.ts +1 -1
  57. package/TimeField/TimeField.js +6 -0
  58. package/TimeField/TimeField.types.d.ts +1 -1
  59. package/TimePicker/TimePickerToolbar.d.ts +2 -2
  60. package/TimePicker/shared.d.ts +1 -1
  61. package/YearCalendar/YearCalendar.js +2 -2
  62. package/dateTimeViewRenderers/dateTimeViewRenderers.d.ts +13 -0
  63. package/dateTimeViewRenderers/dateTimeViewRenderers.js +148 -0
  64. package/dateTimeViewRenderers/index.d.ts +2 -0
  65. package/dateTimeViewRenderers/index.js +1 -0
  66. package/dateTimeViewRenderers/package.json +6 -0
  67. package/dateViewRenderers/dateViewRenderers.d.ts +3 -2
  68. package/dateViewRenderers/dateViewRenderers.js +2 -2
  69. package/icons/index.d.ts +42 -0
  70. package/{internals/components/icons → icons}/index.js +7 -7
  71. package/icons/package.json +6 -0
  72. package/index.d.ts +1 -0
  73. package/index.js +3 -2
  74. package/internals/components/DateTimeViewWrapper/DateTimeViewWrapper.d.ts +2 -0
  75. package/internals/components/DateTimeViewWrapper/DateTimeViewWrapper.js +5 -0
  76. package/internals/components/DateTimeViewWrapper/index.d.ts +1 -0
  77. package/internals/components/DateTimeViewWrapper/index.js +1 -0
  78. package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +3 -3
  79. package/internals/components/PickersModalDialog.d.ts +1 -1
  80. package/internals/components/PickersPopper.d.ts +1 -1
  81. package/internals/components/PickersToolbarButton.d.ts +1 -0
  82. package/internals/components/PickersToolbarButton.js +8 -3
  83. package/internals/constants/dimensions.d.ts +1 -0
  84. package/internals/constants/dimensions.js +2 -1
  85. package/internals/demo/DemoContainer.d.ts +2 -2
  86. package/internals/hooks/useDesktopPicker/useDesktopPicker.d.ts +2 -2
  87. package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +2 -2
  88. package/internals/hooks/useField/useField.d.ts +1 -1
  89. package/internals/hooks/useField/useField.js +8 -3
  90. package/internals/hooks/useField/useField.types.d.ts +8 -2
  91. package/internals/hooks/useField/useFieldState.d.ts +1 -1
  92. package/internals/hooks/useField/useFieldState.js +22 -2
  93. package/internals/hooks/useMobilePicker/useMobilePicker.d.ts +2 -2
  94. package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +2 -2
  95. package/internals/hooks/usePicker/usePickerValue.types.d.ts +32 -2
  96. package/internals/hooks/usePicker/usePickerViews.js +8 -10
  97. package/internals/hooks/useStaticPicker/useStaticPicker.d.ts +2 -2
  98. package/internals/hooks/useViews.js +10 -9
  99. package/internals/index.d.ts +2 -1
  100. package/internals/index.js +2 -1
  101. package/internals/models/fields.d.ts +1 -1
  102. package/internals/utils/date-time-utils.d.ts +6 -0
  103. package/internals/utils/date-time-utils.js +41 -0
  104. package/internals/utils/date-utils.d.ts +8 -1
  105. package/internals/utils/date-utils.js +35 -0
  106. package/internals/utils/fields.js +1 -1
  107. package/internals/utils/getDefaultReferenceDate.d.ts +15 -0
  108. package/internals/utils/getDefaultReferenceDate.js +62 -0
  109. package/internals/utils/time-utils.d.ts +8 -2
  110. package/internals/utils/time-utils.js +28 -0
  111. package/internals/utils/validation/extractValidationProps.d.ts +1 -1
  112. package/internals/utils/valueManagers.js +21 -3
  113. package/internals/utils/views.d.ts +2 -3
  114. package/internals/utils/views.js +6 -2
  115. package/legacy/AdapterDateFns/AdapterDateFns.js +38 -19
  116. package/legacy/AdapterDateFnsJalali/AdapterDateFnsJalali.js +35 -16
  117. package/legacy/AdapterDayjs/AdapterDayjs.js +147 -25
  118. package/legacy/AdapterLuxon/AdapterLuxon.js +78 -28
  119. package/legacy/AdapterMoment/AdapterMoment.js +109 -17
  120. package/legacy/AdapterMomentHijri/AdapterMomentHijri.js +30 -19
  121. package/legacy/AdapterMomentJalaali/AdapterMomentJalaali.js +30 -19
  122. package/legacy/DateCalendar/DateCalendar.js +2 -2
  123. package/legacy/DateCalendar/PickersCalendarHeader.js +2 -2
  124. package/legacy/DateField/DateField.js +6 -0
  125. package/legacy/DatePicker/DatePickerToolbar.js +6 -15
  126. package/legacy/DatePicker/shared.js +1 -15
  127. package/legacy/DateTimeField/DateTimeField.js +6 -0
  128. package/legacy/DateTimePicker/DateTimePicker.js +19 -2
  129. package/legacy/DateTimePicker/DateTimePickerTabs.js +6 -5
  130. package/legacy/DateTimePicker/DateTimePickerToolbar.js +51 -23
  131. package/legacy/DesktopDatePicker/DesktopDatePicker.js +5 -4
  132. package/legacy/DesktopDateTimePicker/DesktopDateTimePicker.js +59 -11
  133. package/legacy/DesktopTimePicker/DesktopTimePicker.js +7 -3
  134. package/legacy/LocalizationProvider/LocalizationProvider.js +1 -0
  135. package/legacy/MobileDatePicker/MobileDatePicker.js +3 -2
  136. package/legacy/MobileDateTimePicker/MobileDateTimePicker.js +5 -1
  137. package/legacy/MobileTimePicker/MobileTimePicker.js +5 -1
  138. package/legacy/MonthCalendar/MonthCalendar.js +2 -2
  139. package/legacy/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +4 -3
  140. package/legacy/TimeField/TimeField.js +6 -0
  141. package/legacy/YearCalendar/YearCalendar.js +2 -2
  142. package/legacy/dateTimeViewRenderers/dateTimeViewRenderers.js +147 -0
  143. package/legacy/dateTimeViewRenderers/index.js +1 -0
  144. package/legacy/dateViewRenderers/dateViewRenderers.js +2 -4
  145. package/legacy/{internals/components/icons → icons}/index.js +7 -7
  146. package/legacy/index.js +3 -2
  147. package/legacy/internals/components/DateTimeViewWrapper/DateTimeViewWrapper.js +5 -0
  148. package/legacy/internals/components/DateTimeViewWrapper/index.js +1 -0
  149. package/legacy/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +3 -3
  150. package/legacy/internals/components/PickersToolbarButton.js +7 -2
  151. package/legacy/internals/constants/dimensions.js +2 -1
  152. package/legacy/internals/hooks/useField/useField.js +8 -3
  153. package/legacy/internals/hooks/useField/useFieldState.js +22 -2
  154. package/legacy/internals/hooks/usePicker/usePickerViews.js +4 -4
  155. package/legacy/internals/hooks/useViews.js +10 -9
  156. package/legacy/internals/index.js +2 -1
  157. package/legacy/internals/utils/date-time-utils.js +39 -0
  158. package/legacy/internals/utils/date-utils.js +38 -0
  159. package/legacy/internals/utils/fields.js +1 -1
  160. package/legacy/internals/utils/getDefaultReferenceDate.js +64 -0
  161. package/legacy/internals/utils/time-utils.js +29 -0
  162. package/legacy/internals/utils/valueManagers.js +20 -4
  163. package/legacy/internals/utils/views.js +7 -5
  164. package/legacy/locales/deDE.js +2 -2
  165. package/legacy/locales/index.js +17 -15
  166. package/legacy/locales/roRO.js +81 -0
  167. package/legacy/locales/viVN.js +93 -0
  168. package/legacy/models/index.js +1 -0
  169. package/legacy/models/timezone.js +1 -0
  170. package/legacy/tests/describeGregorianAdapter/describeGregorianAdapter.js +16 -1
  171. package/legacy/tests/describeGregorianAdapter/testCalculations.js +349 -79
  172. package/legacy/tests/describeGregorianAdapter/testLocalization.js +3 -3
  173. package/legacy/tests/describeValidation/testDayViewValidation.js +129 -52
  174. package/legacy/tests/describeValidation/testMinutesViewValidation.js +3 -10
  175. package/legacy/tests/describeValidation/testMonthViewValidation.js +3 -10
  176. package/legacy/tests/describeValidation/testYearViewValidation.js +3 -10
  177. package/legacy/tests/describeValue/describeValue.js +12 -5
  178. package/legacy/tests/describeValue/testControlledUnControlled.js +19 -4
  179. package/legacy/tests/describeValue/testPickerActionBar.js +12 -10
  180. package/legacy/tests/describeValue/testPickerOpenCloseLifeCycle.js +10 -7
  181. package/legacy/timeViewRenderers/timeViewRenderers.js +1 -1
  182. package/locales/deDE.js +2 -2
  183. package/locales/index.d.ts +17 -15
  184. package/locales/index.js +17 -15
  185. package/locales/roRO.d.ts +53 -0
  186. package/locales/roRO.js +63 -0
  187. package/locales/viVN.d.ts +53 -0
  188. package/locales/viVN.js +57 -0
  189. package/models/adapters.d.ts +187 -46
  190. package/models/fields.d.ts +1 -1
  191. package/models/index.d.ts +1 -0
  192. package/models/index.js +1 -0
  193. package/models/timezone.d.ts +1 -0
  194. package/models/timezone.js +1 -0
  195. package/modern/AdapterDateFns/AdapterDateFns.js +38 -19
  196. package/modern/AdapterDateFnsJalali/AdapterDateFnsJalali.js +35 -16
  197. package/modern/AdapterDayjs/AdapterDayjs.js +142 -25
  198. package/modern/AdapterLuxon/AdapterLuxon.js +77 -28
  199. package/modern/AdapterMoment/AdapterMoment.js +102 -13
  200. package/modern/AdapterMomentHijri/AdapterMomentHijri.js +30 -19
  201. package/modern/AdapterMomentJalaali/AdapterMomentJalaali.js +30 -19
  202. package/modern/DateCalendar/DateCalendar.js +2 -2
  203. package/modern/DateCalendar/PickersCalendarHeader.js +2 -2
  204. package/modern/DateField/DateField.js +6 -0
  205. package/modern/DatePicker/DatePickerToolbar.js +6 -15
  206. package/modern/DatePicker/shared.js +1 -16
  207. package/modern/DateTimeField/DateTimeField.js +6 -0
  208. package/modern/DateTimePicker/DateTimePicker.js +19 -2
  209. package/modern/DateTimePicker/DateTimePickerTabs.js +6 -5
  210. package/modern/DateTimePicker/DateTimePickerToolbar.js +46 -22
  211. package/modern/DesktopDatePicker/DesktopDatePicker.js +5 -4
  212. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +57 -10
  213. package/modern/DesktopTimePicker/DesktopTimePicker.js +7 -3
  214. package/modern/LocalizationProvider/LocalizationProvider.js +1 -0
  215. package/modern/MobileDatePicker/MobileDatePicker.js +3 -2
  216. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +5 -1
  217. package/modern/MobileTimePicker/MobileTimePicker.js +5 -1
  218. package/modern/MonthCalendar/MonthCalendar.js +2 -2
  219. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +4 -3
  220. package/modern/TimeField/TimeField.js +6 -0
  221. package/modern/YearCalendar/YearCalendar.js +2 -2
  222. package/modern/dateTimeViewRenderers/dateTimeViewRenderers.js +147 -0
  223. package/modern/dateTimeViewRenderers/index.js +1 -0
  224. package/modern/dateViewRenderers/dateViewRenderers.js +2 -2
  225. package/modern/{internals/components/icons → icons}/index.js +7 -7
  226. package/modern/index.js +3 -2
  227. package/modern/internals/components/DateTimeViewWrapper/DateTimeViewWrapper.js +5 -0
  228. package/modern/internals/components/DateTimeViewWrapper/index.js +1 -0
  229. package/modern/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +3 -3
  230. package/modern/internals/components/PickersToolbarButton.js +8 -3
  231. package/modern/internals/constants/dimensions.js +2 -1
  232. package/modern/internals/hooks/useField/useField.js +8 -3
  233. package/modern/internals/hooks/useField/useFieldState.js +22 -2
  234. package/modern/internals/hooks/usePicker/usePickerViews.js +8 -10
  235. package/modern/internals/hooks/useViews.js +10 -9
  236. package/modern/internals/index.js +2 -1
  237. package/modern/internals/utils/date-time-utils.js +41 -0
  238. package/modern/internals/utils/date-utils.js +35 -0
  239. package/modern/internals/utils/fields.js +1 -1
  240. package/modern/internals/utils/getDefaultReferenceDate.js +58 -0
  241. package/modern/internals/utils/time-utils.js +28 -0
  242. package/modern/internals/utils/valueManagers.js +21 -3
  243. package/modern/internals/utils/views.js +6 -2
  244. package/modern/locales/deDE.js +2 -2
  245. package/modern/locales/index.js +17 -15
  246. package/modern/locales/roRO.js +60 -0
  247. package/modern/locales/viVN.js +57 -0
  248. package/modern/models/index.js +1 -0
  249. package/modern/models/timezone.js +1 -0
  250. package/modern/tests/describeGregorianAdapter/describeGregorianAdapter.js +13 -1
  251. package/modern/tests/describeGregorianAdapter/testCalculations.js +347 -79
  252. package/modern/tests/describeGregorianAdapter/testLocalization.js +3 -3
  253. package/modern/tests/describeValidation/testDayViewValidation.js +129 -52
  254. package/modern/tests/describeValidation/testMinutesViewValidation.js +3 -10
  255. package/modern/tests/describeValidation/testMonthViewValidation.js +3 -10
  256. package/modern/tests/describeValidation/testYearViewValidation.js +3 -10
  257. package/modern/tests/describeValue/describeValue.js +13 -4
  258. package/modern/tests/describeValue/testControlledUnControlled.js +15 -4
  259. package/modern/tests/describeValue/testPickerActionBar.js +19 -17
  260. package/modern/tests/describeValue/testPickerOpenCloseLifeCycle.js +10 -7
  261. package/modern/timeViewRenderers/timeViewRenderers.js +1 -1
  262. package/node/AdapterDateFns/AdapterDateFns.js +38 -19
  263. package/node/AdapterDateFnsJalali/AdapterDateFnsJalali.js +35 -16
  264. package/node/AdapterDayjs/AdapterDayjs.js +142 -25
  265. package/node/AdapterLuxon/AdapterLuxon.js +77 -28
  266. package/node/AdapterMoment/AdapterMoment.js +102 -13
  267. package/node/AdapterMomentHijri/AdapterMomentHijri.js +30 -19
  268. package/node/AdapterMomentJalaali/AdapterMomentJalaali.js +30 -19
  269. package/node/DateCalendar/DateCalendar.js +2 -2
  270. package/node/DateCalendar/PickersCalendarHeader.js +2 -2
  271. package/node/DateField/DateField.js +6 -0
  272. package/node/DatePicker/DatePickerToolbar.js +6 -15
  273. package/node/DatePicker/shared.js +0 -17
  274. package/node/DateTimeField/DateTimeField.js +6 -0
  275. package/node/DateTimePicker/DateTimePicker.js +19 -2
  276. package/node/DateTimePicker/DateTimePickerTabs.js +6 -5
  277. package/node/DateTimePicker/DateTimePickerToolbar.js +46 -22
  278. package/node/DesktopDatePicker/DesktopDatePicker.js +4 -3
  279. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +59 -12
  280. package/node/DesktopTimePicker/DesktopTimePicker.js +9 -5
  281. package/node/LocalizationProvider/LocalizationProvider.js +1 -0
  282. package/node/MobileDatePicker/MobileDatePicker.js +2 -1
  283. package/node/MobileDateTimePicker/MobileDateTimePicker.js +7 -3
  284. package/node/MobileTimePicker/MobileTimePicker.js +7 -3
  285. package/node/MonthCalendar/MonthCalendar.js +2 -2
  286. package/node/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +3 -2
  287. package/node/TimeField/TimeField.js +6 -0
  288. package/node/YearCalendar/YearCalendar.js +2 -2
  289. package/node/dateTimeViewRenderers/dateTimeViewRenderers.js +156 -0
  290. package/node/dateTimeViewRenderers/index.js +12 -0
  291. package/node/dateViewRenderers/dateViewRenderers.js +3 -3
  292. package/node/{internals/components/icons → icons}/index.js +15 -15
  293. package/node/index.js +13 -1
  294. package/node/internals/components/DateTimeViewWrapper/DateTimeViewWrapper.js +12 -0
  295. package/node/internals/components/DateTimeViewWrapper/index.js +12 -0
  296. package/node/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +3 -3
  297. package/node/internals/components/PickersToolbarButton.js +8 -3
  298. package/node/internals/constants/dimensions.js +4 -2
  299. package/node/internals/hooks/useField/useField.js +8 -3
  300. package/node/internals/hooks/useField/useFieldState.js +22 -2
  301. package/node/internals/hooks/usePicker/usePickerViews.js +8 -10
  302. package/node/internals/hooks/useViews.js +10 -9
  303. package/node/internals/index.js +13 -0
  304. package/node/internals/utils/date-time-utils.js +49 -0
  305. package/node/internals/utils/date-utils.js +40 -2
  306. package/node/internals/utils/fields.js +1 -1
  307. package/node/internals/utils/getDefaultReferenceDate.js +66 -0
  308. package/node/internals/utils/time-utils.js +32 -2
  309. package/node/internals/utils/valueManagers.js +21 -2
  310. package/node/internals/utils/views.js +8 -5
  311. package/node/locales/deDE.js +2 -2
  312. package/node/locales/index.js +119 -97
  313. package/node/locales/roRO.js +67 -0
  314. package/node/locales/viVN.js +64 -0
  315. package/node/models/index.js +11 -0
  316. package/node/models/timezone.js +5 -0
  317. package/node/tests/describeGregorianAdapter/describeGregorianAdapter.js +13 -1
  318. package/node/tests/describeGregorianAdapter/testCalculations.js +347 -79
  319. package/node/tests/describeGregorianAdapter/testLocalization.js +3 -4
  320. package/node/tests/describeValidation/testDayViewValidation.js +129 -52
  321. package/node/tests/describeValidation/testMinutesViewValidation.js +3 -10
  322. package/node/tests/describeValidation/testMonthViewValidation.js +3 -10
  323. package/node/tests/describeValidation/testYearViewValidation.js +3 -10
  324. package/node/tests/describeValue/describeValue.js +13 -4
  325. package/node/tests/describeValue/testControlledUnControlled.js +15 -4
  326. package/node/tests/describeValue/testPickerActionBar.js +19 -16
  327. package/node/tests/describeValue/testPickerOpenCloseLifeCycle.js +9 -6
  328. package/node/timeViewRenderers/timeViewRenderers.js +1 -1
  329. package/package.json +4 -4
  330. package/tests/describeGregorianAdapter/describeGregorianAdapter.js +14 -1
  331. package/tests/describeGregorianAdapter/testCalculations.js +347 -79
  332. package/tests/describeGregorianAdapter/testLocalization.js +3 -3
  333. package/tests/describeValidation/testDayViewValidation.js +129 -52
  334. package/tests/describeValidation/testMinutesViewValidation.js +3 -10
  335. package/tests/describeValidation/testMonthViewValidation.js +3 -10
  336. package/tests/describeValidation/testYearViewValidation.js +3 -10
  337. package/tests/describeValue/describeValue.js +13 -4
  338. package/tests/describeValue/testControlledUnControlled.js +15 -4
  339. package/tests/describeValue/testPickerActionBar.js +19 -17
  340. package/tests/describeValue/testPickerOpenCloseLifeCycle.js +10 -7
  341. package/timeViewRenderers/timeViewRenderers.d.ts +4 -4
  342. package/timeViewRenderers/timeViewRenderers.js +1 -1
  343. package/internals/components/icons/index.d.ts +0 -42
@@ -101,34 +101,36 @@ const formatTokenMap = {
101
101
  ss: 'seconds'
102
102
  };
103
103
  const defaultFormats = {
104
- normalDateWithWeekday: 'ddd, MMM D',
105
- normalDate: 'D MMMM',
106
- shortDate: 'MMM D',
107
- monthAndDate: 'MMMM D',
108
- dayOfMonth: 'D',
109
104
  year: 'YYYY',
110
105
  month: 'MMMM',
111
106
  monthShort: 'MMM',
112
- monthAndYear: 'MMMM YYYY',
107
+ dayOfMonth: 'D',
113
108
  weekday: 'dddd',
114
109
  weekdayShort: 'ddd',
115
- minutes: 'mm',
116
- hours12h: 'hh',
117
110
  hours24h: 'HH',
111
+ hours12h: 'hh',
112
+ meridiem: 'A',
113
+ minutes: 'mm',
118
114
  seconds: 'ss',
115
+ fullDate: 'll',
116
+ fullDateWithWeekday: 'dddd, LL',
117
+ keyboardDate: 'L',
118
+ shortDate: 'MMM D',
119
+ normalDate: 'D MMMM',
120
+ normalDateWithWeekday: 'ddd, MMM D',
121
+ monthAndYear: 'MMMM YYYY',
122
+ monthAndDate: 'MMMM D',
119
123
  fullTime: 'LT',
120
124
  fullTime12h: 'hh:mm A',
121
125
  fullTime24h: 'HH:mm',
122
- fullDate: 'll',
123
- fullDateWithWeekday: 'dddd, LL',
124
126
  fullDateTime: 'lll',
125
127
  fullDateTime12h: 'll hh:mm A',
126
128
  fullDateTime24h: 'll HH:mm',
127
- keyboardDate: 'L',
128
129
  keyboardDateTime: 'L LT',
129
130
  keyboardDateTime12h: 'L hh:mm A',
130
131
  keyboardDateTime24h: 'L HH:mm'
131
132
  };
133
+ const MISSING_TIMEZONE_PLUGIN = ['Missing timezone plugin', 'To be able to use timezones, you have to pass the default export from `moment-timezone` to the `dateLibInstance` prop of `LocalizationProvider`', 'Find more information on https://mui.com/x/react-date-pickers/timezone/#moment-and-timezone'].join('\n');
132
134
 
133
135
  /**
134
136
  * Based on `@date-io/moment`
@@ -162,6 +164,7 @@ class AdapterMoment {
162
164
  instance
163
165
  } = {}) {
164
166
  this.isMUIAdapter = true;
167
+ this.isTimezoneCompatible = true;
165
168
  this.lib = 'moment';
166
169
  this.moment = void 0;
167
170
  this.locale = void 0;
@@ -171,6 +174,39 @@ class AdapterMoment {
171
174
  end: ']'
172
175
  };
173
176
  this.formatTokenMap = formatTokenMap;
177
+ this.setLocaleToValue = value => {
178
+ const expectedLocale = this.getCurrentLocaleCode();
179
+ if (expectedLocale === value.locale()) {
180
+ return value;
181
+ }
182
+ return value.locale(expectedLocale);
183
+ };
184
+ this.hasTimezonePlugin = () => typeof this.moment.tz !== 'undefined';
185
+ this.createSystemDate = value => {
186
+ const parsedValue = this.moment(value).local();
187
+ if (this.locale === undefined) {
188
+ return parsedValue;
189
+ }
190
+ return parsedValue.locale(this.locale);
191
+ };
192
+ this.createUTCDate = value => {
193
+ const parsedValue = this.moment.utc(value);
194
+ if (this.locale === undefined) {
195
+ return parsedValue;
196
+ }
197
+ return parsedValue.locale(this.locale);
198
+ };
199
+ this.createTZDate = (value, timezone) => {
200
+ /* istanbul ignore next */
201
+ if (!this.hasTimezonePlugin()) {
202
+ throw new Error(MISSING_TIMEZONE_PLUGIN);
203
+ }
204
+ const parsedValue = timezone === 'default' ? this.moment(value) : this.moment.tz(value, timezone);
205
+ if (this.locale === undefined) {
206
+ return parsedValue;
207
+ }
208
+ return parsedValue.locale(this.locale);
209
+ };
174
210
  this.date = value => {
175
211
  if (value === null) {
176
212
  return null;
@@ -179,6 +215,52 @@ class AdapterMoment {
179
215
  moment.locale(this.getCurrentLocaleCode());
180
216
  return moment;
181
217
  };
218
+ this.dateWithTimezone = (value, timezone) => {
219
+ if (value === null) {
220
+ return null;
221
+ }
222
+ if (timezone === 'UTC') {
223
+ return this.createUTCDate(value);
224
+ }
225
+ if (timezone === 'system' || timezone === 'default' && !this.hasTimezonePlugin()) {
226
+ return this.createSystemDate(value);
227
+ }
228
+ return this.createTZDate(value, timezone);
229
+ };
230
+ this.getTimezone = value => {
231
+ if (value.isUTC()) {
232
+ return 'UTC';
233
+ }
234
+
235
+ // @ts-ignore
236
+ // eslint-disable-next-line no-underscore-dangle
237
+ const zone = value._z?.name;
238
+
239
+ // @ts-ignore
240
+ return zone ?? this.moment.defaultZone?.name ?? 'system';
241
+ };
242
+ this.setTimezone = (value, timezone) => {
243
+ if (timezone === 'UTC') {
244
+ return value.clone().utc();
245
+ }
246
+ if (timezone === 'system') {
247
+ return value.clone().local();
248
+ }
249
+ if (!this.hasTimezonePlugin()) {
250
+ if (timezone === 'default') {
251
+ return value;
252
+ }
253
+
254
+ /* istanbul ignore next */
255
+ throw new Error(MISSING_TIMEZONE_PLUGIN);
256
+ }
257
+ const cleanZone = timezone === 'default' ?
258
+ // @ts-ignore
259
+ this.moment.defaultZone?.name ?? 'system' : timezone;
260
+ const newValue = value.clone();
261
+ newValue.tz(cleanZone);
262
+ return newValue;
263
+ };
182
264
  this.toJsDate = value => {
183
265
  return value.toDate();
184
266
  };
@@ -339,6 +421,9 @@ class AdapterMoment {
339
421
  this.getSeconds = value => {
340
422
  return value.get('seconds');
341
423
  };
424
+ this.getMilliseconds = value => {
425
+ return value.get('milliseconds');
426
+ };
342
427
  this.setYear = (value, year) => {
343
428
  return value.clone().year(year);
344
429
  };
@@ -357,6 +442,9 @@ class AdapterMoment {
357
442
  this.setSeconds = (value, seconds) => {
358
443
  return value.clone().seconds(seconds);
359
444
  };
445
+ this.setMilliseconds = (value, milliseconds) => {
446
+ return value.clone().milliseconds(milliseconds);
447
+ };
360
448
  this.getDaysInMonth = value => {
361
449
  return value.daysInMonth();
362
450
  };
@@ -382,8 +470,9 @@ class AdapterMoment {
382
470
  return _moment.default.weekdaysShort(true);
383
471
  };
384
472
  this.getWeekArray = value => {
385
- const start = value.clone().startOf('month').startOf('week');
386
- const end = value.clone().endOf('month').endOf('week');
473
+ const cleanLocale = this.setLocaleToValue(value);
474
+ const start = cleanLocale.clone().startOf('month').startOf('week');
475
+ const end = cleanLocale.clone().endOf('month').endOf('week');
387
476
  let count = 0;
388
477
  let current = start;
389
478
  const nestedWeeks = [];
@@ -75,33 +75,34 @@ const formatTokenMap = {
75
75
  ss: 'seconds'
76
76
  };
77
77
  const defaultFormats = {
78
+ year: 'iYYYY',
79
+ month: 'iMMMM',
80
+ monthShort: 'iMMM',
78
81
  dayOfMonth: 'iD',
82
+ weekday: 'dddd',
83
+ weekdayShort: 'ddd',
84
+ hours24h: 'HH',
85
+ hours12h: 'hh',
86
+ meridiem: 'A',
87
+ minutes: 'mm',
88
+ seconds: 'ss',
79
89
  fullDate: 'iYYYY, iMMMM Do',
80
90
  fullDateWithWeekday: 'iYYYY, iMMMM Do, dddd',
81
- fullDateTime: 'iYYYY, iMMMM Do, hh:mm A',
82
- fullDateTime12h: 'iD iMMMM hh:mm A',
83
- fullDateTime24h: 'iD iMMMM HH:mm',
91
+ keyboardDateTime: 'iYYYY/iMM/iDD LT',
92
+ shortDate: 'iD iMMM',
93
+ normalDate: 'dddd, iD iMMM',
94
+ normalDateWithWeekday: 'DD iMMMM',
95
+ monthAndYear: 'iMMMM iYYYY',
96
+ monthAndDate: 'iD iMMMM',
84
97
  fullTime: 'LT',
85
98
  fullTime12h: 'hh:mm A',
86
99
  fullTime24h: 'HH:mm',
87
- hours12h: 'hh',
88
- hours24h: 'HH',
100
+ fullDateTime: 'iYYYY, iMMMM Do, hh:mm A',
101
+ fullDateTime12h: 'iD iMMMM hh:mm A',
102
+ fullDateTime24h: 'iD iMMMM HH:mm',
89
103
  keyboardDate: 'iYYYY/iMM/iDD',
90
- keyboardDateTime: 'iYYYY/iMM/iDD LT',
91
104
  keyboardDateTime12h: 'iYYYY/iMM/iDD hh:mm A',
92
- keyboardDateTime24h: 'iYYYY/iMM/iDD HH:mm',
93
- minutes: 'mm',
94
- month: 'iMMMM',
95
- monthAndDate: 'iD iMMMM',
96
- monthAndYear: 'iMMMM iYYYY',
97
- monthShort: 'iMMM',
98
- weekday: 'dddd',
99
- weekdayShort: 'ddd',
100
- normalDate: 'dddd, iD iMMM',
101
- normalDateWithWeekday: 'DD iMMMM',
102
- seconds: 'ss',
103
- shortDate: 'iD iMMM',
104
- year: 'iYYYY'
105
+ keyboardDateTime24h: 'iYYYY/iMM/iDD HH:mm'
105
106
  };
106
107
  const NUMBER_SYMBOL_MAP = {
107
108
  '1': '١',
@@ -152,6 +153,7 @@ class AdapterMomentHijri extends _AdapterMoment.AdapterMoment {
152
153
  });
153
154
  this.lib = 'moment-hijri';
154
155
  this.moment = void 0;
156
+ this.isTimezoneCompatible = false;
155
157
  this.formatTokenMap = formatTokenMap;
156
158
  this.date = value => {
157
159
  if (value === null) {
@@ -159,6 +161,15 @@ class AdapterMomentHijri extends _AdapterMoment.AdapterMoment {
159
161
  }
160
162
  return this.moment(value).locale('ar-SA');
161
163
  };
164
+ this.dateWithTimezone = value => {
165
+ return this.date(value);
166
+ };
167
+ this.getTimezone = () => {
168
+ return 'default';
169
+ };
170
+ this.setTimezone = value => {
171
+ return value;
172
+ };
162
173
  this.parse = (value, format) => {
163
174
  if (value === '') {
164
175
  return null;
@@ -73,33 +73,34 @@ const formatTokenMap = {
73
73
  ss: 'seconds'
74
74
  };
75
75
  const defaultFormats = {
76
+ year: 'jYYYY',
77
+ month: 'jMMMM',
78
+ monthShort: 'jMMM',
76
79
  dayOfMonth: 'jD',
80
+ weekday: 'dddd',
81
+ weekdayShort: 'ddd',
82
+ hours24h: 'HH',
83
+ hours12h: 'hh',
84
+ meridiem: 'A',
85
+ minutes: 'mm',
86
+ seconds: 'ss',
77
87
  fullDate: 'jYYYY, jMMMM Do',
78
88
  fullDateWithWeekday: 'dddd Do jMMMM jYYYY',
79
- fullDateTime: 'jYYYY, jMMMM Do, hh:mm A',
80
- fullDateTime12h: 'jD jMMMM hh:mm A',
81
- fullDateTime24h: 'jD jMMMM HH:mm',
89
+ keyboardDate: 'jYYYY/jMM/jDD',
90
+ shortDate: 'jD jMMM',
91
+ normalDate: 'dddd, jD jMMM',
92
+ normalDateWithWeekday: 'DD MMMM',
93
+ monthAndYear: 'jMMMM jYYYY',
94
+ monthAndDate: 'jD jMMMM',
82
95
  fullTime: 'LT',
83
96
  fullTime12h: 'hh:mm A',
84
97
  fullTime24h: 'HH:mm',
85
- hours12h: 'hh',
86
- hours24h: 'HH',
87
- keyboardDate: 'jYYYY/jMM/jDD',
98
+ fullDateTime: 'jYYYY, jMMMM Do, hh:mm A',
99
+ fullDateTime12h: 'jD jMMMM hh:mm A',
100
+ fullDateTime24h: 'jD jMMMM HH:mm',
88
101
  keyboardDateTime: 'jYYYY/jMM/jDD LT',
89
102
  keyboardDateTime12h: 'jYYYY/jMM/jDD hh:mm A',
90
- keyboardDateTime24h: 'jYYYY/jMM/jDD HH:mm',
91
- minutes: 'mm',
92
- month: 'jMMMM',
93
- monthAndDate: 'jD jMMMM',
94
- monthAndYear: 'jMMMM jYYYY',
95
- monthShort: 'jMMM',
96
- weekday: 'dddd',
97
- weekdayShort: 'ddd',
98
- normalDate: 'dddd, jD jMMM',
99
- normalDateWithWeekday: 'DD MMMM',
100
- seconds: 'ss',
101
- shortDate: 'jD jMMM',
102
- year: 'jYYYY'
103
+ keyboardDateTime24h: 'jYYYY/jMM/jDD HH:mm'
103
104
  };
104
105
  const NUMBER_SYMBOL_MAP = {
105
106
  '1': '۱',
@@ -148,6 +149,7 @@ class AdapterMomentJalaali extends _AdapterMoment.AdapterMoment {
148
149
  locale: 'fa',
149
150
  instance
150
151
  });
152
+ this.isTimezoneCompatible = false;
151
153
  this.lib = 'moment-jalaali';
152
154
  this.moment = void 0;
153
155
  this.formatTokenMap = formatTokenMap;
@@ -157,6 +159,15 @@ class AdapterMomentJalaali extends _AdapterMoment.AdapterMoment {
157
159
  }
158
160
  return this.moment(value).locale('fa');
159
161
  };
162
+ this.dateWithTimezone = value => {
163
+ return this.date(value);
164
+ };
165
+ this.getTimezone = () => {
166
+ return 'default';
167
+ };
168
+ this.setTimezone = value => {
169
+ return value;
170
+ };
160
171
  this.parseISO = isoString => {
161
172
  return this.moment(isoString).locale('fa');
162
173
  };
@@ -217,9 +217,9 @@ const DateCalendar = /*#__PURE__*/React.forwardRef(function DateCalendar(inProps
217
217
  const handleSelectedDayChange = (0, _utils.unstable_useEventCallback)(day => {
218
218
  if (value && day) {
219
219
  // If there is a date already selected, then we want to keep its time
220
- return setValueAndGoToNextView((0, _dateUtils.mergeDateAndTime)(utils, day, value), 'finish');
220
+ return handleValueChange((0, _dateUtils.mergeDateAndTime)(utils, day, value), 'finish');
221
221
  }
222
- return setValueAndGoToNextView(day, 'finish');
222
+ return handleValueChange(day, 'finish');
223
223
  });
224
224
  React.useEffect(() => {
225
225
  if (value != null && utils.isValid(value)) {
@@ -15,7 +15,7 @@ var _utils2 = require("@mui/utils");
15
15
  var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
16
16
  var _useUtils = require("../internals/hooks/useUtils");
17
17
  var _PickersFadeTransitionGroup = require("./PickersFadeTransitionGroup");
18
- var _icons = require("../internals/components/icons");
18
+ var _icons = require("../icons");
19
19
  var _PickersArrowSwitcher = require("../internals/components/PickersArrowSwitcher");
20
20
  var _dateHelpersHooks = require("../internals/hooks/date-helpers-hooks");
21
21
  var _pickersCalendarHeaderClasses = require("./pickersCalendarHeaderClasses");
@@ -86,7 +86,7 @@ const PickersCalendarHeaderSwitchViewButton = (0, _styles.styled)(_IconButton.de
86
86
  transform: 'rotate(180deg)'
87
87
  }
88
88
  }));
89
- const PickersCalendarHeaderSwitchViewIcon = (0, _styles.styled)(_icons.ArrowDropDown, {
89
+ const PickersCalendarHeaderSwitchViewIcon = (0, _styles.styled)(_icons.ArrowDropDownIcon, {
90
90
  name: 'MuiPickersCalendarHeader',
91
91
  slot: 'SwitchViewIcon',
92
92
  overridesResolver: (_, styles) => styles.switchViewIcon
@@ -238,6 +238,12 @@ process.env.NODE_ENV !== "production" ? DateField.propTypes = {
238
238
  * @default false
239
239
  */
240
240
  readOnly: _propTypes.default.bool,
241
+ /**
242
+ * The date used to generate a part of the date-time that is not present in the format when both `value` and `defaultValue` are not present.
243
+ * For example, on time fields it will be used to determine the date to set.
244
+ * @default The closest valid date using the validation props, except callbacks such as `shouldDisableDate`. Value is rounded to the most granular section used.
245
+ */
246
+ referenceDate: _propTypes.default.any,
241
247
  /**
242
248
  * If `true`, the label is displayed as required and the `input` element is required.
243
249
  * @default false
@@ -14,8 +14,8 @@ var _styles = require("@mui/material/styles");
14
14
  var _utils = require("@mui/utils");
15
15
  var _PickersToolbar = require("../internals/components/PickersToolbar");
16
16
  var _useUtils = require("../internals/hooks/useUtils");
17
- var _views = require("../internals/utils/views");
18
17
  var _datePickerToolbarClasses = require("./datePickerToolbarClasses");
18
+ var _dateUtils = require("../internals/utils/date-utils");
19
19
  var _jsxRuntime = require("react/jsx-runtime");
20
20
  const _excluded = ["value", "isLandscape", "onChange", "toolbarFormat", "toolbarPlaceholder", "views"];
21
21
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -68,20 +68,11 @@ const DatePickerToolbar = /*#__PURE__*/React.forwardRef(function DatePickerToolb
68
68
  if (!value) {
69
69
  return toolbarPlaceholder;
70
70
  }
71
- if (toolbarFormat) {
72
- return utils.formatByString(value, toolbarFormat);
73
- }
74
- if ((0, _views.isYearOnlyView)(views)) {
75
- return utils.format(value, 'year');
76
- }
77
- if ((0, _views.isYearAndMonthViews)(views)) {
78
- return utils.format(value, 'month');
79
- }
80
-
81
- // Little localization hack (Google is doing the same for android native pickers):
82
- // For english localization it is convenient to include weekday into the date "Mon, Jun 1".
83
- // For other locales using strings like "June 1", without weekday.
84
- return /en/.test(utils.getCurrentLocaleCode()) ? utils.format(value, 'normalDateWithWeekday') : utils.format(value, 'normalDate');
71
+ const formatFromViews = (0, _dateUtils.resolveDateFormat)(utils, {
72
+ format: toolbarFormat,
73
+ views
74
+ }, true);
75
+ return utils.formatByString(value, formatFromViews);
85
76
  }, [value, toolbarFormat, toolbarPlaceholder, utils, views]);
86
77
  const ownerState = props;
87
78
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(DatePickerToolbarRoot, (0, _extends2.default)({
@@ -4,7 +4,6 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.getDatePickerFieldFormat = void 0;
8
7
  exports.useDatePickerDefaultizedProps = useDatePickerDefaultizedProps;
9
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
9
  var React = _interopRequireWildcard(require("react"));
@@ -16,22 +15,6 @@ var _DatePickerToolbar = require("./DatePickerToolbar");
16
15
  var _slotsMigration = require("../internals/utils/slots-migration");
17
16
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
18
17
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
19
- const getDatePickerFieldFormat = (utils, {
20
- format,
21
- views
22
- }) => {
23
- if (format != null) {
24
- return format;
25
- }
26
- if ((0, _views.isYearOnlyView)(views)) {
27
- return utils.formats.year;
28
- }
29
- if ((0, _views.isYearAndMonthViews)(views)) {
30
- return utils.formats.monthAndYear;
31
- }
32
- return undefined;
33
- };
34
- exports.getDatePickerFieldFormat = getDatePickerFieldFormat;
35
18
  function useDatePickerDefaultizedProps(props, name) {
36
19
  const utils = (0, _useUtils.useUtils)();
37
20
  const defaultDates = (0, _useUtils.useDefaultDates)();
@@ -271,6 +271,12 @@ process.env.NODE_ENV !== "production" ? DateTimeField.propTypes = {
271
271
  * @default false
272
272
  */
273
273
  readOnly: _propTypes.default.bool,
274
+ /**
275
+ * The date used to generate a part of the date-time that is not present in the format when both `value` and `defaultValue` are not present.
276
+ * For example, on time fields it will be used to determine the date to set.
277
+ * @default The closest valid date using the validation props, except callbacks such as `shouldDisableDate`. Value is rounded to the most granular section used.
278
+ */
279
+ referenceDate: _propTypes.default.any,
274
280
  /**
275
281
  * If `true`, the label is displayed as required and the `input` element is required.
276
282
  * @default false
@@ -282,7 +282,7 @@ process.env.NODE_ENV !== "production" ? DateTimePicker.propTypes = {
282
282
  * Used when the component view is not controlled.
283
283
  * Must be a valid option from `views` list.
284
284
  */
285
- openTo: _propTypes.default.oneOf(['day', 'hours', 'minutes', 'month', 'seconds', 'year']),
285
+ openTo: _propTypes.default.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']),
286
286
  /**
287
287
  * Force rendering in particular orientation.
288
288
  */
@@ -360,6 +360,11 @@ process.env.NODE_ENV !== "production" ? DateTimePicker.propTypes = {
360
360
  * @default false
361
361
  */
362
362
  showDaysOutsideCurrentMonth: _propTypes.default.bool,
363
+ /**
364
+ * If `true`, disabled digital clock items will not be rendered.
365
+ * @default false
366
+ */
367
+ skipDisabled: _propTypes.default.bool,
363
368
  /**
364
369
  * The props used for each component slot.
365
370
  * @default {}
@@ -374,6 +379,17 @@ process.env.NODE_ENV !== "production" ? DateTimePicker.propTypes = {
374
379
  * The system prop that allows defining system overrides as well as additional CSS styles.
375
380
  */
376
381
  sx: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object, _propTypes.default.bool])), _propTypes.default.func, _propTypes.default.object]),
382
+ /**
383
+ * The time steps between two time unit options.
384
+ * For example, if `timeStep.minutes = 8`, then the available minute options will be `[0, 8, 16, 24, 32, 40, 48, 56]`.
385
+ * When single column time renderer is used, only `timeStep.minutes` will be used.
386
+ * @default{ hours: 1, minutes: 5, seconds: 5 }
387
+ */
388
+ timeSteps: _propTypes.default.shape({
389
+ hours: _propTypes.default.number,
390
+ minutes: _propTypes.default.number,
391
+ seconds: _propTypes.default.number
392
+ }),
377
393
  /**
378
394
  * The selected value.
379
395
  * Used when the component is controlled.
@@ -384,7 +400,7 @@ process.env.NODE_ENV !== "production" ? DateTimePicker.propTypes = {
384
400
  * Used when the component view is controlled.
385
401
  * Must be a valid option from `views` list.
386
402
  */
387
- view: _propTypes.default.oneOf(['day', 'hours', 'minutes', 'month', 'seconds', 'year']),
403
+ view: _propTypes.default.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']),
388
404
  /**
389
405
  * Define custom view renderers for each section.
390
406
  * If `null`, the section will only have field editing.
@@ -393,6 +409,7 @@ process.env.NODE_ENV !== "production" ? DateTimePicker.propTypes = {
393
409
  viewRenderers: _propTypes.default.shape({
394
410
  day: _propTypes.default.func,
395
411
  hours: _propTypes.default.func,
412
+ meridiem: _propTypes.default.func,
396
413
  minutes: _propTypes.default.func,
397
414
  month: _propTypes.default.func,
398
415
  seconds: _propTypes.default.func,
@@ -11,14 +11,15 @@ var _Tab = _interopRequireDefault(require("@mui/material/Tab"));
11
11
  var _Tabs = _interopRequireWildcard(require("@mui/material/Tabs"));
12
12
  var _styles = require("@mui/material/styles");
13
13
  var _utils = require("@mui/utils");
14
- var _icons = require("../internals/components/icons");
14
+ var _icons = require("../icons");
15
15
  var _useUtils = require("../internals/hooks/useUtils");
16
16
  var _dateTimePickerTabsClasses = require("./dateTimePickerTabsClasses");
17
+ var _dateUtils = require("../internals/utils/date-utils");
17
18
  var _jsxRuntime = require("react/jsx-runtime");
18
19
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
20
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
20
21
  const viewToTab = view => {
21
- if (['day', 'month', 'year'].includes(view)) {
22
+ if ((0, _dateUtils.isDatePickerView)(view)) {
22
23
  return 'date';
23
24
  }
24
25
  return 'time';
@@ -60,9 +61,9 @@ const DateTimePickerTabs = function DateTimePickerTabs(inProps) {
60
61
  name: 'MuiDateTimePickerTabs'
61
62
  });
62
63
  const {
63
- dateIcon = /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.DateRange, {}),
64
+ dateIcon = /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.DateRangeIcon, {}),
64
65
  onViewChange,
65
- timeIcon = /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.Time, {}),
66
+ timeIcon = /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.TimeIcon, {}),
66
67
  view,
67
68
  hidden = typeof window === 'undefined' || window.innerHeight < 667
68
69
  } = props;
@@ -129,5 +130,5 @@ process.env.NODE_ENV !== "production" ? DateTimePickerTabs.propTypes = {
129
130
  /**
130
131
  * Currently visible picker view.
131
132
  */
132
- view: _propTypes.default.oneOf(['day', 'hours', 'minutes', 'month', 'seconds', 'year']).isRequired
133
+ view: _propTypes.default.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']).isRequired
133
134
  } : void 0;