Merge version_2_1782169200670 into main #2

Merged
bender merged 2 commits from version_2_1782169200670 into main 2026-06-22 23:02:15 +00:00
6 changed files with 146 additions and 91 deletions

View File

@@ -1,100 +1,27 @@
import ContactCta from '@/components/sections/contact/ContactCta';
import FeaturesDetailedCards from '@/components/sections/features/FeaturesDetailedCards';
import HeroSplit from '@/components/sections/hero/HeroSplit';
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
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 SocialProofSection from './HomePage/sections/SocialProof';
import ServicesSection from './HomePage/sections/Services';
import TestimonialsSection from './HomePage/sections/Testimonials';
import CtaSection from './HomePage/sections/Cta';
export default function HomePage(): React.JSX.Element {
return (
<>
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroSplit
tag="HOSUR & BANGALORE · WEDDING & DESTINATION FILMS"
title="Every Frame, A Story Worth Keeping."
description="We capture weddings, love stories, portraits, and brand films — raw, real, and cinematic. Based in Hosur & Bangalore, shooting across South India."
primaryButton={{
text: "View Portfolio", href: "/portfolio"}}
secondaryButton={{
text: "Book a Shoot", href: "/book"}}
imageSrc="http://img.b2bpic.net/free-photo/diwali-festival-lights-tradition_23-2148688458.jpg"
/>
</SectionErrorBoundary>
</div>
<>
<HeroSection />
<div id="social-proof" data-section="social-proof">
<SectionErrorBoundary name="social-proof">
<SocialProofMarquee
tag="What Clients Say"
title="Stories Captured"
description="Trusted by couples across the region."
names={[
"Gangeshwaran was really patient — felt like a family experience · ⭐⭐⭐⭐⭐", "You deserve a 5-star rating · ⭐⭐⭐⭐⭐", "Photography at our Mehandi was exceptional · ⭐⭐⭐⭐⭐", "Naturally captured every single moment · ⭐⭐⭐⭐⭐", "Outstanding work — too happy with the results · ⭐⭐⭐⭐⭐"]}
/>
</SectionErrorBoundary>
</div>
<SocialProofSection />
<div id="services" data-section="services">
<SectionErrorBoundary name="services">
<FeaturesDetailedCards
tag="What We Create"
title="From intimate weddings to world-class brand films."
description="Our work is defined by patience, respect for the moment, and an obsession with light."
items={[
{
title: "Weddings", description: "Candid, traditional, and cinematic coverage of your most sacred day.", tags: ["Weddings", "Candid", "Cinematic"],
imageSrc: "http://img.b2bpic.net/free-photo/veil-covers-bride-s-face-tender-while-she-stands-before-window_8353-8405.jpg"},
{
title: "Pre-Wedding & Couples", description: "Love stories told across stunning locations — beaches, temples, cities, fields.", tags: ["Couples", "Pre-wedding"],
imageSrc: "http://img.b2bpic.net/free-photo/couple-kissing-sunset_1153-8901.jpg"},
{
title: "Bridal & Portraits", description: "Timeless portraits that capture beauty, grace, and personality.", tags: ["Bridal", "Portraits"],
imageSrc: "http://img.b2bpic.net/free-photo/portrait-handsome-man-with-long-blonde-hair-wearing-red-jacket_23-2149020145.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
<ServicesSection />
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialRatingCards
tag="Testimonials"
title="What Clients Say"
description="Rated 5★ across all client reviews."
testimonials={[
{
name: "Vidya Sree", role: "Client", quote: "Your photography at our cousin's Mehandi was exceptional, capturing the essence of each moment with remarkable skill.", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-woman-wearing-minimalist-shirt_23-2149317771.jpg"},
{
name: "Madhumitha Prakash", role: "Client", quote: "We really loved your work and all the moments are amazingly captured. You didn't even interrupt us during the pooja.", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/portrait-fashionable-boy-front-white-curtain_23-2148184871.jpg"},
{
name: "Anonymous Client", role: "Client", quote: "Gangeshwaran was really patient taking every photo. We truly felt a family-like experience with him.", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/portrait-stylish-woman-posing-fashionable-outfit_23-2149021799.jpg"},
{
name: "Anonymous Client", role: "Client", quote: "Dear Gangesh, you deserve a 5-star rating. You take incredible photos. The pictures were delivered in a lovely way.", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/confident-beautiful-young-businesswoman-looking-camera-head-shot-portrait_1163-4928.jpg"},
{
name: "Anonymous Client", role: "Client", quote: "Highly recommended for any functions. Capturing every single moment naturally.", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/portrait-blonde-short-haired-woman-posing-white-shirt_23-2149021781.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
<TestimonialsSection />
<div id="cta" data-section="cta">
<SectionErrorBoundary name="cta">
<ContactCta
tag="Book Now"
text="Your Story Deserves to Be Told Right. Let's create something unforgettable together."
primaryButton={{
text: "Book a Shoot", href: "/book"}}
secondaryButton={{
text: "WhatsApp Us", href: "https://wa.me/918608824373"}}
/>
</SectionErrorBoundary>
</div>
<CtaSection />
</>
);
}

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 "cta" section.
import React from 'react';
import ContactCta from '@/components/sections/contact/ContactCta';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function CtaSection(): React.JSX.Element {
return (
<div id="cta" data-section="cta">
<SectionErrorBoundary name="cta">
<ContactCta
tag="Book Now"
text="Your Story Deserves to Be Told Right. Let's create something unforgettable together."
primaryButton={{
text: "Book a Shoot", href: "/book"}}
secondaryButton={{
text: "WhatsApp Us", href: "https://wa.me/918608824373"}}
/>
</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 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="HOSUR & BANGALORE · WEDDING & DESTINATION FILMS"
title="Every Frame, A Story Worth Keeping."
description="We capture weddings, love stories, portraits, and brand films — raw, real, and cinematic. Based in Hosur & Bangalore, shooting across South India."
primaryButton={{
text: "View Portfolio", href: "/portfolio"}}
secondaryButton={{
text: "Book a Shoot", href: "/book"}}
imageSrc="https://storage.googleapis.com/webild/users/user_3FVmhOgWYvShRUgYIi5bDppvMaQ/uploaded-1782169199091-zymc34rg.png"
/>
</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 "services" section.
import React from 'react';
import FeaturesDetailedCards from '@/components/sections/features/FeaturesDetailedCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function ServicesSection(): React.JSX.Element {
return (
<div id="services" data-section="services">
<SectionErrorBoundary name="services">
<FeaturesDetailedCards
tag="What We Create"
title="From intimate weddings to world-class brand films."
description="Our work is defined by patience, respect for the moment, and an obsession with light."
items={[{"title":"Weddings","tags":["Weddings","Candid","Cinematic"],"imageSrc":"https://storage.googleapis.com/webild/users/user_3FVmhOgWYvShRUgYIi5bDppvMaQ/uploaded-1782169199093-z3qkw9gl.png","description":"Candid, traditional, and cinematic coverage of your most sacred day."},{"title":"Pre-Wedding & Couples","tags":["Couples","Pre-wedding"],"imageSrc":"https://storage.googleapis.com/webild/users/user_3FVmhOgWYvShRUgYIi5bDppvMaQ/uploaded-1782169199095-jpv8caji.png","description":"Love stories told across stunning locations — beaches, temples, cities, fields."},{"tags":["Bridal","Portraits"],"title":"Bridal & Portraits","imageSrc":"https://storage.googleapis.com/webild/users/user_3FVmhOgWYvShRUgYIi5bDppvMaQ/uploaded-1782169199096-jyxiofdx.png","description":"Timeless portraits that capture beauty, grace, and personality."}]}
/>
</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="What Clients Say"
title="Stories Captured"
description="Trusted by couples across the region."
names={[
"Gangeshwaran was really patient — felt like a family experience · ⭐⭐⭐⭐⭐", "You deserve a 5-star rating · ⭐⭐⭐⭐⭐", "Photography at our Mehandi was exceptional · ⭐⭐⭐⭐⭐", "Naturally captured every single moment · ⭐⭐⭐⭐⭐", "Outstanding work — too happy with the results · ⭐⭐⭐⭐⭐"]}
/>
</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 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="Testimonials"
title="What Clients Say"
description="Rated 5★ across all client reviews."
testimonials={[
{
name: "Vidya Sree", role: "Client", quote: "Your photography at our cousin's Mehandi was exceptional, capturing the essence of each moment with remarkable skill.", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-woman-wearing-minimalist-shirt_23-2149317771.jpg"},
{
name: "Madhumitha Prakash", role: "Client", quote: "We really loved your work and all the moments are amazingly captured. You didn't even interrupt us during the pooja.", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/portrait-fashionable-boy-front-white-curtain_23-2148184871.jpg"},
{
name: "Anonymous Client", role: "Client", quote: "Gangeshwaran was really patient taking every photo. We truly felt a family-like experience with him.", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/portrait-stylish-woman-posing-fashionable-outfit_23-2149021799.jpg"},
{
name: "Anonymous Client", role: "Client", quote: "Dear Gangesh, you deserve a 5-star rating. You take incredible photos. The pictures were delivered in a lovely way.", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/confident-beautiful-young-businesswoman-looking-camera-head-shot-portrait_1163-4928.jpg"},
{
name: "Anonymous Client", role: "Client", quote: "Highly recommended for any functions. Capturing every single moment naturally.", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/portrait-blonde-short-haired-woman-posing-white-shirt_23-2149021781.jpg"},
]}
/>
</SectionErrorBoundary>
</div>
);
}