@valyrianjs/terminal 0.2.1 → 0.2.3

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 (89) hide show
  1. package/dist/ansi.d.ts.map +1 -1
  2. package/dist/ansi.js +177 -17
  3. package/dist/ansi.js.map +1 -1
  4. package/dist/events.d.ts.map +1 -1
  5. package/dist/events.js +4 -0
  6. package/dist/events.js.map +1 -1
  7. package/dist/frame-style.d.ts +7 -0
  8. package/dist/frame-style.d.ts.map +1 -0
  9. package/dist/frame-style.js +27 -0
  10. package/dist/frame-style.js.map +1 -0
  11. package/dist/layout.d.ts +5 -1
  12. package/dist/layout.d.ts.map +1 -1
  13. package/dist/layout.js +53 -23
  14. package/dist/layout.js.map +1 -1
  15. package/dist/mouse.d.ts.map +1 -1
  16. package/dist/mouse.js +8 -1
  17. package/dist/mouse.js.map +1 -1
  18. package/dist/render-internal.d.ts +10 -0
  19. package/dist/render-internal.d.ts.map +1 -0
  20. package/dist/render-internal.js +1295 -0
  21. package/dist/render-internal.js.map +1 -0
  22. package/dist/render.d.ts.map +1 -1
  23. package/dist/render.js +13 -1205
  24. package/dist/render.js.map +1 -1
  25. package/dist/session.d.ts.map +1 -1
  26. package/dist/session.js +78 -4
  27. package/dist/session.js.map +1 -1
  28. package/dist/text.d.ts +7 -0
  29. package/dist/text.d.ts.map +1 -1
  30. package/dist/text.js +125 -0
  31. package/dist/text.js.map +1 -1
  32. package/dist/theme.d.ts.map +1 -1
  33. package/dist/theme.js +18 -2
  34. package/dist/theme.js.map +1 -1
  35. package/dist/types.d.ts +3 -2
  36. package/dist/types.d.ts.map +1 -1
  37. package/docs/api-reference.md +6 -3
  38. package/docs/cookbook.md +1 -1
  39. package/docs/interaction-model.md +5 -5
  40. package/docs/primitive-gallery.md +4 -4
  41. package/examples/basic.tsx +22 -0
  42. package/examples/cli.tsx +55 -0
  43. package/examples/demo.tsx +98 -0
  44. package/examples/docs/background-fill.tsx +107 -0
  45. package/examples/docs/component-composition.tsx +140 -0
  46. package/examples/docs/cursor.tsx +121 -0
  47. package/examples/docs/employees-list.tsx +138 -0
  48. package/examples/docs/hello.tsx +98 -0
  49. package/examples/docs/interactive-note.tsx +111 -0
  50. package/examples/docs/module-api-dashboard.tsx +307 -0
  51. package/examples/docs/module-flux-store.tsx +181 -0
  52. package/examples/docs/module-form-workflow.tsx +339 -0
  53. package/examples/docs/module-forms.tsx +218 -0
  54. package/examples/docs/module-money.tsx +175 -0
  55. package/examples/docs/module-native-store.tsx +188 -0
  56. package/examples/docs/module-pulses.tsx +142 -0
  57. package/examples/docs/module-query.tsx +209 -0
  58. package/examples/docs/module-request.tsx +194 -0
  59. package/examples/docs/module-state-workbench.tsx +283 -0
  60. package/examples/docs/module-tasks.tsx +223 -0
  61. package/examples/docs/module-translate.tsx +194 -0
  62. package/examples/docs/module-utils.tsx +168 -0
  63. package/examples/docs/module-valyrian-core.tsx +159 -0
  64. package/examples/docs/pizza-builder.tsx +463 -0
  65. package/examples/docs/primitive-activity-console.tsx +113 -0
  66. package/examples/docs/primitive-command-panel.tsx +186 -0
  67. package/examples/docs/primitive-data-explorer.tsx +155 -0
  68. package/examples/docs/primitive-input-workbench.tsx +128 -0
  69. package/examples/docs/primitive-layout-shell.tsx +115 -0
  70. package/examples/docs/responsive-split.tsx +186 -0
  71. package/examples/docs/style-system.tsx +209 -0
  72. package/examples/docs/theme-colors.tsx +225 -0
  73. package/examples/docs/virtualized-list-workbench.tsx +232 -0
  74. package/examples/opencode-dogfood-app.tsx +215 -0
  75. package/examples/opencode-dogfood-lifecycle.tsx +194 -0
  76. package/examples/opencode-dogfood.tsx +11 -0
  77. package/llms-full.txt +16 -13
  78. package/package.json +3 -2
  79. package/src/ansi.ts +207 -17
  80. package/src/events.ts +2 -0
  81. package/src/frame-style.ts +36 -0
  82. package/src/layout.ts +57 -24
  83. package/src/mouse.ts +10 -1
  84. package/src/render-internal.ts +1441 -0
  85. package/src/render.ts +14 -1324
  86. package/src/session.ts +99 -12
  87. package/src/text.ts +160 -0
  88. package/src/theme.ts +22 -2
  89. package/src/types.ts +3 -2
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -105,7 +105,7 @@ Use `style`, `styles`, and `state` for normal component styling:
105
105
  - `styles` maps visual states to dot path recipes or inline style objects.
