@mui/x-date-pickers 5.0.0-alpha.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 (616) hide show
  1. package/AdapterDateFns/index.d.ts +1 -0
  2. package/AdapterDateFns/index.js +1 -0
  3. package/AdapterDateFns/package.json +6 -0
  4. package/AdapterDayjs/index.d.ts +1 -0
  5. package/AdapterDayjs/index.js +1 -0
  6. package/AdapterDayjs/package.json +6 -0
  7. package/AdapterLuxon/index.d.ts +1 -0
  8. package/AdapterLuxon/index.js +1 -0
  9. package/AdapterLuxon/package.json +6 -0
  10. package/AdapterMoment/index.d.ts +1 -0
  11. package/AdapterMoment/index.js +1 -0
  12. package/AdapterMoment/package.json +6 -0
  13. package/CHANGELOG.md +3785 -0
  14. package/CalendarPicker/CalendarPicker.d.ts +103 -0
  15. package/CalendarPicker/CalendarPicker.js +390 -0
  16. package/CalendarPicker/DayPicker.d.ts +51 -0
  17. package/CalendarPicker/DayPicker.js +140 -0
  18. package/CalendarPicker/PickersCalendarHeader.d.ts +44 -0
  19. package/CalendarPicker/PickersCalendarHeader.js +162 -0
  20. package/CalendarPicker/PickersFadeTransitionGroup.d.ts +12 -0
  21. package/CalendarPicker/PickersFadeTransitionGroup.js +42 -0
  22. package/CalendarPicker/PickersSlideTransition.d.ts +15 -0
  23. package/CalendarPicker/PickersSlideTransition.js +101 -0
  24. package/CalendarPicker/calendarPickerClasses.d.ts +9 -0
  25. package/CalendarPicker/calendarPickerClasses.js +3 -0
  26. package/CalendarPicker/index.d.ts +5 -0
  27. package/CalendarPicker/index.js +2 -0
  28. package/CalendarPicker/package.json +6 -0
  29. package/CalendarPicker/useCalendarState.d.ts +33 -0
  30. package/CalendarPicker/useCalendarState.js +110 -0
  31. package/CalendarPickerSkeleton/CalendarPickerSkeleton.d.ts +31 -0
  32. package/CalendarPickerSkeleton/CalendarPickerSkeleton.js +119 -0
  33. package/CalendarPickerSkeleton/calendarPickerSkeletonClasses.d.ts +11 -0
  34. package/CalendarPickerSkeleton/calendarPickerSkeletonClasses.js +3 -0
  35. package/CalendarPickerSkeleton/index.d.ts +4 -0
  36. package/CalendarPickerSkeleton/index.js +2 -0
  37. package/CalendarPickerSkeleton/package.json +6 -0
  38. package/ClockPicker/Clock.d.ts +26 -0
  39. package/ClockPicker/Clock.js +262 -0
  40. package/ClockPicker/ClockNumber.d.ts +18 -0
  41. package/ClockPicker/ClockNumber.js +70 -0
  42. package/ClockPicker/ClockNumbers.d.ts +24 -0
  43. package/ClockPicker/ClockNumbers.js +80 -0
  44. package/ClockPicker/ClockPicker.d.ts +138 -0
  45. package/ClockPicker/ClockPicker.js +407 -0
  46. package/ClockPicker/ClockPointer.d.ts +23 -0
  47. package/ClockPicker/ClockPointer.js +102 -0
  48. package/ClockPicker/clockPickerClasses.d.ts +9 -0
  49. package/ClockPicker/clockPickerClasses.js +5 -0
  50. package/ClockPicker/index.d.ts +5 -0
  51. package/ClockPicker/index.js +2 -0
  52. package/ClockPicker/package.json +6 -0
  53. package/ClockPicker/shared.d.ts +4 -0
  54. package/ClockPicker/shared.js +57 -0
  55. package/DatePicker/DatePicker.d.ts +27 -0
  56. package/DatePicker/DatePicker.js +456 -0
  57. package/DatePicker/DatePickerToolbar.d.ts +10 -0
  58. package/DatePicker/DatePickerToolbar.js +81 -0
  59. package/DatePicker/index.d.ts +2 -0
  60. package/DatePicker/index.js +1 -0
  61. package/DatePicker/package.json +6 -0
  62. package/DatePicker/shared.d.ts +47 -0
  63. package/DatePicker/shared.js +54 -0
  64. package/DateTimePicker/DateTimePicker.d.ts +27 -0
  65. package/DateTimePicker/DateTimePicker.js +542 -0
  66. package/DateTimePicker/DateTimePickerTabs.d.ts +12 -0
  67. package/DateTimePicker/DateTimePickerTabs.js +80 -0
  68. package/DateTimePicker/DateTimePickerToolbar.d.ts +6 -0
  69. package/DateTimePicker/DateTimePickerToolbar.js +134 -0
  70. package/DateTimePicker/index.d.ts +2 -0
  71. package/DateTimePicker/index.js +1 -0
  72. package/DateTimePicker/package.json +6 -0
  73. package/DateTimePicker/shared.d.ts +70 -0
  74. package/DateTimePicker/shared.js +58 -0
  75. package/DesktopDatePicker/DesktopDatePicker.d.ts +20 -0
  76. package/DesktopDatePicker/DesktopDatePicker.js +431 -0
  77. package/DesktopDatePicker/index.d.ts +2 -0
  78. package/DesktopDatePicker/index.js +1 -0
  79. package/DesktopDatePicker/package.json +6 -0
  80. package/DesktopDateTimePicker/DesktopDateTimePicker.d.ts +20 -0
  81. package/DesktopDateTimePicker/DesktopDateTimePicker.js +512 -0
  82. package/DesktopDateTimePicker/index.d.ts +2 -0
  83. package/DesktopDateTimePicker/index.js +1 -0
  84. package/DesktopDateTimePicker/package.json +6 -0
  85. package/DesktopTimePicker/DesktopTimePicker.d.ts +20 -0
  86. package/DesktopTimePicker/DesktopTimePicker.js +361 -0
  87. package/DesktopTimePicker/index.d.ts +2 -0
  88. package/DesktopTimePicker/index.js +1 -0
  89. package/DesktopTimePicker/package.json +6 -0
  90. package/LocalizationProvider/LocalizationProvider.d.ts +34 -0
  91. package/LocalizationProvider/LocalizationProvider.js +100 -0
  92. package/LocalizationProvider/index.d.ts +2 -0
  93. package/LocalizationProvider/index.js +1 -0
  94. package/LocalizationProvider/package.json +6 -0
  95. package/MobileDatePicker/MobileDatePicker.d.ts +20 -0
  96. package/MobileDatePicker/MobileDatePicker.js +436 -0
  97. package/MobileDatePicker/index.d.ts +2 -0
  98. package/MobileDatePicker/index.js +1 -0
  99. package/MobileDatePicker/package.json +6 -0
  100. package/MobileDateTimePicker/MobileDateTimePicker.d.ts +20 -0
  101. package/MobileDateTimePicker/MobileDateTimePicker.js +523 -0
  102. package/MobileDateTimePicker/index.d.ts +2 -0
  103. package/MobileDateTimePicker/index.js +1 -0
  104. package/MobileDateTimePicker/package.json +6 -0
  105. package/MobileTimePicker/MobileTimePicker.d.ts +20 -0
  106. package/MobileTimePicker/MobileTimePicker.js +372 -0
  107. package/MobileTimePicker/index.d.ts +2 -0
  108. package/MobileTimePicker/index.js +1 -0
  109. package/MobileTimePicker/package.json +6 -0
  110. package/MonthPicker/MonthPicker.d.ts +41 -0
  111. package/MonthPicker/MonthPicker.js +161 -0
  112. package/MonthPicker/PickersMonth.d.ts +15 -0
  113. package/MonthPicker/PickersMonth.js +70 -0
  114. package/MonthPicker/index.d.ts +4 -0
  115. package/MonthPicker/index.js +2 -0
  116. package/MonthPicker/monthPickerClasses.d.ts +7 -0
  117. package/MonthPicker/monthPickerClasses.js +5 -0
  118. package/MonthPicker/package.json +6 -0
  119. package/PickersDay/PickersDay.d.ts +79 -0
  120. package/PickersDay/PickersDay.js +344 -0
  121. package/PickersDay/index.d.ts +4 -0
  122. package/PickersDay/index.js +2 -0
  123. package/PickersDay/package.json +6 -0
  124. package/PickersDay/pickersDayClasses.d.ts +19 -0
  125. package/PickersDay/pickersDayClasses.js +5 -0
  126. package/README.md +29 -0
  127. package/StaticDatePicker/StaticDatePicker.d.ts +25 -0
  128. package/StaticDatePicker/StaticDatePicker.js +397 -0
  129. package/StaticDatePicker/index.d.ts +2 -0
  130. package/StaticDatePicker/index.js +1 -0
  131. package/StaticDatePicker/package.json +6 -0
  132. package/StaticDateTimePicker/StaticDateTimePicker.d.ts +25 -0
  133. package/StaticDateTimePicker/StaticDateTimePicker.js +484 -0
  134. package/StaticDateTimePicker/index.d.ts +2 -0
  135. package/StaticDateTimePicker/index.js +1 -0
  136. package/StaticDateTimePicker/package.json +6 -0
  137. package/StaticTimePicker/StaticTimePicker.d.ts +25 -0
  138. package/StaticTimePicker/StaticTimePicker.js +332 -0
  139. package/StaticTimePicker/index.d.ts +2 -0
  140. package/StaticTimePicker/index.js +1 -0
  141. package/StaticTimePicker/package.json +6 -0
  142. package/TimePicker/TimePicker.d.ts +27 -0
  143. package/TimePicker/TimePicker.js +395 -0
  144. package/TimePicker/TimePickerToolbar.d.ts +10 -0
  145. package/TimePicker/TimePickerToolbar.js +167 -0
  146. package/TimePicker/index.d.ts +2 -0
  147. package/TimePicker/index.js +1 -0
  148. package/TimePicker/package.json +6 -0
  149. package/TimePicker/shared.d.ts +39 -0
  150. package/TimePicker/shared.js +45 -0
  151. package/TimePicker/timePickerToolbarClasses.d.ts +13 -0
  152. package/TimePicker/timePickerToolbarClasses.js +5 -0
  153. package/YearPicker/PickersYear.d.ts +26 -0
  154. package/YearPicker/PickersYear.js +111 -0
  155. package/YearPicker/YearPicker.d.ts +37 -0
  156. package/YearPicker/YearPicker.js +188 -0
  157. package/YearPicker/index.d.ts +4 -0
  158. package/YearPicker/index.js +2 -0
  159. package/YearPicker/package.json +6 -0
  160. package/YearPicker/yearPickerClasses.d.ts +7 -0
  161. package/YearPicker/yearPickerClasses.js +5 -0
  162. package/index.d.ts +19 -0
  163. package/index.js +24 -0
  164. package/internals/components/CalendarOrClockPicker/CalendarOrClockPicker.d.ts +35 -0
  165. package/internals/components/CalendarOrClockPicker/CalendarOrClockPicker.js +125 -0
  166. package/internals/components/CalendarOrClockPicker/index.d.ts +1 -0
  167. package/internals/components/CalendarOrClockPicker/index.js +1 -0
  168. package/internals/components/KeyboardDateInput.d.ts +3 -0
  169. package/internals/components/KeyboardDateInput.js +58 -0
  170. package/internals/components/PickerStaticWrapper/PickerStaticWrapper.d.ts +14 -0
  171. package/internals/components/PickerStaticWrapper/PickerStaticWrapper.js +57 -0
  172. package/internals/components/PickerStaticWrapper/index.d.ts +4 -0
  173. package/internals/components/PickerStaticWrapper/index.js +2 -0
  174. package/internals/components/PickerStaticWrapper/pickerStaticWrapperClasses.d.ts +7 -0
  175. package/internals/components/PickerStaticWrapper/pickerStaticWrapperClasses.js +5 -0
  176. package/internals/components/PickerViewRoot/PickerViewRoot.d.ts +2 -0
  177. package/internals/components/PickerViewRoot/PickerViewRoot.js +10 -0
  178. package/internals/components/PickerViewRoot/index.d.ts +1 -0
  179. package/internals/components/PickerViewRoot/index.js +1 -0
  180. package/internals/components/PickersArrowSwitcher.d.ts +41 -0
  181. package/internals/components/PickersArrowSwitcher.js +89 -0
  182. package/internals/components/PickersModalDialog.d.ts +46 -0
  183. package/internals/components/PickersModalDialog.js +75 -0
  184. package/internals/components/PickersPopper.d.ts +43 -0
  185. package/internals/components/PickersPopper.js +262 -0
  186. package/internals/components/PickersToolbar.d.ts +15 -0
  187. package/internals/components/PickersToolbar.js +82 -0
  188. package/internals/components/PickersToolbarButton.d.ts +12 -0
  189. package/internals/components/PickersToolbarButton.js +38 -0
  190. package/internals/components/PickersToolbarText.d.ts +7 -0
  191. package/internals/components/PickersToolbarText.js +35 -0
  192. package/internals/components/PureDateInput.d.ts +87 -0
  193. package/internals/components/PureDateInput.js +50 -0
  194. package/internals/components/icons/index.d.ts +48 -0
  195. package/internals/components/icons/index.js +68 -0
  196. package/internals/components/wrappers/DesktopTooltipWrapper.d.ts +3 -0
  197. package/internals/components/wrappers/DesktopTooltipWrapper.js +52 -0
  198. package/internals/components/wrappers/DesktopWrapper.d.ts +15 -0
  199. package/internals/components/wrappers/DesktopWrapper.js +42 -0
  200. package/internals/components/wrappers/MobileWrapper.d.ts +13 -0
  201. package/internals/components/wrappers/MobileWrapper.js +47 -0
  202. package/internals/components/wrappers/ResponsiveWrapper.d.ts +23 -0
  203. package/internals/components/wrappers/ResponsiveWrapper.js +44 -0
  204. package/internals/components/wrappers/WrapperProps.d.ts +13 -0
  205. package/internals/components/wrappers/WrapperProps.js +1 -0
  206. package/internals/components/wrappers/WrapperVariantContext.d.ts +11 -0
  207. package/internals/components/wrappers/WrapperVariantContext.js +12 -0
  208. package/internals/constants/dimensions.d.ts +4 -0
  209. package/internals/constants/dimensions.js +4 -0
  210. package/internals/hooks/date-helpers-hooks.d.ts +16 -0
  211. package/internals/hooks/date-helpers-hooks.js +37 -0
  212. package/internals/hooks/useIsLandscape.d.ts +4 -0
  213. package/internals/hooks/useIsLandscape.js +42 -0
  214. package/internals/hooks/useMaskedInput.d.ts +7 -0
  215. package/internals/hooks/useMaskedInput.js +92 -0
  216. package/internals/hooks/useOpenState.d.ts +9 -0
  217. package/internals/hooks/useOpenState.js +37 -0
  218. package/internals/hooks/usePickerState.d.ts +39 -0
  219. package/internals/hooks/usePickerState.js +117 -0
  220. package/internals/hooks/useUtils.d.ts +6 -0
  221. package/internals/hooks/useUtils.js +20 -0
  222. package/internals/hooks/useViews.d.ts +19 -0
  223. package/internals/hooks/useViews.js +50 -0
  224. package/internals/hooks/validation/useDateTimeValidation.d.ts +8 -0
  225. package/internals/hooks/validation/useDateTimeValidation.js +35 -0
  226. package/internals/hooks/validation/useDateValidation.d.ts +34 -0
  227. package/internals/hooks/validation/useDateValidation.js +42 -0
  228. package/internals/hooks/validation/useTimeValidation.d.ts +32 -0
  229. package/internals/hooks/validation/useTimeValidation.js +42 -0
  230. package/internals/hooks/validation/useValidation.d.ts +21 -0
  231. package/internals/hooks/validation/useValidation.js +19 -0
  232. package/internals/index.d.ts +40 -0
  233. package/internals/index.js +22 -0
  234. package/internals/models/helpers.d.ts +9 -0
  235. package/internals/models/helpers.js +1 -0
  236. package/internals/models/index.d.ts +2 -0
  237. package/internals/models/index.js +2 -0
  238. package/internals/models/muiPickersAdapter.d.ts +2 -0
  239. package/internals/models/muiPickersAdapter.js +1 -0
  240. package/internals/models/parseableDate.d.ts +1 -0
  241. package/internals/models/parseableDate.js +1 -0
  242. package/internals/models/props/basePickerProps.d.ts +79 -0
  243. package/internals/models/props/basePickerProps.js +1 -0
  244. package/internals/models/props/baseToolbarProps.d.ts +23 -0
  245. package/internals/models/props/baseToolbarProps.js +1 -0
  246. package/internals/models/views.d.ts +3 -0
  247. package/internals/models/views.js +1 -0
  248. package/internals/package.json +6 -0
  249. package/internals/utils/date-utils.d.ts +13 -0
  250. package/internals/utils/date-utils.js +67 -0
  251. package/internals/utils/defaultReduceAnimations.d.ts +1 -0
  252. package/internals/utils/defaultReduceAnimations.js +1 -0
  253. package/internals/utils/text-field-helper.d.ts +11 -0
  254. package/internals/utils/text-field-helper.js +66 -0
  255. package/internals/utils/time-utils.d.ts +8 -0
  256. package/internals/utils/time-utils.js +32 -0
  257. package/internals/utils/utils.d.ts +7 -0
  258. package/internals/utils/utils.js +36 -0
  259. package/legacy/AdapterDateFns/index.js +1 -0
  260. package/legacy/AdapterDayjs/index.js +1 -0
  261. package/legacy/AdapterLuxon/index.js +1 -0
  262. package/legacy/AdapterMoment/index.js +1 -0
  263. package/legacy/CalendarPicker/CalendarPicker.js +402 -0
  264. package/legacy/CalendarPicker/DayPicker.js +154 -0
  265. package/legacy/CalendarPicker/PickersCalendarHeader.js +173 -0
  266. package/legacy/CalendarPicker/PickersFadeTransitionGroup.js +42 -0
  267. package/legacy/CalendarPicker/PickersSlideTransition.js +97 -0
  268. package/legacy/CalendarPicker/calendarPickerClasses.js +5 -0
  269. package/legacy/CalendarPicker/index.js +2 -0
  270. package/legacy/CalendarPicker/useCalendarState.js +120 -0
  271. package/legacy/CalendarPickerSkeleton/CalendarPickerSkeleton.js +126 -0
  272. package/legacy/CalendarPickerSkeleton/calendarPickerSkeletonClasses.js +5 -0
  273. package/legacy/CalendarPickerSkeleton/index.js +2 -0
  274. package/legacy/ClockPicker/Clock.js +268 -0
  275. package/legacy/ClockPicker/ClockNumber.js +70 -0
  276. package/legacy/ClockPicker/ClockNumbers.js +83 -0
  277. package/legacy/ClockPicker/ClockPicker.js +454 -0
  278. package/legacy/ClockPicker/ClockPointer.js +130 -0
  279. package/legacy/ClockPicker/clockPickerClasses.js +5 -0
  280. package/legacy/ClockPicker/index.js +2 -0
  281. package/legacy/ClockPicker/shared.js +61 -0
  282. package/legacy/DatePicker/DatePicker.js +455 -0
  283. package/legacy/DatePicker/DatePickerToolbar.js +82 -0
  284. package/legacy/DatePicker/index.js +1 -0
  285. package/legacy/DatePicker/shared.js +58 -0
  286. package/legacy/DateTimePicker/DateTimePicker.js +541 -0
  287. package/legacy/DateTimePicker/DateTimePickerTabs.js +81 -0
  288. package/legacy/DateTimePicker/DateTimePickerToolbar.js +147 -0
  289. package/legacy/DateTimePicker/index.js +1 -0
  290. package/legacy/DateTimePicker/shared.js +59 -0
  291. package/legacy/DesktopDatePicker/DesktopDatePicker.js +434 -0
  292. package/legacy/DesktopDatePicker/index.js +1 -0
  293. package/legacy/DesktopDateTimePicker/DesktopDateTimePicker.js +515 -0
  294. package/legacy/DesktopDateTimePicker/index.js +1 -0
  295. package/legacy/DesktopTimePicker/DesktopTimePicker.js +364 -0
  296. package/legacy/DesktopTimePicker/index.js +1 -0
  297. package/legacy/LocalizationProvider/LocalizationProvider.js +100 -0
  298. package/legacy/LocalizationProvider/index.js +1 -0
  299. package/legacy/MobileDatePicker/MobileDatePicker.js +440 -0
  300. package/legacy/MobileDatePicker/index.js +1 -0
  301. package/legacy/MobileDateTimePicker/MobileDateTimePicker.js +527 -0
  302. package/legacy/MobileDateTimePicker/index.js +1 -0
  303. package/legacy/MobileTimePicker/MobileTimePicker.js +376 -0
  304. package/legacy/MobileTimePicker/index.js +1 -0
  305. package/legacy/MonthPicker/MonthPicker.js +159 -0
  306. package/legacy/MonthPicker/PickersMonth.js +69 -0
  307. package/legacy/MonthPicker/index.js +2 -0
  308. package/legacy/MonthPicker/monthPickerClasses.js +5 -0
  309. package/legacy/PickersDay/PickersDay.js +348 -0
  310. package/legacy/PickersDay/index.js +2 -0
  311. package/legacy/PickersDay/pickersDayClasses.js +5 -0
  312. package/legacy/StaticDatePicker/StaticDatePicker.js +402 -0
  313. package/legacy/StaticDatePicker/index.js +1 -0
  314. package/legacy/StaticDateTimePicker/StaticDateTimePicker.js +489 -0
  315. package/legacy/StaticDateTimePicker/index.js +1 -0
  316. package/legacy/StaticTimePicker/StaticTimePicker.js +336 -0
  317. package/legacy/StaticTimePicker/index.js +1 -0
  318. package/legacy/TimePicker/TimePicker.js +394 -0
  319. package/legacy/TimePicker/TimePickerToolbar.js +175 -0
  320. package/legacy/TimePicker/index.js +1 -0
  321. package/legacy/TimePicker/shared.js +45 -0
  322. package/legacy/TimePicker/timePickerToolbarClasses.js +5 -0
  323. package/legacy/YearPicker/PickersYear.js +114 -0
  324. package/legacy/YearPicker/YearPicker.js +193 -0
  325. package/legacy/YearPicker/index.js +2 -0
  326. package/legacy/YearPicker/yearPickerClasses.js +5 -0
  327. package/legacy/index.js +24 -0
  328. package/legacy/internals/components/CalendarOrClockPicker/CalendarOrClockPicker.js +133 -0
  329. package/legacy/internals/components/CalendarOrClockPicker/index.js +1 -0
  330. package/legacy/internals/components/KeyboardDateInput.js +57 -0
  331. package/legacy/internals/components/PickerStaticWrapper/PickerStaticWrapper.js +56 -0
  332. package/legacy/internals/components/PickerStaticWrapper/index.js +2 -0
  333. package/legacy/internals/components/PickerStaticWrapper/pickerStaticWrapperClasses.js +5 -0
  334. package/legacy/internals/components/PickerViewRoot/PickerViewRoot.js +10 -0
  335. package/legacy/internals/components/PickerViewRoot/index.js +1 -0
  336. package/legacy/internals/components/PickersArrowSwitcher.js +91 -0
  337. package/legacy/internals/components/PickersModalDialog.js +82 -0
  338. package/legacy/internals/components/PickersPopper.js +276 -0
  339. package/legacy/internals/components/PickersToolbar.js +86 -0
  340. package/legacy/internals/components/PickersToolbarButton.js +36 -0
  341. package/legacy/internals/components/PickersToolbarText.js +34 -0
  342. package/legacy/internals/components/PureDateInput.js +52 -0
  343. package/legacy/internals/components/icons/index.js +68 -0
  344. package/legacy/internals/components/wrappers/DesktopTooltipWrapper.js +50 -0
  345. package/legacy/internals/components/wrappers/DesktopWrapper.js +40 -0
  346. package/legacy/internals/components/wrappers/MobileWrapper.js +45 -0
  347. package/legacy/internals/components/wrappers/ResponsiveWrapper.js +43 -0
  348. package/legacy/internals/components/wrappers/WrapperProps.js +1 -0
  349. package/legacy/internals/components/wrappers/WrapperVariantContext.js +12 -0
  350. package/legacy/internals/constants/dimensions.js +4 -0
  351. package/legacy/internals/hooks/date-helpers-hooks.js +35 -0
  352. package/legacy/internals/hooks/useIsLandscape.js +47 -0
  353. package/legacy/internals/hooks/useMaskedInput.js +107 -0
  354. package/legacy/internals/hooks/useOpenState.js +42 -0
  355. package/legacy/internals/hooks/usePickerState.js +147 -0
  356. package/legacy/internals/hooks/useUtils.js +24 -0
  357. package/legacy/internals/hooks/useViews.js +55 -0
  358. package/legacy/internals/hooks/validation/useDateTimeValidation.js +35 -0
  359. package/legacy/internals/hooks/validation/useDateValidation.js +45 -0
  360. package/legacy/internals/hooks/validation/useTimeValidation.js +45 -0
  361. package/legacy/internals/hooks/validation/useValidation.js +17 -0
  362. package/legacy/internals/index.js +22 -0
  363. package/legacy/internals/models/helpers.js +1 -0
  364. package/legacy/internals/models/index.js +2 -0
  365. package/legacy/internals/models/muiPickersAdapter.js +1 -0
  366. package/legacy/internals/models/parseableDate.js +1 -0
  367. package/legacy/internals/models/props/basePickerProps.js +1 -0
  368. package/legacy/internals/models/props/baseToolbarProps.js +1 -0
  369. package/legacy/internals/models/views.js +1 -0
  370. package/legacy/internals/utils/date-utils.js +66 -0
  371. package/legacy/internals/utils/defaultReduceAnimations.js +1 -0
  372. package/legacy/internals/utils/text-field-helper.js +68 -0
  373. package/legacy/internals/utils/time-utils.js +34 -0
  374. package/legacy/internals/utils/utils.js +52 -0
  375. package/legacy/themeAugmentation/index.js +3 -0
  376. package/modern/AdapterDateFns/index.js +1 -0
  377. package/modern/AdapterDayjs/index.js +1 -0
  378. package/modern/AdapterLuxon/index.js +1 -0
  379. package/modern/AdapterMoment/index.js +1 -0
  380. package/modern/CalendarPicker/CalendarPicker.js +390 -0
  381. package/modern/CalendarPicker/DayPicker.js +140 -0
  382. package/modern/CalendarPicker/PickersCalendarHeader.js +162 -0
  383. package/modern/CalendarPicker/PickersFadeTransitionGroup.js +42 -0
  384. package/modern/CalendarPicker/PickersSlideTransition.js +101 -0
  385. package/modern/CalendarPicker/calendarPickerClasses.js +3 -0
  386. package/modern/CalendarPicker/index.js +2 -0
  387. package/modern/CalendarPicker/useCalendarState.js +108 -0
  388. package/modern/CalendarPickerSkeleton/CalendarPickerSkeleton.js +119 -0
  389. package/modern/CalendarPickerSkeleton/calendarPickerSkeletonClasses.js +3 -0
  390. package/modern/CalendarPickerSkeleton/index.js +2 -0
  391. package/modern/ClockPicker/Clock.js +262 -0
  392. package/modern/ClockPicker/ClockNumber.js +70 -0
  393. package/modern/ClockPicker/ClockNumbers.js +80 -0
  394. package/modern/ClockPicker/ClockPicker.js +407 -0
  395. package/modern/ClockPicker/ClockPointer.js +102 -0
  396. package/modern/ClockPicker/clockPickerClasses.js +5 -0
  397. package/modern/ClockPicker/index.js +2 -0
  398. package/modern/ClockPicker/shared.js +57 -0
  399. package/modern/DatePicker/DatePicker.js +456 -0
  400. package/modern/DatePicker/DatePickerToolbar.js +81 -0
  401. package/modern/DatePicker/index.js +1 -0
  402. package/modern/DatePicker/shared.js +54 -0
  403. package/modern/DateTimePicker/DateTimePicker.js +542 -0
  404. package/modern/DateTimePicker/DateTimePickerTabs.js +80 -0
  405. package/modern/DateTimePicker/DateTimePickerToolbar.js +134 -0
  406. package/modern/DateTimePicker/index.js +1 -0
  407. package/modern/DateTimePicker/shared.js +58 -0
  408. package/modern/DesktopDatePicker/DesktopDatePicker.js +431 -0
  409. package/modern/DesktopDatePicker/index.js +1 -0
  410. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +512 -0
  411. package/modern/DesktopDateTimePicker/index.js +1 -0
  412. package/modern/DesktopTimePicker/DesktopTimePicker.js +361 -0
  413. package/modern/DesktopTimePicker/index.js +1 -0
  414. package/modern/LocalizationProvider/LocalizationProvider.js +100 -0
  415. package/modern/LocalizationProvider/index.js +1 -0
  416. package/modern/MobileDatePicker/MobileDatePicker.js +436 -0
  417. package/modern/MobileDatePicker/index.js +1 -0
  418. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +523 -0
  419. package/modern/MobileDateTimePicker/index.js +1 -0
  420. package/modern/MobileTimePicker/MobileTimePicker.js +372 -0
  421. package/modern/MobileTimePicker/index.js +1 -0
  422. package/modern/MonthPicker/MonthPicker.js +161 -0
  423. package/modern/MonthPicker/PickersMonth.js +70 -0
  424. package/modern/MonthPicker/index.js +2 -0
  425. package/modern/MonthPicker/monthPickerClasses.js +5 -0
  426. package/modern/PickersDay/PickersDay.js +344 -0
  427. package/modern/PickersDay/index.js +2 -0
  428. package/modern/PickersDay/pickersDayClasses.js +5 -0
  429. package/modern/StaticDatePicker/StaticDatePicker.js +397 -0
  430. package/modern/StaticDatePicker/index.js +1 -0
  431. package/modern/StaticDateTimePicker/StaticDateTimePicker.js +484 -0
  432. package/modern/StaticDateTimePicker/index.js +1 -0
  433. package/modern/StaticTimePicker/StaticTimePicker.js +332 -0
  434. package/modern/StaticTimePicker/index.js +1 -0
  435. package/modern/TimePicker/TimePicker.js +395 -0
  436. package/modern/TimePicker/TimePickerToolbar.js +167 -0
  437. package/modern/TimePicker/index.js +1 -0
  438. package/modern/TimePicker/shared.js +45 -0
  439. package/modern/TimePicker/timePickerToolbarClasses.js +5 -0
  440. package/modern/YearPicker/PickersYear.js +111 -0
  441. package/modern/YearPicker/YearPicker.js +188 -0
  442. package/modern/YearPicker/index.js +2 -0
  443. package/modern/YearPicker/yearPickerClasses.js +5 -0
  444. package/modern/index.js +24 -0
  445. package/modern/internals/components/CalendarOrClockPicker/CalendarOrClockPicker.js +125 -0
  446. package/modern/internals/components/CalendarOrClockPicker/index.js +1 -0
  447. package/modern/internals/components/KeyboardDateInput.js +58 -0
  448. package/modern/internals/components/PickerStaticWrapper/PickerStaticWrapper.js +57 -0
  449. package/modern/internals/components/PickerStaticWrapper/index.js +2 -0
  450. package/modern/internals/components/PickerStaticWrapper/pickerStaticWrapperClasses.js +5 -0
  451. package/modern/internals/components/PickerViewRoot/PickerViewRoot.js +10 -0
  452. package/modern/internals/components/PickerViewRoot/index.js +1 -0
  453. package/modern/internals/components/PickersArrowSwitcher.js +89 -0
  454. package/modern/internals/components/PickersModalDialog.js +75 -0
  455. package/modern/internals/components/PickersPopper.js +262 -0
  456. package/modern/internals/components/PickersToolbar.js +82 -0
  457. package/modern/internals/components/PickersToolbarButton.js +38 -0
  458. package/modern/internals/components/PickersToolbarText.js +35 -0
  459. package/modern/internals/components/PureDateInput.js +50 -0
  460. package/modern/internals/components/icons/index.js +68 -0
  461. package/modern/internals/components/wrappers/DesktopTooltipWrapper.js +50 -0
  462. package/modern/internals/components/wrappers/DesktopWrapper.js +42 -0
  463. package/modern/internals/components/wrappers/MobileWrapper.js +47 -0
  464. package/modern/internals/components/wrappers/ResponsiveWrapper.js +44 -0
  465. package/modern/internals/components/wrappers/WrapperProps.js +1 -0
  466. package/modern/internals/components/wrappers/WrapperVariantContext.js +12 -0
  467. package/modern/internals/constants/dimensions.js +4 -0
  468. package/modern/internals/hooks/date-helpers-hooks.js +37 -0
  469. package/modern/internals/hooks/useIsLandscape.js +42 -0
  470. package/modern/internals/hooks/useMaskedInput.js +92 -0
  471. package/modern/internals/hooks/useOpenState.js +37 -0
  472. package/modern/internals/hooks/usePickerState.js +117 -0
  473. package/modern/internals/hooks/useUtils.js +20 -0
  474. package/modern/internals/hooks/useViews.js +48 -0
  475. package/modern/internals/hooks/validation/useDateTimeValidation.js +35 -0
  476. package/modern/internals/hooks/validation/useDateValidation.js +42 -0
  477. package/modern/internals/hooks/validation/useTimeValidation.js +42 -0
  478. package/modern/internals/hooks/validation/useValidation.js +19 -0
  479. package/modern/internals/index.js +22 -0
  480. package/modern/internals/models/helpers.js +1 -0
  481. package/modern/internals/models/index.js +2 -0
  482. package/modern/internals/models/muiPickersAdapter.js +1 -0
  483. package/modern/internals/models/parseableDate.js +1 -0
  484. package/modern/internals/models/props/basePickerProps.js +1 -0
  485. package/modern/internals/models/props/baseToolbarProps.js +1 -0
  486. package/modern/internals/models/views.js +1 -0
  487. package/modern/internals/utils/date-utils.js +67 -0
  488. package/modern/internals/utils/defaultReduceAnimations.js +1 -0
  489. package/modern/internals/utils/text-field-helper.js +66 -0
  490. package/modern/internals/utils/time-utils.js +32 -0
  491. package/modern/internals/utils/utils.js +36 -0
  492. package/modern/themeAugmentation/index.js +3 -0
  493. package/node/AdapterDateFns/index.js +15 -0
  494. package/node/AdapterDayjs/index.js +15 -0
  495. package/node/AdapterLuxon/index.js +15 -0
  496. package/node/AdapterMoment/index.js +15 -0
  497. package/node/CalendarPicker/CalendarPicker.js +420 -0
  498. package/node/CalendarPicker/DayPicker.js +161 -0
  499. package/node/CalendarPicker/PickersCalendarHeader.js +185 -0
  500. package/node/CalendarPicker/PickersFadeTransitionGroup.js +64 -0
  501. package/node/CalendarPicker/PickersSlideTransition.js +126 -0
  502. package/node/CalendarPicker/calendarPickerClasses.js +14 -0
  503. package/node/CalendarPicker/index.js +27 -0
  504. package/node/CalendarPicker/useCalendarState.js +132 -0
  505. package/node/CalendarPickerSkeleton/CalendarPickerSkeleton.js +142 -0
  506. package/node/CalendarPickerSkeleton/calendarPickerSkeletonClasses.js +14 -0
  507. package/node/CalendarPickerSkeleton/index.js +27 -0
  508. package/node/ClockPicker/Clock.js +285 -0
  509. package/node/ClockPicker/ClockNumber.js +93 -0
  510. package/node/ClockPicker/ClockNumbers.js +98 -0
  511. package/node/ClockPicker/ClockPicker.js +437 -0
  512. package/node/ClockPicker/ClockPointer.js +123 -0
  513. package/node/ClockPicker/clockPickerClasses.js +16 -0
  514. package/node/ClockPicker/index.js +27 -0
  515. package/node/ClockPicker/shared.js +70 -0
  516. package/node/DatePicker/DatePicker.js +477 -0
  517. package/node/DatePicker/DatePickerToolbar.js +105 -0
  518. package/node/DatePicker/index.js +13 -0
  519. package/node/DatePicker/shared.js +73 -0
  520. package/node/DateTimePicker/DateTimePicker.js +562 -0
  521. package/node/DateTimePicker/DateTimePickerTabs.js +100 -0
  522. package/node/DateTimePicker/DateTimePickerToolbar.js +160 -0
  523. package/node/DateTimePicker/index.js +13 -0
  524. package/node/DateTimePicker/shared.js +72 -0
  525. package/node/DesktopDatePicker/DesktopDatePicker.js +456 -0
  526. package/node/DesktopDatePicker/index.js +13 -0
  527. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +537 -0
  528. package/node/DesktopDateTimePicker/index.js +13 -0
  529. package/node/DesktopTimePicker/DesktopTimePicker.js +386 -0
  530. package/node/DesktopTimePicker/index.js +13 -0
  531. package/node/LocalizationProvider/LocalizationProvider.js +119 -0
  532. package/node/LocalizationProvider/index.js +13 -0
  533. package/node/MobileDatePicker/MobileDatePicker.js +462 -0
  534. package/node/MobileDatePicker/index.js +13 -0
  535. package/node/MobileDateTimePicker/MobileDateTimePicker.js +549 -0
  536. package/node/MobileDateTimePicker/index.js +13 -0
  537. package/node/MobileTimePicker/MobileTimePicker.js +398 -0
  538. package/node/MobileTimePicker/index.js +13 -0
  539. package/node/MonthPicker/MonthPicker.js +184 -0
  540. package/node/MonthPicker/PickersMonth.js +95 -0
  541. package/node/MonthPicker/index.js +27 -0
  542. package/node/MonthPicker/monthPickerClasses.js +16 -0
  543. package/node/PickersDay/PickersDay.js +372 -0
  544. package/node/PickersDay/index.js +27 -0
  545. package/node/PickersDay/pickersDayClasses.js +16 -0
  546. package/node/StaticDatePicker/StaticDatePicker.js +422 -0
  547. package/node/StaticDatePicker/index.js +13 -0
  548. package/node/StaticDateTimePicker/StaticDateTimePicker.js +509 -0
  549. package/node/StaticDateTimePicker/index.js +13 -0
  550. package/node/StaticTimePicker/StaticTimePicker.js +356 -0
  551. package/node/StaticTimePicker/index.js +13 -0
  552. package/node/TimePicker/TimePicker.js +416 -0
  553. package/node/TimePicker/TimePickerToolbar.js +192 -0
  554. package/node/TimePicker/index.js +13 -0
  555. package/node/TimePicker/shared.js +59 -0
  556. package/node/TimePicker/timePickerToolbarClasses.js +16 -0
  557. package/node/YearPicker/PickersYear.js +135 -0
  558. package/node/YearPicker/YearPicker.js +212 -0
  559. package/node/YearPicker/index.js +27 -0
  560. package/node/YearPicker/yearPickerClasses.js +16 -0
  561. package/node/index.js +257 -0
  562. package/node/internals/components/CalendarOrClockPicker/CalendarOrClockPicker.js +151 -0
  563. package/node/internals/components/CalendarOrClockPicker/index.js +13 -0
  564. package/node/internals/components/KeyboardDateInput.js +83 -0
  565. package/node/internals/components/PickerStaticWrapper/PickerStaticWrapper.js +78 -0
  566. package/node/internals/components/PickerStaticWrapper/index.js +27 -0
  567. package/node/internals/components/PickerStaticWrapper/pickerStaticWrapperClasses.js +16 -0
  568. package/node/internals/components/PickerViewRoot/PickerViewRoot.js +20 -0
  569. package/node/internals/components/PickerViewRoot/index.js +13 -0
  570. package/node/internals/components/PickersArrowSwitcher.js +110 -0
  571. package/node/internals/components/PickersModalDialog.js +99 -0
  572. package/node/internals/components/PickersPopper.js +287 -0
  573. package/node/internals/components/PickersToolbar.js +105 -0
  574. package/node/internals/components/PickersToolbarButton.js +59 -0
  575. package/node/internals/components/PickersToolbarText.js +57 -0
  576. package/node/internals/components/PureDateInput.js +70 -0
  577. package/node/internals/components/icons/index.js +88 -0
  578. package/node/internals/components/wrappers/DesktopTooltipWrapper.js +71 -0
  579. package/node/internals/components/wrappers/DesktopWrapper.js +60 -0
  580. package/node/internals/components/wrappers/MobileWrapper.js +65 -0
  581. package/node/internals/components/wrappers/ResponsiveWrapper.js +64 -0
  582. package/node/internals/components/wrappers/WrapperProps.js +5 -0
  583. package/node/internals/components/wrappers/WrapperVariantContext.js +25 -0
  584. package/node/internals/constants/dimensions.js +14 -0
  585. package/node/internals/hooks/date-helpers-hooks.js +55 -0
  586. package/node/internals/hooks/useIsLandscape.js +57 -0
  587. package/node/internals/hooks/useMaskedInput.js +113 -0
  588. package/node/internals/hooks/useOpenState.js +51 -0
  589. package/node/internals/hooks/usePickerState.js +136 -0
  590. package/node/internals/hooks/useUtils.js +40 -0
  591. package/node/internals/hooks/useViews.js +64 -0
  592. package/node/internals/hooks/validation/useDateTimeValidation.js +51 -0
  593. package/node/internals/hooks/validation/useDateValidation.js +54 -0
  594. package/node/internals/hooks/validation/useTimeValidation.js +55 -0
  595. package/node/internals/hooks/validation/useValidation.js +32 -0
  596. package/node/internals/index.js +193 -0
  597. package/node/internals/models/helpers.js +5 -0
  598. package/node/internals/models/index.js +31 -0
  599. package/node/internals/models/muiPickersAdapter.js +5 -0
  600. package/node/internals/models/parseableDate.js +5 -0
  601. package/node/internals/models/props/basePickerProps.js +5 -0
  602. package/node/internals/models/props/baseToolbarProps.js +5 -0
  603. package/node/internals/models/views.js +5 -0
  604. package/node/internals/utils/date-utils.js +79 -0
  605. package/node/internals/utils/defaultReduceAnimations.js +8 -0
  606. package/node/internals/utils/text-field-helper.js +86 -0
  607. package/node/internals/utils/time-utils.js +53 -0
  608. package/node/internals/utils/utils.js +58 -0
  609. package/node/themeAugmentation/index.js +44 -0
  610. package/package.json +78 -0
  611. package/themeAugmentation/components.d.ts +53 -0
  612. package/themeAugmentation/index.d.ts +3 -0
  613. package/themeAugmentation/index.js +3 -0
  614. package/themeAugmentation/overrides.d.ts +27 -0
  615. package/themeAugmentation/package.json +6 -0
  616. package/themeAugmentation/props.d.ts +46 -0
