@mui/x-date-pickers-pro 8.0.0-alpha.0 → 8.0.0-alpha.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (292) 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 +2215 -119
  8. package/DateRangeCalendar/DateRangeCalendar.js +18 -14
  9. package/DateRangePicker/DateRangePicker.js +1 -4
  10. package/DateRangePicker/DateRangePicker.types.d.ts +6 -2
  11. package/DateRangePicker/DateRangePickerToolbar.d.ts +2 -3
  12. package/DateRangePicker/DateRangePickerToolbar.js +33 -53
  13. package/DateRangePicker/shared.d.ts +4 -3
  14. package/DateTimeRangePicker/DateTimeRangePicker.js +2 -5
  15. package/DateTimeRangePicker/DateTimeRangePicker.types.d.ts +1 -2
  16. package/DateTimeRangePicker/DateTimeRangePickerTabs.d.ts +4 -5
  17. package/DateTimeRangePicker/DateTimeRangePickerTabs.js +35 -33
  18. package/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.d.ts +8 -10
  19. package/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +8 -6
  20. package/DateTimeRangePicker/DateTimeRangePickerToolbar.d.ts +2 -5
  21. package/DateTimeRangePicker/DateTimeRangePickerToolbar.js +85 -123
  22. package/DateTimeRangePicker/shared.d.ts +6 -5
  23. package/DesktopDateRangePicker/DesktopDateRangePicker.js +11 -9
  24. package/DesktopDateRangePicker/DesktopDateRangePicker.types.d.ts +7 -2
  25. package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +20 -22
  26. package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.types.d.ts +2 -3
  27. package/MobileDateRangePicker/MobileDateRangePicker.js +4 -8
  28. package/MobileDateRangePicker/MobileDateRangePicker.types.d.ts +2 -2
  29. package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +18 -16
  30. package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.types.d.ts +2 -3
  31. package/MultiInputDateRangeField/MultiInputDateRangeField.d.ts +9 -4
  32. package/MultiInputDateRangeField/MultiInputDateRangeField.js +15 -121
  33. package/MultiInputDateRangeField/index.d.ts +5 -3
  34. package/MultiInputDateRangeField/index.js +2 -2
  35. package/MultiInputDateRangeField/multiInputDateRangeFieldClasses.d.ts +6 -0
  36. package/MultiInputDateRangeField/multiInputDateRangeFieldClasses.js +4 -0
  37. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.d.ts +9 -4
  38. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +15 -121
  39. package/MultiInputDateTimeRangeField/index.d.ts +5 -3
  40. package/MultiInputDateTimeRangeField/index.js +2 -2
  41. package/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.d.ts +6 -0
  42. package/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.js +4 -0
  43. package/MultiInputTimeRangeField/MultiInputTimeRangeField.d.ts +9 -4
  44. package/MultiInputTimeRangeField/MultiInputTimeRangeField.js +16 -122
  45. package/MultiInputTimeRangeField/index.d.ts +5 -3
  46. package/MultiInputTimeRangeField/index.js +2 -2
  47. package/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.d.ts +6 -0
  48. package/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.js +4 -0
  49. package/README.md +10 -7
  50. package/SingleInputDateRangeField/SingleInputDateRangeField.js +23 -33
  51. package/SingleInputDateRangeField/SingleInputDateRangeField.types.d.ts +6 -16
  52. package/SingleInputDateRangeField/useSingleInputDateRangeField.d.ts +1 -1
  53. package/SingleInputDateRangeField/useSingleInputDateRangeField.js +14 -14
  54. package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +23 -33
  55. package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.types.d.ts +6 -17
  56. package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.d.ts +1 -1
  57. package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +14 -14
  58. package/SingleInputTimeRangeField/SingleInputTimeRangeField.js +23 -33
  59. package/SingleInputTimeRangeField/SingleInputTimeRangeField.types.d.ts +6 -17
  60. package/SingleInputTimeRangeField/useSingleInputTimeRangeField.d.ts +1 -1
  61. package/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +14 -14
  62. package/StaticDateRangePicker/StaticDateRangePicker.js +2 -2
  63. package/StaticDateRangePicker/StaticDateRangePicker.types.d.ts +2 -2
  64. package/dateRangeViewRenderers/dateRangeViewRenderers.d.ts +2 -2
  65. package/dateRangeViewRenderers/dateRangeViewRenderers.js +0 -6
  66. package/hooks/index.d.ts +2 -0
  67. package/hooks/index.js +2 -0
  68. package/hooks/package.json +6 -0
  69. package/hooks/useMultiInputRangeField/index.d.ts +1 -0
  70. package/hooks/useMultiInputRangeField/index.js +1 -0
  71. package/hooks/useMultiInputRangeField/useMultiInputRangeField.d.ts +53 -0
  72. package/hooks/useMultiInputRangeField/useMultiInputRangeField.js +149 -0
  73. package/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.d.ts +17 -0
  74. package/{modern/internals/hooks/useMultiInputFieldSelectedSections.js → hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js} +10 -8
  75. package/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.d.ts +17 -0
  76. package/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +59 -0
  77. package/hooks/usePickerRangePositionContext.d.ts +7 -0
  78. package/hooks/usePickerRangePositionContext.js +15 -0
  79. package/index.d.ts +2 -0
  80. package/index.js +4 -2
  81. package/internals/hooks/models/index.d.ts +1 -1
  82. package/internals/hooks/models/useRangePicker.d.ts +8 -11
  83. package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +70 -102
  84. package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.types.d.ts +8 -10
  85. package/internals/hooks/{useEnrichedRangePickerFieldProps.d.ts → useEnrichedRangePickerField.d.ts} +26 -17
  86. package/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +55 -68
  87. package/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +59 -82
  88. package/internals/hooks/useMobileRangePicker/useMobileRangePicker.types.d.ts +7 -9
  89. package/internals/hooks/useNullablePickerRangePositionContext.d.ts +5 -0
  90. package/internals/hooks/useNullablePickerRangePositionContext.js +10 -0
  91. package/internals/hooks/useRangePosition.d.ts +4 -3
  92. package/internals/hooks/useRangePosition.js +1 -1
  93. package/internals/hooks/useStaticRangePicker/useStaticRangePicker.d.ts +1 -1
  94. package/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +18 -31
  95. package/internals/hooks/useStaticRangePicker/useStaticRangePicker.types.d.ts +6 -12
  96. package/internals/models/dateTimeRange.d.ts +1 -6
  97. package/internals/models/fields.d.ts +7 -11
  98. package/internals/models/index.d.ts +0 -1
  99. package/internals/models/index.js +0 -1
  100. package/internals/models/managers.d.ts +3 -0
  101. package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.d.ts +3 -0
  102. package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +136 -0
  103. package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.d.ts +72 -0
  104. package/internals/utils/createMultiInputRangeField/index.d.ts +3 -0
  105. package/internals/utils/createMultiInputRangeField/index.js +2 -0
  106. package/internals/utils/date-fields-utils.d.ts +6 -6
  107. package/internals/utils/date-range-manager.d.ts +2 -1
  108. package/internals/utils/date-range-manager.js +13 -10
  109. package/internals/utils/releaseInfo.js +1 -1
  110. package/internals/utils/valueManagers.d.ts +4 -3
  111. package/internals/utils/valueManagers.js +7 -7
  112. package/managers/index.d.ts +6 -0
  113. package/managers/index.js +3 -0
  114. package/managers/package.json +6 -0
  115. package/managers/useDateRangeManager.d.ts +15 -0
  116. package/managers/useDateRangeManager.js +33 -0
  117. package/managers/useDateTimeRangeManager.d.ts +15 -0
  118. package/managers/useDateTimeRangeManager.js +33 -0
  119. package/managers/useTimeRangeManager.d.ts +15 -0
  120. package/managers/useTimeRangeManager.js +31 -0
  121. package/models/fields.d.ts +7 -11
  122. package/models/index.d.ts +1 -2
  123. package/models/index.js +1 -2
  124. package/models/range.d.ts +0 -2
  125. package/modern/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.js +1 -1
  126. package/modern/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.js +1 -1
  127. package/modern/DateRangeCalendar/DateRangeCalendar.js +18 -14
  128. package/modern/DateRangePicker/DateRangePicker.js +1 -4
  129. package/modern/DateRangePicker/DateRangePickerToolbar.js +33 -53
  130. package/modern/DateTimeRangePicker/DateTimeRangePicker.js +2 -5
  131. package/modern/DateTimeRangePicker/DateTimeRangePickerTabs.js +35 -33
  132. package/modern/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +8 -6
  133. package/modern/DateTimeRangePicker/DateTimeRangePickerToolbar.js +85 -123
  134. package/modern/DesktopDateRangePicker/DesktopDateRangePicker.js +11 -9
  135. package/modern/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +20 -22
  136. package/modern/MobileDateRangePicker/MobileDateRangePicker.js +4 -8
  137. package/modern/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +18 -16
  138. package/modern/MultiInputDateRangeField/MultiInputDateRangeField.js +15 -121
  139. package/modern/MultiInputDateRangeField/index.js +2 -2
  140. package/modern/MultiInputDateRangeField/multiInputDateRangeFieldClasses.js +4 -0
  141. package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +15 -121
  142. package/modern/MultiInputDateTimeRangeField/index.js +2 -2
  143. package/modern/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.js +4 -0
  144. package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.js +16 -122
  145. package/modern/MultiInputTimeRangeField/index.js +2 -2
  146. package/modern/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.js +4 -0
  147. package/modern/SingleInputDateRangeField/SingleInputDateRangeField.js +23 -33
  148. package/modern/SingleInputDateRangeField/useSingleInputDateRangeField.js +14 -14
  149. package/modern/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +23 -33
  150. package/modern/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +14 -14
  151. package/modern/SingleInputTimeRangeField/SingleInputTimeRangeField.js +23 -33
  152. package/modern/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +14 -14
  153. package/modern/StaticDateRangePicker/StaticDateRangePicker.js +2 -2
  154. package/modern/dateRangeViewRenderers/dateRangeViewRenderers.js +0 -6
  155. package/modern/hooks/index.js +2 -0
  156. package/modern/hooks/useMultiInputRangeField/index.js +1 -0
  157. package/modern/hooks/useMultiInputRangeField/useMultiInputRangeField.js +149 -0
  158. package/{internals/hooks/useMultiInputFieldSelectedSections.js → modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js} +10 -8
  159. package/modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +59 -0
  160. package/modern/hooks/usePickerRangePositionContext.js +15 -0
  161. package/modern/index.js +4 -2
  162. package/modern/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +70 -102
  163. package/modern/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +55 -68
  164. package/modern/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +59 -82
  165. package/modern/internals/hooks/useNullablePickerRangePositionContext.js +10 -0
  166. package/modern/internals/hooks/useRangePosition.js +1 -1
  167. package/modern/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +18 -31
  168. package/modern/internals/models/index.js +0 -1
  169. package/modern/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +136 -0
  170. package/modern/internals/utils/createMultiInputRangeField/index.js +2 -0
  171. package/modern/internals/utils/date-range-manager.js +13 -10
  172. package/modern/internals/utils/releaseInfo.js +1 -1
  173. package/modern/internals/utils/valueManagers.js +7 -7
  174. package/modern/managers/index.js +3 -0
  175. package/modern/managers/useDateRangeManager.js +33 -0
  176. package/modern/managers/useDateTimeRangeManager.js +33 -0
  177. package/modern/managers/useTimeRangeManager.js +31 -0
  178. package/modern/models/index.js +1 -2
  179. package/modern/validation/validateDateRange.js +8 -0
  180. package/modern/validation/validateDateTimeRange.js +4 -0
  181. package/modern/validation/validateTimeRange.js +8 -0
  182. package/node/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.js +1 -1
  183. package/node/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.js +1 -1
  184. package/node/DateRangeCalendar/DateRangeCalendar.js +17 -13
  185. package/node/DateRangePicker/DateRangePicker.js +1 -4
  186. package/node/DateRangePicker/DateRangePickerToolbar.js +31 -51
  187. package/node/DateTimeRangePicker/DateTimeRangePicker.js +2 -5
  188. package/node/DateTimeRangePicker/DateTimeRangePickerTabs.js +33 -31
  189. package/node/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +8 -6
  190. package/node/DateTimeRangePicker/DateTimeRangePickerToolbar.js +83 -121
  191. package/node/DesktopDateRangePicker/DesktopDateRangePicker.js +11 -9
  192. package/node/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +20 -22
  193. package/node/MobileDateRangePicker/MobileDateRangePicker.js +4 -8
  194. package/node/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +18 -16
  195. package/node/MultiInputDateRangeField/MultiInputDateRangeField.js +14 -124
  196. package/node/MultiInputDateRangeField/index.js +3 -9
  197. package/node/MultiInputDateRangeField/multiInputDateRangeFieldClasses.js +12 -0
  198. package/node/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +14 -124
  199. package/node/MultiInputDateTimeRangeField/index.js +3 -9
  200. package/node/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.js +12 -0
  201. package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.js +15 -125
  202. package/node/MultiInputTimeRangeField/index.js +3 -9
  203. package/node/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.js +12 -0
  204. package/node/SingleInputDateRangeField/SingleInputDateRangeField.js +22 -32
  205. package/node/SingleInputDateRangeField/useSingleInputDateRangeField.js +13 -14
  206. package/node/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +22 -32
  207. package/node/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +13 -14
  208. package/node/SingleInputTimeRangeField/SingleInputTimeRangeField.js +22 -32
  209. package/node/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +13 -14
  210. package/node/StaticDateRangePicker/StaticDateRangePicker.js +2 -2
  211. package/node/dateRangeViewRenderers/dateRangeViewRenderers.js +0 -6
  212. package/node/hooks/index.js +19 -0
  213. package/node/hooks/useMultiInputRangeField/index.js +12 -0
  214. package/node/hooks/useMultiInputRangeField/useMultiInputRangeField.js +155 -0
  215. package/node/{internals/hooks/useMultiInputFieldSelectedSections.js → hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js} +11 -10
  216. package/node/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +66 -0
  217. package/node/hooks/usePickerRangePositionContext.js +22 -0
  218. package/node/index.js +23 -1
  219. package/node/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +70 -102
  220. package/node/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +57 -70
  221. package/node/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +59 -82
  222. package/node/internals/hooks/useNullablePickerRangePositionContext.js +16 -0
  223. package/node/internals/hooks/useRangePosition.js +1 -1
  224. package/node/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +17 -30
  225. package/node/internals/models/index.js +0 -11
  226. package/node/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +143 -0
  227. package/node/internals/utils/createMultiInputRangeField/index.js +19 -0
  228. package/node/internals/utils/date-range-manager.js +13 -10
  229. package/node/internals/utils/releaseInfo.js +1 -1
  230. package/node/internals/utils/valueManagers.js +7 -7
  231. package/node/managers/index.js +26 -0
  232. package/node/managers/useDateRangeManager.js +40 -0
  233. package/node/managers/useDateTimeRangeManager.js +40 -0
  234. package/node/managers/useTimeRangeManager.js +38 -0
  235. package/node/models/index.js +0 -22
  236. package/node/validation/validateDateRange.js +8 -0
  237. package/node/validation/validateDateTimeRange.js +4 -0
  238. package/node/validation/validateTimeRange.js +8 -0
  239. package/package.json +8 -8
  240. package/themeAugmentation/overrides.d.ts +6 -4
  241. package/themeAugmentation/props.d.ts +2 -2
  242. package/validation/validateDateRange.d.ts +9 -1
  243. package/validation/validateDateRange.js +8 -0
  244. package/validation/validateDateTimeRange.d.ts +6 -2
  245. package/validation/validateDateTimeRange.js +4 -0
  246. package/validation/validateTimeRange.d.ts +9 -1
  247. package/validation/validateTimeRange.js +8 -0
  248. package/MultiInputDateRangeField/MultiInputDateRangeField.types.d.ts +0 -53
  249. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.d.ts +0 -54
  250. package/MultiInputTimeRangeField/MultiInputTimeRangeField.types.d.ts +0 -54
  251. package/internals/hooks/useMultiInputFieldSelectedSections.d.ts +0 -21
  252. package/internals/hooks/useMultiInputRangeField/shared.d.ts +0 -1
  253. package/internals/hooks/useMultiInputRangeField/shared.js +0 -9
  254. package/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.d.ts +0 -3
  255. package/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +0 -111
  256. package/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.d.ts +0 -3
  257. package/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -111
  258. package/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.d.ts +0 -11
  259. package/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.d.ts +0 -3
  260. package/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +0 -111
  261. package/internals/models/timeRange.d.ts +0 -6
  262. package/internals/models/timeRange.js +0 -1
  263. package/models/dateRange.d.ts +0 -7
  264. package/models/dateRange.js +0 -1
  265. package/models/multiInputRangeFieldClasses.d.ts +0 -7
  266. package/models/multiInputRangeFieldClasses.js +0 -1
  267. package/modern/MultiInputDateRangeField/MultiInputDateRangeField.types.js +0 -1
  268. package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.js +0 -1
  269. package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.types.js +0 -1
  270. package/modern/internals/hooks/useMultiInputRangeField/shared.js +0 -9
  271. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +0 -111
  272. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -111
  273. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.js +0 -1
  274. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +0 -111
  275. package/modern/internals/models/timeRange.js +0 -1
  276. package/modern/models/dateRange.js +0 -1
  277. package/modern/models/multiInputRangeFieldClasses.js +0 -1
  278. package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.types.js +0 -5
  279. package/node/internals/hooks/useMultiInputRangeField/shared.js +0 -16
  280. package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +0 -119
  281. package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -119
  282. package/node/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.js +0 -5
  283. package/node/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +0 -119
  284. package/node/internals/models/timeRange.js +0 -5
  285. package/node/models/dateRange.js +0 -5
  286. package/node/models/multiInputRangeFieldClasses.js +0 -5
  287. /package/{MultiInputDateRangeField/MultiInputDateRangeField.types.js → internals/models/managers.js} +0 -0
  288. /package/{MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.js → internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.js} +0 -0
  289. /package/{MultiInputTimeRangeField/MultiInputTimeRangeField.types.js → modern/internals/models/managers.js} +0 -0
  290. /package/{internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.js → modern/internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.js} +0 -0
  291. /package/node/{MultiInputDateRangeField/MultiInputDateRangeField.types.js → internals/models/managers.js} +0 -0
  292. /package/node/{MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.js → internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.js} +0 -0
