OpenTUI 0.3.0

npm

This release has no release notes. The list below comes from its published type declarations.

API changes#

@opentui/core#

Added

  • class ASCIIFontRenderable extends FrameBufferRenderable
  • class ASCIIFontSelectionHelper
  • class ArrowRenderable extends Renderable
  • class Audio extends EventEmitter<AudioEvents>
  • abstract class BaseRenderable extends EventEmitter
  • class BloomEffect
  • class BoxRenderable extends Renderable
  • class CRTRollingBarEffect
  • class CliRenderer extends EventEmitter implements RenderContext
  • class CloudsEffect
  • class CodeRenderable extends TextBufferRenderable
  • class DataPathsManager extends EventEmitter<DataPathsEvents>
  • class DiffRenderable extends Renderable
  • class DistortionEffect
  • class EditBuffer extends EventEmitter
  • abstract class EditBufferRenderable extends Renderable implements LineInfoProvider
  • class EditorView
  • class ExtmarksController
  • class FlamesEffect
  • class FrameBufferRenderable extends Renderable
  • class InputRenderable extends TextareaRenderable
  • class InternalKeyHandler extends KeyHandler
  • class KeyEvent implements ParsedKey
  • class KeyHandler extends EventEmitter<KeyHandlerEventMap>
  • class LineNumberRenderable extends Renderable
  • class LinearScrollAccel implements ScrollAcceleration
  • class MacOSScrollAccel implements ScrollAcceleration
  • class MarkdownRenderable extends Renderable
  • class MouseEvent
  • class MouseParser
  • class NativeSpanFeed
  • class OptimizedBuffer
  • class PasteEvent
  • class RGBA
  • class RainbowTextEffect
  • abstract class Renderable extends BaseRenderable
  • class RootRenderable extends Renderable
  • class RootTextNodeRenderable extends TextNodeRenderable
  • class ScrollBarRenderable extends Renderable
  • class ScrollBoxRenderable extends BoxRenderable
  • class SelectRenderable extends Renderable
  • class Selection
  • class SliderRenderable extends Renderable
  • class 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 Renderable
  • class StdinParser
  • class StyledText
  • class SyntaxStyle
  • class SystemClock implements Clock
  • class TabSelectRenderable extends Renderable
  • class TerminalConsole extends EventEmitter
  • class TerminalPalette implements TerminalPaletteDetector
  • class TextBuffer
  • abstract class TextBufferRenderable extends Renderable implements LineInfoProvider
  • class TextBufferView
  • class TextNodeRenderable extends BaseRenderable
  • class TextRenderable extends TextBufferRenderable
  • class TextTableRenderable extends Renderable
  • class TextareaRenderable extends EditBufferRenderable
  • class TimeToFirstDrawRenderable extends Renderable
  • class Timeline
  • class TreeSitterClient extends EventEmitter<TreeSitterClientEvents>
  • class VRenderable extends Renderable
  • class VignetteEffect
  • const ACHROMATOPSIA_MATRIX: Float32Array<ArrayBuffer>
  • const ATTRIBUTE_BASE_BITS = 8
  • const ATTRIBUTE_BASE_MASK = 255
  • const BorderCharArrays: Record<BorderStyle, Uint32Array>
  • const BorderChars: Record<BorderStyle, BorderCharacters>
  • const DEFAULT_BACKGROUND_RGB: RGBTriplet
  • const DEFAULT_FOREGROUND_RGB: RGBTriplet
  • const 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) => TextChunk
  • const bgBlack: (input: StylableInput) => TextChunk
  • const bgBlue: (input: StylableInput) => TextChunk
  • const bgCyan: (input: StylableInput) => TextChunk
  • const bgGreen: (input: StylableInput) => TextChunk
  • const bgMagenta: (input: StylableInput) => TextChunk
  • const bgRed: (input: StylableInput) => TextChunk
  • const bgWhite: (input: StylableInput) => TextChunk
  • const bgYellow: (input: StylableInput) => TextChunk
  • const black: (input: StylableInput) => TextChunk
  • const blink: (input: StylableInput) => TextChunk
  • const blue: (input: StylableInput) => TextChunk
  • const bold: (input: StylableInput) => TextChunk
  • const brightBlack: (input: StylableInput) => TextChunk
  • const brightBlue: (input: StylableInput) => TextChunk
  • const brightCyan: (input: StylableInput) => TextChunk
  • const brightGreen: (input: StylableInput) => TextChunk
  • const brightMagenta: (input: StylableInput) => TextChunk
  • const brightRed: (input: StylableInput) => TextChunk
  • const brightWhite: (input: StylableInput) => TextChunk
  • const brightYellow: (input: StylableInput) => TextChunk
  • const capture: Capture
  • const cyan: (input: StylableInput) => TextChunk
  • const defaultTextareaKeyBindings: KeyBinding[]
  • const dim: (input: StylableInput) => TextChunk
  • const engine: TimelineEngine
  • const env: Record<string, any>
  • const envRegistry: Record<string, EnvVarConfig>
  • const extensionToFiletype: Map<string, string>
  • const fg: (color: Color) => (input: StylableInput) => TextChunk
  • const 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) => TextChunk
  • const italic: (input: StylableInput) => TextChunk
  • const link: (url: string) => (input: StylableInput) => TextChunk
  • const magenta: (input: StylableInput) => TextChunk
  • const nonAlphanumericKeys: string[]
  • const parseKeypress: (s?: Buffer | string, options?: ParseKeypressOptions) => ParsedKey | null
  • const red: (input: StylableInput) => TextChunk
  • const reverse: (input: StylableInput) => TextChunk
  • const strikethrough: (input: StylableInput) => TextChunk
  • const terminalNamedSingleStrokeKeys: string[]
  • const underline: (input: StylableInput) => TextChunk
  • const 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) => TextChunk
  • const yellow: (input: StylableInput) => TextChunk
  • construct RenderableConstructor(ctx: RenderContext, options: P): Renderable
  • constructor 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 CliRenderEvents
  • enum ConsolePosition
  • enum DebugOverlayCorner
  • enum EditBufferRenderableEvents
  • enum InputRenderableEvents
  • enum LayoutEvents
  • enum LogLevel
  • enum MouseButton
  • enum RenderableEvents
  • enum RendererControlState
  • enum SelectRenderableEvents
  • enum TabSelectRenderableEvents
  • enum TargetChannel
  • function 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[]): void
  • function ansi256IndexToRgb(index: number): RGBTriplet
  • function applyAsciiArt(buffer: OptimizedBuffer, ramp?: string, fgColor?: { r: number; g: number; b: number; }, bgColor?: { r: number; g: number; b: number; }): void
  • function applyBrightness(buffer: OptimizedBuffer, brightness?: number, cellMask?: Float32Array): void
  • function applyChromaticAberration(buffer: OptimizedBuffer, strength?: number): void
  • function applyGain(buffer: OptimizedBuffer, gain?: number, cellMask?: Float32Array): void
  • function applyInvert(buffer: OptimizedBuffer, strength?: number): void
  • function applyNoise(buffer: OptimizedBuffer, strength?: number): void
  • function applySaturation(buffer: OptimizedBuffer, cellMask?: Float32Array, strength?: number): void
  • function applyScanlines(buffer: OptimizedBuffer, strength?: number, step?: number): void
  • function attributesWithLink(baseAttributes: number, linkId: number): number
  • function borderCharsToArray(chars: BorderCharacters): Uint32Array
  • function buildKittyKeyboardFlags(config: KittyKeyboardOptions | null | undefined): number
  • function buildTerminalPaletteSignature(colors?: TerminalColors | null): string
  • function clearEnvCache(): void
  • function convertGlobalToLocalSelection(globalSelection: Selection | null, localX: number, localY: number): LocalSelectionBounds | null
  • function convertThemeToStyles(theme: ThemeTokenStyle[]): Record<string, StyleDefinition>
  • function coordinateToCharacterIndex(x: number, text: string, font?: keyof typeof fonts): number
  • function 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): ExtmarksController
  • function 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): TerminalPaletteDetector
  • function 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; }): number
  • function createTimeline(options?: TimelineOptions): Timeline
  • function decodePasteBytes(bytes: Uint8Array): string
  • function 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): Renderable
  • function detectLinks(chunks: TextChunk[], context: { content: string; highlights: SimpleHighlight[]; }): TextChunk[]
  • function extToFiletype(extension: string): string | undefined
  • function generateEnvColored(): string
  • function generateEnvMarkdown(): string
  • function getBaseAttributes(attr: number): number
  • function getBorderFromSides(sides: BorderSidesConfig): boolean | BorderSides[]
  • function getBorderSides(border: boolean | BorderSides[]): BorderSidesConfig
  • function getCharacterPositions(text: string, font?: keyof typeof fonts): number[]
  • function getDataPaths(): DataPathsManager
  • function getLinkId(attributes: number): number
  • function getTreeSitterClient(): TreeSitterClient
  • function 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): StyledText
  • function hexToRgb(hex: string): RGBA
  • function hsvToRgb(h: number, s: number, v: number): RGBA
  • function infoStringToFiletype(infoString: string): string | undefined
  • function instantiate<NodeType extends VNode | Renderable>(ctx: RenderContext, node: NodeType): InstantiateFn<NodeType>
  • function isEditBufferRenderable(obj: unknown): obj is EditBufferRenderable
  • function isRenderable(obj: any): obj is Renderable
  • function isStyledText(obj: any): obj is StyledText
  • function isTextNodeRenderable(obj: any): obj is TextNodeRenderable
  • function isVNode(node: any): node is VNode
  • function isValidBorderStyle(value: unknown): value is BorderStyle
  • function maybeMakeRenderable(ctx: RenderContext, node: Renderable | VNode<any, any[]> | unknown): Renderable | null
  • function measureText({ text, font }: { text: string; font?: keyof typeof fonts; }): { width: number; height: number; }
  • function normalizeColorValue(value: ColorInput | null | undefined): NormalizedColorValue | null
  • function normalizeIndexedColorIndex(index: number): number
  • function normalizeTerminalPalette(colors?: TerminalColors | null): NormalizedTerminalPalette
  • function parseAlign(value: string | null | undefined): Align
  • function parseAlignItems(value: string | null | undefined): Align
  • function parseBorderStyle(value: unknown, fallback?: BorderStyle): BorderStyle
  • function parseBoxSizing(value: string): BoxSizing
  • function parseColor(color: ColorInput): RGBA
  • function parseDimension(value: string): Dimension
  • function parseDirection(value: string): Direction
  • function parseDisplay(value: string): Display
  • function parseEdge(value: string): Edge
  • function parseFlexDirection(value: string | null | undefined): FlexDirection
  • function parseGutter(value: string): Gutter
  • function parseJustify(value: string | null | undefined): Justify
  • function parseLogLevel(value: string): LogLevel
  • function parseMeasureMode(value: string): MeasureMode
  • function parseOverflow(value: string | null | undefined): Overflow
  • function parsePositionType(value: string | null | undefined): PositionType
  • function parseUnit(value: string): Unit
  • function parseWrap(value: string | null | undefined): Wrap
  • function pathToFiletype(path: string): string | undefined
  • function registerCorePlugin<TSlotName extends string, TContext extends PluginContext = PluginContext, TData extends object = Record<string, unknown>>(registry: CoreSlotRegistry<TSlotName, TContext, TData>, plugin: CorePlugin<TSlotName, TContext, TData>): () => void
  • function registerEnvVar(config: EnvVarConfig): void
  • function 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(): RenderLib
  • function rgbToHex(rgb: RGBA): string
  • function setRenderLibPath(libPath: string): void
  • function setupAudio(options?: AudioSetupOptions): Audio
  • function stringToStyledText(content: string): StyledText
  • function stripAnsiSequences(text: string): string
  • function t(strings: TemplateStringsArray, ...values: StylableInput[]): StyledText
  • function 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): void
  • function wrapWithDelegates<T extends InstanceType<RenderableConstructor>>(instance: T, delegateMap: Record<string, string> | undefined): T
  • index AnimationOptions[key: string]: any
  • interface ASCIIFontOptions extends Omit<RenderableOptions<ASCIIFontRenderable>, "width" | "height">
  • interface AnimationOptions
  • interface ArrowOptions extends RenderableOptions<ArrowRenderable>
  • interface AudioEngineLib
  • interface AudioErrorContext
  • interface AudioEvents
  • interface AudioPlayOptions
  • interface AudioPlaybackDevice
  • interface AudioSetupOptions
  • interface AudioStartOptions
  • interface BaseRenderableOptions
  • interface BlockState
  • interface BorderCharacters
  • interface BorderConfig
  • interface BorderSidesConfig
  • interface BoxDrawOptions
  • interface BoxOptions<TRenderable extends Renderable = BoxRenderable> extends RenderableOptions<TRenderable>
  • interface BufferState
  • interface CapturedFrame
  • interface CapturedLine
  • interface CapturedSpan
  • interface ChunkRenderContext extends HighlightContext
  • interface CliRendererConfig
  • interface CliRendererExternalOutputEvent
  • interface CliRendererFrameEvent
  • interface CliRendererStats extends NativeRenderStats
  • interface Clock
  • interface CodeOptions extends TextBufferOptions
  • interface ConsoleOptions
  • interface ContentChangeEvent
  • interface 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 CursorChangeEvent
  • interface CursorState
  • interface CursorStyleOptions
  • interface DataPaths
  • interface DataPathsEvents
  • interface DiffRenderableOptions extends RenderableOptions<DiffRenderable>
  • interface Edit
  • interface EditBufferOptions extends RenderableOptions<EditBufferRenderable>
  • interface EditorTraits
  • interface EnvVarConfig
  • interface Extmark
  • interface ExtmarkOptions
  • interface FiletypeParserOptions
  • interface FrameBufferOptions extends RenderableOptions<FrameBufferRenderable>
  • interface GetPaletteOptions
  • interface HASTElement
  • interface HASTText
  • interface Highlight
  • interface HighlightContext
  • interface HighlightMeta
  • interface HighlightRange
  • interface HighlightResponse
  • interface InjectionMapping
  • interface InputRenderableOptions extends Omit<TextareaOptions, "height" | "minHeight" | "maxHeight" | "initialValue">
  • interface JSAnimation
  • interface KittyKeyboardOptions
  • interface LayoutOptions extends BaseRenderableOptions
  • interface LineColorConfig
  • interface LineInfo
  • interface LineInfoProvider
  • interface LineNumberOptions extends RenderableOptions<LineNumberRenderable>
  • interface LineSign
  • interface LocalSelectionBounds
  • interface LogicalCursor
  • interface MarkdownOptions extends RenderableOptions<MarkdownRenderable>
  • interface MarkdownTableOptions
  • interface MergedStyle
  • interface NativeRenderOperationResult
  • interface NativeRendererCreateOptions
  • interface NormalizedColorValue
  • interface NormalizedTerminalPalette
  • interface ParseState
  • interface ParsedBuffer extends BufferState
  • interface ParsedKey
  • interface PasteMetadata
  • interface PendingCall
  • interface PerformanceStats
  • interface Plugin<TNode, TSlots extends object, TContext extends PluginContext = PluginContext>
  • interface PluginErrorEvent
  • interface PluginErrorReport
  • interface Position
  • interface RenderContext extends EventEmitter
  • interface RenderLib extends AudioEngineLib
  • interface RenderNodeContext
  • interface RenderableConstructor<P extends RenderableOptions<any> = RenderableOptions<any>>
  • interface RenderableOptions<T extends BaseRenderable = BaseRenderable> extends Partial<LayoutOptions>
  • interface RendererEvents
  • interface RendererSchedulerState
  • interface ResolvedSlotRenderer<TNode, TProps, TContext extends PluginContext = PluginContext>
  • interface ScrollAcceleration
  • interface ScrollBarOptions extends RenderableOptions<ScrollBarRenderable>
  • interface ScrollBoxOptions extends BoxOptions<ScrollBoxRenderable>
  • interface ScrollInfo
  • interface ScrollbackRenderContext
  • interface ScrollbackSnapshot
  • interface ScrollbackSurface
  • interface ScrollbackSurfaceCommitOptions
  • interface ScrollbackSurfaceOptions
  • interface SelectOption
  • interface SelectRenderableOptions extends RenderableOptions<SelectRenderable>
  • interface SliderOptions extends RenderableOptions<SliderRenderable>
  • interface SlotRegistryOptions
  • interface SlotRenderableOptions<TSlotName extends string, K extends TSlotName, TContext extends PluginContext = PluginContext, TData extends object = Record<string, unknown>> extends RenderableOptions
  • interface StdinParserOptions
  • interface StdinParserProtocolContext
  • interface StyleAttrs
  • interface StyleDefinition
  • interface StyleDefinitionInput
  • interface SubmitEvent
  • interface TabSelectOption
  • interface TabSelectRenderableOptions extends Omit<RenderableOptions<TabSelectRenderable>, "height">
  • interface TerminalCapabilities
  • interface TerminalColors
  • interface TerminalInfo
  • interface TerminalPaletteDetector
  • interface TerminalPaletteOptions
  • interface TextBufferOptions extends RenderableOptions<TextBufferRenderable>
  • interface TextChunk
  • interface TextNodeOptions extends BaseRenderableOptions
  • interface TextOptions extends TextBufferOptions
  • interface TextTableOptions extends RenderableOptions<TextTableRenderable>
  • interface TextareaOptions extends EditBufferOptions
  • interface ThemeTokenStyle
  • interface TimeToFirstDrawOptions extends RenderableOptions<TimeToFirstDrawRenderable>
  • interface TimelineOptions
  • interface TreeSitterClientEvents
  • interface TreeSitterClientOptions
  • interface TreeSitterToStyledTextOptions
  • interface VNode<P = any, C = VChild[]>
  • interface VRenderableOptions extends RenderableOptions<VRenderable>
  • interface Viewport
  • interface ViewportBounds
  • interface VisualCursor
  • namespace 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 = number
  • type AudioSound = number
  • type AudioVoice = number
  • type 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 = ColorInput
  • type ColorInput = string | RGBA
  • type 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>) => FallbackNodes
  • type CoreSlotMode = SlotMode
  • type 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) => BaseRenderable
  • type 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 easingFunctions
  • type 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[]) => VNode
  • type GrowthPolicy = "grow" | "block"
  • type GutterString = "column" | "row" | "all"
  • type HASTNode = HASTText | HASTElement
  • type InputAction = TextareaAction
  • type InputKeyBinding = TextareaKeyBinding
  • type 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) => void
  • type 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 = object
  • type 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 | RenderCommandPopOpacity
  • type ScreenMode = "alternate-screen" | "main-screen" | "split-footer"
  • type ScrollUnit = "absolute" | "viewport" | "content" | "step"
  • type ScrollbackWriter = (ctx: ScrollbackRenderContext) => ScrollbackSnapshot
  • type 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) => TNode
  • type 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 | TextChunk
  • type TabSelectAction = "move-left" | "move-right" | "select-current"
  • type TabSelectKeyBinding = BaseKeyBinding<TabSelectAction>
  • type TerminalMultiplexer = "none" | "tmux" | "zellij" | "screen" | "unknown"
  • type TextTableCellContent = TextChunk[] | null | undefined
  • type 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> | undefined
  • type TimerHandle = ReturnType<typeof globalThis.setTimeout> | number
  • type UnitString = "undefined" | "point" | "percent" | "auto"
  • type VChild = VNode | Renderable | VChild[] | null | undefined | false
  • type 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) => boolean
  • const runtimeModuleIdForSpecifier: (specifier: string) => string
  • function createRuntimePlugin(input?: CreateRuntimePluginOptions): BunPlugin
  • interface CreateRuntimePluginOptions
  • interface RuntimePluginRewriteOptions
  • type RuntimeModuleEntry = RuntimeModuleExports | RuntimeModuleLoader
  • type RuntimeModuleExports = Record<string, unknown>
  • type RuntimeModuleLoader = () => RuntimeModuleExports | Promise<RuntimeModuleExports>

