{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "glass-dialog",
  "title": "Glass Dialog",
  "description": "Modal dialog components with backdrop blur and smooth animations for confirmations and forms.",
  "dependencies": [
    "@radix-ui/react-dialog",
    "lucide-react"
  ],
  "files": [
    {
      "path": "registry/liquid-glass/glass-dialog.tsx",
      "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { Dialog as DialogPrimitive } from \"radix-ui\"\nimport { X } from \"lucide-react\"\nimport { cn } from \"@/lib/utils\"\n\nconst GlassDialog = DialogPrimitive.Root\n\nconst GlassDialogTrigger = DialogPrimitive.Trigger\n\nconst GlassDialogPortal = DialogPrimitive.Portal\n\nconst GlassDialogClose = DialogPrimitive.Close\n\nconst GlassDialogOverlay = React.forwardRef<\n  React.ElementRef<typeof DialogPrimitive.Overlay>,\n  React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n  <DialogPrimitive.Overlay\n    ref={ref}\n    className={cn(\n      \"fixed inset-0 z-50 bg-black/60 backdrop-blur-sm\",\n      \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n      \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n      className,\n    )}\n    {...props}\n  />\n))\nGlassDialogOverlay.displayName = DialogPrimitive.Overlay.displayName\n\nconst GlassDialogContent = React.forwardRef<\n  React.ElementRef<typeof DialogPrimitive.Content>,\n  React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n  <GlassDialogPortal>\n    <GlassDialogOverlay />\n    <DialogPrimitive.Content\n      ref={ref}\n      className={cn(\n        \"fixed left-1/2 top-1/2 z-50 w-[calc(100%-2rem)] max-w-lg -translate-x-1/2 -translate-y-1/2\",\n        \"rounded-2xl border border-white/20 p-6\",\n        \"bg-white/10 backdrop-blur-2xl\",\n        \"shadow-[0_8px_32px_rgba(0,0,0,0.4)]\",\n        \"before:absolute before:inset-0 before:rounded-2xl\",\n        \"before:bg-linear-to-b before:from-white/15 before:to-transparent before:pointer-events-none\",\n        \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n        \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n        \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n        \"data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%]\",\n        \"data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%]\",\n        className,\n      )}\n      {...props}\n    >\n      <div className=\"relative z-10\">{children}</div>\n      <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-lg p-1 text-white/60 transition-all hover:text-white hover:bg-white/10 focus:outline-none focus:ring-2 focus:ring-white/50\">\n        <X className=\"h-4 w-4\" />\n        <span className=\"sr-only\">Close</span>\n      </DialogPrimitive.Close>\n    </DialogPrimitive.Content>\n  </GlassDialogPortal>\n))\nGlassDialogContent.displayName = DialogPrimitive.Content.displayName\n\nconst GlassDialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n  <div className={cn(\"flex flex-col gap-1.5 text-center sm:text-left\", className)} {...props} />\n)\nGlassDialogHeader.displayName = \"GlassDialogHeader\"\n\nconst GlassDialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n  <div className={cn(\"flex flex-col-reverse sm:flex-row sm:justify-end gap-2 mt-6\", className)} {...props} />\n)\nGlassDialogFooter.displayName = \"GlassDialogFooter\"\n\nconst GlassDialogTitle = React.forwardRef<\n  React.ElementRef<typeof DialogPrimitive.Title>,\n  React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n  <DialogPrimitive.Title\n    ref={ref}\n    className={cn(\"text-lg font-semibold text-white leading-none tracking-tight\", className)}\n    {...props}\n  />\n))\nGlassDialogTitle.displayName = DialogPrimitive.Title.displayName\n\nconst GlassDialogDescription = React.forwardRef<\n  React.ElementRef<typeof DialogPrimitive.Description>,\n  React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n  <DialogPrimitive.Description ref={ref} className={cn(\"text-sm text-white/60\", className)} {...props} />\n))\nGlassDialogDescription.displayName = DialogPrimitive.Description.displayName\n\nexport {\n  GlassDialog,\n  GlassDialogPortal,\n  GlassDialogOverlay,\n  GlassDialogClose,\n  GlassDialogTrigger,\n  GlassDialogContent,\n  GlassDialogHeader,\n  GlassDialogFooter,\n  GlassDialogTitle,\n  GlassDialogDescription,\n}\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}