mirror of
http://10.0.2.1:3031/sauer/claude-code.git
synced 2026-06-30 13:36:57 +10:00
112 lines
14 KiB
TypeScript
112 lines
14 KiB
TypeScript
|
|
import { c as _c } from "react/compiler-runtime";
|
||
|
|
import figures from 'figures';
|
||
|
|
import React, { useState } from 'react';
|
||
|
|
import type { KeyboardEvent } from '../../ink/events/keyboard-event.js';
|
||
|
|
import { Box, Text } from '../../ink.js';
|
||
|
|
import { AGENT_COLOR_TO_THEME_COLOR, AGENT_COLORS, type AgentColorName } from '../../tools/AgentTool/agentColorManager.js';
|
||
|
|
import { capitalize } from '../../utils/stringUtils.js';
|
||
|
|
type ColorOption = AgentColorName | 'automatic';
|
||
|
|
const COLOR_OPTIONS: ColorOption[] = ['automatic', ...AGENT_COLORS];
|
||
|
|
type Props = {
|
||
|
|
agentName: string;
|
||
|
|
currentColor?: AgentColorName | 'automatic';
|
||
|
|
onConfirm: (color: AgentColorName | undefined) => void;
|
||
|
|
};
|
||
|
|
export function ColorPicker(t0) {
|
||
|
|
const $ = _c(17);
|
||
|
|
const {
|
||
|
|
agentName,
|
||
|
|
currentColor: t1,
|
||
|
|
onConfirm
|
||
|
|
} = t0;
|
||
|
|
const currentColor = t1 === undefined ? "automatic" : t1;
|
||
|
|
let t2;
|
||
|
|
if ($[0] !== currentColor) {
|
||
|
|
t2 = COLOR_OPTIONS.findIndex(opt => opt === currentColor);
|
||
|
|
$[0] = currentColor;
|
||
|
|
$[1] = t2;
|
||
|
|
} else {
|
||
|
|
t2 = $[1];
|
||
|
|
}
|
||
|
|
const [selectedIndex, setSelectedIndex] = useState(Math.max(0, t2));
|
||
|
|
let t3;
|
||
|
|
if ($[2] !== onConfirm || $[3] !== selectedIndex) {
|
||
|
|
t3 = e => {
|
||
|
|
if (e.key === "up") {
|
||
|
|
e.preventDefault();
|
||
|
|
setSelectedIndex(_temp);
|
||
|
|
} else {
|
||
|
|
if (e.key === "down") {
|
||
|
|
e.preventDefault();
|
||
|
|
setSelectedIndex(_temp2);
|
||
|
|
} else {
|
||
|
|
if (e.key === "return") {
|
||
|
|
e.preventDefault();
|
||
|
|
const selected = COLOR_OPTIONS[selectedIndex];
|
||
|
|
onConfirm(selected === "automatic" ? undefined : selected);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
};
|
||
|
|
$[2] = onConfirm;
|
||
|
|
$[3] = selectedIndex;
|
||
|
|
$[4] = t3;
|
||
|
|
} else {
|
||
|
|
t3 = $[4];
|
||
|
|
}
|
||
|
|
const handleKeyDown = t3;
|
||
|
|
const selectedValue = COLOR_OPTIONS[selectedIndex];
|
||
|
|
let t4;
|
||
|
|
if ($[5] !== selectedIndex) {
|
||
|
|
t4 = COLOR_OPTIONS.map((option, index) => {
|
||
|
|
const isSelected = index === selectedIndex;
|
||
|
|
return <Box key={option} flexDirection="row" gap={1}><Text color={isSelected ? "suggestion" : undefined}>{isSelected ? figures.pointer : " "}</Text>{option === "automatic" ? <Text bold={isSelected}>Automatic color</Text> : <Box gap={1}><Text backgroundColor={AGENT_COLOR_TO_THEME_COLOR[option]} color="inverseText">{" "}</Text><Text bold={isSelected}>{capitalize(option)}</Text></Box>}</Box>;
|
||
|
|
});
|
||
|
|
$[5] = selectedIndex;
|
||
|
|
$[6] = t4;
|
||
|
|
} else {
|
||
|
|
t4 = $[6];
|
||
|
|
}
|
||
|
|
let t5;
|
||
|
|
if ($[7] !== t4) {
|
||
|
|
t5 = <Box flexDirection="column">{t4}</Box>;
|
||
|
|
$[7] = t4;
|
||
|
|
$[8] = t5;
|
||
|
|
} else {
|
||
|
|
t5 = $[8];
|
||
|
|
}
|
||
|
|
let t6;
|
||
|
|
if ($[9] === Symbol.for("react.memo_cache_sentinel")) {
|
||
|
|
t6 = <Text>Preview: </Text>;
|
||
|
|
$[9] = t6;
|
||
|
|
} else {
|
||
|
|
t6 = $[9];
|
||
|
|
}
|
||
|
|
let t7;
|
||
|
|
if ($[10] !== agentName || $[11] !== selectedValue) {
|
||
|
|
t7 = <Box marginTop={1}>{t6}{selectedValue === undefined || selectedValue === "automatic" ? <Text inverse={true} bold={true}>{" "}@{agentName}{" "}</Text> : <Text backgroundColor={AGENT_COLOR_TO_THEME_COLOR[selectedValue]} color="inverseText" bold={true}>{" "}@{agentName}{" "}</Text>}</Box>;
|
||
|
|
$[10] = agentName;
|
||
|
|
$[11] = selectedValue;
|
||
|
|
$[12] = t7;
|
||
|
|
} else {
|
||
|
|
t7 = $[12];
|
||
|
|
}
|
||
|
|
let t8;
|
||
|
|
if ($[13] !== handleKeyDown || $[14] !== t5 || $[15] !== t7) {
|
||
|
|
t8 = <Box flexDirection="column" gap={1} tabIndex={0} autoFocus={true} onKeyDown={handleKeyDown}>{t5}{t7}</Box>;
|
||
|
|
$[13] = handleKeyDown;
|
||
|
|
$[14] = t5;
|
||
|
|
$[15] = t7;
|
||
|
|
$[16] = t8;
|
||
|
|
} else {
|
||
|
|
t8 = $[16];
|
||
|
|
}
|
||
|
|
return t8;
|
||
|
|
}
|
||
|
|
function _temp2(prev_0) {
|
||
|
|
return prev_0 < COLOR_OPTIONS.length - 1 ? prev_0 + 1 : 0;
|
||
|
|
}
|
||
|
|
function _temp(prev) {
|
||
|
|
return prev > 0 ? prev - 1 : COLOR_OPTIONS.length - 1;
|
||
|
|
}
|
||
|
|
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmaWd1cmVzIiwiUmVhY3QiLCJ1c2VTdGF0ZSIsIktleWJvYXJkRXZlbnQiLCJCb3giLCJUZXh0IiwiQUdFTlRfQ09MT1JfVE9fVEhFTUVfQ09MT1IiLCJBR0VOVF9DT0xPUlMiLCJBZ2VudENvbG9yTmFtZSIsImNhcGl0YWxpemUiLCJDb2xvck9wdGlvbiIsIkNPTE9SX09QVElPTlMiLCJQcm9wcyIsImFnZW50TmFtZSIsImN1cnJlbnRDb2xvciIsIm9uQ29uZmlybSIsImNvbG9yIiwiQ29sb3JQaWNrZXIiLCJ0MCIsIiQiLCJfYyIsInQxIiwidW5kZWZpbmVkIiwidDIiLCJmaW5kSW5kZXgiLCJvcHQiLCJzZWxlY3RlZEluZGV4Iiwic2V0U2VsZWN0ZWRJbmRleCIsIk1hdGgiLCJtYXgiLCJ0MyIsImUiLCJrZXkiLCJwcmV2ZW50RGVmYXVsdCIsIl90ZW1wIiwiX3RlbXAyIiwic2VsZWN0ZWQiLCJoYW5kbGVLZXlEb3duIiwic2VsZWN0ZWRWYWx1ZSIsInQ0IiwibWFwIiwib3B0aW9uIiwiaW5kZXgiLCJpc1NlbGVjdGVkIiwicG9pbnRlciIsInQ1IiwidDYiLCJTeW1ib2wiLCJmb3IiLCJ0NyIsInQ4IiwicHJldl8wIiwicHJldiIsImxlbmd0aCJdLCJzb3VyY2VzIjpbIkNvbG9yUGlja2VyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZmlndXJlcyBmcm9tICdmaWd1cmVzJ1xuaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IEtleWJvYXJkRXZlbnQgfSBmcm9tICcuLi8uLi9pbmsvZXZlbnRzL2tleWJvYXJkLWV2ZW50LmpzJ1xuaW1wb3J0IHsgQm94LCBUZXh0IH0gZnJvbSAnLi4vLi4vaW5rLmpzJ1xuaW1wb3J0IHtcbiAgQUdFTlRfQ09MT1JfVE9fVEhFTUVfQ09MT1IsXG4gIEFHRU5UX0NPTE9SUyxcbiAgdHlwZSBBZ2VudENvbG9yTmFtZSxcbn0gZnJvbSAnLi4vLi4vdG9vbHMvQWdlbnRUb29sL2FnZW50Q29sb3JNYW5hZ2VyLmpzJ1xuaW1wb3J0IHsgY2FwaXRhbGl6ZSB9IGZyb20gJy4uLy4uL3V0aWxzL3N0cmluZ1V0aWxzLmpzJ1xuXG50eXBlIENvbG9yT3B0aW9uID0gQWdlbnRDb2xvck5hbWUgfCAnYXV0b21hdGljJ1xuXG5jb25zdCBDT0xPUl9PUFRJT05TOiBDb2xvck9wdGlvbltdID0gWydhdXRvbWF0aWMnLCAuLi5BR0VOVF9DT0xPUlNdXG5cbnR5cGUgUHJvcHMgPSB7XG4gIGFnZW50TmFtZTogc3RyaW5nXG4gIGN1cnJlbnRDb2xvcj86IEFnZW50Q29sb3JOYW1lIHwgJ2F1dG9tYXRpYydcbiAgb25Db25maXJtOiAoY29sb3I6IEFnZW50Q29sb3JOYW1lIHwgdW5kZWZpbmVkKSA9PiB2b2lkXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBDb2xvclBpY2tlcih7XG4gIGFnZW50TmFtZSxcbiAgY3VycmVudENvbG9yID0gJ2F1dG9tYXRpYycsXG4gIG9uQ29uZmlybSxcbn06IFByb3BzKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgY29uc3QgW3NlbGVjdGVkSW5kZXgsIHNldFNlbGVjdGVkSW5kZXhdID0gdXNlU3RhdGUoXG4gICAgTWF0aC5tYXgoXG4gICAgICAwLFxuICAgICAgQ09MT1JfT1BUSU9OUy5maW5kSW5kZXgob3B0ID0+IG9wdCA9PT0gY3VycmVudENvbG9yKSxcbiAgICApLFxuICApXG5cbiAgY29uc3QgaGFuZGxlS2V5RG93biA9IChlOiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgaWYgKGUua2V5ID09PSAndXAnKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgIHNldFNlbGVjdGVkSW5kZXgocHJldiA9PiAocHJldiA+IDAgPyBwcmV2IC0gMSA6IENPTE9SX09QVElPTlMubGVuZ3RoIC0gMSkpXG4gICAgfSBlbHNlIGlmIChlLmtleSA9PT0gJ2Rvd24nKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgIHNldFNlbGVjdGVkSW5kZXgocHJldiA9PiAocHJldiA8IENPTE9SX09QVElPTlMubGVuZ3RoIC0gMSA/IHByZXYgKyAxIDogMCkpXG4gICAgfSBlbHNlIGlmIChlLmtleSA9PT0gJ3JldHVybicpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgY29uc3Qgc2VsZWN0ZWQgPSBDT0xPUl9PUFRJT05TW3NlbGVjdGVkSW5kZXhdXG4gICAgICBvbkNvbmZpcm0oc2VsZWN0ZWQgPT09ICdhdXRvbWF0aWMnID8gdW5kZWZpbmVkIDogc2VsZWN0ZWQpXG4gICAgfVxuICB9XG5cbiAgY29uc3Qgc2VsZWN0ZWRWYWx1ZSA9IENPTE9SX09QVElPTlNbc2VsZWN0ZWRJbmRleF1cblxuICByZXR1cm4gKFxuICAgIDxCb3hcbiAgICAgIGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAgZ2FwPXsxfVxuICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICBhdXRvRm9jdXNcbiAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICA+XG4gICAgICA8Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIj5cbiAgICAgICAge0NPTE9SX09QVElPTlMubWFwKChvcHRpb24sIGluZGV4KSA9PiB7XG4gICAgICAgICAgY29uc3QgaXNTZWxlY3RlZCA9IGluZGV4ID09PSBzZWxlY3RlZEluZGV4XG5cbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPEJveCBrZXk9e29wdGlvbn0gZmxleERpcmVjdGlvbj1cInJvd1wiIGdhcD17MX0+XG4gICAgICAgICAgICAgIDxUZXh0IGNvbG9yPXtpc1NlbGVjdGVkID8gJ3N1Z2dlc3Rpb24nIDogdW5kZWZpbmVkfT5cbiAgICAgICAgICAgICAgICB7aXNTZWxlY3RlZCA/IGZpZ3VyZXMucG9pbnRlciA6ICcgJ31cbiAgICAgICAgICAgICAgPC9UZXh0PlxuXG4gICAgICAgICAgICAgIHtvcHRpb24gPT09ICdhdXRvbWF0aWMnID8gKFxuICAgICAgICAgICAgICAgIDxUZXh0IGJvbGQ9e2lzU2VsZWN0ZWR9PkF1dG9tYXRpYyBjb2xvcjwvVGV4dD5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8Qm94IGdhcD17MX0+XG4gICAgICAgICAgICAgICAgICA8VGV4dFxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I9e0FHRU5UX0NPTE9SX1RPX1RIRU1FX0NPTE9SW29wdGlvbl19XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yPVwiaW52ZXJzZVRleHRcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7JyAnfVxuICAgICAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgICA
|