@opentui/core/runtime-plugin-support#

Added

  • const runtimeModuleIdForSpecifier: (specifier: string) => string
  • function createRuntimePlugin(input?: CreateRuntimePluginOptions): BunPlugin
  • function ensureRuntimePluginSupport(options?: CreateRuntimePluginOptions): boolean
  • interface CreateRuntimePluginOptions
  • type RuntimeModuleEntry = RuntimeModuleExports | RuntimeModuleLoader
  • type RuntimeModuleExports = Record<string, unknown>
  • type RuntimeModuleLoader = () => RuntimeModuleExports | Promise<RuntimeModuleExports>

@opentui/core/runtime-plugin-support/configure#

Added

  • const runtimeModuleIdForSpecifier: (specifier: string) => string
  • function createRuntimePlugin(input?: CreateRuntimePluginOptions): BunPlugin
  • function ensureRuntimePluginSupport(options?: CreateRuntimePluginOptions): boolean
  • interface CreateRuntimePluginOptions
  • type RuntimeModuleEntry = RuntimeModuleExports | RuntimeModuleLoader
  • type RuntimeModuleExports = Record<string, unknown>
  • type RuntimeModuleLoader = () => RuntimeModuleExports | Promise<RuntimeModuleExports>

@opentui/core/testing#

