Merge version_1 into main #2
@@ -52,10 +52,10 @@ export default function LandingPage() {
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/smiley-woman-dog-with-tablet_23-2148928976.jpg", imageAlt: "Cozy café table with latte art and pastries"
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/croissant-brownies_1339-8502.jpg?_wi=1", imageAlt: "Fresh handmade bakery items"
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/croissant-brownies_1339-8502.jpg", imageAlt: "Fresh handmade bakery items"
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/man-hands-working-with-coffee-machine-restaurant-close-up-barista-hands-preparing-making-coffee-coffee-shop_574295-514.jpg?_wi=1", imageAlt: "Premium specialty coffee"
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/man-hands-working-with-coffee-machine-restaurant-close-up-barista-hands-preparing-making-coffee-coffee-shop_574295-514.jpg", imageAlt: "Premium specialty coffee"
|
||||
}
|
||||
]}
|
||||
autoplayDelay={4000}
|
||||
@@ -72,19 +72,19 @@ export default function LandingPage() {
|
||||
id: "relax", title: "Relaxing Cat Lounge", descriptions: [
|
||||
"Spend quality time with our friendly rescue cats in a dedicated cozy cat room", "Gentle, well-behaved felines who love attention and cuddles", "Special entry fee of ₹200 per person for the cat lounge experience"
|
||||
],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-elderly-woman-with-cat_23-2150139687.jpg?_wi=1", imageAlt: "Person enjoying time with cute cats"
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-elderly-woman-with-cat_23-2150139687.jpg", imageAlt: "Person enjoying time with cute cats"
|
||||
},
|
||||
{
|
||||
id: "bakery", title: "Fresh Bakery Every Day", descriptions: [
|
||||
"Handmade cakes, croissants, brownies, and pastries baked fresh daily", "Premium ingredients sourced locally for quality and taste", "Rotating seasonal specials to keep your visits exciting"
|
||||
],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/croissant-brownies_1339-8502.jpg?_wi=2", imageAlt: "Fresh handmade bakery pastries"
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/croissant-brownies_1339-8502.jpg", imageAlt: "Fresh handmade bakery pastries"
|
||||
},
|
||||
{
|
||||
id: "coffee", title: "Premium Coffee", descriptions: [
|
||||
"Specialty coffee brewed fresh by skilled baristas using premium beans", "Expertly crafted cappuccinos, lattes, mochas, and more", "Perfect accompaniment to your pastry and cat cuddle session"
|
||||
],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/man-hands-working-with-coffee-machine-restaurant-close-up-barista-hands-preparing-making-coffee-coffee-shop_574295-514.jpg?_wi=2", imageAlt: "Specialty coffee being prepared"
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/man-hands-working-with-coffee-machine-restaurant-close-up-barista-hands-preparing-making-coffee-coffee-shop_574295-514.jpg", imageAlt: "Specialty coffee being prepared"
|
||||
},
|
||||
{
|
||||
id: "instagram", title: "Instagram Worthy", descriptions: [
|
||||
@@ -124,27 +124,27 @@ export default function LandingPage() {
|
||||
products={[
|
||||
{
|
||||
id: "cappuccino", brand: "Premium Blend", name: "Cappuccino", price: "₹180", rating: 5,
|
||||
reviewCount: "320+", imageSrc: "http://img.b2bpic.net/free-photo/composition-with-badge-croissants_23-2147658668.jpg?_wi=1", imageAlt: "Cappuccino"
|
||||
reviewCount: "320+", imageSrc: "http://img.b2bpic.net/free-photo/composition-with-badge-croissants_23-2147658668.jpg", imageAlt: "Cappuccino"
|
||||
},
|
||||
{
|
||||
id: "latte", brand: "Premium Blend", name: "Latte", price: "₹170", rating: 5,
|
||||
reviewCount: "280+", imageSrc: "http://img.b2bpic.net/free-photo/composition-with-badge-croissants_23-2147658668.jpg?_wi=2", imageAlt: "Latte"
|
||||
reviewCount: "280+", imageSrc: "http://img.b2bpic.net/free-photo/composition-with-badge-croissants_23-2147658668.jpg", imageAlt: "Latte"
|
||||
},
|
||||
{
|
||||
id: "croissant", brand: "Artisan Bakery", name: "Butter Croissant", price: "₹120", rating: 5,
|
||||
reviewCount: "250+", imageSrc: "http://img.b2bpic.net/free-photo/frame-blackboard-with-coffee-break-set_23-2148074929.jpg?_wi=1", imageAlt: "Butter Croissant"
|
||||
reviewCount: "250+", imageSrc: "http://img.b2bpic.net/free-photo/frame-blackboard-with-coffee-break-set_23-2148074929.jpg", imageAlt: "Butter Croissant"
|
||||
},
|
||||
{
|
||||
id: "brownie", brand: "Artisan Bakery", name: "Chocolate Brownie", price: "₹150", rating: 5,
|
||||
reviewCount: "310+", imageSrc: "http://img.b2bpic.net/free-photo/frame-blackboard-with-coffee-break-set_23-2148074929.jpg?_wi=2", imageAlt: "Chocolate Brownie"
|
||||
reviewCount: "310+", imageSrc: "http://img.b2bpic.net/free-photo/frame-blackboard-with-coffee-break-set_23-2148074929.jpg", imageAlt: "Chocolate Brownie"
|
||||
},
|
||||
{
|
||||
id: "cheesecake", brand: "Artisan Bakery", name: "Creamy Cheesecake", price: "₹200", rating: 5,
|
||||
reviewCount: "290+", imageSrc: "http://img.b2bpic.net/free-photo/frame-blackboard-with-coffee-break-set_23-2148074929.jpg?_wi=3", imageAlt: "Creamy Cheesecake"
|
||||
reviewCount: "290+", imageSrc: "http://img.b2bpic.net/free-photo/frame-blackboard-with-coffee-break-set_23-2148074929.jpg", imageAlt: "Creamy Cheesecake"
|
||||
},
|
||||
{
|
||||
id: "sandwich", brand: "Fresh Prepared", name: "Gourmet Sandwich", price: "₹160", rating: 5,
|
||||
reviewCount: "210+", imageSrc: "http://img.b2bpic.net/free-photo/composition-with-badge-croissants_23-2147658668.jpg?_wi=3", imageAlt: "Gourmet Sandwich"
|
||||
reviewCount: "210+", imageSrc: "http://img.b2bpic.net/free-photo/composition-with-badge-croissants_23-2147658668.jpg", imageAlt: "Gourmet Sandwich"
|
||||
}
|
||||
]}
|
||||
gridVariant="three-columns-all-equal-width"
|
||||
@@ -162,19 +162,19 @@ export default function LandingPage() {
|
||||
tagIcon={Heart}
|
||||
members={[
|
||||
{
|
||||
id: "cat-1", name: "Whiskers", role: "Rescue Cat", imageSrc: "http://img.b2bpic.net/free-photo/little-girl-is-playing-with-her-little-fluffy-puppy_169016-12353.jpg?_wi=1", imageAlt: "Adorable rescue cat Whiskers"
|
||||
id: "cat-1", name: "Whiskers", role: "Rescue Cat", imageSrc: "http://img.b2bpic.net/free-photo/little-girl-is-playing-with-her-little-fluffy-puppy_169016-12353.jpg", imageAlt: "Adorable rescue cat Whiskers"
|
||||
},
|
||||
{
|
||||
id: "cat-2", name: "Luna", role: "Friendly Kitten", imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-elderly-woman-with-cat_23-2150139687.jpg?_wi=2", imageAlt: "Sweet rescue kitten Luna"
|
||||
id: "cat-2", name: "Luna", role: "Friendly Kitten", imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-elderly-woman-with-cat_23-2150139687.jpg", imageAlt: "Sweet rescue kitten Luna"
|
||||
},
|
||||
{
|
||||
id: "cat-3", name: "Mittens", role: "Playful Rescue", imageSrc: "http://img.b2bpic.net/free-photo/little-girl-is-playing-with-her-little-fluffy-puppy_169016-12353.jpg?_wi=2", imageAlt: "Playful rescue cat Mittens"
|
||||
id: "cat-3", name: "Mittens", role: "Playful Rescue", imageSrc: "http://img.b2bpic.net/free-photo/little-girl-is-playing-with-her-little-fluffy-puppy_169016-12353.jpg", imageAlt: "Playful rescue cat Mittens"
|
||||
},
|
||||
{
|
||||
id: "cat-4", name: "Simba", role: "Gentle Soul", imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-elderly-woman-with-cat_23-2150139687.jpg?_wi=3", imageAlt: "Gentle rescue cat Simba"
|
||||
id: "cat-4", name: "Simba", role: "Gentle Soul", imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-elderly-woman-with-cat_23-2150139687.jpg", imageAlt: "Gentle rescue cat Simba"
|
||||
}
|
||||
]}
|
||||
gridVariant="four-items-2x2-equal-grid"
|
||||
gridVariant="three-columns-all-equal-width"
|
||||
animationType="slide-up"
|
||||
textboxLayout="default"
|
||||
useInvertedBackground={false}
|
||||
|
||||
@@ -1,51 +1,30 @@
|
||||
"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 ${text.length * 60} 100`}
|
||||
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%"
|
||||
textAnchor="middle"
|
||||
dominantBaseline="central"
|
||||
fontSize="60"
|
||||
fontWeight="bold"
|
||||
fill="currentColor"
|
||||
>
|
||||
{logoText}
|
||||
{text}
|
||||
</text>
|
||||
</svg>
|
||||
);
|
||||
});
|
||||
|
||||
SvgTextLogo.displayName = "SvgTextLogo";
|
||||
};
|
||||
|
||||
export default SvgTextLogo;
|
||||
|
||||
Reference in New Issue
Block a user