From 4d2593f448875d5e2cea10101cf1f97ec143a588 Mon Sep 17 00:00:00 2001 From: Vula Builder Date: Tue, 28 Jul 2026 07:32:26 +0000 Subject: [PATCH] Deploy --- vula-index.json | 751 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 751 insertions(+) create mode 100644 vula-index.json diff --git a/vula-index.json b/vula-index.json new file mode 100644 index 0000000..e8ec93b --- /dev/null +++ b/vula-index.json @@ -0,0 +1,751 @@ +{ + "projectName": "Ndlovu Naturals", + "businessType": "", + "industry": "", + "tone": "", + "tier": 3, + "generatedAt": "2026-07-28T07:29:14.471Z", + "sections": [ + { + "name": "NdlovuHeritageHeroSection", + "importPath": "@/components/sections/NdlovuHeritageHeroSection", + "position": 0, + "role": "hero", + "hasImage": true, + "hasForm": false, + "itemCount": -1, + "layout": "grid", + "headings": [ + "{d.title}" + ], + "buttonLabels": [], + "people": [], + "allText": [ + "use client", + "@/hooks/useVulaContent", + "next/image", + "@/components/ui/Button", + "next/link", + "hero_banners", + "flex justify-center py-16", + "w-8 h-8 rounded-full border-2 border-current border-t-transparent animate-spin", + "ndlovu-heritage-hero", + "ndlovuheritagehero", + "relative min-h-[80vh] flex items-center overflow-hidden bg-[#f9f5f4]", + "container mx-auto px-4 grid lg:grid-cols-2 gap-12 items-center", + "relative z-10 space-y-6", + "text-5xl lg:text-7xl font-bold text-[#21140d] leading-tight", + "text-xl text-[#8b5a3c] font-serif italic max-w-xl", + "default", + "lg", + "bg-[#8b5a3c] hover:bg-[#6a442e] text-white", + "relative h-[60vh] lg:h-[80vh] rounded-2xl overflow-hidden shadow-2xl", + "(max-width: 768px) 100vw, 50vw", + "object-cover" + ], + "cmsCollection": "hero_banners" + }, + { + "name": "IndigenousBotanicalsStorySection", + "importPath": "@/components/sections/IndigenousBotanicalsStorySection", + "position": 1, + "role": "about", + "hasImage": true, + "hasForm": false, + "itemCount": 16, + "layout": "grid", + "headings": [ + "Rooted in Indigenous Wisdom", + "Marula – Resilience Oil", + "Rooibos – Antioxidant Shield", + "Buchu – Purifying Essence" + ], + "buttonLabels": [], + "people": [], + "allText": [ + "use client", + "next/image", + "indigenousbotanicalsstory", + "indigenous-botanicals", + "py-24 bg-[#fff] relative overflow-hidden", + "container mx-auto px-4", + "grid lg:grid-cols-2 gap-12 items-center", + "relative", + "relative h-[500px] lg:h-[600px] rounded-2xl overflow-hidden shadow-xl", + "Marula fruit being harvested", + "(max-width: 1024px) 100vw, 50vw", + "object-cover", + "absolute -bottom-6 -right-6 bg-[#ea580c] text-white px-6 py-3 rounded-full rotate-3 shadow-lg", + "font-bold text-sm", + "Cold-pressed daily", + "space-y-8", + "text-4xl lg:text-5xl font-bold text-[#21140d] leading-tight", + "Rooted in Indigenous Wisdom", + "text-lg text-[#8b5a3c] font-serif italic", + "Three generations of African skincare knowledge meet modern cold-press technique.", + "space-y-6", + "flex gap-4", + "w-16 h-16 rounded-full bg-[#16a34a]/20 flex items-center justify-center flex-shrink-0", + "text-2xl", + "🌿", + "font-bold text-[#21140d]", + "Marula – Resilience Oil", + "text-[#21140d]/80", + "Cold-pressed from wild-harvested kernels in Limpopo, marula oil delivers deep hydration and protects against harsh UV.", + "w-16 h-16 rounded-full bg-[#ea580c]/20 flex items-center justify-center flex-shrink-0", + "🍵", + "Rooibos – Antioxidant Shield", + "Fermented in the Cederberg mountains, rooibos soothes inflammation and brightens skin tone naturally.", + "w-16 h-16 rounded-full bg-[#8b5a3c]/20 flex items-center justify-center flex-shrink-0", + "🌸", + "Buchu – Purifying Essence", + "Grown in the fynbos of the Western Cape, buchu leaf oil unclogs pores and restores balance to combination skin." + ] + }, + { + "name": "BotanicalTreasuresSection", + "importPath": "@/components/sections/BotanicalTreasuresSection", + "position": 2, + "role": "unknown", + "hasImage": true, + "hasForm": false, + "itemCount": 10, + "layout": "grid", + "headings": [ + "Botanical Treasures", + "{product.title}" + ], + "buttonLabels": [], + "people": [], + "allText": [ + "use client", + "@/hooks/useMedusaProducts", + "@/hooks/useMedusaCart", + "@/components/ui/Card", + "@/components/ui/Button", + "@/components/ui/Badge", + "next/image", + "next/link", + "flex justify-center py-16", + "w-8 h-8 rounded-full border-2 border-current border-t-transparent animate-spin", + "cart-drawer-open", + "botanicaltreasures", + "botanical-treasures", + "py-20 bg-[#f9f5f4]", + "container mx-auto px-4", + "text-center mb-14", + "text-4xl font-bold text-[#21140d]", + "Botanical Treasures", + "text-lg text-[#8b5a3c] font-serif italic mt-3 max-w-xl mx-auto", + "Eight small-batch essentials cold-pressed with ancestral care", + "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-6", + "group cursor-pointer overflow-hidden rounded-xl border-0 shadow-md hover:shadow-xl transition-all duration-200", + "relative aspect-square overflow-hidden bg-[#e2dad4]", + "(max-width: 768px) 100vw, 25vw", + "object-cover group-hover:scale-105 transition-transform duration-500", + "flex items-center justify-center h-full text-[#8b5a3c]", + "w-12 h-12", + "none", + "currentColor", + "0 0 24 24", + "round", + "M15.75 10.5V6a3.75 3.75 0 10-7.5 0v4.5m11.356-1.993l1.263 12c.07.665-.45 1.243-1.119 1.243H4.25a1.125 1.125 0 01-1.12-1.243l1.264-12A1.125 1.125 0 015.513 7.5h12.974c.576 0 1.059.435 1.119 1.007zM8.625 10.5a.375.375 0 11-.75 0 .375.375 0 01.75 0zm7.5 0a.375.375 0 11-.75 0 .375.375 0 01.75 0z", + "best-seller", + "accent", + "absolute top-3 left-3 bg-[#ea580c] text-white", + "Best Seller", + "p-4", + "font-semibold text-[#21140d] truncate", + "text-[#ea580c] font-bold mt-1", + "px-4 pb-4 pt-0", + "default", + "sm", + "w-full bg-[#8b5a3c] hover:bg-[#6a442e] text-white", + "Quick Add" + ] + }, + { + "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": "BestsellingBotanicalsGridSection", + "importPath": "@/components/sections/BestsellingBotanicalsGridSection", + "position": 4, + "role": "unknown", + "hasImage": true, + "hasForm": false, + "itemCount": 10, + "layout": "grid", + "headings": [ + "Bestselling Botanicals", + "{product.title}" + ], + "buttonLabels": [], + "people": [], + "allText": [ + "use client", + "@/hooks/useMedusaProducts", + "@/hooks/useMedusaCart", + "@/components/ui/Card", + "@/components/ui/Button", + "@/components/ui/Badge", + "next/image", + "next/link", + "flex justify-center py-16", + "w-8 h-8 rounded-full border-2 border-current border-t-transparent animate-spin", + "cart-drawer-open", + "bestsellingbotanicalsgrid", + "bestselling-botanicals", + "py-24 bg-[#f9f5f4]", + "container mx-auto px-4", + "text-center mb-14", + "text-4xl font-bold text-[#21140d]", + "Bestselling Botanicals", + "text-lg text-[#8b5a3c] font-serif italic mt-3", + "South Africa's favourite natural skincare picks – restocked weekly.", + "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6", + "group cursor-pointer overflow-hidden rounded-xl border-0 shadow-md hover:shadow-xl transition-all duration-200 relative", + "relative aspect-[4/3] overflow-hidden bg-[#e2dad4]", + "(max-width: 768px) 100vw, 33vw", + "object-cover group-hover:scale-105 transition-transform duration-500", + "flex items-center justify-center h-full text-[#8b5a3c]", + "w-12 h-12", + "none", + "currentColor", + "0 0 24 24", + "round", + "M15.75 10.5V6a3.75 3.75 0 10-7.5 0v4.5m11.356-1.993l1.263 12c.07.665-.45 1.243-1.119 1.243H4.25a1.125 1.125 0 01-1.12-1.243l1.264-12A1.125 1.125 0 015.513 7.5h12.974c.576 0 1.059.435 1.119 1.007zM8.625 10.5a.375.375 0 11-.75 0 .375.375 0 01.75 0zm7.5 0a.375.375 0 11-.75 0 .375.375 0 01.75 0z", + "accent", + "absolute top-3 left-3 bg-[#ea580c] text-white", + "Best Seller", + "p-4", + "font-semibold text-[#21140d] truncate", + "text-[#ea580c] font-bold mt-1", + "px-4 pb-4 pt-0", + "default", + "sm", + "w-full bg-[#8b5a3c] hover:bg-[#6a442e] text-white", + "Add to Cart" + ] + }, + { + "name": "MostPopularSection", + "importPath": "@/components/sections/MostPopularSection", + "position": 5, + "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": 6, + "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": "AdvertBannerSection", + "importPath": "@/components/sections/AdvertBannerSection", + "position": 7, + "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": "BrandCarouselSection", + "importPath": "@/components/sections/BrandCarouselSection", + "position": 8, + "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": "NurturingCampaignsSection", + "importPath": "@/components/sections/NurturingCampaignsSection", + "position": 9, + "role": "cms-campaigns", + "hasImage": true, + "hasForm": false, + "itemCount": -1, + "layout": "grid", + "headings": [ + "Seasonal Blends & Limited Drops" + ], + "buttonLabels": [], + "people": [], + "allText": [ + "use client", + "@/hooks/useVulaContent", + "@/components/ui/Card", + "@/components/ui/Button", + "@/components/ui/Badge", + "next/image", + "campaigns", + "flex justify-center py-16", + "w-8 h-8 rounded-full border-2 border-[#8b5a3c] border-t-transparent animate-spin", + "nurturing-campaigns", + "nurturingcampaigns", + "py-20 bg-[#f9f5f4]", + "container mx-auto px-4", + "text-4xl font-bold text-[#21140d] mb-4 text-center", + "Seasonal Blends & Limited Drops", + "text-[#16a34a] italic text-center mb-12 max-w-2xl mx-auto", + "Small-batch creations rooted in our Pretoria studio", + "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8", + "overflow-hidden hover:shadow-lg transition-all duration-200 ease-out", + "relative h-56 overflow-hidden", + "Campaign image", + "(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw", + "object-cover hover:scale-105 transition-transform duration-500 ease-out", + "accent", + "absolute top-3 left-3", + "Limited Edition", + "text-[#8b5a3c]", + "text-[#16a34a] font-medium", + "text-[#21140d] line-clamp-3", + "default", + "md", + "w-full", + "Shop Now" + ], + "cmsCollection": "campaigns" + }, + { + "name": "RootedMomentsGallerySection", + "importPath": "@/components/sections/RootedMomentsGallerySection", + "position": 10, + "role": "gallery", + "hasImage": true, + "hasForm": false, + "itemCount": -1, + "layout": "grid", + "headings": [ + "Rooted Moments from Our Community" + ], + "buttonLabels": [], + "people": [], + "allText": [ + "use client", + "react", + "@/hooks/useVulaContent", + "@/components/ui/Modal", + "next/image", + "gallery", + "flex justify-center py-16", + "w-8 h-8 rounded-full border-2 border-[#8b5a3c] border-t-transparent animate-spin", + "rooted-moments-gallery", + "rootedmomentsgallery", + "py-20 bg-white", + "container mx-auto px-4", + "text-4xl font-bold text-[#21140d] mb-4 text-center", + "Rooted Moments from Our Community", + "text-[#16a34a] italic text-center mb-12 max-w-2xl mx-auto", + "Real customers, real skin stories – straight from Pretoria", + "grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4", + "relative aspect-square overflow-hidden rounded-2xl cursor-pointer group", + "Gallery photo", + "(max-width: 768px) 50vw, (max-width: 1200px) 33vw, 25vw", + "object-cover group-hover:scale-105 transition-transform duration-500 ease-out", + "absolute inset-0 bg-black/20 opacity-0 group-hover:opacity-100 transition-opacity duration-200 ease-out", + "max-w-4xl", + "relative w-full h-[70vh]", + "Enlarged gallery photo", + "100vw", + "object-contain" + ], + "cmsCollection": "gallery" + }, + { + "name": "VoicesOfNurtureTestimonialsSection", + "importPath": "@/components/sections/VoicesOfNurtureTestimonialsSection", + "position": 11, + "role": "testimonials", + "hasImage": false, + "hasForm": false, + "itemCount": 3, + "layout": "grid", + "headings": [ + "Voices of Nurture" + ], + "buttonLabels": [], + "people": [], + "allText": [ + "use client", + "Thandi Mokoena", + "Midrand regular", + "The marula body butter healed my dry patches within a week — now it steals my morning.", + "Liam Botha", + "First-time buyer", + "Bought the rooibos face oil for my mom. She says it smells like her grandmother's garden.", + "Naledi Nkosi", + "Skin therapist from Rosebank", + "I recommend Ndlovu Naturals to every client. Cold-pressed buchu is a game changer for acne.", + "voices-of-nurture", + "voicesofnurturetestimonials", + "testimonials", + "py-20 bg-[#f9f5f4]", + "container mx-auto px-4", + "text-4xl font-bold text-[#21140d] mb-4 text-center", + "Voices of Nurture", + "text-[#16a34a] italic text-center mb-12 max-w-2xl mx-auto", + "What our community says about their skin journey", + "grid grid-cols-1 md:grid-cols-3 gap-6", + "rounded-xl bg-white p-6 border border-[#e2dad4] shadow-sm", + "text-[#21140d] italic mb-4 leading-relaxed", + "font-semibold text-[#8b5a3c]", + "text-sm text-[#16a34a]" + ] + }, + { + "name": "ConnectWithUsSection", + "importPath": "@/components/sections/ConnectWithUsSection", + "position": 12, + "role": "unknown", + "hasImage": false, + "hasForm": true, + "itemCount": 11, + "layout": "grid", + "headings": [ + "Let's talk botanicals", + "Reach us directly", + "Follow our story" + ], + "buttonLabels": [], + "people": [], + "allText": [ + "use client", + "react", + "@/components/ui/Button", + "@/components/ui/Input", + "lucide-react", + "connectwithus", + "connect-with-us", + "py-20 bg-[#f9f5f4]", + "container mx-auto px-4 max-w-4xl", + "text-center mb-14", + "text-4xl font-serif font-bold text-[#21140d] mb-4", + "Let's talk botanicals", + "text-lg text-[#21140d]/70 max-w-xl mx-auto leading-relaxed", + "Whether you need product advice, wholesale pricing, or a ritual recommendation —\n send us a note. We reply personally within 24 hours.", + "grid md:grid-cols-2 gap-12 items-start", + "space-y-5", + "connect-name", + "block text-sm font-medium text-[#21140d]/80 mb-1", + "Your name", + "Thandi", + "w-full border-[#e2dad4] bg-white", + "connect-email", + "Email address", + "email", + "thandi@example.com", + "connect-message", + "Message", + "What brings you here?", + "w-full border border-[#e2dad4] rounded-lg p-3 bg-white text-[#21140d] placeholder:text-[#21140d]/40 focus:outline-none focus:ring-2 focus:ring-[#8b5a3c]", + "submit", + "default", + "lg", + "w-full bg-[#8b5a3c] hover:bg-[#7a4d32] text-white transition-all duration-200", + "Send message", + "ml-2 h-4 w-4", + "space-y-6 pt-2", + "bg-white rounded-xl p-6 border border-[#e2dad4]", + "text-lg font-semibold text-[#21140d] mb-3", + "Reach us directly", + "space-y-3", + "mailto:hello@ndlovunaturals.co.za", + "flex items-center gap-3 text-[#21140d]/70 hover:text-[#8b5a3c] transition-colors", + "w-5 h-5 text-[#8b5a3c]", + "hello@ndlovunaturals.co.za", + "tel:+27761234567", + "w-5 h-5 text-[#16a34a]", + "+27 76 123 4567", + "Follow our story", + "flex gap-4", + "_blank" + ] + }, + { + "name": "VisitOurPretoriaOasisSection", + "importPath": "@/components/sections/VisitOurPretoriaOasisSection", + "position": 13, + "role": "unknown", + "hasImage": true, + "hasForm": false, + "itemCount": -1, + "layout": "grid", + "headings": [ + "Visit our little oasis in Pretoria", + "Ndlovu Naturals location in Pretoria" + ], + "buttonLabels": [], + "people": [], + "allText": [ + "use client", + "@/hooks/useVulaContent", + "lucide-react", + "@/components/ui/Button", + "next/image", + "business_hours", + "flex justify-center py-16", + "w-8 h-8 rounded-full border-2 border-current border-t-transparent animate-spin", + "visit-pretoria-oasis", + "py-20 bg-white", + "container mx-auto px-4 max-w-6xl", + "grid md:grid-cols-2 gap-12 items-center", + "text-4xl font-serif font-bold text-[#21140d] mb-4", + "Visit our little oasis in Pretoria", + "text-lg text-[#21140d]/70 mb-8 leading-relaxed", + "Come smell the botanicals, feel the textures, and meet the hands that\n craft each batch. Our workshop door is always open — just knock and\n say you're from the land of marula.", + "bg-[#f9f5f4] rounded-xl p-6 space-y-4 mb-8", + "flex gap-3", + "w-5 h-5 text-[#8b5a3c] mt-0.5 shrink-0", + "font-semibold text-[#21140d]", + "Ndlovu Naturals Workshop", + "text-[#21140d]/70", + "123 Lynnwood Road, Pretoria,", + "Gauteng 0002", + "font-semibold text-[#21140d] mb-2", + "Opening hours", + "space-y-1 text-sm", + "flex justify-between gap-4", + "text-[#21140d]/80", + "text-[#ea580c] font-medium", + "Closed", + "text-xs text-[#21140d]/50 mt-2", + "default", + "lg", + "bg-[#8b5a3c] hover:bg-[#7a4d32] text-white", + "_blank", + "Get directions", + "ml-2 h-4 w-4", + "relative h-80 md:h-full min-h-[300px] rounded-xl overflow-hidden shadow-lg", + "Ndlovu Naturals workshop interior", + "object-cover", + "(max-width: 768px) 100vw, 50vw", + "mt-12 rounded-xl overflow-hidden shadow-lg aspect-video", + "100%", + "lazy", + "no-referrer-when-downgrade", + "Ndlovu Naturals location in Pretoria" + ], + "cmsCollection": "business_hours" + }, + { + "name": "RootedNewsletterSection", + "importPath": "@/components/sections/RootedNewsletterSection", + "position": 14, + "role": "blog", + "hasImage": false, + "hasForm": true, + "itemCount": 4, + "layout": "unknown", + "headings": [ + "Stay rooted with us" + ], + "buttonLabels": [], + "people": [], + "allText": [ + "use client", + "react", + "@/components/ui/Button", + "@/components/ui/Input", + "lucide-react", + "rootednewsletter", + "rooted-newsletter", + "py-20 bg-[#8b5a3c]", + "container mx-auto px-4 max-w-2xl text-center", + "text-4xl font-serif font-bold text-white mb-4", + "Stay rooted with us", + "text-lg text-white/80 mb-10 leading-relaxed", + "Stories of indigenous botanicals, skincare rituals, and subscriber-only\n early access to new small batches — delivered to your inbox.", + "bg-white/10 rounded-xl p-8 backdrop-blur-sm", + "text-xl text-white font-semibold", + "Thank you! You're now on the list.", + "text-white/70 mt-2", + "Watch for your first story soon.", + "space-y-4 max-w-md mx-auto", + "Your name", + "w-full border-white/20 bg-white/95 text-[#21140d] placeholder:text-[#21140d]/40", + "email", + "Your email address", + "submit", + "default", + "lg", + "w-full bg-[#ea580c] hover:bg-[#d4520a] text-white transition-all duration-200", + "Join the circle", + "ml-2 h-4 w-4" + ] + } + ], + "navigationLinks": [ + "Ndlovu Naturals", + "Home", + "Rooted Moments Gallery", + "Connect With Us", + "Visit Our Pretoria Oasis", + "Products" + ] +} \ No newline at end of file