@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
@@ -2,7 +2,7 @@
2
2
 
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
5
- const _excluded = ["ampm", "ampmInClock", "value", "onChange", "view", "isLandscape", "onViewChange", "toolbarFormat", "toolbarPlaceholder", "views", "toolbarTitle", "className", "classes"];
5
+ const _excluded = ["ampm", "ampmInClock", "toolbarFormat", "toolbarPlaceholder", "toolbarTitle", "className", "classes"];
6
6
  import * as React from 'react';
7
7
  import clsx from 'clsx';
8
8
  import PropTypes from 'prop-types';
@@ -206,10 +206,11 @@ const DateTimePickerToolbarAmPmSelection = styled('div', {
206
206
  });
207
207
 
208
208
  /**
209
- * If this context value is set to true, the toolbar will always be rendered in the desktop mode.
209
+ * If `forceDesktopVariant` is set to `true`, the toolbar will always be rendered in the desktop mode.
210
+ * If `onViewChange` is defined, the toolbar will call it instead of calling the default handler from `usePickerContext`.
210
211
  * This is used by the Date Time Range Picker Toolbar.
211
212
  */
212
- export const DateTimePickerToolbarForceDesktopVariant = /*#__PURE__*/React.createContext(false);
213
+ export const DateTimePickerToolbarOverrideContext = /*#__PURE__*/React.createContext(null);
213
214
 
