asciitorium
Version:
an ASCII CLUI framework
29 lines (28 loc) • 849 B
TypeScript
import { Component } from './Component.js';
import { State } from './State.js';
export declare class FocusManager {
private contextStack;
private index;
private hotkeyMap;
hotkeyVisibilityState: State<boolean>;
private static readonly RESERVED_KEYS;
pushContext(components: Component[]): void;
popContext(): void;
private get currentContext();
private setFocus;
private clearFocus;
focusNext(): void;
focusPrevious(): void;
/**
* Unified key handling for both hotkeys and navigation
*/
handleKey(key: string): boolean;
reset(component: Component): void;
refresh(component: Component): void;
/**
* Build hotkey map from focusable components
*/
private buildHotkeyMap;
private isReservedKey;
getFocusableDescendants(parent: Component): Component[];
}