@mui/x-date-pickers-pro 8.0.0-alpha.1 → 8.0.0-alpha.10

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 (291) hide show
  1. package/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.d.ts +1 -1
  2. package/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.js +1 -1
  3. package/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/package.json +1 -1
  4. package/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.d.ts +1 -1
  5. package/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.js +1 -1
  6. package/{AdapterDateFnsV3 → AdapterDateFnsV2}/package.json +1 -1
  7. package/CHANGELOG.md +1903 -231
  8. package/DateRangeCalendar/DateRangeCalendar.js +15 -13
  9. package/DateRangePicker/DateRangePicker.js +1 -4
  10. package/DateRangePicker/DateRangePicker.types.d.ts +6 -2
  11. package/DateRangePicker/DateRangePickerToolbar.d.ts +2 -3
  12. package/DateRangePicker/DateRangePickerToolbar.js +33 -41
  13. package/DateRangePicker/shared.d.ts +4 -3
  14. package/DateTimeRangePicker/DateTimeRangePicker.js +2 -5
  15. package/DateTimeRangePicker/DateTimeRangePicker.types.d.ts +1 -2
  16. package/DateTimeRangePicker/DateTimeRangePickerTabs.d.ts +4 -5
  17. package/DateTimeRangePicker/DateTimeRangePickerTabs.js +35 -33
  18. package/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.d.ts +8 -10
  19. package/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +8 -6
  20. package/DateTimeRangePicker/DateTimeRangePickerToolbar.d.ts +2 -5
  21. package/DateTimeRangePicker/DateTimeRangePickerToolbar.js +81 -109
  22. package/DateTimeRangePicker/shared.d.ts +6 -5
  23. package/DesktopDateRangePicker/DesktopDateRangePicker.js +11 -9
  24. package/DesktopDateRangePicker/DesktopDateRangePicker.types.d.ts +7 -2
  25. package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +20 -22
  26. package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.types.d.ts +2 -3
  27. package/MobileDateRangePicker/MobileDateRangePicker.js +4 -8
  28. package/MobileDateRangePicker/MobileDateRangePicker.types.d.ts +2 -2
  29. package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +18 -16
  30. package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.types.d.ts +2 -3
  31. package/MultiInputDateRangeField/MultiInputDateRangeField.d.ts +9 -4
  32. package/MultiInputDateRangeField/MultiInputDateRangeField.js +15 -121
  33. package/MultiInputDateRangeField/index.d.ts +5 -3
  34. package/MultiInputDateRangeField/index.js +2 -2
  35. package/MultiInputDateRangeField/multiInputDateRangeFieldClasses.d.ts +6 -0
  36. package/MultiInputDateRangeField/multiInputDateRangeFieldClasses.js +4 -0
  37. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.d.ts +9 -4
  38. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +15 -121
  39. package/MultiInputDateTimeRangeField/index.d.ts +5 -3
  40. package/MultiInputDateTimeRangeField/index.js +2 -2
  41. package/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.d.ts +6 -0
  42. package/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.js +4 -0
  43. package/MultiInputTimeRangeField/MultiInputTimeRangeField.d.ts +9 -4
  44. package/MultiInputTimeRangeField/MultiInputTimeRangeField.js +16 -122
  45. package/MultiInputTimeRangeField/index.d.ts +5 -3
  46. package/MultiInputTimeRangeField/index.js +2 -2
  47. package/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.d.ts +6 -0
  48. package/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.js +4 -0
  49. package/README.md +8 -5
  50. package/SingleInputDateRangeField/SingleInputDateRangeField.js +23 -33
  51. package/SingleInputDateRangeField/SingleInputDateRangeField.types.d.ts +6 -16
  52. package/SingleInputDateRangeField/useSingleInputDateRangeField.d.ts +1 -1
  53. package/SingleInputDateRangeField/useSingleInputDateRangeField.js +14 -14
  54. package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +23 -33
  55. package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.types.d.ts +6 -17
  56. package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.d.ts +1 -1
  57. package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +14 -14
  58. package/SingleInputTimeRangeField/SingleInputTimeRangeField.js +23 -33
  59. package/SingleInputTimeRangeField/SingleInputTimeRangeField.types.d.ts +6 -17
  60. package/SingleInputTimeRangeField/useSingleInputTimeRangeField.d.ts +1 -1
  61. package/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +14 -14
  62. package/StaticDateRangePicker/StaticDateRangePicker.js +2 -2
  63. package/StaticDateRangePicker/StaticDateRangePicker.types.d.ts +2 -2
  64. package/dateRangeViewRenderers/dateRangeViewRenderers.d.ts +2 -2
  65. package/dateRangeViewRenderers/dateRangeViewRenderers.js +0 -6
  66. package/hooks/index.d.ts +2 -0
  67. package/hooks/index.js +2 -0
  68. package/hooks/package.json +6 -0
  69. package/hooks/useMultiInputRangeField/index.d.ts +1 -0
  70. package/hooks/useMultiInputRangeField/index.js +1 -0
  71. package/hooks/useMultiInputRangeField/useMultiInputRangeField.d.ts +53 -0
  72. package/hooks/useMultiInputRangeField/useMultiInputRangeField.js +149 -0
  73. package/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.d.ts +17 -0
  74. package/{modern/internals/hooks/useMultiInputFieldSelectedSections.js → hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js} +10 -8
  75. package/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.d.ts +17 -0
  76. package/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +59 -0
  77. package/hooks/usePickerRangePositionContext.d.ts +7 -0
  78. package/hooks/usePickerRangePositionContext.js +15 -0
  79. package/index.d.ts +2 -0
  80. package/index.js +4 -2
  81. package/internals/hooks/models/index.d.ts +1 -1
  82. package/internals/hooks/models/useRangePicker.d.ts +8 -11
  83. package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +68 -100
  84. package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.types.d.ts +8 -10
  85. package/internals/hooks/{useEnrichedRangePickerFieldProps.d.ts → useEnrichedRangePickerField.d.ts} +25 -16
  86. package/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +50 -63
  87. package/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +57 -80
  88. package/internals/hooks/useMobileRangePicker/useMobileRangePicker.types.d.ts +7 -9
  89. package/internals/hooks/useNullablePickerRangePositionContext.d.ts +5 -0
  90. package/internals/hooks/useNullablePickerRangePositionContext.js +10 -0
  91. package/internals/hooks/useRangePosition.d.ts +4 -3
  92. package/internals/hooks/useRangePosition.js +1 -1
  93. package/internals/hooks/useStaticRangePicker/useStaticRangePicker.d.ts +1 -1
  94. package/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +17 -30
  95. package/internals/hooks/useStaticRangePicker/useStaticRangePicker.types.d.ts +6 -12
  96. package/internals/models/dateTimeRange.d.ts +1 -6
  97. package/internals/models/fields.d.ts +7 -11
  98. package/internals/models/index.d.ts +0 -1
  99. package/internals/models/index.js +0 -1
  100. package/internals/models/managers.d.ts +3 -0
  101. package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.d.ts +3 -0
  102. package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +136 -0
  103. package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.d.ts +72 -0
  104. package/internals/utils/createMultiInputRangeField/index.d.ts +3 -0
  105. package/internals/utils/createMultiInputRangeField/index.js +2 -0
  106. package/internals/utils/date-fields-utils.d.ts +6 -6
  107. package/internals/utils/date-range-manager.js +2 -1
  108. package/internals/utils/releaseInfo.js +1 -1
  109. package/internals/utils/valueManagers.d.ts +4 -3
  110. package/internals/utils/valueManagers.js +7 -7
  111. package/managers/index.d.ts +6 -0
  112. package/managers/index.js +3 -0
  113. package/managers/package.json +6 -0
  114. package/managers/useDateRangeManager.d.ts +15 -0
  115. package/managers/useDateRangeManager.js +33 -0
  116. package/managers/useDateTimeRangeManager.d.ts +15 -0
  117. package/managers/useDateTimeRangeManager.js +33 -0
  118. package/managers/useTimeRangeManager.d.ts +15 -0
  119. package/managers/useTimeRangeManager.js +31 -0
  120. package/models/fields.d.ts +7 -11
  121. package/models/index.d.ts +1 -2
  122. package/models/index.js +1 -2
  123. package/models/range.d.ts +0 -2
  124. package/modern/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.js +1 -1
  125. package/modern/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.js +1 -1
  126. package/modern/DateRangeCalendar/DateRangeCalendar.js +15 -13
  127. package/modern/DateRangePicker/DateRangePicker.js +1 -4
  128. package/modern/DateRangePicker/DateRangePickerToolbar.js +33 -41
  129. package/modern/DateTimeRangePicker/DateTimeRangePicker.js +2 -5
  130. package/modern/DateTimeRangePicker/DateTimeRangePickerTabs.js +35 -33
  131. package/modern/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +8 -6
  132. package/modern/DateTimeRangePicker/DateTimeRangePickerToolbar.js +81 -109
  133. package/modern/DesktopDateRangePicker/DesktopDateRangePicker.js +11 -9
  134. package/modern/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +20 -22
  135. package/modern/MobileDateRangePicker/MobileDateRangePicker.js +4 -8
  136. package/modern/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +18 -16
  137. package/modern/MultiInputDateRangeField/MultiInputDateRangeField.js +15 -121
  138. package/modern/MultiInputDateRangeField/index.js +2 -2
  139. package/modern/MultiInputDateRangeField/multiInputDateRangeFieldClasses.js +4 -0
  140. package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +15 -121
  141. package/modern/MultiInputDateTimeRangeField/index.js +2 -2
  142. package/modern/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.js +4 -0
  143. package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.js +16 -122
  144. package/modern/MultiInputTimeRangeField/index.js +2 -2
  145. package/modern/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.js +4 -0
  146. package/modern/SingleInputDateRangeField/SingleInputDateRangeField.js +23 -33
  147. package/modern/SingleInputDateRangeField/useSingleInputDateRangeField.js +14 -14
  148. package/modern/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +23 -33
  149. package/modern/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +14 -14
  150. package/modern/SingleInputTimeRangeField/SingleInputTimeRangeField.js +23 -33
  151. package/modern/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +14 -14
  152. package/modern/StaticDateRangePicker/StaticDateRangePicker.js +2 -2
  153. package/modern/dateRangeViewRenderers/dateRangeViewRenderers.js +0 -6
  154. package/modern/hooks/index.js +2 -0
  155. package/modern/hooks/useMultiInputRangeField/index.js +1 -0
  156. package/modern/hooks/useMultiInputRangeField/useMultiInputRangeField.js +149 -0
  157. package/{internals/hooks/useMultiInputFieldSelectedSections.js → modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js} +10 -8
  158. package/modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +59 -0
  159. package/modern/hooks/usePickerRangePositionContext.js +15 -0
  160. package/modern/index.js +4 -2
  161. package/modern/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +68 -100
  162. package/modern/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +50 -63
  163. package/modern/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +57 -80
  164. package/modern/internals/hooks/useNullablePickerRangePositionContext.js +10 -0
  165. package/modern/internals/hooks/useRangePosition.js +1 -1
  166. package/modern/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +17 -30
  167. package/modern/internals/models/index.js +0 -1
  168. package/modern/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +136 -0
  169. package/modern/internals/utils/createMultiInputRangeField/index.js +2 -0
  170. package/modern/internals/utils/date-range-manager.js +2 -1
  171. package/modern/internals/utils/releaseInfo.js +1 -1
  172. package/modern/internals/utils/valueManagers.js +7 -7
  173. package/modern/managers/index.js +3 -0
  174. package/modern/managers/useDateRangeManager.js +33 -0
  175. package/modern/managers/useDateTimeRangeManager.js +33 -0
  176. package/modern/managers/useTimeRangeManager.js +31 -0
  177. package/modern/models/index.js +1 -2
  178. package/modern/validation/validateDateRange.js +8 -0
  179. package/modern/validation/validateDateTimeRange.js +4 -0
  180. package/modern/validation/validateTimeRange.js +8 -0
  181. package/node/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.js +1 -1
  182. package/node/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.js +1 -1
  183. package/node/DateRangeCalendar/DateRangeCalendar.js +14 -12
  184. package/node/DateRangePicker/DateRangePicker.js +1 -4
  185. package/node/DateRangePicker/DateRangePickerToolbar.js +31 -39
  186. package/node/DateTimeRangePicker/DateTimeRangePicker.js +2 -5
  187. package/node/DateTimeRangePicker/DateTimeRangePickerTabs.js +33 -31
  188. package/node/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +8 -6
  189. package/node/DateTimeRangePicker/DateTimeRangePickerToolbar.js +80 -108
  190. package/node/DesktopDateRangePicker/DesktopDateRangePicker.js +11 -9
  191. package/node/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +20 -22
  192. package/node/MobileDateRangePicker/MobileDateRangePicker.js +4 -8
  193. package/node/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +18 -16
  194. package/node/MultiInputDateRangeField/MultiInputDateRangeField.js +14 -124
  195. package/node/MultiInputDateRangeField/index.js +3 -9
  196. package/node/MultiInputDateRangeField/multiInputDateRangeFieldClasses.js +12 -0
  197. package/node/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +14 -124
  198. package/node/MultiInputDateTimeRangeField/index.js +3 -9
  199. package/node/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.js +12 -0
  200. package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.js +15 -125
  201. package/node/MultiInputTimeRangeField/index.js +3 -9
  202. package/node/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.js +12 -0
  203. package/node/SingleInputDateRangeField/SingleInputDateRangeField.js +22 -32
  204. package/node/SingleInputDateRangeField/useSingleInputDateRangeField.js +13 -14
  205. package/node/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +22 -32
  206. package/node/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +13 -14
  207. package/node/SingleInputTimeRangeField/SingleInputTimeRangeField.js +22 -32
  208. package/node/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +13 -14
  209. package/node/StaticDateRangePicker/StaticDateRangePicker.js +2 -2
  210. package/node/dateRangeViewRenderers/dateRangeViewRenderers.js +0 -6
  211. package/node/hooks/index.js +19 -0
  212. package/node/hooks/useMultiInputRangeField/index.js +12 -0
  213. package/node/hooks/useMultiInputRangeField/useMultiInputRangeField.js +155 -0
  214. package/node/{internals/hooks/useMultiInputFieldSelectedSections.js → hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js} +11 -10
  215. package/node/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +66 -0
  216. package/node/hooks/usePickerRangePositionContext.js +22 -0
  217. package/node/index.js +23 -1
  218. package/node/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +68 -100
  219. package/node/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +52 -65
  220. package/node/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +57 -80
  221. package/node/internals/hooks/useNullablePickerRangePositionContext.js +16 -0
  222. package/node/internals/hooks/useRangePosition.js +1 -1
  223. package/node/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +16 -29
  224. package/node/internals/models/index.js +0 -11
  225. package/node/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +143 -0
  226. package/node/internals/utils/createMultiInputRangeField/index.js +19 -0
  227. package/node/internals/utils/date-range-manager.js +2 -1
  228. package/node/internals/utils/releaseInfo.js +1 -1
  229. package/node/internals/utils/valueManagers.js +7 -7
  230. package/node/managers/index.js +26 -0
  231. package/node/managers/useDateRangeManager.js +40 -0
  232. package/node/managers/useDateTimeRangeManager.js +40 -0
  233. package/node/managers/useTimeRangeManager.js +38 -0
  234. package/node/models/index.js +0 -22
  235. package/node/validation/validateDateRange.js +8 -0
  236. package/node/validation/validateDateTimeRange.js +4 -0
  237. package/node/validation/validateTimeRange.js +8 -0
  238. package/package.json +6 -6
  239. package/themeAugmentation/overrides.d.ts +6 -4
  240. package/themeAugmentation/props.d.ts +2 -2
  241. package/validation/validateDateRange.d.ts +9 -1
  242. package/validation/validateDateRange.js +8 -0
  243. package/validation/validateDateTimeRange.d.ts +6 -2
  244. package/validation/validateDateTimeRange.js +4 -0
  245. package/validation/validateTimeRange.d.ts +9 -1
  246. package/validation/validateTimeRange.js +8 -0
  247. package/MultiInputDateRangeField/MultiInputDateRangeField.types.d.ts +0 -53
  248. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.d.ts +0 -54
  249. package/MultiInputTimeRangeField/MultiInputTimeRangeField.types.d.ts +0 -54
  250. package/internals/hooks/useMultiInputFieldSelectedSections.d.ts +0 -21
  251. package/internals/hooks/useMultiInputRangeField/shared.d.ts +0 -1
  252. package/internals/hooks/useMultiInputRangeField/shared.js +0 -9
  253. package/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.d.ts +0 -3
  254. package/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +0 -113
  255. package/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.d.ts +0 -3
  256. package/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -113
  257. package/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.d.ts +0 -11
  258. package/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.d.ts +0 -3
  259. package/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +0 -113
  260. package/internals/models/timeRange.d.ts +0 -6
  261. package/internals/models/timeRange.js +0 -1
  262. package/models/dateRange.d.ts +0 -7
  263. package/models/dateRange.js +0 -1
  264. package/models/multiInputRangeFieldClasses.d.ts +0 -7
  265. package/models/multiInputRangeFieldClasses.js +0 -1
  266. package/modern/MultiInputDateRangeField/MultiInputDateRangeField.types.js +0 -1
  267. package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.js +0 -1
  268. package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.types.js +0 -1
  269. package/modern/internals/hooks/useMultiInputRangeField/shared.js +0 -9
  270. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +0 -113
  271. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -113
  272. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.js +0 -1
  273. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +0 -113
  274. package/modern/internals/models/timeRange.js +0 -1
  275. package/modern/models/dateRange.js +0 -1
  276. package/modern/models/multiInputRangeFieldClasses.js +0 -1
  277. package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.types.js +0 -5
  278. package/node/internals/hooks/useMultiInputRangeField/shared.js +0 -16
  279. package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +0 -121
  280. package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -121
  281. package/node/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.js +0 -5
  282. package/node/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +0 -121
  283. package/node/internals/models/timeRange.js +0 -5
  284. package/node/models/dateRange.js +0 -5
  285. package/node/models/multiInputRangeFieldClasses.js +0 -5
  286. /package/{MultiInputDateRangeField/MultiInputDateRangeField.types.js → internals/models/managers.js} +0 -0
  287. /package/{MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.js → internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.js} +0 -0
  288. /package/{MultiInputTimeRangeField/MultiInputTimeRangeField.types.js → modern/internals/models/managers.js} +0 -0
  289. /package/{internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.js → modern/internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.js} +0 -0
  290. /package/node/{MultiInputDateRangeField/MultiInputDateRangeField.types.js → internals/models/managers.js} +0 -0
  291. /package/node/{MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.js → internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.js} +0 -0
