• Blog
  • Docs
  • Pricing
  • We’re hiring!
Log inSign up
drewmcdonald

drewmcdonald

promptCompare

Public
Like
promptCompare
Home
Code
11
.claude
3
.playwright-mcp
1
backend
3
docs
5
frontend
4
shared
1
.gitignore
.mcp.json
.vtignore
CLAUDE.md
deno.json
Environment variables
2
Branches
1
Pull requests
Remixes
History
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in milliseconds.
Sign up now
Code
/
.claude
/
skills
/
ai-elements
/
references
/
file-tree.md
Code
/
.claude
/
skills
/
ai-elements
/
references
/
file-tree.md
Search
…
Viewing readonly version of main branch: v174
View latest version
file-tree.md

File Tree

Display hierarchical file and folder structure with expand/collapse functionality.

The FileTree component displays a hierarchical file system structure with expandable folders and file selection.

See scripts/file-tree.tsx for this example.

Installation

npx ai-elements@latest add file-tree

Features

  • Hierarchical folder structure
  • Expand/collapse folders
  • File selection with callback
  • Keyboard accessible
  • Customizable icons
  • Controlled and uncontrolled modes

Examples

Basic Usage

See scripts/file-tree-basic.tsx for this example.

With Selection

See scripts/file-tree-selection.tsx for this example.

Default Expanded

See scripts/file-tree-expanded.tsx for this example.

Props

<FileTree />

PropTypeDefaultDescription
expandedSet<string>-Controlled expanded paths.
defaultExpandedSet<string>new Set()Default expanded paths.
selectedPathstring-Currently selected file/folder path.
onSelect(path: string) => void-Callback when a file/folder is selected.
onExpandedChange(expanded: Set<string>) => void-Callback when expanded paths change.
classNamestring-Additional CSS classes.

<FileTreeFolder />

PropTypeDefaultDescription
pathstring-Unique folder path.
namestring-Display name.
classNamestring-Additional CSS classes.

<FileTreeFile />

PropTypeDefaultDescription
pathstring-Unique file path.
namestring-Display name.
iconReactNode-Custom file icon.
classNamestring-Additional CSS classes.

Subcomponents

  • FileTreeIcon - Icon wrapper
  • FileTreeName - Name text
  • FileTreeActions - Action buttons container (stops click propagation)
FeaturesVersion controlCode intelligenceCLIMCP
Use cases
TeamsAI agentsSlackGTM
DocsShowcaseTemplatesNewestTrendingAPI examplesNPM packages
PricingNewsletterBlogAboutCareers
We’re hiring!
Brandhi@val.townStatus
X (Twitter)
Discord community
GitHub discussions
YouTube channel
Bluesky
Open Source Pledge
Terms of usePrivacy policyAbuse contact
© 2026 Val Town, Inc.