{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "v0-sidebar-09",
"type": "registry:internal",
"author": "shadcn (https://ui.shadcn.com)",
"registryDependencies": [
"sidebar",
"breadcrumb",
"separator",
"collapsible",
"dropdown-menu",
"avatar",
"switch"
],
"files": [
{
"path": "internal/sidebar-09.tsx",
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n ArchiveX,\n BadgeCheck,\n Bell,\n ChevronsUpDown,\n Command,\n CreditCard,\n File,\n Inbox,\n LogOut,\n Send,\n Sparkles,\n Trash2,\n} from \"lucide-react\"\n\nimport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n} from \"@/components/ui/avatar\"\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\nimport { Label } from \"@/components/ui/label\"\nimport { Separator } from \"@/components/ui/separator\"\nimport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupContent,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarProvider,\n SidebarTrigger,\n useSidebar,\n} from \"@/components/ui/sidebar\"\nimport { Switch } from \"@/components/ui/switch\"\n\n// This is sample data\nconst data = {\n user: {\n name: \"shadcn\",\n email: \"m@example.com\",\n avatar: \"/avatars/shadcn.jpg\",\n },\n navMain: [\n {\n title: \"Inbox\",\n url: \"#\",\n icon: Inbox,\n isActive: true,\n },\n {\n title: \"Drafts\",\n url: \"#\",\n icon: File,\n isActive: false,\n },\n {\n title: \"Sent\",\n url: \"#\",\n icon: Send,\n isActive: false,\n },\n {\n title: \"Junk\",\n url: \"#\",\n icon: ArchiveX,\n isActive: false,\n },\n {\n title: \"Trash\",\n url: \"#\",\n icon: Trash2,\n isActive: false,\n },\n ],\n mails: [\n {\n name: \"William Smith\",\n email: \"williamsmith@example.com\",\n subject: \"Meeting Tomorrow\",\n date: \"09:34 AM\",\n teaser:\n \"Hi team, just a reminder about our meeting tomorrow at 10 AM.\\nPlease come prepared with your project updates.\",\n },\n {\n name: \"Alice Smith\",\n email: \"alicesmith@example.com\",\n subject: \"Re: Project Update\",\n date: \"Yesterday\",\n teaser:\n \"Thanks for the update. The progress looks great so far.\\nLet's schedule a call to discuss the next steps.\",\n },\n {\n name: \"Bob Johnson\",\n email: \"bobjohnson@example.com\",\n subject: \"Weekend Plans\",\n date: \"2 days ago\",\n teaser:\n \"Hey everyone! I'm thinking of organizing a team outing this weekend.\\nWould you be interested in a hiking trip or a beach day?\",\n },\n {\n name: \"Emily Davis\",\n email: \"emilydavis@example.com\",\n subject: \"Re: Question about Budget\",\n date: \"2 days ago\",\n teaser:\n \"I've reviewed the budget numbers you sent over.\\nCan we set up a quick call to discuss some potential adjustments?\",\n },\n {\n name: \"Michael Wilson\",\n email: \"michaelwilson@example.com\",\n subject: \"Important Announcement\",\n date: \"1 week ago\",\n teaser:\n \"Please join us for an all-hands meeting this Friday at 3 PM.\\nWe have some exciting news to share about the company's future.\",\n },\n {\n name: \"Sarah Brown\",\n email: \"sarahbrown@example.com\",\n subject: \"Re: Feedback on Proposal\",\n date: \"1 week ago\",\n teaser:\n \"Thank you for sending over the proposal. I've reviewed it and have some thoughts.\\nCould we schedule a meeting to discuss my feedback in detail?\",\n },\n {\n name: \"David Lee\",\n email: \"davidlee@example.com\",\n subject: \"New Project Idea\",\n date: \"1 week ago\",\n teaser:\n \"I've been brainstorming and came up with an interesting project concept.\\nDo you have time this week to discuss its potential impact and feasibility?\",\n },\n {\n name: \"Olivia Wilson\",\n email: \"oliviawilson@example.com\",\n subject: \"Vacation Plans\",\n date: \"1 week ago\",\n teaser:\n \"Just a heads up that I'll be taking a two-week vacation next month.\\nI'll make sure all my projects are up to date before I leave.\",\n },\n {\n name: \"James Martin\",\n email: \"jamesmartin@example.com\",\n subject: \"Re: Conference Registration\",\n date: \"1 week ago\",\n teaser:\n \"I've completed the registration for the upcoming tech conference.\\nLet me know if you need any additional information from my end.\",\n },\n {\n name: \"Sophia White\",\n email: \"sophiawhite@example.com\",\n subject: \"Team Dinner\",\n date: \"1 week ago\",\n teaser:\n \"To celebrate our recent project success, I'd like to organize a team dinner.\\nAre you available next Friday evening? Please let me know your preferences.\",\n },\n ],\n}\n\nexport default function Page() {\n return (\n \n \n \n \n \n \n \n \n \n All Inboxes\n \n \n \n Inbox\n \n \n \n \n
\n \n \n )\n}\n\nfunction AppSidebar({ ...props }: React.ComponentProps) {\n // Note: I'm using state to show active item.\n // IRL you should use the url/router.\n const [activeItem, setActiveItem] = React.useState(data.navMain[0])\n const [mails, setMails] = React.useState(data.mails)\n const { setOpen } = useSidebar()\n\n return (\n [data-sidebar=sidebar]]:flex-row\"\n {...props}\n >\n {/* This is the first sidebar */}\n {/* We disable collapsible and adjust width to icon. */}\n {/* This will make the sidebar appear as icons. */}\n \n \n \n \n \n \n