Files
Vula Builder 8b1821b1d1 Deploy
2026-07-28 12:39:37 +00:00

814 lines
28 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"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"
]
}