@mui/x-date-pickers-pro 8.0.0-alpha.1 → 8.0.0-alpha.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (294) hide show
  1. package/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.d.ts +1 -1
  2. package/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.js +1 -1
  3. package/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/package.json +1 -1
  4. package/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.d.ts +1 -1
  5. package/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.js +1 -1
  6. package/{AdapterDateFnsV3 → AdapterDateFnsV2}/package.json +1 -1
  7. package/CHANGELOG.md +2007 -230
  8. package/DateRangeCalendar/DateRangeCalendar.js +73 -46
  9. package/DateRangePicker/DateRangePicker.js +1 -4
  10. package/DateRangePicker/DateRangePicker.types.d.ts +6 -2
  11. package/DateRangePicker/DateRangePickerToolbar.d.ts +2 -3
  12. package/DateRangePicker/DateRangePickerToolbar.js +33 -41
  13. package/DateRangePicker/shared.d.ts +4 -3
  14. package/DateTimeRangePicker/DateTimeRangePicker.js +2 -5
  15. package/DateTimeRangePicker/DateTimeRangePicker.types.d.ts +1 -2
  16. package/DateTimeRangePicker/DateTimeRangePickerTabs.d.ts +4 -5
  17. package/DateTimeRangePicker/DateTimeRangePickerTabs.js +35 -33
  18. package/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.d.ts +8 -10
  19. package/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +8 -6
  20. package/DateTimeRangePicker/DateTimeRangePickerToolbar.d.ts +2 -5
  21. package/DateTimeRangePicker/DateTimeRangePickerToolbar.js +81 -109
  22. package/DateTimeRangePicker/shared.d.ts +6 -5
  23. package/DesktopDateRangePicker/DesktopDateRangePicker.js +11 -9
  24. package/DesktopDateRangePicker/DesktopDateRangePicker.types.d.ts +7 -2
  25. package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +20 -22
  26. package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.types.d.ts +2 -3
  27. package/MobileDateRangePicker/MobileDateRangePicker.js +6 -8
  28. package/MobileDateRangePicker/MobileDateRangePicker.types.d.ts +2 -2
  29. package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +20 -16
  30. package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.types.d.ts +2 -3
  31. package/MultiInputDateRangeField/MultiInputDateRangeField.d.ts +9 -4
  32. package/MultiInputDateRangeField/MultiInputDateRangeField.js +15 -121
  33. package/MultiInputDateRangeField/index.d.ts +5 -3
  34. package/MultiInputDateRangeField/index.js +2 -2
  35. package/MultiInputDateRangeField/multiInputDateRangeFieldClasses.d.ts +6 -0
  36. package/MultiInputDateRangeField/multiInputDateRangeFieldClasses.js +4 -0
  37. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.d.ts +9 -4
  38. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +15 -121
  39. package/MultiInputDateTimeRangeField/index.d.ts +5 -3
  40. package/MultiInputDateTimeRangeField/index.js +2 -2
  41. package/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.d.ts +6 -0
  42. package/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.js +4 -0
  43. package/MultiInputTimeRangeField/MultiInputTimeRangeField.d.ts +9 -4
  44. package/MultiInputTimeRangeField/MultiInputTimeRangeField.js +16 -122
  45. package/MultiInputTimeRangeField/index.d.ts +5 -3
  46. package/MultiInputTimeRangeField/index.js +2 -2
  47. package/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.d.ts +6 -0
  48. package/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.js +4 -0
  49. package/PickersRangeCalendarHeader/PickersRangeCalendarHeader.js +2 -2
  50. package/README.md +8 -5
  51. package/SingleInputDateRangeField/SingleInputDateRangeField.js +23 -33
  52. package/SingleInputDateRangeField/SingleInputDateRangeField.types.d.ts +6 -16
  53. package/SingleInputDateRangeField/useSingleInputDateRangeField.d.ts +1 -1
  54. package/SingleInputDateRangeField/useSingleInputDateRangeField.js +14 -14
  55. package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +23 -33
  56. package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.types.d.ts +6 -17
  57. package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.d.ts +1 -1
  58. package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +14 -14
  59. package/SingleInputTimeRangeField/SingleInputTimeRangeField.js +23 -33
  60. package/SingleInputTimeRangeField/SingleInputTimeRangeField.types.d.ts +6 -17
  61. package/SingleInputTimeRangeField/useSingleInputTimeRangeField.d.ts +1 -1
  62. package/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +14 -14
  63. package/StaticDateRangePicker/StaticDateRangePicker.js +2 -2
  64. package/StaticDateRangePicker/StaticDateRangePicker.types.d.ts +2 -2
  65. package/dateRangeViewRenderers/dateRangeViewRenderers.d.ts +2 -2
  66. package/dateRangeViewRenderers/dateRangeViewRenderers.js +0 -6
  67. package/hooks/index.d.ts +2 -0
  68. package/hooks/index.js +2 -0
  69. package/hooks/package.json +6 -0
  70. package/hooks/useMultiInputRangeField/index.d.ts +1 -0
  71. package/hooks/useMultiInputRangeField/index.js +1 -0
  72. package/hooks/useMultiInputRangeField/useMultiInputRangeField.d.ts +53 -0
  73. package/hooks/useMultiInputRangeField/useMultiInputRangeField.js +149 -0
  74. package/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.d.ts +17 -0
  75. package/{modern/internals/hooks/useMultiInputFieldSelectedSections.js → hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js} +10 -8
  76. package/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.d.ts +17 -0
  77. package/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +59 -0
  78. package/hooks/usePickerRangePositionContext.d.ts +7 -0
  79. package/hooks/usePickerRangePositionContext.js +15 -0
  80. package/index.d.ts +2 -0
  81. package/index.js +4 -2
  82. package/internals/hooks/models/index.d.ts +1 -1
  83. package/internals/hooks/models/useRangePicker.d.ts +8 -11
  84. package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +68 -100
  85. package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.types.d.ts +8 -10
  86. package/internals/hooks/{useEnrichedRangePickerFieldProps.d.ts → useEnrichedRangePickerField.d.ts} +25 -16
  87. package/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +50 -63
  88. package/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +57 -80
  89. package/internals/hooks/useMobileRangePicker/useMobileRangePicker.types.d.ts +7 -9
  90. package/internals/hooks/useNullablePickerRangePositionContext.d.ts +5 -0
  91. package/internals/hooks/useNullablePickerRangePositionContext.js +10 -0
  92. package/internals/hooks/useRangePosition.d.ts +4 -3
  93. package/internals/hooks/useRangePosition.js +1 -1
  94. package/internals/hooks/useStaticRangePicker/useStaticRangePicker.d.ts +1 -1
  95. package/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +17 -30
  96. package/internals/hooks/useStaticRangePicker/useStaticRangePicker.types.d.ts +6 -12
  97. package/internals/models/dateTimeRange.d.ts +1 -6
  98. package/internals/models/fields.d.ts +7 -11
  99. package/internals/models/index.d.ts +0 -1
  100. package/internals/models/index.js +0 -1
  101. package/internals/models/managers.d.ts +3 -0
  102. package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.d.ts +3 -0
  103. package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +136 -0
  104. package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.d.ts +72 -0
  105. package/internals/utils/createMultiInputRangeField/index.d.ts +3 -0
  106. package/internals/utils/createMultiInputRangeField/index.js +2 -0
  107. package/internals/utils/date-fields-utils.d.ts +6 -6
  108. package/internals/utils/date-range-manager.js +2 -1
  109. package/internals/utils/releaseInfo.js +1 -1
  110. package/internals/utils/valueManagers.d.ts +4 -3
  111. package/internals/utils/valueManagers.js +7 -7
  112. package/managers/index.d.ts +6 -0
  113. package/managers/index.js +3 -0
  114. package/managers/package.json +6 -0
  115. package/managers/useDateRangeManager.d.ts +15 -0
  116. package/managers/useDateRangeManager.js +33 -0
  117. package/managers/useDateTimeRangeManager.d.ts +15 -0
  118. package/managers/useDateTimeRangeManager.js +33 -0
  119. package/managers/useTimeRangeManager.d.ts +15 -0
  120. package/managers/useTimeRangeManager.js +31 -0
  121. package/models/fields.d.ts +7 -11
  122. package/models/index.d.ts +1 -2
  123. package/models/index.js +1 -2
  124. package/models/range.d.ts +0 -2
  125. package/modern/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.js +1 -1
  126. package/modern/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.js +1 -1
  127. package/modern/DateRangeCalendar/DateRangeCalendar.js +73 -46
  128. package/modern/DateRangePicker/DateRangePicker.js +1 -4
  129. package/modern/DateRangePicker/DateRangePickerToolbar.js +33 -41
  130. package/modern/DateTimeRangePicker/DateTimeRangePicker.js +2 -5
  131. package/modern/DateTimeRangePicker/DateTimeRangePickerTabs.js +35 -33
  132. package/modern/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +8 -6
  133. package/modern/DateTimeRangePicker/DateTimeRangePickerToolbar.js +81 -109
  134. package/modern/DesktopDateRangePicker/DesktopDateRangePicker.js +11 -9
  135. package/modern/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +20 -22
  136. package/modern/MobileDateRangePicker/MobileDateRangePicker.js +6 -8
  137. package/modern/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +20 -16
  138. package/modern/MultiInputDateRangeField/MultiInputDateRangeField.js +15 -121
  139. package/modern/MultiInputDateRangeField/index.js +2 -2
  140. package/modern/MultiInputDateRangeField/multiInputDateRangeFieldClasses.js +4 -0
  141. package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +15 -121
  142. package/modern/MultiInputDateTimeRangeField/index.js +2 -2
  143. package/modern/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.js +4 -0
  144. package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.js +16 -122
  145. package/modern/MultiInputTimeRangeField/index.js +2 -2
  146. package/modern/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.js +4 -0
  147. package/modern/PickersRangeCalendarHeader/PickersRangeCalendarHeader.js +2 -2
  148. package/modern/SingleInputDateRangeField/SingleInputDateRangeField.js +23 -33
  149. package/modern/SingleInputDateRangeField/useSingleInputDateRangeField.js +14 -14
  150. package/modern/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +23 -33
  151. package/modern/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +14 -14
  152. package/modern/SingleInputTimeRangeField/SingleInputTimeRangeField.js +23 -33
  153. package/modern/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +14 -14
  154. package/modern/StaticDateRangePicker/StaticDateRangePicker.js +2 -2
  155. package/modern/dateRangeViewRenderers/dateRangeViewRenderers.js +0 -6
  156. package/modern/hooks/index.js +2 -0
  157. package/modern/hooks/useMultiInputRangeField/index.js +1 -0
  158. package/modern/hooks/useMultiInputRangeField/useMultiInputRangeField.js +149 -0
  159. package/{internals/hooks/useMultiInputFieldSelectedSections.js → modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js} +10 -8
  160. package/modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +59 -0
  161. package/modern/hooks/usePickerRangePositionContext.js +15 -0
  162. package/modern/index.js +4 -2
  163. package/modern/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +68 -100
  164. package/modern/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +50 -63
  165. package/modern/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +57 -80
  166. package/modern/internals/hooks/useNullablePickerRangePositionContext.js +10 -0
  167. package/modern/internals/hooks/useRangePosition.js +1 -1
  168. package/modern/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +17 -30
  169. package/modern/internals/models/index.js +0 -1
  170. package/modern/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +136 -0
  171. package/modern/internals/utils/createMultiInputRangeField/index.js +2 -0
  172. package/modern/internals/utils/date-range-manager.js +2 -1
  173. package/modern/internals/utils/releaseInfo.js +1 -1
  174. package/modern/internals/utils/valueManagers.js +7 -7
  175. package/modern/managers/index.js +3 -0
  176. package/modern/managers/useDateRangeManager.js +33 -0
  177. package/modern/managers/useDateTimeRangeManager.js +33 -0
  178. package/modern/managers/useTimeRangeManager.js +31 -0
  179. package/modern/models/index.js +1 -2
  180. package/modern/validation/validateDateRange.js +8 -0
  181. package/modern/validation/validateDateTimeRange.js +4 -0
  182. package/modern/validation/validateTimeRange.js +8 -0
  183. package/node/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.js +1 -1
  184. package/node/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.js +1 -1
  185. package/node/DateRangeCalendar/DateRangeCalendar.js +72 -45
  186. package/node/DateRangePicker/DateRangePicker.js +1 -4
  187. package/node/DateRangePicker/DateRangePickerToolbar.js +31 -39
  188. package/node/DateTimeRangePicker/DateTimeRangePicker.js +2 -5
  189. package/node/DateTimeRangePicker/DateTimeRangePickerTabs.js +33 -31
  190. package/node/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +8 -6
  191. package/node/DateTimeRangePicker/DateTimeRangePickerToolbar.js +80 -108
  192. package/node/DesktopDateRangePicker/DesktopDateRangePicker.js +11 -9
  193. package/node/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +20 -22
  194. package/node/MobileDateRangePicker/MobileDateRangePicker.js +6 -8
  195. package/node/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +20 -16
  196. package/node/MultiInputDateRangeField/MultiInputDateRangeField.js +14 -124
  197. package/node/MultiInputDateRangeField/index.js +3 -9
  198. package/node/MultiInputDateRangeField/multiInputDateRangeFieldClasses.js +12 -0
  199. package/node/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +14 -124
  200. package/node/MultiInputDateTimeRangeField/index.js +3 -9
  201. package/node/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.js +12 -0
  202. package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.js +15 -125
  203. package/node/MultiInputTimeRangeField/index.js +3 -9
  204. package/node/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.js +12 -0
  205. package/node/PickersRangeCalendarHeader/PickersRangeCalendarHeader.js +2 -2
  206. package/node/SingleInputDateRangeField/SingleInputDateRangeField.js +22 -32
  207. package/node/SingleInputDateRangeField/useSingleInputDateRangeField.js +13 -14
  208. package/node/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +22 -32
  209. package/node/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +13 -14
  210. package/node/SingleInputTimeRangeField/SingleInputTimeRangeField.js +22 -32
  211. package/node/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +13 -14
  212. package/node/StaticDateRangePicker/StaticDateRangePicker.js +2 -2
  213. package/node/dateRangeViewRenderers/dateRangeViewRenderers.js +0 -6
  214. package/node/hooks/index.js +19 -0
  215. package/node/hooks/useMultiInputRangeField/index.js +12 -0
  216. package/node/hooks/useMultiInputRangeField/useMultiInputRangeField.js +155 -0
  217. package/node/{internals/hooks/useMultiInputFieldSelectedSections.js → hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js} +11 -10
  218. package/node/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +66 -0
  219. package/node/hooks/usePickerRangePositionContext.js +22 -0
  220. package/node/index.js +23 -1
  221. package/node/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +68 -100
  222. package/node/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +52 -65
  223. package/node/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +57 -80
  224. package/node/internals/hooks/useNullablePickerRangePositionContext.js +16 -0
  225. package/node/internals/hooks/useRangePosition.js +1 -1
  226. package/node/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +16 -29
  227. package/node/internals/models/index.js +0 -11
  228. package/node/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +143 -0
  229. package/node/internals/utils/createMultiInputRangeField/index.js +19 -0
  230. package/node/internals/utils/date-range-manager.js +2 -1
  231. package/node/internals/utils/releaseInfo.js +1 -1
  232. package/node/internals/utils/valueManagers.js +7 -7
  233. package/node/managers/index.js +26 -0
  234. package/node/managers/useDateRangeManager.js +40 -0
  235. package/node/managers/useDateTimeRangeManager.js +40 -0
  236. package/node/managers/useTimeRangeManager.js +38 -0
  237. package/node/models/index.js +0 -22
  238. package/node/validation/validateDateRange.js +8 -0
  239. package/node/validation/validateDateTimeRange.js +4 -0
  240. package/node/validation/validateTimeRange.js +8 -0
  241. package/package.json +6 -6
  242. package/themeAugmentation/overrides.d.ts +6 -4
  243. package/themeAugmentation/props.d.ts +2 -2
  244. package/validation/validateDateRange.d.ts +9 -1
  245. package/validation/validateDateRange.js +8 -0
  246. package/validation/validateDateTimeRange.d.ts +6 -2
  247. package/validation/validateDateTimeRange.js +4 -0
  248. package/validation/validateTimeRange.d.ts +9 -1
  249. package/validation/validateTimeRange.js +8 -0
  250. package/MultiInputDateRangeField/MultiInputDateRangeField.types.d.ts +0 -53
  251. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.d.ts +0 -54
  252. package/MultiInputTimeRangeField/MultiInputTimeRangeField.types.d.ts +0 -54
  253. package/internals/hooks/useMultiInputFieldSelectedSections.d.ts +0 -21
  254. package/internals/hooks/useMultiInputRangeField/shared.d.ts +0 -1
  255. package/internals/hooks/useMultiInputRangeField/shared.js +0 -9
  256. package/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.d.ts +0 -3
  257. package/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +0 -113
  258. package/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.d.ts +0 -3
  259. package/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -113
  260. package/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.d.ts +0 -11
  261. package/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.d.ts +0 -3
  262. package/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +0 -113
  263. package/internals/models/timeRange.d.ts +0 -6
  264. package/internals/models/timeRange.js +0 -1
  265. package/models/dateRange.d.ts +0 -7
  266. package/models/dateRange.js +0 -1
  267. package/models/multiInputRangeFieldClasses.d.ts +0 -7
  268. package/models/multiInputRangeFieldClasses.js +0 -1
  269. package/modern/MultiInputDateRangeField/MultiInputDateRangeField.types.js +0 -1
  270. package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.js +0 -1
  271. package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.types.js +0 -1
  272. package/modern/internals/hooks/useMultiInputRangeField/shared.js +0 -9
  273. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +0 -113
  274. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -113
  275. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.js +0 -1
  276. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +0 -113
  277. package/modern/internals/models/timeRange.js +0 -1
  278. package/modern/models/dateRange.js +0 -1
  279. package/modern/models/multiInputRangeFieldClasses.js +0 -1
  280. package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.types.js +0 -5
  281. package/node/internals/hooks/useMultiInputRangeField/shared.js +0 -16
  282. package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +0 -121
  283. package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -121
  284. package/node/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.js +0 -5
  285. package/node/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +0 -121
  286. package/node/internals/models/timeRange.js +0 -5
  287. package/node/models/dateRange.js +0 -5
  288. package/node/models/multiInputRangeFieldClasses.js +0 -5
  289. /package/{MultiInputDateRangeField/MultiInputDateRangeField.types.js → internals/models/managers.js} +0 -0
  290. /package/{MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.js → internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.js} +0 -0
  291. /package/{MultiInputTimeRangeField/MultiInputTimeRangeField.types.js → modern/internals/models/managers.js} +0 -0
  292. /package/{internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.js → modern/internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.js} +0 -0
  293. /package/node/{MultiInputDateRangeField/MultiInputDateRangeField.types.js → internals/models/managers.js} +0 -0
  294. /package/node/{MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.js → internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.js} +0 -0
