32 lines
839 B
TypeScript
32 lines
839 B
TypeScript
import { cn } from "@/lib/utils";
|
|
|
|
interface BadgeProps {
|
|
children: React.ReactNode;
|
|
variant?: "default" | "success" | "warning" | "danger" | "info" | "muted" | "purple";
|
|
className?: string;
|
|
}
|
|
|
|
const variantClasses: Record<string, string> = {
|
|
default: "bg-blue-100 text-blue-800",
|
|
success: "bg-green-100 text-green-800",
|
|
warning: "bg-amber-100 text-amber-800",
|
|
danger: "bg-red-100 text-red-800",
|
|
info: "bg-sky-100 text-sky-800",
|
|
muted: "bg-gray-100 text-gray-700",
|
|
purple: "bg-purple-100 text-purple-800",
|
|
};
|
|
|
|
export function Badge({ children, variant = "default", className }: BadgeProps) {
|
|
return (
|
|
<span
|
|
className={cn(
|
|
"inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-medium",
|
|
variantClasses[variant],
|
|
className
|
|
)}
|
|
>
|
|
{children}
|
|
</span>
|
|
);
|
|
}
|