/** * layout — a Flexbox-like layout engine, in integers, in two passes (measure * bottom-up, position top-down). A pure function: (Node, Size) → boxes. * Supports column/row/center, box/panel and leaves. */ import type { Node } from '../components/index.js'; import type { Rect, Size } from '../frame/index.js'; export type Direction = 'row' | 'column'; export type Align = 'start' | 'center' | 'end' | 'stretch'; export type Justify = 'start' | 'center' | 'end' | 'space-between' | 'space-around'; export type Overflow = 'hidden' | 'visible' | 'scroll'; export type Dimension = number | 'auto' | `${number}fr`; export interface EdgeInsets { readonly top: number; readonly right: number; readonly bottom: number; readonly left: number; } export interface LayoutProps { readonly direction?: Direction; readonly gap?: number; readonly padding?: number | Partial; readonly margin?: number | Partial; readonly align?: Align; readonly justify?: Justify; readonly flexGrow?: number; readonly flexShrink?: number; readonly width?: Dimension; readonly height?: Dimension; readonly minWidth?: number; readonly maxWidth?: number; readonly minHeight?: number; readonly maxHeight?: number; readonly overflow?: Overflow; } export interface LayoutBox { readonly node: Node; readonly rect: Rect; readonly content: Rect; } export declare function computeLayout(root: Node, viewport: Size): LayoutBox[]; //# sourceMappingURL=index.d.ts.map