/* DigiHealthCloud — single-page React app, no build step. * * Copy lives in data/site-content.json (edit that to change wording) * Scraped numbers live in data/market-intel.json (written by scrapers/, don't hand-edit) */ const { useState, useEffect } = React; /* ------------------------------------------------------------------ icons */ const Icon = ({ name }) => { const paths = { app: <>, voice: <>, shield: <>, chart: <>, }; return ( ); }; /* --------------------------------------------------------------- waveform */ /* Decorative audio waveform — the voice-capture motif. */ const Waveform = () => { const bars = 96; const w = 1200, h = 88, gap = w / bars; return ( ); }; /* ----------------------------------------------------------------- header */ const Header = () => (
); /* ------------------------------------------------------------------- hero */ const Hero = ({ c }) => (
{c.eyebrow}

{c.headline}

{c.subhead}

); /* -------------------------------------------------------------- what we build */ const WhatWeBuild = ({ c }) => (

{c.title}

{c.intro}

{c.items.map((it, i) => (

{it.title}

{it.body}

))}
); /* --------------------------------------------------------------- how it works */ const HowItWorks = ({ c }) => (

{c.title}

{c.intro}

{c.steps.map((s, i) => (
{i + 1}

{s.title}

{s.body}

))}
); /* ------------------------------------------------- market pulse (scraped data) */ const MarketPulse = ({ data }) => { // Hidden until the scraper has produced real data — no placeholder numbers. if (!data || !(data.stats || []).length) return null; return (

Market pulse

Updated automatically from the public ClinicalTrials.gov registry — no manual editing.

{(data.stats || []).map((s, i) => (
{s.value}
{s.label}
))}
    {(data.recentStudies || []).map((t, i) => (
  • {t.title}
    {[t.phase, t.status, t.sponsor].filter(Boolean).join(' · ')}
  • ))}

Last updated {data.updatedAt ? new Date(data.updatedAt).toLocaleDateString('en-US', { year: 'numeric', month: 'long', day: 'numeric' }) : '—'} · Source: ClinicalTrials.gov

); }; /* ---------------------------------------------------------------- contact */ const Contact = ({ c }) => { const [form, setForm] = useState({ name: '', email: '', message: '' }); const set = (k) => (e) => setForm({ ...form, [k]: e.target.value }); // No backend yet: this opens the visitor's email client with the message filled in. // Swap for a real endpoint (Formspree, Hostinger PHP mailer) when you want one. const submit = (e) => { e.preventDefault(); const subject = encodeURIComponent(`Inquiry from ${form.name || 'website visitor'}`); const body = encodeURIComponent(`${form.message}\n\n— ${form.name}\n${form.email}`); window.location.href = `mailto:${c.email}?subject=${subject}&body=${body}`; }; return (

{c.title}

{c.intro}

{c.email}