@opentui/core 0.1.11 → 0.1.13
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/Renderable.d.ts +37 -24
- package/buffer.d.ts +6 -5
- package/index-4gez9k7q.js +8830 -0
- package/index-4gez9k7q.js.map +36 -0
- package/index.js +1182 -9490
- package/index.js.map +13 -38
- package/lib/ascii.font.d.ts +1 -0
- package/lib/word-jumps.d.ts +2 -0
- package/package.json +7 -7
- package/renderables/ASCIIFont.d.ts +5 -5
- package/renderables/Box.d.ts +10 -2
- package/renderables/FrameBuffer.d.ts +3 -2
- package/renderables/Input.d.ts +4 -2
- package/renderables/Select.d.ts +3 -2
- package/renderables/TabSelect.d.ts +3 -2
- package/renderables/Text.d.ts +3 -3
- package/renderables/composition/VRenderable.d.ts +16 -0
- package/renderables/composition/constructs.d.ts +12 -0
- package/renderables/composition/vnode.d.ts +38 -0
- package/renderables/index.d.ts +3 -1
- package/renderer.d.ts +14 -7
- package/text-buffer.d.ts +2 -1
- package/types.d.ts +11 -2
- package/zig.d.ts +12 -6
- package/renderables/Group.d.ts +0 -4
package/3d.js
CHANGED
package/Renderable.d.ts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import { OptimizedBuffer, type RenderContext, type MouseEvent, type SelectionState } from ".";
|
|
2
1
|
import { EventEmitter } from "events";
|
|
2
|
+
import { OptimizedBuffer } from "./buffer";
|
|
3
|
+
import { type KeyHandler } from "./lib/KeyHandler";
|
|
3
4
|
import { TrackedNode } from "./lib/TrackedNode";
|
|
4
5
|
import type { ParsedKey } from "./lib/parse.keypress";
|
|
5
|
-
import { type KeyHandler } from "./lib/KeyHandler";
|
|
6
6
|
import { type AlignString, type FlexDirectionString, type JustifyString, type PositionTypeString } from "./lib/yoga.options";
|
|
7
|
+
import type { MouseEvent } from "./renderer";
|
|
8
|
+
import type { RenderContext, SelectionState } from "./types";
|
|
9
|
+
import { type VNode } from "./renderables/composition/vnode";
|
|
7
10
|
export declare enum LayoutEvents {
|
|
8
11
|
LAYOUT_CHANGED = "layout-changed",
|
|
9
12
|
ADDED = "added",
|
|
@@ -14,10 +17,6 @@ export declare enum RenderableEvents {
|
|
|
14
17
|
FOCUSED = "focused",
|
|
15
18
|
BLURRED = "blurred"
|
|
16
19
|
}
|
|
17
|
-
export interface RootContext {
|
|
18
|
-
requestLive(): void;
|
|
19
|
-
dropLive(): void;
|
|
20
|
-
}
|
|
21
20
|
export interface Position {
|
|
22
21
|
top?: number | "auto" | `${number}%`;
|
|
23
22
|
right?: number | "auto" | `${number}%`;
|
|
@@ -52,24 +51,29 @@ export interface LayoutOptions {
|
|
|
52
51
|
paddingLeft?: number | `${number}%`;
|
|
53
52
|
enableLayout?: boolean;
|
|
54
53
|
}
|
|
55
|
-
export interface RenderableOptions extends Partial<LayoutOptions> {
|
|
54
|
+
export interface RenderableOptions<T extends Renderable = Renderable> extends Partial<LayoutOptions> {
|
|
55
|
+
id?: string;
|
|
56
56
|
width?: number | "auto" | `${number}%`;
|
|
57
57
|
height?: number | "auto" | `${number}%`;
|
|
58
58
|
zIndex?: number;
|
|
59
59
|
visible?: boolean;
|
|
60
60
|
buffered?: boolean;
|
|
61
61
|
live?: boolean;
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
62
|
+
renderBefore?: (this: T, buffer: OptimizedBuffer, deltaTime: number) => void;
|
|
63
|
+
renderAfter?: (this: T, buffer: OptimizedBuffer, deltaTime: number) => void;
|
|
64
|
+
onMouse?: (this: T, event: MouseEvent) => void;
|
|
65
|
+
onMouseDown?: (this: T, event: MouseEvent) => void;
|
|
66
|
+
onMouseUp?: (this: T, event: MouseEvent) => void;
|
|
67
|
+
onMouseMove?: (this: T, event: MouseEvent) => void;
|
|
68
|
+
onMouseDrag?: (this: T, event: MouseEvent) => void;
|
|
69
|
+
onMouseDragEnd?: (this: T, event: MouseEvent) => void;
|
|
70
|
+
onMouseDrop?: (this: T, event: MouseEvent) => void;
|
|
71
|
+
onMouseOver?: (this: T, event: MouseEvent) => void;
|
|
72
|
+
onMouseOut?: (this: T, event: MouseEvent) => void;
|
|
73
|
+
onMouseScroll?: (this: T, event: MouseEvent) => void;
|
|
71
74
|
onKeyDown?: (key: ParsedKey) => void;
|
|
72
75
|
}
|
|
76
|
+
export declare function isValidPercentage(value: any): value is `${number}%`;
|
|
73
77
|
export declare function isMarginType(value: any): value is number | "auto" | `${number}%`;
|
|
74
78
|
export declare function isPaddingType(value: any): value is number | `${number}%`;
|
|
75
79
|
export declare function isPositionType(value: any): value is number | "auto" | `${number}%`;
|
|
@@ -82,7 +86,7 @@ export declare abstract class Renderable extends EventEmitter {
|
|
|
82
86
|
static renderablesByNumber: Map<number, Renderable>;
|
|
83
87
|
readonly id: string;
|
|
84
88
|
readonly num: number;
|
|
85
|
-
protected
|
|
89
|
+
protected _ctx: RenderContext;
|
|
86
90
|
private _x;
|
|
87
91
|
private _y;
|
|
88
92
|
protected _width: number | "auto" | `${number}%`;
|
|
@@ -101,16 +105,21 @@ export declare abstract class Renderable extends EventEmitter {
|
|
|
101
105
|
protected keypressHandler: ((key: ParsedKey) => void) | null;
|
|
102
106
|
private _live;
|
|
103
107
|
protected _liveCount: number;
|
|
108
|
+
private _mouseListener;
|
|
104
109
|
private _mouseListeners;
|
|
105
110
|
private _keyListeners;
|
|
106
111
|
protected layoutNode: TrackedNode;
|
|
107
112
|
protected _positionType: PositionTypeString;
|
|
108
113
|
protected _position: Position;
|
|
114
|
+
private _childHostOverride;
|
|
109
115
|
private renderableMap;
|
|
110
116
|
private renderableArray;
|
|
111
117
|
private needsZIndexSort;
|
|
112
118
|
parent: Renderable | null;
|
|
113
|
-
|
|
119
|
+
renderBefore?: (this: Renderable, buffer: OptimizedBuffer, deltaTime: number) => void;
|
|
120
|
+
renderAfter?: (this: Renderable, buffer: OptimizedBuffer, deltaTime: number) => void;
|
|
121
|
+
constructor(ctx: RenderContext, options: RenderableOptions<any>);
|
|
122
|
+
get ctx(): RenderContext;
|
|
114
123
|
get visible(): boolean;
|
|
115
124
|
set visible(value: boolean);
|
|
116
125
|
hasSelection(): boolean;
|
|
@@ -126,6 +135,10 @@ export declare abstract class Renderable extends EventEmitter {
|
|
|
126
135
|
protected propagateLiveCount(delta: number): void;
|
|
127
136
|
handleKeyPress?(key: ParsedKey | string): boolean;
|
|
128
137
|
protected get isDirty(): boolean;
|
|
138
|
+
get childHost(): Renderable;
|
|
139
|
+
set childHost(host: Renderable | null);
|
|
140
|
+
findDescendantById(id: string): Renderable | undefined;
|
|
141
|
+
setChildHostById(id: string): boolean;
|
|
129
142
|
private markClean;
|
|
130
143
|
needsUpdate(): void;
|
|
131
144
|
get x(): number;
|
|
@@ -146,7 +159,7 @@ export declare abstract class Renderable extends EventEmitter {
|
|
|
146
159
|
set height(value: number | "auto" | `${number}%`);
|
|
147
160
|
get zIndex(): number;
|
|
148
161
|
set zIndex(value: number);
|
|
149
|
-
requestZIndexSort
|
|
162
|
+
private requestZIndexSort;
|
|
150
163
|
private ensureZIndexSorted;
|
|
151
164
|
private setupYogaProperties;
|
|
152
165
|
private setupMarginAndPadding;
|
|
@@ -180,11 +193,11 @@ export declare abstract class Renderable extends EventEmitter {
|
|
|
180
193
|
protected createFrameBuffer(): void;
|
|
181
194
|
protected onResize(width: number, height: number): void;
|
|
182
195
|
private replaceParent;
|
|
183
|
-
add(obj: Renderable, index?: number): number;
|
|
184
|
-
insertBefore(obj: Renderable, anchor?: Renderable): number;
|
|
185
|
-
propagateContext(ctx: RenderContext | null): void;
|
|
196
|
+
add(obj: Renderable | VNode<any, any[]>, index?: number): number;
|
|
197
|
+
insertBefore(obj: Renderable | VNode<any, any[]>, anchor?: Renderable): number;
|
|
186
198
|
getRenderable(id: string): Renderable | undefined;
|
|
187
199
|
remove(id: string): void;
|
|
200
|
+
protected onRemove(): void;
|
|
188
201
|
getChildren(): Renderable[];
|
|
189
202
|
render(buffer: OptimizedBuffer, deltaTime: number): void;
|
|
190
203
|
protected beforeRender(): void;
|
|
@@ -194,6 +207,7 @@ export declare abstract class Renderable extends EventEmitter {
|
|
|
194
207
|
protected destroySelf(): void;
|
|
195
208
|
processMouseEvent(event: MouseEvent): void;
|
|
196
209
|
protected onMouseEvent(event: MouseEvent): void;
|
|
210
|
+
set onMouse(handler: ((event: MouseEvent) => void) | undefined);
|
|
197
211
|
set onMouseDown(handler: ((event: MouseEvent) => void) | undefined);
|
|
198
212
|
set onMouseUp(handler: ((event: MouseEvent) => void) | undefined);
|
|
199
213
|
set onMouseMove(handler: ((event: MouseEvent) => void) | undefined);
|
|
@@ -209,8 +223,7 @@ export declare abstract class Renderable extends EventEmitter {
|
|
|
209
223
|
}
|
|
210
224
|
export declare class RootRenderable extends Renderable {
|
|
211
225
|
private yogaConfig;
|
|
212
|
-
|
|
213
|
-
constructor(width: number, height: number, ctx: RenderContext, rootContext: RootContext);
|
|
226
|
+
constructor(ctx: RenderContext);
|
|
214
227
|
protected propagateLiveCount(delta: number): void;
|
|
215
228
|
calculateLayout(): void;
|
|
216
229
|
resize(width: number, height: number): void;
|
package/buffer.d.ts
CHANGED
|
@@ -3,14 +3,15 @@ import { RGBA } from "./lib";
|
|
|
3
3
|
import { type RenderLib } from "./zig";
|
|
4
4
|
import { type Pointer } from "bun:ffi";
|
|
5
5
|
import { type BorderStyle, type BorderSides } from "./lib";
|
|
6
|
+
import { type WidthMethod } from "./types";
|
|
6
7
|
export declare class OptimizedBuffer {
|
|
7
8
|
private static fbIdCounter;
|
|
8
9
|
id: string;
|
|
9
10
|
lib: RenderLib;
|
|
10
11
|
private bufferPtr;
|
|
11
12
|
private buffer;
|
|
12
|
-
private
|
|
13
|
-
private
|
|
13
|
+
private _width;
|
|
14
|
+
private _height;
|
|
14
15
|
respectAlpha: boolean;
|
|
15
16
|
private useFFI;
|
|
16
17
|
get ptr(): Pointer;
|
|
@@ -22,7 +23,7 @@ export declare class OptimizedBuffer {
|
|
|
22
23
|
}, width: number, height: number, options: {
|
|
23
24
|
respectAlpha?: boolean;
|
|
24
25
|
});
|
|
25
|
-
static create(width: number, height: number, options?: {
|
|
26
|
+
static create(width: number, height: number, widthMethod: WidthMethod, options?: {
|
|
26
27
|
respectAlpha?: boolean;
|
|
27
28
|
}): OptimizedBuffer;
|
|
28
29
|
get buffers(): {
|
|
@@ -32,8 +33,8 @@ export declare class OptimizedBuffer {
|
|
|
32
33
|
attributes: Uint8Array;
|
|
33
34
|
};
|
|
34
35
|
private coordsToIndex;
|
|
35
|
-
|
|
36
|
-
|
|
36
|
+
get width(): number;
|
|
37
|
+
get height(): number;
|
|
37
38
|
setRespectAlpha(respectAlpha: boolean): void;
|
|
38
39
|
clear(bg?: RGBA, clearChar?: string): void;
|
|
39
40
|
clearLocal(bg?: RGBA, clearChar?: string): void;
|