Files
NextChair/templates/21-NextChair - Owner - Business D.html
Stefan Lazic 090646fdfd Phase 2
Base app architecture:

    Route groups for customer, staff and owner.
* Reusable design system with around 20 UI components.
* Complete Prisma schema.
* Authentication with email/password and Google.
* Role and permission model.
* Protected routes.
* Clean separation between features, services, components and shared utilities.
2026-08-02 17:47:23 +01:00

130 lines
6.7 KiB
HTML
Executable File

<!DOCTYPE html>
<html lang="en">
<head>
<script>
window.FontAwesomeConfig = {
autoReplaceSvg: 'nest'
};
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/js/all.min.js" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<title>Admin Dashboard — TrimTime</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 = {
theme: {
extend: {
colors: { ink: '#111b15', stone: '#f4f6f4', surface: '#ffffff', muted: '#6c7870', line: '#e1e7e2', accent: '#10b981' },
fontFamily: { sans: ['Inter', 'sans-serif'] },
borderRadius: { jumbo: '1rem', tile: '0.75rem' }
}
}
}
</script>
</head>
<body class="bg-stone text-ink min-h-screen pb-32">
<header class="fixed top-0 left-0 right-0 z-50 px-6 py-6 bg-white/80 backdrop-blur-md border-b border-line flex items-center justify-between">
<button onclick="history.back()" class="w-10 h-10 rounded-full border border-line flex items-center justify-center">
<i class="fa-solid fa-arrow-left text-sm"></i>
</button>
<h1 class="text-lg font-bold tracking-tight">Business Dashboard</h1>
<div class="w-10"></div>
</header>
<main class="mt-24 px-6 space-y-8">
<!-- Business Health Stats -->
<section class="grid grid-cols-2 gap-3">
<div class="bg-white p-5 rounded-jumbo border border-line shadow-sm">
<span class="text-[10px] font-bold uppercase tracking-widest text-muted block mb-1">Total Visits</span>
<p class="text-2xl font-bold">124</p>
<span class="text-[8px] text-accent font-bold">This Week</span>
</div>
<div class="bg-white p-5 rounded-jumbo border border-line shadow-sm">
<span class="text-[10px] font-bold uppercase tracking-widest text-muted block mb-1">Occupancy</span>
<p class="text-2xl font-bold">88%</p>
<span class="text-[8px] text-accent font-bold">Peak Hours</span>
</div>
</section>
<!-- Popular Services -->
<section>
<h3 class="text-[10px] font-bold uppercase tracking-widest text-muted ml-1 mb-4">Top Services</h3>
<div class="bg-white rounded-jumbo border border-line overflow-hidden">
<div class="px-6 py-4 border-b border-line flex items-center justify-between">
<span class="text-sm font-bold">Standard Cut</span>
<span class="text-xs text-muted">42%</span>
</div>
<div class="px-6 py-4 border-b border-line flex items-center justify-between">
<span class="text-sm font-bold">Skin Fade</span>
<span class="text-xs text-muted">31%</span>
</div>
<div class="px-6 py-4 flex items-center justify-between">
<span class="text-sm font-bold">Beard Sculpt</span>
<span class="text-xs text-muted">18%</span>
</div>
</div>
</section>
<!-- Staff Performance -->
<section>
<div class="flex justify-between items-end mb-4 px-1">
<h3 class="text-[10px] font-bold uppercase tracking-widest text-muted">Staff Performance</h3>
<a href="OwnerStaff__mobile.html" class="text-[10px] font-bold text-ink uppercase tracking-widest border-b border-ink">Manage Team</a>
</div>
<div class="space-y-3">
<div class="bg-white p-4 rounded-jumbo border border-line flex items-center gap-4">
<img src="https://storage.googleapis.com/uxpilot-auth.appspot.com/avatars/avatar-2.jpg" class="w-10 h-10 rounded-full" alt="Marcus">
<div class="flex-1">
<p class="text-sm font-bold">Marcus Reed</p>
<div class="h-1.5 w-full bg-stone rounded-full mt-2 overflow-hidden">
<div class="h-full bg-accent w-[92%]"></div>
</div>
</div>
<span class="text-xs font-bold">92%</span>
</div>
<div class="bg-white p-4 rounded-jumbo border border-line flex items-center gap-4">
<img src="https://storage.googleapis.com/uxpilot-auth.appspot.com/avatars/avatar-3.jpg" class="w-10 h-10 rounded-full" alt="Leo">
<div class="flex-1">
<p class="text-sm font-bold">Leo Vance</p>
<div class="h-1.5 w-full bg-stone rounded-full mt-2 overflow-hidden">
<div class="h-full bg-accent w-[78%]"></div>
</div>
</div>
<span class="text-xs font-bold">78%</span>
</div>
</div>
</section>
<!-- Booking Rules Quick Link -->
<section class="bg-ink text-white p-6 rounded-jumbo">
<h3 class="text-lg font-bold mb-2">Booking Rules</h3>
<p class="text-white/60 text-xs mb-6">Manage cancellation policies, booking windows, and lead times.</p>
<button class="w-full bg-white text-ink py-3 rounded-xl font-bold text-xs uppercase tracking-widest">Update Rules</button>
</section>
</main>
<!-- Admin Navigation -->
<nav class="fixed bottom-0 left-0 right-0 z-50 bg-[#0c0c0c] text-gray-400 py-4 px-10 border-t border-white/5 flex items-center justify-between">
<a href="StaffCalendar__mobile.html" class="flex flex-col items-center gap-1 hover:text-white transition-colors">
<i class="fa-solid fa-calendar-days text-xl"></i>
<span class="text-[10px] font-medium">Calendar</span>
</a>
<a href="StaffCurrent__mobile.html" class="flex flex-col items-center gap-1 hover:text-white transition-colors">
<i class="fa-solid fa-scissors text-xl"></i>
<span class="text-[10px] font-medium">Current</span>
</a>
<a href="StaffCustomers__mobile.html" class="flex flex-col items-center gap-1 hover:text-white transition-colors">
<i class="fa-solid fa-users text-xl"></i>
<span class="text-[10px] font-medium">Clients</span>
</a>
<a href="OwnerSettings__mobile.html" class="flex flex-col items-center gap-1 text-white">
<i class="fa-solid fa-gear text-xl"></i>
<span class="text-[10px] font-medium">Settings</span>
</a>
</nav>
</body>
</html>