Initial commit

This commit is contained in:
2026-03-19 22:14:12 +01:00
commit dcad09f5ce
7 changed files with 538 additions and 0 deletions

185
js/views/RecipeList.js Normal file
View File

@@ -0,0 +1,185 @@
export function getRecipeListHTML() {
return `
<div id="main-view" class="flex flex-col h-full absolute inset-0 bg-gray-50 z-10">
<div class="p-4 border-b border-gray-200 mt-4 bg-white">
<div class="flex items-center w-full border border-gray-300 rounded-lg bg-white focus-within:border-gray-400 transition-colors">
<div class="pl-3 pr-2 text-gray-400"><i class="fas fa-search"></i></div>
<input type="text" placeholder="Search recipes..." class="flex-1 py-2.5 bg-transparent outline-none text-gray-600 placeholder-gray-400 text-sm">
<div class="w-px h-6 bg-gray-200"></div>
<button onclick="openFilters()" class="px-4 text-gray-700 hover:text-black flex items-center justify-center transition-colors">
<i class="fas fa-sliders-h"></i>
</button>
</div>
</div>
<div class="px-5 py-4 pb-2 bg-gray-50">
<h2 class="text-xl font-medium">24 Recipes Found</h2>
</div>
<div class="flex-1 overflow-y-auto px-4 pb-24 bg-gray-50">
<div class="grid grid-cols-2 gap-3">
<div onclick="openRecipeDetail()" class="border border-gray-200 rounded-xl overflow-hidden shadow-sm flex flex-col bg-white cursor-pointer hover:shadow-md transition-shadow">
<div class="h-32 bg-[#d4d4d4] relative flex items-center justify-center">
<span class="text-white font-medium text-xs">Pancakes</span>
</div>
<div class="p-3 flex flex-col flex-1">
<h3 class="text-sm font-medium underline decoration-1 underline-offset-2 text-black mb-1 line-clamp-1">Fluffy Pancakes</h3>
<p class="text-gray-500 text-xs mb-3 line-clamp-2">Classic breakfast pancakes</p>
<div class="mt-auto">
<div class="flex items-center justify-between text-[11px] text-gray-600 font-medium mb-2">
<div class="flex items-center gap-1"><i class="fas fa-clock text-gray-400"></i><span>15m</span></div>
<div class="flex items-center gap-1"><i class="fas fa-fire text-gray-400"></i><span>320 cal</span></div>
</div>
<div class="flex flex-wrap gap-1">
<span class="px-2 py-0.5 bg-gray-100 text-gray-600 text-[10px] rounded-md font-medium">Breakfast</span>
</div>
</div>
</div>
</div>
<div onclick="openRecipeDetail()" class="border border-gray-200 rounded-xl overflow-hidden shadow-sm flex flex-col bg-white cursor-pointer hover:shadow-md transition-shadow">
<div class="h-32 bg-[#d4d4d4] relative flex items-center justify-center">
<span class="text-white font-medium text-xs">Salad</span>
</div>
<div class="p-3 flex flex-col flex-1">
<h3 class="text-sm font-medium underline decoration-1 underline-offset-2 text-black mb-1 line-clamp-1">Chicken Salad</h3>
<p class="text-gray-500 text-xs mb-3 line-clamp-2">Healthy greens with grilled chicken</p>
<div class="mt-auto">
<div class="flex items-center justify-between text-[11px] text-gray-600 font-medium mb-2">
<div class="flex items-center gap-1"><i class="fas fa-clock text-gray-400"></i><span>20m</span></div>
<div class="flex items-center gap-1"><i class="fas fa-fire text-gray-400"></i><span>250 cal</span></div>
</div>
<div class="flex flex-wrap gap-1">
<span class="px-2 py-0.5 bg-gray-100 text-gray-600 text-[10px] rounded-md font-medium">Lunch</span>
</div>
</div>
</div>
</div>
<div onclick="openRecipeDetail()" class="border border-gray-200 rounded-xl overflow-hidden shadow-sm flex flex-col bg-white cursor-pointer hover:shadow-md transition-shadow">
<div class="h-32 bg-[#d4d4d4] relative flex items-center justify-center">
<span class="text-white font-medium text-xs">Pasta</span>
</div>
<div class="p-3 flex flex-col flex-1">
<h3 class="text-sm font-medium underline decoration-1 underline-offset-2 text-black mb-1 line-clamp-1">Tomato Basil Pasta</h3>
<p class="text-gray-500 text-xs mb-3 line-clamp-2">Rich garlic and tomato sauce</p>
<div class="mt-auto">
<div class="flex items-center justify-between text-[11px] text-gray-600 font-medium mb-2">
<div class="flex items-center gap-1"><i class="fas fa-clock text-gray-400"></i><span>30m</span></div>
<div class="flex items-center gap-1"><i class="fas fa-fire text-gray-400"></i><span>450 cal</span></div>
</div>
<div class="flex flex-wrap gap-1">
<span class="px-2 py-0.5 bg-gray-100 text-gray-600 text-[10px] rounded-md font-medium">Dinner</span>
</div>
</div>
</div>
</div>
<div onclick="openRecipeDetail()" class="border border-gray-200 rounded-xl overflow-hidden shadow-sm flex flex-col bg-white cursor-pointer hover:shadow-md transition-shadow">
<div class="h-32 bg-[#d4d4d4] relative flex items-center justify-center">
<span class="text-white font-medium text-xs">Smoothie</span>
</div>
<div class="p-3 flex flex-col flex-1">
<h3 class="text-sm font-medium underline decoration-1 underline-offset-2 text-black mb-1 line-clamp-1">Berry Smoothie</h3>
<p class="text-gray-500 text-xs mb-3 line-clamp-2">Mixed berries and yogurt power blend</p>
<div class="mt-auto">
<div class="flex items-center justify-between text-[11px] text-gray-600 font-medium mb-2">
<div class="flex items-center gap-1"><i class="fas fa-clock text-gray-400"></i><span>5m</span></div>
<div class="flex items-center gap-1"><i class="fas fa-fire text-gray-400"></i><span>180 cal</span></div>
</div>
<div class="flex flex-wrap gap-1">
<span class="px-2 py-0.5 bg-gray-100 text-gray-600 text-[10px] rounded-md font-medium">Snack</span>
</div>
</div>
</div>
</div>
<div onclick="openRecipeDetail()" class="border border-gray-200 rounded-xl overflow-hidden shadow-sm flex flex-col bg-white cursor-pointer hover:shadow-md transition-shadow">
<div class="h-32 bg-[#d4d4d4] relative flex items-center justify-center">
<span class="text-white font-medium text-xs">Avocado Toast</span>
</div>
<div class="p-3 flex flex-col flex-1">
<h3 class="text-sm font-medium underline decoration-1 underline-offset-2 text-black mb-1 line-clamp-1">Avocado Toast</h3>
<p class="text-gray-500 text-xs mb-3 line-clamp-2">Sourdough with smashed avocado</p>
<div class="mt-auto">
<div class="flex items-center justify-between text-[11px] text-gray-600 font-medium mb-2">
<div class="flex items-center gap-1"><i class="fas fa-clock text-gray-400"></i><span>10m</span></div>
<div class="flex items-center gap-1"><i class="fas fa-fire text-gray-400"></i><span>220 cal</span></div>
</div>
<div class="flex flex-wrap gap-1">
<span class="px-2 py-0.5 bg-gray-100 text-gray-600 text-[10px] rounded-md font-medium">Breakfast</span>
</div>
</div>
</div>
</div>
<div onclick="openRecipeDetail()" class="border border-gray-200 rounded-xl overflow-hidden shadow-sm flex flex-col bg-white cursor-pointer hover:shadow-md transition-shadow">
<div class="h-32 bg-[#d4d4d4] relative flex items-center justify-center">
<span class="text-white font-medium text-xs">Salmon</span>
</div>
<div class="p-3 flex flex-col flex-1">
<h3 class="text-sm font-medium underline decoration-1 underline-offset-2 text-black mb-1 line-clamp-1">Grilled Salmon</h3>
<p class="text-gray-500 text-xs mb-3 line-clamp-2">Fresh salmon with lemon butter</p>
<div class="mt-auto">
<div class="flex items-center justify-between text-[11px] text-gray-600 font-medium mb-2">
<div class="flex items-center gap-1"><i class="fas fa-clock text-gray-400"></i><span>25m</span></div>
<div class="flex items-center gap-1"><i class="fas fa-fire text-gray-400"></i><span>380 cal</span></div>
</div>
<div class="flex flex-wrap gap-1">
<span class="px-2 py-0.5 bg-gray-100 text-gray-600 text-[10px] rounded-md font-medium">Dinner</span>
</div>
</div>
</div>
</div>
<div onclick="openRecipeDetail()" class="border border-gray-200 rounded-xl overflow-hidden shadow-sm flex flex-col bg-white cursor-pointer hover:shadow-md transition-shadow">
<div class="h-32 bg-[#d4d4d4] relative flex items-center justify-center">
<span class="text-white font-medium text-xs">Tacos</span>
</div>
<div class="p-3 flex flex-col flex-1">
<h3 class="text-sm font-medium underline decoration-1 underline-offset-2 text-black mb-1 line-clamp-1">Beef Tacos</h3>
<p class="text-gray-500 text-xs mb-3 line-clamp-2">Spicy ground beef with fresh salsa</p>
<div class="mt-auto">
<div class="flex items-center justify-between text-[11px] text-gray-600 font-medium mb-2">
<div class="flex items-center gap-1"><i class="fas fa-clock text-gray-400"></i><span>20m</span></div>
<div class="flex items-center gap-1"><i class="fas fa-fire text-gray-400"></i><span>410 cal</span></div>
</div>
<div class="flex flex-wrap gap-1">
<span class="px-2 py-0.5 bg-gray-100 text-gray-600 text-[10px] rounded-md font-medium">Dinner</span>
</div>
</div>
</div>
</div>
<div onclick="openRecipeDetail()" class="border border-gray-200 rounded-xl overflow-hidden shadow-sm flex flex-col bg-white cursor-pointer hover:shadow-md transition-shadow">
<div class="h-32 bg-[#d4d4d4] relative flex items-center justify-center">
<span class="text-white font-medium text-xs">Oatmeal</span>
</div>
<div class="p-3 flex flex-col flex-1">
<h3 class="text-sm font-medium underline decoration-1 underline-offset-2 text-black mb-1 line-clamp-1">Oatmeal Bowl</h3>
<p class="text-gray-500 text-xs mb-3 line-clamp-2">Warm oats with honey and nuts</p>
<div class="mt-auto">
<div class="flex items-center justify-between text-[11px] text-gray-600 font-medium mb-2">
<div class="flex items-center gap-1"><i class="fas fa-clock text-gray-400"></i><span>10m</span></div>
<div class="flex items-center gap-1"><i class="fas fa-fire text-gray-400"></i><span>210 cal</span></div>
</div>
<div class="flex flex-wrap gap-1">
<span class="px-2 py-0.5 bg-gray-100 text-gray-600 text-[10px] rounded-md font-medium">Breakfast</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="absolute bottom-0 w-full bg-white border-t border-gray-200 flex justify-between px-6 py-3 pb-6 z-20">
<button class="flex flex-col items-center gap-1 text-black"><i class="fas fa-book text-xl"></i><span class="text-[11px] font-medium">Recipes</span></button>
<button class="flex flex-col items-center gap-1 text-gray-500 hover:text-gray-700"><i class="far fa-calendar-alt text-xl"></i><span class="text-[11px] font-medium">Planner</span></button>
<button class="flex flex-col items-center gap-1 text-gray-500 hover:text-gray-700"><i class="fas fa-shopping-cart text-xl"></i><span class="text-[11px] font-medium">Shopping</span></button>
<button class="flex flex-col items-center gap-1 text-gray-500 hover:text-gray-700"><i class="fas fa-box text-xl"></i><span class="text-[11px] font-medium">Inventory</span></button>
</div>
</div>
`;
}