@@ -1,25 +1,25 @@
1
1
  'use client';
2
2
 
3
- import * as React from 'react';
4
- import { useField, useDefaultizedDateField } from '@mui/x-date-pickers/internals';
3
+ import { useField, useFieldInternalPropsWithDefaults } from '@mui/x-date-pickers/internals';
5
4
  import { useSplitFieldProps } from '@mui/x-date-pickers/hooks';
6
- import { rangeValueManager, getRangeFieldValueManager } from "../internals/utils/valueManagers.js";
7
- import { validateDateRange } from "../validation/index.js";
8
- export const useSingleInputDateRangeField = inProps => {
9
- const props = useDefaultizedDateField(inProps);
5
+ import { useDateRangeManager } from "../managers/index.js";
6
+ export const useSingleInputDateRangeField = props => {
7
+ const manager = useDateRangeManager(props);
10
8
  const {
11
9
  forwardedProps,
12
10
  internalProps
13
11
  } = useSplitFieldProps(props, 'date');
14
- const fieldValueManager = React.useMemo(() => getRangeFieldValueManager({
15
- dateSeparator: internalProps.dateSeparator
16
- }), [internalProps.dateSeparator]);
12
+ const internalPropsWithDefaults = useFieldInternalPropsWithDefaults({
13
+ manager,
14
+ internalProps
15
+ });
17
16
  return useField({
18
17
  forwardedProps,
19
- internalProps,
20
- valueManager: rangeValueManager,
21
- fieldValueManager,
22
- validator: validateDateRange,
23
- valueType: 'date'
18
+ internalProps: internalPropsWithDefaults,
19
+ valueManager: manager.internal_valueManager,
20
+ fieldValueManager: manager.internal_fieldValueManager,
21
+ validator: manager.validator,
22
+ valueType: manager.valueType,
23
+ getOpenPickerButtonAriaLabel: manager.internal_getOpenPickerButtonAriaLabel
24
24
  });
25
25
  };
@@ -1,17 +1,13 @@
1
1
  'use client';
2
2
 
3
- import _extends from "@babel/runtime/helpers/esm/extends";
4
3
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
5
- const _excluded = ["slots", "slotProps", "InputProps", "inputProps"];
4
+ const _excluded = ["slots", "slotProps"];
6
5
  import * as React from 'react';
7
6
  import PropTypes from 'prop-types';
8
- import MuiTextField from '@mui/material/TextField';
9
- import { convertFieldResponseIntoMuiTextFieldProps } from '@mui/x-date-pickers/internals';
10
- import { PickersTextField } from '@mui/x-date-pickers/PickersTextField';
7
+ import { DateRangeIcon } from '@mui/x-date-pickers/icons';
8
+ import { PickerFieldUI, useFieldTextFieldProps } from '@mui/x-date-pickers/internals';
11
9
  import { useThemeProps } from '@mui/material/styles';
12
10
  import { refType } from '@mui/utils';
13
- import useSlotProps from '@mui/utils/useSlotProps';
14
- import { useClearableField } from '@mui/x-date-pickers/hooks';
15
11
  import { useSingleInputDateTimeRangeField } from "./useSingleInputDateTimeRangeField.js";
16
12
  import { jsx as _jsx } from "react/jsx-runtime";
17
13
  /**
@@ -31,33 +27,21 @@ const SingleInputDateTimeRangeField = /*#__PURE__*/React.forwardRef(function Sin
31
27
  });
