@simon_he/vue-tui 1.0.0-rc.0 → 1.0.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/README.md +17 -8
- package/dist/{TSelect-BmSkar0D.js → TSelect-HzILuti9.js} +1326 -3885
- package/dist/TTree-ChOot2Bh.js +6562 -0
- package/dist/agent.cjs +39924 -0
- package/dist/agent.d.cts +44 -0
- package/dist/agent.d.ts +44 -0
- package/dist/agent.js +828 -0
- package/dist/ansi-palette-CNXqFciC.js +57 -0
- package/dist/block-source-CKUOnkgT.js +1663 -0
- package/dist/cli/node-file-writers.d.ts +1 -0
- package/dist/cli.cjs +508 -111
- package/dist/cli.d.cts +1 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +443 -89
- package/dist/core/terminal/create-terminal.d.ts +3 -2
- package/dist/core.cjs +120 -39
- package/dist/core.js +7 -5
- package/dist/{ansi-palette-Bv5Vqr4k.js → create-terminal-C2oiWFJU.js} +19 -84
- package/dist/create-terminal-app.d.ts +2 -0
- package/dist/{dom-renderer-CDVQIcIL.js → dom-renderer-BqGijQID.js} +3 -2
- package/dist/env-Cl8qmNFN.js +19 -0
- package/dist/experimental.cjs +3241 -541
- package/dist/experimental.d.cts +3 -0
- package/dist/experimental.d.ts +3 -0
- package/dist/experimental.js +9 -7519
- package/dist/frame-perf-C6Xfg85O.js +24 -0
- package/dist/{hyperlink-B5PD7a3Q.js → hyperlink-Bn02UXJb.js} +89 -1
- package/dist/index.cjs +4568 -419
- package/dist/index.d.cts +22 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.js +16 -12
- package/dist/linkify-D_gzn9Xq.js +562 -0
- package/dist/markdown.cjs +447 -118
- package/dist/markdown.d.cts +2 -1
- package/dist/markdown.d.ts +2 -1
- package/dist/markdown.js +34 -1493
- package/dist/observability/frame-perf-store.d.ts +5 -0
- package/dist/observability/perf-sink.d.ts +56 -0
- package/dist/observability.cjs +125 -3
- package/dist/observability.d.cts +2 -0
- package/dist/observability.d.ts +2 -0
- package/dist/observability.js +3 -2
- package/dist/{path-DDiSCXrQ.js → path-mnSgEpCm.js} +1 -19
- package/dist/{path-suggest-0Q2BDsuj.js → path-suggest-BNqcuE3-.js} +1 -1
- package/dist/renderer-dom.cjs +0 -6
- package/dist/renderer-dom.js +5 -4
- package/dist/{runtime-DtrcQidD.js → runtime-rfcZCyJq.js} +1 -1
- package/dist/runtime.cjs +4 -3
- package/dist/runtime.js +2 -2
- package/dist/selection/terminal-selection.d.ts +2 -1
- package/dist/{terminal-selection-BCOh9jsL.js → terminal-selection-DBinO6p5.js} +3 -2
- package/dist/tlog-theme-CvLFNMwk.js +9693 -0
- package/dist/trace-CjzYeIxN.js +182 -0
- package/dist/utils/grapheme.d.ts +5 -0
- package/dist/vue/agent/view-models.d.ts +98 -0
- package/dist/vue/components/TAnchor.d.ts +7 -7
- package/dist/vue/components/TCommandPalette.d.ts +587 -0
- package/dist/vue/components/TDataTable.d.ts +367 -0
- package/dist/vue/components/TDebugOverlay.d.ts +1 -1
- package/dist/vue/components/TDialog.d.ts +16 -17
- package/dist/vue/components/TFeedback.d.ts +635 -0
- package/dist/vue/components/TForm.d.ts +1230 -0
- package/dist/vue/components/TInput.d.ts +50 -59
- package/dist/vue/components/TInputBox.d.ts +6 -6
- package/dist/vue/components/TJsonEditor.d.ts +4 -4
- package/dist/vue/components/TLink.d.ts +239 -0
- package/dist/vue/components/TLinkifyText.d.ts +141 -0
- package/dist/vue/components/TList.d.ts +5 -5
- package/dist/vue/components/TLogLinksPanel.d.ts +4 -4
- package/dist/vue/components/TLogMinimap.d.ts +10 -10
- package/dist/vue/components/TLogScrollbar.d.ts +12 -12
- package/dist/vue/components/TLogSearchBar.d.ts +7 -7
- package/dist/vue/components/TLogSearchResults.d.ts +6 -6
- package/dist/vue/components/TLogView.d.ts +54 -20
- package/dist/vue/components/TLogVirtualLinksPanel.d.ts +4 -4
- package/dist/vue/components/TLogVirtualSearchResults.d.ts +4 -4
- package/dist/vue/components/TMarkdownText.d.ts +3 -3
- package/dist/vue/components/TNavigation.d.ts +324 -0
- package/dist/vue/components/TOverlay.d.ts +366 -0
- package/dist/vue/components/TPanels.d.ts +244 -0
- package/dist/vue/components/TPathPicker.d.ts +22 -22
- package/dist/vue/components/TSelect.d.ts +140 -20
- package/dist/vue/components/TTable.d.ts +317 -0
- package/dist/vue/components/TText.d.ts +1 -1
- package/dist/vue/components/TThinkingView.d.ts +233 -0
- package/dist/vue/components/TToolCallView.d.ts +384 -0
- package/dist/vue/components/TTranscriptView.d.ts +221 -0
- package/dist/vue/components/TTree.d.ts +200 -0
- package/dist/vue/components/TUserMessageView.d.ts +344 -0
- package/dist/vue/components/TView.d.ts +11 -11
- package/dist/vue/components/TVirtualList.d.ts +5 -5
- package/dist/vue/components/TVirtualMarkdown.d.ts +6 -6
- package/dist/vue/components/TVirtualRows.d.ts +265 -0
- package/dist/vue/components/TerminalProvider.d.ts +23 -0
- package/dist/vue/components/link/host.d.ts +15 -0
- package/dist/vue/components/simple-utils.d.ts +5 -0
- package/dist/vue/index.d.ts +31 -1
- package/dist/vue/linkify.d.ts +11 -0
- package/dist/vue/markdown/document.d.ts +2 -0
- package/dist/vue/markdown/layout.d.ts +6 -1
- package/dist/vue/markdown/types.d.ts +12 -0
- package/dist/vue/overlay.d.ts +27 -0
- package/dist/vue/theme.d.ts +48 -0
- package/dist/vue/transcript/hit-regions.d.ts +2 -0
- package/dist/vue/transcript/layout.d.ts +20 -0
- package/dist/vue/transcript/plain-text.d.ts +2 -0
- package/dist/vue/transcript/types.d.ts +126 -0
- package/dist/vue/utils/row-scroll.d.ts +25 -0
- package/dist/vue/utils/text.d.ts +1 -0
- package/dist/vue.cjs +17147 -12222
- package/dist/vue.d.cts +0 -2
- package/dist/vue.d.ts +0 -2
- package/dist/vue.js +918 -27
- package/dist/{wheel-scroll-B-WlFuNB.js → wheel-scroll-vBRaQ7p-.js} +48 -43
- package/package.json +29 -8
- package/dist/frame-perf-C-w8mjJL.js +0 -98
- package/dist/style-cache-i0ZABZRq.js +0 -178
- /package/dist/{sgr-DMK2AvuT.js → sgr-BmzxEjAO.js} +0 -0
package/README.md
CHANGED
|
@@ -35,9 +35,10 @@ Development, release validation, and documentation builds are run on Node.js 20
|
|
|
35
35
|
| `@simon_he/vue-tui/observability` | Advanced | Frame perf store, profiler hooks, and trace helpers |
|
|
36
36
|
| `@simon_he/vue-tui/cli` | Public | Node-only headless Vue app runtime, stdin driver, stdout renderer, path provider, recording, and terminal clipboard helpers |
|
|
37
37
|
| `@simon_he/vue-tui/markdown` | Public | `TMarkdownText`, `TVirtualMarkdown`, markdown parser and layout helpers, streaming markdown block sources |
|
|
38
|
-
| `@simon_he/vue-tui/experimental` | Experimental | `TVirtualList`, `TLogView`, TLog search/link/minimap companions, append-only log store, and TLog plugins
|
|
38
|
+
| `@simon_he/vue-tui/experimental` | Experimental | `TVirtualList`, `TTranscriptView`, `TLogView`, TLog search/link/minimap companions, append-only log store, and TLog plugins |
|
|
39
|
+
| `@simon_he/vue-tui/agent` | Experimental | Agent/console transcript, tool-call header, log, markdown, virtual list, render plane, and overlay component aggregation |
|
|
39
40
|
|
|
40
|
-
The stable surface is terminal core, DOM rendering, CLI runtime, basic Vue components, and markdown APIs. High-throughput log and
|
|
41
|
+
The stable surface is terminal core, DOM rendering, CLI runtime, basic Vue components, and markdown APIs. High-throughput log, virtualization, and agent/console aggregation APIs stay under `/experimental` or `/agent` until their public surface settles; keep those imports isolated in application code.
|
|
41
42
|
|
|
42
43
|
Do not deep import from `@simon_he/vue-tui/dist/...`; only the entry points above are part of the supported package contract.
|
|
43
44
|
|
|
@@ -91,14 +92,16 @@ import { TAnchor, TFlow } from "@simon_he/vue-tui/vue";
|
|
|
91
92
|
|
|
92
93
|
DOM renderer link rendering is opt-in through `domRendererOptions.links`. Once enabled, DOM anchors allow safe absolute and relative targets such as `https:`, `http:`, `mailto:`, `/path`, `./path`, `../path`, `#hash`, and `?q=1`. Link callbacks preserve native browser behavior unless they return `false`.
|
|
93
94
|
|
|
94
|
-
CLI/stdout rendering uses OSC8 hyperlinks and keeps a stricter boundary: only safe absolute `https:`, `http:`, and `mailto:` hrefs are emitted by default. `file:` links stay opt-in for terminal-specific providers.
|
|
95
|
+
CLI/stdout rendering uses OSC8 hyperlinks and keeps a stricter boundary: only safe absolute `https:`, `http:`, and `mailto:` hrefs are emitted by default. `file:` links stay opt-in for terminal-specific providers and lower-level `Style.href` writers.
|
|
96
|
+
|
|
97
|
+
`TLink` is the public component-level link primitive. It renders DOM-safe `Style.href` metadata for absolute `https:` / `http:` / `mailto:` and relative targets, supports focus, click, keyboard activation, and host-controlled attempted opens through `TerminalProvider.linkOpener` or `createTerminalApp({ linkOpener })`. `TLinkifyText` detects safe URLs in plain text and writes the same href metadata without owning activation. Browser `TerminalProvider` defaults to `window.open`; CLI/headless apps must opt in. `TLink` intentionally rejects `file:` URLs; use lower-level `Style.href` writers plus terminal-specific opt-in when exposing file links.
|
|
95
98
|
|
|
96
99
|
## Browser Usage
|
|
97
100
|
|
|
98
101
|
```vue
|
|
99
102
|
<script setup lang="ts">
|
|
100
103
|
import { ref } from "vue";
|
|
101
|
-
import { TerminalProvider, TBox, TInput, TText } from "@simon_he/vue-tui";
|
|
104
|
+
import { TerminalProvider, TBox, TInput, TLink, TLinkifyText, TText } from "@simon_he/vue-tui";
|
|
102
105
|
|
|
103
106
|
const input = ref("");
|
|
104
107
|
</script>
|
|
@@ -107,6 +110,8 @@ const input = ref("");
|
|
|
107
110
|
<TerminalProvider :cols="80" :rows="24" :default-style="{ fg: 'whiteBright' }">
|
|
108
111
|
<TBox :x="0" :y="0" :w="80" :h="24" border title="Demo" :padding="1">
|
|
109
112
|
<TText :x="0" :y="0" :w="78" value="Vue TUI is running" />
|
|
113
|
+
<TLink :x="0" :y="2" href="https://github.com/Simon-He95/vue-tui" label="Project link" />
|
|
114
|
+
<TLinkifyText :x="0" :y="3" :w="78" value="Docs: https://github.com/Simon-He95/vue-tui" />
|
|
110
115
|
<TInput :x="0" :y="20" :w="78" v-model="input" placeholder="Type..." />
|
|
111
116
|
</TBox>
|
|
112
117
|
</TerminalProvider>
|
|
@@ -198,16 +203,17 @@ Unhandled promise rejections stay host-owned by default. Setting `cleanupOnUnhan
|
|
|
198
203
|
| Area | Import | Components / APIs |
|
|
199
204
|
| -------------- | -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
200
205
|
| Stable layout | `@simon_he/vue-tui` | `TBox`, `TView` |
|
|
201
|
-
| Stable text | `@simon_he/vue-tui` | `TText`
|
|
206
|
+
| Stable text | `@simon_he/vue-tui` | `TText`, `TLink`, `TLinkifyText` |
|
|
202
207
|
| Stable input | `@simon_he/vue-tui` | `TInput`, `TList`, `TSelect` |
|
|
203
208
|
| Stable overlay | `@simon_he/vue-tui` | `TDialog` |
|
|
204
209
|
| Vue extended | `@simon_he/vue-tui/vue` | `TAnchor`, `TFlow`, `TRenderPlane`, `TRenderLayer`, `TTransition`, `TInputBox`, `TPathPicker`, `TJsonEditor`, `TMultilineModal`, `TDebugOverlay`, composables, router APIs |
|
|
205
210
|
| Markdown | `@simon_he/vue-tui/markdown` | `TMarkdownText`, `TVirtualMarkdown` |
|
|
206
|
-
| Experimental | `@simon_he/vue-tui/experimental` | `TVirtualList`, `TLogView`, `TLogSearchBar`, `TLogLinksPanel`, `TLogScrollbar`, `TLogMinimap`
|
|
211
|
+
| Experimental | `@simon_he/vue-tui/experimental` | `TVirtualList`, `TTranscriptView`, `TLogView`, `TLogSearchBar`, `TLogLinksPanel`, `TLogScrollbar`, `TLogMinimap` |
|
|
212
|
+
| Agent console | `@simon_he/vue-tui/agent` | `TAgentTranscript`, `TToolCallView`, `TToolLogView`, `TVirtualMarkdown`, `TVirtualList`, `TRenderPlane` |
|
|
207
213
|
| Runtime | `@simon_he/vue-tui/runtime` | runtime, event, and selection APIs |
|
|
208
214
|
| CLI | `@simon_he/vue-tui/cli` | `createTerminalApp`, `createStdoutRenderer`, `createStdinDriver`, Node host adapters |
|
|
209
215
|
|
|
210
|
-
|
|
216
|
+
This table is a category overview. The generated API reference for root, `/vue`, and `/experimental` components lives in [docs/generated/components-api.md](./docs/generated/components-api.md) for humans and [docs/generated/api-manifest.json](./docs/generated/api-manifest.json) for CI, release checks, and README/docs drift checks; the manifest also tracks package entrypoint exports.
|
|
211
217
|
|
|
212
218
|
## Documentation
|
|
213
219
|
|
|
@@ -217,6 +223,8 @@ See [docs/components.md](./docs/components.md) and [docs/generated/components-ap
|
|
|
217
223
|
| [Examples index](./docs/examples.md) | Browser, terminal, and smoke example commands |
|
|
218
224
|
| [Core API](./docs/api.md) | Terminal, renderer, events, runtime, planes, and scheduler contracts |
|
|
219
225
|
| [Performance](./docs/performance.md) | Practical performance guidance |
|
|
226
|
+
| [Benchmarks](./docs/benchmarks.md) | Release benchmark budgets, sample results, and comparison boundaries |
|
|
227
|
+
| [OpenTUI Solid comparison](./docs/compare-opentui-solid.md) | Same-scenario comparison protocol and public claim boundaries |
|
|
220
228
|
| [High-throughput rendering](./docs/high-throughput-rendering.md) | Scheduler, dirty rows, mailbox, log, and renderer architecture |
|
|
221
229
|
| [Component acceptance](./docs/components-acceptance.md) | Release readiness checks for component API and behavior |
|
|
222
230
|
| [Agent Console](./docs/agent-console.md) | Streaming transcript example stack |
|
|
@@ -237,6 +245,7 @@ pnpm -C examples/basic dev
|
|
|
237
245
|
pnpm run build:examples
|
|
238
246
|
pnpm run build:examples:terminal
|
|
239
247
|
pnpm run run:basic:terminal
|
|
248
|
+
pnpm run run:agent-console:terminal
|
|
240
249
|
pnpm run example:tlog-view-lab
|
|
241
250
|
pnpm run example:agent-console
|
|
242
251
|
pnpm run example:agent-console:smoke
|
|
@@ -296,7 +305,7 @@ pnpm run release:dry-run
|
|
|
296
305
|
## Package Notes
|
|
297
306
|
|
|
298
307
|
- The published package ships `dist` only.
|
|
299
|
-
- Root, core, runtime, DOM renderer, observability, Vue, CLI, markdown, and
|
|
308
|
+
- Root, core, runtime, DOM renderer, observability, Vue, CLI, markdown, experimental, and agent entrypoints are available as ESM, CJS, and type declarations after build.
|
|
300
309
|
- The root browser/core API does not require a Node runtime, but CLI usage expects a Node-like stdout/stdin environment.
|
|
301
310
|
- Terminal emoji and East Asian width behavior still depends on the user terminal and font.
|
|
302
311
|
|