@@ -7,20 +7,16 @@ Object.defineProperty(exports, "__esModule", {
7
7
  value: true
8
8
  });
9
9
  exports.SingleInputDateTimeRangeField = void 0;
10
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
10
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
12
11
  var React = _interopRequireWildcard(require("react"));
13
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
14
- var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
13
+ var _icons = require("@mui/x-date-pickers/icons");
15
14
  var _internals = require("@mui/x-date-pickers/internals");
16
- var _PickersTextField = require("@mui/x-date-pickers/PickersTextField");
17
15
  var _styles = require("@mui/material/styles");
18
16
  var _utils = require("@mui/utils");
19
- var _useSlotProps = _interopRequireDefault(require("@mui/utils/useSlotProps"));
20
- var _hooks = require("@mui/x-date-pickers/hooks");
21
17
  var _useSingleInputDateTimeRangeField = require("./useSingleInputDateTimeRangeField");
22
18
  var _jsxRuntime = require("react/jsx-runtime");
23
- const _excluded = ["slots", "slotProps", "InputProps", "inputProps"];
19
+ const _excluded = ["slots", "slotProps"];
24
20
  /**
25
21
  * Demos:
26
22
  *
@@ -38,33 +34,21 @@ const SingleInputDateTimeRangeField = exports.SingleInputDateTimeRangeField = /*
38
34
  });
39
35
  const {
40
36
  slots,
41
- slotProps,
42
- InputProps,
43
- inputProps
37
+ slotProps
44
38
  } = themeProps,
45
39
  other = (0, _objectWithoutPropertiesLoose2.default)(themeProps, _excluded);
46
- const ownerState = themeProps;
47
- const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure === false ? _TextField.default : _PickersTextField.PickersTextField);
48
- const textFieldProps = (0, _useSlotProps.default)({
49
- elementType: TextField,
50
- externalSlotProps: slotProps?.textField,
51
- externalForwardedProps: other,
52
- ownerState,
53
- additionalProps: {
54
- ref: inRef
55
- }
40
+ const textFieldProps = (0, _internals.useFieldTextFieldProps)({
41
+ slotProps,
42
+ ref: inRef,
43
+ externalForwardedProps: other
56
44
  });
57
-
58
- // TODO: Remove when mui/material-ui#35088 will be merged
59
- textFieldProps.inputProps = (0, _extends2.default)({}, inputProps, textFieldProps.inputProps);
60
- textFieldProps.InputProps = (0, _extends2.default)({}, InputProps, textFieldProps.InputProps);
61
45
  const fieldResponse = (0, _useSingleInputDateTimeRangeField.useSingleInputDateTimeRangeField)(textFieldProps);
62
- const convertedFieldResponse = (0, _internals.convertFieldResponseIntoMuiTextFieldProps)(fieldResponse);
63
- const processedFieldProps = (0, _hooks.useClearableField)((0, _extends2.default)({}, convertedFieldResponse, {
64
- slots,
65
- slotProps
66
- }));
67
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(TextField, (0, _extends2.default)({}, processedFieldProps));
46
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.PickerFieldUI, {
47
+ slots: slots,
48
+ slotProps: slotProps,
49
+ fieldResponse: fieldResponse,
50
+ defaultOpenPickerIcon: _icons.DateRangeIcon
51
+ });
68
52
  });
69
53
  SingleInputDateTimeRangeField.fieldType = 'single-input';
70
54
  process.env.NODE_ENV !== "production" ? SingleInputDateTimeRangeField.propTypes = {
@@ -88,6 +72,12 @@ process.env.NODE_ENV !== "production" ? SingleInputDateTimeRangeField.propTypes
88
72
  * @default false
89
73
  */