106
106
  - `state` declares app-owned states such as `loading`, `warning`, `success`, `muted`, `expanded`, or `dropTarget`.
107
107
 
108
- Renderer-owned states come from the runtime when the renderer has the fact itself. Focus, hover, selection, current rows, and pointer capture fall in this group when the primitive supports them. App-owned state should describe product state that the app already knows. Do not mark a ready button as `loading` or an editable field as `readonly`; that teaches a lie to the UI and then the UI repeats it with confidence.
108
+ Renderer-owned states come from the runtime when the renderer has the fact itself. Focus, hover, selection, current rows, and pointer capture fall in this group when the primitive supports them. App-owned state should describe product state that the app already knows. Do not use app-owned states for conditions that are not true. For example, do not mark a ready button as `loading` or an editable field as `readonly`.
109
109
 
110
110
  Precedence: the renderer starts with the automatic `<element>.base` recipe when the primitive has one, applies the instance `style`, then applies `styles` entries for current states in stable visual-state order. Geometry fields such as supported padding and border come from the automatic base recipe plus the instance `style` so layout, hitboxes, and cursors stay stable across focus, hover, and pressed state changes. State styles affect the rendered spans after layout; later current states override earlier visual fields when they set the same property. Inline style objects and dot path recipes use the same merge path after resolution.
111
111
 
@@ -114,6 +114,7 @@ Renderer notes:
114
114
  - Raw ANSI escape control is not the normal public styling API. Use semantic styles and let `ansiOutput()` serialize frames.
115
115
  - Layout margin is not supported; use padding, `gap`, `Fixed`, `Split`, or explicit text spacing.
116
116
  - The renderer owns terminal frame spans, clipping, focus, and selection; the app owns business state and labels.
117
+ - When a styled public primitive resolves a final frame, its background spans cover that final frame, including cells introduced by layout composition, clipping, or fill. Child backgrounds cover their cells and parent backgrounds resume after child spans close in ANSI output.
117
118
 
118
119
  Run `bun examples/docs/style-system.tsx`, try `Tab`, `Enter`, and `W`, and quit with `Ctrl+C`; or open [`examples/docs/style-system.tsx`](../examples/docs/style-system.tsx). Run `bun examples/docs/theme-colors.tsx`, press `Tab`, and quit with `Ctrl+C`; or open [`examples/docs/theme-colors.tsx`](../examples/docs/theme-colors.tsx).
119
120
 
@@ -294,7 +295,9 @@ Props:
294
295
  - `focusable?: boolean`
295
296
  - `value?: string`
296
297
  - `placeholder?: string`
298
+ - `width?: number`
297
299
  - `height?: number`
300
+ - `fill?: boolean`
298
301
  - shared visual props: `style`, `styles`, `state`
299
302
  - `onchange?(event)`
300
303
  - `oninput?(event)`
@@ -307,7 +310,7 @@ Payloads:
307
310
  - `TerminalEditorSubmitEventPayload` - `{ type: "submit", id, value }`
308
311
  - `TerminalEditorCancelEventPayload` - `{ type: "cancel", id, value }`
309
312
 
310
- Supports multiline editing, submit, cancel, cursor movement, paste, and deletion. Cursor columns use JavaScript string columns rather than a complete terminal-width model.
313
+ Supports multiline editing, submit, cancel, cursor movement, paste, and deletion. Without `fill`, `width`, or `height`, `Editor` keeps content-sized rendering. `height` constrains the multiline viewport, `width` fixes the final frame width, and `fill` uses the available render context for both axes. Explicit `width` and `height` win over `fill`; for example, `fill` plus `height` fills only the width. Use `Editor` for textarea-like surfaces; `Input` remains the single-line primitive. Cursor columns use JavaScript string columns rather than a complete terminal-width model.
311
314
 
312
315
  ### `Button`
313
316
 
@@ -364,7 +367,7 @@ Payloads:
364
367
  - `TerminalListPointerEventPayload<T>` - `{ type: "hover" | "rowenter" | "rowleave", id, row, index, key?, value, x, y }`
