@mui/x-date-pickers-pro 7.0.0-beta.1 → 7.0.0-beta.4

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 (293) hide show
  1. package/CHANGELOG.md +437 -4
  2. package/DateRangeCalendar/DateRangeCalendar.d.ts +2 -1
  3. package/DateRangeCalendar/DateRangeCalendar.js +9 -7
  4. package/DateRangeCalendar/DateRangeCalendar.types.d.ts +10 -7
  5. package/DateRangeCalendar/useDragRange.d.ts +4 -4
  6. package/DateRangePicker/DateRangePicker.d.ts +2 -1
  7. package/DateRangePicker/DateRangePicker.js +14 -14
  8. package/DateRangePicker/DateRangePicker.types.d.ts +5 -4
  9. package/DateRangePicker/DateRangePickerToolbar.d.ts +6 -2
  10. package/DateRangePicker/DateRangePickerToolbar.js +7 -1
  11. package/DateRangePicker/shared.d.ts +6 -5
  12. package/DateRangePickerDay/DateRangePickerDay.d.ts +3 -2
  13. package/DateRangePickerDay/DateRangePickerDay.js +2 -2
  14. package/DateTimeRangePicker/DateTimeRangePicker.d.ts +2 -1
  15. package/DateTimeRangePicker/DateTimeRangePicker.js +20 -21
  16. package/DateTimeRangePicker/DateTimeRangePicker.types.d.ts +5 -4
  17. package/DateTimeRangePicker/DateTimeRangePickerTabs.js +7 -1
  18. package/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.d.ts +3 -2
  19. package/DateTimeRangePicker/DateTimeRangePickerToolbar.d.ts +6 -2
  20. package/DateTimeRangePicker/DateTimeRangePickerToolbar.js +7 -1
  21. package/DateTimeRangePicker/shared.d.ts +6 -5
  22. package/DesktopDateRangePicker/DesktopDateRangePicker.d.ts +2 -1
  23. package/DesktopDateRangePicker/DesktopDateRangePicker.js +14 -14
  24. package/DesktopDateRangePicker/DesktopDateRangePicker.types.d.ts +5 -4
  25. package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.d.ts +2 -1
  26. package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +20 -21
  27. package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.types.d.ts +5 -4
  28. package/DesktopDateTimeRangePicker/DesktopDateTimeRangePickerLayout.d.ts +2 -1
  29. package/MobileDateRangePicker/MobileDateRangePicker.d.ts +2 -1
  30. package/MobileDateRangePicker/MobileDateRangePicker.js +14 -14
  31. package/MobileDateRangePicker/MobileDateRangePicker.types.d.ts +5 -4
  32. package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.d.ts +2 -1
  33. package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +20 -21
  34. package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.types.d.ts +5 -4
  35. package/MultiInputDateRangeField/MultiInputDateRangeField.d.ts +2 -1
  36. package/MultiInputDateRangeField/MultiInputDateRangeField.js +22 -24
  37. package/MultiInputDateRangeField/MultiInputDateRangeField.types.d.ts +12 -14
  38. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.d.ts +2 -1
  39. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +26 -28
  40. package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.d.ts +13 -16
  41. package/MultiInputTimeRangeField/MultiInputTimeRangeField.d.ts +2 -1
  42. package/MultiInputTimeRangeField/MultiInputTimeRangeField.js +22 -24
  43. package/MultiInputTimeRangeField/MultiInputTimeRangeField.types.d.ts +13 -16
  44. package/SingleInputDateRangeField/SingleInputDateRangeField.d.ts +3 -2
  45. package/SingleInputDateRangeField/SingleInputDateRangeField.js +17 -15
  46. package/SingleInputDateRangeField/SingleInputDateRangeField.types.d.ts +11 -13
  47. package/SingleInputDateRangeField/index.d.ts +1 -1
  48. package/SingleInputDateRangeField/useSingleInputDateRangeField.d.ts +3 -3
  49. package/SingleInputDateRangeField/useSingleInputDateRangeField.js +2 -15
  50. package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.d.ts +3 -2
  51. package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +21 -19
  52. package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.types.d.ts +12 -14
  53. package/SingleInputDateTimeRangeField/index.d.ts +1 -1
  54. package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.d.ts +3 -3
  55. package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +2 -20
  56. package/SingleInputTimeRangeField/SingleInputTimeRangeField.d.ts +3 -2
  57. package/SingleInputTimeRangeField/SingleInputTimeRangeField.js +16 -14
  58. package/SingleInputTimeRangeField/SingleInputTimeRangeField.types.d.ts +12 -14
  59. package/SingleInputTimeRangeField/index.d.ts +1 -1
  60. package/SingleInputTimeRangeField/useSingleInputTimeRangeField.d.ts +3 -3
  61. package/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +2 -14
  62. package/StaticDateRangePicker/StaticDateRangePicker.d.ts +2 -1
  63. package/StaticDateRangePicker/StaticDateRangePicker.js +5 -6
  64. package/StaticDateRangePicker/StaticDateRangePicker.types.d.ts +4 -3
  65. package/dateRangeViewRenderers/dateRangeViewRenderers.d.ts +3 -2
  66. package/index.d.ts +7 -2
  67. package/index.js +8 -2
  68. package/internals/hooks/models/useRangePicker.d.ts +8 -7
  69. package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.d.ts +2 -1
  70. package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +17 -8
  71. package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.types.d.ts +7 -6
  72. package/internals/hooks/useEnrichedRangePickerFieldProps.d.ts +15 -15
  73. package/internals/hooks/useEnrichedRangePickerFieldProps.js +37 -40
  74. package/internals/hooks/useMobileRangePicker/useMobileRangePicker.d.ts +2 -1
  75. package/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +18 -9
  76. package/internals/hooks/useMobileRangePicker/useMobileRangePicker.types.d.ts +7 -6
  77. package/internals/hooks/useMultiInputFieldSelectedSections.d.ts +21 -0
  78. package/internals/hooks/useMultiInputFieldSelectedSections.js +43 -0
  79. package/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.d.ts +2 -1
  80. package/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +17 -12
  81. package/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.d.ts +3 -3
  82. package/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +23 -31
  83. package/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.d.ts +4 -4
  84. package/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.d.ts +3 -3
  85. package/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +23 -25
  86. package/internals/hooks/useRangePosition.d.ts +2 -4
  87. package/internals/hooks/useRangePosition.js +3 -6
  88. package/internals/hooks/useStaticRangePicker/useStaticRangePicker.d.ts +2 -1
  89. package/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +1 -0
  90. package/internals/hooks/useStaticRangePicker/useStaticRangePicker.types.d.ts +6 -6
  91. package/internals/models/dateRange.d.ts +5 -16
  92. package/internals/models/dateTimeRange.d.ts +5 -6
  93. package/internals/models/index.d.ts +0 -1
  94. package/internals/models/index.js +0 -1
  95. package/internals/models/timeRange.d.ts +4 -6
  96. package/internals/utils/date-fields-utils.d.ts +1 -5
  97. package/internals/utils/date-range-manager.d.ts +5 -5
  98. package/internals/utils/date-utils.d.ts +5 -5
  99. package/internals/utils/releaseInfo.js +1 -1
  100. package/internals/utils/validation/validateDateRange.d.ts +2 -2
  101. package/internals/utils/validation/validateDateTimeRange.d.ts +2 -2
  102. package/internals/utils/valueManagers.d.ts +3 -3
  103. package/internals/utils/valueManagers.js +11 -6
  104. package/models/fields.d.ts +69 -0
  105. package/models/index.d.ts +1 -0
  106. package/models/index.js +1 -0
  107. package/models/range.d.ts +3 -2
  108. package/modern/DateRangeCalendar/DateRangeCalendar.js +9 -7
  109. package/modern/DateRangePicker/DateRangePicker.js +14 -14
  110. package/modern/DateRangePicker/DateRangePickerToolbar.js +7 -1
  111. package/modern/DateRangePickerDay/DateRangePickerDay.js +2 -2
  112. package/modern/DateTimeRangePicker/DateTimeRangePicker.js +20 -21
  113. package/modern/DateTimeRangePicker/DateTimeRangePickerTabs.js +7 -1
  114. package/modern/DateTimeRangePicker/DateTimeRangePickerToolbar.js +7 -1
  115. package/modern/DesktopDateRangePicker/DesktopDateRangePicker.js +14 -14
  116. package/modern/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +20 -21
  117. package/modern/MobileDateRangePicker/MobileDateRangePicker.js +14 -14
  118. package/modern/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +20 -21
  119. package/modern/MultiInputDateRangeField/MultiInputDateRangeField.js +22 -24
  120. package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +26 -28
  121. package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.js +22 -24
  122. package/modern/SingleInputDateRangeField/SingleInputDateRangeField.js +17 -15
  123. package/modern/SingleInputDateRangeField/useSingleInputDateRangeField.js +2 -14
  124. package/modern/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +21 -19
  125. package/modern/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +2 -19
  126. package/modern/SingleInputTimeRangeField/SingleInputTimeRangeField.js +16 -14
  127. package/modern/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +2 -13
  128. package/modern/StaticDateRangePicker/StaticDateRangePicker.js +5 -6
  129. package/modern/index.js +8 -2
  130. package/modern/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +17 -8
  131. package/modern/internals/hooks/useEnrichedRangePickerFieldProps.js +34 -37
  132. package/modern/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +18 -9
  133. package/modern/internals/hooks/useMultiInputFieldSelectedSections.js +40 -0
  134. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +17 -12
  135. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +23 -30
  136. package/modern/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +23 -24
  137. package/modern/internals/hooks/useRangePosition.js +3 -6
  138. package/modern/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +1 -0
  139. package/modern/internals/models/index.js +0 -1
  140. package/modern/internals/utils/releaseInfo.js +1 -1
  141. package/modern/internals/utils/valueManagers.js +11 -6
  142. package/modern/models/index.js +1 -0
  143. package/node/DateRangeCalendar/DateRangeCalendar.js +10 -8
  144. package/node/DateRangePicker/DateRangePicker.js +14 -14
  145. package/node/DateRangePicker/DateRangePickerToolbar.js +7 -1
  146. package/node/DateRangePickerDay/DateRangePickerDay.js +3 -3
  147. package/node/DateTimeRangePicker/DateTimeRangePicker.js +20 -21
  148. package/node/DateTimeRangePicker/DateTimeRangePickerTabs.js +7 -1
  149. package/node/DateTimeRangePicker/DateTimeRangePickerToolbar.js +7 -1
  150. package/node/DesktopDateRangePicker/DesktopDateRangePicker.js +14 -14
  151. package/node/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +20 -21
  152. package/node/MobileDateRangePicker/MobileDateRangePicker.js +14 -14
  153. package/node/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +22 -23
  154. package/node/MultiInputDateRangeField/MultiInputDateRangeField.js +22 -24
  155. package/node/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +26 -28
  156. package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.js +22 -24
  157. package/node/SingleInputDateRangeField/SingleInputDateRangeField.js +17 -15
  158. package/node/SingleInputDateRangeField/useSingleInputDateRangeField.js +2 -16
  159. package/node/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +24 -22
  160. package/node/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +2 -21
  161. package/node/SingleInputTimeRangeField/SingleInputTimeRangeField.js +16 -14
  162. package/node/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +2 -15
  163. package/node/StaticDateRangePicker/StaticDateRangePicker.js +5 -6
  164. package/node/index.js +18 -9
  165. package/node/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +18 -9
  166. package/node/internals/hooks/useEnrichedRangePickerFieldProps.js +33 -36
  167. package/node/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +19 -10
  168. package/node/internals/hooks/useMultiInputFieldSelectedSections.js +50 -0
  169. package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +16 -11
  170. package/node/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +23 -31
  171. package/node/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +23 -25
  172. package/node/internals/hooks/useRangePosition.js +3 -8
  173. package/node/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +1 -0
  174. package/node/internals/models/index.js +0 -11
  175. package/node/internals/utils/releaseInfo.js +1 -1
  176. package/node/internals/utils/valueManagers.js +10 -5
  177. package/node/models/index.js +11 -0
  178. package/package.json +6 -6
  179. package/themeAugmentation/props.d.ts +17 -17
  180. package/internals/models/fields.d.ts +0 -49
  181. package/legacy/AdapterDateFns/index.js +0 -1
  182. package/legacy/AdapterDateFnsJalali/index.js +0 -1
  183. package/legacy/AdapterDateFnsV3/index.js +0 -1
  184. package/legacy/AdapterDayjs/index.js +0 -1
  185. package/legacy/AdapterLuxon/index.js +0 -1
  186. package/legacy/AdapterMoment/index.js +0 -1
  187. package/legacy/AdapterMomentHijri/index.js +0 -1
  188. package/legacy/AdapterMomentJalaali/index.js +0 -1
  189. package/legacy/DateRangeCalendar/DateRangeCalendar.js +0 -764
  190. package/legacy/DateRangeCalendar/DateRangeCalendar.types.js +0 -1
  191. package/legacy/DateRangeCalendar/dateRangeCalendarClasses.js +0 -5
  192. package/legacy/DateRangeCalendar/index.js +0 -2
  193. package/legacy/DateRangeCalendar/useDragRange.js +0 -258
  194. package/legacy/DateRangePicker/DateRangePicker.js +0 -334
  195. package/legacy/DateRangePicker/DateRangePicker.types.js +0 -1
  196. package/legacy/DateRangePicker/DateRangePickerToolbar.js +0 -127
  197. package/legacy/DateRangePicker/dateRangePickerToolbarClasses.js +0 -5
  198. package/legacy/DateRangePicker/index.js +0 -3
  199. package/legacy/DateRangePicker/shared.js +0 -33
  200. package/legacy/DateRangePickerDay/DateRangePickerDay.js +0 -366
  201. package/legacy/DateRangePickerDay/dateRangePickerDayClasses.js +0 -5
  202. package/legacy/DateRangePickerDay/index.js +0 -2
  203. package/legacy/DateTimeRangePicker/DateTimeRangePicker.js +0 -413
  204. package/legacy/DateTimeRangePicker/DateTimeRangePicker.types.js +0 -1
  205. package/legacy/DateTimeRangePicker/DateTimeRangePickerTabs.js +0 -191
  206. package/legacy/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +0 -57
  207. package/legacy/DateTimeRangePicker/DateTimeRangePickerToolbar.js +0 -184
  208. package/legacy/DateTimeRangePicker/dateTimeRangePickerTabsClasses.js +0 -6
  209. package/legacy/DateTimeRangePicker/dateTimeRangePickerToolbarClasses.js +0 -5
  210. package/legacy/DateTimeRangePicker/index.js +0 -5
  211. package/legacy/DateTimeRangePicker/shared.js +0 -54
  212. package/legacy/DesktopDateRangePicker/DesktopDateRangePicker.js +0 -343
  213. package/legacy/DesktopDateRangePicker/DesktopDateRangePicker.types.js +0 -1
  214. package/legacy/DesktopDateRangePicker/index.js +0 -1
  215. package/legacy/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +0 -491
  216. package/legacy/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.types.js +0 -1
  217. package/legacy/DesktopDateTimeRangePicker/DesktopDateTimeRangePickerLayout.js +0 -48
  218. package/legacy/DesktopDateTimeRangePicker/index.js +0 -1
  219. package/legacy/MobileDateRangePicker/MobileDateRangePicker.js +0 -339
  220. package/legacy/MobileDateRangePicker/MobileDateRangePicker.types.js +0 -1
  221. package/legacy/MobileDateRangePicker/index.js +0 -1
  222. package/legacy/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +0 -484
  223. package/legacy/MobileDateTimeRangePicker/MobileDateTimeRangePicker.types.js +0 -1
  224. package/legacy/MobileDateTimeRangePicker/index.js +0 -1
  225. package/legacy/MultiInputDateRangeField/MultiInputDateRangeField.js +0 -316
  226. package/legacy/MultiInputDateRangeField/MultiInputDateRangeField.types.js +0 -1
  227. package/legacy/MultiInputDateRangeField/index.js +0 -2
  228. package/legacy/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +0 -357
  229. package/legacy/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.js +0 -1
  230. package/legacy/MultiInputDateTimeRangeField/index.js +0 -2
  231. package/legacy/MultiInputTimeRangeField/MultiInputTimeRangeField.js +0 -330
  232. package/legacy/MultiInputTimeRangeField/MultiInputTimeRangeField.types.js +0 -1
  233. package/legacy/MultiInputTimeRangeField/index.js +0 -2
  234. package/legacy/SingleInputDateRangeField/SingleInputDateRangeField.js +0 -307
  235. package/legacy/SingleInputDateRangeField/SingleInputDateRangeField.types.js +0 -1
  236. package/legacy/SingleInputDateRangeField/index.js +0 -2
  237. package/legacy/SingleInputDateRangeField/useSingleInputDateRangeField.js +0 -30
  238. package/legacy/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +0 -348
  239. package/legacy/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.types.js +0 -1
  240. package/legacy/SingleInputDateTimeRangeField/index.js +0 -2
  241. package/legacy/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.js +0 -35
  242. package/legacy/SingleInputTimeRangeField/SingleInputTimeRangeField.js +0 -321
  243. package/legacy/SingleInputTimeRangeField/SingleInputTimeRangeField.types.js +0 -1
  244. package/legacy/SingleInputTimeRangeField/index.js +0 -2
  245. package/legacy/SingleInputTimeRangeField/useSingleInputTimeRangeField.js +0 -29
  246. package/legacy/StaticDateRangePicker/StaticDateRangePicker.js +0 -276
  247. package/legacy/StaticDateRangePicker/StaticDateRangePicker.types.js +0 -1
  248. package/legacy/StaticDateRangePicker/index.js +0 -1
  249. package/legacy/dateRangeViewRenderers/dateRangeViewRenderers.js +0 -87
  250. package/legacy/dateRangeViewRenderers/index.js +0 -1
  251. package/legacy/index.js +0 -33
  252. package/legacy/internals/constants/dimensions.js +0 -5
  253. package/legacy/internals/hooks/models/index.js +0 -1
  254. package/legacy/internals/hooks/models/useRangePicker.js +0 -1
  255. package/legacy/internals/hooks/useDesktopRangePicker/index.js +0 -1
  256. package/legacy/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +0 -154
  257. package/legacy/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.types.js +0 -1
  258. package/legacy/internals/hooks/useEnrichedRangePickerFieldProps.js +0 -258
  259. package/legacy/internals/hooks/useMobileRangePicker/index.js +0 -1
  260. package/legacy/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +0 -144
  261. package/legacy/internals/hooks/useMobileRangePicker/useMobileRangePicker.types.js +0 -1
  262. package/legacy/internals/hooks/useMultiInputRangeField/shared.js +0 -9
  263. package/legacy/internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +0 -102
  264. package/legacy/internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +0 -115
  265. package/legacy/internals/hooks/useMultiInputRangeField/useMultiInputRangeField.types.js +0 -1
  266. package/legacy/internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +0 -109
  267. package/legacy/internals/hooks/useRangePosition.js +0 -39
  268. package/legacy/internals/hooks/useStaticRangePicker/index.js +0 -1
  269. package/legacy/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +0 -76
  270. package/legacy/internals/hooks/useStaticRangePicker/useStaticRangePicker.types.js +0 -1
  271. package/legacy/internals/models/dateRange.js +0 -1
  272. package/legacy/internals/models/dateTimeRange.js +0 -1
  273. package/legacy/internals/models/index.js +0 -5
  274. package/legacy/internals/models/rangePickerProps.js +0 -1
  275. package/legacy/internals/models/timeRange.js +0 -1
  276. package/legacy/internals/utils/date-fields-utils.js +0 -26
  277. package/legacy/internals/utils/date-range-manager.js +0 -65
  278. package/legacy/internals/utils/date-utils.js +0 -12
  279. package/legacy/internals/utils/releaseInfo.js +0 -13
  280. package/legacy/internals/utils/validation/validateDateRange.js +0 -45
  281. package/legacy/internals/utils/validation/validateDateTimeRange.js +0 -45
  282. package/legacy/internals/utils/validation/validateTimeRange.js +0 -32
  283. package/legacy/internals/utils/valueManagers.js +0 -135
  284. package/legacy/locales/index.js +0 -1
  285. package/legacy/models/index.js +0 -3
  286. package/legacy/models/multiInputRangeFieldClasses.js +0 -1
  287. package/legacy/models/range.js +0 -1
  288. package/legacy/models/validation.js +0 -1
  289. package/legacy/themeAugmentation/index.js +0 -4
  290. package/modern/internals/models/fields.js +0 -1
  291. /package/{internals/models → models}/fields.js +0 -0
  292. /package/{legacy/internals → modern}/models/fields.js +0 -0
  293. /package/node/{internals/models → models}/fields.js +0 -0
