{{-- @intent Renderizador único do documento de página/Home (emenda ADR-016, P5.S1.2): percorre as seções visíveis na ordem do documento e delega cada uma ao componente do catálogo fechado. @description O documento já passou pelo `Layout\Blocks\BlocksSchema` (via `ParseHomepage`): `hidden` preserva a posição e só é pulado aqui; nenhum `props` cru chega ao Blade. A mídia é resolvida pelo chamador (id Media → chaves de objeto) e repassada por caminho do schema (`image`, `items.0.image`, `thumbnail`) — sem consulta na view e sem N+1. O conteúdo traduzível é resolvido aqui (`BlockLocalizer`) para o locale do shell, então o mesmo documento serve `/`, `/en`, `/es`, `/fr` e a prévia autenticada. Sem documento válido nada é emitido; sem JS tudo continua funcionando. --}} @use('Layout\Blocks\BlockCatalog') @use('Layout\Blocks\BlockLocalizer') @use('Layout\Blocks\BlocksDocument') @props([ 'document' => null, 'media' => [], 'locale' => null, ]) @php $sections = $document instanceof BlocksDocument ? $document->visible() : []; $contentLocale = BlockLocalizer::locale(is_string($locale) ? $locale : null); @endphp @if ($sections !== [])