Data/TreeView: Basic

A component for displaying hierarchical data structures
View fullscreen
Source Code
1import { TreeItem, TreeView } from "./TreeView.tsx";
2
3export const meta = {
4 title: "Data/TreeView",
5 description: "A component for displaying hierarchical data structures",
6};
7
8export function Basic() {
9 return (
10 <TreeView
11 selectedId="1.1.1"
12 expandedIds={["1", "1.1"]}
13 href={(id) => `/items/${id}`}
14 >
15 <TreeItem id="1" label="Project">
16 <TreeItem id="1.1" label="src">
17 <TreeItem id="1.1.1" label="components" />
18 <TreeItem id="1.1.2" label="utils" />
19 <TreeItem id="1.1.3" label="styles" />
20 </TreeItem>
21 <TreeItem id="1.2" label="docs">
22 <TreeItem id="1.2.1" label="api.md" />
23 <TreeItem id="1.2.2" label="setup.md" />
24 </TreeItem>
25 </TreeItem>
26 <TreeItem id="2" label="Settings">
27 <TreeItem id="2.1" label="General" />
28 <TreeItem id="2.2" label="Security" />
29 <TreeItem id="2.3" label="Privacy" />
30 </TreeItem>
31 </TreeView>
32 );
33}
34
35export function WithIcons() {
36 return (
37 <TreeView>
38 <TreeItem id="1" label="Documents" icon="📁">
39 <TreeItem id="1.1" label="Report.pdf" icon="📄" />
40 <TreeItem id="1.2" label="Invoice.pdf" icon="📄" />
41 </TreeItem>
42 <TreeItem id="2" label="Images" icon="🖼️">
43 <TreeItem id="2.1" label="photo.jpg" icon="🖼️" />
44 <TreeItem id="2.2" label="avatar.png" icon="🖼️" />
45 </TreeItem>
46 </TreeView>
47 );
48}
49