# @nebula/core-input

Action-based input abstraction for controller-first apps. Converts raw device events into app-level actions.

## What it does

- Normalizes device input into a consistent `InputEvent` shape.
- Maps physical controls to logical actions (e.g. confirm, back).
- Emits action updates with `value` and `active` state.

## Key concepts

- **InputEvent**: Normalized event with `source`, `control`, `type`, and `value`.
- **InputBinding**: Maps a physical control to an action name.
- **ActionUpdate**: The emitted result when an input matches a binding.

## Typical use cases

- Gamepad-first UIs that should work across Deck, Xbox, and PlayStation layouts.
- Unified handling of keyboard and controller inputs without coupling to hardware.
- Action-driven UI logic (confirm/back/menu) instead of button-driven logic.
