Merge version_2_1782034095841 into main #4

Merged
bender merged 1 commits from version_2_1782034095841 into main 2026-06-21 09:29:47 +00:00
9 changed files with 259 additions and 161 deletions

View File

@@ -1,173 +1,36 @@
import AboutTestimonial from '@/components/sections/about/AboutTestimonial';
import ContactCta from '@/components/sections/contact/ContactCta';
import FaqSimple from '@/components/sections/faq/FaqSimple';
import FeaturesBento from '@/components/sections/features/FeaturesBento';
import HeroSplitVerticalMarquee from '@/components/sections/hero/HeroSplitVerticalMarquee';
import MetricsSimpleCards from '@/components/sections/metrics/MetricsSimpleCards';
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
import TestimonialOverlayCards from '@/components/sections/testimonial/TestimonialOverlayCards';
import { Coffee, Timer, Utensils } from "lucide-react";
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 TestimonialsSection from './HomePage/sections/Testimonials';
import MetricsSection from './HomePage/sections/Metrics';
import SocialProofSection from './HomePage/sections/SocialProof';
import FaqSection from './HomePage/sections/Faq';
import ContactSection from './HomePage/sections/Contact';
export default function HomePage(): React.JSX.Element {
return (
<>
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroSplitVerticalMarquee
tag="Casual Culinary Cafe Bar"
title="A Hidden Culinary Gem in the Heart of Jerusalem"
description="Specialty coffee, creative cuisine, and unforgettable atmosphere in a beautifully restored historic home."
primaryButton={{
text: "Call Now", href: "tel:+972584006008"}}
secondaryButton={{
text: "Reserve Table", href: "#contact"}}
leftItems={[
{ imageSrc: "http://img.b2bpic.net/free-photo/interior-zenana-mahal-city-palace-udaipur-rajasthan_53876-146803.jpg?_wi=1" },
{ imageSrc: "http://img.b2bpic.net/free-photo/group-four-south-asian-men-s-posed-business-meeting-cafe-indians-work-together-using-various-gadgets-having-conversation_627829-5231.jpg" },
{ imageSrc: "http://img.b2bpic.net/free-photo/caffeine-working-coffee-cup-table_1122-2430.jpg" },
{ imageSrc: "http://img.b2bpic.net/free-photo/lamb-wrapped-with-dough-tomato-sauce_114579-2133.jpg" },
{ imageSrc: "http://img.b2bpic.net/free-photo/street-cafe-old-town-rhodes-journey-through-popular-places-dodecanese-archipelago-greece_166373-3792.jpg" },
{ imageSrc: "http://img.b2bpic.net/free-photo/crab-meat-coconut-cream-soup-micro-greens-gray-concrete-background-top-view-copy-space-h_1258-52397.jpg" }
]}
rightItems={[
{ imageSrc: "http://img.b2bpic.net/free-photo/nobody-setting-terrace-bar-outside_1203-4630.jpg" },
{ imageSrc: "http://img.b2bpic.net/free-photo/white-plate-with-originally-served-salad-stands-dark-wooden-t_1304-4651.jpg" },
{ imageSrc: "http://img.b2bpic.net/free-photo/high-angle-coffee-cup-with-decoration-top_23-2148522973.jpg" },
{ imageSrc: "http://img.b2bpic.net/free-photo/cafe-with-burning-candles-tables_140725-7784.jpg" },
{ imageSrc: "http://img.b2bpic.net/free-photo/entrance-old-italian-wine-cellar_333098-111.jpg" },
{ imageSrc: "http://img.b2bpic.net/free-photo/meat-carpaccio-with-white-cheese_140725-1393.jpg" }
]}
/>
</SectionErrorBoundary>
</div>
<>
<HeroSection />
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutTestimonial
tag="Our Story"
quote="A true gem! Some of the best coffee I've ever had. Fresh, flavorful food and a relaxed atmosphere."
author="Sarah Johnson"
role="Local Foodie"
imageSrc="http://img.b2bpic.net/free-photo/abandoned-greek-chapel-against-blue-sky-with-clouds-is-located-mountain-abandoned-ghost-town-near-fethiye-turkey-site-ancient-greek-city-karmilissos-from-18th-century_166373-3444.jpg"
/>
</SectionErrorBoundary>
</div>
<AboutSection />
<div id="features" data-section="features">
<SectionErrorBoundary name="features">
<FeaturesBento
tag="Why Guests Love Us"
title="Culinary Excellence Meets Jerusalem History"
description="Explore our core offerings and the unique environment we provide."
features={[
{
title: "Exceptional Coffee", description: "Expertly brewed coffee and premium specialty drinks for true enthusiasts.", bentoComponent: "info-card-marquee", infoCards: [
{ icon: Coffee, label: "Beans", value: "Single Origin" },
{ icon: Utensils, label: "Variety", value: "Signature" },
{ icon: Timer, label: "Brewing", value: "Precision" }
]
},
{
title: "Culinary Experience", description: "Creative dishes made with fresh, locally sourced ingredients every day.", bentoComponent: "media-stack", mediaItems: [
{ imageSrc: "http://img.b2bpic.net/free-photo/interior-zenana-mahal-city-palace-udaipur-rajasthan_53876-146803.jpg?_wi=2" },
{ imageSrc: "http://img.b2bpic.net/free-photo/top-view-lemon-tart-plate_23-2148519057.jpg" },
{ imageSrc: "http://img.b2bpic.net/free-photo/foie-gras-with-vegetable-salad_1203-9262.jpg" }
]
},
{
title: "Historic Atmosphere", description: "Dining in a charming restored Jerusalem heritage building.", bentoComponent: "media-stack", mediaItems: [
{ imageSrc: "http://img.b2bpic.net/free-photo/halls-convent-christ-with-windows-tomar-portugal_181624-16838.jpg" },
{ imageSrc: "http://img.b2bpic.net/free-photo/door-old-house-decorated-with-flag-greece-wreath-protomaya-city-rhodes-trip-popular-places-dodecanese-archipelago-greece_166373-3814.jpg" },
{ imageSrc: "http://img.b2bpic.net/free-photo/stained-brick-blocks-wall_1194-7474.jpg" }
]
}
]}
/>
</SectionErrorBoundary>
</div>
<FeaturesSection />
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialOverlayCards
tag="Reviews"
title="What Our Guests Say"
description="Rated 4.6 stars by over 125 happy locals and visitors."
testimonials={[
{
name: "Sarah J.", role: "Local", company: "Jerusalem", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/attractive-young-woman-sitting-cafe-holding-takeaway-coffee-cup_23-2148148111.jpg"},
{
name: "Michael K.", role: "Visitor", company: "Tourist", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/adults-enjoying-mexican-food_23-2149663842.jpg"},
{
name: "Emily R.", role: "Foodie", company: "Jerusalem", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/internationals-people-standing-cafe-drinking-juice_1157-32300.jpg"},
{
name: "David L.", role: "Local", company: "Professional", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/couple-enjoying-food-restaurant_23-2149269175.jpg"},
{
name: "Chloe T.", role: "Blogger", company: "Traveler", rating: 4,
imageSrc: "http://img.b2bpic.net/free-photo/vertical-shot-cute-asian-barista-smiling-girl-puts-coffee-tamper-prepare-cappuccino-standing_1258-134055.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
<TestimonialsSection />
<div id="metrics" data-section="metrics">
<SectionErrorBoundary name="metrics">
<MetricsSimpleCards
tag="At a Glance"
title="Casual by Numbers"
metrics={[
{ value: "125+", description: "Positive Google Reviews" },
{ value: "4.6★", description: "Average Guest Rating" },
{ value: "₪50100", description: "Typical Price Range" }
]}
description="Celebrating our community's love and appreciation."
/>
</SectionErrorBoundary>
</div>
<MetricsSection />
<div id="social-proof" data-section="social-proof">
<SectionErrorBoundary name="social-proof">
<SocialProofMarquee
tag="Atmosphere"
title="Join Our Community"
names={[
"Specialty Coffee", "Artisanal Pastries", "Creative Dining", "Jerusalem Heritage", "Cafe Bar Vibes", "Events Space", "Local Culture"]}
description="Experience the culture."
/>
</SectionErrorBoundary>
</div>
<SocialProofSection />
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqSimple
tag="Questions?"
title="Frequently Asked Questions"
items={[
{ question: "Do you offer takeaways?", answer: "Yes, all our food and specialty coffees are available for takeaway." },
{ question: "Can I reserve a table?", answer: "Yes, please call us or use the contact form to reserve your table." },
{ question: "Where is the cafe located?", answer: "We are located at HaMatmid Alley 6, Jerusalem." }
]}
description="Everything you need to know about your visit."
/>
</SectionErrorBoundary>
</div>
<FaqSection />
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Visit Us"
text="Ready for your next coffee or culinary experience? Call, book, or visit us today."
primaryButton={{
text: "Call Now", href: "tel:+972584006008"}}
secondaryButton={{
text: "Reserve Table", href: "#"}}
/>
</SectionErrorBoundary>
</div>
<ContactSection />
</>
);
}

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 AboutTestimonial from '@/components/sections/about/AboutTestimonial';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function AboutSection(): React.JSX.Element {
return (
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutTestimonial
tag="Our Story"
quote="A true gem! Some of the best coffee I've ever had. Fresh, flavorful food and a relaxed atmosphere."
author="Sarah Johnson"
role="Local Foodie"
imageSrc="http://img.b2bpic.net/free-photo/abandoned-greek-chapel-against-blue-sky-with-clouds-is-located-mountain-abandoned-ghost-town-near-fethiye-turkey-site-ancient-greek-city-karmilissos-from-18th-century_166373-3444.jpg"
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,20 @@
// Created by add_section_from_catalog (ContactSplitForm).
import React from 'react';
import ContactSplitForm from '@/components/sections/contact/ContactSplitForm';
export default function ContactSection(): React.JSX.Element {
return (
<div data-webild-section="contact" id="contact">
<ContactSplitForm
description="Secure your spot at Casual Culinary Cafe Bar. Fill out the form below and we'll confirm your reservation shortly."
textarea={{"placeholder":"Special Requests (Optional)","name":"message","rows":3}}
inputs={[{"name":"name","placeholder":"Full Name","required":true,"type":"text"},{"required":true,"type":"tel","placeholder":"Phone Number","name":"phone"},{"name":"date","placeholder":"Date","required":true,"type":"date"},{"placeholder":"Time","name":"time","required":true,"type":"time"},{"required":true,"type":"number","placeholder":"Party Size","name":"partySize"}]}
tag="Reservations"
title="Book a Table"
imageSrc="https://images.unsplash.com/photo-1554118811-1e0d58224f24?auto=format&fit=crop&q=80"
buttonText="Reserve Table"
/>
</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 "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="Questions?"
title="Frequently Asked Questions"
items={[
{ question: "Do you offer takeaways?", answer: "Yes, all our food and specialty coffees are available for takeaway." },
{ question: "Can I reserve a table?", answer: "Yes, please call us or use the contact form to reserve your table." },
{ question: "Where is the cafe located?", answer: "We are located at HaMatmid Alley 6, Jerusalem." }
]}
description="Everything you need to know about your visit."
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,44 @@
// 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 FeaturesBento from '@/components/sections/features/FeaturesBento';
import { Coffee, Timer, Utensils } from "lucide-react";
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function FeaturesSection(): React.JSX.Element {
return (
<div id="features" data-section="features">
<SectionErrorBoundary name="features">
<FeaturesBento
tag="Why Guests Love Us"
title="Culinary Excellence Meets Jerusalem History"
description="Explore our core offerings and the unique environment we provide."
features={[
{
title: "Exceptional Coffee", description: "Expertly brewed coffee and premium specialty drinks for true enthusiasts.", bentoComponent: "info-card-marquee", infoCards: [
{ icon: Coffee, label: "Beans", value: "Single Origin" },
{ icon: Utensils, label: "Variety", value: "Signature" },
{ icon: Timer, label: "Brewing", value: "Precision" }
]
},
{
title: "Culinary Experience", description: "Creative dishes made with fresh, locally sourced ingredients every day.", bentoComponent: "media-stack", mediaItems: [
{ imageSrc: "http://img.b2bpic.net/free-photo/interior-zenana-mahal-city-palace-udaipur-rajasthan_53876-146803.jpg?_wi=2" },
{ imageSrc: "http://img.b2bpic.net/free-photo/top-view-lemon-tart-plate_23-2148519057.jpg" },
{ imageSrc: "http://img.b2bpic.net/free-photo/foie-gras-with-vegetable-salad_1203-9262.jpg" }
]
},
{
title: "Historic Atmosphere", description: "Dining in a charming restored Jerusalem heritage building.", bentoComponent: "media-stack", mediaItems: [
{ imageSrc: "http://img.b2bpic.net/free-photo/halls-convent-christ-with-windows-tomar-portugal_181624-16838.jpg" },
{ imageSrc: "http://img.b2bpic.net/free-photo/door-old-house-decorated-with-flag-greece-wreath-protomaya-city-rhodes-trip-popular-places-dodecanese-archipelago-greece_166373-3814.jpg" },
{ imageSrc: "http://img.b2bpic.net/free-photo/stained-brick-blocks-wall_1194-7474.jpg" }
]
}
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,40 @@
// 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 HeroSplitVerticalMarquee from '@/components/sections/hero/HeroSplitVerticalMarquee';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function HeroSection(): React.JSX.Element {
return (
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroSplitVerticalMarquee
tag="Casual Culinary Cafe Bar"
title="A Hidden Culinary Gem in the Heart of Jerusalem"
description="Specialty coffee, creative cuisine, and unforgettable atmosphere in a beautifully restored historic home."
primaryButton={{
text: "Call Now", href: "tel:+972584006008"}}
secondaryButton={{
text: "Reserve Table", href: "#contact"}}
leftItems={[
{ imageSrc: "http://img.b2bpic.net/free-photo/interior-zenana-mahal-city-palace-udaipur-rajasthan_53876-146803.jpg?_wi=1" },
{ imageSrc: "http://img.b2bpic.net/free-photo/group-four-south-asian-men-s-posed-business-meeting-cafe-indians-work-together-using-various-gadgets-having-conversation_627829-5231.jpg" },
{ imageSrc: "http://img.b2bpic.net/free-photo/caffeine-working-coffee-cup-table_1122-2430.jpg" },
{ imageSrc: "http://img.b2bpic.net/free-photo/lamb-wrapped-with-dough-tomato-sauce_114579-2133.jpg" },
{ imageSrc: "http://img.b2bpic.net/free-photo/street-cafe-old-town-rhodes-journey-through-popular-places-dodecanese-archipelago-greece_166373-3792.jpg" },
{ imageSrc: "http://img.b2bpic.net/free-photo/crab-meat-coconut-cream-soup-micro-greens-gray-concrete-background-top-view-copy-space-h_1258-52397.jpg" }
]}
rightItems={[
{ imageSrc: "http://img.b2bpic.net/free-photo/nobody-setting-terrace-bar-outside_1203-4630.jpg" },
{ imageSrc: "http://img.b2bpic.net/free-photo/white-plate-with-originally-served-salad-stands-dark-wooden-t_1304-4651.jpg" },
{ imageSrc: "http://img.b2bpic.net/free-photo/high-angle-coffee-cup-with-decoration-top_23-2148522973.jpg" },
{ imageSrc: "http://img.b2bpic.net/free-photo/cafe-with-burning-candles-tables_140725-7784.jpg" },
{ imageSrc: "http://img.b2bpic.net/free-photo/entrance-old-italian-wine-cellar_333098-111.jpg" },
{ imageSrc: "http://img.b2bpic.net/free-photo/meat-carpaccio-with-white-cheese_140725-1393.jpg" }
]}
/>
</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 "metrics" section.
import React from 'react';
import MetricsSimpleCards from '@/components/sections/metrics/MetricsSimpleCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function MetricsSection(): React.JSX.Element {
return (
<div id="metrics" data-section="metrics">
<SectionErrorBoundary name="metrics">
<MetricsSimpleCards
tag="At a Glance"
title="Casual by Numbers"
metrics={[
{ value: "125+", description: "Positive Google Reviews" },
{ value: "4.6★", description: "Average Guest Rating" },
{ value: "₪50100", description: "Typical Price Range" }
]}
description="Celebrating our community's love and appreciation."
/>
</SectionErrorBoundary>
</div>
);
}

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 "social-proof" section.
import React from 'react';
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function SocialProofSection(): React.JSX.Element {
return (
<div id="social-proof" data-section="social-proof">
<SectionErrorBoundary name="social-proof">
<SocialProofMarquee
tag="Atmosphere"
title="Join Our Community"
names={[
"Specialty Coffee", "Artisanal Pastries", "Creative Dining", "Jerusalem Heritage", "Cafe Bar Vibes", "Events Space", "Local Culture"]}
description="Experience the culture."
/>
</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 TestimonialOverlayCards from '@/components/sections/testimonial/TestimonialOverlayCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function TestimonialsSection(): React.JSX.Element {
return (
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialOverlayCards
tag="Reviews"
title="What Our Guests Say"
description="Rated 4.6 stars by over 125 happy locals and visitors."
testimonials={[
{
name: "Sarah J.", role: "Local", company: "Jerusalem", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/attractive-young-woman-sitting-cafe-holding-takeaway-coffee-cup_23-2148148111.jpg"},
{
name: "Michael K.", role: "Visitor", company: "Tourist", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/adults-enjoying-mexican-food_23-2149663842.jpg"},
{
name: "Emily R.", role: "Foodie", company: "Jerusalem", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/internationals-people-standing-cafe-drinking-juice_1157-32300.jpg"},
{
name: "David L.", role: "Local", company: "Professional", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/couple-enjoying-food-restaurant_23-2149269175.jpg"},
{
name: "Chloe T.", role: "Blogger", company: "Traveler", rating: 4,
imageSrc: "http://img.b2bpic.net/free-photo/vertical-shot-cute-asian-barista-smiling-girl-puts-coffee-tamper-prepare-cappuccino-standing_1258-134055.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
);
}