@simon_he/vue-tui 1.0.2 → 1.1.0

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 (125) hide show
  1. package/README.md +84 -26
  2. package/dist/TMermaidText-frVr8Ysb.js +885 -0
  3. package/dist/{TSelect-DR0FomSu.js → TSelect-tJ87rKPM.js} +59 -242
  4. package/dist/{TTree-kzhlB5P0.js → TTree-CGdE-CYu.js} +138 -102
  5. package/dist/agent/mermaid.cjs +2 -0
  6. package/dist/agent/mermaid.d.cts +2 -0
  7. package/dist/agent/mermaid.d.ts +2 -0
  8. package/dist/agent/mermaid.js +1 -0
  9. package/dist/agent.cjs +31188 -24907
  10. package/dist/agent.d.cts +11 -1
  11. package/dist/agent.d.ts +11 -1
  12. package/dist/agent.js +516 -11
  13. package/dist/{block-source-CKUOnkgT.js → block-source-CrlmaBM5.js} +1039 -66
  14. package/dist/cli/input.d.ts +8 -0
  15. package/dist/cli/stdin-buffer.d.ts +1 -1
  16. package/dist/cli/video/ffmpeg-frame-source.d.ts +10 -0
  17. package/dist/cli/video/png-frame-parser.d.ts +4 -0
  18. package/dist/cli/video/raw-frame-parser.d.ts +1 -0
  19. package/dist/cli/video/yt-dlp-frame-source.d.ts +11 -0
  20. package/dist/cli.cjs +5146 -6767
  21. package/dist/cli.d.cts +5 -1
  22. package/dist/cli.d.ts +5 -1
  23. package/dist/cli.js +2869 -154
  24. package/dist/core/buffer/eaw-ranges-unicode-17.d.ts +14 -0
  25. package/dist/core/perf/instrumentation-noop.d.ts +48 -0
  26. package/dist/core/perf/instrumentation.d.ts +136 -0
  27. package/dist/core/terminal/create-terminal.d.ts +1 -0
  28. package/dist/core.cjs +843 -1469
  29. package/dist/core.js +4 -5
  30. package/dist/create-terminal-app.d.ts +24 -1
  31. package/dist/debug-logger-CmsGI4of.js +74 -0
  32. package/dist/{dom-renderer-BniJSQyX.js → dom-renderer-DXx8fWzD.js} +2 -3
  33. package/dist/experimental/3d/bun/contributor-avatar-atlas.d.ts +12 -0
  34. package/dist/experimental/3d/bun/png.d.ts +1 -0
  35. package/dist/experimental/3d/bun/terminal-badge-scene.d.ts +11 -0
  36. package/dist/experimental/3d/bun/terminal-badge.wgsl.d.ts +1 -0
  37. package/dist/experimental/3d/bun/webgpu-renderer.d.ts +26 -0
  38. package/dist/experimental/3d/bun.cjs +7271 -0
  39. package/dist/experimental/3d/bun.d.cts +4 -0
  40. package/dist/experimental/3d/bun.d.ts +4 -0
  41. package/dist/experimental/3d/bun.js +7390 -0
  42. package/dist/experimental/video/node.cjs +497 -0
  43. package/dist/experimental/video/node.d.cts +4 -0
  44. package/dist/experimental/video/node.d.ts +4 -0
  45. package/dist/experimental/video/node.js +610 -0
  46. package/dist/experimental.cjs +6876 -6192
  47. package/dist/experimental.d.cts +7 -0
  48. package/dist/experimental.d.ts +7 -0
  49. package/dist/experimental.js +3005 -9
  50. package/dist/frame-perf-CHpWhbC4.js +111 -0
  51. package/dist/{create-terminal-DBFNYr8f.js → hyperlink-_1FAj7Wq.js} +440 -13
  52. package/dist/index.cjs +5017 -10339
  53. package/dist/index.js +14 -13
  54. package/dist/{linkify-D_gzn9Xq.js → linkify-D68T7rdW.js} +193 -3
  55. package/dist/markdown.cjs +21295 -12691
  56. package/dist/markdown.d.cts +1 -1
  57. package/dist/markdown.d.ts +1 -1
  58. package/dist/markdown.js +211 -51
  59. package/dist/mermaid-BNhM1jAZ.js +123 -0
  60. package/dist/mermaid.cjs +1707 -0
  61. package/dist/mermaid.d.cts +3 -0
  62. package/dist/mermaid.d.ts +3 -0
  63. package/dist/mermaid.js +6 -0
  64. package/dist/observability/frame-perf-store.d.ts +2 -1
  65. package/dist/observability/frame-perf.d.ts +33 -0
  66. package/dist/observability.cjs +106 -107
  67. package/dist/observability.d.cts +2 -2
  68. package/dist/observability.d.ts +2 -2
  69. package/dist/observability.js +3 -3
  70. package/dist/{wheel-scroll-vBRaQ7p-.js → rect-DUpeDfBg.js} +253 -117
  71. package/dist/renderer/cli/stdout-metrics.d.ts +10 -0
  72. package/dist/renderer/cli/stdout-renderer.d.ts +3 -0
  73. package/dist/renderer/terminal-graphic-render-queue.d.ts +50 -0
  74. package/dist/renderer/terminal-graphics-trace.d.ts +53 -0
  75. package/dist/renderer/terminal-graphics.d.ts +147 -0
  76. package/dist/renderer-dom.cjs +364 -903
  77. package/dist/renderer-dom.js +4 -5
  78. package/dist/runtime/index.d.ts +2 -0
  79. package/dist/{runtime-rfcZCyJq.js → runtime-Byf8XXOT.js} +28 -15
  80. package/dist/runtime.cjs +427 -889
  81. package/dist/runtime.js +2 -2
  82. package/dist/terminal-graphics-Bbe83wSr.js +597 -0
  83. package/dist/{terminal-selection-DBinO6p5.js → terminal-selection-4W1SJj4c.js} +4 -1
  84. package/dist/{tlog-theme-CvLFNMwk.js → tlog-theme-Bul2Na3u.js} +1237 -12
  85. package/dist/{trace-CjzYeIxN.js → trace-Bh8WnoMo.js} +5 -0
  86. package/dist/vue/agent/create-png-terminal-graphic-renderer.d.ts +19 -0
  87. package/dist/vue/components/T3DViewport.d.ts +473 -0
  88. package/dist/vue/components/TAgentTerminalGraphic.d.ts +494 -0
  89. package/dist/vue/components/TCharts.d.ts +1121 -0
  90. package/dist/vue/components/TFeedback.d.ts +1 -1
  91. package/dist/vue/components/TFlex.d.ts +389 -0
  92. package/dist/vue/components/TForm.d.ts +4 -4
  93. package/dist/vue/components/TLogSearchBar.d.ts +3 -3
  94. package/dist/vue/components/TLogSearchPager.d.ts +2 -2
  95. package/dist/vue/components/TMarkdownText.d.ts +162 -4
  96. package/dist/vue/components/TMermaidText.d.ts +900 -0
  97. package/dist/vue/components/TVideo.d.ts +291 -0
  98. package/dist/vue/components/TVirtualList.d.ts +9 -0
  99. package/dist/vue/components/TVirtualMarkdown.d.ts +170 -9
  100. package/dist/vue/components/TVirtualRows.d.ts +9 -0
  101. package/dist/vue/components/TerminalProvider.d.ts +2 -0
  102. package/dist/vue/context.d.ts +24 -0
  103. package/dist/vue/index.d.ts +5 -0
  104. package/dist/vue/layout/flex.d.ts +67 -0
  105. package/dist/vue/markdown/ast.d.ts +5 -2
  106. package/dist/vue/markdown/document.d.ts +5 -0
  107. package/dist/vue/markdown/image-actions.d.ts +14 -0
  108. package/dist/vue/markdown/image.d.ts +11 -0
  109. package/dist/vue/markdown/link-actions.d.ts +14 -0
  110. package/dist/vue/markdown/math-actions.d.ts +14 -0
  111. package/dist/vue/markdown/math.d.ts +6 -0
  112. package/dist/vue/markdown/render.d.ts +28 -0
  113. package/dist/vue/markdown/types.d.ts +78 -0
  114. package/dist/vue/mermaid/beautiful-mermaid.d.ts +1436 -0
  115. package/dist/vue/render/render-manager.d.ts +7 -0
  116. package/dist/vue/video/types.d.ts +39 -0
  117. package/dist/vue.cjs +7207 -12437
  118. package/dist/vue.js +704 -38
  119. package/dist/wheel-scroll-DASkEZr-.js +106 -0
  120. package/dist/{hyperlink-Bn02UXJb.js → width-GqllnV8C.js} +166 -111
  121. package/package.json +119 -14
  122. package/dist/frame-perf-C6Xfg85O.js +0 -24
  123. package/dist/sgr-BmzxEjAO.js +0 -304
  124. /package/dist/{ansi-palette-CNXqFciC.js → ansi-palette-CH6jc2Z7.js} +0 -0
  125. /package/dist/{path-suggest-BNqcuE3-.js → path-suggest-Dndu4dTi.js} +0 -0
