fix(web): repair the Browser surface card and collapse the profile menu row

Widening `onAddBrowser` to `(profileId?: string)` broke the empty-state
Browser card: it is passed straight to a DOM click handler, so React handed
the MouseEvent in as the profile id and the open silently failed schema
validation.

Fixed structurally rather than at the call site — `onAddBrowser` goes back to
taking no arguments, and choosing a profile is a separate
`onAddBrowserInProfile(profileId)`. The type now rejects wiring the profile
variant to a DOM handler, so this cannot recur; adding it surfaced all four
call sites immediately.

The "+" menu is one row again. The submenu trigger is itself clickable and
opens the default profile, with hover or arrow revealing the rest, so the
common case stays a single click. The menu is controlled so that action can
dismiss it, which a submenu trigger does not do on its own.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
bd58fabbabJulius Marminge committed on 9/2/2026, 9:34:14 PMparentb5435d2
5 files changedLine totals unavailable