32
28
  const {
33
29
  slots,
34
- slotProps,
35
- InputProps,
36
- inputProps
30
+ slotProps
37
31
  } = themeProps,
38
32
  other = _objectWithoutPropertiesLoose(themeProps, _excluded);
39
- const ownerState = themeProps;
40
- const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure === false ? MuiTextField : PickersTextField);
41
- const textFieldProps = useSlotProps({
42
- elementType: TextField,
43
- externalSlotProps: slotProps?.textField,
44
- externalForwardedProps: other,
45
- ownerState,
46
- additionalProps: {
47
- ref: inRef
48
- }
33
+ const textFieldProps = useFieldTextFieldProps({
34
+ slotProps,
35
+ ref: inRef,
36
+ externalForwardedProps: other
49
37
  });
50
-
51
- // TODO: Remove when mui/material-ui#35088 will be merged
52
- textFieldProps.inputProps = _extends({}, inputProps, textFieldProps.inputProps);
53
- textFieldProps.InputProps = _extends({}, InputProps, textFieldProps.InputProps);
54
38
  const fieldResponse = useSingleInputDateTimeRangeField(textFieldProps);
55
- const convertedFieldResponse = convertFieldResponseIntoMuiTextFieldProps(fieldResponse);
56
- const processedFieldProps = useClearableField(_extends({}, convertedFieldResponse, {
57
- slots,
58
- slotProps
59
- }));
60
- return /*#__PURE__*/_jsx(TextField, _extends({}, processedFieldProps));
39
+ return /*#__PURE__*/_jsx(PickerFieldUI, {
40
+ slots: slots,
41
+ slotProps: slotProps,
42
+ fieldResponse: fieldResponse,
43
+ defaultOpenPickerIcon: DateRangeIcon
44
+ });
61
45
  });
