{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "sheet",
  "title": "Sheet",
  "description": "A drawer from any of the four edges. The edge it slides from keeps a lit border.",
  "dependencies": [
    "@base-ui/react",
    "lucide-react"
  ],
  "registryDependencies": [
    "@afterglow/theme"
  ],
  "files": [
    {
      "path": "registry/terminal/ui/sheet.tsx",
      "content": "\"use client\";\n\nimport { Dialog as SheetPrimitive } from \"@base-ui/react/dialog\";\nimport { XIcon } from \"lucide-react\";\nimport type * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Sheet({ ...props }: SheetPrimitive.Root.Props) {\n  return <SheetPrimitive.Root data-slot=\"sheet\" {...props} />;\n}\n\nfunction SheetTrigger({ ...props }: SheetPrimitive.Trigger.Props) {\n  return <SheetPrimitive.Trigger data-slot=\"sheet-trigger\" {...props} />;\n}\n\nfunction SheetClose({ ...props }: SheetPrimitive.Close.Props) {\n  return <SheetPrimitive.Close data-slot=\"sheet-close\" {...props} />;\n}\n\nconst SIDES = {\n  bottom:\n    \"inset-x-0 bottom-0 h-auto border-line-strong border-t data-closed:animate-slide-out-bottom data-open:animate-slide-in-bottom\",\n  left: \"inset-y-0 left-0 h-full w-3/4 border-line-strong border-r sm:max-w-sm data-closed:animate-slide-out-left data-open:animate-slide-in-left\",\n  right:\n    \"inset-y-0 right-0 h-full w-3/4 border-line-strong border-l sm:max-w-sm data-closed:animate-slide-out-right data-open:animate-slide-in-right\",\n  top: \"inset-x-0 top-0 h-auto border-line-strong border-b data-closed:animate-slide-out-top data-open:animate-slide-in-top\",\n} as const;\n\nfunction SheetContent({\n  className,\n  children,\n  side = \"right\",\n  ...props\n}: SheetPrimitive.Popup.Props & { side?: keyof typeof SIDES }) {\n  return (\n    <SheetPrimitive.Portal>\n      <SheetPrimitive.Backdrop\n        className=\"fixed inset-0 z-50 bg-scrim backdrop-blur-[5px] backdrop-saturate-[0.65] data-closed:animate-fade-out data-open:animate-fade-in\"\n        data-slot=\"sheet-overlay\"\n      />\n      <SheetPrimitive.Popup\n        className={cn(\n          \"fixed z-50 flex flex-col gap-4 bg-popover p-6 text-popover-foreground shadow-panel outline-none\",\n          SIDES[side],\n          className\n        )}\n        data-slot=\"sheet-content\"\n        {...props}\n      >\n        {children}\n        <SheetPrimitive.Close className=\"absolute top-4 right-4 rounded-none text-phosphor-dim outline-none transition-colors hover:text-phosphor-bright focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-phosphor-bright\">\n          <XIcon className=\"size-4\" />\n          <span className=\"sr-only\">Close</span>\n        </SheetPrimitive.Close>\n      </SheetPrimitive.Popup>\n    </SheetPrimitive.Portal>\n  );\n}\n\nfunction SheetHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n  return (\n    <div\n      className={cn(\"flex flex-col gap-1.5\", className)}\n      data-slot=\"sheet-header\"\n      {...props}\n    />\n  );\n}\n\nfunction SheetFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n  return (\n    <div\n      className={cn(\"mt-auto flex flex-col gap-2\", className)}\n      data-slot=\"sheet-footer\"\n      {...props}\n    />\n  );\n}\n\nfunction SheetTitle({ className, ...props }: SheetPrimitive.Title.Props) {\n  return (\n    <SheetPrimitive.Title\n      className={cn(\n        \"font-medium font-mono text-lg text-phosphor-bright leading-none\",\n        className\n      )}\n      data-slot=\"sheet-title\"\n      {...props}\n    />\n  );\n}\n\nfunction SheetDescription({\n  className,\n  ...props\n}: SheetPrimitive.Description.Props) {\n  return (\n    <SheetPrimitive.Description\n      className={cn(\"text-muted-foreground text-sm\", className)}\n      data-slot=\"sheet-description\"\n      {...props}\n    />\n  );\n}\n\nexport {\n  Sheet,\n  SheetClose,\n  SheetContent,\n  SheetDescription,\n  SheetFooter,\n  SheetHeader,\n  SheetTitle,\n  SheetTrigger,\n};\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}