@opentui/core 0.1.5 → 0.1.7
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 +154 -91
- package/LICENSE +21 -0
- package/README.md +2 -0
- package/Renderable.d.ts +1 -0
- package/ansi.d.ts +2 -0
- package/index.d.ts +1 -0
- package/index.js +542 -385
- package/lib/hast-styled-text.d.ts +38 -0
- package/lib/index.d.ts +1 -0
- package/lib/styled-text.d.ts +5 -3
- package/package.json +15 -8
- package/renderer.d.ts +1 -2
- package/zig.d.ts +3 -1
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { RGBA } from "../types";
|
|
2
|
+
import { StyledText } from "./styled-text";
|
|
3
|
+
export interface HASTText {
|
|
4
|
+
type: "text";
|
|
5
|
+
value: string;
|
|
6
|
+
}
|
|
7
|
+
export interface HASTElement {
|
|
8
|
+
type: "element";
|
|
9
|
+
tagName: string;
|
|
10
|
+
properties?: {
|
|
11
|
+
className?: string;
|
|
12
|
+
};
|
|
13
|
+
children: HASTNode[];
|
|
14
|
+
}
|
|
15
|
+
export type HASTNode = HASTText | HASTElement;
|
|
16
|
+
export interface StyleDefinition {
|
|
17
|
+
fg?: RGBA;
|
|
18
|
+
bg?: RGBA;
|
|
19
|
+
bold?: boolean;
|
|
20
|
+
italic?: boolean;
|
|
21
|
+
underline?: boolean;
|
|
22
|
+
dim?: boolean;
|
|
23
|
+
}
|
|
24
|
+
interface MergedStyle {
|
|
25
|
+
fg?: RGBA;
|
|
26
|
+
bg?: RGBA;
|
|
27
|
+
attributes: number;
|
|
28
|
+
}
|
|
29
|
+
export declare class SyntaxStyle {
|
|
30
|
+
private styles;
|
|
31
|
+
private mergedStyleCache;
|
|
32
|
+
constructor(styles: Record<string, StyleDefinition>);
|
|
33
|
+
mergeStyles(...styleNames: string[]): MergedStyle;
|
|
34
|
+
clearCache(): void;
|
|
35
|
+
getCacheSize(): number;
|
|
36
|
+
}
|
|
37
|
+
export declare function hastToStyledText(hast: HASTNode, syntaxStyle: SyntaxStyle): StyledText;
|
|
38
|
+
export {};
|
package/lib/index.d.ts
CHANGED
package/lib/styled-text.d.ts
CHANGED
|
@@ -14,11 +14,13 @@ export interface StyleAttrs {
|
|
|
14
14
|
}
|
|
15
15
|
export declare class StyledText {
|
|
16
16
|
readonly chunks: TextChunk[];
|
|
17
|
-
private _length;
|
|
18
17
|
private _plainText;
|
|
19
|
-
constructor(chunks: TextChunk[]
|
|
18
|
+
constructor(chunks: TextChunk[]);
|
|
20
19
|
toString(): string;
|
|
21
|
-
|
|
20
|
+
private _chunksToPlainText;
|
|
21
|
+
insert(chunk: TextChunk, index?: number): void;
|
|
22
|
+
remove(chunk: TextChunk): void;
|
|
23
|
+
replace(chunk: TextChunk, oldChunk: TextChunk): void;
|
|
22
24
|
}
|
|
23
25
|
export declare function stringToStyledText(content: string): StyledText;
|
|
24
26
|
export type StylableInput = string | number | boolean | TextChunk;
|
package/package.json
CHANGED
|
@@ -4,12 +4,13 @@
|
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"types": "index.d.ts",
|
|
6
6
|
"type": "module",
|
|
7
|
-
"version": "0.1.
|
|
7
|
+
"version": "0.1.7",
|
|
8
8
|
"description": "OpenTUI is a TypeScript library for building terminal user interfaces (TUIs)",
|
|
9
9
|
"license": "MIT",
|
|
10
10
|
"repository": {
|
|
11
11
|
"type": "git",
|
|
12
|
-
"url": "https://github.com/sst/opentui"
|
|
12
|
+
"url": "https://github.com/sst/opentui",
|
|
13
|
+
"directory": "packages/core"
|
|
13
14
|
},
|
|
14
15
|
"exports": {
|
|
15
16
|
".": {
|
|
@@ -27,16 +28,22 @@
|
|
|
27
28
|
"jimp": "1.6.0",
|
|
28
29
|
"yoga-layout": "3.2.1"
|
|
29
30
|
},
|
|
31
|
+
"devDependencies": {
|
|
32
|
+
"@types/bun": "latest",
|
|
33
|
+
"@types/three": "^0.177.0",
|
|
34
|
+
"commander": "^13.1.0",
|
|
35
|
+
"prettier": "3.6.2"
|
|
36
|
+
},
|
|
30
37
|
"optionalDependencies": {
|
|
31
38
|
"@dimforge/rapier2d-simd-compat": "^0.17.3",
|
|
32
39
|
"bun-webgpu": "0.1.3",
|
|
33
40
|
"planck": "^1.4.2",
|
|
34
41
|
"three": "0.177.0",
|
|
35
|
-
"@opentui/core-darwin-x64": "0.1.
|
|
36
|
-
"@opentui/core-darwin-arm64": "0.1.
|
|
37
|
-
"@opentui/core-linux-x64": "0.1.
|
|
38
|
-
"@opentui/core-linux-arm64": "0.1.
|
|
39
|
-
"@opentui/core-win32-x64": "0.1.
|
|
40
|
-
"@opentui/core-win32-arm64": "0.1.
|
|
42
|
+
"@opentui/core-darwin-x64": "0.1.7",
|
|
43
|
+
"@opentui/core-darwin-arm64": "0.1.7",
|
|
44
|
+
"@opentui/core-linux-x64": "0.1.7",
|
|
45
|
+
"@opentui/core-linux-arm64": "0.1.7",
|
|
46
|
+
"@opentui/core-win32-x64": "0.1.7",
|
|
47
|
+
"@opentui/core-win32-arm64": "0.1.7"
|
|
41
48
|
}
|
|
42
49
|
}
|
package/renderer.d.ts
CHANGED
|
@@ -67,7 +67,6 @@ export declare class CliRenderer extends EventEmitter {
|
|
|
67
67
|
private stdout;
|
|
68
68
|
private exitOnCtrlC;
|
|
69
69
|
private isDestroyed;
|
|
70
|
-
private isShuttingDown;
|
|
71
70
|
nextRenderBuffer: OptimizedBuffer;
|
|
72
71
|
currentRenderBuffer: OptimizedBuffer;
|
|
73
72
|
private _isRunning;
|
|
@@ -85,6 +84,7 @@ export declare class CliRenderer extends EventEmitter {
|
|
|
85
84
|
private postProcessFns;
|
|
86
85
|
private backgroundColor;
|
|
87
86
|
private waitingForPixelResolution;
|
|
87
|
+
private shutdownRequested;
|
|
88
88
|
private rendering;
|
|
89
89
|
private renderingNative;
|
|
90
90
|
private renderTimeout;
|
|
@@ -146,7 +146,6 @@ export declare class CliRenderer extends EventEmitter {
|
|
|
146
146
|
private enableMouse;
|
|
147
147
|
private disableMouse;
|
|
148
148
|
set useThread(useThread: boolean);
|
|
149
|
-
setTerminalSize(width: number, height: number): void;
|
|
150
149
|
private setupTerminal;
|
|
151
150
|
private handleMouseData;
|
|
152
151
|
private takeMemorySnapshot;
|
package/zig.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ import { OptimizedBuffer } from "./buffer";
|
|
|
5
5
|
import { TextBuffer } from "./text-buffer";
|
|
6
6
|
export interface RenderLib {
|
|
7
7
|
createRenderer: (width: number, height: number) => Pointer | null;
|
|
8
|
-
destroyRenderer: (renderer: Pointer) => void;
|
|
8
|
+
destroyRenderer: (renderer: Pointer, useAlternateScreen: boolean, splitHeight: number) => void;
|
|
9
9
|
setUseThread: (renderer: Pointer, useThread: boolean) => void;
|
|
10
10
|
setBackgroundColor: (renderer: Pointer, color: RGBA) => void;
|
|
11
11
|
setRenderOffset: (renderer: Pointer, offset: number) => void;
|
|
@@ -49,6 +49,8 @@ export interface RenderLib {
|
|
|
49
49
|
dumpHitGrid: (renderer: Pointer) => void;
|
|
50
50
|
dumpBuffers: (renderer: Pointer, timestamp?: number) => void;
|
|
51
51
|
dumpStdoutBuffer: (renderer: Pointer, timestamp?: number) => void;
|
|
52
|
+
enableMouse: (renderer: Pointer, enableMovement: boolean) => void;
|
|
53
|
+
disableMouse: (renderer: Pointer) => void;
|
|
52
54
|
createTextBuffer: (capacity: number) => TextBuffer;
|
|
53
55
|
destroyTextBuffer: (buffer: Pointer) => void;
|
|
54
56
|
textBufferGetCharPtr: (buffer: Pointer) => Pointer;
|