@mui/x-date-pickers-pro 7.0.0-beta.2 → 7.0.0-beta.4

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 (274) hide show
  1. package/CHANGELOG.md +298 -23
  2. package/DateRangeCalendar/DateRangeCalendar.js +3 -1
  3. package/DateRangeCalendar/DateRangeCalendar.types.d.ts +3 -0
  4. package/DateRangePicker/DateRangePicker.d.ts +1 -1
  5. package/DateRangePicker/DateRangePicker.js +9 -9
  6. package/DateRangePicker/DateRangePicker.types.d.ts +3 -3
  7. package/DateRangePicker/DateRangePickerToolbar.d.ts +3 -0
  8. package/DateRangePicker/DateRangePickerToolbar.js +6 -0
  9. package/DateTimeRangePicker/DateTimeRangePicker.d.ts +1 -1
  10. package/DateTimeRangePicker/DateTimeRangePicker.js +11 -12
  11. package/DateTimeRangePicker/DateTimeRangePicker.types.d.ts +3 -3
  12. package/DateTimeRangePicker/DateTimeRangePickerTabs.js +7 -1
  13. package/DateTimeRangePicker/DateTimeRangePickerToolbar.d.ts +3 -0
  14. package/DateTimeRangePicker/DateTimeRangePickerToolbar.js +6 -0
  15. package/DesktopDateRangePicker/DesktopDateRangePicker.d.ts +1 -1
  16. package/DesktopDateRangePicker/DesktopDateRangePicker.js +9 -9
  17. package/DesktopDateRangePicker/DesktopDateRangePicker.types.d.ts +3 -3
  18. package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.d.ts +1 -1
  19. package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +11 -12
  20. package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.types.d.ts +3 -3
  21. package/MobileDateRangePicker/MobileDateRangePicker.d.ts +1 -1
  22. package/MobileDateRangePicker/MobileDateRangePicker.js +9 -9
  23. package/MobileDateRangePicker/MobileDateRangePicker.types.d.ts +3 -3
  24. package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.d.ts +1 -1
  25. package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +11 -12
  26. package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.types.d.ts +3 -3
  27. package/MultiInputDateRangeField/MultiInputDateRangeField.d.ts +1 -1
  28. package/MultiInputDateRangeField/MultiInputDateRangeField.js +17 -19
  29. package/MultiInputDateRangeField/MultiInputDateRangeField.types.d.ts +11 -14
  30. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.d.ts +1 -1
  31. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +17 -19
  32. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.d.ts +12 -16
  33. package/MultiInputTimeRangeField/MultiInputTimeRangeField.d.ts +1 -1
  34. package/MultiInputTimeRangeField/MultiInputTimeRangeField.js +17 -19
  35. package/MultiInputTimeRangeField/MultiInputTimeRangeField.types.d.ts +12 -16
  36. package/SingleInputDateRangeField/SingleInputDateRangeField.d.ts +2 -2
  37. package/SingleInputDateRangeField/SingleInputDateRangeField.js +12 -10
  38. package/SingleInputDateRangeField/SingleInputDateRangeField.types.d.ts +11 -14
  39. package/SingleInputDateRangeField/index.d.ts +1 -1
  40. package/SingleInputDateRangeField/useSingleInputDateRangeField.d.ts +2 -3
  41. package/SingleInputDateRangeField/useSingleInputDateRangeField.js +2 -15
  42. package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.d.ts +2 -2
  43. package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +12 -10
  44. package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.types.d.ts +12 -15
  45. package/SingleInputDateTimeRangeField/index.d.ts +1 -1
  46. package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.d.ts +2 -3
  47. package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +2 -20
  48. package/SingleInputTimeRangeField/SingleInputTimeRangeField.d.ts +2 -2
  49. package/SingleInputTimeRangeField/SingleInputTimeRangeField.js +11 -9
  50. package/SingleInputTimeRangeField/SingleInputTimeRangeField.types.d.ts +12 -15
  51. package/SingleInputTimeRangeField/index.d.ts +1 -1
  52. package/SingleInputTimeRangeField/useSingleInputTimeRangeField.d.ts +2 -3
  53. package/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +2 -14
  54. package/StaticDateRangePicker/StaticDateRangePicker.js +0 -1
  55. package/index.d.ts +0 -1
  56. package/index.js +2 -1
  57. package/internals/hooks/models/useRangePicker.d.ts +5 -5
  58. package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.d.ts +1 -1
  59. package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +16 -7
  60. package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.types.d.ts +5 -5
  61. package/internals/hooks/useEnrichedRangePickerFieldProps.d.ts +15 -15
  62. package/internals/hooks/useEnrichedRangePickerFieldProps.js +37 -40
  63. package/internals/hooks/useMobileRangePicker/useMobileRangePicker.d.ts +1 -1
  64. package/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +17 -8
  65. package/internals/hooks/useMobileRangePicker/useMobileRangePicker.types.d.ts +5 -5
  66. package/internals/hooks/useMultiInputFieldSelectedSections.d.ts +21 -0
  67. package/internals/hooks/useMultiInputFieldSelectedSections.js +43 -0
  68. package/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.d.ts +1 -1
  69. package/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +17 -12
  70. package/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.d.ts +2 -3
  71. package/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +23 -31
  72. package/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.d.ts +4 -4
  73. package/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.d.ts +2 -3
  74. package/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +23 -25
  75. package/internals/hooks/useRangePosition.d.ts +2 -4
  76. package/internals/hooks/useRangePosition.js +3 -6
  77. package/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +1 -0
  78. package/internals/hooks/useStaticRangePicker/useStaticRangePicker.types.d.ts +1 -2
  79. package/internals/models/dateRange.d.ts +3 -15
  80. package/internals/models/dateTimeRange.d.ts +4 -6
  81. package/internals/models/index.d.ts +0 -1
  82. package/internals/models/index.js +0 -1
  83. package/internals/models/timeRange.d.ts +3 -6
  84. package/internals/utils/date-fields-utils.d.ts +1 -5
  85. package/internals/utils/releaseInfo.js +1 -1
  86. package/internals/utils/valueManagers.d.ts +1 -2
  87. package/internals/utils/valueManagers.js +11 -6
  88. package/models/fields.d.ts +69 -0
  89. package/models/index.d.ts +1 -0
  90. package/models/index.js +1 -0
  91. package/modern/DateRangeCalendar/DateRangeCalendar.js +3 -1
  92. package/modern/DateRangePicker/DateRangePicker.js +9 -9
  93. package/modern/DateRangePicker/DateRangePickerToolbar.js +6 -0
  94. package/modern/DateTimeRangePicker/DateTimeRangePicker.js +11 -12
  95. package/modern/DateTimeRangePicker/DateTimeRangePickerTabs.js +7 -1
  96. package/modern/DateTimeRangePicker/DateTimeRangePickerToolbar.js +6 -0
  97. package/modern/DesktopDateRangePicker/DesktopDateRangePicker.js +9 -9
  98. package/modern/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +11 -12
  99. package/modern/MobileDateRangePicker/MobileDateRangePicker.js +9 -9
  100. package/modern/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +11 -12
  101. package/modern/MultiInputDateRangeField/MultiInputDateRangeField.js +17 -19
  102. package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +17 -19
  103. package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.js +17 -19
  104. package/modern/SingleInputDateRangeField/SingleInputDateRangeField.js +12 -10
  105. package/modern/SingleInputDateRangeField/useSingleInputDateRangeField.js +2 -14
  106. package/modern/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +12 -10
  107. package/modern/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +2 -19
  108. package/modern/SingleInputTimeRangeField/SingleInputTimeRangeField.js +11 -9
  109. package/modern/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +2 -13
  110. package/modern/StaticDateRangePicker/StaticDateRangePicker.js +0 -1
  111. package/modern/index.js +2 -1
  112. package/modern/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +16 -7
  113. package/modern/internals/hooks/useEnrichedRangePickerFieldProps.js +34 -37
  114. package/modern/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +17 -8
  115. package/modern/internals/hooks/useMultiInputFieldSelectedSections.js +40 -0
  116. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +17 -12
  117. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +23 -30
  118. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +23 -24
  119. package/modern/internals/hooks/useRangePosition.js +3 -6
  120. package/modern/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +1 -0
  121. package/modern/internals/models/index.js +0 -1
  122. package/modern/internals/utils/releaseInfo.js +1 -1
  123. package/modern/internals/utils/valueManagers.js +11 -6
  124. package/modern/models/index.js +1 -0
  125. package/node/DateRangeCalendar/DateRangeCalendar.js +3 -1
  126. package/node/DateRangePicker/DateRangePicker.js +9 -9
  127. package/node/DateRangePicker/DateRangePickerToolbar.js +6 -0
  128. package/node/DateTimeRangePicker/DateTimeRangePicker.js +11 -12
  129. package/node/DateTimeRangePicker/DateTimeRangePickerTabs.js +7 -1
  130. package/node/DateTimeRangePicker/DateTimeRangePickerToolbar.js +6 -0
  131. package/node/DesktopDateRangePicker/DesktopDateRangePicker.js +9 -9
  132. package/node/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +11 -12
  133. package/node/MobileDateRangePicker/MobileDateRangePicker.js +9 -9
  134. package/node/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +13 -14
  135. package/node/MultiInputDateRangeField/MultiInputDateRangeField.js +17 -19
  136. package/node/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +17 -19
  137. package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.js +17 -19
  138. package/node/SingleInputDateRangeField/SingleInputDateRangeField.js +12 -10
  139. package/node/SingleInputDateRangeField/useSingleInputDateRangeField.js +2 -16
  140. package/node/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +15 -13
  141. package/node/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +2 -21
  142. package/node/SingleInputTimeRangeField/SingleInputTimeRangeField.js +11 -9
  143. package/node/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +2 -15
  144. package/node/StaticDateRangePicker/StaticDateRangePicker.js +0 -1
  145. package/node/index.js +1 -1
  146. package/node/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +16 -7
  147. package/node/internals/hooks/useEnrichedRangePickerFieldProps.js +33 -36
  148. package/node/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +17 -8
  149. package/node/internals/hooks/useMultiInputFieldSelectedSections.js +50 -0
  150. package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +16 -11
  151. package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +23 -31
  152. package/node/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +23 -25
  153. package/node/internals/hooks/useRangePosition.js +3 -8
  154. package/node/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +1 -0
  155. package/node/internals/models/index.js +0 -11
  156. package/node/internals/utils/releaseInfo.js +1 -1
  157. package/node/internals/utils/valueManagers.js +10 -5
  158. package/node/models/index.js +11 -0
  159. package/package.json +5 -5
  160. package/themeAugmentation/props.d.ts +12 -12
  161. package/internals/models/fields.d.ts +0 -49
  162. package/legacy/AdapterDateFns/index.js +0 -1
  163. package/legacy/AdapterDateFnsJalali/index.js +0 -1
  164. package/legacy/AdapterDateFnsV3/index.js +0 -1
  165. package/legacy/AdapterDayjs/index.js +0 -1
  166. package/legacy/AdapterLuxon/index.js +0 -1
  167. package/legacy/AdapterMoment/index.js +0 -1
  168. package/legacy/AdapterMomentHijri/index.js +0 -1
  169. package/legacy/AdapterMomentJalaali/index.js +0 -1
  170. package/legacy/DateRangeCalendar/DateRangeCalendar.js +0 -764
  171. package/legacy/DateRangeCalendar/DateRangeCalendar.types.js +0 -1
  172. package/legacy/DateRangeCalendar/dateRangeCalendarClasses.js +0 -5
  173. package/legacy/DateRangeCalendar/index.js +0 -2
  174. package/legacy/DateRangeCalendar/useDragRange.js +0 -258
  175. package/legacy/DateRangePicker/DateRangePicker.js +0 -334
  176. package/legacy/DateRangePicker/DateRangePicker.types.js +0 -1
  177. package/legacy/DateRangePicker/DateRangePickerToolbar.js +0 -127
  178. package/legacy/DateRangePicker/dateRangePickerToolbarClasses.js +0 -5
  179. package/legacy/DateRangePicker/index.js +0 -3
  180. package/legacy/DateRangePicker/shared.js +0 -33
  181. package/legacy/DateRangePickerDay/DateRangePickerDay.js +0 -366
  182. package/legacy/DateRangePickerDay/dateRangePickerDayClasses.js +0 -5
  183. package/legacy/DateRangePickerDay/index.js +0 -2
  184. package/legacy/DateTimeRangePicker/DateTimeRangePicker.js +0 -413
  185. package/legacy/DateTimeRangePicker/DateTimeRangePicker.types.js +0 -1
  186. package/legacy/DateTimeRangePicker/DateTimeRangePickerTabs.js +0 -191
  187. package/legacy/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +0 -57
  188. package/legacy/DateTimeRangePicker/DateTimeRangePickerToolbar.js +0 -184
  189. package/legacy/DateTimeRangePicker/dateTimeRangePickerTabsClasses.js +0 -6
  190. package/legacy/DateTimeRangePicker/dateTimeRangePickerToolbarClasses.js +0 -5
  191. package/legacy/DateTimeRangePicker/index.js +0 -5
  192. package/legacy/DateTimeRangePicker/shared.js +0 -54
  193. package/legacy/DesktopDateRangePicker/DesktopDateRangePicker.js +0 -343
  194. package/legacy/DesktopDateRangePicker/DesktopDateRangePicker.types.js +0 -1
  195. package/legacy/DesktopDateRangePicker/index.js +0 -1
  196. package/legacy/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +0 -491
  197. package/legacy/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.types.js +0 -1
  198. package/legacy/DesktopDateTimeRangePicker/DesktopDateTimeRangePickerLayout.js +0 -48
  199. package/legacy/DesktopDateTimeRangePicker/index.js +0 -1
  200. package/legacy/MobileDateRangePicker/MobileDateRangePicker.js +0 -339
  201. package/legacy/MobileDateRangePicker/MobileDateRangePicker.types.js +0 -1
  202. package/legacy/MobileDateRangePicker/index.js +0 -1
  203. package/legacy/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +0 -484
  204. package/legacy/MobileDateTimeRangePicker/MobileDateTimeRangePicker.types.js +0 -1
  205. package/legacy/MobileDateTimeRangePicker/index.js +0 -1
  206. package/legacy/MultiInputDateRangeField/MultiInputDateRangeField.js +0 -316
  207. package/legacy/MultiInputDateRangeField/MultiInputDateRangeField.types.js +0 -1
  208. package/legacy/MultiInputDateRangeField/index.js +0 -2
  209. package/legacy/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +0 -357
  210. package/legacy/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.js +0 -1
  211. package/legacy/MultiInputDateTimeRangeField/index.js +0 -2
  212. package/legacy/MultiInputTimeRangeField/MultiInputTimeRangeField.js +0 -330
  213. package/legacy/MultiInputTimeRangeField/MultiInputTimeRangeField.types.js +0 -1
  214. package/legacy/MultiInputTimeRangeField/index.js +0 -2
  215. package/legacy/SingleInputDateRangeField/SingleInputDateRangeField.js +0 -307
  216. package/legacy/SingleInputDateRangeField/SingleInputDateRangeField.types.js +0 -1
  217. package/legacy/SingleInputDateRangeField/index.js +0 -2
  218. package/legacy/SingleInputDateRangeField/useSingleInputDateRangeField.js +0 -30
  219. package/legacy/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +0 -348
  220. package/legacy/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.types.js +0 -1
  221. package/legacy/SingleInputDateTimeRangeField/index.js +0 -2
  222. package/legacy/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +0 -35
  223. package/legacy/SingleInputTimeRangeField/SingleInputTimeRangeField.js +0 -321
  224. package/legacy/SingleInputTimeRangeField/SingleInputTimeRangeField.types.js +0 -1
  225. package/legacy/SingleInputTimeRangeField/index.js +0 -2
  226. package/legacy/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +0 -29
  227. package/legacy/StaticDateRangePicker/StaticDateRangePicker.js +0 -276
  228. package/legacy/StaticDateRangePicker/StaticDateRangePicker.types.js +0 -1
  229. package/legacy/StaticDateRangePicker/index.js +0 -1
  230. package/legacy/dateRangeViewRenderers/dateRangeViewRenderers.js +0 -87
  231. package/legacy/dateRangeViewRenderers/index.js +0 -1
  232. package/legacy/index.js +0 -52
  233. package/legacy/internals/constants/dimensions.js +0 -5
  234. package/legacy/internals/hooks/models/index.js +0 -1
  235. package/legacy/internals/hooks/models/useRangePicker.js +0 -1
  236. package/legacy/internals/hooks/useDesktopRangePicker/index.js +0 -1
  237. package/legacy/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +0 -154
  238. package/legacy/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.types.js +0 -1
  239. package/legacy/internals/hooks/useEnrichedRangePickerFieldProps.js +0 -258
  240. package/legacy/internals/hooks/useMobileRangePicker/index.js +0 -1
  241. package/legacy/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +0 -144
  242. package/legacy/internals/hooks/useMobileRangePicker/useMobileRangePicker.types.js +0 -1
  243. package/legacy/internals/hooks/useMultiInputRangeField/shared.js +0 -9
  244. package/legacy/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +0 -102
  245. package/legacy/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -115
  246. package/legacy/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.js +0 -1
  247. package/legacy/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +0 -109
  248. package/legacy/internals/hooks/useRangePosition.js +0 -39
  249. package/legacy/internals/hooks/useStaticRangePicker/index.js +0 -1
  250. package/legacy/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +0 -76
  251. package/legacy/internals/hooks/useStaticRangePicker/useStaticRangePicker.types.js +0 -1
  252. package/legacy/internals/models/dateRange.js +0 -1
  253. package/legacy/internals/models/dateTimeRange.js +0 -1
  254. package/legacy/internals/models/index.js +0 -5
  255. package/legacy/internals/models/rangePickerProps.js +0 -1
  256. package/legacy/internals/models/timeRange.js +0 -1
  257. package/legacy/internals/utils/date-fields-utils.js +0 -26
  258. package/legacy/internals/utils/date-range-manager.js +0 -65
  259. package/legacy/internals/utils/date-utils.js +0 -12
  260. package/legacy/internals/utils/releaseInfo.js +0 -13
  261. package/legacy/internals/utils/validation/validateDateRange.js +0 -45
  262. package/legacy/internals/utils/validation/validateDateTimeRange.js +0 -45
  263. package/legacy/internals/utils/validation/validateTimeRange.js +0 -32
  264. package/legacy/internals/utils/valueManagers.js +0 -135
  265. package/legacy/locales/index.js +0 -1
  266. package/legacy/models/index.js +0 -3
  267. package/legacy/models/multiInputRangeFieldClasses.js +0 -1
  268. package/legacy/models/range.js +0 -1
  269. package/legacy/models/validation.js +0 -1
  270. package/legacy/themeAugmentation/index.js +0 -4
  271. package/modern/internals/models/fields.js +0 -1
  272. /package/{internals/models → models}/fields.js +0 -0
  273. /package/{legacy/internals → modern}/models/fields.js +0 -0
  274. /package/node/{internals/models → models}/fields.js +0 -0
