@teaui/core
Version:
A high-level terminal UI library for Node
52 lines (51 loc) • 1.63 kB
TypeScript
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 {};