diff --git a/src/admin/public/style.css b/src/admin/public/style.css index e6c7d07..52e968c 100644 --- a/src/admin/public/style.css +++ b/src/admin/public/style.css @@ -235,6 +235,49 @@ textarea { min-height: 80px; resize: vertical; } code { background: #f1f5f9; padding: 0.1rem 0.3rem; border-radius: 3px; font-size: 0.85em; } pre { font-size: 0.8rem; white-space: pre-wrap; word-break: break-all; max-width: 300px; } +.wallet-addr { + cursor: pointer; + transition: background 0.2s, box-shadow 0.2s; + word-break: break-all; + user-select: all; + position: relative; +} + +.wallet-addr:hover { + background: #dbeafe; + box-shadow: 0 0 0 2px #93c5fd; +} + +.wallet-addr.copied { + background: #bbf7d0; + box-shadow: 0 0 0 2px #4ade80; +} + +.wallet-addr.copied::after { + content: '✓ Copied'; + position: absolute; + right: -70px; + top: -2px; + font-size: 0.75rem; + color: #16a34a; + font-weight: 600; + pointer-events: none; +} + +.seed-cell.wallet-addr { + cursor: pointer; +} + +.seed-cell.wallet-addr:hover { + background: #dbeafe; +} + +.seed-cell.wallet-addr.copied::after { + right: auto; + left: 105%; + top: 0; +} + .muted { color: var(--muted); font-size: 0.85rem; } .checkbox-label { diff --git a/src/admin/views/wallets.js b/src/admin/views/wallets.js index dae60c0..e70c6f3 100644 --- a/src/admin/views/wallets.js +++ b/src/admin/views/wallets.js @@ -32,7 +32,7 @@ export function renderWalletLayout(users, selectedUser, wallets, stats, seedPhra const walletRows = wallets.length > 0 ? wallets.map(w => `
${escapeHtml((w.address || '').slice(0, 24))}${w.address && w.address.length > 24 ? '...' : ''}${escapeHtml(w.address || '')}${escapeHtml(addr)}${escapeHtml(addr)}${escapeHtml((s.address || '').slice(0, 24))}...${escapeHtml(s.address || '')}${escapeHtml(s.derivation)}