Merge version_10_1781874013587 into main

Merge version_10_1781874013587 into main
This commit was merged in pull request #13.
This commit is contained in:
2026-06-19 13:01:10 +00:00
9 changed files with 264 additions and 160 deletions

View File

@@ -1,171 +1,39 @@
import AboutMediaOverlay from '@/components/sections/about/AboutMediaOverlay';
import ContactCta from '@/components/sections/contact/ContactCta';
import FaqTabbedAccordion from '@/components/sections/faq/FaqTabbedAccordion';
import FeaturesComparison from '@/components/sections/features/FeaturesComparison';
import HeroSplitVerticalMarquee from '@/components/sections/hero/HeroSplitVerticalMarquee';
import MetricsIconCards from '@/components/sections/metrics/MetricsIconCards';
import TeamListCards from '@/components/sections/team/TeamListCards';
import TestimonialMarqueeCards from '@/components/sections/testimonial/TestimonialMarqueeCards';
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 DetailsSection from './HomePage/sections/Details';
import MetricsSection from './HomePage/sections/Metrics';
import TeamSection from './HomePage/sections/Team';
import TestimonialsSection from './HomePage/sections/Testimonials';
import FaqSection from './HomePage/sections/Faq';
import ContactSection from './HomePage/sections/Contact';
{/* webild-stub @2026-06-19T13:01:05.263Z: Update the website sections to include: 1. A hero section featuring a large photograph of Anastasia and Mikhail in the background. 2. A section for the invitation text and the wedding date. 3. A section detailing the wedding venue/location. */}
export default function HomePage(): React.JSX.Element {
return (
<>
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroSplitVerticalMarquee
tag="SAVE THE DATE"
title="Alexandra &"
description=" "
primaryButton={{
text: "Our Story", href: "#about"}}
secondaryButton={{
text: "RSVP", href: "#contact"}}
leftItems={[
{
imageSrc: "https://storage.googleapis.com/webild/users/user_3FLxFSYd9I4TmWBL7ZgkuohbIQC/uploaded-1781871995750-a1ojv000.jpg?_wi=1"},
{
imageSrc: "http://img.b2bpic.net/free-photo/fashion-photo-handsome-elegant-man-suit-with-beautiful-sexy-woman-colorful-dress-white_158538-11177.jpg?_wi=1"},
{
imageSrc: "http://img.b2bpic.net/free-photo/side-view-women-getting-married_23-2150753674.jpg?_wi=1"},
]}
rightItems={[
{
imageSrc: "https://storage.googleapis.com/webild/users/user_3FLxFSYd9I4TmWBL7ZgkuohbIQC/uploaded-1781871995750-a1ojv000.jpg?_wi=2"},
{
imageSrc: "http://img.b2bpic.net/free-photo/fashion-photo-handsome-elegant-man-suit-with-beautiful-sexy-woman-colorful-dress-white_158538-11177.jpg?_wi=2"},
{
imageSrc: "http://img.b2bpic.net/free-photo/side-view-women-getting-married_23-2150753674.jpg?_wi=2"},
]}
/>
</SectionErrorBoundary>
</div>
<>
<HeroSection />
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutMediaOverlay
tag="Our Story"
title="The Journey Together"
description="From our first meeting in the city to our biggest adventure yet, we've shared so many beautiful moments. We can't wait to write our next chapter together."
imageSrc="http://img.b2bpic.net/free-photo/fashion-photo-handsome-elegant-man-suit-with-beautiful-sexy-woman-colorful-dress-white_158538-11177.jpg?_wi=3"
/>
</SectionErrorBoundary>
</div>
<AboutSection />
<div id="details" data-section="details">
<SectionErrorBoundary name="details">
<FeaturesComparison
tag="Ceremony Details"
title="When & Where"
description="Important logistics for our special day at The Grand Estate."
negativeItems={[
"No smoking inside", "No outside catering", "No pets allowed"]}
positiveItems={[
"Free valet parking", "Open bar throughout", "Live jazz band"]}
/>
</SectionErrorBoundary>
</div>
<DetailsSection />
<div id="metrics" data-section="metrics">
<SectionErrorBoundary name="metrics">
<MetricsIconCards
tag="By The Numbers"
title="Our Years Together"
description="A little glimpse into the time we've spent building our life together."
metrics={[
{
icon: "Heart", title: "Years Together", value: "7"},
{
icon: "MapPin", title: "Cities Visited", value: "14"},
{
icon: "Coffee", title: "Cups of Coffee", value: "5000+"},
]}
/>
</SectionErrorBoundary>
</div>
<MetricsSection />
<div id="team" data-section="team">
<SectionErrorBoundary name="team">
<TeamListCards
tag="Wedding Party"
title="Our Amazing Friends"
description="The people who have been there through it all and will stand by our side."
groups={[
{
title: "Bridesmaids", members: [
{
name: "Sarah Miller", role: "Maid of Honor", detail: "Best friend since college", imageSrc: "http://img.b2bpic.net/free-photo/side-view-women-getting-married_23-2150753674.jpg?_wi=3"},
{
name: "Emily Chen", role: "Bridesmaid", detail: "Partner in crime", imageSrc: "http://img.b2bpic.net/free-photo/portrait-two-attractive-girls-tulle-skirts-sitting-outdoor-stairs-they-smiling_197531-1999.jpg"},
],
},
{
title: "Groomsmen", members: [
{
name: "David Smith", role: "Best Man", detail: "Lifelong brother", imageSrc: "http://img.b2bpic.net/free-photo/beautiful-bride-groom-having-their-wedding-with-guests-beach_23-2149044022.jpg"},
{
name: "Kevin Lee", role: "Groomsman", detail: "Supportive friend", imageSrc: "http://img.b2bpic.net/free-photo/portrait-handsome-stylish-smiling-male-elegant-black-suit-dark-background_613910-14629.jpg"},
],
},
]}
/>
</SectionErrorBoundary>
</div>
<TeamSection />
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialMarqueeCards
tag="Well Wishes"
title="From Our Loved Ones"
description="Some words from our wonderful friends and family."
testimonials={[
{
name: "Sarah J.", role: "Guest", quote: "Can't wait to see you two tie the knot!", imageSrc: "http://img.b2bpic.net/free-photo/happy-men-bachelor-party_23-2149275499.jpg"},
{
name: "Mike R.", role: "Guest", quote: "The wedding of the century!", imageSrc: "http://img.b2bpic.net/free-photo/beautiful-lesbian-couple-celebrating-their-wedding-day-outdoors_23-2150637581.jpg"},
{
name: "Emma L.", role: "Guest", quote: "You both are truly meant for each other.", imageSrc: "http://img.b2bpic.net/free-photo/side-view-women-getting-married_23-2150753663.jpg"},
{
name: "David W.", role: "Guest", quote: "So happy for you two beautiful souls.", imageSrc: "http://img.b2bpic.net/free-photo/front-view-bride-posing-with-flowers_23-2149722039.jpg"},
{
name: "Lucy K.", role: "Guest", quote: "Best wishes on your journey together.", imageSrc: "http://img.b2bpic.net/free-photo/man-groom-stylish-suit-posing_1328-5011.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
<TestimonialsSection />
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqTabbedAccordion
tag="Information"
title="Questions?"
description="Find everything you need to know about the big day."
categories={[
{
name: "General", items: [
{
question: "Where is the wedding?", answer: "The Grand Estate, 123 Wedding Lane."},
{
question: "What is the dress code?", answer: "Black Tie Optional."},
],
},
]}
/>
</SectionErrorBoundary>
</div>
<FaqSection />
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="RSVP"
text="Please let us know if you can make it by September 1st."
primaryButton={{
text: "Accept Invitation", href: "mailto:rsvp@wedding.com"}}
secondaryButton={{
text: "Decline with Regret", href: "mailto:rsvp@wedding.com"}}
/>
</SectionErrorBoundary>
</div>
<ContactSection />
</>
);
}
}

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 "about" section.
import React from 'react';
import AboutMediaOverlay from '@/components/sections/about/AboutMediaOverlay';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function AboutSection(): React.JSX.Element {
return (
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutMediaOverlay
tag="Our Story"
title="The Journey Together"
description="From our first meeting in the city to our biggest adventure yet, we've shared so many beautiful moments. We can't wait to write our next chapter together."
imageSrc="http://img.b2bpic.net/free-photo/fashion-photo-handsome-elegant-man-suit-with-beautiful-sexy-woman-colorful-dress-white_158538-11177.jpg?_wi=3"
/>
</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="RSVP"
text="Please let us know if you can make it by September 1st."
primaryButton={{
text: "Accept Invitation", href: "mailto:rsvp@wedding.com"}}
secondaryButton={{
text: "Decline with Regret", href: "mailto:rsvp@wedding.com"}}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,24 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "details" section.
import React from 'react';
import FeaturesComparison from '@/components/sections/features/FeaturesComparison';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function DetailsSection(): React.JSX.Element {
return (
<div id="details" data-section="details">
<SectionErrorBoundary name="details">
<FeaturesComparison
tag="Ceremony Details"
title="When & Where"
description="Important logistics for our special day at The Grand Estate."
negativeItems={[
"No smoking inside", "No outside catering", "No pets allowed"]}
positiveItems={[
"Free valet parking", "Open bar throughout", "Live jazz band"]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,30 @@
// 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 FaqTabbedAccordion from '@/components/sections/faq/FaqTabbedAccordion';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function FaqSection(): React.JSX.Element {
return (
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqTabbedAccordion
tag="Information"
title="Questions?"
description="Find everything you need to know about the big day."
categories={[
{
name: "General", items: [
{
question: "Where is the wedding?", answer: "The Grand Estate, 123 Wedding Lane."},
{
question: "What is the dress code?", answer: "Black Tie Optional."},
],
},
]}
/>
</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="SAVE THE DATE"
title="Alexandra &"
description=" "
primaryButton={{
text: "Our Story", href: "#about"}}
secondaryButton={{
text: "RSVP", href: "#contact"}}
leftItems={[
{
imageSrc: "https://storage.googleapis.com/webild/users/user_3FLxFSYd9I4TmWBL7ZgkuohbIQC/uploaded-1781871995750-a1ojv000.jpg?_wi=1"},
{
imageSrc: "http://img.b2bpic.net/free-photo/fashion-photo-handsome-elegant-man-suit-with-beautiful-sexy-woman-colorful-dress-white_158538-11177.jpg?_wi=1"},
{
imageSrc: "http://img.b2bpic.net/free-photo/side-view-women-getting-married_23-2150753674.jpg?_wi=1"},
]}
rightItems={[
{
imageSrc: "https://storage.googleapis.com/webild/users/user_3FLxFSYd9I4TmWBL7ZgkuohbIQC/uploaded-1781871995750-a1ojv000.jpg?_wi=2"},
{
imageSrc: "http://img.b2bpic.net/free-photo/fashion-photo-handsome-elegant-man-suit-with-beautiful-sexy-woman-colorful-dress-white_158538-11177.jpg?_wi=2"},
{
imageSrc: "http://img.b2bpic.net/free-photo/side-view-women-getting-married_23-2150753674.jpg?_wi=2"},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,28 @@
// 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 MetricsIconCards from '@/components/sections/metrics/MetricsIconCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function MetricsSection(): React.JSX.Element {
return (
<div id="metrics" data-section="metrics">
<SectionErrorBoundary name="metrics">
<MetricsIconCards
tag="By The Numbers"
title="Our Years Together"
description="A little glimpse into the time we've spent building our life together."
metrics={[
{
icon: "Heart", title: "Years Together", value: "7"},
{
icon: "MapPin", title: "Cities Visited", value: "14"},
{
icon: "Coffee", title: "Cups of Coffee", value: "5000+"},
]}
/>
</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 "team" section.
import React from 'react';
import TeamListCards from '@/components/sections/team/TeamListCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function TeamSection(): React.JSX.Element {
return (
<div id="team" data-section="team">
<SectionErrorBoundary name="team">
<TeamListCards
tag="Wedding Party"
title="Our Amazing Friends"
description="The people who have been there through it all and will stand by our side."
groups={[
{
title: "Bridesmaids", members: [
{
name: "Sarah Miller", role: "Maid of Honor", detail: "Best friend since college", imageSrc: "http://img.b2bpic.net/free-photo/side-view-women-getting-married_23-2150753674.jpg?_wi=3"},
{
name: "Emily Chen", role: "Bridesmaid", detail: "Partner in crime", imageSrc: "http://img.b2bpic.net/free-photo/portrait-two-attractive-girls-tulle-skirts-sitting-outdoor-stairs-they-smiling_197531-1999.jpg"},
],
},
{
title: "Groomsmen", members: [
{
name: "David Smith", role: "Best Man", detail: "Lifelong brother", imageSrc: "http://img.b2bpic.net/free-photo/beautiful-bride-groom-having-their-wedding-with-guests-beach_23-2149044022.jpg"},
{
name: "Kevin Lee", role: "Groomsman", detail: "Supportive friend", imageSrc: "http://img.b2bpic.net/free-photo/portrait-handsome-stylish-smiling-male-elegant-black-suit-dark-background_613910-14629.jpg"},
],
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,32 @@
// 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 TestimonialMarqueeCards from '@/components/sections/testimonial/TestimonialMarqueeCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function TestimonialsSection(): React.JSX.Element {
return (
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialMarqueeCards
tag="Well Wishes"
title="From Our Loved Ones"
description="Some words from our wonderful friends and family."
testimonials={[
{
name: "Sarah J.", role: "Guest", quote: "Can't wait to see you two tie the knot!", imageSrc: "http://img.b2bpic.net/free-photo/happy-men-bachelor-party_23-2149275499.jpg"},
{
name: "Mike R.", role: "Guest", quote: "The wedding of the century!", imageSrc: "http://img.b2bpic.net/free-photo/beautiful-lesbian-couple-celebrating-their-wedding-day-outdoors_23-2150637581.jpg"},
{
name: "Emma L.", role: "Guest", quote: "You both are truly meant for each other.", imageSrc: "http://img.b2bpic.net/free-photo/side-view-women-getting-married_23-2150753663.jpg"},
{
name: "David W.", role: "Guest", quote: "So happy for you two beautiful souls.", imageSrc: "http://img.b2bpic.net/free-photo/front-view-bride-posing-with-flowers_23-2149722039.jpg"},
{
name: "Lucy K.", role: "Guest", quote: "Best wishes on your journey together.", imageSrc: "http://img.b2bpic.net/free-photo/man-groom-stylish-suit-posing_1328-5011.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
);
}