Added

  • class ManualClock implements Clock
  • class MockTreeSitterClient extends TreeSitterClient
  • class TestRecorder
  • const 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): TerminalCapabilities
  • function createTestRenderer(options: TestRendererOptions): Promise<TestRendererSetup>
  • function pasteBytes(text: string): Uint8Array
  • function setRendererCapabilities(renderer: CliRenderer, overrides?: TerminalCapabilitiesOverrides): TerminalCapabilities
  • interface MockKeysOptions
  • interface MouseEventOptions
  • interface MouseModifiers
  • interface MousePosition
  • interface RecordedFrame
  • interface TerminalCapabilitiesOverrides extends Partial<Omit<TerminalCapabilities, "terminal">>
  • interface TestExternalOutput
  • interface TestExternalOutputCommit
  • interface TestFlushOptions
  • interface TestRendererOptions extends CliRendererConfig
  • interface TestRendererSetup
  • interface TestVisualIdleOptions
  • interface TestWaitForOptions
  • type KeyInput = string | keyof typeof KeyCodes
  • type 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 symbol
  • constructor Keymap(host: KeymapHost<TTarget, TEvent>)
  • function stringifyKeySequence(input: readonly KeyStringifyInput[], options?: StringifyOptions): string
  • function stringifyKeyStroke(input: KeyStringifyInput, options?: StringifyOptions): string
  • index Binding[key: string]: unknown
  • index Command[key: string]: unknown
  • index Layer[key: string]: unknown
  • index ParsedBinding[key: string]: unknown
  • interface ActiveBinding<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>
  • interface ActiveKey<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>
  • interface ActiveKeyOptions
  • interface Binding<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>
  • interface BindingExpanderContext
  • interface BindingExpansion
  • interface BindingFieldContext
  • interface BindingParserContext
  • interface BindingParserResult
  • interface 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 CommandFieldContext
  • interface 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 ErrorEvent
  • interface EventMatchResolverContext
  • interface HostMetadata
  • interface KeyAfterInputContext<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>
  • interface KeyDeferredDisambiguationContext<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>
  • interface KeyDeferredDisambiguationDecision
  • interface KeyDisambiguationContext<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>
  • interface KeyDisambiguationDecision
  • interface KeyInputContext<TEvent extends KeymapEvent = KeymapEvent>
  • interface KeyInterceptOptions
  • interface KeySequencePart
  • interface KeyStrokeInput
  • interface KeyToken
  • interface KeymapEvent
  • interface 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 LayerFieldContext
  • interface NormalizedKeyStroke extends KeyStrokeInput
  • interface ParsedBinding<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>
  • interface ParsedCommand
  • interface RawInputContext
  • interface RawInterceptOptions
  • interface ReactiveMatcher
  • interface ResolvedKeyToken
  • interface ResolvedSequencePattern<TEvent extends KeymapEvent = KeymapEvent>
  • interface RunCommandOptions<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>
  • interface SequencePattern<TEvent extends KeymapEvent = KeymapEvent>
  • interface SequencePatternMatch
  • interface StringifyOptions
  • interface WarningEvent
  • type 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[] | undefined
  • type BindingFieldCompiler = (value: unknown, ctx: BindingFieldContext) => void
  • type BindingParser = (ctx: BindingParserContext) => BindingParserResult | undefined
  • type BindingTransformer<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = (binding: ParsedBinding<TTarget, TEvent>, ctx: BindingTransformerContext<TTarget, TEvent>) => void
  • type 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) => void
  • type 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> | undefined
  • type 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>) => void
  • type 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[] | undefined
  • type EventName = keyof Events
  • type 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 Intercepts
  • type 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 | undefined
  • type KeyLike = string | KeyStrokeInput
  • type KeyMatch = string
  • type KeyStringifyInput = KeyStrokeInput | NormalizedKeyStroke | KeySequencePart | { stroke: NormalizedKeyStroke; display?: string; }
  • type LayerAnalyzer<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = (ctx: LayerAnalysisContext<TTarget, TEvent>) => void
  • type LayerBindingsTransformer<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent> = (bindings: readonly Binding<TTarget, TEvent>[], ctx: LayerBindingsTransformerContext<TTarget, TEvent>) => readonly Binding<TTarget, TEvent>[] | void
  • type LayerFieldCompiler = (value: unknown, ctx: LayerFieldContext) => void
  • type Listener<TValue> = [ TValue ] extends [ void ] ? () => void : (value: TValue) => void
  • type 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: BindingParser
  • const defaultEventMatchResolver: EventMatchResolver<KeymapEvent>
  • function registerAliasesField<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => void
  • function registerBackspacePopsPendingSequence<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>, options?: BackspacePopsPendingSequenceOptions): () => void
  • function registerBindingOverrides<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => void
  • function registerCommaBindings<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => void
  • function registerDeadBindingWarnings<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => void
  • function registerDefaultBindingParser<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => void
  • function registerDefaultEventMatchResolver<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => void
  • function registerDefaultKeys<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => void
  • function registerEmacsBindings<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => void
  • function registerEnabledFields<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => void
  • function registerEscapeClearsPendingSequence<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>, options?: EscapeClearsPendingSequenceOptions): () => void
  • function registerExCommands<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => void
  • function registerLeader<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>, options: LeaderOptions): () => void
  • function registerMetadataFields<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => void
  • function registerModBindings<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => void
  • function registerNeovimDisambiguation<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>, options?: NeovimDisambiguationOptions): () => void
  • function registerTimedLeader<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>, options: TimedLeaderOptions): () => void
  • function registerUnresolvedCommandWarnings<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => void
  • index ExCommand[key: string]: unknown
  • interface BackspacePopsPendingSequenceOptions
  • interface EscapeClearsPendingSequenceOptions
  • interface ExCommand<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>
  • interface ExCommandPayload
  • interface LeaderOptions
  • interface NeovimDisambiguationOptions
  • interface TimedLeaderOptions extends LeaderOptions
  • type Aliases = Record<string, string>
  • type Enabled = boolean | (() => boolean) | ReactiveMatcher
  • type LeaderTrigger = KeyLike | Readonly<{ key: KeyLike; }> | readonly Readonly<{ key: KeyLike; }>[]

