` containing three `Card` wrappers:
- Card 1: `
{t("dashboard.expenseDonut")}`
- Card 2: `
{t("dashboard.incomeChart")}`
- Card 3: `
{t("dashboard.spendChart")}`
3. `QuickAddPicker` row (moved below charts per user decision)
- **Remove:** The old `PieChart`, `Pie`, `Cell`, `ResponsiveContainer`, `Tooltip` imports from recharts (replaced by chart components). Remove the old `progressGroups` derivation. Remove the old 2-column grid layout. Remove old inline pie chart and progress bar JSX.
- **Keep:** EXPENSE_TYPES constant (still used for data derivation), all SummaryStrip logic, QuickAddPicker integration.
cd /home/jlmak/Projects/jlmak/SimpleFinanceDash && bun run build
DashboardPage uses URL search params for month selection, MonthNavigator in PageShell action slot, and a 3-column chart grid (donut, vertical bar, horizontal bar) replacing the old pie chart + progress bars. Empty month prompt shows create/generate buttons. Build passes.
Task 2: Update DashboardSkeleton for 3-column chart layout
src/components/dashboard/DashboardSkeleton.tsx
Update `src/components/dashboard/DashboardSkeleton.tsx` to mirror the new dashboard layout. The skeleton must match the real layout structure to prevent layout shift on load (established pattern from Phase 1).
**Changes:**
- Keep the 3-card summary skeleton row unchanged: `` with 3 `SkeletonStatCard` components
- Replace the 2-column chart skeleton with a 3-column grid: `
`
- Each chart skeleton card: `
`
- Three skeleton chart cards (matching the donut, bar, bar layout)
- Keep the `SkeletonStatCard` helper component unchanged
cd /home/jlmak/Projects/jlmak/SimpleFinanceDash && bun run build
DashboardSkeleton mirrors the new 3-column chart layout with 3 skeleton chart cards. Build passes.
- `bun run build` passes with no type errors
- `bun run lint` passes (or pre-existing errors only)
- DashboardPage imports and renders all 3 chart components
- DashboardPage uses `useMonthParam` for month state (no `useState` for month)
- MonthNavigator placed in PageShell `action` slot
- No old recharts direct imports remain in DashboardPage (PieChart, Pie, Cell, ResponsiveContainer, Tooltip)
- No old progress bar JSX remains
- Chart grid uses `lg:grid-cols-3` responsive breakpoint
- DashboardSkeleton has 3 chart skeleton cards matching real layout
- User can navigate between months using prev/next arrows and month dropdown
- Month is stored in URL search params (`?month=YYYY-MM`)
- Dashboard shows SummaryStrip, then 3-column chart row, then QuickAdd
- Charts and summary cards update when month changes
- Empty month shows create/generate prompt
- DashboardSkeleton mirrors new layout
- `bun run build && bun run lint` passes