From 29f2750596f883ba6f7ccf6e69275521d843792a Mon Sep 17 00:00:00 2001 From: Vula Builder Date: Tue, 23 Jun 2026 08:38:35 +0000 Subject: [PATCH] Deploy --- vula-index.json | 507 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 507 insertions(+) create mode 100644 vula-index.json diff --git a/vula-index.json b/vula-index.json new file mode 100644 index 0000000..b915474 --- /dev/null +++ b/vula-index.json @@ -0,0 +1,507 @@ +{ + "projectName": "KwaNtofontofo", + "businessType": "hotel", + "industry": "hotel", + "tone": "", + "tier": 2, + "serviceType": "hotel", + "generatedAt": "2026-06-23T07:49:35.004Z", + "sections": [ + { + "name": "WarmRegalWelcomeHeroSection", + "importPath": "@/components/sections/WarmRegalWelcomeHeroSection", + "position": 0, + "role": "hero", + "hasImage": true, + "hasForm": false, + "itemCount": 3, + "layout": "flex-row", + "headings": [], + "buttonLabels": [ + "Book Your Royal Stay" + ], + "people": [], + "allText": [ + "next/image", + "next/link", + "@/components/ui/Button", + "warmregalwelcomehero", + "hero", + "relative h-[80vh] lg:h-[90vh] overflow-hidden", + "KwaNtofontofo guest house exterior with swimming pool and nature reserve view", + "100vw", + "object-cover", + "absolute inset-0 bg-black/50", + "absolute inset-0 flex items-center", + "container mx-auto px-4 text-center", + "text-4xl md:text-6xl font-bold text-white mb-4", + "Welcome to", + "text-[#d4af37]", + "KwaNtofontofo", + "text-lg md:text-xl text-white/90 max-w-2xl mx-auto mb-8", + "Experience complete privacy and regal comfort just 1 km from Pietermaritzburg Airport. \n Across the street, zebras graze and monkeys play in the nature reserve. \n This is your home away from home — where you are treated like royalty.", + "default", + "lg", + "bg-[#d4af37] hover:bg-[#b8962f] text-white px-8 py-3 rounded-lg font-semibold", + "Book Your Royal Stay" + ] + }, + { + "name": "KwaNtofontofoStorySection", + "importPath": "@/components/sections/KwaNtofontofoStorySection", + "position": 1, + "role": "about", + "hasImage": true, + "hasForm": false, + "itemCount": 13, + "layout": "grid", + "headings": [ + "Our Story — A Home Away from Home" + ], + "buttonLabels": [], + "people": [], + "allText": [ + "next/image", + "lucide-react", + "kwantofontofostory", + "our-story", + "py-20 bg-white", + "container mx-auto px-4", + "grid grid-cols-1 lg:grid-cols-2 gap-12 items-center", + "relative h-80 lg:h-[500px] overflow-hidden rounded-xl", + "KwaNtofontofo guest house with peaceful outdoor area", + "(max-width: 768px) 100vw, 50vw", + "object-cover", + "text-3xl md:text-4xl font-bold text-gray-900 mb-6", + "Our Story — A Home Away from Home", + "space-y-4 text-gray-600 leading-relaxed", + "KwaNtofontofo was born in 2004 with a clear dream: to become one of the finest guest houses in KwaZulu-Natal. \n Nestled at", + "44 Rutherford Circle, Bisley, Pietermaritzburg", + ", we offer a sanctuary of complete privacy \n where you can unwind and feel truly at home. Just across the street, a nature reserve hosts zebras grazing and monkeys \n swinging in the trees — a daily reminder of the natural beauty surrounding us.", + "Our vision is to be synonymous with the highest professional standards, with staff equipped to welcome guests from all \n walks of life. Our mission: to provide excellent, efficient, and professional services within safe, affordable, and \n accessible facilities — exceeding expectations through trained staff who live the spirit of", + "ubuntu", + "What awaits you:", + "tea and coffee in your room, free secure parking monitored by a burglar alarm, \n Wi-Fi throughout, laundry service, a refreshing swimming pool with a tranquil entertainment area and braai facilities, \n and a delicious traditional English breakfast served daily (dinner available on request). Whether you are a business \n traveler, a UKZN academic, an airport transit guest, or a leisure tourist, we promise a memorable experience — treated \n like a king or queen from the moment you arrive.", + "mt-8 flex flex-wrap gap-4", + "flex items-center gap-2 text-sm text-gray-500", + "text-[#d4af37]", + "1 km from airport, 4 km from UKZN", + "Tea & Coffee", + "Free Secure Parking", + "Wi-Fi", + "Laundry Service", + "Swimming Pool", + "Breakfast Available" + ] + }, + { + "name": "ThemedRegalSuitesSection", + "importPath": "@/components/sections/ThemedRegalSuitesSection", + "position": 2, + "role": "unknown", + "hasImage": true, + "hasForm": false, + "itemCount": 13, + "layout": "grid", + "headings": [ + "Themed Regal Suites" + ], + "buttonLabels": [ + "Book Now" + ], + "people": [], + "allText": [ + "use client", + "@/hooks/useMedusaProducts", + "@/components/ui/Card", + "@/components/ui/Button", + "next/link", + "next/image", + "lucide-react", + "themedregalsuites", + "themed-suites", + "py-20 bg-white", + "container mx-auto px-4 text-center", + "text-lg text-gray-500", + "Loading our royal suites...", + "text-lg text-red-500", + "Unable to load suites. Please try again later.", + "py-20 bg-neutral-50", + "container mx-auto px-4", + "text-center mb-12", + "text-3xl md:text-4xl font-bold text-gray-900 mb-4", + "Themed Regal Suites", + "text-gray-600 max-w-2xl mx-auto", + "Each of our six individually themed, fully air-conditioned luxury suites offers en-suite bathroom, TV with DStv, and a private sanctuary feel. Choose the room that speaks to your soul.", + "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6", + "hover:shadow-[var(--shadow-lifted)] hover:-translate-y-0.5 transition-all duration-200 ease-out", + "relative aspect-video overflow-hidden rounded-t-xl", + "(max-width: 768px) 100vw, 50vw", + "object-cover", + "w-full h-full bg-gray-200 flex items-center justify-center text-gray-400", + "text-xl font-semibold text-gray-900", + "text-gray-500 line-clamp-2", + "flex items-center gap-2 text-sm text-gray-500", + "Air-conditioned", + "DStv", + "Wi-Fi", + "flex items-center justify-between", + "text-[#d4af37] font-bold text-lg", + "default", + "sm", + "bg-[#d4af37] hover:bg-[#b8962f] text-white", + "Book Now" + ] + }, + { + "name": "KwaNtofontofoSpecialsSection", + "importPath": "@/components/sections/KwaNtofontofoSpecialsSection", + "position": 3, + "role": "cms-promotions", + "hasImage": true, + "hasForm": false, + "itemCount": -1, + "layout": "grid", + "headings": [ + "KwaNtofontofo Specials" + ], + "buttonLabels": [], + "people": [], + "allText": [ + "use client", + "@/hooks/useEmDashContent", + "@/components/ui/Card", + "next/image", + "@/components/ui/Badge", + "promotions", + "flex justify-center py-16", + "w-8 h-8 rounded-full border-2 border-current border-t-transparent animate-spin", + "specials", + "kwantofontofospecials", + "py-16 bg-neutral-50", + "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", + "text-3xl font-bold text-[#d4af37] text-center mb-4", + "KwaNtofontofo Specials", + "text-center text-neutral-600 mb-12 max-w-2xl mx-auto", + "Exclusive offers crafted to make your stay even more regal. Treat yourself to a memorable escape.", + "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8", + "overflow-hidden border border-neutral-100 shadow-[var(--shadow-card)] hover:shadow-[var(--shadow-lifted)] hover:-translate-y-0.5 transition-all duration-200 ease-out", + "aspect-video relative overflow-hidden", + "Special offer", + "(max-width: 768px) 100vw, 50vw", + "object-cover hover:scale-105 transition-transform duration-500 ease-out", + "text-lg text-[#111827]", + "Special", + "text-neutral-600 text-sm mb-3", + "default", + "bg-[#d4af37] text-white px-3 py-1 text-sm" + ], + "cmsCollection": "promotions" + }, + { + "name": "GuesthouseGallerySection", + "importPath": "@/components/sections/GuesthouseGallerySection", + "position": 4, + "role": "gallery", + "hasImage": true, + "hasForm": false, + "itemCount": -1, + "layout": "grid", + "headings": [ + "A Visual Journey", + "{d.title || ''}" + ], + "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", + "guesthousegallery", + "py-16 bg-white", + "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", + "text-3xl font-bold text-[#d4af37] text-center mb-4", + "A Visual Journey", + "text-center text-neutral-600 mb-12 max-w-2xl mx-auto", + "Step inside KwaNtofontofo — elegant interiors, tranquil pool, braai entertainment, and nature's backdrop.", + "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6", + "group relative overflow-hidden rounded-xl border border-neutral-100 shadow-[var(--shadow-card)] hover:shadow-[var(--shadow-lifted)] transition-all duration-200 ease-out", + "aspect-[4/3] relative", + "Gallery image", + "(max-width: 768px) 100vw, (max-width: 1024px) 50vw, 33vw", + "object-cover group-hover:scale-105 transition-transform duration-500 ease-out", + "absolute inset-0 bg-gradient-to-t from-black/50 via-transparent to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-300 flex items-end p-4", + "text-white font-semibold text-lg", + "text-white/80 text-sm" + ], + "cmsCollection": "gallery" + }, + { + "name": "ImveloInsightsSection", + "importPath": "@/components/sections/ImveloInsightsSection", + "position": 5, + "role": "blog", + "hasImage": true, + "hasForm": false, + "itemCount": -1, + "layout": "grid", + "headings": [ + "Imvelo Insights", + "{d.title || 'Untitled'}" + ], + "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", + "stories", + "imveloinsights", + "py-16 bg-white", + "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", + "text-3xl font-bold text-[#d4af37] text-center mb-4", + "Imvelo Insights", + "text-center text-neutral-600 mb-12 max-w-2xl mx-auto", + "Stories from our journal — wildlife encounters, braai recipes, and local gems in Pietermaritzburg.", + "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8", + "rounded-xl border border-neutral-100 bg-white shadow-[var(--shadow-card)] hover:shadow-[var(--shadow-lifted)] hover:-translate-y-0.5 transition-all duration-200 ease-out overflow-hidden", + "aspect-video relative overflow-hidden", + "Journal post", + "(max-width: 768px) 100vw, 50vw", + "object-cover hover:scale-105 transition-transform duration-500 ease-out", + "p-5", + "text-xs uppercase tracking-widest text-[#2563eb] font-semibold", + "mt-2 text-lg font-bold text-[#111827]", + "Untitled", + "mt-2 text-neutral-600 text-sm line-clamp-3", + "mt-4 flex items-center justify-between", + "text-xs text-neutral-500", + "By", + "inline-flex items-center text-[#d4af37] font-medium text-sm hover:underline cursor-pointer", + "Read more", + "ml-1 w-3 h-3" + ], + "cmsCollection": "posts" + }, + { + "name": "GuestsLalaKahlePraiseSection", + "importPath": "@/components/sections/GuestsLalaKahlePraiseSection", + "position": 6, + "role": "unknown", + "hasImage": false, + "hasForm": false, + "itemCount": 3, + "layout": "grid", + "headings": [ + "Lala Kahle — Rest Well" + ], + "buttonLabels": [], + "people": [], + "allText": [ + "use client", + "Sipho Mkhize", + "Business traveller from Durban", + "Immaculate cleanliness, secure parking, and the warmest welcome. Woke up to zebras grazing across the road — unforgettable.", + "Linda Botha", + "UKZN visiting lecturer", + "Perfect for academics. Peaceful, fast Wi-Fi, and a hearty English breakfast. Felt like a queen during my stay.", + "James & Karen Wilson", + "Transit guests from the UK", + "One night turned into three. The braai area and pool made our stopover feel like a mini-holiday.", + "guestslalakahlepraise", + "guest-praise", + "py-16 bg-neutral-50", + "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", + "text-3xl font-bold text-[#d4af37] text-center mb-4", + "Lala Kahle — Rest Well", + "text-center text-neutral-600 mb-12 max-w-2xl mx-auto", + "Hear from guests who experienced regal treatment and restful sleep at KwaNtofontofo.", + "grid grid-cols-1 md:grid-cols-3 gap-6", + "bg-card rounded-xl p-6 border border-border shadow-[var(--shadow-card)]", + "text-muted-foreground mb-4 italic", + "“", + "”", + "font-semibold text-foreground", + "text-sm text-muted-foreground" + ] + }, + { + "name": "PlanYourRoyalStayCTASection", + "importPath": "@/components/sections/PlanYourRoyalStayCTASection", + "position": 7, + "role": "pricing", + "hasImage": true, + "hasForm": false, + "itemCount": 2, + "layout": "flex-row", + "headings": [ + "Reserve Your Royal Stay" + ], + "buttonLabels": [ + "Reserve Your Royal Stay" + ], + "people": [], + "allText": [ + "next/image", + "next/link", + "@/components/ui/Button", + "book-now", + "plantoyourroyalstayctasection", + "relative flex items-center justify-center py-24 md:py-32 px-4 overflow-hidden", + "absolute inset-0", + "Luxurious guest house room with warm lighting", + "(max-width: 768px) 100vw, 100vw", + "object-cover brightness-50", + "relative z-10 max-w-2xl text-center text-white", + "text-4xl md:text-5xl font-bold mb-4", + "Reserve Your Royal Stay", + "text-lg md:text-xl mb-8 opacity-90", + "Enjoy a private, air-conditioned haven just 1 km from the airport. Limited exclusive rooms available — book now for a truly regal experience.", + "default", + "lg", + "bg-[#d4af37] hover:bg-[#b8962e] text-white px-8 py-4 text-lg font-semibold shadow-lg" + ] + }, + { + "name": "KwaNtofontofoEnquirySection", + "importPath": "@/components/sections/KwaNtofontofoEnquirySection", + "position": 8, + "role": "contact", + "hasImage": false, + "hasForm": true, + "itemCount": 13, + "layout": "grid", + "headings": [ + "Thank You", + "Get in Touch" + ], + "buttonLabels": [ + "Send Enquiry" + ], + "people": [], + "allText": [ + "use client", + "react", + "@/components/ui/Button", + "@/components/ui/Input", + "lucide-react", + "contact", + "bg-white py-16 px-4", + "max-w-lg mx-auto text-center", + "text-3xl font-bold text-[#d4af37] mb-4", + "Thank You", + "text-gray-600", + "Your enquiry has been received. We will get back to you personally and promptly.", + "kwantofontofoenquirysection", + "bg-neutral-50 py-16 px-4", + "max-w-5xl mx-auto grid md:grid-cols-2 gap-10 items-start", + "text-3xl font-bold text-gray-900 mb-6", + "Get in Touch", + "text-gray-600 mb-8", + "Have a question or want to book? Drop us a message and we will respond personally.", + "space-y-4 text-gray-700", + "flex items-start gap-3", + "w-5 h-5 text-[#d4af37] mt-1", + "font-semibold", + "Phone / WhatsApp", + "+27 33 940 1234", + "Email", + "info@kwantofontofo.co.za", + "Address", + "44 Rutherford Circle, Bisley, Pietermaritzburg, 3201, KwaZulu-Natal", + "bg-white rounded-xl p-6 shadow-[var(--shadow-card)] space-y-4", + "block text-sm font-medium text-gray-700 mb-1", + "Your Name", + "text", + "e.g. Thandi Mokoena", + "Email Address", + "email", + "you@example.com", + "Your Message", + "w-full border border-gray-300 rounded-lg px-3 py-2 focus:outline-none focus:ring-2 focus:ring-[#d4af37] focus:border-transparent", + "Tell us how we can help...", + "submit", + "default", + "lg", + "w-full bg-[#d4af37] hover:bg-[#b8962e] text-white", + "Send Enquiry" + ] + }, + { + "name": "KwaNtofontofoLocationSection", + "importPath": "@/components/sections/KwaNtofontofoLocationSection", + "position": 9, + "role": "unknown", + "hasImage": true, + "hasForm": false, + "itemCount": -1, + "layout": "grid", + "headings": [ + "Our Location", + "Business Hours", + "KwaNtofontofo Guest House location" + ], + "buttonLabels": [], + "people": [], + "allText": [ + "use client", + "@/hooks/useEmDashContent", + "lucide-react", + "business_hours", + "flex justify-center py-16", + "w-8 h-8 rounded-full border-2 border-[#d4af37] border-t-transparent animate-spin", + "location", + "kwantofontofolocation", + "bg-white py-16 px-4", + "max-w-5xl mx-auto", + "text-3xl font-bold text-gray-900 mb-6 text-center", + "Our Location", + "grid md:grid-cols-2 gap-8", + "space-y-4", + "flex items-start gap-3", + "w-5 h-5 text-[#d4af37] mt-1", + "font-semibold", + "Address", + "text-gray-600", + "44 Rutherford Circle, Bisley, Pietermaritzburg, 3201, KwaZulu-Natal", + "Convenience & Safety", + "Opposite the Bisley Nature Reserve. Just 1 km from Pietermaritzburg Airport. Secure parking under burglar alarm.", + "w-full h-64 rounded-xl overflow-hidden border border-gray-200", + "100%", + "lazy", + "no-referrer-when-downgrade", + "KwaNtofontofo Guest House location", + "bg-neutral-50 rounded-xl p-6 border border-gray-200", + "flex items-center gap-2 mb-4", + "w-5 h-5 text-[#d4af37]", + "text-xl font-semibold text-gray-900", + "Business Hours", + "space-y-2", + "flex justify-between text-gray-700", + "font-medium", + "text-red-500", + "Closed", + "text-sm text-gray-500 mt-4", + "* Public holidays may differ. Please enquire." + ], + "cmsCollection": "business_hours" + } + ], + "navigationLinks": [ + "KwaNtofontofo", + "Home", + "Themed Regal Suites", + "Kwa Ntofontofo Story", + "Kwa Ntofontofo Specials", + "Guesthouse Gallery", + "Kwa Ntofontofo Enquiry", + "Book a Room" + ] +} \ No newline at end of file