{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "ai-chat-sidebar",
  "description": "A collapsible sidebar component for AI chat applications",
  "dependencies": [
    "lucide-react"
  ],
  "registryDependencies": [
    "sidebar",
    "breadcrumb",
    "separator",
    "@delta/scroll-fade-effect"
  ],
  "files": [
    {
      "path": "blocks/ai-chat-sidebar/components/app-sidebar.tsx",
      "content": "import type React from \"react\"\nimport { Plus, Settings } from \"lucide-react\"\n\nimport { ScrollFadeEffect } from \"@/components/ui/scroll-fade-effect\"\nimport {\n  Sidebar,\n  SidebarContent,\n  SidebarFooter,\n  SidebarGroup,\n  SidebarGroupContent,\n  SidebarGroupLabel,\n  SidebarHeader,\n  SidebarMenu,\n  SidebarMenuButton,\n  SidebarMenuItem,\n  SidebarProvider,\n  SidebarRail,\n  SidebarTrigger,\n} from \"@/components/ui/sidebar\"\n\nfunction Logo({ className }: { className?: string }) {\n  return (\n    <svg\n      viewBox=\"0 0 282 308\"\n      fill=\"none\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      className={className}\n    >\n      <path\n        d=\"M280.438 295.396L152.117 5.66075C151.645 3.87252 150.584 2.32152 149.12 1.29292C147.665 0.264327 145.896 -0.172778 144.147 0.0619372H120.258C118.509 -0.172778 116.74 0.264327 115.285 1.29292C113.821 2.32152 112.76 3.87252 112.288 5.66075L0.780777 295.396C0.171502 296.774 -0.0839596 298.294 0.0241376 299.81C0.132235 301.327 0.603995 302.788 1.40981 304.052C2.2058 305.318 3.30641 306.345 4.58392 307.034C5.87126 307.725 7.30596 308.054 8.75053 307.993H272.92C279.111 307.993 284.86 300.528 280.438 295.396ZM122.469 127.434L177.775 250.605C178.384 252.07 178.65 253.664 178.551 255.257C178.453 256.85 177.991 258.395 177.215 259.765C176.429 261.133 175.358 262.286 174.07 263.128C172.783 263.969 171.329 264.475 169.815 264.602H68.037C66.4941 264.493 64.9807 264.019 63.6246 263.213C62.2685 262.408 61.1089 261.293 60.2146 259.951C59.3204 258.607 58.7307 257.07 58.4752 255.454C58.2197 253.836 58.318 252.18 58.7504 250.605L106.539 127.434C107.266 125.856 108.397 124.525 109.802 123.594C111.207 122.663 112.838 122.169 114.499 122.169C116.17 122.169 117.791 122.663 119.206 123.594C120.612 124.525 121.741 125.856 122.469 127.434Z\"\n        fill=\"currentColor\"\n      />\n    </svg>\n  )\n}\n\n// Sample recent chats data\nconst recentChats = [\n  {\n    id: \"chat_001\",\n    title:\n      \"How to build a modern React application with TypeScript and Next.js\",\n  },\n  {\n    id: \"chat_002\",\n    title: \"Explain machine learning algorithms and their applications\",\n  },\n  { id: \"chat_003\", title: \"Write a Python script for data analysis\" },\n  {\n    id: \"chat_004\",\n    title: \"Debug my JavaScript code with complex async operations\",\n  },\n  {\n    id: \"chat_005\",\n    title: \"CSS flexbox and grid layout comprehensive tutorial\",\n  },\n  {\n    id: \"chat_006\",\n    title: \"Setting up Docker containerization for microservices architecture\",\n  },\n  { id: \"chat_007\", title: \"Database optimization techniques\" },\n  {\n    id: \"chat_008\",\n    title: \"API design best practices and RESTful conventions\",\n  },\n  {\n    id: \"chat_009\",\n    title: \"Implementing authentication and authorization in web applications\",\n  },\n  { id: \"chat_010\", title: \"Performance optimization strategies\" },\n  { id: \"chat_011\", title: \"Unit testing with Jest and React Testing Library\" },\n  { id: \"chat_012\", title: \"GraphQL vs REST API comparison\" },\n  {\n    id: \"chat_013\",\n    title: \"Serverless architecture with AWS Lambda functions\",\n  },\n  { id: \"chat_014\", title: \"Mobile app development with React Native\" },\n  {\n    id: \"chat_015\",\n    title: \"DevOps pipeline automation and CI/CD best practices\",\n  },\n  {\n    id: \"chat_016\",\n    title: \"Building scalable e-commerce platforms with microservices\",\n  },\n  {\n    id: \"chat_017\",\n    title: \"AI and machine learning model deployment strategies\",\n  },\n  {\n    id: \"chat_018\",\n    title: \"Blockchain development and smart contract programming\",\n  },\n  {\n    id: \"chat_019\",\n    title: \"Advanced CSS animations and interactive user interfaces\",\n  },\n  {\n    id: \"chat_020\",\n    title: \"Cloud infrastructure management with Terraform and Kubernetes\",\n  },\n]\n\nexport function AppSidebar({ ...props }: React.ComponentProps<typeof Sidebar>) {\n  return (\n    <SidebarProvider>\n      <Sidebar\n        collapsible=\"icon\"\n        className=\"bg-muted [&_[data-slot='sidebar-container']]:pr-0 [&_[data-slot='sidebar-container']]:pl-2\"\n        {...props}\n      >\n        <SidebarHeader>\n          <div className=\"flex items-center justify-between px-2 py-4 group-data-[collapsible=icon]:justify-center\">\n            <Logo className=\"size-6 group-data-[collapsible=icon]:hidden\" />\n            <SidebarTrigger\n              title=\"Cmd + / Toggle\"\n              className=\"[&>svg]:stroke-foreground/80 hover:[&>svg]:stroke-foreground group-data-[collapsible=icon]:mx-auto\"\n            />\n          </div>\n          <SidebarMenu>\n            <SidebarMenuItem>\n              <SidebarMenuButton\n                tooltip=\"New Chat\"\n                size=\"lg\"\n                className=\"group-data-[collapsible=icon]:mx-auto group-data-[collapsible=icon]:justify-center\"\n              >\n                <Plus className=\"stroke-foreground/80 hover:stroke-foreground h-7 w-7\" />\n                <span className=\"group-data-[collapsible=icon]:hidden\">\n                  New Chat\n                </span>\n              </SidebarMenuButton>\n            </SidebarMenuItem>\n          </SidebarMenu>\n        </SidebarHeader>\n\n        <SidebarContent className=\"overflow-x-hidden pb-12 group-data-[collapsible=icon]:hidden\">\n          <ScrollFadeEffect\n            intensity={48}\n            className=\"overscroll-none [scrollbar-color:rgb(163_163_163_/_0.5)_transparent] [scrollbar-width:thin] [&::-webkit-scrollbar]:h-1.5 [&::-webkit-scrollbar]:w-1.5 [&::-webkit-scrollbar-thumb]:rounded-full [&::-webkit-scrollbar-thumb]:bg-[rgb(163_163_163_/_0.5)] hover:[&::-webkit-scrollbar-thumb]:bg-[rgb(163_163_163_/_0.7)] [&::-webkit-scrollbar-track]:bg-transparent\"\n          >\n            <SidebarGroup>\n              <SidebarGroupLabel className=\"font-medium\">\n                Recent Chats\n              </SidebarGroupLabel>\n              <SidebarGroupContent>\n                <SidebarMenu>\n                  {recentChats.map((chat) => (\n                    <SidebarMenuItem key={chat.id}>\n                      <SidebarMenuButton asChild>\n                        <a href={`#${chat.id}`} className=\"w-full\">\n                          <span className=\"truncate text-sm\">{chat.title}</span>\n                        </a>\n                      </SidebarMenuButton>\n                    </SidebarMenuItem>\n                  ))}\n                </SidebarMenu>\n              </SidebarGroupContent>\n            </SidebarGroup>\n          </ScrollFadeEffect>\n        </SidebarContent>\n\n        <SidebarFooter className=\"group-data-[collapsible=icon]:absolute group-data-[collapsible=icon]:right-0 group-data-[collapsible=icon]:bottom-2 group-data-[collapsible=icon]:left-0\">\n          <SidebarMenu>\n            <SidebarMenuItem>\n              <SidebarMenuButton\n                tooltip=\"Settings\"\n                className=\"group-data-[collapsible=icon]:mx-auto group-data-[collapsible=icon]:justify-center\"\n              >\n                <Settings className=\"stroke-foreground/80 hover:stroke-foreground h-7 w-7\" />\n                <span className=\"group-data-[collapsible=icon]:hidden\">\n                  Settings\n                </span>\n              </SidebarMenuButton>\n            </SidebarMenuItem>\n          </SidebarMenu>\n        </SidebarFooter>\n\n        <SidebarRail />\n      </Sidebar>\n    </SidebarProvider>\n  )\n}\n",
      "type": "registry:component",
      "target": "components/app-sidebar.tsx"
    },
    {
      "path": "blocks/ai-chat-sidebar/page.tsx",
      "content": "import { AppSidebar } from \"./components/app-sidebar\"\n\nexport default function Home() {\n  return (\n    <>\n      <AppSidebar />\n      <main className=\"flex min-h-svh flex-1 flex-col\">\n        <div className=\"flex flex-1 items-center justify-center p-8\">\n          <div className=\"text-muted-foreground text-center\">\n            LLM chat component to be added later\n          </div>\n        </div>\n      </main>\n    </>\n  )\n}\n",
      "type": "registry:page",
      "target": "app/page.tsx"
    }
  ],
  "meta": {
    "iframeHeight": "800px",
    "container": "w-full h-screen",
    "mobile": "component"
  },
  "categories": [
    "ai-elements"
  ],
  "type": "registry:block"
}