since3-portal/components/ui/badge.tsx
2026-09-27 15:53:04 +02:00

35 lines
898 B
TypeScript

import { cva, type VariantProps } from "class-variance-authority"
import { cn } from "cn"
const badgeVariants = cva(
"inline-flex w-fit shrink-0 items-center justify-center rounded-full px-2.5 py-0.5 text-label whitespace-nowrap",
{
variants: {
variant: {
neutral: "bg-ink-100 text-ink-700 dark:bg-ink-800 dark:text-ink-300",
error: "bg-signal-error/12 text-signal-error",
success: "bg-signal-success/12 text-signal-success",
warning: "bg-signal-warning/12 text-signal-warning",
},
},
defaultVariants: {
variant: "neutral",
},
}
)
function Badge({
className,
variant,
...props
}: React.ComponentProps<"span"> & VariantProps<typeof badgeVariants>) {
return (
<span
data-slot="badge"
className={cn(badgeVariants({ variant, className }))}
{...props}
/>
)
}
export { Badge, badgeVariants }