@mui/lab 5.0.0-alpha.49 → 5.0.0-alpha.53

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 (336) hide show
  1. package/AdapterDateFns/index.d.ts +1 -1
  2. package/AdapterDayjs/index.d.ts +1 -1
  3. package/AdapterLuxon/index.d.ts +1 -1
  4. package/AdapterMoment/index.d.ts +1 -1
  5. package/CHANGELOG.md +251 -0
  6. package/CalendarPicker/CalendarPicker.d.ts +96 -96
  7. package/CalendarPicker/PickersCalendar.d.ts +45 -45
  8. package/CalendarPicker/PickersCalendarHeader.d.ts +42 -42
  9. package/CalendarPicker/PickersFadeTransitionGroup.d.ts +12 -12
  10. package/CalendarPicker/PickersFadeTransitionGroup.js +2 -2
  11. package/CalendarPicker/PickersSlideTransition.d.ts +16 -16
  12. package/CalendarPicker/index.d.ts +5 -5
  13. package/CalendarPicker/shared.d.ts +1 -1
  14. package/CalendarPicker/useCalendarState.d.ts +32 -32
  15. package/CalendarPickerSkeleton/CalendarPickerSkeleton.d.ts +41 -40
  16. package/CalendarPickerSkeleton/CalendarPickerSkeleton.js +1 -1
  17. package/CalendarPickerSkeleton/index.d.ts +3 -3
  18. package/ClockPicker/Clock.d.ts +28 -28
  19. package/ClockPicker/ClockNumber.d.ts +19 -19
  20. package/ClockPicker/ClockNumbers.d.ts +24 -24
  21. package/ClockPicker/ClockPicker.d.ts +121 -121
  22. package/ClockPicker/ClockPickerStandalone.d.ts +28 -28
  23. package/ClockPicker/ClockPointer.d.ts +23 -23
  24. package/ClockPicker/index.d.ts +5 -5
  25. package/ClockPicker/shared.d.ts +5 -5
  26. package/DatePicker/DatePicker.d.ts +27 -27
  27. package/DatePicker/DatePicker.js +5 -0
  28. package/DatePicker/DatePickerToolbar.d.ts +23 -23
  29. package/DatePicker/index.d.ts +2 -2
  30. package/DatePicker/shared.d.ts +45 -41
  31. package/DateRangePicker/DateRangePicker.d.ts +65 -65
  32. package/DateRangePicker/DateRangePicker.js +5 -0
  33. package/DateRangePicker/DateRangePickerInput.d.ts +35 -35
  34. package/DateRangePicker/DateRangePickerToolbar.d.ts +15 -15
  35. package/DateRangePicker/DateRangePickerView.d.ts +44 -44
  36. package/DateRangePicker/DateRangePickerViewDesktop.d.ts +29 -29
  37. package/DateRangePicker/DateRangePickerViewMobile.d.ts +17 -17
  38. package/DateRangePicker/RangeTypes.d.ts +8 -8
  39. package/DateRangePicker/date-range-manager.d.ts +14 -14
  40. package/DateRangePicker/index.d.ts +3 -3
  41. package/DateRangePickerDay/DateRangePickerDay.d.ts +79 -79
  42. package/DateRangePickerDay/DateRangePickerDay.js +1 -1
  43. package/DateRangePickerDay/index.d.ts +2 -2
  44. package/DateTimePicker/DateTimePicker.d.ts +27 -27
  45. package/DateTimePicker/DateTimePicker.js +5 -0
  46. package/DateTimePicker/DateTimePickerTabs.d.ts +13 -13
  47. package/DateTimePicker/DateTimePickerToolbar.d.ts +7 -7
  48. package/DateTimePicker/index.d.ts +2 -2
  49. package/DateTimePicker/shared.d.ts +67 -63
  50. package/DesktopDatePicker/DesktopDatePicker.d.ts +20 -20
  51. package/DesktopDatePicker/DesktopDatePicker.js +8 -1
  52. package/DesktopDatePicker/index.d.ts +2 -2
  53. package/DesktopDateRangePicker/DesktopDateRangePicker.d.ts +64 -64
  54. package/DesktopDateRangePicker/DesktopDateRangePicker.js +5 -0
  55. package/DesktopDateRangePicker/index.d.ts +2 -2
  56. package/DesktopDateTimePicker/DesktopDateTimePicker.d.ts +20 -20
  57. package/DesktopDateTimePicker/DesktopDateTimePicker.js +5 -0
  58. package/DesktopDateTimePicker/index.d.ts +2 -2
  59. package/DesktopTimePicker/DesktopTimePicker.d.ts +20 -20
  60. package/DesktopTimePicker/DesktopTimePicker.js +10 -0
  61. package/DesktopTimePicker/index.d.ts +2 -2
  62. package/LICENSE +21 -21
  63. package/LoadingButton/LoadingButton.js +37 -7
  64. package/LoadingButton/loadingButtonClasses.d.ts +22 -22
  65. package/LocalizationProvider/LocalizationProvider.d.ts +35 -35
  66. package/LocalizationProvider/index.d.ts +2 -2
  67. package/Masonry/Masonry.d.ts +13 -1
  68. package/Masonry/Masonry.js +246 -59
  69. package/Masonry/masonryClasses.d.ts +8 -8
  70. package/MobileDatePicker/MobileDatePicker.d.ts +20 -20
  71. package/MobileDatePicker/index.d.ts +2 -2
  72. package/MobileDateRangePicker/MobileDateRangePicker.d.ts +64 -64
  73. package/MobileDateRangePicker/index.d.ts +2 -2
  74. package/MobileDateTimePicker/MobileDateTimePicker.d.ts +20 -20
  75. package/MobileDateTimePicker/index.d.ts +2 -2
  76. package/MobileTimePicker/MobileTimePicker.d.ts +20 -20
  77. package/MobileTimePicker/MobileTimePicker.js +5 -0
  78. package/MobileTimePicker/index.d.ts +2 -2
  79. package/MonthPicker/MonthPicker.d.ts +49 -49
  80. package/MonthPicker/MonthPicker.js +1 -1
  81. package/MonthPicker/PickersMonth.d.ts +15 -15
  82. package/MonthPicker/index.d.ts +3 -3
  83. package/PickersDay/PickersDay.d.ts +93 -93
  84. package/PickersDay/PickersDay.js +1 -1
  85. package/PickersDay/index.d.ts +4 -4
  86. package/StaticDatePicker/StaticDatePicker.d.ts +25 -25
  87. package/StaticDatePicker/index.d.ts +2 -2
  88. package/StaticDateRangePicker/StaticDateRangePicker.d.ts +67 -67
  89. package/StaticDateRangePicker/index.d.ts +2 -2
  90. package/StaticDateTimePicker/StaticDateTimePicker.d.ts +25 -25
  91. package/StaticDateTimePicker/index.d.ts +2 -2
  92. package/StaticTimePicker/StaticTimePicker.d.ts +25 -25
  93. package/StaticTimePicker/StaticTimePicker.js +5 -0
  94. package/StaticTimePicker/index.d.ts +2 -2
  95. package/TabPanel/TabPanel.js +1 -1
  96. package/TabPanel/tabPanelClasses.d.ts +8 -8
  97. package/TimePicker/TimePicker.d.ts +27 -27
  98. package/TimePicker/TimePicker.js +10 -0
  99. package/TimePicker/TimePickerToolbar.d.ts +23 -23
  100. package/TimePicker/index.d.ts +2 -2
  101. package/TimePicker/shared.d.ts +36 -32
  102. package/Timeline/Timeline.d.ts +59 -59
  103. package/Timeline/Timeline.js +1 -1
  104. package/Timeline/TimelineContext.d.ts +6 -6
  105. package/Timeline/index.d.ts +5 -5
  106. package/Timeline/timelineClasses.d.ts +3 -3
  107. package/TimelineConnector/TimelineConnector.js +1 -1
  108. package/TimelineConnector/timelineConnectorClasses.d.ts +8 -8
  109. package/TimelineContent/TimelineContent.js +1 -1
  110. package/TimelineContent/timelineContentClasses.d.ts +14 -14
  111. package/TimelineDot/TimelineDot.js +1 -1
  112. package/TimelineDot/timelineDotClasses.d.ts +24 -24
  113. package/TimelineItem/TimelineItem.js +1 -1
  114. package/TimelineItem/timelineItemClasses.d.ts +16 -16
  115. package/TimelineOppositeContent/TimelineOppositeContent.js +1 -1
  116. package/TimelineOppositeContent/timelineOppositeContentClasses.d.ts +14 -14
  117. package/TimelineSeparator/TimelineSeparator.js +1 -1
  118. package/TimelineSeparator/timelineSeparatorClasses.d.ts +8 -8
  119. package/TreeItem/TreeItem.js +1 -1
  120. package/TreeItem/treeItemClasses.d.ts +24 -24
  121. package/TreeView/TreeView.js +1 -1
  122. package/TreeView/treeViewClasses.d.ts +8 -8
  123. package/YearPicker/PickersYear.d.ts +28 -28
  124. package/YearPicker/YearPicker.d.ts +42 -42
  125. package/YearPicker/index.d.ts +5 -5
  126. package/YearPicker/yearPickerClasses.d.ts +3 -3
  127. package/index.js +1 -1
  128. package/internal/pickers/KeyboardDateInput.d.ts +4 -4
  129. package/internal/pickers/Picker/Picker.d.ts +33 -33
  130. package/internal/pickers/Picker/Picker.js +12 -6
  131. package/internal/pickers/Picker/PickerView.d.ts +3 -7
  132. package/internal/pickers/PickersArrowSwitcher.d.ts +41 -41
  133. package/internal/pickers/PickersArrowSwitcher.js +1 -3
  134. package/internal/pickers/PickersModalDialog.d.ts +47 -47
  135. package/internal/pickers/PickersPopper.d.ts +33 -25
  136. package/internal/pickers/PickersPopper.js +31 -7
  137. package/internal/pickers/PickersToolbar.d.ts +14 -14
  138. package/internal/pickers/PickersToolbarButton.d.ts +13 -13
  139. package/internal/pickers/PickersToolbarText.d.ts +8 -8
  140. package/internal/pickers/PureDateInput.d.ts +80 -80
  141. package/internal/pickers/constants/dimensions.d.ts +4 -4
  142. package/internal/pickers/constants/prop-types.d.ts +1 -1
  143. package/internal/pickers/date-time-utils.d.ts +8 -8
  144. package/internal/pickers/date-utils.d.ts +52 -52
  145. package/internal/pickers/hooks/date-helpers-hooks.d.ts +16 -16
  146. package/internal/pickers/hooks/useIsLandscape.d.ts +4 -4
  147. package/internal/pickers/hooks/useMaskedInput.d.ts +7 -7
  148. package/internal/pickers/hooks/useOpenState.d.ts +10 -10
  149. package/internal/pickers/hooks/usePickerState.d.ts +38 -38
  150. package/internal/pickers/hooks/useUtils.d.ts +7 -7
  151. package/internal/pickers/hooks/useValidation.d.ts +23 -23
  152. package/internal/pickers/hooks/useViews.d.ts +19 -19
  153. package/internal/pickers/test-utils.js +18 -26
  154. package/internal/pickers/text-field-helper.d.ts +11 -11
  155. package/internal/pickers/time-utils.d.ts +33 -33
  156. package/internal/pickers/typings/BasePicker.d.ts +95 -95
  157. package/internal/pickers/typings/Views.d.ts +1 -1
  158. package/internal/pickers/typings/helpers.d.ts +9 -9
  159. package/internal/pickers/utils.d.ts +7 -7
  160. package/internal/pickers/wrappers/DesktopTooltipWrapper.d.ts +4 -4
  161. package/internal/pickers/wrappers/DesktopWrapper.d.ts +16 -16
  162. package/internal/pickers/wrappers/DesktopWrapper.js +2 -0
  163. package/internal/pickers/wrappers/MobileWrapper.d.ts +14 -14
  164. package/internal/pickers/wrappers/ResponsiveWrapper.d.ts +23 -23
  165. package/internal/pickers/wrappers/StaticWrapper.d.ts +10 -10
  166. package/internal/pickers/wrappers/WrapperProps.d.ts +13 -13
  167. package/internal/pickers/wrappers/WrapperVariantContext.d.ts +11 -11
  168. package/internal/svg-icons/ArrowDropDown.d.ts +7 -7
  169. package/internal/svg-icons/ArrowLeft.d.ts +7 -7
  170. package/internal/svg-icons/ArrowRight.d.ts +7 -7
  171. package/internal/svg-icons/Calendar.d.ts +7 -7
  172. package/internal/svg-icons/Clock.d.ts +7 -7
  173. package/internal/svg-icons/DateRange.d.ts +7 -7
  174. package/internal/svg-icons/Pen.d.ts +7 -7
  175. package/internal/svg-icons/Time.d.ts +7 -7
  176. package/legacy/CalendarPicker/PickersFadeTransitionGroup.js +3 -5
  177. package/legacy/CalendarPickerSkeleton/CalendarPickerSkeleton.js +1 -1
  178. package/legacy/DatePicker/DatePicker.js +5 -0
  179. package/legacy/DateRangePicker/DateRangePicker.js +5 -0
  180. package/legacy/DateRangePickerDay/DateRangePickerDay.js +1 -1
  181. package/legacy/DateTimePicker/DateTimePicker.js +5 -0
  182. package/legacy/DesktopDatePicker/DesktopDatePicker.js +8 -1
  183. package/legacy/DesktopDateRangePicker/DesktopDateRangePicker.js +5 -0
  184. package/legacy/DesktopDateTimePicker/DesktopDateTimePicker.js +5 -0
  185. package/legacy/DesktopTimePicker/DesktopTimePicker.js +10 -0
  186. package/legacy/LoadingButton/LoadingButton.js +36 -10
  187. package/legacy/Masonry/Masonry.js +255 -59
  188. package/legacy/MobileTimePicker/MobileTimePicker.js +5 -0
  189. package/legacy/MonthPicker/MonthPicker.js +1 -1
  190. package/legacy/PickersDay/PickersDay.js +1 -1
  191. package/legacy/StaticTimePicker/StaticTimePicker.js +5 -0
  192. package/legacy/TabPanel/TabPanel.js +1 -1
  193. package/legacy/TimePicker/TimePicker.js +10 -0
  194. package/legacy/Timeline/Timeline.js +1 -1
  195. package/legacy/TimelineConnector/TimelineConnector.js +1 -1
  196. package/legacy/TimelineContent/TimelineContent.js +1 -1
  197. package/legacy/TimelineDot/TimelineDot.js +1 -1
  198. package/legacy/TimelineItem/TimelineItem.js +1 -1
  199. package/legacy/TimelineOppositeContent/TimelineOppositeContent.js +1 -1
  200. package/legacy/TimelineSeparator/TimelineSeparator.js +1 -1
  201. package/legacy/TreeItem/TreeItem.js +1 -1
  202. package/legacy/TreeView/TreeView.js +1 -1
  203. package/legacy/index.js +1 -1
  204. package/legacy/internal/pickers/Picker/Picker.js +12 -8
  205. package/legacy/internal/pickers/PickersArrowSwitcher.js +1 -3
  206. package/legacy/internal/pickers/PickersPopper.js +29 -7
  207. package/legacy/internal/pickers/test-utils.js +22 -33
  208. package/legacy/internal/pickers/wrappers/DesktopWrapper.js +2 -0
  209. package/modern/CalendarPicker/PickersFadeTransitionGroup.js +2 -2
  210. package/modern/CalendarPickerSkeleton/CalendarPickerSkeleton.js +1 -1
  211. package/modern/DatePicker/DatePicker.js +5 -0
  212. package/modern/DateRangePicker/DateRangePicker.js +5 -0
  213. package/modern/DateRangePickerDay/DateRangePickerDay.js +1 -1
  214. package/modern/DateTimePicker/DateTimePicker.js +5 -0
  215. package/modern/DesktopDatePicker/DesktopDatePicker.js +8 -1
  216. package/modern/DesktopDateRangePicker/DesktopDateRangePicker.js +5 -0
  217. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +5 -0
  218. package/modern/DesktopTimePicker/DesktopTimePicker.js +10 -0
  219. package/modern/LoadingButton/LoadingButton.js +37 -7
  220. package/modern/Masonry/Masonry.js +246 -59
  221. package/modern/MobileTimePicker/MobileTimePicker.js +5 -0
  222. package/modern/MonthPicker/MonthPicker.js +1 -1
  223. package/modern/PickersDay/PickersDay.js +1 -1
  224. package/modern/StaticTimePicker/StaticTimePicker.js +5 -0
  225. package/modern/TabPanel/TabPanel.js +1 -1
  226. package/modern/TimePicker/TimePicker.js +10 -0
  227. package/modern/Timeline/Timeline.js +1 -1
  228. package/modern/TimelineConnector/TimelineConnector.js +1 -1
  229. package/modern/TimelineContent/TimelineContent.js +1 -1
  230. package/modern/TimelineDot/TimelineDot.js +1 -1
  231. package/modern/TimelineItem/TimelineItem.js +1 -1
  232. package/modern/TimelineOppositeContent/TimelineOppositeContent.js +1 -1
  233. package/modern/TimelineSeparator/TimelineSeparator.js +1 -1
  234. package/modern/TreeItem/TreeItem.js +1 -1
  235. package/modern/TreeView/TreeView.js +1 -1
  236. package/modern/index.js +1 -1
  237. package/modern/internal/pickers/Picker/Picker.js +12 -6
  238. package/modern/internal/pickers/PickersArrowSwitcher.js +1 -3
  239. package/modern/internal/pickers/PickersPopper.js +31 -7
  240. package/modern/internal/pickers/test-utils.js +18 -26
  241. package/modern/internal/pickers/wrappers/DesktopWrapper.js +2 -0
  242. package/node/CalendarPicker/CalendarPicker.js +1 -1
  243. package/node/CalendarPicker/PickersFadeTransitionGroup.js +2 -2
  244. package/node/CalendarPicker/PickersSlideTransition.js +1 -1
  245. package/node/CalendarPicker/index.js +4 -4
  246. package/node/CalendarPicker/useCalendarState.js +1 -1
  247. package/node/CalendarPickerSkeleton/CalendarPickerSkeleton.js +2 -2
  248. package/node/CalendarPickerSkeleton/index.js +4 -4
  249. package/node/ClockPicker/ClockPicker.js +1 -1
  250. package/node/ClockPicker/index.js +4 -4
  251. package/node/ClockPicker/shared.js +1 -1
  252. package/node/DatePicker/DatePicker.js +5 -0
  253. package/node/DatePicker/shared.js +1 -1
  254. package/node/DateRangePicker/DateRangePicker.js +5 -0
  255. package/node/DateRangePickerDay/DateRangePickerDay.js +2 -2
  256. package/node/DateTimePicker/DateTimePicker.js +5 -0
  257. package/node/DesktopDatePicker/DesktopDatePicker.js +8 -1
  258. package/node/DesktopDateRangePicker/DesktopDateRangePicker.js +5 -0
  259. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +5 -0
  260. package/node/DesktopTimePicker/DesktopTimePicker.js +10 -0
  261. package/node/LoadingButton/LoadingButton.js +37 -7
  262. package/node/LoadingButton/loadingButtonClasses.js +1 -1
  263. package/node/Masonry/Masonry.js +247 -63
  264. package/node/Masonry/masonryClasses.js +1 -1
  265. package/node/MobileTimePicker/MobileTimePicker.js +5 -0
  266. package/node/MonthPicker/MonthPicker.js +3 -2
  267. package/node/PickersDay/PickersDay.js +3 -2
  268. package/node/PickersDay/index.js +4 -4
  269. package/node/StaticTimePicker/StaticTimePicker.js +5 -0
  270. package/node/TabContext/TabContext.js +1 -1
  271. package/node/TabPanel/TabPanel.js +1 -1
  272. package/node/TabPanel/tabPanelClasses.js +1 -1
  273. package/node/TimePicker/TimePicker.js +10 -0
  274. package/node/TimePicker/TimePickerToolbar.js +2 -1
  275. package/node/Timeline/Timeline.js +1 -1
  276. package/node/Timeline/timelineClasses.js +1 -1
  277. package/node/TimelineConnector/TimelineConnector.js +1 -1
  278. package/node/TimelineConnector/timelineConnectorClasses.js +1 -1
  279. package/node/TimelineContent/TimelineContent.js +1 -1
  280. package/node/TimelineContent/timelineContentClasses.js +1 -1
  281. package/node/TimelineDot/TimelineDot.js +1 -1
  282. package/node/TimelineDot/timelineDotClasses.js +1 -1
  283. package/node/TimelineItem/TimelineItem.js +1 -1
  284. package/node/TimelineItem/timelineItemClasses.js +1 -1
  285. package/node/TimelineOppositeContent/TimelineOppositeContent.js +1 -1
  286. package/node/TimelineOppositeContent/timelineOppositeContentClasses.js +1 -1
  287. package/node/TimelineSeparator/TimelineSeparator.js +1 -1
  288. package/node/TimelineSeparator/timelineSeparatorClasses.js +1 -1
  289. package/node/TreeItem/TreeItem.js +1 -1
  290. package/node/TreeItem/index.js +4 -4
  291. package/node/TreeItem/treeItemClasses.js +1 -1
  292. package/node/TreeView/TreeView.js +1 -1
  293. package/node/TreeView/descendants.js +1 -1
  294. package/node/TreeView/treeViewClasses.js +1 -1
  295. package/node/YearPicker/PickersYear.js +2 -1
  296. package/node/YearPicker/yearPickerClasses.js +1 -1
  297. package/node/index.js +7 -7
  298. package/node/internal/pickers/Picker/Picker.js +12 -6
  299. package/node/internal/pickers/PickersArrowSwitcher.js +1 -3
  300. package/node/internal/pickers/PickersPopper.js +31 -7
  301. package/node/internal/pickers/constants/dimensions.js +1 -1
  302. package/node/internal/pickers/date-utils.js +2 -1
  303. package/node/internal/pickers/hooks/date-helpers-hooks.js +1 -1
  304. package/node/internal/pickers/hooks/useIsLandscape.js +1 -1
  305. package/node/internal/pickers/hooks/useMaskedInput.js +1 -1
  306. package/node/internal/pickers/hooks/useOpenState.js +1 -1
  307. package/node/internal/pickers/hooks/useUtils.js +1 -1
  308. package/node/internal/pickers/hooks/useValidation.js +3 -3
  309. package/node/internal/pickers/test-utils.js +20 -39
  310. package/node/internal/pickers/text-field-helper.js +3 -2
  311. package/node/internal/pickers/time-utils.js +2 -1
  312. package/node/internal/pickers/utils.js +1 -1
  313. package/node/internal/pickers/wrappers/DesktopWrapper.js +2 -0
  314. package/node/internal/pickers/wrappers/WrapperVariantContext.js +1 -1
  315. package/node/useAutocomplete/index.js +4 -4
  316. package/package.json +9 -9
  317. package/Masonry/MasonryContext.js +0 -12
  318. package/MasonryItem/MasonryItem.d.ts +0 -49
  319. package/MasonryItem/MasonryItem.js +0 -196
  320. package/MasonryItem/index.d.ts +0 -5
  321. package/MasonryItem/index.js +0 -3
  322. package/MasonryItem/masonryItemClasses.d.ts +0 -8
  323. package/MasonryItem/masonryItemClasses.js +0 -6
  324. package/MasonryItem/package.json +0 -6
  325. package/legacy/Masonry/MasonryContext.js +0 -12
  326. package/legacy/MasonryItem/MasonryItem.js +0 -201
  327. package/legacy/MasonryItem/index.js +0 -3
  328. package/legacy/MasonryItem/masonryItemClasses.js +0 -6
  329. package/modern/Masonry/MasonryContext.js +0 -12
  330. package/modern/MasonryItem/MasonryItem.js +0 -196
  331. package/modern/MasonryItem/index.js +0 -3
  332. package/modern/MasonryItem/masonryItemClasses.js +0 -6
  333. package/node/Masonry/MasonryContext.js +0 -24
  334. package/node/MasonryItem/MasonryItem.js +0 -220
  335. package/node/MasonryItem/index.js +0 -42
  336. package/node/MasonryItem/masonryItemClasses.js +0 -17