90
74
  clearable: _propTypes.default.bool,
75
+ /**
76
+ * The position at which the clear button is placed.
77
+ * If the field is not clearable, the button is not rendered.
78
+ * @default 'end'
79
+ */
80
+ clearButtonPosition: _propTypes.default.oneOf(['end', 'start']),
91
81
  /**
92
82
  * The color of the component.
93
83
  * It supports both default and custom theme colors, which can be added as shown in the
@@ -309,10 +299,10 @@ process.env.NODE_ENV !== "production" ? SingleInputDateTimeRangeField.propTypes
309
299
  */
310
300
  shouldDisableTime: _propTypes.default.func,
311
301
  /**
312
- * If `true`, the format will respect the leading zeroes (e.g: on dayjs, the format `M/D/YYYY` will render `8/16/2018`)
313
- * If `false`, the format will always add leading zeroes (e.g: on dayjs, the format `M/D/YYYY` will render `08/16/2018`)
302
+ * If `true`, the format will respect the leading zeroes (for example on dayjs, the format `M/D/YYYY` will render `8/16/2018`)
303
+ * If `false`, the format will always add leading zeroes (for example on dayjs, the format `M/D/YYYY` will render `08/16/2018`)
314
304
  *
315
- * Warning n°1: Luxon is not able to respect the leading zeroes when using macro tokens (e.g: "DD"), so `shouldRespectLeadingZeros={true}` might lead to inconsistencies when using `AdapterLuxon`.
305
+ * Warning n°1: Luxon is not able to respect the leading zeroes when using macro tokens (for example "DD"), so `shouldRespectLeadingZeros={true}` might lead to inconsistencies when using `AdapterLuxon`.
316
306
  *
317
307
  * Warning n°2: When `shouldRespectLeadingZeros={true}`, the field will add an invisible character on the sections containing a single digit to make sure `onChange` is fired.
318
308
  * If you need to get the clean value from the input, you can remove this character using `input.value.replace(/\u200e/g, '')`.
@@ -1,32 +1,31 @@
1
1
  "use strict";
2
2
  'use client';
3
3
 
4
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.useSingleInputDateTimeRangeField = void 0;
9
- var React = _interopRequireWildcard(require("react"));
10
8
  var _internals = require("@mui/x-date-pickers/internals");
11
9
  var _hooks = require("@mui/x-date-pickers/hooks");
12
- var _valueManagers = require("../internals/utils/valueManagers");
13
- var _validation = require("../validation");
14
- const useSingleInputDateTimeRangeField = inProps => {
15
- const props = (0, _internals.useDefaultizedDateTimeField)(inProps);
10
+ var _managers = require("../managers");
11
+ const useSingleInputDateTimeRangeField = props => {
12
+ const manager = (0, _managers.useDateTimeRangeManager)(props);
16
13
  const {
17
14
  forwardedProps,
18
15
  internalProps
19
16
  } = (0, _hooks.useSplitFieldProps)(props, 'date-time');
20
- const fieldValueManager = React.useMemo(() => (0, _valueManagers.getRangeFieldValueManager)({
21
- dateSeparator: internalProps.dateSeparator
22
- }), [internalProps.dateSeparator]);
17
+ const internalPropsWithDefaults = (0, _internals.useFieldInternalPropsWithDefaults)({
18
+ manager,
19
+ internalProps
20
+ });
23
21
  return (0, _internals.useField)({
24
22
  forwardedProps,
25
- internalProps,
26
- valueManager: _valueManagers.rangeValueManager,
27
- fieldValueManager,
28
- validator: _validation.validateDateTimeRange,
29
- valueType: 'date-time'
23
+ internalProps: internalPropsWithDefaults,
24
+ valueManager: manager.internal_valueManager,
25
+ fieldValueManager: manager.internal_fieldValueManager,
26
+ validator: manager.validator,
27
+ valueType: manager.valueType,
28
+ getOpenPickerButtonAriaLabel: manager.internal_getOpenPickerButtonAriaLabel
30
29
  });
31
30
  };
32
31
  exports.useSingleInputDateTimeRangeField = useSingleInputDateTimeRangeField;
@@ -7,20 +7,16 @@ Object.defineProperty(exports, "__esModule", {
7
7
  value: true
8
8
  });
9
9
  exports.SingleInputTimeRangeField = void 0;
10
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
10
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
12
11
  var React = _interopRequireWildcard(require("react"));
13
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
14
- var _TextField = _interopRequireDefault(require("@mui/material/TextField"));
15
- var _hooks = require("@mui/x-date-pickers/hooks");
13
+ var _icons = require("@mui/x-date-pickers/icons");
16
14
  var _internals = require("@mui/x-date-pickers/internals");
17
- var _PickersTextField = require("@mui/x-date-pickers/PickersTextField");
18
15
  var _styles = require("@mui/material/styles");
19
- var _useSlotProps = _interopRequireDefault(require("@mui/utils/useSlotProps"));
20
16
  var _utils = require("@mui/utils");
21
17
  var _useSingleInputTimeRangeField = require("./useSingleInputTimeRangeField");
22
18
  var _jsxRuntime = require("react/jsx-runtime");
23
- const _excluded = ["slots", "slotProps", "InputProps", "inputProps"];
19
+ const _excluded = ["slots", "slotProps"];
24
20
  /**
25
21
  * Demos:
26
22
  *
@@ -38,33 +34,21 @@ const SingleInputTimeRangeField = exports.SingleInputTimeRangeField = /*#__PURE_
38
34
  });
39
35
  const {
40
36
  slots,
41
- slotProps,
42
- InputProps,
43
- inputProps
37
+ slotProps
44
38
  } = themeProps,
45
39
  other = (0, _objectWithoutPropertiesLoose2.default)(themeProps, _excluded);
46
- const ownerState = themeProps;
47
- const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure === false ? _TextField.default : _PickersTextField.PickersTextField);
48
- const textFieldProps = (0, _useSlotProps.default)({
49
- elementType: TextField,
50
- externalSlotProps: slotProps?.textField,
51
- externalForwardedProps: other,
52
- ownerState,
53
- additionalProps: {
54
- ref: inRef
55
- }
40
+ const textFieldProps = (0, _internals.useFieldTextFieldProps)({
41
+ slotProps,
42
+ ref: inRef,
43
+ externalForwardedProps: other
56
44
  });
57
-
58
- // TODO: Remove when mui/material-ui#35088 will be merged
59
- textFieldProps.inputProps = (0, _extends2.default)({}, inputProps, textFieldProps.inputProps);
60
- textFieldProps.InputProps = (0, _extends2.default)({}, InputProps, textFieldProps.InputProps);
61
45
  const fieldResponse = (0, _useSingleInputTimeRangeField.useSingleInputTimeRangeField)(textFieldProps);
62
- const convertedFieldResponse = (0, _internals.convertFieldResponseIntoMuiTextFieldProps)(fieldResponse);
63
- const processedFieldProps = (0, _hooks.useClearableField)((0, _extends2.default)({}, convertedFieldResponse, {
64
- slots,
65
- slotProps
66
- }));
67
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(TextField, (0, _extends2.default)({}, processedFieldProps));
46
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.PickerFieldUI, {
47
+ slots: slots,
48
+ slotProps: slotProps,
49
+ fieldResponse: fieldResponse,
50
+ defaultOpenPickerIcon: _icons.ClockIcon
51
+ });
68
52
  });
69
53
  SingleInputTimeRangeField.fieldType = 'single-input';
70
54
  process.env.NODE_ENV !== "production" ? SingleInputTimeRangeField.propTypes = {
@@ -88,6 +72,12 @@ process.env.NODE_ENV !== "production" ? SingleInputTimeRangeField.propTypes = {
88
72
  * @default false
89
73
  */
