{
	"$schema": "https://ui.shadcn.com/schema/registry-item.json",
	"name": "dialog",
	"dependencies": [],
	"registryDependencies": [],
	"files": [
		{
			"path": "ui/dialog.tsx",
			"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { Dialog as BaseDialog } from \"@base-ui/react\"\nimport { XIcon } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Dialog({ ...props }: React.ComponentProps<typeof BaseDialog.Root>) {\n\treturn <BaseDialog.Root data-slot=\"dialog\" {...props} />\n}\n\nfunction DialogPortal({\n\t...props\n}: React.ComponentProps<typeof BaseDialog.Portal>) {\n\treturn <BaseDialog.Portal data-slot=\"dialog-portal\" {...props} />\n}\n\nfunction DialogTrigger({\n\t...props\n}: React.ComponentProps<typeof BaseDialog.Trigger>) {\n\treturn <BaseDialog.Trigger data-slot=\"dialog-trigger\" {...props} />\n}\n\nfunction DialogClose({\n\t...props\n}: React.ComponentProps<typeof BaseDialog.Close>) {\n\treturn <BaseDialog.Close data-slot=\"dialog-close\" {...props} />\n}\n\nfunction DialogOverlay({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof BaseDialog.Backdrop>) {\n\treturn (\n\t\t<BaseDialog.Backdrop\n\t\t\tdata-slot=\"dialog-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 DialogContent({\n\tclassName,\n\tchildren,\n\tshowCloseButton = true,\n\t...props\n}: React.ComponentProps<typeof BaseDialog.Popup> & {\n\tshowCloseButton?: boolean\n}) {\n\treturn (\n\t\t<DialogPortal data-slot=\"dialog-portal\">\n\t\t\t<DialogOverlay />\n\t\t\t<BaseDialog.Popup\n\t\t\t\tdata-slot=\"dialog-content\"\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"bg-popover text-popover-foreground fixed top-[100vh] left-1/2 z-50 grid w-full -translate-x-1/2 -translate-y-full gap-4 rounded-lg border p-6 shadow-lg transition-all duration-200 outline-none data-ending-style:translate-y-full data-ending-style:opacity-0 data-starting-style:translate-y-full data-starting-style:opacity-0 max-sm:rounded-b-none sm:top-[50%] sm:w-[32rem] sm:translate-x-[-50%] sm:translate-y-[-50%] sm:scale-[calc(1-0.1*var(--nested-dialogs))] data-ending-style:sm:translate-y-[-50%] data-ending-style:sm:scale-95 data-starting-style:sm:translate-y-[-50%] data-starting-style:sm:scale-95\",\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{showCloseButton && (\n\t\t\t\t\t<DialogClose 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\t<XIcon />\n\t\t\t\t\t\t<span className=\"sr-only\">Close</span>\n\t\t\t\t\t</DialogClose>\n\t\t\t\t)}\n\t\t\t</BaseDialog.Popup>\n\t\t</DialogPortal>\n\t)\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"dialog-header\"\n\t\t\tclassName={cn(\"flex flex-col gap-2 text-center sm:text-left\", className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction DialogFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n\treturn (\n\t\t<div\n\t\t\tdata-slot=\"dialog-footer\"\n\t\t\tclassName={cn(\n\t\t\t\t\"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction DialogTitle({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof BaseDialog.Title>) {\n\treturn (\n\t\t<BaseDialog.Title\n\t\t\tdata-slot=\"dialog-title\"\n\t\t\tclassName={cn(\"text-lg leading-none font-semibold\", className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nfunction DialogDescription({\n\tclassName,\n\t...props\n}: React.ComponentProps<typeof BaseDialog.Description>) {\n\treturn (\n\t\t<BaseDialog.Description\n\t\t\tdata-slot=\"dialog-description\"\n\t\t\tclassName={cn(\"text-muted-foreground text-sm\", className)}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nexport {\n\tDialog,\n\tDialogPortal,\n\tDialogOverlay,\n\tDialogClose,\n\tDialogTrigger,\n\tDialogContent,\n\tDialogHeader,\n\tDialogFooter,\n\tDialogTitle,\n\tDialogDescription,\n}\n",
			"type": "registry:ui",
			"target": ""
		}
	],
	"type": "registry:ui"
}
