@mui/x-date-pickers-pro 8.0.0-alpha.1 → 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 (291) 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 +1903 -231
  8. package/DateRangeCalendar/DateRangeCalendar.js +15 -13
  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 +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 +8 -5
  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 +68 -100
  84. package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.types.d.ts +8 -10
  85. package/internals/hooks/{useEnrichedRangePickerFieldProps.d.ts → useEnrichedRangePickerField.d.ts} +25 -16
  86. package/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +50 -63
  87. package/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +57 -80
  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 +17 -30
  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.js +2 -1
  108. package/internals/utils/releaseInfo.js +1 -1
  109. package/internals/utils/valueManagers.d.ts +4 -3
  110. package/internals/utils/valueManagers.js +7 -7
  111. package/managers/index.d.ts +6 -0
  112. package/managers/index.js +3 -0
  113. package/managers/package.json +6 -0
  114. package/managers/useDateRangeManager.d.ts +15 -0
  115. package/managers/useDateRangeManager.js +33 -0
  116. package/managers/useDateTimeRangeManager.d.ts +15 -0
  117. package/managers/useDateTimeRangeManager.js +33 -0
  118. package/managers/useTimeRangeManager.d.ts +15 -0
  119. package/managers/useTimeRangeManager.js +31 -0
  120. package/models/fields.d.ts +7 -11
  121. package/models/index.d.ts +1 -2
  122. package/models/index.js +1 -2
  123. package/models/range.d.ts +0 -2
  124. package/modern/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.js +1 -1
  125. package/modern/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.js +1 -1
  126. package/modern/DateRangeCalendar/DateRangeCalendar.js +15 -13
  127. package/modern/DateRangePicker/DateRangePicker.js +1 -4
  128. package/modern/DateRangePicker/DateRangePickerToolbar.js +33 -41
  129. package/modern/DateTimeRangePicker/DateTimeRangePicker.js +2 -5
  130. package/modern/DateTimeRangePicker/DateTimeRangePickerTabs.js +35 -33
  131. package/modern/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +8 -6
  132. package/modern/DateTimeRangePicker/DateTimeRangePickerToolbar.js +81 -109
  133. package/modern/DesktopDateRangePicker/DesktopDateRangePicker.js +11 -9
  134. package/modern/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +20 -22
  135. package/modern/MobileDateRangePicker/MobileDateRangePicker.js +4 -8
  136. package/modern/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +18 -16
  137. package/modern/MultiInputDateRangeField/MultiInputDateRangeField.js +15 -121
  138. package/modern/MultiInputDateRangeField/index.js +2 -2
  139. package/modern/MultiInputDateRangeField/multiInputDateRangeFieldClasses.js +4 -0
  140. package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +15 -121
  141. package/modern/MultiInputDateTimeRangeField/index.js +2 -2
  142. package/modern/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.js +4 -0
  143. package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.js +16 -122
  144. package/modern/MultiInputTimeRangeField/index.js +2 -2
  145. package/modern/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.js +4 -0
  146. package/modern/SingleInputDateRangeField/SingleInputDateRangeField.js +23 -33
  147. package/modern/SingleInputDateRangeField/useSingleInputDateRangeField.js +14 -14
  148. package/modern/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +23 -33
  149. package/modern/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +14 -14
  150. package/modern/SingleInputTimeRangeField/SingleInputTimeRangeField.js +23 -33
  151. package/modern/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +14 -14
  152. package/modern/StaticDateRangePicker/StaticDateRangePicker.js +2 -2
  153. package/modern/dateRangeViewRenderers/dateRangeViewRenderers.js +0 -6
  154. package/modern/hooks/index.js +2 -0
  155. package/modern/hooks/useMultiInputRangeField/index.js +1 -0
  156. package/modern/hooks/useMultiInputRangeField/useMultiInputRangeField.js +149 -0
  157. package/{internals/hooks/useMultiInputFieldSelectedSections.js → modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js} +10 -8
  158. package/modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +59 -0
  159. package/modern/hooks/usePickerRangePositionContext.js +15 -0
  160. package/modern/index.js +4 -2
  161. package/modern/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +68 -100
  162. package/modern/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +50 -63
  163. package/modern/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +57 -80
  164. package/modern/internals/hooks/useNullablePickerRangePositionContext.js +10 -0
  165. package/modern/internals/hooks/useRangePosition.js +1 -1
  166. package/modern/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +17 -30
  167. package/modern/internals/models/index.js +0 -1
  168. package/modern/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +136 -0
  169. package/modern/internals/utils/createMultiInputRangeField/index.js +2 -0
  170. package/modern/internals/utils/date-range-manager.js +2 -1
  171. package/modern/internals/utils/releaseInfo.js +1 -1
  172. package/modern/internals/utils/valueManagers.js +7 -7
  173. package/modern/managers/index.js +3 -0
  174. package/modern/managers/useDateRangeManager.js +33 -0
  175. package/modern/managers/useDateTimeRangeManager.js +33 -0
  176. package/modern/managers/useTimeRangeManager.js +31 -0
  177. package/modern/models/index.js +1 -2
  178. package/modern/validation/validateDateRange.js +8 -0
  179. package/modern/validation/validateDateTimeRange.js +4 -0
  180. package/modern/validation/validateTimeRange.js +8 -0
  181. package/node/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.js +1 -1
  182. package/node/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.js +1 -1
  183. package/node/DateRangeCalendar/DateRangeCalendar.js +14 -12
  184. package/node/DateRangePicker/DateRangePicker.js +1 -4
  185. package/node/DateRangePicker/DateRangePickerToolbar.js +31 -39
  186. package/node/DateTimeRangePicker/DateTimeRangePicker.js +2 -5
  187. package/node/DateTimeRangePicker/DateTimeRangePickerTabs.js +33 -31
  188. package/node/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +8 -6
  189. package/node/DateTimeRangePicker/DateTimeRangePickerToolbar.js +80 -108
  190. package/node/DesktopDateRangePicker/DesktopDateRangePicker.js +11 -9
  191. package/node/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +20 -22
  192. package/node/MobileDateRangePicker/MobileDateRangePicker.js +4 -8
  193. package/node/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +18 -16
  194. package/node/MultiInputDateRangeField/MultiInputDateRangeField.js +14 -124
  195. package/node/MultiInputDateRangeField/index.js +3 -9
  196. package/node/MultiInputDateRangeField/multiInputDateRangeFieldClasses.js +12 -0
  197. package/node/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +14 -124
  198. package/node/MultiInputDateTimeRangeField/index.js +3 -9
  199. package/node/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.js +12 -0
  200. package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.js +15 -125
  201. package/node/MultiInputTimeRangeField/index.js +3 -9
  202. package/node/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.js +12 -0
  203. package/node/SingleInputDateRangeField/SingleInputDateRangeField.js +22 -32
  204. package/node/SingleInputDateRangeField/useSingleInputDateRangeField.js +13 -14
  205. package/node/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +22 -32
  206. package/node/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +13 -14
  207. package/node/SingleInputTimeRangeField/SingleInputTimeRangeField.js +22 -32
  208. package/node/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +13 -14
  209. package/node/StaticDateRangePicker/StaticDateRangePicker.js +2 -2
  210. package/node/dateRangeViewRenderers/dateRangeViewRenderers.js +0 -6
  211. package/node/hooks/index.js +19 -0
  212. package/node/hooks/useMultiInputRangeField/index.js +12 -0
  213. package/node/hooks/useMultiInputRangeField/useMultiInputRangeField.js +155 -0
  214. package/node/{internals/hooks/useMultiInputFieldSelectedSections.js → hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js} +11 -10
  215. package/node/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +66 -0
  216. package/node/hooks/usePickerRangePositionContext.js +22 -0
  217. package/node/index.js +23 -1
  218. package/node/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +68 -100
  219. package/node/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +52 -65
  220. package/node/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +57 -80
  221. package/node/internals/hooks/useNullablePickerRangePositionContext.js +16 -0
  222. package/node/internals/hooks/useRangePosition.js +1 -1
  223. package/node/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +16 -29
  224. package/node/internals/models/index.js +0 -11
  225. package/node/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +143 -0
  226. package/node/internals/utils/createMultiInputRangeField/index.js +19 -0
  227. package/node/internals/utils/date-range-manager.js +2 -1
  228. package/node/internals/utils/releaseInfo.js +1 -1
  229. package/node/internals/utils/valueManagers.js +7 -7
  230. package/node/managers/index.js +26 -0
  231. package/node/managers/useDateRangeManager.js +40 -0
  232. package/node/managers/useDateTimeRangeManager.js +40 -0
  233. package/node/managers/useTimeRangeManager.js +38 -0
  234. package/node/models/index.js +0 -22
  235. package/node/validation/validateDateRange.js +8 -0
  236. package/node/validation/validateDateTimeRange.js +4 -0
  237. package/node/validation/validateTimeRange.js +8 -0
  238. package/package.json +6 -6
  239. package/themeAugmentation/overrides.d.ts +6 -4
  240. package/themeAugmentation/props.d.ts +2 -2
  241. package/validation/validateDateRange.d.ts +9 -1
  242. package/validation/validateDateRange.js +8 -0
  243. package/validation/validateDateTimeRange.d.ts +6 -2
  244. package/validation/validateDateTimeRange.js +4 -0
  245. package/validation/validateTimeRange.d.ts +9 -1
  246. package/validation/validateTimeRange.js +8 -0
  247. package/MultiInputDateRangeField/MultiInputDateRangeField.types.d.ts +0 -53
  248. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.d.ts +0 -54
  249. package/MultiInputTimeRangeField/MultiInputTimeRangeField.types.d.ts +0 -54
  250. package/internals/hooks/useMultiInputFieldSelectedSections.d.ts +0 -21
  251. package/internals/hooks/useMultiInputRangeField/shared.d.ts +0 -1
  252. package/internals/hooks/useMultiInputRangeField/shared.js +0 -9
  253. package/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.d.ts +0 -3
  254. package/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +0 -113
  255. package/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.d.ts +0 -3
  256. package/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -113
  257. package/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.d.ts +0 -11
  258. package/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.d.ts +0 -3
  259. package/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +0 -113
  260. package/internals/models/timeRange.d.ts +0 -6
  261. package/internals/models/timeRange.js +0 -1
  262. package/models/dateRange.d.ts +0 -7
  263. package/models/dateRange.js +0 -1
  264. package/models/multiInputRangeFieldClasses.d.ts +0 -7
  265. package/models/multiInputRangeFieldClasses.js +0 -1
  266. package/modern/MultiInputDateRangeField/MultiInputDateRangeField.types.js +0 -1
  267. package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.js +0 -1
  268. package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.types.js +0 -1
  269. package/modern/internals/hooks/useMultiInputRangeField/shared.js +0 -9
  270. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +0 -113
  271. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -113
  272. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.js +0 -1
  273. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +0 -113
  274. package/modern/internals/models/timeRange.js +0 -1
  275. package/modern/models/dateRange.js +0 -1
  276. package/modern/models/multiInputRangeFieldClasses.js +0 -1
  277. package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.types.js +0 -5
  278. package/node/internals/hooks/useMultiInputRangeField/shared.js +0 -16
  279. package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +0 -121
  280. package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -121
  281. package/node/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.js +0 -5
  282. package/node/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +0 -121
  283. package/node/internals/models/timeRange.js +0 -5
  284. package/node/models/dateRange.js +0 -5
  285. package/node/models/multiInputRangeFieldClasses.js +0 -5
  286. /package/{MultiInputDateRangeField/MultiInputDateRangeField.types.js → internals/models/managers.js} +0 -0
  287. /package/{MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.js → internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.js} +0 -0
  288. /package/{MultiInputTimeRangeField/MultiInputTimeRangeField.types.js → modern/internals/models/managers.js} +0 -0
  289. /package/{internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.js → modern/internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.js} +0 -0
  290. /package/node/{MultiInputDateRangeField/MultiInputDateRangeField.types.js → internals/models/managers.js} +0 -0
  291. /package/node/{MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.js → internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.js} +0 -0
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ 'use client';
3
+
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
6
+ Object.defineProperty(exports, "__esModule", {
7
+ value: true
8
+ });
9
+ exports.useTimeRangeManager = useTimeRangeManager;
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+ var React = _interopRequireWildcard(require("react"));
12
+ var _internals = require("@mui/x-date-pickers/internals");
13
+ var _valueManagers = require("../internals/utils/valueManagers");
14
+ var _validation = require("../validation");
15
+ function useTimeRangeManager(parameters = {}) {
16
+ const {
17
+ enableAccessibleFieldDOMStructure = true,
18
+ dateSeparator
19
+ } = parameters;
20
+ return React.useMemo(() => ({
21
+ valueType: 'time',
22
+ validator: _validation.validateTimeRange,
23
+ internal_valueManager: _valueManagers.rangeValueManager,
24
+ internal_fieldValueManager: (0, _valueManagers.getRangeFieldValueManager)({
25
+ dateSeparator
26
+ }),
27
+ internal_enableAccessibleFieldDOMStructure: enableAccessibleFieldDOMStructure,
28
+ internal_applyDefaultsToFieldInternalProps: ({
29
+ internalProps,
30
+ utils
31
+ }) => (0, _extends2.default)({}, internalProps, (0, _internals.getTimeFieldInternalPropsDefaults)({
32
+ utils,
33
+ internalProps
34
+ })),
35
+ // TODO v8: Add a real aria label before moving the opening logic to the field on range pickers.
36
+ internal_getOpenPickerButtonAriaLabel: () => ''
37
+ }), [enableAccessibleFieldDOMStructure, dateSeparator]);
38
+ }
@@ -3,17 +3,6 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- var _dateRange = require("./dateRange");
7
- Object.keys(_dateRange).forEach(function (key) {
8
- if (key === "default" || key === "__esModule") return;
9
- if (key in exports && exports[key] === _dateRange[key]) return;
10
- Object.defineProperty(exports, key, {
11
- enumerable: true,
12
- get: function () {
13
- return _dateRange[key];
14
- }
15
- });
16
- });
17
6
  var _fields = require("./fields");
