@mui/x-date-pickers 8.0.0-alpha.1 → 8.0.0-alpha.11

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 (580) hide show
  1. package/AdapterDateFns/AdapterDateFns.d.ts +2 -4
  2. package/AdapterDateFns/AdapterDateFns.js +49 -47
  3. package/AdapterDateFnsBase/AdapterDateFnsBase.d.ts +1 -1
  4. package/AdapterDateFnsJalali/AdapterDateFnsJalali.d.ts +2 -4
  5. package/AdapterDateFnsJalali/AdapterDateFnsJalali.js +48 -46
  6. package/{AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.d.ts → AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.d.ts} +2 -2
  7. package/{AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.js → AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.js} +45 -52
  8. package/AdapterDateFnsJalaliV2/index.d.ts +1 -0
  9. package/AdapterDateFnsJalaliV2/index.js +1 -0
  10. package/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/package.json +1 -1
  11. package/{AdapterDateFnsV3/AdapterDateFnsV3.d.ts → AdapterDateFnsV2/AdapterDateFnsV2.d.ts} +2 -2
  12. package/{AdapterDateFnsV3/AdapterDateFnsV3.js → AdapterDateFnsV2/AdapterDateFnsV2.js} +46 -54
  13. package/AdapterDateFnsV2/index.d.ts +1 -0
  14. package/AdapterDateFnsV2/index.js +1 -0
  15. package/{AdapterDateFnsV3 → AdapterDateFnsV2}/package.json +1 -1
  16. package/AdapterDayjs/AdapterDayjs.d.ts +1 -1
  17. package/AdapterLuxon/AdapterLuxon.d.ts +1 -1
  18. package/AdapterMoment/AdapterMoment.d.ts +1 -1
  19. package/AdapterMoment/AdapterMoment.js +10 -0
  20. package/CHANGELOG.md +2007 -230
  21. package/DateCalendar/DateCalendar.js +41 -22
  22. package/DateCalendar/DateCalendar.types.d.ts +2 -1
  23. package/DateCalendar/DayCalendar.d.ts +1 -2
  24. package/DateCalendar/DayCalendar.js +12 -36
  25. package/DateCalendar/PickersFadeTransitionGroup.d.ts +1 -1
  26. package/DateCalendar/PickersFadeTransitionGroup.js +4 -6
  27. package/DateCalendar/PickersSlideTransition.d.ts +1 -1
  28. package/DateCalendar/PickersSlideTransition.js +12 -5
  29. package/DateCalendar/useCalendarState.d.ts +13 -27
  30. package/DateCalendar/useCalendarState.js +65 -55
  31. package/DateField/DateField.js +29 -33
  32. package/DateField/DateField.types.d.ts +7 -15
  33. package/DateField/useDateField.d.ts +1 -1
  34. package/DateField/useDateField.js +14 -11
  35. package/DatePicker/DatePicker.js +1 -1
  36. package/DatePicker/DatePicker.types.d.ts +7 -3
  37. package/DatePicker/DatePickerToolbar.d.ts +1 -2
  38. package/DatePicker/DatePickerToolbar.js +17 -33
  39. package/DatePicker/shared.d.ts +6 -5
  40. package/DateTimeField/DateTimeField.js +29 -33
  41. package/DateTimeField/DateTimeField.types.d.ts +7 -16
  42. package/DateTimeField/useDateTimeField.d.ts +1 -1
  43. package/DateTimeField/useDateTimeField.js +14 -11
  44. package/DateTimePicker/DateTimePicker.js +2 -2
  45. package/DateTimePicker/DateTimePicker.types.d.ts +4 -5
  46. package/DateTimePicker/DateTimePickerTabs.d.ts +2 -5
  47. package/DateTimePicker/DateTimePickerTabs.js +15 -20
  48. package/DateTimePicker/DateTimePickerToolbar.d.ts +16 -5
  49. package/DateTimePicker/DateTimePickerToolbar.js +88 -80
  50. package/DateTimePicker/shared.d.ts +8 -8
  51. package/DayCalendarSkeleton/DayCalendarSkeleton.js +10 -19
  52. package/DesktopDatePicker/DesktopDatePicker.js +11 -17
  53. package/DesktopDatePicker/DesktopDatePicker.types.d.ts +7 -3
  54. package/DesktopDateTimePicker/DesktopDateTimePicker.js +17 -27
  55. package/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +2 -2
  56. package/DesktopDateTimePicker/DesktopDateTimePickerLayout.d.ts +2 -2
  57. package/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +9 -34
  58. package/DesktopTimePicker/DesktopTimePicker.js +6 -22
  59. package/DesktopTimePicker/DesktopTimePicker.types.d.ts +2 -2
  60. package/DigitalClock/DigitalClock.js +13 -11
  61. package/DigitalClock/DigitalClock.types.d.ts +8 -2
  62. package/MobileDatePicker/MobileDatePicker.js +4 -14
  63. package/MobileDatePicker/MobileDatePicker.types.d.ts +2 -3
  64. package/MobileDateTimePicker/MobileDateTimePicker.js +4 -14
  65. package/MobileDateTimePicker/MobileDateTimePicker.types.d.ts +4 -4
  66. package/MobileTimePicker/MobileTimePicker.js +4 -14
  67. package/MobileTimePicker/MobileTimePicker.types.d.ts +4 -4
  68. package/MonthCalendar/MonthCalendar.d.ts +1 -1
  69. package/MonthCalendar/MonthCalendar.js +31 -11
  70. package/MonthCalendar/MonthCalendar.types.d.ts +2 -2
  71. package/MonthCalendar/MonthCalendarButton.d.ts +24 -0
  72. package/{modern/MonthCalendar/PickersMonth.js → MonthCalendar/MonthCalendarButton.js} +20 -61
  73. package/MonthCalendar/index.d.ts +0 -3
  74. package/MonthCalendar/index.js +1 -2
  75. package/MonthCalendar/monthCalendarClasses.d.ts +7 -1
  76. package/MonthCalendar/monthCalendarClasses.js +1 -1
  77. package/MultiSectionDigitalClock/MultiSectionDigitalClock.js +11 -7
  78. package/MultiSectionDigitalClock/MultiSectionDigitalClock.types.d.ts +6 -6
  79. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.d.ts +4 -4
  80. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +14 -10
  81. package/PickersActionBar/PickersActionBar.d.ts +6 -7
  82. package/PickersActionBar/PickersActionBar.js +26 -17
  83. package/PickersCalendarHeader/PickersCalendarHeader.js +12 -9
  84. package/PickersCalendarHeader/PickersCalendarHeader.types.d.ts +4 -6
  85. package/PickersLayout/PickersLayout.d.ts +7 -5
  86. package/PickersLayout/PickersLayout.js +23 -42
  87. package/PickersLayout/PickersLayout.types.d.ts +20 -22
  88. package/PickersLayout/usePickerLayout.d.ts +5 -4
  89. package/PickersLayout/usePickerLayout.js +26 -53
  90. package/PickersSectionList/PickersSectionList.js +21 -16
  91. package/PickersSectionList/PickersSectionList.types.d.ts +13 -6
  92. package/PickersShortcuts/PickersShortcuts.d.ts +9 -11
  93. package/PickersShortcuts/PickersShortcuts.js +21 -11
  94. package/PickersShortcuts/index.d.ts +1 -1
  95. package/PickersTextField/PickersFilledInput/PickersFilledInput.d.ts +7 -0
  96. package/PickersTextField/PickersFilledInput/PickersFilledInput.js +34 -28
  97. package/PickersTextField/PickersFilledInput/pickersFilledInputClasses.d.ts +1 -1
  98. package/PickersTextField/PickersInput/PickersInput.js +20 -14
  99. package/PickersTextField/PickersInput/pickersInputClasses.d.ts +3 -2
  100. package/PickersTextField/PickersInput/pickersInputClasses.js +1 -1
  101. package/PickersTextField/PickersInputBase/PickersInputBase.d.ts +3 -6
  102. package/PickersTextField/PickersInputBase/PickersInputBase.js +45 -38
  103. package/PickersTextField/PickersInputBase/PickersInputBase.types.d.ts +1 -0
  104. package/PickersTextField/PickersOutlinedInput/Outline.d.ts +0 -1
  105. package/PickersTextField/PickersOutlinedInput/Outline.js +13 -10
  106. package/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +8 -14
  107. package/PickersTextField/PickersTextField.js +75 -62
  108. package/PickersTextField/PickersTextField.types.d.ts +43 -4
  109. package/PickersTextField/usePickerTextFieldOwnerState.d.ts +4 -0
  110. package/PickersTextField/usePickerTextFieldOwnerState.js +11 -0
  111. package/README.md +8 -5
  112. package/StaticDatePicker/StaticDatePicker.js +2 -2
  113. package/StaticDatePicker/StaticDatePicker.types.d.ts +2 -3
  114. package/StaticDateTimePicker/StaticDateTimePicker.js +2 -2
  115. package/StaticDateTimePicker/StaticDateTimePicker.types.d.ts +2 -2
  116. package/StaticTimePicker/StaticTimePicker.js +2 -2
  117. package/StaticTimePicker/StaticTimePicker.types.d.ts +2 -2
  118. package/TimeClock/Clock.d.ts +4 -0
  119. package/TimeClock/Clock.js +27 -27
  120. package/TimeClock/ClockNumber.js +15 -11
  121. package/TimeClock/ClockPointer.d.ts +6 -1
  122. package/TimeClock/ClockPointer.js +16 -10
  123. package/TimeClock/TimeClock.js +30 -12
  124. package/TimeField/TimeField.js +28 -32
  125. package/TimeField/TimeField.types.d.ts +7 -16
  126. package/TimeField/useTimeField.d.ts +1 -1
  127. package/TimeField/useTimeField.js +14 -11
  128. package/TimePicker/TimePicker.js +2 -2
  129. package/TimePicker/TimePicker.types.d.ts +4 -5
  130. package/TimePicker/TimePickerToolbar.d.ts +1 -3
  131. package/TimePicker/TimePickerToolbar.js +36 -51
  132. package/TimePicker/shared.d.ts +6 -6
  133. package/YearCalendar/YearCalendar.js +46 -13
  134. package/YearCalendar/YearCalendar.types.d.ts +2 -2
  135. package/YearCalendar/YearCalendarButton.d.ts +23 -0
  136. package/{modern/YearCalendar/PickersYear.js → YearCalendar/YearCalendarButton.js} +20 -59
  137. package/YearCalendar/index.d.ts +0 -3
  138. package/YearCalendar/index.js +1 -2
  139. package/YearCalendar/yearCalendarClasses.d.ts +7 -1
  140. package/YearCalendar/yearCalendarClasses.js +1 -1
  141. package/hooks/index.d.ts +2 -0
  142. package/hooks/index.js +3 -1
  143. package/hooks/useClearableField.d.ts +5 -3
  144. package/hooks/useClearableField.js +4 -2
  145. package/hooks/useIsValidValue.d.ts +7 -0
  146. package/hooks/useIsValidValue.js +11 -0
  147. package/hooks/useParsedFormat.d.ts +9 -7
  148. package/hooks/useParsedFormat.js +11 -13
  149. package/hooks/usePickerActionsContext.d.ts +7 -0
  150. package/hooks/usePickerActionsContext.js +15 -0
  151. package/hooks/usePickerContext.d.ts +5 -1
  152. package/hooks/usePickerContext.js +2 -2
  153. package/hooks/useSplitFieldProps.d.ts +12 -3
  154. package/hooks/useSplitFieldProps.js +8 -3
  155. package/index.d.ts +1 -0
  156. package/index.js +3 -2
  157. package/internals/components/PickerFieldUI.d.ts +133 -0
  158. package/internals/components/PickerFieldUI.js +317 -0
  159. package/internals/components/{PickersPopper.d.ts → PickerPopper/PickerPopper.d.ts} +26 -25
  160. package/{modern/internals/components/PickersPopper.js → internals/components/PickerPopper/PickerPopper.js} +47 -47
  161. package/internals/components/PickerPopper/index.d.ts +4 -0
  162. package/internals/components/PickerPopper/index.js +2 -0
  163. package/internals/components/PickerPopper/pickerPopperClasses.d.ts +9 -0
  164. package/internals/components/PickerPopper/pickerPopperClasses.js +6 -0
  165. package/internals/components/PickerProvider.d.ts +86 -32
  166. package/internals/components/PickerProvider.js +25 -7
  167. package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +12 -11
  168. package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.types.d.ts +11 -8
  169. package/internals/components/PickersModalDialog.d.ts +1 -3
  170. package/internals/components/PickersModalDialog.js +9 -3
  171. package/internals/components/PickersToolbar.d.ts +2 -3
  172. package/internals/components/PickersToolbar.js +15 -12
  173. package/internals/components/PickersToolbarButton.js +4 -6
  174. package/internals/components/PickersToolbarText.js +11 -13
  175. package/internals/hooks/date-helpers-hooks.js +4 -3
  176. package/internals/hooks/useClockReferenceDate.d.ts +2 -1
  177. package/internals/hooks/useDesktopPicker/useDesktopPicker.d.ts +1 -1
  178. package/internals/hooks/useDesktopPicker/useDesktopPicker.js +35 -120
  179. package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +16 -38
  180. package/internals/hooks/useField/buildSectionsFromFormat.js +1 -1
  181. package/internals/hooks/useField/index.d.ts +2 -0
  182. package/internals/hooks/useField/index.js +2 -1
  183. package/internals/hooks/useField/useField.d.ts +3 -3
  184. package/internals/hooks/useField/useField.js +17 -4
  185. package/internals/hooks/useField/useField.types.d.ts +55 -48
  186. package/internals/hooks/useField/useField.utils.d.ts +4 -3
  187. package/internals/hooks/useField/useField.utils.js +2 -2
  188. package/internals/hooks/useField/useFieldCharacterEditing.d.ts +6 -5
  189. package/internals/hooks/useField/useFieldInternalPropsWithDefaults.d.ts +15 -0
  190. package/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +47 -0
  191. package/internals/hooks/useField/useFieldState.d.ts +9 -8
  192. package/internals/hooks/useField/useFieldState.js +2 -3
  193. package/internals/hooks/useField/useFieldV6TextField.d.ts +4 -3
  194. package/internals/hooks/useField/useFieldV6TextField.js +5 -2
  195. package/internals/hooks/useField/useFieldV7TextField.js +6 -3
  196. package/internals/hooks/useFieldOwnerState.d.ts +6 -0
  197. package/internals/hooks/useFieldOwnerState.js +16 -0
  198. package/internals/hooks/useMobilePicker/useMobilePicker.d.ts +1 -1
  199. package/internals/hooks/useMobilePicker/useMobilePicker.js +34 -68
  200. package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +15 -22
  201. package/internals/hooks/useNullablePickerContext.d.ts +5 -0
  202. package/internals/hooks/useNullablePickerContext.js +10 -0
  203. package/internals/hooks/useOpenState.d.ts +3 -2
  204. package/internals/hooks/useOpenState.js +11 -9
  205. package/internals/hooks/usePicker/index.d.ts +1 -1
  206. package/internals/hooks/usePicker/usePicker.d.ts +3 -4
  207. package/internals/hooks/usePicker/usePicker.js +4 -20
  208. package/internals/hooks/usePicker/usePicker.types.d.ts +10 -10
  209. package/internals/hooks/usePicker/usePickerProvider.d.ts +45 -10
  210. package/internals/hooks/usePicker/usePickerProvider.js +50 -16
  211. package/internals/hooks/usePicker/usePickerValue.d.ts +3 -2
  212. package/internals/hooks/usePicker/usePickerValue.js +84 -214
  213. package/internals/hooks/usePicker/usePickerValue.types.d.ts +130 -75
  214. package/internals/hooks/usePicker/usePickerViews.d.ts +59 -41
  215. package/internals/hooks/usePicker/usePickerViews.js +31 -20
  216. package/internals/hooks/useReduceAnimations.d.ts +2 -0
  217. package/internals/hooks/{useDefaultReduceAnimations.js → useReduceAnimations.js} +5 -2
  218. package/internals/hooks/useStaticPicker/useStaticPicker.d.ts +1 -1
  219. package/internals/hooks/useStaticPicker/useStaticPicker.js +7 -12
  220. package/internals/hooks/useStaticPicker/useStaticPicker.types.d.ts +7 -13
  221. package/internals/hooks/useToolbarOwnerState.d.ts +10 -0
  222. package/internals/hooks/useToolbarOwnerState.js +13 -0
  223. package/internals/hooks/useUtils.d.ts +4 -3
  224. package/internals/hooks/useUtils.js +1 -1
  225. package/internals/hooks/useValueWithTimezone.d.ts +5 -4
  226. package/internals/hooks/useViews.d.ts +5 -5
  227. package/internals/index.d.ts +27 -18
  228. package/internals/index.js +13 -8
  229. package/internals/models/common.d.ts +1 -1
  230. package/internals/models/fields.d.ts +8 -24
  231. package/internals/models/index.d.ts +1 -0
  232. package/internals/models/index.js +2 -1
  233. package/internals/models/manager.d.ts +15 -0
  234. package/internals/models/manager.js +1 -0
  235. package/internals/models/pickers.d.ts +1 -0
  236. package/internals/models/pickers.js +1 -0
  237. package/internals/models/props/basePickerProps.d.ts +3 -33
  238. package/internals/models/props/tabs.d.ts +0 -13
  239. package/internals/models/props/time.d.ts +2 -1
  240. package/internals/models/props/toolbar.d.ts +1 -19
  241. package/internals/models/value.d.ts +9 -0
  242. package/internals/utils/date-utils.d.ts +1 -1
  243. package/internals/utils/date-utils.js +1 -1
  244. package/internals/utils/utils.d.ts +3 -0
  245. package/internals/utils/utils.js +11 -1
  246. package/internals/utils/valueManagers.d.ts +4 -3
  247. package/internals/utils/valueManagers.js +4 -4
  248. package/locales/index.d.ts +1 -0
  249. package/locales/index.js +1 -0
  250. package/locales/nbNO.js +15 -19
  251. package/locales/nlNL.js +7 -7
  252. package/locales/roRO.js +15 -18
  253. package/locales/utils/getPickersLocalization.d.ts +0 -7
  254. package/locales/utils/getPickersLocalization.js +0 -13
  255. package/locales/zhTW.d.ts +80 -0
  256. package/locales/zhTW.js +73 -0
  257. package/managers/index.d.ts +6 -0
  258. package/managers/index.js +3 -0
  259. package/managers/package.json +6 -0
  260. package/managers/useDateManager.d.ts +27 -0
  261. package/managers/useDateManager.js +55 -0
  262. package/managers/useDateTimeManager.d.ts +28 -0
  263. package/managers/useDateTimeManager.js +60 -0
  264. package/managers/useTimeManager.d.ts +28 -0
  265. package/managers/useTimeManager.js +51 -0
  266. package/models/adapters.d.ts +5 -5
  267. package/models/fields.d.ts +33 -9
  268. package/models/index.d.ts +1 -0
  269. package/models/index.js +1 -0
  270. package/models/manager.d.ts +87 -0
  271. package/models/manager.js +1 -0
  272. package/models/pickers.d.ts +7 -0
  273. package/models/validation.d.ts +2 -1
  274. package/modern/AdapterDateFns/AdapterDateFns.js +49 -47
  275. package/modern/AdapterDateFnsJalali/AdapterDateFnsJalali.js +48 -46
  276. package/modern/{AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.js → AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.js} +45 -52
  277. package/modern/AdapterDateFnsJalaliV2/index.js +1 -0
  278. package/modern/{AdapterDateFnsV3/AdapterDateFnsV3.js → AdapterDateFnsV2/AdapterDateFnsV2.js} +46 -54
  279. package/modern/AdapterDateFnsV2/index.js +1 -0
  280. package/modern/AdapterMoment/AdapterMoment.js +10 -0
  281. package/modern/DateCalendar/DateCalendar.js +41 -22
  282. package/modern/DateCalendar/DayCalendar.js +12 -36
  283. package/modern/DateCalendar/PickersFadeTransitionGroup.js +4 -6
  284. package/modern/DateCalendar/PickersSlideTransition.js +12 -5
  285. package/modern/DateCalendar/useCalendarState.js +65 -55
  286. package/modern/DateField/DateField.js +29 -33
  287. package/modern/DateField/useDateField.js +14 -11
  288. package/modern/DatePicker/DatePicker.js +1 -1
  289. package/modern/DatePicker/DatePickerToolbar.js +17 -33
  290. package/modern/DateTimeField/DateTimeField.js +29 -33
  291. package/modern/DateTimeField/useDateTimeField.js +14 -11
  292. package/modern/DateTimePicker/DateTimePicker.js +2 -2
  293. package/modern/DateTimePicker/DateTimePickerTabs.js +15 -20
  294. package/modern/DateTimePicker/DateTimePickerToolbar.js +88 -80
  295. package/modern/DayCalendarSkeleton/DayCalendarSkeleton.js +10 -19
  296. package/modern/DesktopDatePicker/DesktopDatePicker.js +11 -17
  297. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +17 -27
  298. package/modern/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +9 -34
  299. package/modern/DesktopTimePicker/DesktopTimePicker.js +6 -22
  300. package/modern/DigitalClock/DigitalClock.js +13 -11
  301. package/modern/MobileDatePicker/MobileDatePicker.js +4 -14
  302. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +4 -14
  303. package/modern/MobileTimePicker/MobileTimePicker.js +4 -14
  304. package/modern/MonthCalendar/MonthCalendar.js +31 -11
  305. package/{MonthCalendar/PickersMonth.js → modern/MonthCalendar/MonthCalendarButton.js} +20 -61
  306. package/modern/MonthCalendar/index.js +1 -2
  307. package/modern/MonthCalendar/monthCalendarClasses.js +1 -1
  308. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClock.js +11 -7
  309. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +14 -10
  310. package/modern/PickersActionBar/PickersActionBar.js +26 -17
  311. package/modern/PickersCalendarHeader/PickersCalendarHeader.js +12 -9
  312. package/modern/PickersLayout/PickersLayout.js +23 -42
  313. package/modern/PickersLayout/usePickerLayout.js +26 -53
  314. package/modern/PickersSectionList/PickersSectionList.js +21 -16
  315. package/modern/PickersShortcuts/PickersShortcuts.js +21 -11
  316. package/modern/PickersTextField/PickersFilledInput/PickersFilledInput.js +34 -28
  317. package/modern/PickersTextField/PickersInput/PickersInput.js +20 -14
  318. package/modern/PickersTextField/PickersInput/pickersInputClasses.js +1 -1
  319. package/modern/PickersTextField/PickersInputBase/PickersInputBase.js +45 -38
  320. package/modern/PickersTextField/PickersOutlinedInput/Outline.js +13 -10
  321. package/modern/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +8 -14
  322. package/modern/PickersTextField/PickersTextField.js +75 -62
  323. package/modern/PickersTextField/usePickerTextFieldOwnerState.js +11 -0
  324. package/modern/StaticDatePicker/StaticDatePicker.js +2 -2
  325. package/modern/StaticDateTimePicker/StaticDateTimePicker.js +2 -2
  326. package/modern/StaticTimePicker/StaticTimePicker.js +2 -2
  327. package/modern/TimeClock/Clock.js +27 -27
  328. package/modern/TimeClock/ClockNumber.js +15 -11
  329. package/modern/TimeClock/ClockPointer.js +16 -10
  330. package/modern/TimeClock/TimeClock.js +30 -12
  331. package/modern/TimeField/TimeField.js +28 -32
  332. package/modern/TimeField/useTimeField.js +14 -11
  333. package/modern/TimePicker/TimePicker.js +2 -2
  334. package/modern/TimePicker/TimePickerToolbar.js +36 -51
  335. package/modern/YearCalendar/YearCalendar.js +46 -13
  336. package/{YearCalendar/PickersYear.js → modern/YearCalendar/YearCalendarButton.js} +20 -59
  337. package/modern/YearCalendar/index.js +1 -2
  338. package/modern/YearCalendar/yearCalendarClasses.js +1 -1
  339. package/modern/hooks/index.js +3 -1
  340. package/modern/hooks/useClearableField.js +4 -2
  341. package/modern/hooks/useIsValidValue.js +11 -0
  342. package/modern/hooks/useParsedFormat.js +11 -13
  343. package/modern/hooks/usePickerActionsContext.js +15 -0
  344. package/modern/hooks/usePickerContext.js +2 -2
  345. package/modern/hooks/useSplitFieldProps.js +8 -3
  346. package/modern/index.js +3 -2
  347. package/modern/internals/components/PickerFieldUI.js +317 -0
  348. package/{internals/components/PickersPopper.js → modern/internals/components/PickerPopper/PickerPopper.js} +47 -47
  349. package/modern/internals/components/PickerPopper/index.js +2 -0
  350. package/modern/internals/components/PickerPopper/pickerPopperClasses.js +6 -0
  351. package/modern/internals/components/PickerProvider.js +25 -7
  352. package/modern/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +12 -11
  353. package/modern/internals/components/PickersModalDialog.js +9 -3
  354. package/modern/internals/components/PickersToolbar.js +15 -12
  355. package/modern/internals/components/PickersToolbarButton.js +4 -6
  356. package/modern/internals/components/PickersToolbarText.js +11 -13
  357. package/modern/internals/hooks/date-helpers-hooks.js +4 -3
  358. package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.js +35 -120
  359. package/modern/internals/hooks/useField/buildSectionsFromFormat.js +1 -1
  360. package/modern/internals/hooks/useField/index.js +2 -1
  361. package/modern/internals/hooks/useField/useField.js +17 -4
  362. package/modern/internals/hooks/useField/useField.utils.js +2 -2
  363. package/modern/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +47 -0
  364. package/modern/internals/hooks/useField/useFieldState.js +2 -3
  365. package/modern/internals/hooks/useField/useFieldV6TextField.js +5 -2
  366. package/modern/internals/hooks/useField/useFieldV7TextField.js +6 -3
  367. package/modern/internals/hooks/useFieldOwnerState.js +16 -0
  368. package/modern/internals/hooks/useMobilePicker/useMobilePicker.js +34 -68
  369. package/modern/internals/hooks/useNullablePickerContext.js +10 -0
  370. package/modern/internals/hooks/useOpenState.js +11 -9
  371. package/modern/internals/hooks/usePicker/usePicker.js +4 -20
  372. package/modern/internals/hooks/usePicker/usePickerProvider.js +50 -16
  373. package/modern/internals/hooks/usePicker/usePickerValue.js +84 -214
  374. package/modern/internals/hooks/usePicker/usePickerViews.js +31 -20
  375. package/modern/internals/hooks/{useDefaultReduceAnimations.js → useReduceAnimations.js} +5 -2
  376. package/modern/internals/hooks/useStaticPicker/useStaticPicker.js +7 -12
  377. package/modern/internals/hooks/useToolbarOwnerState.js +13 -0
  378. package/modern/internals/hooks/useUtils.js +1 -1
  379. package/modern/internals/index.js +13 -8
  380. package/modern/internals/models/index.js +2 -1
  381. package/modern/internals/models/manager.js +1 -0
  382. package/modern/internals/models/pickers.js +1 -0
  383. package/modern/internals/utils/date-utils.js +1 -1
  384. package/modern/internals/utils/utils.js +11 -1
  385. package/modern/internals/utils/valueManagers.js +4 -4
  386. package/modern/locales/index.js +1 -0
  387. package/modern/locales/nbNO.js +15 -19
  388. package/modern/locales/nlNL.js +7 -7
  389. package/modern/locales/roRO.js +15 -18
  390. package/modern/locales/utils/getPickersLocalization.js +0 -13
  391. package/modern/locales/zhTW.js +73 -0
  392. package/modern/managers/index.js +3 -0
  393. package/modern/managers/useDateManager.js +55 -0
  394. package/modern/managers/useDateTimeManager.js +60 -0
  395. package/modern/managers/useTimeManager.js +51 -0
  396. package/modern/models/index.js +1 -0
  397. package/modern/models/manager.js +1 -0
  398. package/modern/validation/useValidation.js +1 -1
  399. package/modern/validation/validateDate.js +8 -0
  400. package/modern/validation/validateDateTime.js +8 -0
  401. package/modern/validation/validateTime.js +8 -0
  402. package/node/AdapterDateFns/AdapterDateFns.js +97 -97
  403. package/node/AdapterDateFnsJalali/AdapterDateFnsJalali.js +97 -96
  404. package/node/{AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.js → AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.js} +94 -101
  405. package/node/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.js +1 -1
  406. package/node/AdapterDateFnsV2/AdapterDateFnsV2.js +291 -0
  407. package/node/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.js +1 -1
  408. package/node/AdapterMoment/AdapterMoment.js +10 -0
  409. package/node/DateCalendar/DateCalendar.js +41 -22
  410. package/node/DateCalendar/DayCalendar.js +12 -37
  411. package/node/DateCalendar/PickersFadeTransitionGroup.js +4 -6
  412. package/node/DateCalendar/PickersSlideTransition.js +12 -5
  413. package/node/DateCalendar/useCalendarState.js +66 -57
  414. package/node/DateField/DateField.js +29 -33
  415. package/node/DateField/useDateField.js +13 -10
  416. package/node/DatePicker/DatePicker.js +1 -1
  417. package/node/DatePicker/DatePickerToolbar.js +17 -33
  418. package/node/DateTimeField/DateTimeField.js +29 -33
  419. package/node/DateTimeField/useDateTimeField.js +13 -10
  420. package/node/DateTimePicker/DateTimePicker.js +2 -2
  421. package/node/DateTimePicker/DateTimePickerTabs.js +15 -20
  422. package/node/DateTimePicker/DateTimePickerToolbar.js +89 -80
  423. package/node/DayCalendarSkeleton/DayCalendarSkeleton.js +10 -19
  424. package/node/DesktopDatePicker/DesktopDatePicker.js +11 -17
  425. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +17 -27
  426. package/node/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +10 -35
  427. package/node/DesktopTimePicker/DesktopTimePicker.js +6 -22
  428. package/node/DigitalClock/DigitalClock.js +13 -11
  429. package/node/MobileDatePicker/MobileDatePicker.js +4 -14
  430. package/node/MobileDateTimePicker/MobileDateTimePicker.js +4 -14
  431. package/node/MobileTimePicker/MobileTimePicker.js +4 -14
  432. package/node/MonthCalendar/MonthCalendar.js +31 -11
  433. package/node/MonthCalendar/{PickersMonth.js → MonthCalendarButton.js} +20 -61
  434. package/node/MonthCalendar/index.js +1 -8
  435. package/node/MonthCalendar/monthCalendarClasses.js +1 -1
  436. package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.js +11 -7
  437. package/node/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +13 -10
  438. package/node/PickersActionBar/PickersActionBar.js +28 -19
  439. package/node/PickersCalendarHeader/PickersCalendarHeader.js +12 -9
  440. package/node/PickersLayout/PickersLayout.js +23 -42
  441. package/node/PickersLayout/usePickerLayout.js +30 -57
  442. package/node/PickersSectionList/PickersSectionList.js +21 -16
  443. package/node/PickersShortcuts/PickersShortcuts.js +21 -11
  444. package/node/PickersTextField/PickersFilledInput/PickersFilledInput.js +34 -28
  445. package/node/PickersTextField/PickersInput/PickersInput.js +20 -14
  446. package/node/PickersTextField/PickersInput/pickersInputClasses.js +1 -1
  447. package/node/PickersTextField/PickersInputBase/PickersInputBase.js +45 -38
  448. package/node/PickersTextField/PickersOutlinedInput/Outline.js +13 -10
  449. package/node/PickersTextField/PickersOutlinedInput/PickersOutlinedInput.js +8 -14
  450. package/node/PickersTextField/PickersTextField.js +75 -62
  451. package/node/PickersTextField/usePickerTextFieldOwnerState.js +18 -0
  452. package/node/StaticDatePicker/StaticDatePicker.js +2 -2
  453. package/node/StaticDateTimePicker/StaticDateTimePicker.js +2 -2
  454. package/node/StaticTimePicker/StaticTimePicker.js +2 -2
  455. package/node/TimeClock/Clock.js +27 -27
  456. package/node/TimeClock/ClockNumber.js +15 -11
  457. package/node/TimeClock/ClockPointer.js +15 -10
  458. package/node/TimeClock/TimeClock.js +30 -12
  459. package/node/TimeField/TimeField.js +28 -32
  460. package/node/TimeField/useTimeField.js +13 -10
  461. package/node/TimePicker/TimePicker.js +2 -2
  462. package/node/TimePicker/TimePickerToolbar.js +36 -51
  463. package/node/YearCalendar/YearCalendar.js +45 -12
  464. package/node/YearCalendar/{PickersYear.js → YearCalendarButton.js} +20 -59
  465. package/node/YearCalendar/index.js +1 -8
  466. package/node/YearCalendar/yearCalendarClasses.js +1 -1
  467. package/node/hooks/index.js +15 -1
  468. package/node/hooks/useClearableField.js +4 -2
  469. package/node/hooks/useIsValidValue.js +18 -0
  470. package/node/hooks/useParsedFormat.js +11 -13
  471. package/node/hooks/usePickerActionsContext.js +22 -0
  472. package/node/hooks/usePickerContext.js +5 -4
  473. package/node/hooks/useSplitFieldProps.js +7 -2
  474. package/node/index.js +13 -1
  475. package/node/internals/components/PickerFieldUI.js +329 -0
  476. package/node/internals/components/{PickersPopper.js → PickerPopper/PickerPopper.js} +48 -48
  477. package/node/internals/components/PickerPopper/index.js +25 -0
  478. package/node/internals/components/PickerPopper/pickerPopperClasses.js +14 -0
  479. package/node/internals/components/PickerProvider.js +27 -9
  480. package/node/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +12 -11
  481. package/node/internals/components/PickersModalDialog.js +9 -3
  482. package/node/internals/components/PickersToolbar.js +15 -12
  483. package/node/internals/components/PickersToolbarButton.js +4 -6
  484. package/node/internals/components/PickersToolbarText.js +10 -12
  485. package/node/internals/hooks/date-helpers-hooks.js +4 -3
  486. package/node/internals/hooks/useDesktopPicker/useDesktopPicker.js +37 -122
  487. package/node/internals/hooks/useField/buildSectionsFromFormat.js +1 -1
  488. package/node/internals/hooks/useField/index.js +8 -1
  489. package/node/internals/hooks/useField/useField.js +16 -3
  490. package/node/internals/hooks/useField/useField.utils.js +2 -2
  491. package/node/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +56 -0
  492. package/node/internals/hooks/useField/useFieldState.js +2 -3
  493. package/node/internals/hooks/useField/useFieldV6TextField.js +5 -2
  494. package/node/internals/hooks/useField/useFieldV7TextField.js +6 -3
  495. package/node/internals/hooks/useFieldOwnerState.js +24 -0
  496. package/node/internals/hooks/useMobilePicker/useMobilePicker.js +35 -69
  497. package/node/internals/hooks/useNullablePickerContext.js +16 -0
  498. package/node/internals/hooks/useOpenState.js +12 -9
  499. package/node/internals/hooks/usePicker/usePicker.js +4 -20
  500. package/node/internals/hooks/usePicker/usePickerProvider.js +51 -17
  501. package/node/internals/hooks/usePicker/usePickerValue.js +84 -213
  502. package/node/internals/hooks/usePicker/usePickerViews.js +31 -21
  503. package/node/internals/hooks/{useDefaultReduceAnimations.js → useReduceAnimations.js} +7 -4
  504. package/node/internals/hooks/useStaticPicker/useStaticPicker.js +7 -12
  505. package/node/internals/hooks/useToolbarOwnerState.js +21 -0
  506. package/node/internals/hooks/useUtils.js +1 -1
  507. package/node/internals/index.js +87 -34
  508. package/node/internals/models/index.js +11 -0
  509. package/node/internals/models/manager.js +5 -0
  510. package/node/internals/models/pickers.js +5 -0
  511. package/node/internals/utils/date-utils.js +1 -1
  512. package/node/internals/utils/utils.js +14 -2
  513. package/node/internals/utils/valueManagers.js +4 -4
  514. package/node/locales/index.js +11 -0
  515. package/node/locales/nbNO.js +15 -19
  516. package/node/locales/nlNL.js +7 -7
  517. package/node/locales/roRO.js +15 -18
  518. package/node/locales/utils/getPickersLocalization.js +2 -16
  519. package/node/locales/zhTW.js +79 -0
  520. package/node/managers/index.js +26 -0
  521. package/node/managers/useDateManager.js +63 -0
  522. package/node/managers/useDateTimeManager.js +68 -0
  523. package/node/managers/useTimeManager.js +59 -0
  524. package/node/models/index.js +11 -0
  525. package/node/models/manager.js +5 -0
  526. package/node/validation/useValidation.js +1 -1
  527. package/node/validation/validateDate.js +8 -0
  528. package/node/validation/validateDateTime.js +8 -0
  529. package/node/validation/validateTime.js +8 -0
  530. package/package.json +5 -5
  531. package/themeAugmentation/components.d.ts +3 -11
  532. package/themeAugmentation/overrides.d.ts +5 -7
  533. package/themeAugmentation/props.d.ts +7 -9
  534. package/validation/extractValidationProps.d.ts +1 -1
  535. package/validation/useValidation.d.ts +7 -6
  536. package/validation/useValidation.js +1 -1
  537. package/validation/validateDate.d.ts +12 -3
  538. package/validation/validateDate.js +8 -0
  539. package/validation/validateDateTime.d.ts +12 -4
  540. package/validation/validateDateTime.js +8 -0
  541. package/validation/validateTime.d.ts +12 -3
  542. package/validation/validateTime.js +8 -0
  543. package/AdapterDateFnsJalaliV3/index.d.ts +0 -1
  544. package/AdapterDateFnsJalaliV3/index.js +0 -1
  545. package/AdapterDateFnsV3/index.d.ts +0 -1
  546. package/AdapterDateFnsV3/index.js +0 -1
  547. package/MonthCalendar/PickersMonth.d.ts +0 -28
  548. package/MonthCalendar/pickersMonthClasses.d.ts +0 -13
  549. package/MonthCalendar/pickersMonthClasses.js +0 -5
  550. package/YearCalendar/PickersYear.d.ts +0 -27
  551. package/YearCalendar/pickersYearClasses.d.ts +0 -13
  552. package/YearCalendar/pickersYearClasses.js +0 -5
  553. package/internals/components/pickersPopperClasses.d.ts +0 -9
  554. package/internals/components/pickersPopperClasses.js +0 -5
  555. package/internals/hooks/defaultizedFieldProps.d.ts +0 -18
  556. package/internals/hooks/defaultizedFieldProps.js +0 -40
  557. package/internals/hooks/useDefaultReduceAnimations.d.ts +0 -2
  558. package/internals/hooks/useIsLandscape.d.ts +0 -4
  559. package/internals/hooks/useIsLandscape.js +0 -35
  560. package/internals/hooks/usePicker/usePickerLayoutProps.d.ts +0 -32
  561. package/internals/hooks/usePicker/usePickerLayoutProps.js +0 -31
  562. package/internals/utils/convertFieldResponseIntoMuiTextFieldProps.d.ts +0 -3
  563. package/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +0 -44
  564. package/modern/AdapterDateFnsJalaliV3/index.js +0 -1
  565. package/modern/AdapterDateFnsV3/index.js +0 -1
  566. package/modern/MonthCalendar/pickersMonthClasses.js +0 -5
  567. package/modern/YearCalendar/pickersYearClasses.js +0 -5
  568. package/modern/internals/components/pickersPopperClasses.js +0 -5
  569. package/modern/internals/hooks/defaultizedFieldProps.js +0 -40
  570. package/modern/internals/hooks/useIsLandscape.js +0 -35
  571. package/modern/internals/hooks/usePicker/usePickerLayoutProps.js +0 -31
  572. package/modern/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +0 -44
  573. package/node/AdapterDateFnsV3/AdapterDateFnsV3.js +0 -299
  574. package/node/MonthCalendar/pickersMonthClasses.js +0 -12
  575. package/node/YearCalendar/pickersYearClasses.js +0 -12
  576. package/node/internals/components/pickersPopperClasses.js +0 -12
  577. package/node/internals/hooks/defaultizedFieldProps.js +0 -50
  578. package/node/internals/hooks/useIsLandscape.js +0 -43
  579. package/node/internals/hooks/usePicker/usePickerLayoutProps.js +0 -38
  580. package/node/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +0 -52
