@use('Core\Contracts\WidgetRegistry') @props(['id', 'region' => null]) @php /** * @intent Renderiza um widget/banner pelo `id` (ADR-016) — o perfil de destino só referencia o * id; o Core faz a inversão (embed permitido, import proibido). Widget de módulo inativo * ou não registrado simplesmente não aparece (nunca quebra a página). * * @description O fragmento recebe o **nome do slot** (`layoutRegion`) para widgets que * renderizam uma pilha daquele slot (banner de destaques — P5.S4.2). O resultado é * renderizado uma única vez e o wrapper só existe quando há conteúdo: slot vazio * não deixa `
` órfã no HTML. */ $source = app(WidgetRegistry::class)->get($id); $html = ''; if ($source !== null) { $html = trim((string) $source->render()->with('layoutRegion', is_string($region) ? $region : null)->render()); } @endphp @if ($source !== null && $html !== '')
{!! $html !!}
@endif