feat: add captura, POS, cuentas, and tienda pages

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-18 22:25:32 +00:00
parent b1adf536f6
commit fe6542c45c
12 changed files with 4037 additions and 0 deletions

156
dashboard/tienda.html Normal file
View File

@@ -0,0 +1,156 @@
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
<title>Tienda — NEXUS AUTOPARTS</title>
<link href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Outfit:wght@700;800;900&family=JetBrains+Mono:wght@500;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="/shared.css">
<link rel="stylesheet" href="/tienda.css">
<link rel="manifest" crossorigin="use-credentials">
<meta name="theme-color" content="#0a0a0f">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
</head>
<body>
<!-- Header -->
<header class="t-header">
<div class="t-header-left">
<div class="t-logo-mark"></div>
<div class="t-brand">
<span class="t-brand-name">NEXUS</span>
<span class="t-brand-sub">AUTOPARTS</span>
</div>
</div>
<div class="t-header-center">
<div class="t-search-box">
<svg class="t-search-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="8"/><path d="M21 21l-4.35-4.35"/></svg>
<input id="global-search" type="text" placeholder="Buscar parte, OEM, cliente..." autocomplete="off">
<div id="global-results" class="t-search-results"></div>
</div>
</div>
<div class="t-header-right">
<span class="t-clock" id="clock"></span>
</div>
</header>
<!-- Main Grid -->
<main class="t-main">
<!-- KPI Row -->
<section class="t-kpi-row">
<div class="t-kpi" data-color="accent">
<div class="t-kpi-icon">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 2v20M17 5H9.5a3.5 3.5 0 000 7h5a3.5 3.5 0 010 7H6"/></svg>
</div>
<div class="t-kpi-data">
<span class="t-kpi-value" id="kpi-sales-today">$0</span>
<span class="t-kpi-label">Ventas hoy</span>
</div>
<span class="t-kpi-count" id="kpi-sales-count">0 facturas</span>
</div>
<div class="t-kpi" data-color="success">
<div class="t-kpi-icon">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 12h-4l-3 9L9 3l-3 9H2"/></svg>
</div>
<div class="t-kpi-data">
<span class="t-kpi-value" id="kpi-month">$0</span>
<span class="t-kpi-label">Ventas del mes</span>
</div>
<span class="t-kpi-count" id="kpi-month-count">0 facturas</span>
</div>
<div class="t-kpi" data-color="info">
<div class="t-kpi-icon">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4-4v2"/><circle cx="9" cy="7" r="4"/><path d="M23 21v-2a4 4 0 00-3-3.87"/><path d="M16 3.13a4 4 0 010 7.75"/></svg>
</div>
<div class="t-kpi-data">
<span class="t-kpi-value" id="kpi-customers">0</span>
<span class="t-kpi-label">Clientes activos</span>
</div>
<span class="t-kpi-count" id="kpi-parts-count">0 partes</span>
</div>
<div class="t-kpi" data-color="warning">
<div class="t-kpi-icon">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="1" y="4" width="22" height="16" rx="2"/><path d="M1 10h22"/></svg>
</div>
<div class="t-kpi-data">
<span class="t-kpi-value" id="kpi-pending">$0</span>
<span class="t-kpi-label">Por cobrar</span>
</div>
<span class="t-kpi-count" id="kpi-pending-count">0 facturas</span>
</div>
</section>
<!-- Content Grid: 2 columns -->
<section class="t-content">
<!-- Left column -->
<div class="t-col">
<!-- Quick Actions -->
<div class="t-card t-actions-card">
<h2 class="t-card-title">Acciones</h2>
<div class="t-actions-grid">
<a href="/pos" class="t-action" data-color="accent">
<div class="t-action-icon">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="2" y="3" width="20" height="14" rx="2"/><path d="M8 21h8M12 17v4"/></svg>
</div>
<span>Nueva Venta</span>
</a>
<a href="/cuentas" class="t-action" data-color="info">
<div class="t-action-icon">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M16 21v-2a4 4 0 00-4-4H5a4 4 0 00-4-4v2"/><circle cx="8.5" cy="7" r="4"/><path d="M20 8v6M23 11h-6"/></svg>
</div>
<span>Cuentas</span>
</a>
<a href="/captura" class="t-action" data-color="success">
<div class="t-action-icon">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M11 4H4a2 2 0 00-2 2v14a2 2 0 002 2h14a2 2 0 002-2v-7"/><path d="M18.5 2.5a2.121 2.121 0 013 3L12 15l-4 1 1-4 9.5-9.5z"/></svg>
</div>
<span>Captura</span>
</a>
<a href="/" class="t-action" data-color="warning">
<div class="t-action-icon">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="8"/><path d="M21 21l-4.35-4.35"/></svg>
</div>
<span>Catalogo</span>
</a>
</div>
</div>
<!-- Top Debtors -->
<div class="t-card">
<h2 class="t-card-title">Cuentas pendientes</h2>
<div id="debtors-list" class="t-debtors-list">
<div class="t-empty">Sin cuentas pendientes</div>
</div>
</div>
</div>
<!-- Right column -->
<div class="t-col">
<!-- Recent Invoices -->
<div class="t-card t-card-full">
<div class="t-card-header">
<h2 class="t-card-title">Ultimas facturas</h2>
<a href="/cuentas" class="t-see-all">Ver todas</a>
</div>
<div id="recent-invoices" class="t-invoice-list">
<div class="t-empty">Sin facturas recientes</div>
</div>
</div>
<!-- Cobros de hoy -->
<div class="t-card">
<div class="t-card-header">
<h2 class="t-card-title">Cobros de hoy</h2>
</div>
<div class="t-today-payments">
<div class="t-today-amount" id="payments-today-amount">$0.00</div>
<div class="t-today-count" id="payments-today-count">0 pagos registrados</div>
</div>
</div>
</div>
</section>
</main>
<script src="/tienda.js"></script>
</body>
</html>