import "./section_heading.css"; import type * as React from "react"; import { useRender } from "@base-ui/react/use-render"; import { type StyleProps } from "./style_props"; import { type HeadingLevel } from "./text"; export interface SectionProps extends StyleProps { children: React.ReactNode; testID?: string; ref?: React.Ref; render?: useRender.RenderProp; } /** The card-less twin of `Card`: a bare, gap-spaced region with no surface * chrome. There is no `SectionBody` — a card-less body has no padding to own. */ export declare function Section({ children, testID, render, ref, ...rest }: SectionProps): React.ReactElement>; export interface SubsectionProps extends StyleProps { children: React.ReactNode; testID?: string; ref?: React.Ref; render?: useRender.RenderProp; } /** One named group INSIDE a `Section` — the level below it on a long record * surface (`###` in the heading ramp). Siblings stack in a `SubsectionStack`. A * headingless `Subsection` is fine for the section's lead group. */ export declare function Subsection({ children, testID, render, ref, ...rest }: SubsectionProps): React.ReactElement>; export interface SubsectionHeadingProps extends StyleProps { children: React.ReactNode; testID?: string; ref?: React.Ref; render?: useRender.RenderProp; } export declare function SubsectionHeading({ children, testID, render, ref, ...rest }: SubsectionHeadingProps): React.ReactElement>; export interface SubsectionHeadingTitleProps extends StyleProps { children: React.ReactNode; /** Muted line under the title, as on the rungs either side of this one. */ description?: string; /** Heading rank. Defaults to 3 — one level under `SectionHeadingTitle`'s 2. */ level?: HeadingLevel; /** An ⓘ popover after the title — a short "what this is / where it came from" * gloss, mirroring `SectionHeadingTitle`'s `info`. */ info?: string; testID?: string; ref?: React.Ref; render?: useRender.RenderProp; } /** The subsection title — ALWAYS `###` (lg semibold), the fixed step under a * PAGE's xl section title. Grows to push siblings to the right edge. * * It has one rung, not two: inside a PANEL the section rung is already the * ramp's floor (`####` md), so a subsection there would out-rank its own * section. A named group inside a panel's section is `Text size="sm" * weight="semibold"`. */ export declare function SubsectionHeadingTitle({ children, description, level, info, testID, render, ref, ...rest }: SubsectionHeadingTitleProps): React.ReactElement>; export interface SectionHeadingProps extends StyleProps { children: React.ReactNode; testID?: string; ref?: React.Ref; render?: useRender.RenderProp; } /** * The heading's TRAILING slot — every child after the title, as ONE unit: the * group moves or stays together, and only the TITLE ever breaks away from it. It * belongs on the title's FIRST line, not centred against the title COLUMN, whose * height depends on how far the description wrapped. * * One child is no group, and the single verb still drops below a title too long * to share the row. */ export declare function SectionHeading({ children, testID, render, ref, ...rest }: SectionHeadingProps): React.ReactElement>; export interface SectionHeadingTitleProps extends StyleProps { children: React.ReactNode; description?: string; /** Heading rank, when the surface's own outline needs one the surface does not * give it. Leave it unset: the default is the rank of whichever rung the * surface selected (`2` on a page, `4` in a panel). It does NOT move the type * size — the ramp is absolute. */ level?: HeadingLevel; /** Title weight. Defaults to `semibold`; `medium` is the opt-down for a * surface where the heading competes with a stronger band above it. */ weight?: "medium" | "semibold"; /** An ⓘ popover after the title — a short "what this is / where it came from" * gloss, mirroring `CardHeaderTitle`'s `info`. */ info?: string; testID?: string; ref?: React.Ref; render?: useRender.RenderProp; } /** The title block — the heading ramp's SECTION rung, on the fixed markdown * ladder `#` xxl (`RecordSummary`/`PageHeader`) → `##` xl (section) → `###` lg * (`SubsectionHeadingTitle`) over the sm body. No size knob: which rung it * renders is decided by the SURFACE, which publishes it (`heading_surface.ts`). * * Inside a panel this rung is the ramp's FLOOR. A named group inside a section * there is `Text size="sm" weight="semibold"`, not a `SubsectionHeadingTitle`, * which is `lg` at every surface and would out-rank the section holding it. * * NO GLYPH, and no slot to put one in: a section heading is its words and, where * the section is operable, the verb beside them. A SUBJECT's own mark leads the * surface that names that subject, never a heading over a block of its fields. * * Optional muted `description` line; grows to push any sibling actions to the * right edge. */ export declare function SectionHeadingTitle({ children, description, level, weight, info, testID, render, ref, ...rest }: SectionHeadingTitleProps): React.ReactElement>; export interface SectionHeadingMetaProps extends StyleProps { children: React.ReactNode; testID?: string; ref?: React.Ref; render?: useRender.RenderProp; } /** Right-side context for `SectionHeading` — a count ("3 cont"), unit, or * period. The card-less twin of `CardHeaderMeta`; the title's grow pushes it to * the right edge. */ export declare function SectionHeadingMeta({ children, testID, render, ref, ...rest }: SectionHeadingMetaProps): React.JSX.Element;