{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "files",
"type": "registry:ui",
"title": "Files",
"description": "A component that allows you to display a list of files and folders.",
"dependencies": [
"motion",
"lucide-react"
],
"registryDependencies": [
"https://animate-ui.com/r/motion-highlight",
"https://animate-ui.com/r/radix-accordion"
],
"files": [
{
"path": "registry/components/files/index.tsx",
"content": "'use client';\n\nimport * as React from 'react';\nimport { AnimatePresence, motion } from 'motion/react';\nimport { FileIcon, FolderIcon, FolderOpenIcon } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\nimport {\n Accordion,\n AccordionContent,\n AccordionItem,\n AccordionItemProps,\n AccordionTrigger,\n AccordionTriggerProps,\n useAccordionItem,\n} from '@/components/animate-ui/radix/accordion';\nimport {\n MotionHighlight,\n MotionHighlightItem,\n} from '@/components/animate-ui/effects/motion-highlight';\n\ntype FileButtonProps = React.ComponentProps<'div'> & {\n icons?: {\n close: React.ReactNode;\n open: React.ReactNode;\n };\n icon?: React.ReactNode;\n open?: boolean;\n sideComponent?: React.ReactNode;\n};\n\nfunction FileButton({\n children,\n className,\n icons,\n icon,\n open,\n sideComponent,\n ...props\n}: FileButtonProps) {\n return (\n