@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
@@ -9,15 +9,17 @@ exports.useDesktopRangePicker = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
11
  var React = _interopRequireWildcard(require("react"));
12
- var _useSlotProps = _interopRequireDefault(require("@mui/utils/useSlotProps"));
12
+ var _useSlotProps2 = _interopRequireDefault(require("@mui/utils/useSlotProps"));
13
13
  var _xLicense = require("@mui/x-license");
14
14
  var _PickersLayout = require("@mui/x-date-pickers/PickersLayout");
15
15
  var _internals = require("@mui/x-date-pickers/internals");
16
- var _useEnrichedRangePickerFieldProps = require("../useEnrichedRangePickerFieldProps");
16
+ var _useEnrichedRangePickerField = require("../useEnrichedRangePickerField");
17
17
  var _releaseInfo = require("../../utils/releaseInfo");
18
18
  var _useRangePosition = require("../useRangePosition");
19
+ var _usePickerRangePositionContext = require("../../../hooks/usePickerRangePositionContext");
19
20
  var _jsxRuntime = require("react/jsx-runtime");
20
- const _excluded = ["props"];
21
+ const _excluded = ["props"],
22
+ _excluded2 = ["ownerState"];
21
23
  const releaseInfo = (0, _releaseInfo.getReleaseInfo)();
