/** * CompletionPopup is the list shown above the composer while an "@" or "/" * selector is active: label, description, and a source tag for skills and * agent commands. Selection happens with the keyboard (handled by the * composer) or the mouse. * * @example * */ import type { CompletionItem } from "../mentions"; interface CompletionPopupProps { items: CompletionItem[]; active: number; onHover: (index: number) => void; onPick: (item: CompletionItem) => void; } const sourceLabels: Record = { file: "", skill: "skill", command: "command", }; // The popup is a combobox listbox driven from the textarea (which carries // aria-activedescendant), not a form