@props([
    'name',
    'title',
    'message' => null,
    'action',
    'method' => 'POST',
    'confirmLabel' => 'Confirm',
    'cancelLabel' => 'Cancel',
    'variant' => 'danger',
])

@php
    $confirmBtnClass = $variant === 'danger'
        ? 'bg-red-600 hover:bg-red-700'
        : 'bg-indigo-600 hover:bg-indigo-700';
    $iconWrapClass = $variant === 'danger'
        ? 'bg-red-100 text-red-600'
        : 'bg-indigo-100 text-indigo-600';
@endphp

@if(isset($trigger))
    <span @click.stop="$dispatch('open-modal', {{ Js::from($name) }})" class="inline-flex">
        {{ $trigger }}
    </span>
@endif

<x-modal :name="$name" maxWidth="md">
    <div class="px-5 pb-6 pt-2 sm:px-6 sm:pb-6 sm:pt-4">
        <div class="flex flex-col items-center text-center sm:items-start sm:text-left">
            <div @class(['flex h-12 w-12 items-center justify-center rounded-full', $iconWrapClass])>
                @if($variant === 'danger')
                    <svg class="h-6 w-6" fill="none" stroke="currentColor" stroke-width="1.75" viewBox="0 0 24 24">
                        <path stroke-linecap="round" stroke-linejoin="round" d="m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0"/>
                    </svg>
                @else
                    <svg class="h-6 w-6" fill="none" stroke="currentColor" stroke-width="1.75" viewBox="0 0 24 24">
                        <path stroke-linecap="round" stroke-linejoin="round" d="M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 5.25h.008v.008H12v-.008Z"/>
                    </svg>
                @endif
            </div>
            <h2 class="mt-4 text-lg font-semibold text-slate-900">{{ $title }}</h2>
            @if($message)
                <p class="mt-2 text-sm leading-relaxed text-slate-500">{{ $message }}</p>
            @endif
            @isset($details)
                <div class="mt-3 w-full">{{ $details }}</div>
            @endisset
        </div>

        <form method="post" action="{{ $action }}" class="mt-6 flex flex-col-reverse gap-2.5 sm:flex-row sm:justify-end">
            @csrf
            @if(strtoupper($method) !== 'POST')
                @method($method)
            @endif
            @isset($fields)
                {{ $fields }}
            @endisset
            <button type="button"
                    @click="$dispatch('close-modal', {{ Js::from($name) }})"
                    class="rounded-xl border border-slate-200 bg-white px-4 py-2.5 text-sm font-semibold text-slate-700 transition hover:bg-slate-50">
                {{ $cancelLabel }}
            </button>
            <button type="submit"
                    @class(['rounded-xl px-4 py-2.5 text-sm font-semibold text-white transition', $confirmBtnClass])>
                {{ $confirmLabel }}
            </button>
        </form>
    </div>
</x-modal>
