/* global React */ /** Intro strip — wide horizontal callout: short statement + supporting paragraph. */ function IntroStrip({ headA, headItalic, body, dark = true }) { return ( {headA} {headItalic && {headItalic}} {body} ); } /** Vertical timeline — dotted left rail with timeline items. */ function Timeline({ heading, italic, items = [], dark = true }) { return ( {heading} {italic && {italic}} {items.map((it, i) => ( {it.tag} {it.title} {it.body} ))} ); } /** Values grid — 2x2 grid of small value cards. */ function ValuesGrid({ heading, italic, items = [] }) { return ( {heading} {italic && {italic}} {items.map((v, i) => ( {v.icon} {v.title} {v.body} ))} ); } /** Outside-of-work cards — image-on-top hobby/personal cards. */ function OutsideGrid({ heading, italic, items = [] }) { return ( {heading} {italic && {italic}} {items.map((it, i) => ( {it.img && } {it.title} {it.body} ))} ); } /** Story two-column block — text on left, big photo on right. */ function StoryBlock({ eyebrow, headA, headItalic, paragraphs = [], img }) { return ( {eyebrow && {eyebrow}} {headA} {headItalic && {headItalic}} {paragraphs.map((p, i) => {p})} ); } window.IntroStrip = IntroStrip; window.Timeline = Timeline; window.ValuesGrid = ValuesGrid; window.OutsideGrid = OutsideGrid; window.StoryBlock = StoryBlock;
{body}
{it.body}
{v.body}
{p}