From 042731611968fff050d27e56eab4697f9c586d4e Mon Sep 17 00:00:00 2001 From: Vula Builder Date: Sun, 26 Jul 2026 17:41:15 +0000 Subject: [PATCH] Deploy --- vula-index.json | 547 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 547 insertions(+) create mode 100644 vula-index.json diff --git a/vula-index.json b/vula-index.json new file mode 100644 index 0000000..e904c78 --- /dev/null +++ b/vula-index.json @@ -0,0 +1,547 @@ +{ + "projectName": "Mpofana Lodge", + "businessType": "hotel", + "industry": "hotel", + "tone": "", + "tier": 2, + "serviceType": "hotel", + "generatedAt": "2026-07-26T17:29:49.390Z", + "sections": [ + { + "name": "HeroSection", + "importPath": "@/components/sections/HeroSection", + "position": 0, + "role": "hero", + "hasImage": false, + "hasForm": false, + "itemCount": 1, + "layout": "flex-row", + "headings": [], + "buttonLabels": [], + "people": [], + "allText": [ + "next/link", + "hero", + "relative min-h-[72vh] flex flex-col items-center justify-center px-6 py-24 text-center", + "#0f1712", + "#e7eeea", + "pointer-events-none absolute inset-4 z-20 border", + "#16a34a59", + "uppercase tracking-[0.32em] text-[11.5px] text-[#16a34a] mb-4", + "Mpofana Lodge", + "text-6xl lg:text-7xl font-light tracking-[0.01em] mb-7 max-w-4xl", + "Luxury bush accommodation in the heart of KwaZulu Natal offering an", + "italic", + "#16a34a", + "authentic African.", + "text-lg lg:text-xl max-w-xl mb-10", + "#94a89c", + "Professional boutique lodge in South Africa.", + "inline-block border border-[#16a34a] text-[#16a34a] px-9 py-4 text-[12.5px] uppercase tracking-[0.24em] hover:bg-[#16a34a] hover:text-black transition-all duration-300", + "Book a room" + ] + }, + { + "name": "BushStorySection", + "importPath": "@/components/sections/BushStorySection", + "position": 1, + "role": "about", + "hasImage": true, + "hasForm": false, + "itemCount": 5, + "layout": "grid", + "headings": [], + "buttonLabels": [], + "people": [], + "allText": [ + "next/image", + "@/components/ui/Badge", + "bushstory", + "bush-story", + "py-24 bg-[#0f1712]", + "max-w-7xl mx-auto px-4", + "flex items-center gap-4 justify-center mb-4", + "h-px w-14 bg-[#d4af37]", + "text-[#d4af37] font-sans tracking-[0.2em] uppercase text-xs", + "Our Heritage", + "font-serif text-4xl md:text-5xl text-[#e7eeea] text-center font-light mb-16", + "Born from a love of the", + "italic text-[#d4af37]", + "wild", + "grid grid-cols-1 lg:grid-cols-2 gap-12 items-center", + "relative h-72 lg:h-96 overflow-hidden rounded-lg border border-white/10", + "KwaZulu-Natal landscape", + "(max-width: 1024px) 100vw, 50vw", + "object-cover", + "space-y-6", + "text-[#b0c4b4] leading-relaxed", + "Mpofana Lodge was built on a private reserve in the heart of KwaZulu-Natal's bushveld, a region where the rolling hills meet acacia-dotted plains. Our founder, a wildlife guide with two decades of deep-bush experience, envisioned a place where luxury and authenticity coexist.", + "Every suite was positioned by hand to catch the morning sun and frame the waterhole view. The lodge operates on off-grid solar power and sources fresh produce from local farms — a quiet commitment to the land that sustains us.", + "outline", + "border-[#d4af37] text-[#d4af37] text-xs", + "Est. 2017 · 6 suites · 1 500 ha reserve" + ] + }, + { + "name": "LuxuryAccommodationsSection", + "importPath": "@/components/sections/LuxuryAccommodationsSection", + "position": 2, + "role": "unknown", + "hasImage": true, + "hasForm": false, + "itemCount": 15, + "layout": "grid", + "headings": [], + "buttonLabels": [ + "View Room" + ], + "people": [], + "allText": [ + "use client", + "next/image", + "next/link", + "@/hooks/useMedusaProducts", + "@/components/ui/Card", + "@/components/ui/Button", + "@/components/ui/Badge", + "luxuryaccommodations", + "luxury-accommodations", + "py-24 bg-[#15221a]", + "max-w-7xl mx-auto px-4", + "flex items-center gap-4 justify-center mb-4", + "h-px w-14 bg-[#d4af37]", + "text-[#d4af37] font-sans tracking-[0.2em] uppercase text-xs", + "The Suites", + "font-serif text-4xl md:text-5xl text-[#e7eeea] text-center font-light mb-12", + "Where each room tells a", + "italic text-[#d4af37]", + "wilderness", + "story", + "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6", + "animate-pulse", + "h-48 bg-white/5 rounded-t-lg", + "h-4 bg-white/10 rounded w-3/4 mb-2", + "h-3 bg-white/5 rounded w-1/2", + "text-red-400 text-center", + "Unable to load rooms. Please try again later.", + "border border-white/10 rounded-lg overflow-hidden group", + "relative h-48 overflow-hidden", + "(max-width: 768px) 100vw, 33vw", + "object-cover group-hover:scale-105 transition-transform duration-500 ease-out", + "font-serif text-xl text-[#e7eeea]", + "text-sm text-[#b0c4b4] line-clamp-2", + "accent", + "mt-3", + "/ night", + "outline", + "sm", + "w-full text-[#d4af37] border-[#d4af37] hover:bg-[#d4af37] hover:text-[#0f1712]", + "View Room" + ] + }, + { + "name": "SafariExperiencesSection", + "importPath": "@/components/sections/SafariExperiencesSection", + "position": 3, + "role": "unknown", + "hasImage": true, + "hasForm": false, + "itemCount": 3, + "layout": "grid", + "headings": [], + "buttonLabels": [], + "people": [ + "Game Drives", + "Bush Walks", + "Cultural Encounters" + ], + "allText": [ + "next/image", + "@/components/ui/Card", + "@/components/ui/Badge", + "Game Drives", + "Twice‑daily guided safaris in open vehicles. Track lion, leopard and elephant with rangers who grew up on these trails.", + "Daily", + "Bush Walks", + "Walk the ancient paths with a Zulu tracker. Learn the medicinal flora and read the prints left in the red sand.", + "By request", + "Cultural Encounters", + "Visit a nearby Zulu homestead to hear oral histories, taste amasi and witness beadwork that tells a story.", + "Half‑day", + "safariexperiences", + "safari-experiences", + "py-24 bg-[#15221a]", + "max-w-7xl mx-auto px-4", + "flex items-center gap-4 justify-center mb-4", + "h-px w-14 bg-[#d4af37]", + "text-[#d4af37] font-sans tracking-[0.2em] uppercase text-xs", + "Experiences", + "font-serif text-4xl md:text-5xl text-[#e7eeea] text-center font-light mb-16", + "The", + "italic text-[#d4af37]", + "bush", + "is your playground", + "grid grid-cols-1 md:grid-cols-3 gap-6", + "border border-white/10 rounded-lg overflow-hidden group", + "relative h-56 overflow-hidden", + "(max-width: 768px) 100vw, 33vw", + "object-cover group-hover:scale-105 transition-transform duration-500 ease-out", + "absolute top-3 left-3", + "accent", + "text-xs", + "font-serif text-xl text-[#e7eeea]", + "text-sm text-[#b0c4b4]" + ] + }, + { + "name": "CurrentOffersSection", + "importPath": "@/components/sections/CurrentOffersSection", + "position": 4, + "role": "cms-promotions", + "hasImage": true, + "hasForm": false, + "itemCount": -1, + "layout": "grid", + "headings": [ + "{d.title}" + ], + "buttonLabels": [ + "Book Now" + ], + "people": [], + "allText": [ + "use client", + "@/hooks/useEmDashContent", + "next/image", + "@/components/ui/Button", + "@/components/ui/Card", + "promotions", + "flex justify-center py-16", + "w-8 h-8 rounded-full border-2 border-current border-t-transparent animate-spin", + "current-offers", + "currentoffers", + "py-24 bg-[#0f1712]", + "max-w-7xl mx-auto px-4", + "flex items-center justify-center gap-6 mb-16", + "block w-14 h-px bg-[#d4af37]", + "text-[#d4af37] uppercase tracking-[0.2em] text-sm font-medium", + "Seasonal Invitations", + "text-4xl md:text-5xl font-light text-center mb-12 text-[#e7eeea]", + "Exclusive", + "italic text-[#d4af37]", + "Offers", + "Await", + "grid grid-cols-1 md:grid-cols-3 gap-8", + "bg-[#15271c] border border-[#304036] overflow-hidden", + "relative h-56 overflow-hidden", + "(max-width: 768px) 100vw, 33vw", + "object-cover hover:scale-105 transition-transform duration-500 ease-out", + "p-6", + "text-xl font-semibold text-[#e7eeea] mb-2", + "text-[#a0b4a7] text-sm leading-relaxed", + "px-6 pb-6 pt-0 flex items-center justify-between", + "text-[#d4af37] text-lg font-bold", + "number", + "secondary", + "sm", + "bg-[#16a34a] text-white hover:bg-[#12913f] border-0", + "Book Now" + ], + "cmsCollection": "promotions" + }, + { + "name": "GuestTestimonialsSection", + "importPath": "@/components/sections/GuestTestimonialsSection", + "position": 5, + "role": "testimonials", + "hasImage": false, + "hasForm": false, + "itemCount": 3, + "layout": "grid", + "headings": [], + "buttonLabels": [], + "people": [], + "allText": [ + "use client", + "Sarah & James McIntyre", + "From Cape Town", + "The most magical bush break. Every detail was flawless, from sundowners to the roaring campfire.", + "Oliver Schmidt", + "Travel journalist", + "Mpofana Lodge captures the soul of Zululand. A place where time slows and wildlife thrives.", + "Amina & David Osei", + "Anniversary stay", + "Pure luxury woven into nature. The suite, the game drives, the hospitality — unforgettable.", + "guesttestimonials", + "guest-testimonials", + "py-24 bg-[#15271c]", + "max-w-7xl mx-auto px-4", + "flex items-center justify-center gap-6 mb-16", + "block w-14 h-px bg-[#d4af37]", + "text-[#d4af37] uppercase tracking-[0.2em] text-sm font-medium", + "Word of Mouth", + "text-4xl md:text-5xl font-light text-center mb-16 text-[#e7eeea]", + "What", + "italic text-[#d4af37]", + "Guests Say", + "grid grid-cols-1 md:grid-cols-3 gap-8", + "p-6 border border-[#304036] rounded-md bg-[#0f1712]", + "text-[#e7eeea] leading-relaxed mb-6 italic", + "“", + "”", + "font-semibold text-[#d4af37]", + "text-sm text-[#6b8c78]" + ] + }, + { + "name": "GuestGallerySection", + "importPath": "@/components/sections/GuestGallerySection", + "position": 6, + "role": "gallery", + "hasImage": true, + "hasForm": false, + "itemCount": -1, + "layout": "grid", + "headings": [], + "buttonLabels": [], + "people": [], + "allText": [ + "use client", + "@/hooks/useEmDashContent", + "next/image", + "gallery", + "flex justify-center py-16", + "w-8 h-8 rounded-full border-2 border-current border-t-transparent animate-spin", + "guest-gallery", + "guestgallery", + "py-24 bg-[#15271c]", + "max-w-7xl mx-auto px-4", + "flex items-center justify-center gap-6 mb-16", + "block w-14 h-px bg-[#d4af37]", + "text-[#d4af37] uppercase tracking-[0.2em] text-sm font-medium", + "Moments Captured", + "text-4xl md:text-5xl font-light text-center mb-12 text-[#e7eeea]", + "The", + "italic text-[#d4af37]", + "Gallery", + "of Bush Life", + "grid grid-cols-2 md:grid-cols-3 gap-4", + "relative aspect-video overflow-hidden rounded-md border border-[#304036] group", + "(max-width: 768px) 50vw, 33vw", + "object-cover transition-transform duration-500 ease-out group-hover:scale-105", + "absolute inset-0 bg-gradient-to-t from-black/60 via-transparent to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-300 flex items-end p-4", + "text-sm text-white font-medium" + ], + "cmsCollection": "gallery" + }, + { + "name": "LodgeJournalSection", + "importPath": "@/components/sections/LodgeJournalSection", + "position": 7, + "role": "blog", + "hasImage": true, + "hasForm": false, + "itemCount": -1, + "layout": "flex-row", + "headings": [ + "{d.title}" + ], + "buttonLabels": [], + "people": [], + "allText": [ + "use client", + "@/hooks/useEmDashContent", + "next/image", + "lucide-react", + "posts", + "flex justify-center py-16", + "w-8 h-8 rounded-full border-2 border-current border-t-transparent animate-spin", + "lodge-journal", + "lodgejournal", + "py-24 bg-[#0f1712]", + "max-w-7xl mx-auto px-4", + "flex items-center justify-center gap-6 mb-16", + "block w-14 h-px bg-[#d4af37]", + "text-[#d4af37] uppercase tracking-[0.2em] text-sm font-medium", + "Lodge Journal", + "text-4xl md:text-5xl font-light text-center mb-12 text-[#e7eeea]", + "Stories from", + "italic text-[#d4af37]", + "the Bush", + "space-y-10", + "md:flex-row-reverse", + "w-full md:w-1/2 relative h-64 overflow-hidden rounded-md border border-[#304036]", + "(max-width: 768px) 100vw, 50vw", + "object-cover hover:scale-105 transition-transform duration-500 ease-out", + "w-full md:w-1/2", + "text-xs uppercase tracking-widest text-[#d4af37] font-medium", + "Journal", + "text-2xl font-semibold mt-2 mb-3 text-[#e7eeea]", + "text-[#a0b4a7] leading-relaxed mb-4", + "flex items-center gap-4 text-sm text-[#6b8c78]", + "flex items-center gap-1", + "w-4 h-4", + "Mpofana Team", + "Recently" + ], + "cmsCollection": "posts" + }, + { + "name": "BookingCTASection", + "importPath": "@/components/sections/BookingCTASection", + "position": 8, + "role": "booking", + "hasImage": false, + "hasForm": false, + "itemCount": 2, + "layout": "flex-row", + "headings": [], + "buttonLabels": [ + "Reserve Your Room" + ], + "people": [], + "allText": [ + "next/link", + "@/components/ui/Button", + "booking-cta", + "py-28 bg-[#0f1712] border-t border-[#304036]", + "container mx-auto px-4 max-w-4xl text-center", + "flex items-center justify-center gap-4 mb-6", + "block w-14 h-px bg-[#d4af37]", + "text-[#d4af37] text-xs font-sans uppercase tracking-[0.2em]", + "Reserve Your Sanctuary", + "font-serif font-light text-4xl md:text-5xl text-[#e7eeea] leading-tight mb-6", + "italic text-[#d4af37]", + "Best", + "available rate,", + "no hidden fees", + "text-[#b0bfb8] text-lg max-w-xl mx-auto mb-10", + "Effortless reservation with a direct booking promise — the price you\n see is the price you pay.", + "default", + "lg", + "bg-[#d4af37] hover:bg-[#c9a230] text-[#0f1712] px-10 py-3 text-lg font-sans uppercase tracking-widest", + "Reserve Your Room" + ] + }, + { + "name": "ContactSection", + "importPath": "@/components/sections/ContactSection", + "position": 9, + "role": "contact", + "hasImage": true, + "hasForm": false, + "itemCount": -1, + "layout": "grid", + "headings": [ + "Opening Hours", + "Mpofana Lodge location" + ], + "buttonLabels": [ + "WhatsApp Us" + ], + "people": [], + "allText": [ + "use client", + "@/hooks/useEmDashContent", + "lucide-react", + "@/components/ui/Badge", + "business_hours", + "flex justify-center py-16", + "w-8 h-8 rounded-full border-2 border-[#d4af37] border-t-transparent animate-spin", + "R618, Mkuze, KwaZulu-Natal, 3965", + "+27 82 123 4567", + "reservations@mpofanalodge.co.za", + "contact", + "py-28 bg-[#0a120e] text-[#e7eeea] border-t border-[#304036]", + "container mx-auto px-4 max-w-6xl", + "flex items-center justify-center gap-4 mb-6", + "block w-14 h-px bg-[#d4af37]", + "text-[#d4af37] text-xs font-sans uppercase tracking-[0.2em]", + "Get in Touch", + "font-serif font-light text-4xl md:text-5xl text-center leading-tight mb-16", + "We're here to", + "italic text-[#d4af37]", + "help", + "grid grid-cols-1 lg:grid-cols-2 gap-12", + "rounded-lg overflow-hidden border border-[#304036] h-80", + "100%", + "lazy", + "no-referrer-when-downgrade", + "Mpofana Lodge location", + "space-y-8", + "space-y-4", + "flex items-start gap-3", + "w-5 h-5 text-[#d4af37] mt-0.5 shrink-0", + "text-[#b0bfb8]", + "flex items-center gap-3", + "w-5 h-5 text-[#d4af37] shrink-0", + "_blank", + "noopener noreferrer", + "text-[#b0bfb8] hover:text-[#d4af37] transition-colors duration-200 underline underline-offset-2", + "WhatsApp Us", + "border-t border-[#304036] pt-6", + "font-sans text-xs uppercase tracking-[0.15em] text-[#d4af37] mb-4", + "Opening Hours", + "space-y-2", + "flex justify-between text-sm text-[#b0bfb8]", + "font-medium", + "Closed", + "text-[#6a7a72] ml-2", + "text-[#6a7a72] text-xs mt-3", + "* Public holidays may affect hours.", + "bg-[#1a2720] rounded-lg p-5 border border-[#304036]", + "text-[#b0bfb8] text-sm" + ], + "cmsCollection": "business_hours" + }, + { + "name": "LodgePoliciesSection", + "importPath": "@/components/sections/LodgePoliciesSection", + "position": 10, + "role": "unknown", + "hasImage": false, + "hasForm": false, + "itemCount": -1, + "layout": "grid", + "headings": [], + "buttonLabels": [], + "people": [], + "allText": [ + "use client", + "@/hooks/useEmDashContent", + "@/components/ui/Card", + "policies", + "flex justify-center py-16", + "w-8 h-8 rounded-full border-2 border-[#d4af37] border-t-transparent animate-spin", + "lodge-policies", + "lodgepolicies", + "py-28 bg-[#0f1712] border-t border-[#304036]", + "container mx-auto px-4 max-w-6xl", + "flex items-center justify-center gap-4 mb-6", + "block w-14 h-px bg-[#d4af37]", + "text-[#d4af37] text-xs font-sans uppercase tracking-[0.2em]", + "Lodge Policies", + "font-serif font-light text-4xl md:text-5xl text-center text-[#e7eeea] leading-tight mb-16", + "Designed for your", + "italic text-[#d4af37]", + "ease", + "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6", + "bg-[#1a2720] border border-[#304036] rounded-lg", + "text-lg font-sans uppercase tracking-widest text-[#d4af37]", + "text-[#b0bfb8] text-sm leading-relaxed", + "text-center text-[#6a7a72] text-sm mt-12", + "Policy details coming soon. For immediate questions, please contact\n us directly." + ], + "cmsCollection": "policies" + } + ], + "navigationLinks": [ + "Mpofana Lodge", + "Home", + "Luxury Accommodations", + "Bush Story", + "Guest Gallery", + "Contact", + "Book a Room" + ] +} \ No newline at end of file