OpenTUI 0.3.0
This release has no release notes. The list below comes from its published type declarations.
API changes#
@opentui/core#
Added
class ASCIIFontRenderable extends FrameBufferRenderableclass ASCIIFontSelectionHelperclass ArrowRenderable extends Renderableclass Audio extends EventEmitter<AudioEvents>abstract class BaseRenderable extends EventEmitterclass BloomEffectclass BoxRenderable extends Renderableclass CRTRollingBarEffectclass CliRenderer extends EventEmitter implements RenderContextclass CloudsEffectclass CodeRenderable extends TextBufferRenderableclass DataPathsManager extends EventEmitter<DataPathsEvents>class DiffRenderable extends Renderableclass DistortionEffectclass EditBuffer extends EventEmitterabstract class EditBufferRenderable extends Renderable implements LineInfoProviderclass EditorViewclass ExtmarksControllerclass FlamesEffectclass FrameBufferRenderable extends Renderableclass InputRenderable extends TextareaRenderableclass InternalKeyHandler extends KeyHandlerclass KeyEvent implements ParsedKeyclass KeyHandler extends EventEmitter<KeyHandlerEventMap>class LineNumberRenderable extends Renderableclass LinearScrollAccel implements ScrollAccelerationclass MacOSScrollAccel implements ScrollAccelerationclass MarkdownRenderable extends Renderableclass MouseEventclass MouseParserclass NativeSpanFeedclass OptimizedBufferclass PasteEventclass RGBAclass RainbowTextEffectabstract class Renderable extends BaseRenderableclass RootRenderable extends Renderableclass RootTextNodeRenderable extends TextNodeRenderableclass ScrollBarRenderable extends Renderableclass ScrollBoxRenderable extends BoxRenderableclass SelectRenderable extends Renderableclass Selectionclass SliderRenderable extends Renderableclass SlotRegistry<TNode, TSlots extends object, TContext extends PluginContext = PluginContext>class SlotRenderable<TSlotName extends string = string, TContext extends PluginContext = PluginContext, TData extends object = Record<string, unknown>> extends Renderableclass StdinParserclass StyledTextclass SyntaxStyleclass SystemClock implements Clockclass TabSelectRenderable extends Renderableclass TerminalConsole extends EventEmitterclass TerminalPalette implements TerminalPaletteDetectorclass TextBufferabstract class TextBufferRenderable extends Renderable implements LineInfoProviderclass TextBufferViewclass TextNodeRenderable extends BaseRenderableclass TextRenderable extends TextBufferRenderableclass TextTableRenderable extends Renderableclass TextareaRenderable extends EditBufferRenderableclass TimeToFirstDrawRenderable extends Renderableclass Timelineclass TreeSitterClient extends EventEmitter<TreeSitterClientEvents>class VRenderable extends Renderableclass VignetteEffectconst ACHROMATOPSIA_MATRIX: Float32Array<ArrayBuffer>const ATTRIBUTE_BASE_BITS = 8const ATTRIBUTE_BASE_MASK = 255const BorderCharArrays: Record<BorderStyle, Uint32Array>const BorderChars: Record<BorderStyle, BorderCharacters>const DEFAULT_BACKGROUND_RGB: RGBTripletconst DEFAULT_FOREGROUND_RGB: RGBTripletconst DEUTERANOPIA_COMP_MATRIX: Float32Array<ArrayBuffer>const DEUTERANOPIA_SIM_MATRIX: Float32Array<ArrayBuffer>const GRAYSCALE_MATRIX: Float32Array<ArrayBuffer>const GREENSCALE_MATRIX: Float32Array<ArrayBuffer>const INVERT_MATRIX: Float32Array<ArrayBuffer>const PROTANOPIA_COMP_MATRIX: Float32Array<ArrayBuffer>const PROTANOPIA_SIM_MATRIX: Float32Array<ArrayBuffer>const SEPIA_MATRIX: Float32Array<ArrayBuffer>const SOLARIZATION_MATRIX: Float32Array<ArrayBuffer>const SYNTHWAVE_MATRIX: Float32Array<ArrayBuffer>const TECHNICOLOR_MATRIX: Float32Array<ArrayBuffer>const TRITANOPIA_COMP_MATRIX: Float32Array<ArrayBuffer>const TRITANOPIA_SIM_MATRIX: Float32Array<ArrayBuffer>const TextAttributes: { NONE: number; BOLD: number; DIM: number; ITALIC: number; UNDERLINE: number; BLINK: number; INVERSE: number; HIDDEN: number; STRIKETHROUGH: number; }const basenameToFiletype: Map<string, string>const bg: (color: Color) => (input: StylableInput) => TextChunkconst bgBlack: (input: StylableInput) => TextChunkconst bgBlue: (input: StylableInput) => TextChunkconst bgCyan: (input: StylableInput) => TextChunkconst bgGreen: (input: StylableInput) => TextChunkconst bgMagenta: (input: StylableInput) => TextChunkconst bgRed: (input: StylableInput) => TextChunkconst bgWhite: (input: StylableInput) => TextChunkconst bgYellow: (input: StylableInput) => TextChunkconst black: (input: StylableInput) => TextChunkconst blink: (input: StylableInput) => TextChunkconst blue: (input: StylableInput) => TextChunkconst bold: (input: StylableInput) => TextChunkconst brightBlack: (input: StylableInput) => TextChunkconst brightBlue: (input: StylableInput) => TextChunkconst brightCyan: (input: StylableInput) => TextChunkconst brightGreen: (input: StylableInput) => TextChunkconst brightMagenta: (input: StylableInput) => TextChunkconst brightRed: (input: StylableInput) => TextChunkconst brightWhite: (input: StylableInput) => TextChunkconst brightYellow: (input: StylableInput) => TextChunkconst capture: Captureconst cyan: (input: StylableInput) => TextChunkconst defaultTextareaKeyBindings: KeyBinding[]const dim: (input: StylableInput) => TextChunkconst engine: TimelineEngineconst env: Record<string, any>const envRegistry: Record<string, EnvVarConfig>const extensionToFiletype: Map<string, string>const fg: (color: Color) => (input: StylableInput) => TextChunkconst fonts: { tiny: { name: string; version: string; homepage: string; colors: number; lines: number; buffer: string[]; letterspace: string[]; letterspace_size: number; chars: { A: string[]; B: string[]; C: string[]; D: string[]; E: string[]; F: string[]; G: string[]; H: string[]; I: string[]; J: string[]; K: string[]; L: string[]; M: string[]; N: string[]; O: string[]; P: string[]; Q: string[]; R: string[]; S: string[]; T: string[]; U: string[]; V: string[]; W: string[]; X: string[]; Y: string[]; Z: string[]; "0": string[]; "1": string[]; "2": string[]; "3": string[]; "4": string[]; "5": string[]; "6": string[]; "7": string[]; "8": string[]; "9": string[]; "!": string[]; "?": string[]; ".": string[]; "+": string[]; "-": string[]; _: string[]; "=": string[]; "@": string[]; "#": string[]; $: string[]; "%": string[]; "&": string[]; "(": string[]; ")": string[]; "/": string[]; ":": string[]; ";": string[]; ",": string[]; "'": string[]; "\"": string[]; " ": string[]; }; }; block: { name: string; version: string; homepage: string; colors: number; lines: number; buffer: string[]; letterspace: string[]; letterspace_size: number; chars: { A: string[]; B: string[]; C: string[]; D: string[]; E: string[]; F: string[]; G: string[]; H: string[]; I: string[]; J: string[]; K: string[]; L: string[]; M: string[]; N: string[]; O: string[]; P: string[]; Q: string[]; R: string[]; S: string[]; T: string[]; U: string[]; V: string[]; W: string[]; X: string[]; Y: string[]; Z: string[]; "0": string[]; "1": string[]; "2": string[]; "3": string[]; "4": string[]; "5": string[]; "6": string[]; "7": string[]; "8": string[]; "9": string[]; "!": string[]; "?": string[]; ".": string[]; "+": string[]; "-": string[]; _: string[]; "=": string[]; "@": string[]; "#": string[]; $: string[]; "%": string[]; "&": string[]; "(": string[]; ")": string[]; "/": string[]; ":": string[]; ";": string[]; ",": string[]; "'": string[]; "\"": string[]; " ": string[]; }; }; shade: { name: string; version: string; homepage: string; colors: number; lines: number; buffer: string[]; letterspace: string[]; letterspace_size: number; chars: { A: string[]; B: string[]; C: string[]; D: string[]; E: string[]; F: string[]; G: string[]; H: string[]; I: string[]; J: string[]; K: string[]; L: string[]; M: string[]; N: string[]; O: string[]; P: string[]; Q: string[]; R: string[]; S: string[]; T: string[]; U: string[]; V: string[]; W: string[]; X: string[]; Y: string[]; Z: string[]; "0": string[]; "1": string[]; "2": string[]; "3": string[]; "4": string[]; "5": string[]; "6": string[]; "7": string[]; "8": string[]; "9": string[]; "!": string[]; "?": string[]; ".": string[]; "+": string[]; "-": string[]; _: string[]; "=": string[]; "@": string[]; "#": string[]; $: string[]; "%": string[]; "&": string[]; "(": string[]; ")": string[]; "/": string[]; ":": string[]; ";": string[]; ",": string[]; "'": string[]; "\"": string[]; " ": string[]; }; }; slick: { name: string; version: string; homepage: string; colors: number; lines: number; buffer: string[]; letterspace: string[]; letterspace_size: number; chars: { A: string[]; B: string[]; C: string[]; D: string[]; E: string[]; F: string[]; G: string[]; H: string[]; I: string[]; J: string[]; K: string[]; L: string[]; M: string[]; N: string[]; O: string[]; P: string[]; Q: string[]; R: string[]; S: string[]; T: string[]; U: string[]; V: string[]; W: string[]; X: string[]; Y: string[]; Z: string[]; "0": string[]; "1": string[]; "2": string[]; "3": string[]; "4": string[]; "5": string[]; "6": string[]; "7": string[]; "8": string[]; "9": string[]; "!": string[]; "?": string[]; ".": string[]; "+": string[]; "-": string[]; _: string[]; "=": string[]; "@": string[]; "#": string[]; $: string[]; "%": string[]; "&": string[]; "(": string[]; ")": string[]; "/": string[]; ":": string[]; ";": string[]; ",": string[]; "'": string[]; "\"": string[]; " ": string[]; }; }; huge: { name: string; version: string; homepage: string; colors: number; lines: number; buffer: string[]; letterspace: string[]; letterspace_size: number; chars: { A: string[]; B: string[]; C: string[]; D: string[]; E: string[]; F: string[]; G: string[]; H: string[]; I: string[]; J: string[]; K: string[]; L: string[]; M: string[]; N: string[]; O: string[]; P: string[]; Q: string[]; R: string[]; S: string[]; T: string[]; U: string[]; V: string[]; W: string[]; X: string[]; Y: string[]; Z: string[]; "0": string[]; "1": string[]; "2": string[]; "3": string[]; "4": string[]; "5": string[]; "6": string[]; "7": string[]; "8": string[]; "9": string[]; "!": string[]; "?": string[]; ".": string[]; "+": string[]; "-": string[]; _: string[]; "=": string[]; "@": string[]; "#": string[]; $: string[]; "%": string[]; "&": string[]; "(": string[]; ")": string[]; "/": string[]; ":": string[]; ";": string[]; ",": string[]; "'": string[]; "\"": string[]; " ": string[]; }; }; grid: { name: string; version: string; homepage: string; colors: number; lines: number; buffer: string[]; letterspace: string[]; letterspace_size: number; chars: { A: string[]; B: string[]; C: string[]; D: string[]; E: string[]; F: string[]; G: string[]; H: string[]; I: string[]; J: string[]; K: string[]; L: string[]; M: string[]; N: string[]; O: string[]; P: string[]; Q: string[]; R: string[]; S: string[]; T: string[]; U: string[]; V: string[]; W: string[]; X: string[]; Y: string[]; Z: string[]; "0": string[]; "1": string[]; "2": string[]; "3": string[]; "4": string[]; "5": string[]; "6": string[]; "7": string[]; "8": string[]; "9": string[]; "!": string[]; "?": string[]; ".": string[]; "+": string[]; "-": string[]; _: string[]; "=": string[]; "@": string[]; "#": string[]; $: string[]; "%": string[]; "&": string[]; "(": string[]; ")": string[]; "/": string[]; ":": string[]; ";": string[]; ",": string[]; "'": string[]; "\"": string[]; " ": string[]; }; }; pallet: { name: string; version: string; homepage: string; colors: number; lines: number; buffer: string[]; letterspace: string[]; letterspace_size: number; chars: { A: string[]; B: string[]; C: string[]; D: string[]; E: string[]; F: string[]; G: string[]; H: string[]; I: string[]; J: string[]; K: string[]; L: string[]; M: string[]; N: string[]; O: string[]; P: string[]; Q: string[]; R: string[]; S: string[]; T: string[]; U: string[]; V: string[]; W: string[]; X: string[]; Y: string[]; Z: string[]; "0": string[]; "1": string[]; "2": string[]; "3": string[]; "4": string[]; "5": string[]; "6": string[]; "7": string[]; "8": string[]; "9": string[]; "!": string[]; "?": string[]; ".": string[]; "+": string[]; "-": string[]; _: string[]; "=": string[]; "@": string[]; "#": string[]; $: string[]; "%": string[]; "&": string[]; "(": string[]; ")": string[]; "/": string[]; ":": string[]; ";": string[]; ",": string[]; "'": string[]; "\"": string[]; " ": string[]; }; }; }const green: (input: StylableInput) => TextChunkconst italic: (input: StylableInput) => TextChunkconst link: (url: string) => (input: StylableInput) => TextChunkconst magenta: (input: StylableInput) => TextChunkconst nonAlphanumericKeys: string[]const parseKeypress: (s?: Buffer | string, options?: ParseKeypressOptions) => ParsedKey | nullconst red: (input: StylableInput) => TextChunkconst reverse: (input: StylableInput) => TextChunkconst strikethrough: (input: StylableInput) => TextChunkconst terminalNamedSingleStrokeKeys: string[]const underline: (input: StylableInput) => TextChunkconst vstyles: { bold: (...children: (string | TextNodeRenderable)[]) => TextNodeRenderable; italic: (...children: (string | TextNodeRenderable)[]) => TextNodeRenderable; underline: (...children: (string | TextNodeRenderable)[]) => TextNodeRenderable; dim: (...children: (string | TextNodeRenderable)[]) => TextNodeRenderable; blink: (...children: (string | TextNodeRenderable)[]) => TextNodeRenderable; inverse: (...children: (string | TextNodeRenderable)[]) => TextNodeRenderable; hidden: (...children: (string | TextNodeRenderable)[]) => TextNodeRenderable; strikethrough: (...children: (string | TextNodeRenderable)[]) => TextNodeRenderable; boldItalic: (...children: (string | TextNodeRenderable)[]) => TextNodeRenderable; boldUnderline: (...children: (string | TextNodeRenderable)[]) => TextNodeRenderable; italicUnderline: (...children: (string | TextNodeRenderable)[]) => TextNodeRenderable; boldItalicUnderline: (...children: (string | TextNodeRenderable)[]) => TextNodeRenderable; color: (color: string | RGBA, ...children: (string | TextNodeRenderable)[]) => TextNodeRenderable; bgColor: (bgColor: string | RGBA, ...children: (string | TextNodeRenderable)[]) => TextNodeRenderable; fg: (color: string | RGBA, ...children: (string | TextNodeRenderable)[]) => TextNodeRenderable; bg: (bgColor: string | RGBA, ...children: (string | TextNodeRenderable)[]) => TextNodeRenderable; styled: (attributes?: number, ...children: (string | TextNodeRenderable)[]) => TextNodeRenderable; }const white: (input: StylableInput) => TextChunkconst yellow: (input: StylableInput) => TextChunkconstruct RenderableConstructor(ctx: RenderContext, options: P): Renderableconstructor ASCIIFontRenderable(ctx: RenderContext, options: ASCIIFontOptions)constructor ASCIIFontSelectionHelper(getText: () => string, getFont: () => keyof typeof fonts)constructor ArrowRenderable(ctx: RenderContext, options: ArrowOptions)constructor BaseRenderable(options: BaseRenderableOptions)constructor BloomEffect(threshold?: number, strength?: number, radius?: number)constructor BoxRenderable(ctx: RenderContext, options: BoxOptions)constructor CRTRollingBarEffect(speed?: number, height?: number, intensity?: number, fadeDistance?: number)constructor CliRenderer(stdin: NodeJS.ReadStream, stdout: NodeJS.WriteStream, width: number, height: number, config?: CliRendererConfig)constructor CloudsEffect(scale?: number, speed?: number, density?: number, darkness?: number)constructor CodeRenderable(ctx: RenderContext, options: CodeOptions)constructor DataPathsManager()constructor DiffRenderable(ctx: RenderContext, options: DiffRenderableOptions)constructor DistortionEffect(options?: Partial<DistortionEffect>)constructor EditBuffer(lib: RenderLib, ptr: Pointer)constructor EditBufferRenderable(ctx: RenderContext, options: EditBufferOptions)constructor EditorView(lib: RenderLib, ptr: Pointer, editBuffer: EditBuffer)constructor ExtmarksController(editBuffer: EditBuffer, editorView: EditorView)constructor FlamesEffect(scale?: number, speed?: number, intensity?: number)constructor FrameBufferRenderable(ctx: RenderContext, options: FrameBufferOptions)constructor InputRenderable(ctx: RenderContext, options: InputRenderableOptions)constructor KeyEvent(key: ParsedKey)constructor LineNumberRenderable(ctx: RenderContext, options: LineNumberOptions)constructor MacOSScrollAccel(opts?: { A?: number; tau?: number; maxMultiplier?: number; })constructor MarkdownRenderable(ctx: RenderContext, options: MarkdownOptions)constructor MouseEvent(target: Renderable | null, attributes: RawMouseEvent & { source?: Renderable; isDragging?: boolean; })constructor OptimizedBuffer(lib: RenderLib, ptr: Pointer, width: number, height: number, options: { respectAlpha?: boolean; id?: string; widthMethod?: WidthMethod; })constructor PasteEvent(bytes: Uint8Array, metadata?: PasteMetadata)constructor RGBA(buffer: Uint16Array)constructor RainbowTextEffect(speed?: number, saturation?: number, value?: number, repeats?: number)constructor Renderable(ctx: RenderContext, options: RenderableOptions<any>)constructor RootRenderable(ctx: RenderContext)constructor RootTextNodeRenderable(ctx: RenderContext, options: TextNodeOptions, textParent: TextRenderable)constructor ScrollBarRenderable(ctx: RenderContext, { trackOptions, arrowOptions, orientation, showArrows, ...options }: ScrollBarOptions)constructor ScrollBoxRenderable(ctx: RenderContext, options: ScrollBoxOptions)constructor SelectRenderable(ctx: RenderContext, options: SelectRenderableOptions)constructor Selection(anchorRenderable: Renderable, anchor: { x: number; y: number; }, focus: { x: number; y: number; })constructor SliderRenderable(ctx: RenderContext, options: SliderOptions)constructor SlotRegistry(renderer: CliRenderer, context: TContext, options?: SlotRegistryOptions)constructor SlotRenderable(ctx: RenderContext, options: SlotRenderableOptions<TSlotName, TSlotName, TContext, TData>)constructor StdinParser(options?: StdinParserOptions)constructor StyledText(chunks: TextChunk[])constructor SyntaxStyle(lib: RenderLib, ptr: Pointer)constructor TabSelectRenderable(ctx: RenderContext, options: TabSelectRenderableOptions)constructor TerminalConsole(renderer: CliRenderer, options?: ConsoleOptions)constructor TerminalPalette(options: TerminalPaletteOptions)constructor TextBuffer(lib: RenderLib, ptr: Pointer)constructor TextBufferRenderable(ctx: RenderContext, options: TextBufferOptions)constructor TextBufferView(lib: RenderLib, ptr: Pointer, textBuffer: TextBuffer)constructor TextNodeRenderable(options: TextNodeOptions)constructor TextRenderable(ctx: RenderContext, options: TextOptions)constructor TextTableRenderable(ctx: RenderContext, options?: TextTableOptions)constructor TextareaRenderable(ctx: RenderContext, options: TextareaOptions)constructor TimeToFirstDrawRenderable(ctx: RenderContext, options?: TimeToFirstDrawOptions)constructor Timeline(options?: TimelineOptions)constructor TreeSitterClient(options: TreeSitterClientOptions)constructor VRenderable(ctx: RenderContext, options: VRenderableOptions)constructor VignetteEffect(strength?: number)enum CliRenderEventsenum ConsolePositionenum DebugOverlayCornerenum EditBufferRenderableEventsenum InputRenderableEventsenum LayoutEventsenum LogLevelenum MouseButtonenum RenderableEventsenum RendererControlStateenum SelectRenderableEventsenum TabSelectRenderableEventsenum TargetChannelfunction ASCIIFont(props?: ASCIIFontOptions, ...children: VChild[]): ProxiedVNode<typeof ASCIIFontRenderable>function Box(props?: BoxOptions, ...children: VChild[]): ProxiedVNode<typeof BoxRenderable>function Code(props: CodeOptions, ...children: VChild[]): ProxiedVNode<typeof CodeRenderable>function FrameBuffer(props: FrameBufferOptions, ...children: VChild[]): ProxiedVNode<typeof FrameBufferRenderable>function Generic(props?: VRenderableOptions, ...children: VChild[]): ProxiedVNode<typeof VRenderable>function Input(props?: InputRenderableOptions, ...children: VChild[]): ProxiedVNode<typeof InputRenderable>function ScrollBox(props?: ScrollBoxOptions, ...children: VChild[]): ProxiedVNode<typeof ScrollBoxRenderable>function Select(props?: SelectRenderableOptions, ...children: VChild[]): ProxiedVNode<typeof SelectRenderable>function TabSelect(props?: TabSelectRenderableOptions, ...children: VChild[]): ProxiedVNode<typeof TabSelectRenderable>function Text(props?: TextOptions & { content?: any; }, ...children: VChild[] | TextNodeRenderable[]): ProxiedVNode<typeof TextRenderable>function addDefaultParsers(parsers: FiletypeParserOptions[]): voidfunction ansi256IndexToRgb(index: number): RGBTripletfunction applyAsciiArt(buffer: OptimizedBuffer, ramp?: string, fgColor?: { r: number; g: number; b: number; }, bgColor?: { r: number; g: number; b: number; }): voidfunction applyBrightness(buffer: OptimizedBuffer, brightness?: number, cellMask?: Float32Array): voidfunction applyChromaticAberration(buffer: OptimizedBuffer, strength?: number): voidfunction applyGain(buffer: OptimizedBuffer, gain?: number, cellMask?: Float32Array): voidfunction applyInvert(buffer: OptimizedBuffer, strength?: number): voidfunction applyNoise(buffer: OptimizedBuffer, strength?: number): voidfunction applySaturation(buffer: OptimizedBuffer, cellMask?: Float32Array, strength?: number): voidfunction applyScanlines(buffer: OptimizedBuffer, strength?: number, step?: number): voidfunction attributesWithLink(baseAttributes: number, linkId: number): numberfunction borderCharsToArray(chars: BorderCharacters): Uint32Arrayfunction buildKittyKeyboardFlags(config: KittyKeyboardOptions | null | undefined): numberfunction buildTerminalPaletteSignature(colors?: TerminalColors | null): stringfunction clearEnvCache(): voidfunction convertGlobalToLocalSelection(globalSelection: Selection | null, localX: number, localY: number): LocalSelectionBounds | nullfunction convertThemeToStyles(theme: ThemeTokenStyle[]): Record<string, StyleDefinition>function coordinateToCharacterIndex(x: number, text: string, font?: keyof typeof fonts): numberfunction createCliRenderer(config?: CliRendererConfig): Promise<CliRenderer>function createCoreSlotRegistry<TSlotName extends string, TContext extends PluginContext = PluginContext, TData extends object = Record<string, unknown>>(renderer: CliRenderer, context: TContext, options?: SlotRegistryOptions): CoreSlotRegistry<TSlotName, TContext, TData>function createExtmarksController(editBuffer: EditBuffer, editorView: EditorView): ExtmarksControllerfunction createSlotRegistry<TNode, TSlots extends object, TContext extends PluginContext = PluginContext>(renderer: CliRenderer, key: string, context: TContext, options?: SlotRegistryOptions): SlotRegistry<TNode, TSlots, TContext>function createTerminalPalette(options: TerminalPaletteOptions): TerminalPaletteDetectorfunction createTextAttributes({ bold, italic, underline, dim, blink, inverse, hidden, strikethrough, }?: { bold?: boolean; italic?: boolean; underline?: boolean; dim?: boolean; blink?: boolean; inverse?: boolean; hidden?: boolean; strikethrough?: boolean; }): numberfunction createTimeline(options?: TimelineOptions): Timelinefunction decodePasteBytes(bytes: Uint8Array): stringfunction delegate<ConstructorType extends RenderableConstructor<any>, TargetMap extends Record<keyof InstanceType<ConstructorType>, string>, const Mapping extends Partial<TargetMap>>(mapping: ValidateShape<Mapping, TargetMap>, vnode: ProxiedVNode<ConstructorType>): ProxiedVNode<ConstructorType>function delegate<ConstructorType extends RenderableConstructor<any>, const Mapping extends DelegateMap<InstanceType<ConstructorType>>>(mapping: ValidateShape<Mapping, string>, vnode: VNode & { type: ConstructorType; }): VNodefunction delegate<Factory extends InstantiateFn<any>, InnerNode extends InferNode<Factory>, TargetMap extends Record<keyof InnerNode, string>, const Mapping extends Partial<TargetMap>>(mapping: ValidateShape<Mapping, TargetMap>, vnode: Factory): Renderablefunction detectLinks(chunks: TextChunk[], context: { content: string; highlights: SimpleHighlight[]; }): TextChunk[]function extToFiletype(extension: string): string | undefinedfunction generateEnvColored(): stringfunction generateEnvMarkdown(): stringfunction getBaseAttributes(attr: number): numberfunction getBorderFromSides(sides: BorderSidesConfig): boolean | BorderSides[]function getBorderSides(border: boolean | BorderSides[]): BorderSidesConfigfunction getCharacterPositions(text: string, font?: keyof typeof fonts): number[]function getDataPaths(): DataPathsManagerfunction getLinkId(attributes: number): numberfunction getTreeSitterClient(): TreeSitterClientfunction h<P>(type: Construct<P>, props?: P, ...children: VChild[]): VNode<P> | ProxiedVNode<any>function h<P>(type: FunctionalConstruct<P>, props?: P, ...children: VChild[]): VNode<P>function h<TCtor extends RenderableConstructor<any>>(type: TCtor, props?: TCtor extends RenderableConstructor<infer P> ? P : never, ...children: VChild[]): ProxiedVNode<TCtor>function hastToStyledText(hast: HASTNode, syntaxStyle: SyntaxStyle): StyledTextfunction hexToRgb(hex: string): RGBAfunction hsvToRgb(h: number, s: number, v: number): RGBAfunction infoStringToFiletype(infoString: string): string | undefinedfunction instantiate<NodeType extends VNode | Renderable>(ctx: RenderContext, node: NodeType): InstantiateFn<NodeType>function isEditBufferRenderable(obj: unknown): obj is EditBufferRenderablefunction isRenderable(obj: any): obj is Renderablefunction isStyledText(obj: any): obj is StyledTextfunction isTextNodeRenderable(obj: any): obj is TextNodeRenderablefunction isVNode(node: any): node is VNodefunction isValidBorderStyle(value: unknown): value is BorderStylefunction maybeMakeRenderable(ctx: RenderContext, node: Renderable | VNode<any, any[]> | unknown): Renderable | nullfunction measureText({ text, font }: { text: string; font?: keyof typeof fonts; }): { width: number; height: number; }function normalizeColorValue(value: ColorInput | null | undefined): NormalizedColorValue | nullfunction normalizeIndexedColorIndex(index: number): numberfunction normalizeTerminalPalette(colors?: TerminalColors | null): NormalizedTerminalPalettefunction parseAlign(value: string | null | undefined): Alignfunction parseAlignItems(value: string | null | undefined): Alignfunction parseBorderStyle(value: unknown, fallback?: BorderStyle): BorderStylefunction parseBoxSizing(value: string): BoxSizingfunction parseColor(color: ColorInput): RGBAfunction parseDimension(value: string): Dimensionfunction parseDirection(value: string): Directionfunction parseDisplay(value: string): Displayfunction parseEdge(value: string): Edgefunction parseFlexDirection(value: string | null | undefined): FlexDirectionfunction parseGutter(value: string): Gutterfunction parseJustify(value: string | null | undefined): Justifyfunction parseLogLevel(value: string): LogLevelfunction parseMeasureMode(value: string): MeasureModefunction parseOverflow(value: string | null | undefined): Overflowfunction parsePositionType(value: string | null | undefined): PositionTypefunction parseUnit(value: string): Unitfunction parseWrap(value: string | null | undefined): Wrapfunction pathToFiletype(path: string): string | undefinedfunction registerCorePlugin<TSlotName extends string, TContext extends PluginContext = PluginContext, TData extends object = Record<string, unknown>>(registry: CoreSlotRegistry<TSlotName, TContext, TData>, plugin: CorePlugin<TSlotName, TContext, TData>): () => voidfunction registerEnvVar(config: EnvVarConfig): voidfunction renderFontToFrameBuffer(buffer: OptimizedBuffer, { text, x, y, color, backgroundColor, font, }: { text: string; x?: number; y?: number; color?: ColorInput | ColorInput[]; backgroundColor?: ColorInput; font?: keyof typeof fonts; }): { width: number; height: number; }function resolveCoreSlot<TSlotName extends string, K extends TSlotName, TContext extends PluginContext = PluginContext, TData extends object = Record<string, unknown>>(registry: CoreSlotRegistry<TSlotName, TContext, TData>, slot: K): Array<CoreResolvedSlotRenderer<TContext, TData>>function resolveRenderLib(): RenderLibfunction rgbToHex(rgb: RGBA): stringfunction setRenderLibPath(libPath: string): voidfunction setupAudio(options?: AudioSetupOptions): Audiofunction stringToStyledText(content: string): StyledTextfunction stripAnsiSequences(text: string): stringfunction t(strings: TemplateStringsArray, ...values: StylableInput[]): StyledTextfunction treeSitterToStyledText(content: string, filetype: string, syntaxStyle: SyntaxStyle, client: TreeSitterClient, options?: TreeSitterToStyledTextOptions): Promise<StyledText>function treeSitterToTextChunks(content: string, highlights: SimpleHighlight[], syntaxStyle: SyntaxStyle, options?: TextChunkOptions): TextChunk[]function visualizeRenderableTree(renderable: Renderable, maxDepth?: number): voidfunction wrapWithDelegates<T extends InstanceType<RenderableConstructor>>(instance: T, delegateMap: Record<string, string> | undefined): Tindex AnimationOptions[key: string]: anyinterface ASCIIFontOptions extends Omit<RenderableOptions<ASCIIFontRenderable>, "width" | "height">interface AnimationOptionsinterface ArrowOptions extends RenderableOptions<ArrowRenderable>interface AudioEngineLibinterface AudioErrorContextinterface AudioEventsinterface AudioPlayOptionsinterface AudioPlaybackDeviceinterface AudioSetupOptionsinterface AudioStartOptionsinterface BaseRenderableOptionsinterface BlockStateinterface BorderCharactersinterface BorderConfiginterface BorderSidesConfiginterface BoxDrawOptionsinterface BoxOptions<TRenderable extends Renderable = BoxRenderable> extends RenderableOptions<TRenderable>interface BufferStateinterface CapturedFrameinterface CapturedLineinterface CapturedSpaninterface ChunkRenderContext extends HighlightContextinterface CliRendererConfiginterface CliRendererExternalOutputEventinterface CliRendererFrameEventinterface CliRendererStats extends NativeRenderStatsinterface Clockinterface CodeOptions extends TextBufferOptionsinterface ConsoleOptionsinterface ContentChangeEventinterface CoreManagedSlot<TContext extends PluginContext = PluginContext, TData extends object = Record<string, unknown>>interface CorePlugin<TSlotName extends string, TContext extends PluginContext = PluginContext, TData extends object = Record<string, unknown>>interface CoreResolvedSlotRenderer<TContext extends PluginContext = PluginContext, TData extends object = Record<string, unknown>>interface CursorChangeEventinterface CursorStateinterface CursorStyleOptionsinterface DataPathsinterface DataPathsEventsinterface DiffRenderableOptions extends RenderableOptions<DiffRenderable>interface Editinterface EditBufferOptions extends RenderableOptions<EditBufferRenderable>interface EditorTraitsinterface EnvVarConfiginterface Extmarkinterface ExtmarkOptionsinterface FiletypeParserOptionsinterface FrameBufferOptions extends RenderableOptions<FrameBufferRenderable>interface GetPaletteOptionsinterface HASTElementinterface HASTTextinterface Highlightinterface HighlightContextinterface HighlightMetainterface HighlightRangeinterface HighlightResponseinterface InjectionMappinginterface InputRenderableOptions extends Omit<TextareaOptions, "height" | "minHeight" | "maxHeight" | "initialValue">interface JSAnimationinterface KittyKeyboardOptionsinterface LayoutOptions extends BaseRenderableOptionsinterface LineColorConfiginterface LineInfointerface LineInfoProviderinterface LineNumberOptions extends RenderableOptions<LineNumberRenderable>interface LineSigninterface LocalSelectionBoundsinterface LogicalCursorinterface MarkdownOptions extends RenderableOptions<MarkdownRenderable>interface MarkdownTableOptionsinterface MergedStyleinterface NativeRenderOperationResultinterface NativeRendererCreateOptionsinterface NormalizedColorValueinterface NormalizedTerminalPaletteinterface ParseStateinterface ParsedBuffer extends BufferStateinterface ParsedKeyinterface PasteMetadatainterface PendingCallinterface PerformanceStatsinterface Plugin<TNode, TSlots extends object, TContext extends PluginContext = PluginContext>interface PluginErrorEventinterface PluginErrorReportinterface Positioninterface RenderContext extends EventEmitterinterface RenderLib extends AudioEngineLibinterface RenderNodeContextinterface RenderableConstructor<P extends RenderableOptions<any> = RenderableOptions<any>>interface RenderableOptions<T extends BaseRenderable = BaseRenderable> extends Partial<LayoutOptions>interface RendererEventsinterface RendererSchedulerStateinterface ResolvedSlotRenderer<TNode, TProps, TContext extends PluginContext = PluginContext>interface ScrollAccelerationinterface ScrollBarOptions extends RenderableOptions<ScrollBarRenderable>interface ScrollBoxOptions extends BoxOptions<ScrollBoxRenderable>interface ScrollInfointerface ScrollbackRenderContextinterface ScrollbackSnapshotinterface ScrollbackSurfaceinterface ScrollbackSurfaceCommitOptionsinterface ScrollbackSurfaceOptionsinterface SelectOptioninterface SelectRenderableOptions extends RenderableOptions<SelectRenderable>interface SliderOptions extends RenderableOptions<SliderRenderable>interface SlotRegistryOptionsinterface SlotRenderableOptions<TSlotName extends string, K extends TSlotName, TContext extends PluginContext = PluginContext, TData extends object = Record<string, unknown>> extends RenderableOptionsinterface StdinParserOptionsinterface StdinParserProtocolContextinterface StyleAttrsinterface StyleDefinitioninterface StyleDefinitionInputinterface SubmitEventinterface TabSelectOptioninterface TabSelectRenderableOptions extends Omit<RenderableOptions<TabSelectRenderable>, "height">interface TerminalCapabilitiesinterface TerminalColorsinterface TerminalInfointerface TerminalPaletteDetectorinterface TerminalPaletteOptionsinterface TextBufferOptions extends RenderableOptions<TextBufferRenderable>interface TextChunkinterface TextNodeOptions extends BaseRenderableOptionsinterface TextOptions extends TextBufferOptionsinterface TextTableOptions extends RenderableOptions<TextTableRenderable>interface TextareaOptions extends EditBufferOptionsinterface ThemeTokenStyleinterface TimeToFirstDrawOptions extends RenderableOptions<TimeToFirstDrawRenderable>interface TimelineOptionsinterface TreeSitterClientEventsinterface TreeSitterClientOptionsinterface TreeSitterToStyledTextOptionsinterface VNode<P = any, C = VChild[]>interface VRenderableOptions extends RenderableOptions<VRenderable>interface Viewportinterface ViewportBoundsinterface VisualCursornamespace Yoga from "yoga-layout"type ASCIIFontName = "tiny" | "block" | "shade" | "slick" | "huge" | "grid" | "pallet"type AlignString = "auto" | "flex-start" | "center" | "flex-end" | "stretch" | "baseline" | "space-between" | "space-around" | "space-evenly"type AllocatorStats = { totalRequestedBytes: number; activeAllocations: number; smallAllocations: number; largeAllocations: number; requestedBytesValid: boolean; }type AudioAction = "createAudioEngine" | "start" | "startMixer" | "stop" | "loadSound" | "loadSoundFile" | "unloadSound" | "group" | "play" | "stopVoice" | "setVoiceGroup" | "setGroupVolume" | "setMasterVolume" | "mixFrames" | "enableTap" | "readTapFrames" | "listPlaybackDevices" | "selectPlaybackDevice" | "clearPlaybackDeviceSelection" | "getStats"type AudioGroup = numbertype AudioSound = numbertype AudioVoice = numbertype BorderSides = "top" | "right" | "bottom" | "left"type BorderStyle = "single" | "double" | "rounded" | "heavy"type BoxSizingString = "border-box" | "content-box"type BuildOptions = { gpaSafeStats: boolean; gpaMemoryLimitTracking: boolean; }type Color = ColorInputtype ColorInput = string | RGBAtype ColorIntent = "rgb" | "indexed" | "default"type ConsoleAction = "scroll-up" | "scroll-down" | "scroll-to-top" | "scroll-to-bottom" | "position-previous" | "position-next" | "size-increase" | "size-decrease" | "save-logs" | "copy-selection"type ConsoleKeyBinding = BaseKeyBinding<ConsoleAction>type ConsoleMode = "console-overlay" | "disabled"type Construct<P = any> = RenderableConstructor<P extends RenderableOptions<any> ? P : never> | FunctionalConstruct<P>type CoreSlotContribution<TContext extends PluginContext = PluginContext, TData extends object = Record<string, unknown>> = CoreSlotRenderer<TContext, TData> | CoreManagedSlot<TContext, TData>type CoreSlotFailurePlaceholder<TContext extends PluginContext = PluginContext> = (failure: PluginErrorEvent, ctx: Readonly<TContext>) => FallbackNodestype CoreSlotMode = SlotModetype CoreSlotRegistry<TSlotName extends string, TContext extends PluginContext = PluginContext, TData extends object = Record<string, unknown>> = SlotRegistry<BaseRenderable, CoreSlotProps<TSlotName, TData>, TContext>type CoreSlotRenderer<TContext extends PluginContext = PluginContext, TData extends object = Record<string, unknown>> = (ctx: Readonly<TContext>, data: TData) => BaseRenderabletype CursorStyle = "block" | "line" | "underline" | "default"type DataHandler = (data: Uint8Array) => void | Promise<void>type DelegateMap<T> = Partial<Record<keyof T, string>>type DimensionString = "width" | "height"type DirectionString = "inherit" | "ltr" | "rtl"type DisplayString = "flex" | "none" | "contents"type EasingFunctions = keyof typeof easingFunctionstype EdgeString = "left" | "top" | "right" | "bottom" | "start" | "end" | "horizontal" | "vertical" | "all"type EditorCapture = "escape" | "navigate" | "submit" | "tab"type ExternalOutputMode = "capture-stdout" | "passthrough"type FlexDirectionString = "column" | "column-reverse" | "row" | "row-reverse"type FunctionalConstruct<P = any> = (props: P, children?: VChild[]) => VNodetype GrowthPolicy = "grow" | "block"type GutterString = "column" | "row" | "all"type HASTNode = HASTText | HASTElementtype InputAction = TextareaActiontype InputKeyBinding = TextareaKeyBindingtype InstantiateFn<NodeType extends VNode | Renderable> = Renderable & { __node?: NodeType; }type JustifyString = "flex-start" | "center" | "flex-end" | "space-between" | "space-around" | "space-evenly"type KeyBinding = BaseKeyBinding<TextareaAction>type KeyEventType = "press" | "repeat" | "release"type KeyHandlerEventMap = { keypress: [ KeyEvent ]; keyrelease: [ KeyEvent ]; paste: [ PasteEvent ]; }type LogLevelString = "error" | "warn" | "info" | "debug" | "verbose" | "fatal"type MarkdownTableStyle = "grid" | "columns"type MeasureModeString = "undefined" | "exactly" | "at-most"type MouseEventType = "down" | "up" | "move" | "drag" | "drag-end" | "drop" | "over" | "out" | "scroll"type MousePointerStyle = "default" | "pointer" | "text" | "crosshair" | "move" | "not-allowed"type NativeBufferedOutput = "stdout" | "memory"type NativeRenderStats = { nativeLastFrameTime: number; nativeAverageFrameTime: number; nativeFrameCount: number; cellsUpdated: number; averageCellsUpdated: number; nativeRenderTime?: number; nativeStdoutWriteTime?: number; }type NativeSpanFeedEventHandler = (eventId: number, arg0: Pointer, arg1: number | bigint) => voidtype NativeSpanFeedOptions = { chunkSize?: number; initialChunks?: number; maxBytes?: bigint; growthPolicy?: GrowthPolicy; autoCommitOnFull?: boolean; spanQueueCapacity?: number; }type NativeSpanFeedStats = { bytesWritten: bigint; spansCommitted: bigint; chunks: number; pendingSpans: number; }type OnChunksCallback = (chunks: TextChunk[], context: ChunkRenderContext) => TextChunk[] | undefined | Promise<TextChunk[] | undefined>type OnHighlightCallback = (highlights: SimpleHighlight[], context: HighlightContext) => SimpleHighlight[] | undefined | Promise<SimpleHighlight[] | undefined>type OscSubscriptionSource = { subscribeOsc(handler: (sequence: string) => void): () => void; }type OverflowString = "visible" | "hidden" | "scroll"type ParseKeypressOptions = { useKittyKeyboard?: boolean; }type PasteKind = "text" | "binary" | "unknown"type PixelResolution = { width: number; height: number; }type PluginContext = objecttype PluginErrorPhase = "setup" | "render" | "dispose" | "error_placeholder"type PluginErrorSource = "registry" | "core" | (string & {})type PositionTypeString = "static" | "relative" | "absolute"type ProxiedVNode<TCtor extends RenderableConstructor<any>> = VNode<TCtor extends RenderableConstructor<infer P> ? P : any> & { [K in keyof InstanceType<TCtor>]: InstanceType<TCtor>[K] extends (...args: infer Args) => any ? (...args: Args) => ProxiedVNode<TCtor> : InstanceType<TCtor>[K]; }type RGBTriplet = readonly [ number, number, number ]type RawMouseEvent = { type: MouseEventType; button: number; x: number; y: number; modifiers: { shift: boolean; alt: boolean; ctrl: boolean; }; scroll?: ScrollInfo; }type RenderCommand = RenderCommandPushScissorRect | RenderCommandPopScissorRect | RenderCommandRender | RenderCommandPushOpacity | RenderCommandPopOpacitytype ScreenMode = "alternate-screen" | "main-screen" | "split-footer"type ScrollUnit = "absolute" | "viewport" | "content" | "step"type ScrollbackWriter = (ctx: ScrollbackRenderContext) => ScrollbackSnapshottype SelectAction = "move-up" | "move-down" | "move-up-fast" | "move-down-fast" | "select-current"type SelectKeyBinding = BaseKeyBinding<SelectAction>type SimpleHighlight = [ number, number, string, HighlightMeta? ]type SlotMode = "append" | "replace" | "single_winner"type SlotRenderer<TNode, TProps, TContext extends PluginContext = PluginContext> = (ctx: Readonly<TContext>, props: TProps) => TNodetype StdinEvent = { type: "key"; raw: string; key: ParsedKey; } | { type: "mouse"; raw: string; encoding: "sgr" | "x10"; event: RawMouseEvent; } | { type: "paste"; bytes: Uint8Array; metadata?: PasteMetadata; } | { type: "response"; protocol: StdinResponseProtocol; sequence: string; }type StdinResponseProtocol = "csi" | "cpr" | "osc" | "dcs" | "apc" | "unknown"type StylableInput = string | number | boolean | TextChunktype TabSelectAction = "move-left" | "move-right" | "select-current"type TabSelectKeyBinding = BaseKeyBinding<TabSelectAction>type TerminalMultiplexer = "none" | "tmux" | "zellij" | "screen" | "unknown"type TextTableCellContent = TextChunk[] | null | undefinedtype TextTableColumnFitter = "proportional" | "balanced"type TextTableColumnWidthMode = "content" | "full"type TextTableContent = TextTableCellContent[][]type TextareaAction = "move-left" | "move-right" | "move-up" | "move-down" | "select-left" | "select-right" | "select-up" | "select-down" | "line-home" | "line-end" | "select-line-home" | "select-line-end" | "visual-line-home" | "visual-line-end" | "select-visual-line-home" | "select-visual-line-end" | "buffer-home" | "buffer-end" | "select-buffer-home" | "select-buffer-end" | "delete-line" | "delete-to-line-end" | "delete-to-line-start" | "backspace" | "delete" | "newline" | "undo" | "redo" | "word-forward" | "word-backward" | "select-word-forward" | "select-word-backward" | "delete-word-forward" | "delete-word-backward" | "select-all" | "submit"type TextareaKeyAliasMap = Record<string, string>type ThemeMode = "dark" | "light"type Timeout = ReturnType<typeof setTimeout> | undefinedtype TimerHandle = ReturnType<typeof globalThis.setTimeout> | numbertype UnitString = "undefined" | "point" | "percent" | "auto"type VChild = VNode | Renderable | VChild[] | null | undefined | falsetype ValidateShape<Given, AllowedKeys> = { [K in keyof Given]: K extends keyof AllowedKeys ? NonNullable<Given[K]> : never; }type WidthMethod = "wcwidth" | "unicode"type WrapString = "no-wrap" | "wrap" | "wrap-reverse"type WriteFunction = (data: string | Buffer) => boolean
@opentui/core/runtime-plugin#
Added
const isCoreRuntimeModuleSpecifier: (specifier: string) => booleanconst runtimeModuleIdForSpecifier: (specifier: string) => stringfunction createRuntimePlugin(input?: CreateRuntimePluginOptions): BunPlugininterface CreateRuntimePluginOptionsinterface RuntimePluginRewriteOptionstype RuntimeModuleEntry = RuntimeModuleExports | RuntimeModuleLoadertype RuntimeModuleExports = Record<string, unknown>type RuntimeModuleLoader = () => RuntimeModuleExports | Promise<RuntimeModuleExports>
@opentui/core/runtime-plugin-support#
Added
const runtimeModuleIdForSpecifier: (specifier: string) => stringfunction createRuntimePlugin(input?: CreateRuntimePluginOptions): BunPluginfunction ensureRuntimePluginSupport(options?: CreateRuntimePluginOptions): booleaninterface CreateRuntimePluginOptionstype RuntimeModuleEntry = RuntimeModuleExports | RuntimeModuleLoadertype RuntimeModuleExports = Record<string, unknown>type RuntimeModuleLoader = () => RuntimeModuleExports | Promise<RuntimeModuleExports>
@opentui/core/runtime-plugin-support/configure#
Added
const runtimeModuleIdForSpecifier: (specifier: string) => stringfunction createRuntimePlugin(input?: CreateRuntimePluginOptions): BunPluginfunction ensureRuntimePluginSupport(options?: CreateRuntimePluginOptions): booleaninterface CreateRuntimePluginOptionstype RuntimeModuleEntry = RuntimeModuleExports | RuntimeModuleLoadertype RuntimeModuleExports = Record<string, unknown>type RuntimeModuleLoader = () => RuntimeModuleExports | Promise<RuntimeModuleExports>
@opentui/core/testing#
Added
class ManualClock implements Clockclass MockTreeSitterClient extends TreeSitterClientclass TestRecorderconst KeyCodes: { readonly RETURN: "\r"; readonly LINEFEED: "\n"; readonly TAB: "\t"; readonly BACKSPACE: "\b"; readonly DELETE: "\u001B[3~"; readonly HOME: "\u001B[H"; readonly END: "\u001B[F"; readonly ESCAPE: "\u001B"; readonly ARROW_UP: "\u001B[A"; readonly ARROW_DOWN: "\u001B[B"; readonly ARROW_RIGHT: "\u001B[C"; readonly ARROW_LEFT: "\u001B[D"; readonly F1: "\u001BOP"; readonly F2: "\u001BOQ"; readonly F3: "\u001BOR"; readonly F4: "\u001BOS"; readonly F5: "\u001B[15~"; readonly F6: "\u001B[17~"; readonly F7: "\u001B[18~"; readonly F8: "\u001B[19~"; readonly F9: "\u001B[20~"; readonly F10: "\u001B[21~"; readonly F11: "\u001B[23~"; readonly F12: "\u001B[24~"; }const MouseButtons: { readonly LEFT: 0; readonly MIDDLE: 1; readonly RIGHT: 2; readonly WHEEL_UP: 64; readonly WHEEL_DOWN: 65; readonly WHEEL_LEFT: 66; readonly WHEEL_RIGHT: 67; }constructor MockTreeSitterClient(options?: { autoResolveTimeout?: number; })constructor TestRecorder(renderer: TestRenderer, options?: TestRecorderOptions)function createMockKeys(renderer: CliRenderer, options?: MockKeysOptions): { pressKeys: (keys: KeyInput[], delayMs?: number) => Promise<void>; pressKey: (key: KeyInput, modifiers?: { shift?: boolean; ctrl?: boolean; meta?: boolean; super?: boolean; hyper?: boolean; }) => void; typeText: (text: string, delayMs?: number) => Promise<void>; pressEnter: (modifiers?: { shift?: boolean; ctrl?: boolean; meta?: boolean; super?: boolean; hyper?: boolean; }) => void; pressEscape: (modifiers?: { shift?: boolean; ctrl?: boolean; meta?: boolean; super?: boolean; hyper?: boolean; }) => void; pressTab: (modifiers?: { shift?: boolean; ctrl?: boolean; meta?: boolean; super?: boolean; hyper?: boolean; }) => void; pressBackspace: (modifiers?: { shift?: boolean; ctrl?: boolean; meta?: boolean; super?: boolean; hyper?: boolean; }) => void; pressArrow: (direction: "up" | "down" | "left" | "right", modifiers?: { shift?: boolean; ctrl?: boolean; meta?: boolean; super?: boolean; hyper?: boolean; }) => void; pressCtrlC: () => void; pasteBracketedText: (text: string) => Promise<void>; }function createMockMouse(renderer: CliRenderer): { moveTo: (x: number, y: number, options?: MouseEventOptions) => Promise<void>; click: (x: number, y: number, button?: MouseButton, options?: MouseEventOptions) => Promise<void>; doubleClick: (x: number, y: number, button?: MouseButton, options?: MouseEventOptions) => Promise<void>; pressDown: (x: number, y: number, button?: MouseButton, options?: MouseEventOptions) => Promise<void>; release: (x: number, y: number, button?: MouseButton, options?: MouseEventOptions) => Promise<void>; drag: (startX: number, startY: number, endX: number, endY: number, button?: MouseButton, options?: MouseEventOptions) => Promise<void>; scroll: (x: number, y: number, direction: "up" | "down" | "left" | "right", options?: MouseEventOptions) => Promise<void>; getCurrentPosition: () => MousePosition; getPressedButtons: () => MouseButton[]; emitMouseEvent: (type: MouseEventType, x: number, y: number, button?: MouseButton, options?: Omit<MouseEventOptions, "button">) => Promise<void>; }function createSpy(): { (...args: any[]): void; calls: any[][]; callCount(): number; calledWith(...expected: any[]): boolean; reset(): number; }function createTerminalCapabilities(overrides?: TerminalCapabilitiesOverrides): TerminalCapabilitiesfunction createTestRenderer(options: TestRendererOptions): Promise<TestRendererSetup>function pasteBytes(text: string): Uint8Arrayfunction setRendererCapabilities(renderer: CliRenderer, overrides?: TerminalCapabilitiesOverrides): TerminalCapabilitiesinterface MockKeysOptionsinterface MouseEventOptionsinterface MouseModifiersinterface MousePositioninterface RecordedFrameinterface TerminalCapabilitiesOverrides extends Partial<Omit<TerminalCapabilities, "terminal">>interface TestExternalOutputinterface TestExternalOutputCommitinterface TestFlushOptionsinterface TestRendererOptions extends CliRendererConfiginterface TestRendererSetupinterface TestVisualIdleOptionsinterface TestWaitForOptionstype KeyInput = string | keyof typeof KeyCodestype MockInput = ReturnType<typeof createMockKeys>type MockMouse = ReturnType<typeof createMockMouse>type MouseButton = (typeof MouseButtons)[keyof typeof MouseButtons]type MouseEventType = "down" | "up" | "move" | "drag" | "scroll"type TestRenderer = CliRenderer
@opentui/core/tree-sitter/update-assets#
Added
function runUpdateAssetsCli(): Promise<void>function updateAssets(options?: Partial<UpdateOptions>): Promise<void>interface UpdateOptions
@opentui/keymap#
Added
class Keymap<TTarget extends object, TEvent extends KeymapEvent = KeymapEvent>const KEYMAP_EXTENSION_CONTEXT: unique symbolconstructor Keymap(host: KeymapHost<TTarget, TEvent>)function stringifyKeySequence(input: readonly KeyStringifyInput[], options?: StringifyOptions): stringfunction stringifyKeyStroke(input: KeyStringifyInput, options?: StringifyOptions): stringindex Binding[key: string]: unknownindex Command[key: string]: unknownindex Layer[key: string]: unknownindex ParsedBinding[key: string]: unknowninterface ActiveBinding<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>interface ActiveKey<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>interface ActiveKeyOptionsinterface Binding<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>interface BindingExpanderContextinterface BindingExpansioninterface BindingFieldContextinterface BindingParserContextinterface BindingParserResultinterface BindingTransformerContext<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>interface Command<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent, TPayload = unknown>interface CommandBindingsQuery<TTarget extends object = object>interface CommandContext<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent, TPayload = unknown>interface CommandEntry<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>interface CommandFieldContextinterface CommandQuery<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>interface CommandResolverContext<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>interface CommandTransformerContext<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>interface DispatchBinding<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> extends ActiveBinding<TTarget, TEvent>interface DispatchEvent<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>interface DispatchLayer<TTarget extends object = object>interface ErrorEventinterface EventMatchResolverContextinterface HostMetadatainterface KeyAfterInputContext<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>interface KeyDeferredDisambiguationContext<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>interface KeyDeferredDisambiguationDecisioninterface KeyDisambiguationContext<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>interface KeyDisambiguationDecisioninterface KeyInputContext<TEvent extends KeymapEvent = KeymapEvent>interface KeyInterceptOptionsinterface KeySequencePartinterface KeyStrokeInputinterface KeyTokeninterface KeymapEventinterface KeymapExtensionContext<TTarget extends object, TEvent extends KeymapEvent>interface KeymapExtensionProvider<TTarget extends object, TEvent extends KeymapEvent>interface KeymapHost<TTarget extends object, TEvent extends KeymapEvent = KeymapEvent>interface Layer<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>interface LayerAnalysisContext<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>interface LayerBindingAnalysis<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>interface LayerBindingsTransformerContext<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>interface LayerFieldContextinterface NormalizedKeyStroke extends KeyStrokeInputinterface ParsedBinding<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>interface ParsedCommandinterface RawInputContextinterface RawInterceptOptionsinterface ReactiveMatcherinterface ResolvedKeyTokeninterface ResolvedSequencePattern<TEvent extends KeymapEvent = KeymapEvent>interface RunCommandOptions<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>interface SequencePattern<TEvent extends KeymapEvent = KeymapEvent>interface SequencePatternMatchinterface StringifyOptionsinterface WarningEventtype Attributes = Record<string, unknown>type BindingCommand<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = string | CommandHandler<TTarget, TEvent>type BindingEvent = "press" | "release"type BindingExpander = (ctx: BindingExpanderContext) => readonly BindingExpansion[] | undefinedtype BindingFieldCompiler = (value: unknown, ctx: BindingFieldContext) => voidtype BindingParser = (ctx: BindingParserContext) => BindingParserResult | undefinedtype BindingTransformer<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = (binding: ParsedBinding<TTarget, TEvent>, ctx: BindingTransformerContext<TTarget, TEvent>) => voidtype Bindings<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = readonly Binding<TTarget, TEvent>[]type BindingsValidationResult = { ok: true; } | { ok: false; reason: string; }type CommandFieldCompiler = (value: unknown, ctx: CommandFieldContext) => voidtype CommandFilter<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = Readonly<Record<string, CommandQueryValue<TTarget, TEvent>>> | ((command: Command<TTarget, TEvent>) => boolean)type CommandHandler<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent, TPayload = unknown> = (ctx: CommandContext<TTarget, TEvent, TPayload>) => CommandResult<TTarget, TEvent>type CommandQueryValue<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = unknown | readonly unknown[] | ((value: unknown, command: Command<TTarget, TEvent>) => boolean)type CommandResolver<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = (command: string, ctx: CommandResolverContext<TTarget, TEvent>) => Command<TTarget, TEvent> | undefinedtype CommandResult<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = boolean | void | RunCommandResult<TTarget, TEvent> | Promise<boolean | void | RunCommandResult<TTarget, TEvent>>type CommandTransformer<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = (command: Command<TTarget, TEvent>, ctx: CommandTransformerContext<TTarget, TEvent>) => voidtype DispatchPhase = "sequence-start" | "sequence-advance" | "sequence-clear" | "binding-execute" | "binding-reject"type EventData = Record<string, unknown>type EventMatchResolver<TEvent extends KeymapEvent = KeymapEvent> = (event: TEvent, ctx: EventMatchResolverContext) => readonly KeyMatch[] | undefinedtype EventName = keyof Eventstype Events<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = Hooks<TTarget, TEvent> & { warning: WarningEvent; error: ErrorEvent; }type HostCapability = "supported" | "unsupported" | "unknown"type HostModifier = "ctrl" | "shift" | "meta" | "super" | "hyper"type HostPlatform = "macos" | "windows" | "linux" | "unknown"type InterceptName = keyof Interceptstype Intercepts<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = { key: KeyInputContext<TEvent>; "key:after": KeyAfterInputContext<TTarget, TEvent>; raw: RawInputContext; }type KeyAfterReason = "intercept-consumed" | "binding-handled" | "binding-rejected" | "no-match" | "sequence-pending" | "sequence-miss" | "sequence-cleared"type KeyDeferredDisambiguationHandler<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = (ctx: KeyDeferredDisambiguationContext<TTarget, TEvent>) => KeyDeferredDisambiguationDecision | void | Promise<KeyDeferredDisambiguationDecision | void>type KeyDisambiguationResolver<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = (ctx: KeyDisambiguationContext<TTarget, TEvent>) => KeyDisambiguationDecision | undefinedtype KeyLike = string | KeyStrokeInputtype KeyMatch = stringtype KeyStringifyInput = KeyStrokeInput | NormalizedKeyStroke | KeySequencePart | { stroke: NormalizedKeyStroke; display?: string; }type LayerAnalyzer<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = (ctx: LayerAnalysisContext<TTarget, TEvent>) => voidtype LayerBindingsTransformer<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = (bindings: readonly Binding<TTarget, TEvent>[], ctx: LayerBindingsTransformerContext<TTarget, TEvent>) => readonly Binding<TTarget, TEvent>[] | voidtype LayerFieldCompiler = (value: unknown, ctx: LayerFieldContext) => voidtype Listener<TValue> = [ TValue ] extends [ void ] ? () => void : (value: TValue) => voidtype RunCommandResult<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = { ok: true; command?: Command<TTarget, TEvent>; } | { ok: false; reason: "not-found"; } | { ok: false; reason: "inactive" | "disabled" | "invalid-args" | "rejected" | "error"; command?: Command<TTarget, TEvent>; }type TargetMode = "focus" | "focus-within"
@opentui/keymap/addons#
Added
const defaultBindingParser: BindingParserconst defaultEventMatchResolver: EventMatchResolver<KeymapEvent>function registerAliasesField<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => voidfunction registerBackspacePopsPendingSequence<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>, options?: BackspacePopsPendingSequenceOptions): () => voidfunction registerBindingOverrides<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => voidfunction registerCommaBindings<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => voidfunction registerDeadBindingWarnings<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => voidfunction registerDefaultBindingParser<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => voidfunction registerDefaultEventMatchResolver<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => voidfunction registerDefaultKeys<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => voidfunction registerEmacsBindings<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => voidfunction registerEnabledFields<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => voidfunction registerEscapeClearsPendingSequence<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>, options?: EscapeClearsPendingSequenceOptions): () => voidfunction registerExCommands<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => voidfunction registerLeader<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>, options: LeaderOptions): () => voidfunction registerMetadataFields<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => voidfunction registerModBindings<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => voidfunction registerNeovimDisambiguation<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>, options?: NeovimDisambiguationOptions): () => voidfunction registerTimedLeader<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>, options: TimedLeaderOptions): () => voidfunction registerUnresolvedCommandWarnings<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => voidindex ExCommand[key: string]: unknowninterface BackspacePopsPendingSequenceOptionsinterface EscapeClearsPendingSequenceOptionsinterface ExCommand<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>interface ExCommandPayloadinterface LeaderOptionsinterface NeovimDisambiguationOptionsinterface TimedLeaderOptions extends LeaderOptionstype Aliases = Record<string, string>type Enabled = boolean | (() => boolean) | ReactiveMatchertype LeaderTrigger = KeyLike | Readonly<{ key: KeyLike; }> | readonly Readonly<{ key: KeyLike; }>[]
@opentui/keymap/addons/opentui#
Added
const defaultBindingParser: BindingParserconst defaultEventMatchResolver: EventMatchResolver<KeymapEvent>function createTextareaBindings(overrides?: readonly Binding[], options?: EditBufferCommandOptions): Binding[]function registerAliasesField<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => voidfunction registerBackspacePopsPendingSequence<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>, options?: BackspacePopsPendingSequenceOptions): () => voidfunction registerBaseLayoutFallback(keymap: Keymap<Renderable, KeyEvent>): () => voidfunction registerBindingOverrides<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => voidfunction registerCommaBindings<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => voidfunction registerDeadBindingWarnings<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => voidfunction registerDefaultBindingParser<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => voidfunction registerDefaultEventMatchResolver<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => voidfunction registerDefaultKeys<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => voidfunction registerEditBufferCommands(keymap: Keymap<Renderable, KeyEvent>, renderer: CliRenderer, options?: EditBufferCommandOptions): () => voidfunction registerEmacsBindings<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => voidfunction registerEnabledFields<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => voidfunction registerEscapeClearsPendingSequence<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>, options?: EscapeClearsPendingSequenceOptions): () => voidfunction registerExCommands<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => voidfunction registerLeader<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>, options: LeaderOptions): () => voidfunction registerManagedTextareaLayer(keymap: Keymap<Renderable, KeyEvent>, renderer: CliRenderer, layer: ManagedTextareaLayer, options?: EditBufferCommandOptions): () => voidfunction registerMetadataFields<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => voidfunction registerModBindings<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => voidfunction registerNeovimDisambiguation<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>, options?: NeovimDisambiguationOptions): () => voidfunction registerTextareaMappingSuspension(keymap: Keymap<Renderable, KeyEvent>, renderer: CliRenderer): () => voidfunction registerTimedLeader<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>, options: TimedLeaderOptions): () => voidfunction registerUnresolvedCommandWarnings<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => voidindex ExCommand[key: string]: unknowninterface BackspacePopsPendingSequenceOptionsinterface EditBufferCommandOptionsinterface EscapeClearsPendingSequenceOptionsinterface ExCommand<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>interface ExCommandPayloadinterface LeaderOptionsinterface NeovimDisambiguationOptionsinterface TimedLeaderOptions extends LeaderOptionstype Aliases = Record<string, string>type EditBufferCommandName = (typeof editBufferActions)[number]type EditBufferFineGroup = "Cursor" | "Selection" | "Delete" | "History" | "Insert" | "Submit"type Enabled = boolean | (() => boolean) | ReactiveMatchertype LeaderTrigger = KeyLike | Readonly<{ key: KeyLike; }> | readonly Readonly<{ key: KeyLike; }>[]
@opentui/keymap/extras#
Added
function commandBindings<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>(bindings: Readonly<CommandBindingMap>, options?: CommandBindingsOptions): Binding<TTarget, TEvent>[]function createBindingLookup<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>(config: BindingConfig<TTarget, TEvent>, options?: CreateBindingLookupOptions<TTarget, TEvent>): BindingLookup<TTarget, TEvent>function formatCommandBindings(bindings: readonly SequenceBindingLike[] | undefined, options?: FormatCommandBindingsOptions): string | undefinedfunction formatKeySequence(parts: readonly KeySequenceFormatPart[] | undefined, options?: FormatKeySequenceOptions): stringinterface BindingDefaultsContext<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>interface BindingLookup<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>interface CommandBindingsErrorinterface CommandBindingsOptionsinterface CommandBindingsOverrideWarninginterface CreateBindingLookupOptions<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>interface FormatCommandBindingsOptions extends FormatKeySequenceOptionsinterface FormatKeySequenceOptionsinterface KeySequenceFormatPartinterface SequenceBindingLiketype BindingCommandMap = Readonly<Record<string, string>>type BindingConfig<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = Readonly<Record<string, BindingValue<TTarget, TEvent>>>type BindingConfigItem<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = KeyLike | Binding<TTarget, TEvent>type BindingDefaults<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = (ctx: BindingDefaultsContext<TTarget, TEvent>) => Readonly<Record<string, unknown>> | voidtype BindingValue<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = false | "none" | BindingConfigItem<TTarget, TEvent> | readonly BindingConfigItem<TTarget, TEvent>[]type CommandBindingMap = Record<string, KeyLike>type KeyModifierName = "ctrl" | "shift" | "meta" | "super" | "hyper"type TokenDisplayResolver = Readonly<Record<string, string>> | ((tokenName: string, part: KeySequenceFormatPart) => string | undefined)
@opentui/keymap/extras/graph#
Added
function createGraphExtra<TTarget extends object, TEvent extends KeymapEvent>(keymap: KeymapExtensionProvider<TTarget, TEvent>): KeymapGraphExtra<TTarget, TEvent>function getGraphSnapshot<TTarget extends object, TEvent extends KeymapEvent>(keymap: KeymapExtensionProvider<TTarget, TEvent>, options?: GraphSnapshotOptions<TTarget>): GraphSnapshot<TTarget, TEvent>interface GraphBinding<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>interface GraphCommand<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>interface GraphLayer<TTarget extends object = object>interface GraphSequenceNodeinterface GraphSnapshot<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>interface GraphSnapshotOptions<TTarget extends object = object>interface KeymapGraphExtra<TTarget extends object, TEvent extends KeymapEvent>type GraphInactiveReason = "focus" | "target-destroyed" | "layer-disabled" | "binding-disabled" | "command-disabled" | "command-inactive" | "command-unresolved" | "shadowed"
@opentui/keymap/html#
Added
const htmlEventMatchResolver: EventMatchResolver<HtmlKeymapEvent>function createDefaultHtmlKeymap(root: HTMLElement): Keymap<HTMLElement, HtmlKeymapEvent>function createHtmlKeymap(root: HTMLElement): Keymap<HTMLElement, HtmlKeymapEvent>function createHtmlKeymapEvent(event?: KeyboardEvent | HtmlKeyboardEventLike): HtmlKeymapEventfunction createHtmlKeymapHost(root: HTMLElement): KeymapHost<HTMLElement, HtmlKeymapEvent>function normalizeHtmlKeyName(key: string): stringinterface HtmlKeymapEvent extends KeymapEvent
@opentui/keymap/opentui#
Added
function createDefaultOpenTuiKeymap(renderer: CliRenderer): Keymap<Renderable, KeyEvent>function createOpenTuiKeymap(renderer: CliRenderer): Keymap<Renderable, KeyEvent>function createOpenTuiKeymapHost(renderer: CliRenderer): KeymapHost<Renderable, KeyEvent>
@opentui/keymap/react#
Added
const useActiveKeys: (options?: ActiveKeyOptions) => readonly ActiveKey[]const useKeymap: () => OpenTuiKeymapconst usePendingSequence: () => readonly KeySequencePart[]function KeymapProvider({ keymap, children }: KeymapProviderProps): FunctionComponentElement<ProviderProps<OpenTuiKeymap | null>>function reactiveMatcherFromStore<T>(subscribe: (onStoreChange: () => void) => () => void, getSnapshot: () => T, predicate?: (value: T) => boolean): ReactiveMatcherfunction useBindings<TRenderable extends Renderable = Renderable>(createLayer: () => UseBindingsLayer<TRenderable>, deps?: DependencyList): voidinterface KeymapProviderPropsinterface UseBindingsLayer<TRenderable extends Renderable = Renderable> extends Omit<Layer<Renderable, KeyEvent>, "target" | "targetMode">interface UseBindingsTargetRef<TRenderable extends Renderable = Renderable>
@opentui/keymap/runtime-modules#
Added
const runtimeModules: { "@opentui/keymap": typeof keymap; "@opentui/keymap/extras": typeof keymapExtras; "@opentui/keymap/extras/graph": typeof keymapGraphExtra; "@opentui/keymap/addons": typeof keymapAddons; "@opentui/keymap/addons/opentui": typeof keymapOpenTuiAddons; "@opentui/keymap/html": typeof keymapHtml; "@opentui/keymap/opentui": typeof keymapOpenTui; "@opentui/keymap/react": typeof keymapReact; "@opentui/keymap/solid": typeof keymapSolid; }
@opentui/keymap/solid#
Added
const useKeymap: () => OpenTuiKeymapconst useKeymapSelector: <T>(selector: (keymap: OpenTuiKeymap) => T) => Accessor<T>function KeymapProvider(props: KeymapProviderProps): JSX.Elementfunction reactiveMatcherFromSignal<T>(accessor: Accessor<T>, predicate?: (value: T) => boolean): ReactiveMatcherfunction useBindings<TRenderable extends Renderable = Renderable>(createLayer: () => UseBindingsLayer<TRenderable>): voidinterface KeymapProviderPropsinterface UseBindingsLayer<TRenderable extends Renderable = Renderable> extends Omit<Layer<Renderable, KeyEvent>, "target" | "targetMode">type UseBindingsTarget<TRenderable extends Renderable = Renderable> = () => TRenderable | null | undefined
@opentui/keymap/testing#
Added
class TestKeymapEvent implements KeymapEventclass TestKeymapHost implements KeymapHost<TestKeymapTarget, TestKeymapEvent>class TestKeymapTargetconst DEFAULT_TEST_HOST_METADATA: HostMetadataconstructor TestKeymapEvent(name: string, modifiers?: TestKeyModifierOptions)constructor TestKeymapHost(options?: CreateTestKeymapHostOptions)constructor TestKeymapTarget(id: string)function captureKeymapDiagnostics(keymap: Keymap<any, any>): TestDiagnosticCapturefunction createTestHostMetadata(options?: HostMetadata | TestHostMetadataOptions): HostMetadatafunction createTestKeymap(options?: CreateTestKeymapOptions): TestKeymapHarnessfunction createTestKeymapHost(options?: CreateTestKeymapHostOptions): TestKeymapHostinterface CreateTestKeymapHostOptionsinterface CreateTestKeymapOptions extends CreateTestKeymapHostOptionsinterface TestDiagnosticCaptureinterface TestKeymapHarnesstype TestHostMetadataOptions = Partial<Omit<HostMetadata, "modifiers">> & { modifiers?: Partial<HostMetadata["modifiers"]>; }type TestKeyModifierOptions = Partial<Pick<KeymapEvent, "ctrl" | "shift" | "meta" | "super" | "hyper">>
@opentui/qrcode#
Added
class QRCodeclass QRCodeRenderable extends BaseQRCodeRenderable<ErrorCorrectionLevel, number, QRCode>class QrSegmentconst EciAssignment: { readonly ISO_8859_1: 3; readonly SHIFT_JIS: 20; readonly UTF_8: 26; }constructor QRCodeRenderable(ctx: RenderContext, options?: QRCodeOptions)enum ErrorCorrectionLevelfunction createQrSvg(text: string, options?: EncodeOptions & { ecl?: ErrorCorrectionLevel; border?: number; moduleSize?: number; }): stringfunction encodeTextBytes(text: string, encoding?: ByteEncoding): Uint8Arrayinterface EncodeOptionsinterface Fnc1SecondPositionInfointerface Gs1Elementinterface QRCodeOptions extends QRCodeSharedOptions<QRCodeRenderable, ErrorCorrectionLevel>interface StructuredAppendInfointerface TerminalRenderOptionstype ByteEncoding = "utf-8" | "iso-8859-1" | "shift-jis"type QRCodeFitMode = "contain" | "none"
@opentui/qrcode/react#
Added
class QRCodeclass QRCodeRenderable extends BaseQRCodeRenderable<ErrorCorrectionLevel, number, QRCode>class QrSegmentconst EciAssignment: { readonly ISO_8859_1: 3; readonly SHIFT_JIS: 20; readonly UTF_8: 26; }constructor QRCodeRenderable(ctx: RenderContext, options?: QRCodeOptions)enum ErrorCorrectionLevelfunction createQrSvg(text: string, options?: EncodeOptions & { ecl?: ErrorCorrectionLevel; border?: number; moduleSize?: number; }): stringfunction encodeTextBytes(text: string, encoding?: ByteEncoding): Uint8Arrayfunction registerQRCode(): voidinterface EncodeOptionsinterface Fnc1SecondPositionInfointerface Gs1Elementinterface QRCodeOptions extends QRCodeSharedOptions<QRCodeRenderable, ErrorCorrectionLevel>interface StructuredAppendInfointerface TerminalRenderOptionstype ByteEncoding = "utf-8" | "iso-8859-1" | "shift-jis"type QRCodeFitMode = "contain" | "none"
@opentui/qrcode/solid#
Added
class QRCodeclass QRCodeRenderable extends BaseQRCodeRenderable<ErrorCorrectionLevel, number, QRCode>class QrSegmentconst EciAssignment: { readonly ISO_8859_1: 3; readonly SHIFT_JIS: 20; readonly UTF_8: 26; }constructor QRCodeRenderable(ctx: RenderContext, options?: QRCodeOptions)enum ErrorCorrectionLevelfunction createQrSvg(text: string, options?: EncodeOptions & { ecl?: ErrorCorrectionLevel; border?: number; moduleSize?: number; }): stringfunction encodeTextBytes(text: string, encoding?: ByteEncoding): Uint8Arrayfunction registerQRCode(): voidinterface EncodeOptionsinterface Fnc1SecondPositionInfointerface Gs1Elementinterface QRCodeOptions extends QRCodeSharedOptions<QRCodeRenderable, ErrorCorrectionLevel>interface StructuredAppendInfointerface TerminalRenderOptionstype ByteEncoding = "utf-8" | "iso-8859-1" | "shift-jis"type QRCodeFitMode = "contain" | "none"
@opentui/react#
Added
const AppContext: Context<AppContext>const TimeToFirstDraw: (props: TimeToFirstDrawProps) => ReactElement<TimeToFirstDrawOptions & { children?: React.ReactNode; style?: Partial<Omit<TimeToFirstDrawOptions | undefined, NonStyledProps>> | undefined; } & ReactProps<TimeToFirstDrawRenderable>, string | JSXElementConstructor<any>>const baseComponents: { box: typeof BoxRenderable; text: typeof TextRenderable; code: typeof CodeRenderable; diff: typeof DiffRenderable; markdown: typeof MarkdownRenderable; input: typeof InputRenderable; select: typeof SelectRenderable; textarea: typeof TextareaRenderable; scrollbox: typeof ScrollBoxRenderable; "ascii-font": typeof ASCIIFontRenderable; "tab-select": typeof TabSelectRenderable; "line-number": typeof LineNumberRenderable; span: typeof SpanRenderable; br: typeof LineBreakRenderable; b: typeof BoldSpanRenderable; strong: typeof BoldSpanRenderable; i: typeof ItalicSpanRenderable; em: typeof ItalicSpanRenderable; u: typeof UnderlineSpanRenderable; a: typeof LinkRenderable; }const componentCatalogue: ComponentCatalogueconst createPortal: (children: ReactNode, containerInfo: any, implementation: any, key?: string | null) => ReactPortalconst flushSync: { (): void; <R>(fn: () => R): R; } & { (): void; <R>(fn: () => R): R; }const useAppContext: () => AppContextconst useBlur: (handler: () => void) => voidconst useFocus: (handler: () => void) => voidconst useKeyboard: (handler: (key: KeyEvent) => void, options?: UseKeyboardOptions) => voidconst useOnResize: (callback: (width: number, height: number) => void) => CliRendererconst usePaste: (handler: (event: PasteEvent) => void) => voidconst useRenderer: () => CliRendererconst useSelectionHandler: (handler: (selection: Selection) => void) => voidconst useTerminalDimensions: () => { width: number; height: number; }const useTimeline: (options?: TimelineOptions) => Timelinefunction Slot<TSlots extends SlotMap, TContext extends PluginContext = PluginContext, K extends keyof TSlots = keyof TSlots>(props: ReactSlotProps<TSlots, K, TContext>): ReactNodefunction createReactSlotRegistry<TSlots extends SlotMap, TContext extends PluginContext = PluginContext>(renderer: CliRenderer, context: TContext, options?: SlotRegistryOptions): SlotRegistry<ReactNode, TSlots, TContext>function createRoot(renderer: CliRenderer): Rootfunction createSlot<TSlots extends SlotMap, TContext extends PluginContext = PluginContext>(registry: SlotRegistry<ReactNode, TSlots, TContext>, options?: ReactSlotOptions): ReactSlotComponent<TSlots>function extend<T extends ComponentCatalogue>(objects: T): voidfunction getComponentCatalogue(): ComponentCatalogueindex OpenTUIComponents[componentName: string]: RenderableConstructorinterface OpenTUIComponentsinterface ReactSlotOptionsinterface UseKeyboardOptionsreexport SlotMode from "@opentui/core"reexport createElement from "react"type AsciiFontProps = ComponentProps<ASCIIFontOptions, ASCIIFontRenderable>type BoxProps = ComponentProps<ContainerProps<BoxOptions>, BoxRenderable> & { focused?: boolean; }type CodeProps = ComponentProps<CodeOptions, CodeRenderable>type DiffProps = ComponentProps<DiffRenderableOptions, DiffRenderable>type ExtendedComponentProps<TConstructor extends RenderableConstructor, TOptions = ExtractRenderableOptions<TConstructor>> = TOptions & { children?: React.ReactNode; style?: Partial<Omit<TOptions, GetNonStyledProperties<TConstructor>>>; } & ReactProps<ExtractRenderable<TConstructor>>type ExtendedIntrinsicElements<TComponentCatalogue extends Record<string, RenderableConstructor>> = { [TComponentName in keyof TComponentCatalogue]: ExtendedComponentProps<TComponentCatalogue[TComponentName]>; }type GetNonStyledProperties<TConstructor> = TConstructor extends RenderableConstructor<TextRenderable> ? NonStyledProps | "content" : TConstructor extends RenderableConstructor<BoxRenderable> ? NonStyledProps | "title" | "bottomTitle" : TConstructor extends RenderableConstructor<ASCIIFontRenderable> ? NonStyledProps | "text" | "selectable" : TConstructor extends RenderableConstructor<InputRenderable> ? NonStyledProps | "placeholder" | "value" : TConstructor extends RenderableConstructor<TextareaRenderable> ? NonStyledProps | "placeholder" | "initialValue" : TConstructor extends RenderableConstructor<CodeRenderable> ? NonStyledProps | "content" | "filetype" | "syntaxStyle" | "treeSitterClient" | "conceal" | "drawUnstyledText" : TConstructor extends RenderableConstructor<MarkdownRenderable> ? NonStyledProps | "content" | "syntaxStyle" | "treeSitterClient" | "conceal" | "renderNode" : NonStyledPropstype InputProps = ComponentProps<InputRenderableOptions, InputRenderable> & { focused?: boolean; onInput?: (value: string) => void; onChange?: (value: string) => void; onSubmit?: (value: string) => void; }type LineBreakProps = Pick<SpanProps, "id">type LineNumberProps = ComponentProps<ContainerProps<LineNumberOptions>, LineNumberRenderable> & { focused?: boolean; }type LinkProps = SpanProps & { href: string; }type MarkdownProps = ComponentProps<MarkdownOptions, MarkdownRenderable>type NonStyledProps = "id" | "buffered" | "live" | "enableLayout" | "selectable" | "renderAfter" | "renderBefore" | `on${string}`type ReactBoundSlotProps<TSlots extends SlotMap, K extends keyof TSlots> = { name: K; mode?: SlotMode; children?: ReactNode; } & TSlots[K]type ReactPlugin<TSlots extends SlotMap, TContext extends PluginContext = PluginContext> = Plugin<ReactNode, TSlots, TContext>type ReactProps<TRenderable = unknown> = { key?: React.Key; ref?: React.Ref<TRenderable>; }type ReactRegistrySlotComponent<TSlots extends SlotMap, TContext extends PluginContext = PluginContext> = <K extends keyof TSlots>(props: ReactSlotProps<TSlots, K, TContext>) => ReactNodetype ReactSlotComponent<TSlots extends SlotMap> = <K extends keyof TSlots>(props: ReactBoundSlotProps<TSlots, K>) => ReactNodetype ReactSlotProps<TSlots extends SlotMap, K extends keyof TSlots, TContext extends PluginContext = PluginContext> = { registry: SlotRegistry<ReactNode, TSlots, TContext>; name: K; mode?: SlotMode; children?: ReactNode; pluginFailurePlaceholder?: (failure: PluginErrorEvent) => ReactNode; } & TSlots[K]type RenderableConstructor<TRenderable extends BaseRenderable = BaseRenderable> = new (ctx: RenderContext, options: any) => TRenderabletype Root = { render: (node: ReactNode) => void; unmount: () => void; }type ScrollBoxProps = ComponentProps<ContainerProps<ScrollBoxOptions>, ScrollBoxRenderable> & { focused?: boolean; }type SelectProps = ComponentProps<SelectRenderableOptions, SelectRenderable> & { focused?: boolean; onChange?: (index: number, option: SelectOption | null) => void; onSelect?: (index: number, option: SelectOption | null) => void; }type SpanProps = ComponentProps<TextNodeOptions, TextNodeRenderable> & { children?: TextChildren; }type TabSelectProps = ComponentProps<TabSelectRenderableOptions, TabSelectRenderable> & { focused?: boolean; onChange?: (index: number, option: TabSelectOption | null) => void; onSelect?: (index: number, option: TabSelectOption | null) => void; }type TextProps = ComponentProps<TextOptions, TextRenderable> & { children?: TextChildren; }type TextareaProps = ComponentProps<TextareaOptions, TextareaRenderable> & { focused?: boolean; onSubmit?: () => void; onContentChange?: (event: ContentChangeEvent) => void; onCursorChange?: (event: CursorChangeEvent) => void; onKeyDown?: (event: KeyEvent) => void; }type TimeToFirstDrawProps = ExtendedComponentProps<typeof TimeToFirstDrawRenderable>
@opentui/react/jsx-dev-runtime#
Added
namespace JSXreexport Fragment from "react/jsx-dev-runtime"reexport jsxDEV from "react/jsx-dev-runtime"
@opentui/react/jsx-runtime#
Added
namespace JSXreexport Fragment from "react/jsx-runtime"reexport jsx from "react/jsx-runtime"reexport jsxs from "react/jsx-runtime"
@opentui/react/renderer#
Added
const createPortal: (children: ReactNode, containerInfo: any, implementation: any, key?: string | null) => ReactPortalconst flushSync: { (): void; <R>(fn: () => R): R; } & { (): void; <R>(fn: () => R): R; }function createRoot(renderer: CliRenderer): Roottype Root = { render: (node: ReactNode) => void; unmount: () => void; }
@opentui/react/runtime-plugin-support#
Added
function ensureRuntimePluginSupport(options?: ReactRuntimePluginSupportOptions): booleaninterface ReactRuntimePluginSupportOptions
@opentui/react/runtime-plugin-support/configure#
Added
function ensureRuntimePluginSupport(options?: ReactRuntimePluginSupportOptions): booleaninterface ReactRuntimePluginSupportOptions
@opentui/react/test-utils#
Added
function testRender(node: ReactNode, testRendererOptions: TestRendererOptions): Promise<TestRendererSetup>
@opentui/solid#
Added
class BoldSpanRenderable extends TextModifierRenderableclass ItalicSpanRenderable extends TextModifierRenderableclass LayoutSlotRenderable extends SlotBaseRenderableclass LineBreakRenderable extends SpanRenderableclass LinkRenderable extends SpanRenderableclass SlotRenderable extends SlotBaseRenderableclass TextSlotRenderable extends TextNodeRenderableclass UnderlineSpanRenderable extends TextModifierRenderableconst RendererContext: Context<CliRenderer | undefined>const TimeToFirstDraw: (props: TimeToFirstDrawProps) => anyconst _render: (code: () => BaseRenderable, node: BaseRenderable) => () => voidconst baseComponents: { box: typeof BoxRenderable; text: typeof TextRenderable; input: typeof InputRenderable; select: typeof SelectRenderable; textarea: typeof TextareaRenderable; ascii_font: typeof ASCIIFontRenderable; tab_select: typeof TabSelectRenderable; scrollbox: typeof ScrollBoxRenderable; code: typeof CodeRenderable; diff: typeof DiffRenderable; line_number: typeof LineNumberRenderable; markdown: typeof MarkdownRenderable; span: typeof SpanRenderable; strong: typeof BoldSpanRenderable; b: typeof BoldSpanRenderable; em: typeof ItalicSpanRenderable; i: typeof ItalicSpanRenderable; u: typeof UnderlineSpanRenderable; br: typeof LineBreakRenderable; a: typeof LinkRenderable; }const componentCatalogue: ComponentCatalogueconst createComponent: <T>(Comp: (props: T) => BaseRenderable, props: T) => BaseRenderableconst createElement: (tag: string) => BaseRenderableconst createTextNode: (value: string) => BaseRenderableconst effect: <T>(fn: (prev?: T) => T, init?: T) => voidconst insert: <T>(parent: any, accessor: T | (() => T), marker?: any | null, initial?: any) => BaseRenderableconst insertNode: (parent: BaseRenderable, node: BaseRenderable, anchor?: BaseRenderable | undefined) => voidconst memo: <T>(fn: () => T, equal: boolean) => () => Tconst mergeProps: (...sources: unknown[]) => unknownconst onBlur: (callback: () => void) => voidconst onFocus: (callback: () => void) => voidconst onResize: (callback: (width: number, height: number) => void) => voidconst render: (node: () => JSX.Element, rendererOrConfig?: CliRenderer | CliRendererConfig) => Promise<void>const setProp: <T>(node: BaseRenderable, name: string, value: T, prev?: T | undefined) => Tconst spread: <T>(node: any, accessor: (() => T) | T, skipChildren?: boolean) => voidconst testRender: (node: () => JSX.Element, renderConfig?: TestRendererOptions) => Promise<TestRendererSetup>const textNodeKeys: readonly [ "span", "b", "strong", "i", "em", "u", "a" ]const use: <A, T>(fn: (element: BaseRenderable, arg: A) => T, element: BaseRenderable, arg: A) => Tdeprecated const useKeyHandler: (callback: (key: KeyEvent) => void, options?: UseKeyboardOptions) => voidconst useKeyboard: (callback: (key: KeyEvent) => void, options?: UseKeyboardOptions) => voidconst usePaste: (callback: (event: PasteEvent) => void) => voidconst useRenderer: () => CliRendererconst useSelectionHandler: (callback: (selection: Selection) => void) => voidconst useTerminalDimensions: () => Accessor<{ width: number; height: number; }>const useTimeline: (options?: TimelineOptions) => Timelineconstructor BoldSpanRenderable(options: any)constructor ItalicSpanRenderable(options: any)constructor LayoutSlotRenderable(id: string, parent?: SlotRenderable, layoutParent?: BaseRenderable)constructor LineBreakRenderable(_ctx: RenderContext | null, options: TextNodeOptions)constructor LinkRenderable(_ctx: RenderContext | null, options: LinkOptions)constructor SlotRenderable(id: string)constructor TextSlotRenderable(id: string, parent?: SlotRenderable)constructor UnderlineSpanRenderable(options: any)function Dynamic<T extends ValidComponent>(props: DynamicProps<T>): JSX.Elementfunction Portal(props: { mount?: DomNode; ref?: (el: {}) => void; children: JSX.Element; }): DomNodefunction Slot<TSlots extends SlotMap, TContext extends PluginContext = PluginContext, K extends keyof TSlots = keyof TSlots>(props: SolidSlotProps<TSlots, K, TContext>): JSX.Elementfunction createDynamic<T extends ValidComponent>(component: () => T | undefined, props: ComponentProps<T>): JSX.Elementfunction createScrollbackWriter(node: SolidScrollbackNode, options?: SolidScrollbackWriterOptions): ScrollbackWriterfunction createSlot<TSlots extends SlotMap, TContext extends PluginContext = PluginContext>(registry: SlotRegistry<JSX.Element, TSlots, TContext>, options?: SolidSlotOptions): SolidSlotComponent<TSlots>function createSlotNode(): SlotRenderablefunction createSolidSlotRegistry<TSlots extends SlotMap, TContext extends PluginContext = PluginContext>(renderer: CliRenderer, context: TContext, options?: SlotRegistryOptions): SlotRegistry<JSX.Element, TSlots, TContext>function extend<T extends ComponentCatalogue>(objects: T): voidfunction getComponentCatalogue(): ComponentCataloguefunction writeSolidToScrollback(renderer: CliRenderer, node: SolidScrollbackNode, options?: SolidScrollbackWriterOptions): voidindex OpenTUIComponents[componentName: string]: RenderableConstructorinterface LinkOptions extends TextNodeOptionsinterface OpenTUIComponentsinterface SolidScrollbackWriterOptionsinterface SolidSlotOptionsinterface UseKeyboardOptionsnamespace JSXreexport SlotMode from "@opentui/core"type AsciiFontProps = ComponentProps<ASCIIFontOptions, ASCIIFontRenderable>type BoxProps = ComponentProps<ContainerProps<BoxOptions>, BoxRenderable> & { focused?: boolean; }type CodeProps = ComponentProps<CodeOptions, CodeRenderable>type DomNode = BaseRenderabletype DynamicProps<T extends ValidComponent, P = ComponentProps<T>> = { [K in keyof P]: P[K]; } & { component: T | undefined; }type ElementProps<TRenderable = unknown> = { ref?: Ref<TRenderable>; [eventName: `on:${string}`]: ((...args: any[]) => void) | undefined; }type ExtendedComponentProps<TConstructor extends RenderableConstructor, TOptions = ExtractRenderableOptions<TConstructor>> = TOptions & { children?: JSX.Element; style?: Partial<Omit<TOptions, GetNonStyledProperties<TConstructor>>>; } & ElementProps<ExtractRenderable<TConstructor>>type ExtendedIntrinsicElements<TComponentCatalogue extends Record<string, RenderableConstructor>> = { [TComponentName in keyof TComponentCatalogue]: ExtendedComponentProps<TComponentCatalogue[TComponentName]>; }type GetNonStyledProperties<TConstructor> = TConstructor extends RenderableConstructor<TextRenderable> ? NonStyledProps | "content" : TConstructor extends RenderableConstructor<BoxRenderable> ? NonStyledProps | "title" | "bottomTitle" : TConstructor extends RenderableConstructor<ASCIIFontRenderable> ? NonStyledProps | "text" | "selectable" : TConstructor extends RenderableConstructor<InputRenderable> ? NonStyledProps | "minLength" | "maxLength" | "placeholder" | "value" : TConstructor extends RenderableConstructor<CodeRenderable> ? NonStyledProps | "content" | "filetype" | "syntaxStyle" | "treeSitterClient" : TConstructor extends RenderableConstructor<MarkdownRenderable> ? NonStyledProps | "content" | "syntaxStyle" | "treeSitterClient" | "conceal" | "renderNode" : NonStyledPropstype InputProps = ComponentProps<InputRenderableOptions, InputRenderable> & { focused?: boolean; onInput?: (value: string) => void; onChange?: (value: string) => void; onSubmit?: (value: string) => void; }type LinkProps = SpanProps & { href: string; }type MarkdownProps = ComponentProps<MarkdownOptions, MarkdownRenderable>type NonStyledProps = "id" | "buffered" | "live" | "enableLayout" | "selectable" | "renderAfter" | "renderBefore" | `on${string}`type RenderableConstructor<TRenderable extends BaseRenderable = BaseRenderable> = new (ctx: RenderContext, options: any) => TRenderabletype ScrollBoxProps = ComponentProps<ContainerProps<ScrollBoxOptions>, ScrollBoxRenderable> & { focused?: boolean; stickyScroll?: boolean; stickyStart?: "bottom" | "top" | "left" | "right"; }type SelectProps = ComponentProps<SelectRenderableOptions, SelectRenderable> & { focused?: boolean; onChange?: (index: number, option: SelectOption | null) => void; onSelect?: (index: number, option: SelectOption | null) => void; }type SolidBoundSlotProps<TSlots extends SlotMap, K extends keyof TSlots> = { name: K; mode?: SlotMode; children?: JSX.Element; } & TSlots[K]type SolidPlugin<TSlots extends SlotMap, TContext extends PluginContext = PluginContext> = Plugin<JSX.Element, TSlots, TContext>type SolidRegistrySlotComponent<TSlots extends SlotMap, TContext extends PluginContext = PluginContext> = <K extends keyof TSlots>(props: SolidSlotProps<TSlots, K, TContext>) => JSX.Elementtype SolidScrollbackNode = (ctx: ScrollbackRenderContext) => JSX.Elementtype SolidSlotComponent<TSlots extends SlotMap> = <K extends keyof TSlots>(props: SolidBoundSlotProps<TSlots, K>) => JSX.Elementtype SolidSlotProps<TSlots extends SlotMap, K extends keyof TSlots, TContext extends PluginContext = PluginContext> = { registry: SlotRegistry<JSX.Element, TSlots, TContext>; name: K; mode?: SlotMode; children?: JSX.Element; pluginFailurePlaceholder?: (failure: PluginErrorEvent) => JSX.Element; } & TSlots[K]type SpanProps = ComponentProps<{}, TextNodeRenderable> & { children?: TextChildren | Array<TextChildren>; }type TabSelectProps = ComponentProps<TabSelectRenderableOptions, TabSelectRenderable> & { focused?: boolean; onChange?: (index: number, option: TabSelectOption | null) => void; onSelect?: (index: number, option: TabSelectOption | null) => void; }type TextNodeKey = (typeof textNodeKeys)[number]type TextProps = ComponentProps<TextOptions, TextRenderable> & { children?: TextChildren | Array<TextChildren>; }type TextareaProps = ComponentProps<TextareaOptions, TextareaRenderable> & { focused?: boolean; onSubmit?: () => void; onContentChange?: (value: string) => void; onCursorChange?: (value: { line: number; visualColumn: number; }) => void; onKeyDown?: (event: KeyEvent) => void; onKeyPress?: (event: KeyEvent) => void; }type TimeToFirstDrawProps = ExtendedComponentProps<typeof TimeToFirstDrawRenderable>
@opentui/solid/bun-plugin#
Added
const default: BunPluginfunction createSolidTransformPlugin(input?: CreateSolidTransformPluginOptions): BunPluginfunction ensureSolidTransformPlugin(input?: CreateSolidTransformPluginOptions): booleanfunction resetSolidTransformPluginState(): voidinterface CreateSolidTransformPluginOptionstype ResolveImportPath = (specifier: string) => string | null
@opentui/solid/components#
Added
function extend<T extends ComponentCatalogue>(objects: T): voidfunction getComponentCatalogue(): ComponentCatalogueindex OpenTUIComponents[componentName: string]: RenderableConstructorinterface OpenTUIComponentstype ExtendedComponentProps<TConstructor extends RenderableConstructor, TOptions = ExtractRenderableOptions<TConstructor>> = TOptions & { children?: JSX.Element; style?: Partial<Omit<TOptions, GetNonStyledProperties<TConstructor>>>; } & ElementProps<ExtractRenderable<TConstructor>>type ExtendedIntrinsicElements<TComponentCatalogue extends Record<string, RenderableConstructor>> = { [TComponentName in keyof TComponentCatalogue]: ExtendedComponentProps<TComponentCatalogue[TComponentName]>; }
@opentui/solid/jsx-dev-runtime#
Added
namespace JSX
@opentui/solid/jsx-runtime#
Added
namespace JSX
@opentui/solid/runtime-plugin-support#
Added
function ensureRuntimePluginSupport(options?: SolidRuntimePluginSupportOptions): booleaninterface SolidRuntimePluginSupportOptions
@opentui/solid/runtime-plugin-support/configure#
Added
function ensureRuntimePluginSupport(options?: SolidRuntimePluginSupportOptions): booleaninterface SolidRuntimePluginSupportOptions
@opentui/three#
Added
class CLICanvasclass ExplodingSpriteEffectclass ExplosionManagerclass InstanceManagerclass MeshPoolclass PhysicsExplodingSpriteEffectclass PhysicsExplosionManagerclass PlanckPhysicsWorld implements PhysicsWorldclass PlanckRigidBody implements PhysicsRigidBodyclass RapierPhysicsWorld implements PhysicsWorldclass RapierRigidBody implements PhysicsRigidBodyclass SheetSprite extends Spriteclass SpriteAnimatorclass SpriteParticleGeneratorclass SpriteResourceclass SpriteResourceManagerclass SpriteUtilsclass TextureUtilsclass ThreeCliRendererclass ThreeRenderable extends Renderableclass TiledSpriteconst DEFAULT_EXPLOSION_PARAMETERS: ExplosionEffectParametersconst DEFAULT_PHYSICS_EXPLOSION_PARAMETERS: PhysicsExplosionEffectParametersconstructor CLICanvas(device: GPUDevice, width: number, height: number, superSample: SuperSampleType, sampleAlgo?: SuperSampleAlgorithm)constructor ExplodingSpriteEffect(scene: THREE.Scene, resource: SpriteResource, frameUvOffset: THREE.Vector2, frameUvSize: THREE.Vector2, spriteWorldTransform: THREE.Matrix4, userParams?: Partial<ExplosionEffectParameters>)constructor ExplosionManager(scene: THREE.Scene)constructor InstanceManager(scene: Scene, geometry: THREE.BufferGeometry, material: THREE.Material, options: InstanceManagerOptions)constructor PhysicsExplodingSpriteEffect(scene: THREE.Scene, physicsWorld: PhysicsWorld, resource: SpriteResource, frameUvOffset: THREE.Vector2, frameUvSize: THREE.Vector2, spriteWorldTransform: THREE.Matrix4, userParams?: Partial<PhysicsExplosionEffectParameters>)constructor PhysicsExplosionManager(scene: THREE.Scene, physicsWorld: PhysicsWorld)constructor PlanckPhysicsWorld(planckWorld: planck.World)constructor PlanckRigidBody(planckBody: planck.Body)constructor RapierPhysicsWorld(rapierWorld: RAPIER.World)constructor RapierRigidBody(rapierBody: RAPIER.RigidBody)constructor SheetSprite(material: SpriteMaterial, numFrames: number)constructor SpriteAnimator(scene: Scene)constructor SpriteParticleGenerator(scene: THREE.Scene, initialBaseConfig: ParticleEffectParameters)constructor SpriteResource(texture: THREE.DataTexture, sheetProperties: SheetProperties, scene: Scene)constructor SpriteResourceManager(scene: Scene)constructor ThreeCliRenderer(cliRenderer: CliRenderer, options: ThreeCliRendererOptions)constructor ThreeRenderable(ctx: RenderContext, options: ThreeRenderableOptions)constructor TiledSprite(id: string, userSpriteDefinition: SpriteDefinition, animator: SpriteAnimator, animationInstanceParams: Array<{ name: string; state: ResolvedAnimationState; resource: SpriteResource; index: number; instanceManager: InstanceManager; frameAttribute: THREE.InstancedBufferAttribute; flipAttribute: THREE.InstancedBufferAttribute; }>)enum SuperSampleAlgorithmenum SuperSampleTypeinterface AnimationDefinitioninterface AnimationStateConfiginterface ExplosionCreationDatainterface ExplosionEffectParametersinterface ExplosionHandleinterface InstanceManagerOptionsinterface MeshPoolOptionsinterface ParticleEffectParametersinterface PhysicsExplosionCreationDatainterface PhysicsExplosionEffectParametersinterface PhysicsExplosionHandleinterface PhysicsSpriteRecreationDatainterface ResourceConfiginterface SheetPropertiesinterface SpriteDefinitioninterface SpriteRecreationDatainterface ThreeCliRendererOptionsinterface ThreeRenderableOptions extends RenderableOptions<ThreeRenderable>namespace THREE from "three"type ResolvedAnimationState = Required<AnimationStateConfig> & { sheetTilesetWidth: number; sheetTilesetHeight: number; texture: THREE.DataTexture; }
@opentui/three/runtime-modules#
Added
const runtimeModules: { "@opentui/three": typeof threeRuntime; }