Merge version_2_1781605494616 into main #2

Merged
bender merged 1 commits from version_2_1781605494616 into main 2026-06-16 10:26:54 +00:00
8 changed files with 404 additions and 212 deletions

View File

@@ -1,222 +1,32 @@
import AboutTextSplit from '@/components/sections/about/AboutTextSplit';
import FaqSimple from '@/components/sections/faq/FaqSimple';
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
import FeaturesTaggedCards from '@/components/sections/features/FeaturesTaggedCards';
import HeroSplitMediaGrid from '@/components/sections/hero/HeroSplitMediaGrid';
import TestimonialMarqueeOverlayCards from '@/components/sections/testimonial/TestimonialMarqueeOverlayCards';
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 MenuSection from './HomePage/sections/Menu';
import AmbienceSection from './HomePage/sections/Ambience';
import TestimonialsSection from './HomePage/sections/Testimonials';
import FaqSection from './HomePage/sections/Faq';
import ReservationsSection from './HomePage/sections/Reservations';export default function HomePage(): React.JSX.Element {
return (
<>
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroSplitMediaGrid
tag="Since 1980s"
title="Fresh Flavors. Elegant Spaces. Memorable Moments."
description="Experience the finest pure-vegetarian cuisine in Ahilyanagar. Perfectly curated for families and food enthusiasts who appreciate quality, ambiance, and authentic taste."
primaryButton={{
text: "Explore Menu",
href: "#menu",
}}
secondaryButton={{
text: "Find Us on Map",
href: "https://maps.google.com",
}}
items={[
{
imageSrc: "http://img.b2bpic.net/free-photo/delicious-pakistan-meal-with-copy-space_23-2148821543.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-woman-with-delicious-food_23-2149461770.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<>
<HeroSection />
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutTextSplit
title="Our Legacy"
descriptions={[
"Sukhsagar Restaurant has relocated to Ahilyanagar to continue serving our long-standing family recipes. We focus on high-quality ingredients, clean spaces, and generous quantities.",
"Our ambiance is carefully curated for families and social gatherings. Whether it is a quick lunch or a long dinner, we invite you to experience the harmony of tradition and modern comfort.",
]}
/>
</SectionErrorBoundary>
</div>
<AboutSection />
<div id="menu" data-section="menu">
<SectionErrorBoundary name="menu">
<FeaturesTaggedCards
tag="Digital Menu Preview"
title="Signature Flavors"
description="Hand-picked vegetarian classics from our kitchen, prepared with premium ingredients and time-honored techniques."
items={[
{
tag: "Street Food",
title: "Special Pav Bhaji",
description: "Classic Mumbai-style bhaji with buttery, toasted pav buns.",
primaryButton: {
text: "View Full Menu",
href: "#",
},
imageSrc: "http://img.b2bpic.net/free-photo/pav-bhaji-being-garnished-with-fresh-herbs_23-2151996252.jpg",
},
{
tag: "Mains",
title: "Veg Biryani",
description: "Fragrant basmati rice cooked with seasonal vegetables and spices.",
primaryButton: {
text: "View Full Menu",
href: "#",
},
imageSrc: "http://img.b2bpic.net/free-photo/side-view-from-afar-cake-sweets-cake-with-slices-lime-chocolate-white-bowls-chocolate-limes-yellow-candies-chocolate-cream-table_140725-111329.jpg",
},
{
tag: "Starters",
title: "Manchurian Dry",
description: "Crispy vegetable balls tossed in savory soy-garlic sauce.",
primaryButton: {
text: "View Full Menu",
href: "#",
},
imageSrc: "http://img.b2bpic.net/free-photo/restaurant-hall-with-blue-chairs-decors-wall_140725-8028.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<MenuSection />
<div id="ambience" data-section="ambience">
<SectionErrorBoundary name="ambience">
<FeaturesRevealCardsBento
tag="Atmosphere"
title="A Cozy Haven"
description="Our interiors are designed for comfort and elegance. Perfect for family celebrations or quiet evening meals."
items={[
{
title: "Main Dining Area",
description: "Spacious seating with warm lighting and plush decor.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/group-friends-eating-restaurant_23-2148395390.jpg",
},
{
title: "Family Booths",
description: "Private, comfortable corners for intimate family dining.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/grey-painted-fancy-restaurant-with-empty-dinner-table_140725-8730.jpg",
},
{
title: "Private Party Room",
description: "Ideal for small celebrations and gatherings.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/dining-table-background-zoom-calls_23-2149684444.jpg",
},
{
title: "Ambient Decor",
description: "Subtle details reflecting modern restaurant design.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/restaurant-hall-with-turquoise-chairs-white-walls-french-windows-curtains_140725-8450.jpg",
},
{
title: "Clean Washrooms",
description: "Hygienic, well-maintained facilities for guests.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/white-chairs-tables-cafe_141793-2924.jpg",
},
{
title: "Quick Service Spot",
description: "Efficient counter service for walk-ins.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/beverage-topped-with-fried-orange-slice_141793-1125.jpg",
},
{
title: "Parking Area",
description: "Ample space provided for all guests.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/happy-family-enjoying-time-together_23-2149283540.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<AmbienceSection />
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialMarqueeOverlayCards
tag="Love from Guests"
title="What People Say"
description="Join our community of happy diners in Ahilyanagar."
testimonials={[
{
name: "Pawan Mundada",
role: "Local Guide",
company: "Ahilyanagar",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/portrait-man-smiling-restaurant_23-2150771033.jpg",
},
{
name: "Swagat Patil",
role: "Local Guide",
company: "Ahilyanagar",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-smiley-man-holding-burger_23-2148705543.jpg",
},
{
name: "Hari Om",
role: "Local Guide",
company: "Ahilyanagar",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/portrait-waitress-holding-plate-with-muffin_107420-12322.jpg",
},
{
name: "Priya Kulkarni",
role: "Foodie",
company: "Ahilyanagar",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/portrait-happy-woman-tasting-pastry-cafe_1262-5335.jpg",
},
{
name: "Rahul Deshmukh",
role: "Diner",
company: "Ahilyanagar",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/smiling-happy-business-woman-posing-her-own-coffee-shop_1163-1790.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<TestimonialsSection />
<ReservationsSection />
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqSimple
tag="Support"
title="Frequently Asked"
description="Have questions about our restaurant? Here are the most common ones."
items={[
{
question: "Is the restaurant purely vegetarian?",
answer: "Yes, we are 100% pure-veg restaurant.",
},
{
question: "Are you open on weekends?",
answer: "Yes, we are open every day from 11:00 AM to 11:00 PM.",
},
{
question: "Do you offer home delivery?",
answer: "Yes, we offer no-contact delivery options via delivery partners.",
},
{
question: "Is parking available?",
answer: "Yes, ample parking space is available for all guests.",
},
]}
/>
</SectionErrorBoundary>
</div>
<FaqSection />
</>
);
}

View File

@@ -0,0 +1,22 @@
// 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="Our Legacy"
descriptions={[
"Sukhsagar Restaurant has relocated to Ahilyanagar to continue serving our long-standing family recipes. We focus on high-quality ingredients, clean spaces, and generous quantities.",
"Our ambiance is carefully curated for families and social gatherings. Whether it is a quick lunch or a long dinner, we invite you to experience the harmony of tradition and modern comfort.",
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,64 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "ambience" section.
import React from 'react';
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function AmbienceSection(): React.JSX.Element {
return (
<div id="ambience" data-section="ambience">
<SectionErrorBoundary name="ambience">
<FeaturesRevealCardsBento
tag="Atmosphere"
title="A Cozy Haven"
description="Our interiors are designed for comfort and elegance. Perfect for family celebrations or quiet evening meals."
items={[
{
title: "Main Dining Area",
description: "Spacious seating with warm lighting and plush decor.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/group-friends-eating-restaurant_23-2148395390.jpg",
},
{
title: "Family Booths",
description: "Private, comfortable corners for intimate family dining.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/grey-painted-fancy-restaurant-with-empty-dinner-table_140725-8730.jpg",
},
{
title: "Private Party Room",
description: "Ideal for small celebrations and gatherings.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/dining-table-background-zoom-calls_23-2149684444.jpg",
},
{
title: "Ambient Decor",
description: "Subtle details reflecting modern restaurant design.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/restaurant-hall-with-turquoise-chairs-white-walls-french-windows-curtains_140725-8450.jpg",
},
{
title: "Clean Washrooms",
description: "Hygienic, well-maintained facilities for guests.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/white-chairs-tables-cafe_141793-2924.jpg",
},
{
title: "Quick Service Spot",
description: "Efficient counter service for walk-ins.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/beverage-topped-with-fried-orange-slice_141793-1125.jpg",
},
{
title: "Parking Area",
description: "Ample space provided for all guests.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/happy-family-enjoying-time-together_23-2149283540.jpg",
},
]}
/>
</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 FaqSimple from '@/components/sections/faq/FaqSimple';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function FaqSection(): React.JSX.Element {
return (
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqSimple
tag="Support"
title="Frequently Asked"
description="Have questions about our restaurant? Here are the most common ones."
items={[
{
question: "Is the restaurant purely vegetarian?",
answer: "Yes, we are 100% pure-veg restaurant.",
},
{
question: "Are you open on weekends?",
answer: "Yes, we are open every day from 11:00 AM to 11:00 PM.",
},
{
question: "Do you offer home delivery?",
answer: "Yes, we offer no-contact delivery options via delivery partners.",
},
{
question: "Is parking available?",
answer: "Yes, ample parking space is available for all guests.",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,36 @@
// 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 HeroSplitMediaGrid from '@/components/sections/hero/HeroSplitMediaGrid';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function HeroSection(): React.JSX.Element {
return (
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroSplitMediaGrid
tag="Since 1980s"
title="Fresh Flavors. Elegant Spaces. Memorable Moments."
description="Experience the finest pure-vegetarian cuisine in Ahilyanagar. Perfectly curated for families and food enthusiasts who appreciate quality, ambiance, and authentic taste."
primaryButton={{
text: "Explore Menu",
href: "#menu",
}}
secondaryButton={{
text: "Find Us on Map",
href: "https://maps.google.com",
}}
items={[
{
imageSrc: "http://img.b2bpic.net/free-photo/delicious-pakistan-meal-with-copy-space_23-2148821543.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-woman-with-delicious-food_23-2149461770.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 "menu" section.
import React from 'react';
import FeaturesTaggedCards from '@/components/sections/features/FeaturesTaggedCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function MenuSection(): React.JSX.Element {
return (
<div id="menu" data-section="menu">
<SectionErrorBoundary name="menu">
<FeaturesTaggedCards
tag="Digital Menu Preview"
title="Signature Flavors"
description="Hand-picked vegetarian classics from our kitchen, prepared with premium ingredients and time-honored techniques."
items={[
{
tag: "Street Food",
title: "Special Pav Bhaji",
description: "Classic Mumbai-style bhaji with buttery, toasted pav buns.",
primaryButton: {
text: "View Full Menu",
href: "#",
},
imageSrc: "http://img.b2bpic.net/free-photo/pav-bhaji-being-garnished-with-fresh-herbs_23-2151996252.jpg",
},
{
tag: "Mains",
title: "Veg Biryani",
description: "Fragrant basmati rice cooked with seasonal vegetables and spices.",
primaryButton: {
text: "View Full Menu",
href: "#",
},
imageSrc: "http://img.b2bpic.net/free-photo/side-view-from-afar-cake-sweets-cake-with-slices-lime-chocolate-white-bowls-chocolate-limes-yellow-candies-chocolate-cream-table_140725-111329.jpg",
},
{
tag: "Starters",
title: "Manchurian Dry",
description: "Crispy vegetable balls tossed in savory soy-garlic sauce.",
primaryButton: {
text: "View Full Menu",
href: "#",
},
imageSrc: "http://img.b2bpic.net/free-photo/restaurant-hall-with-blue-chairs-decors-wall_140725-8028.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,113 @@
import Button from "@/components/ui/Button";
import Input from "@/components/ui/Input";
import Textarea from "@/components/ui/Textarea";
import Label from "@/components/ui/Label";
import TextAnimation from "@/components/ui/TextAnimation";
import ScrollReveal from "@/components/ui/ScrollReveal";
import Tag from "@/components/ui/Tag";
import ImageOrVideo from "@/components/ui/ImageOrVideo";
import { Phone, MapPin } from "lucide-react";
export default function ReservationsSection() {
return (
<section data-webild-section="reservations" id="reservations" className="relative w-full py-24 bg-background">
<div className="w-content-width mx-auto px-6">
<div className="grid grid-cols-1 lg:grid-cols-2 gap-12 lg:gap-24 items-center">
<ScrollReveal variant="slide-up" className="flex flex-col gap-8">
<div>
<Tag text="Reservations" className="mb-4" />
<TextAnimation
text="Book Your Table"
variant="slide-up"
tag="h2"
className="text-4xl md:text-5xl font-bold text-foreground mb-4 font-serif"
gradientText={false}
/>
<p className="text-lg text-muted-foreground">
Reserve your table in advance and skip the wait. We look forward to hosting your family and friends for a memorable dining experience.
</p>
</div>
<div className="card p-8 rounded-2xl bg-card border border-border shadow-sm">
<form className="flex flex-col gap-6" onSubmit={(e) => e.preventDefault()}>
<div className="grid grid-cols-1 md:grid-cols-2 gap-6">
<div className="flex flex-col gap-2">
<Label htmlFor="name">Full Name</Label>
<Input id="name" type="text" placeholder="John Doe" required />
</div>
<div className="flex flex-col gap-2">
<Label htmlFor="phone">Phone Number</Label>
<Input id="phone" type="tel" placeholder="+91 98765 43210" required />
</div>
</div>
<div className="grid grid-cols-1 md:grid-cols-3 gap-6">
<div className="flex flex-col gap-2">
<Label htmlFor="date">Date</Label>
<div className="relative">
<Input id="date" type="date" required className="w-full" />
</div>
</div>
<div className="flex flex-col gap-2">
<Label htmlFor="time">Time</Label>
<div className="relative">
<Input id="time" type="time" required className="w-full" />
</div>
</div>
<div className="flex flex-col gap-2">
<Label htmlFor="guests">Guests</Label>
<div className="relative">
<Input id="guests" type="number" min="1" max="20" placeholder="2" required className="w-full" />
</div>
</div>
</div>
<div className="flex flex-col gap-2">
<Label htmlFor="requests">Special Requests</Label>
<Textarea id="requests" placeholder="Any dietary requirements or special occasions?" rows={3} />
</div>
<Button text="Request Reservation" variant="primary" className="w-full mt-2" />
</form>
</div>
</ScrollReveal>
<ScrollReveal variant="fade-blur" delay={0.2} className="h-full flex flex-col gap-8">
<div className="relative h-[400px] w-full rounded-2xl overflow-hidden">
<ImageOrVideo
imageSrc="https://images.unsplash.com/photo-1555396273-367ea4eb4db5?q=80&w=1974&auto=format&fit=crop"
className="w-full h-full object-cover"
/>
</div>
<div className="grid grid-cols-1 sm:grid-cols-2 gap-6">
<div className="flex items-start gap-4">
<div className="w-12 h-12 rounded-full bg-primary-cta/10 flex items-center justify-center shrink-0">
<Phone className="w-6 h-6 text-primary-cta" />
</div>
<div>
<h4 className="font-semibold text-foreground mb-1">Call Us Directly</h4>
<p className="text-muted-foreground text-sm">095617 45045</p>
<p className="text-muted-foreground text-sm">For large groups & events</p>
</div>
</div>
<div className="flex items-start gap-4">
<div className="w-12 h-12 rounded-full bg-primary-cta/10 flex items-center justify-center shrink-0">
<MapPin className="w-6 h-6 text-primary-cta" />
</div>
<div>
<h4 className="font-semibold text-foreground mb-1">Location</h4>
<p className="text-muted-foreground text-sm">Near Sitaban Lawn, Poonam Moti Nagar</p>
<p className="text-muted-foreground text-sm">Ahilyanagar, Maharashtra</p>
</div>
</div>
</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 "testimonials" section.
import React from 'react';
import TestimonialMarqueeOverlayCards from '@/components/sections/testimonial/TestimonialMarqueeOverlayCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function TestimonialsSection(): React.JSX.Element {
return (
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialMarqueeOverlayCards
tag="Love from Guests"
title="What People Say"
description="Join our community of happy diners in Ahilyanagar."
testimonials={[
{
name: "Pawan Mundada",
role: "Local Guide",
company: "Ahilyanagar",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/portrait-man-smiling-restaurant_23-2150771033.jpg",
},
{
name: "Swagat Patil",
role: "Local Guide",
company: "Ahilyanagar",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-smiley-man-holding-burger_23-2148705543.jpg",
},
{
name: "Hari Om",
role: "Local Guide",
company: "Ahilyanagar",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/portrait-waitress-holding-plate-with-muffin_107420-12322.jpg",
},
{
name: "Priya Kulkarni",
role: "Foodie",
company: "Ahilyanagar",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/portrait-happy-woman-tasting-pastry-cafe_1262-5335.jpg",
},
{
name: "Rahul Deshmukh",
role: "Diner",
company: "Ahilyanagar",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/smiling-happy-business-woman-posing-her-own-coffee-shop_1163-1790.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}