@mui/x-date-pickers 8.0.0-alpha.6 → 8.0.0-alpha.8

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 (327) 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/CHANGELOG.md +242 -1
  20. package/DateCalendar/DateCalendar.js +1 -1
  21. package/DateCalendar/PickersFadeTransitionGroup.d.ts +1 -1
  22. package/DateCalendar/PickersSlideTransition.d.ts +1 -1
  23. package/DateField/DateField.js +26 -31
  24. package/DateField/DateField.types.d.ts +6 -15
  25. package/DateField/useDateField.d.ts +1 -1
  26. package/DateField/useDateField.js +14 -11
  27. package/DatePicker/DatePicker.js +1 -1
  28. package/DatePicker/DatePicker.types.d.ts +5 -0
  29. package/DatePicker/DatePickerToolbar.d.ts +1 -2
  30. package/DatePicker/DatePickerToolbar.js +7 -11
  31. package/DatePicker/shared.d.ts +1 -1
  32. package/DateTimeField/DateTimeField.js +26 -31
  33. package/DateTimeField/DateTimeField.types.d.ts +6 -15
  34. package/DateTimeField/useDateTimeField.d.ts +1 -1
  35. package/DateTimeField/useDateTimeField.js +14 -11
  36. package/DateTimePicker/DateTimePicker.js +2 -2
  37. package/DateTimePicker/DateTimePickerTabs.js +2 -2
  38. package/DateTimePicker/DateTimePickerToolbar.d.ts +6 -2
  39. package/DateTimePicker/DateTimePickerToolbar.js +36 -31
  40. package/DateTimePicker/shared.d.ts +1 -1
  41. package/DesktopDatePicker/DesktopDatePicker.js +9 -14
  42. package/DesktopDatePicker/DesktopDatePicker.types.d.ts +5 -0
  43. package/DesktopDateTimePicker/DesktopDateTimePicker.js +14 -22
  44. package/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +1 -5
  45. package/DesktopTimePicker/DesktopTimePicker.js +4 -19
  46. package/MobileDatePicker/MobileDatePicker.js +2 -11
  47. package/MobileDateTimePicker/MobileDateTimePicker.js +2 -11
  48. package/MobileTimePicker/MobileTimePicker.js +2 -11
  49. package/PickersActionBar/PickersActionBar.d.ts +6 -3
  50. package/PickersActionBar/PickersActionBar.js +6 -3
  51. package/PickersLayout/PickersLayout.js +1 -5
  52. package/PickersLayout/PickersLayout.types.d.ts +2 -3
  53. package/PickersLayout/usePickerLayout.js +12 -31
  54. package/PickersShortcuts/PickersShortcuts.d.ts +2 -5
  55. package/PickersShortcuts/PickersShortcuts.js +13 -10
  56. package/PickersShortcuts/index.d.ts +1 -1
  57. package/PickersTextField/PickersInputBase/PickersInputBase.js +7 -0
  58. package/PickersTextField/PickersTextField.js +1 -1
  59. package/TimeField/TimeField.js +25 -30
  60. package/TimeField/TimeField.types.d.ts +6 -15
  61. package/TimeField/useTimeField.d.ts +1 -1
  62. package/TimeField/useTimeField.js +14 -11
  63. package/TimePicker/TimePicker.js +2 -2
  64. package/TimePicker/TimePickerToolbar.d.ts +1 -2
  65. package/TimePicker/TimePickerToolbar.js +20 -18
  66. package/TimePicker/shared.d.ts +1 -1
  67. package/hooks/index.d.ts +1 -0
  68. package/hooks/index.js +2 -1
  69. package/hooks/useIsValidValue.d.ts +7 -0
  70. package/hooks/useIsValidValue.js +11 -0
  71. package/hooks/useParsedFormat.d.ts +8 -6
  72. package/hooks/useParsedFormat.js +10 -12
  73. package/hooks/usePickerActionsContext.d.ts +3 -1
  74. package/hooks/usePickerActionsContext.js +0 -1
  75. package/hooks/usePickerContext.d.ts +5 -3
  76. package/hooks/usePickerContext.js +3 -2
  77. package/hooks/useSplitFieldProps.d.ts +12 -3
  78. package/hooks/useSplitFieldProps.js +8 -3
  79. package/index.d.ts +1 -0
  80. package/index.js +3 -2
  81. package/internals/components/PickerFieldUI.d.ts +132 -0
  82. package/internals/components/PickerFieldUI.js +306 -0
  83. package/internals/components/PickerProvider.d.ts +34 -12
  84. package/internals/components/PickerProvider.js +14 -4
  85. package/internals/components/PickersToolbar.d.ts +2 -3
  86. package/internals/components/PickersToolbar.js +1 -1
  87. package/internals/hooks/date-helpers-hooks.js +4 -3
  88. package/internals/hooks/useDesktopPicker/useDesktopPicker.d.ts +1 -1
  89. package/internals/hooks/useDesktopPicker/useDesktopPicker.js +21 -96
  90. package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +10 -33
  91. package/internals/hooks/useField/buildSectionsFromFormat.js +1 -1
  92. package/internals/hooks/useField/index.d.ts +2 -0
  93. package/internals/hooks/useField/index.js +2 -1
  94. package/internals/hooks/useField/useField.js +12 -4
  95. package/internals/hooks/useField/useField.types.d.ts +11 -4
  96. package/internals/hooks/useField/useField.utils.js +2 -2
  97. package/internals/hooks/useField/useFieldInternalPropsWithDefaults.d.ts +15 -0
  98. package/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +46 -0
  99. package/internals/hooks/useField/useFieldState.js +2 -2
  100. package/internals/hooks/useField/useFieldV6TextField.js +2 -2
  101. package/internals/hooks/useField/useFieldV7TextField.js +3 -3
  102. package/internals/hooks/useFieldOwnerState.d.ts +1 -2
  103. package/internals/hooks/useMobilePicker/useMobilePicker.d.ts +1 -1
  104. package/internals/hooks/useMobilePicker/useMobilePicker.js +20 -51
  105. package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +8 -16
  106. package/internals/hooks/useNullablePickerContext.d.ts +5 -0
  107. package/internals/hooks/useNullablePickerContext.js +10 -0
  108. package/internals/hooks/useOpenState.js +3 -2
  109. package/internals/hooks/usePicker/usePicker.d.ts +1 -2
  110. package/internals/hooks/usePicker/usePicker.js +0 -9
  111. package/internals/hooks/usePicker/usePicker.types.d.ts +7 -9
  112. package/internals/hooks/usePicker/usePickerProvider.d.ts +12 -6
  113. package/internals/hooks/usePicker/usePickerProvider.js +26 -4
  114. package/internals/hooks/usePicker/usePickerValue.d.ts +1 -1
  115. package/internals/hooks/usePicker/usePickerValue.js +62 -185
  116. package/internals/hooks/usePicker/usePickerValue.types.d.ts +52 -55
  117. package/internals/hooks/usePicker/usePickerViews.d.ts +27 -23
  118. package/internals/hooks/usePicker/usePickerViews.js +17 -11
  119. package/internals/hooks/useStaticPicker/useStaticPicker.js +1 -4
  120. package/internals/hooks/useStaticPicker/useStaticPicker.types.d.ts +2 -2
  121. package/internals/hooks/useUtils.d.ts +4 -3
  122. package/internals/hooks/useUtils.js +1 -1
  123. package/internals/index.d.ts +11 -6
  124. package/internals/index.js +6 -4
  125. package/internals/models/fields.d.ts +3 -16
  126. package/internals/models/index.d.ts +1 -0
  127. package/internals/models/index.js +2 -1
  128. package/internals/models/manager.d.ts +15 -0
  129. package/internals/models/manager.js +1 -0
  130. package/internals/models/props/basePickerProps.d.ts +2 -14
  131. package/internals/models/props/toolbar.d.ts +1 -5
  132. package/internals/utils/date-utils.js +1 -1
  133. package/internals/utils/valueManagers.js +4 -4
  134. package/locales/index.d.ts +1 -0
  135. package/locales/index.js +1 -0
  136. package/locales/nbNO.js +15 -19
  137. package/locales/utils/getPickersLocalization.d.ts +0 -7
  138. package/locales/utils/getPickersLocalization.js +0 -13
  139. package/locales/zhTW.d.ts +80 -0
  140. package/locales/zhTW.js +73 -0
  141. package/managers/index.d.ts +6 -0
  142. package/managers/index.js +3 -0
  143. package/managers/package.json +6 -0
  144. package/managers/useDateManager.d.ts +27 -0
  145. package/managers/useDateManager.js +55 -0
  146. package/managers/useDateTimeManager.d.ts +28 -0
  147. package/managers/useDateTimeManager.js +60 -0
  148. package/managers/useTimeManager.d.ts +28 -0
  149. package/managers/useTimeManager.js +51 -0
  150. package/models/adapters.d.ts +1 -1
  151. package/models/fields.d.ts +4 -4
  152. package/models/index.d.ts +1 -0
  153. package/models/index.js +1 -0
  154. package/models/manager.d.ts +87 -0
  155. package/models/manager.js +1 -0
  156. package/models/pickers.d.ts +7 -0
  157. package/modern/AdapterDateFns/AdapterDateFns.js +49 -47
  158. package/modern/AdapterDateFnsJalali/AdapterDateFnsJalali.js +48 -46
  159. package/modern/{AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.js → AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.js} +45 -52
  160. package/modern/AdapterDateFnsJalaliV2/index.js +1 -0
  161. package/modern/{AdapterDateFnsV3/AdapterDateFnsV3.js → AdapterDateFnsV2/AdapterDateFnsV2.js} +46 -54
  162. package/modern/AdapterDateFnsV2/index.js +1 -0
  163. package/modern/DateCalendar/DateCalendar.js +1 -1
  164. package/modern/DateField/DateField.js +26 -31
  165. package/modern/DateField/useDateField.js +14 -11
  166. package/modern/DatePicker/DatePicker.js +1 -1
  167. package/modern/DatePicker/DatePickerToolbar.js +7 -11
  168. package/modern/DateTimeField/DateTimeField.js +26 -31
  169. package/modern/DateTimeField/useDateTimeField.js +14 -11
  170. package/modern/DateTimePicker/DateTimePicker.js +2 -2
  171. package/modern/DateTimePicker/DateTimePickerTabs.js +2 -2
  172. package/modern/DateTimePicker/DateTimePickerToolbar.js +36 -31
  173. package/modern/DesktopDatePicker/DesktopDatePicker.js +9 -14
  174. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +14 -22
  175. package/modern/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +1 -5
  176. package/modern/DesktopTimePicker/DesktopTimePicker.js +4 -19
  177. package/modern/MobileDatePicker/MobileDatePicker.js +2 -11
  178. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +2 -11
  179. package/modern/MobileTimePicker/MobileTimePicker.js +2 -11
  180. package/modern/PickersActionBar/PickersActionBar.js +6 -3
  181. package/modern/PickersLayout/PickersLayout.js +1 -5
  182. package/modern/PickersLayout/usePickerLayout.js +12 -31
  183. package/modern/PickersShortcuts/PickersShortcuts.js +13 -10
  184. package/modern/PickersTextField/PickersInputBase/PickersInputBase.js +7 -0
  185. package/modern/PickersTextField/PickersTextField.js +1 -1
  186. package/modern/TimeField/TimeField.js +25 -30
  187. package/modern/TimeField/useTimeField.js +14 -11
  188. package/modern/TimePicker/TimePicker.js +2 -2
  189. package/modern/TimePicker/TimePickerToolbar.js +20 -18
  190. package/modern/hooks/index.js +2 -1
  191. package/modern/hooks/useIsValidValue.js +11 -0
  192. package/modern/hooks/useParsedFormat.js +10 -12
  193. package/modern/hooks/usePickerActionsContext.js +0 -1
  194. package/modern/hooks/usePickerContext.js +3 -2
  195. package/modern/hooks/useSplitFieldProps.js +8 -3
  196. package/modern/index.js +3 -2
  197. package/modern/internals/components/PickerFieldUI.js +306 -0
  198. package/modern/internals/components/PickerProvider.js +14 -4
  199. package/modern/internals/components/PickersToolbar.js +1 -1
  200. package/modern/internals/hooks/date-helpers-hooks.js +4 -3
  201. package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.js +21 -96
  202. package/modern/internals/hooks/useField/buildSectionsFromFormat.js +1 -1
  203. package/modern/internals/hooks/useField/index.js +2 -1
  204. package/modern/internals/hooks/useField/useField.js +12 -4
  205. package/modern/internals/hooks/useField/useField.utils.js +2 -2
  206. package/modern/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +46 -0
  207. package/modern/internals/hooks/useField/useFieldState.js +2 -2
  208. package/modern/internals/hooks/useField/useFieldV6TextField.js +2 -2
  209. package/modern/internals/hooks/useField/useFieldV7TextField.js +3 -3
  210. package/modern/internals/hooks/useMobilePicker/useMobilePicker.js +20 -51
  211. package/modern/internals/hooks/useNullablePickerContext.js +10 -0
  212. package/modern/internals/hooks/useOpenState.js +3 -2
  213. package/modern/internals/hooks/usePicker/usePicker.js +0 -9
  214. package/modern/internals/hooks/usePicker/usePickerProvider.js +26 -4
  215. package/modern/internals/hooks/usePicker/usePickerValue.js +62 -185
  216. package/modern/internals/hooks/usePicker/usePickerViews.js +17 -11
  217. package/modern/internals/hooks/useStaticPicker/useStaticPicker.js +1 -4
  218. package/modern/internals/hooks/useUtils.js +1 -1
  219. package/modern/internals/index.js +6 -4
  220. package/modern/internals/models/index.js +2 -1
  221. package/modern/internals/models/manager.js +1 -0
  222. package/modern/internals/utils/date-utils.js +1 -1
  223. package/modern/internals/utils/valueManagers.js +4 -4
  224. package/modern/locales/index.js +1 -0
  225. package/modern/locales/nbNO.js +15 -19
  226. package/modern/locales/utils/getPickersLocalization.js +0 -13
  227. package/modern/locales/zhTW.js +73 -0
  228. package/modern/managers/index.js +3 -0
  229. package/modern/managers/useDateManager.js +55 -0
  230. package/modern/managers/useDateTimeManager.js +60 -0
  231. package/modern/managers/useTimeManager.js +51 -0
  232. package/modern/models/index.js +1 -0
  233. package/modern/models/manager.js +1 -0
  234. package/node/AdapterDateFns/AdapterDateFns.js +97 -97
  235. package/node/AdapterDateFnsJalali/AdapterDateFnsJalali.js +97 -96
  236. package/node/{AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.js → AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.js} +94 -101
  237. package/node/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.js +1 -1
  238. package/node/AdapterDateFnsV2/AdapterDateFnsV2.js +291 -0
  239. package/node/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.js +1 -1
  240. package/node/DateCalendar/DateCalendar.js +1 -1
  241. package/node/DateField/DateField.js +26 -31
  242. package/node/DateField/useDateField.js +13 -10
  243. package/node/DatePicker/DatePicker.js +1 -1
  244. package/node/DatePicker/DatePickerToolbar.js +7 -11
  245. package/node/DateTimeField/DateTimeField.js +26 -31
  246. package/node/DateTimeField/useDateTimeField.js +13 -10
  247. package/node/DateTimePicker/DateTimePicker.js +2 -2
  248. package/node/DateTimePicker/DateTimePickerTabs.js +2 -2
  249. package/node/DateTimePicker/DateTimePickerToolbar.js +36 -31
  250. package/node/DesktopDatePicker/DesktopDatePicker.js +9 -14
  251. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +14 -22
  252. package/node/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +1 -5
  253. package/node/DesktopTimePicker/DesktopTimePicker.js +4 -19
  254. package/node/MobileDatePicker/MobileDatePicker.js +2 -11
  255. package/node/MobileDateTimePicker/MobileDateTimePicker.js +2 -11
  256. package/node/MobileTimePicker/MobileTimePicker.js +2 -11
  257. package/node/PickersActionBar/PickersActionBar.js +8 -5
  258. package/node/PickersLayout/PickersLayout.js +1 -5
  259. package/node/PickersLayout/usePickerLayout.js +16 -35
  260. package/node/PickersShortcuts/PickersShortcuts.js +13 -10
  261. package/node/PickersTextField/PickersInputBase/PickersInputBase.js +7 -0
  262. package/node/PickersTextField/PickersTextField.js +1 -1
  263. package/node/TimeField/TimeField.js +25 -30
  264. package/node/TimeField/useTimeField.js +13 -10
  265. package/node/TimePicker/TimePicker.js +2 -2
  266. package/node/TimePicker/TimePickerToolbar.js +20 -18
  267. package/node/hooks/index.js +8 -1
  268. package/node/hooks/useIsValidValue.js +18 -0
  269. package/node/hooks/useParsedFormat.js +10 -12
  270. package/node/hooks/usePickerContext.js +5 -4
  271. package/node/hooks/useSplitFieldProps.js +7 -2
  272. package/node/index.js +13 -1
  273. package/node/internals/components/PickerFieldUI.js +318 -0
  274. package/node/internals/components/PickerProvider.js +16 -6
  275. package/node/internals/components/PickersToolbar.js +1 -1
  276. package/node/internals/hooks/date-helpers-hooks.js +4 -3
  277. package/node/internals/hooks/useDesktopPicker/useDesktopPicker.js +23 -98
  278. package/node/internals/hooks/useField/buildSectionsFromFormat.js +1 -1
  279. package/node/internals/hooks/useField/index.js +8 -1
  280. package/node/internals/hooks/useField/useField.js +11 -3
  281. package/node/internals/hooks/useField/useField.utils.js +2 -2
  282. package/node/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +55 -0
  283. package/node/internals/hooks/useField/useFieldState.js +2 -2
  284. package/node/internals/hooks/useField/useFieldV6TextField.js +2 -2
  285. package/node/internals/hooks/useField/useFieldV7TextField.js +3 -3
  286. package/node/internals/hooks/useMobilePicker/useMobilePicker.js +20 -51
  287. package/node/internals/hooks/useNullablePickerContext.js +16 -0
  288. package/node/internals/hooks/useOpenState.js +4 -2
  289. package/node/internals/hooks/usePicker/usePicker.js +0 -10
  290. package/node/internals/hooks/usePicker/usePickerProvider.js +26 -4
  291. package/node/internals/hooks/usePicker/usePickerValue.js +62 -185
  292. package/node/internals/hooks/usePicker/usePickerViews.js +17 -12
  293. package/node/internals/hooks/useStaticPicker/useStaticPicker.js +1 -4
  294. package/node/internals/hooks/useUtils.js +1 -1
  295. package/node/internals/index.js +45 -19
  296. package/node/internals/models/index.js +11 -0
  297. package/node/internals/models/manager.js +5 -0
  298. package/node/internals/utils/date-utils.js +1 -1
  299. package/node/internals/utils/valueManagers.js +4 -4
  300. package/node/locales/index.js +11 -0
  301. package/node/locales/nbNO.js +15 -19
  302. package/node/locales/utils/getPickersLocalization.js +2 -16
  303. package/node/locales/zhTW.js +79 -0
  304. package/node/managers/index.js +26 -0
  305. package/node/managers/useDateManager.js +63 -0
  306. package/node/managers/useDateTimeManager.js +68 -0
  307. package/node/managers/useTimeManager.js +59 -0
  308. package/node/models/index.js +11 -0
  309. package/node/models/manager.js +5 -0
  310. package/package.json +3 -3
  311. package/themeAugmentation/props.d.ts +1 -1
  312. package/validation/extractValidationProps.d.ts +1 -1
  313. package/AdapterDateFnsJalaliV3/index.d.ts +0 -1
  314. package/AdapterDateFnsJalaliV3/index.js +0 -1
  315. package/AdapterDateFnsV3/index.d.ts +0 -1
  316. package/AdapterDateFnsV3/index.js +0 -1
  317. package/internals/hooks/defaultizedFieldProps.d.ts +0 -18
  318. package/internals/hooks/defaultizedFieldProps.js +0 -40
  319. package/internals/utils/convertFieldResponseIntoMuiTextFieldProps.d.ts +0 -3
  320. package/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +0 -44
  321. package/modern/AdapterDateFnsJalaliV3/index.js +0 -1
  322. package/modern/AdapterDateFnsV3/index.js +0 -1
  323. package/modern/internals/hooks/defaultizedFieldProps.js +0 -40
  324. package/modern/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +0 -44
  325. package/node/AdapterDateFnsV3/AdapterDateFnsV3.js +0 -299
  326. package/node/internals/hooks/defaultizedFieldProps.js +0 -50
  327. package/node/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +0 -52