@@ -0,0 +1,87 @@
1
+ import type { FieldValueManager, UseFieldInternalProps } from '../internals/hooks/useField';
2
+ import type { PickerValueManager } from '../internals/hooks/usePicker';
3
+ import type { UseLocalizationContextReturnValue } from '../internals/hooks/useUtils';
4
+ import type { PickerValidValue } from '../internals/models';
5
+ import type { Validator } from '../validation';
6
+ import type { PickerValueType } from './common';
7
+ /**
8
+ * Object that contains all the necessary methods and properties to adapter a picker or a field for a given value type.
9
+ * You should never create your own manager.
10
+ * Instead, use the hooks exported from '@mui/x-date-pickers/managers' and '@mui/x-date-pickers-pro/managers'.
11
+ *
12
+ * ```tsx
13
+ * import { useDateManager } from '@mui/x-date-pickers/managers';
14
+ * import { useValidation } from '@mui/x-date-pickers/validation';
15
+ *
16
+ * const manager = useDateManager();
17
+ * const { hasValidationError } = useValidation({
18
+ * validator: manager.validator,
19
+ * value,
20
+ * timezone,
21
+ * props,
22
+ * });
23
+ * ```
24
+ */
25
+ export interface PickerManager<TValue extends PickerValidValue, TEnableAccessibleFieldDOMStructure extends boolean, TError, TFieldInternalProps extends {}, TFieldInternalPropsWithDefaults extends UseFieldInternalProps<TValue, TEnableAccessibleFieldDOMStructure, TError>> {
26
+ /**
27
+ * The type of the value (e.g. 'date', 'date-time', 'time').
28
+ */
29
+ valueType: PickerValueType;
30
+ /**
31
+ * Checks if a value is valid and returns an error code otherwise.
32
+ * It can be passed to the `useValidation` hook to validate a value:
33
+ *
34
+ * ```tsx
35
+ * import { useDateManager } from '@mui/x-date-pickers/managers';
36
+ * import { useValidation } from '@mui/x-date-pickers/validation';
37
+ *
38
+ * const manager = useDateManager();
39
+ * const { hasValidationError } = useValidation({
40
+ * validator: manager.validator,
41
+ * value,
42
+ * timezone,
43
+ * props,
44
+ * });
45
+ * ```
46
+ */
47
+ validator: Validator<TValue, TError, TFieldInternalPropsWithDefaults>;
48
+ /**
49
+ * Object containing basic methods to interact with the value of the picker or field.
50
+ * This property is not part of the public API and should not be used directly.
51
+ */
52
+ internal_valueManager: PickerValueManager<TValue, TError>;
53
+ /**
54
+ * Object containing all the necessary methods to interact with the value of the field.
55
+ * This property is not part of the public API and should not be used directly.
56
+ */
57
+ internal_fieldValueManager: FieldValueManager<TValue>;
58
+ /**
59
+ * `true` if the field is using the accessible DOM structure.
60
+ * `false` if the field is using the non-accessible DOM structure.
61
+ * This property is not part of the public API and should not be used directly.
62
+ */
63
+ internal_enableAccessibleFieldDOMStructure: TEnableAccessibleFieldDOMStructure;
64
+ /**
65
+ * Applies the default values to the field internal props.
66
+ * This usually includes:
67
+ * - a default format to display the value in the field
68
+ * - some default validation props that are needed to validate the value (e.g: minDate, maxDate)
69
+ * This property is not part of the public API and should not be used directly.
70
+ * @param {ApplyDefaultsToFieldInternalPropsParameters<TFieldInternalProps>} parameters The parameters to apply the defaults.
71
+ * @returns {TFieldInternalPropsWithDefaults} The field internal props with the defaults applied.
72
+ */
73
+ internal_applyDefaultsToFieldInternalProps: (parameters: ApplyDefaultsToFieldInternalPropsParameters<TFieldInternalProps>) => TFieldInternalPropsWithDefaults;
74
+ /**
75
+ * Returns the aria-label to apply on the button that opens the picker.
76
+ * @param {GetOpenPickerButtonAriaLabelParameters<TValue>} params The parameters to get the aria-label.
77
+ * @returns {string} The aria-label to apply on the button that opens the picker.
78
+ */
79
+ internal_getOpenPickerButtonAriaLabel: (params: GetOpenPickerButtonAriaLabelParameters<TValue>) => string;
80
+ }
81
+ interface ApplyDefaultsToFieldInternalPropsParameters<TFieldInternalProps extends {}> extends UseLocalizationContextReturnValue {
82
+ internalProps: TFieldInternalProps;
83
+ }
84
+ interface GetOpenPickerButtonAriaLabelParameters<TValue extends PickerValidValue> extends UseLocalizationContextReturnValue {
85
+ value: TValue;
86
+ }
87
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -11,6 +11,13 @@ export interface PickerChangeHandlerContext<TError> {
11
11
  export interface PickerValidDateLookup {
12
12
  }
13
13
  export type PickerValidDate = keyof PickerValidDateLookup extends never ? any : PickerValidDateLookup[keyof PickerValidDateLookup];
14
+ /**
15
+ * Importance of the change when picking a value:
16
+ * - "accept": fires `onChange`, fires `onAccept` and closes the picker.
17
+ * - "set": fires `onChange` but do not fire `onAccept` and does not close the picker.
18
+ * @default "accept"
19
+ */
20
+ export type PickerChangeImportance = 'set' | 'accept';
14
21
  export interface PickerOwnerState {
15
22
  /**
16
23
  * `true` if the value of the picker is currently empty.
@@ -1,3 +1,4 @@
1
+ import type { PickerValidValue } from '../internals/models';
1
2
  /**
2
3
  * Validation error types applicable to both date and time validation
3
4
  */
@@ -5,7 +6,7 @@ type CommonDateTimeValidationError = 'invalidDate' | 'disableFuture' | 'disableP
5
6
  export type DateValidationError = CommonDateTimeValidationError | 'shouldDisableDate' | 'shouldDisableMonth' | 'shouldDisableYear' | 'minDate' | 'maxDate';
6
7
  export type TimeValidationError = CommonDateTimeValidationError | 'minutesStep' | 'minTime' | 'maxTime' | 'shouldDisableTime-hours' | 'shouldDisableTime-minutes' | 'shouldDisableTime-seconds';
7
8
  export type DateTimeValidationError = DateValidationError | TimeValidationError;
8
- export interface OnErrorProps<TValue, TError> {
9
+ export interface OnErrorProps<TValue extends PickerValidValue, TError> {
9
10
  /**
10
11
  * Callback fired when the error associated with the current value changes.
11
12
  * When a validation error is detected, the `error` parameter contains a non-null value.
@@ -1,49 +1,47 @@
1
1
  /* eslint-disable class-methods-use-this */
2
- import addDays from 'date-fns/addDays';
3
- import addSeconds from 'date-fns/addSeconds';
4
- import addMinutes from 'date-fns/addMinutes';
5
- import addHours from 'date-fns/addHours';
6
- import addWeeks from 'date-fns/addWeeks';
7
- import addMonths from 'date-fns/addMonths';
8
- import addYears from 'date-fns/addYears';
9
- import endOfDay from 'date-fns/endOfDay';
10
- import endOfWeek from 'date-fns/endOfWeek';
11
- import endOfYear from 'date-fns/endOfYear';
12
- import dateFnsFormat from 'date-fns/format';
13
- import getDate from 'date-fns/getDate';
14
- import getDaysInMonth from 'date-fns/getDaysInMonth';
15
- import getHours from 'date-fns/getHours';
16
- import getMinutes from 'date-fns/getMinutes';
17
- import getMonth from 'date-fns/getMonth';
18
- import getSeconds from 'date-fns/getSeconds';
19
- import getMilliseconds from 'date-fns/getMilliseconds';
20
- import getWeek from 'date-fns/getWeek';
21
- import getYear from 'date-fns/getYear';
22
- import isAfter from 'date-fns/isAfter';
23
- import isBefore from 'date-fns/isBefore';
24
- import isEqual from 'date-fns/isEqual';
25
- import isSameDay from 'date-fns/isSameDay';
26
- import isSameYear from 'date-fns/isSameYear';
27
- import isSameMonth from 'date-fns/isSameMonth';
28
- import isSameHour from 'date-fns/isSameHour';
29
- import isValid from 'date-fns/isValid';
30
- import dateFnsParse from 'date-fns/parse';
31
- import setDate from 'date-fns/setDate';
32
- import setHours from 'date-fns/setHours';
33
- import setMinutes from 'date-fns/setMinutes';
34
- import setMonth from 'date-fns/setMonth';
35
- import setSeconds from 'date-fns/setSeconds';
36
- import setMilliseconds from 'date-fns/setMilliseconds';
37
- import setYear from 'date-fns/setYear';
38
- import startOfDay from 'date-fns/startOfDay';
39
- import startOfMonth from 'date-fns/startOfMonth';
40
- import endOfMonth from 'date-fns/endOfMonth';
41
- import startOfWeek from 'date-fns/startOfWeek';
42
- import startOfYear from 'date-fns/startOfYear';
43
- import isWithinInterval from 'date-fns/isWithinInterval';
44
- import defaultLocale from 'date-fns/locale/en-US';
45
- // @ts-ignore
46
- import longFormatters from 'date-fns/_lib/format/longFormatters';
2
+ import { addDays } from 'date-fns/addDays';
3
+ import { addSeconds } from 'date-fns/addSeconds';
4
+ import { addMinutes } from 'date-fns/addMinutes';
5
+ import { addHours } from 'date-fns/addHours';
6
+ import { addWeeks } from 'date-fns/addWeeks';
7
+ import { addMonths } from 'date-fns/addMonths';
8
+ import { addYears } from 'date-fns/addYears';
9
+ import { endOfDay } from 'date-fns/endOfDay';
10
+ import { endOfWeek } from 'date-fns/endOfWeek';
11
+ import { endOfYear } from 'date-fns/endOfYear';
12
+ import { format as dateFnsFormat, longFormatters } from 'date-fns/format';
13
+ import { getDate } from 'date-fns/getDate';
14
+ import { getDaysInMonth } from 'date-fns/getDaysInMonth';
15
+ import { getHours } from 'date-fns/getHours';
16
+ import { getMinutes } from 'date-fns/getMinutes';
17
+ import { getMonth } from 'date-fns/getMonth';
18
+ import { getSeconds } from 'date-fns/getSeconds';
19
+ import { getMilliseconds } from 'date-fns/getMilliseconds';
20
+ import { getWeek } from 'date-fns/getWeek';
21
+ import { getYear } from 'date-fns/getYear';
22
+ import { isAfter } from 'date-fns/isAfter';
23
+ import { isBefore } from 'date-fns/isBefore';
24
+ import { isEqual } from 'date-fns/isEqual';
25
+ import { isSameDay } from 'date-fns/isSameDay';
26
+ import { isSameYear } from 'date-fns/isSameYear';
27
+ import { isSameMonth } from 'date-fns/isSameMonth';
28
+ import { isSameHour } from 'date-fns/isSameHour';
29
+ import { isValid } from 'date-fns/isValid';
30
+ import { parse as dateFnsParse } from 'date-fns/parse';
31
+ import { setDate } from 'date-fns/setDate';
32
+ import { setHours } from 'date-fns/setHours';
33
+ import { setMinutes } from 'date-fns/setMinutes';
34
+ import { setMonth } from 'date-fns/setMonth';
35
+ import { setSeconds } from 'date-fns/setSeconds';
36
+ import { setMilliseconds } from 'date-fns/setMilliseconds';
37
+ import { setYear } from 'date-fns/setYear';
38
+ import { startOfDay } from 'date-fns/startOfDay';
39
+ import { startOfMonth } from 'date-fns/startOfMonth';
40
+ import { endOfMonth } from 'date-fns/endOfMonth';
41
+ import { startOfWeek } from 'date-fns/startOfWeek';
42
+ import { startOfYear } from 'date-fns/startOfYear';
43
+ import { isWithinInterval } from 'date-fns/isWithinInterval';
44
+ import { enUS } from 'date-fns/locale/en-US';
47
45
  import { AdapterDateFnsBase } from "../AdapterDateFnsBase/index.js";
48
46
  /**
49
47
  * Based on `@date-io/date-fns`
@@ -78,14 +76,18 @@ export class AdapterDateFns extends AdapterDateFnsBase {
78
76
  /* istanbul ignore next */
79
77
  if (process.env.NODE_ENV !== 'production') {
80
78
  if (typeof addDays !== 'function') {
81
- throw new Error(['MUI: This adapter is only compatible with `date-fns` v2.x package versions.', 'Please, install v2.x of the package or use the `AdapterDateFnsV3` instead.'].join('\n'));
79
+ throw new Error(['MUI: The `date-fns` package v2.x is not compatible with this adapter.', 'Please, install v3.x or v4.x of the package or use the `AdapterDateFnsV2` instead.'].join('\n'));
80
+ }
81
+ if (!longFormatters) {
82
+ throw new Error('MUI: The minimum supported `date-fns` package version compatible with this adapter is `3.2.x`.');
82
83
  }
83
84
  }
84
85
  super({
85
- locale: locale ?? defaultLocale,
86
+ locale: locale ?? enUS,
86
87
  formats,
87
88
  longFormatters
88
89
  });
90
+ // TODO: explicit return types can be removed once there is only one date-fns version supported
89
91
  this.parse = (value, format) => {
90
92
  if (value === '') {
91
93
  return null;
@@ -1,50 +1,48 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  /* eslint-disable class-methods-use-this */
3
- import addSeconds from 'date-fns-jalali/addSeconds';
4
- import addMinutes from 'date-fns-jalali/addMinutes';
5
- import addHours from 'date-fns-jalali/addHours';
6
- import addDays from 'date-fns-jalali/addDays';
7
- import addWeeks from 'date-fns-jalali/addWeeks';
8
- import addMonths from 'date-fns-jalali/addMonths';
9
- import addYears from 'date-fns-jalali/addYears';
10
- import endOfDay from 'date-fns-jalali/endOfDay';
11
- import endOfWeek from 'date-fns-jalali/endOfWeek';
12
- import endOfYear from 'date-fns-jalali/endOfYear';
13
- import dateFnsFormat from 'date-fns-jalali/format';
14
- import getHours from 'date-fns-jalali/getHours';
15
- import getSeconds from 'date-fns-jalali/getSeconds';
16
- import getMilliseconds from 'date-fns-jalali/getMilliseconds';
17
- import getWeek from 'date-fns-jalali/getWeek';
18
- import getYear from 'date-fns-jalali/getYear';
19
- import getMonth from 'date-fns-jalali/getMonth';
20
- import getDate from 'date-fns-jalali/getDate';
21
- import getDaysInMonth from 'date-fns-jalali/getDaysInMonth';
22
- import getMinutes from 'date-fns-jalali/getMinutes';
23
- import isAfter from 'date-fns-jalali/isAfter';
24
- import isBefore from 'date-fns-jalali/isBefore';
25
- import isEqual from 'date-fns-jalali/isEqual';
26
- import isSameDay from 'date-fns-jalali/isSameDay';
27
- import isSameYear from 'date-fns-jalali/isSameYear';
28
- import isSameMonth from 'date-fns-jalali/isSameMonth';
29
- import isSameHour from 'date-fns-jalali/isSameHour';
30
- import isValid from 'date-fns-jalali/isValid';
31
- import dateFnsParse from 'date-fns-jalali/parse';
32
- import setDate from 'date-fns-jalali/setDate';
33
- import setHours from 'date-fns-jalali/setHours';
34
- import setMinutes from 'date-fns-jalali/setMinutes';
35
- import setMonth from 'date-fns-jalali/setMonth';
36
- import setSeconds from 'date-fns-jalali/setSeconds';
37
- import setMilliseconds from 'date-fns-jalali/setMilliseconds';
38
- import setYear from 'date-fns-jalali/setYear';
39
- import startOfDay from 'date-fns-jalali/startOfDay';
40
- import startOfMonth from 'date-fns-jalali/startOfMonth';
41
- import endOfMonth from 'date-fns-jalali/endOfMonth';
42
- import startOfWeek from 'date-fns-jalali/startOfWeek';
43
- import startOfYear from 'date-fns-jalali/startOfYear';
44
- import isWithinInterval from 'date-fns-jalali/isWithinInterval';
45
- import defaultLocale from 'date-fns-jalali/locale/fa-IR';
46
- // @ts-ignore
47
- import longFormatters from 'date-fns-jalali/_lib/format/longFormatters';
3
+ import { addSeconds } from 'date-fns-jalali/addSeconds';
4
+ import { addMinutes } from 'date-fns-jalali/addMinutes';
5
+ import { addHours } from 'date-fns-jalali/addHours';
6
+ import { addDays } from 'date-fns-jalali/addDays';
7
+ import { addWeeks } from 'date-fns-jalali/addWeeks';
8
+ import { addMonths } from 'date-fns-jalali/addMonths';
9
+ import { addYears } from 'date-fns-jalali/addYears';
10
+ import { endOfDay } from 'date-fns-jalali/endOfDay';
11
+ import { endOfWeek } from 'date-fns-jalali/endOfWeek';
12
+ import { endOfYear } from 'date-fns-jalali/endOfYear';
13
+ import { format as dateFnsFormat, longFormatters } from 'date-fns-jalali/format';
14
+ import { getHours } from 'date-fns-jalali/getHours';
15
+ import { getSeconds } from 'date-fns-jalali/getSeconds';
16
+ import { getMilliseconds } from 'date-fns-jalali/getMilliseconds';
17
+ import { getWeek } from 'date-fns-jalali/getWeek';
18
+ import { getYear } from 'date-fns-jalali/getYear';
19
+ import { getMonth } from 'date-fns-jalali/getMonth';
20
+ import { getDate } from 'date-fns-jalali/getDate';
21
+ import { getDaysInMonth } from 'date-fns-jalali/getDaysInMonth';
22
+ import { getMinutes } from 'date-fns-jalali/getMinutes';
23
+ import { isAfter } from 'date-fns-jalali/isAfter';
24
+ import { isBefore } from 'date-fns-jalali/isBefore';
25
+ import { isEqual } from 'date-fns-jalali/isEqual';
26
+ import { isSameDay } from 'date-fns-jalali/isSameDay';
27
+ import { isSameYear } from 'date-fns-jalali/isSameYear';
28
+ import { isSameMonth } from 'date-fns-jalali/isSameMonth';
29
+ import { isSameHour } from 'date-fns-jalali/isSameHour';
30
+ import { isValid } from 'date-fns-jalali/isValid';
31
+ import { parse as dateFnsParse } from 'date-fns-jalali/parse';
32
+ import { setDate } from 'date-fns-jalali/setDate';
33
+ import { setHours } from 'date-fns-jalali/setHours';
34
+ import { setMinutes } from 'date-fns-jalali/setMinutes';
35
+ import { setMonth } from 'date-fns-jalali/setMonth';
36
+ import { setSeconds } from 'date-fns-jalali/setSeconds';
37
+ import { setMilliseconds } from 'date-fns-jalali/setMilliseconds';
38
+ import { setYear } from 'date-fns-jalali/setYear';
39
+ import { startOfDay } from 'date-fns-jalali/startOfDay';
40
+ import { startOfMonth } from 'date-fns-jalali/startOfMonth';
41
+ import { endOfMonth } from 'date-fns-jalali/endOfMonth';
42
+ import { startOfWeek } from 'date-fns-jalali/startOfWeek';
43
+ import { startOfYear } from 'date-fns-jalali/startOfYear';
44
+ import { isWithinInterval } from 'date-fns-jalali/isWithinInterval';
45
+ import { faIR as defaultLocale } from 'date-fns-jalali/locale/fa-IR';
48
46
  import { AdapterDateFnsBase } from "../AdapterDateFnsBase/index.js";
49
47
  const defaultFormats = {
50
48
  year: 'yyyy',
@@ -116,7 +114,10 @@ export class AdapterDateFnsJalali extends AdapterDateFnsBase {
116
114
  /* istanbul ignore next */
117
115
  if (process.env.NODE_ENV !== 'production') {
118
116
  if (typeof addDays !== 'function') {
119
- throw new Error(['MUI: The `date-fns-jalali` package v3.x is not compatible with this adapter.', 'Please, install v2.x of the package or use the `AdapterDateFnsJalaliV3` instead.'].join('\n'));
117
+ throw new Error(['MUI: The `date-fns-jalali` package v2.x is not compatible with this adapter.', 'Please, install v3.x or v4.x of the package or use the `AdapterDateFnsJalaliV2` instead.'].join('\n'));
118
+ }
119
+ if (!longFormatters) {
120
+ throw new Error('MUI: The minimum supported `date-fns-jalali` package version compatible with this adapter is `3.2.x`.');
120
121
  }
121
122
  }
122
123
  super({
@@ -127,6 +128,7 @@ export class AdapterDateFnsJalali extends AdapterDateFnsBase {
127
128
  longFormatters,
128
129
  lib: 'date-fns-jalali'
129
130
  });
131
+ // TODO: explicit return types can be removed once there is only one date-fns version supported
130
132
  this.parse = (value, format) => {
131
133
  if (value === '') {
132
134
  return null;
@@ -1,53 +1,50 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  /* eslint-disable class-methods-use-this */
3
- // TODO remove when date-fns-jalali-v3 is the default
4
3
  // @ts-nocheck
5
- import { addSeconds } from 'date-fns-jalali/addSeconds';
6
- import { addMinutes } from 'date-fns-jalali/addMinutes';
7
- import { addHours } from 'date-fns-jalali/addHours';
8
- import { addDays } from 'date-fns-jalali/addDays';
9
- import { addWeeks } from 'date-fns-jalali/addWeeks';
10
- import { addMonths } from 'date-fns-jalali/addMonths';
11
- import { addYears } from 'date-fns-jalali/addYears';
12
- import { endOfDay } from 'date-fns-jalali/endOfDay';
13
- import { endOfWeek } from 'date-fns-jalali/endOfWeek';
14
- import { endOfYear } from 'date-fns-jalali/endOfYear';
15
- import { format as dateFnsFormat, longFormatters } from 'date-fns-jalali/format';
16
- import { getHours } from 'date-fns-jalali/getHours';
17
- import { getSeconds } from 'date-fns-jalali/getSeconds';
18
- import { getMilliseconds } from 'date-fns-jalali/getMilliseconds';
19
- import { getWeek } from 'date-fns-jalali/getWeek';
20
- import { getYear } from 'date-fns-jalali/getYear';
21
- import { getMonth } from 'date-fns-jalali/getMonth';
22
- import { getDate } from 'date-fns-jalali/getDate';
23
- import { getDaysInMonth } from 'date-fns-jalali/getDaysInMonth';
24
- import { getMinutes } from 'date-fns-jalali/getMinutes';
25
- import { isAfter } from 'date-fns-jalali/isAfter';
26
- import { isBefore } from 'date-fns-jalali/isBefore';
27
- import { isEqual } from 'date-fns-jalali/isEqual';
28
- import { isSameDay } from 'date-fns-jalali/isSameDay';
29
- import { isSameYear } from 'date-fns-jalali/isSameYear';
30
- import { isSameMonth } from 'date-fns-jalali/isSameMonth';
31
- import { isSameHour } from 'date-fns-jalali/isSameHour';
32
- import { isValid } from 'date-fns-jalali/isValid';
33
- import { parse as dateFnsParse } from 'date-fns-jalali/parse';
34
- import { setDate } from 'date-fns-jalali/setDate';
35
- import { setHours } from 'date-fns-jalali/setHours';
36
- import { setMinutes } from 'date-fns-jalali/setMinutes';
37
- import { setMonth } from 'date-fns-jalali/setMonth';
38
- import { setSeconds } from 'date-fns-jalali/setSeconds';
39
- import { setMilliseconds } from 'date-fns-jalali/setMilliseconds';
40
- import { setYear } from 'date-fns-jalali/setYear';
41
- import { startOfDay } from 'date-fns-jalali/startOfDay';
42
- import { startOfMonth } from 'date-fns-jalali/startOfMonth';
43
- import { endOfMonth } from 'date-fns-jalali/endOfMonth';
44
- import { startOfWeek } from 'date-fns-jalali/startOfWeek';
45
- import { startOfYear } from 'date-fns-jalali/startOfYear';
46
- import { isWithinInterval } from 'date-fns-jalali/isWithinInterval';
47
- import { faIR as defaultLocale } from 'date-fns-jalali/locale/fa-IR';
48
- // date-fns-jalali v2 does not export types
49
- // @ts-ignore TODO remove when date-fns-jalali-v3 is the default
50
-
4
+ import addSeconds from 'date-fns-jalali/addSeconds';
5
+ import addMinutes from 'date-fns-jalali/addMinutes';
6
+ import addHours from 'date-fns-jalali/addHours';
7
+ import addDays from 'date-fns-jalali/addDays';
8
+ import addWeeks from 'date-fns-jalali/addWeeks';
9
+ import addMonths from 'date-fns-jalali/addMonths';
10
+ import addYears from 'date-fns-jalali/addYears';
11
+ import endOfDay from 'date-fns-jalali/endOfDay';
12
+ import endOfWeek from 'date-fns-jalali/endOfWeek';
13
+ import endOfYear from 'date-fns-jalali/endOfYear';
14
+ import dateFnsFormat from 'date-fns-jalali/format';
15
+ import getHours from 'date-fns-jalali/getHours';
16
+ import getSeconds from 'date-fns-jalali/getSeconds';
17
+ import getMilliseconds from 'date-fns-jalali/getMilliseconds';
18
+ import getWeek from 'date-fns-jalali/getWeek';
19
+ import getYear from 'date-fns-jalali/getYear';
20
+ import getMonth from 'date-fns-jalali/getMonth';
21
+ import getDate from 'date-fns-jalali/getDate';
22
+ import getDaysInMonth from 'date-fns-jalali/getDaysInMonth';
23
+ import getMinutes from 'date-fns-jalali/getMinutes';
24
+ import isAfter from 'date-fns-jalali/isAfter';
25
+ import isBefore from 'date-fns-jalali/isBefore';
26
+ import isEqual from 'date-fns-jalali/isEqual';
27
+ import isSameDay from 'date-fns-jalali/isSameDay';
28
+ import isSameYear from 'date-fns-jalali/isSameYear';
29
+ import isSameMonth from 'date-fns-jalali/isSameMonth';
30
+ import isSameHour from 'date-fns-jalali/isSameHour';
31
+ import isValid from 'date-fns-jalali/isValid';
32
+ import dateFnsParse from 'date-fns-jalali/parse';
33
+ import setDate from 'date-fns-jalali/setDate';
34
+ import setHours from 'date-fns-jalali/setHours';
35
+ import setMinutes from 'date-fns-jalali/setMinutes';
36
+ import setMonth from 'date-fns-jalali/setMonth';
37
+ import setSeconds from 'date-fns-jalali/setSeconds';
38
+ import setMilliseconds from 'date-fns-jalali/setMilliseconds';
39
+ import setYear from 'date-fns-jalali/setYear';
40
+ import startOfDay from 'date-fns-jalali/startOfDay';
41
+ import startOfMonth from 'date-fns-jalali/startOfMonth';
42
+ import endOfMonth from 'date-fns-jalali/endOfMonth';
43
+ import startOfWeek from 'date-fns-jalali/startOfWeek';
44
+ import startOfYear from 'date-fns-jalali/startOfYear';
45
+ import isWithinInterval from 'date-fns-jalali/isWithinInterval';
46
+ import defaultLocale from 'date-fns-jalali/locale/fa-IR';
47
+ import longFormatters from 'date-fns-jalali/_lib/format/longFormatters';
51
48
  import { AdapterDateFnsBase } from "../AdapterDateFnsBase/index.js";
52
49
  const defaultFormats = {
53
50
  year: 'yyyy',
@@ -119,10 +116,7 @@ export class AdapterDateFnsJalali extends AdapterDateFnsBase {
119
116
  /* istanbul ignore next */
120
117
  if (process.env.NODE_ENV !== 'production') {
121
118
  if (typeof addDays !== 'function') {
122
- throw new Error([`MUI: The \`date-fns-jalali\` package v2.x is not compatible with this adapter.`, 'Please, install v3.x of the package or use the `AdapterDateFnsJalali` instead.'].join('\n'));
123
- }
124
- if (!longFormatters) {
125
- throw new Error('MUI: The minimum supported `date-fns-jalali` package version compatible with this adapter is `3.2.x`.');
119
+ throw new Error(['MUI: This adapter is only compatible with `date-fns-jalali` v2.x package versions.', 'Please, install v2.x of the package or use the `AdapterDateFnsJalali` instead.'].join('\n'));
126
120
  }
127
121
  }
128
122
  super({
@@ -133,7 +127,6 @@ export class AdapterDateFnsJalali extends AdapterDateFnsBase {
133
127
  longFormatters,
134
128
  lib: 'date-fns-jalali'
135
129
  });
136
- // TODO: explicit return types can be removed once there is only one date-fns version supported
137
130
  this.parse = (value, format) => {
138
131
  if (value === '') {
139
132
  return null;
@@ -0,0 +1 @@
1
+ export { AdapterDateFnsJalali } from "./AdapterDateFnsJalaliV2.js";
@@ -1,53 +1,49 @@
1
1
  /* eslint-disable class-methods-use-this */
2
- // TODO remove when date-fns-v3 is the default
3
2
  // @ts-nocheck
4
- import { addDays } from 'date-fns/addDays';
5
- import { addSeconds } from 'date-fns/addSeconds';
6
- import { addMinutes } from 'date-fns/addMinutes';
7
- import { addHours } from 'date-fns/addHours';
8
- import { addWeeks } from 'date-fns/addWeeks';
9
- import { addMonths } from 'date-fns/addMonths';
10
- import { addYears } from 'date-fns/addYears';
11
- import { endOfDay } from 'date-fns/endOfDay';
12
- import { endOfWeek } from 'date-fns/endOfWeek';
13
- import { endOfYear } from 'date-fns/endOfYear';
14
- // @ts-ignore TODO remove when date-fns-v3 is the default
15
- import { format as dateFnsFormat, longFormatters } from 'date-fns/format';
16
- import { getDate } from 'date-fns/getDate';
17
- import { getDaysInMonth } from 'date-fns/getDaysInMonth';
18
- import { getHours } from 'date-fns/getHours';
19
- import { getMinutes } from 'date-fns/getMinutes';
20
- import { getMonth } from 'date-fns/getMonth';
21
- import { getSeconds } from 'date-fns/getSeconds';
22
- import { getMilliseconds } from 'date-fns/getMilliseconds';
23
- import { getWeek } from 'date-fns/getWeek';
24
- import { getYear } from 'date-fns/getYear';
25
- import { isAfter } from 'date-fns/isAfter';
26
- import { isBefore } from 'date-fns/isBefore';
27
- import { isEqual } from 'date-fns/isEqual';
28
- import { isSameDay } from 'date-fns/isSameDay';
29
- import { isSameYear } from 'date-fns/isSameYear';
30
- import { isSameMonth } from 'date-fns/isSameMonth';
31
- import { isSameHour } from 'date-fns/isSameHour';
32
- import { isValid } from 'date-fns/isValid';
33
- import { parse as dateFnsParse } from 'date-fns/parse';
34
- import { setDate } from 'date-fns/setDate';
35
- import { setHours } from 'date-fns/setHours';
36
- import { setMinutes } from 'date-fns/setMinutes';
37
- import { setMonth } from 'date-fns/setMonth';
38
- import { setSeconds } from 'date-fns/setSeconds';
39
- import { setMilliseconds } from 'date-fns/setMilliseconds';
40
- import { setYear } from 'date-fns/setYear';
41
- import { startOfDay } from 'date-fns/startOfDay';
42
- import { startOfMonth } from 'date-fns/startOfMonth';
43
- import { endOfMonth } from 'date-fns/endOfMonth';
44
- import { startOfWeek } from 'date-fns/startOfWeek';
45
- import { startOfYear } from 'date-fns/startOfYear';
46
- import { isWithinInterval } from 'date-fns/isWithinInterval';
47
- import { enUS } from 'date-fns/locale/en-US';
48
- // date-fns v2 does not export types
49
- // @ts-ignore TODO remove when date-fns-v3 is the default
50
-
3
+ import addDays from 'date-fns/addDays';
4
+ import addSeconds from 'date-fns/addSeconds';
5
+ import addMinutes from 'date-fns/addMinutes';
6
+ import addHours from 'date-fns/addHours';
7
+ import addWeeks from 'date-fns/addWeeks';
8
+ import addMonths from 'date-fns/addMonths';
9
+ import addYears from 'date-fns/addYears';
10
+ import endOfDay from 'date-fns/endOfDay';
11
+ import endOfWeek from 'date-fns/endOfWeek';
12
+ import endOfYear from 'date-fns/endOfYear';
13
+ import dateFnsFormat from 'date-fns/format';
14
+ import getDate from 'date-fns/getDate';
15
+ import getDaysInMonth from 'date-fns/getDaysInMonth';
16
+ import getHours from 'date-fns/getHours';
17
+ import getMinutes from 'date-fns/getMinutes';
18
+ import getMonth from 'date-fns/getMonth';
19
+ import getSeconds from 'date-fns/getSeconds';
20
+ import getMilliseconds from 'date-fns/getMilliseconds';
21
+ import getWeek from 'date-fns/getWeek';
22
+ import getYear from 'date-fns/getYear';
23
+ import isAfter from 'date-fns/isAfter';
24
+ import isBefore from 'date-fns/isBefore';
25
+ import isEqual from 'date-fns/isEqual';
26
+ import isSameDay from 'date-fns/isSameDay';
27
+ import isSameYear from 'date-fns/isSameYear';
28
+ import isSameMonth from 'date-fns/isSameMonth';
29
+ import isSameHour from 'date-fns/isSameHour';
30
+ import isValid from 'date-fns/isValid';
31
+ import dateFnsParse from 'date-fns/parse';
32
+ import setDate from 'date-fns/setDate';
33
+ import setHours from 'date-fns/setHours';
34
+ import setMinutes from 'date-fns/setMinutes';
35
+ import setMonth from 'date-fns/setMonth';
36
+ import setSeconds from 'date-fns/setSeconds';
37
+ import setMilliseconds from 'date-fns/setMilliseconds';
38
+ import setYear from 'date-fns/setYear';
39
+ import startOfDay from 'date-fns/startOfDay';
40
+ import startOfMonth from 'date-fns/startOfMonth';
41
+ import endOfMonth from 'date-fns/endOfMonth';
42
+ import startOfWeek from 'date-fns/startOfWeek';
43
+ import startOfYear from 'date-fns/startOfYear';
44
+ import isWithinInterval from 'date-fns/isWithinInterval';
45
+ import defaultLocale from 'date-fns/locale/en-US';
46
+ import longFormatters from 'date-fns/_lib/format/longFormatters';
51
47
  import { AdapterDateFnsBase } from "../AdapterDateFnsBase/index.js";
52
48
  /**
53
49
  * Based on `@date-io/date-fns`
@@ -82,18 +78,14 @@ export class AdapterDateFns extends AdapterDateFnsBase {
82
78
  /* istanbul ignore next */
83
79
  if (process.env.NODE_ENV !== 'production') {
84
80
  if (typeof addDays !== 'function') {
85
- throw new Error([`MUI: The \`date-fns\` package v2.x is not compatible with this adapter.`, 'Please, install v3.x or v4.x of the package or use the `AdapterDateFns` instead.'].join('\n'));
86
- }
87
- if (!longFormatters) {
88
- throw new Error('MUI: The minimum supported `date-fns` package version compatible with this adapter is `3.2.x`.');
81
+ throw new Error(['MUI: This adapter is only compatible with `date-fns` v2.x package versions.', 'Please, install v2.x of the package or use the `AdapterDateFns` instead.'].join('\n'));
89
82
  }
90
83
  }
91
84
  super({
92
- locale: locale ?? enUS,
85
+ locale: locale ?? defaultLocale,
93
86
  formats,
94
87
  longFormatters
95
88
  });
96
- // TODO: explicit return types can be removed once there is only one date-fns version supported
97
89
  this.parse = (value, format) => {
98
90
  if (value === '') {
99
91
  return null;
@@ -0,0 +1 @@
1
+ export { AdapterDateFns } from "./AdapterDateFnsV2.js";
@@ -430,12 +430,22 @@ export class AdapterMoment {
430
430
  const end = this.endOfWeek(this.endOfMonth(value));
431
431
  let count = 0;
432
432
  let current = start;
433
+ let currentDayOfYear = current.get('dayOfYear');
433
434
  const nestedWeeks = [];
434
435
  while (current.isBefore(end)) {
435
436
  const weekNumber = Math.floor(count / 7);
436
437
  nestedWeeks[weekNumber] = nestedWeeks[weekNumber] || [];
437
438
  nestedWeeks[weekNumber].push(current);
439
+ const prevDayOfYear = currentDayOfYear;
438
440
  current = this.addDays(current, 1);
441
+ currentDayOfYear = current.get('dayOfYear');
442
+
443
+ // If there is a TZ change at midnight, adding 1 day may only increase the date by 23 hours to 11pm
444
+ // To fix, bump the date into the next day (add 12 hours) and then revert to the start of the day
445
+ // See https://github.com/moment/moment/issues/4743#issuecomment-811306874 for context.
446
+ if (prevDayOfYear === currentDayOfYear) {
447
+ current = current.add(12, 'h').startOf('day');
448
+ }
439
449
  count += 1;
440
450
  }
441
451
  return nestedWeeks;