@flyingrobots/bijou 4.0.0 → 4.2.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.
- package/README.md +8 -8
- package/dist/adapters/test/io.d.ts +3 -1
- package/dist/adapters/test/io.d.ts.map +1 -1
- package/dist/adapters/test/io.js +27 -0
- package/dist/adapters/test/io.js.map +1 -1
- package/dist/core/bg-fill.d.ts.map +1 -1
- package/dist/core/bg-fill.js +24 -1
- package/dist/core/bg-fill.js.map +1 -1
- package/dist/core/components/explainability.d.ts +51 -0
- package/dist/core/components/explainability.d.ts.map +1 -0
- package/dist/core/components/explainability.js +134 -0
- package/dist/core/components/explainability.js.map +1 -0
- package/dist/core/components/index.d.ts +6 -0
- package/dist/core/components/index.d.ts.map +1 -1
- package/dist/core/components/index.js +3 -0
- package/dist/core/components/index.js.map +1 -1
- package/dist/core/components/inspector.d.ts +49 -0
- package/dist/core/components/inspector.d.ts.map +1 -0
- package/dist/core/components/inspector.js +108 -0
- package/dist/core/components/inspector.js.map +1 -0
- package/dist/core/components/preference-list.d.ts +61 -0
- package/dist/core/components/preference-list.d.ts.map +1 -0
- package/dist/core/components/preference-list.js +215 -0
- package/dist/core/components/preference-list.js.map +1 -0
- package/dist/core/components/progress.d.ts +9 -1
- package/dist/core/components/progress.d.ts.map +1 -1
- package/dist/core/components/progress.js +20 -6
- package/dist/core/components/progress.js.map +1 -1
- package/dist/core/forms/filter-interactive.d.ts.map +1 -1
- package/dist/core/forms/filter-interactive.js +16 -16
- package/dist/core/forms/filter-interactive.js.map +1 -1
- package/dist/core/forms/form-utils.d.ts +33 -2
- package/dist/core/forms/form-utils.d.ts.map +1 -1
- package/dist/core/forms/form-utils.js +53 -3
- package/dist/core/forms/form-utils.js.map +1 -1
- package/dist/core/forms/multiselect.d.ts.map +1 -1
- package/dist/core/forms/multiselect.js +5 -5
- package/dist/core/forms/multiselect.js.map +1 -1
- package/dist/core/forms/select.d.ts.map +1 -1
- package/dist/core/forms/select.js +4 -4
- package/dist/core/forms/select.js.map +1 -1
- package/dist/core/forms/textarea-editor.d.ts.map +1 -1
- package/dist/core/forms/textarea-editor.js +12 -12
- package/dist/core/forms/textarea-editor.js.map +1 -1
- package/dist/core/key-input.d.ts +17 -0
- package/dist/core/key-input.d.ts.map +1 -0
- package/dist/core/key-input.js +92 -0
- package/dist/core/key-input.js.map +1 -0
- package/dist/core/render/differ.d.ts.map +1 -1
- package/dist/core/render/differ.js +89 -39
- package/dist/core/render/differ.js.map +1 -1
- package/dist/core/text/grapheme.d.ts +7 -0
- package/dist/core/text/grapheme.d.ts.map +1 -1
- package/dist/core/text/grapheme.js +11 -1
- package/dist/core/text/grapheme.js.map +1 -1
- package/dist/core/text/index.d.ts +3 -2
- package/dist/core/text/index.d.ts.map +1 -1
- package/dist/core/text/index.js +2 -2
- package/dist/core/text/index.js.map +1 -1
- package/dist/core/text/wrap.d.ts +18 -0
- package/dist/core/text/wrap.d.ts.map +1 -1
- package/dist/core/text/wrap.js +92 -23
- package/dist/core/text/wrap.js.map +1 -1
- package/dist/index.d.ts +7 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/ports/index.d.ts +1 -1
- package/dist/ports/index.d.ts.map +1 -1
- package/dist/ports/io.d.ts +30 -0
- package/dist/ports/io.d.ts.map +1 -1
- package/dist/ports/surface.d.ts.map +1 -1
- package/dist/ports/surface.js +40 -18
- package/dist/ports/surface.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-utils.d.ts","sourceRoot":"","sources":["../../../src/core/forms/form-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"form-utils.d.ts","sourceRoot":"","sources":["../../../src/core/forms/form-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAKrD;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,MAAM,CAKxE;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,YAAY,GAAG,IAAI,CAM7E;AAED;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,aAAa,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EAC/D,GAAG,EAAE,YAAY,GAChB,IAAI,CAMN;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gCAAgC;IAChC,UAAU,IAAI,IAAI,CAAC;IACnB,gCAAgC;IAChC,UAAU,IAAI,IAAI,CAAC;IACnB,mEAAmE;IACnE,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,uDAAuD;IACvD,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,8EAA8E;IAC9E,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,YAAY,GAAG,gBAAgB,CA2BpE;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,YAAY,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAG7F;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,YAAY,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAGxE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAQ/G;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,GAChC,cAAc,CAShB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,GAAG,GAAG,IAAI,WAAW,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAEtF;AAED;;;;;;;GAOG;AACH,wBAAgB,KAAK,CACnB,GAAG,EAAE,WAAW,EAChB,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC,CAAM,GAC9D,OAAO,CAMT;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQjG;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAC5B,GAAG,EAAE,YAAY,EACjB,WAAW,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,EAC9C,QAAQ,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,GAC1C,OAAO,CAAC,CAAC,CAAC,CAKZ"}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import { cursorGuard } from '../components/cursor-guard.js';
|
|
10
10
|
import { CLEAR_LINE_RETURN } from '../ansi.js';
|
|
11
|
+
import { decodeRawKeySequence } from '../key-input.js';
|
|
11
12
|
/**
|
|
12
13
|
* Format a form title with the `?` prefix and theme-aware styling.
|
|
13
14
|
*
|
|
@@ -147,19 +148,68 @@ export function clampScroll(cursor, scrollOffset, maxVisible, itemCount) {
|
|
|
147
148
|
}
|
|
148
149
|
return Math.max(0, Math.min(offset, Math.max(0, itemCount - maxVisible)));
|
|
149
150
|
}
|
|
151
|
+
/**
|
|
152
|
+
* Subscribe to semantic form key input, preferring `ctx.io.keyInput()` when
|
|
153
|
+
* available and falling back to decoding `rawInput()` sequences otherwise.
|
|
154
|
+
*
|
|
155
|
+
* This keeps interactive forms deterministic in tests without forcing
|
|
156
|
+
* production adapters away from the lower-level raw-input contract.
|
|
157
|
+
*
|
|
158
|
+
* @param ctx - Bijou context providing the input port.
|
|
159
|
+
* @param onKey - Callback invoked for each semantic key.
|
|
160
|
+
* @returns A disposable handle that stops further key delivery.
|
|
161
|
+
*/
|
|
162
|
+
export function subscribeFormKeyInput(ctx, onKey) {
|
|
163
|
+
if (typeof ctx.io.keyInput === 'function') {
|
|
164
|
+
return ctx.io.keyInput(onKey);
|
|
165
|
+
}
|
|
166
|
+
return ctx.io.rawInput((key) => {
|
|
167
|
+
for (const msg of decodeRawKeySequence(key)) {
|
|
168
|
+
onKey(msg);
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Whether a semantic key carries printable text.
|
|
174
|
+
*
|
|
175
|
+
* @param key - The semantic key to test.
|
|
176
|
+
* @returns `true` when the key represents typed text.
|
|
177
|
+
*/
|
|
178
|
+
export function isPrintableKey(key) {
|
|
179
|
+
return key.text !== undefined;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Match a semantic key by logical key name and optional modifier flags.
|
|
183
|
+
*
|
|
184
|
+
* @param msg - The key message to test.
|
|
185
|
+
* @param key - Expected logical key name.
|
|
186
|
+
* @param mods - Optional modifier constraints.
|
|
187
|
+
* @returns `true` when the key matches.
|
|
188
|
+
*/
|
|
189
|
+
export function isKey(msg, key, mods = {}) {
|
|
190
|
+
if (msg.key !== key)
|
|
191
|
+
return false;
|
|
192
|
+
if (mods.ctrl !== undefined && msg.ctrl !== mods.ctrl)
|
|
193
|
+
return false;
|
|
194
|
+
if (mods.alt !== undefined && msg.alt !== mods.alt)
|
|
195
|
+
return false;
|
|
196
|
+
if (mods.shift !== undefined && msg.shift !== mods.shift)
|
|
197
|
+
return false;
|
|
198
|
+
return true;
|
|
199
|
+
}
|
|
150
200
|
/**
|
|
151
201
|
* Handle up/down (arrow key or j/k) navigation in a wrapping list.
|
|
152
202
|
*
|
|
153
|
-
* @param key - The keypress
|
|
203
|
+
* @param key - The semantic keypress.
|
|
154
204
|
* @param cursor - Current cursor index.
|
|
155
205
|
* @param length - Total number of items.
|
|
156
206
|
* @returns The new cursor index, or `null` if the key was not a vertical nav key.
|
|
157
207
|
*/
|
|
158
208
|
export function handleVerticalNav(key, cursor, length) {
|
|
159
|
-
if (key
|
|
209
|
+
if (isKey(key, 'up') || key.text === 'k') {
|
|
160
210
|
return (cursor - 1 + length) % length;
|
|
161
211
|
}
|
|
162
|
-
if (key
|
|
212
|
+
if (isKey(key, 'down') || key.text === 'j') {
|
|
163
213
|
return (cursor + 1) % length;
|
|
164
214
|
}
|
|
165
215
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-utils.js","sourceRoot":"","sources":["../../../src/core/forms/form-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"form-utils.js","sourceRoot":"","sources":["../../../src/core/forms/form-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multiselect.d.ts","sourceRoot":"","sources":["../../../src/core/forms/multiselect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAgB,MAAM,YAAY,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"multiselect.d.ts","sourceRoot":"","sources":["../../../src/core/forms/multiselect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAgB,MAAM,YAAY,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAe3D;;;;GAIG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,MAAM,CAAE,SAAQ,kBAAkB,CAAC,CAAC,CAAC;IAC3E,yDAAyD;IACzD,GAAG,CAAC,EAAE,YAAY,CAAC;IACnB,mFAAmF;IACnF,aAAa,CAAC,EAAE,CAAC,EAAE,CAAC;CACrB;AAED;;;;;;;;;GASG;AACH,wBAAsB,WAAW,CAAC,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAU1F"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { resolveCtx } from '../resolve-ctx.js';
|
|
2
|
-
import { formatFormTitle, renderNumberedOptions, terminalRenderer, formDispatch, createStyledFn, createBoldFn, clampScroll, handleVerticalNav } from './form-utils.js';
|
|
2
|
+
import { formatFormTitle, renderNumberedOptions, terminalRenderer, formDispatch, createStyledFn, createBoldFn, clampScroll, handleVerticalNav, isKey, subscribeFormKeyInput, } from './form-utils.js';
|
|
3
3
|
/**
|
|
4
4
|
* Prompt the user to choose zero or more items from a list.
|
|
5
5
|
*
|
|
@@ -120,7 +120,7 @@ async function interactiveMultiselect(options, ctx) {
|
|
|
120
120
|
}
|
|
121
121
|
render();
|
|
122
122
|
return new Promise((resolve) => {
|
|
123
|
-
const handle = ctx
|
|
123
|
+
const handle = subscribeFormKeyInput(ctx, (key) => {
|
|
124
124
|
const next = handleVerticalNav(key, cursor, options.options.length);
|
|
125
125
|
if (next !== null) {
|
|
126
126
|
cursor = next;
|
|
@@ -128,7 +128,7 @@ async function interactiveMultiselect(options, ctx) {
|
|
|
128
128
|
clearRender();
|
|
129
129
|
render();
|
|
130
130
|
}
|
|
131
|
-
else if (key
|
|
131
|
+
else if (isKey(key, 'space')) {
|
|
132
132
|
if (selected.has(cursor))
|
|
133
133
|
selected.delete(cursor);
|
|
134
134
|
else
|
|
@@ -136,12 +136,12 @@ async function interactiveMultiselect(options, ctx) {
|
|
|
136
136
|
clearRender();
|
|
137
137
|
render();
|
|
138
138
|
}
|
|
139
|
-
else if (key
|
|
139
|
+
else if (isKey(key, 'enter')) {
|
|
140
140
|
handle.dispose();
|
|
141
141
|
cleanup();
|
|
142
142
|
resolve([...selected].sort().map((i) => options.options[i].value));
|
|
143
143
|
}
|
|
144
|
-
else if (key
|
|
144
|
+
else if (isKey(key, 'c', { ctrl: true }) || isKey(key, 'escape')) {
|
|
145
145
|
// Note: bare \x1b may false-trigger on slow connections where escape
|
|
146
146
|
// sequences arrive as separate bytes. Timer-based disambiguation is a
|
|
147
147
|
// separate future improvement.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multiselect.js","sourceRoot":"","sources":["../../../src/core/forms/multiselect.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,
|
|
1
|
+
{"version":3,"file":"multiselect.js","sourceRoot":"","sources":["../../../src/core/forms/multiselect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../src/core/forms/select.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAgB,MAAM,YAAY,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../src/core/forms/select.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAgB,MAAM,YAAY,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAe3D;;;;GAIG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,MAAM,CAAE,SAAQ,kBAAkB,CAAC,CAAC,CAAC;IACtE,yDAAyD;IACzD,GAAG,CAAC,EAAE,YAAY,CAAC;CACpB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,MAAM,CAAC,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAY9E"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { resolveCtx } from '../resolve-ctx.js';
|
|
2
|
-
import { formatFormTitle, renderNumberedOptions, terminalRenderer, formDispatch, createStyledFn, createBoldFn, clampScroll, handleVerticalNav } from './form-utils.js';
|
|
2
|
+
import { formatFormTitle, renderNumberedOptions, terminalRenderer, formDispatch, createStyledFn, createBoldFn, clampScroll, handleVerticalNav, isKey, subscribeFormKeyInput, } from './form-utils.js';
|
|
3
3
|
/**
|
|
4
4
|
* Prompt the user to choose one item from a list.
|
|
5
5
|
*
|
|
@@ -107,7 +107,7 @@ async function interactiveSelect(options, ctx) {
|
|
|
107
107
|
}
|
|
108
108
|
render();
|
|
109
109
|
return new Promise((resolve) => {
|
|
110
|
-
const handle = ctx
|
|
110
|
+
const handle = subscribeFormKeyInput(ctx, (key) => {
|
|
111
111
|
const next = handleVerticalNav(key, cursor, options.options.length);
|
|
112
112
|
if (next !== null) {
|
|
113
113
|
cursor = next;
|
|
@@ -115,12 +115,12 @@ async function interactiveSelect(options, ctx) {
|
|
|
115
115
|
clearRender();
|
|
116
116
|
render();
|
|
117
117
|
}
|
|
118
|
-
else if (key
|
|
118
|
+
else if (isKey(key, 'enter')) {
|
|
119
119
|
handle.dispose();
|
|
120
120
|
cleanup();
|
|
121
121
|
resolve(options.options[cursor].value);
|
|
122
122
|
}
|
|
123
|
-
else if (key
|
|
123
|
+
else if (isKey(key, 'c', { ctrl: true }) || isKey(key, 'escape')) {
|
|
124
124
|
// Note: bare \x1b may false-trigger on slow connections where escape
|
|
125
125
|
// sequences arrive as separate bytes. Timer-based disambiguation is a
|
|
126
126
|
// separate future improvement.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../../src/core/forms/select.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,
|
|
1
|
+
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../../src/core/forms/select.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textarea-editor.d.ts","sourceRoot":"","sources":["../../../src/core/forms/textarea-editor.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"textarea-editor.d.ts","sourceRoot":"","sources":["../../../src/core/forms/textarea-editor.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAU3D;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,YAAY,CAAC,MAAM,CAAC;IAC3D,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,GAAG,CAAC,EAAE,YAAY,CAAC;CACpB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CA0MtG"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* optional line numbers, placeholder text, and max-length guard.
|
|
6
6
|
* Ctrl+D submits; Ctrl+C or Escape cancels.
|
|
7
7
|
*/
|
|
8
|
-
import { formatFormTitle, terminalRenderer, createStyledFn } from './form-utils.js';
|
|
8
|
+
import { formatFormTitle, terminalRenderer, createStyledFn, isKey, isPrintableKey, subscribeFormKeyInput, } from './form-utils.js';
|
|
9
9
|
/**
|
|
10
10
|
* Render a full interactive textarea editor using raw terminal input.
|
|
11
11
|
*
|
|
@@ -89,8 +89,8 @@ export async function interactiveTextarea(options, ctx) {
|
|
|
89
89
|
term.hideCursor();
|
|
90
90
|
render();
|
|
91
91
|
return new Promise((resolve) => {
|
|
92
|
-
const handle = ctx
|
|
93
|
-
if (key
|
|
92
|
+
const handle = subscribeFormKeyInput(ctx, (key) => {
|
|
93
|
+
if (isKey(key, 'd', { ctrl: true })) {
|
|
94
94
|
// Ctrl+D — submit
|
|
95
95
|
handle.dispose();
|
|
96
96
|
const text = lines.join('\n');
|
|
@@ -99,7 +99,7 @@ export async function interactiveTextarea(options, ctx) {
|
|
|
99
99
|
resolve(value);
|
|
100
100
|
return;
|
|
101
101
|
}
|
|
102
|
-
if (key
|
|
102
|
+
if (isKey(key, 'c', { ctrl: true }) || isKey(key, 'escape')) {
|
|
103
103
|
// Ctrl+C or Escape — cancel
|
|
104
104
|
// TODO: bare \x1b may false-trigger on slow connections where escape
|
|
105
105
|
// sequences arrive as separate bytes. Timer-based disambiguation is a
|
|
@@ -110,7 +110,7 @@ export async function interactiveTextarea(options, ctx) {
|
|
|
110
110
|
resolve(value);
|
|
111
111
|
return;
|
|
112
112
|
}
|
|
113
|
-
if (key
|
|
113
|
+
if (isKey(key, 'enter')) {
|
|
114
114
|
// Enter — newline (counts as 1 character for maxLength)
|
|
115
115
|
if (options.maxLength != null && totalLength >= options.maxLength)
|
|
116
116
|
return;
|
|
@@ -127,7 +127,7 @@ export async function interactiveTextarea(options, ctx) {
|
|
|
127
127
|
render();
|
|
128
128
|
return;
|
|
129
129
|
}
|
|
130
|
-
if (key
|
|
130
|
+
if (isKey(key, 'backspace')) {
|
|
131
131
|
// Backspace
|
|
132
132
|
if (cursorCol > 0) {
|
|
133
133
|
const line = lines[cursorRow];
|
|
@@ -151,7 +151,7 @@ export async function interactiveTextarea(options, ctx) {
|
|
|
151
151
|
return;
|
|
152
152
|
}
|
|
153
153
|
// Arrow keys
|
|
154
|
-
if (key
|
|
154
|
+
if (isKey(key, 'up')) { // Up
|
|
155
155
|
if (cursorRow > 0) {
|
|
156
156
|
cursorRow--;
|
|
157
157
|
cursorCol = Math.min(cursorCol, lines[cursorRow].length);
|
|
@@ -161,7 +161,7 @@ export async function interactiveTextarea(options, ctx) {
|
|
|
161
161
|
render();
|
|
162
162
|
return;
|
|
163
163
|
}
|
|
164
|
-
if (key
|
|
164
|
+
if (isKey(key, 'down')) { // Down
|
|
165
165
|
if (cursorRow < lines.length - 1) {
|
|
166
166
|
cursorRow++;
|
|
167
167
|
cursorCol = Math.min(cursorCol, lines[cursorRow].length);
|
|
@@ -171,7 +171,7 @@ export async function interactiveTextarea(options, ctx) {
|
|
|
171
171
|
render();
|
|
172
172
|
return;
|
|
173
173
|
}
|
|
174
|
-
if (key
|
|
174
|
+
if (isKey(key, 'right')) { // Right
|
|
175
175
|
if (cursorCol < lines[cursorRow].length) {
|
|
176
176
|
cursorCol++;
|
|
177
177
|
}
|
|
@@ -184,7 +184,7 @@ export async function interactiveTextarea(options, ctx) {
|
|
|
184
184
|
render();
|
|
185
185
|
return;
|
|
186
186
|
}
|
|
187
|
-
if (key
|
|
187
|
+
if (isKey(key, 'left')) { // Left
|
|
188
188
|
if (cursorCol > 0) {
|
|
189
189
|
cursorCol--;
|
|
190
190
|
}
|
|
@@ -198,11 +198,11 @@ export async function interactiveTextarea(options, ctx) {
|
|
|
198
198
|
return;
|
|
199
199
|
}
|
|
200
200
|
// Printable character
|
|
201
|
-
if (key
|
|
201
|
+
if (isPrintableKey(key)) {
|
|
202
202
|
if (options.maxLength != null && totalLength >= options.maxLength)
|
|
203
203
|
return;
|
|
204
204
|
const line = lines[cursorRow];
|
|
205
|
-
lines[cursorRow] = line.slice(0, cursorCol) + key + line.slice(cursorCol);
|
|
205
|
+
lines[cursorRow] = line.slice(0, cursorCol) + key.text + line.slice(cursorCol);
|
|
206
206
|
cursorCol++;
|
|
207
207
|
totalLength++; // added one character
|
|
208
208
|
clearRender();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textarea-editor.js","sourceRoot":"","sources":["../../../src/core/forms/textarea-editor.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,
|
|
1
|
+
{"version":3,"file":"textarea-editor.js","sourceRoot":"","sources":["../../../src/core/forms/textarea-editor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { KeyInputMsg } from '../ports/io.js';
|
|
2
|
+
/**
|
|
3
|
+
* Decode one raw terminal key sequence into a structured semantic key.
|
|
4
|
+
*
|
|
5
|
+
* Returns `null` for unsupported multi-byte sequences so callers can safely
|
|
6
|
+
* ignore unknown transport-layer noise when falling back from `rawInput()`.
|
|
7
|
+
*/
|
|
8
|
+
export declare function decodeRawKeyInput(raw: string): KeyInputMsg | null;
|
|
9
|
+
/**
|
|
10
|
+
* Decode a raw terminal input string into semantic key messages.
|
|
11
|
+
*
|
|
12
|
+
* This is useful for deterministic tests that want to express scripted input
|
|
13
|
+
* in familiar raw strings (for example `\"my-app\\n\"` or an ESC-arrow sequence) while
|
|
14
|
+
* still driving consumers through the higher-level semantic key stream.
|
|
15
|
+
*/
|
|
16
|
+
export declare function decodeRawKeySequence(raw: string): KeyInputMsg[];
|
|
17
|
+
//# sourceMappingURL=key-input.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key-input.d.ts","sourceRoot":"","sources":["../../src/core/key-input.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AA0BlD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAmCjE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,EAAE,CAyB/D"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
const ESC = String.fromCharCode(0x1b);
|
|
2
|
+
const ETX = String.fromCharCode(0x03);
|
|
3
|
+
const EOT = String.fromCharCode(0x04);
|
|
4
|
+
const DEL = String.fromCharCode(0x7f);
|
|
5
|
+
const BACKSPACE = String.fromCharCode(0x08);
|
|
6
|
+
const CARRIAGE_RETURN = String.fromCharCode(0x0d);
|
|
7
|
+
const LINE_FEED = String.fromCharCode(0x0a);
|
|
8
|
+
const ARROW_UP = `${ESC}[A`;
|
|
9
|
+
const ARROW_DOWN = `${ESC}[B`;
|
|
10
|
+
const ARROW_RIGHT = `${ESC}[C`;
|
|
11
|
+
const ARROW_LEFT = `${ESC}[D`;
|
|
12
|
+
function keyMsg(key, ctrl = false, alt = false, shift = false, text) {
|
|
13
|
+
return text === undefined
|
|
14
|
+
? { key, ctrl, alt, shift }
|
|
15
|
+
: { key, ctrl, alt, shift, text };
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Decode one raw terminal key sequence into a structured semantic key.
|
|
19
|
+
*
|
|
20
|
+
* Returns `null` for unsupported multi-byte sequences so callers can safely
|
|
21
|
+
* ignore unknown transport-layer noise when falling back from `rawInput()`.
|
|
22
|
+
*/
|
|
23
|
+
export function decodeRawKeyInput(raw) {
|
|
24
|
+
switch (raw) {
|
|
25
|
+
case ARROW_UP:
|
|
26
|
+
return keyMsg('up');
|
|
27
|
+
case ARROW_DOWN:
|
|
28
|
+
return keyMsg('down');
|
|
29
|
+
case ARROW_RIGHT:
|
|
30
|
+
return keyMsg('right');
|
|
31
|
+
case ARROW_LEFT:
|
|
32
|
+
return keyMsg('left');
|
|
33
|
+
case CARRIAGE_RETURN:
|
|
34
|
+
case LINE_FEED:
|
|
35
|
+
return keyMsg('enter');
|
|
36
|
+
case ESC:
|
|
37
|
+
return keyMsg('escape');
|
|
38
|
+
case ETX:
|
|
39
|
+
return keyMsg('c', true);
|
|
40
|
+
case EOT:
|
|
41
|
+
return keyMsg('d', true);
|
|
42
|
+
case DEL:
|
|
43
|
+
case BACKSPACE:
|
|
44
|
+
return keyMsg('backspace');
|
|
45
|
+
case ' ':
|
|
46
|
+
return keyMsg('space', false, false, false, ' ');
|
|
47
|
+
default:
|
|
48
|
+
break;
|
|
49
|
+
}
|
|
50
|
+
if (raw.length !== 1)
|
|
51
|
+
return null;
|
|
52
|
+
const ch = raw;
|
|
53
|
+
if (ch < ' ')
|
|
54
|
+
return null;
|
|
55
|
+
if (ch >= 'A' && ch <= 'Z') {
|
|
56
|
+
return keyMsg(ch.toLowerCase(), false, false, true, ch);
|
|
57
|
+
}
|
|
58
|
+
return keyMsg(ch, false, false, false, ch);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Decode a raw terminal input string into semantic key messages.
|
|
62
|
+
*
|
|
63
|
+
* This is useful for deterministic tests that want to express scripted input
|
|
64
|
+
* in familiar raw strings (for example `\"my-app\\n\"` or an ESC-arrow sequence) while
|
|
65
|
+
* still driving consumers through the higher-level semantic key stream.
|
|
66
|
+
*/
|
|
67
|
+
export function decodeRawKeySequence(raw) {
|
|
68
|
+
const messages = [];
|
|
69
|
+
for (let i = 0; i < raw.length; i++) {
|
|
70
|
+
const ch = raw[i];
|
|
71
|
+
if (ch === ESC) {
|
|
72
|
+
const sequence = raw.slice(i, i + 3);
|
|
73
|
+
const parsedSequence = decodeRawKeyInput(sequence);
|
|
74
|
+
if (parsedSequence !== null) {
|
|
75
|
+
messages.push(parsedSequence);
|
|
76
|
+
i += sequence.length - 1;
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
const parsedEscape = decodeRawKeyInput(ch);
|
|
80
|
+
if (parsedEscape !== null) {
|
|
81
|
+
messages.push(parsedEscape);
|
|
82
|
+
}
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
85
|
+
const parsed = decodeRawKeyInput(ch);
|
|
86
|
+
if (parsed !== null) {
|
|
87
|
+
messages.push(parsed);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
return messages;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=key-input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"key-input.js","sourceRoot":"","sources":["../../src/core/key-input.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"differ.d.ts","sourceRoot":"","sources":["../../../src/core/render/differ.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACjG,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"differ.d.ts","sourceRoot":"","sources":["../../../src/core/render/differ.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACjG,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAYjE;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAgBpF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAqFvF;AAqBD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,GAAG,MAAM,CAgB1E;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,CAQvE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,OAAO,CAgBpD;AAUD;;;;;;;;;;;;GAYG;AACH,wBAAgB,UAAU,CACxB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,OAAO,EACf,EAAE,EAAE,SAAS,EACb,KAAK,EAAE,SAAS,GACf,IAAI,CAkIN"}
|