214
215
  /**
215
216
  * Demos:
@@ -229,40 +230,45 @@ function DateTimePickerToolbar(inProps) {
229
230
  const {
230
231
  ampm,
231
232
  ampmInClock,
232
- value,
233
- onChange,
234
- view,
235
- isLandscape,
236
- onViewChange,
237
233
  toolbarFormat,
238
234
  toolbarPlaceholder = '––',
239
- views,
240
235
  toolbarTitle: inToolbarTitle,
241
236
  className,
242
237
  classes: classesProp
243
238
  } = props,
244
239
  other = _objectWithoutPropertiesLoose(props, _excluded);
245
240
  const {
241
+ value: valueContext,
242
+ setValue: setValueContext,
246
243
  disabled,
247
244
  readOnly,
248
- variant
245
+ variant,
246
+ orientation,
247
+ view: viewContext,
248
+ setView: setViewContext,
249
+ views
249
250
  } = usePickerContext();
251
+ const translations = usePickerTranslations();
250
252
  const ownerState = useToolbarOwnerState();
251
253
  const classes = useUtilityClasses(classesProp, ownerState);
252
254
  const utils = useUtils();
255
+ const overrides = React.useContext(DateTimePickerToolbarOverrideContext);
256
+ const value = overrides ? overrides.value : valueContext;
257
+ const setValue = overrides ? overrides.setValue : setValueContext;
258
+ const view = overrides ? overrides.view : viewContext;
259
+ const setView = overrides ? overrides.setView : setViewContext;
253
260
  const {
254
261
  meridiemMode,
255
262
  handleMeridiemChange
256
- } = useMeridiemMode(value, ampm, onChange);
257
- const translations = usePickerTranslations();
258
- const forceDesktopVariant = React.useContext(DateTimePickerToolbarForceDesktopVariant);
259
- const toolbarVariant = forceDesktopVariant ? 'desktop' : variant;
263
+ } = useMeridiemMode(value, ampm, newValue => setValue(newValue, {
264
+ changeImportance: 'set'
265
+ }));
266
+ const toolbarVariant = overrides?.forceDesktopVariant ? 'desktop' : variant;
260
267
  const isDesktop = toolbarVariant === 'desktop';
261
268
  const showAmPmControl = Boolean(ampm && !ampmInClock);
262
269
  const toolbarTitle = inToolbarTitle ?? translations.dateTimePickerToolbarTitle;
263
- const formatHours = time => ampm ? utils.format(time, 'hours12h') : utils.format(time, 'hours24h');
264
270
  const dateText = React.useMemo(() => {
265
- if (!value) {
271
+ if (!utils.isValid(value)) {
266
272
  return toolbarPlaceholder;
267
273
  }
268
274
  if (toolbarFormat) {
@@ -270,8 +276,13 @@ function DateTimePickerToolbar(inProps) {
270
276
  }
271
277
  return utils.format(value, 'shortDate');
272
278
  }, [value, toolbarFormat, toolbarPlaceholder, utils]);
279
+ const formatSection = (format, fallback) => {
280
+ if (!utils.isValid(value)) {
281
+ return fallback;
282
+ }
283
+ return utils.format(value, format);
284
+ };
273
285
  return /*#__PURE__*/_jsxs(DateTimePickerToolbarRoot, _extends({
274
- isLandscape: isLandscape,
275
286
  className: clsx(classes.root, className),
276
287
  toolbarTitle: toolbarTitle,
277
288
  toolbarVariant: toolbarVariant
@@ -283,13 +294,13 @@ function DateTimePickerToolbar(inProps) {
283
294
  children: [views.includes('year') && /*#__PURE__*/_jsx(PickersToolbarButton, {
284
295
  tabIndex: -1,
285
296
  variant: "subtitle1",
286
- onClick: () => onViewChange('year'),
297
+ onClick: () => setView('year'),
287
298
  selected: view === 'year',
288
- value: value ? utils.format(value, 'year') : '–'
299
+ value: formatSection('year', '–')
289
300
  }), views.includes('day') && /*#__PURE__*/_jsx(PickersToolbarButton, {
290
301
  tabIndex: -1,
291
302
  variant: isDesktop ? 'h5' : 'h4',
292
- onClick: () => onViewChange('day'),
303
+ onClick: () => setView('day'),
293
304
  selected: view === 'day',
294
305
  value: dateText
295
306
  })]
@@ -304,10 +315,10 @@ function DateTimePickerToolbar(inProps) {
304
315
  children: [views.includes('hours') && /*#__PURE__*/_jsxs(React.Fragment, {
305
316
  children: [/*#__PURE__*/_jsx(PickersToolbarButton, {
306
317
  variant: isDesktop ? 'h5' : 'h3',
307
- width: isDesktop && !isLandscape ? MULTI_SECTION_CLOCK_SECTION_WIDTH : undefined,
308
- onClick: () => onViewChange('hours'),
318
+ width: isDesktop && orientation === 'portrait' ? MULTI_SECTION_CLOCK_SECTION_WIDTH : undefined,
319
+ onClick: () => setView('hours'),
309
320
  selected: view === 'hours',
310
- value: value ? formatHours(value) : '--'
321
+ value: formatSection(ampm ? 'hours12h' : 'hours24h', '--')
311
322
  }), /*#__PURE__*/_jsx(DateTimePickerToolbarSeparator, {
312
323
  variant: isDesktop ? 'h5' : 'h3',
313
324
  value: ":",
@@ -316,10 +327,10 @@ function DateTimePickerToolbar(inProps) {
316
327
  toolbarVariant: toolbarVariant
317
328
  }), /*#__PURE__*/_jsx(PickersToolbarButton, {
318
329
  variant: isDesktop ? 'h5' : 'h3',
319
- width: isDesktop && !isLandscape ? MULTI_SECTION_CLOCK_SECTION_WIDTH : undefined,
320
- onClick: () => onViewChange('minutes'),
330
+ width: isDesktop && orientation === 'portrait' ? MULTI_SECTION_CLOCK_SECTION_WIDTH : undefined,
331
+ onClick: () => setView('minutes'),
321
332
  selected: view === 'minutes' || !views.includes('minutes') && view === 'hours',
322
- value: value ? utils.format(value, 'minutes') : '--',
333
+ value: formatSection('minutes', '--'),
323
334
  disabled: !views.includes('minutes')
324
335
  })]
325
336
  }), views.includes('seconds') && /*#__PURE__*/_jsxs(React.Fragment, {
@@ -331,10 +342,10 @@ function DateTimePickerToolbar(inProps) {
331
342
  toolbarVariant: toolbarVariant
332
343
  }), /*#__PURE__*/_jsx(PickersToolbarButton, {
333
344
  variant: isDesktop ? 'h5' : 'h3',
334
- width: isDesktop && !isLandscape ? MULTI_SECTION_CLOCK_SECTION_WIDTH : undefined,
335
- onClick: () => onViewChange('seconds'),
345
+ width: isDesktop && orientation === 'portrait' ? MULTI_SECTION_CLOCK_SECTION_WIDTH : undefined,
346
+ onClick: () => setView('seconds'),
336
347
  selected: view === 'seconds',
337
- value: value ? utils.format(value, 'seconds') : '--'
348
+ value: formatSection('seconds', '--')
338
349
  })]
339
350
  })]
340
351
  }), showAmPmControl && !isDesktop && /*#__PURE__*/_jsxs(DateTimePickerToolbarAmPmSelection, {
@@ -357,7 +368,7 @@ function DateTimePickerToolbar(inProps) {
357
368
  })]
358
369
  }), ampm && isDesktop && /*#__PURE__*/_jsx(PickersToolbarButton, {
359
370
  variant: "h5",
360
- onClick: () => onViewChange('meridiem'),
371
+ onClick: () => setView('meridiem'),
361
372
  selected: view === 'meridiem',
362
373
  value: value && meridiemMode ? formatMeridiem(utils, meridiemMode) : '--',
363
374
  width: MULTI_SECTION_CLOCK_SECTION_WIDTH
@@ -382,14 +393,6 @@ process.env.NODE_ENV !== "production" ? DateTimePickerToolbar.propTypes = {
382
393
  * @default `true` for Desktop, `false` for Mobile.
383
394
  */
384
395
  hidden: PropTypes.bool,
385
- isLandscape: PropTypes.bool.isRequired,
386
- onChange: PropTypes.func.isRequired,
387
- /**
388
- * Callback called when a toolbar is clicked
389
- * @template TView
390
- * @param {TView} view The view to open
391
- */
392
- onViewChange: PropTypes.func.isRequired,
393
396
  /**
394
397
  * The system prop that allows defining system overrides as well as additional CSS styles.
395
398
  */
@@ -407,15 +410,6 @@ process.env.NODE_ENV !== "production" ? DateTimePickerToolbar.propTypes = {
407
410
  /**
408
411
  * If provided, it will be used instead of `dateTimePickerToolbarTitle` from localization.
409
412
  */
410
- toolbarTitle: PropTypes.node,
411
- value: PropTypes.object,
412
- /**
413
- * Currently visible picker view.
414
- */
415
- view: PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']),
416
- /**
417
- * Available views.
418
- */
419
- views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']).isRequired).isRequired
413
+ toolbarTitle: PropTypes.node
420
414
  } : void 0;
421
415
  export { DateTimePickerToolbar };
@@ -4,7 +4,7 @@ import { DateTimeValidationError } from '../models';
4
4
  import { DateCalendarSlots, DateCalendarSlotProps, ExportedDateCalendarProps } from '../DateCalendar/DateCalendar.types';
5
5
  import { TimeClockSlots, TimeClockSlotProps } from '../TimeClock/TimeClock.types';
6
6
  import { BasePickerInputProps } from '../internals/models/props/basePickerProps';
7
- import { DateTimePickerTabsProps, ExportedDateTimePickerTabsProps } from './DateTimePickerTabs';
7
+ import { DateTimePickerTabsProps } from './DateTimePickerTabs';
8
8
  import { LocalizedComponent } from '../locales/utils/pickersLocaleTextApi';
9
9
  import { DateTimePickerToolbarProps, ExportedDateTimePickerToolbarProps } from './DateTimePickerToolbar';
10
10
  import { PickerViewRendererLookup } from '../internals/hooks/usePicker/usePickerViews';
@@ -29,13 +29,13 @@ export interface BaseDateTimePickerSlotProps extends DateCalendarSlotProps, Time
29
29
  /**
30
30
  * Props passed down to the tabs component.
31
31
  */
32
- tabs?: ExportedDateTimePickerTabsProps;
32
+ tabs?: DateTimePickerTabsProps;
33
33
  /**
34
34
  * Props passed down to the toolbar component.
35
35
  */
36
36
  toolbar?: ExportedDateTimePickerToolbarProps;
37
37
  }
38
- export type DateTimePickerViewRenderers<TView extends DateOrTimeViewWithMeridiem, TAdditionalProps extends {} = {}> = PickerViewRendererLookup<PickerValue, TView, Omit<DateViewRendererProps<TView>, 'slots' | 'slotProps'> & Omit<TimeViewRendererProps<TimeViewWithMeridiem, BaseClockProps<TimeViewWithMeridiem>>, 'slots' | 'slotProps'>, TAdditionalProps>;
38
+ export type DateTimePickerViewRenderers<TView extends DateOrTimeViewWithMeridiem> = PickerViewRendererLookup<PickerValue, TView, Omit<DateViewRendererProps<TView>, 'slots' | 'slotProps'> & Omit<TimeViewRendererProps<TimeViewWithMeridiem, BaseClockProps<TimeViewWithMeridiem>>, 'slots' | 'slotProps'>>;
39
39
  export interface BaseDateTimePickerProps<TView extends DateOrTimeViewWithMeridiem> extends BasePickerInputProps<PickerValue, TView, DateTimeValidationError>, Omit<ExportedDateCalendarProps, 'onViewChange'>, ExportedBaseClockProps, ExportedValidateDateTimeProps {
40
40
  /**
41
41
  * Display ampm controls under the clock (instead of in the toolbar).
@@ -16,6 +16,8 @@ import { DateField } from "../DateField/index.js";
16
16
  import { renderDateViewCalendar } from "../dateViewRenderers/index.js";
17
17
  import { resolveDateFormat } from "../internals/utils/date-utils.js";
18
18
  import { buildGetOpenDialogAriaText } from "../locales/utils/getPickersLocalization.js";
19
+ const emptyActions = [];
20
+
19
21
  /**
20
22
  * Demos:
21
23
  *
@@ -40,6 +42,7 @@ const DesktopDatePicker = /*#__PURE__*/React.forwardRef(function DesktopDatePick
40
42
 
41
43
  // Props with the default values specific to the desktop variant
42
44
  const props = _extends({}, defaultizedProps, {
45
+ closeOnSelect: defaultizedProps.closeOnSelect ?? true,
43
46
  viewRenderers,
44
47
  format: resolveDateFormat(utils, defaultizedProps, false),
45
48
  yearsPerRow: defaultizedProps.yearsPerRow ?? 4,
@@ -53,7 +56,10 @@ const DesktopDatePicker = /*#__PURE__*/React.forwardRef(function DesktopDatePick
53
56
  }),
54
57
  toolbar: _extends({
55
58
  hidden: true
56
- }, defaultizedProps.slotProps?.toolbar)
59
+ }, defaultizedProps.slotProps?.toolbar),
60
+ actionBar: ownerState => _extends({
61
+ actions: emptyActions
62
+ }, resolveComponentProps(defaultizedProps.slotProps?.actionBar, ownerState))
57
63
  })
58
64
  });
