@mui/x-date-pickers 8.0.0-alpha.5 → 8.0.0-alpha.7

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 (305) 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 +206 -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/useDateField.d.ts +1 -1
  24. package/DateField/useDateField.js +13 -11
  25. package/DatePicker/DatePicker.js +1 -1
  26. package/DatePicker/DatePicker.types.d.ts +5 -0
  27. package/DatePicker/DatePickerToolbar.d.ts +1 -3
  28. package/DatePicker/DatePickerToolbar.js +10 -25
  29. package/DatePicker/shared.d.ts +1 -1
  30. package/DateTimeField/useDateTimeField.d.ts +1 -1
  31. package/DateTimeField/useDateTimeField.js +13 -11
  32. package/DateTimePicker/DateTimePicker.js +2 -2
  33. package/DateTimePicker/DateTimePicker.types.d.ts +2 -2
  34. package/DateTimePicker/DateTimePickerTabs.d.ts +2 -5
  35. package/DateTimePicker/DateTimePickerTabs.js +7 -14
  36. package/DateTimePicker/DateTimePickerToolbar.d.ts +12 -4
  37. package/DateTimePicker/DateTimePickerToolbar.js +42 -48
  38. package/DateTimePicker/shared.d.ts +3 -3
  39. package/DesktopDatePicker/DesktopDatePicker.js +9 -3
  40. package/DesktopDatePicker/DesktopDatePicker.types.d.ts +7 -3
  41. package/DesktopDateTimePicker/DesktopDateTimePicker.js +13 -10
  42. package/DesktopDateTimePicker/DesktopDateTimePicker.types.d.ts +2 -2
  43. package/DesktopDateTimePicker/DesktopDateTimePickerLayout.d.ts +1 -2
  44. package/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +1 -15
  45. package/DesktopTimePicker/DesktopTimePicker.js +3 -7
  46. package/DesktopTimePicker/DesktopTimePicker.types.d.ts +2 -2
  47. package/MobileDatePicker/MobileDatePicker.js +2 -2
  48. package/MobileDatePicker/MobileDatePicker.types.d.ts +2 -3
  49. package/MobileDateTimePicker/MobileDateTimePicker.js +2 -2
  50. package/MobileDateTimePicker/MobileDateTimePicker.types.d.ts +4 -4
  51. package/MobileTimePicker/MobileTimePicker.js +2 -2
  52. package/MobileTimePicker/MobileTimePicker.types.d.ts +4 -4
  53. package/PickersActionBar/PickersActionBar.d.ts +6 -7
  54. package/PickersActionBar/PickersActionBar.js +18 -16
  55. package/PickersLayout/PickersLayout.d.ts +2 -2
  56. package/PickersLayout/PickersLayout.js +1 -15
  57. package/PickersLayout/PickersLayout.types.d.ts +12 -15
  58. package/PickersLayout/usePickerLayout.d.ts +2 -2
  59. package/PickersLayout/usePickerLayout.js +13 -47
  60. package/PickersShortcuts/PickersShortcuts.d.ts +2 -5
  61. package/PickersShortcuts/PickersShortcuts.js +13 -10
  62. package/PickersShortcuts/index.d.ts +1 -1
  63. package/PickersTextField/PickersInputBase/PickersInputBase.js +7 -0
  64. package/PickersTextField/PickersTextField.js +1 -1
  65. package/StaticDatePicker/StaticDatePicker.types.d.ts +2 -3
  66. package/StaticDateTimePicker/StaticDateTimePicker.types.d.ts +2 -2
  67. package/StaticTimePicker/StaticTimePicker.types.d.ts +2 -2
  68. package/TimeField/useTimeField.d.ts +1 -1
  69. package/TimeField/useTimeField.js +13 -11
  70. package/TimePicker/TimePicker.js +2 -2
  71. package/TimePicker/TimePicker.types.d.ts +2 -2
  72. package/TimePicker/TimePickerToolbar.d.ts +1 -2
  73. package/TimePicker/TimePickerToolbar.js +23 -35
  74. package/TimePicker/shared.d.ts +1 -1
  75. package/hooks/index.d.ts +2 -0
  76. package/hooks/index.js +3 -1
  77. package/hooks/useIsValidValue.d.ts +7 -0
  78. package/hooks/useIsValidValue.js +11 -0
  79. package/hooks/usePickerActionsContext.d.ts +7 -0
  80. package/hooks/usePickerActionsContext.js +15 -0
  81. package/hooks/usePickerContext.d.ts +3 -1
  82. package/hooks/usePickerContext.js +1 -2
  83. package/index.d.ts +1 -0
  84. package/index.js +3 -2
  85. package/internals/components/PickerProvider.d.ts +14 -8
  86. package/internals/components/PickerProvider.js +17 -6
  87. package/internals/components/PickersModalDialog.d.ts +1 -3
  88. package/internals/components/PickersModalDialog.js +9 -3
  89. package/internals/components/PickersPopper.d.ts +1 -3
  90. package/internals/components/PickersPopper.js +11 -6
  91. package/internals/components/PickersToolbar.d.ts +2 -3
  92. package/internals/components/PickersToolbar.js +1 -1
  93. package/internals/hooks/date-helpers-hooks.js +4 -3
  94. package/internals/hooks/useDesktopPicker/useDesktopPicker.js +10 -12
  95. package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +7 -7
  96. package/internals/hooks/useField/buildSectionsFromFormat.js +1 -1
  97. package/internals/hooks/useField/index.d.ts +1 -1
  98. package/internals/hooks/useField/index.js +1 -1
  99. package/internals/hooks/useField/useField.d.ts +10 -1
  100. package/internals/hooks/useField/useField.js +17 -1
  101. package/internals/hooks/useField/useField.utils.js +2 -2
  102. package/internals/hooks/useField/useFieldState.js +2 -2
  103. package/internals/hooks/useField/useFieldV6TextField.js +2 -2
  104. package/internals/hooks/useMobilePicker/useMobilePicker.js +9 -10
  105. package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +7 -7
  106. package/internals/hooks/useOpenState.js +3 -2
  107. package/internals/hooks/usePicker/usePicker.d.ts +1 -1
  108. package/internals/hooks/usePicker/usePicker.js +0 -8
  109. package/internals/hooks/usePicker/usePicker.types.d.ts +6 -7
  110. package/internals/hooks/usePicker/usePickerProvider.d.ts +5 -5
  111. package/internals/hooks/usePicker/usePickerProvider.js +8 -5
  112. package/internals/hooks/usePicker/usePickerValue.d.ts +1 -1
  113. package/internals/hooks/usePicker/usePickerValue.js +82 -217
  114. package/internals/hooks/usePicker/usePickerValue.types.d.ts +82 -67
  115. package/internals/hooks/usePicker/usePickerViews.d.ts +35 -20
  116. package/internals/hooks/usePicker/usePickerViews.js +22 -14
  117. package/internals/hooks/useStaticPicker/useStaticPicker.js +1 -4
  118. package/internals/hooks/useStaticPicker/useStaticPicker.types.d.ts +6 -6
  119. package/internals/hooks/useUtils.js +1 -1
  120. package/internals/index.d.ts +9 -7
  121. package/internals/index.js +5 -3
  122. package/internals/models/index.d.ts +1 -0
  123. package/internals/models/index.js +2 -1
  124. package/internals/models/manager.d.ts +12 -0
  125. package/internals/models/manager.js +1 -0
  126. package/internals/models/props/basePickerProps.d.ts +2 -2
  127. package/internals/models/props/tabs.d.ts +0 -13
  128. package/internals/models/props/toolbar.d.ts +1 -20
  129. package/internals/utils/date-utils.js +1 -1
  130. package/internals/utils/valueManagers.js +4 -4
  131. package/locales/index.d.ts +1 -0
  132. package/locales/index.js +1 -0
  133. package/locales/nbNO.js +15 -19
  134. package/locales/utils/getPickersLocalization.js +1 -1
  135. package/locales/zhTW.d.ts +80 -0
  136. package/locales/zhTW.js +73 -0
  137. package/managers/index.d.ts +6 -0
  138. package/managers/index.js +3 -0
  139. package/managers/package.json +6 -0
  140. package/managers/useDateManager.d.ts +27 -0
  141. package/managers/useDateManager.js +47 -0
  142. package/managers/useDateTimeManager.d.ts +28 -0
  143. package/managers/useDateTimeManager.js +52 -0
  144. package/managers/useTimeManager.d.ts +28 -0
  145. package/managers/useTimeManager.js +43 -0
  146. package/models/adapters.d.ts +1 -1
  147. package/models/index.d.ts +1 -0
  148. package/models/index.js +1 -0
  149. package/models/manager.d.ts +78 -0
  150. package/models/manager.js +1 -0
  151. package/models/pickers.d.ts +7 -0
  152. package/modern/AdapterDateFns/AdapterDateFns.js +49 -47
  153. package/modern/AdapterDateFnsJalali/AdapterDateFnsJalali.js +48 -46
  154. package/modern/{AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.js → AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.js} +45 -52
  155. package/modern/AdapterDateFnsJalaliV2/index.js +1 -0
  156. package/modern/{AdapterDateFnsV3/AdapterDateFnsV3.js → AdapterDateFnsV2/AdapterDateFnsV2.js} +46 -54
  157. package/modern/AdapterDateFnsV2/index.js +1 -0
  158. package/modern/DateCalendar/DateCalendar.js +1 -1
  159. package/modern/DateField/useDateField.js +13 -11
  160. package/modern/DatePicker/DatePicker.js +1 -1
  161. package/modern/DatePicker/DatePickerToolbar.js +10 -25
  162. package/modern/DateTimeField/useDateTimeField.js +13 -11
  163. package/modern/DateTimePicker/DateTimePicker.js +2 -2
  164. package/modern/DateTimePicker/DateTimePickerTabs.js +7 -14
  165. package/modern/DateTimePicker/DateTimePickerToolbar.js +42 -48
  166. package/modern/DesktopDatePicker/DesktopDatePicker.js +9 -3
  167. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +13 -10
  168. package/modern/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +1 -15
  169. package/modern/DesktopTimePicker/DesktopTimePicker.js +3 -7
  170. package/modern/MobileDatePicker/MobileDatePicker.js +2 -2
  171. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +2 -2
  172. package/modern/MobileTimePicker/MobileTimePicker.js +2 -2
  173. package/modern/PickersActionBar/PickersActionBar.js +18 -16
  174. package/modern/PickersLayout/PickersLayout.js +1 -15
  175. package/modern/PickersLayout/usePickerLayout.js +13 -47
  176. package/modern/PickersShortcuts/PickersShortcuts.js +13 -10
  177. package/modern/PickersTextField/PickersInputBase/PickersInputBase.js +7 -0
  178. package/modern/PickersTextField/PickersTextField.js +1 -1
  179. package/modern/TimeField/useTimeField.js +13 -11
  180. package/modern/TimePicker/TimePicker.js +2 -2
  181. package/modern/TimePicker/TimePickerToolbar.js +23 -35
  182. package/modern/hooks/index.js +3 -1
  183. package/modern/hooks/useIsValidValue.js +11 -0
  184. package/modern/hooks/usePickerActionsContext.js +15 -0
  185. package/modern/hooks/usePickerContext.js +1 -2
  186. package/modern/index.js +3 -2
  187. package/modern/internals/components/PickerProvider.js +17 -6
  188. package/modern/internals/components/PickersModalDialog.js +9 -3
  189. package/modern/internals/components/PickersPopper.js +11 -6
  190. package/modern/internals/components/PickersToolbar.js +1 -1
  191. package/modern/internals/hooks/date-helpers-hooks.js +4 -3
  192. package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.js +10 -12
  193. package/modern/internals/hooks/useField/buildSectionsFromFormat.js +1 -1
  194. package/modern/internals/hooks/useField/index.js +1 -1
  195. package/modern/internals/hooks/useField/useField.js +17 -1
  196. package/modern/internals/hooks/useField/useField.utils.js +2 -2
  197. package/modern/internals/hooks/useField/useFieldState.js +2 -2
  198. package/modern/internals/hooks/useField/useFieldV6TextField.js +2 -2
  199. package/modern/internals/hooks/useMobilePicker/useMobilePicker.js +9 -10
  200. package/modern/internals/hooks/useOpenState.js +3 -2
  201. package/modern/internals/hooks/usePicker/usePicker.js +0 -8
  202. package/modern/internals/hooks/usePicker/usePickerProvider.js +8 -5
  203. package/modern/internals/hooks/usePicker/usePickerValue.js +82 -217
  204. package/modern/internals/hooks/usePicker/usePickerViews.js +22 -14
  205. package/modern/internals/hooks/useStaticPicker/useStaticPicker.js +1 -4
  206. package/modern/internals/hooks/useUtils.js +1 -1
  207. package/modern/internals/index.js +5 -3
  208. package/modern/internals/models/index.js +2 -1
  209. package/modern/internals/models/manager.js +1 -0
  210. package/modern/internals/utils/date-utils.js +1 -1
  211. package/modern/internals/utils/valueManagers.js +4 -4
  212. package/modern/locales/index.js +1 -0
  213. package/modern/locales/nbNO.js +15 -19
  214. package/modern/locales/utils/getPickersLocalization.js +1 -1
  215. package/modern/locales/zhTW.js +73 -0
  216. package/modern/managers/index.js +3 -0
  217. package/modern/managers/useDateManager.js +47 -0
  218. package/modern/managers/useDateTimeManager.js +52 -0
  219. package/modern/managers/useTimeManager.js +43 -0
  220. package/modern/models/index.js +1 -0
  221. package/modern/models/manager.js +1 -0
  222. package/node/AdapterDateFns/AdapterDateFns.js +97 -97
  223. package/node/AdapterDateFnsJalali/AdapterDateFnsJalali.js +97 -96
  224. package/node/{AdapterDateFnsJalaliV3/AdapterDateFnsJalaliV3.js → AdapterDateFnsJalaliV2/AdapterDateFnsJalaliV2.js} +94 -101
  225. package/node/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.js +1 -1
  226. package/node/AdapterDateFnsV2/AdapterDateFnsV2.js +291 -0
  227. package/node/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.js +1 -1
  228. package/node/DateCalendar/DateCalendar.js +1 -1
  229. package/node/DateField/useDateField.js +12 -10
  230. package/node/DatePicker/DatePicker.js +1 -1
  231. package/node/DatePicker/DatePickerToolbar.js +10 -25
  232. package/node/DateTimeField/useDateTimeField.js +12 -10
  233. package/node/DateTimePicker/DateTimePicker.js +2 -2
  234. package/node/DateTimePicker/DateTimePickerTabs.js +7 -14
  235. package/node/DateTimePicker/DateTimePickerToolbar.js +43 -49
  236. package/node/DesktopDatePicker/DesktopDatePicker.js +9 -3
  237. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +13 -10
  238. package/node/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +1 -15
  239. package/node/DesktopTimePicker/DesktopTimePicker.js +3 -7
  240. package/node/MobileDatePicker/MobileDatePicker.js +2 -2
  241. package/node/MobileDateTimePicker/MobileDateTimePicker.js +2 -2
  242. package/node/MobileTimePicker/MobileTimePicker.js +2 -2
  243. package/node/PickersActionBar/PickersActionBar.js +20 -18
  244. package/node/PickersLayout/PickersLayout.js +1 -15
  245. package/node/PickersLayout/usePickerLayout.js +17 -51
  246. package/node/PickersShortcuts/PickersShortcuts.js +13 -10
  247. package/node/PickersTextField/PickersInputBase/PickersInputBase.js +7 -0
  248. package/node/PickersTextField/PickersTextField.js +1 -1
  249. package/node/TimeField/useTimeField.js +12 -10
  250. package/node/TimePicker/TimePicker.js +2 -2
  251. package/node/TimePicker/TimePickerToolbar.js +23 -35
  252. package/node/hooks/index.js +15 -1
  253. package/node/hooks/useIsValidValue.js +18 -0
  254. package/node/hooks/usePickerActionsContext.js +22 -0
  255. package/node/hooks/usePickerContext.js +1 -1
  256. package/node/index.js +13 -1
  257. package/node/internals/components/PickerProvider.js +18 -7
  258. package/node/internals/components/PickersModalDialog.js +9 -3
  259. package/node/internals/components/PickersPopper.js +11 -6
  260. package/node/internals/components/PickersToolbar.js +1 -1
  261. package/node/internals/hooks/date-helpers-hooks.js +4 -3
  262. package/node/internals/hooks/useDesktopPicker/useDesktopPicker.js +10 -12
  263. package/node/internals/hooks/useField/buildSectionsFromFormat.js +1 -1
  264. package/node/internals/hooks/useField/index.js +6 -0
  265. package/node/internals/hooks/useField/useField.js +18 -1
  266. package/node/internals/hooks/useField/useField.utils.js +2 -2
  267. package/node/internals/hooks/useField/useFieldState.js +2 -2
  268. package/node/internals/hooks/useField/useFieldV6TextField.js +2 -2
  269. package/node/internals/hooks/useMobilePicker/useMobilePicker.js +9 -10
  270. package/node/internals/hooks/useOpenState.js +4 -2
  271. package/node/internals/hooks/usePicker/usePicker.js +0 -9
  272. package/node/internals/hooks/usePicker/usePickerProvider.js +8 -5
  273. package/node/internals/hooks/usePicker/usePickerValue.js +82 -217
  274. package/node/internals/hooks/usePicker/usePickerViews.js +22 -15
  275. package/node/internals/hooks/useStaticPicker/useStaticPicker.js +1 -4
  276. package/node/internals/hooks/useUtils.js +1 -1
  277. package/node/internals/index.js +28 -20
  278. package/node/internals/models/index.js +11 -0
  279. package/node/internals/models/manager.js +5 -0
  280. package/node/internals/utils/date-utils.js +1 -1
  281. package/node/internals/utils/valueManagers.js +4 -4
  282. package/node/locales/index.js +11 -0
  283. package/node/locales/nbNO.js +15 -19
  284. package/node/locales/utils/getPickersLocalization.js +1 -1
  285. package/node/locales/zhTW.js +79 -0
  286. package/node/managers/index.js +26 -0
  287. package/node/managers/useDateManager.js +55 -0
  288. package/node/managers/useDateTimeManager.js +60 -0
  289. package/node/managers/useTimeManager.js +51 -0
  290. package/node/models/index.js +11 -0
  291. package/node/models/manager.js +5 -0
  292. package/package.json +3 -3
  293. package/themeAugmentation/props.d.ts +2 -3
  294. package/validation/extractValidationProps.d.ts +1 -1
  295. package/AdapterDateFnsJalaliV3/index.d.ts +0 -1
  296. package/AdapterDateFnsJalaliV3/index.js +0 -1
  297. package/AdapterDateFnsV3/index.d.ts +0 -1
  298. package/AdapterDateFnsV3/index.js +0 -1
  299. package/internals/hooks/defaultizedFieldProps.d.ts +0 -18
  300. package/internals/hooks/defaultizedFieldProps.js +0 -40
  301. package/modern/AdapterDateFnsJalaliV3/index.js +0 -1
  302. package/modern/AdapterDateFnsV3/index.js +0 -1
  303. package/modern/internals/hooks/defaultizedFieldProps.js +0 -40
  304. package/node/AdapterDateFnsV3/AdapterDateFnsV3.js +0 -299
  305. package/node/internals/hooks/defaultizedFieldProps.js +0 -50