62
46
  SingleInputDateTimeRangeField.fieldType = 'single-input';
63
47
  process.env.NODE_ENV !== "production" ? SingleInputDateTimeRangeField.propTypes = {
@@ -81,6 +65,12 @@ process.env.NODE_ENV !== "production" ? SingleInputDateTimeRangeField.propTypes
81
65
  * @default false
82
66
  */
83
67
  clearable: PropTypes.bool,
68
+ /**
69
+ * The position at which the clear button is placed.
70
+ * If the field is not clearable, the button is not rendered.
71
+ * @default 'end'
72
+ */
73
+ clearButtonPosition: PropTypes.oneOf(['end', 'start']),
84
74
  /**
85
75
  * The color of the component.
86
76
  * It supports both default and custom theme colors, which can be added as shown in the
@@ -302,10 +292,10 @@ process.env.NODE_ENV !== "production" ? SingleInputDateTimeRangeField.propTypes
302
292
  */
303
293
  shouldDisableTime: PropTypes.func,
304
294
  /**
305
- * If `true`, the format will respect the leading zeroes (e.g: on dayjs, the format `M/D/YYYY` will render `8/16/2018`)
306
- * If `false`, the format will always add leading zeroes (e.g: on dayjs, the format `M/D/YYYY` will render `08/16/2018`)
295
+ * If `true`, the format will respect the leading zeroes (for example on dayjs, the format `M/D/YYYY` will render `8/16/2018`)
296
+ * If `false`, the format will always add leading zeroes (for example on dayjs, the format `M/D/YYYY` will render `08/16/2018`)
307
297
  *
308
- * 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`.
298
+ * 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`.
309
299
  *
310
300
  * 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.
311
301
  * If you need to get the clean value from the input, you can remove this character using `input.value.replace(/\u200e/g, '')`.
@@ -1,12 +1,7 @@
1
- import * as React from 'react';
2
- import { SlotComponentProps } from '@mui/utils';
3
- import TextField from '@mui/material/TextField';
4
- import { UseFieldInternalProps, PickerRangeValue } from '@mui/x-date-pickers/internals';
1
+ import { ExportedPickerFieldUIProps, PickerFieldUISlots, PickerFieldUISlotProps } from '@mui/x-date-pickers/internals';
5
2
  import { BuiltInFieldTextFieldProps } from '@mui/x-date-pickers/models';
6
- import { ExportedUseClearableFieldProps, UseClearableFieldSlots, UseClearableFieldSlotProps } from '@mui/x-date-pickers/hooks';
7
- import { UseDateTimeRangeFieldProps } from '../internals/models';
8
- import { RangeFieldSection, DateTimeRangeValidationError } from '../models';
9
- export interface UseSingleInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean> extends UseDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>, ExportedUseClearableFieldProps, Pick<UseFieldInternalProps<PickerRangeValue, RangeFieldSection, TEnableAccessibleFieldDOMStructure, DateTimeRangeValidationError>, 'unstableFieldRef'> {
3
+ import { DateTimeRangeManagerFieldInternalProps } from '../managers/useDateTimeRangeManager';
4
+ export interface UseSingleInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean> extends DateTimeRangeManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure>, Omit<ExportedPickerFieldUIProps, 'openPickerButtonPosition'> {
10
5
  }
11
6
  export type SingleInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean = true> = Omit<BuiltInFieldTextFieldProps<TEnableAccessibleFieldDOMStructure>, keyof UseSingleInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>> & UseSingleInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure> & {
12
7
  /**
@@ -18,15 +13,9 @@ export type SingleInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructur
18
13
  * The props used for each component slot.
19
14
  * @default {}
20
15
  */
21
- slotProps?: SingleInputDateTimeRangeFieldSlotProps<TEnableAccessibleFieldDOMStructure>;
16
+ slotProps?: SingleInputDateTimeRangeFieldSlotProps;
22
17
  };
