{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "extends": "none",
  "name": "tree-multiple-example",
  "title": "Tree Multiple",
  "description": "tree-multiple-example",
  "registryDependencies": [
    "https://intentui.com/r/tree"
  ],
  "files": [
    {
      "path": "src/components/examples/collections/tree/tree-multiple-example.tsx",
      "content": "'use client'\n\nimport { Tree, TreeContent, TreeItem } from '@/components/ui/tree'\n\ntype FileNode = {\n  id: string\n  name: string\n  children?: FileNode[]\n}\n\nconst fileStructure: FileNode[] = [\n  {\n    id: 'departments',\n    name: 'departments',\n    children: [\n      {\n        id: 'sales',\n        name: 'sales',\n        children: [\n          {\n            id: 'reports',\n            name: 'reports',\n            children: [\n              { id: 'q1', name: 'Q1.pdf' },\n              { id: 'q2', name: 'Q2.pdf' },\n              { id: 'q3', name: 'Q3.pdf' },\n            ],\n          },\n          {\n            id: 'clients',\n            name: 'clients',\n            children: [\n              { id: 'europe', name: 'europe.xlsx' },\n              { id: 'asia', name: 'asia.xlsx' },\n            ],\n          },\n        ],\n      },\n      {\n        id: 'hr',\n        name: 'hr',\n        children: [\n          {\n            id: 'docs',\n            name: 'docs',\n            children: [\n              { id: 'policy', name: 'leave-policy.pdf' },\n              { id: 'handbook', name: 'handbook.pdf' },\n              { id: 'benefits', name: 'benefits.pdf' },\n            ],\n          },\n        ],\n      },\n    ],\n  },\n  {\n    id: 'projects',\n    name: 'projects',\n    children: [\n      {\n        id: 'revamp',\n        name: 'website-revamp',\n        children: [\n          {\n            id: 'designs',\n            name: 'designs',\n            children: [\n              { id: 'home', name: 'home.fig' },\n              { id: 'about', name: 'about.fig' },\n              { id: 'pricing', name: 'pricing.fig' },\n            ],\n          },\n        ],\n      },\n      {\n        id: 'mobile',\n        name: 'mobile-app',\n        children: [\n          {\n            id: 'ios',\n            name: 'ios',\n            children: [\n              { id: 'v1', name: 'v1.0.ipa' },\n              { id: 'v2', name: 'v2.0.ipa' },\n            ],\n          },\n        ],\n      },\n    ],\n  },\n  {\n    id: 'clients',\n    name: 'clients',\n    children: [\n      {\n        id: 'acme',\n        name: 'acme-corp',\n        children: [\n          {\n            id: 'contracts',\n            name: 'contracts',\n            children: [\n              { id: '2024', name: '2024.pdf' },\n              { id: '2025', name: '2025.pdf' },\n            ],\n          },\n        ],\n      },\n      {\n        id: 'initech',\n        name: 'initech',\n        children: [\n          {\n            id: 'invoices',\n            name: 'invoices',\n            children: [\n              { id: 'inv1', name: 'inv-001.pdf' },\n              { id: 'inv2', name: 'inv-002.pdf' },\n              { id: 'inv3', name: 'inv-003.pdf' },\n            ],\n          },\n        ],\n      },\n    ],\n  },\n  {\n    id: 'legal',\n    name: 'legal',\n    children: [\n      {\n        id: 'nda',\n        name: 'nda',\n        children: [\n          { id: 'partner-a', name: 'partner-a.pdf' },\n          { id: 'partner-b', name: 'partner-b.pdf' },\n        ],\n      },\n      {\n        id: 'terms',\n        name: 'terms',\n        children: [\n          { id: '2024', name: '2024.pdf' },\n          { id: '2025', name: '2025.pdf' },\n        ],\n      },\n    ],\n  },\n  {\n    id: 'resources',\n    name: 'resources',\n    children: [\n      {\n        id: 'docs',\n        name: 'docs',\n        children: [\n          { id: 'api', name: 'api.md' },\n          { id: 'auth', name: 'auth.md' },\n          { id: 'sdk', name: 'sdk.md' },\n        ],\n      },\n      {\n        id: 'videos',\n        name: 'videos',\n        children: [\n          { id: 'intro', name: 'intro.mp4' },\n          { id: 'setup', name: 'setup.mp4' },\n        ],\n      },\n    ],\n  },\n]\n\nfunction renderTree(nodes: FileNode[], path: string[] = []) {\n  return nodes.map((node) => {\n    const currentPath = [...path, node.id].join('/')\n    return (\n      <TreeItem key={currentPath} id={currentPath} textValue={node.name}>\n        <TreeContent>{node.name}</TreeContent>\n        {node.children && renderTree(node.children, [...path, node.id])}\n      </TreeItem>\n    )\n  })\n}\n\nexport default function TreeMultipleDemo() {\n  return (\n    <Tree aria-label=\"File system\" selectionMode=\"multiple\">\n      {renderTree(fileStructure)}\n    </Tree>\n  )\n}\n",
      "type": "registry:page",
      "target": "app/tree-multiple-example/page.tsx"
    }
  ],
  "type": "registry:page"
}