This commit is contained in:
Vula Builder
2026-07-31 14:12:27 +00:00
parent bd369cb97e
commit 0080dfb304
+576
View File
@@ -0,0 +1,576 @@
{
"projectName": "iKhaya Home",
"businessType": "",
"industry": "",
"tone": "",
"tier": 3,
"generatedAt": "2026-07-31T13:51:44.277Z",
"sections": [
{
"name": "HeroSection",
"importPath": "@/components/sections/HeroSection",
"position": 0,
"role": "hero",
"hasImage": true,
"hasForm": false,
"itemCount": 3,
"layout": "flex-row",
"headings": [],
"buttonLabels": [],
"people": [],
"allText": [
"next/image",
"next/link",
"hero",
"relative min-h-[88vh] text-white",
"iKhaya Home",
"absolute inset-0 object-cover",
"100vw",
"absolute inset-0",
"linear-gradient(135deg, #ea580c, #6b8e23)",
"absolute inset-0 bg-gradient-to-t from-black/60 via-black/30 to-black/10",
"relative z-10 flex flex-col items-center justify-center min-h-[88vh] text-center px-6",
"uppercase tracking-[0.1em] text-[12.5px] font-semibold text-white/70 mb-4",
"text-5xl lg:text-6xl font-extrabold tracking-[-0.02em] mb-6 max-w-4xl",
"A Durban-based online homeware brand offering handcrafted cushions, throws,",
"text-[#8b5a3c]",
"and ceramics.",
"text-lg lg:text-xl text-white/80 max-w-2xl mb-9",
"Professional online homeware store in South Africa.",
"inline-block bg-[#8b5a3c] text-white px-8 py-4 text-base font-bold rounded-xl shadow-lg hover:-translate-y-0.5 transition-all duration-200",
"Shop now"
]
},
{
"name": "IkayaStorySection",
"importPath": "@/components/sections/IkayaStorySection",
"position": 1,
"role": "blog",
"hasImage": true,
"hasForm": false,
"itemCount": -1,
"layout": "grid",
"headings": [
"Latest Posts",
"{d.title}"
],
"buttonLabels": [],
"people": [],
"allText": [
"use client",
"next/image",
"@/hooks/useVulaContent",
"posts",
"flex justify-center py-16",
"w-8 h-8 rounded-full border-2 border-current border-t-transparent animate-spin",
"ikayastory",
"py-16 bg-gray-50",
"max-w-6xl mx-auto px-4 sm:px-6 lg:px-8",
"text-center mb-10",
"text-3xl font-bold text-gray-900",
"Latest Posts",
"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8",
"bg-white rounded-xl overflow-hidden shadow-sm hover:shadow-md transition-shadow",
"relative h-48",
"object-cover",
"p-6",
"text-xs font-semibold uppercase tracking-wide text-blue-600",
"mt-2 text-lg font-bold text-gray-900 leading-snug",
"mt-2 text-gray-600 text-sm line-clamp-3",
"mt-4 text-xs text-gray-400",
"By"
],
"cmsCollection": "posts"
},
{
"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/useVulaCart",
"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": "MostPopularSection",
"importPath": "@/components/sections/MostPopularSection",
"position": 3,
"role": "unknown",
"hasImage": false,
"hasForm": false,
"itemCount": 12,
"layout": "grid",
"headings": [
"Most Popular"
],
"buttonLabels": [],
"people": [],
"allText": [
"use client",
"react",
"@/hooks/useVulaCart",
"@/hooks/useProducts",
"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": "AdvertBannerSection",
"importPath": "@/components/sections/AdvertBannerSection",
"position": 4,
"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": "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",
"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": "BrandCarouselSection",
"importPath": "@/components/sections/BrandCarouselSection",
"position": 6,
"role": "partners",
"hasImage": false,
"hasForm": false,
"itemCount": 3,
"layout": "flex-row",
"headings": [
"Shop by Category"
],
"buttonLabels": [],
"people": [],
"allText": [
"next/link",
"py-10 px-4",
"max-w-7xl mx-auto",
"text-xl font-bold mb-5",
"Shop by Category",
"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 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": "FindYourIkayaStyleSection",
"importPath": "@/components/sections/FindYourIkayaStyleSection",
"position": 7,
"role": "unknown",
"hasImage": true,
"hasForm": false,
"itemCount": 5,
"layout": "flex-row",
"headings": [
"Ready to bring iKhaya into your home?"
],
"buttonLabels": [],
"people": [],
"allText": [
"use client",
"next/image",
"next/link",
"lucide-react",
"findyourikayastyle",
"find-your-style",
"relative overflow-hidden bg-[#21140d]",
"relative h-[70vh] lg:h-[80vh]",
"Sunlit Durban lounge styled with iKhaya cushions, throws and ceramics",
"100vw",
"object-cover opacity-80",
"absolute inset-0 bg-gradient-to-r from-[#21140d]/75 via-[#21140d]/30 to-transparent",
"absolute inset-0 flex items-center",
"mx-auto w-full max-w-6xl px-4",
"max-w-xl",
"mb-3 text-sm font-semibold uppercase tracking-widest text-[#e2d9d4]",
"The iKhaya Edit",
"font-display text-4xl leading-tight text-white sm:text-5xl lg:text-6xl",
"Ready to bring iKhaya into your home?",
"mt-6 mb-8 max-w-md text-lg text-[#f9f5f4]/90",
"Shop handcrafted cushions, throws and ceramics made by Durban artisans — shipped nationwide.",
"inline-flex items-center gap-2 rounded-xl bg-[#ea580c] px-6 py-3.5 text-base font-semibold text-white transition-all duration-200 ease-out hover:gap-3 hover:bg-[#c24a0a]",
"Explore the collection",
"h-5 w-5"
]
},
{
"name": "KhulumaNathiSection",
"importPath": "@/components/sections/KhulumaNathiSection",
"position": 8,
"role": "unknown",
"hasImage": false,
"hasForm": true,
"itemCount": -1,
"layout": "grid",
"headings": [
"Tell us about your space — we’re listening.",
"Send us a note"
],
"buttonLabels": [],
"people": [],
"allText": [
"use client",
"react",
"lucide-react",
"@/components/ui/Button",
"@/components/ui/Input",
"@/hooks/useVulaContent",
"27825550147",
"hello@ikhayahome.co.za",
"business_hours",
"flex justify-center py-16",
"w-8 h-8 rounded-full border-2 border-current border-t-transparent animate-spin",
"contact",
"khulumanathi",
"bg-[#f9f5f4] py-20 px-4",
"mx-auto grid max-w-6xl gap-12 lg:grid-cols-2 lg:items-start",
"text-sm font-semibold uppercase tracking-widest text-[#8b5a3c]",
"Khuluma nathi",
"mt-2 font-display text-4xl leading-tight text-[#21140d]",
"Tell us about your space — we’re listening.",
"mt-4 mb-8 text-[#5b463a]",
"Need help choosing cushion colours or ceramic finishes? Our Durban studio replies within one working day.",
"space-y-4",
"_blank",
"noreferrer",
"flex items-center gap-4 rounded-2xl border border-[#e2d9d4] bg-white p-4 transition-all duration-200 ease-out hover:border-[#6b8e23] hover:shadow-md",
"h-6 w-6 text-[#6b8e23]",
"block text-sm text-[#8b5a3c]",
"WhatsApp us",
"font-semibold text-[#21140d]",
"Chat to the studio",
"flex items-center gap-4 rounded-2xl border border-[#e2d9d4] bg-white p-4 transition-all duration-200 ease-out hover:border-[#ea580c] hover:shadow-md",
"h-6 w-6 text-[#ea580c]",
"Email us",
"mt-8 rounded-2xl border border-[#e2d9d4] bg-white/70 p-6",
"mb-4 flex items-center gap-2 font-display text-xl text-[#21140d]",
"h-5 w-5 text-[#ea580c]",
"Trading hours",
"divide-y divide-[#e2d9d4]",
"flex items-center justify-between py-2 text-sm",
"text-[#21140d]",
"font-medium text-[#6b8e23]",
"Closed",
"mt-3 text-xs text-[#8b5a3c]",
"Open on public holidays — call ahead to confirm.",
"rounded-2xl border border-[#e2d9d4] bg-white p-6 shadow-lg sm:p-8",
"font-display text-2xl text-[#21140d]",
"Send us a note",
"mt-1 mb-6 text-sm text-[#5b463a]",
"No question is too small.",
"Your name"
],
"cmsCollection": "business_hours"
},
{
"name": "IkayaMailSection",
"importPath": "@/components/sections/IkayaMailSection",
"position": 9,
"role": "unknown",
"hasImage": false,
"hasForm": true,
"itemCount": 2,
"layout": "flex-row",
"headings": [
"Join the iKhaya family"
],
"buttonLabels": [
"Sign me up"
],
"people": [],
"allText": [
"use client",
"react",
"lucide-react",
"@/components/ui/Button",
"@/components/ui/Input",
"ikayamail",
"newsletter",
"bg-[#8b5a3c] px-4 py-16",
"mx-auto max-w-3xl rounded-3xl border border-[#e2d9d4] bg-white p-8 text-center shadow-lg sm:p-12",
"mx-auto mb-4 inline-flex h-12 w-12 items-center justify-center rounded-2xl bg-[#f9f5f4] text-[#ea580c]",
"h-6 w-6",
"font-display text-3xl text-[#21140d] sm:text-4xl",
"Join the iKhaya family",
"mx-auto mt-3 mb-8 max-w-xl text-[#5b463a]",
"First access to new artisan collections, design inspiration from Durban, and the stories behind every hand-painted pattern. No hard sell — just an invitation to stay connected.",
"font-semibold text-[#6b8e23]",
"Sawubona! Check your inbox to confirm your welcome note.",
"mx-auto flex max-w-md flex-col gap-3 sm:flex-row",
"email",
"Your email address",
"flex-1",
"submit",
"default",
"Sign me up"
]
},
{
"name": "iKhayaHeroSection",
"importPath": "@/components/sections/iKhayaHeroSection",
"position": 99,
"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",
"ikhayahero",
"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": "iKhayaOffersSection",
"importPath": "@/components/sections/iKhayaOffersSection",
"position": 99,
"role": "cms-campaigns",
"hasImage": true,
"hasForm": false,
"itemCount": -1,
"layout": "flex-row",
"headings": [
"{d.headline}"
],
"buttonLabels": [],
"people": [],
"allText": [
"use client",
"next/image",
"@/hooks/useVulaContent",
"campaigns",
"flex justify-center py-16",
"w-8 h-8 rounded-full border-2 border-current border-t-transparent animate-spin",
"ikhayaoffers",
"py-16 bg-gray-900 text-white",
"max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 space-y-10",
"relative overflow-hidden rounded-2xl shadow-xl min-h-[320px] flex items-end",
"object-cover opacity-40",
"relative z-10 p-8 sm:p-12 max-w-2xl",
"text-xs font-bold uppercase tracking-widest text-yellow-400 mb-2",
"text-3xl sm:text-4xl font-bold mb-3",
"text-gray-200 mb-6 leading-relaxed",
"px-8 py-3 bg-yellow-400 text-gray-900 font-bold rounded-full hover:bg-yellow-300 transition-colors"
],
"cmsCollection": "campaigns"
},
{
"name": "UmuziGallerySection",
"importPath": "@/components/sections/UmuziGallerySection",
"position": 99,
"role": "gallery",
"hasImage": true,
"hasForm": false,
"itemCount": -1,
"layout": "grid",
"headings": [
"Gallery"
],
"buttonLabels": [],
"people": [],
"allText": [
"use client",
"next/image",
"@/hooks/useVulaContent",
"gallery",
"flex justify-center py-16",
"w-8 h-8 rounded-full border-2 border-current border-t-transparent animate-spin",
"umuzigallery",
"py-16 bg-white",
"max-w-6xl mx-auto px-4 sm:px-6 lg:px-8",
"text-center mb-10",
"text-3xl font-bold text-gray-900",
"Gallery",
"grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 gap-4",
"group relative aspect-square rounded-xl overflow-hidden bg-gray-100",
"object-cover group-hover:scale-110 transition-transform duration-500",
"absolute inset-0 bg-black/50 opacity-0 group-hover:opacity-100 transition-opacity flex items-end p-3",
"text-white text-sm font-medium"
],
"cmsCollection": "gallery"
},
{
"name": "iKhayaCollectionsSection",
"importPath": "@/components/sections/iKhayaCollectionsSection",
"position": 99,
"role": "unknown",
"hasImage": true,
"hasForm": false,
"itemCount": -1,
"layout": "grid",
"headings": [
"{title}"
],
"buttonLabels": [],
"people": [],
"allText": [
"use client",
"next/image",
"@/hooks/useVulaContent",
"product_carousels",
"flex justify-center py-16",
"w-8 h-8 rounded-full border-2 border-current border-t-transparent animate-spin",
"ikhayacollections",
"py-16 bg-white",
"max-w-6xl mx-auto px-4 sm:px-6 lg:px-8",
"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6",
"bg-white rounded-xl overflow-hidden shadow-md hover:shadow-lg transition-shadow border border-gray-100",
"relative h-48",
"object-cover",
"p-5",
"font-semibold text-gray-900 mb-2",
"text-gray-600 text-sm"
],
"cmsCollection": "product_carousels"
}
],
"navigationLinks": [
"iKhaya Home",
"Home",
"Ikaya Story",
"i Khaya Offers",
"Umuzi Gallery",
"i Khaya Collections",
"Khuluma Nathi",
"Products",
"My Account"
]
}