2 Commits

Author SHA1 Message Date
9d900a582a Merge version_2_1781696090839 into main
Merge version_2_1781696090839 into main
2026-06-17 11:38:14 +00:00
kudinDmitriyUp
38fc5965d1 Bob AI: Update layout text to GbasaaAfrica 2026-06-17 11:36:36 +00:00
10 changed files with 235 additions and 213 deletions

View File

@@ -42,10 +42,10 @@ export default function Layout() {
<SiteBackgroundSlot />
<SectionErrorBoundary name="navbar">
<NavbarFloating
logo="Cinderella Travel"
logo="GbasaaAfrica"
ctaButton={{
text: "Book Now",
href: "https://wa.me/2347074608032",
text: "Get Started",
href: "#contact",
}}
navItems={navItems} />
</SectionErrorBoundary>
@@ -82,8 +82,8 @@ export default function Layout() {
],
},
]}
leftText="© 2024 Cinderella Travel & Tours"
rightText="2nd Floor, 68 Aminu Kano Cres, Wuse 2, Abuja"
leftText="© 2024 GbasaaAfrica"
rightText="Empowering African Businesses"
/>
</SectionErrorBoundary>
</StyleProvider>

View File

@@ -5,15 +5,15 @@
:root {
/* @colorThemes/lightTheme/grayNavyBlue */
--background: #f5faff;
--background: #fdfaf6;
--card: #ffffff;
--foreground: #001122;
--primary-cta: #15479c;
--primary-cta-text: #f5faff;
--secondary-cta: #ffffff;
--secondary-cta-text: #001122;
--accent: #a8cce8;
--background-accent: #7ba3cf;
--foreground: #1a2e1a;
--primary-cta: #e65c00;
--primary-cta-text: #ffffff;
--secondary-cta: #2e7d32;
--secondary-cta-text: #ffffff;
--accent: #ffb74d;
--background-accent: #e8f5e9;
/* @layout/border-radius/rounded */
--radius: 0.5rem;

View File

@@ -1,211 +1,33 @@
import AboutMediaOverlay from '@/components/sections/about/AboutMediaOverlay';
import ContactCta from '@/components/sections/contact/ContactCta';
import FaqTwoColumn from '@/components/sections/faq/FaqTwoColumn';
import FeaturesDetailedSteps from '@/components/sections/features/FeaturesDetailedSteps';
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
import HeroBillboard from '@/components/sections/hero/HeroBillboard';
import TestimonialMarqueeCards from '@/components/sections/testimonial/TestimonialMarqueeCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
// AUTO-GENERATED shell by per-section-migrate.
// Section bodies live in ./<PageBase>/sections/<X>.tsx. Edit the section
// files directly. Non-block content (wrappers, non-inlinable sections) is
// preserved inline; extracted section blocks become <XSection/> refs.
export default function HomePage() {
import React from 'react';
import HeroSection from './HomePage/sections/Hero';
import AboutSection from './HomePage/sections/About';
import ServicesSection from './HomePage/sections/Services';
import BenefitsSection from './HomePage/sections/Benefits';
import TestimonialsSection from './HomePage/sections/Testimonials';
import FaqSection from './HomePage/sections/Faq';
import ContactSection from './HomePage/sections/Contact';
export default function HomePage(): React.JSX.Element {
return (
<>
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroBillboard
tag="Travel Partner in Abuja"
title="Your Journey Starts Here with Cinderella Travel"
description="Unlock exclusive global flight deals, personalized travel itineraries, and expert visa assistance. We make your dream trip a reality within your budget."
primaryButton={{
text: "Start Planning",
href: "https://wa.me/2347074608032",
}}
secondaryButton={{
text: "View Offers",
href: "#services",
}}
imageSrc="http://img.b2bpic.net/free-photo/blurred-background-people-waiting-with-luggage_1203-989.jpg"
/>
</SectionErrorBoundary>
</div>
<>
<HeroSection />
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutMediaOverlay
tag="Who We Are"
title="Trusted Experts in Travel"
description="Based in the heart of Abuja, Cinderella Travel & Tours has built a reputation for excellence. We handle the complexities of travel so you can focus on the memories."
primaryButton={{
text: "Visit Us",
href: "https://maps.app.goo.gl/...",
}}
imageSrc="http://img.b2bpic.net/free-photo/flat-lay-with-laptop-headphones_23-2148256050.jpg"
/>
</SectionErrorBoundary>
</div>
<AboutSection />
<div id="services" data-section="services">
<SectionErrorBoundary name="services">
<FeaturesImageBento
tag="Our Services"
title="Comprehensive Travel Solutions"
description="Tailored services for every traveler."
items={[
{
title: "Flight Bookings",
description: "Global discounted fares",
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-view-white-clouds-from-plane-window_181624-12904.jpg",
},
{
title: "Visa Assistance",
description: "Expert documentation support",
imageSrc: "http://img.b2bpic.net/free-photo/green-card-passports-arrangement-view_23-2149828134.jpg",
},
{
title: "Custom Packages",
description: "Personalized vacation itineraries",
imageSrc: "http://img.b2bpic.net/free-photo/pink-flamingo-travel-accessories_23-2148169909.jpg",
},
{
title: "Last Minute Deals",
description: "Spontaneous getaway expertise",
imageSrc: "http://img.b2bpic.net/free-photo/front-view-young-woman-holding-cocktail-clock-vacation-light-pink-wall-vacation-heat-voyage-trip-summer_140725-116841.jpg",
},
{
title: "Business Travel",
description: "Efficient corporate arrangements",
imageSrc: "http://img.b2bpic.net/free-photo/portrait-smiling-commuters-sitting-waiting-area_107420-95897.jpg",
},
{
title: "Group Tours",
description: "Perfectly managed group trips",
imageSrc: "http://img.b2bpic.net/free-photo/young-friends-smiling-rejoicing-looking-into-distance-standing-field_176420-4251.jpg",
},
{
title: "Travel Insurance",
description: "Safety for your journey",
imageSrc: "http://img.b2bpic.net/free-photo/front-view-female-tourist-holding-bank-card_179666-32373.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<ServicesSection />
<div id="benefits" data-section="benefits">
<SectionErrorBoundary name="benefits">
<FeaturesDetailedSteps
tag="Why Us"
title="Why Choose Cinderella Travel"
description="We put your travel experience first."
steps={[
{
tag: "1",
title: "Expert Consultation",
subtitle: "Deep knowledge",
description: "Expert consultants for worldwide travel.",
imageSrc: "http://img.b2bpic.net/free-photo/young-woman-shopping-clothes_23-2149187302.jpg",
},
{
tag: "2",
title: "Personalized Itineraries",
subtitle: "Your interests",
description: "Itineraries built for your specific budget.",
imageSrc: "http://img.b2bpic.net/free-photo/summer-composition-with-notebook_23-2147632021.jpg",
},
{
tag: "3",
title: "Stress-Free Booking",
subtitle: "Seamless service",
description: "We take care of the entire process.",
imageSrc: "http://img.b2bpic.net/free-photo/colleagues-smiling-speaking-holding-tablet-notebook-office_176420-936.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<BenefitsSection />
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialMarqueeCards
tag="Reviews"
title="What Our Clients Say"
description="Rated 4.8 by our satisfied travelers."
testimonials={[
{
name: "Amina S.",
role: "Traveler",
quote: "Excellent flight deals!",
imageSrc: "http://img.b2bpic.net/free-photo/happy-tourist-has-glad-expression-wears-fashionable-headgear_273609-25749.jpg",
},
{
name: "John D.",
role: "Traveler",
quote: "Visa help was quick.",
imageSrc: "http://img.b2bpic.net/free-photo/front-close-view-young-girl-happily-smiling-pink_179666-1670.jpg",
},
{
name: "Sarah O.",
role: "Traveler",
quote: "Perfectly planned trip.",
imageSrc: "http://img.b2bpic.net/free-photo/group-friends-planning-trip-cafe_23-2148952372.jpg",
},
{
name: "Michael B.",
role: "Traveler",
quote: "Professional team.",
imageSrc: "http://img.b2bpic.net/free-photo/multi-ethnic-team-business-trip_1098-15488.jpg",
},
{
name: "Chinua K.",
role: "Traveler",
quote: "Highly recommended.",
imageSrc: "http://img.b2bpic.net/free-photo/young-adult-wearing-blank-shirt_23-2149321759.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<TestimonialsSection />
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqTwoColumn
tag="Help"
title="Common Travel Questions"
description="Get quick answers to your travel concerns."
items={[
{
question: "Can I book last minute?",
answer: "Yes, we specialize in spontaneous trips.",
},
{
question: "Do you help with visas?",
answer: "Absolutely, we provide comprehensive visa support.",
},
{
question: "Are packages customizable?",
answer: "Yes, we craft itineraries based on interests.",
},
]}
/>
</SectionErrorBoundary>
</div>
<FaqSection />
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Get Started"
text="Ready for your next adventure? Contact us today to plan your trip."
primaryButton={{
text: "Contact on WhatsApp",
href: "https://wa.me/2347074608032",
}}
secondaryButton={{
text: "Call Us",
href: "tel:07074608032",
}}
/>
</SectionErrorBoundary>
</div>
<ContactSection />
</>
);
}

View File

@@ -0,0 +1,22 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "about" section.
import React from 'react';
import AboutMediaOverlay from '@/components/sections/about/AboutMediaOverlay';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function AboutSection(): React.JSX.Element {
return (
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutMediaOverlay
tag="About GbasaaAfrica"
title="Your Partner in Digital Growth"
description="We are a web technology company dedicated to helping African SMEs and enterprises establish a strong online presence. Our tailored web solutions are designed to captivate your audience and drive business growth."
primaryButton={{"href":"#contact","text":"Contact Us"}}
imageSrc="https://images.unsplash.com/photo-1573164713988-8665fc963095?q=80&w=2069&auto=format&fit=crop"
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,21 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "benefits" section.
import React from 'react';
import FeaturesDetailedSteps from '@/components/sections/features/FeaturesDetailedSteps';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function BenefitsSection(): React.JSX.Element {
return (
<div id="benefits" data-section="benefits">
<SectionErrorBoundary name="benefits">
<FeaturesDetailedSteps
tag="Why Choose Us"
title="Why GbasaaAfrica?"
description="We understand the unique needs of African businesses and deliver solutions that work."
steps={[{"description":"We know the African market and build solutions tailored to local business needs.","imageSrc":"https://images.unsplash.com/photo-1522071820081-009f0129c71c?q=80&w=2070&auto=format&fit=crop","title":"Local Expertise","tag":"1","subtitle":"Understanding your market"},{"imageSrc":"https://images.unsplash.com/photo-1551288049-bebda4e38f71?q=80&w=2070&auto=format&fit=crop","description":"Our designs are focused on converting visitors into paying customers.","subtitle":"Increasing revenue","title":"Sales-Driven Design","tag":"2"},{"imageSrc":"https://images.unsplash.com/photo-1454165804606-c3d57bc86b40?q=80&w=2070&auto=format&fit=crop","description":"We build websites that grow alongside your business.","subtitle":"Future-proof tech","title":"Scalable Solutions","tag":"3"}]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,27 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "contact" section.
import React from 'react';
import ContactCta from '@/components/sections/contact/ContactCta';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function ContactSection(): React.JSX.Element {
return (
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Get Started"
text="Ready for your next adventure? Contact us today to plan your trip."
primaryButton={{
text: "Contact on WhatsApp",
href: "https://wa.me/2347074608032",
}}
secondaryButton={{
text: "Call Us",
href: "tel:07074608032",
}}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,34 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "faq" section.
import React from 'react';
import FaqTwoColumn from '@/components/sections/faq/FaqTwoColumn';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function FaqSection(): React.JSX.Element {
return (
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqTwoColumn
tag="Help"
title="Common Travel Questions"
description="Get quick answers to your travel concerns."
items={[
{
question: "Can I book last minute?",
answer: "Yes, we specialize in spontaneous trips.",
},
{
question: "Do you help with visas?",
answer: "Absolutely, we provide comprehensive visa support.",
},
{
question: "Are packages customizable?",
answer: "Yes, we craft itineraries based on interests.",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,23 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "hero" section.
import React from 'react';
import HeroBillboard from '@/components/sections/hero/HeroBillboard';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function HeroSection(): React.JSX.Element {
return (
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroBillboard
tag="Web Technology in Africa"
title="Empowering African Businesses with Captivating Websites"
description="GbasaaAfrica specializes in building unique, high-performing websites for small and medium enterprises across Africa. Attract potential clients and increase your sales today."
primaryButton={{"href":"#contact","text":"Get Started"}}
secondaryButton={{"text":"Our Services","href":"#services"}}
imageSrc="https://images.unsplash.com/photo-1531482615713-2afd69097998?q=80&w=2070&auto=format&fit=crop"
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,21 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "services" section.
import React from 'react';
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function ServicesSection(): React.JSX.Element {
return (
<div id="services" data-section="services">
<SectionErrorBoundary name="services">
<FeaturesImageBento
tag="Our Services"
title="Tailored Web Solutions for Your Business"
description="We offer comprehensive web development services designed specifically for African enterprises."
items={[{"title":"Custom Website Design","imageSrc":"https://images.unsplash.com/photo-1460925895917-afdab827c52f?q=80&w=2015&auto=format&fit=crop","description":"Unique, captivating designs tailored to your brand."},{"imageSrc":"https://images.unsplash.com/photo-1556742049-0cfed4f6a45d?q=80&w=1950&auto=format&fit=crop","description":"Robust online stores to increase your sales.","title":"E-commerce Solutions"},{"title":"SEO & Digital Marketing","imageSrc":"https://images.unsplash.com/photo-1432888498266-38ffec3eaf0a?q=80&w=2074&auto=format&fit=crop","description":"Optimize your site to attract potential clients."},{"title":"Web App Development","imageSrc":"https://images.unsplash.com/photo-1555066931-4365d14bab8c?q=80&w=2070&auto=format&fit=crop","description":"Custom web apps to streamline your operations."},{"title":"Website Maintenance","description":"Reliable support to keep your business running smoothly.","imageSrc":"https://images.unsplash.com/photo-1504384308090-c894fdcc538d?q=80&w=2070&auto=format&fit=crop"},{"description":"Intuitive interfaces that engage your users.","imageSrc":"https://images.unsplash.com/photo-1561070791-2526d30994b5?q=80&w=2000&auto=format&fit=crop","title":"UI/UX Design"}]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,52 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "testimonials" section.
import React from 'react';
import TestimonialMarqueeCards from '@/components/sections/testimonial/TestimonialMarqueeCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function TestimonialsSection(): React.JSX.Element {
return (
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialMarqueeCards
tag="Reviews"
title="What Our Clients Say"
description="Rated 4.8 by our satisfied travelers."
testimonials={[
{
name: "Amina S.",
role: "Traveler",
quote: "Excellent flight deals!",
imageSrc: "http://img.b2bpic.net/free-photo/happy-tourist-has-glad-expression-wears-fashionable-headgear_273609-25749.jpg",
},
{
name: "John D.",
role: "Traveler",
quote: "Visa help was quick.",
imageSrc: "http://img.b2bpic.net/free-photo/front-close-view-young-girl-happily-smiling-pink_179666-1670.jpg",
},
{
name: "Sarah O.",
role: "Traveler",
quote: "Perfectly planned trip.",
imageSrc: "http://img.b2bpic.net/free-photo/group-friends-planning-trip-cafe_23-2148952372.jpg",
},
{
name: "Michael B.",
role: "Traveler",
quote: "Professional team.",
imageSrc: "http://img.b2bpic.net/free-photo/multi-ethnic-team-business-trip_1098-15488.jpg",
},
{
name: "Chinua K.",
role: "Traveler",
quote: "Highly recommended.",
imageSrc: "http://img.b2bpic.net/free-photo/young-adult-wearing-blank-shirt_23-2149321759.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}