{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "alert",
  "title": "Alert",
  "description": "Displays important information after an action.",
  "dependencies": [
    "@mdi/js",
    "class-variance-authority"
  ],
  "registryDependencies": [
    "https://blok.sitecore.com/r/theme.json"
  ],
  "files": [
    {
      "path": "src/components/ui/alert.tsx",
      "content": "import { mdiAlertCircle, mdiCheckCircle, mdiInformation } from \"@mdi/js\";\nimport { type VariantProps, cva } from \"class-variance-authority\";\nimport type * as React from \"react\";\n\nimport { Icon } from \"@/lib/icon\";\nimport { cn } from \"@/lib/utils\";\n\nconst alertVariants = cva(\n  \"relative w-full rounded-md px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-4 gap-y-0.5 items-center [&>svg]:size-4 [&>svg]:text-current\",\n  {\n    variants: {\n      variant: {\n        default:\n          \"bg-primary-bg [&>svg]:text-primary-500 dark:[&>svg]:text-primary-200\",\n        primary:\n          \"bg-primary-bg [&>svg]:text-primary-500 dark:[&>svg]:text-primary-200\",\n        danger:\n          \"bg-danger-bg [&>svg]:text-danger-500 dark:[&>svg]:text-danger-200\",\n        warning:\n          \"bg-warning-bg [&>svg]:text-warning-500 dark:[&>svg]:text-warning-200\",\n        success:\n          \"bg-success-bg [&>svg]:text-success-500 dark:[&>svg]:text-success-200\",\n      },\n    },\n    defaultVariants: {\n      variant: \"default\",\n    },\n  },\n);\n\nconst variantIcons = {\n  default: mdiInformation,\n  primary: mdiInformation,\n  danger: mdiAlertCircle,\n  warning: mdiAlertCircle,\n  success: mdiCheckCircle,\n};\n\nfunction Alert({\n  className,\n  variant = \"default\",\n  ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof alertVariants>) {\n  return (\n    <div\n      data-slot=\"alert\"\n      role=\"alert\"\n      className={cn(alertVariants({ variant }), className)}\n      {...props}\n    >\n      {variant && (\n        <Icon\n          path={variantIcons[variant]}\n          size={1.2}\n          className=\"text-current\"\n        />\n      )}\n      {props.children}\n    </div>\n  );\n}\n\nfunction AlertTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n  return (\n    <div\n      data-slot=\"alert-title\"\n      className={cn(\n        \"col-start-2 line-clamp-1 min-h-4 font-semibold tracking-tight\",\n        className,\n      )}\n      {...props}\n    />\n  );\n}\n\nfunction AlertDescription({\n  className,\n  ...props\n}: React.ComponentProps<\"div\">) {\n  return (\n    <div\n      data-slot=\"alert-description\"\n      className={cn(\n        \"text-md col-start-2 grid justify-items-start gap-1 [&_p]:leading-relaxed\",\n        className,\n      )}\n      {...props}\n    />\n  );\n}\n\nexport { Alert, AlertTitle, AlertDescription };\n",
      "type": "registry:ui"
    },
    {
      "path": "src/lib/icon.tsx",
      "content": "import type { SVGProps } from \"react\";\n\ntype IconProps = SVGProps<SVGSVGElement> & {\n  path: string;\n  title?: string;\n  size?: number | string;\n  className?: string;\n  fill?: string;\n};\n\nexport function Icon({\n  path,\n  title,\n  size = 1,\n  className,\n  fill = \"currentColor\",\n  ...rest\n}: IconProps) {\n  return (\n    <svg\n      transform={`scale(${size})`}\n      viewBox=\"0 0 24 24\"\n      aria-label={title}\n      className={className}\n      {...rest}\n    >\n      {title ? <title>{title}</title> : null}\n      <path d={path} fill={fill} />\n    </svg>\n  );\n}\n",
      "type": "registry:lib"
    }
  ],
  "type": "registry:ui"
}