Merge version_2_1782189014340 into main #1

Merged
bender merged 1 commits from version_2_1782189014340 into main 2026-06-23 04:31:58 +00:00
9 changed files with 370 additions and 199 deletions

View File

@@ -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 />
</>
);
}

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 "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>
);
}

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 "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>
);
}

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 "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>
);
}

View 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>
);
}

View 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>
);
}

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 "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>
);
}

View 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>
);
}

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 "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>
);
}