Merge version_1 into main #1

Merged
bender merged 8 commits from version_1 into main 2026-02-12 21:17:16 +00:00
8 changed files with 78 additions and 179 deletions

View File

@@ -30,11 +30,11 @@ export default function AboutPage() {
{ name: "Home", id: "/" },
{ name: "Menu", id: "/menu" },
{ name: "About", id: "/about" },
{ name: "Contact", id: "/contact" }
{ name: "Contact", id: "/contact" },
{ name: "Shop", id: "/shop" }
]}
button={{
text: "Reserve Now",
href: "/contact"
text: "Reserve Now", href: "/contact"
}}
/>
</div>
@@ -78,14 +78,10 @@ export default function AboutPage() {
tagAnimation="slide-up"
metrics={[
{
id: "1",
value: "45K+",
description: "Guests have experienced authentic Lebanese hospitality at our tables"
id: "1", value: "45K+", description: "Guests have experienced authentic Lebanese hospitality at our tables"
},
{
id: "2",
value: "120+",
description: "Traditional family recipes preserved and shared with our community"
id: "2", value: "120+", description: "Traditional family recipes preserved and shared with our community"
}
]}
metricsAnimation="opacity"
@@ -99,12 +95,10 @@ export default function AboutPage() {
<FooterLogoReveal
logoText="Beirut Kitchen"
leftLink={{
text: "Privacy Policy",
href: "https://example.com/privacy"
text: "Privacy Policy", href: "https://example.com/privacy"
}}
rightLink={{
text: "Terms of Service",
href: "https://example.com/terms"
text: "Terms of Service", href: "https://example.com/terms"
}}
ariaLabel="Site footer with links and logo"
/>

View File

@@ -29,11 +29,12 @@ export default function BlogPage() {
brandName="Beirut Kitchen"
navItems={[
{ name: "Home", id: "/" },
{ name: "Menu", id: "product" },
{ name: "About", id: "about" },
{ name: "Contact", id: "contact" }
{ name: "Menu", id: "/menu" },
{ name: "About", id: "/about" },
{ name: "Contact", id: "/contact" },
{ name: "Shop", id: "/shop" }
]}
button={{ text: "Reserve Now", href: "contact" }}
button={{ text: "Reserve Now", href: "/contact" }}
/>
</div>

View File

@@ -30,11 +30,11 @@ export default function ContactPage() {
{ name: "Home", id: "/" },
{ name: "Menu", id: "/menu" },
{ name: "About", id: "/about" },
{ name: "Contact", id: "/contact" }
{ name: "Contact", id: "/contact" },
{ name: "Shop", id: "/shop" }
]}
button={{
text: "Reserve Now",
href: "/contact"
text: "Reserve Now", href: "/contact"
}}
/>
</div>
@@ -81,22 +81,10 @@ export default function ContactPage() {
tagAnimation="slide-up"
testimonials={[
{
id: "1",
title: "Perfect Anniversary Dinner",
quote: "We celebrated our anniversary here and the staff made it extra special. The lamb shawarma was perfectly cooked, and the service was impeccable.",
name: "Emily Rodriguez",
role: "Anniversary Guest",
imageSrc: "https://img.b2bpic.net/free-photo/smiling-woman-sitting-cafe-with-closed-laptop_1262-1151.jpg",
imageAlt: "Emily Rodriguez, anniversary dinner guest"
id: "1", title: "Perfect Anniversary Dinner", quote: "We celebrated our anniversary here and the staff made it extra special. The lamb shawarma was perfectly cooked, and the service was impeccable.", name: "Emily Rodriguez", role: "Anniversary Guest", imageSrc: "https://img.b2bpic.net/free-photo/smiling-woman-sitting-cafe-with-closed-laptop_1262-1151.jpg", imageAlt: "Emily Rodriguez, anniversary dinner guest"
},
{
id: "2",
title: "A Hidden Gem in the City",
quote: "Finally found authentic Lebanese food that matches my childhood memories. The ambiance, service, and food are all top-notch. Highly recommended!",
name: "David Kim",
role: "Food Blogger",
imageSrc: "https://img.b2bpic.net/free-photo/young-female-with-pinkish-hair-posing_344912-846.jpg",
imageAlt: "David Kim, food blogger and guest"
id: "2", title: "A Hidden Gem in the City", quote: "Finally found authentic Lebanese food that matches my childhood memories. The ambiance, service, and food are all top-notch. Highly recommended!", name: "David Kim", role: "Food Blogger", imageSrc: "https://img.b2bpic.net/free-photo/young-female-with-pinkish-hair-posing_344912-846.jpg", imageAlt: "David Kim, food blogger and guest"
}
]}
ariaLabel="Recent customer testimonials and dining experiences"
@@ -108,12 +96,10 @@ export default function ContactPage() {
<FooterLogoReveal
logoText="Beirut Kitchen"
leftLink={{
text: "Privacy Policy",
href: "https://example.com/privacy"
text: "Privacy Policy", href: "https://example.com/privacy"
}}
rightLink={{
text: "Terms of Service",
href: "https://example.com/terms"
text: "Terms of Service", href: "https://example.com/terms"
}}
ariaLabel="Site footer with links and logo"
/>

View File

@@ -3,36 +3,23 @@ import { Mulish } from "next/font/google";
import "./globals.css";
const mulish = Mulish({
variable: "--font-mulish",
subsets: ["latin"],
variable: "--font-mulish", subsets: ["latin"],
});
export const metadata: Metadata = {
title: "Beirut Kitchen - Authentic Lebanese Restaurant & Cuisine",
description: "Experience authentic Lebanese cuisine at Beirut Kitchen. Traditional recipes, premium ingredients, and warm hospitality since 2015. Reserve your table today.",
keywords: ["Lebanese restaurant", "authentic cuisine", "Lebanese food", "hummus", "mezze", "shawarma", "Mediterranean dining"],
title: "Beirut Kitchen - Authentic Lebanese Restaurant & Cuisine", description: "Experience authentic Lebanese cuisine at Beirut Kitchen. Traditional recipes, premium ingredients, and warm hospitality since 2015. Reserve your table today.", keywords: ["Lebanese restaurant", "authentic cuisine", "Lebanese food", "hummus", "mezze", "shawarma", "Mediterranean dining"],
robots: {
index: true,
follow: true,
},
openGraph: {
title: "Beirut Kitchen - Authentic Lebanese Restaurant",
description: "Discover traditional Lebanese cuisine prepared with family recipes and the finest ingredients.",
url: "https://beirutkitchen.example.com",
siteName: "Beirut Kitchen",
type: "website",
images: [
title: "Beirut Kitchen - Authentic Lebanese Restaurant", description: "Discover traditional Lebanese cuisine prepared with family recipes and the finest ingredients.", url: "https://beirutkitchen.example.com", siteName: "Beirut Kitchen", type: "website", images: [
{
url: "https://img.b2bpic.net/free-photo/colorful-tasty-hummus-with-ingredients_23-2149401906.jpg",
alt: "Authentic Lebanese mezze platter",
},
url: "https://img.b2bpic.net/free-photo/colorful-tasty-hummus-with-ingredients_23-2149401906.jpg", alt: "Authentic Lebanese mezze platter"},
],
},
twitter: {
card: "summary_large_image",
title: "Beirut Kitchen - Authentic Lebanese Restaurant",
description: "Experience traditional Lebanese cuisine with warm hospitality.",
images: ["https://img.b2bpic.net/free-photo/colorful-tasty-hummus-with-ingredients_23-2149401906.jpg"],
card: "summary_large_image", title: "Beirut Kitchen - Authentic Lebanese Restaurant", description: "Experience traditional Lebanese cuisine with warm hospitality.", images: ["https://img.b2bpic.net/free-photo/colorful-tasty-hummus-with-ingredients_23-2149401906.jpg"],
},
};

View File

@@ -30,11 +30,11 @@ export default function MenuPage() {
{ name: "Home", id: "/" },
{ name: "Menu", id: "/menu" },
{ name: "About", id: "/about" },
{ name: "Contact", id: "/contact" }
{ name: "Contact", id: "/contact" },
{ name: "Shop", id: "/shop" }
]}
button={{
text: "Reserve Now",
href: "/contact"
text: "Reserve Now", href: "/contact"
}}
/>
</div>
@@ -53,46 +53,22 @@ export default function MenuPage() {
useInvertedBackground={false}
products={[
{
id: "1",
name: "Classic Hummus",
price: "$8.99",
imageSrc: "https://img.b2bpic.net/free-photo/colorful-tasty-hummus-with-ingredients_23-2149401906.jpg",
imageAlt: "Traditional Lebanese hummus with olive oil and tahini"
id: "1", name: "Classic Hummus", price: "$8.99", imageSrc: "https://img.b2bpic.net/free-photo/colorful-tasty-hummus-with-ingredients_23-2149401906.jpg", imageAlt: "Traditional Lebanese hummus with olive oil and tahini"
},
{
id: "2",
name: "Fattoush Salad",
price: "$14.99",
imageSrc: "https://img.b2bpic.net/free-photo/top-view-yogurt-with-pomegranate-oil_23-2148759732.jpg",
imageAlt: "Fresh fattoush with vegetables and sumac vinaigrette"
id: "2", name: "Fattoush Salad", price: "$14.99", imageSrc: "https://img.b2bpic.net/free-photo/top-view-yogurt-with-pomegranate-oil_23-2148759732.jpg", imageAlt: "Fresh fattoush with vegetables and sumac vinaigrette"
},
{
id: "3",
name: "Kibbeh Plate",
price: "$16.99",
imageSrc: "https://img.b2bpic.net/free-photo/delicious-hummus-plate-still-life-view_23-2149595634.jpg",
imageAlt: "Golden kibbeh with traditional meat and bulgur filling"
id: "3", name: "Kibbeh Plate", price: "$16.99", imageSrc: "https://img.b2bpic.net/free-photo/delicious-hummus-plate-still-life-view_23-2149595634.jpg", imageAlt: "Golden kibbeh with traditional meat and bulgur filling"
},
{
id: "4",
name: "Lamb Shawarma",
price: "$22.99",
imageSrc: "https://img.b2bpic.net/free-photo/top-view-delicious-hummus-plate-still-life_23-2149595639.jpg",
imageAlt: "Tender lamb shawarma with tahini and herbs"
id: "4", name: "Lamb Shawarma", price: "$22.99", imageSrc: "https://img.b2bpic.net/free-photo/top-view-delicious-hummus-plate-still-life_23-2149595639.jpg", imageAlt: "Tender lamb shawarma with tahini and herbs"
},
{
id: "5",
name: "Baklava Selection",
price: "$9.99",
imageSrc: "https://img.b2bpic.net/free-photo/colorful-tasty-hummus-with-ingredients_23-2149401906.jpg",
imageAlt: "Assorted baklava pastries with honey and nuts"
id: "5", name: "Baklava Selection", price: "$9.99", imageSrc: "https://img.b2bpic.net/free-photo/colorful-tasty-hummus-with-ingredients_23-2149401906.jpg", imageAlt: "Assorted baklava pastries with honey and nuts"
},
{
id: "6",
name: "Lebanese Coffee",
price: "$4.99",
imageSrc: "https://img.b2bpic.net/free-photo/top-view-yogurt-with-pomegranate-oil_23-2148759732.jpg",
imageAlt: "Traditional Lebanese coffee service"
id: "6", name: "Lebanese Coffee", price: "$4.99", imageSrc: "https://img.b2bpic.net/free-photo/top-view-yogurt-with-pomegranate-oil_23-2148759732.jpg", imageAlt: "Traditional Lebanese coffee service"
}
]}
ariaLabel="Complete Lebanese restaurant menu with prices"
@@ -112,16 +88,12 @@ export default function MenuPage() {
tagAnimation="slide-up"
negativeCard={{
items: [
"Generic Mediterranean blends",
"Processed convenience ingredients",
"Mass-produced bread and pita"
"Generic Mediterranean blends", "Processed convenience ingredients", "Mass-produced bread and pita"
]
}}
positiveCard={{
items: [
"Authentic Lebanese spice blends imported directly",
"Fresh vegetables and herbs delivered daily",
"House-made pita bread baked fresh throughout the day"
"Authentic Lebanese spice blends imported directly", "Fresh vegetables and herbs delivered daily", "House-made pita bread baked fresh throughout the day"
]
}}
ariaLabel="Quality comparison of our authentic Lebanese ingredients"
@@ -142,18 +114,10 @@ export default function MenuPage() {
useInvertedBackground={true}
products={[
{
id: "7",
name: "Khalil Family Mezze Platter",
price: "$34.99",
imageSrc: "https://img.b2bpic.net/free-photo/colorful-tasty-hummus-with-ingredients_23-2149401906.jpg",
imageAlt: "Family-style mezze platter with multiple Lebanese appetizers"
id: "7", name: "Khalil Family Mezze Platter", price: "$34.99", imageSrc: "https://img.b2bpic.net/free-photo/colorful-tasty-hummus-with-ingredients_23-2149401906.jpg", imageAlt: "Family-style mezze platter with multiple Lebanese appetizers"
},
{
id: "8",
name: "Cedar Mountain Lamb",
price: "$28.99",
imageSrc: "https://img.b2bpic.net/free-photo/delicious-hummus-plate-still-life-view_23-2149595634.jpg",
imageAlt: "Slow-roasted lamb with Lebanese mountain herbs"
id: "8", name: "Cedar Mountain Lamb", price: "$28.99", imageSrc: "https://img.b2bpic.net/free-photo/delicious-hummus-plate-still-life-view_23-2149595634.jpg", imageAlt: "Slow-roasted lamb with Lebanese mountain herbs"
}
]}
ariaLabel="Chef's signature Lebanese specialties and family recipes"
@@ -165,12 +129,10 @@ export default function MenuPage() {
<FooterLogoReveal
logoText="Beirut Kitchen"
leftLink={{
text: "Privacy Policy",
href: "https://example.com/privacy"
text: "Privacy Policy", href: "https://example.com/privacy"
}}
rightLink={{
text: "Terms of Service",
href: "https://example.com/terms"
text: "Terms of Service", href: "https://example.com/terms"
}}
ariaLabel="Site footer with links and logo"
/>

View File

@@ -35,11 +35,11 @@ export default function HomePage() {
{ name: "Home", id: "/" },
{ name: "Menu", id: "/menu" },
{ name: "About", id: "/about" },
{ name: "Contact", id: "/contact" }
{ name: "Contact", id: "/contact" },
{ name: "Shop", id: "/shop" }
]}
button={{
text: "Reserve Now",
href: "/contact"
text: "Reserve Now", href: "/contact"
}}
/>
</div>
@@ -94,25 +94,13 @@ export default function HomePage() {
useInvertedBackground={false}
products={[
{
id: "1",
name: "Fattoush Salad",
price: "$14.99",
imageSrc: "https://img.b2bpic.net/free-photo/top-view-yogurt-with-pomegranate-oil_23-2148759732.jpg",
imageAlt: "Crisp fattoush salad with fresh vegetables and sumac vinaigrette"
id: "1", name: "Fattoush Salad", price: "$14.99", imageSrc: "https://img.b2bpic.net/free-photo/top-view-yogurt-with-pomegranate-oil_23-2148759732.jpg", imageAlt: "Crisp fattoush salad with fresh vegetables and sumac vinaigrette"
},
{
id: "2",
name: "Kibbeh",
price: "$12.99",
imageSrc: "https://img.b2bpic.net/free-photo/delicious-hummus-plate-still-life-view_23-2149595634.jpg",
imageAlt: "Golden fried kibbeh with traditional meat and bulgur filling"
id: "2", name: "Kibbeh", price: "$12.99", imageSrc: "https://img.b2bpic.net/free-photo/delicious-hummus-plate-still-life-view_23-2149595634.jpg", imageAlt: "Golden fried kibbeh with traditional meat and bulgur filling"
},
{
id: "3",
name: "Grilled Lamb Shawarma",
price: "$18.99",
imageSrc: "https://img.b2bpic.net/free-photo/top-view-delicious-hummus-plate-still-life_23-2149595639.jpg",
imageAlt: "Tender grilled lamb shawarma with tahini sauce and fresh herbs"
id: "3", name: "Grilled Lamb Shawarma", price: "$18.99", imageSrc: "https://img.b2bpic.net/free-photo/top-view-delicious-hummus-plate-still-life_23-2149595639.jpg", imageAlt: "Tender grilled lamb shawarma with tahini sauce and fresh herbs"
}
]}
ariaLabel="Featured Lebanese dishes and menu items"
@@ -127,14 +115,10 @@ export default function HomePage() {
tagAnimation="slide-up"
metrics={[
{
id: "1",
value: "15K+",
description: "Happy guests enjoy our authentic Lebanese cuisine every year"
id: "1", value: "15K+", description: "Happy guests enjoy our authentic Lebanese cuisine every year"
},
{
id: "2",
value: "100%",
description: "Ingredients sourced from trusted Lebanese and Mediterranean suppliers"
id: "2", value: "100%", description: "Ingredients sourced from trusted Lebanese and Mediterranean suppliers"
}
]}
metricsAnimation="opacity"
@@ -155,22 +139,10 @@ export default function HomePage() {
tagAnimation="slide-up"
testimonials={[
{
id: "1",
title: "An Unforgettable Dining Experience",
quote: "The hummus here is absolutely divine. It tastes exactly like my grandmother made it in Beirut. Every visit feels like coming home.",
name: "Sarah Mitchell",
role: "Regular Guest",
imageSrc: "https://img.b2bpic.net/free-photo/smiling-middle-aged-woman-showing-ok-sign_1262-17571.jpg",
imageAlt: "Sarah Mitchell, satisfied restaurant guest"
id: "1", title: "An Unforgettable Dining Experience", quote: "The hummus here is absolutely divine. It tastes exactly like my grandmother made it in Beirut. Every visit feels like coming home.", name: "Sarah Mitchell", role: "Regular Guest", imageSrc: "https://img.b2bpic.net/free-photo/smiling-middle-aged-woman-showing-ok-sign_1262-17571.jpg", imageAlt: "Sarah Mitchell, satisfied restaurant guest"
},
{
id: "2",
title: "Authentic Flavors Worth Celebrating",
quote: "The freshness of ingredients and attention to detail in every dish is remarkable. This is true Lebanese cuisine, prepared with love.",
name: "Michael Chen",
role: "Restaurant Critic",
imageSrc: "https://img.b2bpic.net/free-photo/smiling-middle-aged-attractive-woman-showing-thumb-up-outdoors_1262-12526.jpg",
imageAlt: "Michael Chen, professional restaurant critic"
id: "2", title: "Authentic Flavors Worth Celebrating", quote: "The freshness of ingredients and attention to detail in every dish is remarkable. This is true Lebanese cuisine, prepared with love.", name: "Michael Chen", role: "Restaurant Critic", imageSrc: "https://img.b2bpic.net/free-photo/smiling-middle-aged-attractive-woman-showing-thumb-up-outdoors_1262-12526.jpg", imageAlt: "Michael Chen, professional restaurant critic"
}
]}
ariaLabel="Customer testimonials and reviews"
@@ -190,18 +162,12 @@ export default function HomePage() {
tagAnimation="slide-up"
negativeCard={{
items: [
"Mass-produced ingredients",
"Inconsistent flavors",
"Rushed preparation",
"Impersonal service"
"Mass-produced ingredients", "Inconsistent flavors", "Rushed preparation", "Impersonal service"
]
}}
positiveCard={{
items: [
"Premium sourced ingredients from trusted suppliers",
"Consistent authentic taste in every dish",
"Slow-cooked with traditional methods",
"Warm, personalized hospitality for every guest"
"Premium sourced ingredients from trusted suppliers", "Consistent authentic taste in every dish", "Slow-cooked with traditional methods", "Warm, personalized hospitality for every guest"
]
}}
ariaLabel="Why choose our Lebanese restaurant for authentic dining"
@@ -228,12 +194,10 @@ export default function HomePage() {
<FooterLogoReveal
logoText="Beirut Kitchen"
leftLink={{
text: "Privacy Policy",
href: "https://example.com/privacy"
text: "Privacy Policy", href: "https://example.com/privacy"
}}
rightLink={{
text: "Terms of Service",
href: "https://example.com/terms"
text: "Terms of Service", href: "https://example.com/terms"
}}
ariaLabel="Site footer with links and logo"
/>

View File

@@ -1,6 +1,6 @@
"use client";
import { use, useCallback } from "react";
import { use, useCallback, useState } from "react";
import { useRouter } from "next/navigation";
import ReactLenis from "lenis/react";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
@@ -19,6 +19,7 @@ interface ProductPageProps {
export default function ProductPage({ params }: ProductPageProps) {
const { id } = use(params);
const router = useRouter();
const [cartOpen, setCartOpen] = useState(false);
const {
product,
@@ -33,8 +34,6 @@ export default function ProductPage({ params }: ProductPageProps) {
const {
items: cartItems,
isOpen: cartOpen,
setIsOpen: setCartOpen,
addItem,
updateQuantity,
removeItem,
@@ -86,9 +85,9 @@ export default function ProductPage({ params }: ProductPageProps) {
brandName="Beirut Kitchen"
navItems={[
{ name: "Home", id: "/" },
{ name: "Menu", id: "product" },
{ name: "About", id: "about" },
{ name: "Contact", id: "contact" },
{ name: "Menu", id: "/menu" },
{ name: "About", id: "/about" },
{ name: "Contact", id: "/contact" },
{ name: "Shop", id: "/shop" }
]}
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
@@ -130,9 +129,9 @@ export default function ProductPage({ params }: ProductPageProps) {
brandName="Beirut Kitchen"
navItems={[
{ name: "Home", id: "/" },
{ name: "Menu", id: "product" },
{ name: "About", id: "about" },
{ name: "Contact", id: "contact" },
{ name: "Menu", id: "/menu" },
{ name: "About", id: "/about" },
{ name: "Contact", id: "/contact" },
{ name: "Shop", id: "/shop" }
]}
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
@@ -181,9 +180,9 @@ export default function ProductPage({ params }: ProductPageProps) {
brandName="Beirut Kitchen"
navItems={[
{ name: "Home", id: "/" },
{ name: "Menu", id: "product" },
{ name: "About", id: "about" },
{ name: "Contact", id: "contact" },
{ name: "Menu", id: "/menu" },
{ name: "About", id: "/about" },
{ name: "Contact", id: "/contact" },
{ name: "Shop", id: "/shop" }
]}
button={{ text: "Cart", onClick: () => setCartOpen(true) }}

View File

@@ -1,5 +1,6 @@
"use client";
import { useState } from "react";
import ReactLenis from "lenis/react";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarLayoutFloatingInline from '@/components/navbar/NavbarLayoutFloatingInline';
@@ -8,14 +9,19 @@ import ProductCatalog from "@/components/ecommerce/productCatalog/ProductCatalog
import { useProductCatalog } from "@/hooks/useProductCatalog";
export default function ShopPage() {
const [cartOpen, setCartOpen] = useState(false);
const {
products,
isLoading,
search,
setSearch,
category,
setCategory,
sort,
setSort,
filters,
cartOpen,
setCartOpen,
categories,
} = useProductCatalog({ basePath: "/shop" });
if (isLoading) {
@@ -38,9 +44,9 @@ export default function ShopPage() {
brandName="Beirut Kitchen"
navItems={[
{ name: "Home", id: "/" },
{ name: "Menu", id: "product" },
{ name: "About", id: "about" },
{ name: "Contact", id: "contact" },
{ name: "Menu", id: "/menu" },
{ name: "About", id: "/about" },
{ name: "Contact", id: "/contact" },
{ name: "Shop", id: "/shop" }
]}
button={{ text: "Cart", onClick: () => setCartOpen(true) }}
@@ -81,9 +87,9 @@ export default function ShopPage() {
brandName="Beirut Kitchen"
navItems={[
{ name: "Home", id: "/" },
{ name: "Menu", id: "product" },
{ name: "About", id: "about" },
{ name: "Contact", id: "contact" },
{ name: "Menu", id: "/menu" },
{ name: "About", id: "/about" },
{ name: "Contact", id: "/contact" },
{ name: "Shop", id: "/shop" }
]}
button={{ text: "Cart", onClick: () => setCartOpen(true) }}