@react-md/core 1.0.0-next.15 → 1.0.0-next.16

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 (815) hide show
  1. package/dist/RootHtml.d.ts +0 -2
  2. package/dist/RootHtml.js +0 -2
  3. package/dist/RootHtml.js.map +1 -1
  4. package/dist/app-bar/AppBar.d.ts +0 -2
  5. package/dist/app-bar/AppBar.js +0 -2
  6. package/dist/app-bar/AppBar.js.map +1 -1
  7. package/dist/app-bar/AppBarTitle.d.ts +0 -3
  8. package/dist/app-bar/AppBarTitle.js +0 -2
  9. package/dist/app-bar/AppBarTitle.js.map +1 -1
  10. package/dist/avatar/Avatar.d.ts +0 -2
  11. package/dist/avatar/Avatar.js +0 -2
  12. package/dist/avatar/Avatar.js.map +1 -1
  13. package/dist/badge/Badge.d.ts +1 -3
  14. package/dist/badge/Badge.js +0 -2
  15. package/dist/badge/Badge.js.map +1 -1
  16. package/dist/box/Box.d.ts +0 -2
  17. package/dist/box/Box.js +0 -2
  18. package/dist/box/Box.js.map +1 -1
  19. package/dist/button/ButtonUnstyled.d.ts +0 -2
  20. package/dist/button/ButtonUnstyled.js +0 -2
  21. package/dist/button/ButtonUnstyled.js.map +1 -1
  22. package/dist/card/Card.d.ts +0 -2
  23. package/dist/card/Card.js +0 -2
  24. package/dist/card/Card.js.map +1 -1
  25. package/dist/card/CardContent.d.ts +0 -2
  26. package/dist/card/CardContent.js +0 -2
  27. package/dist/card/CardContent.js.map +1 -1
  28. package/dist/card/CardFooter.d.ts +0 -3
  29. package/dist/card/CardFooter.js +0 -2
  30. package/dist/card/CardFooter.js.map +1 -1
  31. package/dist/card/CardHeader.d.ts +0 -2
  32. package/dist/card/CardHeader.js +0 -2
  33. package/dist/card/CardHeader.js.map +1 -1
  34. package/dist/card/CardSubtitle.d.ts +0 -3
  35. package/dist/card/CardSubtitle.js +0 -2
  36. package/dist/card/CardSubtitle.js.map +1 -1
  37. package/dist/card/CardTitle.d.ts +0 -3
  38. package/dist/card/CardTitle.js +0 -2
  39. package/dist/card/CardTitle.js.map +1 -1
  40. package/dist/chip/Chip.d.ts +0 -2
  41. package/dist/chip/Chip.js +0 -2
  42. package/dist/chip/Chip.js.map +1 -1
  43. package/dist/dialog/DialogContainer.d.ts +0 -2
  44. package/dist/dialog/DialogContainer.js +0 -2
  45. package/dist/dialog/DialogContainer.js.map +1 -1
  46. package/dist/dialog/DialogContent.d.ts +3 -3
  47. package/dist/dialog/DialogContent.js +3 -3
  48. package/dist/dialog/DialogContent.js.map +1 -1
  49. package/dist/dialog/DialogFooter.d.ts +2 -3
  50. package/dist/dialog/DialogFooter.js +2 -3
  51. package/dist/dialog/DialogFooter.js.map +1 -1
  52. package/dist/dialog/DialogHeader.d.ts +3 -3
  53. package/dist/dialog/DialogHeader.js +3 -3
  54. package/dist/dialog/DialogHeader.js.map +1 -1
  55. package/dist/dialog/DialogTitle.d.ts +3 -4
  56. package/dist/dialog/DialogTitle.js +3 -3
  57. package/dist/dialog/DialogTitle.js.map +1 -1
  58. package/dist/dialog/NestedDialogProvider.d.ts +0 -1
  59. package/dist/divider/Divider.d.ts +0 -2
  60. package/dist/divider/Divider.js +0 -2
  61. package/dist/divider/Divider.js.map +1 -1
  62. package/dist/expansion-panel/ExpansionList.d.ts +1 -1
  63. package/dist/expansion-panel/ExpansionList.js +1 -1
  64. package/dist/expansion-panel/ExpansionList.js.map +1 -1
  65. package/dist/expansion-panel/ExpansionPanel.d.ts +8 -24
  66. package/dist/expansion-panel/ExpansionPanel.js +1 -12
  67. package/dist/expansion-panel/ExpansionPanel.js.map +1 -1
  68. package/dist/expansion-panel/ExpansionPanelHeader.d.ts +0 -1
  69. package/dist/expansion-panel/ExpansionPanelHeader.js +0 -1
  70. package/dist/expansion-panel/ExpansionPanelHeader.js.map +1 -1
  71. package/dist/expansion-panel/expansionPanelStyles.d.ts +19 -0
  72. package/dist/expansion-panel/expansionPanelStyles.js +14 -0
  73. package/dist/expansion-panel/expansionPanelStyles.js.map +1 -0
  74. package/dist/form/Checkbox.d.ts +0 -1
  75. package/dist/form/Fieldset.d.ts +0 -2
  76. package/dist/form/Fieldset.js.map +1 -1
  77. package/dist/form/FormMessage.d.ts +0 -3
  78. package/dist/form/FormMessage.js +0 -2
  79. package/dist/form/FormMessage.js.map +1 -1
  80. package/dist/form/FormMessageContainer.d.ts +0 -1
  81. package/dist/form/FormMessageContainer.js +0 -1
  82. package/dist/form/FormMessageContainer.js.map +1 -1
  83. package/dist/form/FormMessageCounter.d.ts +0 -2
  84. package/dist/form/FormMessageCounter.js +0 -2
  85. package/dist/form/FormMessageCounter.js.map +1 -1
  86. package/dist/form/InputToggle.js.map +1 -1
  87. package/dist/form/InputToggleIcon.d.ts +0 -2
  88. package/dist/form/InputToggleIcon.js +0 -2
  89. package/dist/form/InputToggleIcon.js.map +1 -1
  90. package/dist/form/Label.d.ts +0 -3
  91. package/dist/form/Label.js +0 -2
  92. package/dist/form/Label.js.map +1 -1
  93. package/dist/form/Legend.d.ts +0 -3
  94. package/dist/form/Legend.js +0 -2
  95. package/dist/form/Legend.js.map +1 -1
  96. package/dist/form/MenuItemCheckbox.d.ts +0 -1
  97. package/dist/form/MenuItemRadio.d.ts +0 -1
  98. package/dist/form/MenuItemSwitch.d.ts +0 -1
  99. package/dist/form/NativeSelect.d.ts +0 -2
  100. package/dist/form/NativeSelect.js +0 -2
  101. package/dist/form/NativeSelect.js.map +1 -1
  102. package/dist/form/Option.js.map +1 -1
  103. package/dist/form/Radio.d.ts +0 -1
  104. package/dist/form/SelectedOption.d.ts +0 -2
  105. package/dist/form/SelectedOption.js +0 -2
  106. package/dist/form/SelectedOption.js.map +1 -1
  107. package/dist/form/SliderContainer.d.ts +0 -2
  108. package/dist/form/SliderContainer.js +0 -2
  109. package/dist/form/SliderContainer.js.map +1 -1
  110. package/dist/form/SliderMark.d.ts +0 -2
  111. package/dist/form/SliderMark.js +0 -2
  112. package/dist/form/SliderMark.js.map +1 -1
  113. package/dist/form/SliderMarkLabel.d.ts +0 -2
  114. package/dist/form/SliderMarkLabel.js +0 -2
  115. package/dist/form/SliderMarkLabel.js.map +1 -1
  116. package/dist/form/SliderTrack.d.ts +0 -2
  117. package/dist/form/SliderTrack.js +0 -2
  118. package/dist/form/SliderTrack.js.map +1 -1
  119. package/dist/form/SliderValueMarks.d.ts +0 -2
  120. package/dist/form/SliderValueMarks.js +0 -2
  121. package/dist/form/SliderValueMarks.js.map +1 -1
  122. package/dist/form/Switch.d.ts +0 -2
  123. package/dist/form/Switch.js +0 -2
  124. package/dist/form/Switch.js.map +1 -1
  125. package/dist/form/SwitchTrack.d.ts +2 -1
  126. package/dist/form/SwitchTrack.js +2 -1
  127. package/dist/form/SwitchTrack.js.map +1 -1
  128. package/dist/form/TextField.d.ts +0 -2
  129. package/dist/form/TextField.js +0 -2
  130. package/dist/form/TextField.js.map +1 -1
  131. package/dist/form/TextFieldAddon.d.ts +1 -4
  132. package/dist/form/TextFieldAddon.js +1 -3
  133. package/dist/form/TextFieldAddon.js.map +1 -1
  134. package/dist/icon/FontIcon.d.ts +0 -2
  135. package/dist/icon/FontIcon.js +0 -2
  136. package/dist/icon/FontIcon.js.map +1 -1
  137. package/dist/icon/IconRotator.d.ts +0 -2
  138. package/dist/icon/IconRotator.js +0 -2
  139. package/dist/icon/IconRotator.js.map +1 -1
  140. package/dist/icon/MaterialIcon.d.ts +0 -2
  141. package/dist/icon/MaterialIcon.js +0 -2
  142. package/dist/icon/MaterialIcon.js.map +1 -1
  143. package/dist/icon/MaterialSymbol.d.ts +0 -1
  144. package/dist/icon/MaterialSymbol.js +0 -1
  145. package/dist/icon/MaterialSymbol.js.map +1 -1
  146. package/dist/icon/SVGIcon.d.ts +0 -2
  147. package/dist/icon/SVGIcon.js +0 -2
  148. package/dist/icon/SVGIcon.js.map +1 -1
  149. package/dist/icon/TextIconSpacing.d.ts +0 -2
  150. package/dist/icon/TextIconSpacing.js +0 -2
  151. package/dist/icon/TextIconSpacing.js.map +1 -1
  152. package/dist/icon/_icon.scss +2 -2
  153. package/dist/icon/styles.js +1 -1
  154. package/dist/icon/styles.js.map +1 -1
  155. package/dist/interaction/RippleContainer.d.ts +0 -2
  156. package/dist/interaction/RippleContainer.js +0 -2
  157. package/dist/interaction/RippleContainer.js.map +1 -1
  158. package/dist/layout/LayoutAppBar.d.ts +0 -1
  159. package/dist/layout/LayoutNav.js +1 -2
  160. package/dist/layout/LayoutNav.js.map +1 -1
  161. package/dist/layout/LayoutWindowSplitter.d.ts +0 -1
  162. package/dist/layout/useHorizontalLayoutTransition.js +1 -1
  163. package/dist/layout/useHorizontalLayoutTransition.js.map +1 -1
  164. package/dist/layout/useLayoutTree.d.ts +2 -2
  165. package/dist/layout/useLayoutTree.js.map +1 -1
  166. package/dist/link/Link.d.ts +0 -2
  167. package/dist/link/Link.js +0 -2
  168. package/dist/link/Link.js.map +1 -1
  169. package/dist/list/List.d.ts +0 -20
  170. package/dist/list/List.js +1 -14
  171. package/dist/list/List.js.map +1 -1
  172. package/dist/list/ListItem.d.ts +0 -16
  173. package/dist/list/ListItem.js.map +1 -1
  174. package/dist/list/ListItemAddon.d.ts +0 -2
  175. package/dist/list/ListItemAddon.js +0 -2
  176. package/dist/list/ListItemAddon.js.map +1 -1
  177. package/dist/list/ListItemChildren.d.ts +0 -2
  178. package/dist/list/ListItemChildren.js +0 -2
  179. package/dist/list/ListItemChildren.js.map +1 -1
  180. package/dist/list/ListItemText.d.ts +0 -2
  181. package/dist/list/ListItemText.js +0 -2
  182. package/dist/list/ListItemText.js.map +1 -1
  183. package/dist/list/ListSubheader.d.ts +3 -2
  184. package/dist/list/ListSubheader.js +0 -2
  185. package/dist/list/ListSubheader.js.map +1 -1
  186. package/dist/list/getListItemHeight.d.ts +2 -2
  187. package/dist/list/getListItemHeight.js +2 -2
  188. package/dist/list/getListItemHeight.js.map +1 -1
  189. package/dist/list/listItemStyles.d.ts +17 -1
  190. package/dist/list/listItemStyles.js.map +1 -1
  191. package/dist/list/listStyles.d.ts +18 -0
  192. package/dist/list/listStyles.js +14 -0
  193. package/dist/list/listStyles.js.map +1 -0
  194. package/dist/list/types.d.ts +9 -3
  195. package/dist/list/types.js +6 -1
  196. package/dist/list/types.js.map +1 -1
  197. package/dist/media-queries/AppSizeProvider.d.ts +8 -0
  198. package/dist/media-queries/AppSizeProvider.js +2 -0
  199. package/dist/media-queries/AppSizeProvider.js.map +1 -1
  200. package/dist/media-queries/appSize.d.ts +5 -5
  201. package/dist/media-queries/useMediaQuery.d.ts +1 -1
  202. package/dist/media-queries/useMediaQuery.js +1 -1
  203. package/dist/media-queries/useMediaQuery.js.map +1 -1
  204. package/dist/menu/MenuBar.d.ts +0 -1
  205. package/dist/menu/MenuButton.d.ts +0 -1
  206. package/dist/menu/MenuConfigurationProvider.js.map +1 -1
  207. package/dist/menu/MenuItem.d.ts +0 -1
  208. package/dist/menu/MenuItemButton.d.ts +0 -1
  209. package/dist/menu/useMenuBarProvider.d.ts +0 -1
  210. package/dist/movement/useKeyboardMovementProvider.d.ts +0 -1
  211. package/dist/navigation/NavGroup.d.ts +0 -2
  212. package/dist/navigation/NavGroup.js +0 -2
  213. package/dist/navigation/NavGroup.js.map +1 -1
  214. package/dist/navigation/NavItem.d.ts +0 -2
  215. package/dist/navigation/NavItem.js +0 -2
  216. package/dist/navigation/NavItem.js.map +1 -1
  217. package/dist/navigation/NavSubheader.d.ts +0 -3
  218. package/dist/navigation/NavSubheader.js +0 -2
  219. package/dist/navigation/NavSubheader.js.map +1 -1
  220. package/dist/progress/CircularProgress.d.ts +0 -2
  221. package/dist/progress/CircularProgress.js +0 -2
  222. package/dist/progress/CircularProgress.js.map +1 -1
  223. package/dist/progress/LinearProgress.d.ts +0 -2
  224. package/dist/progress/LinearProgress.js +0 -2
  225. package/dist/progress/LinearProgress.js.map +1 -1
  226. package/dist/responsive-item/ResponsiveItemContainer.d.ts +0 -2
  227. package/dist/responsive-item/ResponsiveItemContainer.js +0 -2
  228. package/dist/responsive-item/ResponsiveItemContainer.js.map +1 -1
  229. package/dist/responsive-item/ResponsiveItemOverlay.d.ts +0 -2
  230. package/dist/responsive-item/ResponsiveItemOverlay.js +0 -2
  231. package/dist/responsive-item/ResponsiveItemOverlay.js.map +1 -1
  232. package/dist/segmented-button/SegmentedButtonContainer.d.ts +0 -2
  233. package/dist/segmented-button/SegmentedButtonContainer.js +0 -2
  234. package/dist/segmented-button/SegmentedButtonContainer.js.map +1 -1
  235. package/dist/sheet/Sheet.d.ts +30 -16
  236. package/dist/sheet/Sheet.js +24 -14
  237. package/dist/sheet/Sheet.js.map +1 -1
  238. package/dist/sheet/styles.d.ts +29 -0
  239. package/dist/sheet/styles.js +13 -0
  240. package/dist/sheet/styles.js.map +1 -1
  241. package/dist/snackbar/ToastActionButton.d.ts +0 -1
  242. package/dist/snackbar/ToastCloseButton.d.ts +0 -1
  243. package/dist/snackbar/ToastManager.js.map +1 -1
  244. package/dist/snackbar/useCurrentToastActions.d.ts +0 -1
  245. package/dist/suspense/CircularProgressSuspense.d.ts +0 -2
  246. package/dist/suspense/CircularProgressSuspense.js +0 -2
  247. package/dist/suspense/CircularProgressSuspense.js.map +1 -1
  248. package/dist/suspense/NullSuspense.d.ts +0 -2
  249. package/dist/suspense/NullSuspense.js +0 -2
  250. package/dist/suspense/NullSuspense.js.map +1 -1
  251. package/dist/table/TableCellContent.d.ts +0 -3
  252. package/dist/table/TableCellContent.js +0 -3
  253. package/dist/table/TableCellContent.js.map +1 -1
  254. package/dist/table/TableConfigurationProvider.d.ts +0 -1
  255. package/dist/tabs/Tab.d.ts +3 -0
  256. package/dist/tabs/Tab.js.map +1 -1
  257. package/dist/tabs/TabListScrollButton.js +5 -1
  258. package/dist/tabs/TabListScrollButton.js.map +1 -1
  259. package/dist/tabs/_tabs.scss +21 -3
  260. package/dist/tabs/tabListScrollButtonStyles.d.ts +2 -0
  261. package/dist/tabs/tabListScrollButtonStyles.js +9 -5
  262. package/dist/tabs/tabListScrollButtonStyles.js.map +1 -1
  263. package/dist/tabs/useTabList.d.ts +2 -0
  264. package/dist/tabs/useTabList.js +4 -2
  265. package/dist/tabs/useTabList.js.map +1 -1
  266. package/dist/tabs/useTabs.d.ts +33 -11
  267. package/dist/tabs/useTabs.js +9 -3
  268. package/dist/tabs/useTabs.js.map +1 -1
  269. package/dist/test-utils/IntersectionObserver.js.map +1 -1
  270. package/dist/test-utils/data-testid.d.ts +0 -1
  271. package/dist/theme/useColorScheme.d.ts +0 -1
  272. package/dist/transition/SlideContainer.d.ts +2 -48
  273. package/dist/transition/SlideContainer.js +2 -48
  274. package/dist/transition/SlideContainer.js.map +1 -1
  275. package/dist/tree/DefaultTreeItemRenderer.d.ts +2 -3
  276. package/dist/tree/DefaultTreeItemRenderer.js +1 -1
  277. package/dist/tree/DefaultTreeItemRenderer.js.map +1 -1
  278. package/dist/tree/Tree.d.ts +3 -4
  279. package/dist/tree/Tree.js.map +1 -1
  280. package/dist/tree/TreeItem.d.ts +10 -3
  281. package/dist/tree/TreeItem.js +5 -2
  282. package/dist/tree/TreeItem.js.map +1 -1
  283. package/dist/tree/types.d.ts +11 -6
  284. package/dist/tree/types.js +1 -26
  285. package/dist/tree/types.js.map +1 -1
  286. package/dist/tree/useTree.d.ts +3 -3
  287. package/dist/tree/useTree.js.map +1 -1
  288. package/dist/tree/useTreeExpansion.d.ts +3 -3
  289. package/dist/tree/useTreeExpansion.js.map +1 -1
  290. package/dist/tree/useTreeSelection.d.ts +3 -3
  291. package/dist/tree/useTreeSelection.js.map +1 -1
  292. package/dist/typography/SrOnly.d.ts +2 -1
  293. package/dist/typography/SrOnly.js +2 -1
  294. package/dist/typography/SrOnly.js.map +1 -1
  295. package/dist/typography/TextContainer.d.ts +0 -2
  296. package/dist/typography/TextContainer.js +0 -2
  297. package/dist/typography/TextContainer.js.map +1 -1
  298. package/dist/typography/Typography.d.ts +0 -2
  299. package/dist/typography/Typography.js +0 -2
  300. package/dist/typography/Typography.js.map +1 -1
  301. package/dist/typography/WritingDirectionProvider.d.ts +2 -2
  302. package/dist/typography/WritingDirectionProvider.js +2 -2
  303. package/dist/typography/WritingDirectionProvider.js.map +1 -1
  304. package/dist/useResizeListener.d.ts +7 -1
  305. package/dist/useResizeListener.js.map +1 -1
  306. package/dist/useResizeObserver.d.ts +3 -3
  307. package/dist/useResizeObserver.js.map +1 -1
  308. package/dist/useToggle.d.ts +4 -4
  309. package/dist/useToggle.js +1 -1
  310. package/dist/useToggle.js.map +1 -1
  311. package/dist/window-splitter/WindowSplitter.d.ts +2 -2
  312. package/dist/window-splitter/WindowSplitter.js +2 -2
  313. package/dist/window-splitter/WindowSplitter.js.map +1 -1
  314. package/package.json +15 -15
  315. package/src/RootHtml.tsx +0 -2
  316. package/src/app-bar/AppBar.tsx +0 -2
  317. package/src/app-bar/AppBarTitle.tsx +0 -2
  318. package/src/avatar/Avatar.tsx +0 -2
  319. package/src/badge/Badge.tsx +1 -3
  320. package/src/box/Box.tsx +0 -2
  321. package/src/button/ButtonUnstyled.tsx +0 -2
  322. package/src/card/Card.tsx +0 -2
  323. package/src/card/CardContent.tsx +0 -2
  324. package/src/card/CardFooter.tsx +0 -2
  325. package/src/card/CardHeader.tsx +0 -2
  326. package/src/card/CardSubtitle.tsx +0 -2
  327. package/src/card/CardTitle.tsx +0 -2
  328. package/src/chip/Chip.tsx +0 -2
  329. package/src/dialog/DialogContainer.tsx +0 -2
  330. package/src/dialog/DialogContent.tsx +3 -3
  331. package/src/dialog/DialogFooter.tsx +2 -3
  332. package/src/dialog/DialogHeader.tsx +3 -3
  333. package/src/dialog/DialogTitle.tsx +3 -3
  334. package/src/divider/Divider.tsx +0 -2
  335. package/src/expansion-panel/ExpansionList.tsx +1 -1
  336. package/src/expansion-panel/ExpansionPanel.tsx +9 -38
  337. package/src/expansion-panel/ExpansionPanelHeader.tsx +0 -1
  338. package/src/expansion-panel/expansionPanelStyles.ts +33 -0
  339. package/src/form/Fieldset.tsx +0 -2
  340. package/src/form/FormMessage.tsx +0 -2
  341. package/src/form/FormMessageContainer.tsx +0 -1
  342. package/src/form/FormMessageCounter.tsx +0 -2
  343. package/src/form/InputToggle.tsx +1 -1
  344. package/src/form/InputToggleIcon.tsx +0 -2
  345. package/src/form/Label.tsx +0 -2
  346. package/src/form/Legend.tsx +0 -2
  347. package/src/form/NativeSelect.tsx +0 -2
  348. package/src/form/Option.tsx +1 -1
  349. package/src/form/SelectedOption.tsx +0 -2
  350. package/src/form/SliderContainer.tsx +0 -2
  351. package/src/form/SliderMark.tsx +0 -2
  352. package/src/form/SliderMarkLabel.tsx +0 -2
  353. package/src/form/SliderTrack.tsx +0 -2
  354. package/src/form/SliderValueMarks.tsx +0 -2
  355. package/src/form/Switch.tsx +0 -2
  356. package/src/form/SwitchTrack.tsx +2 -1
  357. package/src/form/TextField.tsx +0 -2
  358. package/src/form/TextFieldAddon.tsx +1 -3
  359. package/src/icon/FontIcon.tsx +0 -2
  360. package/src/icon/IconRotator.tsx +0 -2
  361. package/src/icon/MaterialIcon.tsx +0 -2
  362. package/src/icon/MaterialSymbol.tsx +0 -1
  363. package/src/icon/SVGIcon.tsx +0 -2
  364. package/src/icon/TextIconSpacing.tsx +0 -2
  365. package/src/icon/styles.ts +1 -1
  366. package/src/interaction/RippleContainer.tsx +0 -2
  367. package/src/layout/LayoutNav.tsx +3 -2
  368. package/src/layout/useHorizontalLayoutTransition.ts +1 -1
  369. package/src/layout/useLayoutTree.ts +2 -2
  370. package/src/link/Link.tsx +0 -2
  371. package/src/list/List.tsx +1 -33
  372. package/src/list/ListItem.tsx +0 -17
  373. package/src/list/ListItemAddon.tsx +0 -2
  374. package/src/list/ListItemChildren.tsx +0 -2
  375. package/src/list/ListItemText.tsx +0 -2
  376. package/src/list/ListSubheader.tsx +3 -2
  377. package/src/list/getListItemHeight.ts +2 -2
  378. package/src/list/listItemStyles.ts +21 -4
  379. package/src/list/listStyles.ts +31 -0
  380. package/src/list/types.ts +9 -3
  381. package/src/media-queries/AppSizeProvider.tsx +8 -0
  382. package/src/media-queries/useMediaQuery.ts +1 -1
  383. package/src/menu/MenuConfigurationProvider.tsx +2 -2
  384. package/src/navigation/NavGroup.tsx +0 -2
  385. package/src/navigation/NavItem.tsx +0 -2
  386. package/src/navigation/NavSubheader.tsx +0 -2
  387. package/src/progress/CircularProgress.tsx +0 -2
  388. package/src/progress/LinearProgress.tsx +0 -2
  389. package/src/responsive-item/ResponsiveItemContainer.tsx +0 -2
  390. package/src/responsive-item/ResponsiveItemOverlay.tsx +0 -2
  391. package/src/segmented-button/SegmentedButtonContainer.tsx +0 -2
  392. package/src/sheet/Sheet.tsx +36 -33
  393. package/src/sheet/styles.ts +50 -0
  394. package/src/suspense/CircularProgressSuspense.tsx +0 -2
  395. package/src/suspense/NullSuspense.tsx +0 -2
  396. package/src/table/TableCellContent.tsx +0 -3
  397. package/src/tabs/Tab.tsx +3 -0
  398. package/src/tabs/TabListScrollButton.tsx +9 -2
  399. package/src/tabs/tabListScrollButtonStyles.ts +9 -5
  400. package/src/tabs/useTabList.ts +4 -0
  401. package/src/tabs/useTabs.ts +61 -14
  402. package/src/test-utils/IntersectionObserver.ts +1 -1
  403. package/src/transition/SlideContainer.tsx +2 -48
  404. package/src/tree/DefaultTreeItemRenderer.tsx +3 -4
  405. package/src/tree/Tree.tsx +4 -6
  406. package/src/tree/TreeItem.tsx +11 -4
  407. package/src/tree/types.ts +16 -6
  408. package/src/tree/useTree.ts +3 -3
  409. package/src/tree/useTreeExpansion.ts +3 -3
  410. package/src/tree/useTreeSelection.ts +3 -3
  411. package/src/typography/SrOnly.tsx +2 -1
  412. package/src/typography/TextContainer.tsx +0 -2
  413. package/src/typography/Typography.tsx +0 -2
  414. package/src/typography/WritingDirectionProvider.tsx +2 -2
  415. package/src/useResizeListener.ts +7 -1
  416. package/src/useResizeObserver.ts +3 -3
  417. package/src/useToggle.ts +4 -4
  418. package/src/window-splitter/WindowSplitter.tsx +2 -2
  419. package/.eslintrc.cjs +0 -34
  420. package/.stylelintrc.json +0 -14
  421. package/.swcrc +0 -17
  422. package/.turbo/turbo-build.log +0 -22
  423. package/.turbo/turbo-lint.log +0 -12
  424. package/.turbo/turbo-test.log +0 -5516
  425. package/.turbo/turbo-typecheck.log +0 -4
  426. package/CHANGELOG.md +0 -323
  427. package/coverage/clover.xml +0 -842
  428. package/coverage/coverage-final.json +0 -6
  429. package/coverage/lcov-report/autocomplete/Autocomplete.tsx.html +0 -1033
  430. package/coverage/lcov-report/autocomplete/AutocompleteClearButton.tsx.html +0 -262
  431. package/coverage/lcov-report/autocomplete/FilterAutocompleteOptions.tsx.html +0 -364
  432. package/coverage/lcov-report/autocomplete/index.html +0 -146
  433. package/coverage/lcov-report/base.css +0 -224
  434. package/coverage/lcov-report/block-navigation.js +0 -87
  435. package/coverage/lcov-report/button/Button.tsx.html +0 -676
  436. package/coverage/lcov-report/button/index.html +0 -116
  437. package/coverage/lcov-report/card/Card.tsx.html +0 -349
  438. package/coverage/lcov-report/card/CardSubtitle.tsx.html +0 -265
  439. package/coverage/lcov-report/card/index.html +0 -146
  440. package/coverage/lcov-report/card/styles.ts.html +0 -682
  441. package/coverage/lcov-report/createHorizontalPosition.ts.html +0 -1075
  442. package/coverage/lcov-report/createVerticalPosition.ts.html +0 -997
  443. package/coverage/lcov-report/favicon.png +0 -0
  444. package/coverage/lcov-report/form/Option.tsx.html +0 -727
  445. package/coverage/lcov-report/form/index.html +0 -131
  446. package/coverage/lcov-report/form/useListboxProvider.ts.html +0 -253
  447. package/coverage/lcov-report/index.html +0 -146
  448. package/coverage/lcov-report/prettify.css +0 -1
  449. package/coverage/lcov-report/prettify.js +0 -2
  450. package/coverage/lcov-report/searching/fuzzy.ts.html +0 -607
  451. package/coverage/lcov-report/searching/index.html +0 -116
  452. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  453. package/coverage/lcov-report/sorter.js +0 -196
  454. package/coverage/lcov-report/src/card/Card.tsx.html +0 -349
  455. package/coverage/lcov-report/src/card/CardSubtitle.tsx.html +0 -277
  456. package/coverage/lcov-report/src/card/index.html +0 -146
  457. package/coverage/lcov-report/src/card/styles.ts.html +0 -682
  458. package/coverage/lcov-report/src/cssUtils.ts.html +0 -787
  459. package/coverage/lcov-report/src/index.html +0 -116
  460. package/coverage/lcov-report/src/transition/index.html +0 -116
  461. package/coverage/lcov-report/src/transition/useCSSTransition.ts.html +0 -766
  462. package/coverage/lcov-report/transition/index.html +0 -116
  463. package/coverage/lcov-report/transition/useCSSTransition.ts.html +0 -766
  464. package/coverage/lcov-report/typography/SrOnly.tsx.html +0 -325
  465. package/coverage/lcov-report/typography/index.html +0 -116
  466. package/coverage/lcov-report/utils.ts.html +0 -1225
  467. package/coverage/lcov.info +0 -952
  468. package/jest.config.ts +0 -68
  469. package/jest.setup.ts +0 -3
  470. package/scripts/copySassFiles.ts +0 -70
  471. package/scripts/getExportMap.ts +0 -66
  472. package/scripts/tsconfig.json +0 -18
  473. package/src/__tests__/NoSsr.node.tsx +0 -26
  474. package/src/__tests__/NoSsr.tsx +0 -89
  475. package/src/__tests__/RootHtml.node.tsx +0 -46
  476. package/src/__tests__/__snapshots__/RootHtml.node.tsx.snap +0 -19
  477. package/src/__tests__/useAsyncFunction.tsx +0 -124
  478. package/src/__tests__/useDebouncedFunction.tsx +0 -108
  479. package/src/__tests__/useDropzone.tsx +0 -131
  480. package/src/__tests__/useElementSize.tsx +0 -181
  481. package/src/__tests__/useEnsuredId.tsx +0 -25
  482. package/src/__tests__/useEnsuredState.tsx +0 -74
  483. package/src/__tests__/useHtmlClassName.tsx +0 -54
  484. package/src/__tests__/useLocalStorage.tsx +0 -377
  485. package/src/__tests__/useOrientation.node.tsx +0 -20
  486. package/src/__tests__/useOrientation.tsx +0 -63
  487. package/src/__tests__/useResizeObserver.tsx +0 -258
  488. package/src/__tests__/useThrottledFunction.tsx +0 -226
  489. package/src/__tests__/useToggle.tsx +0 -78
  490. package/src/__tests__/useWindowSize.node.tsx +0 -56
  491. package/src/__tests__/useWindowSize.tsx +0 -155
  492. package/src/_box-shadows.scss +0 -219
  493. package/src/_core.scss +0 -432
  494. package/src/_utils.scss +0 -348
  495. package/src/app-bar/__tests__/AppBar.tsx +0 -121
  496. package/src/app-bar/__tests__/AppBarTitle.tsx +0 -39
  497. package/src/app-bar/__tests__/__snapshots__/AppBar.tsx.snap +0 -186
  498. package/src/app-bar/__tests__/__snapshots__/AppBarTitle.tsx.snap +0 -47
  499. package/src/app-bar/_app-bar.scss +0 -248
  500. package/src/autocomplete/__tests__/Autocomplete.tsx +0 -458
  501. package/src/autocomplete/__tests__/__snapshots__/Autocomplete.tsx.snap +0 -144
  502. package/src/autocomplete/_autocomplete.scss +0 -75
  503. package/src/avatar/__tests__/Avatar.tsx +0 -75
  504. package/src/avatar/__tests__/__snapshots__/Avatar.tsx.snap +0 -73
  505. package/src/avatar/_avatar.scss +0 -157
  506. package/src/badge/__tests__/Badge.tsx +0 -42
  507. package/src/badge/__tests__/__snapshots__/Badge.tsx.snap +0 -54
  508. package/src/badge/_badge.scss +0 -145
  509. package/src/box/__tests__/Box.tsx +0 -158
  510. package/src/box/__tests__/__snapshots__/Box.tsx.snap +0 -544
  511. package/src/box/_box.scss +0 -168
  512. package/src/button/__tests__/AsyncButton.tsx +0 -211
  513. package/src/button/__tests__/Button.tsx +0 -198
  514. package/src/button/__tests__/ButtonUnstyled.tsx +0 -37
  515. package/src/button/__tests__/TooltippedButton.tsx +0 -60
  516. package/src/button/__tests__/__snapshots__/AsyncButton.tsx.snap +0 -418
  517. package/src/button/__tests__/__snapshots__/Button.tsx.snap +0 -573
  518. package/src/button/__tests__/__snapshots__/ButtonUnstyled.tsx.snap +0 -22
  519. package/src/button/__tests__/__snapshots__/TooltippedButton.tsx.snap +0 -26
  520. package/src/button/__tests__/__snapshots__/buttonStyles.ts.snap +0 -11
  521. package/src/button/__tests__/buttonStyles.ts +0 -15
  522. package/src/button/_button.scss +0 -330
  523. package/src/card/__tests__/Card.tsx +0 -37
  524. package/src/card/__tests__/CardContent.tsx +0 -40
  525. package/src/card/__tests__/CardFooter.tsx +0 -34
  526. package/src/card/__tests__/CardHeader.tsx +0 -66
  527. package/src/card/__tests__/CardSubtitle.tsx +0 -30
  528. package/src/card/__tests__/CardTitle.tsx +0 -30
  529. package/src/card/__tests__/ClickableCard.tsx +0 -66
  530. package/src/card/__tests__/__snapshots__/Card.tsx.snap +0 -40
  531. package/src/card/__tests__/__snapshots__/CardContent.tsx.snap +0 -50
  532. package/src/card/__tests__/__snapshots__/CardFooter.tsx.snap +0 -30
  533. package/src/card/__tests__/__snapshots__/CardHeader.tsx.snap +0 -74
  534. package/src/card/__tests__/__snapshots__/CardSubtitle.tsx.snap +0 -18
  535. package/src/card/__tests__/__snapshots__/CardTitle.tsx.snap +0 -18
  536. package/src/card/__tests__/__snapshots__/ClickableCard.tsx.snap +0 -20
  537. package/src/card/__tests__/__snapshots__/styles.ts.snap +0 -13
  538. package/src/card/__tests__/styles.ts +0 -45
  539. package/src/card/_card.scss +0 -189
  540. package/src/chip/__tests__/Chip.tsx +0 -327
  541. package/src/chip/__tests__/__snapshots__/Chip.tsx.snap +0 -597
  542. package/src/chip/__tests__/__snapshots__/styles.ts.snap +0 -5
  543. package/src/chip/__tests__/styles.ts +0 -14
  544. package/src/chip/_chip.scss +0 -324
  545. package/src/dialog/__tests__/Dialog.tsx +0 -316
  546. package/src/dialog/__tests__/DialogContent.tsx +0 -53
  547. package/src/dialog/__tests__/DialogFooter.tsx +0 -70
  548. package/src/dialog/__tests__/DialogHeader.tsx +0 -37
  549. package/src/dialog/__tests__/DialogTitle.tsx +0 -41
  550. package/src/dialog/__tests__/__snapshots__/Dialog.tsx.snap +0 -84
  551. package/src/dialog/__tests__/__snapshots__/DialogContent.tsx.snap +0 -36
  552. package/src/dialog/__tests__/__snapshots__/DialogFooter.tsx.snap +0 -186
  553. package/src/dialog/__tests__/__snapshots__/DialogHeader.tsx.snap +0 -18
  554. package/src/dialog/__tests__/__snapshots__/DialogTitle.tsx.snap +0 -26
  555. package/src/dialog/_dialog.scss +0 -273
  556. package/src/divider/__tests__/Divider.tsx +0 -36
  557. package/src/divider/__tests__/__snapshots__/Divider.tsx.snap +0 -26
  558. package/src/divider/_divider.scss +0 -124
  559. package/src/draggable/__tests__/__snapshots__/useDraggable.tsx.snap +0 -49
  560. package/src/draggable/__tests__/useDraggable.tsx +0 -540
  561. package/src/draggable/_draggable.scss +0 -29
  562. package/src/expansion-panel/__tests__/ExpansionPanel.tsx +0 -290
  563. package/src/expansion-panel/__tests__/__snapshots__/ExpansionPanel.tsx.snap +0 -197
  564. package/src/expansion-panel/_expansion-panel.scss +0 -107
  565. package/src/focus/__tests__/useFocusContainer.tsx +0 -280
  566. package/src/form/__tests__/Checkbox.tsx +0 -42
  567. package/src/form/__tests__/Fieldset.tsx +0 -44
  568. package/src/form/__tests__/FileInput.tsx +0 -120
  569. package/src/form/__tests__/Label.tsx +0 -69
  570. package/src/form/__tests__/Legend.tsx +0 -34
  571. package/src/form/__tests__/MenuItemCheckbox.tsx +0 -53
  572. package/src/form/__tests__/MenuItemRadio.tsx +0 -53
  573. package/src/form/__tests__/Radio.tsx +0 -35
  574. package/src/form/__tests__/Select.tsx +0 -439
  575. package/src/form/__tests__/Switch.tsx +0 -152
  576. package/src/form/__tests__/TextArea.tsx +0 -433
  577. package/src/form/__tests__/TextField.tsx +0 -195
  578. package/src/form/__tests__/__snapshots__/Checkbox.tsx.snap +0 -99
  579. package/src/form/__tests__/__snapshots__/Fieldset.tsx.snap +0 -58
  580. package/src/form/__tests__/__snapshots__/FileInput.tsx.snap +0 -612
  581. package/src/form/__tests__/__snapshots__/Label.tsx.snap +0 -140
  582. package/src/form/__tests__/__snapshots__/Legend.tsx.snap +0 -30
  583. package/src/form/__tests__/__snapshots__/MenuItemCheckbox.tsx.snap +0 -96
  584. package/src/form/__tests__/__snapshots__/MenuItemRadio.tsx.snap +0 -96
  585. package/src/form/__tests__/__snapshots__/Radio.tsx.snap +0 -99
  586. package/src/form/__tests__/__snapshots__/Select.tsx.snap +0 -492
  587. package/src/form/__tests__/__snapshots__/Switch.tsx.snap +0 -428
  588. package/src/form/__tests__/__snapshots__/TextArea.tsx.snap +0 -548
  589. package/src/form/__tests__/__snapshots__/TextField.tsx.snap +0 -279
  590. package/src/form/__tests__/__snapshots__/useCheckboxGroup.tsx.snap +0 -481
  591. package/src/form/__tests__/__snapshots__/useRadioGroup.tsx.snap +0 -704
  592. package/src/form/__tests__/useCheckboxGroup.tsx +0 -292
  593. package/src/form/__tests__/useFileUpload.tsx +0 -289
  594. package/src/form/__tests__/useFormReset.tsx +0 -194
  595. package/src/form/__tests__/useRadioGroup.tsx +0 -227
  596. package/src/form/__tests__/utils.ts +0 -247
  597. package/src/form/_form.scss +0 -2190
  598. package/src/icon/__tests__/FontIcon.tsx +0 -45
  599. package/src/icon/__tests__/IconRotator.tsx +0 -120
  600. package/src/icon/__tests__/MaterialIcon.tsx +0 -79
  601. package/src/icon/__tests__/MaterialSymbol.tsx +0 -100
  602. package/src/icon/__tests__/SVGIcon.tsx +0 -40
  603. package/src/icon/__tests__/TextIconSpacing.tsx +0 -108
  604. package/src/icon/__tests__/__snapshots__/FontIcon.tsx.snap +0 -35
  605. package/src/icon/__tests__/__snapshots__/IconRotator.tsx.snap +0 -165
  606. package/src/icon/__tests__/__snapshots__/MaterialIcon.tsx.snap +0 -82
  607. package/src/icon/__tests__/__snapshots__/MaterialSymbol.tsx.snap +0 -42
  608. package/src/icon/__tests__/__snapshots__/SVGIcon.tsx.snap +0 -47
  609. package/src/icon/__tests__/__snapshots__/TextIconSpacing.tsx.snap +0 -101
  610. package/src/icon/__tests__/__snapshots__/styles.ts.snap +0 -29
  611. package/src/icon/__tests__/styles.ts +0 -28
  612. package/src/icon/_icon.scss +0 -213
  613. package/src/interaction/__tests__/UserInteractionModeProvider.tsx +0 -121
  614. package/src/interaction/__tests__/__snapshots__/useHigherContrastChildren.tsx.snap +0 -79
  615. package/src/interaction/__tests__/useHigherContrastChildren.tsx +0 -97
  616. package/src/interaction/_interaction.scss +0 -436
  617. package/src/layout/__tests__/LayoutAppBar.tsx +0 -117
  618. package/src/layout/__tests__/LayoutNav.tsx +0 -78
  619. package/src/layout/__tests__/LayoutWindowSplitter.tsx +0 -63
  620. package/src/layout/__tests__/Main.tsx +0 -51
  621. package/src/layout/__tests__/__snapshots__/LayoutAppBar.tsx.snap +0 -78
  622. package/src/layout/__tests__/__snapshots__/LayoutNav.tsx.snap +0 -31
  623. package/src/layout/__tests__/__snapshots__/LayoutWindowSplitter.tsx.snap +0 -60
  624. package/src/layout/__tests__/__snapshots__/Main.tsx.snap +0 -32
  625. package/src/layout/__tests__/__snapshots__/useExpandableLayout.tsx.snap +0 -116
  626. package/src/layout/__tests__/__snapshots__/useLayoutTree.tsx.snap +0 -676
  627. package/src/layout/__tests__/__snapshots__/useResizableLayout.tsx.snap +0 -95
  628. package/src/layout/__tests__/__snapshots__/useTemporaryLayout.tsx.snap +0 -141
  629. package/src/layout/__tests__/useExpandableLayout.tsx +0 -279
  630. package/src/layout/__tests__/useLayoutTree.tsx +0 -212
  631. package/src/layout/__tests__/useResizableLayout.tsx +0 -170
  632. package/src/layout/__tests__/useTemporaryLayout.tsx +0 -109
  633. package/src/layout/_layout.scss +0 -163
  634. package/src/link/__tests__/Link.tsx +0 -31
  635. package/src/link/__tests__/SkipToMainContent.tsx +0 -125
  636. package/src/link/__tests__/__snapshots__/Link.tsx.snap +0 -20
  637. package/src/link/__tests__/__snapshots__/SkipToMainContent.tsx.snap +0 -22
  638. package/src/link/_link.scss +0 -149
  639. package/src/list/__tests__/List.tsx +0 -58
  640. package/src/list/__tests__/ListItem.tsx +0 -280
  641. package/src/list/__tests__/ListItemLink.tsx +0 -89
  642. package/src/list/__tests__/ListSubheader.tsx +0 -81
  643. package/src/list/__tests__/__snapshots__/List.tsx.snap +0 -41
  644. package/src/list/__tests__/__snapshots__/ListItem.tsx.snap +0 -414
  645. package/src/list/__tests__/__snapshots__/ListItemLink.tsx.snap +0 -73
  646. package/src/list/__tests__/__snapshots__/ListSubheader.tsx.snap +0 -99
  647. package/src/list/__tests__/getListItemHeight.ts +0 -176
  648. package/src/list/_list.scss +0 -322
  649. package/src/media-queries/__tests__/AppSizeProvider.node.tsx +0 -37
  650. package/src/media-queries/__tests__/AppSizeProvider.tsx +0 -119
  651. package/src/media-queries/__tests__/useMediaQuery.node.tsx +0 -20
  652. package/src/media-queries/__tests__/useMediaQuery.tsx +0 -59
  653. package/src/media-queries/_media-queries.scss +0 -63
  654. package/src/menu/__tests__/DropdownMenu.tsx +0 -627
  655. package/src/menu/__tests__/MenuBar.tsx +0 -354
  656. package/src/menu/__tests__/MenuItemCircularProgress.tsx +0 -39
  657. package/src/menu/__tests__/MenuVisibilityProvider.tsx +0 -34
  658. package/src/menu/__tests__/__snapshots__/DropdownMenu.tsx.snap +0 -292
  659. package/src/menu/__tests__/__snapshots__/MenuBar.tsx.snap +0 -87
  660. package/src/menu/__tests__/__snapshots__/MenuItemCircularProgress.tsx.snap +0 -68
  661. package/src/menu/__tests__/__snapshots__/useContextMenu.tsx.snap +0 -54
  662. package/src/menu/__tests__/useContextMenu.tsx +0 -41
  663. package/src/menu/__tests__/utils.ts +0 -121
  664. package/src/menu/_menu.scss +0 -116
  665. package/src/movement/__tests__/findMatchIndex.ts +0 -244
  666. package/src/movement/__tests__/utils.ts +0 -710
  667. package/src/navigation/__tests__/Navigation.tsx +0 -97
  668. package/src/navigation/__tests__/__snapshots__/Navigation.tsx.snap +0 -165
  669. package/src/navigation/_navigation.scss +0 -99
  670. package/src/overlay/__tests__/Overlay.tsx +0 -198
  671. package/src/overlay/__tests__/__snapshots__/Overlay.tsx.snap +0 -77
  672. package/src/overlay/_overlay.scss +0 -74
  673. package/src/portal/__tests__/PortalContainerProvider.node.tsx +0 -26
  674. package/src/portal/__tests__/PortalContainerProvider.tsx +0 -84
  675. package/src/positioning/__tests__/__snapshots__/useFixedPositioning.tsx.snap +0 -87
  676. package/src/positioning/__tests__/createHorizontalPosition.ts +0 -777
  677. package/src/positioning/__tests__/createVerticalPosition.ts +0 -464
  678. package/src/positioning/__tests__/useFixedPositioning.tsx +0 -205
  679. package/src/positioning/__tests__/utils.ts +0 -1311
  680. package/src/progress/__tests__/CircularProgress.tsx +0 -153
  681. package/src/progress/__tests__/LinearProgress.tsx +0 -131
  682. package/src/progress/__tests__/__snapshots__/CircularProgress.tsx.snap +0 -499
  683. package/src/progress/__tests__/__snapshots__/LinearProgress.tsx.snap +0 -321
  684. package/src/progress/__tests__/getProgressA11y.ts +0 -16
  685. package/src/progress/_progress.scss +0 -577
  686. package/src/responsive-item/__tests__/ResponsiveItemContainer.tsx +0 -56
  687. package/src/responsive-item/__tests__/ResponsiveItemOverlay.tsx +0 -66
  688. package/src/responsive-item/__tests__/__snapshots__/ResponsiveItemContainer.tsx.snap +0 -85
  689. package/src/responsive-item/__tests__/__snapshots__/ResponsiveItemOverlay.tsx.snap +0 -151
  690. package/src/responsive-item/__tests__/__snapshots__/styles.ts.snap +0 -9
  691. package/src/responsive-item/__tests__/styles.ts +0 -32
  692. package/src/responsive-item/_responsive-item.scss +0 -199
  693. package/src/searching/__tests__/caseInsensitive.ts +0 -165
  694. package/src/searching/__tests__/fuzzy.ts +0 -169
  695. package/src/searching/__tests__/toSearchQuery.ts +0 -21
  696. package/src/searching/__tests__/useFuzzyMatch.tsx +0 -200
  697. package/src/segmented-button/__tests__/SegmentedButton.tsx +0 -61
  698. package/src/segmented-button/__tests__/SegmentedButtonContainer.tsx +0 -38
  699. package/src/segmented-button/__tests__/__snapshots__/SegmentedButton.tsx.snap +0 -116
  700. package/src/segmented-button/__tests__/__snapshots__/SegmentedButtonContainer.tsx.snap +0 -22
  701. package/src/segmented-button/_segmented-button.scss +0 -208
  702. package/src/sheet/_sheet.scss +0 -189
  703. package/src/snackbar/__tests__/Snackbar.tsx +0 -85
  704. package/src/snackbar/__tests__/Toast.tsx +0 -105
  705. package/src/snackbar/__tests__/ToastActionButton.tsx +0 -112
  706. package/src/snackbar/__tests__/ToastCloseButton.tsx +0 -140
  707. package/src/snackbar/__tests__/ToastContent.tsx +0 -88
  708. package/src/snackbar/__tests__/ToastManagerProvider.tsx +0 -852
  709. package/src/snackbar/__tests__/__snapshots__/Snackbar.tsx.snap +0 -176
  710. package/src/snackbar/__tests__/__snapshots__/Toast.tsx.snap +0 -52
  711. package/src/snackbar/__tests__/__snapshots__/ToastActionButton.tsx.snap +0 -36
  712. package/src/snackbar/__tests__/__snapshots__/ToastCloseButton.tsx.snap +0 -104
  713. package/src/snackbar/__tests__/__snapshots__/ToastContent.tsx.snap +0 -26
  714. package/src/snackbar/__tests__/__snapshots__/ToastManagerProvider.tsx.snap +0 -290
  715. package/src/snackbar/_snackbar.scss +0 -266
  716. package/src/suspense/__tests__/CircularProgressSuspense.tsx +0 -90
  717. package/src/suspense/__tests__/NullSuspense.tsx +0 -46
  718. package/src/suspense/__tests__/__snapshots__/CircularProgressSuspense.tsx.snap +0 -24
  719. package/src/table/__tests__/Table.tsx +0 -315
  720. package/src/table/__tests__/TableBody.tsx +0 -52
  721. package/src/table/__tests__/TableCheckbox.tsx +0 -89
  722. package/src/table/__tests__/TableContainer.tsx +0 -31
  723. package/src/table/__tests__/TableRadio.tsx +0 -112
  724. package/src/table/__tests__/TableRow.tsx +0 -63
  725. package/src/table/__tests__/__snapshots__/Table.tsx.snap +0 -2426
  726. package/src/table/__tests__/__snapshots__/TableBody.tsx.snap +0 -54
  727. package/src/table/__tests__/__snapshots__/TableCheckbox.tsx.snap +0 -142
  728. package/src/table/__tests__/__snapshots__/TableContainer.tsx.snap +0 -16
  729. package/src/table/__tests__/__snapshots__/TableRadio.tsx.snap +0 -138
  730. package/src/table/__tests__/__snapshots__/TableRow.tsx.snap +0 -56
  731. package/src/table/__tests__/__snapshots__/tableContainerStyles.ts.snap +0 -3
  732. package/src/table/__tests__/__snapshots__/tableRowStyles.ts.snap +0 -3
  733. package/src/table/__tests__/__snapshots__/tableStyles.ts.snap +0 -3
  734. package/src/table/__tests__/tableContainerStyles.ts +0 -8
  735. package/src/table/__tests__/tableRowStyles.ts +0 -8
  736. package/src/table/__tests__/tableStyles.ts +0 -8
  737. package/src/table/_table.scss +0 -447
  738. package/src/tabs/__tests__/Tab.tsx +0 -51
  739. package/src/tabs/__tests__/TabList.tsx +0 -640
  740. package/src/tabs/__tests__/__snapshots__/Tab.tsx.snap +0 -85
  741. package/src/tabs/__tests__/__snapshots__/TabList.tsx.snap +0 -51
  742. package/src/tabs/__tests__/useTabs.tsx +0 -212
  743. package/src/tabs/_tabs.scss +0 -273
  744. package/src/test-utils/__tests__/ResizeObserver.ts +0 -171
  745. package/src/theme/__tests__/LocalStorageColorSchemeProvider.tsx +0 -162
  746. package/src/theme/__tests__/ThemeProvider.tsx +0 -90
  747. package/src/theme/__tests__/__snapshots__/useCSSVariables.tsx.snap +0 -27
  748. package/src/theme/__tests__/__snapshots__/useColorSchemeMetaTag.tsx.snap +0 -15
  749. package/src/theme/__tests__/useCSSVariables.tsx +0 -177
  750. package/src/theme/__tests__/useColorSchemeMetaTag.tsx +0 -36
  751. package/src/theme/__tests__/utils.ts +0 -67
  752. package/src/theme/_a11y.scss +0 -114
  753. package/src/theme/_colors.scss +0 -1057
  754. package/src/theme/_theme.scss +0 -520
  755. package/src/tooltip/__tests__/Tooltip.tsx +0 -501
  756. package/src/tooltip/__tests__/TooltipHoverModeProvider.tsx +0 -94
  757. package/src/tooltip/__tests__/__snapshots__/Tooltip.tsx.snap +0 -34
  758. package/src/tooltip/__tests__/utils.ts +0 -94
  759. package/src/tooltip/_tooltip.scss +0 -155
  760. package/src/transition/__tests__/CSSTransition.tsx +0 -182
  761. package/src/transition/__tests__/Collapse.tsx +0 -209
  762. package/src/transition/__tests__/CrossFade.tsx +0 -227
  763. package/src/transition/__tests__/ScaleTransition.tsx +0 -204
  764. package/src/transition/__tests__/SkeletonPlaceholder.tsx +0 -72
  765. package/src/transition/__tests__/__snapshots__/CSSTransition.tsx.snap +0 -145
  766. package/src/transition/__tests__/__snapshots__/Collapse.tsx.snap +0 -224
  767. package/src/transition/__tests__/__snapshots__/CrossFade.tsx.snap +0 -240
  768. package/src/transition/__tests__/__snapshots__/ScaleTransition.tsx.snap +0 -239
  769. package/src/transition/__tests__/__snapshots__/SkeletonPlaceholder.tsx.snap +0 -24
  770. package/src/transition/__tests__/__snapshots__/useCollapseTransition.tsx.snap +0 -361
  771. package/src/transition/__tests__/__snapshots__/useCrossFadeTransition.tsx.snap +0 -258
  772. package/src/transition/__tests__/__snapshots__/useMaxWidthTransition.tsx.snap +0 -68
  773. package/src/transition/__tests__/__snapshots__/useScaleTransition.tsx.snap +0 -209
  774. package/src/transition/__tests__/useCSSTransition.tsx +0 -190
  775. package/src/transition/__tests__/useCollapseTransition.tsx +0 -316
  776. package/src/transition/__tests__/useCrossFadeTransition.tsx +0 -229
  777. package/src/transition/__tests__/useMaxWidthTransition.tsx +0 -123
  778. package/src/transition/__tests__/useScaleTransition.tsx +0 -212
  779. package/src/transition/__tests__/useTransition.tsx +0 -569
  780. package/src/transition/__tests__/utils.ts +0 -620
  781. package/src/transition/_transition.scss +0 -365
  782. package/src/tree/__tests__/Tree.tsx +0 -735
  783. package/src/tree/__tests__/TreeGroup.tsx +0 -76
  784. package/src/tree/__tests__/TreeItemExpander.tsx +0 -74
  785. package/src/tree/__tests__/__snapshots__/Tree.tsx.snap +0 -3618
  786. package/src/tree/__tests__/__snapshots__/TreeItemExpander.tsx.snap +0 -11
  787. package/src/tree/__tests__/utils.ts +0 -98
  788. package/src/tree/_tree.scss +0 -176
  789. package/src/typography/__tests__/SrOnly.tsx +0 -43
  790. package/src/typography/__tests__/TextContainer.tsx +0 -45
  791. package/src/typography/__tests__/Typography.tsx +0 -87
  792. package/src/typography/__tests__/WritingDirectionProvider.node.tsx +0 -27
  793. package/src/typography/__tests__/WritingDirectionProvider.tsx +0 -119
  794. package/src/typography/__tests__/__snapshots__/SrOnly.tsx.snap +0 -56
  795. package/src/typography/__tests__/__snapshots__/TextContainer.tsx.snap +0 -29
  796. package/src/typography/__tests__/__snapshots__/Typography.tsx.snap +0 -112
  797. package/src/typography/_typography.scss +0 -399
  798. package/src/utils/__tests__/RenderRecursively.tsx +0 -87
  799. package/src/utils/__tests__/__snapshots__/RenderRecursively.tsx.snap +0 -80
  800. package/src/utils/__tests__/applyRef.ts +0 -30
  801. package/src/utils/__tests__/bem.ts +0 -54
  802. package/src/utils/__tests__/getMiddleOfRange.ts +0 -12
  803. package/src/utils/__tests__/getPercentage.ts +0 -104
  804. package/src/utils/__tests__/getRangeDefaultValue.ts +0 -47
  805. package/src/utils/__tests__/getRangeSteps.ts +0 -14
  806. package/src/utils/__tests__/loop.ts +0 -50
  807. package/src/utils/__tests__/nearest.ts +0 -83
  808. package/src/utils/__tests__/parseCssLengthUnit.node.ts +0 -28
  809. package/src/utils/__tests__/parseCssLengthUnit.ts +0 -47
  810. package/src/utils/__tests__/wait.ts +0 -12
  811. package/src/utils/__tests__/withinRange.ts +0 -24
  812. package/src/window-splitter/_window-splitter.scss +0 -143
  813. package/tsconfig.json +0 -19
  814. package/tsconfig.types.json +0 -12
  815. package/tsdoc.json +0 -14
