{"version":3,"file":"TwoColumnBody.CmKIrTEQ.mjs","names":["useState","useRef","_Fragment"],"sources":["https:/framerusercontent.com/modules/pqJ4EgW1YxVuIMePIN3S/zAEYg5gCTPmGciM8KEOm/TwoColumnBody.js"],"sourcesContent":["// SMCo TwoColumnBody — two-column editorial content block: photo one side, text the other.\n// The workhorse of interior content pages. Built for Pricing Sec 6 (keepsake explainer);\n// reusable on Everything In-House, Meet Your Chefs, How It Works, persona pages.\n// Graceful no-photo state: renders a sage-tinted placeholder until an asset is assigned.\n// NOTE: Framer passes undefined for unset Image controls — all optional props default-guarded.\n// FAIL-OPEN (2026-08-12): `revealed` gates clipPath, not just opacity — unrevealed, the photo is\n// polygon(0% 50%, 100% 50%, 100% 50%, 0% 50%), a zero-height sliver that is fully INVISIBLE\n// rather than merely un-animated. A bare observer could therefore erase the photo outright.\n// Every guarded exit path below sets the same single `revealed` flag that drives clipPath,\n// opacity and transform, so the guard restores the full end state — clip included.\n//\n// PLACEHOLDER SHIPPED TO PRODUCTION (2026-08-17): the no-photo state printed the photo's ALT\n// TEXT inside a dashed sage box as visible page copy. Two live pages carried it —\n// /why-smco/the-smco-difference/ (\"Therese and Brent Ludwig, founders of Sweet Moments Co.\") and\n// /why-smco/everything-in-house/ (\"Therese Ludwig leading a live virtual cooking class\") — in the\n// SERVER-RENDERED HTML, so crawlers and no-JS readers saw an alt string presented as body copy.\n// Alt text is a description OF a photo; with no photo to describe it is not content. Both the\n// dashed rule and the label are now gated on RenderTarget.canvas, the same treatment\n// ImmersiveBand.tsx gave its \"Drop band photo here\" hint on 2026-08-12 and InteriorHero /\n// ScrollLaptop / ShowcaseCard got the same day as this note. The thumbnail strip below carries an\n// identical empty state and is gated with the SAME flag so the two can never diverge.\n// WHAT A VISITOR SEES NOW: the box keeps its `${accentColor}1f` sage tint — which it already\n// carried in BOTH states, photo or not — and simply loses the dashed rule and the label, i.e. a\n// flat sage panel that reads as a deliberate colour block. GEOMETRY IS UNTOUCHED: same\n// aspectRatio, same radius, same grid, so nothing reflows and the column heights are identical.\n// Pages that DO bind a photo are byte-identical — hasPhoto already resolved the border to \"none\"\n// and already skipped the label.\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{useEffect,useRef,useState}from\"react\";const isStaticEnv=()=>typeof window===\"undefined\"||RenderTarget.current()===RenderTarget.canvas;const prefersReducedMotion=()=>typeof window!==\"undefined\"&&typeof window.matchMedia===\"function\"&&window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;// Mirrors the observer's own threshold so the guard reveals at the same moment a\n// working observer would rather than guessing. Anything unmeasurable reveals.\nconst isOnScreen=(node,threshold)=>{if(typeof node.getBoundingClientRect!==\"function\")return true;const rect=node.getBoundingClientRect();const vh=window.innerHeight||document.documentElement.clientHeight||0;if(rect.height<=0||vh<=0)return true;const visible=Math.min(rect.bottom,vh)-Math.max(rect.top,0);return visible>0&&visible/rect.height>=threshold;};function useDarkMode(){const[isDark,setIsDark]=useState(false);useEffect(()=>{if(typeof document===\"undefined\")return;const check=()=>setIsDark(document.documentElement.classList.contains(\"dark\"));check();const onChange=()=>check();document.addEventListener(\"smco-theme-change\",onChange);const observer=new MutationObserver(check);observer.observe(document.documentElement,{attributes:true,attributeFilter:[\"class\"]});return()=>{document.removeEventListener(\"smco-theme-change\",onChange);observer.disconnect();};},[]);return isDark;}const TREATMENTS={default:\"saturate(0.85) contrast(1.04)\",saturated:\"saturate(1)\",heavy:\"saturate(0.55) contrast(1.12) brightness(0.92)\"};/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight auto\n * @framerIntrinsicHeight 640\n */export default function TwoColumnBody(props){const{variant=\"image-left\",eyebrow=\"\",headline=\"\",body=\"\",inlineCtaLabel=\"\",inlineCtaHref=\"\",photoUrl=\"\",photoAlt=\"\",photoTreatment=\"default\",photoAspect=\"4 / 5\",thumbnails=\"\",chipNote=\"\",insetQuote=\"\",insetAttribution=\"\",maxWidth=1100,accentColor=\"#96c0a5\",textColor=\"#0e0e0e\",textDarkColor=\"#f4f4f4\",subtleTextColor=\"rgba(14, 14, 14, 0.62)\",subtleTextDarkColor=\"rgba(244, 244, 244, 0.7)\",hairlineColor=\"rgba(14, 14, 14, 0.1)\"}=props;const isDark=useDarkMode();const containerRef=useRef(null);// Default = revealed. Static export, canvas and reduced-motion users get the\n// final state — photo fully clipped open — with zero JS; only a live,\n// motion-friendly browser ever starts from the decorative pre-reveal state.\nconst[revealed,setRevealed]=useState(()=>isStaticEnv()||prefersReducedMotion());const[ctaHovered,setCtaHovered]=useState(false);const effText=isDark?textDarkColor:textColor;const effSubtle=isDark?subtleTextDarkColor:subtleTextColor;const effHairline=isDark?\"rgba(244, 244, 244, 0.14)\":hairlineColor;// FAIL-OPEN (2026-08-12): this observer was bare — no API guard, no rect guard,\n// no deadline. Because it gates clipPath, a silent observer did not just skip an\n// animation, it left the photo collapsed to a zero-height sliver. Setting\n// `revealed` restores clipPath to the full polygon along with opacity/transform.\nuseEffect(()=>{if(revealed)return;const node=containerRef.current;// Fail open: no node, or no observer API → open the clip now.\nif(!node||typeof IntersectionObserver===\"undefined\"){setRevealed(true);return;}let observer=null;try{observer=new IntersectionObserver(entries=>entries.forEach(entry=>{if(entry.isIntersecting)setRevealed(true);}),{threshold:.1});observer.observe(node);}catch{setRevealed(true);return;}// Guard: a silent observer must never leave the photo clipped away. Poll the\n// rect at the observer's own threshold, and force-reveal outright once the\n// deadline passes even if the rect can't be trusted.\nconst deadline=Date.now()+2e4;const guard=window.setInterval(()=>{if(isOnScreen(node,.1)||Date.now()>deadline)setRevealed(true);},400);return()=>{if(observer)observer.disconnect();window.clearInterval(guard);};},[revealed]);const ease=\"cubic-bezier(0.16, 1, 0.3, 1)\";// EDITOR PLACEHOLDER GATE (2026-08-17). Deliberately NOT isStaticEnv(): that also matches\n// server-side rendering, and the server-rendered HTML is exactly where the alt-text label was\n// shipping. An export render is likewise an artefact a visitor can end up looking at, so\n// RenderTarget.canvas is the only target that gets the affordance.\nconst isCanvas=RenderTarget.current()===RenderTarget.canvas;const paragraphs=body.split(/\\n\\s*\\n/).map(p=>p.trim()).filter(p=>p.length>0);const thumbs=thumbnails.split(\"\\n\").map(l=>l.trim()).filter(l=>l.length>0).map(line=>{const parts=line.split(\"|\").map(p=>p.trim());return{url:parts[0]===\"-\"?\"\":parts[0]||\"\",alt:parts[1]||\"\"};});const revealStyle=delayMs=>({opacity:revealed?1:0,transform:revealed?\"translateY(0)\":\"translateY(12px)\",transition:`opacity 720ms ${ease} ${delayMs}ms, transform 720ms ${ease} ${delayMs}ms`});const photoClip={clipPath:revealed?\"polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%)\":\"polygon(0% 50%, 100% 50%, 100% 50%, 0% 50%)\",transition:`clip-path 1100ms ${ease} 120ms`};const hasPhoto=photoUrl.trim().length>0;// One flag for the dashed rule AND the label, so a published page can never keep an\n// editor-looking outline around a box whose caption has been removed.\nconst showPhotoPlaceholder=!hasPhoto&&isCanvas;const isQuoteInset=variant===\"quote-inset\";const imageFirst=variant===\"image-left\";const photoColumn=/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:12},children:[/*#__PURE__*/_jsx(\"div\",{style:{...photoClip,width:\"100%\",aspectRatio:photoAspect||\"4 / 5\",borderRadius:20,overflow:\"hidden\",backgroundColor:`${accentColor}1f`,border:showPhotoPlaceholder?`1px dashed ${accentColor}66`:\"none\",backgroundImage:hasPhoto?`url(${photoUrl})`:undefined,backgroundSize:\"cover\",backgroundPosition:\"center\",filter:hasPhoto?TREATMENTS[photoTreatment]:undefined,display:hasPhoto?\"block\":\"flex\",alignItems:\"center\",justifyContent:\"center\"},role:hasPhoto?\"img\":undefined,\"aria-label\":hasPhoto?photoAlt:undefined,children:showPhotoPlaceholder&&/*#__PURE__*/_jsx(\"div\",{style:{fontFamily:\"Urbanist, sans-serif\",fontSize:12,fontWeight:600,letterSpacing:\"0.18em\",textTransform:\"uppercase\",color:effSubtle,textAlign:\"center\",padding:24},children:photoAlt||\"Photo\"})}),thumbs.length>0&&/*#__PURE__*/_jsx(\"div\",{style:{display:\"grid\",gridTemplateColumns:`repeat(${Math.min(thumbs.length,3)}, 1fr)`,gap:12},children:thumbs.map((t,i)=>/*#__PURE__*/_jsx(\"div\",{style:{...revealStyle(300+i*80),aspectRatio:\"1 / 1\",borderRadius:12,overflow:\"hidden\",backgroundColor:`${accentColor}14`,border:!t.url&&isCanvas?`1px dashed ${accentColor}66`:\"none\",backgroundImage:t.url?`url(${t.url})`:undefined,backgroundSize:\"cover\",backgroundPosition:\"center\",filter:t.url?TREATMENTS[photoTreatment]:undefined,display:\"flex\",alignItems:\"center\",justifyContent:\"center\"},role:t.url?\"img\":undefined,\"aria-label\":t.alt,children:!t.url&&isCanvas&&/*#__PURE__*/_jsx(\"div\",{style:{fontFamily:\"Urbanist, sans-serif\",fontSize:10,fontWeight:600,letterSpacing:\"0.14em\",textTransform:\"uppercase\",color:effSubtle,textAlign:\"center\",padding:8},children:t.alt})},i))})]});const textColumn=/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:20,justifyContent:\"center\"},children:[eyebrow.trim().length>0&&/*#__PURE__*/_jsx(\"div\",{style:{...revealStyle(0),fontFamily:\"Urbanist, sans-serif\",fontSize:13,fontWeight:600,letterSpacing:\"0.22em\",textTransform:\"uppercase\",color:accentColor},children:eyebrow}),headline.trim().length>0&&/*#__PURE__*/_jsx(\"div\",{style:{...revealStyle(60),fontFamily:\"Urbanist, sans-serif\",fontSize:\"clamp(28px, 3vw, 44px)\",fontWeight:700,lineHeight:1.1,letterSpacing:\"-0.02em\",color:effText,whiteSpace:\"pre-wrap\"},children:headline}),paragraphs.map((p,i)=>/*#__PURE__*/_jsx(\"div\",{style:{...revealStyle(120+i*60),fontFamily:\"Urbanist, sans-serif\",fontSize:17,lineHeight:1.6,color:effSubtle},children:p},i)),isQuoteInset&&insetQuote.trim().length>0&&/*#__PURE__*/_jsxs(\"div\",{style:{...revealStyle(280),borderLeft:`2px solid ${accentColor}`,paddingLeft:24,margin:\"8px 0\"},children:[/*#__PURE__*/_jsxs(\"div\",{style:{fontFamily:\"Urbanist, sans-serif\",fontSize:22,fontWeight:600,lineHeight:1.4,letterSpacing:\"-0.01em\",color:effText},children:['\"',insetQuote,'\"']}),insetAttribution.trim().length>0&&/*#__PURE__*/_jsxs(\"div\",{style:{fontFamily:\"Urbanist, sans-serif\",fontSize:13,color:effSubtle,marginTop:8},children:[\"— \",insetAttribution]})]}),chipNote.trim().length>0&&/*#__PURE__*/_jsxs(\"div\",{style:{...revealStyle(320),display:\"inline-flex\",alignSelf:\"flex-start\",alignItems:\"center\",gap:6,padding:\"8px 12px\",backgroundColor:`${accentColor}1a`,borderRadius:8,fontFamily:\"Urbanist, sans-serif\",fontSize:12,color:effSubtle},children:[/*#__PURE__*/_jsx(\"span\",{style:{color:accentColor},children:\"ⓘ\"}),chipNote]}),inlineCtaLabel.trim().length>0&&/*#__PURE__*/_jsx(\"a\",{href:inlineCtaHref,onMouseEnter:()=>setCtaHovered(true),onMouseLeave:()=>setCtaHovered(false),style:{...revealStyle(380),textDecoration:\"none\",alignSelf:\"flex-start\",color:accentColor,fontFamily:\"Urbanist, sans-serif\",fontSize:15,fontWeight:600,letterSpacing:\"0.02em\",borderBottom:`1px solid ${ctaHovered?accentColor:\"transparent\"}`,transition:`border-color 220ms ${ease}`,paddingBottom:2},children:inlineCtaLabel})]});return /*#__PURE__*/_jsxs(\"div\",{ref:containerRef,style:{width:\"100%\",padding:\"0px 24px 96px\",boxSizing:\"border-box\"},children:[/*#__PURE__*/_jsx(\"div\",{\"data-smco-tcb-grid\":true,style:{maxWidth:maxWidth,margin:\"0 auto\",display:\"grid\",gridTemplateColumns:isQuoteInset?\"1fr\":\"1fr 1fr\",gap:isQuoteInset?0:72,alignItems:\"center\"},children:isQuoteInset?textColumn:imageFirst?/*#__PURE__*/_jsxs(_Fragment,{children:[photoColumn,textColumn]}):/*#__PURE__*/_jsxs(_Fragment,{children:[textColumn,photoColumn]})}),/*#__PURE__*/_jsx(\"style\",{children:`@media (max-width: 880px) { [data-smco-tcb-grid] { grid-template-columns: 1fr !important; gap: 40px !important; } } @media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; clip-path: none !important; } }`})]});}addPropertyControls(TwoColumnBody,{variant:{type:ControlType.Enum,title:\"Variant\",options:[\"image-left\",\"image-right\",\"quote-inset\"],defaultValue:\"image-left\"},eyebrow:{type:ControlType.String,title:\"Eyebrow\",defaultValue:\"\"},headline:{type:ControlType.String,title:\"Headline\",displayTextArea:true,defaultValue:\"\"},body:{type:ControlType.String,title:\"Body (paragraphs, blank line between)\",displayTextArea:true,defaultValue:\"\"},inlineCtaLabel:{type:ControlType.String,title:\"Inline CTA Label\",defaultValue:\"\"},inlineCtaHref:{type:ControlType.Link,title:\"Inline CTA Link\"},photoUrl:{type:ControlType.Image,title:\"Photo (empty = placeholder)\"},photoAlt:{type:ControlType.String,title:\"Photo Alt / Placeholder Label\",defaultValue:\"\"},photoTreatment:{type:ControlType.Enum,title:\"Photo Treatment\",options:[\"default\",\"saturated\",\"heavy\"],defaultValue:\"default\"},photoAspect:{type:ControlType.String,title:\"Photo Aspect (e.g. 4 / 5)\",defaultValue:\"4 / 5\"},thumbnails:{type:ControlType.String,title:\"Thumbnails (one per line: url | alt — use - for placeholder)\",displayTextArea:true,defaultValue:\"\"},chipNote:{type:ControlType.String,title:\"Chip Note (Optional)\",defaultValue:\"\"},insetQuote:{type:ControlType.String,title:\"Inset Quote\",displayTextArea:true,defaultValue:\"\",hidden:props=>props.variant!==\"quote-inset\"},insetAttribution:{type:ControlType.String,title:\"Inset Attribution\",defaultValue:\"\",hidden:props=>props.variant!==\"quote-inset\"},maxWidth:{type:ControlType.Number,title:\"Max Width\",defaultValue:1100,min:600,max:1600,step:20},accentColor:{type:ControlType.Color,title:\"Accent (Sage)\",defaultValue:\"#96c0a5\"},textColor:{type:ControlType.Color,title:\"Text\",defaultValue:\"#0e0e0e\"},textDarkColor:{type:ControlType.Color,title:\"Text Dark\",defaultValue:\"#f4f4f4\"},subtleTextColor:{type:ControlType.Color,title:\"Text Subtle\",defaultValue:\"rgba(14, 14, 14, 0.62)\"},subtleTextDarkColor:{type:ControlType.Color,title:\"Text Subtle Dark\",defaultValue:\"rgba(244, 244, 244, 0.7)\"},hairlineColor:{type:ControlType.Color,title:\"Hairline\",defaultValue:\"rgba(14, 14, 14, 0.1)\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"TwoColumnBody\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"640\",\"framerSupportedLayoutHeight\":\"auto\",\"framerSupportedLayoutWidth\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./TwoColumnBody.map"],"mappings":"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"}