@@ -87,7 +87,7 @@ process.env.NODE_ENV !== "production" ? DateRangePicker.propTypes = {
87
87
  * The default value.
88
88
  * Used when the component is not controlled.
89
89
  */
90
- defaultValue: PropTypes.arrayOf(PropTypes.any),
90
+ defaultValue: PropTypes.arrayOf(PropTypes.object),
91
91
  /**
92
92
  * CSS media query when `Mobile` mode will be changed to `Desktop`.
93
93
  * @default '@media (pointer: fine)'
@@ -133,10 +133,13 @@ process.env.NODE_ENV !== "production" ? DateRangePicker.propTypes = {
133
133
  * If `true`, the week number will be display in the calendar.
134
134
  */
135
135
  displayWeekNumber: PropTypes.bool,
136
+ /**
137
+ * @default false
138
+ */
139
+ enableAccessibleFieldDOMStructure: PropTypes.any,
136
140
  /**
137
141
  * The day view will show as many weeks as needed after the end of the current month to match this value.
138
142
  * Put it to 6 to have a fixed number of weeks in Gregorian calendars
139
- * @default undefined
140
143
  */
141
144
  fixedWeekNumber: PropTypes.number,
142
145
  /**
@@ -174,11 +177,11 @@ process.env.NODE_ENV !== "production" ? DateRangePicker.propTypes = {
174
177
  /**
175
178
  * Maximal selectable date.
176
179
  */
177
- maxDate: PropTypes.any,
180
+ maxDate: PropTypes.object,
178
181
  /**
179
182
  * Minimal selectable date.
180
183
  */
181
- minDate: PropTypes.any,
184
+ minDate: PropTypes.object,
182
185
  /**
183
186
  * Name attribute used by the `input` element in the Field.
184
187
  * Ignored if the field has several inputs.
@@ -254,7 +257,7 @@ process.env.NODE_ENV !== "production" ? DateRangePicker.propTypes = {
254
257
  * The date used to generate the new value when both `value` and `defaultValue` are empty.
255
258
  * @default The closest valid date-time using the validation props, except callbacks like `shouldDisable<...>`.
256
259
  */
257
- referenceDate: PropTypes.any,
260
+ referenceDate: PropTypes.object,
258
261
  /**
259
262
  * Component rendered on the "day" view when `props.loading` is true.
260
263
  * @returns {React.ReactNode} The node to render when loading.
@@ -263,17 +266,14 @@ process.env.NODE_ENV !== "production" ? DateRangePicker.propTypes = {
263
266
  renderLoading: PropTypes.func,
264
267
  /**
265
268
  * The currently selected sections.
266
- * This prop accept four formats:
269
+ * This prop accepts four formats:
267
270
  * 1. If a number is provided, the section at this index will be selected.
268
- * 2. If an object with a `startIndex` and `endIndex` properties are provided, the sections between those two indexes will be selected.
269
- * 3. If a string of type `FieldSectionType` is provided, the first section with that name will be selected.
270
- * 4. If `null` is provided, no section will be selected
271
+ * 2. If a string of type `FieldSectionType` is provided, the first section with that name will be selected.
272
+ * 3. If `"all"` is provided, all the sections will be selected.
273
+ * 4. If `null` is provided, no section will be selected.
271
274
  * If not provided, the selected sections will be handled internally.
272
275
  */
273
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
274
- endIndex: PropTypes.number.isRequired,
275
- startIndex: PropTypes.number.isRequired
276
- })]),
276
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number]),
277
277
  /**
278
278
  * Disable specific date.
279
279
  *
@@ -322,7 +322,7 @@ process.env.NODE_ENV !== "production" ? DateRangePicker.propTypes = {
322
322
  * The selected value.
323
323
  * Used when the component is controlled.
324
324
  */
