-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Implement global keybinding system with scope management and KeybindingProvider
Type: engineering
Domain: Codeplane TUI
Create the KeybindingProvider and global keybinding infrastructure consumed by all screens. (1) providers/KeybindingProvider.tsx: manages keybinding scopes (global, screen, overlay), resolves key events through priority layers (text input → modal → go-to mode → screen → global), provides registerKeybinding/unregisterKeybinding via context. (2) hooks/useGlobalKeybindings.ts: registers the always-active global keybindings — ? (toggle help), : (open command palette), q (pop screen / quit on root), Esc (close overlay or same as q), Ctrl+C (immediate quit). (3) Keybinding registration: { key: string, scope: 'global'|'screen'|'overlay', handler: () => void, description: string, when?: () => boolean }. (4) Scope priority: overlay > screen > global. (5) Input suppression: when a text input has focus, single-character keybindings are suppressed (only Ctrl/Esc/Enter reach the keybinding system). (6) useKeybindings() consumer hook for screen-specific bindings.
Dependencies: tui-bootstrap-and-renderer, tui-navigation-provider
Auto-generated by smithers workflow