@@ -0,0 +1,35 @@
1
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
+ const _excluded = ["minDate", "maxDate", "disableFuture", "shouldDisableDate", "disablePast"];
3
+ import { useValidation } from './useValidation';
4
+ import { validateDate } from './useDateValidation';
5
+ import { validateTime } from './useTimeValidation';
6
+ export const validateDateTime = (utils, value, _ref) => {
7
+ let {
8
+ minDate,
9
+ maxDate,
10
+ disableFuture,
11
+ shouldDisableDate,
12
+ disablePast
13
+ } = _ref,
14
+ timeValidationProps = _objectWithoutPropertiesLoose(_ref, _excluded);
15
+
16
+ const dateValidationResult = validateDate(utils, value, {
17
+ minDate,
18
+ maxDate,
19
+ disableFuture,
20
+ shouldDisableDate,
21
+ disablePast
22
+ });
23
+
24
+ if (dateValidationResult !== null) {
25
+ return dateValidationResult;
26
+ }
27
+
28
+ return validateTime(utils, value, timeValidationProps);
29
+ };
30
+
31
+ const isSameDateTimeError = (a, b) => a === b;
32
+
33
+ export function useDateTimeValidation(props) {
34
+ return useValidation(props, validateDateTime, isSameDateTimeError);
35
+ }
@@ -0,0 +1,34 @@
1
+ import { ValidationProps, Validator } from './useValidation';
2
+ export interface ExportedDateValidationProps<TDate> {
3
+ /**
4
+ * Disable past dates.
5
+ * @default false
6
+ */
7
+ disablePast?: boolean;
8
+ /**
9
+ * Disable future dates.
10
+ * @default false
11
+ */
12
+ disableFuture?: boolean;
13
+ /**
14
+ * Min selectable date. @DateIOType
15
+ * @default Date(1900-01-01)
16
+ */
17
+ minDate?: TDate;
18
+ /**
19
+ * Max selectable date. @DateIOType
20
+ * @default Date(2099-31-12)
21
+ */
22
+ maxDate?: TDate;
23
+ /**
24
+ * Disable specific date. @DateIOType
25
+ * @param {TDate} day The date to test.
26
+ * @returns {boolean} Return `true` if the date should be disabled.
27
+ */
28
+ shouldDisableDate?: (day: TDate) => boolean;
29
+ }
30
+ export interface DateValidationProps<TDate> extends ValidationProps<DateValidationError, TDate>, ExportedDateValidationProps<TDate> {
31
+ }
32
+ export declare type DateValidationError = 'invalidDate' | 'shouldDisableDate' | 'disableFuture' | 'disablePast' | 'minDate' | 'maxDate' | null;
33
+ export declare const validateDate: Validator<any, DateValidationProps<any>>;
34
+ export declare const useDateValidation: <TDate>(props: DateValidationProps<TDate> & ValidationProps<DateValidationError, TDate>) => DateValidationError;
@@ -0,0 +1,42 @@
1
+ import { useValidation } from './useValidation';
2
+ export const validateDate = (utils, value, {
3
+ disablePast,
4
+ disableFuture,
5
+ minDate,
6
+ maxDate,
7
+ shouldDisableDate
8
+ }) => {
9
+ const now = utils.date();
10
+ const date = utils.date(value);
11
+
12
+ if (date === null) {
13
+ return null;
14
+ }
15
+
16
+ switch (true) {
17
+ case !utils.isValid(value):
18
+ return 'invalidDate';
19
+
20
+ case Boolean(shouldDisableDate && shouldDisableDate(date)):
21
+ return 'shouldDisableDate';
22
+
23
+ case Boolean(disableFuture && utils.isAfterDay(date, now)):
24
+ return 'disableFuture';
25
+
26
+ case Boolean(disablePast && utils.isBeforeDay(date, now)):
27
+ return 'disablePast';
28
+
29
+ case Boolean(minDate && utils.isBeforeDay(date, minDate)):
30
+ return 'minDate';
31
+
32
+ case Boolean(maxDate && utils.isAfterDay(date, maxDate)):
33
+ return 'maxDate';
34
+
35
+ default:
36
+ return null;
37
+ }
38
+ };
39
+
40
+ const isSameDateError = (a, b) => a === b;
41
+
42
+ export const useDateValidation = props => useValidation(props, validateDate, isSameDateError);
@@ -0,0 +1,32 @@
1
+ import { ValidationProps, Validator } from './useValidation';
2
+ import { ClockPickerView } from '../../models';
3
+ export interface ExportedTimeValidationProps<TDate> {
4
+ /**
5
+ * Min time acceptable time.
6
+ * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.
7
+ */
8
+ minTime?: TDate;
9
+ /**
10
+ * Max time acceptable time.
11
+ * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.
12
+ */
13
+ maxTime?: TDate;
14
+ /**
15
+ * Dynamically check if time is disabled or not.
16
+ * If returns `false` appropriate time point will ot be acceptable.
17
+ * @param {number} timeValue The value to check.
18
+ * @param {ClockPickerView} clockType The clock type of the timeValue.
19
+ * @returns {boolean} Returns `true` if the time should be disabled
20
+ */
21
+ shouldDisableTime?: (timeValue: number, clockType: ClockPickerView) => boolean;
22
+ /**
23
+ * Do not ignore date part when validating min/max time.
24
+ * @default false
25
+ */
26
+ disableIgnoringDatePartForTimeValidation?: boolean;
27
+ }
28
+ export interface TimeValidationProps<TDate> extends ExportedTimeValidationProps<TDate>, ValidationProps<TimeValidationError, TDate> {
29
+ }
30
+ export declare type TimeValidationError = 'invalidDate' | 'minTime' | 'maxTime' | 'shouldDisableTime-hours' | 'shouldDisableTime-minutes' | 'shouldDisableTime-seconds' | null;
31
+ export declare const validateTime: Validator<any, TimeValidationProps<any>>;
32
+ export declare const useTimeValidation: <TDate>(props: TimeValidationProps<TDate> & ValidationProps<TimeValidationError, TDate>) => TimeValidationError;
@@ -0,0 +1,42 @@
1
+ import { createIsAfterIgnoreDatePart } from '../../utils/time-utils';
2
+ import { useValidation } from './useValidation';
3
+ export const validateTime = (utils, value, {
4
+ minTime,
5
+ maxTime,
6
+ shouldDisableTime,
7
+ disableIgnoringDatePartForTimeValidation
8
+ }) => {
9
+ const date = utils.date(value);
10
+ const isAfterComparingFn = createIsAfterIgnoreDatePart(Boolean(disableIgnoringDatePartForTimeValidation), utils);
11
+
12
+ if (value === null) {
13
+ return null;
14
+ }
15
+
16
+ switch (true) {
17
+ case !utils.isValid(value):
18
+ return 'invalidDate';
19
+
20
+ case Boolean(minTime && isAfterComparingFn(minTime, date)):
21
+ return 'minTime';
22
+
23
+ case Boolean(maxTime && isAfterComparingFn(date, maxTime)):
24
+ return 'maxTime';
25
+
26
+ case Boolean(shouldDisableTime && shouldDisableTime(utils.getHours(date), 'hours')):
27
+ return 'shouldDisableTime-hours';
28
+
29
+ case Boolean(shouldDisableTime && shouldDisableTime(utils.getMinutes(date), 'minutes')):
30
+ return 'shouldDisableTime-minutes';
31
+
32
+ case Boolean(shouldDisableTime && shouldDisableTime(utils.getSeconds(date), 'seconds')):
33
+ return 'shouldDisableTime-seconds';
34
+
35
+ default:
36
+ return null;
37
+ }
38
+ };
39
+
40
+ const isSameTimeError = (a, b) => a === b;
41
+
42
+ export const useTimeValidation = props => useValidation(props, validateTime, isSameTimeError);
@@ -0,0 +1,21 @@
1
+ import { MuiPickersAdapter } from '../../models';
2
+ export interface ValidationProps<TError, TDateValue> {
3
+ /**
4
+ * Callback that fired when input value or new `value` prop validation returns **new** validation error (or value is valid after error).
5
+ * In case of validation error detected `reason` prop return non-null value and `TextField` must be displayed in `error` state.
6
+ * This can be used to render appropriate form error.
7
+ *
8
+ * [Read the guide](https://next.material-ui-pickers.dev/guides/forms) about form integration and error displaying.
9
+ * @DateIOType
10
+ *
11
+ * @param {TError} reason The reason why the current value is not valid.
12
+ * @param {TDateValue} value The invalid value.
13
+ */
14
+ onError?: (reason: TError, value: TDateValue) => void;
15
+ value: TDateValue;
16
+ }
17
+ declare type InferError<Props> = Props extends ValidationProps<infer TError, any> ? TError : never;
18
+ declare type InferDate<Props> = Props extends ValidationProps<any, infer TDate> ? TDate : never;
19
+ export declare type Validator<TDate, TProps> = (utils: MuiPickersAdapter<TDate>, value: InferDate<TProps>, props: Omit<TProps, 'value'>) => InferError<TProps>;
20
+ export declare function useValidation<TDate, TProps extends ValidationProps<any, any>>(props: TProps, validate: Validator<TDate, TProps>, isSameError: (a: InferError<TProps>, b: InferError<TProps> | null) => boolean): InferError<TProps>;
21
+ export {};
@@ -0,0 +1,19 @@
1
+ import * as React from 'react';
2
+ import { useUtils } from '../useUtils';
3
+ export function useValidation(props, validate, isSameError) {
4
+ const {
5
+ value,
6
+ onError
7
+ } = props;
8
+ const utils = useUtils();
9
+ const previousValidationErrorRef = React.useRef(null);
10
+ const validationError = validate(utils, value, props);
11
+ React.useEffect(() => {
12
+ if (onError && !isSameError(validationError, previousValidationErrorRef.current)) {
13
+ onError(validationError, value);
14
+ }
15
+
16
+ previousValidationErrorRef.current = validationError;
17
+ }, [isSameError, onError, previousValidationErrorRef, validationError, value]);
18
+ return validationError;
19
+ }
@@ -0,0 +1,40 @@
1
+ export { DesktopTooltipWrapper } from './components/wrappers/DesktopTooltipWrapper';
2
+ export type { DesktopWrapperProps } from './components/wrappers/DesktopWrapper';
3
+ export { MobileWrapper } from './components/wrappers/MobileWrapper';
4
+ export type { MobileWrapperProps } from './components/wrappers/MobileWrapper';
5
+ export { MobileKeyboardInputView } from './components/CalendarOrClockPicker/CalendarOrClockPicker';
6
+ export { PickersArrowSwitcher } from './components/PickersArrowSwitcher';
7
+ export type { ExportedArrowSwitcherProps } from './components/PickersArrowSwitcher';
8
+ export { PickerStaticWrapper } from './components/PickerStaticWrapper/PickerStaticWrapper';
9
+ export type { PickerStaticWrapperProps } from './components/PickerStaticWrapper/PickerStaticWrapper';
10
+ export { PickersToolbar } from './components/PickersToolbar';
11
+ export { PickersToolbarButton } from './components/PickersToolbarButton';
12
+ export type { DateInputProps, ExportedDateInputProps, MuiTextFieldProps, } from './components/PureDateInput';
13
+ export { ResponsiveTooltipWrapper } from './components/wrappers/ResponsiveWrapper';
14
+ export type { ResponsiveWrapperProps } from './components/wrappers/ResponsiveWrapper';
15
+ export type { DateInputPropsLike } from './components/wrappers/WrapperProps';
16
+ export { WrapperVariantContext } from './components/wrappers/WrapperVariantContext';
17
+ export type { WrapperVariant } from './components/wrappers/WrapperVariantContext';
18
+ export { DAY_MARGIN } from './constants/dimensions';
19
+ export { useMaskedInput } from './hooks/useMaskedInput';
20
+ export { usePickerState } from './hooks/usePickerState';
21
+ export type { PickerStateValueManager, PickerSelectionState } from './hooks/usePickerState';
22
+ export { useDefaultDates, useUtils } from './hooks/useUtils';
23
+ export { useValidation } from './hooks/validation/useValidation';
24
+ export type { ValidationProps, Validator } from './hooks/validation/useValidation';
25
+ export { validateDate } from './hooks/validation/useDateValidation';
26
+ export type { DateValidationProps, DateValidationError, ExportedDateValidationProps, } from './hooks/validation/useDateValidation';
27
+ export { usePreviousMonthDisabled, useNextMonthDisabled } from './hooks/date-helpers-hooks';
28
+ export type { BasePickerProps } from './models/props/basePickerProps';
29
+ export type { BaseToolbarProps } from './models/props/baseToolbarProps';
30
+ export type { ParseableDate } from './models/parseableDate';
31
+ export type { MuiPickersAdapter } from './models/muiPickersAdapter';
32
+ export { executeInTheNextEventLoopTick } from './utils/utils';
33
+ export { defaultReduceAnimations } from './utils/defaultReduceAnimations';
34
+ export { PickersCalendarHeader } from '../CalendarPicker/PickersCalendarHeader';
35
+ export type { ExportedCalendarHeaderProps } from '../CalendarPicker/PickersCalendarHeader';
36
+ export { DayPicker } from '../CalendarPicker/DayPicker';
37
+ export type { PickersCalendarProps } from '../CalendarPicker/DayPicker';
38
+ export { areDayPropsEqual } from '../PickersDay/PickersDay';
39
+ export type { ExportedCalendarPickerProps } from '../CalendarPicker/CalendarPicker';
40
+ export { useCalendarState } from '../CalendarPicker/useCalendarState';
@@ -0,0 +1,22 @@
1
+ export { DesktopTooltipWrapper } from './components/wrappers/DesktopTooltipWrapper';
2
+ export { MobileWrapper } from './components/wrappers/MobileWrapper';
3
+ export { MobileKeyboardInputView } from './components/CalendarOrClockPicker/CalendarOrClockPicker';
4
+ export { PickersArrowSwitcher } from './components/PickersArrowSwitcher';
5
+ export { PickerStaticWrapper } from './components/PickerStaticWrapper/PickerStaticWrapper';
6
+ export { PickersToolbar } from './components/PickersToolbar';
7
+ export { PickersToolbarButton } from './components/PickersToolbarButton';
8
+ export { ResponsiveTooltipWrapper } from './components/wrappers/ResponsiveWrapper';
9
+ export { WrapperVariantContext } from './components/wrappers/WrapperVariantContext';
10
+ export { DAY_MARGIN } from './constants/dimensions';
11
+ export { useMaskedInput } from './hooks/useMaskedInput';
12
+ export { usePickerState } from './hooks/usePickerState';
13
+ export { useDefaultDates, useUtils } from './hooks/useUtils';
14
+ export { useValidation } from './hooks/validation/useValidation';
15
+ export { validateDate } from './hooks/validation/useDateValidation';
16
+ export { usePreviousMonthDisabled, useNextMonthDisabled } from './hooks/date-helpers-hooks';
17
+ export { executeInTheNextEventLoopTick } from './utils/utils';
18
+ export { defaultReduceAnimations } from './utils/defaultReduceAnimations';
19
+ export { PickersCalendarHeader } from '../CalendarPicker/PickersCalendarHeader';
20
+ export { DayPicker } from '../CalendarPicker/DayPicker';
21
+ export { areDayPropsEqual } from '../PickersDay/PickersDay';
22
+ export { useCalendarState } from '../CalendarPicker/useCalendarState';
@@ -0,0 +1,9 @@
1
+ /**
2
+ * All standard components exposed by `material-ui` are `StyledComponents` with
3
+ * certain `classes`, on which one can also set a top-level `className` and inline
4
+ * `style`.
5
+ */
6
+ export declare type ExtendMui<C, Removals extends keyof C = never> = Omit<C, 'classes' | 'theme' | Removals>;
7
+ export declare type MakeOptional<T, K extends keyof T> = {
8
+ [P in K]?: T[P] | undefined;
9
+ } & Omit<T, K>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ export * from './views';
2
+ export * from './muiPickersAdapter';
@@ -0,0 +1,2 @@
1
+ export * from './views';
2
+ export * from './muiPickersAdapter';
@@ -0,0 +1,2 @@
1
+ import { IUtils } from '@date-io/core/IUtils';
2
+ export declare type MuiPickersAdapter<TDate> = IUtils<TDate>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export declare type ParseableDate<TDate> = string | number | Date | null | undefined | TDate;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,79 @@
1
+ import * as React from 'react';
2
+ import { BaseToolbarProps } from './baseToolbarProps';
3
+ export interface BasePickerProps<TInputValue, TDateValue> {
4
+ /**
5
+ * className applied to the root component.
6
+ */
7
+ className?: string;
8
+ /**
9
+ * If `true` the popup or dialog will immediately close after submitting full date.
10
+ * @default `true` for Desktop, `false` for Mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).
11
+ */
12
+ disableCloseOnSelect?: boolean;
13
+ /**
14
+ * If `true`, the picker and text field are disabled.
15
+ */
16
+ disabled?: boolean;
17
+ /**
18
+ * Format string.
19
+ */
20
+ inputFormat?: string;
21
+ /**
22
+ * Callback fired when date is accepted @DateIOType.
23
+ * @param {TDateValue} date The date that was just accepted.
24
+ */
25
+ onAccept?: (date: TDateValue) => void;
26
+ /**
27
+ * Callback fired when the value (the selected date) changes @DateIOType.
28
+ * @param {DateRange<TDate>} date The new parsed date.
29
+ * @param {string} keyboardInputValue The current value of the keyboard input.
30
+ */
31
+ onChange: (date: TDateValue, keyboardInputValue?: string) => void;
32
+ /**
33
+ * Callback fired when the popup requests to be closed.
34
+ * Use in controlled mode (see open).
35
+ */
36
+ onClose?: () => void;
37
+ /**
38
+ * Callback fired when the popup requests to be opened.
39
+ * Use in controlled mode (see open).
40
+ */
41
+ onOpen?: () => void;
42
+ /**
43
+ * Force rendering in particular orientation.
44
+ */
45
+ orientation?: 'portrait' | 'landscape';
46
+ /**
47
+ * Control the popup or dialog open state.
48
+ */
49
+ open?: boolean;
50
+ /**
51
+ * Make picker read only.
52
+ */
53
+ readOnly?: boolean;
54
+ /**
55
+ * If `true`, show the toolbar even in desktop mode.
56
+ */
57
+ showToolbar?: boolean;
58
+ /**
59
+ * Component that will replace default toolbar renderer.
60
+ */
61
+ ToolbarComponent?: React.JSXElementConstructor<BaseToolbarProps<TDateValue>>;
62
+ /**
63
+ * Date format, that is displaying in toolbar.
64
+ */
65
+ toolbarFormat?: string;
66
+ /**
67
+ * Mobile picker date value placeholder, displaying if `value` === `null`.
68
+ * @default '–'
69
+ */
70
+ toolbarPlaceholder?: React.ReactNode;
71
+ /**
72
+ * Prop forwarded to the ToolbarComponent.
73
+ */
74
+ toolbarTitle?: React.ReactNode;
75
+ /**
76
+ * The value of the picker.
77
+ */
78
+ value: TInputValue;
79
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,23 @@
1
+ import * as React from 'react';
2
+ import { CalendarOrClockPickerView } from '../views';
3
+ import type { PickerOnChangeFn } from '../../hooks/useViews';
4
+ import type { ExportedCalendarPickerProps } from '../../../CalendarPicker/CalendarPicker';
5
+ import type { ExportedClockPickerProps } from '../../../ClockPicker/ClockPicker';
6
+ export interface BaseToolbarProps<TDate> extends ExportedCalendarPickerProps<TDate>, ExportedClockPickerProps<TDate> {
7
+ ampmInClock?: boolean;
8
+ date: TDate;
9
+ dateRangeIcon?: React.ReactNode;
10
+ getMobileKeyboardInputViewButtonText?: () => string;
11
+ hideTabs?: boolean;
12
+ isLandscape: boolean;
13
+ isMobileKeyboardViewOpen: boolean;
14
+ onChange: PickerOnChangeFn<TDate>;
15
+ openView: CalendarOrClockPickerView;
16
+ setOpenView: (view: CalendarOrClockPickerView) => void;
17
+ timeIcon?: React.ReactNode;
18
+ toggleMobileKeyboardView: () => void;
19
+ toolbarFormat?: string;
20
+ toolbarPlaceholder?: React.ReactNode;
21
+ toolbarTitle?: React.ReactNode;
22
+ views: readonly CalendarOrClockPickerView[];
23
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ export declare type CalendarPickerView = 'year' | 'day' | 'month';
2
+ export declare type ClockPickerView = 'hours' | 'minutes' | 'seconds';
3
+ export declare type CalendarOrClockPickerView = CalendarPickerView | ClockPickerView;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ {
2
+ "sideEffects": false,
3
+ "module": "./index.js",
4
+ "main": "../node/internals/index.js",
5
+ "types": "./index.d.ts"
6
+ }
@@ -0,0 +1,13 @@
1
+ import { MuiPickersAdapter } from '../models';
2
+ interface FindClosestDateParams<TDate> {
3
+ date: TDate;
4
+ disableFuture: boolean;
5
+ disablePast: boolean;
6
+ maxDate: TDate;
7
+ minDate: TDate;
8
+ shouldDisableDate: (date: TDate) => boolean;
9
+ utils: MuiPickersAdapter<TDate>;
10
+ }
11
+ export declare const findClosestEnabledDate: <TDate>({ date, disableFuture, disablePast, maxDate, minDate, shouldDisableDate, utils, }: FindClosestDateParams<TDate>) => TDate;
12
+ export declare const parsePickerInputValue: <TDate>(utils: MuiPickersAdapter<TDate>, value: TDate) => TDate | null;
13
+ export {};
@@ -0,0 +1,67 @@
1
+ export const findClosestEnabledDate = ({
2
+ date,
3
+ disableFuture,
4
+ disablePast,
5
+ maxDate,
6
+ minDate,
7
+ shouldDisableDate,
8
+ utils
9
+ }) => {
10
+ const today = utils.startOfDay(utils.date());
11
+
12
+ if (disablePast && utils.isBefore(minDate, today)) {
13
+ minDate = today;
14
+ }
15
+
16
+ if (disableFuture && utils.isAfter(maxDate, today)) {
17
+ maxDate = today;
18
+ }
19
+
20
+ let forward = date;
21
+ let backward = date;
22
+
23
+ if (utils.isBefore(date, minDate)) {
24
+ forward = utils.date(minDate);
25
+ backward = null;
26
+ }
27
+
28
+ if (utils.isAfter(date, maxDate)) {
29
+ if (backward) {
30
+ backward = utils.date(maxDate);
31
+ }
32
+
33
+ forward = null;
34
+ }
35
+
36
+ while (forward || backward) {
37
+ if (forward && utils.isAfter(forward, maxDate)) {
38
+ forward = null;
39
+ }
40
+
41
+ if (backward && utils.isBefore(backward, minDate)) {
42
+ backward = null;
43
+ }
44
+
45
+ if (forward) {
46
+ if (!shouldDisableDate(forward)) {
47
+ return forward;
48
+ }
49
+
50
+ forward = utils.addDays(forward, 1);
51
+ }
52
+
53
+ if (backward) {
54
+ if (!shouldDisableDate(backward)) {
55
+ return backward;
56
+ }
57
+
58
+ backward = utils.addDays(backward, -1);
59
+ }
60
+ }
61
+
62
+ return today;
63
+ };
64
+ export const parsePickerInputValue = (utils, value) => {
65
+ const parsedValue = utils.date(value);
66
+ return utils.isValid(parsedValue) ? parsedValue : null;
67
+ };
@@ -0,0 +1 @@
1
+ export declare const defaultReduceAnimations: boolean;
@@ -0,0 +1 @@
1
+ export const defaultReduceAnimations = typeof navigator !== 'undefined' && /(android)/i.test(navigator.userAgent);
@@ -0,0 +1,11 @@
1
+ import { ParseableDate } from '../models/parseableDate';
2
+ import { MuiPickersAdapter } from '../models';
3
+ export declare function getTextFieldAriaText<TDate>(rawValue: ParseableDate<TDate>, utils: MuiPickersAdapter<TDate>): string;
4
+ export declare const getDisplayDate: <TDate>(utils: MuiPickersAdapter<TDate>, value: ParseableDate<TDate>, inputFormat: string) => string;
5
+ export declare function pick12hOr24hFormat(userFormat: string | undefined, ampm: boolean | undefined, formats: {
6
+ localized: string;
7
+ '12h': string;
8
+ '24h': string;
9
+ }): string;
10
+ export declare function checkMaskIsValidForCurrentFormat(mask: string, format: string, acceptRegex: RegExp, utils: MuiPickersAdapter<any>): boolean;
11
+ export declare const maskedDateFormatter: (mask: string, acceptRegexp: RegExp) => (value: string) => string;
@@ -0,0 +1,66 @@
1
+ export function getTextFieldAriaText(rawValue, utils) {
2
+ // TODO: should `isValid` narrow `TDate | null` to `NonNullable<TDate>`?
3
+ // Either we allow `TDate | null` to be valid and guard against calling `formatByString` with `null`.
4
+ // Or we ensure `formatByString` is callable with `null`.
5
+ return rawValue && utils.isValid(utils.date(rawValue)) ? `Choose date, selected date is ${utils.format(utils.date(rawValue), 'fullDate')}` : 'Choose date';
6
+ }
7
+ export const getDisplayDate = (utils, value, inputFormat) => {
8
+ const date = utils.date(value);
9
+ const isEmpty = value === null;
10
+
11
+ if (isEmpty) {
12
+ return '';
13
+ }
14
+
15
+ return utils.isValid(date) ? utils.formatByString( // TODO: should `isValid` narrow `TDate | null` to `NonNullable<TDate>`?
16
+ // Either we allow `TDate | null` to be valid and guard against calling `formatByString` with `null`.
17
+ // Or we ensure `formatByString` is callable with `null`.
18
+ date, inputFormat) : '';
19
+ };
20
+ export function pick12hOr24hFormat(userFormat, ampm, formats) {
21
+ if (userFormat) {
22
+ return userFormat;
23
+ }
24
+
25
+ if (typeof ampm === 'undefined') {
26
+ return formats.localized;
27
+ }
28
+
29
+ return ampm ? formats['12h'] : formats['24h'];
30
+ }
31
+ const MASK_USER_INPUT_SYMBOL = '_';
32
+ const staticDateWith2DigitTokens = '2019-11-21T22:30:00.000';
33
+ const staticDateWith1DigitTokens = '2019-01-01T09:00:00.000';
34
+ export function checkMaskIsValidForCurrentFormat(mask, format, acceptRegex, utils) {
35
+ const formattedDateWith1Digit = utils.formatByString(utils.date(staticDateWith1DigitTokens), format);
36
+ const inferredFormatPatternWith1Digits = formattedDateWith1Digit.replace(acceptRegex, MASK_USER_INPUT_SYMBOL);
37
+ const inferredFormatPatternWith2Digits = utils.formatByString(utils.date(staticDateWith2DigitTokens), format).replace(acceptRegex, '_');
38
+ const isMaskValid = inferredFormatPatternWith2Digits === mask && inferredFormatPatternWith1Digits === mask;
39
+
40
+ if (!isMaskValid && utils.lib !== 'luxon' && process.env.NODE_ENV !== 'production') {
41
+ console.warn(`The mask "${mask}" you passed is not valid for the format used ${format}. Falling down to uncontrolled not-masked input.`);
42
+ }
43
+
44
+ return isMaskValid;
45
+ }
46
+ export const maskedDateFormatter = (mask, acceptRegexp) => value => {
47
+ return value.split('').map((char, i) => {
48
+ acceptRegexp.lastIndex = 0;
49
+
50
+ if (i > mask.length - 1) {
51
+ return '';
52
+ }
53
+
54
+ const maskChar = mask[i];
55
+ const nextMaskChar = mask[i + 1];
56
+ const acceptedChar = acceptRegexp.test(char) ? char : '';
57
+ const formattedChar = maskChar === MASK_USER_INPUT_SYMBOL ? acceptedChar : maskChar + acceptedChar;
58
+
59
+ if (i === value.length - 1 && nextMaskChar && nextMaskChar !== MASK_USER_INPUT_SYMBOL) {
60
+ // when cursor at the end of mask part (e.g. month) prerender next symbol "21" -> "21/"
61
+ return formattedChar ? formattedChar + nextMaskChar : '';
62
+ }
63
+
64
+ return formattedChar;
65
+ }).join('');
66
+ };
@@ -0,0 +1,8 @@
1
+ import { MuiPickersAdapter } from '../models';
2
+ declare type Meridiem = 'am' | 'pm' | null;
3
+ export declare const getMeridiem: <TDate>(date: TDate, utils: MuiPickersAdapter<TDate>) => Meridiem;
4
+ export declare const convertValueToMeridiem: (value: number, meridiem: Meridiem, ampm: boolean) => number;
5
+ export declare const convertToMeridiem: <TDate>(time: TDate, meridiem: 'am' | 'pm', ampm: boolean, utils: MuiPickersAdapter<TDate>) => TDate;
6
+ export declare const getSecondsInDay: <TDate>(date: TDate, utils: MuiPickersAdapter<TDate>) => number;
7
+ export declare const createIsAfterIgnoreDatePart: <TDate>(disableIgnoringDatePartForTimeValidation: boolean, utils: MuiPickersAdapter<TDate>) => (dateLeft: TDate, dateRight: TDate) => boolean;
8
+ export {};