325
- value: PropTypes.arrayOf(PropTypes.any),
325
+ value: PropTypes.arrayOf(PropTypes.object),
326
326
  /**
327
327
  * Define custom view renderers for each section.
328
328
  * If `null`, the section will only have field editing.
@@ -1,10 +1,11 @@
1
+ import { PickerValidDate } from '@mui/x-date-pickers/models';
1
2
  import { DesktopDateRangePickerProps, DesktopDateRangePickerSlots, DesktopDateRangePickerSlotProps } from '../DesktopDateRangePicker';
2
3
  import { MobileDateRangePickerProps, MobileDateRangePickerSlots, MobileDateRangePickerSlotProps } from '../MobileDateRangePicker';
3
- export interface DateRangePickerSlots<TDate> extends DesktopDateRangePickerSlots<TDate>, MobileDateRangePickerSlots<TDate> {
4
+ export interface DateRangePickerSlots<TDate extends PickerValidDate> extends DesktopDateRangePickerSlots<TDate>, MobileDateRangePickerSlots<TDate> {
4
5
  }
5
- export interface DateRangePickerSlotProps<TDate> extends DesktopDateRangePickerSlotProps<TDate>, MobileDateRangePickerSlotProps<TDate> {
6
+ export interface DateRangePickerSlotProps<TDate extends PickerValidDate, TEnableAccessibleFieldDOMStructure extends boolean> extends DesktopDateRangePickerSlotProps<TDate, TEnableAccessibleFieldDOMStructure>, MobileDateRangePickerSlotProps<TDate, TEnableAccessibleFieldDOMStructure> {
6
7
  }
7
- export interface DateRangePickerProps<TDate> extends DesktopDateRangePickerProps<TDate>, MobileDateRangePickerProps<TDate> {
8
+ export interface DateRangePickerProps<TDate extends PickerValidDate, TEnableAccessibleFieldDOMStructure extends boolean = false> extends DesktopDateRangePickerProps<TDate, TEnableAccessibleFieldDOMStructure>, MobileDateRangePickerProps<TDate, TEnableAccessibleFieldDOMStructure> {
8
9
  /**
9
10
  * CSS media query when `Mobile` mode will be changed to `Desktop`.
10
11
  * @default '@media (pointer: fine)'
@@ -20,5 +21,5 @@ export interface DateRangePickerProps<TDate> extends DesktopDateRangePickerProps
20
21
  * The props used for each component slot.
21
22
  * @default {}
22
23
  */