@@ -0,0 +1,291 @@
1
+ import type { ExtractPublicPropTypes, PropType } from "vue";
2
+ import type { Style } from "../../core/types.js";
3
+ import type { TVideoFrameEvent, TVideoFrameSource, TVideoPlaybackRate } from "../video/types.js";
4
+ export declare const tVideoProps: {
5
+ readonly x: {
6
+ readonly type: NumberConstructor;
7
+ readonly required: true;
8
+ };
9
+ readonly y: {
10
+ readonly type: NumberConstructor;
11
+ readonly required: true;
12
+ };
13
+ readonly w: {
14
+ readonly type: NumberConstructor;
15
+ readonly required: true;
16
+ };
17
+ readonly h: {
18
+ readonly type: NumberConstructor;
19
+ readonly required: true;
20
+ };
21
+ readonly zIndex: {
22
+ readonly type: NumberConstructor;
23
+ readonly default: 0;
24
+ };
25
+ readonly src: {
26
+ readonly type: StringConstructor;
27
+ readonly required: true;
28
+ };
29
+ readonly frameSource: {
30
+ readonly type: PropType<TVideoFrameSource>;
31
+ readonly required: true;
32
+ };
33
+ readonly paused: {
34
+ readonly type: BooleanConstructor;
35
+ readonly default: undefined;
36
+ };
37
+ readonly playbackRate: {
38
+ readonly type: PropType<TVideoPlaybackRate>;
39
+ readonly default: undefined;
40
+ };
41
+ readonly controls: {
42
+ readonly type: BooleanConstructor;
43
+ readonly default: false;
44
+ };
45
+ readonly controlsLayout: {
46
+ readonly type: PropType<TVideoControlsLayout>;
47
+ readonly default: "compact";
48
+ };
49
+ readonly durationMs: {
50
+ readonly type: NumberConstructor;
51
+ readonly default: undefined;
52
+ };
53
+ readonly loop: {
54
+ readonly type: BooleanConstructor;
55
+ readonly default: false;
56
+ };
57
+ readonly maxFps: {
58
+ readonly type: NumberConstructor;
59
+ readonly default: 12;
60
+ };
61
+ readonly pixelWidth: {
62
+ readonly type: NumberConstructor;
63
+ readonly default: undefined;
64
+ };
65
+ readonly pixelHeight: {
66
+ readonly type: NumberConstructor;
67
+ readonly default: undefined;
68
+ };
69
+ readonly fallback: {
70
+ readonly type: StringConstructor;
71
+ readonly default: "[video]";
72
+ };
73
+ readonly style: {
74
+ readonly type: PropType<Style>;
75
+ readonly default: undefined;
76
+ };
77
+ readonly clear: {
78
+ readonly type: BooleanConstructor;
79
+ readonly default: true;
80
+ };
81
+ };
82
+ export type TVideoControlsLayout = "compact" | "cinema";
83
+ export type TVideoProps = ExtractPublicPropTypes<typeof tVideoProps>;
84
+ export type TVideoSeekEvent = Readonly<{
85
+ timestampMs: number;
86
+ durationMs?: number;
87
+ }>;
88
+ export declare const TVideo: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
89
+ readonly x: {
90
+ readonly type: NumberConstructor;
91
+ readonly required: true;
92
+ };
93
+ readonly y: {
94
+ readonly type: NumberConstructor;
95
+ readonly required: true;
96
+ };
97
+ readonly w: {
98
+ readonly type: NumberConstructor;
99
+ readonly required: true;
100
+ };
101
+ readonly h: {
102
+ readonly type: NumberConstructor;
103
+ readonly required: true;
104
+ };
105
+ readonly zIndex: {
106
+ readonly type: NumberConstructor;
107
+ readonly default: 0;
108
+ };
109
+ readonly src: {
110
+ readonly type: StringConstructor;
111
+ readonly required: true;
112
+ };
113
+ readonly frameSource: {
114
+ readonly type: PropType<TVideoFrameSource>;
115
+ readonly required: true;
116
+ };
117
+ readonly paused: {
118
+ readonly type: BooleanConstructor;
119
+ readonly default: undefined;
120
+ };
121
+ readonly playbackRate: {
122
+ readonly type: PropType<TVideoPlaybackRate>;
123
+ readonly default: undefined;
124
+ };
125
+ readonly controls: {
126
+ readonly type: BooleanConstructor;
127
+ readonly default: false;
128
+ };
129
+ readonly controlsLayout: {
130
+ readonly type: PropType<TVideoControlsLayout>;
131
+ readonly default: "compact";
132
+ };
133
+ readonly durationMs: {
134
+ readonly type: NumberConstructor;
135
+ readonly default: undefined;
136
+ };
137
+ readonly loop: {
138
+ readonly type: BooleanConstructor;
139
+ readonly default: false;
140
+ };
141
+ readonly maxFps: {
142
+ readonly type: NumberConstructor;
143
+ readonly default: 12;
144
+ };
145
+ readonly pixelWidth: {
146
+ readonly type: NumberConstructor;
147
+ readonly default: undefined;
148
+ };
149
+ readonly pixelHeight: {
150
+ readonly type: NumberConstructor;
151
+ readonly default: undefined;
152
+ };
153
+ readonly fallback: {
154
+ readonly type: StringConstructor;
155
+ readonly default: "[video]";
156
+ };
157
+ readonly style: {
158
+ readonly type: PropType<Style>;
159
+ readonly default: undefined;
160
+ };
161
+ readonly clear: {
162
+ readonly type: BooleanConstructor;
163
+ readonly default: true;
164
+ };
165
+ }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
166
+ [key: string]: any;
167
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
168
+ frame: (_event: TVideoFrameEvent) => true;
169
+ ended: () => true;
170
+ error: (_error: unknown) => true;
171
+ seek: (_event: TVideoSeekEvent) => true;
172
+ "update:paused": (_paused: boolean) => true;
173
+ "update:playbackRate": (_rate: TVideoPlaybackRate) => true;
174
+ }, string, (import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps), Readonly<import("vue").ExtractPropTypes<{
175
+ readonly x: {
176
+ readonly type: NumberConstructor;
177
+ readonly required: true;
178
+ };
179
+ readonly y: {
180
+ readonly type: NumberConstructor;
181
+ readonly required: true;
182
+ };
183
+ readonly w: {
184
+ readonly type: NumberConstructor;
185
+ readonly required: true;
186
+ };
187
+ readonly h: {
188
+ readonly type: NumberConstructor;
189
+ readonly required: true;
190
+ };
191
+ readonly zIndex: {
192
+ readonly type: NumberConstructor;
193
+ readonly default: 0;
194
+ };
195
+ readonly src: {
196
+ readonly type: StringConstructor;
197
+ readonly required: true;
198
+ };
199
+ readonly frameSource: {
200
+ readonly type: PropType<TVideoFrameSource>;
201
+ readonly required: true;
202
+ };
203
+ readonly paused: {
204
+ readonly type: BooleanConstructor;
205
+ readonly default: undefined;
206
+ };
207
+ readonly playbackRate: {
208
+ readonly type: PropType<TVideoPlaybackRate>;
209
+ readonly default: undefined;
210
+ };
211
+ readonly controls: {
212
+ readonly type: BooleanConstructor;
213
+ readonly default: false;
214
+ };
215
+ readonly controlsLayout: {
216
+ readonly type: PropType<TVideoControlsLayout>;
217
+ readonly default: "compact";
218
+ };
219
+ readonly durationMs: {
220
+ readonly type: NumberConstructor;
221
+ readonly default: undefined;
222
+ };
223
+ readonly loop: {
224
+ readonly type: BooleanConstructor;
225
+ readonly default: false;
226
+ };
227
+ readonly maxFps: {
228
+ readonly type: NumberConstructor;
229
+ readonly default: 12;
230
+ };
231
+ readonly pixelWidth: {
232
+ readonly type: NumberConstructor;
233
+ readonly default: undefined;
234
+ };
235
+ readonly pixelHeight: {
236
+ readonly type: NumberConstructor;
237
+ readonly default: undefined;
238
+ };
239
+ readonly fallback: {
240
+ readonly type: StringConstructor;
241
+ readonly default: "[video]";
242
+ };
243
+ readonly style: {
244
+ readonly type: PropType<Style>;
245
+ readonly default: undefined;
246
+ };
247
+ readonly clear: {
248
+ readonly type: BooleanConstructor;
249
+ readonly default: true;
250
+ };
251
+ }>> & Readonly<{
252
+ onEnded?: (() => any) | undefined;
253
+ onError?: ((_error: unknown) => any) | undefined;
254
+ onFrame?: ((_event: Readonly<{
255
+ timestampMs: number;
256
+ pixelWidth: number;
257
+ pixelHeight: number;
258
+ droppedFrames: number;
259
+ durationMs?: number;
260
+ playbackRate?: TVideoPlaybackRate;
261
+ }>) => any) | undefined;
262
+ onSeek?: ((_event: Readonly<{
263
+ timestampMs: number;
264
+ durationMs?: number;
265
+ }>) => any) | undefined;
266
+ "onUpdate:paused"?: ((_paused: boolean) => any) | undefined;
267
+ "onUpdate:playbackRate"?: ((_rate: TVideoPlaybackRate) => any) | undefined;
268
+ }>, {
269
+ readonly style: Readonly<{
270
+ fg?: string;
271
+ bg?: string;
272
+ bold?: boolean;
273
+ dim?: boolean;
274
+ italic?: boolean;
275
+ underline?: boolean;
276
+ inverse?: boolean;
277
+ href?: string;
278
+ }>;
279
+ readonly durationMs: number;
280
+ readonly zIndex: number;
281
+ readonly clear: boolean;
282
+ readonly controls: boolean;
283
+ readonly fallback: string;
284
+ readonly maxFps: number;
285
+ readonly pixelWidth: number;
286
+ readonly pixelHeight: number;
287
+ readonly paused: boolean;
288
+ readonly playbackRate: TVideoPlaybackRate;
289
+ readonly controlsLayout: TVideoControlsLayout;
290
+ readonly loop: boolean;
291
+ }, {}>;
@@ -70,6 +70,10 @@ export declare const TVirtualList: import("vue").DefineComponent<import("vue").E
70
70
  type: PropType<RowScrollMode>;
