@mui/x-date-pickers 7.15.0 → 7.17.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 (674) hide show
  1. package/AdapterDateFns/AdapterDateFns.js +1 -1
  2. package/AdapterDateFns/index.js +1 -1
  3. package/AdapterDateFnsBase/index.js +1 -1
  4. package/AdapterDateFnsJalali/AdapterDateFnsJalali.js +1 -1
  5. package/AdapterDateFnsJalali/index.js +1 -1
  6. package/AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.js +1 -1
  7. package/AdapterDateFnsJalaliV3/index.js +1 -1
  8. package/AdapterDateFnsV3/AdapterDateFnsV3.js +1 -1
  9. package/AdapterDateFnsV3/index.js +1 -1
  10. package/AdapterDayjs/AdapterDayjs.js +5 -6
  11. package/AdapterDayjs/index.js +1 -1
  12. package/AdapterLuxon/AdapterLuxon.js +4 -5
  13. package/AdapterLuxon/index.js +1 -1
  14. package/AdapterMoment/AdapterMoment.js +4 -5
  15. package/AdapterMoment/index.js +1 -1
  16. package/AdapterMomentHijri/AdapterMomentHijri.js +1 -1
  17. package/AdapterMomentHijri/index.js +1 -1
  18. package/AdapterMomentJalaali/AdapterMomentJalaali.js +1 -1
  19. package/AdapterMomentJalaali/index.js +1 -1
  20. package/CHANGELOG.md +185 -1
  21. package/DateCalendar/DateCalendar.js +18 -16
  22. package/DateCalendar/DayCalendar.js +9 -10
  23. package/DateCalendar/PickersFadeTransitionGroup.js +1 -1
  24. package/DateCalendar/PickersSlideTransition.js +1 -1
  25. package/DateCalendar/index.js +5 -5
  26. package/DateCalendar/useCalendarState.js +6 -4
  27. package/DateCalendar/useIsDateDisabled.d.ts +4 -3
  28. package/DateCalendar/useIsDateDisabled.js +6 -4
  29. package/DateField/DateField.js +15 -11
  30. package/DateField/DateField.types.d.ts +7 -2
  31. package/DateField/index.d.ts +1 -1
  32. package/DateField/index.js +2 -2
  33. package/DateField/useDateField.d.ts +1 -1
  34. package/DateField/useDateField.js +8 -6
  35. package/DatePicker/DatePicker.js +16 -14
  36. package/DatePicker/DatePickerToolbar.js +7 -5
  37. package/DatePicker/index.js +3 -3
  38. package/DatePicker/shared.js +4 -4
  39. package/DateTimeField/DateTimeField.js +15 -11
  40. package/DateTimeField/DateTimeField.types.d.ts +7 -2
  41. package/DateTimeField/index.d.ts +1 -1
  42. package/DateTimeField/index.js +2 -2
  43. package/DateTimeField/useDateTimeField.d.ts +1 -1
  44. package/DateTimeField/useDateTimeField.js +8 -6
  45. package/DateTimePicker/DateTimePicker.js +16 -14
  46. package/DateTimePicker/DateTimePickerTabs.js +6 -4
  47. package/DateTimePicker/DateTimePickerToolbar.js +13 -11
  48. package/DateTimePicker/index.js +5 -5
  49. package/DateTimePicker/shared.js +5 -5
  50. package/DayCalendarSkeleton/DayCalendarSkeleton.js +4 -2
  51. package/DayCalendarSkeleton/index.js +2 -2
  52. package/DesktopDatePicker/DesktopDatePicker.js +30 -23
  53. package/DesktopDatePicker/index.js +1 -1
  54. package/DesktopDateTimePicker/DesktopDateTimePicker.js +37 -30
  55. package/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +1 -1
  56. package/DesktopDateTimePicker/index.js +2 -2
  57. package/DesktopTimePicker/DesktopTimePicker.js +31 -24
  58. package/DesktopTimePicker/index.js +1 -1
  59. package/DigitalClock/DigitalClock.js +13 -11
  60. package/DigitalClock/index.js +2 -2
  61. package/LocalizationProvider/LocalizationProvider.js +2 -0
  62. package/LocalizationProvider/index.js +1 -1
  63. package/MobileDatePicker/MobileDatePicker.js +29 -22
  64. package/MobileDatePicker/index.js +1 -1
  65. package/MobileDateTimePicker/MobileDateTimePicker.js +30 -23
  66. package/MobileDateTimePicker/index.js +1 -1
  67. package/MobileTimePicker/MobileTimePicker.js +29 -22
  68. package/MobileTimePicker/index.js +1 -1
  69. package/MonthCalendar/MonthCalendar.js +10 -8
  70. package/MonthCalendar/PickersMonth.js +1 -1
  71. package/MonthCalendar/index.js +3 -3
  72. package/MultiSectionDigitalClock/MultiSectionDigitalClock.js +19 -17
  73. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +2 -2
  74. package/MultiSectionDigitalClock/index.js +3 -3
  75. package/PickersActionBar/PickersActionBar.js +3 -1
  76. package/PickersActionBar/index.js +1 -1
  77. package/PickersCalendarHeader/PickersCalendarHeader.js +9 -7
  78. package/PickersCalendarHeader/index.js +2 -2
  79. package/PickersDay/PickersDay.js +5 -3
  80. package/PickersDay/index.js +2 -2
  81. package/PickersLayout/PickersLayout.js +4 -2
  82. package/PickersLayout/index.js +3 -3
  83. package/PickersLayout/usePickerLayout.js +5 -3
  84. package/PickersSectionList/PickersSectionList.js +3 -1
  85. package/PickersSectionList/index.js +2 -2
  86. package/PickersShortcuts/PickersShortcuts.js +3 -1
  87. package/PickersShortcuts/index.js +1 -1
  88. package/PickersTextField/PickersFilledInput/PickersFilledInput.js +3 -3
  89. package/PickersTextField/PickersFilledInput/index.js +2 -2
  90. package/PickersTextField/PickersFilledInput/pickersFilledInputClasses.js +1 -1
  91. package/PickersTextField/PickersInput/PickersInput.js +3 -3
  92. package/PickersTextField/PickersInput/index.js +2 -2
  93. package/PickersTextField/PickersInput/pickersInputClasses.js +1 -1
  94. package/PickersTextField/PickersInputBase/PickersInputBase.js +2 -2
  95. package/PickersTextField/PickersInputBase/index.js +2 -2
  96. package/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +4 -4
  97. package/PickersTextField/PickersOutlinedInput/index.js +2 -2
  98. package/PickersTextField/PickersOutlinedInput/pickersOutlinedInputClasses.js +1 -1
  99. package/PickersTextField/PickersTextField.js +6 -4
  100. package/PickersTextField/index.js +6 -6
  101. package/StaticDatePicker/StaticDatePicker.js +18 -16
  102. package/StaticDatePicker/index.js +1 -1
  103. package/StaticDateTimePicker/StaticDateTimePicker.js +19 -17
  104. package/StaticDateTimePicker/index.js +1 -1
  105. package/StaticTimePicker/StaticTimePicker.js +18 -16
  106. package/StaticTimePicker/index.js +1 -1
  107. package/TimeClock/Clock.js +7 -7
  108. package/TimeClock/ClockNumber.js +2 -2
  109. package/TimeClock/ClockNumbers.js +2 -2
  110. package/TimeClock/ClockPointer.js +2 -2
  111. package/TimeClock/TimeClock.js +16 -14
  112. package/TimeClock/index.js +5 -5
  113. package/TimeField/TimeField.js +15 -11
  114. package/TimeField/TimeField.types.d.ts +7 -2
  115. package/TimeField/index.d.ts +1 -1
  116. package/TimeField/index.js +2 -2
  117. package/TimeField/useTimeField.d.ts +1 -1
  118. package/TimeField/useTimeField.js +8 -6
  119. package/TimePicker/TimePicker.js +16 -14
  120. package/TimePicker/TimePickerToolbar.js +11 -9
  121. package/TimePicker/index.js +3 -3
  122. package/TimePicker/shared.js +3 -3
  123. package/YearCalendar/PickersYear.js +1 -1
  124. package/YearCalendar/YearCalendar.js +10 -8
  125. package/YearCalendar/index.js +3 -3
  126. package/dateViewRenderers/dateViewRenderers.js +2 -2
  127. package/dateViewRenderers/index.js +1 -1
  128. package/hooks/index.d.ts +1 -0
  129. package/hooks/index.js +3 -2
  130. package/hooks/useClearableField.js +4 -2
  131. package/hooks/usePickersTranslations.js +3 -1
  132. package/hooks/useSplitFieldProps.d.ts +19 -0
  133. package/hooks/useSplitFieldProps.js +43 -0
  134. package/icons/index.js +8 -8
  135. package/index.d.ts +1 -0
  136. package/index.js +39 -38
  137. package/internals/components/PickerViewRoot/PickerViewRoot.js +1 -1
  138. package/internals/components/PickerViewRoot/index.js +1 -1
  139. package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +2 -2
  140. package/internals/components/PickersArrowSwitcher/index.js +2 -2
  141. package/internals/components/PickersModalDialog.js +1 -1
  142. package/internals/components/PickersPopper.js +3 -3
  143. package/internals/components/PickersToolbar.js +1 -1
  144. package/internals/components/PickersToolbarButton.js +2 -2
  145. package/internals/components/PickersToolbarText.js +1 -1
  146. package/internals/demo/DemoContainer.js +3 -3
  147. package/internals/demo/index.js +1 -1
  148. package/internals/hooks/date-helpers-hooks.js +2 -2
  149. package/internals/hooks/defaultizedFieldProps.js +2 -2
  150. package/internals/hooks/useClockReferenceDate.js +3 -3
  151. package/internals/hooks/useDesktopPicker/index.js +1 -1
  152. package/internals/hooks/useDesktopPicker/useDesktopPicker.js +16 -8
  153. package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +6 -3
  154. package/internals/hooks/useField/buildSectionsFromFormat.js +1 -1
  155. package/internals/hooks/useField/index.js +2 -2
  156. package/internals/hooks/useField/useField.js +17 -12
  157. package/internals/hooks/useField/useField.types.d.ts +6 -22
  158. package/internals/hooks/useField/useField.utils.js +1 -1
  159. package/internals/hooks/useField/useFieldCharacterEditing.js +2 -2
  160. package/internals/hooks/useField/useFieldState.js +8 -10
  161. package/internals/hooks/useField/useFieldV6TextField.js +2 -2
  162. package/internals/hooks/useField/useFieldV7TextField.js +4 -4
  163. package/internals/hooks/useIsLandscape.js +1 -1
  164. package/internals/hooks/useMobilePicker/index.js +1 -1
  165. package/internals/hooks/useMobilePicker/useMobilePicker.js +6 -8
  166. package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +2 -2
  167. package/internals/hooks/usePicker/index.js +1 -1
  168. package/internals/hooks/usePicker/usePicker.d.ts +1 -2
  169. package/internals/hooks/usePicker/usePicker.js +4 -4
  170. package/internals/hooks/usePicker/usePickerLayoutProps.js +1 -1
  171. package/internals/hooks/usePicker/usePickerValue.d.ts +1 -2
  172. package/internals/hooks/usePicker/usePickerValue.js +15 -19
  173. package/internals/hooks/usePicker/usePickerValue.types.d.ts +8 -19
  174. package/internals/hooks/usePicker/usePickerViews.js +2 -2
  175. package/internals/hooks/useStaticPicker/index.js +1 -1
  176. package/internals/hooks/useStaticPicker/useStaticPicker.js +4 -4
  177. package/internals/hooks/useUtils.js +2 -2
  178. package/internals/hooks/useValueWithTimezone.js +1 -1
  179. package/internals/hooks/useViews.d.ts +1 -1
  180. package/internals/index.d.ts +0 -8
  181. package/internals/index.js +29 -36
  182. package/internals/models/index.js +2 -2
  183. package/internals/utils/date-time-utils.js +2 -2
  184. package/internals/utils/date-utils.js +1 -1
  185. package/internals/utils/getDefaultReferenceDate.js +2 -2
  186. package/internals/utils/time-utils.js +1 -1
  187. package/internals/utils/valueManagers.js +3 -3
  188. package/locales/beBY.d.ts +3 -3
  189. package/locales/beBY.js +5 -5
  190. package/locales/caES.d.ts +3 -3
  191. package/locales/caES.js +4 -4
  192. package/locales/csCZ.d.ts +3 -3
  193. package/locales/csCZ.js +5 -5
  194. package/locales/daDK.d.ts +3 -3
  195. package/locales/daDK.js +4 -4
  196. package/locales/deDE.d.ts +3 -3
  197. package/locales/deDE.js +4 -4
  198. package/locales/elGR.d.ts +3 -3
  199. package/locales/elGR.js +5 -5
  200. package/locales/enUS.d.ts +3 -3
  201. package/locales/enUS.js +5 -5
  202. package/locales/esES.d.ts +3 -3
  203. package/locales/esES.js +4 -4
  204. package/locales/eu.d.ts +3 -3
  205. package/locales/eu.js +4 -4
  206. package/locales/faIR.d.ts +3 -3
  207. package/locales/faIR.js +4 -4
  208. package/locales/fiFI.d.ts +3 -3
  209. package/locales/fiFI.js +4 -4
  210. package/locales/frFR.d.ts +3 -3
  211. package/locales/frFR.js +4 -4
  212. package/locales/heIL.d.ts +3 -3
  213. package/locales/heIL.js +4 -4
  214. package/locales/huHU.d.ts +3 -3
  215. package/locales/huHU.js +4 -4
  216. package/locales/index.js +36 -36
  217. package/locales/isIS.d.ts +3 -3
  218. package/locales/isIS.js +5 -5
  219. package/locales/itIT.d.ts +3 -3
  220. package/locales/itIT.js +4 -4
  221. package/locales/jaJP.d.ts +3 -3
  222. package/locales/jaJP.js +4 -4
  223. package/locales/koKR.d.ts +3 -3
  224. package/locales/koKR.js +4 -4
  225. package/locales/kzKZ.d.ts +3 -3
  226. package/locales/kzKZ.js +5 -5
  227. package/locales/mk.d.ts +3 -3
  228. package/locales/mk.js +4 -4
  229. package/locales/nbNO.d.ts +3 -3
  230. package/locales/nbNO.js +5 -5
  231. package/locales/nlNL.d.ts +3 -3
  232. package/locales/nlNL.js +4 -4
  233. package/locales/nnNO.d.ts +3 -3
  234. package/locales/nnNO.js +4 -4
  235. package/locales/plPL.d.ts +3 -3
  236. package/locales/plPL.js +5 -5
  237. package/locales/ptBR.d.ts +3 -3
  238. package/locales/ptBR.js +5 -5
  239. package/locales/roRO.d.ts +3 -3
  240. package/locales/roRO.js +4 -4
  241. package/locales/ruRU.d.ts +3 -3
  242. package/locales/ruRU.js +4 -4
  243. package/locales/skSK.d.ts +3 -3
  244. package/locales/skSK.js +5 -5
  245. package/locales/svSE.d.ts +3 -3
  246. package/locales/svSE.js +4 -4
  247. package/locales/trTR.d.ts +3 -3
  248. package/locales/trTR.js +5 -5
  249. package/locales/ukUA.d.ts +3 -3
  250. package/locales/ukUA.js +4 -4
  251. package/locales/urPK.d.ts +3 -3
  252. package/locales/urPK.js +5 -5
  253. package/locales/utils/getPickersLocalization.d.ts +10 -3
  254. package/locales/utils/getPickersLocalization.js +13 -0
  255. package/locales/utils/pickersLocaleTextApi.d.ts +27 -3
  256. package/locales/viVN.d.ts +3 -3
  257. package/locales/viVN.js +4 -4
  258. package/locales/zhCN.d.ts +3 -3
  259. package/locales/zhCN.js +4 -4
  260. package/locales/zhHK.d.ts +3 -3
  261. package/locales/zhHK.js +4 -4
  262. package/models/index.d.ts +1 -0
  263. package/models/index.js +10 -7
  264. package/models/validation.d.ts +13 -0
  265. package/modern/AdapterDateFns/AdapterDateFns.js +1 -1
  266. package/modern/AdapterDateFns/index.js +1 -1
  267. package/modern/AdapterDateFnsBase/index.js +1 -1
  268. package/modern/AdapterDateFnsJalali/AdapterDateFnsJalali.js +1 -1
  269. package/modern/AdapterDateFnsJalali/index.js +1 -1
  270. package/modern/AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.js +1 -1
  271. package/modern/AdapterDateFnsJalaliV3/index.js +1 -1
  272. package/modern/AdapterDateFnsV3/AdapterDateFnsV3.js +1 -1
  273. package/modern/AdapterDateFnsV3/index.js +1 -1
  274. package/modern/AdapterDayjs/AdapterDayjs.js +5 -6
  275. package/modern/AdapterDayjs/index.js +1 -1
  276. package/modern/AdapterLuxon/AdapterLuxon.js +4 -5
  277. package/modern/AdapterLuxon/index.js +1 -1
  278. package/modern/AdapterMoment/AdapterMoment.js +4 -5
  279. package/modern/AdapterMoment/index.js +1 -1
  280. package/modern/AdapterMomentHijri/AdapterMomentHijri.js +1 -1
  281. package/modern/AdapterMomentHijri/index.js +1 -1
  282. package/modern/AdapterMomentJalaali/AdapterMomentJalaali.js +1 -1
  283. package/modern/AdapterMomentJalaali/index.js +1 -1
  284. package/modern/DateCalendar/DateCalendar.js +18 -16
  285. package/modern/DateCalendar/DayCalendar.js +9 -10
  286. package/modern/DateCalendar/PickersFadeTransitionGroup.js +1 -1
  287. package/modern/DateCalendar/PickersSlideTransition.js +1 -1
  288. package/modern/DateCalendar/index.js +5 -5
  289. package/modern/DateCalendar/useCalendarState.js +6 -4
  290. package/modern/DateCalendar/useIsDateDisabled.js +6 -4
  291. package/modern/DateField/DateField.js +15 -11
  292. package/modern/DateField/index.js +2 -2
  293. package/modern/DateField/useDateField.js +8 -6
  294. package/modern/DatePicker/DatePicker.js +16 -14
  295. package/modern/DatePicker/DatePickerToolbar.js +7 -5
  296. package/modern/DatePicker/index.js +3 -3
  297. package/modern/DatePicker/shared.js +4 -4
  298. package/modern/DateTimeField/DateTimeField.js +15 -11
  299. package/modern/DateTimeField/index.js +2 -2
  300. package/modern/DateTimeField/useDateTimeField.js +8 -6
  301. package/modern/DateTimePicker/DateTimePicker.js +16 -14
  302. package/modern/DateTimePicker/DateTimePickerTabs.js +6 -4
  303. package/modern/DateTimePicker/DateTimePickerToolbar.js +13 -11
  304. package/modern/DateTimePicker/index.js +5 -5
  305. package/modern/DateTimePicker/shared.js +5 -5
  306. package/modern/DayCalendarSkeleton/DayCalendarSkeleton.js +4 -2
  307. package/modern/DayCalendarSkeleton/index.js +2 -2
  308. package/modern/DesktopDatePicker/DesktopDatePicker.js +30 -23
  309. package/modern/DesktopDatePicker/index.js +1 -1
  310. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +37 -30
  311. package/modern/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +1 -1
  312. package/modern/DesktopDateTimePicker/index.js +2 -2
  313. package/modern/DesktopTimePicker/DesktopTimePicker.js +31 -24
  314. package/modern/DesktopTimePicker/index.js +1 -1
  315. package/modern/DigitalClock/DigitalClock.js +13 -11
  316. package/modern/DigitalClock/index.js +2 -2
  317. package/modern/LocalizationProvider/LocalizationProvider.js +2 -0
  318. package/modern/LocalizationProvider/index.js +1 -1
  319. package/modern/MobileDatePicker/MobileDatePicker.js +29 -22
  320. package/modern/MobileDatePicker/index.js +1 -1
  321. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +30 -23
  322. package/modern/MobileDateTimePicker/index.js +1 -1
  323. package/modern/MobileTimePicker/MobileTimePicker.js +29 -22
  324. package/modern/MobileTimePicker/index.js +1 -1
  325. package/modern/MonthCalendar/MonthCalendar.js +10 -8
  326. package/modern/MonthCalendar/PickersMonth.js +1 -1
  327. package/modern/MonthCalendar/index.js +3 -3
  328. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClock.js +19 -17
  329. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +2 -2
  330. package/modern/MultiSectionDigitalClock/index.js +3 -3
  331. package/modern/PickersActionBar/PickersActionBar.js +3 -1
  332. package/modern/PickersActionBar/index.js +1 -1
  333. package/modern/PickersCalendarHeader/PickersCalendarHeader.js +9 -7
  334. package/modern/PickersCalendarHeader/index.js +2 -2
  335. package/modern/PickersDay/PickersDay.js +5 -3
  336. package/modern/PickersDay/index.js +2 -2
  337. package/modern/PickersLayout/PickersLayout.js +4 -2
  338. package/modern/PickersLayout/index.js +3 -3
  339. package/modern/PickersLayout/usePickerLayout.js +5 -3
  340. package/modern/PickersSectionList/PickersSectionList.js +3 -1
  341. package/modern/PickersSectionList/index.js +2 -2
  342. package/modern/PickersShortcuts/PickersShortcuts.js +3 -1
  343. package/modern/PickersShortcuts/index.js +1 -1
  344. package/modern/PickersTextField/PickersFilledInput/PickersFilledInput.js +3 -3
  345. package/modern/PickersTextField/PickersFilledInput/index.js +2 -2
  346. package/modern/PickersTextField/PickersFilledInput/pickersFilledInputClasses.js +1 -1
  347. package/modern/PickersTextField/PickersInput/PickersInput.js +3 -3
  348. package/modern/PickersTextField/PickersInput/index.js +2 -2
  349. package/modern/PickersTextField/PickersInput/pickersInputClasses.js +1 -1
  350. package/modern/PickersTextField/PickersInputBase/PickersInputBase.js +2 -2
  351. package/modern/PickersTextField/PickersInputBase/index.js +2 -2
  352. package/modern/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +4 -4
  353. package/modern/PickersTextField/PickersOutlinedInput/index.js +2 -2
  354. package/modern/PickersTextField/PickersOutlinedInput/pickersOutlinedInputClasses.js +1 -1
  355. package/modern/PickersTextField/PickersTextField.js +6 -4
  356. package/modern/PickersTextField/index.js +6 -6
  357. package/modern/StaticDatePicker/StaticDatePicker.js +18 -16
  358. package/modern/StaticDatePicker/index.js +1 -1
  359. package/modern/StaticDateTimePicker/StaticDateTimePicker.js +19 -17
  360. package/modern/StaticDateTimePicker/index.js +1 -1
  361. package/modern/StaticTimePicker/StaticTimePicker.js +18 -16
  362. package/modern/StaticTimePicker/index.js +1 -1
  363. package/modern/TimeClock/Clock.js +7 -7
  364. package/modern/TimeClock/ClockNumber.js +2 -2
  365. package/modern/TimeClock/ClockNumbers.js +2 -2
  366. package/modern/TimeClock/ClockPointer.js +2 -2
  367. package/modern/TimeClock/TimeClock.js +16 -14
  368. package/modern/TimeClock/index.js +5 -5
  369. package/modern/TimeField/TimeField.js +15 -11
  370. package/modern/TimeField/index.js +2 -2
  371. package/modern/TimeField/useTimeField.js +8 -6
  372. package/modern/TimePicker/TimePicker.js +16 -14
  373. package/modern/TimePicker/TimePickerToolbar.js +11 -9
  374. package/modern/TimePicker/index.js +3 -3
  375. package/modern/TimePicker/shared.js +3 -3
  376. package/modern/YearCalendar/PickersYear.js +1 -1
  377. package/modern/YearCalendar/YearCalendar.js +10 -8
  378. package/modern/YearCalendar/index.js +3 -3
  379. package/modern/dateViewRenderers/dateViewRenderers.js +2 -2
  380. package/modern/dateViewRenderers/index.js +1 -1
  381. package/modern/hooks/index.js +3 -2
  382. package/modern/hooks/useClearableField.js +4 -2
  383. package/modern/hooks/usePickersTranslations.js +3 -1
  384. package/modern/hooks/useSplitFieldProps.js +43 -0
  385. package/modern/icons/index.js +8 -8
  386. package/modern/index.js +39 -38
  387. package/modern/internals/components/PickerViewRoot/PickerViewRoot.js +1 -1
  388. package/modern/internals/components/PickerViewRoot/index.js +1 -1
  389. package/modern/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +2 -2
  390. package/modern/internals/components/PickersArrowSwitcher/index.js +2 -2
  391. package/modern/internals/components/PickersModalDialog.js +1 -1
  392. package/modern/internals/components/PickersPopper.js +3 -3
  393. package/modern/internals/components/PickersToolbar.js +1 -1
  394. package/modern/internals/components/PickersToolbarButton.js +2 -2
  395. package/modern/internals/components/PickersToolbarText.js +1 -1
  396. package/modern/internals/demo/DemoContainer.js +3 -3
  397. package/modern/internals/demo/index.js +1 -1
  398. package/modern/internals/hooks/date-helpers-hooks.js +2 -2
  399. package/modern/internals/hooks/defaultizedFieldProps.js +2 -2
  400. package/modern/internals/hooks/useClockReferenceDate.js +3 -3
  401. package/modern/internals/hooks/useDesktopPicker/index.js +1 -1
  402. package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.js +16 -8
  403. package/modern/internals/hooks/useField/buildSectionsFromFormat.js +1 -1
  404. package/modern/internals/hooks/useField/index.js +2 -2
  405. package/modern/internals/hooks/useField/useField.js +17 -12
  406. package/modern/internals/hooks/useField/useField.utils.js +1 -1
  407. package/modern/internals/hooks/useField/useFieldCharacterEditing.js +2 -2
  408. package/modern/internals/hooks/useField/useFieldState.js +8 -10
  409. package/modern/internals/hooks/useField/useFieldV6TextField.js +2 -2
  410. package/modern/internals/hooks/useField/useFieldV7TextField.js +4 -4
  411. package/modern/internals/hooks/useIsLandscape.js +1 -1
  412. package/modern/internals/hooks/useMobilePicker/index.js +1 -1
  413. package/modern/internals/hooks/useMobilePicker/useMobilePicker.js +6 -8
  414. package/modern/internals/hooks/usePicker/index.js +1 -1
  415. package/modern/internals/hooks/usePicker/usePicker.js +4 -4
  416. package/modern/internals/hooks/usePicker/usePickerLayoutProps.js +1 -1
  417. package/modern/internals/hooks/usePicker/usePickerValue.js +15 -19
  418. package/modern/internals/hooks/usePicker/usePickerViews.js +2 -2
  419. package/modern/internals/hooks/useStaticPicker/index.js +1 -1
  420. package/modern/internals/hooks/useStaticPicker/useStaticPicker.js +4 -4
  421. package/modern/internals/hooks/useUtils.js +2 -2
  422. package/modern/internals/hooks/useValueWithTimezone.js +1 -1
  423. package/modern/internals/index.js +29 -36
  424. package/modern/internals/models/index.js +2 -2
  425. package/modern/internals/utils/date-time-utils.js +2 -2
  426. package/modern/internals/utils/date-utils.js +1 -1
  427. package/modern/internals/utils/getDefaultReferenceDate.js +2 -2
  428. package/modern/internals/utils/time-utils.js +1 -1
  429. package/modern/internals/utils/valueManagers.js +3 -3
  430. package/modern/locales/beBY.js +5 -5
  431. package/modern/locales/caES.js +4 -4
  432. package/modern/locales/csCZ.js +5 -5
  433. package/modern/locales/daDK.js +4 -4
  434. package/modern/locales/deDE.js +4 -4
  435. package/modern/locales/elGR.js +5 -5
  436. package/modern/locales/enUS.js +5 -5
  437. package/modern/locales/esES.js +4 -4
  438. package/modern/locales/eu.js +4 -4
  439. package/modern/locales/faIR.js +4 -4
  440. package/modern/locales/fiFI.js +4 -4
  441. package/modern/locales/frFR.js +4 -4
  442. package/modern/locales/heIL.js +4 -4
  443. package/modern/locales/huHU.js +4 -4
  444. package/modern/locales/index.js +36 -36
  445. package/modern/locales/isIS.js +5 -5
  446. package/modern/locales/itIT.js +4 -4
  447. package/modern/locales/jaJP.js +4 -4
  448. package/modern/locales/koKR.js +4 -4
  449. package/modern/locales/kzKZ.js +5 -5
  450. package/modern/locales/mk.js +4 -4
  451. package/modern/locales/nbNO.js +5 -5
  452. package/modern/locales/nlNL.js +4 -4
  453. package/modern/locales/nnNO.js +4 -4
  454. package/modern/locales/plPL.js +5 -5
  455. package/modern/locales/ptBR.js +5 -5
  456. package/modern/locales/roRO.js +4 -4
  457. package/modern/locales/ruRU.js +4 -4
  458. package/modern/locales/skSK.js +5 -5
  459. package/modern/locales/svSE.js +4 -4
  460. package/modern/locales/trTR.js +5 -5
  461. package/modern/locales/ukUA.js +4 -4
  462. package/modern/locales/urPK.js +5 -5
  463. package/modern/locales/utils/getPickersLocalization.js +13 -0
  464. package/modern/locales/viVN.js +4 -4
  465. package/modern/locales/zhCN.js +4 -4
  466. package/modern/locales/zhHK.js +4 -4
  467. package/modern/models/index.js +10 -7
  468. package/modern/themeAugmentation/index.js +0 -3
  469. package/modern/timeViewRenderers/index.js +1 -1
  470. package/modern/timeViewRenderers/timeViewRenderers.js +4 -4
  471. package/modern/validation/index.js +5 -0
  472. package/modern/validation/useValidation.js +54 -0
  473. package/modern/{internals/utils/validation → validation}/validateDate.js +6 -4
  474. package/modern/validation/validateDateTime.js +26 -0
  475. package/{internals/utils → modern}/validation/validateTime.js +6 -4
  476. package/node/AdapterDateFns/AdapterDateFns.js +1 -1
  477. package/node/AdapterDateFnsBase/AdapterDateFnsBase.js +1 -1
  478. package/node/AdapterDateFnsJalali/AdapterDateFnsJalali.js +1 -1
  479. package/node/AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.js +1 -1
  480. package/node/AdapterDayjs/AdapterDayjs.js +6 -7
  481. package/node/AdapterLuxon/AdapterLuxon.js +5 -6
  482. package/node/AdapterMoment/AdapterMoment.js +5 -6
  483. package/node/AdapterMomentHijri/AdapterMomentHijri.js +1 -1
  484. package/node/AdapterMomentJalaali/AdapterMomentJalaali.js +1 -1
  485. package/node/DateCalendar/DateCalendar.js +4 -4
  486. package/node/DateCalendar/DayCalendar.js +3 -5
  487. package/node/DateCalendar/PickersFadeTransitionGroup.js +2 -3
  488. package/node/DateCalendar/PickersSlideTransition.js +2 -3
  489. package/node/DateCalendar/useCalendarState.js +3 -3
  490. package/node/DateCalendar/useIsDateDisabled.js +6 -6
  491. package/node/DateField/DateField.js +12 -10
  492. package/node/DateField/useDateField.js +5 -4
  493. package/node/DatePicker/DatePicker.js +14 -14
  494. package/node/DatePicker/DatePickerToolbar.js +3 -3
  495. package/node/DatePicker/shared.js +2 -3
  496. package/node/DateTimeField/DateTimeField.js +12 -10
  497. package/node/DateTimeField/useDateTimeField.js +5 -4
  498. package/node/DateTimePicker/DateTimePicker.js +14 -14
  499. package/node/DateTimePicker/DateTimePickerTabs.js +3 -3
  500. package/node/DateTimePicker/DateTimePickerToolbar.js +3 -3
  501. package/node/DateTimePicker/shared.js +2 -3
  502. package/node/DayCalendarSkeleton/DayCalendarSkeleton.js +3 -3
  503. package/node/DesktopDatePicker/DesktopDatePicker.js +24 -19
  504. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +24 -19
  505. package/node/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +2 -3
  506. package/node/DesktopTimePicker/DesktopTimePicker.js +24 -19
  507. package/node/DigitalClock/DigitalClock.js +4 -4
  508. package/node/DigitalClock/digitalClockClasses.js +1 -1
  509. package/node/LocalizationProvider/LocalizationProvider.js +3 -3
  510. package/node/MobileDatePicker/MobileDatePicker.js +24 -19
  511. package/node/MobileDateTimePicker/MobileDateTimePicker.js +24 -19
  512. package/node/MobileTimePicker/MobileTimePicker.js +24 -19
  513. package/node/MonthCalendar/MonthCalendar.js +3 -3
  514. package/node/MonthCalendar/PickersMonth.js +2 -3
  515. package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.js +7 -7
  516. package/node/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +2 -3
  517. package/node/MultiSectionDigitalClock/multiSectionDigitalClockClasses.js +1 -1
  518. package/node/MultiSectionDigitalClock/multiSectionDigitalClockSectionClasses.js +1 -1
  519. package/node/PickersActionBar/PickersActionBar.js +3 -3
  520. package/node/PickersCalendarHeader/PickersCalendarHeader.js +3 -3
  521. package/node/PickersDay/PickersDay.js +3 -3
  522. package/node/PickersLayout/PickersLayout.js +3 -3
  523. package/node/PickersLayout/index.js +1 -1
  524. package/node/PickersLayout/pickersLayoutClasses.js +1 -1
  525. package/node/PickersLayout/usePickerLayout.js +3 -3
  526. package/node/PickersSectionList/PickersSectionList.js +3 -3
  527. package/node/PickersSectionList/pickersSectionListClasses.js +1 -1
  528. package/node/PickersShortcuts/PickersShortcuts.js +3 -3
  529. package/node/PickersTextField/PickersFilledInput/PickersFilledInput.js +2 -3
  530. package/node/PickersTextField/PickersFilledInput/pickersFilledInputClasses.js +1 -1
  531. package/node/PickersTextField/PickersInput/PickersInput.js +2 -3
  532. package/node/PickersTextField/PickersInput/pickersInputClasses.js +1 -1
  533. package/node/PickersTextField/PickersInputBase/PickersInputBase.js +2 -3
  534. package/node/PickersTextField/PickersInputBase/pickersInputBaseClasses.js +1 -1
  535. package/node/PickersTextField/PickersOutlinedInput/Outline.js +2 -3
  536. package/node/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +2 -3
  537. package/node/PickersTextField/PickersOutlinedInput/pickersOutlinedInputClasses.js +1 -1
  538. package/node/PickersTextField/PickersTextField.js +3 -3
  539. package/node/PickersTextField/pickersTextFieldClasses.js +1 -1
  540. package/node/StaticDatePicker/StaticDatePicker.js +16 -16
  541. package/node/StaticDateTimePicker/StaticDateTimePicker.js +16 -16
  542. package/node/StaticTimePicker/StaticTimePicker.js +16 -16
  543. package/node/TimeClock/Clock.js +3 -4
  544. package/node/TimeClock/ClockNumber.js +2 -3
  545. package/node/TimeClock/ClockNumbers.js +2 -3
  546. package/node/TimeClock/ClockPointer.js +2 -3
  547. package/node/TimeClock/TimeClock.js +4 -4
  548. package/node/TimeField/TimeField.js +12 -10
  549. package/node/TimeField/useTimeField.js +5 -4
  550. package/node/TimePicker/TimePicker.js +14 -14
  551. package/node/TimePicker/TimePickerToolbar.js +3 -3
  552. package/node/TimePicker/shared.js +2 -3
  553. package/node/YearCalendar/PickersYear.js +2 -3
  554. package/node/YearCalendar/YearCalendar.js +3 -3
  555. package/node/dateViewRenderers/dateViewRenderers.js +1 -2
  556. package/node/hooks/index.js +8 -1
  557. package/node/hooks/useClearableField.js +3 -3
  558. package/node/hooks/usePickersTranslations.js +1 -0
  559. package/node/hooks/useSplitFieldProps.js +51 -0
  560. package/node/icons/index.js +9 -10
  561. package/node/index.js +13 -1
  562. package/node/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +2 -3
  563. package/node/internals/components/PickersModalDialog.js +2 -3
  564. package/node/internals/components/PickersPopper.js +2 -3
  565. package/node/internals/components/PickersToolbar.js +2 -3
  566. package/node/internals/components/PickersToolbarButton.js +2 -3
  567. package/node/internals/components/PickersToolbarText.js +2 -3
  568. package/node/internals/demo/DemoContainer.js +4 -5
  569. package/node/internals/hooks/date-helpers-hooks.js +1 -2
  570. package/node/internals/hooks/defaultizedFieldProps.js +1 -1
  571. package/node/internals/hooks/useClockReferenceDate.js +1 -2
  572. package/node/internals/hooks/useDefaultReduceAnimations.js +1 -1
  573. package/node/internals/hooks/useDesktopPicker/useDesktopPicker.js +14 -7
  574. package/node/internals/hooks/useField/buildSectionsFromFormat.js +1 -1
  575. package/node/internals/hooks/useField/useField.js +13 -9
  576. package/node/internals/hooks/useField/useFieldCharacterEditing.js +2 -3
  577. package/node/internals/hooks/useField/useFieldState.js +4 -7
  578. package/node/internals/hooks/useField/useFieldV6TextField.js +2 -3
  579. package/node/internals/hooks/useField/useFieldV7TextField.js +2 -3
  580. package/node/internals/hooks/useIsLandscape.js +1 -2
  581. package/node/internals/hooks/useMobilePicker/useMobilePicker.js +3 -6
  582. package/node/internals/hooks/useOpenState.js +1 -2
  583. package/node/internals/hooks/usePicker/usePicker.js +1 -1
  584. package/node/internals/hooks/usePicker/usePickerLayoutProps.js +1 -1
  585. package/node/internals/hooks/usePicker/usePickerValue.js +14 -19
  586. package/node/internals/hooks/usePicker/usePickerViews.js +2 -3
  587. package/node/internals/hooks/useStaticPicker/useStaticPicker.js +2 -3
  588. package/node/internals/hooks/useUtils.js +2 -3
  589. package/node/internals/hooks/useValueWithTimezone.js +2 -3
  590. package/node/internals/hooks/useViews.js +2 -3
  591. package/node/internals/index.js +0 -49
  592. package/node/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +1 -1
  593. package/node/internals/utils/date-time-utils.js +1 -1
  594. package/node/internals/utils/valueManagers.js +1 -1
  595. package/node/locales/beBY.js +4 -4
  596. package/node/locales/caES.js +3 -3
  597. package/node/locales/csCZ.js +4 -4
  598. package/node/locales/daDK.js +3 -3
  599. package/node/locales/deDE.js +3 -3
  600. package/node/locales/elGR.js +4 -4
  601. package/node/locales/enUS.js +4 -4
  602. package/node/locales/esES.js +3 -3
  603. package/node/locales/eu.js +3 -3
  604. package/node/locales/faIR.js +3 -3
  605. package/node/locales/fiFI.js +3 -3
  606. package/node/locales/frFR.js +3 -3
  607. package/node/locales/heIL.js +3 -3
  608. package/node/locales/huHU.js +3 -3
  609. package/node/locales/isIS.js +4 -4
  610. package/node/locales/itIT.js +3 -3
  611. package/node/locales/jaJP.js +3 -3
  612. package/node/locales/koKR.js +3 -3
  613. package/node/locales/kzKZ.js +4 -4
  614. package/node/locales/mk.js +3 -3
  615. package/node/locales/nbNO.js +4 -4
  616. package/node/locales/nlNL.js +3 -3
  617. package/node/locales/nnNO.js +3 -3
  618. package/node/locales/plPL.js +4 -4
  619. package/node/locales/ptBR.js +4 -4
  620. package/node/locales/roRO.js +3 -3
  621. package/node/locales/ruRU.js +3 -3
  622. package/node/locales/skSK.js +4 -4
  623. package/node/locales/svSE.js +3 -3
  624. package/node/locales/trTR.js +4 -4
  625. package/node/locales/ukUA.js +3 -3
  626. package/node/locales/urPK.js +4 -4
  627. package/node/locales/utils/getPickersLocalization.js +17 -3
  628. package/node/locales/viVN.js +3 -3
  629. package/node/locales/zhCN.js +3 -3
  630. package/node/locales/zhHK.js +3 -3
  631. package/node/themeAugmentation/index.js +1 -38
  632. package/node/timeViewRenderers/timeViewRenderers.js +1 -2
  633. package/node/validation/index.js +40 -0
  634. package/node/validation/useValidation.js +61 -0
  635. package/node/{internals/utils/validation → validation}/validateDate.js +6 -4
  636. package/node/{internals/utils/validation → validation}/validateDateTime.js +8 -3
  637. package/node/{internals/utils/validation → validation}/validateTime.js +6 -4
  638. package/package.json +4 -3
  639. package/themeAugmentation/index.d.ts +3 -3
  640. package/themeAugmentation/index.js +0 -3
  641. package/timeViewRenderers/index.js +1 -1
  642. package/timeViewRenderers/timeViewRenderers.js +4 -4
  643. package/{internals/utils/validation → validation}/extractValidationProps.d.ts +1 -1
  644. package/validation/index.d.ts +9 -0
  645. package/validation/index.js +5 -0
  646. package/validation/package.json +6 -0
  647. package/validation/useValidation.d.ts +68 -0
  648. package/validation/useValidation.js +54 -0
  649. package/validation/validateDate.d.ts +6 -0
  650. package/{internals/utils/validation → validation}/validateDate.js +6 -4
  651. package/validation/validateDateTime.d.ts +7 -0
  652. package/validation/validateDateTime.js +26 -0
  653. package/validation/validateTime.d.ts +6 -0
  654. package/{modern/internals/utils/validation → validation}/validateTime.js +6 -4
  655. package/internals/hooks/useValidation.d.ts +0 -24
  656. package/internals/hooks/useValidation.js +0 -22
  657. package/internals/utils/fields.d.ts +0 -5
  658. package/internals/utils/fields.js +0 -28
  659. package/internals/utils/validation/validateDate.d.ts +0 -7
  660. package/internals/utils/validation/validateDateTime.d.ts +0 -7
  661. package/internals/utils/validation/validateDateTime.js +0 -21
  662. package/internals/utils/validation/validateTime.d.ts +0 -7
  663. package/internals/utils/warning.d.ts +0 -2
  664. package/internals/utils/warning.js +0 -21
  665. package/modern/internals/hooks/useValidation.js +0 -22
  666. package/modern/internals/utils/fields.js +0 -28
  667. package/modern/internals/utils/validation/validateDateTime.js +0 -21
  668. package/modern/internals/utils/warning.js +0 -21
  669. package/node/internals/hooks/useValidation.js +0 -30
  670. package/node/internals/utils/fields.js +0 -36
  671. package/node/internals/utils/warning.js +0 -28
  672. /package/{internals/utils → modern}/validation/extractValidationProps.js +0 -0
  673. /package/node/{internals/utils/validation → validation}/extractValidationProps.js +0 -0
  674. /package/{modern/internals/utils/validation → validation}/extractValidationProps.js +0 -0