@@ -17,9 +17,10 @@ var _styles = require("@mui/material/styles");
17
17
  var _utils = require("@mui/base/utils");
18
18
  var _utils2 = require("@mui/utils");
19
19
  var _internals = require("@mui/x-date-pickers/internals");
20
+ var _PickersTextField = require("@mui/x-date-pickers/PickersTextField");
20
21
  var _useMultiInputTimeRangeField = require("../internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField");
21
22
  var _jsxRuntime = require("react/jsx-runtime");
22
- const _excluded = ["slots", "slotProps", "disabled", "autoFocus", "unstableStartFieldRef", "unstableEndFieldRef", "className"];
23
+ const _excluded = ["slots", "slotProps", "unstableStartFieldRef", "unstableEndFieldRef", "className"];
23
24
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
24
25
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
25
26
  const multiInputTimeRangeFieldClasses = exports.multiInputTimeRangeFieldClasses = (0, _utils2.unstable_generateUtilityClasses)('MuiMultiInputTimeRangeField', ['root', 'separator']);
@@ -68,14 +69,12 @@ const MultiInputTimeRangeField = exports.MultiInputTimeRangeField = /*#__PURE__*
68
69
  name: 'MuiMultiInputTimeRangeField'
69
70
  });
70
71
  const {
71
- internalProps: timeFieldInternalProps,
72
+ internalProps,
72
73
  forwardedProps
73
74
  } = (0, _internals.splitFieldInternalAndForwardedProps)(themeProps, 'time');
74
75
  const {
75
76
  slots,
76
77
  slotProps,
77
- disabled,
78
- autoFocus,
79
78
  unstableStartFieldRef,
80
79
  unstableEndFieldRef,
81
80
  className
@@ -94,13 +93,10 @@ const MultiInputTimeRangeField = exports.MultiInputTimeRangeField = /*#__PURE__*
94
93
  ownerState,
95
94
  className: (0, _clsx.clsx)(className, classes.root)
96
95
  });
97
- const TextField = slots?.textField ?? _TextField.default;
96
+ const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure ? _PickersTextField.PickersTextField : _TextField.default);
98
97
  const startTextFieldProps = (0, _utils.useSlotProps)({
99
98
  elementType: TextField,
100
99
  externalSlotProps: slotProps?.textField,
101
- additionalProps: {
102
- autoFocus
103
- },
104
100
  ownerState: (0, _extends2.default)({}, ownerState, {
105
101
  position: 'start'
106
102
  })
@@ -120,9 +116,7 @@ const MultiInputTimeRangeField = exports.MultiInputTimeRangeField = /*#__PURE__*
120
116
  className: classes.separator
121
117
  });
122
118
  const fieldResponse = (0, _useMultiInputTimeRangeField.useMultiInputTimeRangeField)({
123
- sharedProps: (0, _extends2.default)({}, timeFieldInternalProps, {
124
- disabled
125
- }),
119
+ sharedProps: internalProps,
126
120
  startTextFieldProps,
127
121
  endTextFieldProps,
128
122
  unstableStartFieldRef,
@@ -148,6 +142,9 @@ process.env.NODE_ENV !== "production" ? MultiInputTimeRangeField.propTypes = {
148
142
  * @default `utils.is12HourCycleInCurrentLocale()`
149
143
  */