@@ -56,8 +56,8 @@ export declare function slideContainer(options: SlideContainerClassNameOptions):
56
56
  export interface SlideContainerProps extends HTMLAttributes<HTMLDivElement>, SlideContainerClassNameOptions {
57
57
  }
58
58
  /**
59
- * **Server Component**
60
- * This is a server component, but generally relies on state so probably a client component.
59
+ * The `SlideContainer` is used to enable a slide transition when child `Slide`
60
+ * components change.
61
61
  *
62
62
  * @example Simple Example
63
63
  * ```tsx
@@ -102,52 +102,6 @@ export interface SlideContainerProps extends HTMLAttributes<HTMLDivElement>, Sli
102
102
  * }
103
103
  * ```
104
104
  *
105
- * @example Persistent Slides
106
- * ```tsx
107
- * import type { SlideDirection } from "@react-md/core";
108
- * import { SlideContainer, Slide } from "@react-md/core";
109
- * import type { ReactElement, ReactNode } from "react";
110
- * import { useState } from "react";
111
- *
112
- * interface State {
113
- * direction: SlideDirection;
114
- * activeIndex: number;
115
- * }
116
- *
117
- * function Example(): ReactElement {
118
- * const [state, setState] = useState<State>({
119
- * direction: "left",
120
- * activeIndex: 0,
121
- * });
122
- * const { direction, activeIndex } = state;
123
- *
124
- * // when changing a slide, `direction` should be set to "left" if the
125
- * // previous `activeIndex` is less than the next index
126
- * //
127
- * // i.e.
128
- * // setState((prevState) => ({
129
- * // direction: prevState.activeIndex < index ? "left" : "right",
130
- * // activeIndex: index,
131
- * // }))
132
- *
133
- * // enabling `persistent` makes it so that the `<Slide>` never unmounts so
134
- * // that state can be maintained while it is not active.
135
- * return (
136
- * <SlideContainer direction={direction}>
137
- * <Slide active={activeIndex === 0} persistent>
138
- * Slide 1
139
- * </Slide>
140
- * <Slide active={activeIndex === 1} persistent>
141
- * Slide 2
142
- * </Slide>
143
- * <Slide active={activeIndex === 2} persistent>
144
- * Slide 3
145
- * </Slide>
146
- * </SlideContainer>
147
- * );
148
- * }
149
- * ```
150
- *
151
105
  * @since 6.0.0
152
106
  */
