import { BarChart } from "@mantine/charts"; import { Badge, Box, Button, Card, Grid, Group, Progress, Stack, Text, Title, useMantineColorScheme, } from "@mantine/core"; import { IconCurrency, IconTrendingDown, IconTrendingUp, } from "@tabler/icons-react"; import React from "react"; // Sample Data const kpiData = [ { id: 1, title: "Total APBDes", value: "Rp 5.2M", sub: "Tahun 2025", icon: , }, { id: 2, title: "Realisasi", value: "68%", sub: "Rp 3.5M dari 5.2M", icon: ( ), }, { id: 3, title: "Pemasukan", value: "Rp 580jt", sub: "Bulan ini", delta: "+8%", deltaType: "positive", icon: , }, { id: 4, title: "Pengeluaran", value: "Rp 520jt", sub: "Bulan ini", icon: , }, ]; 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 }, ]; 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 }, ]; 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 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, }; const KeuanganAnggaran = () => { const { colorScheme } = useMantineColorScheme(); const dark = colorScheme === "dark"; return ( {/* KPI Cards */} {kpiData.map((kpi) => ( {kpi.title} {React.cloneElement(kpi.icon, { className: "h-6 w-6", color: "var(--mantine-color-dimmed)", })} {kpi.value} {kpi.delta && ( {kpi.delta} )} {kpi.sub && ( {kpi.sub} )} ))} {/* Charts Section */} {/* Grafik Pemasukan vs Pengeluaran */} Pemasukan vs Pengeluaran {/* Alokasi Anggaran Per Sektor */} Alokasi Anggaran Per Sektor {/* Dana Bantuan & Hibah */} Dana Bantuan & Hibah {assistanceFundData.map((fund, index) => ( {fund.source} Rp {fund.amount.toLocaleString()}jt {fund.status} ))} {/* Laporan APBDes */} Laporan APBDes Pendapatan {apbdReport.income.map((item, index) => ( {item.category} Rp {item.amount.toLocaleString()}jt ))} Total Pendapatan: Rp {apbdReport.totalIncome.toLocaleString()}jt Belanja {apbdReport.expenses.map((item, index) => ( {item.category} Rp {item.amount.toLocaleString()}jt ))} Total Belanja: Rp {apbdReport.totalExpenses.toLocaleString()}jt Saldo: apbdReport.totalExpenses ? "green" : "red" } > Rp{" "} {( apbdReport.totalIncome - apbdReport.totalExpenses ).toLocaleString()} jt ); }; export default KeuanganAnggaran;