{ "projectName": "Jozi wear", "businessType": "", "industry": "", "tone": "", "tier": 3, "generatedAt": "2026-07-27T18:59:09.476Z", "sections": [ { "name": "HeroSection", "importPath": "@/components/sections/HeroSection", "position": 0, "role": "hero", "hasImage": true, "hasForm": false, "itemCount": -1, "layout": "flex-row", "headings": [ "{d.title}" ], "buttonLabels": [], "people": [], "allText": [ "use client", "next/image", "@/hooks/useVulaContent", "hero_banners", "flex justify-center py-16", "w-8 h-8 rounded-full border-2 border-current border-t-transparent animate-spin", "hero", "relative overflow-hidden bg-gray-900 text-white", "relative min-h-[480px] flex items-center", "object-cover opacity-40", "relative z-10 max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 py-24", "text-4xl sm:text-5xl font-bold mb-4 max-w-2xl", "text-xl text-gray-200 mb-8 max-w-xl", "inline-flex items-center px-8 py-3 bg-white text-gray-900 font-bold rounded-full hover:bg-gray-100 transition-colors" ], "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": "FeaturedProductsSection", "importPath": "@/components/sections/FeaturedProductsSection", "position": 2, "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": "NewArrivalsSection", "importPath": "@/components/sections/NewArrivalsSection", "position": 3, "role": "unknown", "hasImage": false, "hasForm": false, "itemCount": 7, "layout": "grid", "headings": [ "JUST LANDED", "{product.title}" ], "buttonLabels": [], "people": [], "allText": [ "use client", "@/hooks/useMedusaProducts", "@/components/ui/Card", "@/components/ui/Badge", "next/link", "KSh", "flex justify-center py-16", "w-8 h-8 rounded-full border-2 border-[#ea580c] border-t-transparent animate-spin", "new-arrivals", "bg-[#18181b] py-20 px-4", "max-w-7xl mx-auto", "text-4xl md:text-5xl font-black uppercase tracking-tight text-white mb-2", "JUST LANDED", "text-[#ea580c] uppercase tracking-widest text-sm mb-10", "Fresh drops from Soweto's finest", "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6", "group", "bg-white border-2 border-[#18181b] shadow-[6px_6px_0_0_#ea580c] rounded-none overflow-hidden transition-all duration-200 ease-out hover:shadow-[8px_8px_0_0_#ea580c] hover:-translate-x-0.5 hover:-translate-y-0.5", "aspect-square overflow-hidden", "w-full h-full object-cover group-hover:scale-105 transition-transform duration-500 ease-out", "p-4", "text-lg font-bold text-[#18181b] uppercase tracking-wide", "text-[#ea580c] font-semibold text-lg mt-1" ] }, { "name": "MostPopularSection", "importPath": "@/components/sections/MostPopularSection", "position": 4, "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": 5, "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": "DropCampaignsSection", "importPath": "@/components/sections/DropCampaignsSection", "position": 6, "role": "cms-campaigns", "hasImage": true, "hasForm": false, "itemCount": -1, "layout": "grid", "headings": [ "DROP CAMPAIGNS", "{d.title}" ], "buttonLabels": [], "people": [], "allText": [ "use client", "@/hooks/useVulaContent", "@/components/ui/Button", "next/image", "campaigns", "flex justify-center py-16", "w-8 h-8 rounded-full border-2 border-[#ea580c] border-t-transparent animate-spin", "drops", "bg-white py-20 px-4", "max-w-7xl mx-auto", "text-4xl md:text-5xl font-black uppercase tracking-tight text-[#18181b] mb-2", "DROP CAMPAIGNS", "text-[#ea580c] uppercase tracking-widest text-sm mb-10", "Limited drops — move before they vanish", "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6", "bg-[#18181b] border-2 border-[#ea580c] shadow-[6px_6px_0_0_#16a34a] rounded-none overflow-hidden", "relative h-56 overflow-hidden", "Campaign image", "(max-width: 768px) 100vw, 50vw", "object-cover", "absolute inset-0 bg-gradient-to-t from-[#18181b] to-transparent", "p-6", "text-2xl font-black uppercase text-white tracking-tight", "text-[#ea580c] uppercase text-sm mt-1 font-bold", "text-gray-300 mt-3 text-sm leading-relaxed", "default", "sm", "mt-4 bg-[#ea580c] text-white border-2 border-[#18181b] shadow-[3px_3px_0_0_#16a34a] uppercase font-black" ], "cmsCollection": "campaigns" }, { "name": "StreetStyleGallerySection", "importPath": "@/components/sections/StreetStyleGallerySection", "position": 7, "role": "gallery", "hasImage": true, "hasForm": false, "itemCount": -1, "layout": "flex-row", "headings": [ "STREET STYLE", "{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-[#ea580c] border-t-transparent animate-spin", "bg-[#18181b] py-20 px-4", "max-w-7xl mx-auto", "text-4xl md:text-5xl font-black uppercase tracking-tight text-white mb-2", "STREET STYLE", "text-[#ea580c] uppercase tracking-widest text-sm mb-10", "From Vilakazi to the world", "columns-1 sm:columns-2 lg:columns-3 gap-6 space-y-6", "break-inside-avoid bg-white border-2 border-[#ea580c] shadow-[6px_6px_0_0_#16a34a] rounded-none overflow-hidden", "relative", "Gallery image", "w-full h-auto object-cover", "4/3", "p-4", "text-lg font-black uppercase text-[#18181b] tracking-tight", "text-gray-600 text-sm mt-1" ], "cmsCollection": "gallery" }, { "name": "OriginRootsSection", "importPath": "@/components/sections/OriginRootsSection", "position": 8, "role": "blog", "hasImage": true, "hasForm": false, "itemCount": -1, "layout": "grid", "headings": [], "buttonLabels": [ "Shop Collection" ], "people": [ "Our Roots" ], "allText": [ "use client", "@/hooks/useVulaContent", "next/image", "@/components/ui/Button", "next/link", "posts", "flex justify-center py-16", "w-8 h-8 rounded-full border-2 border-current border-t-transparent animate-spin", "our-story", "originroots", "bg-[#18181b] text-white py-20", "max-w-7xl mx-auto px-4", "grid grid-cols-1 lg:grid-cols-2 gap-12 items-center", "relative h-[400px] lg:h-[550px] overflow-hidden border-[3px] border-[#ea580c] shadow-[8px_8px_0_0_#16a34a]", "Our Roots", "(max-width: 768px) 100vw, 50vw", "object-cover", "flex flex-col justify-center", "text-[#16a34a] uppercase tracking-[0.2em] text-sm font-bold mb-2", "text-4xl md:text-5xl font-black uppercase tracking-tighter leading-none mb-4", "text-white", "text-[#ea580c]", "2px #ea580c", "transparent", "text-lg text-gray-300 uppercase tracking-wide mb-6", "text-base text-gray-400 leading-relaxed mb-8", "flex items-center gap-4 border-t-2 border-[#ea580c] pt-4", "text-sm uppercase tracking-wider text-gray-300", "By", "text-white font-bold", "outline", "border-2 border-white text-white hover:bg-white hover:text-[#18181b] rounded-none uppercase tracking-widest text-xs shadow-[4px_4px_0_0_#16a34a] hover:shadow-[6px_6px_0_0_#ea580c] transition-all duration-200 ease-out", "Shop Collection" ], "cmsCollection": "posts" }, { "name": "AdvertBannerSection", "importPath": "@/components/sections/AdvertBannerSection", "position": 9, "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": "RepTheStreetsSection", "importPath": "@/components/sections/RepTheStreetsSection", "position": 10, "role": "blog", "hasImage": true, "hasForm": false, "itemCount": -1, "layout": "grid", "headings": [ "THE STREETS SPEAK" ], "buttonLabels": [], "people": [], "allText": [ "use client", "@/hooks/useVulaContent", "next/image", "posts", "flex justify-center py-16", "w-8 h-8 rounded-full border-2 border-[#ea580c] border-t-transparent animate-spin", "rep-the-streets", "bg-white py-20 px-4", "max-w-7xl mx-auto", "text-4xl md:text-5xl font-black uppercase tracking-tight text-[#18181b] mb-2", "THE STREETS SPEAK", "text-[#ea580c] uppercase tracking-widest text-sm mb-10", "Real people. Real fit. Real talk.", "grid grid-cols-1 md:grid-cols-3 gap-6", "bg-[#18181b] border-2 border-[#ea580c] shadow-[6px_6px_0_0_#16a34a] rounded-none p-6", "text-yellow-400 text-lg", "text-gray-200 text-base italic mt-2 leading-relaxed", "“", "”", "flex items-center gap-3 mt-5 pt-4 border-t border-[#ea580c]/40", "w-12 h-12 rounded-full overflow-hidden border-2 border-[#ea580c]", "Testimonial", "object-cover w-full h-full", "text-white font-bold uppercase text-sm", "Street Fam", "text-[#ea580c] text-xs uppercase tracking-wider" ], "cmsCollection": "posts" }, { "name": "JoinTheHustleCTASection", "importPath": "@/components/sections/JoinTheHustleCTASection", "position": 11, "role": "cta", "hasImage": true, "hasForm": true, "itemCount": 4, "layout": "grid", "headings": [ "Claim Your Stripes" ], "buttonLabels": [ "Shop the Drop", "Get Early Access" ], "people": [], "allText": [ "use client", "@/components/ui/Button", "@/components/ui/Input", "next/image", "next/link", "react", "jointhehustlecta", "shop-cta", "bg-[#18181b] text-white py-20 px-6", "max-w-6xl mx-auto grid grid-cols-1 md:grid-cols-2 gap-12 items-center", "text-5xl font-bold uppercase leading-tight", "Claim Your Stripes", "mt-4 text-lg", "Limited drops, bold African prints. Join the movement.", "mt-8 flex flex-wrap gap-4 items-center", "default", "lg", "bg-[#ea580c] hover:bg-[#d94d0a] border-2 border-[#ea580c] shadow-[4px_4px_0_0_#d4a017] transition-all duration-200", "Shop the Drop", "flex gap-2 items-center", "email", "Enter email", "border-2 border-white bg-transparent text-white placeholder-gray-400", "submit", "outline", "border-2 border-[#d4a017] text-[#d4a017] hover:bg-[#d4a017] hover:text-black shadow-[4px_4px_0_0_#d4a017] transition-all duration-200", "Get Early Access", "text-[#16a34a] text-lg font-semibold", "You're in. Welcome to the movement.", "relative h-64 md:h-80 overflow-hidden border-2 border-[#ea580c] shadow-[6px_6px_0_0_#d4a017]", "Street style in Soweto", "object-cover", "(max-width: 768px) 100vw, 50vw" ] }, { "name": "ContactKhulumaSection", "importPath": "@/components/sections/ContactKhulumaSection", "position": 12, "role": "contact", "hasImage": true, "hasForm": true, "itemCount": -1, "layout": "grid", "headings": [ "Khuluma Nawe", "Trading Hours" ], "buttonLabels": [ "Send Message" ], "people": [], "allText": [ "use client", "@/hooks/useVulaContent", "@/components/ui/Button", "@/components/ui/Input", "lucide-react", "next/image", "next/link", "react", "business_hours", "flex justify-center py-16", "w-8 h-8 rounded-full border-2 border-current border-t-transparent animate-spin", "Instagram", "Facebook", "WhatsApp", "contact", "contactkhuluma", "py-20 bg-[#18181b] text-white", "max-w-6xl mx-auto px-6 grid grid-cols-1 lg:grid-cols-2 gap-12", "text-4xl font-bold uppercase tracking-tight", "Khuluma Nawe", "mt-2 text-lg text-gray-300", "Reach out or come through to our Soweto spot.", "mt-6 space-y-4", "flex items-center gap-2 text-gray-300", "w-5 h-5 text-[#ea580c]", "123 Vilakazi Street, Orlando West, Soweto, 1804", "+27 73 123 4567", "info@joziwear.co.za", "mt-8 space-y-4", "name", "Your name", "bg-transparent border-2 border-[#ea580c] text-white placeholder-gray-400", "email", "Your email", "message", "Your message", "w-full bg-transparent border-2 border-[#ea580c] text-white placeholder-gray-400 p-3 rounded-none focus:outline-none", "submit", "default", "bg-[#ea580c] hover:bg-[#d94d0a] border-2 border-[#ea580c] shadow-[4px_4px_0_0_#d4a017] w-full", "Send Message", "mt-8 p-4 border-2 border-[#16a34a] text-[#16a34a]", "font-semibold", "Sizo thinta (We'll be in touch)!", "mt-8 flex gap-4", "_blank", "noopener noreferrer", "p-3 border-2 border-[#ea580c] hover:bg-[#ea580c] transition-colors duration-200", "w-5 h-5", "border-2 border-[#ea580c] p-6" ], "cmsCollection": "business_hours" } ], "navigationLinks": [ "Jozi wear", "Home", "Featured Products", "Origin Roots", "New Arrivals", "Drop Campaigns", "Contact Khuluma", "Products" ] }