{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "radix-sidebar-demo", "type": "registry:ui", "title": "Radix Sidebar Demo", "description": "Demo showing a sidebar with radix components.", "dependencies": [ "lucide-react", "motion" ], "registryDependencies": [ "https://animate-ui.com/r/radix-sidebar", "https://animate-ui.com/r/radix-collapsible", "https://animate-ui.com/r/radix-dropdown-menu", "use-mobile", "avatar", "breadcrumb", "separator" ], "files": [ { "path": "registry/demo/radix/sidebar/index.tsx", "content": "'use client';\n\nimport * as React from 'react';\n\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from '@/components/ui/breadcrumb';\nimport { Separator } from '@/components/ui/separator';\nimport {\n SidebarProvider,\n SidebarInset,\n SidebarTrigger,\n Sidebar,\n SidebarHeader,\n SidebarContent,\n SidebarFooter,\n SidebarRail,\n SidebarGroup,\n SidebarGroupLabel,\n SidebarMenu,\n SidebarMenuItem,\n SidebarMenuButton,\n SidebarMenuSub,\n SidebarMenuSubItem,\n SidebarMenuSubButton,\n SidebarMenuAction,\n} from '@/components/animate-ui/radix/sidebar';\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from '@/components/animate-ui/radix/collapsible';\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuTrigger,\n} from '@/components/animate-ui/radix/dropdown-menu';\nimport {\n AudioWaveform,\n BadgeCheck,\n Bell,\n BookOpen,\n Bot,\n ChevronRight,\n ChevronsUpDown,\n Command,\n CreditCard,\n Folder,\n Forward,\n Frame,\n GalleryVerticalEnd,\n LogOut,\n Map,\n MoreHorizontal,\n PieChart,\n Plus,\n Settings2,\n Sparkles,\n SquareTerminal,\n Trash2,\n} from 'lucide-react';\nimport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n} from '@/components/ui/avatar';\nimport { useIsMobile } from '@/hooks/use-mobile';\n\nconst DATA = {\n user: {\n name: 'Skyleen',\n email: 'skyleen@example.com',\n avatar:\n 'https://pbs.twimg.com/profile_images/1909615404789506048/MTqvRsjo_400x400.jpg',\n },\n teams: [\n {\n name: 'Acme Inc',\n logo: GalleryVerticalEnd,\n plan: 'Enterprise',\n },\n {\n name: 'Acme Corp.',\n logo: AudioWaveform,\n plan: 'Startup',\n },\n {\n name: 'Evil Corp.',\n logo: Command,\n plan: 'Free',\n },\n ],\n navMain: [\n {\n title: 'Playground',\n url: '#',\n icon: SquareTerminal,\n isActive: true,\n items: [\n {\n title: 'History',\n url: '#',\n },\n {\n title: 'Starred',\n url: '#',\n },\n {\n title: 'Settings',\n url: '#',\n },\n ],\n },\n {\n title: 'Models',\n url: '#',\n icon: Bot,\n items: [\n {\n title: 'Genesis',\n url: '#',\n },\n {\n title: 'Explorer',\n url: '#',\n },\n {\n title: 'Quantum',\n url: '#',\n },\n ],\n },\n {\n title: 'Documentation',\n url: '#',\n icon: BookOpen,\n items: [\n {\n title: 'Introduction',\n url: '#',\n },\n {\n title: 'Get Started',\n url: '#',\n },\n {\n title: 'Tutorials',\n url: '#',\n },\n {\n title: 'Changelog',\n url: '#',\n },\n ],\n },\n {\n title: 'Settings',\n url: '#',\n icon: Settings2,\n items: [\n {\n title: 'General',\n url: '#',\n },\n {\n title: 'Team',\n url: '#',\n },\n {\n title: 'Billing',\n url: '#',\n },\n {\n title: 'Limits',\n url: '#',\n },\n ],\n },\n ],\n projects: [\n {\n name: 'Design Engineering',\n url: '#',\n icon: Frame,\n },\n {\n name: 'Sales & Marketing',\n url: '#',\n icon: PieChart,\n },\n {\n name: 'Travel',\n url: '#',\n icon: Map,\n },\n ],\n};\n\nexport const RadixSidebarDemo = () => {\n const isMobile = useIsMobile();\n const [activeTeam, setActiveTeam] = React.useState(DATA.teams[0]);\n\n if (!activeTeam) return null;\n\n return (\n \n \n \n {/* Team Switcher */}\n \n \n \n \n \n
\n \n
\n
\n \n {activeTeam.name}\n \n \n {activeTeam.plan}\n \n
\n \n \n
\n \n \n Teams\n \n {DATA.teams.map((team, index) => (\n setActiveTeam(team)}\n className=\"gap-2 p-2\"\n >\n
\n \n
\n {team.name}\n ⌘{index + 1}\n \n ))}\n \n \n
\n \n
\n
\n Add team\n
\n
\n \n
\n
\n
\n {/* Team Switcher */}\n
\n\n \n {/* Nav Main */}\n \n Platform\n \n {DATA.navMain.map((item) => (\n \n \n \n \n {item.icon && }\n {item.title}\n \n \n \n \n \n {item.items?.map((subItem) => (\n \n \n \n {subItem.title}\n \n \n \n ))}\n \n \n \n \n ))}\n \n \n {/* Nav Main */}\n\n {/* Nav Project */}\n \n Projects\n \n {DATA.projects.map((item) => (\n \n \n \n \n {item.name}\n \n \n \n \n \n \n More\n \n \n \n \n \n View Project\n \n \n \n Share Project\n \n \n \n \n Delete Project\n \n \n \n \n ))}\n \n \n \n More\n \n \n \n \n {/* Nav Project */}\n \n \n {/* Nav User */}\n \n \n \n \n \n \n \n CN\n \n
\n \n {DATA.user.name}\n \n \n {DATA.user.email}\n \n
\n \n \n
\n \n \n
\n \n \n \n CN\n \n \n
\n \n {DATA.user.name}\n \n \n {DATA.user.email}\n \n
\n
\n
\n \n \n \n \n Upgrade to Pro\n \n \n \n \n \n \n Account\n \n \n \n Billing\n \n \n \n Notifications\n \n \n \n \n \n Log out\n \n \n
\n
\n
\n {/* Nav User */}\n
\n \n
\n\n \n
\n
\n \n \n \n \n \n \n Building Your Application\n \n \n \n \n Data Fetching\n \n \n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n );\n};\n", "type": "registry:ui", "target": "components/animate-ui/demo/radix/sidebar.tsx" } ] }