Merge version_2_1781437281733 into main
Merge version_2_1781437281733 into main
This commit was merged in pull request #2.
This commit is contained in:
@@ -5,15 +5,15 @@
|
||||
|
||||
:root {
|
||||
/* @colorThemes/lightTheme/grayNavyBlue */
|
||||
--background: #f5faff;
|
||||
--background: #faf6f0;
|
||||
--card: #ffffff;
|
||||
--foreground: #001122;
|
||||
--primary-cta: #15479c;
|
||||
--primary-cta-text: #f5faff;
|
||||
--foreground: #2c241b;
|
||||
--primary-cta: #b85c38;
|
||||
--primary-cta-text: #ffffff;
|
||||
--secondary-cta: #ffffff;
|
||||
--secondary-cta-text: #001122;
|
||||
--accent: #a8cce8;
|
||||
--background-accent: #7ba3cf;
|
||||
--accent: #e0c9a3;
|
||||
--background-accent: #d4b88c;
|
||||
|
||||
/* @layout/border-radius/rounded */
|
||||
--radius: 1rem;
|
||||
|
||||
@@ -1,272 +1,39 @@
|
||||
import AboutTextSplit from '@/components/sections/about/AboutTextSplit';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import FaqTabbedAccordion from '@/components/sections/faq/FaqTabbedAccordion';
|
||||
import FeaturesBentoGrid from '@/components/sections/features/FeaturesBentoGrid';
|
||||
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
|
||||
import HeroBillboard from '@/components/sections/hero/HeroBillboard';
|
||||
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
|
||||
import TeamOverlayCards from '@/components/sections/team/TeamOverlayCards';
|
||||
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 FeaturesSection from './HomePage/sections/Features';
|
||||
import ProductsSection from './HomePage/sections/Products';
|
||||
import TeamSection from './HomePage/sections/Team';
|
||||
import TestimonialsSection from './HomePage/sections/Testimonials';
|
||||
import SocialProofSection from './HomePage/sections/SocialProof';
|
||||
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
|
||||
title="Discover Kenyas Wild Beauty, Your Way"
|
||||
description="Expert guided tours, premium car hire, and unforgettable coastal escapes across Kenya. From safari to seaside, we handle every detail so you experience everything."
|
||||
primaryButton={{
|
||||
text: "Start Your Adventure",
|
||||
href: "#contact",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Explore Services",
|
||||
href: "#features",
|
||||
}}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/male-elk-standing-front-man-with-backpack_181624-27170.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<>
|
||||
<HeroSection />
|
||||
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutTextSplit
|
||||
title="Your Trusted Gateway to Kenya"
|
||||
descriptions={[
|
||||
"With years of experience across the heart of the savanna and the serene shores of the coast, we are dedicated to providing authentic experiences. Our mission is to bridge the gap between world-class comfort and raw, breathtaking adventure.",
|
||||
"Whether you are looking for a tailored safari itinerary, reliable airport transfers, or a private vehicle for your business trip, our professional team ensures every detail of your Kenyan journey is flawless.",
|
||||
]}
|
||||
primaryButton={{
|
||||
text: "Learn About Our Mission",
|
||||
href: "#contact",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<AboutSection />
|
||||
|
||||
<div id="features" data-section="features">
|
||||
<SectionErrorBoundary name="features">
|
||||
<FeaturesBentoGrid
|
||||
tag="Our Expertise"
|
||||
title="Seamless Journeys, Unforgettable Memories"
|
||||
description="We specialize in high-quality travel and transport solutions for travelers visiting Kenya."
|
||||
features={[
|
||||
{
|
||||
title: "Expert-Guided Safari",
|
||||
description: "Curated wildlife encounters with veteran guides.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/closeup-shot-silver-car-approaching-giraffe-safari_181624-23101.jpg",
|
||||
},
|
||||
{
|
||||
title: "Coastal Escapes",
|
||||
description: "Relax in premium beach resorts along the coast.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/luxury-sky-hotel-background-beautiful_1203-5174.jpg",
|
||||
},
|
||||
{
|
||||
title: "Cultural Immersion",
|
||||
description: "Engage with local communities and traditions.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-people-chatting-forest_23-2149557242.jpg",
|
||||
},
|
||||
{
|
||||
title: "Premium Car Hire",
|
||||
description: "Safe, reliable, and convenient transport solutions.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/businesswoman-getting-taxi-cab_23-2149236695.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<FeaturesSection />
|
||||
|
||||
<div id="products" data-section="products">
|
||||
<SectionErrorBoundary name="products">
|
||||
<FeaturesImageBento
|
||||
tag="Explore Packages"
|
||||
title="Curated Experiences & Services"
|
||||
items={[
|
||||
{
|
||||
title: "Classic Safari",
|
||||
description: "The quintessential Kenya safari adventure.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/couple-looking-away-while-standing-by-off-road-vehicle-field_107420-9777.jpg",
|
||||
},
|
||||
{
|
||||
title: "Coastal Getaway",
|
||||
description: "Unwind on the pristine Diani beaches.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/summer-travel-trip-vacation-wanderlust-beach-concept_53876-31828.jpg",
|
||||
},
|
||||
{
|
||||
title: "Luxury Multi-City",
|
||||
description: "Bespoke itineraries for discerning travelers.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/yeah-we-achieved-our-destination_329181-8443.jpg",
|
||||
},
|
||||
{
|
||||
title: "Airport Transfers",
|
||||
description: "Seamless arrival and departure transport.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/back-view-woman-getting-out-her-brand-new-car_23-2148685344.jpg",
|
||||
},
|
||||
{
|
||||
title: "Family Expedition",
|
||||
description: "Child-friendly, safe, and engaging tours.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/mother-with-kids-binoculars_23-2147638873.jpg",
|
||||
},
|
||||
{
|
||||
title: "Hiking Treks",
|
||||
description: "Trek through Kenya's rugged highlands.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-smiley-woman-nature_23-2149026843.jpg",
|
||||
},
|
||||
{
|
||||
title: "Cultural Heritage",
|
||||
description: "Explore Kenya's rich history and tribes.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/full-shot-people-posing-fast-fashion-concept_23-2150805287.jpg",
|
||||
},
|
||||
]}
|
||||
description="From wilderness to seaside, we provide top-tier travel options for your Kenyan holiday."
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ProductsSection />
|
||||
|
||||
<div id="team" data-section="team">
|
||||
<SectionErrorBoundary name="team">
|
||||
<TeamOverlayCards
|
||||
tag="Meet Our Pros"
|
||||
title="Your Kenyan Travel Partners"
|
||||
members={[
|
||||
{
|
||||
name: "James Otieno",
|
||||
role: "Senior Safari Guide",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/black-woman-city_1157-17524.jpg",
|
||||
},
|
||||
{
|
||||
name: "Sarah Wanjiku",
|
||||
role: "Lead Travel Planner",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/day-office-travel-agency_23-2150769990.jpg",
|
||||
},
|
||||
{
|
||||
name: "David Mumo",
|
||||
role: "Head of Fleet Operations",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/doubtful-young-caucasian-delivery-man-blue-uniform-cap-standing-with-closed-posture-looking-camera-isolated-white-wall-with-copy-space_141793-113753.jpg",
|
||||
},
|
||||
]}
|
||||
description="Meet the passionate experts dedicated to making your journey unforgettable."
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<TeamSection />
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialMarqueeCards
|
||||
tag="Reviews"
|
||||
title="Voices from the Field"
|
||||
testimonials={[
|
||||
{
|
||||
name: "Anna S.",
|
||||
role: "Traveler",
|
||||
quote: "The safari experience was flawless. Our guide made all the difference.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/happy-excited-young-african-american-male-traveler-stylish-shades-headwear-looking-stunned-keeping-mouth-wide-opened-while-standing-high-mountains-admiring-beautiful-view_273609-1104.jpg",
|
||||
},
|
||||
{
|
||||
name: "Marcus T.",
|
||||
role: "Business Traveler",
|
||||
quote: "Extremely reliable car hire service in Nairobi. Highly recommend.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/woman-showing-camera-man-vehicle_107420-9751.jpg",
|
||||
},
|
||||
{
|
||||
name: "Elena P.",
|
||||
role: "Tourist",
|
||||
quote: "A perfect blend of culture and beach. The coastal stay was heavenly.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/boy-scouts-spending-time-nature_23-2149572861.jpg",
|
||||
},
|
||||
{
|
||||
name: "James K.",
|
||||
role: "Tourist",
|
||||
quote: "Everything from booking to the trip was seamless and safe.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-woman-posing-seaside_23-2148687103.jpg",
|
||||
},
|
||||
{
|
||||
name: "Sarah R.",
|
||||
role: "Tourist",
|
||||
quote: "Best guided tour we've had in Africa. Simply breathtaking.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/woman-with-man-pointing-while-sitting-vehicle-hood_107420-9756.jpg",
|
||||
},
|
||||
]}
|
||||
description="See what our travelers have to say about their Kenyan adventures."
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<TestimonialsSection />
|
||||
|
||||
<div id="social-proof" data-section="social-proof">
|
||||
<SectionErrorBoundary name="social-proof">
|
||||
<SocialProofMarquee
|
||||
tag="Our Partners"
|
||||
title="Trusted by Leaders"
|
||||
names={[
|
||||
"Travel Connect",
|
||||
"Kenya Transport Hub",
|
||||
"Safari Hospitality",
|
||||
"Eco-Flight Airways",
|
||||
"Resort Group",
|
||||
"Adventure Gear Co",
|
||||
"Cultural Heritage Trust",
|
||||
]}
|
||||
description="Proudly working with industry-leading partners to ensure excellence."
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<SocialProofSection />
|
||||
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqTabbedAccordion
|
||||
tag="Support"
|
||||
title="Frequently Asked Questions"
|
||||
categories={[
|
||||
{
|
||||
name: "General",
|
||||
items: [
|
||||
{
|
||||
question: "What is the best time to visit Kenya?",
|
||||
answer: "The best time is usually from June to October during the migration.",
|
||||
},
|
||||
{
|
||||
question: "Are your services safe for families?",
|
||||
answer: "Absolutely, safety is our priority for all guests, especially families.",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "Logistics",
|
||||
items: [
|
||||
{
|
||||
question: "Do you offer airport pickups?",
|
||||
answer: "Yes, we provide seamless transfers for all bookings.",
|
||||
},
|
||||
{
|
||||
question: "Is car hire with a driver available?",
|
||||
answer: "Yes, we offer professional chauffeurs for all vehicle rentals.",
|
||||
},
|
||||
],
|
||||
},
|
||||
]}
|
||||
description="Find answers to the most common questions about our travel services."
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<FaqSection />
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<ContactCta
|
||||
tag="Let's Go"
|
||||
text="Ready to experience Kenya? Contact our travel experts today and start planning your perfect journey."
|
||||
primaryButton={{
|
||||
text: "Contact Us",
|
||||
href: "#contact",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "View All Tours",
|
||||
href: "#products",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ContactSection />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
26
src/pages/HomePage/sections/About.tsx
Normal file
26
src/pages/HomePage/sections/About.tsx
Normal file
@@ -0,0 +1,26 @@
|
||||
// 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 AboutTextSplit from '@/components/sections/about/AboutTextSplit';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function AboutSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutTextSplit
|
||||
title="Your Trusted Gateway to Kenya"
|
||||
descriptions={[
|
||||
"With years of experience across the heart of the savanna and the serene shores of the coast, we are dedicated to providing authentic experiences. Our mission is to bridge the gap between world-class comfort and raw, breathtaking adventure.",
|
||||
"Whether you are looking for a tailored safari itinerary, reliable airport transfers, or a private vehicle for your business trip, our professional team ensures every detail of your Kenyan journey is flawless.",
|
||||
]}
|
||||
primaryButton={{
|
||||
text: "Learn About Our Mission",
|
||||
href: "#contact",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
27
src/pages/HomePage/sections/Contact.tsx
Normal file
27
src/pages/HomePage/sections/Contact.tsx
Normal 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="Let's Go"
|
||||
text="Ready to experience Kenya? Contact our travel experts today and start planning your perfect journey."
|
||||
primaryButton={{
|
||||
text: "Contact Us",
|
||||
href: "#contact",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "View All Tours",
|
||||
href: "#products",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
48
src/pages/HomePage/sections/Faq.tsx
Normal file
48
src/pages/HomePage/sections/Faq.tsx
Normal file
@@ -0,0 +1,48 @@
|
||||
// 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 FaqTabbedAccordion from '@/components/sections/faq/FaqTabbedAccordion';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function FaqSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqTabbedAccordion
|
||||
tag="Support"
|
||||
title="Frequently Asked Questions"
|
||||
categories={[
|
||||
{
|
||||
name: "General",
|
||||
items: [
|
||||
{
|
||||
question: "What is the best time to visit Kenya?",
|
||||
answer: "The best time is usually from June to October during the migration.",
|
||||
},
|
||||
{
|
||||
question: "Are your services safe for families?",
|
||||
answer: "Absolutely, safety is our priority for all guests, especially families.",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "Logistics",
|
||||
items: [
|
||||
{
|
||||
question: "Do you offer airport pickups?",
|
||||
answer: "Yes, we provide seamless transfers for all bookings.",
|
||||
},
|
||||
{
|
||||
question: "Is car hire with a driver available?",
|
||||
answer: "Yes, we offer professional chauffeurs for all vehicle rentals.",
|
||||
},
|
||||
],
|
||||
},
|
||||
]}
|
||||
description="Find answers to the most common questions about our travel services."
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
21
src/pages/HomePage/sections/Features.tsx
Normal file
21
src/pages/HomePage/sections/Features.tsx
Normal file
@@ -0,0 +1,21 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "features" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesBentoGrid from '@/components/sections/features/FeaturesBentoGrid';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function FeaturesSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="features" data-section="features">
|
||||
<SectionErrorBoundary name="features">
|
||||
<FeaturesBentoGrid
|
||||
tag="Our Expertise"
|
||||
title="Seamless Journeys, Unforgettable Memories"
|
||||
description="We specialize in high-quality travel and transport solutions for travelers visiting Kenya."
|
||||
features={[{"imageSrc":"https://images.unsplash.com/photo-1516426122078-c23e76319801?auto=format&fit=crop&q=80&w=2068&ixlib=rb-4.0.3","title":"Expert-Guided Safari","description":"Curated wildlife encounters with veteran guides."},{"description":"Relax in premium beach resorts along the coast.","imageSrc":"https://images.unsplash.com/photo-1507525428034-b723cf961d3e?auto=format&fit=crop&q=80&w=2073&ixlib=rb-4.0.3","title":"Coastal Escapes"},{"imageSrc":"https://images.unsplash.com/photo-1523805009345-7448845a9e53?auto=format&fit=crop&q=80&w=2072&ixlib=rb-4.0.3","title":"Cultural Immersion","description":"Engage with local communities and traditions."},{"title":"Premium Car Hire","imageSrc":"https://images.unsplash.com/photo-1533473359331-0135ef1b58bf?auto=format&fit=crop&q=80&w=2070&ixlib=rb-4.0.3","description":"Safe, reliable, and convenient transport solutions."}]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
28
src/pages/HomePage/sections/Hero.tsx
Normal file
28
src/pages/HomePage/sections/Hero.tsx
Normal file
@@ -0,0 +1,28 @@
|
||||
// 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
|
||||
title="Discover Kenyas Wild Beauty, Your Way"
|
||||
description="Expert guided tours, premium car hire, and unforgettable coastal escapes across Kenya. From safari to seaside, we handle every detail so you experience everything."
|
||||
primaryButton={{
|
||||
text: "Start Your Adventure",
|
||||
href: "#contact",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Explore Services",
|
||||
href: "#features",
|
||||
}}
|
||||
imageSrc="https://images.unsplash.com/photo-1516426122078-c23e76319801?auto=format&fit=crop&q=80&w=2068&ixlib=rb-4.0.3"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
57
src/pages/HomePage/sections/Products.tsx
Normal file
57
src/pages/HomePage/sections/Products.tsx
Normal file
@@ -0,0 +1,57 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "products" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function ProductsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="products" data-section="products">
|
||||
<SectionErrorBoundary name="products">
|
||||
<FeaturesImageBento
|
||||
tag="Explore Packages"
|
||||
title="Curated Experiences & Services"
|
||||
items={[
|
||||
{
|
||||
title: "Classic Safari",
|
||||
description: "The quintessential Kenya safari adventure.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/couple-looking-away-while-standing-by-off-road-vehicle-field_107420-9777.jpg",
|
||||
},
|
||||
{
|
||||
title: "Coastal Getaway",
|
||||
description: "Unwind on the pristine Diani beaches.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/summer-travel-trip-vacation-wanderlust-beach-concept_53876-31828.jpg",
|
||||
},
|
||||
{
|
||||
title: "Luxury Multi-City",
|
||||
description: "Bespoke itineraries for discerning travelers.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/yeah-we-achieved-our-destination_329181-8443.jpg",
|
||||
},
|
||||
{
|
||||
title: "Airport Transfers",
|
||||
description: "Seamless arrival and departure transport.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/back-view-woman-getting-out-her-brand-new-car_23-2148685344.jpg",
|
||||
},
|
||||
{
|
||||
title: "Family Expedition",
|
||||
description: "Child-friendly, safe, and engaging tours.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/mother-with-kids-binoculars_23-2147638873.jpg",
|
||||
},
|
||||
{
|
||||
title: "Hiking Treks",
|
||||
description: "Trek through Kenya's rugged highlands.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-smiley-woman-nature_23-2149026843.jpg",
|
||||
},
|
||||
{
|
||||
title: "Cultural Heritage",
|
||||
description: "Explore Kenya's rich history and tribes.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/full-shot-people-posing-fast-fashion-concept_23-2150805287.jpg",
|
||||
},
|
||||
]}
|
||||
description="From wilderness to seaside, we provide top-tier travel options for your Kenyan holiday."
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
29
src/pages/HomePage/sections/SocialProof.tsx
Normal file
29
src/pages/HomePage/sections/SocialProof.tsx
Normal file
@@ -0,0 +1,29 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "social-proof" section.
|
||||
|
||||
import React from 'react';
|
||||
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function SocialProofSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="social-proof" data-section="social-proof">
|
||||
<SectionErrorBoundary name="social-proof">
|
||||
<SocialProofMarquee
|
||||
tag="Our Partners"
|
||||
title="Trusted by Leaders"
|
||||
names={[
|
||||
"Travel Connect",
|
||||
"Kenya Transport Hub",
|
||||
"Safari Hospitality",
|
||||
"Eco-Flight Airways",
|
||||
"Resort Group",
|
||||
"Adventure Gear Co",
|
||||
"Cultural Heritage Trust",
|
||||
]}
|
||||
description="Proudly working with industry-leading partners to ensure excellence."
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
37
src/pages/HomePage/sections/Team.tsx
Normal file
37
src/pages/HomePage/sections/Team.tsx
Normal file
@@ -0,0 +1,37 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "team" section.
|
||||
|
||||
import React from 'react';
|
||||
import TeamOverlayCards from '@/components/sections/team/TeamOverlayCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function TeamSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="team" data-section="team">
|
||||
<SectionErrorBoundary name="team">
|
||||
<TeamOverlayCards
|
||||
tag="Meet Our Pros"
|
||||
title="Your Kenyan Travel Partners"
|
||||
members={[
|
||||
{
|
||||
name: "James Otieno",
|
||||
role: "Senior Safari Guide",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/black-woman-city_1157-17524.jpg",
|
||||
},
|
||||
{
|
||||
name: "Sarah Wanjiku",
|
||||
role: "Lead Travel Planner",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/day-office-travel-agency_23-2150769990.jpg",
|
||||
},
|
||||
{
|
||||
name: "David Mumo",
|
||||
role: "Head of Fleet Operations",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/doubtful-young-caucasian-delivery-man-blue-uniform-cap-standing-with-closed-posture-looking-camera-isolated-white-wall-with-copy-space_141793-113753.jpg",
|
||||
},
|
||||
]}
|
||||
description="Meet the passionate experts dedicated to making your journey unforgettable."
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
52
src/pages/HomePage/sections/Testimonials.tsx
Normal file
52
src/pages/HomePage/sections/Testimonials.tsx
Normal 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="Voices from the Field"
|
||||
testimonials={[
|
||||
{
|
||||
name: "Anna S.",
|
||||
role: "Traveler",
|
||||
quote: "The safari experience was flawless. Our guide made all the difference.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/happy-excited-young-african-american-male-traveler-stylish-shades-headwear-looking-stunned-keeping-mouth-wide-opened-while-standing-high-mountains-admiring-beautiful-view_273609-1104.jpg",
|
||||
},
|
||||
{
|
||||
name: "Marcus T.",
|
||||
role: "Business Traveler",
|
||||
quote: "Extremely reliable car hire service in Nairobi. Highly recommend.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/woman-showing-camera-man-vehicle_107420-9751.jpg",
|
||||
},
|
||||
{
|
||||
name: "Elena P.",
|
||||
role: "Tourist",
|
||||
quote: "A perfect blend of culture and beach. The coastal stay was heavenly.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/boy-scouts-spending-time-nature_23-2149572861.jpg",
|
||||
},
|
||||
{
|
||||
name: "James K.",
|
||||
role: "Tourist",
|
||||
quote: "Everything from booking to the trip was seamless and safe.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-woman-posing-seaside_23-2148687103.jpg",
|
||||
},
|
||||
{
|
||||
name: "Sarah R.",
|
||||
role: "Tourist",
|
||||
quote: "Best guided tour we've had in Africa. Simply breathtaking.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/woman-with-man-pointing-while-sitting-vehicle-hood_107420-9756.jpg",
|
||||
},
|
||||
]}
|
||||
description="See what our travelers have to say about their Kenyan adventures."
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user