@php
    use App\Support\Badges\BadgeCatalog;
    use App\Support\Badges\BadgeDomain;
    use App\Support\Diff\DiffRowStatus;
    use App\Support\Diff\DiffSummary;

    if (is_array($summary ?? null)) {
        $summary = new DiffSummary(
            changedCount: (int) ($summary['changedCount'] ?? $summary['changed'] ?? 0),
            addedCount: (int) ($summary['addedCount'] ?? $summary['added'] ?? 0),
            removedCount: (int) ($summary['removedCount'] ?? $summary['removed'] ?? 0),
            unchangedCount: (int) ($summary['unchangedCount'] ?? $summary['unchanged'] ?? 0),
            message: is_string($summary['message'] ?? null) ? $summary['message'] : null,
        );
    }

    $summary = $summary instanceof DiffSummary ? $summary : DiffSummary::empty();

    $states = [
        DiffRowStatus::Changed,
        DiffRowStatus::Added,
        DiffRowStatus::Removed,
        DiffRowStatus::Unchanged,
    ];

    $counts = [
        DiffRowStatus::Changed->value => $summary->changedCount,
        DiffRowStatus::Added->value => $summary->addedCount,
        DiffRowStatus::Removed->value => $summary->removedCount,
        DiffRowStatus::Unchanged->value => $summary->unchangedCount,
    ];
@endphp

<div class="space-y-3" aria-label="Diff summary">
    <div class="flex flex-wrap gap-2">
        @foreach ($states as $state)
            @php
                $badge = BadgeCatalog::spec(BadgeDomain::DiffRowStatus, $state);
            @endphp

            <x-filament::badge :color="$badge->color" :icon="$badge->icon">
                {{ $counts[$state->value] }} {{ strtolower($badge->label) }}
            </x-filament::badge>
        @endforeach
    </div>

    @if ($summary->message)
        <p class="text-sm text-gray-600 dark:text-gray-300">
            {{ $summary->message }}
        </p>
    @endif
</div>
