From 8e0421ad26e3284336b9eff1cbe497baa1bb16d9 Mon Sep 17 00:00:00 2001 From: jyswee Date: Thu, 23 Jul 2026 22:09:31 +0000 Subject: [PATCH] Seed: ecommerce template (24 files) --- src/components/ui/badge.tsx | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/components/ui/badge.tsx diff --git a/src/components/ui/badge.tsx b/src/components/ui/badge.tsx new file mode 100644 index 0000000..ea90a00 --- /dev/null +++ b/src/components/ui/badge.tsx @@ -0,0 +1,33 @@ +import * as React from "react"; +import { cn } from "@/lib/utils"; + +const badgeStyles: Record = { + default: "bg-indigo-600 text-white", + secondary: "bg-slate-100 text-slate-900", + outline: "border border-slate-300 text-slate-900", + destructive: "bg-red-600 text-white", + success: "bg-emerald-100 text-emerald-700", +}; + +export interface BadgeProps extends React.HTMLAttributes { + variant?: keyof typeof badgeStyles; +} + +export function Badge({ className, variant = "default", ...props }: BadgeProps) { + return ( + + ); +} + +export function badgeVariants(opts?: { variant?: string; className?: string }) { + return cn("inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-semibold", badgeStyles[opts?.variant || "default"], opts?.className); +} + +export default Badge;