This commit is contained in:
Vula Builder
2026-07-28 12:39:37 +00:00
parent bb8cfe5582
commit 8b1821b1d1
+814
View File
@@ -0,0 +1,814 @@
{
"projectName": "Ngema Naturals",
"businessType": "",
"industry": "",
"tone": "",
"tier": 3,
"generatedAt": "2026-07-28T09:23:25.406Z",
"sections": [
{
"name": "HeritageGlowHeroSection",
"importPath": "@/components/sections/HeritageGlowHeroSection",
"position": 0,
"role": "hero",
"hasImage": true,
"hasForm": false,
"itemCount": -1,
"layout": "flex-row",
"headings": [
"{d.title || 'Imvelo Yakho Your Nature'}"
],
"buttonLabels": [],
"people": [],
"allText": [
"use client",
"@/hooks/useVulaContent",
"next/image",
"@/components/ui/Button",
"lucide-react",
"hero_banners",
"flex justify-center py-16",
"w-8 h-8 rounded-full border-2 border-current border-t-transparent animate-spin",
"hero",
"heritageglowhero",
"relative min-h-[90vh] flex items-center overflow-hidden bg-[#2c331f]",
"absolute inset-0",
"Hero background",
"object-cover opacity-50",
"100vw",
"absolute inset-0 bg-gradient-to-r from-[#2c331f]/80 to-transparent",
"relative container mx-auto px-6 lg:px-12 z-10",
"max-w-2xl",
"text-4xl md:text-5xl lg:text-6xl font-bold text-[#f4f5f2] mb-6 leading-tight",
"Imvelo Yakho Your Nature",
"text-lg md:text-xl text-[#daddd4] mb-8 max-w-xl",
"Handcrafted skincare from Pretoria's indigenous botanicals cold-pressed, small-batch, rooted in South African wisdom.",
"#indigenous-botanicals",
"default",
"lg",
"bg-[#ea580c] hover:bg-[#d24b0a] text-white border-none flex items-center gap-2",
"Explore Our Range",
"w-5 h-5"
],
"cmsCollection": "hero_banners"
},
{
"name": "BrandCarouselSection",
"importPath": "@/components/sections/BrandCarouselSection",
"position": 1,
"role": "partners",
"hasImage": true,
"hasForm": false,
"itemCount": 4,
"layout": "flex-row",
"headings": [
"Shop by Collection"
],
"buttonLabels": [],
"people": [],
"allText": [
"use client",
"react",
"next/link",
"next/image",
"py-10 px-4",
"max-w-7xl mx-auto",
"text-xl font-bold mb-5",
"Shop by Collection",
"flex gap-4 overflow-x-auto pb-3 scrollbar-hide snap-x snap-mandatory",
"flex-none snap-start w-36 group",
"relative h-36 w-36 rounded-2xl overflow-hidden bg-muted mb-2 group-hover:shadow-md transition-shadow",
"object-cover group-hover:scale-105 transition-transform duration-300",
"w-full h-full flex items-center justify-center text-3xl font-bold text-primary/30 uppercase",
"text-xs font-medium text-center line-clamp-2 group-hover:text-primary transition-colors"
]
},
{
"name": "AdvertBannerSection",
"importPath": "@/components/sections/AdvertBannerSection",
"position": 2,
"role": "hero",
"hasImage": true,
"hasForm": false,
"itemCount": 4,
"layout": "flex-row",
"headings": [
"{headline}"
],
"buttonLabels": [],
"people": [],
"allText": [
"next/image",
"next/link",
"@/lib/cms",
"relative w-full overflow-hidden rounded-2xl my-8 mx-auto max-w-7xl px-4",
"relative h-64 md:h-80 w-full",
"object-cover rounded-2xl",
"absolute inset-0 bg-black/45 rounded-2xl",
"absolute inset-0 flex flex-col items-center justify-center text-center px-6 gap-3",
"text-2xl md:text-4xl font-bold text-white drop-shadow",
"text-sm md:text-base text-white/90",
"mt-2 inline-block bg-white text-black font-semibold px-6 py-2 rounded-full hover:bg-primary hover:text-white transition-colors text-sm",
"flex flex-col items-center justify-center gap-3 py-16 px-6 text-center bg-primary/10 rounded-2xl",
"text-2xl md:text-3xl font-bold",
"text-muted-foreground",
"inline-block bg-primary text-white font-semibold px-6 py-2 rounded-full hover:bg-primary/80 transition-colors text-sm"
]
},
{
"name": "FeaturedProductsSection",
"importPath": "@/components/sections/FeaturedProductsSection",
"position": 3,
"role": "services",
"hasImage": false,
"hasForm": false,
"itemCount": 11,
"layout": "grid",
"headings": [
"Featured Products"
],
"buttonLabels": [],
"people": [],
"allText": [
"use client",
"@/hooks/useFeaturedProducts",
"next/link",
"lucide-react",
"@/hooks/useMedusaCart",
"KSh",
"py-20",
"container mx-auto px-4",
"grid grid-cols-2 md:grid-cols-4 gap-6",
"aspect-square rounded-xl bg-muted animate-pulse",
"featuredproducts",
"flex items-center justify-between mb-10",
"text-xs uppercase tracking-widest text-primary font-semibold mb-1",
"Curated for You",
"text-3xl font-bold text-foreground",
"Featured Products",
"text-sm font-semibold text-primary hover:underline underline-offset-4",
"View all →",
"group bg-card rounded-xl overflow-hidden border border-border hover:shadow-md transition-all",
"block",
"relative aspect-square bg-muted",
"w-full h-full object-cover group-hover:scale-105 transition-transform duration-500",
"w-full h-full flex items-center justify-center",
"h-8 w-8 text-muted-foreground/30",
"p-4",
"text-sm font-semibold text-foreground line-clamp-2 mb-1 hover:text-primary transition-colors",
"text-sm font-bold text-primary mb-3",
"cart-drawer-open",
"w-full text-xs bg-primary/10 text-primary hover:bg-primary hover:text-primary-foreground py-2 rounded-lg transition-colors font-medium disabled:opacity-40",
"Add to Cart"
]
},
{
"name": "IndigenousBotanicalsFeaturedSection",
"importPath": "@/components/sections/IndigenousBotanicalsFeaturedSection",
"position": 4,
"role": "services",
"hasImage": true,
"hasForm": false,
"itemCount": 8,
"layout": "grid",
"headings": [
"Indigenous Botanicals",
"{product.title}"
],
"buttonLabels": [],
"people": [],
"allText": [
"use client",
"@/hooks/useMedusaProducts",
"@/hooks/useMedusaCart",
"@/components/ui/Card",
"@/components/ui/Button",
"next/image",
"next/link",
"lucide-react",
"KSh",
"flex justify-center py-16",
"w-8 h-8 rounded-full border-2 border-current border-t-transparent animate-spin",
"cart-drawer-open",
"indigenousbotanicalsfeatured",
"indigenous-botanicals",
"py-20 bg-[#f4f5f2]",
"container mx-auto px-4",
"text-center mb-12",
"text-sm uppercase tracking-widest text-[#8b5a3c] mb-2",
"Ubuhle Bendalo",
"text-3xl md:text-4xl font-bold text-[#2c331f]",
"Indigenous Botanicals",
"text-[#8b5a3c] mt-3 max-w-xl mx-auto",
"Handpicked from the wild marula, rooibos, buchu each jar tells a story of African earth.",
"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-6",
"rounded-2xl border-none shadow-lg hover:shadow-xl transition-shadow duration-300 overflow-hidden bg-white",
"block relative aspect-square overflow-hidden",
"object-cover hover:scale-105 transition-transform duration-500",
"(max-width: 768px) 100vw, 300px",
"p-4 pb-2",
"hover:underline",
"font-semibold text-[#2c331f] text-lg truncate",
"text-[#ea580c] font-bold mt-1",
"p-4 pt-0",
"default",
"sm",
"w-full bg-[#6b8e23] hover:bg-[#5a7a1e] text-white",
"w-4 h-4 mr-2",
"Add to Cart"
]
},
{
"name": "BestsellersGridSection",
"importPath": "@/components/sections/BestsellersGridSection",
"position": 5,
"role": "unknown",
"hasImage": true,
"hasForm": false,
"itemCount": 9,
"layout": "grid",
"headings": [
"Bestsellers",
"{product.title}"
],
"buttonLabels": [],
"people": [],
"allText": [
"use client",
"@/hooks/useMedusaProducts",
"@/hooks/useMedusaCart",
"@/components/ui/Card",
"@/components/ui/Button",
"@/components/ui/Badge",
"next/image",
"next/link",
"lucide-react",
"KSh",
"flex justify-center py-16",
"w-8 h-8 rounded-full border-2 border-current border-t-transparent animate-spin",
"cart-drawer-open",
"bestsellersgrid",
"bestsellers",
"py-20 bg-white",
"container mx-auto px-4",
"text-center mb-12",
"text-sm uppercase tracking-widest text-[#8b5a3c] mb-2",
"Amandla Popular",
"text-3xl md:text-4xl font-bold text-[#2c331f]",
"Bestsellers",
"text-[#8b5a3c] mt-3 max-w-xl mx-auto",
"Our community's most-loved rituals tried, tested, and adored across South Africa.",
"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-6",
"rounded-2xl border-none shadow-lg hover:shadow-xl transition-shadow duration-300 overflow-hidden bg-[#f4f5f2]",
"relative",
"block relative aspect-square overflow-hidden",
"object-cover hover:scale-105 transition-transform duration-500",
"(max-width: 768px) 100vw, 300px",
"accent",
"absolute top-3 left-3 bg-[#ea580c] text-white text-xs px-2 py-1 rounded-full",
"w-3 h-3 inline mr-1",
"Bestseller",
"p-4 pb-2",
"hover:underline",
"font-semibold text-[#2c331f] text-lg truncate",
"text-[#ea580c] font-bold mt-1",
"p-4 pt-0",
"default",
"sm",
"w-full bg-[#6b8e23] hover:bg-[#5a7a1e] text-white",
"w-4 h-4 mr-2",
"Add to Cart"
]
},
{
"name": "MostPopularSection",
"importPath": "@/components/sections/MostPopularSection",
"position": 6,
"role": "unknown",
"hasImage": false,
"hasForm": false,
"itemCount": 12,
"layout": "grid",
"headings": [
"Most Popular"
],
"buttonLabels": [],
"people": [],
"allText": [
"use client",
"react",
"@/hooks/useMedusaCart",
"@/hooks/useMedusaProducts",
"next/link",
"lucide-react",
"KSh",
"py-20",
"container mx-auto px-4",
"grid grid-cols-2 md:grid-cols-4 gap-6",
"aspect-square rounded-xl bg-muted animate-pulse",
"mostpopular",
"flex items-center justify-between mb-10",
"flex items-center gap-3",
"h-6 w-6 text-primary",
"text-xs uppercase tracking-widest text-primary font-semibold mb-1",
"Best Sellers",
"text-3xl font-bold text-foreground",
"Most Popular",
"text-sm font-semibold text-primary hover:underline underline-offset-4 hidden md:inline-flex items-center gap-1",
"View all →",
"grid grid-cols-2 lg:grid-cols-4 gap-6",
"group bg-card rounded-xl overflow-hidden border border-border hover:shadow-md transition-all relative",
"absolute top-2 left-2 z-10 bg-primary text-primary-foreground text-xs font-semibold px-2 py-0.5 rounded-full",
"Best Seller",
"block overflow-hidden",
"relative aspect-square bg-muted",
"w-full h-full object-cover group-hover:scale-105 transition-transform duration-300",
"w-full h-full flex items-center justify-center",
"h-8 w-8 text-muted-foreground/30",
"p-4",
"text-sm font-semibold text-foreground line-clamp-2 mb-1 hover:text-primary transition-colors",
"text-sm font-bold text-primary mb-3",
"cart-drawer-open",
"w-full text-xs bg-primary/10 text-primary hover:bg-primary hover:text-primary-foreground py-2 rounded-lg transition-colors font-medium disabled:opacity-40",
"Add to Cart"
]
},
{
"name": "ProductCarouselSection",
"importPath": "@/components/sections/ProductCarouselSection",
"position": 7,
"role": "services",
"hasImage": true,
"hasForm": false,
"itemCount": 4,
"layout": "flex-row",
"headings": [
"{section.title}"
],
"buttonLabels": [],
"people": [],
"allText": [
"next/image",
"next/link",
"@/lib/cms",
"KSh",
"x-publishable-api-key",
"py-8 px-4",
"max-w-7xl mx-auto",
"text-xl font-bold mb-5",
"flex gap-4 overflow-x-auto pb-3 scrollbar-hide snap-x snap-mandatory",
"flex-none snap-start w-44 group",
"relative h-44 w-44 rounded-xl overflow-hidden bg-muted mb-2 group-hover:shadow-md transition-shadow",
"object-cover group-hover:scale-105 transition-transform duration-300",
"w-full h-full flex items-center justify-center text-muted-foreground text-xs",
"No image",
"text-xs font-medium line-clamp-2 group-hover:text-primary transition-colors mb-1",
"text-xs font-bold text-primary"
]
},
{
"name": "RootedHeritageStorySection",
"importPath": "@/components/sections/RootedHeritageStorySection",
"position": 8,
"role": "about",
"hasImage": true,
"hasForm": false,
"itemCount": 14,
"layout": "grid",
"headings": [
"Rooted in Nature, Crafted by Hand",
"Harvest",
"Cold-Press",
"Bottle"
],
"buttonLabels": [],
"people": [],
"allText": [
"next/image",
"lucide-react",
"rootedheritagestory",
"our-story",
"py-20 bg-[#f4f5f2]",
"container mx-auto px-4",
"grid grid-cols-1 lg:grid-cols-2 gap-12 items-center",
"relative aspect-[4/3] rounded-3xl overflow-hidden shadow-xl",
"Rooibos fields in the Cederberg",
"object-cover",
"(max-width: 768px) 100vw, 50vw",
"absolute inset-0 bg-[#6b8e23]/20",
"text-sm uppercase tracking-widest text-[#8b5a3c] mb-2",
"Ubuhle Bendalo",
"text-3xl md:text-4xl font-bold text-[#2c331f] mb-6",
"Rooted in Nature, Crafted by Hand",
"space-y-4 text-[#2c331f]/80 max-w-prose",
"Ngema Naturals was born in Pretoria, where we cold-press indigenous oils just as our grandmothers taught us small batches, no shortcuts. Our marula is harvested from wild trees in KwaZulu-Natal; our rooibos comes from the Cederberg; our buchu is wildcrafted by the Cape.",
"Every bottle carries the wisdom of generations. We partner directly with women-led cooperatives to ensure fair wages and ethical sourcing.",
"mt-8 grid grid-cols-3 gap-4",
"bg-white rounded-xl p-4 shadow-sm text-center",
"w-6 h-6 text-[#6b8e23] mx-auto mb-2",
"text-sm font-semibold text-[#2c331f]",
"Wild Harvested",
"Cold-Pressed",
"Small-Batch",
"mt-16 grid grid-cols-1 md:grid-cols-3 gap-6",
"bg-white rounded-2xl p-6 shadow-sm",
"font-bold text-[#2c331f] mb-2",
"Harvest",
"text-sm text-[#8b5a3c]",
"Sustainably picked at peak ripeness from wild trees and fynbos.",
"Cold-Press",
"Extracted within 48 hours to preserve antioxidants and aroma.",
"Bottle",
"Hand-poured into amber glass, sealed with a story."
]
},
{
"name": "HarvestPromoCampaignSection",
"importPath": "@/components/sections/HarvestPromoCampaignSection",
"position": 9,
"role": "cms-campaigns",
"hasImage": true,
"hasForm": false,
"itemCount": -1,
"layout": "grid",
"headings": [
"{d.title}"
],
"buttonLabels": [],
"people": [],
"allText": [
"use client",
"react",
"@/hooks/useVulaContent",
"next/image",
"next/link",
"@/components/ui/Button",
"@/components/ui/Badge",
"campaigns",
"flex justify-center py-16",
"w-8 h-8 rounded-full border-2 border-[#6b8e23] border-t-transparent animate-spin",
"harvestpromocampaign",
"py-20 bg-[#f4f5f2]",
"max-w-6xl mx-auto px-4",
"relative overflow-hidden rounded-[28px] shadow-2xl",
"#6b8e23",
"grid md:grid-cols-2 items-center gap-8 p-8 md:p-12",
"text-white",
"accent",
"mb-4 bg-[#ea580c] text-white px-4 py-1 rounded-full text-sm font-semibold",
"text-3xl md:text-4xl font-bold mb-4 leading-tight",
"text-white/80 mb-6 max-w-md",
"default",
"lg",
"rounded-full bg-white text-[#6b8e23] hover:bg-white/90 transition-all duration-200",
"mt-6 flex items-center gap-2 text-sm text-white/70",
"inline-block w-2 h-2 rounded-full bg-[#ea580c]",
"Limited time offer",
"relative h-64 md:h-80 rounded-2xl overflow-hidden",
"Campaign image",
"object-cover",
"(max-width: 768px) 100vw, 50vw",
"flex justify-center gap-2 pb-6",
"bg-white",
"bg-white/40 hover:bg-white/60"
],
"cmsCollection": "campaigns"
},
{
"name": "UbuntuGlowTestimonialsSection",
"importPath": "@/components/sections/UbuntuGlowTestimonialsSection",
"position": 10,
"role": "blog",
"hasImage": true,
"hasForm": false,
"itemCount": -1,
"layout": "grid",
"headings": [],
"buttonLabels": [
"Read more reviews →"
],
"people": [],
"allText": [
"use client",
"@/hooks/useVulaContent",
"next/image",
"posts",
"flex justify-center py-16",
"w-8 h-8 rounded-full border-2 border-[#6b8e23] border-t-transparent animate-spin",
"testimonials",
"ubuntuglowtestimonials",
"py-20 bg-[#f4f5f2]",
"max-w-6xl mx-auto px-4",
"text-center mb-12",
"inline-block text-[#8b5a3c] text-sm font-semibold uppercase tracking-widest mb-2",
"Ubuntu",
"text-3xl md:text-4xl font-bold text-[#2c331f]",
"text-[#6b8e23]",
"I am because we are",
"— real stories from our community",
"grid md:grid-cols-3 gap-8",
"bg-white rounded-[28px] p-8 shadow-lg hover:shadow-xl transition-all duration-200",
"relative w-20 h-20 mx-auto mb-4 rounded-full overflow-hidden border-4 border-[#6b8e23]/20",
"Customer",
"object-cover",
"80px",
"text-center",
"text-[#ea580c] text-lg mb-3",
"★★★★★",
"text-[#2c331f]/80 italic mb-4",
"“",
"”",
"font-semibold text-[#2c331f]",
"text-sm text-[#8b5a3c]",
"text-center mt-8",
"text-[#6b8e23] font-semibold hover:underline transition-all duration-200",
"Read more reviews →"
],
"cmsCollection": "posts"
},
{
"name": "IndigenousIngredientGallerySection",
"importPath": "@/components/sections/IndigenousIngredientGallerySection",
"position": 11,
"role": "gallery",
"hasImage": true,
"hasForm": false,
"itemCount": -1,
"layout": "flex-row",
"headings": [
"{d.title}"
],
"buttonLabels": [],
"people": [],
"allText": [
"use client",
"@/hooks/useVulaContent",
"next/image",
"gallery",
"flex justify-center py-16",
"w-8 h-8 rounded-full border-2 border-[#6b8e23] border-t-transparent animate-spin",
"indigenousingredientgallery",
"py-20 bg-[#f4f5f2]",
"max-w-6xl mx-auto px-4",
"text-center mb-12",
"text-3xl md:text-4xl font-bold text-[#2c331f]",
"From harvest to",
"text-[#6b8e23]",
"bottle",
"text-[#8b5a3c] mt-2 max-w-lg mx-auto",
"Every step, rooted in tradition and transparency.",
"columns-1 md:columns-2 lg:columns-3 gap-6 space-y-6",
"break-inside-avoid bg-white rounded-[28px] overflow-hidden shadow-lg hover:shadow-xl transition-all duration-200 group",
"relative w-full h-64 overflow-hidden",
"Gallery image",
"object-cover group-hover:scale-105 transition-transform duration-500",
"(max-width: 768px) 100vw, (max-width: 1024px) 50vw, 33vw",
"p-5",
"font-semibold text-[#2c331f] text-lg mb-1",
"text-sm text-[#8b5a3c]/80"
],
"cmsCollection": "gallery"
},
{
"name": "IkhambiBlogSection",
"importPath": "@/components/sections/IkhambiBlogSection",
"position": 12,
"role": "blog",
"hasImage": true,
"hasForm": false,
"itemCount": -1,
"layout": "grid",
"headings": [
"{d.title}"
],
"buttonLabels": [
"Read more →"
],
"people": [],
"allText": [
"use client",
"@/hooks/useVulaContent",
"next/image",
"next/link",
"@/components/ui/Button",
"posts",
"flex justify-center py-16",
"w-8 h-8 rounded-full border-2 border-[#6b8e23] border-t-transparent animate-spin",
"blog",
"ikhambiblog",
"py-20 bg-[#f4f5f2]",
"max-w-6xl mx-auto px-4",
"text-center mb-12",
"text-3xl md:text-4xl font-bold text-[#2c331f]",
"text-[#8b5a3c]",
"Ikhambi",
"— wisdom from the earth",
"text-[#6b8e23] mt-2",
"Deepen your ritual with stories and guides.",
"grid md:grid-cols-3 gap-8",
"bg-white rounded-[28px] overflow-hidden shadow-lg hover:shadow-xl transition-all duration-200 group",
"relative h-48 overflow-hidden",
"Blog image",
"object-cover group-hover:scale-105 transition-transform duration-500",
"(max-width: 768px) 100vw, 33vw",
"p-6",
"text-xs font-semibold text-[#ea580c] uppercase tracking-wider",
"text-xl font-bold text-[#8b5a3c] mt-2 mb-2 leading-snug",
"text-[#2c331f]/80 text-sm mb-4 line-clamp-3",
"text-xs text-[#6b8e23] mb-4",
"By",
"ghost",
"sm",
"text-[#6b8e23] hover:text-[#6b8e23]/80 p-0",
"Read more →"
],
"cmsCollection": "posts"
},
{
"name": "VisitOurWorkshopSection",
"importPath": "@/components/sections/VisitOurWorkshopSection",
"position": 13,
"role": "gallery",
"hasImage": false,
"hasForm": false,
"itemCount": -1,
"layout": "grid",
"headings": [
"Come See Us",
"Ngema Naturals Workshop Map"
],
"buttonLabels": [],
"people": [],
"allText": [
"use client",
"@/hooks/useVulaContent",
"lucide-react",
"@/components/ui/Button",
"business_hours",
"flex justify-center py-16",
"w-8 h-8 rounded-full border-2 border-current border-t-transparent animate-spin",
"123 Marula Lane, Pretoria, 0002",
"+27 12 345 6789",
"hello@ngemanaturals.co.za",
"123 Marula Lane, Pretoria, South Africa",
"visit-us",
"visitourworkshop",
"py-20 bg-[#f4f5f2]",
"container mx-auto px-4",
"grid grid-cols-1 lg:grid-cols-2 gap-12 items-start",
"mb-6",
"text-sm uppercase tracking-wider text-[#6b8e23] mb-2",
"Hamba Lapha",
"text-4xl font-bold text-[#2c331f]",
"Come See Us",
"mt-4 text-[#8b5a3c] max-w-md",
"Witness the cold-press process, pick up fresh batches, and connect personally with Mama Ngema.",
"space-y-4",
"flex items-center justify-between bg-white rounded-xl px-5 py-3 shadow-md",
"font-medium text-[#2c331f]",
"text-sm text-[#ea580c]",
"Closed",
"text-sm text-[#6b8e23]",
"mt-8 space-y-3",
"flex items-center gap-2 text-[#8b5a3c]",
"w-5 h-5",
"outline",
"sm",
"mt-2",
"w-4 h-4 mr-2",
"WhatsApp Us",
"relative h-80 lg:h-full min-h-[300px] rounded-3xl overflow-hidden shadow-xl",
"100%",
"lazy",
"no-referrer-when-downgrade",
"Ngema Naturals Workshop Map"
],
"cmsCollection": "business_hours"
},
{
"name": "EnquiryFormSection",
"importPath": "@/components/sections/EnquiryFormSection",
"position": 14,
"role": "contact",
"hasImage": true,
"hasForm": true,
"itemCount": 8,
"layout": "grid",
"headings": [
"Ask me about ingredients, orders, or skincare rituals"
],
"buttonLabels": [],
"people": [],
"allText": [
"use client",
"react",
"lucide-react",
"next/image",
"@/components/ui/Button",
"@/components/ui/Input",
"enquiryform",
"contact",
"py-20 bg-[#f4f5f2]",
"container mx-auto px-4 max-w-5xl",
"grid grid-cols-1 md:grid-cols-2 gap-12 items-center",
"relative",
"relative rounded-3xl overflow-hidden shadow-xl",
"Mama Ngema in workshop",
"object-cover w-full h-full",
"absolute -bottom-4 -right-4 bg-white rounded-full px-6 py-3 shadow-lg",
"text-sm font-medium text-[#6b8e23]",
"Sawubona! Ask me anything.",
"text-sm uppercase tracking-wider text-[#6b8e23] mb-2",
"Talk to Mama Ngema",
"text-3xl font-bold text-[#2c331f] mb-4",
"Ask me about ingredients, orders, or skincare rituals",
"text-[#8b5a3c] mb-6",
"I reply within 24 hours. You can also reach me directly on WhatsApp or email.",
"bg-white rounded-xl p-6 shadow-md text-center",
"text-lg font-semibold text-[#6b8e23]",
"Siyabonga! Your message has been received.",
"text-sm text-[#8b5a3c] mt-2",
"I'll get back to you soon.",
"space-y-4",
"text",
"Your name",
"email",
"Your email",
"Your message...",
"w-full rounded-lg border border-[#daddd4] bg-white px-4 py-3 text-sm text-[#2c331f] placeholder:text-[#8b5a3c]/60 focus:outline-none focus:ring-2 focus:ring-[#6b8e23]",
"submit",
"default",
"w-full",
"w-4 h-4 mr-2",
"Send Message",
"mt-6 flex flex-wrap gap-3",
"mailto:hello@ngemanaturals.co.za",
"flex items-center gap-2 text-[#6b8e23] underline text-sm",
"w-4 h-4",
"hello@ngemanaturals.co.za",
"_blank",
"noopener noreferrer",
"WhatsApp"
]
},
{
"name": "EarthyNewsletterSection",
"importPath": "@/components/sections/EarthyNewsletterSection",
"position": 15,
"role": "blog",
"hasImage": true,
"hasForm": true,
"itemCount": 4,
"layout": "grid",
"headings": [
"Get early access to small batches"
],
"buttonLabels": [],
"people": [],
"allText": [
"use client",
"react",
"lucide-react",
"next/image",
"@/components/ui/Button",
"@/components/ui/Input",
"earthynewsletter",
"newsletter",
"py-20 bg-[#f4f5f2]",
"container mx-auto px-4 max-w-5xl",
"grid grid-cols-1 md:grid-cols-2 gap-8 items-center bg-white rounded-3xl shadow-xl overflow-hidden",
"relative h-64 md:h-full min-h-[250px]",
"Marula oil bottle",
"(max-width: 768px) 100vw, 50vw",
"object-cover",
"p-8 md:p-12",
"text-sm uppercase tracking-wider text-[#ea580c] mb-2",
"Imvelo Tips",
"text-2xl font-bold text-[#2c331f] mb-2",
"Get early access to small batches",
"text-[#8b5a3c] mb-6",
"Subscribe for seasonal skincare tips, new product alerts, and exclusive offers from the workshop.",
"text-lg font-semibold text-[#6b8e23]",
"Siyabonga! You're on the list.",
"flex flex-col sm:flex-row gap-3",
"email",
"Your email",
"flex-1",
"submit",
"default",
"whitespace-nowrap",
"Subscribe",
"w-4 h-4 ml-2"
]
}
],
"navigationLinks": [
"Ngema Naturals",
"Home",
"Bestsellers Grid",
"Rooted Heritage Story",
"Visit Our Workshop",
"Enquiry Form",
"Products"
]
}