@jitl/opentui-core 0.1.97 → 0.2.15

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.
Files changed (132) hide show
  1. package/NativeSpanFeed.d.ts +2 -2
  2. package/README.md +2 -1
  3. package/Renderable.d.ts +12 -1
  4. package/audio.d.ts +89 -0
  5. package/buffer.d.ts +6 -5
  6. package/console.d.ts +3 -1
  7. package/edit-buffer.d.ts +1 -1
  8. package/editor-view.d.ts +1 -1
  9. package/{index-yxe6e14n.js → index-46f5e8m6.js} +1388 -1721
  10. package/index-46f5e8m6.js.map +36 -0
  11. package/index-5zwezmgj.js +639 -0
  12. package/index-5zwezmgj.js.map +11 -0
  13. package/index-axv7cw60.js +44 -0
  14. package/index-axv7cw60.js.map +10 -0
  15. package/{index-rhfjv9c1.js → index-g9agybj3.js} +4626 -984
  16. package/index-g9agybj3.js.map +82 -0
  17. package/index-k18nf2r7.js +21 -0
  18. package/{ffi-x3zvcksd.js.map → index-k18nf2r7.js.map} +1 -1
  19. package/{index-tkk6cmr2.js → index-rp7vz5rh.js} +125 -23
  20. package/index-rp7vz5rh.js.map +10 -0
  21. package/{index-kcpn1hka.js → index-xwsdfq5x.js} +16 -6
  22. package/index-xwsdfq5x.js.map +10 -0
  23. package/index.d.ts +1 -0
  24. package/index.js +37 -17
  25. package/index.js.map +1 -1
  26. package/lib/RGBA.d.ts +22 -6
  27. package/lib/clipboard.d.ts +1 -1
  28. package/lib/{keymapping.d.ts → keybinding.internal.d.ts} +10 -2
  29. package/lib/objects-in-viewport.d.ts +4 -4
  30. package/lib/parse.keypress-kitty.d.ts +1 -0
  31. package/lib/parse.keypress.d.ts +1 -0
  32. package/lib/render-geometry.d.ts +8 -0
  33. package/lib/stdin-parser.d.ts +4 -1
  34. package/lib/terminal-capability-detection.d.ts +2 -0
  35. package/lib/terminal-palette.d.ts +20 -5
  36. package/lib/tree-sitter/assets/update.d.ts +1 -0
  37. package/lib/tree-sitter/client.d.ts +2 -0
  38. package/lib/tree-sitter/default-parsers.d.ts +1 -1
  39. package/lib/tree-sitter/index.d.ts +0 -2
  40. package/lib/tree-sitter/update-assets.d.ts +3 -0
  41. package/lib/tree-sitter/update-assets.js +377 -0
  42. package/lib/tree-sitter/update-assets.js.map +12 -0
  43. package/lib/tree-sitter-styled-text.d.ts +6 -4
  44. package/node22-bun-ffi-structs-ha8fmzzb.js +396 -0
  45. package/node22-bun-ffi-structs-ha8fmzzb.js.map +10 -0
  46. package/package.json +23 -22
  47. package/parser.worker.js +161 -24
  48. package/parser.worker.js.map +12 -5
  49. package/platform/bun-ffi-structs.d.ts +2 -0
  50. package/platform/ffi.d.ts +126 -0
  51. package/platform/node22-bun-ffi-structs.d.ts +33 -0
  52. package/platform/node22-ffi.d.ts +33 -0
  53. package/{compat → platform}/runtime.d.ts +6 -0
  54. package/platform/worker.d.ts +4 -0
  55. package/renderables/Code.d.ts +4 -0
  56. package/renderables/Markdown.d.ts +62 -0
  57. package/renderables/ScrollBox.d.ts +1 -0
  58. package/renderables/Select.d.ts +3 -1
  59. package/renderables/TabSelect.d.ts +3 -1
  60. package/renderables/TextBufferRenderable.d.ts +1 -0
  61. package/renderables/TextTable.d.ts +15 -1
  62. package/renderables/Textarea.d.ts +5 -3
  63. package/renderables/markdown-parser.d.ts +1 -0
  64. package/renderer-theme-mode.d.ts +29 -0
  65. package/renderer.d.ts +142 -16
  66. package/runtime-plugin-support-configure.d.ts +4 -0
  67. package/runtime-plugin-support-configure.js +20 -0
  68. package/{index-re3ntm60.js.map → runtime-plugin-support-configure.js.map} +1 -1
  69. package/runtime-plugin-support.d.ts +3 -3
  70. package/runtime-plugin-support.js +9 -18
  71. package/runtime-plugin-support.js.map +3 -3
  72. package/runtime-plugin.d.ts +1 -4
  73. package/runtime-plugin.js +5 -5
  74. package/syntax-style.d.ts +11 -3
  75. package/testing/terminal-capabilities.d.ts +7 -0
  76. package/testing/test-recorder.d.ts +6 -6
  77. package/testing/test-renderer.d.ts +34 -2
  78. package/testing.d.ts +2 -0
  79. package/testing.js +329 -23
  80. package/testing.js.map +7 -5
  81. package/text-buffer-view.d.ts +2 -1
  82. package/text-buffer.d.ts +1 -1
  83. package/types.d.ts +33 -1
  84. package/zig-structs.d.ts +111 -20
  85. package/zig.d.ts +57 -7
  86. package/3d/SpriteResourceManager.d.ts +0 -74
  87. package/3d/SpriteUtils.d.ts +0 -13
  88. package/3d/TextureUtils.d.ts +0 -24
  89. package/3d/ThreeRenderable.d.ts +0 -40
  90. package/3d/WGPURenderer.d.ts +0 -61
  91. package/3d/animation/ExplodingSpriteEffect.d.ts +0 -71
  92. package/3d/animation/PhysicsExplodingSpriteEffect.d.ts +0 -76
  93. package/3d/animation/SpriteAnimator.d.ts +0 -124
  94. package/3d/animation/SpriteParticleGenerator.d.ts +0 -62
  95. package/3d/canvas.d.ts +0 -44
  96. package/3d/index.d.ts +0 -12
  97. package/3d/physics/PlanckPhysicsAdapter.d.ts +0 -19
  98. package/3d/physics/RapierPhysicsAdapter.d.ts +0 -19
  99. package/3d/physics/physics-interface.d.ts +0 -27
  100. package/3d.d.ts +0 -2
  101. package/3d.js +0 -33843
  102. package/3d.js.map +0 -155
  103. package/Worker-vajwjk0s.js +0 -94
  104. package/Worker-vajwjk0s.js.map +0 -10
  105. package/compat/FFIType.d.ts +0 -304
  106. package/compat/Worker.d.ts +0 -1
  107. package/compat/bun-ffi-structs.d.ts +0 -2
  108. package/compat/ffi.d.ts +0 -86
  109. package/compat/nodejs/Worker.d.ts +0 -16
  110. package/compat/nodejs/bun-ffi-structs/index.d.ts +0 -46
  111. package/compat/nodejs/ffi.d.ts +0 -21
  112. package/compat/nodejs/registerResolveJs.d.ts +0 -1
  113. package/compat/nodejs/runtime.d.ts +0 -7
  114. package/compat/nodejs/test.d.ts +0 -4
  115. package/compat/nodejs/trampoline.worker.d.ts +0 -1
  116. package/compat/test.d.ts +0 -1
  117. package/compat/testHelpers.d.ts +0 -18
  118. package/ffi-x3zvcksd.js +0 -25
  119. package/index-5yqvbmcz.js +0 -220
  120. package/index-5yqvbmcz.js.map +0 -10
  121. package/index-bnfz2g63.js +0 -654
  122. package/index-bnfz2g63.js.map +0 -10
  123. package/index-cbvybypy.js +0 -43
  124. package/index-cbvybypy.js.map +0 -10
  125. package/index-kcpn1hka.js.map +0 -10
  126. package/index-re3ntm60.js +0 -51
  127. package/index-rhfjv9c1.js.map +0 -70
  128. package/index-tkk6cmr2.js.map +0 -10
  129. package/index-yxe6e14n.js.map +0 -42
  130. package/runtime-hdpkc6qf.js +0 -220
  131. package/runtime-hdpkc6qf.js.map +0 -17
  132. /package/{compat/nodejs/registerBun.d.ts → native-event-worker-repro.worker.d.ts} +0 -0
