Merge version_2_1781777120389 into main #3

Merged
bender merged 1 commits from version_2_1781777120389 into main 2026-06-18 10:06:44 +00:00
9 changed files with 329 additions and 156 deletions

View File

@@ -1,167 +1,38 @@
import AboutFeaturesSplit from '@/components/sections/about/AboutFeaturesSplit';
import ContactCta from '@/components/sections/contact/ContactCta';
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
import FeaturesTaggedCards from '@/components/sections/features/FeaturesTaggedCards';
import HeroBillboardTiltedCarousel from '@/components/sections/hero/HeroBillboardTiltedCarousel';
import MetricsMediaCards from '@/components/sections/metrics/MetricsMediaCards';
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 ExperienceSection from './HomePage/sections/Experience';
import BenefitsSection from './HomePage/sections/Benefits';
import MenuSection from './HomePage/sections/Menu';
import AtmosphereSection from './HomePage/sections/Atmosphere';
import TestimonialsSection from './HomePage/sections/Testimonials';
import ContactSection from './HomePage/sections/Contact';
{/* webild-stub @2026-06-18T10:06:38.433Z: Include a section displaying store locations, operating hours, and a map to remove friction for customers looking to visit for 'fast food'. */}
import LocationSection from './HomePage/sections/Location';export default function HomePage(): React.JSX.Element {
return (
<>
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroBillboardTiltedCarousel
tag="Elevated Dining"
title="Fast Food. Reimagined."
description="Premium ingredients. Clean space. Unforgettable taste."
primaryButton={{
text: "View Menu", href: "#menu"}}
secondaryButton={{
text: "Order Now", href: "#order"}}
items={[
{
imageSrc: "http://img.b2bpic.net/free-photo/delicious-pizza-outdoors_23-2150900905.jpg"},
{
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-baking-delicious-pizza_23-2150235790.jpg"},
{
imageSrc: "http://img.b2bpic.net/free-photo/hamburger-burger-with-beef-tomato-pickled-cucumber-fried-bacon_2829-11184.jpg"},
{
imageSrc: "http://img.b2bpic.net/free-photo/side-view-chef-baking-delicious-pizza_23-2150134276.jpg"},
{
imageSrc: "http://img.b2bpic.net/free-photo/fast-food-burgers-with-french-fries-cutlery_23-2148290593.jpg"},
{
imageSrc: "http://img.b2bpic.net/free-photo/baking-delicious-pizza-with-wood-fired-oven_23-2150134261.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
<>
<HeroSection />
<div id="experience" data-section="experience">
<SectionErrorBoundary name="experience">
<AboutFeaturesSplit
tag="Signature Taste"
title="The Goodness Experience"
description="We take the speed of fast food and pair it with the quality of a fine kitchen. From wood-fired crusts to hand-breaded chicken, every bite tells a story of quality."
items={[
{
icon: "Flame", title: "Wood-Fired Pizza", description: "Authentic flavor with charred, artisan crusts."},
{
icon: "Flame", title: "Crispy Chicken", description: "Hand-breaded perfection, always crispy and juicy."},
{
icon: "Leaf", title: "Fresh Ingredients", description: "Sourced daily for maximum vibrant flavor."},
]}
imageSrc="http://img.b2bpic.net/free-photo/close-up-woman-holding-unfolded-burrito-with-blue-background_23-2148329156.jpg"
/>
</SectionErrorBoundary>
</div>
<ExperienceSection />
<div id="benefits" data-section="benefits">
<SectionErrorBoundary name="benefits">
<FeaturesTaggedCards
tag="Why Goodness"
title="Clean, Modern, Exceptional"
description="Fast service doesn't have to mean compromising on quality or atmosphere."
items={[
{
tag: "Atmosphere", title: "Modern Spaces", description: "Minimal luxury interiors that feel like home.", primaryButton: {
text: "See More", href: "#atmosphere"},
imageSrc: "http://img.b2bpic.net/free-photo/happy-businesswomen-supporting-each-other-holding-hands-cafe_637285-8150.jpg"},
{
tag: "Staff", title: "Professional Care", description: "Our friendly staff ensures a premium dining experience.", primaryButton: {
text: "Our Team", href: "#"},
imageSrc: "http://img.b2bpic.net/free-photo/side-view-wheat-bread-with-tomato-spring-onion-board_141793-3798.jpg"},
{
tag: "Service", title: "Quality Driven", description: "We treat every meal like a culinary craft.", primaryButton: {
text: "Our Promise", href: "#"},
imageSrc: "http://img.b2bpic.net/free-photo/businessman-handing-his-boarding-pass-female-staff_107420-85131.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
<BenefitsSection />
<div id="menu" data-section="menu">
<SectionErrorBoundary name="menu">
<FeaturesImageBento
tag="Menu Preview"
title="Crafted For Every Craving"
description="Explore our curated selection of wood-fired delights and gourmet fast food staples."
items={[
{
title: "Wood-Fired Pizza", description: "Classic Neapolitan inspiration.", imageSrc: "http://img.b2bpic.net/free-photo/front-view-hands-holding-delicious-taco_23-2151048041.jpg"},
{
title: "Signature Burger", description: "Juicy, premium beef patties.", imageSrc: "http://img.b2bpic.net/free-photo/high-angle-fried-chicken-pieces-tray_23-2148699087.jpg"},
{
title: "Street Tacos", description: "Fresh, zesty, and balanced.", imageSrc: "http://img.b2bpic.net/free-photo/side-view-slice-pizza-wooden-board_176474-120139.jpg"},
{
title: "Gourmet Sandwiches", description: "Artisan bread meets quality filling.", imageSrc: "http://img.b2bpic.net/free-photo/top-view-fried-chicken-burgers-tray_23-2148699067.jpg"},
{
title: "Decadent Desserts", description: "The perfect sweet finish.", imageSrc: "http://img.b2bpic.net/free-photo/griddled-chicken-sandwich-closeup_1147-505.jpg"},
{
title: "Refined Drinks", description: "Craft sodas and infusions.", imageSrc: "http://img.b2bpic.net/free-photo/closeup-shot-cut-pizza-wooden-desk_181624-28457.jpg"},
{
title: "Our Sides", description: "Crispy, fresh, seasoned well.", imageSrc: "http://img.b2bpic.net/free-photo/close-up-delicious-taco-plate_23-2150831057.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
<MenuSection />
<div id="atmosphere" data-section="atmosphere">
<SectionErrorBoundary name="atmosphere">
<MetricsMediaCards
tag="The Vibe"
title="A Space Worth Enjoying"
description="Relax in a setting designed for comfort, group gatherings, or a quick, stylish lunch."
metrics={[
{
value: "100%", title: "Modern Comfort", description: "Designed for premium lounging.", imageSrc: "http://img.b2bpic.net/free-photo/full-shot-women-working-together_23-2149871322.jpg"},
{
value: "VIP", title: "Seating Styles", description: "From group tables to intimate booths.", imageSrc: "http://img.b2bpic.net/free-photo/vertical-shot-elegant-car-interior-with-leather-seats-white-curtains_181624-23631.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
<AtmosphereSection />
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialMarqueeOverlayCards
tag="Love from Locals"
title="What They Are Saying"
description="Our customers love the Goodness experience."
testimonials={[
{
name: "Sarah J.", role: "Foodie", company: "Local Guide", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/restaurant-chilling-out-classy-lifestyle-reserved-concept_53876-15896.jpg"},
{
name: "Mark D.", role: "Regular", company: "City", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/front-view-cute-girl-looking-away_23-2148436134.jpg"},
{
name: "Elena R.", role: "Professional", company: "Downtown", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/cheerful-middle-aged-businesswoman_1262-21005.jpg"},
{
name: "David K.", role: "Chef", company: "Neighbor", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/side-view-couple-celebrating-birthday-together_23-2150598994.jpg"},
{
name: "Clara M.", role: "Diner", company: "City Hub", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/indoor-shot-pleased-adorable-dark-skinned-african-american-female-sits-comfortable-couch-holds-soft-cushion_273609-3094.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
<TestimonialsSection />
<LocationSection />
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Join Us"
text="Taste the difference today. Visit Goodness and elevate your next meal."
primaryButton={{
text: "Visit Us Today", href: "#"}}
secondaryButton={{
text: "Order Now", href: "#order"}}
/>
</SectionErrorBoundary>
</div>
<ContactSection />
</>
);
}

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 "atmosphere" section.
import React from 'react';
import MetricsMediaCards from '@/components/sections/metrics/MetricsMediaCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function AtmosphereSection(): React.JSX.Element {
return (
<div id="atmosphere" data-section="atmosphere">
<SectionErrorBoundary name="atmosphere">
<MetricsMediaCards
tag="The Vibe"
title="A Space Worth Enjoying"
description="Relax in a setting designed for comfort, group gatherings, or a quick, stylish lunch."
metrics={[
{
value: "100%", title: "Modern Comfort", description: "Designed for premium lounging.", imageSrc: "http://img.b2bpic.net/free-photo/full-shot-women-working-together_23-2149871322.jpg"},
{
value: "VIP", title: "Seating Styles", description: "From group tables to intimate booths.", imageSrc: "http://img.b2bpic.net/free-photo/vertical-shot-elegant-car-interior-with-leather-seats-white-curtains_181624-23631.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,34 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "benefits" section.
import React from 'react';
import FeaturesTaggedCards from '@/components/sections/features/FeaturesTaggedCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function BenefitsSection(): React.JSX.Element {
return (
<div id="benefits" data-section="benefits">
<SectionErrorBoundary name="benefits">
<FeaturesTaggedCards
tag="Why Goodness"
title="Clean, Modern, Exceptional"
description="Fast service doesn't have to mean compromising on quality or atmosphere."
items={[
{
tag: "Atmosphere", title: "Modern Spaces", description: "Minimal luxury interiors that feel like home.", primaryButton: {
text: "See More", href: "#atmosphere"},
imageSrc: "http://img.b2bpic.net/free-photo/happy-businesswomen-supporting-each-other-holding-hands-cafe_637285-8150.jpg"},
{
tag: "Staff", title: "Professional Care", description: "Our friendly staff ensures a premium dining experience.", primaryButton: {
text: "Our Team", href: "#"},
imageSrc: "http://img.b2bpic.net/free-photo/side-view-wheat-bread-with-tomato-spring-onion-board_141793-3798.jpg"},
{
tag: "Service", title: "Quality Driven", description: "We treat every meal like a culinary craft.", primaryButton: {
text: "Our Promise", href: "#"},
imageSrc: "http://img.b2bpic.net/free-photo/businessman-handing-his-boarding-pass-female-staff_107420-85131.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,23 @@
// 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="Join Us"
text="Taste the difference today. Visit Goodness and elevate your next meal."
primaryButton={{
text: "Visit Us Today", href: "#"}}
secondaryButton={{
text: "Order Now", href: "#order"}}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,29 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "experience" section.
import React from 'react';
import AboutFeaturesSplit from '@/components/sections/about/AboutFeaturesSplit';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function ExperienceSection(): React.JSX.Element {
return (
<div id="experience" data-section="experience">
<SectionErrorBoundary name="experience">
<AboutFeaturesSplit
tag="Signature Taste"
title="The Goodness Experience"
description="We take the speed of fast food and pair it with the quality of a fine kitchen. From wood-fired crusts to hand-breaded chicken, every bite tells a story of quality."
items={[
{
icon: "Flame", title: "Wood-Fired Pizza", description: "Authentic flavor with charred, artisan crusts."},
{
icon: "Flame", title: "Crispy Chicken", description: "Hand-breaded perfection, always crispy and juicy."},
{
icon: "Leaf", title: "Fresh Ingredients", description: "Sourced daily for maximum vibrant flavor."},
]}
imageSrc="http://img.b2bpic.net/free-photo/close-up-woman-holding-unfolded-burrito-with-blue-background_23-2148329156.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 "hero" section.
import React from 'react';
import HeroBillboardTiltedCarousel from '@/components/sections/hero/HeroBillboardTiltedCarousel';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function HeroSection(): React.JSX.Element {
return (
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroBillboardTiltedCarousel
tag="Elevated Dining"
title="Fast Food. Reimagined."
description="Premium ingredients. Clean space. Unforgettable taste."
primaryButton={{
text: "View Menu", href: "#menu"}}
secondaryButton={{
text: "Order Now", href: "#order"}}
items={[
{
imageSrc: "http://img.b2bpic.net/free-photo/delicious-pizza-outdoors_23-2150900905.jpg"},
{
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-baking-delicious-pizza_23-2150235790.jpg"},
{
imageSrc: "http://img.b2bpic.net/free-photo/hamburger-burger-with-beef-tomato-pickled-cucumber-fried-bacon_2829-11184.jpg"},
{
imageSrc: "http://img.b2bpic.net/free-photo/side-view-chef-baking-delicious-pizza_23-2150134276.jpg"},
{
imageSrc: "http://img.b2bpic.net/free-photo/fast-food-burgers-with-french-fries-cutlery_23-2148290593.jpg"},
{
imageSrc: "http://img.b2bpic.net/free-photo/baking-delicious-pizza-with-wood-fired-oven_23-2150134261.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,79 @@
import { motion } from 'motion/react';
import { MapPin, Clock, Phone } from 'lucide-react';
import TextAnimation from '@/components/ui/TextAnimation';
import ScrollReveal from '@/components/ui/ScrollReveal';
import Card from '@/components/ui/Card';
export default function LocationSection() {
return (
<section className="relative w-full py-24 bg-background" data-webild-section="location" id="location">
<div className="w-content-width mx-auto px-6">
<div className="flex flex-col items-center text-center mb-16">
<TextAnimation
text="Visit Us"
variant="fade-blur"
tag="h2"
gradientText={false}
className="text-4xl md:text-5xl font-bold text-foreground mb-4"
/>
<ScrollReveal variant="slide-up" delay={0.1}>
<p className="text-lg text-muted-foreground max-w-2xl mx-auto">
Experience the premium fast-food difference in person. Clean space, friendly staff, and unforgettable taste await.
</p>
</ScrollReveal>
</div>
<div className="grid grid-cols-1 lg:grid-cols-2 gap-8 items-stretch">
<ScrollReveal variant="slide-up" delay={0.2} className="h-full">
<Card className="h-full p-8 md:p-12 flex flex-col justify-center gap-8">
<div className="flex items-start gap-6">
<div className="p-4 rounded-full bg-primary-cta/10 text-primary-cta shrink-0">
<MapPin className="w-6 h-6" />
</div>
<div>
<h3 className="text-xl font-bold text-foreground mb-2">Location</h3>
<p className="text-muted-foreground text-lg">Bd Okba Ibn Nafaa<br />Annaba, Algeria</p>
</div>
</div>
<div className="flex items-start gap-6">
<div className="p-4 rounded-full bg-primary-cta/10 text-primary-cta shrink-0">
<Clock className="w-6 h-6" />
</div>
<div>
<h3 className="text-xl font-bold text-foreground mb-2">Operating Hours</h3>
<p className="text-muted-foreground text-lg">Open Daily<br />Closes at 10:00 PM</p>
</div>
</div>
<div className="flex items-start gap-6">
<div className="p-4 rounded-full bg-primary-cta/10 text-primary-cta shrink-0">
<Phone className="w-6 h-6" />
</div>
<div>
<h3 className="text-xl font-bold text-foreground mb-2">Contact</h3>
<p className="text-muted-foreground text-lg">038 43 40 82</p>
</div>
</div>
</Card>
</ScrollReveal>
<ScrollReveal variant="slide-up" delay={0.3} className="h-full min-h-[400px]">
<Card className="h-full w-full overflow-hidden p-0 border-0">
<iframe
src="https://maps.google.com/maps?q=Bd%20Okba%20Ibn%20Nafaa,%20Annaba&t=&z=15&ie=UTF8&iwloc=&output=embed"
width="100%"
height="100%"
style={{ border: 0, minHeight: '400px' }}
allowFullScreen={false}
loading="lazy"
referrerPolicy="no-referrer-when-downgrade"
className="w-full h-full object-cover"
></iframe>
</Card>
</ScrollReveal>
</div>
</div>
</section>
);
}

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 "menu" section.
import React from 'react';
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function MenuSection(): React.JSX.Element {
return (
<div id="menu" data-section="menu">
<SectionErrorBoundary name="menu">
<FeaturesImageBento
tag="Menu Preview"
title="Crafted For Every Craving"
description="Explore our curated selection of wood-fired delights and gourmet fast food staples."
items={[
{
title: "Wood-Fired Pizza", description: "Classic Neapolitan inspiration.", imageSrc: "http://img.b2bpic.net/free-photo/front-view-hands-holding-delicious-taco_23-2151048041.jpg"},
{
title: "Signature Burger", description: "Juicy, premium beef patties.", imageSrc: "http://img.b2bpic.net/free-photo/high-angle-fried-chicken-pieces-tray_23-2148699087.jpg"},
{
title: "Street Tacos", description: "Fresh, zesty, and balanced.", imageSrc: "http://img.b2bpic.net/free-photo/side-view-slice-pizza-wooden-board_176474-120139.jpg"},
{
title: "Gourmet Sandwiches", description: "Artisan bread meets quality filling.", imageSrc: "http://img.b2bpic.net/free-photo/top-view-fried-chicken-burgers-tray_23-2148699067.jpg"},
{
title: "Decadent Desserts", description: "The perfect sweet finish.", imageSrc: "http://img.b2bpic.net/free-photo/griddled-chicken-sandwich-closeup_1147-505.jpg"},
{
title: "Refined Drinks", description: "Craft sodas and infusions.", imageSrc: "http://img.b2bpic.net/free-photo/closeup-shot-cut-pizza-wooden-desk_181624-28457.jpg"},
{
title: "Our Sides", description: "Crispy, fresh, seasoned well.", imageSrc: "http://img.b2bpic.net/free-photo/close-up-delicious-taco-plate_23-2150831057.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,37 @@
// 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 Locals"
title="What They Are Saying"
description="Our customers love the Goodness experience."
testimonials={[
{
name: "Sarah J.", role: "Foodie", company: "Local Guide", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/restaurant-chilling-out-classy-lifestyle-reserved-concept_53876-15896.jpg"},
{
name: "Mark D.", role: "Regular", company: "City", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/front-view-cute-girl-looking-away_23-2148436134.jpg"},
{
name: "Elena R.", role: "Professional", company: "Downtown", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/cheerful-middle-aged-businesswoman_1262-21005.jpg"},
{
name: "David K.", role: "Chef", company: "Neighbor", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/side-view-couple-celebrating-birthday-together_23-2150598994.jpg"},
{
name: "Clara M.", role: "Diner", company: "City Hub", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/indoor-shot-pleased-adorable-dark-skinned-african-american-female-sits-comfortable-couch-holds-soft-cushion_273609-3094.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
);
}