@opentui/core 0.1.6 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/RGBA.d.ts ADDED
@@ -0,0 +1,24 @@
1
+ export declare class RGBA {
2
+ buffer: Float32Array;
3
+ constructor(buffer: Float32Array);
4
+ static fromArray(array: Float32Array): RGBA;
5
+ static fromValues(r: number, g: number, b: number, a?: number): RGBA;
6
+ static fromInts(r: number, g: number, b: number, a?: number): RGBA;
7
+ static fromHex(hex: string): RGBA;
8
+ toInts(): [number, number, number, number];
9
+ get r(): number;
10
+ set r(value: number);
11
+ get g(): number;
12
+ set g(value: number);
13
+ get b(): number;
14
+ set b(value: number);
15
+ get a(): number;
16
+ set a(value: number);
17
+ map<R>(fn: (value: number) => R): R[];
18
+ toString(): string;
19
+ }
20
+ export type ColorInput = string | RGBA;
21
+ export declare function hexToRgb(hex: string): RGBA;
22
+ export declare function rgbToHex(rgb: RGBA): string;
23
+ export declare function hsvToRgb(h: number, s: number, v: number): RGBA;
24
+ export declare function parseColor(color: ColorInput): RGBA;
@@ -1,5 +1,5 @@
1
1
  import { OptimizedBuffer } from "../buffer";
