{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "browse-folder-shadcnui",
"type": "registry:component",
"title": "Browse Folder",
"description": "Folder browser with animated tabs and content",
"registryDependencies": [
"button"
],
"dependencies": [
"framer-motion",
"react"
],
"files": [
{
"path": "@uitripled/react-shadcn/src/components/sections/browse-folder.tsx",
"content": "\"use client\";\n\nimport { Badge } from \"@/components/ui/badge\";\nimport { Button } from \"@/components/ui/button\";\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"@/components/ui/tabs\";\nimport { motion } from \"framer-motion\";\nimport { ChevronRight, Folder } from \"lucide-react\";\nimport type React from \"react\";\nimport { useState } from \"react\";\n\ninterface FolderItem {\n name: string;\n content: React.ReactNode;\n}\n\ninterface FolderBrowserProps {\n folders?: FolderItem[];\n initialFolder?: string;\n}\n\nexport function FolderBrowser({\n folders = [],\n initialFolder,\n}: FolderBrowserProps) {\n const [activeTab, setActiveTab] = useState(() => {\n if (initialFolder) return initialFolder;\n if (folders && folders.length > 0 && folders[0]?.name) {\n return folders[0].name;\n }\n return \"\";\n });\n\n return (\n \n {folder.name} Contents\n
\n