/** * Utilities for formatting keybinding hints in the UI. */ import { getKeybindings, type Keybinding, type KeyId } from "@mariozechner/pi-tui"; import { theme } from "../theme/theme.js"; function formatKeys(keys: KeyId[]): string { if (keys.length === 0) return ""; if (keys.length === 1) return keys[0]!; return keys.join("/"); } export function keyText(keybinding: Keybinding): string { return formatKeys(getKeybindings().getKeys(keybinding)); } export function keyHint(keybinding: Keybinding, description: string): string { return theme.fg("dim", keyText(keybinding)) + theme.fg("muted", ` ${description}`); } export function rawKeyHint(key: string, description: string): string { return theme.fg("dim", key) + theme.fg("muted", ` ${description}`); }