{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "glass-dialog",
  "title": "Glass Dialog",
  "description": "A modal liquid-glass dialog on Base UI Dialog: a blurred scrim, a frosted tinted glass panel that scales into place, and accessible title, description, and close parts.",
  "dependencies": [
    "@base-ui/react"
  ],
  "registryDependencies": [
    "https://loreglasses.com/r/glass.json"
  ],
  "files": [
    {
      "path": "registry/default/glass-dialog/glass-dialog.tsx",
      "content": "\"use client\";\n\nimport { Dialog as DialogPrimitive } from \"@base-ui/react/dialog\";\nimport { GlassSurface } from \"@/components/ui/glass-surface\";\nimport { cn } from \"@/lib/utils\";\n\nconst GlassDialog = DialogPrimitive.Root;\nconst GlassDialogTrigger = DialogPrimitive.Trigger;\nconst GlassDialogClose = DialogPrimitive.Close;\n\ninterface GlassDialogContentProps extends DialogPrimitive.Popup.Props {\n  tint?: number;\n  tintColor?: string;\n}\n\nfunction GlassDialogContent({\n  tint = 0.75,\n  tintColor,\n  className,\n  children,\n  ...props\n}: GlassDialogContentProps) {\n  return (\n    <DialogPrimitive.Portal>\n      <DialogPrimitive.Backdrop className=\"fixed inset-0 z-50 bg-black/35 backdrop-blur-[8px] transition-opacity duration-300 data-[ending-style]:opacity-0 data-[starting-style]:opacity-0\" />\n      <DialogPrimitive.Popup\n        className={cn(\n          \"-translate-x-1/2 -translate-y-1/2 fixed top-1/2 left-1/2 z-50 outline-none transition-[scale,opacity] duration-300 ease-[cubic-bezier(0.34,1.3,0.64,1)] data-[ending-style]:scale-95 data-[ending-style]:opacity-0 data-[ending-style]:duration-150 data-[ending-style]:ease-out data-[starting-style]:scale-[0.85]\",\n          className\n        )}\n        {...props}\n      >\n        <GlassSurface blur={24} radius={28} tint={tint} tintColor={tintColor}>\n          <div className=\"w-[min(calc(100vw-2rem),400px)] p-6 text-[#1d1d1f] dark:text-[#f5f5f7]\">\n            {children}\n          </div>\n        </GlassSurface>\n      </DialogPrimitive.Popup>\n    </DialogPrimitive.Portal>\n  );\n}\n\nfunction GlassDialogTitle({\n  className,\n  ...props\n}: DialogPrimitive.Title.Props) {\n  return (\n    <DialogPrimitive.Title\n      className={cn(\n        \"font-semibold text-[17px] leading-snug tracking-tight\",\n        className\n      )}\n      {...props}\n    />\n  );\n}\n\nfunction GlassDialogDescription({\n  className,\n  ...props\n}: DialogPrimitive.Description.Props) {\n  return (\n    <DialogPrimitive.Description\n      className={cn(\"mt-1.5 text-[14px] leading-relaxed opacity-65\", className)}\n      {...props}\n    />\n  );\n}\n\nexport {\n  GlassDialog,\n  GlassDialogClose,\n  GlassDialogContent,\n  GlassDialogDescription,\n  GlassDialogTitle,\n  GlassDialogTrigger,\n};\nexport type { GlassDialogContentProps };\n",
      "type": "registry:ui"
    }
  ],
  "docs": "Modal alert on Base UI Dialog. Import the parts from \"@/components/ui/glass-dialog\" and compose trigger, panel, title, description, and close. Focus trap, escape, and outside-press dismissal are handled. The panel renders on GlassSurface over a blurred scrim. Accepts `tint`.",
  "type": "registry:ui"
}