@props([
    'type' => 'view',
    'href' => null,
    'label' => null,
])

@php
    $config = match ($type) {
        'view' => [
            'icon' => 'bi-eye',
            'label' => 'View',
            'iconOnly' => true,
            'class' => 'btn-icon-action btn-icon-action--view',
        ],
        'edit' => [
            'icon' => 'bi-pencil-square',
            'label' => 'Edit',
            'iconOnly' => true,
            'class' => 'btn-icon-action btn-icon-action--edit',
        ],
        'delete' => [
            'icon' => 'bi-trash3',
            'label' => 'Delete',
            'iconOnly' => true,
            'class' => 'btn-icon-action btn-icon-action--delete',
        ],
        'add' => [
            'icon' => 'bi-plus-lg',
            'label' => 'Add',
            'iconOnly' => false,
            'class' => 'inline-flex items-center gap-1.5 rounded-lg bg-slate-800 px-4 py-2 text-sm font-medium text-white hover:bg-slate-700',
        ],
        default => [
            'icon' => 'bi-link-45deg',
            'label' => 'Action',
            'iconOnly' => false,
            'class' => 'inline-flex items-center gap-1 font-medium text-slate-600 hover:text-slate-900',
        ],
    };

    $text = $label ?? $config['label'];
    $iconOnly = $config['iconOnly'] && $label === null;
@endphp

@if($type === 'delete')
    <button type="submit" title="{{ $text }}" aria-label="{{ $text }}" {{ $attributes->merge(['class' => $config['class']]) }}>
        <i class="bi {{ $config['icon'] }}"></i>
        @unless($iconOnly)<span>{{ $text }}</span>@endunless
    </button>
@else
    <a href="{{ $href }}" title="{{ $text }}" aria-label="{{ $text }}" {{ $attributes->merge(['class' => $config['class']]) }}>
        <i class="bi {{ $config['icon'] }}"></i>
        @unless($iconOnly)<span>{{ $text }}</span>@endunless
    </a>
@endif
