diff --git a/src/app/contact/page.tsx b/src/app/contact/page.tsx new file mode 100644 index 0000000..85b91fe --- /dev/null +++ b/src/app/contact/page.tsx @@ -0,0 +1,141 @@ +"use client" + +import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; +import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay'; +import ContactCenter from '@/components/sections/contact/ContactCenter'; +import FooterBaseCard from '@/components/sections/footer/FooterBaseCard'; +import { Mail } from 'lucide-react'; +import { useState } from 'react'; + +export default function ContactPage() { + const [formStatus, setFormStatus] = useState<'idle' | 'loading' | 'success' | 'error'>('idle'); + const [formMessage, setFormMessage] = useState(''); + + const handleContactSubmit = async (email: string) => { + setFormStatus('loading'); + setFormMessage(''); + + try { + // Simulate form submission with a delay + await new Promise(resolve => setTimeout(resolve, 1000)); + + // Here you would typically send the email to your backend + // Example: await fetch('/api/contact', { method: 'POST', body: JSON.stringify({ email }) }) + + setFormStatus('success'); + setFormMessage('Thank you for contacting us! We\'ll get back to you shortly.'); + + // Reset form after 3 seconds + setTimeout(() => { + setFormStatus('idle'); + setFormMessage(''); + }, 3000); + } catch (error) { + setFormStatus('error'); + setFormMessage('Something went wrong. Please try again.'); + } + }; + + return ( + + + +
+ +
+ + {formStatus !== 'idle' && ( +
+ {formStatus === 'loading' && ( +

Sending your message...

+ )} + {formStatus === 'success' && ( +

{formMessage}

+ )} + {formStatus === 'error' && ( +

{formMessage}

+ )} +
+ )} + + +
+ ); +} \ No newline at end of file diff --git a/src/app/page.tsx b/src/app/page.tsx index 959a1e1..47ce789 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -52,15 +52,18 @@ export default function LandingPage() { ]} slides={[ { - imageSrc: "http://img.b2bpic.net/free-photo/happy-beautiful-girl-is-happy-smiling-laughing-look-stright-expressive-facial-expressions-cosmet_1258-136364.jpg", imageAlt: "Woman smiling brightly with WhitePop Pro results" + imageSrc: "http://img.b2bpic.net/free-photo/happy-beautiful-girl-is-happy-smiling-laughing-look-stright-expressive-facial-expressions-cosmet_1258-136364.jpg?w=1200&h=800&q=80", imageAlt: "Woman smiling brightly with WhitePop Pro results" }, { - imageSrc: "http://img.b2bpic.net/free-photo/mixed-race-black-blonde-model-with-curly-hair-closeup-mouth-painted-with-bright-blue-lipstick-smiling-watching-camera_633478-803.jpg", imageAlt: "Radiant smile showcasing WhitePop Pro whitening strips" + imageSrc: "http://img.b2bpic.net/free-photo/mixed-race-black-blonde-model-with-curly-hair-closeup-mouth-painted-with-bright-blue-lipstick-smiling-watching-camera_633478-803.jpg?w=1200&h=800&q=80", imageAlt: "Radiant smile showcasing WhitePop Pro whitening strips" } ]} autoplayDelay={4000} showDimOverlay={false} ariaLabel="WhitePop Pro Hero Carousel - Teeth Whitening Product and Results" + containerClassName="w-full mx-auto" + mediaWrapperClassName="w-full h-auto max-w-4xl mx-auto" + imageClassName="w-full h-auto object-cover" /> @@ -86,6 +89,9 @@ export default function LandingPage() { textboxLayout="default" useInvertedBackground={true} ariaLabel="WhitePop Pro results metrics section" + containerClassName="w-full mx-auto px-4 sm:px-6 lg:px-8" + cardClassName="w-full h-auto" + gridClassName="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4 sm:gap-6" /> @@ -96,7 +102,7 @@ export default function LandingPage() { features={[ { id: "step-1", title: "Apply", description: "Gently apply the whitening strip to your upper and lower teeth. The comfortable fit stays secure throughout treatment.", media: { - imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-man-removing-eye-patches-from-his-face_23-2149259933.jpg", imageAlt: "Step 1 - Applying WhitePop Pro whitening strips" + imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-man-removing-eye-patches-from-his-face_23-2149259933.jpg?w=600&h=600&q=80", imageAlt: "Step 1 - Applying WhitePop Pro whitening strips" }, items: [ { icon: Zap, text: "30-second application" } @@ -105,7 +111,7 @@ export default function LandingPage() { }, { id: "step-2", title: "Wait 30 Minutes", description: "Let the nano hydroxyapatite formula work its magic. Advanced formula safely penetrates stains without sensitivity.", media: { - imageSrc: "http://img.b2bpic.net/free-photo/front-view-woman-with-pink-mask_23-2148627165.jpg", imageAlt: "Step 2 - Waiting 30 minutes for treatment" + imageSrc: "http://img.b2bpic.net/free-photo/front-view-woman-with-pink-mask_23-2148627165.jpg?w=600&h=600&q=80", imageAlt: "Step 2 - Waiting 30 minutes for treatment" }, items: [ { icon: Clock, text: "Just 30 minutes daily" } @@ -114,7 +120,7 @@ export default function LandingPage() { }, { id: "step-3", title: "Reveal Your Brighter Smile", description: "Remove the strip and enjoy immediate results. With consistent use, see dramatic whitening within 7 days.", media: { - imageSrc: "http://img.b2bpic.net/free-photo/woman-studio-taking-self-photo_23-2148846675.jpg", imageAlt: "Step 3 - Bright white smile results" + imageSrc: "http://img.b2bpic.net/free-photo/woman-studio-taking-self-photo_23-2148846675.jpg?w=600&h=600&q=80", imageAlt: "Step 3 - Bright white smile results" }, items: [ { icon: Smile, text: "Results in 7 days" } @@ -126,6 +132,10 @@ export default function LandingPage() { animationType="slide-up" useInvertedBackground={false} ariaLabel="How WhitePop Pro works - three easy steps" + containerClassName="w-full mx-auto px-4 sm:px-6 lg:px-8" + mediaWrapperClassName="w-full h-auto max-w-lg mx-auto" + mediaCardClassName="w-full h-auto" + mediaClassName="w-full h-auto object-cover" /> @@ -138,10 +148,12 @@ export default function LandingPage() { buttons={[ { text: "Shop Now", href: "#pricing" } ]} - imageSrc="http://img.b2bpic.net/free-photo/young-beautiful-couple-casual-clothes-man-woman-happy-positive-smiling-cheerfully-standing-white-wall_141793-101769.jpg" + imageSrc="http://img.b2bpic.net/free-photo/young-beautiful-couple-casual-clothes-man-woman-happy-positive-smiling-cheerfully-standing-white-wall_141793-101769.jpg?w=800&h=600&q=80" imageAlt="WhitePop Pro benefits - happy couple with bright smiles" useInvertedBackground={false} ariaLabel="WhitePop Pro benefits section" + mediaWrapperClassName="w-full h-auto max-w-lg mx-auto" + mediaClassName="w-full h-auto object-cover" /> @@ -151,24 +163,28 @@ export default function LandingPage() { description="Join over 50,000 people who've transformed their smiles with WhitePop Pro. Real results from real customers." testimonials={[ { - id: "1", name: "Sarah Johnson", date: "2 weeks ago", title: "Game Changer!", quote: "My teeth looked noticeably whiter in just a few days. I can't believe how well these work without sensitivity. Highly recommend!", tag: "Verified Purchase", avatarSrc: "http://img.b2bpic.net/free-photo/beautiful-business-woman-portrait_23-2149280737.jpg", avatarAlt: "Sarah Johnson" + id: "1", name: "Sarah Johnson", date: "2 weeks ago", title: "Game Changer!", quote: "My teeth looked noticeably whiter in just a few days. I can't believe how well these work without sensitivity. Highly recommend!", tag: "Verified Purchase", avatarSrc: "http://img.b2bpic.net/free-photo/beautiful-business-woman-portrait_23-2149280737.jpg?w=200&h=200&q=80", avatarAlt: "Sarah Johnson" }, { - id: "2", name: "Michael Chen", date: "1 month ago", title: "Professional Results at Home", quote: "As a professional, my smile matters. WhitePop Pro gave me the same results as expensive dental treatments but for a fraction of the cost.", tag: "Verified Purchase", avatarSrc: "http://img.b2bpic.net/free-photo/closeup-confident-businessman-turn-face-camera-smiling-selfassured-standing-white-backgro_1258-113227.jpg", avatarAlt: "Michael Chen" + id: "2", name: "Michael Chen", date: "1 month ago", title: "Professional Results at Home", quote: "As a professional, my smile matters. WhitePop Pro gave me the same results as expensive dental treatments but for a fraction of the cost.", tag: "Verified Purchase", avatarSrc: "http://img.b2bpic.net/free-photo/closeup-confident-businessman-turn-face-camera-smiling-selfassured-standing-white-backgro_1258-113227.jpg?w=200&h=200&q=80", avatarAlt: "Michael Chen" }, { - id: "3", name: "Emily Rodriguez", date: "3 weeks ago", title: "No More Coffee Stains!", quote: "I'm a coffee addict and my teeth were suffering. WhitePop Pro saved me! My smile is brighter than ever.", tag: "Verified Purchase", avatarSrc: "http://img.b2bpic.net/free-photo/beautiful-asian-woman_1098-21999.jpg", avatarAlt: "Emily Rodriguez" + id: "3", name: "Emily Rodriguez", date: "3 weeks ago", title: "No More Coffee Stains!", quote: "I'm a coffee addict and my teeth were suffering. WhitePop Pro saved me! My smile is brighter than ever.", tag: "Verified Purchase", avatarSrc: "http://img.b2bpic.net/free-photo/beautiful-asian-woman_1098-21999.jpg?w=200&h=200&q=80", avatarAlt: "Emily Rodriguez" }, { - id: "4", name: "David Kim", date: "1 week ago", title: "Easy and Effective", quote: "Super easy to use, and the results are amazing. 30 minutes a day and I have a Hollywood smile. Love it!", tag: "Verified Purchase", avatarSrc: "http://img.b2bpic.net/free-photo/side-view-smiley-man-holding-smartphone_23-2149915890.jpg", avatarAlt: "David Kim" + id: "4", name: "David Kim", date: "1 week ago", title: "Easy and Effective", quote: "Super easy to use, and the results are amazing. 30 minutes a day and I have a Hollywood smile. Love it!", tag: "Verified Purchase", avatarSrc: "http://img.b2bpic.net/free-photo/side-view-smiley-man-holding-smartphone_23-2149915890.jpg?w=200&h=200&q=80", avatarAlt: "David Kim" }, { - id: "5", name: "Jessica Martinez", date: "10 days ago", title: "Worth Every Penny", quote: "I've tried other whitening products before, but WhitePop Pro is by far the best. The results are incredible and they last!", tag: "Verified Purchase", avatarSrc: "http://img.b2bpic.net/free-photo/confident-determined-young-girl-student-cross-arms-chest-power-pose-smiling-looking-self-assured-standing-white-background-near-your-logo-place-banner_176420-44471.jpg", avatarAlt: "Jessica Martinez" + id: "5", name: "Jessica Martinez", date: "10 days ago", title: "Worth Every Penny", quote: "I've tried other whitening products before, but WhitePop Pro is by far the best. The results are incredible and they last!", tag: "Verified Purchase", avatarSrc: "http://img.b2bpic.net/free-photo/confident-determined-young-girl-student-cross-arms-chest-power-pose-smiling-looking-self-assured-standing-white-background-near-your-logo-place-banner_176420-44471.jpg?w=200&h=200&q=80", avatarAlt: "Jessica Martinez" } ]} textboxLayout="default" useInvertedBackground={true} ariaLabel="Customer testimonials section" + containerClassName="w-full mx-auto px-4 sm:px-6 lg:px-8" + cardClassName="w-full h-auto" + cardAvatarClassName="w-10 h-10 sm:w-12 sm:h-12" + carouselClassName="w-full" /> @@ -188,20 +204,25 @@ export default function LandingPage() { "28 whitening strips (14-day supply)", "Nano hydroxyapatite formula", "Enamel-safe technology", "30-day money-back guarantee", "Free shipping included", "Save $9.99" ], button: { text: "Buy Now", href: "#" }, - imageSrc: "http://img.b2bpic.net/free-photo/top-view-medical-mask-pills-thermometer-pink-green-background_1182-1080.jpg?_wi=3", imageAlt: "WhitePop Pro 2 Pack Bundle" + imageSrc: "http://img.b2bpic.net/free-photo/top-view-medical-mask-pills-thermometer-pink-green-background_1182-1080.jpg?w=400&h=400&q=80", imageAlt: "WhitePop Pro 2 Pack Bundle" }, { id: "bundle-3", title: "3 Pack Bundle", price: "$69.99", period: "Best Value", features: [ "42 whitening strips (21-day supply)", "Nano hydroxyapatite formula", "Enamel-safe technology", "30-day money-back guarantee", "Free shipping included", "Save $19.98 (33% off)", "Results guaranteed or your money back" ], button: { text: "Buy Now", href: "#" }, - imageSrc: "http://img.b2bpic.net/free-photo/top-view-medical-mask-pills-thermometer-pink-green-background_1182-1080.jpg?_wi=4", imageAlt: "WhitePop Pro 3 Pack Bundle - Best Value" + imageSrc: "http://img.b2bpic.net/free-photo/top-view-medical-mask-pills-thermometer-pink-green-background_1182-1080.jpg?w=400&h=400&q=80", imageAlt: "WhitePop Pro 3 Pack Bundle - Best Value" } ]} textboxLayout="default" animationType="slide-up" useInvertedBackground={false} ariaLabel="WhitePop Pro pricing plans section" + containerClassName="w-full mx-auto px-4 sm:px-6 lg:px-8" + cardClassName="w-full h-auto" + gridClassName="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4 sm:gap-6" + planImageWrapperClassName="w-full h-auto max-w-xs mx-auto" + planImageClassName="w-full h-auto object-cover" /> @@ -229,13 +250,16 @@ export default function LandingPage() { id: "6", title: "What's your money-back guarantee?", content: "We're so confident you'll love WhitePop Pro that we offer a 30-day money-back guarantee. If you're not satisfied for any reason, simply contact customer service within 30 days of purchase for a full refund—no questions asked!" } ]} - imageSrc="http://img.b2bpic.net/free-vector/coupon-sale-label-set_23-2147941071.jpg" + imageSrc="http://img.b2bpic.net/free-vector/coupon-sale-label-set_23-2147941071.jpg?w=400&h=400&q=80" imageAlt="30-day money-back guarantee seal" mediaAnimation="slide-up" textboxLayout="default" faqsAnimation="blur-reveal" useInvertedBackground={true} ariaLabel="Frequently asked questions about WhitePop Pro" + mediaWrapperClassName="w-full h-auto max-w-sm mx-auto" + mediaClassName="w-full h-auto object-cover" + containerClassName="w-full mx-auto px-4 sm:px-6 lg:px-8" /> @@ -278,6 +302,7 @@ export default function LandingPage() { ]} copyrightText="© 2025 WhitePop Pro. All rights reserved. | Dentist Approved | Made with 💚 for your smile." ariaLabel="WhitePop Pro footer" + containerClassName="w-full mx-auto px-4 sm:px-6 lg:px-8" /> diff --git a/src/app/privacy-policy/page.tsx b/src/app/privacy-policy/page.tsx new file mode 100644 index 0000000..f331ec1 --- /dev/null +++ b/src/app/privacy-policy/page.tsx @@ -0,0 +1,154 @@ +"use client" + +import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; +import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay'; +import LegalSection from '@/components/legal/LegalSection'; +import FooterBaseCard from '@/components/sections/footer/FooterBaseCard'; + +export default function PrivacyPolicyPage() { + return ( + + + + + + + + ); +} \ No newline at end of file diff --git a/src/app/product/whitepop-pro/page.tsx b/src/app/product/whitepop-pro/page.tsx new file mode 100644 index 0000000..f8799b3 --- /dev/null +++ b/src/app/product/whitepop-pro/page.tsx @@ -0,0 +1,307 @@ +"use client" + +import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; +import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay'; +import HeroCarouselLogo from '@/components/sections/hero/heroCarouselLogo/HeroCarouselLogo'; +import MetricCardThree from '@/components/sections/metrics/MetricCardThree'; +import FeatureCardTen from '@/components/sections/feature/FeatureCardTen'; +import MediaAbout from '@/components/sections/about/MediaAbout'; +import TestimonialCardFive from '@/components/sections/testimonial/TestimonialCardFive'; +import PricingCardNine from '@/components/sections/pricing/PricingCardNine'; +import FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia'; +import FooterBaseCard from '@/components/sections/footer/FooterBaseCard'; +import ProductCardThree from '@/components/sections/product/ProductCardThree'; +import { CheckCircle, Clock, Shield, Smile, Sparkles, TrendingUp, Zap, Heart, Award } from 'lucide-react'; + +export default function WhitePopProPage() { + return ( + + + +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ + +
+ ); +} diff --git a/src/app/refund-policy/page.tsx b/src/app/refund-policy/page.tsx new file mode 100644 index 0000000..9308319 --- /dev/null +++ b/src/app/refund-policy/page.tsx @@ -0,0 +1,175 @@ +"use client" + +import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; +import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay'; +import LegalSection from '@/components/legal/LegalSection'; +import FooterBaseCard from '@/components/sections/footer/FooterBaseCard'; + +export default function RefundPolicyPage() { + return ( + + + + + + + + ); +} \ No newline at end of file diff --git a/src/app/shipping-policy/page.tsx b/src/app/shipping-policy/page.tsx new file mode 100644 index 0000000..0f9aa56 --- /dev/null +++ b/src/app/shipping-policy/page.tsx @@ -0,0 +1,192 @@ +"use client" + +import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; +import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay'; +import LegalSection from '@/components/legal/LegalSection'; +import FooterBaseCard from '@/components/sections/footer/FooterBaseCard'; + +export default function ShippingPolicyPage() { + return ( + + + + + + + + ); +} \ No newline at end of file diff --git a/src/app/terms-of-service/page.tsx b/src/app/terms-of-service/page.tsx new file mode 100644 index 0000000..eb11dbf --- /dev/null +++ b/src/app/terms-of-service/page.tsx @@ -0,0 +1,188 @@ +"use client" + +import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider"; +import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay'; +import LegalSection from '@/components/legal/LegalSection'; +import FooterBaseCard from '@/components/sections/footer/FooterBaseCard'; + +export default function TermsOfServicePage() { + return ( + + + + + + + + ); +} \ No newline at end of file