@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
@@ -2,22 +2,20 @@
2
2
 
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
5
- const _excluded = ["value", "rangePosition", "onRangePositionChange", "className", "onViewChange", "toolbarVariant", "onChange", "classes", "view", "isLandscape", "views", "ampm", "hidden", "toolbarFormat", "toolbarPlaceholder", "titleId", "sx"];
5
+ const _excluded = ["className", "classes", "classes", "ampm", "hidden", "toolbarFormat", "toolbarPlaceholder", "titleId", "sx"];
6
6
  import * as React from 'react';
7
7
  import PropTypes from 'prop-types';
8
8
  import clsx from 'clsx';
9
9
  import { styled, useThemeProps } from '@mui/material/styles';
10
10
  import composeClasses from '@mui/utils/composeClasses';
11
- import { useUtils } from '@mui/x-date-pickers/internals';
11
+ import { useUtils, useToolbarOwnerState, DateTimePickerToolbarOverrideContext } from '@mui/x-date-pickers/internals';
12
12
  import { usePickerContext, usePickerTranslations } from '@mui/x-date-pickers/hooks';
13
13
  import { DateTimePickerToolbar } from '@mui/x-date-pickers/DateTimePicker';
14
14
  import { getDateTimeRangePickerToolbarUtilityClass } from "./dateTimeRangePickerToolbarClasses.js";
15
15
  import { calculateRangeChange } from "../internals/utils/date-range-manager.js";
