whisper-money/resources/js/components/charts
Víctor Falcón 832cd1245b feat(cashflow): add multi-level donut money-flow chart (prototype)
Replace the hand-rolled SVG Sankey on the Cashflow page with a
concentric multi-level donut (recharts), aimed at working on both
desktop and mobile where the Sankey was wide and hard to use.

- Backend: `sankey?nested=1` returns the full nested Income/Expense
  tree (up to MAX_DEPTH) via a new `CategoryTree::nest()`, strictly by
  category type so its totals match the summary and breakdown cards
  (savings, investments and transfers excluded). A synthetic "Direct"
  child keeps each node's children summing to the node total.
- Frontend: `MultiLevelDonut` renders concentric rings — income grows
  toward the centre, expense toward the rim — with a `showIncome` prop
  exposed as a Combined / Expenses-only toggle for comparison. Inside
  labels on the innermost ring; leader-line labels (name + share) on the
  outermost ring with per-side vertical collision avoidance on wide
  screens, suppressed below 480px where the outer ring is read on tap.
- Pure ring-building logic lives in `lib/donut-utils` with unit tests;
  the nested endpoint has a feature test.

Prototype for comparing the Combined vs Expenses-only layouts before
picking a final direction; the old SankeyChart component is kept but no
longer rendered on this page.
2026-07-11 19:16:45 +02:00
..
cashflow-trend-chart.tsx feat(cashflow): add savings and period views (#424) 2026-05-25 16:41:00 +02:00
chart-currency-toggle.test.tsx fix: default account charts to user currency (#271) 2026-04-10 14:41:36 +01:00
chart-currency-toggle.tsx fix: default account charts to user currency (#271) 2026-04-10 14:41:36 +01:00
chart-granularity-toggle.tsx fix(charts): use settings popover for chart controls on mobile (#137) 2026-02-19 16:53:00 +01:00
chart-settings-popover.tsx feat(settings): centralize currency options and split profile/account support (#256) 2026-04-02 19:23:10 +02:00
chart-view-toggle.tsx fix(charts): use settings popover for chart controls on mobile (#137) 2026-02-19 16:53:00 +01:00
index.ts feat(cashflow): add multi-level donut money-flow chart (prototype) 2026-07-11 19:16:45 +02:00
mom-chart.tsx fix: preserve cents in chart amounts (#270) 2026-04-10 15:41:24 +02:00
mom-percent-chart.tsx feat: Spanish localization (#74) 2026-02-08 11:58:08 +01:00
multi-level-donut.tsx feat(cashflow): add multi-level donut money-flow chart (prototype) 2026-07-11 19:16:45 +02:00
sankey-chart.test.tsx feat: single-open Sankey expand, fit overflowing children (#487) 2026-06-04 11:35:26 +02:00
sankey-chart.tsx feat: single-open Sankey expand, fit overflowing children (#487) 2026-06-04 11:35:26 +02:00