import { Badge, Box, Card, Grid, GridCol, Group, Stack, Text, ThemeIcon, Title, useMantineColorScheme, } from "@mantine/core"; import { CheckCircle, Coins, PieChart as PieChartIcon, Receipt, TrendingDown, TrendingUp, } from "lucide-react"; import { Bar, BarChart, CartesianGrid, Line, LineChart, ResponsiveContainer, Tooltip, XAxis, YAxis, } from "recharts"; // KPI Data const kpiData = [ { id: 1, title: "Total APBDes", value: "Rp 5.2M", subtitle: "Tahun 2025", icon: Coins, }, { id: 2, title: "Realisasi", value: "68%", subtitle: "Rp 3.5M dari 5.2M", icon: CheckCircle, }, { id: 3, title: "Pemasukan", value: "Rp 580jt", subtitle: "Bulan ini", trend: "+8%", icon: TrendingUp, }, { id: 4, title: "Pengeluaran", value: "Rp 520jt", subtitle: "Bulan ini", icon: TrendingDown, }, ]; // Income & Expense Data const incomeExpenseData = [ { month: "Apr", income: 450, expense: 380 }, { month: "Mei", income: 520, expense: 420 }, { month: "Jun", income: 480, expense: 500 }, { month: "Jul", income: 580, expense: 450 }, { month: "Agu", income: 550, expense: 520 }, { month: "Sep", income: 600, expense: 480 }, { month: "Okt", income: 580, expense: 520 }, ]; // Sector Allocation Data const allocationData = [ { sector: "Pembangunan", amount: 1200 }, { sector: "Kesehatan", amount: 800 }, { sector: "Pendidikan", amount: 650 }, { sector: "Sosial", amount: 550 }, { sector: "Kebudayaan", amount: 400 }, { sector: "Teknologi", amount: 300 }, ]; // APBDes Report Data const apbdReport = { income: [ { category: "Dana Desa", amount: 1800 }, { category: "Alokasi Dana Desa", amount: 480 }, { category: "Bagi Hasil Pajak & Retribusi", amount: 300 }, { category: "Pendapatan Asli Desa", amount: 200 }, { category: "Hibah Bantuan", amount: 300 }, ], expenses: [ { category: "Penyelenggaraan Pemerintah", amount: 425 }, { category: "Pembangunan Desa", amount: 850 }, { category: "Pembinaan Kemasyarakatan", amount: 320 }, { category: "Pemberdayaan Masyarakat", amount: 380 }, { category: "Penanggulangan Bencana", amount: 180 }, ], totalIncome: 3080, totalExpenses: 2155, }; // Aid & Grants Data const assistanceFundData = [ { source: "Dana Desa (DD)", amount: 1800, status: "cair" }, { source: "Alokasi Dana Desa (ADD)", amount: 950, status: "cair" }, { source: "Bagi Hasil Pajak", amount: 450, status: "cair" }, { source: "Hibah Provinsi", amount: 300, status: "proses" }, ]; const KeuanganAnggaran = () => { const { colorScheme } = useMantineColorScheme(); const dark = colorScheme === "dark"; return ( {/* TOP SECTION - 4 STAT CARDS */} {kpiData.map((item) => ( {item.title} {item.value} {item.trend && } {item.subtitle} ))} {/* MAIN CHART SECTION */} {/* LEFT: PEMASUKAN DAN PENGELUARAN (70%) */} Pemasukan dan Pengeluaran `Rp ${value}jt`} /> [ `Rp ${value}jt`, "", ]} /> {/* RIGHT: ALOKASI ANGGARAN PER SEKTOR (30%) */} Alokasi Anggaran Per Sektor `${value}`} /> [ `Rp ${value}jt`, "Jumlah", ]} /> {/* BOTTOM SECTION */} {/* LEFT: LAPORAN APBDES */} Laporan APBDes {/* Pendapatan */} Pendapatan {apbdReport.income.map((item, index) => ( {item.category} Rp {item.amount.toLocaleString()}jt ))} Total: Rp {apbdReport.totalIncome.toLocaleString()}jt {/* Belanja */} Belanja {apbdReport.expenses.map((item, index) => ( {item.category} Rp {item.amount.toLocaleString()}jt ))} Total: Rp {apbdReport.totalExpenses.toLocaleString()}jt {/* Saldo */} Saldo: apbdReport.totalExpenses ? "#22C55E" : "#EF4444" } > Rp{" "} {( apbdReport.totalIncome - apbdReport.totalExpenses ).toLocaleString()} jt {/* RIGHT: DANA BANTUAN DAN HIBAH */} Dana Bantuan dan Hibah {assistanceFundData.map((fund, index) => ( {fund.source} Rp {fund.amount.toLocaleString()}jt {fund.status === "cair" ? "Cair" : "Proses"} ))} ); }; export default KeuanganAnggaran;