365
368
  - `TerminalCaptureEventPayload` - `{ type: "capturestart" | "captureend", id, source, row, x, y }`
366
369
 
367
- Supports internal active row movement, internal selection, activation, double press on the same row, context press for the target row, hover payloads, optional wrapping, optional virtualization, viewport scroll, and pointer capture. `Up`/`Down`, `PageUp`, `PageDown`, `Home`, and `End` are built-in list navigation keys; `Left` and `Right` stay available for application bindings. Keyboard navigation moves the active row and emits `change`; `Enter` selects and activates the active row. Pointer click selects and activates the clicked row. A quick second primary click on the same row emits `doublepress` without a second `press`. The default renderer displays the active row as `list.current`; when the selected row differs from the active row, it displays the selected row as `list.selected`. A JSX `children` callback is the recommended item renderer and wins over `renderItem` when both are present. `children` receives `ctx.active` and `ctx.selected` separately. `renderItem` remains as a compatibility alias with the legacy `(item, index)` signature. `wrap` wraps long default-rendered item text to the list width. Virtualized lists receive the full `items` array and calculate the visible viewport internally; use `itemKey` for stable event identity when items can reorder. Observe the resulting active row, selected row, and viewport through the list event payloads. Run [`examples/docs/virtualized-list-workbench.tsx`](../examples/docs/virtualized-list-workbench.tsx) with `bun examples/docs/virtualized-list-workbench.tsx` to inspect those values from events in one bounded split layout.
370
+ Supports active row movement, selection, activation, double press on the same row, context press for the target row, hover payloads, optional wrapping, optional virtualization, viewport scroll, and pointer capture. `Up`/`Down`, `PageUp`, `PageDown`, `Home`, and `End` are built-in list navigation keys; `Left`, `Right`, `Shift+Up`, and `Shift+Down` stay available for application bindings. The library never reorders or mutates list items from modified arrow keys by default; priority changes and reordering belong in app-defined commands. Keyboard navigation moves the active row and emits `change`; `Enter` selects and activates the active row. Pointer click selects and activates the clicked row. A quick second primary click on the same row emits `doublepress` without a second `press`. The default renderer displays the active row as `list.current`; when the selected row differs from the active row, it displays the selected row as `list.selected`. A JSX `children` callback is the recommended item renderer and wins over `renderItem` when both are present. `children` receives `ctx.active` and `ctx.selected` separately. `renderItem` remains as a compatibility alias with the legacy `(item, index)` signature. `wrap` wraps long default-rendered item text to the list width. Virtualized lists receive the full `items` array and render the visible viewport; use `itemKey` for stable event identity when items can reorder. Observe the resulting active row, selected row, and viewport through the list event payloads. Run [`examples/docs/virtualized-list-workbench.tsx`](../examples/docs/virtualized-list-workbench.tsx) with `bun examples/docs/virtualized-list-workbench.tsx` to inspect those values from events in one bounded split layout.
368
371
 
369
372
  ### `ScrollView`
370
373
 
package/docs/cookbook.md CHANGED
@@ -84,7 +84,7 @@ console.log(session.output());
84
84
  session.destroy();
