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.
147 lines
8.7 KiB
HTML
Executable File
147 lines
8.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>Business Settings — TrimTime Admin</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="px-6 pt-12 pb-6 bg-white border-b border-line sticky top-0 z-40">
|
|
<h1 class="text-2xl font-bold tracking-tight">Business Admin</h1>
|
|
</header>
|
|
|
|
<main class="mt-6 px-6 space-y-6">
|
|
<!-- Profile Card -->
|
|
<div class="bg-white p-5 rounded-jumbo border border-line flex items-center gap-4 shadow-sm">
|
|
<img src="https://storage.googleapis.com/uxpilot-auth.appspot.com/avatars/avatar-2.jpg" class="w-16 h-16 rounded-full border border-line" alt="Marcus">
|
|
<div class="flex-1">
|
|
<h2 class="text-lg font-bold">Shop Owner</h2>
|
|
<p class="text-[10px] text-accent font-bold uppercase tracking-widest">Administrator</p>
|
|
</div>
|
|
<button class="w-10 h-10 bg-stone rounded-full flex items-center justify-center text-ink">
|
|
<i class="fa-solid fa-pen text-xs"></i>
|
|
</button>
|
|
</div>
|
|
|
|
<!-- NEW: Analytics Card (Dashboard relocated here) -->
|
|
<section class="space-y-3">
|
|
<h3 class="text-[10px] font-bold uppercase tracking-widest text-muted ml-1">Shop Performance</h3>
|
|
<button onclick="location.href='OwnerDashboard__mobile.html'" class="w-full bg-ink text-white p-6 rounded-jumbo flex items-center justify-between shadow-lg shadow-ink/20">
|
|
<div class="flex items-center gap-4">
|
|
<div class="w-10 h-10 bg-white/10 rounded-xl flex items-center justify-center">
|
|
<i class="fa-solid fa-chart-simple"></i>
|
|
</div>
|
|
<div class="text-left">
|
|
<span class="text-sm font-bold block">Business Dashboard</span>
|
|
<span class="text-[10px] text-white/60">Revenue, Occupancy, & Trends</span>
|
|
</div>
|
|
</div>
|
|
<i class="fa-solid fa-chevron-right text-xs"></i>
|
|
</button>
|
|
</section>
|
|
|
|
<!-- Business Rules -->
|
|
<section class="space-y-3">
|
|
<h3 class="text-[10px] font-bold uppercase tracking-widest text-muted ml-1">Shop Controls</h3>
|
|
<div class="bg-white rounded-jumbo border border-line overflow-hidden">
|
|
<button onclick="location.href='OwnerStaff__mobile.html'" class="w-full px-6 py-5 flex items-center justify-between border-b border-line hover:bg-stone transition-all">
|
|
<div class="flex items-center gap-4">
|
|
<div class="w-8 h-8 bg-stone rounded-lg flex items-center justify-center text-muted"><i class="fa-solid fa-users text-xs"></i></div>
|
|
<span class="text-sm font-bold">Team Management</span>
|
|
</div>
|
|
<i class="fa-solid fa-chevron-right text-[10px] text-muted"></i>
|
|
</button>
|
|
<button class="w-full px-6 py-5 flex items-center justify-between border-b border-line hover:bg-stone transition-all">
|
|
<div class="flex items-center gap-4">
|
|
<div class="w-8 h-8 bg-stone rounded-lg flex items-center justify-center text-muted"><i class="fa-solid fa-list-check text-xs"></i></div>
|
|
<span class="text-sm font-bold">Services & Categories</span>
|
|
</div>
|
|
<i class="fa-solid fa-chevron-right text-[10px] text-muted"></i>
|
|
</button>
|
|
<button class="w-full px-6 py-5 flex items-center justify-between border-b border-line hover:bg-stone transition-all">
|
|
<div class="flex items-center gap-4">
|
|
<div class="w-8 h-8 bg-stone rounded-lg flex items-center justify-center text-muted"><i class="fa-solid fa-crown text-xs text-amber-500"></i></div>
|
|
<span class="text-sm font-bold">Loyalty Programme</span>
|
|
</div>
|
|
<i class="fa-solid fa-chevron-right text-[10px] text-muted"></i>
|
|
</button>
|
|
<button class="w-full px-6 py-5 flex items-center justify-between hover:bg-stone transition-all">
|
|
<div class="flex items-center gap-4">
|
|
<div class="w-8 h-8 bg-stone rounded-lg flex items-center justify-center text-muted"><i class="fa-solid fa-clock-rotate-left text-xs"></i></div>
|
|
<span class="text-sm font-bold">Booking Windows</span>
|
|
</div>
|
|
<i class="fa-solid fa-chevron-right text-[10px] text-muted"></i>
|
|
</button>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- Standard Staff Settings (Merged) -->
|
|
<section class="space-y-3">
|
|
<h3 class="text-[10px] font-bold uppercase tracking-widest text-muted ml-1">Staff Preferences</h3>
|
|
<div class="bg-white rounded-jumbo border border-line overflow-hidden">
|
|
<button class="w-full px-6 py-5 flex items-center justify-between border-b border-line hover:bg-stone transition-all">
|
|
<div class="flex items-center gap-4">
|
|
<div class="w-8 h-8 bg-stone rounded-lg flex items-center justify-center text-muted"><i class="fa-solid fa-clock text-xs"></i></div>
|
|
<span class="text-sm font-bold">Working Hours</span>
|
|
</div>
|
|
<i class="fa-solid fa-chevron-right text-[10px] text-muted"></i>
|
|
</button>
|
|
<button class="w-full px-6 py-5 flex items-center justify-between border-b border-line hover:bg-stone transition-all">
|
|
<div class="flex items-center gap-4">
|
|
<div class="w-8 h-8 bg-stone rounded-lg flex items-center justify-center text-muted"><i class="fa-solid fa-bell text-xs"></i></div>
|
|
<span class="text-sm font-bold">Notifications</span>
|
|
</div>
|
|
<i class="fa-solid fa-chevron-right text-[10px] text-muted"></i>
|
|
</button>
|
|
<button onclick="location.href='Welcome__mobile.html'" class="w-full px-6 py-5 flex items-center justify-between hover:bg-red-50 transition-all text-error">
|
|
<div class="flex items-center gap-4">
|
|
<div class="w-8 h-8 bg-red-100 rounded-lg flex items-center justify-center text-error"><i class="fa-solid fa-right-from-bracket text-xs"></i></div>
|
|
<span class="text-sm font-bold">Log Out</span>
|
|
</div>
|
|
</button>
|
|
</div>
|
|
</section>
|
|
</main>
|
|
|
|
<!-- Navigation remains contextual to whoever is viewing (Staff or Owner) -->
|
|
<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> |