{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "collapsible-sidebar",
  "type": "registry:ui",
  "title": "Collapsible sidebar",
  "description": "Sidebar with a toggle button on its edge that collapses it to a narrow rail and expands it again. The button label updates for screen readers.",
  "dependencies": [
    "lucide-react"
  ],
  "registryDependencies": [
    "https://ui.minidev.pro/r/button.json",
    "https://ui.minidev.pro/r/sidebar.json",
    "utils"
  ],
  "files": [
    {
      "path": "registry/ui/collapsible-sidebar.tsx",
      "type": "registry:ui",
      "target": "components/ui/collapsible-sidebar.tsx",
      "content": "\"use client\"\nimport * as React from \"react\"\nimport { cn } from \"@/lib/utils\"\nimport { Sidebar } from \"@/components/ui/sidebar\"\nimport { Button } from \"@/components/ui/button\"\nimport { PanelLeftIcon } from \"lucide-react\"\nfunction CollapsibleSidebar({\n  children,\n  className,\n}: {\n  children: React.ReactNode\n  className?: string\n}) {\n  const [collapsed, setCollapsed] = React.useState(false)\n  return (\n    <div data-slot=\"collapsible-sidebar\" className={cn(\"relative\", className)}>\n      <Sidebar collapsed={collapsed}>{children}</Sidebar>\n      <Button\n        size=\"icon-sm\"\n        variant=\"outline\"\n        className=\"absolute top-2 -right-3 z-20\"\n        aria-label={collapsed ? \"Expand sidebar\" : \"Collapse sidebar\"}\n        onClick={() => setCollapsed((v) => !v)}\n      >\n        <PanelLeftIcon />\n      </Button>\n    </div>\n  )\n}\nexport { CollapsibleSidebar }\n"
    }
  ]
}