153
107
  export declare const SlideContainer: import("react").ForwardRefExoticComponent<SlideContainerProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -13,8 +13,8 @@ const styles = bem("rmd-slide-container");
13
13
  }), className);
14
14
  }
15
15
  /**
16
- * **Server Component**
17
- * This is a server component, but generally relies on state so probably a client component.
16
+ * The `SlideContainer` is used to enable a slide transition when child `Slide`
17
+ * components change.
18
18
  *
19
19
  * @example Simple Example
20
20
  * ```tsx
@@ -59,52 +59,6 @@ const styles = bem("rmd-slide-container");
59
59
  * }
60
60
  * ```
61
61
  *
62
- * @example Persistent Slides
63
- * ```tsx
64
- * import type { SlideDirection } from "@react-md/core";
65
- * import { SlideContainer, Slide } from "@react-md/core";
66
- * import type { ReactElement, ReactNode } from "react";
67
- * import { useState } from "react";
68
- *
69
- * interface State {
70
- * direction: SlideDirection;
71
- * activeIndex: number;
72
- * }
73
- *
74
- * function Example(): ReactElement {
75
- * const [state, setState] = useState<State>({
76
- * direction: "left",
77
- * activeIndex: 0,
78
- * });
79
- * const { direction, activeIndex } = state;
80
- *
81
- * // when changing a slide, `direction` should be set to "left" if the
82
- * // previous `activeIndex` is less than the next index
83
- * //
84
- * // i.e.
85
- * // setState((prevState) => ({
86
- * // direction: prevState.activeIndex < index ? "left" : "right",
87
- * // activeIndex: index,
88
- * // }))
89
- *
90
- * // enabling `persistent` makes it so that the `<Slide>` never unmounts so
91
- * // that state can be maintained while it is not active.
92
- * return (
93
- * <SlideContainer direction={direction}>
94
- * <Slide active={activeIndex === 0} persistent>
95
- * Slide 1
96
- * </Slide>
97
- * <Slide active={activeIndex === 1} persistent>
98
- * Slide 2
99
- * </Slide>
100
- * <Slide active={activeIndex === 2} persistent>
101
- * Slide 3
102
- * </Slide>
103
- * </SlideContainer>
104
- * );
105
- * }
106
- * ```
107
- *
108
62
  * @since 6.0.0
109
63
  */ export const SlideContainer = /*#__PURE__*/ forwardRef(function SlideContainer(props, ref) {
110
64
  const { className, direction, children, ...remaining } = props;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/transition/SlideContainer.tsx"],"sourcesContent":["import { cnb } from \"cnbuilder\";\nimport { forwardRef, type HTMLAttributes } from \"react\";\nimport { bem } from \"../utils/bem.js\";\n\nconst styles = bem(\"rmd-slide-container\");\n\n/**\n * @example Direction \"left\"\n * ```\n * -------------\n * | |\n * | Slide 1 | Slide 2\n * | |\n * -------------\n * -------------\n * | |\n * Slide 1 Slide 2\n * | |\n * -------------\n * -------------\n * | |\n * Slide 1 | Slide 2 |\n * | |\n * -------------\n * ```\n *\n * @example Direction \"right\"\n * ```\n * -------------\n * | |\n * Slide 1 | Slide 2 |\n * | |\n * -------------\n * -------------\n * | |\n * Slide 1 Slide 2\n * | |\n * -------------\n * -------------\n * | |\n * | Slide 1 | Slide 2\n * | |\n * -------------\n * ```\n *\n * @since 6.0.0\n */\nexport type SlideDirection = \"left\" | \"right\";\n\n/** @since 6.0.0 */\nexport interface SlideContainerClassNameOptions {\n className?: string;\n\n /** @see {@link SlideDirection} */\n direction: SlideDirection;\n}\n\n/**\n * @see {@link useSlideTransition} for an example\n * @since 6.0.0\n */\nexport function slideContainer(\n options: SlideContainerClassNameOptions\n): string {\n const { className, direction } = options;\n\n return cnb(styles({ [direction]: true }), className);\n}\n\n/** @since 6.0.0 */\nexport interface SlideContainerProps\n extends HTMLAttributes<HTMLDivElement>,\n SlideContainerClassNameOptions {}\n\n/**\n * **Server Component**\n * This is a server component, but generally relies on state so probably a client component.\n *\n * @example Simple Example\n * ```tsx\n * import { SlideContainer, Slide } from \"@react-md/core\";\n * import type { ReactElement, ReactNode } from \"react\";\n * import { useState } from \"react\";\n *\n * interface State {\n * direction: SlideDirection;\n * activeIndex: number;\n * }\n *\n * function Example(): ReactElement {\n * const [state, setState] = useState<State>({\n * direction: \"left\",\n * activeIndex: 0,\n * });\n * const { direction, activeIndex } = state;\n *\n * // when changing a slide, `direction` should be set to \"left\" if the\n * // previous `activeIndex` is less than the next index\n * //\n * // i.e.\n * // setState((prevState) => ({\n * // direction: prevState.activeIndex < index ? \"left\" : \"right\",\n * // activeIndex: index,\n * // }))\n *\n * return (\n * <SlideContainer direction={direction}>\n * <Slide active={activeIndex === 0}>\n * Slide 1\n * </Slide>\n * <Slide active={activeIndex === 1}>\n * Slide 2\n * </Slide>\n * <Slide active={activeIndex === 2}>\n * Slide 3\n * </Slide>\n * </SlideContainer>\n * );\n * }\n * ```\n *\n * @example Persistent Slides\n * ```tsx\n * import type { SlideDirection } from \"@react-md/core\";\n * import { SlideContainer, Slide } from \"@react-md/core\";\n * import type { ReactElement, ReactNode } from \"react\";\n * import { useState } from \"react\";\n *\n * interface State {\n * direction: SlideDirection;\n * activeIndex: number;\n * }\n *\n * function Example(): ReactElement {\n * const [state, setState] = useState<State>({\n * direction: \"left\",\n * activeIndex: 0,\n * });\n * const { direction, activeIndex } = state;\n *\n * // when changing a slide, `direction` should be set to \"left\" if the\n * // previous `activeIndex` is less than the next index\n * //\n * // i.e.\n * // setState((prevState) => ({\n * // direction: prevState.activeIndex < index ? \"left\" : \"right\",\n * // activeIndex: index,\n * // }))\n *\n * // enabling `persistent` makes it so that the `<Slide>` never unmounts so\n * // that state can be maintained while it is not active.\n * return (\n * <SlideContainer direction={direction}>\n * <Slide active={activeIndex === 0} persistent>\n * Slide 1\n * </Slide>\n * <Slide active={activeIndex === 1} persistent>\n * Slide 2\n * </Slide>\n * <Slide active={activeIndex === 2} persistent>\n * Slide 3\n * </Slide>\n * </SlideContainer>\n * );\n * }\n * ```\n *\n * @since 6.0.0\n */\nexport const SlideContainer = forwardRef<HTMLDivElement, SlideContainerProps>(\n function SlideContainer(props, ref) {\n const { className, direction, children, ...remaining } = props;\n\n return (\n <div\n {...remaining}\n ref={ref}\n className={slideContainer({ className, direction })}\n >\n {children}\n </div>\n );\n }\n);\n"],"names":["cnb","forwardRef","bem","styles","slideContainer","options","className","direction","SlideContainer","props","ref","children","remaining","div"],"mappings":";AAAA,SAASA,GAAG,QAAQ,YAAY;AAChC,SAASC,UAAU,QAA6B,QAAQ;AACxD,SAASC,GAAG,QAAQ,kBAAkB;AAEtC,MAAMC,SAASD,IAAI;AAqDnB;;;CAGC,GACD,OAAO,SAASE,eACdC,OAAuC;IAEvC,MAAM,EAAEC,SAAS,EAAEC,SAAS,EAAE,GAAGF;IAEjC,OAAOL,IAAIG,OAAO;QAAE,CAACI,UAAU,EAAE;IAAK,IAAID;AAC5C;AAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8FC,GACD,OAAO,MAAME,+BAAiBP,WAC5B,SAASO,eAAeC,KAAK,EAAEC,GAAG;IAChC,MAAM,EAAEJ,SAAS,EAAEC,SAAS,EAAEI,QAAQ,EAAE,GAAGC,WAAW,GAAGH;IAEzD,qBACE,KAACI;QACE,GAAGD,SAAS;QACbF,KAAKA;QACLJ,WAAWF,eAAe;YAAEE;YAAWC;QAAU;kBAEhDI;;AAGP,GACA"}
