@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
package/index.d.ts CHANGED
@@ -36,3 +36,4 @@ export * from './models';
36
36
  export * from './icons';
37
37
  export * from './hooks';
38
38
  export * from './validation';
39
+ export * from './managers';
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-date-pickers v8.0.0-alpha.1
2
+ * @mui/x-date-pickers v8.0.0-alpha.11
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -57,4 +57,5 @@ export { DEFAULT_DESKTOP_MODE_MEDIA_QUERY } from "./internals/utils/utils.js";
57
57
  export * from "./models/index.js";
58
58
  export * from "./icons/index.js";
59
59
  export * from "./hooks/index.js";
60
- export * from "./validation/index.js";
60
+ export * from "./validation/index.js";
61
+ export * from "./managers/index.js";
@@ -0,0 +1,133 @@
1
+ import * as React from 'react';
2
+ import { TextFieldProps } from '@mui/material/TextField';
3
+ import { IconButtonProps } from '@mui/material/IconButton';
4
+ import { InputAdornmentProps } from '@mui/material/InputAdornment';
5
+ import { SvgIconProps } from '@mui/material/SvgIcon';
6
+ import { MakeOptional, SlotComponentPropsFromProps } from '@mui/x-internals/types';
7
+ import { FieldOwnerState } from '../../models';
8
+ import { UseFieldOwnerStateParameters } from '../hooks/useFieldOwnerState';
9
+ import type { UseFieldResponse } from '../hooks/useField';
10
+ import { PickersTextFieldProps } from '../../PickersTextField';
11
+ export declare const cleanFieldResponse: <TFieldResponse extends MakeOptional<UseFieldResponse<any, ExportedPickerFieldUIProps & {
12
+ [key: string]: any;
13
+ }>, "onClear" | "clearable">>({ enableAccessibleFieldDOMStructure, ...fieldResponse }: TFieldResponse) => ExportedPickerFieldUIProps & {
14
+ openPickerAriaLabel: string;
15
+ textFieldProps: TextFieldProps | PickersTextFieldProps;
16
+ };
17
+ /**
18
+ * Adds the button to open the picker and the button to clear the value of the field.
19
+ * @ignore - internal component.
20
+ */
21
+ export declare function PickerFieldUI(props: PickerFieldUIProps): React.JSX.Element;
22
+ export interface ExportedPickerFieldUIProps {
23
+ /**
24
+ * If `true`, a clear button will be shown in the field allowing value clearing.
25
+ * @default false
26
+ */
27
+ clearable?: boolean;
28
+ /**
29
+ * Callback fired when the clear button is clicked.
30
+ */
31
+ onClear?: React.MouseEventHandler;
32
+ /**
33
+ * The position at which the clear button is placed.
34
+ * If the field is not clearable, the button is not rendered.
35
+ * @default 'end'
36
+ */
37
+ clearButtonPosition?: 'start' | 'end';
38
+ /**
39
+ * The position at which the opening button is placed.
40
+ * If there is no picker to open, the button is not rendered
41
+ * @default 'end'
42
+ */
43
+ openPickerButtonPosition?: 'start' | 'end';
44
+ }
45
+ export interface PickerFieldUIProps {
46
+ /**
47
+ * Overridable component slots.
48
+ * @default {}
49
+ */
50
+ slots?: PickerFieldUISlots;
51
+ /**
52
+ * The props used for each component slot.
53
+ * @default {}
54
+ */
55
+ slotProps?: PickerFieldUISlotProps;
56
+ /**
57
+ * Object returned by the `useField` hook or one of its wrapper (for example `useDateField`).
58
+ */
59
+ fieldResponse: UseFieldResponse<any, any>;
60
+ /**
61
+ * The component to use to render the picker opening icon if none is provided in the picker's slots.
62
+ */
63
+ defaultOpenPickerIcon: React.ElementType;
64
+ }
65
+ export interface PickerFieldUISlots {
66
+ /**
67
+ * Form control with an input to render the value.
68
+ * @default <PickersTextField />, or <TextField /> from '@mui/material' if `enableAccessibleFieldDOMStructure` is `false`.
69
+ */
70
+ textField?: React.ElementType;
71
+ /**
72
+ * Component displayed on the start or end input adornment used to open the picker on desktop.
73
+ * @default InputAdornment
74
+ */
75
+ inputAdornment?: React.ElementType<InputAdornmentProps>;
76
+ /**
77
+ * Icon to display inside the clear button.
78
+ * @default ClearIcon
79
+ */
80
+ clearIcon?: React.ElementType;
81
+ /**
82
+ * Button to clear the value.
83
+ * @default IconButton
84
+ */
85
+ clearButton?: React.ElementType;
86
+ }
87
+ export interface PickerFieldUISlotsFromContext extends PickerFieldUISlots {
88
+ /**
89
+ * Button to open the picker on desktop.
90
+ * @default IconButton
91
+ */
92
+ openPickerButton?: React.ElementType<IconButtonProps>;
93
+ /**
94
+ * Icon displayed in the open picker button on desktop.
95
+ */
96
+ openPickerIcon?: React.ElementType;
97
+ }
98
+ export interface PickerFieldUISlotProps {
99
+ textField?: SlotComponentPropsFromProps<PickersTextFieldProps | TextFieldProps, {}, FieldOwnerState>;
100
+ inputAdornment?: SlotComponentPropsFromProps<InputAdornmentProps, {}, FieldInputAdornmentOwnerState>;
101
+ clearIcon?: SlotComponentPropsFromProps<SvgIconProps, {}, FieldOwnerState>;
102
+ clearButton?: SlotComponentPropsFromProps<IconButtonProps, {}, FieldOwnerState>;
103
+ }
104
+ export interface PickerFieldUISlotPropsFromContext extends PickerFieldUISlotProps {
105
+ openPickerButton?: SlotComponentPropsFromProps<IconButtonProps, {}, FieldOwnerState>;
106
+ openPickerIcon?: SlotComponentPropsFromProps<SvgIconProps, {}, FieldOwnerState>;
107
+ }
108
+ interface FieldInputAdornmentOwnerState extends FieldOwnerState {
109
+ position: 'start' | 'end';
110
+ }
111
+ /**
112
+ * The `textField` slot props cannot be handled inside `PickerFieldUI` because it would be a breaking change to not pass the enriched props to `useField`.
113
+ * Once the non-accessible DOM structure will be removed, we will be able to remove the `textField` slot and clean this logic.
114
+ */
115
+ export declare function useFieldTextFieldProps<TProps extends UseFieldOwnerStateParameters & {
116
+ inputProps?: {};
117
+ InputProps?: {};
118
+ }>(parameters: UseFieldTextFieldPropsParameters): TProps;
119
+ interface UseFieldTextFieldPropsParameters {
120
+ slotProps: {
121
+ textField?: SlotComponentPropsFromProps<PickersTextFieldProps | TextFieldProps, {}, FieldOwnerState>;
122
+ } | undefined;
123
+ ref: React.Ref<HTMLDivElement>;
124
+ externalForwardedProps: any;
125
+ }
126
+ export declare function PickerFieldUIContextProvider(props: PickerFieldUIContextProviderProps): React.JSX.Element;
127
+ interface PickerFieldUIContextProviderProps {
128
+ children: React.ReactNode;
129
+ inputRef: React.Ref<HTMLInputElement> | undefined;
130
+ slots: PickerFieldUISlotsFromContext | undefined;
131
+ slotProps: PickerFieldUISlotPropsFromContext | undefined;
132
+ }
133
+ export {};
@@ -0,0 +1,317 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
+ const _excluded = ["enableAccessibleFieldDOMStructure"],
4
+ _excluded2 = ["InputProps", "readOnly", "onClear", "clearable", "clearButtonPosition", "openPickerButtonPosition", "openPickerAriaLabel"],
5
+ _excluded3 = ["onPaste", "onKeyDown", "inputMode", "readOnly", "InputProps", "inputProps", "inputRef", "onClear", "clearable", "clearButtonPosition", "openPickerButtonPosition", "openPickerAriaLabel"],
6
+ _excluded4 = ["ownerState"],
7
+ _excluded5 = ["ownerState"],
8
+ _excluded6 = ["ownerState"],
9
+ _excluded7 = ["ownerState"],
10
+ _excluded8 = ["InputProps", "inputProps"];
11
+ import * as React from 'react';
12
+ import useEventCallback from '@mui/utils/useEventCallback';
13
+ import useForkRef from '@mui/utils/useForkRef';
14
+ import resolveComponentProps from '@mui/utils/resolveComponentProps';
15
+ import MuiTextField from '@mui/material/TextField';
16
+ import MuiIconButton from '@mui/material/IconButton';
17
+ import MuiInputAdornment from '@mui/material/InputAdornment';
18
+ import useSlotProps from '@mui/utils/useSlotProps';
19
+ import { useFieldOwnerState } from "../hooks/useFieldOwnerState.js";
20
+ import { usePickerTranslations } from "../../hooks/index.js";
21
+ import { ClearIcon as MuiClearIcon } from "../../icons/index.js";
22
+ import { useNullablePickerContext } from "../hooks/useNullablePickerContext.js";
23
+ import { PickersTextField } from "../../PickersTextField/index.js";
24
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
25
+ export const cleanFieldResponse = _ref => {
26
+ let {
27
+ enableAccessibleFieldDOMStructure
28
+ } = _ref,
29
+ fieldResponse = _objectWithoutPropertiesLoose(_ref, _excluded);
30
+ if (enableAccessibleFieldDOMStructure) {
31
+ const {
32
+ InputProps,
33
+ readOnly,
34
+ onClear,
35
+ clearable,
36
+ clearButtonPosition,
37
+ openPickerButtonPosition,
38
+ openPickerAriaLabel
39
+ } = fieldResponse,
40
+ other = _objectWithoutPropertiesLoose(fieldResponse, _excluded2);
41
+ return {
42
+ clearable,
43
+ onClear,
44
+ clearButtonPosition,
45
+ openPickerButtonPosition,
46
+ openPickerAriaLabel,
47
+ textFieldProps: _extends({}, other, {
48
+ InputProps: _extends({}, InputProps ?? {}, {
49
+ readOnly
50
+ })
51
+ })
52
+ };
53
+ }
54
+ const {
55
+ onPaste,
56
+ onKeyDown,
57
+ inputMode,
58
+ readOnly,
59
+ InputProps,
60
+ inputProps,
61
+ inputRef,
62
+ onClear,
63
+ clearable,
64
+ clearButtonPosition,
65
+ openPickerButtonPosition,
66
+ openPickerAriaLabel
67
+ } = fieldResponse,
68
+ other = _objectWithoutPropertiesLoose(fieldResponse, _excluded3);
69
+ return {
70
+ clearable,
71
+ onClear,
72
+ clearButtonPosition,
73
+ openPickerButtonPosition,
74
+ openPickerAriaLabel,
75
+ textFieldProps: _extends({}, other, {
76
+ InputProps: _extends({}, InputProps ?? {}, {
77
+ readOnly
78
+ }),
79
+ inputProps: _extends({}, inputProps ?? {}, {
80
+ inputMode,
81
+ onPaste,
82
+ onKeyDown,
83
+ ref: inputRef
84
+ })
85
+ })
86
+ };
87
+ };
88
+ const PickerFieldUIContext = /*#__PURE__*/React.createContext({
89
+ slots: {},
90
+ slotProps: {},
91
+ inputRef: undefined
92
+ });
93
+
94
+ /**
95
+ * Adds the button to open the picker and the button to clear the value of the field.
96
+ * @ignore - internal component.
97
+ */
98
+ export function PickerFieldUI(props) {
99
+ const {
100
+ slots,
101
+ slotProps,
102
+ fieldResponse,
103
+ defaultOpenPickerIcon
104
+ } = props;
105
+ const translations = usePickerTranslations();
106
+ const pickerContext = useNullablePickerContext();
107
+ const pickerFieldUIContext = React.useContext(PickerFieldUIContext);
108
+ const {
109
+ textFieldProps,
110
+ onClear,
111
+ clearable,
112
+ openPickerAriaLabel,
113
+ clearButtonPosition: clearButtonPositionProp = 'end',
114
+ openPickerButtonPosition: openPickerButtonPositionProp = 'end'
115
+ } = cleanFieldResponse(fieldResponse);
116
+ const ownerState = useFieldOwnerState(textFieldProps);
117
+ const handleClickOpeningButton = useEventCallback(event => {
118
+ event.preventDefault();
119
+ pickerContext?.setOpen(prev => !prev);
120
+ });
121
+ const triggerStatus = pickerContext ? pickerContext.triggerStatus : 'hidden';
122
+ const clearButtonPosition = clearable ? clearButtonPositionProp : null;
123
+ const openPickerButtonPosition = triggerStatus !== 'hidden' ? openPickerButtonPositionProp : null;
124
+ const TextField = slots?.textField ?? pickerFieldUIContext.slots.textField ?? (fieldResponse.enableAccessibleFieldDOMStructure === false ? MuiTextField : PickersTextField);
125
+ const InputAdornment = slots?.inputAdornment ?? pickerFieldUIContext.slots.inputAdornment ?? MuiInputAdornment;
126
+ const _useSlotProps = useSlotProps({
127
+ elementType: InputAdornment,
128
+ externalSlotProps: mergeSlotProps(pickerFieldUIContext.slotProps.inputAdornment, slotProps?.inputAdornment),
129
+ additionalProps: {
130
+ position: 'start'
131
+ },
132
+ ownerState: _extends({}, ownerState, {
133
+ position: 'start'
134
+ })
135
+ }),
136
+ startInputAdornmentProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded4);
137
+ const _useSlotProps2 = useSlotProps({
138
+ elementType: InputAdornment,
139
+ externalSlotProps: slotProps?.inputAdornment,
140
+ additionalProps: {
141
+ position: 'end'
142
+ },
143
+ ownerState: _extends({}, ownerState, {
144
+ position: 'end'
145
+ })
146
+ }),
147
+ endInputAdornmentProps = _objectWithoutPropertiesLoose(_useSlotProps2, _excluded5);
148
+ const OpenPickerButton = pickerFieldUIContext.slots.openPickerButton ?? MuiIconButton;
149
+ // We don't want to forward the `ownerState` to the `<IconButton />` component, see mui/material-ui#34056
150
+ const _useSlotProps3 = useSlotProps({
151
+ elementType: OpenPickerButton,
152
+ externalSlotProps: pickerFieldUIContext.slotProps.openPickerButton,
153
+ additionalProps: {
154
+ disabled: triggerStatus === 'disabled',
155
+ onClick: handleClickOpeningButton,
156
+ 'aria-label': openPickerAriaLabel,
157
+ edge: clearButtonPosition === 'start' && openPickerButtonPosition === 'start' ? undefined : openPickerButtonPosition
158
+ },
159
+ ownerState
160
+ }),
161
+ openPickerButtonProps = _objectWithoutPropertiesLoose(_useSlotProps3, _excluded6);
162
+ const OpenPickerIcon = pickerFieldUIContext.slots.openPickerIcon ?? defaultOpenPickerIcon;
163
+ const openPickerIconProps = useSlotProps({
164
+ elementType: OpenPickerIcon,
165
+ externalSlotProps: pickerFieldUIContext.slotProps.openPickerIcon,
166
+ ownerState
167
+ });
168
+ const ClearButton = slots?.clearButton ?? pickerFieldUIContext.slots.clearButton ?? MuiIconButton;
169
+ // We don't want to forward the `ownerState` to the `<IconButton />` component, see mui/material-ui#34056
170
+ const _useSlotProps4 = useSlotProps({
171
+ elementType: ClearButton,
172
+ externalSlotProps: mergeSlotProps(pickerFieldUIContext.slotProps.clearButton, slotProps?.clearButton),
173
+ className: 'clearButton',
174
+ additionalProps: {
175
+ title: translations.fieldClearLabel,
176
+ tabIndex: -1,
177
+ onClick: onClear,
178
+ disabled: fieldResponse.disabled || fieldResponse.readOnly,
179
+ edge: clearButtonPosition === 'end' && openPickerButtonPosition === 'end' ? undefined : clearButtonPosition
180
+ },
181
+ ownerState
182
+ }),
183
+ clearButtonProps = _objectWithoutPropertiesLoose(_useSlotProps4, _excluded7);
184
+ const ClearIcon = slots?.clearIcon ?? pickerFieldUIContext.slots.clearIcon ?? MuiClearIcon;
185
+ const clearIconProps = useSlotProps({
186
+ elementType: ClearIcon,
187
+ externalSlotProps: mergeSlotProps(pickerFieldUIContext.slotProps.clearIcon, slotProps?.clearIcon),
188
+ additionalProps: {
189
+ fontSize: 'small'
190
+ },
191
+ ownerState
192
+ });
193
+ textFieldProps.ref = useForkRef(textFieldProps.ref, pickerContext?.rootRef);
194
+ if (!textFieldProps.InputProps) {
195
+ textFieldProps.InputProps = {};
196
+ }
197
+ if (pickerContext) {
198
+ textFieldProps.InputProps.ref = pickerContext.triggerRef;
199
+ }
200
+ if (!textFieldProps.InputProps?.startAdornment && (clearButtonPosition === 'start' || openPickerButtonPosition === 'start')) {
201
+ textFieldProps.InputProps.startAdornment = /*#__PURE__*/_jsxs(InputAdornment, _extends({}, startInputAdornmentProps, {
202
+ children: [openPickerButtonPosition === 'start' && /*#__PURE__*/_jsx(OpenPickerButton, _extends({}, openPickerButtonProps, {
203
+ children: /*#__PURE__*/_jsx(OpenPickerIcon, _extends({}, openPickerIconProps))
204
+ })), clearButtonPosition === 'start' && /*#__PURE__*/_jsx(ClearButton, _extends({}, clearButtonProps, {
205
+ children: /*#__PURE__*/_jsx(ClearIcon, _extends({}, clearIconProps))
206
+ }))]
207
+ }));
208
+ }
209
+ if (!textFieldProps.InputProps?.endAdornment && (clearButtonPosition === 'end' || openPickerButtonPosition === 'end')) {
210
+ textFieldProps.InputProps.endAdornment = /*#__PURE__*/_jsxs(InputAdornment, _extends({}, endInputAdornmentProps, {
211
+ children: [clearButtonPosition === 'end' && /*#__PURE__*/_jsx(ClearButton, _extends({}, clearButtonProps, {
212
+ children: /*#__PURE__*/_jsx(ClearIcon, _extends({}, clearIconProps))
213
+ })), openPickerButtonPosition === 'end' && /*#__PURE__*/_jsx(OpenPickerButton, _extends({}, openPickerButtonProps, {
214
+ children: /*#__PURE__*/_jsx(OpenPickerIcon, _extends({}, openPickerIconProps))
215
+ }))]
216
+ }));
217
+ }
218
+ if (clearButtonPosition != null) {
219
+ textFieldProps.sx = [{
220
+ '& .clearButton': {
221
+ opacity: 1
222
+ },
223
+ '@media (pointer: fine)': {
224
+ '& .clearButton': {
225
+ opacity: 0
226
+ },
227
+ '&:hover, &:focus-within': {
228
+ '.clearButton': {
229
+ opacity: 1
230
+ }
231
+ }
232
+ }
233
+ }, ...(Array.isArray(textFieldProps.sx) ? textFieldProps.sx : [textFieldProps.sx])];
234
+ }
235
+ return /*#__PURE__*/_jsx(TextField, _extends({}, textFieldProps));
236
+ }
237
+ function mergeSlotProps(slotPropsA, slotPropsB) {
238
+ if (!slotPropsA) {
239
+ return slotPropsB;
240
+ }
241
+ if (!slotPropsB) {
242
+ return slotPropsA;
243
+ }
244
+ return ownerState => {
245
+ return _extends({}, resolveComponentProps(slotPropsB, ownerState), resolveComponentProps(slotPropsA, ownerState));
246
+ };
247
+ }
248
+
249
+ /**
250
+ * The `textField` slot props cannot be handled inside `PickerFieldUI` because it would be a breaking change to not pass the enriched props to `useField`.
251
+ * Once the non-accessible DOM structure will be removed, we will be able to remove the `textField` slot and clean this logic.
252
+ */
253
+ export function useFieldTextFieldProps(parameters) {
254
+ const {
255
+ ref,
256
+ externalForwardedProps,
257
+ slotProps
258
+ } = parameters;
259
+ const pickerFieldUIContext = React.useContext(PickerFieldUIContext);
260
+ const pickerContext = useNullablePickerContext();
261
+ const ownerState = useFieldOwnerState(externalForwardedProps);
262
+ const {
263
+ InputProps,
264
+ inputProps
265
+ } = externalForwardedProps,
266
+ otherExternalForwardedProps = _objectWithoutPropertiesLoose(externalForwardedProps, _excluded8);
267
+ const textFieldProps = useSlotProps({
268
+ elementType: PickersTextField,
269
+ externalSlotProps: mergeSlotProps(pickerFieldUIContext.slotProps.textField, slotProps?.textField),
270
+ externalForwardedProps: otherExternalForwardedProps,
271
+ additionalProps: {
272
+ ref,
273
+ sx: pickerContext?.rootSx,
274
+ label: pickerContext?.label,
275
+ name: pickerContext?.name,
276
+ className: pickerContext?.rootClassName,
277
+ inputRef: pickerFieldUIContext.inputRef
278
+ },
279
+ ownerState
280
+ });
281
+
282
+ // TODO: Remove when mui/material-ui#35088 will be merged
283
+ textFieldProps.inputProps = _extends({}, inputProps, textFieldProps.inputProps);
284
+ textFieldProps.InputProps = _extends({}, InputProps, textFieldProps.InputProps);
285
+ return textFieldProps;
286
+ }
287
+ export function PickerFieldUIContextProvider(props) {
288
+ const {
289
+ slots = {},
290
+ slotProps = {},
291
+ inputRef,
292
+ children
293
+ } = props;
294
+ const contextValue = React.useMemo(() => ({
295
+ inputRef,
296
+ slots: {
297
+ openPickerButton: slots.openPickerButton,
298
+ openPickerIcon: slots.openPickerIcon,
299
+ textField: slots.textField,
300
+ inputAdornment: slots.inputAdornment,
301
+ clearIcon: slots.clearIcon,
302
+ clearButton: slots.clearButton
303
+ },
304
+ slotProps: {
305
+ openPickerButton: slotProps.openPickerButton,
306
+ openPickerIcon: slotProps.openPickerIcon,
307
+ textField: slotProps.textField,
308
+ inputAdornment: slotProps.inputAdornment,
309
+ clearIcon: slotProps.clearIcon,
310
+ clearButton: slotProps.clearButton
311
+ }
312
+ }), [inputRef, slots.openPickerButton, slots.openPickerIcon, slots.textField, slots.inputAdornment, slots.clearIcon, slots.clearButton, slotProps.openPickerButton, slotProps.openPickerIcon, slotProps.textField, slotProps.inputAdornment, slotProps.clearIcon, slotProps.clearButton]);
313
+ return /*#__PURE__*/_jsx(PickerFieldUIContext.Provider, {
314
+ value: contextValue,
315
+ children: children
316
+ });
317
+ }
@@ -1,18 +1,18 @@
1
1
  import * as React from 'react';
