UNPKG

react-curse

Version:

A curses-like blazingly fast react renderer

49 lines (48 loc) 1.49 kB
import { type TextProps } from './components/Text'; import { type TextElement } from './reconciler'; import { type ReactElement } from 'react'; export type Color = number | string | 'Black' | 'Red' | 'Green' | 'Yellow' | 'Blue' | 'Magenta' | 'Cyan' | 'White' | 'BrightBlack' | 'BrightRed' | 'BrightGreen' | 'BrightYellow' | 'BrightBlue' | 'BrightMagenta' | 'BrightCyan' | 'BrightWhite'; export interface Modifier { background?: Color; color?: Color; clear?: boolean; bold?: boolean; dim?: boolean; italic?: boolean; underline?: boolean; blinking?: boolean; inverse?: boolean; strikethrough?: boolean; } export type Char = [string, Modifier]; interface Bounds { x: number; y: number; x1: number; y1: number; x2: number; y2: number; } declare class Screen { buffer: Char[][]; cursor: { x: number; y: number; }; size: { x1: number; y1: number; x2: number; y2: number; }; constructor(); generateBuffer(): Char[][]; clearBuffer(): void; render(elements: TextElement[]): void; stringAt(value: string, limit: number): number; renderElement(element: ReactElement | ReactElement[] | any, prevBounds: Bounds, prevProps?: TextProps): void; fill(bounds: Bounds, prevBounds: Bounds, modifiers: TextProps): void; put(text: string, bounds: Bounds, modifiers: TextProps): number; carret(bounds: Bounds): void; } export default Screen;