The standard dapp header unit: one pill that is the whole wallet story.
Renders per Wallet.State:
Disconnected / Error — a connect buttonConnecting — the connect button, busyReadOnly — a "read-only" chip (no wallet, reads work)Connected — identicon · truncated address · chain chip · optional
balance · disconnectWrongChain — the same pill flagged, chain chip shows the mismatchAccountPill.view
{ onConnect = ConnectClicked
, onDisconnect = DisconnectClicked
, chainLabel = Chain.nameOf -- T.ChainId -> String
, balance = model.plsBalance -- Maybe String, pre-formatted
}
model.walletCSS classes: web3-pill, web3-pill--connect, --connecting,
--readonly, --connected, --wrong-chain; web3-pill__identicon,
web3-pill__address, web3-pill__chain, web3-pill__balance,
web3-pill__disconnect.
Handlers plus how to name a chain and what balance to show (already
formatted — pair with Web3.Ui.Amount).
Render the pill for any wallet state.