Refactor combatant row: single-click rename, book icon for stat blocks
Replace 250ms click timer and double-click detection with immediate single-click rename for all combatant types. Add a BookOpen icon before the name on bestiary rows as the dedicated stat block trigger. Remove auto-show stat block on turn advance. Update specs to match: consistent collapse/expand terminology, book icon requirements, no row-click stat block behavior. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -419,16 +419,15 @@ Acceptance scenarios:
|
||||
3. **Given** any combatant row, **When** hovered and concentration is inactive, **Then** the Brain icon becomes visible.
|
||||
4. **Given** the remove button appears on hover, **Then** no layout shift occurs — space is reserved.
|
||||
|
||||
**Story ROW-3 — Row Click Opens Stat Block (P1)**
|
||||
As a DM, I want to click anywhere on a bestiary combatant row to open its stat block so I have a large click target and a cleaner row without a dedicated book icon.
|
||||
**Story ROW-3 — Book Icon Opens Stat Block (P1)**
|
||||
As a DM, I want a dedicated book icon on bestiary combatant rows so I can open the stat block with an explicit, discoverable control — while clicking the name always starts a rename.
|
||||
|
||||
Acceptance scenarios:
|
||||
1. **Given** a combatant has a linked bestiary creature, **When** the user clicks the name text or empty row space, **Then** the stat block panel opens.
|
||||
2. **Given** the user clicks an interactive element (initiative, HP, AC, condition icon, "+", "x", concentration), **Then** the stat block does NOT open — the element's own action fires.
|
||||
3. **Given** a combatant does NOT have a linked creature, **When** the row is clicked, **Then** nothing happens.
|
||||
4. **Given** viewing any bestiary combatant row, **Then** no BookOpen icon is visible.
|
||||
5. **Given** a bestiary combatant row, **When** the user hovers over non-interactive areas, **Then** the cursor indicates clickability.
|
||||
6. **Given** the stat block is already open for a creature, **When** the same row is clicked, **Then** the panel closes (toggle behavior).
|
||||
1. **Given** a combatant has a linked bestiary creature, **When** the user views the row, **Then** a small BookOpen icon is visible next to the name.
|
||||
2. **Given** a combatant does NOT have a linked creature, **When** the user views the row, **Then** no BookOpen icon is displayed.
|
||||
3. **Given** a bestiary combatant row, **When** the user clicks the BookOpen icon, **Then** the stat block panel opens for that creature.
|
||||
4. **Given** the user clicks the combatant's name, **Then** inline rename mode is entered — the stat block does NOT open.
|
||||
5. **Given** the stat block is already open for a creature, **When** the user clicks its BookOpen icon again, **Then** the panel closes (toggle behavior).
|
||||
|
||||
### Requirements
|
||||
|
||||
@@ -436,10 +435,10 @@ Acceptance scenarios:
|
||||
- **FR-081**: The "+" condition button MUST be hidden at rest and appear on row hover (or touch/focus on touch devices).
|
||||
- **FR-082**: The remove (x) button MUST be hidden at rest and appear on row hover (or touch/focus on touch devices).
|
||||
- **FR-083**: Layout space for the remove button MUST be reserved so appearing/disappearing does not cause layout shifts.
|
||||
- **FR-084**: Clicking non-interactive areas of a bestiary combatant row MUST open the stat block panel.
|
||||
- **FR-085**: Clicking interactive elements (initiative, HP, AC, conditions, "+", "x", concentration) MUST NOT trigger the stat block — only the element's own action.
|
||||
- **FR-086**: The BookOpen icon MUST be removed from the combatant row.
|
||||
- **FR-087**: Bestiary combatant rows MUST show a pointer cursor on hover over non-interactive areas.
|
||||
- **FR-084**: Bestiary-linked combatant rows MUST display a BookOpen icon as the dedicated stat block trigger (see also `specs/004-bestiary/spec.md`, FR-062).
|
||||
- **FR-085**: Clicking the combatant name MUST enter inline rename mode, not open the stat block.
|
||||
- **FR-086**: Non-bestiary combatant rows MUST NOT display the BookOpen icon.
|
||||
- **FR-087**: The BookOpen icon MUST have a tooltip ("View stat block") and `aria-label="View stat block"` for accessibility.
|
||||
- **FR-088**: All existing interactions (condition add/remove, HP adjustment, AC editing, initiative editing/rolling, concentration toggle, combatant removal) MUST continue to work.
|
||||
- **FR-089**: Browser scrollbars MUST be styled to match the dark UI theme (thin, dark-colored scrollbar thumbs).
|
||||
- **FR-090**: Turn navigation (Previous/Next) MUST use StepBack/StepForward icons in outline button style with foreground-colored borders. Utility actions (d20/trash) MUST use ghost button style to create clear visual hierarchy.
|
||||
@@ -452,8 +451,8 @@ Acceptance scenarios:
|
||||
|
||||
- When a combatant has so many conditions that they exceed the available inline space, they wrap within the name column; row height increases but width does not.
|
||||
- The condition picker dropdown positions relative to the "+" button, flipping vertically if near the viewport edge.
|
||||
- When the stat block panel is already open and the user clicks the same row again, the panel closes.
|
||||
- Clicking the initiative area starts editing; it does not open the stat block.
|
||||
- When the stat block panel is already open and the user clicks the same BookOpen icon again, the panel closes.
|
||||
- Clicking the combatant name starts inline rename; it does not open the stat block.
|
||||
- Tablet-width screens (>= 768 px / Tailwind `md`): popovers and inline edits MUST remain accessible and not overflow or clip.
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user