59
65
  const {
@@ -86,8 +92,8 @@ DesktopDatePicker.propTypes = {
86
92
  autoFocus: PropTypes.bool,
87
93
  className: PropTypes.string,
88
94
  /**
89
- * If `true`, the popover or modal will close after submitting the full date.
90
- * @default `true` for desktop, `false` for mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).
95
+ * If `true`, the Picker will close after submitting the full date.
96
+ * @default true
91
97
  */
92
98
  closeOnSelect: PropTypes.bool,
93
99
  /**
@@ -1,11 +1,10 @@
1
1
  import { MakeOptional } from '@mui/x-internals/types';
2
2
  import { UseDesktopPickerSlots, ExportedUseDesktopPickerSlotProps, DesktopOnlyPickerProps } from '../internals/hooks/useDesktopPicker';
3
3
  import { BaseDatePickerProps, BaseDatePickerSlots, BaseDatePickerSlotProps } from '../DatePicker/shared';
4
- import { DateView } from '../models';
5
4
  import { ExportedYearCalendarProps } from '../YearCalendar/YearCalendar.types';
6
- export interface DesktopDatePickerSlots extends BaseDatePickerSlots, MakeOptional<UseDesktopPickerSlots<DateView>, 'field' | 'openPickerIcon'> {
5
+ export interface DesktopDatePickerSlots extends BaseDatePickerSlots, MakeOptional<UseDesktopPickerSlots, 'field' | 'openPickerIcon'> {
7
6
  }
8
- export interface DesktopDatePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseDatePickerSlotProps, ExportedUseDesktopPickerSlotProps<DateView, TEnableAccessibleFieldDOMStructure> {
7
+ export interface DesktopDatePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseDatePickerSlotProps, ExportedUseDesktopPickerSlotProps<TEnableAccessibleFieldDOMStructure> {
9
8
  }
10
9
  export interface DesktopDatePickerProps<TEnableAccessibleFieldDOMStructure extends boolean = true> extends BaseDatePickerProps, DesktopOnlyPickerProps, ExportedYearCalendarProps {
11
10
  /**
@@ -23,4 +22,9 @@ export interface DesktopDatePickerProps<TEnableAccessibleFieldDOMStructure exten
23
22
  * @default 4
24
23
  */
25
24
  yearsPerRow?: 3 | 4;
25
+ /**
26
+ * If `true`, the Picker will close after submitting the full date.
27
+ * @default true
28
+ */
29
+ closeOnSelect?: boolean;
26
30
  }
@@ -27,7 +27,12 @@ import { isInternalTimeView } from "../internals/utils/time-utils.js";
27
27
  import { isDatePickerView } from "../internals/utils/date-utils.js";
28
28
  import { buildGetOpenDialogAriaText } from "../locales/utils/getPickersLocalization.js";
29
29
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
30
- const rendererInterceptor = function rendererInterceptor(inViewRenderers, popperView, rendererProps) {
30
+ const rendererInterceptor = function RendererInterceptor(props) {
31
+ const {
32
+ viewRenderers,
33
+ popperView,
34
+ rendererProps
35
+ } = props;
31
36
  const {
32
37
  openTo,
33
38
  focusedView,
@@ -46,8 +51,10 @@ const rendererInterceptor = function rendererInterceptor(inViewRenderers, popper
46
51
  }]
47
52
  });
48
53
  const isTimeViewActive = isInternalTimeView(popperView);
54
+ const dateView = isTimeViewActive ? 'day' : popperView;
55
+ const timeView = isTimeViewActive ? popperView : 'hours';
49
56
  return /*#__PURE__*/_jsxs(React.Fragment, {
50
- children: [inViewRenderers[!isTimeViewActive ? popperView : 'day']?.(_extends({}, rendererProps, {
57
+ children: [viewRenderers[dateView]?.(_extends({}, rendererProps, {
51
58
  view: !isTimeViewActive ? popperView : 'day',
52
59
  focusedView: focusedView && isDatePickerView(focusedView) ? focusedView : null,
53
60
  views: rendererProps.views.filter(isDatePickerView),
@@ -60,7 +67,7 @@ const rendererInterceptor = function rendererInterceptor(inViewRenderers, popper
60
67
  sx: {
61
68
  gridColumn: 2
62
69
  }
63
- }), inViewRenderers[isTimeViewActive ? popperView : 'hours']?.(_extends({}, finalProps, {
70
+ }), viewRenderers[timeView]?.(_extends({}, finalProps, {
64
71
  view: isTimeViewActive ? popperView : 'hours',
65
72
  focusedView: focusedView && isInternalTimeView(focusedView) ? focusedView : null,
66
73
  openTo: isInternalTimeView(openTo) ? openTo : 'hours',
@@ -108,7 +115,6 @@ const DesktopDateTimePicker = /*#__PURE__*/React.forwardRef(function DesktopDate
108
115
  // Need to avoid adding the `meridiem` view when unexpected renderer is specified
109
116
  const shouldHoursRendererContainMeridiemView = viewRenderers.hours?.name === renderMultiSectionDigitalClockTimeView.name;
110
117
  const views = !shouldHoursRendererContainMeridiemView ? resolvedViews.filter(view => view !== 'meridiem') : resolvedViews;
111
- const actionBarActions = shouldRenderTimeInASingleColumn ? [] : ['accept'];
112
118
 
113
119
  // Props with the default values specific to the desktop variant
114
120
  const props = _extends({}, defaultizedProps, {
@@ -135,10 +141,7 @@ const DesktopDateTimePicker = /*#__PURE__*/React.forwardRef(function DesktopDate
135
141
  }, defaultizedProps.slotProps?.toolbar),
136
142
  tabs: _extends({
137
143
  hidden: true
138
- }, defaultizedProps.slotProps?.tabs),
139
- actionBar: ownerState => _extends({
140
- actions: actionBarActions
141
- }, resolveComponentProps(defaultizedProps.slotProps?.actionBar, ownerState))
144
+ }, defaultizedProps.slotProps?.tabs)
142
145
  })
143
146
  });
144
147
  const {
@@ -182,8 +185,8 @@ DesktopDateTimePicker.propTypes = {
182
185
  autoFocus: PropTypes.bool,
183
186
  className: PropTypes.string,
184
187
  /**
185
- * If `true`, the popover or modal will close after submitting the full date.
186
- * @default `true` for desktop, `false` for mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).
188
+ * If `true`, the Picker will close after submitting the full date.
189
+ * @default false
187
190
  */
188
191
  closeOnSelect: PropTypes.bool,
189
192
  /**
@@ -7,9 +7,9 @@ import { DateOrTimeViewWithMeridiem } from '../internals/models';
7
7
  import { MultiSectionDigitalClockSlots, MultiSectionDigitalClockSlotProps } from '../MultiSectionDigitalClock';
8
8
  import { DigitalClockSlots, DigitalClockSlotProps } from '../DigitalClock';
9
9
  import { ExportedYearCalendarProps } from '../YearCalendar/YearCalendar.types';
10
- export interface DesktopDateTimePickerSlots extends BaseDateTimePickerSlots, MakeOptional<UseDesktopPickerSlots<DateOrTimeViewWithMeridiem>, 'field' | 'openPickerIcon'>, DigitalClockSlots, MultiSectionDigitalClockSlots {
10
+ export interface DesktopDateTimePickerSlots extends BaseDateTimePickerSlots, MakeOptional<UseDesktopPickerSlots, 'field' | 'openPickerIcon'>, DigitalClockSlots, MultiSectionDigitalClockSlots {
11
11
  }
12
- export interface DesktopDateTimePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseDateTimePickerSlotProps, ExportedUseDesktopPickerSlotProps<DateOrTimeViewWithMeridiem, TEnableAccessibleFieldDOMStructure>, DigitalClockSlotProps, MultiSectionDigitalClockSlotProps {
12
+ export interface DesktopDateTimePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseDateTimePickerSlotProps, ExportedUseDesktopPickerSlotProps<TEnableAccessibleFieldDOMStructure>, DigitalClockSlotProps, MultiSectionDigitalClockSlotProps {
13
13
  }
14
14
  export interface DesktopDateTimePickerProps<TEnableAccessibleFieldDOMStructure extends boolean = true> extends BaseDateTimePickerProps<DateOrTimeViewWithMeridiem>, DesktopOnlyPickerProps, DesktopOnlyTimePickerProps, ExportedYearCalendarProps {
15
15
  /**
@@ -1,8 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { PickersLayoutProps } from '../PickersLayout';
3
- import { DateOrTimeViewWithMeridiem } from '../internals/models/common';
4
3
  import { PickerValidValue } from '../internals/models';
5
- type DesktopDateTimePickerLayoutComponent = (<TValue extends PickerValidValue, TView extends DateOrTimeViewWithMeridiem>(props: PickersLayoutProps<TValue, TView> & React.RefAttributes<HTMLDivElement>) => React.JSX.Element) & {
4
+ type DesktopDateTimePickerLayoutComponent = (<TValue extends PickerValidValue>(props: PickersLayoutProps<TValue> & React.RefAttributes<HTMLDivElement>) => React.JSX.Element) & {
6
5
  propTypes?: any;
7
6
  };
8
7
  /**
@@ -65,17 +65,6 @@ process.env.NODE_ENV !== "production" ? DesktopDateTimePickerLayout.propTypes =
65
65
  */
66
66
  classes: PropTypes.object,
67
67
  className: PropTypes.string,
68
- isValid: PropTypes.func.isRequired,
69
- onAccept: PropTypes.func.isRequired,
70
- onCancel: PropTypes.func.isRequired,
71
- onChange: PropTypes.func.isRequired,
72
- onClear: PropTypes.func.isRequired,
73
- onClose: PropTypes.func.isRequired,
74
- onDismiss: PropTypes.func.isRequired,
75
- onOpen: PropTypes.func.isRequired,
76
- onSelectShortcut: PropTypes.func.isRequired,
77
- onSetToday: PropTypes.func.isRequired,
78
- onViewChange: PropTypes.func.isRequired,
79
68
  /**
80
69
  * The props used for each component slot.
81
70
  * @default {}
@@ -89,9 +78,6 @@ process.env.NODE_ENV !== "production" ? DesktopDateTimePickerLayout.propTypes =
89
78
  /**
90
79
  * The system prop that allows defining system overrides as well as additional CSS styles.
91
80
  */
92
- sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
93
- value: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.object), PropTypes.object]),
94
- view: PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']),
95
- views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']).isRequired).isRequired
81
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])
96
82
  } : void 0;
97
83
  export { DesktopDateTimePickerLayout };
@@ -46,7 +46,6 @@ const DesktopTimePicker = /*#__PURE__*/React.forwardRef(function DesktopTimePick
46
46
  meridiem: renderTimeView
47
47
  }, defaultizedProps.viewRenderers);
48
48
  const ampmInClock = defaultizedProps.ampmInClock ?? true;
49
- const actionBarActions = shouldRenderTimeInASingleColumn ? [] : ['accept'];
50
49
  // Need to avoid adding the `meridiem` view when unexpected renderer is specified
51
50
  const shouldHoursRendererContainMeridiemView = viewRenderers.hours?.name === renderMultiSectionDigitalClockTimeView.name;
52
51
  const views = !shouldHoursRendererContainMeridiemView ? resolvedViews.filter(view => view !== 'meridiem') : resolvedViews;
@@ -71,10 +70,7 @@ const DesktopTimePicker = /*#__PURE__*/React.forwardRef(function DesktopTimePick
71
70
  toolbar: _extends({
72
71
  hidden: true,
73
72
  ampmInClock
74
- }, defaultizedProps.slotProps?.toolbar),
75
- actionBar: _extends({
76
- actions: actionBarActions
77
- }, defaultizedProps.slotProps?.actionBar)
73
+ }, defaultizedProps.slotProps?.toolbar)
78
74
  })
79
75
  });