2
- import MuiPaper, { PaperProps as MuiPaperProps } from '@mui/material/Paper';
3
- import MuiPopper, { PopperProps as MuiPopperProps, PopperPlacementType } from '@mui/material/Popper';
2
+ import { PaperProps as MuiPaperProps, PaperProps } from '@mui/material/Paper';
3
+ import { PopperProps as MuiPopperProps, PopperPlacementType, PopperProps } from '@mui/material/Popper';
4
4
  import { TrapFocusProps as MuiTrapFocusProps } from '@mui/material/Unstable_TrapFocus';
5
- import { SlotComponentProps } from '@mui/utils';
6
5
  import { TransitionProps as MuiTransitionProps } from '@mui/material/transitions';
7
- import { PickersPopperClasses } from './pickersPopperClasses';
8
- import { UsePickerValueActions } from '../hooks/usePicker/usePickerValue.types';
9
- interface PickersPopperOwnerState extends PickerPopperProps {
10
- placement: PopperPlacementType;
6
+ import { SlotComponentPropsFromProps } from '@mui/x-internals/types';
7
+ import { PickerPopperClasses } from './pickerPopperClasses';
8
+ import { PickerOwnerState } from '../../../models';
9
+ interface PickerPopperOwnerState extends PickerOwnerState {
10
+ popperPlacement: PopperPlacementType;
11
11
  }
12
- export interface PickersPopperSlots {
12
+ export interface PickerPopperSlots {
13
13
  /**
14
14
  * Custom component for the paper rendered inside the desktop picker's Popper.
15
- * @default PickersPopperPaper
15
+ * @default PickerPopperPaper
16
16
  */
17
17
  desktopPaper?: React.JSXElementConstructor<MuiPaperProps>;
18
18
  /**
@@ -31,11 +31,11 @@ export interface PickersPopperSlots {
31
31
  */
32
32
  popper?: React.ElementType<MuiPopperProps>;
33
33
  }
34
- export interface PickersPopperSlotProps {
34
+ export interface PickerPopperSlotProps {
35
35
  /**
36
36
  * Props passed down to the desktop [Paper](https://mui.com/material-ui/api/paper/) component.
37
37
  */
38
- desktopPaper?: SlotComponentProps<typeof MuiPaper, {}, PickersPopperOwnerState>;
38
+ desktopPaper?: SlotComponentPropsFromProps<PaperProps, {}, PickerPopperOwnerState>;
39
39
  /**
40
40
  * Props passed down to the desktop [Transition](https://mui.com/material-ui/transitions/) component.
41
41
  */
@@ -47,24 +47,25 @@ export interface PickersPopperSlotProps {
47
47
  /**
48
48
  * Props passed down to [Popper](https://mui.com/material-ui/api/popper/) component.
49
49
  */
50
- popper?: SlotComponentProps<typeof MuiPopper, {}, PickerPopperProps>;
50
+ popper?: SlotComponentPropsFromProps<PopperProps, {}, PickerPopperOwnerState>;
51
51
  }
52
- export interface PickerPopperProps extends UsePickerValueActions {
53
- role: 'tooltip' | 'dialog';
54
- anchorEl: MuiPopperProps['anchorEl'];
55
- open: MuiPopperProps['open'];
52
+ export interface ExportedPickerPopperProps {
53
+ /**
54
+ * Override or extend the styles applied to the component.
55
+ */
56
+ classes?: Partial<PickerPopperClasses>;
57
+ /**
58
+ * @default "bottom-start"
59
+ */
56
60
  placement?: MuiPopperProps['placement'];
61
+ }
62
+ export interface PickerPopperProps extends ExportedPickerPopperProps {
63
+ role: 'tooltip' | 'dialog';
57
64
  containerRef?: React.Ref<HTMLDivElement>;
58
65
  children?: React.ReactNode;
59
66
  onBlur?: () => void;
60
- slots?: PickersPopperSlots;
61
- slotProps?: PickersPopperSlotProps;
62
- /**
63
- * Override or extend the styles applied to the component.
64
- */
65
- classes?: Partial<PickersPopperClasses>;
66
- shouldRestoreFocus?: () => boolean;
67
- reduceAnimations?: boolean;
67
+ slots?: PickerPopperSlots;
68
+ slotProps?: PickerPopperSlotProps;
68
69
  }
69
- export declare function PickersPopper(inProps: PickerPopperProps): React.JSX.Element;
70
+ export declare function PickerPopper(inProps: PickerPopperProps): React.JSX.Element;
70
71
  export {};