{{-- Progress Bar Component - TailAdmin style Usage: --}} @props([ 'value' => 0, 'max' => 100, 'color' => 'primary', 'size' => 'md', 'showLabel' => false, 'label' => null, 'gradient' => null, 'animated' => false, 'striped' => false, ]) @php $percent = $max > 0 ? min(100, ($value / $max) * 100) : 0; $colorClasses = [ 'primary' => 'bg-brand-500', 'secondary' => 'bg-gray-500', 'success' => 'bg-success-500', 'warning' => 'bg-warning-500', 'danger' => 'bg-error-500', 'info' => 'bg-blue-light-500', ]; $bgClasses = [ 'primary' => 'bg-brand-100 dark:bg-brand-500/20', 'secondary' => 'bg-gray-200 dark:bg-gray-700', 'success' => 'bg-success-100 dark:bg-success-500/20', 'warning' => 'bg-warning-100 dark:bg-warning-500/20', 'danger' => 'bg-error-100 dark:bg-error-500/20', 'info' => 'bg-blue-light-100 dark:bg-blue-light-500/20', ]; $sizeClasses = [ 'xs' => 'h-1', 'sm' => 'h-1.5', 'md' => 'h-2', 'lg' => 'h-2.5', 'xl' => 'h-3', ]; $colorClass = $colorClasses[$color] ?? $colorClasses['primary']; $bgClass = $bgClasses[$color] ?? $bgClasses['primary']; $sizeClass = $sizeClasses[$size] ?? $sizeClasses['md']; // Auto-select color based on value if specified if ($color === 'auto') { if ($percent >= 90) { $colorClass = $colorClasses['danger']; $bgClass = $bgClasses['danger']; } elseif ($percent >= 70) { $colorClass = $colorClasses['warning']; $bgClass = $bgClasses['warning']; } else { $colorClass = $colorClasses['success']; $bgClass = $bgClasses['success']; } } @endphp
class(['w-full']) }}> @if($showLabel || $label)
{{ $label ?? 'Usage' }} {{ number_format($percent, 1) }}%
@endif
!$gradient, ]) @if($gradient) style="width: {{ $percent }}%; background-image: {{ $gradient }};" @else style="width: {{ $percent }}%;" @endif >