1.3 KiB
1.3 KiB
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).