Skip to content

FileTree

File directory tree view with language-aware icons

Default

Usage

tsx
import { FileTree } from '@tryvienna/ui'

<div className="w-72 p-2 border border-border rounded-lg bg-background">
  <FileTree items={PROJECT_FILES} defaultExpanded={new Set(['src', 'src/components'])} />
</div>

Examples

Default

Default
tsx
<div className="w-72 p-2 border border-border rounded-lg bg-background">
  <FileTree items={PROJECT_FILES} defaultExpanded={new Set(['src', 'src/components'])} />
</div>

Interactive

Interactive
tsx
<div className="flex gap-4">
  <div className="w-72 p-2 border border-border rounded-lg bg-background">
    <FileTree
      items={PROJECT_FILES}
      defaultExpanded={new Set(['src', 'src/components'])}
      onFileClick={setSelected}
      selectedPath={selected}
    />
  </div>
  <div className="w-48 p-4 border border-border rounded-lg bg-background">
    <p className="text-sm text-muted-foreground">
      {selected ? `Selected: ${selected}` : 'Click a file to select'}
    </p>
  </div>
</div>

Multi Language

Multi Language
tsx
<div className="w-72 p-2 border border-border rounded-lg bg-background">
  <FileTree items={MULTI_LANG} defaultExpanded={new Set(['src'])} />
</div>

API Reference

FileTree

PropTypeDefaultDescription
itemsFileTreeItem[]-
onFileClick(path: string) =&gt; void-Called when a file is clicked
selectedPathstring-Currently selected file path
defaultExpandedSet&lt;string&gt;-Set of initially expanded directory paths

Data Attributes

Componentdata-slot
FileTree"file-tree"