From 8b1821b1d1fa0649e6bbb944cf14e4bfec9855f7 Mon Sep 17 00:00:00 2001 From: Vula Builder Date: Tue, 28 Jul 2026 12:39:37 +0000 Subject: [PATCH] Deploy --- vula-index.json | 814 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 814 insertions(+) create mode 100644 vula-index.json diff --git a/vula-index.json b/vula-index.json new file mode 100644 index 0000000..281531b --- /dev/null +++ b/vula-index.json @@ -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" + ] +} \ No newline at end of file