@mui/lab 5.0.0-alpha.99 → 6.0.0-alpha.1

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 (463) hide show
  1. package/AdapterDateFns/AdapterDateFns.d.ts +3 -0
  2. package/AdapterDateFns/AdapterDateFns.js +4 -4
  3. package/AdapterDayjs/AdapterDayjs.d.ts +3 -0
  4. package/AdapterDayjs/AdapterDayjs.js +4 -4
  5. package/AdapterLuxon/AdapterLuxon.d.ts +3 -0
  6. package/AdapterLuxon/AdapterLuxon.js +4 -4
  7. package/AdapterMoment/AdapterMoment.d.ts +3 -0
  8. package/AdapterMoment/AdapterMoment.js +4 -4
  9. package/Alert/Alert.js +3 -2
  10. package/AlertTitle/AlertTitle.js +3 -2
  11. package/Autocomplete/Autocomplete.js +3 -2
  12. package/AvatarGroup/AvatarGroup.js +3 -2
  13. package/CHANGELOG.md +5985 -406
  14. package/CalendarPicker/CalendarPicker.d.ts +6 -5
  15. package/CalendarPicker/CalendarPicker.js +3 -2
  16. package/CalendarPickerSkeleton/CalendarPickerSkeleton.d.ts +4 -3
  17. package/CalendarPickerSkeleton/CalendarPickerSkeleton.js +3 -2
  18. package/ClockPicker/ClockPicker.d.ts +6 -5
  19. package/ClockPicker/ClockPicker.js +3 -2
  20. package/DatePicker/DatePicker.d.ts +2 -2
  21. package/DatePicker/DatePicker.js +2 -2
  22. package/DateRangePicker/DateRangePicker.d.ts +4 -3
  23. package/DateRangePicker/DateRangePicker.js +1 -2
  24. package/DateRangePickerDay/DateRangePickerDay.d.ts +5 -4
  25. package/DateRangePickerDay/DateRangePickerDay.js +1 -2
  26. package/DateTimePicker/DateTimePicker.d.ts +3 -2
  27. package/DateTimePicker/DateTimePicker.js +3 -2
  28. package/DesktopDatePicker/DesktopDatePicker.d.ts +3 -2
  29. package/DesktopDatePicker/DesktopDatePicker.js +3 -2
  30. package/DesktopDateRangePicker/DesktopDateRangePicker.d.ts +3 -2
  31. package/DesktopDateRangePicker/DesktopDateRangePicker.js +1 -2
  32. package/DesktopDateTimePicker/DesktopDateTimePicker.d.ts +3 -2
  33. package/DesktopDateTimePicker/DesktopDateTimePicker.js +3 -2
  34. package/DesktopTimePicker/DesktopTimePicker.d.ts +3 -2
  35. package/DesktopTimePicker/DesktopTimePicker.js +3 -2
  36. package/LoadingButton/LoadingButton.d.ts +53 -50
  37. package/LoadingButton/LoadingButton.js +28 -44
  38. package/LoadingButton/loadingButtonClasses.d.ts +1 -1
  39. package/LoadingButton/loadingButtonClasses.js +2 -1
  40. package/LocalizationProvider/LocalizationProvider.d.ts +3 -2
  41. package/LocalizationProvider/LocalizationProvider.js +3 -2
  42. package/Masonry/Masonry.d.ts +51 -41
  43. package/Masonry/Masonry.js +75 -89
  44. package/Masonry/masonryClasses.d.ts +1 -1
  45. package/Masonry/masonryClasses.js +2 -1
  46. package/MobileDatePicker/MobileDatePicker.d.ts +3 -2
  47. package/MobileDatePicker/MobileDatePicker.js +3 -2
  48. package/MobileDateRangePicker/MobileDateRangePicker.d.ts +3 -2
  49. package/MobileDateRangePicker/MobileDateRangePicker.js +1 -2
  50. package/MobileDateTimePicker/MobileDateTimePicker.d.ts +3 -2
  51. package/MobileDateTimePicker/MobileDateTimePicker.js +3 -2
  52. package/MobileTimePicker/MobileTimePicker.d.ts +3 -2
  53. package/MobileTimePicker/MobileTimePicker.js +3 -2
  54. package/MonthPicker/MonthPicker.d.ts +4 -3
  55. package/MonthPicker/MonthPicker.js +3 -2
  56. package/Pagination/Pagination.js +3 -2
  57. package/Pagination/usePagination.js +2 -0
  58. package/PaginationItem/PaginationItem.js +3 -2
  59. package/PickersDay/PickersDay.d.ts +4 -3
  60. package/PickersDay/PickersDay.js +3 -2
  61. package/README.md +5 -13
  62. package/Rating/Rating.js +3 -2
  63. package/Skeleton/Skeleton.js +3 -2
  64. package/SpeedDial/SpeedDial.js +3 -2
  65. package/SpeedDialAction/SpeedDialAction.js +3 -2
  66. package/SpeedDialIcon/SpeedDialIcon.js +3 -2
  67. package/StaticDatePicker/StaticDatePicker.d.ts +3 -2
  68. package/StaticDatePicker/StaticDatePicker.js +3 -2
  69. package/StaticDateRangePicker/StaticDateRangePicker.d.ts +3 -2
  70. package/StaticDateRangePicker/StaticDateRangePicker.js +1 -2
  71. package/StaticDateTimePicker/StaticDateTimePicker.d.ts +3 -2
  72. package/StaticDateTimePicker/StaticDateTimePicker.js +3 -2
  73. package/StaticTimePicker/StaticTimePicker.d.ts +3 -2
  74. package/StaticTimePicker/StaticTimePicker.js +3 -2
  75. package/TabContext/TabContext.d.ts +1 -1
  76. package/TabContext/TabContext.js +10 -19
  77. package/TabList/TabList.d.ts +14 -12
  78. package/TabList/TabList.js +10 -15
  79. package/TabPanel/TabPanel.d.ts +5 -0
  80. package/TabPanel/TabPanel.js +23 -28
  81. package/TabPanel/tabPanelClasses.d.ts +3 -1
  82. package/TabPanel/tabPanelClasses.js +3 -2
  83. package/TimePicker/TimePicker.d.ts +3 -2
  84. package/TimePicker/TimePicker.js +3 -2
  85. package/Timeline/Timeline.d.ts +2 -37
  86. package/Timeline/Timeline.js +23 -31
  87. package/Timeline/Timeline.types.d.ts +28 -0
  88. package/Timeline/Timeline.types.js +1 -0
  89. package/Timeline/TimelineContext.js +1 -3
  90. package/Timeline/index.d.ts +1 -2
  91. package/Timeline/index.js +1 -0
  92. package/Timeline/timelineClasses.d.ts +14 -1
  93. package/Timeline/timelineClasses.js +3 -2
  94. package/TimelineConnector/TimelineConnector.js +10 -18
  95. package/TimelineConnector/timelineConnectorClasses.d.ts +1 -1
  96. package/TimelineConnector/timelineConnectorClasses.js +2 -1
  97. package/TimelineContent/TimelineContent.js +13 -23
  98. package/TimelineContent/timelineContentClasses.d.ts +3 -1
  99. package/TimelineContent/timelineContentClasses.js +3 -2
  100. package/TimelineDot/TimelineDot.js +14 -29
  101. package/TimelineDot/timelineDotClasses.d.ts +1 -1
  102. package/TimelineDot/timelineDotClasses.js +2 -1
  103. package/TimelineItem/TimelineItem.d.ts +1 -1
  104. package/TimelineItem/TimelineItem.js +23 -32
  105. package/TimelineItem/timelineItemClasses.d.ts +3 -1
  106. package/TimelineItem/timelineItemClasses.js +3 -2
  107. package/TimelineOppositeContent/TimelineOppositeContent.js +13 -23
  108. package/TimelineOppositeContent/timelineOppositeContentClasses.d.ts +3 -1
  109. package/TimelineOppositeContent/timelineOppositeContentClasses.js +3 -2
  110. package/TimelineSeparator/TimelineSeparator.js +10 -18
  111. package/TimelineSeparator/timelineSeparatorClasses.d.ts +1 -1
  112. package/TimelineSeparator/timelineSeparatorClasses.js +2 -1
  113. package/ToggleButton/ToggleButton.js +3 -2
  114. package/ToggleButtonGroup/ToggleButtonGroup.js +3 -2
  115. package/TreeItem/TreeItem.d.ts +8 -84
  116. package/TreeItem/TreeItem.js +15 -419
  117. package/TreeItem/index.d.ts +0 -5
  118. package/TreeItem/index.js +1 -3
  119. package/TreeView/TreeView.d.ts +8 -141
  120. package/TreeView/TreeView.js +16 -978
  121. package/TreeView/index.d.ts +0 -3
  122. package/TreeView/index.js +1 -2
  123. package/YearPicker/YearPicker.d.ts +5 -4
  124. package/YearPicker/YearPicker.js +3 -3
  125. package/index.js +5 -2
  126. package/internal/convertTimelinePositionToClass.d.ts +1 -0
  127. package/internal/convertTimelinePositionToClass.js +4 -0
  128. package/internal/svg-icons/ArrowDropDown.js +3 -1
  129. package/internal/svg-icons/ArrowLeft.js +3 -1
  130. package/internal/svg-icons/ArrowRight.js +3 -1
  131. package/internal/svg-icons/Calendar.js +3 -1
  132. package/internal/svg-icons/Clock.js +4 -3
  133. package/internal/svg-icons/DateRange.js +3 -1
  134. package/internal/svg-icons/Pen.js +3 -1
  135. package/internal/svg-icons/Time.js +4 -3
  136. package/legacy/AdapterDateFns/AdapterDateFns.js +4 -5
  137. package/legacy/AdapterDayjs/AdapterDayjs.js +4 -5
  138. package/legacy/AdapterLuxon/AdapterLuxon.js +4 -5
  139. package/legacy/AdapterMoment/AdapterMoment.js +4 -5
  140. package/legacy/Alert/Alert.js +3 -2
  141. package/legacy/AlertTitle/AlertTitle.js +3 -2
  142. package/legacy/Autocomplete/Autocomplete.js +3 -2
  143. package/legacy/AvatarGroup/AvatarGroup.js +3 -2
  144. package/legacy/CalendarPicker/CalendarPicker.js +3 -2
  145. package/legacy/CalendarPickerSkeleton/CalendarPickerSkeleton.js +3 -2
  146. package/legacy/ClockPicker/ClockPicker.js +3 -2
  147. package/legacy/DatePicker/DatePicker.js +2 -2
  148. package/legacy/DateRangePicker/DateRangePicker.js +1 -2
  149. package/legacy/DateRangePickerDay/DateRangePickerDay.js +1 -2
  150. package/legacy/DateTimePicker/DateTimePicker.js +3 -2
  151. package/legacy/DesktopDatePicker/DesktopDatePicker.js +3 -2
  152. package/legacy/DesktopDateRangePicker/DesktopDateRangePicker.js +1 -2
  153. package/legacy/DesktopDateTimePicker/DesktopDateTimePicker.js +3 -2
  154. package/legacy/DesktopTimePicker/DesktopTimePicker.js +3 -2
  155. package/legacy/LoadingButton/LoadingButton.js +33 -49
  156. package/legacy/LoadingButton/loadingButtonClasses.js +2 -1
  157. package/legacy/LocalizationProvider/LocalizationProvider.js +3 -2
  158. package/legacy/Masonry/Masonry.js +80 -98
  159. package/legacy/Masonry/masonryClasses.js +2 -1
  160. package/legacy/MobileDatePicker/MobileDatePicker.js +3 -2
  161. package/legacy/MobileDateRangePicker/MobileDateRangePicker.js +1 -2
  162. package/legacy/MobileDateTimePicker/MobileDateTimePicker.js +3 -2
  163. package/legacy/MobileTimePicker/MobileTimePicker.js +3 -2
  164. package/legacy/MonthPicker/MonthPicker.js +3 -2
  165. package/legacy/Pagination/Pagination.js +3 -2
  166. package/legacy/Pagination/usePagination.js +2 -0
  167. package/legacy/PaginationItem/PaginationItem.js +3 -2
  168. package/legacy/PickersDay/PickersDay.js +3 -2
  169. package/legacy/Rating/Rating.js +3 -2
  170. package/legacy/Skeleton/Skeleton.js +3 -2
  171. package/legacy/SpeedDial/SpeedDial.js +3 -2
  172. package/legacy/SpeedDialAction/SpeedDialAction.js +3 -2
  173. package/legacy/SpeedDialIcon/SpeedDialIcon.js +3 -2
  174. package/legacy/StaticDatePicker/StaticDatePicker.js +3 -2
  175. package/legacy/StaticDateRangePicker/StaticDateRangePicker.js +1 -2
  176. package/legacy/StaticDateTimePicker/StaticDateTimePicker.js +3 -2
  177. package/legacy/StaticTimePicker/StaticTimePicker.js +3 -2
  178. package/legacy/TabContext/TabContext.js +13 -23
  179. package/legacy/TabList/TabList.js +8 -13
  180. package/legacy/TabPanel/TabPanel.js +21 -25
  181. package/legacy/TabPanel/tabPanelClasses.js +3 -2
  182. package/legacy/TimePicker/TimePicker.js +3 -2
  183. package/legacy/Timeline/Timeline.js +25 -31
  184. package/legacy/Timeline/Timeline.types.js +1 -0
  185. package/legacy/Timeline/TimelineContext.js +1 -3
  186. package/legacy/Timeline/index.js +1 -0
  187. package/legacy/Timeline/timelineClasses.js +3 -2
  188. package/legacy/TimelineConnector/TimelineConnector.js +8 -16
  189. package/legacy/TimelineConnector/timelineConnectorClasses.js +2 -1
  190. package/legacy/TimelineContent/TimelineContent.js +13 -23
  191. package/legacy/TimelineContent/timelineContentClasses.js +3 -2
  192. package/legacy/TimelineDot/TimelineDot.js +17 -32
  193. package/legacy/TimelineDot/timelineDotClasses.js +2 -1
  194. package/legacy/TimelineItem/TimelineItem.js +31 -43
  195. package/legacy/TimelineItem/timelineItemClasses.js +3 -2
  196. package/legacy/TimelineOppositeContent/TimelineOppositeContent.js +13 -23
  197. package/legacy/TimelineOppositeContent/timelineOppositeContentClasses.js +3 -2
  198. package/legacy/TimelineSeparator/TimelineSeparator.js +8 -16
  199. package/legacy/TimelineSeparator/timelineSeparatorClasses.js +2 -1
  200. package/legacy/ToggleButton/ToggleButton.js +3 -2
  201. package/legacy/ToggleButtonGroup/ToggleButtonGroup.js +3 -2
  202. package/legacy/TreeItem/TreeItem.js +15 -421
  203. package/legacy/TreeItem/index.js +1 -3
  204. package/legacy/TreeView/TreeView.js +16 -1041
  205. package/legacy/TreeView/index.js +1 -2
  206. package/legacy/YearPicker/YearPicker.js +3 -3
  207. package/legacy/index.js +5 -2
  208. package/legacy/internal/convertTimelinePositionToClass.js +4 -0
  209. package/legacy/internal/svg-icons/ArrowDropDown.js +3 -1
  210. package/legacy/internal/svg-icons/ArrowLeft.js +3 -1
  211. package/legacy/internal/svg-icons/ArrowRight.js +3 -1
  212. package/legacy/internal/svg-icons/Calendar.js +3 -1
  213. package/legacy/internal/svg-icons/Clock.js +4 -3
  214. package/legacy/internal/svg-icons/DateRange.js +3 -1
  215. package/legacy/internal/svg-icons/Pen.js +3 -1
  216. package/legacy/internal/svg-icons/Time.js +4 -3
  217. package/modern/AdapterDateFns/AdapterDateFns.js +4 -4
  218. package/modern/AdapterDayjs/AdapterDayjs.js +4 -4
  219. package/modern/AdapterLuxon/AdapterLuxon.js +4 -4
  220. package/modern/AdapterMoment/AdapterMoment.js +4 -4
  221. package/modern/Alert/Alert.js +3 -2
  222. package/modern/AlertTitle/AlertTitle.js +3 -2
  223. package/modern/Autocomplete/Autocomplete.js +3 -2
  224. package/modern/AvatarGroup/AvatarGroup.js +3 -2
  225. package/modern/CalendarPicker/CalendarPicker.js +3 -2
  226. package/modern/CalendarPickerSkeleton/CalendarPickerSkeleton.js +3 -2
  227. package/modern/ClockPicker/ClockPicker.js +3 -2
  228. package/modern/DatePicker/DatePicker.js +2 -2
  229. package/modern/DateRangePicker/DateRangePicker.js +1 -2
  230. package/modern/DateRangePickerDay/DateRangePickerDay.js +1 -2
  231. package/modern/DateTimePicker/DateTimePicker.js +3 -2
  232. package/modern/DesktopDatePicker/DesktopDatePicker.js +3 -2
  233. package/modern/DesktopDateRangePicker/DesktopDateRangePicker.js +1 -2
  234. package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +3 -2
  235. package/modern/DesktopTimePicker/DesktopTimePicker.js +3 -2
  236. package/modern/LoadingButton/LoadingButton.js +27 -44
  237. package/modern/LoadingButton/loadingButtonClasses.js +2 -1
  238. package/modern/LocalizationProvider/LocalizationProvider.js +3 -2
  239. package/modern/Masonry/Masonry.js +75 -89
  240. package/modern/Masonry/masonryClasses.js +2 -1
  241. package/modern/MobileDatePicker/MobileDatePicker.js +3 -2
  242. package/modern/MobileDateRangePicker/MobileDateRangePicker.js +1 -2
  243. package/modern/MobileDateTimePicker/MobileDateTimePicker.js +3 -2
  244. package/modern/MobileTimePicker/MobileTimePicker.js +3 -2
  245. package/modern/MonthPicker/MonthPicker.js +3 -2
  246. package/modern/Pagination/Pagination.js +3 -2
  247. package/modern/Pagination/usePagination.js +2 -0
  248. package/modern/PaginationItem/PaginationItem.js +3 -2
  249. package/modern/PickersDay/PickersDay.js +3 -2
  250. package/modern/Rating/Rating.js +3 -2
  251. package/modern/Skeleton/Skeleton.js +3 -2
  252. package/modern/SpeedDial/SpeedDial.js +3 -2
  253. package/modern/SpeedDialAction/SpeedDialAction.js +3 -2
  254. package/modern/SpeedDialIcon/SpeedDialIcon.js +3 -2
  255. package/modern/StaticDatePicker/StaticDatePicker.js +3 -2
  256. package/modern/StaticDateRangePicker/StaticDateRangePicker.js +1 -2
  257. package/modern/StaticDateTimePicker/StaticDateTimePicker.js +3 -2
  258. package/modern/StaticTimePicker/StaticTimePicker.js +3 -2
  259. package/modern/TabContext/TabContext.js +10 -19
  260. package/modern/TabList/TabList.js +10 -15
  261. package/modern/TabPanel/TabPanel.js +23 -28
  262. package/modern/TabPanel/tabPanelClasses.js +3 -2
  263. package/modern/TimePicker/TimePicker.js +3 -2
  264. package/modern/Timeline/Timeline.js +23 -31
  265. package/modern/Timeline/Timeline.types.js +1 -0
  266. package/modern/Timeline/TimelineContext.js +1 -3
  267. package/modern/Timeline/index.js +1 -0
  268. package/modern/Timeline/timelineClasses.js +3 -2
  269. package/modern/TimelineConnector/TimelineConnector.js +10 -18
  270. package/modern/TimelineConnector/timelineConnectorClasses.js +2 -1
  271. package/modern/TimelineContent/TimelineContent.js +13 -23
  272. package/modern/TimelineContent/timelineContentClasses.js +3 -2
  273. package/modern/TimelineDot/TimelineDot.js +14 -29
  274. package/modern/TimelineDot/timelineDotClasses.js +2 -1
  275. package/modern/TimelineItem/TimelineItem.js +23 -32
  276. package/modern/TimelineItem/timelineItemClasses.js +3 -2
  277. package/modern/TimelineOppositeContent/TimelineOppositeContent.js +13 -23
  278. package/modern/TimelineOppositeContent/timelineOppositeContentClasses.js +3 -2
  279. package/modern/TimelineSeparator/TimelineSeparator.js +10 -18
  280. package/modern/TimelineSeparator/timelineSeparatorClasses.js +2 -1
  281. package/modern/ToggleButton/ToggleButton.js +3 -2
  282. package/modern/ToggleButtonGroup/ToggleButtonGroup.js +3 -2
  283. package/modern/TreeItem/TreeItem.js +15 -419
  284. package/modern/TreeItem/index.js +1 -3
  285. package/modern/TreeView/TreeView.js +16 -978
  286. package/modern/TreeView/index.js +1 -2
  287. package/modern/YearPicker/YearPicker.js +3 -3
  288. package/modern/index.js +5 -2
  289. package/modern/internal/convertTimelinePositionToClass.js +4 -0
  290. package/modern/internal/svg-icons/ArrowDropDown.js +3 -1
  291. package/modern/internal/svg-icons/ArrowLeft.js +3 -1
  292. package/modern/internal/svg-icons/ArrowRight.js +3 -1
  293. package/modern/internal/svg-icons/Calendar.js +3 -1
  294. package/modern/internal/svg-icons/Clock.js +4 -3
  295. package/modern/internal/svg-icons/DateRange.js +3 -1
  296. package/modern/internal/svg-icons/Pen.js +3 -1
  297. package/modern/internal/svg-icons/Time.js +4 -3
  298. package/node/AdapterDateFns/AdapterDateFns.js +4 -5
  299. package/node/AdapterDateFns/index.js +0 -2
  300. package/node/AdapterDayjs/AdapterDayjs.js +4 -5
  301. package/node/AdapterDayjs/index.js +0 -2
  302. package/node/AdapterLuxon/AdapterLuxon.js +4 -5
  303. package/node/AdapterLuxon/index.js +0 -2
  304. package/node/AdapterMoment/AdapterMoment.js +4 -5
  305. package/node/AdapterMoment/index.js +0 -2
  306. package/node/Alert/Alert.js +6 -16
  307. package/node/Alert/index.js +0 -2
  308. package/node/AlertTitle/AlertTitle.js +6 -16
  309. package/node/AlertTitle/index.js +0 -2
  310. package/node/Autocomplete/Autocomplete.js +6 -16
  311. package/node/Autocomplete/index.js +0 -2
  312. package/node/AvatarGroup/AvatarGroup.js +6 -16
  313. package/node/AvatarGroup/index.js +0 -2
  314. package/node/CalendarPicker/CalendarPicker.js +7 -13
  315. package/node/CalendarPicker/index.js +2 -6
  316. package/node/CalendarPickerSkeleton/CalendarPickerSkeleton.js +7 -15
  317. package/node/CalendarPickerSkeleton/index.js +2 -6
  318. package/node/ClockPicker/ClockPicker.js +7 -13
  319. package/node/ClockPicker/index.js +2 -6
  320. package/node/DatePicker/DatePicker.js +5 -11
  321. package/node/DatePicker/index.js +2 -6
  322. package/node/DateRangePicker/DateRangePicker.js +5 -10
  323. package/node/DateRangePicker/index.js +2 -6
  324. package/node/DateRangePickerDay/DateRangePickerDay.js +5 -12
  325. package/node/DateRangePickerDay/index.js +2 -6
  326. package/node/DateTimePicker/DateTimePicker.js +6 -11
  327. package/node/DateTimePicker/index.js +2 -6
  328. package/node/DesktopDatePicker/DesktopDatePicker.js +6 -11
  329. package/node/DesktopDatePicker/index.js +2 -6
  330. package/node/DesktopDateRangePicker/DesktopDateRangePicker.js +5 -10
  331. package/node/DesktopDateRangePicker/index.js +2 -6
  332. package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +6 -11
  333. package/node/DesktopDateTimePicker/index.js +2 -6
  334. package/node/DesktopTimePicker/DesktopTimePicker.js +6 -11
  335. package/node/DesktopTimePicker/index.js +2 -6
  336. package/node/LoadingButton/LoadingButton.js +28 -57
  337. package/node/LoadingButton/index.js +2 -8
  338. package/node/LoadingButton/loadingButtonClasses.js +6 -8
  339. package/node/LocalizationProvider/LocalizationProvider.js +5 -10
  340. package/node/LocalizationProvider/index.js +2 -6
  341. package/node/Masonry/Masonry.js +75 -105
  342. package/node/Masonry/index.js +2 -8
  343. package/node/Masonry/masonryClasses.js +6 -8
  344. package/node/MobileDatePicker/MobileDatePicker.js +6 -11
  345. package/node/MobileDatePicker/index.js +2 -6
  346. package/node/MobileDateRangePicker/MobileDateRangePicker.js +5 -10
  347. package/node/MobileDateRangePicker/index.js +2 -6
  348. package/node/MobileDateTimePicker/MobileDateTimePicker.js +6 -11
  349. package/node/MobileDateTimePicker/index.js +2 -6
  350. package/node/MobileTimePicker/MobileTimePicker.js +6 -11
  351. package/node/MobileTimePicker/index.js +2 -6
  352. package/node/MonthPicker/MonthPicker.js +7 -15
  353. package/node/MonthPicker/index.js +2 -6
  354. package/node/Pagination/Pagination.js +6 -16
  355. package/node/Pagination/index.js +0 -3
  356. package/node/Pagination/usePagination.js +1 -2
  357. package/node/PaginationItem/PaginationItem.js +6 -16
  358. package/node/PaginationItem/index.js +0 -2
  359. package/node/PickersDay/PickersDay.js +7 -15
  360. package/node/PickersDay/index.js +2 -6
  361. package/node/Rating/Rating.js +6 -16
  362. package/node/Rating/index.js +0 -2
  363. package/node/Skeleton/Skeleton.js +6 -16
  364. package/node/Skeleton/index.js +0 -2
  365. package/node/SpeedDial/SpeedDial.js +6 -16
  366. package/node/SpeedDial/index.js +0 -2
  367. package/node/SpeedDialAction/SpeedDialAction.js +6 -16
  368. package/node/SpeedDialAction/index.js +0 -2
  369. package/node/SpeedDialIcon/SpeedDialIcon.js +6 -16
  370. package/node/SpeedDialIcon/index.js +0 -2
  371. package/node/StaticDatePicker/StaticDatePicker.js +6 -11
  372. package/node/StaticDatePicker/index.js +2 -6
  373. package/node/StaticDateRangePicker/StaticDateRangePicker.js +5 -10
  374. package/node/StaticDateRangePicker/index.js +2 -6
  375. package/node/StaticDateTimePicker/StaticDateTimePicker.js +6 -11
  376. package/node/StaticDateTimePicker/index.js +2 -6
  377. package/node/StaticTimePicker/StaticTimePicker.js +6 -11
  378. package/node/StaticTimePicker/index.js +2 -6
  379. package/node/TabContext/TabContext.js +11 -32
  380. package/node/TabContext/index.js +2 -6
  381. package/node/TabList/TabList.js +12 -30
  382. package/node/TabList/index.js +0 -2
  383. package/node/TabPanel/TabPanel.js +25 -43
  384. package/node/TabPanel/index.js +2 -8
  385. package/node/TabPanel/tabPanelClasses.js +6 -8
  386. package/node/TimePicker/TimePicker.js +6 -11
  387. package/node/TimePicker/index.js +2 -6
  388. package/node/Timeline/Timeline.js +25 -47
  389. package/node/Timeline/Timeline.types.js +5 -0
  390. package/node/Timeline/TimelineContext.js +3 -10
  391. package/node/Timeline/index.js +14 -8
  392. package/node/Timeline/timelineClasses.js +6 -8
  393. package/node/TimelineConnector/TimelineConnector.js +12 -33
  394. package/node/TimelineConnector/index.js +2 -8
  395. package/node/TimelineConnector/timelineConnectorClasses.js +6 -8
  396. package/node/TimelineContent/TimelineContent.js +15 -39
  397. package/node/TimelineContent/index.js +2 -8
  398. package/node/TimelineContent/timelineContentClasses.js +6 -8
  399. package/node/TimelineDot/TimelineDot.js +16 -44
  400. package/node/TimelineDot/index.js +2 -8
  401. package/node/TimelineDot/timelineDotClasses.js +6 -8
  402. package/node/TimelineItem/TimelineItem.js +24 -48
  403. package/node/TimelineItem/index.js +2 -8
  404. package/node/TimelineItem/timelineItemClasses.js +6 -8
  405. package/node/TimelineOppositeContent/TimelineOppositeContent.js +15 -39
  406. package/node/TimelineOppositeContent/index.js +2 -8
  407. package/node/TimelineOppositeContent/timelineOppositeContentClasses.js +6 -8
  408. package/node/TimelineSeparator/TimelineSeparator.js +12 -33
  409. package/node/TimelineSeparator/index.js +2 -8
  410. package/node/TimelineSeparator/timelineSeparatorClasses.js +6 -8
  411. package/node/ToggleButton/ToggleButton.js +6 -16
  412. package/node/ToggleButton/index.js +0 -2
  413. package/node/ToggleButtonGroup/ToggleButtonGroup.js +6 -16
  414. package/node/ToggleButtonGroup/index.js +0 -2
  415. package/node/TreeItem/TreeItem.js +17 -438
  416. package/node/TreeItem/index.js +7 -32
  417. package/node/TreeView/TreeView.js +18 -993
  418. package/node/TreeView/index.js +7 -23
  419. package/node/YearPicker/YearPicker.js +5 -11
  420. package/node/YearPicker/index.js +2 -6
  421. package/node/index.js +5 -109
  422. package/node/internal/convertTimelinePositionToClass.js +10 -0
  423. package/node/internal/svg-icons/ArrowDropDown.js +5 -12
  424. package/node/internal/svg-icons/ArrowLeft.js +5 -12
  425. package/node/internal/svg-icons/ArrowRight.js +5 -12
  426. package/node/internal/svg-icons/Calendar.js +5 -12
  427. package/node/internal/svg-icons/Clock.js +5 -12
  428. package/node/internal/svg-icons/DateRange.js +5 -12
  429. package/node/internal/svg-icons/Pen.js +5 -12
  430. package/node/internal/svg-icons/Time.js +5 -12
  431. package/node/useAutocomplete/index.js +0 -1
  432. package/package.json +15 -14
  433. package/themeAugmentation/components.d.ts +5 -10
  434. package/themeAugmentation/overrides.d.ts +2 -4
  435. package/themeAugmentation/props.d.ts +2 -4
  436. package/TreeItem/TreeItemContent.d.ts +0 -50
  437. package/TreeItem/TreeItemContent.js +0 -128
  438. package/TreeItem/treeItemClasses.d.ts +0 -24
  439. package/TreeItem/treeItemClasses.js +0 -6
  440. package/TreeItem/useTreeItem.d.ts +0 -11
  441. package/TreeItem/useTreeItem.js +0 -74
  442. package/TreeView/TreeViewContext.js +0 -12
  443. package/TreeView/descendants.js +0 -198
  444. package/TreeView/treeViewClasses.d.ts +0 -8
  445. package/TreeView/treeViewClasses.js +0 -6
  446. package/legacy/TreeItem/TreeItemContent.js +0 -125
  447. package/legacy/TreeItem/treeItemClasses.js +0 -6
  448. package/legacy/TreeItem/useTreeItem.js +0 -74
  449. package/legacy/TreeView/TreeViewContext.js +0 -12
  450. package/legacy/TreeView/descendants.js +0 -211
  451. package/legacy/TreeView/treeViewClasses.js +0 -6
  452. package/modern/TreeItem/TreeItemContent.js +0 -128
  453. package/modern/TreeItem/treeItemClasses.js +0 -6
  454. package/modern/TreeItem/useTreeItem.js +0 -74
  455. package/modern/TreeView/TreeViewContext.js +0 -12
  456. package/modern/TreeView/descendants.js +0 -198
  457. package/modern/TreeView/treeViewClasses.js +0 -6
  458. package/node/TreeItem/TreeItemContent.js +0 -147
  459. package/node/TreeItem/treeItemClasses.js +0 -17
  460. package/node/TreeItem/useTreeItem.js +0 -89
  461. package/node/TreeView/TreeViewContext.js +0 -24
  462. package/node/TreeView/descendants.js +0 -217
  463. package/node/TreeView/treeViewClasses.js +0 -17