@@ -5,24 +5,26 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.useDateField = void 0;
8
- var _valueManagers = require("../internals/utils/valueManagers");
9
8
  var _useField = require("../internals/hooks/useField");
10
- var _validation = require("../validation");
11
9
  var _hooks = require("../hooks");
12
- var _defaultizedFieldProps = require("../internals/hooks/defaultizedFieldProps");
13
- const useDateField = inProps => {
14
- const props = (0, _defaultizedFieldProps.useDefaultizedDateField)(inProps);
10
+ var _managers = require("../managers");
11
+ const useDateField = props => {
12
+ const manager = (0, _managers.useDateManager)(props);
15
13
  const {
16
14
  forwardedProps,
17
15
  internalProps
18
16
  } = (0, _hooks.useSplitFieldProps)(props, 'date');
17
+ const internalPropsWithDefaults = (0, _useField.useFieldInternalPropsWithDefaults)({
18
+ manager,
19
+ internalProps
20
+ });
19
21
  return (0, _useField.useField)({
20
22
  forwardedProps,
21
- internalProps,
22
- valueManager: _valueManagers.singleItemValueManager,
23
- fieldValueManager: _valueManagers.singleItemFieldValueManager,
24
- validator: _validation.validateDate,
25
- valueType: 'date'
23
+ internalProps: internalPropsWithDefaults,
24
+ valueManager: manager.internal_valueManager,
25
+ fieldValueManager: manager.internal_fieldValueManager,
26
+ validator: manager.validator,
27
+ valueType: manager.valueType
26
28
  });
27
29
  };
28
30
  exports.useDateField = useDateField;
@@ -66,7 +66,7 @@ process.env.NODE_ENV !== "production" ? DatePicker.propTypes = {
66
66
  autoFocus: _propTypes.default.bool,
67
67
  className: _propTypes.default.string,
68
68
  /**
69
- * If `true`, the popover or modal will close after submitting the full date.
69
+ * If `true`, the Picker will close after submitting the full date.
70
70
  * @default `true` for desktop, `false` for mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).
71
71
  */
72
72
  closeOnSelect: _propTypes.default.bool,
@@ -21,8 +21,9 @@ var _useUtils = require("../internals/hooks/useUtils");
21
21
  var _datePickerToolbarClasses = require("./datePickerToolbarClasses");
22
22
  var _dateUtils = require("../internals/utils/date-utils");
23
23
  var _useToolbarOwnerState = require("../internals/hooks/useToolbarOwnerState");
24
+ var _hooks = require("../hooks");
24
25
  var _jsxRuntime = require("react/jsx-runtime");
25
- const _excluded = ["value", "isLandscape", "onChange", "toolbarFormat", "toolbarPlaceholder", "views", "className", "classes", "onViewChange", "view"];
26
+ const _excluded = ["toolbarFormat", "toolbarPlaceholder", "className", "classes"];
26
27
  const useUtilityClasses = classes => {
27
28
  const slots = {
28
29
  root: ['root'],
@@ -65,21 +66,23 @@ const DatePickerToolbar = exports.DatePickerToolbar = /*#__PURE__*/React.forward
65
66
  name: 'MuiDatePickerToolbar'
66
67
  });
67
68
  const {
68
- value,
69
- isLandscape,
70
69
  toolbarFormat,
71
70
  toolbarPlaceholder = '––',
72
- views,
73
71
  className,
74
72
  classes: classesProp
75
73
  } = props,
76
74
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
77
75
  const utils = (0, _useUtils.useUtils)();
76
+ const {
77
+ value,
78
+ views,
79
+ orientation
80
+ } = (0, _hooks.usePickerContext)();
78
81
  const translations = (0, _usePickerTranslations.usePickerTranslations)();
79
82
  const ownerState = (0, _useToolbarOwnerState.useToolbarOwnerState)();
80
83
  const classes = useUtilityClasses(classesProp);
81
84
  const dateText = React.useMemo(() => {
82
- if (!value) {
85
+ if (!utils.isValid(value)) {
83
86
  return toolbarPlaceholder;
84
87
  }
85
88
  const formatFromViews = (0, _dateUtils.resolveDateFormat)(utils, {
@@ -91,12 +94,11 @@ const DatePickerToolbar = exports.DatePickerToolbar = /*#__PURE__*/React.forward
91
94
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(DatePickerToolbarRoot, (0, _extends2.default)({
92
95
  ref: ref,
93
96
  toolbarTitle: translations.datePickerToolbarTitle,
94
- isLandscape: isLandscape,
95
97
  className: (0, _clsx.default)(classes.root, className)
96
98
  }, other, {
97
99
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(DatePickerToolbarTitle, {
98
100
  variant: "h4",
99
- align: isLandscape ? 'left' : 'center',
101
+ align: orientation === 'landscape' ? 'left' : 'center',
100
102
  ownerState: ownerState,
101
103
  className: classes.title,
102
104
  children: dateText
@@ -118,14 +120,6 @@ process.env.NODE_ENV !== "production" ? DatePickerToolbar.propTypes = {
118
120
  * @default `true` for Desktop, `false` for Mobile.
119
121
  */
120
122
  hidden: _propTypes.default.bool,
121
- isLandscape: _propTypes.default.bool.isRequired,
122
- onChange: _propTypes.default.func.isRequired,
123
- /**
124
- * Callback called when a toolbar is clicked
125
- * @template TView
126
- * @param {TView} view The view to open
127
- */
128
- onViewChange: _propTypes.default.func.isRequired,
129
123
  /**
130
124
  * The system prop that allows defining system overrides as well as additional CSS styles.
131
125
  */
@@ -139,14 +133,5 @@ process.env.NODE_ENV !== "production" ? DatePickerToolbar.propTypes = {
139
133
  * Toolbar value placeholder—it is displayed when the value is empty.
140
134
  * @default "––"
141
135
  */
142
- toolbarPlaceholder: _propTypes.default.node,
143
- value: _propTypes.default.object,
144
- /**
145
- * Currently visible picker view.
146
- */
147
- view: _propTypes.default.oneOf(['day', 'month', 'year']).isRequired,
148
- /**
149
- * Available views.
150
- */
151
- views: _propTypes.default.arrayOf(_propTypes.default.oneOf(['day', 'month', 'year']).isRequired).isRequired
136
+ toolbarPlaceholder: _propTypes.default.node
152
137
  } : void 0;
@@ -5,24 +5,26 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.useDateTimeField = void 0;
8
- var _valueManagers = require("../internals/utils/valueManagers");
9
8
  var _useField = require("../internals/hooks/useField");
10
- var _validation = require("../validation");
11
9
  var _hooks = require("../hooks");
12
- var _defaultizedFieldProps = require("../internals/hooks/defaultizedFieldProps");
13
- const useDateTimeField = inProps => {
14
- const props = (0, _defaultizedFieldProps.useDefaultizedDateTimeField)(inProps);
10
+ var _managers = require("../managers");
11
+ const useDateTimeField = props => {
12
+ const manager = (0, _managers.useDateTimeManager)(props);
15
13
  const {
16
14
  forwardedProps,
17
15
  internalProps
18
16
  } = (0, _hooks.useSplitFieldProps)(props, 'date-time');
17
+ const internalPropsWithDefaults = (0, _useField.useFieldInternalPropsWithDefaults)({
18
+ manager,
19
+ internalProps
20
+ });
19
21
  return (0, _useField.useField)({
20
22
  forwardedProps,
21
- internalProps,
22
- valueManager: _valueManagers.singleItemValueManager,
23
- fieldValueManager: _valueManagers.singleItemFieldValueManager,
24
- validator: _validation.validateDateTime,
25
- valueType: 'date-time'
23
+ internalProps: internalPropsWithDefaults,
24
+ valueManager: manager.internal_valueManager,
25
+ fieldValueManager: manager.internal_fieldValueManager,
26
+ validator: manager.validator,
27
+ valueType: manager.valueType
26
28
  });
27
29
  };
28
30
  exports.useDateTimeField = useDateTimeField;
@@ -76,8 +76,8 @@ process.env.NODE_ENV !== "production" ? DateTimePicker.propTypes = {
76
76
  autoFocus: _propTypes.default.bool,
77
77
  className: _propTypes.default.string,
78
78
  /**
79
- * If `true`, the popover or modal will close after submitting the full date.
80
- * @default `true` for desktop, `false` for mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).
79
+ * If `true`, the Picker will close after submitting the full date.
80
+ * @default false
81
81
  */
82
82
  closeOnSelect: _propTypes.default.bool,
83
83
  /**
@@ -19,6 +19,7 @@ var _usePickerTranslations = require("../hooks/usePickerTranslations");
19
19
  var _dateTimePickerTabsClasses = require("./dateTimePickerTabsClasses");
20
20
  var _dateUtils = require("../internals/utils/date-utils");
21
21
  var _usePickerPrivateContext = require("../internals/hooks/usePickerPrivateContext");
22
+ var _hooks = require("../hooks");
22
23
  var _jsxRuntime = require("react/jsx-runtime");
23
24
  const viewToTab = view => {
24
25
  if ((0, _dateUtils.isDatePickerView)(view)) {
@@ -72,9 +73,7 @@ const DateTimePickerTabs = exports.DateTimePickerTabs = function DateTimePickerT
72
73
  });
73
74
  const {
74
75
  dateIcon = /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.DateRangeIcon, {}),
75
- onViewChange,
76
76
  timeIcon = /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.TimeIcon, {}),
77
- view,
78
77
  hidden = typeof window === 'undefined' || window.innerHeight < 667,
79
78
  className,
80
79
  classes: classesProp,
@@ -84,9 +83,13 @@ const DateTimePickerTabs = exports.DateTimePickerTabs = function DateTimePickerT
84
83
  const {
85
84
  ownerState
86
85
  } = (0, _usePickerPrivateContext.usePickerPrivateContext)();
86
+ const {
87
+ view,
88
+ setView
89
+ } = (0, _hooks.usePickerContext)();
87
90
  const classes = useUtilityClasses(classesProp);
88
91
  const handleChange = (event, value) => {
89
- onViewChange(tabToView(value));
92
+ setView(tabToView(value));
90
93
  };
91
94
  if (hidden) {
92
95
  return null;
@@ -133,12 +136,6 @@ process.env.NODE_ENV !== "production" ? DateTimePickerTabs.propTypes = {
133
136
  * @default `window.innerHeight < 667` for `DesktopDateTimePicker` and `MobileDateTimePicker`, `displayStaticWrapperAs === 'desktop'` for `StaticDateTimePicker`
134
137
  */
135
138
  hidden: _propTypes.default.bool,
136
- /**
137
- * Callback called when a tab is clicked.
138
- * @template TView
139
- * @param {TView} view The view to open
140
- */
141
- onViewChange: _propTypes.default.func.isRequired,
142
139
  /**
143
140
  * The system prop that allows defining system overrides as well as additional CSS styles.
144
141
  */
@@ -147,9 +144,5 @@ process.env.NODE_ENV !== "production" ? DateTimePickerTabs.propTypes = {
147
144
  * Time tab icon.
148
145
  * @default Time
149
146
  */
150
- timeIcon: _propTypes.default.node,
151
- /**
152
- * Currently visible picker view.
153
- */
154
- view: _propTypes.default.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']).isRequired
147
+ timeIcon: _propTypes.default.node
155
148
  } : void 0;
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  value: true
8
8
  });
9
9
  exports.DateTimePickerToolbar = DateTimePickerToolbar;
10
- exports.DateTimePickerToolbarForceDesktopVariant = void 0;
10
+ exports.DateTimePickerToolbarOverrideContext = void 0;
11
11
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
12
12
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
13
13
  var React = _interopRequireWildcard(require("react"));
@@ -30,7 +30,7 @@ var _pickersToolbarClasses = require("../internals/components/pickersToolbarClas
30
30
  var _usePickerContext = require("../hooks/usePickerContext");
31
31
  var _useToolbarOwnerState = require("../internals/hooks/useToolbarOwnerState");
32
32
  var _jsxRuntime = require("react/jsx-runtime");
33
- const _excluded = ["ampm", "ampmInClock", "value", "onChange", "view", "isLandscape", "onViewChange", "toolbarFormat", "toolbarPlaceholder", "views", "toolbarTitle", "className", "classes"];
33
+ const _excluded = ["ampm", "ampmInClock", "toolbarFormat", "toolbarPlaceholder", "toolbarTitle", "className", "classes"];
34
34
  const useUtilityClasses = (classes, ownerState) => {
35
35
  const {
36
36
  pickerOrientation,
@@ -214,10 +214,11 @@ const DateTimePickerToolbarAmPmSelection = (0, _styles.styled)('div', {
214
214
  });
215
215
 
216
216
  /**
217
- * If this context value is set to true, the toolbar will always be rendered in the desktop mode.
217
+ * If `forceDesktopVariant` is set to `true`, the toolbar will always be rendered in the desktop mode.
218
+ * If `onViewChange` is defined, the toolbar will call it instead of calling the default handler from `usePickerContext`.
218
219
  * This is used by the Date Time Range Picker Toolbar.
219
220
  */
220
- const DateTimePickerToolbarForceDesktopVariant = exports.DateTimePickerToolbarForceDesktopVariant = /*#__PURE__*/React.createContext(false);
221
+ const DateTimePickerToolbarOverrideContext = exports.DateTimePickerToolbarOverrideContext = /*#__PURE__*/React.createContext(null);
221
222
 
222
223
  /**
223
224
  * Demos:
@@ -237,40 +238,45 @@ function DateTimePickerToolbar(inProps) {
237
238
  const {
238
239
  ampm,
239
240
  ampmInClock,
240
- value,
241
- onChange,
242
- view,
243
- isLandscape,
244
- onViewChange,
245
241
  toolbarFormat,
246
242
  toolbarPlaceholder = '––',
247
- views,
248
243
  toolbarTitle: inToolbarTitle,
249
244
  className,
250
245
  classes: classesProp
251
246
  } = props,
252
247
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
253
248
  const {
249
+ value: valueContext,
250
+ setValue: setValueContext,
254
251
  disabled,
255
252
  readOnly,
256
- variant
253
+ variant,
254
+ orientation,
255
+ view: viewContext,
256
+ setView: setViewContext,
257
+ views
257
258
  } = (0, _usePickerContext.usePickerContext)();
259
+ const translations = (0, _usePickerTranslations.usePickerTranslations)();
258
260
  const ownerState = (0, _useToolbarOwnerState.useToolbarOwnerState)();
259
261
  const classes = useUtilityClasses(classesProp, ownerState);
260
262
  const utils = (0, _useUtils.useUtils)();
263
+ const overrides = React.useContext(DateTimePickerToolbarOverrideContext);
264
+ const value = overrides ? overrides.value : valueContext;
265
+ const setValue = overrides ? overrides.setValue : setValueContext;
266
+ const view = overrides ? overrides.view : viewContext;
267
+ const setView = overrides ? overrides.setView : setViewContext;
261
268
  const {
262
269
  meridiemMode,
263
270
  handleMeridiemChange
264
- } = (0, _dateHelpersHooks.useMeridiemMode)(value, ampm, onChange);
265
- const translations = (0, _usePickerTranslations.usePickerTranslations)();
266
- const forceDesktopVariant = React.useContext(DateTimePickerToolbarForceDesktopVariant);
267
- const toolbarVariant = forceDesktopVariant ? 'desktop' : variant;
271
+ } = (0, _dateHelpersHooks.useMeridiemMode)(value, ampm, newValue => setValue(newValue, {
272
+ changeImportance: 'set'
273
+ }));
274
+ const toolbarVariant = overrides?.forceDesktopVariant ? 'desktop' : variant;
268
275
  const isDesktop = toolbarVariant === 'desktop';
269
276
  const showAmPmControl = Boolean(ampm && !ampmInClock);
270
277
  const toolbarTitle = inToolbarTitle ?? translations.dateTimePickerToolbarTitle;
271
- const formatHours = time => ampm ? utils.format(time, 'hours12h') : utils.format(time, 'hours24h');
272
278
  const dateText = React.useMemo(() => {
273
- if (!value) {
279
+ if (!utils.isValid(value)) {
274
280
  return toolbarPlaceholder;
275
281
  }
276
282
  if (toolbarFormat) {
@@ -278,8 +284,13 @@ function DateTimePickerToolbar(inProps) {
278
284
  }
279
285
  return utils.format(value, 'shortDate');
280
286
  }, [value, toolbarFormat, toolbarPlaceholder, utils]);
287
+ const formatSection = (format, fallback) => {
288
+ if (!utils.isValid(value)) {
289
+ return fallback;
290
+ }
291
+ return utils.format(value, format);
292
+ };
281
293
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(DateTimePickerToolbarRoot, (0, _extends2.default)({
282
- isLandscape: isLandscape,
283
294
  className: (0, _clsx.default)(classes.root, className),
284
295
  toolbarTitle: toolbarTitle,
285
296
  toolbarVariant: toolbarVariant
@@ -291,13 +302,13 @@ function DateTimePickerToolbar(inProps) {
291
302
  children: [views.includes('year') && /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickersToolbarButton.PickersToolbarButton, {
292
303
  tabIndex: -1,
293
304
  variant: "subtitle1",
294
- onClick: () => onViewChange('year'),
305
+ onClick: () => setView('year'),
295
306
  selected: view === 'year',
296
- value: value ? utils.format(value, 'year') : '–'
307
+ value: formatSection('year', '–')
297
308
  }), views.includes('day') && /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickersToolbarButton.PickersToolbarButton, {
298
309
  tabIndex: -1,
299
310
  variant: isDesktop ? 'h5' : 'h4',
300
- onClick: () => onViewChange('day'),
311
+ onClick: () => setView('day'),
301
312
  selected: view === 'day',
302
313
  value: dateText
303
314
  })]
@@ -312,10 +323,10 @@ function DateTimePickerToolbar(inProps) {
312
323
  children: [views.includes('hours') && /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
313
324
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_PickersToolbarButton.PickersToolbarButton, {
314
325
  variant: isDesktop ? 'h5' : 'h3',
315
- width: isDesktop && !isLandscape ? _dimensions.MULTI_SECTION_CLOCK_SECTION_WIDTH : undefined,
316
- onClick: () => onViewChange('hours'),
326
+ width: isDesktop && orientation === 'portrait' ? _dimensions.MULTI_SECTION_CLOCK_SECTION_WIDTH : undefined,
327
+ onClick: () => setView('hours'),
317
328
  selected: view === 'hours',
318
- value: value ? formatHours(value) : '--'
329
+ value: formatSection(ampm ? 'hours12h' : 'hours24h', '--')
319
330
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(DateTimePickerToolbarSeparator, {
320
331
  variant: isDesktop ? 'h5' : 'h3',
321
332
  value: ":",
@@ -324,10 +335,10 @@ function DateTimePickerToolbar(inProps) {
324
335
  toolbarVariant: toolbarVariant
325
336
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickersToolbarButton.PickersToolbarButton, {
326
337
  variant: isDesktop ? 'h5' : 'h3',
327
- width: isDesktop && !isLandscape ? _dimensions.MULTI_SECTION_CLOCK_SECTION_WIDTH : undefined,
328
- onClick: () => onViewChange('minutes'),
338
+ width: isDesktop && orientation === 'portrait' ? _dimensions.MULTI_SECTION_CLOCK_SECTION_WIDTH : undefined,
339
+ onClick: () => setView('minutes'),
329
340
  selected: view === 'minutes' || !views.includes('minutes') && view === 'hours',
330
- value: value ? utils.format(value, 'minutes') : '--',
341
+ value: formatSection('minutes', '--'),
331
342
  disabled: !views.includes('minutes')
332
343
  })]
333
344
  }), views.includes('seconds') && /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
@@ -339,10 +350,10 @@ function DateTimePickerToolbar(inProps) {
339
350
  toolbarVariant: toolbarVariant
340
351
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickersToolbarButton.PickersToolbarButton, {
341
352
  variant: isDesktop ? 'h5' : 'h3',
342
- width: isDesktop && !isLandscape ? _dimensions.MULTI_SECTION_CLOCK_SECTION_WIDTH : undefined,
343
- onClick: () => onViewChange('seconds'),
353
+ width: isDesktop && orientation === 'portrait' ? _dimensions.MULTI_SECTION_CLOCK_SECTION_WIDTH : undefined,
354
+ onClick: () => setView('seconds'),
344
355
  selected: view === 'seconds',
345
- value: value ? utils.format(value, 'seconds') : '--'
356
+ value: formatSection('seconds', '--')
346
357
  })]
347
358
  })]
348
359
  }), showAmPmControl && !isDesktop && /*#__PURE__*/(0, _jsxRuntime.jsxs)(DateTimePickerToolbarAmPmSelection, {
@@ -365,7 +376,7 @@ function DateTimePickerToolbar(inProps) {
365
376
  })]
366
377
  }), ampm && isDesktop && /*#__PURE__*/(0, _jsxRuntime.jsx)(_PickersToolbarButton.PickersToolbarButton, {
367
378
  variant: "h5",
368
- onClick: () => onViewChange('meridiem'),
379
+ onClick: () => setView('meridiem'),
369
380
  selected: view === 'meridiem',
370
381
  value: value && meridiemMode ? (0, _dateUtils.formatMeridiem)(utils, meridiemMode) : '--',
371
382
  width: _dimensions.MULTI_SECTION_CLOCK_SECTION_WIDTH
@@ -390,14 +401,6 @@ process.env.NODE_ENV !== "production" ? DateTimePickerToolbar.propTypes = {
390
401
  * @default `true` for Desktop, `false` for Mobile.
391
402
  */
392
403
  hidden: _propTypes.default.bool,
393
- isLandscape: _propTypes.default.bool.isRequired,
394
- onChange: _propTypes.default.func.isRequired,
395
- /**
396
- * Callback called when a toolbar is clicked
397
- * @template TView
398
- * @param {TView} view The view to open
399
- */
400
- onViewChange: _propTypes.default.func.isRequired,
401
404
  /**
402
405
  * The system prop that allows defining system overrides as well as additional CSS styles.
403
406
  */
@@ -415,14 +418,5 @@ process.env.NODE_ENV !== "production" ? DateTimePickerToolbar.propTypes = {
415
418
  /**
416
419
  * If provided, it will be used instead of `dateTimePickerToolbarTitle` from localization.
417
420
  */
418
- toolbarTitle: _propTypes.default.node,
419
- value: _propTypes.default.object,
420
- /**
421
- * Currently visible picker view.
422
- */
423
- view: _propTypes.default.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']),
424
- /**
425
- * Available views.
426
- */
427
- views: _propTypes.default.arrayOf(_propTypes.default.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']).isRequired).isRequired
421
+ toolbarTitle: _propTypes.default.node
428
422
  } : void 0;
@@ -23,6 +23,8 @@ var _DateField = require("../DateField");
23
23
  var _dateViewRenderers = require("../dateViewRenderers");
24
24
  var _dateUtils = require("../internals/utils/date-utils");
25
25
  var _getPickersLocalization = require("../locales/utils/getPickersLocalization");
26
+ const emptyActions = [];
27
+
26
28
  /**
27
29
  * Demos:
28
30
  *
@@ -47,6 +49,7 @@ const DesktopDatePicker = exports.DesktopDatePicker = /*#__PURE__*/React.forward
47
49
 
48
50
  // Props with the default values specific to the desktop variant
49
51
  const props = (0, _extends2.default)({}, defaultizedProps, {
52
+ closeOnSelect: defaultizedProps.closeOnSelect ?? true,
50
53
  viewRenderers,
51
54
  format: (0, _dateUtils.resolveDateFormat)(utils, defaultizedProps, false),
52
55
  yearsPerRow: defaultizedProps.yearsPerRow ?? 4,
@@ -60,7 +63,10 @@ const DesktopDatePicker = exports.DesktopDatePicker = /*#__PURE__*/React.forward
60
63
  }),
61
64
  toolbar: (0, _extends2.default)({
62
65
  hidden: true
63
- }, defaultizedProps.slotProps?.toolbar)
66
+ }, defaultizedProps.slotProps?.toolbar),
67
+ actionBar: ownerState => (0, _extends2.default)({
68
+ actions: emptyActions
69
+ }, (0, _resolveComponentProps.default)(defaultizedProps.slotProps?.actionBar, ownerState))
64
70
  })
65
71
  });
66
72
  const {
@@ -93,8 +99,8 @@ DesktopDatePicker.propTypes = {
93
99
  autoFocus: _propTypes.default.bool,
94
100
  className: _propTypes.default.string,
95
101
  /**
96
- * If `true`, the popover or modal will close after submitting the full date.
97
- * @default `true` for desktop, `false` for mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).
102
+ * If `true`, the Picker will close after submitting the full date.
103
+ * @default true
98
104
  */
99
105
  closeOnSelect: _propTypes.default.bool,
100
106
  /**
@@ -34,7 +34,12 @@ var _dateUtils = require("../internals/utils/date-utils");
34
34
  var _getPickersLocalization = require("../locales/utils/getPickersLocalization");
35
35
  var _jsxRuntime = require("react/jsx-runtime");
36
36
  const _excluded = ["openTo", "focusedView", "timeViewsCount"];
37
- const rendererInterceptor = function rendererInterceptor(inViewRenderers, popperView, rendererProps) {
37
+ const rendererInterceptor = function RendererInterceptor(props) {
38
+ const {
39
+ viewRenderers,
40
+ popperView,
41
+ rendererProps
42
+ } = props;
38
43
  const {
39
44
  openTo,
40
45
  focusedView,
@@ -53,8 +58,10 @@ const rendererInterceptor = function rendererInterceptor(inViewRenderers, popper
53
58
  }]
54
59
  });
55
60
  const isTimeViewActive = (0, _timeUtils.isInternalTimeView)(popperView);
61
+ const dateView = isTimeViewActive ? 'day' : popperView;
62
+ const timeView = isTimeViewActive ? popperView : 'hours';
56
63
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
57
- children: [inViewRenderers[!isTimeViewActive ? popperView : 'day']?.((0, _extends2.default)({}, rendererProps, {
64
+ children: [viewRenderers[dateView]?.((0, _extends2.default)({}, rendererProps, {
58
65
  view: !isTimeViewActive ? popperView : 'day',
59
66
  focusedView: focusedView && (0, _dateUtils.isDatePickerView)(focusedView) ? focusedView : null,
60
67
  views: rendererProps.views.filter(_dateUtils.isDatePickerView),
@@ -67,7 +74,7 @@ const rendererInterceptor = function rendererInterceptor(inViewRenderers, popper
67
74
  sx: {
68
75
  gridColumn: 2
69
76
  }
70
- }), inViewRenderers[isTimeViewActive ? popperView : 'hours']?.((0, _extends2.default)({}, finalProps, {
77
+ }), viewRenderers[timeView]?.((0, _extends2.default)({}, finalProps, {
71
78
  view: isTimeViewActive ? popperView : 'hours',
72
79
  focusedView: focusedView && (0, _timeUtils.isInternalTimeView)(focusedView) ? focusedView : null,
73
80
  openTo: (0, _timeUtils.isInternalTimeView)(openTo) ? openTo : 'hours',
@@ -115,7 +122,6 @@ const DesktopDateTimePicker = exports.DesktopDateTimePicker = /*#__PURE__*/React
115
122
  // Need to avoid adding the `meridiem` view when unexpected renderer is specified
116
123
  const shouldHoursRendererContainMeridiemView = viewRenderers.hours?.name === _timeViewRenderers.renderMultiSectionDigitalClockTimeView.name;
117
124
  const views = !shouldHoursRendererContainMeridiemView ? resolvedViews.filter(view => view !== 'meridiem') : resolvedViews;
118
- const actionBarActions = shouldRenderTimeInASingleColumn ? [] : ['accept'];
119
125
 
120
126
  // Props with the default values specific to the desktop variant
121
127
  const props = (0, _extends2.default)({}, defaultizedProps, {
@@ -142,10 +148,7 @@ const DesktopDateTimePicker = exports.DesktopDateTimePicker = /*#__PURE__*/React
142
148
  }, defaultizedProps.slotProps?.toolbar),
143
149
  tabs: (0, _extends2.default)({
144
150
  hidden: true
145
- }, defaultizedProps.slotProps?.tabs),
146
- actionBar: ownerState => (0, _extends2.default)({
147
- actions: actionBarActions
148
- }, (0, _resolveComponentProps.default)(defaultizedProps.slotProps?.actionBar, ownerState))
151
+ }, defaultizedProps.slotProps?.tabs)
149
152
  })
150
153
  });
151
154
  const {
@@ -189,8 +192,8 @@ DesktopDateTimePicker.propTypes = {
189
192
  autoFocus: _propTypes.default.bool,
190
193
  className: _propTypes.default.string,
191
194
  /**
192
- * If `true`, the popover or modal will close after submitting the full date.
193
- * @default `true` for desktop, `false` for mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).
195
+ * If `true`, the Picker will close after submitting the full date.
196
+ * @default false
194
197
  */
195
198
  closeOnSelect: _propTypes.default.bool,
196
199
  /**
@@ -73,17 +73,6 @@ process.env.NODE_ENV !== "production" ? DesktopDateTimePickerLayout.propTypes =
73
73
  */
74
74
  classes: _propTypes.default.object,
75
75
  className: _propTypes.default.string,
76
- isValid: _propTypes.default.func.isRequired,
77
- onAccept: _propTypes.default.func.isRequired,
78
- onCancel: _propTypes.default.func.isRequired,
79
- onChange: _propTypes.default.func.isRequired,
80
- onClear: _propTypes.default.func.isRequired,
81
- onClose: _propTypes.default.func.isRequired,
82
- onDismiss: _propTypes.default.func.isRequired,
83
- onOpen: _propTypes.default.func.isRequired,
84
- onSelectShortcut: _propTypes.default.func.isRequired,
85
- onSetToday: _propTypes.default.func.isRequired,
86
- onViewChange: _propTypes.default.func.isRequired,
87
76
  /**
88
77
  * The props used for each component slot.
89
78
  * @default {}
@@ -97,8 +86,5 @@ process.env.NODE_ENV !== "production" ? DesktopDateTimePickerLayout.propTypes =
97
86
  /**
98
87
  * The system prop that allows defining system overrides as well as additional CSS styles.
99
88
  */
100
- sx: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object, _propTypes.default.bool])), _propTypes.default.func, _propTypes.default.object]),
101
- value: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.object), _propTypes.default.object]),
102
- view: _propTypes.default.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']),
103
- views: _propTypes.default.arrayOf(_propTypes.default.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']).isRequired).isRequired
89
+ sx: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object, _propTypes.default.bool])), _propTypes.default.func, _propTypes.default.object])
104
90
  } : void 0;
