feat: trend dots on stat cards, team workload panel, stat model improvement

- Dashboard stat cards now show lt-dot trend indicators (up/warn/idle) based on
  created_today vs closed_today flow — no extra DB query needed
- Add collapsible Team Workload panel showing assignee open ticket counts with
  progress bars (green/cyan/red by load), avatar, and name
- StatsModel.getTicketsByAssignee() now returns proper objects with user_id,
  display_name, open_count (was name-keyed flat array); limit raised to 8

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-04 12:04:41 -04:00
parent fca4896e0d
commit 0d8edc9d34
3 changed files with 107 additions and 11 deletions
+17
View File
@@ -324,6 +324,23 @@ kbd {
.lt-stats-grid { grid-template-columns: 1fr; }
}
/* ── Team Workload Panel ─────────────────────────────────────── */
.workload-panel summary { user-select: none; }
.workload-panel[open] summary span:first-child { display: inline-block; transform: rotate(90deg); }
.workload-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
gap: 0.5rem;
}
.workload-item {
display: flex;
align-items: center;
gap: 0.5rem;
}
.workload-info { flex: 1; min-width: 0; }
.workload-name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.workload-count { min-width: 1.5rem; text-align: right; flex-shrink: 0; }
/* Loading overlay — wraps lt-spinner for element-level loading states */
.has-lt-overlay { position: relative; }
.lt-loading-overlay {