164 lines
8.3 KiB
PHP
164 lines
8.3 KiB
PHP
{{-- resources/views/dashboard.blade.php --}}
|
|
<!DOCTYPE html>
|
|
<html lang="es" class="scroll-smooth">
|
|
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport"
|
|
content="width=device-width, initial-scale=1.0, viewport-fit=cover, maximum-scale=1.0, user-scalable=yes">
|
|
<meta name="description"
|
|
content="NexusCore Dashboard - Panel inteligente de métricas en tiempo real para operaciones 2026">
|
|
<meta name="theme-color" content="#3b82f6">
|
|
<title>Globo Puerto</title>
|
|
|
|
<!-- Preconnect para recursos externos -->
|
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
<link rel="preconnect" href="https://cdn.jsdelivr.net">
|
|
|
|
<!-- Google Fonts -->
|
|
<link
|
|
href="https://fonts.googleapis.com/css2?family=Sora:wght@300;400;500;600;700;800&family=DM+Sans:opsz,wght@9..40,300;9..40,400;9..40,500;9..40,600;9..40,700&display=swap"
|
|
rel="stylesheet">
|
|
|
|
<!-- Bootstrap 5 CSS + Icons -->
|
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
|
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css">
|
|
|
|
<!-- Chart.js -->
|
|
<script src="https://cdn.jsdelivr.net/npm/chart.js@4.4.0/dist/chart.umd.min.js"></script>
|
|
|
|
<link rel="stylesheet" href="{{ asset('dashboard/css/dashboard.css') }}">
|
|
@stack('css')
|
|
</head>
|
|
|
|
<body>
|
|
<!-- Preloader con logo.png -->
|
|
<div class="preloader" id="preloader">
|
|
<img src="{{ asset('assets/img/logo.png') }}" alt="NexusCore Logo" class="preloader-logo"
|
|
onerror="this.style.display='none'">
|
|
<!-- Fallback por si no carga la imagen -->
|
|
<div class="spinner-border text-primary" style="width: 3rem; height: 3rem; display: none;"
|
|
id="preloaderFallback"></div>
|
|
</div>
|
|
|
|
<!-- Skip to content -->
|
|
<a href="#main-content" class="visually-hidden-focusable">Saltar al contenido principal</a>
|
|
|
|
<!-- Sidebar Backdrop -->
|
|
<div class="sidebar-backdrop" id="sidebarBackdrop"></div>
|
|
|
|
<div class="container-fluid p-0">
|
|
<div class="row g-0">
|
|
<!-- SIDEBAR -->
|
|
@include('admin.menu')
|
|
<!-- MAIN CONTENT -->
|
|
<main id="main-content" class="col flex-grow-1 min-vh-100" tabindex="-1">
|
|
<!-- Top Navbar -->
|
|
<nav class="navbar sticky-top bg-white bg-opacity-75 backdrop-blur-sm border-bottom px-3 px-md-4 py-2"
|
|
aria-label="Barra superior">
|
|
<div class="container-fluid">
|
|
<button class="btn btn-link text-secondary p-2 menu-toggle" id="menuToggleBtn"
|
|
aria-label="Abrir menú" aria-expanded="false" aria-controls="sidebar">
|
|
<i class="bi bi-list fs-3" aria-hidden="true"></i>
|
|
</button>
|
|
|
|
<div class="d-flex align-items-center gap-2 d-lg-none">
|
|
<img src="logo.png" alt="NexusCore" style="width: 32px; height: 32px; object-fit: contain;"
|
|
onerror="this.style.display='none'">
|
|
<span class="shimmer-text font-display fw-bold">Tablero</span>
|
|
</div>
|
|
|
|
<div class="d-none d-md-block flex-grow-1 mx-3" style="max-width: 300px;">
|
|
<div class="position-relative">
|
|
<i class="bi bi-search position-absolute top-50 start-0 translate-middle-y ms-3 text-secondary"
|
|
aria-hidden="true"></i>
|
|
<input type="text" class="form-control bg-light border-0 rounded-4 ps-5"
|
|
placeholder="Buscar con IA..." aria-label="Buscar">
|
|
</div>
|
|
</div>
|
|
|
|
<div class="d-flex align-items-center gap-2">
|
|
<button class="btn btn-link text-secondary p-2 d-md-none" aria-label="Buscar">
|
|
<i class="bi bi-search fs-5" aria-hidden="true"></i>
|
|
</button>
|
|
|
|
<div class="d-none d-sm-flex align-items-center gap-2 px-3 py-1 bg-light rounded-4">
|
|
<i class="bi bi-calendar3 text-primary" aria-hidden="true"></i>
|
|
<span class="small text-secondary" id="dateChip"></span>
|
|
</div>
|
|
|
|
<div class="position-relative">
|
|
<button class="btn btn-link text-secondary p-2" id="notifBtn"
|
|
aria-label="Notificaciones">
|
|
<i class="bi bi-bell fs-5" aria-hidden="true"></i>
|
|
<span
|
|
class="badge-pulse position-absolute top-0 start-100 translate-middle badge rounded-pill bg-primary"
|
|
id="notifBadge" style="font-size: 10px;">6</span>
|
|
</button>
|
|
</div>
|
|
|
|
<div class="dropdown">
|
|
<button
|
|
class="btn btn-link text-decoration-none dropdown-toggle d-flex align-items-center gap-2"
|
|
id="avatarDropdown" data-bs-toggle="dropdown" aria-expanded="false"
|
|
aria-label="Menú de usuario">
|
|
<img src="{{ asset('assets/img/logo.png') }}" class="rounded-2"
|
|
style="width: 36px; height: 36px;" alt="">
|
|
<span class="d-none d-sm-inline text-dark fw-semibold">Juan P.</span>
|
|
</button>
|
|
<ul class="dropdown-menu dropdown-menu-end rounded-4 border-0 shadow-lg p-2"
|
|
aria-labelledby="avatarDropdown">
|
|
<li><a class="dropdown-item rounded-3 py-2" href="#"><i
|
|
class="bi bi-person-circle me-2 text-primary" aria-hidden="true"></i>
|
|
Perfil avanzado</a></li>
|
|
<li><a class="dropdown-item rounded-3 py-2" href="#"><i
|
|
class="bi bi-gear me-2 text-primary" aria-hidden="true"></i>
|
|
Configuración</a></li>
|
|
<li>
|
|
<hr class="dropdown-divider">
|
|
</li>
|
|
<li>
|
|
<form method="POST" action="{{ route('logout') }}" id="logout-form">
|
|
@csrf
|
|
<button type="submit" class="dropdown-item rounded-3 py-2 text-danger"
|
|
style="background: none; border: none; width: 100%; text-align: left;">
|
|
<i class="bi bi-box-arrow-right me-2" aria-hidden="true"></i> Cerrar
|
|
sesión
|
|
</button>
|
|
</form>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
|
|
<!-- Scrollable Content -->
|
|
|
|
@yield('content')
|
|
|
|
|
|
<!-- Footer -->
|
|
<footer class="text-center pt-4 mt-3 border-top" role="contentinfo">
|
|
<p class="small text-secondary">
|
|
<i class="bi bi-database-check text-primary" aria-hidden="true"></i>
|
|
NexusCore Dashboard 2026 — AI-ready · Diseño responsive móvil
|
|
</p>
|
|
</footer>
|
|
</main>
|
|
</div>
|
|
</div>
|
|
</main>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Bootstrap 5 JS -->
|
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
|
|
|
|
<script src="{{ asset('dashboard/js/dashboard.js') }}"></script>
|
|
@stack('js')
|
|
</body>
|
|
|
|
</html>
|