/* ═══════════════════════════════════════════════════════════════ PAGE SHELL Just the chrome that makes pages look alike: a page header, then sections with a thin accent banner between them, alternating backgrounds, and a left-aligned heading with a blurb and rule. Whatever goes inside a section is passed as `content` — the shell doesn't care what it is. No
and no footer here — Layout provides both, so a page using this shell drops straight into the router's Outlet. Usage: , // optional, right of the heading content: , }, ]} /> ═══════════════════════════════════════════════════════════════ */ const TEAL = "#138ba0"; export function Section({ section }) { const { id, title, blurb, accent, background, // Optional action bar for this section's heading row — a view // toggle, a filter, a link. Whatever the section needs; the // shell just gives it a place to sit. actions, content, } = section; return (
{/* Heading — left aligned, optional actions on the right */}

{title}

{blurb &&

{blurb}

}
{actions}
{content}
); } export default function PageShell({ title, intro, sections }) { return ( <> {/* Page header */}

{title}

{intro &&

{intro}

}
{sections.map((section, i) => (
{/* Thin solid banner between sections */}
{i === sections.length - 1 && (
)}
))} ); }