{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "glass-alert-dialog",
  "title": "Glass Alert Dialog",
  "description": "A liquid glass styled alert dialog for confirmations.",
  "dependencies": [
    "@radix-ui/react-alert-dialog"
  ],
  "registryDependencies": [
    "glass-button"
  ],
  "files": [
    {
      "path": "registry/liquid-glass/glass-alert-dialog.tsx",
      "content": "\"use client\"\n\nimport * as React from \"react\"\nimport * as AlertDialogPrimitive from \"@radix-ui/react-alert-dialog\"\nimport { cn } from \"@/lib/utils\"\nimport { glassButtonVariants } from \"./glass-button\"\n\nconst GlassAlertDialog = AlertDialogPrimitive.Root\n\nconst GlassAlertDialogTrigger = AlertDialogPrimitive.Trigger\n\nconst GlassAlertDialogPortal = AlertDialogPrimitive.Portal\n\nconst GlassAlertDialogOverlay = React.forwardRef<\n  React.ElementRef<typeof AlertDialogPrimitive.Overlay>,\n  React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n  <AlertDialogPrimitive.Overlay\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    ref={ref}\n  />\n))\nGlassAlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName\n\n\nconst GlassAlertDialogContent = React.forwardRef<\n  React.ElementRef<typeof AlertDialogPrimitive.Content>,\n  React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Content>\n>(({ className, ...props }, ref) => (\n  <GlassAlertDialogPortal>\n    <GlassAlertDialogOverlay />\n    <AlertDialogPrimitive.Content\n      ref={ref}\n      className={cn(\n        \"fixed left-1/2 top-1/2 z-50 w-full max-w-sm -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        \"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        // Glass highlight\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        className,\n      )}\n      {...props}\n    />\n  </GlassAlertDialogPortal>\n))\nGlassAlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName\n\nconst GlassAlertDialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n  <div className={cn(\"relative z-10 flex flex-col gap-2 text-center sm:text-left\", className)} {...props} />\n)\nGlassAlertDialogHeader.displayName = \"GlassAlertDialogHeader\"\n\nconst GlassAlertDialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n  <div\n    className={cn(\"relative z-10 flex flex-col-reverse sm:flex-row sm:justify-end gap-2 mt-6\", className)}\n    {...props}\n  />\n)\nGlassAlertDialogFooter.displayName = \"GlassAlertDialogFooter\"\n\nconst GlassAlertDialogTitle = React.forwardRef<\n  React.ElementRef<typeof AlertDialogPrimitive.Title>,\n  React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n  <AlertDialogPrimitive.Title ref={ref} className={cn(\"text-lg font-semibold text-white\", className)} {...props} />\n))\nGlassAlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName\n\nconst GlassAlertDialogDescription = React.forwardRef<\n  React.ElementRef<typeof AlertDialogPrimitive.Description>,\n  React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n  <AlertDialogPrimitive.Description ref={ref} className={cn(\"text-sm text-white/60\", className)} {...props} />\n))\nGlassAlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName\n\nconst GlassAlertDialogAction = React.forwardRef<\n  React.ElementRef<typeof AlertDialogPrimitive.Action>,\n  React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Action>\n>(({ className, ...props }, ref) => (\n  <AlertDialogPrimitive.Action\n    ref={ref}\n    className={cn(glassButtonVariants({ variant: \"primary\" }), className)}\n    {...props}\n  />\n))\nGlassAlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName\n\nconst GlassAlertDialogCancel = React.forwardRef<\n  React.ElementRef<typeof AlertDialogPrimitive.Cancel>,\n  React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Cancel>\n>(({ className, ...props }, ref) => (\n  <AlertDialogPrimitive.Cancel\n    ref={ref}\n    className={cn(glassButtonVariants({ variant: \"outline\" }), className)}\n    {...props}\n  />\n))\nGlassAlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName\n\nexport {\n  GlassAlertDialog,\n  GlassAlertDialogPortal,\n  GlassAlertDialogOverlay,\n  GlassAlertDialogTrigger,\n  GlassAlertDialogContent,\n  GlassAlertDialogHeader,\n  GlassAlertDialogFooter,\n  GlassAlertDialogTitle,\n  GlassAlertDialogDescription,\n  GlassAlertDialogAction,\n  GlassAlertDialogCancel,\n}\n",
      "type": "registry:component"
    }
  ],
  "type": "registry:component"
}