# All files / src/components/ui chip.tsx

0% Statements 0/43
0% Branches 0/1
0% Functions 0/1
0% Lines 0/43

Press n or j to go to the next uncovered block, b, p or k for the previous block.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44

     import { ComponentProps, forwardRef } from "react"
    import { cva, type VariantProps } from "class-variance-authority"
    import { cn } from "@/lib/utils"

    const chipVariants = cva(
      "inline-flex items-center justify-center gap-1.5 rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",
      {
        variants: {
          variant: {
            default:
              "border-transparent bg-primary text-primary-foreground hover:bg-primary/80",
            secondary:
              "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",
            destructive:
              "border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",
            outline: "text-foreground",
          },
        },
        defaultVariants: {
          variant: "default",
        },
      }
    )

    interface ChipProps
      extends ComponentProps<"div">,
        VariantProps<typeof chipVariants> {}

    const Chip = forwardRef<HTMLDivElement, ChipProps>(
      ({ className, variant, ...props }, ref) => {
        return (
          <div
            ref={ref}
            data-slot="chip"
            className={cn(chipVariants({ variant }), className)}
            {...props}
          />
        )
      }
    )
    Chip.displayName = "Chip"

    export { Chip, chipVariants }