23
- slotProps?: DateRangePickerSlotProps<TDate>;
24
+ slotProps?: DateRangePickerSlotProps<TDate, TEnableAccessibleFieldDOMStructure>;
24
25
  }
@@ -1,9 +1,13 @@
1
1
  import * as React from 'react';
2
2
  import { BaseToolbarProps, ExportedBaseToolbarProps } from '@mui/x-date-pickers/internals';
3
+ import { PickerValidDate } from '@mui/x-date-pickers/models';
3
4
  import { DateRange } from '../models';
4
5
  import { UseRangePositionResponse } from '../internals/hooks/useRangePosition';
5
6
  import { DateRangePickerToolbarClasses } from './dateRangePickerToolbarClasses';
6
- export interface DateRangePickerToolbarProps<TDate> extends Omit<BaseToolbarProps<DateRange<TDate>, 'day'>, 'views' | 'view' | 'onViewChange' | 'onChange' | 'isLandscape'>, Pick<UseRangePositionResponse, 'rangePosition' | 'onRangePositionChange'> {
7
+ export interface DateRangePickerToolbarProps<TDate extends PickerValidDate> extends Omit<BaseToolbarProps<DateRange<TDate>, 'day'>, 'views' | 'view' | 'onViewChange' | 'onChange' | 'isLandscape'>, Pick<UseRangePositionResponse, 'rangePosition' | 'onRangePositionChange'> {
8
+ /**
9
+ * Override or extend the styles applied to the component.
10
+ */
7
11
  classes?: Partial<DateRangePickerToolbarClasses>;
8
12
  }
9
13
  export interface ExportedDateRangePickerToolbarProps extends ExportedBaseToolbarProps {
@@ -18,5 +22,5 @@ export interface ExportedDateRangePickerToolbarProps extends ExportedBaseToolbar
18
22
  *
19
23
  * - [DateRangePickerToolbar API](https://mui.com/x/api/date-pickers/date-range-picker-toolbar/)
20
24
  */
21
- declare const DateRangePickerToolbar: React.ForwardRefExoticComponent<DateRangePickerToolbarProps<unknown> & React.RefAttributes<HTMLDivElement>>;
25
+ declare const DateRangePickerToolbar: React.ForwardRefExoticComponent<DateRangePickerToolbarProps<PickerValidDate> & React.RefAttributes<HTMLDivElement>>;
22
26
  export { DateRangePickerToolbar };
@@ -93,6 +93,9 @@ process.env.NODE_ENV !== "production" ? DateRangePickerToolbar.propTypes = {
93
93
  // | These PropTypes are generated from the TypeScript type definitions |
94
94
  // | To update them edit the TypeScript types and run "yarn proptypes" |
95
95
  // ----------------------------------------------------------------------
96
+ /**
97
+ * Override or extend the styles applied to the component.
98
+ */
96
99
  classes: PropTypes.object,
97
100
  className: PropTypes.string,
98
101
  disabled: PropTypes.bool,
@@ -104,6 +107,9 @@ process.env.NODE_ENV !== "production" ? DateRangePickerToolbar.propTypes = {
104
107
  onRangePositionChange: PropTypes.func.isRequired,
105
108
  rangePosition: PropTypes.oneOf(['end', 'start']).isRequired,
106
109
  readOnly: PropTypes.bool,
110
+ /**
111
+ * The system prop that allows defining system overrides as well as additional CSS styles.
112
+ */
107
113
  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
108
114
  titleId: PropTypes.string,
109
115
  /**
@@ -115,6 +121,6 @@ process.env.NODE_ENV !== "production" ? DateRangePickerToolbar.propTypes = {
115
121
  * @default "––"
116
122
  */
117
123
  toolbarPlaceholder: PropTypes.node,
118
- value: PropTypes.arrayOf(PropTypes.any).isRequired
124
+ value: PropTypes.arrayOf(PropTypes.object).isRequired
119
125
  } : void 0;
120
126
  export { DateRangePickerToolbar };
@@ -1,21 +1,22 @@
1
1
  import * as React from 'react';
2
2
  import { LocalizedComponent } from '@mui/x-date-pickers/locales';
3
3
  import { DefaultizedProps, BaseDateValidationProps, BasePickerInputProps, PickerViewRendererLookup } from '@mui/x-date-pickers/internals';
4
+ import { PickerValidDate } from '@mui/x-date-pickers/models';
4
5
  import { DateRangeValidationError, DateRange } from '../models';
5
6
  import { DateRangeCalendarSlots, DateRangeCalendarSlotProps, ExportedDateRangeCalendarProps } from '../DateRangeCalendar';
6
7
  import { DateRangePickerToolbarProps, ExportedDateRangePickerToolbarProps } from './DateRangePickerToolbar';
7
8
  import { DateRangeViewRendererProps } from '../dateRangeViewRenderers';
8
- export interface BaseDateRangePickerSlots<TDate> extends DateRangeCalendarSlots<TDate> {
9
+ export interface BaseDateRangePickerSlots<TDate extends PickerValidDate> extends DateRangeCalendarSlots<TDate> {
9
10
  /**
10
11
  * Custom component for the toolbar rendered above the views.
11
12
  * @default DateTimePickerToolbar
12
13
  */
13
14
  toolbar?: React.JSXElementConstructor<DateRangePickerToolbarProps<TDate>>;
14
15
  }
15
- export interface BaseDateRangePickerSlotProps<TDate> extends DateRangeCalendarSlotProps<TDate> {
16
+ export interface BaseDateRangePickerSlotProps<TDate extends PickerValidDate> extends DateRangeCalendarSlotProps<TDate> {
16
17
  toolbar?: ExportedDateRangePickerToolbarProps;
17
18
  }
18
- export interface BaseDateRangePickerProps<TDate> extends Omit<BasePickerInputProps<DateRange<TDate>, TDate, 'day', DateRangeValidationError>, 'view' | 'views' | 'openTo' | 'onViewChange' | 'orientation'>, ExportedDateRangeCalendarProps<TDate>, BaseDateValidationProps<TDate> {
19
+ export interface BaseDateRangePickerProps<TDate extends PickerValidDate> extends Omit<BasePickerInputProps<DateRange<TDate>, TDate, 'day', DateRangeValidationError>, 'view' | 'views' | 'openTo' | 'onViewChange' | 'orientation'>, ExportedDateRangeCalendarProps<TDate>, BaseDateValidationProps<TDate> {
19
20
  /**
20
21
  * Overridable component slots.
21
22
  * @default {}
@@ -33,6 +34,6 @@ export interface BaseDateRangePickerProps<TDate> extends Omit<BasePickerInputPro
33
34
  */
34
35
  viewRenderers?: Partial<PickerViewRendererLookup<DateRange<TDate>, 'day', DateRangeViewRendererProps<TDate, 'day'>, {}>>;
35
36
  }
36
- type UseDateRangePickerDefaultizedProps<TDate, Props extends BaseDateRangePickerProps<TDate>> = LocalizedComponent<TDate, DefaultizedProps<Props, keyof BaseDateValidationProps<TDate>>>;
37
- export declare function useDateRangePickerDefaultizedProps<TDate, Props extends BaseDateRangePickerProps<TDate>>(props: Props, name: string): UseDateRangePickerDefaultizedProps<TDate, Props>;
37
+ type UseDateRangePickerDefaultizedProps<TDate extends PickerValidDate, Props extends BaseDateRangePickerProps<TDate>> = LocalizedComponent<TDate, DefaultizedProps<Props, keyof BaseDateValidationProps<TDate>>>;
38
+ export declare function useDateRangePickerDefaultizedProps<TDate extends PickerValidDate, Props extends BaseDateRangePickerProps<TDate>>(props: Props, name: string): UseDateRangePickerDefaultizedProps<TDate, Props>;
38
39
  export {};
@@ -1,7 +1,8 @@
1
1
  import * as React from 'react';
2
+ import { PickerValidDate } from '@mui/x-date-pickers/models';
2
3
  import { PickersDayProps } from '@mui/x-date-pickers/PickersDay';
3
4
  import { DateRangePickerDayClasses } from './dateRangePickerDayClasses';
4
- export interface DateRangePickerDayProps<TDate> extends Omit<PickersDayProps<TDate>, 'classes' | 'onBlur' | 'onFocus' | 'onKeyDown'> {
5
+ export interface DateRangePickerDayProps<TDate extends PickerValidDate> extends Omit<PickersDayProps<TDate>, 'classes' | 'onBlur' | 'onFocus' | 'onKeyDown'> {
5
6
  /**
6
7
  * Set to `true` if the `day` is in a highlighted date range.
7
8
  */
@@ -35,7 +36,7 @@ export interface DateRangePickerDayProps<TDate> extends Omit<PickersDayProps<TDa
35
36
  */
36
37
  isVisuallySelected?: boolean;
37
38
  }
38
- type DateRangePickerDayComponent = <TDate>(props: DateRangePickerDayProps<TDate> & React.RefAttributes<HTMLButtonElement>) => React.JSX.Element;
39
+ type DateRangePickerDayComponent = <TDate extends PickerValidDate>(props: DateRangePickerDayProps<TDate> & React.RefAttributes<HTMLButtonElement>) => React.JSX.Element;
39
40
  /**
40
41
  * Demos:
41
42
  *
@@ -4,7 +4,7 @@ const _excluded = ["className", "day", "outsideCurrentMonth", "isEndOfHighlighti
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
- import { useLicenseVerifier } from '@mui/x-license-pro';
7
+ import { useLicenseVerifier } from '@mui/x-license';
8
8
  import { alpha, styled, useThemeProps } from '@mui/material/styles';
9
9
  import { unstable_composeClasses as composeClasses } from '@mui/utils';
10
10
  import { useUtils } from '@mui/x-date-pickers/internals';
@@ -237,7 +237,7 @@ process.env.NODE_ENV !== "production" ? DateRangePickerDayRaw.propTypes = {
237
237
  /**
238
238
  * The date to show.
239
239
  */
240
- day: PropTypes.any.isRequired,
240
+ day: PropTypes.object.isRequired,
241
241
  /**
242
242
  * If `true`, renders as disabled.
243
243
  * @default false
@@ -1,6 +1,7 @@
1
1
  import * as React from 'react';
2
+ import { PickerValidDate } from '@mui/x-date-pickers/models';
2
3
  import { DateTimeRangePickerProps } from './DateTimeRangePicker.types';
3
- type DateTimeRangePickerComponent = (<TDate>(props: DateTimeRangePickerProps<TDate> & React.RefAttributes<HTMLDivElement>) => React.JSX.Element) & {
4
+ type DateTimeRangePickerComponent = (<TDate extends PickerValidDate, TEnableAccessibleFieldDOMStructure extends boolean = false>(props: DateTimeRangePickerProps<TDate, TEnableAccessibleFieldDOMStructure> & React.RefAttributes<HTMLDivElement>) => React.JSX.Element) & {
4
5
  propTypes?: any;
5
6
  };
6
7
  declare const DateTimeRangePicker: DateTimeRangePickerComponent;
@@ -3,6 +3,7 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
3
3
  const _excluded = ["desktopModeMediaQuery"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
+ import { refType } from '@mui/utils';
6
7
  import useMediaQuery from '@mui/material/useMediaQuery';
7
8
  import { useThemeProps } from '@mui/material/styles';
8
9
  import { DesktopDateTimeRangePicker } from '../DesktopDateTimeRangePicker';
@@ -81,7 +82,7 @@ process.env.NODE_ENV !== "production" ? DateTimeRangePicker.propTypes = {
81
82
  * The default value.
82
83
  * Used when the component is not controlled.
83
84
  */
84
- defaultValue: PropTypes.arrayOf(PropTypes.any),
85
+ defaultValue: PropTypes.arrayOf(PropTypes.object),
85
86
  /**
86
87
  * CSS media query when `Mobile` mode will be changed to `Desktop`.
87
88
  * @default '@media (pointer: fine)'
@@ -132,10 +133,13 @@ process.env.NODE_ENV !== "production" ? DateTimeRangePicker.propTypes = {
132
133
  * If `true`, the week number will be display in the calendar.
133
134
  */
134
135
  displayWeekNumber: PropTypes.bool,
136
+ /**
137
+ * @default false
138
+ */
139
+ enableAccessibleFieldDOMStructure: PropTypes.any,
135
140
  /**
136
141
  * The day view will show as many weeks as needed after the end of the current month to match this value.
137
142
  * Put it to 6 to have a fixed number of weeks in Gregorian calendars
138
- * @default undefined
139
143
  */
140
144
  fixedWeekNumber: PropTypes.number,
141
145
  /**
@@ -153,9 +157,7 @@ process.env.NODE_ENV !== "production" ? DateTimeRangePicker.propTypes = {
153
157
  * Pass a ref to the `input` element.
154
158
  * Ignored if the field has several inputs.
155
159
  */
156
- inputRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({
157
- current: PropTypes.object
158
- })]),
160
+ inputRef: refType,
159
161
  /**
160
162
  * The label content.
161
163
  * Ignored if the field has several inputs.
@@ -175,29 +177,29 @@ process.env.NODE_ENV !== "production" ? DateTimeRangePicker.propTypes = {
175
177
  /**
176
178
  * Maximal selectable date.
177
179
  */
178
- maxDate: PropTypes.any,
180
+ maxDate: PropTypes.object,
179
181
  /**
180
182
  * Maximal selectable moment of time with binding to date, to set max time in each day use `maxTime`.
181
183
  */
182
- maxDateTime: PropTypes.any,
184
+ maxDateTime: PropTypes.object,
183
185
  /**
184
186
  * Maximal selectable time.
185
187
  * The date part of the object will be ignored unless `props.disableIgnoringDatePartForTimeValidation === true`.
186
188
  */
187
- maxTime: PropTypes.any,
189
+ maxTime: PropTypes.object,
188
190
  /**
189
191
  * Minimal selectable date.
190
192
  */
191
- minDate: PropTypes.any,
193
+ minDate: PropTypes.object,
192
194
  /**
193
195
  * Minimal selectable moment of time with binding to date, to set min time in each day use `minTime`.
194
196
  */
195
- minDateTime: PropTypes.any,
197
+ minDateTime: PropTypes.object,
196
198
  /**
197
199
  * Minimal selectable time.
198
200
  * The date part of the object will be ignored unless `props.disableIgnoringDatePartForTimeValidation === true`.
199
201
  */
200
- minTime: PropTypes.any,
202
+ minTime: PropTypes.object,
201
203
  /**
202
204
  * Step over minutes.
203
205
  * @default 1
@@ -290,7 +292,7 @@ process.env.NODE_ENV !== "production" ? DateTimeRangePicker.propTypes = {
290
292
  * The date used to generate the new value when both `value` and `defaultValue` are empty.
291
293
  * @default The closest valid date-time using the validation props, except callbacks like `shouldDisable<...>`.
292
294
  */
293
- referenceDate: PropTypes.any,
295
+ referenceDate: PropTypes.object,
294
296
  /**
295
297
  * Component rendered on the "day" view when `props.loading` is true.
296
298
  * @returns {React.ReactNode} The node to render when loading.
@@ -299,17 +301,14 @@ process.env.NODE_ENV !== "production" ? DateTimeRangePicker.propTypes = {
299
301
  renderLoading: PropTypes.func,
300
302
  /**
301
303
  * The currently selected sections.
302
- * This prop accept four formats:
304
+ * This prop accepts four formats:
303
305
  * 1. If a number is provided, the section at this index will be selected.
304
- * 2. If an object with a `startIndex` and `endIndex` properties are provided, the sections between those two indexes will be selected.
305
- * 3. If a string of type `FieldSectionType` is provided, the first section with that name will be selected.
306
- * 4. If `null` is provided, no section will be selected
306
+ * 2. If a string of type `FieldSectionType` is provided, the first section with that name will be selected.
307
+ * 3. If `"all"` is provided, all the sections will be selected.
308
+ * 4. If `null` is provided, no section will be selected.
307
309
  * If not provided, the selected sections will be handled internally.
308
310
  */
309
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
310
- endIndex: PropTypes.number.isRequired,
311
- startIndex: PropTypes.number.isRequired
312
- })]),
311
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number]),
313
312
  /**
314
313
  * Disable specific date.
315
314
  *
@@ -387,7 +386,7 @@ process.env.NODE_ENV !== "production" ? DateTimeRangePicker.propTypes = {
387
386
  * The selected value.
388
387
  * Used when the component is controlled.
389
388
  */
