@fairyhunter13/opentui-core 0.1.88
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/SpriteResourceManager.d.ts +74 -0
- package/3d/SpriteUtils.d.ts +13 -0
- package/3d/TextureUtils.d.ts +24 -0
- package/3d/ThreeRenderable.d.ts +40 -0
- package/3d/WGPURenderer.d.ts +61 -0
- package/3d/animation/ExplodingSpriteEffect.d.ts +71 -0
- package/3d/animation/PhysicsExplodingSpriteEffect.d.ts +76 -0
- package/3d/animation/SpriteAnimator.d.ts +124 -0
- package/3d/animation/SpriteParticleGenerator.d.ts +62 -0
- package/3d/canvas.d.ts +44 -0
- package/3d/index.d.ts +12 -0
- package/3d/physics/PlanckPhysicsAdapter.d.ts +19 -0
- package/3d/physics/RapierPhysicsAdapter.d.ts +19 -0
- package/3d/physics/physics-interface.d.ts +27 -0
- package/3d.d.ts +2 -0
- package/3d.js +34042 -0
- package/3d.js.map +155 -0
- package/LICENSE +21 -0
- package/NativeSpanFeed.d.ts +41 -0
- package/README.md +62 -0
- package/Renderable.d.ts +334 -0
- package/animation/Timeline.d.ts +126 -0
- package/ansi.d.ts +13 -0
- package/assets/javascript/highlights.scm +205 -0
- package/assets/javascript/tree-sitter-javascript.wasm +0 -0
- package/assets/markdown/highlights.scm +150 -0
- package/assets/markdown/injections.scm +27 -0
- package/assets/markdown/tree-sitter-markdown.wasm +0 -0
- package/assets/markdown_inline/highlights.scm +115 -0
- package/assets/markdown_inline/tree-sitter-markdown_inline.wasm +0 -0
- package/assets/typescript/highlights.scm +604 -0
- package/assets/typescript/tree-sitter-typescript.wasm +0 -0
- package/assets/zig/highlights.scm +284 -0
- package/assets/zig/tree-sitter-zig.wasm +0 -0
- package/buffer.d.ts +107 -0
- package/console.d.ts +143 -0
- package/edit-buffer.d.ts +98 -0
- package/editor-view.d.ts +73 -0
- package/index-e4hzc2j2.js +113 -0
- package/index-e4hzc2j2.js.map +10 -0
- package/index-nkrr8a4c.js +18415 -0
- package/index-nkrr8a4c.js.map +64 -0
- package/index-nyw5p3ep.js +12619 -0
- package/index-nyw5p3ep.js.map +43 -0
- package/index.d.ts +21 -0
- package/index.js +430 -0
- package/index.js.map +9 -0
- package/lib/KeyHandler.d.ts +61 -0
- package/lib/RGBA.d.ts +25 -0
- package/lib/ascii.font.d.ts +508 -0
- package/lib/border.d.ts +49 -0
- package/lib/bunfs.d.ts +7 -0
- package/lib/clipboard.d.ts +17 -0
- package/lib/clock.d.ts +15 -0
- package/lib/data-paths.d.ts +26 -0
- package/lib/debounce.d.ts +42 -0
- package/lib/detect-links.d.ts +6 -0
- package/lib/env.d.ts +42 -0
- package/lib/extmarks-history.d.ts +17 -0
- package/lib/extmarks.d.ts +89 -0
- package/lib/hast-styled-text.d.ts +17 -0
- package/lib/index.d.ts +21 -0
- package/lib/keymapping.d.ts +25 -0
- package/lib/objects-in-viewport.d.ts +24 -0
- package/lib/output.capture.d.ts +24 -0
- package/lib/parse.keypress-kitty.d.ts +2 -0
- package/lib/parse.keypress.d.ts +26 -0
- package/lib/parse.mouse.d.ts +30 -0
- package/lib/paste.d.ts +7 -0
- package/lib/queue.d.ts +15 -0
- package/lib/renderable.validations.d.ts +12 -0
- package/lib/scroll-acceleration.d.ts +43 -0
- package/lib/selection.d.ts +63 -0
- package/lib/singleton.d.ts +7 -0
- package/lib/stdin-parser.d.ts +76 -0
- package/lib/styled-text.d.ts +63 -0
- package/lib/terminal-capability-detection.d.ts +30 -0
- package/lib/terminal-palette.d.ts +50 -0
- package/lib/tree-sitter/assets/update.d.ts +11 -0
- package/lib/tree-sitter/client.d.ts +47 -0
- package/lib/tree-sitter/default-parsers.d.ts +2 -0
- package/lib/tree-sitter/download-utils.d.ts +21 -0
- package/lib/tree-sitter/index.d.ts +8 -0
- package/lib/tree-sitter/parser.worker.d.ts +1 -0
- package/lib/tree-sitter/parsers-config.d.ts +38 -0
- package/lib/tree-sitter/resolve-ft.d.ts +2 -0
- package/lib/tree-sitter/types.d.ts +81 -0
- package/lib/tree-sitter-styled-text.d.ts +14 -0
- package/lib/validate-dir-name.d.ts +1 -0
- package/lib/yoga.options.d.ts +32 -0
- package/package.json +80 -0
- package/parser.worker.js +869 -0
- package/parser.worker.js.map +12 -0
- package/plugins/core-slot.d.ts +72 -0
- package/plugins/registry.d.ts +38 -0
- package/plugins/types.d.ts +34 -0
- package/post/filters.d.ts +105 -0
- package/renderables/ASCIIFont.d.ts +52 -0
- package/renderables/Box.d.ts +72 -0
- package/renderables/Code.d.ts +78 -0
- package/renderables/Diff.d.ts +142 -0
- package/renderables/EditBufferRenderable.d.ts +162 -0
- package/renderables/FrameBuffer.d.ts +16 -0
- package/renderables/Input.d.ts +67 -0
- package/renderables/LineNumberRenderable.d.ts +74 -0
- package/renderables/Markdown.d.ts +173 -0
- package/renderables/ScrollBar.d.ts +77 -0
- package/renderables/ScrollBox.d.ts +124 -0
- package/renderables/Select.d.ts +115 -0
- package/renderables/Slider.d.ts +44 -0
- package/renderables/TabSelect.d.ts +96 -0
- package/renderables/Text.d.ts +36 -0
- package/renderables/TextBufferRenderable.d.ts +105 -0
- package/renderables/TextNode.d.ts +91 -0
- package/renderables/TextTable.d.ts +140 -0
- package/renderables/Textarea.d.ts +114 -0
- package/renderables/TimeToFirstDraw.d.ts +24 -0
- package/renderables/__tests__/renderable-test-utils.d.ts +12 -0
- package/renderables/composition/VRenderable.d.ts +16 -0
- package/renderables/composition/constructs.d.ts +35 -0
- package/renderables/composition/vnode.d.ts +46 -0
- package/renderables/index.d.ts +22 -0
- package/renderables/markdown-parser.d.ts +10 -0
- package/renderer.d.ts +388 -0
- package/runtime-plugin-support.d.ts +3 -0
- package/runtime-plugin-support.js +29 -0
- package/runtime-plugin-support.js.map +10 -0
- package/runtime-plugin.d.ts +11 -0
- package/runtime-plugin.js +16 -0
- package/runtime-plugin.js.map +9 -0
- package/syntax-style.d.ts +54 -0
- package/testing/manual-clock.d.ts +16 -0
- package/testing/mock-keys.d.ts +81 -0
- package/testing/mock-mouse.d.ts +38 -0
- package/testing/mock-tree-sitter-client.d.ts +23 -0
- package/testing/spy.d.ts +7 -0
- package/testing/test-recorder.d.ts +61 -0
- package/testing/test-renderer.d.ts +23 -0
- package/testing.d.ts +6 -0
- package/testing.js +675 -0
- package/testing.js.map +15 -0
- package/text-buffer-view.d.ts +42 -0
- package/text-buffer.d.ts +67 -0
- package/types.d.ts +131 -0
- package/utils.d.ts +14 -0
- package/zig-structs.d.ts +155 -0
- package/zig.d.ts +351 -0
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { type RenderableOptions, Renderable } from "../Renderable";
|
|
2
|
+
import type { OptimizedBuffer } from "../buffer";
|
|
3
|
+
import { type BorderStyle } from "../lib/border";
|
|
4
|
+
import { type Selection } from "../lib/selection";
|
|
5
|
+
import { RGBA, type ColorInput } from "../lib/RGBA";
|
|
6
|
+
import { type TextChunk } from "../text-buffer";
|
|
7
|
+
import type { RenderContext } from "../types";
|
|
8
|
+
export type TextTableCellContent = TextChunk[] | null | undefined;
|
|
9
|
+
export type TextTableContent = TextTableCellContent[][];
|
|
10
|
+
export type TextTableColumnWidthMode = "content" | "full";
|
|
11
|
+
export type TextTableColumnFitter = "proportional" | "balanced";
|
|
12
|
+
export interface TextTableOptions extends RenderableOptions<TextTableRenderable> {
|
|
13
|
+
content?: TextTableContent;
|
|
14
|
+
wrapMode?: "none" | "char" | "word";
|
|
15
|
+
columnWidthMode?: TextTableColumnWidthMode;
|
|
16
|
+
columnFitter?: TextTableColumnFitter;
|
|
17
|
+
cellPadding?: number;
|
|
18
|
+
showBorders?: boolean;
|
|
19
|
+
border?: boolean;
|
|
20
|
+
outerBorder?: boolean;
|
|
21
|
+
selectable?: boolean;
|
|
22
|
+
selectionBg?: ColorInput;
|
|
23
|
+
selectionFg?: ColorInput;
|
|
24
|
+
borderStyle?: BorderStyle;
|
|
25
|
+
borderColor?: ColorInput;
|
|
26
|
+
borderBackgroundColor?: ColorInput;
|
|
27
|
+
backgroundColor?: ColorInput;
|
|
28
|
+
fg?: ColorInput;
|
|
29
|
+
bg?: ColorInput;
|
|
30
|
+
attributes?: number;
|
|
31
|
+
}
|
|
32
|
+
export declare class TextTableRenderable extends Renderable {
|
|
33
|
+
private _content;
|
|
34
|
+
private _wrapMode;
|
|
35
|
+
private _columnWidthMode;
|
|
36
|
+
private _columnFitter;
|
|
37
|
+
private _cellPadding;
|
|
38
|
+
private _showBorders;
|
|
39
|
+
private _border;
|
|
40
|
+
private _outerBorder;
|
|
41
|
+
private _hasExplicitOuterBorder;
|
|
42
|
+
private _borderStyle;
|
|
43
|
+
private _borderColor;
|
|
44
|
+
private _borderBackgroundColor;
|
|
45
|
+
private _backgroundColor;
|
|
46
|
+
private _defaultFg;
|
|
47
|
+
private _defaultBg;
|
|
48
|
+
private _defaultAttributes;
|
|
49
|
+
private _selectionBg;
|
|
50
|
+
private _selectionFg;
|
|
51
|
+
private _lastLocalSelection;
|
|
52
|
+
private _lastSelectionMode;
|
|
53
|
+
private _cells;
|
|
54
|
+
private _prevCellContent;
|
|
55
|
+
private _rowCount;
|
|
56
|
+
private _columnCount;
|
|
57
|
+
private _layout;
|
|
58
|
+
private _layoutDirty;
|
|
59
|
+
private _rasterDirty;
|
|
60
|
+
private _cachedMeasureLayout;
|
|
61
|
+
private _cachedMeasureWidth;
|
|
62
|
+
private readonly _defaultOptions;
|
|
63
|
+
constructor(ctx: RenderContext, options?: TextTableOptions);
|
|
64
|
+
get content(): TextTableContent;
|
|
65
|
+
set content(value: TextTableContent);
|
|
66
|
+
get wrapMode(): "none" | "char" | "word";
|
|
67
|
+
set wrapMode(value: "none" | "char" | "word");
|
|
68
|
+
get columnWidthMode(): TextTableColumnWidthMode;
|
|
69
|
+
set columnWidthMode(value: TextTableColumnWidthMode);
|
|
70
|
+
get columnFitter(): TextTableColumnFitter;
|
|
71
|
+
set columnFitter(value: TextTableColumnFitter);
|
|
72
|
+
get cellPadding(): number;
|
|
73
|
+
set cellPadding(value: number);
|
|
74
|
+
get showBorders(): boolean;
|
|
75
|
+
set showBorders(value: boolean);
|
|
76
|
+
get outerBorder(): boolean;
|
|
77
|
+
set outerBorder(value: boolean);
|
|
78
|
+
get border(): boolean;
|
|
79
|
+
set border(value: boolean);
|
|
80
|
+
get borderStyle(): BorderStyle;
|
|
81
|
+
set borderStyle(value: BorderStyle);
|
|
82
|
+
get borderColor(): RGBA;
|
|
83
|
+
set borderColor(value: ColorInput);
|
|
84
|
+
shouldStartSelection(x: number, y: number): boolean;
|
|
85
|
+
onSelectionChanged(selection: Selection | null): boolean;
|
|
86
|
+
hasSelection(): boolean;
|
|
87
|
+
getSelection(): {
|
|
88
|
+
start: number;
|
|
89
|
+
end: number;
|
|
90
|
+
} | null;
|
|
91
|
+
getSelectedText(): string;
|
|
92
|
+
protected onResize(width: number, height: number): void;
|
|
93
|
+
protected renderSelf(buffer: OptimizedBuffer): void;
|
|
94
|
+
protected destroySelf(): void;
|
|
95
|
+
private setupMeasureFunc;
|
|
96
|
+
private rebuildCells;
|
|
97
|
+
private updateCellsDiff;
|
|
98
|
+
private createCell;
|
|
99
|
+
private toStyledText;
|
|
100
|
+
private destroyCells;
|
|
101
|
+
private rebuildLayoutForCurrentWidth;
|
|
102
|
+
private computeLayout;
|
|
103
|
+
private isFullWidthMode;
|
|
104
|
+
private computeColumnWidths;
|
|
105
|
+
private expandColumnWidths;
|
|
106
|
+
private fitColumnWidths;
|
|
107
|
+
private fitColumnWidthsProportional;
|
|
108
|
+
private fitColumnWidthsBalanced;
|
|
109
|
+
private allocateShrinkByWeight;
|
|
110
|
+
private computeRowHeights;
|
|
111
|
+
private computeOffsets;
|
|
112
|
+
private applyLayoutToViews;
|
|
113
|
+
private resolveBorderLayout;
|
|
114
|
+
private getVerticalBorderCount;
|
|
115
|
+
private getHorizontalBorderCount;
|
|
116
|
+
private drawBorders;
|
|
117
|
+
private drawCells;
|
|
118
|
+
private drawCellRange;
|
|
119
|
+
private redrawSelectionRows;
|
|
120
|
+
private clearCellRange;
|
|
121
|
+
private ensureLayoutReady;
|
|
122
|
+
private getCellAtLocalPosition;
|
|
123
|
+
private applySelectionToCells;
|
|
124
|
+
private resolveSelectionResolution;
|
|
125
|
+
private getColumnAtLocalX;
|
|
126
|
+
private getFullCellSelectionCoords;
|
|
127
|
+
private findRowForLocalY;
|
|
128
|
+
private getSelectionRowRange;
|
|
129
|
+
private getDirtySelectionRowRange;
|
|
130
|
+
private resetRowSelection;
|
|
131
|
+
private resetCellSelections;
|
|
132
|
+
private createEmptyLayout;
|
|
133
|
+
private resolveLayoutWidthConstraint;
|
|
134
|
+
private getHorizontalCellPadding;
|
|
135
|
+
private getVerticalCellPadding;
|
|
136
|
+
private resolveColumnFitter;
|
|
137
|
+
private resolveCellPadding;
|
|
138
|
+
private invalidateLayoutAndRaster;
|
|
139
|
+
private invalidateRasterOnly;
|
|
140
|
+
}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import type { KeyEvent, PasteEvent } from "../lib/KeyHandler.js";
|
|
2
|
+
import { RGBA, type ColorInput } from "../lib/RGBA.js";
|
|
3
|
+
import { type RenderContext } from "../types.js";
|
|
4
|
+
import { EditBufferRenderable, type EditBufferOptions } from "./EditBufferRenderable.js";
|
|
5
|
+
import { type KeyBinding as BaseKeyBinding, type KeyAliasMap } from "../lib/keymapping.js";
|
|
6
|
+
import { type StyledText } from "../lib/styled-text.js";
|
|
7
|
+
import type { ExtmarksController } from "../lib/extmarks.js";
|
|
8
|
+
export type TextareaAction = "move-left" | "move-right" | "move-up" | "move-down" | "select-left" | "select-right" | "select-up" | "select-down" | "line-home" | "line-end" | "select-line-home" | "select-line-end" | "visual-line-home" | "visual-line-end" | "select-visual-line-home" | "select-visual-line-end" | "buffer-home" | "buffer-end" | "select-buffer-home" | "select-buffer-end" | "delete-line" | "delete-to-line-end" | "delete-to-line-start" | "backspace" | "delete" | "newline" | "undo" | "redo" | "word-forward" | "word-backward" | "select-word-forward" | "select-word-backward" | "delete-word-forward" | "delete-word-backward" | "select-all" | "submit";
|
|
9
|
+
export type KeyBinding = BaseKeyBinding<TextareaAction>;
|
|
10
|
+
export interface SubmitEvent {
|
|
11
|
+
}
|
|
12
|
+
export interface TextareaOptions extends EditBufferOptions {
|
|
13
|
+
initialValue?: string;
|
|
14
|
+
backgroundColor?: ColorInput;
|
|
15
|
+
textColor?: ColorInput;
|
|
16
|
+
focusedBackgroundColor?: ColorInput;
|
|
17
|
+
focusedTextColor?: ColorInput;
|
|
18
|
+
placeholder?: StyledText | string | null;
|
|
19
|
+
placeholderColor?: ColorInput;
|
|
20
|
+
keyBindings?: KeyBinding[];
|
|
21
|
+
keyAliasMap?: KeyAliasMap;
|
|
22
|
+
onSubmit?: (event: SubmitEvent) => void;
|
|
23
|
+
}
|
|
24
|
+
export declare class TextareaRenderable extends EditBufferRenderable {
|
|
25
|
+
private _placeholder;
|
|
26
|
+
private _placeholderColor;
|
|
27
|
+
private _unfocusedBackgroundColor;
|
|
28
|
+
private _unfocusedTextColor;
|
|
29
|
+
private _focusedBackgroundColor;
|
|
30
|
+
private _focusedTextColor;
|
|
31
|
+
private _keyBindingsMap;
|
|
32
|
+
private _keyAliasMap;
|
|
33
|
+
private _keyBindings;
|
|
34
|
+
private _actionHandlers;
|
|
35
|
+
private _initialValueSet;
|
|
36
|
+
private _submitListener;
|
|
37
|
+
private static readonly defaults;
|
|
38
|
+
constructor(ctx: RenderContext, options: TextareaOptions);
|
|
39
|
+
private applyPlaceholder;
|
|
40
|
+
private buildActionHandlers;
|
|
41
|
+
handlePaste(event: PasteEvent): void;
|
|
42
|
+
handleKeyPress(key: KeyEvent): boolean;
|
|
43
|
+
private updateColors;
|
|
44
|
+
insertChar(char: string): void;
|
|
45
|
+
insertText(text: string): void;
|
|
46
|
+
deleteChar(): boolean;
|
|
47
|
+
deleteCharBackward(): boolean;
|
|
48
|
+
private deleteSelectedText;
|
|
49
|
+
newLine(): boolean;
|
|
50
|
+
deleteLine(): boolean;
|
|
51
|
+
moveCursorLeft(options?: {
|
|
52
|
+
select?: boolean;
|
|
53
|
+
}): boolean;
|
|
54
|
+
moveCursorRight(options?: {
|
|
55
|
+
select?: boolean;
|
|
56
|
+
}): boolean;
|
|
57
|
+
moveCursorUp(options?: {
|
|
58
|
+
select?: boolean;
|
|
59
|
+
}): boolean;
|
|
60
|
+
moveCursorDown(options?: {
|
|
61
|
+
select?: boolean;
|
|
62
|
+
}): boolean;
|
|
63
|
+
gotoLine(line: number): void;
|
|
64
|
+
gotoLineHome(options?: {
|
|
65
|
+
select?: boolean;
|
|
66
|
+
}): boolean;
|
|
67
|
+
gotoLineEnd(options?: {
|
|
68
|
+
select?: boolean;
|
|
69
|
+
}): boolean;
|
|
70
|
+
gotoVisualLineHome(options?: {
|
|
71
|
+
select?: boolean;
|
|
72
|
+
}): boolean;
|
|
73
|
+
gotoVisualLineEnd(options?: {
|
|
74
|
+
select?: boolean;
|
|
75
|
+
}): boolean;
|
|
76
|
+
gotoBufferHome(options?: {
|
|
77
|
+
select?: boolean;
|
|
78
|
+
}): boolean;
|
|
79
|
+
gotoBufferEnd(options?: {
|
|
80
|
+
select?: boolean;
|
|
81
|
+
}): boolean;
|
|
82
|
+
selectAll(): boolean;
|
|
83
|
+
deleteToLineEnd(): boolean;
|
|
84
|
+
deleteToLineStart(): boolean;
|
|
85
|
+
undo(): boolean;
|
|
86
|
+
redo(): boolean;
|
|
87
|
+
moveWordForward(options?: {
|
|
88
|
+
select?: boolean;
|
|
89
|
+
}): boolean;
|
|
90
|
+
moveWordBackward(options?: {
|
|
91
|
+
select?: boolean;
|
|
92
|
+
}): boolean;
|
|
93
|
+
deleteWordForward(): boolean;
|
|
94
|
+
deleteWordBackward(): boolean;
|
|
95
|
+
focus(): void;
|
|
96
|
+
blur(): void;
|
|
97
|
+
get placeholder(): StyledText | string | null;
|
|
98
|
+
set placeholder(value: StyledText | string | null | undefined);
|
|
99
|
+
get placeholderColor(): RGBA;
|
|
100
|
+
set placeholderColor(value: ColorInput);
|
|
101
|
+
get backgroundColor(): RGBA;
|
|
102
|
+
set backgroundColor(value: RGBA | string | undefined);
|
|
103
|
+
get textColor(): RGBA;
|
|
104
|
+
set textColor(value: RGBA | string | undefined);
|
|
105
|
+
set focusedBackgroundColor(value: ColorInput);
|
|
106
|
+
set focusedTextColor(value: ColorInput);
|
|
107
|
+
set initialValue(value: string);
|
|
108
|
+
submit(): boolean;
|
|
109
|
+
set onSubmit(handler: ((event: SubmitEvent) => void) | undefined);
|
|
110
|
+
get onSubmit(): ((event: SubmitEvent) => void) | undefined;
|
|
111
|
+
set keyBindings(bindings: KeyBinding[]);
|
|
112
|
+
set keyAliasMap(aliases: KeyAliasMap);
|
|
113
|
+
get extmarks(): ExtmarksController;
|
|
114
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { OptimizedBuffer } from "../buffer";
|
|
2
|
+
import { type ColorInput } from "../lib/RGBA";
|
|
3
|
+
import { Renderable, type RenderableOptions } from "../Renderable";
|
|
4
|
+
import type { RenderContext } from "../types";
|
|
5
|
+
export interface TimeToFirstDrawOptions extends RenderableOptions<TimeToFirstDrawRenderable> {
|
|
6
|
+
fg?: ColorInput;
|
|
7
|
+
label?: string;
|
|
8
|
+
precision?: number;
|
|
9
|
+
}
|
|
10
|
+
export declare class TimeToFirstDrawRenderable extends Renderable {
|
|
11
|
+
private _runtimeMs;
|
|
12
|
+
private textColor;
|
|
13
|
+
private label;
|
|
14
|
+
private precision;
|
|
15
|
+
constructor(ctx: RenderContext, options?: TimeToFirstDrawOptions);
|
|
16
|
+
get runtimeMs(): number | null;
|
|
17
|
+
set fg(value: ColorInput);
|
|
18
|
+
set color(value: ColorInput);
|
|
19
|
+
set textLabel(value: string);
|
|
20
|
+
set decimals(value: number);
|
|
21
|
+
reset(): void;
|
|
22
|
+
protected renderSelf(buffer: OptimizedBuffer): void;
|
|
23
|
+
private normalizePrecision;
|
|
24
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { TextareaRenderable } from "../Textarea.js";
|
|
2
|
+
import { type TestRenderer } from "../../testing/test-renderer.js";
|
|
3
|
+
import { type TextareaOptions } from "../Textarea.js";
|
|
4
|
+
import type { DiffRenderable } from "../Diff.js";
|
|
5
|
+
import type { MockTreeSitterClient } from "../../testing/mock-tree-sitter-client.js";
|
|
6
|
+
import type { ManualClock } from "../../testing/manual-clock.js";
|
|
7
|
+
export declare function createTextareaRenderable(renderer: TestRenderer, renderOnce: () => Promise<void>, options: TextareaOptions): Promise<{
|
|
8
|
+
textarea: TextareaRenderable;
|
|
9
|
+
root: any;
|
|
10
|
+
}>;
|
|
11
|
+
export declare function settleDiffHighlighting(diff: DiffRenderable, client: MockTreeSitterClient, render: () => Promise<void>): Promise<void>;
|
|
12
|
+
export declare function simulateFrames(clock: ManualClock, renderOnce: () => Promise<void>, ms: number, frameInterval?: number): Promise<void>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Renderable, type RenderableOptions } from "../../Renderable.js";
|
|
2
|
+
import type { OptimizedBuffer } from "../../buffer.js";
|
|
3
|
+
import type { RenderContext } from "../../types.js";
|
|
4
|
+
export interface VRenderableOptions extends RenderableOptions<VRenderable> {
|
|
5
|
+
render?: (this: VRenderable | VRenderableOptions, buffer: OptimizedBuffer, deltaTime: number, renderable: VRenderable) => void;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* A generic renderable that accepts a custom render function as a prop.
|
|
9
|
+
* This allows functional constructs to specify custom rendering behavior
|
|
10
|
+
* without needing to subclass Renderable.
|
|
11
|
+
*/
|
|
12
|
+
export declare class VRenderable extends Renderable {
|
|
13
|
+
private options;
|
|
14
|
+
constructor(ctx: RenderContext, options: VRenderableOptions);
|
|
15
|
+
protected renderSelf(buffer: OptimizedBuffer, deltaTime: number): void;
|
|
16
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { ASCIIFontRenderable, BoxRenderable, CodeRenderable, InputRenderable, ScrollBoxRenderable, SelectRenderable, TabSelectRenderable, TextRenderable, VRenderable, FrameBufferRenderable, type ASCIIFontOptions, type BoxOptions, type CodeOptions, type TextOptions, type VRenderableOptions, type InputRenderableOptions, type ScrollBoxOptions, type SelectRenderableOptions, type TabSelectRenderableOptions, type FrameBufferOptions } from "..//index.js";
|
|
2
|
+
import { TextNodeRenderable } from "../TextNode.js";
|
|
3
|
+
import { type VChild } from "./vnode.js";
|
|
4
|
+
import type { RGBA } from "../../lib/RGBA.js";
|
|
5
|
+
export declare function Generic(props?: VRenderableOptions, ...children: VChild[]): import("./vnode.js").ProxiedVNode<typeof VRenderable>;
|
|
6
|
+
export declare function Box(props?: BoxOptions, ...children: VChild[]): import("./vnode.js").ProxiedVNode<typeof BoxRenderable>;
|
|
7
|
+
export declare function Text(props?: TextOptions & {
|
|
8
|
+
content?: any;
|
|
9
|
+
}, ...children: VChild[] | TextNodeRenderable[]): import("./vnode.js").ProxiedVNode<typeof TextRenderable>;
|
|
10
|
+
export declare function ASCIIFont(props?: ASCIIFontOptions, ...children: VChild[]): import("./vnode.js").ProxiedVNode<typeof ASCIIFontRenderable>;
|
|
11
|
+
export declare function Input(props?: InputRenderableOptions, ...children: VChild[]): import("./vnode.js").ProxiedVNode<typeof InputRenderable>;
|
|
12
|
+
export declare function Select(props?: SelectRenderableOptions, ...children: VChild[]): import("./vnode.js").ProxiedVNode<typeof SelectRenderable>;
|
|
13
|
+
export declare function TabSelect(props?: TabSelectRenderableOptions, ...children: VChild[]): import("./vnode.js").ProxiedVNode<typeof TabSelectRenderable>;
|
|
14
|
+
export declare function FrameBuffer(props: FrameBufferOptions, ...children: VChild[]): import("./vnode.js").ProxiedVNode<typeof FrameBufferRenderable>;
|
|
15
|
+
export declare function Code(props: CodeOptions, ...children: VChild[]): import("./vnode.js").ProxiedVNode<typeof CodeRenderable>;
|
|
16
|
+
export declare function ScrollBox(props?: ScrollBoxOptions, ...children: VChild[]): import("./vnode.js").ProxiedVNode<typeof ScrollBoxRenderable>;
|
|
17
|
+
export declare const vstyles: {
|
|
18
|
+
bold: (...children: (string | TextNodeRenderable)[]) => TextNodeRenderable;
|
|
19
|
+
italic: (...children: (string | TextNodeRenderable)[]) => TextNodeRenderable;
|
|
20
|
+
underline: (...children: (string | TextNodeRenderable)[]) => TextNodeRenderable;
|
|
21
|
+
dim: (...children: (string | TextNodeRenderable)[]) => TextNodeRenderable;
|
|
22
|
+
blink: (...children: (string | TextNodeRenderable)[]) => TextNodeRenderable;
|
|
23
|
+
inverse: (...children: (string | TextNodeRenderable)[]) => TextNodeRenderable;
|
|
24
|
+
hidden: (...children: (string | TextNodeRenderable)[]) => TextNodeRenderable;
|
|
25
|
+
strikethrough: (...children: (string | TextNodeRenderable)[]) => TextNodeRenderable;
|
|
26
|
+
boldItalic: (...children: (string | TextNodeRenderable)[]) => TextNodeRenderable;
|
|
27
|
+
boldUnderline: (...children: (string | TextNodeRenderable)[]) => TextNodeRenderable;
|
|
28
|
+
italicUnderline: (...children: (string | TextNodeRenderable)[]) => TextNodeRenderable;
|
|
29
|
+
boldItalicUnderline: (...children: (string | TextNodeRenderable)[]) => TextNodeRenderable;
|
|
30
|
+
color: (color: string | RGBA, ...children: (string | TextNodeRenderable)[]) => TextNodeRenderable;
|
|
31
|
+
bgColor: (bgColor: string | RGBA, ...children: (string | TextNodeRenderable)[]) => TextNodeRenderable;
|
|
32
|
+
fg: (color: string | RGBA, ...children: (string | TextNodeRenderable)[]) => TextNodeRenderable;
|
|
33
|
+
bg: (bgColor: string | RGBA, ...children: (string | TextNodeRenderable)[]) => TextNodeRenderable;
|
|
34
|
+
styled: (attributes?: number, ...children: (string | TextNodeRenderable)[]) => TextNodeRenderable;
|
|
35
|
+
};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Renderable, type RenderableOptions } from "../../Renderable.js";
|
|
2
|
+
import type { RenderContext } from "../../types.js";
|
|
3
|
+
export type VChild = VNode | Renderable | VChild[] | null | undefined | false;
|
|
4
|
+
export interface PendingCall {
|
|
5
|
+
method: string;
|
|
6
|
+
args: any[];
|
|
7
|
+
isProperty?: boolean;
|
|
8
|
+
}
|
|
9
|
+
declare const BrandedVNode: unique symbol;
|
|
10
|
+
export interface VNode<P = any, C = VChild[]> {
|
|
11
|
+
[BrandedVNode]: true;
|
|
12
|
+
type: Construct<P>;
|
|
13
|
+
props?: P;
|
|
14
|
+
children?: C;
|
|
15
|
+
__delegateMap?: Record<string, string>;
|
|
16
|
+
__pendingCalls?: PendingCall[];
|
|
17
|
+
}
|
|
18
|
+
export type ProxiedVNode<TCtor extends RenderableConstructor<any>> = VNode<TCtor extends RenderableConstructor<infer P> ? P : any> & {
|
|
19
|
+
[K in keyof InstanceType<TCtor>]: InstanceType<TCtor>[K] extends (...args: infer Args) => any ? (...args: Args) => ProxiedVNode<TCtor> : InstanceType<TCtor>[K];
|
|
20
|
+
};
|
|
21
|
+
export interface RenderableConstructor<P extends RenderableOptions<any> = RenderableOptions<any>> {
|
|
22
|
+
new (ctx: RenderContext, options: P): Renderable;
|
|
23
|
+
}
|
|
24
|
+
export type FunctionalConstruct<P = any> = (props: P, children?: VChild[]) => VNode;
|
|
25
|
+
export type Construct<P = any> = RenderableConstructor<P extends RenderableOptions<any> ? P : never> | FunctionalConstruct<P>;
|
|
26
|
+
export declare function h<TCtor extends RenderableConstructor<any>>(type: TCtor, props?: TCtor extends RenderableConstructor<infer P> ? P : never, ...children: VChild[]): ProxiedVNode<TCtor>;
|
|
27
|
+
export declare function h<P>(type: FunctionalConstruct<P>, props?: P, ...children: VChild[]): VNode<P>;
|
|
28
|
+
export declare function h<P>(type: Construct<P>, props?: P, ...children: VChild[]): VNode<P> | ProxiedVNode<any>;
|
|
29
|
+
export declare function isVNode(node: any): node is VNode;
|
|
30
|
+
export declare function maybeMakeRenderable(ctx: RenderContext, node: Renderable | VNode<any, any[]> | unknown): Renderable | null;
|
|
31
|
+
export declare function wrapWithDelegates<T extends InstanceType<RenderableConstructor>>(instance: T, delegateMap: Record<string, string> | undefined): T;
|
|
32
|
+
export type InstantiateFn<NodeType extends VNode | Renderable> = Renderable & {
|
|
33
|
+
__node?: NodeType;
|
|
34
|
+
};
|
|
35
|
+
export declare function instantiate<NodeType extends VNode | Renderable>(ctx: RenderContext, node: NodeType): InstantiateFn<NodeType>;
|
|
36
|
+
export type DelegateMap<T> = Partial<Record<keyof T, string>>;
|
|
37
|
+
export type ValidateShape<Given, AllowedKeys> = {
|
|
38
|
+
[K in keyof Given]: K extends keyof AllowedKeys ? NonNullable<Given[K]> : never;
|
|
39
|
+
};
|
|
40
|
+
type InferNode<T> = T extends InstantiateFn<infer U> ? U : never;
|
|
41
|
+
export declare function delegate<Factory extends InstantiateFn<any>, InnerNode extends InferNode<Factory>, TargetMap extends Record<keyof InnerNode, string>, const Mapping extends Partial<TargetMap>>(mapping: ValidateShape<Mapping, TargetMap>, vnode: Factory): Renderable;
|
|
42
|
+
export declare function delegate<ConstructorType extends RenderableConstructor<any>, TargetMap extends Record<keyof InstanceType<ConstructorType>, string>, const Mapping extends Partial<TargetMap>>(mapping: ValidateShape<Mapping, TargetMap>, vnode: ProxiedVNode<ConstructorType>): ProxiedVNode<ConstructorType>;
|
|
43
|
+
export declare function delegate<ConstructorType extends RenderableConstructor<any>, const Mapping extends DelegateMap<InstanceType<ConstructorType>>>(mapping: ValidateShape<Mapping, string>, vnode: VNode & {
|
|
44
|
+
type: ConstructorType;
|
|
45
|
+
}): VNode;
|
|
46
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export * from "./ASCIIFont.js";
|
|
2
|
+
export * from "./Box.js";
|
|
3
|
+
export * from "./Code.js";
|
|
4
|
+
export * from "./composition/constructs.js";
|
|
5
|
+
export * from "./composition/VRenderable.js";
|
|
6
|
+
export * from "./composition/vnode.js";
|
|
7
|
+
export * from "./Diff.js";
|
|
8
|
+
export * from "./FrameBuffer.js";
|
|
9
|
+
export * from "./Input.js";
|
|
10
|
+
export * from "./LineNumberRenderable.js";
|
|
11
|
+
export * from "./Markdown.js";
|
|
12
|
+
export * from "./ScrollBar.js";
|
|
13
|
+
export * from "./ScrollBox.js";
|
|
14
|
+
export * from "./Select.js";
|
|
15
|
+
export * from "./Slider.js";
|
|
16
|
+
export * from "./TextTable.js";
|
|
17
|
+
export * from "./TabSelect.js";
|
|
18
|
+
export * from "./Text.js";
|
|
19
|
+
export * from "./TimeToFirstDraw.js";
|
|
20
|
+
export * from "./TextBufferRenderable.js";
|
|
21
|
+
export * from "./TextNode.js";
|
|
22
|
+
export * from "./Textarea.js";
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type MarkedToken } from "marked";
|
|
2
|
+
export interface ParseState {
|
|
3
|
+
content: string;
|
|
4
|
+
tokens: MarkedToken[];
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Incrementally parse markdown, reusing unchanged tokens from previous parse.
|
|
8
|
+
* Compares token.raw at each offset - matching tokens keep same object reference.
|
|
9
|
+
*/
|
|
10
|
+
export declare function parseMarkdownIncremental(newContent: string, prevState: ParseState | null, trailingUnstable?: number): ParseState;
|