150
144
  ampm: _propTypes.default.bool,
145
+ /**
146
+ * If `true`, the `input` element is focused during the first mount.
147
+ */
151
148
  autoFocus: _propTypes.default.bool,
152
149
  /**
153
150
  * Override or extend the styles applied to the component.
@@ -189,6 +186,10 @@ process.env.NODE_ENV !== "production" ? MultiInputTimeRangeField.propTypes = {
189
186
  * Add an element between each child.
190
187
  */
191
188
  divider: _propTypes.default.node,
189
+ /**
190
+ * @default false
191
+ */
192
+ enableAccessibleFieldDOMStructure: _propTypes.default.bool,
192
193
  /**
193
194
  * Format of the date when rendered in the input(s).
194
195
  */
@@ -249,17 +250,14 @@ process.env.NODE_ENV !== "production" ? MultiInputTimeRangeField.propTypes = {
249
250
  referenceDate: _propTypes.default.object,
250
251
  /**
251
252
  * The currently selected sections.
252
- * This prop accept four formats:
253
+ * This prop accepts four formats:
253
254
  * 1. If a number is provided, the section at this index will be selected.
254
- * 2. If an object with a `startIndex` and `endIndex` properties are provided, the sections between those two indexes will be selected.
255
- * 3. If a string of type `FieldSectionType` is provided, the first section with that name will be selected.
256
- * 4. If `null` is provided, no section will be selected
255
+ * 2. If a string of type `FieldSectionType` is provided, the first section with that name will be selected.
256
+ * 3. If `"all"` is provided, all the sections will be selected.
257
+ * 4. If `null` is provided, no section will be selected.
257
258
  * If not provided, the selected sections will be handled internally.
258
259
  */
259
- selectedSections: _propTypes.default.oneOfType([_propTypes.default.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), _propTypes.default.number, _propTypes.default.shape({
260
- endIndex: _propTypes.default.number.isRequired,
261
- startIndex: _propTypes.default.number.isRequired
262
- })]),
260
+ selectedSections: _propTypes.default.oneOfType([_propTypes.default.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), _propTypes.default.number]),
263
261
  /**
264
262
  * Disable specific time.
265
263
  * @template TDate
@@ -12,9 +12,10 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
12
12
  var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
13
13
  var _styles = require("@mui/material/styles");
14
14
  var _utils = require("@mui/base/utils");
15
+ var _utils2 = require("@mui/utils");
15
16
  var _hooks = require("@mui/x-date-pickers/hooks");
16
17
  var _internals = require("@mui/x-date-pickers/internals");
17
- var _utils2 = require("@mui/utils");
18
+ var _PickersTextField = require("@mui/x-date-pickers/PickersTextField");
18
19
  var _useSingleInputDateRangeField = require("./useSingleInputDateRangeField");
19
20
  var _jsxRuntime = require("react/jsx-runtime");
20
21
  const _excluded = ["slots", "slotProps", "InputProps", "inputProps"];
@@ -43,7 +44,7 @@ const SingleInputDateRangeField = exports.SingleInputDateRangeField = /*#__PURE_
43
44
  } = themeProps,
44
45
  other = (0, _objectWithoutPropertiesLoose2.default)(themeProps, _excluded);
45
46
  const ownerState = themeProps;
46
- const TextField = slots?.textField ?? _TextField.default;
47
+ const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure ? _PickersTextField.PickersTextField : _TextField.default);
47
48
  const textFieldProps = (0, _utils.useSlotProps)({
48
49
  elementType: TextField,
49
50
  externalSlotProps: slotProps?.textField,
@@ -109,6 +110,10 @@ process.env.NODE_ENV !== "production" ? SingleInputDateRangeField.propTypes = {
109
110
  * @default false
110
111
  */