23
- export interface SingleInputDateTimeRangeFieldSlots extends UseClearableFieldSlots {
24
- /**
25
- * Form control with an input to render the value.
26
- * @default TextField from '@mui/material' or PickersTextField if `enableAccessibleFieldDOMStructure` is `true`.
27
- */
28
- textField?: React.ElementType;
18
+ export interface SingleInputDateTimeRangeFieldSlots extends PickerFieldUISlots {
29
19
  }
30
- export interface SingleInputDateTimeRangeFieldSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends UseClearableFieldSlotProps {
31
- textField?: SlotComponentProps<typeof TextField, {}, SingleInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>>;
20
+ export interface SingleInputDateTimeRangeFieldSlotProps extends PickerFieldUISlotProps {
32
21
  }
@@ -1,2 +1,2 @@
1
1
  import { UseSingleInputDateTimeRangeFieldProps } from './SingleInputDateTimeRangeField.types';
2
- export declare const useSingleInputDateTimeRangeField: <TEnableAccessibleFieldDOMStructure extends boolean, TAllProps extends UseSingleInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>>(inProps: TAllProps) => import("@mui/x-date-pickers/internals").UseFieldResponse<TEnableAccessibleFieldDOMStructure, Omit<TAllProps & Omit<UseSingleInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>, keyof import("@mui/x-date-pickers/internals/hooks/defaultizedFieldProps").UseDefaultizedDateTimeFieldBaseProps> & Required<Pick<UseSingleInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>, keyof import("@mui/x-date-pickers/internals/hooks/defaultizedFieldProps").UseDefaultizedDateTimeFieldBaseProps>>, "disabled" | "format" | "onChange" | "onError" | "defaultValue" | "value" | "readOnly" | "formatDensity" | "enableAccessibleFieldDOMStructure" | "selectedSections" | "onSelectedSectionsChange" | "timezone" | "unstableFieldRef" | "referenceDate" | "shouldRespectLeadingZeros" | "ampm" | "disableFuture" | "maxDate" | "disablePast" | "minDate" | "minTime" | "maxTime" | "minutesStep" | "shouldDisableTime" | "disableIgnoringDatePartForTimeValidation" | "minDateTime" | "maxDateTime" | "shouldDisableDate" | "shouldDisableMonth" | "shouldDisableYear" | "dateSeparator">>;
2
+ export declare const useSingleInputDateTimeRangeField: <TEnableAccessibleFieldDOMStructure extends boolean, TAllProps extends UseSingleInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>>(props: TAllProps) => import("@mui/x-date-pickers/internals").UseFieldResponse<TEnableAccessibleFieldDOMStructure, Omit<TAllProps, "disabled" | "readOnly" | "value" | "defaultValue" | "autoFocus" | "onChange" | "onError" | "format" | "unstableFieldRef" | "referenceDate" | "formatDensity" | "shouldRespectLeadingZeros" | "selectedSections" | "onSelectedSectionsChange" | "enableAccessibleFieldDOMStructure" | "timezone" | "ampm" | "disableFuture" | "maxDate" | "disablePast" | "minDate" | "minTime" | "maxTime" | "minutesStep" | "shouldDisableTime" | "disableIgnoringDatePartForTimeValidation" | "shouldDisableDate" | "shouldDisableMonth" | "shouldDisableYear" | "minDateTime" | "maxDateTime" | "unstableStartFieldRef" | "unstableEndFieldRef" | "dateSeparator">>;
@@ -1,25 +1,25 @@
1
1
  'use client';
2
2
 
3
- import * as React from 'react';
4
- import { useField, useDefaultizedDateTimeField } from '@mui/x-date-pickers/internals';
3
+ import { useField, useFieldInternalPropsWithDefaults } from '@mui/x-date-pickers/internals';
5
4
  import { useSplitFieldProps } from '@mui/x-date-pickers/hooks';
6
- import { rangeValueManager, getRangeFieldValueManager } from "../internals/utils/valueManagers.js";
7
- import { validateDateTimeRange } from "../validation/index.js";
8
- export const useSingleInputDateTimeRangeField = inProps => {
9
- const props = useDefaultizedDateTimeField(inProps);
5
+ import { useDateTimeRangeManager } from "../managers/index.js";
6
+ export const useSingleInputDateTimeRangeField = props => {
7
+ const manager = useDateTimeRangeManager(props);
10
8
  const {
11
9
  forwardedProps,
12
10
  internalProps
13
11
  } = useSplitFieldProps(props, 'date-time');
14
- const fieldValueManager = React.useMemo(() => getRangeFieldValueManager({
15
- dateSeparator: internalProps.dateSeparator
16
- }), [internalProps.dateSeparator]);
12
+ const internalPropsWithDefaults = useFieldInternalPropsWithDefaults({
13
+ manager,
14
+ internalProps
15
+ });
17
16
  return useField({
18
17
  forwardedProps,
19
- internalProps,
20
- valueManager: rangeValueManager,
21
- fieldValueManager,
22
- validator: validateDateTimeRange,
23
- valueType: 'date-time'
18
+ internalProps: internalPropsWithDefaults,
19
+ valueManager: manager.internal_valueManager,
20
+ fieldValueManager: manager.internal_fieldValueManager,
21
+ validator: manager.validator,
22
+ valueType: manager.valueType,
23
+ getOpenPickerButtonAriaLabel: manager.internal_getOpenPickerButtonAriaLabel
24
24
  });
25
25
  };
@@ -1,16 +1,12 @@
1
1
  'use client';
2
2
 
3
- import _extends from "@babel/runtime/helpers/esm/extends";
4
3
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
5
- const _excluded = ["slots", "slotProps", "InputProps", "inputProps"];
4
+ const _excluded = ["slots", "slotProps"];
6
5
  import * as React from 'react';
7
6
  import PropTypes from 'prop-types';
8
- import MuiTextField from '@mui/material/TextField';
9
- import { useClearableField } from '@mui/x-date-pickers/hooks';
10
- import { convertFieldResponseIntoMuiTextFieldProps } from '@mui/x-date-pickers/internals';
11
- import { PickersTextField } from '@mui/x-date-pickers/PickersTextField';
7
+ import { ClockIcon } from '@mui/x-date-pickers/icons';
8
+ import { PickerFieldUI, useFieldTextFieldProps } from '@mui/x-date-pickers/internals';
12
9
  import { useThemeProps } from '@mui/material/styles';
13
- import useSlotProps from '@mui/utils/useSlotProps';
14
10
  import { refType } from '@mui/utils';
15
11
  import { useSingleInputTimeRangeField } from "./useSingleInputTimeRangeField.js";
16
12
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -31,33 +27,21 @@ const SingleInputTimeRangeField = /*#__PURE__*/React.forwardRef(function SingleI
31
27
  });
32
28
  const {
33
29
  slots,
34
- slotProps,
35
- InputProps,
36
- inputProps
30
+ slotProps
37
31
  } = themeProps,
38
32
  other = _objectWithoutPropertiesLoose(themeProps, _excluded);
39
- const ownerState = themeProps;
40
- const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure === false ? MuiTextField : PickersTextField);
41
- const textFieldProps = useSlotProps({
42
- elementType: TextField,
43
- externalSlotProps: slotProps?.textField,
44
- externalForwardedProps: other,
45
- ownerState,
46
- additionalProps: {
47
- ref: inRef
48
- }
33
+ const textFieldProps = useFieldTextFieldProps({
34
+ slotProps,
35
+ ref: inRef,
36
+ externalForwardedProps: other
49
37
  });
50
-
51
- // TODO: Remove when mui/material-ui#35088 will be merged
52
- textFieldProps.inputProps = _extends({}, inputProps, textFieldProps.inputProps);
53
- textFieldProps.InputProps = _extends({}, InputProps, textFieldProps.InputProps);
54
38
  const fieldResponse = useSingleInputTimeRangeField(textFieldProps);
55
- const convertedFieldResponse = convertFieldResponseIntoMuiTextFieldProps(fieldResponse);
56
- const processedFieldProps = useClearableField(_extends({}, convertedFieldResponse, {
57
- slots,
58
- slotProps
59
- }));
60
- return /*#__PURE__*/_jsx(TextField, _extends({}, processedFieldProps));
39
+ return /*#__PURE__*/_jsx(PickerFieldUI, {
40
+ slots: slots,
41
+ slotProps: slotProps,
42
+ fieldResponse: fieldResponse,
43
+ defaultOpenPickerIcon: ClockIcon
44
+ });
61
45
  });
62
46
  SingleInputTimeRangeField.fieldType = 'single-input';
63
47
  process.env.NODE_ENV !== "production" ? SingleInputTimeRangeField.propTypes = {
@@ -81,6 +65,12 @@ process.env.NODE_ENV !== "production" ? SingleInputTimeRangeField.propTypes = {
81
65
  * @default false
82
66
  */
83
67
  clearable: PropTypes.bool,
68
+ /**
69
+ * The position at which the clear button is placed.
70
+ * If the field is not clearable, the button is not rendered.
71
+ * @default 'end'
72
+ */
73
+ clearButtonPosition: PropTypes.oneOf(['end', 'start']),
84
74
  /**
85
75
  * The color of the component.
86
76
  * It supports both default and custom theme colors, which can be added as shown in the
@@ -274,10 +264,10 @@ process.env.NODE_ENV !== "production" ? SingleInputTimeRangeField.propTypes = {
274
264
  */
275
265
  shouldDisableTime: PropTypes.func,
276
266
  /**
277
- * If `true`, the format will respect the leading zeroes (e.g: on dayjs, the format `M/D/YYYY` will render `8/16/2018`)
278
- * If `false`, the format will always add leading zeroes (e.g: on dayjs, the format `M/D/YYYY` will render `08/16/2018`)
267
+ * If `true`, the format will respect the leading zeroes (for example on dayjs, the format `M/D/YYYY` will render `8/16/2018`)
268
+ * If `false`, the format will always add leading zeroes (for example on dayjs, the format `M/D/YYYY` will render `08/16/2018`)
279
269
  *
280
- * 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`.
270
+ * 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`.
281
271
  *
282
272
  * 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.
283
273
  * If you need to get the clean value from the input, you can remove this character using `input.value.replace(/\u200e/g, '')`.
@@ -1,12 +1,7 @@
1
- import * as React from 'react';
2
- import { SlotComponentProps } from '@mui/utils';
3
- import TextField from '@mui/material/TextField';
4
- import { PickerRangeValue, UseFieldInternalProps } from '@mui/x-date-pickers/internals';
1
+ import { ExportedPickerFieldUIProps, PickerFieldUISlots, PickerFieldUISlotProps } from '@mui/x-date-pickers/internals';
5
2
  import { BuiltInFieldTextFieldProps } from '@mui/x-date-pickers/models';
6
- import { ExportedUseClearableFieldProps, UseClearableFieldSlots, UseClearableFieldSlotProps } from '@mui/x-date-pickers/hooks';
7
- import { UseTimeRangeFieldProps } from '../internals/models';
8
- import { RangeFieldSection, TimeRangeValidationError } from '../models';
9
- export interface UseSingleInputTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean> extends UseTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>, ExportedUseClearableFieldProps, Pick<UseFieldInternalProps<PickerRangeValue, RangeFieldSection, TEnableAccessibleFieldDOMStructure, TimeRangeValidationError>, 'unstableFieldRef'> {
3
+ import { TimeRangeManagerFieldInternalProps } from '../managers/useTimeRangeManager';
4
+ export interface UseSingleInputTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean> extends TimeRangeManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure>, Omit<ExportedPickerFieldUIProps, 'openPickerButtonPosition'> {
10
5
  }
11
6
  export type SingleInputTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean = true> = Omit<BuiltInFieldTextFieldProps<TEnableAccessibleFieldDOMStructure>, keyof UseSingleInputTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>> & UseSingleInputTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure> & {
12
7
  /**
@@ -18,15 +13,9 @@ export type SingleInputTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure ex
18
13
  * The props used for each component slot.
19
14
  * @default {}
20
15
  */
21
- slotProps?: SingleInputTimeRangeFieldSlotProps<TEnableAccessibleFieldDOMStructure>;
16
+ slotProps?: SingleInputTimeRangeFieldSlotProps;
22
17
  };
23
- export interface SingleInputTimeRangeFieldSlots extends UseClearableFieldSlots {
24
- /**
25
- * Form control with an input to render the value.
26
- * @default TextField from '@mui/material' or PickersTextField if `enableAccessibleFieldDOMStructure` is `true`.
27
- */
28
- textField?: React.ElementType;
18
+ export interface SingleInputTimeRangeFieldSlots extends PickerFieldUISlots {
29
19
  }
30
- export interface SingleInputTimeRangeFieldSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends UseClearableFieldSlotProps {
31
- textField?: SlotComponentProps<typeof TextField, {}, SingleInputTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>>;
20
+ export interface SingleInputTimeRangeFieldSlotProps extends PickerFieldUISlotProps {
32
21
  }
@@ -1,2 +1,2 @@
1
1
  import { UseSingleInputTimeRangeFieldProps } from './SingleInputTimeRangeField.types';
2
- export declare const useSingleInputTimeRangeField: <TEnableAccessibleFieldDOMStructure extends boolean, TAllProps extends UseSingleInputTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>>(inProps: TAllProps) => import("@mui/x-date-pickers/internals").UseFieldResponse<TEnableAccessibleFieldDOMStructure, Omit<TAllProps & Omit<UseSingleInputTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>, keyof import("@mui/x-date-pickers/internals/hooks/defaultizedFieldProps").UseDefaultizedTimeFieldBaseProps> & Required<Pick<UseSingleInputTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>, keyof import("@mui/x-date-pickers/internals/hooks/defaultizedFieldProps").UseDefaultizedTimeFieldBaseProps>>, "disabled" | "format" | "onChange" | "onError" | "defaultValue" | "value" | "readOnly" | "formatDensity" | "enableAccessibleFieldDOMStructure" | "selectedSections" | "onSelectedSectionsChange" | "timezone" | "unstableFieldRef" | "referenceDate" | "shouldRespectLeadingZeros" | "ampm" | keyof import("@mui/x-date-pickers/internals").BaseTimeValidationProps | keyof import("@mui/x-date-pickers/internals").TimeValidationProps | "dateSeparator">>;
2
+ export declare const useSingleInputTimeRangeField: <TEnableAccessibleFieldDOMStructure extends boolean, TAllProps extends UseSingleInputTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>>(props: TAllProps) => import("@mui/x-date-pickers/internals").UseFieldResponse<TEnableAccessibleFieldDOMStructure, Omit<TAllProps, "disabled" | "readOnly" | "value" | "defaultValue" | "autoFocus" | "onChange" | "onError" | "format" | "unstableFieldRef" | "referenceDate" | "formatDensity" | "shouldRespectLeadingZeros" | "selectedSections" | "onSelectedSectionsChange" | "enableAccessibleFieldDOMStructure" | "timezone" | "ampm" | keyof import("@mui/x-date-pickers/internals").BaseTimeValidationProps | keyof import("@mui/x-date-pickers/internals").TimeValidationProps | "unstableStartFieldRef" | "unstableEndFieldRef" | "dateSeparator">>;
@@ -1,25 +1,25 @@
1
1
  'use client';
2
2
 
3
- import * as React from 'react';
4
- import { useField, useDefaultizedTimeField } from '@mui/x-date-pickers/internals';
3
+ import { useField, useFieldInternalPropsWithDefaults } from '@mui/x-date-pickers/internals';
5
4
  import { useSplitFieldProps } from '@mui/x-date-pickers/hooks';
6
- import { rangeValueManager, getRangeFieldValueManager } from "../internals/utils/valueManagers.js";
7
- import { validateTimeRange } from "../validation/index.js";
8
- export const useSingleInputTimeRangeField = inProps => {
9
- const props = useDefaultizedTimeField(inProps);
5
+ import { useTimeRangeManager } from "../managers/index.js";
6
+ export const useSingleInputTimeRangeField = props => {
7
+ const manager = useTimeRangeManager(props);
10
8
  const {
11
9
  forwardedProps,
12
10
  internalProps
13
11
  } = useSplitFieldProps(props, 'time');
14
- const fieldValueManager = React.useMemo(() => getRangeFieldValueManager({
15
- dateSeparator: internalProps.dateSeparator
16
- }), [internalProps.dateSeparator]);
12
+ const internalPropsWithDefaults = useFieldInternalPropsWithDefaults({
13
+ manager,
14
+ internalProps
15
+ });
17
16
  return useField({
18
17
  forwardedProps,
19
- internalProps,
20
- valueManager: rangeValueManager,
21
- fieldValueManager,
22
- validator: validateTimeRange,
23
- valueType: 'time'
18
+ internalProps: internalPropsWithDefaults,
19
+ valueManager: manager.internal_valueManager,
20
+ fieldValueManager: manager.internal_fieldValueManager,
21
+ validator: manager.validator,
22
+ valueType: manager.valueType,
23
+ getOpenPickerButtonAriaLabel: manager.internal_getOpenPickerButtonAriaLabel
24
24
  });
25
25
  };
@@ -41,11 +41,11 @@ const StaticDateRangePicker = /*#__PURE__*/React.forwardRef(function StaticDateR
41
41
  const {
42
42
  renderPicker
43
43
  } = useStaticRangePicker({
44
+ ref,
44
45
  props,
45
46
  valueManager: rangeValueManager,
46
47
  valueType: 'date',
47
- validator: validateDateRange,
48
- ref
48
+ validator: validateDateRange
49
49
  });
50
50
  return renderPicker();
51
51
  });
@@ -1,9 +1,9 @@
1
1
  import { MakeOptional } from '@mui/x-internals/types';
2
2
  import { StaticRangeOnlyPickerProps, UseStaticRangePickerSlots, UseStaticRangePickerSlotProps } from '../internals/hooks/useStaticRangePicker';
3
3
  import { BaseDateRangePickerProps, BaseDateRangePickerSlots, BaseDateRangePickerSlotProps } from '../DateRangePicker/shared';
4
- export interface StaticDateRangePickerSlots extends BaseDateRangePickerSlots, UseStaticRangePickerSlots<'day'> {
4
+ export interface StaticDateRangePickerSlots extends BaseDateRangePickerSlots, UseStaticRangePickerSlots {
5
5
  }
6
- export interface StaticDateRangePickerSlotProps extends BaseDateRangePickerSlotProps, Omit<UseStaticRangePickerSlotProps<'day'>, 'toolbar'> {
6
+ export interface StaticDateRangePickerSlotProps extends BaseDateRangePickerSlotProps, Omit<UseStaticRangePickerSlotProps, 'toolbar'> {
7
7
  }
8
8
  export interface StaticDateRangePickerProps extends BaseDateRangePickerProps, MakeOptional<StaticRangeOnlyPickerProps, 'displayStaticWrapperAs'> {
9
9
  /**
@@ -1,11 +1,11 @@
1
1
  import * as React from 'react';
2
2
  import { DateOrTimeViewWithMeridiem } from '@mui/x-date-pickers/internals';
3
3
  import { DateRangeCalendarProps } from '../DateRangeCalendar';
4
- export interface DateRangeViewRendererProps<TView extends DateOrTimeViewWithMeridiem> extends Omit<DateRangeCalendarProps, 'views'> {
4
+ export interface DateRangeViewRendererProps<TView extends DateOrTimeViewWithMeridiem> extends Omit<DateRangeCalendarProps, 'views' | 'onRangePositionChange' | 'rangePosition' | 'defaultRangePosition'> {
5
5
  views: readonly TView[];
6
6
  }
7
7
  /**
8
8
  * We don't pass all the props down to `DateRangeCalendar`,
9
9
  * because otherwise some unwanted props would be passed to the HTML element.
10
10
  */
11
- export declare const renderDateRangeViewCalendar: ({ value, defaultValue, referenceDate, onChange, className, classes, disableFuture, disablePast, minDate, maxDate, shouldDisableDate, reduceAnimations, onMonthChange, rangePosition, defaultRangePosition, onRangePositionChange, calendars, currentMonthCalendarPosition, slots, slotProps, loading, renderLoading, disableHighlightToday, readOnly, disabled, showDaysOutsideCurrentMonth, dayOfWeekFormatter, disableAutoMonthSwitching, sx, autoFocus, fixedWeekNumber, disableDragEditing, displayWeekNumber, timezone, availableRangePositions, views, view, onViewChange, }: DateRangeViewRendererProps<"day">) => React.JSX.Element;
11
+ export declare const renderDateRangeViewCalendar: ({ value, defaultValue, referenceDate, onChange, className, classes, disableFuture, disablePast, minDate, maxDate, shouldDisableDate, reduceAnimations, onMonthChange, calendars, currentMonthCalendarPosition, slots, slotProps, loading, renderLoading, disableHighlightToday, readOnly, disabled, showDaysOutsideCurrentMonth, dayOfWeekFormatter, disableAutoMonthSwitching, sx, autoFocus, fixedWeekNumber, disableDragEditing, displayWeekNumber, timezone, availableRangePositions, views, view, onViewChange, }: DateRangeViewRendererProps<"day">) => React.JSX.Element;
@@ -19,9 +19,6 @@ export const renderDateRangeViewCalendar = ({
19
19
  shouldDisableDate,
20
20
  reduceAnimations,
21
21
  onMonthChange,
22
- rangePosition,
23
- defaultRangePosition,
24
- onRangePositionChange,
25
22
  calendars,
26
23
  currentMonthCalendarPosition,
27
24
  slots,
@@ -58,9 +55,6 @@ export const renderDateRangeViewCalendar = ({
58
55
  shouldDisableDate: shouldDisableDate,
59
56
  reduceAnimations: reduceAnimations,
60
57
  onMonthChange: onMonthChange,
61
- rangePosition: rangePosition,
62
- defaultRangePosition: defaultRangePosition,
63
- onRangePositionChange: onRangePositionChange,
64
58
  calendars: calendars,
65
59
  currentMonthCalendarPosition: currentMonthCalendarPosition,
66
60
  slots: slots,
@@ -0,0 +1,2 @@
1
+ export { usePickerRangePositionContext } from './usePickerRangePositionContext';
2
+ export { useMultiInputRangeField as unstable_useMultiInputRangeField } from './useMultiInputRangeField';
package/hooks/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export { usePickerRangePositionContext } from "./usePickerRangePositionContext.js";
2
+ export { useMultiInputRangeField as unstable_useMultiInputRangeField } from "./useMultiInputRangeField/index.js";
@@ -0,0 +1,6 @@
1
+ {
2
+ "sideEffects": false,
3
+ "module": "./index.js",
4
+ "main": "../node/hooks/index.js",
5
+ "types": "./index.d.ts"
6
+ }
@@ -0,0 +1 @@
1
+ export { useMultiInputRangeField } from './useMultiInputRangeField';
@@ -0,0 +1 @@
1
+ export { useMultiInputRangeField } from "./useMultiInputRangeField.js";
@@ -0,0 +1,53 @@
1
+ import { PickerManagerEnableAccessibleFieldDOMStructure, PickerManagerFieldInternalProps, UseFieldResponse } from '@mui/x-date-pickers/internals';
2
+ import { PickerAnyRangeManager } from '../../internals/models/managers';
3
+ /**
4
+ * Basic example:
5
+ *
6
+ * ```tsx
7
+ * import Box from '@mui/material/Box';
8
+ * import { useSplitFieldProps } from '@mui/x-date-pickers/hooks';
9
+ * import { PickersTextField } from '@mui/x-date-pickers/PickersTextField';
10
+ * import { useDateRangeManager } from '@mui/x-date-pickers-pro/managers';
11
+ *
12
+ * function MultiInputField(props) {
13
+ * const manager = useDateRangeManager();
14
+ * const { internalProps, forwardedProps } = useSplitFieldProps(props, 'date');
15
+ * const { startDate, endDate } = useMultiInputRangeField({
16
+ * manager,
17
+ * internalProps,
18
+ * startForwardedProps: forwardedProps,
19
+ * endForwardedProps: forwardedProps,
20
+ * });
21
+ *
22
+ * return (
23
+ * <Box {...forwardedProps}>
24
+ * <PickersTextField {...startDate} />
25
+ * <span>{' – '}</span>
26
+ * <PickersTextField {...endDate} />
27
+ * </Box>
28
+ * );
29
+ * }
30
+ * ```
31
+ *
32
+ * @param {UseMultiInputRangeFieldParameters<TManager, TForwardedProps>} parameters The parameters of the hook.
33
+ * @param {TManager} parameters.manager The manager of the field.
34
+ * @param {PickerManagerFieldInternalProps<TManager>} parameters.internalProps The internal props of the field.
35
+ * @param {TForwardedProps} parameters.startForwardedProps The forwarded props of the start field.
36
+ * @param {TForwardedProps} parameters.endForwardedProps The forwarded props of the end field.
37
+ * @returns {UseMultiInputRangeFieldReturnValue<TManager, TForwardedProps>} The props to pass to the start and the end components.
38
+ */
39
+ export declare function useMultiInputRangeField<TManager extends PickerAnyRangeManager, TForwardedProps extends {
40
+ [key: string]: any;
41
+ }>(parameters: UseMultiInputRangeFieldParameters<TManager, TForwardedProps>): UseMultiInputRangeFieldReturnValue<TManager, TForwardedProps>;
42
+ interface UseMultiInputRangeFieldParameters<TManager extends PickerAnyRangeManager, TForwardedProps extends {}> {
43
+ manager: TManager;
44
+ internalProps: PickerManagerFieldInternalProps<TManager>;
45
+ startForwardedProps: TForwardedProps;
46
+ endForwardedProps: TForwardedProps;
47
+ }
48
+ interface UseMultiInputRangeFieldReturnValue<TManager extends PickerAnyRangeManager, TForwardedProps extends {}> {
49
+ startDate: Omit<UseFieldResponse<PickerManagerEnableAccessibleFieldDOMStructure<TManager>, TForwardedProps>, 'clearable' | 'onClear'>;
50
+ endDate: Omit<UseFieldResponse<PickerManagerEnableAccessibleFieldDOMStructure<TManager>, TForwardedProps>, 'clearable' | 'onClear'>;
51
+ enableAccessibleFieldDOMStructure: PickerManagerEnableAccessibleFieldDOMStructure<TManager>;
52
+ }
53
+ export {};