badge.tsx raw
1 import * as React from "react";
2 import { type VariantProps } from "class-variance-authority";
3 import { Slot } from "radix-ui";
4
5 import { cn } from "src/lib/utils";
6 import { badgeVariants } from "src/components/ui/badgeVariants";
7
8 function Badge({
9 className,
10 variant = "default",
11 asChild = false,
12 ...props
13 }: React.ComponentProps<"span"> &
14 VariantProps<typeof badgeVariants> & { asChild?: boolean }) {
15 const Comp = asChild ? Slot.Root : "span";
16
17 return (
18 <Comp
19 data-slot="badge"
20 data-variant={variant}
21 className={cn(badgeVariants({ variant }), className)}
22 {...props}
23 />
24 );
25 }
26
27 export { Badge };
28