@extends('layouts.user') @section('title', __('user_dashboard.dashboard')) @section('breadcrumb', __('user_dashboard.dashboard')) @section('page_title', __('user_dashboard.dashboard')) @section('content') @php $m = fn($v) => number_format((float)$v, 2); $currentMonthLabel = now()->format('F Y'); $statCards = [ [ 'title' => __('user_dashboard.total_balance'), 'value' => $m($totalBalance ?? 0), 'valueClass' => ($totalBalance ?? 0) >= 0 ? 'text-emerald-600' : 'text-rose-600', 'desc' => __('user_dashboard.total_balance_desc'), 'theme' => 'emerald', 'icon' => 'balance', ], [ 'title' => __('user_dashboard.total_expense'), 'value' => $m($totalExpense ?? 0), 'valueClass' => 'text-rose-600', 'desc' => __('user_dashboard.current_month_expense_desc'), 'theme' => 'rose', 'icon' => 'expense', 'tooltip' => __('user_dashboard.total_expense_tooltip'), 'monthBadge' => $currentMonthLabel, ], [ 'title' => __('user_dashboard.receivable'), 'value' => $m($totalReceivable ?? 0), 'valueClass' => 'text-amber-600', 'desc' => __('user_dashboard.receivable_desc'), 'theme' => 'amber', 'icon' => 'customer', ], [ 'title' => __('user_dashboard.payable'), 'value' => $m($totalLiabilities ?? 0), 'valueClass' => 'text-violet-700', 'desc' => __('user_dashboard.payable_desc'), 'theme' => 'violet', 'icon' => 'supplier', ], [ 'title' => __('user_dashboard.today_income'), 'value' => $m($todayIncome ?? 0), 'valueClass' => 'text-emerald-600', 'desc' => __('user_dashboard.today_income_desc'), 'theme' => 'sky', 'icon' => 'income', ], [ 'title' => __('user_dashboard.today_expense'), 'value' => $m($todayExpense ?? 0), 'valueClass' => 'text-rose-600', 'desc' => __('user_dashboard.today_expense_desc'), 'theme' => 'pink', 'icon' => 'today_expense', ], [ 'title' => __('user_dashboard.loan_finance_cost'), 'value' => $m($loanFinanceCost ?? 0), 'valueClass' => 'text-green-600', 'desc' => __('user_dashboard.current_month_loan_finance_cost_desc'), 'theme' => 'green', 'icon' => 'loan_finance', 'tooltip' => __('user_dashboard.loan_finance_cost_tooltip'), 'monthBadge' => $currentMonthLabel, ], ]; function cardTheme($theme) { return match ($theme) { 'emerald' => [ 'card' => 'border-emerald-200 bg-gradient-to-br from-emerald-50 via-white to-emerald-100/80', 'orb1' => 'bg-emerald-200/50', 'orb2' => 'bg-lime-200/40', 'wave' => 'from-emerald-200/40 via-emerald-100/30 to-transparent', 'line' => 'border-emerald-300/40', 'iconBg' => 'bg-emerald-500/10 text-emerald-600', ], 'rose' => [ 'card' => 'border-rose-200 bg-gradient-to-br from-rose-50 via-white to-pink-100/80', 'orb1' => 'bg-rose-200/50', 'orb2' => 'bg-pink-200/40', 'wave' => 'from-rose-200/40 via-pink-100/30 to-transparent', 'line' => 'border-rose-300/40', 'iconBg' => 'bg-rose-500/10 text-rose-600', ], 'amber' => [ 'card' => 'border-amber-200 bg-gradient-to-br from-amber-50 via-white to-orange-100/80', 'orb1' => 'bg-amber-200/50', 'orb2' => 'bg-orange-200/40', 'wave' => 'from-amber-200/40 via-orange-100/30 to-transparent', 'line' => 'border-amber-300/40', 'iconBg' => 'bg-amber-500/10 text-amber-600', ], 'violet' => [ 'card' => 'border-violet-200 bg-gradient-to-br from-violet-50 via-white to-purple-100/80', 'orb1' => 'bg-violet-200/50', 'orb2' => 'bg-purple-200/40', 'wave' => 'from-violet-200/40 via-purple-100/30 to-transparent', 'line' => 'border-violet-300/40', 'iconBg' => 'bg-violet-500/10 text-violet-700', ], 'sky' => [ 'card' => 'border-sky-200 bg-gradient-to-br from-sky-50 via-white to-cyan-100/80', 'orb1' => 'bg-sky-200/50', 'orb2' => 'bg-cyan-200/40', 'wave' => 'from-sky-200/40 via-cyan-100/30 to-transparent', 'line' => 'border-sky-300/40', 'iconBg' => 'bg-sky-500/10 text-sky-600', ], 'pink' => [ 'card' => 'border-pink-200 bg-gradient-to-br from-pink-50 via-white to-rose-100/80', 'orb1' => 'bg-pink-200/50', 'orb2' => 'bg-rose-200/40', 'wave' => 'from-pink-200/40 via-rose-100/30 to-transparent', 'line' => 'border-pink-300/40', 'iconBg' => 'bg-pink-500/10 text-pink-600', ], 'green' => [ 'card' => 'border-green-200 bg-gradient-to-br from-green-50 via-white to-emerald-100/80', 'orb1' => 'bg-green-200/50', 'orb2' => 'bg-emerald-200/40', 'wave' => 'from-green-200/40 via-emerald-100/30 to-transparent', 'line' => 'border-green-300/40', 'iconBg' => 'bg-green-500/10 text-green-600', ], default => [ 'card' => 'border-slate-200 bg-white', 'orb1' => 'bg-slate-200/50', 'orb2' => 'bg-slate-100/40', 'wave' => 'from-slate-200/40 via-slate-100/30 to-transparent', 'line' => 'border-slate-300/40', 'iconBg' => 'bg-slate-500/10 text-slate-600', ], }; } @endphp
@if(session('warning'))
⚠ {{ session('warning') }}
@endif
{{ __('user_dashboard.running_month') }}: {{ $currentMonthLabel }}
{{-- Main Summary Cards --}}
@foreach(array_slice($statCards, 0, 4) as $card) @php($theme = cardTheme($card['theme']))