@@ -1,16 +1,16 @@
1
1
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
2
  import _extends from "@babel/runtime/helpers/esm/extends";
3
- const _excluded = ["children", "className", "component", "columns", "spacing"];
4
- import * as React from 'react';
5
- import PropTypes from 'prop-types';
6
- import clsx from 'clsx';
7
- import { createUnarySpacing, getValue, handleBreakpoints, unstable_resolveBreakpointValues as resolveBreakpointValues } from '@mui/system';
8
- import { deepmerge, unstable_useForkRef as useForkRef } from '@mui/utils';
3
+ const _excluded = ["children", "className", "component", "columns", "spacing", "defaultColumns", "defaultHeight", "defaultSpacing"];
9
4
  import { unstable_composeClasses as composeClasses } from '@mui/core';
10
5
  import { styled, useThemeProps } from '@mui/material/styles';
6
+ import { createUnarySpacing, getValue, handleBreakpoints, unstable_resolveBreakpointValues as resolveBreakpointValues } from '@mui/system';
7
+ import { deepmerge, unstable_useForkRef as useForkRef } from '@mui/utils';
8
+ import clsx from 'clsx';
9
+ import PropTypes from 'prop-types';
10
+ import * as React from 'react';
11
11
  import { getMasonryUtilityClass } from './masonryClasses';
