184 lines
20 KiB
TypeScript
Raw Normal View History

2026-03-31 19:22:47 +08:00
import { c as _c } from "react/compiler-runtime";
import * as React from 'react';
import { useExitOnCtrlCDWithKeybindings } from 'src/hooks/useExitOnCtrlCDWithKeybindings.js';
import { useShortcutDisplay } from 'src/keybindings/useShortcutDisplay.js';
import { builtInCommandNames, type Command, type CommandResultDisplay, INTERNAL_ONLY_COMMANDS } from '../../commands.js';
import { useIsInsideModal } from '../../context/modalContext.js';
import { useTerminalSize } from '../../hooks/useTerminalSize.js';
import { Box, Link, Text } from '../../ink.js';
import { useKeybinding } from '../../keybindings/useKeybinding.js';
import { Pane } from '../design-system/Pane.js';
import { Tab, Tabs } from '../design-system/Tabs.js';
import { Commands } from './Commands.js';
import { General } from './General.js';
type Props = {
onClose: (result?: string, options?: {
display?: CommandResultDisplay;
}) => void;
commands: Command[];
};
export function HelpV2(t0) {
const $ = _c(44);
const {
onClose,
commands
} = t0;
const {
rows,
columns
} = useTerminalSize();
const maxHeight = Math.floor(rows / 2);
const insideModal = useIsInsideModal();
let t1;
if ($[0] !== onClose) {
t1 = () => onClose("Help dialog dismissed", {
display: "system"
});
$[0] = onClose;
$[1] = t1;
} else {
t1 = $[1];
}
const close = t1;
let t2;
if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
t2 = {
context: "Help"
};
$[2] = t2;
} else {
t2 = $[2];
}
useKeybinding("help:dismiss", close, t2);
const exitState = useExitOnCtrlCDWithKeybindings(close);
const dismissShortcut = useShortcutDisplay("help:dismiss", "Help", "esc");
let antOnlyCommands;
let builtinCommands;
let t3;
if ($[3] !== commands) {
const builtinNames = builtInCommandNames();
builtinCommands = commands.filter(cmd => builtinNames.has(cmd.name) && !cmd.isHidden);
let t4;
if ($[7] === Symbol.for("react.memo_cache_sentinel")) {
t4 = [];
$[7] = t4;
} else {
t4 = $[7];
}
antOnlyCommands = t4;
t3 = commands.filter(cmd_2 => !builtinNames.has(cmd_2.name) && !cmd_2.isHidden);
$[3] = commands;
$[4] = antOnlyCommands;
$[5] = builtinCommands;
$[6] = t3;
} else {
antOnlyCommands = $[4];
builtinCommands = $[5];
t3 = $[6];
}
const customCommands = t3;
let t4;
if ($[8] === Symbol.for("react.memo_cache_sentinel")) {
t4 = <Tab key="general" title="general"><General /></Tab>;
$[8] = t4;
} else {
t4 = $[8];
}
let tabs;
if ($[9] !== antOnlyCommands || $[10] !== builtinCommands || $[11] !== close || $[12] !== columns || $[13] !== customCommands || $[14] !== maxHeight) {
tabs = [t4];
let t5;
if ($[16] !== builtinCommands || $[17] !== close || $[18] !== columns || $[19] !== maxHeight) {
t5 = <Tab key="commands" title="commands"><Commands commands={builtinCommands} maxHeight={maxHeight} columns={columns} title="Browse default commands:" onCancel={close} /></Tab>;
$[16] = builtinCommands;
$[17] = close;
$[18] = columns;
$[19] = maxHeight;
$[20] = t5;
} else {
t5 = $[20];
}
tabs.push(t5);
let t6;
if ($[21] !== close || $[22] !== columns || $[23] !== customCommands || $[24] !== maxHeight) {
t6 = <Tab key="custom" title="custom-commands"><Commands commands={customCommands} maxHeight={maxHeight} columns={columns} title="Browse custom commands:" emptyMessage="No custom commands found" onCancel={close} /></Tab>;
$[21] = close;
$[22] = columns;
$[23] = customCommands;
$[24] = maxHeight;
$[25] = t6;
} else {
t6 = $[25];
}
tabs.push(t6);
if (false && antOnlyCommands.length > 0) {
let t7;
if ($[26] !== antOnlyCommands || $[27] !== close || $[28] !== columns || $[29] !== maxHeight) {
t7 = <Tab key="ant-only" title="[ant-only]"><Commands commands={antOnlyCommands} maxHeight={maxHeight} columns={columns} title="Browse ant-only commands:" onCancel={close} /></Tab>;
$[26] = antOnlyCommands;
$[27] = close;
$[28] = columns;
$[29] = maxHeight;
$[30] = t7;
} else {
t7 = $[30];
}
tabs.push(t7);
}
$[9] = antOnlyCommands;
$[10] = builtinCommands;
$[11] = close;
$[12] = columns;
$[13] = customCommands;
$[14] = maxHeight;
$[15] = tabs;
} else {
tabs = $[15];
}
const t5 = insideModal ? undefined : maxHeight;
let t6;
if ($[31] !== tabs) {
t6 = <Tabs title={false ? "/help" : `Claude Code v${MACRO.VERSION}`} color="professionalBlue" defaultTab="general">{tabs}</Tabs>;
$[31] = tabs;
$[32] = t6;
} else {
t6 = $[32];
}
let t7;
if ($[33] === Symbol.for("react.memo_cache_sentinel")) {
t7 = <Box marginTop={1}><Text>For more help:{" "}<Link url="https://code.claude.com/docs/en/overview" /></Text></Box>;
$[33] = t7;
} else {
t7 = $[33];
}
let t8;
if ($[34] !== dismissShortcut || $[35] !== exitState.keyName || $[36] !== exitState.pending) {
t8 = <Box marginTop={1}><Text dimColor={true}>{exitState.pending ? <>Press {exitState.keyName} again to exit</> : <Text italic={true}>{dismissShortcut} to cancel</Text>}</Text></Box>;
$[34] = dismissShortcut;
$[35] = exitState.keyName;
$[36] = exitState.pending;
$[37] = t8;
} else {
t8 = $[37];
}
let t9;
if ($[38] !== t6 || $[39] !== t8) {
t9 = <Pane color="professionalBlue">{t6}{t7}{t8}</Pane>;
$[38] = t6;
$[39] = t8;
$[40] = t9;
} else {
t9 = $[40];
}
let t10;
if ($[41] !== t5 || $[42] !== t9) {
t10 = <Box flexDirection="column" height={t5}>{t9}</Box>;
$[41] = t5;
$[42] = t9;
$[43] = t10;
} else {
t10 = $[43];
}
return t10;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUV4aXRPbkN0cmxDRFdpdGhLZXliaW5kaW5ncyIsInVzZVNob3J0Y3V0RGlzcGxheSIsImJ1aWx0SW5Db21tYW5kTmFtZXMiLCJDb21tYW5kIiwiQ29tbWFuZFJlc3VsdERpc3BsYXkiLCJJTlRFUk5BTF9PTkxZX0NPTU1BTkRTIiwidXNlSXNJbnNpZGVNb2RhbCIsInVzZVRlcm1pbmFsU2l6ZSIsIkJveCIsIkxpbmsiLCJUZXh0IiwidXNlS2V5YmluZGluZyIsIlBhbmUiLCJUYWIiLCJUYWJzIiwiQ29tbWFuZHMiLCJHZW5lcmFsIiwiUHJvcHMiLCJvbkNsb3NlIiwicmVzdWx0Iiwib3B0aW9ucyIsImRpc3BsYXkiLCJjb21tYW5kcyIsIkhlbHBWMiIsInQwIiwiJCIsIl9jIiwicm93cyIsImNvbHVtbnMiLCJtYXhIZWlnaHQiLCJNYXRoIiwiZmxvb3IiLCJpbnNpZGVNb2RhbCIsInQxIiwiY2xvc2UiLCJ0MiIsIlN5bWJvbCIsImZvciIsImNvbnRleHQiLCJleGl0U3RhdGUiLCJkaXNtaXNzU2hvcnRjdXQiLCJhbnRPbmx5Q29tbWFuZHMiLCJidWlsdGluQ29tbWFuZHMiLCJ0MyIsImJ1aWx0aW5OYW1lcyIsImZpbHRlciIsImNtZCIsImhhcyIsIm5hbWUiLCJpc0hpZGRlbiIsInQ0IiwiY21kXzIiLCJjdXN0b21Db21tYW5kcyIsInRhYnMiLCJ0NSIsInB1c2giLCJ0NiIsImxlbmd0aCIsInQ3IiwidW5kZWZpbmVkIiwiTUFDUk8iLCJWRVJTSU9OIiwidDgiLCJrZXlOYW1lIiwicGVuZGluZyIsInQ5IiwidDEwIl0sInNvdXJjZXMiOlsiSGVscFYyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZUV4aXRPbkN0cmxDRFdpdGhLZXliaW5kaW5ncyB9IGZyb20gJ3NyYy9ob29rcy91c2VFeGl0T25DdHJsQ0RXaXRoS2V5YmluZGluZ3MuanMnXG5pbXBvcnQgeyB1c2VTaG9ydGN1dERpc3BsYXkgfSBmcm9tICdzcmMva2V5YmluZGluZ3MvdXNlU2hvcnRjdXREaXNwbGF5LmpzJ1xuaW1wb3J0IHtcbiAgYnVpbHRJbkNvbW1hbmROYW1lcyxcbiAgdHlwZSBDb21tYW5kLFxuICB0eXBlIENvbW1hbmRSZXN1bHREaXNwbGF5LFxuICBJTlRFUk5BTF9PTkxZX0NPTU1BTkRTLFxufSBmcm9tICcuLi8uLi9jb21tYW5kcy5qcydcbmltcG9ydCB7IHVzZUlzSW5zaWRlTW9kYWwgfSBmcm9tICcuLi8uLi9jb250ZXh0L21vZGFsQ29udGV4dC5qcydcbmltcG9ydCB7IHVzZVRlcm1pbmFsU2l6ZSB9IGZyb20gJy4uLy4uL2hvb2tzL3VzZVRlcm1pbmFsU2l6ZS5qcydcbmltcG9ydCB7IEJveCwgTGluaywgVGV4dCB9IGZyb20gJy4uLy4uL2luay5qcydcbmltcG9ydCB7IHVzZUtleWJpbmRpbmcgfSBmcm9tICcuLi8uLi9rZXliaW5kaW5ncy91c2VLZXliaW5kaW5nLmpzJ1xuaW1wb3J0IHsgUGFuZSB9IGZyb20gJy4uL2Rlc2lnbi1zeXN0ZW0vUGFuZS5qcydcbmltcG9ydCB7IFRhYiwgVGFicyB9IGZyb20gJy4uL2Rlc2lnbi1zeXN0ZW0vVGFicy5qcydcbmltcG9ydCB7IENvbW1hbmRzIH0gZnJvbSAnLi9Db21tYW5kcy5qcydcbmltcG9ydCB7IEdlbmVyYWwgfSBmcm9tICcuL0dlbmVyYWwuanMnXG5cbnR5cGUgUHJvcHMgPSB7XG4gIG9uQ2xvc2U6IChcbiAgICByZXN1bHQ/OiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IHsgZGlzcGxheT86IENvbW1hbmRSZXN1bHREaXNwbGF5IH0sXG4gICkgPT4gdm9pZFxuICBjb21tYW5kczogQ29tbWFuZFtdXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBIZWxwVjIoeyBvbkNsb3NlLCBjb21tYW5kcyB9OiBQcm9wcyk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gIGNvbnN0IHsgcm93cywgY29sdW1ucyB9ID0gdXNlVGVybWluYWxTaXplKClcbiAgY29uc3QgbWF4SGVpZ2h0ID0gTWF0aC5mbG9vcihyb3dzIC8gMilcbiAgLy8gSW5zaWRlIHRoZSBtb2RhbCBzbG90LCBGdWxsc2NyZWVuTGF5b3V0IGFscmVhZHkgY2FwcyBoZWlnaHQgYW5kIFBhbmUvVGFic1xuICAvLyB1c2UgZmxleFNocmluaz0wIChzZWUgIzIzNTkyKSDigJQgb3VyIG93biBoZWlnaHQ9IGNvbnN0cmFpbnQgd291bGQgY2xpcCB0aGVcbiAgLy8gZm9vdGVyIHNpbmNlIFRhYnMgd29uJ3Qgc2hyaW5rIHRvIGZpdC4gTGV0IHRoZSBtb2RhbCBzbG90IGhhbmRsZSBzaXppbmcuXG4gIGNvbnN0IGluc2lkZU1vZGFsID0gdXNlSXNJbnNpZGVNb2RhbCgpXG5cbiAgY29uc3QgY2xvc2UgPSAoKSA9PiBvbkNsb3NlKCdIZWxwIGRpYWxvZyBkaXNtaXNzZWQnLCB7IGRpc3BsYXk6ICdzeXN0ZW0nIH0pXG4gIHVzZUtleWJpbmRpbmcoJ2hlbHA6ZGlzbWlzcycsIGNsb3NlLCB7IGNvbnRleHQ6ICdIZWxwJyB9KVxuICBjb25zdCBleGl0U3RhdGUgPSB1c2VFeGl0T25DdHJsQ0RXaXRoS2V5YmluZGluZ3MoY2xvc2UpXG4gIGNvbnN0IGRpc21pc3NTaG9ydGN1dCA9IHVzZVNob3J0Y3V0RGlzcGxheSgnaGVscDpkaXNtaXNzJywgJ0hlbHAnLCAnZXNjJylcblxuICBjb25zdCBidWlsdGluTmFtZXMgPSBidWlsdEluQ29tbWFuZE5hbWVzKClcbiAgbGV0IGJ1aWx0aW5Db21tYW5kcyA9IGNvbW1hbmRzLmZpbHRlcihcbiAgICBjbWQgPT4gYnVpbHRpbk5hbWVzLmhhcyhjbWQubmFtZSkgJiYgIWNtZC5pc0hpZGRlbixcbiAgKVxuICBsZXQgYW50T25seUNvbW1hbmRzOiBDb21tYW5kW10gPSBbXVxuXG4gIC8vIFdlIGhhdmUgdG8gZG8gdGhpcyBpbiBhbiBgaWZgIHRvIGhlbHAgdHJlZXNoYWtpbmdcbiAgaWYgKFwiZXh0ZXJuYWxcIiA9PT0gJ2FudCcpIHtcbiAgICBjb25zdCBpbnRlcm5hbE9ubHlOYW1lcyA9IG5ldyBTZXQoSU5URVJOQUxfT05MWV9DT01NQU5EUy5tYXAoXyA9PiBfLm5hbWUpKVxuICAgIGJ1aWx0aW5Db21tYW5kcyA9IGJ1aWx0aW5Db21tYW5kcy5maWx0ZXIoXG4gICAgICBjbWQgPT4gIWludGVybmFsT25seU5hbWVzLmhhcyhjbWQubmFtZSksXG4gICAgKVxuICAgIGFudE9ubHlDb21tYW5kcyA9IGNvbW1hbmRzLmZpbHRlcihcbiAgICAgIGNtZCA9PiBpbnRlcm5hbE9ubHlOYW1lcy5oYXMoY21kLm5hbWUpICYmICFjbWQuaXNIaWRkZW4sXG4gICAgKVxuICB9XG5cbiAgY29uc3QgY3VzdG9tQ29tbWFuZHMgPSBjb21tYW5kcy5maWx