hermes-agent/apps/desktop/src/app/chat
Brooklyn Nicholson c2fb651c5e refactor(desktop): formalize row-as-button primitive (RowButton)
Finding 2 of the desktop UI-consistency pass. Several surfaces intentionally
make an entire row/cell the click target while hosting nested layout inside a
raw <button> (each re-justifying the pattern in a local comment). Introduce a
zero-style RowButton primitive (components/ui/row-button.tsx) that bakes in the
shared semantics — type="button" + a stable data-slot — without imposing any
styling, then migrate every genuine row-button onto it:

- app/overlays/panel.tsx
- app/artifacts/index.tsx
- app/chat/sidebar/chrome.tsx (SidebarRowBody, SidebarRowLink)
- app/settings/providers-settings.tsx
- components/desktop-onboarding-overlay.tsx (PROVIDER_ROW_CLASS rows)

Fully behavior-preserving: RowButton adds no classes, so each row keeps its
exact layout/look (verified by a unit test asserting className passthrough).

Left as-is (not row-buttons; converting would risk visual regressions): the
compact bespoke buttons in shell/statusbar-controls.tsx (STATUSBAR_ACTION_CLASS,
also a nested DropdownMenuTrigger asChild) and pet-generate/reference-chip.tsx.
2026-06-30 01:56:57 -05:00
..
composer feat(desktop): add read-replies-aloud toggle and wire auto-speak 2026-06-29 15:22:37 -05:00
hooks refactor(desktop): keep remote fs routing inside the fs facade 2026-06-28 14:39:33 -05:00
right-rail style(desktop,tui): fix all lint/type/formatting issues 2026-06-26 01:04:33 -05:00
sidebar refactor(desktop): formalize row-as-button primitive (RowButton) 2026-06-30 01:56:57 -05:00
chat-drop-overlay.tsx Refactor desktop i18n field copy into nested structures 2026-06-06 07:51:44 -07:00
chat-swap-overlay.tsx Refactor desktop i18n field copy into nested structures 2026-06-06 07:51:44 -07:00
index.tsx feat(desktop): read-only spectator transcript for subagent watch windows 2026-06-29 12:06:25 -05:00
perf-probe.tsx chore(desktop): zero eslint/typecheck debt + prettier pass (#39100) 2026-06-04 14:10:38 +00:00
scroll-to-bottom-button.test.tsx fix(desktop): surface off-screen approvals via the jump-to-bottom control (#45853) 2026-06-13 23:07:22 +00:00
scroll-to-bottom-button.tsx fix(desktop): surface off-screen approvals via the jump-to-bottom control (#45853) 2026-06-13 23:07:22 +00:00
thread-loading.test.ts Add Hermes desktop app (#20059) 2026-05-31 17:46:56 -05:00
thread-loading.ts perf(desktop): isolate streaming re-renders & cut layout thrash 2026-06-12 21:07:33 -05:00