Bob AI: <ATTACHED_BLOCKS>
The user attached the section/component ca
This commit is contained in:
@@ -1,304 +1,36 @@
|
||||
import AboutMediaOverlay from '@/components/sections/about/AboutMediaOverlay';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import FaqTabbedAccordion from '@/components/sections/faq/FaqTabbedAccordion';
|
||||
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
|
||||
import FeaturesMediaCarousel from '@/components/sections/features/FeaturesMediaCarousel';
|
||||
import HeroSplitVerticalMarquee from '@/components/sections/hero/HeroSplitVerticalMarquee';
|
||||
import MetricsMediaCards from '@/components/sections/metrics/MetricsMediaCards';
|
||||
import TestimonialTrustCard from '@/components/sections/testimonial/TestimonialTrustCard';
|
||||
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 RoomsSection from './HomePage/sections/Rooms';
|
||||
import ExperiencesSection from './HomePage/sections/Experiences';
|
||||
import MetricsSection from './HomePage/sections/Metrics';
|
||||
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">
|
||||
<HeroSplitVerticalMarquee
|
||||
tag="Welcome to Grand Budapest"
|
||||
title="Discover Budapest from Your Perfect Room"
|
||||
description="Experience elegance in the heart of the Danube. Explore interactive 360° rooms, curated local experiences, and seamless booking in minutes."
|
||||
primaryButton={{
|
||||
text: "Explore & Book Now",
|
||||
href: "#rooms",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "View Amenities",
|
||||
href: "#about",
|
||||
}}
|
||||
leftItems={[
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/3d-rendering-modern-luxury-hotel-office-reception-meeting-lounge_105762-2045.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/boston-public-library_649448-649.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/city-background-panoramic-view_23-2148892970.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/restaurant-hall-with-leather-armchairs-french-windows_140725-8445.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/couple-cafe_1157-4340.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/panoramic-sauna-view-organic-wooden-columns-resort-style-wellness_169016-68883.jpg",
|
||||
},
|
||||
]}
|
||||
rightItems={[
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-woman-making-soap-bubbles_23-2148774644.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-old-castle-bitov-forest-dam-vranov-dam-south-moravia-czech-republic_1161-717.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/view-pamplona-with-arga-river_1398-3269.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/woman-doing-yoga-roof-skyscraper-big-city_1153-4548.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/los-angeles-downtown-night-with-urban-buildings-lake_649448-4079.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/aerial-view-liverpool-from-view-point-united-kingdom_1268-19720.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<>
|
||||
<HeroSection />
|
||||
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutMediaOverlay
|
||||
tag="Our Heritage"
|
||||
title="Elegance in the Heart of the Danube"
|
||||
description="Our hotel seamlessly blends neo-classical history with modern luxury amenities. Located centrally, we provide guests with an unmatched perspective on Budapest’s stunning architecture and vibrant culture."
|
||||
imageSrc="http://img.b2bpic.net/free-photo/high-angle-teacups-antique-store_23-2149640750.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<AboutSection />
|
||||
|
||||
<div id="rooms" data-section="rooms">
|
||||
<SectionErrorBoundary name="rooms">
|
||||
<FeaturesMediaCarousel
|
||||
tag="Stay With Us"
|
||||
title="Immersive Suite Experience"
|
||||
description="Explore our curated room selection with high-definition previews."
|
||||
items={[
|
||||
{
|
||||
title: "Danube Suite",
|
||||
description: "Panoramic river views.",
|
||||
buttonIcon: "ArrowRight",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/interior-design-neoclassical-style-with-furnishings-decor_23-2151199314.jpg",
|
||||
},
|
||||
{
|
||||
title: "Heritage King",
|
||||
description: "Historic comfort redefined.",
|
||||
buttonIcon: "ArrowRight",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/cozy-modern-bedroom-with-comfortable-double-bed-generative-ai_188544-32267.jpg",
|
||||
},
|
||||
{
|
||||
title: "Deluxe Queen",
|
||||
description: "Cozy, modern, elegant.",
|
||||
buttonIcon: "ArrowRight",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/luxury-bedroom-interior-with-rich-furniture-scenic-view-from-walkout-deck_1258-111480.jpg",
|
||||
},
|
||||
{
|
||||
title: "Royal Penthouse",
|
||||
description: "Unrivaled luxury stay.",
|
||||
buttonIcon: "ArrowRight",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/bedroom-with-chandelier-bed-with-blanket-it_188544-33431.jpg",
|
||||
},
|
||||
{
|
||||
title: "Family Haven",
|
||||
description: "Spacious family comfort.",
|
||||
buttonIcon: "ArrowRight",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/full-shot-woman-with-smartphone-vibrator_23-2150232150.jpg",
|
||||
},
|
||||
{
|
||||
title: "Executive Suite",
|
||||
description: "Perfect for travel.",
|
||||
buttonIcon: "ArrowRight",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/luxury-hotel-suite-modern-elegance-illuminated-naturally-generated-by-ai_188544-18309.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<RoomsSection />
|
||||
|
||||
<div id="experiences" data-section="experiences">
|
||||
<SectionErrorBoundary name="experiences">
|
||||
<FeaturesImageBento
|
||||
tag="Curated Experiences"
|
||||
title="Beyond the Room"
|
||||
description="Local adventures tailored to your preferences."
|
||||
items={[
|
||||
{
|
||||
title: "Thermal Spas",
|
||||
description: "Authentic wellness.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-woman-is-relaxing-jacuzzi_169016-22522.jpg",
|
||||
},
|
||||
{
|
||||
title: "Fine Dining",
|
||||
description: "Gourmet local cuisine.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/people-having-dinner-luxurious-restaurants_23-2151081849.jpg",
|
||||
},
|
||||
{
|
||||
title: "City Tours",
|
||||
description: "Private guided walks.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/fashion-portrait-young-woman-vacation-asian-wooden-boat_343596-2583.jpg",
|
||||
},
|
||||
{
|
||||
title: "Wine Tasting",
|
||||
description: "Hungarian vineyard tours.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/spa-concept-with-woman-relaxing-water_23-2148000042.jpg",
|
||||
},
|
||||
{
|
||||
title: "River Cruise",
|
||||
description: "Stunning Danube sunset.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/dining-table-with-chairs-tableware_140725-7823.jpg",
|
||||
},
|
||||
{
|
||||
title: "Opera Night",
|
||||
description: "Cultural musical events.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/side-view-senior-couple-dancing-peer-while-date_23-2149274369.jpg",
|
||||
},
|
||||
{
|
||||
title: "Art Galleries",
|
||||
description: "Explore local creators.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/orchid-stones-near-teapot_23-2147809197.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ExperiencesSection />
|
||||
|
||||
<div id="metrics" data-section="metrics">
|
||||
<SectionErrorBoundary name="metrics">
|
||||
<MetricsMediaCards
|
||||
tag="Our Performance"
|
||||
title="Hospitality Excellence"
|
||||
description="Data-backed guest satisfaction and service quality."
|
||||
metrics={[
|
||||
{
|
||||
value: "98%",
|
||||
title: "Satisfaction",
|
||||
description: "Guest ratings are consistent.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-sexy-handsome-fashion-male-model-man-dressed-elegant-beige-checkered-suit-posing-street-background_158538-2643.jpg",
|
||||
},
|
||||
{
|
||||
value: "5k+",
|
||||
title: "Happy Guests",
|
||||
description: "Memories made since inception.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/man-headphones_1157-18565.jpg",
|
||||
},
|
||||
{
|
||||
value: "15",
|
||||
title: "City Awards",
|
||||
description: "Global recognition in service.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/blonde-girl-posing-bathroom-with-bath-robe_23-2148147502.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<MetricsSection />
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialTrustCard
|
||||
quote="An absolute treasure in Budapest. The rooms were spectacular and the local tours were unforgettable. The perfect blend of comfort and culture."
|
||||
rating={5}
|
||||
author="Sarah & David, Travel Enthusiasts"
|
||||
avatars={[
|
||||
{
|
||||
name: "Sarah",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/cheerful-blonde-with-blue-suitcase-sitting-chair-near-cafe-purple-pullover-jeans-makeup-hair-style-emotions-autumn-blonde-happy-knitted-smiling-model-beauty_343629-42.jpg",
|
||||
},
|
||||
{
|
||||
name: "David",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/internationals-people-standing-cafe-with-shopping-bags_1157-31452.jpg",
|
||||
},
|
||||
{
|
||||
name: "Elena",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/cheerful-newlyweds-rest-bright-pink-sofa-cafe_8353-8271.jpg",
|
||||
},
|
||||
{
|
||||
name: "Marcus",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/side-view-smiley-elder-tourist-woman_23-2148620263.jpg",
|
||||
},
|
||||
{
|
||||
name: "Sophie",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/middle-age-friends-night-having-dinner_23-2149190912.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<TestimonialsSection />
|
||||
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqTabbedAccordion
|
||||
tag="Common Questions"
|
||||
title="Guest Information"
|
||||
description="Answers to frequently asked questions about bookings and amenities."
|
||||
categories={[
|
||||
{
|
||||
name: "General",
|
||||
items: [
|
||||
{
|
||||
question: "Check-in time?",
|
||||
answer: "Check-in is from 3:00 PM.",
|
||||
},
|
||||
{
|
||||
question: "Pets allowed?",
|
||||
answer: "Yes, boutique pets are welcome.",
|
||||
},
|
||||
{
|
||||
question: "Breakfast?",
|
||||
answer: "Included for all suites.",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "Booking",
|
||||
items: [
|
||||
{
|
||||
question: "Cancellations?",
|
||||
answer: "Free cancellation within 48h.",
|
||||
},
|
||||
{
|
||||
question: "Deposit?",
|
||||
answer: "Standard credit card hold.",
|
||||
},
|
||||
{
|
||||
question: "Payment methods?",
|
||||
answer: "Visa, Mastercard, Amex.",
|
||||
},
|
||||
],
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<FaqSection />
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<ContactCta
|
||||
tag="Reservations"
|
||||
text="Ready to experience the beauty of Budapest? Book your room now or contact our concierge for personalized travel assistance."
|
||||
primaryButton={{
|
||||
text: "Book Now",
|
||||
href: "#",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Contact Concierge",
|
||||
href: "mailto:concierge@grandbudapesthotel.com",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ContactSection />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
21
src/pages/HomePage/sections/About.tsx
Normal file
21
src/pages/HomePage/sections/About.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 "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="Our Heritage"
|
||||
title="Elegance in the Heart of the Danube"
|
||||
description="Our hotel seamlessly blends neo-classical history with modern luxury amenities. Located centrally, we provide guests with an unmatched perspective on Budapest’s stunning architecture and vibrant culture."
|
||||
imageSrc="http://img.b2bpic.net/free-photo/high-angle-teacups-antique-store_23-2149640750.jpg"
|
||||
/>
|
||||
</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="Reservations"
|
||||
text="Ready to experience the beauty of Budapest? Book your room now or contact our concierge for personalized travel assistance."
|
||||
primaryButton={{
|
||||
text: "Book Now",
|
||||
href: "#",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Contact Concierge",
|
||||
href: "mailto:concierge@grandbudapesthotel.com",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
57
src/pages/HomePage/sections/Experiences.tsx
Normal file
57
src/pages/HomePage/sections/Experiences.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 "experiences" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function ExperiencesSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="experiences" data-section="experiences">
|
||||
<SectionErrorBoundary name="experiences">
|
||||
<FeaturesImageBento
|
||||
tag="Curated Experiences"
|
||||
title="Beyond the Room"
|
||||
description="Local adventures tailored to your preferences."
|
||||
items={[
|
||||
{
|
||||
title: "Thermal Spas",
|
||||
description: "Authentic wellness.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-woman-is-relaxing-jacuzzi_169016-22522.jpg",
|
||||
},
|
||||
{
|
||||
title: "Fine Dining",
|
||||
description: "Gourmet local cuisine.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/people-having-dinner-luxurious-restaurants_23-2151081849.jpg",
|
||||
},
|
||||
{
|
||||
title: "City Tours",
|
||||
description: "Private guided walks.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/fashion-portrait-young-woman-vacation-asian-wooden-boat_343596-2583.jpg",
|
||||
},
|
||||
{
|
||||
title: "Wine Tasting",
|
||||
description: "Hungarian vineyard tours.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/spa-concept-with-woman-relaxing-water_23-2148000042.jpg",
|
||||
},
|
||||
{
|
||||
title: "River Cruise",
|
||||
description: "Stunning Danube sunset.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/dining-table-with-chairs-tableware_140725-7823.jpg",
|
||||
},
|
||||
{
|
||||
title: "Opera Night",
|
||||
description: "Cultural musical events.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/side-view-senior-couple-dancing-peer-while-date_23-2149274369.jpg",
|
||||
},
|
||||
{
|
||||
title: "Art Galleries",
|
||||
description: "Explore local creators.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/orchid-stones-near-teapot_23-2147809197.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
56
src/pages/HomePage/sections/Faq.tsx
Normal file
56
src/pages/HomePage/sections/Faq.tsx
Normal file
@@ -0,0 +1,56 @@
|
||||
// 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="Common Questions"
|
||||
title="Guest Information"
|
||||
description="Answers to frequently asked questions about bookings and amenities."
|
||||
categories={[
|
||||
{
|
||||
name: "General",
|
||||
items: [
|
||||
{
|
||||
question: "Check-in time?",
|
||||
answer: "Check-in is from 3:00 PM.",
|
||||
},
|
||||
{
|
||||
question: "Pets allowed?",
|
||||
answer: "Yes, boutique pets are welcome.",
|
||||
},
|
||||
{
|
||||
question: "Breakfast?",
|
||||
answer: "Included for all suites.",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "Booking",
|
||||
items: [
|
||||
{
|
||||
question: "Cancellations?",
|
||||
answer: "Free cancellation within 48h.",
|
||||
},
|
||||
{
|
||||
question: "Deposit?",
|
||||
answer: "Standard credit card hold.",
|
||||
},
|
||||
{
|
||||
question: "Payment methods?",
|
||||
answer: "Visa, Mastercard, Amex.",
|
||||
},
|
||||
],
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
18
src/pages/HomePage/sections/Hero.tsx
Normal file
18
src/pages/HomePage/sections/Hero.tsx
Normal file
@@ -0,0 +1,18 @@
|
||||
// Created by add_section_from_catalog (HeroBrandCarousel).
|
||||
|
||||
import React from 'react';
|
||||
import HeroBrandCarousel from '@/components/sections/hero/HeroBrandCarousel';
|
||||
|
||||
export default function HeroSection(): React.JSX.Element {
|
||||
return (
|
||||
<div data-webild-section="hero" id="hero">
|
||||
<HeroBrandCarousel
|
||||
items={[{"imageSrc":"http://img.b2bpic.net/free-photo/3d-rendering-modern-luxury-hotel-office-reception-meeting-lounge_105762-2045.jpg"},{"imageSrc":"http://img.b2bpic.net/free-photo/boston-public-library_649448-649.jpg"},{"imageSrc":"http://img.b2bpic.net/free-photo/restaurant-hall-with-leather-armchairs-french-windows_140725-8445.jpg"},{"imageSrc":"http://img.b2bpic.net/free-photo/panoramic-sauna-view-organic-wooden-columns-resort-style-wellness_169016-68883.jpg"}]}
|
||||
description="Discover Budapest from Your Perfect Room. Experience elegance in the heart of the Danube. Explore interactive 360° rooms, curated local experiences, and seamless booking in minutes."
|
||||
brand="Budapest"
|
||||
secondaryButton={{"href":"#about","text":"View Amenities"}}
|
||||
primaryButton={{"href":"#rooms","text":"Explore & Book Now"}}
|
||||
/>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
40
src/pages/HomePage/sections/Metrics.tsx
Normal file
40
src/pages/HomePage/sections/Metrics.tsx
Normal file
@@ -0,0 +1,40 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "metrics" section.
|
||||
|
||||
import React from 'react';
|
||||
import MetricsMediaCards from '@/components/sections/metrics/MetricsMediaCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function MetricsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="metrics" data-section="metrics">
|
||||
<SectionErrorBoundary name="metrics">
|
||||
<MetricsMediaCards
|
||||
tag="Our Performance"
|
||||
title="Hospitality Excellence"
|
||||
description="Data-backed guest satisfaction and service quality."
|
||||
metrics={[
|
||||
{
|
||||
value: "98%",
|
||||
title: "Satisfaction",
|
||||
description: "Guest ratings are consistent.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-sexy-handsome-fashion-male-model-man-dressed-elegant-beige-checkered-suit-posing-street-background_158538-2643.jpg",
|
||||
},
|
||||
{
|
||||
value: "5k+",
|
||||
title: "Happy Guests",
|
||||
description: "Memories made since inception.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/man-headphones_1157-18565.jpg",
|
||||
},
|
||||
{
|
||||
value: "15",
|
||||
title: "City Awards",
|
||||
description: "Global recognition in service.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/blonde-girl-posing-bathroom-with-bath-robe_23-2148147502.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
58
src/pages/HomePage/sections/Rooms.tsx
Normal file
58
src/pages/HomePage/sections/Rooms.tsx
Normal file
@@ -0,0 +1,58 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "rooms" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesMediaCarousel from '@/components/sections/features/FeaturesMediaCarousel';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function RoomsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="rooms" data-section="rooms">
|
||||
<SectionErrorBoundary name="rooms">
|
||||
<FeaturesMediaCarousel
|
||||
tag="Stay With Us"
|
||||
title="Immersive Suite Experience"
|
||||
description="Explore our curated room selection with high-definition previews."
|
||||
items={[
|
||||
{
|
||||
title: "Danube Suite",
|
||||
description: "Panoramic river views.",
|
||||
buttonIcon: "ArrowRight",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/interior-design-neoclassical-style-with-furnishings-decor_23-2151199314.jpg",
|
||||
},
|
||||
{
|
||||
title: "Heritage King",
|
||||
description: "Historic comfort redefined.",
|
||||
buttonIcon: "ArrowRight",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/cozy-modern-bedroom-with-comfortable-double-bed-generative-ai_188544-32267.jpg",
|
||||
},
|
||||
{
|
||||
title: "Deluxe Queen",
|
||||
description: "Cozy, modern, elegant.",
|
||||
buttonIcon: "ArrowRight",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/luxury-bedroom-interior-with-rich-furniture-scenic-view-from-walkout-deck_1258-111480.jpg",
|
||||
},
|
||||
{
|
||||
title: "Royal Penthouse",
|
||||
description: "Unrivaled luxury stay.",
|
||||
buttonIcon: "ArrowRight",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/bedroom-with-chandelier-bed-with-blanket-it_188544-33431.jpg",
|
||||
},
|
||||
{
|
||||
title: "Family Haven",
|
||||
description: "Spacious family comfort.",
|
||||
buttonIcon: "ArrowRight",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/full-shot-woman-with-smartphone-vibrator_23-2150232150.jpg",
|
||||
},
|
||||
{
|
||||
title: "Executive Suite",
|
||||
description: "Perfect for travel.",
|
||||
buttonIcon: "ArrowRight",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/luxury-hotel-suite-modern-elegance-illuminated-naturally-generated-by-ai_188544-18309.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
42
src/pages/HomePage/sections/Testimonials.tsx
Normal file
42
src/pages/HomePage/sections/Testimonials.tsx
Normal file
@@ -0,0 +1,42 @@
|
||||
// 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 TestimonialTrustCard from '@/components/sections/testimonial/TestimonialTrustCard';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function TestimonialsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialTrustCard
|
||||
quote="An absolute treasure in Budapest. The rooms were spectacular and the local tours were unforgettable. The perfect blend of comfort and culture."
|
||||
rating={5}
|
||||
author="Sarah & David, Travel Enthusiasts"
|
||||
avatars={[
|
||||
{
|
||||
name: "Sarah",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/cheerful-blonde-with-blue-suitcase-sitting-chair-near-cafe-purple-pullover-jeans-makeup-hair-style-emotions-autumn-blonde-happy-knitted-smiling-model-beauty_343629-42.jpg",
|
||||
},
|
||||
{
|
||||
name: "David",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/internationals-people-standing-cafe-with-shopping-bags_1157-31452.jpg",
|
||||
},
|
||||
{
|
||||
name: "Elena",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/cheerful-newlyweds-rest-bright-pink-sofa-cafe_8353-8271.jpg",
|
||||
},
|
||||
{
|
||||
name: "Marcus",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/side-view-smiley-elder-tourist-woman_23-2148620263.jpg",
|
||||
},
|
||||
{
|
||||
name: "Sophie",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/middle-age-friends-night-having-dinner_23-2149190912.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user