{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "dialog",
  "type": "registry:ui",
  "dependencies": [
    "@radix-ui/react-dialog"
  ],
  "files": [
    {
      "path": "components/ui/dialog.tsx",
      "content": "'use client'\n\nimport * as React from 'react'\nimport * as DialogPrimitive from '@radix-ui/react-dialog'\n\nimport { cn } from '@/lib/utils'\n\nfunction Dialog({ ...props }: React.ComponentProps<typeof DialogPrimitive.Root>) {\n    return (\n        <DialogPrimitive.Root\n            data-slot=\"dialog\"\n            {...props}\n        />\n    )\n}\n\nfunction DialogTrigger({ ...props }: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n    return (\n        <DialogPrimitive.Trigger\n            data-slot=\"dialog-trigger\"\n            {...props}\n        />\n    )\n}\n\nfunction DialogPortal({ ...props }: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n    return (\n        <DialogPrimitive.Portal\n            data-slot=\"dialog-portal\"\n            {...props}\n        />\n    )\n}\n\nfunction DialogClose({ ...props }: React.ComponentProps<typeof DialogPrimitive.Close>) {\n    return (\n        <DialogPrimitive.Close\n            data-slot=\"dialog-close\"\n            {...props}\n        />\n    )\n}\n\nfunction DialogOverlay({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n    return (\n        <DialogPrimitive.Overlay\n            data-slot=\"dialog-overlay\"\n            className={cn('data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/80', className)}\n            {...props}\n        />\n    )\n}\n\nfunction DialogContent({ className, children, ...props }: React.ComponentProps<typeof DialogPrimitive.Content>) {\n    return (\n        <DialogPortal data-slot=\"dialog-portal\">\n            <DialogOverlay />\n            <DialogPrimitive.Content\n                data-slot=\"dialog-content\"\n                className={cn('bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed left-[50%] top-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg', className)}\n                {...props}>\n                {children}\n            </DialogPrimitive.Content>\n        </DialogPortal>\n    )\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<'div'>) {\n    return (\n        <div\n            data-slot=\"dialog-header\"\n            className={cn('flex flex-col gap-2 text-center sm:text-left', className)}\n            {...props}\n        />\n    )\n}\n\nfunction DialogFooter({ className, ...props }: React.ComponentProps<'div'>) {\n    return (\n        <div\n            data-slot=\"dialog-footer\"\n            className={cn('flex flex-col-reverse gap-2 sm:flex-row sm:justify-end', className)}\n            {...props}\n        />\n    )\n}\n\nfunction DialogTitle({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Title>) {\n    return (\n        <DialogPrimitive.Title\n            data-slot=\"dialog-title\"\n            className={cn('text-lg font-semibold leading-none', className)}\n            {...props}\n        />\n    )\n}\n\nfunction DialogDescription({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Description>) {\n    return (\n        <DialogPrimitive.Description\n            data-slot=\"dialog-description\"\n            className={cn('text-muted-foreground text-sm', className)}\n            {...props}\n        />\n    )\n}\n\nexport { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger }\n",
      "type": "registry:ui",
      "target": "components/ui/dialog.tsx"
    }
  ]
}