feat: initial Next.js 15 client portal scaffold with Supabase & shadcn

This commit is contained in:
Marcos Fargas
2026-09-21 00:44:41 +02:00
parent e78fd98cf1
commit 3b5d77f515
20 changed files with 752 additions and 0 deletions

View File

@@ -0,0 +1,55 @@
import React from 'react';
import { Target, CheckCircle2, TrendingUp } from 'lucide-react';
export const revalidate = 0;
export default async function EstrategiaPage() {
return (
<div className="space-y-8">
<div>
<h2 className="text-2xl font-bold tracking-tight text-white">Estrategia de Crecimiento & Objetivos</h2>
<p className="text-sm text-gray-400 mt-1">
Monitoreo mensual de metas de facturación, captación de leads y posicionamiento.
</p>
</div>
<div className="grid grid-cols-1 md:grid-cols-3 gap-6">
<div className="bg-[#111827] border border-gray-800 rounded-xl p-6">
<div className="flex items-center justify-between mb-4">
<h3 className="font-semibold text-white text-base">Objetivo de Facturación</h3>
<Target className="w-5 h-5 text-brand-500" />
</div>
<p className="text-3xl font-extrabold text-white mb-2">50.000 €</p>
<div className="w-full bg-gray-800 rounded-full h-2 mb-2">
<div className="bg-brand-500 h-2 rounded-full w-[65%]"></div>
</div>
<p className="text-xs text-gray-400">65% completado este mes</p>
</div>
<div className="bg-[#111827] border border-gray-800 rounded-xl p-6">
<div className="flex items-center justify-between mb-4">
<h3 className="font-semibold text-white text-base">Meta de Leads Cualificados</h3>
<TrendingUp className="w-5 h-5 text-blue-400" />
</div>
<p className="text-3xl font-extrabold text-white mb-2">150</p>
<div className="w-full bg-gray-800 rounded-full h-2 mb-2">
<div className="bg-blue-400 h-2 rounded-full w-[82%]"></div>
</div>
<p className="text-xs text-gray-400">123 leads registrados (82%)</p>
</div>
<div className="bg-[#111827] border border-gray-800 rounded-xl p-6">
<div className="flex items-center justify-between mb-4">
<h3 className="font-semibold text-white text-base">Nuevos Clientes</h3>
<CheckCircle2 className="w-5 h-5 text-emerald-400" />
</div>
<p className="text-3xl font-extrabold text-white mb-2">12</p>
<div className="w-full bg-gray-800 rounded-full h-2 mb-2">
<div className="bg-emerald-400 h-2 rounded-full w-[75%]"></div>
</div>
<p className="text-xs text-gray-400">9 cerrados ganados (75%)</p>
</div>
</div>
</div>
);
}