Merge version_2_1782034383006 into main #2

Merged
bender merged 1 commits from version_2_1782034383006 into main 2026-06-21 09:34:30 +00:00
10 changed files with 360 additions and 258 deletions

View File

@@ -35,7 +35,7 @@ export default function Layout() {
<SiteBackgroundSlot />
<SectionErrorBoundary name="navbar">
<NavbarFloatingLogo
logo="West End Physiotherapy"
logo="Forhad Physio Care"
logoImageSrc="http://img.b2bpic.net/free-vector/set-colorful-yoga-spa-logo-vector_53876-64059.jpg"
ctaButton={{
text: "Book Now", href: "#contact"}}
@@ -46,7 +46,7 @@ export default function Layout() {
</main>
<SectionErrorBoundary name="footer">
<FooterBrand
brand="West End Physiotherapy"
brand="Forhad Physio Care"
columns={[
{
items: [
@@ -69,9 +69,9 @@ export default function Layout() {
{
items: [
{
label: "Instagram", href: "#"},
label: "YouTube", href: "https://www.youtube.com/@ForhadPhysioCare"},
{
label: "Facebook", href: "#"},
label: "Facebook", href: "https://www.facebook.com/profile.php?id=100065699910722"},
{
label: "LinkedIn", href: "#"},
],

View File

@@ -1,266 +1,36 @@
import AboutFeaturesSplit from '@/components/sections/about/AboutFeaturesSplit';
import ContactCta from '@/components/sections/contact/ContactCta';
import FaqSimple from '@/components/sections/faq/FaqSimple';
import FeaturesRevealCardsBento from '@/components/sections/features/FeaturesRevealCardsBento';
import HeroSplitMediaGrid from '@/components/sections/hero/HeroSplitMediaGrid';
import MetricsIconCards from '@/components/sections/metrics/MetricsIconCards';
import TeamStackedCards from '@/components/sections/team/TeamStackedCards';
import TestimonialRatingCards from '@/components/sections/testimonial/TestimonialRatingCards';
import { Award, CheckCircle, Heart, Shield, Star, Zap } from "lucide-react";
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 AboutSection from './HomePage/sections/About';
import ServicesSection from './HomePage/sections/Services';
import MetricsSection from './HomePage/sections/Metrics';
import TeamSection from './HomePage/sections/Team';
import TestimonialsSection from './HomePage/sections/Testimonials';
import FaqSection from './HomePage/sections/Faq';
import ContactSection from './HomePage/sections/Contact';
export default function HomePage(): React.JSX.Element {
return (
<>
<div id="hero" data-section="hero">
<SectionErrorBoundary name="hero">
<HeroSplitMediaGrid
tag="Clinical Excellence"
title="Restore Your Movement, Reclaim Your Life."
description="West End Physiotherapy provides expert, evidence-based care tailored to your unique recovery needs."
primaryButton={{
text: "Book an Appointment",
href: "#contact",
}}
secondaryButton={{
text: "Our Services",
href: "#services",
}}
items={[
{
imageSrc: "http://img.b2bpic.net/free-photo/students-learning-cafeteria_23-2147679038.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/woman-rehabilitation-center-getting-treatment_23-2150356698.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<>
<HeroSection />
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutFeaturesSplit
tag="About Us"
title="Your Partners in Recovery"
description="Our clinic combines cutting-edge rehabilitation technology with a compassionate, patient-centered approach to ensure long-term wellness."
items={[
{
icon: Shield,
title: "Expert Care",
description: "Board-certified professionals with years of experience.",
},
{
icon: Zap,
title: "Rapid Recovery",
description: "Custom treatment plans to get you moving faster.",
},
{
icon: Heart,
title: "Compassionate",
description: "Supporting you through every step of your journey.",
},
]}
imageSrc="http://img.b2bpic.net/free-photo/man-wheelchair-listens-physician_482257-123117.jpg"
/>
</SectionErrorBoundary>
</div>
<AboutSection />
<div id="services" data-section="services">
<SectionErrorBoundary name="services">
<FeaturesRevealCardsBento
tag="Our Services"
title="Specialized Care Programs"
description="We offer a range of targeted treatments for chronic pain, injury, and performance optimization."
items={[
{
title: "Sports Rehab",
description: "Expert care for elite and recreational athletes.",
href: "#contact",
imageSrc: "http://img.b2bpic.net/free-photo/medical-assistant-helping-patient-with-physiotherapy-exercises_23-2149071494.jpg",
},
{
title: "Back & Neck",
description: "Targeted relief for spinal and postural health.",
href: "#contact",
imageSrc: "http://img.b2bpic.net/free-photo/nurse-with-patient-osteopathy-session_23-2149146117.jpg",
},
{
title: "Post-Surgery",
description: "Seamless transition from hospital to home.",
href: "#contact",
imageSrc: "http://img.b2bpic.net/free-photo/medical-assistant-helping-patient-with-physiotherapy-exercises_23-2149071463.jpg",
},
{
title: "Chronic Pain",
description: "Innovative management strategies.",
href: "#contact",
imageSrc: "http://img.b2bpic.net/free-photo/physician-male-patient-having-conversation-medical-examination-cabinet-doing-health-care-consultation-checkup-appointment-give-support-prescription-medicine-pandemic_482257-46461.jpg",
},
{
title: "Pediatrics",
description: "Specialized care for developing bodies.",
href: "#contact",
imageSrc: "http://img.b2bpic.net/free-photo/doctor-using-machine-treat-patients-shoulders_169016-40823.jpg",
},
{
title: "Geriatrics",
description: "Focused care on balance and mobility.",
href: "#contact",
imageSrc: "http://img.b2bpic.net/free-photo/senior-man-with-disability-wheelchair-doing-recovery-exercise-with-resistance-band_482257-107.jpg",
},
{
title: "Ergonomics",
description: "Optimizing your daily workspace comfort.",
href: "#contact",
imageSrc: "http://img.b2bpic.net/free-photo/woman-sitting-chair-desk_23-2148820015.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<ServicesSection />
<div id="metrics" data-section="metrics">
<SectionErrorBoundary name="metrics">
<MetricsIconCards
tag="Our Impact"
title="Trusted by Thousands"
description="Evidence of our commitment to patient outcomes."
metrics={[
{
icon: CheckCircle,
title: "Patients Treated",
value: "15,000+",
},
{
icon: Award,
title: "Years Experience",
value: "20+",
},
{
icon: Star,
title: "Success Rate",
value: "98%",
},
]}
/>
</SectionErrorBoundary>
</div>
<MetricsSection />
<div id="team" data-section="team">
<SectionErrorBoundary name="team">
<TeamStackedCards
tag="The Team"
title="Meet Your Experts"
description="Highly qualified, dedicated specialists working together for you."
members={[
{
name: "Dr. Sarah Miller",
role: "Clinical Director",
imageSrc: "http://img.b2bpic.net/free-photo/senior-man-looking-camera-dental-office-wainting-consultation-elderly-male-smiling-webcam-s_482257-4047.jpg",
},
{
name: "Mark Jenkins",
role: "Senior Therapist",
imageSrc: "http://img.b2bpic.net/free-photo/female-student-practicing-medicine_23-2149040304.jpg",
},
{
name: "Dr. Elena Rossi",
role: "Sports Lead",
imageSrc: "http://img.b2bpic.net/free-photo/doctor-clinic-interior_1398-732.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<TeamSection />
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialRatingCards
tag="Testimonials"
title="What Our Patients Say"
description="Transforming lives through personalized, clinical physiotherapy care."
testimonials={[
{
name: "John D.",
role: "Athlete",
quote: "The recovery process was faster than I expected thanks to Dr. Miller.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/senior-physiotherapy-man-working-pain-recovery-clinic-celebrating-crazy-amazed-success-with-arms-raised-open-eyes-screaming-excited-winner-concept_839833-10667.jpg",
},
{
name: "Alice T.",
role: "Teacher",
quote: "Finally found relief for my back pain. Professional and kind team.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/self-assured-sportsman-poses-half-naked-leans-shoulders-with-both-hands-feels-tired-after-cardio-training-has-strong-body-fond-sport-models-mountains-setting-with-free-space_273609-29306.jpg",
},
{
name: "Robert B.",
role: "Post-Surgery",
quote: "I regained full mobility within months. Truly exceptional care.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/female-patient-doctor-talking-nice-subject_23-2149017309.jpg",
},
{
name: "Emma L.",
role: "Professional",
quote: "Excellent ergonomic advice that saved my career productivity.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/welcome-my-doctor-s-office_329181-300.jpg",
},
{
name: "David K.",
role: "Recovery",
quote: "Professional, clean clinic with great therapists. Highly recommend.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/doctor-glues-tepee-athlete-hospital_1157-28741.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
<TestimonialsSection />
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqSimple
tag="FAQ"
title="Common Questions"
description="Find quick answers to your questions about scheduling and insurance."
items={[
{
question: "Do I need a doctor's referral?",
answer: "In most cases, no. Our therapists are trained to assess your needs directly.",
},
{
question: "Do you accept insurance?",
answer: "Yes, we work with all major health insurance providers.",
},
{
question: "What should I bring to my first session?",
answer: "Bring comfortable clothing and any previous medical reports regarding your injury.",
},
]}
/>
</SectionErrorBoundary>
</div>
<FaqSection />
<div id="contact" data-section="contact">
<SectionErrorBoundary name="contact">
<ContactCta
tag="Book Now"
text="Start your journey to full recovery today. Let's get you back in motion."
primaryButton={{
text: "Schedule a Consultation",
href: "tel:0000000000",
}}
secondaryButton={{
text: "Email Us",
href: "mailto:hello@westendphysio.com",
}}
/>
</SectionErrorBoundary>
</div>
<ContactSection />
</>
);
}

View File

@@ -0,0 +1,39 @@
// 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 AboutFeaturesSplit from '@/components/sections/about/AboutFeaturesSplit';
import { Award, CheckCircle, Heart, Shield, Star, Zap } from "lucide-react";
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function AboutSection(): React.JSX.Element {
return (
<div id="about" data-section="about">
<SectionErrorBoundary name="about">
<AboutFeaturesSplit
tag="About Us"
title="Your Partners in Recovery"
description="Our clinic combines cutting-edge rehabilitation technology with a compassionate, patient-centered approach to ensure long-term wellness."
items={[
{
icon: Shield,
title: "Expert Care",
description: "Board-certified professionals with years of experience.",
},
{
icon: Zap,
title: "Rapid Recovery",
description: "Custom treatment plans to get you moving faster.",
},
{
icon: Heart,
title: "Compassionate",
description: "Supporting you through every step of your journey.",
},
]}
imageSrc="http://img.b2bpic.net/free-photo/man-wheelchair-listens-physician_482257-123117.jpg"
/>
</SectionErrorBoundary>
</div>
);
}

View 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="Book Now"
text="Start your journey to full recovery today. Let's get you back in motion."
primaryButton={{
text: "Schedule a Consultation",
href: "tel:0000000000",
}}
secondaryButton={{
text: "Email Us",
href: "mailto:hello@westendphysio.com",
}}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,34 @@
// 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 FaqSimple from '@/components/sections/faq/FaqSimple';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function FaqSection(): React.JSX.Element {
return (
<div id="faq" data-section="faq">
<SectionErrorBoundary name="faq">
<FaqSimple
tag="FAQ"
title="Common Questions"
description="Find quick answers to your questions about scheduling and insurance."
items={[
{
question: "Do I need a doctor's referral?",
answer: "In most cases, no. Our therapists are trained to assess your needs directly.",
},
{
question: "Do you accept insurance?",
answer: "Yes, we work with all major health insurance providers.",
},
{
question: "What should I bring to my first session?",
answer: "Bring comfortable clothing and any previous medical reports regarding your injury.",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View 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="Clinical Excellence"
title="Restore Your Movement, Reclaim Your Life."
description="West End Physiotherapy provides expert, evidence-based care tailored to your unique recovery needs."
primaryButton={{
text: "Book an Appointment",
href: "#contact",
}}
secondaryButton={{
text: "Our Services",
href: "#services",
}}
items={[
{
imageSrc: "http://img.b2bpic.net/free-photo/students-learning-cafeteria_23-2147679038.jpg",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/woman-rehabilitation-center-getting-treatment_23-2150356698.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,38 @@
// AUTO-GENERATED by per-section-migrate. Edit freely — Bob will treat this
// file as the canonical source for the "metrics" section.
import React from 'react';
import MetricsIconCards from '@/components/sections/metrics/MetricsIconCards';
import { Award, CheckCircle, Heart, Shield, Star, Zap } from "lucide-react";
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function MetricsSection(): React.JSX.Element {
return (
<div id="metrics" data-section="metrics">
<SectionErrorBoundary name="metrics">
<MetricsIconCards
tag="Our Impact"
title="Trusted by Thousands"
description="Evidence of our commitment to patient outcomes."
metrics={[
{
icon: CheckCircle,
title: "Patients Treated",
value: "15,000+",
},
{
icon: Award,
title: "Years Experience",
value: "20+",
},
{
icon: Star,
title: "Success Rate",
value: "98%",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View 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 Services"
title="Specialized Care Programs"
description="We offer a range of targeted treatments for chronic pain, injury, and performance optimization."
items={[
{
title: "Sports Rehab",
description: "Expert care for elite and recreational athletes.",
href: "#contact",
imageSrc: "http://img.b2bpic.net/free-photo/medical-assistant-helping-patient-with-physiotherapy-exercises_23-2149071494.jpg",
},
{
title: "Back & Neck",
description: "Targeted relief for spinal and postural health.",
href: "#contact",
imageSrc: "http://img.b2bpic.net/free-photo/nurse-with-patient-osteopathy-session_23-2149146117.jpg",
},
{
title: "Post-Surgery",
description: "Seamless transition from hospital to home.",
href: "#contact",
imageSrc: "http://img.b2bpic.net/free-photo/medical-assistant-helping-patient-with-physiotherapy-exercises_23-2149071463.jpg",
},
{
title: "Chronic Pain",
description: "Innovative management strategies.",
href: "#contact",
imageSrc: "http://img.b2bpic.net/free-photo/physician-male-patient-having-conversation-medical-examination-cabinet-doing-health-care-consultation-checkup-appointment-give-support-prescription-medicine-pandemic_482257-46461.jpg",
},
{
title: "Pediatrics",
description: "Specialized care for developing bodies.",
href: "#contact",
imageSrc: "http://img.b2bpic.net/free-photo/doctor-using-machine-treat-patients-shoulders_169016-40823.jpg",
},
{
title: "Geriatrics",
description: "Focused care on balance and mobility.",
href: "#contact",
imageSrc: "http://img.b2bpic.net/free-photo/senior-man-with-disability-wheelchair-doing-recovery-exercise-with-resistance-band_482257-107.jpg",
},
{
title: "Ergonomics",
description: "Optimizing your daily workspace comfort.",
href: "#contact",
imageSrc: "http://img.b2bpic.net/free-photo/woman-sitting-chair-desk_23-2148820015.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View 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 TeamStackedCards from '@/components/sections/team/TeamStackedCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function TeamSection(): React.JSX.Element {
return (
<div id="team" data-section="team">
<SectionErrorBoundary name="team">
<TeamStackedCards
tag="The Team"
title="Meet Your Experts"
description="Highly qualified, dedicated specialists working together for you."
members={[
{
name: "Dr. Sarah Miller",
role: "Clinical Director",
imageSrc: "http://img.b2bpic.net/free-photo/senior-man-looking-camera-dental-office-wainting-consultation-elderly-male-smiling-webcam-s_482257-4047.jpg",
},
{
name: "Mark Jenkins",
role: "Senior Therapist",
imageSrc: "http://img.b2bpic.net/free-photo/female-student-practicing-medicine_23-2149040304.jpg",
},
{
name: "Dr. Elena Rossi",
role: "Sports Lead",
imageSrc: "http://img.b2bpic.net/free-photo/doctor-clinic-interior_1398-732.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}

View File

@@ -0,0 +1,57 @@
// 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 TestimonialRatingCards from '@/components/sections/testimonial/TestimonialRatingCards';
import SectionErrorBoundary from "@/components/ui/SectionErrorBoundary";
export default function TestimonialsSection(): React.JSX.Element {
return (
<div id="testimonials" data-section="testimonials">
<SectionErrorBoundary name="testimonials">
<TestimonialRatingCards
tag="Testimonials"
title="What Our Patients Say"
description="Transforming lives through personalized, clinical physiotherapy care."
testimonials={[
{
name: "John D.",
role: "Athlete",
quote: "The recovery process was faster than I expected thanks to Dr. Miller.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/senior-physiotherapy-man-working-pain-recovery-clinic-celebrating-crazy-amazed-success-with-arms-raised-open-eyes-screaming-excited-winner-concept_839833-10667.jpg",
},
{
name: "Alice T.",
role: "Teacher",
quote: "Finally found relief for my back pain. Professional and kind team.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/self-assured-sportsman-poses-half-naked-leans-shoulders-with-both-hands-feels-tired-after-cardio-training-has-strong-body-fond-sport-models-mountains-setting-with-free-space_273609-29306.jpg",
},
{
name: "Robert B.",
role: "Post-Surgery",
quote: "I regained full mobility within months. Truly exceptional care.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/female-patient-doctor-talking-nice-subject_23-2149017309.jpg",
},
{
name: "Emma L.",
role: "Professional",
quote: "Excellent ergonomic advice that saved my career productivity.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/welcome-my-doctor-s-office_329181-300.jpg",
},
{
name: "David K.",
role: "Recovery",
quote: "Professional, clean clinic with great therapists. Highly recommend.",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/doctor-glues-tepee-athlete-hospital_1157-28741.jpg",
},
]}
/>
</SectionErrorBoundary>
</div>
);
}