{"version":3,"file":"MessageThread.BtGPuwvv.mjs","names":["useRef","useState","useCallback","useMemo","formList","_Fragment"],"sources":["https:/framerusercontent.com/modules/ejz95fAiMe8zAshgYzNV/IDPWJSN9SiluDo3rGLCh/MessageThread.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{startTransition,useCallback,useEffect,useLayoutEffect,useMemo,useRef,useState}from\"react\";import{animate,motion,AnimatePresence,useInView,useMotionValue,usePresence,useReducedMotion}from\"framer-motion\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";export default function MessageThread(props){const{messages,source=\"Script\",greeting=FORM_GREETING_FALLBACK,steps=FORM_STEPS_FALLBACK,replyDelay=.4,typingTime:formTypingTime=1.2,autoScroll=true,typingDots=\"them\",ticker=false,tickerLevel=50,startOn=\"view\",startDelay=.4,speed=1,pause=.8,loop=true,loopDelay=3,gap=10,maxBubbleWidth=263,photoWidth=220,font,labelFont,themColor=\"#E9E9E7\",themText=\"#000000\",meColor=\"#1D1D1F\",meText=\"#FFFFFF\",labelColor=\"#89898D\",themGradient=false,meGradient=false,themColor2=\"#CFCFCB\",meColor2=\"#45454B\",gradientAngle=180,bubbleOpacity=100,bubbleBlur=0}=props;const rootRef=useRef(null);const scrollRef=useRef(null);const inView=useInView(rootRef,{once:true,amount:.3});const reduce=useReducedMotion();const target=RenderTarget.current();const isCanvasLike=target===RenderTarget.canvas||target===RenderTarget.thumbnail;const isStatic=reduce||isCanvasLike;const formCanvasStatic=isCanvasLike;const formMode=source===\"Form\";// \"load\" starts the clock at page load, wherever the thread is on the page.\nconst ready=startOn===\"load\"||inView;const list=messages&&messages.length?messages:FALLBACK;const n=list.length;const[count,setCount]=useState(0)// messages revealed so far\n;const[typing,setTyping]=useState(-1)// index currently showing dots\n;// Ticker only: how many messages have a place in the thread so far. Unlike\n// `count` it stays put while a finished loop fades out.\nconst[placed,setPlaced]=useState(0);const[formRows,setFormRows]=useState([]);const[formTyping,setFormTyping]=useState(null);const[answerVersion,setAnswerVersion]=useState(0);const answerMapRef=useRef({});const rowByFieldRef=useRef({});const latestListRef=useRef(list);const latestGreetingRef=useRef(greeting);const openingListRef=useRef([]);const latestStepsRef=useRef(steps);const playbackConfigRef=useRef({startDelay,speed,pause,typingDots});const queueRef=useRef([]);const processingRef=useRef(false);const openingTimeoutsRef=useRef([]);const queueTimeoutsRef=useRef([]);const pendingLaterFieldsRef=useRef([]);const blockedFieldRef=useRef(null);const openingDoneRef=useRef(false);const initializedFormKeyRef=useRef(\"\");const openingStatusRef=useRef(\"idle\");const topFadeRafRef=useRef(null);const smoothReturnRafRef=useRef(null);const pinToBottomRef=useRef(true);const programmaticScrollRef=useRef(false);const prevFormRowsLengthRef=useRef(0);const prevFormContentSignalRef=useRef(\"\");// Ticker: the thread is pinned by its bottom edge, so when the newest\n// message takes up more room, every older message is suddenly that much\n// higher. Put the older ones back where they were and glide them up, so\n// the newest stays put and the rest make way for it.\nconst threadRef=useRef(null);const moving=ticker&&!isStatic;useEffect(()=>{if(!moving)return;const thread=threadRef.current;let height=thread.offsetHeight;const observer=new ResizeObserver(()=>{const grew=thread.offsetHeight-height;height=thread.offsetHeight;if(grew<=0)return;// Every message but the newest. Read where each one is first…\nconst older=[...thread.children].slice(0,-1);const from=older.map(row=>new DOMMatrix(getComputedStyle(row).transform).m42+grew);// …then glide them up from there. These are plain browser\n// animations: they take effect on this very frame, so nothing\n// jumps, and leave no styles behind when they finish.\nolder.forEach((row,i)=>{row.getAnimations().forEach(running=>running.cancel());row.animate({transform:[`translateY(${from[i]}px)`,\"translateY(0px)\"]},GLIDE);});// The newest bubble (or its typing dots) is already at full size\n// in the space the older messages are still gliding out of, which\n// shows as an overlap when it is tall. Uncover it from the bottom\n// up at the same pace, so its top edge follows them instead.\nconst newest=thread.lastElementChild;const bubble=newest&&newest.querySelector(\"[data-bubble]\");const body=bubble&&bubble.offsetHeight?bubble:newest&&newest.querySelector(\"[data-dots]\");if(!body)return;const cover=top=>`inset(${top}px 0px -10px 0px round ${RADIUS}px ${RADIUS}px 0px 0px)`;body.animate({clipPath:[cover(grew),cover(0)]},GLIDE);});observer.observe(thread);return()=>observer.disconnect();},[moving]);const showsDots=useCallback(m=>typingDots===\"both\"||typingDots===\"them\"&&m.sender!==\"me\",[typingDots]);const normalizeField=useCallback(name=>{return(name||\"\").trim().toLowerCase();},[]);useEffect(()=>{latestListRef.current=list;latestGreetingRef.current=greeting;latestStepsRef.current=steps;playbackConfigRef.current={startDelay,speed,pause,typingDots};},[list,greeting,steps,startDelay,speed,pause,typingDots]);const formContentKey=useMemo(()=>JSON.stringify({messages:list.map(m=>[m.sender,m.text]),greeting:greeting.map(line=>(line||\"\").trim()),steps:steps.map(s=>[s.field,s.reply])}),[list,greeting,steps]);const openingList=useMemo(()=>{const greetingLines=(greeting||[]).map(line=>(line||\"\").trim()).filter(Boolean);if(greetingLines.length>0){return greetingLines.map(line=>({sender:\"them\",text:line}));}return list;},[greeting,list]);useEffect(()=>{openingListRef.current=openingList;},[openingList]);const stepByField=useMemo(()=>{const map={};latestStepsRef.current.forEach(step=>{const key=normalizeField(step.field);if(key)map[key]=step;});return map;},[formContentKey,normalizeField]);const orderedStepKeys=useMemo(()=>steps.map(step=>normalizeField(step.field)).filter(key=>!!key),[steps,normalizeField]);const stepIndexByKey=useMemo(()=>{const map={};orderedStepKeys.forEach((key,index)=>{map[key]=index;});return map;},[orderedStepKeys]);const resolveTokens=useCallback((text=\"\",answers)=>{return text.replace(/\\{([^}]+)\\}/g,(_,rawToken)=>{const token=rawToken.trim();const pipeAt=token.indexOf(\"|\");const left=pipeAt>=0?token.slice(0,pipeAt).trim():token;const fallback=pipeAt>=0?token.slice(pipeAt+1).trim():\"\";const first=/\\.first$/i.test(left);const field=first?left.replace(/\\.first$/i,\"\"):left;const value=answers[normalizeField(field)]||\"\";const chosen=first?value.trim().split(/\\s+/).filter(Boolean)[0]||\"\":value;return chosen||fallback;});},[normalizeField]);const clearOpeningTimers=useCallback(()=>{openingTimeoutsRef.current.forEach(id=>window.clearTimeout(id));openingTimeoutsRef.current=[];},[]);const clearQueueTimers=useCallback(()=>{queueTimeoutsRef.current.forEach(id=>window.clearTimeout(id));queueTimeoutsRef.current=[];},[]);// Restart playback only when the conversation itself changes.\nconst script=JSON.stringify(list.map(m=>[m.sender,m.text]));useEffect(()=>{if(formMode)return;if(isStatic||!ready)return;const rate=1/Math.max(.1,speed);let timer;let i=0;const next=()=>{if(i>=n){if(!loop)return;timer=setTimeout(()=>{startTransition(()=>setCount(0));i=0;timer=setTimeout(next,700);},loopDelay*1e3);return;}const m=list[i];startTransition(()=>setPlaced(i+1));const reveal=()=>{startTransition(()=>setTyping(-1));startTransition(()=>setCount(i+1));i++;timer=setTimeout(next,pause*1e3*rate);};if(showsDots(m)){startTransition(()=>setTyping(i));timer=setTimeout(reveal,typingTime(m.text)*rate);}else{reveal();}};// Start Delay is absolute — Speed doesn't scale it — so it can be\n// matched to the delays on other animations.\ntimer=setTimeout(next,startDelay*1e3);return()=>{window.clearTimeout(timer);startTransition(()=>setTyping(-1));startTransition(()=>setCount(0));startTransition(()=>setPlaced(0));};},[formMode,isStatic,ready,startDelay,script,typingDots,speed,pause,loop,loopDelay]);const scheduleOpening=useCallback((fn,ms)=>{const id=window.setTimeout(fn,ms);openingTimeoutsRef.current.push(id);return id;},[]);const scheduleQueue=useCallback((fn,ms)=>{const id=window.setTimeout(fn,ms);queueTimeoutsRef.current.push(id);return id;},[]);const readFieldValue=useCallback(fieldKey=>{if(typeof document===\"undefined\")return\"\";const step=stepByField[fieldKey];if(!step)return\"\";const escaped=window.CSS?.escape?window.CSS.escape(step.field):step.field.replace(/\"/g,'\\\\\"');const el=document.querySelector(`input[name=\"${escaped}\"], textarea[name=\"${escaped}\"], select[name=\"${escaped}\"]`);return(el?.value||\"\").trim();},[stepByField]);const enqueueStepValue=useCallback((fieldKey,value)=>{const step=stepByField[fieldKey];if(!step||!value.trim())return;const currentIndex=stepIndexByKey[fieldKey];if(typeof currentIndex!==\"number\")return;const next=queueRef.current.filter(item=>item.fieldKey!==fieldKey);next.push({fieldKey,value:value.trim(),step});next.sort((a,b)=>(stepIndexByKey[a.fieldKey]??Number.MAX_SAFE_INTEGER)-(stepIndexByKey[b.fieldKey]??Number.MAX_SAFE_INTEGER));queueRef.current=next;},[stepByField,stepIndexByKey]);const processQueue=useCallback(()=>{if(!formMode||processingRef.current)return;if(!openingDoneRef.current)return;if(queueRef.current.length===0)return;const eligibleIndex=queueRef.current.findIndex(item=>{const itemIndex=stepIndexByKey[item.fieldKey];if(typeof itemIndex!==\"number\")return false;for(let i=0;i<itemIndex;i++){const prevKey=orderedStepKeys[i];if(!rowByFieldRef.current[prevKey])return false;}return true;});if(eligibleIndex<0)return;processingRef.current=true;const current=queueRef.current.splice(eligibleIndex,1)[0];if(!current){processingRef.current=false;return;}const rowId=`user-${current.fieldKey}`;rowByFieldRef.current[current.fieldKey]=rowId;const latestValue=answerMapRef.current[current.fieldKey]||current.value;startTransition(()=>setFormRows(prev=>[...prev,{id:rowId,sender:\"me\",text:latestValue,animateUpdateKey:Date.now()}]));const done=()=>{processingRef.current=false;processQueue();};const replyTemplate=current.step.reply||\"\";if(!replyTemplate.trim()){done();return;}scheduleQueue(()=>{startTransition(()=>setFormTyping({id:`typing-${current.fieldKey}`,sender:\"them\",isTyping:true}));scheduleQueue(()=>{startTransition(()=>{setFormRows(prev=>[...prev,{id:`reply-${current.fieldKey}-${Date.now()}`,sender:\"them\",textTemplate:replyTemplate,fromTyping:true}]);setFormTyping(null);});done();},formTypingTime*1e3);},replyDelay*1e3);},[formMode,formTypingTime,replyDelay,scheduleQueue,orderedStepKeys,stepIndexByKey]);useEffect(()=>{if(!formMode)return;if(initializedFormKeyRef.current===formContentKey)return;initializedFormKeyRef.current=formContentKey;clearOpeningTimers();clearQueueTimers();answerMapRef.current={};rowByFieldRef.current={};queueRef.current=[];pendingLaterFieldsRef.current=[];blockedFieldRef.current=null;processingRef.current=false;openingDoneRef.current=false;openingStatusRef.current=\"idle\";startTransition(()=>setFormTyping(null));if(isCanvasLike){const previewAnswers={};const previewOpenings=latestGreetingRef.current.map(line=>(line||\"\").trim()).filter(Boolean).map(line=>({sender:\"them\",text:line}));const openingRows=previewOpenings.length>0?previewOpenings:latestListRef.current;const rows=openingRows.map((m,idx)=>({id:`opening-${idx}`,sender:m.sender,label:m.label,textTemplate:m.text||\"\",image:m.image}));latestStepsRef.current.forEach((step,idx)=>{const key=normalizeField(step.field);const sample=(step.sample||\"\").trim();if(key&&sample){previewAnswers[key]=sample;rows.push({id:`sample-${idx}`,sender:\"me\",text:sample});}if((step.reply||\"\").trim()){rows.push({id:`sample-reply-${idx}`,sender:\"them\",textTemplate:step.reply});}});answerMapRef.current=previewAnswers;openingDoneRef.current=true;openingStatusRef.current=\"done\";startTransition(()=>{setAnswerVersion(v=>v+1);setFormRows(rows);});return;}startTransition(()=>setFormRows([]));},[formMode,isCanvasLike,isStatic,formContentKey,clearOpeningTimers,clearQueueTimers,normalizeField]);useEffect(()=>{if(!formMode||isCanvasLike)return;if(!ready)return;if(openingStatusRef.current!==\"idle\")return;openingStatusRef.current=\"running\";const openingList=openingListRef.current;const cfg=playbackConfigRef.current;const rate=1/Math.max(.1,cfg.speed);let i=0;const next=()=>{if(i>=openingList.length){openingDoneRef.current=true;openingStatusRef.current=\"done\";processingRef.current=false;processQueue();return;}const m=openingList[i];const reveal=()=>{startTransition(()=>{setFormTyping(null);setFormRows(prev=>[...prev,{id:`opening-${i}`,sender:m.sender,label:m.label,textTemplate:m.text||\"\",image:m.image}]);});i++;scheduleOpening(next,cfg.pause*1e3*rate);};const showTyping=cfg.typingDots===\"both\"||cfg.typingDots===\"them\"&&m.sender!==\"me\";if(showTyping){startTransition(()=>setFormTyping({id:`opening-typing-${i}`,sender:m.sender,isTyping:true}));scheduleOpening(reveal,typingTime(m.text)*rate);}else{reveal();}};scheduleOpening(next,cfg.startDelay*1e3);return()=>{clearOpeningTimers();if(!openingDoneRef.current){openingStatusRef.current=\"idle\";}else if(queueRef.current.length>0){processingRef.current=false;processQueue();}};},[formMode,isCanvasLike,isStatic,ready,formContentKey,clearOpeningTimers,scheduleOpening,processQueue]);useEffect(()=>{if(!formMode||isCanvasLike)return;if(typeof window===\"undefined\"||typeof document===\"undefined\")return;const commitFromElement=el=>{if(!el)return;const input=el;const key=normalizeField(input.name||\"\");const step=stepByField[key];if(!step)return;const value=(input.value||\"\").trim();const existingRowId=rowByFieldRef.current[key];if(!value){if(!existingRowId)return;clearQueueTimers();queueRef.current=[];processingRef.current=false;startTransition(()=>setFormTyping(null));blockedFieldRef.current=key;const removedRowIds=new Set;startTransition(()=>setFormRows(prev=>{const cutIndex=prev.findIndex(row=>row.id===existingRowId);if(cutIndex<0)return prev;prev.slice(cutIndex).forEach(row=>removedRowIds.add(row.id));return prev.slice(0,cutIndex);}));const clearFromIndex=stepIndexByKey[key]??-1;Object.keys(rowByFieldRef.current).forEach(fieldKey=>{const rowId=rowByFieldRef.current[fieldKey];const rowIndex=stepIndexByKey[fieldKey]??-1;if(removedRowIds.has(rowId)||rowIndex>=clearFromIndex){delete rowByFieldRef.current[fieldKey];delete answerMapRef.current[fieldKey];}});delete answerMapRef.current[key];delete rowByFieldRef.current[key];const pending=orderedStepKeys.filter((fieldKey,idx)=>{if(idx<=clearFromIndex)return false;return!!readFieldValue(fieldKey);});pendingLaterFieldsRef.current=pending;startTransition(()=>setAnswerVersion(v=>v+1));return;}const previous=answerMapRef.current[key]||\"\";if(value===previous)return;answerMapRef.current[key]=value;startTransition(()=>setAnswerVersion(v=>v+1));if(existingRowId){startTransition(()=>setFormRows(prev=>prev.map(row=>row.id===existingRowId?{...row,text:value,animateUpdateKey:Date.now()}:row)));return;}const blockedField=blockedFieldRef.current;if(blockedField&&blockedField!==key){return;}enqueueStepValue(key,value);if(blockedField===key){const fieldIndex=stepIndexByKey[key]??-1;pendingLaterFieldsRef.current.forEach(pendingKey=>{const pendingIndex=stepIndexByKey[pendingKey]??-1;if(pendingIndex<=fieldIndex)return;const pendingValue=readFieldValue(pendingKey);if(pendingValue)enqueueStepValue(pendingKey,pendingValue);});pendingLaterFieldsRef.current=[];blockedFieldRef.current=null;}processQueue();};const isFieldElement=el=>{if(!(el instanceof Element))return false;const tag=el.tagName.toLowerCase();return tag===\"input\"||tag===\"textarea\"||tag===\"select\";};const onFocusOut=event=>{if(!isFieldElement(event.target))return;commitFromElement(event.target);};const onChange=event=>{if(!isFieldElement(event.target))return;commitFromElement(event.target);};const onInput=event=>{if(!isFieldElement(event.target))return;const target=event.target;if((target.value||\"\").trim())return;commitFromElement(target);};const onSubmit=event=>{const form=event.target instanceof HTMLFormElement?event.target:null;if(!form)return;const nodes=form.querySelectorAll(\"input[name], textarea[name], select[name]\");nodes.forEach(node=>{const key=normalizeField(node.name||\"\");if(stepByField[key])commitFromElement(node);});};document.addEventListener(\"focusout\",onFocusOut,{capture:true,passive:true});document.addEventListener(\"change\",onChange,{capture:true,passive:true});document.addEventListener(\"input\",onInput,{capture:true,passive:true});document.addEventListener(\"submit\",onSubmit,{capture:true});return()=>{document.removeEventListener(\"focusout\",onFocusOut,true);document.removeEventListener(\"change\",onChange,true);document.removeEventListener(\"input\",onInput,true);document.removeEventListener(\"submit\",onSubmit,true);};},[formMode,isCanvasLike,isStatic,normalizeField,processQueue,stepByField,clearQueueTimers,orderedStepKeys,readFieldValue,stepIndexByKey,enqueueStepValue]);const shown=isStatic?n:count;const formList=formRows;const displayList=formMode&&!isStatic&&!isCanvasLike&&!ready?[]:formMode?formList:list;const hasTyping=formMode?!!formTyping:typing>=0;const fixedOrFillHeight=props.style?.height===\"100%\"||typeof props.style?.height===\"number\";const isFormScrollable=formMode&&!ticker&&fixedOrFillHeight;const formStaticLike=formMode&&formCanvasStatic;const getFormSlotKey=useCallback(row=>{if(/^opening-\\d+$/.test(row.id))return`slot-${row.id}`;if(row.fromTyping){const match=row.id.match(/^reply-(.+)-\\d+$/);if(match)return`slot-reply-${match[1]}`;}return row.id;},[]);const getTypingSlotKey=useCallback(id=>{const opening=id.match(/^opening-typing-(\\d+)$/);if(opening)return`slot-opening-${opening[1]}`;const field=id.match(/^typing-(.+)$/);if(field)return`slot-reply-${field[1]}`;return id;},[]);const formRenderItems=useMemo(()=>{const items=displayList.map(row=>({kind:\"row\",key:getFormSlotKey(row),row}));if(formTyping){items.push({kind:\"typing\",key:getTypingSlotKey(formTyping.id),row:formTyping});}return items;},[displayList,formTyping,getFormSlotKey,getTypingSlotKey]);useEffect(()=>{if(!isFormScrollable)return;const node=rootRef.current;const thread=threadRef.current;if(!node||!thread||typeof window===\"undefined\")return;const updateMask=()=>{const overflowed=node.scrollHeight-node.clientHeight>1;const strength=overflowed?Math.max(0,Math.min(1,node.scrollTop/32)):0;const mask=`linear-gradient(to bottom, rgba(0,0,0,${1-strength}) 0px, #000 32px, #000 100%)`;node.style.maskImage=mask;node.style.WebkitMaskImage=mask;};const scheduleMask=()=>{if(topFadeRafRef.current!==null)return;topFadeRafRef.current=window.requestAnimationFrame(()=>{topFadeRafRef.current=null;updateMask();});};const cancelReturnTween=()=>{if(smoothReturnRafRef.current!==null){window.cancelAnimationFrame(smoothReturnRafRef.current);smoothReturnRafRef.current=null;}programmaticScrollRef.current=false;};const startReturnToBottom=()=>{if(!autoScroll)return;cancelReturnTween();const duration=360;const startTime=performance.now();const startTop=node.scrollTop;programmaticScrollRef.current=true;const tick=now=>{const t=Math.min(1,(now-startTime)/duration);const eased=1-Math.pow(1-t,3);const target=node.scrollHeight-node.clientHeight;node.scrollTop=startTop+(target-startTop)*eased;updateMask();if(t<1){smoothReturnRafRef.current=window.requestAnimationFrame(tick);}else{smoothReturnRafRef.current=null;programmaticScrollRef.current=false;pinToBottomRef.current=true;}};smoothReturnRafRef.current=window.requestAnimationFrame(tick);};const onScroll=()=>{if(programmaticScrollRef.current)return;const distanceFromBottom=node.scrollHeight-node.clientHeight-node.scrollTop;pinToBottomRef.current=distanceFromBottom<=24;scheduleMask();};const onUserIntent=()=>{cancelReturnTween();};const resizeObserver=new ResizeObserver(()=>{if(autoScroll&&pinToBottomRef.current){programmaticScrollRef.current=true;node.scrollTop=node.scrollHeight-node.clientHeight;programmaticScrollRef.current=false;}scheduleMask();});resizeObserver.observe(node);resizeObserver.observe(thread);node.addEventListener(\"scroll\",onScroll,{passive:true});node.addEventListener(\"wheel\",onUserIntent,{passive:true});node.addEventListener(\"touchstart\",onUserIntent,{passive:true});node.addEventListener(\"pointerdown\",onUserIntent,{passive:true});window.addEventListener(\"resize\",scheduleMask,{passive:true});pinToBottomRef.current=true;updateMask();node.__startReturnToBottom=startReturnToBottom;return()=>{node.removeEventListener(\"scroll\",onScroll);node.removeEventListener(\"wheel\",onUserIntent);node.removeEventListener(\"touchstart\",onUserIntent);node.removeEventListener(\"pointerdown\",onUserIntent);window.removeEventListener(\"resize\",scheduleMask);resizeObserver.disconnect();cancelReturnTween();if(topFadeRafRef.current!==null){window.cancelAnimationFrame(topFadeRafRef.current);topFadeRafRef.current=null;}delete node.__startReturnToBottom;};},[isFormScrollable,autoScroll]);useEffect(()=>{if(!isFormScrollable||!autoScroll)return;const node=rootRef.current;if(!node)return;const prevLen=prevFormRowsLengthRef.current;const signal=`${formRows.length}-${hasTyping?1:0}-${answerVersion}`;const changed=signal!==prevFormContentSignalRef.current;if((formRows.length>prevLen||changed)&&!pinToBottomRef.current){node.__startReturnToBottom?.();}prevFormRowsLengthRef.current=formRows.length;prevFormContentSignalRef.current=signal;},[formRows.length,hasTyping,answerVersion,isFormScrollable,autoScroll]);const textStyle={margin:0,fontFamily:FONT,fontSize:15,lineHeight:1.2,letterSpacing:\"0.6px\",fontWeight:400,// Whatever is picked in the Font control wins over the defaults above.\n...font,whiteSpace:\"pre-wrap\",wordBreak:\"break-word\"};useEffect(()=>{if(isFormScrollable){scrollRef.current=rootRef.current;}else{scrollRef.current=null;}},[isFormScrollable]);return /*#__PURE__*/_jsxs(\"div\",{ref:rootRef,className:isFormScrollable?\"message-thread-form-scroll\":undefined,style:{position:\"relative\",width:\"100%\",// Ticker: a fixed window with the thread pinned inside it.\n...ticker&&{height:\"100%\",overflow:\"hidden\",display:\"flex\",flexDirection:\"column\",justifyContent:\"flex-end\"},...isFormScrollable&&{height:\"100%\",maxHeight:\"100%\",overflowY:\"auto\",overflowX:\"hidden\",scrollbarWidth:\"none\",msOverflowStyle:\"none\",display:\"flex\",flexDirection:\"column\",minHeight:0,overflowAnchor:\"none\",isolation:\"isolate\",willChange:\"scroll-position\",maskImage:\"linear-gradient(to bottom, rgba(0,0,0,1) 0px, #000 32px, #000 100%)\",WebkitMaskImage:\"linear-gradient(to bottom, rgba(0,0,0,1) 0px, #000 32px, #000 100%)\"}},children:[isFormScrollable&&/*#__PURE__*/_jsx(\"style\",{children:`.message-thread-form-scroll::-webkit-scrollbar{display:none;width:0;height:0}`}),/*#__PURE__*/_jsx(\"div\",{ref:threadRef,style:{flexShrink:0,display:\"flex\",flexDirection:\"column\",...isFormScrollable&&{marginTop:\"auto\",transform:\"translateZ(0)\",willChange:\"transform\"},// Room for the last bubble's tail, which hangs 5px below it.\npaddingBottom:formMode?0:5,boxSizing:\"border-box\"},children:formMode?/*#__PURE__*/_jsx(AnimatePresence,{initial:false,children:formRenderItems.map((item,i)=>{const m=item.row;const isTypingRow=item.kind===\"typing\";const sent=m.sender===\"me\";const side=sent?\"right\":\"left\";const origin=sent?\"100% 100%\":\"0% 100%\";const color=sent?meColor:themColor;const color2=sent?meGradient&&meColor2:themGradient&&themColor2;const text=sent?meText:themText;const nextItem=formRenderItems[i+1];const prevItem=formRenderItems[i-1];const tail=!nextItem||nextItem.row.sender!==m.sender;const prevTail=i>0&&prevItem?prevItem.row.sender!==m.sender:false;const paddingBottom=tail?5:0;const rawTop=i===0?0:prevItem.row.sender===m.sender?3:gap;const paddingTop=Math.max(0,rawTop-(prevTail?5:0));const photo=m.image&&m.image.src?m.image:null;const resolvedText=m.textTemplate||m.text||\"\";const rowBody=/*#__PURE__*/_jsxs(_Fragment,{children:[!isTypingRow&&m.label&&/*#__PURE__*/_jsx(\"p\",{style:{margin:0,padding:\"0 16px\",fontFamily:FONT,fontSize:10,fontWeight:500,lineHeight:1,letterSpacing:\"0.4px\",...labelFont,whiteSpace:\"nowrap\",color:labelColor},children:m.label}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"relative\",width:\"100%\",display:\"grid\",gridTemplateColumns:\"minmax(0, 1fr)\"},children:/*#__PURE__*/_jsx(AnimatePresence,{initial:!formStaticLike,children:/*#__PURE__*/_jsxs(motion.div,{\"data-bubble\":true,initial:formStaticLike?false:reduce?{opacity:0}:isTypingRow?{opacity:0,scale:.92}:{opacity:0,scale:.94},animate:reduce?{opacity:1}:{opacity:1,scale:1},exit:formStaticLike?undefined:{opacity:0,...reduce?{}:{scale:.92},transition:{duration:reduce?.15:.14}},transition:formStaticLike?{duration:.01}:reduce?{duration:.15}:{scale:FORM_BUBBLE_SPRING,opacity:{duration:.18}},style:{display:\"flex\",flexDirection:\"column\",alignItems:sent?\"flex-end\":\"flex-start\",gap:3,maxWidth:maxBubbleWidth,transformOrigin:origin,gridArea:\"1 / 1\",justifySelf:sent?\"end\":\"start\",alignSelf:\"end\"},children:[!isTypingRow&&photo&&/*#__PURE__*/_jsx(Photo,{image:photo,width:photoWidth,staticMode:true}),/*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\"},children:[/*#__PURE__*/_jsx(Backing,{color:color,sent:sent,tail:tail,color2:color2,angle:gradientAngle,opacity:bubbleOpacity/100,blur:bubbleBlur,staticOpacity:bubbleOpacity/100}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"relative\",padding:\"9px 13px\",color:text},children:isTypingRow?/*#__PURE__*/_jsxs(\"div\",{\"aria-hidden\":true,style:{...textStyle,display:\"flex\",alignItems:\"center\"},children:[\"​\",[0,1,2].map(d=>/*#__PURE__*/_jsx(motion.span,{animate:{opacity:[.25,.7,.25]},transition:{duration:1.1,ease:\"easeInOut\",repeat:Infinity,delay:d*.18},style:{width:7,height:7,marginLeft:d?4:0,borderRadius:\"50%\",background:text,opacity:.25}},d))]}):/*#__PURE__*/_jsx(motion.p,{style:textStyle,animate:{opacity:1},initial:m.animateUpdateKey?{opacity:.7}:false,transition:{duration:.2},children:resolveTokens(resolvedText,answerMapRef.current)},m.animateUpdateKey||\"static\")})]})]},isTypingRow?\"dots\":\"msg\")})})]});if(formStaticLike){return /*#__PURE__*/_jsx(\"div\",{style:{paddingTop,paddingBottom,display:\"flex\",flexDirection:\"column\",alignItems:sent?\"flex-end\":\"flex-start\",boxSizing:\"border-box\",gap:8},children:rowBody},item.key);}return /*#__PURE__*/_jsx(FormRowShell,{align:sent?\"flex-end\":\"flex-start\",paddingTop:paddingTop,paddingBottom:paddingBottom,exitDelay:(formRenderItems.length-1-i)*.03,reducedMotion:reduce,children:rowBody},item.key);})}):displayList.map((m,i)=>{// Ticker: a message takes no space until its turn comes.\nif(!formMode&&moving&&i>=placed)return null;// Ticker: while the dots show, hold only their height.\nconst waiting=!formMode&&moving&&typing===i;const sent=m.sender===\"me\";const side=sent?\"right\":\"left\";const origin=sent?\"100% 100%\":\"0% 100%\";const color=sent?meColor:themColor;// Gradient: the colour the bubble fades into.\nconst color2=sent?meGradient&&meColor2:themGradient&&themColor2;const text=sent?meText:themText;const visible=formMode?true:i<shown;const followsSame=i>0&&displayList[i-1].sender===m.sender;const nextSame=i<displayList.length-1&&displayList[i+1].sender===m.sender;// The tail belongs to the newest bubble in a run from one sender.\nconst tail=!nextSame||i===shown-1;// A message can be a photo, text, or a photo with text under it.\nconst photo=m.image&&m.image.src?m.image:null;const resolvedText=m.textTemplate||m.text||\"\";const hasText=!photo||!!resolvedText.trim();return /*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",alignItems:sent?\"flex-end\":\"flex-start\",gap:8,marginTop:i===0?0:followsSame?3:gap},children:[m.label&&/*#__PURE__*/_jsx(motion.p,{initial:moving?{opacity:0}:false,animate:{opacity:visible?1:0},transition:{duration:.25},style:{margin:0,padding:\"0 16px\",fontFamily:FONT,fontSize:10,fontWeight:500,lineHeight:1,letterSpacing:\"0.4px\",...labelFont,whiteSpace:\"nowrap\",color:labelColor},children:m.label}),/*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",width:\"100%\",display:\"flex\",justifyContent:sent?\"flex-end\":\"flex-start\"},children:[/*#__PURE__*/_jsxs(motion.div,{// Ticker rows are created as they arrive,\n// so they start hidden and pop in. One that\n// takes over from the dots grows out of them\n// rather than popping from small.\n\"data-bubble\":true,initial:formMode?!isStatic&&ready?\"hidden\":false:moving?\"hidden\":false,animate:visible?\"shown\":\"hidden\",variants:formMode?m.fromTyping?GROW:POP:moving&&showsDots(m)?GROW:POP,transition:visible?SPRING:{duration:.2},style:{display:waiting?\"none\":\"flex\",flexDirection:\"column\",alignItems:sent?\"flex-end\":\"flex-start\",gap:3,maxWidth:maxBubbleWidth,transformOrigin:origin},children:[photo&&/*#__PURE__*/_jsx(Photo,{image:photo,width:photoWidth}),hasText&&/*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\"},children:[/*#__PURE__*/_jsx(Backing,{color:color,sent:sent,tail:tail,color2:color2,angle:gradientAngle,opacity:bubbleOpacity/100,blur:bubbleBlur}),/*#__PURE__*/_jsx(motion.div,{variants:FADE,transition:FADE_TIME,style:{position:\"relative\",padding:\"9px 13px\",color:text},children:/*#__PURE__*/_jsx(motion.p,{style:textStyle,animate:{opacity:1,y:0},initial:formMode&&m.animateUpdateKey?{opacity:.7,y:1}:false,transition:{duration:.2},children:resolveTokens(resolvedText,answerMapRef.current)},formMode&&m.animateUpdateKey?m.animateUpdateKey:\"static\")})]})]}),waiting&&/*#__PURE__*/_jsx(\"div\",{style:{...textStyle,padding:\"9px 13px\",visibility:\"hidden\"},children:\"​\"}),/*#__PURE__*/_jsx(AnimatePresence,{children:typing===i&&!formMode&&/*#__PURE__*/_jsxs(motion.div,{\"data-dots\":true,\"aria-hidden\":true,initial:\"hidden\",animate:\"shown\",exit:{opacity:0,transition:{duration:.1}},variants:POP,transition:SPRING,style:{position:\"absolute\",// Ticker: sit on the tail corner,\n// where the bubble grows from.\n[moving?\"bottom\":\"top\"]:0,[side]:0,transformOrigin:origin},children:[/*#__PURE__*/_jsx(Backing,{color:color,sent:sent,color2:color2,angle:gradientAngle,opacity:bubbleOpacity/100,blur:bubbleBlur}),/*#__PURE__*/_jsxs(motion.div,{variants:FADE,transition:FADE_TIME,style:{...textStyle,position:\"relative\",display:\"flex\",alignItems:\"center\",padding:\"9px 13px\"},children:[\"​\",[0,1,2].map(d=>/*#__PURE__*/_jsx(motion.span,{animate:{opacity:[.25,.7,.25]},transition:{duration:1.1,ease:\"easeInOut\",repeat:Infinity,delay:d*.18},style:{width:7,height:7,marginLeft:d?4:0,borderRadius:\"50%\",background:text,opacity:.25}},d))]})]},\"typing\")})]})]},formMode?m.id||i:i);})}),ticker&&!formMode&&/*#__PURE__*/_jsx(\"div\",{style:{flex:`0 0 ${100-tickerLevel}%`}})]});}function FormRowShell({children,align,paddingTop,paddingBottom,exitDelay,reducedMotion}){const[isPresent,safeToRemove]=usePresence();const innerRef=useRef(null);const height=useMotionValue(0);const opacity=useMotionValue(1);const lastWidthRef=useRef(0);const firstRef=useRef(true);const exitTokenRef=useRef(0);const removedRef=useRef(false);const prevPresentRef=useRef(isPresent);const exitDelayRef=useRef(exitDelay);const reducedMotionRef=useRef(reducedMotion);const cleanupTimeoutRef=useRef(null);const hControlRef=useRef(null);const oControlRef=useRef(null);const safeToRemoveRef=useRef(safeToRemove);safeToRemoveRef.current=safeToRemove;useEffect(()=>{exitDelayRef.current=exitDelay;reducedMotionRef.current=reducedMotion;},[exitDelay,reducedMotion]);useLayoutEffect(()=>{const node=innerRef.current;if(!node)return;const resize=()=>{if(!isPresent)return;const nextHeight=node.offsetHeight;const nextWidth=node.offsetWidth;if(firstRef.current){firstRef.current=false;if(reducedMotionRef.current){height.set(nextHeight);}else{hControlRef.current=animate(height,nextHeight,ROW_HEIGHT_TRANSITION);}lastWidthRef.current=nextWidth;return;}if(Math.abs(nextWidth-lastWidthRef.current)>.5){height.set(nextHeight);lastWidthRef.current=nextWidth;return;}if(reducedMotionRef.current){height.set(nextHeight);}else{hControlRef.current=animate(height,nextHeight,ROW_HEIGHT_TRANSITION);}};const observer=new ResizeObserver(resize);observer.observe(node);resize();return()=>observer.disconnect();},[height,isPresent]);useEffect(()=>{const wasPresent=prevPresentRef.current;prevPresentRef.current=isPresent;if(wasPresent===isPresent)return;hControlRef.current?.stop?.();oControlRef.current?.stop?.();if(cleanupTimeoutRef.current!==null){window.clearTimeout(cleanupTimeoutRef.current);cleanupTimeoutRef.current=null;}if(isPresent){exitTokenRef.current+=1;removedRef.current=false;const measured=innerRef.current?.offsetHeight??0;if(reducedMotionRef.current){height.set(measured);opacity.set(1);return;}hControlRef.current=animate(height,measured,ROW_HEIGHT_TRANSITION);oControlRef.current=animate(opacity,1,{duration:.15});return;}const token=++exitTokenRef.current;if(reducedMotionRef.current){height.set(0);const o=animate(opacity,0,{duration:.15});oControlRef.current=o;cleanupTimeoutRef.current=window.setTimeout(()=>{if(exitTokenRef.current!==token)return;if(removedRef.current)return;removedRef.current=true;safeToRemoveRef.current?.();},200);return;}const finishSafely=()=>{if(exitTokenRef.current!==token)return;if(removedRef.current)return;removedRef.current=true;safeToRemoveRef.current?.();};const h=animate(height,0,{...ROW_HEIGHT_TRANSITION,duration:.22,delay:exitDelayRef.current});const o=animate(opacity,0,{duration:.22,delay:exitDelayRef.current});hControlRef.current=h;oControlRef.current=o;cleanupTimeoutRef.current=window.setTimeout(()=>{finishSafely();},(exitDelayRef.current+.22)*1e3+150);Promise.all([Promise.resolve(h),Promise.resolve(o)]).then(()=>{finishSafely();});},[isPresent]);useEffect(()=>{return()=>{hControlRef.current?.stop?.();oControlRef.current?.stop?.();if(cleanupTimeoutRef.current!==null){window.clearTimeout(cleanupTimeoutRef.current);cleanupTimeoutRef.current=null;}};},[]);return /*#__PURE__*/_jsx(motion.div,{style:{height,opacity,overflow:\"hidden\",display:\"flex\",flexDirection:\"column\",justifyContent:\"flex-end\"},children:/*#__PURE__*/_jsx(\"div\",{ref:innerRef,style:{paddingTop,paddingBottom,display:\"flex\",flexDirection:\"column\",alignItems:align,boxSizing:\"border-box\",gap:8},children:children})});}// A sent photo, the way a messaging thread shows one: the picture itself with\n// rounded corners, no bubble around it and no tail.\nfunction Photo({image,width,staticMode=false}){// Knowing the shape up front lets the photo hold its space before it loads.\nconst ratio=image.pixelWidth&&image.pixelHeight?`${image.pixelWidth} / ${image.pixelHeight}`:undefined;if(staticMode){return /*#__PURE__*/_jsx(\"img\",{src:image.src,srcSet:image.srcSet,sizes:`${width}px`,alt:image.alt||\"\",draggable:false,style:{display:\"block\",width,maxWidth:\"100%\",height:\"auto\",aspectRatio:ratio,objectFit:\"cover\",borderRadius:20}});}return /*#__PURE__*/_jsx(motion.img,{variants:FADE,transition:FADE_TIME,src:image.src,srcSet:image.srcSet,sizes:`${width}px`,alt:image.alt||\"\",draggable:false,style:{display:\"block\",width,maxWidth:\"100%\",height:\"auto\",aspectRatio:ratio,objectFit:\"cover\",borderRadius:20}});}/**\n * Everything behind a bubble's text: an optional blur of whatever is under the\n * bubble, then the bubble colour. The bubble and its tail overlap, so the\n * colour is faded as one group — fading them separately would leave a darker\n * patch where they cross once the bubble is see-through.\n */function Backing({color,color2,angle,sent,tail=true,opacity,blur,staticOpacity}){const frost=blur>0?`blur(${blur}px)`:null;const side=sent?\"right\":\"left\";const paint=color2?`linear-gradient(${angle}deg, ${color}, ${color2})`:color;// One blur layer cut to the bubble and tail together. Blurring the tail\n// as its own small piece makes it stand out as a flat patch, because a\n// blur only sees what is directly under its own element.\nconst mask={image:tail?`${TAIL_MASK[side]}, ${BODY_MASK}`:BODY_MASK,size:tail?\"24px 14px, 100% calc(100% - 5px)\":\"100% calc(100% - 5px)\",position:tail?`${side} bottom, left top`:\"left top\"};return /*#__PURE__*/_jsxs(_Fragment,{children:[frost&&/*#__PURE__*/_jsx(motion.div,{variants:FADE,transition:FADE_TIME,style:{position:\"absolute\",top:0,left:0,right:0,// Reaches down to cover the tail's tip.\nbottom:-5,backdropFilter:frost,WebkitBackdropFilter:frost,maskImage:mask.image,WebkitMaskImage:mask.image,maskSize:mask.size,WebkitMaskSize:mask.size,maskPosition:mask.position,WebkitMaskPosition:mask.position,maskRepeat:\"no-repeat\",WebkitMaskRepeat:\"no-repeat\"}}),/*#__PURE__*/_jsxs(motion.div,{variants:staticOpacity===undefined?{hidden:{opacity:0},shown:{opacity}}:undefined,transition:FADE_TIME,initial:staticOpacity===undefined?undefined:false,animate:staticOpacity===undefined?undefined:{opacity:staticOpacity},style:{position:\"absolute\",inset:0},children:[color2?// Gradient tail: the same gradient as the bubble, drawn\n// over the same area and cut to the tail's shape, so the\n// colour carries straight across the join.\n/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:\"0 0 -5px 0\",background:paint,opacity:tail?1:0,transition:\"opacity 0.2s ease\",maskImage:TAIL_MASK[side],WebkitMaskImage:TAIL_MASK[side],maskSize:\"24px 14px\",WebkitMaskSize:\"24px 14px\",maskPosition:`${side} bottom`,WebkitMaskPosition:`${side} bottom`,maskRepeat:\"no-repeat\",WebkitMaskRepeat:\"no-repeat\"}}):/*#__PURE__*/_jsx(Tail,{color:color,sent:sent,visible:tail}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,borderRadius:20,background:paint,// Gradient: run it over the bubble plus the 5px the\n// tail hangs below, to line up with the tail's.\n...color2&&{backgroundSize:\"100% calc(100% + 5px)\",backgroundRepeat:\"no-repeat\"}}})]})]});}// The bubble tail, straight from the Figma vector. Mirrored for sent messages.\nfunction Tail({color,sent,visible=true}){return /*#__PURE__*/_jsx(\"svg\",{\"aria-hidden\":true,width:\"24\",height:\"14\",viewBox:\"0 0 24 14\",fill:\"none\",style:{position:\"absolute\",bottom:-5,[sent?\"right\":\"left\"]:0,display:\"block\",transform:sent?\"scaleX(-1)\":undefined,opacity:visible?1:0,transition:\"opacity 0.2s ease\"},children:/*#__PURE__*/_jsx(\"path\",{d:TAIL_PATH,fill:color})});}// Longer messages take longer to \"type\", within sensible limits.\nconst typingTime=text=>Math.min(2400,Math.max(900,500+(text||\"\").length*35));const FONT='\"SF Pro Display\", -apple-system, BlinkMacSystemFont, \"Helvetica Neue\", \"Segoe UI\", sans-serif';const TAIL_PATH=\"M23.1516 5.94366C17.9097 10.1542 14.248 11.6466 8.40167 13.3277C7.79598 13.5019 7.34855 12.7141 7.76663 12.2425C10.0935 9.61793 10.809 6.8757 8.26052 1.29483C8.03929 0.810356 8.49546 0.275628 9.0026 0.438333L22.9593 4.91612C23.4101 5.06075 23.5207 5.64718 23.1516 5.94366Z\";// The same shapes as images, for cutting the blur layer to the bubble outline.\nconst svgMask=body=>`url(\"data:image/svg+xml,${encodeURIComponent(`<svg xmlns=\"http://www.w3.org/2000/svg\" ${body}</svg>`)}\")`;const BODY_MASK=svgMask(`><rect width=\"100%\" height=\"100%\" rx=\"20\" ry=\"20\"/>`);const TAIL_MASK={left:svgMask(`width=\"24\" height=\"14\" viewBox=\"0 0 24 14\"><path d=\"${TAIL_PATH}\"/>`),right:svgMask(`width=\"24\" height=\"14\" viewBox=\"0 0 24 14\"><path transform=\"translate(24 0) scale(-1 1)\" d=\"${TAIL_PATH}\"/>`)};// A bubble scales in from its tail while its layers fade. The fade lives on\n// the layers, not the bubble itself: a see-through parent switches off the\n// background blur of everything inside it.\nconst POP={hidden:{transform:\"scale(0.6)\"},shown:{transform:\"scale(1)\"}};// Ticker: a bubble taking over from the typing dots starts near full size.\nconst GROW={hidden:{transform:\"scale(0.9)\"},shown:{transform:\"scale(1)\"}};// Ticker: how older messages glide up to make room for a new one.\nconst GLIDE={duration:500,easing:\"cubic-bezier(0.3, 0, 0.1, 1)\"};const RADIUS=20// bubble corner radius, in px\n;const FADE={hidden:{opacity:0},shown:{opacity:1}};const FADE_TIME={duration:.2};const SPRING={type:\"spring\",visualDuration:.3,bounce:.25};const FORM_BUBBLE_SPRING={type:\"spring\",stiffness:420,damping:34,mass:1};const ROW_HEIGHT_TRANSITION={duration:.32,ease:[.32,.72,0,1]};const FALLBACK=[{sender:\"them\",label:\"via Instagram\",text:\"do you do a less sweet version of the cardamom?\"},{sender:\"me\",label:\"\",text:\"we do! half the sugar, same cardamom\"},{sender:\"them\",label:\"\",text:\"perfect\"},{sender:\"them\",label:\"\",text:\"can I grab two for saturday?\"},{sender:\"me\",label:\"\",text:\"done, they'll be ready from 9\"}];const FORM_STEPS_FALLBACK=[{field:\"Name\",sample:\"Jane Smith\",reply:\"Nice to meet you, {Name.first|there}. What’s your work email?\"},{field:\"Work email\",sample:\"jane@yourbrand.com\",reply:\"Got it. Which brand are you with?\"},{field:\"Brand\",sample:\"Lumi Skin\",reply:\"{Brand|Your brand}, love it. What do you sell?\"},{field:\"What you sell\",sample:\"Gentle skincare for sensitive skin\",reply:\"Sounds great. Hit submit and we’ll be in touch about {Brand|your brand}.\"}];const FORM_GREETING_FALLBACK=[\"Hi there 👋 Let’s get you set up.\",\"First up, what’s your name?\"];addPropertyControls(MessageThread,{source:{type:ControlType.Enum,title:\"Source\",options:[\"Script\",\"Form\"],optionTitles:[\"Script\",\"Form\"],defaultValue:\"Script\"},greeting:{type:ControlType.Array,title:\"Greeting\",hidden:props=>props.source!==\"Form\",defaultValue:FORM_GREETING_FALLBACK,control:{type:ControlType.String,displayTextArea:true,defaultValue:\"Hello\"}},messages:{type:ControlType.Array,title:\"Messages\",defaultValue:FALLBACK,hidden:props=>props.source===\"Form\"&&Array.isArray(props.greeting)&&props.greeting.some(s=>(s||\"\").trim()),control:{type:ControlType.Object,controls:{sender:{type:ControlType.Enum,title:\"From\",options:[\"them\",\"me\"],optionTitles:[\"Them (left)\",\"Me (right)\"],defaultValue:\"them\"},text:{type:ControlType.String,title:\"Text\",displayTextArea:true,defaultValue:\"New message\"},image:{type:ControlType.ResponsiveImage,title:\"Photo\"},label:{type:ControlType.String,title:\"Label\",placeholder:\"via Instagram\",defaultValue:\"\"}}}},steps:{type:ControlType.Array,title:\"Steps\",hidden:props=>props.source!==\"Form\",defaultValue:FORM_STEPS_FALLBACK,control:{type:ControlType.Object,controls:{field:{type:ControlType.String,title:\"Field\",defaultValue:\"Name\"},sample:{type:ControlType.String,title:\"Sample\",defaultValue:\"Alex\"},reply:{type:ControlType.String,title:\"Reply\",displayTextArea:true,defaultValue:\"Thanks, {Name.first|there}.\"}}}},replyDelay:{type:ControlType.Number,title:\"Reply Delay\",min:0,max:4,step:.1,unit:\"s\",defaultValue:.4,hidden:props=>props.source!==\"Form\"},typingTime:{type:ControlType.Number,title:\"Typing Time\",min:0,max:6,step:.1,unit:\"s\",defaultValue:1.2,hidden:props=>props.source!==\"Form\"},autoScroll:{type:ControlType.Boolean,title:\"Auto Scroll\",defaultValue:true,hidden:props=>props.source!==\"Form\"},ticker:{type:ControlType.Boolean,title:\"Ticker\",defaultValue:false,description:\"Needs a fixed height. New messages arrive at one level and older ones slide up out of view.\"},tickerLevel:{type:ControlType.Number,title:\"Ticker Level\",min:10,max:100,step:1,unit:\"%\",defaultValue:50,description:\"Where new messages arrive: 50% is the middle, 100% the bottom.\",hidden:props=>!props.ticker},typingDots:{type:ControlType.Enum,title:\"Typing Dots\",options:[\"them\",\"both\",\"none\"],optionTitles:[\"Them only\",\"Both\",\"None\"],defaultValue:\"them\"},startOn:{type:ControlType.Enum,title:\"Start On\",options:[\"view\",\"load\"],optionTitles:[\"In View\",\"Page Load\"],defaultValue:\"view\"},startDelay:{type:ControlType.Number,title:\"Start Delay\",min:0,max:30,step:.1,unit:\"s\",defaultValue:.4},speed:{type:ControlType.Number,title:\"Speed\",min:.25,max:3,step:.25,unit:\"x\",defaultValue:1},pause:{type:ControlType.Number,title:\"Pause\",min:0,max:4,step:.1,unit:\"s\",defaultValue:.8},loop:{type:ControlType.Boolean,title:\"Loop\",defaultValue:true},loopDelay:{type:ControlType.Number,title:\"Loop Delay\",min:.5,max:20,step:.5,unit:\"s\",defaultValue:3,hidden:props=>!props.loop},gap:{type:ControlType.Number,title:\"Gap\",min:5,max:48,step:1,unit:\"px\",defaultValue:10},maxBubbleWidth:{type:ControlType.Number,title:\"Bubble Max W\",min:120,max:600,step:1,unit:\"px\",defaultValue:263},photoWidth:{type:ControlType.Number,title:\"Photo Width\",min:60,max:600,step:1,unit:\"px\",defaultValue:220},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:15,lineHeight:1.2,letterSpacing:.6}},labelFont:{type:ControlType.Font,title:\"Label Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{variant:\"Medium\",fontSize:10,lineHeight:1,letterSpacing:.4}},themColor:{type:ControlType.Color,title:\"Them Bubble\",defaultValue:\"#E9E9E7\"},themText:{type:ControlType.Color,title:\"Them Text\",defaultValue:\"#000000\"},meColor:{type:ControlType.Color,title:\"Me Bubble\",defaultValue:\"#1D1D1F\"},meText:{type:ControlType.Color,title:\"Me Text\",defaultValue:\"#FFFFFF\"},labelColor:{type:ControlType.Color,title:\"Label\",defaultValue:\"#89898D\"},themGradient:{type:ControlType.Boolean,title:\"Them Gradient\",defaultValue:false},themColor2:{type:ControlType.Color,title:\"Them Bubble 2\",defaultValue:\"#CFCFCB\",hidden:props=>!props.themGradient},meGradient:{type:ControlType.Boolean,title:\"Me Gradient\",defaultValue:false},meColor2:{type:ControlType.Color,title:\"Me Bubble 2\",defaultValue:\"#45454B\",hidden:props=>!props.meGradient},gradientAngle:{type:ControlType.Number,title:\"Gradient Angle\",min:0,max:360,step:5,unit:\"\\xb0\",defaultValue:180,hidden:props=>!props.themGradient&&!props.meGradient},bubbleOpacity:{type:ControlType.Number,title:\"Bubble Opacity\",min:0,max:100,step:1,unit:\"%\",defaultValue:100},bubbleBlur:{type:ControlType.Number,title:\"Bubble Blur\",min:0,max:60,step:1,unit:\"px\",defaultValue:0}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"MessageThread\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./MessageThread.map"],"mappings":"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"}