{"version":3,"file":"NewsletterToast.CXjdCF-W.mjs","names":["React.useState","React.useRef","_Fragment"],"sources":["https:/framerusercontent.com/modules/2C6kBz8n5ISHH7JbxmRV/R4T9WE15wVvr4vt0p7ez/NewsletterToast.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";/**\n * HEAVYT — Newsletter Signup Toast\n * -----------------------------------------------------------------------\n * Desktop: a floating pill-cornered card, pinned to a corner (right by\n * default — your research says right converts better than left).\n * Mobile (<=640px): becomes a bottom sheet — full width, flush to the\n * bottom edge, rounded top corners only, slides up on a quick transition\n * instead of fading in from a corner offset. That's what was getting cut\n * off before: a corner-anchored card doesn't make sense once the viewport\n * is narrower than the card's intended margins.\n *\n * Input/button styling matches the reference NewsletterSignup component\n * exactly (white input, pill radius, coral button, Acumin Pro) — only\n * applied within this toast's own form, nothing else was restyled.\n *\n * Submission uses the same CORS-safe technique as the reference: body as\n * URLSearchParams with no manually-set Content-Type header, so the\n * request qualifies as a \"simple request\" and skips the preflight that\n * was blocking the old JSON/no-cors approach. This also means we get a\n * real, readable response.ok instead of an opaque no-cors result.\n *\n * GA4 events (requires gtag.js already on the site), both carrying a\n * signup_location param so toast vs. inline-form conversion can be\n * compared once the inline NewsletterSignup component fires the same\n * events with signup_location: \"inline\":\n *   - \"signup_view\"   { signup_location: \"toast\" } — toast becomes visible\n *   - \"signup_submit\" { signup_location: \"toast\" } — form submitted and\n *      Zapier returned 200. Named \"submit,\" not \"success\" — Zapier's\n *      Catch Hook responds on receipt, before the Mailchimp step runs, so\n *      this confirms delivery to Zapier, not confirmed list membership.\n * Mark \"signup_submit\" as a Key Event in GA4 admin.\n *\n * TESTING: Framer has no native \"clear this visitor's memory\" button.\n * Turn on the \"Testing Mode\" property control while you're testing in\n * Preview — it ignores the dismiss/subscribed memory entirely so the\n * toast reappears on every scroll-trigger regardless of prior clicks.\n * Turn it back off before publishing. (The manual alternative is opening\n * devtools console on the preview tab and running:\n *   localStorage.removeItem('heavyt_newsletter_dismissed_until');\n *   localStorage.removeItem('heavyt_newsletter_subscribed');\n * — Testing Mode just saves you from doing that every time.)\n * -----------------------------------------------------------------------\n */const COLORS={paper:\"#F2F0EA\",coral:\"#EC5840\",ink:\"#1A2238\",blue:\"#3A4C7E\"};const STORAGE_DISMISSED_UNTIL=\"heavyt_newsletter_dismissed_until\";const STORAGE_SUBSCRIBED=\"heavyt_newsletter_subscribed\";const MOBILE_BREAKPOINT=640;function trackEvent(name,params={}){try{if(typeof window.gtag===\"function\"){window.gtag(\"event\",name,params);return;}if(Array.isArray(window.dataLayer)){window.dataLayer.push({event:name,...params});}}catch(e){}}function isSuppressed(){try{if(localStorage.getItem(STORAGE_SUBSCRIBED)===\"true\")return true;const until=localStorage.getItem(STORAGE_DISMISSED_UNTIL);if(until&&Date.now()<parseInt(until,10))return true;return false;}catch(e){return false;}}function setDismissed(days){try{const until=Date.now()+days*24*60*60*1e3;localStorage.setItem(STORAGE_DISMISSED_UNTIL,String(until));}catch(e){}}function setSubscribed(){try{localStorage.setItem(STORAGE_SUBSCRIBED,\"true\");}catch(e){}}export default function NewsletterToast(props){const{headline,subheadline,placeholder,buttonLabel,successMessage,webhookUrl,scrollTrigger,dismissDays,position,successDuration,testingMode,backgroundColor,textColor,accentColor}=props;const onCanvas=RenderTarget.current()===RenderTarget.canvas;const[visible,setVisible]=React.useState(onCanvas);const[closing,setClosing]=React.useState(false);const[isMobile,setIsMobile]=React.useState(false);const[email,setEmail]=React.useState(\"\");const[status,setStatus]=React.useState(\"idle\");const hasFiredViewEvent=React.useRef(false);// Track viewport for the sheet/card switch\nReact.useEffect(()=>{if(typeof window===\"undefined\")return;const mq=window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT}px)`);setIsMobile(mq.matches);const handler=e=>setIsMobile(e.matches);mq.addEventListener?mq.addEventListener(\"change\",handler):mq.addListener(handler);return()=>{mq.removeEventListener?mq.removeEventListener(\"change\",handler):mq.removeListener(handler);};},[]);React.useEffect(()=>{if(onCanvas)return;if(!testingMode&&isSuppressed())return;function handleScroll(){const scrollableHeight=document.documentElement.scrollHeight-window.innerHeight;if(scrollableHeight<=0)return;const pct=window.scrollY/scrollableHeight*100;if(pct>=scrollTrigger){setVisible(true);if(!testingMode)window.removeEventListener(\"scroll\",handleScroll);}}window.addEventListener(\"scroll\",handleScroll,{passive:true});handleScroll();return()=>window.removeEventListener(\"scroll\",handleScroll);},[scrollTrigger,onCanvas,testingMode]);React.useEffect(()=>{if(visible&&!hasFiredViewEvent.current&&!onCanvas){trackEvent(\"signup_view\",{signup_location:\"toast\"});hasFiredViewEvent.current=true;}},[visible,onCanvas]);function handleClose(){setClosing(true);if(!testingMode)setDismissed(dismissDays);window.setTimeout(()=>{setVisible(false);setClosing(false);},220);}async function handleSubmit(e){e.preventDefault();if(!email||!email.includes(\"@\")){setStatus(\"error\");return;}if(!webhookUrl){console.warn(\"HEAVYT Newsletter Toast: no webhook URL configured\");setStatus(\"error\");return;}setStatus(\"loading\");try{// Field name must be EMAIL (uppercase) — same Zap the site's\n// inline NewsletterSignup component uses. URLSearchParams body\n// with no manual Content-Type header keeps this a CORS\n// \"simple request\" so we get a real, readable response.\nconst body=new URLSearchParams({EMAIL:email});const response=await fetch(webhookUrl,{method:\"POST\",body});if(response.ok){setStatus(\"success\");if(!testingMode)setSubscribed();trackEvent(\"signup_submit\",{signup_location:\"toast\"});window.setTimeout(()=>{setClosing(true);window.setTimeout(()=>{setVisible(false);setClosing(false);},220);},successDuration);}else{setStatus(\"error\");}}catch(err){setStatus(\"error\");}}if(!visible)return null;// ---- Layout: sheet on mobile, floating card on desktop ----\nconst desktopPositions={\"bottom-left\":{left:24,bottom:24},\"bottom-right\":{right:24,bottom:24},\"bottom-center\":{left:\"50%\",bottom:24,transform:\"translateX(-50%)\"}};const containerStyle=isMobile?{position:\"fixed\",zIndex:9999,left:0,right:0,bottom:0,width:\"100%\",borderRadius:\"24px 24px 0 0\",padding:\"22px 20px calc(20px + env(safe-area-inset-bottom))\",backgroundColor,color:textColor,boxShadow:\"0 -8px 28px rgba(0,0,0,0.25)\",transform:`translateY(${closing?\"100%\":\"0%\"})`,transition:\"transform 220ms cubic-bezier(0.2, 0.8, 0.2, 1)\",fontFamily:\"Acumin Pro, -apple-system, BlinkMacSystemFont, sans-serif\"}:{position:\"fixed\",zIndex:9999,width:380,maxWidth:\"calc(100vw - 32px)\",borderRadius:24,padding:\"22px 24px\",backgroundColor,color:textColor,boxShadow:\"0 12px 32px rgba(0,0,0,0.25)\",opacity:closing?0:1,transition:\"opacity 220ms ease, transform 220ms ease\",fontFamily:\"Acumin Pro, -apple-system, BlinkMacSystemFont, sans-serif\",...desktopPositions[position],transform:`${desktopPositions[position].transform||\"\"} translateY(${closing?\"10px\":\"0px\"})`};return /*#__PURE__*/_jsxs(\"div\",{style:containerStyle,children:[/*#__PURE__*/_jsx(\"button\",{onClick:handleClose,\"aria-label\":\"Dismiss\",style:{position:\"absolute\",top:12,right:14,background:\"none\",border:\"none\",color:textColor,opacity:.6,fontSize:20,cursor:\"pointer\",lineHeight:1,padding:4},children:\"\\xd7\"}),status===\"success\"?/*#__PURE__*/_jsx(\"div\",{style:{paddingRight:8},children:/*#__PURE__*/_jsx(\"div\",{style:{fontFamily:\"Ciclo Display, serif\",fontSize:18},children:successMessage})}):/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"div\",{style:{fontFamily:\"Ciclo Display, serif\",fontSize:20,marginBottom:6,paddingRight:16},children:headline}),/*#__PURE__*/_jsx(\"div\",{style:{fontSize:14,opacity:.85,marginBottom:16,lineHeight:1.4},children:subheadline}),/*#__PURE__*/_jsxs(\"form\",{onSubmit:handleSubmit,style:{display:\"flex\",gap:10,alignItems:\"center\"},children:[/*#__PURE__*/_jsx(\"input\",{type:\"email\",value:email,onChange:e=>{setEmail(e.target.value);if(status===\"error\")setStatus(\"idle\");},placeholder:placeholder,disabled:status===\"loading\",style:{flex:1,minWidth:0,height:47,padding:\"0 18px\",borderRadius:24,border:`1px solid ${status===\"error\"?accentColor:\"transparent\"}`,background:\"#ffffff\",color:COLORS.ink,fontSize:15,fontFamily:\"Acumin Pro, sans-serif\",outline:\"none\"}}),/*#__PURE__*/_jsx(\"button\",{type:\"submit\",disabled:status===\"loading\",style:{height:47,padding:\"0 22px\",borderRadius:24,border:\"none\",background:accentColor,color:\"#ffffff\",fontWeight:600,fontSize:15,fontFamily:\"Acumin Pro, sans-serif\",cursor:status===\"loading\"?\"default\":\"pointer\",whiteSpace:\"nowrap\",flexShrink:0,opacity:status===\"loading\"?.7:1},children:status===\"loading\"?\"…\":buttonLabel})]}),status===\"error\"&&/*#__PURE__*/_jsx(\"div\",{style:{fontSize:12,marginTop:8,color:accentColor},children:!webhookUrl?\"Webhook URL not configured.\":\"Enter a valid email.\"})]})]});}NewsletterToast.defaultProps={headline:\"Come with me. This is cool.\",subheadline:\"Feature, review, recipe, and a short voice note — every other week.\",placeholder:\"name@email.com\",buttonLabel:\"Join\",successMessage:\"You're in. Check your inbox.\",webhookUrl:\"https://hooks.zapier.com/hooks/catch/27463379/uvcz31h/\",scrollTrigger:40,dismissDays:21,position:\"bottom-right\",successDuration:2200,testingMode:false,backgroundColor:COLORS.blue,textColor:COLORS.paper,accentColor:COLORS.coral};addPropertyControls(NewsletterToast,{headline:{type:ControlType.String,title:\"Headline\"},subheadline:{type:ControlType.String,title:\"Subheadline\",displayTextArea:true},placeholder:{type:ControlType.String,title:\"Placeholder\"},buttonLabel:{type:ControlType.String,title:\"Button\"},successMessage:{type:ControlType.String,title:\"Success message\"},successDuration:{type:ControlType.Number,title:\"Success duration\",defaultValue:2200,min:1e3,max:1e4,step:200,unit:\"ms\",displayStepper:true},webhookUrl:{type:ControlType.String,title:\"Zapier Webhook URL\",placeholder:\"https://hooks.zapier.com/hooks/catch/...\"},scrollTrigger:{type:ControlType.Number,title:\"Scroll trigger %\",min:0,max:100,step:5,unit:\"%\"},dismissDays:{type:ControlType.Number,title:\"Dismiss for (days)\",min:1,max:90,step:1},position:{type:ControlType.Enum,title:\"Position (desktop)\",options:[\"bottom-left\",\"bottom-right\",\"bottom-center\"],optionTitles:[\"Bottom left\",\"Bottom right\",\"Bottom center\"]},testingMode:{type:ControlType.Boolean,title:\"Testing Mode\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"},backgroundColor:{type:ControlType.Color,title:\"Background\"},textColor:{type:ControlType.Color,title:\"Text\"},accentColor:{type:ControlType.Color,title:\"Accent (button)\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"NewsletterToast\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./NewsletterToast.map"],"mappings":"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"}