@opentui/core 0.1.13 → 0.1.15
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 +3 -3
- package/3d.js.map +3 -3
- package/Renderable.d.ts +50 -18
- package/animation/Timeline.d.ts +11 -0
- package/buffer.d.ts +11 -27
- package/console.d.ts +2 -2
- package/{index-4gez9k7q.js → index-sw194bbj.js} +749 -846
- package/index-sw194bbj.js.map +36 -0
- package/index.js +1069 -137
- package/index.js.map +14 -11
- package/lib/KeyHandler.d.ts +6 -1
- package/lib/selection.d.ts +31 -38
- package/lib/styled-text.d.ts +0 -3
- package/package.json +7 -7
- package/renderables/ASCIIFont.d.ts +4 -2
- package/renderables/Box.d.ts +7 -1
- package/renderables/ScrollBar.d.ts +77 -0
- package/renderables/ScrollBox.d.ts +82 -0
- package/renderables/Slider.d.ts +31 -0
- package/renderables/Text.d.ts +22 -5
- package/renderables/composition/vnode.d.ts +13 -6
- package/renderables/index.d.ts +2 -0
- package/renderer.d.ts +10 -6
- package/text-buffer.d.ts +9 -10
- package/types.d.ts +24 -13
- package/zig.d.ts +24 -24
- package/index-4gez9k7q.js.map +0 -36
package/Renderable.d.ts
CHANGED
|
@@ -3,10 +3,12 @@ import { OptimizedBuffer } from "./buffer";
|
|
|
3
3
|
import { type KeyHandler } from "./lib/KeyHandler";
|
|
4
4
|
import { TrackedNode } from "./lib/TrackedNode";
|
|
5
5
|
import type { ParsedKey } from "./lib/parse.keypress";
|
|
6
|
-
import { type AlignString, type FlexDirectionString, type JustifyString, type PositionTypeString } from "./lib/yoga.options";
|
|
6
|
+
import { type AlignString, type FlexDirectionString, type JustifyString, type OverflowString, type PositionTypeString, type WrapString } from "./lib/yoga.options";
|
|
7
7
|
import type { MouseEvent } from "./renderer";
|
|
8
|
-
import type { RenderContext,
|
|
8
|
+
import type { RenderContext, ViewportBounds } from "./types";
|
|
9
9
|
import { type VNode } from "./renderables/composition/vnode";
|
|
10
|
+
import type { Selection } from "./lib/selection";
|
|
11
|
+
declare const BrandedRenderable: unique symbol;
|
|
10
12
|
export declare enum LayoutEvents {
|
|
11
13
|
LAYOUT_CHANGED = "layout-changed",
|
|
12
14
|
ADDED = "added",
|
|
@@ -27,18 +29,21 @@ export interface LayoutOptions {
|
|
|
27
29
|
flexGrow?: number;
|
|
28
30
|
flexShrink?: number;
|
|
29
31
|
flexDirection?: FlexDirectionString;
|
|
32
|
+
flexWrap?: WrapString;
|
|
30
33
|
alignItems?: AlignString;
|
|
31
34
|
justifyContent?: JustifyString;
|
|
35
|
+
alignSelf?: AlignString;
|
|
32
36
|
flexBasis?: number | "auto" | undefined;
|
|
33
37
|
position?: PositionTypeString;
|
|
38
|
+
overflow?: OverflowString;
|
|
34
39
|
top?: number | "auto" | `${number}%`;
|
|
35
40
|
right?: number | "auto" | `${number}%`;
|
|
36
41
|
bottom?: number | "auto" | `${number}%`;
|
|
37
42
|
left?: number | "auto" | `${number}%`;
|
|
38
|
-
minWidth?: number
|
|
39
|
-
minHeight?: number
|
|
40
|
-
maxWidth?: number
|
|
41
|
-
maxHeight?: number
|
|
43
|
+
minWidth?: number | "auto" | `${number}%`;
|
|
44
|
+
minHeight?: number | "auto" | `${number}%`;
|
|
45
|
+
maxWidth?: number | "auto" | `${number}%`;
|
|
46
|
+
maxHeight?: number | "auto" | `${number}%`;
|
|
42
47
|
margin?: number | "auto" | `${number}%`;
|
|
43
48
|
marginTop?: number | "auto" | `${number}%`;
|
|
44
49
|
marginRight?: number | "auto" | `${number}%`;
|
|
@@ -72,23 +77,29 @@ export interface RenderableOptions<T extends Renderable = Renderable> extends Pa
|
|
|
72
77
|
onMouseOut?: (this: T, event: MouseEvent) => void;
|
|
73
78
|
onMouseScroll?: (this: T, event: MouseEvent) => void;
|
|
74
79
|
onKeyDown?: (key: ParsedKey) => void;
|
|
80
|
+
onSizeChange?: (this: T) => void;
|
|
75
81
|
}
|
|
76
82
|
export declare function isValidPercentage(value: any): value is `${number}%`;
|
|
77
83
|
export declare function isMarginType(value: any): value is number | "auto" | `${number}%`;
|
|
78
84
|
export declare function isPaddingType(value: any): value is number | `${number}%`;
|
|
79
85
|
export declare function isPositionType(value: any): value is number | "auto" | `${number}%`;
|
|
80
|
-
export declare function
|
|
86
|
+
export declare function isPositionTypeType(value: any): value is PositionTypeString;
|
|
87
|
+
export declare function isOverflowType(value: any): value is OverflowString;
|
|
81
88
|
export declare function isDimensionType(value: any): value is number | "auto" | `${number}%`;
|
|
82
89
|
export declare function isFlexBasisType(value: any): value is number | "auto" | undefined;
|
|
83
90
|
export declare function isSizeType(value: any): value is number | `${number}%` | undefined;
|
|
91
|
+
export declare function isRenderable(obj: any): obj is Renderable;
|
|
84
92
|
export declare abstract class Renderable extends EventEmitter {
|
|
93
|
+
[BrandedRenderable]: boolean;
|
|
85
94
|
private static renderableNumber;
|
|
86
95
|
static renderablesByNumber: Map<number, Renderable>;
|
|
87
96
|
readonly id: string;
|
|
88
97
|
readonly num: number;
|
|
89
98
|
protected _ctx: RenderContext;
|
|
90
|
-
|
|
91
|
-
|
|
99
|
+
protected _translateX: number;
|
|
100
|
+
protected _translateY: number;
|
|
101
|
+
protected _x: number;
|
|
102
|
+
protected _y: number;
|
|
92
103
|
protected _width: number | "auto" | `${number}%`;
|
|
93
104
|
protected _height: number | "auto" | `${number}%`;
|
|
94
105
|
protected _widthValue: number;
|
|
@@ -105,17 +116,20 @@ export declare abstract class Renderable extends EventEmitter {
|
|
|
105
116
|
protected keypressHandler: ((key: ParsedKey) => void) | null;
|
|
106
117
|
private _live;
|
|
107
118
|
protected _liveCount: number;
|
|
119
|
+
private _sizeChangeListener;
|
|
108
120
|
private _mouseListener;
|
|
109
121
|
private _mouseListeners;
|
|
110
122
|
private _keyListeners;
|
|
111
123
|
protected layoutNode: TrackedNode;
|
|
112
124
|
protected _positionType: PositionTypeString;
|
|
125
|
+
protected _overflow: OverflowString;
|
|
113
126
|
protected _position: Position;
|
|
114
|
-
private _childHostOverride;
|
|
115
127
|
private renderableMap;
|
|
116
|
-
|
|
128
|
+
protected renderableArray: Renderable[];
|
|
117
129
|
private needsZIndexSort;
|
|
118
130
|
parent: Renderable | null;
|
|
131
|
+
private childrenPrimarySortDirty;
|
|
132
|
+
private childrenSortedByPrimaryAxis;
|
|
119
133
|
renderBefore?: (this: Renderable, buffer: OptimizedBuffer, deltaTime: number) => void;
|
|
120
134
|
renderAfter?: (this: Renderable, buffer: OptimizedBuffer, deltaTime: number) => void;
|
|
121
135
|
constructor(ctx: RenderContext, options: RenderableOptions<any>);
|
|
@@ -123,7 +137,7 @@ export declare abstract class Renderable extends EventEmitter {
|
|
|
123
137
|
get visible(): boolean;
|
|
124
138
|
set visible(value: boolean);
|
|
125
139
|
hasSelection(): boolean;
|
|
126
|
-
onSelectionChanged(selection:
|
|
140
|
+
onSelectionChanged(selection: Selection | null): boolean;
|
|
127
141
|
getSelectedText(): string;
|
|
128
142
|
shouldStartSelection(x: number, y: number): boolean;
|
|
129
143
|
focus(): void;
|
|
@@ -135,12 +149,13 @@ export declare abstract class Renderable extends EventEmitter {
|
|
|
135
149
|
protected propagateLiveCount(delta: number): void;
|
|
136
150
|
handleKeyPress?(key: ParsedKey | string): boolean;
|
|
137
151
|
protected get isDirty(): boolean;
|
|
138
|
-
get childHost(): Renderable;
|
|
139
|
-
set childHost(host: Renderable | null);
|
|
140
152
|
findDescendantById(id: string): Renderable | undefined;
|
|
141
|
-
setChildHostById(id: string): boolean;
|
|
142
153
|
private markClean;
|
|
143
|
-
|
|
154
|
+
requestRender(): void;
|
|
155
|
+
get translateX(): number;
|
|
156
|
+
set translateX(value: number);
|
|
157
|
+
get translateY(): number;
|
|
158
|
+
set translateY(value: number);
|
|
144
159
|
get x(): number;
|
|
145
160
|
set x(value: number);
|
|
146
161
|
get top(): number | "auto" | `${number}%` | undefined;
|
|
@@ -161,16 +176,22 @@ export declare abstract class Renderable extends EventEmitter {
|
|
|
161
176
|
set zIndex(value: number);
|
|
162
177
|
private requestZIndexSort;
|
|
163
178
|
private ensureZIndexSorted;
|
|
179
|
+
getChildrenInViewport(viewport: ViewportBounds, padding?: number, minTriggerSize?: number): Renderable[];
|
|
180
|
+
protected getChildrenSortedByPrimaryAxis(): Renderable[];
|
|
164
181
|
private setupYogaProperties;
|
|
165
182
|
private setupMarginAndPadding;
|
|
166
183
|
set position(positionType: PositionTypeString);
|
|
184
|
+
get overflow(): OverflowString;
|
|
185
|
+
set overflow(overflow: OverflowString);
|
|
167
186
|
setPosition(position: Position): void;
|
|
168
187
|
private updateYogaPosition;
|
|
169
188
|
set flexGrow(grow: number);
|
|
170
189
|
set flexShrink(shrink: number);
|
|
171
190
|
set flexDirection(direction: FlexDirectionString);
|
|
191
|
+
set flexWrap(wrap: WrapString);
|
|
172
192
|
set alignItems(alignItems: AlignString);
|
|
173
193
|
set justifyContent(justifyContent: JustifyString);
|
|
194
|
+
set alignSelf(alignSelf: AlignString);
|
|
174
195
|
set flexBasis(basis: number | "auto" | undefined);
|
|
175
196
|
set minWidth(minWidth: number | `${number}%` | undefined);
|
|
176
197
|
set maxWidth(maxWidth: number | `${number}%` | undefined);
|
|
@@ -199,8 +220,16 @@ export declare abstract class Renderable extends EventEmitter {
|
|
|
199
220
|
remove(id: string): void;
|
|
200
221
|
protected onRemove(): void;
|
|
201
222
|
getChildren(): Renderable[];
|
|
223
|
+
getChildrenCount(): number;
|
|
202
224
|
render(buffer: OptimizedBuffer, deltaTime: number): void;
|
|
203
|
-
protected
|
|
225
|
+
protected _getChildren(): Renderable[];
|
|
226
|
+
protected onUpdate(deltaTime: number): void;
|
|
227
|
+
protected getScissorRect(): {
|
|
228
|
+
x: number;
|
|
229
|
+
y: number;
|
|
230
|
+
width: number;
|
|
231
|
+
height: number;
|
|
232
|
+
};
|
|
204
233
|
protected renderSelf(buffer: OptimizedBuffer, deltaTime: number): void;
|
|
205
234
|
destroy(): void;
|
|
206
235
|
destroyRecursively(): void;
|
|
@@ -219,6 +248,8 @@ export declare abstract class Renderable extends EventEmitter {
|
|
|
219
248
|
set onMouseScroll(handler: ((event: MouseEvent) => void) | undefined);
|
|
220
249
|
set onKeyDown(handler: ((key: ParsedKey) => void) | undefined);
|
|
221
250
|
get onKeyDown(): ((key: ParsedKey) => void) | undefined;
|
|
251
|
+
set onSizeChange(handler: (() => void) | undefined);
|
|
252
|
+
get onSizeChange(): (() => void) | undefined;
|
|
222
253
|
private applyEventOptions;
|
|
223
254
|
}
|
|
224
255
|
export declare class RootRenderable extends Renderable {
|
|
@@ -227,6 +258,7 @@ export declare class RootRenderable extends Renderable {
|
|
|
227
258
|
protected propagateLiveCount(delta: number): void;
|
|
228
259
|
calculateLayout(): void;
|
|
229
260
|
resize(width: number, height: number): void;
|
|
230
|
-
protected
|
|
261
|
+
protected onUpdate(): void;
|
|
231
262
|
protected destroySelf(): void;
|
|
232
263
|
}
|
|
264
|
+
export {};
|
package/animation/Timeline.d.ts
CHANGED
|
@@ -88,7 +88,11 @@ export declare class Timeline {
|
|
|
88
88
|
private autoplay;
|
|
89
89
|
private onComplete?;
|
|
90
90
|
private onPause?;
|
|
91
|
+
private stateChangeListeners;
|
|
91
92
|
constructor(options?: TimelineOptions);
|
|
93
|
+
addStateChangeListener(listener: (timeline: Timeline) => void): void;
|
|
94
|
+
removeStateChangeListener(listener: (timeline: Timeline) => void): void;
|
|
95
|
+
private notifyStateChange;
|
|
92
96
|
add(target: any, properties: AnimationOptions, startTime?: number | string): this;
|
|
93
97
|
once(target: any, properties: AnimationOptions): this;
|
|
94
98
|
call(callback: () => void, startTime?: number | string): this;
|
|
@@ -101,9 +105,16 @@ export declare class Timeline {
|
|
|
101
105
|
}
|
|
102
106
|
declare class TimelineEngine {
|
|
103
107
|
private timelines;
|
|
108
|
+
private renderer;
|
|
109
|
+
private frameCallback;
|
|
110
|
+
private isLive;
|
|
104
111
|
defaults: {
|
|
105
112
|
frameRate: number;
|
|
106
113
|
};
|
|
114
|
+
attach(renderer: any): void;
|
|
115
|
+
detach(): void;
|
|
116
|
+
private updateLiveState;
|
|
117
|
+
private onTimelineStateChange;
|
|
107
118
|
register(timeline: Timeline): void;
|
|
108
119
|
unregister(timeline: Timeline): void;
|
|
109
120
|
clear(): void;
|
package/buffer.d.ts
CHANGED
|
@@ -9,44 +9,33 @@ export declare class OptimizedBuffer {
|
|
|
9
9
|
id: string;
|
|
10
10
|
lib: RenderLib;
|
|
11
11
|
private bufferPtr;
|
|
12
|
-
private buffer;
|
|
13
12
|
private _width;
|
|
14
13
|
private _height;
|
|
15
14
|
respectAlpha: boolean;
|
|
16
|
-
private
|
|
15
|
+
private _rawBuffers;
|
|
17
16
|
get ptr(): Pointer;
|
|
18
|
-
|
|
17
|
+
get buffers(): {
|
|
19
18
|
char: Uint32Array;
|
|
20
19
|
fg: Float32Array;
|
|
21
20
|
bg: Float32Array;
|
|
22
21
|
attributes: Uint8Array;
|
|
23
|
-
}
|
|
22
|
+
};
|
|
23
|
+
constructor(lib: RenderLib, ptr: Pointer, width: number, height: number, options: {
|
|
24
24
|
respectAlpha?: boolean;
|
|
25
|
+
id?: string;
|
|
25
26
|
});
|
|
26
27
|
static create(width: number, height: number, widthMethod: WidthMethod, options?: {
|
|
27
28
|
respectAlpha?: boolean;
|
|
29
|
+
id?: string;
|
|
28
30
|
}): OptimizedBuffer;
|
|
29
|
-
get buffers(): {
|
|
30
|
-
char: Uint32Array;
|
|
31
|
-
fg: Float32Array;
|
|
32
|
-
bg: Float32Array;
|
|
33
|
-
attributes: Uint8Array;
|
|
34
|
-
};
|
|
35
31
|
private coordsToIndex;
|
|
36
32
|
get width(): number;
|
|
37
33
|
get height(): number;
|
|
38
34
|
setRespectAlpha(respectAlpha: boolean): void;
|
|
39
|
-
|
|
40
|
-
|
|
35
|
+
getNativeId(): string;
|
|
36
|
+
clear(bg?: RGBA): void;
|
|
41
37
|
setCell(x: number, y: number, char: string, fg: RGBA, bg: RGBA, attributes?: number): void;
|
|
42
|
-
get(x: number, y: number): {
|
|
43
|
-
char: number;
|
|
44
|
-
fg: RGBA;
|
|
45
|
-
bg: RGBA;
|
|
46
|
-
attributes: number;
|
|
47
|
-
} | null;
|
|
48
38
|
setCellWithAlphaBlending(x: number, y: number, char: string, fg: RGBA, bg: RGBA, attributes?: number): void;
|
|
49
|
-
setCellWithAlphaBlendingLocal(x: number, y: number, char: string, fg: RGBA, bg: RGBA, attributes?: number): void;
|
|
50
39
|
drawText(text: string, x: number, y: number, fg: RGBA, bg?: RGBA, attributes?: number, selection?: {
|
|
51
40
|
start: number;
|
|
52
41
|
end: number;
|
|
@@ -54,9 +43,7 @@ export declare class OptimizedBuffer {
|
|
|
54
43
|
fgColor?: RGBA;
|
|
55
44
|
} | null): void;
|
|
56
45
|
fillRect(x: number, y: number, width: number, height: number, bg: RGBA): void;
|
|
57
|
-
fillRectLocal(x: number, y: number, width: number, height: number, bg: RGBA): void;
|
|
58
46
|
drawFrameBuffer(destX: number, destY: number, frameBuffer: OptimizedBuffer, sourceX?: number, sourceY?: number, sourceWidth?: number, sourceHeight?: number): void;
|
|
59
|
-
drawFrameBufferLocal(destX: number, destY: number, frameBuffer: OptimizedBuffer, sourceX?: number, sourceY?: number, sourceWidth?: number, sourceHeight?: number): void;
|
|
60
47
|
destroy(): void;
|
|
61
48
|
drawTextBuffer(textBuffer: TextBuffer, x: number, y: number, clipRect?: {
|
|
62
49
|
x: number;
|
|
@@ -65,14 +52,8 @@ export declare class OptimizedBuffer {
|
|
|
65
52
|
height: number;
|
|
66
53
|
}): void;
|
|
67
54
|
drawSuperSampleBuffer(x: number, y: number, pixelDataPtr: Pointer, pixelDataLength: number, format: "bgra8unorm" | "rgba8unorm", alignedBytesPerRow: number): void;
|
|
68
|
-
drawSuperSampleBufferFFI(x: number, y: number, pixelDataPtr: Pointer, pixelDataLength: number, format: "bgra8unorm" | "rgba8unorm", alignedBytesPerRow: number): void;
|
|
69
55
|
drawPackedBuffer(dataPtr: Pointer, dataLen: number, posX: number, posY: number, terminalWidthCells: number, terminalHeightCells: number): void;
|
|
70
|
-
setCellWithAlphaBlendingFFI(x: number, y: number, char: string, fg: RGBA, bg: RGBA, attributes?: number): void;
|
|
71
|
-
fillRectFFI(x: number, y: number, width: number, height: number, bg: RGBA): void;
|
|
72
56
|
resize(width: number, height: number): void;
|
|
73
|
-
clearFFI(bg?: RGBA): void;
|
|
74
|
-
drawTextFFI(text: string, x: number, y: number, fg?: RGBA, bg?: RGBA, attributes?: number): void;
|
|
75
|
-
drawFrameBufferFFI(destX: number, destY: number, frameBuffer: OptimizedBuffer, sourceX?: number, sourceY?: number, sourceWidth?: number, sourceHeight?: number): void;
|
|
76
57
|
drawBox(options: {
|
|
77
58
|
x: number;
|
|
78
59
|
y: number;
|
|
@@ -87,4 +68,7 @@ export declare class OptimizedBuffer {
|
|
|
87
68
|
title?: string;
|
|
88
69
|
titleAlignment?: "left" | "center" | "right";
|
|
89
70
|
}): void;
|
|
71
|
+
pushScissorRect(x: number, y: number, width: number, height: number): void;
|
|
72
|
+
popScissorRect(): void;
|
|
73
|
+
clearScissorRects(): void;
|
|
90
74
|
}
|
package/console.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { CliRenderer, ColorInput } from ".";
|
|
2
1
|
import { EventEmitter } from "events";
|
|
2
|
+
import type { CliRenderer, ColorInput } from ".";
|
|
3
3
|
import { OptimizedBuffer } from "./buffer";
|
|
4
4
|
import { Capture } from "./lib/output.capture";
|
|
5
5
|
export declare const capture: Capture;
|
|
@@ -45,7 +45,7 @@ export declare class TerminalConsole extends EventEmitter {
|
|
|
45
45
|
private _displayLines;
|
|
46
46
|
private _allLogEntries;
|
|
47
47
|
private _needsFrameBufferUpdate;
|
|
48
|
-
private
|
|
48
|
+
private markNeedsRerender;
|
|
49
49
|
private _rgbaInfo;
|
|
50
50
|
private _rgbaWarn;
|
|
51
51
|
private _rgbaError;
|