{{-- Badge Component - TailServer Theme Usage: Default Running Error Active --}} @props([ 'variant' => 'default', 'size' => 'md', 'icon' => null, 'dot' => false, 'pulse' => false, 'outline' => false, ]) @php $baseClasses = 'inline-flex items-center font-semibold rounded-full transition-colors'; $variantClasses = [ 'default' => $outline ? 'bg-transparent border border-neutral/30 text-base/70' : 'bg-neutral/10 text-base/70', 'primary' => $outline ? 'bg-transparent border border-primary/40 text-primary' : 'bg-primary/10 text-primary', 'secondary' => $outline ? 'bg-transparent border border-secondary/40 text-secondary' : 'bg-secondary/10 text-secondary', 'success' => $outline ? 'bg-transparent border border-success/40 text-success' : 'bg-success/10 text-success', 'warning' => $outline ? 'bg-transparent border border-warning/40 text-warning' : 'bg-warning/10 text-warning', 'danger' => $outline ? 'bg-transparent border border-danger/40 text-danger' : 'bg-danger/10 text-danger', 'info' => $outline ? 'bg-transparent border border-info/40 text-info' : 'bg-info/10 text-info', 'muted' => 'bg-neutral/5 text-base/40', ]; $sizeClasses = [ 'xs' => 'px-1.5 py-0.5 text-[10px] leading-tight', 'sm' => 'px-2 py-0.5 text-[11px] leading-tight', 'md' => 'px-2.5 py-1 text-xs', 'lg' => 'px-3 py-1.5 text-sm', ]; $iconSizes = [ 'xs' => 'size-2.5', 'sm' => 'size-3', 'md' => 'size-3.5', 'lg' => 'size-4', ]; $dotSizes = [ 'xs' => 'size-1', 'sm' => 'size-1.5', 'md' => 'size-1.5', 'lg' => 'size-2', ]; $classes = collect([ $baseClasses, $variantClasses[$variant] ?? $variantClasses['default'], $sizeClasses[$size] ?? $sizeClasses['md'], ])->filter()->join(' '); $iconSize = $iconSizes[$size] ?? $iconSizes['md']; $dotSize = $dotSizes[$size] ?? $dotSizes['md']; @endphp class([$classes, 'gap-1.5' => $icon || $dot]) }}> @if($dot) @if($pulse) @endif @endif @if($icon) @endif {{ $slot }}