@@ -0,0 +1,318 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.PickerFieldUI = PickerFieldUI;
9
+ exports.PickerFieldUIContextProvider = PickerFieldUIContextProvider;
10
+ exports.cleanFieldResponse = void 0;
11
+ exports.useFieldTextFieldProps = useFieldTextFieldProps;
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
14
+ var React = _interopRequireWildcard(require("react"));
15
+ var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallback"));
16
+ var _resolveComponentProps = _interopRequireDefault(require("@mui/utils/resolveComponentProps"));
17
+ var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
18
+ var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
19
+ var _InputAdornment = _interopRequireDefault(require("@mui/material/InputAdornment"));
20
+ var _useSlotProps5 = _interopRequireDefault(require("@mui/utils/useSlotProps"));
21
+ var _useFieldOwnerState = require("../hooks/useFieldOwnerState");
22
+ var _hooks = require("../../hooks");
23
+ var _icons = require("../../icons");
24
+ var _useNullablePickerContext = require("../hooks/useNullablePickerContext");
25
+ var _PickersTextField = require("../../PickersTextField");
26
+ var _jsxRuntime = require("react/jsx-runtime");
27
+ const _excluded = ["enableAccessibleFieldDOMStructure"],
28
+ _excluded2 = ["InputProps", "readOnly", "onClear", "clearable", "clearButtonPosition", "openPickerButtonPosition", "openPickerAriaLabel"],
29
+ _excluded3 = ["onPaste", "onKeyDown", "inputMode", "readOnly", "InputProps", "inputProps", "inputRef", "onClear", "clearable", "clearButtonPosition", "openPickerButtonPosition", "openPickerAriaLabel"],
30
+ _excluded4 = ["ownerState"],
31
+ _excluded5 = ["ownerState"],
32
+ _excluded6 = ["ownerState"],
33
+ _excluded7 = ["ownerState"],
34
+ _excluded8 = ["InputProps", "inputProps"];
35
+ const cleanFieldResponse = _ref => {
36
+ let {
37
+ enableAccessibleFieldDOMStructure
38
+ } = _ref,
39
+ fieldResponse = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
40
+ if (enableAccessibleFieldDOMStructure) {
41
+ const {
42
+ InputProps,
43
+ readOnly,
44
+ onClear,
45
+ clearable,
46
+ clearButtonPosition,
47
+ openPickerButtonPosition,
48
+ openPickerAriaLabel
49
+ } = fieldResponse,
50
+ other = (0, _objectWithoutPropertiesLoose2.default)(fieldResponse, _excluded2);
51
+ return {
52
+ clearable,
53
+ onClear,
54
+ clearButtonPosition,
55
+ openPickerButtonPosition,
56
+ openPickerAriaLabel,
57
+ textFieldProps: (0, _extends2.default)({}, other, {
58
+ InputProps: (0, _extends2.default)({}, InputProps ?? {}, {
59
+ readOnly
60
+ })
61
+ })
62
+ };
63
+ }
64
+ const {
65
+ onPaste,
66
+ onKeyDown,
67
+ inputMode,
68
+ readOnly,
69
+ InputProps,
70
+ inputProps,
71
+ inputRef,
72
+ onClear,
73
+ clearable,
74
+ clearButtonPosition,
75
+ openPickerButtonPosition,
76
+ openPickerAriaLabel
77
+ } = fieldResponse,
78
+ other = (0, _objectWithoutPropertiesLoose2.default)(fieldResponse, _excluded3);
79
+ return {
80
+ clearable,
81
+ onClear,
82
+ clearButtonPosition,
83
+ openPickerButtonPosition,
84
+ openPickerAriaLabel,
85
+ textFieldProps: (0, _extends2.default)({}, other, {
86
+ InputProps: (0, _extends2.default)({}, InputProps ?? {}, {
87
+ readOnly
88
+ }),
89
+ inputProps: (0, _extends2.default)({}, inputProps ?? {}, {
90
+ inputMode,
91
+ onPaste,
92
+ onKeyDown,
93
+ ref: inputRef
94
+ })
95
+ })
96
+ };
97
+ };
98
+ exports.cleanFieldResponse = cleanFieldResponse;
99
+ const PickerFieldUIContext = /*#__PURE__*/React.createContext({
100
+ slots: {},
101
+ slotProps: {}
102
+ });
103
+
104
+ /**
105
+ * Adds the button to open the picker and the button to clear the value of the field.
106
+ * @ignore - internal component.
107
+ */
108
+ function PickerFieldUI(props) {
109
+ const {
110
+ slots,
111
+ slotProps,
112
+ fieldResponse,
113
+ defaultOpenPickerIcon
114
+ } = props;
115
+ const translations = (0, _hooks.usePickerTranslations)();
116
+ const pickerContext = (0, _useNullablePickerContext.useNullablePickerContext)();
117
+ const pickerFieldUIContext = React.useContext(PickerFieldUIContext);
118
+ const {
119
+ textFieldProps,
120
+ onClear,
121
+ clearable,
122
+ openPickerAriaLabel,
123
+ clearButtonPosition: clearButtonPositionProp = 'end',
124
+ openPickerButtonPosition: openPickerButtonPositionProp = 'end'
125
+ } = cleanFieldResponse(fieldResponse);
126
+ const ownerState = (0, _useFieldOwnerState.useFieldOwnerState)(textFieldProps);
127
+ const handleClickOpeningButton = (0, _useEventCallback.default)(event => {
128
+ event.preventDefault();
129
+ pickerContext?.setOpen(prev => !prev);
130
+ });
131
+ const triggerStatus = pickerContext ? pickerContext.triggerStatus : 'hidden';
132
+ const clearButtonPosition = clearable ? clearButtonPositionProp : null;
133
+ const openPickerButtonPosition = triggerStatus !== 'hidden' ? openPickerButtonPositionProp : null;
134
+ const TextField = slots?.textField ?? pickerFieldUIContext.slots.textField ?? (fieldResponse.enableAccessibleFieldDOMStructure === false ? _TextField.default : _PickersTextField.PickersTextField);
135
+ const InputAdornment = slots?.inputAdornment ?? pickerFieldUIContext.slots.inputAdornment ?? _InputAdornment.default;
136
+ const _useSlotProps = (0, _useSlotProps5.default)({
137
+ elementType: InputAdornment,
138
+ externalSlotProps: mergeSlotProps(pickerFieldUIContext.slotProps.inputAdornment, slotProps?.inputAdornment),
139
+ additionalProps: {
140
+ position: 'start'
141
+ },
142
+ ownerState: (0, _extends2.default)({}, ownerState, {
143
+ position: 'start'
144
+ })
145
+ }),
146
+ startInputAdornmentProps = (0, _objectWithoutPropertiesLoose2.default)(_useSlotProps, _excluded4);
147
+ const _useSlotProps2 = (0, _useSlotProps5.default)({
148
+ elementType: InputAdornment,
149
+ externalSlotProps: slotProps?.inputAdornment,
150
+ additionalProps: {
151
+ position: 'end'
152
+ },
153
+ ownerState: (0, _extends2.default)({}, ownerState, {
154
+ position: 'end'
155
+ })
156
+ }),
157
+ endInputAdornmentProps = (0, _objectWithoutPropertiesLoose2.default)(_useSlotProps2, _excluded5);
158
+ const OpenPickerButton = pickerFieldUIContext.slots.openPickerButton ?? _IconButton.default;
159
+ // We don't want to forward the `ownerState` to the `<IconButton />` component, see mui/material-ui#34056
160
+ const _useSlotProps3 = (0, _useSlotProps5.default)({
161
+ elementType: OpenPickerButton,
162
+ externalSlotProps: pickerFieldUIContext.slotProps.openPickerButton,
163
+ additionalProps: {
164
+ disabled: triggerStatus === 'disabled',
165
+ onClick: handleClickOpeningButton,
166
+ 'aria-label': openPickerAriaLabel,
167
+ edge: clearButtonPosition === 'start' && openPickerButtonPosition === 'start' ? undefined : openPickerButtonPosition
168
+ },
169
+ ownerState
170
+ }),
171
+ openPickerButtonProps = (0, _objectWithoutPropertiesLoose2.default)(_useSlotProps3, _excluded6);
172
+ const OpenPickerIcon = pickerFieldUIContext.slots.openPickerIcon ?? defaultOpenPickerIcon;
173
+ const openPickerIconProps = (0, _useSlotProps5.default)({
174
+ elementType: OpenPickerIcon,
175
+ externalSlotProps: pickerFieldUIContext.slotProps.openPickerIcon,
176
+ ownerState
177
+ });
178
+ const ClearButton = slots?.clearButton ?? pickerFieldUIContext.slots.clearButton ?? _IconButton.default;
179
+ // We don't want to forward the `ownerState` to the `<IconButton />` component, see mui/material-ui#34056
180
+ const _useSlotProps4 = (0, _useSlotProps5.default)({
181
+ elementType: ClearButton,
182
+ externalSlotProps: mergeSlotProps(pickerFieldUIContext.slotProps.clearButton, slotProps?.clearButton),
183
+ className: 'clearButton',
184
+ additionalProps: {
185
+ title: translations.fieldClearLabel,
186
+ tabIndex: -1,
187
+ onClick: onClear,
188
+ disabled: fieldResponse.disabled || fieldResponse.readOnly,
189
+ edge: clearButtonPosition === 'end' && openPickerButtonPosition === 'end' ? undefined : clearButtonPosition
190
+ },
191
+ ownerState
192
+ }),
193
+ clearButtonProps = (0, _objectWithoutPropertiesLoose2.default)(_useSlotProps4, _excluded7);
194
+ const ClearIcon = slots?.clearIcon ?? pickerFieldUIContext.slots.clearIcon ?? _icons.ClearIcon;
195
+ const clearIconProps = (0, _useSlotProps5.default)({
196
+ elementType: ClearIcon,
197
+ externalSlotProps: mergeSlotProps(pickerFieldUIContext.slotProps.clearIcon, slotProps?.clearIcon),
198
+ additionalProps: {
199
+ fontSize: 'small'
200
+ },
201
+ ownerState
202
+ });
203
+ if (!textFieldProps.InputProps) {
204
+ textFieldProps.InputProps = {};
205
+ }
206
+ if (pickerContext) {
207
+ textFieldProps.InputProps.ref = pickerContext.triggerRef;
208
+ }
209
+ if (!textFieldProps.InputProps?.startAdornment && (clearButtonPosition === 'start' || openPickerButtonPosition === 'start')) {
210
+ textFieldProps.InputProps.startAdornment = /*#__PURE__*/(0, _jsxRuntime.jsxs)(InputAdornment, (0, _extends2.default)({}, startInputAdornmentProps, {
211
+ children: [openPickerButtonPosition === 'start' && /*#__PURE__*/(0, _jsxRuntime.jsx)(OpenPickerButton, (0, _extends2.default)({}, openPickerButtonProps, {
212
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(OpenPickerIcon, (0, _extends2.default)({}, openPickerIconProps))
213
+ })), clearButtonPosition === 'start' && /*#__PURE__*/(0, _jsxRuntime.jsx)(ClearButton, (0, _extends2.default)({}, clearButtonProps, {
214
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(ClearIcon, (0, _extends2.default)({}, clearIconProps))
215
+ }))]
216
+ }));
217
+ }
218
+ if (!textFieldProps.InputProps?.endAdornment && (clearButtonPosition === 'end' || openPickerButtonPosition === 'end')) {
219
+ textFieldProps.InputProps.endAdornment = /*#__PURE__*/(0, _jsxRuntime.jsxs)(InputAdornment, (0, _extends2.default)({}, endInputAdornmentProps, {
220
+ children: [clearButtonPosition === 'end' && /*#__PURE__*/(0, _jsxRuntime.jsx)(ClearButton, (0, _extends2.default)({}, clearButtonProps, {
221
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(ClearIcon, (0, _extends2.default)({}, clearIconProps))
222
+ })), openPickerButtonPosition === 'end' && /*#__PURE__*/(0, _jsxRuntime.jsx)(OpenPickerButton, (0, _extends2.default)({}, openPickerButtonProps, {
223
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(OpenPickerIcon, (0, _extends2.default)({}, openPickerIconProps))
224
+ }))]
225
+ }));
226
+ }
227
+ if (clearButtonPosition != null) {
228
+ textFieldProps.sx = [{
229
+ '& .clearButton': {
230
+ opacity: 1
231
+ },
232
+ '@media (pointer: fine)': {
233
+ '& .clearButton': {
234
+ opacity: 0
235
+ },
236
+ '&:hover, &:focus-within': {
237
+ '.clearButton': {
238
+ opacity: 1
239
+ }
240
+ }
241
+ }
242
+ }, ...(Array.isArray(textFieldProps.sx) ? textFieldProps.sx : [textFieldProps.sx])];
243
+ }
244
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(TextField, (0, _extends2.default)({}, textFieldProps));
245
+ }
246
+ function mergeSlotProps(slotPropsA, slotPropsB) {
247
+ if (!slotPropsA) {
248
+ return slotPropsB;
249
+ }
250
+ if (!slotPropsB) {
251
+ return slotPropsA;
252
+ }
253
+ return ownerState => {
254
+ return (0, _extends2.default)({}, (0, _resolveComponentProps.default)(slotPropsB, ownerState), (0, _resolveComponentProps.default)(slotPropsA, ownerState));
255
+ };
256
+ }
257
+
258
+ /**
259
+ * The `textField` slot props cannot be handled inside `PickerFieldUI` because it would be a breaking change to not pass the enriched props to `useField`.
260
+ * Once the non-accessible DOM structure will be removed, we will be able to remove the `textField` slot and clean this logic.
261
+ */
262
+ function useFieldTextFieldProps(parameters) {
263
+ const {
264
+ ref,
265
+ externalForwardedProps,
266
+ slotProps
267
+ } = parameters;
268
+ const pickerFieldUIContext = React.useContext(PickerFieldUIContext);
269
+ const ownerState = (0, _useFieldOwnerState.useFieldOwnerState)(externalForwardedProps);
270
+ const {
271
+ InputProps,
272
+ inputProps
273
+ } = externalForwardedProps,
274
+ otherExternalForwardedProps = (0, _objectWithoutPropertiesLoose2.default)(externalForwardedProps, _excluded8);
275
+ const textFieldProps = (0, _useSlotProps5.default)({
276
+ elementType: _PickersTextField.PickersTextField,
277
+ externalSlotProps: mergeSlotProps(pickerFieldUIContext.slotProps.textField, slotProps?.textField),
278
+ externalForwardedProps: otherExternalForwardedProps,
279
+ additionalProps: {
280
+ ref
281
+ },
282
+ ownerState
283
+ });
284
+
285
+ // TODO: Remove when mui/material-ui#35088 will be merged
286
+ textFieldProps.inputProps = (0, _extends2.default)({}, inputProps, textFieldProps.inputProps);
287
+ textFieldProps.InputProps = (0, _extends2.default)({}, InputProps, textFieldProps.InputProps);
288
+ return textFieldProps;
289
+ }
290
+ function PickerFieldUIContextProvider(props) {
291
+ const {
292
+ slots = {},
293
+ slotProps = {},
294
+ children
295
+ } = props;
296
+ const contextValue = React.useMemo(() => ({
297
+ slots: {
298
+ openPickerButton: slots.openPickerButton,
299
+ openPickerIcon: slots.openPickerIcon,
300
+ textField: slots.textField,
301
+ inputAdornment: slots.inputAdornment,
302
+ clearIcon: slots.clearIcon,
303
+ clearButton: slots.clearButton
304
+ },
305
+ slotProps: {
306
+ openPickerButton: slotProps.openPickerButton,
307
+ openPickerIcon: slotProps.openPickerIcon,
308
+ textField: slotProps.textField,
309
+ inputAdornment: slotProps.inputAdornment,
310
+ clearIcon: slotProps.clearIcon,
311
+ clearButton: slotProps.clearButton
312
+ }
313
+ }), [slots.openPickerButton, slots.openPickerIcon, slots.textField, slots.inputAdornment, slots.clearIcon, slots.clearButton, slotProps.openPickerButton, slotProps.openPickerIcon, slotProps.textField, slotProps.inputAdornment, slotProps.clearIcon, slotProps.clearButton]);
314
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(PickerFieldUIContext.Provider, {
315
+ value: contextValue,
316
+ children: children
317
+ });
318
+ }
@@ -4,12 +4,14 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.PickerPrivateContext = exports.PickerContext = exports.PickerActionsContext = void 0;
7
+ exports.PickerPrivateContext = exports.PickerActionsContext = void 0;
8
8
  exports.PickerProvider = PickerProvider;
9
9
  var React = _interopRequireWildcard(require("react"));
10
10
  var _LocalizationProvider = require("../../LocalizationProvider");
11
+ var _useIsValidValue = require("../../hooks/useIsValidValue");
12
+ var _useFieldInternalPropsWithDefaults = require("../hooks/useField/useFieldInternalPropsWithDefaults");
13
+ var _usePickerContext = require("../../hooks/usePickerContext");
11
14
  var _jsxRuntime = require("react/jsx-runtime");
12
- const PickerContext = exports.PickerContext = /*#__PURE__*/React.createContext(null);
13
15
  const PickerActionsContext = exports.PickerActionsContext = /*#__PURE__*/React.createContext(null);
14
16
  const PickerPrivateContext = exports.PickerPrivateContext = /*#__PURE__*/React.createContext({
15
17
  ownerState: {
@@ -35,18 +37,26 @@ function PickerProvider(props) {
35
37
  contextValue,
36
38
  actionsContextValue,
37
39
  privateContextValue,
40
+ fieldPrivateContextValue,
41
+ isValidContextValue,
38
42
  localeText,
39
43
  children
40
44
  } = props;
41
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(PickerContext.Provider, {
45
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_usePickerContext.PickerContext.Provider, {
42
46
  value: contextValue,
43
47
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(PickerActionsContext.Provider, {
44
48
  value: actionsContextValue,
45
49
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(PickerPrivateContext.Provider, {
46
50
  value: privateContextValue,
47
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_LocalizationProvider.LocalizationProvider, {
48
- localeText: localeText,
49
- children: children
51
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_useFieldInternalPropsWithDefaults.PickerFieldPrivateContext.Provider, {
52
+ value: fieldPrivateContextValue,
53
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_useIsValidValue.IsValidValueContext.Provider, {
54
+ value: isValidContextValue,
55
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_LocalizationProvider.LocalizationProvider, {
56
+ localeText: localeText,
57
+ children: children
58
+ })
59
+ })
50
60
  })
51
61
  })
52
62
  })
@@ -17,7 +17,7 @@ var _createStyled = require("@mui/system/createStyled");
17
17
  var _pickersToolbarClasses = require("./pickersToolbarClasses");
18
18
  var _useToolbarOwnerState = require("../hooks/useToolbarOwnerState");
19
19
  var _jsxRuntime = require("react/jsx-runtime");
20
- const _excluded = ["children", "className", "classes", "toolbarTitle", "hidden", "titleId", "isLandscape", "classes", "landscapeDirection"];
20
+ const _excluded = ["children", "className", "classes", "toolbarTitle", "hidden", "titleId", "classes", "landscapeDirection"];
21
21
  const useUtilityClasses = classes => {
22
22
  const slots = {
23
23
  root: ['root'],
@@ -36,11 +36,12 @@ function usePreviousMonthDisabled(month, {
36
36
  }
37
37
  function useMeridiemMode(date, ampm, onChange, selectionState) {
38
38
  const utils = (0, _useUtils.useUtils)();
39
- const meridiemMode = (0, _timeUtils.getMeridiem)(date, utils);
39
+ const cleanDate = React.useMemo(() => !utils.isValid(date) ? null : date, [utils, date]);
40
+ const meridiemMode = (0, _timeUtils.getMeridiem)(cleanDate, utils);
40
41
  const handleMeridiemChange = React.useCallback(mode => {
41
- const timeWithMeridiem = date == null ? null : (0, _timeUtils.convertToMeridiem)(date, mode, Boolean(ampm), utils);
42
+ const timeWithMeridiem = cleanDate == null ? null : (0, _timeUtils.convertToMeridiem)(cleanDate, mode, Boolean(ampm), utils);
42
43
  onChange(timeWithMeridiem, selectionState ?? 'partial');
43
- }, [ampm, date, onChange, selectionState, utils]);
44
+ }, [ampm, cleanDate, onChange, selectionState, utils]);
44
45
  return {
45
46
  meridiemMode,
46
47
  handleMeridiemChange
@@ -9,19 +9,16 @@ exports.useDesktopPicker = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
11
  var React = _interopRequireWildcard(require("react"));
12
- var _useSlotProps3 = _interopRequireDefault(require("@mui/utils/useSlotProps"));
13
- var _InputAdornment = _interopRequireDefault(require("@mui/material/InputAdornment"));
14
- var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
12
+ var _useSlotProps = _interopRequireDefault(require("@mui/utils/useSlotProps"));
15
13
  var _useForkRef = _interopRequireDefault(require("@mui/utils/useForkRef"));
16
14
  var _useId = _interopRequireDefault(require("@mui/utils/useId"));
17
15
  var _PickersPopper = require("../../components/PickersPopper");
18
16
  var _usePicker = require("../usePicker");
19
17
  var _PickersLayout = require("../../../PickersLayout");
20
18
  var _PickerProvider = require("../../components/PickerProvider");
19
+ var _PickerFieldUI = require("../../components/PickerFieldUI");
21
20
  var _jsxRuntime = require("react/jsx-runtime");
22
- const _excluded = ["props", "getOpenDialogAriaText"],
23
- _excluded2 = ["ownerState"],
24
- _excluded3 = ["ownerState"];
21
+ const _excluded = ["props"];
25
22
  /**
26
23
  * Hook managing all the single-date desktop pickers:
27
24
  * - DesktopDatePicker
@@ -30,8 +27,7 @@ const _excluded = ["props", "getOpenDialogAriaText"],
30
27
  */
31
28
  const useDesktopPicker = _ref => {
32
29
  let {
33
- props,
34
- getOpenDialogAriaText
30
+ props
35
31
  } = _ref,
36
32
  pickerParams = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
37
33
  const {
@@ -39,92 +35,37 @@ const useDesktopPicker = _ref => {
39
35
  slotProps: innerSlotProps,
40
36
  className,
41
37
  sx,
42
- format,
43
- formatDensity,
44
- enableAccessibleFieldDOMStructure,
45
- selectedSections,
46
- onSelectedSectionsChange,
47
- timezone,
48
38
  name,
49
39
  label,
50
40
  inputRef,
51
41
  readOnly,
52
- disabled,
53
42
  autoFocus,
54
43
  localeText,
55
44
  reduceAnimations
56
45
  } = props;
57
- const containerRef = React.useRef(null);
58
46
  const fieldRef = React.useRef(null);
59
47
  const labelId = (0, _useId.default)();
60
48
  const isToolbarHidden = innerSlotProps?.toolbar?.hidden ?? false;
61
49
  const {
62
- hasUIView,
63
- layoutProps,
64
50
  providerProps,
65
51
  renderCurrentView,
66
52
  shouldRestoreFocus,
67
- fieldProps: pickerFieldProps,
68
53
  ownerState
69
54
  } = (0, _usePicker.usePicker)((0, _extends2.default)({}, pickerParams, {
70
55
  props,
71
56
  fieldRef,
72
57
  localeText,
73
58
  autoFocusView: true,
74
- additionalViewProps: {},
75
59
  variant: 'desktop'
76
60
  }));
77
- const InputAdornment = slots.inputAdornment ?? _InputAdornment.default;
78
- const _useSlotProps = (0, _useSlotProps3.default)({
79
- elementType: InputAdornment,
80
- externalSlotProps: innerSlotProps?.inputAdornment,
81
- additionalProps: {
82
- position: 'end'
83
- },
84
- ownerState
85
- }),
86
- inputAdornmentProps = (0, _objectWithoutPropertiesLoose2.default)(_useSlotProps, _excluded2);
87
- const OpenPickerButton = slots.openPickerButton ?? _IconButton.default;
88
- const _useSlotProps2 = (0, _useSlotProps3.default)({
89
- elementType: OpenPickerButton,
90
- externalSlotProps: innerSlotProps?.openPickerButton,
91
- additionalProps: {
92
- disabled: disabled || readOnly,
93
- // This direct access to `providerProps` will go away in https://github.com/mui/mui-x/pull/15671
94
- onClick: event => {
95
- event.preventDefault();
96
- providerProps.contextValue.setOpen(prevOpen => !prevOpen);
97
- },
98
- 'aria-label': getOpenDialogAriaText(pickerFieldProps.value),
99
- edge: inputAdornmentProps.position
100
- },
101
- ownerState
102
- }),
103
- openPickerButtonProps = (0, _objectWithoutPropertiesLoose2.default)(_useSlotProps2, _excluded3);
104
- const OpenPickerIcon = slots.openPickerIcon;
105
- const openPickerIconProps = (0, _useSlotProps3.default)({
106
- elementType: OpenPickerIcon,
107
- externalSlotProps: innerSlotProps?.openPickerIcon,
108
- ownerState
109
- });
110
61
  const Field = slots.field;
111
- const fieldProps = (0, _useSlotProps3.default)({
62
+ const fieldProps = (0, _useSlotProps.default)({
112
63
  elementType: Field,
113
64
  externalSlotProps: innerSlotProps?.field,
114
65
  additionalProps: (0, _extends2.default)({
115
66
  // Internal props
116
67
  readOnly,
117
- disabled,
118
- format,
119
- formatDensity,
120
- enableAccessibleFieldDOMStructure,
121
- selectedSections,
122
- onSelectedSectionsChange,
123
- timezone,
124
- autoFocus: autoFocus && !props.open
125
- }, pickerFieldProps, {
126
- // onChange and value
127
-
68
+ autoFocus: autoFocus && !props.open,
128
69
  // Forwarded props
129
70
  className,
130
71
  sx,
@@ -138,24 +79,6 @@ const useDesktopPicker = _ref => {
138
79
  }),
139
80
  ownerState
140
81
  });
141
-
142
- // TODO: Move to `useSlotProps` when https://github.com/mui/material-ui/pull/35088 will be merged
143
- if (hasUIView) {
144
- fieldProps.InputProps = (0, _extends2.default)({}, fieldProps.InputProps, {
145
- ref: containerRef
146
- }, !props.disableOpenPicker && {
147
- [`${inputAdornmentProps.position}Adornment`]: /*#__PURE__*/(0, _jsxRuntime.jsx)(InputAdornment, (0, _extends2.default)({}, inputAdornmentProps, {
148
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(OpenPickerButton, (0, _extends2.default)({}, openPickerButtonProps, {
149
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(OpenPickerIcon, (0, _extends2.default)({}, openPickerIconProps))
150
- }))
151
- }))
152
- });
153
- }
154
- const slotsForField = (0, _extends2.default)({
155
- textField: slots.textField,
156
- clearIcon: slots.clearIcon,
157
- clearButton: slots.clearButton
158
- }, fieldProps.slots);
159
82
  const Layout = slots.layout ?? _PickersLayout.PickersLayout;
160
83
  let labelledById = labelId;
161
84
  if (isToolbarHidden) {
@@ -174,25 +97,27 @@ const useDesktopPicker = _ref => {
174
97
  }, innerSlotProps?.popper)
175
98
  });
176
99
  const handleFieldRef = (0, _useForkRef.default)(fieldRef, fieldProps.unstableFieldRef);
177
- const renderPicker = () => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_PickerProvider.PickerProvider, (0, _extends2.default)({}, providerProps, {
178
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Field, (0, _extends2.default)({}, fieldProps, {
179
- slots: slotsForField,
180
- slotProps: slotProps,
181
- unstableFieldRef: handleFieldRef
182
- })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickersPopper.PickersPopper, {
183
- role: "dialog",
184
- placement: "bottom-start",
185
- anchorEl: containerRef.current,
100
+ const renderPicker = () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickerProvider.PickerProvider, (0, _extends2.default)({}, providerProps, {
101
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_PickerFieldUI.PickerFieldUIContextProvider, {
186
102
  slots: slots,
187
103
  slotProps: slotProps,
188
- shouldRestoreFocus: shouldRestoreFocus,
189
- reduceAnimations: reduceAnimations,
190
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Layout, (0, _extends2.default)({}, layoutProps, slotProps?.layout, {
104
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Field, (0, _extends2.default)({}, fieldProps, {
105
+ unstableFieldRef: handleFieldRef
106
+ })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickersPopper.PickersPopper, {
107
+ role: "dialog",
108
+ placement: "bottom-start",
109
+ anchorEl: providerProps.contextValue.triggerRef.current,
191
110
  slots: slots,
192
111
  slotProps: slotProps,
193
- children: renderCurrentView()
194
- }))
195
- })]
112
+ shouldRestoreFocus: shouldRestoreFocus,
113
+ reduceAnimations: reduceAnimations,
114
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Layout, (0, _extends2.default)({}, slotProps?.layout, {
115
+ slots: slots,
116
+ slotProps: slotProps,
117
+ children: renderCurrentView()
118
+ }))
119
+ })]
120
+ })
196
121
  }));
197
122
  return {
198
123
  renderPicker
@@ -120,7 +120,7 @@ const createSection = ({
120
120
  const sectionConfig = (0, _useField.getDateSectionConfigFromFormatToken)(utils, token);
121
121
  const hasLeadingZerosInFormat = (0, _useField.doesSectionFormatHaveLeadingZeros)(utils, sectionConfig.contentType, sectionConfig.type, token);
122
122
  const hasLeadingZerosInInput = shouldRespectLeadingZeros ? hasLeadingZerosInFormat : sectionConfig.contentType === 'digit';
123
- const isValidDate = date != null && utils.isValid(date);
123
+ const isValidDate = utils.isValid(date);
124
124
  let sectionValue = isValidDate ? utils.formatByString(date, token) : '';
125
125
  let maxLength = null;
126
126
  if (hasLeadingZerosInInput) {
@@ -21,5 +21,12 @@ Object.defineProperty(exports, "useField", {
21
21
  return _useField.useField;
22
22
  }
23
23
  });
24
+ Object.defineProperty(exports, "useFieldInternalPropsWithDefaults", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _useFieldInternalPropsWithDefaults.useFieldInternalPropsWithDefaults;
28
+ }
29
+ });
24
30
  var _useField = require("./useField");
25
- var _useField2 = require("./useField.utils");
31
+ var _useField2 = require("./useField.utils");
32
+ var _useFieldInternalPropsWithDefaults = require("./useFieldInternalPropsWithDefaults");
@@ -27,7 +27,8 @@ const useField = params => {
27
27
  minutesStep,
28
28
  enableAccessibleFieldDOMStructure = true,
29
29
  disabled = false,
30
- readOnly = false
30
+ readOnly = false,
31
+ autoFocus = false
31
32
  },
32
33
  forwardedProps: {
33
34
  onKeyDown,
@@ -37,7 +38,8 @@ const useField = params => {
37
38
  },
38
39
  fieldValueManager,
39
40
  valueManager,
40
- validator
41
+ validator,
42
+ getOpenPickerButtonAriaLabel: getOpenDialogAriaText
41
43
  } = params;
42
44
  const isRtl = (0, _RtlProvider.useRtl)();
43
45
  const stateResponse = (0, _useFieldState.useFieldState)(params);
@@ -224,9 +226,15 @@ const useField = params => {
224
226
  error: inputError,
225
227
  clearable: Boolean(clearable && !areAllSectionsEmpty && !readOnly && !disabled)
226
228
  };
229
+ const localizationContext = (0, _useUtils.useLocalizationContext)();
230
+ const openPickerAriaLabel = React.useMemo(() => getOpenDialogAriaText((0, _extends2.default)({}, localizationContext, {
231
+ value: state.value
232
+ })), [getOpenDialogAriaText, state.value, localizationContext]);
227
233
  const commonAdditionalProps = {
228
234
  disabled,
229
- readOnly
235
+ readOnly,
236
+ autoFocus,
237
+ openPickerAriaLabel
230
238
  };
231
239
  return (0, _extends2.default)({}, params.forwardedProps, commonForwardedProps, commonAdditionalProps, returnedValue);
232
240
  };
@@ -383,7 +383,7 @@ const getSectionsBoundaries = (utils, localizedDigits, timezone) => {
383
383
  currentDate
384
384
  }) => ({
385
385
  minimum: 1,
386
- maximum: currentDate != null && utils.isValid(currentDate) ? utils.getDaysInMonth(currentDate) : maxDaysInMonth,
386
+ maximum: utils.isValid(currentDate) ? utils.getDaysInMonth(currentDate) : maxDaysInMonth,
387
387
  longestMonth: longestMonth
388
388
  }),
389
389
  weekDay: ({
@@ -534,7 +534,7 @@ const mergeDateIntoReferenceDate = (utils, dateToTransferFrom, sections, referen
534
534
  exports.mergeDateIntoReferenceDate = mergeDateIntoReferenceDate;
535
535
  const isAndroid = () => navigator.userAgent.toLowerCase().includes('android');
536
536
 
537
- // TODO v8: Remove if we drop the v6 TextField approach.
537
+ // TODO v9: Remove
538
538
  exports.isAndroid = isAndroid;
539
539
  const getSectionOrder = (sections, shouldApplyRTL) => {
540
540
  const neighbors = {};