71
71
  default: string;
72
72
  };
73
+ terminalGraphicScrollIdleMs: {
74
+ type: NumberConstructor;
75
+ default: number;
76
+ };
73
77
  }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
74
78
  [key: string]: any;
75
79
  }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("keydown" | "focus" | "blur" | "change" | "scroll" | "update:modelValue" | "update:scrollTop" | "itemClick")[], "keydown" | "focus" | "blur" | "change" | "scroll" | "update:modelValue" | "update:scrollTop" | "itemClick", (import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps), Readonly<import("vue").ExtractPropTypes<{
@@ -141,6 +145,10 @@ export declare const TVirtualList: import("vue").DefineComponent<import("vue").E
141
145
  type: PropType<RowScrollMode>;
142
146
  default: string;
143
147
  };
148
+ terminalGraphicScrollIdleMs: {
149
+ type: NumberConstructor;
150
+ default: number;
151
+ };
144
152
  }>> & Readonly<{
145
153
  onKeydown?: ((...args: any[]) => any) | undefined;
146
154
  onFocus?: ((...args: any[]) => any) | undefined;
@@ -179,4 +187,5 @@ export declare const TVirtualList: import("vue").DefineComponent<import("vue").E
179
187
  href?: string;
180
188
  }>;
181
189
  selectionText: (item: unknown, index: number) => string;