12
- import MasonryContext from './MasonryContext';
13
12
  import { jsx as _jsx } from "react/jsx-runtime";
13
+ import { jsxs as _jsxs } from "react/jsx-runtime";
14
14
 
15
15
  const useUtilityClasses = ownerState => {
16
16
  const {
@@ -20,56 +20,146 @@ const useUtilityClasses = ownerState => {
20
20
  root: ['root']
21
21
  };
22
22
  return composeClasses(slots, getMasonryUtilityClass, classes);
23
+ }; // compute base for responsive values; e.g.,
24
+ // [1,2,3] => {xs: true, sm: true, md: true}
25
+ // {xs: 1, sm: 2, md: 3} => {xs: true, sm: true, md: true}
26
+
27
+
28
+ const computeBreakpointsBase = (breakpoints, prop) => {
29
+ const base = {};
30
+
31
+ if (Array.isArray(prop)) {
32
+ Object.keys(breakpoints.values).forEach((breakpoint, i, arr) => {
33
+ if (i < arr.length) {
34
+ base[breakpoint] = true;
35
+ }
36
+ });
37
+ } else {
38
+ Object.keys(breakpoints.values).forEach(breakpoint => {
39
+ if (prop[breakpoint] != null) {
40
+ base[breakpoint] = true;
41
+ }
42
+ });
43
+ }
44
+
45
+ return base;
46
+ }; // if prop is an array, convert to object; e.g.,
47
+ // (base: {xs: true, sm: true, md: true}, prop: [1,2,3]) => {xs: 1, sm: 2, md: 3}
48
+
49
+
50
+ const validatePropValues = (base, prop) => {
51
+ const values = {};
52
+
53
+ if (Array.isArray(prop)) {
54
+ Object.keys(base).forEach((breakpoint, i) => {
55
+ values[breakpoint] = prop[i];
56
+ });
57
+ return values;
58
+ }
59
+
60
+ return prop;
23
61
  };
24
62
 
25
- export const style = ({
63
+ export const getStyle = ({
26
64
  ownerState,
27
65
  theme
28
66
  }) => {
29
67
  let styles = {
30
- display: 'grid',
31
- gridAutoRows: 0,
32
- padding: 0,
33
- overflow: 'auto',
34
68
  width: '100%',
35
- rowGap: 2,
36
- boxSizing: 'border-box'
69
+ display: 'flex',
70
+ flexFlow: 'column wrap',
71
+ alignContent: 'space-between',
72
+ boxSizing: 'border-box',
73
+ '& > *': {
74
+ boxSizing: 'border-box'
75
+ }
37
76
  };
38
- const base = {};
39
- Object.keys(theme.breakpoints.values).forEach(breakpoint => {
40
- if (ownerState.spacing[breakpoint] != null) {
41
- base[breakpoint] = true;
77
+ const stylesSSR = {};
78
+
79
+ if (ownerState.isSSR) {
80
+ const orderStyleSSR = {};
81
+ const defaultSpacing = Number(theme.spacing(ownerState.defaultSpacing).replace('px', ''));
82
+
83
+ for (let i = 1; i <= ownerState.defaultColumns; i += 1) {
84
+ orderStyleSSR[`&:nth-of-type(${ownerState.defaultColumns}n+${i % ownerState.defaultColumns})`] = {
85
+ order: i
86
+ };
42
87
  }
43
- });
88
+
89
+ stylesSSR.height = ownerState.defaultHeight;
90
+ stylesSSR.margin = -(defaultSpacing / 2);
91
+ stylesSSR['& > *'] = _extends({}, styles['& > *'], orderStyleSSR, {
92
+ margin: defaultSpacing / 2,
93
+ width: `calc(${(100 / ownerState.defaultColumns).toFixed(2)}% - ${defaultSpacing}px)`
94
+ });
95
+ return _extends({}, styles, stylesSSR);
96
+ }
97
+
98
+ const spacingBreakpointsBase = computeBreakpointsBase(theme.breakpoints, ownerState.spacing);
44
99
  const spacingValues = resolveBreakpointValues({
45
- values: ownerState.spacing,
46
- base
100
+ values: validatePropValues(spacingBreakpointsBase, ownerState.spacing),
101
+ base: spacingBreakpointsBase
47
102
  });
48
103
  const transformer = createUnarySpacing(theme);
49
104
 
50
105
  const spacingStyleFromPropValue = propValue => {
51
- return {
52
- columnGap: getValue(transformer, propValue)
53
- };
106
+ const themeSpacingValue = Number(propValue);
107
+ const spacing = Number(getValue(transformer, themeSpacingValue).replace('px', ''));
108
+ return _extends({
109
+ margin: -(spacing / 2),
110
+ '& > *': {
111
+ margin: spacing / 2
112
+ }
113
+ }, ownerState.maxColumnHeight && {
114
+ height: Math.ceil(ownerState.maxColumnHeight + spacing)
115
+ });
54
116
  };
55
117
 
56
- styles = _extends({}, styles, handleBreakpoints({
118
+ styles = deepmerge(styles, handleBreakpoints({
57
119
  theme
58
120
  }, spacingValues, spacingStyleFromPropValue));
121
+ const columnBreakpointsBase = computeBreakpointsBase(theme.breakpoints, ownerState.columns);
59
122
  const columnValues = resolveBreakpointValues({
60
- values: ownerState.columns,
61
- base
123
+ values: validatePropValues(columnBreakpointsBase, ownerState.columns),
124
+ base: columnBreakpointsBase
62
125
  });
63
126
 
64
127
  const columnStyleFromPropValue = propValue => {
128
+ const columnValue = Number(propValue);
129
+ const width = `${(100 / columnValue).toFixed(2)}%`;
130
+ const spacing = typeof spacingValues !== 'object' ? getValue(transformer, Number(spacingValues)) : '0px';
65
131
  return {
66
- gridTemplateColumns: `repeat(${propValue}, 1fr)`
132
+ '& > *': {
133
+ width: `calc(${width} - ${spacing})`
134
+ }
67
135
  };
68
136
  };
69
137
 
70
138
  styles = deepmerge(styles, handleBreakpoints({
71
139
  theme
72
- }, columnValues, columnStyleFromPropValue));
140
+ }, columnValues, columnStyleFromPropValue)); // configure width for responsive spacing values
141
+
142
+ if (typeof spacingValues === 'object') {
143
+ styles = deepmerge(styles, handleBreakpoints({
144
+ theme
145
+ }, spacingValues, (propValue, breakpoint) => {
146
+ if (breakpoint) {
147
+ const themeSpacingValue = Number(propValue);
148
+ const lastBreakpoint = Object.keys(columnValues).pop();
149
+ const spacing = getValue(transformer, themeSpacingValue);
150
+ const column = typeof columnValues === 'object' ? columnValues[breakpoint] || columnValues[lastBreakpoint] : columnValues;
151
+ const width = `${(100 / column).toFixed(2)}%`;
152
+ return {
153
+ '& > *': {
154
+ width: `calc(${width} - ${spacing})`
155
+ }
156
+ };
157
+ }
158
+
159
+ return null;
160
+ }));
161
+ }
162
+
73
163
  return styles;
74
164
  };
75
165
  const MasonryRoot = styled('div', {
@@ -78,61 +168,143 @@ const MasonryRoot = styled('div', {
78
168
  overridesResolver: (props, styles) => {
79
169
  return [styles.root];
80
170
  }
81
- })(style);
171
+ })(getStyle);
82
172
  const Masonry = /*#__PURE__*/React.forwardRef(function Masonry(inProps, ref) {
83
173
  const props = useThemeProps({
84
174
  props: inProps,
85
175
  name: 'MuiMasonry'
86
176
  });
87
- const masonryRef = React.useRef();
88
177
 
89
178
  const {
90
179
  children,
91
180
  className,
92
181
  component = 'div',
93
182
  columns = 4,
94
- spacing = 1
183
+ spacing = 1,
184
+ defaultColumns,
185
+ defaultHeight,
186
+ defaultSpacing
95
187
  } = props,
96
188
  other = _objectWithoutPropertiesLoose(props, _excluded);
97
189
 
190
+ const masonryRef = React.useRef();
191
+ const [maxColumnHeight, setMaxColumnHeight] = React.useState();
192
+ const isSSR = !maxColumnHeight && defaultHeight && defaultColumns !== undefined && defaultSpacing !== undefined;
193
+ const [numberOfLineBreaks, setNumberOfLineBreaks] = React.useState(isSSR ? defaultColumns - 1 : 0);
194
+
98
195
  const ownerState = _extends({}, props, {
99
196
  spacing,
100
- columns
197
+ columns,
198
+ maxColumnHeight,
199
+ defaultColumns,
200
+ defaultHeight,
201
+ defaultSpacing,
202
+ isSSR
101
203
  });
102
204
 
103
205
  const classes = useUtilityClasses(ownerState);
104
- const contextValue = React.useMemo(() => ({
105
- spacing
106
- }), [spacing]);
107
- let didWarn = false;
108
206
  React.useEffect(() => {
109
- // scroller always appears when masonry's height goes beyond 2,000px on Chrome
110
- const handleScroll = () => {
111
- if (masonryRef.current.clientHeight === 1998 && !didWarn) {
112
- console.warn(['MUI: The Masonry can have the maximum height of 2,000px on Chrome browser.', 'Items that go beyond this height fail to be rendered on Chrome browser.', 'You can find more in this open issue: https://github.com/mui-org/material-ui/issues/27934'].join('\n')); // eslint-disable-next-line react-hooks/exhaustive-deps
207
+ const handleResize = () => {
208
+ const parentWidth = masonryRef.current.clientWidth;
209
+ const childWidth = masonryRef.current.firstChild.clientWidth;
210
+ const firstChildComputedStyle = window.getComputedStyle(masonryRef.current.firstChild);
211
+ const firstChildMarginLeft = Number(firstChildComputedStyle.marginLeft.replace('px', ''));
212
+ const firstChildMarginRight = Number(firstChildComputedStyle.marginRight.replace('px', ''));
113
213
 
114
- didWarn = true;
214
+ if (parentWidth === 0 || childWidth === 0) {
215
+ return;
115
216
  }
116
- };
117
217
 
218
+ const currentNumberOfColumns = Math.round(parentWidth / (childWidth + firstChildMarginLeft + firstChildMarginRight));
219
+ const columnHeights = new Array(currentNumberOfColumns).fill(0);
220
+ let skip = false;
221
+ masonryRef.current.childNodes.forEach(child => {
222
+ if (child.nodeType !== Node.ELEMENT_NODE || child.dataset.class === 'line-break' || skip) {
223
+ return;
224
+ }
225
+
226
+ const childComputedStyle = window.getComputedStyle(child);
227
+ const childMarginTop = Number(childComputedStyle.marginTop.replace('px', ''));
228
+ const childMarginBottom = Number(childComputedStyle.marginBottom.replace('px', '')); // if any one of children isn't rendered yet, masonry's height shouldn't be computed yet
229
+
230
+ const childHeight = child.clientHeight ? Math.ceil(child.clientHeight) + childMarginTop + childMarginBottom : 0;
231
+
232
+ if (childHeight === 0) {
233
+ skip = true;
234
+ return;
235
+ } // if there is a nested image that isn't rendered yet, masonry's height shouldn't be computed yet
236
+
237
+
238
+ for (let i = 0; i < child.childNodes.length; i += 1) {
239
+ const nestedChild = child.childNodes[i];
240
+
241
+ if (nestedChild.tagName === 'IMG' && nestedChild.clientHeight === 0) {
242
+ skip = true;
243
+ break;
244
+ }
245
+ }
246
+
247
+ if (!skip) {
248
+ // find the current shortest column (where the current item will be placed)
249
+ const currentMinColumnIndex = columnHeights.indexOf(Math.min(...columnHeights));
250
+ columnHeights[currentMinColumnIndex] += childHeight;
251
+ const order = currentMinColumnIndex + 1;
252
+ child.style.order = order;
253
+ }
254
+ });
255
+
256
+ if (!skip) {
257
+ setMaxColumnHeight(Math.max(...columnHeights));
258
+ const numOfLineBreaks = currentNumberOfColumns > 0 ? currentNumberOfColumns - 1 : 0;
259
+ setNumberOfLineBreaks(numOfLineBreaks);
260
+ }
261
+ }; // IE and old browsers are not supported
262
+
263
+
264
+ if (typeof ResizeObserver === 'undefined') {
265
+ return null;
266
+ }
267
+
268
+ const resizeObserver = new ResizeObserver(handleResize);
118
269
  const container = masonryRef.current;
119
- container.addEventListener('scroll', handleScroll);
270
+
271
+ if (container) {
272
+ // only the masonry container and its first child are observed for resizing;
273
+ // this might cause unforeseen problems in some use cases;
274
+ resizeObserver.observe(container);
275
+
276
+ if (container.firstChild) {
277
+ resizeObserver.observe(container.firstChild);
278
+ }
279
+ }
280
+
120
281
  return () => {
121
- container.removeEventListener('scroll', handleScroll);
282
+ resizeObserver.disconnect();
122
283
  };
123
- }, []);
284
+ }, [columns, spacing]);
124
285
  const handleRef = useForkRef(ref, masonryRef);
125
- return /*#__PURE__*/_jsx(MasonryContext.Provider, {
126
- value: contextValue,
127
- children: /*#__PURE__*/_jsx(MasonryRoot, _extends({
128
- as: component,
129
- className: clsx(classes.root, className),
130
- ref: handleRef,
131
- ownerState: ownerState
132
- }, other, {
133
- children: children
134
- }))
135
- });
286
+ const lineBreakStyle = {
287
+ flexBasis: '100%',
288
+ width: 0,
289
+ margin: 0,
290
+ padding: 0
291
+ }; // columns are likely to have different heights and hence can start to merge;
292
+ // a line break at the end of each column prevents columns from merging
293
+
294
+ const lineBreaks = new Array(numberOfLineBreaks).fill('').map((_, index) => /*#__PURE__*/_jsx("span", {
295
+ "data-class": "line-break",
296
+ style: _extends({}, lineBreakStyle, {
297
+ order: index + 1
298
+ })
299
+ }, index));
300
+ return /*#__PURE__*/_jsxs(MasonryRoot, _extends({
301
+ as: component,
302
+ className: clsx(classes.root, className),
303
+ ref: handleRef,
304
+ ownerState: ownerState
305
+ }, other, {
306
+ children: [children, lineBreaks]
307
+ }));
136
308
  });
137
309
  process.env.NODE_ENV !== "production" ? Masonry.propTypes
138
310
  /* remove-proptypes */
@@ -143,7 +315,7 @@ process.env.NODE_ENV !== "production" ? Masonry.propTypes
143
315
  // ----------------------------------------------------------------------
144
316
 
145
317
  /**
146
- * The content of the component. It's recommended to be `<MasonryItem />`s.
318
+ * The content of the component.
147
319
  */
148
320
  children: PropTypes
149
321
  /* @typescript-to-proptypes-ignore */
@@ -171,6 +343,21 @@ process.env.NODE_ENV !== "production" ? Masonry.propTypes
171
343
  */
172
344
  component: PropTypes.elementType,
173
345
 
346
+ /**
347
+ * The default number of columns of the component. This is provided for server-side rendering.
348
+ */
349
+ defaultColumns: PropTypes.number,
350
+
351
+ /**
352
+ * The default height of the component in px. This is provided for server-side rendering.
353
+ */
354
+ defaultHeight: PropTypes.number,
355
+
356
+ /**
357
+ * The default spacing of the component. Like `spacing`, it is a factor of the theme's spacing. This is provided for server-side rendering.
358
+ */
359
+ defaultSpacing: PropTypes.number,
360
+
174
361
  /**
175
362
  * Defines the space between children. It is a factor of the theme's spacing.
176
363
  * @default 1
@@ -180,6 +367,6 @@ process.env.NODE_ENV !== "production" ? Masonry.propTypes
180
367
  /**
181
368
  * Allows defining system overrides as well as additional CSS styles.
182
369
  */
183
- sx: PropTypes.object
370
+ sx: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
184
371
  } : void 0;
185
372
  export default Masonry;
@@ -273,6 +273,11 @@ process.env.NODE_ENV !== "production" ? MobileTimePicker.propTypes
273
273
  */
274
274
  onOpen: PropTypes.func,
275
275
 
276
+ /**
277
+ * Callback fired on view change.
278
+ */
279
+ onViewChange: PropTypes.func,
280
+
276
281
  /**
277
282
  * Control the popup or dialog open state.
278
283
  */
@@ -149,7 +149,7 @@ process.env.NODE_ENV !== "production" ? MonthPicker.propTypes
149
149
  /**
150
150
  * The system prop that allows defining system overrides as well as additional CSS styles.
151
151
  */
152
- sx: PropTypes.object
152
+ sx: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
153
153
  } : void 0;
154
154
  /**
155
155
  *
@@ -374,7 +374,7 @@ process.env.NODE_ENV !== "production" ? PickersDay.propTypes
374
374
  /**
375
375
  * The system prop that allows defining system overrides as well as additional CSS styles.
376
376
  */
377
- sx: PropTypes.object,
377
+ sx: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
378
378
 
379
379
  /**
380
380
  * If `true`, renders as today date.
@@ -241,6 +241,11 @@ process.env.NODE_ENV !== "production" ? StaticTimePicker.propTypes
241
241
  */
242
242
  onOpen: PropTypes.func,
243
243
 
244
+ /**
245
+ * Callback fired on view change.
246
+ */
247
+ onViewChange: PropTypes.func,
248
+
244
249
  /**
245
250
  * Control the popup or dialog open state.
246
251
  */
@@ -91,7 +91,7 @@ process.env.NODE_ENV !== "production" ? TabPanel.propTypes
91
91
  /**
92
92
  * The system prop that allows defining system overrides as well as additional CSS styles.
93
93
  */
94
- sx: PropTypes.object,
94
+ sx: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
95
95
 
96
96
  /**
97
97
  * The `value` of the corresponding `Tab`. Must use the index of the `Tab` when
@@ -276,6 +276,11 @@ process.env.NODE_ENV !== "production" ? TimePicker.propTypes
276
276
  */
277
277
  onOpen: PropTypes.func,
278
278
 
279
+ /**
280
+ * Callback fired on view change.
281
+ */
282
+ onViewChange: PropTypes.func,
283
+
279
284
  /**
280
285
  * Control the popup or dialog open state.
281
286
  */
@@ -296,6 +301,11 @@ process.env.NODE_ENV !== "production" ? TimePicker.propTypes
296
301
  */
297
302
  orientation: PropTypes.oneOf(['landscape', 'portrait']),
298
303
 
304
+ /**
305
+ * Paper props passed down to [Paper](https://mui.com/api/paper/) component.
306
+ */
307
+ PaperProps: PropTypes.object,
308
+
299
309
  /**
300
310
  * Popper props passed down to [Popper](https://mui.com/api/popper/) component.
301
311
  */
@@ -109,7 +109,7 @@ process.env.NODE_ENV !== "production" ? Timeline.propTypes
109
109
  /**
110
110
  * The system prop that allows defining system overrides as well as additional CSS styles.
111
111
  */
112
- sx: PropTypes.object
112
+ sx: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
113
113
  } : void 0;