90
74
  clearable: _propTypes.default.bool,
75
+ /**
76
+ * The position at which the clear button is placed.
77
+ * If the field is not clearable, the button is not rendered.
78
+ * @default 'end'
79
+ */
80
+ clearButtonPosition: _propTypes.default.oneOf(['end', 'start']),
91
81
  /**
92
82
  * The color of the component.
93
83
  * It supports both default and custom theme colors, which can be added as shown in the
@@ -281,10 +271,10 @@ process.env.NODE_ENV !== "production" ? SingleInputTimeRangeField.propTypes = {
281
271
  */
282
272
  shouldDisableTime: _propTypes.default.func,
283
273
  /**
284
- * If `true`, the format will respect the leading zeroes (e.g: on dayjs, the format `M/D/YYYY` will render `8/16/2018`)
285
- * If `false`, the format will always add leading zeroes (e.g: on dayjs, the format `M/D/YYYY` will render `08/16/2018`)
274
+ * If `true`, the format will respect the leading zeroes (for example on dayjs, the format `M/D/YYYY` will render `8/16/2018`)
275
+ * If `false`, the format will always add leading zeroes (for example on dayjs, the format `M/D/YYYY` will render `08/16/2018`)
286
276
  *
287
- * Warning n°1: Luxon is not able to respect the leading zeroes when using macro tokens (e.g: "DD"), so `shouldRespectLeadingZeros={true}` might lead to inconsistencies when using `AdapterLuxon`.
277
+ * Warning n°1: Luxon is not able to respect the leading zeroes when using macro tokens (for example "DD"), so `shouldRespectLeadingZeros={true}` might lead to inconsistencies when using `AdapterLuxon`.
288
278
  *
289
279
  * Warning n°2: When `shouldRespectLeadingZeros={true}`, the field will add an invisible character on the sections containing a single digit to make sure `onChange` is fired.
290
280
  * If you need to get the clean value from the input, you can remove this character using `input.value.replace(/\u200e/g, '')`.
@@ -1,32 +1,31 @@
1
1
  "use strict";
2
2
  'use client';
3
3
 
4
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.useSingleInputTimeRangeField = void 0;
9
- var React = _interopRequireWildcard(require("react"));
10
8
  var _internals = require("@mui/x-date-pickers/internals");
11
9
  var _hooks = require("@mui/x-date-pickers/hooks");
12
- var _valueManagers = require("../internals/utils/valueManagers");
13
- var _validation = require("../validation");
14
- const useSingleInputTimeRangeField = inProps => {
15
- const props = (0, _internals.useDefaultizedTimeField)(inProps);
10
+ var _managers = require("../managers");
11
+ const useSingleInputTimeRangeField = props => {
12
+ const manager = (0, _managers.useTimeRangeManager)(props);
16
13
  const {
17
14
  forwardedProps,
18
15
  internalProps
19
16
  } = (0, _hooks.useSplitFieldProps)(props, 'time');
20
- const fieldValueManager = React.useMemo(() => (0, _valueManagers.getRangeFieldValueManager)({
21
- dateSeparator: internalProps.dateSeparator
22
- }), [internalProps.dateSeparator]);
17
+ const internalPropsWithDefaults = (0, _internals.useFieldInternalPropsWithDefaults)({
18
+ manager,
19
+ internalProps
20
+ });
23
21
  return (0, _internals.useField)({
24
22
  forwardedProps,
25
- internalProps,
26
- valueManager: _valueManagers.rangeValueManager,
27
- fieldValueManager,
28
- validator: _validation.validateTimeRange,
29
- valueType: 'time'
23
+ internalProps: internalPropsWithDefaults,
24
+ valueManager: manager.internal_valueManager,
25
+ fieldValueManager: manager.internal_fieldValueManager,
26
+ validator: manager.validator,
27
+ valueType: manager.valueType,
28
+ getOpenPickerButtonAriaLabel: manager.internal_getOpenPickerButtonAriaLabel
30
29
  });
31
30
  };
32
31
  exports.useSingleInputTimeRangeField = useSingleInputTimeRangeField;
@@ -48,11 +48,11 @@ const StaticDateRangePicker = exports.StaticDateRangePicker = /*#__PURE__*/React
48
48
  const {
49
49
  renderPicker
50
50
  } = (0, _useStaticRangePicker.useStaticRangePicker)({
51
+ ref,
51
52
  props,
52
53
  valueManager: _valueManagers.rangeValueManager,
53
54
  valueType: 'date',
54
- validator: _validation.validateDateRange,
55
- ref
55
+ validator: _validation.validateDateRange
56
56
  });
