This is $contentTemplate. page-layout puts overflow-y-auto on .page-content, so this is the layer that scrolls in a real page.
App layout — <app-layout>
LayoutAppComponent
The outer frame — top, fixed sidebar, header, sidebar and content. This page is already inside one, so the slots are drawn rather than nested.
[app-top] / $topTemplate — sticky, hidden by $showTop
[app-fixed-sidebar] / $fixedSidebarTemplate — hidden when page-layout is full screen
inside <main>, also hidden when full screen
inside main-content-wrapper, gated by $showSidebar
the flex-1 column — $contentClass lands here
Page layout — <page-layout>
LayoutPagesComponent
The layer that owns the scroll container, which is why every page nests it inside app-layout. Live below.
Nested page-layout
$footerTemplate
Grid layout — <grid-layout>
LayoutGridComponent
One state object instead of a dozen inputs. This is the frame the grid component renders into.
headerTemplate
contentTemplate — sidebarRightTemplate and bodyLeft/bodyRight are available too
Page header — <page-header>
PageHeaderComponent
Title plus an action-builder on the right, usually driven from PageHeaderService rather than inputs.
PageHeaderService drives the header in the demo shell above — try the buttons and look at the top of the page.
Awards
Dialog layout — <dialog-layout>
LayoutDialogComponent
What app-dialog renders internally. Documented here; see the Modals page for the wrapper you actually use.
Stores — Layout stores
ServiceStore
Each layout has a root-provided store whose values override the component — and persist across pages.
showTop / showHeader / showSidebar / showFixedSidebar plus AppLayoutClasses
isFullScreen, sidebar flags, loading, loadingSkeleton, templates, classes
data, classes and template — wins over $cardLayoutData
templates, classes, loading, dragDisabled
the same GridLayoutState the $layout input takes
sidebarFixedOpen, isSidebarLogo, isSidebarMobileOpen
titleData, actions, show — update() / hide() / show()
In every case the store value wins over the input, and all of them are root-provided — so state set on one page persists to the next unless it is reset on destroy.
Layout shell — <layout-shell>
LayoutShellComponent
The region tree that page, dialog and grid layouts render through: each region holds a template, more regions, or both. An empty region renders nothing.