114
114
  /**
115
115
  *
@@ -77,6 +77,6 @@ process.env.NODE_ENV !== "production" ? TimelineConnector.propTypes
77
77
  /**
78
78
  * The system prop that allows defining system overrides as well as additional CSS styles.
79
79
  */
80
- sx: PropTypes.object
80
+ sx: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
81
81
  } : void 0;
82
82
  export default TimelineConnector;
@@ -94,6 +94,6 @@ process.env.NODE_ENV !== "production" ? TimelineContent.propTypes
94
94
  /**
95
95
  * The system prop that allows defining system overrides as well as additional CSS styles.
96
96
  */
97
- sx: PropTypes.object
97
+ sx: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
98
98
  } : void 0;
99
99
  export default TimelineContent;
@@ -116,7 +116,7 @@ process.env.NODE_ENV !== "production" ? TimelineDot.propTypes
116
116
  /**
117
117
  * The system prop that allows defining system overrides as well as additional CSS styles.
118
118
  */
119
- sx: PropTypes.object,
119
+ sx: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
120
120
 
121
121
  /**
122
122
  * The dot can appear filled or outlined.
@@ -130,6 +130,6 @@ process.env.NODE_ENV !== "production" ? TimelineItem.propTypes
130
130
  /**
131
131
  * The system prop that allows defining system overrides as well as additional CSS styles.
132
132
  */
