Skip to content

feat: chip-based player entry with session stat strip - #4

Merged
kangooroux merged 1 commit into
devfrom
feature/chip-player-entry
Jul 6, 2026
Merged

feat: chip-based player entry with session stat strip#4
kangooroux merged 1 commit into
devfrom
feature/chip-player-entry

Conversation

@kangooroux

Copy link
Copy Markdown
Owner

Summary

Reworks the player-entry UX from textareas to interactive chip inputs, and adds a session stat strip to the results view. Ported from the Claude Design "Session Summary" concept, adapted to the app's conventions (plain CSS, CSP-safe, a11y preserved). No backend changes — chips serialize into the existing players + custom_pod[] fields on submit.

Changes

  • Chip inputs replace the player/custom-pod textareas. Add via Enter, remove via the chip's × button, Backspace clears the last chip.
  • Custom tables: each is a card with a live n/4 count, a max of 4 players, and a guard against empties — "+ Add custom table" goes inert (dimmed, not-allowed) while any table is still empty.
  • Bulk entry preserved: pasting a list (newline/comma-separated) splits into multiple chips, and duplicates are de-duped case-insensitively.
  • Results stat strip (players / pods counts) + a dated subtitle in the results header; Print pushed to the opposite edge.
  • All new styling in app.css (plain CSS, rem, existing tokens); all interactivity in app.js (no inline styles/handlers → CSP-safe).

Files

  • templates/group/index.html.twig
  • public/css/app.css
  • public/js/app.js

Verification done locally

  • node --check public/js/app.js passes.
  • End-to-end round-trip: submit (serialized players + custom_pod[]) → results render with correct player/pod counts → remaining players re-seed as chips from session rawInput.

To verify in review

  • Browser: add/remove chips, paste a list, per-table n/4 count, add-table guard toggling inert.
  • Light + dark themes.
  • Keyboard + screen-reader flow (sr-live announcements, aria-labels).
  • Multi-round: Randomize → Next Round → Reset.
  • Print view unaffected.

- Replace player and custom-pod textareas with removable chip inputs
- Custom tables: per-table n/4 count, guard against empty tables, paste/newline splitting, max 4
- Serialize chips into the existing players + custom_pod[] fields on submit (no backend change)
- Add results stat strip (players/pods count) and dated subtitle in the header
@kangooroux
kangooroux force-pushed the feature/chip-player-entry branch from e051f6c to c5b5cdd Compare July 6, 2026 12:17
@kangooroux
kangooroux merged commit 06dffdb into dev Jul 6, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant