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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (294) hide show
  1. package/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.d.ts +1 -1
  2. package/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.js +1 -1
  3. package/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/package.json +1 -1
  4. package/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.d.ts +1 -1
  5. package/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.js +1 -1
  6. package/{AdapterDateFnsV3 → AdapterDateFnsV2}/package.json +1 -1
  7. package/CHANGELOG.md +2007 -230
  8. package/DateRangeCalendar/DateRangeCalendar.js +73 -46
  9. package/DateRangePicker/DateRangePicker.js +1 -4
  10. package/DateRangePicker/DateRangePicker.types.d.ts +6 -2
  11. package/DateRangePicker/DateRangePickerToolbar.d.ts +2 -3
  12. package/DateRangePicker/DateRangePickerToolbar.js +33 -41
  13. package/DateRangePicker/shared.d.ts +4 -3
  14. package/DateTimeRangePicker/DateTimeRangePicker.js +2 -5
  15. package/DateTimeRangePicker/DateTimeRangePicker.types.d.ts +1 -2
  16. package/DateTimeRangePicker/DateTimeRangePickerTabs.d.ts +4 -5
  17. package/DateTimeRangePicker/DateTimeRangePickerTabs.js +35 -33
  18. package/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.d.ts +8 -10
  19. package/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +8 -6
  20. package/DateTimeRangePicker/DateTimeRangePickerToolbar.d.ts +2 -5
  21. package/DateTimeRangePicker/DateTimeRangePickerToolbar.js +81 -109
  22. package/DateTimeRangePicker/shared.d.ts +6 -5
  23. package/DesktopDateRangePicker/DesktopDateRangePicker.js +11 -9
  24. package/DesktopDateRangePicker/DesktopDateRangePicker.types.d.ts +7 -2
  25. package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +20 -22
  26. package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.types.d.ts +2 -3
  27. package/MobileDateRangePicker/MobileDateRangePicker.js +6 -8
  28. package/MobileDateRangePicker/MobileDateRangePicker.types.d.ts +2 -2
  29. package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +20 -16
  30. package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.types.d.ts +2 -3
  31. package/MultiInputDateRangeField/MultiInputDateRangeField.d.ts +9 -4
  32. package/MultiInputDateRangeField/MultiInputDateRangeField.js +15 -121
  33. package/MultiInputDateRangeField/index.d.ts +5 -3
  34. package/MultiInputDateRangeField/index.js +2 -2
  35. package/MultiInputDateRangeField/multiInputDateRangeFieldClasses.d.ts +6 -0
  36. package/MultiInputDateRangeField/multiInputDateRangeFieldClasses.js +4 -0
  37. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.d.ts +9 -4
  38. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +15 -121
  39. package/MultiInputDateTimeRangeField/index.d.ts +5 -3
  40. package/MultiInputDateTimeRangeField/index.js +2 -2
  41. package/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.d.ts +6 -0
  42. package/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.js +4 -0
  43. package/MultiInputTimeRangeField/MultiInputTimeRangeField.d.ts +9 -4
  44. package/MultiInputTimeRangeField/MultiInputTimeRangeField.js +16 -122
  45. package/MultiInputTimeRangeField/index.d.ts +5 -3
  46. package/MultiInputTimeRangeField/index.js +2 -2
  47. package/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.d.ts +6 -0
  48. package/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.js +4 -0
  49. package/PickersRangeCalendarHeader/PickersRangeCalendarHeader.js +2 -2
  50. package/README.md +8 -5
  51. package/SingleInputDateRangeField/SingleInputDateRangeField.js +23 -33
  52. package/SingleInputDateRangeField/SingleInputDateRangeField.types.d.ts +6 -16
  53. package/SingleInputDateRangeField/useSingleInputDateRangeField.d.ts +1 -1
  54. package/SingleInputDateRangeField/useSingleInputDateRangeField.js +14 -14
  55. package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +23 -33
  56. package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.types.d.ts +6 -17
  57. package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.d.ts +1 -1
  58. package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +14 -14
  59. package/SingleInputTimeRangeField/SingleInputTimeRangeField.js +23 -33
  60. package/SingleInputTimeRangeField/SingleInputTimeRangeField.types.d.ts +6 -17
  61. package/SingleInputTimeRangeField/useSingleInputTimeRangeField.d.ts +1 -1
  62. package/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +14 -14
  63. package/StaticDateRangePicker/StaticDateRangePicker.js +2 -2
  64. package/StaticDateRangePicker/StaticDateRangePicker.types.d.ts +2 -2
  65. package/dateRangeViewRenderers/dateRangeViewRenderers.d.ts +2 -2
  66. package/dateRangeViewRenderers/dateRangeViewRenderers.js +0 -6
  67. package/hooks/index.d.ts +2 -0
  68. package/hooks/index.js +2 -0
  69. package/hooks/package.json +6 -0
  70. package/hooks/useMultiInputRangeField/index.d.ts +1 -0
  71. package/hooks/useMultiInputRangeField/index.js +1 -0
  72. package/hooks/useMultiInputRangeField/useMultiInputRangeField.d.ts +53 -0
  73. package/hooks/useMultiInputRangeField/useMultiInputRangeField.js +149 -0
  74. package/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.d.ts +17 -0
  75. package/{modern/internals/hooks/useMultiInputFieldSelectedSections.js → hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js} +10 -8
  76. package/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.d.ts +17 -0
  77. package/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +59 -0
  78. package/hooks/usePickerRangePositionContext.d.ts +7 -0
  79. package/hooks/usePickerRangePositionContext.js +15 -0
  80. package/index.d.ts +2 -0
  81. package/index.js +4 -2
  82. package/internals/hooks/models/index.d.ts +1 -1
  83. package/internals/hooks/models/useRangePicker.d.ts +8 -11
  84. package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +68 -100
  85. package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.types.d.ts +8 -10
  86. package/internals/hooks/{useEnrichedRangePickerFieldProps.d.ts → useEnrichedRangePickerField.d.ts} +25 -16
  87. package/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +50 -63
  88. package/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +57 -80
  89. package/internals/hooks/useMobileRangePicker/useMobileRangePicker.types.d.ts +7 -9
  90. package/internals/hooks/useNullablePickerRangePositionContext.d.ts +5 -0
  91. package/internals/hooks/useNullablePickerRangePositionContext.js +10 -0
  92. package/internals/hooks/useRangePosition.d.ts +4 -3
  93. package/internals/hooks/useRangePosition.js +1 -1
  94. package/internals/hooks/useStaticRangePicker/useStaticRangePicker.d.ts +1 -1
  95. package/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +17 -30
  96. package/internals/hooks/useStaticRangePicker/useStaticRangePicker.types.d.ts +6 -12
  97. package/internals/models/dateTimeRange.d.ts +1 -6
  98. package/internals/models/fields.d.ts +7 -11
  99. package/internals/models/index.d.ts +0 -1
  100. package/internals/models/index.js +0 -1
  101. package/internals/models/managers.d.ts +3 -0
  102. package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.d.ts +3 -0
  103. package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +136 -0
  104. package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.d.ts +72 -0
  105. package/internals/utils/createMultiInputRangeField/index.d.ts +3 -0
  106. package/internals/utils/createMultiInputRangeField/index.js +2 -0
  107. package/internals/utils/date-fields-utils.d.ts +6 -6
  108. package/internals/utils/date-range-manager.js +2 -1
  109. package/internals/utils/releaseInfo.js +1 -1
  110. package/internals/utils/valueManagers.d.ts +4 -3
  111. package/internals/utils/valueManagers.js +7 -7
  112. package/managers/index.d.ts +6 -0
  113. package/managers/index.js +3 -0
  114. package/managers/package.json +6 -0
  115. package/managers/useDateRangeManager.d.ts +15 -0
  116. package/managers/useDateRangeManager.js +33 -0
  117. package/managers/useDateTimeRangeManager.d.ts +15 -0
  118. package/managers/useDateTimeRangeManager.js +33 -0
  119. package/managers/useTimeRangeManager.d.ts +15 -0
  120. package/managers/useTimeRangeManager.js +31 -0
  121. package/models/fields.d.ts +7 -11
  122. package/models/index.d.ts +1 -2
  123. package/models/index.js +1 -2
  124. package/models/range.d.ts +0 -2
  125. package/modern/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.js +1 -1
  126. package/modern/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.js +1 -1
  127. package/modern/DateRangeCalendar/DateRangeCalendar.js +73 -46
  128. package/modern/DateRangePicker/DateRangePicker.js +1 -4
  129. package/modern/DateRangePicker/DateRangePickerToolbar.js +33 -41
  130. package/modern/DateTimeRangePicker/DateTimeRangePicker.js +2 -5
  131. package/modern/DateTimeRangePicker/DateTimeRangePickerTabs.js +35 -33
  132. package/modern/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +8 -6
  133. package/modern/DateTimeRangePicker/DateTimeRangePickerToolbar.js +81 -109
  134. package/modern/DesktopDateRangePicker/DesktopDateRangePicker.js +11 -9
  135. package/modern/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +20 -22
  136. package/modern/MobileDateRangePicker/MobileDateRangePicker.js +6 -8
  137. package/modern/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +20 -16
  138. package/modern/MultiInputDateRangeField/MultiInputDateRangeField.js +15 -121
  139. package/modern/MultiInputDateRangeField/index.js +2 -2
  140. package/modern/MultiInputDateRangeField/multiInputDateRangeFieldClasses.js +4 -0
  141. package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +15 -121
  142. package/modern/MultiInputDateTimeRangeField/index.js +2 -2
  143. package/modern/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.js +4 -0
  144. package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.js +16 -122
  145. package/modern/MultiInputTimeRangeField/index.js +2 -2
  146. package/modern/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.js +4 -0
  147. package/modern/PickersRangeCalendarHeader/PickersRangeCalendarHeader.js +2 -2
  148. package/modern/SingleInputDateRangeField/SingleInputDateRangeField.js +23 -33
  149. package/modern/SingleInputDateRangeField/useSingleInputDateRangeField.js +14 -14
  150. package/modern/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +23 -33
  151. package/modern/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +14 -14
  152. package/modern/SingleInputTimeRangeField/SingleInputTimeRangeField.js +23 -33
  153. package/modern/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +14 -14
  154. package/modern/StaticDateRangePicker/StaticDateRangePicker.js +2 -2
  155. package/modern/dateRangeViewRenderers/dateRangeViewRenderers.js +0 -6
  156. package/modern/hooks/index.js +2 -0
  157. package/modern/hooks/useMultiInputRangeField/index.js +1 -0
  158. package/modern/hooks/useMultiInputRangeField/useMultiInputRangeField.js +149 -0
  159. package/{internals/hooks/useMultiInputFieldSelectedSections.js → modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js} +10 -8
  160. package/modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +59 -0
  161. package/modern/hooks/usePickerRangePositionContext.js +15 -0
  162. package/modern/index.js +4 -2
  163. package/modern/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +68 -100
  164. package/modern/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +50 -63
  165. package/modern/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +57 -80
  166. package/modern/internals/hooks/useNullablePickerRangePositionContext.js +10 -0
  167. package/modern/internals/hooks/useRangePosition.js +1 -1
  168. package/modern/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +17 -30
  169. package/modern/internals/models/index.js +0 -1
  170. package/modern/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +136 -0
  171. package/modern/internals/utils/createMultiInputRangeField/index.js +2 -0
  172. package/modern/internals/utils/date-range-manager.js +2 -1
  173. package/modern/internals/utils/releaseInfo.js +1 -1
  174. package/modern/internals/utils/valueManagers.js +7 -7
  175. package/modern/managers/index.js +3 -0
  176. package/modern/managers/useDateRangeManager.js +33 -0
  177. package/modern/managers/useDateTimeRangeManager.js +33 -0
  178. package/modern/managers/useTimeRangeManager.js +31 -0
  179. package/modern/models/index.js +1 -2
  180. package/modern/validation/validateDateRange.js +8 -0
  181. package/modern/validation/validateDateTimeRange.js +4 -0
  182. package/modern/validation/validateTimeRange.js +8 -0
  183. package/node/{AdapterDateFnsJalaliV3 → AdapterDateFnsJalaliV2}/index.js +1 -1
  184. package/node/{AdapterDateFnsV3 → AdapterDateFnsV2}/index.js +1 -1
  185. package/node/DateRangeCalendar/DateRangeCalendar.js +72 -45
  186. package/node/DateRangePicker/DateRangePicker.js +1 -4
  187. package/node/DateRangePicker/DateRangePickerToolbar.js +31 -39
  188. package/node/DateTimeRangePicker/DateTimeRangePicker.js +2 -5
  189. package/node/DateTimeRangePicker/DateTimeRangePickerTabs.js +33 -31
  190. package/node/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +8 -6
  191. package/node/DateTimeRangePicker/DateTimeRangePickerToolbar.js +80 -108
  192. package/node/DesktopDateRangePicker/DesktopDateRangePicker.js +11 -9
  193. package/node/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +20 -22
  194. package/node/MobileDateRangePicker/MobileDateRangePicker.js +6 -8
  195. package/node/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +20 -16
  196. package/node/MultiInputDateRangeField/MultiInputDateRangeField.js +14 -124
  197. package/node/MultiInputDateRangeField/index.js +3 -9
  198. package/node/MultiInputDateRangeField/multiInputDateRangeFieldClasses.js +12 -0
  199. package/node/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +14 -124
  200. package/node/MultiInputDateTimeRangeField/index.js +3 -9
  201. package/node/MultiInputDateTimeRangeField/multiInputDateTimeRangeFieldClasses.js +12 -0
  202. package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.js +15 -125
  203. package/node/MultiInputTimeRangeField/index.js +3 -9
  204. package/node/MultiInputTimeRangeField/multiInputTimeRangeFieldClasses.js +12 -0
  205. package/node/PickersRangeCalendarHeader/PickersRangeCalendarHeader.js +2 -2
  206. package/node/SingleInputDateRangeField/SingleInputDateRangeField.js +22 -32
  207. package/node/SingleInputDateRangeField/useSingleInputDateRangeField.js +13 -14
  208. package/node/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +22 -32
  209. package/node/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +13 -14
  210. package/node/SingleInputTimeRangeField/SingleInputTimeRangeField.js +22 -32
  211. package/node/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +13 -14
  212. package/node/StaticDateRangePicker/StaticDateRangePicker.js +2 -2
  213. package/node/dateRangeViewRenderers/dateRangeViewRenderers.js +0 -6
  214. package/node/hooks/index.js +19 -0
  215. package/node/hooks/useMultiInputRangeField/index.js +12 -0
  216. package/node/hooks/useMultiInputRangeField/useMultiInputRangeField.js +155 -0
  217. package/node/{internals/hooks/useMultiInputFieldSelectedSections.js → hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js} +11 -10
  218. package/node/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +66 -0
  219. package/node/hooks/usePickerRangePositionContext.js +22 -0
  220. package/node/index.js +23 -1
  221. package/node/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +68 -100
  222. package/node/internals/hooks/{useEnrichedRangePickerFieldProps.js → useEnrichedRangePickerField.js} +52 -65
  223. package/node/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +57 -80
  224. package/node/internals/hooks/useNullablePickerRangePositionContext.js +16 -0
  225. package/node/internals/hooks/useRangePosition.js +1 -1
  226. package/node/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +16 -29
  227. package/node/internals/models/index.js +0 -11
  228. package/node/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +143 -0
  229. package/node/internals/utils/createMultiInputRangeField/index.js +19 -0
  230. package/node/internals/utils/date-range-manager.js +2 -1
  231. package/node/internals/utils/releaseInfo.js +1 -1
  232. package/node/internals/utils/valueManagers.js +7 -7
  233. package/node/managers/index.js +26 -0
  234. package/node/managers/useDateRangeManager.js +40 -0
  235. package/node/managers/useDateTimeRangeManager.js +40 -0
  236. package/node/managers/useTimeRangeManager.js +38 -0
  237. package/node/models/index.js +0 -22
  238. package/node/validation/validateDateRange.js +8 -0
  239. package/node/validation/validateDateTimeRange.js +4 -0
  240. package/node/validation/validateTimeRange.js +8 -0
  241. package/package.json +6 -6
  242. package/themeAugmentation/overrides.d.ts +6 -4
  243. package/themeAugmentation/props.d.ts +2 -2
  244. package/validation/validateDateRange.d.ts +9 -1
  245. package/validation/validateDateRange.js +8 -0
  246. package/validation/validateDateTimeRange.d.ts +6 -2
  247. package/validation/validateDateTimeRange.js +4 -0
  248. package/validation/validateTimeRange.d.ts +9 -1
  249. package/validation/validateTimeRange.js +8 -0
  250. package/MultiInputDateRangeField/MultiInputDateRangeField.types.d.ts +0 -53
  251. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.d.ts +0 -54
  252. package/MultiInputTimeRangeField/MultiInputTimeRangeField.types.d.ts +0 -54
  253. package/internals/hooks/useMultiInputFieldSelectedSections.d.ts +0 -21
  254. package/internals/hooks/useMultiInputRangeField/shared.d.ts +0 -1
  255. package/internals/hooks/useMultiInputRangeField/shared.js +0 -9
  256. package/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.d.ts +0 -3
  257. package/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +0 -113
  258. package/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.d.ts +0 -3
  259. package/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -113
  260. package/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.d.ts +0 -11
  261. package/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.d.ts +0 -3
  262. package/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +0 -113
  263. package/internals/models/timeRange.d.ts +0 -6
  264. package/internals/models/timeRange.js +0 -1
  265. package/models/dateRange.d.ts +0 -7
  266. package/models/dateRange.js +0 -1
  267. package/models/multiInputRangeFieldClasses.d.ts +0 -7
  268. package/models/multiInputRangeFieldClasses.js +0 -1
  269. package/modern/MultiInputDateRangeField/MultiInputDateRangeField.types.js +0 -1
  270. package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.js +0 -1
  271. package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.types.js +0 -1
  272. package/modern/internals/hooks/useMultiInputRangeField/shared.js +0 -9
  273. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +0 -113
  274. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -113
  275. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.js +0 -1
  276. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +0 -113
  277. package/modern/internals/models/timeRange.js +0 -1
  278. package/modern/models/dateRange.js +0 -1
  279. package/modern/models/multiInputRangeFieldClasses.js +0 -1
  280. package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.types.js +0 -5
  281. package/node/internals/hooks/useMultiInputRangeField/shared.js +0 -16
  282. package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +0 -121
  283. package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -121
  284. package/node/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.js +0 -5
  285. package/node/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +0 -121
  286. package/node/internals/models/timeRange.js +0 -5
  287. package/node/models/dateRange.js +0 -5
  288. package/node/models/multiInputRangeFieldClasses.js +0 -5
  289. /package/{MultiInputDateRangeField/MultiInputDateRangeField.types.js → internals/models/managers.js} +0 -0
  290. /package/{MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.js → internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.js} +0 -0
  291. /package/{MultiInputTimeRangeField/MultiInputTimeRangeField.types.js → modern/internals/models/managers.js} +0 -0
  292. /package/{internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.js → modern/internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.js} +0 -0
  293. /package/node/{MultiInputDateRangeField/MultiInputDateRangeField.types.js → internals/models/managers.js} +0 -0
  294. /package/node/{MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.js → internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.js} +0 -0
