Compare commits
3 Commits
version_1_
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| c2271e5a75 | |||
|
|
0efc12759d | ||
| aeea82809a |
@@ -1,318 +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 FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
|
||||
import HeroSplitVerticalMarquee from '@/components/sections/hero/HeroSplitVerticalMarquee';
|
||||
import PricingHighlightedCards from '@/components/sections/pricing/PricingHighlightedCards';
|
||||
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
|
||||
import TestimonialColumnMarqueeCards from '@/components/sections/testimonial/TestimonialColumnMarqueeCards';
|
||||
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 PricingSection from './HomePage/sections/Pricing';
|
||||
import ProofSection from './HomePage/sections/Proof';
|
||||
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="Trusted Retailer"
|
||||
title="Sacred Stories, Quality Stationery, All in One Place"
|
||||
description="Discover authentic mythological books, premium Bookmate notebooks, and Skoodle dustless chalk. Curated collections for spiritual seekers, students, and educators."
|
||||
primaryButton={{
|
||||
text: "Start Shopping",
|
||||
href: "#products",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Learn More",
|
||||
href: "#about",
|
||||
}}
|
||||
leftItems={[
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/workplace-green-desk-with-office-tools_23-2148210364.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/desk-arrangement-with-notebooks-pencils_23-2148745750.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/stationery-desktop_23-2147711401.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/colorful-scene-with-art-nouveau-inspired-creation_23-2151505908.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/vintage-objects-arrangement-still-life_23-2150348587.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/school-supplies-table-composition_23-2148939178.jpg",
|
||||
},
|
||||
]}
|
||||
rightItems={[
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/desk-arrangement-with-different-items_23-2148745764.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-desk-supplies-composition_23-2149511874.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/box-with-books-near-hot-drink-plaid_23-2147887708.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/still-life-with-beautiful-cup-female-hands-intimate-homely-atmosphere-decorative-items_169016-4808.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/stationery-set-with-empty-place-center_23-2147851966.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/view-ancient-paper-scroll-writing-documenting_23-2151751712.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<>
|
||||
<HeroSection />
|
||||
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutMediaOverlay
|
||||
tag="Our Story"
|
||||
title="Preserving Tradition, Enabling Education"
|
||||
description="Narayandas Hemandas is dedicated to bringing quality literature and essential educational tools to your doorstep, bridging culture and classroom with reliable service."
|
||||
imageSrc="http://img.b2bpic.net/free-photo/closeup-stack-antique-books-educational-academic-literary-concept_53876-14670.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<AboutSection />
|
||||
|
||||
<div id="features" data-section="features">
|
||||
<SectionErrorBoundary name="features">
|
||||
<FeaturesComparison
|
||||
tag="Why Choose Us"
|
||||
title="The Better Choice"
|
||||
description="Experience convenience, authenticity, and quality in one place."
|
||||
negativeItems={[
|
||||
"Local market shortages",
|
||||
"Unreliable delivery times",
|
||||
"Counterfeit materials",
|
||||
]}
|
||||
positiveItems={[
|
||||
"Verified authentic books",
|
||||
"Fast nationwide shipping",
|
||||
"Premium quality stationery",
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<FeaturesSection />
|
||||
|
||||
<div id="products" data-section="products">
|
||||
<SectionErrorBoundary name="products">
|
||||
<FeaturesImageBento
|
||||
tag="Our Catalog"
|
||||
title="Curated Collections"
|
||||
description="High-quality essentials for your spiritual and academic journey."
|
||||
items={[
|
||||
{
|
||||
title: "Mythological Books",
|
||||
description: "Authentic spiritual texts.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/public-examination-preparation-concept_23-2149369892.jpg",
|
||||
},
|
||||
{
|
||||
title: "Bookmate Notebooks",
|
||||
description: "Superior paper quality.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/goddess-abundance-nature-art-nouveau-watercolor-illustration_23-2152031260.jpg",
|
||||
},
|
||||
{
|
||||
title: "Skoodle Chalk",
|
||||
description: "Dustless and vibrant.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/crayons-black-background_23-2148193426.jpg",
|
||||
},
|
||||
{
|
||||
title: "Student Stationery",
|
||||
description: "Essentials for learners.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/colorful-pastel-pen-paper-grey-table_176420-4582.jpg",
|
||||
},
|
||||
{
|
||||
title: "Spiritual Journals",
|
||||
description: "Reflective writing tools.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/top-view-colorful-chalk-with-copy-space_23-2148419498.jpg",
|
||||
},
|
||||
{
|
||||
title: "Teacher Supplies",
|
||||
description: "Classroom grade tools.",
|
||||
imageSrc: "https://storage.googleapis.com/webild/default/no-image.jpg?id=z7lxif",
|
||||
},
|
||||
{
|
||||
title: "Gift Sets",
|
||||
description: "Curated packs.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/chalkboard-with-inscription-i-love-my-school_23-2148169465.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ProductsSection />
|
||||
|
||||
<div id="pricing" data-section="pricing">
|
||||
<SectionErrorBoundary name="pricing">
|
||||
<PricingHighlightedCards
|
||||
tag="Value Packs"
|
||||
title="Choose Your Bundle"
|
||||
description="Save on combined sets for your convenience."
|
||||
plans={[
|
||||
{
|
||||
tag: "Basic",
|
||||
price: "$15",
|
||||
description: "Perfect starter kit.",
|
||||
features: [
|
||||
"1 Book",
|
||||
"1 Notebook",
|
||||
],
|
||||
primaryButton: {
|
||||
text: "Buy Now",
|
||||
href: "#",
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: "Student",
|
||||
price: "$30",
|
||||
description: "Complete study pack.",
|
||||
features: [
|
||||
"3 Books",
|
||||
"5 Notebooks",
|
||||
"1 Chalk box",
|
||||
],
|
||||
highlight: "Best Value",
|
||||
primaryButton: {
|
||||
text: "Buy Now",
|
||||
href: "#",
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: "Pro",
|
||||
price: "$50",
|
||||
description: "Advanced collection.",
|
||||
features: [
|
||||
"5 Books",
|
||||
"10 Notebooks",
|
||||
"3 Chalk boxes",
|
||||
],
|
||||
primaryButton: {
|
||||
text: "Buy Now",
|
||||
href: "#",
|
||||
},
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<PricingSection />
|
||||
|
||||
<div id="proof" data-section="proof">
|
||||
<SectionErrorBoundary name="proof">
|
||||
<SocialProofMarquee
|
||||
tag="Trusted By"
|
||||
title="Leading Educational & Spiritual Partners"
|
||||
description="Collaborating with quality organizations across the country."
|
||||
names={[
|
||||
"Bookmate",
|
||||
"Skoodle",
|
||||
"Vidya Books",
|
||||
"Spirit Publishers",
|
||||
"Academic Supplies Co.",
|
||||
"Knowledge House",
|
||||
"Global Learners Inc.",
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ProofSection />
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialColumnMarqueeCards
|
||||
tag="Customer Stories"
|
||||
title="What Our Customers Say"
|
||||
description="Trusted by spiritual seekers and dedicated students nationwide."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Ravi S.",
|
||||
role: "Devotee",
|
||||
quote: "Authentic books, excellent quality.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/happy-woman-holding-book_23-2148973430.jpg",
|
||||
},
|
||||
{
|
||||
name: "Sunita K.",
|
||||
role: "Teacher",
|
||||
quote: "Skoodle chalk is great for my classroom.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/unpleased-showing-thumbs-down-young-female-teacher-wearing-glasses-standing-front-blackboard-classroom_141793-136789.jpg",
|
||||
},
|
||||
{
|
||||
name: "Amit M.",
|
||||
role: "Student",
|
||||
quote: "Bookmate notebooks last forever.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/side-view-woman-reading-book_23-2149966924.jpg",
|
||||
},
|
||||
{
|
||||
name: "Priya V.",
|
||||
role: "Spiritual Seeker",
|
||||
quote: "Wide collection, very helpful service.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-girl-white-t-shirt-holding-hands-together-like-namaste-gesture-looking-camera-with-smile-face_141793-108870.jpg",
|
||||
},
|
||||
{
|
||||
name: "Kiran P.",
|
||||
role: "Principal",
|
||||
quote: "Reliable stationery partner for our school.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/impressed-young-blonde-female-teacher-wearing-glasses-classroom-standing-front-chalkboard-showing-mini-blackboard-looking-it-pointing-it-with-chalk-with-copy-space_141793-105551.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<TestimonialsSection />
|
||||
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqTabbedAccordion
|
||||
tag="Support"
|
||||
title="Frequently Asked Questions"
|
||||
description="Need help? We've got answers."
|
||||
categories={[
|
||||
{
|
||||
name: "Shipping & Delivery",
|
||||
items: [
|
||||
{
|
||||
question: "When will my order arrive?",
|
||||
answer: "Usually within 3-5 business days.",
|
||||
},
|
||||
{
|
||||
question: "Is domestic shipping included?",
|
||||
answer: "Yes, we offer free shipping on orders over $50.",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "Returns",
|
||||
items: [
|
||||
{
|
||||
question: "Can I return products?",
|
||||
answer: "Returns are accepted within 14 days of purchase.",
|
||||
},
|
||||
],
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<FaqSection />
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<ContactCta
|
||||
tag="Get In Touch"
|
||||
text="Ready to enhance your learning or spiritual journey?"
|
||||
primaryButton={{
|
||||
text: "Contact Us",
|
||||
href: "#",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "View All Products",
|
||||
href: "#products",
|
||||
}}
|
||||
/>
|
||||
</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 Story"
|
||||
title="Preserving Tradition, Enabling Education"
|
||||
description="Narayandas Hemandas is dedicated to bringing quality literature and essential educational tools to your doorstep, bridging culture and classroom with reliable service."
|
||||
imageSrc="http://img.b2bpic.net/free-photo/closeup-stack-antique-books-educational-academic-literary-concept_53876-14670.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="Get In Touch"
|
||||
text="Ready to enhance your learning or spiritual journey?"
|
||||
primaryButton={{
|
||||
text: "Contact Us",
|
||||
href: "#",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "View All Products",
|
||||
href: "#products",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
44
src/pages/HomePage/sections/Faq.tsx
Normal file
44
src/pages/HomePage/sections/Faq.tsx
Normal file
@@ -0,0 +1,44 @@
|
||||
// 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="Support"
|
||||
title="Frequently Asked Questions"
|
||||
description="Need help? We've got answers."
|
||||
categories={[
|
||||
{
|
||||
name: "Shipping & Delivery",
|
||||
items: [
|
||||
{
|
||||
question: "When will my order arrive?",
|
||||
answer: "Usually within 3-5 business days.",
|
||||
},
|
||||
{
|
||||
question: "Is domestic shipping included?",
|
||||
answer: "Yes, we offer free shipping on orders over $50.",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "Returns",
|
||||
items: [
|
||||
{
|
||||
question: "Can I return products?",
|
||||
answer: "Returns are accepted within 14 days of purchase.",
|
||||
},
|
||||
],
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
30
src/pages/HomePage/sections/Features.tsx
Normal file
30
src/pages/HomePage/sections/Features.tsx
Normal file
@@ -0,0 +1,30 @@
|
||||
// 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 FeaturesComparison from '@/components/sections/features/FeaturesComparison';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function FeaturesSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="features" data-section="features">
|
||||
<SectionErrorBoundary name="features">
|
||||
<FeaturesComparison
|
||||
tag="Why Choose Us"
|
||||
title="The Better Choice"
|
||||
description="Experience convenience, authenticity, and quality in one place."
|
||||
negativeItems={[
|
||||
"Local market shortages",
|
||||
"Unreliable delivery times",
|
||||
"Counterfeit materials",
|
||||
]}
|
||||
positiveItems={[
|
||||
"Verified authentic books",
|
||||
"Fast nationwide shipping",
|
||||
"Premium quality stationery",
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
68
src/pages/HomePage/sections/Hero.tsx
Normal file
68
src/pages/HomePage/sections/Hero.tsx
Normal 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="Trusted Retailer"
|
||||
title="Sacred Stories, Quality Stationery, All in One Place"
|
||||
description="Discover authentic mythological books, premium Bookmate notebooks, and Skoodle dustless chalk. Curated collections for spiritual seekers, students, and educators."
|
||||
primaryButton={{
|
||||
text: "Start Shopping",
|
||||
href: "#products",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Learn More",
|
||||
href: "#about",
|
||||
}}
|
||||
leftItems={[
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/workplace-green-desk-with-office-tools_23-2148210364.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/desk-arrangement-with-notebooks-pencils_23-2148745750.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/stationery-desktop_23-2147711401.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/colorful-scene-with-art-nouveau-inspired-creation_23-2151505908.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/vintage-objects-arrangement-still-life_23-2150348587.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/school-supplies-table-composition_23-2148939178.jpg",
|
||||
},
|
||||
]}
|
||||
rightItems={[
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/desk-arrangement-with-different-items_23-2148745764.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-desk-supplies-composition_23-2149511874.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/box-with-books-near-hot-drink-plaid_23-2147887708.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/still-life-with-beautiful-cup-female-hands-intimate-homely-atmosphere-decorative-items_169016-4808.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/stationery-set-with-empty-place-center_23-2147851966.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/view-ancient-paper-scroll-writing-documenting_23-2151751712.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
64
src/pages/HomePage/sections/Pricing.tsx
Normal file
64
src/pages/HomePage/sections/Pricing.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 "pricing" section.
|
||||
|
||||
import React from 'react';
|
||||
import PricingHighlightedCards from '@/components/sections/pricing/PricingHighlightedCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function PricingSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="pricing" data-section="pricing">
|
||||
<SectionErrorBoundary name="pricing">
|
||||
<PricingHighlightedCards
|
||||
tag="Value Packs"
|
||||
title="Choose Your Bundle"
|
||||
description="Save on combined sets for your convenience."
|
||||
plans={[
|
||||
{
|
||||
tag: "Basic",
|
||||
price: "$15",
|
||||
description: "Perfect starter kit.",
|
||||
features: [
|
||||
"1 Book",
|
||||
"1 Notebook",
|
||||
],
|
||||
primaryButton: {
|
||||
text: "Buy Now",
|
||||
href: "#",
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: "Student",
|
||||
price: "$30",
|
||||
description: "Complete study pack.",
|
||||
features: [
|
||||
"3 Books",
|
||||
"5 Notebooks",
|
||||
"1 Chalk box",
|
||||
],
|
||||
highlight: "Best Value",
|
||||
primaryButton: {
|
||||
text: "Buy Now",
|
||||
href: "#",
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: "Pro",
|
||||
price: "$50",
|
||||
description: "Advanced collection.",
|
||||
features: [
|
||||
"5 Books",
|
||||
"10 Notebooks",
|
||||
"3 Chalk boxes",
|
||||
],
|
||||
primaryButton: {
|
||||
text: "Buy Now",
|
||||
href: "#",
|
||||
},
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
158
src/pages/HomePage/sections/Products.tsx
Normal file
158
src/pages/HomePage/sections/Products.tsx
Normal file
@@ -0,0 +1,158 @@
|
||||
/* eslint-disable */
|
||||
// @ts-nocheck — generated by catalog-eject; runtime-correct but TS strict-mode false-positives on inlined catalog body
|
||||
import Button from "@/components/ui/Button";
|
||||
import TextAnimation from "@/components/ui/TextAnimation";
|
||||
import ImageOrVideo from "@/components/ui/ImageOrVideo";
|
||||
import ScrollReveal from "@/components/ui/ScrollReveal";
|
||||
import { cls } from "@/lib/utils";
|
||||
|
||||
const items = [
|
||||
{
|
||||
title: "Bhagavad Gita (Gita Press Gorakhpur)",
|
||||
description: "₹400/-",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/public-examination-preparation-concept_23-2149369892.jpg"
|
||||
},
|
||||
{
|
||||
title: "Hanuman Chalisa (Small)",
|
||||
description: "₹15/-",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/goddess-abundance-nature-art-nouveau-watercolor-illustration_23-2152031260.jpg"
|
||||
},
|
||||
{
|
||||
title: "Hanuman Chalisa (Big)",
|
||||
description: "₹60/-",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/goddess-abundance-nature-art-nouveau-watercolor-illustration_23-2152031260.jpg"
|
||||
},
|
||||
{
|
||||
title: "Bookmate Notebooks",
|
||||
description: "Superior paper quality.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/colorful-pastel-pen-paper-grey-table_176420-4582.jpg"
|
||||
},
|
||||
{
|
||||
title: "Skoodle Chalk",
|
||||
description: "Dustless and vibrant.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/top-view-colorful-chalk-with-copy-space_23-2148419498.jpg"
|
||||
},
|
||||
{
|
||||
title: "Student Stationery",
|
||||
description: "Essentials for learners.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/crayons-black-background_23-2148193426.jpg"
|
||||
},
|
||||
{
|
||||
title: "Gift Sets",
|
||||
description: "Curated packs.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/chalkboard-with-inscription-i-love-my-school_23-2148169465.jpg"
|
||||
}
|
||||
];
|
||||
|
||||
type FeatureItem = {
|
||||
title: string;
|
||||
description: string;
|
||||
href?: string;
|
||||
} & ({ imageSrc: string; videoSrc?: never } | { videoSrc: string; imageSrc?: never });
|
||||
|
||||
interface FeaturesImageBentoProps {
|
||||
tag: string;
|
||||
title: string;
|
||||
description: string;
|
||||
primaryButton?: { text: string; href: string };
|
||||
secondaryButton?: { text: string; href: string };
|
||||
items: [FeatureItem, FeatureItem, FeatureItem, FeatureItem, FeatureItem, FeatureItem, FeatureItem];
|
||||
}
|
||||
|
||||
const ProductsInline = () => {
|
||||
const gridClasses = [
|
||||
"md:col-span-2",
|
||||
"md:col-span-4",
|
||||
"md:col-span-3",
|
||||
"md:col-span-3",
|
||||
"md:col-span-2",
|
||||
"md:col-span-2",
|
||||
"md:col-span-2",
|
||||
];
|
||||
|
||||
const staggerDelays = [
|
||||
0,
|
||||
0.1,
|
||||
0,
|
||||
0.1,
|
||||
0,
|
||||
0.1,
|
||||
0.2,
|
||||
];
|
||||
|
||||
return (
|
||||
<section aria-label="Features image bento section" className="py-20">
|
||||
<div className="flex flex-col gap-8 md:gap-10">
|
||||
<div className="flex flex-col items-center w-content-width mx-auto gap-2">
|
||||
<div className="px-3 py-1 mb-1 text-sm card rounded w-fit">
|
||||
<p>{"Our Catalog"}</p>
|
||||
</div>
|
||||
|
||||
<TextAnimation
|
||||
text={"Curated Collections"}
|
||||
variant="fade"
|
||||
gradientText={true}
|
||||
tag="h2"
|
||||
className="md:max-w-8/10 text-6xl 2xl:text-7xl leading-[1.15] font-semibold text-center text-balance"
|
||||
/>
|
||||
|
||||
<TextAnimation
|
||||
text={"High-quality essentials for your spiritual and academic journey."}
|
||||
variant="fade"
|
||||
gradientText={false}
|
||||
tag="p"
|
||||
className="md:max-w-7/10 text-lg md:text-xl leading-snug text-center text-balance"
|
||||
/>
|
||||
|
||||
{(undefined || undefined) && (
|
||||
<div className="flex flex-wrap justify-center gap-3 mt-2 md:mt-3">
|
||||
{undefined && <Button text={undefined.text} href={undefined.href} variant="primary"/>}
|
||||
{undefined && <Button text={undefined.text} href={undefined.href} variant="secondary" animationDelay={0.1} />}
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
|
||||
<div className="w-content-width mx-auto grid grid-cols-1 md:grid-cols-6 gap-3">
|
||||
{items.map((item, index) => {
|
||||
const content = (
|
||||
<div className="relative h-80 xl:h-100 2xl:h-120 overflow-hidden">
|
||||
<ImageOrVideo
|
||||
imageSrc={item.imageSrc}
|
||||
videoSrc={item.videoSrc}
|
||||
className="rounded group-hover:scale-105 transition-transform duration-500"
|
||||
/>
|
||||
|
||||
<div className="absolute inset-x-5 bottom-5 xl:inset-x-6 xl:bottom-6 2xl:inset-x-7 2xl:bottom-7 flex flex-col text-background">
|
||||
<span className="text-2xl font-semibold leading-snug truncate">{item.title}</span>
|
||||
<span className="text-base leading-snug truncate">{item.description}</span>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
||||
return (
|
||||
<ScrollReveal key={index} variant="fade-blur" delay={staggerDelays[index]} className={cls("col-span-1 group", gridClasses[index])}>
|
||||
{item.href ? (
|
||||
<a href={item.href} className="block overflow-hidden rounded">
|
||||
{content}
|
||||
</a>
|
||||
) : (
|
||||
<div className="overflow-hidden rounded">
|
||||
{content}
|
||||
</div>
|
||||
)}
|
||||
</ScrollReveal>
|
||||
);
|
||||
})}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
);
|
||||
};
|
||||
|
||||
export default function ProductsSection() {
|
||||
return (
|
||||
<div data-webild-section="products" id="products">
|
||||
<ProductsInline />
|
||||
</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="Trusted By"
|
||||
title="Leading Educational & Spiritual Partners"
|
||||
description="Collaborating with quality organizations across the country."
|
||||
names={[
|
||||
"Bookmate",
|
||||
"Skoodle",
|
||||
"Vidya Books",
|
||||
"Spirit Publishers",
|
||||
"Academic Supplies Co.",
|
||||
"Knowledge House",
|
||||
"Global Learners Inc.",
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
52
src/pages/HomePage/sections/Testimonials.tsx
Normal file
52
src/pages/HomePage/sections/Testimonials.tsx
Normal file
@@ -0,0 +1,52 @@
|
||||
// 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 TestimonialColumnMarqueeCards from '@/components/sections/testimonial/TestimonialColumnMarqueeCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function TestimonialsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialColumnMarqueeCards
|
||||
tag="Customer Stories"
|
||||
title="What Our Customers Say"
|
||||
description="Trusted by spiritual seekers and dedicated students nationwide."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Ravi S.",
|
||||
role: "Devotee",
|
||||
quote: "Authentic books, excellent quality.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/happy-woman-holding-book_23-2148973430.jpg",
|
||||
},
|
||||
{
|
||||
name: "Sunita K.",
|
||||
role: "Teacher",
|
||||
quote: "Skoodle chalk is great for my classroom.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/unpleased-showing-thumbs-down-young-female-teacher-wearing-glasses-standing-front-blackboard-classroom_141793-136789.jpg",
|
||||
},
|
||||
{
|
||||
name: "Amit M.",
|
||||
role: "Student",
|
||||
quote: "Bookmate notebooks last forever.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/side-view-woman-reading-book_23-2149966924.jpg",
|
||||
},
|
||||
{
|
||||
name: "Priya V.",
|
||||
role: "Spiritual Seeker",
|
||||
quote: "Wide collection, very helpful service.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-girl-white-t-shirt-holding-hands-together-like-namaste-gesture-looking-camera-with-smile-face_141793-108870.jpg",
|
||||
},
|
||||
{
|
||||
name: "Kiran P.",
|
||||
role: "Principal",
|
||||
quote: "Reliable stationery partner for our school.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/impressed-young-blonde-female-teacher-wearing-glasses-classroom-standing-front-chalkboard-showing-mini-blackboard-looking-it-pointing-it-with-chalk-with-copy-space_141793-105551.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user