@@ -18,12 +18,10 @@ var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"
18
18
  var _internals = require("@mui/x-date-pickers/internals");
19
19
  var _hooks = require("@mui/x-date-pickers/hooks");
20
20
  var _dateRangePickerToolbarClasses = require("./dateRangePickerToolbarClasses");
21
+ var _hooks2 = require("../hooks");
21
22
  var _jsxRuntime = require("react/jsx-runtime");
22
- const _excluded = ["value", "rangePosition", "onRangePositionChange", "toolbarFormat", "className", "onViewChange", "view", "views"];
23
- const useUtilityClasses = ownerState => {
24
- const {
25
- classes
26
- } = ownerState;
23
+ const _excluded = ["toolbarFormat", "className", "classes"];
24
+ const useUtilityClasses = classes => {
27
25
  const slots = {
28
26
  root: ['root'],
29
27
  container: ['container']
@@ -59,39 +57,50 @@ const DateRangePickerToolbar = exports.DateRangePickerToolbar = /*#__PURE__*/Rea
59
57
  name: 'MuiDateRangePickerToolbar'
60
58
  });
61
59
  const {
62
- value: [start, end],
63
- rangePosition,
64
- onRangePositionChange,
65
- toolbarFormat,
66
- className
60
+ toolbarFormat: toolbarFormatProp,
61
+ className,
62
+ classes: classesProp
67
63
  } = props,
68
64
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
65
+ const {
66
+ value
67
+ } = (0, _hooks.usePickerContext)();
69
68
  const translations = (0, _hooks.usePickerTranslations)();
70
- const startDateValue = start ? utils.formatByString(start, toolbarFormat || utils.formats.shortDate) : translations.start;
71
- const endDateValue = end ? utils.formatByString(end, toolbarFormat || utils.formats.shortDate) : translations.end;
72
- const ownerState = props;
73
- const classes = useUtilityClasses(ownerState);
69
+ const ownerState = (0, _internals.useToolbarOwnerState)();
70
+ const {
71
+ rangePosition,
72
+ setRangePosition
73
+ } = (0, _hooks2.usePickerRangePositionContext)();
74
+ const classes = useUtilityClasses(classesProp);
75
+
76
+ // This can't be a default value when spreading because it breaks the API generation.
77
+ const toolbarFormat = toolbarFormatProp ?? utils.formats.shortDate;
78
+ const formatDate = (date, fallback) => {
79
+ if (!utils.isValid(date)) {
80
+ return fallback;
81
+ }
82
+ return utils.formatByString(date, toolbarFormat);
83
+ };
74
84
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(DateRangePickerToolbarRoot, (0, _extends2.default)({}, other, {
75
85
  toolbarTitle: translations.dateRangePickerToolbarTitle,
76
- isLandscape: false,
77
86
  className: (0, _clsx.default)(classes.root, className),
78
87
  ownerState: ownerState,
79
88
  ref: ref,
80
89
  children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(DateRangePickerToolbarContainer, {
81
90
  className: classes.container,
82
91
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.PickersToolbarButton, {
83
- variant: start !== null ? 'h5' : 'h6',
84
- value: startDateValue,
92
+ variant: value[0] == null ? 'h6' : 'h5',
93
+ value: formatDate(value[0], translations.start),
85
94
  selected: rangePosition === 'start',
86
- onClick: () => onRangePositionChange('start')
95
+ onClick: () => setRangePosition('start')
87
96
  }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Typography.default, {
88
97
  variant: "h5",
89
98
  children: ["\xA0", '–', "\xA0"]
90
99
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.PickersToolbarButton, {
91
- variant: end !== null ? 'h5' : 'h6',
92
- value: endDateValue,
100
+ variant: value[1] == null ? 'h6' : 'h5',
101
+ value: formatDate(value[1], translations.end),
93
102
  selected: rangePosition === 'end',
94
- onClick: () => onRangePositionChange('end')
103
+ onClick: () => setRangePosition('end')
95
104
  })]
96
105
  })
97
106
  }));
