Merge version_1 into main #2
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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: "#" },
|
||||
|
||||
164
src/app/page.tsx
164
src/app/page.tsx
@@ -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: "#" },
|
||||
|
||||
@@ -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;
|
||||
Reference in New Issue
Block a user