18
7
  Object.keys(_fields).forEach(function (key) {
19
8
  if (key === "default" || key === "__esModule") return;
@@ -46,15 +35,4 @@ Object.keys(_validation).forEach(function (key) {
46
35
  return _validation[key];
47
36
  }
48
37
  });
49
- });
50
- var _multiInputRangeFieldClasses = require("./multiInputRangeFieldClasses");
51
- Object.keys(_multiInputRangeFieldClasses).forEach(function (key) {
52
- if (key === "default" || key === "__esModule") return;
53
- if (key in exports && exports[key] === _multiInputRangeFieldClasses[key]) return;
54
- Object.defineProperty(exports, key, {
55
- enumerable: true,
56
- get: function () {
57
- return _multiInputRangeFieldClasses[key];
58
- }
59
- });
60
38
  });
@@ -15,6 +15,14 @@ const _excluded = ["shouldDisableDate"];
15
15
  * Validation props used by the Date Range Picker, Date Range Field and Date Range Calendar components.
16
16
  */
17
17
 
18
+ /**
19
+ * Validation props as received by the validateDateRange method.
20
+ */
21
+
22
+ /**
23
+ * Name of the props that should be defaulted before being passed to the validateDateRange method.
24
+ */
25
+
18
26
  const validateDateRange = ({
19
27
  adapter,
20
28
  value,
@@ -15,6 +15,10 @@ const _excluded = ["shouldDisableDate"];
15
15
  * Validation props used by the Date Time Range Picker and Date Time Range Field.
16
16
  */
17
17
 
18
+ /**
19
+ * Validation props as received by the validateDateTimeRange method.
20
+ */
21
+
18
22
  const validateDateTimeRange = ({
19
23
  adapter,
20
24
  value,
@@ -11,6 +11,14 @@ var _valueManagers = require("../internals/utils/valueManagers");
11
11
  * Validation props used by the Time Range Picker and Time Range Field.
12
12
  */
13
13
 
14
+ /**
15
+ * Validation props as received by the validateTimeRange method.
16
+ */
17
+
18
+ /**
19
+ * Name of the props that should be defaulted before being passed to the validateTimeRange method.
20
+ */
21
+
14
22
  const validateTimeRange = ({
15
23
  adapter,
16
24
  value,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/x-date-pickers-pro",
3
- "version": "8.0.0-alpha.1",
3
+ "version": "8.0.0-alpha.10",
4
4
  "description": "The Pro plan edition of the Date and Time Picker components (MUI X).",
5
5
  "author": "MUI Team",
6
6
  "main": "./node/index.js",
@@ -32,14 +32,14 @@
32
32
  "directory": "packages/x-date-pickers-pro"
33
33
  },
34
34
  "dependencies": {
35
- "@babel/runtime": "^7.26.0",
35
+ "@babel/runtime": "^7.26.7",
36
36
  "@mui/utils": "^5.16.6 || ^6.0.0",
37
37
  "clsx": "^2.1.1",
38
38
  "prop-types": "^15.8.1",
39
39
  "react-transition-group": "^4.4.5",
40
- "@mui/x-internals": "8.0.0-alpha.1",
41
- "@mui/x-date-pickers": "8.0.0-alpha.1",
42
- "@mui/x-license": "8.0.0-alpha.1"
40
+ "@mui/x-internals": "8.0.0-alpha.10",
41
+ "@mui/x-license": "8.0.0-alpha.10",
42
+ "@mui/x-date-pickers": "8.0.0-alpha.10"
43
43
  },
44
44
  "peerDependencies": {
45
45
  "@emotion/react": "^11.9.0",
@@ -47,7 +47,7 @@
47
47
  "@mui/material": "^5.15.14 || ^6.0.0",
48
48
  "@mui/system": "^5.15.14 || ^6.0.0",
49
49
  "date-fns": "^2.25.0 || ^3.2.0 || ^4.0.0",
50
- "date-fns-jalali": "^2.13.0-0 || ^3.2.0-0",
50
+ "date-fns-jalali": "^2.13.0-0 || ^3.2.0-0 || ^4.0.0-0",
51
51
  "dayjs": "^1.10.7",
52
52
  "luxon": "^3.0.2",
53
53
  "moment": "^2.29.4",
@@ -1,11 +1,13 @@
1
1
  import { DateRangePickerDayClassKey } from '../DateRangePickerDay';
2
2
  import { DateRangeCalendarClassKey } from '../DateRangeCalendar';
3
3
  import { DateRangePickerToolbarClassKey } from '../DateRangePicker';
4
- import { MultiInputRangeFieldClassKey } from '../models';
5
4
  import {
6
5
  DateTimeRangePickerTabsClassKey,
7
6
  DateTimeRangePickerToolbarClassKey,
8
7
  } from '../DateTimeRangePicker';
8
+ import { MultiInputDateRangeFieldClassKey } from '../MultiInputDateRangeField';
9
+ import { MultiInputDateTimeRangeFieldClassKey } from '../MultiInputDateTimeRangeField';
10
+ import { MultiInputTimeRangeFieldClassKey } from '../MultiInputTimeRangeField';
9
11
 
10
12
  // prettier-ignore
11
13
  export interface PickersProComponentNameToClassKey {
@@ -17,9 +19,9 @@ export interface PickersProComponentNameToClassKey {
17
19
  MuiDateTimeRangePickerToolbar: DateTimeRangePickerToolbarClassKey;
18
20
 
19
21
  // Multi input range fields
20
- MuiMultiInputDateRangeField: MultiInputRangeFieldClassKey;
21
- MuiMultiInputDateTimeRangeField: MultiInputRangeFieldClassKey;
22
- MuiMultiInputTimeRangeField: MultiInputRangeFieldClassKey;
22
+ MuiMultiInputDateRangeField: MultiInputDateRangeFieldClassKey;
23
+ MuiMultiInputDateTimeRangeField: MultiInputDateTimeRangeFieldClassKey;
24
+ MuiMultiInputTimeRangeField: MultiInputTimeRangeFieldClassKey;
23
25
  }
24
26
 
25
27
  declare module '@mui/material/styles' {
@@ -1,14 +1,14 @@
1
1
  import { DateRangePickerDayProps } from '../DateRangePickerDay';
2
- import { MultiInputDateRangeFieldProps } from '../MultiInputDateRangeField/MultiInputDateRangeField.types';
3
- import { SingleInputDateRangeFieldProps } from '../SingleInputDateRangeField/SingleInputDateRangeField.types';
4
2
  import { DateRangeCalendarProps } from '../DateRangeCalendar';
5
3
  import { DateRangePickerProps } from '../DateRangePicker';
6
4
  import { ExportedDateRangePickerToolbarProps } from '../DateRangePicker/DateRangePickerToolbar';
7
5
  import { DesktopDateRangePickerProps } from '../DesktopDateRangePicker';
8
6
  import { MobileDateRangePickerProps } from '../MobileDateRangePicker';
9
7
  import { StaticDateRangePickerProps } from '../StaticDateRangePicker';
8
+ import { MultiInputDateRangeFieldProps } from '../MultiInputDateRangeField';
10
9
  import { MultiInputDateTimeRangeFieldProps } from '../MultiInputDateTimeRangeField';
11
10
  import { MultiInputTimeRangeFieldProps } from '../MultiInputTimeRangeField';
11
+ import { SingleInputDateRangeFieldProps } from '../SingleInputDateRangeField';
12
12
  import { SingleInputDateTimeRangeFieldProps } from '../SingleInputDateTimeRangeField';
13
13
  import { SingleInputTimeRangeFieldProps } from '../SingleInputTimeRangeField';
14
14
  import { DateTimeRangePickerProps } from '../DateTimeRangePicker';
@@ -1,3 +1,4 @@
1
+ import type { MakeRequired } from '@mui/x-internals/types';
1
2
  import { Validator } from '@mui/x-date-pickers/validation';
2
3
  import { BaseDateValidationProps, PickerRangeValue } from '@mui/x-date-pickers/internals';
3
4
  import { DayRangeValidationProps } from '../internals/models/dateRange';
@@ -7,6 +8,13 @@ import { DateRangeValidationError } from '../models';
7
8
  */
8
9
  export interface ExportedValidateDateRangeProps extends DayRangeValidationProps, BaseDateValidationProps {
9
10
  }
10
- export interface ValidateDateRangeProps extends DayRangeValidationProps, Required<BaseDateValidationProps> {
11
+ /**
12
+ * Validation props as received by the validateDateRange method.
13
+ */
14
+ export interface ValidateDateRangeProps extends MakeRequired<ExportedValidateDateRangeProps, ValidateDateRangePropsToDefault> {
11
15
  }
16
+ /**
17
+ * Name of the props that should be defaulted before being passed to the validateDateRange method.
18
+ */
19
+ export type ValidateDateRangePropsToDefault = keyof BaseDateValidationProps;
12
20
  export declare const validateDateRange: Validator<PickerRangeValue, DateRangeValidationError, ValidateDateRangeProps>;
@@ -9,6 +9,14 @@ import { rangeValueManager } from "../internals/utils/valueManagers.js";
9
9
  * Validation props used by the Date Range Picker, Date Range Field and Date Range Calendar components.
10
10
  */
11
11
 
12
+ /**
13
+ * Validation props as received by the validateDateRange method.
14
+ */
15
+
16
+ /**
17
+ * Name of the props that should be defaulted before being passed to the validateDateRange method.
18
+ */
19
+
12
20
  export const validateDateRange = ({
13
21
  adapter,
14
22
  value,
@@ -1,13 +1,17 @@
1
1
  import { DateTimeValidationProps, PickerRangeValue } from '@mui/x-date-pickers/internals';
2
2
  import { Validator } from '@mui/x-date-pickers/validation';
3
3
  import { DateTimeRangeValidationError } from '../models';
4
- import { ExportedValidateDateRangeProps, ValidateDateRangeProps } from './validateDateRange';
5
- import { ExportedValidateTimeRangeProps, ValidateTimeRangeProps } from './validateTimeRange';
4
+ import { ExportedValidateDateRangeProps, ValidateDateRangeProps, ValidateDateRangePropsToDefault } from './validateDateRange';
5
+ import { ExportedValidateTimeRangeProps, ValidateTimeRangeProps, ValidateTimeRangePropsToDefault } from './validateTimeRange';
6
6
  /**
7
7
  * Validation props used by the Date Time Range Picker and Date Time Range Field.
8
8
  */
9
9
  export interface ExportedValidateDateTimeRangeProps extends ExportedValidateDateRangeProps, ExportedValidateTimeRangeProps, DateTimeValidationProps {
10
10
  }
11
+ /**
12
+ * Validation props as received by the validateDateTimeRange method.
13
+ */
11
14
  export interface ValidateDateTimeRangeProps extends ValidateDateRangeProps, ValidateTimeRangeProps {
12
15
  }
16
+ export type ValidateDateTimeRangePropsToDefault = ValidateDateRangePropsToDefault | ValidateTimeRangePropsToDefault;
13
17
  export declare const validateDateTimeRange: Validator<PickerRangeValue, DateTimeRangeValidationError, ValidateDateTimeRangeProps>;
@@ -9,6 +9,10 @@ import { rangeValueManager } from "../internals/utils/valueManagers.js";
9
9
  * Validation props used by the Date Time Range Picker and Date Time Range Field.
10
10
  */
11
11
 
12
+ /**
13
+ * Validation props as received by the validateDateTimeRange method.
14
+ */
15
+
12
16
  export const validateDateTimeRange = ({
13
17
  adapter,
14
18
  value,
@@ -1,3 +1,4 @@
1
+ import type { MakeRequired } from '@mui/x-internals/types';
1
2
  import { Validator } from '@mui/x-date-pickers/validation';
2
3
  import { TimeValidationProps, BaseTimeValidationProps, PickerRangeValue } from '@mui/x-date-pickers/internals';
3
4
  import { TimeRangeValidationError } from '../models';
@@ -6,6 +7,13 @@ import { TimeRangeValidationError } from '../models';
6
7
  */
7
8
  export interface ExportedValidateTimeRangeProps extends BaseTimeValidationProps, TimeValidationProps {
8
9
  }
9
- export interface ValidateTimeRangeProps extends Required<BaseTimeValidationProps>, TimeValidationProps {
10
+ /**
11
+ * Validation props as received by the validateTimeRange method.
12
+ */
13
+ export interface ValidateTimeRangeProps extends MakeRequired<ExportedValidateTimeRangeProps, ValidateTimeRangePropsToDefault> {
10
14
  }
15
+ /**
16
+ * Name of the props that should be defaulted before being passed to the validateTimeRange method.
17
+ */
18
+ export type ValidateTimeRangePropsToDefault = keyof BaseTimeValidationProps;
11
19
  export declare const validateTimeRange: Validator<PickerRangeValue, TimeRangeValidationError, ValidateTimeRangeProps>;
@@ -6,6 +6,14 @@ import { rangeValueManager } from "../internals/utils/valueManagers.js";
6
6
  * Validation props used by the Time Range Picker and Time Range Field.
7
7
  */
8
8
 
9
+ /**
10
+ * Validation props as received by the validateTimeRange method.
11
+ */
12
+
13
+ /**
14
+ * Name of the props that should be defaulted before being passed to the validateTimeRange method.
15
+ */
16
+
9
17
  export const validateTimeRange = ({
10
18
  adapter,
11
19
  value,
@@ -1,53 +0,0 @@
1
- import * as React from 'react';
2
- import { SlotComponentProps } from '@mui/utils';
3
- import Typography from '@mui/material/Typography';
4
- import Stack, { StackProps } from '@mui/material/Stack';
5
- import TextField from '@mui/material/TextField';
6
- import { UseMultiInputRangeFieldParams } from '../internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types';
7
- import { MultiInputFieldRefs, MultiInputRangeFieldClasses, RangePosition, UseDateRangeFieldProps } from '../models';
8
- export type UseMultiInputDateRangeFieldParams<TEnableAccessibleFieldDOMStructure extends boolean, TTextFieldSlotProps extends {}> = UseMultiInputRangeFieldParams<UseMultiInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure>, TTextFieldSlotProps>;
9
- export interface UseMultiInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean> extends Omit<UseDateRangeFieldProps<TEnableAccessibleFieldDOMStructure>, 'unstableFieldRef' | 'clearable' | 'onClear'>, MultiInputFieldRefs {
10
- }
11
- export type UseMultiInputDateRangeFieldComponentProps<TEnableAccessibleFieldDOMStructure extends boolean, TChildProps extends {}> = Omit<TChildProps, keyof UseMultiInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure>> & UseMultiInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure>;
12
- export interface MultiInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean = true> extends UseMultiInputDateRangeFieldComponentProps<TEnableAccessibleFieldDOMStructure, Omit<StackProps, 'position'>> {
13
- autoFocus?: boolean;
14
- /**
15
- * Override or extend the styles applied to the component.
16
- */
17
- classes?: Partial<MultiInputRangeFieldClasses>;
18
- /**
19
- * Overridable component slots.
20
- * @default {}
21
- */
22
- slots?: MultiInputDateRangeFieldSlots;
23
- /**
24
- * The props used for each component slot.
25
- * @default {}
26
- */
27
- slotProps?: MultiInputDateRangeFieldSlotProps<TEnableAccessibleFieldDOMStructure>;
28
- }
29
- export interface MultiInputDateRangeFieldSlots {
30
- /**
31
- * Element rendered at the root.
32
- * @default MultiInputDateRangeFieldRoot
33
- */
34
- root?: React.ElementType;
35
- /**
36
- * Form control with an input to render a date.
37
- * It is rendered twice: once for the start date and once for the end date.
38
- * @default TextField from '@mui/material' or PickersTextField if `enableAccessibleFieldDOMStructure` is `true`.
39
- */
40
- textField?: React.ElementType;
41
- /**
42
- * Element rendered between the two inputs.
43
- * @default MultiInputDateRangeFieldSeparator
44
- */
45
- separator?: React.ElementType;
46
- }
47
- export interface MultiInputDateRangeFieldSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> {
48
- root?: SlotComponentProps<typeof Stack, {}, MultiInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure>>;
49
- textField?: SlotComponentProps<typeof TextField, {}, MultiInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure> & {
50
- position: RangePosition;
51
- }>;
52
- separator?: SlotComponentProps<typeof Typography, {}, MultiInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure>>;
53
- }
@@ -1,54 +0,0 @@
1
- import * as React from 'react';
2
- import { SlotComponentProps } from '@mui/utils';
3
- import Typography from '@mui/material/Typography';
4
- import Stack, { StackProps } from '@mui/material/Stack';
5
- import TextField from '@mui/material/TextField';
6
- import { UseDateTimeRangeFieldProps } from '../internals/models/dateTimeRange';
7
- import { UseMultiInputRangeFieldParams } from '../internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types';
8
- import { MultiInputFieldRefs, MultiInputRangeFieldClasses, RangePosition } from '../models';
9
- export type UseMultiInputDateTimeRangeFieldParams<TEnableAccessibleFieldDOMStructure extends boolean, TTextFieldSlotProps extends {}> = UseMultiInputRangeFieldParams<UseMultiInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>, TTextFieldSlotProps>;
10
- export interface UseMultiInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean> extends Omit<UseDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>, 'unstableFieldRef' | 'clearable' | 'onClear'>, MultiInputFieldRefs {
11
- }
12
- export type UseMultiInputDateTimeRangeFieldComponentProps<TEnableAccessibleFieldDOMStructure extends boolean, TChildProps extends {}> = Omit<TChildProps, keyof UseMultiInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>> & UseMultiInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>;
13
- export interface MultiInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean = true> extends UseMultiInputDateTimeRangeFieldComponentProps<TEnableAccessibleFieldDOMStructure, Omit<StackProps, 'position'>> {
14
- autoFocus?: boolean;
15
- /**
16
- * Override or extend the styles applied to the component.
17
- */
18
- classes?: Partial<MultiInputRangeFieldClasses>;
19
- /**
20
- * Overridable component slots.
21
- * @default {}
22
- */
23
- slots?: MultiInputDateTimeRangeFieldSlots;
24
- /**
25
- * The props used for each component slot.
26
- * @default {}
27
- */
28
- slotProps?: MultiInputDateTimeRangeFieldSlotProps<TEnableAccessibleFieldDOMStructure>;
29
- }
30
- export interface MultiInputDateTimeRangeFieldSlots {
31
- /**
32
- * Element rendered at the root.
33
- * @default MultiInputDateTimeRangeFieldRoot
34
- */
35
- root?: React.ElementType;
36
- /**
37
- * Form control with an input to render a date and time.
38
- * It is rendered twice: once for the start date time and once for the end date time.
39
- * @default TextField from '@mui/material' or PickersTextField if `enableAccessibleFieldDOMStructure` is `true`.
40
- */
41
- textField?: React.ElementType;
42
- /**
43
- * Element rendered between the two inputs.
44
- * @default MultiInputDateTimeRangeFieldSeparator
45
- */
46
- separator?: React.ElementType;
47
- }
48
- export interface MultiInputDateTimeRangeFieldSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> {
49
- root?: SlotComponentProps<typeof Stack, {}, MultiInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>>;
50
- textField?: SlotComponentProps<typeof TextField, {}, MultiInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure> & {
51
- position: RangePosition;
52
- }>;
53
- separator?: SlotComponentProps<typeof Typography, {}, MultiInputDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>>;
54
- }
@@ -1,54 +0,0 @@
1
- import * as React from 'react';
2
- import { SlotComponentProps } from '@mui/utils';
3
- import Typography from '@mui/material/Typography';
4
- import Stack, { StackProps } from '@mui/material/Stack';
5
- import TextField from '@mui/material/TextField';
6
- import { UseTimeRangeFieldProps } from '../internals/models/timeRange';
7
- import { UseMultiInputRangeFieldParams } from '../internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types';
8
- import { MultiInputFieldRefs, MultiInputRangeFieldClasses, RangePosition } from '../models';
9
- export type UseMultiInputTimeRangeFieldParams<TEnableAccessibleFieldDOMStructure extends boolean, TTextFieldSlotProps extends {}> = UseMultiInputRangeFieldParams<UseMultiInputTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>, TTextFieldSlotProps>;
10
- export interface UseMultiInputTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean> extends Omit<UseTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>, 'unstableFieldRef' | 'clearable' | 'onClear'>, MultiInputFieldRefs {
11
- }
12
- export type UseMultiInputTimeRangeFieldComponentProps<TEnableAccessibleFieldDOMStructure extends boolean, TChildProps extends {}> = Omit<TChildProps, keyof UseMultiInputTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>> & UseMultiInputTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>;
13
- export interface MultiInputTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean = true> extends UseMultiInputTimeRangeFieldComponentProps<TEnableAccessibleFieldDOMStructure, Omit<StackProps, 'position'>> {
14
- autoFocus?: boolean;
15
- /**
16
- * Override or extend the styles applied to the component.
17
- */
18
- classes?: Partial<MultiInputRangeFieldClasses>;
19
- /**
20
- * Overridable slots.
21
- * @default {}
22
- */
23
- slots?: MultiInputTimeRangeFieldSlots;
24
- /**
25
- * The props used for each component slot.
26
- * @default {}
27
- */
28
- slotProps?: MultiInputTimeRangeFieldSlotProps<TEnableAccessibleFieldDOMStructure>;
29
- }
30
- export interface MultiInputTimeRangeFieldSlots {
31
- /**
32
- * Element rendered at the root.
33
- * @default MultiInputTimeRangeFieldRoot
34
- */
35
- root?: React.ElementType;
36
- /**
37
- * Form control with an input to render a time.
38
- * It is rendered twice: once for the start time and once for the end time.
39
- * @default TextField from '@mui/material' or PickersTextField if `enableAccessibleFieldDOMStructure` is `true`.
40
- */
41
- textField?: React.ElementType;
42
- /**
43
- * Element rendered between the two inputs.
44
- * @default MultiInputTimeRangeFieldSeparator
45
- */
46
- separator?: React.ElementType;
47
- }
48
- export interface MultiInputTimeRangeFieldSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> {
49
- root?: SlotComponentProps<typeof Stack, {}, MultiInputTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>>;
50
- textField?: SlotComponentProps<typeof TextField, {}, MultiInputTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure> & {
51
- position: RangePosition;
52
- }>;
53
- separator?: SlotComponentProps<typeof Typography, {}, MultiInputTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure>>;
54
- }
@@ -1,21 +0,0 @@
1
- import * as React from 'react';
2
- import { UseFieldInternalProps } from '@mui/x-date-pickers/internals';
3
- import { FieldRef, FieldSelectedSections } from '@mui/x-date-pickers/models';
4
- import { RangeFieldSection } from '../../models';
5
- interface UseMultiInputFieldSelectedSectionsParams extends Pick<UseFieldInternalProps<any, RangeFieldSection, any, any>, 'selectedSections' | 'onSelectedSectionsChange'> {
6
- unstableStartFieldRef?: React.Ref<FieldRef<RangeFieldSection>>;
7
- unstableEndFieldRef?: React.Ref<FieldRef<RangeFieldSection>>;
8
- }
9
- export declare const useMultiInputFieldSelectedSections: (params: UseMultiInputFieldSelectedSectionsParams) => {
10
- start: {
11
- unstableFieldRef: React.Ref<FieldRef<RangeFieldSection>> | undefined;
12
- selectedSections: FieldSelectedSections;
13
- onSelectedSectionsChange: (newSelectedSections: FieldSelectedSections) => void;
14
- };
15
- end: {
16
- unstableFieldRef: ((instance: FieldRef<RangeFieldSection> | null) => void | React.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof React.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | null;
17
- selectedSections: FieldSelectedSections;
18
- onSelectedSectionsChange: (newSelectedSections: FieldSelectedSections) => void;
19
- };
20
- };
21
- export {};
@@ -1 +0,0 @@
1
- export declare const excludeProps: <TProps extends {}>(props: TProps, excludedProps: Array<keyof TProps>) => TProps;
@@ -1,9 +0,0 @@
1
- /* TODO: remove this when a clearable behavior for multiple input range fields is implemented */
2
- export const excludeProps = (props, excludedProps) => {
3
- return Object.keys(props).reduce((acc, key) => {
4
- if (!excludedProps.includes(key)) {
5
- acc[key] = props[key];
6
- }
7
- return acc;
8
- }, {});
9
- };
@@ -1,3 +0,0 @@
1
- import { UseMultiInputDateRangeFieldParams } from '../../../MultiInputDateRangeField/MultiInputDateRangeField.types';
2
- import type { UseMultiInputRangeFieldResponse } from './useMultiInputRangeField.types';
3
- export declare const useMultiInputDateRangeField: <TEnableAccessibleFieldDOMStructure extends boolean, TTextFieldSlotProps extends {}>({ sharedProps: inSharedProps, startTextFieldProps, unstableStartFieldRef, endTextFieldProps, unstableEndFieldRef, }: UseMultiInputDateRangeFieldParams<TEnableAccessibleFieldDOMStructure, TTextFieldSlotProps>) => UseMultiInputRangeFieldResponse<TEnableAccessibleFieldDOMStructure, TTextFieldSlotProps>;
@@ -1,113 +0,0 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
- import useEventCallback from '@mui/utils/useEventCallback';
3
- import { unstable_useDateField as useDateField } from '@mui/x-date-pickers/DateField';
4
- import { useControlledValueWithTimezone, useDefaultizedDateField } from '@mui/x-date-pickers/internals';
5
- import { useValidation } from '@mui/x-date-pickers/validation';
6
- import { validateDateRange } from "../../../validation/index.js";
7
- import { rangeValueManager } from "../../utils/valueManagers.js";
8
- import { excludeProps } from "./shared.js";
9
- import { useMultiInputFieldSelectedSections } from "../useMultiInputFieldSelectedSections.js";
10
- export const useMultiInputDateRangeField = ({
11
- sharedProps: inSharedProps,
12
- startTextFieldProps,
13
- unstableStartFieldRef,
14
- endTextFieldProps,
15
- unstableEndFieldRef
16
- }) => {
17
- const sharedProps = useDefaultizedDateField(inSharedProps);
18
- const {
19
- value: valueProp,
20
- defaultValue,
21
- referenceDate,
22
- format,
23
- formatDensity,
24
- shouldRespectLeadingZeros,
25
- onChange,
26
- disabled,
27
- readOnly,
28
- selectedSections,
29
- onSelectedSectionsChange,
30
- timezone: timezoneProp,
31
- enableAccessibleFieldDOMStructure,
32
- autoFocus
33
- } = sharedProps;
34
- const {
35
- value,
36
- handleValueChange,
37
- timezone
38
- } = useControlledValueWithTimezone({
39
- name: 'useMultiInputDateRangeField',
40
- timezone: timezoneProp,
41
- value: valueProp,
42
- defaultValue,
43
- referenceDate,
44
- onChange,
45
- valueManager: rangeValueManager
46
- });
47
- const {
48
- validationError,
49
- getValidationErrorForNewValue
50
- } = useValidation({
51
- props: sharedProps,
52
- value,
53
- timezone,
54
- validator: validateDateRange,
55
- onError: sharedProps.onError
56
- });
57
-
58
- // TODO: Maybe export utility from `useField` instead of copy/pasting the logic
59
- const buildChangeHandler = index => {
60
- return (newDate, rawContext) => {
61
- const newDateRange = index === 0 ? [newDate, value[1]] : [value[0], newDate];
62
- const context = _extends({}, rawContext, {
63
- validationError: getValidationErrorForNewValue(newDateRange)
64
- });
65
- handleValueChange(newDateRange, context);
66
- };
67
- };
68
- const handleStartDateChange = useEventCallback(buildChangeHandler(0));
69
- const handleEndDateChange = useEventCallback(buildChangeHandler(1));
70
- const selectedSectionsResponse = useMultiInputFieldSelectedSections({
71
- selectedSections,
72
- onSelectedSectionsChange,
73
- unstableStartFieldRef,
74
- unstableEndFieldRef
75
- });
76
- const startFieldProps = _extends({
77
- error: !!validationError[0]
78
- }, startTextFieldProps, selectedSectionsResponse.start, {
79
- disabled,
80
- readOnly,
81
- format,
82
- formatDensity,
83
- shouldRespectLeadingZeros,
84
- timezone,
85
- value: valueProp === undefined ? undefined : valueProp[0],
86
- defaultValue: defaultValue === undefined ? undefined : defaultValue[0],
87
- onChange: handleStartDateChange,
88
- enableAccessibleFieldDOMStructure,
89
- autoFocus // Do not add on end field.
90
- });
91
- const endFieldProps = _extends({
92
- error: !!validationError[1]
93
- }, endTextFieldProps, selectedSectionsResponse.end, {
94
- format,
95
- formatDensity,
96
- shouldRespectLeadingZeros,
97
- disabled,
98
- readOnly,
99
- timezone,
100
- value: valueProp === undefined ? undefined : valueProp[1],
101
- defaultValue: defaultValue === undefined ? undefined : defaultValue[1],
102
- onChange: handleEndDateChange,
103
- enableAccessibleFieldDOMStructure
104
- });
105
- const startDateResponse = useDateField(startFieldProps);
106
- const endDateResponse = useDateField(endFieldProps);
107
-
108
- /* TODO: Undo this change when a clearable behavior for multiple input range fields is implemented */
109
- return {
110
- startDate: excludeProps(startDateResponse, ['clearable', 'onClear']),
111
- endDate: excludeProps(endDateResponse, ['clearable', 'onClear'])
112
- };
113
- };
@@ -1,3 +0,0 @@
1
- import type { UseMultiInputDateTimeRangeFieldParams } from '../../../MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types';
2
- import type { UseMultiInputRangeFieldResponse } from './useMultiInputRangeField.types';
3
- export declare const useMultiInputDateTimeRangeField: <TEnableAccessibleFieldDOMStructure extends boolean, TTextFieldSlotProps extends {}>({ sharedProps: inSharedProps, startTextFieldProps, unstableStartFieldRef, endTextFieldProps, unstableEndFieldRef, }: UseMultiInputDateTimeRangeFieldParams<TEnableAccessibleFieldDOMStructure, TTextFieldSlotProps>) => UseMultiInputRangeFieldResponse<TEnableAccessibleFieldDOMStructure, TTextFieldSlotProps>;