@opentui/core 0.1.79 → 0.1.80
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/3d.js +1 -1
- package/NativeSpanFeed.d.ts +41 -0
- package/README.md +4 -0
- package/{index-zrvzvh6r.js → index-vnvba6q9.js} +512 -209
- package/{index-zrvzvh6r.js.map → index-vnvba6q9.js.map} +8 -8
- package/index.d.ts +1 -0
- package/index.js +310 -9
- package/index.js.map +8 -7
- package/lib/parse.mouse.d.ts +7 -0
- package/package.json +8 -8
- package/renderables/Diff.d.ts +7 -0
- package/renderables/LineNumberRenderable.d.ts +2 -0
- package/renderer.d.ts +6 -3
- package/testing.js +1 -1
- package/types.d.ts +7 -3
- package/zig-structs.d.ts +79 -0
- package/zig.d.ts +20 -2
package/lib/parse.mouse.d.ts
CHANGED
|
@@ -19,5 +19,12 @@ export declare class MouseParser {
|
|
|
19
19
|
private mouseButtonsPressed;
|
|
20
20
|
private static readonly SCROLL_DIRECTIONS;
|
|
21
21
|
reset(): void;
|
|
22
|
+
private decodeInput;
|
|
22
23
|
parseMouseEvent(data: Buffer): RawMouseEvent | null;
|
|
24
|
+
parseAllMouseEvents(data: Buffer): RawMouseEvent[];
|
|
25
|
+
private parseMouseSequenceAt;
|
|
26
|
+
private parseSgrSequence;
|
|
27
|
+
private parseBasicSequence;
|
|
28
|
+
private decodeSgrEvent;
|
|
29
|
+
private decodeBasicEvent;
|
|
23
30
|
}
|
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.
|
|
7
|
+
"version": "0.1.80",
|
|
8
8
|
"description": "OpenTUI is a TypeScript library for building terminal user interfaces (TUIs)",
|
|
9
9
|
"license": "MIT",
|
|
10
10
|
"repository": {
|
|
@@ -54,14 +54,14 @@
|
|
|
54
54
|
},
|
|
55
55
|
"optionalDependencies": {
|
|
56
56
|
"@dimforge/rapier2d-simd-compat": "^0.17.3",
|
|
57
|
-
"bun-webgpu": "0.1.
|
|
57
|
+
"bun-webgpu": "0.1.5",
|
|
58
58
|
"planck": "^1.4.2",
|
|
59
59
|
"three": "0.177.0",
|
|
60
|
-
"@opentui/core-darwin-x64": "0.1.
|
|
61
|
-
"@opentui/core-darwin-arm64": "0.1.
|
|
62
|
-
"@opentui/core-linux-x64": "0.1.
|
|
63
|
-
"@opentui/core-linux-arm64": "0.1.
|
|
64
|
-
"@opentui/core-win32-x64": "0.1.
|
|
65
|
-
"@opentui/core-win32-arm64": "0.1.
|
|
60
|
+
"@opentui/core-darwin-x64": "0.1.80",
|
|
61
|
+
"@opentui/core-darwin-arm64": "0.1.80",
|
|
62
|
+
"@opentui/core-linux-x64": "0.1.80",
|
|
63
|
+
"@opentui/core-linux-arm64": "0.1.80",
|
|
64
|
+
"@opentui/core-win32-x64": "0.1.80",
|
|
65
|
+
"@opentui/core-win32-arm64": "0.1.80"
|
|
66
66
|
}
|
|
67
67
|
}
|
package/renderables/Diff.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Renderable, type RenderableOptions } from "../Renderable";
|
|
2
2
|
import type { RenderContext } from "../types";
|
|
3
|
+
import { type LineColorConfig } from "./LineNumberRenderable";
|
|
3
4
|
import { RGBA } from "../lib/RGBA";
|
|
4
5
|
import { SyntaxStyle } from "../syntax-style";
|
|
5
6
|
import type { TreeSitterClient } from "../lib/tree-sitter";
|
|
@@ -125,4 +126,10 @@ export declare class DiffRenderable extends Renderable {
|
|
|
125
126
|
set conceal(value: boolean);
|
|
126
127
|
get fg(): RGBA | undefined;
|
|
127
128
|
set fg(value: string | RGBA | undefined);
|
|
129
|
+
setLineColor(line: number, color: string | RGBA | LineColorConfig): void;
|
|
130
|
+
clearLineColor(line: number): void;
|
|
131
|
+
setLineColors(lineColors: Map<number, string | RGBA | LineColorConfig>): void;
|
|
132
|
+
clearAllLineColors(): void;
|
|
133
|
+
highlightLines(startLine: number, endLine: number, color: string | RGBA | LineColorConfig): void;
|
|
134
|
+
clearHighlightLines(startLine: number, endLine: number): void;
|
|
128
135
|
}
|
|
@@ -69,4 +69,6 @@ export declare class LineNumberRenderable extends Renderable {
|
|
|
69
69
|
getHideLineNumbers(): Set<number>;
|
|
70
70
|
setLineNumbers(lineNumbers: Map<number, number>): void;
|
|
71
71
|
getLineNumbers(): Map<number, number>;
|
|
72
|
+
highlightLines(startLine: number, endLine: number, color: string | RGBA | LineColorConfig): void;
|
|
73
|
+
clearHighlightLines(startLine: number, endLine: number): void;
|
|
72
74
|
}
|
package/renderer.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Renderable, RootRenderable } from "./Renderable";
|
|
2
|
-
import { type
|
|
2
|
+
import { DebugOverlayCorner, type CursorStyleOptions, type MousePointerStyle, type RenderContext, type ThemeMode, type WidthMethod } from "./types";
|
|
3
3
|
import { RGBA, type ColorInput } from "./lib/RGBA";
|
|
4
4
|
import type { Pointer } from "bun:ffi";
|
|
5
5
|
import { OptimizedBuffer } from "./buffer";
|
|
@@ -194,6 +194,7 @@ export declare class CliRenderer extends EventEmitter implements RenderContext {
|
|
|
194
194
|
private _latestPointer;
|
|
195
195
|
private _hasPointer;
|
|
196
196
|
private _lastPointerModifiers;
|
|
197
|
+
private _currentMousePointerStyle;
|
|
197
198
|
private _currentFocusedRenderable;
|
|
198
199
|
private lifecyclePasses;
|
|
199
200
|
private _openConsoleOnError;
|
|
@@ -276,12 +277,14 @@ export declare class CliRenderer extends EventEmitter implements RenderContext {
|
|
|
276
277
|
private setupInput;
|
|
277
278
|
private dispatchMouseEvent;
|
|
278
279
|
private handleMouseData;
|
|
280
|
+
private processSingleMouseEvent;
|
|
279
281
|
/**
|
|
280
282
|
* Recheck hover state after hit grid changes.
|
|
281
283
|
* Called after render when native code detects the hit grid changed.
|
|
282
284
|
* Fires out/over events if the element under the cursor changed.
|
|
283
285
|
*/
|
|
284
286
|
private recheckHoverState;
|
|
287
|
+
setMousePointer(style: MousePointerStyle): void;
|
|
285
288
|
hitTest(x: number, y: number): number;
|
|
286
289
|
private takeMemorySnapshot;
|
|
287
290
|
private startMemorySnapshotTimer;
|
|
@@ -304,10 +307,10 @@ export declare class CliRenderer extends EventEmitter implements RenderContext {
|
|
|
304
307
|
dumpBuffers(timestamp?: number): void;
|
|
305
308
|
dumpStdoutBuffer(timestamp?: number): void;
|
|
306
309
|
static setCursorPosition(renderer: CliRenderer, x: number, y: number, visible?: boolean): void;
|
|
307
|
-
static setCursorStyle(renderer: CliRenderer,
|
|
310
|
+
static setCursorStyle(renderer: CliRenderer, options: CursorStyleOptions): void;
|
|
308
311
|
static setCursorColor(renderer: CliRenderer, color: RGBA): void;
|
|
309
312
|
setCursorPosition(x: number, y: number, visible?: boolean): void;
|
|
310
|
-
setCursorStyle(
|
|
313
|
+
setCursorStyle(options: CursorStyleOptions): void;
|
|
311
314
|
setCursorColor(color: RGBA): void;
|
|
312
315
|
getCursorState(): import("./zig").CursorState;
|
|
313
316
|
addPostProcessFn(processFn: (buffer: OptimizedBuffer, deltaTime: number) => void): void;
|
package/testing.js
CHANGED
package/types.d.ts
CHANGED
|
@@ -23,9 +23,12 @@ export declare const ATTRIBUTE_BASE_MASK = 255;
|
|
|
23
23
|
export declare function getBaseAttributes(attr: number): number;
|
|
24
24
|
export type ThemeMode = "dark" | "light";
|
|
25
25
|
export type CursorStyle = "block" | "line" | "underline";
|
|
26
|
+
export type MousePointerStyle = "default" | "pointer" | "text" | "crosshair" | "move" | "not-allowed";
|
|
26
27
|
export interface CursorStyleOptions {
|
|
27
|
-
style
|
|
28
|
-
blinking
|
|
28
|
+
style?: CursorStyle;
|
|
29
|
+
blinking?: boolean;
|
|
30
|
+
color?: RGBA;
|
|
31
|
+
cursor?: MousePointerStyle;
|
|
29
32
|
}
|
|
30
33
|
export declare enum DebugOverlayCorner {
|
|
31
34
|
topLeft = 0,
|
|
@@ -55,8 +58,9 @@ export interface RenderContext extends EventEmitter {
|
|
|
55
58
|
height: number;
|
|
56
59
|
requestRender: () => void;
|
|
57
60
|
setCursorPosition: (x: number, y: number, visible: boolean) => void;
|
|
58
|
-
setCursorStyle: (
|
|
61
|
+
setCursorStyle: (options: CursorStyleOptions) => void;
|
|
59
62
|
setCursorColor: (color: RGBA) => void;
|
|
63
|
+
setMousePointer: (shape: MousePointerStyle) => void;
|
|
60
64
|
widthMethod: WidthMethod;
|
|
61
65
|
capabilities: any | null;
|
|
62
66
|
requestLive: () => void;
|
package/zig-structs.d.ts
CHANGED
|
@@ -40,3 +40,82 @@ export declare const LineInfoStruct: import("bun-ffi-structs").DefineStructRetur
|
|
|
40
40
|
}], readonly ["maxWidth", "u32"]], {}>;
|
|
41
41
|
export declare const MeasureResultStruct: import("bun-ffi-structs").DefineStructReturnType<[readonly ["lineCount", "u32"], readonly ["maxWidth", "u32"]], {}>;
|
|
42
42
|
export declare const CursorStateStruct: import("bun-ffi-structs").DefineStructReturnType<[readonly ["x", "u32"], readonly ["y", "u32"], readonly ["visible", "bool_u8"], readonly ["style", "u8"], readonly ["blinking", "bool_u8"], readonly ["r", "f32"], readonly ["g", "f32"], readonly ["b", "f32"], readonly ["a", "f32"]], {}>;
|
|
43
|
+
export declare const CursorStyleOptionsStruct: import("bun-ffi-structs").DefineStructReturnType<[readonly ["style", "u8", {
|
|
44
|
+
readonly default: 255;
|
|
45
|
+
}], readonly ["blinking", "u8", {
|
|
46
|
+
readonly default: 255;
|
|
47
|
+
}], readonly ["color", "pointer", {
|
|
48
|
+
readonly optional: true;
|
|
49
|
+
readonly packTransform: (rgba?: RGBA) => Pointer | null;
|
|
50
|
+
readonly unpackTransform: (ptr?: Pointer) => RGBA | undefined;
|
|
51
|
+
}], readonly ["cursor", "u8", {
|
|
52
|
+
readonly default: 255;
|
|
53
|
+
}]], {}>;
|
|
54
|
+
export type GrowthPolicy = "grow" | "block";
|
|
55
|
+
export type NativeSpanFeedOptions = {
|
|
56
|
+
chunkSize?: number;
|
|
57
|
+
initialChunks?: number;
|
|
58
|
+
maxBytes?: bigint;
|
|
59
|
+
growthPolicy?: GrowthPolicy;
|
|
60
|
+
autoCommitOnFull?: boolean;
|
|
61
|
+
spanQueueCapacity?: number;
|
|
62
|
+
};
|
|
63
|
+
export type NativeSpanFeedStats = {
|
|
64
|
+
bytesWritten: bigint;
|
|
65
|
+
spansCommitted: bigint;
|
|
66
|
+
chunks: number;
|
|
67
|
+
pendingSpans: number;
|
|
68
|
+
};
|
|
69
|
+
export type SpanInfo = {
|
|
70
|
+
chunkPtr: Pointer;
|
|
71
|
+
offset: number;
|
|
72
|
+
len: number;
|
|
73
|
+
chunkIndex: number;
|
|
74
|
+
};
|
|
75
|
+
export type ReserveInfo = {
|
|
76
|
+
ptr: Pointer;
|
|
77
|
+
len: number;
|
|
78
|
+
};
|
|
79
|
+
export declare const NativeSpanFeedOptionsStruct: import("bun-ffi-structs").DefineStructReturnType<[readonly ["chunkSize", "u32", {
|
|
80
|
+
readonly default: number;
|
|
81
|
+
}], readonly ["initialChunks", "u32", {
|
|
82
|
+
readonly default: 2;
|
|
83
|
+
}], readonly ["maxBytes", "u64", {
|
|
84
|
+
readonly default: 0n;
|
|
85
|
+
}], readonly ["growthPolicy", import("bun-ffi-structs").EnumDef<{
|
|
86
|
+
grow: number;
|
|
87
|
+
block: number;
|
|
88
|
+
}>, {
|
|
89
|
+
readonly default: "grow";
|
|
90
|
+
}], readonly ["autoCommitOnFull", "bool_u8", {
|
|
91
|
+
readonly default: true;
|
|
92
|
+
}], readonly ["spanQueueCapacity", "u32", {
|
|
93
|
+
readonly default: 0;
|
|
94
|
+
}]], {}>;
|
|
95
|
+
export declare const NativeSpanFeedStatsStruct: import("bun-ffi-structs").DefineStructReturnType<[readonly ["bytesWritten", "u64"], readonly ["spansCommitted", "u64"], readonly ["chunks", "u32"], readonly ["pendingSpans", "u32"]], {}>;
|
|
96
|
+
export declare const SpanInfoStruct: import("bun-ffi-structs").DefineStructReturnType<[readonly ["chunkPtr", "pointer"], readonly ["offset", "u32"], readonly ["len", "u32"], readonly ["chunkIndex", "u32"], readonly ["reserved", "u32", {
|
|
97
|
+
readonly default: 0;
|
|
98
|
+
}]], {
|
|
99
|
+
readonly reduceValue: (value: {
|
|
100
|
+
chunkPtr: Pointer;
|
|
101
|
+
offset: number;
|
|
102
|
+
len: number;
|
|
103
|
+
chunkIndex: number;
|
|
104
|
+
}) => {
|
|
105
|
+
chunkPtr: Pointer;
|
|
106
|
+
offset: number;
|
|
107
|
+
len: number;
|
|
108
|
+
chunkIndex: number;
|
|
109
|
+
};
|
|
110
|
+
}>;
|
|
111
|
+
export declare const ReserveInfoStruct: import("bun-ffi-structs").DefineStructReturnType<[readonly ["ptr", "pointer"], readonly ["len", "u32"], readonly ["reserved", "u32", {
|
|
112
|
+
readonly default: 0;
|
|
113
|
+
}]], {
|
|
114
|
+
readonly reduceValue: (value: {
|
|
115
|
+
ptr: Pointer;
|
|
116
|
+
len: number;
|
|
117
|
+
}) => {
|
|
118
|
+
ptr: Pointer;
|
|
119
|
+
len: number;
|
|
120
|
+
};
|
|
121
|
+
}>;
|
package/zig.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { type Pointer } from "bun:ffi";
|
|
2
|
-
import { type CursorStyle, type DebugOverlayCorner, type WidthMethod, type Highlight, type LineInfo } from "./types";
|
|
2
|
+
import { type CursorStyle, type CursorStyleOptions, type DebugOverlayCorner, type WidthMethod, type Highlight, type LineInfo } from "./types";
|
|
3
3
|
export type { LineInfo };
|
|
4
4
|
import { RGBA } from "./lib/RGBA";
|
|
5
5
|
import { OptimizedBuffer } from "./buffer";
|
|
6
6
|
import { TextBuffer } from "./text-buffer";
|
|
7
|
+
import type { NativeSpanFeedOptions, NativeSpanFeedStats, ReserveInfo } from "./zig-structs";
|
|
7
8
|
export declare enum LogLevel {
|
|
8
9
|
Error = 0,
|
|
9
10
|
Warn = 1,
|
|
@@ -36,6 +37,7 @@ export interface CursorState {
|
|
|
36
37
|
blinking: boolean;
|
|
37
38
|
color: RGBA;
|
|
38
39
|
}
|
|
40
|
+
export type NativeSpanFeedEventHandler = (eventId: number, arg0: Pointer, arg1: number | bigint) => void;
|
|
39
41
|
export interface RenderLib {
|
|
40
42
|
createRenderer: (width: number, height: number, options?: {
|
|
41
43
|
testing?: boolean;
|
|
@@ -77,9 +79,9 @@ export interface RenderLib {
|
|
|
77
79
|
bufferResize: (buffer: Pointer, width: number, height: number) => void;
|
|
78
80
|
resizeRenderer: (renderer: Pointer, width: number, height: number) => void;
|
|
79
81
|
setCursorPosition: (renderer: Pointer, x: number, y: number, visible: boolean) => void;
|
|
80
|
-
setCursorStyle: (renderer: Pointer, style: CursorStyle, blinking: boolean) => void;
|
|
81
82
|
setCursorColor: (renderer: Pointer, color: RGBA) => void;
|
|
82
83
|
getCursorState: (renderer: Pointer) => CursorState;
|
|
84
|
+
setCursorStyleOptions: (renderer: Pointer, options: CursorStyleOptions) => void;
|
|
83
85
|
setDebugOverlay: (renderer: Pointer, enabled: boolean, corner: DebugOverlayCorner) => void;
|
|
84
86
|
clearTerminal: (renderer: Pointer) => void;
|
|
85
87
|
setTerminalTitle: (renderer: Pointer, title: string) => void;
|
|
@@ -317,6 +319,22 @@ export interface RenderLib {
|
|
|
317
319
|
}>;
|
|
318
320
|
}) => void;
|
|
319
321
|
bufferDrawChar: (buffer: Pointer, char: number, x: number, y: number, fg: RGBA, bg: RGBA, attributes?: number) => void;
|
|
322
|
+
registerNativeSpanFeedStream: (stream: Pointer, handler: NativeSpanFeedEventHandler) => void;
|
|
323
|
+
unregisterNativeSpanFeedStream: (stream: Pointer) => void;
|
|
324
|
+
createNativeSpanFeed: (options?: NativeSpanFeedOptions | null) => Pointer;
|
|
325
|
+
attachNativeSpanFeed: (stream: Pointer) => number;
|
|
326
|
+
destroyNativeSpanFeed: (stream: Pointer) => void;
|
|
327
|
+
streamWrite: (stream: Pointer, data: Uint8Array | string) => number;
|
|
328
|
+
streamCommit: (stream: Pointer) => number;
|
|
329
|
+
streamDrainSpans: (stream: Pointer, outBuffer: Uint8Array, maxSpans: number) => number;
|
|
330
|
+
streamClose: (stream: Pointer) => number;
|
|
331
|
+
streamSetOptions: (stream: Pointer, options: NativeSpanFeedOptions) => number;
|
|
332
|
+
streamGetStats: (stream: Pointer) => NativeSpanFeedStats | null;
|
|
333
|
+
streamReserve: (stream: Pointer, minLen: number) => {
|
|
334
|
+
status: number;
|
|
335
|
+
info: ReserveInfo | null;
|
|
336
|
+
};
|
|
337
|
+
streamCommitReserved: (stream: Pointer, length: number) => number;
|
|
320
338
|
onNativeEvent: (name: string, handler: (data: ArrayBuffer) => void) => void;
|
|
321
339
|
onceNativeEvent: (name: string, handler: (data: ArrayBuffer) => void) => void;
|
|
322
340
|
offNativeEvent: (name: string, handler: (data: ArrayBuffer) => void) => void;
|