1
+ {"version":3,"sources":["../../src/transition/SlideContainer.tsx"],"sourcesContent":["import { cnb } from \"cnbuilder\";\nimport { forwardRef, type HTMLAttributes } from \"react\";\nimport { bem } from \"../utils/bem.js\";\n\nconst styles = bem(\"rmd-slide-container\");\n\n/**\n * @example Direction \"left\"\n * ```\n * -------------\n * | |\n * | Slide 1 | Slide 2\n * | |\n * -------------\n * -------------\n * | |\n * Slide 1 Slide 2\n * | |\n * -------------\n * -------------\n * | |\n * Slide 1 | Slide 2 |\n * | |\n * -------------\n * ```\n *\n * @example Direction \"right\"\n * ```\n * -------------\n * | |\n * Slide 1 | Slide 2 |\n * | |\n * -------------\n * -------------\n * | |\n * Slide 1 Slide 2\n * | |\n * -------------\n * -------------\n * | |\n * | Slide 1 | Slide 2\n * | |\n * -------------\n * ```\n *\n * @since 6.0.0\n */\nexport type SlideDirection = \"left\" | \"right\";\n\n/** @since 6.0.0 */\nexport interface SlideContainerClassNameOptions {\n className?: string;\n\n /** @see {@link SlideDirection} */\n direction: SlideDirection;\n}\n\n/**\n * @see {@link useSlideTransition} for an example\n * @since 6.0.0\n */\nexport function slideContainer(\n options: SlideContainerClassNameOptions\n): string {\n const { className, direction } = options;\n\n return cnb(styles({ [direction]: true }), className);\n}\n\n/** @since 6.0.0 */\nexport interface SlideContainerProps\n extends HTMLAttributes<HTMLDivElement>,\n SlideContainerClassNameOptions {}\n\n/**\n * The `SlideContainer` is used to enable a slide transition when child `Slide`\n * components change.\n *\n * @example Simple Example\n * ```tsx\n * import { SlideContainer, Slide } from \"@react-md/core\";\n * import type { ReactElement, ReactNode } from \"react\";\n * import { useState } from \"react\";\n *\n * interface State {\n * direction: SlideDirection;\n * activeIndex: number;\n * }\n *\n * function Example(): ReactElement {\n * const [state, setState] = useState<State>({\n * direction: \"left\",\n * activeIndex: 0,\n * });\n * const { direction, activeIndex } = state;\n *\n * // when changing a slide, `direction` should be set to \"left\" if the\n * // previous `activeIndex` is less than the next index\n * //\n * // i.e.\n * // setState((prevState) => ({\n * // direction: prevState.activeIndex < index ? \"left\" : \"right\",\n * // activeIndex: index,\n * // }))\n *\n * return (\n * <SlideContainer direction={direction}>\n * <Slide active={activeIndex === 0}>\n * Slide 1\n * </Slide>\n * <Slide active={activeIndex === 1}>\n * Slide 2\n * </Slide>\n * <Slide active={activeIndex === 2}>\n * Slide 3\n * </Slide>\n * </SlideContainer>\n * );\n * }\n * ```\n *\n * @since 6.0.0\n */\nexport const SlideContainer = forwardRef<HTMLDivElement, SlideContainerProps>(\n function SlideContainer(props, ref) {\n const { className, direction, children, ...remaining } = props;\n\n return (\n <div\n {...remaining}\n ref={ref}\n className={slideContainer({ className, direction })}\n >\n {children}\n </div>\n );\n }\n);\n"],"names":["cnb","forwardRef","bem","styles","slideContainer","options","className","direction","SlideContainer","props","ref","children","remaining","div"],"mappings":";AAAA,SAASA,GAAG,QAAQ,YAAY;AAChC,SAASC,UAAU,QAA6B,QAAQ;AACxD,SAASC,GAAG,QAAQ,kBAAkB;AAEtC,MAAMC,SAASD,IAAI;AAqDnB;;;CAGC,GACD,OAAO,SAASE,eACdC,OAAuC;IAEvC,MAAM,EAAEC,SAAS,EAAEC,SAAS,EAAE,GAAGF;IAEjC,OAAOL,IAAIG,OAAO;QAAE,CAACI,UAAU,EAAE;IAAK,IAAID;AAC5C;AAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDC,GACD,OAAO,MAAME,+BAAiBP,WAC5B,SAASO,eAAeC,KAAK,EAAEC,GAAG;IAChC,MAAM,EAAEJ,SAAS,EAAEC,SAAS,EAAEI,QAAQ,EAAE,GAAGC,WAAW,GAAGH;IAEzD,qBACE,KAACI;QACE,GAAGD,SAAS;QACbF,KAAKA;QACLJ,WAAWF,eAAe;YAAEE;YAAWC;QAAU;kBAEhDI;;AAGP,GACA"}
@@ -1,6 +1,5 @@
1
1
  import { type ReactElement } from "react";
2
- import { type RenderRecursiveItemsProps } from "../utils/RenderRecursively.js";
3
- import { type DefaultTreeItemNode, type TreeData, type TreeItemNode } from "./types.js";
2
+ import { type DefaultTreeItemNode, type TreeItemNode, type TreeItemRendererProps } from "./types.js";
4
3
  /**
5
4
  * **Client Component**
6
5
  *
@@ -13,4 +12,4 @@ import { type DefaultTreeItemNode, type TreeData, type TreeItemNode } from "./ty
13
12
  *
14
13
  * @since 6.0.0
15
14
  */
16
- export declare function DefaultTreeItemRenderer<T extends TreeItemNode = DefaultTreeItemNode>(props: RenderRecursiveItemsProps<T, TreeData<T>>): ReactElement;
15
+ export declare function DefaultTreeItemRenderer<T extends TreeItemNode = DefaultTreeItemNode>(props: TreeItemRendererProps<T>): ReactElement;
@@ -12,7 +12,7 @@ import { TreeItem } from "./TreeItem.js";
12
12
  *
13
13
  * @since 6.0.0
14
14
  */ export function DefaultTreeItemRenderer(props) {
15
- const { item: _item, parents, children: childItems } = props;
15
+ const { parents, children: childItems } = props;
16
16
  const item = props.item;
17
17
  const { itemId, to, href, disabled, className, contentClassName, leftAddon, leftAddonType, leftAddonPosition, leftAddonClassName, leftAddonForceWrap, rightAddon, rightAddonType, rightAddonPosition, rightAddonClassName, rightAddonForceWrap, disableLeftAddonCenteredMedia, disableRightAddonCenteredMedia } = item;
18
18
  const children = item.name ?? item.children;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tree/DefaultTreeItemRenderer.tsx"],"sourcesContent":["import { type ReactElement } from \"react\";\nimport { type RenderRecursiveItemsProps } from \"../utils/RenderRecursively.js\";\nimport { TreeItem } from \"./TreeItem.js\";\nimport {\n type DefaultTreeItemNode,\n type TreeData,\n type TreeItemNode,\n} from \"./types.js\";\n\n/**\n * **Client Component**\n *\n * A reasonable default for rendering tree items that will extract all the\n * `ListItemChildrenProps` from the item and attempt to pass them into the\n * `TreeItem`.\n *\n * Look at the `Tree` component for an example of creating a custom\n * implementation.\n *\n * @since 6.0.0\n */\nexport function DefaultTreeItemRenderer<\n T extends TreeItemNode = DefaultTreeItemNode,\n>(props: RenderRecursiveItemsProps<T, TreeData<T>>): ReactElement {\n const { item: _item, parents, children: childItems } = props;\n const item = props.item as DefaultTreeItemNode;\n\n const {\n itemId,\n to,\n href,\n disabled,\n className,\n contentClassName,\n leftAddon,\n leftAddonType,\n leftAddonPosition,\n leftAddonClassName,\n leftAddonForceWrap,\n rightAddon,\n rightAddonType,\n rightAddonPosition,\n rightAddonClassName,\n rightAddonForceWrap,\n disableLeftAddonCenteredMedia,\n disableRightAddonCenteredMedia,\n } = item;\n const children = item.name ?? item.children;\n\n return (\n <TreeItem\n to={to}\n href={href}\n depth={parents.length}\n childItems={childItems}\n className={className}\n contentClassName={contentClassName}\n itemId={itemId}\n disabled={disabled}\n leftAddon={leftAddon}\n leftAddonType={leftAddonType}\n leftAddonPosition={leftAddonPosition}\n leftAddonClassName={leftAddonClassName}\n leftAddonForceWrap={leftAddonForceWrap}\n rightAddon={rightAddon}\n rightAddonType={rightAddonType}\n rightAddonPosition={rightAddonPosition}\n rightAddonClassName={rightAddonClassName}\n rightAddonForceWrap={rightAddonForceWrap}\n disableLeftAddonCenteredMedia={disableLeftAddonCenteredMedia}\n disableRightAddonCenteredMedia={disableRightAddonCenteredMedia}\n >\n {children}\n </TreeItem>\n );\n}\n"],"names":["TreeItem","DefaultTreeItemRenderer","props","item","_item","parents","children","childItems","itemId","to","href","disabled","className","contentClassName","leftAddon","leftAddonType","leftAddonPosition","leftAddonClassName","leftAddonForceWrap","rightAddon","rightAddonType","rightAddonPosition","rightAddonClassName","rightAddonForceWrap","disableLeftAddonCenteredMedia","disableRightAddonCenteredMedia","name","depth","length"],"mappings":";AAEA,SAASA,QAAQ,QAAQ,gBAAgB;AAOzC;;;;;;;;;;;CAWC,GACD,OAAO,SAASC,wBAEdC,KAAgD;IAChD,MAAM,EAAEC,MAAMC,KAAK,EAAEC,OAAO,EAAEC,UAAUC,UAAU,EAAE,GAAGL;IACvD,MAAMC,OAAOD,MAAMC,IAAI;IAEvB,MAAM,EACJK,MAAM,EACNC,EAAE,EACFC,IAAI,EACJC,QAAQ,EACRC,SAAS,EACTC,gBAAgB,EAChBC,SAAS,EACTC,aAAa,EACbC,iBAAiB,EACjBC,kBAAkB,EAClBC,kBAAkB,EAClBC,UAAU,EACVC,cAAc,EACdC,kBAAkB,EAClBC,mBAAmB,EACnBC,mBAAmB,EACnBC,6BAA6B,EAC7BC,8BAA8B,EAC/B,GAAGtB;IACJ,MAAMG,WAAWH,KAAKuB,IAAI,IAAIvB,KAAKG,QAAQ;IAE3C,qBACE,KAACN;QACCS,IAAIA;QACJC,MAAMA;QACNiB,OAAOtB,QAAQuB,MAAM;QACrBrB,YAAYA;QACZK,WAAWA;QACXC,kBAAkBA;QAClBL,QAAQA;QACRG,UAAUA;QACVG,WAAWA;QACXC,eAAeA;QACfC,mBAAmBA;QACnBC,oBAAoBA;QACpBC,oBAAoBA;QACpBC,YAAYA;QACZC,gBAAgBA;QAChBC,oBAAoBA;QACpBC,qBAAqBA;QACrBC,qBAAqBA;QACrBC,+BAA+BA;QAC/BC,gCAAgCA;kBAE/BnB;;AAGP"}
1
+ {"version":3,"sources":["../../src/tree/DefaultTreeItemRenderer.tsx"],"sourcesContent":["import { type ReactElement } from \"react\";\nimport { TreeItem } from \"./TreeItem.js\";\nimport {\n type DefaultTreeItemNode,\n type TreeItemNode,\n type TreeItemRendererProps,\n} from \"./types.js\";\n\n/**\n * **Client Component**\n *\n * A reasonable default for rendering tree items that will extract all the\n * `ListItemChildrenProps` from the item and attempt to pass them into the\n * `TreeItem`.\n *\n * Look at the `Tree` component for an example of creating a custom\n * implementation.\n *\n * @since 6.0.0\n */\nexport function DefaultTreeItemRenderer<\n T extends TreeItemNode = DefaultTreeItemNode,\n>(props: TreeItemRendererProps<T>): ReactElement {\n const { parents, children: childItems } = props;\n const item = props.item as DefaultTreeItemNode;\n\n const {\n itemId,\n to,\n href,\n disabled,\n className,\n contentClassName,\n leftAddon,\n leftAddonType,\n leftAddonPosition,\n leftAddonClassName,\n leftAddonForceWrap,\n rightAddon,\n rightAddonType,\n rightAddonPosition,\n rightAddonClassName,\n rightAddonForceWrap,\n disableLeftAddonCenteredMedia,\n disableRightAddonCenteredMedia,\n } = item;\n const children = item.name ?? item.children;\n\n return (\n <TreeItem\n to={to}\n href={href}\n depth={parents.length}\n childItems={childItems}\n className={className}\n contentClassName={contentClassName}\n itemId={itemId}\n disabled={disabled}\n leftAddon={leftAddon}\n leftAddonType={leftAddonType}\n leftAddonPosition={leftAddonPosition}\n leftAddonClassName={leftAddonClassName}\n leftAddonForceWrap={leftAddonForceWrap}\n rightAddon={rightAddon}\n rightAddonType={rightAddonType}\n rightAddonPosition={rightAddonPosition}\n rightAddonClassName={rightAddonClassName}\n rightAddonForceWrap={rightAddonForceWrap}\n disableLeftAddonCenteredMedia={disableLeftAddonCenteredMedia}\n disableRightAddonCenteredMedia={disableRightAddonCenteredMedia}\n >\n {children}\n </TreeItem>\n );\n}\n"],"names":["TreeItem","DefaultTreeItemRenderer","props","parents","children","childItems","item","itemId","to","href","disabled","className","contentClassName","leftAddon","leftAddonType","leftAddonPosition","leftAddonClassName","leftAddonForceWrap","rightAddon","rightAddonType","rightAddonPosition","rightAddonClassName","rightAddonForceWrap","disableLeftAddonCenteredMedia","disableRightAddonCenteredMedia","name","depth","length"],"mappings":";AACA,SAASA,QAAQ,QAAQ,gBAAgB;AAOzC;;;;;;;;;;;CAWC,GACD,OAAO,SAASC,wBAEdC,KAA+B;IAC/B,MAAM,EAAEC,OAAO,EAAEC,UAAUC,UAAU,EAAE,GAAGH;IAC1C,MAAMI,OAAOJ,MAAMI,IAAI;IAEvB,MAAM,EACJC,MAAM,EACNC,EAAE,EACFC,IAAI,EACJC,QAAQ,EACRC,SAAS,EACTC,gBAAgB,EAChBC,SAAS,EACTC,aAAa,EACbC,iBAAiB,EACjBC,kBAAkB,EAClBC,kBAAkB,EAClBC,UAAU,EACVC,cAAc,EACdC,kBAAkB,EAClBC,mBAAmB,EACnBC,mBAAmB,EACnBC,6BAA6B,EAC7BC,8BAA8B,EAC/B,GAAGlB;IACJ,MAAMF,WAAWE,KAAKmB,IAAI,IAAInB,KAAKF,QAAQ;IAE3C,qBACE,KAACJ;QACCQ,IAAIA;QACJC,MAAMA;QACNiB,OAAOvB,QAAQwB,MAAM;QACrBtB,YAAYA;QACZM,WAAWA;QACXC,kBAAkBA;QAClBL,QAAQA;QACRG,UAAUA;QACVG,WAAWA;QACXC,eAAeA;QACfC,mBAAmBA;QACnBC,oBAAoBA;QACpBC,oBAAoBA;QACpBC,YAAYA;QACZC,gBAAgBA;QAChBC,oBAAoBA;QACpBC,qBAAqBA;QACrBC,qBAAqBA;QACrBC,+BAA+BA;QAC/BC,gCAAgCA;kBAE/BpB;;AAGP"}
@@ -1,9 +1,8 @@
1
1
  import { type ComponentType, type HTMLAttributes, type ReactElement, type ReactNode, type Ref } from "react";
2
2
  import { type CustomLinkComponent } from "../link/Link.js";
3
3
  import { type LabelRequiredForA11y } from "../types.js";
4
- import { type RenderRecursiveItemsProps } from "../utils/RenderRecursively.js";
5
4
  import { type TreeExpansionMode } from "./TreeProvider.js";
6
- import { type TreeData, type TreeItemNode, type TreeItemSorter } from "./types.js";
5
+ import { type TreeData, type TreeItemNode, type TreeItemRendererProps, type TreeItemSorter } from "./types.js";
7
6
  import { type TreeExpansion } from "./useTreeExpansion.js";
8
7
  import { type TreeSelection } from "./useTreeSelection.js";
9
8
  declare module "react" {
@@ -84,7 +83,7 @@ export interface TreeProps<T extends TreeItemNode> extends TreeHTMLAttributes, T
84
83
  * TreeItem,
85
84
  * useKeyboardMovementContext,
86
85
  * useTreeContext,
87
- * type RenderRecursiveItemsProps,
86
+ * type TreeItemRendererProps,
88
87
  * } from "@react-md/core";
89
88
  * import FolderIcon from "@react-md/material-icons/FolderIcon";
90
89
  * import FolderOpenIcon from "@react-md/material-icons/FolderOpenIcon";
@@ -124,7 +123,7 @@ export interface TreeProps<T extends TreeItemNode> extends TreeHTMLAttributes, T
124
123
  * @see {@link DefaultTreeItemRenderer}
125
124
  * @defaultValue `DefaultTreeItemRenderer`
126
125
  */
