Merge version_2_1781785863762 into main #2
@@ -1,5 +1,6 @@
|
||||
import FooterSimpleMedia from '@/components/sections/footer/FooterSimpleMedia';
|
||||
import NavbarCentered from '@/components/ui/NavbarCentered';
|
||||
import DropdownMenu from '@/components/ui/DropdownMenu';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
import SiteBackgroundSlot from "@/components/ui/SiteBackgroundSlot";
|
||||
import { Outlet } from 'react-router-dom';
|
||||
@@ -41,13 +42,28 @@ export default function Layout() {
|
||||
<StyleProvider buttonVariant="shift" siteBackground="floatingGradient" heroBackground="gradientBars">
|
||||
<SiteBackgroundSlot />
|
||||
<SectionErrorBoundary name="navbar">
|
||||
<NavbarCentered
|
||||
logo="Human House"
|
||||
ctaButton={{
|
||||
text: "Shop Now",
|
||||
href: "#products",
|
||||
}}
|
||||
navItems={navItems} />
|
||||
<div className="relative z-50">
|
||||
<NavbarCentered
|
||||
logo="Human House"
|
||||
ctaButton={{
|
||||
text: "Shop Now",
|
||||
href: "#products",
|
||||
}}
|
||||
navItems={navItems}
|
||||
/>
|
||||
<div className="absolute top-4 right-40 z-50 hidden md:block">
|
||||
<DropdownMenu
|
||||
options={[
|
||||
{ label: 'ENG', value: 'eng' },
|
||||
{ label: 'UZB', value: 'uzb' },
|
||||
{ label: 'RUS', value: 'rus' }
|
||||
]}
|
||||
value="eng"
|
||||
onChange={(val) => console.log('Language changed to:', val)}
|
||||
className="w-24 bg-background/80 backdrop-blur-sm border-border"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</SectionErrorBoundary>
|
||||
<main className="flex-grow">
|
||||
<Outlet />
|
||||
|
||||
@@ -1,262 +1,36 @@
|
||||
import AboutMediaOverlay from '@/components/sections/about/AboutMediaOverlay';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import FaqTabbedAccordion from '@/components/sections/faq/FaqTabbedAccordion';
|
||||
import FeaturesMediaCarousel from '@/components/sections/features/FeaturesMediaCarousel';
|
||||
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
|
||||
import HeroCenteredLogos from '@/components/sections/hero/HeroCenteredLogos';
|
||||
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
|
||||
import TestimonialOverlayCards from '@/components/sections/testimonial/TestimonialOverlayCards';
|
||||
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 TestimonialsSection from './HomePage/sections/Testimonials';
|
||||
import ProofSection from './HomePage/sections/Proof';
|
||||
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">
|
||||
<HeroCenteredLogos
|
||||
avatarsSrc={[
|
||||
"http://img.b2bpic.net/free-photo/woman-resting-her-art-studio_273609-12942.jpg",
|
||||
"http://img.b2bpic.net/free-photo/side-view-woman-checking-natural-pigmented-cloths_23-2148734283.jpg",
|
||||
"http://img.b2bpic.net/free-photo/medium-shot-man-holding-plate_23-2148986267.jpg",
|
||||
"http://img.b2bpic.net/free-photo/woman-buying-stuff-decoration-store_1303-24634.jpg",
|
||||
]}
|
||||
avatarText="Join our community of culture lovers"
|
||||
title="Human House: Traditions of Central Asia"
|
||||
description="Discover unique hand-crafted collections that embody the spirit, traditions, and rich character of people living across Central Asia."
|
||||
primaryButton={{
|
||||
text: "Explore Collection",
|
||||
href: "#products",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Our Story",
|
||||
href: "#about",
|
||||
}}
|
||||
names={[
|
||||
"Cultural Enthusiasts",
|
||||
"Artisans",
|
||||
"Collectors",
|
||||
"Designers",
|
||||
]}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/round-shelf-with-vessels_116348-46.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<>
|
||||
<HeroSection />
|
||||
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutMediaOverlay
|
||||
tag="Our Essence"
|
||||
title="Heart of the Silk Road"
|
||||
description="Human House Shop collections are full of traditions and characters of people living in Central Asia. We bridge the gap between ancient craftsmanship and contemporary living through thoughtfully curated, handmade goods."
|
||||
imageSrc="http://img.b2bpic.net/free-photo/person-working-embroidery-workshop_23-2148970773.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<AboutSection />
|
||||
|
||||
<div id="features" data-section="features">
|
||||
<SectionErrorBoundary name="features">
|
||||
<FeaturesMediaCarousel
|
||||
tag="Craftsmanship"
|
||||
title="A Life of Tradition"
|
||||
description="Experience the intricate details of life in Central Asia through our artisanal features."
|
||||
items={[
|
||||
{
|
||||
title: "Ceramic Heritage",
|
||||
description: "Centuries of pottery technique.",
|
||||
buttonIcon: "Palette",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/cactus-plant-lemon-mint-tea-cup-oriental-floral-design-textured-backdrop_23-2148123977.jpg?_wi=1",
|
||||
},
|
||||
{
|
||||
title: "Woven Stories",
|
||||
description: "Ancient textiles telling tales.",
|
||||
buttonIcon: "Layers",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/carpets-market-marrakech_23-2148129866.jpg",
|
||||
},
|
||||
{
|
||||
title: "Artisan Woodcraft",
|
||||
description: "Carving beauty into every piece.",
|
||||
buttonIcon: "Hammer",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/two-ancient-kettles-with-empty-wooden-plate-burlap_114579-40135.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<FeaturesSection />
|
||||
|
||||
<div id="products" data-section="products">
|
||||
<SectionErrorBoundary name="products">
|
||||
<FeaturesRevealCardsBento
|
||||
tag="Curated Shop"
|
||||
title="Explore Our Collections"
|
||||
description="Find authentic pieces for your home and lifestyle."
|
||||
items={[
|
||||
{
|
||||
title: "Ceramic Bowls",
|
||||
description: "Hand-painted clay artisan bowls.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/still-life-with-plants-deco_23-2149192267.jpg",
|
||||
},
|
||||
{
|
||||
title: "Embroidered Cushions",
|
||||
description: "Silk and cotton traditional patterns.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/fabric-background-with-floral-pattern_1385-1976.jpg",
|
||||
},
|
||||
{
|
||||
title: "Wall Hanging",
|
||||
description: "Intricate traditional weave decor.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/circular-clock-indoors-still-life_23-2150436161.jpg",
|
||||
},
|
||||
{
|
||||
title: "Copper Jugs",
|
||||
description: "Hand-hammered heritage water jugs.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/craftswoman-working-workshop_107420-65186.jpg",
|
||||
},
|
||||
{
|
||||
title: "Leather Accessories",
|
||||
description: "Traditional motifs on leather.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/top-view-beautiful-rpg-still-life-items_23-2149282419.jpg",
|
||||
},
|
||||
{
|
||||
title: "Tea Ware",
|
||||
description: "Traditional ceramic tea sets.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-cups-wooden-board_23-2149860577.jpg",
|
||||
},
|
||||
{
|
||||
title: "Wool Carpets",
|
||||
description: "Warm artisanal floor rugs.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/intricate-gold-mosaic-facade-wat-phra-kaew-temple_1308-189361.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ProductsSection />
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialOverlayCards
|
||||
tag="Testimonials"
|
||||
title="Loved by Our Community"
|
||||
description="Hear what our patrons and artisan partners have to say."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Anna S.",
|
||||
role: "Collector",
|
||||
company: "Human House Fan",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/woman-with-headband_155996-38.jpg",
|
||||
},
|
||||
{
|
||||
name: "Marco V.",
|
||||
role: "Architect",
|
||||
company: "V Studio",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/shoemaker-work_1321-2749.jpg",
|
||||
},
|
||||
{
|
||||
name: "Elena K.",
|
||||
role: "Interior Designer",
|
||||
company: "K Design",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/front-view-smiley-woman-posing-studio_23-2150104881.jpg",
|
||||
},
|
||||
{
|
||||
name: "Sanjay D.",
|
||||
role: "Visitor",
|
||||
company: "Cultural Explorer",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/seller-shows-ripe-fruits-veggies_482257-76484.jpg",
|
||||
},
|
||||
{
|
||||
name: "Leila F.",
|
||||
role: "Local Artisan",
|
||||
company: "Handmade Guild",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/talented-woman-working-with-japanese-paper_23-2149048411.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<TestimonialsSection />
|
||||
|
||||
<div id="proof" data-section="proof">
|
||||
<SectionErrorBoundary name="proof">
|
||||
<SocialProofMarquee
|
||||
tag="Global Recognition"
|
||||
title="Honoring Craft Worldwide"
|
||||
description="Trusted by heritage groups and design studios."
|
||||
names={[
|
||||
"Craft Heritage Guild",
|
||||
"Silk Road Arts",
|
||||
"Central Asian Design Council",
|
||||
"Global Artisan Collective",
|
||||
"Modern Folk Gallery",
|
||||
"Nomadic Soul Interior",
|
||||
"Heritage Daily",
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ProofSection />
|
||||
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqTabbedAccordion
|
||||
tag="Help"
|
||||
title="Frequently Asked Questions"
|
||||
description="Everything you need to know about our sourcing."
|
||||
categories={[
|
||||
{
|
||||
name: "Shipping",
|
||||
items: [
|
||||
{
|
||||
question: "Do you ship worldwide?",
|
||||
answer: "Yes, we ship globally.",
|
||||
},
|
||||
{
|
||||
question: "How long is shipping?",
|
||||
answer: "Average 10-14 days.",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "Sourcing",
|
||||
items: [
|
||||
{
|
||||
question: "Where are goods made?",
|
||||
answer: "Handmade in Central Asia.",
|
||||
},
|
||||
{
|
||||
question: "Are pieces fair trade?",
|
||||
answer: "Always fair wages.",
|
||||
},
|
||||
],
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<FaqSection />
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<ContactCta
|
||||
tag="Contact Us"
|
||||
text="Have a specific request or looking to partner?"
|
||||
primaryButton={{
|
||||
text: "Get in touch",
|
||||
href: "#",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Follow us",
|
||||
href: "#",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ContactSection />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
21
src/pages/HomePage/sections/About.tsx
Normal file
21
src/pages/HomePage/sections/About.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 "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 Essence"
|
||||
title="Heart of the Silk Road"
|
||||
description="Human House Shop collections are full of traditions and characters of people living in Central Asia. We bridge the gap between ancient craftsmanship and contemporary living through thoughtfully curated, handmade goods."
|
||||
imageSrc="http://img.b2bpic.net/free-photo/person-working-embroidery-workshop_23-2148970773.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
27
src/pages/HomePage/sections/Contact.tsx
Normal file
27
src/pages/HomePage/sections/Contact.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 "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="Contact Us"
|
||||
text="Have a specific request or looking to partner?"
|
||||
primaryButton={{
|
||||
text: "Get in touch",
|
||||
href: "#",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Follow us",
|
||||
href: "#",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
48
src/pages/HomePage/sections/Faq.tsx
Normal file
48
src/pages/HomePage/sections/Faq.tsx
Normal file
@@ -0,0 +1,48 @@
|
||||
// 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="Help"
|
||||
title="Frequently Asked Questions"
|
||||
description="Everything you need to know about our sourcing."
|
||||
categories={[
|
||||
{
|
||||
name: "Shipping",
|
||||
items: [
|
||||
{
|
||||
question: "Do you ship worldwide?",
|
||||
answer: "Yes, we ship globally.",
|
||||
},
|
||||
{
|
||||
question: "How long is shipping?",
|
||||
answer: "Average 10-14 days.",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "Sourcing",
|
||||
items: [
|
||||
{
|
||||
question: "Where are goods made?",
|
||||
answer: "Handmade in Central Asia.",
|
||||
},
|
||||
{
|
||||
question: "Are pieces fair trade?",
|
||||
answer: "Always fair wages.",
|
||||
},
|
||||
],
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
40
src/pages/HomePage/sections/Features.tsx
Normal file
40
src/pages/HomePage/sections/Features.tsx
Normal file
@@ -0,0 +1,40 @@
|
||||
// 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 FeaturesMediaCarousel from '@/components/sections/features/FeaturesMediaCarousel';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function FeaturesSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="features" data-section="features">
|
||||
<SectionErrorBoundary name="features">
|
||||
<FeaturesMediaCarousel
|
||||
tag="Craftsmanship"
|
||||
title="A Life of Tradition"
|
||||
description="Experience the intricate details of life in Central Asia through our artisanal features."
|
||||
items={[
|
||||
{
|
||||
title: "Ceramic Heritage",
|
||||
description: "Centuries of pottery technique.",
|
||||
buttonIcon: "Palette",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/cactus-plant-lemon-mint-tea-cup-oriental-floral-design-textured-backdrop_23-2148123977.jpg?_wi=1",
|
||||
},
|
||||
{
|
||||
title: "Woven Stories",
|
||||
description: "Ancient textiles telling tales.",
|
||||
buttonIcon: "Layers",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/carpets-market-marrakech_23-2148129866.jpg",
|
||||
},
|
||||
{
|
||||
title: "Artisan Woodcraft",
|
||||
description: "Carving beauty into every piece.",
|
||||
buttonIcon: "Hammer",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/two-ancient-kettles-with-empty-wooden-plate-burlap_114579-40135.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
41
src/pages/HomePage/sections/Hero.tsx
Normal file
41
src/pages/HomePage/sections/Hero.tsx
Normal file
@@ -0,0 +1,41 @@
|
||||
// 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 HeroCenteredLogos from '@/components/sections/hero/HeroCenteredLogos';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function HeroSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroCenteredLogos
|
||||
avatarsSrc={[
|
||||
"http://img.b2bpic.net/free-photo/woman-resting-her-art-studio_273609-12942.jpg",
|
||||
"http://img.b2bpic.net/free-photo/side-view-woman-checking-natural-pigmented-cloths_23-2148734283.jpg",
|
||||
"http://img.b2bpic.net/free-photo/medium-shot-man-holding-plate_23-2148986267.jpg",
|
||||
"http://img.b2bpic.net/free-photo/woman-buying-stuff-decoration-store_1303-24634.jpg",
|
||||
]}
|
||||
avatarText="Join our community of culture lovers"
|
||||
title="Human House: Traditions of Central Asia"
|
||||
description="Discover unique hand-crafted collections that embody the spirit, traditions, and rich character of people living across Central Asia."
|
||||
primaryButton={{
|
||||
text: "Explore Collection",
|
||||
href: "#products",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Our Story",
|
||||
href: "#about",
|
||||
}}
|
||||
names={[
|
||||
"Cultural Enthusiasts",
|
||||
"Artisans",
|
||||
"Collectors",
|
||||
"Designers",
|
||||
]}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/round-shelf-with-vessels_116348-46.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
64
src/pages/HomePage/sections/Products.tsx
Normal file
64
src/pages/HomePage/sections/Products.tsx
Normal 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="Curated Shop"
|
||||
title="Explore Our Collections"
|
||||
description="Find authentic pieces for your home and lifestyle."
|
||||
items={[
|
||||
{
|
||||
title: "Ceramic Bowls",
|
||||
description: "Hand-painted clay artisan bowls.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/still-life-with-plants-deco_23-2149192267.jpg",
|
||||
},
|
||||
{
|
||||
title: "Embroidered Cushions",
|
||||
description: "Silk and cotton traditional patterns.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/fabric-background-with-floral-pattern_1385-1976.jpg",
|
||||
},
|
||||
{
|
||||
title: "Wall Hanging",
|
||||
description: "Intricate traditional weave decor.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/circular-clock-indoors-still-life_23-2150436161.jpg",
|
||||
},
|
||||
{
|
||||
title: "Copper Jugs",
|
||||
description: "Hand-hammered heritage water jugs.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/craftswoman-working-workshop_107420-65186.jpg",
|
||||
},
|
||||
{
|
||||
title: "Leather Accessories",
|
||||
description: "Traditional motifs on leather.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/top-view-beautiful-rpg-still-life-items_23-2149282419.jpg",
|
||||
},
|
||||
{
|
||||
title: "Tea Ware",
|
||||
description: "Traditional ceramic tea sets.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-cups-wooden-board_23-2149860577.jpg",
|
||||
},
|
||||
{
|
||||
title: "Wool Carpets",
|
||||
description: "Warm artisanal floor rugs.",
|
||||
href: "#",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/intricate-gold-mosaic-facade-wat-phra-kaew-temple_1308-189361.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
29
src/pages/HomePage/sections/Proof.tsx
Normal file
29
src/pages/HomePage/sections/Proof.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 "proof" section.
|
||||
|
||||
import React from 'react';
|
||||
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function ProofSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="proof" data-section="proof">
|
||||
<SectionErrorBoundary name="proof">
|
||||
<SocialProofMarquee
|
||||
tag="Global Recognition"
|
||||
title="Honoring Craft Worldwide"
|
||||
description="Trusted by heritage groups and design studios."
|
||||
names={[
|
||||
"Craft Heritage Guild",
|
||||
"Silk Road Arts",
|
||||
"Central Asian Design Council",
|
||||
"Global Artisan Collective",
|
||||
"Modern Folk Gallery",
|
||||
"Nomadic Soul Interior",
|
||||
"Heritage Daily",
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
57
src/pages/HomePage/sections/Testimonials.tsx
Normal file
57
src/pages/HomePage/sections/Testimonials.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 "testimonials" section.
|
||||
|
||||
import React from 'react';
|
||||
import TestimonialOverlayCards from '@/components/sections/testimonial/TestimonialOverlayCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function TestimonialsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialOverlayCards
|
||||
tag="Testimonials"
|
||||
title="Loved by Our Community"
|
||||
description="Hear what our patrons and artisan partners have to say."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Anna S.",
|
||||
role: "Collector",
|
||||
company: "Human House Fan",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/woman-with-headband_155996-38.jpg",
|
||||
},
|
||||
{
|
||||
name: "Marco V.",
|
||||
role: "Architect",
|
||||
company: "V Studio",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/shoemaker-work_1321-2749.jpg",
|
||||
},
|
||||
{
|
||||
name: "Elena K.",
|
||||
role: "Interior Designer",
|
||||
company: "K Design",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/front-view-smiley-woman-posing-studio_23-2150104881.jpg",
|
||||
},
|
||||
{
|
||||
name: "Sanjay D.",
|
||||
role: "Visitor",
|
||||
company: "Cultural Explorer",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/seller-shows-ripe-fruits-veggies_482257-76484.jpg",
|
||||
},
|
||||
{
|
||||
name: "Leila F.",
|
||||
role: "Local Artisan",
|
||||
company: "Handmade Guild",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/talented-woman-working-with-japanese-paper_23-2149048411.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user