{{ $card['title'] }}

@if(!empty($card['monthBadge'])) {{ $card['monthBadge'] }} @endif @if(!empty($card['tooltip']))
{{ $card['tooltip'] }}
@endif

{{ $card['value'] }}

{{ $card['desc'] }}

@if($card['icon'] === 'balance') @elseif($card['icon'] === 'expense') @elseif($card['icon'] === 'customer') @elseif($card['icon'] === 'supplier') @endif
@endforeach
{{-- Today + Loan Finance --}}
@foreach(array_slice($statCards, 4, 3) as $card) @php($theme = cardTheme($card['theme']))

{{ $card['title'] }}

@if(!empty($card['monthBadge'])) {{ $card['monthBadge'] }} @endif @if(!empty($card['tooltip']))
{{ $card['tooltip'] }}
@endif

{{ $card['value'] }}

{{ $card['desc'] }}

@if($card['icon'] === 'income') @elseif($card['icon'] === 'today_expense') @elseif($card['icon'] === 'loan_finance') @endif
@endforeach
{{-- Charts --}}

{{ __('user_dashboard.monthly_expense') }}

{{ __('user_dashboard.year') }}: {{ now()->year }}

{{ __('user_dashboard.account_distribution') }}

{{ __('user_dashboard.all_active_accounts') }}
{{-- Accounts Table --}}

{{ __('user_dashboard.accounts') }}

{{ __('user_dashboard.computed_opening_ledger') }}
@forelse($accounts as $a) @empty @endforelse
{{ __('user_dashboard.name') }} {{ __('user_dashboard.type') }} {{ __('user_dashboard.opening') }} {{ __('user_dashboard.balance') }}
{{ $a->name }} {{ strtoupper($a->type) }} {{ $m($a->opening_balance) }} {{ $m($a->balance) }}
{{ __('user_dashboard.no_accounts_found') }}
@endsection