Merge version_2_1782169418343 into main #1

Merged
bender merged 1 commits from version_2_1782169418343 into main 2026-06-22 23:05:40 +00:00
10 changed files with 376 additions and 280 deletions

View File

@@ -1,293 +1,39 @@
import AboutTextSplit from '@/components/sections/about/AboutTextSplit';
import ContactCta from '@/components/sections/contact/ContactCta';
import FeaturesComparison from '@/components/sections/features/FeaturesComparison';
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
import HeroSplitMediaGrid from '@/components/sections/hero/HeroSplitMediaGrid';
import MetricsIconCards from '@/components/sections/metrics/MetricsIconCards';
import PricingHighlightedCards from '@/components/sections/pricing/PricingHighlightedCards';
import SocialProofMarquee from '@/components/sections/social-proof/SocialProofMarquee';
import TestimonialMarqueeOverlayCards from '@/components/sections/testimonial/TestimonialMarqueeOverlayCards';
import { MapPin, Smile, Star } from "lucide-react";
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 AmenitiesSection from './HomePage/sections/Amenities';
import PricingSection from './HomePage/sections/Pricing';
import MetricsSection from './HomePage/sections/Metrics';
import TestimonialsSection from './HomePage/sections/Testimonials';
import SocialProofSection from './HomePage/sections/SocialProof';
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="Luxury Defined"
title="Welcome to Meliá Hotels"
description="Experience unparalleled elegance and world-class service in the heart of the world's most vibrant cities."
primaryButton={{
text: "Reserve Your Suite",
href: "#pricing",
}}
secondaryButton={{
text: "Discover More",
href: "#about",
}}
items={[
{
imageSrc: "http://img.b2bpic.net/free-photo/neon-lit-skatepark-sunset_23-2151986963.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/outdoor-swimming-pool_1203-2844.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<>
<HeroSection />
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutTextSplit
title="A Legacy of Hospitality"
descriptions={[
"Meliá represents the pinnacle of luxury, where tradition meets contemporary design. Our curated properties are designed to offer sanctuary and sophistication.",
"Since our founding, we have been dedicated to providing bespoke experiences for travelers who demand excellence. Every detail is a testament to our commitment.",
]}
primaryButton={{
text: "Our History",
href: "#",
}}
/>
</SectionErrorBoundary>
</div>
<AboutSection />
<div id="features" data-section="features">
<SectionErrorBoundary name="features">
<FeaturesComparison
tag="Experience Difference"
title="Why Choose Meliá"
description="Excellence is not just a standard, it's our promise."
negativeItems={[
"Average room sizing",
"Standard concierge services",
"Basic amenity packages",
]}
positiveItems={[
"Spacious designer suites",
"24/7 Personalised butler",
"Exclusive luxury amenities",
]}
/>
</SectionErrorBoundary>
</div>
<FeaturesSection />
<div id="amenities" data-section="amenities">
<SectionErrorBoundary name="amenities">
<FeaturesImageBento
tag="Our Offerings"
title="World-Class Amenities"
description="Indulge in a collection of experiences tailored to your refined taste."
items={[
{
title: "Sanctuary Spa",
description: "Rejuvenate with holistic treatments.",
imageSrc: "http://img.b2bpic.net/free-photo/silhouette-woman-spa_23-2148000382.jpg",
},
{
title: "Gourmet Dining",
description: "Exquisite culinary journeys.",
imageSrc: "http://img.b2bpic.net/free-photo/life-style_1122-1806.jpg",
},
{
title: "Concierge Services",
description: "Your desires fulfilled.",
imageSrc: "http://img.b2bpic.net/free-photo/attractive-woman-reception-desk-looking-camera_23-2148033349.jpg",
},
{
title: "Fitness Center",
description: "Stay active in our premium gym.",
imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-sports-couple-making-cardio-workout-modern-gym_496169-2712.jpg",
},
{
title: "Sky Lounge",
description: "Breathtaking views.",
imageSrc: "http://img.b2bpic.net/free-photo/classic-old-fashioned-library-space-with-elegant-wooden-interiors_482257-125296.jpg",
},
{
title: "Secret Gardens",
description: "Escape into nature.",
imageSrc: "http://img.b2bpic.net/free-photo/san-diego-dawn-early-morning-with-palm-tree-silhouette_649448-2514.jpg",
},
{
title: "Event Space",
description: "Host in pure luxury.",
imageSrc: "http://img.b2bpic.net/free-photo/chair-front-businesswoman-sitting-caf_23-2147876643.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<AmenitiesSection />
<div id="pricing" data-section="pricing">
<SectionErrorBoundary name="pricing">
<PricingHighlightedCards
tag="Stay With Us"
title="Curated Suites"
description="Select the perfect room for your next escape."
plans={[
{
tag: "Essential",
price: "$450/nt",
description: "The perfect introduction to luxury.",
features: [
"King-sized Bed",
"City View",
"Complimentary Wi-Fi",
],
primaryButton: {
text: "Book Now",
href: "#",
},
},
{
tag: "Elite",
price: "$890/nt",
description: "Unmatched sophistication.",
features: [
"Panoramic Suite",
"Personal Butler",
"Private Terrace",
"Lounge Access",
],
highlight: "Most Popular",
primaryButton: {
text: "Book Now",
href: "#",
},
},
{
tag: "Royal",
price: "$1,450/nt",
description: "The ultimate Meliá experience.",
features: [
"Penthouse Level",
"24/7 Concierge",
"Spa Credits",
"VIP Transfer",
],
primaryButton: {
text: "Book Now",
href: "#",
},
},
]}
/>
</SectionErrorBoundary>
</div>
<PricingSection />
<div id="metrics" data-section="metrics">
<SectionErrorBoundary name="metrics">
<MetricsIconCards
tag="Our Global Impact"
title="Meliá by Numbers"
description="Setting standards across the globe."
metrics={[
{
icon: MapPin,
title: "Destinations",
value: "150+",
},
{
icon: Star,
title: "Global Awards",
value: "450",
},
{
icon: Smile,
title: "Happy Guests",
value: "2M+",
},
]}
/>
</SectionErrorBoundary>
</div>
<MetricsSection />
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialMarqueeOverlayCards
tag="Guest Stories"
title="Voices of Excellence"
description="Discover why our guests return year after year."
testimonials={[
{
name: "Julianna S.",
role: "Travel Editor",
company: "GlobeTrotter",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/elegant-old-man-airport-with-suitcase_1157-33367.jpg",
},
{
name: "Mark D.",
role: "CEO",
company: "TechInnovate",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/close-up-view-black-woman-smile-camera_197531-33139.jpg",
},
{
name: "Sophia V.",
role: "Architect",
company: "VDesigns",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/groom-portrait-outdoor_624325-1547.jpg",
},
{
name: "Robert B.",
role: "Entrepreneur",
company: "StartupX",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/browneyed-brunette-woman-beige-dress-with-straw-bag-holds-widebrimmed-hat-moves-along-path-old-city_197531-30085.jpg",
},
{
name: "Elena R.",
role: "Journalist",
company: "GlobalNews",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-lovely-couple-dancing_23-2148060455.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<TestimonialsSection />
<div id="social-proof" data-section="social-proof">
<SectionErrorBoundary name="social-proof">
<SocialProofMarquee
tag="Partnerships"
title="Accredited Excellence"
description="Recognized by industry leaders worldwide."
names={[
"Forbes Travel Guide",
"Condé Nast Traveler",
"Michelin Guide",
"Leading Hotels of the World",
"Virtuoso",
"American Express Fine Hotels",
"TripAdvisor Choice",
]}
/>
</SectionErrorBoundary>
</div>
<SocialProofSection />
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Connect With Us"
text="Your perfect stay awaits. Reach out to our concierge today for bespoke bookings."
primaryButton={{
text: "Contact Concierge",
href: "#",
}}
secondaryButton={{
text: "View All Offers",
href: "#",
}}
/>
</SectionErrorBoundary>
</div>
<ContactSection />
</>
);
}

View 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="A Legacy of Hospitality"
descriptions={[
"Meliá represents the pinnacle of luxury, where tradition meets contemporary design. Our curated properties are designed to offer sanctuary and sophistication.",
"Since our founding, we have been dedicated to providing bespoke experiences for travelers who demand excellence. Every detail is a testament to our commitment.",
]}
primaryButton={{
text: "Our History",
href: "#",
}}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,57 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "amenities" section.
import React from 'react';
import FeaturesImageBento from '@/components/sections/features/FeaturesImageBento';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function AmenitiesSection(): React.JSX.Element {
return (
<div id="amenities" data-section="amenities">
<SectionErrorBoundary name="amenities">
<FeaturesImageBento
tag="Our Offerings"
title="World-Class Amenities"
description="Indulge in a collection of experiences tailored to your refined taste."
items={[
{
title: "Sanctuary Spa",
description: "Rejuvenate with holistic treatments.",
imageSrc: "http://img.b2bpic.net/free-photo/silhouette-woman-spa_23-2148000382.jpg",
},
{
title: "Gourmet Dining",
description: "Exquisite culinary journeys.",
imageSrc: "http://img.b2bpic.net/free-photo/life-style_1122-1806.jpg",
},
{
title: "Concierge Services",
description: "Your desires fulfilled.",
imageSrc: "http://img.b2bpic.net/free-photo/attractive-woman-reception-desk-looking-camera_23-2148033349.jpg",
},
{
title: "Fitness Center",
description: "Stay active in our premium gym.",
imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-sports-couple-making-cardio-workout-modern-gym_496169-2712.jpg",
},
{
title: "Sky Lounge",
description: "Breathtaking views.",
imageSrc: "http://img.b2bpic.net/free-photo/classic-old-fashioned-library-space-with-elegant-wooden-interiors_482257-125296.jpg",
},
{
title: "Secret Gardens",
description: "Escape into nature.",
imageSrc: "http://img.b2bpic.net/free-photo/san-diego-dawn-early-morning-with-palm-tree-silhouette_649448-2514.jpg",
},
{
title: "Event Space",
description: "Host in pure luxury.",
imageSrc: "http://img.b2bpic.net/free-photo/chair-front-businesswoman-sitting-caf_23-2147876643.jpg",
},
]}
/>
</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="Connect With Us"
text="Your perfect stay awaits. Reach out to our concierge today for bespoke bookings."
primaryButton={{
text: "Contact Concierge",
href: "#",
}}
secondaryButton={{
text: "View All Offers",
href: "#",
}}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,30 @@
// 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 FeaturesComparison from '@/components/sections/features/FeaturesComparison';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function FeaturesSection(): React.JSX.Element {
return (
<div id="features" data-section="features">
<SectionErrorBoundary name="features">
<FeaturesComparison
tag="Experience Difference"
title="Why Choose Meliá"
description="Excellence is not just a standard, it's our promise."
negativeItems={[
"Average room sizing",
"Standard concierge services",
"Basic amenity packages",
]}
positiveItems={[
"Spacious designer suites",
"24/7 Personalised butler",
"Exclusive luxury amenities",
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,19 @@
// Created by add_section_from_catalog (HeroBillboardCarousel).
import React from 'react';
import HeroBillboardCarousel from '@/components/sections/hero/HeroBillboardCarousel';
export default function HeroSection(): React.JSX.Element {
return (
<div data-webild-section="hero" id="hero">
<HeroBillboardCarousel
secondaryButton={{"href":"#offers","text":"Ofertas exclusivas"}}
description="Descubre nuestros hoteles y resorts en los destinos más exclusivos. Lujo, confort y un servicio excepcional te esperan."
items={[{"imageSrc":"https://images.unsplash.com/photo-1566073771259-6a8506099945?auto=format&fit=crop&q=80"},{"imageSrc":"https://images.unsplash.com/photo-1582719508461-905c673771fd?auto=format&fit=crop&q=80"},{"imageSrc":"https://images.unsplash.com/photo-1520250497591-112f2f40a3f4?auto=format&fit=crop&q=80"},{"imageSrc":"https://images.unsplash.com/photo-1571896349842-33c89424de2d?auto=format&fit=crop&q=80"}]}
title="Vive la experiencia Meliá"
primaryButton={{"text":"Encuentra tu hotel","href":"#booking"}}
tag="Meliá Hotels International"
/>
</div>
);
}

View File

@@ -0,0 +1,38 @@
// 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 MetricsIconCards from '@/components/sections/metrics/MetricsIconCards';
import { MapPin, Smile, Star } from "lucide-react";
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function MetricsSection(): React.JSX.Element {
return (
<div id="metrics" data-section="metrics">
<SectionErrorBoundary name="metrics">
<MetricsIconCards
tag="Our Global Impact"
title="Meliá by Numbers"
description="Setting standards across the globe."
metrics={[
{
icon: MapPin,
title: "Destinations",
value: "150+",
},
{
icon: Star,
title: "Global Awards",
value: "450",
},
{
icon: Smile,
title: "Happy Guests",
value: "2M+",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,67 @@
// 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="Stay With Us"
title="Curated Suites"
description="Select the perfect room for your next escape."
plans={[
{
tag: "Essential",
price: "$450/nt",
description: "The perfect introduction to luxury.",
features: [
"King-sized Bed",
"City View",
"Complimentary Wi-Fi",
],
primaryButton: {
text: "Book Now",
href: "#",
},
},
{
tag: "Elite",
price: "$890/nt",
description: "Unmatched sophistication.",
features: [
"Panoramic Suite",
"Personal Butler",
"Private Terrace",
"Lounge Access",
],
highlight: "Most Popular",
primaryButton: {
text: "Book Now",
href: "#",
},
},
{
tag: "Royal",
price: "$1,450/nt",
description: "The ultimate Meliá experience.",
features: [
"Penthouse Level",
"24/7 Concierge",
"Spa Credits",
"VIP Transfer",
],
primaryButton: {
text: "Book Now",
href: "#",
},
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View 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="Partnerships"
title="Accredited Excellence"
description="Recognized by industry leaders worldwide."
names={[
"Forbes Travel Guide",
"Condé Nast Traveler",
"Michelin Guide",
"Leading Hotels of the World",
"Virtuoso",
"American Express Fine Hotels",
"TripAdvisor Choice",
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,57 @@
// 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 TestimonialMarqueeOverlayCards from '@/components/sections/testimonial/TestimonialMarqueeOverlayCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function TestimonialsSection(): React.JSX.Element {
return (
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialMarqueeOverlayCards
tag="Guest Stories"
title="Voices of Excellence"
description="Discover why our guests return year after year."
testimonials={[
{
name: "Julianna S.",
role: "Travel Editor",
company: "GlobeTrotter",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/elegant-old-man-airport-with-suitcase_1157-33367.jpg",
},
{
name: "Mark D.",
role: "CEO",
company: "TechInnovate",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/close-up-view-black-woman-smile-camera_197531-33139.jpg",
},
{
name: "Sophia V.",
role: "Architect",
company: "VDesigns",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/groom-portrait-outdoor_624325-1547.jpg",
},
{
name: "Robert B.",
role: "Entrepreneur",
company: "StartupX",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/browneyed-brunette-woman-beige-dress-with-straw-bag-holds-widebrimmed-hat-moves-along-path-old-city_197531-30085.jpg",
},
{
name: "Elena R.",
role: "Journalist",
company: "GlobalNews",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-lovely-couple-dancing_23-2148060455.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}