133
- sx: PropTypes.object
133
+ sx: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
134
134
  } : void 0;
135
135
  export default TimelineItem;
@@ -95,7 +95,7 @@ process.env.NODE_ENV !== "production" ? TimelineOppositeContent.propTypes
95
95
  /**
96
96
  * The system prop that allows defining system overrides as well as additional CSS styles.
97
97
  */
98
- sx: PropTypes.object
98
+ sx: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
99
99
  } : void 0;
100
100
  TimelineOppositeContent.muiName = 'TimelineOppositeContent';
101
101
  export default TimelineOppositeContent;
@@ -74,6 +74,6 @@ process.env.NODE_ENV !== "production" ? TimelineSeparator.propTypes
74
74
  /**
75
75
  * The system prop that allows defining system overrides as well as additional CSS styles.
76
76
  */
77
- sx: PropTypes.object
77
+ sx: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
78
78
  } : void 0;
79
79
  export default TimelineSeparator;
@@ -405,7 +405,7 @@ process.env.NODE_ENV !== "production" ? TreeItem.propTypes
405
405
  /**
406
406
  * The system prop that allows defining system overrides as well as additional CSS styles.
407
407
  */
408
- sx: PropTypes.object,
408
+ sx: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
409
409
 
410
410
  /**
411
411
  * The component used for the transition.
@@ -973,6 +973,6 @@ process.env.NODE_ENV !== "production" ? TreeView.propTypes
973
973
  /**
974
974
  * The system prop that allows defining system overrides as well as additional CSS styles.
975
975
  */