190
+ terminalGraphicScrollIdleMs: number;
182
191
  }, {}>;
@@ -1,7 +1,8 @@
1
1
  import type { PropType } from "vue";
2
2
  import type { Style } from "../../core/types.js";
3
+ import type { Rect, TerminalKeyboardEvent } from "../../events/manager/types.js";
3
4
  import { type TuiMarkdownThemeOverrides } from "../markdown/theme.js";
4
- import type { TuiMarkdownBlock } from "../markdown/types.js";
5
+ import type { TuiMarkdownBlock, TuiMarkdownImageActionPayload, TuiMarkdownImageResolver, TuiMarkdownLinkActionPayload, TuiMarkdownMathActionPayload } from "../markdown/types.js";
5
6
  export declare const TVirtualMarkdown: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
6
7
  x: {
7
8
  type: NumberConstructor;
@@ -63,9 +64,58 @@ export declare const TVirtualMarkdown: import("vue").DefineComponent<import("vue
63
64
  type: PropType<TuiMarkdownThemeOverrides>;
64
65
  default: undefined;
65
66
  };
67
+ imageRenderer: {
68
+ type: PropType<TuiMarkdownImageResolver>;
69
+ default: undefined;
70
+ };
71
+ imageMinWidth: {
72
+ type: NumberConstructor;
73
+ default: undefined;
74
+ };
75
+ imageMaxWidth: {
76
+ type: NumberConstructor;
77
+ default: undefined;
78
+ };
79
+ imageMinHeight: {
80
+ type: NumberConstructor;
81
+ default: undefined;
82
+ };
83
+ imageMaxHeight: {
84
+ type: NumberConstructor;
85
+ default: undefined;
86
+ };
87
+ imagePreserveAspectRatio: {
88
+ type: BooleanConstructor;
89
+ default: boolean;
90
+ };
91
+ imageActions: {
92
+ type: BooleanConstructor;
93
+ default: boolean;
94
+ };
95
+ mathActions: {
96
+ type: BooleanConstructor;
97
+ default: boolean;
98
+ };
99
+ linkActions: {
100
+ type: BooleanConstructor;
101
+ default: boolean;
102
+ };
103
+ imageOcclusionRects: {
104
+ type: PropType<readonly Rect[]>;
105
+ default: undefined;
106
+ };
66
107
  }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
