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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (294) 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 +2007 -230
  8. package/DateRangeCalendar/DateRangeCalendar.js +73 -46
  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 +6 -8
  28. package/MobileDateRangePicker/MobileDateRangePicker.types.d.ts +2 -2
  29. package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +20 -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/PickersRangeCalendarHeader/PickersRangeCalendarHeader.js +2 -2
  50. package/README.md +8 -5
  51. package/SingleInputDateRangeField/SingleInputDateRangeField.js +23 -33
  52. package/SingleInputDateRangeField/SingleInputDateRangeField.types.d.ts +6 -16
  53. package/SingleInputDateRangeField/useSingleInputDateRangeField.d.ts +1 -1
  54. package/SingleInputDateRangeField/useSingleInputDateRangeField.js +14 -14
  55. package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +23 -33
  56. package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.types.d.ts +6 -17
  57. package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.d.ts +1 -1
  58. package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +14 -14
  59. package/SingleInputTimeRangeField/SingleInputTimeRangeField.js +23 -33
  60. package/SingleInputTimeRangeField/SingleInputTimeRangeField.types.d.ts +6 -17
  61. package/SingleInputTimeRangeField/useSingleInputTimeRangeField.d.ts +1 -1
  62. package/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +14 -14
  63. package/StaticDateRangePicker/StaticDateRangePicker.js +2 -2
  64. package/StaticDateRangePicker/StaticDateRangePicker.types.d.ts +2 -2
  65. package/dateRangeViewRenderers/dateRangeViewRenderers.d.ts +2 -2
  66. package/dateRangeViewRenderers/dateRangeViewRenderers.js +0 -6
  67. package/hooks/index.d.ts +2 -0
  68. package/hooks/index.js +2 -0
  69. package/hooks/package.json +6 -0
  70. package/hooks/useMultiInputRangeField/index.d.ts +1 -0
  71. package/hooks/useMultiInputRangeField/index.js +1 -0
  72. package/hooks/useMultiInputRangeField/useMultiInputRangeField.d.ts +53 -0
  73. package/hooks/useMultiInputRangeField/useMultiInputRangeField.js +149 -0
  74. package/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.d.ts +17 -0
  75. package/{modern/internals/hooks/useMultiInputFieldSelectedSections.js → hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js} +10 -8
  76. package/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.d.ts +17 -0
  77. package/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +59 -0
  78. package/hooks/usePickerRangePositionContext.d.ts +7 -0
  79. package/hooks/usePickerRangePositionContext.js +15 -0
  80. package/index.d.ts +2 -0
  81. package/index.js +4 -2
  82. package/internals/hooks/models/index.d.ts +1 -1
  83. package/internals/hooks/models/useRangePicker.d.ts +8 -11
  84. package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +68 -100
  85. package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.types.d.ts +8 -10
  86. package/internals/hooks/{useEnrichedRangePickerFieldProps.d.ts → useEnrichedRangePickerField.d.ts} +25 -16
  87. package/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +50 -63
  88. package/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +57 -80
  89. package/internals/hooks/useMobileRangePicker/useMobileRangePicker.types.d.ts +7 -9
  90. package/internals/hooks/useNullablePickerRangePositionContext.d.ts +5 -0
  91. package/internals/hooks/useNullablePickerRangePositionContext.js +10 -0
  92. package/internals/hooks/useRangePosition.d.ts +4 -3
  93. package/internals/hooks/useRangePosition.js +1 -1
  94. package/internals/hooks/useStaticRangePicker/useStaticRangePicker.d.ts +1 -1
  95. package/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +17 -30
  96. package/internals/hooks/useStaticRangePicker/useStaticRangePicker.types.d.ts +6 -12
  97. package/internals/models/dateTimeRange.d.ts +1 -6
  98. package/internals/models/fields.d.ts +7 -11
  99. package/internals/models/index.d.ts +0 -1
  100. package/internals/models/index.js +0 -1
  101. package/internals/models/managers.d.ts +3 -0
  102. package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.d.ts +3 -0
  103. package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +136 -0
  104. package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.d.ts +72 -0
  105. package/internals/utils/createMultiInputRangeField/index.d.ts +3 -0
  106. package/internals/utils/createMultiInputRangeField/index.js +2 -0
  107. package/internals/utils/date-fields-utils.d.ts +6 -6
  108. package/internals/utils/date-range-manager.js +2 -1
  109. package/internals/utils/releaseInfo.js +1 -1
  110. package/internals/utils/valueManagers.d.ts +4 -3
  111. package/internals/utils/valueManagers.js +7 -7
  112. package/managers/index.d.ts +6 -0
  113. package/managers/index.js +3 -0
  114. package/managers/package.json +6 -0
  115. package/managers/useDateRangeManager.d.ts +15 -0
  116. package/managers/useDateRangeManager.js +33 -0
  117. package/managers/useDateTimeRangeManager.d.ts +15 -0
  118. package/managers/useDateTimeRangeManager.js +33 -0
  119. package/managers/useTimeRangeManager.d.ts +15 -0
  120. package/managers/useTimeRangeManager.js +31 -0
  121. package/models/fields.d.ts +7 -11
  122. package/models/index.d.ts +1 -2
  123. package/models/index.js +1 -2
  124. package/models/range.d.ts +0 -2
  125. package/modern/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.js +1 -1
  126. package/modern/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.js +1 -1
  127. package/modern/DateRangeCalendar/DateRangeCalendar.js +73 -46
  128. package/modern/DateRangePicker/DateRangePicker.js +1 -4
  129. package/modern/DateRangePicker/DateRangePickerToolbar.js +33 -41
  130. package/modern/DateTimeRangePicker/DateTimeRangePicker.js +2 -5
  131. package/modern/DateTimeRangePicker/DateTimeRangePickerTabs.js +35 -33
  132. package/modern/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +8 -6
  133. package/modern/DateTimeRangePicker/DateTimeRangePickerToolbar.js +81 -109
  134. package/modern/DesktopDateRangePicker/DesktopDateRangePicker.js +11 -9
  135. package/modern/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +20 -22
  136. package/modern/MobileDateRangePicker/MobileDateRangePicker.js +6 -8
  137. package/modern/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +20 -16
  138. package/modern/MultiInputDateRangeField/MultiInputDateRangeField.js +15 -121
  139. package/modern/MultiInputDateRangeField/index.js +2 -2
  140. package/modern/MultiInputDateRangeField/multiInputDateRangeFieldClasses.js +4 -0
  141. package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +15 -121
  142. package/modern/MultiInputDateTimeRangeField/index.js +2 -2
  143. package/modern/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.js +4 -0
  144. package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.js +16 -122
  145. package/modern/MultiInputTimeRangeField/index.js +2 -2
  146. package/modern/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.js +4 -0
  147. package/modern/PickersRangeCalendarHeader/PickersRangeCalendarHeader.js +2 -2
  148. package/modern/SingleInputDateRangeField/SingleInputDateRangeField.js +23 -33
  149. package/modern/SingleInputDateRangeField/useSingleInputDateRangeField.js +14 -14
  150. package/modern/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +23 -33
  151. package/modern/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +14 -14
  152. package/modern/SingleInputTimeRangeField/SingleInputTimeRangeField.js +23 -33
  153. package/modern/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +14 -14
  154. package/modern/StaticDateRangePicker/StaticDateRangePicker.js +2 -2
  155. package/modern/dateRangeViewRenderers/dateRangeViewRenderers.js +0 -6
  156. package/modern/hooks/index.js +2 -0
  157. package/modern/hooks/useMultiInputRangeField/index.js +1 -0
  158. package/modern/hooks/useMultiInputRangeField/useMultiInputRangeField.js +149 -0
  159. package/{internals/hooks/useMultiInputFieldSelectedSections.js → modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js} +10 -8
  160. package/modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +59 -0
  161. package/modern/hooks/usePickerRangePositionContext.js +15 -0
  162. package/modern/index.js +4 -2
  163. package/modern/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +68 -100
  164. package/modern/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +50 -63
  165. package/modern/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +57 -80
  166. package/modern/internals/hooks/useNullablePickerRangePositionContext.js +10 -0
  167. package/modern/internals/hooks/useRangePosition.js +1 -1
  168. package/modern/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +17 -30
  169. package/modern/internals/models/index.js +0 -1
  170. package/modern/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +136 -0
  171. package/modern/internals/utils/createMultiInputRangeField/index.js +2 -0
  172. package/modern/internals/utils/date-range-manager.js +2 -1
  173. package/modern/internals/utils/releaseInfo.js +1 -1
  174. package/modern/internals/utils/valueManagers.js +7 -7
  175. package/modern/managers/index.js +3 -0
  176. package/modern/managers/useDateRangeManager.js +33 -0
  177. package/modern/managers/useDateTimeRangeManager.js +33 -0
  178. package/modern/managers/useTimeRangeManager.js +31 -0
  179. package/modern/models/index.js +1 -2
  180. package/modern/validation/validateDateRange.js +8 -0
  181. package/modern/validation/validateDateTimeRange.js +4 -0
  182. package/modern/validation/validateTimeRange.js +8 -0
  183. package/node/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.js +1 -1
  184. package/node/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.js +1 -1
  185. package/node/DateRangeCalendar/DateRangeCalendar.js +72 -45
  186. package/node/DateRangePicker/DateRangePicker.js +1 -4
  187. package/node/DateRangePicker/DateRangePickerToolbar.js +31 -39
  188. package/node/DateTimeRangePicker/DateTimeRangePicker.js +2 -5
  189. package/node/DateTimeRangePicker/DateTimeRangePickerTabs.js +33 -31
  190. package/node/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +8 -6
  191. package/node/DateTimeRangePicker/DateTimeRangePickerToolbar.js +80 -108
  192. package/node/DesktopDateRangePicker/DesktopDateRangePicker.js +11 -9
  193. package/node/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +20 -22
  194. package/node/MobileDateRangePicker/MobileDateRangePicker.js +6 -8
  195. package/node/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +20 -16
  196. package/node/MultiInputDateRangeField/MultiInputDateRangeField.js +14 -124
  197. package/node/MultiInputDateRangeField/index.js +3 -9
  198. package/node/MultiInputDateRangeField/multiInputDateRangeFieldClasses.js +12 -0
  199. package/node/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +14 -124
  200. package/node/MultiInputDateTimeRangeField/index.js +3 -9
  201. package/node/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.js +12 -0
  202. package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.js +15 -125
  203. package/node/MultiInputTimeRangeField/index.js +3 -9
  204. package/node/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.js +12 -0
  205. package/node/PickersRangeCalendarHeader/PickersRangeCalendarHeader.js +2 -2
  206. package/node/SingleInputDateRangeField/SingleInputDateRangeField.js +22 -32
  207. package/node/SingleInputDateRangeField/useSingleInputDateRangeField.js +13 -14
  208. package/node/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +22 -32
  209. package/node/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +13 -14
  210. package/node/SingleInputTimeRangeField/SingleInputTimeRangeField.js +22 -32
  211. package/node/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +13 -14
  212. package/node/StaticDateRangePicker/StaticDateRangePicker.js +2 -2
  213. package/node/dateRangeViewRenderers/dateRangeViewRenderers.js +0 -6
  214. package/node/hooks/index.js +19 -0
  215. package/node/hooks/useMultiInputRangeField/index.js +12 -0
  216. package/node/hooks/useMultiInputRangeField/useMultiInputRangeField.js +155 -0
  217. package/node/{internals/hooks/useMultiInputFieldSelectedSections.js → hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js} +11 -10
  218. package/node/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +66 -0
  219. package/node/hooks/usePickerRangePositionContext.js +22 -0
  220. package/node/index.js +23 -1
  221. package/node/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +68 -100
  222. package/node/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +52 -65
  223. package/node/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +57 -80
  224. package/node/internals/hooks/useNullablePickerRangePositionContext.js +16 -0
  225. package/node/internals/hooks/useRangePosition.js +1 -1
  226. package/node/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +16 -29
  227. package/node/internals/models/index.js +0 -11
  228. package/node/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +143 -0
  229. package/node/internals/utils/createMultiInputRangeField/index.js +19 -0
  230. package/node/internals/utils/date-range-manager.js +2 -1
  231. package/node/internals/utils/releaseInfo.js +1 -1
  232. package/node/internals/utils/valueManagers.js +7 -7
  233. package/node/managers/index.js +26 -0
  234. package/node/managers/useDateRangeManager.js +40 -0
  235. package/node/managers/useDateTimeRangeManager.js +40 -0
  236. package/node/managers/useTimeRangeManager.js +38 -0
  237. package/node/models/index.js +0 -22
  238. package/node/validation/validateDateRange.js +8 -0
  239. package/node/validation/validateDateTimeRange.js +4 -0
  240. package/node/validation/validateTimeRange.js +8 -0
  241. package/package.json +6 -6
  242. package/themeAugmentation/overrides.d.ts +6 -4
  243. package/themeAugmentation/props.d.ts +2 -2
  244. package/validation/validateDateRange.d.ts +9 -1
  245. package/validation/validateDateRange.js +8 -0
  246. package/validation/validateDateTimeRange.d.ts +6 -2
  247. package/validation/validateDateTimeRange.js +4 -0
  248. package/validation/validateTimeRange.d.ts +9 -1
  249. package/validation/validateTimeRange.js +8 -0
  250. package/MultiInputDateRangeField/MultiInputDateRangeField.types.d.ts +0 -53
  251. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.d.ts +0 -54
  252. package/MultiInputTimeRangeField/MultiInputTimeRangeField.types.d.ts +0 -54
  253. package/internals/hooks/useMultiInputFieldSelectedSections.d.ts +0 -21
  254. package/internals/hooks/useMultiInputRangeField/shared.d.ts +0 -1
  255. package/internals/hooks/useMultiInputRangeField/shared.js +0 -9
  256. package/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.d.ts +0 -3
  257. package/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +0 -113
  258. package/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.d.ts +0 -3
  259. package/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -113
  260. package/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.d.ts +0 -11
  261. package/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.d.ts +0 -3
  262. package/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +0 -113
  263. package/internals/models/timeRange.d.ts +0 -6
  264. package/internals/models/timeRange.js +0 -1
  265. package/models/dateRange.d.ts +0 -7
  266. package/models/dateRange.js +0 -1
  267. package/models/multiInputRangeFieldClasses.d.ts +0 -7
  268. package/models/multiInputRangeFieldClasses.js +0 -1
  269. package/modern/MultiInputDateRangeField/MultiInputDateRangeField.types.js +0 -1
  270. package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.js +0 -1
  271. package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.types.js +0 -1
  272. package/modern/internals/hooks/useMultiInputRangeField/shared.js +0 -9
  273. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +0 -113
  274. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -113
  275. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.js +0 -1
  276. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +0 -113
  277. package/modern/internals/models/timeRange.js +0 -1
  278. package/modern/models/dateRange.js +0 -1
  279. package/modern/models/multiInputRangeFieldClasses.js +0 -1
  280. package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.types.js +0 -5
  281. package/node/internals/hooks/useMultiInputRangeField/shared.js +0 -16
  282. package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +0 -121
  283. package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -121
  284. package/node/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.js +0 -5
  285. package/node/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +0 -121
  286. package/node/internals/models/timeRange.js +0 -5
  287. package/node/models/dateRange.js +0 -5
  288. package/node/models/multiInputRangeFieldClasses.js +0 -5
  289. /package/{MultiInputDateRangeField/MultiInputDateRangeField.types.js → internals/models/managers.js} +0 -0
  290. /package/{MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.js → internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.js} +0 -0
  291. /package/{MultiInputTimeRangeField/MultiInputTimeRangeField.types.js → modern/internals/models/managers.js} +0 -0
  292. /package/{internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.js → modern/internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.js} +0 -0
  293. /package/node/{MultiInputDateRangeField/MultiInputDateRangeField.types.js → internals/models/managers.js} +0 -0
  294. /package/node/{MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.js → internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.js} +0 -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
  /**
@@ -28,16 +28,23 @@ var _shared = require("../DateTimeRangePicker/shared");
28
28
  var _MultiInputDateTimeRangeField = require("../MultiInputDateTimeRangeField");
29
29
  var _DateTimeRangePickerTimeWrapper = require("../DateTimeRangePicker/DateTimeRangePickerTimeWrapper");
30
30
  var _dimensions = require("../internals/constants/dimensions");
31
+ var _hooks = require("../hooks");
31
32
  var _jsxRuntime = require("react/jsx-runtime");
32
- const _excluded = ["openTo", "rangePosition"];
33
- const rendererInterceptor = function rendererInterceptor(inViewRenderers, popperView, rendererProps) {
33
+ const _excluded = ["openTo"];
34
+ const rendererInterceptor = function RendererInterceptor(props) {
34
35
  const {
35
- openTo,
36
- rangePosition
36
+ viewRenderers,
37
+ popperView,
38
+ rendererProps
39
+ } = props;
40
+ const {
41
+ openTo
37
42
  } = rendererProps,
38
43
  otherProps = (0, _objectWithoutPropertiesLoose2.default)(rendererProps, _excluded);
44
+ const {
45
+ rangePosition
46
+ } = (0, _hooks.usePickerRangePositionContext)();
39
47
  const finalProps = (0, _extends2.default)({}, otherProps, {
40
- rangePosition,
41
48
  focusedView: null,
42
49
  sx: [{
43
50
  [`&.${_MultiSectionDigitalClock.multiSectionDigitalClockClasses.root}`]: {
@@ -50,7 +57,7 @@ const rendererInterceptor = function rendererInterceptor(inViewRenderers, popper
50
57
  });
51
58
  const isTimeViewActive = (0, _internals.isInternalTimeView)(popperView);
52
59
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
53
- children: [inViewRenderers.day?.((0, _extends2.default)({}, rendererProps, {
60
+ children: [viewRenderers.day?.((0, _extends2.default)({}, rendererProps, {
54
61
  availableRangePositions: [rangePosition],
55
62
  view: !isTimeViewActive ? popperView : 'day',
56
63
  views: rendererProps.views.filter(_internals.isDatePickerView),
@@ -66,7 +73,7 @@ const rendererInterceptor = function rendererInterceptor(inViewRenderers, popper
66
73
  view: isTimeViewActive ? popperView : 'hours',
67
74
  views: finalProps.views.filter(_internals.isInternalTimeView),
68
75
  openTo: (0, _internals.isInternalTimeView)(openTo) ? openTo : 'hours',
69
- viewRenderer: inViewRenderers[isTimeViewActive ? popperView : 'hours'],
76
+ viewRenderer: viewRenderers[isTimeViewActive ? popperView : 'hours'],
70
77
  sx: [{
71
78
  gridColumn: 3
72
79
  }, ...finalProps.sx]
@@ -99,7 +106,6 @@ const DesktopDateTimeRangePicker = exports.DesktopDateTimeRangePicker = /*#__PUR
99
106
  // Need to avoid adding the `meridiem` view when unexpected renderer is specified
100
107
  const shouldHoursRendererContainMeridiemView = viewRenderers.hours?.name === _timeViewRenderers.renderMultiSectionDigitalClockTimeView.name;
101
108
  const views = !shouldHoursRendererContainMeridiemView ? defaultizedProps.views.filter(view => view !== 'meridiem') : defaultizedProps.views;
102
- const actionBarActions = defaultizedProps.shouldRenderTimeInASingleColumn ? [] : ['accept'];
103
109
  const props = (0, _extends2.default)({}, defaultizedProps, {
104
110
  views,
105
111
  viewRenderers,
@@ -112,24 +118,19 @@ const DesktopDateTimeRangePicker = exports.DesktopDateTimeRangePicker = /*#__PUR
112
118
  layout: _DesktopDateTimePicker.DesktopDateTimePickerLayout
113
119
  }, defaultizedProps.slots),
114
120
  slotProps: (0, _extends2.default)({}, defaultizedProps.slotProps, {
115
- field: ownerState => (0, _extends2.default)({}, (0, _resolveComponentProps.default)(defaultizedProps.slotProps?.field, ownerState), (0, _validation.extractValidationProps)(defaultizedProps), {
116
- ref
117
- }),
121
+ field: ownerState => (0, _extends2.default)({}, (0, _resolveComponentProps.default)(defaultizedProps.slotProps?.field, ownerState), (0, _validation.extractValidationProps)(defaultizedProps)),
118
122
  tabs: (0, _extends2.default)({
119
123
  hidden: true
120
124
  }, defaultizedProps.slotProps?.tabs),
121
125
  toolbar: (0, _extends2.default)({
122
- hidden: true,
123
- toolbarVariant: 'desktop'
124
- }, defaultizedProps.slotProps?.toolbar),
125
- actionBar: ownerState => (0, _extends2.default)({
126
- actions: actionBarActions
127
- }, (0, _resolveComponentProps.default)(defaultizedProps.slotProps?.actionBar, ownerState))
126
+ hidden: true
127
+ }, defaultizedProps.slotProps?.toolbar)
128
128
  })
129
129
  });
130
130
  const {
131
131
  renderPicker
132
132
  } = (0, _useDesktopRangePicker.useDesktopRangePicker)({
133
+ ref,
133
134
  props,
134
135
  valueManager: _valueManagers.rangeValueManager,
135
136
  valueType: 'date-time',
@@ -162,8 +163,8 @@ DesktopDateTimeRangePicker.propTypes = {
162
163
  calendars: _propTypes.default.oneOf([1, 2, 3]),
163
164
  className: _propTypes.default.string,
164
165
  /**
165
- * If `true`, the popover or modal will close after submitting the full date.
166
- * @default `true` for desktop, `false` for mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).
166
+ * If `true`, the Picker will close after submitting the full date.
167
+ * @default false
167
168
  */
168
169
  closeOnSelect: _propTypes.default.bool,
169
170
  /**
@@ -256,12 +257,10 @@ DesktopDateTimeRangePicker.propTypes = {
256
257
  formatDensity: _propTypes.default.oneOf(['dense', 'spacious']),
257
258
  /**
258
259
  * Pass a ref to the `input` element.
259
- * Ignored if the field has several inputs.
260
260
  */
261
261
  inputRef: _utils.refType,
262
262
  /**
263
263
  * The label content.
264
- * Ignored if the field has several inputs.
265
264
  */
266
265
  label: _propTypes.default.node,
267
266
  /**
@@ -310,7 +309,6 @@ DesktopDateTimeRangePicker.propTypes = {
310
309
  minutesStep: _propTypes.default.number,
311
310
  /**
312
311
  * Name attribute used by the `input` element in the Field.
313
- * Ignored if the field has several inputs.
314
312
  */
315
313
  name: _propTypes.default.string,
316
314
  /**