85
85
  ```
86
86
 
87
- For large lists, add `virtualized` and place the list in a bounded region such as a filled pane or split. The virtualized workbench shows the normal uncontrolled API with `itemKey`, the `children` callback, event observation, and internal active, selected, and viewport state: [`examples/docs/virtualized-list-workbench.tsx`](../examples/docs/virtualized-list-workbench.tsx). Run it with `bun examples/docs/virtualized-list-workbench.tsx`, move active rows with `J/K` or `Up`/`Down`, jump with `PageUp`, `PageDown`, `Home`, or `End`, select with `Enter`, and quit with `Ctrl+C`.
87
+ For large lists, add `virtualized` and place the list in a bounded region such as a filled pane or split. The virtualized workbench demonstrates the uncontrolled List API with `itemKey`, the `children` callback, event payloads, active row, selected row, and viewport values: [`examples/docs/virtualized-list-workbench.tsx`](../examples/docs/virtualized-list-workbench.tsx). Shift+Up and Shift+Down are available for custom app actions. The List does not reorder items by default. Run it with `bun examples/docs/virtualized-list-workbench.tsx`, move active rows with `J/K` or `Up`/`Down`, jump with `PageUp`, `PageDown`, `Home`, or `End`, select with `Enter`, and quit with `Ctrl+C`.
88
88
 
89
89
  ## Local state to Valyrian state module bridge
90
90
 
@@ -12,7 +12,7 @@ This guide explains how interactive primitives receive input and report events.
12
12
 
13
13
  ## Input events
14
14
 
15
- Keyboard dispatch uses normalized key names such as `ENTER`, `TAB`, `SHIFT_TAB`, `LEFT`, `RIGHT`, `CTRL_V`, and single-character strings. When a session is connected to `stdin`, terminal input is parsed and routed to the focused primitive.
15
+ Keyboard dispatch uses normalized key names such as `ENTER`, `TAB`, `SHIFT_TAB`, `LEFT`, `RIGHT`, `SHIFT_UP`, `SHIFT_DOWN`, `CTRL_V`, and single-character strings. When a session is connected to `stdin`, terminal input is parsed and routed to the focused primitive.
16
16
 
17
17
  Pasted text is treated as text input for the focused primitive. Do not treat pasted strings or key sequences as terminal control instructions inside rendered content.
18
18
 
@@ -52,7 +52,7 @@ Main handlers:
52
52
 
53
53
  ### `Editor`
54
54
 
55
- `Editor` is a multiline editing primitive.
55
+ `Editor` is a multiline editing primitive. Use `height` for a bounded multiline viewport, `width` for a fixed frame width, and `fill` when the editor should behave like a textarea surface that consumes available width and height. Explicit dimensions win over `fill`; without those props, existing content-sized rendering stays intact.
56
56
 
57
57
  Supported behavior includes:
58
58
 
@@ -93,13 +93,13 @@ A quick second primary mouse press keeps the normal activation behavior and also
93
93
 
94
94
  ### `List`
95
95
 
96
- `List` models active row movement, optional visible selection, viewport scroll, and activation. In virtualized mode the component receives the full `items` array and owns the viewport; wheel input moves the viewport, while keyboard list commands move the active row and emit `change`. A JSX `children` callback receives `(item, ctx)` with `ctx.active`, `ctx.selected`, `ctx.index`, `ctx.key`, and `ctx.viewportIndex`; it takes precedence over `renderItem`. Use `itemKey` when rows have stable identities across reorder or filtering.
96
+ `List` models active row movement, optional visible selection, viewport scroll, and activation. In virtualized mode, pass the full `items` array; the list shows the visible viewport, wheel input scrolls it, and keyboard list commands move the active row and emit `change`. A JSX `children` callback receives `(item, ctx)` with `ctx.active`, `ctx.selected`, `ctx.index`, `ctx.key`, and `ctx.viewportIndex`; it takes precedence over `renderItem`. Use `itemKey` when rows have stable identities across reorder or filtering.
97
97
 
98
98
  Supported behavior includes:
99
99
 
100
100
  - `UP` and `DOWN` move the active row and emit `onchange`
101
101
  - `PageUp`, `PageDown`, `Home`, and `End` jump the active row and keep it visible
102
- - `LEFT` and `RIGHT` have no default list command, so applications can bind them
102
+ - `LEFT`, `RIGHT`, `SHIFT_UP`, and `SHIFT_DOWN` have no default list command, so applications can bind them
103
103
  - `ENTER` selects and activates the active row
104
104
  - mouse click selects and activates the target row
105
105
  - mouse hover reports row details when mouse input is connected
@@ -118,7 +118,7 @@ Main handlers:
118
118
  - `oncapturestart`
119
119
  - `oncaptureend`
120
120
 
121
- `pointerCapture` lets a list keep drag interaction even when the pointer leaves the initial hitbox.
121
+ `pointerCapture` lets a list keep drag interaction even when the pointer leaves the initial hitbox. If your app needs reordering, priority changes, or other modified-arrow behavior, bind `SHIFT_UP` or `SHIFT_DOWN` through `keymap.bindings` and handle the custom command in `keymap.onCommand`. The list will not mutate item order by default.
122
122
 
123
123
  ### `ScrollView`
124
124
 
@@ -176,12 +176,12 @@ Use `Editor` for notes, descriptions, and longer messages.
176
176
 
177
177
  **What it is:** A multi-line editable field.
178
178
  **Use it for:** notes, descriptions, and longer messages.
179
- **Core props:** `id`, `value`, `placeholder`, `height`, `onchange`, `oninput`, `onsubmit`, `oncancel`.
179
+ **Core props:** `id`, `value`, `placeholder`, `width`, `height`, `fill`, `onchange`, `oninput`, `onsubmit`, `oncancel`.
180
180
 
181
181
  **Minimal example:**
182
182
 
183
183
  ```tsx