111
112
  disablePast: _propTypes.default.bool,
113
+ /**
114
+ * @default false
115
+ */
116
+ enableAccessibleFieldDOMStructure: _propTypes.default.bool,
112
117
  /**
113
118
  * If `true`, the component is displayed in focused state.
114
119
  */
@@ -235,17 +240,14 @@ process.env.NODE_ENV !== "production" ? SingleInputDateRangeField.propTypes = {
235
240
  required: _propTypes.default.bool,
236
241
  /**
237
242
  * The currently selected sections.
238
- * This prop accept four formats:
243
+ * This prop accepts four formats:
239
244
  * 1. If a number is provided, the section at this index will be selected.
240
- * 2. If an object with a `startIndex` and `endIndex` properties are provided, the sections between those two indexes will be selected.
241
- * 3. If a string of type `FieldSectionType` is provided, the first section with that name will be selected.
242
- * 4. If `null` is provided, no section will be selected
245
+ * 2. If a string of type `FieldSectionType` is provided, the first section with that name will be selected.
246
+ * 3. If `"all"` is provided, all the sections will be selected.
247
+ * 4. If `null` is provided, no section will be selected.
243
248
  * If not provided, the selected sections will be handled internally.
244
249
  */
245
- selectedSections: _propTypes.default.oneOfType([_propTypes.default.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), _propTypes.default.number, _propTypes.default.shape({
246
- endIndex: _propTypes.default.number.isRequired,
247
- startIndex: _propTypes.default.number.isRequired
248
- })]),
250
+ selectedSections: _propTypes.default.oneOfType([_propTypes.default.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), _propTypes.default.number]),
249
251
  /**
250
252
  * Disable specific date.
251
253
  *
@@ -1,28 +1,14 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
- exports.useSingleInputDateRangeField = exports.useDefaultizedDateRangeFieldProps = void 0;
8
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
6
+ exports.useSingleInputDateRangeField = void 0;
9
7
  var _internals = require("@mui/x-date-pickers/internals");
10
8
  var _valueManagers = require("../internals/utils/valueManagers");
11
9
  var _validateDateRange = require("../internals/utils/validation/validateDateRange");
12
- const useDefaultizedDateRangeFieldProps = props => {
13
- const utils = (0, _internals.useUtils)();
14
- const defaultDates = (0, _internals.useDefaultDates)();
15
- return (0, _extends2.default)({}, props, {
16
- disablePast: props.disablePast ?? false,
17
- disableFuture: props.disableFuture ?? false,
18
- format: props.format ?? utils.formats.keyboardDate,
19
- minDate: (0, _internals.applyDefaultDate)(utils, props.minDate, defaultDates.minDate),
20
- maxDate: (0, _internals.applyDefaultDate)(utils, props.maxDate, defaultDates.maxDate)
21
- });
22
- };
23
- exports.useDefaultizedDateRangeFieldProps = useDefaultizedDateRangeFieldProps;
24
10
  const useSingleInputDateRangeField = inProps => {
25
- const props = useDefaultizedDateRangeFieldProps(inProps);
11
+ const props = (0, _internals.useDefaultizedDateField)(inProps);
26
12
  const {
27
13
  forwardedProps,
28
14
  internalProps
@@ -11,10 +11,11 @@ var React = _interopRequireWildcard(require("react"));
11
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
12
12
  var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
13
13
  var _internals = require("@mui/x-date-pickers/internals");
14
+ var _PickersTextField = require("@mui/x-date-pickers/PickersTextField");
14
15
  var _styles = require("@mui/material/styles");
15
- var _utils = require("@mui/base/utils");
16
+ var _utils = require("@mui/utils");
17
+ var _utils2 = require("@mui/base/utils");
16
18
  var _hooks = require("@mui/x-date-pickers/hooks");
17
- var _utils2 = require("@mui/utils");
18
19
  var _useSingleInputDateTimeRangeField = require("./useSingleInputDateTimeRangeField");
19
20
  var _jsxRuntime = require("react/jsx-runtime");
20
21
  const _excluded = ["slots", "slotProps", "InputProps", "inputProps"];
@@ -43,8 +44,8 @@ const SingleInputDateTimeRangeField = exports.SingleInputDateTimeRangeField = /*
43
44
  } = themeProps,
44
45
  other = (0, _objectWithoutPropertiesLoose2.default)(themeProps, _excluded);
45
46
  const ownerState = themeProps;
46
- const TextField = slots?.textField ?? _TextField.default;
47
- const textFieldProps = (0, _utils.useSlotProps)({
47
+ const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure ? _PickersTextField.PickersTextField : _TextField.default);
48
+ const textFieldProps = (0, _utils2.useSlotProps)({
48
49
  elementType: TextField,
49
50
  externalSlotProps: slotProps?.textField,
50
51
  externalForwardedProps: other,
@@ -119,6 +120,10 @@ process.env.NODE_ENV !== "production" ? SingleInputDateTimeRangeField.propTypes
119
120
  * @default false
120
121
  */