22
24
  const useDesktopRangePicker = _ref => {
23
25
  let {
@@ -28,58 +30,45 @@ const useDesktopRangePicker = _ref => {
28
30
  const {
29
31
  slots,
30
32
  slotProps,
31
- className,
32
- sx,
33
- format,
34
- formatDensity,
35
- enableAccessibleFieldDOMStructure,
36
- selectedSections,
37
- onSelectedSectionsChange,
38
- timezone,
39
- label,
40
33
  inputRef,
41
- name,
42
34
  readOnly,
43
- disabled,
44
35
  autoFocus,
45
36
  disableOpenPicker,
46
- localeText,
47
- reduceAnimations
37
+ localeText
48
38
  } = props;
49
39
  const fieldContainerRef = React.useRef(null);
50
- const anchorRef = React.useRef(null);
51
40
  const popperRef = React.useRef(null);
52
41
  const startFieldRef = React.useRef(null);
53
42
  const endFieldRef = React.useRef(null);
43
+ const singleInputFieldRef = React.useRef(null);
54
44
  const initialView = React.useRef(props.openTo ?? null);
55
45
  const fieldType = slots.field.fieldType ?? 'multi-input';
46
+ const rangePositionResponse = (0, _useRangePosition.useRangePosition)(props, fieldType === 'single-input' ? singleInputFieldRef : undefined);
47
+ let fieldRef;
48
+ if (fieldType === 'single-input') {
49
+ fieldRef = singleInputFieldRef;
50
+ } else if (rangePositionResponse.rangePosition === 'start') {
51
+ fieldRef = startFieldRef;
52
+ } else {
53
+ fieldRef = endFieldRef;
54
+ }
56
55
  const {
57
- rangePosition,
58
- onRangePositionChange
59
- } = (0, _useRangePosition.useRangePosition)(props, fieldType === 'single-input' ? startFieldRef : undefined);
60
- const {
61
- open,
62
- actions,
63
- layoutProps,
64
56
  providerProps,
65
57
  renderCurrentView,
66
- shouldRestoreFocus,
67
- fieldProps: pickerFieldProps,
68
58
  ownerState
69
59
  } = (0, _internals.usePicker)((0, _extends2.default)({}, pickerParams, {
70
60
  props,
71
61
  variant: 'desktop',
72
62
  autoFocusView: false,
73
- fieldRef: rangePosition === 'start' ? startFieldRef : endFieldRef,
74
- localeText,
75
- additionalViewProps: {
76
- rangePosition,
77
- onRangePositionChange
78
- }
63
+ fieldRef,
64
+ localeText
79
65
  }));
66
+
67
+ // Temporary hack to hide the opening button on the range pickers until we have migrate them to the new opening logic.
68
+ providerProps.contextValue.triggerStatus = 'hidden';
80
69
  React.useEffect(() => {
81
- if (layoutProps.view) {
82
- initialView.current = layoutProps.view;
70
+ if (providerProps.contextValue.view) {
71
+ initialView.current = providerProps.contextValue.view;
83
72
  }
84
73
  // eslint-disable-next-line react-hooks/exhaustive-deps
85
74
  }, []);
@@ -88,90 +77,69 @@ const useDesktopRangePicker = _ref => {
88
77
  if (fieldContainerRef.current?.contains((0, _internals.getActiveElement)(document)) || popperRef.current?.contains((0, _internals.getActiveElement)(document))) {
89
78
  return;
90
79
  }
91
- actions.onDismiss();
80
+
81
+ // This direct access to `providerProps` will go away once the range fields stop having their views in a tooltip.
82
+ providerProps.privateContextValue.dismissViews();
92
83
  });
93
84
  };
94
85
  const Field = slots.field;
95
- const fieldProps = (0, _useSlotProps.default)({
96
- elementType: Field,
97
- externalSlotProps: slotProps?.field,
98
- additionalProps: (0, _extends2.default)({
99
- // Internal props
100
- readOnly,
101
- disabled,
102
- format,
103
- formatDensity,
104
- enableAccessibleFieldDOMStructure,
105
- selectedSections,
106
- onSelectedSectionsChange,
107
- timezone,
108
- autoFocus: autoFocus && !props.open
109
- }, pickerFieldProps, {
110
- // onChange and value
111
-
112
- // Forwarded props
113
- className,
114
- sx,
115
- ref: fieldContainerRef
116
- }, fieldType === 'single-input' && !!inputRef && {
117
- inputRef
118
- }, fieldType === 'single-input' && {
119
- name
86
+ const _useSlotProps = (0, _useSlotProps2.default)({
87
+ elementType: Field,
88
+ externalSlotProps: slotProps?.field,
89
+ additionalProps: {
90
+ // Internal props
91
+ readOnly,
92
+ autoFocus: autoFocus && !props.open,
93
+ // Forwarded props
94
+ ref: fieldContainerRef
95
+ },
96
+ ownerState
120
97
  }),
121
- ownerState
122
- });
123
- const enrichedFieldProps = (0, _useEnrichedRangePickerFieldProps.useEnrichedRangePickerFieldProps)({
98
+ fieldProps = (0, _objectWithoutPropertiesLoose2.default)(_useSlotProps, _excluded2);
99
+ const enrichedFieldResponse = (0, _useEnrichedRangePickerField.useEnrichedRangePickerField)((0, _extends2.default)({
124
100
  variant: 'desktop',
125
101
  fieldType,
126
- open,
127
- actions,
102
+ // These direct access to `providerProps` will go away once the range fields handle the picker opening
103
+ contextValue: providerProps.contextValue,
104
+ fieldPrivateContextValue: providerProps.fieldPrivateContextValue,
128
105
  readOnly,
129
106
  disableOpenPicker,
130
- label,
131
107
  localeText,
132
108
  onBlur: handleBlur,
133
- rangePosition,
134
- onRangePositionChange,
135
109
  pickerSlotProps: slotProps,
136
110
  pickerSlots: slots,
137
111
  fieldProps,
138
- anchorRef,
112
+ anchorRef: providerProps.contextValue.triggerRef,
139
113
  startFieldRef,
140
114
  endFieldRef,
141
- currentView: layoutProps.view !== props.openTo ? layoutProps.view : undefined,
142
- initialView: initialView.current ?? undefined,
143
- onViewChange: layoutProps.onViewChange
144
- });
145
- const slotPropsForLayout = (0, _extends2.default)({}, slotProps, {
146
- tabs: (0, _extends2.default)({}, slotProps?.tabs, {
147
- rangePosition,
148
- onRangePositionChange
149
- }),
150
- toolbar: (0, _extends2.default)({}, slotProps?.toolbar, {
151
- rangePosition,
152
- onRangePositionChange
153
- })
154
- });
115
+ singleInputFieldRef,
116
+ currentView: providerProps.contextValue.view !== props.openTo ? providerProps.contextValue.view : undefined,
117
+ initialView: initialView.current ?? undefined
118
+ }, rangePositionResponse));
155
119
  const Layout = slots?.layout ?? _PickersLayout.PickersLayout;
156
- const renderPicker = () => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_internals.PickerProvider, (0, _extends2.default)({}, providerProps, {
157
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Field, (0, _extends2.default)({}, enrichedFieldProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.PickersPopper, (0, _extends2.default)({
158
- role: "tooltip",
159
- placement: "bottom-start",
160
- containerRef: popperRef,
161
- anchorEl: anchorRef.current,
162
- onBlur: handleBlur
163
- }, actions, {
164
- open: open,
120
+ const renderPicker = () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.PickerProvider, (0, _extends2.default)({}, providerProps, {
121
+ // This override will go away once the range fields handle the picker opening
122
+ fieldPrivateContextValue: (0, _extends2.default)({}, providerProps.fieldPrivateContextValue, enrichedFieldResponse.fieldPrivateContextValue),
123
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.PickerFieldUIContextProvider, {
165
124
  slots: slots,
166
125
  slotProps: slotProps,
167
- shouldRestoreFocus: shouldRestoreFocus,
168
- reduceAnimations: reduceAnimations,
169
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Layout, (0, _extends2.default)({}, layoutProps, slotProps?.layout, {
170
- slots: slots,
171
- slotProps: slotPropsForLayout,
172
- children: renderCurrentView()
173
- }))
174
- }))]
126
+ inputRef: inputRef,
127
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_usePickerRangePositionContext.PickerRangePositionContext.Provider, {
128
+ value: rangePositionResponse,
129
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Field, (0, _extends2.default)({}, enrichedFieldResponse.fieldProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.PickerPopper, {
130
+ role: "tooltip",
131
+ containerRef: popperRef,
132
+ onBlur: handleBlur,
133
+ slots: slots,
134
+ slotProps: slotProps,
135
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Layout, (0, _extends2.default)({}, slotProps?.layout, {
136
+ slots: slots,
137
+ slotProps: slotProps,
138
+ children: renderCurrentView()
139
+ }))
140
+ })]
141
+ })
142
+ })
175
143
  }));
