{/* Skip-to-content link */}
{t('@astryx.appShell.skipToContent')}
{headerContent}
{autoMobileTopBar}
>} start={sideNavContent} content={mainContent} />
{/* Keep the drawer mounted while its exit animation completes. Native dialog
visibility hides it once closed; responsive mounting stays unchanged. */}
{shouldRenderMobileNavReactNode && mobileNavReactNode}
{shouldRenderConfigContent && mobileNavConfigContent}
{isBelowBreakpoint && !mobileNavDisabled && mobileNavReactNode == null && !mobileNavConfigContent && <>
{/* SideNav drawer — always mounted so presence detection works.
Hidden when TopNav owns the drawer (combined mode passes
sideNav via TopNav's mobile content context instead). */}
{hasSideNav && !hasTopNav &&
{sideNav}
}
{hasTopNav &&
{topNav}
}
>}