@@ -1,51 +1,11 @@
1
1
  'use client';
2
2
 
3
- import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
4
- import _extends from "@babel/runtime/helpers/esm/extends";
5
- const _excluded = ["slots", "slotProps", "unstableStartFieldRef", "unstableEndFieldRef", "className"];
6
- import * as React from 'react';
7
3
  import PropTypes from 'prop-types';
8
- import clsx from 'clsx';
9
- import Stack from '@mui/material/Stack';
10
- import MuiTextField from '@mui/material/TextField';
11
- import Typography from '@mui/material/Typography';
12
- import { styled, useThemeProps } from '@mui/material/styles';
13
- import useSlotProps from '@mui/utils/useSlotProps';
14
- import { unstable_composeClasses as composeClasses, unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';
15
- import { convertFieldResponseIntoMuiTextFieldProps } from '@mui/x-date-pickers/internals';
16
- import { useSplitFieldProps } from '@mui/x-date-pickers/hooks';
17
- import { PickersTextField } from '@mui/x-date-pickers/PickersTextField';
18
- import { useMultiInputDateTimeRangeField } from "../internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js";
19
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
20
- export const multiInputDateTimeRangeFieldClasses = generateUtilityClasses('MuiMultiInputDateTimeRangeField', ['root', 'separator']);
21
- export const getMultiInputDateTimeRangeFieldUtilityClass = slot => generateUtilityClass('MuiMultiInputDateTimeRangeField', slot);
22
- const useUtilityClasses = ownerState => {
23
- const {
24
- classes
25
- } = ownerState;
26
- const slots = {
27
- root: ['root'],
28
- separator: ['separator']
29
- };
30
- return composeClasses(slots, getMultiInputDateTimeRangeFieldUtilityClass, classes);
31
- };
32
- const MultiInputDateTimeRangeFieldRoot = styled(/*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/_jsx(Stack, _extends({
33
- ref: ref,
34
- spacing: 2,
35
- direction: "row",
36
- alignItems: "center"
37
- }, props))), {
38
- name: 'MuiMultiInputDateTimeRangeField',
39
- slot: 'Root',
40
- overridesResolver: (props, styles) => styles.root
41
- })({});
42
- const MultiInputDateTimeRangeFieldSeparator = styled(Typography, {
43
- name: 'MuiMultiInputDateTimeRangeField',
44
- slot: 'Separator',
45
- overridesResolver: (props, styles) => styles.separator
46
- })({
47
- lineHeight: '1.4375em' // 23px
48
- });
4
+ import { useDateTimeRangeManager } from "../managers/index.js";
5
+ import {
6
+ // The alias is needed to have the doc gen working.
7
+ createMultiInputRangeField as createMultiInputDateTimeRangeField } from "../internals/utils/createMultiInputRangeField/index.js";
8
+ import { getMultiInputDateTimeRangeFieldUtilityClass } from "./multiInputDateTimeRangeFieldClasses.js";
49
9
  /**
50
10
  * Demos:
51
11
  *
@@ -56,79 +16,12 @@ const MultiInputDateTimeRangeFieldSeparator = styled(Typography, {
56
16
  *
57
17
  * - [MultiInputDateTimeRangeField API](https://mui.com/x/api/multi-input-date-time-range-field/)
58
18
  */
59
- const MultiInputDateTimeRangeField = /*#__PURE__*/React.forwardRef(function MultiInputDateTimeRangeField(inProps, ref) {
60
- const themeProps = useThemeProps({
61
- props: inProps,
62
- name: 'MuiMultiInputDateTimeRangeField'
63
- });
64
- const {
65
- internalProps,
66
- forwardedProps
67
- } = useSplitFieldProps(themeProps, 'date-time');
68
- const {
69
- slots,
70
- slotProps,
71
- unstableStartFieldRef,
72
- unstableEndFieldRef,
73
- className
74
- } = forwardedProps,
75
- otherForwardedProps = _objectWithoutPropertiesLoose(forwardedProps, _excluded);
76
- const ownerState = themeProps;
77
- const classes = useUtilityClasses(ownerState);
78
- const Root = slots?.root ?? MultiInputDateTimeRangeFieldRoot;
79
- const rootProps = useSlotProps({
80
- elementType: Root,
81
- externalSlotProps: slotProps?.root,
82
- externalForwardedProps: otherForwardedProps,
83
- additionalProps: {
84
- ref
85
- },
86
- ownerState,
87
- className: clsx(className, classes.root)
88
- });
89
- const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure === false ? MuiTextField : PickersTextField);
90
- const startTextFieldProps = useSlotProps({
91
- elementType: TextField,
92
- externalSlotProps: slotProps?.textField,
93
- ownerState: _extends({}, ownerState, {
94
- position: 'start'
95
- })
96
- });
97
- const endTextFieldProps = useSlotProps({
98
- elementType: TextField,
99
- externalSlotProps: slotProps?.textField,
100
- ownerState: _extends({}, ownerState, {
101
- position: 'end'
102
- })
103
- });
104
- const Separator = slots?.separator ?? MultiInputDateTimeRangeFieldSeparator;
105
- const separatorProps = useSlotProps({
106
- elementType: Separator,
107
- externalSlotProps: slotProps?.separator,
108
- additionalProps: {
109
- children: ` ${internalProps.dateSeparator ?? '–'} `
110
- },
111
- ownerState,
112
- className: classes.separator
113
- });
114
- const fieldResponse = useMultiInputDateTimeRangeField({
115
- sharedProps: internalProps,
116
- startTextFieldProps,
117
- endTextFieldProps,
118
- unstableStartFieldRef,
119
- unstableEndFieldRef
120
- });
121
- const startDateProps = convertFieldResponseIntoMuiTextFieldProps(fieldResponse.startDate);
122
- const endDateProps = convertFieldResponseIntoMuiTextFieldProps(fieldResponse.endDate);
123
- return /*#__PURE__*/_jsxs(Root, _extends({}, rootProps, {
124
- children: [/*#__PURE__*/_jsx(TextField, _extends({
125
- fullWidth: true
126
- }, startDateProps)), /*#__PURE__*/_jsx(Separator, _extends({}, separatorProps)), /*#__PURE__*/_jsx(TextField, _extends({
127
- fullWidth: true
128
- }, endDateProps))]
129
- }));
19
+ const MultiInputDateTimeRangeField = createMultiInputDateTimeRangeField({
20
+ name: 'MuiMultiInputDateTimeRangeField',
21
+ getUtilityClass: getMultiInputDateTimeRangeFieldUtilityClass,
22
+ useManager: useDateTimeRangeManager
130
23
  });
131
- process.env.NODE_ENV !== "production" ? MultiInputDateTimeRangeField.propTypes = {
24
+ MultiInputDateTimeRangeField.propTypes = {
132
25
  // ----------------------------- Warning --------------------------------
133
26
  // | These PropTypes are generated from the TypeScript type definitions |
134
27
  // | To update them edit the TypeScript types and run "pnpm proptypes" |
@@ -140,6 +33,7 @@ process.env.NODE_ENV !== "production" ? MultiInputDateTimeRangeField.propTypes =
140
33
  ampm: PropTypes.bool,
141
34
  /**
142
35
  * If `true`, the `input` element is focused during the first mount.
36
+ * @default false
143
37
  */
144
38
  autoFocus: PropTypes.bool,
145
39
  /**
@@ -298,10 +192,10 @@ process.env.NODE_ENV !== "production" ? MultiInputDateTimeRangeField.propTypes =
298
192
  */
299
193
  shouldDisableTime: PropTypes.func,
300
194
  /**
301
- * If `true`, the format will respect the leading zeroes (e.g: on dayjs, the format `M/D/YYYY` will render `8/16/2018`)
302
- * If `false`, the format will always add leading zeroes (e.g: on dayjs, the format `M/D/YYYY` will render `08/16/2018`)
195
+ * If `true`, the format will respect the leading zeroes (for example on dayjs, the format `M/D/YYYY` will render `8/16/2018`)
196
+ * If `false`, the format will always add leading zeroes (for example on dayjs, the format `M/D/YYYY` will render `08/16/2018`)
303
197
  *
304
- * 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`.
198
+ * 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`.
305
199
  *
306
200
  * 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.
307
201
  * If you need to get the clean value from the input, you can remove this character using `input.value.replace(/\u200e/g, '')`.
@@ -357,5 +251,5 @@ process.env.NODE_ENV !== "production" ? MultiInputDateTimeRangeField.propTypes =
357
251
  * Used when the component is controlled.
358
252
  */
359
253
  value: PropTypes.arrayOf(PropTypes.object)
360
- } : void 0;
254
+ };
361
255
  export { MultiInputDateTimeRangeField };
@@ -1,3 +1,5 @@
1
- export { MultiInputDateTimeRangeField, getMultiInputDateTimeRangeFieldUtilityClass, multiInputDateTimeRangeFieldClasses, } from './MultiInputDateTimeRangeField';
2
- export { useMultiInputDateTimeRangeField as unstable_useMultiInputDateTimeRangeField } from '../internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField';
3
- export type { UseMultiInputDateTimeRangeFieldProps, UseMultiInputDateTimeRangeFieldComponentProps, MultiInputDateTimeRangeFieldProps, } from './MultiInputDateTimeRangeField.types';
1
+ export { MultiInputDateTimeRangeField } from './MultiInputDateTimeRangeField';
2
+ export type { MultiInputDateTimeRangeFieldProps } from './MultiInputDateTimeRangeField';
3
+ export { multiInputDateTimeRangeFieldClasses, getMultiInputDateTimeRangeFieldUtilityClass, } from './multiInputDateTimeRangeFieldClasses';
4
+ export type { MultiInputDateTimeRangeFieldClassKey, MultiInputDateTimeRangeFieldClasses, } from './multiInputDateTimeRangeFieldClasses';
5
+ export type { MultiInputRangeFieldSlots as MultiInputDateTimeRangeFieldSlots, MultiInputRangeFieldSlotProps as MultiInputDateTimeRangeFieldSlotProps, } from '../internals/utils/createMultiInputRangeField';
@@ -1,2 +1,2 @@
1
- export { MultiInputDateTimeRangeField, getMultiInputDateTimeRangeFieldUtilityClass, multiInputDateTimeRangeFieldClasses } from "./MultiInputDateTimeRangeField.js";
2
- export { useMultiInputDateTimeRangeField as unstable_useMultiInputDateTimeRangeField } from "../internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js";
1
+ export { MultiInputDateTimeRangeField } from "./MultiInputDateTimeRangeField.js";
2
+ export { multiInputDateTimeRangeFieldClasses, getMultiInputDateTimeRangeFieldUtilityClass } from "./multiInputDateTimeRangeFieldClasses.js";
@@ -0,0 +1,6 @@
1
+ import { MultiInputRangeFieldClasses } from '../internals/utils/createMultiInputRangeField';
2
+ export interface MultiInputDateTimeRangeFieldClasses extends MultiInputRangeFieldClasses {
3
+ }
4
+ export type MultiInputDateTimeRangeFieldClassKey = keyof MultiInputRangeFieldClasses;
5
+ export declare const multiInputDateTimeRangeFieldClasses: MultiInputRangeFieldClasses;
6
+ export declare const getMultiInputDateTimeRangeFieldUtilityClass: (slot: string) => string;
@@ -0,0 +1,4 @@
1
+ import generateUtilityClass from '@mui/utils/generateUtilityClass';
2
+ import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
3
+ export const multiInputDateTimeRangeFieldClasses = generateUtilityClasses('MuiMultiInputDateTimeRangeField', ['root', 'separator']);
4
+ export const getMultiInputDateTimeRangeFieldUtilityClass = slot => generateUtilityClass('MuiMultiInputDateTimeRangeField', slot);
@@ -1,8 +1,13 @@
1
1
  import * as React from 'react';
2
- import { MultiInputTimeRangeFieldProps } from './MultiInputTimeRangeField.types';
3
- import { MultiInputRangeFieldClasses } from '../models';
4
- export declare const multiInputTimeRangeFieldClasses: MultiInputRangeFieldClasses;
5
- export declare const getMultiInputTimeRangeFieldUtilityClass: (slot: string) => string;
2
+ import { UseTimeRangeManagerReturnValue } from '../managers';
3
+ import { MultiInputRangeFieldProps } from '../internals/utils/createMultiInputRangeField';
4
+ import { MultiInputTimeRangeFieldClasses } from './multiInputTimeRangeFieldClasses';
5
+ export interface MultiInputTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean> extends MultiInputRangeFieldProps<UseTimeRangeManagerReturnValue<TEnableAccessibleFieldDOMStructure>> {
6
+ /**
7
+ * Override or extend the styles applied to the component.
8
+ */
9
+ classes?: Partial<MultiInputTimeRangeFieldClasses>;
10
+ }
6
11
  type MultiInputTimeRangeFieldComponent = (<TEnableAccessibleFieldDOMStructure extends boolean = true>(props: MultiInputTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure> & React.RefAttributes<HTMLDivElement>) => React.JSX.Element) & {
7
12
  propTypes?: any;
8
13
  };
@@ -1,51 +1,11 @@
1
1
  'use client';
2
2
 
3
- import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
4
- import _extends from "@babel/runtime/helpers/esm/extends";
5
- const _excluded = ["slots", "slotProps", "unstableStartFieldRef", "unstableEndFieldRef", "className"];
6
- import * as React from 'react';
7
3
  import PropTypes from 'prop-types';
8
- import { clsx } from 'clsx';
9
- import Stack from '@mui/material/Stack';
10
- import MuiTextField from '@mui/material/TextField';
11
- import Typography from '@mui/material/Typography';
12
- import { styled, useThemeProps } from '@mui/material/styles';
13
- import useSlotProps from '@mui/utils/useSlotProps';
14
- import { unstable_composeClasses as composeClasses, unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';
15
- import { convertFieldResponseIntoMuiTextFieldProps } from '@mui/x-date-pickers/internals';
16
- import { useSplitFieldProps } from '@mui/x-date-pickers/hooks';
17
- import { PickersTextField } from '@mui/x-date-pickers/PickersTextField';
18
- import { useMultiInputTimeRangeField } from "../internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js";
19
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
20
- export const multiInputTimeRangeFieldClasses = generateUtilityClasses('MuiMultiInputTimeRangeField', ['root', 'separator']);
21
- export const getMultiInputTimeRangeFieldUtilityClass = slot => generateUtilityClass('MuiMultiInputTimeRangeField', slot);
22
- const useUtilityClasses = ownerState => {
23
- const {
24
- classes
25
- } = ownerState;
26
- const slots = {
27
- root: ['root'],
28
- separator: ['separator']
29
- };
30
- return composeClasses(slots, getMultiInputTimeRangeFieldUtilityClass, classes);
31
- };
32
- const MultiInputTimeRangeFieldRoot = styled(/*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/_jsx(Stack, _extends({
33
- ref: ref,
34
- spacing: 2,
35
- direction: "row",
36
- alignItems: "center"
37
- }, props))), {
38
- name: 'MuiMultiInputTimeRangeField',
39
- slot: 'Root',
40
- overridesResolver: (props, styles) => styles.root
41
- })({});
42
- const MultiInputTimeRangeFieldSeparator = styled(Typography, {
43
- name: 'MuiMultiInputTimeRangeField',
44
- slot: 'Separator',
45
- overridesResolver: (props, styles) => styles.separator
46
- })({
47
- lineHeight: '1.4375em' // 23px
48
- });
4
+ import { useTimeRangeManager } from "../managers/index.js";
5
+ import {
6
+ // The alias is needed to have the doc gen working.
7
+ createMultiInputRangeField as createMultiInputTimeRangeField } from "../internals/utils/createMultiInputRangeField/index.js";
8
+ import { getMultiInputTimeRangeFieldUtilityClass } from "./multiInputTimeRangeFieldClasses.js";
49
9
  /**
50
10
  * Demos:
51
11
  *
@@ -56,79 +16,12 @@ const MultiInputTimeRangeFieldSeparator = styled(Typography, {
56
16
  *
57
17
  * - [MultiInputTimeRangeField API](https://mui.com/x/api/multi-input-time-range-field/)
58
18
  */
59
- const MultiInputTimeRangeField = /*#__PURE__*/React.forwardRef(function MultiInputTimeRangeField(inProps, ref) {
60
- const themeProps = useThemeProps({
61
- props: inProps,
62
- name: 'MuiMultiInputTimeRangeField'
63
- });
64
- const {
65
- internalProps,
66
- forwardedProps
67
- } = useSplitFieldProps(themeProps, 'time');
68
- const {
69
- slots,
70
- slotProps,
71
- unstableStartFieldRef,
72
- unstableEndFieldRef,
73
- className
74
- } = forwardedProps,
75
- otherForwardedProps = _objectWithoutPropertiesLoose(forwardedProps, _excluded);
76
- const ownerState = themeProps;
77
- const classes = useUtilityClasses(ownerState);
78
- const Root = slots?.root ?? MultiInputTimeRangeFieldRoot;
79
- const rootProps = useSlotProps({
80
- elementType: Root,
81
- externalSlotProps: slotProps?.root,
82
- externalForwardedProps: otherForwardedProps,
83
- additionalProps: {
84
- ref
85
- },
86
- ownerState,
87
- className: clsx(className, classes.root)
88
- });
89
- const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure === false ? MuiTextField : PickersTextField);
90
- const startTextFieldProps = useSlotProps({
91
- elementType: TextField,
92
- externalSlotProps: slotProps?.textField,
93
- ownerState: _extends({}, ownerState, {
94
- position: 'start'
95
- })
96
- });
97
- const endTextFieldProps = useSlotProps({
98
- elementType: TextField,
99
- externalSlotProps: slotProps?.textField,
100
- ownerState: _extends({}, ownerState, {
101
- position: 'end'
102
- })
103
- });
104
- const Separator = slots?.separator ?? MultiInputTimeRangeFieldSeparator;
105
- const separatorProps = useSlotProps({
106
- elementType: Separator,
107
- externalSlotProps: slotProps?.separator,
108
- additionalProps: {
109
- children: ` ${internalProps.dateSeparator ?? '–'} `
110
- },
111
- ownerState,
112
- className: classes.separator
113
- });
114
- const fieldResponse = useMultiInputTimeRangeField({
115
- sharedProps: internalProps,
116
- startTextFieldProps,
117
- endTextFieldProps,
118
- unstableStartFieldRef,
119
- unstableEndFieldRef
120
- });
121
- const startDateProps = convertFieldResponseIntoMuiTextFieldProps(fieldResponse.startDate);
122
- const endDateProps = convertFieldResponseIntoMuiTextFieldProps(fieldResponse.endDate);
123
- return /*#__PURE__*/_jsxs(Root, _extends({}, rootProps, {
124
- children: [/*#__PURE__*/_jsx(TextField, _extends({
125
- fullWidth: true
126
- }, startDateProps)), /*#__PURE__*/_jsx(Separator, _extends({}, separatorProps)), /*#__PURE__*/_jsx(TextField, _extends({
127
- fullWidth: true
128
- }, endDateProps))]
129
- }));
19
+ const MultiInputTimeRangeField = createMultiInputTimeRangeField({
20
+ name: 'MuiMultiInputTimeRangeField',
21
+ getUtilityClass: getMultiInputTimeRangeFieldUtilityClass,
22
+ useManager: useTimeRangeManager
130
23
  });
131
- process.env.NODE_ENV !== "production" ? MultiInputTimeRangeField.propTypes = {
24
+ MultiInputTimeRangeField.propTypes = {
132
25
  // ----------------------------- Warning --------------------------------
133
26
  // | These PropTypes are generated from the TypeScript type definitions |
134
27
  // | To update them edit the TypeScript types and run "pnpm proptypes" |
@@ -140,6 +33,7 @@ process.env.NODE_ENV !== "production" ? MultiInputTimeRangeField.propTypes = {
140
33
  ampm: PropTypes.bool,
141
34
  /**
142
35
  * If `true`, the `input` element is focused during the first mount.
36
+ * @default false
143
37
  */
144
38
  autoFocus: PropTypes.bool,
145
39
  /**
@@ -270,10 +164,10 @@ process.env.NODE_ENV !== "production" ? MultiInputTimeRangeField.propTypes = {
270
164
  */
271
165
  shouldDisableTime: PropTypes.func,
272
166
  /**
273
- * If `true`, the format will respect the leading zeroes (e.g: on dayjs, the format `M/D/YYYY` will render `8/16/2018`)
274
- * If `false`, the format will always add leading zeroes (e.g: on dayjs, the format `M/D/YYYY` will render `08/16/2018`)
167
+ * If `true`, the format will respect the leading zeroes (for example on dayjs, the format `M/D/YYYY` will render `8/16/2018`)
168
+ * If `false`, the format will always add leading zeroes (for example on dayjs, the format `M/D/YYYY` will render `08/16/2018`)
275
169
  *
276
- * 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`.
170
+ * 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`.
277
171
  *
278
172
  * 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.
279
173
  * If you need to get the clean value from the input, you can remove this character using `input.value.replace(/\u200e/g, '')`.
@@ -290,7 +184,7 @@ process.env.NODE_ENV !== "production" ? MultiInputTimeRangeField.propTypes = {
290
184
  */
291
185
  slotProps: PropTypes.object,
292
186
  /**
293
- * Overridable slots.
187
+ * Overridable component slots.
294
188
  * @default {}
295
189
  */
296
190
  slots: PropTypes.object,
@@ -329,5 +223,5 @@ process.env.NODE_ENV !== "production" ? MultiInputTimeRangeField.propTypes = {
329
223
  * Used when the component is controlled.
330
224
  */
331
225
  value: PropTypes.arrayOf(PropTypes.object)
332
- } : void 0;
226
+ };
333
227
  export { MultiInputTimeRangeField };
@@ -1,3 +1,5 @@
1
- export { MultiInputTimeRangeField, getMultiInputTimeRangeFieldUtilityClass, multiInputTimeRangeFieldClasses, } from './MultiInputTimeRangeField';
2
- export { useMultiInputTimeRangeField as unstable_useMultiInputTimeRangeField } from '../internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField';
3
- export type { UseMultiInputTimeRangeFieldProps, UseMultiInputTimeRangeFieldComponentProps, MultiInputTimeRangeFieldProps, } from './MultiInputTimeRangeField.types';
1
+ export { MultiInputTimeRangeField } from './MultiInputTimeRangeField';
2
+ export type { MultiInputTimeRangeFieldProps } from './MultiInputTimeRangeField';
3
+ export { multiInputTimeRangeFieldClasses, getMultiInputTimeRangeFieldUtilityClass, } from './multiInputTimeRangeFieldClasses';
4
+ export type { MultiInputTimeRangeFieldClassKey, MultiInputTimeRangeFieldClasses, } from './multiInputTimeRangeFieldClasses';
5
+ export type { MultiInputRangeFieldSlots as MultiInputTimeRangeFieldSlots, MultiInputRangeFieldSlotProps as MultiInputTimeRangeFieldSlotProps, } from '../internals/utils/createMultiInputRangeField';
@@ -1,2 +1,2 @@
1
- export { MultiInputTimeRangeField, getMultiInputTimeRangeFieldUtilityClass, multiInputTimeRangeFieldClasses } from "./MultiInputTimeRangeField.js";
2
- export { useMultiInputTimeRangeField as unstable_useMultiInputTimeRangeField } from "../internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js";
1
+ export { MultiInputTimeRangeField } from "./MultiInputTimeRangeField.js";
2
+ export { multiInputTimeRangeFieldClasses, getMultiInputTimeRangeFieldUtilityClass } from "./multiInputTimeRangeFieldClasses.js";
@@ -0,0 +1,6 @@
1
+ import { MultiInputRangeFieldClasses } from '../internals/utils/createMultiInputRangeField';
2
+ export interface MultiInputTimeRangeFieldClasses extends MultiInputRangeFieldClasses {
3
+ }
4
+ export type MultiInputTimeRangeFieldClassKey = keyof MultiInputRangeFieldClasses;
5
+ export declare const multiInputTimeRangeFieldClasses: MultiInputRangeFieldClasses;
6
+ export declare const getMultiInputTimeRangeFieldUtilityClass: (slot: string) => string;
@@ -0,0 +1,4 @@
1
+ import generateUtilityClass from '@mui/utils/generateUtilityClass';
2
+ import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
3
+ export const multiInputTimeRangeFieldClasses = generateUtilityClasses('MuiMultiInputTimeRangeField', ['root', 'separator']);
4
+ export const getMultiInputTimeRangeFieldUtilityClass = slot => generateUtilityClass('MuiMultiInputTimeRangeField', slot);
@@ -57,8 +57,8 @@ const PickersRangeCalendarHeader = /*#__PURE__*/React.forwardRef(function Picker
57
57
  ref: ref
58
58
  }));
59
59
  }
60
- const selectNextMonth = () => onMonthChange(utils.addMonths(currentMonth, 1), 'left');
61
- const selectPreviousMonth = () => onMonthChange(utils.addMonths(currentMonth, -1), 'right');
60
+ const selectNextMonth = () => onMonthChange(utils.addMonths(currentMonth, 1));
61
+ const selectPreviousMonth = () => onMonthChange(utils.addMonths(currentMonth, -1));
62
62
  return /*#__PURE__*/_jsx(PickersRangeCalendarHeaderContentMultipleCalendars, _extends({}, otherRangeProps, {
63
63
  ref: ref,
64
64
  onGoToPrevious: selectPreviousMonth,
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # MUI X Date Pickers Pro
2
2
 
3
3
  This package is the Pro plan edition of the Date and Time Picker Components.
4
- It's part of [MUI X](https://mui.com/x/), an open-core extension of MUI Core, with advanced components.
4
+ It's part of [MUI X](https://mui.com/x/), an open-core extension of our Core libraries, with advanced components.
5
5
 
6
6
  ## Installation
7
7
 
@@ -20,13 +20,16 @@ The pickers currently support the following date libraries:
20
20
  - [Moment.js](https://momentjs.com/)
21
21
 
22
22
  ```bash
23
- // date-fns
23
+ # date-fns
24
24
  npm install date-fns
25
- // or dayjs
25
+
26
+ # or dayjs
26
27
  npm install dayjs
27
- // or luxon
28
+
29
+ # or luxon
28
30
  npm install luxon
29
- // or moment
31
+
32
+ # or moment
30
33
  npm install moment
31
34
  ```
32
35
 
@@ -1,17 +1,13 @@
1
1
  'use client';
2
2
 
3
- import _extends from "@babel/runtime/helpers/esm/extends";
4
3
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
5
- const _excluded = ["slots", "slotProps", "InputProps", "inputProps"];
4
+ const _excluded = ["slots", "slotProps"];
6
5
  import * as React from 'react';
7
6
  import PropTypes from 'prop-types';
8
- import MuiTextField from '@mui/material/TextField';
9
7
  import { useThemeProps } from '@mui/material/styles';
10
- import useSlotProps from '@mui/utils/useSlotProps';
11
8
  import { refType } from '@mui/utils';
12
- import { useClearableField } from '@mui/x-date-pickers/hooks';
13
- import { convertFieldResponseIntoMuiTextFieldProps } from '@mui/x-date-pickers/internals';
14
- import { PickersTextField } from '@mui/x-date-pickers/PickersTextField';
9
+ import { DateRangeIcon } from '@mui/x-date-pickers/icons';
10
+ import { PickerFieldUI, useFieldTextFieldProps } from '@mui/x-date-pickers/internals';
15
11
  import { useSingleInputDateRangeField } from "./useSingleInputDateRangeField.js";
16
12
  import { jsx as _jsx } from "react/jsx-runtime";
17
13
  /**
@@ -31,33 +27,21 @@ const SingleInputDateRangeField = /*#__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 = useSingleInputDateRangeField(textFieldProps);
55
- const convertedFieldResponse = convertFieldResponseIntoMuiTextFieldProps(fieldResponse);
56
- const processedFieldProps = useClearableField(_extends({}, convertedFieldResponse, {
57
- slots,
58
- slotProps
59
- }));
60
- return /*#__PURE__*/_jsx(TextField, _extends({}, processedFieldProps));
39
+ return /*#__PURE__*/_jsx(PickerFieldUI, {
40
+ slots: slots,
41
+ slotProps: slotProps,
42
+ fieldResponse: fieldResponse,
43
+ defaultOpenPickerIcon: DateRangeIcon
44
+ });
61
45
  });
62
46
  SingleInputDateRangeField.fieldType = 'single-input';
63
47
  process.env.NODE_ENV !== "production" ? SingleInputDateRangeField.propTypes = {
@@ -76,6 +60,12 @@ process.env.NODE_ENV !== "production" ? SingleInputDateRangeField.propTypes = {
76
60
  * @default false
77
61
  */
78
62
  clearable: PropTypes.bool,
63
+ /**
64
+ * The position at which the clear button is placed.
65
+ * If the field is not clearable, the button is not rendered.
66
+ * @default 'end'
67
+ */
68
+ clearButtonPosition: PropTypes.oneOf(['end', 'start']),
79
69
  /**
80
70
  * The color of the component.
81
71
  * It supports both default and custom theme colors, which can be added as shown in the
@@ -262,10 +252,10 @@ process.env.NODE_ENV !== "production" ? SingleInputDateRangeField.propTypes = {
262
252
  */
263
253
  shouldDisableDate: PropTypes.func,
264
254
  /**
265
- * If `true`, the format will respect the leading zeroes (e.g: on dayjs, the format `M/D/YYYY` will render `8/16/2018`)
266
- * If `false`, the format will always add leading zeroes (e.g: on dayjs, the format `M/D/YYYY` will render `08/16/2018`)
255
+ * If `true`, the format will respect the leading zeroes (for example on dayjs, the format `M/D/YYYY` will render `8/16/2018`)
256
+ * If `false`, the format will always add leading zeroes (for example on dayjs, the format `M/D/YYYY` will render `08/16/2018`)
267
257
  *
268
- * 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`.
258
+ * 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`.
269
259
  *
270
260
  * 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.
271
261
  * If you need to get the clean value from the input, you can remove this character using `input.value.replace(/\u200e/g, '')`.
@@ -1,11 +1,7 @@
1
- import * as React from 'react';
2
- import { SlotComponentProps } from '@mui/utils';
3
- import TextField from '@mui/material/TextField';
4
- import { UseFieldInternalProps, PickerRangeValue } from '@mui/x-date-pickers/internals';
1
+ import { ExportedPickerFieldUIProps, PickerFieldUISlots, PickerFieldUISlotProps } from '@mui/x-date-pickers/internals';
5
2
  import { BuiltInFieldTextFieldProps } from '@mui/x-date-pickers/models';
6
- import { ExportedUseClearableFieldProps, UseClearableFieldSlots, UseClearableFieldSlotProps } from '@mui/x-date-pickers/hooks';
7
- import type { RangeFieldSection, DateRangeValidationError, UseDateRangeFieldProps } from '../models';
8
- export interface UseSingleInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean> extends UseDateRangeFieldProps<TEnableAccessibleFieldDOMStructure>, ExportedUseClearableFieldProps, Pick<UseFieldInternalProps<PickerRangeValue, RangeFieldSection, TEnableAccessibleFieldDOMStructure, DateRangeValidationError>, 'unstableFieldRef'> {
3
+ import { DateRangeManagerFieldInternalProps } from '../managers/useDateRangeManager';
4
+ export interface UseSingleInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean> extends DateRangeManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure>, Omit<ExportedPickerFieldUIProps, 'openPickerButtonPosition'> {
9
5
  }
10
6
  export type SingleInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean = true> = Omit<BuiltInFieldTextFieldProps<TEnableAccessibleFieldDOMStructure>, keyof UseSingleInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure>> & UseSingleInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure> & {
11
7
  /**
@@ -17,15 +13,9 @@ export type SingleInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure ex
17
13
  * The props used for each component slot.
18
14
  * @default {}
19
15
  */
20
- slotProps?: SingleInputDateRangeFieldSlotProps<TEnableAccessibleFieldDOMStructure>;
16
+ slotProps?: SingleInputDateRangeFieldSlotProps;
21
17
  };
22
- export interface SingleInputDateRangeFieldSlots extends UseClearableFieldSlots {
23
- /**
24
- * Form control with an input to render the value.
25
- * @default TextField from '@mui/material' or PickersTextField if `enableAccessibleFieldDOMStructure` is `true`.
26
- */
27
- textField?: React.ElementType;
18
+ export interface SingleInputDateRangeFieldSlots extends PickerFieldUISlots {
28
19
  }
29
- export interface SingleInputDateRangeFieldSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> extends UseClearableFieldSlotProps {
30
- textField?: SlotComponentProps<typeof TextField, {}, SingleInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure>>;
20
+ export interface SingleInputDateRangeFieldSlotProps extends PickerFieldUISlotProps {
31
21
  }
@@ -1,2 +1,2 @@
1
1
  import { UseSingleInputDateRangeFieldProps } from './SingleInputDateRangeField.types';
2
- export declare const useSingleInputDateRangeField: <TEnableAccessibleFieldDOMStructure extends boolean, TAllProps extends UseSingleInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure>>(inProps: TAllProps) => import("@mui/x-date-pickers/internals").UseFieldResponse<TEnableAccessibleFieldDOMStructure, Omit<TAllProps & Omit<UseSingleInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure>, keyof import("@mui/x-date-pickers/internals/hooks/defaultizedFieldProps").UseDefaultizedDateFieldBaseProps> & Required<Pick<UseSingleInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure>, keyof import("@mui/x-date-pickers/internals/hooks/defaultizedFieldProps").UseDefaultizedDateFieldBaseProps>>, "disabled" | "format" | "onChange" | "onError" | "defaultValue" | "value" | "readOnly" | "formatDensity" | "enableAccessibleFieldDOMStructure" | "selectedSections" | "onSelectedSectionsChange" | "timezone" | "unstableFieldRef" | "referenceDate" | "shouldRespectLeadingZeros" | keyof import("@mui/x-date-pickers/internals").BaseDateValidationProps | "shouldDisableDate" | "shouldDisableMonth" | "shouldDisableYear" | "dateSeparator">>;
2
+ export declare const useSingleInputDateRangeField: <TEnableAccessibleFieldDOMStructure extends boolean, TAllProps extends UseSingleInputDateRangeFieldProps<TEnableAccessibleFieldDOMStructure>>(props: TAllProps) => import("@mui/x-date-pickers/internals").UseFieldResponse<TEnableAccessibleFieldDOMStructure, Omit<TAllProps, "disabled" | "readOnly" | "value" | "defaultValue" | "autoFocus" | "onChange" | "onError" | "format" | "unstableFieldRef" | "referenceDate" | "formatDensity" | "shouldRespectLeadingZeros" | "selectedSections" | "onSelectedSectionsChange" | "enableAccessibleFieldDOMStructure" | "timezone" | keyof import("@mui/x-date-pickers/internals").BaseDateValidationProps | "shouldDisableDate" | "shouldDisableMonth" | "shouldDisableYear" | "unstableStartFieldRef" | "unstableEndFieldRef" | "dateSeparator">>;