/** * html/layout — polymorphic layout primitives with CVA. * * All layout CVA lives here. layout.tsx re-exports from this file. * These components are intentionally polymorphic (via `as` prop) — * they render as whatever HTML element makes semantic sense at the call site. */ import { type VariantProps } from "class-variance-authority"; import type { ComponentPropsWithoutRef, ElementType } from "react"; type BaseLayoutProps = { as?: T; className?: string; } & Omit, "as" | "className">; export declare const boxVariants: (props?: ({ position?: "relative" | "absolute" | null | undefined; inset?: "topRight" | "topRightOverlap" | null | undefined; z?: 10 | null | undefined; pointerEvents?: "none" | null | undefined; border?: "left" | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; type BoxProps = BaseLayoutProps & VariantProps; export declare function Box({ as, position, inset, z, pointerEvents, border, className, ...props }: BoxProps): import("react").JSX.Element; export declare const stackVariants: (props?: ({ gap?: "none" | "sm" | "lg" | "xs" | "md" | "xl" | null | undefined; align?: "center" | "start" | "end" | "stretch" | null | undefined; grow?: boolean | null | undefined; width?: "sm" | "lg" | "xs" | "md" | "xl" | null | undefined; shrink?: "0" | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; type StackProps = BaseLayoutProps & VariantProps; export declare function Stack({ as, gap, align, grow, width, shrink, className, ...props }: StackProps): import("react").JSX.Element; export declare const inlineVariants: (props?: ({ gap?: "none" | "sm" | "lg" | "xs" | "md" | "xl" | null | undefined; align?: "center" | "baseline" | "start" | "end" | "stretch" | null | undefined; justify?: "center" | "start" | "end" | "between" | null | undefined; wrap?: boolean | null | undefined; position?: "relative" | "absolute" | null | undefined; inset?: "topRight" | null | undefined; paddingX?: "none" | "sm" | "lg" | "md" | "xl" | null | undefined; paddingY?: "none" | "sm" | "lg" | "md" | "xl" | null | undefined; borderBottom?: boolean | null | undefined; borderTop?: boolean | null | undefined; background?: "primary" | "muted" | "none" | "primarySubtle" | null | undefined; indent?: "none" | "sm" | "lg" | "md" | "xl" | null | undefined; accent?: boolean | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; type InlineProps = BaseLayoutProps & VariantProps; export declare function Inline({ as, gap, align, justify, wrap, position, inset, paddingX, paddingY, borderBottom, borderTop, background, indent, accent, className, ...props }: InlineProps): import("react").JSX.Element; export declare const gridVariants: (props?: ({ gap?: "none" | "sm" | "lg" | "xs" | "md" | "xl" | null | undefined; columns?: 1 | "auto" | 2 | 3 | 4 | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; type GridProps = BaseLayoutProps & VariantProps & { /** * Only for `columns="auto"`: the width each column may shrink to before * the grid drops a column. The grid then shows `floor(width / min)` equal * columns and reflows continuously as the container resizes. Ignored for * fixed column counts. Defaults to `12rem`. */ minColumnWidth?: string; }; /** * Multi-column grids react to their own container width, not the viewport — * a grid in a narrow panel collapses to one column even on a wide screen. * The `@container` scope goes on a wrapper the component renders itself; * the element carrying the `@…:` variants must live inside it. * * `columns="auto"` is the exception: an auto-fit track that fits as many * equal columns as `minColumnWidth` allows, reflowing at every width without * breakpoints — right for dense tile grids (stat/metric cards) that should * never bottom out at a single full-width column. */ export declare function Grid({ as, gap, columns, minColumnWidth, className, style, ...props }: GridProps): import("react").JSX.Element; export declare const splitVariants: (props?: ({ gap?: "none" | "sm" | "lg" | "xs" | "md" | "xl" | null | undefined; at?: "sm" | "lg" | "md" | "xl" | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; type SplitProps = BaseLayoutProps & VariantProps & { /** * Fill and shrink within a parent flex row — adds `flex-1 min-w-0` to the * container scope so a Split placed beside a leading control (icon, chevron) * takes the remaining width and its text can wrap. */ grow?: boolean; }; /** * Two slots that react to their OWN container width, not the viewport: the two * children stack vertically in a narrow panel and become a horizontal row — * first child leading, second pushed to the trailing edge (space-between) — once * the container passes the `at` breakpoint. Use it for a title opposite a * trailing metadata/aside cluster that should drop below the title on narrow * screens instead of squeezing beside it. Like {@link Grid}, the `@container` * scope goes on a wrapper the component renders itself. */ export declare function Split({ as, gap, at, grow, className, ...props }: SplitProps): import("react").JSX.Element; export declare const centerVariants: (props?: ({ maxWidth?: "none" | "sm" | "lg" | "md" | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; type CenterProps = BaseLayoutProps & VariantProps; export declare function Center({ as, maxWidth, className, ...props }: CenterProps): import("react").JSX.Element; export declare const containerVariants: (props?: ({ padding?: "none" | "sm" | "lg" | "md" | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; type ContainerProps = BaseLayoutProps & VariantProps; export declare function Container({ as, padding, className, ...props }: ContainerProps): import("react").JSX.Element; export {}; //# sourceMappingURL=layout.d.ts.map