// The chrome around every server-rendered public page. // // The bundler's SSR entry is hardcoded to import { PublicLayout } from this exact // path and to call it with { currentPath, children } — it is a contract, not a // convention. The client takeover (public.tsx) wraps the same body in the same // layout with the same currentPath, which is what makes the server markup and the // post-takeover markup identical. If they diverged, the page would visibly rebuild // itself the moment the bundle landed. // // Deliberately plain. This renders inside goja against a DOM shim at BUILD time, // where there is no layout, no getBoundingClientRect and no window — so nothing in // here may measure the page. That rules out the kit's floating components (Menu, // Tooltip, Popover), which is why the Layers menu is a row of links here and a real // menu everywhere else. import { JSXElement } from "solid-js"; export function PublicLayout(props: { currentPath: string; children?: JSXElement }) { return (
{props.children}
); }