qol-tray-ui-systemslisted
Install: claude install-skill qol-tools/qol-skills
# qol-tray UI Systems Reference
## Keyboard Navigation
Three layers, each a single source of truth:
### App Level (`useAppKeyboardRouting`)
Routes app-level keyboard flow. Priority: palette toggle > palette guard > plugin config > active view handler > global surface navigation.
- `Ctrl+E`: toggle command palette
- `Tab` / `Shift+Tab`: cycle top-level world views only when the camera is on layer 0 and nothing blocking is open
- Plugin config open: delegates to field navigation system
- Arrow keys / `Enter` / `Space` / `Escape` fall through to global surface navigation when the active view does not consume them
- Focus recovery: plugin-config close and view switches restore a selected surface
### List Level (`useListKeyboard`)
Shared hook for action keys in list-style views (hotkeys, shortcuts, task-runner, logs).
```javascript
useListKeyboard({ itemCount, selectedIndex, onAdd, onDelete, onEdit })
```
Standard bindings: `a` add, `Delete`/`Backspace` delete, `Enter` edit. Arrow movement comes from app-level surface navigation.
### Modal Level (`useModalKeyboard`)
Shared helper for editor forms used by hotkeys, shortcuts, and task-runner. Some render inside `ModalPreact`, some render inside world sub-pages.
```javascript
const { handleKey, fieldProps } = useModalKeyboard({ onSave })
```
- `Enter` or `Escape` inside a text input returns focus to the containing surface
- `Ctrl+Enter`: save from anywhere
- Clicking an empty field surface activates the first control, toggle, or