{"version":3,"file":"ReputationDemo.COLIWOf9.mjs","names":["React.useCallback","React","_jsxs","_Fragment","__esmMin","init_ssg_sandbox_shims","init_npm_react_18_3_1","window","npm_react_18_3_1_exports","init_jsx_runtime","ne","p","addPropertyControls","init_framer_B1b760uK","RenderTarget","ControlType","init_SectionPills","SectionPills","usePrefersReducedMotion","reduced","setReduced","useState","useEffect","query","onChange","event","useInView","state","setState","el","ref","observer","visible","entries","prev","useConveyor","tick","setTick","seriesRef","useRef","SERIES0","kickRef","tickRef","carryRef","active","raf","beat","landAtRef","NEXT_AFTER_LAND_MS","elapsed","start","frame","now","length","series","slid","valueFor","kick","s","progress","KICK_MS","eased","draw","ReputationDemo","rootRef","panelRef","linksRef","feedRef","guardsRef","plotRef","plotHeightRef","lineRef","areaRef","dotRef","dotCoreRef","dotRingRef","tailsRef","headRef","routeRef","STILL_LAND_AT","firedRef","modeRef","links","setLinks","ids","useId","gradientId","clipId","reducedMotion","isStaticRender","live","motion","plot","measure","line","pathFor","phase","areaFor","a","b","y","displayY","DOT_X","SPAN","fired","row","guardIndexAt","route","t","LAUNCH_AT","head","flightShare","cStart","tails","retract","RETRACT_MS","i","TAILS","segment","link","headEl","point","scale","edgeScale","name","x","w","outcome","dot","from","to","play","hitNow","STILL_RIPPLE_AT","EASE_OUT","nextValue","eventAt","nextTick","inView","entered","entering","drawClass","dotClass","newest","rows","VISIBLE","targetIndex","panel","feed","guards","f","g","o","x1","y1","ROW","x2","y2","reach","nameEl","nameLeft","nameW","range","text","box","x3","ex","ey","lane","corner","c","entry","current","useIsoLayoutEffect","pathA","pathC","la","lc","total","flight","FLIGHT_MAX_MS","FLIGHT_MIN_MS","FLIGHT_SPEED","linkClass","key","signal","sans","ink","style","css","HIDDEN","tail","verdict","accent","areaPath","trendPath","TREND_REST","Icon","SAFEGUARD_ICON","seq","SAFEGUARDS","j","useLayoutEffect","muted","hairline","surface","serif","TREND","STEP","profileAt","OUTCOME_AT","OUTCOME_MS","RAMP_IN","RAMP_OUT","STILL_LINK_AT","OUTCOME_STEP","EVENTS","init_ReputationDemo","value","ys","v","r","last","wobble","seed","l","paths","s0","s1","opacity","d","keyframes","options"],"sources":["https:/framerusercontent.com/modules/BeDPZtbunOCE2aYwl5Yl/s7bckbCVJnRwaw3LEGO4/ReputationDemo.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\";import SectionPills from\"https://framerusercontent.com/modules/rAuPBs0dgwb3isIlBisa/lE47VbnaQ0opAaXF5u9d/SectionPills.js\";const{useEffect,useId,useLayoutEffect,useRef,useState}=React;const useIsoLayoutEffect=typeof window===\"undefined\"?useEffect:useLayoutEffect;/* ── ReputationDemo ──\n * Homepage deliverability panel: the reputation verdict over a live trend,\n * then what Loops handled beside the safeguards that handled it. Each beat\n * tells one event as one continuous gesture. The email arrives and its\n * outcome resolves; a signal leaves the outcome, draws the link into the\n * safeguard that handled it, dives into its icon (which ripples), lights the\n * name while passing behind it, climbs the panel's right edge and lands on\n * the trend's newest point, which takes the event's value. Underneath, the\n * trend is a conveyor that never stops. Groups are held apart by white\n * space, not borders or fills. All figures are illustrative.\n */const ink=\"var(--token-e5dd00a8-a1c8-408b-b050-1cf1ab615219, #1c2024)\";const muted=\"var(--token-2a5f3230-4a8b-49e0-8e32-9494e91450f2, #60646c)\";const hairline=\"var(--token-a2121e4a-7ceb-44ca-a232-5160aa2a5ff2, #e8e8ec)\";const surface=\"var(--token-83f5fefd-8241-47f8-8f7c-5e6247fea9aa, #ffffff)\";const accent=\"var(--token-95e1bfcc-02e8-4fdb-8080-e342e04d4d5d, #fc5200)\";const sans=\"ui-sans-serif, system-ui, -apple-system, sans-serif\";const serif=\"Didot, 'Bodoni 72', 'Iowan Old Style', 'Palatino Linotype', Georgia, serif\";/* Trend profile in viewBox units (0–100 x, y down), rising into the high\n * band with a hand-drawn wobble. The viewBox is cropped to the line. */const TREND=[[0,24.2],[3.4,23.6],[6.9,23.9],[10.3,22.8],[13.8,22.4],[17.2,22.9],[20.7,21.6],[24.1,21.2],[27.6,21.4],[31,20.1],[34.5,19.4],[37.9,19.7],[41.4,18.3],[44.8,17.1],[48.3,16.4],[51.7,15.2],[55.2,14.6],[58.6,13.1],[62.1,12.4],[65.5,11.9],[69,11.2],[72.4,11.4],[75.9,10.3],[79.3,9.6],[82.8,9.8],[86.2,8.4],[89.7,7.6],[93.1,6.9],[96.6,5.8],[100,5.1]];const SPAN=27;const STEP=100/(TREND.length-1);const TREND_REST=5.6;/* The rising profile is the chart's shape and never scrolls away; live\n * values flow through it as deviations from TREND_REST, so the left of the\n * line stays low under the verdict no matter how long the demo runs. */const profileAt=x=>{if(x<=0)return TREND[0][1];if(x>=100)return TREND[TREND.length-1][1];const i=Math.min(TREND.length-2,Math.floor(x/STEP));const t=(x-i*STEP)/STEP;return TREND[i][1]+(TREND[i+1][1]-TREND[i][1])*t;};const displayY=(value,x)=>Math.min(SPAN-1,Math.max(1.5,profileAt(x)+(value-TREND_REST)));/* One extra point waits off the right edge and scrolls into view over the\n * beat, so the line is always moving. */const SERIES0=Array.from({length:TREND.length+1},()=>TREND_REST);/* `phase` is how far the conveyor has carried the window toward the next\n * point (0–1). Points sit at (i - phase) * STEP. */const pathFor=(ys,phase)=>ys.map((y,i)=>{const x=(i-phase)*STEP;return`${i===0?\"M\":\"L\"}${+x.toFixed(3)} ${+displayY(y,x).toFixed(2)}`;}).join(\" \");const areaFor=(line,ys,phase)=>`${line} L${+((ys.length-1-phase)*STEP).toFixed(3)} ${SPAN} L${+(-phase*STEP).toFixed(3)} ${SPAN} Z`;const trendPath=pathFor(SERIES0,0);const areaPath=areaFor(trendPath,SERIES0,0);const DOT_X=100;const ROW=38;/* One beat per event, in ms from the row landing:\n *     0  the email's row rises in\n *   280  its outcome resolves beside it\n *   560  a signal leaves the outcome and travels one route at a steady\n *        speed, easing out of the outcome and into the dot (900–1600ms by\n *        route length): it draws the link to the safeguard, dives into the\n *        icon (ripple), lights the name while behind it, then climbs the\n *        panel's right edge\n *  land  it lands on the trend's newest point, which takes the value\n * The next email arrives NEXT_AFTER_LAND_MS after the landing, while the\n * point is still settling, so the beat never idles. Without a route (stacked\n * columns) or under reduced motion the chain keeps the fixed STILL_ times. */const NEXT_AFTER_LAND_MS=380;const OUTCOME_AT=280;const OUTCOME_MS=300;const LAUNCH_AT=560;const FLIGHT_SPEED=.7;const FLIGHT_MIN_MS=900;const FLIGHT_MAX_MS=1600;const RAMP_IN=.16;const RAMP_OUT=.26;const RETRACT_MS=260;const KICK_MS=420;const STILL_LINK_AT=640;const STILL_RIPPLE_AT=1e3;const STILL_LAND_AT=1800;const EASE_OUT=\"cubic-bezier(0.22, 1, 0.36, 1)\";/* The signal's tail: stacked dashes that share the head, brightest first. */const TAILS=[{length:24,width:2,opacity:.95},{length:70,width:1.75,opacity:.4},{length:150,width:1.5,opacity:.15}];/* Distance share covered at time share `t` of a flight: accelerate, cruise,\n * settle. Velocity stays continuous, so the signal never jumps or stalls. */const flightShare=t=>{if(t<=0)return 0;if(t>=1)return 1;const v=1/(1-(RAMP_IN+RAMP_OUT)/2);if(t<RAMP_IN)return .5*v*t*t/RAMP_IN;if(t<=1-RAMP_OUT)return .5*v*RAMP_IN+v*(t-RAMP_IN);const r=1-t;return 1-.5*v*r*r/RAMP_OUT;};/* How each outcome moves the newest trend point (viewBox y, down is worse):\n * delivered mail lifts it, pacing holds it, a retry or a suppressed bounce\n * dips it before the next lift. */const OUTCOME_STEP={Delivered:-2.2,Batched:-.9,Retrying:1.5,Suppressed:1};const nextValue=(series,outcome,seed)=>{const last=series[series.length-1];const wobble=(seed*7919%7-3)*.08;const value=last+(OUTCOME_STEP[outcome]??0)+(TREND_REST-last)*.16+wobble;return Math.min(11,Math.max(3.6,value));};const retryIcon=/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"path\",{d:\"M21 12a9 9 0 1 1-2.64-6.36L21 8\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M21 3v5h-5\"})]});const gaugeIcon=/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"path\",{d:\"m12 14 4-4\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M3.34 19a10 10 0 1 1 17.32 0\"})]});const suppressIcon=/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"circle\",{cx:\"12\",cy:\"12\",r:\"9\"}),/*#__PURE__*/_jsx(\"path\",{d:\"m5.6 5.6 12.8 12.8\"})]});const reviewIcon=/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"circle\",{cx:\"9\",cy:\"7\",r:\"4\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M2 21v-1a6 6 0 0 1 6-6h2\"}),/*#__PURE__*/_jsx(\"path\",{d:\"m15 18 2 2 4-4\"})]});const SAFEGUARDS=[{name:\"Manual review\",icon:reviewIcon},{name:\"Send pacing\",icon:gaugeIcon},{name:\"Bounce suppression\",icon:suppressIcon},{name:\"Retries\",icon:retryIcon}];const SAFEGUARD_ICON=Object.fromEntries(SAFEGUARDS.map(s=>[s.name,s.icon]));/* No email addresses: rows name the email, never the recipient. */const EVENTS=[{email:\"Welcome email\",outcome:\"Suppressed\",safeguard:\"Bounce suppression\"},{email:\"Password reset\",outcome:\"Retrying\",safeguard:\"Retries\"},{email:\"October update\",outcome:\"Suppressed\",safeguard:\"Bounce suppression\"},{email:\"October update\",outcome:\"Batched\",safeguard:\"Send pacing\"},{email:\"Password reset\",outcome:\"Delivered\",safeguard:\"Retries\"}];const eventAt=tick=>EVENTS[(tick%EVENTS.length+EVENTS.length)%EVENTS.length];const guardIndexAt=tick=>SAFEGUARDS.findIndex(s=>s.name===eventAt(tick).safeguard);const VISIBLE=SAFEGUARDS.length;function usePrefersReducedMotion(){const[reduced,setReduced]=useState(false);useEffect(()=>{const query=window.matchMedia(\"(prefers-reduced-motion: reduce)\");setReduced(query.matches);const onChange=event=>setReduced(event.matches);query.addEventListener?.(\"change\",onChange);return()=>query.removeEventListener?.(\"change\",onChange);},[]);return reduced;}/* `entered` latches so the trend draws once; `inView` pauses the feed\n * while the panel is off screen. */function useInView(ref){const[state,setState]=useState({inView:false,entered:false});useEffect(()=>{const el=ref.current;if(!el||typeof IntersectionObserver===\"undefined\"){setState({inView:true,entered:true});return;}const observer=new IntersectionObserver(entries=>{const visible=entries[0]?.isIntersecting??false;setState(prev=>({inView:visible,entered:prev.entered||visible}));},{threshold:.2});observer.observe(el);return()=>observer.disconnect();},[ref]);return state;}/* The conveyor loop owns time: it advances the trend every frame, lands a\n * feed event each beat, and at the beat's landing time kicks the arriving\n * point to the event's value, so rows, signal and line share one clock. A\n * beat lasts until shortly after its landing. Off screen the clock stops;\n * under reduced motion it keeps the beat but steps instead of sliding. */function useConveyor(active,draw,valueFor,reduced,landAtRef){const[tick,setTick]=useState(0);const seriesRef=useRef(SERIES0);const kickRef=useRef(null);const tickRef=useRef(0);const carryRef=useRef(0);useEffect(()=>{if(!active)return;let raf=0;const beat=()=>landAtRef.current+NEXT_AFTER_LAND_MS;/* A beat interrupted mid-chain cannot be resumed: its effects kept\n         * playing while the clock was stopped, so start the next beat fresh. */let elapsed=carryRef.current>0?beat():0;let start=performance.now()-elapsed;const frame=now=>{elapsed=now-start;while(elapsed>=beat()){const length=beat();start+=length;elapsed-=length;tickRef.current+=1;const series=seriesRef.current.slice();if(kickRef.current)series[series.length-1]=kickRef.current.to;/* Reduced motion steps the series at landing instead of sliding it here. */const slid=reduced?series:[...series.slice(1),series[series.length-1]];seriesRef.current=slid;kickRef.current={from:slid[slid.length-1],to:valueFor(tickRef.current,slid)};setTick(tickRef.current);}const kick=kickRef.current;if(kick&&elapsed>=landAtRef.current){if(reduced){const s=seriesRef.current;seriesRef.current=[...s.slice(1,-1),kick.to,kick.to];kickRef.current=null;}else{const progress=Math.min(1,(elapsed-landAtRef.current)/KICK_MS);const eased=1-Math.pow(1-progress,3);seriesRef.current[seriesRef.current.length-1]=kick.from+(kick.to-kick.from)*eased;if(progress>=1)kickRef.current=null;}}draw(seriesRef.current,reduced?0:Math.min(1,elapsed/beat()),elapsed,tickRef.current);raf=requestAnimationFrame(frame);};raf=requestAnimationFrame(frame);return()=>{cancelAnimationFrame(raf);carryRef.current=elapsed;};},[active,draw,valueFor,reduced,landAtRef]);return tick;}const Icon=({paths})=>/*#__PURE__*/_jsx(\"svg\",{className:\"repIcon\",width:\"16\",height:\"16\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"1.8\",strokeLinecap:\"round\",strokeLinejoin:\"round\",\"aria-hidden\":\"true\",children:paths});const css=`\n.repRoot { container-type: inline-size; }\n.repPanel { position: relative; border: 1px solid ${hairline}; border-radius: 14px; background: ${surface}; overflow: hidden; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.025), 0 18px 44px rgba(0, 0, 0, 0.055), inset 0 1px 0 color-mix(in srgb, var(--token-83f5fefd-8241-47f8-8f7c-5e6247fea9aa, rgb(255, 255, 255)) 90%, transparent); }\n.repHero { position: relative; height: 136px; padding: 22px 24px 0; }\n.repWord { position: relative; z-index: 1; font-family: ${serif}; font-weight: 400; font-size: clamp(30px, 5cqi, 44px); line-height: 1.02; letter-spacing: -0.015em; color: ${ink}; }\n.repPlot { position: absolute; top: 6px; right: 24px; bottom: 14px; left: 24px; container-type: size; }\n.repPlot svg { position: absolute; inset: 0; width: 100%; height: 100%; display: block; overflow: visible; }\n.repDotAnchor { position: absolute; width: 0; height: 0; }\n.repDot, .repDotRing { position: absolute; width: 9px; height: 9px; margin: -4.5px 0 0 -4.5px; border-radius: 50%; box-sizing: border-box; }\n.repDot { background: ${accent}; }\n.repDotRing { border: 1.5px solid ${accent}; opacity: 0; pointer-events: none; }\n.repLinks { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }\n.repLink { fill: none; stroke: ${accent}; stroke-width: 1.25; stroke-linecap: round; opacity: 0.38; }\n.repLinkOut { opacity: 0; transition: opacity 280ms ${EASE_OUT}; }\n.repLinkFirst { animation: repFadeIn 420ms ${EASE_OUT} 900ms both; }\n.repLinkStill { animation: repFadeIn 300ms ease ${STILL_LINK_AT}ms both; }\n.repTail { fill: none; stroke: ${accent}; stroke-linecap: round; }\n.repSignal { fill: ${accent}; }\n.repSignalHalo { fill: ${accent}; opacity: 0.18; }\n.repCols { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 0 56px; padding: 20px 24px 22px; }\n.repHead { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding-bottom: 4px; font-size: 14px; font-weight: 500; color: ${ink}; }\n.repMeta { font-size: 12.5px; font-weight: 400; color: ${muted}; }\n.repFeed { position: relative; overflow: hidden; }\n.repRow { display: grid; grid-template-columns: 16px minmax(0, 1fr) auto; column-gap: 12px; align-items: center; height: ${ROW}px; font-size: 13.5px; color: ${ink}; }\n.repFeed .repRow { position: absolute; top: 0; right: 0; left: 0; transition: transform 420ms ${EASE_OUT}, opacity 420ms ${EASE_OUT}; }\n.repName { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 500; }\n/* A safeguard's name is painted by a gradient so the signal can light it\n * while passing behind; at rest only the ink part shows. */\n@supports ((-webkit-background-clip: text) or (background-clip: text)) {\n  .repGuards .repName { justify-self: start; max-width: 100%; background-image: linear-gradient(90deg, ${ink} 0%, ${ink} 42%, ${accent} 50%, ${ink} 58%, ${ink} 100%); background-size: 300% 100%; background-position: 100% 0; background-repeat: no-repeat; -webkit-background-clip: text; background-clip: text; color: transparent; }\n}\n.repOutcome { font-size: 12.5px; color: ${muted}; white-space: nowrap; transition: color 300ms ease; }\n.repLive .repOutcome { color: ${ink}; }\n.repIconWrap { position: relative; display: block; width: 16px; height: 16px; }\n.repRing { position: absolute; inset: -6px; border-radius: 50%; border: 1.5px solid ${accent}; opacity: 0; pointer-events: none; }\n.repIcon { display: block; color: ${muted}; transition: color 240ms ease; }\n.repRow[data-lit=\"1\"] .repIcon { color: ${accent}; }\n.repRise { animation: repRise 420ms ${EASE_OUT} backwards; }\n.repEnter { animation: repRise 420ms ${EASE_OUT} both; }\n@keyframes repRise { from { opacity: 0; translate: 0 -8px; } }\n.repArrive .repOutcome { animation: repOutcomeIn ${OUTCOME_MS}ms ${EASE_OUT} ${OUTCOME_AT}ms both; }\n@keyframes repOutcomeIn { from { opacity: 0; translate: 6px 0; } }\n/* The trend reveals via a clip wipe: the plot's non-uniform viewBox mangles\n * dash patterns under non-scaling strokes. */\n.repDrawWait { clip-path: inset(0 100% 0 0); }\n.repDrawIn { animation: repReveal 900ms cubic-bezier(0.23, 1, 0.32, 1) both; }\n@keyframes repReveal { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0 0 0 0); } }\n.repDotWait { opacity: 0; }\n.repDotIn { animation: repDotIn 320ms ${EASE_OUT} 760ms both; }\n@keyframes repDotIn { from { opacity: 0; scale: 0.4; } }\n@keyframes repFadeIn { from { opacity: 0; } }\n@container (max-width: 559px) {\n  .repHero { height: 104px; padding: 18px 16px 0; }\n  .repPlot { right: 16px; left: 16px; }\n  .repCols { grid-template-columns: minmax(0, 1fr); gap: 28px; padding: 12px 16px 12px; }\n}\n@media (prefers-reduced-motion: reduce) {\n  .repRise { animation: repFadeIn 300ms ease both; }\n  .repArrive .repOutcome { animation: repFadeIn 300ms ease ${OUTCOME_AT}ms both; }\n  .repEnter, .repDrawIn, .repDotIn, .repLinkFirst { animation: none; }\n  .repFeed .repRow { transition: opacity 300ms ease; }\n}\n`;const HIDDEN={opacity:0};/* Shows the part of [from, to] (distance along the whole route) that falls\n * inside one drawn segment [s0, s1], as a single dash. */const segment=(el,from,to,s0,s1,opacity)=>{if(!el)return;const a=Math.max(from,s0);const b=Math.min(to,s1);if(b-a<.5){el.style.opacity=\"0\";return;}el.style.opacity=String(opacity);el.style.strokeDasharray=`${(b-a).toFixed(2)} 100000`;el.style.strokeDashoffset=`${(s0-a).toFixed(2)}`;};/* The signal shrinks as it dives into the icon and grows as it leaves the name. */const edgeScale=d=>d>=14?1:.35+.65*Math.max(0,d)/14;const play=(el,keyframes,options)=>{if(el&&typeof el.animate===\"function\"){el.animate(keyframes,options);}};/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight auto\n */export default function ReputationDemo({verdict=\"Healthy\",style}){const rootRef=useRef(null);const panelRef=useRef(null);const linksRef=useRef(null);const feedRef=useRef(null);const guardsRef=useRef(null);const plotRef=useRef(null);const plotHeightRef=useRef(0);const lineRef=useRef(null);const areaRef=useRef(null);const dotRef=useRef(null);const dotCoreRef=useRef(null);const dotRingRef=useRef(null);const tailsRef=useRef([]);const headRef=useRef(null);const routeRef=useRef(null);const landAtRef=useRef(STILL_LAND_AT);const firedRef=useRef({tick:-1,launched:false,hit:false,land:false});const modeRef=useRef({motion:false});const[links,setLinks]=useState([]);const ids=useId().replace(/:/g,\"\");const gradientId=\"repFade\"+ids;const clipId=\"repClip\"+ids;const reducedMotion=usePrefersReducedMotion();const{inView,entered}=useInView(rootRef);// Canvas, export, and thumbnail renders show the settled state.\nconst isStaticRender=RenderTarget.current()!==RenderTarget.preview;const live=!isStaticRender;const motion=!reducedMotion&&!isStaticRender;modeRef.current.motion=motion;useEffect(()=>{const plot=plotRef.current;if(!plot)return;const measure=()=>{plotHeightRef.current=plot.getBoundingClientRect().height;};measure();if(typeof ResizeObserver===\"undefined\")return;const observer=new ResizeObserver(measure);observer.observe(plot);return()=>observer.disconnect();},[]);const draw=React.useCallback((series,phase,elapsed,tick)=>{const line=pathFor(series,phase);lineRef.current?.setAttribute(\"d\",line);areaRef.current?.setAttribute(\"d\",areaFor(line,series,phase));if(dotRef.current){const a=series[series.length-2];const b=series[series.length-1];const y=displayY(a+(b-a)*phase,DOT_X)/SPAN*plotHeightRef.current;dotRef.current.style.translate=`0 ${y.toFixed(2)}px`;}if(firedRef.current.tick!==tick){firedRef.current={tick,launched:false,hit:false,land:false};guardsRef.current?.querySelectorAll(\"[data-lit]\").forEach(el=>el.removeAttribute(\"data-lit\"));}if(tick===0)return;const fired=firedRef.current;const{motion}=modeRef.current;const row=guardsRef.current?.children[guardIndexAt(tick)];const route=routeRef.current&&routeRef.current.key===tick?routeRef.current:null;const t=elapsed-LAUNCH_AT;let head=0;if(motion&&route){head=route.total*flightShare(t/route.flight);const cStart=route.la+route.lb;const tails=tailsRef.current;const retract=t>route.flight?Math.min(1,(t-route.flight)/RETRACT_MS):0;for(let i=0;i<TAILS.length;i++){const length=t<0?0:TAILS[i].length*(1-retract);segment(tails[i],head-length,head,0,route.la,TAILS[i].opacity);segment(tails[TAILS.length+i],head-length,head,cStart,route.total,TAILS[i].opacity);}// The resting link draws behind the signal and stays.\nconst link=linksRef.current?.querySelector(`[data-link=\"${tick}\"]`);if(link){if(t<0)link.style.opacity=\"0\";else{link.style.opacity=\"\";link.style.strokeDasharray=head<route.la?`${head.toFixed(2)} 100000`:\"\";}}const headEl=headRef.current;if(headEl){let point;let scale=1;if(t>=0&&t<=route.flight+140){if(head<route.la){point=tails[0]?.getPointAtLength(head);scale=edgeScale(route.la-head);}else if(head>=cStart){point=tails[TAILS.length]?.getPointAtLength(Math.min(head-cStart,route.lc));scale=edgeScale(head-cStart)*(t>route.flight?Math.max(0,1-(t-route.flight)/140):1);}}if(point&&scale>.01){headEl.style.opacity=\"1\";headEl.setAttribute(\"transform\",`translate(${point.x.toFixed(2)} ${point.y.toFixed(2)}) scale(${scale.toFixed(3)})`);}else headEl.style.opacity=\"0\";}// Light the name in step with the signal passing behind it.\nconst name=row?.querySelector(\".repName\");if(name&&t>=0&&head>=route.la){const x=route.p1x+(head-route.la);const w=Math.max(1,route.nameW);const p=Math.min(1,Math.max(0,(1.5*w-(x-route.nameLeft))/(2*w)));name.style.backgroundPosition=`${(p*100).toFixed(2)}% 0`;}}if(motion&&route&&t>=0&&!fired.launched){fired.launched=true;const outcome=feedRef.current?.querySelector(\".repLive .repOutcome\");const dot=dotCoreRef.current;if(outcome&&dot){const from=getComputedStyle(outcome).color;const to=getComputedStyle(dot).backgroundColor;play(outcome,[{color:from},{color:to,offset:.3},{color:from}],{duration:560,easing:\"ease\"});}}const hitNow=motion&&route?t>=0&&head>=route.la:elapsed>=STILL_RIPPLE_AT;if(!fired.hit&&hitNow&&row){fired.hit=true;row.setAttribute(\"data-lit\",\"1\");if(motion){play(row.querySelector(\".repRing\"),[{opacity:.55,transform:\"scale(0.55)\"},{opacity:0,transform:\"scale(1.65)\"}],{duration:640,easing:EASE_OUT});play(row.querySelector(\".repIcon\"),[{transform:\"scale(1)\"},{transform:\"scale(1.22)\",offset:.35},{transform:\"scale(1)\"}],{duration:460,easing:EASE_OUT});}}if(!fired.land&&elapsed>=landAtRef.current){fired.land=true;if(motion){play(dotCoreRef.current,[{transform:\"scale(1)\"},{transform:\"scale(1.55)\",offset:.3},{transform:\"scale(1)\"}],{duration:640,easing:EASE_OUT});play(dotRingRef.current,[{opacity:.5,transform:\"scale(0.8)\"},{opacity:0,transform:\"scale(2.8)\"}],{duration:720,easing:EASE_OUT});}}},[]);const valueFor=React.useCallback((nextTick,series)=>nextValue(series,eventAt(nextTick).outcome,nextTick),[]);const tick=useConveyor(live&&inView&&entered,draw,valueFor,reducedMotion,landAtRef);const entering=motion&&entered&&tick===0;const drawClass=entered?\" repDrawIn\":\" repDrawWait\";const dotClass=entered?\" repDotIn\":\" repDotWait\";const newest=eventAt(tick);const rows=Array.from({length:VISIBLE+1},(_,i)=>({seq:tick-i,event:eventAt(tick-i)}));const targetIndex=guardIndexAt(tick);/* The route for this beat: the link from the newest row's outcome into its\n     * safeguard's icon, the hidden run behind the name, and the climb from the\n     * end of the name up the panel's right edge into the trend's dot. Measured\n     * from live rects so spacing stays free to change; stacked columns get no\n     * route. */useEffect(()=>{const panel=panelRef.current;const feed=feedRef.current;const guards=guardsRef.current;const dot=dotRef.current;if(!panel||!feed||!guards||!dot)return;const measure=()=>{const p=panel.getBoundingClientRect();const f=feed.getBoundingClientRect();const g=guards.getBoundingClientRect();const o=dot.getBoundingClientRect();if(g.left<f.right+24){setLinks([]);return;}const x1=f.right-p.left+8;const y1=f.top-p.top+ROW/2;const x2=g.left-p.left-6;const y2=g.top-p.top+targetIndex*ROW+ROW/2;const reach=Math.max(18,(x2-x1)*.55);const a=`M${x1} ${y1} C${x1+reach} ${y1} ${x2-reach} ${y2} ${x2} ${y2}`;const nameEl=guards.children[targetIndex]?.querySelector(\".repName\");let nameLeft=x2+34;let nameW=120;if(nameEl){/* The name cell can stretch to the column edge; measure the text run. */const range=document.createRange();range.selectNodeContents(nameEl);const text=range.getBoundingClientRect();const box=text.width?text:nameEl.getBoundingClientRect();nameLeft=box.left-p.left;nameW=box.width;}const x3=nameLeft+nameW+10;const ex=o.left-p.left;const ey=o.top-p.top;const lane=ex+11;/* The turn sweeps as wide as the rows below the header allow, so it\n             * reaches the lane before \"Built in\" and never crosses it. */const corner=Math.max(6,Math.min(120,(lane-x3)*.6,(y2-(g.top-p.top)+4)*.9));const c=`M${x3} ${y2} L${lane-corner} ${y2} Q${lane} ${y2} ${lane} ${y2-corner} L${lane} ${ey+18} Q${lane} ${ey} ${ex} ${ey}`;const entry={key:tick,a,c,lb:x3-x2,p1x:x2,nameLeft,nameW};setLinks(prev=>{const current=prev[0];if(current&&current.key===tick){return current.a===a&&current.c===c?prev:[entry,...prev.slice(1)];}return current?[entry,current]:[entry];});};measure();if(typeof ResizeObserver===\"undefined\")return;const observer=new ResizeObserver(measure);observer.observe(panel);return()=>observer.disconnect();},[tick,targetIndex]);/* Route lengths come from the committed signal paths; the flight time and\n     * the landing follow from them. */useIsoLayoutEffect(()=>{const link=links[0];const pathA=tailsRef.current[0];const pathC=tailsRef.current[TAILS.length];if(!motion||tick===0||!link||link.key!==tick||!pathA||!pathC){routeRef.current=null;landAtRef.current=STILL_LAND_AT;return;}const la=pathA.getTotalLength();const lc=pathC.getTotalLength();const total=la+link.lb+lc;const flight=Math.min(FLIGHT_MAX_MS,Math.max(FLIGHT_MIN_MS,total/FLIGHT_SPEED));routeRef.current={key:link.key,la,lb:link.lb,lc,total,flight,p1x:link.p1x,nameLeft:link.nameLeft,nameW:link.nameW};landAtRef.current=LAUNCH_AT+flight;},[links,tick,motion]);const linkClass=key=>{if(key===0)return motion?\" repLinkFirst\":live?\" repLinkStill\":\"\";return motion?\"\":live?\" repLinkStill\":\"\";};const signal=motion&&tick>0&&links[0]&&links[0].key===tick?links[0]:null;return /*#__PURE__*/_jsxs(\"div\",{ref:rootRef,className:\"repRoot\",style:{display:\"flex\",flexDirection:\"column\",gap:16,fontFamily:sans,color:ink,...style},children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:css}}),/*#__PURE__*/_jsxs(\"div\",{ref:panelRef,className:\"repPanel\",children:[/*#__PURE__*/_jsxs(\"svg\",{ref:linksRef,className:\"repLinks\",\"aria-hidden\":\"true\",children:[links.map((link,i)=>/*#__PURE__*/_jsx(\"path\",{\"data-link\":link.key,className:\"repLink\"+(i>0?\" repLinkOut\":linkClass(link.key)),style:i===0&&motion&&link.key>0?HIDDEN:undefined,d:link.a},link.key)),signal&&/*#__PURE__*/_jsxs(\"g\",{children:[TAILS.map((tail,i)=>/*#__PURE__*/_jsx(\"path\",{ref:el=>{tailsRef.current[i]=el;},className:\"repTail\",d:signal.a,style:{strokeWidth:tail.width,opacity:0}},\"a\"+i)),TAILS.map((tail,i)=>/*#__PURE__*/_jsx(\"path\",{ref:el=>{tailsRef.current[TAILS.length+i]=el;},className:\"repTail\",d:signal.c,style:{strokeWidth:tail.width,opacity:0}},\"c\"+i)),/*#__PURE__*/_jsxs(\"g\",{ref:headRef,style:{opacity:0},children:[/*#__PURE__*/_jsx(\"circle\",{className:\"repSignalHalo\",r:\"7\"}),/*#__PURE__*/_jsx(\"circle\",{className:\"repSignal\",r:\"3.25\"})]})]},\"signal\"+signal.key)]}),/*#__PURE__*/_jsxs(\"div\",{className:\"repHero\",children:[/*#__PURE__*/_jsx(\"span\",{className:\"repWord\",children:verdict}),/*#__PURE__*/_jsxs(\"div\",{ref:plotRef,className:\"repPlot\",children:[/*#__PURE__*/_jsxs(\"svg\",{className:motion?drawClass:undefined,viewBox:`0 0 100 ${SPAN}`,preserveAspectRatio:\"none\",\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsxs(\"defs\",{children:[/*#__PURE__*/_jsxs(\"linearGradient\",{id:gradientId,x1:\"0\",y1:\"0\",x2:\"0\",y2:\"1\",children:[/*#__PURE__*/_jsx(\"stop\",{offset:\"0\",style:{stopColor:accent,stopOpacity:.16}}),/*#__PURE__*/_jsx(\"stop\",{offset:\"1\",style:{stopColor:accent,stopOpacity:0}})]}),/*#__PURE__*/_jsx(\"clipPath\",{id:clipId,children:/*#__PURE__*/_jsx(\"rect\",{x:\"0\",y:\"-20\",width:\"100\",height:SPAN+40})})]}),/*#__PURE__*/_jsxs(\"g\",{clipPath:`url(#${clipId})`,children:[/*#__PURE__*/_jsx(\"path\",{ref:areaRef,d:areaPath,fill:`url(#${gradientId})`}),/*#__PURE__*/_jsx(\"path\",{ref:lineRef,d:trendPath,fill:\"none\",stroke:accent,strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",vectorEffect:\"non-scaling-stroke\"})]})]}),/*#__PURE__*/_jsxs(\"span\",{ref:dotRef,className:\"repDotAnchor\",style:{left:`${DOT_X}%`,top:0,translate:`0 ${(displayY(TREND_REST,DOT_X)/SPAN*100).toFixed(3)}cqh`},\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsx(\"span\",{ref:dotRingRef,className:\"repDotRing\"}),/*#__PURE__*/_jsx(\"span\",{ref:dotCoreRef,className:\"repDot\"+(motion?dotClass:\"\")})]})]})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"repCols\",children:[/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"div\",{className:\"repHead\",children:\"Handled for you\"}),/*#__PURE__*/_jsx(\"div\",{ref:feedRef,className:\"repFeed\",style:{height:ROW*VISIBLE},children:rows.map(({seq,event},i)=>/*#__PURE__*/_jsxs(\"div\",{className:\"repRow\"+(i===0?\" repLive\":\"\")+(i===0&&tick>0?\" repRise repArrive\":\"\")+(entering&&i<VISIBLE?\" repEnter\":\"\"),style:{transform:`translateY(${i*ROW}px)`,opacity:i<VISIBLE?1:0,transitionDelay:`${i*45}ms`,animationDelay:entering?`${i*40}ms`:undefined},children:[/*#__PURE__*/_jsx(Icon,{paths:SAFEGUARD_ICON[event.safeguard]}),/*#__PURE__*/_jsx(\"span\",{className:\"repName\",children:event.email}),/*#__PURE__*/_jsx(\"span\",{className:\"repOutcome\",children:event.outcome})]},seq))})]}),/*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsxs(\"div\",{className:\"repHead\",children:[\"Safeguards\",/*#__PURE__*/_jsx(\"span\",{className:\"repMeta\",children:\"Built in\"})]}),/*#__PURE__*/_jsx(\"div\",{ref:guardsRef,className:\"repGuards\",children:SAFEGUARDS.map((s,j)=>/*#__PURE__*/_jsxs(\"div\",{className:\"repRow\"+(s.name===newest.safeguard?\" repActive\":\"\")+(entering?\" repEnter\":\"\"),\"data-safeguard\":s.name,\"data-lit\":(!live||tick===0)&&s.name===newest.safeguard?\"1\":undefined,style:entering?{animationDelay:`${120+j*40}ms`}:undefined,children:[/*#__PURE__*/_jsxs(\"span\",{className:\"repIconWrap\",children:[/*#__PURE__*/_jsx(Icon,{paths:s.icon}),/*#__PURE__*/_jsx(\"span\",{className:\"repRing\"})]}),/*#__PURE__*/_jsx(\"span\",{className:\"repName\",children:s.name})]},s.name))})]})]})]}),/*#__PURE__*/_jsx(SectionPills,{pills:[{label:\"Reputation guide\",href:\"https://loops.so/docs/deliverability/sending-reputation\"},{label:\"Authentication\",href:\"https://loops.so/docs/deliverability/dmarc-dkim-setup\"},{label:\"DNS checker\",href:\"https://loops.so/tools/dns-checker\"}],moreLabel:\"More\",moreHref:\"https://loops.so/resources/email-deliverability\"})]});}addPropertyControls(ReputationDemo,{verdict:{type:ControlType.String,title:\"Verdict\",defaultValue:\"Healthy\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ReputationDemo\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"auto\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}