Merge version_1 into main #2
@@ -72,7 +72,7 @@ export default function LandingPage() {
|
||||
products={[
|
||||
{
|
||||
id: "1", brand: "Bliss Idols", name: "Vitthal Idol 26\"", price: "$4,500", rating: 5,
|
||||
reviewCount: "87", imageSrc: "http://img.b2bpic.net/free-vector/hand-drawn-ram-navami-festival_23-2148457636.jpg?_wi=1", imageAlt: "Vitthal 26 inch marble idol on pedestal"
|
||||
reviewCount: "87", imageSrc: "http://img.b2bpic.net/free-vector/hand-drawn-ram-navami-festival_23-2148457636.jpg", imageAlt: "Vitthal 26 inch marble idol on pedestal"
|
||||
},
|
||||
{
|
||||
id: "2", brand: "Bliss Idols", name: "Rukmini Statue 26\"", price: "$4,200", rating: 5,
|
||||
@@ -80,7 +80,7 @@ export default function LandingPage() {
|
||||
},
|
||||
{
|
||||
id: "3", brand: "Bliss Idols", name: "Ganesha Idol 7\"", price: "$1,800", rating: 5,
|
||||
reviewCount: "156", imageSrc: "http://img.b2bpic.net/free-photo/closeup-shot-golden-statue-buddha-wat-pho-buddhist-temple-complex-thailand_181624-14364.jpg?_wi=1", imageAlt: "Premium 7 inch Ganesha marble idol"
|
||||
reviewCount: "156", imageSrc: "http://img.b2bpic.net/free-photo/closeup-shot-golden-statue-buddha-wat-pho-buddhist-temple-complex-thailand_181624-14364.jpg", imageAlt: "Premium 7 inch Ganesha marble idol"
|
||||
},
|
||||
{
|
||||
id: "4", brand: "Bliss Idols", name: "Ram Mandir Idol", price: "$3,200", rating: 5,
|
||||
@@ -106,7 +106,7 @@ export default function LandingPage() {
|
||||
description="Sacred devotional sculptures representing the divine union. Vitthal stands with arms on hips, symbolizing devotion in the Varkari tradition. Rukmini, the divine consort, embodies grace and spiritual partnership. Together, they create a powerful spiritual presence for your sacred space."
|
||||
tag="Devotional Masterpieces"
|
||||
tagAnimation="slide-up"
|
||||
imageSrc="http://img.b2bpic.net/free-vector/hand-drawn-ram-navami-festival_23-2148457636.jpg?_wi=2"
|
||||
imageSrc="http://img.b2bpic.net/free-vector/hand-drawn-ram-navami-festival_23-2148457636.jpg"
|
||||
imageAlt="Vitthal and Rukmini idols displayed together in temple setting"
|
||||
useInvertedBackground={false}
|
||||
buttons={[{ text: "Shop Vitthal & Rukmini", href: "#" }]}
|
||||
@@ -120,7 +120,7 @@ export default function LandingPage() {
|
||||
description="Lord Ganesha represents wisdom, prosperity, and new beginnings. Our collection offers multiple sizes and finishes to suit any sacred space. Each idol is meticulously sculpted and finished with premium materials including gold plating, silver plating, matte black, and PU gold finishes."
|
||||
tag="Wisdom & Prosperity"
|
||||
tagAnimation="slide-up"
|
||||
imageSrc="http://img.b2bpic.net/free-photo/closeup-shot-golden-statue-buddha-wat-pho-buddhist-temple-complex-thailand_181624-14364.jpg?_wi=2"
|
||||
imageSrc="http://img.b2bpic.net/free-photo/closeup-shot-golden-statue-buddha-wat-pho-buddhist-temple-complex-thailand_181624-14364.jpg"
|
||||
imageAlt="Ganesha collection displaying multiple sizes and finishes"
|
||||
mediaAnimation="slide-up"
|
||||
useInvertedBackground={false}
|
||||
@@ -243,4 +243,4 @@ export default function LandingPage() {
|
||||
</div>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,51 +1,47 @@
|
||||
"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;
|
||||
width?: number;
|
||||
height?: 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 = '',
|
||||
width = 200,
|
||||
height = 60,
|
||||
}) => {
|
||||
return (
|
||||
<svg
|
||||
ref={svgRef}
|
||||
viewBox={viewBox}
|
||||
className={cls("w-full", className)}
|
||||
style={{ aspectRatio: aspectRatio }}
|
||||
preserveAspectRatio="none"
|
||||
role="img"
|
||||
aria-label={`${logoText} logo`}
|
||||
width={width}
|
||||
height={height}
|
||||
viewBox={`0 0 ${width} ${height}`}
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
className={className}
|
||||
aria-label={`${text} logo`}
|
||||
>
|
||||
<defs>
|
||||
<linearGradient id="textGradient" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" style={{ stopColor: 'currentColor', stopOpacity: 1 }} />
|
||||
<stop offset="100%" style={{ stopColor: 'currentColor', stopOpacity: 0.8 }} />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<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="24"
|
||||
fontWeight="bold"
|
||||
fill="url(#textGradient)"
|
||||
fontFamily="system-ui, -apple-system, sans-serif"
|
||||
>
|
||||
{logoText}
|
||||
{text}
|
||||
</text>
|
||||
</svg>
|
||||
);
|
||||
});
|
||||
|
||||
SvgTextLogo.displayName = "SvgTextLogo";
|
||||
};
|
||||
|
||||
export default SvgTextLogo;
|
||||
|
||||
Reference in New Issue
Block a user