whisper-money/app
Víctor Falcón 0493b87562
feat(Budgets): add period navigation and unify period selector UI (#171)
## Why

### Problem

Users viewing a budget had no way to look back at historical periods —
the show page always displayed the current period with no navigation.
The cashflow page's period selector also used a different visual style
(loose buttons with gaps) compared to the new grouped button pattern
established for budgets.

## What

### Changes

- **Budget period navigation**: new `BudgetPeriodNavigation` component
renders a `ButtonGroup` with `[<] [date range] [>]` buttons. Clicking
the label returns to the current period; arrows navigate between
existing periods.
- **Backend**: `BudgetController::show` accepts an optional
`?period=<uuid>` query param to serve a specific period. Future periods
are blocked at the query level on both direct access and `nextPeriod`
resolution.
- **Dropdown**: removed the split `ButtonGroup` from the budget header;
"Edit budget" and "Delete budget" now live together in a single `˅`
dropdown.
- **Cashflow period selector**: updated `PeriodNavigation` to use
`ButtonGroup` + `size="icon"` buttons to match the same visual style.
- **Tests**: 4 new feature tests covering period navigation,
future-period blocking, cross-budget access (404), and `nextPeriod`
boundary behaviour.

## Verification
<img width="921" height="683" alt="image"
src="https://github.com/user-attachments/assets/ceb5f70b-a15a-4a36-ae49-5d84054a62f9"
/>
2026-03-01 12:25:01 +00:00
..
Actions feat(categories): add Self-Employment Income income category (#164) 2026-02-28 18:04:21 +00:00
Console/Commands perf: make banking syncs incremental on subsequent runs (#141) 2026-02-23 15:10:40 +01:00
Contracts feat: Integrate EnableBanking as open banking provider (#106) 2026-02-12 09:09:28 +01:00
Enums Add chart color scheme setting (#101) 2026-02-28 12:58:21 +01:00
Events Add Budgeting Feature to Track and Manage Spending (#36) 2026-01-21 15:25:50 +01:00
Http feat(Budgets): add period navigation and unify period selector UI (#171) 2026-03-01 12:25:01 +00:00
Jobs feat(transactions): re-add select all matching filters to bulk actions bar (#169) 2026-03-01 10:27:43 +00:00
Listeners feat: Apply automation rules to bank-synced transactions (#112) 2026-02-12 14:20:55 +01:00
Mail feat(open-banking): add update credentials flow for API-key connections (#154) 2026-02-25 13:41:24 +01:00
Models Add chart color scheme setting (#101) 2026-02-28 12:58:21 +01:00
Notifications feat: Spanish localization (#74) 2026-02-08 11:58:08 +01:00
Policies Add Budgeting Feature to Track and Manage Spending (#36) 2026-01-21 15:25:50 +01:00
Providers Remove plaintext-transactions feature flag & E2E references (#116) 2026-02-13 11:10:21 +01:00
Services feat(rules): move automation rule evaluation to the backend (#168) 2026-03-01 10:37:12 +01:00