Files
snippet-pastebin/src/components/ui/chip.tsx
johndoe6345789 3962d16017 refactor: replace MDC components with Tailwind-based implementations
Co-authored-by: aider (openrouter/anthropic/claude-sonnet-4.5) <aider@aider.chat>
2026-01-20 16:10:31 +00:00

44 lines
1.2 KiB
TypeScript

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 }