176
144
  return {
177
145
  renderPicker
@@ -5,7 +5,7 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.useEnrichedRangePickerFieldProps = void 0;
8
+ exports.useEnrichedRangePickerField = void 0;
9
9
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
11
  var React = _interopRequireWildcard(require("react"));
@@ -16,15 +16,14 @@ var _hooks = require("@mui/x-date-pickers/hooks");
16
16
  var _internals = require("@mui/x-date-pickers/internals");
17
17
  const _excluded = ["clearable", "onClear"];
18
18
  const useMultiInputFieldSlotProps = ({
19
+ contextValue,
19
20
  variant,
20
- open,
21
- actions,
22
21
  readOnly,
23
22
  labelId,
24
23
  disableOpenPicker,
25
24
  onBlur,
26
25
  rangePosition,
27
- onRangePositionChange,
26
+ setRangePosition,
28
27
  localeText: inLocaleText,
29
28
  pickerSlotProps,
30
29
  pickerSlots,
@@ -32,7 +31,6 @@ const useMultiInputFieldSlotProps = ({
32
31
  anchorRef,
33
32
  currentView,
34
33
  initialView,
35
- onViewChange,
36
34
  startFieldRef,
37
35
  endFieldRef
38
36
  }) => {
@@ -41,7 +39,7 @@ const useMultiInputFieldSlotProps = ({
41
39
  const handleEndFieldRef = (0, _useForkRef.default)(fieldProps.unstableEndFieldRef, endFieldRef);
42
40
  const previousRangePosition = React.useRef(rangePosition);
43
41
  React.useEffect(() => {
44
- if (!open || variant === 'mobile') {
42
+ if (!contextValue.open || variant === 'mobile') {
45
43
  return;
46
44
  }
47
45
  const currentFieldRef = rangePosition === 'start' ? startFieldRef : endFieldRef;
@@ -57,34 +55,36 @@ const useMultiInputFieldSlotProps = ({
57
55
  // use the current view or `0` when the range position has just been swapped
58
56
  previousRangePosition.current === rangePosition ? currentView : 0);
59
57
  previousRangePosition.current = rangePosition;
60
- }, [rangePosition, open, currentView, startFieldRef, endFieldRef, variant]);
58
+ }, [rangePosition, contextValue.open, currentView, startFieldRef, endFieldRef, variant]);
61
59
  const openRangeStartSelection = event => {
62
60
  event.stopPropagation();
63
- onRangePositionChange('start');
61
+ setRangePosition('start');
64
62
  if (!readOnly && !disableOpenPicker) {
65
- actions.onOpen(event);
63
+ event.preventDefault();
64
+ contextValue.setOpen(true);
66
65
  }
67
66
  };
68
67
  const openRangeEndSelection = event => {
69
68
  event.stopPropagation();
70
- onRangePositionChange('end');
69
+ setRangePosition('end');
71
70
  if (!readOnly && !disableOpenPicker) {
72
- actions.onOpen(event);
71
+ event.preventDefault();
72
+ contextValue.setOpen(true);
73
73
  }
74
74
  };
75
75
  const handleFocusStart = () => {
76
- if (open) {
77
- onRangePositionChange('start');
76
+ if (contextValue.open) {
77
+ setRangePosition('start');
78
78
  if (previousRangePosition.current !== 'start' && initialView) {
79
- onViewChange?.(initialView);
79
+ contextValue.setView?.(initialView);
80
80
  }
81
81
  }
82
82
  };
83
83
  const handleFocusEnd = () => {
84
- if (open) {
85
- onRangePositionChange('end');
84
+ if (contextValue.open) {
85
+ setRangePosition('end');
86
86
  if (previousRangePosition.current !== 'end' && initialView) {
87
- onViewChange?.(initialView);
87
+ contextValue.setView?.(initialView);
88
88
  }
89
89
  }
90
90
  };
@@ -103,8 +103,8 @@ const useMultiInputFieldSlotProps = ({
103
103
  label: inLocaleText?.start ?? translations.start,
104
104
  onKeyDown: (0, _internals.onSpaceOrEnter)(openRangeStartSelection),
105
105
  onFocus: handleFocusStart,
106
- focused: open ? rangePosition === 'start' : undefined
107
- }, !readOnly && !fieldProps.disabled && {
106
+ focused: contextValue.open ? rangePosition === 'start' : undefined
107
+ }, !readOnly && !contextValue.disabled && {
108
108
  onClick: openRangeStartSelection
109
109
  }, variant === 'mobile' && {
110
110
  readOnly: true
@@ -119,8 +119,8 @@ const useMultiInputFieldSlotProps = ({
119
119
  label: inLocaleText?.end ?? translations.end,
120
120
  onKeyDown: (0, _internals.onSpaceOrEnter)(openRangeEndSelection),
121
121
  onFocus: handleFocusEnd,
122
- focused: open ? rangePosition === 'end' : undefined
123
- }, !readOnly && !fieldProps.disabled && {
122
+ focused: contextValue.open ? rangePosition === 'end' : undefined
123
+ }, !readOnly && !contextValue.disabled && {
124
124
  onClick: openRangeEndSelection
125
125
  }, variant === 'mobile' && {
126
126
  readOnly: true
@@ -151,96 +151,83 @@ const useMultiInputFieldSlotProps = ({
151
151
  slots,
152
152
  slotProps
153
153
  });
154
- return enrichedFieldProps;
154
+ return {
155
+ fieldProps: enrichedFieldProps,
156
+ fieldPrivateContextValue: {}
157
+ };
155
158
  };
156
159
  const useSingleInputFieldSlotProps = ({
160
+ contextValue,
161
+ fieldPrivateContextValue,
157
162
  variant,
158
- open,
159
- actions,
160
163
  readOnly,
161
164
  labelId,
162
165
  disableOpenPicker,
163
- label,
164
166
  onBlur,
165
167
  rangePosition,
166
- onRangePositionChange,
167
- startFieldRef,
168
- endFieldRef,
169
- pickerSlots,
170
- pickerSlotProps,
168
+ setRangePosition,
169
+ singleInputFieldRef,
171
170
  fieldProps,
172
- anchorRef,
173
171
  currentView
174
172
  }) => {
175
- const handleFieldRef = (0, _useForkRef.default)(fieldProps.unstableFieldRef, startFieldRef, endFieldRef);
173
+ const handleFieldRef = (0, _useForkRef.default)(fieldProps.unstableFieldRef, singleInputFieldRef);
176
174
  React.useEffect(() => {
177
- if (!open || !startFieldRef.current || variant === 'mobile') {
175
+ if (!contextValue.open || !singleInputFieldRef.current || variant === 'mobile') {
178
176
  return;
179
177
  }
180
- if (startFieldRef.current.isFieldFocused()) {
178
+ if (singleInputFieldRef.current.isFieldFocused()) {
181
179
  return;
182
180
  }
183
181
 
184
182
  // bring back focus to the field with the current view section selected
185
183
  if (currentView) {
186
- const sections = startFieldRef.current.getSections().map(section => section.type);
184
+ const sections = singleInputFieldRef.current.getSections().map(section => section.type);
187
185
  const newSelectedSection = rangePosition === 'start' ? sections.indexOf(currentView) : sections.lastIndexOf(currentView);
188
- startFieldRef.current?.focusField(newSelectedSection);
186
+ singleInputFieldRef.current?.focusField(newSelectedSection);
189
187
  }
190
- }, [rangePosition, open, currentView, startFieldRef, variant]);
188
+ }, [rangePosition, contextValue.open, currentView, singleInputFieldRef, variant]);
191
189
  const updateRangePosition = () => {
192
- if (!startFieldRef.current?.isFieldFocused()) {
190
+ if (!singleInputFieldRef.current?.isFieldFocused()) {
193
191
  return;
194
192
  }
195
- const sections = startFieldRef.current.getSections();
196
- const activeSectionIndex = startFieldRef.current?.getActiveSectionIndex();
193
+ const sections = singleInputFieldRef.current.getSections();
194
+ const activeSectionIndex = singleInputFieldRef.current?.getActiveSectionIndex();
197
195
  const domRangePosition = activeSectionIndex == null || activeSectionIndex < sections.length / 2 ? 'start' : 'end';
198
196
  if (domRangePosition != null && domRangePosition !== rangePosition) {
199
- onRangePositionChange(domRangePosition);
197
+ setRangePosition(domRangePosition);
200
198
  }
201
199
  };
202
200
  const handleSelectedSectionsChange = (0, _useEventCallback.default)(selectedSection => {
203
201
  setTimeout(updateRangePosition);
204
- fieldProps.onSelectedSectionsChange?.(selectedSection);
202
+ fieldPrivateContextValue.onSelectedSectionsChange?.(selectedSection);
205
203
  });
206
204
  const openPicker = event => {
207
205
  event.stopPropagation();
208
206
  if (!readOnly && !disableOpenPicker) {
209
- actions.onOpen(event);
207
+ event.preventDefault();
208
+ contextValue.setOpen(true);
210
209
  }
211
210
  };
212
- const slots = (0, _extends2.default)({}, fieldProps.slots, {
213
- textField: pickerSlots?.textField,
214
- clearButton: pickerSlots?.clearButton,
215
- clearIcon: pickerSlots?.clearIcon
216
- });
217
- const slotProps = (0, _extends2.default)({}, fieldProps.slotProps, {
218
- textField: pickerSlotProps?.textField,
219
- clearButton: pickerSlotProps?.clearButton,
220
- clearIcon: pickerSlotProps?.clearIcon
221
- });
222
211
  const enrichedFieldProps = (0, _extends2.default)({}, fieldProps, {
223
- slots,
224
- slotProps,
225
- label,
226
212
  unstableFieldRef: handleFieldRef,
227
213
  onKeyDown: (0, _internals.onSpaceOrEnter)(openPicker, fieldProps.onKeyDown),
228
- onSelectedSectionsChange: handleSelectedSectionsChange,
229
214
  onBlur,
230
- InputProps: (0, _extends2.default)({
231
- ref: anchorRef
232
- }, fieldProps?.InputProps),
233
- focused: open ? true : undefined
215
+ focused: contextValue.open ? true : undefined
234
216
  }, labelId != null && {
235
217
  id: labelId
236
218
  }, variant === 'mobile' && {
237
219
  readOnly: true
238
- }, !readOnly && !fieldProps.disabled && {
220
+ }, !readOnly && !contextValue.disabled && {
239
221
  onClick: openPicker
240
222
  });
241
- return enrichedFieldProps;
223
+ return {
224
+ fieldProps: enrichedFieldProps,
225
+ fieldPrivateContextValue: {
226
+ onSelectedSectionsChange: handleSelectedSectionsChange
227
+ }
228
+ };
242
229
  };
243
- const useEnrichedRangePickerFieldProps = params => {
230
+ const useEnrichedRangePickerField = params => {
244
231
  /* eslint-disable react-hooks/rules-of-hooks */
245
232
  if (process.env.NODE_ENV !== 'production') {
246
233
  const fieldTypeRef = React.useRef(params.fieldType);
@@ -254,4 +241,4 @@ const useEnrichedRangePickerFieldProps = params => {
254
241
  return useSingleInputFieldSlotProps(params);
255
242
  /* eslint-enable react-hooks/rules-of-hooks */
256
243
  };
257
- exports.useEnrichedRangePickerFieldProps = useEnrichedRangePickerFieldProps;
244
+ exports.useEnrichedRangePickerField = useEnrichedRangePickerField;