@simon_he/vue-tui 1.0.1 → 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 (128) hide show
  1. package/README.md +139 -46
  2. package/dist/TMermaidText-frVr8Ysb.js +885 -0
  3. package/dist/{TSelect-HzILuti9.js → TSelect-tJ87rKPM.js} +59 -242
  4. package/dist/{TTree-ChOot2Bh.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 +5470 -6176
  21. package/dist/cli.d.cts +6 -2
  22. package/dist/cli.d.ts +6 -2
  23. package/dist/cli.js +3747 -350
  24. package/dist/core/buffer/buffer.d.ts +2 -2
  25. package/dist/core/buffer/eaw-ranges-unicode-17.d.ts +14 -0
  26. package/dist/core/perf/instrumentation-noop.d.ts +48 -0
  27. package/dist/core/perf/instrumentation.d.ts +136 -0
  28. package/dist/core/terminal/create-terminal.d.ts +1 -0
  29. package/dist/core/types.d.ts +0 -4
  30. package/dist/core.cjs +851 -1462
  31. package/dist/core.js +4 -5
  32. package/dist/create-terminal-app.d.ts +24 -1
  33. package/dist/debug-logger-CmsGI4of.js +74 -0
  34. package/dist/{dom-renderer-BqGijQID.js → dom-renderer-DXx8fWzD.js} +2 -3
  35. package/dist/experimental/3d/bun/contributor-avatar-atlas.d.ts +12 -0
  36. package/dist/experimental/3d/bun/png.d.ts +1 -0
  37. package/dist/experimental/3d/bun/terminal-badge-scene.d.ts +11 -0
  38. package/dist/experimental/3d/bun/terminal-badge.wgsl.d.ts +1 -0
  39. package/dist/experimental/3d/bun/webgpu-renderer.d.ts +26 -0
  40. package/dist/experimental/3d/bun.cjs +7271 -0
  41. package/dist/experimental/3d/bun.d.cts +4 -0
  42. package/dist/experimental/3d/bun.d.ts +4 -0
  43. package/dist/experimental/3d/bun.js +7390 -0
  44. package/dist/experimental/video/node.cjs +497 -0
  45. package/dist/experimental/video/node.d.cts +4 -0
  46. package/dist/experimental/video/node.d.ts +4 -0
  47. package/dist/experimental/video/node.js +610 -0
  48. package/dist/experimental.cjs +6876 -6192
  49. package/dist/experimental.d.cts +7 -0
  50. package/dist/experimental.d.ts +7 -0
  51. package/dist/experimental.js +3005 -9
  52. package/dist/frame-perf-CHpWhbC4.js +111 -0
  53. package/dist/{create-terminal-C2oiWFJU.js → hyperlink-_1FAj7Wq.js} +455 -19
  54. package/dist/index.cjs +5025 -10332
  55. package/dist/index.js +14 -13
  56. package/dist/{linkify-D_gzn9Xq.js → linkify-D68T7rdW.js} +193 -3
  57. package/dist/markdown.cjs +21295 -12691
  58. package/dist/markdown.d.cts +1 -1
  59. package/dist/markdown.d.ts +1 -1
  60. package/dist/markdown.js +211 -51
  61. package/dist/mermaid-BNhM1jAZ.js +123 -0
  62. package/dist/mermaid.cjs +1707 -0
  63. package/dist/mermaid.d.cts +3 -0
  64. package/dist/mermaid.d.ts +3 -0
  65. package/dist/mermaid.js +6 -0
  66. package/dist/observability/frame-perf-store.d.ts +2 -1
  67. package/dist/observability/frame-perf.d.ts +33 -0
  68. package/dist/observability.cjs +106 -107
  69. package/dist/observability.d.cts +2 -2
  70. package/dist/observability.d.ts +2 -2
  71. package/dist/observability.js +3 -3
  72. package/dist/{wheel-scroll-vBRaQ7p-.js → rect-DUpeDfBg.js} +253 -117
  73. package/dist/renderer/cli/index.d.ts +1 -1
  74. package/dist/renderer/cli/stdout-metrics.d.ts +10 -0
  75. package/dist/renderer/cli/stdout-renderer.d.ts +53 -7
  76. package/dist/renderer/terminal-graphic-render-queue.d.ts +50 -0
  77. package/dist/renderer/terminal-graphics-trace.d.ts +53 -0
  78. package/dist/renderer/terminal-graphics.d.ts +147 -0
  79. package/dist/renderer-dom.cjs +364 -903
  80. package/dist/renderer-dom.js +4 -5
  81. package/dist/runtime/index.d.ts +2 -0
  82. package/dist/{runtime-rfcZCyJq.js → runtime-Byf8XXOT.js} +28 -15
  83. package/dist/runtime.cjs +427 -889
  84. package/dist/runtime.js +2 -2
  85. package/dist/terminal-graphics-Bbe83wSr.js +597 -0
  86. package/dist/{terminal-selection-DBinO6p5.js → terminal-selection-4W1SJj4c.js} +4 -1
  87. package/dist/{tlog-theme-CvLFNMwk.js → tlog-theme-Bul2Na3u.js} +1237 -12
  88. package/dist/{trace-CjzYeIxN.js → trace-Bh8WnoMo.js} +5 -0
  89. package/dist/vue/agent/create-png-terminal-graphic-renderer.d.ts +19 -0
  90. package/dist/vue/components/T3DViewport.d.ts +473 -0
  91. package/dist/vue/components/TAgentTerminalGraphic.d.ts +494 -0
  92. package/dist/vue/components/TCharts.d.ts +1121 -0
  93. package/dist/vue/components/TFeedback.d.ts +1 -1
  94. package/dist/vue/components/TFlex.d.ts +389 -0
  95. package/dist/vue/components/TForm.d.ts +4 -4
  96. package/dist/vue/components/TLogSearchBar.d.ts +3 -3
  97. package/dist/vue/components/TLogSearchPager.d.ts +2 -2
  98. package/dist/vue/components/TMarkdownText.d.ts +162 -4
  99. package/dist/vue/components/TMermaidText.d.ts +900 -0
  100. package/dist/vue/components/TVideo.d.ts +291 -0
  101. package/dist/vue/components/TVirtualList.d.ts +9 -0
  102. package/dist/vue/components/TVirtualMarkdown.d.ts +170 -9
  103. package/dist/vue/components/TVirtualRows.d.ts +9 -0
  104. package/dist/vue/components/TerminalProvider.d.ts +2 -0
  105. package/dist/vue/context.d.ts +24 -0
  106. package/dist/vue/index.d.ts +5 -0
  107. package/dist/vue/layout/flex.d.ts +67 -0
  108. package/dist/vue/markdown/ast.d.ts +5 -2
  109. package/dist/vue/markdown/document.d.ts +5 -0
  110. package/dist/vue/markdown/image-actions.d.ts +14 -0
  111. package/dist/vue/markdown/image.d.ts +11 -0
  112. package/dist/vue/markdown/link-actions.d.ts +14 -0
  113. package/dist/vue/markdown/math-actions.d.ts +14 -0
  114. package/dist/vue/markdown/math.d.ts +6 -0
  115. package/dist/vue/markdown/render.d.ts +28 -0
  116. package/dist/vue/markdown/types.d.ts +78 -0
  117. package/dist/vue/mermaid/beautiful-mermaid.d.ts +1436 -0
  118. package/dist/vue/render/render-manager.d.ts +7 -0
  119. package/dist/vue/video/types.d.ts +39 -0
  120. package/dist/vue.cjs +7215 -12430
  121. package/dist/vue.js +704 -38
  122. package/dist/wheel-scroll-DASkEZr-.js +106 -0
  123. package/dist/{hyperlink-Bn02UXJb.js → width-GqllnV8C.js} +166 -111
  124. package/package.json +141 -18
  125. package/dist/frame-perf-C6Xfg85O.js +0 -24
  126. package/dist/sgr-BmzxEjAO.js +0 -304
  127. /package/dist/{ansi-palette-CNXqFciC.js → ansi-palette-CH6jc2Z7.js} +0 -0
  128. /package/dist/{path-suggest-BNqcuE3-.js → path-suggest-Dndu4dTi.js} +0 -0
@@ -1,3 +1,4 @@
1
+ import { summarizeFramePerf } from "./frame-perf-CHpWhbC4.js";
1
2
  import { computed, ref, shallowReactive } from "vue";
2
3
 
3
4
  //#region src/observability/perf-sink.ts
@@ -136,6 +137,9 @@ function createFramePerfStore(limit = 120, opts) {
136
137
  function list() {
137
138
  return samples.slice();
138
139
  }
140
+ function summary() {
141
+ return summarizeFramePerf(samples);
142
+ }
139
143
  function clear() {
140
144
  samples.length = 0;
141
145
  }
@@ -148,6 +152,7 @@ function createFramePerfStore(limit = 120, opts) {
148
152
  addSink,
149
153
  latest,
150
154
  list,
155
+ summary,
151
156
  clear
152
157
  };
153
158
  }
@@ -0,0 +1,19 @@
1
+ import type { TAgentTerminalGraphicRenderer, TAgentTerminalGraphicRendererContext } from "../components/TAgentTerminalGraphic.js";
2
+ import type { TerminalGraphicRenderQueue } from "../../renderer/terminal-graphic-render-queue.js";
3
+ export type PngTerminalGraphicFrame = Readonly<{
4
+ base64: string;
5
+ fallback?: string;
6
+ cols?: number;
7
+ rows?: number;
8
+ }>;
9
+ export type CreatePngTerminalGraphicRendererOptions = Readonly<{
10
+ toPngBase64: (content: string, context: TAgentTerminalGraphicRendererContext) => Promise<PngTerminalGraphicFrame>;
11
+ toSixel?: (pngBase64: string, context: TAgentTerminalGraphicRendererContext) => Promise<string>;
12
+ fallback?: (content: string, context: TAgentTerminalGraphicRendererContext) => string | Promise<string>;
13
+ cacheSalt?: string | ((content: string, context: TAgentTerminalGraphicRendererContext) => string);
14
+ cacheKey?: (content: string, context: TAgentTerminalGraphicRendererContext) => string;
15
+ queue?: TerminalGraphicRenderQueue;
16
+ dedupeInflight?: boolean;
17
+ zIndex?: number;
18
+ }>;
19
+ export declare function createPngTerminalGraphicRenderer(options: CreatePngTerminalGraphicRendererOptions): TAgentTerminalGraphicRenderer;
@@ -0,0 +1,473 @@
1
+ import type { Style } from "../../core/types.js";
2
+ import type { TVideoFrame, TVideoFrameEvent, TVideoFrameFormat } from "../video/types.js";
3
+ import type { ExtractPublicPropTypes, PropType } from "vue";
4
+ /** Motion state supplied to every {@link T3DRenderer.render} call. */
5
+ export type T3DViewportMotion = Readonly<{
6
+ yaw: number;
7
+ pitch: number;
8
+ yawVelocity: number;
9
+ pitchVelocity: number;
10
+ pointerX: number;
11
+ pointerY: number;
12
+ pointerSpeed: number;
13
+ hovering: boolean;
14
+ zoom: number;
15
+ zoomVelocity: number;
16
+ hoveredObjectId: number | null;
17
+ selectedObjectId: number | null;
18
+ }>;
19
+ /** Object metadata returned by an optional {@link T3DRenderer.hitTest}. */
20
+ export type T3DHitResult = Readonly<{
21
+ objectId: number;
22
+ label?: string;
23
+ href?: string;
24
+ }>;
25
+ /** Synchronous pointer context supplied to an optional {@link T3DRenderer.hitTest}. */
26
+ export type T3DHitTestContext = Readonly<{
27
+ pointerX: number;
28
+ pointerY: number;
29
+ pixelWidth: number;
30
+ pixelHeight: number;
31
+ cellWidth: number;
32
+ cellHeight: number;
33
+ motion: T3DViewportMotion;
34
+ }>;
35
+ /** Pull-render context for a single terminal 3D frame. */
36
+ export type T3DRenderContext = Readonly<{
37
+ timeMs: number;
38
+ deltaMs: number;
39
+ frame: number;
40
+ pixelWidth: number;
41
+ pixelHeight: number;
42
+ format: TVideoFrameFormat;
43
+ signal: AbortSignal;
44
+ motion: T3DViewportMotion;
45
+ }>;
46
+ /** Renderer contract used by {@link T3DViewport}. */
47
+ export type T3DRenderer = Readonly<{
48
+ render: (context: T3DRenderContext) => TVideoFrame | Promise<TVideoFrame>;
49
+ /** Optional synchronous object picking for hover and click selection. */
50
+ hitTest?: (context: T3DHitTestContext) => T3DHitResult | null;
51
+ dispose?: () => void;
52
+ }>;
53
+ /** Public methods exposed by {@link T3DViewport}. */
54
+ export type T3DViewportHandle = Readonly<{
55
+ resetMotion: () => void;
56
+ }>;
57
+ export declare const t3DViewportProps: {
58
+ /** Horizontal position in terminal cells. */
59
+ readonly x: {
60
+ readonly type: NumberConstructor;
61
+ readonly required: true;
62
+ };
63
+ /** Vertical position in terminal cells. */
64
+ readonly y: {
65
+ readonly type: NumberConstructor;
66
+ readonly required: true;
67
+ };
68
+ /** Width in terminal cells. */
69
+ readonly w: {
70
+ readonly type: NumberConstructor;
71
+ readonly required: true;
72
+ };
73
+ /** Height in terminal cells. */
74
+ readonly h: {
75
+ readonly type: NumberConstructor;
76
+ readonly required: true;
77
+ };
78
+ /** Paint and pointer hit-test stacking order. */
79
+ readonly zIndex: {
80
+ readonly type: NumberConstructor;
81
+ readonly default: 0;
82
+ };
83
+ /** Pull renderer captured at mount; remount the component to replace it. */
84
+ readonly renderer: {
85
+ readonly type: PropType<T3DRenderer>;
86
+ readonly required: true;
87
+ };
88
+ /** Stops frame pulling while true. */
89
+ readonly paused: {
90
+ readonly type: BooleanConstructor;
91
+ readonly default: false;
92
+ };
93
+ /** Maximum requested frames per second. */
94
+ readonly maxFps: {
95
+ readonly type: NumberConstructor;
96
+ readonly default: 24;
97
+ };
98
+ /** Requested source width in pixels; TVideo may adapt it for ASCII output. */
99
+ readonly pixelWidth: {
100
+ readonly type: NumberConstructor;
101
+ readonly default: undefined;
102
+ };
103
+ /** Requested source height in pixels; TVideo may adapt it for ASCII output. */
104
+ readonly pixelHeight: {
105
+ readonly type: NumberConstructor;
106
+ readonly default: undefined;
107
+ };
108
+ /** Text displayed before a frame is available or after rendering fails. */
109
+ readonly fallback: {
110
+ readonly type: StringConstructor;
111
+ readonly default: "[3D viewport]";
112
+ };
113
+ /** Terminal style applied to fallback and ASCII output. */
114
+ readonly style: {
115
+ readonly type: PropType<Style>;
116
+ readonly default: undefined;
117
+ };
118
+ /** Clears cells underneath each video frame. */
119
+ readonly clear: {
120
+ readonly type: BooleanConstructor;
121
+ readonly default: true;
122
+ };
123
+ /** Enables pointer orbit, wheel zoom, and hover motion tracking. */
124
+ readonly interactive: {
125
+ readonly type: BooleanConstructor;
126
+ readonly default: true;
127
+ };
128
+ /** Initial yaw angle in radians, also restored by resetMotion(). */
129
+ readonly initialYaw: {
130
+ readonly type: NumberConstructor;
131
+ readonly default: 0;
132
+ };
133
+ /** Initial pitch angle in radians, also restored by resetMotion(). */
134
+ readonly initialPitch: {
135
+ readonly type: NumberConstructor;
136
+ readonly default: 0;
137
+ };
138
+ /** Enables continuous yaw rotation when not dragging. */
139
+ readonly autoRotate: {
140
+ readonly type: BooleanConstructor;
141
+ readonly default: true;
142
+ };
143
+ /** Automatic yaw rotation speed in radians per second. */
144
+ readonly autoRotateSpeed: {
145
+ readonly type: NumberConstructor;
146
+ readonly default: 0.35;
147
+ };
148
+ /** Drag sensitivity in radians per terminal cell. */
149
+ readonly pointerSensitivity: {
150
+ readonly type: NumberConstructor;
151
+ readonly default: 0.055;
152
+ };
153
+ /** Initial camera zoom, also restored by resetMotion(). */
154
+ readonly initialZoom: {
155
+ readonly type: NumberConstructor;
156
+ readonly default: 1;
157
+ };
158
+ /** Minimum camera zoom accepted from wheel and trackpad gestures. */
159
+ readonly minZoom: {
160
+ readonly type: NumberConstructor;
161
+ readonly default: 0.65;
162
+ };
163
+ /** Maximum camera zoom accepted from wheel and trackpad gestures. */
164
+ readonly maxZoom: {
165
+ readonly type: NumberConstructor;
166
+ readonly default: 1.65;
167
+ };
168
+ /** Zoom impulse per normalized wheel or trackpad unit. */
169
+ readonly zoomSensitivity: {
170
+ readonly type: NumberConstructor;
171
+ readonly default: 0.1;
172
+ };
173
+ };
174
+ export type T3DViewportProps = ExtractPublicPropTypes<typeof t3DViewportProps>;
175
+ /**
176
+ * Browser-safe interactive 3D viewport. Frames are pulled from a renderer and
177
+ * delegated directly to TVideo, which owns frame coalescing and terminal output.
178
+ *
179
+ * @event frame Emitted after TVideo commits a rendered frame.
180
+ * @event error Emitted when the renderer or TVideo frame handling fails.
181
+ */
182
+ export declare const T3DViewport: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
183
+ /** Horizontal position in terminal cells. */
184
+ readonly x: {
185
+ readonly type: NumberConstructor;
186
+ readonly required: true;
187
+ };
188
+ /** Vertical position in terminal cells. */
189
+ readonly y: {
190
+ readonly type: NumberConstructor;
191
+ readonly required: true;
192
+ };
193
+ /** Width in terminal cells. */
194
+ readonly w: {
195
+ readonly type: NumberConstructor;
196
+ readonly required: true;
197
+ };
198
+ /** Height in terminal cells. */
199
+ readonly h: {
200
+ readonly type: NumberConstructor;
201
+ readonly required: true;
202
+ };
203
+ /** Paint and pointer hit-test stacking order. */
204
+ readonly zIndex: {
205
+ readonly type: NumberConstructor;
206
+ readonly default: 0;
207
+ };
208
+ /** Pull renderer captured at mount; remount the component to replace it. */
209
+ readonly renderer: {
210
+ readonly type: PropType<T3DRenderer>;
211
+ readonly required: true;
212
+ };
213
+ /** Stops frame pulling while true. */
214
+ readonly paused: {
215
+ readonly type: BooleanConstructor;
216
+ readonly default: false;
217
+ };
218
+ /** Maximum requested frames per second. */
219
+ readonly maxFps: {
220
+ readonly type: NumberConstructor;
221
+ readonly default: 24;
222
+ };
223
+ /** Requested source width in pixels; TVideo may adapt it for ASCII output. */
224
+ readonly pixelWidth: {
225
+ readonly type: NumberConstructor;
226
+ readonly default: undefined;
227
+ };
228
+ /** Requested source height in pixels; TVideo may adapt it for ASCII output. */
229
+ readonly pixelHeight: {
230
+ readonly type: NumberConstructor;
231
+ readonly default: undefined;
232
+ };
233
+ /** Text displayed before a frame is available or after rendering fails. */
234
+ readonly fallback: {
235
+ readonly type: StringConstructor;
236
+ readonly default: "[3D viewport]";
237
+ };
238
+ /** Terminal style applied to fallback and ASCII output. */
239
+ readonly style: {
240
+ readonly type: PropType<Style>;
241
+ readonly default: undefined;
242
+ };
243
+ /** Clears cells underneath each video frame. */
244
+ readonly clear: {
245
+ readonly type: BooleanConstructor;
246
+ readonly default: true;
247
+ };
248
+ /** Enables pointer orbit, wheel zoom, and hover motion tracking. */
249
+ readonly interactive: {
250
+ readonly type: BooleanConstructor;
251
+ readonly default: true;
252
+ };
253
+ /** Initial yaw angle in radians, also restored by resetMotion(). */
254
+ readonly initialYaw: {
255
+ readonly type: NumberConstructor;
256
+ readonly default: 0;
257
+ };
258
+ /** Initial pitch angle in radians, also restored by resetMotion(). */
259
+ readonly initialPitch: {
260
+ readonly type: NumberConstructor;
261
+ readonly default: 0;
262
+ };
263
+ /** Enables continuous yaw rotation when not dragging. */
264
+ readonly autoRotate: {
265
+ readonly type: BooleanConstructor;
266
+ readonly default: true;
267
+ };
268
+ /** Automatic yaw rotation speed in radians per second. */
269
+ readonly autoRotateSpeed: {
270
+ readonly type: NumberConstructor;
271
+ readonly default: 0.35;
272
+ };
273
+ /** Drag sensitivity in radians per terminal cell. */
274
+ readonly pointerSensitivity: {
275
+ readonly type: NumberConstructor;
276
+ readonly default: 0.055;
277
+ };
278
+ /** Initial camera zoom, also restored by resetMotion(). */
279
+ readonly initialZoom: {
280
+ readonly type: NumberConstructor;
281
+ readonly default: 1;
282
+ };
283
+ /** Minimum camera zoom accepted from wheel and trackpad gestures. */
284
+ readonly minZoom: {
285
+ readonly type: NumberConstructor;
286
+ readonly default: 0.65;
287
+ };
288
+ /** Maximum camera zoom accepted from wheel and trackpad gestures. */
289
+ readonly maxZoom: {
290
+ readonly type: NumberConstructor;
291
+ readonly default: 1.65;
292
+ };
293
+ /** Zoom impulse per normalized wheel or trackpad unit. */
294
+ readonly zoomSensitivity: {
295
+ readonly type: NumberConstructor;
296
+ readonly default: 0.1;
297
+ };
298
+ }>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
299
+ [key: string]: any;
300
+ }>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
301
+ /** A frame was committed by TVideo. */
302
+ frame: (_event: TVideoFrameEvent) => true;
303
+ /** Rendering or frame processing failed. */
304
+ error: (_error: unknown) => true;
305
+ /** Hovered renderer object changed, or cleared to null. */
306
+ objecthover: (_hit: T3DHitResult | null) => true;
307
+ /** Click-locked renderer object changed, or cleared to null. */
308
+ objectselect: (_hit: T3DHitResult | null) => true;
309
+ }, string, (import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps), Readonly<import("vue").ExtractPropTypes<{
310
+ /** Horizontal position in terminal cells. */
311
+ readonly x: {
312
+ readonly type: NumberConstructor;
313
+ readonly required: true;
314
+ };
315
+ /** Vertical position in terminal cells. */
316
+ readonly y: {
317
+ readonly type: NumberConstructor;
318
+ readonly required: true;
319
+ };
320
+ /** Width in terminal cells. */
321
+ readonly w: {
322
+ readonly type: NumberConstructor;
323
+ readonly required: true;
324
+ };
325
+ /** Height in terminal cells. */
326
+ readonly h: {
327
+ readonly type: NumberConstructor;
328
+ readonly required: true;
329
+ };
330
+ /** Paint and pointer hit-test stacking order. */
331
+ readonly zIndex: {
332
+ readonly type: NumberConstructor;
333
+ readonly default: 0;
334
+ };
335
+ /** Pull renderer captured at mount; remount the component to replace it. */
336
+ readonly renderer: {
337
+ readonly type: PropType<T3DRenderer>;
338
+ readonly required: true;
339
+ };
340
+ /** Stops frame pulling while true. */
341
+ readonly paused: {
342
+ readonly type: BooleanConstructor;
343
+ readonly default: false;
344
+ };
345
+ /** Maximum requested frames per second. */
346
+ readonly maxFps: {
347
+ readonly type: NumberConstructor;
348
+ readonly default: 24;
349
+ };
350
+ /** Requested source width in pixels; TVideo may adapt it for ASCII output. */
351
+ readonly pixelWidth: {
352
+ readonly type: NumberConstructor;
353
+ readonly default: undefined;
354
+ };
355
+ /** Requested source height in pixels; TVideo may adapt it for ASCII output. */
356
+ readonly pixelHeight: {
357
+ readonly type: NumberConstructor;
358
+ readonly default: undefined;
359
+ };
360
+ /** Text displayed before a frame is available or after rendering fails. */
361
+ readonly fallback: {
362
+ readonly type: StringConstructor;
363
+ readonly default: "[3D viewport]";
364
+ };
365
+ /** Terminal style applied to fallback and ASCII output. */
366
+ readonly style: {
367
+ readonly type: PropType<Style>;
368
+ readonly default: undefined;
369
+ };
370
+ /** Clears cells underneath each video frame. */
371
+ readonly clear: {
372
+ readonly type: BooleanConstructor;
373
+ readonly default: true;
374
+ };
375
+ /** Enables pointer orbit, wheel zoom, and hover motion tracking. */
376
+ readonly interactive: {
377
+ readonly type: BooleanConstructor;
378
+ readonly default: true;
379
+ };
380
+ /** Initial yaw angle in radians, also restored by resetMotion(). */
381
+ readonly initialYaw: {
382
+ readonly type: NumberConstructor;
383
+ readonly default: 0;
384
+ };
385
+ /** Initial pitch angle in radians, also restored by resetMotion(). */
386
+ readonly initialPitch: {
387
+ readonly type: NumberConstructor;
388
+ readonly default: 0;
389
+ };
390
+ /** Enables continuous yaw rotation when not dragging. */
391
+ readonly autoRotate: {
392
+ readonly type: BooleanConstructor;
393
+ readonly default: true;
394
+ };
395
+ /** Automatic yaw rotation speed in radians per second. */
396
+ readonly autoRotateSpeed: {
397
+ readonly type: NumberConstructor;
398
+ readonly default: 0.35;
399
+ };
400
+ /** Drag sensitivity in radians per terminal cell. */
401
+ readonly pointerSensitivity: {
402
+ readonly type: NumberConstructor;
403
+ readonly default: 0.055;
404
+ };
405
+ /** Initial camera zoom, also restored by resetMotion(). */
406
+ readonly initialZoom: {
407
+ readonly type: NumberConstructor;
408
+ readonly default: 1;
409
+ };
410
+ /** Minimum camera zoom accepted from wheel and trackpad gestures. */
411
+ readonly minZoom: {
412
+ readonly type: NumberConstructor;
413
+ readonly default: 0.65;
414
+ };
415
+ /** Maximum camera zoom accepted from wheel and trackpad gestures. */
416
+ readonly maxZoom: {
417
+ readonly type: NumberConstructor;
418
+ readonly default: 1.65;
419
+ };
420
+ /** Zoom impulse per normalized wheel or trackpad unit. */
421
+ readonly zoomSensitivity: {
422
+ readonly type: NumberConstructor;
423
+ readonly default: 0.1;
424
+ };
425
+ }>> & Readonly<{
426
+ onError?: ((_error: unknown) => any) | undefined;
427
+ onFrame?: ((_event: Readonly<{
428
+ timestampMs: number;
429
+ pixelWidth: number;
430
+ pixelHeight: number;
431
+ droppedFrames: number;
432
+ durationMs?: number;
433
+ playbackRate?: import("../video/types.js").TVideoPlaybackRate;
434
+ }>) => any) | undefined;
435
+ onObjecthover?: ((_hit: Readonly<{
436
+ objectId: number;
437
+ label?: string;
438
+ href?: string;
439
+ }> | null) => any) | undefined;
440
+ onObjectselect?: ((_hit: Readonly<{
441
+ objectId: number;
442
+ label?: string;
443
+ href?: string;
444
+ }> | null) => any) | undefined;
445
+ }>, {
446
+ readonly style: Readonly<{
447
+ fg?: string;
448
+ bg?: string;
449
+ bold?: boolean;
450
+ dim?: boolean;
451
+ italic?: boolean;
452
+ underline?: boolean;
453
+ inverse?: boolean;
454
+ href?: string;
455
+ }>;
456
+ readonly zIndex: number;
457
+ readonly clear: boolean;
458
+ readonly fallback: string;
459
+ readonly maxFps: number;
460
+ readonly pixelWidth: number;
461
+ readonly pixelHeight: number;
462
+ readonly paused: boolean;
463
+ readonly interactive: boolean;
464
+ readonly initialYaw: number;
465
+ readonly initialPitch: number;
466
+ readonly autoRotate: boolean;
467
+ readonly autoRotateSpeed: number;
468
+ readonly pointerSensitivity: number;
469
+ readonly initialZoom: number;
470
+ readonly minZoom: number;
471
+ readonly maxZoom: number;
472
+ readonly zoomSensitivity: number;
473
+ }, {}>;