summaryrefslogtreecommitdiff
path: root/lib/rfq-last/vendor/vendor-response-status-card.tsx
diff options
context:
space:
mode:
authordujinkim <dujin.kim@dtsolution.co.kr>2025-09-05 11:44:32 +0000
committerdujinkim <dujin.kim@dtsolution.co.kr>2025-09-05 11:44:32 +0000
commit50adedf48ee4674ebe00f1ee72d93485183cdc51 (patch)
tree18053ab04d94c750028eee5d5d2f16ba4f38f50e /lib/rfq-last/vendor/vendor-response-status-card.tsx
parent66d64b482f2b6b52b0dd396ef998f27d491c70dd (diff)
(대표님, 최겸, 임수민) EDP 입력 진행률, 견적목록관리, EDP excel import 오류수정, GTC-Contract
Diffstat (limited to 'lib/rfq-last/vendor/vendor-response-status-card.tsx')
-rw-r--r--lib/rfq-last/vendor/vendor-response-status-card.tsx51
1 files changed, 51 insertions, 0 deletions
diff --git a/lib/rfq-last/vendor/vendor-response-status-card.tsx b/lib/rfq-last/vendor/vendor-response-status-card.tsx
new file mode 100644
index 00000000..d4ef8dd3
--- /dev/null
+++ b/lib/rfq-last/vendor/vendor-response-status-card.tsx
@@ -0,0 +1,51 @@
+import { Card, CardContent } from "@/components/ui/card";
+import { LucideIcon } from "lucide-react";
+import { cn } from "@/lib/utils";
+
+interface VendorResponseStatusCardProps {
+ title: string;
+ count: number;
+ icon: LucideIcon;
+ variant?: "default" | "primary" | "secondary" | "success" | "warning" | "destructive";
+}
+
+const variantStyles = {
+ default: "border-gray-200 bg-gray-50/50",
+ primary: "border-blue-200 bg-blue-50/50",
+ secondary: "border-purple-200 bg-purple-50/50",
+ success: "border-green-200 bg-green-50/50",
+ warning: "border-yellow-200 bg-yellow-50/50",
+ destructive: "border-red-200 bg-red-50/50",
+};
+
+const iconStyles = {
+ default: "text-gray-600",
+ primary: "text-blue-600",
+ secondary: "text-purple-600",
+ success: "text-green-600",
+ warning: "text-yellow-600",
+ destructive: "text-red-600",
+};
+
+export function VendorResponseStatusCard({
+ title,
+ count,
+ icon: Icon,
+ variant = "default",
+}: VendorResponseStatusCardProps) {
+ return (
+ <Card className={cn("border", variantStyles[variant])}>
+ <CardContent className="p-4">
+ <div className="flex items-center justify-between">
+ <div className="space-y-1">
+ <p className="text-sm font-medium text-muted-foreground">{title}</p>
+ <p className="text-2xl font-bold">{count}</p>
+ </div>
+ <div className={cn("p-2 rounded-full bg-white/80", iconStyles[variant])}>
+ <Icon className="h-5 w-5" />
+ </div>
+ </div>
+ </CardContent>
+ </Card>
+ );
+} \ No newline at end of file