127
- renderer?: ComponentType<RenderRecursiveItemsProps<T, TreeData<T>>>;
126
+ renderer?: ComponentType<TreeItemRendererProps<T>>;
128
127
  /**
129
128
  * The link component to use for any tree item nodes that have a `to` or
130
129
  * `href`.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tree/Tree.tsx"],"sourcesContent":["\"use client\";\nimport {\n type ComponentType,\n type HTMLAttributes,\n type ReactElement,\n type ReactNode,\n type Ref,\n} from \"react\";\nimport { type CustomLinkComponent } from \"../link/Link.js\";\nimport { List } from \"../list/List.js\";\nimport { KeyboardMovementProvider } from \"../movement/useKeyboardMovementProvider.js\";\nimport { type LabelRequiredForA11y } from \"../types.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport {\n RenderRecursively,\n type RenderRecursiveItemsProps,\n} from \"../utils/RenderRecursively.js\";\nimport { identity } from \"../utils/identity.js\";\nimport { DefaultTreeItemRenderer } from \"./DefaultTreeItemRenderer.js\";\nimport { TreeProvider, type TreeExpansionMode } from \"./TreeProvider.js\";\nimport { tree } from \"./styles.js\";\nimport {\n type TreeData,\n type TreeItemNode,\n type TreeItemSorter,\n} from \"./types.js\";\nimport { type TreeExpansion } from \"./useTreeExpansion.js\";\nimport { useTreeItems } from \"./useTreeItems.js\";\nimport { useTreeMovement } from \"./useTreeMovement.js\";\nimport { type TreeSelection } from \"./useTreeSelection.js\";\n\ndeclare module \"react\" {\n interface CSSProperties {\n \"--rmd-tree-depth\"?: number;\n \"--rmd-tree-item-padding\"?: string | number;\n \"--rmd-tree-item-padding-base\"?: string | number;\n \"--rmd-tree-item-padding-incrementor\"?: string | number;\n }\n}\n\n/**\n * @since 6.0.0\n */\nexport type TreeHTMLAttributes = Omit<\n HTMLAttributes<HTMLUListElement>,\n \"role\" | \"tabIndex\" | \"children\"\n>;\n\n/**\n * @since 6.0.0 There was a major API change and the `id` is now `optional`.\n * In addition, the following props were removed:\n * - `itemRenderer`\n * - `labelKey`\n * - `valueKey`\n * - `getItemLabel`\n * - `getItemValue`\n * - `getItemProps`\n */\nexport interface TreeProps<T extends TreeItemNode>\n extends TreeHTMLAttributes,\n TreeExpansion,\n TreeSelection {\n /** @see {@link TreeData} */\n data: TreeData<T>;\n\n /**\n * An optional ref to pass to the tree element.\n *\n * @since 6.0.0\n */\n treeRef?: Ref<HTMLUListElement>;\n\n /** @defaultValue `identity` */\n sort?: TreeItemSorter<T>;\n\n /**\n * Any nodes in the {@link data} that have a `parentId` set to this value will\n * appear at the root of the tree.\n *\n * @defaultValue `null`\n */\n rootId?: string | null;\n\n /**\n * @defaultValue `\"auto\"`\n * @see {@link TreeExpansionMode}\n */\n expansionMode?: TreeExpansionMode;\n\n /**\n * Set this to `true` to display the expander icon to the left instead of the\n * right. This will also update the styles slightly so you can still provide a\n * `leftAddon`.\n *\n * @defaultValue `false`\n */\n expanderLeft?: boolean;\n\n /**\n * @defaultValue `getIcon(\"expander\")`\n */\n expanderIcon?: ReactNode;\n\n /**\n * Set this to `true` to disable the collapse transition for all tree items.\n *\n * @defaultValue `false`\n */\n disableTransition?: boolean;\n\n /**\n * Set this to `true` if the collapsed tree items should be removed from the\n * DOM instead of hidden using `display: none`. This _might_ improve\n * performance for large trees.\n *\n * @defaultValue `false`\n */\n temporaryChildItems?: boolean;\n\n /**\n * @example Custom Tree Item Renderer\n * ```tsx\n * import {\n * TreeItem,\n * useKeyboardMovementContext,\n * useTreeContext,\n * type RenderRecursiveItemsProps,\n * } from \"@react-md/core\";\n * import FolderIcon from \"@react-md/material-icons/FolderIcon\";\n * import FolderOpenIcon from \"@react-md/material-icons/FolderOpenIcon\";\n * import { type ReactElement } from \"react\";\n *\n * export function CustomTreeItem(props: TreeItemRendererProps): ReactElement {\n * const { item, ...remaining } = props;\n * const id = useId();\n * const { itemId } = item;\n * const {\n * data,\n * expandedIds,\n * selectedIds,\n * toggleTreeItemExpansion,\n * toggleTreeItemSelection,\n * } = useTreeContext()\n * const { activeDescendantId } = useKeyboardMovementContext();\n *\n * const focused = id === activeDescendantId;\n * const expanded = expandedIds.has(itemId);\n * const selected = selectedIds.has(itemId);\n * const children = ...; // do whatever\n *\n * return (\n * <TreeItem\n * {...remaining}\n * id={id}\n * itemId={itemId}\n * leftAddon={expanded ? <FolderOpenIcon /> : <FolderIcon />}\n * >\n * {children}\n * </TreeItem>\n * );\n * }\n * ```\n *\n * @see {@link DefaultTreeItemRenderer}\n * @defaultValue `DefaultTreeItemRenderer`\n */\n renderer?: ComponentType<RenderRecursiveItemsProps<T, TreeData<T>>>;\n\n /**\n * The link component to use for any tree item nodes that have a `to` or\n * `href`.\n *\n * @see {@link CustomLinkComponent}\n * @defaultValue `Link`\n */\n linkComponent?: CustomLinkComponent;\n}\n\n/**\n * **Client Component**\n *\n * @example Simple Tree\n * ```tsx\n * import type { TreeData } from \"@react-md/core\";\n * import { Tree, useTree } from \"@react-md/core\";\n * import type { ReactElement } from \"react\";\n *\n * const data: TreeData = {\n * \"item-1\": {\n * itemId: \"item-1\",\n * parentId: null,\n * name: \"Root Level Item 1\",\n * },\n * \"item-2\": {\n * itemId: \"item-2\",\n * parentId: \"item-1\",\n * name: \"A child for the first item\",\n * },\n * \"item-3\": {\n * itemId: \"item-3\",\n * parentId: \"item-1\",\n * children: \"Another child for the first item\",\n * },\n * };\n *\n * function Example(): ReactElement {\n * const tree = useTree({\n * // can enable multiple selected items\n * // multiSelect: true,\n *\n * // can set default expanded and selected items\n * // defaultSelectedIds: [\"item-1\"],\n * // defaultExpandedIds: [\"item-1\"],\n * });\n *\n * return (\n * <Tree\n * {...tree}\n * aria-label=\"Tree\"\n * data={data}\n * />\n * );\n * }\n * ```\n *\n * @see {@link TreeProps.renderer} for a custom tree item example.\n *\n * @since 6.0.0 There was a major API change and the `id` is now `optional`.\n * In addition, the following props were removed:\n * - `itemRenderer`\n * - `labelKey`\n * - `valueKey`\n * - `getItemLabel`\n * - `getItemValue`\n * - `getItemProps`\n */\nexport function Tree<T extends TreeItemNode>(\n props: LabelRequiredForA11y<TreeProps<T>>\n): ReactElement {\n const {\n id,\n data,\n sort = identity,\n rootId = null,\n treeRef,\n className,\n expandedIds,\n selectedIds,\n toggleTreeItemSelection,\n selectMultipleTreeItems,\n toggleTreeItemExpansion,\n expandMultipleTreeItems,\n onClick,\n onFocus,\n onKeyDown,\n renderer: TreeItemRenderer = DefaultTreeItemRenderer,\n multiSelect = false,\n expansionMode = \"auto\",\n expanderIcon,\n expanderLeft = false,\n linkComponent = \"a\",\n disableTransition = false,\n temporaryChildItems = false,\n ...remaining\n } = props;\n const treeId = useEnsuredId(id, \"tree\");\n const { items, treeItemChildIds } = useTreeItems({\n data,\n sort,\n rootId,\n });\n\n const { metadataLookup, movementContext, movementProps } = useTreeMovement({\n onClick,\n onFocus,\n onKeyDown,\n data,\n expandedIds,\n selectedIds,\n treeItemChildIds,\n toggleTreeItemExpansion,\n expandMultipleTreeItems,\n });\n\n return (\n <TreeProvider\n data={data}\n rootId={rootId}\n multiSelect={multiSelect}\n linkComponent={linkComponent}\n selectedIds={selectedIds}\n expandedIds={expandedIds}\n expanderIcon={expanderIcon}\n expanderLeft={expanderLeft}\n expansionMode={expansionMode}\n metadataLookup={metadataLookup}\n disableTransition={disableTransition}\n temporaryChildItems={temporaryChildItems}\n toggleTreeItemSelection={toggleTreeItemSelection}\n toggleTreeItemExpansion={toggleTreeItemExpansion}\n selectMultipleTreeItems={selectMultipleTreeItems}\n expandMultipleTreeItems={expandMultipleTreeItems}\n >\n <KeyboardMovementProvider value={movementContext}>\n <List\n {...remaining}\n {...movementProps}\n id={treeId}\n ref={treeRef}\n role=\"tree\"\n tabIndex={0}\n className={tree({ className })}\n >\n <RenderRecursively\n items={items}\n render={TreeItemRenderer}\n getItemKey={(options) => options.item.itemId}\n />\n </List>\n </KeyboardMovementProvider>\n </TreeProvider>\n );\n}\n"],"names":["List","KeyboardMovementProvider","useEnsuredId","RenderRecursively","identity","DefaultTreeItemRenderer","TreeProvider","tree","useTreeItems","useTreeMovement","Tree","props","id","data","sort","rootId","treeRef","className","expandedIds","selectedIds","toggleTreeItemSelection","selectMultipleTreeItems","toggleTreeItemExpansion","expandMultipleTreeItems","onClick","onFocus","onKeyDown","renderer","TreeItemRenderer","multiSelect","expansionMode","expanderIcon","expanderLeft","linkComponent","disableTransition","temporaryChildItems","remaining","treeId","items","treeItemChildIds","metadataLookup","movementContext","movementProps","value","ref","role","tabIndex","render","getItemKey","options","item","itemId"],"mappings":"AAAA;;AASA,SAASA,IAAI,QAAQ,kBAAkB;AACvC,SAASC,wBAAwB,QAAQ,6CAA6C;AAEtF,SAASC,YAAY,QAAQ,qBAAqB;AAClD,SACEC,iBAAiB,QAEZ,gCAAgC;AACvC,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,uBAAuB,QAAQ,+BAA+B;AACvE,SAASC,YAAY,QAAgC,oBAAoB;AACzE,SAASC,IAAI,QAAQ,cAAc;AAOnC,SAASC,YAAY,QAAQ,oBAAoB;AACjD,SAASC,eAAe,QAAQ,uBAAuB;AAsJvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDC,GACD,OAAO,SAASC,KACdC,KAAyC;IAEzC,MAAM,EACJC,EAAE,EACFC,IAAI,EACJC,OAAOV,QAAQ,EACfW,SAAS,IAAI,EACbC,OAAO,EACPC,SAAS,EACTC,WAAW,EACXC,WAAW,EACXC,uBAAuB,EACvBC,uBAAuB,EACvBC,uBAAuB,EACvBC,uBAAuB,EACvBC,OAAO,EACPC,OAAO,EACPC,SAAS,EACTC,UAAUC,mBAAmBvB,uBAAuB,EACpDwB,cAAc,KAAK,EACnBC,gBAAgB,MAAM,EACtBC,YAAY,EACZC,eAAe,KAAK,EACpBC,gBAAgB,GAAG,EACnBC,oBAAoB,KAAK,EACzBC,sBAAsB,KAAK,EAC3B,GAAGC,WACJ,GAAGzB;IACJ,MAAM0B,SAASnC,aAAaU,IAAI;IAChC,MAAM,EAAE0B,KAAK,EAAEC,gBAAgB,EAAE,GAAG/B,aAAa;QAC/CK;QACAC;QACAC;IACF;IAEA,MAAM,EAAEyB,cAAc,EAAEC,eAAe,EAAEC,aAAa,EAAE,GAAGjC,gBAAgB;QACzEe;QACAC;QACAC;QACAb;QACAK;QACAC;QACAoB;QACAjB;QACAC;IACF;IAEA,qBACE,KAACjB;QACCO,MAAMA;QACNE,QAAQA;QACRc,aAAaA;QACbI,eAAeA;QACfd,aAAaA;QACbD,aAAaA;QACba,cAAcA;QACdC,cAAcA;QACdF,eAAeA;QACfU,gBAAgBA;QAChBN,mBAAmBA;QACnBC,qBAAqBA;QACrBf,yBAAyBA;QACzBE,yBAAyBA;QACzBD,yBAAyBA;QACzBE,yBAAyBA;kBAEzB,cAAA,KAACtB;YAAyB0C,OAAOF;sBAC/B,cAAA,KAACzC;gBACE,GAAGoC,SAAS;gBACZ,GAAGM,aAAa;gBACjB9B,IAAIyB;gBACJO,KAAK5B;gBACL6B,MAAK;gBACLC,UAAU;gBACV7B,WAAWV,KAAK;oBAAEU;gBAAU;0BAE5B,cAAA,KAACd;oBACCmC,OAAOA;oBACPS,QAAQnB;oBACRoB,YAAY,CAACC,UAAYA,QAAQC,IAAI,CAACC,MAAM;;;;;AAMxD"}
1
+ {"version":3,"sources":["../../src/tree/Tree.tsx"],"sourcesContent":["\"use client\";\nimport {\n type ComponentType,\n type HTMLAttributes,\n type ReactElement,\n type ReactNode,\n type Ref,\n} from \"react\";\nimport { type CustomLinkComponent } from \"../link/Link.js\";\nimport { List } from \"../list/List.js\";\nimport { KeyboardMovementProvider } from \"../movement/useKeyboardMovementProvider.js\";\nimport { type LabelRequiredForA11y } from \"../types.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport { RenderRecursively } from \"../utils/RenderRecursively.js\";\nimport { identity } from \"../utils/identity.js\";\nimport { DefaultTreeItemRenderer } from \"./DefaultTreeItemRenderer.js\";\nimport { TreeProvider, type TreeExpansionMode } from \"./TreeProvider.js\";\nimport { tree } from \"./styles.js\";\nimport {\n type TreeData,\n type TreeItemNode,\n type TreeItemRendererProps,\n type TreeItemSorter,\n} from \"./types.js\";\nimport { type TreeExpansion } from \"./useTreeExpansion.js\";\nimport { useTreeItems } from \"./useTreeItems.js\";\nimport { useTreeMovement } from \"./useTreeMovement.js\";\nimport { type TreeSelection } from \"./useTreeSelection.js\";\n\ndeclare module \"react\" {\n interface CSSProperties {\n \"--rmd-tree-depth\"?: number;\n \"--rmd-tree-item-padding\"?: string | number;\n \"--rmd-tree-item-padding-base\"?: string | number;\n \"--rmd-tree-item-padding-incrementor\"?: string | number;\n }\n}\n\n/**\n * @since 6.0.0\n */\nexport type TreeHTMLAttributes = Omit<\n HTMLAttributes<HTMLUListElement>,\n \"role\" | \"tabIndex\" | \"children\"\n>;\n\n/**\n * @since 6.0.0 There was a major API change and the `id` is now `optional`.\n * In addition, the following props were removed:\n * - `itemRenderer`\n * - `labelKey`\n * - `valueKey`\n * - `getItemLabel`\n * - `getItemValue`\n * - `getItemProps`\n */\nexport interface TreeProps<T extends TreeItemNode>\n extends TreeHTMLAttributes,\n TreeExpansion,\n TreeSelection {\n /** @see {@link TreeData} */\n data: TreeData<T>;\n\n /**\n * An optional ref to pass to the tree element.\n *\n * @since 6.0.0\n */\n treeRef?: Ref<HTMLUListElement>;\n\n /** @defaultValue `identity` */\n sort?: TreeItemSorter<T>;\n\n /**\n * Any nodes in the {@link data} that have a `parentId` set to this value will\n * appear at the root of the tree.\n *\n * @defaultValue `null`\n */\n rootId?: string | null;\n\n /**\n * @defaultValue `\"auto\"`\n * @see {@link TreeExpansionMode}\n */\n expansionMode?: TreeExpansionMode;\n\n /**\n * Set this to `true` to display the expander icon to the left instead of the\n * right. This will also update the styles slightly so you can still provide a\n * `leftAddon`.\n *\n * @defaultValue `false`\n */\n expanderLeft?: boolean;\n\n /**\n * @defaultValue `getIcon(\"expander\")`\n */\n expanderIcon?: ReactNode;\n\n /**\n * Set this to `true` to disable the collapse transition for all tree items.\n *\n * @defaultValue `false`\n */\n disableTransition?: boolean;\n\n /**\n * Set this to `true` if the collapsed tree items should be removed from the\n * DOM instead of hidden using `display: none`. This _might_ improve\n * performance for large trees.\n *\n * @defaultValue `false`\n */\n temporaryChildItems?: boolean;\n\n /**\n * @example Custom Tree Item Renderer\n * ```tsx\n * import {\n * TreeItem,\n * useKeyboardMovementContext,\n * useTreeContext,\n * type TreeItemRendererProps,\n * } from \"@react-md/core\";\n * import FolderIcon from \"@react-md/material-icons/FolderIcon\";\n * import FolderOpenIcon from \"@react-md/material-icons/FolderOpenIcon\";\n * import { type ReactElement } from \"react\";\n *\n * export function CustomTreeItem(props: TreeItemRendererProps): ReactElement {\n * const { item, ...remaining } = props;\n * const id = useId();\n * const { itemId } = item;\n * const {\n * data,\n * expandedIds,\n * selectedIds,\n * toggleTreeItemExpansion,\n * toggleTreeItemSelection,\n * } = useTreeContext()\n * const { activeDescendantId } = useKeyboardMovementContext();\n *\n * const focused = id === activeDescendantId;\n * const expanded = expandedIds.has(itemId);\n * const selected = selectedIds.has(itemId);\n * const children = ...; // do whatever\n *\n * return (\n * <TreeItem\n * {...remaining}\n * id={id}\n * itemId={itemId}\n * leftAddon={expanded ? <FolderOpenIcon /> : <FolderIcon />}\n * >\n * {children}\n * </TreeItem>\n * );\n * }\n * ```\n *\n * @see {@link DefaultTreeItemRenderer}\n * @defaultValue `DefaultTreeItemRenderer`\n */\n renderer?: ComponentType<TreeItemRendererProps<T>>;\n\n /**\n * The link component to use for any tree item nodes that have a `to` or\n * `href`.\n *\n * @see {@link CustomLinkComponent}\n * @defaultValue `Link`\n */\n linkComponent?: CustomLinkComponent;\n}\n\n/**\n * **Client Component**\n *\n * @example Simple Tree\n * ```tsx\n * import type { TreeData } from \"@react-md/core\";\n * import { Tree, useTree } from \"@react-md/core\";\n * import type { ReactElement } from \"react\";\n *\n * const data: TreeData = {\n * \"item-1\": {\n * itemId: \"item-1\",\n * parentId: null,\n * name: \"Root Level Item 1\",\n * },\n * \"item-2\": {\n * itemId: \"item-2\",\n * parentId: \"item-1\",\n * name: \"A child for the first item\",\n * },\n * \"item-3\": {\n * itemId: \"item-3\",\n * parentId: \"item-1\",\n * children: \"Another child for the first item\",\n * },\n * };\n *\n * function Example(): ReactElement {\n * const tree = useTree({\n * // can enable multiple selected items\n * // multiSelect: true,\n *\n * // can set default expanded and selected items\n * // defaultSelectedIds: [\"item-1\"],\n * // defaultExpandedIds: [\"item-1\"],\n * });\n *\n * return (\n * <Tree\n * {...tree}\n * aria-label=\"Tree\"\n * data={data}\n * />\n * );\n * }\n * ```\n *\n * @see {@link TreeProps.renderer} for a custom tree item example.\n *\n * @since 6.0.0 There was a major API change and the `id` is now `optional`.\n * In addition, the following props were removed:\n * - `itemRenderer`\n * - `labelKey`\n * - `valueKey`\n * - `getItemLabel`\n * - `getItemValue`\n * - `getItemProps`\n */\nexport function Tree<T extends TreeItemNode>(\n props: LabelRequiredForA11y<TreeProps<T>>\n): ReactElement {\n const {\n id,\n data,\n sort = identity,\n rootId = null,\n treeRef,\n className,\n expandedIds,\n selectedIds,\n toggleTreeItemSelection,\n selectMultipleTreeItems,\n toggleTreeItemExpansion,\n expandMultipleTreeItems,\n onClick,\n onFocus,\n onKeyDown,\n renderer: TreeItemRenderer = DefaultTreeItemRenderer,\n multiSelect = false,\n expansionMode = \"auto\",\n expanderIcon,\n expanderLeft = false,\n linkComponent = \"a\",\n disableTransition = false,\n temporaryChildItems = false,\n ...remaining\n } = props;\n const treeId = useEnsuredId(id, \"tree\");\n const { items, treeItemChildIds } = useTreeItems({\n data,\n sort,\n rootId,\n });\n\n const { metadataLookup, movementContext, movementProps } = useTreeMovement({\n onClick,\n onFocus,\n onKeyDown,\n data,\n expandedIds,\n selectedIds,\n treeItemChildIds,\n toggleTreeItemExpansion,\n expandMultipleTreeItems,\n });\n\n return (\n <TreeProvider\n data={data}\n rootId={rootId}\n multiSelect={multiSelect}\n linkComponent={linkComponent}\n selectedIds={selectedIds}\n expandedIds={expandedIds}\n expanderIcon={expanderIcon}\n expanderLeft={expanderLeft}\n expansionMode={expansionMode}\n metadataLookup={metadataLookup}\n disableTransition={disableTransition}\n temporaryChildItems={temporaryChildItems}\n toggleTreeItemSelection={toggleTreeItemSelection}\n toggleTreeItemExpansion={toggleTreeItemExpansion}\n selectMultipleTreeItems={selectMultipleTreeItems}\n expandMultipleTreeItems={expandMultipleTreeItems}\n >\n <KeyboardMovementProvider value={movementContext}>\n <List\n {...remaining}\n {...movementProps}\n id={treeId}\n ref={treeRef}\n role=\"tree\"\n tabIndex={0}\n className={tree({ className })}\n >\n <RenderRecursively\n items={items}\n render={TreeItemRenderer}\n getItemKey={(options) => options.item.itemId}\n />\n </List>\n </KeyboardMovementProvider>\n </TreeProvider>\n );\n}\n"],"names":["List","KeyboardMovementProvider","useEnsuredId","RenderRecursively","identity","DefaultTreeItemRenderer","TreeProvider","tree","useTreeItems","useTreeMovement","Tree","props","id","data","sort","rootId","treeRef","className","expandedIds","selectedIds","toggleTreeItemSelection","selectMultipleTreeItems","toggleTreeItemExpansion","expandMultipleTreeItems","onClick","onFocus","onKeyDown","renderer","TreeItemRenderer","multiSelect","expansionMode","expanderIcon","expanderLeft","linkComponent","disableTransition","temporaryChildItems","remaining","treeId","items","treeItemChildIds","metadataLookup","movementContext","movementProps","value","ref","role","tabIndex","render","getItemKey","options","item","itemId"],"mappings":"AAAA;;AASA,SAASA,IAAI,QAAQ,kBAAkB;AACvC,SAASC,wBAAwB,QAAQ,6CAA6C;AAEtF,SAASC,YAAY,QAAQ,qBAAqB;AAClD,SAASC,iBAAiB,QAAQ,gCAAgC;AAClE,SAASC,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,uBAAuB,QAAQ,+BAA+B;AACvE,SAASC,YAAY,QAAgC,oBAAoB;AACzE,SAASC,IAAI,QAAQ,cAAc;AAQnC,SAASC,YAAY,QAAQ,oBAAoB;AACjD,SAASC,eAAe,QAAQ,uBAAuB;AAsJvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDC,GACD,OAAO,SAASC,KACdC,KAAyC;IAEzC,MAAM,EACJC,EAAE,EACFC,IAAI,EACJC,OAAOV,QAAQ,EACfW,SAAS,IAAI,EACbC,OAAO,EACPC,SAAS,EACTC,WAAW,EACXC,WAAW,EACXC,uBAAuB,EACvBC,uBAAuB,EACvBC,uBAAuB,EACvBC,uBAAuB,EACvBC,OAAO,EACPC,OAAO,EACPC,SAAS,EACTC,UAAUC,mBAAmBvB,uBAAuB,EACpDwB,cAAc,KAAK,EACnBC,gBAAgB,MAAM,EACtBC,YAAY,EACZC,eAAe,KAAK,EACpBC,gBAAgB,GAAG,EACnBC,oBAAoB,KAAK,EACzBC,sBAAsB,KAAK,EAC3B,GAAGC,WACJ,GAAGzB;IACJ,MAAM0B,SAASnC,aAAaU,IAAI;IAChC,MAAM,EAAE0B,KAAK,EAAEC,gBAAgB,EAAE,GAAG/B,aAAa;QAC/CK;QACAC;QACAC;IACF;IAEA,MAAM,EAAEyB,cAAc,EAAEC,eAAe,EAAEC,aAAa,EAAE,GAAGjC,gBAAgB;QACzEe;QACAC;QACAC;QACAb;QACAK;QACAC;QACAoB;QACAjB;QACAC;IACF;IAEA,qBACE,KAACjB;QACCO,MAAMA;QACNE,QAAQA;QACRc,aAAaA;QACbI,eAAeA;QACfd,aAAaA;QACbD,aAAaA;QACba,cAAcA;QACdC,cAAcA;QACdF,eAAeA;QACfU,gBAAgBA;QAChBN,mBAAmBA;QACnBC,qBAAqBA;QACrBf,yBAAyBA;QACzBE,yBAAyBA;QACzBD,yBAAyBA;QACzBE,yBAAyBA;kBAEzB,cAAA,KAACtB;YAAyB0C,OAAOF;sBAC/B,cAAA,KAACzC;gBACE,GAAGoC,SAAS;gBACZ,GAAGM,aAAa;gBACjB9B,IAAIyB;gBACJO,KAAK5B;gBACL6B,MAAK;gBACLC,UAAU;gBACV7B,WAAWV,KAAK;oBAAEU;gBAAU;0BAE5B,cAAA,KAACd;oBACCmC,OAAOA;oBACPS,QAAQnB;oBACRoB,YAAY,CAACC,UAAYA,QAAQC,IAAI,CAACC,MAAM;;;;;AAMxD"}
@@ -3,7 +3,11 @@ import { type PropsWithRef } from "../types.js";
3
3
  import { type OverridableTreeGroupProps } from "./TreeGroup.js";
