{{-- @intent Fragmento do widget `destaques.banner` (P5.S4.2): uma pilha **estática** de peças do slot em que o widget foi colocado — sem carrossel, sem rotação automática e sem JS. @description O `` repassa o nome do slot como `layoutRegion`; o feed resolve apenas aquele slot (segunda barreira: `DestaqueSlot::tryFrom`). O feed é resolvido aqui, no render, para usar o `Clock` e o locale **da requisição** (a fonte do widget é registrada no boot). Cada peça é um bloco semântico com `` (AVIF/WebP, `width`/`height`, `alt` obrigatório — ADR-026); o slot vazio não renderiza seção alguma. Caminho interno passa por `localized_url` (ADR-012). --}} @use('Modules\Portal\Destaques\Logic\Enums\DestaqueSlot') @use('Modules\Portal\Destaques\Logic\Support\DestaqueSlotFeed') @php $region = is_string($layoutRegion ?? null) ? $layoutRegion : ''; $slot = DestaqueSlot::tryFrom($region); $items = $slot instanceof DestaqueSlot ? app(DestaqueSlotFeed::class)->items($slot, app()->getLocale()) : []; // Acima da dobra (antes do conteúdo/cabeçalho) carrega cedo; o resto é preguiçoso. $loading = $slot === DestaqueSlot::Before || $slot === DestaqueSlot::Header ? 'eager' : 'lazy'; @endphp @if ($items !== [])
    @foreach ($items as $item) @php $href = $item->link === null ? null : (str_starts_with($item->link, '/') ? localized_url($item->link) : $item->link); $external = $item->link !== null && ! str_starts_with($item->link, '/'); @endphp
  • @endforeach
@endif