Merge version_3 into main

Merge version_3 into main
This commit was merged in pull request #4.
This commit is contained in:
2026-02-20 13:40:15 +00:00
5 changed files with 34 additions and 55 deletions

View File

@@ -32,7 +32,6 @@ export default function BlogPage() {
{ name: "Shop", id: "/shop" },
{ name: "About", id: "#about" },
{ name: "Testimonials", id: "#testimonials" },
{ name: "FAQ", id: "#faq" },
{ name: "Contact", id: "#contact" },
]}
/>
@@ -70,7 +69,6 @@ export default function BlogPage() {
title: "About Us", items: [
{ label: "Our Story", href: "#about" },
{ label: "Testimonials", href: "#testimonials" },
{ label: "FAQ", href: "#faq" },
],
},
{
@@ -85,4 +83,4 @@ export default function BlogPage() {
</ReactLenis>
</ThemeProvider>
);
}
}

View File

@@ -183,7 +183,7 @@ export default function RootLayout({
const buttonClasses = ['btn', 'button', 'cta', 'action-button'];
const hasButtonClass = buttonClasses.some(cls =>
element.classList.contains(cls) || element.classList.contains(\`btn-\${cls}\`)
element.classList.contains(cls) || element.classList.contains(`btn-${cls}`)
);
if (hasButtonClass && element.textContent && element.textContent.trim().length > 0) {
@@ -237,7 +237,8 @@ export default function RootLayout({
try {
const urlObj = new URL(url);
return urlObj.pathname;
} catch (e) {
}
catch (e) {
return url;
}
}
@@ -675,17 +676,17 @@ export default function RootLayout({
const rect = element.getBoundingClientRect();
const overlay = document.createElement('div');
overlay.className = 'webild-hover-overlay';
overlay.style.cssText = \`
overlay.style.cssText = `
position: fixed !important;
top: \${rect.top - 2}px !important;
left: \${rect.left - 2}px !important;
width: \${rect.width + 4}px !important;
height: \${rect.height + 4}px !important;
top: ${rect.top - 2}px !important;
left: ${rect.left - 2}px !important;
width: ${rect.width + 4}px !important;
height: ${rect.height + 4}px !important;
background-color: rgba(90, 113, 230, 0.15) !important;
pointer-events: none !important;
z-index: 999998 !important;
transition: all 0.15s ease !important;
\`;
`;
document.body.appendChild(overlay);
return overlay;
};
@@ -748,11 +749,11 @@ export default function RootLayout({
elementTypeLabel.classList.add('label-bottom');
}
elementTypeLabel.style.cssText = \`
left: \${labelLeft}px !important;
top: \${labelTop}px !important;
elementTypeLabel.style.cssText = `
left: ${labelLeft}px !important;
top: ${labelTop}px !important;
transform: none !important;
\`;
`;
};
const removeElementTypeLabel = () => {
@@ -1006,7 +1007,7 @@ export default function RootLayout({
const getStorageKey = () => {
const url = new URL(window.location.href);
const pathParts = url.pathname.split('/').filter(Boolean);
return \`webild-changes-\${pathParts.join('-')}\`;
return `webild-changes-${pathParts.join('-')}`;
};
const saveChangeToStorage = (change) => {
@@ -1242,7 +1243,7 @@ export default function RootLayout({
if (isBackground) {
oldValue = window.getComputedStyle(element).backgroundImage;
element.style.backgroundImage = \`url('\${newSrc}')\`;
element.style.backgroundImage = `url('${newSrc}')`;
replaced = true;
} else if (element.tagName.toLowerCase() === 'img') {
oldValue = element.src;
@@ -1277,7 +1278,7 @@ export default function RootLayout({
const hasBackgroundImage = window.getComputedStyle(element).backgroundImage !== 'none';
if (hasBackgroundImage) {
oldValue = window.getComputedStyle(element).backgroundImage;
element.style.backgroundImage = \`url('\${newSrc}')\`;
element.style.backgroundImage = `url('${newSrc}')`;
replaced = true;
}
}
@@ -2776,4 +2777,4 @@ export default function RootLayout({
</ServiceWrapper>
</html>
);
}
}

View File

@@ -1,14 +1,13 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import { Award, Flower, Heart } from "lucide-react";
import { Award, Flower, Heart, Phone } from "lucide-react";
import NavbarStyleApple from '@/components/navbar/NavbarStyleApple/NavbarStyleApple';
import HeroBillboard from '@/components/sections/hero/HeroBillboard';
import ProductCardFour from '@/components/sections/product/ProductCardFour';
import AboutMetric from '@/components/sections/about/AboutMetric';
import TestimonialCardSix from '@/components/sections/testimonial/TestimonialCardSix';
import FaqSplitText from '@/components/sections/faq/FaqSplitText';
import ContactSplitForm from '@/components/sections/contact/ContactSplitForm';
import ContactFaq from '@/components/sections/contact/ContactFaq';
import FooterMedia from '@/components/sections/footer/FooterMedia';
export default function LandingPage() {
@@ -33,7 +32,6 @@ export default function LandingPage() {
{ name: "Shop", id: "/shop" },
{ name: "About", id: "#about" },
{ name: "Testimonials", id: "#testimonials" },
{ name: "FAQ", id: "#faq" },
{ name: "Contact", id: "#contact" },
]}
/>
@@ -98,36 +96,20 @@ export default function LandingPage() {
useInvertedBackground={false}
/>
</div>
<div id="faq" data-section="faq">
<FaqSplitText
sideTitle="Frequently Asked Questions"
sideDescription="Find quick answers to common questions about our flowers, delivery, and services."
<div id="contact" data-section="contact">
<ContactFaq
ctaTitle="Get in Touch with Persik"
ctaDescription="Have a question or a special request? We'd love to hear from you. Send us a message and we'll get back to you shortly."
ctaButton={{ text: "Send Message", href: "#contact" }}
ctaIcon={Phone}
faqs={[
{ id: "1", title: "What are your delivery options?", content: "We offer same-day delivery for orders placed before 2 PM. Standard delivery is available nationwide. Please check our delivery policy for details." },
{ id: "2", title: "Can I customize a bouquet?", content: "Absolutely! We love creating bespoke arrangements. Contact us directly to discuss your specific preferences and occasion." },
{ id: "3", title: "How do I care for my flowers?", content: "Each bouquet comes with a care card. Generally, trim stems, change water daily, and keep away from direct sunlight and heat sources." },
{ id: "4", title: "Do you offer corporate services?", content: "Yes, we provide floral services for corporate events, office decor, and client gifting. Reach out to our team for a tailored proposal." },
]}
faqsAnimation="slide-up"
textPosition="left"
useInvertedBackground={false}
/>
</div>
<div id="contact" data-section="contact">
<ContactSplitForm
title="Get in Touch with Persik"
description="Have a question or a special request? We'd love to hear from you. Send us a message and we'll get back to you shortly."
inputs={[
{ name: "name", type: "text", placeholder: "Your Name", required: true },
{ name: "email", type: "email", placeholder: "Your Email", required: true },
{ name: "phone", type: "tel", placeholder: "Your Phone Number (Optional)" },
]}
textarea={{ name: "message", placeholder: "Tell us about your floral needs or inquiry...", rows: 5, required: true }}
buttonText="Send Message"
imageSrc="https://img.b2bpic.net/free-photo/flowers-floral-shop-different-types_1303-15615.jpg"
imageAlt="Beautiful flowers in a vase on a wooden table, in a cozy flower shop setting"
mediaAnimation="slide-up"
mediaPosition="right"
animationType="slide-up"
useInvertedBackground={false}
/>
</div>
@@ -139,11 +121,11 @@ export default function LandingPage() {
copyrightText="© 2024 Persik | All rights reserved"
columns={[
{ title: "Shop", items: [{ label: "Bouquets", href: "/shop" }, { label: "Arrangements", href: "/shop" }, { label: "Gifts", href: "/shop" }] },
{ title: "About Us", items: [{ label: "Our Story", href: "#about" }, { label: "Testimonials", href: "#testimonials" }, { label: "FAQ", href: "#faq" }] },
{ title: "About Us", items: [{ label: "Our Story", href: "#about" }, { label: "Testimonials", href: "#testimonials" }] },
{ title: "Support", items: [{ label: "Contact", href: "#contact" }, { label: "Delivery Info", href: "https://example.com/delivery" }, { label: "Privacy Policy", href: "https://example.com/privacy" }] },
]}
/>
</div>
</ThemeProvider>
);
}
}

View File

@@ -72,7 +72,6 @@ export default function ProductPage({ params }: ProductPageProps) {
{ name: "Shop", id: "/shop" },
{ name: "About", id: "#about" },
{ name: "Testimonials", id: "#testimonials" },
{ name: "FAQ", id: "#faq" },
{ name: "Contact", id: "#contact" }
],
button: { text: "Cart", onClick: () => setCartOpen(true) },
@@ -91,7 +90,7 @@ export default function ProductPage({ params }: ProductPageProps) {
const footerProps = {
imageSrc: "https://img.b2bpic.net/free-photo/woman-holds-festive-flower-arrangement-with-bright-chrysanthemum-flowers_169016-51483.jpg?_wi=4", imageAlt: "Soft focus background image of various flowers", logoText: "Persik Flowers", copyrightText: "© 2024 Persik | All rights reserved", columns: [
{ title: "Shop", items: [{ label: "Bouquets", href: "/shop" }, { label: "Arrangements", href: "/shop" }, { label: "Gifts", href: "/shop" }] },
{ title: "About Us", items: [{ label: "Our Story", href: "#about" }, { label: "Testimonials", href: "#testimonials" }, { label: "FAQ", href: "#faq" }] },
{ title: "About Us", items: [{ label: "Our Story", href: "#about" }, { label: "Testimonials", href: "#testimonials" }] },
{ title: "Support", items: [{ label: "Contact", href: "#contact" }, { label: "Delivery Info", href: "https://example.com/delivery" }, { label: "Privacy Policy", href: "https://example.com/privacy" }] }
]
};
@@ -221,4 +220,4 @@ export default function ProductPage({ params }: ProductPageProps) {
</ReactLenis>
</ThemeProvider>
);
}
}

View File

@@ -47,7 +47,6 @@ export default function ShopPage() {
{ name: "Shop", id: "/shop" },
{ name: "About", id: "#about" },
{ name: "Testimonials", id: "#testimonials" },
{ name: "FAQ", id: "#faq" },
{ name: "Contact", id: "#contact" }
],
button: { text: "Cart", onClick: () => setCartOpen(true) },
@@ -66,7 +65,7 @@ export default function ShopPage() {
const footerProps = {
imageSrc: "https://img.b2bpic.net/free-photo/woman-holds-festive-flower-arrangement-with-bright-chrysanthemum-flowers_169016-51483.jpg?_wi=3", imageAlt: "Soft focus background image of various flowers", logoText: "Persik Flowers", copyrightText: "© 2024 Persik | All rights reserved", columns: [
{ title: "Shop", items: [{ label: "Bouquets", href: "/shop" }, { label: "Arrangements", href: "/shop" }, { label: "Gifts", href: "/shop" }] },
{ title: "About Us", items: [{ label: "Our Story", href: "#about" }, { label: "Testimonials", href: "#testimonials" }, { label: "FAQ", href: "#faq" }] },
{ title: "About Us", items: [{ label: "Our Story", href: "#about" }, { label: "Testimonials", href: "#testimonials" }] },
{ title: "Support", items: [{ label: "Contact", href: "#contact" }, { label: "Delivery Info", href: "https://example.com/delivery" }, { label: "Privacy Policy", href: "https://example.com/privacy" }] }
]
};
@@ -149,4 +148,4 @@ export default function ShopPage() {
</ReactLenis>
</ThemeProvider>
);
}
}