@opentui/keymap/addons/opentui#

Added

  • const defaultBindingParser: BindingParser
  • const defaultEventMatchResolver: EventMatchResolver<KeymapEvent>
  • function createTextareaBindings(overrides?: readonly Binding[], options?: EditBufferCommandOptions): Binding[]
  • function registerAliasesField<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => void
  • function registerBackspacePopsPendingSequence<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>, options?: BackspacePopsPendingSequenceOptions): () => void
  • function registerBaseLayoutFallback(keymap: Keymap<Renderable, KeyEvent>): () => void
  • function registerBindingOverrides<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => void
  • function registerCommaBindings<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => void
  • function registerDeadBindingWarnings<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => void
  • function registerDefaultBindingParser<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => void
  • function registerDefaultEventMatchResolver<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => void
  • function registerDefaultKeys<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => void
  • function registerEditBufferCommands(keymap: Keymap<Renderable, KeyEvent>, renderer: CliRenderer, options?: EditBufferCommandOptions): () => void
  • function registerEmacsBindings<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => void
  • function registerEnabledFields<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => void
  • function registerEscapeClearsPendingSequence<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>, options?: EscapeClearsPendingSequenceOptions): () => void
  • function registerExCommands<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => void
  • function registerLeader<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>, options: LeaderOptions): () => void
  • function registerManagedTextareaLayer(keymap: Keymap<Renderable, KeyEvent>, renderer: CliRenderer, layer: ManagedTextareaLayer, options?: EditBufferCommandOptions): () => void
  • function registerMetadataFields<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => void
  • function registerModBindings<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => void
  • function registerNeovimDisambiguation<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>, options?: NeovimDisambiguationOptions): () => void
  • function registerTextareaMappingSuspension(keymap: Keymap<Renderable, KeyEvent>, renderer: CliRenderer): () => void
  • function registerTimedLeader<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>, options: TimedLeaderOptions): () => void
  • function registerUnresolvedCommandWarnings<TTarget extends object, TEvent extends KeymapEvent>(keymap: Keymap<TTarget, TEvent>): () => void
  • index ExCommand[key: string]: unknown
  • interface BackspacePopsPendingSequenceOptions
  • interface EditBufferCommandOptions
  • interface EscapeClearsPendingSequenceOptions
  • interface ExCommand<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>
  • interface ExCommandPayload
  • interface LeaderOptions
  • interface NeovimDisambiguationOptions
  • interface TimedLeaderOptions extends LeaderOptions
  • type Aliases = Record<string, string>
  • type EditBufferCommandName = (typeof editBufferActions)[number]
  • type EditBufferFineGroup = "Cursor" | "Selection" | "Delete" | "History" | "Insert" | "Submit"
  • type Enabled = boolean | (() => boolean) | ReactiveMatcher
  • type 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 | undefined
  • function formatKeySequence(parts: readonly KeySequenceFormatPart[] | undefined, options?: FormatKeySequenceOptions): string
  • interface BindingDefaultsContext<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>
  • interface BindingLookup<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>
  • interface CommandBindingsError
  • interface CommandBindingsOptions
  • interface CommandBindingsOverrideWarning
  • interface CreateBindingLookupOptions<TTarget extends object = object, TEvent extends KeymapEvent = KeymapEvent>
  • interface FormatCommandBindingsOptions extends FormatKeySequenceOptions
  • interface FormatKeySequenceOptions
  • interface KeySequenceFormatPart
  • interface SequenceBindingLike
  • type 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>> | void
  • type 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 GraphSequenceNode
  • interface 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): HtmlKeymapEvent
  • function createHtmlKeymapHost(root: HTMLElement): KeymapHost<HTMLElement, HtmlKeymapEvent>
  • function normalizeHtmlKeyName(key: string): string
  • interface 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: () => OpenTuiKeymap
  • const 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): ReactiveMatcher
  • function useBindings<TRenderable extends Renderable = Renderable>(createLayer: () => UseBindingsLayer<TRenderable>, deps?: DependencyList): void
  • interface KeymapProviderProps
  • interface 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: () => OpenTuiKeymap
  • const useKeymapSelector: <T>(selector: (keymap: OpenTuiKeymap) => T) => Accessor<T>
  • function KeymapProvider(props: KeymapProviderProps): JSX.Element
  • function reactiveMatcherFromSignal<T>(accessor: Accessor<T>, predicate?: (value: T) => boolean): ReactiveMatcher
  • function useBindings<TRenderable extends Renderable = Renderable>(createLayer: () => UseBindingsLayer<TRenderable>): void
  • interface KeymapProviderProps
  • interface 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 KeymapEvent
  • class TestKeymapHost implements KeymapHost<TestKeymapTarget, TestKeymapEvent>
  • class TestKeymapTarget
  • const DEFAULT_TEST_HOST_METADATA: HostMetadata
  • constructor TestKeymapEvent(name: string, modifiers?: TestKeyModifierOptions)
  • constructor TestKeymapHost(options?: CreateTestKeymapHostOptions)
  • constructor TestKeymapTarget(id: string)
  • function captureKeymapDiagnostics(keymap: Keymap<any, any>): TestDiagnosticCapture
  • function createTestHostMetadata(options?: HostMetadata | TestHostMetadataOptions): HostMetadata
  • function createTestKeymap(options?: CreateTestKeymapOptions): TestKeymapHarness
  • function createTestKeymapHost(options?: CreateTestKeymapHostOptions): TestKeymapHost
  • interface CreateTestKeymapHostOptions
  • interface CreateTestKeymapOptions extends CreateTestKeymapHostOptions
  • interface TestDiagnosticCapture
  • interface TestKeymapHarness
  • type TestHostMetadataOptions = Partial<Omit<HostMetadata, "modifiers">> & { modifiers?: Partial<HostMetadata["modifiers"]>; }
  • type TestKeyModifierOptions = Partial<Pick<KeymapEvent, "ctrl" | "shift" | "meta" | "super" | "hyper">>

