@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
@@ -7,9 +7,10 @@ import * as React from 'react';
7
7
  import PropTypes from 'prop-types';
8
8
  import clsx from 'clsx';
9
9
  import { useRtl } from '@mui/system/RtlProvider';
10
+ import { shouldForwardProp } from '@mui/system/createStyled';
10
11
  import { styled, useThemeProps } from '@mui/material/styles';
11
12
  import { unstable_useForkRef as useForkRef, unstable_composeClasses as composeClasses, unstable_useControlled as useControlled, unstable_useEventCallback as useEventCallback } from '@mui/utils';
12
- import { PickersYear } from "./PickersYear.js";
13
+ import { YearCalendarButton } from "./YearCalendarButton.js";
13
14
  import { useUtils, useNow, useDefaultDates } from "../internals/hooks/useUtils.js";
14
15
  import { getYearCalendarUtilityClass } from "./yearCalendarClasses.js";
15
16
  import { applyDefaultDate } from "../internals/utils/date-utils.js";
@@ -18,7 +19,7 @@ import { SECTION_TYPE_GRANULARITY } from "../internals/utils/getDefaultReference
18
19
  import { useControlledValueWithTimezone } from "../internals/hooks/useValueWithTimezone.js";
19
20
  import { DIALOG_WIDTH, MAX_CALENDAR_HEIGHT } from "../internals/constants/dimensions.js";
20
21
  import { usePickerPrivateContext } from "../internals/hooks/usePickerPrivateContext.js";
