Connected-wallet menu — address, copy, explorer, disconnect.
Anatomy
┌ trigger ─────────────────────┐
│ [A] 7xKt…9fQ2 ● │ ← Avatar · truncated · online dot
└──────────────┬───────────────┘
▼ DropdownMenu
┌──────────────────────────────┐
│ 7xKtF2mP…full address… │
│ 12.4 SOL │
├──────────────────────────────┤
│ Copy address │
│ View on explorer │
├──────────────────────────────┤
│ Disconnect (sell) │
└──────────────────────────────┘Props
| Prop | Type | Default | Notes |
|---|---|---|---|
address | string | — | Full wallet address (accessible name + copy target). |
balance | string | — | Preformatted balance line. |
explorerHref | string | — | Opens in a new tab when present. |
onDisconnect | () => void | — | Renders the Disconnect item when set. |
disabled | boolean | — | Disables the trigger. |
className | string | — | cn-merged onto the trigger. |
"use client" — Radix menu + ephemeral copied label.
Motion
Trigger: duration-150 bg/border + press scale. Panel:
data-[state=open]:fade-in via Radix presets. Copy confirmation is a
label swap — no bounce.
A11y
Trigger aria-label includes the full address (truncation is
visual only). Radix DropdownMenu: typeahead, arrows, Escape, focus
return. Disconnect uses sell ink + the word "Disconnect" (never color
alone). Online dot is aria-hidden.