3 Commits

Author SHA1 Message Date
d8815a26a0 Merge version_2_1781437335735 into main
Merge version_2_1781437335735 into main
2026-06-14 11:44:13 +00:00
kudinDmitriyUp
ca9825917e Bob AI: Update content and images to highlight Moroccan theme and br 2026-06-14 11:43:34 +00:00
3d8f878f4c Merge version_1_1781437081770 into main
Merge version_1_1781437081770 into main
2026-06-14 11:39:52 +00:00
8 changed files with 171 additions and 116 deletions

View File

@@ -1,126 +1,33 @@
import AboutText from '@/components/sections/about/AboutText';
import ContactCta from '@/components/sections/contact/ContactCta';
import FeaturesDetailedCards from '@/components/sections/features/FeaturesDetailedCards';
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
import HeroBillboard from '@/components/sections/hero/HeroBillboard';
import MetricsFeatureCards from '@/components/sections/metrics/MetricsFeatureCards';
import TestimonialRatingCards from '@/components/sections/testimonial/TestimonialRatingCards';
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 MetricsSection from './HomePage/sections/Metrics';
import TestimonialsSection from './HomePage/sections/Testimonials';
import ContactSection from './HomePage/sections/Contact';
export default function HomePage(): React.JSX.Element {
return (
<>
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroBillboard
tag="Since 2012"
title="Glory in Every Sip"
description="Welcome to Cafe Glory, where artisanal coffee meets a warm, welcoming community. Discover your new favorite morning ritual in the heart of the city."
primaryButton={{
text: "Our Menu", href: "#features"}}
secondaryButton={{
text: "Visit Us", href: "#contact"}}
imageSrc="http://img.b2bpic.net/free-photo/front-view-cup-coffee-with-muffins_23-2148337165.jpg"
/>
</SectionErrorBoundary>
</div>
<>
<HeroSection />
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutText
title="A passion for craft, served daily. We believe every cup tells a story of origin, roasting precision, and the art of the perfect brew."
/>
</SectionErrorBoundary>
</div>
<AboutSection />
<div id="features" data-section="features">
<SectionErrorBoundary name="features">
<FeaturesDetailedCards
tag="Our Menu Highlights"
title="Crafted with Care"
description="Our seasonal menu is curated using the finest locally sourced ingredients."
items={[
{
title: "Fresh Pastries", description: "Hand-crafted croissants, seasonal tarts, and daily baked treats.", tags: ["Artisanal", "Fresh"],
imageSrc: "http://img.b2bpic.net/free-photo/close-up-woman-holding-croissant_23-2149233686.jpg"},
{
title: "Specialty Coffee", description: "Single-origin beans roasted to perfection by our expert baristas.", tags: ["Organic", "Specialty"],
imageSrc: "http://img.b2bpic.net/free-photo/cup-latte-old-wooden_2829-15587.jpg"},
{
title: "Warm Atmosphere", description: "The perfect nook for reading, working, or catching up with friends.", tags: ["Cozy", "Community"],
imageSrc: "http://img.b2bpic.net/free-photo/wooden-table-chair-dinner_74190-3963.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
<FeaturesSection />
<div id="products" data-section="products">
<SectionErrorBoundary name="products">
<FeaturesRevealCardsBento
tag="Signature Offerings"
title="The Cafe Glory Collection"
description="Discover our signature products and local favorites."
items={[
{ title: "Signature Roast", description: "Our balanced signature blend.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/coffee-composition-with-cotton-bag_23-2147671450.jpg" },
{ title: "Fudge Brownies", description: "Rich dark chocolate goodness.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/top-view-little-creamy-cake-with-chocolate-cookies-dark-surface-biscuit-cake-sweet-pie-sugar-cookies_140725-118184.jpg" },
{ title: "Matcha Latte", description: "Ceremonial grade matcha.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/elevated-view-breakfast-blue-background_23-2147860583.jpg" },
{ title: "Sourdough Bread", description: "Slow-fermented artisan bread.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/person-slicing-raw-vegan-bread-with-knife_181624-34824.jpg" },
{ title: "Berry Parfait", description: "Organic yogurt and fresh fruit.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/mason-jar-filled-with-layers-yogurt-granola-berries-berry-sauce_9975-124471.jpg" },
{ title: "Cinnamon Roll", description: "Warm, glazed, and spicy.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/fluffy-meringue-muffins-with-black-dry-grapes-table_114579-22145.jpg" },
{ title: "Barista Kit", description: "Pro tools for your home.", href: "#", imageSrc: "http://img.b2bpic.net/free-photo/tools-used-process-coffee-making_23-2150187566.jpg" },
]}
/>
</SectionErrorBoundary>
</div>
<ProductsSection />
<div id="metrics" data-section="metrics">
<SectionErrorBoundary name="metrics">
<MetricsFeatureCards
tag="Our Impact"
title="By The Numbers"
description="We are proud of the community we have built over the years."
metrics={[
{
value: "10k+", title: "Happy Customers", features: ["Quality focused", "Community driven"],
},
{
value: "5k", title: "Cups Brewed", features: ["Artisanal techniques", "Perfect consistency"],
},
{
value: "12+", title: "Local Farmers", features: ["Directly sourced", "Sustainable practices"],
},
]}
/>
</SectionErrorBoundary>
</div>
<MetricsSection />
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialRatingCards
tag="Community Voices"
title="What Our Friends Say"
description="Discover why our guests make us their daily ritual."
testimonials={[
{ name: "Sarah Johnson", role: "Creative Lead", quote: "The best lattes in town. A hidden gem!", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/portrait-handsome-happy-young-man-relaxing-coffee-shop-spending-time-cafe-listening_1258-245399.jpg" },
{ name: "Michael Chen", role: "Software Engineer", quote: "My favorite place to write code on Saturdays.", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-man-working-home_23-2149161002.jpg" },
{ name: "Emily Rodriguez", role: "Journalist", quote: "Super cozy atmosphere and friendly team.", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-woman-reading-coffee-shop_23-2150183749.jpg" },
{ name: "David Kim", role: "Marketing Dir", quote: "The sourdough bread is simply life changing.", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/beautiful-women-laughing-together-medium-shot_23-2148422483.jpg" },
{ name: "Jessica Lee", role: "Graphic Designer", quote: "I love the attention to detail in their roasting.", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/close-up-businessman-with-cup-coffee_1098-1268.jpg" },
]}
/>
</SectionErrorBoundary>
</div>
<TestimonialsSection />
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Visit Us"
text="Join us for a fresh brew today. Located in the heart of downtown."
primaryButton={{ text: "Get Directions", href: "#" }}
secondaryButton={{ text: "Contact Us", href: "#" }}
/>
</SectionErrorBoundary>
</div>
<ContactSection />
</>
);
}
}

View File

@@ -0,0 +1,18 @@
// 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 AboutText from '@/components/sections/about/AboutText';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function AboutSection(): React.JSX.Element {
return (
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutText
title="A passion for Moroccan heritage, served daily. We believe every meal tells a story of tradition, rich spices, and the art of true hospitality."
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,21 @@
// 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 for an authentic Moroccan breakfast today. Experience true hospitality in the heart of downtown."
primaryButton={{ text: "Get Directions", href: "#" }}
secondaryButton={{ text: "Contact Us", href: "#" }}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,21 @@
// 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 FeaturesDetailedCards from '@/components/sections/features/FeaturesDetailedCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function FeaturesSection(): React.JSX.Element {
return (
<div id="features" data-section="features">
<SectionErrorBoundary name="features">
<FeaturesDetailedCards
tag="Our Moroccan Menu"
title="Crafted with Tradition"
description="Our menu is curated using authentic recipes and the finest ingredients to bring you a true taste of Morocco."
items={[{"title":"Moroccan Breakfast","description":"A rich spread of msemen, baghrir, olives, honey, and fresh cheese.","imageSrc":"https://images.unsplash.com/photo-1533777857889-4be7c70b33f7?auto=format&fit=crop&q=80&w=800","tags":["Authentic","Traditional"]},{"imageSrc":"https://images.unsplash.com/photo-1576092768241-dec231879fc3?auto=format&fit=crop&q=80&w=800","tags":["Refreshing","Classic"],"title":"Moroccan Mint Tea","description":"The classic 'Atay', brewed with fresh mint and gunpowder green tea."},{"title":"Warm Atmosphere","description":"Experience the vibrant colors and cozy ambiance inspired by Moroccan riads.","imageSrc":"https://images.unsplash.com/photo-1539020140153-e479b8c22e70?auto=format&fit=crop&q=80&w=800","tags":["Cozy","Cultural"]}]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,25 @@
// 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 HeroBillboard from '@/components/sections/hero/HeroBillboard';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function HeroSection(): React.JSX.Element {
return (
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroBillboard
tag="Since 2012"
title="Authentic Moroccan Flavors"
description="Welcome to Cafe Glory, where traditional Moroccan hospitality meets vibrant flavors. Discover our authentic Moroccan breakfast and artisanal coffee in a warm, culturally rich setting."
primaryButton={{
text: "Our Menu", href: "#features"}}
secondaryButton={{
text: "Visit Us", href: "#contact"}}
imageSrc="https://images.unsplash.com/photo-1533777857889-4be7c70b33f7?auto=format&fit=crop&q=80&w=800"
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,21 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "metrics" section.
import React from 'react';
import MetricsFeatureCards from '@/components/sections/metrics/MetricsFeatureCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function MetricsSection(): React.JSX.Element {
return (
<div id="metrics" data-section="metrics">
<SectionErrorBoundary name="metrics">
<MetricsFeatureCards
tag="Our Heritage"
title="A Taste of Morocco"
description="Sharing the rich culinary traditions of Morocco with our community."
metrics={[{"features":["Authentic flavors","Warm hospitality"],"title":"Happy Guests","value":"10k+"},{"features":["Fresh mint","Traditional brewing"],"title":"Pots of Mint Tea","value":"5k"},{"features":["Family traditions","Quality ingredients"],"title":"Authentic Recipes","value":"100%"}]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,21 @@
// 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 FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function ProductsSection(): React.JSX.Element {
return (
<div id="products" data-section="products">
<SectionErrorBoundary name="products">
<FeaturesRevealCardsBento
tag="Signature Offerings"
title="The Moroccan Collection"
description="Discover our signature Moroccan dishes and local favorites."
items={[{"href":"#","imageSrc":"https://images.unsplash.com/photo-1626200419188-f15e569f5542?auto=format&fit=crop&q=80&w=800","title":"Msemen (Square Pancakes)","description":"Flaky, buttery Moroccan flatbread."},{"href":"#","imageSrc":"https://images.unsplash.com/photo-1589301760014-d929f39ce9b1?auto=format&fit=crop&q=80&w=800","title":"Baghrir (Thousand Hole Crepes)","description":"Spongy semolina crepes served with honey and butter."},{"description":"Authentic sweet mint tea.","title":"Moroccan Mint Tea","href":"#","imageSrc":"https://images.unsplash.com/photo-1576092768241-dec231879fc3?auto=format&fit=crop&q=80&w=800"},{"href":"#","imageSrc":"https://images.unsplash.com/photo-1509440159596-0249088772ff?auto=format&fit=crop&q=80&w=800","title":"Khobz (Moroccan Bread)","description":"Traditional round bread baked fresh daily."},{"title":"Amlou","description":"A delicious dip of almonds, argan oil, and honey.","href":"#","imageSrc":"https://images.unsplash.com/photo-1596040033229-a9821ebd058d?auto=format&fit=crop&q=80&w=800"},{"title":"Sfenj","description":"Moroccan doughnuts, crispy on the outside and fluffy inside.","imageSrc":"https://images.unsplash.com/photo-1626200419188-f15e569f5542?auto=format&fit=crop&q=80&w=800","href":"#"},{"description":"Coffee brewed with traditional Moroccan spices.","title":"Spiced Coffee","href":"#","imageSrc":"https://images.unsplash.com/photo-1541167760496-1628856ab772?auto=format&fit=crop&q=80&w=800"}]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,21 @@
// 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 TestimonialRatingCards from '@/components/sections/testimonial/TestimonialRatingCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function TestimonialsSection(): React.JSX.Element {
return (
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialRatingCards
tag="Guest Voices"
title="What Our Guests Say"
description="Discover why our guests love our authentic Moroccan experience."
testimonials={[{"role":"Creative Lead","name":"Sarah Johnson","quote":"The traditional Moroccan breakfast is incredible. The msemen is just like my grandmother used to make!","imageSrc":"http://img.b2bpic.net/free-photo/portrait-handsome-happy-young-man-relaxing-coffee-shop-spending-time-cafe-listening_1258-245399.jpg","rating":5},{"name":"Michael Chen","role":"Software Engineer","quote":"I come here every weekend for the mint tea and the cozy riad-like atmosphere.","imageSrc":"http://img.b2bpic.net/free-photo/medium-shot-man-working-home_23-2149161002.jpg","rating":5},{"imageSrc":"http://img.b2bpic.net/free-photo/medium-shot-woman-reading-coffee-shop_23-2150183749.jpg","name":"Emily Rodriguez","role":"Journalist","quote":"The spiced coffee and baghrir are the perfect start to my day. Highly recommend!","rating":5},{"rating":5,"name":"David Kim","role":"Marketing Dir","quote":"Such a warm and welcoming place. The flavors are truly authentic and delicious.","imageSrc":"http://img.b2bpic.net/free-photo/beautiful-women-laughing-together-medium-shot_23-2148422483.jpg"},{"rating":5,"quote":"A hidden gem! The amlou dip with fresh khobz is out of this world.","name":"Jessica Lee","role":"Graphic Designer","imageSrc":"http://img.b2bpic.net/free-photo/close-up-businessman-with-cup-coffee_1098-1268.jpg"}]}
/>
</SectionErrorBoundary>
</div>
);
}