"use client" import * as React from "react" import { Example, ExampleWrapper, } from "@/registry/bases/base/components/example" import { Button } from "@/registry/bases/base/ui/button" import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "@/registry/bases/base/ui/card" import { Collapsible, CollapsibleContent, CollapsibleTrigger, } from "@/registry/bases/base/ui/collapsible" import { Field, FieldGroup, FieldLabel } from "@/registry/bases/base/ui/field" import { Input } from "@/registry/bases/base/ui/input" import { Tabs, TabsList, TabsTrigger } from "@/registry/bases/base/ui/tabs" import { IconPlaceholder } from "@/app/(create)/components/icon-placeholder" export default function CollapsibleExample() { return ( ) } type FileTreeItem = { name: string } | { name: string; items: FileTreeItem[] } function CollapsibleFileTree() { const fileTree: FileTreeItem[] = [ { name: "components", items: [ { name: "ui", items: [ { name: "button.tsx" }, { name: "card.tsx" }, { name: "dialog.tsx" }, { name: "input.tsx" }, { name: "select.tsx" }, { name: "table.tsx" }, ], }, { name: "login-form.tsx" }, { name: "register-form.tsx" }, ], }, { name: "lib", items: [{ name: "utils.ts" }, { name: "cn.ts" }, { name: "api.ts" }], }, { name: "hooks", items: [ { name: "use-media-query.ts" }, { name: "use-debounce.ts" }, { name: "use-local-storage.ts" }, ], }, { name: "types", items: [{ name: "index.d.ts" }, { name: "api.d.ts" }], }, { name: "public", items: [ { name: "favicon.ico" }, { name: "logo.svg" }, { name: "images" }, ], }, { name: "app.tsx" }, { name: "layout.tsx" }, { name: "globals.css" }, { name: "package.json" }, { name: "tsconfig.json" }, { name: "README.md" }, { name: ".gitignore" }, ] const renderItem = (fileItem: FileTreeItem) => { if ("items" in fileItem) { return ( } > {fileItem.name} {fileItem.items.map((child) => renderItem(child))} ) } return ( {fileItem.name} ) } return ( Explorer Outline {fileTree.map((item) => renderItem(item))} ) } function CollapsibleSettings() { const [isOpen, setIsOpen] = React.useState(false) return ( Radius Set the corner radius of the element. Radius X Radius Y Radius X Radius Y } > {isOpen ? ( ) : ( )} ) }