Merge version_2_1781469881754 into main #1

Merged
bender merged 1 commits from version_2_1781469881754 into main 2026-06-14 20:46:10 +00:00
10 changed files with 368 additions and 267 deletions

View File

@@ -42,7 +42,7 @@ export default function Layout() {
<SiteBackgroundSlot />
<SectionErrorBoundary name="navbar">
<NavbarDropdown
logo="Hajati"
logo="HAJATI"
ctaButton={{
text: "Shop Now",
href: "#products",

View File

@@ -1,278 +1,36 @@
import AboutMediaOverlay from '@/components/sections/about/AboutMediaOverlay';
import ContactCta from '@/components/sections/contact/ContactCta';
import FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia';
import FeaturesRevealCards from '@/components/sections/features/FeaturesRevealCards';
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
import HeroSplitVerticalMarquee from '@/components/sections/hero/HeroSplitVerticalMarquee';
import MetricsMediaCards from '@/components/sections/metrics/MetricsMediaCards';
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 AboutSection from './HomePage/sections/About';
import FeaturesSection from './HomePage/sections/Features';
import ProductsSection from './HomePage/sections/Products';
import MetricsSection from './HomePage/sections/Metrics';
import TestimonialsSection from './HomePage/sections/Testimonials';
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="Love in Every Detail"
title="Hajati: Floral Jewelry for Couples"
description="Celebrate your bond with our exclusively curated flower-inspired necklace sets. Elegance, connection, and timeless design."
primaryButton={{
text: "Shop Collections",
href: "#products",
}}
secondaryButton={{
text: "Our Story",
href: "#about",
}}
leftItems={[
{
imageSrc: "http://img.b2bpic.net/free-photo/still-life-aesthetic-earrings_23-2149649095.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/wedding-ring-with-ceramic-human-heart-table_23-2148017905.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/vertical-closeup-shot-bride-wearing-delicate-choker-necklace_181624-21214.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/couple-winter_1157-4363.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/wedding-accessories-bride-wedding-rings-wedding-dress_8353-10441.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/man-holds-woman-dressed-30s-style-tender-standing-old-street_8353-7461.jpg",
},
]}
rightItems={[
{
imageSrc: "http://img.b2bpic.net/free-photo/valentines-day-romantic-man-hand-holding-engagement-ring-box_114579-421.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/side-view-sensitive-man-posing-with-flowers_23-2149486760.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/two-identical-wedding-rings-lie-wedding-bouquet_8353-10438.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/young-couple-love_1004-16.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-woman-smiling-holding-valentines-day-bouquet-red-roses_23-2149216120.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/man-smelling-flowers-close-up_23-2148867036.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<>
<HeroSection />
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutMediaOverlay
tag="Our Philosophy"
title="Handcrafted for Love"
description="At Hajati, we believe flowers represent the delicate and unfolding nature of a couple's journey. Each piece is designed to tell a unique story."
imageSrc="http://img.b2bpic.net/free-photo/craftswoman-using-blow-torch-workshop_107420-65295.jpg"
/>
</SectionErrorBoundary>
</div>
<AboutSection />
<div id="features" data-section="features">
<SectionErrorBoundary name="features">
<FeaturesRevealCards
tag="Why Hajati?"
title="Excellence in Design"
description="We ensure every piece reflects the premium quality your relationship deserves."
items={[
{
title: "Premium Materials",
description: "High-quality, durable gold and silver finishes.",
imageSrc: "http://img.b2bpic.net/free-photo/top-view-golden-chains-arrangement_23-2149836478.jpg",
},
{
title: "Gift-Ready",
description: "Every order arrives in a beautiful, romantic box.",
imageSrc: "http://img.b2bpic.net/free-photo/elegant-couple-home-near-christmas-tree_1157-42877.jpg",
},
{
title: "Fast Shipping",
description: "Delivered to your door with care and speed.",
imageSrc: "http://img.b2bpic.net/free-photo/wedding-rings-white-background_1303-10487.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<FeaturesSection />
<div id="products" data-section="products">
<SectionErrorBoundary name="products">
<FeaturesRevealCardsBento
tag="Jewelry Collections"
title="Couple Necklaces"
description="Browse our curated selection of flower-themed sets for you and your partner."
items={[
{
title: "Rose Eternal",
description: "Symbol of passion.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/painted-coral-peonies-flowers-starfish-clams-mint-background_23-2148102303.jpg",
},
{
title: "Daisy Bond",
description: "Loyalty in bloom.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-vector/variety-retro-flower-wreaths-with-love-messages_23-2147596267.jpg",
},
{
title: "Sunflower Vow",
description: "Always looking for you.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/close-up-happy-couple-with-candy_23-2149266156.jpg",
},
{
title: "Lotus Harmony",
description: "Pure love connection.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/crop-couple-love-walking-beach_23-2147738299.jpg",
},
{
title: "Lavender Peace",
description: "Serenity together.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/female-artist-drawing-heena-woman-s-chest-ramadan_23-2148083021.jpg",
},
{
title: "Cherry Spirit",
description: "Fleeting beautiful moments.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/statice-flower_1339-3251.jpg",
},
{
title: "Orchid Elegance",
description: "Exquisite grace.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/loving-woman-excited-with-present-from-man_23-2147736657.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<ProductsSection />
<div id="metrics" data-section="metrics">
<SectionErrorBoundary name="metrics">
<MetricsMediaCards
tag="Trusted by Many"
title="Celebrating Love Globally"
description="Join thousands of couples sharing their love through our jewelry."
metrics={[
{
value: "10k+",
title: "Happy Couples",
description: "Sharing love every day.",
imageSrc: "http://img.b2bpic.net/free-photo/happiness-asian-caucasian-marry-travel-couple-wearing-casual-cloth-enjoy-unpack-suitcase-luggage-selfie-together-floor-with-joyful-laugh-smile-travel-vacation-concept_609648-2059.jpg",
},
{
value: "50+",
title: "Floral Designs",
description: "Unique jewelry styles.",
imageSrc: "http://img.b2bpic.net/free-photo/stylish-friends-sitting-beach_273609-5463.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<MetricsSection />
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialRatingCards
tag="Testimonials"
title="Loved by Couples"
description="Hear what our happy customers have to say about our sets."
testimonials={[
{
name: "Anna S.",
role: "Customer",
quote: "The most beautiful necklace we've ever shared.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/young-couple-wearing-chain-necklace_23-2149490541.jpg",
},
{
name: "Mark L.",
role: "Customer",
quote: "Perfect gift for our anniversary.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/proposal-restaurant_1098-12875.jpg",
},
{
name: "Julia V.",
role: "Customer",
quote: "Elegant design and wonderful quality.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-happy-cute-sexy-brunette-woman-casual-black-dress-with-red-lips-white-background_158538-9189.jpg",
},
{
name: "Chris B.",
role: "Customer",
quote: "Stunning floral detail, my partner loved it.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/close-up-loving-couple-enjoying-together_1153-1579.jpg",
},
{
name: "Sara D.",
role: "Customer",
quote: "Fast shipping and fantastic customer care.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/woman-with-bright-shopping-bags-credit-card_23-2147957920.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<TestimonialsSection />
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqSplitMedia
tag="Common Questions"
title="Need Help?"
description="We are here to answer your questions about our collections."
items={[
{
question: "What is the material?",
answer: "Premium plated steel and sterling silver options.",
},
{
question: "Do you ship worldwide?",
answer: "Yes, we ship globally.",
},
{
question: "How long is shipping?",
answer: "Usually 3-7 business days.",
},
]}
imageSrc="http://img.b2bpic.net/free-photo/jewelry-maker-working-alone-atelier_23-2149025955.jpg"
/>
</SectionErrorBoundary>
</div>
<FaqSection />
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Get In Touch"
text="Ready to celebrate your love with Hajati? Contact our support team for any queries."
primaryButton={{
text: "Contact Support",
href: "mailto:hello@hajati.com",
}}
secondaryButton={{
text: "Follow Us",
href: "#",
}}
/>
</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 Philosophy"
title="Handcrafted for Love"
description="At Hajati, we believe flowers represent the delicate and unfolding nature of a couple's journey. Each piece is designed to tell a unique story."
imageSrc="http://img.b2bpic.net/free-photo/craftswoman-using-blow-torch-workshop_107420-65295.jpg"
/>
</SectionErrorBoundary>
</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 "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="Get In Touch"
text="Ready to celebrate your love with Hajati? Contact our support team for any queries."
primaryButton={{
text: "Contact Support",
href: "mailto:hello@hajati.com",
}}
secondaryButton={{
text: "Follow Us",
href: "#",
}}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,35 @@
// 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 FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function FaqSection(): React.JSX.Element {
return (
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqSplitMedia
tag="Common Questions"
title="Need Help?"
description="We are here to answer your questions about our collections."
items={[
{
question: "What is the material?",
answer: "Premium plated steel and sterling silver options.",
},
{
question: "Do you ship worldwide?",
answer: "Yes, we ship globally.",
},
{
question: "How long is shipping?",
answer: "Usually 3-7 business days.",
},
]}
imageSrc="http://img.b2bpic.net/free-photo/jewelry-maker-working-alone-atelier_23-2149025955.jpg"
/>
</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 "features" section.
import React from 'react';
import FeaturesRevealCards from '@/components/sections/features/FeaturesRevealCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function FeaturesSection(): React.JSX.Element {
return (
<div id="features" data-section="features">
<SectionErrorBoundary name="features">
<FeaturesRevealCards
tag="Why Hajati?"
title="Excellence in Design"
description="We ensure every piece reflects the premium quality your relationship deserves."
items={[
{
title: "Premium Materials",
description: "High-quality, durable gold and silver finishes.",
imageSrc: "http://img.b2bpic.net/free-photo/top-view-golden-chains-arrangement_23-2149836478.jpg",
},
{
title: "Gift-Ready",
description: "Every order arrives in a beautiful, romantic box.",
imageSrc: "http://img.b2bpic.net/free-photo/elegant-couple-home-near-christmas-tree_1157-42877.jpg",
},
{
title: "Fast Shipping",
description: "Delivered to your door with care and speed.",
imageSrc: "http://img.b2bpic.net/free-photo/wedding-rings-white-background_1303-10487.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,68 @@
// 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="Love in Every Detail"
title="HAJATI: Floral Jewelry for Couples"
description="Celebrate your bond with our exclusively curated flower-inspired necklace sets. Elegance, connection, and timeless design."
primaryButton={{
text: "Shop Collections",
href: "#products",
}}
secondaryButton={{
text: "Our Story",
href: "#about",
}}
leftItems={[
{
imageSrc: "http://img.b2bpic.net/free-photo/still-life-aesthetic-earrings_23-2149649095.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/wedding-ring-with-ceramic-human-heart-table_23-2148017905.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/vertical-closeup-shot-bride-wearing-delicate-choker-necklace_181624-21214.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/couple-winter_1157-4363.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/wedding-accessories-bride-wedding-rings-wedding-dress_8353-10441.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/man-holds-woman-dressed-30s-style-tender-standing-old-street_8353-7461.jpg",
},
]}
rightItems={[
{
imageSrc: "http://img.b2bpic.net/free-photo/valentines-day-romantic-man-hand-holding-engagement-ring-box_114579-421.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/side-view-sensitive-man-posing-with-flowers_23-2149486760.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/two-identical-wedding-rings-lie-wedding-bouquet_8353-10438.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/young-couple-love_1004-16.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-woman-smiling-holding-valentines-day-bouquet-red-roses_23-2149216120.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/man-smelling-flowers-close-up_23-2148867036.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 "metrics" section.
import React from 'react';
import MetricsMediaCards from '@/components/sections/metrics/MetricsMediaCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function MetricsSection(): React.JSX.Element {
return (
<div id="metrics" data-section="metrics">
<SectionErrorBoundary name="metrics">
<MetricsMediaCards
tag="Trusted by Many"
title="Celebrating Love Globally"
description="Join thousands of couples sharing their love through our jewelry."
metrics={[
{
value: "10k+",
title: "Happy Couples",
description: "Sharing love every day.",
imageSrc: "http://img.b2bpic.net/free-photo/happiness-asian-caucasian-marry-travel-couple-wearing-casual-cloth-enjoy-unpack-suitcase-luggage-selfie-together-floor-with-joyful-laugh-smile-travel-vacation-concept_609648-2059.jpg",
},
{
value: "50+",
title: "Floral Designs",
description: "Unique jewelry styles.",
imageSrc: "http://img.b2bpic.net/free-photo/stylish-friends-sitting-beach_273609-5463.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,64 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "products" section.
import React from 'react';
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function ProductsSection(): React.JSX.Element {
return (
<div id="products" data-section="products">
<SectionErrorBoundary name="products">
<FeaturesRevealCardsBento
tag="Jewelry Collections"
title="Couple Necklaces"
description="Browse our curated selection of flower-themed sets for you and your partner."
items={[
{
title: "Rose Eternal",
description: "Symbol of passion.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/painted-coral-peonies-flowers-starfish-clams-mint-background_23-2148102303.jpg",
},
{
title: "Daisy Bond",
description: "Loyalty in bloom.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-vector/variety-retro-flower-wreaths-with-love-messages_23-2147596267.jpg",
},
{
title: "Sunflower Vow",
description: "Always looking for you.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/close-up-happy-couple-with-candy_23-2149266156.jpg",
},
{
title: "Lotus Harmony",
description: "Pure love connection.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/crop-couple-love-walking-beach_23-2147738299.jpg",
},
{
title: "Lavender Peace",
description: "Serenity together.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/female-artist-drawing-heena-woman-s-chest-ramadan_23-2148083021.jpg",
},
{
title: "Cherry Spirit",
description: "Fleeting beautiful moments.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/statice-flower_1339-3251.jpg",
},
{
title: "Orchid Elegance",
description: "Exquisite grace.",
href: "#",
imageSrc: "http://img.b2bpic.net/free-photo/loving-woman-excited-with-present-from-man_23-2147736657.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 "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="Loved by Couples"
description="Hear what our happy customers have to say about our sets."
testimonials={[
{
name: "Anna S.",
role: "Customer",
quote: "The most beautiful necklace we've ever shared.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/young-couple-wearing-chain-necklace_23-2149490541.jpg",
},
{
name: "Mark L.",
role: "Customer",
quote: "Perfect gift for our anniversary.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/proposal-restaurant_1098-12875.jpg",
},
{
name: "Julia V.",
role: "Customer",
quote: "Elegant design and wonderful quality.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-happy-cute-sexy-brunette-woman-casual-black-dress-with-red-lips-white-background_158538-9189.jpg",
},
{
name: "Chris B.",
role: "Customer",
quote: "Stunning floral detail, my partner loved it.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/close-up-loving-couple-enjoying-together_1153-1579.jpg",
},
{
name: "Sara D.",
role: "Customer",
quote: "Fast shipping and fantastic customer care.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/woman-with-bright-shopping-bags-credit-card_23-2147957920.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}