import { c as _c } from "react/compiler-runtime"; import * as React from 'react'; import { useMemo } from 'react'; import { type Command, formatDescriptionWithSource } from '../../commands.js'; import { Box, Text } from '../../ink.js'; import { truncate } from '../../utils/format.js'; import { Select } from '../CustomSelect/select.js'; import { useTabHeaderFocus } from '../design-system/Tabs.js'; type Props = { commands: Command[]; maxHeight: number; columns: number; title: string; onCancel: () => void; emptyMessage?: string; }; export function Commands(t0) { const $ = _c(14); const { commands, maxHeight, columns, title, onCancel, emptyMessage } = t0; const { headerFocused, focusHeader } = useTabHeaderFocus(); const maxWidth = Math.max(1, columns - 10); const visibleCount = Math.max(1, Math.floor((maxHeight - 10) / 2)); let t1; if ($[0] !== commands || $[1] !== maxWidth) { const seen = new Set(); let t2; if ($[3] !== maxWidth) { t2 = cmd_0 => ({ label: `/${cmd_0.name}`, value: cmd_0.name, description: truncate(formatDescriptionWithSource(cmd_0), maxWidth, true) }); $[3] = maxWidth; $[4] = t2; } else { t2 = $[4]; } t1 = commands.filter(cmd => { if (seen.has(cmd.name)) { return false; } seen.add(cmd.name); return true; }).sort(_temp).map(t2); $[0] = commands; $[1] = maxWidth; $[2] = t1; } else { t1 = $[2]; } const options = t1; let t2; if ($[5] !== commands.length || $[6] !== emptyMessage || $[7] !== focusHeader || $[8] !== headerFocused || $[9] !== onCancel || $[10] !== options || $[11] !== title || $[12] !== visibleCount) { t2 = {commands.length === 0 && emptyMessage ? {emptyMessage} : <>{title}