57
57
  return renderPicker();
58
58
  });
@@ -26,9 +26,6 @@ const renderDateRangeViewCalendar = ({
26
26
  shouldDisableDate,
27
27
  reduceAnimations,
28
28
  onMonthChange,
29
- rangePosition,
30
- defaultRangePosition,
31
- onRangePositionChange,
32
29
  calendars,
33
30
  currentMonthCalendarPosition,
34
31
  slots,
@@ -65,9 +62,6 @@ const renderDateRangeViewCalendar = ({
65
62
  shouldDisableDate: shouldDisableDate,
66
63
  reduceAnimations: reduceAnimations,
67
64
  onMonthChange: onMonthChange,
68
- rangePosition: rangePosition,
69
- defaultRangePosition: defaultRangePosition,
70
- onRangePositionChange: onRangePositionChange,
71
65
  calendars: calendars,
72
66
  currentMonthCalendarPosition: currentMonthCalendarPosition,
73
67
  slots: slots,
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "unstable_useMultiInputRangeField", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _useMultiInputRangeField.useMultiInputRangeField;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "usePickerRangePositionContext", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _usePickerRangePositionContext.usePickerRangePositionContext;
16
+ }
17
+ });
18
+ var _usePickerRangePositionContext = require("./usePickerRangePositionContext");
19
+ var _useMultiInputRangeField = require("./useMultiInputRangeField");
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "useMultiInputRangeField", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _useMultiInputRangeField.useMultiInputRangeField;
10
+ }
11
+ });
12
+ var _useMultiInputRangeField = require("./useMultiInputRangeField");
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+ 'use client';
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.useMultiInputRangeField = useMultiInputRangeField;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallback"));
11
+ var _internals = require("@mui/x-date-pickers/internals");
12
+ var _validation = require("@mui/x-date-pickers/validation");
13
+ var _useMultiInputRangeFieldTextFieldProps = require("./useMultiInputRangeFieldTextFieldProps");
14
+ var _useMultiInputRangeFieldSelectedSections = require("./useMultiInputRangeFieldSelectedSections");
15
+ /**
16
+ * Basic example:
17
+ *
18
+ * ```tsx
19
+ * import Box from '@mui/material/Box';
20
+ * import { useSplitFieldProps } from '@mui/x-date-pickers/hooks';
21
+ * import { PickersTextField } from '@mui/x-date-pickers/PickersTextField';
22
+ * import { useDateRangeManager } from '@mui/x-date-pickers-pro/managers';
23
+ *
24
+ * function MultiInputField(props) {
25
+ * const manager = useDateRangeManager();
26
+ * const { internalProps, forwardedProps } = useSplitFieldProps(props, 'date');
27
+ * const { startDate, endDate } = useMultiInputRangeField({
28
+ * manager,
29
+ * internalProps,
30
+ * startForwardedProps: forwardedProps,
31
+ * endForwardedProps: forwardedProps,
32
+ * });
33
+ *
34
+ * return (
35
+ * <Box {...forwardedProps}>
36
+ * <PickersTextField {...startDate} />
37
+ * <span>{' – '}</span>
38
+ * <PickersTextField {...endDate} />
39
+ * </Box>
40
+ * );
41
+ * }
42
+ * ```
43
+ *
44
+ * @param {UseMultiInputRangeFieldParameters<TManager, TForwardedProps>} parameters The parameters of the hook.
45
+ * @param {TManager} parameters.manager The manager of the field.
46
+ * @param {PickerManagerFieldInternalProps<TManager>} parameters.internalProps The internal props of the field.
47
+ * @param {TForwardedProps} parameters.startForwardedProps The forwarded props of the start field.
48
+ * @param {TForwardedProps} parameters.endForwardedProps The forwarded props of the end field.
49
+ * @returns {UseMultiInputRangeFieldReturnValue<TManager, TForwardedProps>} The props to pass to the start and the end components.
50
+ */
51
+ function useMultiInputRangeField(parameters) {
52
+ const {
53
+ manager,
54
+ internalProps,
55
+ startForwardedProps,
56
+ endForwardedProps
57
+ } = parameters;
58
+ const internalPropsWithDefaults = (0, _internals.useFieldInternalPropsWithDefaults)({
59
+ manager,
60
+ internalProps
61
+ });
62
+ const {
63
+ value: valueProp,
64
+ defaultValue,
65
+ format,
66
+ formatDensity,
67
+ shouldRespectLeadingZeros,
68
+ onChange,
69
+ disabled,
70
+ readOnly,
71
+ selectedSections,
72
+ onSelectedSectionsChange,
73
+ timezone: timezoneProp,
74
+ enableAccessibleFieldDOMStructure,
75
+ autoFocus,
76
+ referenceDate,
77
+ unstableStartFieldRef,
78
+ unstableEndFieldRef
79
+ } = internalPropsWithDefaults;
80
+ const {
81
+ value,
82
+ handleValueChange,
83
+ timezone
84
+ } = (0, _internals.useControlledValueWithTimezone)({
85
+ name: 'useMultiInputRangeField',
86
+ timezone: timezoneProp,
87
+ value: valueProp,
88
+ defaultValue,
89
+ referenceDate,
90
+ onChange,
91
+ valueManager: manager.internal_valueManager
92
+ });
93
+ const {
94
+ validationError,
95
+ getValidationErrorForNewValue
96
+ } = (0, _validation.useValidation)({
97
+ props: internalPropsWithDefaults,
98
+ value,
99
+ timezone,
100
+ validator: manager.validator,
101
+ onError: internalPropsWithDefaults.onError
102
+ });
103
+ const buildChangeHandler = index => {
104
+ return (newSingleValue, rawContext) => {
105
+ const newRange = index === 0 ? [newSingleValue, value[1]] : [value[0], newSingleValue];
106
+ const context = (0, _extends2.default)({}, rawContext, {
107
+ validationError: getValidationErrorForNewValue(newRange)
108
+ });
109
+ handleValueChange(newRange, context);
110
+ };
111
+ };
112
+ const handleStartDateChange = (0, _useEventCallback.default)(buildChangeHandler(0));
113
+ const handleEndDateChange = (0, _useEventCallback.default)(buildChangeHandler(1));
114
+ const selectedSectionsResponse = (0, _useMultiInputRangeFieldSelectedSections.useMultiInputRangeFieldSelectedSections)({
115
+ selectedSections,
116
+ onSelectedSectionsChange,
117
+ unstableStartFieldRef,
118
+ unstableEndFieldRef
119
+ });
120
+ const sharedProps = {
121
+ disabled,
122
+ readOnly,
123
+ timezone,
124
+ format,
125
+ formatDensity,
126
+ shouldRespectLeadingZeros,
127
+ enableAccessibleFieldDOMStructure
128
+ };
129
+ const startDateProps = (0, _useMultiInputRangeFieldTextFieldProps.useMultiInputRangeFieldTextFieldProps)({
130
+ valueType: manager.valueType,
131
+ fieldProps: (0, _extends2.default)({
132
+ error: !!validationError[0]
133
+ }, startForwardedProps, selectedSectionsResponse.start, sharedProps, {
134
+ value: valueProp === undefined ? undefined : valueProp[0],
135
+ defaultValue: defaultValue === undefined ? undefined : defaultValue[0],
136
+ onChange: handleStartDateChange,
137
+ autoFocus // Do not add on end field.
138
+ })
139
+ });
140
+ const endDateProps = (0, _useMultiInputRangeFieldTextFieldProps.useMultiInputRangeFieldTextFieldProps)({
141
+ valueType: manager.valueType,
142
+ fieldProps: (0, _extends2.default)({
143
+ error: !!validationError[1]
144
+ }, endForwardedProps, selectedSectionsResponse.end, sharedProps, {
145
+ value: valueProp === undefined ? undefined : valueProp[1],
146
+ defaultValue: defaultValue === undefined ? undefined : defaultValue[1],
147
+ onChange: handleEndDateChange
148
+ })
149
+ });
150
+ return {
151
+ startDate: startDateProps,
152
+ endDate: endDateProps,
153
+ enableAccessibleFieldDOMStructure
154
+ };
155
+ }
@@ -1,18 +1,19 @@
1
1
  "use strict";
