Spaces:
Running
Running
<html lang="pt-BR" class="dark"> | |
<head> | |
<meta charset="UTF-8"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<title>TOM System - Compras</title> | |
<script src="https://cdn.tailwindcss.com"></script> | |
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> | |
<script> | |
tailwind.config = { | |
darkMode: 'class', | |
theme: { | |
extend: { | |
colors: { | |
primary: { | |
50: '#f0f9ff', | |
100: '#e0f2fe', | |
200: '#bae6fd', | |
300: '#7dd3fc', | |
400: '#38bdf8', | |
500: '#0ea5e9', | |
600: '#0284c7', | |
700: '#0369a1', | |
800: '#075985', | |
900: '#0c4a6e', | |
}, | |
dark: { | |
900: '#0f172a', | |
800: '#1e293b', | |
700: '#334155', | |
600: '#475569', | |
500: '#64748b', | |
} | |
} | |
} | |
} | |
} | |
</script> | |
<style> | |
.sidebar-collapsed { | |
width: 80px; | |
} | |
.sidebar-collapsed .sidebar-item-text { | |
display: none; | |
} | |
.sidebar-collapsed .logo-text { | |
display: none; | |
} | |
.sidebar-collapsed .sidebar-item { | |
justify-content: center; | |
} | |
.sidebar-collapsed .user-info { | |
display: none; | |
} | |
.sidebar-collapsed .toggle-sidebar { | |
left: 25px; | |
} | |
.fade-in { | |
animation: fadeIn 0.3s ease-in-out; | |
} | |
@keyframes fadeIn { | |
from { opacity: 0; transform: translateY(10px); } | |
to { opacity: 1; transform: translateY(0); } | |
} | |
.card-hover:hover { | |
transform: translateY(-5px); | |
box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); | |
} | |
.transition-all { | |
transition: all 0.3s ease; | |
} | |
</style> | |
</head> | |
<body class="bg-gray-900 text-gray-100 min-h-screen flex"> | |
<!-- Sidebar --> | |
<div id="sidebar" class="bg-gray-800 text-white w-64 min-h-screen flex flex-col transition-all duration-300 fixed z-10"> | |
<div class="p-4 flex items-center space-x-3 border-b border-gray-700"> | |
<div class="bg-blue-600 p-2 rounded-lg"> | |
<i class="fas fa-shopping-cart text-white text-xl"></i> | |
</div> | |
<span class="logo-text text-xl font-bold">TOM System</span> | |
</div> | |
<div class="p-4 border-b border-gray-700 flex items-center space-x-3"> | |
<div class="w-10 h-10 rounded-full bg-blue-600 flex items-center justify-center"> | |
<span class="text-white font-bold">AD</span> | |
</div> | |
<div class="user-info"> | |
<p class="font-medium">Admin User</p> | |
<p class="text-gray-400 text-sm">[email protected]</p> | |
</div> | |
</div> | |
<div class="p-4 flex-1 overflow-y-auto"> | |
<div class="mb-6"> | |
<p class="text-gray-400 uppercase text-xs font-bold mb-2">Menu Principal</p> | |
<ul> | |
<li> | |
<a href="#" class="sidebar-item flex items-center space-x-3 p-2 rounded-lg bg-blue-900 text-white mb-1"> | |
<i class="fas fa-tachometer-alt"></i> | |
<span class="sidebar-item-text">Dashboard</span> | |
</a> | |
</li> | |
<li> | |
<a href="#" class="sidebar-item flex items-center space-x-3 p-2 rounded-lg hover:bg-gray-700 mb-1"> | |
<i class="fas fa-file-invoice-dollar"></i> | |
<span class="sidebar-item-text">Orçamentos</span> | |
</a> | |
</li> | |
<li> | |
<a href="#" class="sidebar-item flex items-center space-x-3 p-2 rounded-lg hover:bg-gray-700 mb-1"> | |
<i class="fas fa-shopping-basket"></i> | |
<span class="sidebar-item-text">Pedidos</span> | |
</a> | |
</li> | |
<li> | |
<a href="#" class="sidebar-item flex items-center space-x-3 p-2 rounded-lg hover:bg-gray-700 mb-1"> | |
<i class="fas fa-users"></i> | |
<span class="sidebar-item-text">Clientes</span> | |
</a> | |
</li> | |
<li> | |
<a href="#" class="sidebar-item flex items-center space-x-3 p-2 rounded-lg hover:bg-gray-700 mb-1"> | |
<i class="fas fa-truck"></i> | |
<span class="sidebar-item-text">Fornecedores</span> | |
</a> | |
</li> | |
<li> | |
<a href="#" class="sidebar-item flex items-center space-x-3 p-2 rounded-lg hover:bg-gray-700 mb-1"> | |
<i class="fas fa-boxes"></i> | |
<span class="sidebar-item-text">Produtos</span> | |
</a> | |
</li> | |
</ul> | |
</div> | |
<div class="mb-6"> | |
<p class="text-gray-400 uppercase text-xs font-bold mb-2">Administrativo</p> | |
<ul> | |
<li> | |
<a href="#" class="sidebar-item flex items-center space-x-3 p-2 rounded-lg hover:bg-gray-700 mb-1"> | |
<i class="fas fa-user-shield"></i> | |
<span class="sidebar-item-text">Usuários</span> | |
</a> | |
</li> | |
<li> | |
<a href="#" class="sidebar-item flex items-center space-x-3 p-2 rounded-lg hover:bg-gray-700 mb-1"> | |
<i class="fas fa-key"></i> | |
<span class="sidebar-item-text">Permissões</span> | |
</a> | |
</li> | |
<li> | |
<a href="#" class="sidebar-item flex items-center space-x-3 p-2 rounded-lg hover:bg-gray-700 mb-1"> | |
<i class="fas fa-chart-bar"></i> | |
<span class="sidebar-item-text">Relatórios</span> | |
</a> | |
</li> | |
<li> | |
<a href="#" class="sidebar-item flex items-center space-x-3 p-2 rounded-lg hover:bg-gray-700 mb-1"> | |
<i class="fas fa-cog"></i> | |
<span class="sidebar-item-text">Configurações</span> | |
</a> | |
</li> | |
</ul> | |
</div> | |
</div> | |
<div class="p-4 border-t border-gray-700"> | |
<button onclick="toggleSidebar()" class="toggle-sidebar flex items-center space-x-3 p-2 rounded-lg hover:bg-gray-700 w-full"> | |
<i class="fas fa-chevron-left"></i> | |
<span class="sidebar-item-text">Recolher Menu</span> | |
</button> | |
<a href="#" class="sidebar-item flex items-center space-x-3 p-2 rounded-lg hover:bg-gray-700 mt-2"> | |
<i class="fas fa-sign-out-alt"></i> | |
<span class="sidebar-item-text">Sair</span> | |
</a> | |
</div> | |
</div> | |
<!-- Main Content --> | |
<div class="flex-1 ml-64 transition-all duration-300" id="main-content"> | |
<!-- Top Navigation --> | |
<nav class="bg-gray-800 p-4 flex justify-between items-center border-b border-gray-700"> | |
<div class="flex items-center space-x-4"> | |
<button class="md:hidden text-gray-300 hover:text-white" onclick="toggleMobileSidebar()"> | |
<i class="fas fa-bars"></i> | |
</button> | |
<h1 class="text-xl font-bold">Dashboard</h1> | |
</div> | |
<div class="flex items-center space-x-4"> | |
<div class="relative"> | |
<button class="text-gray-300 hover:text-white" onclick="toggleDropdown('notifications-dropdown')"> | |
<i class="fas fa-bell"></i> | |
<span class="absolute top-0 right-0 h-2 w-2 rounded-full bg-red-500"></span> | |
</button> | |
<div id="notifications-dropdown" class="hidden absolute right-0 mt-2 w-72 bg-gray-800 rounded-lg shadow-lg border border-gray-700 z-20"> | |
<div class="p-3 border-b border-gray-700"> | |
<h3 class="font-bold">Notificações (3)</h3> | |
</div> | |
<div class="max-h-60 overflow-y-auto"> | |
<a href="#" class="block p-3 hover:bg-gray-700 border-b border-gray-700"> | |
<div class="flex items-start"> | |
<div class="bg-blue-600 p-2 rounded-full mr-3"> | |
<i class="fas fa-shopping-basket text-white text-sm"></i> | |
</div> | |
<div> | |
<p class="font-medium">Novo pedido para aprovação</p> | |
<p class="text-gray-400 text-sm">Pedido #1234 aguardando sua análise</p> | |
<p class="text-gray-500 text-xs mt-1">2 minutos atrás</p> | |
</div> | |
</div> | |
</a> | |
<a href="#" class="block p-3 hover:bg-gray-700 border-b border-gray-700"> | |
<div class="flex items-start"> | |
<div class="bg-green-600 p-2 rounded-full mr-3"> | |
<i class="fas fa-check-circle text-white text-sm"></i> | |
</div> | |
<div> | |
<p class="font-medium">Pedido aprovado</p> | |
<p class="text-gray-400 text-sm">Seu pedido #1233 foi aprovado</p> | |
<p class="text-gray-500 text-xs mt-1">1 hora atrás</p> | |
</div> | |
</div> | |
</a> | |
<a href="#" class="block p-3 hover:bg-gray-700"> | |
<div class="flex items-start"> | |
<div class="bg-yellow-600 p-2 rounded-full mr-3"> | |
<i class="fas fa-exclamation-triangle text-white text-sm"></i> | |
</div> | |
<div> | |
<p class="font-medium">Orçamento expirando</p> | |
<p class="text-gray-400 text-sm">Orçamento #1221 expira em 2 dias</p> | |
<p class="text-gray-500 text-xs mt-1">Ontem</p> | |
</div> | |
</div> | |
</a> | |
</div> | |
<div class="p-3 border-t border-gray-700"> | |
<a href="#" class="text-blue-400 hover:text-blue-300 text-sm font-medium">Ver todas</a> | |
</div> | |
</div> | |
</div> | |
<div class="relative"> | |
<button class="flex items-center space-x-2" onclick="toggleDropdown('profile-dropdown')"> | |
<div class="w-8 h-8 rounded-full bg-blue-600 flex items-center justify-center"> | |
<span class="text-white font-bold">AD</span> | |
</div> | |
<span class="hidden md:inline">Admin User</span> | |
<i class="fas fa-chevron-down text-xs hidden md:inline"></i> | |
</button> | |
<div id="profile-dropdown" class="hidden absolute right-0 mt-2 w-48 bg-gray-800 rounded-lg shadow-lg border border-gray-700 z-20"> | |
<a href="#" class="block px-4 py-2 hover:bg-gray-700">Meu Perfil</a> | |
<a href="#" class="block px-4 py-2 hover:bg-gray-700">Configurações</a> | |
<div class="border-t border-gray-700"></div> | |
<a href="#" class="block px-4 py-2 hover:bg-gray-700 text-red-400 hover:text-red-300">Sair</a> | |
</div> | |
</div> | |
</div> | |
</nav> | |
<!-- Content --> | |
<main class="p-6"> | |
<!-- Stats Cards --> | |
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6 mb-6"> | |
<div class="bg-gray-800 rounded-lg p-6 shadow-lg card-hover transition-all"> | |
<div class="flex justify-between items-start"> | |
<div> | |
<p class="text-gray-400">Orçamentos</p> | |
<h3 class="text-2xl font-bold mt-1">1,254</h3> | |
<p class="text-green-400 text-sm mt-2"><i class="fas fa-arrow-up mr-1"></i> 12% este mês</p> | |
</div> | |
<div class="bg-blue-900 p-3 rounded-lg"> | |
<i class="fas fa-file-invoice-dollar text-blue-400"></i> | |
</div> | |
</div> | |
</div> | |
<div class="bg-gray-800 rounded-lg p-6 shadow-lg card-hover transition-all"> | |
<div class="flex justify-between items-start"> | |
<div> | |
<p class="text-gray-400">Pedidos</p> | |
<h3 class="text-2xl font-bold mt-1">842</h3> | |
<p class="text-green-400 text-sm mt-2"><i class="fas fa-arrow-up mr-1"></i> 8% este mês</p> | |
</div> | |
<div class="bg-green-900 p-3 rounded-lg"> | |
<i class="fas fa-shopping-basket text-green-400"></i> | |
</div> | |
</div> | |
</div> | |
<div class="bg-gray-800 rounded-lg p-6 shadow-lg card-hover transition-all"> | |
<div class="flex justify-between items-start"> | |
<div> | |
<p class="text-gray-400">Aprovações Pendentes</p> | |
<h3 class="text-2xl font-bold mt-1">23</h3> | |
<p class="text-red-400 text-sm mt-2"><i class="fas fa-arrow-down mr-1"></i> 5% este mês</p> | |
</div> | |
<div class="bg-yellow-900 p-3 rounded-lg"> | |
<i class="fas fa-clock text-yellow-400"></i> | |
</div> | |
</div> | |
</div> | |
<div class="bg-gray-800 rounded-lg p-6 shadow-lg card-hover transition-all"> | |
<div class="flex justify-between items-start"> | |
<div> | |
<p class="text-gray-400">Receita Total</p> | |
<h3 class="text-2xl font-bold mt-1">R$ 1.2M</h3> | |
<p class="text-green-400 text-sm mt-2"><i class="fas fa-arrow-up mr-1"></i> 15% este mês</p> | |
</div> | |
<div class="bg-purple-900 p-3 rounded-lg"> | |
<i class="fas fa-dollar-sign text-purple-400"></i> | |
</div> | |
</div> | |
</div> | |
</div> | |
<!-- Charts and Recent Activity --> | |
<div class="grid grid-cols-1 lg:grid-cols-3 gap-6 mb-6"> | |
<!-- Sales Chart --> | |
<div class="bg-gray-800 rounded-lg p-6 shadow-lg lg:col-span-2"> | |
<div class="flex justify-between items-center mb-6"> | |
<h2 class="text-lg font-bold">Desempenho Mensal</h2> | |
<div class="flex space-x-2"> | |
<button class="px-3 py-1 bg-blue-900 text-blue-400 rounded-lg text-sm">Mensal</button> | |
<button class="px-3 py-1 bg-gray-700 hover:bg-gray-600 rounded-lg text-sm">Anual</button> | |
</div> | |
</div> | |
<div class="h-64"> | |
<!-- Chart Placeholder --> | |
<div class="bg-gray-700 rounded-lg h-full flex items-center justify-center"> | |
<p class="text-gray-400">Gráfico de desempenho</p> | |
</div> | |
</div> | |
</div> | |
<!-- Recent Activity --> | |
<div class="bg-gray-800 rounded-lg p-6 shadow-lg"> | |
<h2 class="text-lg font-bold mb-6">Atividade Recente</h2> | |
<div class="space-y-4"> | |
<div class="flex items-start"> | |
<div class="bg-blue-600 p-2 rounded-full mr-3"> | |
<i class="fas fa-check-circle text-white text-sm"></i> | |
</div> | |
<div> | |
<p class="font-medium">Pedido aprovado</p> | |
<p class="text-gray-400 text-sm">Pedido #1234 foi aprovado por Admin User</p> | |
<p class="text-gray-500 text-xs mt-1">10 minutos atrás</p> | |
</div> | |
</div> | |
<div class="flex items-start"> | |
<div class="bg-green-600 p-2 rounded-full mr-3"> | |
<i class="fas fa-plus-circle text-white text-sm"></i> | |
</div> | |
<div> | |
<p class="font-medium">Novo orçamento</p> | |
<p class="text-gray-400 text-sm">João Silva criou um novo orçamento</p> | |
<p class="text-gray-500 text-xs mt-1">1 hora atrás</p> | |
</div> | |
</div> | |
<div class="flex items-start"> | |
<div class="bg-yellow-600 p-2 rounded-full mr-3"> | |
<i class="fas fa-exclamation-triangle text-white text-sm"></i> | |
</div> | |
<div> | |
<p class="font-medium">Pedido rejeitado</p> | |
<p class="text-gray-400 text-sm">Pedido #1233 foi rejeitado por Admin User</p> | |
<p class="text-gray-500 text-xs mt-1">2 horas atrás</p> | |
</div> | |
</div> | |
<div class="flex items-start"> | |
<div class="bg-purple-600 p-2 rounded-full mr-3"> | |
<i class="fas fa-user-plus text-white text-sm"></i> | |
</div> | |
<div> | |
<p class="font-medium">Novo cliente</p> | |
<p class="text-gray-400 text-sm">Empresa XYZ foi cadastrada no sistema</p> | |
<p class="text-gray-500 text-xs mt-1">Ontem</p> | |
</div> | |
</div> | |
</div> | |
<a href="#" class="block text-center mt-4 text-blue-400 hover:text-blue-300 text-sm font-medium">Ver todas as atividades</a> | |
</div> | |
</div> | |
<!-- Pending Approvals and Recent Orders --> | |
<div class="grid grid-cols-1 lg:grid-cols-2 gap-6"> | |
<!-- Pending Approvals --> | |
<div class="bg-gray-800 rounded-lg shadow-lg"> | |
<div class="p-6 border-b border-gray-700"> | |
<h2 class="text-lg font-bold">Aprovações Pendentes</h2> | |
</div> | |
<div class="overflow-x-auto"> | |
<table class="min-w-full divide-y divide-gray-700"> | |
<thead class="bg-gray-700"> | |
<tr> | |
<th class="px-6 py-3 text-left text-xs font-medium text-gray-300 uppercase tracking-wider">Pedido</th> | |
<th class="px-6 py-3 text-left text-xs font-medium text-gray-300 uppercase tracking-wider">Cliente</th> | |
<th class="px-6 py-3 text-left text-xs font-medium text-gray-300 uppercase tracking-wider">Valor</th> | |
<th class="px-6 py-3 text-left text-xs font-medium text-gray-300 uppercase tracking-wider">Ações</th> | |
</tr> | |
</thead> | |
<tbody class="bg-gray-800 divide-y divide-gray-700"> | |
<tr> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<div class="font-medium">#1234</div> | |
<div class="text-gray-400 text-sm">12/06/2023</div> | |
</td> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<div class="font-medium">Empresa ABC</div> | |
<div class="text-gray-400 text-sm">João Silva</div> | |
</td> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<div class="font-medium">R$ 12,450.00</div> | |
</td> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<button class="bg-green-600 hover:bg-green-700 text-white px-3 py-1 rounded text-sm mr-2">Aprovar</button> | |
<button class="bg-red-600 hover:bg-red-700 text-white px-3 py-1 rounded text-sm">Rejeitar</button> | |
</td> | |
</tr> | |
<tr> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<div class="font-medium">#1233</div> | |
<div class="text-gray-400 text-sm">10/06/2023</div> | |
</td> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<div class="font-medium">Indústria XYZ</div> | |
<div class="text-gray-400 text-sm">Maria Souza</div> | |
</td> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<div class="font-medium">R$ 8,720.50</div> | |
</td> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<button class="bg-green-600 hover:bg-green-700 text-white px-3 py-1 rounded text-sm mr-2">Aprovar</button> | |
<button class="bg-red-600 hover:bg-red-700 text-white px-3 py-1 rounded text-sm">Rejeitar</button> | |
</td> | |
</tr> | |
<tr> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<div class="font-medium">#1232</div> | |
<div class="text-gray-400 text-sm">08/06/2023</div> | |
</td> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<div class="font-medium">Comércio LTDA</div> | |
<div class="text-gray-400 text-sm">Carlos Oliveira</div> | |
</td> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<div class="font-medium">R$ 5,340.00</div> | |
</td> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<button class="bg-green-600 hover:bg-green-700 text-white px-3 py-1 rounded text-sm mr-2">Aprovar</button> | |
<button class="bg-red-600 hover:bg-red-700 text-white px-3 py-1 rounded text-sm">Rejeitar</button> | |
</td> | |
</tr> | |
</tbody> | |
</table> | |
</div> | |
<div class="p-4 border-t border-gray-700"> | |
<a href="#" class="text-blue-400 hover:text-blue-300 text-sm font-medium">Ver todas as aprovações pendentes</a> | |
</div> | |
</div> | |
<!-- Recent Orders --> | |
<div class="bg-gray-800 rounded-lg shadow-lg"> | |
<div class="p-6 border-b border-gray-700"> | |
<h2 class="text-lg font-bold">Pedidos Recentes</h2> | |
</div> | |
<div class="overflow-x-auto"> | |
<table class="min-w-full divide-y divide-gray-700"> | |
<thead class="bg-gray-700"> | |
<tr> | |
<th class="px-6 py-3 text-left text-xs font-medium text-gray-300 uppercase tracking-wider">Pedido</th> | |
<th class="px-6 py-3 text-left text-xs font-medium text-gray-300 uppercase tracking-wider">Status</th> | |
<th class="px-6 py-3 text-left text-xs font-medium text-gray-300 uppercase tracking-wider">Valor</th> | |
<th class="px-6 py-3 text-left text-xs font-medium text-gray-300 uppercase tracking-wider">Ações</th> | |
</tr> | |
</thead> | |
<tbody class="bg-gray-800 divide-y divide-gray-700"> | |
<tr> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<div class="font-medium">#1231</div> | |
<div class="text-gray-400 text-sm">05/06/2023</div> | |
</td> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<span class="px-2 py-1 bg-green-900 text-green-300 rounded-full text-xs">Aprovado</span> | |
</td> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<div class="font-medium">R$ 15,200.00</div> | |
</td> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<button class="bg-blue-600 hover:bg-blue-700 text-white px-3 py-1 rounded text-sm">Detalhes</button> | |
</td> | |
</tr> | |
<tr> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<div class="font-medium">#1230</div> | |
<div class="text-gray-400 text-sm">03/06/2023</div> | |
</td> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<span class="px-2 py-1 bg-yellow-900 text-yellow-300 rounded-full text-xs">Processando</span> | |
</td> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<div class="font-medium">R$ 9,870.50</div> | |
</td> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<button class="bg-blue-600 hover:bg-blue-700 text-white px-3 py-1 rounded text-sm">Detalhes</button> | |
</td> | |
</tr> | |
<tr> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<div class="font-medium">#1229</div> | |
<div class="text-gray-400 text-sm">01/06/2023</div> | |
</td> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<span class="px-2 py-1 bg-red-900 text-red-300 rounded-full text-xs">Rejeitado</span> | |
</td> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<div class="font-medium">R$ 7,430.00</div> | |
</td> | |
<td class="px-6 py-4 whitespace-nowrap"> | |
<button class="bg-blue-600 hover:bg-blue-700 text-white px-3 py-1 rounded text-sm">Detalhes</button> | |
</td> | |
</tr> | |
</tbody> | |
</table> | |
</div> | |
<div class="p-4 border-t border-gray-700"> | |
<a href="#" class="text-blue-400 hover:text-blue-300 text-sm font-medium">Ver todos os pedidos</a> | |
</div> | |
</div> | |
</div> | |
</main> | |
</div> | |
<!-- Mobile Sidebar Overlay --> | |
<div id="mobile-sidebar-overlay" class="fixed inset-0 bg-black bg-opacity-50 z-20 hidden" onclick="toggleMobileSidebar()"></div> | |
<script> | |
// Toggle sidebar | |
function toggleSidebar() { | |
const sidebar = document.getElementById('sidebar'); | |
const mainContent = document.getElementById('main-content'); | |
sidebar.classList.toggle('sidebar-collapsed'); | |
mainContent.classList.toggle('ml-64'); | |
mainContent.classList.toggle('ml-20'); | |
} | |
// Toggle mobile sidebar | |
function toggleMobileSidebar() { | |
const sidebar = document.getElementById('sidebar'); | |
const overlay = document.getElementById('mobile-sidebar-overlay'); | |
sidebar.classList.toggle('hidden'); | |
sidebar.classList.toggle('block'); | |
overlay.classList.toggle('hidden'); | |
} | |
// Toggle dropdowns | |
function toggleDropdown(id) { | |
const dropdown = document.getElementById(id); | |
dropdown.classList.toggle('hidden'); | |
} | |
// Close dropdowns when clicking outside | |
document.addEventListener('click', function(event) { | |
if (!event.target.matches('.relative *')) { | |
const dropdowns = document.querySelectorAll('.absolute'); | |
dropdowns.forEach(function(dropdown) { | |
if (!dropdown.classList.contains('hidden')) { | |
dropdown.classList.add('hidden'); | |
} | |
}); | |
} | |
}); | |
// Dark mode toggle (if needed) | |
function toggleDarkMode() { | |
const html = document.documentElement; | |
html.classList.toggle('dark'); | |
} | |
</script> | |
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=gallabs/dashboard-orcamento" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> | |
</html> |