67
108
  [key: string]: any;
68
- }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("keydown" | "focus" | "blur" | "scroll" | "update:scrollTop")[], "keydown" | "focus" | "blur" | "scroll" | "update:scrollTop", (import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps), Readonly<import("vue").ExtractPropTypes<{
109
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
110
+ "update:scrollTop": (_value: number) => true;
111
+ scroll: (_value: number) => true;
112
+ focus: () => true;
113
+ blur: () => true;
114
+ keydown: (_event: TerminalKeyboardEvent) => true;
115
+ imageAction: (_payload: TuiMarkdownImageActionPayload) => true;
116
+ mathAction: (_payload: TuiMarkdownMathActionPayload) => true;
117
+ linkAction: (_payload: TuiMarkdownLinkActionPayload) => true;
118
+ }, string, (import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps), Readonly<import("vue").ExtractPropTypes<{
69
119
  x: {
70
120
  type: NumberConstructor;
71
121
  required: true;
@@ -126,12 +176,108 @@ export declare const TVirtualMarkdown: import("vue").DefineComponent<import("vue
126
176
  type: PropType<TuiMarkdownThemeOverrides>;
127
177
  default: undefined;
128
178
  };
179
+ imageRenderer: {
180
+ type: PropType<TuiMarkdownImageResolver>;
181
+ default: undefined;
182
+ };
183
+ imageMinWidth: {
184
+ type: NumberConstructor;
185
+ default: undefined;
186
+ };
187
+ imageMaxWidth: {
188
+ type: NumberConstructor;
189
+ default: undefined;
190
+ };
191
+ imageMinHeight: {
192
+ type: NumberConstructor;
193
+ default: undefined;
194
+ };
195
+ imageMaxHeight: {
196
+ type: NumberConstructor;
197
+ default: undefined;
198
+ };
199
+ imagePreserveAspectRatio: {
200
+ type: BooleanConstructor;
201
+ default: boolean;
202
+ };
203
+ imageActions: {
204
+ type: BooleanConstructor;
205
+ default: boolean;
206
+ };
207
+ mathActions: {
208
+ type: BooleanConstructor;
209
+ default: boolean;
210
+ };
211
+ linkActions: {
212
+ type: BooleanConstructor;
213
+ default: boolean;
214
+ };
215
+ imageOcclusionRects: {
216
+ type: PropType<readonly Rect[]>;
217
+ default: undefined;
218
+ };
129
219
  }>> & Readonly<{
130
- onKeydown?: ((...args: any[]) => any) | undefined;
131
- onFocus?: ((...args: any[]) => any) | undefined;
132
- onBlur?: ((...args: any[]) => any) | undefined;
133
- onScroll?: ((...args: any[]) => any) | undefined;
134
- "onUpdate:scrollTop"?: ((...args: any[]) => any) | undefined;
220
+ onKeydown?: ((_event: TerminalKeyboardEvent) => any) | undefined;
221
+ onFocus?: (() => any) | undefined;
222
+ onBlur?: (() => any) | undefined;
223
+ onScroll?: ((_value: number) => any) | undefined;
224
+ "onUpdate:scrollTop"?: ((_value: number) => any) | undefined;
225
+ onMathAction?: ((_payload: Readonly<{
226
+ math: Readonly<{
227
+ source: string;
228
+ raw: string;
229
+ rendered: boolean;
230
+ }>;
231
+ rect: Readonly<{
232
+ x: number;
233
+ y: number;
234
+ w: number;
235
+ h: number;
236
+ }>;
237
+ cellX: number;
238
+ cellY: number;
239
+ rowIndex: number;
240
+ segmentIndex: number;
241
+ }>) => any) | undefined;
242
+ onImageAction?: ((_payload: Readonly<{
243
+ image: Readonly<{
244
+ kind: "image";
245
+ src: string;
246
+ alt?: string;
247
+ mime?: string;
248
+ base64?: string;
249
+ originalBase64?: string;
250
+ originalMime?: string;
251
+ naturalWidth?: number;
252
+ naturalHeight?: number;
253
+ displayWidth?: number;
254
+ displayHeight?: number;
255
+ }>;
256
+ rect: Readonly<{
257
+ x: number;
258
+ y: number;
259
+ w: number;
260
+ h: number;
261
+ }>;
262
+ cellX: number;
263
+ cellY: number;
264
+ rowIndex: number;
265
+ segmentIndex: number;
266
+ }>) => any) | undefined;
267
+ onLinkAction?: ((_payload: Readonly<{
268
+ href: string;
269
+ text: string;
270
+ rect: Readonly<{
271
+ x: number;
272
+ y: number;
273
+ w: number;
274
+ h: number;
275
+ }>;
276
+ cellX: number;
277
+ cellY: number;
278
+ rowIndex: number;
279
+ segmentIndex: number;
280
+ }>) => any) | undefined;
135
281
  }>, {
136
282
  style: Readonly<{
137
283
  fg?: string;
@@ -147,9 +293,10 @@ export declare const TVirtualMarkdown: import("vue").DefineComponent<import("vue
147
293
  selectable: boolean;
148
294
  autoFocus: boolean;
149
295
  content: string;
296
+ final: boolean;
297
+ streaming: boolean;
150
298
  scrollTop: number;
151
299
  customHtmlTags: readonly string[];
152
- final: boolean;
153
300
  theme: Readonly<Partial<{
154
301
  heading: readonly Partial<Style>[];
155
302
  strong: Partial<Style>;
@@ -164,5 +311,19 @@ export declare const TVirtualMarkdown: import("vue").DefineComponent<import("vue
164
311
  html: Partial<Style>;
165
312
  }>>;
166
313
  blocks: readonly TuiMarkdownBlock[];
167
- streaming: boolean;
314
+ imageRenderer: TuiMarkdownImageResolver;
315
+ imageMinWidth: number;
316
+ imageMaxWidth: number;
317
+ imageMinHeight: number;
318
+ imageMaxHeight: number;
319
+ imagePreserveAspectRatio: boolean;
320
+ imageActions: boolean;
321
+ mathActions: boolean;
322
+ linkActions: boolean;
323
+ imageOcclusionRects: readonly Readonly<{
324
+ x: number;
325
+ y: number;
326
+ w: number;
327
+ h: number;
328
+ }>[];
168
329
  }, {}>;
@@ -132,6 +132,10 @@ export declare const TVirtualRows: import("vue").DefineComponent<import("vue").E
132
132
  type: PropType<TVirtualRowsRowScrollMode>;
133
133
  default: string;
134
134
  };
135
+ terminalGraphicScrollIdleMs: {
136
+ type: NumberConstructor;
137
+ default: number;
138
+ };
135
139
  }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
136
140
  [key: string]: any;
137
141
  }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("click" | "contextmenu" | "pointerdown" | "pointerup" | "pointermove" | "pointerleave" | "wheel" | "keydown" | "focus" | "blur" | "scroll" | "clickCapture" | "contextmenuCapture" | "pointerdownCapture" | "pointerupCapture" | "pointermoveCapture" | "update:scrollTop" | "itemClick")[], "click" | "contextmenu" | "pointerdown" | "pointerup" | "pointermove" | "pointerleave" | "wheel" | "keydown" | "focus" | "blur" | "scroll" | "clickCapture" | "contextmenuCapture" | "pointerdownCapture" | "pointerupCapture" | "pointermoveCapture" | "update:scrollTop" | "itemClick", (import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps), Readonly<import("vue").ExtractPropTypes<{
@@ -218,6 +222,10 @@ export declare const TVirtualRows: import("vue").DefineComponent<import("vue").E
218
222
  type: PropType<TVirtualRowsRowScrollMode>;
219
223
  default: string;
220
224
  };
225
+ terminalGraphicScrollIdleMs: {
226
+ type: NumberConstructor;
227
+ default: number;
228
+ };
221
229
  }>> & Readonly<{
222
230
  onPointerleave?: ((...args: any[]) => any) | undefined;
223
231
  onClick?: ((...args: any[]) => any) | undefined;
@@ -255,6 +263,7 @@ export declare const TVirtualRows: import("vue").DefineComponent<import("vue").E
255
263
  rowScrollMode: TVirtualRowsRowScrollMode;
256
264
  scrollTop: number;
257
265
  selectionText: (item: unknown, index: number) => string;
266
+ terminalGraphicScrollIdleMs: number;
258
267
  itemChangedRange: () => {
259
268
  start: number;
260
269
  end: number;
@@ -172,6 +172,8 @@ export declare const TerminalProvider: import("vue").DefineComponent<import("vue
172
172
  debugIme: boolean;
173
173
  clipboard: Readonly<{
174
174
  supported: boolean;
175
+ canRead?: boolean;
176
+ canWrite?: boolean;
175
177
  readText: () => Promise<string>;
176
178
  writeText: (text: string) => Promise<void>;
177
179
  }>;
@@ -7,6 +7,7 @@ import type { EventManager } from "../events/manager/event-manager.js";
7
7
  import type { Rect } from "../events/manager/types.js";
8
8
  import type { SelectionTextProvider, TerminalSelectionCopyPayload, TerminalSelectionRefreshOptions } from "../selection/terminal-selection.js";
9
9
  import type { RendererCapabilities, TerminalRendererLike } from "../renderer/capabilities.js";
10
+ import type { ClipboardApi } from "../runtime/index.js";
10
11
  import type { TraceStore } from "../observability/trace.js";
11
12
  import type { FramePerfReason } from "../observability/frame-perf.js";
12
13
  import type { FramePerfStore } from "../observability/frame-perf-store.js";
@@ -99,6 +100,18 @@ export type TerminalSelectionContext = Readonly<{
99
100
  refresh: (options?: TerminalSelectionRefreshOptions) => void;
100
101
  clear: () => void;
101
102
  }>;
103
+ export type TerminalGraphicsActivityOptions = Readonly<{
104
+ scrollIdleMs?: number;
105
+ traceId?: string;
106
+ trace?: boolean;
107
+ }>;
108
+ export type TerminalGraphicsActivity = Readonly<{
109
+ scrolling: Readonly<Ref<boolean>>;
110
+ version: Readonly<Ref<number>>;
111
+ markScroll: () => void;
112
+ setScrollIdleMs: (value: number | undefined) => void;
113
+ dispose: () => void;
114
+ }>;
102
115
  export type ImeAnchor = Readonly<{
103
116
  cellX: number;
104
117
  cellY: number;
@@ -111,6 +124,7 @@ export type TerminalContext = Readonly<{
111
124
  events: Ref<EventManager | null>;
112
125
  scheduler: TerminalScheduler;
113
126
  runtime: TerminalRuntime;
127
+ clipboard?: ClipboardApi;
114
128
  observability: Readonly<{
115
129
  trace: TraceStore;
116
130
  framePerf: FramePerfStore;
@@ -127,6 +141,7 @@ export declare const TerminalContextKey: InjectionKey<Readonly<{
127
141
  events: Ref<EventManager | null>;
128
142
  scheduler: TerminalScheduler;
129
143
  runtime: TerminalRuntime;
144
+ clipboard?: ClipboardApi;
130
145
  observability: Readonly<{
131
146
  trace: TraceStore;
132
147
  framePerf: FramePerfStore;
@@ -150,4 +165,13 @@ export declare const TInputPluginsContextKey: InjectionKey<Readonly<Ref<readonly
150
165
  install: (ctx: import("./index.js").TInputPluginContext) => void;
151
166
  }>[]>>>;
152
167
  export declare const TPathPickerProviderContextKey: InjectionKey<Readonly<Ref<PathPickerProvider | undefined>>>;
168
+ export declare const TerminalGraphicsActivityKey: InjectionKey<Readonly<{
169
+ scrolling: Readonly<Ref<boolean>>;
170
+ version: Readonly<Ref<number>>;
171
+ markScroll: () => void;
172
+ setScrollIdleMs: (value: number | undefined) => void;
173
+ dispose: () => void;
174
+ }>>;
153
175
  export declare const DialogContextKey: InjectionKey<boolean>;
176
+ export declare function createTerminalGraphicsActivity(options?: TerminalGraphicsActivityOptions): TerminalGraphicsActivity;
177
+ export declare function createCombinedTerminalGraphicsActivity(parent: TerminalGraphicsActivity | null | undefined, own: TerminalGraphicsActivity): TerminalGraphicsActivity;
@@ -15,6 +15,8 @@ export { TDialog } from "./components/TDialog.js";
15
15
  export type { DialogButton } from "./components/TDialog.js";
16
16
  export type { TerminalProviderSelectionConfig, TerminalProviderSelectionOptions, } from "./components/TerminalProvider.js";
17
17
  export { TerminalProvider } from "./components/TerminalProvider.js";
18
+ export { TFlex, TFlexItem } from "./components/TFlex.js";
19
+ export type { TFlexAlign, TFlexAlignContent, TFlexDirection, TFlexMeasure, TFlexMeasureConstraints, TFlexMeasureResult, TFlexItemSlotProps, TFlexJustify, TFlexSize, } from "./components/TFlex.js";
18
20
  export { TFlow } from "./components/TFlow.js";
19
21
  export { TAutocompleteInput, TCheckbox, TForm, TFormContextKey, TFormField, TPasswordInput, TRadioGroup, TSlider, TSwitch, useTForm, } from "./components/TForm.js";
20
22
  export type { TAutocompleteLoadErrorPayload, TAutocompleteOption, TAutocompleteSelectPayload, TAutocompleteSuggestionProvider, TFormContext, TFormHandle, TFormModel, TFormRule, TFormSubmitPayload, TRadioOption, } from "./components/TForm.js";
@@ -32,6 +34,8 @@ export type { TLinkActivatePayload, TLinkActivationSource, TLinkInvalidHrefPaylo
32
34
  export type { TerminalLinkOpenContext, TerminalLinkOpener, TerminalLinkOpenerLike, TerminalLinkOpenSource, } from "./components/link/host.js";
33
35
  export { linkifyTextSegments } from "./linkify.js";
34
36
  export type { TLinkifyOptions, TLinkifyProtocol, TLinkifySegment } from "./linkify.js";
37
+ export { isSimpleMermaidFlowchartSource, markMermaidRenderErrorFatal, TMermaid, TMermaidText, } from "./components/TMermaidText.js";
38
+ export type { TMermaidAsciiOptions, TMermaidAsciiTheme, TMermaidCopyPayload, TMermaidRenderer, TMermaidRenderEligibility, TMermaidRenderEligibilityContext, TMermaidResolvedAsciiOptions, TMermaidTextProps, TMermaidTransientErrorClassifier, TMermaidTransientErrorContext, } from "./components/TMermaidText.js";
35
39
  export { TMultilineModal } from "./components/TMultilineModal.js";
36
40
  export { TBreadcrumb, TKeyHint, TStatusBar } from "./components/TNavigation.js";
37
41
  export type { TBreadcrumbItem, TBreadcrumbSelectPayload } from "./components/TNavigation.js";
@@ -56,6 +60,7 @@ export { useTerminalRuntime } from "./composables/use-runtime.js";
56
60
  export { useTerminalNode } from "./composables/use-terminal-node.js";
57
61
  export { useTerminal } from "./composables/use-terminal.js";
58
62
  export { useVisibility } from "./composables/use-visibility.js";
63
+ export type { TuiMarkdownGraphicSegment, TuiMarkdownImageResolver, TuiMarkdownImageResolverResult, } from "./markdown/types.js";
59
64
  export type { TuiMarkdownTheme, TuiMarkdownThemeOverrides } from "./markdown/theme.js";
60
65
  export { createTheme, tuiDefaultTheme } from "./theme.js";
61
66
  export { createOverlayFocusStack, resolveOverlayPlacement } from "./overlay.js";