Merge version_2_1782371027038 into main
Merge version_2_1782371027038 into main
This commit was merged in pull request #2.
This commit is contained in:
@@ -1,181 +1,39 @@
|
||||
import AboutText from '@/components/sections/about/AboutText';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import FaqSimple from '@/components/sections/faq/FaqSimple';
|
||||
import FeaturesComparison from '@/components/sections/features/FeaturesComparison';
|
||||
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
|
||||
import HeroSplitMediaGrid from '@/components/sections/hero/HeroSplitMediaGrid';
|
||||
import PricingHighlightedCards from '@/components/sections/pricing/PricingHighlightedCards';
|
||||
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
|
||||
import TestimonialQuoteCards from '@/components/sections/testimonial/TestimonialQuoteCards';
|
||||
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 GallerySection from './HomePage/sections/Gallery';
|
||||
import PricingSection from './HomePage/sections/Pricing';
|
||||
import TestimonialsSection from './HomePage/sections/Testimonials';
|
||||
import SocialSection from './HomePage/sections/Social';
|
||||
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">
|
||||
<HeroSplitMediaGrid
|
||||
tag="Experience True Luxury"
|
||||
title="Your Home Away From Home"
|
||||
description="Escape to our boutique hotel located in the heart of the city. Relax in comfort and style."
|
||||
primaryButton={{
|
||||
text: "Book Your Stay", href: "#contact"}}
|
||||
secondaryButton={{
|
||||
text: "Learn More", href: "#about"}}
|
||||
items={[
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/long-corridor-showcase_1127-3442.jpg"},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/black-cushion-with-pillows_1203-545.jpg"},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<>
|
||||
<HeroSection />
|
||||
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutText
|
||||
title="Welcome to a new standard of hospitality. We pride ourselves on creating unforgettable experiences for every guest who walks through our doors."
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<AboutSection />
|
||||
|
||||
<div id="features" data-section="features">
|
||||
<SectionErrorBoundary name="features">
|
||||
<FeaturesComparison
|
||||
tag="Amenities & Services"
|
||||
title="What Makes Us Unique"
|
||||
description="Compare your experience with us against standard hotel services."
|
||||
negativeItems={[
|
||||
"Limited guest support", "Standard continental breakfast", "No leisure facilities", "Generic concierge"]}
|
||||
positiveItems={[
|
||||
"24/7 dedicated guest concierge", "Gourmet daily breakfast buffet", "Full leisure spa and gym", "Curated local experiences"]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<FeaturesSection />
|
||||
|
||||
<div id="gallery" data-section="gallery">
|
||||
<SectionErrorBoundary name="gallery">
|
||||
<FeaturesImageBento
|
||||
tag="Gallery"
|
||||
title="Explore Our Facilities"
|
||||
description="See the elegance of our hotel spaces."
|
||||
items={[
|
||||
{
|
||||
title: "Gourmet Dining", description: "Local and international flavors.", imageSrc: "http://img.b2bpic.net/free-photo/restaurant-hall-with-round-square-tables-some-chairs-plants_140725-8031.jpg"},
|
||||
{
|
||||
title: "Outdoor Pool", description: "Relax under the sun.", imageSrc: "http://img.b2bpic.net/free-photo/portrait-beautiful-young-asian-woman-relax-smile-leisure-around-outdoor-swimming-pool-with-sea-ocean-travel-vacation_74190-14576.jpg"},
|
||||
{
|
||||
title: "Luxury Spa", description: "Rejuvenate your mind.", imageSrc: "http://img.b2bpic.net/free-photo/luxurious-spa-bathroom-with-nature-view_23-2152008204.jpg"},
|
||||
{
|
||||
title: "Fitness Center", description: "Stay active during your stay.", imageSrc: "http://img.b2bpic.net/free-photo/equipments-gym_93675-129485.jpg"},
|
||||
{
|
||||
title: "Meeting Spaces", description: "Perfect for events.", imageSrc: "http://img.b2bpic.net/free-photo/people-taking-part-business-event_23-2149346606.jpg"},
|
||||
{
|
||||
title: "Private Gardens", description: "Quiet sanctuary.", imageSrc: "http://img.b2bpic.net/free-photo/lights-park-with-green-trees-pond_1268-15675.jpg"},
|
||||
{
|
||||
title: "Hotel Lounge", description: "Enjoy evening cocktails.", imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-woman-holding-drink_23-2150124828.jpg"},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<GallerySection />
|
||||
|
||||
<div id="pricing" data-section="pricing">
|
||||
<SectionErrorBoundary name="pricing">
|
||||
<PricingHighlightedCards
|
||||
tag="Stay Options"
|
||||
title="Choose Your Perfect Room"
|
||||
description="Designed for ultimate relaxation."
|
||||
plans={[
|
||||
{
|
||||
tag: "Essential", price: "$150", description: "Perfect for a quick city break.", features: [
|
||||
"Queen bed", "City view", "Free Wi-Fi"],
|
||||
primaryButton: {
|
||||
text: "Reserve", href: "#contact"},
|
||||
},
|
||||
{
|
||||
tag: "Premium", price: "$250", description: "A touch of extra luxury.", features: [
|
||||
"King bed", "Breakfast included", "Spa access", "Mini-bar"],
|
||||
highlight: "Best Choice", primaryButton: {
|
||||
text: "Reserve", href: "#contact"},
|
||||
},
|
||||
{
|
||||
tag: "Suite", price: "$450", description: "Our finest experience.", features: [
|
||||
"Panoramic view", "Private lounge", "Butler service", "In-room dining"],
|
||||
primaryButton: {
|
||||
text: "Reserve", href: "#contact"},
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<PricingSection />
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialQuoteCards
|
||||
tag="Guest Reviews"
|
||||
title="What Our Guests Say"
|
||||
description="We are honored to have shared moments with our amazing guests."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Sarah Jenkins", role: "Travel Blogger", quote: "The absolute highlight of my year. The service was impeccable.", imageSrc: "http://img.b2bpic.net/free-photo/woman-trip-takes-photos-city-from-height-female-with-camera-women-photographer_1321-4658.jpg"},
|
||||
{
|
||||
name: "Marcus Thorne", role: "Business Executive", quote: "Perfect for both meetings and relaxing. Truly a professional hotel.", imageSrc: "http://img.b2bpic.net/free-photo/portrait-smiling-businessman-with-luggage-checking-his-boarding-pass_107420-95776.jpg"},
|
||||
{
|
||||
name: "The Miller Family", role: "Guests", quote: "We loved every second of our stay. The breakfast was divine!", imageSrc: "http://img.b2bpic.net/free-photo/internationals-people-standing-cafe-with-shopping-bags_1157-31454.jpg"},
|
||||
{
|
||||
name: "Elaine Wong", role: "Yoga Instructor", quote: "A beautiful serene sanctuary in the middle of the busy city center.", imageSrc: "http://img.b2bpic.net/free-photo/happy-beautiful-young-woman-sitting-bed-holding-glass-juice-mobile-phone-looking-away_23-2148033310.jpg"},
|
||||
{
|
||||
name: "David Roth", role: "Architecture Fan", quote: "Incredible design and attention to detail everywhere you look.", imageSrc: "http://img.b2bpic.net/free-photo/woman-with-tea_1098-13992.jpg"},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<TestimonialsSection />
|
||||
|
||||
<div id="social" data-section="social">
|
||||
<SectionErrorBoundary name="social">
|
||||
<SocialProofMarquee
|
||||
tag="Trusted By"
|
||||
title="Recognized Excellence"
|
||||
description="Our commitment to quality is recognized industry-wide."
|
||||
names={[
|
||||
"Travel Today", "City Living", "Luxury Traveler", "Global Escapes", "Hotel Excellence Award", "Tourism Monthly", "Design Hotels World"]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<SocialSection />
|
||||
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqSimple
|
||||
tag="Helpful Info"
|
||||
title="Frequently Asked Questions"
|
||||
description="Find answers to common questions about our services."
|
||||
items={[
|
||||
{
|
||||
question: "What is the check-in time?", answer: "Check-in starts at 3:00 PM local time."},
|
||||
{
|
||||
question: "Do you have parking?", answer: "Yes, we provide secure underground parking for all our guests."},
|
||||
{
|
||||
question: "Are pets allowed?", answer: "We are a pet-friendly hotel for small breeds."},
|
||||
{
|
||||
question: "Can I request late checkout?", answer: "Yes, subject to room availability."},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<FaqSection />
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<ContactCta
|
||||
tag="Contact Us"
|
||||
text="Ready for an unforgettable escape? Book your room today."
|
||||
primaryButton={{
|
||||
text: "Book Your Stay", href: "#"}}
|
||||
secondaryButton={{
|
||||
text: "Contact Front Desk", href: "#"}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ContactSection />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
18
src/pages/HomePage/sections/About.tsx
Normal file
18
src/pages/HomePage/sections/About.tsx
Normal file
@@ -0,0 +1,18 @@
|
||||
// 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 AboutText from '@/components/sections/about/AboutText';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function AboutSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutText
|
||||
title="Welcome to a new standard of hospitality. We pride ourselves on creating unforgettable experiences for every guest who walks through our doors."
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
23
src/pages/HomePage/sections/Contact.tsx
Normal file
23
src/pages/HomePage/sections/Contact.tsx
Normal file
@@ -0,0 +1,23 @@
|
||||
// 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="Contact Us"
|
||||
text="Ready for an unforgettable escape? Book your room today."
|
||||
primaryButton={{
|
||||
text: "Book Your Stay", href: "#"}}
|
||||
secondaryButton={{
|
||||
text: "Contact Front Desk", href: "#"}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
30
src/pages/HomePage/sections/Faq.tsx
Normal file
30
src/pages/HomePage/sections/Faq.tsx
Normal file
@@ -0,0 +1,30 @@
|
||||
// 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 FaqSimple from '@/components/sections/faq/FaqSimple';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function FaqSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqSimple
|
||||
tag="Helpful Info"
|
||||
title="Frequently Asked Questions"
|
||||
description="Find answers to common questions about our services."
|
||||
items={[
|
||||
{
|
||||
question: "What is the check-in time?", answer: "Check-in starts at 3:00 PM local time."},
|
||||
{
|
||||
question: "Do you have parking?", answer: "Yes, we provide secure underground parking for all our guests."},
|
||||
{
|
||||
question: "Are pets allowed?", answer: "We are a pet-friendly hotel for small breeds."},
|
||||
{
|
||||
question: "Can I request late checkout?", answer: "Yes, subject to room availability."},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
65
src/pages/HomePage/sections/Features.tsx
Normal file
65
src/pages/HomePage/sections/Features.tsx
Normal file
@@ -0,0 +1,65 @@
|
||||
/* eslint-disable */
|
||||
// @ts-nocheck — generated by catalog-eject; runtime-correct but TS strict-mode false-positives on inlined catalog body
|
||||
import { Check, X } from "lucide-react";
|
||||
import Button from "@/components/ui/Button";
|
||||
import TextAnimation from "@/components/ui/TextAnimation";
|
||||
import ScrollReveal from "@/components/ui/ScrollReveal";
|
||||
|
||||
const services = [
|
||||
{ title: "Daily Housekeeping", description: "Rooms kept clean and presentable." },
|
||||
{ title: "24/7 Security", description: "Round-the-clock security for a peaceful stay." },
|
||||
{ title: "Dining Options", description: "Nearby dining and room service." },
|
||||
{ title: "Fresh Atmosphere", description: "No typical hotel smell, fresh bedsheets." },
|
||||
{ title: "Helpful Staff", description: "Owner and staff ready to assist." },
|
||||
{ title: "Central Location", description: "On main Trunk Road, easy to find." }
|
||||
];
|
||||
|
||||
const FeaturesInline = () => {
|
||||
return (
|
||||
<section aria-label="Services section" className="py-20">
|
||||
<div className="flex flex-col gap-8 md:gap-10">
|
||||
<div className="flex flex-col items-center w-content-width mx-auto gap-2">
|
||||
<div className="px-3 py-1 mb-1 text-sm card rounded w-fit">
|
||||
<p>{"Services & Amenities"}</p>
|
||||
</div>
|
||||
|
||||
<TextAnimation
|
||||
text={"Everything You Need"}
|
||||
variant="fade"
|
||||
gradientText={true}
|
||||
tag="h2"
|
||||
className="md:max-w-8/10 text-6xl 2xl:text-7xl leading-[1.15] font-semibold text-center text-balance"
|
||||
/>
|
||||
|
||||
<TextAnimation
|
||||
text={"Enjoy a peaceful and welcoming atmosphere with our helpful staff and essential amenities."}
|
||||
variant="fade"
|
||||
gradientText={false}
|
||||
tag="p"
|
||||
className="md:max-w-7/10 text-lg md:text-xl leading-snug text-center text-balance"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<ScrollReveal variant="fade-blur" className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 w-content-width mx-auto gap-5">
|
||||
{services.map((service) => (
|
||||
<div key={service.title} className="flex flex-col gap-4 p-6 xl:p-7 2xl:p-8 card rounded">
|
||||
<div className="flex items-center justify-center shrink-0 size-10 primary-button rounded">
|
||||
<Check className="size-5 text-primary-cta-text" strokeWidth={2} />
|
||||
</div>
|
||||
<h3 className="text-xl font-semibold">{service.title}</h3>
|
||||
<p className="text-base text-accent">{service.description}</p>
|
||||
</div>
|
||||
))}
|
||||
</ScrollReveal>
|
||||
</div>
|
||||
</section>
|
||||
);
|
||||
};
|
||||
|
||||
export default function FeaturesSection() {
|
||||
return (
|
||||
<div data-webild-section="features" id="features">
|
||||
<FeaturesInline />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
36
src/pages/HomePage/sections/Gallery.tsx
Normal file
36
src/pages/HomePage/sections/Gallery.tsx
Normal file
@@ -0,0 +1,36 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "gallery" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function GallerySection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="gallery" data-section="gallery">
|
||||
<SectionErrorBoundary name="gallery">
|
||||
<FeaturesImageBento
|
||||
tag="Gallery"
|
||||
title="Explore Our Facilities"
|
||||
description="See the elegance of our hotel spaces."
|
||||
items={[
|
||||
{
|
||||
title: "Gourmet Dining", description: "Local and international flavors.", imageSrc: "http://img.b2bpic.net/free-photo/restaurant-hall-with-round-square-tables-some-chairs-plants_140725-8031.jpg"},
|
||||
{
|
||||
title: "Outdoor Pool", description: "Relax under the sun.", imageSrc: "http://img.b2bpic.net/free-photo/portrait-beautiful-young-asian-woman-relax-smile-leisure-around-outdoor-swimming-pool-with-sea-ocean-travel-vacation_74190-14576.jpg"},
|
||||
{
|
||||
title: "Luxury Spa", description: "Rejuvenate your mind.", imageSrc: "http://img.b2bpic.net/free-photo/luxurious-spa-bathroom-with-nature-view_23-2152008204.jpg"},
|
||||
{
|
||||
title: "Fitness Center", description: "Stay active during your stay.", imageSrc: "http://img.b2bpic.net/free-photo/equipments-gym_93675-129485.jpg"},
|
||||
{
|
||||
title: "Meeting Spaces", description: "Perfect for events.", imageSrc: "http://img.b2bpic.net/free-photo/people-taking-part-business-event_23-2149346606.jpg"},
|
||||
{
|
||||
title: "Private Gardens", description: "Quiet sanctuary.", imageSrc: "http://img.b2bpic.net/free-photo/lights-park-with-green-trees-pond_1268-15675.jpg"},
|
||||
{
|
||||
title: "Hotel Lounge", description: "Enjoy evening cocktails.", imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-woman-holding-drink_23-2150124828.jpg"},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
30
src/pages/HomePage/sections/Hero.tsx
Normal file
30
src/pages/HomePage/sections/Hero.tsx
Normal file
@@ -0,0 +1,30 @@
|
||||
// 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 HeroSplitMediaGrid from '@/components/sections/hero/HeroSplitMediaGrid';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function HeroSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroSplitMediaGrid
|
||||
tag="Experience True Luxury"
|
||||
title="Your Home Away From Home"
|
||||
description="Escape to our boutique hotel located in the heart of the city. Relax in comfort and style."
|
||||
primaryButton={{
|
||||
text: "Book Your Stay", href: "#contact"}}
|
||||
secondaryButton={{
|
||||
text: "Learn More", href: "#about"}}
|
||||
items={[
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/long-corridor-showcase_1127-3442.jpg"},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/black-cushion-with-pillows_1203-545.jpg"},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
21
src/pages/HomePage/sections/Pricing.tsx
Normal file
21
src/pages/HomePage/sections/Pricing.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 "pricing" section.
|
||||
|
||||
import React from 'react';
|
||||
import PricingHighlightedCards from '@/components/sections/pricing/PricingHighlightedCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function PricingSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="pricing" data-section="pricing">
|
||||
<SectionErrorBoundary name="pricing">
|
||||
<PricingHighlightedCards
|
||||
tag="Rooms & Pricing"
|
||||
title="Budget-Friendly Lodging"
|
||||
description="Clean, comfortable rooms with a homely feel. Good value for the price point in Silchar."
|
||||
plans={[{"price":"₹800","primaryButton":{"href":"#contact","text":"Book Now"},"features":["Clean and comfortable","Fresh bedsheets and blankets","No typical hotel smell"],"tag":"Standard Room","description":"Perfect for solo travelers or a quick stay."},{"price":"₹1200","primaryButton":{"text":"Book Now","href":"#contact"},"features":["Clean and comfortable","Fresh bedsheets and blankets","No typical hotel smell","Peaceful atmosphere"],"tag":"Deluxe Room","highlight":"Best Value","description":"Ideal for couples or longer stays."},{"description":"More space for families or groups.","tag":"Family Room","features":["Clean and comfortable","Fresh bedsheets and blankets","No typical hotel smell","Peaceful atmosphere","Extra space"],"price":"₹1800","primaryButton":{"text":"Book Now","href":"#contact"}}]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
22
src/pages/HomePage/sections/Social.tsx
Normal file
22
src/pages/HomePage/sections/Social.tsx
Normal file
@@ -0,0 +1,22 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "social" section.
|
||||
|
||||
import React from 'react';
|
||||
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function SocialSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="social" data-section="social">
|
||||
<SectionErrorBoundary name="social">
|
||||
<SocialProofMarquee
|
||||
tag="Trusted By"
|
||||
title="Recognized Excellence"
|
||||
description="Our commitment to quality is recognized industry-wide."
|
||||
names={[
|
||||
"Travel Today", "City Living", "Luxury Traveler", "Global Escapes", "Hotel Excellence Award", "Tourism Monthly", "Design Hotels World"]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
32
src/pages/HomePage/sections/Testimonials.tsx
Normal file
32
src/pages/HomePage/sections/Testimonials.tsx
Normal file
@@ -0,0 +1,32 @@
|
||||
// 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 TestimonialQuoteCards from '@/components/sections/testimonial/TestimonialQuoteCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function TestimonialsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialQuoteCards
|
||||
tag="Guest Reviews"
|
||||
title="What Our Guests Say"
|
||||
description="We are honored to have shared moments with our amazing guests."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Sarah Jenkins", role: "Travel Blogger", quote: "The absolute highlight of my year. The service was impeccable.", imageSrc: "http://img.b2bpic.net/free-photo/woman-trip-takes-photos-city-from-height-female-with-camera-women-photographer_1321-4658.jpg"},
|
||||
{
|
||||
name: "Marcus Thorne", role: "Business Executive", quote: "Perfect for both meetings and relaxing. Truly a professional hotel.", imageSrc: "http://img.b2bpic.net/free-photo/portrait-smiling-businessman-with-luggage-checking-his-boarding-pass_107420-95776.jpg"},
|
||||
{
|
||||
name: "The Miller Family", role: "Guests", quote: "We loved every second of our stay. The breakfast was divine!", imageSrc: "http://img.b2bpic.net/free-photo/internationals-people-standing-cafe-with-shopping-bags_1157-31454.jpg"},
|
||||
{
|
||||
name: "Elaine Wong", role: "Yoga Instructor", quote: "A beautiful serene sanctuary in the middle of the busy city center.", imageSrc: "http://img.b2bpic.net/free-photo/happy-beautiful-young-woman-sitting-bed-holding-glass-juice-mobile-phone-looking-away_23-2148033310.jpg"},
|
||||
{
|
||||
name: "David Roth", role: "Architecture Fan", quote: "Incredible design and attention to detail everywhere you look.", imageSrc: "http://img.b2bpic.net/free-photo/woman-with-tea_1098-13992.jpg"},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user