16
+ import { usePickerRangePositionContext } from "../hooks/index.js";
16
17
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
17
- const useUtilityClasses = ownerState => {
18
- const {
19
- classes
20
- } = ownerState;
18
+ const useUtilityClasses = classes => {
21
19
  const slots = {
22
20
  root: ['root'],
23
21
  startToolbar: ['startToolbar'],
@@ -39,36 +37,13 @@ const DateTimeRangePickerToolbarStart = styled(DateTimePickerToolbar, {
39
37
  overridesResolver: (_, styles) => styles.startToolbar
40
38
  })({
41
39
  borderBottom: 'none',
42
- variants: [{
43
- props: ({
44
- toolbarVariant
45
- }) => toolbarVariant !== 'desktop',
46
- style: {
47
- padding: '12px 8px 0 12px'
48
- }
49
- }, {
50
- props: {
51
- toolbarVariant: 'desktop'
52
- },
53
- style: {
54
- paddingBottom: 0
55
- }
56
- }]
40
+ paddingBottom: 0
57
41
  });
58
42
  const DateTimeRangePickerToolbarEnd = styled(DateTimePickerToolbar, {
59
43
  name: 'MuiDateTimeRangePickerToolbar',
60
44
  slot: 'EndToolbar',
61
45
  overridesResolver: (_, styles) => styles.endToolbar
62
- })({
63
- variants: [{
64
- props: ({
65
- toolbarVariant
66
- }) => toolbarVariant !== 'desktop',
67
- style: {
68
- padding: '12px 8px 12px 12px'
69
- }
70
- }]
71
- });
46
+ })({});
72
47
  const DateTimeRangePickerToolbar = /*#__PURE__*/React.forwardRef(function DateTimeRangePickerToolbar(inProps, ref) {
73
48
  const props = useThemeProps({
74
49
  props: inProps,
@@ -76,15 +51,8 @@ const DateTimeRangePickerToolbar = /*#__PURE__*/React.forwardRef(function DateTi
76
51
  });
77
52
  const utils = useUtils();
78
53
  const {
79
- value: [start, end],
80
- rangePosition,
81
- onRangePositionChange,
82
54
  className,
83
- onViewChange,
84
- onChange,
85
- view,
86
- isLandscape,
87
- views,
55
+ classes: classesProp,
88
56
  ampm,
89
57
  hidden,
90
58
  toolbarFormat,
@@ -94,11 +62,22 @@ const DateTimeRangePickerToolbar = /*#__PURE__*/React.forwardRef(function DateTi
94
62
  } = props,
95
63
  other = _objectWithoutPropertiesLoose(props, _excluded);
96
64
  const {
65
+ value,
66
+ setValue,
97
67
  disabled,
98
- readOnly
68
+ readOnly,
69
+ view,
70
+ setView,
71
+ views
99
72
  } = usePickerContext();
73
+ const translations = usePickerTranslations();
74
+ const ownerState = useToolbarOwnerState();
75
+ const {
76
+ rangePosition,
77
+ setRangePosition
78
+ } = usePickerRangePositionContext();
79
+ const classes = useUtilityClasses(classesProp);
100
80
  const commonToolbarProps = {
101
- isLandscape,
102
81
  views,
103
82
  ampm,
104
83
  disabled,
@@ -107,41 +86,58 @@ const DateTimeRangePickerToolbar = /*#__PURE__*/React.forwardRef(function DateTi
107
86
  toolbarFormat,
108
87
  toolbarPlaceholder
109
88
  };
110
- const translations = usePickerTranslations();
111
- const ownerState = props;
112
- const classes = useUtilityClasses(ownerState);
113
- const handleStartRangeViewChange = React.useCallback(newView => {
114
- if (newView === 'year' || newView === 'month') {
115
- return;
116
- }
117
- if (rangePosition !== 'start') {
118
- onRangePositionChange('start');
119
- }
120
- onViewChange(newView);
121
- }, [onRangePositionChange, onViewChange, rangePosition]);
122
- const handleEndRangeViewChange = React.useCallback(newView => {
123
- if (newView === 'year' || newView === 'month') {
124
- return;
125
- }
126
- if (rangePosition !== 'end') {
127
- onRangePositionChange('end');
128
- }
129
- onViewChange(newView);
130
- }, [onRangePositionChange, onViewChange, rangePosition]);
131
- const handleOnChange = React.useCallback(newDate => {
89
+ const wrappedSetValue = React.useCallback(newDate => {
132
90
  const {
133
91
  nextSelection,
134
92
  newRange
135
93
  } = calculateRangeChange({
136
94
  newDate,
137
95
  utils,
138
- range: props.value,
96
+ range: value,
139
97
  rangePosition,
140
98
  allowRangeFlip: true
141
99
  });
142
- onRangePositionChange(nextSelection);
143
- onChange(newRange);
144
- }, [onChange, onRangePositionChange, props.value, rangePosition, utils]);
100
+ setRangePosition(nextSelection);
101
+ setValue(newRange, {
102
+ changeImportance: 'set'
103
+ });
104
+ }, [setValue, setRangePosition, value, rangePosition, utils]);
105
+ const startOverrides = React.useMemo(() => {
106
+ const handleStartRangeViewChange = newView => {
107
+ if (newView === 'year' || newView === 'month') {
108
+ return;
109
+ }
110
+ if (rangePosition !== 'start') {
111
+ setRangePosition('start');
112
+ }
113
+ setView(newView);
114
+ };
115
+ return {
116
+ value: value[0],
117
+ setValue: wrappedSetValue,
118
+ forceDesktopVariant: true,
119
+ setView: handleStartRangeViewChange,
120
+ view: rangePosition === 'start' ? view : null
121
+ };
122
+ }, [value, wrappedSetValue, rangePosition, view, setRangePosition, setView]);
123
+ const endOverrides = React.useMemo(() => {
124
+ const handleEndRangeViewChange = newView => {
125
+ if (newView === 'year' || newView === 'month') {
126
+ return;
127
+ }
128
+ if (rangePosition !== 'end') {
129
+ setRangePosition('end');
130
+ }
131
+ setView(newView);
132
+ };
133
+ return {
134
+ value: value[1],
135
+ setValue: wrappedSetValue,
136
+ forceDesktopVariant: true,
137
+ setView: handleEndRangeViewChange,
138
+ view: rangePosition === 'end' ? view : null
139
+ };
140
+ }, [value, wrappedSetValue, rangePosition, view, setRangePosition, setView]);
145
141
  if (hidden) {
146
142
  return null;
147
143
  }
@@ -151,27 +147,23 @@ const DateTimeRangePickerToolbar = /*#__PURE__*/React.forwardRef(function DateTi
151
147
  ref: ref,
152
148
  sx: sx
153
149
  }, other, {
154
- children: [/*#__PURE__*/_jsx(DateTimeRangePickerToolbarStart, _extends({
155
- value: start,
156
- onViewChange: handleStartRangeViewChange,
157
- toolbarTitle: translations.start,
158
- ownerState: ownerState,
159
- toolbarVariant: "desktop",
160
- view: rangePosition === 'start' ? view : undefined,
161
- className: classes.startToolbar,
162
- onChange: handleOnChange,
163
- titleId: titleId ? `${titleId}-start-toolbar` : undefined
164
- }, commonToolbarProps)), /*#__PURE__*/_jsx(DateTimeRangePickerToolbarEnd, _extends({
165
- value: end,
166
- onViewChange: handleEndRangeViewChange,
167
- toolbarTitle: translations.end,
168
- ownerState: ownerState,
169
- toolbarVariant: "desktop",
170
- view: rangePosition === 'end' ? view : undefined,
171
- className: classes.endToolbar,
172
- onChange: handleOnChange,
173
- titleId: titleId ? `${titleId}-end-toolbar` : undefined
174
- }, commonToolbarProps))]
150
+ children: [/*#__PURE__*/_jsx(DateTimePickerToolbarOverrideContext.Provider, {
151
+ value: startOverrides,
152
+ children: /*#__PURE__*/_jsx(DateTimeRangePickerToolbarStart, _extends({
153
+ toolbarTitle: translations.start,
154
+ ownerState: ownerState,
155
+ className: classes.startToolbar,
156
+ titleId: titleId ? `${titleId}-start-toolbar` : undefined
157
+ }, commonToolbarProps))
158
+ }), /*#__PURE__*/_jsx(DateTimePickerToolbarOverrideContext.Provider, {
159
+ value: endOverrides,
160
+ children: /*#__PURE__*/_jsx(DateTimeRangePickerToolbarEnd, _extends({
161
+ toolbarTitle: translations.end,
162
+ ownerState: ownerState,
163
+ className: classes.endToolbar,
164
+ titleId: titleId ? `${titleId}-end-toolbar` : undefined
165
+ }, commonToolbarProps))
166
+ })]
175
167
  }));
176
168
  });
177
169
  process.env.NODE_ENV !== "production" ? DateTimeRangePickerToolbar.propTypes = {
@@ -190,16 +182,6 @@ process.env.NODE_ENV !== "production" ? DateTimeRangePickerToolbar.propTypes = {
190
182
  * @default `true` for Desktop, `false` for Mobile.
191
183
  */
192
184
  hidden: PropTypes.bool,
193
- isLandscape: PropTypes.bool.isRequired,
194
- onChange: PropTypes.func.isRequired,
195
- onRangePositionChange: PropTypes.func.isRequired,
196
- /**
197
- * Callback called when a toolbar is clicked
198
- * @template TView
199
- * @param {TView} view The view to open
200
- */
201
- onViewChange: PropTypes.func.isRequired,
202
- rangePosition: PropTypes.oneOf(['end', 'start']).isRequired,
203
185
  /**
204
186
  * The system prop that allows defining system overrides as well as additional CSS styles.
205
187
  */
@@ -213,16 +195,6 @@ process.env.NODE_ENV !== "production" ? DateTimeRangePickerToolbar.propTypes = {
213
195
  * Toolbar value placeholder—it is displayed when the value is empty.
214
196
  * @default "––"
215
197
  */
216
- toolbarPlaceholder: PropTypes.node,
217
- toolbarVariant: PropTypes.oneOf(['desktop', 'mobile']),
218
- value: PropTypes.arrayOf(PropTypes.object).isRequired,
219
- /**
220
- * Currently visible picker view.
221
- */
222
- view: PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'seconds']).isRequired,
223
- /**
224
- * Available views.
225
- */
226
- views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'seconds']).isRequired).isRequired
198
+ toolbarPlaceholder: PropTypes.node
227
199
  } : void 0;