@@ -111,14 +120,6 @@ process.env.NODE_ENV !== "production" ? DateRangePickerToolbar.propTypes = {
111
120
  * @default `true` for Desktop, `false` for Mobile.
112
121
  */
113
122
  hidden: _propTypes.default.bool,
114
- onRangePositionChange: _propTypes.default.func.isRequired,
115
- /**
116
- * Callback called when a toolbar is clicked
117
- * @template TView
118
- * @param {TView} view The view to open
119
- */
120
- onViewChange: _propTypes.default.func.isRequired,
121
- rangePosition: _propTypes.default.oneOf(['end', 'start']).isRequired,
122
123
  /**
123
124
  * The system prop that allows defining system overrides as well as additional CSS styles.
124
125
  */
@@ -132,14 +133,5 @@ process.env.NODE_ENV !== "production" ? DateRangePickerToolbar.propTypes = {
132
133
  * Toolbar value placeholder—it is displayed when the value is empty.
133
134
  * @default "––"
134
135
  */
135
- toolbarPlaceholder: _propTypes.default.node,
136
- value: _propTypes.default.arrayOf(_propTypes.default.object).isRequired,
137
- /**
138
- * Currently visible picker view.
139
- */
140
- view: _propTypes.default.oneOf(['day']).isRequired,
141
- /**
142
- * Available views.
143
- */
144
- views: _propTypes.default.arrayOf(_propTypes.default.oneOf(['day'])).isRequired
136
+ toolbarPlaceholder: _propTypes.default.node
145
137
  } : void 0;
@@ -75,8 +75,8 @@ process.env.NODE_ENV !== "production" ? DateTimeRangePicker.propTypes = {
75
75
  calendars: _propTypes.default.oneOf([1, 2, 3]),
76
76
  className: _propTypes.default.string,
77
77
  /**
78
- * If `true`, the popover or modal will close after submitting the full date.
79
- * @default `true` for desktop, `false` for mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).
78
+ * If `true`, the Picker will close after submitting the full date.
79
+ * @default false
80
80
  */
81
81
  closeOnSelect: _propTypes.default.bool,
82
82
  /**
@@ -175,12 +175,10 @@ process.env.NODE_ENV !== "production" ? DateTimeRangePicker.propTypes = {
175
175
  formatDensity: _propTypes.default.oneOf(['dense', 'spacious']),
176
176
  /**
177
177
  * Pass a ref to the `input` element.
178
- * Ignored if the field has several inputs.
179
178
  */
180
179
  inputRef: _utils.refType,
181
180
  /**
182
181
  * The label content.
183
- * Ignored if the field has several inputs.
184
182
  */
185
183
  label: _propTypes.default.node,
186
184
  /**
@@ -229,7 +227,6 @@ process.env.NODE_ENV !== "production" ? DateTimeRangePicker.propTypes = {
229
227
  minutesStep: _propTypes.default.number,
230
228
  /**
231
229
  * Name attribute used by the `input` element in the Field.
232
- * Ignored if the field has several inputs.
233
230
  */
234
231
  name: _propTypes.default.string,
235
232
  /**
@@ -19,6 +19,7 @@ var _hooks = require("@mui/x-date-pickers/hooks");
19
19
  var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
20
20
  var _Button = _interopRequireDefault(require("@mui/material/Button"));
21
21
  var _dateTimeRangePickerTabsClasses = require("./dateTimeRangePickerTabsClasses");
22
+ var _hooks2 = require("../hooks");
22
23
  var _jsxRuntime = require("react/jsx-runtime");
23
24
  const viewToTab = (view, rangePosition) => {
24
25
  if ((0, _internals.isDatePickerView)(view)) {
@@ -32,10 +33,7 @@ const tabToView = tab => {
32
33
  }
33
34
  return 'hours';
34
35
  };
35
- const useUtilityClasses = ownerState => {
36
- const {
37
- classes
38
- } = ownerState;
36
+ const useUtilityClasses = classes => {
39
37
  const slots = {
40
38
  root: ['root'],
41
39
  tabButton: ['tabButton'],
@@ -79,18 +77,26 @@ const DateTimeRangePickerTabs = exports.DateTimeRangePickerTabs = function DateT
79
77
  });
80
78
  const {
81
79
  dateIcon = /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.DateRangeIcon, {}),
82
- onViewChange,
83
80
  timeIcon = /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.TimeIcon, {}),
84
- view,
85
81
  hidden = typeof window === 'undefined' || window.innerHeight < 667,
86
- rangePosition,
87
- onRangePositionChange,
88
82
  className,
83
+ classes: classesProp,
89
84
  sx
90
85
  } = props;
91
86
  const translations = (0, _hooks.usePickerTranslations)();
92
- const classes = useUtilityClasses(props);
93
- const value = React.useMemo(() => viewToTab(view, rangePosition), [view, rangePosition]);
87
+ const {
88
+ ownerState
89
+ } = (0, _internals.usePickerPrivateContext)();
90
+ const {
91
+ view,
92
+ setView
93
+ } = (0, _hooks.usePickerContext)();
94
+ const classes = useUtilityClasses(classesProp);
95
+ const {
96
+ rangePosition,
97
+ setRangePosition
98
+ } = (0, _hooks2.usePickerRangePositionContext)();
99
+ const value = React.useMemo(() => view == null ? null : viewToTab(view, rangePosition), [view, rangePosition]);
94
100
  const isPreviousHidden = value === 'start-date';
95
101
  const isNextHidden = value === 'end-time';
96
102
  const tabLabel = React.useMemo(() => {
@@ -109,26 +115,34 @@ const DateTimeRangePickerTabs = exports.DateTimeRangePickerTabs = function DateT
109
115
  }, [translations.endDate, translations.endTime, translations.startDate, translations.startTime, value]);
110
116
  const handleRangePositionChange = (0, _useEventCallback.default)(newTab => {
111
117
  if (newTab.includes('start')) {
112
- onRangePositionChange('start');
118
+ setRangePosition('start');
113
119
  } else {
114
- onRangePositionChange('end');
120
+ setRangePosition('end');
115
121
  }
116
122
  });
117
123
  const changeToPreviousTab = (0, _useEventCallback.default)(() => {
118
- const previousTab = tabOptions[tabOptions.indexOf(value) - 1];
119
- onViewChange(tabToView(previousTab));
124
+ const previousTab = value == null ? tabOptions[0] : tabOptions[tabOptions.indexOf(value) - 1];
125
+ setView(tabToView(previousTab));
120
126
  handleRangePositionChange(previousTab);
121
127
  });
122
128
  const changeToNextTab = (0, _useEventCallback.default)(() => {
123
- const nextTab = tabOptions[tabOptions.indexOf(value) + 1];
124
- onViewChange(tabToView(nextTab));
129
+ const nextTab = value == null ? tabOptions[0] : tabOptions[tabOptions.indexOf(value) + 1];
130
+ setView(tabToView(nextTab));
125
131
  handleRangePositionChange(nextTab);
126
132
  });
127
133
  if (hidden) {
128
134
  return null;
129
135
  }
136
+ let startIcon;
137
+ if (view == null) {
138
+ startIcon = null;
139
+ } else if ((0, _internals.isDatePickerView)(view)) {
140
+ startIcon = dateIcon;
141
+ } else {
142
+ startIcon = timeIcon;
143
+ }
130
144
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(DateTimeRangePickerTabsRoot, {
131
- ownerState: props,
145
+ ownerState: ownerState,
132
146
  className: (0, _clsx.default)(classes.root, className),
133
147
  sx: sx,
134
148
  children: [!isPreviousHidden ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton.default, {
@@ -139,7 +153,7 @@ const DateTimeRangePickerTabs = exports.DateTimeRangePickerTabs = function DateT
139
153
  }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(DateTimeRangePickerTabFiller, {
140
154
  className: classes.filler
141
155
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(DateTimeRangePickerTab, {
142
- startIcon: (0, _internals.isDatePickerView)(view) ? dateIcon : timeIcon,
156
+ startIcon: startIcon,
143
157
  className: classes.tabButton,
144
158
  size: "large",
145
159
  children: tabLabel
@@ -173,14 +187,6 @@ process.env.NODE_ENV !== "production" ? DateTimeRangePickerTabs.propTypes = {
173
187
  * @default `window.innerHeight < 667` for `DesktopDateTimeRangePicker` and `MobileDateTimeRangePicker`
174
188
  */
175
189
  hidden: _propTypes.default.bool,
176
- onRangePositionChange: _propTypes.default.func.isRequired,
177
- /**
178
- * Callback called when a tab is clicked.
179
- * @template TView
180
- * @param {TView} view The view to open
181
- */
182
- onViewChange: _propTypes.default.func.isRequired,
183
- rangePosition: _propTypes.default.oneOf(['end', 'start']).isRequired,
184
190
  /**
185
191
  * The system prop that allows defining system overrides as well as additional CSS styles.
186
192
  */
@@ -189,9 +195,5 @@ process.env.NODE_ENV !== "production" ? DateTimeRangePickerTabs.propTypes = {
189
195
  * Time tab icon.
190
196
  * @default TimeIcon
191
197
  */
192
- timeIcon: _propTypes.default.element,
193
- /**
194
- * Currently visible picker view.
195
- */
196
- view: _propTypes.default.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']).isRequired
198
+ timeIcon: _propTypes.default.element
197
199
  } : void 0;
@@ -10,15 +10,14 @@ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runt
10
10
  var _internals = require("@mui/x-date-pickers/internals");
11
11
  var _dateUtils = require("../internals/utils/date-utils");
12
12
  var _dateRangeManager = require("../internals/utils/date-range-manager");
13
- const _excluded = ["rangePosition", "onRangePositionChange", "viewRenderer", "value", "onChange", "defaultValue", "onViewChange", "views", "className"];
13
+ var _hooks = require("../hooks");
14
+ const _excluded = ["viewRenderer", "value", "onChange", "defaultValue", "onViewChange", "views", "className"];
14
15
  /**
15
16
  * @ignore - internal component.
16
17
  */
17
- function DateTimeRangePickerTimeWrapper(props, ref) {
18
+ function DateTimeRangePickerTimeWrapper(props) {
18
19
  const utils = (0, _internals.useUtils)();
19
20
  const {
20
- rangePosition,
21
- onRangePositionChange,
22
21
  viewRenderer,
23
22
  value,
24
23
  onChange,
@@ -27,6 +26,10 @@ function DateTimeRangePickerTimeWrapper(props, ref) {
27
26
  views
28
27
  } = props,
29
28
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
29
+ const {
30
+ rangePosition,
31
+ setRangePosition
32
+ } = (0, _hooks.usePickerRangePositionContext)();
30
33
  if (!viewRenderer) {
31
34
  return null;
32
35
  }
@@ -49,12 +52,11 @@ function DateTimeRangePickerTimeWrapper(props, ref) {
49
52
  // reset view to the first time view and swap range position after selecting the last time view (start or end position)
50
53
  if (selectedView === timeViews[timeViews.length - 1] && onViewChange) {
51
54
  onViewChange(views[0]);
52
- onRangePositionChange(rangePosition === 'start' ? 'end' : 'start');
55
+ setRangePosition(rangePosition === 'start' ? 'end' : 'start');
53
56
  }
54
57
  onChange(newRange, isFullRangeSelected ? 'finish' : 'partial', selectedView);
55
58
  };
56
59
  return viewRenderer((0, _extends2.default)({}, other, {
57
- ref,
58
60
  views,
59
61
  onViewChange,
60
62
  value: currentValue,
@@ -19,12 +19,10 @@ var _hooks = require("@mui/x-date-pickers/hooks");
19
19
  var _DateTimePicker = require("@mui/x-date-pickers/DateTimePicker");
20
20
  var _dateTimeRangePickerToolbarClasses = require("./dateTimeRangePickerToolbarClasses");
21
21
  var _dateRangeManager = require("../internals/utils/date-range-manager");
22
+ var _hooks2 = require("../hooks");
22
23
  var _jsxRuntime = require("react/jsx-runtime");
23
- const _excluded = ["value", "rangePosition", "onRangePositionChange", "className", "onViewChange", "toolbarVariant", "onChange", "classes", "view", "isLandscape", "views", "ampm", "hidden", "toolbarFormat", "toolbarPlaceholder", "titleId", "sx"];
24
- const useUtilityClasses = ownerState => {
25
- const {
26
- classes
27
- } = ownerState;
24
+ const _excluded = ["className", "classes", "classes", "ampm", "hidden", "toolbarFormat", "toolbarPlaceholder", "titleId", "sx"];
25
+ const useUtilityClasses = classes => {
28
26
  const slots = {
29
27
  root: ['root'],
30
28
  startToolbar: ['startToolbar'],
@@ -46,36 +44,13 @@ const DateTimeRangePickerToolbarStart = (0, _styles.styled)(_DateTimePicker.Date
46
44
  overridesResolver: (_, styles) => styles.startToolbar
47
45
  })({
48
46
  borderBottom: 'none',
49
- variants: [{
50
- props: ({
51
- toolbarVariant
52
- }) => toolbarVariant !== 'desktop',
53
- style: {
54
- padding: '12px 8px 0 12px'
55
- }
56
- }, {
57
- props: {
58
- toolbarVariant: 'desktop'
59
- },
60
- style: {
61
- paddingBottom: 0
62
- }
63
- }]
47
+ paddingBottom: 0
64
48
  });
65
49
  const DateTimeRangePickerToolbarEnd = (0, _styles.styled)(_DateTimePicker.DateTimePickerToolbar, {
66
50
  name: 'MuiDateTimeRangePickerToolbar',
67
51
  slot: 'EndToolbar',
68
52
  overridesResolver: (_, styles) => styles.endToolbar
69
- })({
70
- variants: [{
71
- props: ({
72
- toolbarVariant
73
- }) => toolbarVariant !== 'desktop',
74
- style: {
75
- padding: '12px 8px 12px 12px'
76
- }
77
- }]
78
- });
53
+ })({});
79
54
  const DateTimeRangePickerToolbar = exports.DateTimeRangePickerToolbar = /*#__PURE__*/React.forwardRef(function DateTimeRangePickerToolbar(inProps, ref) {
80
55
  const props = (0, _styles.useThemeProps)({
81
56
  props: inProps,
@@ -83,15 +58,8 @@ const DateTimeRangePickerToolbar = exports.DateTimeRangePickerToolbar = /*#__PUR
83
58
  });
84
59
  const utils = (0, _internals.useUtils)();
85
60
  const {
86
- value: [start, end],
87
- rangePosition,
88
- onRangePositionChange,
89
61
  className,
90
- onViewChange,
91
- onChange,
92
- view,
93
- isLandscape,
94
- views,
62
+ classes: classesProp,
95
63
  ampm,
96
64
  hidden,
97
65
  toolbarFormat,
@@ -101,11 +69,22 @@ const DateTimeRangePickerToolbar = exports.DateTimeRangePickerToolbar = /*#__PUR
101
69
  } = props,
102
70
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
103
71
  const {
72
+ value,
73
+ setValue,
104
74
  disabled,
105
- readOnly
75
+ readOnly,
76
+ view,
77
+ setView,
78
+ views
106
79
  } = (0, _hooks.usePickerContext)();
80
+ const translations = (0, _hooks.usePickerTranslations)();
81
+ const ownerState = (0, _internals.useToolbarOwnerState)();
82
+ const {
83
+ rangePosition,
84
+ setRangePosition
85
+ } = (0, _hooks2.usePickerRangePositionContext)();
86
+ const classes = useUtilityClasses(classesProp);
107
87
  const commonToolbarProps = {
108
- isLandscape,
109
88
  views,
110
89
  ampm,
111
90
  disabled,
@@ -114,41 +93,58 @@ const DateTimeRangePickerToolbar = exports.DateTimeRangePickerToolbar = /*#__PUR
114
93
  toolbarFormat,
115
94
  toolbarPlaceholder
116
95
  };
117
- const translations = (0, _hooks.usePickerTranslations)();
118
- const ownerState = props;
119
- const classes = useUtilityClasses(ownerState);
120
- const handleStartRangeViewChange = React.useCallback(newView => {
121
- if (newView === 'year' || newView === 'month') {
122
- return;
123
- }
124
- if (rangePosition !== 'start') {
125
- onRangePositionChange('start');
126
- }
127
- onViewChange(newView);
128
- }, [onRangePositionChange, onViewChange, rangePosition]);
129
- const handleEndRangeViewChange = React.useCallback(newView => {
130
- if (newView === 'year' || newView === 'month') {
131
- return;
132
- }
133
- if (rangePosition !== 'end') {
134
- onRangePositionChange('end');
135
- }
136
- onViewChange(newView);
137
- }, [onRangePositionChange, onViewChange, rangePosition]);
138
- const handleOnChange = React.useCallback(newDate => {
96
+ const wrappedSetValue = React.useCallback(newDate => {
139
97
  const {
140
98
  nextSelection,
141
99
  newRange
142
100
  } = (0, _dateRangeManager.calculateRangeChange)({
143
101
  newDate,
144
102
  utils,
145
- range: props.value,
103
+ range: value,
146
104
  rangePosition,
147
105
  allowRangeFlip: true
148
106
  });
149
- onRangePositionChange(nextSelection);
150
- onChange(newRange);
151
- }, [onChange, onRangePositionChange, props.value, rangePosition, utils]);
107
+ setRangePosition(nextSelection);
108
+ setValue(newRange, {
109
+ changeImportance: 'set'
110
+ });
111
+ }, [setValue, setRangePosition, value, rangePosition, utils]);
112
+ const startOverrides = React.useMemo(() => {
113
+ const handleStartRangeViewChange = newView => {
114
+ if (newView === 'year' || newView === 'month') {
115
+ return;
116
+ }
117
+ if (rangePosition !== 'start') {
118
+ setRangePosition('start');
119
+ }
120
+ setView(newView);
121
+ };
122
+ return {
123
+ value: value[0],
124
+ setValue: wrappedSetValue,
125
+ forceDesktopVariant: true,
126
+ setView: handleStartRangeViewChange,
127
+ view: rangePosition === 'start' ? view : null
128
+ };
129
+ }, [value, wrappedSetValue, rangePosition, view, setRangePosition, setView]);
130
+ const endOverrides = React.useMemo(() => {
131
+ const handleEndRangeViewChange = newView => {
132
+ if (newView === 'year' || newView === 'month') {
133
+ return;
134
+ }
135
+ if (rangePosition !== 'end') {
136
+ setRangePosition('end');
137
+ }
138
+ setView(newView);
139
+ };
140
+ return {
141
+ value: value[1],
142
+ setValue: wrappedSetValue,
143
+ forceDesktopVariant: true,
144
+ setView: handleEndRangeViewChange,
145
+ view: rangePosition === 'end' ? view : null
146
+ };
147
+ }, [value, wrappedSetValue, rangePosition, view, setRangePosition, setView]);
152
148
  if (hidden) {
153
149
  return null;
154
150
  }
@@ -158,27 +154,23 @@ const DateTimeRangePickerToolbar = exports.DateTimeRangePickerToolbar = /*#__PUR
158
154
  ref: ref,
159
155
  sx: sx
160
156
  }, other, {
161
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(DateTimeRangePickerToolbarStart, (0, _extends2.default)({
162
- value: start,
163
- onViewChange: handleStartRangeViewChange,
164
- toolbarTitle: translations.start,
165
- ownerState: ownerState,
166
- toolbarVariant: "desktop",
167
- view: rangePosition === 'start' ? view : undefined,
168
- className: classes.startToolbar,
169
- onChange: handleOnChange,
170
- titleId: titleId ? `${titleId}-start-toolbar` : undefined
171
- }, commonToolbarProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(DateTimeRangePickerToolbarEnd, (0, _extends2.default)({
172
- value: end,
173
- onViewChange: handleEndRangeViewChange,
174
- toolbarTitle: translations.end,
175
- ownerState: ownerState,
176
- toolbarVariant: "desktop",
177
- view: rangePosition === 'end' ? view : undefined,
178
- className: classes.endToolbar,
179
- onChange: handleOnChange,
180
- titleId: titleId ? `${titleId}-end-toolbar` : undefined
181
- }, commonToolbarProps))]
157
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.DateTimePickerToolbarOverrideContext.Provider, {
158
+ value: startOverrides,
159
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(DateTimeRangePickerToolbarStart, (0, _extends2.default)({
160
+ toolbarTitle: translations.start,
161
+ ownerState: ownerState,
162
+ className: classes.startToolbar,
163
+ titleId: titleId ? `${titleId}-start-toolbar` : undefined
164
+ }, commonToolbarProps))
165
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.DateTimePickerToolbarOverrideContext.Provider, {
166
+ value: endOverrides,
167
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(DateTimeRangePickerToolbarEnd, (0, _extends2.default)({
168
+ toolbarTitle: translations.end,
169
+ ownerState: ownerState,
170
+ className: classes.endToolbar,
171
+ titleId: titleId ? `${titleId}-end-toolbar` : undefined
172
+ }, commonToolbarProps))
173
+ })]
182
174
  }));
183
175
  });
184
176
  process.env.NODE_ENV !== "production" ? DateTimeRangePickerToolbar.propTypes = {
@@ -197,16 +189,6 @@ process.env.NODE_ENV !== "production" ? DateTimeRangePickerToolbar.propTypes = {
197
189
  * @default `true` for Desktop, `false` for Mobile.
198
190
  */
199
191
  hidden: _propTypes.default.bool,
200
- isLandscape: _propTypes.default.bool.isRequired,
201
- onChange: _propTypes.default.func.isRequired,
202
- onRangePositionChange: _propTypes.default.func.isRequired,
203
- /**
204
- * Callback called when a toolbar is clicked
205
- * @template TView
206
- * @param {TView} view The view to open
207
- */
208
- onViewChange: _propTypes.default.func.isRequired,
209
- rangePosition: _propTypes.default.oneOf(['end', 'start']).isRequired,
210
192
  /**
211
193
  * The system prop that allows defining system overrides as well as additional CSS styles.
212
194
  */
@@ -220,15 +202,5 @@ process.env.NODE_ENV !== "production" ? DateTimeRangePickerToolbar.propTypes = {
220
202
  * Toolbar value placeholder—it is displayed when the value is empty.
221
203
  * @default "––"
222
204
  */
223
- toolbarPlaceholder: _propTypes.default.node,
224
- toolbarVariant: _propTypes.default.oneOf(['desktop', 'mobile']),
225
- value: _propTypes.default.arrayOf(_propTypes.default.object).isRequired,
226
- /**
227
- * Currently visible picker view.
228
- */
229
- view: _propTypes.default.oneOf(['day', 'hours', 'meridiem', 'minutes', 'seconds']).isRequired,
230
- /**
231
- * Available views.
232
- */
233
- views: _propTypes.default.arrayOf(_propTypes.default.oneOf(['day', 'hours', 'meridiem', 'minutes', 'seconds']).isRequired).isRequired
205
+ toolbarPlaceholder: _propTypes.default.node
234
206
  } : void 0;
@@ -20,6 +20,8 @@ var _dateRangeViewRenderers = require("../dateRangeViewRenderers");
20
20
  var _MultiInputDateRangeField = require("../MultiInputDateRangeField");
21
21
  var _useDesktopRangePicker = require("../internals/hooks/useDesktopRangePicker");
22
22
  var _validation2 = require("../validation");
23
+ const emptyActions = [];
24
+
23
25
  /**
24
26
  * Demos:
25
27
  *
@@ -39,6 +41,7 @@ const DesktopDateRangePicker = exports.DesktopDateRangePicker = /*#__PURE__*/Rea
39
41
  day: _dateRangeViewRenderers.renderDateRangeViewCalendar
40
42
  }, defaultizedProps.viewRenderers);
41
43
  const props = (0, _extends2.default)({}, defaultizedProps, {
44
+ closeOnSelect: defaultizedProps.closeOnSelect ?? true,
42
45
  viewRenderers,
43
46
  format: utils.formats.keyboardDate,
44
47
  calendars: defaultizedProps.calendars ?? 2,
@@ -48,17 +51,19 @@ const DesktopDateRangePicker = exports.DesktopDateRangePicker = /*#__PURE__*/Rea
48
51
  field: _MultiInputDateRangeField.MultiInputDateRangeField
49
52
  }, defaultizedProps.slots),
50
53
  slotProps: (0, _extends2.default)({}, defaultizedProps.slotProps, {
51
- field: ownerState => (0, _extends2.default)({}, (0, _resolveComponentProps.default)(defaultizedProps.slotProps?.field, ownerState), (0, _validation.extractValidationProps)(defaultizedProps), {
52
- ref
53
- }),
54
+ field: ownerState => (0, _extends2.default)({}, (0, _resolveComponentProps.default)(defaultizedProps.slotProps?.field, ownerState), (0, _validation.extractValidationProps)(defaultizedProps)),
54
55
  toolbar: (0, _extends2.default)({
55
56
  hidden: true
56
- }, defaultizedProps.slotProps?.toolbar)
57
+ }, defaultizedProps.slotProps?.toolbar),
58
+ actionBar: ownerState => (0, _extends2.default)({
59
+ actions: emptyActions
60
+ }, (0, _resolveComponentProps.default)(defaultizedProps.slotProps?.actionBar, ownerState))
57
61
  })
58
62
  });
59
63
  const {
60
64
  renderPicker
61
65
  } = (0, _useDesktopRangePicker.useDesktopRangePicker)({
66
+ ref,
62
67
  props,
63
68
  valueManager: _valueManagers.rangeValueManager,
64
69
  valueType: 'date',
@@ -85,8 +90,8 @@ DesktopDateRangePicker.propTypes = {
85
90
  calendars: _propTypes.default.oneOf([1, 2, 3]),
86
91
  className: _propTypes.default.string,
87
92
  /**
88
- * If `true`, the popover or modal will close after submitting the full date.
89
- * @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 true
90
95
  */
91
96
  closeOnSelect: _propTypes.default.bool,
92
97
  /**
@@ -174,12 +179,10 @@ DesktopDateRangePicker.propTypes = {
174
179
  formatDensity: _propTypes.default.oneOf(['dense', 'spacious']),
175
180
  /**
176
181
  * Pass a ref to the `input` element.
177
- * Ignored if the field has several inputs.
178
182
  */
179
183
  inputRef: _utils.refType,
180
184
  /**
181
185
  * The label content.
182
- * Ignored if the field has several inputs.
183
186
  */
184
187
  label: _propTypes.default.node,
185
188
  /**
@@ -205,7 +208,6 @@ DesktopDateRangePicker.propTypes = {
205
208
  minDate: _propTypes.default.object,
206
209
  /**
207
210
  * Name attribute used by the `input` element in the Field.
208
- * Ignored if the field has several inputs.
209
211
  */
210
212
  name: _propTypes.default.string,
211
213
  /**