390
- value: PropTypes.arrayOf(PropTypes.any),
389
+ value: PropTypes.arrayOf(PropTypes.object),
391
390
  /**
392
391
  * The visible view.
393
392
  * Used when the component view is controlled.
@@ -1,10 +1,11 @@
1
+ import { PickerValidDate } from '@mui/x-date-pickers/models';
1
2
  import { DesktopDateTimeRangePickerProps, DesktopDateTimeRangePickerSlots, DesktopDateTimeRangePickerSlotProps } from '../DesktopDateTimeRangePicker';
2
3
  import { MobileDateTimeRangePickerProps, MobileDateTimeRangePickerSlots, MobileDateTimeRangePickerSlotProps } from '../MobileDateTimeRangePicker';
3
- export interface DateTimeRangePickerSlots<TDate> extends DesktopDateTimeRangePickerSlots<TDate>, MobileDateTimeRangePickerSlots<TDate> {
4
+ export interface DateTimeRangePickerSlots<TDate extends PickerValidDate> extends DesktopDateTimeRangePickerSlots<TDate>, MobileDateTimeRangePickerSlots<TDate> {
4
5
  }
5
- export interface DateTimeRangePickerSlotProps<TDate> extends DesktopDateTimeRangePickerSlotProps<TDate>, MobileDateTimeRangePickerSlotProps<TDate> {
6
+ export interface DateTimeRangePickerSlotProps<TDate extends PickerValidDate, TEnableAccessibleFieldDOMStructure extends boolean> extends DesktopDateTimeRangePickerSlotProps<TDate, TEnableAccessibleFieldDOMStructure>, MobileDateTimeRangePickerSlotProps<TDate, TEnableAccessibleFieldDOMStructure> {
6
7
  }
7
- export interface DateTimeRangePickerProps<TDate> extends DesktopDateTimeRangePickerProps<TDate>, MobileDateTimeRangePickerProps<TDate> {
8
+ export interface DateTimeRangePickerProps<TDate extends PickerValidDate, TEnableAccessibleFieldDOMStructure extends boolean = false> extends DesktopDateTimeRangePickerProps<TDate, TEnableAccessibleFieldDOMStructure>, MobileDateTimeRangePickerProps<TDate, TEnableAccessibleFieldDOMStructure> {
8
9
  /**
9
10
  * CSS media query when `Mobile` mode will be changed to `Desktop`.
10
11
  * @default '@media (pointer: fine)'
@@ -20,5 +21,5 @@ export interface DateTimeRangePickerProps<TDate> extends DesktopDateTimeRangePic
20
21
  * The props used for each component slot.
21
22
  * @default {}
22
23
  */
