Merge version_1 into main #2

Merged
bender merged 2 commits from version_1 into main 2026-03-12 02:45:29 +00:00
2 changed files with 47 additions and 53 deletions

View File

@@ -9,7 +9,7 @@ import FeatureCardSeven from '@/components/sections/feature/FeatureCardSeven';
import TestimonialCardFive from '@/components/sections/testimonial/TestimonialCardFive';
import ContactCTA from '@/components/sections/contact/ContactCTA';
import FooterLogoReveal from '@/components/sections/footer/FooterLogoReveal';
import { Anchor, Calendar, Chef, Heart, Leaf, Sparkles, Star, Trees, UtensilsCrossed } from 'lucide-react';
import { Anchor, Calendar, Heart, Leaf, Sparkles, Star, Trees, UtensilsCrossed } from 'lucide-react';
export default function LandingPage() {
return (
@@ -19,7 +19,7 @@ export default function LandingPage() {
borderRadius="soft"
contentWidth="smallMedium"
sizing="largeSmallSizeMediumTitles"
background="grid"
background="circleGradient"
cardStyle="soft-shadow"
primaryButtonStyle="primary-glow"
secondaryButtonStyle="layered"
@@ -74,7 +74,7 @@ export default function LandingPage() {
description="Exceptional Seafood Freshness"
subdescription="Warm hospitality meets refined elegance in our garden setting"
icon={Leaf}
imageSrc="http://img.b2bpic.net/free-photo/good-friends-celebrating-new-year-that-s-coming_23-2149144077.jpg?_wi=1"
imageSrc="http://img.b2bpic.net/free-photo/good-friends-celebrating-new-year-that-s-coming_23-2149144077.jpg"
imageAlt="Peaceful garden dining at Chez Achour"
mediaAnimation="blur-reveal"
useInvertedBackground={false}
@@ -93,13 +93,13 @@ export default function LandingPage() {
gridVariant="three-columns-all-equal-width"
products={[
{
id: "1", name: "Fresh Lobster", price: "Market Price", imageSrc: "http://img.b2bpic.net/free-photo/top-view-crawfish-plates_23-2150346614.jpg?_wi=1", imageAlt: "Fresh Mediterranean lobster"
id: "1", name: "Fresh Lobster", price: "Market Price", imageSrc: "http://img.b2bpic.net/free-photo/top-view-crawfish-plates_23-2150346614.jpg", imageAlt: "Fresh Mediterranean lobster"
},
{
id: "2", name: "Seafood Pasta", price: "28 TND", imageSrc: "http://img.b2bpic.net/free-photo/fruit-salad-mixed-with-herbs_140725-1778.jpg?_wi=1", imageAlt: "Mediterranean seafood pasta"
id: "2", name: "Seafood Pasta", price: "28 TND", imageSrc: "http://img.b2bpic.net/free-photo/fruit-salad-mixed-with-herbs_140725-1778.jpg", imageAlt: "Mediterranean seafood pasta"
},
{
id: "3", name: "Langoustines", price: "32 TND", imageSrc: "http://img.b2bpic.net/free-photo/grilled-big-prawn-shrimp-with-sauce_74190-6915.jpg?_wi=1", imageAlt: "Grilled langoustines"
id: "3", name: "Langoustines", price: "32 TND", imageSrc: "http://img.b2bpic.net/free-photo/grilled-big-prawn-shrimp-with-sauce_74190-6915.jpg", imageAlt: "Grilled langoustines"
},
{
id: "4", name: "Grilled Fish Daily Catch", price: "Market Price", imageSrc: "http://img.b2bpic.net/free-photo/seabass-barramundi-fish-meat-steak_74190-5984.jpg", imageAlt: "Daily catch grilled fish"
@@ -120,11 +120,11 @@ export default function LandingPage() {
features={[
{
id: 1,
title: "Romantic Garden Setting", description: "Intimate outdoor dining surrounded by Mediterranean greenery and soft evening lighting. The perfect backdrop for couples seeking an unforgettable evening.", imageSrc: "http://img.b2bpic.net/free-photo/happy-couple-taking-drinks-terrace_23-2150656260.jpg?_wi=1", imageAlt: "Romantic garden dining ambiance"
title: "Romantic Garden Setting", description: "Intimate outdoor dining surrounded by Mediterranean greenery and soft evening lighting. The perfect backdrop for couples seeking an unforgettable evening.", imageSrc: "http://img.b2bpic.net/free-photo/happy-couple-taking-drinks-terrace_23-2150656260.jpg", imageAlt: "Romantic garden dining ambiance"
},
{
id: 2,
title: "Peaceful Escape in Hammamet", description: "Arrive early to enjoy the tranquil setting before the restaurant fills with the lively energy of the evening. A true oasis within the city.", imageSrc: "http://img.b2bpic.net/free-photo/good-friends-celebrating-new-year-that-s-coming_23-2149144077.jpg?_wi=2", imageAlt: "Peaceful garden retreat"
title: "Peaceful Escape in Hammamet", description: "Arrive early to enjoy the tranquil setting before the restaurant fills with the lively energy of the evening. A true oasis within the city.", imageSrc: "http://img.b2bpic.net/free-photo/good-friends-celebrating-new-year-that-s-coming_23-2149144077.jpg", imageAlt: "Peaceful garden retreat"
}
]}
/>
@@ -140,19 +140,19 @@ export default function LandingPage() {
useInvertedBackground={true}
testimonials={[
{
id: "1", name: "Sarah Johnson, Tourist from France", date: "Date: 15 October 2024", title: "An exceptional experience!", quote: "The seafood freshness is incredible and the flavors are authentic. The garden setting is magical. A must-visit in Hammamet. We came twice during our week-long stay.", tag: "5 Star Rating", avatarSrc: "http://img.b2bpic.net/free-photo/group-friends-eating-restaurant_23-2148006613.jpg", avatarAlt: "Sarah Johnson", imageSrc: "http://img.b2bpic.net/free-photo/top-view-crawfish-plates_23-2150346614.jpg?_wi=2", imageAlt: "Fresh Mediterranean lobster"
id: "1", name: "Sarah Johnson, Tourist from France", date: "Date: 15 October 2024", title: "An exceptional experience!", quote: "The seafood freshness is incredible and the flavors are authentic. The garden setting is magical. A must-visit in Hammamet. We came twice during our week-long stay.", tag: "5 Star Rating", avatarSrc: "http://img.b2bpic.net/free-photo/group-friends-eating-restaurant_23-2148006613.jpg", avatarAlt: "Sarah Johnson", imageSrc: "http://img.b2bpic.net/free-photo/top-view-crawfish-plates_23-2150346614.jpg", imageAlt: "Fresh Mediterranean lobster"
},
{
id: "2", name: "Michel Dubois, Local Regular", date: "Date: 22 September 2024", title: "Phenomenal atmosphere and service", quote: "The outdoor seating is cozy and refined. The waiters are attentive and genuinely friendly. Every visit feels special. This is where I bring my family for celebrations.", tag: "5 Star Rating", avatarSrc: "http://img.b2bpic.net/free-photo/group-positive-people-having-dinner-together_23-2148454185.jpg", avatarAlt: "Michel Dubois", imageSrc: "http://img.b2bpic.net/free-photo/happy-couple-taking-drinks-terrace_23-2150656260.jpg?_wi=2", imageAlt: "Garden dining evening"
id: "2", name: "Michel Dubois, Local Regular", date: "Date: 22 September 2024", title: "Phenomenal atmosphere and service", quote: "The outdoor seating is cozy and refined. The waiters are attentive and genuinely friendly. Every visit feels special. This is where I bring my family for celebrations.", tag: "5 Star Rating", avatarSrc: "http://img.b2bpic.net/free-photo/group-positive-people-having-dinner-together_23-2148454185.jpg", avatarAlt: "Michel Dubois", imageSrc: "http://img.b2bpic.net/free-photo/happy-couple-taking-drinks-terrace_23-2150656260.jpg", imageAlt: "Garden dining evening"
},
{
id: "3", name: "Amira Hassan, Local Foodie", date: "Date: 8 November 2024", title: "Beautiful setting, excellent service, delicious", quote: "Beautiful setting, excellent service, and delicious cuisine. A place we highly recommend to anyone visiting Hammamet. The chef truly respects the ingredients.", tag: "5 Star Rating", avatarSrc: "http://img.b2bpic.net/free-photo/wine-glass_74190-1311.jpg", avatarAlt: "Amira Hassan", imageSrc: "http://img.b2bpic.net/free-photo/fruit-salad-mixed-with-herbs_140725-1778.jpg?_wi=2", imageAlt: "Seafood pasta dish"
id: "3", name: "Amira Hassan, Local Foodie", date: "Date: 8 November 2024", title: "Beautiful setting, excellent service, delicious", quote: "Beautiful setting, excellent service, and delicious cuisine. A place we highly recommend to anyone visiting Hammamet. The chef truly respects the ingredients.", tag: "5 Star Rating", avatarSrc: "http://img.b2bpic.net/free-photo/wine-glass_74190-1311.jpg", avatarAlt: "Amira Hassan", imageSrc: "http://img.b2bpic.net/free-photo/fruit-salad-mixed-with-herbs_140725-1778.jpg", imageAlt: "Seafood pasta dish"
},
{
id: "4", name: "Marco Rossi, Italian Visitor", date: "Date: 3 December 2024", title: "Mediterranean authenticity at its finest", quote: "As someone from Italy, I appreciate authentic Mediterranean cuisine. Chez Achour delivers on every level. The fresh lobster and simple preparation allows the quality of ingredients to shine.", tag: "5 Star Rating", avatarSrc: "http://img.b2bpic.net/free-photo/front-view-female-chef-with-apron-covering-raw-fish-slices-with-flour-fresh-vegetables-wood-board-flour-bowl-kitchen-table_179666-44317.jpg", avatarAlt: "Marco Rossi", imageSrc: "http://img.b2bpic.net/free-photo/grilled-big-prawn-shrimp-with-sauce_74190-6915.jpg?_wi=2", imageAlt: "Langoustines dish"
id: "4", name: "Marco Rossi, Italian Visitor", date: "Date: 3 December 2024", title: "Mediterranean authenticity at its finest", quote: "As someone from Italy, I appreciate authentic Mediterranean cuisine. Chez Achour delivers on every level. The fresh lobster and simple preparation allows the quality of ingredients to shine.", tag: "5 Star Rating", avatarSrc: "http://img.b2bpic.net/free-photo/front-view-female-chef-with-apron-covering-raw-fish-slices-with-flour-fresh-vegetables-wood-board-flour-bowl-kitchen-table_179666-44317.jpg", avatarAlt: "Marco Rossi", imageSrc: "http://img.b2bpic.net/free-photo/grilled-big-prawn-shrimp-with-sauce_74190-6915.jpg", imageAlt: "Langoustines dish"
},
{
id: "5", name: "Elena Patel, Special Occasion Guest", date: "Date: 20 November 2024", title: "Perfect for celebrations", quote: "We celebrated our anniversary here and it was unforgettable. The garden ambiance, the food, the service everything was perfect. We've already booked for next year!", tag: "5 Star Rating", avatarSrc: "http://img.b2bpic.net/free-photo/group-friends-eating-restaurant_23-2148006613.jpg", avatarAlt: "Elena Patel", imageSrc: "http://img.b2bpic.net/free-photo/happy-couple-taking-drinks-terrace_23-2150656260.jpg?_wi=3", imageAlt: "Garden dining celebration"
id: "5", name: "Elena Patel, Special Occasion Guest", date: "Date: 20 November 2024", title: "Perfect for celebrations", quote: "We celebrated our anniversary here and it was unforgettable. The garden ambiance, the food, the service everything was perfect. We've already booked for next year!", tag: "5 Star Rating", avatarSrc: "http://img.b2bpic.net/free-photo/group-friends-eating-restaurant_23-2148006613.jpg", avatarAlt: "Elena Patel", imageSrc: "http://img.b2bpic.net/free-photo/happy-couple-taking-drinks-terrace_23-2150656260.jpg", imageAlt: "Garden dining celebration"
}
]}
/>
@@ -161,13 +161,13 @@ export default function LandingPage() {
<div id="philosophy" data-section="philosophy">
<TestimonialAboutCard
tag="Our Philosophy"
tagIcon={Chef}
tagIcon={Anchor}
tagAnimation="slide-up"
title="Respecting The Sea"
description="Simple Preparation. Fresh Ingredients."
subdescription="True hospitality starts with exceptional quality"
icon={Anchor}
imageSrc="http://img.b2bpic.net/free-photo/top-view-crawfish-plates_23-2150346614.jpg?_wi=3"
imageSrc="http://img.b2bpic.net/free-photo/top-view-crawfish-plates_23-2150346614.jpg"
imageAlt="Fresh seafood at Chez Achour"
mediaAnimation="blur-reveal"
useInvertedBackground={false}
@@ -181,7 +181,7 @@ export default function LandingPage() {
tagAnimation="slide-up"
title="Chez Achour Fills Quickly"
description="Especially on weekends and holidays. Secure your table now and experience one of Hammamet's most loved seafood restaurants."
background={{ variant: "grid" }}
background={{ variant: "plain" }}
buttons={[
{ text: "Reserve Now", href: "tel:+216XXXXXXXXX" },
{ text: "Call Restaurant", href: "tel:+216XXXXXXXXX" }

View File

@@ -1,51 +1,45 @@
"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;
fill?: string;
}
const SvgTextLogo = memo<SvgTextLogoProps>(function SvgTextLogo({
logoText,
adjustHeightFactor,
verticalAlign = "top",
className = "",
}) {
const { svgRef, textRef, viewBox, aspectRatio } = useSvgTextLogo(logoText, false, adjustHeightFactor);
const SvgTextLogo = ({
text,
className = '',
fontSize = 32,
fontFamily = 'system-ui, -apple-system, sans-serif',
fontWeight = 700,
letterSpacing = 0,
fill = 'currentColor',
}: SvgTextLogoProps) => {
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"
preserveAspectRatio="xMidYMid meet"
>
<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={fontSize * 0.1}
y={fontSize}
fontSize={fontSize}
fontFamily={fontFamily}
fontWeight={fontWeight}
letterSpacing={letterSpacing}
fill={fill}
dominantBaseline="middle"
>
{logoText}
{text}
</text>
</svg>
);
});
};
SvgTextLogo.displayName = "SvgTextLogo";
export default SvgTextLogo;
export default SvgTextLogo;