@props([ 'value' => 0, 'max' => 100, 'size' => 'md', 'variant' => 'primary', 'label' => null, 'showValue' => false, 'animated' => false, 'striped' => false, ]) @php $percentage = $max > 0 ? min(100, ($value / $max) * 100) : 0; // AdminLTE size classes $sizeClasses = match($size) { 'xs' => 'lte-progress-xs', 'sm' => 'lte-progress-sm', 'md' => '', 'lg' => '', 'xl' => '', default => '', }; // Height style for non-standard sizes $heightStyle = match($size) { 'lg' => 'height: 1.25rem;', 'xl' => 'height: 1.5rem;', default => '', }; // AdminLTE variant classes for the fill $variantClasses = match($variant) { 'primary' => 'lte-bg-primary', 'secondary' => 'lte-bg-secondary', 'success' => 'lte-bg-success', 'danger' => 'lte-bg-danger', 'warning' => 'lte-bg-warning', 'info' => 'lte-bg-info', 'gradient' => 'lte-bg-gradient-primary', default => 'lte-bg-primary', }; // Dynamic color based on percentage if ($variant === 'auto') { if ($percentage >= 90) { $variantClasses = 'lte-bg-danger'; } elseif ($percentage >= 70) { $variantClasses = 'lte-bg-warning'; } else { $variantClasses = 'lte-bg-success'; } } // Animation classes - AdminLTE style $animatedClasses = $animated ? 'lte-progress-bar-animated' : ''; $stripedClasses = $striped ? 'lte-progress-bar-striped' : ''; @endphp