UNPKG

@teaui/core

Version:

A high-level terminal UI library for Node

30 lines (29 loc) 1.13 kB
import type { Viewport } from '../Viewport.js'; import { Container, type Props as ContainerProps } from '../Container.js'; import { Size } from '../geometry.js'; interface Props extends ContainerProps { /** * Called during render with the available content size. Use this to implement * virtualized/windowed rendering where you need to know the viewport dimensions * before deciding what to render. */ onLayout?: (size: Size) => void; } /** * A container that reports its available size via onLayout callback. Defaults to * filling all available space (width='fill', height='fill') unless explicit * dimensions are provided. * * Useful for: * - Measuring available space before deciding what to render * - Virtualized lists that need viewport height to calculate visible items * - Responsive layouts that change based on available space */ export declare class Geometry extends Container { #private; constructor({ onLayout, ...props }: Props); update({ onLayout, ...props }: Props): void; naturalSize(available: Size): Size; render(viewport: Viewport): void; } export {};