@opentui/qrcode#

Added

  • class QRCode
  • class QRCodeRenderable extends BaseQRCodeRenderable<ErrorCorrectionLevel, number, QRCode>
  • class QrSegment
  • const EciAssignment: { readonly ISO_8859_1: 3; readonly SHIFT_JIS: 20; readonly UTF_8: 26; }
  • constructor QRCodeRenderable(ctx: RenderContext, options?: QRCodeOptions)
  • enum ErrorCorrectionLevel
  • function createQrSvg(text: string, options?: EncodeOptions & { ecl?: ErrorCorrectionLevel; border?: number; moduleSize?: number; }): string
  • function encodeTextBytes(text: string, encoding?: ByteEncoding): Uint8Array
  • interface EncodeOptions
  • interface Fnc1SecondPositionInfo
  • interface Gs1Element
  • interface QRCodeOptions extends QRCodeSharedOptions<QRCodeRenderable, ErrorCorrectionLevel>
  • interface StructuredAppendInfo
  • interface TerminalRenderOptions
  • type ByteEncoding = "utf-8" | "iso-8859-1" | "shift-jis"
  • type QRCodeFitMode = "contain" | "none"

@opentui/qrcode/react#

Added

  • class QRCode
  • class QRCodeRenderable extends BaseQRCodeRenderable<ErrorCorrectionLevel, number, QRCode>
  • class QrSegment
  • const EciAssignment: { readonly ISO_8859_1: 3; readonly SHIFT_JIS: 20; readonly UTF_8: 26; }
  • constructor QRCodeRenderable(ctx: RenderContext, options?: QRCodeOptions)
  • enum ErrorCorrectionLevel
  • function createQrSvg(text: string, options?: EncodeOptions & { ecl?: ErrorCorrectionLevel; border?: number; moduleSize?: number; }): string
  • function encodeTextBytes(text: string, encoding?: ByteEncoding): Uint8Array
  • function registerQRCode(): void
  • interface EncodeOptions
  • interface Fnc1SecondPositionInfo
  • interface Gs1Element
  • interface QRCodeOptions extends QRCodeSharedOptions<QRCodeRenderable, ErrorCorrectionLevel>
  • interface StructuredAppendInfo
  • interface TerminalRenderOptions
  • type ByteEncoding = "utf-8" | "iso-8859-1" | "shift-jis"
  • type QRCodeFitMode = "contain" | "none"

