@opentui/core 0.0.0-20250918-7ff2578a → 0.0.0-20250919-6683564e

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/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.0.0-20250918-7ff2578a",
7
+ "version": "0.0.0-20250919-6683564e",
8
8
  "description": "OpenTUI is a TypeScript library for building terminal user interfaces (TUIs)",
9
9
  "license": "MIT",
10
10
  "repository": {
@@ -29,25 +29,22 @@
29
29
  "types": "./testing.d.ts"
30
30
  }
31
31
  },
32
- "dependencies": {
33
- "jimp": "1.6.0",
34
- "yoga-layout": "3.2.1"
35
- },
36
32
  "devDependencies": {
37
33
  "@types/bun": "latest",
38
34
  "@types/three": "0.177.0",
39
- "commander": "^13.1.0"
35
+ "commander": "^13.1.0",
36
+ "typescript": "^5"
40
37
  },
41
38
  "optionalDependencies": {
42
39
  "@dimforge/rapier2d-simd-compat": "^0.17.3",
43
40
  "bun-webgpu": "0.1.3",
44
41
  "planck": "^1.4.2",
45
42
  "three": "0.177.0",
46
- "@opentui/core-darwin-x64": "0.0.0-20250918-7ff2578a",
47
- "@opentui/core-darwin-arm64": "0.0.0-20250918-7ff2578a",
48
- "@opentui/core-linux-x64": "0.0.0-20250918-7ff2578a",
49
- "@opentui/core-linux-arm64": "0.0.0-20250918-7ff2578a",
50
- "@opentui/core-win32-x64": "0.0.0-20250918-7ff2578a",
51
- "@opentui/core-win32-arm64": "0.0.0-20250918-7ff2578a"
43
+ "@opentui/core-darwin-x64": "0.0.0-20250919-6683564e",
44
+ "@opentui/core-darwin-arm64": "0.0.0-20250919-6683564e",
45
+ "@opentui/core-linux-x64": "0.0.0-20250919-6683564e",
46
+ "@opentui/core-linux-arm64": "0.0.0-20250919-6683564e",
47
+ "@opentui/core-win32-x64": "0.0.0-20250919-6683564e",
48
+ "@opentui/core-win32-arm64": "0.0.0-20250919-6683564e"
52
49
  }
53
50
  }
@@ -20,6 +20,8 @@ export interface ScrollBoxOptions extends BoxOptions<ScrollBoxRenderable> {
20
20
  horizontalScrollbarOptions?: Omit<ScrollBarOptions, "orientation">;
21
21
  stickyScroll?: boolean;
22
22
  stickyStart?: "bottom" | "top" | "left" | "right";
23
+ scrollX?: boolean;
24
+ scrollY?: boolean;
23
25
  }
