import { AreaChart, Area, BarChart, Bar, PieChart, Pie, Cell, XAxis, YAxis, CartesianGrid, } from "recharts"; import { TrendingUp, TrendingDown, Users, DollarSign, ShoppingCart, Activity, ArrowUpRight, Circle, } from "lucide-react"; // ---------- data ---------- const revenueSeries = [ { d: "Mon", v: 2400, prev: 1800 }, { d: "Tue", v: 3100, prev: 2200 }, { d: "Wed", v: 2800, prev: 2600 }, { d: "Thu", v: 4200, prev: 3100 }, { d: "Fri", v: 3900, prev: 3500 }, { d: "Sat", v: 5100, prev: 4000 }, { d: "Sun", v: 4700, prev: 4200 }, ]; const channels = [ { name: "Organic", v: 4200 }, { name: "Direct", v: 3100 }, { name: "Paid", v: 2400 }, { name: "Social", v: 1800 }, { name: "Referral", v: 900 }, ]; const segments = [ { name: "Pro", v: 48, color: "#6366f1" }, { name: "Team", v: 28, color: "#10b981" }, { name: "Starter", v: 18, color: "#f59e0b" }, { name: "Free", v: 6, color: "#e5e7eb" }, ]; const activity = [ { name: "Ava Chen", action: "upgraded to Pro", time: "2m", amount: "+$49" }, { name: "Sora Okafor", action: "renewed annual plan", time: "21m", amount: "+$588" }, { name: "Jin Park", action: "cancelled subscription", time: "44m", amount: "-$29" }, { name: "Elena Rossi", action: "upgraded to Team", time: "1h", amount: "+$199" }, { name: "Kai Nakamura", action: "added 3 seats", time: "2h", amount: "+$87" }, ]; // ---------- primitives ---------- function KPI({ label, value, delta, positive, icon: Icon, accent, }: { label: string; value: string; delta: string; positive: boolean; icon: any; accent: string; }) { return (