add first mockup

This commit is contained in:
Norbert Maciaszek
2025-12-26 23:13:35 +01:00
parent 0be01758e3
commit 0357cf2eb7
19 changed files with 3599 additions and 0 deletions

271
occasion.html Normal file
View File

@@ -0,0 +1,271 @@
<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Szczegóły Okazji - Gift Planner</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="stylesheet" href="styles.css">
<script src="https://unpkg.com/lucide@latest"></script>
<script src="main.js" defer></script>
</head>
<body class="bg-gray-50 min-h-screen">
<div class="flex h-screen overflow-hidden">
<!-- Sidebar (Copy from index.html) -->
<aside class="w-64 bg-white border-r border-gray-200 hidden lg:flex flex-col">
<div class="p-6 flex items-center gap-3">
<div class="w-10 h-10 gradient-bg rounded-xl flex items-center justify-center text-white">
<i data-lucide="gift"></i>
</div>
<h1 class="text-xl font-bold bg-clip-text text-transparent bg-gradient-to-r from-indigo-600 to-purple-600">
Gift Planner
</h1>
</div>
<nav class="flex-1 px-4 py-4 space-y-2">
<a href="dashboard.html" class="flex items-center gap-3 px-4 py-3 text-gray-600 hover:bg-gray-50 rounded-xl transition-colors">
<i data-lucide="layout-dashboard"></i> Dashboard
</a>
<a href="occasions.html" class="flex items-center gap-3 px-4 py-3 bg-indigo-50 text-indigo-700 rounded-xl font-medium">
<i data-lucide="calendar"></i> Okazje
</a>
<a href="persons.html" class="flex items-center gap-3 px-4 py-3 text-gray-600 hover:bg-gray-50 rounded-xl transition-colors">
<i data-lucide="users"></i> Osoby
</a>
<a href="budget.html" class="flex items-center gap-3 px-4 py-3 text-gray-600 hover:bg-gray-50 rounded-xl transition-colors">
<i data-lucide="wallet"></i> Budżet
</a>
</nav>
<div class="p-4 border-t border-gray-100">
<div class="flex items-center gap-3 p-4">
<div class="w-10 h-10 rounded-full bg-indigo-100 flex items-center justify-center text-indigo-600 font-bold">NK</div>
<div class="flex-1 overflow-hidden">
<p class="text-sm font-semibold truncate">Norbert K.</p>
<p class="text-xs text-gray-500">Premium</p>
</div>
</div>
</div>
</aside>
<!-- Main Content -->
<main class="flex-1 overflow-y-auto bg-gray-50 p-4 lg:p-8">
<!-- Navigation Back -->
<button onclick="window.location.href='dashboard.html'" class="flex items-center gap-2 text-gray-500 hover:text-indigo-600 transition-colors mb-6 font-medium">
<i data-lucide="arrow-left" class="w-4 h-4"></i> Powrót do pulpitu
</button>
<!-- Header -->
<div class="flex flex-col lg:flex-row lg:items-end justify-between gap-6 mb-8">
<div>
<div class="flex items-center gap-3 mb-2">
<h2 class="text-3xl font-black text-gray-900 leading-tight">Boże Narodzenie 2025</h2>
<span class="bg-green-100 text-green-700 text-xs font-bold px-3 py-1 rounded-full uppercase tracking-tighter">W planowaniu</span>
</div>
<p class="text-gray-500 max-w-xl">Rodzinne spotkanie u mamy. Pamiętaj o prezentach dla kuzynostwa, których dawno nie widzieliśmy!</p>
<div class="flex items-center gap-4 mt-4">
<div class="flex items-center gap-2 text-sm text-gray-600 font-semibold bg-white border border-gray-100 px-3 py-1.5 rounded-lg">
<i data-lucide="calendar" class="w-4 h-4 text-indigo-600"></i> 24 Grudnia 2025
</div>
<div class="flex items-center gap-2 text-sm text-gray-600 font-semibold bg-white border border-gray-100 px-3 py-1.5 rounded-lg">
<i data-lucide="users" class="w-4 h-4 text-purple-600"></i> 12 Osób
</div>
</div>
</div>
<div class="bg-white rounded-3xl p-6 shadow-sm border border-gray-100 min-w-[300px]">
<div class="flex items-center justify-between mb-2">
<span class="text-sm font-bold text-gray-400">Budżet całkowity</span>
<span class="text-lg font-black text-gray-800">5 000 PLN</span>
</div>
<div class="w-full bg-gray-100 h-2 rounded-full mb-3 overflow-hidden">
<div class="h-full progress-bar-gradient" style="width: 80%"></div>
</div>
<div class="flex items-center justify-between">
<span class="text-xs font-bold text-indigo-600">Wykorzystano 4 000 PLN</span>
<span class="text-xs font-bold text-gray-400">Pozostało 1 000 PLN</span>
</div>
</div>
</div>
<!-- Tabs -->
<div class="flex border-b border-gray-200 mb-8 space-x-8">
<a href="occasion.html" class="pb-4 text-sm font-bold border-b-2 border-indigo-600 text-indigo-600">Lista Osób</a>
<a href="occasion-gifts.html" class="pb-4 text-sm font-bold text-gray-400 hover:text-gray-600 transition-colors">Wszystkie Prezenty</a>
<a href="occasion-ai.html" class="pb-4 text-sm font-bold text-gray-400 hover:text-gray-600 transition-colors flex items-center gap-2">
Analiza AI <span class="bg-indigo-100 text-indigo-600 text-[10px] px-1.5 py-0.5 rounded uppercase">Beta</span>
</a>
</div>
<!-- Dashboard Content (Persons List) -->
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
<!-- Person Card 1 -->
<div class="bg-white rounded-3xl p-6 shadow-sm border border-gray-100 hover:shadow-md transition-shadow group">
<div class="flex items-start justify-between mb-6">
<div class="flex items-center gap-4">
<div class="w-14 h-14 rounded-2xl bg-indigo-50 flex items-center justify-center">
<img src="https://ui-avatars.com/api/?name=Mama&background=random" class="w-full h-full rounded-2xl object-cover" alt="User">
</div>
<div>
<h4 class="font-bold text-gray-900 group-hover:text-indigo-600 transition-colors cursor-pointer" onclick="window.location.href='person.html'">Mama</h4>
<p class="text-xs font-semibold text-gray-400">Relacja: Mama</p>
</div>
</div>
<button class="text-gray-400 hover:text-gray-600">
<i data-lucide="more-horizontal" class="w-5 h-5"></i>
</button>
</div>
<div class="space-y-3 mb-6">
<div class="flex items-center justify-between p-3 bg-gray-50 rounded-2xl">
<div class="flex items-center gap-3">
<div class="w-8 h-8 bg-white rounded-xl flex items-center justify-center shadow-sm">
<i data-lucide="package" class="w-4 h-4 text-indigo-500"></i>
</div>
<span class="text-sm font-medium text-gray-700">Ekspres do kawy</span>
</div>
<span class="text-xs font-bold text-green-600 bg-green-50 px-2 py-1 rounded-lg">Kupiony</span>
</div>
<div class="flex items-center justify-between p-3 bg-gray-50 rounded-2xl opacity-60">
<div class="flex items-center gap-3">
<div class="w-8 h-8 bg-white rounded-xl flex items-center justify-center shadow-sm">
<i data-lucide="gift" class="w-4 h-4 text-purple-500"></i>
</div>
<span class="text-sm font-medium text-gray-700">Książka kucharska</span>
</div>
<span class="text-xs font-bold text-gray-400 bg-white px-2 py-1 rounded-lg border border-gray-100">Idea</span>
</div>
</div>
<div class="flex items-center justify-between pt-4 border-t border-gray-50">
<div>
<p class="text-[10px] font-bold text-gray-400 uppercase tracking-widest">Budżet na osobę</p>
<p class="font-bold text-indigo-600 text-lg">1 200 PLN</p>
</div>
<button onclick="openModal('modal-add-gift')" class="bg-indigo-50 text-indigo-600 p-3 rounded-2xl hover:bg-indigo-100 transition-colors">
<i data-lucide="plus" class="w-5 h-5"></i>
</button>
</div>
</div>
<!-- Person Card 2 -->
<div class="bg-white rounded-3xl p-6 shadow-sm border border-gray-100 hover:shadow-md transition-shadow group">
<div class="flex items-start justify-between mb-6">
<div class="flex items-center gap-4">
<div class="w-14 h-14 rounded-2xl bg-purple-50 flex items-center justify-center">
<img src="https://ui-avatars.com/api/?name=Tata&background=random" class="w-full h-full rounded-2xl object-cover" alt="User">
</div>
<div>
<h4 class="font-bold text-gray-900 group-hover:text-indigo-600 transition-colors">Tata</h4>
<p class="text-xs font-semibold text-gray-400">Relacja: Ojciec</p>
</div>
</div>
<button class="text-gray-400 hover:text-gray-600">
<i data-lucide="more-horizontal" class="w-5 h-5"></i>
</button>
</div>
<div class="bg-indigo-50 border border-indigo-100 rounded-3xl p-6 flex flex-col items-center justify-center text-center space-y-3 mb-6">
<div class="w-10 h-10 bg-white rounded-full flex items-center justify-center text-indigo-600 shadow-sm">
<i data-lucide="sparkles" class="w-5 h-5 animate-pulse"></i>
</div>
<div>
<p class="text-sm font-bold text-indigo-700">Brak prezentów</p>
<p class="text-[10px] text-indigo-500 font-medium">Kliknij, aby AI wygenerowało propozycje</p>
</div>
<button class="bg-indigo-600 text-white text-xs font-bold px-4 py-2 rounded-xl hover:bg-indigo-700 transition-colors">
Generuj pomysły
</button>
</div>
<div class="flex items-center justify-between pt-4 border-t border-gray-50">
<div>
<p class="text-[10px] font-bold text-gray-400 uppercase tracking-widest">Budżet na osobę</p>
<p class="font-bold text-indigo-600 text-lg">800 PLN</p>
</div>
<button onclick="openModal('modal-add-gift')" class="bg-indigo-50 text-indigo-600 p-3 rounded-2xl hover:bg-indigo-100 transition-colors">
<i data-lucide="plus" class="w-5 h-5"></i>
</button>
</div>
</div>
<!-- Add Person Card -->
<div class="border-2 border-dashed border-gray-200 rounded-3xl p-6 flex flex-col items-center justify-center text-center hover:border-indigo-200 hover:bg-indigo-50/10 transition-all cursor-pointer group">
<div class="w-16 h-16 bg-white rounded-full flex items-center justify-center text-gray-400 group-hover:text-indigo-600 shadow-sm border border-gray-100 mb-4 transition-colors">
<i data-lucide="person-standing" class="w-8 h-8"></i>
</div>
<h4 class="font-bold text-gray-400 group-hover:text-indigo-600 transition-colors">Dodaj kolejną osobę</h4>
<p class="text-xs text-gray-400 px-6 mt-2">Wybierz z listy kontaktów lub stwórz nową osobę.</p>
</div>
</div>
</main>
</div>
<!-- Modal: Dodaj Prezent -->
<div id="modal-add-gift" class="modal-overlay">
<div class="modal-content">
<div class="flex items-center justify-between mb-8">
<h3 class="text-2xl font-black text-gray-900">Nowy Prezent</h3>
<button onclick="closeModal('modal-add-gift')" class="text-gray-400 hover:text-gray-600">
<i data-lucide="x"></i>
</button>
</div>
<form class="space-y-6">
<div>
<label class="block text-[10px] font-black text-gray-400 uppercase tracking-widest mb-2 ml-1">Nazwa Prezentu</label>
<input type="text" placeholder="np. Słuchawki Sony" class="form-input" required>
</div>
<div class="grid grid-cols-2 gap-4">
<div>
<label class="block text-[10px] font-black text-gray-400 uppercase tracking-widest mb-2 ml-1">Szacowana Cena (PLN)</label>
<input type="number" placeholder="0.00" class="form-input" required>
</div>
<div>
<label class="block text-[10px] font-black text-gray-400 uppercase tracking-widest mb-2 ml-1">Status</label>
<select class="form-input">
<option>Idea</option>
<option>Wybrany</option>
<option>Kupiony</option>
<option>Zapakowany</option>
</select>
</div>
</div>
<div>
<label class="block text-[10px] font-black text-gray-400 uppercase tracking-widest mb-2 ml-1">Link do produktu (np. Ceneo)</label>
<input type="url" placeholder="https://..." class="form-input">
</div>
<div>
<label class="block text-[10px] font-black text-gray-400 uppercase tracking-widest mb-2 ml-1">Notatki / Dlaczego ten?</label>
<textarea placeholder="Twoje przemyślenia..." class="form-input h-24 resize-none"></textarea>
</div>
<button type="submit" class="w-full gradient-bg text-white py-4 rounded-2xl font-bold shadow-xl shadow-indigo-100 mt-4">
Dodaj prezent do listy
</button>
</form>
</div>
</div>
<!-- Mobile Navigation (Same as index) -->
<nav class="lg:hidden fixed bottom-0 left-0 right-0 bg-white border-t border-gray-200 p-2 flex justify-around items-center z-50">
<a href="dashboard.html" class="flex flex-col items-center p-2 text-gray-400">
<i data-lucide="layout-dashboard" class="w-6 h-6"></i>
<span class="text-[10px] font-bold mt-1">Home</span>
</a>
<a href="occasions.html" class="flex flex-col items-center p-2 text-indigo-600">
<i data-lucide="calendar" class="w-6 h-6"></i>
<span class="text-[10px] font-bold mt-1">Okazje</span>
</a>
<a href="persons.html" class="flex flex-col items-center p-2 text-gray-400">
<i data-lucide="users" class="w-6 h-6"></i>
<span class="text-[10px] font-bold mt-1">Osoby</span>
</a>
<a href="settings.html" class="flex flex-col items-center p-2 text-gray-400">
<i data-lucide="settings" class="w-6 h-6"></i>
<span class="text-[10px] font-bold mt-1">Opcje</span>
</a>
</nav>
<script>
lucide.createIcons();
</script>
</body>
</html>