{"version":3,"file":"script_main.DcomzrfL.mjs","names":["_Fragment","React","useState","useRef","useCallback","e","Navigation","Footer2","useRef","React.useId","PropertyOverrides","React.createElement","Chat","Framer.PageRoot","Framer.lazy","Framer.useCurrentRoute","Framer.useLocaleInfo","Framer.useRouter","React.Fragment","React.memo","React.useCallback","React.useEffect","React.useRef","React.useState","React.useLayoutEffect","Framer.LazyValue","Framer.LibraryFeaturesProvider","Framer.GracefullyDegradingErrorBoundary","Framer.PageEffectsProvider","breakpoints","Framer.patchRoutesForABTesting","e","routeData","Framer.inferInitialRouteFromPath","Framer.yieldToMain","React.startTransition","Framer.ErrorPlaceholder"],"sources":["https:/framerusercontent.com/modules/JlRKZgpReTIkjyUvK0US/NV4HS8n6glMvvB2m0Yvj/XpanderWidget.js","https:/framerusercontent.com/modules/tLnrZUOR44hsK79Ouxkp/87Oysk31YUuuvNtBCbsX/BmO3exRYa.js","framer:toplevel/main"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import React,{useState,useRef,useEffect,useCallback}from\"react\";import{createPortal}from\"react-dom\";const DEFAULT_ICON=\"https://assets.xpanderai.io/static/favicon.png\";// Fixed theme colors\nconst colors={background:\"#0a0a0f\",backgroundSecondary:\"#12121a\",backgroundTertiary:\"#1a1a24\",border:\"rgba(139, 92, 246, 0.2)\",borderLight:\"rgba(255, 255, 255, 0.08)\",primary:\"#8b5cf6\",primaryLight:\"#8b5cf6\",text:\"#ffffff\",textSecondary:\"rgba(255, 255, 255, 0.7)\",textMuted:\"rgba(255, 255, 255, 0.5)\",success:\"#22c55e\"};// Keyframes and custom scrollbar\nconst keyframes=`\n  @keyframes slideUp {\n    from { opacity: 0; transform: translateY(20px) scale(0.95); }\n    to { opacity: 1; transform: translateY(0) scale(1); }\n  }\n  @keyframes fadeIn {\n    from { opacity: 0; }\n    to { opacity: 1; }\n  }\n  @keyframes bounce {\n    0%, 80%, 100% { transform: translateY(0); }\n    40% { transform: translateY(-6px); }\n  }\n  @keyframes glow {\n    0%, 100% { box-shadow: 0 0 25px rgba(139, 92, 246, 0.6), 0 0 50px rgba(139, 92, 246, 0.3); }\n    50% { box-shadow: 0 0 40px rgba(139, 92, 246, 0.8), 0 0 80px rgba(139, 92, 246, 0.5); }\n  }\n  @keyframes notificationSlide {\n    from { opacity: 0; transform: translateX(10px) scale(0.95); }\n    to { opacity: 1; transform: translateX(0) scale(1); }\n  }\n  .xpander-chat-scroll::-webkit-scrollbar {\n    width: 6px;\n  }\n  .xpander-chat-scroll::-webkit-scrollbar-track {\n    background: transparent;\n  }\n  .xpander-chat-scroll::-webkit-scrollbar-thumb {\n    background: rgba(139, 92, 246, 0.3);\n    border-radius: 3px;\n  }\n  .xpander-chat-scroll::-webkit-scrollbar-thumb:hover {\n    background: rgba(139, 92, 246, 0.5);\n  }\n`;// Simple syntax highlighting (no external deps)\nconst syntaxColors={keyword:\"#c678dd\",string:\"#98c379\",number:\"#d19a66\",comment:\"#5c6370\",function:\"#61afef\",variable:\"#abb2bf\"};function highlightCode(code){// Escape HTML entities first\nlet result=code.replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\");// Process line by line to handle comments correctly\n// Comments should not be further processed\nconst lines=result.split(\"\\n\");const processedLines=lines.map(line=>{// Check for line comments (// or # at start or after space)\nconst jsCommentMatch=line.match(/^(.*?)(\\/\\/.*)$/);const pyCommentMatch=line.match(/^(.*?)(#.*)$/);if(jsCommentMatch&&jsCommentMatch[1].split('\"').length%2===1){// JS comment not inside string\nconst beforeComment=highlightCodeLine(jsCommentMatch[1]);const comment=`<span style=\"color:${syntaxColors.comment};font-style:italic\">${jsCommentMatch[2]}</span>`;return beforeComment+comment;}else if(pyCommentMatch&&pyCommentMatch[1].split('\"').length%2===1&&pyCommentMatch[1].split(\"'\").length%2===1){// Python comment not inside string\nconst beforeComment=highlightCodeLine(pyCommentMatch[1]);const comment=`<span style=\"color:${syntaxColors.comment};font-style:italic\">${pyCommentMatch[2]}</span>`;return beforeComment+comment;}return highlightCodeLine(line);});return processedLines.join(\"\\n\");}function highlightCodeLine(line){return line.replace(/([\"'`])(?:(?!\\1)[^\\\\]|\\\\.)*\\1/g,`<span style=\"color:${syntaxColors.string}\">$&</span>`).replace(/\\b(\\d+\\.?\\d*)\\b/g,`<span style=\"color:${syntaxColors.number}\">$1</span>`).replace(/\\b(const|let|var|function|return|if|else|for|while|import|export|from|class|def|async|await|try|catch|throw|new|true|false|null|undefined|None|True|False|print|self)\\b/g,`<span style=\"color:${syntaxColors.keyword}\">$1</span>`).replace(/(\\w+)(\\s*\\()/g,`<span style=\"color:${syntaxColors.function}\">$1</span>$2`);}// Code block with copy button\nconst CodeBlock=({code,codeKey})=>{const highlighted=highlightCode(code);return /*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",margin:\"6px 0\"},children:[/*#__PURE__*/_jsx(CopyButton,{text:code,style:{position:\"absolute\",top:6,right:6,zIndex:1}}),/*#__PURE__*/_jsx(\"pre\",{style:{background:\"rgba(0,0,0,0.4)\",padding:\"10px 12px\",paddingTop:32,borderRadius:6,overflow:\"auto\",fontSize:\"0.75em\",lineHeight:1.5,fontFamily:\"ui-monospace, monospace\",margin:0,border:`1px solid ${colors.borderLight}`,maxHeight:400,whiteSpace:\"pre-wrap\",wordBreak:\"break-word\"},children:/*#__PURE__*/_jsx(\"code\",{dangerouslySetInnerHTML:{__html:highlighted}})})]},codeKey);};// Simple markdown renderer\nfunction renderMarkdown(text){if(!text)return null;// Pre-process: normalize code blocks that might be on same line as text\n// e.g., \"text:\\n```bash\" or \"text:```bash\" should work\nconst normalizedText=text.replace(/```(\\w*)\\n?/g,\"\\n```$1\\n\").replace(/\\n```\\n?$/gm,\"\\n```\\n\");const lines=normalizedText.split(\"\\n\");const elements=[];let inCodeBlock=false;let codeBlockContent=[];let codeBlockLang=\"\";const processInline=(line,key)=>{const parts=[];let remaining=line;let i=0;while(remaining.length>0){const boldMatch=remaining.match(/\\*\\*(.+?)\\*\\*/);const codeMatch=remaining.match(/`([^`]+)`/);// Robust link regex - captures everything between ( and )\nconst linkMatch=remaining.match(/\\[([^\\]]+)\\]\\(([^)]+)\\)/);const matches=[{match:boldMatch,type:\"bold\"},{match:codeMatch,type:\"code\"},{match:linkMatch,type:\"link\"}].filter(m=>m.match).sort((a,b)=>(a.match?.index||0)-(b.match?.index||0));if(!matches.length){parts.push(remaining);break;}const{match,type}=matches[0];const idx=match.index;if(idx>0)parts.push(remaining.substring(0,idx));if(type===\"bold\"){parts.push(/*#__PURE__*/_jsx(\"strong\",{children:match[1]},`${key}-${i++}`));}else if(type===\"code\"){parts.push(/*#__PURE__*/_jsx(\"code\",{style:{background:\"rgba(30,30,40,0.9)\",padding:\"2px 6px\",borderRadius:4,fontFamily:\"ui-monospace, SFMono-Regular, monospace\",fontSize:\"0.88em\",color:\"#e0e0e0\"},children:match[1]},`${key}-${i++}`));}else if(type===\"link\"){parts.push(/*#__PURE__*/_jsx(\"a\",{href:match[2],target:\"_blank\",rel:\"noopener noreferrer\",style:{color:colors.primaryLight,textDecoration:\"underline\"},children:match[1]},`${key}-${i++}`));}remaining=remaining.substring(idx+match[0].length);}return parts.length===1?parts[0]:parts;};lines.forEach((line,index)=>{const key=`line-${index}`;const trimmedLine=line.trim();// Check for code block markers (with or without language specifier)\nif(trimmedLine.startsWith(\"```\")){if(!inCodeBlock){inCodeBlock=true;codeBlockLang=trimmedLine.slice(3).trim();codeBlockContent=[];}else{const code=codeBlockContent.join(\"\\n\");elements.push(/*#__PURE__*/_jsx(CodeBlock,{code:code,codeKey:key},key));inCodeBlock=false;codeBlockContent=[];codeBlockLang=\"\";}return;}if(inCodeBlock){codeBlockContent.push(line);return;}// Headers\nif(line.startsWith(\"### \")){elements.push(/*#__PURE__*/_jsx(\"h4\",{style:{margin:\"12px 0 8px\",fontSize:\"1em\",fontWeight:600},children:processInline(line.slice(4),key)},key));return;}if(line.startsWith(\"## \")){elements.push(/*#__PURE__*/_jsx(\"h3\",{style:{margin:\"12px 0 8px\",fontSize:\"1.1em\",fontWeight:600},children:processInline(line.slice(3),key)},key));return;}if(line.startsWith(\"# \")){elements.push(/*#__PURE__*/_jsx(\"h2\",{style:{margin:\"12px 0 8px\",fontSize:\"1.2em\",fontWeight:600},children:processInline(line.slice(2),key)},key));return;}// Bullet lists (also handle indented bullets)\nconst bulletMatch=line.match(/^(\\s*)[-*]\\s+(.+)/);if(bulletMatch){const indent=bulletMatch[1].length;elements.push(/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",gap:8,margin:\"4px 0\",paddingLeft:indent*8},children:[/*#__PURE__*/_jsx(\"span\",{style:{color:colors.primaryLight,flexShrink:0},children:\"•\"}),/*#__PURE__*/_jsx(\"span\",{style:{flex:1},children:processInline(bulletMatch[2],key)})]},key));return;}// Numbered lists\nconst numMatch=line.match(/^(\\s*)(\\d+)\\.\\s+(.+)/);if(numMatch){const indent=numMatch[1].length;elements.push(/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",gap:8,margin:\"4px 0\",paddingLeft:indent*8},children:[/*#__PURE__*/_jsxs(\"span\",{style:{color:colors.primaryLight,minWidth:20,flexShrink:0},children:[numMatch[2],\".\"]}),/*#__PURE__*/_jsx(\"span\",{style:{flex:1},children:processInline(numMatch[3],key)})]},key));return;}if(!line.trim()){elements.push(/*#__PURE__*/_jsx(\"div\",{style:{height:8}},key));return;}elements.push(/*#__PURE__*/_jsx(\"p\",{style:{margin:\"4px 0\"},children:processInline(line,key)},key));});return /*#__PURE__*/_jsx(_Fragment,{children:elements});}// Icons\nconst SendIcon=()=>/*#__PURE__*/_jsx(\"svg\",{width:\"18\",height:\"18\",viewBox:\"0 0 24 24\",fill:\"none\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M5 12h14M13 5l7 7-7 7\",stroke:\"white\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\"})});const CloseIcon=()=>/*#__PURE__*/_jsx(\"svg\",{width:\"24\",height:\"24\",viewBox:\"0 0 24 24\",fill:\"none\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M18 6L6 18M6 6L18 18\",stroke:\"white\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\"})});const LoadingDots=()=>/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",gap:5,padding:\"4px 0\"},children:[0,.2,.4].map((delay,i)=>/*#__PURE__*/_jsx(\"div\",{style:{width:8,height:8,borderRadius:\"50%\",backgroundColor:colors.textMuted,animation:`bounce 1.4s infinite ease-in-out ${delay}s`}},i))});const CopyIcon=()=>/*#__PURE__*/_jsxs(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[/*#__PURE__*/_jsx(\"rect\",{x:\"9\",y:\"9\",width:\"13\",height:\"13\",rx:\"2\",ry:\"2\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"})]});const CheckIcon=()=>/*#__PURE__*/_jsx(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:/*#__PURE__*/_jsx(\"polyline\",{points:\"20 6 9 17 4 12\"})});const CopyButton=({text,style})=>{const[copied,setCopied]=useState(false);const handleCopy=async()=>{try{await navigator.clipboard.writeText(text);setCopied(true);setTimeout(()=>setCopied(false),2e3);}catch(err){console.error(\"Failed to copy:\",err);}};return /*#__PURE__*/_jsxs(\"button\",{onClick:handleCopy,style:{background:copied?colors.success:\"rgba(139,92,246,0.2)\",border:\"none\",borderRadius:4,padding:\"4px 8px\",cursor:\"pointer\",display:\"flex\",alignItems:\"center\",gap:4,color:copied?\"#fff\":colors.textMuted,fontSize:11,transition:\"all 0.2s ease\",...style},onMouseEnter:e=>!copied&&(e.currentTarget.style.background=\"rgba(139,92,246,0.3)\"),onMouseLeave:e=>!copied&&(e.currentTarget.style.background=\"rgba(139,92,246,0.2)\"),children:[copied?/*#__PURE__*/_jsx(CheckIcon,{}):/*#__PURE__*/_jsx(CopyIcon,{}),copied?\"Copied!\":\"Copy\"]});};// Default conversation starters\nconst defaultStarters=[{label:\"What can you do?\",message:\"What are your capabilities and how can you help me?\"},{label:\"Getting started\",message:\"How do I get started with xpander.ai?\"},{label:\"Pricing info\",message:\"What are the pricing options available?\"}];// Fire-and-forget webhook call (never blocks, never fails visibly)\nfunction triggerConversationHook(hooksUrl,threadId){if(!hooksUrl)return;// Skip if hooks not configured\ntry{fetch(`${hooksUrl}/thread/message`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify({threadId,timestamp:new Date().toISOString()})}).catch(()=>{})// Silently ignore errors\n;}catch{// Silently ignore errors - hooks should never impact chat\n}}// Main component\nexport function XpanderChatWidget({proxyUrl=\"\",stagingProxyUrl=\"\",stagingHostname=\"\",position=\"bottom-right\",agentName=\"AI Assistant\",agentIcon=DEFAULT_ICON,subtitle=\"Online\",welcomeText=\"Hello! How can I help you today?\",startersJson=\"\",hooksUrl=\"\",stagingHooksUrl=\"\",fallbackMessage=\"Thanks for reaching out! Our chat system is currently being set up. Please check back soon or contact us at support@xpander.ai\",notificationMessage=\"How can I help you?\",lockInputWhileStreaming=true}){// Detect staging environment based on hostname\nconst isStaging=React.useMemo(()=>{if(!stagingHostname)return false;const hostname=typeof window!==\"undefined\"?window.location.hostname:\"\";return hostname.includes(stagingHostname);},[stagingHostname]);// Use staging URLs if in staging environment and staging URLs are provided\n// Note: hooks don't fallback to prod - if stagingHooksUrl is not set, analytics are skipped in staging\nconst activeProxyUrl=isStaging&&stagingProxyUrl?stagingProxyUrl:proxyUrl;const activeHooksUrl=isStaging?stagingHooksUrl:hooksUrl;// Parse conversation starters from JSON string\nconst conversationStarters=React.useMemo(()=>{if(!startersJson||!startersJson.trim())return defaultStarters;try{const parsed=JSON.parse(startersJson);if(Array.isArray(parsed))return parsed;return defaultStarters;}catch{return defaultStarters;}},[startersJson]);const[state,setState]=useState({isOpen:false,messages:[],isLoading:false,taskId:null,isCallActive:false,isOffline:false,isHidden:false});const[inputValue,setInputValue]=useState(\"\");const[isHovered,setIsHovered]=useState(false);const[showNotification,setShowNotification]=useState(true);const[chatSize,setChatSize]=useState({width:400,height:560,autoExpanded:false});const[isResizing,setIsResizing]=useState(false);const[isMobile,setIsMobile]=useState(false);const[portalContainer,setPortalContainer]=useState(null);const messagesEndRef=useRef(null);const inputRef=useRef(null);const resizeStartRef=useRef({x:0,y:0,width:400,height:560});const taskIdRef=useRef(null);const isLoadingRef=useRef(false);// Detect mobile and create portal container\nuseEffect(()=>{const checkMobile=()=>setIsMobile(window.innerWidth<=768);checkMobile();window.addEventListener(\"resize\",checkMobile);// Create portal container for mobile fullscreen with max z-index\nconst container=document.createElement(\"div\");container.id=\"xpander-mobile-portal\";container.style.cssText=\"position:fixed;top:0;left:0;width:100vw;height:100vh;height:100dvh;z-index:2147483647;pointer-events:none;overflow:hidden;\";document.body.appendChild(container);setPortalContainer(container);return()=>{window.removeEventListener(\"resize\",checkMobile);if(container.parentNode){container.parentNode.removeChild(container);}};},[]);// Auto-scroll and auto-expand\nuseEffect(()=>{messagesEndRef.current?.scrollIntoView({behavior:\"smooth\"});if(state.messages.length>0&&!chatSize.autoExpanded){const totalLen=state.messages.reduce((sum,msg)=>sum+msg.content.length,0);const hasCode=state.messages.some(msg=>msg.content.includes(\"```\"));let targetHeight=560,targetWidth=400;if(hasCode){targetWidth=480;targetHeight=620;}if(totalLen>500)targetHeight=Math.max(targetHeight,620);if(totalLen>1e3)targetHeight=Math.max(targetHeight,680);if(targetHeight>chatSize.height||targetWidth>chatSize.width){setChatSize(prev=>({width:Math.max(prev.width,targetWidth),height:Math.max(prev.height,targetHeight),autoExpanded:false}));}}},[state.messages,chatSize.autoExpanded,chatSize.height,chatSize.width]);useEffect(()=>{if(state.isOpen){setTimeout(()=>inputRef.current?.focus(),100);setShowNotification(false);}},[state.isOpen]);// Resize handling with requestAnimationFrame throttling for smooth performance\nconst handleResizeStart=useCallback(e=>{e.preventDefault();e.stopPropagation();setIsResizing(true);resizeStartRef.current={x:e.clientX,y:e.clientY,width:chatSize.width,height:chatSize.height};},[chatSize.width,chatSize.height]);useEffect(()=>{if(!isResizing)return;let rafId=null;const onMove=e=>{e.preventDefault();// Cancel any pending RAF\nif(rafId!==null){cancelAnimationFrame(rafId);}// Schedule update for next frame\nrafId=requestAnimationFrame(()=>{const dX=resizeStartRef.current.x-e.clientX;const dY=resizeStartRef.current.y-e.clientY;const newWidth=Math.min(900,Math.max(320,resizeStartRef.current.width+dX));const newHeight=Math.min(1e3,Math.max(400,resizeStartRef.current.height+dY));setChatSize({width:newWidth,height:newHeight,autoExpanded:true});rafId=null;});};const onUp=()=>{if(rafId!==null){cancelAnimationFrame(rafId);rafId=null;}setIsResizing(false);};document.addEventListener(\"mousemove\",onMove,{passive:false});document.addEventListener(\"mouseup\",onUp);return()=>{if(rafId!==null){cancelAnimationFrame(rafId);}document.removeEventListener(\"mousemove\",onMove);document.removeEventListener(\"mouseup\",onUp);};},[isResizing]);const toggleChat=useCallback(()=>setState(prev=>({...prev,isOpen:!prev.isOpen})),[]);const hideWidget=useCallback(()=>{setState(prev=>({...prev,isHidden:true,isOpen:false}));},[]);const generateId=()=>Math.random().toString(36).substring(2,9);const sendMessageWithContent=useCallback(async messageContent=>{if(!messageContent.trim())return;// In lock mode, prevent sending while loading\n// In unlock mode, allow concurrent messages\nif(lockInputWhileStreaming&&isLoadingRef.current)return;isLoadingRef.current=true;// Read taskId from ref (synchronous, always current)\nconst currentTaskId=taskIdRef.current;// Track existing thread activity (fire-and-forget)\nif(currentTaskId){triggerConversationHook(activeHooksUrl,currentTaskId);}const userMsg={id:generateId(),role:\"user\",content:messageContent.trim(),timestamp:new Date};setState(prev=>({...prev,messages:[...prev.messages,userMsg],isLoading:true,isCallActive:true}));setInputValue(\"\");const agentMsgId=generateId();let hasReceivedContent=false// Track if we got any content (declared outside try for catch access)\n;try{// If no proxy URL configured, show fallback message\nif(!activeProxyUrl||!activeProxyUrl.trim()){throw new Error(\"Proxy URL not configured\");}// Use the taskId we already read at the start of the function\nconst res=await fetch(activeProxyUrl,{method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify({message:userMsg.content,threadId:currentTaskId||undefined})});if(!res.ok)throw new Error(`API error: ${res.status}`);const reader=res.body?.getReader();const decoder=new TextDecoder;let content=\"\",added=false,buffer=\"\";if(!reader){throw new Error(\"No response body\");}let streamDone=false;const STREAM_TIMEOUT=12e4// 2 min timeout\n;let timeoutId=null;// Helper to add timeout to reader.read()\nconst readWithTimeout=async()=>{return new Promise((resolve,reject)=>{// Clear any existing timeout\nif(timeoutId)clearTimeout(timeoutId);// Set new timeout\ntimeoutId=setTimeout(()=>{streamDone=true// Signal to break the loop gracefully\n;resolve({done:true,value:undefined})// Resolve instead of reject\n;},STREAM_TIMEOUT);reader.read().then(result=>{if(timeoutId)clearTimeout(timeoutId);resolve(result);},err=>{if(timeoutId)clearTimeout(timeoutId);reject(err);});});};const processLine=line=>{if(!line.startsWith(\"data: \"))return;const data=line.slice(6).trim();if(data===\"[DONE]\"||!data){streamDone=true;return;}try{const parsed=JSON.parse(data);if(parsed.type===\"task_created\"&&(parsed.task_id||parsed.thread_id)){const threadId=parsed.thread_id||parsed.task_id;// Update both ref (for sync reads) and state\ntaskIdRef.current=threadId;setState(prev=>({...prev,taskId:threadId}));triggerConversationHook(activeHooksUrl,threadId)// Fire-and-forget hook\n;}// Handle completion events (task finished, result ready)\nif(parsed.type===\"result\"||parsed.type===\"task_completed\"||parsed.type===\"complete\"||parsed.type===\"done\"||parsed.status===\"completed\"){streamDone=true;}if(parsed.type===\"chunk\"&&typeof parsed.data===\"string\"){content+=parsed.data;hasReceivedContent=true;if(!added){added=true;setState(prev=>({...prev,messages:[...prev.messages,{id:agentMsgId,role:\"agent\",content,timestamp:new Date}]}));}else{setState(prev=>({...prev,messages:prev.messages.map(m=>m.id===agentMsgId?{...m,content}:m)}));}}}catch{/* ignore parse errors */}};try{while(true){const{done,value}=await readWithTimeout();if(done||streamDone){// Process any remaining data in buffer when stream ends\nif(buffer.trim()){processLine(buffer);}break;}buffer+=decoder.decode(value,{stream:true});const lines=buffer.split(\"\\n\");buffer=lines.pop()||\"\";for(const line of lines){processLine(line);if(streamDone)break;}}}finally{// Always cleanup timeout and release the reader lock\nif(timeoutId)clearTimeout(timeoutId);reader.releaseLock();}}catch(err){console.error(\"Chat error:\",err);// Only show error message if we haven't received any content\n// This prevents showing error + response together\nif(!hasReceivedContent){setState(prev=>({...prev,isOffline:true,messages:[...prev.messages,{id:agentMsgId,role:\"agent\",content:fallbackMessage,timestamp:new Date}]}));}}finally{// CRITICAL: Always reset loading state - use flushSync to ensure immediate update\nisLoadingRef.current=false;setState(prev=>({...prev,isLoading:false}));}},[activeProxyUrl,activeHooksUrl,fallbackMessage,lockInputWhileStreaming]);// Safety: sync isLoading state with ref on every render (catches any desync)\nuseEffect(()=>{if(state.isLoading!==isLoadingRef.current){// State and ref are out of sync - trust the ref\nif(!isLoadingRef.current&&state.isLoading){setState(prev=>({...prev,isLoading:false}));}}},[state.isLoading]);const sendMessage=useCallback(()=>{sendMessageWithContent(inputValue);},[inputValue,sendMessageWithContent]);const endCall=useCallback(()=>{taskIdRef.current=null;isLoadingRef.current=false;setState({isOpen:false,messages:[],isLoading:false,taskId:null,isCallActive:false,isOffline:false});},[]);const positionStyles=position===\"bottom-right\"?{right:24,bottom:24}:{left:24,bottom:24};const chatWindowPosition=position===\"bottom-right\"?{right:0}:{left:0};// Chat window content (shared between desktop and mobile portal)\nconst chatWindowContent=/*#__PURE__*/_jsxs(\"div\",{style:isMobile?{position:\"absolute\",top:0,left:0,right:0,bottom:0,width:\"100%\",height:\"100%\",background:colors.background,display:\"flex\",flexDirection:\"column\",overflow:\"hidden\",fontFamily:'-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif',pointerEvents:\"auto\"}:{position:\"absolute\",bottom:80,width:chatSize.width,height:chatSize.height,background:colors.background,borderRadius:20,boxShadow:`0 24px 80px rgba(0,0,0,0.6), 0 0 0 1px ${colors.border}`,display:\"flex\",flexDirection:\"column\",overflow:\"hidden\",animation:\"slideUp 0.4s cubic-bezier(0.16,1,0.3,1)\",backdropFilter:\"blur(20px)\",transition:isResizing?\"none\":\"width 0.3s ease, height 0.3s ease\",pointerEvents:\"auto\",...chatWindowPosition},children:[!isMobile&&/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",top:6,left:6,width:20,height:20,cursor:\"nw-resize\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",borderRadius:6,backgroundColor:\"rgba(139,92,246,0.15)\",border:\"1px solid rgba(139,92,246,0.3)\",opacity:.7,transition:\"all 0.2s ease\",zIndex:10},onMouseDown:handleResizeStart,onMouseEnter:e=>Object.assign(e.currentTarget.style,{opacity:\"1\",backgroundColor:\"rgba(139,92,246,0.25)\"}),onMouseLeave:e=>!isResizing&&Object.assign(e.currentTarget.style,{opacity:\"0.7\",backgroundColor:\"rgba(139,92,246,0.15)\"}),children:/*#__PURE__*/_jsx(\"svg\",{width:\"10\",height:\"10\",viewBox:\"0 0 12 12\",fill:\"none\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M1 11L11 1M5 11L11 5M9 11L11 9\",stroke:colors.primaryLight,strokeWidth:\"1.5\",strokeLinecap:\"round\"})})}),/*#__PURE__*/_jsxs(\"div\",{style:{padding:isMobile?\"12px 16px\":\"20px 24px\",paddingTop:isMobile?\"calc(12px + env(safe-area-inset-top, 0px))\":\"20px\",display:\"flex\",alignItems:\"center\",gap:12,background:colors.background,borderBottom:`1px solid ${colors.borderLight}`,flexShrink:0},children:[/*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",width:isMobile?36:44,height:isMobile?36:44,borderRadius:\"50%\",boxShadow:`0 4px 16px ${\"rgba(139, 92, 246, 0.3)\"}`,overflow:\"hidden\",flexShrink:0},children:[/*#__PURE__*/_jsx(\"img\",{src:agentIcon,alt:agentName,style:{width:\"100%\",height:\"100%\",borderRadius:\"50%\",objectFit:\"cover\"}}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",bottom:1,right:1,width:8,height:8,borderRadius:\"50%\",backgroundColor:state.isOffline?\"#ef4444\":colors.success,border:`2px solid ${colors.background}`}})]}),/*#__PURE__*/_jsxs(\"div\",{style:{flex:1,minWidth:0},children:[/*#__PURE__*/_jsx(\"h3\",{style:{fontSize:isMobile?14:16,fontWeight:600,color:colors.text,margin:0},children:agentName}),/*#__PURE__*/_jsx(\"p\",{style:{fontSize:11,color:state.isOffline?\"#ef4444\":colors.textSecondary,margin:\"2px 0 0 0\"},children:state.isOffline?\"Offline\":subtitle})]}),/*#__PURE__*/_jsx(\"button\",{onClick:isMobile?endCall:hideWidget,style:{width:32,height:32,borderRadius:8,border:\"none\",background:\"rgba(255,255,255,0.1)\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",cursor:\"pointer\",flexShrink:0,transition:\"all 0.2s ease\"},onMouseEnter:e=>{e.currentTarget.style.background=\"rgba(255,255,255,0.15)\";},onMouseLeave:e=>{e.currentTarget.style.background=\"rgba(255,255,255,0.1)\";},children:/*#__PURE__*/_jsx(CloseIcon,{})})]}),/*#__PURE__*/_jsxs(\"div\",{className:state.messages.length>0?\"xpander-chat-scroll\":\"\",style:{flex:1,overflowY:state.messages.length>0?\"auto\":\"hidden\",padding:isMobile?12:24,display:\"flex\",flexDirection:\"column\",gap:isMobile?12:16,background:`linear-gradient(180deg, transparent 0%, ${colors.backgroundSecondary} 100%)`},children:[state.messages.length===0?/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",alignItems:\"center\",justifyContent:\"center\",textAlign:\"center\",padding:\"20px 16px\",flex:1},children:[/*#__PURE__*/_jsx(\"div\",{style:{width:72,height:72,borderRadius:\"50%\",marginBottom:16,boxShadow:`0 8px 32px ${\"rgba(139, 92, 246, 0.3)\"}`,animation:\"glow 3s ease-in-out infinite\",overflow:\"hidden\",flexShrink:0},children:/*#__PURE__*/_jsx(\"img\",{src:agentIcon,alt:agentName,style:{width:72,height:72,borderRadius:\"50%\",objectFit:\"cover\"}})}),/*#__PURE__*/_jsx(\"h2\",{style:{fontSize:15,color:colors.text,margin:\"0 0 16px 0\",lineHeight:1.4},children:welcomeText}),conversationStarters.length>0&&/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexWrap:\"wrap\",gap:6,justifyContent:\"center\",maxWidth:\"100%\"},children:conversationStarters.map((starter,idx)=>/*#__PURE__*/_jsx(\"button\",{onClick:()=>sendMessageWithContent(starter.message),style:{background:\"rgba(139, 92, 246, 0.15)\",border:`1px solid ${colors.border}`,borderRadius:16,padding:\"6px 12px\",fontSize:12,color:colors.textSecondary,cursor:\"pointer\",transition:\"all 0.2s ease\"},onMouseEnter:e=>{e.currentTarget.style.background=\"rgba(139, 92, 246, 0.25)\";e.currentTarget.style.color=colors.text;e.currentTarget.style.borderColor=colors.primary;},onMouseLeave:e=>{e.currentTarget.style.background=\"rgba(139, 92, 246, 0.15)\";e.currentTarget.style.color=colors.textSecondary;e.currentTarget.style.borderColor=colors.border;},children:starter.label},idx))})]}):state.messages.map(msg=>msg.role===\"user\"?/*#__PURE__*/_jsx(\"div\",{style:{maxWidth:\"90%\",padding:\"14px 18px\",borderRadius:16,fontSize:14,lineHeight:1.6,wordBreak:\"break-word\",animation:\"fadeIn 0.3s ease\",alignSelf:\"flex-end\",background:colors.primary,color:colors.text,borderBottomRightRadius:6,boxShadow:`0 4px 16px ${\"rgba(139, 92, 246, 0.4)\"}`},children:msg.content},msg.id):/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"flex-start\",gap:10,alignSelf:\"flex-start\",animation:\"fadeIn 0.3s ease\"},children:[/*#__PURE__*/_jsx(\"img\",{src:agentIcon,alt:agentName,style:{width:32,height:32,borderRadius:\"50%\",flexShrink:0,border:`2px solid ${colors.border}`,boxShadow:`0 2px 8px ${\"rgba(139, 92, 246, 0.2)\"}`,marginTop:4}}),/*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",maxWidth:\"90%\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{padding:\"14px 18px\",paddingBottom:36,borderRadius:16,fontSize:14,lineHeight:1.6,wordBreak:\"break-word\",backgroundColor:colors.backgroundTertiary,color:colors.text,borderBottomLeftRadius:6,border:`1px solid ${colors.borderLight}`},children:msg.content?renderMarkdown(msg.content):/*#__PURE__*/_jsx(LoadingDots,{})}),msg.content&&/*#__PURE__*/_jsx(CopyButton,{text:msg.content,style:{position:\"absolute\",bottom:8,right:8}})]})]},msg.id)),state.isLoading&&state.messages[state.messages.length-1]?.role===\"user\"&&/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"flex-end\",gap:10,alignSelf:\"flex-start\",animation:\"fadeIn 0.3s ease\"},children:[/*#__PURE__*/_jsx(\"img\",{src:agentIcon,alt:agentName,style:{width:32,height:32,borderRadius:\"50%\",flexShrink:0,border:`2px solid ${colors.border}`}}),/*#__PURE__*/_jsx(\"div\",{style:{padding:\"14px 18px\",borderRadius:16,backgroundColor:colors.backgroundTertiary,border:`1px solid ${colors.borderLight}`},children:/*#__PURE__*/_jsx(LoadingDots,{})})]}),/*#__PURE__*/_jsx(\"div\",{ref:messagesEndRef})]}),/*#__PURE__*/_jsxs(\"div\",{style:{textAlign:\"center\",fontSize:isMobile?9:10,color:colors.textMuted,padding:isMobile?\"6px 12px\":\"8px 12px\",background:colors.backgroundSecondary,lineHeight:1.4,flexShrink:0},children:[\"Powered by\",\" \",/*#__PURE__*/_jsx(\"a\",{href:\"https://xpander.ai\",target:\"_blank\",rel:\"noopener noreferrer\",style:{color:colors.primary,fontWeight:500,textDecoration:\"none\"},children:\"xpander.ai\"}),\" \",\"| the private cloud for autonomous agents\",/*#__PURE__*/_jsx(\"br\",{}),/*#__PURE__*/_jsx(\"a\",{href:\"https://xpander.ai\",target:\"_blank\",rel:\"noopener noreferrer\",style:{color:colors.primary,textDecoration:\"underline\",fontSize:isMobile?8:9},children:\"get yours now\"})]}),/*#__PURE__*/_jsxs(\"div\",{style:{padding:isMobile?\"10px 16px\":\"16px 20px 20px\",paddingBottom:isMobile?\"calc(10px + env(safe-area-inset-bottom, 0px))\":\"20px\",display:\"flex\",gap:10,alignItems:\"center\",background:colors.background,borderTop:`1px solid ${colors.borderLight}`,flexShrink:0,position:\"relative\",zIndex:10},children:[/*#__PURE__*/_jsx(\"input\",{ref:inputRef,type:\"text\",value:inputValue,onChange:e=>setInputValue(e.target.value),onKeyPress:e=>e.key===\"Enter\"&&!e.shiftKey&&(e.preventDefault(),sendMessage()),placeholder:\"Type your message...\",style:{flex:1,padding:\"14px 20px\",fontSize:16,color:colors.text,backgroundColor:colors.backgroundTertiary,border:`1px solid ${colors.borderLight}`,borderRadius:14,outline:\"none\",position:\"relative\",zIndex:1},onFocus:e=>{e.currentTarget.style.borderColor=colors.primary;e.currentTarget.style.boxShadow=`0 0 0 3px ${\"rgba(139, 92, 246, 0.1)\"}`;},onBlur:e=>{e.currentTarget.style.borderColor=colors.borderLight;e.currentTarget.style.boxShadow=\"none\";}}),/*#__PURE__*/_jsx(\"button\",{style:{width:44,height:44,flexShrink:0,borderRadius:12,border:\"none\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",cursor:\"pointer\",background:colors.primary,boxShadow:`0 4px 16px ${colors.primary}4d`,opacity:inputValue.trim()&&!(lockInputWhileStreaming&&state.isLoading)?1:.5},onClick:sendMessage,disabled:!inputValue.trim()||lockInputWhileStreaming&&state.isLoading,children:/*#__PURE__*/_jsx(SendIcon,{})})]})]});// Don't render anything if widget is hidden\nif(state.isHidden){return null;}return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{children:keyframes}),/*#__PURE__*/_jsxs(\"div\",{style:{position:\"fixed\",zIndex:9999,fontFamily:'-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif',// Explicit dimensions to contain the chat window\nwidth:state.isOpen&&!isMobile?chatSize.width:60,height:state.isOpen&&!isMobile?chatSize.height+80+24:60,pointerEvents:\"none\",...positionStyles},children:[state.isOpen&&!isMobile&&chatWindowContent,state.isOpen&&isMobile&&portalContainer&&/*#__PURE__*/createPortal(chatWindowContent,portalContainer),showNotification&&!state.isOpen&&/*#__PURE__*/_jsxs(\"div\",{style:{position:\"absolute\",bottom:70,whiteSpace:\"nowrap\",padding:\"12px 18px\",backgroundColor:colors.backgroundSecondary,color:colors.text,borderRadius:16,fontSize:14,fontWeight:500,boxShadow:`0 8px 32px rgba(0,0,0,0.4), 0 0 0 1px ${colors.border}`,animation:\"notificationSlide 0.4s cubic-bezier(0.16,1,0.3,1)\",cursor:\"pointer\",pointerEvents:\"auto\",...position===\"bottom-right\"?{right:0}:{left:0}},onClick:toggleChat,children:[notificationMessage,/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",bottom:-6,width:12,height:12,backgroundColor:colors.backgroundSecondary,transform:\"rotate(45deg)\",borderRight:`1px solid ${colors.border}`,borderBottom:`1px solid ${colors.border}`,...position===\"bottom-right\"?{right:24}:{left:24}}})]}),!(isMobile&&state.isOpen)&&/*#__PURE__*/_jsxs(\"div\",{style:{position:\"absolute\",bottom:0,...position===\"bottom-right\"?{right:0}:{left:0},width:60,height:60,pointerEvents:\"auto\"},onMouseEnter:()=>setIsHovered(true),onMouseLeave:()=>setIsHovered(false),children:[!state.isOpen&&isHovered&&/*#__PURE__*/_jsx(\"button\",{onClick:e=>{e.stopPropagation();hideWidget();},style:{position:\"absolute\",top:-8,right:-8,width:24,height:24,borderRadius:\"50%\",border:\"none\",background:colors.background,boxShadow:\"0 2px 8px rgba(0,0,0,0.3)\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",cursor:\"pointer\",zIndex:10,transition:\"all 0.2s ease\"},onMouseEnter:e=>{e.currentTarget.style.background=\"#ef4444\";},onMouseLeave:e=>{e.currentTarget.style.background=colors.background;},children:/*#__PURE__*/_jsx(\"svg\",{width:\"12\",height:\"12\",viewBox:\"0 0 24 24\",fill:\"none\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M18 6L6 18M6 6L18 18\",stroke:\"white\",strokeWidth:\"2.5\",strokeLinecap:\"round\",strokeLinejoin:\"round\"})})}),/*#__PURE__*/_jsx(\"div\",{style:{width:60,height:60,borderRadius:\"50%\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",cursor:\"pointer\",boxShadow:state.isOpen?`0 8px 32px rgba(0,0,0,0.4)`:`0 8px 32px ${\"rgba(139, 92, 246, 0.4)\"}`,transition:\"all 0.3s cubic-bezier(0.4,0,0.2,1)\",animation:state.isOpen?\"none\":\"glow 3s ease-in-out infinite\",overflow:\"hidden\",background:state.isOpen?colors.backgroundTertiary:\"transparent\",transform:isHovered?\"scale(1.08)\":\"scale(1)\"},onClick:state.isOpen?endCall:toggleChat,children:state.isOpen?/*#__PURE__*/_jsx(CloseIcon,{}):/*#__PURE__*/_jsx(\"img\",{src:agentIcon,alt:\"Chat\",style:{width:60,height:60,borderRadius:\"50%\",objectFit:\"cover\"}})})]})]})]});}// Framer Property Controls\naddPropertyControls(XpanderChatWidget,{proxyUrl:{type:ControlType.String,title:\"Proxy URL\",placeholder:\"https://your-worker.workers.dev\",description:\"Cloudflare Worker proxy URL for secure API calls\"},stagingProxyUrl:{type:ControlType.String,title:\"Staging Proxy URL\",placeholder:\"https://your-staging-worker.workers.dev\",description:\"Optional: Proxy URL for staging environment\"},stagingHostname:{type:ControlType.String,title:\"Staging Hostname\",placeholder:\"staging.example.com\",description:\"Hostname pattern to detect staging (e.g., 'staging' or 'preview')\"},agentIcon:{type:ControlType.String,title:\"Agent Icon URL\",placeholder:\"https://example.com/icon.png\",defaultValue:\"https://assets.xpanderai.io/static/favicon.png\",description:\"URL to the agent avatar image\"},agentName:{type:ControlType.String,title:\"Agent Name\",placeholder:\"AI Assistant\",defaultValue:\"AI Assistant\",description:\"Name shown in chat header\"},subtitle:{type:ControlType.String,title:\"Subtitle\",placeholder:\"Online\",defaultValue:\"Online\",description:\"Status text below agent name\"},position:{type:ControlType.Enum,title:\"Position\",options:[\"bottom-right\",\"bottom-left\"],optionTitles:[\"Bottom Right\",\"Bottom Left\"],defaultValue:\"bottom-right\"},welcomeText:{type:ControlType.String,title:\"Welcome Text\",placeholder:\"Hello! How can I help you today?\",defaultValue:\"Hello! How can I help you today?\",description:\"Greeting message shown to users\"},startersJson:{type:ControlType.String,title:\"Conversation Starters (JSON)\",placeholder:'[{\"label\":\"Help\",\"message\":\"How can you help me?\"}]',description:'JSON array: [{\"label\":\"Button Text\",\"message\":\"Message to send\"}]'},hooksUrl:{type:ControlType.String,title:\"Conversation Hooks URL\",placeholder:\"https://your-hooks-worker.workers.dev\",description:\"Webhook URL for conversation tracking & notifications\"},stagingHooksUrl:{type:ControlType.String,title:\"Staging Hooks URL\",placeholder:\"https://your-staging-hooks-worker.workers.dev\",description:\"Optional: Hooks URL for staging environment\"},fallbackMessage:{type:ControlType.String,title:\"Fallback Message\",defaultValue:\"Thanks for reaching out! Our chat system is currently being set up. Please check back soon or contact us at support@xpander.ai\",description:\"Message shown when the agent is unavailable (supports markdown)\"},notificationMessage:{type:ControlType.String,title:\"Notification Message\",defaultValue:\"How can I help you?\",description:\"Bubble message shown before chat is opened\"},lockInputWhileStreaming:{type:ControlType.Boolean,title:\"Lock Input While Streaming\",defaultValue:true,description:\"When ON: user can type but must wait to send. When OFF: user can send multiple messages without waiting.\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"XpanderChatWidget\":{\"type\":\"reactComponent\",\"name\":\"XpanderChatWidget\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./XpanderWidget.map","// Generated by Framer (7c2f7bf)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,Container,ControlType,cx,forwardLoader,GeneratedComponentContext,getFonts,PropertyOverrides,RenderTarget,safeCSSValue,useCustomCursors,useHydratedBreakpointVariants,useIsOnFramerCanvas,useLocaleInfo,withCSS,withVariantAppearEffect}from\"framer\";import{LayoutGroup,motion}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import Footer2 from\"#framer/local/canvasComponent/kqjUg7tcA/kqjUg7tcA.js\";import Navigation from\"#framer/local/canvasComponent/sfNb4E7Vd/sfNb4E7Vd.js\";import{XpanderChatWidget}from\"#framer/local/codeFile/LMsLuEV/XpanderWidget.js\";const NavigationFonts=getFonts(Navigation);const NavigationWithVariantAppearEffect=withVariantAppearEffect(Navigation);const XpanderChatWidgetFonts=getFonts(XpanderChatWidget);const Footer2Fonts=getFonts(Footer2);const breakpoints={DNj34TWaR:\"(min-width: 810px) and (max-width: 1199.98px)\",hgX7mhRIq:\"(min-width: 1200px) and (max-width: 1439.98px)\",MLqT3pOI7:\"(max-width: 809.98px)\",UC2WXnqAW:\"(min-width: 1440px)\"};const isBrowser=()=>typeof document!==\"undefined\";const serializationHash=\"framer-GFB8S\";const variantClassNames={DNj34TWaR:\"framer-v-n4ys2s\",hgX7mhRIq:\"framer-v-oa3szg\",MLqT3pOI7:\"framer-v-1d6zz9o\",UC2WXnqAW:\"framer-v-c36tu8\"};const UfDdjV0Qp=undefined;const MtDRgQdpKATF94MtyZ=undefined;const matchVariant=(...args)=>{for(const arg of args){if(arg&&typeof arg===\"string\")return arg;}return undefined;};const breakpointRules={};const breakpointKeys=Object.keys(breakpointRules);const rules=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-GFB8S.framer-19xp4s3, .framer-GFB8S .framer-19xp4s3 { display: block; }\",\".framer-GFB8S.framer-oa3szg { align-content: center; align-items: center; background-color: var(--1bb6rsc); display: flex; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 100%; }\",\".framer-GFB8S .framer-1ekoe3j-container { flex: none; height: auto; order: -1000; position: sticky; top: 0px; width: 100%; z-index: 10; }\",\".framer-GFB8S .framer-a1bfck-container { bottom: calc(calc(100% - min(var(--framer-viewport-height, 100%), 100%)) + 24px); flex: none; height: auto; order: -999; position: var(--framer-canvas-fixed-position, fixed); right: 24px; width: auto; z-index: 1; }\",\".framer-GFB8S .framer-mv9bhp { background: transparent; flex-grow: 1; height: 0px; margin: 0px; margin-bottom: -0px; position: relative; width: 0px; }\",\".framer-GFB8S .framer-iaulze-container { flex: none; height: auto; order: 1003; position: relative; width: 100%; }\",'[data-layout-template=\"true\"] > #overlay { margin-bottom: -0px; }'];const mediaQueries={DNj34TWaR:\"(min-width: 810px) and (max-width: 1199.98px)\",hgX7mhRIq:\"(min-width: 1200px) and (max-width: 1439.98px)\",MLqT3pOI7:\"(max-width: 809.98px)\",UC2WXnqAW:\"(min-width: 1440px)\"};const humanReadableVariantMap={\"Desktop 1200\":\"hgX7mhRIq\",\"Desktop 1440\":\"UC2WXnqAW\",Phone:\"MLqT3pOI7\",Tablet:\"DNj34TWaR\"};const HTMLStyle=({value})=>{const onCanvas=useIsOnFramerCanvas();if(onCanvas)return null;return /*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:value},\"data-framer-html-style\":\"\"});};const getProps=({fill,height,id,width,...props})=>{return{...props,UfDdjV0Qp:fill??props.UfDdjV0Qp??\"rgb(15, 13, 15)\",variant:humanReadableVariantMap[props.variant]??props.variant??\"hgX7mhRIq\"};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const{style,className,layoutId,variant,UfDdjV0Qp,children,...restProps}=getProps(props);const[baseVariant,hydratedBaseVariant]=useHydratedBreakpointVariants(variant,breakpoints,false);const gestureVariant=undefined;const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);useCustomCursors({});return /*#__PURE__*/_jsx(GeneratedComponentContext.Provider,{value:{activeVariantId:baseVariant,humanReadableVariantMap,isLayoutTemplate:true,primaryVariantId:\"hgX7mhRIq\",variantClassNames},children:/*#__PURE__*/_jsxs(LayoutGroup,{id:layoutId??defaultLayoutId,children:[/*#__PURE__*/_jsx(HTMLStyle,{value:`:root body { background: ${safeCSSValue(UfDdjV0Qp)}; }`}),/*#__PURE__*/_jsxs(motion.div,{...restProps,className:cx(scopingClassNames,\"framer-oa3szg\",className),\"data-layout-template\":true,ref:refBinding,style:{\"--1bb6rsc\":UfDdjV0Qp,...style},children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{height:68,width:\"100vw\",y:0,children:/*#__PURE__*/_jsx(Container,{className:\"framer-1ekoe3j-container\",nodeId:\"ahWBjFQtL\",rendersWithMotion:true,scopeId:\"BmO3exRYa\",children:/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{DNj34TWaR:{__framer__targets:[{ref:MtDRgQdpKATF94MtyZ,target:\"qzE2Yiaur\"}],variant:matchVariant(\"RwT9ZKIqE\")},MLqT3pOI7:{__framer__targets:[{ref:MtDRgQdpKATF94MtyZ,target:\"qzE2Yiaur\"}],variant:matchVariant(\"RwT9ZKIqE\")}},children:/*#__PURE__*/_jsx(NavigationWithVariantAppearEffect,{__framer__animateOnce:false,__framer__targets:[{ref:MtDRgQdpKATF94MtyZ,target:\"YdoqBWzd1\"}],__framer__threshold:0,__framer__variantAppearEffectEnabled:true,height:\"100%\",id:\"ahWBjFQtL\",layoutId:\"ahWBjFQtL\",style:{width:\"100%\"},variant:matchVariant(\"hDx0pq1eb\"),width:\"100%\"})})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-a1bfck-container\",isAuthoredByUser:true,layoutScroll:true,nodeId:\"G6xURKWxZ\",scopeId:\"BmO3exRYa\",children:/*#__PURE__*/_jsx(XpanderChatWidget,{agentIcon:\"https://assets.xpanderai.io/static/favicon.png\",agentName:\"AI Support Agent\",fallbackMessage:\"Thanks for reaching out! Our chat is currently disabled. Please email us at [contact@xpander.ai](mailto:contact@xpander.ai)\",height:\"100%\",hooksUrl:\"https://xpander-chat-analytics.david-4f6.workers.dev\",id:\"G6xURKWxZ\",layoutId:\"G6xURKWxZ\",lockInputWhileStreaming:false,notificationMessage:\"👋🏻 I’m built on xpander, let’s chat!\",position:\"bottom-right\",proxyUrl:\"https://xpander-chat-proxy.david-4f6.workers.dev\",stagingHooksUrl:\"\",stagingHostname:\"effective-tetragon-124756.framer.app\",stagingProxyUrl:\"https://xpander-chat-proxy-staging.david-4f6.workers.dev\",startersJson:'[     {         \"label\": \"What agent frameworks do you support?\",         \"message\": \"What frameworks can xpander.ai run?\"     },     {         \"label\": \"How do I deploy in my private cloud?\",         \"message\": \"Explain how to deploy xpander.ai to the company Kubernetes cluster, with links.\"     },     {         \"label\": \"Give me a quick demo.\",         \"message\": \"Show me a quick demo of an autonomous agent using your tools and knowledge.\"     } ] ',subtitle:\"Running fast on xpander.ai\",welcomeText:\"Hello! How I can help you today?\",width:\"100%\"})})}),children,/*#__PURE__*/_jsx(\"div\",{className:\"framer-mv9bhp\"}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:814,width:\"100vw\",y:1068,children:/*#__PURE__*/_jsx(Container,{className:\"framer-iaulze-container\",nodeId:\"cDWtexUWU\",scopeId:\"BmO3exRYa\",children:/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{DNj34TWaR:{variant:matchVariant(\"tRcAhd1eM\")},MLqT3pOI7:{variant:matchVariant(\"nDd55CCOM\")}},children:/*#__PURE__*/_jsx(Footer2,{height:\"100%\",id:\"cDWtexUWU\",layoutId:\"cDWtexUWU\",style:{width:\"100%\"},variant:matchVariant(\"nTixccmqq\"),width:\"100%\"})})})})]}),/*#__PURE__*/_jsx(\"div\",{id:\"template-overlay\"})]})});});const css=target=>{const isStaticRenderer=target===RenderTarget.canvas||target===RenderTarget.export;if(!isStaticRenderer){return[...rules,...breakpointKeys.map(key=>{const query=mediaQueries[key];return`@media ${query} { ${breakpointRules[key].join(\" \")} }`;})];}return[...rules,...breakpointKeys.flatMap(key=>{const selector=breakpointRules[key];return breakpointRules[key].map(rule=>`${selector} {${rule}}`);})];};/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 1440\n * @framerIntrinsicWidth 1200\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"UC2WXnqAW\":{\"layout\":[\"fixed\",\"fixed\"]},\"DNj34TWaR\":{\"layout\":[\"fixed\",\"fixed\"]},\"MLqT3pOI7\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerVariables {\"UfDdjV0Qp\":\"fill\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n * @framerHitTargets {\"hgX7mhRIq\":[\".framer-1ekoe3j-container\",\".framer-iaulze-container\"],\"UC2WXnqAW\":[\".framer-1ekoe3j-container\",\".framer-iaulze-container\"],\"DNj34TWaR\":[\".framer-1ekoe3j-container\",\".framer-iaulze-container\"],\"MLqT3pOI7\":[\".framer-1ekoe3j-container\",\".framer-iaulze-container\"]}\n * @framerBreakpoints {\"UC2WXnqAW\":{\"min\":1440,\"canvasClassName\":\"framer-c36tu8-override\",\"minHeight\":1960,\"viewportHeight\":599,\"name\":\"Desktop 1440\",\"width\":1440,\"rootFontSize\":16},\"hgX7mhRIq\":{\"min\":1200,\"max\":1439,\"canvasClassName\":\"framer-oa3szg-override\",\"minHeight\":1440,\"name\":\"Desktop 1200\",\"width\":1200,\"rootFontSize\":16},\"DNj34TWaR\":{\"min\":810,\"max\":1199,\"canvasClassName\":\"framer-n4ys2s-override\",\"minHeight\":1440,\"viewportHeight\":900,\"name\":\"Tablet\",\"width\":810,\"rootFontSize\":16},\"MLqT3pOI7\":{\"max\":809,\"canvasClassName\":\"framer-1d6zz9o-override\",\"minHeight\":2043,\"viewportHeight\":844,\"name\":\"Phone\",\"width\":390,\"rootFontSize\":16}}\n * @framerDefaultVariant hgX7mhRIq\n * @framerLayoutTemplate true\n */const FramerBmO3exRYa=withCSS(Component,css,\"framer-GFB8S\");export default FramerBmO3exRYa;FramerBmO3exRYa.displayName=\"Chat\";FramerBmO3exRYa.defaultProps={height:1440,width:1200};addPropertyControls(FramerBmO3exRYa,{UfDdjV0Qp:{defaultValue:\"rgb(15, 13, 15)\",title:\"Fill\",type:ControlType.Color}});addFonts(FramerBmO3exRYa,[{explicitInter:true,fonts:[]},...NavigationFonts,...XpanderChatWidgetFonts,...Footer2Fonts],{supportsExplicitInterCodegen:true});FramerBmO3exRYa.loader={load:(props,context)=>{const locale=context.locale;return Promise.allSettled([forwardLoader(Navigation,{},context),forwardLoader(Footer2,{},context)]);}};\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerBmO3exRYa\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"1200\",\"framerContractVersion\":\"1\",\"framerDisplayContentsDiv\":\"false\",\"framerIntrinsicHeight\":\"1440\",\"framerDefaultVariant\":\"hgX7mhRIq\",\"framerLayoutTemplate\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerImmutableVariables\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"UC2WXnqAW\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"DNj34TWaR\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"MLqT3pOI7\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerVariables\":\"{\\\"UfDdjV0Qp\\\":\\\"fill\\\"}\",\"framerColorSyntax\":\"true\",\"framerBreakpoints\":\"{\\\"UC2WXnqAW\\\":{\\\"min\\\":1440,\\\"canvasClassName\\\":\\\"framer-c36tu8-override\\\",\\\"minHeight\\\":1960,\\\"viewportHeight\\\":599,\\\"name\\\":\\\"Desktop 1440\\\",\\\"width\\\":1440,\\\"rootFontSize\\\":16},\\\"hgX7mhRIq\\\":{\\\"min\\\":1200,\\\"max\\\":1439,\\\"canvasClassName\\\":\\\"framer-oa3szg-override\\\",\\\"minHeight\\\":1440,\\\"name\\\":\\\"Desktop 1200\\\",\\\"width\\\":1200,\\\"rootFontSize\\\":16},\\\"DNj34TWaR\\\":{\\\"min\\\":810,\\\"max\\\":1199,\\\"canvasClassName\\\":\\\"framer-n4ys2s-override\\\",\\\"minHeight\\\":1440,\\\"viewportHeight\\\":900,\\\"name\\\":\\\"Tablet\\\",\\\"width\\\":810,\\\"rootFontSize\\\":16},\\\"MLqT3pOI7\\\":{\\\"max\\\":809,\\\"canvasClassName\\\":\\\"framer-1d6zz9o-override\\\",\\\"minHeight\\\":2043,\\\"viewportHeight\\\":844,\\\"name\\\":\\\"Phone\\\",\\\"width\\\":390,\\\"rootFontSize\\\":16}}\",\"framerHitTargets\":\"{\\\"hgX7mhRIq\\\":[\\\".framer-1ekoe3j-container\\\",\\\".framer-iaulze-container\\\"],\\\"UC2WXnqAW\\\":[\\\".framer-1ekoe3j-container\\\",\\\".framer-iaulze-container\\\"],\\\"DNj34TWaR\\\":[\\\".framer-1ekoe3j-container\\\",\\\".framer-iaulze-container\\\"],\\\"MLqT3pOI7\\\":[\\\".framer-1ekoe3j-container\\\",\\\".framer-iaulze-container\\\"]}\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","\r\n\t\timport * as Framer from \"framer\";\r\nimport * as React from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport * as ReactDOM from \"react-dom/client\";\r\nimport Chat from \"https://framerusercontent.com/modules/tLnrZUOR44hsK79Ouxkp/87Oysk31YUuuvNtBCbsX/BmO3exRYa.js\";\r\n\r\n\t\tconst routes = {vmcC0vlwn: {elements: {aHUFOYeWZ: \"header-scroll\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/LGfC1GbrfkaNIO7SWQA2/EPznehFQHw9xJ1ByRbic/vmcC0vlwn.js\")), path: \"/\"}, oT0bh47bo: {elements: {L988rXFVA: \"header-scroll\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/E7SzDbInYYnaDh3YcP3U/a6Qzwz6gj7JiauvbEP5S/oT0bh47bo.js\")), path: \"/products/personal-ai-agents\"}, CR3NKF1HI: {elements: {OQa2Ns0md: \"header-scroll\", SLRphx4Mj: \"agents\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/znbMZfbbcwIM6xYkRgD6/tD6Xb4w0Kzyyz4uW8ZTE/CR3NKF1HI.js\")), path: \"/products/specialized-agents\"}, ZMQZ7ot7I: {elements: {CmV1qRtZF: \"header-scroll\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/UqiJOEPxZlR8doXMzauI/fNjFzMnVSs9EWIVxyGKU/ZMQZ7ot7I.js\")), path: \"/products/agent-studio\"}, IS2aRH_KL: {elements: {nzef6imM5: \"header-scroll\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/8grWLdu4NnkDRXBWaL3W/eua8MYq4iQqkU8ILbcHG/IS2aRH_KL.js\")), path: \"/products/agentic-workflows\"}, rux41_fv1: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/ZZCaZ5TuTuHeUyeO0bl7/3CRngs95lP7WcHYZpzA5/rux41_fv1.js\")), path: \"/pricing\"}, btnBK28Go: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/mlv7Zygui7nJ4540QMEY/02vZHXPQ7O49UMgo0dap/btnBK28Go.js\")), path: \"/pricing-calculator\"}, BMVsrAo16: {elements: {If3qY7soB: \"jobs\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/SCHwXB18crkhLfjLH88I/cLm3FZY91qcH5iu2Im2d/BMVsrAo16.js\")), path: \"/careers\"}, zEZw5NjNo: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/zzYGW84zAPO5gIt2NqR9/rrtFBSJ7P3BeNGUlNtfg/zEZw5NjNo.js\")), path: \"/press\"}, J17astL5M: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/kSdAd3mQx50nL1meGUIT/QhBvl6pocDboxgvLHBgI/J17astL5M.js\")), path: \"/privacy-policy\"}, RJs3b3LE9: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/kUHGhOquxE8VL2NzsT8Z/027fj3eO0CJjFEqhioR1/RJs3b3LE9.js\")), path: \"/terms-of-service\"}, cZwzV0N5P: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/yNAoa0vH0VP4IKjWKH1o/mEpHlw5Nt14iRRZay01L/cZwzV0N5P.js\")), path: \"/contact-us\"}, f5_q07VBs: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/O1dz3usR3JNOztrllkiZ/rmeMxjx74xCEQ5sB0COM/f5_q07VBs.js\")), path: \"/events\"}, Ul2Kx2t6r: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/Nlpnwzjj7YGsmyvTPzxP/7KSn5gC72n66jxdB4lcC/Ul2Kx2t6r.js\")), path: \"/talk-to-us\"}, d8KB9AEcg: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/CZT2bRnQoknT1imxtkJK/BG9werBgsxgxVdCHishz/d8KB9AEcg.js\")), path: \"/blog\"}, zN59tx47V: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/8WMTpopHkxTi2t2w68LT/3oL4a73Us7SIp4mg6goY/zN59tx47V.js\")), path: \"/solutions\"}, j3I_lQPD6: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/rYhqrniVFUsaHuY0NNcr/YyUXsjWJTFS5YEz78sgT/j3I_lQPD6.js\")), path: \"/cookie-policy\"}, gHwu8_Uju: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/lvKFIaRVSTPhRweOQ8RV/9CpY8k1N9wXUv3px5kw0/gHwu8_Uju.js\")), path: \"/resources\"}, zIZhkTDxZ: {collectionId: \"wHtwnvG2d\", elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/QKLhyoYv0GnXoEvwHmR4/qoiTJgm0GCwD6NZQGXZy/zIZhkTDxZ.js\")), path: \"/careers/:XcZbSMHyV\"}, VBcUuJSOY: {collectionId: \"W8FBR1jMU\", elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/m2GPKUjWWgQX6BipELIE/qjZvglnFlVhbnJrJ73hT/VBcUuJSOY.js\")), path: \"/demo-videos/:mXzAR1ov9\"}, eGj2LTHcj: {collectionId: \"W8FBR1jMU\", elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/H8q9rk1BNU0e8sFLQBWO/SmWyLFu1pvQHHJnn5y5E/eGj2LTHcj.js\")), path: \"/demo-videos/:mXzAR1ov9/platform-feature-page\"}, oDdKkHS4w: {collectionId: \"V3HiATILs\", elements: {CGJLWDek4: \"content\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/Z8cwPqpWcvfQcWl7mU6k/dJnc9rw6XL8QjuXY6i5T/oDdKkHS4w.js\")), path: \"/blog/:YWKTOxhJZ\"}, sfoXvFX0k: {collectionId: \"ZfDbbe3XA\", elements: {w7fJ4nBHN: \"content\"}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/GQenud2cfNnFKJKcP2aH/ixvXKZGQA2eOO8WevQF3/sfoXvFX0k.js\")), path: \"/resources/:xyntbMPfO\"}, P6NlhdXuS: {collectionId: \"rQ8Q4dKFY\", elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/o0HK8R2C574TxkUMLXWJ/HogDrCrph7alLbNhuENf/P6NlhdXuS.js\")), path: \"/solutions/:Z_rQMK3YC\"}}\r\n\r\n\t\tconst locales = [{code: \"en\", id: \"default\", name: \"English\", slug: \"\", textDirection: \"ltr\"}]\r\n\t\tconst collectionUtils = {rQ8Q4dKFY: async () => (await import(\"https://framerusercontent.com/modules/2dp5WPRMX00bqWXj4l5K/l4TmQbpjIEwKT9bDLMUk/rQ8Q4dKFY.js\"))?.[\"utils\"], V3HiATILs: async () => (await import(\"https://framerusercontent.com/modules/QRZZbLmCYgEDqHMMVGab/8Um2xJn9JhXpVKse2fkj/V3HiATILs.js\"))?.[\"utils\"], W8FBR1jMU: async () => (await import(\"https://framerusercontent.com/modules/jINGgxSRluzQsXOMMpr4/5kvOjXgoxWY4ofsHMgR4/W8FBR1jMU.js\"))?.[\"utils\"], wHtwnvG2d: async () => (await import(\"https://framerusercontent.com/modules/luIK1eB4fj7LGsK3Nvlg/hLHmvPAfHKQoj61PquK0/wHtwnvG2d.js\"))?.[\"utils\"], ZfDbbe3XA: async () => (await import(\"https://framerusercontent.com/modules/ToJ3Ol7sthPj2dBLI3vu/rkfZyuII9ThkivNNNY8w/ZfDbbe3XA.js\"))?.[\"utils\"]}\r\n\t\tconst framerSiteId = \"0e60342e13ded729eefdf4cdb23f8893be04c457bb78ac8827ccbefe0b4eb216\"\r\n\t\tfunction Template({webPageId, children, style, ...rest}) {const props1 = {UfDdjV0Qp: \"rgb(255, 255, 255)\"}\r\nconst props2 = {...props1, UfDdjV0Qp: \"rgb(15, 13, 15)\"}\r\nconst templateProps = {A6jClv5z0: props2, aMqc_NdrZ: props2, BMVsrAo16: props2, btnBK28Go: props2, CR3NKF1HI: props1, cZwzV0N5P: props2, d8KB9AEcg: props2, d8qTmeFEi: props2, eCnkzyaEB: props2, eGH5JplVD: props2, f5_q07VBs: props2, fb5Zu1znN: props2, gHwu8_Uju: props2, IS2aRH_KL: props1, J17astL5M: props2, j3I_lQPD6: props2, oT0bh47bo: props1, RJs3b3LE9: props2, rux41_fv1: props2, sfoXvFX0k: props2, t0rtO7bRJ: props2, Ul2Kx2t6r: props2, vmcC0vlwn: props1, Z8JqquTGo: props2, zEZw5NjNo: props2, ZMQZ7ot7I: props1, zN59tx47V: props2}\r\nconst props = templateProps[webPageId] ?? {}\r\nswitch (webPageId) {case \"vmcC0vlwn\":\r\ncase \"d8qTmeFEi\":\r\ncase \"oT0bh47bo\":\r\ncase \"CR3NKF1HI\":\r\ncase \"ZMQZ7ot7I\":\r\ncase \"IS2aRH_KL\":\r\ncase \"rux41_fv1\":\r\ncase \"btnBK28Go\":\r\ncase \"t0rtO7bRJ\":\r\ncase \"eGH5JplVD\":\r\ncase \"Z8JqquTGo\":\r\ncase \"eCnkzyaEB\":\r\ncase \"fb5Zu1znN\":\r\ncase \"BMVsrAo16\":\r\ncase \"zEZw5NjNo\":\r\ncase \"J17astL5M\":\r\ncase \"RJs3b3LE9\":\r\ncase \"aMqc_NdrZ\":\r\ncase \"cZwzV0N5P\":\r\ncase \"A6jClv5z0\":\r\ncase \"f5_q07VBs\":\r\ncase \"Ul2Kx2t6r\":\r\ncase \"d8KB9AEcg\":\r\ncase \"zN59tx47V\":\r\ncase \"j3I_lQPD6\":\r\ncase \"gHwu8_Uju\":\r\ncase \"sfoXvFX0k\":\r\nreturn React.createElement(Chat, {...props, key: \"Chat\", style}, children(true));\r\ndefault: { return children(false) }}}\r\nexport function getLayoutTemplateBreakpoints(routeId) {switch (routeId) {case \"vmcC0vlwn\":\r\ncase \"d8qTmeFEi\":\r\ncase \"oT0bh47bo\":\r\ncase \"CR3NKF1HI\":\r\ncase \"ZMQZ7ot7I\":\r\ncase \"IS2aRH_KL\":\r\ncase \"rux41_fv1\":\r\ncase \"btnBK28Go\":\r\ncase \"t0rtO7bRJ\":\r\ncase \"eGH5JplVD\":\r\ncase \"Z8JqquTGo\":\r\ncase \"eCnkzyaEB\":\r\ncase \"fb5Zu1znN\":\r\ncase \"BMVsrAo16\":\r\ncase \"zEZw5NjNo\":\r\ncase \"J17astL5M\":\r\ncase \"RJs3b3LE9\":\r\ncase \"aMqc_NdrZ\":\r\ncase \"cZwzV0N5P\":\r\ncase \"A6jClv5z0\":\r\ncase \"f5_q07VBs\":\r\ncase \"Ul2Kx2t6r\":\r\ncase \"d8KB9AEcg\":\r\ncase \"zN59tx47V\":\r\ncase \"j3I_lQPD6\":\r\ncase \"gHwu8_Uju\":\r\ncase \"sfoXvFX0k\":\r\nreturn [{hash: \"c36tu8\", mediaQuery: \"(min-width: 1440px)\"}, {hash: \"oa3szg\", mediaQuery: \"(min-width: 1200px) and (max-width: 1439.98px)\"}, {hash: \"n4ys2s\", mediaQuery: \"(min-width: 810px) and (max-width: 1199.98px)\"}, {hash: \"1d6zz9o\", mediaQuery: \"(max-width: 809.98px)\"}]\r\ndefault: { return undefined }}}\r\n\r\n\t\tconst isBrowser = typeof document !== \"undefined\"\r\n\t\tconst isBot = isBrowser && /bot|-google|google-|yandex|ia_archiver|crawl|spider/iu.test(navigator.userAgent)\r\n\r\n\t\texport async function getPageRoot({ routeId, pathVariables, localeId, collectionItemId }) {\r\n\t\t\tconst rootPreload = routes[routeId].page.preload()\r\n\r\n\t\t\tconst content = React.createElement(\r\n\t\t\t\tFramer.PageRoot,\r\n\t\t\t\t{\r\n\t\t\t\t\tisWebsite: true,\r\n\t\t\t\t\tenvironment: \"site\",\r\n\t\t\t\t\trouteId,\r\n\t\t\t\t\tpathVariables,\r\n\t\t\t\t\troutes,\r\n\t\t\t\t\tcollectionUtils,\r\n\t\t\t\t\tframerSiteId,\r\n\t\t\t\t\tnotFoundPage: Framer.lazy(() => import(\"__framer-not-found-page\")),\r\n\t\t\t\t\tisReducedMotion: undefined,\r\n\t\t\t\t\tlocaleId,\r\n\t\t\t\t\tlocales,\r\n\t\t\t\t\tpreserveQueryParams: undefined,\r\n\t\t\t\t\tsiteCanonicalURL: \"https://xpander.ai\",\r\n\t\t\t\t\tEditorBar: \r\n\t\t\ttypeof window !== \"undefined\" ? (() => {\r\n\t\t\t\tif (isBot) {\r\n\t\t\t\t\tconsole.log(\"[Framer On-Page Editing] Unavailable because navigator is bot\")\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn Framer.lazy(async () => {\r\n\t\t\t\t\tconst dependencies = {\r\n\t\t\t\t\t\t__version: 3,\r\n\t\t\t\t\t\tframer: {\r\n\t\t\t\t\t\t\tuseCurrentRoute: Framer.useCurrentRoute,\r\n\t\t\t\t\t\t\tuseLocaleInfo: Framer.useLocaleInfo,\r\n\t\t\t\t\t\t\tuseRouter: Framer.useRouter,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\treact: {\r\n\t\t\t\t\t\t\tcreateElement: React.createElement,\r\n\t\t\t\t\t\t\tFragment: React.Fragment,\r\n\t\t\t\t\t\t\tmemo: React.memo,\r\n\t\t\t\t\t\t\tuseCallback: React.useCallback,\r\n\t\t\t\t\t\t\tuseEffect: React.useEffect,\r\n\t\t\t\t\t\t\tuseRef: React.useRef,\r\n\t\t\t\t\t\t\tuseState: React.useState,\r\n\t\t\t\t\t\t\tuseLayoutEffect: React.useLayoutEffect,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\"react-dom\": { createPortal },\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\twindow.__framer_editorBarDependencies = dependencies\r\n\r\n\t\t\t\t\tconst { createEditorBar } = await import(\"https://framer.com/edit/init.mjs\")\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tdefault: createEditorBar(),\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t})() : undefined\r\n\t\t,\r\n\t\t\t\t\tadaptLayoutToTextDirection: true,\r\n\t\t\t\t\tLayoutTemplate: Template,\r\n\t\t\t\t\tloadSnippetsModule: new Framer.LazyValue(() => import(\"https://framerusercontent.com/modules/VlroUDF3uGTC6EHQdEQi/w7UoBM9ImojN8r6gZiqI/snippets.js\")),\r\n\t\t\t\t\tinitialCollectionItemId: collectionItemId,\r\n\t\t\t\t}\r\n\t\t\t)\r\n\r\n\t\t\tconst contentWithFeaturesContext = React.createElement(\r\n\t\t\t\tFramer.LibraryFeaturesProvider,\r\n\t\t\t\t{\r\n\t\t\t\t\tchildren: content,\r\n\t\t\t\t\tvalue: {autobahnNavigation: true, disableCustomCode: false, editorBarDisableFrameAncestorsSecurity: false, motionDivToDiv: false, onPageLocalizationSupport: true, onPageMoveTool: true, synchronousNavigationOnDesktop: false, yieldOnTap: false}\r\n\t\t\t\t}\r\n\t\t\t)\r\n\r\n\t\t\tconst contentWithGracefullyDegradingErrorBoundary = React.createElement(Framer.GracefullyDegradingErrorBoundary, {\r\n\t\t\t\tchildren: contentWithFeaturesContext\r\n\t\t\t})\r\n\r\n\t\t\t\r\n\t\t\tconst page = React.createElement(Framer.PageEffectsProvider, {\r\n\t\t\t\tchildren: contentWithGracefullyDegradingErrorBoundary,\r\n\t\t\t\tvalue: {routes: {}}\r\n\t\t\t})\r\n\r\n\t\t\t// We don't want the initial render to immediately have to suspend.\r\n\t\t\tawait rootPreload\r\n\t\t\treturn page\r\n\t\t}\r\n\r\n\t\tif (isBrowser) {\r\n\t\t\twindow.__framer_importFromPackage = (packageAndFilename, exportIdentifier) => () => {\r\n\t\t\t\treturn React.createElement(Framer.ErrorPlaceholder, { error: 'Package component not supported: \"' + exportIdentifier + '\" in \"' + packageAndFilename + '\"' })\r\n\t\t\t}\r\n\r\n\t\t\twindow.__framer_events = window.__framer_events || []\r\n\r\n\t\t\t// Initialize lazy modules cache for hydration\r\n\t\t\tFramer.initLazyModulesCache()\r\n\r\n\t\t\t// Fallback support for stack gaps\r\n\t\t\tFramer.installFlexboxGapWorkaroundIfNeeded()\r\n\r\n\t\t\tconst container = document.getElementById(\"main\")\r\n\t\t\t// We know that #main is parsed before this script, so we don't need to wait for DOMContentLoaded or similar events.\r\n\t\t\tif (\"framerHydrateV2\" in container.dataset) main(true, container)\r\n\t\t\telse main(false, container)\r\n\t\t}\r\n\r\n\t\tfunction track() {\r\n\t\t\tif (!isBrowser) return\r\n\t\t\twindow.__framer_events.push(arguments)\r\n\t\t}\r\n\r\n\t\tasync function main(shouldHydrate, container) {\r\n\t\t\tfunction handleError(error, errorInfo, recoverable = true) {\r\n\t\t\t\tif (error.caught || window.__framer_hadFatalError) return // we already logged it\r\n\r\n\t\t\t\tconst componentStack = errorInfo?.componentStack\r\n\t\t\t\tif (recoverable) {\r\n\t\t\t\t\tconsole.warn(\"Caught a recoverable error. The site is still functional, but might have some UI flickering or degraded page load performance. If you are the author of this website, update external components and check recently added custom code or code overrides to fix the following server/client mismatches:\\n\", error, componentStack)\r\n\t\t\t\t\t// we only want to collect 1%, because this can be quite noisy (floods the data pipeline)\r\n\t\t\t\t\tif (Math.random() > 0.01) return\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconsole.error(\"Caught a fatal error. Please report the following to the Framer team via https://www.framer.com/contact/:\\n\", error, componentStack)\r\n\t\t\t\t}\r\n\t\t\t\ttrack(recoverable ? \"published_site_load_recoverable_error\" : \"published_site_load_error\", {\r\n\t\t\t\t\tmessage: String(error),\r\n\t\t\t\t\tcomponentStack, // componentStack is more useful\r\n\t\t\t\t\tstack: componentStack ? undefined : error instanceof Error && typeof error.stack === \"string\" ? error.stack : null,\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t\ttry {\r\n\t\t\t\tlet routeId, localeId, pathVariables, breakpoints, routeData\r\n\t\t\t\tif (shouldHydrate) {\r\n\t\t\t\t\trouteData = JSON.parse(container.dataset[\"framerHydrateV2\"])\r\n\t\t\t\t\trouteId = routeData.routeId\r\n\t\t\t\t\tlocaleId = routeData.localeId\r\n\t\t\t\t\tpathVariables = routeData.pathVariables\r\n\t\t\t\t\tbreakpoints = routeData.breakpoints\r\n\r\n\t\t\t\t\trouteId = Framer.patchRoutesForABTesting(routes, routeId) // Prioritize optimized route id to avoid flickering in browsers not supporting the server-timing header (Safari older than 16.4)\r\n\t\t\t\t} else {\r\n\t\t\t\t\tFramer.patchRoutesForABTesting(routes, undefined) // This must happen before inferInitialRouteFromPath\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\tconst serverRouteExperimentEnabled = true\r\n\t\t\t\t\tconst serverRoute = serverRouteExperimentEnabled && performance.getEntriesByType(\"navigation\")[0]?.serverTiming?.find(e => e.name === \"route\")?.description\r\n\t\t\t\t\tif (serverRoute) {\r\n\t\t\t\t\t\tconst routeData = new URLSearchParams(serverRoute)\r\n\t\t\t\t\t\trouteId = routeData.get(\"id\")\r\n\t\t\t\t\t\tlocaleId = routeData.get(\"locale\")\r\n\t\t\t\t\t\tfor (const [key, value] of routeData.entries()) {\r\n\t\t\t\t\t\t\tif (!key.startsWith(\"var.\")) continue\r\n\t\t\t\t\t\t\tpathVariables ??= {}\r\n\t\t\t\t\t\t\tpathVariables[key.slice(4)] = value\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (!routeId || !localeId) {\r\n\t\t\t\t\t\tconst routeData = Framer.inferInitialRouteFromPath(routes, decodeURIComponent(location.pathname), true, locales)\r\n\t\t\t\t\t\trouteId = routeData.routeId\r\n\t\t\t\t\t\tlocaleId = routeData.localeId\r\n\t\t\t\t\t\tpathVariables = routeData.pathVariables\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst pagePromise = getPageRoot({\r\n\t\t\t\t\trouteId,\r\n\t\t\t\t\tlocaleId,\r\n\t\t\t\t\tpathVariables,\r\n\t\t\t\t\tcollectionItemId: routeData?.collectionItemId,\r\n\t\t\t\t})\r\n\r\n\t\t\t\t\r\nif (typeof window !== \"undefined\") {\r\n\tvoid (async () => {\r\n\t\tconst route = routes[routeId]\r\n\r\n\t\tconst defaultLocaleId = \"default\"\r\n\t\tconst framerLocale = locales.find(({ id }) => !localeId ? id === defaultLocaleId : id === localeId).code\r\n\r\n\t\tlet collectionItemId = routeData?.collectionItemId ?? null\r\n\t\tif (collectionItemId === null && route?.collectionId && collectionUtils) {\r\n\t\t\t  const utils = await collectionUtils[route.collectionId]?.()\r\n\t\t\t  const [slug] = Object.values(pathVariables)\r\n\t\t\t  if (utils && typeof slug === \"string\") {\r\n\t\t\t\t  collectionItemId = (await utils.getRecordIdBySlug(slug, framerLocale || undefined)) ?? null\r\n\t\t\t  }\r\n\t\t}\r\n\r\n\t\tconst resolvedDateTimeOptions = Intl.DateTimeFormat().resolvedOptions()\r\n\t\tconst timezone = resolvedDateTimeOptions.timeZone\r\n\t\tconst locale = resolvedDateTimeOptions.locale\r\n\r\n\t\t// wait for the page to be activated before sending the pageview event\r\n\t\t// https://developer.chrome.com/docs/web-platform/prerender-pages#impact-on-analytics\r\n\t\tawait new Promise((resolve) => {\r\n\t\t\tif (document.prerendering) {\r\n\t\t\t\tdocument.addEventListener(\"prerenderingchange\", resolve, { once: true })\r\n\t\t\t} else {\r\n\t\t\t\tresolve()\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\twindow.__framer_events.push([\r\n\t\t\t\"published_site_pageview\",\r\n\t\t\t{\r\n\t\t\t\tframerSiteId: framerSiteId ?? null,\r\n\t\t\t\tversion: 2,\r\n\t\t\t\troutePath: route?.path || \"/\",\r\n\t\t\t\tcollectionItemId,\r\n\t\t\t\tframerLocale: framerLocale || null,\r\n\t\t\t\twebPageId: route?.abTestingVariantId ?? routeId,\r\n\t\t\t\tabTestId: route?.abTestId,\r\n\t\t\t\treferrer: document.referrer || null,\r\n\t\t\t\turl: window.location.href,\r\n\t\t\t\thostname: window.location.hostname || null,\r\n\t\t\t\tpathname: window.location.pathname || null,\r\n\t\t\t\thash: window.location.hash || null,\r\n\t\t\t\tsearch: window.location.search || null,\r\n\t\t\t\ttimezone,\r\n\t\t\t\tlocale,\r\n\t\t\t},\r\n\t\t\t\"eager\"\r\n\t\t])\r\n\r\n\t\t// Yield to avoid blocking the main thread with the user code\r\n\t\tawait Framer.yieldToMain({ priority: \"background\", ensureContinueBeforeUnload: true, continueAfter: \"paint\" })\r\n\r\n\t\tdocument.dispatchEvent(new CustomEvent(\"framer:pageview\", {\r\n\t\t\tdetail: { framerLocale: framerLocale || null }\r\n\t\t}))\r\n\t})()\r\n}\r\n\r\n\r\n\t\t\t\tconst page = await pagePromise\r\n\t\t\t\tif (shouldHydrate) {\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\tFramer.withPerformanceMarks(\"framer-rewrite-breakpoints\", () => {\r\n\t\t\t\t\t\tFramer.removeHiddenBreakpointLayersV2(breakpoints)\r\n\t\t\t\t\t\twindow.__framer_onRewriteBreakpoints?.(breakpoints)\r\n\t\t\t\t\t})\r\n\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\tconst startTransition = isBot ? cb => cb() : React.startTransition\r\n\t\t\t\t\tstartTransition(() => {\r\n\t\t\t\t\t\tFramer.markHydrationStart()\r\n\t\t\t\t\t\tif (true) Framer.turnOffReactEventHandling()\r\n\t\t\t\t\t\tReactDOM.hydrateRoot(container, page, { onRecoverableError: handleError })\r\n\t\t\t\t\t})\r\n\t\t\t\t} else {\r\n\t\t\t\t\t\r\n\t\t\t\t\tReactDOM.createRoot(container, { onRecoverableError: handleError }).render(page)\r\n\t\t\t\t}\r\n\t\t\t} catch (error) {\r\n\t\t\t\thandleError(error, undefined, false)\r\n\t\t\t\tthrow error\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t\r\n\r\n\t\t\r\n\t"],"mappings":"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"}