@cascadetui/core 0.1.1
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 +34041 -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 +140 -0
- package/edit-buffer.d.ts +98 -0
- package/editor-view.d.ts +73 -0
- package/index-jx194wn1.js +17723 -0
- package/index-jx194wn1.js.map +61 -0
- package/index.d.ts +18 -0
- package/index.js +12210 -0
- package/index.js.map +49 -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 +29 -0
- package/lib/data-paths.d.ts +26 -0
- package/lib/debounce.d.ts +42 -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 +18 -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/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-buffer.d.ts +44 -0
- package/lib/styled-text.d.ts +63 -0
- package/lib/terminal-capability-detection.d.ts +30 -0
- package/lib/terminal-palette.d.ts +43 -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 +67 -0
- package/parser.worker.js +878 -0
- package/parser.worker.js.map +12 -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 +66 -0
- package/renderables/Diff.d.ts +135 -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 +150 -0
- package/renderables/ScrollBar.d.ts +77 -0
- package/renderables/ScrollBox.d.ts +116 -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 +130 -0
- package/renderables/Textarea.d.ts +114 -0
- package/renderables/__tests__/renderable-test-utils.d.ts +7 -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 +21 -0
- package/renderables/markdown-parser.d.ts +10 -0
- package/renderer.d.ts +382 -0
- package/syntax-style.d.ts +54 -0
- package/testing/mock-keys.d.ts +80 -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 +670 -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 +126 -0
- package/utils.d.ts +14 -0
- package/zig-structs.d.ts +155 -0
- package/zig.d.ts +351 -0
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { OptimizedBuffer } from "../buffer";
|
|
2
|
+
import { fonts } from "../lib/ascii.font";
|
|
3
|
+
import type { KeyEvent } from "../lib/KeyHandler";
|
|
4
|
+
import { type ColorInput } from "../lib/RGBA";
|
|
5
|
+
import { Renderable, type RenderableOptions } from "../Renderable";
|
|
6
|
+
import type { RenderContext } from "../types";
|
|
7
|
+
import { type KeyBinding as BaseKeyBinding, type KeyAliasMap } from "../lib/keymapping";
|
|
8
|
+
export interface SelectOption {
|
|
9
|
+
name: string;
|
|
10
|
+
description: string;
|
|
11
|
+
value?: any;
|
|
12
|
+
}
|
|
13
|
+
export type SelectAction = "move-up" | "move-down" | "move-up-fast" | "move-down-fast" | "select-current";
|
|
14
|
+
export type SelectKeyBinding = BaseKeyBinding<SelectAction>;
|
|
15
|
+
export interface SelectRenderableOptions extends RenderableOptions<SelectRenderable> {
|
|
16
|
+
backgroundColor?: ColorInput;
|
|
17
|
+
textColor?: ColorInput;
|
|
18
|
+
focusedBackgroundColor?: ColorInput;
|
|
19
|
+
focusedTextColor?: ColorInput;
|
|
20
|
+
options?: SelectOption[];
|
|
21
|
+
selectedIndex?: number;
|
|
22
|
+
selectedBackgroundColor?: ColorInput;
|
|
23
|
+
selectedTextColor?: ColorInput;
|
|
24
|
+
descriptionColor?: ColorInput;
|
|
25
|
+
selectedDescriptionColor?: ColorInput;
|
|
26
|
+
showScrollIndicator?: boolean;
|
|
27
|
+
wrapSelection?: boolean;
|
|
28
|
+
showDescription?: boolean;
|
|
29
|
+
font?: keyof typeof fonts;
|
|
30
|
+
itemSpacing?: number;
|
|
31
|
+
fastScrollStep?: number;
|
|
32
|
+
keyBindings?: SelectKeyBinding[];
|
|
33
|
+
keyAliasMap?: KeyAliasMap;
|
|
34
|
+
}
|
|
35
|
+
export declare enum SelectRenderableEvents {
|
|
36
|
+
SELECTION_CHANGED = "selectionChanged",
|
|
37
|
+
ITEM_SELECTED = "itemSelected"
|
|
38
|
+
}
|
|
39
|
+
export declare class SelectRenderable extends Renderable {
|
|
40
|
+
protected _focusable: boolean;
|
|
41
|
+
private _options;
|
|
42
|
+
private _selectedIndex;
|
|
43
|
+
private scrollOffset;
|
|
44
|
+
private maxVisibleItems;
|
|
45
|
+
private _backgroundColor;
|
|
46
|
+
private _textColor;
|
|
47
|
+
private _focusedBackgroundColor;
|
|
48
|
+
private _focusedTextColor;
|
|
49
|
+
private _selectedBackgroundColor;
|
|
50
|
+
private _selectedTextColor;
|
|
51
|
+
private _descriptionColor;
|
|
52
|
+
private _selectedDescriptionColor;
|
|
53
|
+
private _showScrollIndicator;
|
|
54
|
+
private _wrapSelection;
|
|
55
|
+
private _showDescription;
|
|
56
|
+
private _font?;
|
|
57
|
+
private _itemSpacing;
|
|
58
|
+
private linesPerItem;
|
|
59
|
+
private fontHeight;
|
|
60
|
+
private _fastScrollStep;
|
|
61
|
+
private _keyBindingsMap;
|
|
62
|
+
private _keyAliasMap;
|
|
63
|
+
private _keyBindings;
|
|
64
|
+
protected _defaultOptions: {
|
|
65
|
+
backgroundColor: string;
|
|
66
|
+
textColor: string;
|
|
67
|
+
focusedBackgroundColor: string;
|
|
68
|
+
focusedTextColor: string;
|
|
69
|
+
selectedBackgroundColor: string;
|
|
70
|
+
selectedTextColor: string;
|
|
71
|
+
selectedIndex: number;
|
|
72
|
+
descriptionColor: string;
|
|
73
|
+
selectedDescriptionColor: string;
|
|
74
|
+
showScrollIndicator: false;
|
|
75
|
+
wrapSelection: false;
|
|
76
|
+
showDescription: true;
|
|
77
|
+
itemSpacing: number;
|
|
78
|
+
fastScrollStep: number;
|
|
79
|
+
};
|
|
80
|
+
constructor(ctx: RenderContext, options: SelectRenderableOptions);
|
|
81
|
+
protected renderSelf(buffer: OptimizedBuffer, deltaTime: number): void;
|
|
82
|
+
private refreshFrameBuffer;
|
|
83
|
+
private renderScrollIndicatorToFrameBuffer;
|
|
84
|
+
get options(): SelectOption[];
|
|
85
|
+
set options(options: SelectOption[]);
|
|
86
|
+
getSelectedOption(): SelectOption | null;
|
|
87
|
+
getSelectedIndex(): number;
|
|
88
|
+
moveUp(steps?: number): void;
|
|
89
|
+
moveDown(steps?: number): void;
|
|
90
|
+
selectCurrent(): void;
|
|
91
|
+
setSelectedIndex(index: number): void;
|
|
92
|
+
private updateScrollOffset;
|
|
93
|
+
protected onResize(width: number, height: number): void;
|
|
94
|
+
handleKeyPress(key: KeyEvent): boolean;
|
|
95
|
+
get showScrollIndicator(): boolean;
|
|
96
|
+
set showScrollIndicator(show: boolean);
|
|
97
|
+
get showDescription(): boolean;
|
|
98
|
+
set showDescription(show: boolean);
|
|
99
|
+
get wrapSelection(): boolean;
|
|
100
|
+
set wrapSelection(wrap: boolean);
|
|
101
|
+
set backgroundColor(value: ColorInput);
|
|
102
|
+
set textColor(value: ColorInput);
|
|
103
|
+
set focusedBackgroundColor(value: ColorInput);
|
|
104
|
+
set focusedTextColor(value: ColorInput);
|
|
105
|
+
set selectedBackgroundColor(value: ColorInput);
|
|
106
|
+
set selectedTextColor(value: ColorInput);
|
|
107
|
+
set descriptionColor(value: ColorInput);
|
|
108
|
+
set selectedDescriptionColor(value: ColorInput);
|
|
109
|
+
set font(font: keyof typeof fonts);
|
|
110
|
+
set itemSpacing(spacing: number);
|
|
111
|
+
set fastScrollStep(step: number);
|
|
112
|
+
set keyBindings(bindings: SelectKeyBinding[]);
|
|
113
|
+
set keyAliasMap(aliases: KeyAliasMap);
|
|
114
|
+
set selectedIndex(value: number);
|
|
115
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { type ColorInput, OptimizedBuffer, Renderable, type RenderableOptions, type RenderContext, RGBA } from "../index";
|
|
2
|
+
export interface SliderOptions extends RenderableOptions<SliderRenderable> {
|
|
3
|
+
orientation: "vertical" | "horizontal";
|
|
4
|
+
value?: number;
|
|
5
|
+
min?: number;
|
|
6
|
+
max?: number;
|
|
7
|
+
viewPortSize?: number;
|
|
8
|
+
backgroundColor?: ColorInput;
|
|
9
|
+
foregroundColor?: ColorInput;
|
|
10
|
+
onChange?: (value: number) => void;
|
|
11
|
+
}
|
|
12
|
+
export declare class SliderRenderable extends Renderable {
|
|
13
|
+
readonly orientation: "vertical" | "horizontal";
|
|
14
|
+
private _value;
|
|
15
|
+
private _min;
|
|
16
|
+
private _max;
|
|
17
|
+
private _viewPortSize;
|
|
18
|
+
private _backgroundColor;
|
|
19
|
+
private _foregroundColor;
|
|
20
|
+
private _onChange?;
|
|
21
|
+
constructor(ctx: RenderContext, options: SliderOptions);
|
|
22
|
+
get value(): number;
|
|
23
|
+
set value(newValue: number);
|
|
24
|
+
get min(): number;
|
|
25
|
+
set min(newMin: number);
|
|
26
|
+
get max(): number;
|
|
27
|
+
set max(newMax: number);
|
|
28
|
+
set viewPortSize(size: number);
|
|
29
|
+
get viewPortSize(): number;
|
|
30
|
+
get backgroundColor(): RGBA;
|
|
31
|
+
set backgroundColor(value: ColorInput);
|
|
32
|
+
get foregroundColor(): RGBA;
|
|
33
|
+
set foregroundColor(value: ColorInput);
|
|
34
|
+
private calculateDragOffsetVirtual;
|
|
35
|
+
private setupMouseHandling;
|
|
36
|
+
private updateValueFromMouseDirect;
|
|
37
|
+
private updateValueFromMouseWithOffset;
|
|
38
|
+
private getThumbRect;
|
|
39
|
+
protected renderSelf(buffer: OptimizedBuffer): void;
|
|
40
|
+
private renderHorizontal;
|
|
41
|
+
private renderVertical;
|
|
42
|
+
private getVirtualThumbSize;
|
|
43
|
+
private getVirtualThumbStart;
|
|
44
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { Renderable, type RenderableOptions } from "../Renderable";
|
|
2
|
+
import { OptimizedBuffer } from "../buffer";
|
|
3
|
+
import { type ColorInput } from "../lib/RGBA";
|
|
4
|
+
import type { KeyEvent } from "../lib/KeyHandler";
|
|
5
|
+
import type { RenderContext } from "../types";
|
|
6
|
+
import { type KeyBinding as BaseKeyBinding, type KeyAliasMap } from "../lib/keymapping";
|
|
7
|
+
export interface TabSelectOption {
|
|
8
|
+
name: string;
|
|
9
|
+
description: string;
|
|
10
|
+
value?: any;
|
|
11
|
+
}
|
|
12
|
+
export type TabSelectAction = "move-left" | "move-right" | "select-current";
|
|
13
|
+
export type TabSelectKeyBinding = BaseKeyBinding<TabSelectAction>;
|
|
14
|
+
export interface TabSelectRenderableOptions extends Omit<RenderableOptions<TabSelectRenderable>, "height"> {
|
|
15
|
+
height?: number;
|
|
16
|
+
options?: TabSelectOption[];
|
|
17
|
+
tabWidth?: number;
|
|
18
|
+
backgroundColor?: ColorInput;
|
|
19
|
+
textColor?: ColorInput;
|
|
20
|
+
focusedBackgroundColor?: ColorInput;
|
|
21
|
+
focusedTextColor?: ColorInput;
|
|
22
|
+
selectedBackgroundColor?: ColorInput;
|
|
23
|
+
selectedTextColor?: ColorInput;
|
|
24
|
+
selectedDescriptionColor?: ColorInput;
|
|
25
|
+
showScrollArrows?: boolean;
|
|
26
|
+
showDescription?: boolean;
|
|
27
|
+
showUnderline?: boolean;
|
|
28
|
+
wrapSelection?: boolean;
|
|
29
|
+
keyBindings?: TabSelectKeyBinding[];
|
|
30
|
+
keyAliasMap?: KeyAliasMap;
|
|
31
|
+
}
|
|
32
|
+
export declare enum TabSelectRenderableEvents {
|
|
33
|
+
SELECTION_CHANGED = "selectionChanged",
|
|
34
|
+
ITEM_SELECTED = "itemSelected"
|
|
35
|
+
}
|
|
36
|
+
export declare class TabSelectRenderable extends Renderable {
|
|
37
|
+
protected _focusable: boolean;
|
|
38
|
+
private _options;
|
|
39
|
+
private selectedIndex;
|
|
40
|
+
private scrollOffset;
|
|
41
|
+
private _tabWidth;
|
|
42
|
+
private maxVisibleTabs;
|
|
43
|
+
private _backgroundColor;
|
|
44
|
+
private _textColor;
|
|
45
|
+
private _focusedBackgroundColor;
|
|
46
|
+
private _focusedTextColor;
|
|
47
|
+
private _selectedBackgroundColor;
|
|
48
|
+
private _selectedTextColor;
|
|
49
|
+
private _selectedDescriptionColor;
|
|
50
|
+
private _showScrollArrows;
|
|
51
|
+
private _showDescription;
|
|
52
|
+
private _showUnderline;
|
|
53
|
+
private _wrapSelection;
|
|
54
|
+
private _keyBindingsMap;
|
|
55
|
+
private _keyAliasMap;
|
|
56
|
+
private _keyBindings;
|
|
57
|
+
constructor(ctx: RenderContext, options: TabSelectRenderableOptions);
|
|
58
|
+
private calculateDynamicHeight;
|
|
59
|
+
protected renderSelf(buffer: OptimizedBuffer, deltaTime: number): void;
|
|
60
|
+
private refreshFrameBuffer;
|
|
61
|
+
private truncateText;
|
|
62
|
+
private renderScrollArrowsToFrameBuffer;
|
|
63
|
+
setOptions(options: TabSelectOption[]): void;
|
|
64
|
+
getSelectedOption(): TabSelectOption | null;
|
|
65
|
+
getSelectedIndex(): number;
|
|
66
|
+
moveLeft(): void;
|
|
67
|
+
moveRight(): void;
|
|
68
|
+
selectCurrent(): void;
|
|
69
|
+
setSelectedIndex(index: number): void;
|
|
70
|
+
private updateScrollOffset;
|
|
71
|
+
protected onResize(width: number, height: number): void;
|
|
72
|
+
setTabWidth(tabWidth: number): void;
|
|
73
|
+
getTabWidth(): number;
|
|
74
|
+
handleKeyPress(key: KeyEvent): boolean;
|
|
75
|
+
get options(): TabSelectOption[];
|
|
76
|
+
set options(options: TabSelectOption[]);
|
|
77
|
+
set backgroundColor(color: ColorInput);
|
|
78
|
+
set textColor(color: ColorInput);
|
|
79
|
+
set focusedBackgroundColor(color: ColorInput);
|
|
80
|
+
set focusedTextColor(color: ColorInput);
|
|
81
|
+
set selectedBackgroundColor(color: ColorInput);
|
|
82
|
+
set selectedTextColor(color: ColorInput);
|
|
83
|
+
set selectedDescriptionColor(color: ColorInput);
|
|
84
|
+
get showDescription(): boolean;
|
|
85
|
+
set showDescription(show: boolean);
|
|
86
|
+
get showUnderline(): boolean;
|
|
87
|
+
set showUnderline(show: boolean);
|
|
88
|
+
get showScrollArrows(): boolean;
|
|
89
|
+
set showScrollArrows(show: boolean);
|
|
90
|
+
get wrapSelection(): boolean;
|
|
91
|
+
set wrapSelection(wrap: boolean);
|
|
92
|
+
get tabWidth(): number;
|
|
93
|
+
set tabWidth(tabWidth: number);
|
|
94
|
+
set keyBindings(bindings: TabSelectKeyBinding[]);
|
|
95
|
+
set keyAliasMap(aliases: KeyAliasMap);
|
|
96
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { BaseRenderable } from "../Renderable";
|
|
2
|
+
import { StyledText } from "../lib/styled-text";
|
|
3
|
+
import { type TextChunk } from "../text-buffer";
|
|
4
|
+
import { RGBA } from "../lib/RGBA";
|
|
5
|
+
import { type RenderContext } from "../types";
|
|
6
|
+
import { RootTextNodeRenderable, TextNodeRenderable } from "./TextNode";
|
|
7
|
+
import { TextBufferRenderable, type TextBufferOptions } from "./TextBufferRenderable";
|
|
8
|
+
export interface TextOptions extends TextBufferOptions {
|
|
9
|
+
content?: StyledText | string;
|
|
10
|
+
}
|
|
11
|
+
export declare class TextRenderable extends TextBufferRenderable {
|
|
12
|
+
private _text;
|
|
13
|
+
private _hasManualStyledText;
|
|
14
|
+
protected rootTextNode: RootTextNodeRenderable;
|
|
15
|
+
protected _contentDefaultOptions: {
|
|
16
|
+
content: string;
|
|
17
|
+
};
|
|
18
|
+
constructor(ctx: RenderContext, options: TextOptions);
|
|
19
|
+
private updateTextBuffer;
|
|
20
|
+
private clearChunks;
|
|
21
|
+
get content(): StyledText;
|
|
22
|
+
get chunks(): TextChunk[];
|
|
23
|
+
get textNode(): RootTextNodeRenderable;
|
|
24
|
+
set content(value: StyledText | string);
|
|
25
|
+
private updateTextFromNodes;
|
|
26
|
+
add(obj: TextNodeRenderable | StyledText | string, index?: number): number;
|
|
27
|
+
remove(id: string): void;
|
|
28
|
+
insertBefore(obj: BaseRenderable | any, anchor?: TextNodeRenderable): number;
|
|
29
|
+
getTextChildren(): BaseRenderable[];
|
|
30
|
+
clear(): void;
|
|
31
|
+
onLifecyclePass: () => void;
|
|
32
|
+
protected onFgChanged(newColor: RGBA): void;
|
|
33
|
+
protected onBgChanged(newColor: RGBA): void;
|
|
34
|
+
protected onAttributesChanged(newAttributes: number): void;
|
|
35
|
+
destroy(): void;
|
|
36
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { Renderable, type RenderableOptions } from "../Renderable";
|
|
2
|
+
import { Selection, type LocalSelectionBounds } from "../lib/selection";
|
|
3
|
+
import { TextBuffer } from "../text-buffer";
|
|
4
|
+
import { TextBufferView } from "../text-buffer-view";
|
|
5
|
+
import { RGBA } from "../lib/RGBA";
|
|
6
|
+
import { type RenderContext, type LineInfoProvider } from "../types";
|
|
7
|
+
import type { OptimizedBuffer } from "../buffer";
|
|
8
|
+
import type { LineInfo } from "../zig";
|
|
9
|
+
import { SyntaxStyle } from "../syntax-style";
|
|
10
|
+
export interface TextBufferOptions extends RenderableOptions<TextBufferRenderable> {
|
|
11
|
+
fg?: string | RGBA;
|
|
12
|
+
bg?: string | RGBA;
|
|
13
|
+
selectionBg?: string | RGBA;
|
|
14
|
+
selectionFg?: string | RGBA;
|
|
15
|
+
selectable?: boolean;
|
|
16
|
+
attributes?: number;
|
|
17
|
+
wrapMode?: "none" | "char" | "word";
|
|
18
|
+
tabIndicator?: string | number;
|
|
19
|
+
tabIndicatorColor?: string | RGBA;
|
|
20
|
+
truncate?: boolean;
|
|
21
|
+
}
|
|
22
|
+
export declare abstract class TextBufferRenderable extends Renderable implements LineInfoProvider {
|
|
23
|
+
selectable: boolean;
|
|
24
|
+
protected _defaultFg: RGBA;
|
|
25
|
+
protected _defaultBg: RGBA;
|
|
26
|
+
protected _defaultAttributes: number;
|
|
27
|
+
protected _selectionBg: RGBA | undefined;
|
|
28
|
+
protected _selectionFg: RGBA | undefined;
|
|
29
|
+
protected _wrapMode: "none" | "char" | "word";
|
|
30
|
+
protected lastLocalSelection: LocalSelectionBounds | null;
|
|
31
|
+
protected _tabIndicator?: string | number;
|
|
32
|
+
protected _tabIndicatorColor?: RGBA;
|
|
33
|
+
protected _scrollX: number;
|
|
34
|
+
protected _scrollY: number;
|
|
35
|
+
protected _truncate: boolean;
|
|
36
|
+
protected textBuffer: TextBuffer;
|
|
37
|
+
protected textBufferView: TextBufferView;
|
|
38
|
+
protected _textBufferSyntaxStyle: SyntaxStyle;
|
|
39
|
+
protected _defaultOptions: {
|
|
40
|
+
fg: RGBA;
|
|
41
|
+
bg: RGBA;
|
|
42
|
+
selectionBg: undefined;
|
|
43
|
+
selectionFg: undefined;
|
|
44
|
+
selectable: true;
|
|
45
|
+
attributes: number;
|
|
46
|
+
wrapMode: "none" | "char" | "word";
|
|
47
|
+
tabIndicator: undefined;
|
|
48
|
+
tabIndicatorColor: undefined;
|
|
49
|
+
truncate: false;
|
|
50
|
+
};
|
|
51
|
+
constructor(ctx: RenderContext, options: TextBufferOptions);
|
|
52
|
+
protected onMouseEvent(event: any): void;
|
|
53
|
+
protected handleScroll(event: any): void;
|
|
54
|
+
get lineInfo(): LineInfo;
|
|
55
|
+
get lineCount(): number;
|
|
56
|
+
get virtualLineCount(): number;
|
|
57
|
+
get scrollY(): number;
|
|
58
|
+
set scrollY(value: number);
|
|
59
|
+
get scrollX(): number;
|
|
60
|
+
set scrollX(value: number);
|
|
61
|
+
get scrollWidth(): number;
|
|
62
|
+
get scrollHeight(): number;
|
|
63
|
+
get maxScrollY(): number;
|
|
64
|
+
get maxScrollX(): number;
|
|
65
|
+
protected updateViewportOffset(): void;
|
|
66
|
+
get plainText(): string;
|
|
67
|
+
get textLength(): number;
|
|
68
|
+
get fg(): RGBA;
|
|
69
|
+
set fg(value: RGBA | string | undefined);
|
|
70
|
+
get selectionBg(): RGBA | undefined;
|
|
71
|
+
set selectionBg(value: RGBA | string | undefined);
|
|
72
|
+
get selectionFg(): RGBA | undefined;
|
|
73
|
+
set selectionFg(value: RGBA | string | undefined);
|
|
74
|
+
get bg(): RGBA;
|
|
75
|
+
set bg(value: RGBA | string | undefined);
|
|
76
|
+
get attributes(): number;
|
|
77
|
+
set attributes(value: number);
|
|
78
|
+
get wrapMode(): "none" | "char" | "word";
|
|
79
|
+
set wrapMode(value: "none" | "char" | "word");
|
|
80
|
+
get tabIndicator(): string | number | undefined;
|
|
81
|
+
set tabIndicator(value: string | number | undefined);
|
|
82
|
+
get tabIndicatorColor(): RGBA | undefined;
|
|
83
|
+
set tabIndicatorColor(value: RGBA | string | undefined);
|
|
84
|
+
get truncate(): boolean;
|
|
85
|
+
set truncate(value: boolean);
|
|
86
|
+
protected onResize(width: number, height: number): void;
|
|
87
|
+
protected refreshLocalSelection(): boolean;
|
|
88
|
+
private updateLocalSelection;
|
|
89
|
+
protected updateTextInfo(): void;
|
|
90
|
+
private setupMeasureFunc;
|
|
91
|
+
shouldStartSelection(x: number, y: number): boolean;
|
|
92
|
+
onSelectionChanged(selection: Selection | null): boolean;
|
|
93
|
+
getSelectedText(): string;
|
|
94
|
+
hasSelection(): boolean;
|
|
95
|
+
getSelection(): {
|
|
96
|
+
start: number;
|
|
97
|
+
end: number;
|
|
98
|
+
} | null;
|
|
99
|
+
render(buffer: OptimizedBuffer, deltaTime: number): void;
|
|
100
|
+
protected renderSelf(buffer: OptimizedBuffer): void;
|
|
101
|
+
destroy(): void;
|
|
102
|
+
protected onFgChanged(newColor: RGBA): void;
|
|
103
|
+
protected onBgChanged(newColor: RGBA): void;
|
|
104
|
+
protected onAttributesChanged(newAttributes: number): void;
|
|
105
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import type { TextRenderable } from ".";
|
|
2
|
+
import { BaseRenderable, type BaseRenderableOptions } from "../Renderable";
|
|
3
|
+
import { RGBA } from "../lib/RGBA";
|
|
4
|
+
import { StyledText } from "../lib/styled-text";
|
|
5
|
+
import { type TextChunk } from "../text-buffer";
|
|
6
|
+
import type { RenderContext } from "../types";
|
|
7
|
+
export interface TextNodeOptions extends BaseRenderableOptions {
|
|
8
|
+
fg?: string | RGBA;
|
|
9
|
+
bg?: string | RGBA;
|
|
10
|
+
attributes?: number;
|
|
11
|
+
link?: {
|
|
12
|
+
url: string;
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
declare const BrandedTextNodeRenderable: unique symbol;
|
|
16
|
+
export declare function isTextNodeRenderable(obj: any): obj is TextNodeRenderable;
|
|
17
|
+
export declare class TextNodeRenderable extends BaseRenderable {
|
|
18
|
+
[BrandedTextNodeRenderable]: boolean;
|
|
19
|
+
private _fg?;
|
|
20
|
+
private _bg?;
|
|
21
|
+
private _attributes;
|
|
22
|
+
private _link?;
|
|
23
|
+
private _children;
|
|
24
|
+
parent: TextNodeRenderable | null;
|
|
25
|
+
constructor(options: TextNodeOptions);
|
|
26
|
+
get children(): (string | TextNodeRenderable)[];
|
|
27
|
+
set children(children: (string | TextNodeRenderable)[]);
|
|
28
|
+
requestRender(): void;
|
|
29
|
+
add(obj: TextNodeRenderable | StyledText | string, index?: number): number;
|
|
30
|
+
replace(obj: TextNodeRenderable | string, index: number): void;
|
|
31
|
+
insertBefore(child: string | TextNodeRenderable | StyledText, anchorNode: TextNodeRenderable | string | unknown): this;
|
|
32
|
+
remove(id: string): this;
|
|
33
|
+
clear(): void;
|
|
34
|
+
mergeStyles(parentStyle: {
|
|
35
|
+
fg?: RGBA;
|
|
36
|
+
bg?: RGBA;
|
|
37
|
+
attributes: number;
|
|
38
|
+
link?: {
|
|
39
|
+
url: string;
|
|
40
|
+
};
|
|
41
|
+
}): {
|
|
42
|
+
fg?: RGBA;
|
|
43
|
+
bg?: RGBA;
|
|
44
|
+
attributes: number;
|
|
45
|
+
link?: {
|
|
46
|
+
url: string;
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
gatherWithInheritedStyle(parentStyle?: {
|
|
50
|
+
fg?: RGBA;
|
|
51
|
+
bg?: RGBA;
|
|
52
|
+
attributes: number;
|
|
53
|
+
link?: {
|
|
54
|
+
url: string;
|
|
55
|
+
};
|
|
56
|
+
}): TextChunk[];
|
|
57
|
+
static fromString(text: string, options?: Partial<TextNodeOptions>): TextNodeRenderable;
|
|
58
|
+
static fromNodes(nodes: TextNodeRenderable[], options?: Partial<TextNodeOptions>): TextNodeRenderable;
|
|
59
|
+
toChunks(parentStyle?: {
|
|
60
|
+
fg?: RGBA;
|
|
61
|
+
bg?: RGBA;
|
|
62
|
+
attributes: number;
|
|
63
|
+
link?: {
|
|
64
|
+
url: string;
|
|
65
|
+
};
|
|
66
|
+
}): TextChunk[];
|
|
67
|
+
getChildren(): BaseRenderable[];
|
|
68
|
+
getChildrenCount(): number;
|
|
69
|
+
getRenderable(id: string): BaseRenderable | undefined;
|
|
70
|
+
getRenderableIndex(id: string): number;
|
|
71
|
+
get fg(): RGBA | undefined;
|
|
72
|
+
set fg(fg: RGBA | string | undefined);
|
|
73
|
+
set bg(bg: RGBA | string | undefined);
|
|
74
|
+
get bg(): RGBA | undefined;
|
|
75
|
+
set attributes(attributes: number);
|
|
76
|
+
get attributes(): number;
|
|
77
|
+
set link(link: {
|
|
78
|
+
url: string;
|
|
79
|
+
} | undefined);
|
|
80
|
+
get link(): {
|
|
81
|
+
url: string;
|
|
82
|
+
} | undefined;
|
|
83
|
+
findDescendantById(id: string): BaseRenderable | undefined;
|
|
84
|
+
}
|
|
85
|
+
export declare class RootTextNodeRenderable extends TextNodeRenderable {
|
|
86
|
+
private readonly ctx;
|
|
87
|
+
textParent: TextRenderable;
|
|
88
|
+
constructor(ctx: RenderContext, options: TextNodeOptions, textParent: TextRenderable);
|
|
89
|
+
requestRender(): void;
|
|
90
|
+
}
|
|
91
|
+
export {};
|
|
@@ -0,0 +1,130 @@
|
|
|
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" | "fill";
|
|
11
|
+
export interface TextTableOptions extends RenderableOptions<TextTableRenderable> {
|
|
12
|
+
content?: TextTableContent;
|
|
13
|
+
wrapMode?: "none" | "char" | "word";
|
|
14
|
+
columnWidthMode?: TextTableColumnWidthMode;
|
|
15
|
+
cellPadding?: number;
|
|
16
|
+
showBorders?: boolean;
|
|
17
|
+
border?: boolean;
|
|
18
|
+
outerBorder?: boolean;
|
|
19
|
+
selectable?: boolean;
|
|
20
|
+
selectionBg?: ColorInput;
|
|
21
|
+
selectionFg?: ColorInput;
|
|
22
|
+
borderStyle?: BorderStyle;
|
|
23
|
+
borderColor?: ColorInput;
|
|
24
|
+
borderBackgroundColor?: ColorInput;
|
|
25
|
+
backgroundColor?: ColorInput;
|
|
26
|
+
fg?: ColorInput;
|
|
27
|
+
bg?: ColorInput;
|
|
28
|
+
attributes?: number;
|
|
29
|
+
}
|
|
30
|
+
export declare class TextTableRenderable extends Renderable {
|
|
31
|
+
private _content;
|
|
32
|
+
private _wrapMode;
|
|
33
|
+
private _columnWidthMode;
|
|
34
|
+
private _cellPadding;
|
|
35
|
+
private _showBorders;
|
|
36
|
+
private _border;
|
|
37
|
+
private _outerBorder;
|
|
38
|
+
private _hasExplicitOuterBorder;
|
|
39
|
+
private _borderStyle;
|
|
40
|
+
private _borderColor;
|
|
41
|
+
private _borderBackgroundColor;
|
|
42
|
+
private _backgroundColor;
|
|
43
|
+
private _defaultFg;
|
|
44
|
+
private _defaultBg;
|
|
45
|
+
private _defaultAttributes;
|
|
46
|
+
private _selectionBg;
|
|
47
|
+
private _selectionFg;
|
|
48
|
+
private _lastLocalSelection;
|
|
49
|
+
private _lastSelectionMode;
|
|
50
|
+
private _cells;
|
|
51
|
+
private _prevCellContent;
|
|
52
|
+
private _rowCount;
|
|
53
|
+
private _columnCount;
|
|
54
|
+
private _layout;
|
|
55
|
+
private _layoutDirty;
|
|
56
|
+
private _rasterDirty;
|
|
57
|
+
private _cachedMeasureLayout;
|
|
58
|
+
private _cachedMeasureWidth;
|
|
59
|
+
private readonly _defaultOptions;
|
|
60
|
+
constructor(ctx: RenderContext, options?: TextTableOptions);
|
|
61
|
+
get content(): TextTableContent;
|
|
62
|
+
set content(value: TextTableContent);
|
|
63
|
+
get wrapMode(): "none" | "char" | "word";
|
|
64
|
+
set wrapMode(value: "none" | "char" | "word");
|
|
65
|
+
get columnWidthMode(): TextTableColumnWidthMode;
|
|
66
|
+
set columnWidthMode(value: TextTableColumnWidthMode);
|
|
67
|
+
get cellPadding(): number;
|
|
68
|
+
set cellPadding(value: number);
|
|
69
|
+
get showBorders(): boolean;
|
|
70
|
+
set showBorders(value: boolean);
|
|
71
|
+
get outerBorder(): boolean;
|
|
72
|
+
set outerBorder(value: boolean);
|
|
73
|
+
get border(): boolean;
|
|
74
|
+
set border(value: boolean);
|
|
75
|
+
get borderStyle(): BorderStyle;
|
|
76
|
+
set borderStyle(value: BorderStyle);
|
|
77
|
+
get borderColor(): RGBA;
|
|
78
|
+
set borderColor(value: ColorInput);
|
|
79
|
+
shouldStartSelection(x: number, y: number): boolean;
|
|
80
|
+
onSelectionChanged(selection: Selection | null): boolean;
|
|
81
|
+
hasSelection(): boolean;
|
|
82
|
+
getSelection(): {
|
|
83
|
+
start: number;
|
|
84
|
+
end: number;
|
|
85
|
+
} | null;
|
|
86
|
+
getSelectedText(): string;
|
|
87
|
+
protected onResize(width: number, height: number): void;
|
|
88
|
+
protected renderSelf(buffer: OptimizedBuffer): void;
|
|
89
|
+
protected destroySelf(): void;
|
|
90
|
+
private setupMeasureFunc;
|
|
91
|
+
private rebuildCells;
|
|
92
|
+
private updateCellsDiff;
|
|
93
|
+
private createCell;
|
|
94
|
+
private toStyledText;
|
|
95
|
+
private destroyCells;
|
|
96
|
+
private rebuildLayoutForCurrentWidth;
|
|
97
|
+
private computeLayout;
|
|
98
|
+
private computeColumnWidths;
|
|
99
|
+
private expandColumnWidths;
|
|
100
|
+
private fitColumnWidths;
|
|
101
|
+
private computeRowHeights;
|
|
102
|
+
private computeOffsets;
|
|
103
|
+
private applyLayoutToViews;
|
|
104
|
+
private resolveBorderLayout;
|
|
105
|
+
private getVerticalBorderCount;
|
|
106
|
+
private getHorizontalBorderCount;
|
|
107
|
+
private drawBorders;
|
|
108
|
+
private drawCells;
|
|
109
|
+
private drawCellRange;
|
|
110
|
+
private redrawSelectionRows;
|
|
111
|
+
private clearCellRange;
|
|
112
|
+
private ensureLayoutReady;
|
|
113
|
+
private getCellAtLocalPosition;
|
|
114
|
+
private applySelectionToCells;
|
|
115
|
+
private resolveSelectionResolution;
|
|
116
|
+
private getColumnAtLocalX;
|
|
117
|
+
private getFullCellSelectionCoords;
|
|
118
|
+
private findRowForLocalY;
|
|
119
|
+
private getSelectionRowRange;
|
|
120
|
+
private getDirtySelectionRowRange;
|
|
121
|
+
private resetRowSelection;
|
|
122
|
+
private resetCellSelections;
|
|
123
|
+
private createEmptyLayout;
|
|
124
|
+
private resolveLayoutWidthConstraint;
|
|
125
|
+
private getHorizontalCellPadding;
|
|
126
|
+
private getVerticalCellPadding;
|
|
127
|
+
private resolveCellPadding;
|
|
128
|
+
private invalidateLayoutAndRaster;
|
|
129
|
+
private invalidateRasterOnly;
|
|
130
|
+
}
|