import { A } from '@solidjs/router'; import AdminShell from '~/components/AdminShell'; import { Users, Building2, Briefcase, Clock, Ticket, Receipt, Package, Megaphone, Shield, UserCog, FormInput, LayoutDashboard, BadgeCheck, ChevronRight, TrendingUp, } from 'lucide-solid'; import type { Component } from 'solid-js'; type KpiCard = { label: string; value: string; href: string; icon: Component; bg: string; fg: string; }; type ControlLink = { label: string; href: string; desc: string; icon: Component; accent: string; }; const KPI: KpiCard[] = [ { label: 'Total Users', value: '—', href: '/admin/users', icon: Users, bg: 'bg-blue-50', fg: 'text-blue-600' }, { label: 'Companies', value: '—', href: '/admin/company', icon: Building2, bg: 'bg-violet-50', fg: 'text-violet-600' }, { label: 'Open Jobs', value: '—', href: '/admin/jobs', icon: Briefcase, bg: 'bg-amber-50', fg: 'text-amber-600' }, { label: 'Pending Approvals', value: '—', href: '/admin/approval', icon: Clock, bg: 'bg-orange-50', fg: 'text-orange-600' }, { label: 'Open Tickets', value: '—', href: '/admin/support', icon: Ticket, bg: 'bg-rose-50', fg: 'text-rose-600' }, { label: 'Invoices', value: '—', href: '/admin/invoice', icon: Receipt, bg: 'bg-teal-50', fg: 'text-teal-600' }, { label: 'Active Orders', value: '—', href: '/admin/order', icon: Package, bg: 'bg-sky-50', fg: 'text-sky-600' }, { label: 'Active Leads', value: '—', href: '/admin/leads', icon: Megaphone, bg: 'bg-pink-50', fg: 'text-pink-600' }, ]; const CONTROLS: ControlLink[] = [ { label: 'Internal Roles', href: '/admin/roles', desc: 'Define permissions and access levels for internal staff roles.', icon: Shield, accent: 'bg-blue-50 text-blue-600', }, { label: 'External Roles', href: '/admin/runtime-roles', desc: 'Configure modules, credit rules, and capabilities per external role.', icon: UserCog, accent: 'bg-violet-50 text-violet-600', }, { label: 'Onboarding Flows', href: '/admin/onboarding-schemas', desc: 'Build schema-driven onboarding forms for each external role.', icon: FormInput, accent: 'bg-amber-50 text-amber-600', }, { label: 'External Dashboards', href: '/admin/external-dashboard-management', desc: 'Configure the runtimeConfig, sidebar, and widgets per external role.', icon: LayoutDashboard, accent: 'bg-teal-50 text-teal-600', }, { label: 'Internal Dashboards', href: '/admin/internal-dashboard-management', desc: 'Design home widgets and KPI panels for internal staff dashboards.', icon: LayoutDashboard, accent: 'bg-orange-50 text-orange-600', }, { label: 'Approval Queue', href: '/admin/approval', desc: 'Review, approve, or reject pending platform action requests.', icon: BadgeCheck, accent: 'bg-rose-50 text-rose-600', }, ]; export default function AdminDashboard() { return (
{/* ── Page header ── */}

Platform Overview

Real-time snapshot of the Nxtgauge platform.

Live data
{/* ── KPI grid ── */}
{KPI.map((kpi) => { const Icon = kpi.icon; return ( {/* Subtle background circle */} {/* ── Control Plane ── */}

Control Plane

{CONTROLS.length} modules
{CONTROLS.map((item) => { const Icon = item.icon; return (

{item.label}

{item.desc}

); })}
); }