184
- <Editor id="details" height={4} value={details} onchange={(event) => { details = event.value; }} />
184
+ <Editor id="details" fill height={4} value={details} onchange={(event) => { details = event.value; }} />
185
185
  ```
186
186
 
187
187
  **Complete demo:** [`examples/docs/primitive-input-workbench.tsx`](../examples/docs/primitive-input-workbench.tsx). Run it with `bun examples/docs/primitive-input-workbench.tsx` and quit with `Ctrl+C`.
@@ -228,7 +228,7 @@ Use `List` for menus, choosers, command lists, and item browsers.
228
228
 
229
229
  **What it is:** A focusable collection control with selection and press events.
230
230
  **Use it for:** menus, choosers, command lists, and item browsers.
231
- **Core props:** `id`, `items`, `children` callback, `renderItem`, `itemKey`, `virtualized`, `showActive`, `onchange`, `onviewportchange`, `onpress`, `ondoublepress`, `oncontextpress`. `List` owns its active row, selected row, and viewport state internally; observe those values from event payloads.
231
+ **Core props:** `id`, `items`, `children` callback, `renderItem`, `itemKey`, `virtualized`, `showActive`, `onchange`, `onviewportchange`, `onpress`, `ondoublepress`, `oncontextpress`. `List` manages its active row, selected row, and viewport state. Read those values from event payloads.
232
232
 
233
233
  **Minimal example:**
234
234
 
@@ -240,7 +240,7 @@ Use `List` for menus, choosers, command lists, and item browsers.
240
240
 
241
241
  **Complete demo:** [`examples/docs/primitive-data-explorer.tsx`](../examples/docs/primitive-data-explorer.tsx). Run it with `bun examples/docs/primitive-data-explorer.tsx` and quit with `Ctrl+C`.
242
242
 
243
- **Virtualized demo:** [`examples/docs/virtualized-list-workbench.tsx`](../examples/docs/virtualized-list-workbench.tsx). Run it with `bun examples/docs/virtualized-list-workbench.tsx`, move active rows with `J/K` or `Up`/`Down`, jump with `PageUp`, `PageDown`, `Home`, or `End`, select with `Enter`, and quit with `Ctrl+C`.
243
+ **Virtualized demo:** [`examples/docs/virtualized-list-workbench.tsx`](../examples/docs/virtualized-list-workbench.tsx). Run it with `bun examples/docs/virtualized-list-workbench.tsx`, move active rows with `J/K` or `Up`/`Down`, jump with `PageUp`, `PageDown`, `Home`, or `End`, select with `Enter`, and quit with `Ctrl+C`. `Shift+Up` and `Shift+Down` are shown as app-defined commands, not built-in reorder behavior.
244
244
 
245
245
  ### `Table`
246
246
 
@@ -0,0 +1,22 @@
1
+ import { mountTerminal } from "../dist/index.js";
2
+ import { createDemoState, DemoApp, renderDemoSnapshot } from "./demo.js";
3
+
4
+ const state = createDemoState();
5
+
6
+ if (process.argv.includes("--snapshot")) {
7
+ console.log(renderDemoSnapshot(state));
8
+ } else {
9
+ const session = mountTerminal(() => <DemoApp state={state} />, {
10
+ stdin: process.stdin,
11
+ stdout: process.stdout
12
+ });
13
+
14
+ session.focus("name");
15
+
16
+ const shutdown = () => {
17
+ session.destroy();
18
+ process.exit(0);
19
+ };
20
+
21
+ process.on("SIGINT", shutdown);
22
+ }
@@ -0,0 +1,55 @@
1
+ #!/usr/bin/env bun
2
+ import { mountTerminal } from "../dist/index.js";
3
+ import { createDemoState, DemoApp, renderDemoSnapshot } from "./demo.js";
4
+
5
+ export function shouldExitCliChunk(chunk: string | Uint8Array) {
6
+ const value = typeof chunk === "string" ? chunk : Buffer.from(chunk).toString("utf8");
7
+ if (value.length !== 1) {
8
+ return false;
9
+ }
10
+ const code = value.charCodeAt(0);
11
+ return code === 27 || code === 3;
12
+ }
13
+
14
+ function printHelp() {
15
+ console.log("valyrianjs-terminal local demo");
16
+ console.log("");
17
+ console.log("Usage:");
18
+ console.log(" bun run examples/cli.tsx [--snapshot]");
19
+ console.log(" bun run examples/cli.tsx --help");
20
+ }
21
+
22
+ const args = new Set(process.argv.slice(2));
23
+
24
+ if (args.has("--help") || args.has("-h")) {
25
+ printHelp();
26
+ process.exit(0);
27
+ }
28
+
29
+ const state = createDemoState();
30
+
31
+ if (args.has("--snapshot")) {
32
+ console.log(renderDemoSnapshot(state));
33
+ } else {
34
+ const session = mountTerminal(() => <DemoApp state={state} />, {
35
+ stdin: process.stdin,
36
+ stdout: process.stdout
37
+ });
38
+
39
+ session.focus("menu");
40
+
41
+ const shutdown = () => {
42
+ process.stdin.off?.("data", onGlobalData);
43
+ session.destroy();
44
+ process.exit(0);
45
+ };
46
+
47
+ const onGlobalData = (chunk: string | Uint8Array) => {
48
+ if (shouldExitCliChunk(chunk)) {
49
+ shutdown();
50
+ }
51
+ };
52
+
53
+ process.stdin.on("data", onGlobalData);
54
+ process.on("SIGINT", shutdown);
55
+ }
@@ -0,0 +1,98 @@
1
+ import type {
2
+ TerminalInputChangeEventPayload,
3
+ TerminalInputSubmitEventPayload,
4
+ TerminalListChangeEventPayload,
5
+ TerminalListPressEventPayload
6
+ } from "../dist/index.js";
7
+ import { Button, Fixed, Input, List, mountTerminal, Pane, Row, Screen, ScrollView, Split, Table, Td, Text } from "../dist/index.js";
8
+
9
+ export function createDemoState() {
10
+ return {
11
+ name: "",
12
+ selected: "Inbox",
13
+ saved: "",
14
+ items: ["Inbox", "Today", "Done"],
15
+ shortcuts: [
16
+ ["Tab", "Move focus"],
17
+ ["Arrows", "Browse queue"],
18
+ ["Enter", "Activate/save"],
19
+ ["Esc", "Quit demo"]
20
+ ]
21
+ };
22
+ }
23
+
24
+ export function DemoApp(props: { state: ReturnType<typeof createDemoState> }) {
25
+ const { state } = props;
26
+
27
+ return (
28
+ <Screen>
29
+ <Fixed position="top" size={4}>
30
+ <Pane fill style="pane.header" padding={1}>
31
+ <Text>Valyrian Terminal Demo</Text>
32
+ <Text>Queue workbench for triage and quick entry</Text>
33
+ </Pane>
34
+ </Fixed>
35
+
36
+ <Split fill direction="row" gap={1}>
37
+ <Pane fill style="pane.transcript" padding={1}>
38
+ <Text>Queues</Text>
39
+ <Text>Arrow keys to browse</Text>
40
+ <List
41
+ id="menu"
42
+ items={state.items}
43
+ onchange={(event: TerminalListChangeEventPayload<string>) => (state.selected = event.value)}
44
+ onpress={(event: TerminalListPressEventPayload<string>) => (state.saved = `Opened:${event.value}`)}
45
+ />
46
+ </Pane>
47
+
48
+ <Pane fill style="pane.tools" padding={1}>
49
+ <Text>Quick Entry</Text>
50
+ <Text>{`Draft for ${state.selected}`}</Text>
51
+ <Input
52
+ id="name"
53
+ value={state.name}
54
+ placeholder="Write a quick note"
55
+ onchange={(event: TerminalInputChangeEventPayload) => (state.name = event.value)}
56
+ onsubmit={(event: TerminalInputSubmitEventPayload) => (state.saved = `Submitted:${event.value || state.selected}`)}
57
+ />
58
+ <Button id="save" onpress={() => (state.saved = `Saved:${state.name || state.selected}`)}>Save Current</Button>
59
+
60
+ <Text>Activity</Text>
61
+ <ScrollView id="details" height={4}>
62
+ <Text>{`Selected : ${state.selected}`}</Text>
63
+ <Text>{`Draft : ${state.name || "-"}`}</Text>
64
+ <Text>{`Saved : ${state.saved || "-"}`}</Text>
65
+ <Text>Tip : Press Tab to switch panels</Text>
66
+ <Text>Tip : Enter saves current value</Text>
67
+ </ScrollView>
68
+
69
+ <Text>Shortcuts</Text>
70
+ <Table v-for={state.shortcuts}>
71
+ {(row: string[]) => (
72
+ <Row>
73
+ <Td>{row[0]}</Td>
74
+ <Td>{row[1]}</Td>
75
+ </Row>
76
+ )}
77
+ </Table>
78
+ </Pane>
79
+ </Split>
80
+
81
+ <Fixed position="bottom" size={3}>
82
+ <Pane fill style="pane.prompt" padding={1}>
83
+ <Text>Tab move focus | Enter activate | Ctrl+C quit</Text>
84
+ </Pane>
85
+ </Fixed>
86
+ </Screen>
87
+ );
88
+ }
89
+
90
+ export function renderDemoSnapshot(state = createDemoState()) {
91
+ const session = mountTerminal(<DemoApp state={state} />, { cols: 80, rows: 24, clipboard: false });
92
+
93
+ try {
94
+ return session.output();
95
+ } finally {
96
+ session.destroy();
97
+ }
98
+ }
@@ -0,0 +1,107 @@
1
+ import { Pane, Screen, Text, mountTerminal } from "@valyrianjs/terminal";
2
+ import type { TerminalMountOptions, TerminalSession } from "@valyrianjs/terminal";
3
+
4
+ interface BackgroundFillState {
5
+ surface: "panel" | "card";
6
+ running: boolean;
7
+ }
8
+
9
+ export interface BackgroundFillDemo {
10
+ session: TerminalSession;
11
+ dispatchKey(key: string): string;
12
+ output(): string;
13
+ ansiOutput(): string;
14
+ isRunning(): boolean;
15
+ destroy(): void;
16
+ }
17
+
18
+ const theme = { styles: { pane: { main: { background: "#111111" }, card: { background: "#1f2937" } } } };
19
+
20
+ function createInitialState(): BackgroundFillState {
21
+ return { surface: "panel", running: true };
22
+ }
23
+
24
+ function shouldRunSnapshot() {
25
+ return process.argv.includes("--snapshot") || process.env.VALYRIAN_TERMINAL_EXAMPLE_SNAPSHOT === "1" || !process.stdin.isTTY;
26
+ }
27
+
28
+ export function App({ state }: { state: BackgroundFillState }) {
29
+ const isCard = state.surface === "card";
30
+
31
+ return (
32
+ <Screen title="Filled panel">
33
+ <Text>{isCard ? "Surface: card background" : "Surface: panel background"}</Text>
34
+ <Text>Look for the filled 34-column panel behind the content.</Text>
35
+ <Pane fill width={34} height={5} style={isCard ? "pane.card" : "pane.main"}>
36
+ <Text>{isCard ? "Card content" : "Panel content"}</Text>
37
+ </Pane>
38
+ <Text>B: switch surface Ctrl+C: quit</Text>
39
+ </Screen>
40
+ );
41
+ }
42
+
43
+ export function createBackgroundFillDemo(options: TerminalMountOptions = {}): BackgroundFillDemo {
44
+ const state = createInitialState();
45
+ let session: TerminalSession;
46
+
47
+ function quit() {
48
+ state.running = false;
49
+ session.destroy();
50
+ }
51
+
52
+ session = mountTerminal(<App state={state} />, {
53
+ theme,
54
+ ...options,
55
+ keymap: {
56
+ ...options.keymap,
57
+ bindings: [
58
+ ...(options.keymap?.bindings || []),
59
+ { key: "b", command: { id: "surface.switch" }, scope: "global" },
60
+ { key: "B", command: { id: "surface.switch" }, scope: "global" },
61
+ { key: "CTRL_C", command: { id: "quit" }, scope: "global" }
62
+ ],
63
+ onCommand(command, context) {
64
+ if (command.id === "surface.switch") {
65
+ state.surface = state.surface === "panel" ? "card" : "panel";
66
+ return true;
67
+ }
68
+ if (command.id === "quit") {
69
+ quit();
70
+ return true;
71
+ }
72
+ return options.keymap?.onCommand?.(command, context);
73
+ }
74
+ }
75
+ });
76
+
77
+ return {
78
+ session,
79
+ dispatchKey(key: string) {
80
+ return session.dispatchKey(key);
81
+ },
82
+ output() {
83
+ return session.output();
84
+ },
85
+ ansiOutput() {
86
+ return session.ansiOutput();
87
+ },
88
+ isRunning() {
89
+ return state.running;
90
+ },
91
+ destroy() {
92
+ state.running = false;
93
+ session.destroy();
94
+ }
95
+ };
96
+ }
97
+
98
+ if (import.meta.main) {
99
+ if (shouldRunSnapshot()) {
100
+ const demo = createBackgroundFillDemo({ runtime: "headless", cols: 42, rows: 9 });
101
+ process.stdout.write(demo.output());
102
+ process.stdout.write("\n");
103
+ demo.destroy();
104
+ } else {
105
+ createBackgroundFillDemo();
106
+ }
107
+ }
@@ -0,0 +1,140 @@
1
+ import { Screen, Text, mountTerminal } from "@valyrianjs/terminal";
2
+ import type { TerminalMountOptions, TerminalSession } from "@valyrianjs/terminal";
3
+
4
+ interface Profile {
5
+ name: string;
6
+ role: string;
7
+ status: string;
8
+ }
9
+
10
+ interface ComponentCompositionState {
11
+ selectedIndex: number;
12
+ running: boolean;
13
+ }
14
+
15
+ export interface ComponentCompositionDemo {
16
+ session: TerminalSession;
17
+ dispatchKey(key: string): string;
18
+ output(): string;
19
+ ansiOutput(): string;
20
+ isRunning(): boolean;
21
+ destroy(): void;
22
+ }
23
+
24
+ const profiles: Profile[] = [
25
+ { name: "Maya", role: "Engineering", status: "Ready" },
26
+ { name: "Ana", role: "Design", status: "Reviewing" },
27
+ { name: "Luis", role: "Support", status: "Helping customers" }
28
+ ];
29
+
30
+ function createInitialState(): ComponentCompositionState {
31
+ return { selectedIndex: 0, running: true };
32
+ }
33
+
34
+ function shouldRunSnapshot() {
35
+ return process.argv.includes("--snapshot") || process.env.VALYRIAN_TERMINAL_EXAMPLE_SNAPSHOT === "1" || !process.stdin.isTTY;
36
+ }
37
+
38
+ function StatusBadge({ status }: { status: string }) {
39
+ return <Text>Status: {status}</Text>;
40
+ }
41
+
42
+ function Greeting({ name }: { name: string }) {
43
+ return <Text>Hello, {name}</Text>;
44
+ }
45
+
46
+ function ProfileCard({ profile }: { profile: Profile }) {
47
+ return (
48
+ <>
49
+ <Greeting name={profile.name} />
50
+ <Text>Role: {profile.role}</Text>
51
+ <StatusBadge status={profile.status} />
52
+ </>
53
+ );
54
+ }
55
+
56
+ export function App({ state }: { state: ComponentCompositionState }) {
57
+ return (
58
+ <Screen title="Components">
59
+ <ProfileCard profile={profiles[state.selectedIndex]} />
60
+ <Text>N/P: switch card Ctrl+C: quit</Text>
61
+ </Screen>
62
+ );
63
+ }
64
+
65
+ export function createComponentCompositionDemo(options: TerminalMountOptions = {}): ComponentCompositionDemo {
66
+ const state = createInitialState();
67
+ let session: TerminalSession;
68
+
69
+ function quit() {
70
+ state.running = false;
71
+ session.destroy();
72
+ }
73
+
74
+ function move(delta: number) {
75
+ state.selectedIndex = (state.selectedIndex + delta + profiles.length) % profiles.length;
76
+ }
77
+
78
+ session = mountTerminal(<App state={state} />, {
79
+ ...options,
80
+ keymap: {
81
+ ...options.keymap,
82
+ bindings: [
83
+ ...(options.keymap?.bindings || []),
84
+ { key: "n", command: { id: "card.next" }, scope: "global" },
85
+ { key: "N", command: { id: "card.next" }, scope: "global" },
86
+ { key: "RIGHT", command: { id: "card.next" }, scope: "global" },
87
+ { key: "p", command: { id: "card.prev" }, scope: "global" },
88
+ { key: "P", command: { id: "card.prev" }, scope: "global" },
89
+ { key: "LEFT", command: { id: "card.prev" }, scope: "global" },
90
+ { key: "CTRL_C", command: { id: "quit" }, scope: "global" }
91
+ ],
92
+ onCommand(command, context) {
93
+ if (command.id === "card.next") {
94
+ move(1);
95
+ return true;
96
+ }
97
+ if (command.id === "card.prev") {
98
+ move(-1);
99
+ return true;
100
+ }
101
+ if (command.id === "quit") {
102
+ quit();
103
+ return true;
104
+ }
105
+ return options.keymap?.onCommand?.(command, context);
106
+ }
107
+ }
108
+ });
109
+
110
+ return {
111
+ session,
112
+ dispatchKey(key: string) {
113
+ return session.dispatchKey(key);
114
+ },
115
+ output() {
116
+ return session.output();
117
+ },
118
+ ansiOutput() {
119
+ return session.ansiOutput();
120
+ },
121
+ isRunning() {
122
+ return state.running;
123
+ },
124
+ destroy() {
125
+ state.running = false;
126
+ session.destroy();
127
+ }
128
+ };
129
+ }
130
+
131
+ if (import.meta.main) {
132
+ if (shouldRunSnapshot()) {
133
+ const demo = createComponentCompositionDemo({ runtime: "headless", cols: 44, rows: 8 });
134
+ process.stdout.write(demo.output());
135
+ process.stdout.write("\n");
136
+ demo.destroy();
137
+ } else {
138
+ createComponentCompositionDemo();
139
+ }
140
+ }