
Hartmutandclaude-flow
208f866d68
feat: shared widget filter system for all dashboard widgets
Shared infrastructure:
- WidgetFilterBar: declarative filter component (search, select, toggle)
- useWidgetFilterOptions: cached hook for clients, countries, roles, chapters
Widget integration (5 widgets):
- ProjectHealth: search (name) + select (client)
- BudgetForecast: search (name) + select (client)
- Chargeability: select (chapter) + toggle (include proposed)
- SkillGap: search (skill name)
- TopValue: select (chapter)
Backend: added clientId/clientName to ProjectHealth and BudgetForecast
query results for client-based filtering.
Filter state persisted via widget config (survives page reload).
All filters use compact 11px inputs with full dark theme support.
Co-Authored-By: claude-flow <ruv@ruv.net>
2026-03-23 09:21:46 +01:00
..
2026-03-19 21:29:58 +01:00
2026-03-20 06:57:20 +01:00
2026-03-23 09:21:46 +01:00
2026-03-14 14:31:09 +01:00
2026-03-22 18:38:27 +01:00
2026-03-22 21:04:20 +01:00
2026-03-14 14:31:09 +01:00
2026-03-14 14:31:09 +01:00
2026-03-22 18:38:27 +01:00
2026-03-22 18:38:27 +01:00
2026-03-22 18:38:27 +01:00
2026-03-22 20:39:08 +01:00
2026-03-14 14:31:09 +01:00