The site header provides navigation, language and theme controls, and account links based on the current sign-in state.
src/lib/docs/showcase/header.tsx
import { Header } from '@/components/Header/Header'
export function HeaderDemo() {
return <Header />
}The site footer, four columns, on every marketing surface. Its links are checked by the typed router, so a renamed route breaks the build here.
src/lib/docs/showcase/footer.tsx
import { Footer } from '@/components/Footer/Footer'
export function FooterDemo() {
return <Footer />
}Waiting
Refused
This could not be loaded. Reload the page to try again.
Answered
The card every Dashboard panel renders in, in all three of the states its signature forces a caller to supply: waiting, refused, and answered.
src/lib/docs/showcase/panel.tsx
import { Panel } from '@/components/Dashboard/Panel/Panel'
const UNREACHABLE = new Error('unreachable')
export function PanelDemo() {
return (
<div className="flex flex-col gap-4">
<Panel title="Waiting" isPending={true} error={null}>
{null}
</Panel>
<Panel title="Refused" isPending={false} error={UNREACHABLE}>
{null}
</Panel>
<Panel
title="Answered"
action={
<button type="button" className="btn btn-sm btn-ghost border-base-300">
Manage
</button>
}
isPending={false}
error={null}
>
<div className="flex flex-wrap gap-1.5">
<span className="badge badge-ghost badge-sm font-mono">boilerplate</span>
<span className="badge badge-ghost badge-sm font-mono">
lifetime-updates
</span>
</div>
</Panel>
</div>
)
}Not shown here
NavigationBar and AuthShell are the two page shells, and neither can appear in this gallery: both render a <main>, and the documentation page you are reading is itself a <main>. A nested one is invalid HTML.
NavigationBar is the marketing shell, and it is the three lines above composed: <Header />, your page in a <main>, <Footer />. AuthShell is the frame around /auth/login, where signing in and signing up are one flow. Read both at src/components/.