@@ -53,7 +53,6 @@ const DesktopTimePicker = exports.DesktopTimePicker = /*#__PURE__*/React.forward
53
53
  meridiem: renderTimeView
54
54
  }, defaultizedProps.viewRenderers);
55
55
  const ampmInClock = defaultizedProps.ampmInClock ?? true;
56
- const actionBarActions = shouldRenderTimeInASingleColumn ? [] : ['accept'];
57
56
  // Need to avoid adding the `meridiem` view when unexpected renderer is specified
58
57
  const shouldHoursRendererContainMeridiemView = viewRenderers.hours?.name === _timeViewRenderers.renderMultiSectionDigitalClockTimeView.name;
59
58
  const views = !shouldHoursRendererContainMeridiemView ? resolvedViews.filter(view => view !== 'meridiem') : resolvedViews;
@@ -78,10 +77,7 @@ const DesktopTimePicker = exports.DesktopTimePicker = /*#__PURE__*/React.forward
78
77
  toolbar: (0, _extends2.default)({
79
78
  hidden: true,
80
79
  ampmInClock
81
- }, defaultizedProps.slotProps?.toolbar),
82
- actionBar: (0, _extends2.default)({
83
- actions: actionBarActions
84
- }, defaultizedProps.slotProps?.actionBar)
80
+ }, defaultizedProps.slotProps?.toolbar)
85
81
  })
