Merge version_1 into main #2

Merged
bender merged 2 commits from version_1 into main 2026-03-11 13:59:51 +00:00
2 changed files with 37 additions and 46 deletions

View File

@@ -51,7 +51,7 @@ export default function SanglierDorePage() {
tag="Welcome to History"
tagIcon={Sword}
tagAnimation="slide-up"
background={{ variant: "circleGradient" }}
background={{ variant: "plain" }}
useInvertedBackground={false}
imageSrc="http://img.b2bpic.net/free-photo/ax-stuck-wooden-stump-near-burning-fireplace-concept-comfort-relaxation-village_169016-8636.jpg"
imageAlt="Medieval tavern interior with warm lighting"
@@ -65,15 +65,15 @@ export default function SanglierDorePage() {
testimonials={[
{
name: "Marie Leblanc", handle: "Local Resident", testimonial: "Stepping into Sanglier Doré is like traveling back to a medieval feast. The food is exceptional and the atmosphere is unforgettable!", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/casual-smile-street-style-background-spring_1139-777.jpg?_wi=1"
imageSrc: "http://img.b2bpic.net/free-photo/casual-smile-street-style-background-spring_1139-777.jpg"
},
{
name: "Jacques Marchand", handle: "Food Critic", testimonial: "Authentic medieval-inspired cuisine with a modern twist. Every dish tells a story of hunters and gatherers.", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/close-up-happy-people-with-food_23-2149152871.jpg?_wi=1"
imageSrc: "http://img.b2bpic.net/free-photo/close-up-happy-people-with-food_23-2149152871.jpg"
},
{
name: "Sophie Bergeron", handle: "Visitor", testimonial: "Generous portions, warm hospitality, and an atmosphere that transports you to another era. Highly recommended!", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/close-up-smiling-young-african-man-pointing-finger_171337-7445.jpg?_wi=1"
imageSrc: "http://img.b2bpic.net/free-photo/close-up-smiling-young-african-man-pointing-finger_171337-7445.jpg"
}
]}
testimonialRotationInterval={5000}
@@ -171,13 +171,13 @@ export default function SanglierDorePage() {
carouselMode="buttons"
testimonials={[
{
id: "1", name: "Marie Leblanc", role: "Local Resident", testimonial: "Stepping into Sanglier Doré is like traveling back to a medieval feast. The food is exceptional, portions are generous, and the warm hospitality makes you feel like family.", imageSrc: "http://img.b2bpic.net/free-photo/casual-smile-street-style-background-spring_1139-777.jpg?_wi=2", imageAlt: "Marie Leblanc"
id: "1", name: "Marie Leblanc", role: "Local Resident", testimonial: "Stepping into Sanglier Doré is like traveling back to a medieval feast. The food is exceptional, portions are generous, and the warm hospitality makes you feel like family.", imageSrc: "http://img.b2bpic.net/free-photo/casual-smile-street-style-background-spring_1139-777.jpg", imageAlt: "Marie Leblanc"
},
{
id: "2", name: "Jacques Marchand", role: "Food Critic", testimonial: "Authentic medieval-inspired cuisine with a modern touch. Every dish tells a story of hunters and gatherers. A culinary adventure worth taking.", imageSrc: "http://img.b2bpic.net/free-photo/close-up-happy-people-with-food_23-2149152871.jpg?_wi=2", imageAlt: "Jacques Marchand"
id: "2", name: "Jacques Marchand", role: "Food Critic", testimonial: "Authentic medieval-inspired cuisine with a modern touch. Every dish tells a story of hunters and gatherers. A culinary adventure worth taking.", imageSrc: "http://img.b2bpic.net/free-photo/close-up-happy-people-with-food_23-2149152871.jpg", imageAlt: "Jacques Marchand"
},
{
id: "3", name: "Sophie Bergeron", role: "Tourist", testimonial: "An unforgettable evening! The atmosphere transported us to another era, and the food was absolutely delicious. Highly recommended for special occasions.", imageSrc: "http://img.b2bpic.net/free-photo/close-up-smiling-young-african-man-pointing-finger_171337-7445.jpg?_wi=2", imageAlt: "Sophie Bergeron"
id: "3", name: "Sophie Bergeron", role: "Tourist", testimonial: "An unforgettable evening! The atmosphere transported us to another era, and the food was absolutely delicious. Highly recommended for special occasions.", imageSrc: "http://img.b2bpic.net/free-photo/close-up-smiling-young-african-man-pointing-finger_171337-7445.jpg", imageAlt: "Sophie Bergeron"
},
{
id: "4", name: "Pierre Dufour", role: "Regular Customer", testimonial: "A true gem in Sherbrooke. The ambiance is warm and inviting, the staff is incredibly attentive, and the medieval-themed dishes never disappoint.", imageSrc: "http://img.b2bpic.net/free-photo/ambitious-businesswoman-with-arms-crossed-looking-forward-future_1163-4333.jpg", imageAlt: "Pierre Dufour"
@@ -208,12 +208,12 @@ export default function SanglierDorePage() {
tagIcon={Mail}
tagAnimation="slide-up"
title="Reserve Your Medieval Adventure"
description="Book your table at Sanglier Doré today. Whether you're seeking an intimate dinner or a grand feast, we're ready to welcome you to our historic tavern."
background={{ variant: "circleGradient" }}
description="Book your table at Sanglier Doré today. Whether you are seeking an intimate dinner or a grand feast, we are ready to welcome you to our historic tavern."
background={{ variant: "plain" }}
useInvertedBackground={false}
inputPlaceholder="Enter your email"
buttonText="Send Inquiry"
termsText="We respect your privacy. We'll contact you soon to confirm your reservation."
termsText="We respect your privacy. We will contact you soon to confirm your reservation."
/>
</div>

View File

@@ -1,51 +1,42 @@
"use client";
import { memo } from "react";
import useSvgTextLogo from "./useSvgTextLogo";
import { cls } from "@/lib/utils";
import React from 'react';
interface SvgTextLogoProps {
logoText: string;
adjustHeightFactor?: number;
verticalAlign?: "top" | "center";
text: string;
className?: string;
fontSize?: number;
fontFamily?: string;
fontWeight?: number | string;
letterSpacing?: number;
}
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,
className = '',
fontSize = 24,
fontFamily = 'Arial, sans-serif',
fontWeight = 'bold',
letterSpacing = 0,
}) => {
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.5}`}
className={className}
xmlns="http://www.w3.org/2000/svg"
>
<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"
}}
y={fontSize}
fontSize={fontSize}
fontFamily={fontFamily}
fontWeight={fontWeight}
letterSpacing={letterSpacing}
fill="currentColor"
dominantBaseline="central"
>
{logoText}
{text}
</text>
</svg>
);
});
};
SvgTextLogo.displayName = "SvgTextLogo";
export default SvgTextLogo;
export default SvgTextLogo;