@mui/x-date-pickers-pro 8.0.0-alpha.6 → 8.0.0-alpha.8

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 (267) 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 +242 -1
  8. package/DateRangeCalendar/DateRangeCalendar.js +12 -10
  9. package/DateRangePicker/DateRangePicker.js +1 -1
  10. package/DateRangePicker/DateRangePicker.types.d.ts +5 -0
  11. package/DateRangePicker/DateRangePickerToolbar.d.ts +2 -3
  12. package/DateRangePicker/DateRangePickerToolbar.js +27 -19
  13. package/DateRangePicker/shared.d.ts +1 -1
  14. package/DateTimeRangePicker/DateTimeRangePicker.js +2 -2
  15. package/DateTimeRangePicker/DateTimeRangePickerTabs.d.ts +3 -4
  16. package/DateTimeRangePicker/DateTimeRangePickerTabs.js +10 -9
  17. package/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.d.ts +8 -10
  18. package/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +8 -6
  19. package/DateTimeRangePicker/DateTimeRangePickerToolbar.d.ts +2 -3
  20. package/DateTimeRangePicker/DateTimeRangePickerToolbar.js +29 -31
  21. package/DateTimeRangePicker/shared.d.ts +2 -2
  22. package/DesktopDateRangePicker/DesktopDateRangePicker.js +9 -3
  23. package/DesktopDateRangePicker/DesktopDateRangePicker.types.d.ts +5 -0
  24. package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +17 -14
  25. package/MobileDateRangePicker/MobileDateRangePicker.js +2 -2
  26. package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +15 -8
  27. package/MultiInputDateRangeField/MultiInputDateRangeField.d.ts +9 -4
  28. package/MultiInputDateRangeField/MultiInputDateRangeField.js +12 -116
  29. package/MultiInputDateRangeField/index.d.ts +5 -3
  30. package/MultiInputDateRangeField/index.js +2 -2
  31. package/MultiInputDateRangeField/multiInputDateRangeFieldClasses.d.ts +6 -0
  32. package/MultiInputDateRangeField/multiInputDateRangeFieldClasses.js +4 -0
  33. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.d.ts +9 -4
  34. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +12 -116
  35. package/MultiInputDateTimeRangeField/index.d.ts +5 -3
  36. package/MultiInputDateTimeRangeField/index.js +2 -2
  37. package/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.d.ts +6 -0
  38. package/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.js +4 -0
  39. package/MultiInputTimeRangeField/MultiInputTimeRangeField.d.ts +9 -4
  40. package/MultiInputTimeRangeField/MultiInputTimeRangeField.js +13 -117
  41. package/MultiInputTimeRangeField/index.d.ts +5 -3
  42. package/MultiInputTimeRangeField/index.js +2 -2
  43. package/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.d.ts +6 -0
  44. package/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.js +4 -0
  45. package/SingleInputDateRangeField/SingleInputDateRangeField.js +20 -30
  46. package/SingleInputDateRangeField/SingleInputDateRangeField.types.d.ts +6 -17
  47. package/SingleInputDateRangeField/useSingleInputDateRangeField.d.ts +1 -1
  48. package/SingleInputDateRangeField/useSingleInputDateRangeField.js +14 -14
  49. package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +20 -30
  50. package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.types.d.ts +6 -18
  51. package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.d.ts +1 -1
  52. package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +14 -14
  53. package/SingleInputTimeRangeField/SingleInputTimeRangeField.js +20 -30
  54. package/SingleInputTimeRangeField/SingleInputTimeRangeField.types.d.ts +6 -18
  55. package/SingleInputTimeRangeField/useSingleInputTimeRangeField.d.ts +1 -1
  56. package/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +14 -14
  57. package/dateRangeViewRenderers/dateRangeViewRenderers.d.ts +2 -2
  58. package/dateRangeViewRenderers/dateRangeViewRenderers.js +0 -6
  59. package/hooks/index.d.ts +2 -0
  60. package/hooks/index.js +2 -0
  61. package/hooks/package.json +6 -0
  62. package/hooks/useMultiInputRangeField/index.d.ts +1 -0
  63. package/hooks/useMultiInputRangeField/index.js +1 -0
  64. package/hooks/useMultiInputRangeField/useMultiInputRangeField.d.ts +53 -0
  65. package/hooks/useMultiInputRangeField/useMultiInputRangeField.js +149 -0
  66. package/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.d.ts +17 -0
  67. package/{internals/hooks/useMultiInputFieldSelectedSections.js → hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js} +10 -8
  68. package/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.d.ts +17 -0
  69. package/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +59 -0
  70. package/hooks/usePickerRangePositionContext.d.ts +7 -0
  71. package/hooks/usePickerRangePositionContext.js +15 -0
  72. package/index.d.ts +2 -0
  73. package/index.js +4 -2
  74. package/internals/hooks/models/index.d.ts +1 -1
  75. package/internals/hooks/models/useRangePicker.d.ts +6 -8
  76. package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +40 -67
  77. package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.types.d.ts +3 -5
  78. package/internals/hooks/{useEnrichedRangePickerFieldProps.d.ts → useEnrichedRangePickerField.d.ts} +18 -9
  79. package/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +39 -52
  80. package/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +33 -56
  81. package/internals/hooks/useMobileRangePicker/useMobileRangePicker.types.d.ts +3 -5
  82. package/internals/hooks/useNullablePickerRangePositionContext.d.ts +5 -0
  83. package/internals/hooks/useNullablePickerRangePositionContext.js +10 -0
  84. package/internals/hooks/useRangePosition.d.ts +2 -2
  85. package/internals/hooks/useRangePosition.js +1 -1
  86. package/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +14 -24
  87. package/internals/hooks/useStaticRangePicker/useStaticRangePicker.types.d.ts +2 -2
  88. package/internals/models/dateTimeRange.d.ts +1 -6
  89. package/internals/models/fields.d.ts +1 -2
  90. package/internals/models/index.d.ts +0 -1
  91. package/internals/models/index.js +0 -1
  92. package/internals/models/managers.d.ts +3 -0
  93. package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.d.ts +3 -0
  94. package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +133 -0
  95. package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.d.ts +72 -0
  96. package/internals/utils/createMultiInputRangeField/index.d.ts +3 -0
  97. package/internals/utils/createMultiInputRangeField/index.js +2 -0
  98. package/internals/utils/date-range-manager.js +2 -1
  99. package/internals/utils/releaseInfo.js +1 -1
  100. package/internals/utils/valueManagers.js +7 -7
  101. package/managers/index.d.ts +6 -0
  102. package/managers/index.js +3 -0
  103. package/managers/package.json +6 -0
  104. package/managers/useDateRangeManager.d.ts +15 -0
  105. package/managers/useDateRangeManager.js +33 -0
  106. package/managers/useDateTimeRangeManager.d.ts +15 -0
  107. package/managers/useDateTimeRangeManager.js +33 -0
  108. package/managers/useTimeRangeManager.d.ts +15 -0
  109. package/managers/useTimeRangeManager.js +31 -0
  110. package/models/fields.d.ts +1 -2
  111. package/models/index.d.ts +0 -2
  112. package/models/index.js +0 -2
  113. package/models/range.d.ts +0 -1
  114. package/modern/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.js +1 -1
  115. package/modern/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.js +1 -1
  116. package/modern/DateRangeCalendar/DateRangeCalendar.js +12 -10
  117. package/modern/DateRangePicker/DateRangePicker.js +1 -1
  118. package/modern/DateRangePicker/DateRangePickerToolbar.js +27 -19
  119. package/modern/DateTimeRangePicker/DateTimeRangePicker.js +2 -2
  120. package/modern/DateTimeRangePicker/DateTimeRangePickerTabs.js +10 -9
  121. package/modern/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +8 -6
  122. package/modern/DateTimeRangePicker/DateTimeRangePickerToolbar.js +29 -31
  123. package/modern/DesktopDateRangePicker/DesktopDateRangePicker.js +9 -3
  124. package/modern/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +17 -14
  125. package/modern/MobileDateRangePicker/MobileDateRangePicker.js +2 -2
  126. package/modern/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +15 -8
  127. package/modern/MultiInputDateRangeField/MultiInputDateRangeField.js +12 -116
  128. package/modern/MultiInputDateRangeField/index.js +2 -2
  129. package/modern/MultiInputDateRangeField/multiInputDateRangeFieldClasses.js +4 -0
  130. package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +12 -116
  131. package/modern/MultiInputDateTimeRangeField/index.js +2 -2
  132. package/modern/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.js +4 -0
  133. package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.js +13 -117
  134. package/modern/MultiInputTimeRangeField/index.js +2 -2
  135. package/modern/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.js +4 -0
  136. package/modern/SingleInputDateRangeField/SingleInputDateRangeField.js +20 -30
  137. package/modern/SingleInputDateRangeField/useSingleInputDateRangeField.js +14 -14
  138. package/modern/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +20 -30
  139. package/modern/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +14 -14
  140. package/modern/SingleInputTimeRangeField/SingleInputTimeRangeField.js +20 -30
  141. package/modern/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +14 -14
  142. package/modern/dateRangeViewRenderers/dateRangeViewRenderers.js +0 -6
  143. package/modern/hooks/index.js +2 -0
  144. package/modern/hooks/useMultiInputRangeField/index.js +1 -0
  145. package/modern/hooks/useMultiInputRangeField/useMultiInputRangeField.js +149 -0
  146. package/modern/{internals/hooks/useMultiInputFieldSelectedSections.js → hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js} +10 -8
  147. package/modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +59 -0
  148. package/modern/hooks/usePickerRangePositionContext.js +15 -0
  149. package/modern/index.js +4 -2
  150. package/modern/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +40 -67
  151. package/modern/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +39 -52
  152. package/modern/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +33 -56
  153. package/modern/internals/hooks/useNullablePickerRangePositionContext.js +10 -0
  154. package/modern/internals/hooks/useRangePosition.js +1 -1
  155. package/modern/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +14 -24
  156. package/modern/internals/models/index.js +0 -1
  157. package/modern/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +133 -0
  158. package/modern/internals/utils/createMultiInputRangeField/index.js +2 -0
  159. package/modern/internals/utils/date-range-manager.js +2 -1
  160. package/modern/internals/utils/releaseInfo.js +1 -1
  161. package/modern/internals/utils/valueManagers.js +7 -7
  162. package/modern/managers/index.js +3 -0
  163. package/modern/managers/useDateRangeManager.js +33 -0
  164. package/modern/managers/useDateTimeRangeManager.js +33 -0
  165. package/modern/managers/useTimeRangeManager.js +31 -0
  166. package/modern/models/index.js +0 -2
  167. package/node/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.js +1 -1
  168. package/node/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.js +1 -1
  169. package/node/DateRangeCalendar/DateRangeCalendar.js +12 -10
  170. package/node/DateRangePicker/DateRangePicker.js +1 -1
  171. package/node/DateRangePicker/DateRangePickerToolbar.js +26 -18
  172. package/node/DateTimeRangePicker/DateTimeRangePicker.js +2 -2
  173. package/node/DateTimeRangePicker/DateTimeRangePickerTabs.js +10 -9
  174. package/node/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +8 -6
  175. package/node/DateTimeRangePicker/DateTimeRangePickerToolbar.js +29 -31
  176. package/node/DesktopDateRangePicker/DesktopDateRangePicker.js +9 -3
  177. package/node/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +17 -14
  178. package/node/MobileDateRangePicker/MobileDateRangePicker.js +2 -2
  179. package/node/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +15 -8
  180. package/node/MultiInputDateRangeField/MultiInputDateRangeField.js +11 -119
  181. package/node/MultiInputDateRangeField/index.js +3 -9
  182. package/node/MultiInputDateRangeField/multiInputDateRangeFieldClasses.js +12 -0
  183. package/node/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +11 -119
  184. package/node/MultiInputDateTimeRangeField/index.js +3 -9
  185. package/node/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.js +12 -0
  186. package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.js +12 -120
  187. package/node/MultiInputTimeRangeField/index.js +3 -9
  188. package/node/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.js +12 -0
  189. package/node/SingleInputDateRangeField/SingleInputDateRangeField.js +19 -29
  190. package/node/SingleInputDateRangeField/useSingleInputDateRangeField.js +13 -14
  191. package/node/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +19 -29
  192. package/node/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +13 -14
  193. package/node/SingleInputTimeRangeField/SingleInputTimeRangeField.js +19 -29
  194. package/node/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +13 -14
  195. package/node/dateRangeViewRenderers/dateRangeViewRenderers.js +0 -6
  196. package/node/hooks/index.js +19 -0
  197. package/node/hooks/useMultiInputRangeField/index.js +12 -0
  198. package/node/hooks/useMultiInputRangeField/useMultiInputRangeField.js +155 -0
  199. package/node/{internals/hooks/useMultiInputFieldSelectedSections.js → hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js} +11 -10
  200. package/node/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +66 -0
  201. package/node/hooks/usePickerRangePositionContext.js +22 -0
  202. package/node/index.js +23 -1
  203. package/node/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +39 -66
  204. package/node/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +41 -54
  205. package/node/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +32 -55
  206. package/node/internals/hooks/useNullablePickerRangePositionContext.js +16 -0
  207. package/node/internals/hooks/useRangePosition.js +1 -1
  208. package/node/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +14 -24
  209. package/node/internals/models/index.js +0 -11
  210. package/node/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +140 -0
  211. package/node/internals/utils/createMultiInputRangeField/index.js +19 -0
  212. package/node/internals/utils/date-range-manager.js +2 -1
  213. package/node/internals/utils/releaseInfo.js +1 -1
  214. package/node/internals/utils/valueManagers.js +7 -7
  215. package/node/managers/index.js +26 -0
  216. package/node/managers/useDateRangeManager.js +40 -0
  217. package/node/managers/useDateTimeRangeManager.js +40 -0
  218. package/node/managers/useTimeRangeManager.js +38 -0
  219. package/node/models/index.js +0 -22
  220. package/package.json +5 -5
  221. package/themeAugmentation/overrides.d.ts +6 -4
  222. package/themeAugmentation/props.d.ts +2 -2
  223. package/MultiInputDateRangeField/MultiInputDateRangeField.types.d.ts +0 -55
  224. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.d.ts +0 -56
  225. package/MultiInputTimeRangeField/MultiInputTimeRangeField.types.d.ts +0 -56
  226. package/internals/hooks/useMultiInputFieldSelectedSections.d.ts +0 -20
  227. package/internals/hooks/useMultiInputRangeField/shared.d.ts +0 -1
  228. package/internals/hooks/useMultiInputRangeField/shared.js +0 -9
  229. package/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.d.ts +0 -3
  230. package/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +0 -113
  231. package/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.d.ts +0 -3
  232. package/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -113
  233. package/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.d.ts +0 -11
  234. package/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.d.ts +0 -3
  235. package/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +0 -113
  236. package/internals/models/timeRange.d.ts +0 -6
  237. package/internals/models/timeRange.js +0 -1
  238. package/models/dateRange.d.ts +0 -7
  239. package/models/dateRange.js +0 -1
  240. package/models/multiInputRangeFieldClasses.d.ts +0 -7
  241. package/models/multiInputRangeFieldClasses.js +0 -1
  242. package/modern/MultiInputDateRangeField/MultiInputDateRangeField.types.js +0 -1
  243. package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.js +0 -1
  244. package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.types.js +0 -1
  245. package/modern/internals/hooks/useMultiInputRangeField/shared.js +0 -9
  246. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +0 -113
  247. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -113
  248. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.js +0 -1
  249. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +0 -113
  250. package/modern/internals/models/timeRange.js +0 -1
  251. package/modern/models/dateRange.js +0 -1
  252. package/modern/models/multiInputRangeFieldClasses.js +0 -1
  253. package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.types.js +0 -5
  254. package/node/internals/hooks/useMultiInputRangeField/shared.js +0 -16
  255. package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +0 -121
  256. package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -121
  257. package/node/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.js +0 -5
  258. package/node/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +0 -121
  259. package/node/internals/models/timeRange.js +0 -5
  260. package/node/models/dateRange.js +0 -5
  261. package/node/models/multiInputRangeFieldClasses.js +0 -5
  262. /package/{MultiInputDateRangeField/MultiInputDateRangeField.types.js → internals/models/managers.js} +0 -0
  263. /package/{MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.js → internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.js} +0 -0
  264. /package/{MultiInputTimeRangeField/MultiInputTimeRangeField.types.js → modern/internals/models/managers.js} +0 -0
  265. /package/{internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.js → modern/internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.js} +0 -0
  266. /package/node/{MultiInputDateRangeField/MultiInputDateRangeField.types.js → internals/models/managers.js} +0 -0
  267. /package/node/{MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.js → internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.js} +0 -0
