{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "modal",
  "dependencies": [
    "react-aria-components",
    "tailwind-variants"
  ],
  "files": [
    {
      "path": "registry/new-york/ui/modal.tsx",
      "content": "\"use client\"\n\nimport React from \"react\"\nimport {\n  ModalOverlay,\n  ModalOverlayProps,\n  Modal as RACModal,\n} from \"react-aria-components\"\nimport { tv } from \"tailwind-variants\"\n\nconst overlayStyles = tv({\n  base: \"absolute top-0 left-0 w-full h-(--page-height) isolate z-20 bg-black/[50%] backdrop-blur-lg\",\n  variants: {\n    isEntering: {\n      true: \"animate-in fade-in duration-200 ease-out\",\n    },\n    isExiting: {\n      true: \"animate-out fade-out duration-200 ease-in\",\n    },\n  },\n})\n\nconst modalStyles = tv({\n  base: \"max-h-[inherit] overflow-auto rounded-lg border bg-background shadow-lg outline outline-0 sm:rounded-lg\",\n  variants: {\n    isEntering: {\n      true: \"animate-in fade-in-0 zoom-in-95 duration-200\",\n    },\n    isExiting: {\n      true: \"animate-out fade-out-0 zoom-out-95 duration-200\",\n    },\n  },\n})\n\nexport function Modal(props: ModalOverlayProps) {\n  const { isDismissable = true } = props\n\n  return (\n    <ModalOverlay\n      {...props}\n      className={overlayStyles}\n      isDismissable={isDismissable}\n    >\n      <div className=\"sticky top-0 left-0 box-border flex h-(--visual-viewport-height) w-full items-center justify-center p-4\">\n        <RACModal {...props} className={modalStyles} />\n      </div>\n    </ModalOverlay>\n  )\n}\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}