121
122
  disablePast: _propTypes.default.bool,
123
+ /**
124
+ * @default false
125
+ */
126
+ enableAccessibleFieldDOMStructure: _propTypes.default.bool,
122
127
  /**
123
128
  * If `true`, the component is displayed in focused state.
124
129
  */
@@ -177,7 +182,7 @@ process.env.NODE_ENV !== "production" ? SingleInputDateTimeRangeField.propTypes
177
182
  /**
178
183
  * Pass a ref to the `input` element.
179
184
  */
180
- inputRef: _utils2.refType,
185
+ inputRef: _utils.refType,
181
186
  /**
182
187
  * The label content.
183
188
  */
@@ -268,17 +273,14 @@ process.env.NODE_ENV !== "production" ? SingleInputDateTimeRangeField.propTypes
268
273
  required: _propTypes.default.bool,
269
274
  /**
270
275
  * The currently selected sections.
271
- * This prop accept four formats:
276
+ * This prop accepts four formats:
272
277
  * 1. If a number is provided, the section at this index will be selected.
273
- * 2. If an object with a `startIndex` and `endIndex` properties are provided, the sections between those two indexes will be selected.
274
- * 3. If a string of type `FieldSectionType` is provided, the first section with that name will be selected.
275
- * 4. If `null` is provided, no section will be selected
278
+ * 2. If a string of type `FieldSectionType` is provided, the first section with that name will be selected.
279
+ * 3. If `"all"` is provided, all the sections will be selected.
280
+ * 4. If `null` is provided, no section will be selected.
276
281
  * If not provided, the selected sections will be handled internally.
277
282
  */
