@opentui/core 0.4.2 → 0.4.3
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/Renderable.d.ts +2 -7
- package/{index-x7n320jr.js → index-d5xqskty.js} +152 -68
- package/index-d5xqskty.js.map +58 -0
- package/{index-6xr3rbbe.js → index-xt9f071j.js} +147 -136
- package/{index-6xr3rbbe.js.map → index-xt9f071j.js.map} +8 -8
- package/index.js +55 -32
- package/index.js.map +7 -7
- package/package.json +10 -10
- package/renderables/EditBufferRenderable.d.ts +2 -1
- package/renderables/LineNumberRenderable.d.ts +2 -2
- package/renderables/ScrollBox.d.ts +3 -2
- package/renderables/Select.d.ts +5 -0
- package/renderables/Text.d.ts +1 -1
- package/renderables/TextBufferRenderable.d.ts +3 -2
- package/renderables/TextNode.d.ts +2 -1
- package/testing.js +2 -2
- package/yoga.d.ts +1 -4
- package/yoga.js +1 -1
- package/zig-structs.d.ts +3 -3
- package/zig.d.ts +17 -3
- package/index-x7n320jr.js.map +0 -58
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.4.
|
|
7
|
+
"version": "0.4.3",
|
|
8
8
|
"description": "OpenTUI is a TypeScript library on a native Zig core for building terminal user interfaces (TUIs)",
|
|
9
9
|
"license": "MIT",
|
|
10
10
|
"repository": {
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
}
|
|
56
56
|
},
|
|
57
57
|
"dependencies": {
|
|
58
|
-
"bun-ffi-structs": "0.2.
|
|
58
|
+
"bun-ffi-structs": "0.2.4",
|
|
59
59
|
"diff": "9.0.0",
|
|
60
60
|
"marked": "17.0.1",
|
|
61
61
|
"string-width": "7.2.0",
|
|
@@ -65,13 +65,13 @@
|
|
|
65
65
|
"web-tree-sitter": "0.25.10"
|
|
66
66
|
},
|
|
67
67
|
"optionalDependencies": {
|
|
68
|
-
"@opentui/core-darwin-x64": "0.4.
|
|
69
|
-
"@opentui/core-darwin-arm64": "0.4.
|
|
70
|
-
"@opentui/core-linux-x64": "0.4.
|
|
71
|
-
"@opentui/core-linux-arm64": "0.4.
|
|
72
|
-
"@opentui/core-win32-x64": "0.4.
|
|
73
|
-
"@opentui/core-win32-arm64": "0.4.
|
|
74
|
-
"@opentui/core-linux-x64-musl": "0.4.
|
|
75
|
-
"@opentui/core-linux-arm64-musl": "0.4.
|
|
68
|
+
"@opentui/core-darwin-x64": "0.4.3",
|
|
69
|
+
"@opentui/core-darwin-arm64": "0.4.3",
|
|
70
|
+
"@opentui/core-linux-x64": "0.4.3",
|
|
71
|
+
"@opentui/core-linux-arm64": "0.4.3",
|
|
72
|
+
"@opentui/core-win32-x64": "0.4.3",
|
|
73
|
+
"@opentui/core-win32-arm64": "0.4.3",
|
|
74
|
+
"@opentui/core-linux-x64-musl": "0.4.3",
|
|
75
|
+
"@opentui/core-linux-arm64-musl": "0.4.3"
|
|
76
76
|
}
|
|
77
77
|
}
|
|
@@ -68,6 +68,7 @@ export declare abstract class EditBufferRenderable extends Renderable implements
|
|
|
68
68
|
private _keyboardSelectionActive;
|
|
69
69
|
readonly editBuffer: EditBuffer;
|
|
70
70
|
readonly editorView: EditorView;
|
|
71
|
+
private nativeRenderable;
|
|
71
72
|
protected _defaultOptions: {
|
|
72
73
|
textColor: RGBA;
|
|
73
74
|
backgroundColor: string;
|
|
@@ -198,7 +199,7 @@ export declare abstract class EditBufferRenderable extends Renderable implements
|
|
|
198
199
|
}): boolean;
|
|
199
200
|
deleteWordForward(): boolean;
|
|
200
201
|
deleteWordBackward(): boolean;
|
|
201
|
-
private
|
|
202
|
+
private setupNativeRenderable;
|
|
202
203
|
render(buffer: OptimizedBuffer, deltaTime: number): void;
|
|
203
204
|
protected renderSelf(buffer: OptimizedBuffer): void;
|
|
204
205
|
protected renderCursor(buffer: OptimizedBuffer): void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Renderable, type RenderableOptions } from "../Renderable.js";
|
|
1
|
+
import { Renderable, type BaseRenderable, type RenderableOptions } from "../Renderable.js";
|
|
2
2
|
import { OptimizedBuffer } from "../buffer.js";
|
|
3
3
|
import type { RenderContext, LineInfoProvider } from "../types.js";
|
|
4
4
|
import { RGBA } from "../lib/RGBA.js";
|
|
@@ -44,7 +44,7 @@ export declare class LineNumberRenderable extends Renderable {
|
|
|
44
44
|
constructor(ctx: RenderContext, options: LineNumberOptions);
|
|
45
45
|
private setTarget;
|
|
46
46
|
add(child: Renderable): number;
|
|
47
|
-
remove(
|
|
47
|
+
remove(child: BaseRenderable): void;
|
|
48
48
|
destroyRecursively(): void;
|
|
49
49
|
clearTarget(): void;
|
|
50
50
|
protected renderSelf(buffer: OptimizedBuffer): void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type KeyEvent } from "../lib/index.js";
|
|
2
2
|
import { type ScrollAcceleration } from "../lib/scroll-acceleration.js";
|
|
3
|
-
import type { Renderable, RenderableOptions } from "../Renderable.js";
|
|
3
|
+
import type { BaseRenderable, Renderable, RenderableOptions } from "../Renderable.js";
|
|
4
4
|
import type { MouseEvent } from "../renderer.js";
|
|
5
5
|
import type { RenderContext } from "../types.js";
|
|
6
6
|
import { BoxRenderable, type BoxOptions } from "./Box.js";
|
|
@@ -90,8 +90,9 @@ export declare class ScrollBoxRenderable extends BoxRenderable {
|
|
|
90
90
|
private isAtStickyReengagePoint;
|
|
91
91
|
add(obj: Renderable | VNode<any, any[]>, index?: number): number;
|
|
92
92
|
insertBefore(obj: Renderable | VNode<any, any[]> | unknown, anchor?: Renderable | unknown): number;
|
|
93
|
-
remove(
|
|
93
|
+
remove(child: BaseRenderable): void;
|
|
94
94
|
getChildren(): Renderable[];
|
|
95
|
+
getRenderable(id: string): Renderable | undefined;
|
|
95
96
|
protected onMouseEvent(event: MouseEvent): void;
|
|
96
97
|
handleKeyPress(key: KeyEvent): boolean;
|
|
97
98
|
private resetScrollAccumulators;
|
package/renderables/Select.d.ts
CHANGED
|
@@ -27,6 +27,7 @@ export interface SelectRenderableOptions extends RenderableOptions<SelectRendera
|
|
|
27
27
|
showScrollIndicator?: boolean;
|
|
28
28
|
wrapSelection?: boolean;
|
|
29
29
|
showDescription?: boolean;
|
|
30
|
+
showSelectionIndicator?: boolean;
|
|
30
31
|
font?: keyof typeof fonts;
|
|
31
32
|
itemSpacing?: number;
|
|
32
33
|
fastScrollStep?: number;
|
|
@@ -54,6 +55,7 @@ export declare class SelectRenderable extends Renderable {
|
|
|
54
55
|
private _showScrollIndicator;
|
|
55
56
|
private _wrapSelection;
|
|
56
57
|
private _showDescription;
|
|
58
|
+
private _showSelectionIndicator;
|
|
57
59
|
private _font?;
|
|
58
60
|
private _itemSpacing;
|
|
59
61
|
private linesPerItem;
|
|
@@ -75,6 +77,7 @@ export declare class SelectRenderable extends Renderable {
|
|
|
75
77
|
showScrollIndicator: false;
|
|
76
78
|
wrapSelection: false;
|
|
77
79
|
showDescription: true;
|
|
80
|
+
showSelectionIndicator: true;
|
|
78
81
|
itemSpacing: number;
|
|
79
82
|
fastScrollStep: number;
|
|
80
83
|
};
|
|
@@ -97,6 +100,8 @@ export declare class SelectRenderable extends Renderable {
|
|
|
97
100
|
set showScrollIndicator(show: boolean);
|
|
98
101
|
get showDescription(): boolean;
|
|
99
102
|
set showDescription(show: boolean);
|
|
103
|
+
get showSelectionIndicator(): boolean;
|
|
104
|
+
set showSelectionIndicator(show: boolean | null | undefined);
|
|
100
105
|
get wrapSelection(): boolean;
|
|
101
106
|
set wrapSelection(wrap: boolean);
|
|
102
107
|
set backgroundColor(value: ColorInput);
|
package/renderables/Text.d.ts
CHANGED
|
@@ -24,7 +24,7 @@ export declare class TextRenderable extends TextBufferRenderable {
|
|
|
24
24
|
set content(value: StyledText | string);
|
|
25
25
|
private updateTextFromNodes;
|
|
26
26
|
add(obj: TextNodeRenderable | StyledText | string, index?: number): number;
|
|
27
|
-
remove(
|
|
27
|
+
remove(child: BaseRenderable): void;
|
|
28
28
|
insertBefore(obj: BaseRenderable | any, anchor?: TextNodeRenderable): number;
|
|
29
29
|
getTextChildren(): BaseRenderable[];
|
|
30
30
|
clear(): void;
|
|
@@ -5,7 +5,7 @@ import { TextBufferView } from "../text-buffer-view.js";
|
|
|
5
5
|
import { RGBA } from "../lib/RGBA.js";
|
|
6
6
|
import { type RenderContext, type LineInfoProvider } from "../types.js";
|
|
7
7
|
import type { OptimizedBuffer } from "../buffer.js";
|
|
8
|
-
import type
|
|
8
|
+
import { type LineInfo } from "../zig.js";
|
|
9
9
|
import { SyntaxStyle } from "../syntax-style.js";
|
|
10
10
|
export interface TextBufferOptions extends RenderableOptions<TextBufferRenderable> {
|
|
11
11
|
fg?: string | RGBA;
|
|
@@ -37,6 +37,7 @@ export declare abstract class TextBufferRenderable extends Renderable implements
|
|
|
37
37
|
protected textBuffer: TextBuffer;
|
|
38
38
|
protected textBufferView: TextBufferView;
|
|
39
39
|
protected _textBufferSyntaxStyle: SyntaxStyle;
|
|
40
|
+
private nativeRenderable;
|
|
40
41
|
protected _defaultOptions: {
|
|
41
42
|
fg: RGBA;
|
|
42
43
|
bg: RGBA;
|
|
@@ -88,7 +89,7 @@ export declare abstract class TextBufferRenderable extends Renderable implements
|
|
|
88
89
|
protected refreshLocalSelection(): boolean;
|
|
89
90
|
private updateLocalSelection;
|
|
90
91
|
protected updateTextInfo(): void;
|
|
91
|
-
private
|
|
92
|
+
private setupNativeRenderable;
|
|
92
93
|
shouldStartSelection(x: number, y: number): boolean;
|
|
93
94
|
onSelectionChanged(selection: Selection | null): boolean;
|
|
94
95
|
getSelectedText(): string;
|
|
@@ -27,9 +27,10 @@ export declare class TextNodeRenderable extends BaseRenderable {
|
|
|
27
27
|
set children(children: (string | TextNodeRenderable)[]);
|
|
28
28
|
requestRender(): void;
|
|
29
29
|
add(obj: TextNodeRenderable | StyledText | string, index?: number): number;
|
|
30
|
+
private prepareChildInsert;
|
|
30
31
|
replace(obj: TextNodeRenderable | string, index: number): void;
|
|
31
32
|
insertBefore(child: string | TextNodeRenderable | StyledText, anchorNode: TextNodeRenderable | string | unknown): this;
|
|
32
|
-
remove(
|
|
33
|
+
remove(child: BaseRenderable): void;
|
|
33
34
|
clear(): void;
|
|
34
35
|
mergeStyles(parentStyle: {
|
|
35
36
|
fg?: RGBA;
|
package/testing.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ANSI,
|
|
3
3
|
CliRenderer
|
|
4
|
-
} from "./index-
|
|
4
|
+
} from "./index-xt9f071j.js";
|
|
5
5
|
import {
|
|
6
6
|
SystemClock,
|
|
7
7
|
TreeSitterClient
|
|
8
|
-
} from "./index-
|
|
8
|
+
} from "./index-d5xqskty.js";
|
|
9
9
|
|
|
10
10
|
// src/testing/mock-keys.ts
|
|
11
11
|
import { Buffer as Buffer2 } from "node:buffer";
|
package/yoga.d.ts
CHANGED
|
@@ -218,8 +218,6 @@ export declare class Config {
|
|
|
218
218
|
export declare class Node {
|
|
219
219
|
readonly ptr: Pointer;
|
|
220
220
|
private freed;
|
|
221
|
-
private measureCallback;
|
|
222
|
-
private dirtiedCallback;
|
|
223
221
|
private constructor();
|
|
224
222
|
static create(config?: Config): Node;
|
|
225
223
|
static createForOpenTUI(): Node;
|
|
@@ -339,8 +337,7 @@ export declare class Node {
|
|
|
339
337
|
private setValue;
|
|
340
338
|
private getValue;
|
|
341
339
|
private collectSubtree;
|
|
342
|
-
private
|
|
343
|
-
private closeDirtiedCallback;
|
|
340
|
+
private unregisterCallbacks;
|
|
344
341
|
private markFreed;
|
|
345
342
|
}
|
|
346
343
|
declare const Yoga: {
|
package/yoga.js
CHANGED
package/zig-structs.d.ts
CHANGED
|
@@ -13,11 +13,11 @@ export declare const StyledChunkStruct: import("bun-ffi-structs").DefineStructRe
|
|
|
13
13
|
readonly lengthOf: "text";
|
|
14
14
|
}], readonly ["fg", "pointer", {
|
|
15
15
|
readonly optional: true;
|
|
16
|
-
readonly packTransform: (rgba?: RGBA) =>
|
|
16
|
+
readonly packTransform: (rgba?: RGBA) => Uint16Array<ArrayBufferLike> | null;
|
|
17
17
|
readonly unpackTransform: (ptr?: Pointer) => RGBA | undefined;
|
|
18
18
|
}], readonly ["bg", "pointer", {
|
|
19
19
|
readonly optional: true;
|
|
20
|
-
readonly packTransform: (rgba?: RGBA) =>
|
|
20
|
+
readonly packTransform: (rgba?: RGBA) => Uint16Array<ArrayBufferLike> | null;
|
|
21
21
|
readonly unpackTransform: (ptr?: Pointer) => RGBA | undefined;
|
|
22
22
|
}], readonly ["attributes", "u32", {
|
|
23
23
|
readonly default: 0;
|
|
@@ -71,7 +71,7 @@ export declare const CursorStyleOptionsStruct: import("bun-ffi-structs").DefineS
|
|
|
71
71
|
readonly default: 255;
|
|
72
72
|
}], readonly ["color", "pointer", {
|
|
73
73
|
readonly optional: true;
|
|
74
|
-
readonly packTransform: (rgba?: RGBA) =>
|
|
74
|
+
readonly packTransform: (rgba?: RGBA) => Uint16Array<ArrayBufferLike> | null;
|
|
75
75
|
readonly unpackTransform: (ptr?: Pointer) => RGBA | undefined;
|
|
76
76
|
}], readonly ["cursor", "u8", {
|
|
77
77
|
readonly default: 255;
|
package/zig.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ export type EditorViewHandle = NativeHandle<"editor_view">;
|
|
|
17
17
|
export type SyntaxStyleHandle = NativeHandle<"syntax_style">;
|
|
18
18
|
export type EventSinkHandle = NativeHandle<"event_sink">;
|
|
19
19
|
export type AudioEngineHandle = NativeHandle<"audio_engine">;
|
|
20
|
+
export type NativeRenderableHandle = NativeHandle<"native_renderable">;
|
|
20
21
|
export declare enum LogLevel {
|
|
21
22
|
Error = 0,
|
|
22
23
|
Warn = 1,
|
|
@@ -69,7 +70,14 @@ export interface NativeYogaLayout {
|
|
|
69
70
|
height: number;
|
|
70
71
|
}
|
|
71
72
|
export type NativeYogaMeasureCallback = (node: Pointer | null, width: number, widthMode: number, height: number, heightMode: number) => void;
|
|
72
|
-
export type NativeYogaDirtiedCallback = () => void;
|
|
73
|
+
export type NativeYogaDirtiedCallback = (node: Pointer | null) => void;
|
|
74
|
+
export declare const NativeMeasureTargetKind: {
|
|
75
|
+
readonly None: 0;
|
|
76
|
+
readonly TextBufferView: 1;
|
|
77
|
+
readonly EditorView: 2;
|
|
78
|
+
};
|
|
79
|
+
export type NativeMeasureTargetKind = (typeof NativeMeasureTargetKind)[keyof typeof NativeMeasureTargetKind];
|
|
80
|
+
export type NativeMeasureTargetHandle = TextBufferViewHandle | EditorViewHandle;
|
|
73
81
|
export interface AudioEngineLib {
|
|
74
82
|
createAudioEngine: (options?: AudioCreateOptions | null) => AudioEngineHandle | null;
|
|
75
83
|
destroyAudioEngine: (engine: AudioEngineHandle) => void;
|
|
@@ -237,12 +245,14 @@ export interface RenderLib extends AudioEngineLib {
|
|
|
237
245
|
yogaNodeStyleGetBorder: (node: Pointer, edge: number) => number;
|
|
238
246
|
yogaNodeStyleSetValue: (node: Pointer, kind: number, edgeOrGutter: number, unit: number, value: number) => void;
|
|
239
247
|
yogaNodeStyleGetValue: (node: Pointer, kind: number, edgeOrGutter: number) => number | bigint;
|
|
240
|
-
yogaNodeSetMeasureFunc: (node: Pointer,
|
|
248
|
+
yogaNodeSetMeasureFunc: (node: Pointer, enabled: boolean) => void;
|
|
241
249
|
yogaNodeUnsetMeasureFunc: (node: Pointer) => void;
|
|
242
250
|
yogaNodeHasMeasureFunc: (node: Pointer) => boolean;
|
|
243
|
-
yogaNodeSetDirtiedFunc: (node: Pointer,
|
|
251
|
+
yogaNodeSetDirtiedFunc: (node: Pointer, enabled: boolean) => void;
|
|
244
252
|
yogaNodeUnsetDirtiedFunc: (node: Pointer) => void;
|
|
245
253
|
yogaStoreMeasureResult: (width: number, height: number) => void;
|
|
254
|
+
yogaSetMeasureCallback: (callback: Pointer | null) => void;
|
|
255
|
+
yogaSetDirtiedCallback: (callback: Pointer | null) => void;
|
|
246
256
|
createYogaMeasureCallback: (callback: NativeYogaMeasureCallback) => FFICallbackInstance;
|
|
247
257
|
createYogaDirtiedCallback: (callback: NativeYogaDirtiedCallback) => FFICallbackInstance;
|
|
248
258
|
createTextBuffer: (widthMethod: WidthMethod) => TextBuffer;
|
|
@@ -473,6 +483,10 @@ export interface RenderLib extends AudioEngineLib {
|
|
|
473
483
|
info: ReserveInfo | null;
|
|
474
484
|
};
|
|
475
485
|
streamCommitReserved: (stream: Pointer, length: number) => number;
|
|
486
|
+
createNativeRenderable: () => NativeRenderableHandle;
|
|
487
|
+
destroyNativeRenderable: (handle: NativeRenderableHandle) => void;
|
|
488
|
+
nativeRenderableAttachYogaNode: (handle: NativeRenderableHandle, node: Pointer) => boolean;
|
|
489
|
+
nativeRenderableSetMeasureTarget: (handle: NativeRenderableHandle, kind: NativeMeasureTargetKind, target: NativeMeasureTargetHandle | 0) => boolean;
|
|
476
490
|
onNativeEvent: (name: string, handler: (data: ArrayBuffer) => void) => void;
|
|
477
491
|
onceNativeEvent: (name: string, handler: (data: ArrayBuffer) => void) => void;
|
|
478
492
|
offNativeEvent: (name: string, handler: (data: ArrayBuffer) => void) => void;
|