4
4
  import { type DefaultTreeItemNode } from "./types.js";
5
5
  /**
6
- * @since 6.0.0 Added the `groupProps` prop.
6
+ * @since 6.0.0 Added `liProps` and `groupProps`.
7
+ * @since 6.0.0 The `liRef`, `liStyle`, and `liClassName` props were removed in
8
+ * favor of `liProps={{ ref, style, className }}`.
9
+ * @since 6.0.0 The `itemIndex`, `listSize`, `renderChildItems`, `isLink`,
10
+ * `contentComponent`, and `readOnly` props were removed.
7
11
  */
8
12
  export interface TreeItemProps extends Omit<DefaultTreeItemNode, "parentId">, HTMLAttributes<HTMLLIElement> {
9
13
  /**
@@ -53,8 +57,11 @@ export interface TreeItemProps extends Omit<DefaultTreeItemNode, "parentId">, HT
53
57
  * **Client Component**
54
58
  *
55
59
  * @see {@link https://www.w3.org/WAI/ARIA/apg/patterns/treeview/}
56
- * @since 6.0.0 The wrapping `<li>` element will always be `role="none"` and
57
- * the `<span>` or `<a>` will gain the `role="treeitem"` instead. This makes it
60
+ * @since 6.0.0 No longer forwards refs. The ref must be provided using
61
+ * `contentRef` instead.
62
+ * @since 6.0.0 The `liRef` was removed in favor of `liProps={{ ref }}`.
63
+ * @since 6.0.0 The wrapping `<li>` element will always be `role="none"` and the
64
+ * `<span>` or `<a>` will gain the `role="treeitem"` instead. This makes it
58
65
  * easier to pass event handlers because of the nested behavior of tree items.
59
66
  * @since 6.0.0 No longer provides the `aria-level`, `aria-setsize` and
60
67
  * `aria-posinset` attributes and allows the browser to compute them instead.
@@ -14,8 +14,11 @@ import { treeItem, treeItemContent, treeItemMedia } from "./styles.js";
14
14
  * **Client Component**
15
15
  *
16
16
  * @see {@link https://www.w3.org/WAI/ARIA/apg/patterns/treeview/}
17
- * @since 6.0.0 The wrapping `<li>` element will always be `role="none"` and
18
- * the `<span>` or `<a>` will gain the `role="treeitem"` instead. This makes it
17
+ * @since 6.0.0 No longer forwards refs. The ref must be provided using
18
+ * `contentRef` instead.
19
+ * @since 6.0.0 The `liRef` was removed in favor of `liProps={{ ref }}`.
20
+ * @since 6.0.0 The wrapping `<li>` element will always be `role="none"` and the
21
+ * `<span>` or `<a>` will gain the `role="treeitem"` instead. This makes it
19
22
  * easier to pass event handlers because of the nested behavior of tree items.
20
23
  * @since 6.0.0 No longer provides the `aria-level`, `aria-setsize` and
21
24
  * `aria-posinset` attributes and allows the browser to compute them instead.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tree/TreeItem.tsx"],"sourcesContent":["\"use client\";\nimport {\n useEffect,\n type HTMLAttributes,\n type ReactElement,\n type ReactNode,\n type Ref,\n} from \"react\";\nimport { useElementInteraction } from \"../interaction/useElementInteraction.js\";\nimport { useHigherContrastChildren } from \"../interaction/useHigherContrastChildren.js\";\nimport { ListItemChildren } from \"../list/ListItemChildren.js\";\nimport { useKeyboardMovementContext } from \"../movement/useKeyboardMovementProvider.js\";\nimport { type PropsWithRef } from \"../types.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport { TreeGroup, type OverridableTreeGroupProps } from \"./TreeGroup.js\";\nimport { TreeItemExpander } from \"./TreeItemExpander.js\";\nimport { useTreeContext } from \"./TreeProvider.js\";\nimport { treeItem, treeItemContent, treeItemMedia } from \"./styles.js\";\nimport { type DefaultTreeItemNode } from \"./types.js\";\n\n/**\n * @since 6.0.0 Added the `groupProps` prop.\n */\nexport interface TreeItemProps\n extends Omit<DefaultTreeItemNode, \"parentId\">,\n HTMLAttributes<HTMLLIElement> {\n /**\n * @defaultValue `\"tree-item-\" + useId()`\n */\n id?: string;\n\n /**\n * This is used to set the `--rmd-tree-depth` CSS variable which allows the\n * padding to increase for each nested tree.\n */\n depth: number;\n\n /**\n * Any additional props that should be passed to the surrounding `<li>`\n * element. The top-level props are passed to the `<span>` or `<a>` element\n * instead.\n */\n liProps?: PropsWithRef<HTMLAttributes<HTMLLIElement>, HTMLLIElement>;\n\n /**\n * Any additional props to pass to the `TreeGroup` component.\n */\n groupProps?: PropsWithRef<OverridableTreeGroupProps, HTMLUListElement>;\n\n /**\n * This should normally be the text/content to display within the tree item\n * and should **not** include nested trees.\n */\n children?: ReactNode;\n\n /**\n * The nested tree items to render within a `TreeGroup`.\n */\n childItems?: ReactNode;\n\n /** @defaultValue `false` */\n disableTransition?: boolean;\n\n /**\n * This ref is applied to the `<span>` or `<a>` element and can be used to\n * implement drag and drop behavior.\n */\n contentRef?: Ref<HTMLElement>;\n\n /**\n * Set this to `true` if the {@link childItems} should not be rendered while\n * collapsed.\n *\n * @defaultValue `false`\n */\n temporaryChildItems?: boolean;\n}\n\n/**\n * **Client Component**\n *\n * @see {@link https://www.w3.org/WAI/ARIA/apg/patterns/treeview/}\n * @since 6.0.0 The wrapping `<li>` element will always be `role=\"none\"` and\n * the `<span>` or `<a>` will gain the `role=\"treeitem\"` instead. This makes it\n * easier to pass event handlers because of the nested behavior of tree items.\n * @since 6.0.0 No longer provides the `aria-level`, `aria-setsize` and\n * `aria-posinset` attributes and allows the browser to compute them instead.\n */\nexport function TreeItem(props: TreeItemProps): ReactElement {\n const {\n id: propId,\n depth,\n liProps,\n disabled = false,\n disabledOpacity = false,\n groupProps,\n children: propChildren,\n className,\n itemId,\n leftAddon,\n leftAddonType: propLeftAddonType,\n leftAddonPosition,\n leftAddonClassName,\n leftAddonForceWrap,\n rightAddon,\n rightAddonType,\n rightAddonPosition,\n rightAddonClassName,\n rightAddonForceWrap,\n disableTextChildren,\n disableLeftAddonCenteredMedia: propDisableLeftAddonCenteredMedia,\n disableRightAddonCenteredMedia,\n textProps,\n textClassName,\n primaryText,\n secondaryText,\n secondaryTextProps,\n secondaryTextClassName,\n multiline,\n childItems,\n contentClassName,\n temporaryChildItems,\n disableTransition: propDisableTransition,\n onBlur,\n onClick,\n onKeyDown,\n onKeyUp,\n onMouseDown,\n onMouseUp,\n onMouseLeave,\n onDragStart,\n onTouchStart,\n onTouchEnd,\n onTouchMove,\n contentRef,\n ...remaining\n } = props;\n\n const id = useEnsuredId(propId, \"tree-item\");\n const children = useHigherContrastChildren(propChildren);\n if (disabled) {\n // you can't really disable a link other than removing the href, so\n // unset these props\n remaining.to = undefined;\n remaining.href = undefined;\n }\n\n const {\n expandedIds,\n selectedIds,\n expanderLeft,\n expansionMode,\n metadataLookup,\n linkComponent: Link,\n toggleTreeItemSelection,\n toggleTreeItemExpansion,\n disableTransition: contextDisableTransition,\n } = useTreeContext();\n const { activeDescendantId } = useKeyboardMovementContext();\n\n const isLeafNode = !childItems;\n const focused = activeDescendantId === id;\n const expanded = expandedIds.has(itemId);\n const selected = selectedIds.has(itemId);\n const disableTransition = propDisableTransition ?? contextDisableTransition;\n\n useEffect(() => {\n const lookup = metadataLookup.current;\n lookup.expandable[itemId] = !isLeafNode;\n lookup.disabledItems[itemId] = disabled;\n lookup.elementToItem[id] = itemId;\n lookup.itemToElement[itemId] = id;\n\n return () => {\n delete lookup.disabledItems[itemId];\n delete lookup.expandable[itemId];\n delete lookup.elementToItem[id];\n delete lookup.itemToElement[itemId];\n };\n }, [id, metadataLookup, itemId, isLeafNode, disabled, depth]);\n\n const { pressedClassName, ripples, handlers } =\n useElementInteraction<HTMLLIElement>({\n onBlur,\n onClick(event) {\n onClick?.(event);\n toggleTreeItemSelection(itemId);\n if (!isLeafNode && expansionMode !== \"manual\") {\n toggleTreeItemExpansion(itemId);\n }\n },\n onKeyDown,\n onKeyUp,\n onMouseDown,\n onMouseUp,\n onMouseLeave,\n onDragStart,\n onTouchStart,\n onTouchEnd,\n onTouchMove,\n disabled,\n });\n\n const isLink = !!(remaining.to || remaining.href);\n\n // cheating a bit so there are type errors around the event handlers\n const ContentComponent = (isLink ? Link : \"span\") as \"span\";\n const leftAddonType =\n propLeftAddonType ?? (expanderLeft && leftAddon) ? \"media\" : undefined;\n const isMediaLeftAddon =\n typeof propLeftAddonType === \"undefined\" && leftAddonType === \"media\";\n const disableLeftAddonCenteredMedia =\n propDisableLeftAddonCenteredMedia ?? isMediaLeftAddon;\n\n return (\n <li\n {...liProps}\n role=\"none\"\n className={treeItem({\n className,\n expander: !!childItems,\n expanderLeft,\n })}\n >\n <ContentComponent\n {...remaining}\n // nodes with children should always apply the `aria-expanded` to show\n // that it is expandable while leaf nodes should remain omitted\n aria-expanded={isLeafNode ? undefined : expanded}\n aria-selected={selected}\n aria-disabled={disabled || undefined}\n id={id}\n ref={contentRef}\n role=\"treeitem\"\n tabIndex={-1}\n {...handlers}\n className={treeItemContent({\n link: isLink,\n focused,\n selected,\n disabled,\n disabledOpacity,\n className: contentClassName,\n pressedClassName,\n })}\n >\n <ListItemChildren\n multiline={multiline}\n textClassName={textClassName}\n secondaryTextClassName={secondaryTextClassName}\n disableTextChildren={disableTextChildren}\n primaryText={primaryText}\n textProps={textProps}\n secondaryText={secondaryText}\n secondaryTextProps={secondaryTextProps}\n leftAddon={\n <TreeItemExpander\n isLeft\n itemId={itemId}\n addon={leftAddon}\n expanded={expanded}\n disabled={disabled}\n isLeafNode={isLeafNode}\n />\n }\n leftAddonType={leftAddonType}\n leftAddonPosition={leftAddonPosition}\n leftAddonClassName={treeItemMedia({\n isLeafNode,\n isMediaLeftAddon,\n className: leftAddonClassName,\n })}\n leftAddonForceWrap={leftAddonForceWrap}\n rightAddon={\n <TreeItemExpander\n itemId={itemId}\n addon={rightAddon}\n expanded={expanded}\n disabled={disabled}\n isLeafNode={isLeafNode}\n />\n }\n rightAddonType={rightAddonType}\n rightAddonPosition={rightAddonPosition}\n rightAddonClassName={rightAddonClassName}\n rightAddonForceWrap={rightAddonForceWrap}\n disableLeftAddonCenteredMedia={disableLeftAddonCenteredMedia}\n disableRightAddonCenteredMedia={disableRightAddonCenteredMedia}\n >\n {children}\n </ListItemChildren>\n {ripples}\n </ContentComponent>\n <TreeGroup\n id={`${id}-group`}\n temporary={temporaryChildItems}\n disableTransition={disableTransition}\n {...groupProps}\n depth={depth + 1}\n collapsed={isLeafNode || !expanded}\n >\n {childItems}\n </TreeGroup>\n </li>\n );\n}\n"],"names":["useEffect","useElementInteraction","useHigherContrastChildren","ListItemChildren","useKeyboardMovementContext","useEnsuredId","TreeGroup","TreeItemExpander","useTreeContext","treeItem","treeItemContent","treeItemMedia","TreeItem","props","id","propId","depth","liProps","disabled","disabledOpacity","groupProps","children","propChildren","className","itemId","leftAddon","leftAddonType","propLeftAddonType","leftAddonPosition","leftAddonClassName","leftAddonForceWrap","rightAddon","rightAddonType","rightAddonPosition","rightAddonClassName","rightAddonForceWrap","disableTextChildren","disableLeftAddonCenteredMedia","propDisableLeftAddonCenteredMedia","disableRightAddonCenteredMedia","textProps","textClassName","primaryText","secondaryText","secondaryTextProps","secondaryTextClassName","multiline","childItems","contentClassName","temporaryChildItems","disableTransition","propDisableTransition","onBlur","onClick","onKeyDown","onKeyUp","onMouseDown","onMouseUp","onMouseLeave","onDragStart","onTouchStart","onTouchEnd","onTouchMove","contentRef","remaining","to","undefined","href","expandedIds","selectedIds","expanderLeft","expansionMode","metadataLookup","linkComponent","Link","toggleTreeItemSelection","toggleTreeItemExpansion","contextDisableTransition","activeDescendantId","isLeafNode","focused","expanded","has","selected","lookup","current","expandable","disabledItems","elementToItem","itemToElement","pressedClassName","ripples","handlers","event","isLink","ContentComponent","isMediaLeftAddon","li","role","expander","aria-expanded","aria-selected","aria-disabled","ref","tabIndex","link","isLeft","addon","temporary","collapsed"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/tree/TreeItem.tsx"],"sourcesContent":["\"use client\";\nimport {\n useEffect,\n type HTMLAttributes,\n type ReactElement,\n type ReactNode,\n type Ref,\n} from \"react\";\nimport { useElementInteraction } from \"../interaction/useElementInteraction.js\";\nimport { useHigherContrastChildren } from \"../interaction/useHigherContrastChildren.js\";\nimport { ListItemChildren } from \"../list/ListItemChildren.js\";\nimport { useKeyboardMovementContext } from \"../movement/useKeyboardMovementProvider.js\";\nimport { type PropsWithRef } from \"../types.js\";\nimport { useEnsuredId } from \"../useEnsuredId.js\";\nimport { TreeGroup, type OverridableTreeGroupProps } from \"./TreeGroup.js\";\nimport { TreeItemExpander } from \"./TreeItemExpander.js\";\nimport { useTreeContext } from \"./TreeProvider.js\";\nimport { treeItem, treeItemContent, treeItemMedia } from \"./styles.js\";\nimport { type DefaultTreeItemNode } from \"./types.js\";\n\n/**\n * @since 6.0.0 Added `liProps` and `groupProps`.\n * @since 6.0.0 The `liRef`, `liStyle`, and `liClassName` props were removed in\n * favor of `liProps={{ ref, style, className }}`.\n * @since 6.0.0 The `itemIndex`, `listSize`, `renderChildItems`, `isLink`,\n * `contentComponent`, and `readOnly` props were removed.\n */\nexport interface TreeItemProps\n extends Omit<DefaultTreeItemNode, \"parentId\">,\n HTMLAttributes<HTMLLIElement> {\n /**\n * @defaultValue `\"tree-item-\" + useId()`\n */\n id?: string;\n\n /**\n * This is used to set the `--rmd-tree-depth` CSS variable which allows the\n * padding to increase for each nested tree.\n */\n depth: number;\n\n /**\n * Any additional props that should be passed to the surrounding `<li>`\n * element. The top-level props are passed to the `<span>` or `<a>` element\n * instead.\n */\n liProps?: PropsWithRef<HTMLAttributes<HTMLLIElement>, HTMLLIElement>;\n\n /**\n * Any additional props to pass to the `TreeGroup` component.\n */\n groupProps?: PropsWithRef<OverridableTreeGroupProps, HTMLUListElement>;\n\n /**\n * This should normally be the text/content to display within the tree item\n * and should **not** include nested trees.\n */\n children?: ReactNode;\n\n /**\n * The nested tree items to render within a `TreeGroup`.\n */\n childItems?: ReactNode;\n\n /** @defaultValue `false` */\n disableTransition?: boolean;\n\n /**\n * This ref is applied to the `<span>` or `<a>` element and can be used to\n * implement drag and drop behavior.\n */\n contentRef?: Ref<HTMLElement>;\n\n /**\n * Set this to `true` if the {@link childItems} should not be rendered while\n * collapsed.\n *\n * @defaultValue `false`\n */\n temporaryChildItems?: boolean;\n}\n\n/**\n * **Client Component**\n *\n * @see {@link https://www.w3.org/WAI/ARIA/apg/patterns/treeview/}\n * @since 6.0.0 No longer forwards refs. The ref must be provided using\n * `contentRef` instead.\n * @since 6.0.0 The `liRef` was removed in favor of `liProps={{ ref }}`.\n * @since 6.0.0 The wrapping `<li>` element will always be `role=\"none\"` and the\n * `<span>` or `<a>` will gain the `role=\"treeitem\"` instead. This makes it\n * easier to pass event handlers because of the nested behavior of tree items.\n * @since 6.0.0 No longer provides the `aria-level`, `aria-setsize` and\n * `aria-posinset` attributes and allows the browser to compute them instead.\n */\nexport function TreeItem(props: TreeItemProps): ReactElement {\n const {\n id: propId,\n depth,\n liProps,\n disabled = false,\n disabledOpacity = false,\n groupProps,\n children: propChildren,\n className,\n itemId,\n leftAddon,\n leftAddonType: propLeftAddonType,\n leftAddonPosition,\n leftAddonClassName,\n leftAddonForceWrap,\n rightAddon,\n rightAddonType,\n rightAddonPosition,\n rightAddonClassName,\n rightAddonForceWrap,\n disableTextChildren,\n disableLeftAddonCenteredMedia: propDisableLeftAddonCenteredMedia,\n disableRightAddonCenteredMedia,\n textProps,\n textClassName,\n primaryText,\n secondaryText,\n secondaryTextProps,\n secondaryTextClassName,\n multiline,\n childItems,\n contentClassName,\n temporaryChildItems,\n disableTransition: propDisableTransition,\n onBlur,\n onClick,\n onKeyDown,\n onKeyUp,\n onMouseDown,\n onMouseUp,\n onMouseLeave,\n onDragStart,\n onTouchStart,\n onTouchEnd,\n onTouchMove,\n contentRef,\n ...remaining\n } = props;\n\n const id = useEnsuredId(propId, \"tree-item\");\n const children = useHigherContrastChildren(propChildren);\n if (disabled) {\n // you can't really disable a link other than removing the href, so\n // unset these props\n remaining.to = undefined;\n remaining.href = undefined;\n }\n\n const {\n expandedIds,\n selectedIds,\n expanderLeft,\n expansionMode,\n metadataLookup,\n linkComponent: Link,\n toggleTreeItemSelection,\n toggleTreeItemExpansion,\n disableTransition: contextDisableTransition,\n } = useTreeContext();\n const { activeDescendantId } = useKeyboardMovementContext();\n\n const isLeafNode = !childItems;\n const focused = activeDescendantId === id;\n const expanded = expandedIds.has(itemId);\n const selected = selectedIds.has(itemId);\n const disableTransition = propDisableTransition ?? contextDisableTransition;\n\n useEffect(() => {\n const lookup = metadataLookup.current;\n lookup.expandable[itemId] = !isLeafNode;\n lookup.disabledItems[itemId] = disabled;\n lookup.elementToItem[id] = itemId;\n lookup.itemToElement[itemId] = id;\n\n return () => {\n delete lookup.disabledItems[itemId];\n delete lookup.expandable[itemId];\n delete lookup.elementToItem[id];\n delete lookup.itemToElement[itemId];\n };\n }, [id, metadataLookup, itemId, isLeafNode, disabled, depth]);\n\n const { pressedClassName, ripples, handlers } =\n useElementInteraction<HTMLLIElement>({\n onBlur,\n onClick(event) {\n onClick?.(event);\n toggleTreeItemSelection(itemId);\n if (!isLeafNode && expansionMode !== \"manual\") {\n toggleTreeItemExpansion(itemId);\n }\n },\n onKeyDown,\n onKeyUp,\n onMouseDown,\n onMouseUp,\n onMouseLeave,\n onDragStart,\n onTouchStart,\n onTouchEnd,\n onTouchMove,\n disabled,\n });\n\n const isLink = !!(remaining.to || remaining.href);\n\n // cheating a bit so there are type errors around the event handlers\n const ContentComponent = (isLink ? Link : \"span\") as \"span\";\n const leftAddonType =\n (propLeftAddonType ?? (expanderLeft && leftAddon)) ? \"media\" : undefined;\n const isMediaLeftAddon =\n typeof propLeftAddonType === \"undefined\" && leftAddonType === \"media\";\n const disableLeftAddonCenteredMedia =\n propDisableLeftAddonCenteredMedia ?? isMediaLeftAddon;\n\n return (\n <li\n {...liProps}\n role=\"none\"\n className={treeItem({\n className,\n expander: !!childItems,\n expanderLeft,\n })}\n >\n <ContentComponent\n {...remaining}\n // nodes with children should always apply the `aria-expanded` to show\n // that it is expandable while leaf nodes should remain omitted\n aria-expanded={isLeafNode ? undefined : expanded}\n aria-selected={selected}\n aria-disabled={disabled || undefined}\n id={id}\n ref={contentRef}\n role=\"treeitem\"\n tabIndex={-1}\n {...handlers}\n className={treeItemContent({\n link: isLink,\n focused,\n selected,\n disabled,\n disabledOpacity,\n className: contentClassName,\n pressedClassName,\n })}\n >\n <ListItemChildren\n multiline={multiline}\n textClassName={textClassName}\n secondaryTextClassName={secondaryTextClassName}\n disableTextChildren={disableTextChildren}\n primaryText={primaryText}\n textProps={textProps}\n secondaryText={secondaryText}\n secondaryTextProps={secondaryTextProps}\n leftAddon={\n <TreeItemExpander\n isLeft\n itemId={itemId}\n addon={leftAddon}\n expanded={expanded}\n disabled={disabled}\n isLeafNode={isLeafNode}\n />\n }\n leftAddonType={leftAddonType}\n leftAddonPosition={leftAddonPosition}\n leftAddonClassName={treeItemMedia({\n isLeafNode,\n isMediaLeftAddon,\n className: leftAddonClassName,\n })}\n leftAddonForceWrap={leftAddonForceWrap}\n rightAddon={\n <TreeItemExpander\n itemId={itemId}\n addon={rightAddon}\n expanded={expanded}\n disabled={disabled}\n isLeafNode={isLeafNode}\n />\n }\n rightAddonType={rightAddonType}\n rightAddonPosition={rightAddonPosition}\n rightAddonClassName={rightAddonClassName}\n rightAddonForceWrap={rightAddonForceWrap}\n disableLeftAddonCenteredMedia={disableLeftAddonCenteredMedia}\n disableRightAddonCenteredMedia={disableRightAddonCenteredMedia}\n >\n {children}\n </ListItemChildren>\n {ripples}\n </ContentComponent>\n <TreeGroup\n id={`${id}-group`}\n temporary={temporaryChildItems}\n disableTransition={disableTransition}\n {...groupProps}\n depth={depth + 1}\n collapsed={isLeafNode || !expanded}\n >\n {childItems}\n </TreeGroup>\n </li>\n );\n}\n"],"names":["useEffect","useElementInteraction","useHigherContrastChildren","ListItemChildren","useKeyboardMovementContext","useEnsuredId","TreeGroup","TreeItemExpander","useTreeContext","treeItem","treeItemContent","treeItemMedia","TreeItem","props","id","propId","depth","liProps","disabled","disabledOpacity","groupProps","children","propChildren","className","itemId","leftAddon","leftAddonType","propLeftAddonType","leftAddonPosition","leftAddonClassName","leftAddonForceWrap","rightAddon","rightAddonType","rightAddonPosition","rightAddonClassName","rightAddonForceWrap","disableTextChildren","disableLeftAddonCenteredMedia","propDisableLeftAddonCenteredMedia","disableRightAddonCenteredMedia","textProps","textClassName","primaryText","secondaryText","secondaryTextProps","secondaryTextClassName","multiline","childItems","contentClassName","temporaryChildItems","disableTransition","propDisableTransition","onBlur","onClick","onKeyDown","onKeyUp","onMouseDown","onMouseUp","onMouseLeave","onDragStart","onTouchStart","onTouchEnd","onTouchMove","contentRef","remaining","to","undefined","href","expandedIds","selectedIds","expanderLeft","expansionMode","metadataLookup","linkComponent","Link","toggleTreeItemSelection","toggleTreeItemExpansion","contextDisableTransition","activeDescendantId","isLeafNode","focused","expanded","has","selected","lookup","current","expandable","disabledItems","elementToItem","itemToElement","pressedClassName","ripples","handlers","event","isLink","ContentComponent","isMediaLeftAddon","li","role","expander","aria-expanded","aria-selected","aria-disabled","ref","tabIndex","link","isLeft","addon","temporary","collapsed"],"mappings":"AAAA;;AACA,SACEA,SAAS,QAKJ,QAAQ;AACf,SAASC,qBAAqB,QAAQ,0CAA0C;AAChF,SAASC,yBAAyB,QAAQ,8CAA8C;AACxF,SAASC,gBAAgB,QAAQ,8BAA8B;AAC/D,SAASC,0BAA0B,QAAQ,6CAA6C;AAExF,SAASC,YAAY,QAAQ,qBAAqB;AAClD,SAASC,SAAS,QAAwC,iBAAiB;AAC3E,SAASC,gBAAgB,QAAQ,wBAAwB;AACzD,SAASC,cAAc,QAAQ,oBAAoB;AACnD,SAASC,QAAQ,EAAEC,eAAe,EAAEC,aAAa,QAAQ,cAAc;AAiEvE;;;;;;;;;;;;CAYC,GACD,OAAO,SAASC,SAASC,KAAoB;IAC3C,MAAM,EACJC,IAAIC,MAAM,EACVC,KAAK,EACLC,OAAO,EACPC,WAAW,KAAK,EAChBC,kBAAkB,KAAK,EACvBC,UAAU,EACVC,UAAUC,YAAY,EACtBC,SAAS,EACTC,MAAM,EACNC,SAAS,EACTC,eAAeC,iBAAiB,EAChCC,iBAAiB,EACjBC,kBAAkB,EAClBC,kBAAkB,EAClBC,UAAU,EACVC,cAAc,EACdC,kBAAkB,EAClBC,mBAAmB,EACnBC,mBAAmB,EACnBC,mBAAmB,EACnBC,+BAA+BC,iCAAiC,EAChEC,8BAA8B,EAC9BC,SAAS,EACTC,aAAa,EACbC,WAAW,EACXC,aAAa,EACbC,kBAAkB,EAClBC,sBAAsB,EACtBC,SAAS,EACTC,UAAU,EACVC,gBAAgB,EAChBC,mBAAmB,EACnBC,mBAAmBC,qBAAqB,EACxCC,MAAM,EACNC,OAAO,EACPC,SAAS,EACTC,OAAO,EACPC,WAAW,EACXC,SAAS,EACTC,YAAY,EACZC,WAAW,EACXC,YAAY,EACZC,UAAU,EACVC,WAAW,EACXC,UAAU,EACV,GAAGC,WACJ,GAAGnD;IAEJ,MAAMC,KAAKT,aAAaU,QAAQ;IAChC,MAAMM,WAAWnB,0BAA0BoB;IAC3C,IAAIJ,UAAU;QACZ,mEAAmE;QACnE,oBAAoB;QACpB8C,UAAUC,EAAE,GAAGC;QACfF,UAAUG,IAAI,GAAGD;IACnB;IAEA,MAAM,EACJE,WAAW,EACXC,WAAW,EACXC,YAAY,EACZC,aAAa,EACbC,cAAc,EACdC,eAAeC,IAAI,EACnBC,uBAAuB,EACvBC,uBAAuB,EACvB1B,mBAAmB2B,wBAAwB,EAC5C,GAAGrE;IACJ,MAAM,EAAEsE,kBAAkB,EAAE,GAAG1E;IAE/B,MAAM2E,aAAa,CAAChC;IACpB,MAAMiC,UAAUF,uBAAuBhE;IACvC,MAAMmE,WAAWb,YAAYc,GAAG,CAAC1D;IACjC,MAAM2D,WAAWd,YAAYa,GAAG,CAAC1D;IACjC,MAAM0B,oBAAoBC,yBAAyB0B;IAEnD7E,UAAU;QACR,MAAMoF,SAASZ,eAAea,OAAO;QACrCD,OAAOE,UAAU,CAAC9D,OAAO,GAAG,CAACuD;QAC7BK,OAAOG,aAAa,CAAC/D,OAAO,GAAGN;QAC/BkE,OAAOI,aAAa,CAAC1E,GAAG,GAAGU;QAC3B4D,OAAOK,aAAa,CAACjE,OAAO,GAAGV;QAE/B,OAAO;YACL,OAAOsE,OAAOG,aAAa,CAAC/D,OAAO;YACnC,OAAO4D,OAAOE,UAAU,CAAC9D,OAAO;YAChC,OAAO4D,OAAOI,aAAa,CAAC1E,GAAG;YAC/B,OAAOsE,OAAOK,aAAa,CAACjE,OAAO;QACrC;IACF,GAAG;QAACV;QAAI0D;QAAgBhD;QAAQuD;QAAY7D;QAAUF;KAAM;IAE5D,MAAM,EAAE0E,gBAAgB,EAAEC,OAAO,EAAEC,QAAQ,EAAE,GAC3C3F,sBAAqC;QACnCmD;QACAC,SAAQwC,KAAK;YACXxC,UAAUwC;YACVlB,wBAAwBnD;YACxB,IAAI,CAACuD,cAAcR,kBAAkB,UAAU;gBAC7CK,wBAAwBpD;YAC1B;QACF;QACA8B;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACAC;QACA5C;IACF;IAEF,MAAM4E,SAAS,CAAC,CAAE9B,CAAAA,UAAUC,EAAE,IAAID,UAAUG,IAAI,AAAD;IAE/C,oEAAoE;IACpE,MAAM4B,mBAAoBD,SAASpB,OAAO;IAC1C,MAAMhD,gBACJ,AAACC,qBAAsB2C,CAAAA,gBAAgB7C,SAAQ,IAAM,UAAUyC;IACjE,MAAM8B,mBACJ,OAAOrE,sBAAsB,eAAeD,kBAAkB;IAChE,MAAMW,gCACJC,qCAAqC0D;IAEvC,qBACE,MAACC;QACE,GAAGhF,OAAO;QACXiF,MAAK;QACL3E,WAAWd,SAAS;YAClBc;YACA4E,UAAU,CAAC,CAACpD;YACZuB;QACF;;0BAEA,MAACyB;gBACE,GAAG/B,SAAS;gBACb,sEAAsE;gBACtE,+DAA+D;gBAC/DoC,iBAAerB,aAAab,YAAYe;gBACxCoB,iBAAelB;gBACfmB,iBAAepF,YAAYgD;gBAC3BpD,IAAIA;gBACJyF,KAAKxC;gBACLmC,MAAK;gBACLM,UAAU,CAAC;gBACV,GAAGZ,QAAQ;gBACZrE,WAAWb,gBAAgB;oBACzB+F,MAAMX;oBACNd;oBACAG;oBACAjE;oBACAC;oBACAI,WAAWyB;oBACX0C;gBACF;;kCAEA,KAACvF;wBACC2C,WAAWA;wBACXL,eAAeA;wBACfI,wBAAwBA;wBACxBT,qBAAqBA;wBACrBM,aAAaA;wBACbF,WAAWA;wBACXG,eAAeA;wBACfC,oBAAoBA;wBACpBnB,yBACE,KAAClB;4BACCmG,MAAM;4BACNlF,QAAQA;4BACRmF,OAAOlF;4BACPwD,UAAUA;4BACV/D,UAAUA;4BACV6D,YAAYA;;wBAGhBrD,eAAeA;wBACfE,mBAAmBA;wBACnBC,oBAAoBlB,cAAc;4BAChCoE;4BACAiB;4BACAzE,WAAWM;wBACb;wBACAC,oBAAoBA;wBACpBC,0BACE,KAACxB;4BACCiB,QAAQA;4BACRmF,OAAO5E;4BACPkD,UAAUA;4BACV/D,UAAUA;4BACV6D,YAAYA;;wBAGhB/C,gBAAgBA;wBAChBC,oBAAoBA;wBACpBC,qBAAqBA;wBACrBC,qBAAqBA;wBACrBE,+BAA+BA;wBAC/BE,gCAAgCA;kCAE/BlB;;oBAEFsE;;;0BAEH,KAACrF;gBACCQ,IAAI,CAAC,EAAEA,GAAG,MAAM,CAAC;gBACjB8F,WAAW3D;gBACXC,mBAAmBA;gBAClB,GAAG9B,UAAU;gBACdJ,OAAOA,QAAQ;gBACf6F,WAAW9B,cAAc,CAACE;0BAEzBlC;;;;AAIT"}
