{"version":3,"file":"ChannelHandoffThread.CoJaCEPt.mjs","names":["React.useId","React.useMemo","React.useState","React.useRef","React.Fragment","__esmMin","x","init_ssg_sandbox_shims","pe","init_npm_react_18_3_1","_e","de","init_jsx_runtime","p","ie","ce","window","addPropertyControls","init_framer_DcxuU94H","ControlType","useIsStaticRenderer","parsePhase","raw","line","isCustomer","CUSTOMER_MARKER","isAgent","AGENT_MARKER","text","phaseIndex","m","WhatsappIcon","size","PhoneIcon","WebIcon","ChannelIcon","k","kind","ChannelHandoffThread","props","isStatic","cls","reduced","clean","phases","messages","i","revealed","setRevealed","clamp","startRevealed","timer","started","rootRef","clearTimer","autoplay","schedule","next","r","crossingPhase","restarting","words","revealTime","wordMs","pause","loopDelayMs","phasePauseMs","messagePauseMs","begin","el","io","entries","shownMessages","activePhase","css","radius","FONT","cardFill","grain","GRAIN_SCALE","GRAIN_TEXTURE","scrim","badgeFill","badgeText","threadWidth","dividerText","agentFill","agentText","customerFill","customerText","style","showDivider","ph","wi","w","init_ChannelHandoffThread","hi","lo","n"],"sources":["https:/framerusercontent.com/modules/6rmFZtQXhJ28sPpbvJcZ/UN8e86kqI5J9KJs2cIss/ChannelHandoffThread.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";const GRAIN_SCALE=.17;const GRAIN_TEXTURE=\"https://framerusercontent.com/images/rR6HYXBrMmX4cRpXfXUOvpvpB0.png\";const AGENT_MARKER=\"①\";const CUSTOMER_MARKER=\"②\";const FONT='\"ES Klarheit Grotesk Book\", \"ES Klarheit Grotesk\", Inter, ui-sans-serif, system-ui, sans-serif';const clamp=(n,lo,hi)=>Math.min(hi,Math.max(lo,n));function parsePhase(raw,phaseIndex){if(!raw)return[];return raw.split(/\\n+/g).map(line=>line.trim()).filter(Boolean).map(line=>{const isCustomer=line.charAt(0)===CUSTOMER_MARKER;const isAgent=line.charAt(0)===AGENT_MARKER;const text=isCustomer||isAgent?line.slice(1).trim():line;return{speaker:isCustomer?\"customer\":\"agent\",text,phase:phaseIndex};}).filter(m=>m.text.length>0);}function WhatsappIcon({size=15}){return /*#__PURE__*/_jsx(\"svg\",{width:size,height:size,viewBox:\"0 0 24 24\",fill:\"currentColor\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M12 2a10 10 0 0 0-8.6 15l-1.3 4.8 4.9-1.3A10 10 0 1 0 12 2Zm0 18.2a8.2 8.2 0 0 1-4.2-1.2l-.3-.2-2.9.8.8-2.8-.2-.3A8.2 8.2 0 1 1 12 20.2Zm4.5-6.1c-.2-.1-1.4-.7-1.7-.8-.2-.1-.4-.1-.5.1-.2.2-.6.8-.8 1-.1.1-.3.2-.5 0-.2-.1-1-.4-1.9-1.2-.7-.6-1.2-1.4-1.3-1.6-.1-.2 0-.3.1-.5l.4-.4c.1-.1.2-.3.2-.4 0-.2 0-.3-.1-.4l-.8-1.9c-.2-.5-.4-.4-.5-.4h-.5c-.2 0-.4 0-.6.3-.2.2-.8.8-.8 2s.8 2.3.9 2.5c.1.2 1.6 2.5 4 3.5.5.2 1 .4 1.3.5.6.2 1 .1 1.4.1.4-.1 1.4-.6 1.6-1.1.2-.6.2-1 .1-1.1-.1-.1-.2-.2-.4-.3Z\"})});}function PhoneIcon({size=15}){return /*#__PURE__*/_jsx(\"svg\",{width:size,height:size,viewBox:\"0 0 24 24\",fill:\"currentColor\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M6.6 10.8a15.6 15.6 0 0 0 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.2 1.1.4 2.3.6 3.5.6.6 0 1 .5 1 1V20c0 .6-.4 1-1 1A17 17 0 0 1 3 4c0-.6.5-1 1-1h3.4c.6 0 1 .4 1 1 0 1.2.2 2.4.6 3.5.1.4 0 .8-.2 1l-2.2 2.3Z\"})});}function WebIcon({size=15}){return /*#__PURE__*/_jsxs(\"svg\",{width:size,height:size,viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"1.7\",\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsx(\"rect\",{x:\"3\",y:\"4\",width:\"18\",height:\"14\",rx:\"2\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M3 8h18\",strokeLinecap:\"round\"}),/*#__PURE__*/_jsx(\"circle\",{cx:\"5.6\",cy:\"6\",r:\"0.5\",fill:\"currentColor\",stroke:\"none\"}),/*#__PURE__*/_jsx(\"circle\",{cx:\"7.4\",cy:\"6\",r:\"0.5\",fill:\"currentColor\",stroke:\"none\"})]});}function ChannelIcon({kind,size}){const k=(kind||\"\").toLowerCase();if(k.startsWith(\"what\"))return /*#__PURE__*/_jsx(WhatsappIcon,{size:size});if(k.startsWith(\"voi\")||k.startsWith(\"voz\")||k.startsWith(\"call\")||k.startsWith(\"llam\"))return /*#__PURE__*/_jsx(PhoneIcon,{size:size});return /*#__PURE__*/_jsx(WebIcon,{size:size});}/**\n * Channel Handoff Thread\n *\n * @framerIntrinsicWidth 1080\n * @framerIntrinsicHeight 520\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function ChannelHandoffThread(props){const{phases,height,radius,grain,startRevealed,autoplay,wordMs,messagePauseMs,phasePauseMs,loopDelayMs,cardFill,scrim,threadWidth,agentFill,agentText,customerFill,customerText,badgeFill,badgeText,dividerText,accent,titleColor,style}=props;const isStatic=useIsStaticRenderer();const uid=React.useId().replace(/[^a-zA-Z0-9]/g,\"\");const cls=`cht-${uid}`;const reduced=React.useMemo(()=>{if(isStatic||typeof window===\"undefined\"||!window.matchMedia)return false;return window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;},[isStatic]);const clean=(phases||[]).filter(p=>p&&(p.conversation||\"\").trim().length>0);const messages=React.useMemo(()=>clean.flatMap((p,i)=>parsePhase(p.conversation,i)),[clean.map(p=>p.conversation).join(\"|\")]);// How many messages are revealed. Static / reduced-motion show everything.\nconst[revealed,setRevealed]=React.useState(isStatic||reduced?messages.length:clamp(startRevealed,0,messages.length));const timer=React.useRef(null);const started=React.useRef(false);const rootRef=React.useRef(null);const clearTimer=()=>{if(timer.current){clearTimeout(timer.current);timer.current=null;}};// Drive the thread forward one message at a time; loop from the top.\nReact.useEffect(()=>{if(isStatic||reduced||!autoplay||messages.length===0)return;const schedule=()=>{setRevealed(r=>{const next=r>=messages.length?0:r+1;const crossingPhase=next>0&&next<messages.length+1&&messages[next-1]&&(next-1===0||messages[next-2]?.phase!==messages[next-1]?.phase);const restarting=next===0;const words=next>0?messages[next-1].text.split(/\\s+/).length:0;const revealTime=next>0?words*wordMs:0;const pause=restarting?loopDelayMs:crossingPhase?phasePauseMs:messagePauseMs;clearTimer();timer.current=setTimeout(schedule,revealTime+pause);return next;});};// start once, when scrolled into view\nconst begin=()=>{if(started.current)return;started.current=true;setRevealed(0);timer.current=setTimeout(schedule,400);};const el=rootRef.current;if(!el||typeof IntersectionObserver===\"undefined\"){begin();return clearTimer;}const io=new IntersectionObserver(entries=>{if(entries.some(e=>e.isIntersecting)){begin();io.disconnect();}},{threshold:.3});io.observe(el);return()=>{io.disconnect();clearTimer();};},[isStatic,reduced,autoplay,messages.length,wordMs,messagePauseMs,phasePauseMs,loopDelayMs]);const shownMessages=messages.slice(0,Math.max(0,revealed));const activePhase=shownMessages.length>0?shownMessages[shownMessages.length-1].phase:0;const css=`\n@font-face {\n    font-family: \"ES Klarheit Grotesk Book\";\n    src: url(\"https://framerusercontent.com/assets/uGvIBGEJGd3jpeCBJ6Kl0vkog.woff\") format(\"woff\");\n    font-weight: 450;\n    font-style: normal;\n    font-display: swap;\n}\n.${cls} {\n    position: relative;\n    width: 100%;\n    height: 100%;\n    border-radius: ${radius}px;\n    overflow: hidden;\n    container-type: inline-size;\n    font-family: ${FONT};\n    font-weight: 450;\n    background: ${cardFill};\n    isolation: isolate;\n}\n.${cls}-bg {\n    position: absolute;\n    inset: 0;\n    background-size: cover;\n    background-position: center right;\n    opacity: 0;\n    transition: opacity 0.9s ease;\n    z-index: 0;\n}\n.${cls}-bg[data-active=\"true\"] { opacity: 1; }\n.${cls}-video {\n    position: absolute;\n    inset: 0;\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n    object-position: center right;\n    z-index: 0;\n    animation: ${cls}-fadein 0.7s ease both;\n}\n@keyframes ${cls}-fadein { from { opacity: 0; } to { opacity: 1; } }\n.${cls}-grain {\n    position: absolute;\n    inset: 0;\n    z-index: 1;\n    pointer-events: none;\n    opacity: ${(grain*GRAIN_SCALE).toFixed(3)};\n    background-image: url(\"${GRAIN_TEXTURE}\");\n    background-repeat: repeat;\n    ${isStatic?\"\":`animation: ${cls}-grain-boil 1.1s steps(1, end) infinite;`}\n}\n@keyframes ${cls}-grain-boil {\n    0%   { background-position:    0px    0px; }\n    10%  { background-position:  -37px   19px; }\n    20%  { background-position:   61px  -43px; }\n    30%  { background-position:  -83px  -11px; }\n    40%  { background-position:   29px   67px; }\n    50%  { background-position: -101px   41px; }\n    60%  { background-position:   73px  -79px; }\n    70%  { background-position:  -19px  103px; }\n    80%  { background-position:   91px   13px; }\n    90%  { background-position:  -53px  -61px; }\n    100% { background-position:    0px    0px; }\n}\n.${cls}-scrim {\n    position: absolute;\n    inset: 0;\n    z-index: 1;\n    background: linear-gradient(90deg, ${scrim} 0%, ${scrim} 40%, transparent 82%);\n}\n.${cls}-content {\n    position: absolute;\n    inset: 0;\n    z-index: 2;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    gap: 18px;\n    padding: 40px 44px;\n    box-sizing: border-box;\n}\n.${cls}-head {\n    display: flex;\n    flex-direction: row;\n    align-items: center;\n    gap: 8px;\n    flex: none;\n}\n.${cls}-badge {\n    display: inline-flex;\n    align-items: center;\n    gap: 7px;\n    padding: 6px 12px;\n    border-radius: 999px;\n    background: ${badgeFill};\n    color: ${badgeText};\n    font-size: 12px;\n    letter-spacing: 0.02em;\n    transition: opacity 0.4s ease;\n}\n.${cls}-badge svg { display: block; }\n.${cls}-thread {\n    flex: 1 1 auto;\n    min-height: 0;\n    display: flex;\n    flex-direction: column;\n    justify-content: flex-end;\n    gap: 10px;\n    max-width: ${threadWidth}px;\n    overflow: hidden;\n    -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 16%, #000 100%);\n    mask-image: linear-gradient(to bottom, transparent 0%, #000 16%, #000 100%);\n    padding-top: 8px;\n}\n.${cls}-divider {\n    display: flex;\n    align-items: center;\n    gap: 9px;\n    align-self: center;\n    color: ${dividerText};\n    font-size: 11px;\n    letter-spacing: 0.06em;\n    text-transform: uppercase;\n    padding: 4px 0;\n    opacity: 0.85;\n    animation: ${cls}-in 0.4s ease both;\n}\n.${cls}-divider svg { display: block; }\n.${cls}-divider::before, .${cls}-divider::after {\n    content: \"\";\n    height: 1px;\n    width: 26px;\n    background: currentColor;\n    opacity: 0.4;\n}\n.${cls}-msg {\n    max-width: 84%;\n    min-width: 0;\n    width: fit-content;\n    white-space: normal;\n    overflow-wrap: break-word;\n    padding: 10px 14px;\n    border-radius: 16px;\n    font-size: 14px;\n    line-height: 1.4;\n    animation: ${cls}-in 0.34s cubic-bezier(0,0,0.2,1) both;\n    box-shadow: 0 4px 14px rgba(0,0,0,0.18);\n}\n.${cls}-msg[data-speaker=\"agent\"] {\n    align-self: flex-start;\n    background: ${agentFill};\n    color: ${agentText};\n    border-radius: 4px 14px 14px 14px;\n}\n/* brightness() keeps the white text legible over a bright photo, while\n   saturate() lets the backdrop's own colour bleed through the glass. Same\n   treatment as the carousel bubbles on the other landings. */\n.${cls}-msg[data-speaker=\"customer\"] {\n    align-self: flex-end;\n    background: ${customerFill};\n    color: ${customerText};\n    border-radius: 14px 14px 4px 14px;\n    -webkit-backdrop-filter: blur(24px) saturate(160%) brightness(0.55);\n    backdrop-filter: blur(24px) saturate(160%) brightness(0.55);\n    border: 1px solid rgba(255, 255, 255, 0.16);\n}\n.${cls}-word {\n    opacity: 0;\n    animation: ${cls}-word 0.2s ease forwards;\n}\n@keyframes ${cls}-in {\n    from { opacity: 0.001; transform: translateY(8px) scale(0.96); }\n    to { opacity: 1; transform: none; }\n}\n@keyframes ${cls}-word { to { opacity: 1; } }\n@container (max-width: 720px) {\n    .${cls}-content { padding: 28px 24px; gap: 14px; }\n    .${cls}-thread { max-width: 100%; }\n    .${cls}-msg { max-width: 90%; font-size: 13px; }\n}\n@media (prefers-reduced-motion: reduce) {\n    .${cls}-msg, .${cls}-divider { animation: none; }\n    .${cls}-word { opacity: 1; animation: none; }\n}\n`;return /*#__PURE__*/_jsxs(\"div\",{style:{...style,height,width:\"100%\"},children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:css}}),/*#__PURE__*/_jsxs(\"div\",{ref:rootRef,className:cls,style:{height:\"100%\"},children:[clean.map((p,i)=>/*#__PURE__*/_jsx(\"div\",{className:`${cls}-bg`,\"data-active\":i===activePhase,style:{backgroundImage:p.image?`url(${p.image})`:undefined}},i)),!isStatic&&!reduced&&clean[activePhase]?.video?/*#__PURE__*/_jsx(\"video\",{className:`${cls}-video`,src:clean[activePhase].video,poster:clean[activePhase].image||undefined,autoPlay:true,muted:true,loop:true,playsInline:true,preload:\"auto\"},activePhase):null,/*#__PURE__*/_jsx(\"div\",{className:`${cls}-scrim`}),grain>0?/*#__PURE__*/_jsx(\"div\",{className:`${cls}-grain`,\"aria-hidden\":\"true\"}):null,/*#__PURE__*/_jsxs(\"div\",{className:`${cls}-content`,children:[/*#__PURE__*/_jsx(\"div\",{className:`${cls}-head`,children:/*#__PURE__*/_jsxs(\"span\",{className:`${cls}-badge`,children:[/*#__PURE__*/_jsx(ChannelIcon,{kind:clean[activePhase]?.kind||\"\"}),clean[activePhase]?.label||\"\"]})}),/*#__PURE__*/_jsx(\"div\",{className:`${cls}-thread`,children:shownMessages.map((m,i)=>{const firstOfPhase=i===0||shownMessages[i-1].phase!==m.phase;const showDivider=firstOfPhase&&m.phase>0;const ph=clean[m.phase];return /*#__PURE__*/_jsxs(React.Fragment,{children:[showDivider&&/*#__PURE__*/_jsxs(\"div\",{className:`${cls}-divider`,children:[/*#__PURE__*/_jsx(ChannelIcon,{kind:ph?.kind||\"\",size:12}),`Sigue en ${ph?.label||\"\"}`]}),/*#__PURE__*/_jsx(\"div\",{className:`${cls}-msg`,\"data-speaker\":m.speaker,children:m.text.split(/\\s+/).map((w,wi)=>/*#__PURE__*/_jsxs(\"span\",{className:`${cls}-word`,style:{animationDelay:`${wi*wordMs}ms`},children:[w,wi<m.text.split(/\\s+/).length-1?\"\\xa0\":\"\"]},wi))})]},`${m.phase}-${i}`);})})]})]})]});}ChannelHandoffThread.defaultProps={width:1080,height:520};addPropertyControls(ChannelHandoffThread,{phases:{type:ControlType.Array,title:\"Phases\",maxCount:4,defaultValue:[{kind:\"whatsapp\",label:\"WhatsApp\",image:\"\",conversation:\"\"},{kind:\"voice\",label:\"Llamada\",image:\"\",conversation:\"\"},{kind:\"web\",label:\"Chat web\",image:\"\",conversation:\"\"}],control:{type:ControlType.Object,controls:{kind:{type:ControlType.Enum,title:\"Icon\",options:[\"whatsapp\",\"voice\",\"web\"],optionTitles:[\"WhatsApp\",\"Voz\",\"Web\"],defaultValue:\"whatsapp\"},label:{type:ControlType.String,title:\"Label\",defaultValue:\"WhatsApp\"},// Plain URL string, not ControlType.Image: an image control nested in an\n// object inside an array silently keeps its old value on write.\nimage:{type:ControlType.String,title:\"Image URL\",defaultValue:\"\"},video:{type:ControlType.String,title:\"Video URL\",defaultValue:\"\"},conversation:{type:ControlType.String,title:\"Conversation\",defaultValue:\"\",displayTextArea:true,description:`One message per line. ${AGENT_MARKER} = Silia, ${CUSTOMER_MARKER} = customer.`}}}},height:{type:ControlType.Number,title:\"Height\",defaultValue:520,min:300,max:900,step:10},radius:{type:ControlType.Number,title:\"Radius\",defaultValue:24,min:0,max:48,step:1},grain:{type:ControlType.Number,title:\"Grain\",defaultValue:.11,min:0,max:.4,step:.005,description:\"Vintage grain over the footage, same texture as the site. 0 turns it off.\"},startRevealed:{type:ControlType.Number,title:\"Start Revealed\",defaultValue:0,min:0,max:20,step:1,description:\"Messages shown before autoplay starts. Static render shows all.\"},autoplay:{type:ControlType.Boolean,title:\"Autoplay\",defaultValue:true},wordMs:{type:ControlType.Number,title:\"Word ms\",defaultValue:42,min:0,max:140,step:2},messagePauseMs:{type:ControlType.Number,title:\"Msg Pause\",defaultValue:520,min:0,max:2e3,step:20},phasePauseMs:{type:ControlType.Number,title:\"Phase Pause\",defaultValue:1100,min:0,max:4e3,step:50},loopDelayMs:{type:ControlType.Number,title:\"Loop Delay\",defaultValue:2600,min:0,max:8e3,step:100},cardFill:{type:ControlType.Color,title:\"Card Fill\",defaultValue:\"#0A0A0C\"},scrim:{type:ControlType.Color,title:\"Scrim\",defaultValue:\"rgba(8,8,12,0.82)\"},threadWidth:{type:ControlType.Number,title:\"Thread Width\",defaultValue:460,min:280,max:720,step:10},agentFill:{type:ControlType.Color,title:\"Agent Fill\",defaultValue:\"#FFFFFF\"},agentText:{type:ControlType.Color,title:\"Agent Text\",defaultValue:\"#111111\"},customerFill:{type:ControlType.Color,title:\"Customer Fill\",defaultValue:\"rgba(10,10,12,0.34)\"},customerText:{type:ControlType.Color,title:\"Customer Text\",defaultValue:\"#FFFFFF\"},badgeFill:{type:ControlType.Color,title:\"Badge Fill\",defaultValue:\"rgba(255,255,255,0.14)\"},badgeText:{type:ControlType.Color,title:\"Badge Text\",defaultValue:\"#FFFFFF\"},dividerText:{type:ControlType.Color,title:\"Divider Text\",defaultValue:\"rgba(255,255,255,0.7)\"},accent:{type:ControlType.Color,title:\"Accent\",defaultValue:\"#CAF91A\"},titleColor:{type:ControlType.Color,title:\"Title\",defaultValue:\"#FFFFFF\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ChannelHandoffThread\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"1080\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"520\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ChannelHandoffThread.map"],"mappings":"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"}