Erste 5.5-Component: buendelt den kopierten session()-Flash-Alert (Icon + Farbschema) mit variant=success|error; Nachricht als Slot. Erzeugt identisches Markup. Umgestellt: categories/create (success), categories/edit (success+error), footer-codes/index (success+error), presets/index (success). Bewusst NICHT umgestellt: companies/show (abweichendes, icon-loses Design mit zusaetzlicher info-Variante und anderen Farbtokens) — bleibt bespoke. Render-Smoke geprueft, alle Views kompilieren, 23 Tests gruen. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
24 lines
1.1 KiB
PHP
24 lines
1.1 KiB
PHP
@props([
|
|
/** Farb-/Icon-Variante: success (grün, check) | error (rot, Warnzeichen) */
|
|
'variant' => 'success',
|
|
])
|
|
|
|
@php
|
|
$variant = in_array($variant, ['success', 'error'], true) ? $variant : 'success';
|
|
@endphp
|
|
|
|
{{--
|
|
Portal-Flash-Meldung. Ersetzt den mehrfach kopierten session()-Alert-Block.
|
|
Nachricht als Slot: <x-portal.alert variant="success">{{ session('success') }}</x-portal.alert>
|
|
--}}
|
|
@if ($variant === 'error')
|
|
<div class="px-4 py-3 rounded-[5px] border text-[12.5px] flex items-start gap-3 bg-[color:var(--color-err-soft)] border-[color:var(--color-err)]/30 text-[color:var(--color-ink-2)]">
|
|
<flux:icon.exclamation-triangle class="size-[16px] flex-shrink-0 mt-0.5 text-[color:var(--color-err)]" />
|
|
<div class="flex-1">{{ $slot }}</div>
|
|
</div>
|
|
@else
|
|
<div class="px-4 py-3 rounded-[5px] border text-[12.5px] flex items-center gap-2 bg-[color:var(--color-ok-soft)] border-[color:var(--color-ok)]/30 text-[color:var(--color-gain-deep)]">
|
|
<flux:icon.check-circle class="size-[16px] flex-shrink-0" />
|
|
{{ $slot }}
|
|
</div>
|
|
@endif
|