Spaces:
Paused
Paused
| import * as React from "react"; | |
| import { cva, type VariantProps } from "class-variance-authority"; | |
| import { cn } from "@/lib/utils"; | |
| const badgeVariants = cva( | |
| "inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-medium transition-colors", | |
| { | |
| variants: { | |
| variant: { | |
| default: "border-transparent bg-primary/10 text-primary", | |
| secondary: "border-transparent bg-secondary text-secondary-foreground", | |
| outline: "border-border bg-background text-foreground", | |
| success: | |
| "border-emerald-200 bg-emerald-50 text-emerald-700 dark:border-emerald-800 dark:bg-emerald-950/30 dark:text-emerald-300", | |
| warning: | |
| "border-amber-200 bg-amber-50 text-amber-700 dark:border-amber-800 dark:bg-amber-950/30 dark:text-amber-300", | |
| danger: | |
| "border-rose-200 bg-rose-50 text-rose-700 dark:border-rose-800 dark:bg-rose-950/30 dark:text-rose-300", | |
| info: "border-sky-200 bg-sky-50 text-sky-700 dark:border-sky-800 dark:bg-sky-950/30 dark:text-sky-300", | |
| violet: | |
| "border-violet-200 bg-violet-50 text-violet-700 dark:border-violet-800 dark:bg-violet-950/30 dark:text-violet-300", | |
| }, | |
| }, | |
| defaultVariants: { | |
| variant: "default", | |
| }, | |
| }, | |
| ); | |
| function Badge({ | |
| className, | |
| variant, | |
| ...props | |
| }: React.ComponentProps<"span"> & VariantProps<typeof badgeVariants>) { | |
| return ( | |
| <span className={cn(badgeVariants({ variant }), className)} {...props} /> | |
| ); | |
| } | |
| export { Badge, badgeVariants }; | |