{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "banner",
  "type": "registry:ui",
  "title": "Banner",
  "description": "نوار اطلاع‌رسانی سطح صفحه، مثل نسخهٔ جدید، پایان اشتراک یا اختلال سرویس",
  "registryDependencies": [
    "https://kashi.sepantapouya.com/r/cx.json",
    "https://kashi.sepantapouya.com/r/icons.json",
    "https://kashi.sepantapouya.com/r/kashi-provider.json"
  ],
  "files": [
    {
      "path": "registry/kashi/Banner.tsx",
      "type": "registry:ui",
      "target": "components/kashi/Banner.tsx",
      "content": "\"use client\";\n\nimport type { HTMLAttributes, ReactNode } from \"react\";\nimport { cx } from \"./cx\";\nimport { CloseIcon } from \"./icons\";\nimport { useKashi } from \"./KashiProvider\";\n\nexport interface BannerProps extends Omit<HTMLAttributes<HTMLDivElement>, \"title\"> {\n  /** @default \"neutral\" */\n  tone?: \"neutral\" | \"brand\" | \"warning\" | \"error\";\n  icon?: ReactNode;\n  /** دکمه یا لینک‌ها */\n  actions?: ReactNode;\n  /** با onClose دکمهٔ بستن نمایش داده می‌شود */\n  onClose?: () => void;\n  /** بدون حاشیه و گوشه، برای بالای صفحه */\n  flush?: boolean;\n  /** @default \"اطلاعیه\" */\n  label?: string;\n  /** @default \"بستن اطلاعیه\" */\n  closeLabel?: string;\n  children: ReactNode;\n}\n\n/** نوار اطلاع‌رسانی سطح صفحه، مثل نسخهٔ جدید، پایان اشتراک یا اختلال سرویس */\nexport function Banner({ tone = \"neutral\", icon, actions, onClose, flush, label, closeLabel, className, children, ...rest }: BannerProps) {\n  const { messages: M } = useKashi();\n  label ??= M.banner.label;\n  closeLabel ??= M.banner.close;\n  return (\n    <div role=\"region\" aria-label={label} className={cx(\"k-banner\", tone !== \"neutral\" && `k-banner--${tone}`, flush && \"k-banner--flush\", className)} {...rest}>\n      {icon && <span className=\"k-banner__icon\" aria-hidden=\"true\">{icon}</span>}\n      <p className=\"k-banner__text\">{children}</p>\n      {actions && <div className=\"k-banner__actions\">{actions}</div>}\n      {onClose && (\n        <button type=\"button\" className=\"k-btn k-btn--tertiary k-btn--icon k-btn--sm k-banner__close\" aria-label={closeLabel} onClick={onClose}>\n          <CloseIcon />\n        </button>\n      )}\n    </div>\n  );\n}\n"
    }
  ]
}