@vegamo/loom 0.1.11 → 0.1.12
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../../src/tui/components/Input.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAiD,MAAM,OAAO,CAAC;AAItE,UAAU,UAAU;IAClB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAsBD,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,
|
|
1
|
+
{"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../../src/tui/components/Input.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAiD,MAAM,OAAO,CAAC;AAItE,UAAU,UAAU;IAClB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAsBD,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CA2HtC,CAAC"}
|
|
@@ -24,6 +24,7 @@ const COMMAND_SUGGESTIONS = [
|
|
|
24
24
|
];
|
|
25
25
|
export const Input = ({ onSubmit, disabled = false, placeholder = 'Type your message...', }) => {
|
|
26
26
|
const [value, setValue] = useState('');
|
|
27
|
+
const [inputInstanceKey, setInputInstanceKey] = useState(0);
|
|
27
28
|
const historyRef = useRef([]);
|
|
28
29
|
const historyIndexRef = useRef(-1);
|
|
29
30
|
const commandSuggestions = useMemo(() => {
|
|
@@ -45,14 +46,19 @@ export const Input = ({ onSubmit, disabled = false, placeholder = 'Type your mes
|
|
|
45
46
|
historyIndexRef.current = -1;
|
|
46
47
|
onSubmit(trimmed);
|
|
47
48
|
setValue('');
|
|
49
|
+
setInputInstanceKey((prev) => prev + 1);
|
|
48
50
|
}, [onSubmit]);
|
|
49
51
|
// 处理上/下箭头浏览历史
|
|
50
52
|
useInput((_, key) => {
|
|
51
53
|
if (disabled)
|
|
52
54
|
return;
|
|
55
|
+
const keyWithOption = key;
|
|
53
56
|
if (key.return) {
|
|
54
|
-
if (key.shift || key.meta) {
|
|
57
|
+
if (key.shift || key.meta || keyWithOption.option) {
|
|
55
58
|
setValue((prev) => `${prev}\n`);
|
|
59
|
+
// ink-text-input 不暴露光标控制,手动注入换行后重建实例,
|
|
60
|
+
// 确保光标落在文本末尾而不是停在换行前。
|
|
61
|
+
setInputInstanceKey((prev) => prev + 1);
|
|
56
62
|
return;
|
|
57
63
|
}
|
|
58
64
|
handleSubmit(value);
|
|
@@ -62,22 +68,25 @@ export const Input = ({ onSubmit, disabled = false, placeholder = 'Type your mes
|
|
|
62
68
|
const newIndex = Math.min(historyIndexRef.current + 1, historyRef.current.length - 1);
|
|
63
69
|
historyIndexRef.current = newIndex;
|
|
64
70
|
setValue(historyRef.current[historyRef.current.length - 1 - newIndex] || '');
|
|
71
|
+
setInputInstanceKey((prev) => prev + 1);
|
|
65
72
|
}
|
|
66
73
|
if (key.downArrow) {
|
|
67
74
|
const newIndex = historyIndexRef.current - 1;
|
|
68
75
|
if (newIndex < 0) {
|
|
69
76
|
historyIndexRef.current = -1;
|
|
70
77
|
setValue('');
|
|
78
|
+
setInputInstanceKey((prev) => prev + 1);
|
|
71
79
|
}
|
|
72
80
|
else {
|
|
73
81
|
historyIndexRef.current = newIndex;
|
|
74
82
|
setValue(historyRef.current[historyRef.current.length - 1 - newIndex] || '');
|
|
83
|
+
setInputInstanceKey((prev) => prev + 1);
|
|
75
84
|
}
|
|
76
85
|
}
|
|
77
86
|
});
|
|
78
87
|
if (disabled) {
|
|
79
88
|
return (_jsx(Box, { paddingX: 1, children: _jsxs(Text, { color: "gray", dimColor: true, children: ['> ', "Waiting for response..."] }) }));
|
|
80
89
|
}
|
|
81
|
-
return (_jsxs(Box, { flexDirection: "column", paddingX: 1, children: [_jsxs(Box, { children: [_jsx(Text, { color: "blue", bold: true, children: '> ' }), _jsx(TextInput, { value: value, onChange: setValue, placeholder: placeholder })] }), _jsx(Text, { color: "gray", dimColor: true, children: "Enter \u53D1\u9001 \u00B7 Shift+Enter/Alt+Enter \u6362\u884C" }), commandSuggestions.length > 0 && (_jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsx(Text, { color: "gray", dimColor: true, children: "Available commands:" }), commandSuggestions.map((item) => (_jsxs(Text, { children: [_jsx(Text, { color: "cyan", children: item.command.padEnd(14, ' ') }), _jsx(Text, { color: "gray", dimColor: true, children: item.description })] }, item.command)))] }))] }));
|
|
90
|
+
return (_jsxs(Box, { flexDirection: "column", paddingX: 1, children: [_jsxs(Box, { children: [_jsx(Text, { color: "blue", bold: true, children: '> ' }), _jsx(TextInput, { value: value, onChange: setValue, placeholder: placeholder }, inputInstanceKey)] }), _jsx(Text, { color: "gray", dimColor: true, children: "Enter \u53D1\u9001 \u00B7 Shift+Enter/Alt+Enter \u6362\u884C" }), commandSuggestions.length > 0 && (_jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsx(Text, { color: "gray", dimColor: true, children: "Available commands:" }), commandSuggestions.map((item) => (_jsxs(Text, { children: [_jsx(Text, { color: "cyan", children: item.command.padEnd(14, ' ') }), _jsx(Text, { color: "gray", dimColor: true, children: item.description })] }, item.command)))] }))] }));
|
|
82
91
|
};
|
|
83
92
|
//# sourceMappingURL=Input.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.js","sourceRoot":"","sources":["../../../src/tui/components/Input.tsx"],"names":[],"mappings":";AAAA;;;;;GAKG;AAEH,OAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACtE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAavC,MAAM,mBAAmB,GAAwB;IAC/C,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE;IACtD,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,4BAA4B,EAAE;IAChE,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,6BAA6B,EAAE;IAChE,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,4CAA4C,EAAE;IAC/E,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE;IAC1D,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,wCAAwC,EAAE;IACnF,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,4CAA4C,EAAE;IAC/E,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE;IAC1D,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,wCAAwC,EAAE;IACnF,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,8BAA8B,EAAE;IACjE,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE;IAC3D,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE;CAC/C,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAyB,CAAC,EAC1C,QAAQ,EACR,QAAQ,GAAG,KAAK,EAChB,WAAW,GAAG,sBAAsB,GACrC,EAAE,EAAE;IACH,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,MAAM,CAAW,EAAE,CAAC,CAAC;IACxC,MAAM,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,EAAE;QACtC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QACvC,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IACnF,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,WAAmB,EAAE,EAAE;QACtB,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,gBAAgB;QAChB,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QACnC,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;YAC5C,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;QACD,eAAe,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;QAE7B,QAAQ,CAAC,OAAO,CAAC,CAAC;QAClB,QAAQ,CAAC,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"Input.js","sourceRoot":"","sources":["../../../src/tui/components/Input.tsx"],"names":[],"mappings":";AAAA;;;;;GAKG;AAEH,OAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACtE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAavC,MAAM,mBAAmB,GAAwB;IAC/C,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE;IACtD,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,4BAA4B,EAAE;IAChE,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,6BAA6B,EAAE;IAChE,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,4CAA4C,EAAE;IAC/E,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE;IAC1D,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,wCAAwC,EAAE;IACnF,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,4CAA4C,EAAE;IAC/E,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE;IAC1D,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,wCAAwC,EAAE;IACnF,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,8BAA8B,EAAE;IACjE,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE;IAC3D,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE;CAC/C,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAyB,CAAC,EAC1C,QAAQ,EACR,QAAQ,GAAG,KAAK,EAChB,WAAW,GAAG,sBAAsB,GACrC,EAAE,EAAE;IACH,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5D,MAAM,UAAU,GAAG,MAAM,CAAW,EAAE,CAAC,CAAC;IACxC,MAAM,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,EAAE;QACtC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QACvC,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IACnF,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,WAAmB,EAAE,EAAE;QACtB,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,gBAAgB;QAChB,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QACnC,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;YAC5C,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;QACD,eAAe,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;QAE7B,QAAQ,CAAC,OAAO,CAAC,CAAC;QAClB,QAAQ,CAAC,EAAE,CAAC,CAAC;QACb,mBAAmB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;IAC1C,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,cAAc;IACd,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;QAClB,IAAI,QAAQ;YAAE,OAAO;QACrB,MAAM,aAAa,GAAG,GAAwC,CAAC;QAE/D,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;gBAClD,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;gBAChC,sCAAsC;gBACtC,sBAAsB;gBACtB,mBAAmB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;gBACxC,OAAO;YACT,CAAC;YAED,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO;QACT,CAAC;QAED,IAAI,GAAG,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CACvB,eAAe,CAAC,OAAO,GAAG,CAAC,EAC3B,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAC9B,CAAC;YACF,eAAe,CAAC,OAAO,GAAG,QAAQ,CAAC;YACnC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7E,mBAAmB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAClB,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,GAAG,CAAC,CAAC;YAC7C,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;gBACjB,eAAe,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;gBAC7B,QAAQ,CAAC,EAAE,CAAC,CAAC;gBACb,mBAAmB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;YAC1C,CAAC;iBAAM,CAAC;gBACN,eAAe,CAAC,OAAO,GAAG,QAAQ,CAAC;gBACnC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC7E,mBAAmB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CACL,KAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,YACd,MAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,QAAQ,mBACxB,IAAI,+BACA,GACH,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,QAAQ,EAAE,CAAC,aACrC,MAAC,GAAG,eACF,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,IAAI,kBACpB,IAAI,GACA,EACP,KAAC,SAAS,IAER,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,IAHnB,gBAAgB,CAIrB,IACE,EACN,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,QAAQ,mFAEpB,EAEN,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,CAChC,MAAC,GAAG,IAAC,SAAS,EAAE,CAAC,EAAE,aAAa,EAAC,QAAQ,aACvC,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,QAAQ,0CAEpB,EACN,kBAAkB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAChC,MAAC,IAAI,eACH,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,YAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,GAAQ,EACxD,KAAC,IAAI,IAAC,KAAK,EAAC,MAAM,EAAC,QAAQ,kBACxB,IAAI,CAAC,WAAW,GACZ,KAJE,IAAI,CAAC,OAAO,CAKhB,CACR,CAAC,IACE,CACP,IACG,CACP,CAAC;AACJ,CAAC,CAAC"}
|