{"version":3,"file":"MCP_Loop_Animation.qXVNob2B.mjs","names":["useState","useRef","_Fragment"],"sources":["https:/framerusercontent.com/modules/PMPOnNEfg1SrCA5bNsZu/WJDUWgu1XIsTE6KITfp5/MCP_Loop_Animation.js"],"sourcesContent":["// MCP Prompt — Animated Marketing Product Shot\n// 450 × 300px (or 200 / hug) · transparent background · looping type → query → fade\n// Pensero design system · Framer-ready · no required props\n//\n// v2 changes\n//  1. Chip participates in the loop — idle → querying during the hold beat\n//  2. Question order leads with the highest-status question; random start index\n//  3. Frame height is a property: 300 (spec) / 200 (tight) / hug content\n//  4. Loop pauses off-screen (IntersectionObserver) and on hidden tab\n//  5. Burst typing — fast within words, pauses at boundaries, rare hesitation\n//     (+ waits for document.fonts.ready so the first measurement is correct)\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useEffect,useLayoutEffect,useRef,useState}from\"react\";import{addPropertyControls,ControlType}from\"framer\";// ─── Tokens ───────────────────────────────────────────────────────────────────\nconst tk={panel:\"#202420\",panelAlt:\"#252a25\",text1:\"#f7f8f8\",text2:\"#d0d6e0\",text3:\"#8a8f98\",text4:\"#62666d\",brand:\"#16DB65\",sage:\"#4caf82\",bdSubtle:\"rgba(255,255,255,0.05)\",bdStd:\"rgba(255,255,255,0.08)\",bdLive:\"rgba(255,255,255,0.14)\",sans:'\"Inter\",\"SF Pro Display\",-apple-system,system-ui,sans-serif'};// ─── Layout constants ─────────────────────────────────────────────────────────\nconst CARD_W=406// input width inside the 450px frame\n;const PAD_X=16// horizontal padding inside the card\n;const LINE_H=22// text line height\n;const FONT_S=15// text size\n;const TEXT_W=CARD_W-PAD_X*2-4// wrapping width used for measurement\n;const FADE_MS=420;const LEAD_IN=340// beat before the first character of each question\n;const CSS=`\n@keyframes pnsBlink { 0%,49% { opacity:1 } 50%,100% { opacity:0 } }\n@keyframes pnsPulse { 0%,100% { opacity:1 } 50% { opacity:0.4 } }\n@keyframes pnsSpin  { to { transform: rotate(360deg) } }\n@keyframes pnsIn    { from { opacity:0 } to { opacity:1 } }\n.pns-caret-solid { opacity:1; }\n.pns-caret-blink { animation: pnsBlink 1.05s steps(1,end) infinite; }\n.pns-idle { animation: pnsPulse 2.6s ease-in-out infinite; }\n.pns-spin { animation: pnsSpin 900ms linear infinite; transform-origin: 50% 50%; }\n.pns-in   { animation: pnsIn 140ms ease forwards; }\n`;// ─── Icons (Phosphor) ─────────────────────────────────────────────────────────\nconst I={plus:\"M224,128a8,8,0,0,1-8,8H136v80a8,8,0,0,1-16,0V136H40a8,8,0,0,1,0-16h80V40a8,8,0,0,1,16,0v80h80A8,8,0,0,1,224,128Z\",chevron:\"M213.66,101.66l-80,80a8,8,0,0,1-11.32,0l-80-80A8,8,0,0,1,53.66,90.34L128,164.69l74.34-74.35a8,8,0,0,1,11.32,11.32Z\",mic:\"M128,176a48.05,48.05,0,0,0,48-48V64a48,48,0,0,0-96,0v64A48.05,48.05,0,0,0,128,176ZM96,64a32,32,0,0,1,64,0v64a32,32,0,0,1-64,0Zm40,143.6V232a8,8,0,0,1-16,0V207.6A80.11,80.11,0,0,1,48,128a8,8,0,0,1,16,0,64,64,0,0,0,128,0,8,8,0,0,1,16,0A80.11,80.11,0,0,1,136,207.6Z\",arrowUp:\"M205.66,117.66a8,8,0,0,1-11.32,0L136,59.31V216a8,8,0,0,1-16,0V59.31L61.66,117.66a8,8,0,0,1-11.32-11.32l72-72a8,8,0,0,1,11.32,0l72,72A8,8,0,0,1,205.66,117.66Z\",plug:\"M200,88H176V48a8,8,0,0,0-16,0V88H96V48a8,8,0,0,0-16,0V88H56a8,8,0,0,0,0,16H72v24a56.06,56.06,0,0,0,48,55.42V232a8,8,0,0,0,16,0V183.42A56.06,56.06,0,0,0,184,128V104h16a8,8,0,0,0,0-16Z\"};function Icon({d,size=14,color=tk.text3}){return /*#__PURE__*/_jsx(\"svg\",{width:size,height:size,viewBox:\"0 0 256 256\",fill:color,style:{display:\"block\",flexShrink:0},children:/*#__PURE__*/_jsx(\"path\",{d:d})});}// ─── Typing rhythm ────────────────────────────────────────────────────────────\n// Humans type in bursts: quick inside a word, a beat at the space, occasionally\n// a longer hesitation before a long word. `base` is the in-word unit.\nfunction charDelay(q,i,base){const ch=q[i];const prev=i>0?q[i-1]:\"\";if(i===0)return base*1.4;if(ch===\" \"){const nextWord=q.slice(i+1).split(\" \")[0]||\"\";let d=base*(1.5+Math.random()*.7);if(nextWord.length>=7)d+=45;if(Math.random()<.09)d+=100+Math.random()*110// hesitation\n;return d;}if(prev===\",\"||prev===\".\")return base*(2+Math.random()*.6);// inside a word — fast, tight jitter\nreturn base*(.5+Math.random()*.45);}// Ordered for a hero: most visitors see question 1 and maybe question 2.\n// #3 is the two-line question — it shows the input growing early in the cycle.\nconst DEFAULT_QUESTIONS=[\"What should I highlight in my board update?\",\"How did engineering perform this quarter?\",\"Which engineering investments are delivering the highest ROI?\",\"Where is AI creating measurable impact?\",\"Which teams are improving fastest?\",\"How do we compare against benchmark companies?\"];// Index-matched to the questions above. The tool name is what makes the shot\n// legible as an MCP feature — it shows the connection doing something.\nconst DEFAULT_TOOLS=[\"summarize_quarter\",\"get_delivery_metrics\",\"roi_by_investment\",\"ai_impact_summary\",\"team_trends\",\"compare_benchmarks\"];const FRAME_H={spec:300,tight:200,hug:\"auto\"};// ─── Component ────────────────────────────────────────────────────────────────\nexport default function MCPPrompt({questions=DEFAULT_QUESTIONS,tools=DEFAULT_TOOLS,showTools=true,chipLabel=\"Pensero MCP\",chipIdle=\"connected\",chipBusy=\"querying\",modelLabel=\"Claude\",typeSpeed=30,holdMs=1700,brandSend=true,randomStart=true,sizing=\"spec\"}){const[text,setText]=useState(\"\");const[phase,setPhase]=useState(\"typing\");const[boxH,setBoxH]=useState(LINE_H);const[qIdx,setQIdx]=useState(0);const[chipW,setChipW]=useState(undefined);const frameRef=useRef(null);const measureRef=useRef(null);const chipMirrorRef=useRef(null);const list=questions&&questions.length?questions:DEFAULT_QUESTIONS;const reduced=typeof window!==\"undefined\"&&typeof window.matchMedia===\"function\"&&window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;// ── The loop: type → hold (chip queries) → fade → next ────────────────────\nuseEffect(()=>{if(reduced){setText(list[0]);setPhase(\"hold\");return;}const el=frameRef.current;let cancelled=false;let tid;// Pause gate — off-screen or hidden tab suspends the loop entirely,\n// so no state churn or layout reads happen while nobody is looking.\nlet inView=true;let visible=typeof document!==\"undefined\"?!document.hidden:true;let resume=null;const active=()=>inView&&visible;const nudge=()=>{if(active()&&resume){const r=resume;resume=null;r();}};const untilActive=()=>active()?Promise.resolve():new Promise(res=>{resume=res;});const wait=ms=>new Promise(res=>{tid=setTimeout(res,ms);});const io=el&&typeof IntersectionObserver!==\"undefined\"?new IntersectionObserver(([entry])=>{inView=entry.isIntersecting;nudge();},{threshold:0}):null;if(io&&el)io.observe(el);const onVisibility=()=>{visible=!document.hidden;nudge();};document.addEventListener(\"visibilitychange\",onVisibility);const run=async()=>{// Measuring against a fallback font would make the box height jump\n// when Inter swaps in — wait for it.\ntry{const fonts=document.fonts;if(fonts&&fonts.ready)await fonts.ready;}catch{}if(cancelled)return;let i=randomStart?Math.floor(Math.random()*list.length):0;while(!cancelled){await untilActive();if(cancelled)return;const q=list[i%list.length];setQIdx(i%list.length);setPhase(\"typing\");setText(\"\");await wait(LEAD_IN);if(cancelled)return;for(let c=1;c<=q.length;c++){await untilActive();if(cancelled)return;setText(q.slice(0,c));await wait(charDelay(q,c-1,typeSpeed));if(cancelled)return;}setPhase(\"hold\");await untilActive();if(cancelled)return;await wait(holdMs);if(cancelled)return;setPhase(\"out\");await wait(FADE_MS);if(cancelled)return;i++;}};run();return()=>{cancelled=true;if(tid)clearTimeout(tid);if(resume)resume()// let a parked promise settle\n;io?.disconnect();document.removeEventListener(\"visibilitychange\",onVisibility);};// eslint-disable-next-line react-hooks/exhaustive-deps\n},[list.join(\"|\"),typeSpeed,holdMs,reduced,randomStart]);// ── Derived phase state (declared before the layout effects use it) ───────\nconst busy=phase===\"hold\"// question complete → Pensero is answering\n;const fading=phase===\"out\";const sendActive=busy&&!fading;// Tool name for the active question — falls back to the generic label\n// if the tools array is short or switched off.\nconst toolList=tools&&tools.length?tools:[];const toolName=showTools?toolList[qIdx]||\"\":\"\";const busyLabel=toolName||chipBusy;// ── Measure wrapped height so the input grows/shrinks smoothly ────────────\nuseLayoutEffect(()=>{const el=measureRef.current;if(!el)return;setBoxH(Math.max(LINE_H,el.offsetHeight));},[text]);// ── Measure chip width so it can animate between idle and tool name ───────\n// Deps are deliberate: this must NOT run per keystroke (an offsetWidth read\n// 30×/second is the reflow cost the pause gate exists to avoid).\nuseLayoutEffect(()=>{const el=chipMirrorRef.current;if(!el)return;setChipW(el.offsetWidth);// eslint-disable-next-line react-hooks/exhaustive-deps\n},[busy,qIdx,chipLabel,chipIdle,chipBusy,showTools,toolList.join(\"|\")]);const caret=/*#__PURE__*/_jsx(\"span\",{className:phase===\"typing\"?\"pns-caret-solid\":\"pns-caret-blink\",style:{display:\"inline-block\",width:1.5,height:FONT_S+1,background:tk.text2,borderRadius:1,marginLeft:2,verticalAlign:\"text-bottom\"}});const spinner=/*#__PURE__*/_jsx(\"svg\",{width:12,height:12,viewBox:\"0 0 16 16\",className:\"pns-spin\",style:{display:\"block\",flexShrink:0},children:/*#__PURE__*/_jsx(\"circle\",{cx:\"8\",cy:\"8\",r:\"6\",fill:\"none\",stroke:tk.sage,strokeWidth:\"1.6\",strokeLinecap:\"round\",strokeDasharray:\"10 28\"})});const chipInner=/*#__PURE__*/_jsxs(_Fragment,{children:[busy&&!reduced?spinner:/*#__PURE__*/_jsx(Icon,{d:I.plug,size:12,color:tk.text4}),/*#__PURE__*/_jsx(\"span\",{style:{fontSize:11.5,fontWeight:500,color:tk.text2,letterSpacing:\"-0.1px\"},children:chipLabel}),busy?/*#__PURE__*/_jsx(\"span\",{style:{fontSize:11.5,color:tk.text4},children:\"\\xb7\"}):/*#__PURE__*/_jsx(\"span\",{className:reduced?undefined:\"pns-idle\",style:{width:5,height:5,borderRadius:9999,background:tk.sage,flexShrink:0}}),/*#__PURE__*/_jsx(\"span\",{className:reduced?undefined:\"pns-in\",style:{fontSize:11.5,color:busy?tk.text2:tk.text3,letterSpacing:\"-0.05px\"},children:busy?busyLabel:chipIdle},busy?`b${qIdx}`:\"i\")]});const frameH=FRAME_H[sizing]??300;return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{children:CSS}),/*#__PURE__*/_jsxs(\"div\",{ref:frameRef,style:{width:450,height:frameH,background:\"transparent\",fontFamily:tk.sans,WebkitFontSmoothing:\"antialiased\",MozOsxFontSmoothing:\"grayscale\",display:\"flex\",flexDirection:\"column\",alignItems:\"center\",justifyContent:\"center\",gap:11,boxSizing:\"border-box\",overflow:\"hidden\"},children:[/*#__PURE__*/_jsxs(\"div\",{style:{width:CARD_W,display:\"flex\",justifyContent:\"flex-start\",position:\"relative\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{display:\"inline-flex\",alignItems:\"center\",gap:7,height:26,padding:\"0 11px 0 9px\",boxSizing:\"border-box\",width:chipW,whiteSpace:\"nowrap\",overflow:\"hidden\",// Visible state change: background lift + brighter\n// border, not a 0.06 alpha nudge.\nbackground:busy?tk.panelAlt:tk.panel,border:`1px solid ${busy?tk.bdLive:tk.bdStd}`,borderRadius:9999,transition:\"background 220ms ease, border-color 220ms ease, width 260ms cubic-bezier(0.22,0.61,0.36,1)\"},children:chipInner}),/*#__PURE__*/_jsx(\"div\",{ref:chipMirrorRef,\"aria-hidden\":true,style:{position:\"absolute\",top:0,left:0,display:\"inline-flex\",alignItems:\"center\",gap:7,height:26,padding:\"0 11px 0 9px\",boxSizing:\"border-box\",border:\"1px solid transparent\",whiteSpace:\"nowrap\",visibility:\"hidden\",pointerEvents:\"none\"},children:chipInner})]}),/*#__PURE__*/_jsxs(\"div\",{style:{width:CARD_W,background:tk.panel,border:`1px solid ${tk.bdStd}`,borderRadius:18,padding:`14px ${PAD_X}px 11px`,boxSizing:\"border-box\",display:\"flex\",flexDirection:\"column\",gap:12},children:[/*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",height:boxH,transition:\"height 240ms cubic-bezier(0.22,0.61,0.36,1)\"},children:[/*#__PURE__*/_jsxs(\"div\",{style:{position:\"absolute\",top:0,left:0,width:TEXT_W,fontSize:FONT_S,lineHeight:`${LINE_H}px`,color:tk.text1,letterSpacing:\"-0.15px\",opacity:fading?0:1,transform:fading?\"translateY(-3px)\":\"translateY(0)\",transition:fading?`opacity ${FADE_MS-20}ms ease, transform ${FADE_MS-20}ms cubic-bezier(0.22,0.61,0.36,1)`:\"opacity 200ms ease\"},children:[text,!reduced&&caret]}),/*#__PURE__*/_jsxs(\"div\",{ref:measureRef,\"aria-hidden\":true,style:{position:\"absolute\",top:0,left:0,width:TEXT_W,fontSize:FONT_S,lineHeight:`${LINE_H}px`,letterSpacing:\"-0.15px\",visibility:\"hidden\",pointerEvents:\"none\",whiteSpace:\"normal\"},children:[text||\"\\xa0\",caret]})]}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",justifyContent:\"space-between\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{width:26,height:26,borderRadius:8,border:`1px solid ${tk.bdSubtle}`,display:\"flex\",alignItems:\"center\",justifyContent:\"center\"},children:/*#__PURE__*/_jsx(Icon,{d:I.plus,size:13,color:tk.text3})}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",gap:12},children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",gap:5},children:[/*#__PURE__*/_jsx(\"span\",{style:{fontSize:12.5,color:tk.text3,letterSpacing:\"-0.1px\"},children:modelLabel}),/*#__PURE__*/_jsx(Icon,{d:I.chevron,size:9,color:tk.text4})]}),/*#__PURE__*/_jsx(Icon,{d:I.mic,size:14,color:tk.text3}),/*#__PURE__*/_jsx(\"div\",{style:{width:28,height:28,borderRadius:9,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",background:sendActive&&brandSend?tk.brand:sendActive?\"rgba(255,255,255,0.14)\":tk.panelAlt,border:`1px solid ${sendActive&&brandSend?\"transparent\":tk.bdSubtle}`,transition:\"background 280ms ease, border-color 280ms ease\"},children:/*#__PURE__*/_jsx(Icon,{d:I.arrowUp,size:14,color:sendActive&&brandSend?\"#14261c\":sendActive?tk.text1:tk.text4})})]})]})]})]})]});}// ─── Property controls ────────────────────────────────────────────────────────\naddPropertyControls(MCPPrompt,{questions:{type:ControlType.Array,title:\"Questions\",control:{type:ControlType.String},defaultValue:DEFAULT_QUESTIONS},tools:{type:ControlType.Array,title:\"Tool names\",control:{type:ControlType.String},defaultValue:DEFAULT_TOOLS},showTools:{type:ControlType.Boolean,title:\"Show tool names\",defaultValue:true},sizing:{type:ControlType.Enum,title:\"Frame height\",options:[\"spec\",\"tight\",\"hug\"],optionTitles:[\"300 (spec)\",\"200 (tight)\",\"Hug content\"],defaultValue:\"spec\"},chipLabel:{type:ControlType.String,title:\"Chip label\",defaultValue:\"Pensero MCP\"},chipIdle:{type:ControlType.String,title:\"Chip \\xb7 idle\",defaultValue:\"connected\"},chipBusy:{type:ControlType.String,title:\"Chip \\xb7 querying\",defaultValue:\"querying\"},modelLabel:{type:ControlType.String,title:\"Model label\",defaultValue:\"Claude\"},typeSpeed:{type:ControlType.Number,title:\"Type speed (ms)\",defaultValue:30,min:10,max:90,step:1,displayStepper:true},holdMs:{type:ControlType.Number,title:\"Hold (ms)\",defaultValue:1700,min:400,max:5e3,step:100,displayStepper:true},randomStart:{type:ControlType.Boolean,title:\"Random first question\",defaultValue:true},brandSend:{type:ControlType.Boolean,title:\"Green send button\",defaultValue:true}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"MCPPrompt\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./MCP_Loop_Animation.map"],"mappings":"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"}