@php
$items = collect($items ?? []);
$maxValue = max($items->pluck('value')->map(fn($value) => (float) $value)->max() ?? 0, 1);
$totalValue = max($items->pluck('value')->map(fn($value) => (float) $value)->sum() ?? 0, 1);
$chartClass = trim((string) ($chartClass ?? ''));
$useCssPalette = (bool) ($useCssPalette ?? false);
$preserveZeroBars = (bool) ($preserveZeroBars ?? true);
@endphp
@foreach ($items as $item)
@php
$rawLabel = trim((string) ($item['label'] ?? ''));
$labelParts = preg_split('/\s+/', $rawLabel, 2);
$label = collect($labelParts)->map(fn($part) => e($part))->join('
');
$value = (float) ($item['value'] ?? 0);
$height = $value <= 0 ? 0 : max(18, ($value / $maxValue) * 100);
$percentage = isset($item['percentage']) ? (int) $item['percentage'] : ($totalValue > 0 ? round(($value / $totalValue) * 100) : 0);
$barStyle = 'height: ' . $height . '%;';
if (!$useCssPalette) {
$barStyle .= ' background: ' . ($item['color'] ?? '#9adbd8') . ';';
}
@endphp
@if ($value > 0 || $preserveZeroBars)
{{ number_format($value, 0, ',', '.') }}
{{ $percentage }}%
@endif
{!! $label !!}
@endforeach