@opentui/qrcode/solid#

Added

  • class QRCode
  • class QRCodeRenderable extends BaseQRCodeRenderable<ErrorCorrectionLevel, number, QRCode>
  • class QrSegment
  • const EciAssignment: { readonly ISO_8859_1: 3; readonly SHIFT_JIS: 20; readonly UTF_8: 26; }
  • constructor QRCodeRenderable(ctx: RenderContext, options?: QRCodeOptions)
  • enum ErrorCorrectionLevel
  • function createQrSvg(text: string, options?: EncodeOptions & { ecl?: ErrorCorrectionLevel; border?: number; moduleSize?: number; }): string
  • function encodeTextBytes(text: string, encoding?: ByteEncoding): Uint8Array
  • function registerQRCode(): void
  • interface EncodeOptions
  • interface Fnc1SecondPositionInfo
  • interface Gs1Element
  • interface QRCodeOptions extends QRCodeSharedOptions<QRCodeRenderable, ErrorCorrectionLevel>
  • interface StructuredAppendInfo
  • interface TerminalRenderOptions
  • type 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: ComponentCatalogue
  • const createPortal: (children: ReactNode, containerInfo: any, implementation: any, key?: string | null) => ReactPortal
  • const flushSync: { (): void; <R>(fn: () => R): R; } & { (): void; <R>(fn: () => R): R; }
  • const useAppContext: () => AppContext
  • const useBlur: (handler: () => void) => void
  • const useFocus: (handler: () => void) => void
  • const useKeyboard: (handler: (key: KeyEvent) => void, options?: UseKeyboardOptions) => void
  • const useOnResize: (callback: (width: number, height: number) => void) => CliRenderer
  • const usePaste: (handler: (event: PasteEvent) => void) => void
  • const useRenderer: () => CliRenderer
  • const useSelectionHandler: (handler: (selection: Selection) => void) => void
  • const useTerminalDimensions: () => { width: number; height: number; }
  • const useTimeline: (options?: TimelineOptions) => Timeline
  • function Slot<TSlots extends SlotMap, TContext extends PluginContext = PluginContext, K extends keyof TSlots = keyof TSlots>(props: ReactSlotProps<TSlots, K, TContext>): ReactNode
  • function createReactSlotRegistry<TSlots extends SlotMap, TContext extends PluginContext = PluginContext>(renderer: CliRenderer, context: TContext, options?: SlotRegistryOptions): SlotRegistry<ReactNode, TSlots, TContext>
  • function createRoot(renderer: CliRenderer): Root
  • function createSlot<TSlots extends SlotMap, TContext extends PluginContext = PluginContext>(registry: SlotRegistry<ReactNode, TSlots, TContext>, options?: ReactSlotOptions): ReactSlotComponent<TSlots>
  • function extend<T extends ComponentCatalogue>(objects: T): void
  • function getComponentCatalogue(): ComponentCatalogue
  • index OpenTUIComponents[componentName: string]: RenderableConstructor
  • interface OpenTUIComponents
  • interface ReactSlotOptions
  • interface UseKeyboardOptions
  • reexport 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" : NonStyledProps
  • type 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>) => ReactNode
  • type ReactSlotComponent<TSlots extends SlotMap> = <K extends keyof TSlots>(props: ReactBoundSlotProps<TSlots, K>) => ReactNode
  • type 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) => TRenderable
  • type 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 JSX
  • reexport Fragment from "react/jsx-dev-runtime"
  • reexport jsxDEV from "react/jsx-dev-runtime"

