Astro rechaza <slot name={dynamic} /> dentro de un .map() — los nombres de slot deben ser literales en parse time.
restriccion: MasterDetail necesita renderear un pane distinto por item, pero Astro no compila un named slot dinamico.
Invertir el contrato: MasterDetail expone un solo default slot; los callers marcan cada pane con data-md-key. Un script chico en MasterDetail toggle visibility en base a ese atributo. El error de compile se fue, el caller queda explicito.
<!-- Generico: no sabe que va en cada pane -->
<div class="md-grid" data-masterdetail>
<nav>{items.map((it, i) => (
<button data-md-pick={it.key} data-active={i === 0}>{it.label}</button>
))}</nav>
<div><slot /></div> <!-- el caller mete <div data-md-key="..."> aca -->
</div>
<!-- Caller: explicito, type-safe -->
<MasterDetail items={levels}>
<div data-md-key="context"><MermaidViewer ... /></div>
<div data-md-key="container" class="hidden"><MermaidViewer ... /></div>
</MasterDetail>