Compare commits
4 Commits
version_1_
...
version_2_
| Author | SHA1 | Date | |
|---|---|---|---|
| b924171e0f | |||
| 84ede111ac | |||
| f368ba831b | |||
|
|
193e922b92 |
17
index.html
17
index.html
@@ -5,14 +5,17 @@
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Geist:wght@100..900&family=Inter+Tight:ital,wght@0,100..900;1,100..900&family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Playfair+Display:ital,wght@0,400..900;1,400..900&display=swap" rel="stylesheet">
|
||||
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>SmileCare Dental Studio | Premium Dental Care in Kolkata</title>
|
||||
<meta property="og:title" content="SmileCare Dental Studio | Premium Dental Care in Kolkata" />
|
||||
<meta name="twitter:title" content="SmileCare Dental Studio | Premium Dental Care in Kolkata" />
|
||||
<meta name="description" content="Kolkata's most trusted premium dental studio. Expert specialist care, modern tech, and personalized treatments." />
|
||||
<meta property="og:description" content="Kolkata's most trusted premium dental studio. Expert specialist care, modern tech, and personalized treatments." />
|
||||
<meta name="twitter:description" content="Kolkata's most trusted premium dental studio. Expert specialist care, modern tech, and personalized treatments." />
|
||||
<title>SmileCare Dental Studio | Advanced Dental Care & Smile Solutions</title>
|
||||
<meta property="og:title" content="SmileCare Dental Studio | Advanced Dental Care & Smile Solutions" />
|
||||
<meta name="twitter:title" content="SmileCare Dental Studio | Advanced Dental Care & Smile Solutions" />
|
||||
<meta name="description" content=""Providing world-class dental care with modern technology, expert specialists, personalized treatments, and a commitment to creating healthy, confident smiles."" />
|
||||
<meta property="og:description" content=""Providing world-class dental care with modern technology, expert specialists, personalized treatments, and a commitment to creating healthy, confident smiles."" />
|
||||
<meta name="twitter:description" content=""Providing world-class dental care with modern technology, expert specialists, personalized treatments, and a commitment to creating healthy, confident smiles."" />
|
||||
<meta property="og:image" content="https://storage.googleapis.com/webild/users/user_3FCcwqahyA9Yq7uJfGWGwdyKU0e/uploaded-1781597405883-nfif3ukp.png" />
|
||||
<meta name="twitter:image" content="https://storage.googleapis.com/webild/users/user_3FCcwqahyA9Yq7uJfGWGwdyKU0e/uploaded-1781597405883-nfif3ukp.png" />
|
||||
<link rel="icon" type="image/png" href="/favicon.png" />
|
||||
</head>
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
|
||||
BIN
public/favicon.png
Normal file
BIN
public/favicon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.1 MiB |
@@ -4,6 +4,7 @@ import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
import SiteBackgroundSlot from "@/components/ui/SiteBackgroundSlot";
|
||||
import { Outlet } from 'react-router-dom';
|
||||
import { StyleProvider } from "@/components/ui/StyleProvider";
|
||||
import { MessageCircle } from 'lucide-react';
|
||||
|
||||
export default function Layout() {
|
||||
const navItems = [
|
||||
@@ -40,6 +41,15 @@ export default function Layout() {
|
||||
return (
|
||||
<StyleProvider buttonVariant="default" siteBackground="gridDots" heroBackground="cornerGlow">
|
||||
<SiteBackgroundSlot />
|
||||
<div className="bg-primary-cta text-primary-cta-text py-2 px-4 text-sm flex justify-between items-center hidden md:flex">
|
||||
<div className="flex gap-4">
|
||||
<span>📞 +91 XXXXX XXXXX</span>
|
||||
<span>💬 WhatsApp: +91 XXXXX XXXXX</span>
|
||||
</div>
|
||||
<div>
|
||||
<span>🕒 Mon-Sat: 9AM - 8PM | Sun: Emergency Only</span>
|
||||
</div>
|
||||
</div>
|
||||
<SectionErrorBoundary name="navbar">
|
||||
<NavbarDropdown
|
||||
logo="SmileCare"
|
||||
@@ -49,9 +59,16 @@ export default function Layout() {
|
||||
}}
|
||||
navItems={navItems} />
|
||||
</SectionErrorBoundary>
|
||||
<main className="flex-grow">
|
||||
<main className="flex-grow pb-20 md:pb-0">
|
||||
<Outlet />
|
||||
</main>
|
||||
<a href="#whatsapp" className="fixed bottom-24 md:bottom-6 right-6 z-50 flex items-center justify-center w-14 h-14 bg-green-500 text-white rounded-full shadow-lg hover:bg-green-600 transition-colors">
|
||||
<MessageCircle className="w-6 h-6" />
|
||||
</a>
|
||||
<div className="fixed bottom-0 left-0 right-0 p-4 bg-card border-t border-border flex gap-2 z-40 md:hidden shadow-[0_-4px_6px_-1px_rgba(0,0,0,0.1)]">
|
||||
<a href="#appointment" className="flex-1 bg-primary-cta text-primary-cta-text text-center py-3 rounded-theme font-semibold">Book Now</a>
|
||||
<a href="#whatsapp" className="flex-1 bg-green-500 text-white text-center py-3 rounded-theme font-semibold">WhatsApp</a>
|
||||
</div>
|
||||
<SectionErrorBoundary name="footer">
|
||||
<FooterBrand
|
||||
brand="SmileCare Dental Studio"
|
||||
|
||||
@@ -1,324 +1,53 @@
|
||||
import AboutTextSplit from '@/components/sections/about/AboutTextSplit';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia';
|
||||
import FeaturesBentoGrid from '@/components/sections/features/FeaturesBentoGrid';
|
||||
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
|
||||
import HeroSplitMediaGrid from '@/components/sections/hero/HeroSplitMediaGrid';
|
||||
import PricingCenteredCards from '@/components/sections/pricing/PricingCenteredCards';
|
||||
import TeamOverlayCards from '@/components/sections/team/TeamOverlayCards';
|
||||
import TestimonialMarqueeCards from '@/components/sections/testimonial/TestimonialMarqueeCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
// AUTO-GENERATED shell by per-section-migrate.
|
||||
// Section bodies live in ./<PageBase>/sections/<X>.tsx. Edit the section
|
||||
// files directly. Non-block content (wrappers, non-inlinable sections) is
|
||||
// preserved inline; extracted section blocks become <XSection/> refs.
|
||||
|
||||
export default function HomePage() {
|
||||
import React from 'react';
|
||||
import HeroSection from './HomePage/sections/Hero';
|
||||
import FeaturesSection from './HomePage/sections/Features';
|
||||
import AboutSection from './HomePage/sections/About';
|
||||
import ServicesSection from './HomePage/sections/Services';
|
||||
import PricingSection from './HomePage/sections/Pricing';
|
||||
import TeamSection from './HomePage/sections/Team';
|
||||
import TestimonialsSection from './HomePage/sections/Testimonials';
|
||||
import FaqSection from './HomePage/sections/Faq';
|
||||
import ContactSection from './HomePage/sections/Contact';
|
||||
|
||||
|
||||
import CtaServicesSection from './HomePage/sections/CtaServices';
|
||||
import CtaAboutSection from './HomePage/sections/CtaAbout';
|
||||
import CtaTestimonialsSection from './HomePage/sections/CtaTestimonials';
|
||||
import CtaPricingSection from './HomePage/sections/CtaPricing';
|
||||
import TrustBannerSection from './HomePage/sections/TrustBanner';
|
||||
import TimingsSection from './HomePage/sections/Timings';
|
||||
import CtaFinalSection from './HomePage/sections/CtaFinal';export default function HomePage(): React.JSX.Element {
|
||||
return (
|
||||
<>
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroSplitMediaGrid
|
||||
tag="Kolkata's Premier Dental Studio"
|
||||
title="Confident Smiles Start Here"
|
||||
description="Advanced dental care using state-of-the-art technology, specialized expertise, and a patient-first approach to create your perfect smile in luxury."
|
||||
primaryButton={{
|
||||
text: "Book Appointment",
|
||||
href: "#appointment",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Free Consultation",
|
||||
href: "#contact",
|
||||
}}
|
||||
items={[
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/happy-young-woman-smiling_23-2148396205.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/nobody-waiting-room-with-front-desk-reception-wall-screen-tv-with-promotional-offer-private-practice-hopital-waiting-area-patients-with-doctor-appointments-modern-healthcare-clinic_482257-46743.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<>
|
||||
<HeroSection />
|
||||
<TrustBannerSection />
|
||||
|
||||
<div id="features" data-section="features">
|
||||
<SectionErrorBoundary name="features">
|
||||
<FeaturesBentoGrid
|
||||
tag="Why SmileCare"
|
||||
title="Unmatched Patient Trust"
|
||||
description="We blend clinical precision with a luxury hospitality experience to ensure your comfort and satisfaction at every step."
|
||||
features={[
|
||||
{
|
||||
title: "Expert Specialists",
|
||||
description: "Board-certified doctors with 10+ years of clinical experience.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/illustration-dental-care-application-digital-tablet_53876-125399.jpg",
|
||||
},
|
||||
{
|
||||
title: "Modern Tech",
|
||||
description: "State-of-the-art diagnostic and treatment technology.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/attractive-patient-redviolet-dress-laying-dental-chair-while-female-dentist-treating-her-teeth-with-special-instruments_627829-9761.jpg",
|
||||
},
|
||||
{
|
||||
title: "Pain-Free Care",
|
||||
description: "Advanced protocols ensuring comfort during every procedure.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/dental-tools-equipment-white-background_1232-4444.jpg",
|
||||
},
|
||||
{
|
||||
title: "Emergency Ready",
|
||||
description: "24/7 priority support for all urgent dental emergencies.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-african-american-man-guy-visiting-dentist-s-office-prevention-oral-cavity-man-famale-doctor-while-checkup-teeth_1157-42073.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<FeaturesSection />
|
||||
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutTextSplit
|
||||
title="A Legacy of Beautiful Smiles"
|
||||
descriptions={[
|
||||
"SmileCare Dental Studio was founded in Kolkata with a singular mission: to redefine the dental experience through luxury, transparency, and innovation. We believe that everyone deserves a confident smile.",
|
||||
"Our philosophy integrates clinical excellence with personal attention. We take the time to understand your needs and comfort, ensuring that your journey to dental wellness is as serene as it is effective.",
|
||||
"From preventive pediatric care to sophisticated cosmetic transformations, we offer a comprehensive suite of dental services under one roof.",
|
||||
]}
|
||||
primaryButton={{
|
||||
text: "Visit Our Clinic",
|
||||
href: "#contact",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<AboutSection />
|
||||
<CtaAboutSection />
|
||||
|
||||
<div id="services" data-section="services">
|
||||
<SectionErrorBoundary name="services">
|
||||
<FeaturesRevealCardsBento
|
||||
tag="Our Specializations"
|
||||
title="Comprehensive Dental Excellence"
|
||||
description="Transforming lives through advanced dentistry."
|
||||
items={[
|
||||
{
|
||||
title: "Dental Implants",
|
||||
description: "Restore functionality with natural-looking implants.",
|
||||
href: "#appointment",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/doctor-preparing-ophthalmologist-s-office_23-2150917654.jpg",
|
||||
},
|
||||
{
|
||||
title: "Root Canal",
|
||||
description: "Precise and painless endodontic treatments.",
|
||||
href: "#appointment",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/front-view-young-woman-pretending-be-asleep_23-2149219833.jpg",
|
||||
},
|
||||
{
|
||||
title: "Teeth Whitening",
|
||||
description: "Achieve a stunning smile in just one session.",
|
||||
href: "#appointment",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/medical-instruments_1157-18593.jpg",
|
||||
},
|
||||
{
|
||||
title: "Braces & Aligners",
|
||||
description: "Straighten teeth with discrete modern technology.",
|
||||
href: "#appointment",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/nurse-wearing-scrubs-while-working-clinic_23-2149844694.jpg",
|
||||
},
|
||||
{
|
||||
title: "Smile Makeover",
|
||||
description: "Complete aesthetic reconstruction for confidence.",
|
||||
href: "#appointment",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/well-organized-empty-medical-cabinet-ready-healthcare-services_482257-109844.jpg",
|
||||
},
|
||||
{
|
||||
title: "Pediatric Care",
|
||||
description: "Gentle, expert care for our youngest patients.",
|
||||
href: "#appointment",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/indoor-portrait-beautiful-shy-young-hispanic-woman-with-dark-skin-long-curly-hair-relaxing-home-sitting-rattan-chair-smiling-broadly_343059-3831.jpg",
|
||||
},
|
||||
{
|
||||
title: "Gum Treatment",
|
||||
description: "Comprehensive periodontal health and maintenance.",
|
||||
href: "#appointment",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/dental-equipment-placed-table_1150-19617.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ServicesSection />
|
||||
<CtaServicesSection />
|
||||
|
||||
<div id="pricing" data-section="pricing">
|
||||
<SectionErrorBoundary name="pricing">
|
||||
<PricingCenteredCards
|
||||
tag="Transparent Pricing"
|
||||
title="Quality Care, Fairly Priced"
|
||||
description="Clear pricing with no hidden costs for premium dental solutions."
|
||||
plans={[
|
||||
{
|
||||
tag: "Consultation",
|
||||
price: "₹499",
|
||||
description: "Initial diagnosis",
|
||||
features: [
|
||||
"Expert review",
|
||||
"Treatment plan",
|
||||
],
|
||||
primaryButton: {
|
||||
text: "Book Now",
|
||||
href: "#appointment",
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: "Cleaning",
|
||||
price: "₹999",
|
||||
description: "Deep dental cleaning",
|
||||
features: [
|
||||
"Plaque removal",
|
||||
"Polishing",
|
||||
],
|
||||
primaryButton: {
|
||||
text: "Book Now",
|
||||
href: "#appointment",
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: "Whitening",
|
||||
price: "₹2999",
|
||||
description: "Brightening session",
|
||||
features: [
|
||||
"Instant results",
|
||||
"Safety assurance",
|
||||
],
|
||||
primaryButton: {
|
||||
text: "Book Now",
|
||||
href: "#appointment",
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: "Root Canal",
|
||||
price: "₹3999",
|
||||
description: "Endodontic care",
|
||||
features: [
|
||||
"Microscopic precision",
|
||||
"Pain-free",
|
||||
],
|
||||
primaryButton: {
|
||||
text: "Book Now",
|
||||
href: "#appointment",
|
||||
},
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<PricingSection />
|
||||
<CtaPricingSection />
|
||||
|
||||
<div id="team" data-section="team">
|
||||
<SectionErrorBoundary name="team">
|
||||
<TeamOverlayCards
|
||||
tag="Our Specialists"
|
||||
title="Meet Your Smile Architects"
|
||||
description="Our team of dental surgeons are dedicated to providing global-standard care right here in Kolkata."
|
||||
members={[
|
||||
{
|
||||
name: "Dr. Ananya Roy",
|
||||
role: "Chief Dentist",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/coronavirus-vaccination-campaign-concept-happy-healthy-girl-showing-shoulder-with-patch-after-getting-vaccine-from-covid-yellow-background_1258-300964.jpg",
|
||||
},
|
||||
{
|
||||
name: "Dr. Vikram Singh",
|
||||
role: "Implantologist",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-girl-sitting-dentist-s-office_1157-23501.jpg",
|
||||
},
|
||||
{
|
||||
name: "Dr. Sarah Khan",
|
||||
role: "Orthodontist",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/retired-sick-patient-sitting-medical-cabinet-checkup-visit-using-health-care-appointment-find-diagnosis-old-person-waiting-receive-prescription-medicine-from-medical-team_482257-48128.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<TeamSection />
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialMarqueeCards
|
||||
tag="Patient Stories"
|
||||
title="Loved by Thousands"
|
||||
description="See why Kolkata trusts SmileCare for their dental needs."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Sneha Das",
|
||||
role: "Patient",
|
||||
quote: "The most professional and painless dental experience I've ever had. Highly recommend!",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-dentist-showing-digital-tablet-male-patient-treatment-dental-clinic_662251-2573.jpg",
|
||||
},
|
||||
{
|
||||
name: "Rahul Verma",
|
||||
role: "Patient",
|
||||
quote: "Extremely clean and modern clinic. The staff is very warm and helpful.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-handsome-smiling-model-sexy-stylish-man-dressed-brown-turtleneck-sweater-jeans-fashion-hipster-male-posing-studio_158538-25123.jpg",
|
||||
},
|
||||
{
|
||||
name: "Priya Gupta",
|
||||
role: "Patient",
|
||||
quote: "My braces treatment was so seamless and effective. I love my new smile!",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-portrait-beautiful-redhead-girl-red-hat-urban-woman-with-freckles-ginger-hair_1258-196740.jpg",
|
||||
},
|
||||
{
|
||||
name: "Amit Chatterjee",
|
||||
role: "Patient",
|
||||
quote: "Very reasonable pricing for such high-end service. The best clinic in town.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/mother-love-elementary-positive-together_1262-2824.jpg",
|
||||
},
|
||||
{
|
||||
name: "Riya Basu",
|
||||
role: "Patient",
|
||||
quote: "The specialists here are world-class. Thank you for everything!",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-woman_93675-131882.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<TestimonialsSection />
|
||||
<CtaTestimonialsSection />
|
||||
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqSplitMedia
|
||||
tag="Common Questions"
|
||||
title="Frequently Asked Questions"
|
||||
description="Answers to help you make informed decisions about your dental health."
|
||||
items={[
|
||||
{
|
||||
question: "Is treatment painful?",
|
||||
answer: "We utilize advanced anesthetic technology to ensure all procedures are completely painless and comfortable.",
|
||||
},
|
||||
{
|
||||
question: "Do you accept emergency cases?",
|
||||
answer: "Yes, we provide 24/7 priority care for all dental emergencies. Call us immediately.",
|
||||
},
|
||||
{
|
||||
question: "What are your consultation charges?",
|
||||
answer: "Consultation charges start at just ₹499 for a full treatment plan.",
|
||||
},
|
||||
{
|
||||
question: "How long does a root canal take?",
|
||||
answer: "Most root canal treatments are completed within a single or two visits depending on complexity.",
|
||||
},
|
||||
]}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/full-equiped-medical-cabinet_1303-23916.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<FaqSection />
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<ContactCta
|
||||
tag="Ready to Start?"
|
||||
text="Book your appointment today and claim your free initial consultation."
|
||||
primaryButton={{
|
||||
text: "Book Appointment",
|
||||
href: "#appointment",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "WhatsApp Us",
|
||||
href: "#contact",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
<ContactSection />
|
||||
<TimingsSection />
|
||||
<CtaFinalSection />
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
27
src/pages/HomePage/sections/About.tsx
Normal file
27
src/pages/HomePage/sections/About.tsx
Normal file
@@ -0,0 +1,27 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "about" section.
|
||||
|
||||
import React from 'react';
|
||||
import AboutTextSplit from '@/components/sections/about/AboutTextSplit';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function AboutSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="about" data-section="about">
|
||||
<SectionErrorBoundary name="about">
|
||||
<AboutTextSplit
|
||||
title="A Legacy of Beautiful Smiles"
|
||||
descriptions={[
|
||||
"SmileCare Dental Studio was founded in Kolkata with a singular mission: to redefine the dental experience through luxury, transparency, and innovation. We believe that everyone deserves a confident smile.",
|
||||
"Our philosophy integrates clinical excellence with personal attention. We take the time to understand your needs and comfort, ensuring that your journey to dental wellness is as serene as it is effective.",
|
||||
"From preventive pediatric care to sophisticated cosmetic transformations, we offer a comprehensive suite of dental services under one roof.",
|
||||
]}
|
||||
primaryButton={{
|
||||
text: "Visit Our Clinic",
|
||||
href: "#contact",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
27
src/pages/HomePage/sections/Contact.tsx
Normal file
27
src/pages/HomePage/sections/Contact.tsx
Normal file
@@ -0,0 +1,27 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "contact" section.
|
||||
|
||||
import React from 'react';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function ContactSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="contact" data-section="contact">
|
||||
<SectionErrorBoundary name="contact">
|
||||
<ContactCta
|
||||
tag="Ready to Start?"
|
||||
text="Book your appointment today and claim your free initial consultation."
|
||||
primaryButton={{
|
||||
text: "Book Appointment",
|
||||
href: "#appointment",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "WhatsApp Us",
|
||||
href: "#contact",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
24
src/pages/HomePage/sections/CtaAbout.tsx
Normal file
24
src/pages/HomePage/sections/CtaAbout.tsx
Normal file
@@ -0,0 +1,24 @@
|
||||
import React from 'react';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function CtaAboutSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="cta-about" data-webild-section="cta-about">
|
||||
<SectionErrorBoundary name="cta-about">
|
||||
<ContactCta
|
||||
tag="Need Expert Dental Care?"
|
||||
text="Book your consultation today and experience world-class dental care."
|
||||
primaryButton={{
|
||||
text: "Book Appointment",
|
||||
href: "#appointment",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "WhatsApp Consultation",
|
||||
href: "#whatsapp",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
24
src/pages/HomePage/sections/CtaFinal.tsx
Normal file
24
src/pages/HomePage/sections/CtaFinal.tsx
Normal file
@@ -0,0 +1,24 @@
|
||||
import React from 'react';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function CtaFinalSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="cta-final" data-webild-section="cta-final">
|
||||
<SectionErrorBoundary name="cta-final">
|
||||
<ContactCta
|
||||
tag="Your Perfect Smile Is Just One Appointment Away"
|
||||
text="Book your consultation today and experience world-class dental care."
|
||||
primaryButton={{
|
||||
text: "Book Appointment",
|
||||
href: "#appointment",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Call Now",
|
||||
href: "tel:+910000000000",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
24
src/pages/HomePage/sections/CtaPricing.tsx
Normal file
24
src/pages/HomePage/sections/CtaPricing.tsx
Normal file
@@ -0,0 +1,24 @@
|
||||
import React from 'react';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function CtaPricingSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="cta-pricing" data-webild-section="cta-pricing">
|
||||
<SectionErrorBoundary name="cta-pricing">
|
||||
<ContactCta
|
||||
tag="Need Expert Dental Care?"
|
||||
text="Book your consultation today and experience world-class dental care."
|
||||
primaryButton={{
|
||||
text: "Book Appointment",
|
||||
href: "#appointment",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "WhatsApp Consultation",
|
||||
href: "#whatsapp",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
24
src/pages/HomePage/sections/CtaServices.tsx
Normal file
24
src/pages/HomePage/sections/CtaServices.tsx
Normal file
@@ -0,0 +1,24 @@
|
||||
import React from 'react';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function CtaServicesSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="cta-services" data-webild-section="cta-services">
|
||||
<SectionErrorBoundary name="cta-services">
|
||||
<ContactCta
|
||||
tag="Need Expert Dental Care?"
|
||||
text="Book your consultation today and experience world-class dental care."
|
||||
primaryButton={{
|
||||
text: "Book Appointment",
|
||||
href: "#appointment",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "WhatsApp Consultation",
|
||||
href: "#whatsapp",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
24
src/pages/HomePage/sections/CtaTestimonials.tsx
Normal file
24
src/pages/HomePage/sections/CtaTestimonials.tsx
Normal file
@@ -0,0 +1,24 @@
|
||||
import React from 'react';
|
||||
import ContactCta from '@/components/sections/contact/ContactCta';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function CtaTestimonialsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="cta-testimonials" data-webild-section="cta-testimonials">
|
||||
<SectionErrorBoundary name="cta-testimonials">
|
||||
<ContactCta
|
||||
tag="Need Expert Dental Care?"
|
||||
text="Book your consultation today and experience world-class dental care."
|
||||
primaryButton={{
|
||||
text: "Book Appointment",
|
||||
href: "#appointment",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "WhatsApp Consultation",
|
||||
href: "#whatsapp",
|
||||
}}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
39
src/pages/HomePage/sections/Faq.tsx
Normal file
39
src/pages/HomePage/sections/Faq.tsx
Normal file
@@ -0,0 +1,39 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "faq" section.
|
||||
|
||||
import React from 'react';
|
||||
import FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function FaqSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="faq" data-section="faq">
|
||||
<SectionErrorBoundary name="faq">
|
||||
<FaqSplitMedia
|
||||
tag="Common Questions"
|
||||
title="Frequently Asked Questions"
|
||||
description="Answers to help you make informed decisions about your dental health."
|
||||
items={[
|
||||
{
|
||||
question: "Is treatment painful?",
|
||||
answer: "We utilize advanced anesthetic technology to ensure all procedures are completely painless and comfortable.",
|
||||
},
|
||||
{
|
||||
question: "Do you accept emergency cases?",
|
||||
answer: "Yes, we provide 24/7 priority care for all dental emergencies. Call us immediately.",
|
||||
},
|
||||
{
|
||||
question: "What are your consultation charges?",
|
||||
answer: "Consultation charges start at just ₹499 for a full treatment plan.",
|
||||
},
|
||||
{
|
||||
question: "How long does a root canal take?",
|
||||
answer: "Most root canal treatments are completed within a single or two visits depending on complexity.",
|
||||
},
|
||||
]}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/full-equiped-medical-cabinet_1303-23916.jpg"
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
42
src/pages/HomePage/sections/Features.tsx
Normal file
42
src/pages/HomePage/sections/Features.tsx
Normal file
@@ -0,0 +1,42 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "features" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesBentoGrid from '@/components/sections/features/FeaturesBentoGrid';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function FeaturesSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="features" data-section="features">
|
||||
<SectionErrorBoundary name="features">
|
||||
<FeaturesBentoGrid
|
||||
tag="Why SmileCare"
|
||||
title="Unmatched Patient Trust"
|
||||
description="We blend clinical precision with a luxury hospitality experience to ensure your comfort and satisfaction at every step."
|
||||
features={[
|
||||
{
|
||||
title: "Expert Specialists",
|
||||
description: "Board-certified doctors with 10+ years of clinical experience.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/illustration-dental-care-application-digital-tablet_53876-125399.jpg",
|
||||
},
|
||||
{
|
||||
title: "Modern Tech",
|
||||
description: "State-of-the-art diagnostic and treatment technology.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/attractive-patient-redviolet-dress-laying-dental-chair-while-female-dentist-treating-her-teeth-with-special-instruments_627829-9761.jpg",
|
||||
},
|
||||
{
|
||||
title: "Pain-Free Care",
|
||||
description: "Advanced protocols ensuring comfort during every procedure.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/dental-tools-equipment-white-background_1232-4444.jpg",
|
||||
},
|
||||
{
|
||||
title: "Emergency Ready",
|
||||
description: "24/7 priority support for all urgent dental emergencies.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-african-american-man-guy-visiting-dentist-s-office-prevention-oral-cavity-man-famale-doctor-while-checkup-teeth_1157-42073.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
36
src/pages/HomePage/sections/Hero.tsx
Normal file
36
src/pages/HomePage/sections/Hero.tsx
Normal file
@@ -0,0 +1,36 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "hero" section.
|
||||
|
||||
import React from 'react';
|
||||
import HeroSplitMediaGrid from '@/components/sections/hero/HeroSplitMediaGrid';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function HeroSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="hero" data-section="hero">
|
||||
<SectionErrorBoundary name="hero">
|
||||
<HeroSplitMediaGrid
|
||||
tag="⭐ 4.9/5 Patient Rating | 5000+ Happy Patients"
|
||||
title="Confident Smiles Start Here"
|
||||
description="Advanced dental care using state-of-the-art technology, specialized expertise, and a patient-first approach to create your perfect smile in luxury."
|
||||
primaryButton={{
|
||||
text: "Book Appointment",
|
||||
href: "#appointment",
|
||||
}}
|
||||
secondaryButton={{
|
||||
text: "Free Consultation",
|
||||
href: "#contact",
|
||||
}}
|
||||
items={[
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/happy-young-woman-smiling_23-2148396205.jpg",
|
||||
},
|
||||
{
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/nobody-waiting-room-with-front-desk-reception-wall-screen-tv-with-promotional-offer-private-practice-hopital-waiting-area-patients-with-doctor-appointments-modern-healthcare-clinic_482257-46743.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
74
src/pages/HomePage/sections/Pricing.tsx
Normal file
74
src/pages/HomePage/sections/Pricing.tsx
Normal file
@@ -0,0 +1,74 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "pricing" section.
|
||||
|
||||
import React from 'react';
|
||||
import PricingCenteredCards from '@/components/sections/pricing/PricingCenteredCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function PricingSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="pricing" data-section="pricing">
|
||||
<SectionErrorBoundary name="pricing">
|
||||
<PricingCenteredCards
|
||||
tag="Transparent Pricing"
|
||||
title="Quality Care, Fairly Priced"
|
||||
description="Clear pricing with no hidden costs for premium dental solutions."
|
||||
plans={[
|
||||
{
|
||||
tag: "Consultation",
|
||||
price: "₹499",
|
||||
description: "Initial diagnosis",
|
||||
features: [
|
||||
"Expert review",
|
||||
"Treatment plan",
|
||||
],
|
||||
primaryButton: {
|
||||
text: "Book Now",
|
||||
href: "#appointment",
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: "Cleaning",
|
||||
price: "₹999",
|
||||
description: "Deep dental cleaning",
|
||||
features: [
|
||||
"Plaque removal",
|
||||
"Polishing",
|
||||
],
|
||||
primaryButton: {
|
||||
text: "Book Now",
|
||||
href: "#appointment",
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: "Whitening",
|
||||
price: "₹2999",
|
||||
description: "Brightening session",
|
||||
features: [
|
||||
"Instant results",
|
||||
"Safety assurance",
|
||||
],
|
||||
primaryButton: {
|
||||
text: "Book Now",
|
||||
href: "#appointment",
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: "Root Canal",
|
||||
price: "₹3999",
|
||||
description: "Endodontic care",
|
||||
features: [
|
||||
"Microscopic precision",
|
||||
"Pain-free",
|
||||
],
|
||||
primaryButton: {
|
||||
text: "Book Now",
|
||||
href: "#appointment",
|
||||
},
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
64
src/pages/HomePage/sections/Services.tsx
Normal file
64
src/pages/HomePage/sections/Services.tsx
Normal file
@@ -0,0 +1,64 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "services" section.
|
||||
|
||||
import React from 'react';
|
||||
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function ServicesSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="services" data-section="services">
|
||||
<SectionErrorBoundary name="services">
|
||||
<FeaturesRevealCardsBento
|
||||
tag="Our Specializations"
|
||||
title="Comprehensive Dental Excellence"
|
||||
description="Transforming lives through advanced dentistry."
|
||||
items={[
|
||||
{
|
||||
title: "Dental Implants",
|
||||
description: "Restore functionality with natural-looking implants.",
|
||||
href: "#appointment",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/doctor-preparing-ophthalmologist-s-office_23-2150917654.jpg",
|
||||
},
|
||||
{
|
||||
title: "Root Canal",
|
||||
description: "Precise and painless endodontic treatments.",
|
||||
href: "#appointment",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/front-view-young-woman-pretending-be-asleep_23-2149219833.jpg",
|
||||
},
|
||||
{
|
||||
title: "Teeth Whitening",
|
||||
description: "Achieve a stunning smile in just one session.",
|
||||
href: "#appointment",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/medical-instruments_1157-18593.jpg",
|
||||
},
|
||||
{
|
||||
title: "Braces & Aligners",
|
||||
description: "Straighten teeth with discrete modern technology.",
|
||||
href: "#appointment",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/nurse-wearing-scrubs-while-working-clinic_23-2149844694.jpg",
|
||||
},
|
||||
{
|
||||
title: "Smile Makeover",
|
||||
description: "Complete aesthetic reconstruction for confidence.",
|
||||
href: "#appointment",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/well-organized-empty-medical-cabinet-ready-healthcare-services_482257-109844.jpg",
|
||||
},
|
||||
{
|
||||
title: "Pediatric Care",
|
||||
description: "Gentle, expert care for our youngest patients.",
|
||||
href: "#appointment",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/indoor-portrait-beautiful-shy-young-hispanic-woman-with-dark-skin-long-curly-hair-relaxing-home-sitting-rattan-chair-smiling-broadly_343059-3831.jpg",
|
||||
},
|
||||
{
|
||||
title: "Gum Treatment",
|
||||
description: "Comprehensive periodontal health and maintenance.",
|
||||
href: "#appointment",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/dental-equipment-placed-table_1150-19617.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
37
src/pages/HomePage/sections/Team.tsx
Normal file
37
src/pages/HomePage/sections/Team.tsx
Normal file
@@ -0,0 +1,37 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "team" section.
|
||||
|
||||
import React from 'react';
|
||||
import TeamOverlayCards from '@/components/sections/team/TeamOverlayCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function TeamSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="team" data-section="team">
|
||||
<SectionErrorBoundary name="team">
|
||||
<TeamOverlayCards
|
||||
tag="Our Specialists"
|
||||
title="Meet Your Smile Architects"
|
||||
description="Our team of dental surgeons are dedicated to providing global-standard care right here in Kolkata."
|
||||
members={[
|
||||
{
|
||||
name: "Dr. Ananya Roy",
|
||||
role: "Chief Dentist",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/coronavirus-vaccination-campaign-concept-happy-healthy-girl-showing-shoulder-with-patch-after-getting-vaccine-from-covid-yellow-background_1258-300964.jpg",
|
||||
},
|
||||
{
|
||||
name: "Dr. Vikram Singh",
|
||||
role: "Implantologist",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-girl-sitting-dentist-s-office_1157-23501.jpg",
|
||||
},
|
||||
{
|
||||
name: "Dr. Sarah Khan",
|
||||
role: "Orthodontist",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/retired-sick-patient-sitting-medical-cabinet-checkup-visit-using-health-care-appointment-find-diagnosis-old-person-waiting-receive-prescription-medicine-from-medical-team_482257-48128.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
52
src/pages/HomePage/sections/Testimonials.tsx
Normal file
52
src/pages/HomePage/sections/Testimonials.tsx
Normal file
@@ -0,0 +1,52 @@
|
||||
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
|
||||
// file as the canonical source for the "testimonials" section.
|
||||
|
||||
import React from 'react';
|
||||
import TestimonialMarqueeCards from '@/components/sections/testimonial/TestimonialMarqueeCards';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
|
||||
export default function TestimonialsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<SectionErrorBoundary name="testimonials">
|
||||
<TestimonialMarqueeCards
|
||||
tag="Patient Stories"
|
||||
title="Loved by Thousands"
|
||||
description="See why Kolkata trusts SmileCare for their dental needs."
|
||||
testimonials={[
|
||||
{
|
||||
name: "Sneha Das",
|
||||
role: "Patient",
|
||||
quote: "The most professional and painless dental experience I've ever had. Highly recommend!",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-dentist-showing-digital-tablet-male-patient-treatment-dental-clinic_662251-2573.jpg",
|
||||
},
|
||||
{
|
||||
name: "Rahul Verma",
|
||||
role: "Patient",
|
||||
quote: "Extremely clean and modern clinic. The staff is very warm and helpful.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-handsome-smiling-model-sexy-stylish-man-dressed-brown-turtleneck-sweater-jeans-fashion-hipster-male-posing-studio_158538-25123.jpg",
|
||||
},
|
||||
{
|
||||
name: "Priya Gupta",
|
||||
role: "Patient",
|
||||
quote: "My braces treatment was so seamless and effective. I love my new smile!",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-portrait-beautiful-redhead-girl-red-hat-urban-woman-with-freckles-ginger-hair_1258-196740.jpg",
|
||||
},
|
||||
{
|
||||
name: "Amit Chatterjee",
|
||||
role: "Patient",
|
||||
quote: "Very reasonable pricing for such high-end service. The best clinic in town.",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/mother-love-elementary-positive-together_1262-2824.jpg",
|
||||
},
|
||||
{
|
||||
name: "Riya Basu",
|
||||
role: "Patient",
|
||||
quote: "The specialists here are world-class. Thank you for everything!",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/portrait-young-woman_93675-131882.jpg",
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
26
src/pages/HomePage/sections/Timings.tsx
Normal file
26
src/pages/HomePage/sections/Timings.tsx
Normal file
@@ -0,0 +1,26 @@
|
||||
import React from 'react';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
import { Clock } from "lucide-react";
|
||||
|
||||
export default function TimingsSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="timings" data-webild-section="timings" className="py-16 bg-background-accent">
|
||||
<SectionErrorBoundary name="timings">
|
||||
<div className="w-content-width mx-auto px-4 text-center">
|
||||
<Clock className="w-12 h-12 mx-auto text-primary-cta mb-4" />
|
||||
<h2 className="text-3xl font-bold text-foreground mb-8">Clinic Timings</h2>
|
||||
<div className="max-w-md mx-auto bg-card p-8 rounded-theme shadow-sm">
|
||||
<div className="flex justify-between items-center border-b border-border pb-4 mb-4">
|
||||
<span className="font-semibold text-foreground">Monday – Saturday</span>
|
||||
<span className="text-muted-foreground">9:00 AM – 8:00 PM</span>
|
||||
</div>
|
||||
<div className="flex justify-between items-center">
|
||||
<span className="font-semibold text-foreground">Sunday</span>
|
||||
<span className="text-red-500 font-medium">Emergency Appointments Only</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
27
src/pages/HomePage/sections/TrustBanner.tsx
Normal file
27
src/pages/HomePage/sections/TrustBanner.tsx
Normal file
@@ -0,0 +1,27 @@
|
||||
import React from 'react';
|
||||
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
|
||||
import { CheckCircle2 } from "lucide-react";
|
||||
|
||||
export default function TrustBannerSection(): React.JSX.Element {
|
||||
return (
|
||||
<div id="trust-banner" data-webild-section="trust-banner" className="bg-card py-6 border-y border-border">
|
||||
<SectionErrorBoundary name="trust-banner">
|
||||
<div className="w-content-width mx-auto px-4">
|
||||
<div className="flex flex-wrap justify-center gap-8 md:gap-12">
|
||||
{[
|
||||
"Experienced Specialists",
|
||||
"Modern Equipment",
|
||||
"Pain-Free Treatments",
|
||||
"Affordable Pricing"
|
||||
].map((item, i) => (
|
||||
<div key={i} className="flex items-center gap-2 text-foreground font-medium">
|
||||
<CheckCircle2 className="w-5 h-5 text-primary-cta" />
|
||||
<span>{item}</span>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
</SectionErrorBoundary>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user