{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "alert",
  "type": "registry:ui",
  "title": "Alert",
  "description": "Alert panel with STATUS, WARNING, CRITICAL, and INFO variants.",
  "dependencies": [
    "class-variance-authority"
  ],
  "registryDependencies": [
    "utils"
  ],
  "files": [
    {
      "path": "ui/alert/alert.tsx",
      "type": "registry:ui",
      "content": "import * as React from 'react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '@/lib/utils'\n\nconst alertVariants = cva(\n  [\n    'relative w-full',\n    'border border-solid border-l-[3px]',\n    'p-4',\n    'font-mono',\n    'rounded-none',\n  ],\n  {\n    variants: {\n      variant: {\n        STATUS: [\n          'border-[var(--border)]',\n          'border-l-[var(--color-green)]',\n          'bg-[var(--surface)]',\n        ],\n        WARNING: [\n          'border-[var(--border)]',\n          'border-l-[var(--color-amber)]',\n          'bg-[var(--surface)]',\n        ],\n        CRITICAL: [\n          'border-[var(--border)]',\n          'border-l-[var(--color-red)]',\n          'bg-[var(--surface)]',\n        ],\n        INFO: [\n          'border-[var(--border)]',\n          'border-l-[var(--color-blue)]',\n          'bg-[var(--surface)]',\n        ],\n      },\n    },\n    defaultVariants: { variant: 'STATUS' },\n  }\n)\n\nconst prefixMap = {\n  STATUS:   { symbol: '◈', color: 'var(--color-green)', glow: 'var(--text-glow-green)' },\n  WARNING:  { symbol: '⚠', color: 'var(--color-amber)', glow: 'var(--text-glow-amber)' },\n  CRITICAL: { symbol: '✕', color: 'var(--color-red)',   glow: 'var(--text-glow-red)' },\n  INFO:     { symbol: 'ℹ', color: 'var(--color-blue)',  glow: 'var(--text-glow-blue)' },\n}\n\nexport interface AlertProps\n  extends React.HTMLAttributes<HTMLDivElement>,\n    VariantProps<typeof alertVariants> {}\n\nconst Alert = React.forwardRef<HTMLDivElement, AlertProps>(\n  ({ className, variant = 'STATUS', children, ...props }, ref) => {\n    const v = variant ?? 'STATUS'\n    const prefix = prefixMap[v]\n\n    return (\n      <div ref={ref} className={cn(alertVariants({ variant }), className)} role=\"alert\" {...props}>\n        <div style={{ display: 'flex', gap: '0.5rem', alignItems: 'flex-start' }}>\n          <span\n            style={{\n              color: prefix.color,\n              textShadow: prefix.glow,\n              fontSize: '0.85rem',\n              lineHeight: 1.5,\n              flexShrink: 0,\n            }}\n          >\n            {prefix.symbol}\n          </span>\n          <div style={{ flex: 1 }}>{children}</div>\n        </div>\n      </div>\n    )\n  }\n)\nAlert.displayName = 'Alert'\n\n/* ── AlertTitle ── */\nconst AlertTitle = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLHeadingElement>>(\n  ({ className, style, ...props }, ref) => (\n    <h5\n      ref={ref}\n      className={cn(className)}\n      style={{\n        fontSize:      '0.75rem',\n        fontWeight:    600,\n        color:         'var(--text-secondary)',\n        letterSpacing: '0.08em',\n        textTransform: 'uppercase',\n        marginBottom:  '0.25rem',\n        ...style,\n      }}\n      {...props}\n    />\n  )\n)\nAlertTitle.displayName = 'AlertTitle'\n\n/* ── AlertDescription ── */\nconst AlertDescription = React.forwardRef<HTMLParagraphElement, React.HTMLAttributes<HTMLParagraphElement>>(\n  ({ className, style, ...props }, ref) => (\n    <p\n      ref={ref}\n      className={cn(className)}\n      style={{\n        fontSize:   '0.8rem',\n        color:      'var(--text-muted)',\n        lineHeight: 1.6,\n        ...style,\n      }}\n      {...props}\n    />\n  )\n)\nAlertDescription.displayName = 'AlertDescription'\n\nexport { Alert, AlertTitle, AlertDescription, alertVariants }\n"
    }
  ]
}