Merge version_2_1781528313614 into main

Merge version_2_1781528313614 into main
This commit was merged in pull request #1.
This commit is contained in:
2026-06-15 13:00:23 +00:00
9 changed files with 399 additions and 213 deletions

View File

@@ -1,224 +1,35 @@
import AboutTextSplit from '@/components/sections/about/AboutTextSplit';
import ContactCta from '@/components/sections/contact/ContactCta';
import FaqTwoColumn from '@/components/sections/faq/FaqTwoColumn';
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
import FeaturesTaggedCards from '@/components/sections/features/FeaturesTaggedCards';
import HeroBrand from '@/components/sections/hero/HeroBrand';
import TestimonialMarqueeCards from '@/components/sections/testimonial/TestimonialMarqueeCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
// AUTO-GENERATED shell by per-section-migrate.
// Section bodies live in ./<PageBase>/sections/<X>.tsx. Edit the section
// files directly. Non-block content (wrappers, non-inlinable sections) is
// preserved inline; extracted section blocks become <XSection/> refs.
export default function HomePage() {
import React from 'react';
import HeroSection from './HomePage/sections/Hero';
import AboutSection from './HomePage/sections/About';
import FeaturesSection from './HomePage/sections/Features';
import ProductsSection from './HomePage/sections/Products';
import TestimonialsSection from './HomePage/sections/Testimonials';
import FaqSection from './HomePage/sections/Faq';
import ContactSection from './HomePage/sections/Contact';
import InstagramFeedSection from './HomePage/sections/InstagramFeed';export default function HomePage(): React.JSX.Element {
return (
<>
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroBrand
brand="Love Over Coffee Gurugram"
description="Your cozy corner for artisanal coffee, handcrafted pastas, and warm moments in Sector 23."
primaryButton={{
text: "Reserve a Table",
href: "#contact",
}}
secondaryButton={{
text: "View Menu",
href: "#products",
}}
imageSrc="http://img.b2bpic.net/free-photo/tanned-lady-is-sitting-cafe-with-wooden-furniture-watching-video-phone_197531-17107.jpg"
/>
</SectionErrorBoundary>
</div>
<>
<HeroSection />
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutTextSplit
title="A Space for Stories"
descriptions={[
"Located in the heart of Gurugram Sector 23, Love Over Coffee is more than just a cafe. It's a sanctuary where the aroma of freshly ground beans meets the comfort of home-cooked favorites.",
"Whether you are looking for a quiet corner to work, a space for a catch-up, or just a perfect brownie shake to brighten your day, we are here to serve you with love and attention.",
]}
primaryButton={{
text: "Get Directions",
href: "https://maps.google.com",
}}
/>
</SectionErrorBoundary>
</div>
<AboutSection />
<div id="features" data-section="features">
<SectionErrorBoundary name="features">
<FeaturesTaggedCards
tag="Signature Highlights"
title="Taste the Perfection"
description="From our popular Popcorn Cappuccino to our classic Italian pastas, every dish is crafted for excellence."
items={[
{
tag: "Pasta",
title: "Pesto Pasta",
description: "Fresh basil, pine nuts, and parmesan in our signature sauce.",
primaryButton: {
text: "Order Online",
href: "#",
},
imageSrc: "http://img.b2bpic.net/free-photo/stir-fried-macaroni-with-tomato-chili-pepper-seeds-basil-white-dish_1150-22168.jpg",
},
{
tag: "Coffee",
title: "Popcorn Cappuccino",
description: "A unique blend of specialty coffee with a salty, buttery twist.",
primaryButton: {
text: "Order Online",
href: "#",
},
imageSrc: "http://img.b2bpic.net/free-photo/beverage-topped-with-sliced-dried-citrus-flower_141793-618.jpg",
},
{
tag: "Pizza",
title: "Margherita Pizza",
description: "Classic thin-crust pizza with mozzarella and fresh basil.",
primaryButton: {
text: "Order Online",
href: "#",
},
imageSrc: "http://img.b2bpic.net/free-photo/side-view-chef-preparing-pizza_23-2150235785.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<FeaturesSection />
<div id="products" data-section="products">
<SectionErrorBoundary name="products">
<FeaturesImageBento
tag="Full Menu"
title="Cravings Satisfied"
description="Explore our extensive menu ranging from refreshing frappes to hearty meals."
items={[
{
title: "Brownie Shake",
description: "Decadent chocolate brownie shake.",
imageSrc: "http://img.b2bpic.net/free-photo/iced-chocolate_1339-4413.jpg",
},
{
title: "Cheesy Nachos",
description: "Crispy nachos loaded with cheese and salsa.",
imageSrc: "http://img.b2bpic.net/free-photo/top-view-fruit-salad-with-nachos_23-2148283084.jpg",
},
{
title: "Falafel Wrap",
description: "Freshly wrapped Mediterranean goodness.",
imageSrc: "http://img.b2bpic.net/free-photo/vertical-view-healthy-vegan-salads-dried-pineapples-lavash-wraps-stained-white-surface_179666-34351.jpg",
},
{
title: "White Sauce Pasta",
description: "Creamy, smooth, and delicious.",
imageSrc: "http://img.b2bpic.net/free-photo/penne-pasta-with-mixed-ingredients-orange-juice_114579-3212.jpg",
},
{
title: "Lasagna",
description: "Layers of classic baked lasagna.",
imageSrc: "http://img.b2bpic.net/free-photo/tasty-italian-pasta-dish_1084-85.jpg",
},
{
title: "Hazelnut Frappe",
description: "Nutty, cold, and refreshing.",
imageSrc: "http://img.b2bpic.net/free-photo/cup-coffee-wooden-board_114579-20074.jpg",
},
{
title: "Lemon Iced Tea",
description: "The perfect summer refresher.",
imageSrc: "http://img.b2bpic.net/free-photo/ice-drinking-cocktails-glass_1203-9369.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<ProductsSection />
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialMarqueeCards
tag="Guest Stories"
title="Loved by our Community"
description="Discover why local foodies in Gurugram choose us for their daily coffee fix."
testimonials={[
{
name: "Sarah Johnson",
role: "Food Blogger",
quote: "Best cafe in Sector 23! The vibe is perfect for work and catching up.",
imageSrc: "http://img.b2bpic.net/free-photo/people-drinking-coffee-spacious-cafeteria_23-2150424007.jpg",
},
{
name: "Michael Chen",
role: "Architect",
quote: "Their pasta is awesome. I love the cold coffee, it's consistent every single time.",
imageSrc: "http://img.b2bpic.net/free-photo/woman-sitting-cafe-drinking-coffee-working-computer_1303-14740.jpg",
},
{
name: "Emily Rodriguez",
role: "Designer",
quote: "Cozy, inviting ambiance. It's my go-to place to focus and relax.",
imageSrc: "http://img.b2bpic.net/free-photo/lovely-women-relaxing-indoors_23-2148422441.jpg",
},
{
name: "David Kim",
role: "Manager",
quote: "Excellent service and attentive staff. Always a pleasant experience here.",
imageSrc: "http://img.b2bpic.net/free-photo/guy-with-long-hair-dressed-fashionable-denim-jacket-cafe_273609-3904.jpg",
},
{
name: "Priya Sharma",
role: "Local Resident",
quote: "A wonderful local find. The menu variety is impressive and everything is delicious.",
imageSrc: "http://img.b2bpic.net/free-photo/happy-woman-sitting-coffee-shop_273609-2854.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<TestimonialsSection />
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqTwoColumn
tag="Common Questions"
title="Need Help?"
description="Here is what you need to know about our cafe."
items={[
{
question: "What are your operating hours?",
answer: "We are open daily from 10:00 AM to 10:30 PM.",
},
{
question: "Do you accept reservations?",
answer: "Yes, we encourage reservations for groups. Please call us at 098188 25064.",
},
{
question: "Is there parking available?",
answer: "Yes, there is convenient shopping center parking right at our location.",
},
{
question: "Do you offer delivery?",
answer: "Yes, you can order online via our menu link on Zomato.",
},
]}
/>
</SectionErrorBoundary>
</div>
<FaqSection />
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Visit Us"
text="Join us today for a cup of coffee and a bite. We are located in District Shopping Center, Sector 23, Gurugram."
primaryButton={{
text: "Call to Reserve",
href: "tel:09818825064",
}}
secondaryButton={{
text: "Get Directions",
href: "https://maps.google.com",
}}
/>
</SectionErrorBoundary>
</div>
<ContactSection />
<InstagramFeedSection />
</>
);
}

View File

@@ -0,0 +1,26 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "about" section.
import React from 'react';
import AboutTextSplit from '@/components/sections/about/AboutTextSplit';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function AboutSection(): React.JSX.Element {
return (
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutTextSplit
title="A Space for Stories"
descriptions={[
"Located in the heart of Gurugram Sector 23, Love Over Coffee is more than just a cafe. It's a sanctuary where the aroma of freshly ground beans meets the comfort of home-cooked favorites.",
"Whether you are looking for a quiet corner to work, a space for a catch-up, or just a perfect brownie shake to brighten your day, we are here to serve you with love and attention.",
]}
primaryButton={{
text: "Get Directions",
href: "https://maps.google.com",
}}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,27 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "contact" section.
import React from 'react';
import ContactCta from '@/components/sections/contact/ContactCta';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function ContactSection(): React.JSX.Element {
return (
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Visit Us"
text="Join us today for a cup of coffee and a bite. We are located in District Shopping Center, Sector 23, Gurugram."
primaryButton={{
text: "Call to Reserve",
href: "tel:09818825064",
}}
secondaryButton={{
text: "Get Directions",
href: "https://maps.google.com",
}}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,38 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "faq" section.
import React from 'react';
import FaqTwoColumn from '@/components/sections/faq/FaqTwoColumn';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function FaqSection(): React.JSX.Element {
return (
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqTwoColumn
tag="Common Questions"
title="Need Help?"
description="Here is what you need to know about our cafe."
items={[
{
question: "What are your operating hours?",
answer: "We are open daily from 10:00 AM to 10:30 PM.",
},
{
question: "Do you accept reservations?",
answer: "Yes, we encourage reservations for groups. Please call us at 098188 25064.",
},
{
question: "Is there parking available?",
answer: "Yes, there is convenient shopping center parking right at our location.",
},
{
question: "Do you offer delivery?",
answer: "Yes, you can order online via our menu link on Zomato.",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,52 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "features" section.
import React from 'react';
import FeaturesTaggedCards from '@/components/sections/features/FeaturesTaggedCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function FeaturesSection(): React.JSX.Element {
return (
<div id="features" data-section="features">
<SectionErrorBoundary name="features">
<FeaturesTaggedCards
tag="Signature Highlights"
title="Taste the Perfection"
description="From our popular Popcorn Cappuccino to our classic Italian pastas, every dish is crafted for excellence."
items={[
{
tag: "Pasta",
title: "Pesto Pasta",
description: "Fresh basil, pine nuts, and parmesan in our signature sauce.",
primaryButton: {
text: "Order Online",
href: "#",
},
imageSrc: "http://img.b2bpic.net/free-photo/stir-fried-macaroni-with-tomato-chili-pepper-seeds-basil-white-dish_1150-22168.jpg",
},
{
tag: "Coffee",
title: "Popcorn Cappuccino",
description: "A unique blend of specialty coffee with a salty, buttery twist.",
primaryButton: {
text: "Order Online",
href: "#",
},
imageSrc: "http://img.b2bpic.net/free-photo/beverage-topped-with-sliced-dried-citrus-flower_141793-618.jpg",
},
{
tag: "Pizza",
title: "Margherita Pizza",
description: "Classic thin-crust pizza with mozzarella and fresh basil.",
primaryButton: {
text: "Order Online",
href: "#",
},
imageSrc: "http://img.b2bpic.net/free-photo/side-view-chef-preparing-pizza_23-2150235785.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,28 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "hero" section.
import React from 'react';
import HeroBrand from '@/components/sections/hero/HeroBrand';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function HeroSection(): React.JSX.Element {
return (
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroBrand
brand="Love Over Coffee Gurugram"
description="Your cozy corner for artisanal coffee, handcrafted pastas, and warm moments in Sector 23."
primaryButton={{
text: "Reserve a Table",
href: "#contact",
}}
secondaryButton={{
text: "View Menu",
href: "#products",
}}
imageSrc="http://img.b2bpic.net/free-photo/tanned-lady-is-sitting-cafe-with-wooden-furniture-watching-video-phone_197531-17107.jpg"
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,95 @@
import { motion } from "motion/react"
import Button from "@/components/ui/Button"
import TextAnimation from "@/components/ui/TextAnimation"
import ScrollReveal from "@/components/ui/ScrollReveal"
import ImageOrVideo from "@/components/ui/ImageOrVideo"
import { Instagram } from "lucide-react"
export default function InstagramFeed() {
const feedItems = [
{
imageSrc: "https://images.unsplash.com/photo-1497935586351-b67a49e012bf?auto=format&fit=crop&q=80&w=800",
title: "Popcorn Cappuccino",
description: "Our signature brew."
},
{
imageSrc: "https://images.unsplash.com/photo-1554118811-1e0d58224f24?auto=format&fit=crop&q=80&w=800",
title: "Cozy Vibes",
description: "Your perfect workspace."
},
{
imageSrc: "https://images.unsplash.com/photo-1574071318508-1cdbab80d002?auto=format&fit=crop&q=80&w=800",
title: "Margherita Pizza",
description: "Fresh out of the oven."
},
{
imageSrc: "https://images.unsplash.com/photo-1461023058943-07fcbe16d735?auto=format&fit=crop&q=80&w=800",
title: "Hazelnut Frappe",
description: "Cool down with our frappe."
},
{
imageSrc: "https://images.unsplash.com/photo-1473093295043-cdd812d0e601?auto=format&fit=crop&q=80&w=800",
title: "Pesto Pasta",
description: "A crowd favorite."
},
{
imageSrc: "https://images.unsplash.com/photo-1606313564200-e75d5e30476c?auto=format&fit=crop&q=80&w=800",
title: "Chocolate Brownie",
description: "Decadent and rich."
}
];
return (
<section data-webild-section="instagram-feed" id="instagram-feed" className="relative w-full py-24 bg-background overflow-hidden">
<div className="w-content-width mx-auto px-6">
<div className="flex flex-col items-center text-center mb-16">
<ScrollReveal variant="fade">
<div className="inline-flex items-center gap-2 px-3 py-1 rounded-full bg-card text-foreground text-sm font-medium mb-6">
<Instagram className="w-4 h-4" />
<span>Social</span>
</div>
</ScrollReveal>
<TextAnimation
text="Follow Us @LoveOverCoffee"
variant="fade-blur"
tag="h2"
className="text-4xl md:text-5xl font-bold text-foreground mb-6"
gradientText={false}
/>
<ScrollReveal variant="fade" delay={0.2}>
<p className="text-lg text-muted-foreground max-w-2xl mx-auto mb-8">
Share your moments with us! Tag us to get featured on our feed.
</p>
<Button
text="Follow on Instagram"
variant="primary"
href="https://instagram.com"
/>
</ScrollReveal>
</div>
<div className="grid grid-cols-2 md:grid-cols-3 gap-4 md:gap-6">
{feedItems.map((item, index) => (
<ScrollReveal variant="fade"
key={index}
delay={0.1 * index}
className="group relative aspect-square rounded-theme overflow-hidden card"
>
<ImageOrVideo
imageSrc={item.imageSrc}
className="w-full h-full object-cover transition-transform duration-500 group-hover:scale-110"
/>
<div className="absolute inset-0 bg-black/60 opacity-0 group-hover:opacity-100 transition-opacity duration-300 flex flex-col justify-center items-center p-6 text-center">
<Instagram className="w-8 h-8 text-white mb-3" />
<h3 className="text-white font-bold text-lg mb-1">{item.title}</h3>
<p className="text-white/80 text-sm">{item.description}</p>
</div>
</ScrollReveal>
))}
</div>
</div>
</section>
);
}

View File

@@ -0,0 +1,57 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "products" section.
import React from 'react';
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function ProductsSection(): React.JSX.Element {
return (
<div id="products" data-section="products">
<SectionErrorBoundary name="products">
<FeaturesImageBento
tag="Full Menu"
title="Cravings Satisfied"
description="Explore our extensive menu ranging from refreshing frappes to hearty meals."
items={[
{
title: "Brownie Shake",
description: "Decadent chocolate brownie shake.",
imageSrc: "http://img.b2bpic.net/free-photo/iced-chocolate_1339-4413.jpg",
},
{
title: "Cheesy Nachos",
description: "Crispy nachos loaded with cheese and salsa.",
imageSrc: "http://img.b2bpic.net/free-photo/top-view-fruit-salad-with-nachos_23-2148283084.jpg",
},
{
title: "Falafel Wrap",
description: "Freshly wrapped Mediterranean goodness.",
imageSrc: "http://img.b2bpic.net/free-photo/vertical-view-healthy-vegan-salads-dried-pineapples-lavash-wraps-stained-white-surface_179666-34351.jpg",
},
{
title: "White Sauce Pasta",
description: "Creamy, smooth, and delicious.",
imageSrc: "http://img.b2bpic.net/free-photo/penne-pasta-with-mixed-ingredients-orange-juice_114579-3212.jpg",
},
{
title: "Lasagna",
description: "Layers of classic baked lasagna.",
imageSrc: "http://img.b2bpic.net/free-photo/tasty-italian-pasta-dish_1084-85.jpg",
},
{
title: "Hazelnut Frappe",
description: "Nutty, cold, and refreshing.",
imageSrc: "http://img.b2bpic.net/free-photo/cup-coffee-wooden-board_114579-20074.jpg",
},
{
title: "Lemon Iced Tea",
description: "The perfect summer refresher.",
imageSrc: "http://img.b2bpic.net/free-photo/ice-drinking-cocktails-glass_1203-9369.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,52 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "testimonials" section.
import React from 'react';
import TestimonialMarqueeCards from '@/components/sections/testimonial/TestimonialMarqueeCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function TestimonialsSection(): React.JSX.Element {
return (
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialMarqueeCards
tag="Guest Stories"
title="Loved by our Community"
description="Discover why local foodies in Gurugram choose us for their daily coffee fix."
testimonials={[
{
name: "Sarah Johnson",
role: "Food Blogger",
quote: "Best cafe in Sector 23! The vibe is perfect for work and catching up.",
imageSrc: "http://img.b2bpic.net/free-photo/people-drinking-coffee-spacious-cafeteria_23-2150424007.jpg",
},
{
name: "Michael Chen",
role: "Architect",
quote: "Their pasta is awesome. I love the cold coffee, it's consistent every single time.",
imageSrc: "http://img.b2bpic.net/free-photo/woman-sitting-cafe-drinking-coffee-working-computer_1303-14740.jpg",
},
{
name: "Emily Rodriguez",
role: "Designer",
quote: "Cozy, inviting ambiance. It's my go-to place to focus and relax.",
imageSrc: "http://img.b2bpic.net/free-photo/lovely-women-relaxing-indoors_23-2148422441.jpg",
},
{
name: "David Kim",
role: "Manager",
quote: "Excellent service and attentive staff. Always a pleasant experience here.",
imageSrc: "http://img.b2bpic.net/free-photo/guy-with-long-hair-dressed-fashionable-denim-jacket-cafe_273609-3904.jpg",
},
{
name: "Priya Sharma",
role: "Local Resident",
quote: "A wonderful local find. The menu variety is impressive and everything is delicious.",
imageSrc: "http://img.b2bpic.net/free-photo/happy-woman-sitting-coffee-shop_273609-2854.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}