2
+ 'use client';
2
3
 
3
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
5
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
6
  Object.defineProperty(exports, "__esModule", {
6
7
  value: true
7
8
  });
8
- exports.useMultiInputFieldSelectedSections = void 0;
9
+ exports.useMultiInputRangeFieldSelectedSections = void 0;
9
10
  var React = _interopRequireWildcard(require("react"));
10
11
  var _useForkRef = _interopRequireDefault(require("@mui/utils/useForkRef"));
11
12
  var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallback"));
12
- const useMultiInputFieldSelectedSections = params => {
13
+ const useMultiInputRangeFieldSelectedSections = parameters => {
13
14
  const unstableEndFieldRef = React.useRef(null);
14
- const handleUnstableEndFieldRef = (0, _useForkRef.default)(params.unstableEndFieldRef, unstableEndFieldRef);
15
- const [startSelectedSection, setStartSelectedSection] = React.useState(params.selectedSections ?? null);
15
+ const handleUnstableEndFieldRef = (0, _useForkRef.default)(parameters.unstableEndFieldRef, unstableEndFieldRef);
16
+ const [startSelectedSection, setStartSelectedSection] = React.useState(parameters.selectedSections ?? null);
16
17
  const [endSelectedSection, setEndSelectedSection] = React.useState(null);
17
18
  const getActiveField = () => {
18
19
  if (unstableEndFieldRef.current && unstableEndFieldRef.current.isFieldFocused()) {
@@ -23,27 +24,27 @@ const useMultiInputFieldSelectedSections = params => {
23
24
  const handleStartSelectedSectionChange = (0, _useEventCallback.default)(newSelectedSections => {
24
25
  setStartSelectedSection(newSelectedSections);
25
26
  if (getActiveField() === 'start') {
26
- params.onSelectedSectionsChange?.(newSelectedSections);
27
+ parameters.onSelectedSectionsChange?.(newSelectedSections);
27
28
  }
28
29
  });
29
30
  const handleEndSelectedSectionChange = (0, _useEventCallback.default)(newSelectedSections => {
30
31
  setEndSelectedSection(newSelectedSections);
31
32
  if (getActiveField() === 'end') {
32
- params.onSelectedSectionsChange?.(newSelectedSections);
33
+ parameters.onSelectedSectionsChange?.(newSelectedSections);
33
34
  }
34
35
  });
35
36
  const activeField = getActiveField();
36
37
  return {
37
38
  start: {
38
- unstableFieldRef: params.unstableStartFieldRef,
39
- selectedSections: activeField === 'start' && params.selectedSections !== undefined ? params.selectedSections : startSelectedSection,
39
+ unstableFieldRef: parameters.unstableStartFieldRef,
40
+ selectedSections: activeField === 'start' && parameters.selectedSections !== undefined ? parameters.selectedSections : startSelectedSection,
40
41
  onSelectedSectionsChange: handleStartSelectedSectionChange
41
42
  },
42
43
  end: {
43
44
  unstableFieldRef: handleUnstableEndFieldRef,
44
- selectedSections: activeField === 'end' && params.selectedSections !== undefined ? params.selectedSections : endSelectedSection,
45
+ selectedSections: activeField === 'end' && parameters.selectedSections !== undefined ? parameters.selectedSections : endSelectedSection,
45
46
  onSelectedSectionsChange: handleEndSelectedSectionChange
46
47
  }
47
48
  };
48
49
  };
49
- exports.useMultiInputFieldSelectedSections = useMultiInputFieldSelectedSections;
50
+ exports.useMultiInputRangeFieldSelectedSections = useMultiInputRangeFieldSelectedSections;
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useMultiInputRangeFieldTextFieldProps = useMultiInputRangeFieldTextFieldProps;
8
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
9
+ var _managers = require("@mui/x-date-pickers/managers");
10
+ var _hooks = require("@mui/x-date-pickers/hooks");
11
+ var _internals = require("@mui/x-date-pickers/internals");
12
+ const _excluded = ["clearable", "onClear"];
13
+ /**
14
+ * @ignore - internal hook.
15
+ */
16
+ function useMultiInputRangeFieldTextFieldProps(parameters) {
17
+ const {
18
+ fieldProps,
19
+ valueType
20
+ } = parameters;
21
+ let useManager;
22
+ switch (valueType) {
23
+ case 'date':
24
+ {
25
+ useManager = _managers.useDateManager;
26
+ break;
27
+ }
28
+ case 'time':
29
+ {
30
+ useManager = _managers.useTimeManager;
31
+ break;
32
+ }
33
+ case 'date-time':
34
+ {
35
+ useManager = _managers.useDateTimeManager;
36
+ break;
37
+ }
38
+ default:
39
+ {
40
+ throw new Error(`Unknown valueType: ${valueType}`);
41
+ }
42
+ }
43
+ const manager = useManager({
44
+ enableAccessibleFieldDOMStructure: fieldProps.enableAccessibleFieldDOMStructure
45
+ });
46
+ const {
47
+ forwardedProps,
48
+ internalProps
49
+ } = (0, _hooks.useSplitFieldProps)(fieldProps, 'date');
50
+ const internalPropsWithDefaults = (0, _internals.useFieldInternalPropsWithDefaults)({
51
+ manager,
52
+ internalProps
53
+ });
54
+ const _ref = (0, _internals.useField)({
55
+ forwardedProps,
56
+ internalProps: internalPropsWithDefaults,
57
+ valueManager: manager.internal_valueManager,
58
+ fieldValueManager: manager.internal_fieldValueManager,
59
+ validator: manager.validator,
60
+ valueType: manager.valueType,
61
+ // TODO v8: Add a real aria label before moving the opening logic to the field on range pickers.
62
+ getOpenPickerButtonAriaLabel: () => ''
63
+ }),
64
+ fieldResponse = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
65
+ return fieldResponse;
66
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ 'use client';
3
+
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.PickerRangePositionContext = void 0;
9
+ exports.usePickerRangePositionContext = usePickerRangePositionContext;
10
+ var React = _interopRequireWildcard(require("react"));
11
+ const PickerRangePositionContext = exports.PickerRangePositionContext = /*#__PURE__*/React.createContext(null);
12
+
13
+ /**
14
+ * Returns information about the range position of the picker that wraps the current component.
15
+ */
16
+ function usePickerRangePositionContext() {
17
+ const value = React.useContext(PickerRangePositionContext);
18
+ if (value == null) {
19
+ throw new Error(['MUI X: The `usePickerRangePositionContext` can only be called in components that are used inside a picker component'].join('\n'));
20
+ }
21
+ return value;
22
+ }