No description
Booking a line meant scrolling a native <select> of 44 machines, where two dozen near-identical "CASE TLB" entries sit next to each other. A native select cannot be filtered, so finding TLB07 meant scrolling past most of the list. Replaced with a combobox that filters as you type, on the code, the name or the category, and says how many of 44 machines matched. Still behaves like a select rather than a text box: opening it, Up/Down to move, Enter to choose, Escape to cancel, and a "Not booked" entry to clear. The list stays grouped by category so the codes read the way the plant register does, and every row is a 44px target with the list scrolling within its own box, so it stays usable on a phone. It is an ARIA combobox — aria-expanded, aria-autocomplete, aria-controls — and the highlighted row scrolls into view as you arrow through it. Booking behaviour is unchanged: still posts on selection, still rolls the display back if the save fails, still refreshes on success. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .mavis/canvas-assets | ||
| app | ||
| components | ||
| data/source | ||
| lib | ||
| public | ||
| scripts | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| AGENTS.md | ||
| COOLIFY.md | ||
| Dockerfile | ||
| HANDOFF-PROMPT-2.md | ||
| HANDOFF-PROMPT-3.md | ||
| HANDOFF-PROMPT-4.md | ||
| HANDOFF-PROMPT.md | ||
| next.config.ts | ||
| package-lock.json | ||
| package.json | ||
| postcss.config.mjs | ||
| tsconfig.json | ||