86
82
  });
87
83
  const {
@@ -124,8 +120,8 @@ DesktopTimePicker.propTypes = {
124
120
  autoFocus: _propTypes.default.bool,
125
121
  className: _propTypes.default.string,
126
122
  /**
127
- * If `true`, the popover or modal will close after submitting the full date.
128
- * @default `true` for desktop, `false` for mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).
123
+ * If `true`, the Picker will close after submitting the full date.
124
+ * @default false
129
125
  */
130
126
  closeOnSelect: _propTypes.default.bool,
131
127
  /**
@@ -90,8 +90,8 @@ MobileDatePicker.propTypes = {
90
90
  autoFocus: _propTypes.default.bool,
91
91
  className: _propTypes.default.string,
92
92
  /**
93
- * If `true`, the popover or modal will close after submitting the full date.
94
- * @default `true` for desktop, `false` for mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).
93
+ * If `true`, the Picker will close after submitting the full date.
94
+ * @default false
95
95
  */
96
96
  closeOnSelect: _propTypes.default.bool,
97
97
  /**
@@ -110,8 +110,8 @@ MobileDateTimePicker.propTypes = {
110
110
  autoFocus: _propTypes.default.bool,
111
111
  className: _propTypes.default.string,
112
112
  /**
113
- * If `true`, the popover or modal will close after submitting the full date.
114
- * @default `true` for desktop, `false` for mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).
113
+ * If `true`, the Picker will close after submitting the full date.
114
+ * @default false
115
115
  */
116
116
  closeOnSelect: _propTypes.default.bool,
117
117
  /**
@@ -103,8 +103,8 @@ MobileTimePicker.propTypes = {
103
103
  autoFocus: _propTypes.default.bool,
104
104
  className: _propTypes.default.string,
105
105
  /**
106
- * If `true`, the popover or modal will close after submitting the full date.
107
- * @default `true` for desktop, `false` for mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).
106
+ * If `true`, the Picker will close after submitting the full date.
107
+ * @default false
108
108
  */
109
109
  closeOnSelect: _propTypes.default.bool,
110
110
  /**