@opentui/react/jsx-runtime#

Added

  • namespace JSX
  • reexport 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) => ReactPortal
  • const flushSync: { (): void; <R>(fn: () => R): R; } & { (): void; <R>(fn: () => R): R; }
  • function createRoot(renderer: CliRenderer): Root
  • type Root = { render: (node: ReactNode) => void; unmount: () => void; }

@opentui/react/runtime-plugin-support#

Added

  • function ensureRuntimePluginSupport(options?: ReactRuntimePluginSupportOptions): boolean
  • interface ReactRuntimePluginSupportOptions

@opentui/react/runtime-plugin-support/configure#

Added

  • function ensureRuntimePluginSupport(options?: ReactRuntimePluginSupportOptions): boolean
  • interface ReactRuntimePluginSupportOptions

@opentui/react/test-utils#

Added

  • function testRender(node: ReactNode, testRendererOptions: TestRendererOptions): Promise<TestRendererSetup>

@opentui/solid#

Added

  • class BoldSpanRenderable extends TextModifierRenderable
  • class ItalicSpanRenderable extends TextModifierRenderable
  • class LayoutSlotRenderable extends SlotBaseRenderable
  • class LineBreakRenderable extends SpanRenderable
  • class LinkRenderable extends SpanRenderable
  • class SlotRenderable extends SlotBaseRenderable
  • class TextSlotRenderable extends TextNodeRenderable
  • class UnderlineSpanRenderable extends TextModifierRenderable
  • const RendererContext: Context<CliRenderer | undefined>
  • const TimeToFirstDraw: (props: TimeToFirstDrawProps) => any
  • const _render: (code: () => BaseRenderable, node: BaseRenderable) => () => void
  • const 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: ComponentCatalogue
  • const createComponent: <T>(Comp: (props: T) => BaseRenderable, props: T) => BaseRenderable
  • const createElement: (tag: string) => BaseRenderable
  • const createTextNode: (value: string) => BaseRenderable
  • const effect: <T>(fn: (prev?: T) => T, init?: T) => void
  • const insert: <T>(parent: any, accessor: T | (() => T), marker?: any | null, initial?: any) => BaseRenderable
  • const insertNode: (parent: BaseRenderable, node: BaseRenderable, anchor?: BaseRenderable | undefined) => void
  • const memo: <T>(fn: () => T, equal: boolean) => () => T
  • const mergeProps: (...sources: unknown[]) => unknown
  • const onBlur: (callback: () => void) => void
  • const onFocus: (callback: () => void) => void
  • const onResize: (callback: (width: number, height: number) => void) => void
  • const render: (node: () => JSX.Element, rendererOrConfig?: CliRenderer | CliRendererConfig) => Promise<void>
  • const setProp: <T>(node: BaseRenderable, name: string, value: T, prev?: T | undefined) => T
  • const spread: <T>(node: any, accessor: (() => T) | T, skipChildren?: boolean) => void
  • const 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) => T
  • deprecated const useKeyHandler: (callback: (key: KeyEvent) => void, options?: UseKeyboardOptions) => void
  • const useKeyboard: (callback: (key: KeyEvent) => void, options?: UseKeyboardOptions) => void
  • const usePaste: (callback: (event: PasteEvent) => void) => void
  • const useRenderer: () => CliRenderer
  • const useSelectionHandler: (callback: (selection: Selection) => void) => void
  • const useTerminalDimensions: () => Accessor<{ width: number; height: number; }>
  • const useTimeline: (options?: TimelineOptions) => Timeline
  • constructor 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.Element
  • function Portal(props: { mount?: DomNode; ref?: (el: {}) => void; children: JSX.Element; }): DomNode
  • function Slot<TSlots extends SlotMap, TContext extends PluginContext = PluginContext, K extends keyof TSlots = keyof TSlots>(props: SolidSlotProps<TSlots, K, TContext>): JSX.Element
  • function createDynamic<T extends ValidComponent>(component: () => T | undefined, props: ComponentProps<T>): JSX.Element
  • function createScrollbackWriter(node: SolidScrollbackNode, options?: SolidScrollbackWriterOptions): ScrollbackWriter
  • function createSlot<TSlots extends SlotMap, TContext extends PluginContext = PluginContext>(registry: SlotRegistry<JSX.Element, TSlots, TContext>, options?: SolidSlotOptions): SolidSlotComponent<TSlots>
  • function createSlotNode(): SlotRenderable
  • function 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): void
  • function getComponentCatalogue(): ComponentCatalogue
  • function writeSolidToScrollback(renderer: CliRenderer, node: SolidScrollbackNode, options?: SolidScrollbackWriterOptions): void
  • index OpenTUIComponents[componentName: string]: RenderableConstructor
  • interface LinkOptions extends TextNodeOptions
  • interface OpenTUIComponents
  • interface SolidScrollbackWriterOptions
  • interface SolidSlotOptions
  • interface UseKeyboardOptions
  • namespace JSX
  • reexport SlotMode from "@opentui/core"
  • type AsciiFontProps = ComponentProps<ASCIIFontOptions, ASCIIFontRenderable>
  • type BoxProps = ComponentProps<ContainerProps<BoxOptions>, BoxRenderable> & { focused?: boolean; }
  • type CodeProps = ComponentProps<CodeOptions, CodeRenderable>
  • type DomNode = BaseRenderable
  • type 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" : NonStyledProps
  • type 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) => TRenderable
  • type 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.Element
  • type SolidScrollbackNode = (ctx: ScrollbackRenderContext) => JSX.Element
  • type SolidSlotComponent<TSlots extends SlotMap> = <K extends keyof TSlots>(props: SolidBoundSlotProps<TSlots, K>) => JSX.Element
  • type 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: BunPlugin
  • function createSolidTransformPlugin(input?: CreateSolidTransformPluginOptions): BunPlugin
  • function ensureSolidTransformPlugin(input?: CreateSolidTransformPluginOptions): boolean
  • function resetSolidTransformPluginState(): void
  • interface CreateSolidTransformPluginOptions
  • type ResolveImportPath = (specifier: string) => string | null