228
200
  export { DateTimeRangePickerToolbar };
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { DefaultizedProps } from '@mui/x-internals/types';
3
3
  import { LocalizedComponent } from '@mui/x-date-pickers/locales';
4
- import { BaseDateValidationProps, BasePickerInputProps, PickerViewRendererLookup, BaseClockProps, DesktopOnlyTimePickerProps, TimeViewWithMeridiem, UseViewsOptions, DateTimeValidationProps, DateOrTimeViewWithMeridiem, PickerRangeValue } from '@mui/x-date-pickers/internals';
4
+ import { BasePickerInputProps, PickerViewRendererLookup, BaseClockProps, DesktopOnlyTimePickerProps, TimeViewWithMeridiem, UseViewsOptions, DateOrTimeViewWithMeridiem, PickerRangeValue } from '@mui/x-date-pickers/internals';
5
5
  import { TimeViewRendererProps } from '@mui/x-date-pickers/timeViewRenderers';
6
6
  import { DigitalClockSlots, DigitalClockSlotProps } from '@mui/x-date-pickers/DigitalClock';
7
7
  import { MultiSectionDigitalClockSlots, MultiSectionDigitalClockSlotProps } from '@mui/x-date-pickers/MultiSectionDigitalClock';
@@ -11,6 +11,7 @@ import { DateRangeCalendarSlots, DateRangeCalendarSlotProps, ExportedDateRangeCa
11
11
  import { DateTimeRangePickerToolbarProps, ExportedDateTimeRangePickerToolbarProps } from './DateTimeRangePickerToolbar';
12
12
  import { DateRangeViewRendererProps } from '../dateRangeViewRenderers';
13
13
  import { DateTimeRangePickerTabsProps, ExportedDateTimeRangePickerTabsProps } from './DateTimeRangePickerTabs';
14
+ import { ExportedValidateDateTimeRangeProps, ValidateDateTimeRangePropsToDefault } from '../validation/validateDateTimeRange';
14
15
  export interface BaseDateTimeRangePickerSlots extends DateRangeCalendarSlots, DigitalClockSlots, MultiSectionDigitalClockSlots {
15
16
  /**
16
17
  * Tabs enabling toggling between date and time pickers.
@@ -33,10 +34,10 @@ export interface BaseDateTimeRangePickerSlotProps extends DateRangeCalendarSlotP
33
34
  */
34
35
  toolbar?: ExportedDateTimeRangePickerToolbarProps;
35
36
  }
36
- export type DateTimeRangePickerRenderers<TView extends DateOrTimeViewWithMeridiem, TAdditionalProps extends {} = {}> = PickerViewRendererLookup<PickerRangeValue, TView, Omit<DateRangeViewRendererProps<'day'>, 'view' | 'slots' | 'slotProps'> & Omit<TimeViewRendererProps<TimeViewWithMeridiem, BaseClockProps<TimeViewWithMeridiem>>, 'view' | 'slots' | 'slotProps'> & {
37
+ export type DateTimeRangePickerRenderers<TView extends DateOrTimeViewWithMeridiem> = PickerViewRendererLookup<PickerRangeValue, TView, Omit<DateRangeViewRendererProps<'day'>, 'view' | 'slots' | 'slotProps'> & Omit<TimeViewRendererProps<TimeViewWithMeridiem, BaseClockProps<TimeViewWithMeridiem>>, 'view' | 'slots' | 'slotProps'> & {
37
38
  view: TView;
38
- }, TAdditionalProps>;
39
- export interface BaseDateTimeRangePickerProps extends Omit<BasePickerInputProps<PickerRangeValue, DateTimeRangePickerView, DateTimeRangeValidationError>, 'orientation' | 'views' | 'openTo'>, ExportedDateRangeCalendarProps, BaseDateValidationProps, DesktopOnlyTimePickerProps, Partial<Pick<UseViewsOptions<PickerRangeValue, DateTimeRangePickerViewExternal>, 'openTo' | 'views'>>, DateTimeValidationProps {
39
+ }>;
40
+ export interface BaseDateTimeRangePickerProps extends Omit<BasePickerInputProps<PickerRangeValue, DateTimeRangePickerView, DateTimeRangeValidationError>, 'orientation' | 'views' | 'openTo'>, ExportedDateRangeCalendarProps, ExportedValidateDateTimeRangeProps, DesktopOnlyTimePickerProps, Partial<Pick<UseViewsOptions<PickerRangeValue, DateTimeRangePickerViewExternal>, 'openTo' | 'views'>> {
40
41
  /**
41
42
  * Overridable component slots.
42
43
  * @default {}
@@ -54,7 +55,7 @@ export interface BaseDateTimeRangePickerProps extends Omit<BasePickerInputProps<
54
55
  */
55
56
  viewRenderers?: Partial<DateTimeRangePickerRenderers<DateTimeRangePickerView>>;
56
57
  }
57
- type UseDateTimeRangePickerDefaultizedProps<Props extends BaseDateTimeRangePickerProps> = LocalizedComponent<Omit<DefaultizedProps<Props, 'openTo' | 'ampm' | keyof BaseDateValidationProps>, 'views'>> & {
58
+ type UseDateTimeRangePickerDefaultizedProps<Props extends BaseDateTimeRangePickerProps> = LocalizedComponent<Omit<DefaultizedProps<Props, 'openTo' | 'ampm' | ValidateDateTimeRangePropsToDefault>, 'views'>> & {
58
59
  shouldRenderTimeInASingleColumn: boolean;
59
60
  views: readonly DateTimeRangePickerView[];
60
61
  };
@@ -13,6 +13,8 @@ import { renderDateRangeViewCalendar } from "../dateRangeViewRenderers/index.js"
13
13
  import { MultiInputDateRangeField } from "../MultiInputDateRangeField/index.js";
14
14
  import { useDesktopRangePicker } from "../internals/hooks/useDesktopRangePicker/index.js";
15
15
  import { validateDateRange } from "../validation/index.js";
16
+ const emptyActions = [];
17
+
16
18
  /**
17
19
  * Demos:
18
20
  *
@@ -32,6 +34,7 @@ const DesktopDateRangePicker = /*#__PURE__*/React.forwardRef(function DesktopDat
32
34
  day: renderDateRangeViewCalendar
33
35
  }, defaultizedProps.viewRenderers);
34
36
  const props = _extends({}, defaultizedProps, {
37
+ closeOnSelect: defaultizedProps.closeOnSelect ?? true,
35
38
  viewRenderers,
36
39
  format: utils.formats.keyboardDate,
37
40
  calendars: defaultizedProps.calendars ?? 2,
@@ -41,17 +44,19 @@ const DesktopDateRangePicker = /*#__PURE__*/React.forwardRef(function DesktopDat
41
44
  field: MultiInputDateRangeField
42
45
  }, defaultizedProps.slots),
43
46
  slotProps: _extends({}, defaultizedProps.slotProps, {
44
- field: ownerState => _extends({}, resolveComponentProps(defaultizedProps.slotProps?.field, ownerState), extractValidationProps(defaultizedProps), {
45
- ref
46
- }),
47
+ field: ownerState => _extends({}, resolveComponentProps(defaultizedProps.slotProps?.field, ownerState), extractValidationProps(defaultizedProps)),
47
48
  toolbar: _extends({
48
49
  hidden: true
49
- }, defaultizedProps.slotProps?.toolbar)
50
+ }, defaultizedProps.slotProps?.toolbar),
51
+ actionBar: ownerState => _extends({
52
+ actions: emptyActions
53
+ }, resolveComponentProps(defaultizedProps.slotProps?.actionBar, ownerState))
50
54
  })
51
55
  });