@@ -0,0 +1,33 @@
1
+ import { type FfiBackend, type Pointer } from "./ffi.js";
2
+ type KoffiExternal = object & {
3
+ __koffi_external__: true;
4
+ };
5
+ type KoffiFunction = ((...args: unknown[]) => unknown) & {
6
+ async?: unknown;
7
+ };
8
+ type KoffiRegisteredCallback = KoffiExternal;
9
+ type KoffiTypeSpec = unknown;
10
+ type UnsafePointerOf = (value: ArrayBuffer) => Pointer;
11
+ type UnsafeArrayBufferAt = (pointer: Pointer, offset: number | undefined, length: number) => ArrayBuffer;
12
+ interface KoffiModule {
13
+ address(pointer: KoffiExternal): bigint | number;
14
+ extension: string;
15
+ load(path: string): KoffiLib;
16
+ opaque(name?: string): KoffiTypeSpec;
17
+ pointer(nameOrType: string | KoffiTypeSpec, type?: KoffiTypeSpec): KoffiTypeSpec;
18
+ proto(returns: KoffiTypeSpec, args: KoffiTypeSpec[]): KoffiTypeSpec;
19
+ register(callback: (...args: any[]) => any, type: KoffiTypeSpec): KoffiRegisteredCallback;
20
+ unregister(callback: KoffiRegisteredCallback): void;
21
+ types: Record<string, KoffiTypeSpec>;
22
+ }
23
+ interface KoffiLib {
24
+ func(name: string, returns: KoffiTypeSpec, args: KoffiTypeSpec[]): KoffiFunction;
25
+ unload(): void;
26
+ }
27
+ interface Node22Modules {
28
+ koffi: KoffiModule;
29
+ unsafePointerOf: UnsafePointerOf;
30
+ unsafeArrayBufferAt: UnsafeArrayBufferAt;
31
+ }
32
+ export declare function createNode22Backend(modules?: Node22Modules): FfiBackend;
33
+ export {};
@@ -2,7 +2,13 @@ export interface WriteFileOptions {
2
2
  createPath?: boolean;
3
3
  mode?: number;
4
4
  }
