UNPKG

@sprucelabs/spruce-cli

Version:

Command line interface for building Spruce skills.

79 lines (70 loc) 1.85 kB
import { EventContract, MercuryEventEmitter } from '@sprucelabs/mercury-types' export interface WidgetPadding { top?: number left?: number bottom?: number right?: number } export interface WidgetButton { label: string onClick?: (cb: () => void) => void } export interface BaseWidget<Contract extends EventContract = any> extends MercuryEventEmitter<Contract> { type: string getId(): string | null getFrame(): WidgetFrameCalculated setFrame(frame: Partial<WidgetFrame>): void getParent(): BaseWidget | null destroy(): Promise<void> getChildById(id?: string): BaseWidget | null getChildren(): BaseWidget[] addChild(child: BaseWidget): void removeChild(child: BaseWidget): void } export type Color = | 'black' | 'red' | 'green' | 'yellow' | 'blue' | 'magenta' | 'cyan' | 'white' | 'gray' | 'brightRed' | 'brightGreen' | 'brightYellow' | 'brightBlue' | 'brightMagenta' | 'brightCyan' | 'brightWhite' export interface UniversalWidgetOptions { id?: string width?: WidgetFrameAttribute height?: WidgetFrameAttribute left?: WidgetFrameAttribute top?: WidgetFrameAttribute parent?: BaseWidget padding?: WidgetPadding shouldLockWidthWithParent?: boolean shouldLockHeightWithParent?: boolean shouldLockRightWithParent?: boolean shouldLockBottomWithParent?: boolean eventContract?: EventContract backgroundColor?: Color foregroundColor?: Color } export interface WidgetFrame { left: WidgetFrameAttribute top: WidgetFrameAttribute width: WidgetFrameAttribute height: WidgetFrameAttribute } export interface WidgetFrameCalculated { left: number top: number width: number height: number } export type WidgetFrameAttribute = number | string