@valyrianjs/terminal 0.2.0 → 0.2.2
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/dist/ansi.d.ts +2 -0
- package/dist/ansi.d.ts.map +1 -1
- package/dist/ansi.js +23 -13
- package/dist/ansi.js.map +1 -1
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +10 -2
- package/dist/events.js.map +1 -1
- package/dist/frame-style.d.ts +7 -0
- package/dist/frame-style.d.ts.map +1 -0
- package/dist/frame-style.js +27 -0
- package/dist/frame-style.js.map +1 -0
- package/dist/keymap.d.ts.map +1 -1
- package/dist/keymap.js +4 -2
- package/dist/keymap.js.map +1 -1
- package/dist/layout.d.ts +5 -1
- package/dist/layout.d.ts.map +1 -1
- package/dist/layout.js +55 -24
- package/dist/layout.js.map +1 -1
- package/dist/mouse.d.ts +6 -0
- package/dist/mouse.d.ts.map +1 -1
- package/dist/mouse.js +38 -17
- package/dist/mouse.js.map +1 -1
- package/dist/primitives.d.ts.map +1 -1
- package/dist/primitives.js +8 -1
- package/dist/primitives.js.map +1 -1
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +266 -70
- package/dist/render.js.map +1 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +13 -5
- package/dist/runtime.js.map +1 -1
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +325 -83
- package/dist/session.js.map +1 -1
- package/dist/text.d.ts +7 -0
- package/dist/text.d.ts.map +1 -1
- package/dist/text.js +114 -0
- package/dist/text.js.map +1 -1
- package/dist/theme.d.ts.map +1 -1
- package/dist/theme.js +3 -0
- package/dist/theme.js.map +1 -1
- package/dist/tree.d.ts.map +1 -1
- package/dist/tree.js +18 -4
- package/dist/tree.js.map +1 -1
- package/dist/types.d.ts +41 -4
- package/dist/types.d.ts.map +1 -1
- package/docs/api-reference.md +18 -8
- package/docs/cookbook.md +1 -1
- package/docs/interaction-model.md +10 -8
- package/docs/primitive-gallery.md +9 -5
- package/examples/basic.tsx +22 -0
- package/examples/cli.tsx +55 -0
- package/examples/demo.tsx +98 -0
- package/examples/docs/background-fill.tsx +107 -0
- package/examples/docs/component-composition.tsx +140 -0
- package/examples/docs/cursor.tsx +121 -0
- package/examples/docs/employees-list.tsx +138 -0
- package/examples/docs/hello.tsx +98 -0
- package/examples/docs/interactive-note.tsx +111 -0
- package/examples/docs/module-api-dashboard.tsx +307 -0
- package/examples/docs/module-flux-store.tsx +181 -0
- package/examples/docs/module-form-workflow.tsx +339 -0
- package/examples/docs/module-forms.tsx +218 -0
- package/examples/docs/module-money.tsx +175 -0
- package/examples/docs/module-native-store.tsx +188 -0
- package/examples/docs/module-pulses.tsx +142 -0
- package/examples/docs/module-query.tsx +209 -0
- package/examples/docs/module-request.tsx +194 -0
- package/examples/docs/module-state-workbench.tsx +283 -0
- package/examples/docs/module-tasks.tsx +223 -0
- package/examples/docs/module-translate.tsx +194 -0
- package/examples/docs/module-utils.tsx +168 -0
- package/examples/docs/module-valyrian-core.tsx +159 -0
- package/examples/docs/pizza-builder.tsx +463 -0
- package/examples/docs/primitive-activity-console.tsx +113 -0
- package/examples/docs/primitive-command-panel.tsx +186 -0
- package/examples/docs/primitive-data-explorer.tsx +155 -0
- package/examples/docs/primitive-input-workbench.tsx +128 -0
- package/examples/docs/primitive-layout-shell.tsx +115 -0
- package/examples/docs/responsive-split.tsx +186 -0
- package/examples/docs/style-system.tsx +209 -0
- package/examples/docs/theme-colors.tsx +225 -0
- package/examples/docs/virtualized-list-workbench.tsx +232 -0
- package/examples/opencode-dogfood-app.tsx +215 -0
- package/examples/opencode-dogfood-lifecycle.tsx +194 -0
- package/examples/opencode-dogfood.tsx +11 -0
- package/llms-full.txt +38 -22
- package/package.json +3 -2
- package/src/ansi.ts +23 -13
- package/src/events.ts +6 -2
- package/src/frame-style.ts +36 -0
- package/src/keymap.ts +4 -2
- package/src/layout.ts +59 -25
- package/src/mouse.ts +41 -16
- package/src/primitives.ts +8 -1
- package/src/render.ts +286 -71
- package/src/runtime.ts +13 -5
- package/src/session.ts +343 -79
- package/src/text.ts +148 -0
- package/src/theme.ts +3 -0
- package/src/tree.ts +19 -4
- package/src/types.ts +48 -3
package/dist/types.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export type AnyProps = Record<string, any> | null | undefined;
|
|
2
2
|
export type TerminalPrimitiveTag = "terminal-screen" | "terminal-box" | "terminal-view" | "terminal-pane" | "terminal-split" | "terminal-fixed" | "terminal-overlay" | "terminal-focus-scope" | "terminal-text" | "terminal-input" | "terminal-editor" | "terminal-button" | "terminal-scroll" | "terminal-log-view" | "terminal-list" | "terminal-table" | "terminal-row" | "terminal-td";
|
|
3
3
|
export type TerminalCommandScope = "global" | "focus" | "input" | "editor" | "button" | "list" | "scroll";
|
|
4
|
-
export type TerminalCommandId = "focus.next" | "focus.prev" | "button.press" | "list.prev" | "list.next" | "list.press" | "scroll.up" | "scroll.down" | "input.submit" | "input.backspace" | "input.delete" | "input.cursorLeft" | "input.cursorRight" | "input.selectLeft" | "input.selectRight" | "input.wordLeft" | "input.wordRight" | "input.home" | "input.end" | "input.selectAll" | "input.copy" | "input.paste" | "input.pasteText" | "input.cut" | "input.insertText" | "editor.submit" | "editor.cancel" | "editor.newline" | "editor.backspace" | "editor.delete" | "editor.cursorLeft" | "editor.cursorRight" | "editor.cursorUp" | "editor.cursorDown" | "editor.home" | "editor.end" | "editor.paste" | "editor.pasteText" | "editor.insertText" | (string & {});
|
|
4
|
+
export type TerminalCommandId = "focus.next" | "focus.prev" | "button.press" | "list.prev" | "list.next" | "list.pageUp" | "list.pageDown" | "list.home" | "list.end" | "list.press" | "scroll.up" | "scroll.down" | "input.submit" | "input.backspace" | "input.delete" | "input.cursorLeft" | "input.cursorRight" | "input.selectLeft" | "input.selectRight" | "input.wordLeft" | "input.wordRight" | "input.home" | "input.end" | "input.selectAll" | "input.copy" | "input.paste" | "input.pasteText" | "input.cut" | "input.insertText" | "editor.submit" | "editor.cancel" | "editor.newline" | "editor.backspace" | "editor.delete" | "editor.cursorLeft" | "editor.cursorRight" | "editor.cursorUp" | "editor.cursorDown" | "editor.home" | "editor.end" | "editor.paste" | "editor.pasteText" | "editor.insertText" | (string & {});
|
|
5
5
|
export interface TerminalCommand {
|
|
6
6
|
id: TerminalCommandId;
|
|
7
7
|
text?: string;
|
|
@@ -55,8 +55,13 @@ export interface TerminalHitbox {
|
|
|
55
55
|
y2: number;
|
|
56
56
|
textStartX?: number;
|
|
57
57
|
textLength?: number;
|
|
58
|
+
textCellToStringIndex?: number[];
|
|
58
59
|
itemOffset?: number;
|
|
60
|
+
itemIndexes?: number[];
|
|
61
|
+
contentY?: number;
|
|
59
62
|
pointerLayer?: number;
|
|
63
|
+
__listItemIndex?: number;
|
|
64
|
+
__pressHandler?: (event: TerminalButtonPressEventPayload) => void;
|
|
60
65
|
}
|
|
61
66
|
export interface CursorPosition {
|
|
62
67
|
x: number;
|
|
@@ -184,13 +189,26 @@ export interface TerminalEditorCancelEventPayload extends TerminalValueEventPayl
|
|
|
184
189
|
export interface TerminalButtonPressEventPayload extends TerminalEventPayloadBase {
|
|
185
190
|
type: "press" | "doublepress" | "contextpress";
|
|
186
191
|
}
|
|
187
|
-
export interface
|
|
192
|
+
export interface TerminalListStateEventPayload {
|
|
193
|
+
activeIndex: number;
|
|
194
|
+
selectedIndex: number | null;
|
|
195
|
+
viewportOffset: number;
|
|
196
|
+
viewportRows: number;
|
|
197
|
+
}
|
|
198
|
+
export interface TerminalListChangeEventPayload<T = any> extends TerminalValueEventPayloadBase<T>, TerminalListStateEventPayload {
|
|
188
199
|
type: "change";
|
|
189
200
|
index: number;
|
|
201
|
+
key?: string;
|
|
202
|
+
}
|
|
203
|
+
export interface TerminalListViewportChangeEventPayload extends TerminalEventPayloadBase, TerminalListStateEventPayload {
|
|
204
|
+
type: "viewportchange";
|
|
205
|
+
offset: number;
|
|
206
|
+
rows: number;
|
|
190
207
|
}
|
|
191
|
-
export interface TerminalListPressEventPayload<T = any> extends TerminalValueEventPayloadBase<T
|
|
208
|
+
export interface TerminalListPressEventPayload<T = any> extends TerminalValueEventPayloadBase<T>, TerminalListStateEventPayload {
|
|
192
209
|
type: "press" | "doublepress" | "contextpress";
|
|
193
210
|
index: number;
|
|
211
|
+
key?: string;
|
|
194
212
|
}
|
|
195
213
|
export type TerminalChangeEventPayload = TerminalInputChangeEventPayload | TerminalEditorChangeEventPayload | TerminalListChangeEventPayload<any>;
|
|
196
214
|
export type TerminalPressEventPayload = TerminalButtonPressEventPayload | TerminalListPressEventPayload<any>;
|
|
@@ -215,6 +233,7 @@ export interface TerminalRowPointerEventPayloadBase extends TerminalPointerCoord
|
|
|
215
233
|
export interface TerminalListPointerEventPayload<T = any> extends TerminalRowPointerEventPayloadBase {
|
|
216
234
|
type: TerminalMouseEventType;
|
|
217
235
|
index: number;
|
|
236
|
+
key?: string;
|
|
218
237
|
value: T;
|
|
219
238
|
}
|
|
220
239
|
export interface TerminalScrollPointerEventPayload extends TerminalRowPointerEventPayloadBase {
|
|
@@ -239,7 +258,9 @@ export interface TerminalInputProps extends TerminalFocusableProps, TerminalStyl
|
|
|
239
258
|
export interface TerminalEditorProps extends TerminalFocusableProps, TerminalStyleProps {
|
|
240
259
|
value?: string;
|
|
241
260
|
placeholder?: string;
|
|
261
|
+
width?: number;
|
|
242
262
|
height?: number;
|
|
263
|
+
fill?: boolean;
|
|
243
264
|
onchange?(event: TerminalEditorChangeEventPayload): void;
|
|
244
265
|
oninput?(event: TerminalEditorChangeEventPayload): void;
|
|
245
266
|
onsubmit?(event: TerminalEditorSubmitEventPayload): void;
|
|
@@ -251,13 +272,29 @@ export interface TerminalButtonProps extends TerminalFocusableProps, TerminalSty
|
|
|
251
272
|
ondoublepress?(event: TerminalButtonPressEventPayload): void;
|
|
252
273
|
oncontextpress?(event: TerminalButtonPressEventPayload): void;
|
|
253
274
|
}
|
|
275
|
+
export interface TerminalListRenderContext<T = any> {
|
|
276
|
+
index: number;
|
|
277
|
+
key: string;
|
|
278
|
+
active: boolean;
|
|
279
|
+
selected: boolean;
|
|
280
|
+
viewportIndex: number;
|
|
281
|
+
item: T;
|
|
282
|
+
}
|
|
283
|
+
export type TerminalListItemKey<T = any> = (item: T, index: number) => string | number;
|
|
284
|
+
export type TerminalListItemRenderer<T = any> = (item: T, ctx: TerminalListRenderContext<T>) => any;
|
|
254
285
|
export interface TerminalListProps<T = any> extends TerminalFocusableProps, TerminalPointerCaptureProps, TerminalStyleProps {
|
|
255
286
|
items?: readonly T[];
|
|
256
287
|
virtualized?: boolean;
|
|
288
|
+
height?: number;
|
|
257
289
|
itemHeight?: 1;
|
|
258
290
|
overscan?: number;
|
|
259
|
-
|
|
291
|
+
wrap?: boolean;
|
|
292
|
+
itemKey?: TerminalListItemKey<T>;
|
|
293
|
+
showActive?: boolean;
|
|
294
|
+
renderItem?(item: T, index: number): any;
|
|
295
|
+
children?: TerminalListItemRenderer<T>;
|
|
260
296
|
onchange?(event: TerminalListChangeEventPayload<T>): void;
|
|
297
|
+
onviewportchange?(event: TerminalListViewportChangeEventPayload): void;
|
|
261
298
|
onpress?(event: TerminalListPressEventPayload<T>): void;
|
|
262
299
|
ondoublepress?(event: TerminalListPressEventPayload<T>): void;
|
|
263
300
|
oncontextpress?(event: TerminalListPressEventPayload<T>): void;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -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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"}
|
package/docs/api-reference.md
CHANGED
|
@@ -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
|
|
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
|
|
|
@@ -239,7 +240,7 @@ Props:
|
|
|
239
240
|
|
|
240
241
|
Draws a clipped region over the current frame. `margin` sets the distance from the overlay to the frame edges; numbers use cells and percentage strings such as `"10%"` resolve per axis. Use `{ x, y }` when the two axes need different margins. `trapFocus` keeps traversal inside the overlay while it is active.
|
|
241
242
|
|
|
242
|
-
Overlay calculates its size from the available frame, stays centered by its margins, and keeps app routing and pane movement in your app layer.
|
|
243
|
+
Overlay calculates its size from the available frame, stays centered by its margins, and keeps app routing and pane movement in your app layer. Direct sibling overlays use source order: later overlays paint above earlier overlays, receive pointer hits first, and lead trapped focus traversal. Overlay styles paint the full assigned surface, including empty cells behind child controls.
|
|
243
244
|
|
|
244
245
|
### `FocusScope`
|
|
245
246
|
|
|
@@ -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
|
|
|
@@ -336,11 +339,17 @@ Props:
|
|
|
336
339
|
- `pointerCapture?: boolean`
|
|
337
340
|
- `items?: T[]`
|
|
338
341
|
- `virtualized?: boolean`
|
|
342
|
+
- `height?: number`
|
|
339
343
|
- `itemHeight?: 1`
|
|
340
344
|
- `overscan?: number`
|
|
345
|
+
- `wrap?: boolean`
|
|
346
|
+
- `itemKey?(item, index): string | number`
|
|
347
|
+
- `showActive?: boolean`
|
|
341
348
|
- shared visual props: `style`, `styles`, `state`
|
|
342
|
-
- `
|
|
349
|
+
- `children?(item, ctx): any`
|
|
350
|
+
- `renderItem?(item, index): any`
|
|
343
351
|
- `onchange?(event)`
|
|
352
|
+
- `onviewportchange?(event)`
|
|
344
353
|
- `onpress?(event)`
|
|
345
354
|
- `ondoublepress?(event)`
|
|
346
355
|
- `oncontextpress?(event)`
|
|
@@ -352,12 +361,13 @@ Props:
|
|
|
352
361
|
|
|
353
362
|
Payloads:
|
|
354
363
|
|
|
355
|
-
- `TerminalListChangeEventPayload<T>` - `{ type: "change", id, index, value }`
|
|
356
|
-
- `
|
|
357
|
-
- `
|
|
364
|
+
- `TerminalListChangeEventPayload<T>` - `{ type: "change", id, index, key?, value, activeIndex, selectedIndex, viewportOffset, viewportRows }`
|
|
365
|
+
- `TerminalListViewportChangeEventPayload` - `{ type: "viewportchange", id, offset, rows, activeIndex, selectedIndex, viewportOffset, viewportRows }`
|
|
366
|
+
- `TerminalListPressEventPayload<T>` - `{ type: "press" | "doublepress" | "contextpress", id, index, key?, value, activeIndex, selectedIndex, viewportOffset, viewportRows }`
|
|
367
|
+
- `TerminalListPointerEventPayload<T>` - `{ type: "hover" | "rowenter" | "rowleave", id, row, index, key?, value, x, y }`
|
|
358
368
|
- `TerminalCaptureEventPayload` - `{ type: "capturestart" | "captureend", id, source, row, x, y }`
|
|
359
369
|
|
|
360
|
-
Supports selection, activation, double press on the same row, context press for the target row, hover payloads, optional virtualization, and pointer capture.
|
|
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.
|
|
361
371
|
|
|
362
372
|
### `ScrollView`
|
|
363
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.
|
|
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,15 +93,17 @@ A quick second primary mouse press keeps the normal activation behavior and also
|
|
|
93
93
|
|
|
94
94
|
### `List`
|
|
95
95
|
|
|
96
|
-
`List` models row selection and activation.
|
|
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
|
-
- `UP` and `
|
|
101
|
-
- `
|
|
102
|
-
- `
|
|
100
|
+
- `UP` and `DOWN` move the active row and emit `onchange`
|
|
101
|
+
- `PageUp`, `PageDown`, `Home`, and `End` jump the active row and keep it visible
|
|
102
|
+
- `LEFT`, `RIGHT`, `SHIFT_UP`, and `SHIFT_DOWN` have no default list command, so applications can bind them
|
|
103
|
+
- `ENTER` selects and activates the active row
|
|
104
|
+
- mouse click selects and activates the target row
|
|
103
105
|
- mouse hover reports row details when mouse input is connected
|
|
104
|
-
- quick primary mouse
|
|
106
|
+
- quick primary mouse clicks on the same row emit `ondoublepress` without a second `onpress`
|
|
105
107
|
- secondary mouse presses emit `oncontextpress` for the target row
|
|
106
108
|
|
|
107
109
|
Main handlers:
|
|
@@ -116,7 +118,7 @@ Main handlers:
|
|
|
116
118
|
- `oncapturestart`
|
|
117
119
|
- `oncaptureend`
|
|
118
120
|
|
|
119
|
-
`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.
|
|
120
122
|
|
|
121
123
|
### `ScrollView`
|
|
122
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,16 +228,20 @@ 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`, `renderItem`, `virtualized`, `onchange`, `onpress`, `ondoublepress`, `oncontextpress`.
|
|
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
|
|
|
235
235
|
```tsx
|
|
236
|
-
<List id="menu" items={["Inbox", "Done"]}
|
|
236
|
+
<List id="menu" items={["Inbox", "Done"]} itemKey={(item) => item}>
|
|
237
|
+
{(item, ctx) => `${ctx.active ? "› " : " "}${item}`}
|
|
238
|
+
</List>
|
|
237
239
|
```
|
|
238
240
|
|
|
239
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`.
|
|
240
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`. `Shift+Up` and `Shift+Down` are shown as app-defined commands, not built-in reorder behavior.
|
|
244
|
+
|
|
241
245
|
### `Table`
|
|
242
246
|
|
|
243
247
|
Use `Table` for compact data detail and aligned text pairs.
|
|
@@ -332,7 +336,7 @@ Use `Overlay` for command panels, dialogs, palettes, and focused chooser surface
|
|
|
332
336
|
|
|
333
337
|
**What it is:** A positioned layer over the current frame.
|
|
334
338
|
**Use it for:** command panels, dialogs, palettes, and focused chooser surfaces.
|
|
335
|
-
**Core props:** `id`, `margin`, `trapFocus`, `style`. `margin` is required and accepts a number, a percentage string, or `{ x, y }` with number or percentage-string values. When `Overlay` is the root passed to `renderTerminal()`, pass exact `{ cols, rows }` as the second argument so margin can resolve against terminal dimensions.
|
|
339
|
+
**Core props:** `id`, `margin`, `trapFocus`, `style`. `margin` is required and accepts a number, a percentage string, or `{ x, y }` with number or percentage-string values. When `Overlay` is the root passed to `renderTerminal()`, pass exact `{ cols, rows }` as the second argument so margin can resolve against terminal dimensions. Later sibling overlays paint and receive pointer/focus routing above earlier overlays. Overlay background styles cover their full assigned surface, not just text cells.
|
|
336
340
|
|
|
337
341
|
**Minimal example:**
|
|
338
342
|
|
|
@@ -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
|
+
}
|
package/examples/cli.tsx
ADDED
|
@@ -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
|
+
}
|