@@ -1,6 +1,7 @@
1
- import type { ReactNode } from "react";
2
- import type { ListItemChildrenProps } from "../list/types.js";
3
- import type { UseStateInitializer } from "../types.js";
1
+ import { type ReactNode } from "react";
2
+ import { type ListItemChildrenProps } from "../list/types.js";
3
+ import { type UseStateInitializer } from "../types.js";
4
+ import { type RenderRecursiveItemsProps } from "../utils/RenderRecursively.js";
4
5
  /**
5
6
  * @since 6.0.0 This was renamed from `TreeItemIds`
6
7
  */
@@ -86,14 +87,14 @@ export interface DefaultTreeItemNode extends TreeItemNode, ListItemChildrenProps
86
87
  */
87
88
  export type TreeData<T extends TreeItemNode = DefaultTreeItemNode> = Record<string, T>;
88
89
  /**
89
- * @since 6.0.0 This used to be `TreeItemIds` but was converted to a
90
- * Set to increase performance for large trees.
90
+ * @since 6.0.0 This used to be `ExpandedIds`/`SelectedIds` but was converted to
91
+ * a `Set` to increase performance for large trees.
91
92
  */
92
93
  export type TreeItemIdSet = ReadonlySet<string>;
93
94
  /**
94
95
  * @since 6.0.0
95
96
  */
96
- export type TreeItemDefaultIds = UseStateInitializer<readonly string[]>;
97
+ export type TreeDefaultIds = UseStateInitializer<readonly string[] | ReadonlySet<string>>;
97
98
  /**
98
99
  * A function to call that will sort the items within the tree for each unique
99
100
  * `parentId`. If you have a tree like:
@@ -123,3 +124,7 @@ export type TreeItemDefaultIds = UseStateInitializer<readonly string[]>;
123
124
  * render.
124
125
  */
125
126
  export type TreeItemSorter<T extends TreeItemNode = DefaultTreeItemNode> = (items: readonly T[]) => readonly T[];
127
+ /**
128
+ * @since 6.0.0
129
+ */
130
+ export type TreeItemRendererProps<T extends TreeItemNode = DefaultTreeItemNode> = RenderRecursiveItemsProps<T, TreeData<T>>;
@@ -1,30 +1,5 @@
1
1
  /**
2
- * A function to call that will sort the items within the tree for each unique
3
- * `parentId`. If you have a tree like:
4
- *
5
- * ```
6
- * a
7
- * ├── a1
8
- * b
9
- * ├── b1
10
- * ├── b2
11
- * │ └── b2.1
12
- * c
13
- * ├── c1
14
- * ├── c2
15
- * └── c3
16
- * ```
17
- *
18
- * This function will be called with:
19
- *
20
- * - `[a1]`
21
- * - `[b2.1]`
22
- * - `[b1, b2]`
23
- * - `[c1, c2, c3]`
24
- * - `[a, b, c]`
25
- *
26
- * Note: This **should be memoized** to prevent rerendering the entire tree each
27
- * render.
2
+ * @since 6.0.0
28
3
  */ export { };
29
4
 
30
5
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tree/types.ts"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport type { ListItemChildrenProps } from \"../list/types.js\";\nimport type { UseStateInitializer } from \"../types.js\";\n\n/**\n * @since 6.0.0 This was renamed from `TreeItemIds`\n */\nexport interface TreeItemNode {\n itemId: string;\n parentId: string | null;\n}\n\n/**\n * The default tree item node allows for any props for rendering children within\n * list items and rendering links.\n *\n * @since 6.0.0\n */\nexport interface DefaultTreeItemNode\n extends TreeItemNode,\n ListItemChildrenProps {\n /**\n * If this is defined, the `TreeItem` will render the content within a `Link`\n * instead of a `<span>`.\n */\n to?: string;\n\n /**\n * If this is defined, the `TreeItem` will render the content within a `Link`\n * instead of a `<span>`.\n */\n href?: string;\n\n /**\n * This should only be provided if {@link to} or {@link href} exist on the\n * node.\n */\n rel?: string;\n\n /**\n * This should only be provided if {@link to} or {@link href} exist on the\n * node.\n */\n target?: string;\n\n /**\n * An alias for the {@link children} within a tree item. This will be used\n * over the {@link children} if both exist.\n */\n name?: ReactNode;\n\n /**\n * The children to display in the tree item.\n *\n * @see {@link name}\n */\n children?: ReactNode;\n\n /** @see {@link ListItemProps.disabled} */\n disabled?: boolean;\n\n /** @see {@link ListItemProps.disabledOpacity} */\n disabledOpacity?: boolean;\n\n className?: string;\n contentClassName?: string;\n}\n\n/**\n * @example Default Structure\n * ```tsx\n * import type { TreeData } from \"@react-md/core\";\n * import FolderIcon from \"@react-md/material-icons/FolderIcon\";\n *\n * export const MY_DATA: TreeData = {\n * \"item-1\": {\n * itemId: \"item-1\",\n * parentId: null,\n * name: \"Root Level Item 1\",\n * },\n * \"item-2\": {\n * itemId: \"item-2\",\n * parentId: \"item-1\",\n * name: \"A child for the first item\",\n * leftAddon: <FolderIcon />,\n * },\n * \"item-3\": {\n * itemId: \"item-3\",\n * parentId: \"item-1\",\n * children: \"Another child for the first item\",\n * leftAddon: <FolderIcon />,\n * rightAddon: <span>Something custom</span>,\n * },\n * };\n * ```\n *\n * @since 6.0.0 Updated the default types\n * @see {@link DefaultTreeItemNode}\n */\nexport type TreeData<T extends TreeItemNode = DefaultTreeItemNode> = Record<\n string,\n T\n>;\n\n/**\n * @since 6.0.0 This used to be `TreeItemIds` but was converted to a\n * Set to increase performance for large trees.\n */\nexport type TreeItemIdSet = ReadonlySet<string>;\n\n/**\n * @since 6.0.0\n */\nexport type TreeItemDefaultIds = UseStateInitializer<readonly string[]>;\n\n/**\n * A function to call that will sort the items within the tree for each unique\n * `parentId`. If you have a tree like:\n *\n * ```\n * a\n * ├── a1\n * b\n * ├── b1\n * ├── b2\n * │ └── b2.1\n * c\n * ├── c1\n * ├── c2\n * └── c3\n * ```\n *\n * This function will be called with:\n *\n * - `[a1]`\n * - `[b2.1]`\n * - `[b1, b2]`\n * - `[c1, c2, c3]`\n * - `[a, b, c]`\n *\n * Note: This **should be memoized** to prevent rerendering the entire tree each\n * render.\n */\nexport type TreeItemSorter<T extends TreeItemNode = DefaultTreeItemNode> = (\n items: readonly T[]\n) => readonly T[];\n"],"names":[],"mappings":"AAmHA;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BC,GACD,WAEkB"}
1
+ {"version":3,"sources":["../../src/tree/types.ts"],"sourcesContent":["import { type ReactNode } from \"react\";\nimport { type ListItemChildrenProps } from \"../list/types.js\";\nimport { type UseStateInitializer } from \"../types.js\";\nimport { type RenderRecursiveItemsProps } from \"../utils/RenderRecursively.js\";\n\n/**\n * @since 6.0.0 This was renamed from `TreeItemIds`\n */\nexport interface TreeItemNode {\n itemId: string;\n parentId: string | null;\n}\n\n/**\n * The default tree item node allows for any props for rendering children within\n * list items and rendering links.\n *\n * @since 6.0.0\n */\nexport interface DefaultTreeItemNode\n extends TreeItemNode,\n ListItemChildrenProps {\n /**\n * If this is defined, the `TreeItem` will render the content within a `Link`\n * instead of a `<span>`.\n */\n to?: string;\n\n /**\n * If this is defined, the `TreeItem` will render the content within a `Link`\n * instead of a `<span>`.\n */\n href?: string;\n\n /**\n * This should only be provided if {@link to} or {@link href} exist on the\n * node.\n */\n rel?: string;\n\n /**\n * This should only be provided if {@link to} or {@link href} exist on the\n * node.\n */\n target?: string;\n\n /**\n * An alias for the {@link children} within a tree item. This will be used\n * over the {@link children} if both exist.\n */\n name?: ReactNode;\n\n /**\n * The children to display in the tree item.\n *\n * @see {@link name}\n */\n children?: ReactNode;\n\n /** @see {@link ListItemProps.disabled} */\n disabled?: boolean;\n\n /** @see {@link ListItemProps.disabledOpacity} */\n disabledOpacity?: boolean;\n\n className?: string;\n contentClassName?: string;\n}\n\n/**\n * @example Default Structure\n * ```tsx\n * import type { TreeData } from \"@react-md/core\";\n * import FolderIcon from \"@react-md/material-icons/FolderIcon\";\n *\n * export const MY_DATA: TreeData = {\n * \"item-1\": {\n * itemId: \"item-1\",\n * parentId: null,\n * name: \"Root Level Item 1\",\n * },\n * \"item-2\": {\n * itemId: \"item-2\",\n * parentId: \"item-1\",\n * name: \"A child for the first item\",\n * leftAddon: <FolderIcon />,\n * },\n * \"item-3\": {\n * itemId: \"item-3\",\n * parentId: \"item-1\",\n * children: \"Another child for the first item\",\n * leftAddon: <FolderIcon />,\n * rightAddon: <span>Something custom</span>,\n * },\n * };\n * ```\n *\n * @since 6.0.0 Updated the default types\n * @see {@link DefaultTreeItemNode}\n */\nexport type TreeData<T extends TreeItemNode = DefaultTreeItemNode> = Record<\n string,\n T\n>;\n\n/**\n * @since 6.0.0 This used to be `ExpandedIds`/`SelectedIds` but was converted to\n * a `Set` to increase performance for large trees.\n */\nexport type TreeItemIdSet = ReadonlySet<string>;\n\n/**\n * @since 6.0.0\n */\nexport type TreeDefaultIds = UseStateInitializer<\n readonly string[] | ReadonlySet<string>\n>;\n\n/**\n * A function to call that will sort the items within the tree for each unique\n * `parentId`. If you have a tree like:\n *\n * ```\n * a\n * ├── a1\n * b\n * ├── b1\n * ├── b2\n * │ └── b2.1\n * c\n * ├── c1\n * ├── c2\n * └── c3\n * ```\n *\n * This function will be called with:\n *\n * - `[a1]`\n * - `[b2.1]`\n * - `[b1, b2]`\n * - `[c1, c2, c3]`\n * - `[a, b, c]`\n *\n * Note: This **should be memoized** to prevent rerendering the entire tree each\n * render.\n */\nexport type TreeItemSorter<T extends TreeItemNode = DefaultTreeItemNode> = (\n items: readonly T[]\n) => readonly T[];\n\n/**\n * @since 6.0.0\n */\nexport type TreeItemRendererProps<\n T extends TreeItemNode = DefaultTreeItemNode,\n> = RenderRecursiveItemsProps<T, TreeData<T>>;\n"],"names":[],"mappings":"AAsJA;;CAEC,GACD,WAE8C"}
@@ -1,4 +1,4 @@
1
- import { type TreeItemDefaultIds } from "./types.js";
1
+ import { type TreeDefaultIds } from "./types.js";
2
2
  import { type TreeExpansion } from "./useTreeExpansion.js";
