Lukas
768e7a390f
Improve empty encounter UX with interactive add button
...
CI / check (push) Successful in 44s
CI / build-image (push) Successful in 22s
Replace the static "No combatants yet" text with a centered, breathing
"+" icon that focuses the action bar input on click, guiding users to
add their first combatant.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-12 10:56:56 +01:00
Lukas
fc43f440aa
Toggle pin off when clicking pin on already-pinned creature
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-11 22:49:00 +01:00
Lukas
b6e052f198
Overhaul bottom bar: batch add, custom fields, stat block viewer
...
Unify the action bar into a single search input with inline bestiary
dropdown. Clicking a dropdown entry queues it with +/- count controls
and a confirm button; Enter or confirm adds N copies to combat.
When no bestiary match exists, optional Init/AC/MaxHP fields appear
for custom creatures. The eye icon opens a separate search dropdown
to preview stat blocks without leaving the add flow.
Fix batch-add bug where only the last creature got a creatureId by
using store.save() instead of setEncounter() in addFromBestiary.
Prevent dropdown buttons from stealing input focus so Enter confirms
the queued batch.
Remove the now-redundant BestiarySearch component.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-11 15:27:06 +01:00
Lukas
460c65bf49
Implement stat block panel fold/unfold and pin-to-second-panel
...
Replace the close button and heading with fold/unfold controls that
collapse the panel to a slim right-edge tab showing the creature name
vertically, and add a pin button (xl+ viewports with creature loaded)
that opens the creature in a second left-side panel for simultaneous
reference. Fold state is respected on turn change. 19 acceptance tests.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-11 14:18:15 +01:00
Lukas
55d322a727
Fix concentration glow clipping at container edges
...
Add padding to the inner combatant list container so the box-shadow glow
from the concentration-damage animation renders fully on all sides,
preventing clipping by the scrollable parent's implicit overflow-x.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-11 11:54:22 +01:00
Lukas
94d125d9c4
Implement the 030-bulk-import-sources feature that adds a one-click bulk import button to load all bestiary sources at once, with real-time progress feedback in the side panel and a toast notification when the panel is closed, plus completion/failure reporting with auto-dismiss on success and persistent display on partial failure, while also hardening the bestiary normalizer to handle variable stat blocks (spell summons with special AC/HP/CR) and skip malformed monster entries gracefully
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-10 23:29:34 +01:00
Lukas
91120d7c82
Implement the 029-on-demand-bestiary feature that replaces the bundled XMM bestiary JSON with a compact search index (~350KB) and on-demand source loading, where users explicitly provide a URL or upload a JSON file to fetch full stat block data per source, which is then normalized and cached in IndexedDB (with in-memory fallback) so creature stat blocks load instantly on subsequent visits while keeping the app bundle small and never auto-fetching copyrighted content
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-10 22:46:13 +01:00
Lukas
f029c1a85b
Implement the 027-ui-polish feature that adds six combatant row improvements (inline conditions, row-click stat block, hover-only remove button, AC shield shape, expanded concentration click target, larger d20 icon) plus top bar redesign with icon-only StepBack/StepForward navigation buttons, dark-themed scrollbars, and multiple UX fixes including stat block panel stability during initiative rolls and mobile touch safety for hidden buttons
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-10 19:00:49 +01:00
Lukas
d5f7b6ee36
Implement the 026-roll-initiative feature that adds d20 roll buttons for bestiary combatants' initiative using a click-to-edit pattern (d20 icon when empty, plain text when set), plus a Roll All button in the top bar that batch-rolls for all unrolled bestiary combatants, with randomness confined to the adapter layer and the domain receiving pre-resolved dice values
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-10 16:29:09 +01:00
Lukas
24198c25f1
Implement the 023-clear-encounter feature that adds a clear encounter button with confirmation dialog to remove all combatants and reset round/turn counters, with the cleared state persisting across page refreshes
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-09 13:43:42 +01:00
Lukas
11c4c0237e
Implement the 022-fixed-layout-bars feature that pins turn navigation to the top and add-creature bar to the bottom of the encounter tracker with only the combatant list scrolling between them, and auto-scrolls to the active combatant on turn change
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-09 11:36:59 +01:00
Lukas
fa078be2f9
Implement the 021-bestiary-statblock feature that adds a searchable D&D 2024 Monster Manual creature library with inline autocomplete suggestions, full stat block display in a fixed side panel, auto-numbering of duplicate creature names, HP/AC pre-fill from bestiary data, and automatic stat block display on turn change for wide viewports
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-09 11:01:07 +01:00
Lukas
e59fd83292
Implement the 018-combatant-concentration feature that adds a per-combatant concentration toggle with Brain icon, purple border accent, and damage pulse animation in the encounter tracker
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-06 14:41:59 +01:00
Lukas
febe892e15
Implement the 017-combat-conditions feature that adds D&D 5e status conditions to combatants with icon tags, color coding, and a compact toggle picker in the encounter tracker
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-06 11:29:39 +01:00
Lukas
78c6591973
Implement the 016-combatant-ac feature that adds an optional Armor Class field to combatants with shield icon display and inline editing in the encounter tracker
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-06 10:41:56 +01:00
Lukas
7d440677be
Implement the 012-turn-navigation feature that adds a RetreatTurn domain operation and relocates turn controls to a navigation bar at the top of the encounter tracker
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-05 23:11:11 +01:00
Lukas
1c40bf7889
Implement the 010-ui-baseline feature that establishes a modern UI using Tailwind CSS v4 and shadcn/ui-style components for the encounter screen
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-05 18:36:39 +01:00
Lukas
8185fde0e8
Implement the 009-combatant-hp feature that adds optional max HP and current HP tracking per combatant with +/- controls, direct entry, and persistence
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-05 17:18:03 +01:00
Lukas
fea2bfe39d
Implement the 005-set-initiative feature that adds initiative values to combatants with automatic descending sort and active turn preservation
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-04 17:26:41 +01:00
Lukas
a9df826fef
Implement the 004-edit-combatant feature that adds the possibility to change a combatants name
2026-03-04 10:05:13 +01:00
Lukas
aed234de7b
Implement the 003-remove-combatant feature that adds the possibility to remove a combatant from an encounter
2026-03-03 23:46:47 +01:00
Lukas
0de68100c8
Implement the 002-add-combatant feature that adds the possibility to add new combatants to an encounter
2026-03-03 23:12:20 +01:00
Lukas
4c2e0a47e6
T012–T016: Phase 3 application + web shell (use case, ports, React hook, UI, README)
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-03 13:11:33 +01:00
Lukas
7dd4abb12a
T001–T006: Phase 1 setup (workspace, Biome, TS, Vitest, layer boundary enforcement)
2026-03-03 12:55:19 +01:00