@opentui/solid/components#

Added

  • function extend<T extends ComponentCatalogue>(objects: T): void
  • function getComponentCatalogue(): ComponentCatalogue
  • index OpenTUIComponents[componentName: string]: RenderableConstructor
  • interface OpenTUIComponents
  • 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]>; }

@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): boolean
  • interface SolidRuntimePluginSupportOptions

@opentui/solid/runtime-plugin-support/configure#

Added

  • function ensureRuntimePluginSupport(options?: SolidRuntimePluginSupportOptions): boolean
  • interface SolidRuntimePluginSupportOptions

@opentui/three#

Added

  • class CLICanvas
  • class ExplodingSpriteEffect
  • class ExplosionManager
  • class InstanceManager
  • class MeshPool
  • class PhysicsExplodingSpriteEffect
  • class PhysicsExplosionManager
  • class PlanckPhysicsWorld implements PhysicsWorld
  • class PlanckRigidBody implements PhysicsRigidBody
  • class RapierPhysicsWorld implements PhysicsWorld
  • class RapierRigidBody implements PhysicsRigidBody
  • class SheetSprite extends Sprite
  • class SpriteAnimator
  • class SpriteParticleGenerator
  • class SpriteResource
  • class SpriteResourceManager
  • class SpriteUtils
  • class TextureUtils
  • class ThreeCliRenderer
  • class ThreeRenderable extends Renderable
  • class TiledSprite
  • const DEFAULT_EXPLOSION_PARAMETERS: ExplosionEffectParameters
  • const DEFAULT_PHYSICS_EXPLOSION_PARAMETERS: PhysicsExplosionEffectParameters
  • constructor 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 SuperSampleAlgorithm
  • enum SuperSampleType
  • interface AnimationDefinition
  • interface AnimationStateConfig
  • interface ExplosionCreationData
  • interface ExplosionEffectParameters
  • interface ExplosionHandle
  • interface InstanceManagerOptions
  • interface MeshPoolOptions
  • interface ParticleEffectParameters
  • interface PhysicsExplosionCreationData
  • interface PhysicsExplosionEffectParameters
  • interface PhysicsExplosionHandle
  • interface PhysicsSpriteRecreationData
  • interface ResourceConfig
  • interface SheetProperties
  • interface SpriteDefinition
  • interface SpriteRecreationData
  • interface ThreeCliRendererOptions
  • interface 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; }