import "./page_content.css"; import type * as React from "react"; import { type ReactNode } from "react"; import { useRender } from "@base-ui/react/use-render"; import { type StyleProps } from "./style_props"; export interface PageContentProps extends StyleProps { children: ReactNode; title?: string; titleRight?: ReactNode; description?: string | null; header?: ReactNode; footer?: ReactNode; /** The screen's job, sizing its column ({@link PAGE_SIZES}); default `register`. */ size?: PageSize; /** The address of the screen in the column. A new one opens at the top, and one read before returns to * where it was left — a record opened from far down a list starts at its head, and the list is found * again on the way back. */ scrollKey?: string; fullscreen?: boolean; testID?: string; ref?: React.Ref; render?: useRender.RenderProp; } /** The page shell: a centred column capped by job (`size`, {@link PAGE_SIZES}), an optional title band * (`title`, `titleRight`, `description`), `header`/`footer` slots and `fullscreen`. Always capped — * `register` by default, since an uncapped screen put identity and amount at opposite ends of a wide * desk; `fullscreen` is the one uncapped surface. Cap and gutter narrow off the shell's own container, * not the window (a 700px pane beside chat), on the `--lotics-page-pad-narrow`/`-wide` pair so a list and * its record share an edge. */ export declare function PageContent(props: PageContentProps): React.ReactElement>; /** * The reading column per job — the one place these widths live. Each is the content width; the gutter is * added outside, so `register` hands its body 1040 (what `RecordPage`'s fork measures). * * | `size` | px | The job | * |---|---|---| * | `focused` | 560 | A focused task flow — a sign-in, a pick run, a checklist | * | `form` | 720 | One record's form, or a feed | * | `dashboard` | 960 | A dashboard, a pivot, a faceted browse | * | `register` | 1040 | A register, a work list, a calendar — **the default** | * | `wide` | 1100 | A wallboard or a report | * | `record` | 1280 | One record read whole: its rail, its sections and its comments beside them | * * The sheet reads the named one via `--lotics-page-content-max`; a screen outside this shell imports it. */ export declare const PAGE_SIZES: { readonly focused: 560; readonly form: 720; readonly dashboard: 960; readonly register: 1040; readonly wide: 1100; readonly record: 1280; }; export type PageSize = keyof typeof PAGE_SIZES;