Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit dcefd06

Browse files
committed
feat(multi-account): add active tag and rotation banner UI
- Introduce pulsing "In Use" indicator on active account header - Replace worst-status callout with consolidated rotation banner - Update annotations to reflect new information hierarchy and display logic
1 parent 8c624b7 commit dcefd06

1 file changed

Lines changed: 44 additions & 21 deletions

File tree

docs/features/multi-account/components/popover.html

Lines changed: 44 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,38 @@
100100
.group-status-badge.warning { background: rgba(250,184,90,0.12); color: var(--status-warning); }
101101
.group-status-badge.unreachable { background: rgba(120,120,135,0.15); color: var(--status-unreachable); }
102102

103+
/* Active indicator on group header */
104+
.group-active-tag {
105+
font-size: 7px; font-weight: 700; letter-spacing: 0.5px;
106+
text-transform: uppercase; color: var(--status-healthy);
107+
padding: 2px 5px; border-radius: 4px;
108+
background: rgba(90,235,174,0.1);
109+
border: 1px solid rgba(90,235,174,0.2);
110+
display: flex; align-items: center; gap: 3px;
111+
}
112+
.group-active-dot {
113+
width: 4px; height: 4px; border-radius: 50%;
114+
background: var(--status-healthy);
115+
animation: activePulse 2s ease-in-out infinite;
116+
}
117+
@keyframes activePulse {
118+
0%, 100% { box-shadow: 0 0 2px rgba(90,235,174,0.3); }
119+
50% { box-shadow: 0 0 6px rgba(90,235,174,0.7); }
120+
}
121+
122+
/* Rotation info banner */
123+
.rotation-banner {
124+
display: flex; align-items: center; gap: 6px;
125+
padding: 6px 10px; border-radius: 8px;
126+
background: linear-gradient(135deg, rgba(90,235,174,0.06), rgba(140,82,218,0.05));
127+
border: 1px solid rgba(90,235,174,0.15);
128+
font-size: 9px; color: var(--text-secondary);
129+
opacity: 0; animation: cardIn 0.5s ease 0.65s forwards;
130+
}
131+
.rotation-banner .rotation-icon { font-size: 12px; flex-shrink: 0; }
132+
.rotation-banner strong { color: var(--status-healthy); }
133+
.rotation-banner .muted { color: var(--text-tertiary); }
134+
103135
/* ── Compact stat cards ── */
104136
.compact-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
105137
.compact-card {
@@ -134,17 +166,6 @@
134166
background: rgba(30,20,56,0.85); padding: 3px 8px; border-radius: 4px; white-space: nowrap;
135167
}
136168

137-
/* ── Worst-status callout ── */
138-
.worst-status-callout {
139-
display: flex; align-items: center; gap: 6px;
140-
padding: 6px 10px; border-radius: 8px;
141-
background: rgba(250,184,90,0.08); border: 1px solid rgba(250,184,90,0.2);
142-
font-size: 9px; color: var(--text-secondary);
143-
opacity: 0; animation: cardIn 0.5s ease 0.7s forwards;
144-
}
145-
.worst-status-callout .callout-icon { font-size: 12px; flex-shrink: 0; }
146-
.worst-status-callout strong { color: var(--status-warning); }
147-
148169
/* ── Back link ── */
149170
.back-link {
150171
display: inline-flex; align-items: center; gap: 4px;
@@ -185,7 +206,7 @@
185206
<div class="provider-pill"><span class="pill-icon"></span> Amp</div>
186207
</div>
187208

188-
<!-- Account filter toggles -->
209+
<!-- Account filter toggles — just identity + status, no duplicate numbers -->
189210
<div class="account-section-header">
190211
<span class="account-section-label">Accounts</span>
191212
<div class="account-filter-pills">
@@ -207,11 +228,12 @@
207228
</div>
208229
</div>
209230

210-
<!-- Account 1: Personal -->
231+
<!-- Account 1: Personal — ACTIVE (single indicator, no duplicate %) -->
211232
<div class="account-group" data-account="Personal">
212233
<div class="account-group-header">
213234
<div class="group-avatar" style="background:rgba(140,82,218,0.25);color:rgb(180,140,240)">P</div>
214235
<span class="group-name">Personal</span>
236+
<span class="group-active-tag"><span class="group-active-dot"></span> In Use</span>
215237
<span class="group-status-badge healthy">Healthy</span>
216238
</div>
217239
<div class="compact-stats">
@@ -228,7 +250,7 @@
228250
</div>
229251
</div>
230252

231-
<!-- Account 2: Work -->
253+
<!-- Account 2: Work — not active -->
232254
<div class="account-group" data-account="Work">
233255
<div class="account-group-header">
234256
<div class="group-avatar" style="background:rgba(218,90,166,0.25);color:rgb(240,140,190)">W</div>
@@ -270,19 +292,20 @@
270292
</div>
271293
</div>
272294

273-
<!-- Worst-status callout -->
274-
<div class="worst-status-callout">
275-
<span class="callout-icon"></span>
276-
<span><strong>Work — Acme</strong> is at 18% Opus — causing aggregate Warning status</span>
295+
<!-- Single status banner — rotation reason + worst account -->
296+
<div class="rotation-banner">
297+
<span class="rotation-icon">🔄</span>
298+
<span>Rotated to <strong>Personal</strong> — Work dropped to 18% Opus</span>
277299
</div>
278300

279301
</div>
280302
</div>
281303

282304
<div class="annotation">
283-
<strong>Parallel monitoring</strong> — All accounts shown simultaneously, not single-select.
284-
Filter toggles hide/show accounts. <strong>Worst-status callout</strong> attributes the aggregate badge to a specific account.
285-
<strong>Unreachable</strong> state shown for expired credentials.
305+
<strong>Information hierarchy:</strong> Pills = identity + health dot (filter controls).
306+
Group header = one <strong>"In Use"</strong> tag on the active account (pulsing dot).
307+
Cards = the actual numbers (no duplication above).
308+
<strong>Rotation banner</strong> = single line explaining why the active account changed, combining what was previously two separate callouts.
286309
</div>
287310
</div>
288311

0 commit comments

Comments
 (0)