VibeCodingStudio commited on
Commit
036dddc
·
verified ·
1 Parent(s): b3b10d2

Upload components/StatusBadge.jsx with huggingface_hub

Browse files
Files changed (1) hide show
  1. components/StatusBadge.jsx +31 -0
components/StatusBadge.jsx ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { clsx } from 'clsx';
2
+
3
+ const statusConfig = {
4
+ running: { bg: 'bg-emerald-500/15', text: 'text-emerald-400', dot: 'bg-emerald-400' },
5
+ active: { bg: 'bg-emerald-500/15', text: 'text-emerald-400', dot: 'bg-emerald-400' },
6
+ available: { bg: 'bg-emerald-500/15', text: 'text-emerald-400', dot: 'bg-emerald-400' },
7
+ idle: { bg: 'bg-amber-500/15', text: 'text-amber-400', dot: 'bg-amber-400' },
8
+ standby: { bg: 'bg-slate-500/15', text: 'text-slate-400', dot: 'bg-slate-400' },
9
+ degraded: { bg: 'bg-amber-500/15', text: 'text-amber-400', dot: 'bg-amber-400' },
10
+ provisioning: { bg: 'bg-cyan-500/15', text: 'text-cyan-400', dot: 'bg-cyan-400' },
11
+ stopped: { bg: 'bg-red-500/15', text: 'text-red-400', dot: 'bg-red-400' },
12
+ queued: { bg: 'bg-purple-500/15', text: 'text-purple-400', dot: 'bg-purple-400' },
13
+ waiting: { bg: 'bg-amber-500/15', text: 'text-amber-400', dot: 'bg-amber-400' },
14
+ completed: { bg: 'bg-slate-500/15', text: 'text-slate-400', dot: 'bg-slate-400' },
15
+ };
16
+
17
+ export default function StatusBadge({ status, size = 'sm' }) {
18
+ const config = statusConfig[status] || statusConfig.idle;
19
+ const sizeClasses = size === 'sm' ? 'text-xs px-2 py-0.5' : 'text-sm px-3 py-1';
20
+ const dotSize = size === 'sm' ? 'w-1.5 h-1.5' : 'w-2 h-2';
21
+
22
+ return (
23
+ <span className={clsx(
24
+ 'inline-flex items-center gap-1.5 rounded-full font-medium',
25
+ config.bg, config.text, sizeClasses
26
+ )}>
27
+ <span className={clsx('rounded-full animate-pulse-slow', config.dot, dotSize)} />
28
+ {status}
29
+ </span>
30
+ );
31
+ }