24
26
  export declare class ScrollBoxRenderable extends BoxRenderable {
25
27
  static idCounter: number;
@@ -61,7 +63,7 @@ export declare class ScrollBoxRenderable extends BoxRenderable {
61
63
  get scrollHeight(): number;
62
64
  private updateStickyState;
63
65
  private applyStickyStart;
64
- constructor(ctx: RenderContext, { wrapperOptions, viewportOptions, contentOptions, rootOptions, scrollbarOptions, verticalScrollbarOptions, horizontalScrollbarOptions, stickyScroll, stickyStart, ...options }: ScrollBoxOptions);
66
+ constructor(ctx: RenderContext, { wrapperOptions, viewportOptions, contentOptions, rootOptions, scrollbarOptions, verticalScrollbarOptions, horizontalScrollbarOptions, stickyScroll, stickyStart, scrollX, scrollY, ...options }: ScrollBoxOptions);
65
67
  protected onUpdate(deltaTime: number): void;
66
68
  scrollBy(delta: number | {
67
69
  x: number;
@@ -14,6 +14,8 @@ export interface TextOptions extends RenderableOptions<TextRenderable> {
14
14
  selectionFg?: string | RGBA;
15
15
  selectable?: boolean;
16
16
  attributes?: number;
17
+ wrap?: boolean;
18
+ wrapMode?: "char" | "word";
17
19
  }
18
20
  export declare class TextRenderable extends Renderable {
19
21
  selectable: boolean;
@@ -23,6 +25,8 @@ export declare class TextRenderable extends Renderable {
23
25
  private _defaultAttributes;
24
26
  private _selectionBg;
25
27
  private _selectionFg;
28
+ private _wrap;
29
+ private _wrapMode;
26
30
  private lastLocalSelection;
27
31
  private textBuffer;
28
32
  private _lineInfo;
@@ -35,6 +39,8 @@ export declare class TextRenderable extends Renderable {
35
39
  selectionFg: undefined;
36
40
  selectable: true;
37
41
  attributes: number;
42
+ wrap: true;
43
+ wrapMode: "char" | "word";
38
44
  };
39
45
  constructor(ctx: RenderContext, options: TextOptions);
40
46
  private updateTextBuffer;
@@ -55,6 +61,10 @@ export declare class TextRenderable extends Renderable {
55
61
  set bg(value: RGBA | string | undefined);
56
62
  get attributes(): number;
57
63
  set attributes(value: number);
64
+ get wrap(): boolean;
65
+ set wrap(value: boolean);
66
+ get wrapMode(): "char" | "word";
67
+ set wrapMode(value: "char" | "word");
58
68
  protected onResize(width: number, height: number): void;
59
69
  private updateLocalSelection;
60
70
  private updateTextInfo;
package/renderer.d.ts CHANGED
@@ -80,6 +80,7 @@ export declare class CliRenderer extends EventEmitter implements RenderContext {
80
80
  currentRenderBuffer: OptimizedBuffer;
81
81
  private _isRunning;
82
82
  private targetFps;
83
+ private automaticMemorySnapshot;
83
84
  private memorySnapshotInterval;
84
85
  private memorySnapshotTimer;
85
86
  private lastMemorySnapshot;
@@ -182,6 +183,7 @@ export declare class CliRenderer extends EventEmitter implements RenderContext {
182
183
  private handleMouseData;
183
184
  private takeMemorySnapshot;
184
185
  private startMemorySnapshotTimer;
186
+ private stopMemorySnapshotTimer;
185
187
  setMemorySnapshotInterval(interval: number): void;
186
188
  private handleResize;
187
189
  private queryPixelResolution;
package/testing.js CHANGED
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  CliRenderer,
4
4
  resolveRenderLib
5
- } from "./index-9skjt1d2.js";
5
+ } from "./index-0yx9rnxg.js";
6
6
 
7
7
  // src/testing/mock-keys.ts
8
8
  var KeyCodes = {
package/text-buffer.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { StyledText } from "./lib/styled-text";
2
2
  import { RGBA } from "./lib/RGBA";
3
- import { type RenderLib } from "./zig";
3
+ import { type LineInfo, type RenderLib } from "./zig";
4
4
  import { type Pointer } from "bun:ffi";
5
5
  import { type WidthMethod } from "./types";
6
6
  export interface TextChunk {
@@ -14,11 +14,10 @@ export declare class TextBuffer {
14
14
  private lib;
15
15
  private bufferPtr;
16
16
  private _length;
17
- private _capacity;
18
17
  private _lineInfo?;
19
18
  private _destroyed;
20
- constructor(lib: RenderLib, ptr: Pointer, capacity: number);
21
- static create(capacity: number | undefined, widthMethod: WidthMethod): TextBuffer;
19
+ constructor(lib: RenderLib, ptr: Pointer);
20
+ static create(widthMethod: WidthMethod): TextBuffer;
22
21
  private guard;
23
22
  setStyledText(text: StyledText): void;
24
23
  setDefaultFg(fg: RGBA | null): void;
@@ -26,14 +25,10 @@ export declare class TextBuffer {
26
25
  setDefaultAttributes(attributes: number | null): void;
27
26
  resetDefaults(): void;
28
27
  get length(): number;
29
- get capacity(): number;
30
28
  get ptr(): Pointer;
31
29
  getSelectedText(): string;
32
30
  getPlainText(): string;
33
- get lineInfo(): {
34
- lineStarts: number[];
35
- lineWidths: number[];
36
- };
31
+ get lineInfo(): LineInfo;
37
32
  setSelection(start: number, end: number, bgColor?: RGBA, fgColor?: RGBA): void;
38
33
  resetSelection(): void;
39
34
  setLocalSelection(anchorX: number, anchorY: number, focusX: number, focusY: number, bgColor?: RGBA, fgColor?: RGBA): boolean;
@@ -49,5 +44,7 @@ export declare class TextBuffer {
49
44
  replaceChunkGroup(index: number, text: string, fg?: RGBA, bg?: RGBA, attributes?: number): void;
50
45
  replaceEncodedChunkGroup(index: number, textBytes: Uint8Array, fg?: RGBA, bg?: RGBA, attributes?: number): void;
51
46
  get chunkGroupCount(): number;
47
+ setWrapWidth(width: number | null): void;
48
+ setWrapMode(mode: "char" | "word"): void;
52
49
  destroy(): void;
53
50
  }
package/zig.d.ts CHANGED
@@ -9,6 +9,11 @@ export declare enum LogLevel {
9
9
  Info = 2,
10
10
  Debug = 3
11
11
  }
12
+ export interface LineInfo {
13
+ lineStarts: number[];
14
+ lineWidths: number[];
15
+ maxLineWidth: number;
16
+ }
12
17
  export interface RenderLib {
13
18
  createRenderer: (width: number, height: number, options?: {
14
19
  testing: boolean;
@@ -62,11 +67,9 @@ export interface RenderLib {
62
67
  enableKittyKeyboard: (renderer: Pointer, flags: number) => void;
63
68
  disableKittyKeyboard: (renderer: Pointer) => void;
64
69
  setupTerminal: (renderer: Pointer, useAlternateScreen: boolean) => void;
65
- createTextBuffer: (capacity: number, widthMethod: WidthMethod) => TextBuffer;
70
+ createTextBuffer: (widthMethod: WidthMethod) => TextBuffer;
66
71
  destroyTextBuffer: (buffer: Pointer) => void;
67
- textBufferGetCharPtr: (buffer: Pointer) => Pointer;
68
72
  textBufferGetLength: (buffer: Pointer) => number;
69
- textBufferResize: (buffer: Pointer, newLength: number) => void;
70
73
  textBufferReset: (buffer: Pointer) => void;
71
74
  textBufferSetSelection: (buffer: Pointer, start: number, end: number, bgColor: RGBA | null, fgColor: RGBA | null) => void;
72
75
  textBufferResetSelection: (buffer: Pointer) => void;
@@ -77,14 +80,10 @@ export interface RenderLib {
77
80
  textBufferSetDefaultAttributes: (buffer: Pointer, attributes: number | null) => void;
78
81
  textBufferResetDefaults: (buffer: Pointer) => void;
79
82
  textBufferWriteChunk: (buffer: Pointer, textBytes: Uint8Array, fg: RGBA | null, bg: RGBA | null, attributes: number | null) => number;
80
- textBufferGetCapacity: (buffer: Pointer) => number;
81
83
  textBufferFinalizeLineInfo: (buffer: Pointer) => void;
82
84
  textBufferGetLineCount: (buffer: Pointer) => number;
83
85
  textBufferGetLineInfoDirect: (buffer: Pointer, lineStartsPtr: Pointer, lineWidthsPtr: Pointer) => void;
84
- textBufferGetLineInfo: (buffer: Pointer) => {
85
- lineStarts: number[];
86
- lineWidths: number[];
87
- };
86
+ textBufferGetLineInfo: (buffer: Pointer) => LineInfo;
88
87
  textBufferGetSelection: (buffer: Pointer) => {
89
88
  start: number;
90
89
  end: number;
@@ -106,6 +105,8 @@ export interface RenderLib {
106
105
  textBufferRemoveChunkGroup: (buffer: Pointer, index: number) => number;
107
106
  textBufferReplaceChunkGroup: (buffer: Pointer, index: number, textBytes: Uint8Array, fg: RGBA | null, bg: RGBA | null, attributes: number | null) => number;
108
107
  textBufferGetChunkGroupCount: (buffer: Pointer) => number;
108
+ textBufferSetWrapWidth: (buffer: Pointer, width: number) => void;
109
+ textBufferSetWrapMode: (buffer: Pointer, mode: "char" | "word") => void;
109
110
  getArenaAllocatedBytes: () => number;
110
111
  getTerminalCapabilities: (renderer: Pointer) => any;
111
112
  processCapabilityResponse: (renderer: Pointer, response: string) => void;