fix(ui): follow-up polish — icons, dashboard bar, filter redesign, bounty/creds sort

- Dashboard: fix invisible bar at bottom of LIVE FEED by constraining
  max-height on the section instead of the inner container; same fix
  for side panels
- Page icons: add violet-accent icon beside h1 on all 9 missing pages
  (CanaryTokens, RealismConfig, SyntheticFiles, PersonaGeneration,
  Attackers, Webhooks, LiveLogs, Topologies, DecoyFleet)
- Attackers filter chips: replace ad-hoc chip buttons with seg-group
  tabs (ALL / ACTIVE N / PASSIVE N / INACTIVE N) matching Credential
  Vault style; country chips use same seg-group treatment
- Credential Vault: add sortable headers to REUSE tab (LAST SEEN,
  PRINCIPAL, KIND, TARGETS, ATTEMPTS); reuses same SortTh pattern
- Bounty: remove CREDENTIALS and PAYLOADS tabs; keep ALL, ARTIFACTS,
  FINGERPRINTS; add EMAIL (artifact subtype, filtered client-side)
This commit is contained in:
2026-04-30 00:20:25 -04:00
parent 9adee07d21
commit fbc9877ef2
13 changed files with 152 additions and 69 deletions

View File

@@ -7,20 +7,52 @@
.ak-filter-row {
display: flex;
flex-wrap: wrap;
gap: 6px;
gap: 8px;
align-items: center;
}
.ak-filter-row .chip {
cursor: pointer;
transition: opacity 0.15s;
.attackers-root .seg-group {
display: flex;
border: 1px solid var(--border);
background: var(--panel);
}
.ak-filter-row button {
.attackers-root .seg-group button {
display: flex;
align-items: center;
gap: 6px;
padding: 7px 12px;
font-size: 0.68rem;
letter-spacing: 1.5px;
border: none;
border-right: 1px solid var(--border);
background: transparent;
color: rgba(0, 255, 65, 0.5);
cursor: pointer;
font-family: inherit;
font-size: inherit;
}
.attackers-root .seg-group button:last-child { border-right: none; }
.attackers-root .seg-group button.active {
background: var(--violet-tint-10);
color: var(--violet);
}
.attackers-root .seg-group button:hover:not(.active) { color: var(--matrix); }
.ak-dot {
display: inline-block;
width: 7px;
height: 7px;
border-radius: 50%;
flex-shrink: 0;
}
.ak-dot-active { background: var(--alert); box-shadow: 0 0 5px var(--alert); }
.ak-dot-passive { background: #ffaa00; }
.ak-dot-inactive { background: rgba(0, 255, 65, 0.3); }
.attackers-root .controls-row {
display: flex;
gap: 12px;