{
	"$schema": "https://ui.shadcn.com/schema/registry-item.json",
	"name": "sheet",
	"dependencies": [],
	"registryDependencies": [],
	"files": [
		{
			"path": "ui/sheet.tsx",
			"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { Dialog as BaseSheet } from \"@base-ui/react/dialog\"\nimport { XIcon } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Sheet({ ...props }: React.ComponentProps<typeof BaseSheet.Root>) {\n\treturn <BaseSheet.Root data-slot=\"sheet\" {...props} />\n}\n\nfunction SheetTrigger({\n\t...props\n}: React.ComponentProps<typeof BaseSheet.Trigger>) {\n\treturn <BaseSheet.Trigger data-slot=\"sheet-trigger\" {...props} />\n}\n\nfunction SheetClose({\n\t...props\n}: React.ComponentProps<typeof BaseSheet.Close>) {\n\treturn <BaseSheet.Close data-slot=\"sheet-close\" {...props} />\n}\n\nfunction SheetPortal({\n\t...props\n}: React.ComponentProps<typeof BaseSheet.Portal>) {\n\treturn <BaseSheet.Portal data-slot=\"sheet-portal\" {...props} />\n}\n\nfunction SheetOverlay({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof BaseSheet.Backdrop>) {\n\treturn (\n\t\t<BaseSheet.Backdrop\n\t\t\tdata-slot=\"sheet-overlay\"\n\t\t\tclassName={cn(\n\t\t\t\t\"fixed inset-0 bg-black/50 transition-all duration-200 [&[data-ending-style]]:opacity-0 [&[data-starting-style]]:opacity-0\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction SheetContent({\n\tclassName,\n\tchildren,\n\tside = \"right\",\n\t...props\n}: React.ComponentProps<typeof BaseSheet.Popup> & {\n\tside?: \"top\" | \"right\" | \"bottom\" | \"left\"\n}) {\n\treturn (\n\t\t<SheetPortal>\n\t\t\t<SheetOverlay />\n\t\t\t<BaseSheet.Popup\n\t\t\t\tdata-slot=\"sheet-content\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"bg-popover text-popover-foreground fixed z-50 flex max-h-[calc(100vh-2rem)] flex-col gap-4 rounded-lg shadow-lg outline-hidden transition ease-in-out data-closed:duration-200 data-open:duration-500\",\n\t\t\t\t\tside === \"right\" &&\n\t\t\t\t\t\t\"inset-y-0 top-4 right-0 h-full w-3/4 origin-right -translate-x-4 border sm:max-w-sm [&[data-ending-style]]:translate-x-full [&[data-starting-style]]:translate-x-full\",\n\t\t\t\t\tside === \"left\" &&\n\t\t\t\t\t\t\"inset-y-0 top-4 left-0 h-full w-3/4 origin-left translate-x-4 border sm:max-w-sm [&[data-ending-style]]:-translate-x-full [&[data-starting-style]]:-translate-x-full\",\n\t\t\t\t\tside === \"top\" &&\n\t\t\t\t\t\t\"inset-x-0 top-0 mx-auto h-auto w-[calc(100vw-2rem)] origin-top translate-y-4 border [&[data-ending-style]]:-translate-y-full [&[data-starting-style]]:-translate-y-full\",\n\t\t\t\t\tside === \"bottom\" &&\n\t\t\t\t\t\t\"inset-x-0 bottom-0 mx-auto h-auto w-[calc(100vw-2rem)] origin-bottom -translate-y-4 border [&[data-ending-style]]:translate-y-full [&[data-starting-style]]:translate-y-full\",\n\t\t\t\t\tclassName\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t\t<SheetClose className=\"ring-offset-popover focus:ring-ring text-muted-foreground absolute top-4 right-4 rounded-xs opacity-50 transition-opacity hover:opacity-100 focus:ring-[3px] focus:ring-offset-2 focus:outline-hidden [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\">\n\t\t\t\t\t<XIcon className=\"size-4\" />\n\t\t\t\t\t<span className=\"sr-only\">Close</span>\n\t\t\t\t</SheetClose>\n\t\t\t</BaseSheet.Popup>\n\t\t</SheetPortal>\n\t)\n}\n\nfunction SheetHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sheet-header\"\n\t\t\tclassName={cn(\"flex flex-col gap-1.5 p-4\", className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction SheetTitle({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof BaseSheet.Title>) {\n\treturn (\n\t\t<BaseSheet.Title\n\t\t\tdata-slot=\"sheet-title\"\n\t\t\tclassName={cn(\"text-foreground font-semibold\", className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction SheetDescription({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof BaseSheet.Description>) {\n\treturn (\n\t\t<BaseSheet.Description\n\t\t\tdata-slot=\"sheet-description\"\n\t\t\tclassName={cn(\"text-muted-foreground text-sm\", className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction SheetFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"sheet-footer\"\n\t\t\tclassName={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nexport {\n\tSheet,\n\tSheetOverlay,\n\tSheetContent,\n\tSheetTrigger,\n\tSheetClose,\n\tSheetHeader,\n\tSheetTitle,\n\tSheetDescription,\n\tSheetFooter,\n}\n",
			"type": "registry:ui",
			"target": ""
		}
	],
	"type": "registry:ui"
}
