{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "banner-info",
  "type": "registry:ui",
  "dependencies": [
    "class-variance-authority",
    "lucide-react"
  ],
  "registryDependencies": [
    "https://ui.getlyse.com/r/lyse-tokens.json"
  ],
  "files": [
    {
      "path": "registry/new-york/ui/banner-info/banner-info.tsx",
      "content": "import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport {\n  Sparkles,\n  Info,\n  TriangleAlert,\n  CircleCheck,\n} from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport \"./banner-info.css\"\n\nconst bannerInfoVariants = cva(\n  \"flex items-start gap-[var(--layout-gap-md)] rounded-[var(--layout-radius-xl)] p-[var(--layout-padding-lg)] text-content-note [&_svg]:shrink-0 [&_svg]:h-[var(--layout-size-sm)] [&_svg]:w-[var(--layout-size-sm)]\",\n  {\n    variants: {\n      variant: {\n        brand: \"banner-info-brand\",\n        neutral: \"banner-info-neutral\",\n        danger: \"banner-info-danger\",\n        success: \"banner-info-success\",\n        warning: \"banner-info-warning\",\n      },\n    },\n    defaultVariants: {\n      variant: \"neutral\",\n    },\n  }\n)\n\nconst variantIcons = {\n  brand: Sparkles,\n  neutral: Info,\n  danger: TriangleAlert,\n  success: CircleCheck,\n  warning: TriangleAlert,\n} as const\n\nfunction BannerInfo({\n  className,\n  variant = \"neutral\",\n  withIcon = true,\n  children,\n  ...props\n}: React.ComponentProps<\"div\"> &\n  VariantProps<typeof bannerInfoVariants> & {\n    withIcon?: boolean\n  }) {\n  const Icon = variant ? variantIcons[variant] : variantIcons.neutral\n\n  return (\n    <div\n      data-slot=\"banner-info\"\n      role=\"status\"\n      className={cn(bannerInfoVariants({ variant, className }))}\n      {...props}\n    >\n      {withIcon && <Icon aria-hidden=\"true\" />}\n      <div className=\"flex-1 min-w-0\">{children}</div>\n    </div>\n  )\n}\n\nexport { BannerInfo, bannerInfoVariants }\n",
      "type": "registry:ui"
    },
    {
      "path": "registry/new-york/ui/banner-info/banner-info.css",
      "content": "/* ================================================================\n * BANNER INFO — Variant Styles\n * Structure (flex, padding, gap, radius) lives in banner-info.tsx via cva.\n * Theming (colors, borders, text) lives here via tokens.\n * ================================================================ */\n\n/* --------------------------------\n * Variant tokens\n * Each variant sets scoped custom properties.\n * -------------------------------- */\n\n.banner-info-brand {\n  --banner-bg: var(--overlay-brand-default);\n  --banner-border: var(--border-brand-lighter);\n  --banner-text: var(--text-brand-moderate);\n  --banner-icon: var(--icon-brand-moderate);\n}\n\n.banner-info-neutral {\n  --banner-bg: var(--background-neutral-faint-default);\n  --banner-border: var(--border-default);\n  --banner-text: var(--text-base-bolder);\n  --banner-icon: var(--icon-neutral-moderate);\n}\n\n.banner-info-danger {\n  --banner-bg: var(--overlay-danger-default);\n  --banner-border: var(--border-danger-lighter);\n  --banner-text: var(--text-danger-moderate);\n  --banner-icon: var(--icon-danger-moderate);\n}\n\n.banner-info-success {\n  --banner-bg: var(--overlay-success-default);\n  --banner-border: var(--border-success-lighter);\n  --banner-text: var(--text-success-bolder);\n  --banner-icon: var(--icon-success-bolder);\n}\n\n.dark .banner-info-success {\n  --banner-text: var(--text-success-moderate);\n  --banner-icon: var(--icon-success-moderate);\n}\n\n.banner-info-warning {\n  --banner-bg: var(--overlay-warning-default);\n  --banner-border: var(--border-warning-lighter);\n  --banner-text: var(--text-warning-bolder);\n  --banner-icon: var(--icon-warning-bolder);\n}\n\n.dark .banner-info-warning {\n  --banner-text: var(--text-warning-moderate);\n  --banner-icon: var(--icon-warning-moderate);\n}\n\n/* --------------------------------\n * Base — applied to all variants\n * -------------------------------- */\n.banner-info-brand,\n.banner-info-neutral,\n.banner-info-danger,\n.banner-info-success,\n.banner-info-warning {\n  background: var(--banner-bg);\n  border: var(--layout-border-thin) solid var(--banner-border);\n  color: var(--banner-text);\n}\n\n/* --------------------------------\n * Icon color — separate from text\n * -------------------------------- */\n.banner-info-brand svg,\n.banner-info-neutral svg,\n.banner-info-danger svg,\n.banner-info-success svg,\n.banner-info-warning svg {\n  color: var(--banner-icon);\n}\n",
      "type": "registry:ui"
    }
  ]
}