Files
initiative/specs/019-combatant-row-declutter/data-model.md

30 lines
1.3 KiB
Markdown

# Data Model: Combatant Row Declutter
**Feature**: 019-combatant-row-declutter
**Date**: 2026-03-06
## No Data Model Changes
This feature is a purely visual/interaction refactor within the web adapter layer. No domain entities, application state, or persistence formats are affected.
### Existing entities (unchanged)
- **Combatant**: `id`, `name`, `initiative`, `maxHp`, `currentHp`, `ac`, `conditions`, `isConcentrating` — no fields added, removed, or modified.
### Existing callbacks (unchanged)
- `onAdjustHp(id: CombatantId, delta: number)` — same signature, now triggered from popover instead of inline QuickHpInput.
- `onSetAc(id: CombatantId, value: number | undefined)` — same signature, now triggered from click-to-edit instead of always-visible input.
### UI State (component-local only)
New component-local state introduced in the HP popover (not persisted):
- **popoverOpen**: boolean — whether the HP adjustment popover is visible.
- **inputValue**: string — the draft delta value in the popover input.
New component-local state in the AC click-to-edit (not persisted):
- **editing**: boolean — whether the inline AC edit input is visible.
- **draft**: string — the draft AC value being edited.
These follow the same patterns as existing component-local state (`EditableName.editing`, `ConditionPicker` open state).