Merge version_1 into main #2

Merged
bender merged 6 commits from version_1 into main 2026-03-11 19:56:13 +00:00
6 changed files with 102 additions and 297 deletions

View File

@@ -20,8 +20,7 @@ export default function AboutPage() {
const footerColumns = [
{
title: "Navigate",
items: [
title: "Navigate", items: [
{ label: "Home", href: "/" },
{ label: "Menu", href: "/menu" },
{ label: "Gallery", href: "/gallery" },
@@ -29,8 +28,7 @@ export default function AboutPage() {
]
},
{
title: "Order & Contact",
items: [
title: "Order & Contact", items: [
{ label: "Order via Glovo", href: "https://glovo.com" },
{ label: "Call Us", href: "tel:+212522995910" },
{ label: "Email", href: "mailto:hello@wafflefactory.ma" },
@@ -38,8 +36,7 @@ export default function AboutPage() {
]
},
{
title: "Hours & Info",
items: [
title: "Hours & Info", items: [
{ label: "Open Today", href: "#" },
{ label: "Closes 23:00", href: "#" },
{ label: "Delivery Available", href: "#" },
@@ -47,8 +44,7 @@ export default function AboutPage() {
]
},
{
title: "Legal",
items: [
title: "Legal", items: [
{ label: "Privacy Policy", href: "#" },
{ label: "Terms of Service", href: "#" },
{ label: "Delivery Info", href: "#" }
@@ -82,19 +78,16 @@ export default function AboutPage() {
<InlineImageSplitTextAbout
heading={[
{
type: "text",
content: "Crafting Memories, One Waffle at a Time"
type: "text", content: "Crafting Memories, One Waffle at a Time"
}
]}
useInvertedBackground={false}
buttons={[
{
text: "Discover Our Story",
href: "/about"
text: "Discover Our Story", href: "/about"
},
{
text: "Order Online",
href: "https://glovo.com"
text: "Order Online", href: "https://glovo.com"
}
]}
buttonAnimation="slide-up"
@@ -105,24 +98,16 @@ export default function AboutPage() {
<MetricCardTwo
metrics={[
{
id: "1",
value: "196+",
description: "Happy Customers"
id: "1", value: "196+", description: "Happy Customers"
},
{
id: "2",
value: "4.2★",
description: "Average Rating"
id: "2", value: "4.2★", description: "Average Rating"
},
{
id: "3",
value: "10+",
description: "Years in Business"
id: "3", value: "10+", description: "Years in Business"
},
{
id: "4",
value: "50-100 MAD",
description: "Price per Person"
id: "4", value: "50-100 MAD", description: "Price per Person"
}
]}
title="Why Locals Love Us"
@@ -143,7 +128,7 @@ export default function AboutPage() {
tag="Get in Touch"
title="Ready to Order? Contact Us Today!"
description="Whether you want to reserve a table, place an order for delivery, or just say hello—we're here for you. Open until 23:00 daily."
background={{ variant: "floatingGradient" }}
background={{ variant: "plain" }}
useInvertedBackground={false}
inputPlaceholder="Your email address"
buttonText="Subscribe"

View File

@@ -17,8 +17,7 @@ export default function ContactPage() {
const footerColumns = [
{
title: "Navigate",
items: [
title: "Navigate", items: [
{ label: "Home", href: "/" },
{ label: "Menu", href: "/menu" },
{ label: "Gallery", href: "/gallery" },
@@ -26,8 +25,7 @@ export default function ContactPage() {
],
},
{
title: "Order & Contact",
items: [
title: "Order & Contact", items: [
{ label: "Order via Glovo", href: "https://glovo.com" },
{ label: "Call Us", href: "tel:+212522995910" },
{ label: "Email", href: "mailto:hello@wafflefactory.ma" },
@@ -35,8 +33,7 @@ export default function ContactPage() {
],
},
{
title: "Hours & Info",
items: [
title: "Hours & Info", items: [
{ label: "Open Today", href: "#" },
{ label: "Closes 23:00", href: "#" },
{ label: "Delivery Available", href: "#" },
@@ -44,8 +41,7 @@ export default function ContactPage() {
],
},
{
title: "Legal",
items: [
title: "Legal", items: [
{ label: "Privacy Policy", href: "#" },
{ label: "Terms of Service", href: "#" },
{ label: "Delivery Info", href: "#" },
@@ -88,7 +84,7 @@ export default function ContactPage() {
description="Whether you want to reserve a table, place an order for delivery, or just say hello—we're here for you. Open until 23:00 daily."
tagIcon={undefined}
tagAnimation="slide-up"
background={{ variant: "floatingGradient" }}
background={{ variant: "plain" }}
useInvertedBackground={false}
inputPlaceholder="Your email address"
buttonText="Subscribe"

View File

@@ -19,8 +19,7 @@ export default function GalleryPage() {
const footerColumns = [
{
title: "Navigate",
items: [
title: "Navigate", items: [
{ label: "Home", href: "/" },
{ label: "Menu", href: "/menu" },
{ label: "Gallery", href: "/gallery" },
@@ -28,8 +27,7 @@ export default function GalleryPage() {
]
},
{
title: "Order & Contact",
items: [
title: "Order & Contact", items: [
{ label: "Order via Glovo", href: "https://glovo.com" },
{ label: "Call Us", href: "tel:+212522995910" },
{ label: "Email", href: "mailto:hello@wafflefactory.ma" },
@@ -37,8 +35,7 @@ export default function GalleryPage() {
]
},
{
title: "Hours & Info",
items: [
title: "Hours & Info", items: [
{ label: "Open Today", href: "#" },
{ label: "Closes 23:00", href: "#" },
{ label: "Delivery Available", href: "#" },
@@ -46,8 +43,7 @@ export default function GalleryPage() {
]
},
{
title: "Legal",
items: [
title: "Legal", items: [
{ label: "Privacy Policy", href: "#" },
{ label: "Terms of Service", href: "#" },
{ label: "Delivery Info", href: "#" }
@@ -81,48 +77,16 @@ export default function GalleryPage() {
<BlogCardOne
blogs={[
{
id: "1",
category: "Waffles",
title: "Belgian Waffle Classics",
excerpt: "Crispy on the outside, fluffy on the inside. Traditional recipes perfected.",
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-hands-holding-ladyfingers_23-2149549746.jpg?_wi=2",
imageAlt: "Classic Belgian waffle",
authorName: "Waffle Factory",
authorAvatar: "http://img.b2bpic.net/free-photo/pleased-young-handsome-cook-chef-uniform-standing-with-closed-posture-holding-whisk-isolated-white-space_141793-44709.jpg",
date: "Fresh Daily"
id: "1", category: "Waffles", title: "Belgian Waffle Classics", excerpt: "Crispy on the outside, fluffy on the inside. Traditional recipes perfected.", imageSrc: "http://img.b2bpic.net/free-photo/high-angle-hands-holding-ladyfingers_23-2149549746.jpg", imageAlt: "Classic Belgian waffle", authorName: "Waffle Factory", authorAvatar: "http://img.b2bpic.net/free-photo/pleased-young-handsome-cook-chef-uniform-standing-with-closed-posture-holding-whisk-isolated-white-space_141793-44709.jpg", date: "Fresh Daily"
},
{
id: "2",
category: "Desserts",
title: "Decadent Chocolate Creations",
excerpt: "Rich, smooth, and absolutely irresistible. Chocolate lovers' paradise.",
imageSrc: "http://img.b2bpic.net/free-photo/top-view-hands-holding-chocolate-cake_23-2148019562.jpg?_wi=2",
imageAlt: "Chocolate dessert creation",
authorName: "Waffle Factory",
authorAvatar: "http://img.b2bpic.net/free-photo/resentful-bearded-man-wearing-white-shirt-with-serious-face-with-crossed-arms-standing-white-wall_141793-56871.jpg",
date: "Fresh Daily"
id: "2", category: "Desserts", title: "Decadent Chocolate Creations", excerpt: "Rich, smooth, and absolutely irresistible. Chocolate lovers' paradise.", imageSrc: "http://img.b2bpic.net/free-photo/top-view-hands-holding-chocolate-cake_23-2148019562.jpg", imageAlt: "Chocolate dessert creation", authorName: "Waffle Factory", authorAvatar: "http://img.b2bpic.net/free-photo/resentful-bearded-man-wearing-white-shirt-with-serious-face-with-crossed-arms-standing-white-wall_141793-56871.jpg", date: "Fresh Daily"
},
{
id: "3",
category: "Gelato",
title: "Artisan Gelato Selection",
excerpt: "Creamy, smooth, and made fresh. Premium imported ingredients.",
imageSrc: "http://img.b2bpic.net/free-photo/tasty-ice-cream-cookies-assortment_23-2149836017.jpg?_wi=2",
imageAlt: "Gelato sundae selection",
authorName: "Waffle Factory",
authorAvatar: "http://img.b2bpic.net/free-photo/pleased-young-caucasian-male-barber-wearing-glasses-wavy-hair-band-uniform-looking-camera-isolated-white-background-with-copy-space_141793-89923.jpg",
date: "Fresh Daily"
id: "3", category: "Gelato", title: "Artisan Gelato Selection", excerpt: "Creamy, smooth, and made fresh. Premium imported ingredients.", imageSrc: "http://img.b2bpic.net/free-photo/tasty-ice-cream-cookies-assortment_23-2149836017.jpg", imageAlt: "Gelato sundae selection", authorName: "Waffle Factory", authorAvatar: "http://img.b2bpic.net/free-photo/pleased-young-caucasian-male-barber-wearing-glasses-wavy-hair-band-uniform-looking-camera-isolated-white-background-with-copy-space_141793-89923.jpg", date: "Fresh Daily"
},
{
id: "4",
category: "Atmosphere",
title: "Cozy Restaurant Vibes",
excerpt: "Warm ambiance perfect for friends, family, and late-night treats.",
imageSrc: "http://img.b2bpic.net/free-photo/handsome-guy-hugging-young-cheerful-lady-table_23-2148016786.jpg?_wi=2",
imageAlt: "Restaurant interior",
authorName: "Waffle Factory",
authorAvatar: "http://img.b2bpic.net/free-photo/portrait-woman-smiling-kitchen_107420-12357.jpg",
date: "Welcome Always"
id: "4", category: "Atmosphere", title: "Cozy Restaurant Vibes", excerpt: "Warm ambiance perfect for friends, family, and late-night treats.", imageSrc: "http://img.b2bpic.net/free-photo/handsome-guy-hugging-young-cheerful-lady-table_23-2148016786.jpg", imageAlt: "Restaurant interior", authorName: "Waffle Factory", authorAvatar: "http://img.b2bpic.net/free-photo/portrait-woman-smiling-kitchen_107420-12357.jpg", date: "Welcome Always"
}
]}
title="Gallery"
@@ -144,7 +108,7 @@ export default function GalleryPage() {
tag="Get in Touch"
title="Ready to Order? Contact Us Today!"
description="Whether you want to reserve a table, place an order for delivery, or just say hello—we're here for you. Open until 23:00 daily."
background={{ variant: "floatingGradient" }}
background={{ variant: "plain" }}
useInvertedBackground={false}
inputPlaceholder="Your email address"
buttonText="Subscribe"

View File

@@ -46,47 +46,17 @@ export default function MenuPage() {
tagAnimation="slide-up"
products={[
{
id: "1",
name: "Classic Belgian Waffle",
price: "60 MAD",
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-waffles-with-raspberries-honey_23-2148352303.jpg?_wi=2",
imageAlt: "Classic Belgian waffle with toppings",
},
id: "1", name: "Classic Belgian Waffle", price: "60 MAD", imageSrc: "http://img.b2bpic.net/free-photo/high-angle-waffles-with-raspberries-honey_23-2148352303.jpg", imageAlt: "Classic Belgian waffle with toppings"},
{
id: "2",
name: "Chocolate Dream Waffle",
price: "75 MAD",
imageSrc: "http://img.b2bpic.net/free-photo/top-view-berries-plate-cake-chocolate-strawberries-bowls-chocolate-sweets-strawberries-cutting-board_140725-111589.jpg?_wi=2",
imageAlt: "Chocolate waffle with cream and berries",
},
id: "2", name: "Chocolate Dream Waffle", price: "75 MAD", imageSrc: "http://img.b2bpic.net/free-photo/top-view-berries-plate-cake-chocolate-strawberries-bowls-chocolate-sweets-strawberries-cutting-board_140725-111589.jpg", imageAlt: "Chocolate waffle with cream and berries"},
{
id: "3",
name: "Strawberry Cheesecake Waffle",
price: "80 MAD",
imageSrc: "http://img.b2bpic.net/free-photo/side-view-cake-with-cup-tea-cake-with-strawberries-chocolate-bowl-strawberries-chocolate-cream-cup-tea-with-lemon-cinnamon-sticks-black-table_140725-110580.jpg?_wi=2",
imageAlt: "Strawberry cheesecake topped waffle",
},
id: "3", name: "Strawberry Cheesecake Waffle", price: "80 MAD", imageSrc: "http://img.b2bpic.net/free-photo/side-view-cake-with-cup-tea-cake-with-strawberries-chocolate-bowl-strawberries-chocolate-cream-cup-tea-with-lemon-cinnamon-sticks-black-table_140725-110580.jpg", imageAlt: "Strawberry cheesecake topped waffle"},
{
id: "4",
name: "Premium Gelato Sundae",
price: "50 MAD",
imageSrc: "http://img.b2bpic.net/free-photo/blueberry-ice-cream-scoops-with-waffle-wooden-table_123827-21814.jpg?_wi=2",
imageAlt: "Gourmet gelato sundae",
},
id: "4", name: "Premium Gelato Sundae", price: "50 MAD", imageSrc: "http://img.b2bpic.net/free-photo/blueberry-ice-cream-scoops-with-waffle-wooden-table_123827-21814.jpg", imageAlt: "Gourmet gelato sundae"},
{
id: "5",
name: "Nutella Paradise Waffle",
price: "85 MAD",
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-waffles-with-raspberries-honey_23-2148352303.jpg?_wi=3",
imageAlt: "Nutella waffle with hazelnuts",
},
id: "5", name: "Nutella Paradise Waffle", price: "85 MAD", imageSrc: "http://img.b2bpic.net/free-photo/high-angle-waffles-with-raspberries-honey_23-2148352303.jpg", imageAlt: "Nutella waffle with hazelnuts"},
{
id: "6",
name: "Banana Split Deluxe",
price: "70 MAD",
imageSrc: "http://img.b2bpic.net/free-photo/top-view-berries-plate-cake-chocolate-strawberries-bowls-chocolate-sweets-strawberries-cutting-board_140725-111589.jpg?_wi=3",
imageAlt: "Banana split with ice cream and toppings",
},
id: "6", name: "Banana Split Deluxe", price: "70 MAD", imageSrc: "http://img.b2bpic.net/free-photo/top-view-berries-plate-cake-chocolate-strawberries-bowls-chocolate-sweets-strawberries-cutting-board_140725-111589.jpg", imageAlt: "Banana split with ice cream and toppings"},
]}
gridVariant="bento-grid"
animationType="slide-up"
@@ -124,7 +94,7 @@ export default function MenuPage() {
description="Have dietary preferences or special requests? Call us or send an email. Our friendly staff is ready to assist you."
tagIcon={Phone}
tagAnimation="slide-up"
background={{ variant: "floatingGradient" }}
background={{ variant: "plain" }}
useInvertedBackground={false}
inputPlaceholder="Your email"
buttonText="Contact"
@@ -136,8 +106,7 @@ export default function MenuPage() {
<FooterSimple
columns={[
{
title: "Navigate",
items: [
title: "Navigate", items: [
{ label: "Home", href: "/" },
{ label: "Menu", href: "/menu" },
{ label: "Gallery", href: "/gallery" },
@@ -145,8 +114,7 @@ export default function MenuPage() {
],
},
{
title: "Order & Contact",
items: [
title: "Order & Contact", items: [
{ label: "Order via Glovo", href: "https://glovo.com" },
{ label: "Call Us", href: "tel:+212522995910" },
{ label: "Email", href: "mailto:hello@wafflefactory.ma" },
@@ -154,8 +122,7 @@ export default function MenuPage() {
],
},
{
title: "Hours & Info",
items: [
title: "Hours & Info", items: [
{ label: "Open Today", href: "#" },
{ label: "Closes 23:00", href: "#" },
{ label: "Delivery Available", href: "#" },
@@ -163,8 +130,7 @@ export default function MenuPage() {
],
},
{
title: "Legal",
items: [
title: "Legal", items: [
{ label: "Privacy Policy", href: "#" },
{ label: "Terms of Service", href: "#" },
{ label: "Delivery Info", href: "#" },

View File

@@ -46,20 +46,14 @@ export default function HomePage() {
<HeroCentered
title="Indulge in Handcrafted Waffles & Desserts"
description="Experience authentic Belgian waffles, creamy gelato, and decadent desserts in the heart of Casablanca. Open daily, ready to satisfy your sweet cravings."
background={{ variant: "floatingGradient" }}
background={{ variant: "plain" }}
avatars={[
{
src: "http://img.b2bpic.net/free-photo/beautiful-african-american-woman-cafe_273609-5073.jpg",
alt: "Happy customer 1",
},
src: "http://img.b2bpic.net/free-photo/beautiful-african-american-woman-cafe_273609-5073.jpg", alt: "Happy customer 1"},
{
src: "http://img.b2bpic.net/free-photo/handsome-smiling-young-man-sitting-table-open-air-cafe-talkin-phone-looking-up_176420-6298.jpg",
alt: "Happy customer 2",
},
src: "http://img.b2bpic.net/free-photo/handsome-smiling-young-man-sitting-table-open-air-cafe-talkin-phone-looking-up_176420-6298.jpg", alt: "Happy customer 2"},
{
src: "http://img.b2bpic.net/free-photo/young-man-smiling-standing-cliff-near-beautiful-sea_181624-23716.jpg",
alt: "Happy customer 3",
},
src: "http://img.b2bpic.net/free-photo/young-man-smiling-standing-cliff-near-beautiful-sea_181624-23716.jpg", alt: "Happy customer 3"},
]}
avatarText="Trusted by 196+ local customers • 4.2★ Rating"
buttons={[
@@ -79,33 +73,13 @@ export default function HomePage() {
tagAnimation="slide-up"
products={[
{
id: "1",
name: "Classic Belgian Waffle",
price: "60 MAD",
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-waffles-with-raspberries-honey_23-2148352303.jpg?_wi=1",
imageAlt: "Classic Belgian waffle with toppings",
},
id: "1", name: "Classic Belgian Waffle", price: "60 MAD", imageSrc: "http://img.b2bpic.net/free-photo/high-angle-waffles-with-raspberries-honey_23-2148352303.jpg", imageAlt: "Classic Belgian waffle with toppings"},
{
id: "2",
name: "Chocolate Dream Waffle",
price: "75 MAD",
imageSrc: "http://img.b2bpic.net/free-photo/top-view-berries-plate-cake-chocolate-strawberries-bowls-chocolate-sweets-strawberries-cutting-board_140725-111589.jpg?_wi=1",
imageAlt: "Chocolate waffle with cream and berries",
},
id: "2", name: "Chocolate Dream Waffle", price: "75 MAD", imageSrc: "http://img.b2bpic.net/free-photo/top-view-berries-plate-cake-chocolate-strawberries-bowls-chocolate-sweets-strawberries-cutting-board_140725-111589.jpg", imageAlt: "Chocolate waffle with cream and berries"},
{
id: "3",
name: "Strawberry Cheesecake Waffle",
price: "80 MAD",
imageSrc: "http://img.b2bpic.net/free-photo/side-view-cake-with-cup-tea-cake-with-strawberries-chocolate-bowl-strawberries-chocolate-cream-cup-tea-with-lemon-cinnamon-sticks-black-table_140725-110580.jpg?_wi=1",
imageAlt: "Strawberry cheesecake topped waffle",
},
id: "3", name: "Strawberry Cheesecake Waffle", price: "80 MAD", imageSrc: "http://img.b2bpic.net/free-photo/side-view-cake-with-cup-tea-cake-with-strawberries-chocolate-bowl-strawberries-chocolate-cream-cup-tea-with-lemon-cinnamon-sticks-black-table_140725-110580.jpg", imageAlt: "Strawberry cheesecake topped waffle"},
{
id: "4",
name: "Premium Gelato Sundae",
price: "50 MAD",
imageSrc: "http://img.b2bpic.net/free-photo/blueberry-ice-cream-scoops-with-waffle-wooden-table_123827-21814.jpg?_wi=1",
imageAlt: "Gourmet gelato sundae",
},
id: "4", name: "Premium Gelato Sundae", price: "50 MAD", imageSrc: "http://img.b2bpic.net/free-photo/blueberry-ice-cream-scoops-with-waffle-wooden-table_123827-21814.jpg", imageAlt: "Gourmet gelato sundae"},
]}
gridVariant="bento-grid"
animationType="slide-up"
@@ -159,49 +133,13 @@ export default function HomePage() {
tagAnimation="slide-up"
blogs={[
{
id: "1",
category: "Waffles",
title: "Belgian Waffle Classics",
excerpt: "Crispy on the outside, fluffy on the inside. Traditional recipes perfected.",
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-hands-holding-ladyfingers_23-2149549746.jpg?_wi=1",
imageAlt: "Classic Belgian waffle",
authorName: "Waffle Factory",
authorAvatar: "http://img.b2bpic.net/free-photo/pleased-young-handsome-cook-chef-uniform-standing-with-closed-posture-holding-whisk-isolated-white-space_141793-44709.jpg",
date: "Fresh Daily",
},
id: "1", category: "Waffles", title: "Belgian Waffle Classics", excerpt: "Crispy on the outside, fluffy on the inside. Traditional recipes perfected.", imageSrc: "http://img.b2bpic.net/free-photo/high-angle-hands-holding-ladyfingers_23-2149549746.jpg", imageAlt: "Classic Belgian waffle", authorName: "Waffle Factory", authorAvatar: "http://img.b2bpic.net/free-photo/pleased-young-handsome-cook-chef-uniform-standing-with-closed-posture-holding-whisk-isolated-white-space_141793-44709.jpg", date: "Fresh Daily"},
{
id: "2",
category: "Desserts",
title: "Decadent Chocolate Creations",
excerpt: "Rich, smooth, and absolutely irresistible. Chocolate lovers' paradise.",
imageSrc: "http://img.b2bpic.net/free-photo/top-view-hands-holding-chocolate-cake_23-2148019562.jpg?_wi=1",
imageAlt: "Chocolate dessert creation",
authorName: "Waffle Factory",
authorAvatar: "http://img.b2bpic.net/free-photo/resentful-bearded-man-wearing-white-shirt-with-serious-face-with-crossed-arms-standing-white-wall_141793-56871.jpg",
date: "Fresh Daily",
},
id: "2", category: "Desserts", title: "Decadent Chocolate Creations", excerpt: "Rich, smooth, and absolutely irresistible. Chocolate lovers' paradise.", imageSrc: "http://img.b2bpic.net/free-photo/top-view-hands-holding-chocolate-cake_23-2148019562.jpg", imageAlt: "Chocolate dessert creation", authorName: "Waffle Factory", authorAvatar: "http://img.b2bpic.net/free-photo/resentful-bearded-man-wearing-white-shirt-with-serious-face-with-crossed-arms-standing-white-wall_141793-56871.jpg", date: "Fresh Daily"},
{
id: "3",
category: "Gelato",
title: "Artisan Gelato Selection",
excerpt: "Creamy, smooth, and made fresh. Premium imported ingredients.",
imageSrc: "http://img.b2bpic.net/free-photo/tasty-ice-cream-cookies-assortment_23-2149836017.jpg?_wi=1",
imageAlt: "Gelato sundae selection",
authorName: "Waffle Factory",
authorAvatar: "http://img.b2bpic.net/free-photo/pleased-young-caucasian-male-barber-wearing-glasses-wavy-hair-band-uniform-looking-camera-isolated-white-background-with-copy-space_141793-89923.jpg",
date: "Fresh Daily",
},
id: "3", category: "Gelato", title: "Artisan Gelato Selection", excerpt: "Creamy, smooth, and made fresh. Premium imported ingredients.", imageSrc: "http://img.b2bpic.net/free-photo/tasty-ice-cream-cookies-assortment_23-2149836017.jpg", imageAlt: "Gelato sundae selection", authorName: "Waffle Factory", authorAvatar: "http://img.b2bpic.net/free-photo/pleased-young-caucasian-male-barber-wearing-glasses-wavy-hair-band-uniform-looking-camera-isolated-white-background-with-copy-space_141793-89923.jpg", date: "Fresh Daily"},
{
id: "4",
category: "Atmosphere",
title: "Cozy Restaurant Vibes",
excerpt: "Warm ambiance perfect for friends, family, and late-night treats.",
imageSrc: "http://img.b2bpic.net/free-photo/handsome-guy-hugging-young-cheerful-lady-table_23-2148016786.jpg?_wi=1",
imageAlt: "Restaurant interior",
authorName: "Waffle Factory",
authorAvatar: "http://img.b2bpic.net/free-photo/portrait-woman-smiling-kitchen_107420-12357.jpg",
date: "Welcome Always",
},
id: "4", category: "Atmosphere", title: "Cozy Restaurant Vibes", excerpt: "Warm ambiance perfect for friends, family, and late-night treats.", imageSrc: "http://img.b2bpic.net/free-photo/handsome-guy-hugging-young-cheerful-lady-table_23-2148016786.jpg", imageAlt: "Restaurant interior", authorName: "Waffle Factory", authorAvatar: "http://img.b2bpic.net/free-photo/portrait-woman-smiling-kitchen_107420-12357.jpg", date: "Welcome Always"},
]}
animationType="slide-up"
textboxLayout="default"
@@ -221,59 +159,23 @@ export default function HomePage() {
tagAnimation="slide-up"
testimonials={[
{
id: "1",
name: "Fatima M.",
handle: "@FatimaLoves_Waffles",
testimonial:
"The best waffles in Casablanca! Crispy outside, fluffy inside, and always fresh. I come here every weekend with my family.",
imageSrc: "http://img.b2bpic.net/free-photo/portrait-happy-caucasian-girl-with-hair-bun-looking-camera-with-cheerful-smile_273609-9044.jpg",
imageAlt: "Fatima M.",
},
id: "1", name: "Fatima M.", handle: "@FatimaLoves_Waffles", testimonial:
"The best waffles in Casablanca! Crispy outside, fluffy inside, and always fresh. I come here every weekend with my family.", imageSrc: "http://img.b2bpic.net/free-photo/portrait-happy-caucasian-girl-with-hair-bun-looking-camera-with-cheerful-smile_273609-9044.jpg", imageAlt: "Fatima M."},
{
id: "2",
name: "Ahmed K.",
handle: "@AhmedTheExplorer",
testimonial:
"Authentic Belgian waffles with Moroccan hospitality. The chocolate sauce is absolutely divine. Highly recommended!",
imageSrc: "http://img.b2bpic.net/free-photo/close-up-smiley-man-with-headphones_23-2148937643.jpg",
imageAlt: "Ahmed K.",
},
id: "2", name: "Ahmed K.", handle: "@AhmedTheExplorer", testimonial:
"Authentic Belgian waffles with Moroccan hospitality. The chocolate sauce is absolutely divine. Highly recommended!", imageSrc: "http://img.b2bpic.net/free-photo/close-up-smiley-man-with-headphones_23-2148937643.jpg", imageAlt: "Ahmed K."},
{
id: "3",
name: "Leila R.",
handle: "@LeilaFoodieLove",
testimonial:
"Perfect spot for late-night treats! The gelato is creamy, the staff is friendly, and prices are fair. My new favorite place!",
imageSrc: "http://img.b2bpic.net/free-photo/young-woman-smiling-confident-standing-park_839833-8957.jpg",
imageAlt: "Leila R.",
},
id: "3", name: "Leila R.", handle: "@LeilaFoodieLove", testimonial:
"Perfect spot for late-night treats! The gelato is creamy, the staff is friendly, and prices are fair. My new favorite place!", imageSrc: "http://img.b2bpic.net/free-photo/young-woman-smiling-confident-standing-park_839833-8957.jpg", imageAlt: "Leila R."},
{
id: "4",
name: "Hassan B.",
handle: "@HassanCasablanca",
testimonial:
"Great atmosphere, excellent service, and quality desserts. Worth every dirham. Will definitely be back soon!",
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-man-looking-camera_23-2148221767.jpg",
imageAlt: "Hassan B.",
},
id: "4", name: "Hassan B.", handle: "@HassanCasablanca", testimonial:
"Great atmosphere, excellent service, and quality desserts. Worth every dirham. Will definitely be back soon!", imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-man-looking-camera_23-2148221767.jpg", imageAlt: "Hassan B."},
{
id: "5",
name: "Sara N.",
handle: "@SaraSweets",
testimonial:
"The strawberry cheesecake waffle is to die for! Fresh ingredients, generous portions, and always smiling staff.",
imageSrc: "http://img.b2bpic.net/free-photo/stylish-woman-wearing-yellow-bandana_273609-13308.jpg",
imageAlt: "Sara N.",
},
id: "5", name: "Sara N.", handle: "@SaraSweets", testimonial:
"The strawberry cheesecake waffle is to die for! Fresh ingredients, generous portions, and always smiling staff.", imageSrc: "http://img.b2bpic.net/free-photo/stylish-woman-wearing-yellow-bandana_273609-13308.jpg", imageAlt: "Sara N."},
{
id: "6",
name: "Karim L.",
handle: "@KarimTheGourmet",
testimonial:
"Professional team, consistent quality, and a cozy vibe. Waffle Factory is a gem in our city!",
imageSrc: "http://img.b2bpic.net/free-photo/close-up-smiley-man-posing_23-2148563424.jpg",
imageAlt: "Karim L.",
},
id: "6", name: "Karim L.", handle: "@KarimTheGourmet", testimonial:
"Professional team, consistent quality, and a cozy vibe. Waffle Factory is a gem in our city!", imageSrc: "http://img.b2bpic.net/free-photo/close-up-smiley-man-posing_23-2148563424.jpg", imageAlt: "Karim L."},
]}
animationType="slide-up"
textboxLayout="default"
@@ -281,9 +183,7 @@ export default function HomePage() {
speed={40}
buttons={[
{
text: "See All Reviews",
href: "https://www.google.com/search?q=waffle+factory+casablanca",
},
text: "See All Reviews", href: "https://www.google.com/search?q=waffle+factory+casablanca"},
]}
buttonAnimation="slide-up"
/>
@@ -296,7 +196,7 @@ export default function HomePage() {
description="Whether you want to reserve a table, place an order for delivery, or just say hello—we're here for you. Open until 23:00 daily."
tagIcon={Phone}
tagAnimation="slide-up"
background={{ variant: "floatingGradient" }}
background={{ variant: "plain" }}
useInvertedBackground={false}
inputPlaceholder="Your email address"
buttonText="Subscribe"
@@ -308,8 +208,7 @@ export default function HomePage() {
<FooterSimple
columns={[
{
title: "Navigate",
items: [
title: "Navigate", items: [
{ label: "Home", href: "/" },
{ label: "Menu", href: "/menu" },
{ label: "Gallery", href: "/gallery" },
@@ -317,8 +216,7 @@ export default function HomePage() {
],
},
{
title: "Order & Contact",
items: [
title: "Order & Contact", items: [
{ label: "Order via Glovo", href: "https://glovo.com" },
{ label: "Call Us", href: "tel:+212522995910" },
{ label: "Email", href: "mailto:hello@wafflefactory.ma" },
@@ -326,8 +224,7 @@ export default function HomePage() {
],
},
{
title: "Hours & Info",
items: [
title: "Hours & Info", items: [
{ label: "Open Today", href: "#" },
{ label: "Closes 23:00", href: "#" },
{ label: "Delivery Available", href: "#" },
@@ -335,8 +232,7 @@ export default function HomePage() {
],
},
{
title: "Legal",
items: [
title: "Legal", items: [
{ label: "Privacy Policy", href: "#" },
{ label: "Terms of Service", href: "#" },
{ label: "Delivery Info", href: "#" },

View File

@@ -1,51 +1,49 @@
"use client";
import React, { SVGProps } from 'react';
import { memo } from "react";
import useSvgTextLogo from "./useSvgTextLogo";
import { cls } from "@/lib/utils";
interface SvgTextLogoProps {
logoText: string;
adjustHeightFactor?: number;
verticalAlign?: "top" | "center";
interface SvgTextLogoProps extends SVGProps<SVGSVGElement> {
text: string;
fontSize?: number;
fontFamily?: string;
fontWeight?: number | string;
fill?: string;
className?: string;
}
const SvgTextLogo = memo<SvgTextLogoProps>(function SvgTextLogo({
logoText,
adjustHeightFactor,
verticalAlign = "top",
className = "",
}) {
const { svgRef, textRef, viewBox, aspectRatio } = useSvgTextLogo(logoText, false, adjustHeightFactor);
const SvgTextLogo: React.FC<SvgTextLogoProps> = ({
text,
fontSize = 48,
fontFamily = 'Arial, sans-serif',
fontWeight = 'bold',
fill = '#000000',
className = '',
...svgProps
}) => {
const textLength = text.length;
const estimatedWidth = textLength * (fontSize * 0.6);
const estimatedHeight = fontSize * 1.5;
return (
<svg
ref={svgRef}
viewBox={viewBox}
className={cls("w-full", className)}
style={{ aspectRatio: aspectRatio }}
preserveAspectRatio="none"
role="img"
aria-label={`${logoText} logo`}
width={estimatedWidth}
height={estimatedHeight}
viewBox={`0 0 ${estimatedWidth} ${estimatedHeight}`}
className={className}
{...svgProps}
>
<text
ref={textRef}
x="0"
y={verticalAlign === "center" ? "50%" : "0"}
className="font-bold fill-current"
style={{
fontSize: "20px",
letterSpacing: "-0.02em",
dominantBaseline: verticalAlign === "center" ? "middle" : "text-before-edge"
}}
x="50%"
y="50%"
fontSize={fontSize}
fontFamily={fontFamily}
fontWeight={fontWeight}
fill={fill}
textAnchor="middle"
dominantBaseline="middle"
>
{logoText}
{text}
</text>
</svg>
);
});
};
SvgTextLogo.displayName = "SvgTextLogo";
export default SvgTextLogo;
export default SvgTextLogo;