21
- import { jsx as _jsx } from "react/jsx-runtime";
22
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
22
23
  const useUtilityClasses = classes => {
23
24
  const slots = {
24
25
  root: ['root']
@@ -37,6 +38,7 @@ function useYearCalendarDefaultizedProps(props, name) {
37
38
  disableFuture: false
38
39
  }, themeProps, {
39
40
  yearsPerRow: themeProps.yearsPerRow ?? 3,
41
+ yearsOrder: themeProps.yearsOrder ?? 'asc',
40
42
  minDate: applyDefaultDate(utils, themeProps.minDate, defaultDates.minDate),
41
43
  maxDate: applyDefaultDate(utils, themeProps.maxDate, defaultDates.maxDate)
42
44
  });
@@ -44,19 +46,43 @@ function useYearCalendarDefaultizedProps(props, name) {
44
46
  const YearCalendarRoot = styled('div', {
45
47
  name: 'MuiYearCalendar',
46
48
  slot: 'Root',
47
- overridesResolver: (props, styles) => styles.root
49
+ shouldForwardProp: prop => shouldForwardProp(prop) && prop !== 'yearsPerRow'
48
50
  })({
49
51
  display: 'flex',
50
- flexDirection: 'row',
51
52
  flexWrap: 'wrap',
53
+ justifyContent: 'space-evenly',
54
+ rowGap: 12,
55
+ padding: '6px 0',
52
56
  overflowY: 'auto',
53
57
  height: '100%',
54
- padding: '0 4px',
55
58
  width: DIALOG_WIDTH,
56
59
  maxHeight: MAX_CALENDAR_HEIGHT,
57
60
  // avoid padding increasing width over defined
58
61
  boxSizing: 'border-box',
59
- position: 'relative'
62
+ position: 'relative',
63
+ variants: [{
64
+ props: {
65
+ yearsPerRow: 3
66
+ },
67
+ style: {
68
+ columnGap: 24
69
+ }
70
+ }, {
71
+ props: {
72
+ yearsPerRow: 4
73
+ },
74
+ style: {
75
+ columnGap: 0,
76
+ padding: '0 2px'
77
+ }
78
+ }]
79
+ });
80
+ const YearCalendarButtonFiller = styled('div', {
81
+ name: 'MuiYearCalendar',
82
+ slot: 'ButtonFiller'
83
+ })({
84
+ height: 36,
85
+ width: 72
60
86
  });
61
87
  /**
62
88
  * Demos:
@@ -87,7 +113,7 @@ export const YearCalendar = /*#__PURE__*/React.forwardRef(function YearCalendar(
87
113
  onYearFocus,
88
114
  hasFocus,
89
115
  onFocusedViewChange,
90
- yearsOrder = 'asc',
116
+ yearsOrder,
91
117
  yearsPerRow,
92
118
  timezone: timezoneProp,
93
119
  gridLabelId,
@@ -239,18 +265,23 @@ export const YearCalendar = /*#__PURE__*/React.forwardRef(function YearCalendar(
239
265
  if (yearsOrder === 'desc') {
240
266
  yearRange.reverse();
241
267
  }
242
- return /*#__PURE__*/_jsx(YearCalendarRoot, _extends({
268
+ let fillerAmount = yearsPerRow - yearRange.length % yearsPerRow;
269
+ if (fillerAmount === yearsPerRow) {
270
+ fillerAmount = 0;
271
+ }
272
+ return /*#__PURE__*/_jsxs(YearCalendarRoot, _extends({
243
273
  ref: handleRef,
244
274
  className: clsx(classes.root, className),
245
275
  ownerState: ownerState,
246
276
  role: "radiogroup",
247
- "aria-labelledby": gridLabelId
277
+ "aria-labelledby": gridLabelId,
278
+ yearsPerRow: yearsPerRow
248
279
  }, other, {
249
- children: yearRange.map(year => {
280
+ children: [yearRange.map(year => {
250
281
  const yearNumber = utils.getYear(year);
251
282
  const isSelected = yearNumber === selectedYear;
252
283
  const isDisabled = disabled || isYearDisabled(year);
253
- return /*#__PURE__*/_jsx(PickersYear, {
284
+ return /*#__PURE__*/_jsx(YearCalendarButton, {
254
285
  selected: isSelected,
255
286
  value: yearNumber,
256
287
  onClick: handleYearSelection,
@@ -261,12 +292,14 @@ export const YearCalendar = /*#__PURE__*/React.forwardRef(function YearCalendar(
261
292
  onFocus: handleYearFocus,
262
293
  onBlur: handleYearBlur,
263
294
  "aria-current": todayYear === yearNumber ? 'date' : undefined,
264
- yearsPerRow: yearsPerRow,
265
295
  slots: slots,
266
296
  slotProps: slotProps,
297
+ classes: classesProp,
267
298
  children: utils.format(year, 'year')
268
299
  }, utils.format(year, 'year'));
269
- })
300
+ }), Array.from({
301
+ length: fillerAmount
302
+ }, (_, index) => /*#__PURE__*/_jsx(YearCalendarButtonFiller, {}, index))]
270
303
  }));
271
304
  });
272
305
  process.env.NODE_ENV !== "production" ? YearCalendar.propTypes = {
@@ -6,7 +6,7 @@ import { YearCalendarClasses } from './yearCalendarClasses';
6
6
  import { BaseDateValidationProps, YearValidationProps } from '../internals/models/validation';
7
7
  import { PickerOwnerState, PickerValidDate, TimezoneProps } from '../models';
8
8
  import { FormProps } from '../internals/models/formProps';
9
- export interface PickerYearOwnerState extends PickerOwnerState {
9
+ export interface YearButtonOwnerState extends PickerOwnerState {
10
10
  isYearSelected: boolean;
11
11
  isYearDisabled: boolean;
12
12
  }
@@ -20,7 +20,7 @@ export interface YearCalendarSlots {
20
20
  export interface YearCalendarSlotProps {
21
21
  yearButton?: SlotComponentPropsFromProps<React.HTMLAttributes<HTMLButtonElement> & {
22
22
  sx: SxProps;
23
- }, {}, PickerYearOwnerState>;
23
+ }, {}, YearButtonOwnerState>;
24
24
  }
25
25
  export interface ExportedYearCalendarProps {
26
26
  /**
@@ -0,0 +1,23 @@
1
+ import * as React from 'react';
2
+ import { YearCalendarSlotProps, YearCalendarSlots } from './YearCalendar.types';
3
+ import { YearCalendarClasses } from './yearCalendarClasses';
4
+ export interface YearCalendarButtonProps {
5
+ value: number;
6
+ tabIndex: number;
7
+ selected: boolean;
8
+ disabled: boolean;
9
+ autoFocus: boolean;
10
+ classes: Partial<YearCalendarClasses> | undefined;
11
+ slots: YearCalendarSlots | undefined;
12
+ slotProps: YearCalendarSlotProps | undefined;
13
+ 'aria-current': React.AriaAttributes['aria-current'];
14
+ children: React.ReactNode;
15
+ onClick: (event: React.MouseEvent, year: number) => void;
16
+ onKeyDown: (event: React.KeyboardEvent, year: number) => void;
17
+ onFocus: (event: React.FocusEvent, year: number) => void;
18
+ onBlur: (event: React.FocusEvent, year: number) => void;
19
+ }
20
+ /**
21
+ * @ignore - internal component.
22
+ */
23
+ export declare const YearCalendarButton: React.NamedExoticComponent<YearCalendarButtonProps>;
@@ -1,47 +1,27 @@
1
1
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
2
  import _extends from "@babel/runtime/helpers/esm/extends";
3
- const _excluded = ["autoFocus", "className", "classes", "children", "disabled", "selected", "value", "tabIndex", "onClick", "onKeyDown", "onFocus", "onBlur", "aria-current", "yearsPerRow", "slots", "slotProps"];
3
+ const _excluded = ["autoFocus", "classes", "disabled", "selected", "value", "onClick", "onKeyDown", "onFocus", "onBlur", "slots", "slotProps"];
4
4
  import * as React from 'react';
5
- import clsx from 'clsx';
6
- import { styled, alpha, useThemeProps } from '@mui/material/styles';
5
+ import { styled, alpha } from '@mui/material/styles';
7
6
  import useSlotProps from '@mui/utils/useSlotProps';
8
7
  import composeClasses from '@mui/utils/composeClasses';
9
8
  import useEnhancedEffect from '@mui/utils/useEnhancedEffect';
10
- import { getPickersYearUtilityClass, pickersYearClasses } from "./pickersYearClasses.js";
11
9
  import { usePickerPrivateContext } from "../internals/hooks/usePickerPrivateContext.js";
10
+ import { getYearCalendarUtilityClass, yearCalendarClasses } from "./yearCalendarClasses.js";
12
11
  import { jsx as _jsx } from "react/jsx-runtime";
13
12
  const useUtilityClasses = (classes, ownerState) => {
14
13
  const slots = {
15
- root: ['root'],
16
- yearButton: ['yearButton', ownerState.isYearDisabled && 'disabled', ownerState.isYearSelected && 'selected']
14
+ button: ['button', ownerState.isYearDisabled && 'disabled', ownerState.isYearSelected && 'selected']
17
15
  };
18
- return composeClasses(slots, getPickersYearUtilityClass, classes);
16
+ return composeClasses(slots, getYearCalendarUtilityClass, classes);
19
17
  };
20
- const PickersYearRoot = styled('div', {
21
- name: 'MuiPickersYear',
22
- slot: 'Root',
23
- overridesResolver: (_, styles) => [styles.root]
24
- })({
25
- display: 'flex',
26
- alignItems: 'center',
27
- justifyContent: 'center',
28
- flexBasis: '33.3%',
29
- variants: [{
30
- props: {
31
- yearsPerRow: 4
32
- },
33
- style: {
34
- flexBasis: '25%'
35
- }
36
- }]
37
- });
38
- const YearCalendarButton = styled('button', {
39
- name: 'MuiPickersYear',
40
- slot: 'YearButton',
41
- overridesResolver: (_, styles) => [styles.yearButton, {
42
- [`&.${pickersYearClasses.disabled}`]: styles.disabled
18
+ const DefaultYearButton = styled('button', {
19
+ name: 'MuiYearCalendar',
20
+ slot: 'Button',
21
+ overridesResolver: (_, styles) => [styles.button, {
22
+ [`&.${yearCalendarClasses.disabled}`]: styles.disabled
43
23
  }, {
44
- [`&.${pickersYearClasses.selected}`]: styles.selected
24
+ [`&.${yearCalendarClasses.selected}`]: styles.selected
45
25
  }]
46
26
  })(({
47
27
  theme
@@ -51,7 +31,6 @@ const YearCalendarButton = styled('button', {
51
31
  border: 0,
52
32
  outline: 0
53
33
  }, theme.typography.subtitle1, {
54
- margin: '6px 0',
55
34
  height: 36,
56
35
  width: 72,
57
36
  borderRadius: 18,
@@ -66,10 +45,10 @@ const YearCalendarButton = styled('button', {
66
45
  cursor: 'auto',
67
46
  pointerEvents: 'none'
68
47
  },
69
- [`&.${pickersYearClasses.disabled}`]: {
48
+ [`&.${yearCalendarClasses.disabled}`]: {
70
49
  color: (theme.vars || theme).palette.text.secondary
71
50
  },
72
- [`&.${pickersYearClasses.selected}`]: {
51
+ [`&.${yearCalendarClasses.selected}`]: {
73
52
  color: (theme.vars || theme).palette.primary.contrastText,
74
53
  backgroundColor: (theme.vars || theme).palette.primary.main,
75
54
  '&:focus, &:hover': {
@@ -81,28 +60,17 @@ const YearCalendarButton = styled('button', {
81
60
  /**
82
61
  * @ignore - internal component.
83
62
  */
84
- export const PickersYear = /*#__PURE__*/React.memo(function PickersYear(inProps) {
85
- const props = useThemeProps({
86
- props: inProps,
87
- name: 'MuiPickersYear'
88
- });
63
+ export const YearCalendarButton = /*#__PURE__*/React.memo(function YearCalendarButton(props) {
89
64
  const {
90
65
  autoFocus,
91
- className,
92
66
  classes: classesProp,
93
- children,
94
- disabled = false,
95
- selected = false,
67
+ disabled,
68
+ selected,
96
69
  value,
97
- tabIndex,
98
70
  onClick,
99
71
  onKeyDown,
100
72
  onFocus,
101
73
  onBlur,
102
- 'aria-current': ariaCurrent
103
- // We don't want to forward this prop to the root element
104
- ,
105
-
106
74
  slots,
107
75
  slotProps
108
76
  } = props,
@@ -124,18 +92,16 @@ export const PickersYear = /*#__PURE__*/React.memo(function PickersYear(inProps)
124
92
  ref.current?.focus();
125
93
  }
126
94
  }, [autoFocus]);
127
- const YearButton = slots?.yearButton ?? YearCalendarButton;
95
+ const YearButton = slots?.yearButton ?? DefaultYearButton;
128
96
  const yearButtonProps = useSlotProps({
129
97
  elementType: YearButton,
130
98
  externalSlotProps: slotProps?.yearButton,
99
+ externalForwardedProps: other,
131
100
  additionalProps: {
132
- children,
133
101
  disabled,
134
- tabIndex,
135
102
  ref,
136
103
  type: 'button',
137
104
  role: 'radio',
138
- 'aria-current': ariaCurrent,
139
105
  'aria-checked': selected,
140
106
  onClick: event => onClick(event, value),
141
107
  onKeyDown: event => onKeyDown(event, value),
@@ -143,12 +109,7 @@ export const PickersYear = /*#__PURE__*/React.memo(function PickersYear(inProps)
143
109
  onBlur: event => onBlur(event, value)
144
110
  },
145
111
  ownerState,
146
- className: classes.yearButton
112
+ className: classes.button
147
113
  });
148
- return /*#__PURE__*/_jsx(PickersYearRoot, _extends({
149
- className: clsx(classes.root, className),
150
- ownerState: ownerState
151
- }, other, {
152
- children: /*#__PURE__*/_jsx(YearButton, _extends({}, yearButtonProps))
153
- }));
114
+ return /*#__PURE__*/_jsx(YearButton, _extends({}, yearButtonProps));
154
115
  });
@@ -2,6 +2,3 @@ export { YearCalendar } from './YearCalendar';
2
2
  export type { YearCalendarProps, YearCalendarSlots, YearCalendarSlotProps, } from './YearCalendar.types';
3
3
  export { yearCalendarClasses, getYearCalendarUtilityClass } from './yearCalendarClasses';
4
4
  export type { YearCalendarClasses, YearCalendarClassKey } from './yearCalendarClasses';
5
- export { pickersYearClasses } from './pickersYearClasses';
6
- export type { PickersYearClasses, PickersYearClassKey } from './pickersYearClasses';
7
- export type { ExportedPickersYearProps } from './PickersYear';
@@ -1,3 +1,2 @@
1
1
  export { YearCalendar } from "./YearCalendar.js";
2
- export { yearCalendarClasses, getYearCalendarUtilityClass } from "./yearCalendarClasses.js";
3
- export { pickersYearClasses } from "./pickersYearClasses.js";
2
+ export { yearCalendarClasses, getYearCalendarUtilityClass } from "./yearCalendarClasses.js";
@@ -1,7 +1,13 @@
1
1
  export interface YearCalendarClasses {
2
2
  /** Styles applied to the root element. */
3
3
  root: string;
4
+ /** Styles applied to the button element that represents a single year */
5
+ button: string;
6
+ /** Styles applied to a disabled button element. */
7
+ disabled: string;
8
+ /** Styles applied to a selected button element. */
9
+ selected: string;
4
10
  }
5
11
  export type YearCalendarClassKey = keyof YearCalendarClasses;
6
12
  export declare function getYearCalendarUtilityClass(slot: string): string;
7
- export declare const yearCalendarClasses: Record<"root", string>;
13
+ export declare const yearCalendarClasses: Record<"button" | "disabled" | "selected" | "root", string>;
@@ -2,4 +2,4 @@ import { unstable_generateUtilityClass as generateUtilityClass, unstable_generat
2
2
  export function getYearCalendarUtilityClass(slot) {
3
3
  return generateUtilityClass('MuiYearCalendar', slot);
4
4
  }
5
- export const yearCalendarClasses = generateUtilityClasses('MuiYearCalendar', ['root']);
5
+ export const yearCalendarClasses = generateUtilityClasses('MuiYearCalendar', ['root', 'button', 'disabled', 'selected']);
package/hooks/index.d.ts CHANGED
@@ -4,3 +4,5 @@ export { usePickerTranslations } from './usePickerTranslations';
4
4
  export { useSplitFieldProps } from './useSplitFieldProps';
5
5
  export { useParsedFormat } from './useParsedFormat';
6
6
  export { usePickerContext } from './usePickerContext';
7
+ export { usePickerActionsContext } from './usePickerActionsContext';
8
+ export { useIsValidValue } from './useIsValidValue';
package/hooks/index.js CHANGED
@@ -2,4 +2,6 @@ export { useClearableField } from "./useClearableField.js";
2
2
  export { usePickerTranslations } from "./usePickerTranslations.js";
3
3
  export { useSplitFieldProps } from "./useSplitFieldProps.js";
4
4
  export { useParsedFormat } from "./useParsedFormat.js";
5
- export { usePickerContext } from "./usePickerContext.js";
5
+ export { usePickerContext } from "./usePickerContext.js";
6
+ export { usePickerActionsContext } from "./usePickerActionsContext.js";
7
+ export { useIsValidValue } from "./useIsValidValue.js";
@@ -3,6 +3,8 @@ import { SlotComponentProps } from '@mui/utils';
3
3
  import MuiIconButton from '@mui/material/IconButton';
4
4
  import { SxProps } from '@mui/system';
5
5
  import { ClearIcon } from '../icons';
6
+ import { FieldOwnerState } from '../models/fields';
7
+ import { FormProps } from '../internals/models';
6
8
  export interface ExportedUseClearableFieldProps {
7
9
  /**
8
10
  * If `true`, a clear button will be shown in the field allowing value clearing.
@@ -27,10 +29,10 @@ export interface UseClearableFieldSlots {
27
29
  clearButton?: React.ElementType;
28
30
  }
29
31
  export interface UseClearableFieldSlotProps {
30
- clearIcon?: SlotComponentProps<typeof ClearIcon, {}, {}>;
31
- clearButton?: SlotComponentProps<typeof MuiIconButton, {}, {}>;
32
+ clearIcon?: SlotComponentProps<typeof ClearIcon, {}, FieldOwnerState>;
33
+ clearButton?: SlotComponentProps<typeof MuiIconButton, {}, FieldOwnerState>;
32
34
  }
33
- interface UseClearableFieldProps extends ExportedUseClearableFieldProps {
35
+ interface UseClearableFieldProps extends ExportedUseClearableFieldProps, FormProps {
34
36
  InputProps?: {
35
37
  endAdornment?: React.ReactNode;
36
38
  };
@@ -10,9 +10,11 @@ import MuiIconButton from '@mui/material/IconButton';
10
10
  import InputAdornment from '@mui/material/InputAdornment';
11
11
  import { ClearIcon } from "../icons/index.js";
12
12
  import { usePickerTranslations } from "./usePickerTranslations.js";
13
+ import { useFieldOwnerState } from "../internals/hooks/useFieldOwnerState.js";
13
14
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
15
  export const useClearableField = props => {
15
16
  const translations = usePickerTranslations();
17
+ const ownerState = useFieldOwnerState(props);
16
18
  const {
17
19
  clearable,
18
20
  onClear,
@@ -27,7 +29,7 @@ export const useClearableField = props => {
27
29
  const _useSlotProps = useSlotProps({
28
30
  elementType: IconButton,
29
31
  externalSlotProps: slotProps?.clearButton,
30
- ownerState: {},
32
+ ownerState,
31
33
  className: 'clearButton',
32
34
  additionalProps: {
33
35
  title: translations.fieldClearLabel,
@@ -39,7 +41,7 @@ export const useClearableField = props => {
39
41
  const endClearIconProps = useSlotProps({
40
42
  elementType: EndClearIcon,
41
43
  externalSlotProps: slotProps?.clearIcon,
42
- ownerState: {}
44
+ ownerState
43
45
  });
44
46
  return _extends({}, other, {
45
47
  InputProps: _extends({}, InputProps, {
@@ -0,0 +1,7 @@
1
+ import * as React from 'react';
2
+ import { PickerValidValue } from '../internals/models';
3
+ export declare const IsValidValueContext: React.Context<(value: any) => boolean>;
4
+ /**
5
+ * Returns a function to check if a value is valid according to the validation props passed to the parent picker.
6
+ */
7
+ export declare function useIsValidValue<TValue extends PickerValidValue>(): (value: TValue) => boolean;
@@ -0,0 +1,11 @@
1
+ 'use client';
2
+
3
+ import * as React from 'react';
4
+ export const IsValidValueContext = /*#__PURE__*/React.createContext(() => true);
5
+
6
+ /**
7
+ * Returns a function to check if a value is valid according to the validation props passed to the parent picker.
8
+ */
9
+ export function useIsValidValue() {
10
+ return React.useContext(IsValidValueContext);
11
+ }
@@ -1,14 +1,16 @@
1
- import type { UseFieldInternalProps } from '../internals/hooks/useField';
2
- interface UseParsedFormatParameters extends Pick<UseFieldInternalProps<any, any, any, any>, 'format' | 'formatDensity' | 'shouldRespectLeadingZeros'> {
1
+ interface UseParsedFormatParameters {
2
+ /**
3
+ * Format to parse.
4
+ * @default the format provided by the picker.
5
+ */
6
+ format?: string;
3
7
  }
4
8
  /**
5
9
  * Returns the parsed format to be rendered in the field when there is no value or in other parts of the Picker.
6
- * This format is localized (e.g: `AAAA` for the year with the French locale) and cannot be parsed by your date library.
10
+ * This format is localized (for example `AAAA` for the year with the French locale) and cannot be parsed by your date library.
7
11
  * @param {object} The parameters needed to build the placeholder.
8
- * @param {string} params.format Format of the date to use.
9
- * @param {'dense' | 'spacious'} params.formatDensity Density of the format (setting `formatDensity` to `"spacious"` will add a space before and after each `/`, `-` and `.` character).
10
- * @param {boolean} params.shouldRespectLeadingZeros If `true`, the format will respect the leading zeroes, if `false`, the format will always add leading zeroes.
12
+ * @param {string} params.format Format to parse.
11
13
  * @returns
12
14
  */
13
- export declare const useParsedFormat: (parameters: UseParsedFormatParameters) => string;
15
+ export declare const useParsedFormat: (parameters?: UseParsedFormatParameters) => string;
14
16
  export {};
@@ -6,32 +6,30 @@ import { useUtils } from "../internals/hooks/useUtils.js";
6
6
  import { buildSectionsFromFormat } from "../internals/hooks/useField/buildSectionsFromFormat.js";
7
7
  import { getLocalizedDigits } from "../internals/hooks/useField/useField.utils.js";
8
8
  import { usePickerTranslations } from "./usePickerTranslations.js";
9
+ import { useNullablePickerContext } from "../internals/hooks/useNullablePickerContext.js";
9
10
  /**
10
11
  * Returns the parsed format to be rendered in the field when there is no value or in other parts of the Picker.
11
- * This format is localized (e.g: `AAAA` for the year with the French locale) and cannot be parsed by your date library.
12
+ * This format is localized (for example `AAAA` for the year with the French locale) and cannot be parsed by your date library.
12
13
  * @param {object} The parameters needed to build the placeholder.
13
- * @param {string} params.format Format of the date to use.
14
- * @param {'dense' | 'spacious'} params.formatDensity Density of the format (setting `formatDensity` to `"spacious"` will add a space before and after each `/`, `-` and `.` character).
15
- * @param {boolean} params.shouldRespectLeadingZeros If `true`, the format will respect the leading zeroes, if `false`, the format will always add leading zeroes.
14
+ * @param {string} params.format Format to parse.
16
15
  * @returns
17
16
  */
18
- export const useParsedFormat = parameters => {
19
- const {
20
- format,
21
- formatDensity = 'dense',
22
- shouldRespectLeadingZeros = false
23
- } = parameters;
17
+ export const useParsedFormat = (parameters = {}) => {
18
+ const pickerContext = useNullablePickerContext();
24
19
  const utils = useUtils();
25
20
  const isRtl = useRtl();
26
21
  const translations = usePickerTranslations();
27
22
  const localizedDigits = React.useMemo(() => getLocalizedDigits(utils), [utils]);
23
+ const {
24
+ format = pickerContext?.fieldFormat ?? utils.formats.fullDate
25
+ } = parameters;
28
26
  return React.useMemo(() => {
29
27
  const sections = buildSectionsFromFormat({
30
28
  utils,
31
29
  format,
32
- formatDensity,
30
+ formatDensity: 'dense',
33
31
  isRtl,
34
- shouldRespectLeadingZeros,
32
+ shouldRespectLeadingZeros: true,
35
33
  localeText: translations,
36
34
  localizedDigits,
37
35
  date: null,
@@ -39,5 +37,5 @@ export const useParsedFormat = parameters => {
39
37
  enableAccessibleFieldDOMStructure: false
40
38
  });
41
39
  return sections.map(section => `${section.startSeparator}${section.placeholder}${section.endSeparator}`).join('');
42
- }, [utils, isRtl, translations, localizedDigits, format, formatDensity, shouldRespectLeadingZeros]);
40
+ }, [utils, isRtl, translations, localizedDigits, format]);
43
41
  };
@@ -0,0 +1,7 @@
1
+ import { PickerActionsContextValue } from '../internals/components/PickerProvider';
2
+ import { DateOrTimeViewWithMeridiem, PickerValidValue, PickerValue } from '../internals/models';
3
+ /**
4
+ * Returns a subset of the context passed by the picker wrapping the current component.
5
+ * It only contains the actions and never causes a re-render of the component using it.
6
+ */
7
+ export declare const usePickerActionsContext: <TValue extends PickerValidValue = PickerValue, TView extends DateOrTimeViewWithMeridiem = DateOrTimeViewWithMeridiem, TError = string | null>() => PickerActionsContextValue<TValue, TView, TError>;
@@ -0,0 +1,15 @@
1
+ 'use client';
2
+
3
+ import * as React from 'react';
4
+ import { PickerActionsContext } from "../internals/components/PickerProvider.js";
5
+ /**
6
+ * Returns a subset of the context passed by the picker wrapping the current component.
7
+ * It only contains the actions and never causes a re-render of the component using it.
8
+ */
9
+ export const usePickerActionsContext = () => {
10
+ const value = React.useContext(PickerActionsContext);
11
+ if (value == null) {
12
+ throw new Error(['MUI X: The `usePickerActionsContext` can only be called in fields that are used as a slot of a picker component'].join('\n'));
13
+ }
14
+ return value;
15
+ };
@@ -1,4 +1,8 @@
1
+ import * as React from 'react';
2
+ import type { PickerContextValue } from '../internals/components/PickerProvider';
3
+ import { DateOrTimeViewWithMeridiem, PickerValidValue, PickerValue } from '../internals/models';
4
+ export declare const PickerContext: React.Context<PickerContextValue<any, any, any> | null>;
1
5
  /**
2
6
  * Returns the context passed by the picker that wraps the current component.
3
7
  */
4
- export declare const usePickerContext: () => import("../internals/components/PickerProvider").PickerContextValue;
8
+ export declare const usePickerContext: <TValue extends PickerValidValue = PickerValue, TView extends DateOrTimeViewWithMeridiem = DateOrTimeViewWithMeridiem, TError = string | null>() => PickerContextValue<TValue, TView, TError>;
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
 
3
3
  import * as React from 'react';
4
- import { PickerContext } from "../internals/components/PickerProvider.js";
4
+ export const PickerContext = /*#__PURE__*/React.createContext(null);
5
5
 
6
6
  /**
7
7
  * Returns the context passed by the picker that wraps the current component.
@@ -9,7 +9,7 @@ import { PickerContext } from "../internals/components/PickerProvider.js";
9
9
  export const usePickerContext = () => {
10
10
  const value = React.useContext(PickerContext);
11
11
  if (value == null) {
12
- throw new Error(['MUI X: The `usePickerContext` can only be called in fields that are used as a slot of a picker component'].join('\n'));
12
+ throw new Error('MUI X: The `usePickerContext` hook can only be called inside the context of a picker component');
13
13
  }
14
14
  return value;
15
15
  };
@@ -1,19 +1,28 @@
1
1
  import { DATE_TIME_VALIDATION_PROP_NAMES, DATE_VALIDATION_PROP_NAMES, TIME_VALIDATION_PROP_NAMES } from '../validation/extractValidationProps';
2
2
  import { PickerValueType } from '../models/common';
3
- declare const SHARED_FIELD_INTERNAL_PROP_NAMES: readonly ["value", "defaultValue", "referenceDate", "format", "formatDensity", "onChange", "timezone", "onError", "shouldRespectLeadingZeros", "selectedSections", "onSelectedSectionsChange", "unstableFieldRef", "enableAccessibleFieldDOMStructure", "disabled", "readOnly", "dateSeparator"];
3
+ declare const SHARED_FIELD_INTERNAL_PROP_NAMES: readonly ["value", "defaultValue", "referenceDate", "format", "formatDensity", "onChange", "timezone", "onError", "shouldRespectLeadingZeros", "selectedSections", "onSelectedSectionsChange", "unstableFieldRef", "unstableStartFieldRef", "unstableEndFieldRef", "enableAccessibleFieldDOMStructure", "disabled", "readOnly", "dateSeparator", "autoFocus"];
4
4
  type InternalPropNames<TValueType extends PickerValueType> = (typeof SHARED_FIELD_INTERNAL_PROP_NAMES)[number] | (TValueType extends 'date' | 'date-time' ? (typeof DATE_VALIDATION_PROP_NAMES)[number] : never) | (TValueType extends 'time' | 'date-time' ? (typeof TIME_VALIDATION_PROP_NAMES)[number] : never) | (TValueType extends 'date-time' ? (typeof DATE_TIME_VALIDATION_PROP_NAMES)[number] : never);
5
5
  /**
6
6
  * Split the props received by the field component into:
7
7
  * - `internalProps` which are used by the various hooks called by the field component.
8
8
  * - `forwardedProps` which are passed to the underlying component.
9
9
  * Note that some forwarded props might be used by the hooks as well.
10
- * For instance, hooks like `useDateField` need props like `autoFocus` to know how to behave.
10
+ * For instance, hooks like `useDateField` need props like `onKeyDown` to merge the default event handler and the one provided by the application.
11
11
  * @template TProps, TValueType
12
12
  * @param {TProps} props The props received by the field component.
13
13
  * @param {TValueType} valueType The type of the field value ('date', 'time', or 'date-time').
14
14
  */
15
15
  export declare const useSplitFieldProps: <TValueType extends PickerValueType, TProps extends { [key in InternalPropNames<TValueType>]?: any; }>(props: TProps, valueType: TValueType) => {
16
16
  forwardedProps: Omit<TProps, InternalPropNames<TValueType>>;
17
- internalProps: Pick<TProps, InternalPropNames<TValueType>>;
17
+ internalProps: ExtractInternalProps<TValueType, TProps>;
18
+ };
19
+ /**
20
+ * Extract the internal props from the props received by the field component.
21
+ * This makes sure that the internal props not defined in the props are not present in the result.
22
+ */
23
+ type ExtractInternalProps<TValueType extends PickerValueType, TProps extends {
24
+ [key in InternalPropNames<TValueType>]?: any;
25
+ }> = {
26
+ [K in keyof TProps]: K extends InternalPropNames<TValueType> ? TProps[K] : never;
18
27
  };
19
28
  export {};
@@ -3,13 +3,13 @@
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import * as React from 'react';
5
5
  import { DATE_TIME_VALIDATION_PROP_NAMES, DATE_VALIDATION_PROP_NAMES, TIME_VALIDATION_PROP_NAMES } from "../validation/extractValidationProps.js";
6
- const SHARED_FIELD_INTERNAL_PROP_NAMES = ['value', 'defaultValue', 'referenceDate', 'format', 'formatDensity', 'onChange', 'timezone', 'onError', 'shouldRespectLeadingZeros', 'selectedSections', 'onSelectedSectionsChange', 'unstableFieldRef', 'enableAccessibleFieldDOMStructure', 'disabled', 'readOnly', 'dateSeparator'];
6
+ const SHARED_FIELD_INTERNAL_PROP_NAMES = ['value', 'defaultValue', 'referenceDate', 'format', 'formatDensity', 'onChange', 'timezone', 'onError', 'shouldRespectLeadingZeros', 'selectedSections', 'onSelectedSectionsChange', 'unstableFieldRef', 'unstableStartFieldRef', 'unstableEndFieldRef', 'enableAccessibleFieldDOMStructure', 'disabled', 'readOnly', 'dateSeparator', 'autoFocus'];
7
7
  /**
8
8
  * Split the props received by the field component into:
9
9
  * - `internalProps` which are used by the various hooks called by the field component.
10
10
  * - `forwardedProps` which are passed to the underlying component.
11
11
  * Note that some forwarded props might be used by the hooks as well.
12
- * For instance, hooks like `useDateField` need props like `autoFocus` to know how to behave.
12
+ * For instance, hooks like `useDateField` need props like `onKeyDown` to merge the default event handler and the one provided by the application.
13
13
  * @template TProps, TValueType
14
14
  * @param {TProps} props The props received by the field component.
15
15
  * @param {TValueType} valueType The type of the field value ('date', 'time', or 'date-time').
@@ -40,4 +40,9 @@ export const useSplitFieldProps = (props, valueType) => {
40
40
  internalProps
41
41
  };
42
42
  }, [props, valueType]);
43
- };
43
+ };
44
+
45
+ /**
46
+ * Extract the internal props from the props received by the field component.
47
+ * This makes sure that the internal props not defined in the props are not present in the result.
48
+ */