Merge version_1 into main #2

Merged
bender merged 4 commits from version_1 into main 2026-03-11 04:03:46 +00:00
4 changed files with 106 additions and 235 deletions

View File

@@ -43,7 +43,7 @@ export default function ExperiencePage() {
description="Royal Victoria sits at one of Tunis' most magical locations—Victory Square at the entrance to the historic Medina. From your window, experience the vibrant markets, cultural landmarks, and authentic Tunisian life that has flourished for centuries in these ancient streets."
background={{ variant: "plain" }}
tag="Location & Discovery"
tagIcon={MapPin}
tagIcon={Landmark}
tagAnimation="slide-up"
buttons={[
{ text: "Explore Nearby", href: "#location" },
@@ -52,19 +52,16 @@ export default function ExperiencePage() {
buttonAnimation="slide-up"
mediaItems={[
{
imageSrc: "http://img.b2bpic.net/free-photo/woman-selecting-accessories-jewelry-section_107420-96188.jpg",
imageAlt: "porte de france medina entrance historic gate tunis"
imageSrc: "http://img.b2bpic.net/free-photo/woman-selecting-accessories-jewelry-section_107420-96188.jpg", imageAlt: "porte de france medina entrance historic gate tunis"
},
{
imageSrc: "http://img.b2bpic.net/free-photo/smiling-young-man-taking-pictures_1163-3392.jpg?_wi=4",
imageAlt: "luxury hotel balcony overlooking historic square medina"
imageSrc: "http://img.b2bpic.net/free-photo/smiling-young-man-taking-pictures_1163-3392.jpg", imageAlt: "luxury hotel balcony overlooking historic square medina"
}
]}
mediaAnimation="slide-up"
rating={5}
ratingText="Guests love the authentic Medina location"
ariaLabel="Hero section - Royal Victoria Experience"
useInvertedBackground={false}
/>
</div>
@@ -78,28 +75,23 @@ export default function ExperiencePage() {
features={[
{
icon: Landmark,
title: "Souks of the Medina",
description: "Explore the vibrant markets and traditional shops of the historic Medina just steps from our doors."
title: "Souks of the Medina", description: "Explore the vibrant markets and traditional shops of the historic Medina just steps from our doors."
},
{
icon: Building,
title: "Historic Mosques",
description: "Discover centuries-old Islamic architecture and cultural landmarks within walking distance."
title: "Historic Mosques", description: "Discover centuries-old Islamic architecture and cultural landmarks within walking distance."
},
{
icon: Coffee,
title: "Authentic Cafés",
description: "Experience traditional Tunisian coffee culture and connect with locals in neighborhood cafés."
title: "Authentic Cafés", description: "Experience traditional Tunisian coffee culture and connect with locals in neighborhood cafés."
},
{
icon: Building,
title: "Colonial Architecture",
description: "Wander through streets lined with beautiful colonial-era buildings preserving Tunis' rich history."
title: "Colonial Architecture", description: "Wander through streets lined with beautiful colonial-era buildings preserving Tunis' rich history."
}
]}
animationType="slide-up"
textboxLayout="default"
useInvertedBackground={false}
ariaLabel="Location section"
/>
</div>
@@ -114,23 +106,19 @@ export default function ExperiencePage() {
features={[
{
icon: Wheat,
title: "Traditional Tunisian Breakfast",
description: "Authentic local specialties including fresh pastries, traditional bread, and regional delicacies."
title: "Traditional Tunisian Breakfast", description: "Authentic local specialties including fresh pastries, traditional bread, and regional delicacies."
},
{
icon: Leaf,
title: "Fresh Local Ingredients",
description: "Sourced from nearby markets to ensure quality, freshness, and authentic Tunisian flavors."
title: "Fresh Local Ingredients", description: "Sourced from nearby markets to ensure quality, freshness, and authentic Tunisian flavors."
},
{
icon: Heart,
title: "Warm Service Every Morning",
description: "Our staff welcomes you each morning with genuine hospitality and attentive care."
title: "Warm Service Every Morning", description: "Our staff welcomes you each morning with genuine hospitality and attentive care."
}
]}
animationType="slide-up"
textboxLayout="default"
useInvertedBackground={false}
ariaLabel="Dining section"
/>
</div>
@@ -142,25 +130,20 @@ export default function ExperiencePage() {
author="Sarah Johnson, Travel Enthusiast"
avatars={[
{
src: "http://img.b2bpic.net/free-photo/smiling-businessman-standing-airport-terminal_107420-85070.jpg",
alt: "Sarah Johnson"
src: "http://img.b2bpic.net/free-photo/smiling-businessman-standing-airport-terminal_107420-85070.jpg", alt: "Sarah Johnson"
},
{
src: "http://img.b2bpic.net/free-photo/confident-african-american-businessman-brown-classic-jacket-with-crossing-arms-isolated-dark-background_613910-6555.jpg",
alt: "Guest avatar 2"
src: "http://img.b2bpic.net/free-photo/confident-african-american-businessman-brown-classic-jacket-with-crossing-arms-isolated-dark-background_613910-6555.jpg", alt: "Guest avatar 2"
},
{
src: "http://img.b2bpic.net/free-photo/portrait-beautiful-afro-american-woman_23-2148332136.jpg",
alt: "Guest avatar 3"
src: "http://img.b2bpic.net/free-photo/portrait-beautiful-afro-american-woman_23-2148332136.jpg", alt: "Guest avatar 3"
},
{
src: "http://img.b2bpic.net/free-photo/joyful-young-bald-call-center-man-showing-empty-hands-isolated-orange_141793-84087.jpg",
alt: "Guest avatar 4"
src: "http://img.b2bpic.net/free-photo/joyful-young-bald-call-center-man-showing-empty-hands-isolated-orange_141793-84087.jpg", alt: "Guest avatar 4"
}
]}
ratingAnimation="slide-up"
avatarsAnimation="slide-up"
useInvertedBackground={false}
ariaLabel="Guest testimonial section"
/>
</div>
@@ -173,7 +156,6 @@ export default function ExperiencePage() {
tagIcon={Crown}
tagAnimation="slide-up"
background={{ variant: "plain" }}
useInvertedBackground={false}
inputPlaceholder="Enter your email"
buttonText="Get Exclusive Offers"
termsText="We respect your privacy. Unsubscribe anytime."
@@ -185,8 +167,7 @@ export default function ExperiencePage() {
<FooterSimple
columns={[
{
title: "Navigate",
items: [
title: "Navigate", items: [
{ label: "Home", href: "/" },
{ label: "Rooms", href: "/" },
{ label: "Experience", href: "/experience" },
@@ -194,8 +175,7 @@ export default function ExperiencePage() {
]
},
{
title: "Information",
items: [
title: "Information", items: [
{ label: "About Us", href: "#" },
{ label: "Dining", href: "#" },
{ label: "Location", href: "#" },
@@ -203,8 +183,7 @@ export default function ExperiencePage() {
]
},
{
title: "Legal",
items: [
title: "Legal", items: [
{ label: "Privacy Policy", href: "#" },
{ label: "Terms & Conditions", href: "#" },
{ label: "Booking Terms", href: "#" },
@@ -212,8 +191,7 @@ export default function ExperiencePage() {
]
},
{
title: "Connect",
items: [
title: "Connect", items: [
{ label: "Facebook", href: "https://facebook.com" },
{ label: "Instagram", href: "https://instagram.com" },
{ label: "TripAdvisor", href: "https://tripadvisor.com" },

View File

@@ -8,7 +8,7 @@ import FeatureHoverPattern from '@/components/sections/feature/featureHoverPatte
import ContactCenter from '@/components/sections/contact/ContactCenter';
import FooterSimple from '@/components/sections/footer/FooterSimple';
import Link from "next/link";
import { Building2, Globe, Lock, Heart, MapPin, Landmark, Building, Coffee, Crown } from 'lucide-react';
import { Building2, Landmark, Lock, Heart, Landmark as Globe, Coffee, Crown, Building } from 'lucide-react';
export default function HistoryPage() {
return (
@@ -52,19 +52,16 @@ export default function HistoryPage() {
buttonAnimation="slide-up"
mediaItems={[
{
imageSrc: "http://img.b2bpic.net/free-photo/famous-facade-notredamededijon_268835-4020.jpg",
imageAlt: "Historic british embassy building colonial architecture tunisia"
imageSrc: "http://img.b2bpic.net/free-photo/famous-facade-notredamededijon_268835-4020.jpg", imageAlt: "Historic british embassy building colonial architecture tunisia"
},
{
imageSrc: "http://img.b2bpic.net/free-photo/city-background-panoramic-view_23-2148892970.jpg?_wi=2",
imageAlt: "luxury boutique hotel interior elegant lobby cream stone"
imageSrc: "http://img.b2bpic.net/free-photo/city-background-panoramic-view_23-2148892970.jpg", imageAlt: "luxury boutique hotel interior elegant lobby cream stone"
}
]}
mediaAnimation="slide-up"
rating={5}
ratingText="Guests celebrate the preserved heritage"
ariaLabel="Hero section - Royal Victoria History"
useInvertedBackground={false}
/>
</div>
@@ -74,27 +71,22 @@ export default function HistoryPage() {
metrics={[
{
icon: Building2,
label: "Former British Consulate",
value: "1600s"
label: "Former British Consulate", value: "1600s"
},
{
icon: Globe,
label: "Diplomatic Embassy Era",
value: "1800s"
icon: Landmark,
label: "Diplomatic Embassy Era", value: "1800s"
},
{
icon: Lock,
label: "Historic Preservation",
value: "1900s"
label: "Historic Preservation", value: "1900s"
},
{
icon: Heart,
label: "Welcoming Guests",
value: "Today"
label: "Welcoming Guests", value: "Today"
}
]}
metricsAnimation="slide-up"
useInvertedBackground={false}
ariaLabel="History timeline section"
/>
</div>
@@ -109,28 +101,23 @@ export default function HistoryPage() {
features={[
{
icon: Building,
title: "Colonial Architecture",
description: "The building exemplifies the finest colonial-era architectural styles, with careful preservation maintaining original details and character while adding modern comfort."
title: "Colonial Architecture", description: "The building exemplifies the finest colonial-era architectural styles, with careful preservation maintaining original details and character while adding modern comfort."
},
{
icon: Globe,
title: "Diplomatic Legacy",
description: "Served as the seat of British diplomatic missions, hosting important government officials, cultural leaders, and international dignitaries throughout its diplomatic chapter."
icon: Landmark,
title: "Diplomatic Legacy", description: "Served as the seat of British diplomatic missions, hosting important government officials, cultural leaders, and international dignitaries throughout its diplomatic chapter."
},
{
icon: MapPin,
title: "Strategic Location",
description: "Positioned at Victory Square overlooking the Porte de France, Royal Victoria has always commanded one of Tunis' most prestigious and historically significant locations."
icon: Landmark,
title: "Strategic Location", description: "Positioned at Victory Square overlooking the Porte de France, Royal Victoria has always commanded one of Tunis' most prestigious and historically significant locations."
},
{
icon: Coffee,
title: "Cultural Crossroads",
description: "The hotel represents the intersection of British elegance, Tunisian hospitality, and Mediterranean culture—a unique synthesis reflected in every aspect of the guest experience."
title: "Cultural Crossroads", description: "The hotel represents the intersection of British elegance, Tunisian hospitality, and Mediterranean culture—a unique synthesis reflected in every aspect of the guest experience."
}
]}
animationType="slide-up"
textboxLayout="default"
useInvertedBackground={false}
ariaLabel="Heritage stories section"
/>
</div>
@@ -143,7 +130,6 @@ export default function HistoryPage() {
tagIcon={Crown}
tagAnimation="slide-up"
background={{ variant: "plain" }}
useInvertedBackground={false}
inputPlaceholder="Enter your email"
buttonText="Get Exclusive Offers"
termsText="We respect your privacy. Unsubscribe anytime."
@@ -155,8 +141,7 @@ export default function HistoryPage() {
<FooterSimple
columns={[
{
title: "Navigate",
items: [
title: "Navigate", items: [
{ label: "Home", href: "/" },
{ label: "Rooms", href: "/" },
{ label: "Experience", href: "/experience" },
@@ -164,8 +149,7 @@ export default function HistoryPage() {
]
},
{
title: "Information",
items: [
title: "Information", items: [
{ label: "About Us", href: "#" },
{ label: "Dining", href: "#" },
{ label: "Location", href: "#" },
@@ -173,8 +157,7 @@ export default function HistoryPage() {
]
},
{
title: "Legal",
items: [
title: "Legal", items: [
{ label: "Privacy Policy", href: "#" },
{ label: "Terms & Conditions", href: "#" },
{ label: "Booking Terms", href: "#" },
@@ -182,8 +165,7 @@ export default function HistoryPage() {
]
},
{
title: "Connect",
items: [
title: "Connect", items: [
{ label: "Facebook", href: "https://facebook.com" },
{ label: "Instagram", href: "https://instagram.com" },
{ label: "TripAdvisor", href: "https://tripadvisor.com" },

View File

@@ -10,7 +10,7 @@ import TestimonialCardFifteen from "@/components/sections/testimonial/Testimonia
import ContactCenter from "@/components/sections/contact/ContactCenter";
import FooterSimple from "@/components/sections/footer/FooterSimple";
import Link from "next/link";
import { Crown, MapPin, Clock, Users, Utensils, Heart, Building2, Coffee, Building, Sparkles, Star, Wheat, Leaf, Landmark, UtensilsCrossed } from "lucide-react";
import { Crown, Clock, Users, Utensils, Heart, Building2, Coffee, Building, Sparkles, Star, Wheat, Leaf, Landmark, UtensilsCrossed } from "lucide-react";
export default function HomePage() {
const navItems = [
@@ -23,8 +23,7 @@ export default function HomePage() {
const footerColumns = [
{
title: "Navigate",
items: [
title: "Navigate", items: [
{ label: "Home", href: "/" },
{ label: "Rooms", href: "/rooms" },
{ label: "Experience", href: "#experience" },
@@ -32,8 +31,7 @@ export default function HomePage() {
],
},
{
title: "Information",
items: [
title: "Information", items: [
{ label: "About Us", href: "#about" },
{ label: "Dining", href: "#dining" },
{ label: "Location", href: "#location" },
@@ -41,8 +39,7 @@ export default function HomePage() {
],
},
{
title: "Legal",
items: [
title: "Legal", items: [
{ label: "Privacy Policy", href: "#" },
{ label: "Terms & Conditions", href: "#" },
{ label: "Booking Terms", href: "#" },
@@ -50,8 +47,7 @@ export default function HomePage() {
],
},
{
title: "Connect",
items: [
title: "Connect", items: [
{ label: "Facebook", href: "https://facebook.com" },
{ label: "Instagram", href: "https://instagram.com" },
{ label: "TripAdvisor", href: "https://tripadvisor.com" },
@@ -92,19 +88,14 @@ export default function HomePage() {
buttonAnimation="slide-up"
mediaItems={[
{
imageSrc: "http://img.b2bpic.net/free-photo/smiling-young-man-taking-pictures_1163-3392.jpg?_wi=1",
imageAlt: "Luxury balcony overlooking Victory Square and Porte de France",
},
imageSrc: "http://img.b2bpic.net/free-photo/smiling-young-man-taking-pictures_1163-3392.jpg", imageAlt: "Luxury balcony overlooking Victory Square and Porte de France"},
{
imageSrc: "http://img.b2bpic.net/free-photo/city-background-panoramic-view_23-2148892970.jpg?_wi=1",
imageAlt: "Historic interior of the former British Embassy",
},
imageSrc: "http://img.b2bpic.net/free-photo/city-background-panoramic-view_23-2148892970.jpg", imageAlt: "Historic interior of the former British Embassy"},
]}
mediaAnimation="slide-up"
rating={5}
ratingText="Loved by travelers from around the world"
ariaLabel="Hero section - Royal Victoria Hotel"
useInvertedBackground={false}
/>
</div>
@@ -113,28 +104,19 @@ export default function HomePage() {
title="An Iconic Stay in the Heart of Tunis"
metrics={[
{
icon: MapPin,
label: "Gateway to the Medina",
value: "Steps Away",
},
icon: Clock,
label: "Gateway to the Medina", value: "Steps Away"},
{
icon: Clock,
label: "Years of Heritage",
value: "Centuries",
},
label: "Years of Heritage", value: "Centuries"},
{
icon: Users,
label: "Welcoming Staff",
value: "Always",
},
label: "Welcoming Staff", value: "Always"},
{
icon: Utensils,
label: "Guest Rating",
value: "4.5+",
},
label: "Guest Rating", value: "4.5+"},
]}
metricsAnimation="slide-up"
useInvertedBackground={false}
ariaLabel="About metrics section"
/>
</div>
@@ -149,38 +131,25 @@ export default function HomePage() {
features={[
{
icon: Building2,
title: "Historic Character",
description: "Former British embassy with centuries of stories woven into every corner and architectural detail.",
},
title: "Historic Character", description: "Former British embassy with centuries of stories woven into every corner and architectural detail."},
{
icon: MapPin,
title: "Perfect Location",
description: "Steps from the Medina, souks, and historic landmarks at the vibrant gateway to Tunis' cultural heart.",
},
icon: Landmark,
title: "Perfect Location", description: "Steps from the Medina, souks, and historic landmarks at the vibrant gateway to Tunis' cultural heart."},
{
icon: Coffee,
title: "Exceptional Breakfast",
description: "Guests consistently praise our generous local buffet with fresh bread, pastries, and traditional Tunisian flavors.",
},
title: "Exceptional Breakfast", description: "Guests consistently praise our generous local buffet with fresh bread, pastries, and traditional Tunisian flavors."},
{
icon: Users,
title: "Welcoming Staff",
description: "Friendly, attentive service that makes guests feel immediately at home in a warm, authentic atmosphere.",
},
title: "Welcoming Staff", description: "Friendly, attentive service that makes guests feel immediately at home in a warm, authentic atmosphere."},
{
icon: Sparkles,
title: "Authentic Atmosphere",
description: "A stay immersed in genuine Tunisian culture and heritage, not generic hospitality.",
},
title: "Authentic Atmosphere", description: "A stay immersed in genuine Tunisian culture and heritage, not generic hospitality."},
{
icon: Star,
title: "Luxury in History",
description: "Modern comfort seamlessly blended with the elegance of a preserved historic building.",
},
title: "Luxury in History", description: "Modern comfort seamlessly blended with the elegance of a preserved historic building."},
]}
animationType="slide-up"
textboxLayout="default"
useInvertedBackground={false}
ariaLabel="Features section - Why guests love Royal Victoria"
/>
</div>
@@ -194,31 +163,15 @@ export default function HomePage() {
tagAnimation="slide-up"
products={[
{
id: "classic",
name: "Classic Room",
price: "€89",
imageSrc: "http://img.b2bpic.net/free-photo/portrait-loving-couple-watching-movie-together-balcony-morning-with-curtains-foreground-young-man-resting-with-his-amazing-tanned-girlfriend-bed-holding-laptop-with-sea-views_197531-3206.jpg?_wi=1",
imageAlt: "Classic room with historic charm and modern comfort",
},
id: "classic", name: "Classic Room", price: "€89", imageSrc: "http://img.b2bpic.net/free-photo/portrait-loving-couple-watching-movie-together-balcony-morning-with-curtains-foreground-young-man-resting-with-his-amazing-tanned-girlfriend-bed-holding-laptop-with-sea-views_197531-3206.jpg", imageAlt: "Classic room with historic charm and modern comfort"},
{
id: "superior",
name: "Superior Room",
price: "€129",
imageSrc: "http://img.b2bpic.net/free-photo/portrait-loving-couple-watching-movie-together-balcony-morning-with-curtains-foreground-young-man-resting-with-his-amazing-tanned-girlfriend-bed-holding-laptop-with-sea-views_197531-3206.jpg?_wi=2",
imageAlt: "Spacious superior room with additional seating",
},
id: "superior", name: "Superior Room", price: "€129", imageSrc: "http://img.b2bpic.net/free-photo/portrait-loving-couple-watching-movie-together-balcony-morning-with-curtains-foreground-young-man-resting-with-his-amazing-tanned-girlfriend-bed-holding-laptop-with-sea-views_197531-3206.jpg", imageAlt: "Spacious superior room with additional seating"},
{
id: "balcony",
name: "Balcony Room",
price: "€159",
imageSrc: "http://img.b2bpic.net/free-photo/smiling-young-man-taking-pictures_1163-3392.jpg?_wi=2",
imageAlt: "Private balcony room overlooking Victory Square",
},
id: "balcony", name: "Balcony Room", price: "€159", imageSrc: "http://img.b2bpic.net/free-photo/smiling-young-man-taking-pictures_1163-3392.jpg", imageAlt: "Private balcony room overlooking Victory Square"},
]}
gridVariant="three-columns-all-equal-width"
animationType="slide-up"
textboxLayout="default"
useInvertedBackground={false}
ariaLabel="Rooms section"
/>
</div>
@@ -233,23 +186,16 @@ export default function HomePage() {
features={[
{
icon: Wheat,
title: "Traditional Tunisian Breakfast",
description: "Authentic local specialties including fresh pastries, traditional bread, and regional delicacies.",
},
title: "Traditional Tunisian Breakfast", description: "Authentic local specialties including fresh pastries, traditional bread, and regional delicacies."},
{
icon: Leaf,
title: "Fresh Local Ingredients",
description: "Sourced from nearby markets to ensure quality, freshness, and authentic Tunisian flavors.",
},
title: "Fresh Local Ingredients", description: "Sourced from nearby markets to ensure quality, freshness, and authentic Tunisian flavors."},
{
icon: Heart,
title: "Warm Service Every Morning",
description: "Our staff welcomes you each morning with genuine hospitality and attentive care.",
},
title: "Warm Service Every Morning", description: "Our staff welcomes you each morning with genuine hospitality and attentive care."},
]}
animationType="slide-up"
textboxLayout="default"
useInvertedBackground={false}
ariaLabel="Dining section"
/>
</div>
@@ -259,33 +205,24 @@ export default function HomePage() {
title="At the Gateway of the Medina"
description="Royal Victoria sits at one of the most historic locations in Tunis — Victory Square, beside the famous Porte de France. From here you can explore the city's most authentic experiences."
tag="Location & Exploration"
tagIcon={MapPin}
tagIcon={Landmark}
tagAnimation="slide-up"
features={[
{
icon: Landmark,
title: "Souks of the Medina",
description: "Explore the vibrant markets and traditional shops of the historic Medina just steps from our doors.",
},
title: "Souks of the Medina", description: "Explore the vibrant markets and traditional shops of the historic Medina just steps from our doors."},
{
icon: Building,
title: "Historic Mosques",
description: "Discover centuries-old Islamic architecture and cultural landmarks within walking distance.",
},
title: "Historic Mosques", description: "Discover centuries-old Islamic architecture and cultural landmarks within walking distance."},
{
icon: Coffee,
title: "Authentic Cafés",
description: "Experience traditional Tunisian coffee culture and connect with locals in neighborhood cafés.",
},
title: "Authentic Cafés", description: "Experience traditional Tunisian coffee culture and connect with locals in neighborhood cafés."},
{
icon: Building2,
title: "Colonial Architecture",
description: "Wander through streets lined with beautiful colonial-era buildings preserving Tunis' rich history.",
},
title: "Colonial Architecture", description: "Wander through streets lined with beautiful colonial-era buildings preserving Tunis' rich history."},
]}
animationType="slide-up"
textboxLayout="default"
useInvertedBackground={false}
ariaLabel="Location section"
/>
</div>
@@ -297,25 +234,16 @@ export default function HomePage() {
author="Sarah Johnson, Travel Enthusiast"
avatars={[
{
src: "http://img.b2bpic.net/free-photo/smiling-businessman-standing-airport-terminal_107420-85070.jpg",
alt: "Sarah Johnson",
},
src: "http://img.b2bpic.net/free-photo/smiling-businessman-standing-airport-terminal_107420-85070.jpg", alt: "Sarah Johnson"},
{
src: "http://img.b2bpic.net/free-photo/confident-african-american-businessman-brown-classic-jacket-with-crossing-arms-isolated-dark-background_613910-6555.jpg",
alt: "Guest avatar 2",
},
src: "http://img.b2bpic.net/free-photo/confident-african-american-businessman-brown-classic-jacket-with-crossing-arms-isolated-dark-background_613910-6555.jpg", alt: "Guest avatar 2"},
{
src: "http://img.b2bpic.net/free-photo/portrait-beautiful-afro-american-woman_23-2148332136.jpg",
alt: "Guest avatar 3",
},
src: "http://img.b2bpic.net/free-photo/portrait-beautiful-afro-american-woman_23-2148332136.jpg", alt: "Guest avatar 3"},
{
src: "http://img.b2bpic.net/free-photo/joyful-young-bald-call-center-man-showing-empty-hands-isolated-orange_141793-84087.jpg",
alt: "Guest avatar 4",
},
src: "http://img.b2bpic.net/free-photo/joyful-young-bald-call-center-man-showing-empty-hands-isolated-orange_141793-84087.jpg", alt: "Guest avatar 4"},
]}
ratingAnimation="slide-up"
avatarsAnimation="slide-up"
useInvertedBackground={false}
ariaLabel="Guest testimonial section"
/>
</div>
@@ -326,27 +254,18 @@ export default function HomePage() {
metrics={[
{
icon: Building2,
label: "Former British Consulate",
value: "1600s",
},
label: "Former British Consulate", value: "1600s"},
{
icon: Sparkles,
label: "Diplomatic Embassy Era",
value: "1800s",
},
label: "Diplomatic Embassy Era", value: "1800s"},
{
icon: MapPin,
label: "Historic Preservation",
value: "1900s",
},
icon: Landmark,
label: "Historic Preservation", value: "1900s"},
{
icon: Heart,
label: "Welcoming Guests",
value: "Today",
},
label: "Welcoming Guests", value: "Today"},
]}
metricsAnimation="slide-up"
useInvertedBackground={false}
ariaLabel="History metrics section"
/>
</div>
@@ -359,7 +278,6 @@ export default function HomePage() {
tagIcon={Star}
tagAnimation="slide-up"
background={{ variant: "plain" }}
useInvertedBackground={false}
inputPlaceholder="Enter your email"
buttonText="Get Exclusive Offers"
termsText="We respect your privacy. Unsubscribe anytime."

View File

@@ -1,51 +1,44 @@
"use client";
import React, { SVGProps } from 'react';
import { memo } from "react";
import useSvgTextLogo from "./useSvgTextLogo";
import { cls } from "@/lib/utils";
interface SvgTextLogoProps {
logoText: string;
adjustHeightFactor?: number;
verticalAlign?: "top" | "center";
interface SvgTextLogoProps extends SVGProps<SVGSVGElement> {
text?: string;
fontSize?: number;
fontWeight?: number;
letterSpacing?: number;
fill?: string;
className?: string;
}
const SvgTextLogo = memo<SvgTextLogoProps>(function SvgTextLogo({
logoText,
adjustHeightFactor,
verticalAlign = "top",
className = "",
}) {
const { svgRef, textRef, viewBox, aspectRatio } = useSvgTextLogo(logoText, false, adjustHeightFactor);
const SvgTextLogo: React.FC<SvgTextLogoProps> = ({
text = 'LOGO',
fontSize = 48,
fontWeight = 700,
letterSpacing = 2,
fill = '#000000',
className = '',
...props
}) => {
return (
<svg
ref={svgRef}
viewBox={viewBox}
className={cls("w-full", className)}
style={{ aspectRatio: aspectRatio }}
preserveAspectRatio="none"
role="img"
aria-label={`${logoText} logo`}
viewBox={`0 0 ${text.length * (fontSize * 0.6)} ${fontSize * 1.2}`}
className={className}
{...props}
>
<text
ref={textRef}
x="0"
y={verticalAlign === "center" ? "50%" : "0"}
className="font-bold fill-current"
style={{
fontSize: "20px",
letterSpacing: "-0.02em",
dominantBaseline: verticalAlign === "center" ? "middle" : "text-before-edge"
}}
x="50%"
y="50%"
textAnchor="middle"
dominantBaseline="middle"
fontSize={fontSize}
fontWeight={fontWeight}
letterSpacing={letterSpacing}
fill={fill}
fontFamily="system-ui, -apple-system, sans-serif"
>
{logoText}
{text}
</text>
</svg>
);
});
};
SvgTextLogo.displayName = "SvgTextLogo";
export default SvgTextLogo;
export default SvgTextLogo;