52
56
  const {
53
57
  renderPicker
54
58
  } = useDesktopRangePicker({
59
+ ref,
55
60
  props,
56
61
  valueManager: rangeValueManager,
57
62
  valueType: 'date',
@@ -78,8 +83,8 @@ DesktopDateRangePicker.propTypes = {
78
83
  calendars: PropTypes.oneOf([1, 2, 3]),
79
84
  className: PropTypes.string,
80
85
  /**
81
- * If `true`, the popover or modal will close after submitting the full date.
82
- * @default `true` for desktop, `false` for mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).
86
+ * If `true`, the Picker will close after submitting the full date.
87
+ * @default true
83
88
  */
84
89
  closeOnSelect: PropTypes.bool,
85
90
  /**
@@ -167,12 +172,10 @@ DesktopDateRangePicker.propTypes = {
167
172
  formatDensity: PropTypes.oneOf(['dense', 'spacious']),
168
173
  /**
169
174
  * Pass a ref to the `input` element.
170
- * Ignored if the field has several inputs.
171
175
  */
172
176
  inputRef: refType,
173
177
  /**
174
178
  * The label content.
175
- * Ignored if the field has several inputs.
176
179
  */
177
180
  label: PropTypes.node,
178
181
  /**
@@ -198,7 +201,6 @@ DesktopDateRangePicker.propTypes = {
198
201
  minDate: PropTypes.object,
199
202
  /**
200
203
  * Name attribute used by the `input` element in the Field.
201
- * Ignored if the field has several inputs.
202
204
  */
203
205
  name: PropTypes.string,
204
206
  /**
@@ -1,9 +1,9 @@
1
1
  import { MakeOptional } from '@mui/x-internals/types';
2
2
  import { UseDesktopRangePickerSlots, UseDesktopRangePickerSlotProps, DesktopRangeOnlyPickerProps } from '../internals/hooks/useDesktopRangePicker';
3
3
  import { BaseDateRangePickerProps, BaseDateRangePickerSlots, BaseDateRangePickerSlotProps } from '../DateRangePicker/shared';
4
- export interface DesktopDateRangePickerSlots extends BaseDateRangePickerSlots, MakeOptional<UseDesktopRangePickerSlots<'day'>, 'field'> {
4
+ export interface DesktopDateRangePickerSlots extends BaseDateRangePickerSlots, MakeOptional<UseDesktopRangePickerSlots, 'field'> {
5
5
  }
6
- export interface DesktopDateRangePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseDateRangePickerSlotProps, Omit<UseDesktopRangePickerSlotProps<'day', TEnableAccessibleFieldDOMStructure>, 'tabs' | 'toolbar'> {
6
+ export interface DesktopDateRangePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseDateRangePickerSlotProps, Omit<UseDesktopRangePickerSlotProps<TEnableAccessibleFieldDOMStructure>, 'tabs' | 'toolbar'> {
7
7
  }
8
8
  export interface DesktopDateRangePickerProps<TEnableAccessibleFieldDOMStructure extends boolean = true> extends BaseDateRangePickerProps, DesktopRangeOnlyPickerProps {
9
9
  /**
@@ -21,4 +21,9 @@ export interface DesktopDateRangePickerProps<TEnableAccessibleFieldDOMStructure
21
21
  * @default {}
22
22
  */
23
23
  slotProps?: DesktopDateRangePickerSlotProps<TEnableAccessibleFieldDOMStructure>;
24
+ /**
25
+ * If `true`, the Picker will close after submitting the full date.
26
+ * @default true
27
+ */
28
+ closeOnSelect?: boolean;
24
29
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
5
- const _excluded = ["openTo", "rangePosition"];
5
+ const _excluded = ["openTo"];
6
6
  import * as React from 'react';
7
7
  import PropTypes from 'prop-types';
8
8
  import { isDatePickerView, isInternalTimeView, resolveDateTimeFormat, useUtils } from '@mui/x-date-pickers/internals';
@@ -22,15 +22,22 @@ import { useDateTimeRangePickerDefaultizedProps } from "../DateTimeRangePicker/s
22
22
  import { MultiInputDateTimeRangeField } from "../MultiInputDateTimeRangeField/index.js";
23
23
  import { DateTimeRangePickerTimeWrapper } from "../DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js";
24
24
  import { RANGE_VIEW_HEIGHT } from "../internals/constants/dimensions.js";
25
+ import { usePickerRangePositionContext } from "../hooks/index.js";
25
26
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
26
- const rendererInterceptor = function rendererInterceptor(inViewRenderers, popperView, rendererProps) {
27
+ const rendererInterceptor = function RendererInterceptor(props) {
27
28
  const {
28
- openTo,
29
- rangePosition
29
+ viewRenderers,
30
+ popperView,
31
+ rendererProps
32
+ } = props;
33
+ const {
34
+ openTo
30
35
  } = rendererProps,
31
36
  otherProps = _objectWithoutPropertiesLoose(rendererProps, _excluded);
37
+ const {
38
+ rangePosition
39
+ } = usePickerRangePositionContext();
32
40
  const finalProps = _extends({}, otherProps, {
33
- rangePosition,
34
41
  focusedView: null,
35
42
  sx: [{
36
43
  [`&.${multiSectionDigitalClockClasses.root}`]: {
@@ -43,7 +50,7 @@ const rendererInterceptor = function rendererInterceptor(inViewRenderers, popper
43
50
  });
44
51
  const isTimeViewActive = isInternalTimeView(popperView);
45
52
  return /*#__PURE__*/_jsxs(React.Fragment, {
46
- children: [inViewRenderers.day?.(_extends({}, rendererProps, {
53
+ children: [viewRenderers.day?.(_extends({}, rendererProps, {
47
54
  availableRangePositions: [rangePosition],
48
55
  view: !isTimeViewActive ? popperView : 'day',
49
56
  views: rendererProps.views.filter(isDatePickerView),
@@ -59,7 +66,7 @@ const rendererInterceptor = function rendererInterceptor(inViewRenderers, popper
59
66
  view: isTimeViewActive ? popperView : 'hours',
60
67
  views: finalProps.views.filter(isInternalTimeView),
61
68
  openTo: isInternalTimeView(openTo) ? openTo : 'hours',
62
- viewRenderer: inViewRenderers[isTimeViewActive ? popperView : 'hours'],
69
+ viewRenderer: viewRenderers[isTimeViewActive ? popperView : 'hours'],
63
70
  sx: [{
64
71
  gridColumn: 3
65
72
  }, ...finalProps.sx]
@@ -92,7 +99,6 @@ const DesktopDateTimeRangePicker = /*#__PURE__*/React.forwardRef(function Deskto
92
99
  // Need to avoid adding the `meridiem` view when unexpected renderer is specified
93
100
  const shouldHoursRendererContainMeridiemView = viewRenderers.hours?.name === renderMultiSectionDigitalClockTimeView.name;
94
101
  const views = !shouldHoursRendererContainMeridiemView ? defaultizedProps.views.filter(view => view !== 'meridiem') : defaultizedProps.views;
95
- const actionBarActions = defaultizedProps.shouldRenderTimeInASingleColumn ? [] : ['accept'];
96
102
  const props = _extends({}, defaultizedProps, {
97
103
  views,
98
104
  viewRenderers,
@@ -105,24 +111,19 @@ const DesktopDateTimeRangePicker = /*#__PURE__*/React.forwardRef(function Deskto
105
111
  layout: DesktopDateTimePickerLayout
106
112
  }, defaultizedProps.slots),
107
113
  slotProps: _extends({}, defaultizedProps.slotProps, {
108
- field: ownerState => _extends({}, resolveComponentProps(defaultizedProps.slotProps?.field, ownerState), extractValidationProps(defaultizedProps), {
109
- ref
110
- }),
114
+ field: ownerState => _extends({}, resolveComponentProps(defaultizedProps.slotProps?.field, ownerState), extractValidationProps(defaultizedProps)),
111
115
  tabs: _extends({
112
116
  hidden: true
113
117
  }, defaultizedProps.slotProps?.tabs),
114
118
  toolbar: _extends({
115
- hidden: true,
116
- toolbarVariant: 'desktop'
117
- }, defaultizedProps.slotProps?.toolbar),
118
- actionBar: ownerState => _extends({
119
- actions: actionBarActions
120
- }, resolveComponentProps(defaultizedProps.slotProps?.actionBar, ownerState))
119
+ hidden: true
120
+ }, defaultizedProps.slotProps?.toolbar)
121
121
  })
122
122
  });
123
123
  const {
124
124
  renderPicker
125
125
  } = useDesktopRangePicker({
126
+ ref,
126
127
  props,
127
128
  valueManager: rangeValueManager,
128
129
  valueType: 'date-time',
@@ -155,8 +156,8 @@ DesktopDateTimeRangePicker.propTypes = {
155
156
  calendars: PropTypes.oneOf([1, 2, 3]),
156
157
  className: PropTypes.string,
157
158
  /**
158
- * If `true`, the popover or modal will close after submitting the full date.
159
- * @default `true` for desktop, `false` for mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).
159
+ * If `true`, the Picker will close after submitting the full date.
160
+ * @default false
160
161
  */
161
162
  closeOnSelect: PropTypes.bool,
162
163
  /**
@@ -249,12 +250,10 @@ DesktopDateTimeRangePicker.propTypes = {
249
250
  formatDensity: PropTypes.oneOf(['dense', 'spacious']),
250
251
  /**
251
252
  * Pass a ref to the `input` element.
252
- * Ignored if the field has several inputs.
253
253
  */
254
254
  inputRef: refType,
255
255
  /**
256
256
  * The label content.
257
- * Ignored if the field has several inputs.
258
257
  */
259
258
  label: PropTypes.node,
260
259
  /**
@@ -303,7 +302,6 @@ DesktopDateTimeRangePicker.propTypes = {
303
302
  minutesStep: PropTypes.number,
304
303
  /**
305
304
  * Name attribute used by the `input` element in the Field.
306
- * Ignored if the field has several inputs.
307
305
  */
308
306
  name: PropTypes.string,
309
307
  /**
@@ -1,10 +1,9 @@
1
1
  import { MakeOptional } from '@mui/x-internals/types';
2
2
  import { UseDesktopRangePickerSlots, UseDesktopRangePickerSlotProps, DesktopRangeOnlyPickerProps } from '../internals/hooks/useDesktopRangePicker';
3
3
  import { BaseDateTimeRangePickerProps, BaseDateTimeRangePickerSlots, BaseDateTimeRangePickerSlotProps } from '../DateTimeRangePicker/shared';
4
- import { DateTimeRangePickerView } from '../internals/models';
5
- export interface DesktopDateTimeRangePickerSlots extends BaseDateTimeRangePickerSlots, MakeOptional<UseDesktopRangePickerSlots<DateTimeRangePickerView>, 'field'> {
4
+ export interface DesktopDateTimeRangePickerSlots extends BaseDateTimeRangePickerSlots, MakeOptional<UseDesktopRangePickerSlots, 'field'> {
6
5
  }
7
- export interface DesktopDateTimeRangePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseDateTimeRangePickerSlotProps, Omit<UseDesktopRangePickerSlotProps<DateTimeRangePickerView, TEnableAccessibleFieldDOMStructure>, 'tabs' | 'toolbar'> {
6
+ export interface DesktopDateTimeRangePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseDateTimeRangePickerSlotProps, Omit<UseDesktopRangePickerSlotProps<TEnableAccessibleFieldDOMStructure>, 'tabs' | 'toolbar'> {
8
7
  }
9
8
  export interface DesktopDateTimeRangePickerProps<TEnableAccessibleFieldDOMStructure extends boolean = true> extends BaseDateTimeRangePickerProps, DesktopRangeOnlyPickerProps {
10
9
  /**
@@ -42,9 +42,7 @@ const MobileDateRangePicker = /*#__PURE__*/React.forwardRef(function MobileDateR
42
42
  field: MultiInputDateRangeField
43
43
  }, defaultizedProps.slots),
44
44
  slotProps: _extends({}, defaultizedProps.slotProps, {
45
- field: ownerState => _extends({}, resolveComponentProps(defaultizedProps.slotProps?.field, ownerState), extractValidationProps(defaultizedProps), {
46
- ref
47
- }),
45
+ field: ownerState => _extends({}, resolveComponentProps(defaultizedProps.slotProps?.field, ownerState), extractValidationProps(defaultizedProps)),
48
46
  toolbar: _extends({
49
47
  hidden: false
50
48
  }, defaultizedProps.slotProps?.toolbar)
@@ -53,6 +51,7 @@ const MobileDateRangePicker = /*#__PURE__*/React.forwardRef(function MobileDateR
53
51
  const {
54
52
  renderPicker
55
53
  } = useMobileRangePicker({
54
+ ref,
56
55
  props,
57
56
  valueManager: rangeValueManager,
58
57
  valueType: 'date',
@@ -74,8 +73,8 @@ MobileDateRangePicker.propTypes = {
74
73
  autoFocus: PropTypes.bool,
75
74
  className: PropTypes.string,
76
75
  /**
77
- * If `true`, the popover or modal will close after submitting the full date.
78
- * @default `true` for desktop, `false` for mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).
76
+ * If `true`, the Picker will close after submitting the full date.
77
+ * @default false
79
78
  */
80
79
  closeOnSelect: PropTypes.bool,
81
80
  /**
@@ -163,12 +162,10 @@ MobileDateRangePicker.propTypes = {
163
162
  formatDensity: PropTypes.oneOf(['dense', 'spacious']),
164
163
  /**
165
164
  * Pass a ref to the `input` element.
166
- * Ignored if the field has several inputs.
167
165
  */
168
166
  inputRef: refType,
169
167
  /**
170
168
  * The label content.
171
- * Ignored if the field has several inputs.
172
169
  */
173
170
  label: PropTypes.node,
174
171
  /**
@@ -194,7 +191,6 @@ MobileDateRangePicker.propTypes = {
194
191
  minDate: PropTypes.object,
195
192
  /**
196
193
  * Name attribute used by the `input` element in the Field.
197
- * Ignored if the field has several inputs.
198
194
  */
199
195
  name: PropTypes.string,
200
196
  /**
@@ -1,9 +1,9 @@
1
1
  import { MakeOptional } from '@mui/x-internals/types';
2
2
  import { UseMobileRangePickerSlots, UseMobileRangePickerSlotProps, MobileRangeOnlyPickerProps } from '../internals/hooks/useMobileRangePicker';
3
3
  import { BaseDateRangePickerProps, BaseDateRangePickerSlots, BaseDateRangePickerSlotProps } from '../DateRangePicker/shared';
4
- export interface MobileDateRangePickerSlots extends BaseDateRangePickerSlots, MakeOptional<UseMobileRangePickerSlots<'day'>, 'field'> {
4
+ export interface MobileDateRangePickerSlots extends BaseDateRangePickerSlots, MakeOptional<UseMobileRangePickerSlots, 'field'> {
5
5
  }
6
- export interface MobileDateRangePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseDateRangePickerSlotProps, Omit<UseMobileRangePickerSlotProps<'day', TEnableAccessibleFieldDOMStructure>, 'tabs' | 'toolbar'> {
6
+ export interface MobileDateRangePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends BaseDateRangePickerSlotProps, Omit<UseMobileRangePickerSlotProps<TEnableAccessibleFieldDOMStructure>, 'tabs' | 'toolbar'> {
7
7
  }
8
8
  export interface MobileDateRangePickerProps<TEnableAccessibleFieldDOMStructure extends boolean = true> extends BaseDateRangePickerProps, MobileRangeOnlyPickerProps {
9
9
  /**