5
+ interface FileImportModule {
6
+ default: string;
7
+ }
8
+ type FilePathFallback = string | URL | (() => string | URL);
5
9
  export declare const sleep: (msOrDate: number | Date) => Promise<void>;
6
10
  export declare const stringWidth: (text: string) => number;
7
11
  export declare const stripANSI: (text: string) => string;
8
12
  export declare const writeFile: (destination: string | URL, data: string | ArrayBufferView, options?: WriteFileOptions) => Promise<number>;
13
+ export declare function resolveBundledFilePath(loadBundledFile: () => Promise<FileImportModule>, fallbackPath: FilePathFallback, metaUrl: string): Promise<string>;
14
+ export {};
@@ -0,0 +1,4 @@
1
+ export declare const Worker: {
2
+ new (scriptURL: string | URL, options?: WorkerOptions): Worker;
3
+ prototype: Worker;
4
+ };
@@ -23,6 +23,7 @@ export interface CodeOptions extends TextBufferOptions {
23
23
  conceal?: boolean;
24
24
  drawUnstyledText?: boolean;
25
25
  streaming?: boolean;
26
+ baseHighlight?: string;
26
27
  onHighlight?: OnHighlightCallback;
27
28
  onChunks?: OnChunksCallback;
28
29
  }
@@ -40,6 +41,7 @@ export declare class CodeRenderable extends TextBufferRenderable {
40
41
  private _streaming;
41
42
  private _hadInitialContent;
42
43
  private _lastHighlights;
44
+ private _baseHighlight?;
43
45
  private _onHighlight?;
44
46
  private _onChunks?;
45
47
  private _highlightingPromise;
@@ -65,6 +67,8 @@ export declare class CodeRenderable extends TextBufferRenderable {
65
67
  get treeSitterClient(): TreeSitterClient;
66
68
  set treeSitterClient(value: TreeSitterClient);
67
69
  get onHighlight(): OnHighlightCallback | undefined;
70
+ get baseHighlight(): string | undefined;
71
+ set baseHighlight(value: string | undefined);
68
72
  set onHighlight(value: OnHighlightCallback | undefined);
69
73
  get onChunks(): OnChunksCallback | undefined;
70
74
  set onChunks(value: OnChunksCallback | undefined);
@@ -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.
@@ -27,6 +36,14 @@ export interface MarkdownTableOptions {
27
36
  * Padding applied on all sides of each table cell.
28
37
  */
29
38
  cellPadding?: number;
39
+ /**
40
+ * Horizontal padding applied on the left and right of each table cell.
41
+ */
42
+ cellPaddingX?: number;
43
+ /**
44
+ * Vertical padding applied above and below each table cell.
45
+ */
46
+ cellPaddingY?: number;
30
47
  /**
31
48
  * Enables/disables table border rendering.
32
49
  */
@@ -81,6 +98,12 @@ export interface MarkdownOptions extends RenderableOptions<MarkdownRenderable> {
81
98
  * or undefined/null to use default rendering.
82
99
  */
83
100
  renderNode?: (token: Token, context: RenderNodeContext) => Renderable | undefined | null;
101
+ /**
102
+ * Internal only.
103
+ * - "coalesced": combine ordinary markdown into larger render blocks.
104
+ * - "top-level": preserve top-level markdown blocks as separate render blocks.
105
+ */
106
+ internalBlockMode?: "coalesced" | "top-level";
84
107
  }
85
108
  export interface RenderNodeContext {
86
109
  syntaxStyle: SyntaxStyle;
@@ -97,6 +120,7 @@ interface TableContentCache {
97
120
  export interface BlockState {
98
121
  token: MarkedToken;
99
122
  tokenRaw: string;
123
+ marginTop?: number;
100
124
  renderable: Renderable;
101
125
  tableContentCache?: TableContentCache;
102
126
  }
@@ -111,9 +135,11 @@ export declare class MarkdownRenderable extends Renderable {
111
135
  private _treeSitterClient?;
112
136
  private _tableOptions?;
113
137
  private _renderNode?;
138
+ private _internalBlockMode;
114
139
  _parseState: ParseState | null;
115
140
  private _streaming;
116
141
  _blockStates: BlockState[];
142
+ _stableBlockCount: number;
117
143
  private _styleDirty;
118
144
  private _linkifyMarkdownChunks;
119
145
  protected _contentDefaultOptions: {
@@ -121,6 +147,7 @@ export declare class MarkdownRenderable extends Renderable {
121
147
  conceal: true;
122
148
  concealCode: false;
123
149
  streaming: false;
150
+ internalBlockMode: "coalesced";
124
151
  };
125
152
  constructor(ctx: RenderContext, options: MarkdownOptions);
126
153
  get content(): string;
@@ -139,21 +166,47 @@ export declare class MarkdownRenderable extends Renderable {
139
166
  set streaming(value: boolean);
140
167
  get tableOptions(): MarkdownTableOptions | undefined;
141
168
  set tableOptions(value: MarkdownTableOptions | undefined);
169
+ get renderNode(): MarkdownOptions["renderNode"] | undefined;
170
+ set renderNode(value: MarkdownOptions["renderNode"] | undefined);
171
+ get internalBlockMode(): "coalesced" | "top-level";
172
+ set internalBlockMode(value: "coalesced" | "top-level");
142
173
  private getStyle;
143
174
  private createChunk;
144
175
  private createDefaultChunk;
145
176
  private renderInlineContent;
146
177
  private renderInlineToken;
147
178
  private renderInlineTokenWithStyle;
179
+ private applyMargins;
148
180
  private createMarkdownCodeRenderable;
181
+ private getBlockquoteContent;
182
+ private getBlockquoteBorderColor;
183
+ private createBlockquoteRenderable;
184
+ private createListRenderable;
185
+ private getListItemInputs;
186
+ private applyListRenderable;
187
+ private createListItemRenderable;
188
+ private applyListItemRenderable;
189
+ private applyListItemChildren;
190
+ private getRenderableListItemTokens;
191
+ private applyListChildRenderable;
192
+ private destroyListItemChildrenAfter;
193
+ private getListChildMarkdownRaw;
194
+ private applyListItemMarker;
195
+ private createListChildRenderable;
196
+ private createHorizontalRuleRenderable;
149
197
  private createCodeRenderable;
150
198
  private applyMarkdownCodeRenderable;
199
+ private applyBlockquoteRenderable;
151
200
  private applyCodeBlockRenderable;
152
201
  private shouldRenderSeparately;
153
202
  private getInterBlockMargin;
154
203
  private createMarkdownBlockToken;
155
204
  private normalizeMarkdownBlockRaw;
205
+ private normalizeScrollbackMarkdownBlockRaw;
156
206
  private buildRenderableTokens;
207
+ private buildTopLevelRenderBlocks;
208
+ private shouldAddTopLevelMargin;
209
+ private isSeparatedTopLevelBlock;
157
210
  private getTableRowsToRender;
158
211
  private hashString;
159
212
  private hashTableToken;
@@ -161,13 +214,22 @@ export declare class MarkdownRenderable extends Renderable {
161
214
  private createTableDataCellChunks;
162
215
  private createTableHeaderCellChunks;
163
216
  private buildTableContentCache;
217
+ private resolveTableStyle;
218
+ private usesBorderlessColumnSpacing;
164
219
  private resolveTableRenderableOptions;
165
220
  private applyTableRenderableOptions;
166
221
  private applyTableOptionsToBlocks;
167
222
  private createTextTableRenderable;
168
223
  private createTableBlock;
224
+ private getStableBlockCount;
225
+ private syncTopLevelBlockState;
226
+ private getTopLevelBlockRaw;
227
+ private createTopLevelDefaultRenderable;
228
+ private createTopLevelRenderable;
169
229
  private createDefaultRenderable;
170
230
  private updateBlockRenderable;
231
+ private updateTopLevelBlocks;
232
+ private canUpdateBlockRenderable;
171
233
  private updateBlocks;
172
234
  private clearBlockStates;
173
235
  /**
@@ -12,6 +12,7 @@ declare class ContentRenderable extends BoxRenderable {
12
12
  constructor(ctx: RenderContext, viewport: BoxRenderable, viewportCulling: boolean, options: RenderableOptions<BoxRenderable>);
13
13
  get viewportCulling(): boolean;
14
14
  set viewportCulling(value: boolean);
15
+ protected _hasVisibleChildFilter(): boolean;
15
16
  protected _getVisibleChildren(): number[];
16
17
  }
17
18
  export interface ScrollBoxOptions extends BoxOptions<ScrollBoxRenderable> {
@@ -4,7 +4,8 @@ import type { KeyEvent } from "../lib/KeyHandler.js";
4
4
  import { type ColorInput } from "../lib/RGBA.js";
5
5
  import { Renderable, type RenderableOptions } from "../Renderable.js";
6
6
  import type { RenderContext } from "../types.js";
7
- import { type KeyBinding as BaseKeyBinding, type KeyAliasMap } from "../lib/keymapping.js";
7
+ import { type KeyBinding as BaseKeyBinding } from "../lib/keybinding.internal.js";
8
+ type KeyAliasMap = Record<string, string>;
8
9
  export interface SelectOption {
9
10
  name: string;
10
11
  description: string;
@@ -113,3 +114,4 @@ export declare class SelectRenderable extends Renderable {
113
114
  set keyAliasMap(aliases: KeyAliasMap);
114
115
  set selectedIndex(value: number);
115
116
  }
117
+ export {};
@@ -3,7 +3,8 @@ import { OptimizedBuffer } from "../buffer.js";
3
3
  import { type ColorInput } from "../lib/RGBA.js";
4
4
  import type { KeyEvent } from "../lib/KeyHandler.js";
5
5
  import type { RenderContext } from "../types.js";
6
- import { type KeyBinding as BaseKeyBinding, type KeyAliasMap } from "../lib/keymapping.js";
6
+ import { type KeyBinding as BaseKeyBinding } from "../lib/keybinding.internal.js";
7
+ type KeyAliasMap = Record<string, string>;
7
8
  export interface TabSelectOption {
8
9
  name: string;
9
10
  description: string;
@@ -94,3 +95,4 @@ export declare class TabSelectRenderable extends Renderable {
94
95
  set keyBindings(bindings: TabSelectKeyBinding[]);
95
96
  set keyAliasMap(aliases: KeyAliasMap);
96
97
  }
98
+ export {};
@@ -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,9 @@ export interface TextTableOptions extends RenderableOptions<TextTableRenderable>
15
15
  columnWidthMode?: TextTableColumnWidthMode;
16
16
  columnFitter?: TextTableColumnFitter;
17
17
  cellPadding?: number;
18
+ cellPaddingX?: number;
19
+ cellPaddingY?: number;
20
+ columnGap?: number;
18
21
  showBorders?: boolean;
19
22
  border?: boolean;
20
23
  outerBorder?: boolean;
@@ -34,7 +37,9 @@ export declare class TextTableRenderable extends Renderable {
34
37
  private _wrapMode;
35
38
  private _columnWidthMode;
36
39
  private _columnFitter;
37
- private _cellPadding;
40
+ private _cellPaddingX;
41
+ private _cellPaddingY;
42
+ private _columnGap;
38
43
  private _showBorders;
39
44
  private _border;
40
45
  private _outerBorder;
@@ -71,6 +76,12 @@ export declare class TextTableRenderable extends Renderable {
71
76
  set columnFitter(value: TextTableColumnFitter);
72
77
  get cellPadding(): number;
73
78
  set cellPadding(value: number);
79
+ get cellPaddingX(): number;
80
+ set cellPaddingX(value: number);
81
+ get cellPaddingY(): number;
82
+ set cellPaddingY(value: number);
83
+ get columnGap(): number;
84
+ set columnGap(value: number);
74
85
  get showBorders(): boolean;
75
86
  set showBorders(value: boolean);
76
87
  get outerBorder(): boolean;
@@ -109,6 +120,8 @@ export declare class TextTableRenderable extends Renderable {
109
120
  private allocateShrinkByWeight;
110
121
  private computeRowHeights;
111
122
  private computeOffsets;
123
+ private getInterColumnGap;
124
+ private getTotalInterColumnGap;
112
125
  private applyLayoutToViews;
113
126
  private resolveBorderLayout;
114
127
  private getVerticalBorderCount;
@@ -135,6 +148,7 @@ export declare class TextTableRenderable extends Renderable {
135
148
  private getVerticalCellPadding;
136
149
  private resolveColumnFitter;
137
150
  private resolveCellPadding;
151
+ private resolveColumnGap;
138
152
  private invalidateLayoutAndRaster;
139
153
  private invalidateRasterOnly;
140
154
  }
@@ -2,11 +2,13 @@ import type { KeyEvent, PasteEvent } from "../lib/KeyHandler.js";
2
2
  import { RGBA, type ColorInput } from "../lib/RGBA.js";
3
3
  import { type RenderContext } from "../types.js";
4
4
  import { EditBufferRenderable, type EditBufferOptions } from "./EditBufferRenderable.js";
5
- import { type KeyBinding as BaseKeyBinding, type KeyAliasMap } from "../lib/keymapping.js";
5
+ import { type KeyBinding as BaseKeyBinding } from "../lib/keybinding.internal.js";
6
6
  import { type StyledText } from "../lib/styled-text.js";
7
7
  import type { ExtmarksController } from "../lib/extmarks.js";
8
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
9
  export type KeyBinding = BaseKeyBinding<TextareaAction>;
10
+ export type TextareaKeyAliasMap = Record<string, string>;
11
+ export declare const defaultTextareaKeyBindings: KeyBinding[];
10
12
  export interface SubmitEvent {
11
13
  }
12
14
  export interface TextareaOptions extends EditBufferOptions {
@@ -18,7 +20,7 @@ export interface TextareaOptions extends EditBufferOptions {
18
20
  placeholder?: StyledText | string | null;
19
21
  placeholderColor?: ColorInput;
20
22
  keyBindings?: KeyBinding[];
21
- keyAliasMap?: KeyAliasMap;
23
+ keyAliasMap?: TextareaKeyAliasMap;
22
24
  onSubmit?: (event: SubmitEvent) => void;
23
25
  }
24
26
  export declare class TextareaRenderable extends EditBufferRenderable {
@@ -58,6 +60,6 @@ export declare class TextareaRenderable extends EditBufferRenderable {
58
60
  set onSubmit(handler: ((event: SubmitEvent) => void) | undefined);
59
61
  get onSubmit(): ((event: SubmitEvent) => void) | undefined;
60
62
  set keyBindings(bindings: KeyBinding[]);
61
- set keyAliasMap(aliases: KeyAliasMap);
63
+ set keyAliasMap(aliases: TextareaKeyAliasMap);
62
64
  get extmarks(): ExtmarksController;
63
65
  }
@@ -2,6 +2,7 @@ import { type MarkedToken } from "marked";
2
2
  export interface ParseState {
3
3
  content: string;
4
4
  tokens: MarkedToken[];
5
+ stableTokenCount?: number;
5
6
  }
6
7
  /**
7
8
  * Incrementally parse markdown, reusing unchanged tokens from previous parse.
@@ -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
+ }