import { Link } from "react-router-dom"; import { Button } from "@/components/ui/button"; import { Badge } from "@/components/ui/badge"; import { Separator } from "@/components/ui/separator"; import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"; import { Card, CardContent } from "@/components/ui/card"; import { Download, UtensilsCrossed, Wine, Star } from "lucide-react"; import Header from "@/components/Header"; import Footer from "@/components/Footer"; import { useSaas } from "@/hooks/use-tygarun"; const menuItems = { starters: [ { name: "Burrata & Heirloom Tomato", desc: "Creamy burrata, vine-ripened tomatoes, basil oil, aged balsamic", price: "$18", badges: ["V"] }, { name: "Seared Scallops", desc: "Pan-seared diver scallops, cauliflower purée, truffle vinaigrette", price: "$24", badges: ["GF"] }, { name: "Duck Confit Terrine", desc: "Slow-cooked duck leg, pistachio, cornichon, sourdough toast", price: "$19", badges: [] }, { name: "Wild Mushroom Risotto", desc: "Arborio rice, porcini, chanterelle, shaved parmesan, herb oil", price: "$16", badges: ["V", "GF"] }, ], mains: [ { name: "Wagyu Beef Tenderloin", desc: "A5 wagyu, bone marrow butter, roasted root vegetables, red wine jus", price: "$62", badges: ["GF"] }, { name: "Pan-Roasted Halibut", desc: "Wild halibut, saffron beurre blanc, fennel, olive tapenade", price: "$44", badges: [] }, { name: "Rack of Lamb", desc: "Herb-crusted lamb, pommes dauphine, mint gremolata", price: "$52", badges: [] }, { name: "Truffle Tagliatelle", desc: "Hand-rolled pasta, black truffle cream, pecorino, fresh herbs", price: "$36", badges: ["V"] }, { name: "Roasted Duck Breast", desc: "Cherry-glazed duck, confit potatoes, wilted greens, port reduction", price: "$48", badges: ["GF"] }, ], desserts: [ { name: "Valrhona Chocolate Fondant", desc: "Warm dark chocolate cake, vanilla bean ice cream, gold leaf", price: "$16", badges: ["V"] }, { name: "Crème Brûlée", desc: "Tahitian vanilla custard, caramelized sugar, shortbread", price: "$14", badges: ["GF"] }, { name: "Tarte Tatin", desc: "Caramelized apple, puff pastry, calvados cream", price: "$15", badges: [] }, { name: "Lemon Posset", desc: "Set cream, fresh berries, lavender meringue", price: "$13", badges: ["V", "GF"] }, ], drinks: [ { name: "Signature Old Fashioned", desc: "Woodford Reserve, demerara, Angostura, flamed orange peel", price: "$19", badges: [] }, { name: "Garden Spritz", desc: "Elderflower, prosecco, cucumber, fresh mint, soda", price: "$16", badges: [] }, { name: "Sommelier Wine Pairing", desc: "Five-course curated wine flight matched to your meal", price: "$65", badges: [] }, { name: "Espresso Martini", desc: "Ketel One, fresh espresso, Kahlúa, vanilla", price: "$18", badges: [] }, ], }; const tastingCourses = [ "Amuse-bouche · Seasonal selection", "Seared Scallops · Cauliflower, truffle", "Wagyu Beef · Root vegetables, red wine jus", "Artisan Cheese · Honeycomb, fig compote", "Chocolate Fondant · Vanilla ice cream" ]; const renderItems = (items: { name: string; desc: string; price: string; badges: string[] }[]) => items.map((item, i) => (
{item.name} {item.badges.map((b, j) => ( {b} ))}

{item.desc}

{item.price}
)); export default function MenuPage() { // Menu catalog from tyga.run ecommerce (falls back to seed until store is live) const { data: catalog } = useSaas("ecommerce", "/catalog"); const byCat = (cat: keyof typeof menuItems) => { const live = Array.isArray(catalog) ? catalog .filter((p: any) => String(p.category || "").toLowerCase() === cat) .map((p: any) => ({ name: p.name, desc: p.description || "", price: typeof p.priceCents === "number" ? "$" + (p.priceCents / 100).toFixed(0) : (p.price || ""), badges: Array.isArray(p.badges) ? p.badges : [], })) : []; return live.length ? live : menuItems[cat]; }; return (
{/* ── HERO ── */}

Our Menu

Seasonal selections crafted daily by our executive chef

{/* ── TABBED MENU ── */}
Starters Mains Desserts Drinks {renderItems(byCat("starters"))}

Wine pairing recommended with select starters

{renderItems(byCat("mains"))}

Ask your sommelier for pairing suggestions

{renderItems(byCat("desserts"))}
{renderItems(byCat("drinks"))}
V Vegetarian GF Gluten Free
{/* ── TASTING MENU ── */}

Chef's Tasting Menu

A five-course journey through our most celebrated dishes

{tastingCourses.map((c, i) => (
{c}
))}
$135 per person

Wine pairing available for $85

Ask your sommelier for wine pairing recommendations

{/* ── DOWNLOAD ── */}
); }