UNPKG

@teaui/core

Version:

A high-level terminal UI library for Node

52 lines (51 loc) 1.63 kB
import type { Viewport } from '../Viewport.js'; import { View } from '../View.js'; import { Container, type Props as ContainerProps } from '../Container.js'; import { Size, type Edge } from '../geometry.js'; import { type MouseEvent, type KeyEvent, type HotKey } from '../events/index.js'; import { type LegendItem } from '../types.js'; import { Palette } from '../Palette.js'; import { System } from '../System.js'; interface Props extends ContainerProps { location?: Edge; isOpen?: boolean; onToggle?: (isOpen: boolean) => void; hotKey?: HotKey; title?: string; } interface ConstructorProps extends Props { drawer?: View; content?: View; } export declare class Drawer extends Container { #private; drawerView?: View; contentView?: View; constructor({ content, drawer, ...props }: ConstructorProps); get location(): Edge; set location(value: Edge); update(props: Props): void; get title(): string | undefined; set title(value: string | undefined); legendItems(): LegendItem[]; /** * Opens the drawer (does not trigger onToggle) */ open(): void; /** * Closes the drawer (does not trigger onToggle) */ close(): void; /** * Toggles the drawer open/closed (does not trigger onToggle) */ toggle(): void; add(child: View, at?: number): void; naturalSize(available: Size): Size; receiveTick(dt: number): boolean; receiveKey(_: KeyEvent): void; receiveMouse(event: MouseEvent, system: System): void; childPalette(view: View): Palette; render(viewport: Viewport): void; } export {};