@mui/x-date-pickers 6.4.0 → 6.6.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 (329) hide show
  1. package/AdapterDateFns/AdapterDateFns.d.ts +6 -0
  2. package/AdapterDateFns/AdapterDateFns.js +18 -0
  3. package/AdapterDateFnsJalali/AdapterDateFnsJalali.d.ts +6 -0
  4. package/AdapterDateFnsJalali/AdapterDateFnsJalali.js +18 -0
  5. package/AdapterDayjs/AdapterDayjs.d.ts +14 -1
  6. package/AdapterDayjs/AdapterDayjs.js +131 -14
  7. package/AdapterLuxon/AdapterLuxon.d.ts +7 -1
  8. package/AdapterLuxon/AdapterLuxon.js +58 -9
  9. package/AdapterMoment/AdapterMoment.d.ts +12 -1
  10. package/AdapterMoment/AdapterMoment.js +91 -2
  11. package/AdapterMomentHijri/AdapterMomentHijri.d.ts +4 -0
  12. package/AdapterMomentHijri/AdapterMomentHijri.js +10 -0
  13. package/AdapterMomentJalaali/AdapterMomentJalaali.d.ts +4 -0
  14. package/AdapterMomentJalaali/AdapterMomentJalaali.js +10 -0
  15. package/CHANGELOG.md +134 -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 +2 -2
  24. package/DateField/index.d.ts +1 -1
  25. package/DateField/useDateField.d.ts +1 -1
  26. package/DateField/useDateField.js +9 -46
  27. package/DateTimeField/DateTimeField.js +6 -0
  28. package/DateTimeField/DateTimeField.types.d.ts +2 -2
  29. package/DateTimeField/index.d.ts +1 -1
  30. package/DateTimeField/useDateTimeField.d.ts +1 -1
  31. package/DateTimeField/useDateTimeField.js +9 -60
  32. package/DateTimePicker/DateTimePicker.js +19 -2
  33. package/DateTimePicker/DateTimePicker.types.d.ts +4 -3
  34. package/DateTimePicker/DateTimePickerTabs.d.ts +3 -3
  35. package/DateTimePicker/DateTimePickerTabs.js +6 -5
  36. package/DateTimePicker/DateTimePickerToolbar.d.ts +5 -4
  37. package/DateTimePicker/DateTimePickerToolbar.js +46 -22
  38. package/DateTimePicker/shared.d.ts +6 -6
  39. package/DayCalendarSkeleton/DayCalendarSkeleton.d.ts +1 -1
  40. package/DesktopDatePicker/DesktopDatePicker.js +2 -2
  41. package/DesktopDateTimePicker/DesktopDateTimePicker.js +54 -12
  42. package/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +10 -3
  43. package/DesktopTimePicker/DesktopTimePicker.js +3 -4
  44. package/MobileDateTimePicker/MobileDateTimePicker.js +1 -2
  45. package/MobileDateTimePicker/MobileDateTimePicker.types.d.ts +8 -7
  46. package/MobileTimePicker/MobileTimePicker.js +1 -2
  47. package/MonthCalendar/MonthCalendar.js +2 -2
  48. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +4 -3
  49. package/PickersActionBar/PickersActionBar.d.ts +2 -2
  50. package/PickersLayout/PickersLayout.d.ts +1 -1
  51. package/PickersShortcuts/PickersShortcuts.d.ts +2 -2
  52. package/README.md +5 -5
  53. package/StaticDateTimePicker/StaticDateTimePicker.types.d.ts +1 -1
  54. package/TimeClock/Clock.d.ts +1 -1
  55. package/TimeClock/ClockNumber.d.ts +1 -1
  56. package/TimeClock/ClockNumbers.d.ts +2 -2
  57. package/TimeClock/ClockPointer.d.ts +1 -1
  58. package/TimeField/TimeField.js +6 -0
  59. package/TimeField/TimeField.types.d.ts +1 -1
  60. package/TimeField/index.d.ts +1 -1
  61. package/TimeField/useTimeField.d.ts +1 -1
  62. package/TimeField/useTimeField.js +9 -50
  63. package/TimePicker/TimePickerToolbar.d.ts +2 -2
  64. package/YearCalendar/YearCalendar.js +2 -2
  65. package/dateTimeViewRenderers/dateTimeViewRenderers.d.ts +13 -0
  66. package/dateTimeViewRenderers/dateTimeViewRenderers.js +148 -0
  67. package/dateTimeViewRenderers/index.d.ts +2 -0
  68. package/dateTimeViewRenderers/index.js +1 -0
  69. package/dateTimeViewRenderers/package.json +6 -0
  70. package/dateViewRenderers/dateViewRenderers.d.ts +3 -2
  71. package/dateViewRenderers/dateViewRenderers.js +2 -2
  72. package/icons/index.d.ts +42 -0
  73. package/{internals/components/icons → icons}/index.js +7 -7
  74. package/icons/package.json +6 -0
  75. package/index.d.ts +1 -0
  76. package/index.js +3 -2
  77. package/internals/components/DateTimeViewWrapper/DateTimeViewWrapper.d.ts +2 -0
  78. package/internals/components/DateTimeViewWrapper/DateTimeViewWrapper.js +5 -0
  79. package/internals/components/DateTimeViewWrapper/index.d.ts +1 -0
  80. package/internals/components/DateTimeViewWrapper/index.js +1 -0
  81. package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +3 -3
  82. package/internals/components/PickersModalDialog.d.ts +1 -1
  83. package/internals/components/PickersPopper.d.ts +1 -1
  84. package/internals/components/PickersToolbarButton.d.ts +1 -0
  85. package/internals/components/PickersToolbarButton.js +8 -3
  86. package/internals/constants/dimensions.d.ts +1 -0
  87. package/internals/constants/dimensions.js +2 -1
  88. package/internals/demo/DemoContainer.d.ts +2 -2
  89. package/internals/hooks/useDesktopPicker/useDesktopPicker.d.ts +2 -2
  90. package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +2 -2
  91. package/internals/hooks/useField/useField.d.ts +1 -1
  92. package/internals/hooks/useField/useField.js +18 -5
  93. package/internals/hooks/useField/useField.types.d.ts +8 -2
  94. package/internals/hooks/useField/useFieldState.d.ts +1 -1
  95. package/internals/hooks/useField/useFieldState.js +22 -2
  96. package/internals/hooks/useMobilePicker/useMobilePicker.d.ts +2 -2
  97. package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +2 -2
  98. package/internals/hooks/usePicker/usePickerValue.types.d.ts +32 -2
  99. package/internals/hooks/usePicker/usePickerViews.js +8 -10
  100. package/internals/hooks/useStaticPicker/useStaticPicker.d.ts +2 -2
  101. package/internals/hooks/useViews.js +12 -9
  102. package/internals/index.d.ts +4 -2
  103. package/internals/index.js +4 -2
  104. package/internals/models/fields.d.ts +1 -1
  105. package/internals/utils/date-utils.d.ts +4 -1
  106. package/internals/utils/date-utils.js +4 -1
  107. package/internals/utils/fields.d.ts +5 -0
  108. package/internals/utils/fields.js +28 -0
  109. package/internals/utils/getDefaultReferenceDate.d.ts +15 -0
  110. package/internals/utils/getDefaultReferenceDate.js +62 -0
  111. package/internals/utils/time-utils.d.ts +2 -1
  112. package/internals/utils/time-utils.js +1 -0
  113. package/internals/utils/validation/extractValidationProps.d.ts +5 -1
  114. package/internals/utils/validation/extractValidationProps.js +4 -1
  115. package/internals/utils/valueManagers.js +21 -3
  116. package/legacy/AdapterDateFns/AdapterDateFns.js +18 -0
  117. package/legacy/AdapterDateFnsJalali/AdapterDateFnsJalali.js +18 -0
  118. package/legacy/AdapterDayjs/AdapterDayjs.js +135 -14
  119. package/legacy/AdapterLuxon/AdapterLuxon.js +58 -9
  120. package/legacy/AdapterMoment/AdapterMoment.js +97 -6
  121. package/legacy/AdapterMomentHijri/AdapterMomentHijri.js +10 -0
  122. package/legacy/AdapterMomentJalaali/AdapterMomentJalaali.js +10 -0
  123. package/legacy/DateCalendar/DateCalendar.js +2 -2
  124. package/legacy/DateCalendar/PickersCalendarHeader.js +2 -2
  125. package/legacy/DateField/DateField.js +6 -0
  126. package/legacy/DateField/useDateField.js +8 -44
  127. package/legacy/DateTimeField/DateTimeField.js +6 -0
  128. package/legacy/DateTimeField/useDateTimeField.js +8 -60
  129. package/legacy/DateTimePicker/DateTimePicker.js +19 -2
  130. package/legacy/DateTimePicker/DateTimePickerTabs.js +6 -5
  131. package/legacy/DateTimePicker/DateTimePickerToolbar.js +51 -23
  132. package/legacy/DesktopDatePicker/DesktopDatePicker.js +2 -2
  133. package/legacy/DesktopDateTimePicker/DesktopDateTimePicker.js +55 -12
  134. package/legacy/DesktopTimePicker/DesktopTimePicker.js +3 -4
  135. package/legacy/MobileDateTimePicker/MobileDateTimePicker.js +1 -2
  136. package/legacy/MobileTimePicker/MobileTimePicker.js +1 -2
  137. package/legacy/MonthCalendar/MonthCalendar.js +2 -2
  138. package/legacy/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +4 -3
  139. package/legacy/TimeField/TimeField.js +6 -0
  140. package/legacy/TimeField/useTimeField.js +8 -48
  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 +20 -7
  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 +12 -9
  156. package/legacy/internals/index.js +4 -2
  157. package/legacy/internals/utils/date-utils.js +7 -0
  158. package/legacy/internals/utils/fields.js +28 -0
  159. package/legacy/internals/utils/getDefaultReferenceDate.js +64 -0
  160. package/legacy/internals/utils/time-utils.js +3 -0
  161. package/legacy/internals/utils/validation/extractValidationProps.js +4 -1
  162. package/legacy/internals/utils/valueManagers.js +20 -4
  163. package/legacy/locales/index.js +1 -0
  164. package/legacy/locales/viVN.js +93 -0
  165. package/legacy/models/index.js +1 -0
  166. package/legacy/models/timezone.js +1 -0
  167. package/legacy/tests/describeGregorianAdapter/describeGregorianAdapter.js +16 -1
  168. package/legacy/tests/describeGregorianAdapter/testCalculations.js +350 -80
  169. package/legacy/tests/describeGregorianAdapter/testLocalization.js +3 -3
  170. package/legacy/tests/describeValidation/testDayViewValidation.js +129 -52
  171. package/legacy/tests/describeValidation/testMinutesViewValidation.js +3 -10
  172. package/legacy/tests/describeValidation/testMonthViewValidation.js +3 -10
  173. package/legacy/tests/describeValidation/testYearViewValidation.js +3 -10
  174. package/legacy/tests/describeValue/describeValue.js +38 -4
  175. package/legacy/tests/describeValue/testControlledUnControlled.js +44 -23
  176. package/legacy/tests/describeValue/testPickerActionBar.js +51 -45
  177. package/legacy/tests/describeValue/testPickerOpenCloseLifeCycle.js +102 -78
  178. package/legacy/timeViewRenderers/timeViewRenderers.js +1 -1
  179. package/locales/index.d.ts +1 -0
  180. package/locales/index.js +1 -0
  181. package/locales/viVN.d.ts +53 -0
  182. package/locales/viVN.js +57 -0
  183. package/models/adapters.d.ts +50 -9
  184. package/models/fields.d.ts +1 -1
  185. package/models/index.d.ts +1 -0
  186. package/models/index.js +1 -0
  187. package/models/timezone.d.ts +1 -0
  188. package/models/timezone.js +1 -0
  189. package/modern/AdapterDateFns/AdapterDateFns.js +18 -0
  190. package/modern/AdapterDateFnsJalali/AdapterDateFnsJalali.js +18 -0
  191. package/modern/AdapterDayjs/AdapterDayjs.js +130 -14
  192. package/modern/AdapterLuxon/AdapterLuxon.js +57 -9
  193. package/modern/AdapterMoment/AdapterMoment.js +90 -2
  194. package/modern/AdapterMomentHijri/AdapterMomentHijri.js +10 -0
  195. package/modern/AdapterMomentJalaali/AdapterMomentJalaali.js +10 -0
  196. package/modern/DateCalendar/DateCalendar.js +2 -2
  197. package/modern/DateCalendar/PickersCalendarHeader.js +2 -2
  198. package/modern/DateField/DateField.js +6 -0
  199. package/modern/DateField/useDateField.js +9 -46
  200. package/modern/DateTimeField/DateTimeField.js +6 -0
  201. package/modern/DateTimeField/useDateTimeField.js +9 -60
  202. package/modern/DateTimePicker/DateTimePicker.js +19 -2
  203. package/modern/DateTimePicker/DateTimePickerTabs.js +6 -5
  204. package/modern/DateTimePicker/DateTimePickerToolbar.js +46 -22
  205. package/modern/DesktopDatePicker/DesktopDatePicker.js +2 -2
  206. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +53 -11
  207. package/modern/DesktopTimePicker/DesktopTimePicker.js +3 -4
  208. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +1 -2
  209. package/modern/MobileTimePicker/MobileTimePicker.js +1 -2
  210. package/modern/MonthCalendar/MonthCalendar.js +2 -2
  211. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +4 -3
  212. package/modern/TimeField/TimeField.js +6 -0
  213. package/modern/TimeField/useTimeField.js +9 -50
  214. package/modern/YearCalendar/YearCalendar.js +2 -2
  215. package/modern/dateTimeViewRenderers/dateTimeViewRenderers.js +147 -0
  216. package/modern/dateTimeViewRenderers/index.js +1 -0
  217. package/modern/dateViewRenderers/dateViewRenderers.js +2 -2
  218. package/modern/{internals/components/icons → icons}/index.js +7 -7
  219. package/modern/index.js +3 -2
  220. package/modern/internals/components/DateTimeViewWrapper/DateTimeViewWrapper.js +5 -0
  221. package/modern/internals/components/DateTimeViewWrapper/index.js +1 -0
  222. package/modern/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +3 -3
  223. package/modern/internals/components/PickersToolbarButton.js +8 -3
  224. package/modern/internals/constants/dimensions.js +2 -1
  225. package/modern/internals/hooks/useField/useField.js +18 -5
  226. package/modern/internals/hooks/useField/useFieldState.js +22 -2
  227. package/modern/internals/hooks/usePicker/usePickerViews.js +8 -10
  228. package/modern/internals/hooks/useViews.js +12 -9
  229. package/modern/internals/index.js +4 -2
  230. package/modern/internals/utils/date-utils.js +4 -1
  231. package/modern/internals/utils/fields.js +28 -0
  232. package/modern/internals/utils/getDefaultReferenceDate.js +58 -0
  233. package/modern/internals/utils/time-utils.js +1 -0
  234. package/modern/internals/utils/validation/extractValidationProps.js +4 -1
  235. package/modern/internals/utils/valueManagers.js +21 -3
  236. package/modern/locales/index.js +1 -0
  237. package/modern/locales/viVN.js +57 -0
  238. package/modern/models/index.js +1 -0
  239. package/modern/models/timezone.js +1 -0
  240. package/modern/tests/describeGregorianAdapter/describeGregorianAdapter.js +13 -1
  241. package/modern/tests/describeGregorianAdapter/testCalculations.js +348 -80
  242. package/modern/tests/describeGregorianAdapter/testLocalization.js +3 -3
  243. package/modern/tests/describeValidation/testDayViewValidation.js +129 -52
  244. package/modern/tests/describeValidation/testMinutesViewValidation.js +3 -10
  245. package/modern/tests/describeValidation/testMonthViewValidation.js +3 -10
  246. package/modern/tests/describeValidation/testYearViewValidation.js +3 -10
  247. package/modern/tests/describeValue/describeValue.js +39 -4
  248. package/modern/tests/describeValue/testControlledUnControlled.js +35 -16
  249. package/modern/tests/describeValue/testPickerActionBar.js +38 -29
  250. package/modern/tests/describeValue/testPickerOpenCloseLifeCycle.js +89 -58
  251. package/modern/timeViewRenderers/timeViewRenderers.js +1 -1
  252. package/node/AdapterDateFns/AdapterDateFns.js +18 -0
  253. package/node/AdapterDateFnsJalali/AdapterDateFnsJalali.js +18 -0
  254. package/node/AdapterDayjs/AdapterDayjs.js +130 -14
  255. package/node/AdapterLuxon/AdapterLuxon.js +57 -9
  256. package/node/AdapterMoment/AdapterMoment.js +90 -2
  257. package/node/AdapterMomentHijri/AdapterMomentHijri.js +10 -0
  258. package/node/AdapterMomentJalaali/AdapterMomentJalaali.js +10 -0
  259. package/node/DateCalendar/DateCalendar.js +2 -2
  260. package/node/DateCalendar/PickersCalendarHeader.js +2 -2
  261. package/node/DateField/DateField.js +6 -0
  262. package/node/DateField/useDateField.js +9 -46
  263. package/node/DateTimeField/DateTimeField.js +6 -0
  264. package/node/DateTimeField/useDateTimeField.js +9 -60
  265. package/node/DateTimePicker/DateTimePicker.js +19 -2
  266. package/node/DateTimePicker/DateTimePickerTabs.js +6 -5
  267. package/node/DateTimePicker/DateTimePickerToolbar.js +46 -22
  268. package/node/DesktopDatePicker/DesktopDatePicker.js +2 -2
  269. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +53 -11
  270. package/node/DesktopTimePicker/DesktopTimePicker.js +3 -4
  271. package/node/MobileDateTimePicker/MobileDateTimePicker.js +1 -2
  272. package/node/MobileTimePicker/MobileTimePicker.js +1 -2
  273. package/node/MonthCalendar/MonthCalendar.js +2 -2
  274. package/node/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +3 -2
  275. package/node/TimeField/TimeField.js +6 -0
  276. package/node/TimeField/useTimeField.js +9 -50
  277. package/node/YearCalendar/YearCalendar.js +2 -2
  278. package/node/dateTimeViewRenderers/dateTimeViewRenderers.js +156 -0
  279. package/node/dateTimeViewRenderers/index.js +12 -0
  280. package/node/dateViewRenderers/dateViewRenderers.js +3 -3
  281. package/node/{internals/components/icons → icons}/index.js +15 -15
  282. package/node/index.js +13 -1
  283. package/node/internals/components/DateTimeViewWrapper/DateTimeViewWrapper.js +12 -0
  284. package/node/internals/components/DateTimeViewWrapper/index.js +12 -0
  285. package/node/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +3 -3
  286. package/node/internals/components/PickersToolbarButton.js +8 -3
  287. package/node/internals/constants/dimensions.js +4 -2
  288. package/node/internals/hooks/useField/useField.js +18 -5
  289. package/node/internals/hooks/useField/useFieldState.js +22 -2
  290. package/node/internals/hooks/usePicker/usePickerViews.js +8 -10
  291. package/node/internals/hooks/useViews.js +12 -9
  292. package/node/internals/index.js +26 -0
  293. package/node/internals/utils/date-utils.js +7 -2
  294. package/node/internals/utils/fields.js +36 -0
  295. package/node/internals/utils/getDefaultReferenceDate.js +66 -0
  296. package/node/internals/utils/time-utils.js +3 -1
  297. package/node/internals/utils/validation/extractValidationProps.js +8 -2
  298. package/node/internals/utils/valueManagers.js +21 -2
  299. package/node/locales/index.js +11 -0
  300. package/node/locales/viVN.js +64 -0
  301. package/node/models/index.js +11 -0
  302. package/node/models/timezone.js +5 -0
  303. package/node/tests/describeGregorianAdapter/describeGregorianAdapter.js +13 -1
  304. package/node/tests/describeGregorianAdapter/testCalculations.js +348 -80
  305. package/node/tests/describeGregorianAdapter/testLocalization.js +3 -4
  306. package/node/tests/describeValidation/testDayViewValidation.js +129 -52
  307. package/node/tests/describeValidation/testMinutesViewValidation.js +3 -10
  308. package/node/tests/describeValidation/testMonthViewValidation.js +3 -10
  309. package/node/tests/describeValidation/testYearViewValidation.js +3 -10
  310. package/node/tests/describeValue/describeValue.js +39 -4
  311. package/node/tests/describeValue/testControlledUnControlled.js +35 -16
  312. package/node/tests/describeValue/testPickerActionBar.js +38 -28
  313. package/node/tests/describeValue/testPickerOpenCloseLifeCycle.js +88 -57
  314. package/node/timeViewRenderers/timeViewRenderers.js +1 -1
  315. package/package.json +5 -5
  316. package/tests/describeGregorianAdapter/describeGregorianAdapter.js +14 -1
  317. package/tests/describeGregorianAdapter/testCalculations.js +348 -80
  318. package/tests/describeGregorianAdapter/testLocalization.js +3 -3
  319. package/tests/describeValidation/testDayViewValidation.js +129 -52
  320. package/tests/describeValidation/testMinutesViewValidation.js +3 -10
  321. package/tests/describeValidation/testMonthViewValidation.js +3 -10
  322. package/tests/describeValidation/testYearViewValidation.js +3 -10
  323. package/tests/describeValue/describeValue.js +39 -4
  324. package/tests/describeValue/testControlledUnControlled.js +35 -16
  325. package/tests/describeValue/testPickerActionBar.js +38 -29
  326. package/tests/describeValue/testPickerOpenCloseLifeCycle.js +89 -58
  327. package/timeViewRenderers/timeViewRenderers.d.ts +4 -4
  328. package/timeViewRenderers/timeViewRenderers.js +1 -1
  329. package/internals/components/icons/index.d.ts +0 -42
