Merge version_2_1782189014340 into main #1
@@ -1,210 +1,35 @@
|
||||
import AboutMediaOverlay from '@/components/sections/about/AboutMediaOverlay';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import FaqSimple from '@/components/sections/faq/FaqSimple';
|
||||
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
|
||||
import HeroSplit from '@/components/sections/hero/HeroSplit';
|
||||
import TestimonialTrustCard from '@/components/sections/testimonial/TestimonialTrustCard';
|
||||
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 StorySection from './HomePage/sections/Story';
|
||||
import DrinksSection from './HomePage/sections/Drinks';
|
||||
import WineSection from './HomePage/sections/Wine';
|
||||
import TestimonialsSection from './HomePage/sections/Testimonials';
|
||||
import FaqSection from './HomePage/sections/Faq';
|
||||
import ReserveSection from './HomePage/sections/Reserve';
|
||||
|
||||
|
||||
import LocationSection from './HomePage/sections/Location';export default function HomePage(): React.JSX.Element {
|
||||
return (
|
||||
<>
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroSplit
|
||||
tag="Est. 2024"
|
||||
title="CHILL Coffee • Wine • Community"
|
||||
description="Where slow mornings meet unforgettable nights. Experience the perfect blend of artisan coffee and curated vintage wines in an atmosphere designed for connection."
|
||||
primaryButton={{
|
||||
text: "View Menu",
|
||||
href: "#drinks",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Reserve a Table",
|
||||
href: "#reserve",
|
||||
}}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/twig-near-cups-lamp_23-2147811205.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<>
|
||||
<HeroSection />
|
||||
|
||||
<div id="story" data-section="story">
|
||||
<SectionErrorBoundary name="story">
|
||||
<AboutMediaOverlay
|
||||
tag="Our Story"
|
||||
title="Coffee at Sunrise. Wine at Sunset."
|
||||
description="Chill isn't just a place; it's a feeling. We have curated a space that transitions seamlessly from a serene workspace by day to an intimate wine lounge by night. Whether you're here for an early morning business meeting, a casual catch-up with friends, or a sophisticated evening glass of red, we are your home away from home."
|
||||
imageSrc="http://img.b2bpic.net/free-photo/virtual-love-cute-girl-red-dress-distance-date-with-wine-candles-talking-camera_140725-164255.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<StorySection />
|
||||
|
||||
<div id="drinks" data-section="drinks">
|
||||
<SectionErrorBoundary name="drinks">
|
||||
<FeaturesImageBento
|
||||
tag="Signature Coffee"
|
||||
title="Crafted Perfection"
|
||||
description="Explore our collection of artisanal lattes and hand-brewed coffee specialties."
|
||||
items={[
|
||||
{
|
||||
title: "Charcoal Honey Latte",
|
||||
description: "$5.95",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/cold-coffee-with-oreo-cookies_140725-6596.jpg",
|
||||
},
|
||||
{
|
||||
title: "Crème Brûlée Latte",
|
||||
description: "$6.25",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/clear-glass-cup-brown-wooden-table_209848-81.jpg",
|
||||
},
|
||||
{
|
||||
title: "Himalayan Lavender Latte",
|
||||
description: "$5.75",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/lavender-latte_23-2151961964.jpg",
|
||||
},
|
||||
{
|
||||
title: "Ube Latte",
|
||||
description: "$6.25",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/coffee-time_1122-2869.jpg",
|
||||
},
|
||||
{
|
||||
title: "Maple Oatmilk Latte",
|
||||
description: "$5.75",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-desserts-with-straws-macarons_23-2148603321.jpg",
|
||||
},
|
||||
{
|
||||
title: "Tiramisu Cold Brew",
|
||||
description: "$5.95",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/hot-cup-coffee-with-cream-macaroon_140725-7521.jpg",
|
||||
},
|
||||
{
|
||||
title: "Coco Pandan Latte",
|
||||
description: "$6.25",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/mug-lime-cocktail-garnished-with-mint-lime-zest_140725-4894.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<DrinksSection />
|
||||
|
||||
<div id="wine" data-section="wine">
|
||||
<SectionErrorBoundary name="wine">
|
||||
<FeaturesImageBento
|
||||
tag="Cheese & Wine"
|
||||
title="The Evening Experience"
|
||||
description="Indulge in our carefully selected artisanal cheeses and wine pairings."
|
||||
items={[
|
||||
{
|
||||
title: "Brie Triple Cream",
|
||||
description: "$8.00",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/photo-fresh-grapes-wineglass-wooden-table-french-cheese-degustation-tasty-walnuts_482257-19784.jpg",
|
||||
},
|
||||
{
|
||||
title: "Smoked Gouda",
|
||||
description: "$9.00",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-shiny-wine-glass-table-decorated-christmas-new-year-eve-concept_132075-11254.jpg",
|
||||
},
|
||||
{
|
||||
title: "White Cheddar",
|
||||
description: "$7.00",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/side-view-fresh-salad-with-tomatoes-green-chili-pepper-red-onionnd-pomegranate-sauce-white-bowl_140725-11937.jpg",
|
||||
},
|
||||
{
|
||||
title: "Goat Cheese",
|
||||
description: "$8.00",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/still-life-italian-cocktail_52683-105024.jpg",
|
||||
},
|
||||
{
|
||||
title: "Gruyere",
|
||||
description: "$7.00",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/flat-lay-blueberries-dark-plate-with-flowers_23-2148425539.jpg",
|
||||
},
|
||||
{
|
||||
title: "Wensleydale",
|
||||
description: "$8.00",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/cheese-board-with-hard-cheese-cheese-knife-red-wine-glass-grape-brown-concrete-surface_114579-5346.jpg",
|
||||
},
|
||||
{
|
||||
title: "Parmesan",
|
||||
description: "$7.00",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/blackberry-bowl-dark-plate-dark-background_23-2148340416.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<WineSection />
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialTrustCard
|
||||
quote="The most sophisticated spot in town. The transition from day-time work vibes to evening wine atmosphere is perfectly executed."
|
||||
rating={5}
|
||||
author="The Chill Community"
|
||||
avatars={[
|
||||
{
|
||||
name: "Sarah",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/smiling-friendly-waitress-coffee-shop-barista-giving-out-takeaway-order-cappuccino-paper-cup_1258-203449.jpg",
|
||||
},
|
||||
{
|
||||
name: "Michael",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/woman-portrait_1296-429.jpg",
|
||||
},
|
||||
{
|
||||
name: "Jessica",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/woman-taking-photo-two-croissants_23-2149277917.jpg",
|
||||
},
|
||||
{
|
||||
name: "David",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/cafe-small-business-smiling-asian-barista-apron-standing-counter-coffee-shop-workin_1258-134048.jpg",
|
||||
},
|
||||
{
|
||||
name: "Emily",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/couple-enjoying-drinks-restaurant_23-2149269141.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<TestimonialsSection />
|
||||
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqSimple
|
||||
tag="Information"
|
||||
title="Hours & Details"
|
||||
description="Everything you need to know about your next visit."
|
||||
items={[
|
||||
{
|
||||
question: "What are your hours?",
|
||||
answer: "Mon-Fri: 7am-10pm, Sat-Sun: 9am-11pm",
|
||||
},
|
||||
{
|
||||
question: "Where are you located?",
|
||||
answer: "123 Main Street, Downtown Creative District",
|
||||
},
|
||||
{
|
||||
question: "Can we reserve tables?",
|
||||
answer: "Yes, we highly recommend booking ahead for evening wine hours.",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<FaqSection />
|
||||
<LocationSection />
|
||||
|
||||
<div id="reserve" data-section="reserve">
|
||||
<SectionErrorBoundary name="reserve">
|
||||
<ContactCta
|
||||
tag="Reserve Your Spot"
|
||||
text="Your next favorite spot awaits. Join us today."
|
||||
primaryButton={{
|
||||
text: "Reserve Now",
|
||||
href: "#",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "View Menu",
|
||||
href: "#drinks",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ReserveSection />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
57
src/pages/HomePage/sections/Drinks.tsx
Normal file
57
src/pages/HomePage/sections/Drinks.tsx
Normal file
@@ -0,0 +1,57 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "drinks" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function DrinksSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="drinks" data-section="drinks">
|
||||
<SectionErrorBoundary name="drinks">
|
||||
<FeaturesImageBento
|
||||
tag="Signature Coffee"
|
||||
title="Crafted Perfection"
|
||||
description="Explore our collection of artisanal lattes and hand-brewed coffee specialties."
|
||||
items={[
|
||||
{
|
||||
title: "Charcoal Honey Latte",
|
||||
description: "$5.95",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/cold-coffee-with-oreo-cookies_140725-6596.jpg",
|
||||
},
|
||||
{
|
||||
title: "Crème Brûlée Latte",
|
||||
description: "$6.25",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/clear-glass-cup-brown-wooden-table_209848-81.jpg",
|
||||
},
|
||||
{
|
||||
title: "Himalayan Lavender Latte",
|
||||
description: "$5.75",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/lavender-latte_23-2151961964.jpg",
|
||||
},
|
||||
{
|
||||
title: "Ube Latte",
|
||||
description: "$6.25",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/coffee-time_1122-2869.jpg",
|
||||
},
|
||||
{
|
||||
title: "Maple Oatmilk Latte",
|
||||
description: "$5.75",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-desserts-with-straws-macarons_23-2148603321.jpg",
|
||||
},
|
||||
{
|
||||
title: "Tiramisu Cold Brew",
|
||||
description: "$5.95",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/hot-cup-coffee-with-cream-macaroon_140725-7521.jpg",
|
||||
},
|
||||
{
|
||||
title: "Coco Pandan Latte",
|
||||
description: "$6.25",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/mug-lime-cocktail-garnished-with-mint-lime-zest_140725-4894.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
34
src/pages/HomePage/sections/Faq.tsx
Normal file
34
src/pages/HomePage/sections/Faq.tsx
Normal file
@@ -0,0 +1,34 @@
|
||||
// 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="Information"
|
||||
title="Hours & Details"
|
||||
description="Everything you need to know about your next visit."
|
||||
items={[
|
||||
{
|
||||
question: "What are your hours?",
|
||||
answer: "Mon-Fri: 7am-10pm, Sat-Sun: 9am-11pm",
|
||||
},
|
||||
{
|
||||
question: "Where are you located?",
|
||||
answer: "123 Main Street, Downtown Creative District",
|
||||
},
|
||||
{
|
||||
question: "Can we reserve tables?",
|
||||
answer: "Yes, we highly recommend booking ahead for evening wine hours.",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
29
src/pages/HomePage/sections/Hero.tsx
Normal file
29
src/pages/HomePage/sections/Hero.tsx
Normal file
@@ -0,0 +1,29 @@
|
||||
// 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 HeroSplit from '@/components/sections/hero/HeroSplit';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function HeroSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroSplit
|
||||
tag="Est. 2024"
|
||||
title="CHILL Coffee • Wine • Community"
|
||||
description="Where slow mornings meet unforgettable nights. Experience the perfect blend of artisan coffee and curated vintage wines in an atmosphere designed for connection."
|
||||
primaryButton={{
|
||||
text: "View Menu",
|
||||
href: "#drinks",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Reserve a Table",
|
||||
href: "#reserve",
|
||||
}}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/twig-near-cups-lamp_23-2147811205.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
79
src/pages/HomePage/sections/Location.tsx
Normal file
79
src/pages/HomePage/sections/Location.tsx
Normal file
@@ -0,0 +1,79 @@
|
||||
import ScrollReveal from '@/components/ui/ScrollReveal';
|
||||
import TextAnimation from '@/components/ui/TextAnimation';
|
||||
import { MapPin, Clock, Phone } from 'lucide-react';
|
||||
|
||||
export default function LocationSection() {
|
||||
return (
|
||||
<div data-webild-section="location" id="location">
|
||||
<section className="relative w-full py-24 bg-background">
|
||||
<div className="w-content-width mx-auto">
|
||||
<div className="grid grid-cols-1 lg:grid-cols-2 gap-12 items-center">
|
||||
<ScrollReveal variant="slide-up">
|
||||
<div className="space-y-8">
|
||||
<div>
|
||||
<TextAnimation
|
||||
text="Visit Us"
|
||||
variant="slide-up"
|
||||
tag="h2"
|
||||
className="text-4xl md:text-5xl font-bold text-foreground mb-4"
|
||||
gradientText={false}
|
||||
/>
|
||||
<p className="text-lg text-accent">
|
||||
Experience the perfect blend of premium coffee and curated wines in our sophisticated lounge.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="space-y-6">
|
||||
<div className="flex items-start gap-4">
|
||||
<div className="p-3 rounded-full bg-card text-primary-cta">
|
||||
<MapPin className="w-6 h-6" />
|
||||
</div>
|
||||
<div>
|
||||
<h3 className="text-xl font-semibold text-foreground mb-1">Location</h3>
|
||||
<p className="text-accent">123 Luxury Avenue<br />Metropolis, NY 10001</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="flex items-start gap-4">
|
||||
<div className="p-3 rounded-full bg-card text-primary-cta">
|
||||
<Clock className="w-6 h-6" />
|
||||
</div>
|
||||
<div>
|
||||
<h3 className="text-xl font-semibold text-foreground mb-1">Hours</h3>
|
||||
<p className="text-accent">Mon - Thu: 7:00 AM - 10:00 PM<br />Fri - Sat: 7:00 AM - 12:00 AM<br />Sun: 8:00 AM - 8:00 PM</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="flex items-start gap-4">
|
||||
<div className="p-3 rounded-full bg-card text-primary-cta">
|
||||
<Phone className="w-6 h-6" />
|
||||
</div>
|
||||
<div>
|
||||
<h3 className="text-xl font-semibold text-foreground mb-1">Contact</h3>
|
||||
<p className="text-accent">+1 (555) 123-4567<br />hello@chillcoffeewine.com</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</ScrollReveal>
|
||||
|
||||
<ScrollReveal variant="fade-blur" delay={0.2}>
|
||||
<div className="w-full h-[500px] rounded-lg overflow-hidden border border-card">
|
||||
<iframe
|
||||
src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3022.1422937950147!2d-73.98731968459391!3d40.75889497932681!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x89c25855c6480299%3A0x55194ec5a1ae072e!2sTimes%20Square!5e0!3m2!1sen!2sus!4v1621530000000!5m2!1sen!2sus"
|
||||
width="100%"
|
||||
height="100%"
|
||||
style={{ border: 0 }}
|
||||
allowFullScreen={true}
|
||||
loading="lazy"
|
||||
referrerPolicy="no-referrer-when-downgrade"
|
||||
className="grayscale opacity-80 hover:grayscale-0 hover:opacity-100 transition-all duration-500"
|
||||
></iframe>
|
||||
</div>
|
||||
</ScrollReveal>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
27
src/pages/HomePage/sections/Reserve.tsx
Normal file
27
src/pages/HomePage/sections/Reserve.tsx
Normal file
@@ -0,0 +1,27 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "reserve" section.
|
||||
|
||||
import React from 'react';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function ReserveSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="reserve" data-section="reserve">
|
||||
<SectionErrorBoundary name="reserve">
|
||||
<ContactCta
|
||||
tag="Reserve Your Spot"
|
||||
text="Your next favorite spot awaits. Join us today."
|
||||
primaryButton={{
|
||||
text: "Reserve Now",
|
||||
href: "#",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "View Menu",
|
||||
href: "#drinks",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
21
src/pages/HomePage/sections/Story.tsx
Normal file
21
src/pages/HomePage/sections/Story.tsx
Normal file
@@ -0,0 +1,21 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "story" section.
|
||||
|
||||
import React from 'react';
|
||||
import AboutMediaOverlay from '@/components/sections/about/AboutMediaOverlay';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function StorySection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="story" data-section="story">
|
||||
<SectionErrorBoundary name="story">
|
||||
<AboutMediaOverlay
|
||||
tag="Our Story"
|
||||
title="Coffee at Sunrise. Wine at Sunset."
|
||||
description="Chill isn't just a place; it's a feeling. We have curated a space that transitions seamlessly from a serene workspace by day to an intimate wine lounge by night. Whether you're here for an early morning business meeting, a casual catch-up with friends, or a sophisticated evening glass of red, we are your home away from home."
|
||||
imageSrc="http://img.b2bpic.net/free-photo/virtual-love-cute-girl-red-dress-distance-date-with-wine-candles-talking-camera_140725-164255.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
42
src/pages/HomePage/sections/Testimonials.tsx
Normal file
42
src/pages/HomePage/sections/Testimonials.tsx
Normal file
@@ -0,0 +1,42 @@
|
||||
// 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 TestimonialTrustCard from '@/components/sections/testimonial/TestimonialTrustCard';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function TestimonialsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialTrustCard
|
||||
quote="The most sophisticated spot in town. The transition from day-time work vibes to evening wine atmosphere is perfectly executed."
|
||||
rating={5}
|
||||
author="The Chill Community"
|
||||
avatars={[
|
||||
{
|
||||
name: "Sarah",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/smiling-friendly-waitress-coffee-shop-barista-giving-out-takeaway-order-cappuccino-paper-cup_1258-203449.jpg",
|
||||
},
|
||||
{
|
||||
name: "Michael",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/woman-portrait_1296-429.jpg",
|
||||
},
|
||||
{
|
||||
name: "Jessica",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/woman-taking-photo-two-croissants_23-2149277917.jpg",
|
||||
},
|
||||
{
|
||||
name: "David",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/cafe-small-business-smiling-asian-barista-apron-standing-counter-coffee-shop-workin_1258-134048.jpg",
|
||||
},
|
||||
{
|
||||
name: "Emily",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/couple-enjoying-drinks-restaurant_23-2149269141.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
57
src/pages/HomePage/sections/Wine.tsx
Normal file
57
src/pages/HomePage/sections/Wine.tsx
Normal file
@@ -0,0 +1,57 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "wine" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function WineSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="wine" data-section="wine">
|
||||
<SectionErrorBoundary name="wine">
|
||||
<FeaturesImageBento
|
||||
tag="Cheese & Wine"
|
||||
title="The Evening Experience"
|
||||
description="Indulge in our carefully selected artisanal cheeses and wine pairings."
|
||||
items={[
|
||||
{
|
||||
title: "Brie Triple Cream",
|
||||
description: "$8.00",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/photo-fresh-grapes-wineglass-wooden-table-french-cheese-degustation-tasty-walnuts_482257-19784.jpg",
|
||||
},
|
||||
{
|
||||
title: "Smoked Gouda",
|
||||
description: "$9.00",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-shiny-wine-glass-table-decorated-christmas-new-year-eve-concept_132075-11254.jpg",
|
||||
},
|
||||
{
|
||||
title: "White Cheddar",
|
||||
description: "$7.00",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/side-view-fresh-salad-with-tomatoes-green-chili-pepper-red-onionnd-pomegranate-sauce-white-bowl_140725-11937.jpg",
|
||||
},
|
||||
{
|
||||
title: "Goat Cheese",
|
||||
description: "$8.00",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/still-life-italian-cocktail_52683-105024.jpg",
|
||||
},
|
||||
{
|
||||
title: "Gruyere",
|
||||
description: "$7.00",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/flat-lay-blueberries-dark-plate-with-flowers_23-2148425539.jpg",
|
||||
},
|
||||
{
|
||||
title: "Wensleydale",
|
||||
description: "$8.00",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/cheese-board-with-hard-cheese-cheese-knife-red-wine-glass-grape-brown-concrete-surface_114579-5346.jpg",
|
||||
},
|
||||
{
|
||||
title: "Parmesan",
|
||||
description: "$7.00",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/blackberry-bowl-dark-plate-dark-background_23-2148340416.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user