@@ -0,0 +1,54 @@
1
+ 'use client';
2
+
3
+ import * as React from 'react';
4
+ import useEventCallback from '@mui/utils/useEventCallback';
5
+ import { useLocalizationContext } from "../internals/hooks/useUtils.js";
6
+ /**
7
+ * Utility hook to check if a given value is valid based on the provided validation props.
8
+ * @template TDate
9
+ * @template TValue The value type. It will be either the same type as `value` or `null`. It can be in `[start, end]` format in case of range value.
10
+ * @template TError The validation error type. It will be either `string` or a `null`. It can be in `[start, end]` format in case of range value.
11
+ * @param {UseValidationOptions<TValue, TDate, TError, TValidationProps>} options The options to configure the hook.
12
+ * @param {TValue} options.value The value to validate.
13
+ * @param {PickersTimezone} options.timezone The timezone to use for the validation.
14
+ * @param {Validator<TValue, TDate, TError, TValidationProps>} options.validator The validator function to use.
15
+ * @param {TValidationProps} options.props The validation props, they differ depending on the component.
16
+ * @param {(error: TError, value: TValue) => void} options.onError Callback fired when the error associated with the current value changes.
17
+ */
18
+ export function useValidation(options) {
19
+ const {
20
+ props,
21
+ validator,
22
+ value,
23
+ timezone,
24
+ onError
25
+ } = options;
26
+ const adapter = useLocalizationContext();
27
+ const previousValidationErrorRef = React.useRef(validator.valueManager.defaultErrorState);
28
+ const validationError = validator({
29
+ adapter,
30
+ value,
31
+ timezone,
32
+ props
33
+ });
34
+ const hasValidationError = validator.valueManager.hasError(validationError);
35
+ React.useEffect(() => {
36
+ if (onError && !validator.valueManager.isSameError(validationError, previousValidationErrorRef.current)) {
37
+ onError(validationError, value);
38
+ }
39
+ previousValidationErrorRef.current = validationError;
40
+ }, [validator, onError, validationError, value]);
41
+ const getValidationErrorForNewValue = useEventCallback(newValue => {
42
+ return validator({
43
+ adapter,
44
+ value: newValue,
45
+ timezone,
46
+ props
47
+ });
48
+ });
49
+ return {
50
+ validationError,
51
+ hasValidationError,
52
+ getValidationErrorForNewValue
53
+ };
54
+ }
@@ -0,0 +1,6 @@
1
+ import { Validator } from './useValidation';
2
+ import { BaseDateValidationProps, DayValidationProps, MonthValidationProps, YearValidationProps } from '../internals/models/validation';
3
+ import { DateValidationError, PickerValidDate } from '../models';
4
+ export interface ValidateDateProps<TDate extends PickerValidDate> extends DayValidationProps<TDate>, MonthValidationProps<TDate>, YearValidationProps<TDate>, Required<BaseDateValidationProps<TDate>> {
5
+ }
6
+ export declare const validateDate: Validator<any | null, any, DateValidationError, ValidateDateProps<any>>;
@@ -1,7 +1,9 @@
1
- import { applyDefaultDate } from '../date-utils';
1
+ import { applyDefaultDate } from "../internals/utils/date-utils.js";
2
+ import { singleItemValueManager } from "../internals/utils/valueManagers.js";
2
3
  export const validateDate = ({
3
4
  props,
4
5
  value,
6
+ timezone,
5
7
  adapter
6
8
  }) => {
7
9
  if (value === null) {
@@ -12,8 +14,7 @@ export const validateDate = ({
12
14
  shouldDisableMonth,
13
15
  shouldDisableYear,
14
16
  disablePast,
15
- disableFuture,
16
- timezone
17
+ disableFuture
17
18
  } = props;
18
19
  const now = adapter.utils.date(undefined, timezone);
19
20
  const minDate = applyDefaultDate(adapter.utils, props.minDate, adapter.defaultDates.minDate);
@@ -38,4 +39,5 @@ export const validateDate = ({
38
39
  default:
39
40
  return null;
40
41
  }
41
- };
42
+ };
43
+ validateDate.valueManager = singleItemValueManager;
@@ -0,0 +1,7 @@
1
+ import { Validator } from './useValidation';
2
+ import { ValidateDateProps } from './validateDate';
3
+ import { ValidateTimeProps } from './validateTime';
4
+ import { DateTimeValidationError, PickerValidDate } from '../models';
5
+ export interface ValidateDateTimeProps<TDate extends PickerValidDate> extends ValidateDateProps<TDate>, ValidateTimeProps<TDate> {
6
+ }
7
+ export declare const validateDateTime: Validator<any | null, any, DateTimeValidationError, ValidateDateTimeProps<any>>;
@@ -0,0 +1,26 @@
1
+ import { validateDate } from "./validateDate.js";
2
+ import { validateTime } from "./validateTime.js";
3
+ import { singleItemValueManager } from "../internals/utils/valueManagers.js";
4
+ export const validateDateTime = ({
5
+ adapter,
6
+ value,
7
+ timezone,
8
+ props
9
+ }) => {
10
+ const dateValidationResult = validateDate({
11
+ adapter,
12
+ value,
13
+ timezone,
14
+ props
15
+ });
16
+ if (dateValidationResult !== null) {
17
+ return dateValidationResult;
18
+ }
19
+ return validateTime({
20
+ adapter,
21
+ value,
22
+ timezone,
23
+ props
24
+ });
25
+ };
26
+ validateDateTime.valueManager = singleItemValueManager;
@@ -0,0 +1,6 @@
1
+ import { Validator } from './useValidation';
2
+ import { BaseTimeValidationProps, TimeValidationProps } from '../internals/models/validation';
3
+ import { PickerValidDate, TimeValidationError } from '../models';
4
+ export interface ValidateTimeProps<TDate extends PickerValidDate> extends Required<BaseTimeValidationProps>, TimeValidationProps<TDate> {
5
+ }
6
+ export declare const validateTime: Validator<any | null, any, TimeValidationError, ValidateTimeProps<any>>;
@@ -1,7 +1,9 @@
1
- import { createIsAfterIgnoreDatePart } from '../time-utils';
1
+ import { createIsAfterIgnoreDatePart } from "../internals/utils/time-utils.js";
2
+ import { singleItemValueManager } from "../internals/utils/valueManagers.js";
2
3
  export const validateTime = ({
3
4
  adapter,
4
5
  value,
6
+ timezone,
5
7
  props
6
8
  }) => {
7
9
  if (value === null) {
@@ -14,8 +16,7 @@ export const validateTime = ({
14
16
  shouldDisableTime,
15
17
  disableIgnoringDatePartForTimeValidation = false,
16
18
  disablePast,
17
- disableFuture,
18
- timezone
19
+ disableFuture
19
20
  } = props;
20
21
  const now = adapter.utils.date(undefined, timezone);
21
22
  const isAfter = createIsAfterIgnoreDatePart(disableIgnoringDatePartForTimeValidation, adapter.utils);
@@ -41,4 +42,5 @@ export const validateTime = ({
41
42
  default:
42
43
  return null;
43
44
  }
44
- };
45
+ };
46
+ validateTime.valueManager = singleItemValueManager;
@@ -1,24 +0,0 @@
1
- import { MuiPickersAdapterContextValue } from '../../LocalizationProvider/LocalizationProvider';
2
- import { PickerValidDate } from '../../models';
3
- interface ValidationCommonProps<TError, TValue> {
4
- /**
5
- * Callback that fired when input value or new `value` prop validation returns **new** validation error (or value is valid after error).
6
- * In case of validation error detected `reason` prop return non-null value and `TextField` must be displayed in `error` state.
7
- * This can be used to render appropriate form error.
8
- * @template TError The validation error type. Will be either `string` or a `null`. Can be in `[start, end]` format in case of range value.
9
- * @template TValue The value type. Will be either the same type as `value` or `null`. Can be in `[start, end]` format in case of range value.
10
- * @param {TError} reason The reason why the current value is not valid.
11
- * @param {TValue} value The invalid value.
12
- */
13
- onError?: (reason: TError, value: TValue) => void;
14
- value: TValue;
15
- }
16
- export type ValidationProps<TError, TValue, TValidationProps extends {}> = ValidationCommonProps<TError, TValue> & TValidationProps;
17
- export type InferError<TProps> = TProps extends Pick<ValidationCommonProps<any, any>, 'onError'> ? Parameters<Exclude<TProps['onError'], undefined>>[0] : never;
18
- export type Validator<TValue, TDate extends PickerValidDate, TError, TValidationProps> = (params: {
19
- adapter: MuiPickersAdapterContextValue<TDate>;
20
- value: TValue;
21
- props: Omit<TValidationProps, 'value' | 'onError'>;
22
- }) => TError;
23
- export declare function useValidation<TValue, TDate extends PickerValidDate, TError, TValidationProps extends {}>(props: ValidationProps<TError, TValue, TValidationProps>, validate: Validator<TValue, TDate, TError, TValidationProps>, isSameError: (a: TError, b: TError | null) => boolean, defaultErrorState: TError): TError;
24
- export {};
@@ -1,22 +0,0 @@
1
- import * as React from 'react';
2
- import { useLocalizationContext } from './useUtils';
3
- export function useValidation(props, validate, isSameError, defaultErrorState) {
4
- const {
5
- value,
6
- onError
7
- } = props;
8
- const adapter = useLocalizationContext();
9
- const previousValidationErrorRef = React.useRef(defaultErrorState);
10
- const validationError = validate({
11
- adapter,
12
- value,
13
- props
14
- });
15
- React.useEffect(() => {
16
- if (onError && !isSameError(validationError, previousValidationErrorRef.current)) {
17
- onError(validationError, value);
18
- }
19
- previousValidationErrorRef.current = validationError;
20
- }, [isSameError, onError, previousValidationErrorRef, validationError, value]);
21
- return validationError;
22
- }
@@ -1,5 +0,0 @@
1
- import { FieldValueType } from '../../models';
2
- export declare const splitFieldInternalAndForwardedProps: <TProps extends {}, TInternalPropNames extends keyof TProps>(props: TProps, valueType: FieldValueType) => {
3
- forwardedProps: Omit<TProps, TInternalPropNames>;
4
- internalProps: Pick<TProps, TInternalPropNames>;
5
- };
@@ -1,28 +0,0 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
- import { DATE_TIME_VALIDATION_PROP_NAMES, DATE_VALIDATION_PROP_NAMES, TIME_VALIDATION_PROP_NAMES } from './validation/extractValidationProps';
3
- const SHARED_FIELD_INTERNAL_PROP_NAMES = ['value', 'defaultValue', 'referenceDate', 'format', 'formatDensity', 'onChange', 'timezone', 'onError', 'shouldRespectLeadingZeros', 'selectedSections', 'onSelectedSectionsChange', 'unstableFieldRef', 'enableAccessibleFieldDOMStructure', 'disabled', 'readOnly', 'dateSeparator'];
4
- export const splitFieldInternalAndForwardedProps = (props, valueType) => {
5
- const forwardedProps = _extends({}, props);
6
- const internalProps = {};
7
- const extractProp = propName => {
8
- if (forwardedProps.hasOwnProperty(propName)) {
9
- // @ts-ignore
10
- internalProps[propName] = forwardedProps[propName];
11
- delete forwardedProps[propName];
12
- }
13
- };
14
- SHARED_FIELD_INTERNAL_PROP_NAMES.forEach(extractProp);
15
- if (valueType === 'date') {
16
- DATE_VALIDATION_PROP_NAMES.forEach(extractProp);
17
- } else if (valueType === 'time') {
18
- TIME_VALIDATION_PROP_NAMES.forEach(extractProp);
19
- } else if (valueType === 'date-time') {
20
- DATE_VALIDATION_PROP_NAMES.forEach(extractProp);
21
- TIME_VALIDATION_PROP_NAMES.forEach(extractProp);
22
- DATE_TIME_VALIDATION_PROP_NAMES.forEach(extractProp);
23
- }
24
- return {
25
- forwardedProps,
26
- internalProps
27
- };
28
- };
@@ -1,7 +0,0 @@
1
- import { Validator } from '../../hooks/useValidation';
2
- import { BaseDateValidationProps, DayValidationProps, MonthValidationProps, YearValidationProps } from '../../models/validation';
3
- import { DateValidationError, PickerValidDate, TimezoneProps } from '../../../models';
4
- import { DefaultizedProps } from '../../models/helpers';
5
- export interface DateComponentValidationProps<TDate extends PickerValidDate> extends DayValidationProps<TDate>, MonthValidationProps<TDate>, YearValidationProps<TDate>, Required<BaseDateValidationProps<TDate>>, DefaultizedProps<TimezoneProps, 'timezone'> {
6
- }
7
- export declare const validateDate: Validator<any | null, any, DateValidationError, DateComponentValidationProps<any>>;
@@ -1,7 +0,0 @@
1
- import { Validator } from '../../hooks/useValidation';
2
- import { DateComponentValidationProps } from './validateDate';
3
- import { TimeComponentValidationProps } from './validateTime';
4
- import { DateTimeValidationError, PickerValidDate } from '../../../models';
5
- export interface DateTimeComponentValidationProps<TDate extends PickerValidDate> extends DateComponentValidationProps<TDate>, TimeComponentValidationProps<TDate> {
6
- }
7
- export declare const validateDateTime: Validator<any | null, any, DateTimeValidationError, DateTimeComponentValidationProps<any>>;
@@ -1,21 +0,0 @@
1
- import { validateDate } from './validateDate';
2
- import { validateTime } from './validateTime';
3
- export const validateDateTime = ({
4
- props,
5
- value,
6
- adapter
7
- }) => {
8
- const dateValidationResult = validateDate({
9
- adapter,
10
- value,
11
- props
12
- });
13
- if (dateValidationResult !== null) {
14
- return dateValidationResult;
15
- }
16
- return validateTime({
17
- adapter,
18
- value,
19
- props
20
- });
21
- };
@@ -1,7 +0,0 @@
1
- import { Validator } from '../../hooks/useValidation';
2
- import { BaseTimeValidationProps, TimeValidationProps } from '../../models/validation';
3
- import { PickerValidDate, TimeValidationError, TimezoneProps } from '../../../models';
4
- import { DefaultizedProps } from '../../models/helpers';
5
- export interface TimeComponentValidationProps<TDate extends PickerValidDate> extends Required<BaseTimeValidationProps>, TimeValidationProps<TDate>, DefaultizedProps<TimezoneProps, 'timezone'> {
6
- }
7
- export declare const validateTime: Validator<any | null, any, TimeValidationError, TimeComponentValidationProps<any>>;
@@ -1,2 +0,0 @@
1
- export declare function warnOnce(message: string | string[], gravity?: 'warning' | 'error'): void;
2
- export declare function clearWarningsCache(): void;
@@ -1,21 +0,0 @@
1
- const warnedOnceCache = new Set();
2
-
3
- // TODO move to @mui/x-internals
4
- // TODO eventually move to @base_ui/internals. Base UI, etc. too need this helper.
5
- export function warnOnce(message, gravity = 'warning') {
6
- if (process.env.NODE_ENV === 'production') {
7
- return;
8
- }
9
- const cleanMessage = Array.isArray(message) ? message.join('\n') : message;
10
- if (!warnedOnceCache.has(cleanMessage)) {
11
- warnedOnceCache.add(cleanMessage);
12
- if (gravity === 'error') {
13
- console.error(cleanMessage);
14
- } else {
15
- console.warn(cleanMessage);
16
- }
17
- }
18
- }
19
- export function clearWarningsCache() {
20
- warnedOnceCache.clear();
21
- }
@@ -1,22 +0,0 @@
1
- import * as React from 'react';
2
- import { useLocalizationContext } from './useUtils';
3
- export function useValidation(props, validate, isSameError, defaultErrorState) {
4
- const {
5
- value,
6
- onError
7
- } = props;
8
- const adapter = useLocalizationContext();
9
- const previousValidationErrorRef = React.useRef(defaultErrorState);
10
- const validationError = validate({
11
- adapter,
12
- value,
13
- props
14
- });
15
- React.useEffect(() => {
16
- if (onError && !isSameError(validationError, previousValidationErrorRef.current)) {
17
- onError(validationError, value);
18
- }
19
- previousValidationErrorRef.current = validationError;
20
- }, [isSameError, onError, previousValidationErrorRef, validationError, value]);
21
- return validationError;
22
- }
@@ -1,28 +0,0 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
- import { DATE_TIME_VALIDATION_PROP_NAMES, DATE_VALIDATION_PROP_NAMES, TIME_VALIDATION_PROP_NAMES } from './validation/extractValidationProps';
3
- const SHARED_FIELD_INTERNAL_PROP_NAMES = ['value', 'defaultValue', 'referenceDate', 'format', 'formatDensity', 'onChange', 'timezone', 'onError', 'shouldRespectLeadingZeros', 'selectedSections', 'onSelectedSectionsChange', 'unstableFieldRef', 'enableAccessibleFieldDOMStructure', 'disabled', 'readOnly', 'dateSeparator'];
4
- export const splitFieldInternalAndForwardedProps = (props, valueType) => {
5
- const forwardedProps = _extends({}, props);
6
- const internalProps = {};
7
- const extractProp = propName => {
8
- if (forwardedProps.hasOwnProperty(propName)) {
9
- // @ts-ignore
10
- internalProps[propName] = forwardedProps[propName];
11
- delete forwardedProps[propName];
12
- }
13
- };
14
- SHARED_FIELD_INTERNAL_PROP_NAMES.forEach(extractProp);
15
- if (valueType === 'date') {
16
- DATE_VALIDATION_PROP_NAMES.forEach(extractProp);
17
- } else if (valueType === 'time') {
18
- TIME_VALIDATION_PROP_NAMES.forEach(extractProp);
19
- } else if (valueType === 'date-time') {
20
- DATE_VALIDATION_PROP_NAMES.forEach(extractProp);
21
- TIME_VALIDATION_PROP_NAMES.forEach(extractProp);
22
- DATE_TIME_VALIDATION_PROP_NAMES.forEach(extractProp);
23
- }
24
- return {
25
- forwardedProps,
26
- internalProps
27
- };
28
- };
@@ -1,21 +0,0 @@
1
- import { validateDate } from './validateDate';
2
- import { validateTime } from './validateTime';
3
- export const validateDateTime = ({
4
- props,
5
- value,
6
- adapter
7
- }) => {
8
- const dateValidationResult = validateDate({
9
- adapter,
10
- value,
11
- props
12
- });
13
- if (dateValidationResult !== null) {
14
- return dateValidationResult;
15
- }
16
- return validateTime({
17
- adapter,
18
- value,
19
- props
20
- });
21
- };
@@ -1,21 +0,0 @@
1
- const warnedOnceCache = new Set();
2
-
3
- // TODO move to @mui/x-internals
4
- // TODO eventually move to @base_ui/internals. Base UI, etc. too need this helper.
5
- export function warnOnce(message, gravity = 'warning') {
6
- if (process.env.NODE_ENV === 'production') {
7
- return;
8
- }
9
- const cleanMessage = Array.isArray(message) ? message.join('\n') : message;
10
- if (!warnedOnceCache.has(cleanMessage)) {
11
- warnedOnceCache.add(cleanMessage);
12
- if (gravity === 'error') {
13
- console.error(cleanMessage);
14
- } else {
15
- console.warn(cleanMessage);
16
- }
17
- }
18
- }
19
- export function clearWarningsCache() {
20
- warnedOnceCache.clear();
21
- }
@@ -1,30 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.useValidation = useValidation;
7
- var React = _interopRequireWildcard(require("react"));
8
- var _useUtils = require("./useUtils");
9
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
10
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
11
- function useValidation(props, validate, isSameError, defaultErrorState) {
12
- const {
13
- value,
14
- onError
15
- } = props;
16
- const adapter = (0, _useUtils.useLocalizationContext)();
17
- const previousValidationErrorRef = React.useRef(defaultErrorState);
18
- const validationError = validate({
19
- adapter,
20
- value,
21
- props
22
- });
23
- React.useEffect(() => {
24
- if (onError && !isSameError(validationError, previousValidationErrorRef.current)) {
25
- onError(validationError, value);
26
- }
27
- previousValidationErrorRef.current = validationError;
28
- }, [isSameError, onError, previousValidationErrorRef, validationError, value]);
29
- return validationError;
30
- }
@@ -1,36 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.splitFieldInternalAndForwardedProps = void 0;
8
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
- var _extractValidationProps = require("./validation/extractValidationProps");
10
- const SHARED_FIELD_INTERNAL_PROP_NAMES = ['value', 'defaultValue', 'referenceDate', 'format', 'formatDensity', 'onChange', 'timezone', 'onError', 'shouldRespectLeadingZeros', 'selectedSections', 'onSelectedSectionsChange', 'unstableFieldRef', 'enableAccessibleFieldDOMStructure', 'disabled', 'readOnly', 'dateSeparator'];
11
- const splitFieldInternalAndForwardedProps = (props, valueType) => {
12
- const forwardedProps = (0, _extends2.default)({}, props);
13
- const internalProps = {};
14
- const extractProp = propName => {
15
- if (forwardedProps.hasOwnProperty(propName)) {
16
- // @ts-ignore
17
- internalProps[propName] = forwardedProps[propName];
18
- delete forwardedProps[propName];
19
- }
20
- };
21
- SHARED_FIELD_INTERNAL_PROP_NAMES.forEach(extractProp);
22
- if (valueType === 'date') {
23
- _extractValidationProps.DATE_VALIDATION_PROP_NAMES.forEach(extractProp);
24
- } else if (valueType === 'time') {
25
- _extractValidationProps.TIME_VALIDATION_PROP_NAMES.forEach(extractProp);
26
- } else if (valueType === 'date-time') {
27
- _extractValidationProps.DATE_VALIDATION_PROP_NAMES.forEach(extractProp);
28
- _extractValidationProps.TIME_VALIDATION_PROP_NAMES.forEach(extractProp);
29
- _extractValidationProps.DATE_TIME_VALIDATION_PROP_NAMES.forEach(extractProp);
30
- }
31
- return {
32
- forwardedProps,
33
- internalProps
34
- };
35
- };
36
- exports.splitFieldInternalAndForwardedProps = splitFieldInternalAndForwardedProps;
@@ -1,28 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.clearWarningsCache = clearWarningsCache;
7
- exports.warnOnce = warnOnce;
8
- const warnedOnceCache = new Set();
9
-
10
- // TODO move to @mui/x-internals
11
- // TODO eventually move to @base_ui/internals. Base UI, etc. too need this helper.
12
- function warnOnce(message, gravity = 'warning') {
13
- if (process.env.NODE_ENV === 'production') {
14
- return;
15
- }
16
- const cleanMessage = Array.isArray(message) ? message.join('\n') : message;
17
- if (!warnedOnceCache.has(cleanMessage)) {
18
- warnedOnceCache.add(cleanMessage);
19
- if (gravity === 'error') {
20
- console.error(cleanMessage);
21
- } else {
22
- console.warn(cleanMessage);
23
- }
24
- }
25
- }
26
- function clearWarningsCache() {
27
- warnedOnceCache.clear();
28
- }