@@ -7,7 +7,7 @@ import { singleItemValueManager } from '../internals/utils/valueManagers';
7
7
  import { TimeField } from '../TimeField';
8
8
  import { useTimePickerDefaultizedProps } from '../TimePicker/shared';
9
9
  import { useLocaleText, validateTime } from '../internals';
10
- import { Clock } from '../internals/components/icons';
10
+ import { ClockIcon } from '../icons';
11
11
  import { useDesktopPicker } from '../internals/hooks/useDesktopPicker';
12
12
  import { extractValidationProps } from '../internals/utils/validation/extractValidationProps';
13
13
  import { renderDigitalClockTimeView, renderMultiSectionDigitalClockTimeView } from '../timeViewRenderers';
@@ -47,14 +47,13 @@ var DesktopTimePicker = /*#__PURE__*/React.forwardRef(function DesktopTimePicker
47
47
  views: shouldRenderTimeInASingleColumn ? ['hours'] : views,
48
48
  slots: _extends({
49
49
  field: TimeField,
50
- openPickerIcon: Clock
50
+ openPickerIcon: ClockIcon
51
51
  }, defaultizedProps.slots),
52
52
  slotProps: _extends({}, defaultizedProps.slotProps, {
53
53
  field: function field(ownerState) {
54
54
  var _defaultizedProps$slo;
55
55
  return _extends({}, resolveComponentProps((_defaultizedProps$slo = defaultizedProps.slotProps) == null ? void 0 : _defaultizedProps$slo.field, ownerState), extractValidationProps(defaultizedProps), {
56
- ref: ref,
57
- ampm: defaultizedProps.ampm
56
+ ref: ref
58
57
  });
59
58
  },
60
59
  toolbar: _extends({
@@ -37,8 +37,7 @@ var MobileDateTimePicker = /*#__PURE__*/React.forwardRef(function MobileDateTime
37
37
  field: function field(ownerState) {
38
38
  var _defaultizedProps$slo;
39
39
  return _extends({}, resolveComponentProps((_defaultizedProps$slo = defaultizedProps.slotProps) == null ? void 0 : _defaultizedProps$slo.field, ownerState), extractValidationProps(defaultizedProps), {
40
- ref: ref,
41
- ampm: defaultizedProps.ampm
40
+ ref: ref
42
41
  });
43
42
  },
44
43
  toolbar: _extends({
@@ -33,8 +33,7 @@ var MobileTimePicker = /*#__PURE__*/React.forwardRef(function MobileTimePicker(i
33
33
  field: function field(ownerState) {
34
34
  var _defaultizedProps$slo;
35
35
  return _extends({}, resolveComponentProps((_defaultizedProps$slo = defaultizedProps.slotProps) == null ? void 0 : _defaultizedProps$slo.field, ownerState), extractValidationProps(defaultizedProps), {
36
- ref: ref,
37
- ampm: defaultizedProps.ampm
36
+ ref: ref
38
37
  });
39
38
  },
40
39
  toolbar: _extends({
@@ -120,7 +120,7 @@ export var MonthCalendar = /*#__PURE__*/React.forwardRef(function MonthCalendar(
120
120
  onFocusedViewChange(newHasFocus);
121
121
  }
122
122
  });
123
- var isMonthDisabled = useEventCallback(function (month) {
123
+ var isMonthDisabled = React.useCallback(function (month) {
124
124
  var firstEnabledMonth = utils.startOfMonth(disablePast && utils.isAfter(now, minDate) ? now : minDate);
125
125
  var lastEnabledMonth = utils.startOfMonth(disableFuture && utils.isBefore(now, maxDate) ? now : maxDate);
126
126
  if (utils.isBefore(month, firstEnabledMonth)) {
@@ -133,7 +133,7 @@ export var MonthCalendar = /*#__PURE__*/React.forwardRef(function MonthCalendar(
133
133
  return false;
134
134
  }
135
135
  return shouldDisableMonth(month);
136
- });
136
+ }, [disableFuture, disablePast, maxDate, minDate, now, shouldDisableMonth, utils]);
137
137
  var handleMonthSelection = useEventCallback(function (event, month) {
138
138
  if (readOnly) {
139
139
  return;
@@ -9,7 +9,7 @@ import MenuList from '@mui/material/MenuList';
9
9
  import MenuItem from '@mui/material/MenuItem';
10
10
  import useForkRef from '@mui/utils/useForkRef';
11
11
  import { getMultiSectionDigitalClockSectionUtilityClass } from './multiSectionDigitalClockSectionClasses';
12
- import { DIGITAL_CLOCK_VIEW_HEIGHT } from '../internals/constants/dimensions';
12
+ import { DIGITAL_CLOCK_VIEW_HEIGHT, MULTI_SECTION_CLOCK_SECTION_WIDTH } from '../internals/constants/dimensions';
13
13
  import { jsx as _jsx } from "react/jsx-runtime";
14
14
  var useUtilityClasses = function useUtilityClasses(ownerState) {
15
15
  var classes = ownerState.classes;
@@ -43,7 +43,8 @@ var MultiSectionDigitalClockSectionRoot = styled(MenuList, {
43
43
  '&:after': {
44
44
  display: 'block',
45
45
  content: '""',
46
- height: 188
46
+ // subtracting the height of one item, extra margin and borders to make sure the max height is correct
47
+ height: 'calc(100% - 40px - 6px)'
47
48
  }
48
49
  };
49
50
  });
@@ -58,7 +59,7 @@ var MultiSectionDigitalClockSectionItem = styled(MenuItem, {
58
59
  return {
59
60
  padding: 8,
60
61
  margin: '2px 4px',
61
- width: 48,
62
+ width: MULTI_SECTION_CLOCK_SECTION_WIDTH,
62
63
  justifyContent: 'center',
63
64
  '&:first-of-type': {
64
65
  marginTop: 4
@@ -240,6 +240,12 @@ process.env.NODE_ENV !== "production" ? TimeField.propTypes = {
240
240
  * @default false
241
241
  */
242
242
  readOnly: PropTypes.bool,
243
+ /**
244
+ * 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.
245
+ * For example, on time fields it will be used to determine the date to set.
246
+ * @default The closest valid date using the validation props, except callbacks such as `shouldDisableDate`. Value is rounded to the most granular section used.
247
+ */
248
+ referenceDate: PropTypes.any,
243
249
  /**
244
250
  * If `true`, the label is displayed as required and the `input` element is required.
245
251
  * @default false
@@ -1,10 +1,9 @@
1
- import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
2
1
  import _extends from "@babel/runtime/helpers/esm/extends";
3
- var _excluded = ["value", "defaultValue", "format", "formatDensity", "shouldRespectLeadingZeros", "onChange", "readOnly", "onError", "disableFuture", "disablePast", "minTime", "maxTime", "minutesStep", "shouldDisableClock", "shouldDisableTime", "disableIgnoringDatePartForTimeValidation", "selectedSections", "onSelectedSectionsChange", "ampm", "unstableFieldRef"];
4
2
  import { singleItemFieldValueManager, singleItemValueManager } from '../internals/utils/valueManagers';
5
3
  import { useField } from '../internals/hooks/useField';
6
4
  import { validateTime } from '../internals/utils/validation/validateTime';
7
5
  import { useUtils } from '../internals/hooks/useUtils';
6
+ import { splitFieldInternalAndForwardedProps } from '../internals/utils/fields';
8
7
  var useDefaultizedTimeField = function useDefaultizedTimeField(props) {
9
8
  var _props$ampm, _props$disablePast, _props$disableFuture, _props$format;
10
9
  var utils = useUtils();
@@ -17,55 +16,16 @@ var useDefaultizedTimeField = function useDefaultizedTimeField(props) {
17
16
  });
18
17
  };
19
18
  export var useTimeField = function useTimeField(_ref) {
20
- var props = _ref.props,
19
+ var inProps = _ref.props,
21
20
  inputRef = _ref.inputRef;
22
- var _useDefaultizedTimeFi = useDefaultizedTimeField(props),
23
- value = _useDefaultizedTimeFi.value,
24
- defaultValue = _useDefaultizedTimeFi.defaultValue,
25
- format = _useDefaultizedTimeFi.format,
26
- formatDensity = _useDefaultizedTimeFi.formatDensity,
27
- shouldRespectLeadingZeros = _useDefaultizedTimeFi.shouldRespectLeadingZeros,
28
- onChange = _useDefaultizedTimeFi.onChange,
29
- readOnly = _useDefaultizedTimeFi.readOnly,
30
- onError = _useDefaultizedTimeFi.onError,
31
- disableFuture = _useDefaultizedTimeFi.disableFuture,
32
- disablePast = _useDefaultizedTimeFi.disablePast,
33
- minTime = _useDefaultizedTimeFi.minTime,
34
- maxTime = _useDefaultizedTimeFi.maxTime,
35
- minutesStep = _useDefaultizedTimeFi.minutesStep,
36
- shouldDisableClock = _useDefaultizedTimeFi.shouldDisableClock,
37
- shouldDisableTime = _useDefaultizedTimeFi.shouldDisableTime,
38
- disableIgnoringDatePartForTimeValidation = _useDefaultizedTimeFi.disableIgnoringDatePartForTimeValidation,
39
- selectedSections = _useDefaultizedTimeFi.selectedSections,
40
- onSelectedSectionsChange = _useDefaultizedTimeFi.onSelectedSectionsChange,
41
- ampm = _useDefaultizedTimeFi.ampm,
42
- unstableFieldRef = _useDefaultizedTimeFi.unstableFieldRef,
43
- other = _objectWithoutProperties(_useDefaultizedTimeFi, _excluded);
21
+ var props = useDefaultizedTimeField(inProps);
22
+ var _splitFieldInternalAn = splitFieldInternalAndForwardedProps(props, 'time'),
23
+ forwardedProps = _splitFieldInternalAn.forwardedProps,
24
+ internalProps = _splitFieldInternalAn.internalProps;
44
25
  return useField({
45
26
  inputRef: inputRef,
46
- forwardedProps: other,
47
- internalProps: {
48
- value: value,
49
- defaultValue: defaultValue,
50
- format: format,
51
- formatDensity: formatDensity,
52
- shouldRespectLeadingZeros: shouldRespectLeadingZeros,
53
- onChange: onChange,
54
- readOnly: readOnly,
55
- onError: onError,
56
- disableFuture: disableFuture,
57
- disablePast: disablePast,
58
- minTime: minTime,
59
- maxTime: maxTime,
60
- minutesStep: minutesStep,
61
- shouldDisableClock: shouldDisableClock,
62
- shouldDisableTime: shouldDisableTime,
63
- disableIgnoringDatePartForTimeValidation: disableIgnoringDatePartForTimeValidation,
64
- selectedSections: selectedSections,
65
- onSelectedSectionsChange: onSelectedSectionsChange,
66
- ampm: ampm,
67
- unstableFieldRef: unstableFieldRef
68
- },
27
+ forwardedProps: forwardedProps,
28
+ internalProps: internalProps,
69
29
  valueManager: singleItemValueManager,
70
30
  fieldValueManager: singleItemFieldValueManager,
71
31
  validator: validateTime,
@@ -122,7 +122,7 @@ export var YearCalendar = /*#__PURE__*/React.forwardRef(function YearCalendar(in
122
122
  onFocusedViewChange(newHasFocus);
123
123
  }
124
124
  });
125
- var isYearDisabled = useEventCallback(function (dateToValidate) {
125
+ var isYearDisabled = React.useCallback(function (dateToValidate) {
126
126
  if (disablePast && utils.isBeforeYear(dateToValidate, now)) {
127
127
  return true;
128
128
  }
@@ -139,7 +139,7 @@ export var YearCalendar = /*#__PURE__*/React.forwardRef(function YearCalendar(in
139
139
  return true;
140
140
  }
141
141
  return false;
142
- });
142
+ }, [disableFuture, disablePast, maxDate, minDate, now, shouldDisableYear, utils]);
143
143
  var handleYearSelection = useEventCallback(function (event, year) {
144
144
  if (readOnly) {
145
145
  return;
@@ -0,0 +1,147 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ import _extends from "@babel/runtime/helpers/esm/extends";
3
+ import * as React from 'react';
4
+ import Divider from '@mui/material/Divider';
5
+ import { resolveComponentProps } from '@mui/base/utils';
6
+ import { DateCalendar } from '../DateCalendar';
7
+ import { MultiSectionDigitalClock, multiSectionDigitalClockSectionClasses } from '../MultiSectionDigitalClock';
8
+ import { DateTimeViewWrapper } from '../internals/components/DateTimeViewWrapper';
9
+ import { isInternalTimeView } from '../internals/utils/time-utils';
10
+ import { isDatePickerView } from '../internals/utils/date-utils';
11
+ import { jsx as _jsx } from "react/jsx-runtime";
12
+ import { jsxs as _jsxs } from "react/jsx-runtime";
13
+ export var renderDesktopDateTimeView = function renderDesktopDateTimeView(_ref) {
14
+ var _resolveComponentProp, _resolveComponentProp2, _slotProps$actionBar;
15
+ var view = _ref.view,
16
+ onViewChange = _ref.onViewChange,
17
+ views = _ref.views,
18
+ focusedView = _ref.focusedView,
19
+ onFocusedViewChange = _ref.onFocusedViewChange,
20
+ value = _ref.value,
21
+ defaultValue = _ref.defaultValue,
22
+ onChange = _ref.onChange,
23
+ className = _ref.className,
24
+ classes = _ref.classes,
25
+ disableFuture = _ref.disableFuture,
26
+ disablePast = _ref.disablePast,
27
+ minDate = _ref.minDate,
28
+ minTime = _ref.minTime,
29
+ maxDate = _ref.maxDate,
30
+ maxTime = _ref.maxTime,
31
+ shouldDisableDate = _ref.shouldDisableDate,
32
+ shouldDisableMonth = _ref.shouldDisableMonth,
33
+ shouldDisableYear = _ref.shouldDisableYear,
34
+ shouldDisableTime = _ref.shouldDisableTime,
35
+ shouldDisableClock = _ref.shouldDisableClock,
36
+ reduceAnimations = _ref.reduceAnimations,
37
+ minutesStep = _ref.minutesStep,
38
+ ampm = _ref.ampm,
39
+ onMonthChange = _ref.onMonthChange,
40
+ monthsPerRow = _ref.monthsPerRow,
41
+ onYearChange = _ref.onYearChange,
42
+ yearsPerRow = _ref.yearsPerRow,
43
+ defaultCalendarMonth = _ref.defaultCalendarMonth,
44
+ components = _ref.components,
45
+ componentsProps = _ref.componentsProps,
46
+ slots = _ref.slots,
47
+ slotProps = _ref.slotProps,
48
+ loading = _ref.loading,
49
+ renderLoading = _ref.renderLoading,
50
+ disableHighlightToday = _ref.disableHighlightToday,
51
+ readOnly = _ref.readOnly,
52
+ disabled = _ref.disabled,
53
+ showDaysOutsideCurrentMonth = _ref.showDaysOutsideCurrentMonth,
54
+ dayOfWeekFormatter = _ref.dayOfWeekFormatter,
55
+ sx = _ref.sx,
56
+ autoFocus = _ref.autoFocus,
57
+ fixedWeekNumber = _ref.fixedWeekNumber,
58
+ displayWeekNumber = _ref.displayWeekNumber,
59
+ disableIgnoringDatePartForTimeValidation = _ref.disableIgnoringDatePartForTimeValidation,
60
+ timeSteps = _ref.timeSteps,
61
+ skipDisabled = _ref.skipDisabled,
62
+ timeViewsCount = _ref.timeViewsCount;
63
+ var isActionBarVisible = !!((_resolveComponentProp = resolveComponentProps((_slotProps$actionBar = slotProps == null ? void 0 : slotProps.actionBar) != null ? _slotProps$actionBar : componentsProps == null ? void 0 : componentsProps.actionBar, {})) != null && (_resolveComponentProp2 = _resolveComponentProp.actions) != null && _resolveComponentProp2.length);
64
+ return /*#__PURE__*/_jsxs(React.Fragment, {
65
+ children: [/*#__PURE__*/_jsxs(DateTimeViewWrapper, {
66
+ children: [/*#__PURE__*/_jsx(DateCalendar, {
67
+ view: isDatePickerView(view) ? view : 'day',
68
+ onViewChange: onViewChange,
69
+ views: views.filter(isDatePickerView),
70
+ focusedView: focusedView && isDatePickerView(focusedView) ? focusedView : null,
71
+ onFocusedViewChange: onFocusedViewChange,
72
+ value: value,
73
+ defaultValue: defaultValue,
74
+ onChange: onChange,
75
+ className: className,
76
+ classes: classes,
77
+ disableFuture: disableFuture,
78
+ disablePast: disablePast,
79
+ minDate: minDate,
80
+ maxDate: maxDate,
81
+ shouldDisableDate: shouldDisableDate,
82
+ shouldDisableMonth: shouldDisableMonth,
83
+ shouldDisableYear: shouldDisableYear,
84
+ reduceAnimations: reduceAnimations,
85
+ onMonthChange: onMonthChange,
86
+ monthsPerRow: monthsPerRow,
87
+ onYearChange: onYearChange,
88
+ yearsPerRow: yearsPerRow,
89
+ defaultCalendarMonth: defaultCalendarMonth,
90
+ components: components,
91
+ componentsProps: componentsProps,
92
+ slots: slots,
93
+ slotProps: slotProps,
94
+ loading: loading,
95
+ renderLoading: renderLoading,
96
+ disableHighlightToday: disableHighlightToday,
97
+ readOnly: readOnly,
98
+ disabled: disabled,
99
+ showDaysOutsideCurrentMonth: showDaysOutsideCurrentMonth,
100
+ dayOfWeekFormatter: dayOfWeekFormatter,
101
+ sx: sx,
102
+ autoFocus: autoFocus,
103
+ fixedWeekNumber: fixedWeekNumber,
104
+ displayWeekNumber: displayWeekNumber
105
+ }), timeViewsCount > 0 && /*#__PURE__*/_jsxs(React.Fragment, {
106
+ children: [/*#__PURE__*/_jsx(Divider, {
107
+ orientation: "vertical"
108
+ }), /*#__PURE__*/_jsx(MultiSectionDigitalClock, {
109
+ view: isInternalTimeView(view) ? view : 'hours',
110
+ onViewChange: onViewChange,
111
+ focusedView: focusedView && isInternalTimeView(focusedView) ? focusedView : null,
112
+ onFocusedViewChange: onFocusedViewChange,
113
+ views: views.filter(isInternalTimeView),
114
+ value: value,
115
+ defaultValue: defaultValue,
116
+ onChange: onChange,
117
+ className: className,
118
+ classes: classes,
119
+ disableFuture: disableFuture,
120
+ disablePast: disablePast,
121
+ minTime: minTime,
122
+ maxTime: maxTime,
123
+ shouldDisableTime: shouldDisableTime,
124
+ shouldDisableClock: shouldDisableClock,
125
+ minutesStep: minutesStep,
126
+ ampm: ampm,
127
+ components: components,
128
+ componentsProps: componentsProps,
129
+ slots: slots,
130
+ slotProps: slotProps,
131
+ readOnly: readOnly,
132
+ disabled: disabled,
133
+ sx: _extends(_defineProperty({
134
+ borderBottom: 0,
135
+ width: 'auto'
136
+ }, ".".concat(multiSectionDigitalClockSectionClasses.root), {
137
+ maxHeight: '100%'
138
+ }), Array.isArray(sx) ? sx : [sx]),
139
+ autoFocus: autoFocus,
140
+ disableIgnoringDatePartForTimeValidation: disableIgnoringDatePartForTimeValidation,
141
+ timeSteps: timeSteps,
142
+ skipDisabled: skipDisabled
143
+ })]
144
+ })]
145
+ }), isActionBarVisible && /*#__PURE__*/_jsx(Divider, {})]
146
+ });
147
+ };
@@ -0,0 +1 @@
1
+ export { renderDesktopDateTimeView } from './dateTimeViewRenderers';
@@ -1,9 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { DateCalendar } from '../DateCalendar';
3
+ import { isDatePickerView } from '../internals/utils/date-utils';
3
4
  import { jsx as _jsx } from "react/jsx-runtime";
4
- var isDatePickerView = function isDatePickerView(view) {
5
- return view === 'year' || view === 'month' || view === 'day';
6
- };
7
5
  export var renderDateViewCalendar = function renderDateViewCalendar(_ref) {
8
6
  var view = _ref.view,
9
7
  onViewChange = _ref.onViewChange,
@@ -47,7 +45,7 @@ export var renderDateViewCalendar = function renderDateViewCalendar(_ref) {
47
45
  view: view,
48
46
  onViewChange: onViewChange,
49
47
  views: views.filter(isDatePickerView),
50
- focusedView: focusedView,
48
+ focusedView: focusedView && isDatePickerView(focusedView) ? focusedView : null,
51
49
  onFocusedViewChange: onFocusedViewChange,
52
50
  value: value,
53
51
  defaultValue: defaultValue,
@@ -6,35 +6,35 @@ import * as React from 'react';
6
6
  */
7
7
  import { jsx as _jsx } from "react/jsx-runtime";
8
8
  import { jsxs as _jsxs } from "react/jsx-runtime";
9
- export var ArrowDropDown = createSvgIcon( /*#__PURE__*/_jsx("path", {
9
+ export var ArrowDropDownIcon = createSvgIcon( /*#__PURE__*/_jsx("path", {
10
10
  d: "M7 10l5 5 5-5z"
11
11
  }), 'ArrowDropDown');
12
12
 
13
13
  /**
14
14
  * @ignore - internal component.
15
15
  */
16
- export var ArrowLeft = createSvgIcon( /*#__PURE__*/_jsx("path", {
16
+ export var ArrowLeftIcon = createSvgIcon( /*#__PURE__*/_jsx("path", {
17
17
  d: "M15.41 16.59L10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z"
18
18
  }), 'ArrowLeft');
19
19
 
20
20
  /**
21
21
  * @ignore - internal component.
22
22
  */
23
- export var ArrowRight = createSvgIcon( /*#__PURE__*/_jsx("path", {
23
+ export var ArrowRightIcon = createSvgIcon( /*#__PURE__*/_jsx("path", {
24
24
  d: "M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z"
25
25
  }), 'ArrowRight');
26
26
 
27
27
  /**
28
28
  * @ignore - internal component.
29
29
  */
30
- export var Calendar = createSvgIcon( /*#__PURE__*/_jsx("path", {
30
+ export var CalendarIcon = createSvgIcon( /*#__PURE__*/_jsx("path", {
31
31
  d: "M17 12h-5v5h5v-5zM16 1v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-1V1h-2zm3 18H5V8h14v11z"
32
32
  }), 'Calendar');
33
33
 
34
34
  /**
35
35
  * @ignore - internal component.
36
36
  */
37
- export var Clock = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
37
+ export var ClockIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
38
38
  children: [/*#__PURE__*/_jsx("path", {
39
39
  d: "M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"
40
40
  }), /*#__PURE__*/_jsx("path", {
@@ -45,14 +45,14 @@ export var Clock = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
45
45
  /**
46
46
  * @ignore - internal component.
47
47
  */
48
- export var DateRange = createSvgIcon( /*#__PURE__*/_jsx("path", {
48
+ export var DateRangeIcon = createSvgIcon( /*#__PURE__*/_jsx("path", {
49
49
  d: "M9 11H7v2h2v-2zm4 0h-2v2h2v-2zm4 0h-2v2h2v-2zm2-7h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V9h14v11z"
50
50
  }), 'DateRange');
51
51
 
52
52
  /**
53
53
  * @ignore - internal component.
54
54
  */
55
- export var Time = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
55
+ export var TimeIcon = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {
56
56
  children: [/*#__PURE__*/_jsx("path", {
57
57
  d: "M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"
58
58
  }), /*#__PURE__*/_jsx("path", {
package/legacy/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-date-pickers v6.4.0
2
+ * @mui/x-date-pickers v6.6.0
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -47,4 +47,5 @@ export * from './PickersLayout';
47
47
  export * from './PickersActionBar';
48
48
  export * from './PickersShortcuts';
49
49
  export { DEFAULT_DESKTOP_MODE_MEDIA_QUERY } from './internals/utils/utils';
50
- export * from './models';
50
+ export * from './models';
51
+ export * from './icons';
@@ -0,0 +1,5 @@
1
+ import { styled } from '@mui/material/styles';
2
+ export var DateTimeViewWrapper = styled('div')({
3
+ display: 'flex',
4
+ margin: '0 auto'
5
+ });
@@ -0,0 +1 @@
1
+ export { DateTimeViewWrapper } from './DateTimeViewWrapper';
@@ -11,7 +11,7 @@ import { useTheme, styled, useThemeProps } from '@mui/material/styles';
11
11
  import { unstable_composeClasses as composeClasses } from '@mui/utils';
12
12
  import { useSlotProps } from '@mui/base/utils';
13
13
  import IconButton from '@mui/material/IconButton';
14
- import { ArrowLeft, ArrowRight } from '../icons';
14
+ import { ArrowLeftIcon, ArrowRightIcon } from '../../../icons';
15
15
  import { getPickersArrowSwitcherUtilityClass } from './pickersArrowSwitcherClasses';
16
16
  import { jsx as _jsx } from "react/jsx-runtime";
17
17
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -130,7 +130,7 @@ export var PickersArrowSwitcher = /*#__PURE__*/React.forwardRef(function Pickers
130
130
  }),
131
131
  className: classes.button
132
132
  });
133
- var LeftArrowIcon = (_slots$leftArrowIcon = slots == null ? void 0 : slots.leftArrowIcon) != null ? _slots$leftArrowIcon : ArrowLeft;
133
+ var LeftArrowIcon = (_slots$leftArrowIcon = slots == null ? void 0 : slots.leftArrowIcon) != null ? _slots$leftArrowIcon : ArrowLeftIcon;
134
134
  // The spread is here to avoid this bug mui/material-ui#34056
135
135
  var _useSlotProps = useSlotProps({
136
136
  elementType: LeftArrowIcon,
@@ -142,7 +142,7 @@ export var PickersArrowSwitcher = /*#__PURE__*/React.forwardRef(function Pickers
142
142
  }),
143
143
  leftArrowIconOwnerState = _useSlotProps.ownerState,
144
144
  leftArrowIconProps = _objectWithoutProperties(_useSlotProps, _excluded2);
145
- var RightArrowIcon = (_slots$rightArrowIcon = slots == null ? void 0 : slots.rightArrowIcon) != null ? _slots$rightArrowIcon : ArrowRight;
145
+ var RightArrowIcon = (_slots$rightArrowIcon = slots == null ? void 0 : slots.rightArrowIcon) != null ? _slots$rightArrowIcon : ArrowRightIcon;
146
146
  // The spread is here to avoid this bug mui/material-ui#34056
147
147
  var _useSlotProps2 = useSlotProps({
148
148
  elementType: RightArrowIcon,
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
- var _excluded = ["align", "className", "selected", "typographyClassName", "value", "variant"];
3
+ var _excluded = ["align", "className", "selected", "typographyClassName", "value", "variant", "width"];
4
4
  import * as React from 'react';
5
5
  import clsx from 'clsx';
6
6
  import Button from '@mui/material/Button';
@@ -38,13 +38,18 @@ export var PickersToolbarButton = /*#__PURE__*/React.forwardRef(function Pickers
38
38
  typographyClassName = props.typographyClassName,
39
39
  value = props.value,
40
40
  variant = props.variant,
41
+ width = props.width,
41
42
  other = _objectWithoutProperties(props, _excluded);
42
43
  var classes = useUtilityClasses(props);
43
44
  return /*#__PURE__*/_jsx(PickersToolbarButtonRoot, _extends({
44
45
  variant: "text",
45
46
  ref: ref,
46
47
  className: clsx(className, classes.root)
47
- }, other, {
48
+ }, width ? {
49
+ sx: {
50
+ width: width
51
+ }
52
+ } : {}, other, {
48
53
  children: /*#__PURE__*/_jsx(PickersToolbarText, {
49
54
  align: align,
50
55
  className: typographyClassName,
@@ -2,4 +2,5 @@ export var DAY_SIZE = 36;
2
2
  export var DAY_MARGIN = 2;
3
3
  export var DIALOG_WIDTH = 320;
4
4
  export var VIEW_HEIGHT = 358;
5
- export var DIGITAL_CLOCK_VIEW_HEIGHT = 232;
5
+ export var DIGITAL_CLOCK_VIEW_HEIGHT = 232;
6
+ export var MULTI_SECTION_CLOCK_SECTION_WIDTH = 48;
@@ -67,10 +67,18 @@ export var useField = function useField(params) {
67
67
  return;
68
68
  }
69
69
  var browserStartIndex = (_selectionStart = inputRef.current.selectionStart) != null ? _selectionStart : 0;
70
- var nextSectionIndex = browserStartIndex <= state.sections[0].startInInput ? 1 // Special case if browser index is in invisible characters at the beginning.
71
- : state.sections.findIndex(function (section) {
72
- return section.startInInput - section.startSeparator.length > browserStartIndex;
73
- });
70
+ var nextSectionIndex;
71
+ if (browserStartIndex <= state.sections[0].startInInput) {
72
+ // Special case if browser index is in invisible characters at the beginning
73
+ nextSectionIndex = 1;
74
+ } else if (browserStartIndex >= state.sections[state.sections.length - 1].endInInput) {
75
+ // If the click is after the last character of the input, then we want to select the 1st section.
76
+ nextSectionIndex = 1;
77
+ } else {
78
+ nextSectionIndex = state.sections.findIndex(function (section) {
79
+ return section.startInInput - section.startSeparator.length > browserStartIndex;
80
+ });
81
+ }
74
82
  var sectionIndex = nextSectionIndex === -1 ? state.sections.length - 1 : nextSectionIndex - 1;
75
83
  _setSelectedSections(sectionIndex);
76
84
  };
@@ -160,7 +168,7 @@ export var useField = function useField(params) {
160
168
  return;
161
169
  }
162
170
  var keyPressed;
163
- if (selectedSectionIndexes.startIndex === 0 && selectedSectionIndexes.endIndex === state.sections.length - 1) {
171
+ if (selectedSectionIndexes.startIndex === 0 && selectedSectionIndexes.endIndex === state.sections.length - 1 && cleanValueStr.length === 1) {
164
172
  keyPressed = cleanValueStr;
165
173
  } else {
166
174
  var prevValueStr = cleanString(fieldValueManager.getValueStrFromSections(state.sections, isRTL));
@@ -183,7 +191,7 @@ export var useField = function useField(params) {
183
191
 
184
192
  // The active section being selected, the browser has replaced its value with the key pressed by the user.
185
193
  var activeSectionEndRelativeToNewValue = cleanValueStr.length - prevValueStr.length + activeSection.end - cleanString(activeSection.endSeparator || '').length;
186
- keyPressed = cleanValueStr.slice(activeSection.start, activeSectionEndRelativeToNewValue);
194
+ keyPressed = cleanValueStr.slice(activeSection.start + cleanString(activeSection.startSeparator || '').length, activeSectionEndRelativeToNewValue);
187
195
  }
188
196
  if (isAndroid() && keyPressed.length === 0) {
189
197
  setTempAndroidValueStr(valueStr);
@@ -299,7 +307,12 @@ export var useField = function useField(params) {
299
307
  if (selectionStart !== inputRef.current.selectionStart || selectionEnd !== inputRef.current.selectionEnd) {
300
308
  // Fix scroll jumping on iOS browser: https://github.com/mui/mui-x/issues/8321
301
309
  var currentScrollTop = inputRef.current.scrollTop;
302
- inputRef.current.setSelectionRange(selectionStart, selectionEnd);
310
+ // On multi input range pickers we want to update selection range only for the active input
311
+ // This helps avoiding the focus jumping on Safari https://github.com/mui/mui-x/issues/9003
312
+ // because WebKit implements the `setSelectionRange` based on the spec: https://bugs.webkit.org/show_bug.cgi?id=224425
313
+ if (inputRef.current && inputRef.current === getActiveElement(document)) {
314
+ inputRef.current.setSelectionRange(selectionStart, selectionEnd);
315
+ }
303
316
  // Even reading this variable seems to do the trick, but also setting it just to make use of it
304
317
  inputRef.current.scrollTop = currentScrollTop;
305
318
  }
@@ -6,6 +6,7 @@ import useControlled from '@mui/utils/useControlled';
6
6
  import { useTheme } from '@mui/material/styles';
7
7
  import { useUtils, useLocaleText, useLocalizationContext } from '../useUtils';
8
8
  import { addPositionPropertiesToSections, splitFormatIntoSections, clampDaySectionIfPossible, mergeDateIntoReferenceDate, getSectionsBoundaries, validateSections, getDateFromDateSections } from './useField.utils';
9
+ import { getSectionTypeGranularity } from '../../utils/getDefaultReferenceDate';
9
10
  export var useFieldState = function useFieldState(params) {
10
11
  var _ref;
11
12
  var utils = useUtils();
@@ -21,6 +22,7 @@ export var useFieldState = function useFieldState(params) {
21
22
  _params$internalProps = params.internalProps,
22
23
  valueProp = _params$internalProps.value,
23
24
  defaultValue = _params$internalProps.defaultValue,
25
+ referenceDateProp = _params$internalProps.referenceDate,
24
26
  onChange = _params$internalProps.onChange,
25
27
  format = _params$internalProps.format,
26
28
  _params$internalProps2 = _params$internalProps.formatDensity,
@@ -46,12 +48,24 @@ export var useFieldState = function useFieldState(params) {
46
48
  var _React$useState = React.useState(function () {
47
49
  var sections = getSectionsFromValue(valueFromTheOutside);
48
50
  validateSections(sections, valueType);
49
- return {
51
+ var stateWithoutReferenceDate = {
50
52
  sections: sections,
51
53
  value: valueFromTheOutside,
52
- referenceValue: fieldValueManager.updateReferenceValue(utils, valueFromTheOutside, valueManager.getTodayValue(utils, valueType)),
54
+ referenceValue: valueManager.emptyValue,
53
55
  tempValueStrAndroid: null
54
56
  };
57
+ var granularity = getSectionTypeGranularity(sections);
58
+ var referenceValue = valueManager.getInitialReferenceValue({
59
+ referenceDate: referenceDateProp,
60
+ value: valueFromTheOutside,
61
+ valueType: valueType,
62
+ utils: utils,
63
+ props: internalProps,
64
+ granularity: granularity
65
+ });
66
+ return _extends({}, stateWithoutReferenceDate, {
67
+ referenceValue: referenceValue
68
+ });
55
69
  }),
56
70
  _React$useState2 = _slicedToArray(_React$useState, 2),
57
71
  state = _React$useState2[0],
@@ -271,7 +285,13 @@ export var useFieldState = function useFieldState(params) {
271
285
  });
272
286
  };
273
287
  React.useEffect(function () {
288
+ var shouldUpdate = false;
274
289
  if (!valueManager.areValuesEqual(utils, state.value, valueFromTheOutside)) {
290
+ shouldUpdate = true;
291
+ } else {
292
+ shouldUpdate = valueManager.getTimezone(utils, state.value) !== valueManager.getTimezone(utils, valueFromTheOutside);
293
+ }
294
+ if (shouldUpdate) {
275
295
  setState(function (prevState) {
276
296
  return _extends({}, prevState, {
277
297
  value: valueFromTheOutside,