feat: add filter-based ranking and date navigation to analytics heatmap

Description:

Summary

This MR enhances the analytics heatmap so teams can be ranked directly inside the existing heatmap view without introducing a separate leaderboard page.

What Changed

  • Added inline analytics filters: All, Good, Delayed, and Missing
  • Reordered heatmap team rows based on the selected filter
  • Added analytics range navigation:
    • Previous Range
    • Next Range
    • custom date selection
  • Kept the analytics dashboard layout aligned with the existing heatmap design
  • Added and updated i18n strings for the new analytics controls
  • Added analytics tests covering ranking and filter behavior

Behavior

  • All ranks teams by overall score across the visible analytics range
  • Good ranks teams by highest count of good standup slots
  • Delayed ranks teams by highest count of delayed standup slots
  • Missing ranks teams by highest count of missing standup slots
  • Range controls shift the visible analytics window backward or forward
  • Custom date selection lets users jump directly to a specific anchor date

Validation

  • npm test
  • npm run typecheck
  • npm run validate:i18n

Notes

  • npm run validate:staged is not currently usable in this repository because vite.config.ts does not define a staged config.
  • npm run validate was previously blocked by formatting before fixes; current targeted checks are passing.
  • package-lock.json is modified in the worktree and should be reviewed separately if it is unrelated to this feature.

Merge request reports

Loading