feat(ui): keep bench selects open

This commit is contained in:
vyctorbrzezowski
2026-08-22 08:29:04 -03:00
parent 20192e307e
commit de4a749eb4
3 changed files with 18 additions and 0 deletions
+1
View File
@@ -240,3 +240,4 @@
2026-08-22 09:13 · Reduced the composer underlap to one precedence-ordered status lane, kept terminal interruption with the assistant transcript, and added the three mixed-state sweep fixtures · ui/src/pages/chat/chat-pane-render.ts, ui/src/pages/chat/chat-view.ts, ui/src/pages/chat/components/chat-composer-types.ts, ui/src/pages/chat/components/chat-composer-view.ts, ui/src/pages/chat/components/chat-message-group.ts, ui/src/pages/chat/components/chat-thread-interactions.ts, ui/src/pages/chat/components/chat-transcript-projection.ts, ui/src/pages/chat/components/chat-working-indicator.ts, ui/src/styles/chat/layout.css, ui/src/styles/chat/tool-cards.css, ui/src/test-helpers/composer-bench.ts · COMPONENT #124301 multiline | BENCH
2026-08-22 09:22 · Matched the Plan hover card to the 600ms open, 300ms close and 100ms fade-scale-slide interaction contract while preserving hover across the card · ui/src/components/session-progress-card.ts, ui/src/styles/chat/progress-card.css · COMPONENT #124301 multiline | BENCH
2026-08-22 09:31 · Completed queue double-click editing with caret-at-end focus, Enter submit and Escape cancel through the existing inline editor · ui/src/pages/chat/components/chat-composer-queue.ts · COMPONENT #124301 multiline | BENCH
2026-08-22 09:38 · Kept bench disclosure selects open across live choices and added ArrowUp and ArrowDown selection while retaining header, Escape and outside-click dismissal · ui/src/test-helpers/composer-bench.ts · COMPONENT #124301 multiline | BENCH
+1
View File
@@ -132,6 +132,7 @@ Local-only working ledger. Re-read after every implementation block; move an ite
- [x] Add Interrupted + members, offline + read-only and approval + offline sweep fixtures.
- [x] Match the Plan hover card delays and 100ms fade, scale and upward-slide transition.
- [x] Complete queue double-click editing with caret-at-end focus, Enter submit and Escape cancel.
- [x] Keep bench disclosures open while selecting and support live ArrowUp and ArrowDown changes.
## Observed queue contract
+16
View File
@@ -2077,6 +2077,22 @@ benchDisclosures.forEach((disclosure) => {
if (other !== disclosure) other.open = false;
});
});
disclosure.addEventListener("keydown", (event) => {
if (!disclosure.open || !["ArrowUp", "ArrowDown"].includes(event.key)) return;
const options = [
...disclosure.querySelectorAll<HTMLButtonElement>(
"[data-bench-axis][data-bench-value]:not(:disabled)",
),
];
if (options.length === 0) return;
event.preventDefault();
const activeIndex = options.findIndex((option) => option.hasAttribute("data-active"));
const direction = event.key === "ArrowUp" ? -1 : 1;
const nextIndex = (Math.max(activeIndex, 0) + direction + options.length) % options.length;
const nextOption = options[nextIndex];
nextOption?.click();
nextOption?.focus({ preventScroll: true });
});
});
document.addEventListener("pointerdown", (event) => {
const target = event.target;