976
- sx: PropTypes.object
976
+ sx: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
977
977
  } : void 0;
978
978
  export default TreeView;
package/modern/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license MUI v5.0.0-alpha.49
1
+ /** @license MUI v5.0.0-alpha.53
2
2
  *
3
3
  * This source code is licensed under the MIT license found in the
4
4
  * LICENSE file in the root directory of this source tree.
@@ -1,6 +1,6 @@
1
1
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
2
  import _extends from "@babel/runtime/helpers/esm/extends";
3
- const _excluded = ["autoFocus", "className", "date", "DateInputProps", "isMobileKeyboardViewOpen", "onDateChange", "openTo", "orientation", "showToolbar", "toggleMobileKeyboardView", "ToolbarComponent", "toolbarFormat", "toolbarPlaceholder", "toolbarTitle", "views"];
3
+ const _excluded = ["autoFocus", "className", "date", "DateInputProps", "isMobileKeyboardViewOpen", "onDateChange", "onViewChange", "openTo", "orientation", "showToolbar", "toggleMobileKeyboardView", "ToolbarComponent", "toolbarFormat", "toolbarPlaceholder", "toolbarTitle", "views"];
4
4
  import * as React from 'react';
5
5
  import { styled } from '@mui/material/styles';
6
6
  import { useViews } from '../hooks/useViews';
@@ -40,7 +40,8 @@ function Picker(props) {
40
40
  DateInputProps,
41
41
  isMobileKeyboardViewOpen,
42
42
  onDateChange,
43
- openTo = 'day',
43
+ onViewChange,
44
+ openTo,
44
45
  orientation,
45
46
  showToolbar,
46
47
  toggleMobileKeyboardView,
@@ -48,7 +49,7 @@ function Picker(props) {
48
49
  toolbarFormat,
49
50
  toolbarPlaceholder,
50
51
  toolbarTitle,
51
- views = ['year', 'month', 'day', 'hours', 'minutes', 'seconds']
52
+ views
52
53
  } = props,
53
54
  other = _objectWithoutPropertiesLoose(props, _excluded);
54
55
 
@@ -58,11 +59,15 @@ function Picker(props) {
58
59
  const handleDateChange = React.useCallback((newDate, selectionState) => {
59
60
  onDateChange(newDate, wrapperVariant, selectionState);
60
61
  }, [onDateChange, wrapperVariant]);
61
- const handleViewChange = React.useCallback(() => {
62
+ const handleViewChange = React.useCallback(newView => {
62
63
  if (isMobileKeyboardViewOpen) {
63
64
  toggleMobileKeyboardView();
64
65
  }
65
- }, [isMobileKeyboardViewOpen, toggleMobileKeyboardView]);
66
+
67
+ if (onViewChange) {
68
+ onViewChange(newView);
69
+ }
70
+ }, [isMobileKeyboardViewOpen, onViewChange, toggleMobileKeyboardView]);
66
71
  const {
67
72
  openView,
68
73
  nextView,
@@ -105,7 +110,8 @@ function Picker(props) {
105
110
  date: date,
106
111
  onViewChange: setOpenView,
107
112
  onChange: handleChangeAndOpenNext,
108
- view: openView,
113
+ view: openView // Unclear why the predicate `isDatePickerView` does not imply the casted type
114
+ ,
109
115
  views: views.filter(isDatePickerView)
110
116
  }, other)), isTimePickerView(openView) && /*#__PURE__*/_jsx(ClockPicker, _extends({}, other, {
111
117
  autoFocus: autoFocus,
@@ -9,9 +9,7 @@ import ArrowLeftIcon from '../svg-icons/ArrowLeft';
9
9
  import ArrowRightIcon from '../svg-icons/ArrowRight';
10
10
  import { jsx as _jsx } from "react/jsx-runtime";
11
11
  import { jsxs as _jsxs } from "react/jsx-runtime";
12
- const PickersArrowSwitcherRoot = styled('div', {
13
- skipSx: true
14
- })({
12
+ const PickersArrowSwitcherRoot = styled('div')({
15
13
  display: 'flex'
16
14
  });
17
15
  const PickersArrowSwitcherSpacer = styled('div', {