Folder Tree

A customizable folder tree component for displaying hierarchical data with expandable nodes.

Loading...

Installation

npx shadcn@latest add @scrollxui/folder-tree 

Usage

import { FolderTree } from '@/components/ui/folder-tree';
<FolderTree.Root
  defaultExpanded={['root', 'folder1']}
  defaultSelected='file1'
  className='w-full'
>
  <FolderTree.Item id='root' label='Root Folder'>
    <FolderTree.Content>
      <FolderTree.Item id='folder1' label='Documents'>
        <FolderTree.Content>
          <FolderTree.Item id='file1' label='File 1.txt' />
          <FolderTree.Item id='file2' label='File 2.txt' />
          <FolderTree.Item id='file3' label='Image.png' />
        </FolderTree.Content>
      </FolderTree.Item>
    </FolderTree.Content>
  </FolderTree.Item>
</FolderTree.Root>

Examples


With Badges

Loading...

API Reference

FolderTree.Root

The root component that provides context and manages global state.

Props

PropertyTypeDefaultDescription
defaultExpandedstring[][]
IDs expanded by default.
defaultSelectedstringnull
ID selected by default.
onSelect(id, label) => voidundefined
Fires on select.
idstring"folder-tree"
Tree ID.
itemIdstringrequired
Item ID.
labelstringrequired
Item label.
iconLucideIconFolder | File
Custom icon.
badgestring | number
Right badge.
modifiedboolean | { content, className?, ariaLabel? }false
Modified state.
untrackedboolean | { content, className?, ariaLabel? }false
Untracked state.
classNamestring
Custom style.
childrenReactNode
Nested items.

Built withby Ahdeetai.