whisper-money/resources/js/components
Víctor Falcón 1cec4a6421
Add Cashflow Analytics Feature (#49)
Summary
- Add new Cashflow page with income/expense analytics, Sankey chart
visualization, and trend analysis
- Add Cashflow summary widget to the dashboard
- Implement feature flag system using Laravel Pennant to control feature
visibility per user
- Add artisan commands to enable/disable features: `php artisan
feature:enable/disable [feature] [email|all]`

## New Features
- **Cashflow Page**: Period-based income/expense breakdown with category
analysis
- **Sankey Chart**: Visual flow diagram showing money movement between
categories
- **Trend Chart**: 12-month historical cashflow visualization
- **Dashboard Widget**: Quick cashflow summary card
- **Feature Flags**: Cashflow feature hidden behind feature flag,
controllable per-user

## How to enable it
This feature it's under a feature flag until we are sure it's working
fine. If you want to test it, [send us a message on the general channel
in our discord](https://discord.gg/9UQWZECDDv). If you're self hosting
just run `php artisan feature:enable CashflowFeature {your_email}`.

## New Cashflow Page
<img width="1278" height="1185" alt="image"
src="https://github.com/user-attachments/assets/83469f24-9f96-4e5f-bef9-86c076d31243"
/>
<img width="1274" height="1035" alt="image"
src="https://github.com/user-attachments/assets/8949ff9d-c370-4fc4-81c6-268307c587a5"
/>

## New Dashboard Widget
<img width="1180" height="289" alt="image"
src="https://github.com/user-attachments/assets/ad984a66-9ffd-4079-85ce-0b2d28278d76"
/>
<img width="1179" height="286" alt="image"
src="https://github.com/user-attachments/assets/bff60286-8ea2-4e9c-8fa6-22755566648f"
/>
2026-01-05 13:06:50 +01:00
..
accounts fix(charts): mobile ui, and desktop tooltips 2025-12-30 07:22:19 +01:00
automation-rules fix: Automated rules with labels (#32) 2025-12-15 13:42:12 +01:00
cashflow Add Cashflow Analytics Feature (#49) 2026-01-05 13:06:50 +01:00
categories ui: add hasKeyboard prop to modals 2025-12-30 07:22:19 +01:00
charts Add Cashflow Analytics Feature (#49) 2026-01-05 13:06:50 +01:00
dashboard Add Cashflow Analytics Feature (#49) 2026-01-05 13:06:50 +01:00
icons Subscriptions (#15) 2025-12-06 19:09:56 +01:00
labels ui: add hasKeyboard prop to modals 2025-12-30 07:22:19 +01:00
landing catch: play video error 2026-01-01 12:18:00 +01:00
onboarding Bulk actions/select all (#33) 2025-12-15 17:59:58 +01:00
partials chore: add repo star count to landing 2025-12-30 07:22:19 +01:00
shared Bulk actions/select all (#33) 2025-12-15 17:59:58 +01:00
transactions Preview account transactions (#48) 2026-01-04 16:17:15 +01:00
ui ui: amount display when encryption key is not set 2025-12-30 14:25:19 +01:00
alert-error.tsx Set up a fresh Laravel app 2025-11-07 12:01:36 +00:00
app-content.tsx Set up a fresh Laravel app 2025-11-07 12:01:36 +00:00
app-logo-icon.tsx Automated rules labels (#30) 2025-12-15 12:11:55 +01:00
app-logo.tsx Add animated logo icon that transitions based on encryption key state 2025-12-12 11:24:42 +01:00
app-mobile-nav.tsx Mobile design (#17) 2025-12-08 15:43:09 +01:00
app-shell.tsx Set up a fresh Laravel app 2025-11-07 12:01:36 +00:00
app-sidebar-header.tsx Format + Open transactions on row click 2025-12-08 15:58:50 +01:00
app-sidebar.tsx Add Cashflow Analytics Feature (#49) 2026-01-05 13:06:50 +01:00
appearance-dropdown.tsx Set up a fresh Laravel app 2025-11-07 12:01:36 +00:00
appearance-tabs.tsx Set up a fresh Laravel app 2025-11-07 12:01:36 +00:00
breadcrumbs.tsx Set up a fresh Laravel app 2025-11-07 12:01:36 +00:00
delete-user.tsx Set up a fresh Laravel app 2025-11-07 12:01:36 +00:00
encrypted-text.tsx fix: make encryption key storage SSR-safe to prevent 502 errors 2025-12-08 17:13:45 +01:00
encryption-key-button.tsx feat: Update encryption key button icon based on state 2025-11-07 20:20:09 +00:00
heading-small.tsx Set up a fresh Laravel app 2025-11-07 12:01:36 +00:00
heading.tsx Set up a fresh Laravel app 2025-11-07 12:01:36 +00:00
icon.tsx Set up a fresh Laravel app 2025-11-07 12:01:36 +00:00
input-error.tsx Set up a fresh Laravel app 2025-11-07 12:01:36 +00:00
nav-footer.tsx Subscriptions (#15) 2025-12-06 19:09:56 +01:00
nav-main.tsx Set up a fresh Laravel app 2025-11-07 12:01:36 +00:00
nav-user.tsx Format + Open transactions on row click 2025-12-08 15:58:50 +01:00
pending-operations-dialog.tsx Add sync now button to pending operations dialog (#27) 2025-12-14 12:50:00 +01:00
sync-status-button.tsx Add sync now button to pending operations dialog (#27) 2025-12-14 12:50:00 +01:00
text-link.tsx Set up a fresh Laravel app 2025-11-07 12:01:36 +00:00
two-factor-recovery-codes.tsx Set up a fresh Laravel app 2025-11-07 12:01:36 +00:00
two-factor-setup-modal.tsx Set up a fresh Laravel app 2025-11-07 12:01:36 +00:00
unlock-message-dialog.tsx ui: change text on unlock message dialog 2025-12-30 15:46:58 +01:00
user-info.tsx Format + Open transactions on row click 2025-12-08 15:58:50 +01:00
user-menu-content.tsx fix: wrong user menu text 2025-12-30 11:16:15 +01:00