23
- slotProps?: DateTimeRangePickerSlotProps<TDate>;
24
+ slotProps?: DateTimeRangePickerSlotProps<TDate, TEnableAccessibleFieldDOMStructure>;
24
25
  }
@@ -76,7 +76,8 @@ const DateTimeRangePickerTabs = function DateTimeRangePickerTabs(inProps) {
76
76
  hidden = typeof window === 'undefined' || window.innerHeight < 667,
77
77
  rangePosition,
78
78
  onRangePositionChange,
79
- className
79
+ className,
80
+ sx
80
81
  } = props;
81
82
  const localeText = useLocaleText();
82
83
  const classes = useUtilityClasses(props);
@@ -120,6 +121,7 @@ const DateTimeRangePickerTabs = function DateTimeRangePickerTabs(inProps) {
120
121
  return /*#__PURE__*/_jsxs(DateTimeRangePickerTabsRoot, {
121
122
  ownerState: props,
122
123
  className: clsx(classes.root, className),
124
+ sx: sx,
123
125
  children: [!isPreviousHidden ? /*#__PURE__*/_jsx(IconButton, {
124
126
  onClick: changeToPreviousTab,
125
127
  className: classes.navigationButton,
@@ -170,6 +172,10 @@ process.env.NODE_ENV !== "production" ? DateTimeRangePickerTabs.propTypes = {
170
172
  */
171
173
  onViewChange: PropTypes.func.isRequired,
172
174
  rangePosition: PropTypes.oneOf(['end', 'start']).isRequired,
175
+ /**
176
+ * The system prop that allows defining system overrides as well as additional CSS styles.
177
+ */
178
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
173
179
  /**
174
180
  * Time tab icon.
175
181
  * @default TimeIcon
@@ -1,9 +1,10 @@
1
1
  import * as React from 'react';
2
2
  import { PickerSelectionState, PickerViewRenderer, TimeViewWithMeridiem, BaseClockProps } from '@mui/x-date-pickers/internals';
3
+ import { PickerValidDate } from '@mui/x-date-pickers/models';
3
4
  import { DateTimeRangePickerView } from '../internals/models';
4
5
  import { DateRange } from '../models';
5
6
  import { UseRangePositionResponse } from '../internals/hooks/useRangePosition';
6
- export type DateTimeRangePickerTimeWrapperProps<TDate, TView extends DateTimeRangePickerView, TComponentProps extends Omit<BaseClockProps<TDate, TimeViewWithMeridiem>, 'value' | 'defaultValue' | 'onChange'>> = Pick<UseRangePositionResponse, 'rangePosition' | 'onRangePositionChange'> & Omit<TComponentProps, 'views' | 'view' | 'onViewChange' | 'value' | 'defaultValue' | 'onChange'> & {
7
+ export type DateTimeRangePickerTimeWrapperProps<TDate extends PickerValidDate, TView extends DateTimeRangePickerView, TComponentProps extends Omit<BaseClockProps<TDate, TimeViewWithMeridiem>, 'value' | 'defaultValue' | 'onChange'>> = Pick<UseRangePositionResponse, 'rangePosition' | 'onRangePositionChange'> & Omit<TComponentProps, 'views' | 'view' | 'onViewChange' | 'value' | 'defaultValue' | 'onChange'> & {
7
8
  view: TView;
8
9
  onViewChange?: (view: TView) => void;
9
10
  views: readonly TView[];
@@ -16,5 +17,5 @@ export type DateTimeRangePickerTimeWrapperProps<TDate, TView extends DateTimeRan
16
17
  /**
17
18
  * @ignore - internal component.
18
19
  */
19
- declare function DateTimeRangePickerTimeWrapper<TDate, TView extends DateTimeRangePickerView, TComponentProps extends Omit<BaseClockProps<TDate, TimeViewWithMeridiem>, 'value' | 'defaultValue' | 'onChange'>>(props: DateTimeRangePickerTimeWrapperProps<TDate, TView, TComponentProps>, ref: React.Ref<HTMLDivElement>): React.ReactNode;
20
+ declare function DateTimeRangePickerTimeWrapper<TDate extends PickerValidDate, TView extends DateTimeRangePickerView, TComponentProps extends Omit<BaseClockProps<TDate, TimeViewWithMeridiem>, 'value' | 'defaultValue' | 'onChange'>>(props: DateTimeRangePickerTimeWrapperProps<TDate, TView, TComponentProps>, ref: React.Ref<HTMLDivElement>): React.ReactNode;
20
21
  export { DateTimeRangePickerTimeWrapper };
@@ -1,15 +1,19 @@
1
1
  import * as React from 'react';
2
2
  import { BaseToolbarProps, ExportedBaseToolbarProps, DateOrTimeViewWithMeridiem, WrapperVariant } from '@mui/x-date-pickers/internals';
3
+ import { PickerValidDate } from '@mui/x-date-pickers/models';
3
4
  import { DateRange } from '../models';
4
5
  import { UseRangePositionResponse } from '../internals/hooks/useRangePosition';
5
6
  import { DateTimeRangePickerToolbarClasses } from './dateTimeRangePickerToolbarClasses';
6
7
  type DateTimeRangeViews = Exclude<DateOrTimeViewWithMeridiem, 'year' | 'month'>;
7
- export interface DateTimeRangePickerToolbarProps<TDate> extends BaseToolbarProps<DateRange<TDate>, DateTimeRangeViews>, Pick<UseRangePositionResponse, 'rangePosition' | 'onRangePositionChange'>, ExportedDateTimeRangePickerToolbarProps {
8
+ export interface DateTimeRangePickerToolbarProps<TDate extends PickerValidDate> extends BaseToolbarProps<DateRange<TDate>, DateTimeRangeViews>, Pick<UseRangePositionResponse, 'rangePosition' | 'onRangePositionChange'>, ExportedDateTimeRangePickerToolbarProps {
8
9
  ampm?: boolean;
9
10
  toolbarVariant?: WrapperVariant;
10
11
  }
11
12
  export interface ExportedDateTimeRangePickerToolbarProps extends ExportedBaseToolbarProps {
13
+ /**
14
+ * Override or extend the styles applied to the component.
15
+ */
12
16
  classes?: Partial<DateTimeRangePickerToolbarClasses>;
13
17
  }
14
- declare const DateTimeRangePickerToolbar: React.ForwardRefExoticComponent<DateTimeRangePickerToolbarProps<unknown> & React.RefAttributes<HTMLDivElement>>;
18
+ declare const DateTimeRangePickerToolbar: React.ForwardRefExoticComponent<DateTimeRangePickerToolbarProps<PickerValidDate> & React.RefAttributes<HTMLDivElement>>;
15
19
  export { DateTimeRangePickerToolbar };
@@ -135,6 +135,9 @@ process.env.NODE_ENV !== "production" ? DateTimeRangePickerToolbar.propTypes = {
135
135
  // | To update them edit the TypeScript types and run "yarn proptypes" |
136
136
  // ----------------------------------------------------------------------
137
137
  ampm: PropTypes.bool,
138
+ /**
139
+ * Override or extend the styles applied to the component.
140
+ */
138
141
  classes: PropTypes.object,
139
142
  className: PropTypes.string,
140
143
  disabled: PropTypes.bool,
@@ -154,6 +157,9 @@ process.env.NODE_ENV !== "production" ? DateTimeRangePickerToolbar.propTypes = {
154
157
  onViewChange: PropTypes.func.isRequired,
155
158
  rangePosition: PropTypes.oneOf(['end', 'start']).isRequired,
156
159
  readOnly: PropTypes.bool,
160
+ /**
161
+ * The system prop that allows defining system overrides as well as additional CSS styles.
162
+ */
157
163
  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
158
164
  titleId: PropTypes.string,
159
165
  /**
@@ -166,7 +172,7 @@ process.env.NODE_ENV !== "production" ? DateTimeRangePickerToolbar.propTypes = {
166
172
  */
167
173
  toolbarPlaceholder: PropTypes.node,
168
174
  toolbarVariant: PropTypes.oneOf(['desktop', 'mobile']),
169
- value: PropTypes.arrayOf(PropTypes.any).isRequired,
175
+ value: PropTypes.arrayOf(PropTypes.object).isRequired,
170
176
  /**
171
177
  * Currently visible picker view.
172
178
  */
@@ -1,6 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { LocalizedComponent } from '@mui/x-date-pickers/locales';
3
3
  import { DefaultizedProps, BaseDateValidationProps, BasePickerInputProps, PickerViewRendererLookup, BaseClockProps, DesktopOnlyTimePickerProps, TimeViewWithMeridiem, UseViewsOptions, DateTimeValidationProps } from '@mui/x-date-pickers/internals';
4
+ import { PickerValidDate } from '@mui/x-date-pickers/models';
4
5
  import { TimeViewRendererProps } from '@mui/x-date-pickers/timeViewRenderers';
5
6
  import { DigitalClockSlots, DigitalClockSlotProps } from '@mui/x-date-pickers/DigitalClock';
6
7
  import { MultiSectionDigitalClockSlots, MultiSectionDigitalClockSlotProps } from '@mui/x-date-pickers/MultiSectionDigitalClock';
@@ -10,7 +11,7 @@ import { DateRangeCalendarSlots, DateRangeCalendarSlotProps, ExportedDateRangeCa
10
11
  import { DateTimeRangePickerToolbarProps, ExportedDateTimeRangePickerToolbarProps } from './DateTimeRangePickerToolbar';
11
12
  import { DateRangeViewRendererProps } from '../dateRangeViewRenderers';
12
13
  import { DateTimeRangePickerTabsProps, ExportedDateTimeRangePickerTabsProps } from './DateTimeRangePickerTabs';
13
- export interface BaseDateTimeRangePickerSlots<TDate> extends DateRangeCalendarSlots<TDate>, DigitalClockSlots, MultiSectionDigitalClockSlots {
14
+ export interface BaseDateTimeRangePickerSlots<TDate extends PickerValidDate> extends DateRangeCalendarSlots<TDate>, DigitalClockSlots, MultiSectionDigitalClockSlots {
14
15
  /**
15
16
  * Tabs enabling toggling between date and time pickers.
16
17
  * @default DateTimeRangePickerTabs
@@ -22,7 +23,7 @@ export interface BaseDateTimeRangePickerSlots<TDate> extends DateRangeCalendarSl
22
23
  */
23
24
  toolbar?: React.JSXElementConstructor<DateTimeRangePickerToolbarProps<TDate>>;
24
25
  }
25
- export interface BaseDateTimeRangePickerSlotProps<TDate> extends DateRangeCalendarSlotProps<TDate>, DigitalClockSlotProps, MultiSectionDigitalClockSlotProps {
26
+ export interface BaseDateTimeRangePickerSlotProps<TDate extends PickerValidDate> extends DateRangeCalendarSlotProps<TDate>, DigitalClockSlotProps, MultiSectionDigitalClockSlotProps {
26
27
  /**
27
28
  * Props passed down to the tabs component.
28
29
  */
@@ -32,7 +33,7 @@ export interface BaseDateTimeRangePickerSlotProps<TDate> extends DateRangeCalend
32
33
  */
33
34
  toolbar?: ExportedDateTimeRangePickerToolbarProps;
34
35
  }
35
- export interface BaseDateTimeRangePickerProps<TDate> extends Omit<BasePickerInputProps<DateRange<TDate>, TDate, DateTimeRangePickerView, DateTimeRangeValidationError>, 'orientation' | 'views' | 'openTo'>, ExportedDateRangeCalendarProps<TDate>, BaseDateValidationProps<TDate>, DesktopOnlyTimePickerProps<TDate>, Partial<Pick<UseViewsOptions<DateRange<TDate>, DateTimeRangePickerViewExternal>, 'openTo' | 'views'>>, DateTimeValidationProps<TDate> {
36
+ export interface BaseDateTimeRangePickerProps<TDate extends PickerValidDate> extends Omit<BasePickerInputProps<DateRange<TDate>, TDate, DateTimeRangePickerView, DateTimeRangeValidationError>, 'orientation' | 'views' | 'openTo'>, ExportedDateRangeCalendarProps<TDate>, BaseDateValidationProps<TDate>, DesktopOnlyTimePickerProps<TDate>, Partial<Pick<UseViewsOptions<DateRange<TDate>, DateTimeRangePickerViewExternal>, 'openTo' | 'views'>>, DateTimeValidationProps<TDate> {
36
37
  /**
37
38
  * Overridable component slots.
38
39
  * @default {}
@@ -52,9 +53,9 @@ export interface BaseDateTimeRangePickerProps<TDate> extends Omit<BasePickerInpu
52
53
  view: DateTimeRangePickerView;
53
54
  }, {}>>;
54
55
  }
55
- type UseDateTimeRangePickerDefaultizedProps<TDate, Props extends BaseDateTimeRangePickerProps<TDate>> = LocalizedComponent<TDate, Omit<DefaultizedProps<Props, 'openTo' | 'ampm' | keyof BaseDateValidationProps<TDate>>, 'views'>> & {
56
+ type UseDateTimeRangePickerDefaultizedProps<TDate extends PickerValidDate, Props extends BaseDateTimeRangePickerProps<TDate>> = LocalizedComponent<TDate, Omit<DefaultizedProps<Props, 'openTo' | 'ampm' | keyof BaseDateValidationProps<TDate>>, 'views'>> & {
56
57
  shouldRenderTimeInASingleColumn: boolean;
57
58
  views: readonly DateTimeRangePickerView[];
58
59
  };
59
- export declare function useDateTimeRangePickerDefaultizedProps<TDate, Props extends BaseDateTimeRangePickerProps<TDate>>(props: Props, name: string): UseDateTimeRangePickerDefaultizedProps<TDate, Props>;
60
+ export declare function useDateTimeRangePickerDefaultizedProps<TDate extends PickerValidDate, Props extends BaseDateTimeRangePickerProps<TDate>>(props: Props, name: string): UseDateTimeRangePickerDefaultizedProps<TDate, Props>;
60
61
  export {};
@@ -1,6 +1,7 @@
1
1
  import * as React from 'react';
2
+ import { PickerValidDate } from '@mui/x-date-pickers/models';
2
3
  import { DesktopDateRangePickerProps } from './DesktopDateRangePicker.types';
3
- type DesktopDateRangePickerComponent = (<TDate>(props: DesktopDateRangePickerProps<TDate> & React.RefAttributes<HTMLDivElement>) => React.JSX.Element) & {
4
+ type DesktopDateRangePickerComponent = (<TDate extends PickerValidDate, TEnableAccessibleFieldDOMStructure extends boolean = false>(props: DesktopDateRangePickerProps<TDate, TEnableAccessibleFieldDOMStructure> & React.RefAttributes<HTMLDivElement>) => React.JSX.Element) & {
4
5
  propTypes?: any;
5
6
  };
6
7
  /**
@@ -102,7 +102,7 @@ DesktopDateRangePicker.propTypes = {
102
102
  * The default value.
103
103
  * Used when the component is not controlled.
104
104
  */
105
- defaultValue: PropTypes.arrayOf(PropTypes.any),
105
+ defaultValue: PropTypes.arrayOf(PropTypes.object),
106
106
  /**
107
107
  * If `true`, after selecting `start` date calendar will not automatically switch to the month of `end` date.
108
108
  * @default false
@@ -142,10 +142,13 @@ DesktopDateRangePicker.propTypes = {
142
142
  * If `true`, the week number will be display in the calendar.
143
143
  */
144
144
  displayWeekNumber: PropTypes.bool,
145
+ /**
146
+ * @default false
147
+ */
148
+ enableAccessibleFieldDOMStructure: PropTypes.any,
145
149
  /**
146
150
  * The day view will show as many weeks as needed after the end of the current month to match this value.
147
151
  * Put it to 6 to have a fixed number of weeks in Gregorian calendars
148
- * @default undefined
149
152
  */
150
153
  fixedWeekNumber: PropTypes.number,
151
154
  /**
@@ -183,11 +186,11 @@ DesktopDateRangePicker.propTypes = {
183
186
  /**
184
187
  * Maximal selectable date.
185
188
  */
186
- maxDate: PropTypes.any,
189
+ maxDate: PropTypes.object,
187
190
  /**
188
191
  * Minimal selectable date.
189
192
  */
190
- minDate: PropTypes.any,
193
+ minDate: PropTypes.object,
191
194
  /**
192
195
  * Name attribute used by the `input` element in the Field.
193
196
  * Ignored if the field has several inputs.
@@ -263,7 +266,7 @@ DesktopDateRangePicker.propTypes = {
263
266
  * The date used to generate the new value when both `value` and `defaultValue` are empty.
264
267
  * @default The closest valid date-time using the validation props, except callbacks like `shouldDisable<...>`.
265
268
  */
266
- referenceDate: PropTypes.any,
269
+ referenceDate: PropTypes.object,
267
270
  /**
268
271
  * Component rendered on the "day" view when `props.loading` is true.
269
272
  * @returns {React.ReactNode} The node to render when loading.
@@ -272,17 +275,14 @@ DesktopDateRangePicker.propTypes = {
272
275
  renderLoading: PropTypes.func,
273
276
  /**
274
277
  * The currently selected sections.
275
- * This prop accept four formats:
278
+ * This prop accepts four formats:
276
279
  * 1. If a number is provided, the section at this index will be selected.
277
- * 2. If an object with a `startIndex` and `endIndex` properties are provided, the sections between those two indexes will be selected.
278
- * 3. If a string of type `FieldSectionType` is provided, the first section with that name will be selected.
279
- * 4. If `null` is provided, no section will be selected
280
+ * 2. If a string of type `FieldSectionType` is provided, the first section with that name will be selected.
281
+ * 3. If `"all"` is provided, all the sections will be selected.
282
+ * 4. If `null` is provided, no section will be selected.
280
283
  * If not provided, the selected sections will be handled internally.
281
284
  */
282
- selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number, PropTypes.shape({
283
- endIndex: PropTypes.number.isRequired,
284
- startIndex: PropTypes.number.isRequired
285
- })]),
285
+ selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'empty', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'weekDay', 'year']), PropTypes.number]),
286
286
  /**
287
287
  * Disable specific date.
288
288
  *
@@ -331,7 +331,7 @@ DesktopDateRangePicker.propTypes = {
331
331
  * The selected value.
332
332
  * Used when the component is controlled.
333
333
  */
334
- value: PropTypes.arrayOf(PropTypes.any),
334
+ value: PropTypes.arrayOf(PropTypes.object),
335
335
  /**
336
336
  * Define custom view renderers for each section.
337
337
  * If `null`, the section will only have field editing.