/* V2 Shop + Product Detail — simplified, benefit-first. */ function CatalogV2({ onProduct }) { const cats = window.VC_CATEGORIES; const products = window.VC_PRODUCTS; const catImg = window.VC_CAT_IMG; const prodImg = window.VC_PRODUCT_IMG || {}; const imgFor = (p) => prodImg[p.name] || catImg[p.cat]; const sizeFor = (p) => (window.VC_SIZE_LABEL && window.VC_SIZE_LABEL[p.name]) || p.size || (p.cat === 'supplies' ? '5 mL' : '10 mg'); const assistant = (view = 'builder') => window.dispatchEvent(new CustomEvent('mvc-cta-open', { detail: { view } })); const [active, setActive] = React.useState('all'); const shown = active === 'all' ? products : products.filter((p) => p.cat === active); const labelMap = { all: 'All', regeneration: 'Skin & Glow', recovery: 'Recovery', metabolic: 'Reset', longevity: 'Long-term', cognitive: 'Focus', vitality: 'Vitality', supplies: 'Essentials', }; const friendly = (p) => ({ 'GLOW Complex': 'Radiant, healthy-looking skin.', 'GHK-Cu': 'The copper peptide skin loves.', 'BPC-157': 'Recovery\'s best-kept secret.', 'TB-500': 'For deep, slow-burn repair.', 'Retatrutide 10 mg': 'Modern metabolic support · 10 mg vial.', 'Retatrutide 12 mg': 'Modern metabolic support · 12 mg vial.', 'Tirzepatide': 'Weight and appetite reset.', 'Tesamorelin': 'Body composition, elevated.', 'Ipamorelin': 'Sleep. Recover. Repeat.', 'CJC-1295': 'Deeper sleep, stronger mornings.', 'NAD+': 'The cellular battery.', 'MOTS-c': 'Mitochondrial energy on tap.', 'Epitalon': 'Age like a redwood.', 'Selank': 'Calm, focused, present.', 'Semax': 'Clear-headed focus.', 'PT-141': 'Confidence & connection.', 'Bacteriostatic Water': 'The essential mixer.', })[p.name] || p.blurb; React.useEffect(() => { window.lucide && window.lucide.createIcons(); }, [active]); return (
{/* Hero */}
The shop

Everything, simply.

Sixteen carefully chosen peptides and cellular nutrients — grouped by what you want to feel different. Every order arrives clearly labeled with an easy start-here guide.

{cats.map((c) => ( ))}
{/* Grid */}
{shown.map((p) => (
onProduct(p.name)}>
{p.name}
{labelMap[p.cat] || p.catLabel}

{p.name}

{sizeFor(p)}

{friendly(p)}

{p.outOfStock ? 'Out of stock' : `$${window.VC_CART.price(p.name).toFixed(0)}`} Details →
))}

My Vital Cell products are provided for wellness and educational use. Information is not a substitute for medical advice. If you have a health condition, are pregnant, or take medication, please consult your healthcare provider first.

{/* Reconstitution how-to */}
How-to · 90 seconds

How to reconstitute your peptides.

First time with a vial? This short walkthrough covers everything — from opening the kit to drawing your first dose. Simple, calm, and no chemistry degree required.

Still have questions? assistant('contact')} className="v2-link" style={{ color: 'var(--v2-accent)', cursor: 'pointer', borderColor: 'var(--v2-accent)' }}>Ask us anything →

); } function ProductDetailV2({ name, onProduct, onNav }) { const products = window.VC_PRODUCTS; const catImg = window.VC_CAT_IMG; const prodImgDetail = window.VC_PRODUCT_IMG_DETAIL || {}; const prodImg = window.VC_PRODUCT_IMG || {}; const heroImgFor = (x) => prodImgDetail[x.name] || prodImg[x.name] || catImg[x.cat]; const relImgFor = (x) => prodImg[x.name] || catImg[x.cat]; const p = products.find((x) => x.name === name) || products[0]; const related = products.filter((x) => x.cat === p.cat && x.name !== p.name).slice(0, 3); const sizeFor = (x) => (window.VC_SIZE_LABEL && window.VC_SIZE_LABEL[x.name]) || x.size || (x.cat === 'supplies' ? '5 mL' : '10 mg'); const assistant = (view = 'builder') => window.dispatchEvent(new CustomEvent('mvc-cta-open', { detail: { view } })); const softenLong = (text) => text || ''; React.useEffect(() => { window.lucide && window.lucide.createIcons(); }, [name]); return (
{/* breadcrumb */}
onNav('home')} style={{ cursor: 'pointer' }}>Home / onNav('compounds')} style={{ cursor: 'pointer' }}>Shop / {p.name}
{/* Hero */}
{p.name}
{p.catLabel}

{p.name}

{sizeFor(p)} · {p.formula}

{p.blurb}

{p.outOfStock ? 'Out of stock' : `$${window.VC_CART.price(p.name).toFixed(0)}`} {sizeFor(p)} vial
{!p.outOfStock && }
Third-party tested CoA on request Damaged items replaced
{/* Long story */}
The story

What it does, in plain words.

{(p.long || '').split('\n\n').map((para, i) => (

{softenLong(para)}

))}
{/* Focus areas — soften "pathways under research" */}
What it works on

Areas of focus.

{p.pathways.map((pw, i) => (
{String(i + 1).padStart(2, '0')}
{pw}
))}
{/* Handling / Care */} {p.handling && (
Care & handling

How to keep it fresh.

{p.handling}

New to peptides? The short video shows exactly how to reconstitute your first vial. {' '} assistant('contact')} className="v2-link" style={{ color: 'var(--v2-accent)', cursor: 'pointer', borderColor: 'var(--v2-accent)' }}>Or ask us anything →

)} {/* Related */} {related.length > 0 && (
You might also like

More in this space.

{related.map((r) => (
onProduct(r.name)}>
{r.name}
{r.catLabel}

{r.name}

{r.blurb}

))}
)}
); } Object.assign(window, { CatalogV2, ProductDetailV2 });