@@ -1,982 +1,20 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
- import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["children", "className", "defaultCollapseIcon", "defaultEndIcon", "defaultExpanded", "defaultExpandIcon", "defaultParentIcon", "defaultSelected", "disabledItemsFocusable", "disableSelection", "expanded", "id", "multiSelect", "onBlur", "onFocus", "onKeyDown", "onNodeFocus", "onNodeSelect", "onNodeToggle", "selected"];
4
- import * as React from 'react';
5
- import clsx from 'clsx';
6
- import PropTypes from 'prop-types';
7
- import { styled, useTheme, useThemeProps } from '@mui/material/styles';
8
- import { unstable_composeClasses as composeClasses } from '@mui/base';
9
- import { useControlled, useForkRef, ownerDocument, unstable_useId as useId } from '@mui/material/utils';
10
- import TreeViewContext from './TreeViewContext';
11
- import { DescendantProvider } from './descendants';
12
- import { getTreeViewUtilityClass } from './treeViewClasses';
13
- import { jsx as _jsx } from "react/jsx-runtime";
14
-
15
- const useUtilityClasses = ownerState => {
16
- const {
17
- classes
18
- } = ownerState;
19
- const slots = {
20
- root: ['root']
21
- };
22
- return composeClasses(slots, getTreeViewUtilityClass, classes);
23
- };
24
-
25
- const TreeViewRoot = styled('ul', {
26
- name: 'MuiTreeView',
27
- slot: 'Root',
28
- overridesResolver: (props, styles) => styles.root
29
- })({
30
- padding: 0,
31
- margin: 0,
32
- listStyle: 'none',
33
- outline: 0
34
- });
35
-
36
- function isPrintableCharacter(string) {
37
- return string && string.length === 1 && string.match(/\S/);
38
- }
1
+ 'use client';
39
2
 
