@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
@@ -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,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
  });
@@ -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.js";
2
+ export { useMultiInputRangeField as unstable_useMultiInputRangeField } from "./useMultiInputRangeField/index.js";
@@ -0,0 +1 @@
1
+ export { useMultiInputRangeField } from "./useMultiInputRangeField.js";
@@ -0,0 +1,149 @@
1
+ 'use client';
2
+
3
+ import _extends from "@babel/runtime/helpers/esm/extends";
4
+ import useEventCallback from '@mui/utils/useEventCallback';
5
+ import { useControlledValueWithTimezone, useFieldInternalPropsWithDefaults } from '@mui/x-date-pickers/internals';
6
+ import { useValidation } from '@mui/x-date-pickers/validation';
7
+ import { useMultiInputRangeFieldTextFieldProps } from "./useMultiInputRangeFieldTextFieldProps.js";
8
+ import { useMultiInputRangeFieldSelectedSections } from "./useMultiInputRangeFieldSelectedSections.js";
9
+ /**
10
+ * Basic example:
11
+ *
12
+ * ```tsx
13
+ * import Box from '@mui/material/Box';
14
+ * import { useSplitFieldProps } from '@mui/x-date-pickers/hooks';
15
+ * import { PickersTextField } from '@mui/x-date-pickers/PickersTextField';
16
+ * import { useDateRangeManager } from '@mui/x-date-pickers-pro/managers';
17
+ *
18
+ * function MultiInputField(props) {
19
+ * const manager = useDateRangeManager();
20
+ * const { internalProps, forwardedProps } = useSplitFieldProps(props, 'date');
21
+ * const { startDate, endDate } = useMultiInputRangeField({
22
+ * manager,
23
+ * internalProps,
24
+ * startForwardedProps: forwardedProps,
25
+ * endForwardedProps: forwardedProps,
26
+ * });
27
+ *
28
+ * return (
29
+ * <Box {...forwardedProps}>
30
+ * <PickersTextField {...startDate} />
31
+ * <span>{' – '}</span>
32
+ * <PickersTextField {...endDate} />
33
+ * </Box>
34
+ * );
35
+ * }
36
+ * ```
37
+ *
38
+ * @param {UseMultiInputRangeFieldParameters<TManager, TForwardedProps>} parameters The parameters of the hook.
39
+ * @param {TManager} parameters.manager The manager of the field.
40
+ * @param {PickerManagerFieldInternalProps<TManager>} parameters.internalProps The internal props of the field.
41
+ * @param {TForwardedProps} parameters.startForwardedProps The forwarded props of the start field.
42
+ * @param {TForwardedProps} parameters.endForwardedProps The forwarded props of the end field.
43
+ * @returns {UseMultiInputRangeFieldReturnValue<TManager, TForwardedProps>} The props to pass to the start and the end components.
44
+ */
45
+ export function useMultiInputRangeField(parameters) {
46
+ const {
47
+ manager,
48
+ internalProps,
49
+ startForwardedProps,
50
+ endForwardedProps
51
+ } = parameters;
52
+ const internalPropsWithDefaults = useFieldInternalPropsWithDefaults({
53
+ manager,
54
+ internalProps
55
+ });
56
+ const {
57
+ value: valueProp,
58
+ defaultValue,
59
+ format,
60
+ formatDensity,
61
+ shouldRespectLeadingZeros,
62
+ onChange,
63
+ disabled,
64
+ readOnly,
65
+ selectedSections,
66
+ onSelectedSectionsChange,
67
+ timezone: timezoneProp,
68
+ enableAccessibleFieldDOMStructure,
69
+ autoFocus,
70
+ referenceDate,
71
+ unstableStartFieldRef,
72
+ unstableEndFieldRef
73
+ } = internalPropsWithDefaults;
74
+ const {
75
+ value,
76
+ handleValueChange,
77
+ timezone
78
+ } = useControlledValueWithTimezone({
79
+ name: 'useMultiInputRangeField',
80
+ timezone: timezoneProp,
81
+ value: valueProp,
82
+ defaultValue,
83
+ referenceDate,
84
+ onChange,
85
+ valueManager: manager.internal_valueManager
86
+ });
87
+ const {
88
+ validationError,
89
+ getValidationErrorForNewValue
90
+ } = useValidation({
91
+ props: internalPropsWithDefaults,
92
+ value,
93
+ timezone,
94
+ validator: manager.validator,
95
+ onError: internalPropsWithDefaults.onError
96
+ });
97
+ const buildChangeHandler = index => {
98
+ return (newSingleValue, rawContext) => {
99
+ const newRange = index === 0 ? [newSingleValue, value[1]] : [value[0], newSingleValue];
100
+ const context = _extends({}, rawContext, {
101
+ validationError: getValidationErrorForNewValue(newRange)
102
+ });
103
+ handleValueChange(newRange, context);
104
+ };
105
+ };
106
+ const handleStartDateChange = useEventCallback(buildChangeHandler(0));
107
+ const handleEndDateChange = useEventCallback(buildChangeHandler(1));
108
+ const selectedSectionsResponse = useMultiInputRangeFieldSelectedSections({
109
+ selectedSections,
110
+ onSelectedSectionsChange,
111
+ unstableStartFieldRef,
112
+ unstableEndFieldRef
113
+ });
114
+ const sharedProps = {
115
+ disabled,
116
+ readOnly,
117
+ timezone,
118
+ format,
119
+ formatDensity,
120
+ shouldRespectLeadingZeros,
121
+ enableAccessibleFieldDOMStructure
122
+ };
123
+ const startDateProps = useMultiInputRangeFieldTextFieldProps({
124
+ valueType: manager.valueType,
125
+ fieldProps: _extends({
126
+ error: !!validationError[0]
127
+ }, startForwardedProps, selectedSectionsResponse.start, sharedProps, {
128
+ value: valueProp === undefined ? undefined : valueProp[0],
129
+ defaultValue: defaultValue === undefined ? undefined : defaultValue[0],
130
+ onChange: handleStartDateChange,
131
+ autoFocus // Do not add on end field.
132
+ })
133
+ });
134
+ const endDateProps = useMultiInputRangeFieldTextFieldProps({
135
+ valueType: manager.valueType,
136
+ fieldProps: _extends({
137
+ error: !!validationError[1]
138
+ }, endForwardedProps, selectedSectionsResponse.end, sharedProps, {
139
+ value: valueProp === undefined ? undefined : valueProp[1],
140
+ defaultValue: defaultValue === undefined ? undefined : defaultValue[1],
141
+ onChange: handleEndDateChange
142
+ })
143
+ });
144
+ return {
145
+ startDate: startDateProps,
146
+ endDate: endDateProps,
147
+ enableAccessibleFieldDOMStructure
148
+ };
149
+ }
@@ -1,10 +1,12 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
4
  import useForkRef from '@mui/utils/useForkRef';
