@mui/x-date-pickers 6.2.1 → 6.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (616) hide show
  1. package/AdapterDateFns/AdapterDateFns.d.ts +109 -0
  2. package/AdapterDateFns/AdapterDateFns.js +598 -0
  3. package/AdapterDateFns/index.d.ts +1 -13
  4. package/AdapterDateFns/index.js +1 -149
  5. package/AdapterDateFnsJalali/AdapterDateFnsJalali.d.ts +109 -0
  6. package/AdapterDateFnsJalali/AdapterDateFnsJalali.js +610 -0
  7. package/AdapterDateFnsJalali/index.d.ts +1 -13
  8. package/AdapterDateFnsJalali/index.js +1 -149
  9. package/AdapterDayjs/AdapterDayjs.d.ts +53 -53
  10. package/AdapterDayjs/AdapterDayjs.js +146 -111
  11. package/AdapterLuxon/AdapterLuxon.d.ts +108 -0
  12. package/AdapterLuxon/AdapterLuxon.js +513 -0
  13. package/AdapterLuxon/index.d.ts +1 -14
  14. package/AdapterLuxon/index.js +1 -111
  15. package/AdapterMoment/AdapterMoment.d.ts +110 -0
  16. package/AdapterMoment/AdapterMoment.js +416 -0
  17. package/AdapterMoment/index.d.ts +1 -21
  18. package/AdapterMoment/index.js +1 -99
  19. package/AdapterMomentHijri/AdapterMomentHijri.d.ts +67 -0
  20. package/AdapterMomentHijri/AdapterMomentHijri.js +269 -0
  21. package/AdapterMomentHijri/index.d.ts +1 -18
  22. package/AdapterMomentHijri/index.js +1 -74
  23. package/AdapterMomentJalaali/AdapterMomentJalaali.d.ts +74 -0
  24. package/AdapterMomentJalaali/AdapterMomentJalaali.js +276 -0
  25. package/AdapterMomentJalaali/index.d.ts +1 -22
  26. package/AdapterMomentJalaali/index.js +1 -87
  27. package/CHANGELOG.md +118 -3
  28. package/DateCalendar/DateCalendar.types.d.ts +1 -1
  29. package/DateCalendar/DayCalendar.d.ts +1 -1
  30. package/DateCalendar/DayCalendar.js +1 -1
  31. package/DateCalendar/PickersCalendarHeader.d.ts +1 -1
  32. package/DateCalendar/useCalendarState.js +1 -1
  33. package/DateCalendar/useIsDateDisabled.d.ts +2 -0
  34. package/DateCalendar/useIsDateDisabled.js +27 -0
  35. package/DateField/DateField.js +24 -3
  36. package/DateField/DateField.types.d.ts +2 -2
  37. package/DateField/useDateField.js +4 -2
  38. package/DatePicker/DatePickerToolbar.js +1 -1
  39. package/DateTimeField/DateTimeField.js +25 -3
  40. package/DateTimeField/DateTimeField.types.d.ts +4 -11
  41. package/DateTimeField/useDateTimeField.js +4 -2
  42. package/DateTimePicker/DateTimePicker.js +1 -0
  43. package/DateTimePicker/shared.d.ts +6 -12
  44. package/DesktopDatePicker/DesktopDatePicker.js +1 -1
  45. package/DesktopDateTimePicker/DesktopDateTimePicker.js +2 -1
  46. package/DesktopTimePicker/DesktopTimePicker.js +52 -8
  47. package/DesktopTimePicker/DesktopTimePicker.types.d.ts +12 -4
  48. package/DigitalClock/DigitalClock.d.ts +7 -0
  49. package/DigitalClock/DigitalClock.js +397 -0
  50. package/DigitalClock/DigitalClock.types.d.ts +47 -0
  51. package/DigitalClock/digitalClockClasses.d.ts +11 -0
  52. package/DigitalClock/digitalClockClasses.js +6 -0
  53. package/DigitalClock/index.d.ts +4 -0
  54. package/DigitalClock/index.js +2 -0
  55. package/DigitalClock/package.json +6 -0
  56. package/MobileDatePicker/MobileDatePicker.js +1 -1
  57. package/MobileDateTimePicker/MobileDateTimePicker.js +2 -1
  58. package/MobileTimePicker/MobileTimePicker.js +2 -1
  59. package/MobileTimePicker/MobileTimePicker.types.d.ts +8 -7
  60. package/MonthCalendar/MonthCalendar.types.d.ts +1 -1
  61. package/MultiSectionDigitalClock/MultiSectionDigitalClock.d.ts +7 -0
  62. package/MultiSectionDigitalClock/MultiSectionDigitalClock.js +479 -0
  63. package/MultiSectionDigitalClock/MultiSectionDigitalClock.types.d.ts +57 -0
  64. package/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.d.ts +22 -0
  65. package/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.js +65 -0
  66. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.d.ts +28 -0
  67. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +151 -0
  68. package/MultiSectionDigitalClock/index.d.ts +7 -0
  69. package/MultiSectionDigitalClock/index.js +3 -0
  70. package/MultiSectionDigitalClock/multiSectionDigitalClockClasses.d.ts +7 -0
  71. package/MultiSectionDigitalClock/multiSectionDigitalClockClasses.js +6 -0
  72. package/MultiSectionDigitalClock/multiSectionDigitalClockSectionClasses.d.ts +9 -0
  73. package/MultiSectionDigitalClock/multiSectionDigitalClockSectionClasses.js +6 -0
  74. package/MultiSectionDigitalClock/package.json +6 -0
  75. package/PickersDay/PickersDay.js +4 -1
  76. package/PickersLayout/PickersLayout.d.ts +2 -2
  77. package/PickersLayout/PickersLayout.js +2 -2
  78. package/PickersLayout/PickersLayout.types.d.ts +7 -8
  79. package/PickersLayout/usePickerLayout.d.ts +2 -2
  80. package/README.md +0 -9
  81. package/StaticDateTimePicker/StaticDateTimePicker.js +2 -1
  82. package/StaticTimePicker/StaticTimePicker.js +2 -1
  83. package/StaticTimePicker/StaticTimePicker.types.d.ts +1 -1
  84. package/TimeClock/TimeClock.js +35 -12
  85. package/TimeClock/TimeClock.types.d.ts +5 -67
  86. package/TimeField/TimeField.js +25 -3
  87. package/TimeField/TimeField.types.d.ts +3 -2
  88. package/TimeField/useTimeField.js +4 -2
  89. package/TimePicker/TimePicker.js +25 -2
  90. package/TimePicker/TimePicker.types.d.ts +4 -3
  91. package/TimePicker/TimePickerToolbar.d.ts +2 -2
  92. package/TimePicker/TimePickerToolbar.js +2 -2
  93. package/TimePicker/shared.d.ts +9 -7
  94. package/YearCalendar/YearCalendar.types.d.ts +1 -1
  95. package/dateViewRenderers/dateViewRenderers.d.ts +2 -2
  96. package/index.d.ts +2 -0
  97. package/index.js +4 -1
  98. package/internals/components/PickersToolbar.d.ts +3 -3
  99. package/internals/constants/dimensions.d.ts +1 -0
  100. package/internals/constants/dimensions.js +2 -1
  101. package/internals/demo/DemoContainer.js +4 -1
  102. package/internals/hooks/date-helpers-hooks.d.ts +3 -2
  103. package/internals/hooks/date-helpers-hooks.js +3 -3
  104. package/internals/hooks/useDesktopPicker/useDesktopPicker.d.ts +2 -2
  105. package/internals/hooks/useDesktopPicker/useDesktopPicker.js +2 -1
  106. package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +7 -6
  107. package/internals/hooks/useField/useField.js +12 -11
  108. package/internals/hooks/useField/useField.types.d.ts +19 -4
  109. package/internals/hooks/useField/useField.utils.d.ts +8 -5
  110. package/internals/hooks/useField/useField.utils.js +61 -35
  111. package/internals/hooks/useField/useFieldCharacterEditing.js +18 -10
  112. package/internals/hooks/useField/useFieldState.js +4 -3
  113. package/internals/hooks/useIsLandscape.d.ts +2 -2
  114. package/internals/hooks/useMobilePicker/useMobilePicker.d.ts +2 -2
  115. package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +7 -6
  116. package/internals/hooks/usePicker/usePicker.d.ts +4 -3
  117. package/internals/hooks/usePicker/usePicker.types.d.ts +6 -5
  118. package/internals/hooks/usePicker/usePickerLayoutProps.d.ts +5 -6
  119. package/internals/hooks/usePicker/usePickerValue.d.ts +1 -1
  120. package/internals/hooks/usePicker/usePickerValue.js +1 -1
  121. package/internals/hooks/usePicker/usePickerValue.types.d.ts +1 -1
  122. package/internals/hooks/usePicker/usePickerViews.d.ts +12 -12
  123. package/internals/hooks/useStaticPicker/useStaticPicker.d.ts +2 -2
  124. package/internals/hooks/useStaticPicker/useStaticPicker.types.d.ts +6 -5
  125. package/internals/hooks/{validation/useValidation.d.ts → useValidation.d.ts} +1 -1
  126. package/internals/hooks/{validation/useValidation.js → useValidation.js} +1 -1
  127. package/internals/hooks/useViews.d.ts +8 -6
  128. package/internals/hooks/useViews.js +29 -13
  129. package/internals/index.d.ts +7 -7
  130. package/internals/index.js +5 -5
  131. package/internals/models/common.d.ts +3 -0
  132. package/internals/models/index.d.ts +1 -0
  133. package/internals/models/index.js +2 -1
  134. package/internals/models/props/basePickerProps.d.ts +3 -3
  135. package/internals/models/props/clock.d.ts +88 -0
  136. package/internals/models/props/tabs.d.ts +2 -2
  137. package/internals/models/props/toolbar.d.ts +3 -3
  138. package/internals/{hooks/validation/models.d.ts → models/validation.d.ts} +13 -3
  139. package/internals/models/validation.js +1 -0
  140. package/internals/utils/time-utils.d.ts +7 -7
  141. package/internals/utils/time-utils.js +2 -1
  142. package/internals/utils/{validation.d.ts → validation/extractValidationProps.d.ts} +1 -1
  143. package/internals/utils/{validation.js → validation/extractValidationProps.js} +1 -1
  144. package/internals/{hooks/validation/useDateValidation.d.ts → utils/validation/validateDate.d.ts} +2 -3
  145. package/internals/{hooks/validation/useDateValidation.js → utils/validation/validateDate.js} +1 -27
  146. package/internals/{hooks/validation/useDateTimeValidation.d.ts → utils/validation/validateDateTime.d.ts} +3 -3
  147. package/{modern/internals/hooks/validation/useDateTimeValidation.js → internals/utils/validation/validateDateTime.js} +2 -2
  148. package/internals/{hooks/validation/useTimeValidation.d.ts → utils/validation/validateTime.d.ts} +2 -2
  149. package/{modern/internals/hooks/validation/useTimeValidation.js → internals/utils/validation/validateTime.js} +1 -1
  150. package/internals/utils/views.d.ts +3 -2
  151. package/legacy/AdapterDateFns/AdapterDateFns.js +606 -0
  152. package/legacy/AdapterDateFns/index.js +1 -165
  153. package/legacy/AdapterDateFnsJalali/AdapterDateFnsJalali.js +620 -0
  154. package/legacy/AdapterDateFnsJalali/index.js +1 -165
  155. package/legacy/AdapterDayjs/AdapterDayjs.js +146 -111
  156. package/legacy/AdapterLuxon/AdapterLuxon.js +524 -0
  157. package/legacy/AdapterLuxon/index.js +1 -127
  158. package/legacy/AdapterMoment/AdapterMoment.js +422 -0
  159. package/legacy/AdapterMoment/index.js +1 -115
  160. package/legacy/AdapterMomentHijri/AdapterMomentHijri.js +284 -0
  161. package/legacy/AdapterMomentHijri/index.js +1 -90
  162. package/legacy/AdapterMomentJalaali/AdapterMomentJalaali.js +291 -0
  163. package/legacy/AdapterMomentJalaali/index.js +1 -103
  164. package/legacy/DateCalendar/DayCalendar.js +1 -1
  165. package/legacy/DateCalendar/useCalendarState.js +1 -1
  166. package/legacy/DateCalendar/useIsDateDisabled.js +28 -0
  167. package/legacy/DateField/DateField.js +24 -3
  168. package/legacy/DateField/useDateField.js +4 -2
  169. package/legacy/DatePicker/DatePickerToolbar.js +1 -1
  170. package/legacy/DateTimeField/DateTimeField.js +25 -3
  171. package/legacy/DateTimeField/useDateTimeField.js +4 -2
  172. package/legacy/DateTimePicker/DateTimePicker.js +1 -0
  173. package/legacy/DesktopDatePicker/DesktopDatePicker.js +1 -1
  174. package/legacy/DesktopDateTimePicker/DesktopDateTimePicker.js +2 -1
  175. package/legacy/DesktopTimePicker/DesktopTimePicker.js +53 -8
  176. package/legacy/DigitalClock/DigitalClock.js +419 -0
  177. package/legacy/DigitalClock/DigitalClock.types.js +1 -0
  178. package/legacy/DigitalClock/digitalClockClasses.js +6 -0
  179. package/legacy/DigitalClock/index.js +2 -0
  180. package/legacy/MobileDatePicker/MobileDatePicker.js +1 -1
  181. package/legacy/MobileDateTimePicker/MobileDateTimePicker.js +2 -1
  182. package/legacy/MobileTimePicker/MobileTimePicker.js +2 -1
  183. package/legacy/MultiSectionDigitalClock/MultiSectionDigitalClock.js +508 -0
  184. package/legacy/MultiSectionDigitalClock/MultiSectionDigitalClock.types.js +1 -0
  185. package/legacy/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.js +65 -0
  186. package/legacy/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +157 -0
  187. package/legacy/MultiSectionDigitalClock/index.js +3 -0
  188. package/legacy/MultiSectionDigitalClock/multiSectionDigitalClockClasses.js +6 -0
  189. package/legacy/MultiSectionDigitalClock/multiSectionDigitalClockSectionClasses.js +6 -0
  190. package/legacy/PickersDay/PickersDay.js +3 -1
  191. package/legacy/PickersLayout/PickersLayout.js +2 -2
  192. package/legacy/StaticDateTimePicker/StaticDateTimePicker.js +2 -1
  193. package/legacy/StaticTimePicker/StaticTimePicker.js +2 -1
  194. package/legacy/TimeClock/TimeClock.js +35 -12
  195. package/legacy/TimeField/TimeField.js +25 -3
  196. package/legacy/TimeField/useTimeField.js +4 -2
  197. package/legacy/TimePicker/TimePicker.js +25 -2
  198. package/legacy/TimePicker/TimePickerToolbar.js +2 -2
  199. package/legacy/index.js +4 -1
  200. package/legacy/internals/constants/dimensions.js +2 -1
  201. package/legacy/internals/demo/DemoContainer.js +4 -1
  202. package/legacy/internals/hooks/date-helpers-hooks.js +3 -3
  203. package/legacy/internals/hooks/useDesktopPicker/useDesktopPicker.js +2 -1
  204. package/legacy/internals/hooks/useField/useField.js +11 -10
  205. package/legacy/internals/hooks/useField/useField.utils.js +59 -35
  206. package/legacy/internals/hooks/useField/useFieldCharacterEditing.js +18 -10
  207. package/legacy/internals/hooks/useField/useFieldState.js +6 -4
  208. package/legacy/internals/hooks/usePicker/usePickerValue.js +1 -1
  209. package/legacy/internals/hooks/{validation/useValidation.js → useValidation.js} +1 -1
  210. package/legacy/internals/hooks/useViews.js +30 -14
  211. package/legacy/internals/index.js +5 -5
  212. package/legacy/internals/models/index.js +2 -1
  213. package/legacy/internals/models/props/clock.js +1 -0
  214. package/legacy/internals/models/validation.js +1 -0
  215. package/legacy/internals/utils/time-utils.js +2 -1
  216. package/legacy/internals/utils/{validation.js → validation/extractValidationProps.js} +1 -1
  217. package/legacy/internals/{hooks/validation/useDateValidation.js → utils/validation/validateDate.js} +1 -28
  218. package/legacy/internals/{hooks/validation/useDateTimeValidation.js → utils/validation/validateDateTime.js} +2 -2
  219. package/legacy/internals/{hooks/validation/useTimeValidation.js → utils/validation/validateTime.js} +1 -1
  220. package/legacy/locales/beBY.js +5 -3
  221. package/legacy/locales/caES.js +6 -1
  222. package/legacy/locales/csCZ.js +6 -4
  223. package/legacy/locales/daDK.js +6 -2
  224. package/legacy/locales/deDE.js +6 -2
  225. package/legacy/locales/enUS.js +4 -0
  226. package/legacy/locales/esES.js +6 -1
  227. package/legacy/locales/faIR.js +11 -1
  228. package/legacy/locales/fiFI.js +6 -1
  229. package/legacy/locales/frFR.js +6 -1
  230. package/legacy/locales/heIL.js +6 -1
  231. package/legacy/locales/huHU.js +6 -2
  232. package/legacy/locales/index.js +1 -0
  233. package/legacy/locales/isIS.js +11 -1
  234. package/legacy/locales/itIT.js +6 -1
  235. package/legacy/locales/jaJP.js +6 -2
  236. package/legacy/locales/koKR.js +6 -1
  237. package/legacy/locales/kzKZ.js +6 -2
  238. package/legacy/locales/nbNO.js +11 -1
  239. package/legacy/locales/nlNL.js +11 -1
  240. package/legacy/locales/plPL.js +11 -1
  241. package/legacy/locales/ptBR.js +11 -1
  242. package/legacy/locales/ruRU.js +6 -2
  243. package/legacy/locales/svSE.js +11 -1
  244. package/legacy/locales/trTR.js +22 -7
  245. package/legacy/locales/ukUA.js +11 -1
  246. package/legacy/locales/urPK.js +11 -1
  247. package/legacy/locales/zhCN.js +44 -23
  248. package/legacy/models/common.js +1 -0
  249. package/legacy/models/index.js +2 -1
  250. package/legacy/tests/describeAdapters/describeAdapters.js +1 -3
  251. package/legacy/tests/describeGregorianAdapter/describeGregorianAdapter.js +3 -1
  252. package/legacy/tests/describeGregorianAdapter/testCalculations.js +29 -26
  253. package/legacy/tests/describeGregorianAdapter/testLocalization.js +2 -2
  254. package/legacy/tests/describeHijriAdapter/describeHijriAdapter.js +23 -0
  255. package/legacy/tests/describeHijriAdapter/describeHijriAdapter.types.js +1 -0
  256. package/legacy/tests/describeHijriAdapter/index.js +1 -0
  257. package/legacy/tests/describeHijriAdapter/testCalculations.js +94 -0
  258. package/legacy/tests/describeHijriAdapter/testLocalization.js +12 -0
  259. package/legacy/tests/describeJalaliAdapter/describeJalaliAdapter.js +25 -0
  260. package/legacy/tests/describeJalaliAdapter/describeJalaliAdapter.types.js +1 -0
  261. package/legacy/tests/describeJalaliAdapter/index.js +1 -0
  262. package/legacy/tests/describeJalaliAdapter/testCalculations.js +82 -0
  263. package/legacy/tests/describeJalaliAdapter/testLocalization.js +12 -0
  264. package/legacy/tests/describePicker/describePicker.js +159 -0
  265. package/legacy/tests/describePicker/describePicker.types.js +1 -0
  266. package/legacy/tests/describePicker/index.js +1 -0
  267. package/legacy/tests/describeValidation/testTextFieldValidation.js +26 -0
  268. package/legacy/tests/describeValue/describeValue.js +1 -1
  269. package/legacy/tests/describeValue/testControlledUnControlled.js +8 -9
  270. package/legacy/tests/describeValue/testPickerActionBar.js +46 -13
  271. package/legacy/tests/describeValue/testPickerOpenCloseLifeCycle.js +0 -5
  272. package/legacy/timeViewRenderers/index.js +1 -1
  273. package/legacy/timeViewRenderers/timeViewRenderers.js +132 -4
  274. package/locales/beBY.d.ts +4 -2
  275. package/locales/beBY.js +3 -3
  276. package/locales/caES.d.ts +4 -2
  277. package/locales/caES.js +4 -1
  278. package/locales/csCZ.d.ts +4 -2
  279. package/locales/csCZ.js +4 -4
  280. package/locales/daDK.d.ts +4 -2
  281. package/locales/daDK.js +4 -2
  282. package/locales/deDE.d.ts +4 -2
  283. package/locales/deDE.js +4 -2
  284. package/locales/enUS.d.ts +3 -2
  285. package/locales/enUS.js +2 -0
  286. package/locales/esES.d.ts +4 -2
  287. package/locales/esES.js +4 -1
  288. package/locales/faIR.d.ts +4 -2
  289. package/locales/faIR.js +9 -1
  290. package/locales/fiFI.d.ts +4 -2
  291. package/locales/fiFI.js +4 -1
  292. package/locales/frFR.d.ts +4 -2
  293. package/locales/frFR.js +4 -1
  294. package/locales/heIL.d.ts +4 -2
  295. package/locales/heIL.js +4 -1
  296. package/locales/huHU.d.ts +4 -2
  297. package/locales/huHU.js +4 -2
  298. package/locales/index.d.ts +1 -0
  299. package/locales/index.js +1 -0
  300. package/locales/isIS.d.ts +4 -2
  301. package/locales/isIS.js +9 -1
  302. package/locales/itIT.d.ts +4 -2
  303. package/locales/itIT.js +4 -1
  304. package/locales/jaJP.d.ts +4 -2
  305. package/locales/jaJP.js +4 -2
  306. package/locales/koKR.d.ts +4 -2
  307. package/locales/koKR.js +4 -1
  308. package/locales/kzKZ.d.ts +4 -2
  309. package/locales/kzKZ.js +4 -2
  310. package/locales/nbNO.d.ts +4 -2
  311. package/locales/nbNO.js +9 -1
  312. package/locales/nlNL.d.ts +8 -7
  313. package/locales/nlNL.js +9 -1
  314. package/locales/plPL.d.ts +4 -2
  315. package/locales/plPL.js +9 -1
  316. package/locales/ptBR.d.ts +4 -2
  317. package/locales/ptBR.js +9 -1
  318. package/locales/ruRU.d.ts +4 -2
  319. package/locales/ruRU.js +4 -2
  320. package/locales/svSE.d.ts +4 -2
  321. package/locales/svSE.js +9 -1
  322. package/locales/trTR.d.ts +4 -2
  323. package/locales/trTR.js +14 -7
  324. package/locales/ukUA.d.ts +4 -2
  325. package/locales/ukUA.js +9 -1
  326. package/locales/urPK.d.ts +4 -2
  327. package/locales/urPK.js +9 -1
  328. package/locales/utils/getPickersLocalization.d.ts +3 -2
  329. package/locales/utils/pickersLocaleTextApi.d.ts +5 -3
  330. package/locales/zhCN.d.ts +4 -2
  331. package/locales/zhCN.js +22 -23
  332. package/models/adapters.d.ts +7 -6
  333. package/models/common.d.ts +5 -0
  334. package/models/common.js +1 -0
  335. package/models/fields.d.ts +19 -2
  336. package/models/index.d.ts +1 -0
  337. package/models/index.js +2 -1
  338. package/modern/AdapterDateFns/AdapterDateFns.js +597 -0
  339. package/modern/AdapterDateFns/index.js +1 -149
  340. package/modern/AdapterDateFnsJalali/AdapterDateFnsJalali.js +608 -0
  341. package/modern/AdapterDateFnsJalali/index.js +1 -148
  342. package/modern/AdapterDayjs/AdapterDayjs.js +146 -111
  343. package/modern/AdapterLuxon/AdapterLuxon.js +512 -0
  344. package/modern/AdapterLuxon/index.js +1 -111
  345. package/modern/AdapterMoment/AdapterMoment.js +416 -0
  346. package/modern/AdapterMoment/index.js +1 -99
  347. package/modern/AdapterMomentHijri/AdapterMomentHijri.js +269 -0
  348. package/modern/AdapterMomentHijri/index.js +1 -74
  349. package/modern/AdapterMomentJalaali/AdapterMomentJalaali.js +276 -0
  350. package/modern/AdapterMomentJalaali/index.js +1 -87
  351. package/modern/DateCalendar/DayCalendar.js +1 -1
  352. package/modern/DateCalendar/useCalendarState.js +1 -1
  353. package/modern/DateCalendar/useIsDateDisabled.js +27 -0
  354. package/modern/DateField/DateField.js +24 -3
  355. package/modern/DateField/useDateField.js +4 -2
  356. package/modern/DatePicker/DatePickerToolbar.js +1 -1
  357. package/modern/DateTimeField/DateTimeField.js +25 -3
  358. package/modern/DateTimeField/useDateTimeField.js +4 -2
  359. package/modern/DateTimePicker/DateTimePicker.js +1 -0
  360. package/modern/DesktopDatePicker/DesktopDatePicker.js +1 -1
  361. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +2 -1
  362. package/modern/DesktopTimePicker/DesktopTimePicker.js +51 -7
  363. package/modern/DigitalClock/DigitalClock.js +396 -0
  364. package/modern/DigitalClock/DigitalClock.types.js +1 -0
  365. package/modern/DigitalClock/digitalClockClasses.js +6 -0
  366. package/modern/DigitalClock/index.js +2 -0
  367. package/modern/MobileDatePicker/MobileDatePicker.js +1 -1
  368. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +2 -1
  369. package/modern/MobileTimePicker/MobileTimePicker.js +2 -1
  370. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClock.js +479 -0
  371. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClock.types.js +1 -0
  372. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.js +65 -0
  373. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +149 -0
  374. package/modern/MultiSectionDigitalClock/index.js +3 -0
  375. package/modern/MultiSectionDigitalClock/multiSectionDigitalClockClasses.js +6 -0
  376. package/modern/MultiSectionDigitalClock/multiSectionDigitalClockSectionClasses.js +6 -0
  377. package/modern/PickersDay/PickersDay.js +4 -1
  378. package/modern/PickersLayout/PickersLayout.js +2 -2
  379. package/modern/StaticDateTimePicker/StaticDateTimePicker.js +2 -1
  380. package/modern/StaticTimePicker/StaticTimePicker.js +2 -1
  381. package/modern/TimeClock/TimeClock.js +35 -12
  382. package/modern/TimeField/TimeField.js +25 -3
  383. package/modern/TimeField/useTimeField.js +4 -2
  384. package/modern/TimePicker/TimePicker.js +25 -2
  385. package/modern/TimePicker/TimePickerToolbar.js +2 -2
  386. package/modern/index.js +4 -1
  387. package/modern/internals/constants/dimensions.js +2 -1
  388. package/modern/internals/demo/DemoContainer.js +4 -1
  389. package/modern/internals/hooks/date-helpers-hooks.js +3 -3
  390. package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.js +2 -1
  391. package/modern/internals/hooks/useField/useField.js +12 -11
  392. package/modern/internals/hooks/useField/useField.utils.js +61 -35
  393. package/modern/internals/hooks/useField/useFieldCharacterEditing.js +18 -10
  394. package/modern/internals/hooks/useField/useFieldState.js +4 -3
  395. package/modern/internals/hooks/usePicker/usePickerValue.js +1 -1
  396. package/modern/internals/hooks/{validation/useValidation.js → useValidation.js} +1 -1
  397. package/modern/internals/hooks/useViews.js +29 -13
  398. package/modern/internals/index.js +5 -5
  399. package/modern/internals/models/index.js +2 -1
  400. package/modern/internals/models/props/clock.js +1 -0
  401. package/modern/internals/models/validation.js +1 -0
  402. package/modern/internals/utils/time-utils.js +2 -1
  403. package/modern/internals/utils/{validation.js → validation/extractValidationProps.js} +1 -1
  404. package/modern/internals/{hooks/validation/useDateValidation.js → utils/validation/validateDate.js} +1 -27
  405. package/{internals/hooks/validation/useDateTimeValidation.js → modern/internals/utils/validation/validateDateTime.js} +2 -2
  406. package/{internals/hooks/validation/useTimeValidation.js → modern/internals/utils/validation/validateTime.js} +1 -1
  407. package/modern/locales/beBY.js +3 -3
  408. package/modern/locales/caES.js +4 -1
  409. package/modern/locales/csCZ.js +4 -4
  410. package/modern/locales/daDK.js +4 -2
  411. package/modern/locales/deDE.js +4 -2
  412. package/modern/locales/enUS.js +2 -0
  413. package/modern/locales/esES.js +4 -1
  414. package/modern/locales/faIR.js +9 -1
  415. package/modern/locales/fiFI.js +4 -1
  416. package/modern/locales/frFR.js +4 -1
  417. package/modern/locales/heIL.js +4 -1
  418. package/modern/locales/huHU.js +4 -2
  419. package/modern/locales/index.js +1 -0
  420. package/modern/locales/isIS.js +9 -1
  421. package/modern/locales/itIT.js +4 -1
  422. package/modern/locales/jaJP.js +4 -2
  423. package/modern/locales/koKR.js +4 -1
  424. package/modern/locales/kzKZ.js +4 -2
  425. package/modern/locales/nbNO.js +9 -1
  426. package/modern/locales/nlNL.js +9 -1
  427. package/modern/locales/plPL.js +9 -1
  428. package/modern/locales/ptBR.js +9 -1
  429. package/modern/locales/ruRU.js +4 -2
  430. package/modern/locales/svSE.js +9 -1
  431. package/modern/locales/trTR.js +14 -7
  432. package/modern/locales/ukUA.js +9 -1
  433. package/modern/locales/urPK.js +9 -1
  434. package/modern/locales/zhCN.js +22 -23
  435. package/modern/models/common.js +1 -0
  436. package/modern/models/index.js +2 -1
  437. package/modern/tests/describeAdapters/describeAdapters.js +1 -3
  438. package/modern/tests/describeGregorianAdapter/describeGregorianAdapter.js +3 -1
  439. package/modern/tests/describeGregorianAdapter/testCalculations.js +29 -26
  440. package/modern/tests/describeGregorianAdapter/testLocalization.js +2 -2
  441. package/modern/tests/describeHijriAdapter/describeHijriAdapter.js +23 -0
  442. package/modern/tests/describeHijriAdapter/describeHijriAdapter.types.js +1 -0
  443. package/modern/tests/describeHijriAdapter/index.js +1 -0
  444. package/modern/tests/describeHijriAdapter/testCalculations.js +91 -0
  445. package/modern/tests/describeHijriAdapter/testLocalization.js +13 -0
  446. package/modern/tests/describeJalaliAdapter/describeJalaliAdapter.js +25 -0
  447. package/modern/tests/describeJalaliAdapter/describeJalaliAdapter.types.js +1 -0
  448. package/modern/tests/describeJalaliAdapter/index.js +1 -0
  449. package/modern/tests/describeJalaliAdapter/testCalculations.js +83 -0
  450. package/modern/tests/describeJalaliAdapter/testLocalization.js +13 -0
  451. package/modern/tests/describePicker/describePicker.js +162 -0
  452. package/modern/tests/describePicker/describePicker.types.js +1 -0
  453. package/modern/tests/describePicker/index.js +1 -0
  454. package/modern/tests/describeValidation/testTextFieldValidation.js +27 -0
  455. package/modern/tests/describeValue/describeValue.js +1 -1
  456. package/modern/tests/describeValue/testControlledUnControlled.js +8 -9
  457. package/modern/tests/describeValue/testPickerActionBar.js +46 -13
  458. package/modern/tests/describeValue/testPickerOpenCloseLifeCycle.js +0 -5
  459. package/modern/timeViewRenderers/index.js +1 -1
  460. package/modern/timeViewRenderers/timeViewRenderers.js +130 -2
  461. package/node/AdapterDateFns/AdapterDateFns.js +607 -0
  462. package/node/AdapterDateFns/index.js +6 -152
  463. package/node/AdapterDateFnsJalali/AdapterDateFnsJalali.js +618 -0
  464. package/node/AdapterDateFnsJalali/index.js +6 -151
  465. package/node/AdapterDayjs/AdapterDayjs.js +146 -111
  466. package/node/AdapterLuxon/AdapterLuxon.js +521 -0
  467. package/node/AdapterLuxon/index.js +6 -114
  468. package/node/AdapterMoment/AdapterMoment.js +425 -0
  469. package/node/AdapterMoment/index.js +6 -102
  470. package/node/AdapterMomentHijri/AdapterMomentHijri.js +278 -0
  471. package/node/AdapterMomentHijri/index.js +6 -77
  472. package/node/AdapterMomentJalaali/AdapterMomentJalaali.js +285 -0
  473. package/node/AdapterMomentJalaali/index.js +6 -90
  474. package/node/DateCalendar/DayCalendar.js +2 -2
  475. package/node/DateCalendar/useCalendarState.js +2 -2
  476. package/node/{internals/hooks/validation/useDateValidation.js → DateCalendar/useIsDateDisabled.js} +4 -37
  477. package/node/DateField/DateField.js +24 -3
  478. package/node/DateField/useDateField.js +5 -3
  479. package/node/DatePicker/DatePickerToolbar.js +1 -1
  480. package/node/DateTimeField/DateTimeField.js +25 -3
  481. package/node/DateTimeField/useDateTimeField.js +5 -3
  482. package/node/DateTimePicker/DateTimePicker.js +1 -0
  483. package/node/DesktopDatePicker/DesktopDatePicker.js +2 -2
  484. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +3 -2
  485. package/node/DesktopTimePicker/DesktopTimePicker.js +52 -8
  486. package/node/DigitalClock/DigitalClock.js +406 -0
  487. package/node/DigitalClock/digitalClockClasses.js +15 -0
  488. package/node/DigitalClock/index.js +25 -0
  489. package/node/MobileDatePicker/MobileDatePicker.js +2 -2
  490. package/node/MobileDateTimePicker/MobileDateTimePicker.js +3 -2
  491. package/node/MobileTimePicker/MobileTimePicker.js +3 -2
  492. package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.js +489 -0
  493. package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.types.js +5 -0
  494. package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.js +73 -0
  495. package/node/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +159 -0
  496. package/node/MultiSectionDigitalClock/index.js +32 -0
  497. package/node/MultiSectionDigitalClock/multiSectionDigitalClockClasses.js +15 -0
  498. package/node/MultiSectionDigitalClock/multiSectionDigitalClockSectionClasses.js +15 -0
  499. package/node/PickersDay/PickersDay.js +4 -1
  500. package/node/PickersLayout/PickersLayout.js +2 -2
  501. package/node/StaticDateTimePicker/StaticDateTimePicker.js +3 -2
  502. package/node/StaticTimePicker/StaticTimePicker.js +3 -2
  503. package/node/TimeClock/TimeClock.js +35 -12
  504. package/node/TimeField/TimeField.js +25 -3
  505. package/node/TimeField/useTimeField.js +5 -3
  506. package/node/TimePicker/TimePicker.js +25 -2
  507. package/node/TimePicker/TimePickerToolbar.js +2 -2
  508. package/node/index.js +25 -1
  509. package/node/internals/constants/dimensions.js +4 -2
  510. package/node/internals/demo/DemoContainer.js +4 -1
  511. package/node/internals/hooks/date-helpers-hooks.js +3 -3
  512. package/node/internals/hooks/useDesktopPicker/useDesktopPicker.js +2 -1
  513. package/node/internals/hooks/useField/useField.js +12 -11
  514. package/node/internals/hooks/useField/useField.utils.js +64 -37
  515. package/node/internals/hooks/useField/useFieldCharacterEditing.js +17 -9
  516. package/node/internals/hooks/useField/useFieldState.js +4 -3
  517. package/node/internals/hooks/usePicker/usePickerValue.js +1 -1
  518. package/node/internals/hooks/{validation/useValidation.js → useValidation.js} +1 -1
  519. package/node/internals/hooks/useViews.js +29 -13
  520. package/node/internals/index.js +9 -9
  521. package/node/internals/models/index.js +11 -0
  522. package/node/internals/models/props/clock.js +5 -0
  523. package/node/internals/models/validation.js +5 -0
  524. package/node/internals/utils/time-utils.js +2 -1
  525. package/node/internals/utils/{validation.js → validation/extractValidationProps.js} +1 -1
  526. package/node/internals/utils/validation/validateDate.js +40 -0
  527. package/node/internals/{hooks/validation/useDateTimeValidation.js → utils/validation/validateDateTime.js} +4 -4
  528. package/node/internals/{hooks/validation/useTimeValidation.js → utils/validation/validateTime.js} +1 -1
  529. package/node/locales/beBY.js +3 -3
  530. package/node/locales/caES.js +4 -1
  531. package/node/locales/csCZ.js +4 -2
  532. package/node/locales/daDK.js +4 -1
  533. package/node/locales/deDE.js +4 -1
  534. package/node/locales/enUS.js +2 -0
  535. package/node/locales/esES.js +4 -1
  536. package/node/locales/faIR.js +9 -1
  537. package/node/locales/fiFI.js +4 -1
  538. package/node/locales/frFR.js +4 -1
  539. package/node/locales/heIL.js +4 -1
  540. package/node/locales/huHU.js +4 -1
  541. package/node/locales/index.js +11 -0
  542. package/node/locales/isIS.js +9 -1
  543. package/node/locales/itIT.js +4 -1
  544. package/node/locales/jaJP.js +4 -1
  545. package/node/locales/koKR.js +4 -1
  546. package/node/locales/kzKZ.js +4 -1
  547. package/node/locales/nbNO.js +9 -1
  548. package/node/locales/nlNL.js +9 -1
  549. package/node/locales/plPL.js +9 -1
  550. package/node/locales/ptBR.js +9 -1
  551. package/node/locales/ruRU.js +4 -1
  552. package/node/locales/svSE.js +9 -1
  553. package/node/locales/trTR.js +14 -7
  554. package/node/locales/ukUA.js +9 -1
  555. package/node/locales/urPK.js +9 -1
  556. package/node/locales/zhCN.js +22 -23
  557. package/node/models/common.js +5 -0
  558. package/node/models/index.js +11 -0
  559. package/node/tests/describeAdapters/describeAdapters.js +1 -3
  560. package/node/tests/describeGregorianAdapter/describeGregorianAdapter.js +3 -1
  561. package/node/tests/describeGregorianAdapter/testCalculations.js +29 -26
  562. package/node/tests/describeGregorianAdapter/testLocalization.js +2 -2
  563. package/node/tests/describeHijriAdapter/describeHijriAdapter.js +31 -0
  564. package/node/tests/describeHijriAdapter/describeHijriAdapter.types.js +5 -0
  565. package/node/tests/describeHijriAdapter/index.js +12 -0
  566. package/node/tests/describeHijriAdapter/testCalculations.js +98 -0
  567. package/node/tests/describeHijriAdapter/testLocalization.js +20 -0
  568. package/node/tests/describeJalaliAdapter/describeJalaliAdapter.js +33 -0
  569. package/node/tests/describeJalaliAdapter/describeJalaliAdapter.types.js +5 -0
  570. package/node/tests/describeJalaliAdapter/index.js +12 -0
  571. package/node/tests/describeJalaliAdapter/testCalculations.js +90 -0
  572. package/node/tests/describeJalaliAdapter/testLocalization.js +20 -0
  573. package/node/tests/describePicker/describePicker.js +173 -0
  574. package/node/tests/describePicker/describePicker.types.js +5 -0
  575. package/node/tests/describePicker/index.js +12 -0
  576. package/node/tests/describeValidation/testTextFieldValidation.js +27 -0
  577. package/node/tests/describeValue/describeValue.js +1 -1
  578. package/node/tests/describeValue/testControlledUnControlled.js +8 -9
  579. package/node/tests/describeValue/testPickerActionBar.js +46 -13
  580. package/node/tests/describeValue/testPickerOpenCloseLifeCycle.js +0 -5
  581. package/node/timeViewRenderers/index.js +12 -0
  582. package/node/timeViewRenderers/timeViewRenderers.js +134 -4
  583. package/package.json +3 -10
  584. package/tests/describeAdapters/describeAdapters.js +1 -3
  585. package/tests/describeGregorianAdapter/describeGregorianAdapter.js +3 -1
  586. package/tests/describeGregorianAdapter/testCalculations.js +29 -26
  587. package/tests/describeGregorianAdapter/testLocalization.js +2 -2
  588. package/tests/describeHijriAdapter/describeHijriAdapter.js +23 -0
  589. package/tests/describeHijriAdapter/describeHijriAdapter.types.js +1 -0
  590. package/tests/describeHijriAdapter/index.js +1 -0
  591. package/tests/describeHijriAdapter/testCalculations.js +91 -0
  592. package/tests/describeHijriAdapter/testLocalization.js +13 -0
  593. package/tests/describeJalaliAdapter/describeJalaliAdapter.js +25 -0
  594. package/tests/describeJalaliAdapter/describeJalaliAdapter.types.js +1 -0
  595. package/tests/describeJalaliAdapter/index.js +1 -0
  596. package/tests/describeJalaliAdapter/testCalculations.js +83 -0
  597. package/tests/describeJalaliAdapter/testLocalization.js +13 -0
  598. package/tests/describePicker/describePicker.js +162 -0
  599. package/tests/describePicker/describePicker.types.js +1 -0
  600. package/tests/describePicker/index.js +1 -0
  601. package/tests/describeValidation/testTextFieldValidation.js +27 -0
  602. package/tests/describeValue/describeValue.js +1 -1
  603. package/tests/describeValue/testControlledUnControlled.js +8 -9
  604. package/tests/describeValue/testPickerActionBar.js +46 -13
  605. package/tests/describeValue/testPickerOpenCloseLifeCycle.js +0 -5
  606. package/themeAugmentation/components.d.ts +12 -0
  607. package/themeAugmentation/overrides.d.ts +8 -0
  608. package/themeAugmentation/props.d.ts +8 -0
  609. package/timeViewRenderers/index.d.ts +1 -1
  610. package/timeViewRenderers/index.js +1 -1
  611. package/timeViewRenderers/timeViewRenderers.d.ts +11 -4
  612. package/timeViewRenderers/timeViewRenderers.js +130 -2
  613. /package/{internals/hooks/validation/models.js → DigitalClock/DigitalClock.types.js} +0 -0
  614. /package/{legacy/internals/hooks/validation/models.js → MultiSectionDigitalClock/MultiSectionDigitalClock.types.js} +0 -0
  615. /package/{modern/internals/hooks/validation/models.js → internals/models/props/clock.js} +0 -0
  616. /package/node/{internals/hooks/validation/models.js → DigitalClock/DigitalClock.types.js} +0 -0
