@opentui/core 0.0.0-20250908-4906ddad → 0.0.0-20250915-f5db043a
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/3d.js.map +1 -1
- package/Renderable.d.ts +60 -20
- package/buffer.d.ts +3 -1
- package/{index-d6kwx5pm.js → index-6esrcarp.js} +849 -263
- package/index-6esrcarp.js.map +38 -0
- package/index.js +666 -84
- package/index.js.map +14 -13
- package/lib/KeyHandler.d.ts +7 -3
- package/lib/objects-in-viewport.d.ts +10 -0
- package/lib/parse.keypress-kitty.d.ts +2 -0
- package/lib/parse.keypress.d.ts +11 -1
- package/lib/styled-text.d.ts +4 -0
- package/package.json +12 -7
- package/renderables/Input.d.ts +1 -1
- package/renderables/ScrollBar.d.ts +1 -1
- package/renderables/ScrollBox.d.ts +17 -2
- package/renderables/Select.d.ts +1 -1
- package/renderables/Slider.d.ts +24 -11
- package/renderables/TabSelect.d.ts +1 -1
- package/renderables/Text.d.ts +12 -1
- package/renderables/TextNode.d.ts +67 -0
- package/renderables/composition/constructs.d.ts +30 -9
- package/renderables/composition/vnode.d.ts +1 -1
- package/renderables/index.d.ts +1 -0
- package/renderer.d.ts +18 -2
- package/testing/mock-keys.d.ts +67 -0
- package/testing/mock-mouse.d.ts +38 -0
- package/testing/test-renderer.d.ts +18 -0
- package/testing.d.ts +3 -0
- package/testing.js +343 -0
- package/testing.js.map +12 -0
- package/text-buffer.d.ts +3 -2
- package/types.d.ts +8 -0
- package/utils.d.ts +2 -0
- package/zig.d.ts +6 -2
- package/index-d6kwx5pm.js.map +0 -36
package/Renderable.d.ts
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { EventEmitter } from "events";
|
|
2
2
|
import { OptimizedBuffer } from "./buffer";
|
|
3
|
-
import { type KeyHandler } from "./lib/KeyHandler";
|
|
4
3
|
import { TrackedNode } from "./lib/TrackedNode";
|
|
5
4
|
import type { ParsedKey } from "./lib/parse.keypress";
|
|
5
|
+
import type { Selection } from "./lib/selection";
|
|
6
6
|
import { type AlignString, type FlexDirectionString, type JustifyString, type OverflowString, type PositionTypeString, type WrapString } from "./lib/yoga.options";
|
|
7
|
-
import type { MouseEvent } from "./renderer";
|
|
8
|
-
import type { RenderContext, ViewportBounds } from "./types";
|
|
9
7
|
import { type VNode } from "./renderables/composition/vnode";
|
|
10
|
-
import type {
|
|
8
|
+
import type { MouseEvent } from "./renderer";
|
|
9
|
+
import type { RenderContext } from "./types";
|
|
11
10
|
declare const BrandedRenderable: unique symbol;
|
|
12
11
|
export declare enum LayoutEvents {
|
|
13
12
|
LAYOUT_CHANGED = "layout-changed",
|
|
@@ -25,7 +24,10 @@ export interface Position {
|
|
|
25
24
|
bottom?: number | "auto" | `${number}%`;
|
|
26
25
|
left?: number | "auto" | `${number}%`;
|
|
27
26
|
}
|
|
28
|
-
export interface
|
|
27
|
+
export interface BaseRenderableOptions {
|
|
28
|
+
id?: string;
|
|
29
|
+
}
|
|
30
|
+
export interface LayoutOptions extends BaseRenderableOptions {
|
|
29
31
|
flexGrow?: number;
|
|
30
32
|
flexShrink?: number;
|
|
31
33
|
flexDirection?: FlexDirectionString;
|
|
@@ -56,8 +58,7 @@ export interface LayoutOptions {
|
|
|
56
58
|
paddingLeft?: number | `${number}%`;
|
|
57
59
|
enableLayout?: boolean;
|
|
58
60
|
}
|
|
59
|
-
export interface RenderableOptions<T extends
|
|
60
|
-
id?: string;
|
|
61
|
+
export interface RenderableOptions<T extends BaseRenderable = BaseRenderable> extends Partial<LayoutOptions> {
|
|
61
62
|
width?: number | "auto" | `${number}%`;
|
|
62
63
|
height?: number | "auto" | `${number}%`;
|
|
63
64
|
zIndex?: number;
|
|
@@ -89,12 +90,32 @@ export declare function isDimensionType(value: any): value is number | "auto" |
|
|
|
89
90
|
export declare function isFlexBasisType(value: any): value is number | "auto" | undefined;
|
|
90
91
|
export declare function isSizeType(value: any): value is number | `${number}%` | undefined;
|
|
91
92
|
export declare function isRenderable(obj: any): obj is Renderable;
|
|
92
|
-
export declare abstract class
|
|
93
|
+
export declare abstract class BaseRenderable extends EventEmitter {
|
|
93
94
|
[BrandedRenderable]: boolean;
|
|
94
95
|
private static renderableNumber;
|
|
95
|
-
static renderablesByNumber: Map<number, Renderable>;
|
|
96
96
|
readonly id: string;
|
|
97
97
|
readonly num: number;
|
|
98
|
+
protected _dirty: boolean;
|
|
99
|
+
parent: BaseRenderable | null;
|
|
100
|
+
protected _visible: boolean;
|
|
101
|
+
constructor(options: BaseRenderableOptions);
|
|
102
|
+
abstract add(obj: BaseRenderable | unknown, index?: number): number;
|
|
103
|
+
abstract remove(id: string): void;
|
|
104
|
+
abstract insertBefore(obj: BaseRenderable | unknown, anchor: BaseRenderable | unknown): void;
|
|
105
|
+
abstract getChildren(): BaseRenderable[];
|
|
106
|
+
abstract getChildrenCount(): number;
|
|
107
|
+
abstract getRenderable(id: string): BaseRenderable | undefined;
|
|
108
|
+
abstract requestRender(): void;
|
|
109
|
+
get isDirty(): boolean;
|
|
110
|
+
protected markClean(): void;
|
|
111
|
+
protected markDirty(): void;
|
|
112
|
+
destroy(): void;
|
|
113
|
+
destroyRecursively(): void;
|
|
114
|
+
get visible(): boolean;
|
|
115
|
+
set visible(value: boolean);
|
|
116
|
+
}
|
|
117
|
+
export declare abstract class Renderable extends BaseRenderable {
|
|
118
|
+
static renderablesByNumber: Map<number, Renderable>;
|
|
98
119
|
private _isDestroyed;
|
|
99
120
|
protected _ctx: RenderContext;
|
|
100
121
|
protected _translateX: number;
|
|
@@ -106,14 +127,11 @@ export declare abstract class Renderable extends EventEmitter {
|
|
|
106
127
|
protected _widthValue: number;
|
|
107
128
|
protected _heightValue: number;
|
|
108
129
|
private _zIndex;
|
|
109
|
-
protected _visible: boolean;
|
|
110
130
|
selectable: boolean;
|
|
111
131
|
protected buffered: boolean;
|
|
112
132
|
protected frameBuffer: OptimizedBuffer | null;
|
|
113
|
-
|
|
114
|
-
protected focusable: boolean;
|
|
133
|
+
protected _focusable: boolean;
|
|
115
134
|
protected _focused: boolean;
|
|
116
|
-
protected keyHandler: KeyHandler;
|
|
117
135
|
protected keypressHandler: ((key: ParsedKey) => void) | null;
|
|
118
136
|
private _live;
|
|
119
137
|
protected _liveCount: number;
|
|
@@ -131,11 +149,15 @@ export declare abstract class Renderable extends EventEmitter {
|
|
|
131
149
|
parent: Renderable | null;
|
|
132
150
|
private childrenPrimarySortDirty;
|
|
133
151
|
private childrenSortedByPrimaryAxis;
|
|
152
|
+
private _newChildren;
|
|
153
|
+
onLifecyclePass: (() => void) | null;
|
|
134
154
|
renderBefore?: (this: Renderable, buffer: OptimizedBuffer, deltaTime: number) => void;
|
|
135
155
|
renderAfter?: (this: Renderable, buffer: OptimizedBuffer, deltaTime: number) => void;
|
|
136
156
|
constructor(ctx: RenderContext, options: RenderableOptions<any>);
|
|
157
|
+
get focusable(): boolean;
|
|
137
158
|
get ctx(): RenderContext;
|
|
138
159
|
get visible(): boolean;
|
|
160
|
+
get primaryAxis(): "row" | "column";
|
|
139
161
|
set visible(value: boolean);
|
|
140
162
|
hasSelection(): boolean;
|
|
141
163
|
onSelectionChanged(selection: Selection | null): boolean;
|
|
@@ -149,9 +171,7 @@ export declare abstract class Renderable extends EventEmitter {
|
|
|
149
171
|
set live(value: boolean);
|
|
150
172
|
protected propagateLiveCount(delta: number): void;
|
|
151
173
|
handleKeyPress?(key: ParsedKey | string): boolean;
|
|
152
|
-
protected get isDirty(): boolean;
|
|
153
174
|
findDescendantById(id: string): Renderable | undefined;
|
|
154
|
-
private markClean;
|
|
155
175
|
requestRender(): void;
|
|
156
176
|
get translateX(): number;
|
|
157
177
|
set translateX(value: number);
|
|
@@ -177,8 +197,7 @@ export declare abstract class Renderable extends EventEmitter {
|
|
|
177
197
|
set zIndex(value: number);
|
|
178
198
|
private requestZIndexSort;
|
|
179
199
|
private ensureZIndexSorted;
|
|
180
|
-
|
|
181
|
-
protected getChildrenSortedByPrimaryAxis(): Renderable[];
|
|
200
|
+
getChildrenSortedByPrimaryAxis(): Renderable[];
|
|
182
201
|
private setupYogaProperties;
|
|
183
202
|
private setupMarginAndPadding;
|
|
184
203
|
set position(positionType: PositionTypeString);
|
|
@@ -215,13 +234,15 @@ export declare abstract class Renderable extends EventEmitter {
|
|
|
215
234
|
protected createFrameBuffer(): void;
|
|
216
235
|
protected onResize(width: number, height: number): void;
|
|
217
236
|
private replaceParent;
|
|
218
|
-
|
|
219
|
-
|
|
237
|
+
private _forceLayoutUpdateFor;
|
|
238
|
+
add(obj: Renderable | VNode<any, any[]> | unknown, index?: number): number;
|
|
239
|
+
insertBefore(obj: Renderable | VNode<any, any[]> | unknown, anchor?: Renderable | unknown): number;
|
|
220
240
|
getRenderable(id: string): Renderable | undefined;
|
|
221
241
|
remove(id: string): void;
|
|
222
242
|
protected onRemove(): void;
|
|
223
243
|
getChildren(): Renderable[];
|
|
224
244
|
getChildrenCount(): number;
|
|
245
|
+
updateLayout(deltaTime: number, renderList?: RenderCommand[]): void;
|
|
225
246
|
render(buffer: OptimizedBuffer, deltaTime: number): void;
|
|
226
247
|
protected _getChildren(): Renderable[];
|
|
227
248
|
protected onUpdate(deltaTime: number): void;
|
|
@@ -254,13 +275,32 @@ export declare abstract class Renderable extends EventEmitter {
|
|
|
254
275
|
get onSizeChange(): (() => void) | undefined;
|
|
255
276
|
private applyEventOptions;
|
|
256
277
|
}
|
|
278
|
+
interface RenderCommandBase {
|
|
279
|
+
action: "render" | "pushScissorRect" | "popScissorRect";
|
|
280
|
+
}
|
|
281
|
+
interface RenderCommandPushScissorRect extends RenderCommandBase {
|
|
282
|
+
action: "pushScissorRect";
|
|
283
|
+
x: number;
|
|
284
|
+
y: number;
|
|
285
|
+
width: number;
|
|
286
|
+
height: number;
|
|
287
|
+
}
|
|
288
|
+
interface RenderCommandPopScissorRect extends RenderCommandBase {
|
|
289
|
+
action: "popScissorRect";
|
|
290
|
+
}
|
|
291
|
+
interface RenderCommandRender extends RenderCommandBase {
|
|
292
|
+
action: "render";
|
|
293
|
+
renderable: Renderable;
|
|
294
|
+
}
|
|
295
|
+
export type RenderCommand = RenderCommandPushScissorRect | RenderCommandPopScissorRect | RenderCommandRender;
|
|
257
296
|
export declare class RootRenderable extends Renderable {
|
|
258
297
|
private yogaConfig;
|
|
298
|
+
private renderList;
|
|
259
299
|
constructor(ctx: RenderContext);
|
|
300
|
+
render(buffer: OptimizedBuffer, deltaTime: number): void;
|
|
260
301
|
protected propagateLiveCount(delta: number): void;
|
|
261
302
|
calculateLayout(): void;
|
|
262
303
|
resize(width: number, height: number): void;
|
|
263
|
-
protected onUpdate(): void;
|
|
264
304
|
protected destroySelf(): void;
|
|
265
305
|
}
|
|
266
306
|
export {};
|
package/buffer.d.ts
CHANGED
|
@@ -13,7 +13,9 @@ export declare class OptimizedBuffer {
|
|
|
13
13
|
private _height;
|
|
14
14
|
respectAlpha: boolean;
|
|
15
15
|
private _rawBuffers;
|
|
16
|
+
private _destroyed;
|
|
16
17
|
get ptr(): Pointer;
|
|
18
|
+
private guard;
|
|
17
19
|
get buffers(): {
|
|
18
20
|
char: Uint32Array;
|
|
19
21
|
fg: Float32Array;
|
|
@@ -28,11 +30,11 @@ export declare class OptimizedBuffer {
|
|
|
28
30
|
respectAlpha?: boolean;
|
|
29
31
|
id?: string;
|
|
30
32
|
}): OptimizedBuffer;
|
|
31
|
-
private coordsToIndex;
|
|
32
33
|
get width(): number;
|
|
33
34
|
get height(): number;
|
|
34
35
|
setRespectAlpha(respectAlpha: boolean): void;
|
|
35
36
|
getNativeId(): string;
|
|
37
|
+
getRealCharBytes(addLineBreaks?: boolean): Uint8Array;
|
|
36
38
|
clear(bg?: RGBA): void;
|
|
37
39
|
setCell(x: number, y: number, char: string, fg: RGBA, bg: RGBA, attributes?: number): void;
|
|
38
40
|
setCellWithAlphaBlending(x: number, y: number, char: string, fg: RGBA, bg: RGBA, attributes?: number): void;
|