{"$schema":"https://ui.shadcn.com/schema/registry-item.json","name":"alert","type":"registry:component","title":"Alert","description":"Banner with a colored accent stripe. Body text stays neutral so contrast never depends on the variant.","author":"Ryan","dependencies":["clsx","tailwind-merge"],"registryDependencies":[],"files":[{"path":"components/motion/alert.tsx","type":"registry:component","target":"@components/motion/alert.tsx","content":"// easeui.dev/components/motion/alert\nimport type { HTMLAttributes } from \"react\";\nimport { cn } from \"@/lib/utils\";\n\nexport type AlertVariant = \"neutral\" | \"success\" | \"warning\" | \"destructive\";\n\nexport interface AlertProps extends HTMLAttributes<HTMLDivElement> {\n  /** Color of the accent stripe and icon. Default \"neutral\". */\n  variant?: AlertVariant;\n}\n\nconst ACCENT_CLASS: Record<AlertVariant, string> = {\n  neutral: \"border-l-border-strong [&_svg]:text-muted-foreground\",\n  success: \"border-l-success [&_svg]:text-success\",\n  warning: \"border-l-warning [&_svg]:text-warning\",\n  destructive: \"border-l-destructive [&_svg]:text-destructive\",\n};\n\n/** A banner with a colored accent stripe. Body text stays neutral so contrast never depends on the variant. */\nexport function Alert({ variant = \"neutral\", className, ...props }: AlertProps) {\n  return (\n    <div\n      role=\"alert\"\n      className={cn(\n        \"flex items-start gap-3 rounded-xl border-l-4 bg-card p-4 text-sm shadow-[0_0_0_1px_var(--border)]\",\n        ACCENT_CLASS[variant],\n        className,\n      )}\n      {...props}\n    />\n  );\n}\n\nexport function AlertTitle({ className, ...props }: HTMLAttributes<HTMLHeadingElement>) {\n  return (\n    <h5 className={cn(\"font-medium leading-tight text-foreground\", className)} {...props} />\n  );\n}\n\nexport function AlertDescription({ className, ...props }: HTMLAttributes<HTMLParagraphElement>) {\n  return (\n    <p className={cn(\"mt-1 text-pretty text-muted-foreground\", className)} {...props} />\n  );\n}\n"},{"path":"lib/utils.ts","type":"registry:lib","target":"@lib/utils.ts","content":"import { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n  return twMerge(clsx(inputs))\n}\n"}]}