Merge version_1 into main #2

Merged
bender merged 2 commits from version_1 into main 2026-03-12 05:15:26 +00:00
2 changed files with 36 additions and 59 deletions

View File

@@ -20,7 +20,7 @@ export default function LandingPage() {
borderRadius="rounded"
contentWidth="small"
sizing="mediumLargeSizeMediumTitles"
background="circleGradient"
background="none"
cardStyle="glass-depth"
primaryButtonStyle="shadow"
secondaryButtonStyle="radial-glow"
@@ -43,16 +43,16 @@ export default function LandingPage() {
<HeroCentered
title="Where Islamabad Comes for Real Flavor"
description="Authentic Kabuli Pulao, Shinwari Karahi, and premium platters served with the hospitality Habibi is known for."
background={{ variant: "circleGradient" }}
background={{ variant: "plain" }}
avatars={[
{ src: "http://img.b2bpic.net/free-photo/happy-friends-sitting-table-medium-shot_23-2148965375.jpg", alt: "Family dining at Habibi" },
{ src: "http://img.b2bpic.net/free-photo/hanging-glass-lamp-light-vintage_1203-5789.jpg", alt: "Restaurant interior" },
{ src: "http://img.b2bpic.net/free-photo/close-top-view-azerbaijani-grape-leaves-dolma-served-with-yogurt_141793-2014.jpg", alt: "Signature dishes" }
{ src: "http://img.b2bpic.net/free-photo/close-top-view-azerbaijani-grape-leaves-dolma-served-with-yogurt_141793-2014.jpg", alt: "steaming kabuli pulao Pakistani rice dish" },
{ src: "http://img.b2bpic.net/free-photo/hanging-glass-lamp-light-vintage_1203-5789.jpg", alt: "luxury restaurant interior warm lighting elegant" },
{ src: "http://img.b2bpic.net/free-photo/happy-friends-sitting-table-medium-shot_23-2148965375.jpg", alt: "family dining restaurant warm hospitality" }
]}
avatarText="Serving Islamabad since 2015"
buttons={[
{ text: "View Menu", href: "#dishes" },
{ text: "Reserve Table", href: "#reservation" }
{ text: "Reserve Table", href: "#location" }
]}
buttonAnimation="slide-up"
ariaLabel="Habibi Restaurant Hero Section"
@@ -69,7 +69,7 @@ export default function LandingPage() {
{ value: "9+", title: "Years of Excellence" },
{ value: "1000+", title: "Happy Families" }
]}
imageSrc="http://img.b2bpic.net/free-photo/hanging-glass-lamp-light-vintage_1203-5789.jpg?_wi=1"
imageSrc="http://img.b2bpic.net/free-photo/hanging-glass-lamp-light-vintage_1203-5789.jpg"
imageAlt="Habibi Restaurant Interior"
useInvertedBackground={false}
mediaAnimation="slide-up"
@@ -91,19 +91,19 @@ export default function LandingPage() {
products={[
{
id: "1", brand: "Habibi Premium", name: "Habibi Gold Platter", price: "PKR 2,500", rating: 5,
reviewCount: "450+", imageSrc: "http://img.b2bpic.net/free-photo/top-view-chicken-chicken-wings-potatoes-lemon-oil-tablecloth-cutting-board_140725-71474.jpg", imageAlt: "Habibi Gold Platter with grilled meats"
reviewCount: "450+", imageSrc: "http://img.b2bpic.net/free-photo/top-view-chicken-chicken-wings-potatoes-lemon-oil-tablecloth-cutting-board_140725-71474.jpg", imageAlt: "premium grilled meat platter tikka malai boti"
},
{
id: "2", brand: "Habibi Classic", name: "Kabuli Pulao", price: "PKR 1,200", rating: 5,
reviewCount: "680+", imageSrc: "http://img.b2bpic.net/free-photo/high-angle-delicious-pakistan-dish-assortment_23-2148821527.jpg?_wi=1", imageAlt: "Fragrant Kabuli Pulao with meat and raisins"
reviewCount: "680+", imageSrc: "http://img.b2bpic.net/free-photo/high-angle-delicious-pakistan-dish-assortment_23-2148821527.jpg", imageAlt: "kabuli pulao fragrant rice meat carrots raisins"
},
{
id: "3", brand: "Habibi Authentic", name: "Shinwari Karahi", price: "PKR 1,400", rating: 5,
reviewCount: "520+", imageSrc: "http://img.b2bpic.net/free-photo/steamed-millet-with-vegetables_141793-17593.jpg", imageAlt: "Authentic Shinwari Karahi fresh from wok"
reviewCount: "520+", imageSrc: "http://img.b2bpic.net/free-photo/steamed-millet-with-vegetables_141793-17593.jpg", imageAlt: "shinwari karahi wok cooking spices"
},
{
id: "4", brand: "Habibi Grill", name: "Charcoal Grilled Fish", price: "PKR 1,600", rating: 4.8,
reviewCount: "280+", imageSrc: "http://img.b2bpic.net/free-photo/fish-with-lemon-parsley_23-2147753650.jpg", imageAlt: "Premium charcoal grilled fish"
reviewCount: "280+", imageSrc: "http://img.b2bpic.net/free-photo/fish-with-lemon-parsley_23-2147753650.jpg", imageAlt: "charcoal grilled fish bold seasoning fresh"
}
]}
ariaLabel="Habibi Signature Dishes"
@@ -122,11 +122,11 @@ export default function LandingPage() {
features={[
{
id: "1", title: "Fast Service", author: "Customer Favorite", description: "Even during busy hours, orders arrive quickly without compromising on quality or presentation.", tags: ["Service", "Speed"],
imageSrc: "http://img.b2bpic.net/free-photo/hanging-glass-lamp-light-vintage_1203-5789.jpg?_wi=2", imageAlt: "Fast service at Habibi"
imageSrc: "http://img.b2bpic.net/free-photo/hanging-glass-lamp-light-vintage_1203-5789.jpg", imageAlt: "Fast service at Habibi"
},
{
id: "2", title: "Signature Flavors", author: "Culinary Excellence", description: "Kabuli Pulao and Shinwari Karahi remain customer favorites, perfected through years of dedication.", tags: ["Taste", "Authentic"],
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-delicious-pakistan-dish-assortment_23-2148821527.jpg?_wi=2", imageAlt: "Signature flavor dishes"
imageSrc: "http://img.b2bpic.net/free-photo/high-angle-delicious-pakistan-dish-assortment_23-2148821527.jpg", imageAlt: "Signature flavor dishes"
},
{
id: "3", title: "Family Friendly Atmosphere", author: "Warm Hospitality", description: "Spacious dining perfect for gatherings, celebrations, and family moments with loved ones.", tags: ["Ambiance", "Comfort"],
@@ -134,7 +134,7 @@ export default function LandingPage() {
},
{
id: "4", title: "Experienced Since 2015", author: "Market Leader", description: "Nearly a decade of serving Islamabad with consistency, quality, and authentic hospitality.", tags: ["Heritage", "Trust"],
imageSrc: "http://img.b2bpic.net/free-photo/hanging-glass-lamp-light-vintage_1203-5789.jpg?_wi=3", imageAlt: "Habibi legacy and experience"
imageSrc: "http://img.b2bpic.net/free-photo/hanging-glass-lamp-light-vintage_1203-5789.jpg", imageAlt: "Habibi legacy and experience"
}
]}
ariaLabel="Why Choose Habibi"
@@ -150,22 +150,22 @@ export default function LandingPage() {
useInvertedBackground={true}
testimonials={[
{
id: "1", name: "Fatima Ahmed", imageSrc: "http://img.b2bpic.net/free-photo/man-portrait-posing-loft-modern-space_158595-5364.jpg", imageAlt: "Fatima Ahmed"
id: "1", name: "Fatima Ahmed", imageSrc: "http://img.b2bpic.net/free-photo/man-portrait-posing-loft-modern-space_158595-5364.jpg", imageAlt: "professional headshot portrait man dark background"
},
{
id: "2", name: "Hassan Khan", imageSrc: "http://img.b2bpic.net/free-photo/portrait-happy-woman-black-jacket-happy-short-haired-girl-dark-suit-widely-sincerely-smiles-isolated-background_197531-18508.jpg", imageAlt: "Hassan Khan"
id: "2", name: "Hassan Khan", imageSrc: "http://img.b2bpic.net/free-photo/portrait-happy-woman-black-jacket-happy-short-haired-girl-dark-suit-widely-sincerely-smiles-isolated-background_197531-18508.jpg", imageAlt: "professional headshot portrait woman dark background"
},
{
id: "3", name: "Ayesha Malik", imageSrc: "http://img.b2bpic.net/free-photo/young-businessman-happy-expression_1194-1625.jpg", imageAlt: "Ayesha Malik"
id: "3", name: "Ayesha Malik", imageSrc: "http://img.b2bpic.net/free-photo/young-businessman-happy-expression_1194-1625.jpg", imageAlt: "diverse professional headshot portrait male"
},
{
id: "4", name: "Ahmed Saeed", imageSrc: "http://img.b2bpic.net/free-photo/portrait-smiling-waitress_107420-12324.jpg", imageAlt: "Ahmed Saeed"
id: "4", name: "Ahmed Saeed", imageSrc: "http://img.b2bpic.net/free-photo/portrait-smiling-waitress_107420-12324.jpg", imageAlt: "diverse professional headshot portrait female"
},
{
id: "5", name: "Zainab Hassan", imageSrc: "http://img.b2bpic.net/free-photo/smiling-young-man-posing-garden_23-2147562343.jpg", imageAlt: "Zainab Hassan"
id: "5", name: "Zainab Hassan", imageSrc: "http://img.b2bpic.net/free-photo/smiling-young-man-posing-garden_23-2147562343.jpg", imageAlt: "young professional male portrait headshot"
},
{
id: "6", name: "Muhammad Ali", imageSrc: "http://img.b2bpic.net/free-photo/portrait-attractive-smiling-woman-office_23-2148187253.jpg", imageAlt: "Muhammad Ali"
id: "6", name: "Muhammad Ali", imageSrc: "http://img.b2bpic.net/free-photo/portrait-attractive-smiling-woman-office_23-2148187253.jpg", imageAlt: "young professional female portrait headshot"
}
]}
ariaLabel="Customer Testimonials"
@@ -200,7 +200,7 @@ export default function LandingPage() {
]}
textarea={{ name: "message", placeholder: "Special requests or dietary preferences...", rows: 3, required: false }}
useInvertedBackground={true}
imageSrc="http://img.b2bpic.net/free-photo/hanging-glass-lamp-light-vintage_1203-5789.jpg?_wi=4"
imageSrc="http://img.b2bpic.net/free-photo/hanging-glass-lamp-light-vintage_1203-5789.jpg"
imageAlt="Habibi Restaurant Elegant Dining"
mediaAnimation="slide-up"
mediaPosition="right"
@@ -218,7 +218,7 @@ export default function LandingPage() {
{ label: "Location", href: "#" },
{ label: "Hours", href: "#" },
{ label: "Menu", href: "#" },
{ label: "Reservations", href: "#reservation" }
{ label: "Reservations", href: "#location" }
]
},
{

View File

@@ -1,51 +1,28 @@
"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;
}
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 = '' }) => {
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 200 60"
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"
}}
x="50%"
y="50%"
dominantBaseline="middle"
textAnchor="middle"
className="fill-current text-lg font-bold"
>
{logoText}
{text}
</text>
</svg>
);
});
};
SvgTextLogo.displayName = "SvgTextLogo";
export default SvgTextLogo;
export default SvgTextLogo;