@@ -1,10 +1,12 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
4
  import useForkRef from '@mui/utils/useForkRef';
3
5
  import useEventCallback from '@mui/utils/useEventCallback';
4
- export const useMultiInputFieldSelectedSections = params => {
6
+ export const useMultiInputRangeFieldSelectedSections = parameters => {
5
7
  const unstableEndFieldRef = React.useRef(null);
6
- const handleUnstableEndFieldRef = useForkRef(params.unstableEndFieldRef, unstableEndFieldRef);
7
- const [startSelectedSection, setStartSelectedSection] = React.useState(params.selectedSections ?? null);
8
+ const handleUnstableEndFieldRef = useForkRef(parameters.unstableEndFieldRef, unstableEndFieldRef);
9
+ const [startSelectedSection, setStartSelectedSection] = React.useState(parameters.selectedSections ?? null);
8
10
  const [endSelectedSection, setEndSelectedSection] = React.useState(null);
9
11
  const getActiveField = () => {
10
12
  if (unstableEndFieldRef.current && unstableEndFieldRef.current.isFieldFocused()) {
@@ -15,25 +17,25 @@ export const useMultiInputFieldSelectedSections = params => {
15
17
  const handleStartSelectedSectionChange = useEventCallback(newSelectedSections => {
16
18
  setStartSelectedSection(newSelectedSections);
17
19
  if (getActiveField() === 'start') {
18
- params.onSelectedSectionsChange?.(newSelectedSections);
20
+ parameters.onSelectedSectionsChange?.(newSelectedSections);
19
21
  }
20
22
  });
21
23
  const handleEndSelectedSectionChange = useEventCallback(newSelectedSections => {
22
24
  setEndSelectedSection(newSelectedSections);
23
25
  if (getActiveField() === 'end') {
24
- params.onSelectedSectionsChange?.(newSelectedSections);
26
+ parameters.onSelectedSectionsChange?.(newSelectedSections);
25
27
  }
26
28
  });
27
29
  const activeField = getActiveField();
28
30
  return {
29
31
  start: {
30
- unstableFieldRef: params.unstableStartFieldRef,
31
- selectedSections: activeField === 'start' && params.selectedSections !== undefined ? params.selectedSections : startSelectedSection,
32
+ unstableFieldRef: parameters.unstableStartFieldRef,
33
+ selectedSections: activeField === 'start' && parameters.selectedSections !== undefined ? parameters.selectedSections : startSelectedSection,
32
34
  onSelectedSectionsChange: handleStartSelectedSectionChange
33
35
  },
34
36
  end: {
35
37
  unstableFieldRef: handleUnstableEndFieldRef,
36
- selectedSections: activeField === 'end' && params.selectedSections !== undefined ? params.selectedSections : endSelectedSection,
38
+ selectedSections: activeField === 'end' && parameters.selectedSections !== undefined ? parameters.selectedSections : endSelectedSection,
37
39
  onSelectedSectionsChange: handleEndSelectedSectionChange
38
40
  }
39
41
  };
@@ -0,0 +1,17 @@
1
+ import { UseDateManagerReturnValue, UseDateTimeManagerReturnValue, UseTimeManagerReturnValue } from '@mui/x-date-pickers/managers';
2
+ import { PickerValueType } from '@mui/x-date-pickers/models';
3
+ import { PickerManagerEnableAccessibleFieldDOMStructure, PickerManagerFieldInternalProps, UseFieldResponse } from '@mui/x-date-pickers/internals';
4
+ import { PickerAnyRangeManager } from '../../internals/models/managers';
5
+ import { UseDateRangeManagerReturnValue, UseDateTimeRangeManagerReturnValue, UseTimeRangeManagerReturnValue } from '../../managers';
6
+ /**
7
+ * @ignore - internal hook.
8
+ */
9
+ export declare function useMultiInputRangeFieldTextFieldProps<TManager extends PickerAnyRangeManager, TForwardedProps extends {
10
+ [key: string]: any;
11
+ }>(parameters: UseMultiInputRangeFieldTextFieldProps<TManager>): Omit<UseFieldResponse<PickerManagerEnableAccessibleFieldDOMStructure<TManager>, TForwardedProps>, "clearable" | "onClear">;
12
+ interface UseMultiInputRangeFieldTextFieldProps<TManager extends PickerAnyRangeManager> {
13
+ valueType: PickerValueType;
14
+ fieldProps: PickerManagerFieldInternalProps<GetDerivedManager<TManager>>;
15
+ }
16
+ type GetDerivedManager<TManager extends PickerAnyRangeManager> = TManager extends UseDateRangeManagerReturnValue<infer TEnableAccessibleFieldDOMStructure> ? UseDateManagerReturnValue<TEnableAccessibleFieldDOMStructure> : TManager extends UseTimeRangeManagerReturnValue<infer TEnableAccessibleFieldDOMStructure> ? UseTimeManagerReturnValue<TEnableAccessibleFieldDOMStructure> : TManager extends UseDateTimeRangeManagerReturnValue<infer TEnableAccessibleFieldDOMStructure> ? UseDateTimeManagerReturnValue<TEnableAccessibleFieldDOMStructure> : never;
17
+ export {};
@@ -0,0 +1,59 @@
1
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
+ const _excluded = ["clearable", "onClear"];
3
+ import { useDateManager, useDateTimeManager, useTimeManager } from '@mui/x-date-pickers/managers';
4
+ import { useSplitFieldProps } from '@mui/x-date-pickers/hooks';
5
+ import { useField, useFieldInternalPropsWithDefaults } from '@mui/x-date-pickers/internals';
6
+ /**
7
+ * @ignore - internal hook.
8
+ */
9
+ export function useMultiInputRangeFieldTextFieldProps(parameters) {
10
+ const {
11
+ fieldProps,
12
+ valueType
13
+ } = parameters;
14
+ let useManager;
15
+ switch (valueType) {
16
+ case 'date':
17
+ {
18
+ useManager = useDateManager;
19
+ break;
20
+ }
21
+ case 'time':
22
+ {
23
+ useManager = useTimeManager;
24
+ break;
25
+ }
26
+ case 'date-time':
27
+ {
28
+ useManager = useDateTimeManager;
29
+ break;
30
+ }
31
+ default:
32
+ {
33
+ throw new Error(`Unknown valueType: ${valueType}`);
34
+ }
35
+ }
36
+ const manager = useManager({
37
+ enableAccessibleFieldDOMStructure: fieldProps.enableAccessibleFieldDOMStructure
38
+ });
39
+ const {
40
+ forwardedProps,
41
+ internalProps
42
+ } = useSplitFieldProps(fieldProps, 'date');
43
+ const internalPropsWithDefaults = useFieldInternalPropsWithDefaults({
44
+ manager,
45
+ internalProps
46
+ });
47
+ const _ref = useField({
48
+ forwardedProps,
49
+ internalProps: internalPropsWithDefaults,
50
+ valueManager: manager.internal_valueManager,
51
+ fieldValueManager: manager.internal_fieldValueManager,
52
+ validator: manager.validator,
53
+ valueType: manager.valueType,
54
+ // TODO v8: Add a real aria label before moving the opening logic to the field on range pickers.
55
+ getOpenPickerButtonAriaLabel: () => ''
56
+ }),
57
+ fieldResponse = _objectWithoutPropertiesLoose(_ref, _excluded);
58
+ return fieldResponse;
59
+ }
@@ -0,0 +1,7 @@
1
+ import * as React from 'react';
2
+ import { UseRangePositionResponse } from '../internals/hooks/useRangePosition';
3
+ export declare const PickerRangePositionContext: React.Context<UseRangePositionResponse | null>;
4
+ /**
5
+ * Returns information about the range position of the picker that wraps the current component.
6
+ */
7
+ export declare function usePickerRangePositionContext(): UseRangePositionResponse;
@@ -0,0 +1,15 @@
1
+ 'use client';
2
+
3
+ import * as React from 'react';
4
+ export const PickerRangePositionContext = /*#__PURE__*/React.createContext(null);
5
+
6
+ /**
7
+ * Returns information about the range position of the picker that wraps the current component.
8
+ */
9
+ export function usePickerRangePositionContext() {
10
+ const value = React.useContext(PickerRangePositionContext);
11
+ if (value == null) {
12
+ throw new Error(['MUI X: The `usePickerRangePositionContext` can only be called in components that are used inside a picker component'].join('\n'));
13
+ }
14
+ return value;
15
+ }
package/index.d.ts CHANGED
@@ -17,4 +17,6 @@ export * from './DesktopDateTimeRangePicker';
17
17
  export * from './MobileDateTimeRangePicker';
18
18
  export * from './dateRangeViewRenderers';
19
19
  export * from './models';
20
+ export * from './hooks';
20
21
  export * from './validation';
22
+ export * from './managers';
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-date-pickers-pro v8.0.0-alpha.6
2
+ * @mui/x-date-pickers-pro v8.0.0-alpha.8
3
3
  *
4
4
  * @license MUI X Commercial
5
5
  * This source code is licensed under the commercial license found in the
@@ -32,4 +32,6 @@ export * from "./MobileDateTimeRangePicker/index.js";
32
32
  // View renderers
33
33
  export * from "./dateRangeViewRenderers/index.js";
34
34
  export * from "./models/index.js";
35
- export * from "./validation/index.js";
35
+ export * from "./hooks/index.js";
36
+ export * from "./validation/index.js";
37
+ export * from "./managers/index.js";
@@ -1 +1 @@
1
- export type { UseRangePickerSlots, UseRangePickerSlotProps, RangeOnlyPickerProps, RangePickerAdditionalViewProps, UseRangePickerProps, UseRangePickerParams, } from './useRangePicker';
1
+ export type { UseRangePickerSlots, UseRangePickerSlotProps, RangeOnlyPickerProps, UseRangePickerProps, UseRangePickerParams, } from './useRangePicker';
@@ -1,20 +1,18 @@
1
- import { UsePickerParams, BasePickerProps, ExportedBaseToolbarProps, UsePickerViewsProps, BaseNonStaticPickerProps, UsePickerValueNonStaticProps, UsePickerProviderNonStaticProps, DateOrTimeViewWithMeridiem, ExportedBaseTabsProps, PickerRangeValue } from '@mui/x-date-pickers/internals';
1
+ import { UsePickerParams, BasePickerProps, ExportedBaseToolbarProps, UsePickerViewsProps, UsePickerValueNonStaticProps, UsePickerProviderNonStaticProps, DateOrTimeViewWithMeridiem, ExportedBaseTabsProps, PickerRangeValue } from '@mui/x-date-pickers/internals';
2
2
  import { ExportedPickersLayoutSlots, ExportedPickersLayoutSlotProps } from '@mui/x-date-pickers/PickersLayout';
3
3
  import { BaseRangeNonStaticPickerProps } from '../../models';
4
- import { UseRangePositionProps, UseRangePositionResponse } from '../useRangePosition';
5
- import { RangePickerFieldSlots, RangePickerFieldSlotProps } from '../useEnrichedRangePickerFieldProps';
4
+ import { UseRangePositionProps } from '../useRangePosition';
5
+ import { RangePickerFieldSlots, RangePickerFieldSlotProps } from '../useEnrichedRangePickerField';
6
6
  export interface UseRangePickerSlots extends ExportedPickersLayoutSlots<PickerRangeValue>, RangePickerFieldSlots {
7
7
  }
8
8
  export interface UseRangePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends ExportedPickersLayoutSlotProps<PickerRangeValue>, RangePickerFieldSlotProps<TEnableAccessibleFieldDOMStructure> {
9
9
  tabs?: ExportedBaseTabsProps;
10
10
  toolbar?: ExportedBaseToolbarProps;
11
11
  }
12
- export interface RangeOnlyPickerProps extends BaseNonStaticPickerProps, UsePickerValueNonStaticProps, UsePickerProviderNonStaticProps, BaseRangeNonStaticPickerProps, UseRangePositionProps {
12
+ export interface RangeOnlyPickerProps extends UsePickerValueNonStaticProps, UsePickerProviderNonStaticProps, BaseRangeNonStaticPickerProps, UseRangePositionProps {
13
13
  }
14
- export interface UseRangePickerProps<TView extends DateOrTimeViewWithMeridiem, TError, TExternalProps extends UsePickerViewsProps<any, TView, any, any>, TAdditionalViewProps extends {}> extends RangeOnlyPickerProps, BasePickerProps<PickerRangeValue, TView, TError, TExternalProps, TAdditionalViewProps> {
14
+ export interface UseRangePickerProps<TView extends DateOrTimeViewWithMeridiem, TError, TExternalProps extends UsePickerViewsProps<any, TView, any>> extends RangeOnlyPickerProps, BasePickerProps<PickerRangeValue, TView, TError, TExternalProps> {
15
15
  }
16
- export interface RangePickerAdditionalViewProps extends Pick<UseRangePositionResponse, 'rangePosition' | 'onRangePositionChange'> {
17
- }
18
- export interface UseRangePickerParams<TView extends DateOrTimeViewWithMeridiem, TExternalProps extends UseRangePickerProps<TView, any, TExternalProps, TAdditionalViewProps>, TAdditionalViewProps extends {}> extends Pick<UsePickerParams<PickerRangeValue, TView, TExternalProps, TAdditionalViewProps>, 'valueManager' | 'valueType' | 'validator' | 'rendererInterceptor'> {
16
+ export interface UseRangePickerParams<TView extends DateOrTimeViewWithMeridiem, TExternalProps extends UseRangePickerProps<TView, any, TExternalProps>> extends Pick<UsePickerParams<PickerRangeValue, TView, TExternalProps>, 'valueManager' | 'valueType' | 'validator' | 'rendererInterceptor'> {
19
17
  props: TExternalProps;
20
18
  }
@@ -5,10 +5,11 @@ import * as React from 'react';
5
5
  import useSlotProps from '@mui/utils/useSlotProps';
6
6
  import { useLicenseVerifier } from '@mui/x-license';
7
7
  import { PickersLayout } from '@mui/x-date-pickers/PickersLayout';
8
- import { executeInTheNextEventLoopTick, getActiveElement, usePicker, PickersPopper, PickerProvider } from '@mui/x-date-pickers/internals';
9
- import { useEnrichedRangePickerFieldProps } from "../useEnrichedRangePickerFieldProps.js";
8
+ import { executeInTheNextEventLoopTick, getActiveElement, usePicker, PickersPopper, PickerProvider, PickerFieldUIContextProvider } from '@mui/x-date-pickers/internals';
9
+ import { useEnrichedRangePickerField } from "../useEnrichedRangePickerField.js";
10
10
  import { getReleaseInfo } from "../../utils/releaseInfo.js";
11
11
  import { useRangePosition } from "../useRangePosition.js";
12
+ import { PickerRangePositionContext } from "../../../hooks/usePickerRangePositionContext.js";
12
13
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
14
  const releaseInfo = getReleaseInfo();
14
15
  export const useDesktopRangePicker = _ref => {
@@ -22,60 +23,46 @@ export const useDesktopRangePicker = _ref => {
22
23
  slotProps,
23
24
  className,
24
25
  sx,
25
- format,
26
- formatDensity,
27
- enableAccessibleFieldDOMStructure,
28
- selectedSections,
29
- onSelectedSectionsChange,
30
- timezone,
31
26
  label,
32
27
  inputRef,
33
28
  name,
34
29
  readOnly,
35
- disabled,
36
30
  autoFocus,
37
31
  disableOpenPicker,
38
32
  localeText,
39
33
  reduceAnimations
40
34
  } = props;
41
35
  const fieldContainerRef = React.useRef(null);
42
- const anchorRef = React.useRef(null);
43
36
  const popperRef = React.useRef(null);
44
37
  const startFieldRef = React.useRef(null);
45
38
  const endFieldRef = React.useRef(null);
46
39
  const singleInputFieldRef = React.useRef(null);
47
40
  const initialView = React.useRef(props.openTo ?? null);
48
41
  const fieldType = slots.field.fieldType ?? 'multi-input';
49
- const {
50
- rangePosition,
51
- onRangePositionChange
52
- } = useRangePosition(props, fieldType === 'single-input' ? singleInputFieldRef : undefined);
42
+ const rangePositionResponse = useRangePosition(props, fieldType === 'single-input' ? singleInputFieldRef : undefined);
53
43
  let fieldRef;
54
44
  if (fieldType === 'single-input') {
55
45
  fieldRef = singleInputFieldRef;
56
- } else if (rangePosition === 'start') {
46
+ } else if (rangePositionResponse.rangePosition === 'start') {
57
47
  fieldRef = startFieldRef;
58
48
  } else {
59
49
  fieldRef = endFieldRef;
60
50
  }
61
51
  const {
62
- layoutProps,
63
52
  providerProps,
64
53
  renderCurrentView,
65
54
  shouldRestoreFocus,
66
- fieldProps: pickerFieldProps,
67
55
  ownerState
68
56
  } = usePicker(_extends({}, pickerParams, {
69
57
  props,
70
58
  variant: 'desktop',
71
59
  autoFocusView: false,
72
60
  fieldRef,
73
- localeText,
74
- additionalViewProps: {
75
- rangePosition,
76
- onRangePositionChange
77
- }
61
+ localeText
78
62
  }));
63
+
64
+ // Temporary hack to hide the opening button on the range pickers until we have migrate them to the new opening logic.
65
+ providerProps.contextValue.triggerStatus = 'hidden';
79
66
  React.useEffect(() => {
80
67
  if (providerProps.contextValue.view) {
81
68
  initialView.current = providerProps.contextValue.view;
@@ -99,17 +86,7 @@ export const useDesktopRangePicker = _ref => {
99
86
  additionalProps: _extends({
100
87
  // Internal props
101
88
  readOnly,
102
- disabled,
103
- format,
104
- formatDensity,
105
- enableAccessibleFieldDOMStructure,
106
- selectedSections,
107
- onSelectedSectionsChange,
108
- timezone,
109
- autoFocus: autoFocus && !props.open
110
- }, pickerFieldProps, {
111
- // onChange and value
112
-
89
+ autoFocus: autoFocus && !props.open,
113
90
  // Forwarded props
114
91
  className,
115
92
  sx,
@@ -121,58 +98,54 @@ export const useDesktopRangePicker = _ref => {
121
98
  }),
122
99
  ownerState
123
100
  });
124
- const enrichedFieldProps = useEnrichedRangePickerFieldProps({
101
+ const enrichedFieldResponse = useEnrichedRangePickerField(_extends({
125
102
  variant: 'desktop',
126
103
  fieldType,
127
104
  // These direct access to `providerProps` will go away once the range fields handle the picker opening
128
- open: providerProps.contextValue.open,
129
- setOpen: providerProps.contextValue.setOpen,
105
+ contextValue: providerProps.contextValue,
106
+ fieldPrivateContextValue: providerProps.fieldPrivateContextValue,
130
107
  readOnly,
131
108
  disableOpenPicker,
132
109
  label,
133
110
  localeText,
134
111
  onBlur: handleBlur,
135
- rangePosition,
136
- onRangePositionChange,
137
112
  pickerSlotProps: slotProps,
138
113
  pickerSlots: slots,
139
114
  fieldProps,
140
- anchorRef,
115
+ anchorRef: providerProps.contextValue.triggerRef,
141
116
  startFieldRef,
142
117
  endFieldRef,
143
118
  singleInputFieldRef,
144
119
  currentView: providerProps.contextValue.view !== props.openTo ? providerProps.contextValue.view : undefined,
145
- initialView: initialView.current ?? undefined,
146
- onViewChange: providerProps.contextValue.onViewChange
147
- });
148
- const slotPropsForLayout = _extends({}, slotProps, {
149
- tabs: _extends({}, slotProps?.tabs, {
150
- rangePosition,
151
- onRangePositionChange
152
- }),
153
- toolbar: _extends({}, slotProps?.toolbar, {
154
- rangePosition,
155
- onRangePositionChange
156
- })
157
- });
120
+ initialView: initialView.current ?? undefined
121
+ }, rangePositionResponse));
158
122
  const Layout = slots?.layout ?? PickersLayout;
159
- const renderPicker = () => /*#__PURE__*/_jsxs(PickerProvider, _extends({}, providerProps, {
160
- children: [/*#__PURE__*/_jsx(Field, _extends({}, enrichedFieldProps)), /*#__PURE__*/_jsx(PickersPopper, {
161
- role: "tooltip",
162
- placement: "bottom-start",
163
- containerRef: popperRef,
164
- anchorEl: anchorRef.current,
165
- onBlur: handleBlur,
123
+ const renderPicker = () => /*#__PURE__*/_jsx(PickerProvider, _extends({}, providerProps, {
124
+ // This override will go away once the range fields handle the picker opening
125
+ fieldPrivateContextValue: _extends({}, providerProps.fieldPrivateContextValue, enrichedFieldResponse.fieldPrivateContextValue),
126
+ children: /*#__PURE__*/_jsx(PickerFieldUIContextProvider, {
166
127
  slots: slots,
167
128
  slotProps: slotProps,
168
- shouldRestoreFocus: shouldRestoreFocus,
169
- reduceAnimations: reduceAnimations,
170
- children: /*#__PURE__*/_jsx(Layout, _extends({}, layoutProps, slotProps?.layout, {
171
- slots: slots,
172
- slotProps: slotPropsForLayout,
173
- children: renderCurrentView()
174
- }))
175
- })]
129
+ children: /*#__PURE__*/_jsxs(PickerRangePositionContext.Provider, {
130
+ value: rangePositionResponse,
131
+ children: [/*#__PURE__*/_jsx(Field, _extends({}, enrichedFieldResponse.fieldProps)), /*#__PURE__*/_jsx(PickersPopper, {
132
+ role: "tooltip",
133
+ placement: "bottom-start",
134
+ containerRef: popperRef,
135
+ anchorEl: providerProps.contextValue.triggerRef.current,
136
+ onBlur: handleBlur,
137
+ slots: slots,
138
+ slotProps: slotProps,
139
+ shouldRestoreFocus: shouldRestoreFocus,
140
+ reduceAnimations: reduceAnimations,
141
+ children: /*#__PURE__*/_jsx(Layout, _extends({}, slotProps?.layout, {
142
+ slots: slots,
143
+ slotProps: slotProps,
144
+ children: renderCurrentView()
145
+ }))
146
+ })]
147
+ })
148
+ })
176
149
  }));
177
150
  return {
178
151
  renderPicker
@@ -1,5 +1,5 @@
1
1
  import { PickersPopperSlots, PickersPopperSlotProps, UsePickerViewsProps, DateOrTimeViewWithMeridiem } from '@mui/x-date-pickers/internals';
2
- import { RangeOnlyPickerProps, RangePickerAdditionalViewProps, UseRangePickerParams, UseRangePickerProps, UseRangePickerSlotProps, UseRangePickerSlots } from '../models/useRangePicker';
2
+ import { RangeOnlyPickerProps, UseRangePickerParams, UseRangePickerProps, UseRangePickerSlotProps, UseRangePickerSlots } from '../models/useRangePicker';
3
3
  export interface UseDesktopRangePickerSlots extends UseRangePickerSlots, PickersPopperSlots {
4
4
  }
5
5
  export interface UseDesktopRangePickerSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends UseRangePickerSlotProps<TEnableAccessibleFieldDOMStructure>, PickersPopperSlotProps {
@@ -10,7 +10,7 @@ export interface DesktopRangeOnlyPickerProps extends RangeOnlyPickerProps {
10
10
  */
11
11
  autoFocus?: boolean;
12
12
  }
13
- export interface UseDesktopRangePickerProps<TView extends DateOrTimeViewWithMeridiem, TEnableAccessibleFieldDOMStructure extends boolean, TError, TExternalProps extends UsePickerViewsProps<any, TView, any, any>> extends UseRangePickerProps<TView, TError, TExternalProps, DesktopRangePickerAdditionalViewProps> {
13
+ export interface UseDesktopRangePickerProps<TView extends DateOrTimeViewWithMeridiem, TEnableAccessibleFieldDOMStructure extends boolean, TError, TExternalProps extends UsePickerViewsProps<any, TView, any>> extends UseRangePickerProps<TView, TError, TExternalProps> {
14
14
  /**
15
15
  * Overridable component slots.
16
16
  * @default {}
@@ -22,7 +22,5 @@ export interface UseDesktopRangePickerProps<TView extends DateOrTimeViewWithMeri
22
22
  */
23
23
  slotProps?: UseDesktopRangePickerSlotProps<TEnableAccessibleFieldDOMStructure>;
24
24
  }
25
- export interface DesktopRangePickerAdditionalViewProps extends RangePickerAdditionalViewProps {
26
- }
27
- export interface UseDesktopRangePickerParams<TView extends DateOrTimeViewWithMeridiem, TEnableAccessibleFieldDOMStructure extends boolean, TExternalProps extends UseDesktopRangePickerProps<TView, TEnableAccessibleFieldDOMStructure, any, TExternalProps>> extends UseRangePickerParams<TView, TExternalProps, DesktopRangePickerAdditionalViewProps> {
25
+ export interface UseDesktopRangePickerParams<TView extends DateOrTimeViewWithMeridiem, TEnableAccessibleFieldDOMStructure extends boolean, TExternalProps extends UseDesktopRangePickerProps<TView, TEnableAccessibleFieldDOMStructure, any, TExternalProps>> extends UseRangePickerParams<TView, TExternalProps> {
28
26
  }
@@ -3,10 +3,10 @@ import Stack, { StackProps } from '@mui/material/Stack';
3
3
  import Typography, { TypographyProps } from '@mui/material/Typography';
4
4
  import { SlotComponentProps } from '@mui/utils';
5
5
  import { SlotComponentPropsFromProps } from '@mui/x-internals/types';
6
- import { FieldRef, PickerOwnerState, FieldOwnerState } from '@mui/x-date-pickers/models';
6
+ import { FieldSelectedSections, FieldRef, PickerOwnerState, FieldOwnerState } from '@mui/x-date-pickers/models';
7
7
  import { UseClearableFieldSlots, UseClearableFieldSlotProps } from '@mui/x-date-pickers/hooks';
8
8
  import { PickersInputLocaleText } from '@mui/x-date-pickers/locales';
9
- import { UsePickerValueContextValue, PickerVariant, DateOrTimeViewWithMeridiem, BaseSingleInputFieldProps, PickerRangeValue, PickerValue } from '@mui/x-date-pickers/internals';
9
+ import { PickerVariant, DateOrTimeViewWithMeridiem, BaseSingleInputFieldProps, PickerRangeValue, PickerValue, PickerContextValue, PickerFieldPrivateContextValue } from '@mui/x-date-pickers/internals';
10
10
  import { PickersTextField } from '@mui/x-date-pickers/PickersTextField';
11
11
  import { RangePosition, FieldType, PickerRangeFieldSlotProps } from '../../models';
12
12
  import { UseRangePositionResponse } from './useRangePosition';
@@ -39,7 +39,9 @@ export interface RangePickerFieldSlotProps<TEnableAccessibleFieldDOMStructure ex
39
39
  }>;
40
40
  }
41
41
  export type RangePickerPropsForFieldSlot<TIsSingleInput extends boolean, TEnableAccessibleFieldDOMStructure extends boolean, TError> = (TIsSingleInput extends true ? BaseSingleInputFieldProps<PickerRangeValue, TEnableAccessibleFieldDOMStructure, TError> : never) | (TIsSingleInput extends false ? BaseMultiInputFieldProps<TEnableAccessibleFieldDOMStructure, TError> : never);
42
- export interface UseEnrichedRangePickerFieldPropsParams<TIsSingleInput extends boolean, TView extends DateOrTimeViewWithMeridiem, TEnableAccessibleFieldDOMStructure extends boolean, TError> extends Pick<UsePickerValueContextValue, 'open' | 'setOpen'>, UseRangePositionResponse {
42
+ export interface UseEnrichedRangePickerFieldPropsParams<TIsSingleInput extends boolean, TView extends DateOrTimeViewWithMeridiem, TEnableAccessibleFieldDOMStructure extends boolean, TError> extends UseRangePositionResponse {
43
+ contextValue: PickerContextValue<PickerRangeValue, TView, TError>;
44
+ fieldPrivateContextValue: PickerFieldPrivateContextValue;
43
45
  variant: PickerVariant;
44
46
  fieldType: FieldType;
45
47
  readOnly?: boolean;
@@ -51,12 +53,19 @@ export interface UseEnrichedRangePickerFieldPropsParams<TIsSingleInput extends b
51
53
  pickerSlotProps: RangePickerFieldSlotProps<TEnableAccessibleFieldDOMStructure> | undefined;
52
54
  pickerSlots: RangePickerFieldSlots | undefined;
53
55
  fieldProps: RangePickerPropsForFieldSlot<TIsSingleInput, TEnableAccessibleFieldDOMStructure, TError>;
54
- anchorRef?: React.Ref<HTMLDivElement>;
56
+ anchorRef?: React.Ref<HTMLElement>;
55
57
  currentView?: TView | null;
56
58
  initialView?: TView;
57
- onViewChange?: (view: TView) => void;
58
- startFieldRef: React.RefObject<FieldRef<PickerValue>>;
59
- endFieldRef: React.RefObject<FieldRef<PickerValue>>;
60
- singleInputFieldRef: React.RefObject<FieldRef<PickerRangeValue>>;
59
+ startFieldRef: React.RefObject<FieldRef<PickerValue> | null>;
60
+ endFieldRef: React.RefObject<FieldRef<PickerValue> | null>;
61
+ singleInputFieldRef: React.RefObject<FieldRef<PickerRangeValue> | null>;
61
62
  }
62
- export declare const useEnrichedRangePickerFieldProps: <TView extends DateOrTimeViewWithMeridiem, TEnableAccessibleFieldDOMStructure extends boolean, TError>(params: UseEnrichedRangePickerFieldPropsParams<boolean, TView, TEnableAccessibleFieldDOMStructure, TError>) => BaseMultiInputFieldProps<TEnableAccessibleFieldDOMStructure, TError> | BaseSingleInputFieldProps<PickerRangeValue, TEnableAccessibleFieldDOMStructure, TError>;
63
+ export declare const useEnrichedRangePickerField: <TView extends DateOrTimeViewWithMeridiem, TEnableAccessibleFieldDOMStructure extends boolean, TError>(params: UseEnrichedRangePickerFieldPropsParams<boolean, TView, TEnableAccessibleFieldDOMStructure, TError>) => {
64
+ fieldProps: BaseMultiInputFieldProps<TEnableAccessibleFieldDOMStructure, TError>;
65
+ fieldPrivateContextValue: {};
66
+ } | {
67
+ fieldProps: BaseSingleInputFieldProps<PickerRangeValue, TEnableAccessibleFieldDOMStructure, TError>;
68
+ fieldPrivateContextValue: {
69
+ onSelectedSectionsChange: (selectedSection: FieldSelectedSections) => void;
70
+ };
71
+ };