@props([ 'type' => 'info', 'title' => '', 'dismissible' => false, 'icon' => null, ]) @php $icons = [ 'info' => '', 'success' => '', 'warning' => '', 'danger' => '', ]; $tone = match ($type) { 'success' => 'border-green-200 bg-green-50 text-green-800 dark:border-green-800 dark:bg-green-950/50 dark:text-green-200', 'warning' => 'border-amber-200 bg-amber-50 text-amber-800 dark:border-amber-800 dark:bg-amber-950/50 dark:text-amber-200', 'danger' => 'border-red-200 bg-red-50 text-red-800 dark:border-red-800 dark:bg-red-950/50 dark:text-red-200', default => 'border-blue-200 bg-blue-50 text-blue-800 dark:border-blue-800 dark:bg-blue-950/50 dark:text-blue-200', }; $usedIcon = $icon ?? ($icons[$type] ?? $icons['info']); $base = 'flex items-start gap-3 rounded-xl border p-4 text-sm ' . $tone; @endphp
merge(['class' => $base]) }} > {!! $usedIcon !!}
@if($title)

{{ $title }}

@endif
{{ $slot }}
@if($dismissible) @endif