import React, { type ReactNode } from "react"; import { type IconProp } from "src/shared/renderIcon"; type BadgeVariant = "default" | "secondary" | "destructive" | "outline" | "ghost" | "link" | "gray" | "gray-subtle" | "blue" | "blue-subtle" | "purple" | "purple-subtle" | "amber" | "amber-subtle" | "red" | "red-subtle" | "pink" | "pink-subtle" | "green" | "green-subtle" | "teal" | "teal-subtle"; type BadgeSize = "sm" | "default" | "lg"; type BadgeShape = "pill" | "rounded"; export type IndicatorVariant = "default" | "secondary" | "destructive" | "blue" | "green" | "amber" | "red" | "purple" | "pink" | "teal" | "gray"; export interface BadgeProps extends Omit, "children"> { /** Visual variant of the badge. */ variant?: BadgeVariant; /** Size of the badge. */ size?: BadgeSize; /** Corner shape: `pill` (fully rounded, default) or `rounded` (4px). */ shape?: BadgeShape; /** Text label rendered inside the badge. */ label?: string; /** Icon component, element, or class-name string. */ icon?: IconProp; /** Placement of the icon relative to the label. */ iconPosition?: "left" | "right"; /** Colored status indicator dot. */ indicator?: IndicatorVariant; /** Callback when the badge is dismissed. Renders a dismiss button when provided. */ onDismiss?: () => void; /** Disables the badge and hides the dismiss button. */ disabled?: boolean; /** Render as a custom element (polymorphic via Radix Slot). */ asChild?: boolean; /** Children rendered inside the badge (fallback for `label`). */ children?: ReactNode; } declare const Badge: React.ForwardRefExoticComponent & React.RefAttributes>; export { Badge };