80
76
  const {
@@ -117,8 +113,8 @@ DesktopTimePicker.propTypes = {
117
113
  autoFocus: PropTypes.bool,
118
114
  className: PropTypes.string,
119
115
  /**
120
- * If `true`, the popover or modal will close after submitting the full date.
121
- * @default `true` for desktop, `false` for mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).
116
+ * If `true`, the Picker will close after submitting the full date.
117
+ * @default false
122
118
  */
123
119
  closeOnSelect: PropTypes.bool,
124
120
  /**
@@ -6,9 +6,9 @@ import { DesktopOnlyTimePickerProps } from '../internals/models/props/time';
6
6
  import { DigitalClockSlots, DigitalClockSlotProps } from '../DigitalClock';
7
7
  import { MultiSectionDigitalClockSlots, MultiSectionDigitalClockSlotProps } from '../MultiSectionDigitalClock';
8
8
  import { TimeView } from '../models';
9
- export interface DesktopTimePickerSlots extends BaseTimePickerSlots, MakeOptional<UseDesktopPickerSlots<TimeViewWithMeridiem>, 'field' | 'openPickerIcon'>, DigitalClockSlots, MultiSectionDigitalClockSlots {
9
+ export interface DesktopTimePickerSlots extends BaseTimePickerSlots, MakeOptional<UseDesktopPickerSlots, 'field' | 'openPickerIcon'>, DigitalClockSlots, MultiSectionDigitalClockSlots {
10
10
  }
11
- export interface DesktopTimePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseTimePickerSlotProps, ExportedUseDesktopPickerSlotProps<TimeViewWithMeridiem, TEnableAccessibleFieldDOMStructure>, DigitalClockSlotProps, MultiSectionDigitalClockSlotProps {
11
+ export interface DesktopTimePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseTimePickerSlotProps, ExportedUseDesktopPickerSlotProps<TEnableAccessibleFieldDOMStructure>, DigitalClockSlotProps, MultiSectionDigitalClockSlotProps {
12
12
  }
13
13
  export interface DesktopTimePickerProps<TEnableAccessibleFieldDOMStructure extends boolean = true> extends BaseTimePickerProps<TimeViewWithMeridiem>, DesktopOnlyPickerProps, DesktopOnlyTimePickerProps {
14
14
  /**
@@ -83,8 +83,8 @@ MobileDatePicker.propTypes = {
83
83
  autoFocus: PropTypes.bool,
84
84
  className: PropTypes.string,
85
85
  /**
86
- * If `true`, the popover or modal will close after submitting the full date.
87
- * @default `true` for desktop, `false` for mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).
86
+ * If `true`, the Picker will close after submitting the full date.
87
+ * @default false
88
88
  */
89
89
  closeOnSelect: PropTypes.bool,
90
90
  /**
@@ -1,10 +1,9 @@
1
1
  import { MakeOptional } from '@mui/x-internals/types';
2
2
  import { UseMobilePickerSlots, MobileOnlyPickerProps, ExportedUseMobilePickerSlotProps } from '../internals/hooks/useMobilePicker';
3
3
  import { BaseDatePickerProps, BaseDatePickerSlots, BaseDatePickerSlotProps } from '../DatePicker/shared';
4
- import { DateView } from '../models';
5
- export interface MobileDatePickerSlots extends BaseDatePickerSlots, MakeOptional<UseMobilePickerSlots<DateView>, 'field'> {
4
+ export interface MobileDatePickerSlots extends BaseDatePickerSlots, MakeOptional<UseMobilePickerSlots, 'field'> {
6
5
  }
7
- export interface MobileDatePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseDatePickerSlotProps, ExportedUseMobilePickerSlotProps<DateView, TEnableAccessibleFieldDOMStructure> {
6
+ export interface MobileDatePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseDatePickerSlotProps, ExportedUseMobilePickerSlotProps<TEnableAccessibleFieldDOMStructure> {
8
7
  }
9
8
  export interface MobileDatePickerProps<TEnableAccessibleFieldDOMStructure extends boolean = true> extends BaseDatePickerProps, MobileOnlyPickerProps {
10
9
  /**
@@ -103,8 +103,8 @@ MobileDateTimePicker.propTypes = {
103
103
  autoFocus: PropTypes.bool,
104
104
  className: PropTypes.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.bool,
110
110
  /**
@@ -3,19 +3,19 @@ import { UseMobilePickerSlots, ExportedUseMobilePickerSlotProps, MobileOnlyPicke
3
3
  import { BaseDateTimePickerProps, BaseDateTimePickerSlots, BaseDateTimePickerSlotProps } from '../DateTimePicker/shared';
4
4
  import { DateOrTimeView } from '../models';
5
5
  import { DateOrTimeViewWithMeridiem } from '../internals/models';
6
- export interface MobileDateTimePickerSlots<TView extends DateOrTimeViewWithMeridiem> extends BaseDateTimePickerSlots, MakeOptional<UseMobilePickerSlots<TView>, 'field'> {
6
+ export interface MobileDateTimePickerSlots extends BaseDateTimePickerSlots, MakeOptional<UseMobilePickerSlots, 'field'> {
7
7
  }
8
- export interface MobileDateTimePickerSlotProps<TView extends DateOrTimeViewWithMeridiem, TEnableAccessibleFieldDOMStructure extends boolean> extends BaseDateTimePickerSlotProps, ExportedUseMobilePickerSlotProps<TView, TEnableAccessibleFieldDOMStructure> {
8
+ export interface MobileDateTimePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseDateTimePickerSlotProps, ExportedUseMobilePickerSlotProps<TEnableAccessibleFieldDOMStructure> {
9
9
  }
10
10
  export interface MobileDateTimePickerProps<TView extends DateOrTimeViewWithMeridiem = DateOrTimeView, TEnableAccessibleFieldDOMStructure extends boolean = true> extends BaseDateTimePickerProps<TView>, MobileOnlyPickerProps {
11
11
  /**
12
12
  * Overridable component slots.
13
13
  * @default {}
14
14
  */
15
- slots?: MobileDateTimePickerSlots<TView>;
15
+ slots?: MobileDateTimePickerSlots;
16
16
  /**
17
17
  * The props used for each component slot.
18
18
  * @default {}
19
19
  */
20
- slotProps?: MobileDateTimePickerSlotProps<TView, TEnableAccessibleFieldDOMStructure>;
20
+ slotProps?: MobileDateTimePickerSlotProps<TEnableAccessibleFieldDOMStructure>;
21
21
  }
@@ -96,8 +96,8 @@ MobileTimePicker.propTypes = {
96
96
  autoFocus: PropTypes.bool,
97
97
  className: PropTypes.string,
98
98
  /**
99
- * If `true`, the popover or modal will close after submitting the full date.
100
- * @default `true` for desktop, `false` for mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).
99
+ * If `true`, the Picker will close after submitting the full date.
100
+ * @default false
101
101
  */
102
102
  closeOnSelect: PropTypes.bool,
103
103
  /**
@@ -3,19 +3,19 @@ import { UseMobilePickerSlots, ExportedUseMobilePickerSlotProps, MobileOnlyPicke
3
3
  import { BaseTimePickerProps, BaseTimePickerSlots, BaseTimePickerSlotProps } from '../TimePicker/shared';
4
4
  import { TimeView } from '../models';
5
5
  import { TimeViewWithMeridiem } from '../internals/models';
6
- export interface MobileTimePickerSlots<TView extends TimeViewWithMeridiem> extends BaseTimePickerSlots, MakeOptional<UseMobilePickerSlots<TView>, 'field'> {
6
+ export interface MobileTimePickerSlots extends BaseTimePickerSlots, MakeOptional<UseMobilePickerSlots, 'field'> {
7
7
  }
8
- export interface MobileTimePickerSlotProps<TView extends TimeViewWithMeridiem, TEnableAccessibleFieldDOMStructure extends boolean> extends BaseTimePickerSlotProps, ExportedUseMobilePickerSlotProps<TView, TEnableAccessibleFieldDOMStructure> {
8
+ export interface MobileTimePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseTimePickerSlotProps, ExportedUseMobilePickerSlotProps<TEnableAccessibleFieldDOMStructure> {
9
9
  }
10
10
  export interface MobileTimePickerProps<TView extends TimeViewWithMeridiem = TimeView, TEnableAccessibleFieldDOMStructure extends boolean = true> extends BaseTimePickerProps<TView>, MobileOnlyPickerProps {
11
11
  /**
12
12
  * Overridable component slots.
13
13
  * @default {}
14
14
  */
15
- slots?: MobileTimePickerSlots<TView>;
15
+ slots?: MobileTimePickerSlots;
16
16
  /**
17
17
  * The props used for each component slot.
18
18
  * @default {}
19
19
  */
20
- slotProps?: MobileTimePickerSlotProps<TView, TEnableAccessibleFieldDOMStructure>;
20
+ slotProps?: MobileTimePickerSlotProps<TEnableAccessibleFieldDOMStructure>;
21
21
  }
@@ -5,13 +5,11 @@ export interface PickersActionBarProps extends DialogActionsProps {
5
5
  /**
6
6
  * Ordered array of actions to display.
7
7
  * If empty, does not display that action bar.
8
- * @default `['cancel', 'accept']` for mobile and `[]` for desktop
8
+ * @default
9
+ * - `[]` for Desktop Date Picker and Desktop Date Range Picker
10
+ * - `['cancel', 'accept']` for all other Pickers
9
11
  */
10
12
  actions?: PickersActionBarAction[];
11
- onAccept: () => void;
12
- onClear: () => void;
13
- onCancel: () => void;
14
- onSetToday: () => void;
15
13
  }
16
14
  /**
17
15
  * Demos:
@@ -23,8 +21,9 @@ export interface PickersActionBarProps extends DialogActionsProps {
23
21
  *
24
22
  * - [PickersActionBar API](https://mui.com/x/api/date-pickers/pickers-action-bar/)
25
23
  */
26
- declare function PickersActionBar(props: PickersActionBarProps): React.JSX.Element | null;
27
- declare namespace PickersActionBar {
24
+ declare function PickersActionBarComponent(props: PickersActionBarProps): React.JSX.Element | null;
25
+ declare namespace PickersActionBarComponent {
28
26
  var propTypes: any;
29
27
  }
28
+ declare const PickersActionBar: React.MemoExoticComponent<typeof PickersActionBarComponent>;
30
29
  export { PickersActionBar };