40
- function findNextFirstChar(firstChars, startIndex, char) {
41
- for (let i = startIndex; i < firstChars.length; i += 1) {
42
- if (char === firstChars[i]) {
43
- return i;
44
- }
3
+ /* eslint-disable @typescript-eslint/no-unused-vars */
4
+ import * as React from 'react';
5
+ let warnedOnce = false;
6
+ const warn = () => {
7
+ if (!warnedOnce) {
8
+ console.warn(['MUI: The TreeView component was moved from `@mui/lab` to `@mui/x-tree-view`.', '', "You should use `import { TreeView } from '@mui/x-tree-view'`", "or `import { TreeView } from '@mui/x-tree-view/TreeView'`", '', 'More information about this migration on our blog: https://mui.com/blog/lab-tree-view-to-mui-x/.'].join('\n'));
9
+ warnedOnce = true;
45
10
  }
46
-
47
- return -1;
48
- }
49
-
50
- function noopSelection() {
51
- return false;
52
- }
53
-
54
- const defaultDefaultExpanded = [];
55
- const defaultDefaultSelected = [];
56
- const TreeView = /*#__PURE__*/React.forwardRef(function TreeView(inProps, ref) {
57
- const props = useThemeProps({
58
- props: inProps,
59
- name: 'MuiTreeView'
60
- });
61
-
62
- const {
63
- children,
64
- className,
65
- defaultCollapseIcon,
66
- defaultEndIcon,
67
- defaultExpanded = defaultDefaultExpanded,
68
- defaultExpandIcon,
69
- defaultParentIcon,
70
- defaultSelected = defaultDefaultSelected,
71
- disabledItemsFocusable = false,
72
- disableSelection = false,
73
- expanded: expandedProp,
74
- id: idProp,
75
- multiSelect = false,
76
- onBlur,
77
- onFocus,
78
- onKeyDown,
79
- onNodeFocus,
80
- onNodeSelect,
81
- onNodeToggle,
82
- selected: selectedProp
83
- } = props,
84
- other = _objectWithoutPropertiesLoose(props, _excluded);
85
-
86
- const theme = useTheme();
87
- const isRtl = theme.direction === 'rtl';
88
-
89
- const ownerState = _extends({}, props, {
90
- defaultExpanded,
91
- defaultSelected,
92
- disabledItemsFocusable,
93
- disableSelection,
94
- multiSelect
95
- });
96
-
97
- const classes = useUtilityClasses(ownerState);
98
- const treeId = useId(idProp);
99
- const treeRef = React.useRef(null);
100
- const handleRef = useForkRef(treeRef, ref);
101
- const [focusedNodeId, setFocusedNodeId] = React.useState(null);
102
- const nodeMap = React.useRef({});
103
- const firstCharMap = React.useRef({});
104
- const [expanded, setExpandedState] = useControlled({
105
- controlled: expandedProp,
106
- default: defaultExpanded,
107
- name: 'TreeView',
108
- state: 'expanded'
109
- });
110
- const [selected, setSelectedState] = useControlled({
111
- controlled: selectedProp,
112
- default: defaultSelected,
113
- name: 'TreeView',
114
- state: 'selected'
115
- });
116
- /*
117
- * Status Helpers
118
- */
119
-
120
- const isExpanded = React.useCallback(id => Array.isArray(expanded) ? expanded.indexOf(id) !== -1 : false, [expanded]);
121
- const isExpandable = React.useCallback(id => nodeMap.current[id] && nodeMap.current[id].expandable, []);
122
- const isSelected = React.useCallback(id => Array.isArray(selected) ? selected.indexOf(id) !== -1 : selected === id, [selected]);
123
- const isDisabled = React.useCallback(id => {
124
- let node = nodeMap.current[id]; // This can be called before the node has been added to the node map.
125
-
126
- if (!node) {
127
- return false;
128
- }
129
-
130
- if (node.disabled) {
131
- return true;
132
- }
133
-
134
- while (node.parentId != null) {
135
- node = nodeMap.current[node.parentId];
136
-
137
- if (node.disabled) {
138
- return true;
139
- }
140
- }
141
-
142
- return false;
143
- }, []);
144
-
145
- const isFocused = id => focusedNodeId === id;
146
- /*
147
- * Child Helpers
148
- */
149
- // Using Object.keys -> .map to mimic Object.values we should replace with Object.values() once we stop IE11 support.
150
-
151
-
152
- const getChildrenIds = id => Object.keys(nodeMap.current).map(key => {
153
- return nodeMap.current[key];
154
- }).filter(node => node.parentId === id).sort((a, b) => a.index - b.index).map(child => child.id);
155
-
156
- const getNavigableChildrenIds = id => {
157
- let childrenIds = getChildrenIds(id);
158
-
159
- if (!disabledItemsFocusable) {
160
- childrenIds = childrenIds.filter(node => !isDisabled(node));
161
- }
162
-
163
- return childrenIds;
164
- };
165
- /*
166
- * Node Helpers
167
- */
168
-
169
-
170
- const getNextNode = id => {
171
- // If expanded get first child
172
- if (isExpanded(id) && getNavigableChildrenIds(id).length > 0) {
173
- return getNavigableChildrenIds(id)[0];
174
- }
175
-
176
- let node = nodeMap.current[id];
177
-
178
- while (node != null) {
179
- // Try to get next sibling
180
- const siblings = getNavigableChildrenIds(node.parentId);
181
- const nextSibling = siblings[siblings.indexOf(node.id) + 1];
182
-
183
- if (nextSibling) {
184
- return nextSibling;
185
- } // If the sibling does not exist, go up a level to the parent and try again.
186
-
187
-
188
- node = nodeMap.current[node.parentId];
189
- }
190
-
191
- return null;
192
- };
193
-
194
- const getPreviousNode = id => {
195
- const node = nodeMap.current[id];
196
- const siblings = getNavigableChildrenIds(node.parentId);
197
- const nodeIndex = siblings.indexOf(id);
198
-
199
- if (nodeIndex === 0) {
200
- return node.parentId;
201
- }
202
-
203
- let currentNode = siblings[nodeIndex - 1];
204
-
205
- while (isExpanded(currentNode) && getNavigableChildrenIds(currentNode).length > 0) {
206
- currentNode = getNavigableChildrenIds(currentNode).pop();
207
- }
208
-
209
- return currentNode;
210
- };
211
-
212
- const getLastNode = () => {
213
- let lastNode = getNavigableChildrenIds(null).pop();
214
-
215
- while (isExpanded(lastNode)) {
216
- lastNode = getNavigableChildrenIds(lastNode).pop();
217
- }
218
-
219
- return lastNode;
220
- };
221
-
222
- const getFirstNode = () => getNavigableChildrenIds(null)[0];
223
-
224
- const getParent = id => nodeMap.current[id].parentId;
225
- /**
226
- * This is used to determine the start and end of a selection range so
227
- * we can get the nodes between the two border nodes.
228
- *
229
- * It finds the nodes' common ancestor using
230
- * a naive implementation of a lowest common ancestor algorithm
231
- * (https://en.wikipedia.org/wiki/Lowest_common_ancestor).
232
- * Then compares the ancestor's 2 children that are ancestors of nodeA and NodeB
233
- * so we can compare their indexes to work out which node comes first in a depth first search.
234
- * (https://en.wikipedia.org/wiki/Depth-first_search)
235
- *
236
- * Another way to put it is which node is shallower in a trémaux tree
237
- * https://en.wikipedia.org/wiki/Tr%C3%A9maux_tree
238
- */
239
-
240
-
241
- const findOrderInTremauxTree = (nodeAId, nodeBId) => {
242
- if (nodeAId === nodeBId) {
243
- return [nodeAId, nodeBId];
244
- }
245
-
246
- const nodeA = nodeMap.current[nodeAId];
247
- const nodeB = nodeMap.current[nodeBId];
248
-
249
- if (nodeA.parentId === nodeB.id || nodeB.parentId === nodeA.id) {
250
- return nodeB.parentId === nodeA.id ? [nodeA.id, nodeB.id] : [nodeB.id, nodeA.id];
251
- }
252
-
253
- const aFamily = [nodeA.id];
254
- const bFamily = [nodeB.id];
255
- let aAncestor = nodeA.parentId;
256
- let bAncestor = nodeB.parentId;
257
- let aAncestorIsCommon = bFamily.indexOf(aAncestor) !== -1;
258
- let bAncestorIsCommon = aFamily.indexOf(bAncestor) !== -1;
259
- let continueA = true;
260
- let continueB = true;
261
-
262
- while (!bAncestorIsCommon && !aAncestorIsCommon) {
263
- if (continueA) {
264
- aFamily.push(aAncestor);
265
- aAncestorIsCommon = bFamily.indexOf(aAncestor) !== -1;
266
- continueA = aAncestor !== null;
267
-
268
- if (!aAncestorIsCommon && continueA) {
269
- aAncestor = nodeMap.current[aAncestor].parentId;
270
- }
271
- }
272
-
273
- if (continueB && !aAncestorIsCommon) {
274
- bFamily.push(bAncestor);
275
- bAncestorIsCommon = aFamily.indexOf(bAncestor) !== -1;
276
- continueB = bAncestor !== null;
277
-
278
- if (!bAncestorIsCommon && continueB) {
279
- bAncestor = nodeMap.current[bAncestor].parentId;
280
- }
281
- }
282
- }
283
-
284
- const commonAncestor = aAncestorIsCommon ? aAncestor : bAncestor;
285
- const ancestorFamily = getChildrenIds(commonAncestor);
286
- const aSide = aFamily[aFamily.indexOf(commonAncestor) - 1];
287
- const bSide = bFamily[bFamily.indexOf(commonAncestor) - 1];
288
- return ancestorFamily.indexOf(aSide) < ancestorFamily.indexOf(bSide) ? [nodeAId, nodeBId] : [nodeBId, nodeAId];
289
- };
290
-
291
- const getNodesInRange = (nodeA, nodeB) => {
292
- const [first, last] = findOrderInTremauxTree(nodeA, nodeB);
293
- const nodes = [first];
294
- let current = first;
295
-
296
- while (current !== last) {
297
- current = getNextNode(current);
298
- nodes.push(current);
299
- }
300
-
301
- return nodes;
302
- };
303
- /*
304
- * Focus Helpers
305
- */
306
-
307
-
308
- const focus = (event, id) => {
309
- if (id) {
310
- setFocusedNodeId(id);
311
-
312
- if (onNodeFocus) {
313
- onNodeFocus(event, id);
314
- }
315
- }
316
- };
317
-
318
- const focusNextNode = (event, id) => focus(event, getNextNode(id));
319
-
320
- const focusPreviousNode = (event, id) => focus(event, getPreviousNode(id));
321
-
322
- const focusFirstNode = event => focus(event, getFirstNode());
323
-
324
- const focusLastNode = event => focus(event, getLastNode());
325
-
326
- const focusByFirstCharacter = (event, id, char) => {
327
- let start;
328
- let index;
329
- const lowercaseChar = char.toLowerCase();
330
- const firstCharIds = [];
331
- const firstChars = []; // This really only works since the ids are strings
332
-
333
- Object.keys(firstCharMap.current).forEach(nodeId => {
334
- const firstChar = firstCharMap.current[nodeId];
335
- const map = nodeMap.current[nodeId];
336
- const visible = map.parentId ? isExpanded(map.parentId) : true;
337
- const shouldBeSkipped = disabledItemsFocusable ? false : isDisabled(nodeId);
338
-
339
- if (visible && !shouldBeSkipped) {
340
- firstCharIds.push(nodeId);
341
- firstChars.push(firstChar);
342
- }
343
- }); // Get start index for search based on position of currentItem
344
-
345
- start = firstCharIds.indexOf(id) + 1;
346
-
347
- if (start >= firstCharIds.length) {
348
- start = 0;
349
- } // Check remaining slots in the menu
350
-
351
-
352
- index = findNextFirstChar(firstChars, start, lowercaseChar); // If not found in remaining slots, check from beginning
353
-
354
- if (index === -1) {
355
- index = findNextFirstChar(firstChars, 0, lowercaseChar);
356
- } // If match was found...
357
-
358
-
359
- if (index > -1) {
360
- focus(event, firstCharIds[index]);
361
- }
362
- };
363
- /*
364
- * Expansion Helpers
365
- */
366
-
367
-
368
- const toggleExpansion = (event, value = focusedNodeId) => {
369
- let newExpanded;
370
-
371
- if (expanded.indexOf(value) !== -1) {
372
- newExpanded = expanded.filter(id => id !== value);
373
- } else {
374
- newExpanded = [value].concat(expanded);
375
- }
376
-
377
- if (onNodeToggle) {
378
- onNodeToggle(event, newExpanded);
379
- }
380
-
381
- setExpandedState(newExpanded);
382
- };
383
-
384
- const expandAllSiblings = (event, id) => {
385
- const map = nodeMap.current[id];
386
- const siblings = getChildrenIds(map.parentId);
387
- const diff = siblings.filter(child => isExpandable(child) && !isExpanded(child));
388
- const newExpanded = expanded.concat(diff);
389
-
390
- if (diff.length > 0) {
391
- setExpandedState(newExpanded);
392
-
393
- if (onNodeToggle) {
394
- onNodeToggle(event, newExpanded);
395
- }
396
- }
397
- };
398
- /*
399
- * Selection Helpers
400
- */
401
-
402
-
403
- const lastSelectedNode = React.useRef(null);
404
- const lastSelectionWasRange = React.useRef(false);
405
- const currentRangeSelection = React.useRef([]);
406
-
407
- const handleRangeArrowSelect = (event, nodes) => {
408
- let base = selected.slice();
409
- const {
410
- start,
411
- next,
412
- current
413
- } = nodes;
414
-
415
- if (!next || !current) {
416
- return;
417
- }
418
-
419
- if (currentRangeSelection.current.indexOf(current) === -1) {
420
- currentRangeSelection.current = [];
421
- }
422
-
423
- if (lastSelectionWasRange.current) {
424
- if (currentRangeSelection.current.indexOf(next) !== -1) {
425
- base = base.filter(id => id === start || id !== current);
426
- currentRangeSelection.current = currentRangeSelection.current.filter(id => id === start || id !== current);
427
- } else {
428
- base.push(next);
429
- currentRangeSelection.current.push(next);
430
- }
431
- } else {
432
- base.push(next);
433
- currentRangeSelection.current.push(current, next);
434
- }
435
-
436
- if (onNodeSelect) {
437
- onNodeSelect(event, base);
438
- }
439
-
440
- setSelectedState(base);
441
- };
442
-
443
- const handleRangeSelect = (event, nodes) => {
444
- let base = selected.slice();
445
- const {
446
- start,
447
- end
448
- } = nodes; // If last selection was a range selection ignore nodes that were selected.
449
-
450
- if (lastSelectionWasRange.current) {
451
- base = base.filter(id => currentRangeSelection.current.indexOf(id) === -1);
452
- }
453
-
454
- let range = getNodesInRange(start, end);
455
- range = range.filter(node => !isDisabled(node));
456
- currentRangeSelection.current = range;
457
- let newSelected = base.concat(range);
458
- newSelected = newSelected.filter((id, i) => newSelected.indexOf(id) === i);
459
-
460
- if (onNodeSelect) {
461
- onNodeSelect(event, newSelected);
462
- }
463
-
464
- setSelectedState(newSelected);
465
- };
466
-
467
- const handleMultipleSelect = (event, value) => {
468
- let newSelected;
469
-
470
- if (selected.indexOf(value) !== -1) {
471
- newSelected = selected.filter(id => id !== value);
472
- } else {
473
- newSelected = [value].concat(selected);
474
- }
475
-
476
- if (onNodeSelect) {
477
- onNodeSelect(event, newSelected);
478
- }
479
-
480
- setSelectedState(newSelected);
481
- };
482
-
483
- const handleSingleSelect = (event, value) => {
484
- const newSelected = multiSelect ? [value] : value;
485
-
486
- if (onNodeSelect) {
487
- onNodeSelect(event, newSelected);
488
- }
489
-
490
- setSelectedState(newSelected);
491
- };
492
-
493
- const selectNode = (event, id, multiple = false) => {
494
- if (id) {
495
- if (multiple) {
496
- handleMultipleSelect(event, id);
497
- } else {
498
- handleSingleSelect(event, id);
499
- }
500
-
501
- lastSelectedNode.current = id;
502
- lastSelectionWasRange.current = false;
503
- currentRangeSelection.current = [];
504
- return true;
505
- }
506
-
507
- return false;
508
- };
509
-
510
- const selectRange = (event, nodes, stacked = false) => {
511
- const {
512
- start = lastSelectedNode.current,
513
- end,
514
- current
515
- } = nodes;
516
-
517
- if (stacked) {
518
- handleRangeArrowSelect(event, {
519
- start,
520
- next: end,
521
- current
522
- });
523
- } else if (start != null && end != null) {
524
- handleRangeSelect(event, {
525
- start,
526
- end
527
- });
528
- }
529
-
530
- lastSelectionWasRange.current = true;
531
- };
532
-
533
- const rangeSelectToFirst = (event, id) => {
534
- if (!lastSelectedNode.current) {
535
- lastSelectedNode.current = id;
536
- }
537
-
538
- const start = lastSelectionWasRange.current ? lastSelectedNode.current : id;
539
- selectRange(event, {
540
- start,
541
- end: getFirstNode()
542
- });
543
- };
544
-
545
- const rangeSelectToLast = (event, id) => {
546
- if (!lastSelectedNode.current) {
547
- lastSelectedNode.current = id;
548
- }
549
-
550
- const start = lastSelectionWasRange.current ? lastSelectedNode.current : id;
551
- selectRange(event, {
552
- start,
553
- end: getLastNode()
554
- });
555
- };
556
-
557
- const selectNextNode = (event, id) => {
558
- if (!isDisabled(getNextNode(id))) {
559
- selectRange(event, {
560
- end: getNextNode(id),
561
- current: id
562
- }, true);
563
- }
564
- };
565
-
566
- const selectPreviousNode = (event, id) => {
567
- if (!isDisabled(getPreviousNode(id))) {
568
- selectRange(event, {
569
- end: getPreviousNode(id),
570
- current: id
571
- }, true);
572
- }
573
- };
574
-
575
- const selectAllNodes = event => {
576
- selectRange(event, {
577
- start: getFirstNode(),
578
- end: getLastNode()
579
- });
580
- };
581
- /*
582
- * Mapping Helpers
583
- */
584
-
585
-
586
- const registerNode = React.useCallback(node => {
587
- const {
588
- id,
589
- index,
590
- parentId,
591
- expandable,
592
- idAttribute,
593
- disabled
594
- } = node;
595
- nodeMap.current[id] = {
596
- id,
597
- index,
598
- parentId,
599
- expandable,
600
- idAttribute,
601
- disabled
602
- };
603
- }, []);
604
- const unregisterNode = React.useCallback(id => {
605
- const newMap = _extends({}, nodeMap.current);
606
-
607
- delete newMap[id];
608
- nodeMap.current = newMap;
609
- setFocusedNodeId(oldFocusedNodeId => {
610
- if (oldFocusedNodeId === id && treeRef.current === ownerDocument(treeRef.current).activeElement) {
611
- return getChildrenIds(null)[0];
612
- }
613
-
614
- return oldFocusedNodeId;
615
- });
616
- }, []);
617
- const mapFirstChar = React.useCallback((id, firstChar) => {
618
- firstCharMap.current[id] = firstChar;
619
- }, []);
620
- const unMapFirstChar = React.useCallback(id => {
621
- const newMap = _extends({}, firstCharMap.current);
622
-
623
- delete newMap[id];
624
- firstCharMap.current = newMap;
625
- }, []);
626
- /**
627
- * Event handlers and Navigation
628
- */
629
-
630
- const handleNextArrow = event => {
631
- if (isExpandable(focusedNodeId)) {
632
- if (isExpanded(focusedNodeId)) {
633
- focusNextNode(event, focusedNodeId);
634
- } else if (!isDisabled(focusedNodeId)) {
635
- toggleExpansion(event);
636
- }
637
- }
638
-
639
- return true;
640
- };
641
-
642
- const handlePreviousArrow = event => {
643
- if (isExpanded(focusedNodeId) && !isDisabled(focusedNodeId)) {
644
- toggleExpansion(event, focusedNodeId);
645
- return true;
646
- }
647
-
648
- const parent = getParent(focusedNodeId);
649
-
650
- if (parent) {
651
- focus(event, parent);
652
- return true;
653
- }
654
-
655
- return false;
656
- };
657
-
658
- const handleKeyDown = event => {
659
- let flag = false;
660
- const key = event.key; // If the tree is empty there will be no focused node
661
-
662
- if (event.altKey || event.currentTarget !== event.target || !focusedNodeId) {
663
- return;
664
- }
665
-
666
- const ctrlPressed = event.ctrlKey || event.metaKey;
667
-
668
- switch (key) {
669
- case ' ':
670
- if (!disableSelection && !isDisabled(focusedNodeId)) {
671
- if (multiSelect && event.shiftKey) {
672
- selectRange(event, {
673
- end: focusedNodeId
674
- });
675
- flag = true;
676
- } else if (multiSelect) {
677
- flag = selectNode(event, focusedNodeId, true);
678
- } else {
679
- flag = selectNode(event, focusedNodeId);
680
- }
681
- }
682
-
683
- event.stopPropagation();
684
- break;
685
-
686
- case 'Enter':
687
- if (!isDisabled(focusedNodeId)) {
688
- if (isExpandable(focusedNodeId)) {
689
- toggleExpansion(event);
690
- flag = true;
691
- } else if (multiSelect) {
692
- flag = selectNode(event, focusedNodeId, true);
693
- } else {
694
- flag = selectNode(event, focusedNodeId);
695
- }
696
- }
697
-
698
- event.stopPropagation();
699
- break;
700
-
701
- case 'ArrowDown':
702
- if (multiSelect && event.shiftKey && !disableSelection) {
703
- selectNextNode(event, focusedNodeId);
704
- }
705
-
706
- focusNextNode(event, focusedNodeId);
707
- flag = true;
708
- break;
709
-
710
- case 'ArrowUp':
711
- if (multiSelect && event.shiftKey && !disableSelection) {
712
- selectPreviousNode(event, focusedNodeId);
713
- }
714
-
715
- focusPreviousNode(event, focusedNodeId);
716
- flag = true;
717
- break;
718
-
719
- case 'ArrowRight':
720
- if (isRtl) {
721
- flag = handlePreviousArrow(event);
722
- } else {
723
- flag = handleNextArrow(event);
724
- }
725
-
726
- break;
727
-
728
- case 'ArrowLeft':
729
- if (isRtl) {
730
- flag = handleNextArrow(event);
731
- } else {
732
- flag = handlePreviousArrow(event);
733
- }
734
-
735
- break;
736
-
737
- case 'Home':
738
- if (multiSelect && ctrlPressed && event.shiftKey && !disableSelection && !isDisabled(focusedNodeId)) {
739
- rangeSelectToFirst(event, focusedNodeId);
740
- }
741
-
742
- focusFirstNode(event);
743
- flag = true;
744
- break;
745
-
746
- case 'End':
747
- if (multiSelect && ctrlPressed && event.shiftKey && !disableSelection && !isDisabled(focusedNodeId)) {
748
- rangeSelectToLast(event, focusedNodeId);
749
- }
750
-
751
- focusLastNode(event);
752
- flag = true;
753
- break;
754
-
755
- default:
756
- if (key === '*') {
757
- expandAllSiblings(event, focusedNodeId);
758
- flag = true;
759
- } else if (multiSelect && ctrlPressed && key.toLowerCase() === 'a' && !disableSelection) {
760
- selectAllNodes(event);
761
- flag = true;
762
- } else if (!ctrlPressed && !event.shiftKey && isPrintableCharacter(key)) {
763
- focusByFirstCharacter(event, focusedNodeId, key);
764
- flag = true;
765
- }
766
-
767
- }
768
-
769
- if (flag) {
770
- event.preventDefault();
771
- event.stopPropagation();
772
- }
773
-
774
- if (onKeyDown) {
775
- onKeyDown(event);
776
- }
777
- };
778
-
779
- const handleFocus = event => {
780
- // if the event bubbled (which is React specific) we don't want to steal focus
781
- if (event.target === event.currentTarget) {
782
- const firstSelected = Array.isArray(selected) ? selected[0] : selected;
783
- focus(event, firstSelected || getNavigableChildrenIds(null)[0]);
784
- }
785
-
786
- if (onFocus) {
787
- onFocus(event);
788
- }
789
- };
790
-
791
- const handleBlur = event => {
792
- setFocusedNodeId(null);
793
-
794
- if (onBlur) {
795
- onBlur(event);
796
- }
797
- };
798
-
799
- const activeDescendant = nodeMap.current[focusedNodeId] ? nodeMap.current[focusedNodeId].idAttribute : null;
800
- return /*#__PURE__*/_jsx(TreeViewContext.Provider, {
801
- value: {
802
- icons: {
803
- defaultCollapseIcon,
804
- defaultExpandIcon,
805
- defaultParentIcon,
806
- defaultEndIcon
807
- },
808
- focus,
809
- toggleExpansion,
810
- isExpanded,
811
- isExpandable,
812
- isFocused,
813
- isSelected,
814
- isDisabled,
815
- selectNode: disableSelection ? noopSelection : selectNode,
816
- selectRange: disableSelection ? noopSelection : selectRange,
817
- multiSelect,
818
- disabledItemsFocusable,
819
- mapFirstChar,
820
- unMapFirstChar,
821
- registerNode,
822
- unregisterNode,
823
- treeId
824
- },
825
- children: /*#__PURE__*/_jsx(DescendantProvider, {
826
- children: /*#__PURE__*/_jsx(TreeViewRoot, _extends({
827
- role: "tree",
828
- id: treeId,
829
- "aria-activedescendant": activeDescendant,
830
- "aria-multiselectable": multiSelect,
831
- className: clsx(classes.root, className),
832
- ref: handleRef,
833
- tabIndex: 0,
834
- onKeyDown: handleKeyDown,
835
- onFocus: handleFocus,
836
- onBlur: handleBlur,
837
- ownerState: ownerState
838
- }, other, {
839
- children: children
840
- }))
841
- })
842
- });
11
+ };
12
+ /**
13
+ * @deprecated The TreeView component was moved from `@mui/lab` to `@mui/x-tree-view`. More information about this migration on our blog: https://mui.com/blog/lab-tree-view-to-mui-x/.
14
+ * @ignore - do not document.
15
+ */
16
+ const TreeView = /*#__PURE__*/React.forwardRef(function DeprecatedTreeView() {
17
+ warn();
18
+ return null;
843
19
  });
844
- process.env.NODE_ENV !== "production" ? TreeView.propTypes
845
- /* remove-proptypes */
846
- = {
847
- // ----------------------------- Warning --------------------------------
848
- // | These PropTypes are generated from the TypeScript type definitions |
849
- // | To update them edit the d.ts file and run "yarn proptypes" |
850
- // ----------------------------------------------------------------------
851
-
852
- /**
853
- * The content of the component.
854
- */
855
- children: PropTypes.node,
856
-
857
- /**
858
- * Override or extend the styles applied to the component.
859
- */
860
- classes: PropTypes.object,
861
-
862
- /**
863
- * @ignore
864
- */
865
- className: PropTypes.string,
866
-
867
- /**
868
- * The default icon used to collapse the node.
869
- */
870
- defaultCollapseIcon: PropTypes.node,
871
-
872
- /**
873
- * The default icon displayed next to a end node. This is applied to all
874
- * tree nodes and can be overridden by the TreeItem `icon` prop.
875
- */
876
- defaultEndIcon: PropTypes.node,
877
-
878
- /**
879
- * Expanded node ids. (Uncontrolled)
880
- * @default []
881
- */
882
- defaultExpanded: PropTypes.arrayOf(PropTypes.string),
883
-
884
- /**
885
- * The default icon used to expand the node.
886
- */
887
- defaultExpandIcon: PropTypes.node,
888
-
889
- /**
890
- * The default icon displayed next to a parent node. This is applied to all
891
- * parent nodes and can be overridden by the TreeItem `icon` prop.
892
- */
893
- defaultParentIcon: PropTypes.node,
894
-
895
- /**
896
- * Selected node ids. (Uncontrolled)
897
- * When `multiSelect` is true this takes an array of strings; when false (default) a string.
898
- * @default []
899
- */
900
- defaultSelected: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.string]),
901
-
902
- /**
903
- * If `true`, will allow focus on disabled items.
904
- * @default false
905
- */
906
- disabledItemsFocusable: PropTypes.bool,
907
-
908
- /**
909
- * If `true` selection is disabled.
910
- * @default false
911
- */
912
- disableSelection: PropTypes.bool,
913
-
914
- /**
915
- * Expanded node ids. (Controlled)
916
- */
917
- expanded: PropTypes.arrayOf(PropTypes.string),
918
-
919
- /**
920
- * This prop is used to help implement the accessibility logic.
921
- * If you don't provide this prop. It falls back to a randomly generated id.
922
- */
923
- id: PropTypes.string,
924
-
925
- /**
926
- * If true `ctrl` and `shift` will trigger multiselect.
927
- * @default false
928
- */
929
- multiSelect: PropTypes.bool,
930
-
931
- /**
932
- * @ignore
933
- */
934
- onBlur: PropTypes.func,
935
-
936
- /**
937
- * @ignore
938
- */
939
- onFocus: PropTypes.func,
940
-
941
- /**
942
- * @ignore
943
- */
944
- onKeyDown: PropTypes.func,
945
-
946
- /**
947
- * Callback fired when tree items are focused.
948
- *
949
- * @param {React.SyntheticEvent} event The event source of the callback **Warning**: This is a generic event not a focus event.
950
- * @param {string} value of the focused node.
951
- */
952
- onNodeFocus: PropTypes.func,
953
-
954
- /**
955
- * Callback fired when tree items are selected/unselected.
956
- *
957
- * @param {React.SyntheticEvent} event The event source of the callback
958
- * @param {string[] | string} nodeIds Ids of the selected nodes. When `multiSelect` is true
959
- * this is an array of strings; when false (default) a string.
960
- */
961
- onNodeSelect: PropTypes.func,
962
-
963
- /**
964
- * Callback fired when tree items are expanded/collapsed.
965
- *
966
- * @param {React.SyntheticEvent} event The event source of the callback.
967
- * @param {array} nodeIds The ids of the expanded nodes.
968
- */
969
- onNodeToggle: PropTypes.func,
970
-
971
- /**
972
- * Selected node ids. (Controlled)
973
- * When `multiSelect` is true this takes an array of strings; when false (default) a string.
974
- */
975
- selected: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.string]),
976
-
977
- /**
978
- * The system prop that allows defining system overrides as well as additional CSS styles.
979
- */
980
- sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])
981
- } : void 0;
982
20
  export default TreeView;