source dump of claude code
at main 140 lines 16 kB view raw
1import { c as _c } from "react/compiler-runtime"; 2import chalk from 'chalk'; 3import React from 'react'; 4import { useClipboardImageHint } from '../hooks/useClipboardImageHint.js'; 5import { useVimInput } from '../hooks/useVimInput.js'; 6import { Box, color, useTerminalFocus, useTheme } from '../ink.js'; 7import type { VimTextInputProps } from '../types/textInputTypes.js'; 8import type { TextHighlight } from '../utils/textHighlighting.js'; 9import { BaseTextInput } from './BaseTextInput.js'; 10export type Props = VimTextInputProps & { 11 highlights?: TextHighlight[]; 12}; 13export default function VimTextInput(props) { 14 const $ = _c(38); 15 const [theme] = useTheme(); 16 const isTerminalFocused = useTerminalFocus(); 17 useClipboardImageHint(isTerminalFocused, !!props.onImagePaste); 18 const t0 = props.value; 19 const t1 = props.onChange; 20 const t2 = props.onSubmit; 21 const t3 = props.onExit; 22 const t4 = props.onExitMessage; 23 const t5 = props.onHistoryReset; 24 const t6 = props.onHistoryUp; 25 const t7 = props.onHistoryDown; 26 const t8 = props.onClearInput; 27 const t9 = props.focus; 28 const t10 = props.mask; 29 const t11 = props.multiline; 30 const t12 = props.showCursor ? " " : ""; 31 const t13 = props.highlightPastedText; 32 const t14 = isTerminalFocused ? chalk.inverse : _temp; 33 let t15; 34 if ($[0] !== theme) { 35 t15 = color("text", theme); 36 $[0] = theme; 37 $[1] = t15; 38 } else { 39 t15 = $[1]; 40 } 41 let t16; 42 if ($[2] !== props.columns || $[3] !== props.cursorOffset || $[4] !== props.disableCursorMovementForUpDownKeys || $[5] !== props.disableEscapeDoublePress || $[6] !== props.focus || $[7] !== props.highlightPastedText || $[8] !== props.inputFilter || $[9] !== props.mask || $[10] !== props.maxVisibleLines || $[11] !== props.multiline || $[12] !== props.onChange || $[13] !== props.onChangeCursorOffset || $[14] !== props.onClearInput || $[15] !== props.onExit || $[16] !== props.onExitMessage || $[17] !== props.onHistoryDown || $[18] !== props.onHistoryReset || $[19] !== props.onHistoryUp || $[20] !== props.onImagePaste || $[21] !== props.onModeChange || $[22] !== props.onSubmit || $[23] !== props.onUndo || $[24] !== props.value || $[25] !== t12 || $[26] !== t14 || $[27] !== t15) { 43 t16 = { 44 value: t0, 45 onChange: t1, 46 onSubmit: t2, 47 onExit: t3, 48 onExitMessage: t4, 49 onHistoryReset: t5, 50 onHistoryUp: t6, 51 onHistoryDown: t7, 52 onClearInput: t8, 53 focus: t9, 54 mask: t10, 55 multiline: t11, 56 cursorChar: t12, 57 highlightPastedText: t13, 58 invert: t14, 59 themeText: t15, 60 columns: props.columns, 61 maxVisibleLines: props.maxVisibleLines, 62 onImagePaste: props.onImagePaste, 63 disableCursorMovementForUpDownKeys: props.disableCursorMovementForUpDownKeys, 64 disableEscapeDoublePress: props.disableEscapeDoublePress, 65 externalOffset: props.cursorOffset, 66 onOffsetChange: props.onChangeCursorOffset, 67 inputFilter: props.inputFilter, 68 onModeChange: props.onModeChange, 69 onUndo: props.onUndo 70 }; 71 $[2] = props.columns; 72 $[3] = props.cursorOffset; 73 $[4] = props.disableCursorMovementForUpDownKeys; 74 $[5] = props.disableEscapeDoublePress; 75 $[6] = props.focus; 76 $[7] = props.highlightPastedText; 77 $[8] = props.inputFilter; 78 $[9] = props.mask; 79 $[10] = props.maxVisibleLines; 80 $[11] = props.multiline; 81 $[12] = props.onChange; 82 $[13] = props.onChangeCursorOffset; 83 $[14] = props.onClearInput; 84 $[15] = props.onExit; 85 $[16] = props.onExitMessage; 86 $[17] = props.onHistoryDown; 87 $[18] = props.onHistoryReset; 88 $[19] = props.onHistoryUp; 89 $[20] = props.onImagePaste; 90 $[21] = props.onModeChange; 91 $[22] = props.onSubmit; 92 $[23] = props.onUndo; 93 $[24] = props.value; 94 $[25] = t12; 95 $[26] = t14; 96 $[27] = t15; 97 $[28] = t16; 98 } else { 99 t16 = $[28]; 100 } 101 const vimInputState = useVimInput(t16); 102 const { 103 mode, 104 setMode 105 } = vimInputState; 106 let t17; 107 let t18; 108 if ($[29] !== mode || $[30] !== props.initialMode || $[31] !== setMode) { 109 t17 = () => { 110 if (props.initialMode && props.initialMode !== mode) { 111 setMode(props.initialMode); 112 } 113 }; 114 t18 = [props.initialMode, mode, setMode]; 115 $[29] = mode; 116 $[30] = props.initialMode; 117 $[31] = setMode; 118 $[32] = t17; 119 $[33] = t18; 120 } else { 121 t17 = $[32]; 122 t18 = $[33]; 123 } 124 React.useEffect(t17, t18); 125 let t19; 126 if ($[34] !== isTerminalFocused || $[35] !== props || $[36] !== vimInputState) { 127 t19 = <Box flexDirection="column"><BaseTextInput inputState={vimInputState} terminalFocus={isTerminalFocused} highlights={props.highlights} {...props} /></Box>; 128 $[34] = isTerminalFocused; 129 $[35] = props; 130 $[36] = vimInputState; 131 $[37] = t19; 132 } else { 133 t19 = $[37]; 134 } 135 return t19; 136} 137function _temp(text) { 138 return text; 139} 140//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjaGFsayIsIlJlYWN0IiwidXNlQ2xpcGJvYXJkSW1hZ2VIaW50IiwidXNlVmltSW5wdXQiLCJCb3giLCJjb2xvciIsInVzZVRlcm1pbmFsRm9jdXMiLCJ1c2VUaGVtZSIsIlZpbVRleHRJbnB1dFByb3BzIiwiVGV4dEhpZ2hsaWdodCIsIkJhc2VUZXh0SW5wdXQiLCJQcm9wcyIsImhpZ2hsaWdodHMiLCJWaW1UZXh0SW5wdXQiLCJwcm9wcyIsIiQiLCJfYyIsInRoZW1lIiwiaXNUZXJtaW5hbEZvY3VzZWQiLCJvbkltYWdlUGFzdGUiLCJ0MCIsInZhbHVlIiwidDEiLCJvbkNoYW5nZSIsInQyIiwib25TdWJtaXQiLCJ0MyIsIm9uRXhpdCIsInQ0Iiwib25FeGl0TWVzc2FnZSIsInQ1Iiwib25IaXN0b3J5UmVzZXQiLCJ0NiIsIm9uSGlzdG9yeVVwIiwidDciLCJvbkhpc3RvcnlEb3duIiwidDgiLCJvbkNsZWFySW5wdXQiLCJ0OSIsImZvY3VzIiwidDEwIiwibWFzayIsInQxMSIsIm11bHRpbGluZSIsInQxMiIsInNob3dDdXJzb3IiLCJ0MTMiLCJoaWdobGlnaHRQYXN0ZWRUZXh0IiwidDE0IiwiaW52ZXJzZSIsIl90ZW1wIiwidDE1IiwidDE2IiwiY29sdW1ucyIsImN1cnNvck9mZnNldCIsImRpc2FibGVDdXJzb3JNb3ZlbWVudEZvclVwRG93bktleXMiLCJkaXNhYmxlRXNjYXBlRG91YmxlUHJlc3MiLCJpbnB1dEZpbHRlciIsIm1heFZpc2libGVMaW5lcyIsIm9uQ2hhbmdlQ3Vyc29yT2Zmc2V0Iiwib25Nb2RlQ2hhbmdlIiwib25VbmRvIiwiY3Vyc29yQ2hhciIsImludmVydCIsInRoZW1lVGV4dCIsImV4dGVybmFsT2Zmc2V0Iiwib25PZmZzZXRDaGFuZ2UiLCJ2aW1JbnB1dFN0YXRlIiwibW9kZSIsInNldE1vZGUiLCJ0MTciLCJ0MTgiLCJpbml0aWFsTW9kZSIsInVzZUVmZmVjdCIsInQxOSIsInRleHQiXSwic291cmNlcyI6WyJWaW1UZXh0SW5wdXQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjaGFsayBmcm9tICdjaGFsaydcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZUNsaXBib2FyZEltYWdlSGludCB9IGZyb20gJy4uL2hvb2tzL3VzZUNsaXBib2FyZEltYWdlSGludC5qcydcbmltcG9ydCB7IHVzZVZpbUlucHV0IH0gZnJvbSAnLi4vaG9va3MvdXNlVmltSW5wdXQuanMnXG5pbXBvcnQgeyBCb3gsIGNvbG9yLCB1c2VUZXJtaW5hbEZvY3VzLCB1c2VUaGVtZSB9IGZyb20gJy4uL2luay5qcydcbmltcG9ydCB0eXBlIHsgVmltVGV4dElucHV0UHJvcHMgfSBmcm9tICcuLi90eXBlcy90ZXh0SW5wdXRUeXBlcy5qcydcbmltcG9ydCB0eXBlIHsgVGV4dEhpZ2hsaWdodCB9IGZyb20gJy4uL3V0aWxzL3RleHRIaWdobGlnaHRpbmcuanMnXG5pbXBvcnQgeyBCYXNlVGV4dElucHV0IH0gZnJvbSAnLi9CYXNlVGV4dElucHV0LmpzJ1xuXG5leHBvcnQgdHlwZSBQcm9wcyA9IFZpbVRleHRJbnB1dFByb3BzICYge1xuICBoaWdobGlnaHRzPzogVGV4dEhpZ2hsaWdodFtdXG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFZpbVRleHRJbnB1dChwcm9wczogUHJvcHMpOiBSZWFjdC5SZWFjdE5vZGUge1xuICBjb25zdCBbdGhlbWVdID0gdXNlVGhlbWUoKVxuICBjb25zdCBpc1Rlcm1pbmFsRm9jdXNlZCA9IHVzZVRlcm1pbmFsRm9jdXMoKVxuXG4gIC8vIFNob3cgaGludCB3aGVuIHRlcm1pbmFsIHJlZ2FpbnMgZm9jdXMgYW5kIGNsaXBib2FyZCBoYXMgYW4gaW1hZ2VcbiAgdXNlQ2xpcGJvYXJkSW1hZ2VIaW50KGlzVGVybWluYWxGb2N1c2VkLCAhIXByb3BzLm9uSW1hZ2VQYXN0ZSlcblxuICBjb25zdCB2aW1JbnB1dFN0YXRlID0gdXNlVmltSW5wdXQoe1xuICAgIHZhbHVlOiBwcm9wcy52YWx1ZSxcbiAgICBvbkNoYW5nZTogcHJvcHMub25DaGFuZ2UsXG4gICAgb25TdWJtaXQ6IHByb3BzLm9uU3VibWl0LFxuICAgIG9uRXhpdDogcHJvcHMub25FeGl0LFxuICAgIG9uRXhpdE1lc3NhZ2U6IHByb3BzLm9uRXhpdE1lc3NhZ2UsXG4gICAgb25IaXN0b3J5UmVzZXQ6IHByb3BzLm9uSGlzdG9yeVJlc2V0LFxuICAgIG9uSGlzdG9yeVVwOiBwcm9wcy5vbkhpc3RvcnlVcCxcbiAgICBvbkhpc3RvcnlEb3duOiBwcm9wcy5vbkhpc3RvcnlEb3duLFxuICAgIG9uQ2xlYXJJbnB1dDogcHJvcHMub25DbGVhcklucHV0LFxuICAgIGZvY3VzOiBwcm9wcy5mb2N1cyxcbiAgICBtYXNrOiBwcm9wcy5tYXNrLFxuICAgIG11bHRpbGluZTogcHJvcHMubXVsdGlsaW5lLFxuICAgIGN1cnNvckNoYXI6IHByb3BzLnNob3dDdXJzb3IgPyAnICcgOiAnJyxcbiAgICBoaWdobGlnaHRQYXN0ZWRUZXh0OiBwcm9wcy5oaWdobGlnaHRQYXN0ZWRUZXh0LFxuICAgIGludmVydDogaXNUZXJtaW5hbEZvY3VzZWQgPyBjaGFsay5pbnZlcnNlIDogKHRleHQ6IHN0cmluZykgPT4gdGV4dCxcbiAgICB0aGVtZVRleHQ6IGNvbG9yKCd0ZXh0JywgdGhlbWUpLFxuICAgIGNvbHVtbnM6IHByb3BzLmNvbHVtbnMsXG4gICAgbWF4VmlzaWJsZUxpbmVzOiBwcm9wcy5tYXhWaXNpYmxlTGluZXMsXG4gICAgb25JbWFnZVBhc3RlOiBwcm9wcy5vbkltYWdlUGFzdGUsXG4gICAgZGlzYWJsZUN1cnNvck1vdmVtZW50Rm9yVXBEb3duS2V5czpcbiAgICAgIHByb3BzLmRpc2FibGVDdXJzb3JNb3ZlbWVudEZvclVwRG93bktleXMsXG4gICAgZGlzYWJsZUVzY2FwZURvdWJsZVByZXNzOiBwcm9wcy5kaXNhYmxlRXNjYXBlRG91YmxlUHJlc3MsXG4gICAgZXh0ZXJuYWxPZmZzZXQ6IHByb3BzLmN1cnNvck9mZnNldCxcbiAgICBvbk9mZnNldENoYW5nZTogcHJvcHMub25DaGFuZ2VDdXJzb3JPZmZzZXQsXG4gICAgaW5wdXRGaWx0ZXI6IHByb3BzLmlucHV0RmlsdGVyLFxuICAgIG9uTW9kZUNoYW5nZTogcHJvcHMub25Nb2RlQ2hhbmdlLFxuICAgIG9uVW5kbzogcHJvcHMub25VbmRvLFxuICB9KVxuXG4gIGNvbnN0IHsgbW9kZSwgc2V0TW9kZSB9ID0gdmltSW5wdXRTdGF0ZVxuXG4gIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHByb3BzLmluaXRpYWxNb2RlICYmIHByb3BzLmluaXRpYWxNb2RlICE9PSBtb2RlKSB7XG4gICAgICBzZXRNb2RlKHByb3BzLmluaXRpYWxNb2RlKVxuICAgIH1cbiAgfSwgW3Byb3BzLmluaXRpYWxNb2RlLCBtb2RlLCBzZXRNb2RlXSlcblxuICByZXR1cm4gKFxuICAgIDxCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiPlxuICAgICAgPEJhc2VUZXh0SW5wdXRcbiAgICAgICAgaW5wdXRTdGF0ZT17dmltSW5wdXRTdGF0ZX1cbiAgICAgICAgdGVybWluYWxGb2N1cz17aXNUZXJtaW5hbEZvY3VzZWR9XG4gICAgICAgIGhpZ2hsaWdodHM9e3Byb3BzLmhpZ2hsaWdodHN9XG4gICAgICAgIHsuLi5wcm9wc31cbiAgICAgIC8+XG4gICAgPC9Cb3g+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU9BLEtBQUssTUFBTSxPQUFPO0FBQ3pCLE9BQU9DLEtBQUssTUFBTSxPQUFPO0FBQ3pCLFNBQVNDLHFCQUFxQixRQUFRLG1DQUFtQztBQUN6RSxTQUFTQyxXQUFXLFFBQVEseUJBQXlCO0FBQ3JELFNBQVNDLEdBQUcsRUFBRUMsS0FBSyxFQUFFQyxnQkFBZ0IsRUFBRUMsUUFBUSxRQUFRLFdBQVc7QUFDbEUsY0FBY0MsaUJBQWlCLFFBQVEsNEJBQTRCO0FBQ25FLGNBQWNDLGFBQWEsUUFBUSw4QkFBOEI7QUFDakUsU0FBU0MsYUFBYSxRQUFRLG9CQUFvQjtBQUVsRCxPQUFPLEtB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