import { RiArrowRightLine, RiArrowUpDoubleLine, RiBarChartBoxLine, RiBarcodeLine, RiBillLine, RiExchangeLine, RiGroupLine, RiLineChartLine, RiNumbersLine, RiPieChartLine, RiRefreshLine, RiStore3Line, RiTodoLine, RiWallet3Line, } from "@remixicon/react"; import Link from "next/link"; import type { ReactNode } from "react"; import { BoletosWidget } from "@/components/dashboard/boletos-widget"; import { InstallmentExpensesWidget } from "@/components/dashboard/installment-expenses-widget"; import { ExpensesByCategoryWidgetWithChart } from "@/components/dashboard/expenses-by-category-widget-with-chart"; import { GoalsProgressWidget } from "@/components/dashboard/goals-progress-widget"; import { IncomeByCategoryWidgetWithChart } from "@/components/dashboard/income-by-category-widget-with-chart"; import { IncomeExpenseBalanceWidget } from "@/components/dashboard/income-expense-balance-widget"; import { InvoicesWidget } from "@/components/dashboard/invoices-widget"; import { MyAccountsWidget } from "@/components/dashboard/my-accounts-widget"; import { NotesWidget } from "@/components/dashboard/notes-widget"; import { PagadoresWidget } from "@/components/dashboard/pagadores-widget"; import { PaymentOverviewWidget } from "@/components/dashboard/payment-overview-widget"; import { PaymentStatusWidget } from "@/components/dashboard/payment-status-widget"; import { PurchasesByCategoryWidget } from "@/components/dashboard/purchases-by-category-widget"; import { RecurringExpensesWidget } from "@/components/dashboard/recurring-expenses-widget"; import { SpendingOverviewWidget } from "@/components/dashboard/spending-overview-widget"; import type { DashboardData } from "../fetch-dashboard-data"; export type WidgetConfig = { id: string; title: string; subtitle: string; icon: ReactNode; component: (props: { data: DashboardData; period: string }) => ReactNode; action?: ReactNode; }; export const widgetsConfig: WidgetConfig[] = [ { id: "my-accounts", title: "Minhas Contas", subtitle: "Saldo consolidado disponível", icon: , component: ({ data, period }) => ( ), }, { id: "invoices", title: "Faturas", subtitle: "Resumo das faturas do período", icon: , component: ({ data }) => ( ), }, { id: "boletos", title: "Boletos", subtitle: "Controle de boletos do período", icon: , component: ({ data }) => ( ), }, { id: "payment-status", title: "Status de Pagamento", subtitle: "Valores Confirmados E Pendentes", icon: , component: ({ data }) => ( ), }, { id: "income-expense-balance", title: "Receita, Despesa e Balanço", subtitle: "Últimos 6 Meses", icon: , component: ({ data }) => ( ), }, { id: "pagadores", title: "Pagadores", subtitle: "Despesas por pagador no período", icon: , component: ({ data }) => ( ), action: ( Ver todos ), }, { id: "notes", title: "Anotações", subtitle: "Últimas anotações ativas", icon: , component: ({ data }) => , action: ( Ver todas ), }, { id: "goals-progress", title: "Progresso de Orçamentos", subtitle: "Orçamentos por categoria no período", icon: , component: ({ data }) => ( ), action: ( Ver todos ), }, { id: "payment-overview", title: "Comportamento de Pagamento", subtitle: "Despesas por condição e forma de pagamento", icon: , component: ({ data }) => ( ), }, { id: "recurring-expenses", title: "Lançamentos Recorrentes", subtitle: "Despesas recorrentes do período", icon: , component: ({ data }) => ( ), }, { id: "installment-expenses", title: "Lançamentos Parcelados", subtitle: "Acompanhe as parcelas abertas", icon: , component: ({ data }) => ( ), }, { id: "spending-overview", title: "Panorama de Gastos", subtitle: "Principais despesas e frequência por local", icon: , component: ({ data }) => ( ), }, { id: "purchases-by-category", title: "Lançamentos por Categorias", subtitle: "Distribuição de lançamentos por categoria", icon: , component: ({ data }) => ( ), }, { id: "income-by-category", title: "Categorias por Receitas", subtitle: "Distribuição de receitas por categoria", icon: , component: ({ data, period }) => ( ), }, { id: "expenses-by-category", title: "Categorias por Despesas", subtitle: "Distribuição de despesas por categoria", icon: , component: ({ data, period }) => ( ), }, ];