@opentui/core 0.1.101 → 0.1.103
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/buffer.d.ts +3 -0
- package/{index-xsfpee0k.js → index-4pvh4sbk.js} +3221 -312
- package/index-4pvh4sbk.js.map +76 -0
- package/{index-9qfn9g6r.js → index-bmcatvmp.js} +3 -3
- package/{index-ekbq0zm9.js → index-gw3ynrc0.js} +357 -1671
- package/index-gw3ynrc0.js.map +35 -0
- package/index.js +33 -13
- package/index.js.map +1 -1
- package/lib/RGBA.d.ts +27 -3
- package/lib/render-geometry.d.ts +8 -0
- package/lib/stdin-parser.d.ts +2 -1
- package/lib/terminal-palette.d.ts +8 -0
- package/package.json +7 -7
- package/renderables/Markdown.d.ts +30 -0
- package/renderables/TextBufferRenderable.d.ts +1 -0
- package/renderables/TextTable.d.ts +7 -0
- package/renderables/markdown-parser.d.ts +1 -0
- package/renderer-theme-mode.d.ts +29 -0
- package/renderer.d.ts +77 -8
- package/runtime-plugin-support.js +3 -3
- package/runtime-plugin.js +3 -3
- package/testing.js +7 -4
- package/testing.js.map +3 -3
- package/text-buffer-view.d.ts +1 -0
- package/types.d.ts +1 -0
- package/zig-structs.d.ts +7 -1
- package/zig.d.ts +12 -0
- package/index-ekbq0zm9.js.map +0 -42
- package/index-xsfpee0k.js.map +0 -67
- /package/{index-9qfn9g6r.js.map → index-bmcatvmp.js.map} +0 -0
package/index.js
CHANGED
|
@@ -6,11 +6,9 @@ import {
|
|
|
6
6
|
ArrowRenderable,
|
|
7
7
|
BloomEffect,
|
|
8
8
|
Box,
|
|
9
|
-
BoxRenderable,
|
|
10
9
|
CRTRollingBarEffect,
|
|
11
10
|
CloudsEffect,
|
|
12
11
|
Code,
|
|
13
|
-
CodeRenderable,
|
|
14
12
|
DEUTERANOPIA_COMP_MATRIX,
|
|
15
13
|
DEUTERANOPIA_SIM_MATRIX,
|
|
16
14
|
DiffRenderable,
|
|
@@ -31,7 +29,6 @@ import {
|
|
|
31
29
|
PROTANOPIA_COMP_MATRIX,
|
|
32
30
|
PROTANOPIA_SIM_MATRIX,
|
|
33
31
|
RainbowTextEffect,
|
|
34
|
-
RootTextNodeRenderable,
|
|
35
32
|
SEPIA_MATRIX,
|
|
36
33
|
SOLARIZATION_MATRIX,
|
|
37
34
|
SYNTHWAVE_MATRIX,
|
|
@@ -44,7 +41,6 @@ import {
|
|
|
44
41
|
SliderRenderable,
|
|
45
42
|
SlotRegistry,
|
|
46
43
|
SlotRenderable,
|
|
47
|
-
SyntaxStyle,
|
|
48
44
|
TECHNICOLOR_MATRIX,
|
|
49
45
|
TRITANOPIA_COMP_MATRIX,
|
|
50
46
|
TRITANOPIA_SIM_MATRIX,
|
|
@@ -52,10 +48,6 @@ import {
|
|
|
52
48
|
TabSelectRenderable,
|
|
53
49
|
TabSelectRenderableEvents,
|
|
54
50
|
Text,
|
|
55
|
-
TextBufferRenderable,
|
|
56
|
-
TextBufferView,
|
|
57
|
-
TextNodeRenderable,
|
|
58
|
-
TextRenderable,
|
|
59
51
|
TextTableRenderable,
|
|
60
52
|
TextareaRenderable,
|
|
61
53
|
TimeToFirstDrawRenderable,
|
|
@@ -70,16 +62,14 @@ import {
|
|
|
70
62
|
applyNoise,
|
|
71
63
|
applySaturation,
|
|
72
64
|
applyScanlines,
|
|
73
|
-
convertThemeToStyles,
|
|
74
65
|
createCoreSlotRegistry,
|
|
75
66
|
createSlotRegistry,
|
|
76
67
|
createTimeline,
|
|
77
68
|
engine,
|
|
78
|
-
isTextNodeRenderable,
|
|
79
69
|
registerCorePlugin,
|
|
80
70
|
resolveCoreSlot,
|
|
81
71
|
vstyles
|
|
82
|
-
} from "./index-
|
|
72
|
+
} from "./index-gw3ynrc0.js";
|
|
83
73
|
import {
|
|
84
74
|
ASCIIFontSelectionHelper,
|
|
85
75
|
ATTRIBUTE_BASE_BITS,
|
|
@@ -87,9 +77,15 @@ import {
|
|
|
87
77
|
BaseRenderable,
|
|
88
78
|
BorderCharArrays,
|
|
89
79
|
BorderChars,
|
|
80
|
+
BoxRenderable,
|
|
81
|
+
COLOR_TAG_DEFAULT,
|
|
82
|
+
COLOR_TAG_RGB,
|
|
90
83
|
CliRenderEvents,
|
|
91
84
|
CliRenderer,
|
|
85
|
+
CodeRenderable,
|
|
92
86
|
ConsolePosition,
|
|
87
|
+
DEFAULT_BACKGROUND_RGB,
|
|
88
|
+
DEFAULT_FOREGROUND_RGB,
|
|
93
89
|
DataPathsManager,
|
|
94
90
|
DebugOverlayCorner,
|
|
95
91
|
EditBuffer,
|
|
@@ -114,17 +110,24 @@ import {
|
|
|
114
110
|
RenderableEvents,
|
|
115
111
|
RendererControlState,
|
|
116
112
|
RootRenderable,
|
|
113
|
+
RootTextNodeRenderable,
|
|
117
114
|
Selection,
|
|
118
115
|
StdinParser,
|
|
119
116
|
StyledText,
|
|
117
|
+
SyntaxStyle,
|
|
120
118
|
SystemClock,
|
|
121
119
|
TargetChannel,
|
|
122
120
|
TerminalConsole,
|
|
123
121
|
TerminalPalette,
|
|
124
122
|
TextAttributes,
|
|
125
123
|
TextBuffer,
|
|
124
|
+
TextBufferRenderable,
|
|
125
|
+
TextBufferView,
|
|
126
|
+
TextNodeRenderable,
|
|
127
|
+
TextRenderable,
|
|
126
128
|
TreeSitterClient,
|
|
127
129
|
addDefaultParsers,
|
|
130
|
+
ansi256IndexToRgb,
|
|
128
131
|
attributesWithLink,
|
|
129
132
|
basenameToFiletype,
|
|
130
133
|
bg,
|
|
@@ -150,15 +153,18 @@ import {
|
|
|
150
153
|
brightWhite,
|
|
151
154
|
brightYellow,
|
|
152
155
|
buildKittyKeyboardFlags,
|
|
156
|
+
buildTerminalPaletteSignature,
|
|
153
157
|
capture,
|
|
154
158
|
clearEnvCache,
|
|
155
159
|
convertGlobalToLocalSelection,
|
|
160
|
+
convertThemeToStyles,
|
|
156
161
|
coordinateToCharacterIndex,
|
|
157
162
|
createCliRenderer,
|
|
158
163
|
createExtmarksController,
|
|
159
164
|
createTerminalPalette,
|
|
160
165
|
createTextAttributes,
|
|
161
166
|
cyan,
|
|
167
|
+
decodeColorTag,
|
|
162
168
|
decodePasteBytes,
|
|
163
169
|
delegate,
|
|
164
170
|
detectLinks,
|
|
@@ -189,6 +195,7 @@ import {
|
|
|
189
195
|
isEditBufferRenderable,
|
|
190
196
|
isRenderable,
|
|
191
197
|
isStyledText,
|
|
198
|
+
isTextNodeRenderable,
|
|
192
199
|
isVNode,
|
|
193
200
|
isValidBorderStyle,
|
|
194
201
|
italic,
|
|
@@ -198,6 +205,9 @@ import {
|
|
|
198
205
|
maybeMakeRenderable,
|
|
199
206
|
measureText,
|
|
200
207
|
nonAlphanumericKeys,
|
|
208
|
+
normalizeColorValue,
|
|
209
|
+
normalizeIndexedColorIndex,
|
|
210
|
+
normalizeTerminalPalette,
|
|
201
211
|
parseAlign,
|
|
202
212
|
parseAlignItems,
|
|
203
213
|
parseBorderStyle,
|
|
@@ -236,7 +246,7 @@ import {
|
|
|
236
246
|
white,
|
|
237
247
|
wrapWithDelegates,
|
|
238
248
|
yellow
|
|
239
|
-
} from "./index-
|
|
249
|
+
} from "./index-4pvh4sbk.js";
|
|
240
250
|
export {
|
|
241
251
|
yellow,
|
|
242
252
|
wrapWithDelegates,
|
|
@@ -280,6 +290,9 @@ export {
|
|
|
280
290
|
parseBorderStyle,
|
|
281
291
|
parseAlignItems,
|
|
282
292
|
parseAlign,
|
|
293
|
+
normalizeTerminalPalette,
|
|
294
|
+
normalizeIndexedColorIndex,
|
|
295
|
+
normalizeColorValue,
|
|
283
296
|
nonAlphanumericKeys,
|
|
284
297
|
measureText,
|
|
285
298
|
maybeMakeRenderable,
|
|
@@ -319,6 +332,7 @@ export {
|
|
|
319
332
|
detectLinks,
|
|
320
333
|
delegate,
|
|
321
334
|
decodePasteBytes,
|
|
335
|
+
decodeColorTag,
|
|
322
336
|
cyan,
|
|
323
337
|
createTimeline,
|
|
324
338
|
createTextAttributes,
|
|
@@ -332,6 +346,7 @@ export {
|
|
|
332
346
|
convertGlobalToLocalSelection,
|
|
333
347
|
clearEnvCache,
|
|
334
348
|
capture,
|
|
349
|
+
buildTerminalPaletteSignature,
|
|
335
350
|
buildKittyKeyboardFlags,
|
|
336
351
|
brightYellow,
|
|
337
352
|
brightWhite,
|
|
@@ -365,6 +380,7 @@ export {
|
|
|
365
380
|
applyChromaticAberration,
|
|
366
381
|
applyBrightness,
|
|
367
382
|
applyAsciiArt,
|
|
383
|
+
ansi256IndexToRgb,
|
|
368
384
|
addDefaultParsers,
|
|
369
385
|
exports_src as Yoga,
|
|
370
386
|
VignetteEffect,
|
|
@@ -452,6 +468,8 @@ export {
|
|
|
452
468
|
DataPathsManager,
|
|
453
469
|
DEUTERANOPIA_SIM_MATRIX,
|
|
454
470
|
DEUTERANOPIA_COMP_MATRIX,
|
|
471
|
+
DEFAULT_FOREGROUND_RGB,
|
|
472
|
+
DEFAULT_BACKGROUND_RGB,
|
|
455
473
|
ConsolePosition,
|
|
456
474
|
CodeRenderable,
|
|
457
475
|
Code,
|
|
@@ -459,6 +477,8 @@ export {
|
|
|
459
477
|
CliRenderer,
|
|
460
478
|
CliRenderEvents,
|
|
461
479
|
CRTRollingBarEffect,
|
|
480
|
+
COLOR_TAG_RGB,
|
|
481
|
+
COLOR_TAG_DEFAULT,
|
|
462
482
|
BoxRenderable,
|
|
463
483
|
Box,
|
|
464
484
|
BorderChars,
|
|
@@ -474,5 +494,5 @@ export {
|
|
|
474
494
|
ACHROMATOPSIA_MATRIX
|
|
475
495
|
};
|
|
476
496
|
|
|
477
|
-
//# debugId=
|
|
497
|
+
//# debugId=56BA2D9B78C8356A64756E2164756E21
|
|
478
498
|
//# sourceMappingURL=index.js.map
|
package/index.js.map
CHANGED
package/lib/RGBA.d.ts
CHANGED
|
@@ -1,10 +1,32 @@
|
|
|
1
|
+
export type RGBTriplet = readonly [number, number, number];
|
|
2
|
+
export type ColorKind = "rgb" | "indexed" | "default";
|
|
3
|
+
export type ColorInput = string | RGBA;
|
|
4
|
+
export declare const COLOR_TAG_RGB = 256;
|
|
5
|
+
export declare const COLOR_TAG_DEFAULT = 257;
|
|
6
|
+
export declare const DEFAULT_FOREGROUND_RGB: RGBTriplet;
|
|
7
|
+
export declare const DEFAULT_BACKGROUND_RGB: RGBTriplet;
|
|
8
|
+
export interface NormalizedColorValue {
|
|
9
|
+
rgba: RGBA;
|
|
10
|
+
tag: number;
|
|
11
|
+
}
|
|
12
|
+
export declare function normalizeIndexedColorIndex(index: number): number;
|
|
13
|
+
export declare function ansi256IndexToRgb(index: number): RGBTriplet;
|
|
14
|
+
export declare function decodeColorTag(tag: number): {
|
|
15
|
+
kind: ColorKind;
|
|
16
|
+
index?: number;
|
|
17
|
+
};
|
|
1
18
|
export declare class RGBA {
|
|
2
19
|
buffer: Float32Array;
|
|
3
20
|
constructor(buffer: Float32Array);
|
|
4
21
|
static fromArray(array: Float32Array): RGBA;
|
|
5
|
-
static fromValues(r: number, g: number, b: number, a?: number): RGBA;
|
|
6
|
-
static
|
|
22
|
+
static fromValues(r: number, g: number, b: number, a?: number, tag?: number): RGBA;
|
|
23
|
+
static clone(rgba: RGBA): RGBA;
|
|
24
|
+
static fromInts(r: number, g: number, b: number, a?: number, tag?: number): RGBA;
|
|
7
25
|
static fromHex(hex: string): RGBA;
|
|
26
|
+
static fromIndex(index: number, snapshot?: ColorInput): RGBA;
|
|
27
|
+
static defaultForeground(snapshot?: ColorInput): RGBA;
|
|
28
|
+
static defaultBackground(snapshot?: ColorInput): RGBA;
|
|
29
|
+
static getIntentTag(rgba: RGBA): number;
|
|
8
30
|
toInts(): [number, number, number, number];
|
|
9
31
|
get r(): number;
|
|
10
32
|
set r(value: number);
|
|
@@ -14,11 +36,13 @@ export declare class RGBA {
|
|
|
14
36
|
set b(value: number);
|
|
15
37
|
get a(): number;
|
|
16
38
|
set a(value: number);
|
|
39
|
+
get tag(): number;
|
|
40
|
+
set tag(value: number);
|
|
17
41
|
map<R>(fn: (value: number) => R): R[];
|
|
18
42
|
toString(): string;
|
|
19
43
|
equals(other?: RGBA): boolean;
|
|
20
44
|
}
|
|
21
|
-
export
|
|
45
|
+
export declare function normalizeColorValue(value: ColorInput | null | undefined): NormalizedColorValue | null;
|
|
22
46
|
export declare function hexToRgb(hex: string): RGBA;
|
|
23
47
|
export declare function rgbToHex(rgb: RGBA): string;
|
|
24
48
|
export declare function hsvToRgb(h: number, s: number, v: number): RGBA;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type RenderGeometryScreenMode = "alternate-screen" | "main-screen" | "split-footer";
|
|
2
|
+
export interface RenderGeometry {
|
|
3
|
+
effectiveFooterHeight: number;
|
|
4
|
+
renderOffset: number;
|
|
5
|
+
renderWidth: number;
|
|
6
|
+
renderHeight: number;
|
|
7
|
+
}
|
|
8
|
+
export declare function calculateRenderGeometry(screenMode: RenderGeometryScreenMode, terminalWidth: number, terminalHeight: number, footerHeight: number): RenderGeometry;
|
package/lib/stdin-parser.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { type ParsedKey } from "./parse.keypress.js";
|
|
|
3
3
|
import { type RawMouseEvent } from "./parse.mouse.js";
|
|
4
4
|
import type { PasteMetadata } from "./paste.js";
|
|
5
5
|
export { SystemClock, type Clock, type TimerHandle } from "./clock.js";
|
|
6
|
-
export type StdinResponseProtocol = "csi" | "osc" | "dcs" | "apc" | "unknown";
|
|
6
|
+
export type StdinResponseProtocol = "csi" | "cpr" | "osc" | "dcs" | "apc" | "unknown";
|
|
7
7
|
export type StdinEvent = {
|
|
8
8
|
type: "key";
|
|
9
9
|
raw: string;
|
|
@@ -27,6 +27,7 @@ export interface StdinParserProtocolContext {
|
|
|
27
27
|
privateCapabilityRepliesActive: boolean;
|
|
28
28
|
pixelResolutionQueryActive: boolean;
|
|
29
29
|
explicitWidthCprActive: boolean;
|
|
30
|
+
startupCursorCprActive: boolean;
|
|
30
31
|
}
|
|
31
32
|
export interface StdinParserOptions {
|
|
32
33
|
timeoutMs?: number;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { RGBA } from "./RGBA.js";
|
|
1
2
|
import { type Clock } from "./clock.js";
|
|
2
3
|
type Hex = string | null;
|
|
3
4
|
export type WriteFunction = (data: string | Buffer) => boolean;
|
|
@@ -22,6 +23,11 @@ export interface TerminalPaletteDetector {
|
|
|
22
23
|
detectOSCSupport(timeoutMs?: number): Promise<boolean>;
|
|
23
24
|
cleanup(): void;
|
|
24
25
|
}
|
|
26
|
+
export interface NormalizedTerminalPalette {
|
|
27
|
+
palette: RGBA[];
|
|
28
|
+
defaultForeground: RGBA;
|
|
29
|
+
defaultBackground: RGBA;
|
|
30
|
+
}
|
|
25
31
|
export type OscSubscriptionSource = {
|
|
26
32
|
subscribeOsc(handler: (sequence: string) => void): () => void;
|
|
27
33
|
};
|
|
@@ -47,4 +53,6 @@ export declare class TerminalPalette implements TerminalPaletteDetector {
|
|
|
47
53
|
detect(options?: GetPaletteOptions): Promise<TerminalColors>;
|
|
48
54
|
}
|
|
49
55
|
export declare function createTerminalPalette(stdin: NodeJS.ReadStream, stdout: NodeJS.WriteStream, writeFn?: WriteFunction, isLegacyTmux?: boolean, oscSource?: OscSubscriptionSource, clock?: Clock): TerminalPaletteDetector;
|
|
56
|
+
export declare function normalizeTerminalPalette(colors?: TerminalColors | null): NormalizedTerminalPalette;
|
|
57
|
+
export declare function buildTerminalPaletteSignature(colors?: TerminalColors | null): string;
|
|
50
58
|
export {};
|
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.103",
|
|
8
8
|
"description": "OpenTUI is a TypeScript library on a native Zig core for building terminal user interfaces (TUIs)",
|
|
9
9
|
"license": "MIT",
|
|
10
10
|
"repository": {
|
|
@@ -67,11 +67,11 @@
|
|
|
67
67
|
"bun-webgpu": "0.1.5",
|
|
68
68
|
"planck": "^1.4.2",
|
|
69
69
|
"three": "0.177.0",
|
|
70
|
-
"@opentui/core-darwin-x64": "0.1.
|
|
71
|
-
"@opentui/core-darwin-arm64": "0.1.
|
|
72
|
-
"@opentui/core-linux-x64": "0.1.
|
|
73
|
-
"@opentui/core-linux-arm64": "0.1.
|
|
74
|
-
"@opentui/core-win32-x64": "0.1.
|
|
75
|
-
"@opentui/core-win32-arm64": "0.1.
|
|
70
|
+
"@opentui/core-darwin-x64": "0.1.103",
|
|
71
|
+
"@opentui/core-darwin-arm64": "0.1.103",
|
|
72
|
+
"@opentui/core-linux-x64": "0.1.103",
|
|
73
|
+
"@opentui/core-linux-arm64": "0.1.103",
|
|
74
|
+
"@opentui/core-win32-x64": "0.1.103",
|
|
75
|
+
"@opentui/core-win32-arm64": "0.1.103"
|
|
76
76
|
}
|
|
77
77
|
}
|
|
@@ -8,7 +8,16 @@ import { type TextTableColumnFitter, type TextTableColumnWidthMode, type TextTab
|
|
|
8
8
|
import type { TreeSitterClient } from "../lib/tree-sitter/index.js";
|
|
9
9
|
import { type ParseState } from "./markdown-parser.js";
|
|
10
10
|
import type { OptimizedBuffer } from "../buffer.js";
|
|
11
|
+
export type MarkdownTableStyle = "grid" | "columns";
|
|
11
12
|
export interface MarkdownTableOptions {
|
|
13
|
+
/**
|
|
14
|
+
* Visual style preset for markdown tables.
|
|
15
|
+
* - "grid": boxed table with visible borders.
|
|
16
|
+
* - "columns": borderless columns optimized for separated block output.
|
|
17
|
+
*
|
|
18
|
+
* Defaults to "columns" in `internalBlockMode: "top-level"`, otherwise "grid".
|
|
19
|
+
*/
|
|
20
|
+
style?: MarkdownTableStyle;
|
|
12
21
|
/**
|
|
13
22
|
* Strategy for sizing table columns.
|
|
14
23
|
* - "content": columns fit to intrinsic content width.
|
|
@@ -81,6 +90,12 @@ export interface MarkdownOptions extends RenderableOptions<MarkdownRenderable> {
|
|
|
81
90
|
* or undefined/null to use default rendering.
|
|
82
91
|
*/
|
|
83
92
|
renderNode?: (token: Token, context: RenderNodeContext) => Renderable | undefined | null;
|
|
93
|
+
/**
|
|
94
|
+
* Internal only.
|
|
95
|
+
* - "coalesced": combine ordinary markdown into larger render blocks.
|
|
96
|
+
* - "top-level": preserve top-level markdown blocks as separate render blocks.
|
|
97
|
+
*/
|
|
98
|
+
internalBlockMode?: "coalesced" | "top-level";
|
|
84
99
|
}
|
|
85
100
|
export interface RenderNodeContext {
|
|
86
101
|
syntaxStyle: SyntaxStyle;
|
|
@@ -97,6 +112,7 @@ interface TableContentCache {
|
|
|
97
112
|
export interface BlockState {
|
|
98
113
|
token: MarkedToken;
|
|
99
114
|
tokenRaw: string;
|
|
115
|
+
marginTop?: number;
|
|
100
116
|
renderable: Renderable;
|
|
101
117
|
tableContentCache?: TableContentCache;
|
|
102
118
|
}
|
|
@@ -111,9 +127,11 @@ export declare class MarkdownRenderable extends Renderable {
|
|
|
111
127
|
private _treeSitterClient?;
|
|
112
128
|
private _tableOptions?;
|
|
113
129
|
private _renderNode?;
|
|
130
|
+
private _internalBlockMode;
|
|
114
131
|
_parseState: ParseState | null;
|
|
115
132
|
private _streaming;
|
|
116
133
|
_blockStates: BlockState[];
|
|
134
|
+
_stableBlockCount: number;
|
|
117
135
|
private _styleDirty;
|
|
118
136
|
private _linkifyMarkdownChunks;
|
|
119
137
|
protected _contentDefaultOptions: {
|
|
@@ -121,6 +139,7 @@ export declare class MarkdownRenderable extends Renderable {
|
|
|
121
139
|
conceal: true;
|
|
122
140
|
concealCode: false;
|
|
123
141
|
streaming: false;
|
|
142
|
+
internalBlockMode: "coalesced";
|
|
124
143
|
};
|
|
125
144
|
constructor(ctx: RenderContext, options: MarkdownOptions);
|
|
126
145
|
get content(): string;
|
|
@@ -145,6 +164,7 @@ export declare class MarkdownRenderable extends Renderable {
|
|
|
145
164
|
private renderInlineContent;
|
|
146
165
|
private renderInlineToken;
|
|
147
166
|
private renderInlineTokenWithStyle;
|
|
167
|
+
private applyMargins;
|
|
148
168
|
private createMarkdownCodeRenderable;
|
|
149
169
|
private createCodeRenderable;
|
|
150
170
|
private applyMarkdownCodeRenderable;
|
|
@@ -153,7 +173,9 @@ export declare class MarkdownRenderable extends Renderable {
|
|
|
153
173
|
private getInterBlockMargin;
|
|
154
174
|
private createMarkdownBlockToken;
|
|
155
175
|
private normalizeMarkdownBlockRaw;
|
|
176
|
+
private normalizeScrollbackMarkdownBlockRaw;
|
|
156
177
|
private buildRenderableTokens;
|
|
178
|
+
private buildTopLevelRenderBlocks;
|
|
157
179
|
private getTableRowsToRender;
|
|
158
180
|
private hashString;
|
|
159
181
|
private hashTableToken;
|
|
@@ -161,13 +183,21 @@ export declare class MarkdownRenderable extends Renderable {
|
|
|
161
183
|
private createTableDataCellChunks;
|
|
162
184
|
private createTableHeaderCellChunks;
|
|
163
185
|
private buildTableContentCache;
|
|
186
|
+
private resolveTableStyle;
|
|
187
|
+
private usesBorderlessColumnSpacing;
|
|
164
188
|
private resolveTableRenderableOptions;
|
|
165
189
|
private applyTableRenderableOptions;
|
|
166
190
|
private applyTableOptionsToBlocks;
|
|
167
191
|
private createTextTableRenderable;
|
|
168
192
|
private createTableBlock;
|
|
193
|
+
private getStableBlockCount;
|
|
194
|
+
private syncTopLevelBlockState;
|
|
195
|
+
private getTopLevelBlockRaw;
|
|
196
|
+
private createTopLevelDefaultRenderable;
|
|
197
|
+
private createTopLevelRenderable;
|
|
169
198
|
private createDefaultRenderable;
|
|
170
199
|
private updateBlockRenderable;
|
|
200
|
+
private updateTopLevelBlocks;
|
|
171
201
|
private updateBlocks;
|
|
172
202
|
private clearBlockStates;
|
|
173
203
|
/**
|
|
@@ -33,6 +33,7 @@ export declare abstract class TextBufferRenderable extends Renderable implements
|
|
|
33
33
|
protected _scrollX: number;
|
|
34
34
|
protected _scrollY: number;
|
|
35
35
|
protected _truncate: boolean;
|
|
36
|
+
protected _firstLineOffset: number;
|
|
36
37
|
protected textBuffer: TextBuffer;
|
|
37
38
|
protected textBufferView: TextBufferView;
|
|
38
39
|
protected _textBufferSyntaxStyle: SyntaxStyle;
|
|
@@ -15,6 +15,7 @@ export interface TextTableOptions extends RenderableOptions<TextTableRenderable>
|
|
|
15
15
|
columnWidthMode?: TextTableColumnWidthMode;
|
|
16
16
|
columnFitter?: TextTableColumnFitter;
|
|
17
17
|
cellPadding?: number;
|
|
18
|
+
columnGap?: number;
|
|
18
19
|
showBorders?: boolean;
|
|
19
20
|
border?: boolean;
|
|
20
21
|
outerBorder?: boolean;
|
|
@@ -35,6 +36,7 @@ export declare class TextTableRenderable extends Renderable {
|
|
|
35
36
|
private _columnWidthMode;
|
|
36
37
|
private _columnFitter;
|
|
37
38
|
private _cellPadding;
|
|
39
|
+
private _columnGap;
|
|
38
40
|
private _showBorders;
|
|
39
41
|
private _border;
|
|
40
42
|
private _outerBorder;
|
|
@@ -71,6 +73,8 @@ export declare class TextTableRenderable extends Renderable {
|
|
|
71
73
|
set columnFitter(value: TextTableColumnFitter);
|
|
72
74
|
get cellPadding(): number;
|
|
73
75
|
set cellPadding(value: number);
|
|
76
|
+
get columnGap(): number;
|
|
77
|
+
set columnGap(value: number);
|
|
74
78
|
get showBorders(): boolean;
|
|
75
79
|
set showBorders(value: boolean);
|
|
76
80
|
get outerBorder(): boolean;
|
|
@@ -109,6 +113,8 @@ export declare class TextTableRenderable extends Renderable {
|
|
|
109
113
|
private allocateShrinkByWeight;
|
|
110
114
|
private computeRowHeights;
|
|
111
115
|
private computeOffsets;
|
|
116
|
+
private getInterColumnGap;
|
|
117
|
+
private getTotalInterColumnGap;
|
|
112
118
|
private applyLayoutToViews;
|
|
113
119
|
private resolveBorderLayout;
|
|
114
120
|
private getVerticalBorderCount;
|
|
@@ -135,6 +141,7 @@ export declare class TextTableRenderable extends Renderable {
|
|
|
135
141
|
private getVerticalCellPadding;
|
|
136
142
|
private resolveColumnFitter;
|
|
137
143
|
private resolveCellPadding;
|
|
144
|
+
private resolveColumnGap;
|
|
138
145
|
private invalidateLayoutAndRaster;
|
|
139
146
|
private invalidateRasterOnly;
|
|
140
147
|
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { type Clock } from "./lib/clock.js";
|
|
2
|
+
import type { ThemeMode } from "./types.js";
|
|
3
|
+
export interface RendererThemeModeHost {
|
|
4
|
+
queryThemeColors(): void;
|
|
5
|
+
}
|
|
6
|
+
export declare class RendererThemeMode {
|
|
7
|
+
private readonly host;
|
|
8
|
+
private readonly clock;
|
|
9
|
+
private static readonly QUERY_TIMEOUT_MS;
|
|
10
|
+
private _themeMode;
|
|
11
|
+
private themeQueryPending;
|
|
12
|
+
private themeOscForeground;
|
|
13
|
+
private themeOscBackground;
|
|
14
|
+
private themeRefreshTimeoutId;
|
|
15
|
+
private waiters;
|
|
16
|
+
constructor(host: RendererThemeModeHost, clock: Clock);
|
|
17
|
+
get themeMode(): ThemeMode | null;
|
|
18
|
+
waitForThemeMode(timeoutMs: number, isDestroyed: boolean): Promise<ThemeMode | null>;
|
|
19
|
+
cancelRefresh(): void;
|
|
20
|
+
dispose(): void;
|
|
21
|
+
handleSequence(sequence: string): {
|
|
22
|
+
handled: boolean;
|
|
23
|
+
changedMode: ThemeMode | null;
|
|
24
|
+
};
|
|
25
|
+
private clearThemeRefreshTimeout;
|
|
26
|
+
private completeThemeQuery;
|
|
27
|
+
private requestThemeOscColors;
|
|
28
|
+
private applyThemeMode;
|
|
29
|
+
}
|
package/renderer.d.ts
CHANGED
|
@@ -20,6 +20,7 @@ export interface CliRendererConfig {
|
|
|
20
20
|
testing?: boolean;
|
|
21
21
|
exitOnCtrlC?: boolean;
|
|
22
22
|
exitSignals?: NodeJS.Signals[];
|
|
23
|
+
clearOnShutdown?: boolean;
|
|
23
24
|
forwardEnvKeys?: string[];
|
|
24
25
|
debounceDelay?: number;
|
|
25
26
|
targetFps?: number;
|
|
@@ -52,6 +53,40 @@ export type PixelResolution = {
|
|
|
52
53
|
width: number;
|
|
53
54
|
height: number;
|
|
54
55
|
};
|
|
56
|
+
export interface ScrollbackRenderContext {
|
|
57
|
+
width: number;
|
|
58
|
+
widthMethod: WidthMethod;
|
|
59
|
+
tailColumn: number;
|
|
60
|
+
renderContext: RenderContext;
|
|
61
|
+
}
|
|
62
|
+
export interface ScrollbackSnapshot {
|
|
63
|
+
root: Renderable;
|
|
64
|
+
width?: number;
|
|
65
|
+
height?: number;
|
|
66
|
+
rowColumns?: number;
|
|
67
|
+
startOnNewLine?: boolean;
|
|
68
|
+
trailingNewline?: boolean;
|
|
69
|
+
teardown?: () => void;
|
|
70
|
+
}
|
|
71
|
+
export type ScrollbackWriter = (ctx: ScrollbackRenderContext) => ScrollbackSnapshot;
|
|
72
|
+
export interface ScrollbackSurfaceOptions {
|
|
73
|
+
startOnNewLine?: boolean;
|
|
74
|
+
}
|
|
75
|
+
export interface ScrollbackSurfaceCommitOptions {
|
|
76
|
+
rowColumns?: number;
|
|
77
|
+
trailingNewline?: boolean;
|
|
78
|
+
}
|
|
79
|
+
export interface ScrollbackSurface {
|
|
80
|
+
readonly renderContext: RenderContext;
|
|
81
|
+
readonly root: Renderable;
|
|
82
|
+
readonly width: number;
|
|
83
|
+
readonly height: number;
|
|
84
|
+
readonly isDestroyed: boolean;
|
|
85
|
+
render(): void;
|
|
86
|
+
settle(timeoutMs?: number): Promise<void>;
|
|
87
|
+
commitRows(startRow: number, endRowExclusive: number, options?: ScrollbackSurfaceCommitOptions): void;
|
|
88
|
+
destroy(): void;
|
|
89
|
+
}
|
|
55
90
|
/**
|
|
56
91
|
* Kitty Keyboard Protocol configuration options
|
|
57
92
|
* See: https://sw.kovidgoyal.net/kitty/keyboard-protocol/#progressive-enhancement
|
|
@@ -190,6 +225,8 @@ export declare class CliRenderer extends EventEmitter implements RenderContext {
|
|
|
190
225
|
private animationRequest;
|
|
191
226
|
private resizeTimeoutId;
|
|
192
227
|
private capabilityTimeoutId;
|
|
228
|
+
private splitStartupSeedTimeoutId;
|
|
229
|
+
private pendingSplitStartupCursorSeed;
|
|
193
230
|
private resizeDebounceDelay;
|
|
194
231
|
private enableMouseMovement;
|
|
195
232
|
private _useMouse;
|
|
@@ -197,6 +234,7 @@ export declare class CliRenderer extends EventEmitter implements RenderContext {
|
|
|
197
234
|
private _screenMode;
|
|
198
235
|
private _footerHeight;
|
|
199
236
|
private _externalOutputMode;
|
|
237
|
+
private clearOnShutdown;
|
|
200
238
|
private _suspendedMouseEnabled;
|
|
201
239
|
private _previousControlState;
|
|
202
240
|
private capturedRenderable?;
|
|
@@ -207,11 +245,15 @@ export declare class CliRenderer extends EventEmitter implements RenderContext {
|
|
|
207
245
|
private clipboard;
|
|
208
246
|
private _splitHeight;
|
|
209
247
|
private renderOffset;
|
|
248
|
+
private splitTailColumn;
|
|
249
|
+
private pendingSplitFooterTransition;
|
|
250
|
+
private forceFullRepaintRequested;
|
|
251
|
+
private readonly maxSplitCommitsPerFrame;
|
|
210
252
|
private _terminalWidth;
|
|
211
253
|
private _terminalHeight;
|
|
212
254
|
private _terminalIsSetup;
|
|
255
|
+
private externalOutputQueue;
|
|
213
256
|
private realStdoutWrite;
|
|
214
|
-
private captureCallback;
|
|
215
257
|
private _useConsole;
|
|
216
258
|
private sigwinchHandler;
|
|
217
259
|
private _capabilities;
|
|
@@ -223,18 +265,20 @@ export declare class CliRenderer extends EventEmitter implements RenderContext {
|
|
|
223
265
|
private lifecyclePasses;
|
|
224
266
|
private _openConsoleOnError;
|
|
225
267
|
private _paletteDetector;
|
|
268
|
+
private _paletteCache;
|
|
226
269
|
private _cachedPalette;
|
|
227
270
|
private _paletteDetectionPromise;
|
|
271
|
+
private _paletteDetectionSize;
|
|
272
|
+
private _paletteEpoch;
|
|
273
|
+
private _publishedPaletteSignature;
|
|
274
|
+
private _palettePublishGeneration;
|
|
228
275
|
private _onDestroy?;
|
|
229
|
-
private
|
|
230
|
-
private _themeModeSource;
|
|
231
|
-
private _themeFallbackPending;
|
|
232
|
-
private _themeOscForeground;
|
|
233
|
-
private _themeOscBackground;
|
|
276
|
+
private themeModeState;
|
|
234
277
|
private _terminalFocusState;
|
|
235
278
|
private sequenceHandlers;
|
|
236
279
|
private prependedInputHandlers;
|
|
237
280
|
private shouldRestoreModesOnNextFocus;
|
|
281
|
+
private themeModeHandler;
|
|
238
282
|
private idleResolvers;
|
|
239
283
|
private _debugInputs;
|
|
240
284
|
private _debugModeEnabled;
|
|
@@ -302,7 +346,29 @@ export declare class CliRenderer extends EventEmitter implements RenderContext {
|
|
|
302
346
|
}>;
|
|
303
347
|
get useKittyKeyboard(): boolean;
|
|
304
348
|
set useKittyKeyboard(use: boolean);
|
|
349
|
+
createScrollbackSurface(options?: ScrollbackSurfaceOptions): ScrollbackSurface;
|
|
350
|
+
writeToScrollback(write: ScrollbackWriter): void;
|
|
351
|
+
private getSnapshotWidth;
|
|
352
|
+
private getSnapshotHeight;
|
|
353
|
+
private getSnapshotRowWidths;
|
|
354
|
+
private publishSplitTailColumns;
|
|
355
|
+
private recordSplitCommit;
|
|
356
|
+
private enqueueRenderedScrollbackCommit;
|
|
357
|
+
private enqueueSplitCommit;
|
|
358
|
+
private createStdoutSnapshotCommit;
|
|
359
|
+
private splitStdoutRows;
|
|
360
|
+
private createStdoutSnapshotCommits;
|
|
361
|
+
private flushPendingSplitCommits;
|
|
305
362
|
private interceptStdoutWrite;
|
|
363
|
+
private getSplitPinnedRenderOffset;
|
|
364
|
+
private getSplitCursorSeedRows;
|
|
365
|
+
private flushPendingSplitOutputBeforeTransition;
|
|
366
|
+
private resetSplitScrollback;
|
|
367
|
+
private syncSplitScrollback;
|
|
368
|
+
private clearPendingSplitFooterTransition;
|
|
369
|
+
private setPendingSplitFooterTransition;
|
|
370
|
+
private syncSplitFooterState;
|
|
371
|
+
private clearStaleSplitSurfaceRows;
|
|
306
372
|
private applyScreenMode;
|
|
307
373
|
private flushStdoutCache;
|
|
308
374
|
private enableMouse;
|
|
@@ -317,10 +383,9 @@ export declare class CliRenderer extends EventEmitter implements RenderContext {
|
|
|
317
383
|
removeInputHandler(handler: (sequence: string) => boolean): void;
|
|
318
384
|
private updateStdinParserProtocolContext;
|
|
319
385
|
subscribeOsc(handler: (sequence: string) => void): () => void;
|
|
386
|
+
private processCapabilitySequence;
|
|
320
387
|
private capabilityHandler;
|
|
321
388
|
private focusHandler;
|
|
322
|
-
private themeModeHandler;
|
|
323
|
-
private applyThemeMode;
|
|
324
389
|
private dispatchSequenceHandlers;
|
|
325
390
|
private drainStdinParser;
|
|
326
391
|
private handleStdinEvent;
|
|
@@ -423,6 +488,10 @@ export declare class CliRenderer extends EventEmitter implements RenderContext {
|
|
|
423
488
|
private notifySelectablesOfSelectionChange;
|
|
424
489
|
private walkSelectableRenderables;
|
|
425
490
|
get paletteDetectionStatus(): "idle" | "detecting" | "cached";
|
|
491
|
+
private getCachedPaletteBySize;
|
|
492
|
+
private ensurePaletteDetector;
|
|
493
|
+
private syncNativePaletteState;
|
|
494
|
+
private ensureNativePaletteState;
|
|
426
495
|
clearPaletteCache(): void;
|
|
427
496
|
/**
|
|
428
497
|
* Detects the terminal's color palette
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
import {
|
|
3
3
|
createRuntimePlugin,
|
|
4
4
|
runtimeModuleIdForSpecifier
|
|
5
|
-
} from "./index-
|
|
6
|
-
import"./index-
|
|
7
|
-
import"./index-
|
|
5
|
+
} from "./index-bmcatvmp.js";
|
|
6
|
+
import"./index-gw3ynrc0.js";
|
|
7
|
+
import"./index-4pvh4sbk.js";
|
|
8
8
|
|
|
9
9
|
// src/runtime-plugin-support.ts
|
|
10
10
|
var {plugin: registerBunPlugin } = globalThis.Bun;
|