@@ -0,0 +1,151 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
+ const _excluded = ["autoFocus", "onChange", "className", "disabled", "readOnly", "items", "active", "slots", "slotProps", "skipDisabled"];
4
+ import * as React from 'react';
5
+ import clsx from 'clsx';
6
+ import { alpha, styled, useThemeProps } from '@mui/material/styles';
7
+ import composeClasses from '@mui/utils/composeClasses';
8
+ import MenuList from '@mui/material/MenuList';
9
+ import MenuItem from '@mui/material/MenuItem';
10
+ import useForkRef from '@mui/utils/useForkRef';
11
+ import { getMultiSectionDigitalClockSectionUtilityClass } from './multiSectionDigitalClockSectionClasses';
12
+ import { DIGITAL_CLOCK_VIEW_HEIGHT } from '../internals/constants/dimensions';
13
+ import { jsx as _jsx } from "react/jsx-runtime";
14
+ const useUtilityClasses = ownerState => {
15
+ const {
16
+ classes
17
+ } = ownerState;
18
+ const slots = {
19
+ root: ['root'],
20
+ item: ['item']
21
+ };
22
+ return composeClasses(slots, getMultiSectionDigitalClockSectionUtilityClass, classes);
23
+ };
24
+ const MultiSectionDigitalClockSectionRoot = styled(MenuList, {
25
+ name: 'MuiMultiSectionDigitalClockSection',
26
+ slot: 'Root',
27
+ overridesResolver: (_, styles) => styles.root
28
+ })(({
29
+ theme,
30
+ ownerState
31
+ }) => ({
32
+ maxHeight: DIGITAL_CLOCK_VIEW_HEIGHT,
33
+ width: 56,
34
+ padding: 0,
35
+ overflow: 'hidden',
36
+ scrollBehavior: ownerState.alreadyRendered ? 'smooth' : 'auto',
37
+ '&:hover': {
38
+ overflowY: 'auto'
39
+ },
40
+ '&:not(:first-of-type)': {
41
+ borderLeft: `1px solid ${(theme.vars || theme).palette.divider}`
42
+ },
43
+ '&:after': {
44
+ display: 'block',
45
+ content: '""',
46
+ height: 188
47
+ }
48
+ }));
49
+ const MultiSectionDigitalClockSectionItem = styled(MenuItem, {
50
+ name: 'MuiMultiSectionDigitalClockSection',
51
+ slot: 'Item',
52
+ overridesResolver: (_, styles) => styles.item
53
+ })(({
54
+ theme
55
+ }) => ({
56
+ padding: 8,
57
+ margin: '2px 4px',
58
+ width: 48,
59
+ justifyContent: 'center',
60
+ '&:first-of-type': {
61
+ marginTop: 4
62
+ },
63
+ '&:hover': {
64
+ backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha(theme.palette.primary.main, theme.palette.action.hoverOpacity)
65
+ },
66
+ '&.Mui-selected': {
67
+ backgroundColor: (theme.vars || theme).palette.primary.main,
68
+ color: (theme.vars || theme).palette.primary.contrastText,
69
+ '&:focus-visible, &:hover': {
70
+ backgroundColor: (theme.vars || theme).palette.primary.dark
71
+ }
72
+ },
73
+ '&.Mui-focusVisible': {
74
+ backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.focusOpacity})` : alpha(theme.palette.primary.main, theme.palette.action.focusOpacity)
75
+ }
76
+ }));
77
+ /**
78
+ * @ignore - internal component.
79
+ */
80
+ export const MultiSectionDigitalClockSection = /*#__PURE__*/React.forwardRef(function MultiSectionDigitalClockSection(inProps, ref) {
81
+ var _slots$digitalClockSe;
82
+ const containerRef = React.useRef(null);
83
+ const handleRef = useForkRef(ref, containerRef);
84
+ const props = useThemeProps({
85
+ props: inProps,
86
+ name: 'MuiMultiSectionDigitalClockSection'
87
+ });
88
+ const {
89
+ autoFocus,
90
+ onChange,
91
+ className,
92
+ disabled,
93
+ readOnly,
94
+ items,
95
+ active,
96
+ slots,
97
+ slotProps,
98
+ skipDisabled
99
+ } = props,
100
+ other = _objectWithoutPropertiesLoose(props, _excluded);
101
+ const ownerState = React.useMemo(() => _extends({}, props, {
102
+ alreadyRendered: !!containerRef.current
103
+ }), [props]);
104
+ const classes = useUtilityClasses(ownerState);
105
+ const DigitalClockSectionItem = (_slots$digitalClockSe = slots == null ? void 0 : slots.digitalClockSectionItem) != null ? _slots$digitalClockSe : MultiSectionDigitalClockSectionItem;
106
+ React.useEffect(() => {
107
+ if (containerRef.current === null) {
108
+ return;
109
+ }
110
+ const selectedItem = containerRef.current.querySelector('[role="option"][aria-selected="true"]');
111
+ if (!selectedItem) {
112
+ return;
113
+ }
114
+ if (active && autoFocus) {
115
+ selectedItem.focus();
116
+ }
117
+ const offsetTop = selectedItem.offsetTop;
118
+
119
+ // Subtracting the 4px of extra margin intended for the first visible section item
120
+ containerRef.current.scrollTop = offsetTop - 4;
121
+ });
122
+ return /*#__PURE__*/_jsx(MultiSectionDigitalClockSectionRoot, _extends({
123
+ ref: handleRef,
124
+ className: clsx(classes.root, className),
125
+ ownerState: ownerState,
126
+ autoFocusItem: autoFocus && active,
127
+ role: "listbox"
128
+ }, other, {
129
+ children: items.map(option => {
130
+ var _option$isDisabled, _option$isDisabled2;
131
+ if (skipDisabled && (_option$isDisabled = option.isDisabled) != null && _option$isDisabled.call(option, option.value)) {
132
+ return null;
133
+ }
134
+ const isSelected = option.isSelected(option.value);
135
+ return /*#__PURE__*/_jsx(DigitalClockSectionItem, _extends({
136
+ onClick: () => !readOnly && onChange(option.value),
137
+ selected: isSelected,
138
+ disabled: disabled != null ? disabled : (_option$isDisabled2 = option.isDisabled) == null ? void 0 : _option$isDisabled2.call(option, option.value),
139
+ disableRipple: readOnly,
140
+ role: "option"
141
+ // aria-readonly is not supported here and does not have any effect
142
+ ,
143
+ "aria-disabled": readOnly,
144
+ "aria-label": option.ariaLabel,
145
+ "aria-selected": isSelected
146
+ }, slotProps == null ? void 0 : slotProps.digitalClockSectionItem, {
147
+ children: option.label
148
+ }), option.label);
149
+ })
150
+ }));
151
+ });
@@ -0,0 +1,7 @@
1
+ export { MultiSectionDigitalClock } from './MultiSectionDigitalClock';
2
+ export type { MultiSectionDigitalClockProps, MultiSectionDigitalClockSlotsComponent, MultiSectionDigitalClockSlotsComponentsProps, } from './MultiSectionDigitalClock.types';
3
+ export { multiSectionDigitalClockSectionClasses } from './multiSectionDigitalClockSectionClasses';
4
+ export type { MultiSectionDigitalClockSectionClasses, MultiSectionDigitalClockSectionClassKey, } from './multiSectionDigitalClockSectionClasses';
5
+ export type { ExportedMultiSectionDigitalClockSectionProps } from './MultiSectionDigitalClockSection';
6
+ export { multiSectionDigitalClockClasses, getMultiSectionDigitalClockUtilityClass, } from './multiSectionDigitalClockClasses';
7
+ export type { MultiSectionDigitalClockClasses, MultiSectionDigitalClockClassKey, } from './multiSectionDigitalClockClasses';
@@ -0,0 +1,3 @@
1
+ export { MultiSectionDigitalClock } from './MultiSectionDigitalClock';
2
+ export { multiSectionDigitalClockSectionClasses } from './multiSectionDigitalClockSectionClasses';
3
+ export { multiSectionDigitalClockClasses, getMultiSectionDigitalClockUtilityClass } from './multiSectionDigitalClockClasses';
@@ -0,0 +1,7 @@
1
+ export interface MultiSectionDigitalClockClasses {
2
+ /** Styles applied to the root element. */
3
+ root: string;
4
+ }
5
+ export type MultiSectionDigitalClockClassKey = keyof MultiSectionDigitalClockClasses;
6
+ export declare function getMultiSectionDigitalClockUtilityClass(slot: string): string;
7
+ export declare const multiSectionDigitalClockClasses: MultiSectionDigitalClockClasses;
@@ -0,0 +1,6 @@
1
+ import generateUtilityClass from '@mui/utils/generateUtilityClass';
2
+ import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
3
+ export function getMultiSectionDigitalClockUtilityClass(slot) {
4
+ return generateUtilityClass('MuiMultiSectionDigitalClock', slot);
5
+ }
6
+ export const multiSectionDigitalClockClasses = generateUtilityClasses('MuiMultiSectionDigitalClock', ['root']);
@@ -0,0 +1,9 @@
1
+ export interface MultiSectionDigitalClockSectionClasses {
2
+ /** Styles applied to the root (list) element. */
3
+ root: string;
4
+ /** Styles applied to the list item (by default: MenuItem) element. */
5
+ item: string;
6
+ }
7
+ export type MultiSectionDigitalClockSectionClassKey = keyof MultiSectionDigitalClockSectionClasses;
8
+ export declare function getMultiSectionDigitalClockSectionUtilityClass(slot: string): string;
9
+ export declare const multiSectionDigitalClockSectionClasses: MultiSectionDigitalClockSectionClasses;
@@ -0,0 +1,6 @@
1
+ import generateUtilityClass from '@mui/utils/generateUtilityClass';
2
+ import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
3
+ export function getMultiSectionDigitalClockSectionUtilityClass(slot) {
4
+ return generateUtilityClass('MuiMultiSectionDigitalClock', slot);
5
+ }
6
+ export const multiSectionDigitalClockSectionClasses = generateUtilityClasses('MuiMultiSectionDigitalClock', ['root', 'item']);
@@ -0,0 +1,6 @@
1
+ {
2
+ "sideEffects": false,
3
+ "module": "./index.js",
4
+ "main": "../node/MultiSectionDigitalClock/index.js",
5
+ "types": "./index.d.ts"
6
+ }
@@ -63,8 +63,11 @@ const styleArg = ({
63
63
  backgroundColor: (theme.vars || theme).palette.primary.dark
64
64
  }
65
65
  },
66
- [`&.${pickersDayClasses.disabled}`]: {
66
+ [`&.${pickersDayClasses.disabled}:not(.${pickersDayClasses.selected})`]: {
67
67
  color: (theme.vars || theme).palette.text.disabled
68
+ },
69
+ [`&.${pickersDayClasses.disabled}&.${pickersDayClasses.selected}`]: {
70
+ opacity: 0.6
68
71
  }
69
72
  }, !ownerState.disableMargin && {
70
73
  margin: `0 ${DAY_MARGIN}px`
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { PickersLayoutProps } from './PickersLayout.types';
3
- import { DateOrTimeView } from '../models';
3
+ import { DateOrTimeViewWithMeridiem } from '../internals/models';
4
4
  declare const PickersLayoutRoot: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme> & {
5
5
  ownerState: {
6
6
  isLandscape: boolean;
@@ -9,7 +9,7 @@ declare const PickersLayoutRoot: import("@emotion/styled").StyledComponent<impor
9
9
  export { PickersLayoutRoot };
10
10
  export declare const PickersLayoutContentWrapper: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme>, Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React.ClassAttributes<HTMLDivElement> | keyof React.HTMLAttributes<HTMLDivElement>>, {}>;
11
11
  declare const PickersLayout: {
12
- <TValue, TDate, TView extends DateOrTimeView>(inProps: PickersLayoutProps<TValue, TDate, TView>): JSX.Element;
12
+ <TValue, TDate, TView extends DateOrTimeViewWithMeridiem>(inProps: PickersLayoutProps<TValue, TDate, TView>): JSX.Element;
13
13
  propTypes: any;
14
14
  };
15
15
  export { PickersLayout };
@@ -155,8 +155,8 @@ process.env.NODE_ENV !== "production" ? PickersLayout.propTypes = {
155
155
  slots: PropTypes.object,
156
156
  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
157
157
  value: PropTypes.any,
158
- view: PropTypes.oneOf(['day', 'hours', 'minutes', 'month', 'seconds', 'year']),
159
- views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'hours', 'minutes', 'month', 'seconds', 'year']).isRequired).isRequired,
158
+ view: PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']),
159
+ views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']).isRequired).isRequired,
160
160
  wrapperVariant: PropTypes.oneOf(['desktop', 'mobile'])
161
161
  } : void 0;
162
162
  export { PickersLayout };
@@ -2,15 +2,14 @@ import * as React from 'react';
2
2
  import { SxProps, Theme } from '@mui/material/styles';
3
3
  import { SlotComponentProps } from '@mui/base/utils';
4
4
  import { PickersActionBarProps } from '../PickersActionBar';
5
- import { DateOrTimeView } from '../models';
6
5
  import { BaseToolbarProps, ExportedBaseToolbarProps } from '../internals/models/props/toolbar';
7
6
  import { BaseTabsProps, ExportedBaseTabsProps } from '../internals/models/props/tabs';
8
7
  import { UsePickerLayoutPropsResponseLayoutProps } from '../internals/hooks/usePicker/usePickerLayoutProps';
9
8
  import { UncapitalizeObjectKeys } from '../internals/utils/slots-migration';
10
9
  import { PickersLayoutClasses } from './pickersLayoutClasses';
11
- import { WrapperVariant } from '../internals/models/common';
10
+ import { DateOrTimeViewWithMeridiem, WrapperVariant } from '../internals/models/common';
12
11
  import { PickersShortcutsProps } from '../PickersShortcuts';
13
- export interface ExportedPickersLayoutSlotsComponent<TValue, TDate, TView extends DateOrTimeView> {
12
+ export interface ExportedPickersLayoutSlotsComponent<TValue, TDate, TView extends DateOrTimeViewWithMeridiem> {
14
13
  /**
15
14
  * Custom component for the action bar, it is placed below the picker views.
16
15
  * @default PickersActionBar
@@ -27,13 +26,13 @@ export interface ExportedPickersLayoutSlotsComponent<TValue, TDate, TView extend
27
26
  */
28
27
  Layout?: React.JSXElementConstructor<PickersLayoutProps<TValue, TDate, TView> & React.RefAttributes<HTMLDivElement>>;
29
28
  }
30
- interface PickersLayoutActionBarOwnerState<TValue, TDate, TView extends DateOrTimeView> extends PickersLayoutProps<TValue, TDate, TView> {
29
+ interface PickersLayoutActionBarOwnerState<TValue, TDate, TView extends DateOrTimeViewWithMeridiem> extends PickersLayoutProps<TValue, TDate, TView> {
31
30
  wrapperVariant: WrapperVariant;
32
31
  }
33
32
  interface PickersShortcutsOwnerState<TValue> extends PickersShortcutsProps<TValue> {
34
33
  wrapperVariant: WrapperVariant;
35
34
  }
36
- export interface ExportedPickersLayoutSlotsComponentsProps<TValue, TDate, TView extends DateOrTimeView> {
35
+ export interface ExportedPickersLayoutSlotsComponentsProps<TValue, TDate, TView extends DateOrTimeViewWithMeridiem> {
37
36
  /**
38
37
  * Props passed down to the action bar component.
39
38
  */
@@ -47,7 +46,7 @@ export interface ExportedPickersLayoutSlotsComponentsProps<TValue, TDate, TView
47
46
  */
48
47
  layout?: Partial<PickersLayoutProps<TValue, TDate, TView>>;
49
48
  }
50
- export interface PickersLayoutSlotsComponent<TValue, TDate, TView extends DateOrTimeView> extends ExportedPickersLayoutSlotsComponent<TValue, TDate, TView> {
49
+ export interface PickersLayoutSlotsComponent<TValue, TDate, TView extends DateOrTimeViewWithMeridiem> extends ExportedPickersLayoutSlotsComponent<TValue, TDate, TView> {
51
50
  /**
52
51
  * Tabs enabling toggling between views.
53
52
  */
@@ -58,7 +57,7 @@ export interface PickersLayoutSlotsComponent<TValue, TDate, TView extends DateOr
58
57
  */
59
58
  Toolbar?: React.JSXElementConstructor<BaseToolbarProps<TValue, TView>>;
60
59
  }
61
- export interface PickersLayoutSlotsComponentsProps<TValue, TDate, TView extends DateOrTimeView> extends ExportedPickersLayoutSlotsComponentsProps<TValue, TDate, TView> {
60
+ export interface PickersLayoutSlotsComponentsProps<TValue, TDate, TView extends DateOrTimeViewWithMeridiem> extends ExportedPickersLayoutSlotsComponentsProps<TValue, TDate, TView> {
62
61
  /**
63
62
  * Props passed down to the tabs component.
64
63
  */
@@ -68,7 +67,7 @@ export interface PickersLayoutSlotsComponentsProps<TValue, TDate, TView extends
68
67
  */
69
68
  toolbar?: ExportedBaseToolbarProps;
70
69
  }
71
- export interface PickersLayoutProps<TValue, TDate, TView extends DateOrTimeView> extends Omit<UsePickerLayoutPropsResponseLayoutProps<TValue, TView>, 'value'> {
70
+ export interface PickersLayoutProps<TValue, TDate, TView extends DateOrTimeViewWithMeridiem> extends Omit<UsePickerLayoutPropsResponseLayoutProps<TValue, TView>, 'value'> {
72
71
  value?: TValue;
73
72
  className?: string;
74
73
  children?: React.ReactNode;
@@ -1,6 +1,6 @@
1
1
  import { PickersLayoutProps, SubComponents } from './PickersLayout.types';
2
- import { DateOrTimeView } from '../models';
2
+ import { DateOrTimeViewWithMeridiem } from '../internals/models';
3
3
  interface UsePickerLayoutResponse extends SubComponents {
4
4
  }
5
- declare const usePickerLayout: <TValue, TDate, TView extends DateOrTimeView>(props: PickersLayoutProps<TValue, TDate, TView>) => UsePickerLayoutResponse;
5
+ declare const usePickerLayout: <TValue, TDate, TView extends DateOrTimeViewWithMeridiem>(props: PickersLayoutProps<TValue, TDate, TView>) => UsePickerLayoutResponse;
6
6
  export default usePickerLayout;
package/README.md CHANGED
@@ -42,15 +42,6 @@ This component has the following peer dependencies that you will need to install
42
42
  },
43
43
  ```
44
44
 
45
- If you need to use `js-joda`, `date-fns-jalali`, `jalaali`, or `hijri` library, you should be able to find the corresponding date-library from [`@date-io`](https://github.com/dmtrKovalenko/date-io#projects).
46
- In such a case, you will have to install both the date-library and the corresponding @date-io adapter.
47
-
48
- ```jsx
49
- // To use moment-jalaali
50
- npm install moment-jalaali
51
- npm install @date-io/jalaali
52
- ```
53
-
54
45
  After installation completed, you have to set the `dateAdapter` prop of the `LocalizationProvider` accordingly.
55
46
  The supported adapters are exported from `@mui/x-date-pickers`.
56
47
 
@@ -6,7 +6,7 @@ import { renderTimeViewClock } from '../timeViewRenderers';
6
6
  import { renderDateViewCalendar } from '../dateViewRenderers';
7
7
  import { singleItemValueManager } from '../internals/utils/valueManagers';
8
8
  import { useStaticPicker } from '../internals/hooks/useStaticPicker';
9
- import { validateDateTime } from '../internals/hooks/validation/useDateTimeValidation';
9
+ import { validateDateTime } from '../internals/utils/validation/validateDateTime';
10
10
  const StaticDateTimePicker = /*#__PURE__*/React.forwardRef(function StaticDateTimePicker(inProps, ref) {
11
11
  var _defaultizedProps$dis, _defaultizedProps$amp, _defaultizedProps$yea, _defaultizedProps$slo, _defaultizedProps$slo2;
12
12
  const defaultizedProps = useDateTimePickerDefaultizedProps(inProps, 'MuiStaticDateTimePicker');
@@ -283,6 +283,7 @@ StaticDateTimePicker.propTypes = {
283
283
  shouldDisableMonth: PropTypes.func,
284
284
  /**
285
285
  * Disable specific time.
286
+ * @template TDate
286
287
  * @param {TDate} value The value to check.
287
288
  * @param {TimeView} view The clock type of the timeValue.
288
289
  * @returns {boolean} If `true` the time will be disabled.
@@ -5,7 +5,7 @@ import { useTimePickerDefaultizedProps } from '../TimePicker/shared';
5
5
  import { renderTimeViewClock } from '../timeViewRenderers';
6
6
  import { singleItemValueManager } from '../internals/utils/valueManagers';
7
7
  import { useStaticPicker } from '../internals/hooks/useStaticPicker';
8
- import { validateTime } from '../internals/hooks/validation/useTimeValidation';
8
+ import { validateTime } from '../internals/utils/validation/validateTime';
9
9
  const StaticTimePicker = /*#__PURE__*/React.forwardRef(function StaticTimePicker(inProps, ref) {
10
10
  var _defaultizedProps$dis, _defaultizedProps$amp, _defaultizedProps$slo;
11
11
  const defaultizedProps = useTimePickerDefaultizedProps(inProps, 'MuiStaticTimePicker');
@@ -185,6 +185,7 @@ StaticTimePicker.propTypes = {
185
185
  shouldDisableClock: PropTypes.func,
186
186
  /**
187
187
  * Disable specific time.
188
+ * @template TDate
188
189
  * @param {TDate} value The value to check.
189
190
  * @param {TimeView} view The clock type of the timeValue.
190
191
  * @returns {boolean} If `true` the time will be disabled.
@@ -6,7 +6,7 @@ export interface StaticTimePickerSlotsComponent<TDate> extends BaseTimePickerSlo
6
6
  }
7
7
  export interface StaticTimePickerSlotsComponentsProps<TDate> extends BaseTimePickerSlotsComponentsProps, UseStaticPickerSlotsComponentsProps<TDate, TimeView> {
8
8
  }
9
- export interface StaticTimePickerProps<TDate> extends BaseTimePickerProps<TDate>, MakeOptional<StaticOnlyPickerProps, 'displayStaticWrapperAs'> {
9
+ export interface StaticTimePickerProps<TDate> extends BaseTimePickerProps<TDate, TimeView>, MakeOptional<StaticOnlyPickerProps, 'displayStaticWrapperAs'> {
10
10
  /**
11
11
  * Overridable components.
12
12
  * @default {}
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["ampm", "ampmInClock", "autoFocus", "components", "componentsProps", "slots", "slotProps", "value", "disableIgnoringDatePartForTimeValidation", "maxTime", "minTime", "disableFuture", "disablePast", "minutesStep", "shouldDisableClock", "shouldDisableTime", "showViewSwitcher", "onChange", "defaultValue", "view", "views", "openTo", "onViewChange", "className", "disabled", "readOnly"];
3
+ const _excluded = ["ampm", "ampmInClock", "autoFocus", "components", "componentsProps", "slots", "slotProps", "value", "disableIgnoringDatePartForTimeValidation", "maxTime", "minTime", "disableFuture", "disablePast", "minutesStep", "shouldDisableClock", "shouldDisableTime", "showViewSwitcher", "onChange", "defaultValue", "view", "views", "openTo", "onViewChange", "focusedView", "onFocusedViewChange", "className", "disabled", "readOnly"];
4
4
  import * as React from 'react';
5
5
  import clsx from 'clsx';
6
6
  import PropTypes from 'prop-types';
@@ -85,6 +85,8 @@ export const TimeClock = /*#__PURE__*/React.forwardRef(function TimeClock(inProp
85
85
  views = ['hours', 'minutes'],
86
86
  openTo,
87
87
  onViewChange,
88
+ focusedView,
89
+ onFocusedViewChange,
88
90
  className,
89
91
  disabled,
90
92
  readOnly
@@ -113,7 +115,9 @@ export const TimeClock = /*#__PURE__*/React.forwardRef(function TimeClock(inProp
113
115
  views,
114
116
  openTo,
115
117
  onViewChange,
116
- onChange: handleValueChange
118
+ onChange: handleValueChange,
119
+ focusedView,
120
+ onFocusedViewChange
117
121
  });
118
122
  const selectedTimeOrMidnight = React.useMemo(() => value || utils.setSeconds(utils.setMinutes(utils.setHours(now, 0), 0), 0), [value, now, utils]);
119
123
  const {
@@ -271,7 +275,7 @@ export const TimeClock = /*#__PURE__*/React.forwardRef(function TimeClock(inProp
271
275
  ownerState: ownerState
272
276
  }, other, {
273
277
  children: [/*#__PURE__*/_jsx(Clock, _extends({
274
- autoFocus: autoFocus,
278
+ autoFocus: autoFocus != null ? autoFocus : !!focusedView,
275
279
  ampmInClock: ampmInClock && views.includes('hours'),
276
280
  value: value,
277
281
  type: view,
@@ -313,7 +317,10 @@ process.env.NODE_ENV !== "production" ? TimeClock.propTypes = {
313
317
  */
314
318
  ampmInClock: PropTypes.bool,
315
319
  /**
316
- * Set to `true` if focus should be moved to clock picker.
320
+ * If `true`, the main element is focused during the first mount.
321
+ * This main element is:
322
+ * - the element chosen by the visible view if any (i.e: the selected day on the `day` view).
323
+ * - the `input` element if there is a field rendered.
317
324
  */
318
325
  autoFocus: PropTypes.bool,
319
326
  /**
@@ -339,7 +346,7 @@ process.env.NODE_ENV !== "production" ? TimeClock.propTypes = {
339
346
  */
340
347
  defaultValue: PropTypes.any,
341
348
  /**
342
- * If `true`, the picker and text field are disabled.
349
+ * If `true`, the picker views and text field are disabled.
343
350
  * @default false
344
351
  */
345
352
  disabled: PropTypes.bool,
@@ -358,6 +365,10 @@ process.env.NODE_ENV !== "production" ? TimeClock.propTypes = {
358
365
  * @default false
359
366
  */
360
367
  disablePast: PropTypes.bool,
368
+ /**
369
+ * Controlled focused view.
370
+ */
371
+ focusedView: PropTypes.oneOf(['hours', 'minutes', 'seconds']),
361
372
  /**
362
373
  * Maximal selectable time.
363
374
  * The date part of the object will be ignored unless `props.disableIgnoringDatePartForTimeValidation === true`.
@@ -378,20 +389,30 @@ process.env.NODE_ENV !== "production" ? TimeClock.propTypes = {
378
389
  * @template TDate
379
390
  * @param {TDate | null} value The new value.
380
391
  * @param {PickerSelectionState | undefined} selectionState Indicates if the date selection is complete.
392
+ * @param {TView | undefined} selectedView Indicates the view in which the selection has been made.
381
393
  */
382
394
  onChange: PropTypes.func,
395
+ /**
396
+ * Callback fired on focused view change.
397
+ * @template TView
398
+ * @param {TView} view The new view to focus or not.
399
+ * @param {boolean} hasFocus `true` if the view should be focused.
400
+ */
401
+ onFocusedViewChange: PropTypes.func,
383
402
  /**
384
403
  * Callback fired on view change.
385
- * @param {TimeView} view The new view.
404
+ * @template TView
405
+ * @param {TView} view The new view.
386
406
  */
387
407
  onViewChange: PropTypes.func,
388
408
  /**
389
- * Initially open view.
390
- * @default 'hours'
409
+ * The default visible view.
410
+ * Used when the component view is not controlled.
411
+ * Must be a valid option from `views` list.
391
412
  */
392
413
  openTo: PropTypes.oneOf(['hours', 'minutes', 'seconds']),
393
414
  /**
394
- * Make picker read only.
415
+ * If `true`, the picker views and text field are read-only.
395
416
  * @default false
396
417
  */
397
418
  readOnly: PropTypes.bool,
@@ -405,6 +426,7 @@ process.env.NODE_ENV !== "production" ? TimeClock.propTypes = {
405
426
  shouldDisableClock: PropTypes.func,
406
427
  /**
407
428
  * Disable specific time.
429
+ * @template TDate
408
430
  * @param {TDate} value The value to check.
409
431
  * @param {TimeView} view The clock type of the timeValue.
410
432
  * @returns {boolean} If `true` the time will be disabled.
@@ -431,12 +453,13 @@ process.env.NODE_ENV !== "production" ? TimeClock.propTypes = {
431
453
  */
432
454
  value: PropTypes.any,
433
455
  /**
434
- * Controlled open view.
456
+ * The visible view.
457
+ * Used when the component view is controlled.
458
+ * Must be a valid option from `views` list.
435
459
  */
436
460
  view: PropTypes.oneOf(['hours', 'minutes', 'seconds']),
437
461
  /**
438
- * Views for calendar picker.
439
- * @default ['hours', 'minutes']
462
+ * Available views.
440
463
  */
441
464
  views: PropTypes.arrayOf(PropTypes.oneOf(['hours', 'minutes', 'seconds']).isRequired)
442
465
  } : void 0;
@@ -1,17 +1,10 @@
1
- import { SxProps } from '@mui/system';
2
- import { Theme } from '@mui/material/styles';
3
1
  import { TimeClockClasses } from './timeClockClasses';
4
- import { TimeValidationProps, BaseTimeValidationProps } from '../internals/hooks/validation/models';
5
2
  import { PickersArrowSwitcherSlotsComponent, PickersArrowSwitcherSlotsComponentsProps } from '../internals/components/PickersArrowSwitcher';
6
- import { TimeView } from '../models';
7
- import { PickerSelectionState } from '../internals/hooks/usePicker/usePickerValue.types';
8
3
  import { UncapitalizeObjectKeys } from '../internals/utils/slots-migration';
9
- export interface ExportedTimeClockProps<TDate> extends TimeValidationProps<TDate>, BaseTimeValidationProps {
10
- /**
11
- * 12h/24h view for hour selection clock.
12
- * @default `utils.is12HourCycleInCurrentLocale()`
13
- */
14
- ampm?: boolean;
4
+ import { BaseClockProps, ExportedBaseClockProps } from '../internals/models/props/clock';
5
+ import { TimeView } from '../models';
6
+ import { TimeViewWithMeridiem } from '../internals/models';
7
+ export interface ExportedTimeClockProps<TDate> extends ExportedBaseClockProps<TDate> {
15
8
  /**
16
9
  * Display ampm controls under the clock (instead of in the toolbar).
17
10
  * @default false
@@ -22,16 +15,7 @@ export interface TimeClockSlotsComponent extends PickersArrowSwitcherSlotsCompon
22
15
  }
23
16
  export interface TimeClockSlotsComponentsProps extends PickersArrowSwitcherSlotsComponentsProps {
24
17
  }
25
- export interface TimeClockProps<TDate> extends ExportedTimeClockProps<TDate> {
26
- className?: string;
27
- /**
28
- * The system prop that allows defining system overrides as well as additional CSS styles.
29
- */
30
- sx?: SxProps<Theme>;
31
- /**
32
- * Set to `true` if focus should be moved to clock picker.
33
- */
34
- autoFocus?: boolean;
18
+ export interface TimeClockProps<TDate, TView extends TimeViewWithMeridiem = TimeView> extends ExportedTimeClockProps<TDate>, BaseClockProps<TDate, TView> {
35
19
  /**
36
20
  * Override or extend the styles applied to the component.
37
21
  */
@@ -58,51 +42,5 @@ export interface TimeClockProps<TDate> extends ExportedTimeClockProps<TDate> {
58
42
  * @default {}
59
43
  */
60
44
  slotProps?: TimeClockSlotsComponentsProps;
61
- /**
62
- * The selected value.
63
- * Used when the component is controlled.
64
- */
65
- value?: TDate | null;
66
- /**
67
- * The default selected value.
68
- * Used when the component is not controlled.
69
- */
70
- defaultValue?: TDate | null;
71
- /**
72
- * Callback fired when the value changes.
73
- * @template TDate
74
- * @param {TDate | null} value The new value.
75
- * @param {PickerSelectionState | undefined} selectionState Indicates if the date selection is complete.
76
- */
77
- onChange?: (value: TDate | null, selectionState?: PickerSelectionState) => void;
78
45
  showViewSwitcher?: boolean;
79
- /**
80
- * Controlled open view.
81
- */
82
- view?: TimeView;
83
- /**
84
- * Views for calendar picker.
85
- * @default ['hours', 'minutes']
86
- */
87
- views?: readonly TimeView[];
88
- /**
89
- * Callback fired on view change.
90
- * @param {TimeView} view The new view.
91
- */
92
- onViewChange?: (view: TimeView) => void;
93
- /**
94
- * Initially open view.
95
- * @default 'hours'
96
- */
97
- openTo?: TimeView;
98
- /**
99
- * If `true`, the picker and text field are disabled.
100
- * @default false
101
- */
102
- disabled?: boolean;
103
- /**
104
- * Make picker read only.
105
- * @default false
106
- */
107
- readOnly?: boolean;
108
46
  }