{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "alert",
  "title": "Alert",
  "description": "Displays a status or message banner.",
  "files": [
    {
      "path": "registry/new-york/ui/alert.tsx",
      "content": "import { cva, type VariantProps } from \"class-variance-authority\";\nimport type * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst alertVariants = cva(\n  \"relative grid w-full grid-cols-[0_1fr] items-start gap-y-0.5 rounded-lg border px-4 py-3 text-sm has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] has-[>svg]:gap-x-3 [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current\",\n  {\n    variants: {\n      variant: {\n        default: \"bg-card text-card-foreground\",\n        destructive:\n          \"bg-card text-destructive *:data-[slot=alert-description]:text-destructive/90 [&>svg]:text-current\",\n      },\n    },\n    defaultVariants: {\n      variant: \"default\",\n    },\n  }\n);\n\ntype LivePoliteness = \"polite\" | \"assertive\" | false;\n\nfunction Alert({\n  className,\n  variant,\n  live = \"polite\",\n  ...props\n}: React.ComponentProps<\"div\"> &\n  VariantProps<typeof alertVariants> & { live?: LivePoliteness }) {\n  const liveAttributes =\n    live === \"assertive\"\n      ? ({\n          role: \"alert\",\n          \"aria-live\": \"assertive\",\n          \"aria-atomic\": true,\n        } as const)\n      : live === \"polite\"\n        ? ({\n            role: \"status\",\n            \"aria-live\": \"polite\",\n            \"aria-atomic\": true,\n          } as const)\n        : ({} as const);\n  return (\n    <div\n      data-slot=\"alert\"\n      {...liveAttributes}\n      className={cn(alertVariants({ variant }), className)}\n      {...props}\n    />\n  );\n}\n\nfunction AlertTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n  return (\n    <div\n      className={cn(\n        \"col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight\",\n        className\n      )}\n      data-slot=\"alert-title\"\n      {...props}\n    />\n  );\n}\n\nfunction AlertDescription({\n  className,\n  ...props\n}: React.ComponentProps<\"div\">) {\n  return (\n    <div\n      className={cn(\n        \"col-start-2 grid justify-items-start gap-1 text-muted-foreground text-sm [&_p]:leading-relaxed\",\n        className\n      )}\n      data-slot=\"alert-description\"\n      {...props}\n    />\n  );\n}\n\nexport { Alert, AlertTitle, AlertDescription };\n",
      "type": "registry:ui"
    }
  ],
  "categories": [
    "component"
  ],
  "type": "registry:ui"
}