3
3
  import { type TreeSelection } from "./useTreeSelection.js";
4
4
  /**
@@ -12,11 +12,11 @@ export interface TreeHookOptions {
12
12
  /**
13
13
  * @defaultValue `[]`
14
14
  */
15
- defaultExpandedIds?: TreeItemDefaultIds;
15
+ defaultExpandedIds?: TreeDefaultIds;
16
16
  /**
17
17
  * @defaultValue `[]`
18
18
  */
19
- defaultSelectedIds?: TreeItemDefaultIds;
19
+ defaultSelectedIds?: TreeDefaultIds;
20
20
  }
21
21
  /**
22
22
  * @since 6.0.0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tree/useTree.ts"],"sourcesContent":["\"use client\";\nimport { type TreeItemDefaultIds } from \"./types.js\";\nimport { useTreeExpansion, type TreeExpansion } from \"./useTreeExpansion.js\";\nimport { useTreeSelection, type TreeSelection } from \"./useTreeSelection.js\";\n\n/**\n * @since 6.0.0\n */\nexport interface TreeHookOptions {\n /**\n * @defaultValue `false`\n */\n multiSelect?: boolean;\n\n /**\n * @defaultValue `[]`\n */\n defaultExpandedIds?: TreeItemDefaultIds;\n\n /**\n * @defaultValue `[]`\n */\n defaultSelectedIds?: TreeItemDefaultIds;\n}\n\n/**\n * @since 6.0.0\n */\nexport interface TreeImplementation extends TreeSelection, TreeExpansion {}\n\n/**\n * This is a convenience wrapper for the {@link useTreeExpansion} and\n * {@link useTreeSelection} hooks since they will almost always be used together.\n *\n * @example Simple Example\n * ```tsx\n * import type { TreeData } from \"@react-md/core\";\n * import { Tree, useTree } from \"@react-md/core\";\n * import type { ReactElement } from \"react\";\n *\n * const data: TreeData = {\n * // pretend data\n * };\n *\n * function Example(): ReactElement {\n * const tree = useTree();\n *\n * return <Tree {...tree} data={data} aria-label=\"Tree\" />;\n * }\n * ```\n *\n * @since 6.0.0\n */\nexport function useTree(options: TreeHookOptions = {}): TreeImplementation {\n const {\n multiSelect = false,\n defaultExpandedIds,\n defaultSelectedIds,\n } = options;\n\n return {\n ...useTreeExpansion(defaultExpandedIds),\n ...useTreeSelection(defaultSelectedIds, multiSelect),\n };\n}\n"],"names":["useTreeExpansion","useTreeSelection","useTree","options","multiSelect","defaultExpandedIds","defaultSelectedIds"],"mappings":"AAAA;AAEA,SAASA,gBAAgB,QAA4B,wBAAwB;AAC7E,SAASC,gBAAgB,QAA4B,wBAAwB;AA2B7E;;;;;;;;;;;;;;;;;;;;;;CAsBC,GACD,OAAO,SAASC,QAAQC,UAA2B,CAAC,CAAC;IACnD,MAAM,EACJC,cAAc,KAAK,EACnBC,kBAAkB,EAClBC,kBAAkB,EACnB,GAAGH;IAEJ,OAAO;QACL,GAAGH,iBAAiBK,mBAAmB;QACvC,GAAGJ,iBAAiBK,oBAAoBF,YAAY;IACtD;AACF"}
1
+ {"version":3,"sources":["../../src/tree/useTree.ts"],"sourcesContent":["\"use client\";\nimport { type TreeDefaultIds } from \"./types.js\";\nimport { useTreeExpansion, type TreeExpansion } from \"./useTreeExpansion.js\";\nimport { useTreeSelection, type TreeSelection } from \"./useTreeSelection.js\";\n\n/**\n * @since 6.0.0\n */\nexport interface TreeHookOptions {\n /**\n * @defaultValue `false`\n */\n multiSelect?: boolean;\n\n /**\n * @defaultValue `[]`\n */\n defaultExpandedIds?: TreeDefaultIds;\n\n /**\n * @defaultValue `[]`\n */\n defaultSelectedIds?: TreeDefaultIds;\n}\n\n/**\n * @since 6.0.0\n */\nexport interface TreeImplementation extends TreeSelection, TreeExpansion {}\n\n/**\n * This is a convenience wrapper for the {@link useTreeExpansion} and\n * {@link useTreeSelection} hooks since they will almost always be used together.\n *\n * @example Simple Example\n * ```tsx\n * import type { TreeData } from \"@react-md/core\";\n * import { Tree, useTree } from \"@react-md/core\";\n * import type { ReactElement } from \"react\";\n *\n * const data: TreeData = {\n * // pretend data\n * };\n *\n * function Example(): ReactElement {\n * const tree = useTree();\n *\n * return <Tree {...tree} data={data} aria-label=\"Tree\" />;\n * }\n * ```\n *\n * @since 6.0.0\n */\nexport function useTree(options: TreeHookOptions = {}): TreeImplementation {\n const {\n multiSelect = false,\n defaultExpandedIds,\n defaultSelectedIds,\n } = options;\n\n return {\n ...useTreeExpansion(defaultExpandedIds),\n ...useTreeSelection(defaultSelectedIds, multiSelect),\n };\n}\n"],"names":["useTreeExpansion","useTreeSelection","useTree","options","multiSelect","defaultExpandedIds","defaultSelectedIds"],"mappings":"AAAA;AAEA,SAASA,gBAAgB,QAA4B,wBAAwB;AAC7E,SAASC,gBAAgB,QAA4B,wBAAwB;AA2B7E;;;;;;;;;;;;;;;;;;;;;;CAsBC,GACD,OAAO,SAASC,QAAQC,UAA2B,CAAC,CAAC;IACnD,MAAM,EACJC,cAAc,KAAK,EACnBC,kBAAkB,EAClBC,kBAAkB,EACnB,GAAGH;IAEJ,OAAO;QACL,GAAGH,iBAAiBK,mBAAmB;QACvC,GAAGJ,iBAAiBK,oBAAoBF,YAAY;IACtD;AACF"}
@@ -1,5 +1,5 @@
1
- import type { UseStateSetter } from "../types.js";
2
- import type { TreeItemDefaultIds, TreeItemIdSet } from "./types.js";
1
+ import { type UseStateSetter } from "../types.js";
2
+ import { type TreeDefaultIds, type TreeItemIdSet } from "./types.js";
3
3
  /**
4
4
  * @since 6.0.0 Renamed from `TreeItemExpansion` and uses a Set
5
5
  * instead of a list to increase performance. Also renamed `onItemExpansion` to
@@ -15,4 +15,4 @@ export interface TreeExpansion {
15
15
  * @since 6.0.0 Renamed from `useTreeItemExpansion` and uses a Set
16
16
  * instead of a list to increase performance.
17
17
  */
18
- export declare function useTreeExpansion(defaultExpandedIds?: TreeItemDefaultIds): TreeExpansion;
18
+ export declare function useTreeExpansion(defaultExpandedIds?: TreeDefaultIds): TreeExpansion;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tree/useTreeExpansion.ts"],"sourcesContent":["\"use client\";\nimport { useCallback, useState } from \"react\";\nimport type { UseStateSetter } from \"../types.js\";\nimport type { TreeItemDefaultIds, TreeItemIdSet } from \"./types.js\";\n\n/**\n * @since 6.0.0 Renamed from `TreeItemExpansion` and uses a Set\n * instead of a list to increase performance. Also renamed `onItemExpansion` to\n * `toggleTreeItemExpansion` and `onMultiItemExpansion` to\n * `expandMultipleTreeItems`.\n */\nexport interface TreeExpansion {\n expandedIds: TreeItemIdSet;\n toggleTreeItemExpansion(itemId: string): void;\n expandMultipleTreeItems: UseStateSetter<TreeItemIdSet>;\n}\n\n/**\n * @since 6.0.0 Renamed from `useTreeItemExpansion` and uses a Set\n * instead of a list to increase performance.\n */\nexport function useTreeExpansion(\n defaultExpandedIds?: TreeItemDefaultIds\n): TreeExpansion {\n const [expandedIds, setExpandedIds] = useState<TreeItemIdSet>(() => {\n const defaultIds =\n typeof defaultExpandedIds === \"function\"\n ? defaultExpandedIds()\n : defaultExpandedIds;\n\n return new Set(defaultIds);\n });\n\n const toggleTreeItemExpansion = useCallback((itemId: string) => {\n setExpandedIds((prevExpandedIds) => {\n const expandedIds = new Set(prevExpandedIds);\n if (expandedIds.has(itemId)) {\n expandedIds.delete(itemId);\n } else {\n expandedIds.add(itemId);\n }\n\n return expandedIds;\n });\n }, []);\n\n return {\n expandedIds,\n toggleTreeItemExpansion,\n expandMultipleTreeItems: setExpandedIds,\n };\n}\n"],"names":["useCallback","useState","useTreeExpansion","defaultExpandedIds","expandedIds","setExpandedIds","defaultIds","Set","toggleTreeItemExpansion","itemId","prevExpandedIds","has","delete","add","expandMultipleTreeItems"],"mappings":"AAAA;AACA,SAASA,WAAW,EAAEC,QAAQ,QAAQ,QAAQ;AAgB9C;;;CAGC,GACD,OAAO,SAASC,iBACdC,kBAAuC;IAEvC,MAAM,CAACC,aAAaC,eAAe,GAAGJ,SAAwB;QAC5D,MAAMK,aACJ,OAAOH,uBAAuB,aAC1BA,uBACAA;QAEN,OAAO,IAAII,IAAID;IACjB;IAEA,MAAME,0BAA0BR,YAAY,CAACS;QAC3CJ,eAAe,CAACK;YACd,MAAMN,cAAc,IAAIG,IAAIG;YAC5B,IAAIN,YAAYO,GAAG,CAACF,SAAS;gBAC3BL,YAAYQ,MAAM,CAACH;YACrB,OAAO;gBACLL,YAAYS,GAAG,CAACJ;YAClB;YAEA,OAAOL;QACT;IACF,GAAG,EAAE;IAEL,OAAO;QACLA;QACAI;QACAM,yBAAyBT;IAC3B;AACF"}
1
+ {"version":3,"sources":["../../src/tree/useTreeExpansion.ts"],"sourcesContent":["\"use client\";\nimport { useCallback, useState } from \"react\";\nimport { type UseStateSetter } from \"../types.js\";\nimport { type TreeDefaultIds, type TreeItemIdSet } from \"./types.js\";\n\n/**\n * @since 6.0.0 Renamed from `TreeItemExpansion` and uses a Set\n * instead of a list to increase performance. Also renamed `onItemExpansion` to\n * `toggleTreeItemExpansion` and `onMultiItemExpansion` to\n * `expandMultipleTreeItems`.\n */\nexport interface TreeExpansion {\n expandedIds: TreeItemIdSet;\n toggleTreeItemExpansion(itemId: string): void;\n expandMultipleTreeItems: UseStateSetter<TreeItemIdSet>;\n}\n\n/**\n * @since 6.0.0 Renamed from `useTreeItemExpansion` and uses a Set\n * instead of a list to increase performance.\n */\nexport function useTreeExpansion(\n defaultExpandedIds?: TreeDefaultIds\n): TreeExpansion {\n const [expandedIds, setExpandedIds] = useState<TreeItemIdSet>(() => {\n const defaultIds =\n typeof defaultExpandedIds === \"function\"\n ? defaultExpandedIds()\n : defaultExpandedIds;\n\n return new Set(defaultIds);\n });\n\n const toggleTreeItemExpansion = useCallback((itemId: string) => {\n setExpandedIds((prevExpandedIds) => {\n const expandedIds = new Set(prevExpandedIds);\n if (expandedIds.has(itemId)) {\n expandedIds.delete(itemId);\n } else {\n expandedIds.add(itemId);\n }\n\n return expandedIds;\n });\n }, []);\n\n return {\n expandedIds,\n toggleTreeItemExpansion,\n expandMultipleTreeItems: setExpandedIds,\n };\n}\n"],"names":["useCallback","useState","useTreeExpansion","defaultExpandedIds","expandedIds","setExpandedIds","defaultIds","Set","toggleTreeItemExpansion","itemId","prevExpandedIds","has","delete","add","expandMultipleTreeItems"],"mappings":"AAAA;AACA,SAASA,WAAW,EAAEC,QAAQ,QAAQ,QAAQ;AAgB9C;;;CAGC,GACD,OAAO,SAASC,iBACdC,kBAAmC;IAEnC,MAAM,CAACC,aAAaC,eAAe,GAAGJ,SAAwB;QAC5D,MAAMK,aACJ,OAAOH,uBAAuB,aAC1BA,uBACAA;QAEN,OAAO,IAAII,IAAID;IACjB;IAEA,MAAME,0BAA0BR,YAAY,CAACS;QAC3CJ,eAAe,CAACK;YACd,MAAMN,cAAc,IAAIG,IAAIG;YAC5B,IAAIN,YAAYO,GAAG,CAACF,SAAS;gBAC3BL,YAAYQ,MAAM,CAACH;YACrB,OAAO;gBACLL,YAAYS,GAAG,CAACJ;YAClB;YAEA,OAAOL;QACT;IACF,GAAG,EAAE;IAEL,OAAO;QACLA;QACAI;QACAM,yBAAyBT;IAC3B;AACF"}
@@ -1,5 +1,5 @@
1
- import type { UseStateSetter } from "../types.js";
2
- import type { TreeItemDefaultIds, TreeItemIdSet } from "./types.js";
1
+ import { type UseStateSetter } from "../types.js";
2
+ import { type TreeDefaultIds, type TreeItemIdSet } from "./types.js";
3
3
  /**
4
4
  * @since 6.0.0 Renamed from `TreeItemSelection` and uses a Set
5
5
  * instead of a list to increase performance. Also renamed `onItemSelect` to
@@ -17,4 +17,4 @@ export interface TreeSelection {
17
17
  * @since 6.0.0 Renamed from `useTreeItemSelection` and uses a Set
18
18
  * instead of a list to increase performance.
19
19
  */
20
- export declare function useTreeSelection(defaultSelectedIds?: TreeItemDefaultIds, multiSelect?: boolean): Required<TreeSelection>;
20
+ export declare function useTreeSelection(defaultSelectedIds?: TreeDefaultIds, multiSelect?: boolean): Required<TreeSelection>;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/tree/useTreeSelection.ts"],"sourcesContent":["\"use client\";\nimport { useCallback, useState } from \"react\";\nimport type { UseStateSetter } from \"../types.js\";\nimport type { TreeItemDefaultIds, TreeItemIdSet } from \"./types.js\";\n\n/**\n * @since 6.0.0 Renamed from `TreeItemSelection` and uses a Set\n * instead of a list to increase performance. Also renamed `onItemSelect` to\n * `toggleTreeItemSelection` and `onMultiItemSelect` to\n * `selectMultipleTreeItems`.\n */\nexport interface TreeSelection {\n /** @defaultValue `false` */\n multiSelect?: boolean;\n selectedIds: ReadonlySet<string>;\n toggleTreeItemSelection(itemId: string): void;\n selectMultipleTreeItems: UseStateSetter<TreeItemIdSet>;\n}\n\n/**\n * @since 6.0.0 Renamed from `useTreeItemSelection` and uses a Set\n * instead of a list to increase performance.\n */\nexport function useTreeSelection(\n defaultSelectedIds?: TreeItemDefaultIds,\n multiSelect = false\n): Required<TreeSelection> {\n const [selectedIds, setSelectedIds] = useState<TreeItemIdSet>(() => {\n const defaultIds =\n typeof defaultSelectedIds === \"function\"\n ? defaultSelectedIds()\n : defaultSelectedIds;\n\n return new Set(defaultIds);\n });\n\n const toggleTreeItemSelection = useCallback(\n (itemId: string) => {\n setSelectedIds((selectedIds) => {\n if (!multiSelect) {\n return selectedIds.has(itemId) ? selectedIds : new Set([itemId]);\n }\n\n const nextSelectedIds = new Set(selectedIds);\n if (selectedIds.has(itemId)) {\n nextSelectedIds.delete(itemId);\n } else {\n nextSelectedIds.add(itemId);\n }\n\n return nextSelectedIds;\n });\n },\n [multiSelect]\n );\n\n return {\n selectedIds,\n multiSelect,\n toggleTreeItemSelection,\n selectMultipleTreeItems: setSelectedIds,\n };\n}\n"],"names":["useCallback","useState","useTreeSelection","defaultSelectedIds","multiSelect","selectedIds","setSelectedIds","defaultIds","Set","toggleTreeItemSelection","itemId","has","nextSelectedIds","delete","add","selectMultipleTreeItems"],"mappings":"AAAA;AACA,SAASA,WAAW,EAAEC,QAAQ,QAAQ,QAAQ;AAkB9C;;;CAGC,GACD,OAAO,SAASC,iBACdC,kBAAuC,EACvCC,cAAc,KAAK;IAEnB,MAAM,CAACC,aAAaC,eAAe,GAAGL,SAAwB;QAC5D,MAAMM,aACJ,OAAOJ,uBAAuB,aAC1BA,uBACAA;QAEN,OAAO,IAAIK,IAAID;IACjB;IAEA,MAAME,0BAA0BT,YAC9B,CAACU;QACCJ,eAAe,CAACD;YACd,IAAI,CAACD,aAAa;gBAChB,OAAOC,YAAYM,GAAG,CAACD,UAAUL,cAAc,IAAIG,IAAI;oBAACE;iBAAO;YACjE;YAEA,MAAME,kBAAkB,IAAIJ,IAAIH;YAChC,IAAIA,YAAYM,GAAG,CAACD,SAAS;gBAC3BE,gBAAgBC,MAAM,CAACH;YACzB,OAAO;gBACLE,gBAAgBE,GAAG,CAACJ;YACtB;YAEA,OAAOE;QACT;IACF,GACA;QAACR;KAAY;IAGf,OAAO;QACLC;QACAD;QACAK;QACAM,yBAAyBT;IAC3B;AACF"}
1
+ {"version":3,"sources":["../../src/tree/useTreeSelection.ts"],"sourcesContent":["\"use client\";\nimport { useCallback, useState } from \"react\";\nimport { type UseStateSetter } from \"../types.js\";\nimport { type TreeDefaultIds, type TreeItemIdSet } from \"./types.js\";\n\n/**\n * @since 6.0.0 Renamed from `TreeItemSelection` and uses a Set\n * instead of a list to increase performance. Also renamed `onItemSelect` to\n * `toggleTreeItemSelection` and `onMultiItemSelect` to\n * `selectMultipleTreeItems`.\n */\nexport interface TreeSelection {\n /** @defaultValue `false` */\n multiSelect?: boolean;\n selectedIds: ReadonlySet<string>;\n toggleTreeItemSelection(itemId: string): void;\n selectMultipleTreeItems: UseStateSetter<TreeItemIdSet>;\n}\n\n/**\n * @since 6.0.0 Renamed from `useTreeItemSelection` and uses a Set\n * instead of a list to increase performance.\n */\nexport function useTreeSelection(\n defaultSelectedIds?: TreeDefaultIds,\n multiSelect = false\n): Required<TreeSelection> {\n const [selectedIds, setSelectedIds] = useState<TreeItemIdSet>(() => {\n const defaultIds =\n typeof defaultSelectedIds === \"function\"\n ? defaultSelectedIds()\n : defaultSelectedIds;\n\n return new Set(defaultIds);\n });\n\n const toggleTreeItemSelection = useCallback(\n (itemId: string) => {\n setSelectedIds((selectedIds) => {\n if (!multiSelect) {\n return selectedIds.has(itemId) ? selectedIds : new Set([itemId]);\n }\n\n const nextSelectedIds = new Set(selectedIds);\n if (selectedIds.has(itemId)) {\n nextSelectedIds.delete(itemId);\n } else {\n nextSelectedIds.add(itemId);\n }\n\n return nextSelectedIds;\n });\n },\n [multiSelect]\n );\n\n return {\n selectedIds,\n multiSelect,\n toggleTreeItemSelection,\n selectMultipleTreeItems: setSelectedIds,\n };\n}\n"],"names":["useCallback","useState","useTreeSelection","defaultSelectedIds","multiSelect","selectedIds","setSelectedIds","defaultIds","Set","toggleTreeItemSelection","itemId","has","nextSelectedIds","delete","add","selectMultipleTreeItems"],"mappings":"AAAA;AACA,SAASA,WAAW,EAAEC,QAAQ,QAAQ,QAAQ;AAkB9C;;;CAGC,GACD,OAAO,SAASC,iBACdC,kBAAmC,EACnCC,cAAc,KAAK;IAEnB,MAAM,CAACC,aAAaC,eAAe,GAAGL,SAAwB;QAC5D,MAAMM,aACJ,OAAOJ,uBAAuB,aAC1BA,uBACAA;QAEN,OAAO,IAAIK,IAAID;IACjB;IAEA,MAAME,0BAA0BT,YAC9B,CAACU;QACCJ,eAAe,CAACD;YACd,IAAI,CAACD,aAAa;gBAChB,OAAOC,YAAYM,GAAG,CAACD,UAAUL,cAAc,IAAIG,IAAI;oBAACE;iBAAO;YACjE;YAEA,MAAME,kBAAkB,IAAIJ,IAAIH;YAChC,IAAIA,YAAYM,GAAG,CAACD,SAAS;gBAC3BE,gBAAgBC,MAAM,CAACH;YACzB,OAAO;gBACLE,gBAAgBE,GAAG,CAACJ;YACtB;YAEA,OAAOE;QACT;IACF,GACA;QAACR;KAAY;IAGf,OAAO;QACLC;QACAD;QACAK;QACAM,yBAAyBT;IAC3B;AACF"}