278
- selectedSections: _propTypes.default.oneOfType([_propTypes.default.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), _propTypes.default.number, _propTypes.default.shape({
279
- endIndex: _propTypes.default.number.isRequired,
280
- startIndex: _propTypes.default.number.isRequired
281
- })]),
283
+ selectedSections: _propTypes.default.oneOfType([_propTypes.default.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), _propTypes.default.number]),
282
284
  /**
283
285
  * Disable specific date.
284
286
  *
@@ -1,33 +1,14 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
- exports.useSingleInputDateTimeRangeField = exports.useDefaultizedTimeRangeFieldProps = void 0;
8
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
6
+ exports.useSingleInputDateTimeRangeField = void 0;
9
7
  var _internals = require("@mui/x-date-pickers/internals");
10
8
  var _valueManagers = require("../internals/utils/valueManagers");
11
9
  var _validateDateTimeRange = require("../internals/utils/validation/validateDateTimeRange");
12
- const useDefaultizedTimeRangeFieldProps = props => {
13
- const utils = (0, _internals.useUtils)();
14
- const defaultDates = (0, _internals.useDefaultDates)();
15
- const ampm = props.ampm ?? utils.is12HourCycleInCurrentLocale();
16
- const defaultFormat = ampm ? utils.formats.keyboardDateTime12h : utils.formats.keyboardDateTime24h;
17
- return (0, _extends2.default)({}, props, {
18
- disablePast: props.disablePast ?? false,
19
- disableFuture: props.disableFuture ?? false,
20
- format: props.format ?? defaultFormat,
21
- minDate: (0, _internals.applyDefaultDate)(utils, props.minDateTime ?? props.minDate, defaultDates.minDate),
22
- maxDate: (0, _internals.applyDefaultDate)(utils, props.maxDateTime ?? props.maxDate, defaultDates.maxDate),
23
- minTime: props.minDateTime ?? props.minTime,
24
- maxTime: props.maxDateTime ?? props.maxTime,
25
- disableIgnoringDatePartForTimeValidation: Boolean(props.minDateTime || props.maxDateTime)
26
- });
27
- };
28
- exports.useDefaultizedTimeRangeFieldProps = useDefaultizedTimeRangeFieldProps;
29
10
  const useSingleInputDateTimeRangeField = inProps => {
30
- const props = useDefaultizedTimeRangeFieldProps(inProps);
11
+ const props = (0, _internals.useDefaultizedDateTimeField)(inProps);
31
12
  const {
32
13
  forwardedProps,
33
14
  internalProps
@@ -12,6 +12,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
12
12
  var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
13
13
  var _hooks = require("@mui/x-date-pickers/hooks");
14
14
  var _internals = require("@mui/x-date-pickers/internals");
15
+ var _PickersTextField = require("@mui/x-date-pickers/PickersTextField");
15
16
  var _styles = require("@mui/material/styles");
16
17
  var _utils = require("@mui/base/utils");
17
18
  var _utils2 = require("@mui/utils");
@@ -43,7 +44,7 @@ const SingleInputTimeRangeField = exports.SingleInputTimeRangeField = /*#__PURE_
43
44
  } = themeProps,
44
45
  other = (0, _objectWithoutPropertiesLoose2.default)(themeProps, _excluded);
45
46
  const ownerState = themeProps;
46
- const TextField = slots?.textField ?? _TextField.default;
47
+ const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure ? _PickersTextField.PickersTextField : _TextField.default);
47
48
  const textFieldProps = (0, _utils.useSlotProps)({
48
49
  elementType: TextField,
49
50
  externalSlotProps: slotProps?.textField,
@@ -119,6 +120,10 @@ process.env.NODE_ENV !== "production" ? SingleInputTimeRangeField.propTypes = {
119
120
  * @default false
120
121
  */
121
122
  disablePast: _propTypes.default.bool,
123
+ /**
124
+ * @default false
125
+ */
126
+ enableAccessibleFieldDOMStructure: _propTypes.default.bool,
122
127
  /**
123
128
  * If `true`, the component is displayed in focused state.
124
129
  */
@@ -252,17 +257,14 @@ process.env.NODE_ENV !== "production" ? SingleInputTimeRangeField.propTypes = {
252
257
  required: _propTypes.default.bool,
253
258
  /**
254
259
  * The currently selected sections.
255
- * This prop accept four formats:
260
+ * This prop accepts four formats:
256
261
  * 1. If a number is provided, the section at this index will be selected.
257
- * 2. If an object with a `startIndex` and `endIndex` properties are provided, the sections between those two indexes will be selected.
258
- * 3. If a string of type `FieldSectionType` is provided, the first section with that name will be selected.
259
- * 4. If `null` is provided, no section will be selected
262
+ * 2. If a string of type `FieldSectionType` is provided, the first section with that name will be selected.
263
+ * 3. If `"all"` is provided, all the sections will be selected.
264
+ * 4. If `null` is provided, no section will be selected.
260
265
  * If not provided, the selected sections will be handled internally.
261
266
  */
262
- selectedSections: _propTypes.default.oneOfType([_propTypes.default.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), _propTypes.default.number, _propTypes.default.shape({
263
- endIndex: _propTypes.default.number.isRequired,
264
- startIndex: _propTypes.default.number.isRequired
265
- })]),
267
+ selectedSections: _propTypes.default.oneOfType([_propTypes.default.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), _propTypes.default.number]),
266
268
  /**
267
269
  * Disable specific time.
268
270
  * @template TDate
@@ -1,27 +1,14 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
- exports.useSingleInputTimeRangeField = exports.useDefaultizedTimeRangeFieldProps = void 0;
8
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
6
+ exports.useSingleInputTimeRangeField = void 0;
9
7
  var _internals = require("@mui/x-date-pickers/internals");
10
8
  var _valueManagers = require("../internals/utils/valueManagers");
11
9
  var _validateTimeRange = require("../internals/utils/validation/validateTimeRange");
12
- const useDefaultizedTimeRangeFieldProps = props => {
13
- const utils = (0, _internals.useUtils)();
14
- const ampm = props.ampm ?? utils.is12HourCycleInCurrentLocale();
15
- const defaultFormat = ampm ? utils.formats.fullTime12h : utils.formats.fullTime24h;
16
- return (0, _extends2.default)({}, props, {
17
- disablePast: props.disablePast ?? false,
18
- disableFuture: props.disableFuture ?? false,
19
- format: props.format ?? defaultFormat
20
- });
21
- };
22
- exports.useDefaultizedTimeRangeFieldProps = useDefaultizedTimeRangeFieldProps;
23
10
  const useSingleInputTimeRangeField = inProps => {
24
- const props = useDefaultizedTimeRangeFieldProps(inProps);
11
+ const props = (0, _internals.useDefaultizedTimeField)(inProps);
25
12
  const {
26
13
  forwardedProps,
27
14
  internalProps
@@ -139,7 +139,6 @@ StaticDateRangePicker.propTypes = {
139
139
  /**
140
140
  * The day view will show as many weeks as needed after the end of the current month to match this value.
141
141
  * Put it to 6 to have a fixed number of weeks in Gregorian calendars
142
- * @default undefined
143
142
  */