3
5
  import useEventCallback from '@mui/utils/useEventCallback';
4
- export const useMultiInputFieldSelectedSections = params => {
6
+ export const useMultiInputRangeFieldSelectedSections = parameters => {
5
7
  const unstableEndFieldRef = React.useRef(null);
6
- const handleUnstableEndFieldRef = useForkRef(params.unstableEndFieldRef, unstableEndFieldRef);
7
- const [startSelectedSection, setStartSelectedSection] = React.useState(params.selectedSections ?? null);
8
+ const handleUnstableEndFieldRef = useForkRef(parameters.unstableEndFieldRef, unstableEndFieldRef);
9
+ const [startSelectedSection, setStartSelectedSection] = React.useState(parameters.selectedSections ?? null);
8
10
  const [endSelectedSection, setEndSelectedSection] = React.useState(null);
9
11
  const getActiveField = () => {
10
12
  if (unstableEndFieldRef.current && unstableEndFieldRef.current.isFieldFocused()) {
@@ -15,25 +17,25 @@ export const useMultiInputFieldSelectedSections = params => {
15
17
  const handleStartSelectedSectionChange = useEventCallback(newSelectedSections => {
16
18
  setStartSelectedSection(newSelectedSections);
17
19
  if (getActiveField() === 'start') {
18
- params.onSelectedSectionsChange?.(newSelectedSections);
20
+ parameters.onSelectedSectionsChange?.(newSelectedSections);
19
21
  }
20
22
  });
21
23
  const handleEndSelectedSectionChange = useEventCallback(newSelectedSections => {
22
24
  setEndSelectedSection(newSelectedSections);
23
25
  if (getActiveField() === 'end') {
24
- params.onSelectedSectionsChange?.(newSelectedSections);
26
+ parameters.onSelectedSectionsChange?.(newSelectedSections);
25
27
  }
26
28
  });
27
29
  const activeField = getActiveField();
28
30
  return {
29
31
  start: {
30
- unstableFieldRef: params.unstableStartFieldRef,
31
- selectedSections: activeField === 'start' && params.selectedSections !== undefined ? params.selectedSections : startSelectedSection,
32
+ unstableFieldRef: parameters.unstableStartFieldRef,
33
+ selectedSections: activeField === 'start' && parameters.selectedSections !== undefined ? parameters.selectedSections : startSelectedSection,
32
34
  onSelectedSectionsChange: handleStartSelectedSectionChange
33
35
  },
34
36
  end: {
35
37
  unstableFieldRef: handleUnstableEndFieldRef,
36
- selectedSections: activeField === 'end' && params.selectedSections !== undefined ? params.selectedSections : endSelectedSection,
38
+ selectedSections: activeField === 'end' && parameters.selectedSections !== undefined ? parameters.selectedSections : endSelectedSection,
37
39
  onSelectedSectionsChange: handleEndSelectedSectionChange
38
40
  }
39
41
  };
@@ -0,0 +1,59 @@
1
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
+ const _excluded = ["clearable", "onClear"];
3
+ import { useDateManager, useDateTimeManager, useTimeManager } from '@mui/x-date-pickers/managers';
4
+ import { useSplitFieldProps } from '@mui/x-date-pickers/hooks';
5
+ import { useField, useFieldInternalPropsWithDefaults } from '@mui/x-date-pickers/internals';
6
+ /**
7
+ * @ignore - internal hook.
8
+ */
9
+ export function useMultiInputRangeFieldTextFieldProps(parameters) {
10
+ const {
11
+ fieldProps,
12
+ valueType
13
+ } = parameters;
14
+ let useManager;
15
+ switch (valueType) {
16
+ case 'date':
17
+ {
18
+ useManager = useDateManager;
19
+ break;
20
+ }
21
+ case 'time':
22
+ {
23
+ useManager = useTimeManager;
24
+ break;
25
+ }
26
+ case 'date-time':
27
+ {
28
+ useManager = useDateTimeManager;
29
+ break;
30
+ }
31
+ default:
32
+ {
33
+ throw new Error(`Unknown valueType: ${valueType}`);
34
+ }
35
+ }
36
+ const manager = useManager({
37
+ enableAccessibleFieldDOMStructure: fieldProps.enableAccessibleFieldDOMStructure
38
+ });
39
+ const {
40
+ forwardedProps,
41
+ internalProps
42
+ } = useSplitFieldProps(fieldProps, 'date');
43
+ const internalPropsWithDefaults = useFieldInternalPropsWithDefaults({
44
+ manager,
45
+ internalProps
46
+ });
47
+ const _ref = useField({
48
+ forwardedProps,
49
+ internalProps: internalPropsWithDefaults,
50
+ valueManager: manager.internal_valueManager,
51
+ fieldValueManager: manager.internal_fieldValueManager,
52
+ validator: manager.validator,
53
+ valueType: manager.valueType,
54
+ // TODO v8: Add a real aria label before moving the opening logic to the field on range pickers.
55
+ getOpenPickerButtonAriaLabel: () => ''
56
+ }),
57
+ fieldResponse = _objectWithoutPropertiesLoose(_ref, _excluded);
58
+ return fieldResponse;
59
+ }
@@ -0,0 +1,15 @@
1
+ 'use client';
2
+
3
+ import * as React from 'react';
4
+ export const PickerRangePositionContext = /*#__PURE__*/React.createContext(null);
5
+
6
+ /**
7
+ * Returns information about the range position of the picker that wraps the current component.
8
+ */
9
+ export function usePickerRangePositionContext() {
10
+ const value = React.useContext(PickerRangePositionContext);
11
+ if (value == null) {
12
+ throw new Error(['MUI X: The `usePickerRangePositionContext` can only be called in components that are used inside a picker component'].join('\n'));
13
+ }
14
+ return value;
15
+ }
package/modern/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-date-pickers-pro v8.0.0-alpha.1
2
+ * @mui/x-date-pickers-pro v8.0.0-alpha.10
3
3
  *
4
4
  * @license MUI X Commercial
5
5
  * This source code is licensed under the commercial license found in the
@@ -32,4 +32,6 @@ export * from "./MobileDateTimeRangePicker/index.js";
32
32
  // View renderers
33
33
  export * from "./dateRangeViewRenderers/index.js";
34
34
  export * from "./models/index.js";
35
- export * from "./validation/index.js";
35
+ export * from "./hooks/index.js";
36
+ export * from "./validation/index.js";
37
+ export * from "./managers/index.js";