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