import { type ComponentType, lazy, Suspense } from 'react' import { motion } from 'framer-motion' import { ArrowRight, Globe, Heart, Mail, MapPin, Shield, Star, Users, Home as HomeIcon, } from 'lucide-react' import { HomeHero } from '../components/home/HomeHero' import { AmbientOrb } from '../components/motion/AmbientOrb' import { RevealSection } from '../components/motion/RevealSection' import { hoverMotionProps, useMotionSafe } from '../hooks/useMotionSafe' import { HOME_TESTIMONIAL, HOW_IT_WORKS, SITE, WHAT_WE_DO } from '../content/siteContent' const AwarenessCampaigns = lazy(() => import('../components/home/AwarenessCampaigns').then((m) => ({ default: m.AwarenessCampaigns })), ) const CommunityGallery = lazy(() => import('../components/home/CommunityGallery').then((m) => ({ default: m.CommunityGallery })), ) const PartnerStrip = lazy(() => import('../components/home/PartnerStrip').then((m) => ({ default: m.PartnerStrip })), ) const WhoWeServe = lazy(() => import('../components/home/WhoWeServe').then((m) => ({ default: m.WhoWeServe })), ) interface CalloutProps { title: string body: string href: string accent: string icon: ComponentType<{ className?: string }> index?: number } interface SectionHeaderProps { eyebrow?: string title: string subtitle?: string } interface FeatureCardProps { icon: ComponentType<{ className?: string }> title: string body: string } /** Above-the-fold only — no framer-motion below this chunk boundary. */ export default function HomePageRoute() { return ( <> ) } function Programs() { const icons = [Users, Heart, HomeIcon, Globe, Shield, Star] as const const items = WHAT_WE_DO.slice(0, 3).map((p, idx) => ({ icon: icons[idx] ?? Heart, title: p.title, body: p.body, })) return (
{items.map((i, idx) => ( ))}
See all programs
) } function FeatureCard({ icon: Icon, title, body }: FeatureCardProps) { const { reduceMotion } = useMotionSafe() return (
{title}

{body}

Learn more
) } function Impact() { const pillars = [ { label: 'Community outreach', desc: 'Direct support for underserved families' }, { label: 'Emergency assistance', desc: 'Crisis, fire, and disaster relief' }, { label: 'Advocacy & navigation', desc: 'Connecting people to hope and resources' }, { label: 'Faith & restoration', desc: 'Dignity, empathy, and compassionate care' }, ] return (
{pillars.map((s, i) => (
{s.label}

{s.desc}

))}
Your gift restores hope

Donations support outreach, emergency assistance, wellness support, and resource navigation for women, families, survivors, and communities in crisis throughout Los Angeles County.

Donate Stories of hope
) } function HowItWorks() { const steps = HOW_IT_WORKS.steps.map((s) => ({ title: s.title, body: s.body })) return (
    {steps.map((s, i) => (
  1. {s.title}

    {s.body}

  2. ))}
Donor promise

{HOW_IT_WORKS.donorPromise}

For partners & volunteers

{HOW_IT_WORKS.partnerNote}

) } function Testimonial() { return (
“{HOME_TESTIMONIAL.quote}”
{HOME_TESTIMONIAL.attribution}
) } function GetInvolved() { const options = [ { title: 'Donate', body: 'Restore hope through outreach, emergency aid, and compassionate care.', href: '/donate', accent: 'from-secondary-500 to-primary-500', icon: Heart, }, { title: 'Volunteer', body: 'Serve at outreach events and support families in your community.', href: '/volunteers', accent: 'from-sky-500 to-secondary-500', icon: Users, }, { title: 'Partner with us', body: "Churches, businesses, and organizations — let's serve together.", href: '/contact', accent: 'from-primary-500 to-secondary-500', icon: Globe, }, ] return (
{options.map((o, i) => ( ))}
) } function Callout({ title, body, href, accent, icon: Icon, index = 0 }: CalloutProps) { const { reduceMotion } = useMotionSafe() const enterMotion = reduceMotion ? { initial: false as const } : { initial: { opacity: 0, y: 16 } as const, whileInView: { opacity: 1, y: 0 } as const, viewport: { once: true } as const, transition: { duration: 0.5, delay: index * 0.08 } as const, } return (