* Add footer component for widget box
* Add footer component to the widget box as a slot
* Change projects widget to show the favorite projects
* Fix failing test
* Change the subitems widget
* Change the costs and budgets widgets
* Change the meeting widget
* Change the WPs widget in version
* Change memebers widget in project overview
* Change the favorite projects widget in my page
# Conflicts:
# frontend/src/app/shared/components/grids/widgets/project-favorites/widget-project-favorites.component.ts
* Add the widget box to the lookbook
* Add footer for members widget in dashboard
* Fix members widget capability check
* Add feature spec for favorites projects in my page
* Remove committed demo project gitlink
* Remove temporary body variables from the costs and budgets widget templates
* Remove the scroll for favorites widget
* Remove scrollbar for members and favorite projects widgets
* Change projects block to favorite projects
* Refine feature specs
* Fix the widget footer styles globally
* Rename the component name from project favorites to favorite projects
* Rename the test selector for project name
* Move widget content inside the body
* grid widgets stretch their content area so widget footers stay pinned to the bottom
* Ensure frontend-rendered grid widgets keep their turbo-loaded content in the widget flex layout so server-rendered footers stay pinned to the bottom
Adds composable Blankslate primitive components in
`shared/components/blankslate/`, plus two higher-level components:
- `ErrorBlankSlateComponent` — for error states in grid widgets
- `NoResultsComponent` (`op-no-results`) — "no data" empty state,
intended to replace the legacy `no-results.component.ts`
Wires `NoResultsComponent` into the Actual Costs, Budget by Cost
Type, and Burndown Chart widgets (which gains a `hasChartData`
guard). Adds `circle-slash` and `graph` to the Primer icon map.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>