144
143
  fixedWeekNumber: _propTypes.default.number,
145
144
  /**
package/node/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-date-pickers-pro v7.0.0-beta.2
2
+ * @mui/x-date-pickers-pro v7.0.0-beta.4
3
3
  *
4
4
  * @license MUI X Commercial
5
5
  * This source code is licensed under the commercial license found in the
@@ -34,6 +34,9 @@ const useDesktopRangePicker = _ref => {
34
34
  sx,
35
35
  format,
36
36
  formatDensity,
37
+ enableAccessibleFieldDOMStructure,
38
+ selectedSections,
39
+ onSelectedSectionsChange,
37
40
  timezone,
38
41
  label,
39
42
  inputRef,
@@ -48,12 +51,14 @@ const useDesktopRangePicker = _ref => {
48
51
  const fieldContainerRef = React.useRef(null);
49
52
  const anchorRef = React.useRef(null);
50
53
  const popperRef = React.useRef(null);
54
+ const startFieldRef = React.useRef(null);
55
+ const endFieldRef = React.useRef(null);
51
56
  const initialView = React.useRef(props.openTo ?? null);
57
+ const fieldType = slots.field.fieldType ?? 'multi-input';
52
58
  const {
53
59
  rangePosition,
54
- onRangePositionChange,
55
- singleInputFieldRef
56
- } = (0, _useRangePosition.useRangePosition)(props);
60
+ onRangePositionChange
61
+ } = (0, _useRangePosition.useRangePosition)(props, fieldType === 'single-input' ? startFieldRef : undefined);
57
62
  const {
58
63
  open,
59
64
  actions,
@@ -65,6 +70,7 @@ const useDesktopRangePicker = _ref => {
65
70
  props,
66
71
  wrapperVariant: 'desktop',
67
72
  autoFocusView: false,
73
+ fieldRef: rangePosition === 'start' ? startFieldRef : endFieldRef,
68
74
  additionalViewProps: {
69
75
  rangePosition,
70
76
  onRangePositionChange
@@ -85,7 +91,6 @@ const useDesktopRangePicker = _ref => {
85
91
  });
86
92
  };
87
93
  const Field = slots.field;
88
- const fieldType = Field.fieldType ?? 'multi-input';
89
94
  const fieldProps = (0, _utils.useSlotProps)({
90
95
  elementType: Field,
91
96
  externalSlotProps: slotProps?.field,
@@ -96,13 +101,16 @@ const useDesktopRangePicker = _ref => {
96
101
  sx,
97
102
  format,
98
103
  formatDensity,
104
+ enableAccessibleFieldDOMStructure,
105
+ selectedSections,
106
+ onSelectedSectionsChange,
99
107
  timezone,
100
108
  autoFocus: autoFocus && !props.open,
101
109
  ref: fieldContainerRef
102
- }, fieldType === 'single-input' && {
110
+ }, inputRef ? {
103
111
  inputRef,
104
112
  name
105
- }),
113
+ } : {}),
106
114
  ownerState: props
107
115
  });
108
116
  const enrichedFieldProps = (0, _useEnrichedRangePickerFieldProps.useEnrichedRangePickerFieldProps)({
@@ -117,11 +125,12 @@ const useDesktopRangePicker = _ref => {
117
125
  onBlur: handleBlur,
118
126
  rangePosition,
119
127
  onRangePositionChange,
120
- singleInputFieldRef,
121
128
  pickerSlotProps: slotProps,
122
129
  pickerSlots: slots,
123
130
  fieldProps,
124
131
  anchorRef,
132
+ startFieldRef,
133
+ endFieldRef,
125
134
  currentView: layoutProps.view !== props.openTo ? layoutProps.view : undefined,
126
135
  initialView: initialView.current ?? undefined,
127
136
  onViewChange: layoutProps.onViewChange
@@ -32,34 +32,32 @@ const useMultiInputFieldSlotProps = ({
32
32
  anchorRef,
33
33
  currentView,
34
34
  initialView,
35
- onViewChange
35
+ onViewChange,
36
+ startFieldRef,
37
+ endFieldRef
36
38
  }) => {
37
39
  const localeText = (0, _internals.useLocaleText)();
38
- const startRef = React.useRef(null);
39
- const endRef = React.useRef(null);
40
- const startFieldRef = React.useRef(null);
41
- const endFieldRef = React.useRef(null);
42
40
  const handleStartFieldRef = (0, _useForkRef.default)(fieldProps.unstableStartFieldRef, startFieldRef);
43
- const handleEndFieldRef = (0, _useForkRef.default)(fieldProps.unstableFieldRef, endFieldRef);
41
+ const handleEndFieldRef = (0, _useForkRef.default)(fieldProps.unstableEndFieldRef, endFieldRef);
44
42
  const previousRangePosition = React.useRef(rangePosition);
45
43
  React.useEffect(() => {
46
44
  if (!open) {
47
45
  return;
48
46
  }
49
- const currentRef = rangePosition === 'start' ? startRef : endRef;
50
- currentRef.current?.focus();
51
47
  const currentFieldRef = rangePosition === 'start' ? startFieldRef : endFieldRef;
48
+ currentFieldRef.current?.focusField();
52
49
  if (!currentFieldRef.current || !currentView) {
53
50
  // could happen when the user is switching between the inputs
54
51
  previousRangePosition.current = rangePosition;
55
52
  return;
56
53
  }
54
+
57
55
  // bring back focus to the field
58
56
  currentFieldRef.current.setSelectedSections(
59
57
  // use the current view or `0` when the range position has just been swapped
60
58
  previousRangePosition.current === rangePosition ? currentView : 0);
61
59
  previousRangePosition.current = rangePosition;
62
- }, [rangePosition, open, currentView]);
60
+ }, [rangePosition, open, currentView, startFieldRef, endFieldRef]);
63
61
  const openRangeStartSelection = event => {
64
62
  event.stopPropagation();
65
63
  onRangePositionChange('start');
@@ -98,11 +96,10 @@ const useMultiInputFieldSlotProps = ({
98
96
  const slotProps = (0, _extends2.default)({}, fieldProps.slotProps, {
99
97
  textField: ownerState => {
100
98
  const resolvedComponentProps = (0, _utils.resolveComponentProps)(pickerSlotProps?.textField, ownerState);
101
- let inputProps;
99
+ let textFieldProps;
102
100
  let InputProps;
103
101
  if (ownerState.position === 'start') {
104
- inputProps = (0, _extends2.default)({
105
- inputRef: startRef,
102
+ textFieldProps = (0, _extends2.default)({
106
103
  label: inLocaleText?.start ?? localeText.start,
107
104
  onKeyDown: (0, _internals.onSpaceOrEnter)(openRangeStartSelection),
108
105
  onFocus: handleFocusStart,
@@ -118,8 +115,7 @@ const useMultiInputFieldSlotProps = ({
118
115
  });
119
116
  }
120
117
  } else {
121
- inputProps = (0, _extends2.default)({
122
- inputRef: endRef,
118
+ textFieldProps = (0, _extends2.default)({
123
119
  label: inLocaleText?.end ?? localeText.end,
124
120
  onKeyDown: (0, _internals.onSpaceOrEnter)(openRangeEndSelection),
125
121
  onFocus: handleFocusEnd,
@@ -133,7 +129,7 @@ const useMultiInputFieldSlotProps = ({
133
129
  }
134
130
  return (0, _extends2.default)({}, labelId != null && {
135
131
  id: `${labelId}-${ownerState.position}`
136
- }, inputProps, (0, _utils.resolveComponentProps)(pickerSlotProps?.textField, ownerState), {
132
+ }, textFieldProps, (0, _utils.resolveComponentProps)(pickerSlotProps?.textField, ownerState), {
137
133
  InputProps
138
134
  });
139
135
  },
@@ -147,12 +143,13 @@ const useMultiInputFieldSlotProps = ({
147
143
  });
148
144
 
149
145
  /* TODO: remove this when a clearable behavior for multiple input range fields is implemented */
