@cascadetui/core 0.1.4 → 0.1.6
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/Advanced3D.d.ts +161 -0
- package/3d/WGPURenderer.d.ts +13 -1
- package/3d/index.d.ts +1 -0
- package/3d.js +451 -6
- package/3d.js.map +5 -4
- package/Renderable.d.ts +4 -0
- package/{index-jx194wn1.js → index-rj3f00a6.js} +313 -36
- package/{index-jx194wn1.js.map → index-rj3f00a6.js.map} +7 -7
- package/index.js +205 -4
- package/index.js.map +4 -4
- package/lib/parse.mouse.d.ts +2 -2
- package/lib/stdin-buffer.d.ts +2 -1
- package/package.json +7 -7
- package/renderables/TextBufferRenderable.d.ts +16 -0
- package/renderables/TextNode.d.ts +8 -0
- package/renderer.d.ts +42 -2
- package/testing.js +1 -1
- package/types.d.ts +6 -0
package/lib/parse.mouse.d.ts
CHANGED
|
@@ -20,8 +20,8 @@ export declare class MouseParser {
|
|
|
20
20
|
private static readonly SCROLL_DIRECTIONS;
|
|
21
21
|
reset(): void;
|
|
22
22
|
private decodeInput;
|
|
23
|
-
parseMouseEvent(data: Buffer): RawMouseEvent | null;
|
|
24
|
-
parseAllMouseEvents(data: Buffer): RawMouseEvent[];
|
|
23
|
+
parseMouseEvent(data: Buffer | string | Uint8Array | ArrayBuffer): RawMouseEvent | null;
|
|
24
|
+
parseAllMouseEvents(data: Buffer | string | Uint8Array | ArrayBuffer): RawMouseEvent[];
|
|
25
25
|
private parseMouseSequenceAt;
|
|
26
26
|
private parseSgrSequence;
|
|
27
27
|
private parseBasicSequence;
|
package/lib/stdin-buffer.d.ts
CHANGED
|
@@ -36,9 +36,10 @@ export declare class StdinBuffer extends EventEmitter<StdinBufferEventMap> {
|
|
|
36
36
|
private pasteMode;
|
|
37
37
|
private pasteBuffer;
|
|
38
38
|
constructor(options?: StdinBufferOptions);
|
|
39
|
-
process(data: string | Buffer): void;
|
|
39
|
+
process(data: string | Buffer | Uint8Array | ArrayBuffer): void;
|
|
40
40
|
flush(): string[];
|
|
41
41
|
clear(): void;
|
|
42
42
|
getBuffer(): string;
|
|
43
43
|
destroy(): void;
|
|
44
|
+
private toBuffer;
|
|
44
45
|
}
|
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.6",
|
|
8
8
|
"description": "Cascade is a TypeScript library on a native Zig core for building terminal user interfaces (TUIs)",
|
|
9
9
|
"license": "MIT",
|
|
10
10
|
"repository": {
|
|
@@ -57,11 +57,11 @@
|
|
|
57
57
|
"bun-webgpu": "0.1.5",
|
|
58
58
|
"planck": "^1.4.2",
|
|
59
59
|
"three": "0.177.0",
|
|
60
|
-
"@cascadetui/core-win32-x64": "0.1.
|
|
61
|
-
"@cascadetui/core-win32-arm64": "0.1.
|
|
62
|
-
"@cascadetui/core-darwin-x64": "0.1.
|
|
63
|
-
"@cascadetui/core-darwin-arm64": "0.1.
|
|
64
|
-
"@cascadetui/core-linux-x64": "0.1.
|
|
65
|
-
"@cascadetui/core-linux-arm64": "0.1.
|
|
60
|
+
"@cascadetui/core-win32-x64": "0.1.6",
|
|
61
|
+
"@cascadetui/core-win32-arm64": "0.1.6",
|
|
62
|
+
"@cascadetui/core-darwin-x64": "0.1.6",
|
|
63
|
+
"@cascadetui/core-darwin-arm64": "0.1.6",
|
|
64
|
+
"@cascadetui/core-linux-x64": "0.1.6",
|
|
65
|
+
"@cascadetui/core-linux-arm64": "0.1.6"
|
|
66
66
|
}
|
|
67
67
|
}
|
|
@@ -14,6 +14,14 @@ export interface TextBufferOptions extends RenderableOptions<TextBufferRenderabl
|
|
|
14
14
|
selectionFg?: string | RGBA;
|
|
15
15
|
selectable?: boolean;
|
|
16
16
|
attributes?: number;
|
|
17
|
+
bold?: boolean;
|
|
18
|
+
italic?: boolean;
|
|
19
|
+
underline?: boolean;
|
|
20
|
+
dim?: boolean;
|
|
21
|
+
blink?: boolean;
|
|
22
|
+
inverse?: boolean;
|
|
23
|
+
hidden?: boolean;
|
|
24
|
+
strikethrough?: boolean;
|
|
17
25
|
wrapMode?: "none" | "char" | "word";
|
|
18
26
|
tabIndicator?: string | number;
|
|
19
27
|
tabIndicatorColor?: string | RGBA;
|
|
@@ -89,6 +97,9 @@ export declare abstract class TextBufferRenderable extends Renderable implements
|
|
|
89
97
|
protected updateTextInfo(): void;
|
|
90
98
|
private setupMeasureFunc;
|
|
91
99
|
shouldStartSelection(x: number, y: number): boolean;
|
|
100
|
+
selectWord(x: number, y: number): boolean;
|
|
101
|
+
selectLine(x: number, y: number): boolean;
|
|
102
|
+
updateSelectionWordSnap(x: number, y: number): boolean;
|
|
92
103
|
onSelectionChanged(selection: Selection | null): boolean;
|
|
93
104
|
getSelectedText(): string;
|
|
94
105
|
hasSelection(): boolean;
|
|
@@ -96,6 +107,11 @@ export declare abstract class TextBufferRenderable extends Renderable implements
|
|
|
96
107
|
start: number;
|
|
97
108
|
end: number;
|
|
98
109
|
} | null;
|
|
110
|
+
private resolveOffsetAtLocalPoint;
|
|
111
|
+
private getLineRangeAtOffset;
|
|
112
|
+
private getWordRangeAtOffset;
|
|
113
|
+
private readTextRange;
|
|
114
|
+
private resolveGlobalPointFromOffset;
|
|
99
115
|
render(buffer: OptimizedBuffer, deltaTime: number): void;
|
|
100
116
|
protected renderSelf(buffer: OptimizedBuffer): void;
|
|
101
117
|
destroy(): void;
|
|
@@ -8,6 +8,14 @@ export interface TextNodeOptions extends BaseRenderableOptions {
|
|
|
8
8
|
fg?: string | RGBA;
|
|
9
9
|
bg?: string | RGBA;
|
|
10
10
|
attributes?: number;
|
|
11
|
+
bold?: boolean;
|
|
12
|
+
italic?: boolean;
|
|
13
|
+
underline?: boolean;
|
|
14
|
+
dim?: boolean;
|
|
15
|
+
blink?: boolean;
|
|
16
|
+
inverse?: boolean;
|
|
17
|
+
hidden?: boolean;
|
|
18
|
+
strikethrough?: boolean;
|
|
11
19
|
link?: {
|
|
12
20
|
url: string;
|
|
13
21
|
};
|
package/renderer.d.ts
CHANGED
|
@@ -37,6 +37,7 @@ export interface CliRendererConfig {
|
|
|
37
37
|
useKittyKeyboard?: KittyKeyboardOptions | null;
|
|
38
38
|
backgroundColor?: ColorInput;
|
|
39
39
|
openConsoleOnError?: boolean;
|
|
40
|
+
logCrashReportsToConsole?: boolean;
|
|
40
41
|
prependInputHandlers?: ((sequence: string) => boolean)[];
|
|
41
42
|
onDestroy?: () => void;
|
|
42
43
|
}
|
|
@@ -81,16 +82,20 @@ export declare class MouseEvent {
|
|
|
81
82
|
readonly scroll?: ScrollInfo;
|
|
82
83
|
readonly target: Renderable | null;
|
|
83
84
|
readonly isDragging?: boolean;
|
|
85
|
+
readonly clickCount: number;
|
|
84
86
|
private _propagationStopped;
|
|
85
87
|
private _defaultPrevented;
|
|
88
|
+
private _visitedRenderableNums;
|
|
86
89
|
get propagationStopped(): boolean;
|
|
87
90
|
get defaultPrevented(): boolean;
|
|
88
91
|
constructor(target: Renderable | null, attributes: RawMouseEvent & {
|
|
89
92
|
source?: Renderable;
|
|
90
93
|
isDragging?: boolean;
|
|
94
|
+
clickCount?: number;
|
|
91
95
|
});
|
|
92
96
|
stopPropagation(): void;
|
|
93
97
|
preventDefault(): void;
|
|
98
|
+
tryVisit(renderable: Renderable): boolean;
|
|
94
99
|
}
|
|
95
100
|
export declare enum MouseButton {
|
|
96
101
|
LEFT = 0,
|
|
@@ -102,8 +107,21 @@ export declare enum MouseButton {
|
|
|
102
107
|
export declare function createCliRenderer(config?: CliRendererConfig): Promise<CliRenderer>;
|
|
103
108
|
export declare enum CliRenderEvents {
|
|
104
109
|
DEBUG_OVERLAY_TOGGLE = "debugOverlay:toggle",
|
|
105
|
-
DESTROY = "destroy"
|
|
110
|
+
DESTROY = "destroy",
|
|
111
|
+
CRASH = "crash"
|
|
106
112
|
}
|
|
113
|
+
export type RuntimeEventRecord = {
|
|
114
|
+
timestamp: string;
|
|
115
|
+
type: string;
|
|
116
|
+
payload: Record<string, unknown>;
|
|
117
|
+
};
|
|
118
|
+
export type CrashReport = {
|
|
119
|
+
timestamp: string;
|
|
120
|
+
source: string;
|
|
121
|
+
message: string;
|
|
122
|
+
stack?: string;
|
|
123
|
+
recentEvents: RuntimeEventRecord[];
|
|
124
|
+
};
|
|
107
125
|
export declare enum RendererControlState {
|
|
108
126
|
IDLE = "idle",
|
|
109
127
|
AUTO_STARTED = "auto_started",
|
|
@@ -197,9 +215,12 @@ export declare class CliRenderer extends EventEmitter implements RenderContext {
|
|
|
197
215
|
private _hasPointer;
|
|
198
216
|
private _lastPointerModifiers;
|
|
199
217
|
private _currentMousePointerStyle;
|
|
218
|
+
private _lastClick;
|
|
219
|
+
private readonly clickCountThresholdMs;
|
|
200
220
|
private _currentFocusedRenderable;
|
|
201
221
|
private lifecyclePasses;
|
|
202
222
|
private _openConsoleOnError;
|
|
223
|
+
private _logCrashReportsToConsole;
|
|
203
224
|
private _paletteDetector;
|
|
204
225
|
private _cachedPalette;
|
|
205
226
|
private _paletteDetectionPromise;
|
|
@@ -210,7 +231,13 @@ export declare class CliRenderer extends EventEmitter implements RenderContext {
|
|
|
210
231
|
private idleResolvers;
|
|
211
232
|
private _debugInputs;
|
|
212
233
|
private _debugModeEnabled;
|
|
213
|
-
private
|
|
234
|
+
private recentRuntimeEvents;
|
|
235
|
+
private crashReports;
|
|
236
|
+
private maxRecentRuntimeEvents;
|
|
237
|
+
private maxCrashReports;
|
|
238
|
+
private handleProcessCrash;
|
|
239
|
+
private uncaughtExceptionHandler;
|
|
240
|
+
private unhandledRejectionHandler;
|
|
214
241
|
private dumpOutputCache;
|
|
215
242
|
private exitHandler;
|
|
216
243
|
private warningHandler;
|
|
@@ -303,6 +330,15 @@ export declare class CliRenderer extends EventEmitter implements RenderContext {
|
|
|
303
330
|
}): void;
|
|
304
331
|
setTerminalTitle(title: string): void;
|
|
305
332
|
copyToClipboardOSC52(text: string, target?: ClipboardTarget): boolean;
|
|
333
|
+
private normalizeInputChunk;
|
|
334
|
+
private resolveClickCount;
|
|
335
|
+
private normalizeCrashError;
|
|
336
|
+
private recordRuntimeEvent;
|
|
337
|
+
reportCrash(reason: unknown, source?: string, extra?: Record<string, unknown>): CrashReport;
|
|
338
|
+
private formatCrashReportForConsole;
|
|
339
|
+
getCrashReports(): CrashReport[];
|
|
340
|
+
getRecentRuntimeEvents(): RuntimeEventRecord[];
|
|
341
|
+
clearCrashReports(): void;
|
|
306
342
|
copyToSystemClipboard(text: string): boolean;
|
|
307
343
|
readFromSystemClipboard(): string | null;
|
|
308
344
|
copyToClipboard(text: string, target?: ClipboardTarget): boolean;
|
|
@@ -357,6 +393,9 @@ export declare class CliRenderer extends EventEmitter implements RenderContext {
|
|
|
357
393
|
get hasSelection(): boolean;
|
|
358
394
|
getSelectionContainer(): Renderable | null;
|
|
359
395
|
clearSelection(): void;
|
|
396
|
+
selectWord(x: number, y: number): void;
|
|
397
|
+
selectLine(x: number, y: number): void;
|
|
398
|
+
updateSelectionWordSnap(x: number, y: number): void;
|
|
360
399
|
/**
|
|
361
400
|
* Start a new selection at the given coordinates.
|
|
362
401
|
* Used by both mouse and keyboard selection.
|
|
@@ -368,6 +407,7 @@ export declare class CliRenderer extends EventEmitter implements RenderContext {
|
|
|
368
407
|
requestSelectionUpdate(): void;
|
|
369
408
|
private isWithinContainer;
|
|
370
409
|
private finishSelection;
|
|
410
|
+
private resolveSelectionMethodTarget;
|
|
371
411
|
private notifySelectablesOfSelectionChange;
|
|
372
412
|
private walkSelectableRenderables;
|
|
373
413
|
get paletteDetectionStatus(): "idle" | "detecting" | "cached";
|
package/testing.js
CHANGED
package/types.d.ts
CHANGED
|
@@ -48,6 +48,12 @@ export interface RendererEvents {
|
|
|
48
48
|
selection: (selection: Selection) => void;
|
|
49
49
|
"debugOverlay:toggle": (enabled: boolean) => void;
|
|
50
50
|
theme_mode: (mode: ThemeMode) => void;
|
|
51
|
+
crash: (report: {
|
|
52
|
+
timestamp: string;
|
|
53
|
+
source: string;
|
|
54
|
+
message: string;
|
|
55
|
+
stack?: string;
|
|
56
|
+
}) => void;
|
|
51
57
|
}
|
|
52
58
|
export interface RenderContext extends EventEmitter {
|
|
53
59
|
addToHitGrid: (x: number, y: number, width: number, height: number, id: number) => void;
|