// Visual placeholder components: abstract organic SVGs + labeled image slots. const EdenLogoMark = ({ size = 26 }) => ( Eden Wellness ); const ArrowRight = ({ size = 12 }) => ( ); const Plus = () => ( ); const CheckIcon = () => ( ); // Organic topographic placeholder — different hash per id for variation const BotanicalPlaceholder = ({ label, seed = 1, accent = 'phosphor' }) => { const paths = React.useMemo(() => { const rnd = (n) => { let x = Math.sin(seed * 9999 + n * 31) * 10000; return x - Math.floor(x); }; const layers = []; for (let i = 0; i < 9; i++) { const pts = []; const offY = 100 + i * 50 + rnd(i) * 30; for (let x = -40; x <= 440; x += 16) { const y = offY + Math.sin((x + rnd(i + 10) * 200) * 0.016 + i * 0.8) * (24 + rnd(i + 20) * 30); pts.push(`${x},${y.toFixed(1)}`); } layers.push(pts.join(' ')); } return layers; }, [seed]); return (
{paths.map((p, i) => ( ))} {/* Scatter dots — like seeds */} {[...Array(24)].map((_, i) => { const x = ((Math.sin(seed * 99 + i * 13) + 1) / 2) * 400; const y = ((Math.cos(seed * 77 + i * 7) + 1) / 2) * 500; const r = 0.6 + ((Math.sin(i * 3) + 1) / 2) * 1.4; return ; })} {label && (
IMAGE · {label}
)}
); }; // Organic blob -- decorative const OrganicBlob = ({ className = '', style = {} }) => ( ); // Team placeholder — silhouette lines const TeamPlaceholder = ({ name, seed = 1 }) => (
); Object.assign(window, { EdenLogoMark, ArrowRight, Plus, CheckIcon, BotanicalPlaceholder, OrganicBlob, TeamPlaceholder });