150
- const restFieldProps = (0, _objectWithoutPropertiesLoose2.default)(fieldProps, _excluded);
146
+ const _ref = fieldProps,
147
+ restFieldProps = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
151
148
  const enrichedFieldProps = (0, _extends2.default)({}, restFieldProps, {
152
- slots,
153
- slotProps,
154
149
  unstableStartFieldRef: handleStartFieldRef,
155
- unstableEndFieldRef: handleEndFieldRef
150
+ unstableEndFieldRef: handleEndFieldRef,
151
+ slots,
152
+ slotProps
156
153
  });
157
154
  return enrichedFieldProps;
158
155
  };
@@ -161,49 +158,50 @@ const useSingleInputFieldSlotProps = ({
161
158
  open,
162
159
  actions,
163
160
  readOnly,
164
- inputRef: inInputRef,
165
161
  labelId,
166
162
  disableOpenPicker,
167
163
  label,
168
164
  onBlur,
169
165
  rangePosition,
170
166
  onRangePositionChange,
171
- singleInputFieldRef,
167
+ startFieldRef,
168
+ endFieldRef,
172
169
  pickerSlots,
173
170
  pickerSlotProps,
174
171
  fieldProps,
175
172
  anchorRef,
176
173
  currentView
177
174
  }) => {
178
- const inputRef = React.useRef(null);
179
- const handleInputRef = (0, _useForkRef.default)(inInputRef, inputRef);
180
- const handleFieldRef = (0, _useForkRef.default)(fieldProps.unstableFieldRef, singleInputFieldRef);
175
+ const handleFieldRef = (0, _useForkRef.default)(fieldProps.unstableFieldRef, startFieldRef, endFieldRef);
181
176
  React.useEffect(() => {
182
- if (!open) {
177
+ if (!open || !startFieldRef.current) {
183
178
  return;
184
179
  }
185
- inputRef.current?.focus();
186
- if (!singleInputFieldRef.current || !currentView) {
180
+ if (startFieldRef.current.isFieldFocused()) {
187
181
  return;
188
182
  }
189
- const sections = singleInputFieldRef.current.getSections().map(section => section.type);
183
+
190
184
  // bring back focus to the field with the current view section selected
191
- singleInputFieldRef.current.setSelectedSections(rangePosition === 'start' ? sections.indexOf(currentView) : sections.lastIndexOf(currentView));
192
- }, [rangePosition, open, currentView, singleInputFieldRef]);
185
+ if (currentView) {
186
+ const sections = startFieldRef.current.getSections().map(section => section.type);
187
+ const newSelectedSection = rangePosition === 'start' ? sections.indexOf(currentView) : sections.lastIndexOf(currentView);
188
+ startFieldRef.current?.focusField(newSelectedSection);
189
+ }
190
+ }, [rangePosition, open, currentView, startFieldRef]);
193
191
  const updateRangePosition = () => {
194
- if (!singleInputFieldRef.current || inputRef.current !== (0, _internals.getActiveElement)(document)) {
192
+ if (!startFieldRef.current?.isFieldFocused()) {
195
193
  return;
196
194
  }
197
- const sections = singleInputFieldRef.current.getSections();
198
- const activeSectionIndex = singleInputFieldRef.current?.getActiveSectionIndex();
195
+ const sections = startFieldRef.current.getSections();
196
+ const activeSectionIndex = startFieldRef.current?.getActiveSectionIndex();
199
197
  const domRangePosition = activeSectionIndex == null || activeSectionIndex < sections.length / 2 ? 'start' : 'end';
200
198
  if (domRangePosition != null && domRangePosition !== rangePosition) {
201
199
  onRangePositionChange(domRangePosition);
202
200
  }
203
201
  };
204
- const handleSelectedSectionsChange = (0, _useEventCallback.default)(selectedSections => {
202
+ const handleSelectedSectionsChange = (0, _useEventCallback.default)(selectedSection => {
205
203
  setTimeout(updateRangePosition);
206
- fieldProps.onSelectedSectionsChange?.(selectedSections);
204
+ fieldProps.onSelectedSectionsChange?.(selectedSection);
207
205
  });
208
206
  const openPicker = event => {
209
207
  event.stopPropagation();
@@ -226,7 +224,6 @@ const useSingleInputFieldSlotProps = ({
226
224
  slotProps,
227
225
  label,
228
226
  unstableFieldRef: handleFieldRef,
229
- inputRef: handleInputRef,
230
227
  onKeyDown: (0, _internals.onSpaceOrEnter)(openPicker, fieldProps.onKeyDown),
231
228
  onSelectedSectionsChange: handleSelectedSectionsChange,
232
229
  onBlur,