{{-- Alert Component - AdminLTE Theme Based on AdminLTE v4 Alert & Callout styling patterns Usage: Default alert Operation completed Warning message Callout style --}} @props([ 'variant' => 'default', 'title' => null, 'icon' => null, 'dismissible' => false, 'collapsible' => false, 'collapsed' => false, 'callout' => false, // Use callout style instead of alert ]) @php $variantConfig = [ 'default' => [ 'alertClass' => 'lte-alert', 'calloutClass' => 'lte-callout', 'icon' => $icon ?? 'ri-information-line', ], 'info' => [ 'alertClass' => 'lte-alert lte-alert-info', 'calloutClass' => 'lte-callout lte-callout-info', 'icon' => $icon ?? 'ri-information-line', ], 'success' => [ 'alertClass' => 'lte-alert lte-alert-success', 'calloutClass' => 'lte-callout lte-callout-success', 'icon' => $icon ?? 'ri-checkbox-circle-line', ], 'warning' => [ 'alertClass' => 'lte-alert lte-alert-warning', 'calloutClass' => 'lte-callout lte-callout-warning', 'icon' => $icon ?? 'ri-error-warning-line', ], 'danger' => [ 'alertClass' => 'lte-alert lte-alert-danger', 'calloutClass' => 'lte-callout lte-callout-danger', 'icon' => $icon ?? 'ri-error-warning-fill', ], 'primary' => [ 'alertClass' => 'lte-alert lte-alert-primary', 'calloutClass' => 'lte-callout lte-callout-primary', 'icon' => $icon ?? 'ri-information-line', ], ]; $config = $variantConfig[$variant] ?? $variantConfig['default']; $componentClass = $callout ? $config['calloutClass'] : $config['alertClass']; @endphp
class([ $componentClass, 'lte-fade-in transition-all duration-300 hover:shadow-sm', $dismissible ? 'lte-alert-dismissible' : '', ]) }} @if($dismissible || $collapsible) x-data="{ show: true, @if($collapsible) collapsed: {{ $collapsed ? 'true' : 'false' }} @endif }" x-show="show" x-transition:enter="transition ease-out duration-300" x-transition:enter-start="opacity-0 -translate-y-2 scale-95" x-transition:enter-end="opacity-100 translate-y-0 scale-100" x-transition:leave="transition ease-in duration-200" x-transition:leave-start="opacity-100 translate-y-0 scale-100" x-transition:leave-end="opacity-0 -translate-y-2 scale-95" @endif >
@if($title)
{{ $title }}
@endif
{{ $slot }}
@if($dismissible || $collapsible)
@if($collapsible) @endif @if($dismissible) @endif
@endif