{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "native-dialog-shadcnui",
  "type": "registry:component",
  "title": "Native Dialog",
  "description": "A glassmorphism-styled dialog component with backdrop blur and smooth animations, inspired by native OS modals.",
  "dependencies": [
    "framer-motion",
    "react"
  ],
  "files": [
    {
      "path": "@uitripled/react-shadcn/src/components/native/native-dialog-shadcnui.tsx",
      "content": "\"use client\";\n\nimport {\n  DialogDescription as BaseDialogDescription,\n  DialogTitle as BaseDialogTitle,\n  Dialog,\n  DialogClose,\n  DialogFooter,\n  DialogHeader,\n  DialogPortal,\n  DialogTrigger,\n} from \"@/components/ui/dialog\";\nimport { cn } from \"@/lib/utils\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport { motion, MotionConfig } from \"framer-motion\";\nimport { X } from \"lucide-react\";\nimport * as React from \"react\";\n\nconst NativeDialog = Dialog;\n\nconst NativeDialogTrigger = DialogTrigger;\n\nconst NativeDialogPortal = DialogPortal;\n\nconst NativeDialogClose = DialogClose;\n\nconst NativeDialogOverlay = React.forwardRef<\n  React.ElementRef<typeof DialogPrimitive.Overlay>,\n  React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n  <DialogPrimitive.Overlay ref={ref} asChild {...props}>\n    <motion.div\n      initial={{ opacity: 0 }}\n      animate={{ opacity: 1 }}\n      exit={{ opacity: 0 }}\n      className={cn(\n        \"fixed inset-0 z-50 bg-black/20 backdrop-blur-sm\",\n        className\n      )}\n    />\n  </DialogPrimitive.Overlay>\n));\nNativeDialogOverlay.displayName = DialogPrimitive.Overlay.displayName;\n\nconst NativeDialogContent = React.forwardRef<\n  React.ElementRef<typeof DialogPrimitive.Content>,\n  React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n  <NativeDialogPortal>\n    <MotionConfig reducedMotion=\"user\">\n      <NativeDialogOverlay />\n      <DialogPrimitive.Content ref={ref} asChild {...props}>\n        <motion.div\n          initial={{ opacity: 0, scale: 0.95, filter: \"blur(10px)\" }}\n          animate={{ opacity: 1, scale: 1, filter: \"blur(0px)\" }}\n          exit={{ opacity: 0, scale: 0.95, filter: \"blur(10px)\" }}\n          transition={{ type: \"spring\", duration: 0.4, bounce: 0 }}\n          className={cn(\n            \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-black/10 dark:border-white/10 bg-white/70 dark:bg-neutral-900/70 backdrop-blur-xl p-6 shadow-2xl sm:rounded-2xl\",\n            className\n          )}\n        >\n          {children}\n          <DialogClose className=\"absolute right-4 top-4 rounded-full p-1 opacity-70 ring-offset-background transition-[opacity,background-color,scale] duration-150 hover:opacity-100 hover:bg-black/5 dark:hover:bg-white/10 active:scale-[0.96] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none after:absolute after:-inset-2\">\n            <X aria-hidden=\"true\" className=\"h-4 w-4\" />\n            <span className=\"sr-only\">Close</span>\n          </DialogClose>\n        </motion.div>\n      </DialogPrimitive.Content>\n    </MotionConfig>\n  </NativeDialogPortal>\n));\nNativeDialogContent.displayName = DialogPrimitive.Content.displayName;\n\nconst NativeDialogHeader = DialogHeader;\nNativeDialogHeader.displayName = \"NativeDialogHeader\";\n\nconst NativeDialogFooter = DialogFooter;\nNativeDialogFooter.displayName = \"NativeDialogFooter\";\n\nconst NativeDialogTitle = BaseDialogTitle;\nNativeDialogTitle.displayName = \"NativeDialogTitle\";\n\nconst NativeDialogDescription = BaseDialogDescription;\nNativeDialogDescription.displayName = \"NativeDialogDescription\";\n\nexport {\n  NativeDialog,\n  NativeDialogClose,\n  NativeDialogContent,\n  NativeDialogDescription,\n  NativeDialogFooter,\n  NativeDialogHeader,\n  NativeDialogOverlay,\n  NativeDialogPortal,\n  NativeDialogTitle,\n  NativeDialogTrigger,\n};\n",
      "type": "registry:component",
      "target": "components/uitripled/native-dialog-shadcnui.tsx"
    }
  ]
}