2
- import { RGBA } from "../types";
2
+ import { RGBA } from "./RGBA";
3
3
  export declare const fonts: {
4
4
  tiny: {
5
5
  name: string;
package/lib/border.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { ColorInput } from "../types";
1
+ import type { ColorInput } from "./RGBA";
2
2
  export interface BorderCharacters {
3
3
  topLeft: string;
4
4
  topRight: string;
@@ -1,4 +1,4 @@
1
- import type { RGBA } from "../types";
1
+ import { RGBA } from "./RGBA";
2
2
  import { StyledText } from "./styled-text";
3
3
  export interface HASTText {
4
4
  type: "text";
package/lib/index.d.ts CHANGED
@@ -3,3 +3,9 @@ export * from "./TrackedNode";
3
3
  export * from "./KeyHandler";
4
4
  export * from "./ascii.font";
5
5
  export * from "./hast-styled-text";
6
+ export * from "./RGBA";
7
+ export * from "./parse.keypress";
8
+ export * from "./styled-text";
9
+ export * from "./yoga.options";
10
+ export * from "./parse.mouse";
11
+ export * from "./selection";
@@ -1,5 +1,5 @@
1
1
  import type { TextChunk } from "../text-buffer";
2
- import type { ColorInput } from "../types";
2
+ import { type ColorInput } from "./RGBA";
3
3
  export type Color = ColorInput;
4
4
  export interface StyleAttrs {
5
5
  fg?: Color;
@@ -17,10 +17,11 @@ export declare class StyledText {
17
17
  private _plainText;
18
18
  constructor(chunks: TextChunk[]);
19
19
  toString(): string;
20
- private _chunksToPlainText;
21
- insert(chunk: TextChunk, index?: number): void;
22
- remove(chunk: TextChunk): void;
23
- replace(chunk: TextChunk, oldChunk: TextChunk): void;
20
+ private static _createInstance;
21
+ private static _chunksToPlainText;
22
+ insert(chunk: TextChunk, index?: number): StyledText;
23
+ remove(chunk: TextChunk): StyledText;
24
+ replace(chunk: TextChunk, oldChunk: TextChunk): StyledText;
24
25
  }
25
26
  export declare function stringToStyledText(content: string): StyledText;
26
27
  export type StylableInput = string | number | boolean | TextChunk;
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "main": "index.js",
5
5
  "types": "index.d.ts",
6
6
  "type": "module",
7
- "version": "0.1.6",
7
+ "version": "0.1.8",
8
8
  "description": "OpenTUI is a TypeScript library for building terminal user interfaces (TUIs)",
9
9
  "license": "MIT",
10
10
  "repository": {
@@ -30,20 +30,19 @@
30
30
  },
31
31
  "devDependencies": {
32
32
  "@types/bun": "latest",
33
- "@types/three": "^0.177.0",
34
- "commander": "^13.1.0",
35
- "prettier": "3.6.2"
33
+ "@types/three": "0.177.0",
34
+ "commander": "^13.1.0"
36
35
  },
37
36
  "optionalDependencies": {
38
37
  "@dimforge/rapier2d-simd-compat": "^0.17.3",
39
38
  "bun-webgpu": "0.1.3",
40
39
  "planck": "^1.4.2",
41
40
  "three": "0.177.0",
42
- "@opentui/core-darwin-x64": "0.1.6",
43
- "@opentui/core-darwin-arm64": "0.1.6",
44
- "@opentui/core-linux-x64": "0.1.6",
45
- "@opentui/core-linux-arm64": "0.1.6",
46
- "@opentui/core-win32-x64": "0.1.6",
47
- "@opentui/core-win32-arm64": "0.1.6"
41
+ "@opentui/core-darwin-x64": "0.1.8",
42
+ "@opentui/core-darwin-arm64": "0.1.8",
43
+ "@opentui/core-linux-x64": "0.1.8",
44
+ "@opentui/core-linux-arm64": "0.1.8",
45
+ "@opentui/core-win32-x64": "0.1.8",
46
+ "@opentui/core-win32-arm64": "0.1.8"
48
47
  }
49
48
  }
@@ -1,7 +1,8 @@
1
1
  import type { RenderableOptions } from "../Renderable";
2
- import { RGBA, type SelectionState } from "../types";
3
2
  import { type fonts } from "../lib/ascii.font";
3
+ import { RGBA } from "../lib/RGBA";
4
4
  import { FrameBufferRenderable } from "./FrameBuffer";
5
+ import type { SelectionState } from "../types";
5
6
  export interface ASCIIFontOptions extends RenderableOptions {
6
7
  text?: string;
7
8
  font?: "tiny" | "block" | "shade" | "slick";
@@ -1,8 +1,7 @@
1
1
  import { type RenderableOptions, Renderable } from "../Renderable";
2
2
  import type { OptimizedBuffer } from "../buffer";
3
- import { RGBA } from "../types";
3
+ import { RGBA, type ColorInput } from "../lib/RGBA";
4
4
  import { type BorderStyle, type BorderSides, type BorderCharacters, type BorderSidesConfig } from "../lib";
5
- import type { ColorInput } from "../types";
6
5
  export interface BoxOptions extends RenderableOptions {
7
6
  backgroundColor?: string | RGBA;
8
7
  borderStyle?: BorderStyle;
@@ -1,7 +1,7 @@
1
1
  import { Renderable, type RenderableOptions } from "../Renderable";
2
2
  import { OptimizedBuffer } from "../buffer";
3
3
  import type { ParsedKey } from "../lib/parse.keypress";
4
- import type { ColorInput } from "../types";
4
+ import { type ColorInput } from "../lib/RGBA";
5
5
  export interface InputRenderableOptions extends RenderableOptions {
6
6
  backgroundColor?: ColorInput;
7
7
  textColor?: ColorInput;
@@ -2,7 +2,7 @@ import { Renderable, type RenderableOptions } from "../Renderable";
2
2
  import { OptimizedBuffer } from "../buffer";
3
3
  import { fonts } from "../lib/ascii.font";
4
4
  import type { ParsedKey } from "../lib/parse.keypress";
5
- import type { ColorInput } from "../types";
5
+ import { type ColorInput } from "../lib/RGBA";
6
6
  export interface SelectOption {
7
7
  name: string;
8
8
  description: string;
@@ -1,6 +1,6 @@
1
1
  import { Renderable, type RenderableOptions } from "../Renderable";
2
2
  import { OptimizedBuffer } from "../buffer";
3
- import type { ColorInput } from "../types";
3
+ import { type ColorInput } from "../lib/RGBA";
4
4
  import type { ParsedKey } from "../lib/parse.keypress";
5
5
  export interface TabSelectOption {
6
6
  name: string;
@@ -1,6 +1,7 @@
1
1
  import { Renderable, type RenderableOptions } from "../Renderable";
2
2
  import { StyledText } from "../lib/styled-text";
3
- import { RGBA, type SelectionState } from "../types";
3
+ import { RGBA } from "../lib/RGBA";
4
+ import type { SelectionState } from "../types";
4
5
  import type { OptimizedBuffer } from "../buffer";
5
6
  export interface TextOptions extends RenderableOptions {
6
7
  content?: StyledText | string;
package/renderer.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { Renderable, RootRenderable } from "./Renderable";
2
- import { type ColorInput, type CursorStyle, DebugOverlayCorner, RGBA } from "./types";
2
+ import { type CursorStyle, DebugOverlayCorner } from "./types";
3
+ import { RGBA, type ColorInput } from "./lib/RGBA";
3
4
  import type { Pointer } from "bun:ffi";
4
5
  import { OptimizedBuffer } from "./buffer";
5
6
  import { type RenderLib } from "./zig";
@@ -67,7 +68,6 @@ export declare class CliRenderer extends EventEmitter {
67
68
  private stdout;
68
69
  private exitOnCtrlC;
69
70
  private isDestroyed;
70
- private isShuttingDown;
71
71
  nextRenderBuffer: OptimizedBuffer;
72
72
  currentRenderBuffer: OptimizedBuffer;
73
73
  private _isRunning;
@@ -95,6 +95,8 @@ export declare class CliRenderer extends EventEmitter {
95
95
  private targetFrameTime;
96
96
  private immediateRerenderRequested;
97
97
  private updateScheduled;
98
+ private liveRequestCounter;
99
+ private controlState;
98
100
  private frameCallbacks;
99
101
  private renderStats;
100
102
  debugOverlay: {
@@ -139,6 +141,8 @@ export declare class CliRenderer extends EventEmitter {
139
141
  get useMouse(): boolean;
140
142
  set useMouse(useMouse: boolean);
141
143
  get experimental_splitHeight(): number;
144
+ get liveRequestCount(): number;
145
+ get currentControlState(): string;
142
146
  set experimental_splitHeight(splitHeight: number);
143
147
  private interceptStdoutWrite;
144
148
  private disableStdoutInterception;
@@ -146,7 +150,6 @@ export declare class CliRenderer extends EventEmitter {
146
150
  private enableMouse;
147
151
  private disableMouse;
148
152
  set useThread(useThread: boolean);
149
- setTerminalSize(width: number, height: number): void;
150
153
  private setupTerminal;
151
154
  private handleMouseData;
152
155
  private takeMemorySnapshot;
@@ -177,9 +180,14 @@ export declare class CliRenderer extends EventEmitter {
177
180
  setFrameCallback(callback: (deltaTime: number) => Promise<void>): void;
178
181
  removeFrameCallback(callback: (deltaTime: number) => Promise<void>): void;
179
182
  clearFrameCallbacks(): void;
183
+ requestLive(): void;
184
+ dropLive(): void;
180
185
  start(): void;
186
+ private internalStart;
181
187
  pause(): void;
188
+ private internalPause;
182
189
  stop(): void;
190
+ private internalStop;
183
191
  destroy(): void;
184
192
  private startRenderLoop;
185
193
  private loop;
package/text-buffer.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { StyledText } from "./lib/styled-text";
2
- import { RGBA } from "./types";
2
+ import { RGBA } from "./lib/RGBA";
3
3
  import { type RenderLib } from "./zig";
4
4
  import { type Pointer } from "bun:ffi";
5
5
  export interface TextChunk {
package/types.d.ts CHANGED
@@ -1,23 +1,3 @@
1
- export declare class RGBA {
2
- buffer: Float32Array;
3
- constructor(buffer: Float32Array);
4
- static fromArray(array: Float32Array): RGBA;
5
- static fromValues(r: number, g: number, b: number, a?: number): RGBA;
6
- static fromInts(r: number, g: number, b: number, a?: number): RGBA;
7
- static fromHex(hex: string): RGBA;
8
- toInts(): [number, number, number, number];
9
- get r(): number;
10
- set r(value: number);
11
- get g(): number;
12
- set g(value: number);
13
- get b(): number;
14
- set b(value: number);
15
- get a(): number;
16
- set a(value: number);
17
- map<R>(fn: (value: number) => R): R[];
18
- toString(): string;
19
- }
20
- export type ColorInput = string | RGBA;
21
1
  export declare const TextAttributes: {
22
2
  NONE: number;
23
3
  BOLD: number;
package/utils.d.ts CHANGED
@@ -1,8 +1,3 @@
1
- import { type ColorInput, RGBA } from "./types";
2
- export declare function hexToRgb(hex: string): RGBA;
3
- export declare function rgbToHex(rgb: RGBA): string;
4
- export declare function hsvToRgb(h: number, s: number, v: number): RGBA;
5
- export declare function parseColor(color: ColorInput): RGBA;
6
1
  export declare function createTextAttributes({ bold, italic, underline, dim, blink, inverse, hidden, strikethrough, }?: {
7
2
  bold?: boolean;
8
3
  italic?: boolean;
package/zig.d.ts CHANGED
@@ -1,11 +1,11 @@
1
1
  import { type Pointer } from "bun:ffi";
2
2
  import type { CursorStyle, DebugOverlayCorner } from "./types";
3
- import { RGBA } from "./types";
3
+ import { RGBA } from "./lib/RGBA";
4
4
  import { OptimizedBuffer } from "./buffer";
5
5
  import { TextBuffer } from "./text-buffer";
6
6
  export interface RenderLib {
7
7
  createRenderer: (width: number, height: number) => Pointer | null;
8
- destroyRenderer: (renderer: Pointer) => void;
8
+ destroyRenderer: (renderer: Pointer, useAlternateScreen: boolean, splitHeight: number) => void;
9
9
  setUseThread: (renderer: Pointer, useThread: boolean) => void;
10
10
  setBackgroundColor: (renderer: Pointer, color: RGBA) => void;
11
11
  setRenderOffset: (renderer: Pointer, offset: number) => void;
@@ -49,6 +49,8 @@ export interface RenderLib {
49
49
  dumpHitGrid: (renderer: Pointer) => void;
50
50
  dumpBuffers: (renderer: Pointer, timestamp?: number) => void;
51
51
  dumpStdoutBuffer: (renderer: Pointer, timestamp?: number) => void;
52
+ enableMouse: (renderer: Pointer, enableMovement: boolean) => void;
53
+ disableMouse: (renderer: Pointer) => void;
52
54
  createTextBuffer: (capacity: number) => TextBuffer;
53
55
  destroyTextBuffer: (buffer: Pointer) => void;
54
56
  textBufferGetCharPtr: (buffer: Pointer) => Pointer;