Files
ai-gift-planner-mockup/dashboard.html
Norbert Maciaszek 69069587c5 make more AI
2025-12-28 21:24:48 +01:00

390 lines
26 KiB
HTML

<!DOCTYPE html>
<html lang="pl">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Gift Planner - Dashboard</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>
<meta name="description" content="Planuj prezenty, śledź budżet i korzystaj z sugestii AI. Najlepsza aplikacja do zarządzania okazjami.">
</head>
<body class="bg-gray-50 min-h-screen">
<div class="flex h-screen overflow-hidden">
<!-- Sidebar -->
<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 bg-indigo-50 text-indigo-700 rounded-xl font-medium">
<i data-lucide="layout-dashboard"></i> Dashboard
</a>
<a href="updates.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="bell"></i> Aktualizacje
</a>
<a href="global-holidays.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="globe"></i> Święta
</a>
<a href="inspirations.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="sparkles"></i> Inspiracje
</a>
<a href="search.html" class="flex items-center gap-3 px-4 py-3 text-gray-600 hover:bg-gray-50 rounded-xl transition-colors group">
<i data-lucide="search" class="group-hover:text-indigo-600 transition-colors"></i> Wyszukiwarka
<span class="ml-auto bg-indigo-100 text-indigo-600 text-[8px] px-1.5 py-0.5 rounded font-black uppercase">AI</span>
</a>
<a href="blog.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="book-open"></i> Poradniki
</a>
<a href="occasions.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="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">
<a href="settings.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="settings"></i> Ustawienia
</a>
<div class="flex items-center gap-3 p-4 mt-2">
<div class="w-10 h-10 rounded-full bg-gradient-to-br from-indigo-100 to-purple-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>
<div class="flex items-center gap-1">
<i data-lucide="zap" class="w-2.5 h-2.5 text-yellow-500 fill-yellow-500"></i>
<p class="text-[10px] font-bold text-gray-500 uppercase">120 Tokenów</p>
</div>
</div>
</div>
</div>
</aside>
<!-- Main Content -->
<main class="flex-1 overflow-y-auto bg-gray-50 p-4 lg:p-8">
<!-- Header -->
<header class="flex flex-col md:flex-row md:items-center justify-between gap-4 mb-8">
<div>
<h2 class="text-2xl font-bold text-gray-900">Witaj, Norbert! 👋</h2>
<p class="text-gray-500">Masz 3 zbliżające się okazje w tym miesiącu.</p>
</div>
<div class="flex items-center gap-4">
<div class="hidden lg:flex items-center gap-4 bg-white border border-gray-100 px-4 py-2 rounded-2xl shadow-sm">
<!-- Tokens -->
<div class="flex items-center gap-2 pr-4 border-r border-gray-100">
<div class="w-8 h-8 bg-yellow-50 rounded-lg flex items-center justify-center text-yellow-600">
<i data-lucide="zap" class="w-4 h-4 fill-yellow-500"></i>
</div>
<div>
<p class="text-[10px] font-black text-gray-400 uppercase leading-none">Tokeny</p>
<p class="text-sm font-bold text-gray-900">120 <span class="text-gray-400 font-medium">/ 200</span></p>
</div>
</div>
<!-- Packages Status -->
<div class="flex items-center gap-3">
<div class="flex items-center gap-1.5 group cursor-pointer" title="Pakiet Oszczędzanie: Aktywny">
<div class="w-2 h-2 rounded-full bg-emerald-500"></div>
<span class="text-[10px] font-black text-gray-400 uppercase tracking-widest group-hover:text-emerald-600 transition-colors">Oszczędzanie</span>
</div>
<div class="flex items-center gap-1.5 group cursor-pointer opacity-40 hover:opacity-100 transition-all" title="Pakiet Kontrola Budżetu: Nieaktywny" onclick="window.location.href='settings.html'">
<div class="w-2 h-2 rounded-full bg-gray-300 group-hover:bg-indigo-500"></div>
<span class="text-[10px] font-black text-gray-400 uppercase tracking-widest group-hover:text-indigo-600">Budżet</span>
<i data-lucide="lock" class="w-2.5 h-2.5 text-gray-400"></i>
</div>
</div>
</div>
<div class="flex gap-3">
<button onclick="openModal('modal-add-person')" class="bg-white border border-gray-200 px-4 py-2 rounded-xl text-sm font-medium hover:bg-gray-50 transition-colors flex items-center gap-2">
<i data-lucide="plus-circle" class="w-4 h-4"></i> Dodaj osobę
</button>
<button onclick="openModal('modal-new-occasion')" class="gradient-bg text-white px-6 py-2 rounded-xl text-sm font-semibold shadow-lg shadow-indigo-200 hover:opacity-90 transition-all flex items-center gap-2">
<i data-lucide="sparkles" class="w-4 h-4"></i> Nowa okazja
</button>
</div>
</header>
<!-- Upcoming Events (Reminders) -->
<section class="mb-12">
<div class="flex items-center justify-between mb-8">
<h3 class="text-xl font-black text-gray-900 leading-tight">Nadchodzące wydarzenia</h3>
<a href="occasions.html" class="bg-white px-5 py-2.5 rounded-xl border border-gray-100 text-xs font-black text-gray-500 hover:text-indigo-600 hover:border-indigo-100 transition-all flex items-center gap-2 shadow-sm">
PEŁNY KALENDARZ <i data-lucide="calendar" class="w-3.5 h-3.5"></i>
</a>
</div>
<div class="space-y-4">
<!-- Event Reminder 2 -->
<div class="bg-white rounded-[2rem] p-4 pl-8 border border-gray-100 shadow-sm hover:shadow-xl hover:scale-[1.01] transition-all flex items-center gap-6 relative overflow-hidden group cursor-pointer">
<div class="absolute left-0 top-0 bottom-0 w-2 bg-purple-600"></div>
<div class="flex flex-col items-center justify-center shrink-0 w-16 h-16 bg-purple-50 rounded-2xl">
<span class="text-[10px] font-black text-purple-400 uppercase leading-none">GRUD</span>
<span class="text-2xl font-black text-purple-700 leading-none">16</span>
</div>
<div class="flex-1">
<div class="flex items-center gap-2 mb-1">
<h4 class="text-lg font-black text-gray-900">Urodziny Mai 🎂</h4>
<span class="px-3 py-0.5 bg-purple-100 text-purple-700 text-[10px] font-black rounded-full uppercase">Za 4 dni</span>
</div>
<p class="text-sm text-gray-400 font-medium leading-none">30-tka przyjaciółki • 1 osoba na liście</p>
</div>
<div class="flex items-center gap-8 pr-4">
<div class="text-right">
<p class="text-[10px] font-black text-gray-300 uppercase leading-none mb-1">Status</p>
<p class="text-sm font-black text-amber-500 italic">Brak pomysłu</p>
</div>
<div class="w-12 h-12 rounded-xl bg-gray-50 flex items-center justify-center text-gray-400 group-hover:bg-purple-600 group-hover:text-white transition-all">
<i data-lucide="chevron-right" class="w-5 h-5"></i>
</div>
</div>
</div>
<!-- Event Reminder 1 -->
<div class="bg-white rounded-[2rem] p-4 pl-8 border border-gray-100 shadow-sm hover:shadow-xl hover:scale-[1.01] transition-all flex items-center gap-6 relative overflow-hidden group cursor-pointer">
<div class="absolute left-0 top-0 bottom-0 w-2 bg-indigo-600"></div>
<div class="flex flex-col items-center justify-center shrink-0 w-16 h-16 bg-indigo-50 rounded-2xl">
<span class="text-[10px] font-black text-indigo-400 uppercase leading-none">GRUD</span>
<span class="text-2xl font-black text-indigo-700 leading-none">24</span>
</div>
<div class="flex-1">
<div class="flex items-center gap-2 mb-1">
<h4 class="text-lg font-black text-gray-900">Boże Narodzenie 2025</h4>
<span class="px-3 py-0.5 bg-indigo-100 text-indigo-700 text-[10px] font-black rounded-full uppercase">Za 12 dni</span>
</div>
<p class="text-sm text-gray-400 font-medium leading-none">Kolacja u rodziców • 12 osób na liście</p>
</div>
<div class="flex items-center gap-8 pr-4">
<div class="text-right">
<p class="text-[10px] font-black text-gray-300 uppercase leading-none mb-1">Postęp</p>
<p class="text-sm font-black text-gray-900">8 / 12 <span class="text-indigo-600">Gotowe</span></p>
</div>
<div class="w-12 h-12 rounded-xl bg-gray-50 flex items-center justify-center text-gray-400 group-hover:bg-indigo-600 group-hover:text-white transition-all">
<i data-lucide="chevron-right" class="w-5 h-5"></i>
</div>
</div>
</div>
</div>
</section>
<!-- Awaiting Ideas (Actionable Section) -->
<section class="mb-10">
<div class="flex items-center justify-between mb-6">
<h3 class="text-xl font-bold text-gray-900">Oczekujący na pomysł</h3>
<span class="text-[10px] font-black text-amber-600 bg-amber-50 px-3 py-1 rounded-full uppercase tracking-tighter">Wymagają uwagi</span>
</div>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
<!-- Awaiting Card 1 -->
<div class="bg-white p-6 rounded-[2.5rem] border border-gray-100 shadow-sm hover:shadow-xl transition-all group flex items-center gap-5">
<div class="w-16 h-16 rounded-2xl bg-gray-50 flex items-center justify-center text-gray-300 relative shrink-0">
<i data-lucide="user" class="w-8 h-8"></i>
<div class="absolute -top-1 -right-1 w-4 h-4 bg-amber-500 rounded-full border-2 border-white"></div>
</div>
<div class="flex-1 min-w-0">
<h4 class="font-black text-gray-900 truncate">Tata</h4>
<p class="text-[10px] font-bold text-gray-400 uppercase tracking-widest leading-none mb-2">Urodziny za 14 dni</p>
<a href="search.html" class="inline-flex items-center gap-1.5 text-indigo-600 text-[10px] font-black uppercase tracking-widest hover:gap-2 transition-all">
Znajdź prezent <i data-lucide="chevron-right" class="w-3 h-3"></i>
</a>
</div>
</div>
<!-- Awaiting Card 2 -->
<div class="bg-white p-6 rounded-[2.5rem] border border-gray-100 shadow-sm hover:shadow-xl transition-all group flex items-center gap-5">
<div class="w-16 h-16 rounded-2xl bg-gray-50 flex items-center justify-center text-gray-300 relative shrink-0">
<i data-lucide="user" class="w-8 h-8"></i>
<div class="absolute -top-1 -right-1 w-4 h-4 bg-amber-500 rounded-full border-2 border-white"></div>
</div>
<div class="flex-1 min-w-0">
<h4 class="font-black text-gray-900 truncate">Ania</h4>
<p class="text-[10px] font-bold text-gray-400 uppercase tracking-widest leading-none mb-2">Imieniny za 5 dni</p>
<a href="search.html" class="inline-flex items-center gap-1.5 text-indigo-600 text-[10px] font-black uppercase tracking-widest hover:gap-2 transition-all">
Znajdź prezent <i data-lucide="chevron-right" class="w-3 h-3"></i>
</a>
</div>
</div>
<!-- Awaiting Card 3 -->
<div class="bg-white p-6 rounded-[2.5rem] border border-gray-100 shadow-sm hover:shadow-xl transition-all group flex items-center gap-5">
<div class="w-16 h-16 rounded-2xl bg-gray-50 flex items-center justify-center text-gray-300 relative shrink-0">
<i data-lucide="user" class="w-8 h-8"></i>
<div class="absolute -top-1 -right-1 w-4 h-4 bg-amber-500 rounded-full border-2 border-white"></div>
</div>
<div class="flex-1 min-w-0">
<h4 class="font-black text-gray-900 truncate">Krzysztof</h4>
<p class="text-[10px] font-bold text-gray-400 uppercase tracking-widest leading-none mb-2">Parapetówka za 21 dni</p>
<a href="search.html" class="inline-flex items-center gap-1.5 text-indigo-600 text-[10px] font-black uppercase tracking-widest hover:gap-2 transition-all">
Znajdź prezent <i data-lucide="chevron-right" class="w-3 h-3"></i>
</a>
</div>
</div>
</div>
</section>
<!-- Quick Access Section -->
<section class="mb-12">
<div class="flex items-center justify-between mb-6">
<h3 class="text-xl font-bold text-gray-900">Na skróty</h3>
<span class="text-xs font-black text-gray-400 bg-gray-100 px-3 py-1 rounded-full uppercase tracking-tighter">Najczęściej wybierane</span>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-6">
<!-- Shortcut 1: Discovery -->
<a href="search.html" class="group relative overflow-hidden bg-white rounded-[2.5rem] p-8 shadow-sm border border-gray-100 hover:shadow-2xl hover:-translate-y-2 transition-all duration-500 flex flex-col items-center text-center">
<div class="w-20 h-20 bg-indigo-600 rounded-3xl flex items-center justify-center text-white mb-6 shadow-xl shadow-indigo-100 group-hover:scale-110 transition-transform">
<i data-lucide="search" class="w-10 h-10"></i>
</div>
<h4 class="text-xl font-black text-gray-900 mb-2">Wyszukiwarka AI</h4>
<p class="text-sm text-gray-500 font-medium leading-relaxed mb-6 italic">"Znajdź prezent na podstawie pasji i zainteresowań."</p>
<div class="mt-auto inline-flex items-center gap-2 text-indigo-600 text-[10px] font-black uppercase tracking-widest">
Uruchom szukanie <i data-lucide="arrow-right" class="w-4 h-4 group-hover:translate-x-1 transition-transform"></i>
</div>
</a>
<!-- Shortcut 2: Visual Trends -->
<a href="inspirations.html" class="group relative overflow-hidden bg-white rounded-[2.5rem] p-8 shadow-sm border border-gray-100 hover:shadow-2xl hover:-translate-y-2 transition-all duration-500 flex flex-col items-center text-center">
<div class="w-20 h-20 bg-purple-600 rounded-3xl flex items-center justify-center text-white mb-6 shadow-xl shadow-purple-100 group-hover:scale-110 transition-transform">
<i data-lucide="sparkles" class="w-10 h-10"></i>
</div>
<h4 class="text-xl font-black text-gray-900 mb-2">Inspiracje</h4>
<p class="text-sm text-gray-500 font-medium leading-relaxed mb-6 italic">"Przeglądaj najnowsze trendy i wizualne propozycje."</p>
<div class="mt-auto inline-flex items-center gap-2 text-purple-600 text-[10px] font-black uppercase tracking-widest">
Zobacz pomysły <i data-lucide="arrow-right" class="w-4 h-4 group-hover:translate-x-1 transition-transform"></i>
</div>
</a>
<!-- Shortcut 3: AI Greetings -->
<a href="occasions.html" class="group relative overflow-hidden bg-white rounded-[2.5rem] p-8 shadow-sm border border-gray-100 hover:shadow-2xl hover:-translate-y-2 transition-all duration-500 flex flex-col items-center text-center">
<div class="w-20 h-20 bg-emerald-600 rounded-3xl flex items-center justify-center text-white mb-6 shadow-xl shadow-emerald-100 group-hover:scale-110 transition-transform">
<i data-lucide="message-square-plus" class="w-10 h-10"></i>
</div>
<h4 class="text-xl font-black text-gray-900 mb-2">Życzenia AI</h4>
<p class="text-sm text-gray-500 font-medium leading-relaxed mb-6 italic">"Wygeneruj piękne i spersonalizowane życzenia."</p>
<div class="mt-auto inline-flex items-center gap-2 text-emerald-600 text-[10px] font-black uppercase tracking-widest">
Napisz życzenia <i data-lucide="zap" class="w-3 h-3 fill-emerald-600 ml-1"></i>
</div>
</a>
</div>
</section>
</main>
</div>
<!-- Mobile Navigation -->
<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-indigo-600">
<i data-lucide="layout-dashboard" class="w-6 h-6"></i>
<span class="text-[10px] font-bold mt-1">Home</span>
</a>
<a href="updates.html" class="flex flex-col items-center p-2 text-gray-400">
<i data-lucide="bell" class="w-6 h-6"></i>
<span class="text-[10px] font-bold mt-1">Status</span>
</a>
<a href="inspirations.html" class="flex flex-col items-center p-2 text-gray-400">
<i data-lucide="sparkles" class="w-6 h-6"></i>
<span class="text-[10px] font-bold mt-1">Pomysły</span>
</a>
<a href="blog.html" class="flex flex-col items-center p-2 text-gray-400">
<i data-lucide="book-open" class="w-6 h-6"></i>
<span class="text-[10px] font-bold mt-1">Blog</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>
<!-- Modal: Nowa Okazja -->
<div id="modal-new-occasion" 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">Nowa Okazja</h3>
<button onclick="closeModal('modal-new-occasion')" 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 Okazji</label>
<input type="text" placeholder="np. Urodziny Kamila" 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">Data</label>
<input type="date" class="form-input" required>
</div>
<div>
<label class="block text-[10px] font-black text-gray-400 uppercase tracking-widest mb-2 ml-1">Budżet (PLN)</label>
<input type="number" placeholder="0.00" class="form-input">
</div>
</div>
<div>
<label class="block text-[10px] font-black text-gray-400 uppercase tracking-widest mb-2 ml-1">Opis (opcjonalnie)</label>
<textarea placeholder="Krótki opis wydarzenia..." 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">
Stwórz okazję
</button>
</form>
</div>
</div>
<!-- Modal: Dodaj Osobę -->
<div id="modal-add-person" 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">Dodaj Osobę</h3>
<button onclick="closeModal('modal-add-person')" 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">Imię / Nick</label>
<input type="text" placeholder="np. Kasia" class="form-input" required>
</div>
<div>
<label class="block text-[10px] font-black text-gray-400 uppercase tracking-widest mb-2 ml-1">Relacja</label>
<select class="form-input">
<option>Rodzina</option>
<option>Przyjaciel / Przyjaciółka</option>
<option>Praca</option>
<option>Inna</option>
</select>
</div>
<div>
<label class="block text-[10px] font-black text-gray-400 uppercase tracking-widest mb-2 ml-1">Zainteresowania (oddziel przecinkiem)</label>
<input type="text" placeholder="kawa, joga, technologia" class="form-input">
</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 osobę do listy
</button>
</form>
</div>
</div>
<script>
lucide.createIcons();
</script>
</body>
</html>