--- // TODO: no-container (
-less body) — unused so far. import BaseLayout from './BaseLayout.astro' import Navbar from '@shared/components/navbar/Navbar.astro' import Sidebar from '@shared/components/navbar/Sidebar.astro' import PageHeader from '@shared/components/layout/PageHeader.astro' import Footer from '@shared/components/layout/Footer.astro' interface Props { title?: string | undefined /** Script/CSS library keys passed to BaseLayout */ pageLibs?: string[] /** page-header — the title in the page header. Defaults to `title`; pass false for no page header */ pageHeader?: string | false | undefined /** page-header-file — renders a layout/headers/{file} component instead of the title block */ pageHeaderFile?: string | undefined /** page-header-pretitle */ pretitle?: string | undefined /** page-header-description */ description?: string | undefined /** page-menu from the front matter, e.g. "layout.vertical" — active menu entry */ pageMenu?: string | undefined /** layout-sidebar */ sidebar?: boolean /** layout-sidebar-dark */ sidebarDark?: boolean /** layout-hide-topbar */ hideTopbar?: boolean /** page-container-centered — adds my-auto to the .container-xl */ containerCentered?: boolean /** layout-wrapper-full — page-wrapper-full + no .container-xl around the body */ wrapperFull?: boolean /** page-container-class — extra classes appended to the .container-xl */ containerClass?: string /** body-class front matter (e.g. "layout-boxed"/"layout-fluid") → passed to BaseLayout */ bodyClass?: string /** layout-rtl → passed to BaseLayout (dir="rtl" + RTL stylesheets) */ rtl?: boolean /** layout-sidebar-end */ sidebarEnd?: boolean /** layout-navbar-transparent (sidebar variant) */ navbarTransparent?: boolean /** layout-navbar-condensed */ navbarCondensed?: boolean /** layout-navbar-dark */ navbarDark?: boolean /** layout-navbar-overlap */ navbarOverlap?: boolean /** layout-navbar-sticky */ navbarSticky?: boolean /** layout-navbar-hide-brand */ navbarHideBrand?: boolean /** layout-navbar-class */ navbarClass?: string } const { title, pageLibs, pageHeader, pageHeaderFile, pretitle, description, pageMenu, sidebar, sidebarDark, hideTopbar, containerCentered, wrapperFull, containerClass, bodyClass, rtl, sidebarEnd, navbarTransparent, navbarCondensed, navbarDark, navbarOverlap, navbarSticky, navbarHideBrand, navbarClass } = Astro.props // Most pages repeat the page title verbatim, so `pageHeader` falls back to `title`. // Pages that deliberately have no header (blank, playgrounds) pass pageHeader={false}. const headerTitle = pageHeader === false ? undefined : (pageHeader ?? title) ---
{ sidebar && ( '} /> '} /> ) } { !hideTopbar && ( '} /> '} /> ) }
{ wrapperFull ? ( ) : (
) }