Files
kozmos-qr-menu/data/menu.ts
T
mstfyldzandClaude Sonnet 4.6 718e0a6228 Build Kozmos QR menu site — full implementation
Next.js 16 App Router, TR/EN i18n via [lang] routing and proxy.ts,
Tailwind v4, minimal list menu style, sticky bottom tab bar with
Intersection Observer, PWA manifest, WhatsApp fixed button.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-03 02:35:14 +03:00

254 lines
7.4 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
export type LocalizedString = { tr: string; en: string }
export type MenuItem = {
id: string
emoji: string
name: LocalizedString
description: LocalizedString
price: number
highlight?: boolean
}
export type Category = {
id: string
emoji: string
label: LocalizedString
items: MenuItem[]
}
export const WHATSAPP_NUMBER = '905XXXXXXXXXX'
export const categories: Category[] = [
{
id: 'starters',
emoji: '🥗',
label: { tr: 'Başlangıçlar', en: 'Starters' },
items: [
{
id: 's1',
emoji: '🥗',
name: { tr: 'Akdeniz Salatası', en: 'Mediterranean Salad' },
description: { tr: 'Domates, salatalık, zeytin, hellim peyniri', en: 'Tomato, cucumber, olives, halloumi' },
price: 120,
},
{
id: 's2',
emoji: '🧀',
name: { tr: 'Hellim Izgara', en: 'Grilled Halloumi' },
description: { tr: 'Zeytinyağı, taze nane, limon', en: 'Olive oil, fresh mint, lemon' },
price: 95,
},
{
id: 's3',
emoji: '🫙',
name: { tr: 'Zeytinyağlı Meze Tabağı', en: 'Meze Platter' },
description: { tr: 'Günlük hazır mezelerin seçimi', en: 'Daily selection of mezze' },
price: 145,
},
{
id: 's4',
emoji: '🍆',
name: { tr: 'Patlıcan Ezmesi', en: 'Smoked Eggplant Dip' },
description: { tr: 'Közlenmiş patlıcan, sarımsak, zeytinyağı', en: 'Roasted eggplant, garlic, olive oil' },
price: 85,
},
],
},
{
id: 'mains',
emoji: '🍽️',
label: { tr: 'Ana Yemekler', en: 'Main Courses' },
items: [
{
id: 'm1',
emoji: '🐟',
name: { tr: 'Balık Izgara', en: 'Grilled Fish' },
description: { tr: 'Günlük taze balık, sebze garnitürü', en: 'Daily fresh catch, vegetable garnish' },
price: 285,
},
{
id: 'm2',
emoji: '🐠',
name: { tr: 'Levrek Buğulama', en: 'Steamed Sea Bass' },
description: { tr: 'Sebzeli buğulama, zeytinyağlı sos', en: 'Steamed with vegetables, olive oil sauce' },
price: 295,
},
{
id: 'm3',
emoji: '🐙',
name: { tr: 'Ahtapot Izgara', en: 'Grilled Octopus' },
description: { tr: 'Kekikli marinad, kapari sosu', en: 'Thyme marinade, caper sauce' },
price: 320,
},
{
id: 'm4',
emoji: '🍢',
name: { tr: 'Tavuk Şiş', en: 'Chicken Skewers' },
description: { tr: 'Baharatlı tavuk, közlenmiş biber', en: 'Spiced chicken, roasted peppers' },
price: 175,
},
{
id: 'm5',
emoji: '🥘',
name: { tr: 'Vegetaryen Güveç', en: 'Vegetarian Stew' },
description: { tr: 'Mevsim sebzeler, nohut, domates sos', en: 'Seasonal vegetables, chickpeas, tomato sauce' },
price: 155,
},
],
},
{
id: 'pizzas',
emoji: '🍕',
label: { tr: 'Pizzalar', en: 'Pizzas' },
items: [
{
id: 'p1',
emoji: '🍕',
name: { tr: 'Margherita', en: 'Margherita' },
description: { tr: 'San marzano domates, bufala mozarella, fesleğen', en: 'San marzano tomatoes, buffalo mozzarella, basil' },
price: 165,
},
{
id: 'p2',
emoji: '🍕',
name: { tr: 'Karışık Pizza', en: 'Mixed Pizza' },
description: { tr: 'Salam, mantar, biber, mozarella', en: 'Salami, mushroom, pepper, mozzarella' },
price: 185,
},
{
id: 'p3',
emoji: '🦐',
name: { tr: 'Deniz Ürünleri', en: 'Seafood Pizza' },
description: { tr: 'Karides, kalamar, fesleğen sosu', en: 'Shrimp, calamari, basil sauce' },
price: 215,
},
{
id: 'p4',
emoji: '🌿',
name: { tr: 'Fıstık Pesto', en: 'Pesto Pizza' },
description: { tr: 'Fıstıklı pesto, roka, parmesan', en: 'Pistachio pesto, rocket, parmesan' },
price: 175,
},
],
},
{
id: 'mezze',
emoji: '🫒',
label: { tr: 'Mezeler', en: 'Mezze' },
items: [
{
id: 'mz1',
emoji: '🐟',
name: { tr: 'Tarama', en: 'Tarama' },
description: { tr: 'Balık yumurtası ezmesi, taze limon', en: 'Fish roe spread, fresh lemon' },
price: 75,
},
{
id: 'mz2',
emoji: '🧄',
name: { tr: 'Haydari', en: 'Haydari' },
description: { tr: 'Yoğurt, sarımsak, dereotu', en: 'Yogurt, garlic, dill' },
price: 65,
},
{
id: 'mz3',
emoji: '🥐',
name: { tr: 'Sigara Böreği', en: 'Cheese Pastry Rolls' },
description: { tr: 'Peynirli, 5 adet', en: 'Cheese-filled, 5 pieces' },
price: 85,
},
{
id: 'mz4',
emoji: '🐚',
name: { tr: 'Midye Tava', en: 'Fried Mussels' },
description: { tr: 'Tarator sos ile servis', en: 'Served with tarator sauce' },
price: 95,
},
{
id: 'mz5',
emoji: '🍤',
name: { tr: 'Karides Güveç', en: 'Shrimp Casserole' },
description: { tr: 'Domates sos, baharatlar, fırında', en: 'Tomato sauce, spices, oven-baked' },
price: 135,
},
],
},
{
id: 'drinks',
emoji: '🍹',
label: { tr: 'İçecekler', en: 'Drinks' },
items: [
{
id: 'd1',
emoji: '🍸',
name: { tr: 'Mojito', en: 'Mojito' },
description: { tr: 'Nane, lime, soda, rum', en: 'Mint, lime, soda, rum' },
price: 95,
},
{
id: 'd2',
emoji: '🍊',
name: { tr: 'Aperol Spritz', en: 'Aperol Spritz' },
description: { tr: 'Aperol, prosecco, portakal dilimi', en: 'Aperol, prosecco, orange slice' },
price: 115,
},
{
id: 'd3',
emoji: '🍋',
name: { tr: 'Limonata', en: 'Lemonade' },
description: { tr: 'Taze sıkılmış, nane seçeneği ile', en: 'Freshly squeezed, optional mint' },
price: 55,
},
{
id: 'd4',
emoji: '🥛',
name: { tr: 'Ayran', en: 'Ayran' },
description: { tr: 'Ev yapımı, taze çırpılmış', en: 'Homemade, freshly churned' },
price: 35,
},
{
id: 'd5',
emoji: '🍵',
name: { tr: 'Soğuk Çay', en: 'Iced Tea' },
description: { tr: 'Şeftali veya limon aromalı', en: 'Peach or lemon flavored' },
price: 45,
},
],
},
{
id: 'desserts',
emoji: '🍮',
label: { tr: 'Tatlılar', en: 'Desserts' },
items: [
{
id: 'dt1',
emoji: '🍨',
name: { tr: 'Dondurma', en: 'Ice Cream' },
description: { tr: '3 top, günlük seçim', en: '3 scoops, daily selection' },
price: 85,
},
{
id: 'dt2',
emoji: '🥮',
name: { tr: 'Baklava', en: 'Baklava' },
description: { tr: 'Antep fıstıklı, kaymak ile', en: 'Pistachio, with clotted cream' },
price: 75,
},
{
id: 'dt3',
emoji: '🍮',
name: { tr: 'Panna Cotta', en: 'Panna Cotta' },
description: { tr: 'Çilek sosu, taze nane', en: 'Strawberry sauce, fresh mint' },
price: 95,
},
{
id: 'dt4',
emoji: '🥞',
name: { tr: 'Akıtma', en: 'Akıtma' },
description: { tr: 'Geleneksel, nar ekşisi ile', en: 'Traditional, with pomegranate molasses' },
price: 65,
},
],
},
]