veo-sdk 0.5.4 → 0.5.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/builder-AMCPHL4K.mjs +5 -0
- package/dist/{builder-MFTOJV6F.mjs.map → builder-AMCPHL4K.mjs.map} +1 -1
- package/dist/builder.cjs +294 -6
- package/dist/builder.cjs.map +1 -1
- package/dist/builder.d.cts +9 -2
- package/dist/builder.d.ts +9 -2
- package/dist/builder.mjs +4 -4
- package/dist/{chunk-JPA46JBS.mjs → chunk-764FSEHS.mjs} +221 -4
- package/dist/chunk-764FSEHS.mjs.map +1 -0
- package/dist/{chunk-SBNT464M.mjs → chunk-A4RHMCCM.mjs} +79 -8
- package/dist/chunk-A4RHMCCM.mjs.map +1 -0
- package/dist/{chunk-GKJW5TOZ.mjs → chunk-CPSHNLZG.mjs} +7 -3
- package/dist/chunk-CPSHNLZG.mjs.map +1 -0
- package/dist/{guide-preview-B912Y6UY.d.cts → guide-preview-XUnTmzUO.d.cts} +22 -4
- package/dist/{guide-preview-B912Y6UY.d.ts → guide-preview-XUnTmzUO.d.ts} +22 -4
- package/dist/index.cjs +309 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.mjs +5 -5
- package/dist/veo-builder.js +39 -10
- package/dist/veo-builder.js.map +1 -1
- package/dist/veo-guides.js +34 -5
- package/dist/veo-guides.js.map +1 -1
- package/package.json +1 -1
- package/dist/builder-MFTOJV6F.mjs +0 -5
- package/dist/chunk-GKJW5TOZ.mjs.map +0 -1
- package/dist/chunk-JPA46JBS.mjs.map +0 -1
- package/dist/chunk-SBNT464M.mjs.map +0 -1
package/dist/veo-guides.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var veoGuides=(function(exports){'use strict';function gt(){return typeof window<"u"}function Be(){return typeof document<"u"}var vt=["http:","https:"],yt="data-veo-guide",wt="veo:freq:";var bt="veo:walkthrough_state:";var Ct={shown:1,dismissed:2,completed:2};function kt(n){return n.slice(-16)||"default"}var Fe=class{constructor(e){this.storageKey=`${wt}${e}`,this.cache=this.load(),this.prune();}shouldFilter(e,t){if(t==="every_visit"||t==="always")return false;let o=this.cache.get(e);return o?t==="once"?true:t==="until_dismissed"?o.status==="dismissed"||o.status==="completed":t==="until_answered"?o.status==="completed":false:false}record(e,t){let o=this.cache.get(e);o&&Ct[t]<Ct[o.status]||(this.cache.set(e,{guideId:e,status:t,lastInteractionAt:Date.now()}),this.persist());}clear(){this.cache.clear(),this.persist();}snapshot(){return Array.from(this.cache.values())}prune(){let e=Date.now(),t=false;for(let[o,i]of this.cache)e-i.lastInteractionAt>7776e6&&(this.cache.delete(o),t=true);if(this.cache.size>500){let o=Array.from(this.cache.entries()).sort((r,s)=>r[1].lastInteractionAt-s[1].lastInteractionAt),i=this.cache.size-500;for(let r=0;r<i;r++){let s=o[r];s&&this.cache.delete(s[0]);}t=true;}t&&this.persist();}load(){if(typeof localStorage>"u")return new Map;try{let e=localStorage.getItem(this.storageKey);if(!e)return new Map;let t=JSON.parse(e);if(!Array.isArray(t))return new Map;let o=[];for(let i of t)if(i&&typeof i=="object"&&typeof i.guideId=="string"&&typeof i.lastInteractionAt=="number"&&["shown","dismissed","completed"].includes(i.status)){let r=i;o.push([r.guideId,r]);}return new Map(o)}catch{return new Map}}persist(){if(!(typeof localStorage>"u"))try{let e=JSON.stringify(Array.from(this.cache.values()));localStorage.setItem(this.storageKey,e);}catch{}}};var He=class{constructor(e,t,o=false){this.apiUrl=e;this.apiKey=t;this.debug=o;}async resolve(e,t){let o=new URLSearchParams({endUserId:e,pageUrl:t}),i;try{i=await fetch(`${this.apiUrl}/v1/guides/resolve?${o.toString()}`,{method:"GET",headers:{"X-Api-Key":this.apiKey},credentials:"omit"});}catch(r){return this.debug&&console.error("[veo] guides resolve fetch failed:",r),[]}if(!i.ok)return this.debug&&console.warn("[veo] guides resolve HTTP",i.status),[];try{let r=await i.json();return Array.isArray(r.guides)?r.guides:[]}catch(r){return this.debug&&console.error("[veo] guides resolve parse failed:",r),[]}}async fetchById(e){let t;try{t=await fetch(`${this.apiUrl}/v1/guides/${encodeURIComponent(e)}`,{method:"GET",headers:{"X-Api-Key":this.apiKey},credentials:"omit"});}catch(o){return this.debug&&console.error("[veo] guides fetchById network failed:",o),null}if(!t.ok)return this.debug&&console.warn("[veo] guides fetchById HTTP",t.status),null;try{let o=await t.json();return typeof o.guideId!="string"||typeof o.guideName!="string"||typeof o.guideType!="string"||!Array.isArray(o.guideSteps)||!o.activationRules||typeof o.displayFrequency!="string"||typeof o.displayPriority!="number"?(this.debug&&console.warn("[veo] guides fetchById: unexpected shape"),null):{guideId:o.guideId,guideName:o.guideName,guideType:o.guideType,guideSteps:o.guideSteps,activationRules:o.activationRules,displayFrequency:o.displayFrequency,displayPriority:o.displayPriority}}catch(o){return this.debug&&console.error("[veo] guides fetchById parse failed:",o),null}}};function Et(n){let e={endUserId:n.endUserId,interactionType:n.action};return n.sessionId&&(e.sessionId=n.sessionId),typeof n.stepIndex=="number"&&(e.stepPosition=n.stepIndex),n.pageUrl&&(e.pageUrl=n.pageUrl),n.pagePath&&(e.pagePath=n.pagePath),n.metadata&&(e.metadata=n.metadata),e}var $e=class{constructor(e,t){this.apiUrl=e;this.apiKey=t;}async send(e){let t=this.buildUrl(e.guideId),o=await fetch(t,{method:"POST",headers:{"X-Api-Key":this.apiKey,"Content-Type":"application/json"},body:JSON.stringify(Et(e.payload)),credentials:"omit"});if(!o.ok)throw new Error(`guide interaction send failed: HTTP ${o.status}`)}sendBeacon(e){if(typeof navigator>"u"||typeof navigator.sendBeacon!="function")return false;let t=`${this.buildUrl(e.guideId)}?key=${encodeURIComponent(this.apiKey)}`,o=new Blob([JSON.stringify(Et(e.payload))],{type:"application/json"});try{return navigator.sendBeacon(t,o)}catch{return false}}buildUrl(e){return `${this.apiUrl}/v1/guides/${encodeURIComponent(e)}/interactions`}};var We=class{constructor(e){this.config=e;this.buffer=[];this.timer=null;this.flushing=false;this.unloadCleanup=null;this.startTimer(),this.installUnloadHandler();}get size(){return this.buffer.length}enqueue(e){this.buffer.push({guideId:e.guideId,payload:e.payload,attempts:0,enqueuedAt:Date.now()}),this.buffer.length>=this.config.batchSize&&this.flush();}async flush(){if(this.flushing||this.buffer.length===0)return;let e=Date.now(),t=this.buffer.filter(r=>(r.nextRetryAt??0)<=e);if(t.length===0)return;this.flushing=true;let o=new Set(t);this.buffer=this.buffer.filter(r=>!o.has(r));let i=await Promise.allSettled(t.map(r=>this.config.client.send({guideId:r.guideId,payload:r.payload})));for(let r=0;r<i.length;r++){let s=i[r],a=t[r];!s||!a||s.status!=="fulfilled"&&(a.attempts+=1,a.attempts<this.config.maxRetries?(a.nextRetryAt=Date.now()+this.retryDelayMs(a.attempts),this.buffer.push(a)):this.safeOnError(s.reason,a));}this.flushing=false;}retryDelayMs(e){let t=Math.min(3e3*2**(e-1),3e4);return t/2+Math.random()*(t/2)}flushBeacon(){if(this.buffer.length===0)return;let e=this.buffer.splice(0,this.buffer.length);for(let t of e)this.config.client.sendBeacon({guideId:t.guideId,payload:t.payload});}destroy(){this.timer&&clearInterval(this.timer),this.timer=null,this.unloadCleanup?.(),this.unloadCleanup=null;}startTimer(){typeof window>"u"||(this.timer=setInterval(()=>{this.flush();},this.config.flushIntervalMs));}installUnloadHandler(){if(typeof window>"u")return;let e=()=>this.flushBeacon(),t=()=>{document.visibilityState==="hidden"&&this.flushBeacon();};window.addEventListener("pagehide",e),window.addEventListener("visibilitychange",t),this.unloadCleanup=()=>{window.removeEventListener("pagehide",e),window.removeEventListener("visibilitychange",t);};}safeOnError(e,t){if(!this.config.onError)return;let o=e instanceof Error?e:new Error(String(e));try{this.config.onError(o,t);}catch{}}};var ie=Math.min,j=Math.max,Ae=Math.round;var _=n=>({x:n,y:n}),bn={left:"right",right:"left",bottom:"top",top:"bottom"};function ze(n,e,t){return j(n,ie(e,t))}function ce(n,e){return typeof n=="function"?n(e):n}function V(n){return n.split("-")[0]}function ue(n){return n.split("-")[1]}function at(n){return n==="x"?"y":"x"}function Ke(n){return n==="y"?"height":"width"}function z(n){let e=n[0];return e==="t"||e==="b"?"y":"x"}function qe(n){return at(z(n))}function It(n,e,t){t===void 0&&(t=false);let o=ue(n),i=qe(n),r=Ke(i),s=i==="x"?o===(t?"end":"start")?"right":"left":o==="start"?"bottom":"top";return e.reference[r]>e.floating[r]&&(s=Te(s)),[s,Te(s)]}function Tt(n){let e=Te(n);return [Ue(n),e,Ue(e)]}function Ue(n){return n.includes("start")?n.replace("start","end"):n.replace("end","start")}var St=["left","right"],Rt=["right","left"],xn=["top","bottom"],Cn=["bottom","top"];function kn(n,e,t){switch(n){case "top":case "bottom":return t?e?Rt:St:e?St:Rt;case "left":case "right":return e?xn:Cn;default:return []}}function At(n,e,t,o){let i=ue(n),r=kn(V(n),t==="start",o);return i&&(r=r.map(s=>s+"-"+i),e&&(r=r.concat(r.map(Ue)))),r}function Te(n){let e=V(n);return bn[e]+n.slice(e.length)}function En(n){return {top:0,right:0,bottom:0,left:0,...n}}function lt(n){return typeof n!="number"?En(n):{top:n,right:n,bottom:n,left:n}}function re(n){let{x:e,y:t,width:o,height:i}=n;return {width:o,height:i,top:t,left:e,right:e+o,bottom:t+i,x:e,y:t}}function Pt(n,e,t){let{reference:o,floating:i}=n,r=z(e),s=qe(e),a=Ke(s),l=V(e),d=r==="y",c=o.x+o.width/2-i.width/2,u=o.y+o.height/2-i.height/2,f=o[a]/2-i[a]/2,p;switch(l){case "top":p={x:c,y:o.y-i.height};break;case "bottom":p={x:c,y:o.y+o.height};break;case "right":p={x:o.x+o.width,y:u};break;case "left":p={x:o.x-i.width,y:u};break;default:p={x:o.x,y:o.y};}switch(ue(e)){case "start":p[s]-=f*(t&&d?-1:1);break;case "end":p[s]+=f*(t&&d?-1:1);break}return p}async function Lt(n,e){var t;e===void 0&&(e={});let{x:o,y:i,platform:r,rects:s,elements:a,strategy:l}=n,{boundary:d="clippingAncestors",rootBoundary:c="viewport",elementContext:u="floating",altBoundary:f=false,padding:p=0}=ce(e,n),h=lt(p),g=a[f?u==="floating"?"reference":"floating":u],v=re(await r.getClippingRect({element:(t=await(r.isElement==null?void 0:r.isElement(g)))==null||t?g:g.contextElement||await(r.getDocumentElement==null?void 0:r.getDocumentElement(a.floating)),boundary:d,rootBoundary:c,strategy:l})),w=u==="floating"?{x:o,y:i,width:s.floating.width,height:s.floating.height}:s.reference,x=await(r.getOffsetParent==null?void 0:r.getOffsetParent(a.floating)),y=await(r.isElement==null?void 0:r.isElement(x))?await(r.getScale==null?void 0:r.getScale(x))||{x:1,y:1}:{x:1,y:1},C=re(r.convertOffsetParentRelativeRectToViewportRelativeRect?await r.convertOffsetParentRelativeRectToViewportRelativeRect({elements:a,rect:w,offsetParent:x,strategy:l}):w);return {top:(v.top-C.top+h.top)/y.y,bottom:(C.bottom-v.bottom+h.bottom)/y.y,left:(v.left-C.left+h.left)/y.x,right:(C.right-v.right+h.right)/y.x}}var Sn=50,Gt=async(n,e,t)=>{let{placement:o="bottom",strategy:i="absolute",middleware:r=[],platform:s}=t,a=s.detectOverflow?s:{...s,detectOverflow:Lt},l=await(s.isRTL==null?void 0:s.isRTL(e)),d=await s.getElementRects({reference:n,floating:e,strategy:i}),{x:c,y:u}=Pt(d,o,l),f=o,p=0,h={};for(let m=0;m<r.length;m++){let g=r[m];if(!g)continue;let{name:v,fn:w}=g,{x,y,data:C,reset:k}=await w({x:c,y:u,initialPlacement:o,placement:f,strategy:i,middlewareData:h,rects:d,platform:a,elements:{reference:n,floating:e}});c=x??c,u=y??u,h[v]={...h[v],...C},k&&p<Sn&&(p++,typeof k=="object"&&(k.placement&&(f=k.placement),k.rects&&(d=k.rects===true?await s.getElementRects({reference:n,floating:e,strategy:i}):k.rects),{x:c,y:u}=Pt(d,f,l)),m=-1);}return {x:c,y:u,placement:f,strategy:i,middlewareData:h}},Nt=n=>({name:"arrow",options:n,async fn(e){let{x:t,y:o,placement:i,rects:r,platform:s,elements:a,middlewareData:l}=e,{element:d,padding:c=0}=ce(n,e)||{};if(d==null)return {};let u=lt(c),f={x:t,y:o},p=qe(i),h=Ke(p),m=await s.getDimensions(d),g=p==="y",v=g?"top":"left",w=g?"bottom":"right",x=g?"clientHeight":"clientWidth",y=r.reference[h]+r.reference[p]-f[p]-r.floating[h],C=f[p]-r.reference[p],k=await(s.getOffsetParent==null?void 0:s.getOffsetParent(d)),$=k?k[x]:0;(!$||!await(s.isElement==null?void 0:s.isElement(k)))&&($=a.floating[x]||r.floating[h]);let Se=y/2-C/2,te=$/2-m[h]/2-1,W=ie(u[v],te),Re=ie(u[w],te),ne=W,Ie=$-m[h]-Re,S=$/2-m[h]/2+Se,oe=ze(ne,S,Ie),U=!l.arrow&&ue(i)!=null&&S!==oe&&r.reference[h]/2-(S<ne?W:Re)-m[h]/2<0,G=U?S<ne?S-ne:S-Ie:0;return {[p]:f[p]+G,data:{[p]:oe,centerOffset:S-oe-G,...U&&{alignmentOffset:G}},reset:U}}});var _t=function(n){return n===void 0&&(n={}),{name:"flip",options:n,async fn(e){var t,o;let{placement:i,middlewareData:r,rects:s,initialPlacement:a,platform:l,elements:d}=e,{mainAxis:c=true,crossAxis:u=true,fallbackPlacements:f,fallbackStrategy:p="bestFit",fallbackAxisSideDirection:h="none",flipAlignment:m=true,...g}=ce(n,e);if((t=r.arrow)!=null&&t.alignmentOffset)return {};let v=V(i),w=z(a),x=V(a)===a,y=await(l.isRTL==null?void 0:l.isRTL(d.floating)),C=f||(x||!m?[Te(a)]:Tt(a)),k=h!=="none";!f&&k&&C.push(...At(a,m,h,y));let $=[a,...C],Se=await l.detectOverflow(e,g),te=[],W=((o=r.flip)==null?void 0:o.overflows)||[];if(c&&te.push(Se[v]),u){let S=It(i,s,y);te.push(Se[S[0]],Se[S[1]]);}if(W=[...W,{placement:i,overflows:te}],!te.every(S=>S<=0)){var Re,ne;let S=(((Re=r.flip)==null?void 0:Re.index)||0)+1,oe=$[S];if(oe&&(!(u==="alignment"?w!==z(oe):false)||W.every(N=>z(N.placement)===w?N.overflows[0]>0:true)))return {data:{index:S,overflows:W},reset:{placement:oe}};let U=(ne=W.filter(G=>G.overflows[0]<=0).sort((G,N)=>G.overflows[1]-N.overflows[1])[0])==null?void 0:ne.placement;if(!U)switch(p){case "bestFit":{var Ie;let G=(Ie=W.filter(N=>{if(k){let q=z(N.placement);return q===w||q==="y"}return true}).map(N=>[N.placement,N.overflows.filter(q=>q>0).reduce((q,yn)=>q+yn,0)]).sort((N,q)=>N[1]-q[1])[0])==null?void 0:Ie[0];G&&(U=G);break}case "initialPlacement":U=a;break}if(i!==U)return {reset:{placement:U}}}return {}}}};var Rn=new Set(["left","top"]);async function In(n,e){let{placement:t,platform:o,elements:i}=n,r=await(o.isRTL==null?void 0:o.isRTL(i.floating)),s=V(t),a=ue(t),l=z(t)==="y",d=Rn.has(s)?-1:1,c=r&&l?-1:1,u=ce(e,n),{mainAxis:f,crossAxis:p,alignmentAxis:h}=typeof u=="number"?{mainAxis:u,crossAxis:0,alignmentAxis:null}:{mainAxis:u.mainAxis||0,crossAxis:u.crossAxis||0,alignmentAxis:u.alignmentAxis};return a&&typeof h=="number"&&(p=a==="end"?h*-1:h),l?{x:p*c,y:f*d}:{x:f*d,y:p*c}}var Ot=function(n){return n===void 0&&(n=0),{name:"offset",options:n,async fn(e){var t,o;let{x:i,y:r,placement:s,middlewareData:a}=e,l=await In(e,n);return s===((t=a.offset)==null?void 0:t.placement)&&(o=a.arrow)!=null&&o.alignmentOffset?{}:{x:i+l.x,y:r+l.y,data:{...l,placement:s}}}}},Mt=function(n){return n===void 0&&(n={}),{name:"shift",options:n,async fn(e){let{x:t,y:o,placement:i,platform:r}=e,{mainAxis:s=true,crossAxis:a=false,limiter:l={fn:v=>{let{x:w,y:x}=v;return {x:w,y:x}}},...d}=ce(n,e),c={x:t,y:o},u=await r.detectOverflow(e,d),f=z(V(i)),p=at(f),h=c[p],m=c[f];if(s){let v=p==="y"?"top":"left",w=p==="y"?"bottom":"right",x=h+u[v],y=h-u[w];h=ze(x,h,y);}if(a){let v=f==="y"?"top":"left",w=f==="y"?"bottom":"right",x=m+u[v],y=m-u[w];m=ze(x,m,y);}let g=l.fn({...e,[p]:h,[f]:m});return {...g,data:{x:g.x-t,y:g.y-o,enabled:{[p]:s,[f]:a}}}}}};function Ve(){return typeof window<"u"}function ae(n){return Bt(n)?(n.nodeName||"").toLowerCase():"#document"}function I(n){var e;return (n==null||(e=n.ownerDocument)==null?void 0:e.defaultView)||window}function M(n){var e;return (e=(Bt(n)?n.ownerDocument:n.document)||window.document)==null?void 0:e.documentElement}function Bt(n){return Ve()?n instanceof Node||n instanceof I(n).Node:false}function P(n){return Ve()?n instanceof Element||n instanceof I(n).Element:false}function D(n){return Ve()?n instanceof HTMLElement||n instanceof I(n).HTMLElement:false}function Dt(n){return !Ve()||typeof ShadowRoot>"u"?false:n instanceof ShadowRoot||n instanceof I(n).ShadowRoot}function pe(n){let{overflow:e,overflowX:t,overflowY:o,display:i}=L(n);return /auto|scroll|overlay|hidden|clip/.test(e+o+t)&&i!=="inline"&&i!=="contents"}function Ft(n){return /^(table|td|th)$/.test(ae(n))}function Pe(n){try{if(n.matches(":popover-open"))return !0}catch{}try{return n.matches(":modal")}catch{return false}}var Tn=/transform|translate|scale|rotate|perspective|filter/,An=/paint|layout|strict|content/,se=n=>!!n&&n!=="none",dt;function Ye(n){let e=P(n)?L(n):n;return se(e.transform)||se(e.translate)||se(e.scale)||se(e.rotate)||se(e.perspective)||!Xe()&&(se(e.backdropFilter)||se(e.filter))||Tn.test(e.willChange||"")||An.test(e.contain||"")}function Ht(n){let e=K(n);for(;D(e)&&!le(e);){if(Ye(e))return e;if(Pe(e))return null;e=K(e);}return null}function Xe(){return dt==null&&(dt=typeof CSS<"u"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),dt}function le(n){return /^(html|body|#document)$/.test(ae(n))}function L(n){return I(n).getComputedStyle(n)}function Le(n){return P(n)?{scrollLeft:n.scrollLeft,scrollTop:n.scrollTop}:{scrollLeft:n.scrollX,scrollTop:n.scrollY}}function K(n){if(ae(n)==="html")return n;let e=n.assignedSlot||n.parentNode||Dt(n)&&n.host||M(n);return Dt(e)?e.host:e}function $t(n){let e=K(n);return le(e)?n.ownerDocument?n.ownerDocument.body:n.body:D(e)&&pe(e)?e:$t(e)}function je(n,e,t){var o;e===void 0&&(e=[]);let i=$t(n),r=i===((o=n.ownerDocument)==null?void 0:o.body),s=I(i);if(r){Qe(s);return e.concat(s,s.visualViewport||[],pe(i)?i:[],[])}else return e.concat(i,je(i,[]))}function Qe(n){return n.parent&&Object.getPrototypeOf(n.parent)?n.frameElement:null}function Kt(n){let e=L(n),t=parseFloat(e.width)||0,o=parseFloat(e.height)||0,i=D(n),r=i?n.offsetWidth:t,s=i?n.offsetHeight:o,a=Ae(t)!==r||Ae(o)!==s;return a&&(t=r,o=s),{width:t,height:o,$:a}}function qt(n){return P(n)?n:n.contextElement}function fe(n){let e=qt(n);if(!D(e))return _(1);let t=e.getBoundingClientRect(),{width:o,height:i,$:r}=Kt(e),s=(r?Ae(t.width):t.width)/o,a=(r?Ae(t.height):t.height)/i;return (!s||!Number.isFinite(s))&&(s=1),(!a||!Number.isFinite(a))&&(a=1),{x:s,y:a}}var Pn=_(0);function jt(n){let e=I(n);return !Xe()||!e.visualViewport?Pn:{x:e.visualViewport.offsetLeft,y:e.visualViewport.offsetTop}}function Ln(n,e,t){return e===void 0&&(e=false),!t||e&&t!==I(n)?false:e}function Ge(n,e,t,o){e===void 0&&(e=false),t===void 0&&(t=false);let i=n.getBoundingClientRect(),r=qt(n),s=_(1);e&&(o?P(o)&&(s=fe(o)):s=fe(n));let a=Ln(r,t,o)?jt(r):_(0),l=(i.left+a.x)/s.x,d=(i.top+a.y)/s.y,c=i.width/s.x,u=i.height/s.y;if(r){let f=I(r),p=o&&P(o)?I(o):o,h=f,m=Qe(h);for(;m&&o&&p!==h;){let g=fe(m),v=m.getBoundingClientRect(),w=L(m),x=v.left+(m.clientLeft+parseFloat(w.paddingLeft))*g.x,y=v.top+(m.clientTop+parseFloat(w.paddingTop))*g.y;l*=g.x,d*=g.y,c*=g.x,u*=g.y,l+=x,d+=y,h=I(m),m=Qe(h);}}return re({width:c,height:u,x:l,y:d})}function Je(n,e){let t=Le(n).scrollLeft;return e?e.left+t:Ge(M(n)).left+t}function Vt(n,e){let t=n.getBoundingClientRect(),o=t.left+e.scrollLeft-Je(n,t),i=t.top+e.scrollTop;return {x:o,y:i}}function Gn(n){let{elements:e,rect:t,offsetParent:o,strategy:i}=n,r=i==="fixed",s=M(o),a=e?Pe(e.floating):false;if(o===s||a&&r)return t;let l={scrollLeft:0,scrollTop:0},d=_(1),c=_(0),u=D(o);if((u||!u&&!r)&&((ae(o)!=="body"||pe(s))&&(l=Le(o)),u)){let p=Ge(o);d=fe(o),c.x=p.x+o.clientLeft,c.y=p.y+o.clientTop;}let f=s&&!u&&!r?Vt(s,l):_(0);return {width:t.width*d.x,height:t.height*d.y,x:t.x*d.x-l.scrollLeft*d.x+c.x+f.x,y:t.y*d.y-l.scrollTop*d.y+c.y+f.y}}function Nn(n){return Array.from(n.getClientRects())}function _n(n){let e=M(n),t=Le(n),o=n.ownerDocument.body,i=j(e.scrollWidth,e.clientWidth,o.scrollWidth,o.clientWidth),r=j(e.scrollHeight,e.clientHeight,o.scrollHeight,o.clientHeight),s=-t.scrollLeft+Je(n),a=-t.scrollTop;return L(o).direction==="rtl"&&(s+=j(e.clientWidth,o.clientWidth)-i),{width:i,height:r,x:s,y:a}}var Wt=25;function On(n,e){let t=I(n),o=M(n),i=t.visualViewport,r=o.clientWidth,s=o.clientHeight,a=0,l=0;if(i){r=i.width,s=i.height;let c=Xe();(!c||c&&e==="fixed")&&(a=i.offsetLeft,l=i.offsetTop);}let d=Je(o);if(d<=0){let c=o.ownerDocument,u=c.body,f=getComputedStyle(u),p=c.compatMode==="CSS1Compat"&&parseFloat(f.marginLeft)+parseFloat(f.marginRight)||0,h=Math.abs(o.clientWidth-u.clientWidth-p);h<=Wt&&(r-=h);}else d<=Wt&&(r+=d);return {width:r,height:s,x:a,y:l}}function Mn(n,e){let t=Ge(n,true,e==="fixed"),o=t.top+n.clientTop,i=t.left+n.clientLeft,r=D(n)?fe(n):_(1),s=n.clientWidth*r.x,a=n.clientHeight*r.y,l=i*r.x,d=o*r.y;return {width:s,height:a,x:l,y:d}}function Ut(n,e,t){let o;if(e==="viewport")o=On(n,t);else if(e==="document")o=_n(M(n));else if(P(e))o=Mn(e,t);else {let i=jt(n);o={x:e.x-i.x,y:e.y-i.y,width:e.width,height:e.height};}return re(o)}function Yt(n,e){let t=K(n);return t===e||!P(t)||le(t)?false:L(t).position==="fixed"||Yt(t,e)}function Dn(n,e){let t=e.get(n);if(t)return t;let o=je(n,[]).filter(a=>P(a)&&ae(a)!=="body"),i=null,r=L(n).position==="fixed",s=r?K(n):n;for(;P(s)&&!le(s);){let a=L(s),l=Ye(s);!l&&a.position==="fixed"&&(i=null),(r?!l&&!i:!l&&a.position==="static"&&!!i&&(i.position==="absolute"||i.position==="fixed")||pe(s)&&!l&&Yt(n,s))?o=o.filter(c=>c!==s):i=a,s=K(s);}return e.set(n,o),o}function Bn(n){let{element:e,boundary:t,rootBoundary:o,strategy:i}=n,s=[...t==="clippingAncestors"?Pe(e)?[]:Dn(e,this._c):[].concat(t),o],a=Ut(e,s[0],i),l=a.top,d=a.right,c=a.bottom,u=a.left;for(let f=1;f<s.length;f++){let p=Ut(e,s[f],i);l=j(p.top,l),d=ie(p.right,d),c=ie(p.bottom,c),u=j(p.left,u);}return {width:d-u,height:c-l,x:u,y:l}}function Fn(n){let{width:e,height:t}=Kt(n);return {width:e,height:t}}function Hn(n,e,t){let o=D(e),i=M(e),r=t==="fixed",s=Ge(n,true,r,e),a={scrollLeft:0,scrollTop:0},l=_(0);function d(){l.x=Je(i);}if(o||!o&&!r)if((ae(e)!=="body"||pe(i))&&(a=Le(e)),o){let p=Ge(e,true,r,e);l.x=p.x+e.clientLeft,l.y=p.y+e.clientTop;}else i&&d();r&&!o&&i&&d();let c=i&&!o&&!r?Vt(i,a):_(0),u=s.left+a.scrollLeft-l.x-c.x,f=s.top+a.scrollTop-l.y-c.y;return {x:u,y:f,width:s.width,height:s.height}}function ct(n){return L(n).position==="static"}function zt(n,e){if(!D(n)||L(n).position==="fixed")return null;if(e)return e(n);let t=n.offsetParent;return M(n)===t&&(t=t.ownerDocument.body),t}function Xt(n,e){let t=I(n);if(Pe(n))return t;if(!D(n)){let i=K(n);for(;i&&!le(i);){if(P(i)&&!ct(i))return i;i=K(i);}return t}let o=zt(n,e);for(;o&&Ft(o)&&ct(o);)o=zt(o,e);return o&&le(o)&&ct(o)&&!Ye(o)?t:o||Ht(n)||t}var $n=async function(n){let e=this.getOffsetParent||Xt,t=this.getDimensions,o=await t(n.floating);return {reference:Hn(n.reference,await e(n.floating),n.strategy),floating:{x:0,y:0,width:o.width,height:o.height}}};function Wn(n){return L(n).direction==="rtl"}var Un={convertOffsetParentRelativeRectToViewportRelativeRect:Gn,getDocumentElement:M,getClippingRect:Bn,getOffsetParent:Xt,getElementRects:$n,getClientRects:Nn,getDimensions:Fn,getScale:fe,isElement:P,isRTL:Wn};var Y=Ot;var X=Mt,Q=_t;var he=Nt;var J=(n,e,t)=>{let o=new Map,i={platform:Un,...t},r={...i.platform,_c:o};return Gt(n,e,{...i,platform:r})};var zn={P:"p",BR:"br",STRONG:"strong",B:"strong",EM:"em",I:"em",U:"u",S:"s",UL:"ul",OL:"ol",LI:"li",A:"a"},Kn=new Set(["SCRIPT","STYLE","TEMPLATE","IFRAME","OBJECT","EMBED","NOSCRIPT","TITLE","TEXTAREA","SELECT","SVG","MATH"]),Qt=16*1024,qn=20,jn=1e3;function Jt(n,e){let t=e.createDocumentFragment();if(typeof n!="string"||n.length===0)return t;let o;try{o=new DOMParser().parseFromString(n.length>Qt?n.slice(0,Qt):n,"text/html");}catch{return t.appendChild(e.createTextNode(n)),t}let i={nodes:0,exceeded:false};for(let r of Array.from(o.body.childNodes)){let s=Ne(r,e,0,i);s&&t.appendChild(s);}if(i.exceeded){let r=e.createDocumentFragment();return r.appendChild(e.createTextNode(o.body.textContent??"")),r}return t}function Ne(n,e,t,o){if(o.exceeded)return null;if(++o.nodes>jn||t>qn)return o.exceeded=true,null;if(n.nodeType===Node.TEXT_NODE)return e.createTextNode(n.textContent??"");if(n.nodeType!==Node.ELEMENT_NODE)return null;let i=n;if(Kn.has(i.tagName))return null;let r=zn[i.tagName];if(!r){let a=e.createDocumentFragment();for(let l of Array.from(i.childNodes)){let d=Ne(l,e,t+1,o);d&&a.appendChild(d);}return a}if(r==="a"){let a=i.getAttribute("href")??"";if(!A(a)){let d=e.createDocumentFragment();for(let c of Array.from(i.childNodes)){let u=Ne(c,e,t+1,o);u&&d.appendChild(u);}return d}let l=e.createElement("a");l.setAttribute("href",a),l.setAttribute("target","_blank"),l.setAttribute("rel","noopener noreferrer nofollow");for(let d of Array.from(i.childNodes)){let c=Ne(d,e,t+1,o);c&&l.appendChild(c);}return l}let s=e.createElement(r);for(let a of Array.from(i.childNodes)){let l=Ne(a,e,t+1,o);l&&s.appendChild(l);}return s}function T(n,e,t){let o=e.createElement("div");o.className="veo-guide-content";let i=en(n);return i?Yn(o,i,e,t):Vn(o,n,e,t),o.appendChild(Oe(e,()=>t.onDismiss())),o}function Zt(n,e){let t=en(n);if(t){let i=[];for(let{block:r,idx:s}of t){if(r.type==="button")continue;let a=tn(r,e);a&&(a.dataset.veoIdx=String(s),i.push(a));}return i}let o=[];if(typeof n.imageUrl=="string"&&n.imageUrl&&A(n.imageUrl)){let i=e.createElement("img");i.className="veo-guide-image",i.src=n.imageUrl,i.alt=typeof n.title=="string"?n.title:"",o.push(i);}if(typeof n.title=="string"&&n.title){let i=e.createElement("h2");i.className="veo-guide-title",i.textContent=n.title,o.push(i);}if(typeof n.content=="string"&&n.content){let i=e.createElement("p");i.className="veo-guide-text",i.textContent=n.content,o.push(i);}return o}function Vn(n,e,t,o){if(typeof e.imageUrl=="string"&&e.imageUrl&&A(e.imageUrl)){let r=t.createElement("img");r.className="veo-guide-image",r.src=e.imageUrl,r.alt=typeof e.title=="string"?e.title:"",n.appendChild(r);}if(typeof e.title=="string"&&e.title){let r=t.createElement("h2");r.className="veo-guide-title",r.textContent=e.title,n.appendChild(r);}if(typeof e.content=="string"&&e.content){let r=t.createElement("p");r.className="veo-guide-text",r.textContent=e.content,n.appendChild(r);}let i=t.createElement("div");if(i.className="veo-guide-actions",typeof e.ctaText=="string"&&e.ctaText){let r=t.createElement("button");r.type="button",r.className="veo-guide-cta",r.textContent=e.ctaText,r.addEventListener("click",()=>{let s=e.ctaAction??"dismiss",a=Qn(e);o.onCtaClick(s,a);}),i.appendChild(r);}n.appendChild(i);}function en(n){if(!Array.isArray(n.blocks)||n.blocks.length===0)return null;let e=n.blocks.map((t,o)=>({block:t,idx:o})).filter(t=>{let o=t.block;return !o||typeof o!="object"?false:o.type==="image"?typeof o.url=="string"&&A(o.url):o.type==="title"||o.type==="text"||o.type==="button"});return e.length>0?e:null}function Yn(n,e,t,o){let i=0;for(;i<e.length;){let r=e[i];if(r?.block.type==="button"){let a=t.createElement("div");a.className="veo-guide-actions",a.dataset.veoIdx=String(r.idx);let l;for(;i<e.length&&e[i]?.block.type==="button";){let d=e[i].block;if(!l){let c=d.style?.align;(c==="left"||c==="center"||c==="right")&&(l=c);}a.appendChild(Xn(d,t,o)),i++;}l&&(a.style.justifyContent=nn[l]),n.appendChild(a);continue}let s=r?tn(r.block,t):null;s&&r&&(s.dataset.veoIdx=String(r.idx),n.appendChild(s)),i++;}}function tn(n,e){switch(n.type){case "title":{let t=e.createElement("h2");return t.className="veo-guide-title",t.textContent=typeof n.text=="string"?n.text:"",Ze(t,n.style,"text"),t}case "text":{let t=e.createElement("div");return t.className="veo-guide-text",typeof n.html=="string"&&n.html?t.appendChild(Jt(n.html,e)):t.textContent=typeof n.text=="string"?n.text:"",Ze(t,n.style,"text"),t}case "image":{if(typeof n.url!="string"||!A(n.url))return null;let t=e.createElement("img");return t.className="veo-guide-image",t.src=n.url,t.alt="",Ze(t,n.style,"image"),t}default:return null}}function Xn(n,e,t){let o=e.createElement("button");return o.type="button",o.className="veo-guide-cta",o.textContent=typeof n.text=="string"&&n.text?n.text:"OK",Ze(o,n.style,"button"),o.addEventListener("click",()=>{let i=n.action??"dismiss",r=i==="url"&&typeof n.url=="string"&&A(n.url)?n.url:i==="guide"&&typeof n.targetGuideId=="string"&&n.targetGuideId?n.targetGuideId:void 0,s={...typeof n.id=="string"&&n.id?{buttonId:n.id}:{},...typeof n.text=="string"&&n.text?{buttonText:n.text}:{}};t.onCtaClick(i,r,Object.keys(s).length?s:void 0);}),o}var nn={left:"flex-start",center:"center",right:"flex-end"};function _e(n,e,t){return Math.min(t,Math.max(e,n))}function Ze(n,e,t){if(!e||typeof e!="object")return;let o=e;if(t==="image"&&o.bleed===true){n.classList.add("veo-guide-image--bleed");return}let i=typeof o.align=="string"?o.align:null;i&&(i==="left"||i==="center"||i==="right")&&(t==="text"?n.style.textAlign=i:t==="image"&&(n.style.alignSelf=nn[i])),t!=="image"&&typeof o.color=="string"&&(n.style.color=o.color),t==="text"&&typeof o.fontSize=="number"&&Number.isFinite(o.fontSize)&&(n.style.fontSize=`${_e(o.fontSize,8,72)}px`),t==="image"&&typeof o.width=="number"&&Number.isFinite(o.width)&&(n.style.width=`${_e(o.width,10,100)}%`),t==="image"&&typeof o.radius=="number"&&Number.isFinite(o.radius)&&(n.style.borderRadius=`${_e(o.radius,0,48)}px`),typeof o.marginTop=="number"&&Number.isFinite(o.marginTop)&&(n.style.marginTop=`${_e(o.marginTop,0,64)}px`),typeof o.marginBottom=="number"&&Number.isFinite(o.marginBottom)&&(n.style.marginBottom=`${_e(o.marginBottom,0,64)}px`);}function Oe(n,e,t="veo-guide-close"){let o=n.createElement("button");return o.type="button",o.className=t,o.setAttribute("aria-label","Cerrar"),o.textContent="\xD7",o.addEventListener("click",e),o}function A(n){if(typeof n!="string"||n.length===0)return false;try{let e=typeof window<"u"?window.location.href:"http://localhost/",t=new URL(n,e);return vt.includes(t.protocol)}catch{return false}}function Qn(n){let e=n.style?.ctaUrl;if(typeof e=="string")return A(e)?e:void 0}var Jn={"--veo-bg":"#1f2937","--veo-text":"#f9fafb","--veo-text-secondary":"#d1d5db","--veo-shadow":"0 20px 60px rgba(0, 0, 0, 0.55)"},pt={left:"flex-start",center:"center",right:"flex-end"},Zn={left:"flex-start",center:"center",right:"flex-end"},eo={title:"text",text:"text",image:"self"},on={none:"none",soft:"0 4px 14px rgba(0, 0, 0, 0.10)",medium:"0 8px 30px rgba(0, 0, 0, 0.18)",strong:"0 24px 60px rgba(0, 0, 0, 0.32)"},rn={center:[.5,.5],top:[.5,0],bottom:[.5,1],left:[0,.5],right:[1,.5],"top-left":[0,0],"top-right":[1,0],"bottom-left":[0,1],"bottom-right":[1,1]},B=/^#[0-9a-f]{3,8}$|^(rgb|rgba|hsl|hsla)\([\d.,%/\sdeg]+\)$|^[a-z]{3,20}$/i;function R(n,e,t){return Math.min(t,Math.max(e,n))}function sn(n,e){if(!e||typeof e!="object")return;let t=e;if(typeof t.accentColor=="string"&&B.test(t.accentColor.trim())&&n.style.setProperty("--veo-primary",t.accentColor.trim()),typeof t.fontFamily=="string"&&t.fontFamily.length<=200&&!/[<>{}]/.test(t.fontFamily)&&n.style.setProperty("--veo-font",t.fontFamily.trim()),t.theme==="dark")for(let[r,s]of Object.entries(Jn))n.style.setProperty(r,s);typeof t.background=="string"&&B.test(t.background.trim())&&n.style.setProperty("--veo-bg",t.background.trim()),typeof t.textColor=="string"&&B.test(t.textColor.trim())&&n.style.setProperty("--veo-text",t.textColor.trim()),typeof t.textSecondaryColor=="string"&&B.test(t.textSecondaryColor.trim())&&n.style.setProperty("--veo-text-secondary",t.textSecondaryColor.trim()),typeof t.radius=="number"&&Number.isFinite(t.radius)&&n.style.setProperty("--veo-radius",`${R(t.radius,0,48)}px`),typeof t.width=="number"&&Number.isFinite(t.width)&&n.style.setProperty("--veo-width",`${R(t.width,220,720)}px`),typeof t.height=="number"&&Number.isFinite(t.height)&&n.style.setProperty("--veo-min-h",`${R(t.height,120,900)}px`),(t.align==="left"||t.align==="center"||t.align==="right")&&n.style.setProperty("--veo-actions-justify",pt[t.align]),typeof t.padding=="number"&&Number.isFinite(t.padding)&&n.style.setProperty("--veo-pad",`${R(t.padding,0,64)}px`),typeof t.margin=="number"&&Number.isFinite(t.margin)&&n.style.setProperty("--veo-margin",`${R(t.margin,0,64)}px`),typeof t.borderWidth=="number"&&Number.isFinite(t.borderWidth)&&n.style.setProperty("--veo-border-width",`${R(t.borderWidth,0,16)}px`),typeof t.borderColor=="string"&&B.test(t.borderColor.trim())&&n.style.setProperty("--veo-border-color",t.borderColor.trim()),typeof t.shadow=="string"&&on[t.shadow]&&n.style.setProperty("--veo-shadow",on[t.shadow]);let o,i;if(typeof t.posX=="number"&&typeof t.posY=="number"?(o=R(t.posX,0,1),i=R(t.posY,0,1)):typeof t.overlayPosition=="string"&&rn[t.overlayPosition]&&([o,i]=rn[t.overlayPosition]),o!==void 0&&i!==void 0&&(n.style.setProperty("--veo-pos-x",`${o*100}%`),n.style.setProperty("--veo-pos-y",`${i*100}%`)),t.elements&&typeof t.elements=="object"){let r=t.elements;ut(n,"title",r.title),ut(n,"text",r.text),ut(n,"image",r.image),to(n,r.cta);}}function to(n,e){if(!e||typeof e!="object")return;let t=e;typeof t.align=="string"&&pt[t.align]&&n.style.setProperty("--veo-actions-justify",pt[t.align]),typeof t.background=="string"&&B.test(t.background.trim())&&n.style.setProperty("--veo-cta-bg",t.background.trim()),typeof t.color=="string"&&B.test(t.color.trim())&&n.style.setProperty("--veo-cta-color",t.color.trim()),typeof t.fontSize=="number"&&Number.isFinite(t.fontSize)&&n.style.setProperty("--veo-cta-size",`${R(t.fontSize,10,24)}px`),typeof t.radius=="number"&&Number.isFinite(t.radius)&&n.style.setProperty("--veo-cta-radius",`${R(t.radius,0,48)}px`);}function ut(n,e,t){if(!t||typeof t!="object")return;let o=t;if(typeof o.align=="string"&&(o.align==="left"||o.align==="center"||o.align==="right")){let r=(eo[e]??"text")==="self"?Zn[o.align]:o.align;n.style.setProperty(`--veo-${e}-align`,r);}typeof o.color=="string"&&B.test(o.color.trim())&&n.style.setProperty(`--veo-${e}-color`,o.color.trim()),typeof o.fontSize=="number"&&Number.isFinite(o.fontSize)&&n.style.setProperty(`--veo-${e}-size`,`${R(o.fontSize,8,72)}px`),typeof o.width=="number"&&Number.isFinite(o.width)&&n.style.setProperty(`--veo-${e}-width`,`${R(o.width,10,100)}%`),typeof o.radius=="number"&&Number.isFinite(o.radius)&&n.style.setProperty(`--veo-${e}-radius`,`${R(o.radius,0,48)}px`),typeof o.marginTop=="number"&&Number.isFinite(o.marginTop)&&n.style.setProperty(`--veo-${e}-mt`,`${R(o.marginTop,0,64)}px`),typeof o.marginBottom=="number"&&Number.isFinite(o.marginBottom)&&n.style.setProperty(`--veo-${e}-mb`,`${R(o.marginBottom,0,64)}px`);}function F(n){let e=n?.inlinePosition;return e==="before"||e==="prepend"||e==="append"?e:"after"}function O(n,e,t){switch(t){case "before":n.before(e);break;case "after":n.after(e);break;case "prepend":n.prepend(e);break;case "append":n.append(e);break}}function H(n,e,t){let o=window.setInterval(()=>{if(n.isConnected)return;let i=document.querySelector(e);i&&O(i,n,t);},1e3);return ()=>window.clearInterval(o)}function E(n,e=5e3){return new Promise(t=>{let o=()=>{try{return document.querySelector(n)}catch{return null}},i=o();if(i){t(i);return}let r=false,s=d=>{r||(r=true,a.disconnect(),clearTimeout(l),t(d));},a=new MutationObserver(()=>{let d=o();d&&s(d);});a.observe(document.body,{childList:true,subtree:true});let l=setTimeout(()=>s(null),e);})}var an=`
|
|
1
|
+
var veoGuides=(function(exports){'use strict';function yt(){return typeof window<"u"}function $e(){return typeof document<"u"}var wt=["http:","https:"],bt="data-veo-guide",xt="veo:freq:";var Ct="veo:walkthrough_state:";var St={shown:1,dismissed:2,completed:2};function Et(o){return o.slice(-16)||"default"}var He=class{constructor(e){this.storageKey=`${xt}${e}`,this.cache=this.load(),this.prune();}shouldFilter(e,t){if(t==="every_visit"||t==="always")return false;let n=this.cache.get(e);return n?t==="once"?true:t==="until_dismissed"?n.status==="dismissed"||n.status==="completed":t==="until_answered"?n.status==="completed":false:false}record(e,t){let n=this.cache.get(e);n&&St[t]<St[n.status]||(this.cache.set(e,{guideId:e,status:t,lastInteractionAt:Date.now()}),this.persist());}clear(){this.cache.clear(),this.persist();}snapshot(){return Array.from(this.cache.values())}prune(){let e=Date.now(),t=false;for(let[n,i]of this.cache)e-i.lastInteractionAt>7776e6&&(this.cache.delete(n),t=true);if(this.cache.size>500){let n=Array.from(this.cache.entries()).sort((r,s)=>r[1].lastInteractionAt-s[1].lastInteractionAt),i=this.cache.size-500;for(let r=0;r<i;r++){let s=n[r];s&&this.cache.delete(s[0]);}t=true;}t&&this.persist();}load(){if(typeof localStorage>"u")return new Map;try{let e=localStorage.getItem(this.storageKey);if(!e)return new Map;let t=JSON.parse(e);if(!Array.isArray(t))return new Map;let n=[];for(let i of t)if(i&&typeof i=="object"&&typeof i.guideId=="string"&&typeof i.lastInteractionAt=="number"&&["shown","dismissed","completed"].includes(i.status)){let r=i;n.push([r.guideId,r]);}return new Map(n)}catch{return new Map}}persist(){if(!(typeof localStorage>"u"))try{let e=JSON.stringify(Array.from(this.cache.values()));localStorage.setItem(this.storageKey,e);}catch{}}};var Fe=class{constructor(e,t,n=false){this.apiUrl=e;this.apiKey=t;this.debug=n;}async resolve(e,t){let n=new URLSearchParams({endUserId:e,pageUrl:t}),i;try{i=await fetch(`${this.apiUrl}/v1/guides/resolve?${n.toString()}`,{method:"GET",headers:{"X-Api-Key":this.apiKey},credentials:"omit"});}catch(r){return this.debug&&console.error("[veo] guides resolve fetch failed:",r),[]}if(!i.ok)return this.debug&&console.warn("[veo] guides resolve HTTP",i.status),[];try{let r=await i.json();return Array.isArray(r.guides)?r.guides:[]}catch(r){return this.debug&&console.error("[veo] guides resolve parse failed:",r),[]}}async fetchById(e){let t;try{t=await fetch(`${this.apiUrl}/v1/guides/${encodeURIComponent(e)}`,{method:"GET",headers:{"X-Api-Key":this.apiKey},credentials:"omit"});}catch(n){return this.debug&&console.error("[veo] guides fetchById network failed:",n),null}if(!t.ok)return this.debug&&console.warn("[veo] guides fetchById HTTP",t.status),null;try{let n=await t.json();return typeof n.guideId!="string"||typeof n.guideName!="string"||typeof n.guideType!="string"||!Array.isArray(n.guideSteps)||!n.activationRules||typeof n.displayFrequency!="string"||typeof n.displayPriority!="number"?(this.debug&&console.warn("[veo] guides fetchById: unexpected shape"),null):{guideId:n.guideId,guideName:n.guideName,guideType:n.guideType,guideSteps:n.guideSteps,activationRules:n.activationRules,displayFrequency:n.displayFrequency,displayPriority:n.displayPriority}}catch(n){return this.debug&&console.error("[veo] guides fetchById parse failed:",n),null}}};function Rt(o){let e={endUserId:o.endUserId,interactionType:o.action};return o.sessionId&&(e.sessionId=o.sessionId),typeof o.stepIndex=="number"&&(e.stepPosition=o.stepIndex),o.pageUrl&&(e.pageUrl=o.pageUrl),o.pagePath&&(e.pagePath=o.pagePath),o.metadata&&(e.metadata=o.metadata),e}var We=class{constructor(e,t){this.apiUrl=e;this.apiKey=t;}async send(e){let t=this.buildUrl(e.guideId),n=await fetch(t,{method:"POST",headers:{"X-Api-Key":this.apiKey,"Content-Type":"application/json"},body:JSON.stringify(Rt(e.payload)),credentials:"omit"});if(!n.ok)throw new Error(`guide interaction send failed: HTTP ${n.status}`)}sendBeacon(e){if(typeof navigator>"u"||typeof navigator.sendBeacon!="function")return false;let t=`${this.buildUrl(e.guideId)}?key=${encodeURIComponent(this.apiKey)}`,n=new Blob([JSON.stringify(Rt(e.payload))],{type:"application/json"});try{return navigator.sendBeacon(t,n)}catch{return false}}buildUrl(e){return `${this.apiUrl}/v1/guides/${encodeURIComponent(e)}/interactions`}};var ze=class{constructor(e){this.config=e;this.buffer=[];this.timer=null;this.flushing=false;this.unloadCleanup=null;this.startTimer(),this.installUnloadHandler();}get size(){return this.buffer.length}enqueue(e){this.buffer.push({guideId:e.guideId,payload:e.payload,attempts:0,enqueuedAt:Date.now()}),this.buffer.length>=this.config.batchSize&&this.flush();}async flush(){if(this.flushing||this.buffer.length===0)return;let e=Date.now(),t=this.buffer.filter(r=>(r.nextRetryAt??0)<=e);if(t.length===0)return;this.flushing=true;let n=new Set(t);this.buffer=this.buffer.filter(r=>!n.has(r));let i=await Promise.allSettled(t.map(r=>this.config.client.send({guideId:r.guideId,payload:r.payload})));for(let r=0;r<i.length;r++){let s=i[r],a=t[r];!s||!a||s.status!=="fulfilled"&&(a.attempts+=1,a.attempts<this.config.maxRetries?(a.nextRetryAt=Date.now()+this.retryDelayMs(a.attempts),this.buffer.push(a)):this.safeOnError(s.reason,a));}this.flushing=false;}retryDelayMs(e){let t=Math.min(3e3*2**(e-1),3e4);return t/2+Math.random()*(t/2)}flushBeacon(){if(this.buffer.length===0)return;let e=this.buffer.splice(0,this.buffer.length);for(let t of e)this.config.client.sendBeacon({guideId:t.guideId,payload:t.payload});}destroy(){this.timer&&clearInterval(this.timer),this.timer=null,this.unloadCleanup?.(),this.unloadCleanup=null;}startTimer(){typeof window>"u"||(this.timer=setInterval(()=>{this.flush();},this.config.flushIntervalMs));}installUnloadHandler(){if(typeof window>"u")return;let e=()=>this.flushBeacon(),t=()=>{document.visibilityState==="hidden"&&this.flushBeacon();};window.addEventListener("pagehide",e),window.addEventListener("visibilitychange",t),this.unloadCleanup=()=>{window.removeEventListener("pagehide",e),window.removeEventListener("visibilitychange",t);};}safeOnError(e,t){if(!this.config.onError)return;let n=e instanceof Error?e:new Error(String(e));try{this.config.onError(n,t);}catch{}}};var ie=Math.min,Q=Math.max,Ge=Math.round;var M=o=>({x:o,y:o}),xn={left:"right",right:"left",bottom:"top",top:"bottom"};function Ke(o,e,t){return Q(o,ie(e,t))}function pe(o,e){return typeof o=="function"?o(e):o}function J(o){return o.split("-")[0]}function fe(o){return o.split("-")[1]}function dt(o){return o==="x"?"y":"x"}function qe(o){return o==="y"?"height":"width"}function V(o){let e=o[0];return e==="t"||e==="b"?"y":"x"}function je(o){return dt(V(o))}function Pt(o,e,t){t===void 0&&(t=false);let n=fe(o),i=je(o),r=qe(i),s=i==="x"?n===(t?"end":"start")?"right":"left":n==="start"?"bottom":"top";return e.reference[r]>e.floating[r]&&(s=Le(s)),[s,Le(s)]}function At(o){let e=Le(o);return [Ue(o),e,Ue(e)]}function Ue(o){return o.includes("start")?o.replace("start","end"):o.replace("end","start")}var It=["left","right"],Tt=["right","left"],Cn=["top","bottom"],kn=["bottom","top"];function Sn(o,e,t){switch(o){case "top":case "bottom":return t?e?Tt:It:e?It:Tt;case "left":case "right":return e?Cn:kn;default:return []}}function Lt(o,e,t,n){let i=fe(o),r=Sn(J(o),t==="start",n);return i&&(r=r.map(s=>s+"-"+i),e&&(r=r.concat(r.map(Ue)))),r}function Le(o){let e=J(o);return xn[e]+o.slice(e.length)}function En(o){return {top:0,right:0,bottom:0,left:0,...o}}function ct(o){return typeof o!="number"?En(o):{top:o,right:o,bottom:o,left:o}}function re(o){let{x:e,y:t,width:n,height:i}=o;return {width:n,height:i,top:t,left:e,right:e+n,bottom:t+i,x:e,y:t}}function Gt(o,e,t){let{reference:n,floating:i}=o,r=V(e),s=je(e),a=qe(s),l=J(e),d=r==="y",u=n.x+n.width/2-i.width/2,p=n.y+n.height/2-i.height/2,f=n[a]/2-i[a]/2,c;switch(l){case "top":c={x:u,y:n.y-i.height};break;case "bottom":c={x:u,y:n.y+n.height};break;case "right":c={x:n.x+n.width,y:p};break;case "left":c={x:n.x-i.width,y:p};break;default:c={x:n.x,y:n.y};}switch(fe(e)){case "start":c[s]-=f*(t&&d?-1:1);break;case "end":c[s]+=f*(t&&d?-1:1);break}return c}async function Nt(o,e){var t;e===void 0&&(e={});let{x:n,y:i,platform:r,rects:s,elements:a,strategy:l}=o,{boundary:d="clippingAncestors",rootBoundary:u="viewport",elementContext:p="floating",altBoundary:f=false,padding:c=0}=pe(e,o),m=ct(c),g=a[f?p==="floating"?"reference":"floating":p],v=re(await r.getClippingRect({element:(t=await(r.isElement==null?void 0:r.isElement(g)))==null||t?g:g.contextElement||await(r.getDocumentElement==null?void 0:r.getDocumentElement(a.floating)),boundary:d,rootBoundary:u,strategy:l})),w=p==="floating"?{x:n,y:i,width:s.floating.width,height:s.floating.height}:s.reference,x=await(r.getOffsetParent==null?void 0:r.getOffsetParent(a.floating)),y=await(r.isElement==null?void 0:r.isElement(x))?await(r.getScale==null?void 0:r.getScale(x))||{x:1,y:1}:{x:1,y:1},C=re(r.convertOffsetParentRelativeRectToViewportRelativeRect?await r.convertOffsetParentRelativeRectToViewportRelativeRect({elements:a,rect:w,offsetParent:x,strategy:l}):w);return {top:(v.top-C.top+m.top)/y.y,bottom:(C.bottom-v.bottom+m.bottom)/y.y,left:(v.left-C.left+m.left)/y.x,right:(C.right-v.right+m.right)/y.x}}var Rn=50,Ot=async(o,e,t)=>{let{placement:n="bottom",strategy:i="absolute",middleware:r=[],platform:s}=t,a=s.detectOverflow?s:{...s,detectOverflow:Nt},l=await(s.isRTL==null?void 0:s.isRTL(e)),d=await s.getElementRects({reference:o,floating:e,strategy:i}),{x:u,y:p}=Gt(d,n,l),f=n,c=0,m={};for(let h=0;h<r.length;h++){let g=r[h];if(!g)continue;let{name:v,fn:w}=g,{x,y,data:C,reset:k}=await w({x:u,y:p,initialPlacement:n,placement:f,strategy:i,middlewareData:m,rects:d,platform:a,elements:{reference:o,floating:e}});u=x??u,p=y??p,m[v]={...m[v],...C},k&&c<Rn&&(c++,typeof k=="object"&&(k.placement&&(f=k.placement),k.rects&&(d=k.rects===true?await s.getElementRects({reference:o,floating:e,strategy:i}):k.rects),{x:u,y:p}=Gt(d,f,l)),h=-1);}return {x:u,y:p,placement:f,strategy:i,middlewareData:m}},_t=o=>({name:"arrow",options:o,async fn(e){let{x:t,y:n,placement:i,rects:r,platform:s,elements:a,middlewareData:l}=e,{element:d,padding:u=0}=pe(o,e)||{};if(d==null)return {};let p=ct(u),f={x:t,y:n},c=je(i),m=qe(c),h=await s.getDimensions(d),g=c==="y",v=g?"top":"left",w=g?"bottom":"right",x=g?"clientHeight":"clientWidth",y=r.reference[m]+r.reference[c]-f[c]-r.floating[m],C=f[c]-r.reference[c],k=await(s.getOffsetParent==null?void 0:s.getOffsetParent(d)),K=k?k[x]:0;(!K||!await(s.isElement==null?void 0:s.isElement(k)))&&(K=a.floating[x]||r.floating[m]);let Te=y/2-C/2,te=K/2-h[m]/2-1,q=ie(p[v],te),Pe=ie(p[w],te),ne=q,Ae=K-h[m]-Pe,E=K/2-h[m]/2+Te,oe=Ke(ne,E,Ae),j=!l.arrow&&fe(i)!=null&&E!==oe&&r.reference[m]/2-(E<ne?q:Pe)-h[m]/2<0,O=j?E<ne?E-ne:E-Ae:0;return {[c]:f[c]+O,data:{[c]:oe,centerOffset:E-oe-O,...j&&{alignmentOffset:O}},reset:j}}});var Mt=function(o){return o===void 0&&(o={}),{name:"flip",options:o,async fn(e){var t,n;let{placement:i,middlewareData:r,rects:s,initialPlacement:a,platform:l,elements:d}=e,{mainAxis:u=true,crossAxis:p=true,fallbackPlacements:f,fallbackStrategy:c="bestFit",fallbackAxisSideDirection:m="none",flipAlignment:h=true,...g}=pe(o,e);if((t=r.arrow)!=null&&t.alignmentOffset)return {};let v=J(i),w=V(a),x=J(a)===a,y=await(l.isRTL==null?void 0:l.isRTL(d.floating)),C=f||(x||!h?[Le(a)]:At(a)),k=m!=="none";!f&&k&&C.push(...Lt(a,h,m,y));let K=[a,...C],Te=await l.detectOverflow(e,g),te=[],q=((n=r.flip)==null?void 0:n.overflows)||[];if(u&&te.push(Te[v]),p){let E=Pt(i,s,y);te.push(Te[E[0]],Te[E[1]]);}if(q=[...q,{placement:i,overflows:te}],!te.every(E=>E<=0)){var Pe,ne;let E=(((Pe=r.flip)==null?void 0:Pe.index)||0)+1,oe=K[E];if(oe&&(!(p==="alignment"?w!==V(oe):false)||q.every(_=>V(_.placement)===w?_.overflows[0]>0:true)))return {data:{index:E,overflows:q},reset:{placement:oe}};let j=(ne=q.filter(O=>O.overflows[0]<=0).sort((O,_)=>O.overflows[1]-_.overflows[1])[0])==null?void 0:ne.placement;if(!j)switch(c){case "bestFit":{var Ae;let O=(Ae=q.filter(_=>{if(k){let X=V(_.placement);return X===w||X==="y"}return true}).map(_=>[_.placement,_.overflows.filter(X=>X>0).reduce((X,wn)=>X+wn,0)]).sort((_,X)=>_[1]-X[1])[0])==null?void 0:Ae[0];O&&(j=O);break}case "initialPlacement":j=a;break}if(i!==j)return {reset:{placement:j}}}return {}}}};var In=new Set(["left","top"]);async function Tn(o,e){let{placement:t,platform:n,elements:i}=o,r=await(n.isRTL==null?void 0:n.isRTL(i.floating)),s=J(t),a=fe(t),l=V(t)==="y",d=In.has(s)?-1:1,u=r&&l?-1:1,p=pe(e,o),{mainAxis:f,crossAxis:c,alignmentAxis:m}=typeof p=="number"?{mainAxis:p,crossAxis:0,alignmentAxis:null}:{mainAxis:p.mainAxis||0,crossAxis:p.crossAxis||0,alignmentAxis:p.alignmentAxis};return a&&typeof m=="number"&&(c=a==="end"?m*-1:m),l?{x:c*u,y:f*d}:{x:f*d,y:c*u}}var Dt=function(o){return o===void 0&&(o=0),{name:"offset",options:o,async fn(e){var t,n;let{x:i,y:r,placement:s,middlewareData:a}=e,l=await Tn(e,o);return s===((t=a.offset)==null?void 0:t.placement)&&(n=a.arrow)!=null&&n.alignmentOffset?{}:{x:i+l.x,y:r+l.y,data:{...l,placement:s}}}}},Bt=function(o){return o===void 0&&(o={}),{name:"shift",options:o,async fn(e){let{x:t,y:n,placement:i,platform:r}=e,{mainAxis:s=true,crossAxis:a=false,limiter:l={fn:v=>{let{x:w,y:x}=v;return {x:w,y:x}}},...d}=pe(o,e),u={x:t,y:n},p=await r.detectOverflow(e,d),f=V(J(i)),c=dt(f),m=u[c],h=u[f];if(s){let v=c==="y"?"top":"left",w=c==="y"?"bottom":"right",x=m+p[v],y=m-p[w];m=Ke(x,m,y);}if(a){let v=f==="y"?"top":"left",w=f==="y"?"bottom":"right",x=h+p[v],y=h-p[w];h=Ke(x,h,y);}let g=l.fn({...e,[c]:m,[f]:h});return {...g,data:{x:g.x-t,y:g.y-n,enabled:{[c]:s,[f]:a}}}}}};function Ye(){return typeof window<"u"}function ae(o){return Ht(o)?(o.nodeName||"").toLowerCase():"#document"}function T(o){var e;return (o==null||(e=o.ownerDocument)==null?void 0:e.defaultView)||window}function D(o){var e;return (e=(Ht(o)?o.ownerDocument:o.document)||window.document)==null?void 0:e.documentElement}function Ht(o){return Ye()?o instanceof Node||o instanceof T(o).Node:false}function L(o){return Ye()?o instanceof Element||o instanceof T(o).Element:false}function B(o){return Ye()?o instanceof HTMLElement||o instanceof T(o).HTMLElement:false}function $t(o){return !Ye()||typeof ShadowRoot>"u"?false:o instanceof ShadowRoot||o instanceof T(o).ShadowRoot}function me(o){let{overflow:e,overflowX:t,overflowY:n,display:i}=G(o);return /auto|scroll|overlay|hidden|clip/.test(e+n+t)&&i!=="inline"&&i!=="contents"}function Ft(o){return /^(table|td|th)$/.test(ae(o))}function Ne(o){try{if(o.matches(":popover-open"))return !0}catch{}try{return o.matches(":modal")}catch{return false}}var Pn=/transform|translate|scale|rotate|perspective|filter/,An=/paint|layout|strict|content/,se=o=>!!o&&o!=="none",ut;function Xe(o){let e=L(o)?G(o):o;return se(e.transform)||se(e.translate)||se(e.scale)||se(e.rotate)||se(e.perspective)||!Qe()&&(se(e.backdropFilter)||se(e.filter))||Pn.test(e.willChange||"")||An.test(e.contain||"")}function Wt(o){let e=Y(o);for(;B(e)&&!le(e);){if(Xe(e))return e;if(Ne(e))return null;e=Y(e);}return null}function Qe(){return ut==null&&(ut=typeof CSS<"u"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),ut}function le(o){return /^(html|body|#document)$/.test(ae(o))}function G(o){return T(o).getComputedStyle(o)}function Oe(o){return L(o)?{scrollLeft:o.scrollLeft,scrollTop:o.scrollTop}:{scrollLeft:o.scrollX,scrollTop:o.scrollY}}function Y(o){if(ae(o)==="html")return o;let e=o.assignedSlot||o.parentNode||$t(o)&&o.host||D(o);return $t(e)?e.host:e}function zt(o){let e=Y(o);return le(e)?o.ownerDocument?o.ownerDocument.body:o.body:B(e)&&me(e)?e:zt(e)}function Ve(o,e,t){var n;e===void 0&&(e=[]);let i=zt(o),r=i===((n=o.ownerDocument)==null?void 0:n.body),s=T(i);if(r){Je(s);return e.concat(s,s.visualViewport||[],me(i)?i:[],[])}else return e.concat(i,Ve(i,[]))}function Je(o){return o.parent&&Object.getPrototypeOf(o.parent)?o.frameElement:null}function jt(o){let e=G(o),t=parseFloat(e.width)||0,n=parseFloat(e.height)||0,i=B(o),r=i?o.offsetWidth:t,s=i?o.offsetHeight:n,a=Ge(t)!==r||Ge(n)!==s;return a&&(t=r,n=s),{width:t,height:n,$:a}}function Vt(o){return L(o)?o:o.contextElement}function he(o){let e=Vt(o);if(!B(e))return M(1);let t=e.getBoundingClientRect(),{width:n,height:i,$:r}=jt(e),s=(r?Ge(t.width):t.width)/n,a=(r?Ge(t.height):t.height)/i;return (!s||!Number.isFinite(s))&&(s=1),(!a||!Number.isFinite(a))&&(a=1),{x:s,y:a}}var Ln=M(0);function Yt(o){let e=T(o);return !Qe()||!e.visualViewport?Ln:{x:e.visualViewport.offsetLeft,y:e.visualViewport.offsetTop}}function Gn(o,e,t){return e===void 0&&(e=false),!t||e&&t!==T(o)?false:e}function _e(o,e,t,n){e===void 0&&(e=false),t===void 0&&(t=false);let i=o.getBoundingClientRect(),r=Vt(o),s=M(1);e&&(n?L(n)&&(s=he(n)):s=he(o));let a=Gn(r,t,n)?Yt(r):M(0),l=(i.left+a.x)/s.x,d=(i.top+a.y)/s.y,u=i.width/s.x,p=i.height/s.y;if(r){let f=T(r),c=n&&L(n)?T(n):n,m=f,h=Je(m);for(;h&&n&&c!==m;){let g=he(h),v=h.getBoundingClientRect(),w=G(h),x=v.left+(h.clientLeft+parseFloat(w.paddingLeft))*g.x,y=v.top+(h.clientTop+parseFloat(w.paddingTop))*g.y;l*=g.x,d*=g.y,u*=g.x,p*=g.y,l+=x,d+=y,m=T(h),h=Je(m);}}return re({width:u,height:p,x:l,y:d})}function Ze(o,e){let t=Oe(o).scrollLeft;return e?e.left+t:_e(D(o)).left+t}function Xt(o,e){let t=o.getBoundingClientRect(),n=t.left+e.scrollLeft-Ze(o,t),i=t.top+e.scrollTop;return {x:n,y:i}}function Nn(o){let{elements:e,rect:t,offsetParent:n,strategy:i}=o,r=i==="fixed",s=D(n),a=e?Ne(e.floating):false;if(n===s||a&&r)return t;let l={scrollLeft:0,scrollTop:0},d=M(1),u=M(0),p=B(n);if((p||!p&&!r)&&((ae(n)!=="body"||me(s))&&(l=Oe(n)),p)){let c=_e(n);d=he(n),u.x=c.x+n.clientLeft,u.y=c.y+n.clientTop;}let f=s&&!p&&!r?Xt(s,l):M(0);return {width:t.width*d.x,height:t.height*d.y,x:t.x*d.x-l.scrollLeft*d.x+u.x+f.x,y:t.y*d.y-l.scrollTop*d.y+u.y+f.y}}function On(o){return Array.from(o.getClientRects())}function _n(o){let e=D(o),t=Oe(o),n=o.ownerDocument.body,i=Q(e.scrollWidth,e.clientWidth,n.scrollWidth,n.clientWidth),r=Q(e.scrollHeight,e.clientHeight,n.scrollHeight,n.clientHeight),s=-t.scrollLeft+Ze(o),a=-t.scrollTop;return G(n).direction==="rtl"&&(s+=Q(e.clientWidth,n.clientWidth)-i),{width:i,height:r,x:s,y:a}}var Ut=25;function Mn(o,e){let t=T(o),n=D(o),i=t.visualViewport,r=n.clientWidth,s=n.clientHeight,a=0,l=0;if(i){r=i.width,s=i.height;let u=Qe();(!u||u&&e==="fixed")&&(a=i.offsetLeft,l=i.offsetTop);}let d=Ze(n);if(d<=0){let u=n.ownerDocument,p=u.body,f=getComputedStyle(p),c=u.compatMode==="CSS1Compat"&&parseFloat(f.marginLeft)+parseFloat(f.marginRight)||0,m=Math.abs(n.clientWidth-p.clientWidth-c);m<=Ut&&(r-=m);}else d<=Ut&&(r+=d);return {width:r,height:s,x:a,y:l}}function Dn(o,e){let t=_e(o,true,e==="fixed"),n=t.top+o.clientTop,i=t.left+o.clientLeft,r=B(o)?he(o):M(1),s=o.clientWidth*r.x,a=o.clientHeight*r.y,l=i*r.x,d=n*r.y;return {width:s,height:a,x:l,y:d}}function Kt(o,e,t){let n;if(e==="viewport")n=Mn(o,t);else if(e==="document")n=_n(D(o));else if(L(e))n=Dn(e,t);else {let i=Yt(o);n={x:e.x-i.x,y:e.y-i.y,width:e.width,height:e.height};}return re(n)}function Qt(o,e){let t=Y(o);return t===e||!L(t)||le(t)?false:G(t).position==="fixed"||Qt(t,e)}function Bn(o,e){let t=e.get(o);if(t)return t;let n=Ve(o,[]).filter(a=>L(a)&&ae(a)!=="body"),i=null,r=G(o).position==="fixed",s=r?Y(o):o;for(;L(s)&&!le(s);){let a=G(s),l=Xe(s);!l&&a.position==="fixed"&&(i=null),(r?!l&&!i:!l&&a.position==="static"&&!!i&&(i.position==="absolute"||i.position==="fixed")||me(s)&&!l&&Qt(o,s))?n=n.filter(u=>u!==s):i=a,s=Y(s);}return e.set(o,n),n}function $n(o){let{element:e,boundary:t,rootBoundary:n,strategy:i}=o,s=[...t==="clippingAncestors"?Ne(e)?[]:Bn(e,this._c):[].concat(t),n],a=Kt(e,s[0],i),l=a.top,d=a.right,u=a.bottom,p=a.left;for(let f=1;f<s.length;f++){let c=Kt(e,s[f],i);l=Q(c.top,l),d=ie(c.right,d),u=ie(c.bottom,u),p=Q(c.left,p);}return {width:d-p,height:u-l,x:p,y:l}}function Hn(o){let{width:e,height:t}=jt(o);return {width:e,height:t}}function Fn(o,e,t){let n=B(e),i=D(e),r=t==="fixed",s=_e(o,true,r,e),a={scrollLeft:0,scrollTop:0},l=M(0);function d(){l.x=Ze(i);}if(n||!n&&!r)if((ae(e)!=="body"||me(i))&&(a=Oe(e)),n){let c=_e(e,true,r,e);l.x=c.x+e.clientLeft,l.y=c.y+e.clientTop;}else i&&d();r&&!n&&i&&d();let u=i&&!n&&!r?Xt(i,a):M(0),p=s.left+a.scrollLeft-l.x-u.x,f=s.top+a.scrollTop-l.y-u.y;return {x:p,y:f,width:s.width,height:s.height}}function pt(o){return G(o).position==="static"}function qt(o,e){if(!B(o)||G(o).position==="fixed")return null;if(e)return e(o);let t=o.offsetParent;return D(o)===t&&(t=t.ownerDocument.body),t}function Jt(o,e){let t=T(o);if(Ne(o))return t;if(!B(o)){let i=Y(o);for(;i&&!le(i);){if(L(i)&&!pt(i))return i;i=Y(i);}return t}let n=qt(o,e);for(;n&&Ft(n)&&pt(n);)n=qt(n,e);return n&&le(n)&&pt(n)&&!Xe(n)?t:n||Wt(o)||t}var Wn=async function(o){let e=this.getOffsetParent||Jt,t=this.getDimensions,n=await t(o.floating);return {reference:Fn(o.reference,await e(o.floating),o.strategy),floating:{x:0,y:0,width:n.width,height:n.height}}};function zn(o){return G(o).direction==="rtl"}var Un={convertOffsetParentRelativeRectToViewportRelativeRect:Nn,getDocumentElement:D,getClippingRect:$n,getOffsetParent:Jt,getElementRects:Wn,getClientRects:On,getDimensions:Hn,getScale:he,isElement:L,isRTL:zn};var $=Dt;var H=Bt,F=Mt;var ge=_t;var W=(o,e,t)=>{let n=new Map,i={platform:Un,...t},r={...i.platform,_c:n};return Ot(o,e,{...i,platform:r})};var Kn={P:"p",BR:"br",STRONG:"strong",B:"strong",EM:"em",I:"em",U:"u",S:"s",UL:"ul",OL:"ol",LI:"li",A:"a"},qn=new Set(["SCRIPT","STYLE","TEMPLATE","IFRAME","OBJECT","EMBED","NOSCRIPT","TITLE","TEXTAREA","SELECT","SVG","MATH"]),Zt=16*1024,jn=20,Vn=1e3;function en(o,e){let t=e.createDocumentFragment();if(typeof o!="string"||o.length===0)return t;let n;try{n=new DOMParser().parseFromString(o.length>Zt?o.slice(0,Zt):o,"text/html");}catch{return t.appendChild(e.createTextNode(o)),t}let i={nodes:0,exceeded:false};for(let r of Array.from(n.body.childNodes)){let s=Me(r,e,0,i);s&&t.appendChild(s);}if(i.exceeded){let r=e.createDocumentFragment();return r.appendChild(e.createTextNode(n.body.textContent??"")),r}return t}function Me(o,e,t,n){if(n.exceeded)return null;if(++n.nodes>Vn||t>jn)return n.exceeded=true,null;if(o.nodeType===Node.TEXT_NODE)return e.createTextNode(o.textContent??"");if(o.nodeType!==Node.ELEMENT_NODE)return null;let i=o;if(qn.has(i.tagName))return null;let r=Kn[i.tagName];if(!r){let a=e.createDocumentFragment();for(let l of Array.from(i.childNodes)){let d=Me(l,e,t+1,n);d&&a.appendChild(d);}return a}if(r==="a"){let a=i.getAttribute("href")??"";if(!R(a)){let d=e.createDocumentFragment();for(let u of Array.from(i.childNodes)){let p=Me(u,e,t+1,n);p&&d.appendChild(p);}return d}let l=e.createElement("a");l.setAttribute("href",a),l.setAttribute("target","_blank"),l.setAttribute("rel","noopener noreferrer nofollow");for(let d of Array.from(i.childNodes)){let u=Me(d,e,t+1,n);u&&l.appendChild(u);}return l}let s=e.createElement(r);for(let a of Array.from(i.childNodes)){let l=Me(a,e,t+1,n);l&&s.appendChild(l);}return s}function P(o,e,t){let n=e.createElement("div");n.className="veo-guide-content";let i=tn(o);return i?Xn(n,i,e,t):Yn(n,o,e,t),n.appendChild(de(e,()=>t.onDismiss())),n}function tt(o,e){let t=tn(o);if(t){let i=[];for(let{block:r,idx:s}of t){if(r.type==="button")continue;let a=nn(r,e);a&&(a.dataset.veoIdx=String(s),i.push(a));}return i}let n=[];if(typeof o.imageUrl=="string"&&o.imageUrl&&R(o.imageUrl)){let i=e.createElement("img");i.className="veo-guide-image",i.src=o.imageUrl,i.alt=typeof o.title=="string"?o.title:"",n.push(i);}if(typeof o.title=="string"&&o.title){let i=e.createElement("h2");i.className="veo-guide-title",i.textContent=o.title,n.push(i);}if(typeof o.content=="string"&&o.content){let i=e.createElement("p");i.className="veo-guide-text",i.textContent=o.content,n.push(i);}return n}function Yn(o,e,t,n){if(typeof e.imageUrl=="string"&&e.imageUrl&&R(e.imageUrl)){let r=t.createElement("img");r.className="veo-guide-image",r.src=e.imageUrl,r.alt=typeof e.title=="string"?e.title:"",o.appendChild(r);}if(typeof e.title=="string"&&e.title){let r=t.createElement("h2");r.className="veo-guide-title",r.textContent=e.title,o.appendChild(r);}if(typeof e.content=="string"&&e.content){let r=t.createElement("p");r.className="veo-guide-text",r.textContent=e.content,o.appendChild(r);}let i=t.createElement("div");if(i.className="veo-guide-actions",typeof e.ctaText=="string"&&e.ctaText){let r=t.createElement("button");r.type="button",r.className="veo-guide-cta",r.textContent=e.ctaText,r.addEventListener("click",()=>{let s=e.ctaAction??"dismiss",a=Jn(e);n.onCtaClick(s,a);}),i.appendChild(r);}o.appendChild(i);}function tn(o){if(!Array.isArray(o.blocks)||o.blocks.length===0)return null;let e=o.blocks.map((t,n)=>({block:t,idx:n})).filter(t=>{let n=t.block;return !n||typeof n!="object"?false:n.type==="image"?typeof n.url=="string"&&R(n.url):n.type==="title"||n.type==="text"||n.type==="button"});return e.length>0?e:null}function Xn(o,e,t,n){let i=0;for(;i<e.length;){let r=e[i];if(r?.block.type==="button"){let a=t.createElement("div");a.className="veo-guide-actions",a.dataset.veoIdx=String(r.idx);let l;for(;i<e.length&&e[i]?.block.type==="button";){let d=e[i].block;if(!l){let u=d.style?.align;(u==="left"||u==="center"||u==="right")&&(l=u);}a.appendChild(Qn(d,t,n)),i++;}l&&(a.style.justifyContent=on[l]),o.appendChild(a);continue}let s=r?nn(r.block,t):null;s&&r&&(s.dataset.veoIdx=String(r.idx),o.appendChild(s)),i++;}}function nn(o,e){switch(o.type){case "title":{let t=e.createElement("h2");return t.className="veo-guide-title",t.textContent=typeof o.text=="string"?o.text:"",et(t,o.style,"text"),t}case "text":{let t=e.createElement("div");return t.className="veo-guide-text",typeof o.html=="string"&&o.html?t.appendChild(en(o.html,e)):t.textContent=typeof o.text=="string"?o.text:"",et(t,o.style,"text"),t}case "image":{if(typeof o.url!="string"||!R(o.url))return null;let t=e.createElement("img");return t.className="veo-guide-image",t.src=o.url,t.alt="",et(t,o.style,"image"),t}default:return null}}function Qn(o,e,t){let n=e.createElement("button");return n.type="button",n.className="veo-guide-cta",n.textContent=typeof o.text=="string"&&o.text?o.text:"OK",et(n,o.style,"button"),n.addEventListener("click",()=>{let i=o.action??"dismiss",r=i==="next"||i==="url"||i==="guide"?i:"dismiss",s=r==="url"&&typeof o.url=="string"&&R(o.url)?o.url:r==="guide"&&typeof o.targetGuideId=="string"&&o.targetGuideId?o.targetGuideId:void 0,a={...typeof o.id=="string"&&o.id?{buttonId:o.id}:{},...typeof o.text=="string"&&o.text?{buttonText:o.text}:{}};t.onCtaClick(r,s,Object.keys(a).length?a:void 0);}),n}var on={left:"flex-start",center:"center",right:"flex-end"};function De(o,e,t){return Math.min(t,Math.max(e,o))}function et(o,e,t){if(!e||typeof e!="object")return;let n=e;if(t==="image"&&n.bleed===true){o.classList.add("veo-guide-image--bleed");return}let i=typeof n.align=="string"?n.align:null;i&&(i==="left"||i==="center"||i==="right")&&(t==="text"?o.style.textAlign=i:t==="image"&&(o.style.alignSelf=on[i])),t!=="image"&&typeof n.color=="string"&&(o.style.color=n.color),t==="text"&&typeof n.fontSize=="number"&&Number.isFinite(n.fontSize)&&(o.style.fontSize=`${De(n.fontSize,8,72)}px`),t==="image"&&typeof n.width=="number"&&Number.isFinite(n.width)&&(o.style.width=`${De(n.width,10,100)}%`),t==="image"&&typeof n.radius=="number"&&Number.isFinite(n.radius)&&(o.style.borderRadius=`${De(n.radius,0,48)}px`),typeof n.marginTop=="number"&&Number.isFinite(n.marginTop)&&(o.style.marginTop=`${De(n.marginTop,0,64)}px`),typeof n.marginBottom=="number"&&Number.isFinite(n.marginBottom)&&(o.style.marginBottom=`${De(n.marginBottom,0,64)}px`);}function de(o,e,t="veo-guide-close"){let n=o.createElement("button");return n.type="button",n.className=t,n.setAttribute("aria-label","Cerrar"),n.textContent="\xD7",n.addEventListener("click",e),n}function R(o){if(typeof o!="string"||o.length===0)return false;try{let e=typeof window<"u"?window.location.href:"http://localhost/",t=new URL(o,e);return wt.includes(t.protocol)}catch{return false}}function Jn(o){let e=o.style?.ctaUrl;if(typeof e=="string")return R(e)?e:void 0}var Zn={"--veo-bg":"#1f2937","--veo-text":"#f9fafb","--veo-text-secondary":"#d1d5db","--veo-shadow":"0 20px 60px rgba(0, 0, 0, 0.55)"},mt={left:"flex-start",center:"center",right:"flex-end"},eo={left:"flex-start",center:"center",right:"flex-end"},to={title:"text",text:"text",image:"self"},rn={none:"none",soft:"0 4px 14px rgba(0, 0, 0, 0.10)",medium:"0 8px 30px rgba(0, 0, 0, 0.18)",strong:"0 24px 60px rgba(0, 0, 0, 0.32)"},sn={center:[.5,.5],top:[.5,0],bottom:[.5,1],left:[0,.5],right:[1,.5],"top-left":[0,0],"top-right":[1,0],"bottom-left":[0,1],"bottom-right":[1,1]},z=/^#[0-9a-f]{3,8}$|^(rgb|rgba|hsl|hsla)\([\d.,%/\sdeg]+\)$|^[a-z]{3,20}$/i;function I(o,e,t){return Math.min(t,Math.max(e,o))}function an(o,e){if(!e||typeof e!="object")return;let t=e;if(typeof t.accentColor=="string"&&z.test(t.accentColor.trim())&&o.style.setProperty("--veo-primary",t.accentColor.trim()),typeof t.fontFamily=="string"&&t.fontFamily.length<=200&&!/[<>{}]/.test(t.fontFamily)&&o.style.setProperty("--veo-font",t.fontFamily.trim()),t.theme==="dark")for(let[r,s]of Object.entries(Zn))o.style.setProperty(r,s);typeof t.background=="string"&&z.test(t.background.trim())&&o.style.setProperty("--veo-bg",t.background.trim()),typeof t.textColor=="string"&&z.test(t.textColor.trim())&&o.style.setProperty("--veo-text",t.textColor.trim()),typeof t.textSecondaryColor=="string"&&z.test(t.textSecondaryColor.trim())&&o.style.setProperty("--veo-text-secondary",t.textSecondaryColor.trim()),typeof t.radius=="number"&&Number.isFinite(t.radius)&&o.style.setProperty("--veo-radius",`${I(t.radius,0,48)}px`),typeof t.width=="number"&&Number.isFinite(t.width)&&o.style.setProperty("--veo-width",`${I(t.width,220,720)}px`),typeof t.height=="number"&&Number.isFinite(t.height)&&o.style.setProperty("--veo-min-h",`${I(t.height,120,900)}px`),(t.align==="left"||t.align==="center"||t.align==="right")&&o.style.setProperty("--veo-actions-justify",mt[t.align]),typeof t.padding=="number"&&Number.isFinite(t.padding)&&o.style.setProperty("--veo-pad",`${I(t.padding,0,64)}px`),typeof t.margin=="number"&&Number.isFinite(t.margin)&&o.style.setProperty("--veo-margin",`${I(t.margin,0,64)}px`),typeof t.borderWidth=="number"&&Number.isFinite(t.borderWidth)&&o.style.setProperty("--veo-border-width",`${I(t.borderWidth,0,16)}px`),typeof t.borderColor=="string"&&z.test(t.borderColor.trim())&&o.style.setProperty("--veo-border-color",t.borderColor.trim()),typeof t.shadow=="string"&&rn[t.shadow]&&o.style.setProperty("--veo-shadow",rn[t.shadow]);let n,i;if(typeof t.posX=="number"&&typeof t.posY=="number"?(n=I(t.posX,0,1),i=I(t.posY,0,1)):typeof t.overlayPosition=="string"&&sn[t.overlayPosition]&&([n,i]=sn[t.overlayPosition]),n!==void 0&&i!==void 0&&(o.style.setProperty("--veo-pos-x",`${n*100}%`),o.style.setProperty("--veo-pos-y",`${i*100}%`)),t.elements&&typeof t.elements=="object"){let r=t.elements;ft(o,"title",r.title),ft(o,"text",r.text),ft(o,"image",r.image),no(o,r.cta);}}function no(o,e){if(!e||typeof e!="object")return;let t=e;typeof t.align=="string"&&mt[t.align]&&o.style.setProperty("--veo-actions-justify",mt[t.align]),typeof t.background=="string"&&z.test(t.background.trim())&&o.style.setProperty("--veo-cta-bg",t.background.trim()),typeof t.color=="string"&&z.test(t.color.trim())&&o.style.setProperty("--veo-cta-color",t.color.trim()),typeof t.fontSize=="number"&&Number.isFinite(t.fontSize)&&o.style.setProperty("--veo-cta-size",`${I(t.fontSize,10,24)}px`),typeof t.radius=="number"&&Number.isFinite(t.radius)&&o.style.setProperty("--veo-cta-radius",`${I(t.radius,0,48)}px`);}function ft(o,e,t){if(!t||typeof t!="object")return;let n=t;if(typeof n.align=="string"&&(n.align==="left"||n.align==="center"||n.align==="right")){let r=(to[e]??"text")==="self"?eo[n.align]:n.align;o.style.setProperty(`--veo-${e}-align`,r);}typeof n.color=="string"&&z.test(n.color.trim())&&o.style.setProperty(`--veo-${e}-color`,n.color.trim()),typeof n.fontSize=="number"&&Number.isFinite(n.fontSize)&&o.style.setProperty(`--veo-${e}-size`,`${I(n.fontSize,8,72)}px`),typeof n.width=="number"&&Number.isFinite(n.width)&&o.style.setProperty(`--veo-${e}-width`,`${I(n.width,10,100)}%`),typeof n.radius=="number"&&Number.isFinite(n.radius)&&o.style.setProperty(`--veo-${e}-radius`,`${I(n.radius,0,48)}px`),typeof n.marginTop=="number"&&Number.isFinite(n.marginTop)&&o.style.setProperty(`--veo-${e}-mt`,`${I(n.marginTop,0,64)}px`),typeof n.marginBottom=="number"&&Number.isFinite(n.marginBottom)&&o.style.setProperty(`--veo-${e}-mb`,`${I(n.marginBottom,0,64)}px`);}function U(o){let e=o?.inlinePosition;return e==="before"||e==="prepend"||e==="append"?e:"after"}function A(o,e,t){switch(t){case "before":o.before(e);break;case "after":o.after(e);break;case "prepend":o.prepend(e);break;case "append":o.append(e);break}}function N(o,e,t){let n=window.setInterval(()=>{if(o.isConnected)return;let i=document.querySelector(e);i&&A(i,o,t);},1e3);return ()=>window.clearInterval(n)}function S(o,e=5e3){return new Promise(t=>{let n=()=>{try{return document.querySelector(o)}catch{return null}},i=n();if(i){t(i);return}let r=false,s=d=>{r||(r=true,a.disconnect(),clearTimeout(l),t(d));},a=new MutationObserver(()=>{let d=n();d&&s(d);});a.observe(document.body,{childList:true,subtree:true});let l=setTimeout(()=>s(null),e);})}var ln=`
|
|
2
2
|
:host {
|
|
3
3
|
--veo-primary: #FF5B35;
|
|
4
4
|
--veo-text: #1f2937;
|
|
@@ -99,6 +99,35 @@ var veoGuides=(function(exports){'use strict';function gt(){return typeof window
|
|
|
99
99
|
animation: veo-fade-in 160ms ease-out;
|
|
100
100
|
}
|
|
101
101
|
|
|
102
|
+
/* \u2500\u2500 Modelo unificado (composite) \u2500\u2500 */
|
|
103
|
+
.veo-composite-overlay {
|
|
104
|
+
position: fixed; inset: 0;
|
|
105
|
+
z-index: ${2147483640};
|
|
106
|
+
pointer-events: none;
|
|
107
|
+
}
|
|
108
|
+
/* Backdrop atenuado (solo centro con backdrop activo). */
|
|
109
|
+
.veo-composite-overlay--dim {
|
|
110
|
+
background: rgba(0, 0, 0, 0.5);
|
|
111
|
+
pointer-events: auto;
|
|
112
|
+
}
|
|
113
|
+
.veo-composite-anchored {
|
|
114
|
+
position: fixed;
|
|
115
|
+
z-index: ${2147483640};
|
|
116
|
+
}
|
|
117
|
+
/* Card gen\xE9rica del modelo unificado. El dise\xF1o (bg/borde/padding/\u2026) lo aplica
|
|
118
|
+
el renderer como estilos inline desde step.design; ac\xE1 van los defaults. */
|
|
119
|
+
.veo-card {
|
|
120
|
+
pointer-events: auto;
|
|
121
|
+
background: var(--veo-bg, #ffffff);
|
|
122
|
+
color: var(--veo-text, #1f2937);
|
|
123
|
+
border-radius: var(--veo-radius, 12px);
|
|
124
|
+
padding: 20px;
|
|
125
|
+
max-width: 90vw;
|
|
126
|
+
box-shadow: var(--veo-shadow, 0 12px 40px rgba(0, 0, 0, 0.18));
|
|
127
|
+
animation: veo-fade-in 160ms ease-out;
|
|
128
|
+
}
|
|
129
|
+
.veo-composite-anchored .veo-card, .veo-composite-overlay .veo-card { position: relative; }
|
|
130
|
+
|
|
102
131
|
.veo-guide-content {
|
|
103
132
|
position: relative;
|
|
104
133
|
display: flex; flex-direction: column;
|
|
@@ -393,9 +422,9 @@ var veoGuides=(function(exports){'use strict';function gt(){return typeof window
|
|
|
393
422
|
from { transform: translateY(-10px); opacity: 0; }
|
|
394
423
|
to { transform: translateY(0); opacity: 1; }
|
|
395
424
|
}
|
|
396
|
-
`;var b=class{constructor(){this.host=null;this.shadow=null;this.cleanups=[];this.liveContainer=null;this.liveContent=null;this.liveBuild=null;this.liveKey="";}liveKeyOf(e){return ""}onLiveUpdate(e){}updateStep(e){if(!this.host||!this.liveContainer||!this.liveContent||!this.liveBuild||this.liveKeyOf(e)!==this.liveKey)return false;let t=this.liveBuild(e);return this.liveContainer.replaceChild(t,this.liveContent),this.liveContent=t,this.applyDesign(e.style),this.onLiveUpdate(e),true}createHost(){let e=document.createElement("div");e.setAttribute(yt,"");let t=e.attachShadow({mode:"open"}),o=document.createElement("style");o.textContent=an,t.appendChild(o);let i=document.createElement("div");return t.appendChild(i),document.body.appendChild(e),this.host=e,this.shadow=t,{host:e,shadow:t,root:i}}applyDesign(e){this.host&&sn(this.host,e);}registerCleanup(e){this.cleanups.push(e);}hostElement(){return this.host}destroy(){for(let e of this.cleanups)try{e();}catch{}this.cleanups=[],this.host?.parentNode&&this.host.parentNode.removeChild(this.host),this.host=null,this.shadow=null;}};var no={top:"bottom",bottom:"top",left:"right",right:"left"};function me(n,e,t){let o=no[e.split("-")[0]??"bottom"]??"top";for(let i of ["top","bottom","left","right"])n.style.setProperty(i,"");t?.x!=null&&n.style.setProperty("left",`${t.x}px`),t?.y!=null&&n.style.setProperty("top",`${t.y}px`),n.style.setProperty(o,"-6px");}var oo=150,ge=class extends b{constructor(){super(...arguments);this.tooltip=null;this.arrowEl=null;this.badgeBtn=null;this.open=false;this.shownEmitted=false;this.trigger="hover";this.side="top";this.closeTimer=null;this.stopFloat=null;}async render(t){let o=t.guide.guideSteps[0];if(!o)return;let i=o.selector??t.guide.activationRules.selector;if(typeof i!="string"||i.length===0)return;let r=await E(i);if(!r)return;let{host:s,root:a}=this.createHost(),l=a.ownerDocument??document;this.applyDesign(o.style);let d=o.style?.width;typeof d=="number"&&Number.isFinite(d)&&s.style.setProperty("--veo-badge-tip-width",`${Math.min(720,Math.max(220,d))}px`),this.trigger=o.style?.badgeTrigger==="click"?"click":"hover";let c=o.style?.tooltipPlacement;this.side=c==="bottom"||c==="left"||c==="right"?c:"top";let u=F(o.style);s.style.display="inline-flex",s.style.verticalAlign="middle";let f=dn(ln(o),l);a.appendChild(f),this.badgeBtn=f,O(r,s,u),this.registerCleanup(H(s,i,u));let p=l.createElement("div");p.className="veo-tooltip veo-badge-tooltip",p.style.display="none";let h=(y,C)=>{t.onInteraction({guideId:t.guide.guideId,stepIndex:0,action:y,...C?{metadata:C}:{}});},m=y=>T(y,l,{onCtaClick:(C,k,$)=>{h("cta_clicked",$),C==="url"&&k&&window.open(k,"_blank","noopener,noreferrer"),this.closeTooltip(),C==="guide"&&k&&t.onOpenGuide?.(k);},onDismiss:()=>this.closeTooltip()}),g=m(o);p.appendChild(g);let v=l.createElement("div");v.className="veo-tooltip-arrow",p.appendChild(v),a.appendChild(p),this.tooltip=p,this.arrowEl=v,this.liveContainer=p,this.liveContent=g,this.liveKey=this.liveKeyOf(o),this.liveBuild=m;let w=()=>{this.cancelClose(),this.open||(this.openTooltip(f),this.shownEmitted||(this.shownEmitted=true,h("shown")));};if(this.trigger==="hover"){let y=()=>{this.cancelClose(),this.closeTimer=window.setTimeout(()=>this.closeTooltip(),oo);};f.addEventListener("mouseenter",w),f.addEventListener("focus",w),f.addEventListener("mouseleave",y),f.addEventListener("blur",y),p.addEventListener("mouseenter",()=>this.cancelClose()),p.addEventListener("mouseleave",y);}else {f.addEventListener("click",()=>{this.open?this.closeTooltip():w();});let y=C=>{this.open&&(C.composedPath().includes(s)||this.closeTooltip());};document.addEventListener("click",y,true),this.registerCleanup(()=>document.removeEventListener("click",y,true));}let x=y=>{y.key==="Escape"&&this.open&&this.closeTooltip();};document.addEventListener("keydown",x),this.registerCleanup(()=>document.removeEventListener("keydown",x)),t.isPreview&&w();}liveKeyOf(t){let o=t.selector??"",i=F(t.style),r=t.style?.badgeTrigger==="click"?"click":"hover";return `${o}|${i}|${r}`}onLiveUpdate(t){if(this.badgeBtn){let i=this.badgeBtn.ownerDocument,r=dn(ln(t),i);this.badgeBtn.className=r.className,this.badgeBtn.setAttribute("style",r.getAttribute("style")??""),this.badgeBtn.replaceChildren(...Array.from(r.childNodes));}let o=t.style?.tooltipPlacement;this.side=o==="bottom"||o==="left"||o==="right"?o:"top",this.open&&this.badgeBtn&&this.position(this.badgeBtn);}destroy(){this.cancelClose(),this.stopFloat?.(),this.stopFloat=null,this.tooltip=null,this.arrowEl=null,this.badgeBtn=null,this.open=false,super.destroy();}openTooltip(t){if(!this.tooltip)return;this.tooltip.style.display="block",this.open=true,this.position(t);let o=()=>{this.position(t);};window.addEventListener("scroll",o,true),window.addEventListener("resize",o),this.stopFloat=()=>{window.removeEventListener("scroll",o,true),window.removeEventListener("resize",o);};}closeTooltip(){this.cancelClose(),!(!this.tooltip||!this.open)&&(this.tooltip.style.display="none",this.open=false,this.stopFloat?.(),this.stopFloat=null);}cancelClose(){this.closeTimer!==null&&(window.clearTimeout(this.closeTimer),this.closeTimer=null);}async position(t){let o=this.tooltip,i=this.arrowEl;if(!o||!i)return;let{x:r,y:s,placement:a,middlewareData:l}=await J(t,o,{strategy:"fixed",placement:this.side,middleware:[Y(8),Q(),X({padding:8}),he({element:i})]});o.style.left=`${r}px`,o.style.top=`${s}px`,me(i,a,l.arrow);}};function ln(n){let e=n.style?.badge;if(!e||typeof e!="object")return {kind:"icon"};let t=e;return {kind:t.kind==="dot"||t.kind==="pill"||t.kind==="text"||t.kind==="image"||t.kind==="icon"?t.kind:"icon",icon:typeof t.icon=="string"?t.icon:null,text:typeof t.text=="string"?t.text:null,imageUrl:typeof t.imageUrl=="string"?t.imageUrl:null,color:typeof t.color=="string"&&B.test(t.color.trim())?t.color.trim():null,size:typeof t.size=="number"&&Number.isFinite(t.size)?t.size:null}}function De(n,e,t){return Math.min(t,Math.max(e,n))}function dn(n,e){let t=e.createElement("button");t.type="button",t.className=`veo-badge veo-badge--${n.kind}`,t.setAttribute("aria-label","M\xE1s informaci\xF3n");let o=De(n.size??18,8,48);switch(n.kind){case "dot":t.style.width=`${o}px`,t.style.height=`${o}px`,n.color&&(t.style.background=n.color);break;case "pill":{t.textContent=n.text?.slice(0,24)||"Nuevo",t.style.fontSize=`${De(Math.round(o*.62),8,24)}px`,n.color&&(t.style.background=n.color);break}case "text":{t.textContent=n.text?.slice(0,32)||"Nuevo",t.style.fontSize=`${De(Math.round(o*.7),9,28)}px`,n.color&&(t.style.color=n.color);break}case "image":{if(n.imageUrl&&A(n.imageUrl)){let i=e.createElement("img");i.src=n.imageUrl,i.alt="",i.style.width=`${o}px`,i.style.height=`${o}px`,t.appendChild(i);}else t.className="veo-badge veo-badge--icon",t.textContent="?",t.style.width=`${o}px`,t.style.height=`${o}px`,t.style.fontSize=`${De(Math.round(o*.62),8,32)}px`;break}default:{t.textContent=(n.icon||"\u2139\uFE0F").slice(0,4),t.style.width=`${o}px`,t.style.height=`${o}px`,t.style.fontSize=`${De(Math.round(o*.62),8,32)}px`,n.color&&(t.style.color=n.color);break}}return t}function ve(n,e,t,o,i){let r=o.createElement("div");r.className="veo-guide-content";let s=o.createElement("div");s.className="veo-walkthrough-counter",s.textContent=`Paso ${e+1} de ${t}`,r.appendChild(s);let a=o.createElement("div");a.className="veo-walkthrough-progress";for(let h=0;h<t;h++){let m=o.createElement("span");m.className="veo-walkthrough-progress-dot",h<e&&m.classList.add("completed"),h===e&&m.classList.add("active"),a.appendChild(m);}r.appendChild(a);for(let h of Zt(n,o))r.appendChild(h);let l=o.createElement("div");l.className="veo-walkthrough-actions";let d=o.createElement("button");d.type="button",d.className="veo-walkthrough-skip",d.textContent="Omitir",d.addEventListener("click",()=>i.onSkip()),l.appendChild(d);let c=o.createElement("div");if(c.className="veo-walkthrough-actions-right",e>0){let h=o.createElement("button");h.type="button",h.className="veo-walkthrough-btn-secondary",h.textContent="Atr\xE1s",h.addEventListener("click",()=>i.onBack()),c.appendChild(h);}let u=e===t-1,f=o.createElement("button");f.type="button",f.className="veo-guide-cta";let p=u?"Finalizar":"Siguiente";return f.textContent=typeof n.ctaText=="string"&&n.ctaText?n.ctaText:p,f.addEventListener("click",()=>{u?i.onComplete():i.onNext();}),c.appendChild(f),l.appendChild(c),r.appendChild(l),r.appendChild(Oe(o,()=>i.onSkip())),r}var Z=class extends b{async render(e){let t=e.nav?.stepIndex??0,o=e.guide.guideSteps[t];if(!o)return;let i=o.style?.position==="bottom"?"bottom":"top",r=o.selector?.trim()||null,s=null;if(r&&(s=await E(r),!s))return;let{host:a,root:l}=this.createHost();this.applyDesign(o.style);let d=l.ownerDocument??document,c=d.createElement("div");c.className=cn(i,!!s);let u=(p,h,m)=>{e.onInteraction({guideId:e.guide.guideId,stepIndex:t,action:p,...m?{metadata:m}:{}}),h&&window.open(h,"_blank","noopener,noreferrer"),e.onClose();},f=e.nav?ve(o,e.nav.stepIndex,e.nav.totalSteps,d,e.nav.callbacks):T(o,d,{onCtaClick:(p,h,m)=>{u("cta_clicked",p==="url"?h:void 0,m),p==="guide"&&h&&e.onOpenGuide?.(h);},onDismiss:()=>u("dismissed")});if(c.appendChild(f),l.appendChild(c),r&&s){a.style.display="block";let p=i==="top"?"prepend":"append";O(s,a,p),this.registerCleanup(H(a,r,p));}e.nav||(this.liveContainer=c,this.liveContent=f,this.liveBuild=p=>T(p,d,{onCtaClick:(h,m,g)=>{u("cta_clicked",h==="url"?m:void 0,g),h==="guide"&&m&&e.onOpenGuide?.(m);},onDismiss:()=>u("dismissed")}),this.liveKey=this.liveKeyOf(o),e.onInteraction({guideId:e.guide.guideId,stepIndex:0,action:"shown"}));}liveKeyOf(e){let t=e.selector?.trim()??"";if(!t)return "";let o=e.style?.position==="bottom"?"bottom":"top";return `${t}|${o}`}onLiveUpdate(e){if(this.liveContainer){let t=e.style?.position==="bottom"?"bottom":"top",o=!!e.selector?.trim();this.liveContainer.className=cn(t,o);}}};function cn(n,e){return e?"veo-banner veo-banner-embedded":`veo-banner veo-banner-${n}`}function un(){let e=Date.now().toString(16).padStart(12,"0"),t=new Uint8Array(10);if(typeof crypto<"u"&&typeof crypto.getRandomValues=="function")crypto.getRandomValues(t);else for(let i=0;i<t.length;i++)t[i]=Math.floor(Math.random()*256);t[0]=(t[0]??0)&15|112,t[2]=(t[2]??0)&63|128;let o=Array.from(t,i=>i.toString(16).padStart(2,"0")).join("");return [e.slice(0,8),e.slice(8,12),o.slice(0,4),o.slice(4,8),o.slice(8,20)].join("-")}function et(n,e,t,o){let i=n.createElement("iframe");i.className="veo-custom-frame",i.setAttribute("sandbox","allow-scripts"),i.setAttribute("title",t.guide.guideName||"OnUser"),i.style.width=o.width;let r=o.fixedHeight!==void 0&&o.fixedHeight!==null;r&&(i.style.height=ht(o.fixedHeight));let s=un(),a=e.style?.tailwind===true;i.srcdoc=lo(e.html??"",e.css??"",e.js??"",s,{hostCss:ro(),htmlAttrs:so(),tailwind:a});let l=()=>t.onClose(),d=c=>{if(c.source!==i.contentWindow)return;let u=c.data;if(!(!u||typeof u!="object"||u.__veo!==s))switch(u.type){case "dismiss":t.onInteraction({guideId:t.guide.guideId,stepIndex:0,action:"dismissed"}),l();break;case "cta":t.onInteraction({guideId:t.guide.guideId,stepIndex:0,action:"cta_clicked"}),typeof u.url=="string"&&A(u.url)&&window.open(u.url,"_blank","noopener,noreferrer"),u.close!==false&&l();break;case "navigate":typeof u.url=="string"&&A(u.url)&&window.location.assign(u.url);break;case "track":typeof u.name=="string"&&t.onTrack&&t.onTrack(u.name,ao(u.props)?u.props:void 0);break;case "resize":!r&&typeof u.height=="number"&&u.height>0&&(i.style.height=`${Math.ceil(u.height)}px`);break}};return window.addEventListener("message",d),{iframe:i,cleanup:()=>window.removeEventListener("message",d)}}function ht(n){return typeof n=="number"?`${n}px`:n}var io=800*1024;function ro(){if(typeof document>"u")return "";let n="";try{for(let e of Array.from(document.styleSheets)){let t=null;try{t=e.cssRules;}catch{continue}if(t){for(let o of Array.from(t))if(n+=`${o.cssText}
|
|
397
|
-
`,n.length>io)return n}}}catch{return n}return n}function so(){if(typeof document>"u")return "";try{let n=document.documentElement,e=[];for(let t of ["class","style","data-theme","data-mode","data-color-mode"]){let o=n.getAttribute(t);o&&o.length<=1e3&&!/["<>]/.test(o)&&e.push(`${t}="${o}"`);}return e.join(" ")}catch{return ""}}function ao(n){return typeof n=="object"&&n!==null&&!Array.isArray(n)}function lo(n,e,t,o,i){let r=`(function(){var T=${JSON.stringify(o)};function P(m){m.__veo=T;parent.postMessage(m,'*');}window.veo={dismiss:function(){P({type:'dismiss'});},cta:function(u){P({type:'cta',url:u});},track:function(n,p){P({type:'track',name:n,props:p||{}});},navigate:function(u){P({type:'navigate',url:u});}};document.addEventListener('click',function(e){var a=e.target&&e.target.closest?e.target.closest('a[href]'):null;if(!a)return;var h=a.getAttribute('href');if(!h||h.charAt(0)==='#'||/^(javascript|mailto|tel):/i.test(h))return;e.preventDefault();if(a.target==='_blank'){P({type:'cta',url:a.href,close:false});}else{P({type:'navigate',url:h});}},true);function H(){var r=document.getElementById('__veo_root');var h=r?r.getBoundingClientRect().height:document.documentElement.scrollHeight;P({type:'resize',height:Math.ceil(h)});}window.addEventListener('load',H);try{if(typeof ResizeObserver!=='undefined'){var _r=document.getElementById('__veo_root');new ResizeObserver(H).observe(_r||document.documentElement);}}catch(e){}})();`,s=i.hostCss?`<style>${ft(i.hostCss,"style")}</style>`:"",a=i.tailwind?'<script src="https://cdn.tailwindcss.com"></script>':"";return `<!DOCTYPE html><html ${i.htmlAttrs}><head><meta charset="utf-8"><style>html,body{margin:0;padding:0;}body{font-family:system-ui,-apple-system,sans-serif;}</style>`+s+"<style>html,body{margin:0!important;padding:0!important;background:transparent!important;height:auto!important;min-height:0!important;max-height:none!important;width:auto!important;min-width:0!important;overflow:visible!important;color-scheme:normal!important;}</style>"+a+`<style>${ft(e,"style")}</style></head><body style="margin:0!important;background:transparent!important;min-height:0!important;height:auto!important;"><div id="__veo_root">${n}</div><script>${r}</script>`+(t?`<script>${ft(t,"script")}</script>`:"")+"</body></html>"}function ft(n,e){let t=e==="script"?/<\/script/gi:/<\/style/gi;return n.replace(t,`<\\/${e}`)}var co={mode:"floating",position:"bottom-right"},pn=16,uo=360,ye=class extends b{async render(e){let t=e.guide.guideSteps[0];if(!t||typeof t.html!="string"||t.html.length===0)return;let o=t.placement??co,i=null;if(o.mode==="anchored"){let c=o.selector??t.selector??e.guide.activationRules.selector;if(typeof c!="string"||c.length===0||(i=await E(c),!i))return}let{root:r}=this.createHost(),s=r.ownerDocument??document,a=s.createElement("div");a.className=o.mode==="anchored"?"veo-custom-anchored":"veo-custom-floating";let{iframe:l,cleanup:d}=et(s,t,e,{width:ht(o.width??uo),fixedHeight:o.height??null});this.registerCleanup(d),a.appendChild(l),r.appendChild(a),o.mode==="floating"?po(a,o):i&&this.registerCleanup(await this.setupAnchoredPosition(i,a,o)),e.onInteraction({guideId:e.guide.guideId,stepIndex:0,action:"shown"});}async setupAnchoredPosition(e,t,o){let i=o.side??"bottom",r=async()=>{let{x:a,y:l}=await J(e,t,{placement:i,strategy:"fixed",middleware:[Y(o.offsetY??8),Q(),X({padding:8})]});t.style.left=`${a}px`,t.style.top=`${l}px`;};await r();let s=()=>{r();};return window.addEventListener("scroll",s,true),window.addEventListener("resize",s),()=>{window.removeEventListener("scroll",s,true),window.removeEventListener("resize",s);}}};function po(n,e){let t=e.position??"bottom-right",o=`${e.offsetX??pn}px`,i=`${e.offsetY??pn}px`,r=n.style;if(t==="center"){r.top="50%",r.left="50%",r.transform="translate(-50%, -50%)";return}let[s,a]=t.split("-");s==="top"?r.top=i:r.bottom=i,a==="left"?r.left=o:a==="right"?r.right=o:(r.left="50%",r.transform="translateX(-50%)");}function tt(n,e,t){let o=e.guide.guideSteps[0];if(!o)return;let i=o.fields??[],r=()=>{e.onInteraction({guideId:e.guide.guideId,stepIndex:0,action:"dismissed"}),e.onClose();},s=t.createElement("div");if(s.className="veo-guide-content",o.title){let f=t.createElement("h2");f.className="veo-guide-title",f.textContent=o.title,s.appendChild(f);}if(o.content){let f=t.createElement("p");f.className="veo-guide-text",f.textContent=o.content,s.appendChild(f);}let a=[],l=t.createElement("form");l.className="veo-form",l.noValidate=true;for(let f of i){let{wrapper:p,read:h}=ho(f,t);a.push({field:f,read:h}),l.appendChild(p);}let d=t.createElement("p");d.className="veo-form-error",d.style.display="none",l.appendChild(d);let c=t.createElement("div");c.className="veo-guide-actions";let u=t.createElement("button");u.type="submit",u.className="veo-guide-cta",u.textContent=o.ctaText||"Enviar",c.appendChild(u),l.appendChild(c),l.addEventListener("submit",f=>{f.preventDefault(),d.style.display="none";let p={};for(let{field:m,read:g}of a){let v=g();if(v==null||v===""){if(m.required){d.textContent=`Completa "${m.label}"`,d.style.display="block";return}continue}p[m.key]=v;}if(Object.keys(p).length===0){d.textContent="Responde al menos un campo",d.style.display="block";return}u.disabled=true,(e.onFormSubmit??(()=>Promise.resolve(true)))(p).then(m=>{if(!m){u.disabled=false,d.textContent="No se pudo enviar. Prueba de nuevo.",d.style.display="block";return}e.onInteraction({guideId:e.guide.guideId,stepIndex:0,action:"completed"});let g=e.isPreview?e.previewNote??"Vista previa: la respuesta NO se guard\xF3.":null;fo(n,t,g),window.setTimeout(()=>e.onClose(),g?2200:1400);});}),s.appendChild(l),s.appendChild(Oe(t,r)),n.appendChild(s);}function fo(n,e,t){for(;n.firstChild;)n.removeChild(n.firstChild);let o=e.createElement("div");if(o.className="veo-form-thanks",o.textContent="\u2713 \xA1Gracias por tu respuesta!",n.appendChild(o),t){let i=e.createElement("p");i.className="veo-form-preview-note",i.textContent=t,n.appendChild(i);}}function ho(n,e){let t=e.createElement("div");t.className="veo-form-field";let o=e.createElement("label");switch(o.className="veo-form-label",o.textContent=n.required?`${n.label} *`:n.label,t.appendChild(o),n.type){case "textarea":{let i=e.createElement("textarea");return i.className="veo-form-input",i.rows=3,n.placeholder&&(i.placeholder=n.placeholder),t.appendChild(i),{wrapper:t,read:()=>i.value.trim()}}case "number":{let i=e.createElement("input");return i.type="number",i.className="veo-form-input",n.placeholder&&(i.placeholder=n.placeholder),t.appendChild(i),{wrapper:t,read:()=>i.value.trim()===""?void 0:Number(i.value)}}case "select":{let i=e.createElement("select");i.className="veo-form-input";let r=e.createElement("option");r.value="",r.textContent=n.placeholder||"Elige una opci\xF3n\u2026",i.appendChild(r);for(let s of n.options??[]){let a=e.createElement("option");a.value=s,a.textContent=s,i.appendChild(a);}return t.appendChild(i),{wrapper:t,read:()=>i.value||void 0}}case "radio":{let i=e.createElement("div");i.className="veo-form-options";let r=`veo-${n.key}`,s=[];for(let a of n.options??[]){let l=e.createElement("label");l.className="veo-form-option";let d=e.createElement("input");d.type="radio",d.name=r,d.value=a,s.push(d);let c=e.createElement("span");c.textContent=a,l.appendChild(d),l.appendChild(c),i.appendChild(l);}return t.appendChild(i),{wrapper:t,read:()=>s.find(a=>a.checked)?.value}}case "multiselect":{let i=e.createElement("div");i.className="veo-form-options";let r=[];for(let s of n.options??[]){let a=e.createElement("label");a.className="veo-form-option";let l=e.createElement("input");l.type="checkbox",l.value=s,r.push(l);let d=e.createElement("span");d.textContent=s,a.appendChild(l),a.appendChild(d),i.appendChild(a);}return t.appendChild(i),{wrapper:t,read:()=>{let s=r.filter(a=>a.checked).map(a=>a.value);return s.length>0?s:void 0}}}case "checkbox":{let i=e.createElement("label");i.className="veo-form-option";let r=e.createElement("input");r.type="checkbox";let s=e.createElement("span");return s.textContent=n.placeholder||"S\xED",i.appendChild(r),i.appendChild(s),t.appendChild(i),{wrapper:t,read:()=>r.checked?true:n.required?"":false}}case "yesno":{let i=e.createElement("div");i.className="veo-form-options";let r=`veo-${n.key}`,[s,a]=n.options?.length===2?n.options:["S\xED","No"],l=[];for(let{label:d,value:c}of [{label:s,value:true},{label:a,value:false}]){let u=e.createElement("label");u.className="veo-form-option";let f=e.createElement("input");f.type="radio",f.name=r,l.push({input:f,value:c});let p=e.createElement("span");p.textContent=d,u.appendChild(f),u.appendChild(p),i.appendChild(u);}return t.appendChild(i),{wrapper:t,read:()=>l.find(d=>d.input.checked)?.value}}case "nps":return fn(t,e,0,10,"veo-nps-btn");case "rating":return fn(t,e,1,5,"veo-rating-btn","\u2605");default:{let i=e.createElement("input");return i.type="text",i.className="veo-form-input",n.placeholder&&(i.placeholder=n.placeholder),t.appendChild(i),{wrapper:t,read:()=>i.value.trim()}}}}function fn(n,e,t,o,i,r){let s=e.createElement("div");s.className="veo-form-scale";let a,l=[];for(let d=t;d<=o;d++){let c=e.createElement("button");c.type="button",c.className=i,c.textContent=r??String(d),c.setAttribute("aria-label",String(d)),c.addEventListener("click",()=>{a=d,l.forEach((u,f)=>{let p=r?f+t<=d:f+t===d;u.classList.toggle("veo-scale-active",p);});}),l.push(c),s.appendChild(c);}return n.appendChild(s),{wrapper:n,read:()=>a}}var we=class extends b{render(e){let t=e.guide.guideSteps[0];if(!t||(t.fields??[]).length===0)return;let{root:o}=this.createHost();this.applyDesign(t.style);let i=o.ownerDocument??document,r=i.createElement("div");r.className="veo-modal-overlay";let s=i.createElement("div");s.className="veo-modal-card",tt(s,e,i),r.appendChild(s),o.appendChild(r);let a=()=>{e.onInteraction({guideId:e.guide.guideId,stepIndex:0,action:"dismissed"}),e.onClose();};r.addEventListener("click",d=>{d.target===r&&a();});let l=d=>{d.key==="Escape"&&a();};document.addEventListener("keydown",l),this.registerCleanup(()=>document.removeEventListener("keydown",l)),e.onInteraction({guideId:e.guide.guideId,stepIndex:0,action:"shown"});}};var be=class extends b{async render(e){let t=e.guide.guideSteps[0];if(!t||typeof t.html!="string"||t.html.length===0)return;let o=t.selector??e.guide.activationRules.selector;if(typeof o!="string"||o.length===0)return;let i=await E(o);if(!i)return;let{host:r,root:s}=this.createHost();r.style.display="block";let a=F(t.style);O(i,r,a),this.registerCleanup(H(r,o,a));let l=s.ownerDocument??document,d=l.createElement("div");d.className="veo-custom-inline";let{iframe:c,cleanup:u}=et(l,t,e,{width:"100%"});this.registerCleanup(u),d.appendChild(c),s.appendChild(d),e.onInteraction({guideId:e.guide.guideId,stepIndex:0,action:"shown"});}};var xe=class extends b{async render(e){let t=e.guide.guideSteps[0];if(!t||(t.fields??[]).length===0)return;let o=t.selector??e.guide.activationRules.selector;if(typeof o!="string"||o.length===0)return;let i=await E(o);if(!i)return;let{host:r,root:s}=this.createHost();r.style.display="block";let a=F(t.style);O(i,r,a),this.registerCleanup(H(r,o,a)),this.applyDesign(t.style);let l=s.ownerDocument??document,d=l.createElement("div");d.className="veo-inline",tt(d,e,l),s.appendChild(d),e.onInteraction({guideId:e.guide.guideId,stepIndex:0,action:"shown"});}};var Ce=class extends b{async render(e){let t=e.guide.guideSteps[0];if(!t)return;let o=t.selector??e.guide.activationRules.selector;if(typeof o!="string"||o.length===0)return;let i=await E(o);if(!i)return;let{host:r,root:s}=this.createHost();r.style.display="block";let a=F(t.style);O(i,r,a),this.registerCleanup(H(r,o,a)),this.applyDesign(t.style);let l=s.ownerDocument??document,d=l.createElement("div");d.className="veo-inline";let c=(f,p,h)=>{e.onInteraction({guideId:e.guide.guideId,stepIndex:0,action:f,...h?{metadata:h}:{}}),p&&window.open(p,"_blank","noopener,noreferrer"),e.onClose();},u=T(t,l,{onCtaClick:(f,p,h)=>{c("cta_clicked",f==="url"?p:void 0,h),f==="guide"&&p&&e.onOpenGuide?.(p);},onDismiss:()=>c("dismissed")});d.appendChild(u),s.appendChild(d),this.liveContainer=d,this.liveContent=u,this.liveKey=`${o}|${a}`,this.liveBuild=f=>T(f,l,{onCtaClick:(p,h,m)=>{c("cta_clicked",p==="url"?h:void 0,m),p==="guide"&&h&&e.onOpenGuide?.(h);},onDismiss:()=>c("dismissed")}),e.onInteraction({guideId:e.guide.guideId,stepIndex:0,action:"shown"});}liveKeyOf(e){return `${e.selector??""}|${F(e.style)}`}};function hn(n){return n.style?.backdrop===false?"veo-modal-overlay veo-modal-overlay--none":"veo-modal-overlay"}var ee=class extends b{constructor(){super(...arguments);this.overlay=null;}render(t){let o=t.nav?.stepIndex??0,i=t.guide.guideSteps[o];if(!i)return;let{root:r}=this.createHost();this.applyDesign(i.style);let s=r.ownerDocument??document,a=s.createElement("div");a.className=hn(i),this.overlay=a;let l=s.createElement("div");l.className="veo-modal-card";let d=(p,h,m)=>{t.onInteraction({guideId:t.guide.guideId,stepIndex:o,action:p,...m?{metadata:m}:{}}),h&&window.open(h,"_blank","noopener,noreferrer"),t.onClose();},c=()=>{t.nav?t.nav.callbacks.onSkip():d("dismissed");},u=t.nav?ve(i,t.nav.stepIndex,t.nav.totalSteps,s,t.nav.callbacks):T(i,s,{onCtaClick:(p,h,m)=>{d("cta_clicked",p==="url"?h:void 0,m),p==="guide"&&h&&t.onOpenGuide?.(h);},onDismiss:()=>d("dismissed")});l.appendChild(u),a.appendChild(l),r.appendChild(a),t.nav||(this.liveContainer=l,this.liveContent=u,this.liveBuild=p=>T(p,s,{onCtaClick:(h,m,g)=>{d("cta_clicked",h==="url"?m:void 0,g),h==="guide"&&m&&t.onOpenGuide?.(m);},onDismiss:()=>d("dismissed")})),a.addEventListener("click",p=>{p.target===a&&c();});let f=p=>{p.key==="Escape"&&c();};document.addEventListener("keydown",f),this.registerCleanup(()=>document.removeEventListener("keydown",f)),t.nav||t.onInteraction({guideId:t.guide.guideId,stepIndex:0,action:"shown"});}onLiveUpdate(t){this.overlay&&(this.overlay.className=hn(t));}destroy(){this.overlay=null,super.destroy();}};var ke=class extends b{constructor(){super(...arguments);this.side="bottom";this.reposition=null;}async render(t){let o=t.guide.guideSteps[0];if(!o)return;let i=o.selector??t.guide.activationRules.selector;if(typeof i!="string"||i.length===0)return;let r=await E(i);if(!r)return;let s=o.style?.tooltipPlacement;this.side=s==="top"||s==="left"||s==="right"?s:"bottom";let{root:a}=this.createHost();this.applyDesign(o.style);let l=a.ownerDocument??document,d=l.createElement("div");d.className="veo-tooltip";let c=(m,g,v)=>{t.onInteraction({guideId:t.guide.guideId,stepIndex:0,action:m,...v?{metadata:v}:{}}),g&&window.open(g,"_blank","noopener,noreferrer"),t.onClose();},u=T(o,l,{onCtaClick:(m,g,v)=>{c("cta_clicked",m==="url"?g:void 0,v),m==="guide"&&g&&t.onOpenGuide?.(g);},onDismiss:()=>c("dismissed")});d.appendChild(u);let f=l.createElement("div");f.className="veo-tooltip-arrow",d.appendChild(f),a.appendChild(d);let p=async()=>{let{x:m,y:g,placement:v,middlewareData:w}=await J(r,d,{placement:this.side,middleware:[Y(10),Q(),X({padding:8}),he({element:f})]});d.style.left=`${m}px`,d.style.top=`${g}px`,me(f,v,w.arrow);};await p();let h=()=>{p();};this.reposition=h,window.addEventListener("scroll",h,true),window.addEventListener("resize",h),this.registerCleanup(()=>{window.removeEventListener("scroll",h,true),window.removeEventListener("resize",h);}),this.liveContainer=d,this.liveContent=u,this.liveKey=i,this.liveBuild=m=>T(m,l,{onCtaClick:(g,v,w)=>{c("cta_clicked",g==="url"?v:void 0,w),g==="guide"&&v&&t.onOpenGuide?.(v);},onDismiss:()=>c("dismissed")}),t.onInteraction({guideId:t.guide.guideId,stepIndex:0,action:"shown"});}liveKeyOf(t){return t.selector??""}onLiveUpdate(t){let o=t.style?.tooltipPlacement;this.side=o==="top"||o==="left"||o==="right"?o:"bottom",this.reposition?.();}};var Ee=class extends b{async render(e){let t=e.guide.guideSteps[e.currentStepIndex];if(!t)return false;let o=t.selector??e.guide.activationRules.selector;if(typeof o!="string"||o.length===0)return false;let i=await E(o,5e3);if(!i)return false;let r=t.style?.tooltipPlacement,s=r==="top"||r==="left"||r==="right"?r:"bottom",{root:a}=this.createHost();this.applyDesign(t.style);let l=a.ownerDocument??document,d=l.createElement("div");d.className="veo-walkthrough";let c=ve(t,e.currentStepIndex,e.guide.guideSteps.length,l,e.callbacks);d.appendChild(c);let u=l.createElement("div");u.className="veo-walkthrough-arrow",d.appendChild(u),a.appendChild(d);let f=async()=>{let{x:h,y:m,placement:g,middlewareData:v}=await J(i,d,{placement:s,middleware:[Y(10),Q(),X({padding:8}),he({element:u})]});d.style.left=`${h}px`,d.style.top=`${m}px`,me(u,g,v.arrow);};await f();let p=()=>{f();};return window.addEventListener("scroll",p,true),window.addEventListener("resize",p),this.registerCleanup(()=>{window.removeEventListener("scroll",p,true),window.removeEventListener("resize",p);}),true}};var nt=class{constructor(e){this.state=null;this.storageKey=`${bt}${e}`,this.state=this.load(),this.state&&this.isAbandoned(this.state)&&this.clear();}current(){return this.state?this.isAbandoned(this.state)?(this.clear(),null):this.state:null}hasActive(){return this.current()!==null}start(e,t){let o=Date.now();return this.state={guideId:e,totalSteps:t,currentStepIndex:0,startedAt:o,lastProgressAt:o},this.persist(),this.state}advance(){if(!this.state)return null;let e=this.state.currentStepIndex+1;return e>=this.state.totalSteps?null:(this.state={...this.state,currentStepIndex:e,lastProgressAt:Date.now()},this.persist(),this.state)}back(){return this.state?this.state.currentStepIndex===0?this.state:(this.state={...this.state,currentStepIndex:this.state.currentStepIndex-1,lastProgressAt:Date.now()},this.persist(),this.state):null}clear(){if(this.state=null,!(typeof localStorage>"u"))try{localStorage.removeItem(this.storageKey);}catch{}}isAbandoned(e){return Date.now()-e.lastProgressAt>18e5}load(){if(typeof localStorage>"u")return null;try{let e=localStorage.getItem(this.storageKey);if(!e)return null;let t=JSON.parse(e);if(!t||typeof t!="object")return null;let o=t;return typeof o.guideId!="string"||typeof o.totalSteps!="number"||typeof o.currentStepIndex!="number"||typeof o.startedAt!="number"||typeof o.lastProgressAt!="number"?null:o}catch{return null}}persist(){if(!(typeof localStorage>"u"||!this.state))try{localStorage.setItem(this.storageKey,JSON.stringify(this.state));}catch{}}};var go=3e4,vo={shown:"shown",dismissed:"dismissed",cta_clicked:null,step_advanced:null,step_back:null,completed:"completed"},ot=class{constructor(e,t){this.client=e;this.activeRenderers=new Set;this.activeByGuideId=new Map;this.dispatched=new Set;this.activeWalkthroughRenderer=null;this.activeWalkthroughGuide=null;this.resolveCache=null;this.inflightResolve=null;this.armedTriggers=new Map;if(this.debug=t.debug===true,this.apiUrl=t.apiUrl,this.apiKey=t.apiKey,this.resolver=t.resolver??new He(t.apiUrl,t.apiKey,this.debug),t.trackerQueue)this.trackerQueue=t.trackerQueue;else {let i=new $e(t.apiUrl,t.apiKey);this.trackerQueue=new We({client:i,flushIntervalMs:3e3,batchSize:5,maxRetries:3,onError:(r,s)=>{this.debug&&console.warn(`[veo] dropped guide interaction after retries: guideId=${s.guideId} action=${s.payload.action}`,r);}});}let o=kt(t.apiKey);this.frequencyCache=t.frequencyCache??new Fe(o),this.walkthroughState=t.walkthroughState??new nt(o);}get pendingInteractions(){return this.trackerQueue.size}clearFrequencyCache(){this.frequencyCache.clear();}clearWalkthroughState(){this.tearDownWalkthrough();}async checkGuides(e,t){let o=this.client.getEndUserId();if(!o){this.debug&&console.log("[veo] guides: skipped, no endUserId yet");return}if(await this.tryResumeWalkthrough(o,t,e))return;let i;try{i=await this.resolveGuides(o,e);}catch(r){this.debug&&console.error("[veo] guides resolver threw:",r);return}this.debug&&console.log(`[veo] guides: ${i.length} eligible at ${e}`),this.disarmTriggers();for(let r of i){let s=r.activationRules.trigger;if((s==="on_click"||s==="on_hover")&&r.activationRules.selector){this.armInteractionTrigger(r,o,t,e);continue}await this.showGuide(r,o,t,e);}}async showGuide(e,t,o,i){if(this.frequencyCache.shouldFilter(e.guideId,e.displayFrequency)){this.debug&&console.log(`[veo] guides: filtered locally guideId=${e.guideId}`);return}if(this.activeByGuideId.has(e.guideId)){this.debug&&console.log(`[veo] guides: already shown guideId=${e.guideId}`);return}if(e.guideType==="walkthrough"&&e.guideSteps.length>1){if(this.walkthroughState.hasActive()){this.debug&&console.log(`[veo] guides: walkthrough ${e.guideId} skipped (another active)`);return}await this.startWalkthrough(e,t,o,i);return}this.runSingleStepRender(e,o,i);}armInteractionTrigger(e,t,o,i){if(this.frequencyCache.shouldFilter(e.guideId,e.displayFrequency)||this.activeByGuideId.has(e.guideId)||this.armedTriggers.has(e.guideId))return;let r=e.activationRules.selector,s=e.activationRules.trigger==="on_hover"?"mouseover":"click",a=d=>{let c=d.target;if(c instanceof Element){try{if(!c.closest(r))return}catch{return}l(),this.showGuide(e,t,o,i);}},l=()=>{document.removeEventListener(s,a,true),this.armedTriggers.delete(e.guideId);};document.addEventListener(s,a,true),this.armedTriggers.set(e.guideId,l),this.debug&&console.log(`[veo] guides: armed ${s} trigger for ${e.guideId} on ${r}`);}disarmTriggers(){for(let e of this.armedTriggers.values())e();this.armedTriggers.clear();}async resolveGuides(e,t){let o=`${e}
|
|
398
|
-
${t}`,i=Date.now();if(this.resolveCache?.key===o&&i-this.resolveCache.at<go)return this.debug&&console.log("[veo] guides: resolve cache hit"),this.resolveCache.guides;if(this.inflightResolve?.key===o)return this.inflightResolve.promise;let r=this.resolver.resolve(e,t);this.inflightResolve={key:o,promise:r};try{let s=await r;return this.resolveCache={key:o,at:Date.now(),guides:s},s}finally{this.inflightResolve?.key===o&&(this.inflightResolve=null);}}destroy(){for(let e of this.activeRenderers)try{e.destroy();}catch(t){this.debug&&console.error("[veo] renderer destroy failed:",t);}if(this.activeRenderers.clear(),this.activeByGuideId.clear(),this.activeWalkthroughRenderer){try{this.activeWalkthroughRenderer.destroy();}catch{}this.activeWalkthroughRenderer=null,this.activeWalkthroughGuide=null;}this.disarmTriggers(),this.dispatched.clear(),this.resolveCache=null,this.inflightResolve=null,this.trackerQueue.destroy();}runSingleStepRender(e,t,o){let i=this.createSingleStepRenderer(e.guideType);if(!i)return;this.activeByGuideId.set(e.guideId,i);let r=e.activationRules.delayMs??0;window.setTimeout(()=>this.mountSingleStepRenderer(e,i,t,o),r);}mountSingleStepRenderer(e,t,o,i){this.activeRenderers.add(t),this.activeByGuideId.set(e.guideId,t);let r=()=>{t.destroy(),this.activeRenderers.delete(t),this.activeByGuideId.get(e.guideId)===t&&this.activeByGuideId.delete(e.guideId);},s=c=>{this.handleInteraction(e,o,i,c);},a=(c,u)=>{this.client.track(c,u);},l=c=>this.submitFormResponse(e.guideId,c),d=c=>{this.openGuideById(c,o,i);};try{t.render({guide:e,onInteraction:s,onClose:r,onTrack:a,onFormSubmit:l,onOpenGuide:d});}catch(c){this.debug&&console.error("[veo] renderer.render threw:",c),this.activeRenderers.delete(t),this.activeByGuideId.get(e.guideId)===t&&this.activeByGuideId.delete(e.guideId);}}async openGuideById(e,t,o){if(this.activeByGuideId.has(e))return;let i=await this.resolver.fetchById(e);if(!i){this.debug&&console.warn(`[veo] guides: chained guide ${e} not found`);return}let r=this.client.getEndUserId()??this.client.getAnonymousId();if(i.guideType==="walkthrough"&&i.guideSteps.length>1){this.walkthroughState.hasActive()||await this.startWalkthrough(i,r,t,o);return}this.runSingleStepRender(i,t,o);}async tryResumeWalkthrough(e,t,o){let i=this.walkthroughState.current();if(!i)return false;let r=await this.resolver.fetchById(i.guideId);if(!r||r.guideType!=="walkthrough")return this.debug&&console.log(`[veo] guides: walkthrough ${i.guideId} no longer available, cleaning up`),this.tearDownWalkthrough(),true;let s=Math.min(i.currentStepIndex,r.guideSteps.length-1);return await this.renderWalkthroughStep(r,s,e,t,o),true}async startWalkthrough(e,t,o,i){this.walkthroughState.start(e.guideId,e.guideSteps.length),await this.renderWalkthroughStep(e,0,t,o,i)&&(this.enqueueInteractionOnce(e.guideId,t,o,i,"shown",0),this.frequencyCache.record(e.guideId,"shown"));}async renderWalkthroughStep(e,t,o,i,r){this.activeWalkthroughRenderer&&(this.activeWalkthroughRenderer.destroy(),this.activeWalkthroughRenderer=null),this.activeWalkthroughGuide=e;let s={onNext:()=>this.handleWalkthroughNext(o,i,r),onBack:()=>this.handleWalkthroughBack(o,i,r),onSkip:()=>this.handleWalkthroughSkip(o,i,r),onComplete:()=>this.handleWalkthroughComplete(o,i,r)},a=e.guideSteps[t],l=yo(a);if(l==="modal"||l==="banner"){let u=l==="modal"?new ee:new Z;try{u.render({guide:e,onInteraction:()=>{},onClose:()=>{},nav:{stepIndex:t,totalSteps:e.guideSteps.length,callbacks:s}});}catch(f){return this.debug&&console.error("[veo] sequence renderer threw:",f),this.tearDownWalkthrough(),false}return this.activeWalkthroughRenderer=u,true}let d=new Ee,c=false;try{c=await d.render({guide:e,currentStepIndex:t,callbacks:s});}catch(u){this.debug&&console.error("[veo] walkthrough renderer threw:",u);}return c?(this.activeWalkthroughRenderer=d,true):(this.debug&&console.warn(`[veo] walkthrough ${e.guideId} step ${t} could not render, cancelling`),this.tearDownWalkthrough(),false)}handleWalkthroughNext(e,t,o){let i=this.activeWalkthroughGuide;if(!i)return;let r=this.walkthroughState.advance();if(!r){this.handleWalkthroughComplete(e,t,o);return}this.enqueueInteraction(i.guideId,e,t,o,"step_advanced",r.currentStepIndex),this.renderWalkthroughStep(i,r.currentStepIndex,e,t,o);}handleWalkthroughBack(e,t,o){let i=this.activeWalkthroughGuide;if(!i)return;let r=this.walkthroughState.current();if(!r||r.currentStepIndex===0)return;let s=this.walkthroughState.back();s&&(this.enqueueInteraction(i.guideId,e,t,o,"step_back",s.currentStepIndex),this.renderWalkthroughStep(i,s.currentStepIndex,e,t,o));}handleWalkthroughSkip(e,t,o){let i=this.activeWalkthroughGuide,r=this.walkthroughState.current();!i||!r||(this.enqueueInteraction(i.guideId,e,t,o,"dismissed",r.currentStepIndex),this.frequencyCache.record(i.guideId,"dismissed"),this.tearDownWalkthrough());}handleWalkthroughComplete(e,t,o){let i=this.activeWalkthroughGuide,r=this.walkthroughState.current();!i||!r||(this.enqueueInteraction(i.guideId,e,t,o,"completed",r.currentStepIndex),this.frequencyCache.record(i.guideId,"completed"),this.tearDownWalkthrough());}tearDownWalkthrough(){if(this.activeWalkthroughRenderer)try{this.activeWalkthroughRenderer.destroy();}catch{}this.activeWalkthroughRenderer=null,this.activeWalkthroughGuide=null,this.walkthroughState.clear();}handleInteraction(e,t,o,i){let r=i.metadata?.buttonId?`:${i.metadata.buttonId}`:"",s=`${e.guideId}:${i.action}${r}`;if(this.dispatched.has(s)){this.debug&&console.log(`[veo] guides: dedup hit ${s}`);return}this.dispatched.add(s);let a=vo[i.action];a&&this.frequencyCache.record(e.guideId,a);let l=this.client.getEndUserId();if(!l){this.debug&&console.warn("[veo] guides: interaction without endUserId \u2014 skipping enqueue");return}this.trackerQueue.enqueue({guideId:e.guideId,payload:{endUserId:l,sessionId:t,action:i.action,stepIndex:i.stepIndex,pageUrl:o,pagePath:mn(o),...i.metadata?{metadata:i.metadata}:{}}});}enqueueInteraction(e,t,o,i,r,s){this.trackerQueue.enqueue({guideId:e,payload:{endUserId:t,sessionId:o,action:r,stepIndex:s,pageUrl:i,pagePath:mn(i)}});}enqueueInteractionOnce(e,t,o,i,r,s){let a=`${e}:${r}:${s}`;this.dispatched.has(a)||(this.dispatched.add(a),this.enqueueInteraction(e,t,o,i,r,s));}createSingleStepRenderer(e){switch(e){case "modal":return new ee;case "banner":return new Z;case "tooltip":return new ke;case "custom":return new ye;case "inline":return new Ce;case "inline-custom":return new be;case "form":return new we;case "inline-form":return new xe;case "badge":return new ge;case "walkthrough":return null}}async submitFormResponse(e,t){let o=this.client.getEndUserId()??this.client.getAnonymousId();try{let i=await fetch(`${this.apiUrl}/v1/guides/${e}/form-response`,{method:"POST",headers:{"Content-Type":"application/json","X-Api-Key":this.apiKey},body:JSON.stringify({endUserId:o,answers:t})});return !i.ok&&this.debug&&console.warn("[veo] form-response respondi\xF3",i.status),i.ok}catch(i){return this.debug&&console.warn("[veo] form-response fall\xF3:",i),false}}};function mn(n){try{return new URL(n).pathname}catch{return "/"}}function yo(n){let e=n?.style?.render;return typeof e=="string"?e:"walkthrough"}var wo="__veo_preview__",mt=class{constructor(){this.singleStep=null;this.walkthrough=null;this.walkthroughGuide=null;this.walkthroughIndex=0;this.input=null;}preview(e){let t=e.guideSteps[0];if(this.singleStep&&this.input&&e.guideType===this.input.guideType&&e.guideType!=="walkthrough"&&t&&this.singleStep.updateStep(t))return this.input=e,{close:()=>this.close(),ready:Promise.resolve({rendered:true}),host:()=>this.activeHost()};this.close(),this.input=e;let o=bo(e),i=typeof e.startStepIndex=="number"?e.startStepIndex:0,r=o.guideType==="walkthrough"?this.startWalkthrough(o,i):this.renderSingleStep(o);return {close:()=>this.close(),ready:r,host:()=>this.activeHost()}}activeHost(){return this.singleStep?this.singleStep.hostElement():this.walkthrough instanceof b?this.walkthrough.hostElement():null}close(){this.singleStep&&(de(this.singleStep),this.singleStep=null),this.walkthrough&&(de(this.walkthrough),this.walkthrough=null),this.walkthroughGuide=null,this.walkthroughIndex=0,this.input=null;}async renderSingleStep(e){let t=xo(e.guideType);if(!t)return {rendered:false};this.singleStep=t;let o=false;try{await t.render({guide:e,onInteraction:i=>{i.action==="shown"&&(o=!0);},onClose:()=>this.close(),onTrack:()=>{},onOpenGuide:()=>{},onFormSubmit:this.input?.formSubmit??(()=>Promise.resolve(!0)),isPreview:!0,...this.input?.formSubmit&&this.input.formSubmitNote!==void 0?{previewNote:this.input.formSubmitNote}:{}});}catch{return this.close(),{rendered:false}}return this.singleStep!==t?(de(t),{rendered:false}):{rendered:o}}async startWalkthrough(e,t=0){if(e.guideSteps.length===0)return {rendered:false};this.walkthroughGuide=e;let o=Math.min(Math.max(0,Math.floor(t)),e.guideSteps.length-1);return this.walkthroughIndex=o,{rendered:await this.renderWalkthroughStep(o)}}async renderWalkthroughStep(e){let t=this.walkthroughGuide;if(!t)return false;this.walkthrough&&(de(this.walkthrough),this.walkthrough=null);let o={onNext:()=>{let l=this.walkthroughIndex+1;if(l>=t.guideSteps.length){this.close();return}this.walkthroughIndex=l,this.renderWalkthroughStep(l);},onBack:()=>{let l=this.walkthroughIndex-1;l<0||(this.walkthroughIndex=l,this.renderWalkthroughStep(l));},onSkip:()=>this.close(),onComplete:()=>this.close()},r=t.guideSteps[e]?.style?.render;if(r==="modal"||r==="banner"){let l=r==="modal"?new ee:new Z;try{l.render({guide:t,onInteraction:()=>{},onClose:()=>this.close(),nav:{stepIndex:e,totalSteps:t.guideSteps.length,callbacks:o}});}catch{return de(l),false}return this.walkthroughGuide!==t?(de(l),false):(this.walkthrough=l,true)}let s=new Ee,a=false;try{a=await s.render({guide:t,currentStepIndex:e,callbacks:o});}catch{a=false;}return !a||this.walkthroughGuide!==t?(de(s),false):(this.walkthrough=s,true)}},it=null;function rt(n){return Be()?(it||(it=new mt),it.preview(n)):{close:()=>{},ready:Promise.resolve({rendered:false}),host:()=>null}}function gn(){it?.close();}function bo(n){let e=n.activationRules?.selector,t={url:n.activationRules?.url??{type:"prefix",pattern:"/"},trigger:"immediate",...e!==void 0?{selector:e}:{}};return {guideId:wo,guideName:n.guideName??"Preview",guideType:n.guideType,guideSteps:n.guideSteps,activationRules:t,displayFrequency:"always",displayPriority:0}}function xo(n){switch(n){case "modal":return new ee;case "banner":return new Z;case "tooltip":return new ke;case "custom":return new ye;case "inline":return new Ce;case "inline-custom":return new be;case "form":return new we;case "inline-form":return new xe;case "badge":return new ge;case "walkthrough":return null}}function de(n){try{n.destroy();}catch{}}var st=null;async function vn(n){if(!Be())return null;st?.teardown();let e=null;try{let a=await fetch(`${n.apiUrl}/v1/guides/preview-resolve`,{method:"POST",headers:{"Content-Type":"application/json","X-Api-Key":n.apiKey},body:JSON.stringify({token:n.token})});a.ok?e=(await a.json()).guide??null:n.debug&&console.warn("[veo] preview-resolve respondi\xF3",a.status);}catch(a){n.debug&&console.warn("[veo] preview-resolve fall\xF3:",a);}let t=async a=>{if(!e)return false;let l=window.veo,d=l?.getEndUserId?.()??l?.getAnonymousId?.()??null;if(!d)return false;try{return (await fetch(`${n.apiUrl}/v1/guides/${e.guideId}/form-response`,{method:"POST",headers:{"Content-Type":"application/json","X-Api-Key":n.apiKey},body:JSON.stringify({endUserId:d,answers:a})})).ok}catch{return false}},o=null,i=()=>{e&&(o?.close(),o=rt({guideType:e.guideType,guideSteps:e.guideSteps,activationRules:e.activationRules,guideName:e.guideName,formSubmit:t,formSubmitNote:"Vista previa: guardado en TU usuario para probar el flujo."}));},r=Co({label:e?`Vista previa: ${e.guideName}`:"Link de preview inv\xE1lido o vencido",error:!e,onReshow:e?i:null,onClose:()=>s.teardown()}),s={teardown(){o?.close(),o=null,r.remove(),st===s&&(st=null);}};return st=s,i(),s}function Co(n){let e=document.createElement("div");e.setAttribute("data-veo-preview-chip","");let t=e.attachShadow({mode:"open"}),o=document.createElement("style");o.textContent=`
|
|
425
|
+
`;var b=class{constructor(){this.host=null;this.shadow=null;this.cleanups=[];this.liveContainer=null;this.liveContent=null;this.liveBuild=null;this.liveKey="";}liveKeyOf(e){return ""}onLiveUpdate(e){}updateStep(e){if(!this.host||!this.liveContainer||!this.liveContent||!this.liveBuild||this.liveKeyOf(e)!==this.liveKey)return false;let t=this.liveBuild(e);return this.liveContainer.replaceChild(t,this.liveContent),this.liveContent=t,this.applyDesign(e.style),this.onLiveUpdate(e),true}createHost(){let e=document.createElement("div");e.setAttribute(bt,"");let t=e.attachShadow({mode:"open"}),n=document.createElement("style");n.textContent=ln,t.appendChild(n);let i=document.createElement("div");return t.appendChild(i),document.body.appendChild(e),this.host=e,this.shadow=t,{host:e,shadow:t,root:i}}applyDesign(e){this.host&&an(this.host,e);}registerCleanup(e){this.cleanups.push(e);}hostElement(){return this.host}destroy(){for(let e of this.cleanups)try{e();}catch{}this.cleanups=[],this.host?.parentNode&&this.host.parentNode.removeChild(this.host),this.host=null,this.shadow=null;}};var oo={top:"bottom",bottom:"top",left:"right",right:"left"};function ve(o,e,t){let n=oo[e.split("-")[0]??"bottom"]??"top";for(let i of ["top","bottom","left","right"])o.style.setProperty(i,"");t?.x!=null&&o.style.setProperty("left",`${t.x}px`),t?.y!=null&&o.style.setProperty("top",`${t.y}px`),o.style.setProperty(n,"-6px");}var io=150,ye=class extends b{constructor(){super(...arguments);this.tooltip=null;this.arrowEl=null;this.badgeBtn=null;this.open=false;this.shownEmitted=false;this.trigger="hover";this.side="top";this.closeTimer=null;this.stopFloat=null;}async render(t){let n=t.guide.guideSteps[0];if(!n)return;let i=n.selector??t.guide.activationRules.selector;if(typeof i!="string"||i.length===0)return;let r=await S(i);if(!r)return;let{host:s,root:a}=this.createHost(),l=a.ownerDocument??document;this.applyDesign(n.style);let d=n.style?.width;typeof d=="number"&&Number.isFinite(d)&&s.style.setProperty("--veo-badge-tip-width",`${Math.min(720,Math.max(220,d))}px`),this.trigger=n.style?.badgeTrigger==="click"?"click":"hover";let u=n.style?.tooltipPlacement;this.side=u==="bottom"||u==="left"||u==="right"?u:"top";let p=U(n.style);s.style.display="inline-flex",s.style.verticalAlign="middle";let f=cn(dn(n),l);a.appendChild(f),this.badgeBtn=f,A(r,s,p),this.registerCleanup(N(s,i,p));let c=l.createElement("div");c.className="veo-tooltip veo-badge-tooltip",c.style.display="none";let m=(y,C)=>{t.onInteraction({guideId:t.guide.guideId,stepIndex:0,action:y,...C?{metadata:C}:{}});},h=y=>P(y,l,{onCtaClick:(C,k,K)=>{m("cta_clicked",K),C==="url"&&k&&window.open(k,"_blank","noopener,noreferrer"),this.closeTooltip(),C==="guide"&&k&&t.onOpenGuide?.(k);},onDismiss:()=>this.closeTooltip()}),g=h(n);c.appendChild(g);let v=l.createElement("div");v.className="veo-tooltip-arrow",c.appendChild(v),a.appendChild(c),this.tooltip=c,this.arrowEl=v,this.liveContainer=c,this.liveContent=g,this.liveKey=this.liveKeyOf(n),this.liveBuild=h;let w=()=>{this.cancelClose(),this.open||(this.openTooltip(f),this.shownEmitted||(this.shownEmitted=true,m("shown")));};if(this.trigger==="hover"){let y=()=>{this.cancelClose(),this.closeTimer=window.setTimeout(()=>this.closeTooltip(),io);};f.addEventListener("mouseenter",w),f.addEventListener("focus",w),f.addEventListener("mouseleave",y),f.addEventListener("blur",y),c.addEventListener("mouseenter",()=>this.cancelClose()),c.addEventListener("mouseleave",y);}else {f.addEventListener("click",()=>{this.open?this.closeTooltip():w();});let y=C=>{this.open&&(C.composedPath().includes(s)||this.closeTooltip());};document.addEventListener("click",y,true),this.registerCleanup(()=>document.removeEventListener("click",y,true));}let x=y=>{y.key==="Escape"&&this.open&&this.closeTooltip();};document.addEventListener("keydown",x),this.registerCleanup(()=>document.removeEventListener("keydown",x)),t.isPreview&&w();}liveKeyOf(t){let n=t.selector??"",i=U(t.style),r=t.style?.badgeTrigger==="click"?"click":"hover";return `${n}|${i}|${r}`}onLiveUpdate(t){if(this.badgeBtn){let i=this.badgeBtn.ownerDocument,r=cn(dn(t),i);this.badgeBtn.className=r.className,this.badgeBtn.setAttribute("style",r.getAttribute("style")??""),this.badgeBtn.replaceChildren(...Array.from(r.childNodes));}let n=t.style?.tooltipPlacement;this.side=n==="bottom"||n==="left"||n==="right"?n:"top",this.open&&this.badgeBtn&&this.position(this.badgeBtn);}destroy(){this.cancelClose(),this.stopFloat?.(),this.stopFloat=null,this.tooltip=null,this.arrowEl=null,this.badgeBtn=null,this.open=false,super.destroy();}openTooltip(t){if(!this.tooltip)return;this.tooltip.style.display="block",this.open=true,this.position(t);let n=()=>{this.position(t);};window.addEventListener("scroll",n,true),window.addEventListener("resize",n),this.stopFloat=()=>{window.removeEventListener("scroll",n,true),window.removeEventListener("resize",n);};}closeTooltip(){this.cancelClose(),!(!this.tooltip||!this.open)&&(this.tooltip.style.display="none",this.open=false,this.stopFloat?.(),this.stopFloat=null);}cancelClose(){this.closeTimer!==null&&(window.clearTimeout(this.closeTimer),this.closeTimer=null);}async position(t){let n=this.tooltip,i=this.arrowEl;if(!n||!i)return;let{x:r,y:s,placement:a,middlewareData:l}=await W(t,n,{strategy:"fixed",placement:this.side,middleware:[$(8),F(),H({padding:8}),ge({element:i})]});n.style.left=`${r}px`,n.style.top=`${s}px`,ve(i,a,l.arrow);}};function dn(o){let e=o.style?.badge;if(!e||typeof e!="object")return {kind:"icon"};let t=e;return {kind:t.kind==="dot"||t.kind==="pill"||t.kind==="text"||t.kind==="image"||t.kind==="icon"?t.kind:"icon",icon:typeof t.icon=="string"?t.icon:null,text:typeof t.text=="string"?t.text:null,imageUrl:typeof t.imageUrl=="string"?t.imageUrl:null,color:typeof t.color=="string"&&z.test(t.color.trim())?t.color.trim():null,size:typeof t.size=="number"&&Number.isFinite(t.size)?t.size:null}}function Be(o,e,t){return Math.min(t,Math.max(e,o))}function cn(o,e){let t=e.createElement("button");t.type="button",t.className=`veo-badge veo-badge--${o.kind}`,t.setAttribute("aria-label","M\xE1s informaci\xF3n");let n=Be(o.size??18,8,48);switch(o.kind){case "dot":t.style.width=`${n}px`,t.style.height=`${n}px`,o.color&&(t.style.background=o.color);break;case "pill":{t.textContent=o.text?.slice(0,24)||"Nuevo",t.style.fontSize=`${Be(Math.round(n*.62),8,24)}px`,o.color&&(t.style.background=o.color);break}case "text":{t.textContent=o.text?.slice(0,32)||"Nuevo",t.style.fontSize=`${Be(Math.round(n*.7),9,28)}px`,o.color&&(t.style.color=o.color);break}case "image":{if(o.imageUrl&&R(o.imageUrl)){let i=e.createElement("img");i.src=o.imageUrl,i.alt="",i.style.width=`${n}px`,i.style.height=`${n}px`,t.appendChild(i);}else t.className="veo-badge veo-badge--icon",t.textContent="?",t.style.width=`${n}px`,t.style.height=`${n}px`,t.style.fontSize=`${Be(Math.round(n*.62),8,32)}px`;break}default:{t.textContent=(o.icon||"\u2139\uFE0F").slice(0,4),t.style.width=`${n}px`,t.style.height=`${n}px`,t.style.fontSize=`${Be(Math.round(n*.62),8,32)}px`,o.color&&(t.style.color=o.color);break}}return t}function we(o,e,t,n,i){let r=n.createElement("div");r.className="veo-guide-content";let s=n.createElement("div");s.className="veo-walkthrough-counter",s.textContent=`Paso ${e+1} de ${t}`,r.appendChild(s);let a=n.createElement("div");a.className="veo-walkthrough-progress";for(let m=0;m<t;m++){let h=n.createElement("span");h.className="veo-walkthrough-progress-dot",m<e&&h.classList.add("completed"),m===e&&h.classList.add("active"),a.appendChild(h);}r.appendChild(a);for(let m of tt(o,n))r.appendChild(m);let l=n.createElement("div");l.className="veo-walkthrough-actions";let d=n.createElement("button");d.type="button",d.className="veo-walkthrough-skip",d.textContent="Omitir",d.addEventListener("click",()=>i.onSkip()),l.appendChild(d);let u=n.createElement("div");if(u.className="veo-walkthrough-actions-right",e>0){let m=n.createElement("button");m.type="button",m.className="veo-walkthrough-btn-secondary",m.textContent="Atr\xE1s",m.addEventListener("click",()=>i.onBack()),u.appendChild(m);}let p=e===t-1,f=n.createElement("button");f.type="button",f.className="veo-guide-cta";let c=p?"Finalizar":"Siguiente";return f.textContent=typeof o.ctaText=="string"&&o.ctaText?o.ctaText:c,f.addEventListener("click",()=>{p?i.onComplete():i.onNext();}),u.appendChild(f),l.appendChild(u),r.appendChild(l),r.appendChild(de(n,()=>i.onSkip())),r}var Z=class extends b{async render(e){let t=e.nav?.stepIndex??0,n=e.guide.guideSteps[t];if(!n)return;let i=n.style?.position==="bottom"?"bottom":"top",r=n.selector?.trim()||null,s=null;if(r&&(s=await S(r),!s))return;let{host:a,root:l}=this.createHost();this.applyDesign(n.style);let d=l.ownerDocument??document,u=d.createElement("div");u.className=un(i,!!s);let p=(c,m,h)=>{e.onInteraction({guideId:e.guide.guideId,stepIndex:t,action:c,...h?{metadata:h}:{}}),m&&window.open(m,"_blank","noopener,noreferrer"),e.onClose();},f=e.nav?we(n,e.nav.stepIndex,e.nav.totalSteps,d,e.nav.callbacks):P(n,d,{onCtaClick:(c,m,h)=>{p("cta_clicked",c==="url"?m:void 0,h),c==="guide"&&m&&e.onOpenGuide?.(m);},onDismiss:()=>p("dismissed")});if(u.appendChild(f),l.appendChild(u),r&&s){a.style.display="block";let c=i==="top"?"prepend":"append";A(s,a,c),this.registerCleanup(N(a,r,c));}e.nav||(this.liveContainer=u,this.liveContent=f,this.liveBuild=c=>P(c,d,{onCtaClick:(m,h,g)=>{p("cta_clicked",m==="url"?h:void 0,g),m==="guide"&&h&&e.onOpenGuide?.(h);},onDismiss:()=>p("dismissed")}),this.liveKey=this.liveKeyOf(n),e.onInteraction({guideId:e.guide.guideId,stepIndex:0,action:"shown"}));}liveKeyOf(e){let t=e.selector?.trim()??"";if(!t)return "";let n=e.style?.position==="bottom"?"bottom":"top";return `${t}|${n}`}onLiveUpdate(e){if(this.liveContainer){let t=e.style?.position==="bottom"?"bottom":"top",n=!!e.selector?.trim();this.liveContainer.className=un(t,n);}}};function un(o,e){return e?"veo-banner veo-banner-embedded":`veo-banner veo-banner-${o}`}var be=class extends b{async render(e){let t=e.nav?.stepIndex??0,n=e.guide.guideSteps[t];if(!n)return;let i=(n.position==="relative-to-element"||n.presentation==="inline")&&n.anchorSelector?.trim()||void 0,r=null;if(i&&(r=await S(i),!r))return;let{host:s,root:a}=this.createHost(),l=a.ownerDocument??document,d=l.createElement("div");d.className="veo-card",lo(d,n.design??{});let u=(c,m)=>{e.onInteraction({guideId:e.guide.guideId,stepIndex:t,action:c,...m?.id?{metadata:{buttonId:m.id}}:{}});},p={blocks:n.blocks??[]};for(let c of tt(p,l))d.appendChild(c);let f=(n.blocks??[]).filter(c=>c.type==="button");if(f.length){let c=l.createElement("div");c.className="veo-guide-actions";for(let m of f)c.appendChild(this.buildButton(m,l,e,u));d.appendChild(c);}if(d.appendChild(de(l,()=>{u("dismissed"),this.closeOrSkip(e);})),n.presentation==="inline"&&r){s.style.display="block";let c=ro(n.inlinePosition);a.appendChild(d),A(r,s,c),this.registerCleanup(N(s,i,c));}else if(n.position==="relative-to-element"&&r){let c=l.createElement("div");c.className="veo-composite-anchored",c.appendChild(d),a.appendChild(c),this.registerCleanup(await ao(r,c));}else {let c=l.createElement("div");c.className="veo-composite-overlay",n.position==="center"&&n.design?.backdrop!==false&&(c.classList.add("veo-composite-overlay--dim"),c.addEventListener("click",m=>{m.target===c&&(u("dismissed"),this.closeOrSkip(e));})),so(d,n.position),c.appendChild(d),a.appendChild(c);}e.onInteraction({guideId:e.guide.guideId,stepIndex:t,action:"shown"});}buildButton(e,t,n,i){let r=t.createElement("button");return r.type="button",r.className="veo-guide-cta",r.textContent=e.text?.trim()||"OK",r.addEventListener("click",()=>{i("cta_clicked",e);let s=n.nav?.callbacks;switch(e.action){case "next":case "submit-forms":case "submit-forms-advance":s?s.onNext():n.onClose();break;case "prev":s?.onBack();break;case "url":typeof e.url=="string"&&R(e.url)&&window.open(e.url,"_blank","noopener,noreferrer");break;case "guide":e.targetGuideId&&n.onOpenGuide?.(e.targetGuideId),this.closeOrSkip(n);break;default:this.closeOrSkip(n);}}),r}closeOrSkip(e){e.nav?.callbacks?e.nav.callbacks.onSkip():e.onClose();}};function ro(o){return o==="before"||o==="prepend"||o==="append"?o:"after"}function so(o,e){let t=o.style;t.position="fixed";let n="16px",i=e.includes("top")?"top":e.includes("bottom")?"bottom":"middle",r=e.includes("left")?"left":e.includes("right")?"right":"middle";if(e==="center"){t.top="50%",t.left="50%",t.transform="translate(-50%, -50%)";return}i==="top"?t.top=n:i==="bottom"?t.bottom=n:(t.top="50%",t.transform="translateY(-50%)"),r==="left"?t.left=n:r==="right"?t.right=n:(t.left="50%",t.transform=`${t.transform} translateX(-50%)`.trim());}async function ao(o,e){let t=async()=>{let{x:i,y:r}=await W(o,e,{placement:"bottom",strategy:"fixed",middleware:[$(8),F(),H({padding:8})]});e.style.left=`${i}px`,e.style.top=`${r}px`;};await t();let n=()=>{t();};return window.addEventListener("scroll",n,true),window.addEventListener("resize",n),()=>{window.removeEventListener("scroll",n,true),window.removeEventListener("resize",n);}}function lo(o,e){let t=o.style,n=s=>typeof s=="number"&&Number.isFinite(s)?`${s}px`:null,i=s=>typeof s=="string"&&s?s:null;i(e.background)&&(t.background=e.background),i(e.textColor)&&(t.color=e.textColor),n(e.fontSize)&&(t.fontSize=n(e.fontSize)),i(e.fontWeight)&&(t.fontWeight=e.fontWeight),i(e.align)&&(t.textAlign=e.align),typeof e.lineHeight=="number"&&(t.lineHeight=`${e.lineHeight}%`),n(e.radius)&&(t.borderRadius=n(e.radius)),n(e.width)&&(t.width=n(e.width));let r=n(e.borderWidth);r&&(t.border=`${r} solid ${i(e.borderColor)??"#e5e5e5"}`);for(let s of ["Top","Right","Bottom","Left"]){let a=n(e[`padding${s}`]);a&&t.setProperty(`padding-${s.toLowerCase()}`,a);let l=n(e[`margin${s}`]);l&&t.setProperty(`margin-${s.toLowerCase()}`,l);}}function pn(){let e=Date.now().toString(16).padStart(12,"0"),t=new Uint8Array(10);if(typeof crypto<"u"&&typeof crypto.getRandomValues=="function")crypto.getRandomValues(t);else for(let i=0;i<t.length;i++)t[i]=Math.floor(Math.random()*256);t[0]=(t[0]??0)&15|112,t[2]=(t[2]??0)&63|128;let n=Array.from(t,i=>i.toString(16).padStart(2,"0")).join("");return [e.slice(0,8),e.slice(8,12),n.slice(0,4),n.slice(4,8),n.slice(8,20)].join("-")}function nt(o,e,t,n){let i=o.createElement("iframe");i.className="veo-custom-frame",i.setAttribute("sandbox","allow-scripts"),i.setAttribute("title",t.guide.guideName||"OnUser"),i.style.width=n.width;let r=n.fixedHeight!==void 0&&n.fixedHeight!==null;r&&(i.style.height=gt(n.fixedHeight));let s=pn(),a=e.style?.tailwind===true;i.srcdoc=mo(e.html??"",e.css??"",e.js??"",s,{hostCss:uo(),htmlAttrs:po(),tailwind:a});let l=()=>t.onClose(),d=u=>{if(u.source!==i.contentWindow)return;let p=u.data;if(!(!p||typeof p!="object"||p.__veo!==s))switch(p.type){case "dismiss":t.onInteraction({guideId:t.guide.guideId,stepIndex:0,action:"dismissed"}),l();break;case "cta":t.onInteraction({guideId:t.guide.guideId,stepIndex:0,action:"cta_clicked"}),typeof p.url=="string"&&R(p.url)&&window.open(p.url,"_blank","noopener,noreferrer"),p.close!==false&&l();break;case "navigate":typeof p.url=="string"&&R(p.url)&&window.location.assign(p.url);break;case "track":typeof p.name=="string"&&t.onTrack&&t.onTrack(p.name,fo(p.props)?p.props:void 0);break;case "resize":!r&&typeof p.height=="number"&&p.height>0&&(i.style.height=`${Math.ceil(p.height)}px`);break}};return window.addEventListener("message",d),{iframe:i,cleanup:()=>window.removeEventListener("message",d)}}function gt(o){return typeof o=="number"?`${o}px`:o}var co=800*1024;function uo(){if(typeof document>"u")return "";let o="";try{for(let e of Array.from(document.styleSheets)){let t=null;try{t=e.cssRules;}catch{continue}if(t){for(let n of Array.from(t))if(o+=`${n.cssText}
|
|
426
|
+
`,o.length>co)return o}}}catch{return o}return o}function po(){if(typeof document>"u")return "";try{let o=document.documentElement,e=[];for(let t of ["class","style","data-theme","data-mode","data-color-mode"]){let n=o.getAttribute(t);n&&n.length<=1e3&&!/["<>]/.test(n)&&e.push(`${t}="${n}"`);}return e.join(" ")}catch{return ""}}function fo(o){return typeof o=="object"&&o!==null&&!Array.isArray(o)}function mo(o,e,t,n,i){let r=`(function(){var T=${JSON.stringify(n)};function P(m){m.__veo=T;parent.postMessage(m,'*');}window.veo={dismiss:function(){P({type:'dismiss'});},cta:function(u){P({type:'cta',url:u});},track:function(n,p){P({type:'track',name:n,props:p||{}});},navigate:function(u){P({type:'navigate',url:u});}};document.addEventListener('click',function(e){var a=e.target&&e.target.closest?e.target.closest('a[href]'):null;if(!a)return;var h=a.getAttribute('href');if(!h||h.charAt(0)==='#'||/^(javascript|mailto|tel):/i.test(h))return;e.preventDefault();if(a.target==='_blank'){P({type:'cta',url:a.href,close:false});}else{P({type:'navigate',url:h});}},true);function H(){var r=document.getElementById('__veo_root');var h=r?r.getBoundingClientRect().height:document.documentElement.scrollHeight;P({type:'resize',height:Math.ceil(h)});}window.addEventListener('load',H);try{if(typeof ResizeObserver!=='undefined'){var _r=document.getElementById('__veo_root');new ResizeObserver(H).observe(_r||document.documentElement);}}catch(e){}})();`,s=i.hostCss?`<style>${ht(i.hostCss,"style")}</style>`:"",a=i.tailwind?'<script src="https://cdn.tailwindcss.com"></script>':"";return `<!DOCTYPE html><html ${i.htmlAttrs}><head><meta charset="utf-8"><style>html,body{margin:0;padding:0;}body{font-family:system-ui,-apple-system,sans-serif;}</style>`+s+"<style>html,body{margin:0!important;padding:0!important;background:transparent!important;height:auto!important;min-height:0!important;max-height:none!important;width:auto!important;min-width:0!important;overflow:visible!important;color-scheme:normal!important;}</style>"+a+`<style>${ht(e,"style")}</style></head><body style="margin:0!important;background:transparent!important;min-height:0!important;height:auto!important;"><div id="__veo_root">${o}</div><script>${r}</script>`+(t?`<script>${ht(t,"script")}</script>`:"")+"</body></html>"}function ht(o,e){let t=e==="script"?/<\/script/gi:/<\/style/gi;return o.replace(t,`<\\/${e}`)}var ho={mode:"floating",position:"bottom-right"},fn=16,go=360,xe=class extends b{async render(e){let t=e.guide.guideSteps[0];if(!t||typeof t.html!="string"||t.html.length===0)return;let n=t.placement??ho,i=null;if(n.mode==="anchored"){let u=n.selector??t.selector??e.guide.activationRules.selector;if(typeof u!="string"||u.length===0||(i=await S(u),!i))return}let{root:r}=this.createHost(),s=r.ownerDocument??document,a=s.createElement("div");a.className=n.mode==="anchored"?"veo-custom-anchored":"veo-custom-floating";let{iframe:l,cleanup:d}=nt(s,t,e,{width:gt(n.width??go),fixedHeight:n.height??null});this.registerCleanup(d),a.appendChild(l),r.appendChild(a),n.mode==="floating"?vo(a,n):i&&this.registerCleanup(await this.setupAnchoredPosition(i,a,n)),e.onInteraction({guideId:e.guide.guideId,stepIndex:0,action:"shown"});}async setupAnchoredPosition(e,t,n){let i=n.side??"bottom",r=async()=>{let{x:a,y:l}=await W(e,t,{placement:i,strategy:"fixed",middleware:[$(n.offsetY??8),F(),H({padding:8})]});t.style.left=`${a}px`,t.style.top=`${l}px`;};await r();let s=()=>{r();};return window.addEventListener("scroll",s,true),window.addEventListener("resize",s),()=>{window.removeEventListener("scroll",s,true),window.removeEventListener("resize",s);}}};function vo(o,e){let t=e.position??"bottom-right",n=`${e.offsetX??fn}px`,i=`${e.offsetY??fn}px`,r=o.style;if(t==="center"){r.top="50%",r.left="50%",r.transform="translate(-50%, -50%)";return}let[s,a]=t.split("-");s==="top"?r.top=i:r.bottom=i,a==="left"?r.left=n:a==="right"?r.right=n:(r.left="50%",r.transform="translateX(-50%)");}function ot(o,e,t){let n=e.guide.guideSteps[0];if(!n)return;let i=n.fields??[],r=()=>{e.onInteraction({guideId:e.guide.guideId,stepIndex:0,action:"dismissed"}),e.onClose();},s=t.createElement("div");if(s.className="veo-guide-content",n.title){let f=t.createElement("h2");f.className="veo-guide-title",f.textContent=n.title,s.appendChild(f);}if(n.content){let f=t.createElement("p");f.className="veo-guide-text",f.textContent=n.content,s.appendChild(f);}let a=[],l=t.createElement("form");l.className="veo-form",l.noValidate=true;for(let f of i){let{wrapper:c,read:m}=wo(f,t);a.push({field:f,read:m}),l.appendChild(c);}let d=t.createElement("p");d.className="veo-form-error",d.style.display="none",l.appendChild(d);let u=t.createElement("div");u.className="veo-guide-actions";let p=t.createElement("button");p.type="submit",p.className="veo-guide-cta",p.textContent=n.ctaText||"Enviar",u.appendChild(p),l.appendChild(u),l.addEventListener("submit",f=>{f.preventDefault(),d.style.display="none";let c={};for(let{field:h,read:g}of a){let v=g();if(v==null||v===""){if(h.required){d.textContent=`Completa "${h.label}"`,d.style.display="block";return}continue}c[h.key]=v;}if(Object.keys(c).length===0){d.textContent="Responde al menos un campo",d.style.display="block";return}p.disabled=true,(e.onFormSubmit??(()=>Promise.resolve(true)))(c).then(h=>{if(!h){p.disabled=false,d.textContent="No se pudo enviar. Prueba de nuevo.",d.style.display="block";return}e.onInteraction({guideId:e.guide.guideId,stepIndex:0,action:"completed"});let g=e.isPreview?e.previewNote??"Vista previa: la respuesta NO se guard\xF3.":null;yo(o,t,g),window.setTimeout(()=>e.onClose(),g?2200:1400);});}),s.appendChild(l),s.appendChild(de(t,r)),o.appendChild(s);}function yo(o,e,t){for(;o.firstChild;)o.removeChild(o.firstChild);let n=e.createElement("div");if(n.className="veo-form-thanks",n.textContent="\u2713 \xA1Gracias por tu respuesta!",o.appendChild(n),t){let i=e.createElement("p");i.className="veo-form-preview-note",i.textContent=t,o.appendChild(i);}}function wo(o,e){let t=e.createElement("div");t.className="veo-form-field";let n=e.createElement("label");switch(n.className="veo-form-label",n.textContent=o.required?`${o.label} *`:o.label,t.appendChild(n),o.type){case "textarea":{let i=e.createElement("textarea");return i.className="veo-form-input",i.rows=3,o.placeholder&&(i.placeholder=o.placeholder),t.appendChild(i),{wrapper:t,read:()=>i.value.trim()}}case "number":{let i=e.createElement("input");return i.type="number",i.className="veo-form-input",o.placeholder&&(i.placeholder=o.placeholder),t.appendChild(i),{wrapper:t,read:()=>i.value.trim()===""?void 0:Number(i.value)}}case "select":{let i=e.createElement("select");i.className="veo-form-input";let r=e.createElement("option");r.value="",r.textContent=o.placeholder||"Elige una opci\xF3n\u2026",i.appendChild(r);for(let s of o.options??[]){let a=e.createElement("option");a.value=s,a.textContent=s,i.appendChild(a);}return t.appendChild(i),{wrapper:t,read:()=>i.value||void 0}}case "radio":{let i=e.createElement("div");i.className="veo-form-options";let r=`veo-${o.key}`,s=[];for(let a of o.options??[]){let l=e.createElement("label");l.className="veo-form-option";let d=e.createElement("input");d.type="radio",d.name=r,d.value=a,s.push(d);let u=e.createElement("span");u.textContent=a,l.appendChild(d),l.appendChild(u),i.appendChild(l);}return t.appendChild(i),{wrapper:t,read:()=>s.find(a=>a.checked)?.value}}case "multiselect":{let i=e.createElement("div");i.className="veo-form-options";let r=[];for(let s of o.options??[]){let a=e.createElement("label");a.className="veo-form-option";let l=e.createElement("input");l.type="checkbox",l.value=s,r.push(l);let d=e.createElement("span");d.textContent=s,a.appendChild(l),a.appendChild(d),i.appendChild(a);}return t.appendChild(i),{wrapper:t,read:()=>{let s=r.filter(a=>a.checked).map(a=>a.value);return s.length>0?s:void 0}}}case "checkbox":{let i=e.createElement("label");i.className="veo-form-option";let r=e.createElement("input");r.type="checkbox";let s=e.createElement("span");return s.textContent=o.placeholder||"S\xED",i.appendChild(r),i.appendChild(s),t.appendChild(i),{wrapper:t,read:()=>r.checked?true:o.required?"":false}}case "yesno":{let i=e.createElement("div");i.className="veo-form-options";let r=`veo-${o.key}`,[s,a]=o.options?.length===2?o.options:["S\xED","No"],l=[];for(let{label:d,value:u}of [{label:s,value:true},{label:a,value:false}]){let p=e.createElement("label");p.className="veo-form-option";let f=e.createElement("input");f.type="radio",f.name=r,l.push({input:f,value:u});let c=e.createElement("span");c.textContent=d,p.appendChild(f),p.appendChild(c),i.appendChild(p);}return t.appendChild(i),{wrapper:t,read:()=>l.find(d=>d.input.checked)?.value}}case "nps":return mn(t,e,0,10,"veo-nps-btn");case "rating":return mn(t,e,1,5,"veo-rating-btn","\u2605");default:{let i=e.createElement("input");return i.type="text",i.className="veo-form-input",o.placeholder&&(i.placeholder=o.placeholder),t.appendChild(i),{wrapper:t,read:()=>i.value.trim()}}}}function mn(o,e,t,n,i,r){let s=e.createElement("div");s.className="veo-form-scale";let a,l=[];for(let d=t;d<=n;d++){let u=e.createElement("button");u.type="button",u.className=i,u.textContent=r??String(d),u.setAttribute("aria-label",String(d)),u.addEventListener("click",()=>{a=d,l.forEach((p,f)=>{let c=r?f+t<=d:f+t===d;p.classList.toggle("veo-scale-active",c);});}),l.push(u),s.appendChild(u);}return o.appendChild(s),{wrapper:o,read:()=>a}}var Ce=class extends b{render(e){let t=e.guide.guideSteps[0];if(!t||(t.fields??[]).length===0)return;let{root:n}=this.createHost();this.applyDesign(t.style);let i=n.ownerDocument??document,r=i.createElement("div");r.className="veo-modal-overlay";let s=i.createElement("div");s.className="veo-modal-card",ot(s,e,i),r.appendChild(s),n.appendChild(r);let a=()=>{e.onInteraction({guideId:e.guide.guideId,stepIndex:0,action:"dismissed"}),e.onClose();};r.addEventListener("click",d=>{d.target===r&&a();});let l=d=>{d.key==="Escape"&&a();};document.addEventListener("keydown",l),this.registerCleanup(()=>document.removeEventListener("keydown",l)),e.onInteraction({guideId:e.guide.guideId,stepIndex:0,action:"shown"});}};var ke=class extends b{async render(e){let t=e.guide.guideSteps[0];if(!t||typeof t.html!="string"||t.html.length===0)return;let n=t.selector??e.guide.activationRules.selector;if(typeof n!="string"||n.length===0)return;let i=await S(n);if(!i)return;let{host:r,root:s}=this.createHost();r.style.display="block";let a=U(t.style);A(i,r,a),this.registerCleanup(N(r,n,a));let l=s.ownerDocument??document,d=l.createElement("div");d.className="veo-custom-inline";let{iframe:u,cleanup:p}=nt(l,t,e,{width:"100%"});this.registerCleanup(p),d.appendChild(u),s.appendChild(d),e.onInteraction({guideId:e.guide.guideId,stepIndex:0,action:"shown"});}};var Se=class extends b{async render(e){let t=e.guide.guideSteps[0];if(!t||(t.fields??[]).length===0)return;let n=t.selector??e.guide.activationRules.selector;if(typeof n!="string"||n.length===0)return;let i=await S(n);if(!i)return;let{host:r,root:s}=this.createHost();r.style.display="block";let a=U(t.style);A(i,r,a),this.registerCleanup(N(r,n,a)),this.applyDesign(t.style);let l=s.ownerDocument??document,d=l.createElement("div");d.className="veo-inline",ot(d,e,l),s.appendChild(d),e.onInteraction({guideId:e.guide.guideId,stepIndex:0,action:"shown"});}};var Ee=class extends b{async render(e){let t=e.guide.guideSteps[0];if(!t)return;let n=t.selector??e.guide.activationRules.selector;if(typeof n!="string"||n.length===0)return;let i=await S(n);if(!i)return;let{host:r,root:s}=this.createHost();r.style.display="block";let a=U(t.style);A(i,r,a),this.registerCleanup(N(r,n,a)),this.applyDesign(t.style);let l=s.ownerDocument??document,d=l.createElement("div");d.className="veo-inline";let u=(f,c,m)=>{e.onInteraction({guideId:e.guide.guideId,stepIndex:0,action:f,...m?{metadata:m}:{}}),c&&window.open(c,"_blank","noopener,noreferrer"),e.onClose();},p=P(t,l,{onCtaClick:(f,c,m)=>{u("cta_clicked",f==="url"?c:void 0,m),f==="guide"&&c&&e.onOpenGuide?.(c);},onDismiss:()=>u("dismissed")});d.appendChild(p),s.appendChild(d),this.liveContainer=d,this.liveContent=p,this.liveKey=`${n}|${a}`,this.liveBuild=f=>P(f,l,{onCtaClick:(c,m,h)=>{u("cta_clicked",c==="url"?m:void 0,h),c==="guide"&&m&&e.onOpenGuide?.(m);},onDismiss:()=>u("dismissed")}),e.onInteraction({guideId:e.guide.guideId,stepIndex:0,action:"shown"});}liveKeyOf(e){return `${e.selector??""}|${U(e.style)}`}};function hn(o){return o.style?.backdrop===false?"veo-modal-overlay veo-modal-overlay--none":"veo-modal-overlay"}var ee=class extends b{constructor(){super(...arguments);this.overlay=null;}render(t){let n=t.nav?.stepIndex??0,i=t.guide.guideSteps[n];if(!i)return;let{root:r}=this.createHost();this.applyDesign(i.style);let s=r.ownerDocument??document,a=s.createElement("div");a.className=hn(i),this.overlay=a;let l=s.createElement("div");l.className="veo-modal-card";let d=(c,m,h)=>{t.onInteraction({guideId:t.guide.guideId,stepIndex:n,action:c,...h?{metadata:h}:{}}),m&&window.open(m,"_blank","noopener,noreferrer"),t.onClose();},u=()=>{t.nav?t.nav.callbacks.onSkip():d("dismissed");},p=t.nav?we(i,t.nav.stepIndex,t.nav.totalSteps,s,t.nav.callbacks):P(i,s,{onCtaClick:(c,m,h)=>{d("cta_clicked",c==="url"?m:void 0,h),c==="guide"&&m&&t.onOpenGuide?.(m);},onDismiss:()=>d("dismissed")});l.appendChild(p),a.appendChild(l),r.appendChild(a),t.nav||(this.liveContainer=l,this.liveContent=p,this.liveBuild=c=>P(c,s,{onCtaClick:(m,h,g)=>{d("cta_clicked",m==="url"?h:void 0,g),m==="guide"&&h&&t.onOpenGuide?.(h);},onDismiss:()=>d("dismissed")})),a.addEventListener("click",c=>{c.target===a&&u();});let f=c=>{c.key==="Escape"&&u();};document.addEventListener("keydown",f),this.registerCleanup(()=>document.removeEventListener("keydown",f)),t.nav||t.onInteraction({guideId:t.guide.guideId,stepIndex:0,action:"shown"});}onLiveUpdate(t){this.overlay&&(this.overlay.className=hn(t));}destroy(){this.overlay=null,super.destroy();}};var Re=class extends b{constructor(){super(...arguments);this.side="bottom";this.reposition=null;}async render(t){let n=t.guide.guideSteps[0];if(!n)return;let i=n.selector??t.guide.activationRules.selector;if(typeof i!="string"||i.length===0)return;let r=await S(i);if(!r)return;let s=n.style?.tooltipPlacement;this.side=s==="top"||s==="left"||s==="right"?s:"bottom";let{root:a}=this.createHost();this.applyDesign(n.style);let l=a.ownerDocument??document,d=l.createElement("div");d.className="veo-tooltip";let u=(h,g,v)=>{t.onInteraction({guideId:t.guide.guideId,stepIndex:0,action:h,...v?{metadata:v}:{}}),g&&window.open(g,"_blank","noopener,noreferrer"),t.onClose();},p=P(n,l,{onCtaClick:(h,g,v)=>{u("cta_clicked",h==="url"?g:void 0,v),h==="guide"&&g&&t.onOpenGuide?.(g);},onDismiss:()=>u("dismissed")});d.appendChild(p);let f=l.createElement("div");f.className="veo-tooltip-arrow",d.appendChild(f),a.appendChild(d);let c=async()=>{let{x:h,y:g,placement:v,middlewareData:w}=await W(r,d,{placement:this.side,middleware:[$(10),F(),H({padding:8}),ge({element:f})]});d.style.left=`${h}px`,d.style.top=`${g}px`,ve(f,v,w.arrow);};await c();let m=()=>{c();};this.reposition=m,window.addEventListener("scroll",m,true),window.addEventListener("resize",m),this.registerCleanup(()=>{window.removeEventListener("scroll",m,true),window.removeEventListener("resize",m);}),this.liveContainer=d,this.liveContent=p,this.liveKey=i,this.liveBuild=h=>P(h,l,{onCtaClick:(g,v,w)=>{u("cta_clicked",g==="url"?v:void 0,w),g==="guide"&&v&&t.onOpenGuide?.(v);},onDismiss:()=>u("dismissed")}),t.onInteraction({guideId:t.guide.guideId,stepIndex:0,action:"shown"});}liveKeyOf(t){return t.selector??""}onLiveUpdate(t){let n=t.style?.tooltipPlacement;this.side=n==="top"||n==="left"||n==="right"?n:"bottom",this.reposition?.();}};var Ie=class extends b{async render(e){let t=e.guide.guideSteps[e.currentStepIndex];if(!t)return false;let n=t.selector??e.guide.activationRules.selector;if(typeof n!="string"||n.length===0)return false;let i=await S(n,5e3);if(!i)return false;let r=t.style?.tooltipPlacement,s=r==="top"||r==="left"||r==="right"?r:"bottom",{root:a}=this.createHost();this.applyDesign(t.style);let l=a.ownerDocument??document,d=l.createElement("div");d.className="veo-walkthrough";let u=we(t,e.currentStepIndex,e.guide.guideSteps.length,l,e.callbacks);d.appendChild(u);let p=l.createElement("div");p.className="veo-walkthrough-arrow",d.appendChild(p),a.appendChild(d);let f=async()=>{let{x:m,y:h,placement:g,middlewareData:v}=await W(i,d,{placement:s,middleware:[$(10),F(),H({padding:8}),ge({element:p})]});d.style.left=`${m}px`,d.style.top=`${h}px`,ve(p,g,v.arrow);};await f();let c=()=>{f();};return window.addEventListener("scroll",c,true),window.addEventListener("resize",c),this.registerCleanup(()=>{window.removeEventListener("scroll",c,true),window.removeEventListener("resize",c);}),true}};var it=class{constructor(e){this.state=null;this.storageKey=`${Ct}${e}`,this.state=this.load(),this.state&&this.isAbandoned(this.state)&&this.clear();}current(){return this.state?this.isAbandoned(this.state)?(this.clear(),null):this.state:null}hasActive(){return this.current()!==null}start(e,t){let n=Date.now();return this.state={guideId:e,totalSteps:t,currentStepIndex:0,startedAt:n,lastProgressAt:n},this.persist(),this.state}advance(){if(!this.state)return null;let e=this.state.currentStepIndex+1;return e>=this.state.totalSteps?null:(this.state={...this.state,currentStepIndex:e,lastProgressAt:Date.now()},this.persist(),this.state)}back(){return this.state?this.state.currentStepIndex===0?this.state:(this.state={...this.state,currentStepIndex:this.state.currentStepIndex-1,lastProgressAt:Date.now()},this.persist(),this.state):null}clear(){if(this.state=null,!(typeof localStorage>"u"))try{localStorage.removeItem(this.storageKey);}catch{}}isAbandoned(e){return Date.now()-e.lastProgressAt>18e5}load(){if(typeof localStorage>"u")return null;try{let e=localStorage.getItem(this.storageKey);if(!e)return null;let t=JSON.parse(e);if(!t||typeof t!="object")return null;let n=t;return typeof n.guideId!="string"||typeof n.totalSteps!="number"||typeof n.currentStepIndex!="number"||typeof n.startedAt!="number"||typeof n.lastProgressAt!="number"?null:n}catch{return null}}persist(){if(!(typeof localStorage>"u"||!this.state))try{localStorage.setItem(this.storageKey,JSON.stringify(this.state));}catch{}}};var xo=3e4,Co={shown:"shown",dismissed:"dismissed",cta_clicked:null,step_advanced:null,step_back:null,completed:"completed"},rt=class{constructor(e,t){this.client=e;this.activeRenderers=new Set;this.activeByGuideId=new Map;this.dispatched=new Set;this.activeWalkthroughRenderer=null;this.activeWalkthroughGuide=null;this.resolveCache=null;this.inflightResolve=null;this.armedTriggers=new Map;if(this.debug=t.debug===true,this.apiUrl=t.apiUrl,this.apiKey=t.apiKey,this.resolver=t.resolver??new Fe(t.apiUrl,t.apiKey,this.debug),t.trackerQueue)this.trackerQueue=t.trackerQueue;else {let i=new We(t.apiUrl,t.apiKey);this.trackerQueue=new ze({client:i,flushIntervalMs:3e3,batchSize:5,maxRetries:3,onError:(r,s)=>{this.debug&&console.warn(`[veo] dropped guide interaction after retries: guideId=${s.guideId} action=${s.payload.action}`,r);}});}let n=Et(t.apiKey);this.frequencyCache=t.frequencyCache??new He(n),this.walkthroughState=t.walkthroughState??new it(n);}get pendingInteractions(){return this.trackerQueue.size}clearFrequencyCache(){this.frequencyCache.clear();}clearWalkthroughState(){this.tearDownWalkthrough();}async checkGuides(e,t){let n=this.client.getEndUserId();if(!n){this.debug&&console.log("[veo] guides: skipped, no endUserId yet");return}if(await this.tryResumeWalkthrough(n,t,e))return;let i;try{i=await this.resolveGuides(n,e);}catch(r){this.debug&&console.error("[veo] guides resolver threw:",r);return}this.debug&&console.log(`[veo] guides: ${i.length} eligible at ${e}`),this.disarmTriggers();for(let r of i){let s=r.activationRules.trigger;if((s==="on_click"||s==="on_hover")&&r.activationRules.selector){this.armInteractionTrigger(r,n,t,e);continue}await this.showGuide(r,n,t,e);}}async showGuide(e,t,n,i){if(this.frequencyCache.shouldFilter(e.guideId,e.displayFrequency)){this.debug&&console.log(`[veo] guides: filtered locally guideId=${e.guideId}`);return}if(this.activeByGuideId.has(e.guideId)){this.debug&&console.log(`[veo] guides: already shown guideId=${e.guideId}`);return}if(e.guideType==="walkthrough"&&e.guideSteps.length>1){if(this.walkthroughState.hasActive()){this.debug&&console.log(`[veo] guides: walkthrough ${e.guideId} skipped (another active)`);return}await this.startWalkthrough(e,t,n,i);return}this.runSingleStepRender(e,n,i);}armInteractionTrigger(e,t,n,i){if(this.frequencyCache.shouldFilter(e.guideId,e.displayFrequency)||this.activeByGuideId.has(e.guideId)||this.armedTriggers.has(e.guideId))return;let r=e.activationRules.selector,s=e.activationRules.trigger==="on_hover"?"mouseover":"click",a=d=>{let u=d.target;if(u instanceof Element){try{if(!u.closest(r))return}catch{return}l(),this.showGuide(e,t,n,i);}},l=()=>{document.removeEventListener(s,a,true),this.armedTriggers.delete(e.guideId);};document.addEventListener(s,a,true),this.armedTriggers.set(e.guideId,l),this.debug&&console.log(`[veo] guides: armed ${s} trigger for ${e.guideId} on ${r}`);}disarmTriggers(){for(let e of this.armedTriggers.values())e();this.armedTriggers.clear();}async resolveGuides(e,t){let n=`${e}
|
|
427
|
+
${t}`,i=Date.now();if(this.resolveCache?.key===n&&i-this.resolveCache.at<xo)return this.debug&&console.log("[veo] guides: resolve cache hit"),this.resolveCache.guides;if(this.inflightResolve?.key===n)return this.inflightResolve.promise;let r=this.resolver.resolve(e,t);this.inflightResolve={key:n,promise:r};try{let s=await r;return this.resolveCache={key:n,at:Date.now(),guides:s},s}finally{this.inflightResolve?.key===n&&(this.inflightResolve=null);}}destroy(){for(let e of this.activeRenderers)try{e.destroy();}catch(t){this.debug&&console.error("[veo] renderer destroy failed:",t);}if(this.activeRenderers.clear(),this.activeByGuideId.clear(),this.activeWalkthroughRenderer){try{this.activeWalkthroughRenderer.destroy();}catch{}this.activeWalkthroughRenderer=null,this.activeWalkthroughGuide=null;}this.disarmTriggers(),this.dispatched.clear(),this.resolveCache=null,this.inflightResolve=null,this.trackerQueue.destroy();}runSingleStepRender(e,t,n){let i=this.createSingleStepRenderer(e.guideType);if(!i)return;this.activeByGuideId.set(e.guideId,i);let r=e.activationRules.delayMs??0;window.setTimeout(()=>this.mountSingleStepRenderer(e,i,t,n),r);}mountSingleStepRenderer(e,t,n,i){this.activeRenderers.add(t),this.activeByGuideId.set(e.guideId,t);let r=()=>{t.destroy(),this.activeRenderers.delete(t),this.activeByGuideId.get(e.guideId)===t&&this.activeByGuideId.delete(e.guideId);},s=u=>{this.handleInteraction(e,n,i,u);},a=(u,p)=>{this.client.track(u,p);},l=u=>this.submitFormResponse(e.guideId,u),d=u=>{this.openGuideById(u,n,i);};try{t.render({guide:e,onInteraction:s,onClose:r,onTrack:a,onFormSubmit:l,onOpenGuide:d});}catch(u){this.debug&&console.error("[veo] renderer.render threw:",u),this.activeRenderers.delete(t),this.activeByGuideId.get(e.guideId)===t&&this.activeByGuideId.delete(e.guideId);}}async openGuideById(e,t,n){if(this.activeByGuideId.has(e))return;let i=await this.resolver.fetchById(e);if(!i){this.debug&&console.warn(`[veo] guides: chained guide ${e} not found`);return}let r=this.client.getEndUserId()??this.client.getAnonymousId();if(i.guideType==="walkthrough"&&i.guideSteps.length>1){this.walkthroughState.hasActive()||await this.startWalkthrough(i,r,t,n);return}this.runSingleStepRender(i,t,n);}async tryResumeWalkthrough(e,t,n){let i=this.walkthroughState.current();if(!i)return false;let r=await this.resolver.fetchById(i.guideId);if(!r||r.guideType!=="walkthrough")return this.debug&&console.log(`[veo] guides: walkthrough ${i.guideId} no longer available, cleaning up`),this.tearDownWalkthrough(),true;let s=Math.min(i.currentStepIndex,r.guideSteps.length-1);return await this.renderWalkthroughStep(r,s,e,t,n),true}async startWalkthrough(e,t,n,i){this.walkthroughState.start(e.guideId,e.guideSteps.length),await this.renderWalkthroughStep(e,0,t,n,i)&&(this.enqueueInteractionOnce(e.guideId,t,n,i,"shown",0),this.frequencyCache.record(e.guideId,"shown"));}async renderWalkthroughStep(e,t,n,i,r){this.activeWalkthroughRenderer&&(this.activeWalkthroughRenderer.destroy(),this.activeWalkthroughRenderer=null),this.activeWalkthroughGuide=e;let s={onNext:()=>this.handleWalkthroughNext(n,i,r),onBack:()=>this.handleWalkthroughBack(n,i,r),onSkip:()=>this.handleWalkthroughSkip(n,i,r),onComplete:()=>this.handleWalkthroughComplete(n,i,r)},a=e.guideSteps[t],l=ko(a);if(l==="modal"||l==="banner"){let p=l==="modal"?new ee:new Z;try{p.render({guide:e,onInteraction:()=>{},onClose:()=>{},nav:{stepIndex:t,totalSteps:e.guideSteps.length,callbacks:s}});}catch(f){return this.debug&&console.error("[veo] sequence renderer threw:",f),this.tearDownWalkthrough(),false}return this.activeWalkthroughRenderer=p,true}let d=new Ie,u=false;try{u=await d.render({guide:e,currentStepIndex:t,callbacks:s});}catch(p){this.debug&&console.error("[veo] walkthrough renderer threw:",p);}return u?(this.activeWalkthroughRenderer=d,true):(this.debug&&console.warn(`[veo] walkthrough ${e.guideId} step ${t} could not render, cancelling`),this.tearDownWalkthrough(),false)}handleWalkthroughNext(e,t,n){let i=this.activeWalkthroughGuide;if(!i)return;let r=this.walkthroughState.advance();if(!r){this.handleWalkthroughComplete(e,t,n);return}this.enqueueInteraction(i.guideId,e,t,n,"step_advanced",r.currentStepIndex),this.renderWalkthroughStep(i,r.currentStepIndex,e,t,n);}handleWalkthroughBack(e,t,n){let i=this.activeWalkthroughGuide;if(!i)return;let r=this.walkthroughState.current();if(!r||r.currentStepIndex===0)return;let s=this.walkthroughState.back();s&&(this.enqueueInteraction(i.guideId,e,t,n,"step_back",s.currentStepIndex),this.renderWalkthroughStep(i,s.currentStepIndex,e,t,n));}handleWalkthroughSkip(e,t,n){let i=this.activeWalkthroughGuide,r=this.walkthroughState.current();!i||!r||(this.enqueueInteraction(i.guideId,e,t,n,"dismissed",r.currentStepIndex),this.frequencyCache.record(i.guideId,"dismissed"),this.tearDownWalkthrough());}handleWalkthroughComplete(e,t,n){let i=this.activeWalkthroughGuide,r=this.walkthroughState.current();!i||!r||(this.enqueueInteraction(i.guideId,e,t,n,"completed",r.currentStepIndex),this.frequencyCache.record(i.guideId,"completed"),this.tearDownWalkthrough());}tearDownWalkthrough(){if(this.activeWalkthroughRenderer)try{this.activeWalkthroughRenderer.destroy();}catch{}this.activeWalkthroughRenderer=null,this.activeWalkthroughGuide=null,this.walkthroughState.clear();}handleInteraction(e,t,n,i){let r=i.metadata?.buttonId?`:${i.metadata.buttonId}`:"",s=`${e.guideId}:${i.action}${r}`;if(this.dispatched.has(s)){this.debug&&console.log(`[veo] guides: dedup hit ${s}`);return}this.dispatched.add(s);let a=Co[i.action];a&&this.frequencyCache.record(e.guideId,a);let l=this.client.getEndUserId();if(!l){this.debug&&console.warn("[veo] guides: interaction without endUserId \u2014 skipping enqueue");return}this.trackerQueue.enqueue({guideId:e.guideId,payload:{endUserId:l,sessionId:t,action:i.action,stepIndex:i.stepIndex,pageUrl:n,pagePath:gn(n),...i.metadata?{metadata:i.metadata}:{}}});}enqueueInteraction(e,t,n,i,r,s){this.trackerQueue.enqueue({guideId:e,payload:{endUserId:t,sessionId:n,action:r,stepIndex:s,pageUrl:i,pagePath:gn(i)}});}enqueueInteractionOnce(e,t,n,i,r,s){let a=`${e}:${r}:${s}`;this.dispatched.has(a)||(this.dispatched.add(a),this.enqueueInteraction(e,t,n,i,r,s));}createSingleStepRenderer(e){switch(e){case "modal":return new ee;case "banner":return new Z;case "tooltip":return new Re;case "custom":return new xe;case "inline":return new Ee;case "inline-custom":return new ke;case "form":return new Ce;case "inline-form":return new Se;case "badge":return new ye;case "composite":return new be;case "walkthrough":return null;default:return null}}async submitFormResponse(e,t){let n=this.client.getEndUserId()??this.client.getAnonymousId();try{let i=await fetch(`${this.apiUrl}/v1/guides/${e}/form-response`,{method:"POST",headers:{"Content-Type":"application/json","X-Api-Key":this.apiKey},body:JSON.stringify({endUserId:n,answers:t})});return !i.ok&&this.debug&&console.warn("[veo] form-response respondi\xF3",i.status),i.ok}catch(i){return this.debug&&console.warn("[veo] form-response fall\xF3:",i),false}}};function gn(o){try{return new URL(o).pathname}catch{return "/"}}function ko(o){let e=o?.style?.render;return typeof e=="string"?e:"walkthrough"}var So="__veo_preview__",vt=class{constructor(){this.singleStep=null;this.walkthrough=null;this.walkthroughGuide=null;this.walkthroughIndex=0;this.input=null;}preview(e){let t=e.guideSteps[0];if(this.singleStep&&this.input&&e.guideType===this.input.guideType&&e.guideType!=="walkthrough"&&t&&this.singleStep.updateStep(t))return this.input=e,{close:()=>this.close(),ready:Promise.resolve({rendered:true}),host:()=>this.activeHost()};this.close(),this.input=e;let n=Eo(e),i=typeof e.startStepIndex=="number"?e.startStepIndex:0;if(n.guideType==="composite"){let s=Math.min(Math.max(0,i),n.guideSteps.length-1),a=n.guideSteps[s];a&&(n.guideSteps=[a]);let l=this.renderSingleStep(n);return {close:()=>this.close(),ready:l,host:()=>this.activeHost()}}let r=n.guideType==="walkthrough"?this.startWalkthrough(n,i):this.renderSingleStep(n);return {close:()=>this.close(),ready:r,host:()=>this.activeHost()}}activeHost(){return this.singleStep?this.singleStep.hostElement():this.walkthrough instanceof b?this.walkthrough.hostElement():null}close(){this.singleStep&&(ue(this.singleStep),this.singleStep=null),this.walkthrough&&(ue(this.walkthrough),this.walkthrough=null),this.walkthroughGuide=null,this.walkthroughIndex=0,this.input=null;}async renderSingleStep(e){let t=Ro(e.guideType);if(!t)return {rendered:false};this.singleStep=t;let n=false;try{await t.render({guide:e,onInteraction:i=>{i.action==="shown"&&(n=!0);},onClose:()=>this.close(),onTrack:()=>{},onOpenGuide:()=>{},onFormSubmit:this.input?.formSubmit??(()=>Promise.resolve(!0)),isPreview:!0,...this.input?.formSubmit&&this.input.formSubmitNote!==void 0?{previewNote:this.input.formSubmitNote}:{}});}catch{return this.close(),{rendered:false}}return this.singleStep!==t?(ue(t),{rendered:false}):{rendered:n}}async startWalkthrough(e,t=0){if(e.guideSteps.length===0)return {rendered:false};this.walkthroughGuide=e;let n=Math.min(Math.max(0,Math.floor(t)),e.guideSteps.length-1);return this.walkthroughIndex=n,{rendered:await this.renderWalkthroughStep(n)}}async renderWalkthroughStep(e){let t=this.walkthroughGuide;if(!t)return false;this.walkthrough&&(ue(this.walkthrough),this.walkthrough=null);let n={onNext:()=>{let l=this.walkthroughIndex+1;if(l>=t.guideSteps.length){this.close();return}this.walkthroughIndex=l,this.renderWalkthroughStep(l);},onBack:()=>{let l=this.walkthroughIndex-1;l<0||(this.walkthroughIndex=l,this.renderWalkthroughStep(l));},onSkip:()=>this.close(),onComplete:()=>this.close()},r=t.guideSteps[e]?.style?.render;if(r==="modal"||r==="banner"){let l=r==="modal"?new ee:new Z;try{l.render({guide:t,onInteraction:()=>{},onClose:()=>this.close(),nav:{stepIndex:e,totalSteps:t.guideSteps.length,callbacks:n}});}catch{return ue(l),false}return this.walkthroughGuide!==t?(ue(l),false):(this.walkthrough=l,true)}let s=new Ie,a=false;try{a=await s.render({guide:t,currentStepIndex:e,callbacks:n});}catch{a=false;}return !a||this.walkthroughGuide!==t?(ue(s),false):(this.walkthrough=s,true)}},st=null;function at(o){return $e()?(st||(st=new vt),st.preview(o)):{close:()=>{},ready:Promise.resolve({rendered:false}),host:()=>null}}function vn(){st?.close();}function Eo(o){let e=o.activationRules?.selector,t={url:o.activationRules?.url??{type:"prefix",pattern:"/"},trigger:"immediate",...e!==void 0?{selector:e}:{}};return {guideId:So,guideName:o.guideName??"Preview",guideType:o.guideType,guideSteps:o.guideSteps,activationRules:t,displayFrequency:"always",displayPriority:0}}function Ro(o){switch(o){case "modal":return new ee;case "banner":return new Z;case "tooltip":return new Re;case "custom":return new xe;case "inline":return new Ee;case "inline-custom":return new ke;case "form":return new Ce;case "inline-form":return new Se;case "badge":return new ye;case "composite":return new be;case "walkthrough":return null;default:return null}}function ue(o){try{o.destroy();}catch{}}var lt=null;async function yn(o){if(!$e())return null;lt?.teardown();let e=null;try{let a=await fetch(`${o.apiUrl}/v1/guides/preview-resolve`,{method:"POST",headers:{"Content-Type":"application/json","X-Api-Key":o.apiKey},body:JSON.stringify({token:o.token})});a.ok?e=(await a.json()).guide??null:o.debug&&console.warn("[veo] preview-resolve respondi\xF3",a.status);}catch(a){o.debug&&console.warn("[veo] preview-resolve fall\xF3:",a);}let t=async a=>{if(!e)return false;let l=window.veo,d=l?.getEndUserId?.()??l?.getAnonymousId?.()??null;if(!d)return false;try{return (await fetch(`${o.apiUrl}/v1/guides/${e.guideId}/form-response`,{method:"POST",headers:{"Content-Type":"application/json","X-Api-Key":o.apiKey},body:JSON.stringify({endUserId:d,answers:a})})).ok}catch{return false}},n=null,i=()=>{e&&(n?.close(),n=at({guideType:e.guideType,guideSteps:e.guideSteps,activationRules:e.activationRules,guideName:e.guideName,formSubmit:t,formSubmitNote:"Vista previa: guardado en TU usuario para probar el flujo."}));},r=Io({label:e?`Vista previa: ${e.guideName}`:"Link de preview inv\xE1lido o vencido",error:!e,onReshow:e?i:null,onClose:()=>s.teardown()}),s={teardown(){n?.close(),n=null,r.remove(),lt===s&&(lt=null);}};return lt=s,i(),s}function Io(o){let e=document.createElement("div");e.setAttribute("data-veo-preview-chip","");let t=e.attachShadow({mode:"open"}),n=document.createElement("style");n.textContent=`
|
|
399
428
|
.chip { position: fixed; bottom: 16px; right: 16px; z-index: 2147483647;
|
|
400
429
|
display: flex; align-items: center; gap: 8px; padding: 8px 12px;
|
|
401
430
|
background: #111827; color: #f9fafb; border-radius: 9999px;
|
|
@@ -405,5 +434,5 @@ ${t}`,i=Date.now();if(this.resolveCache?.key===o&&i-this.resolveCache.at<go)retu
|
|
|
405
434
|
button { all: unset; cursor: pointer; padding: 2px 6px; border-radius: 9999px;
|
|
406
435
|
font-size: 12px; line-height: 1; }
|
|
407
436
|
button:hover { background: rgba(255,255,255,.15); }
|
|
408
|
-
`,t.appendChild(
|
|
437
|
+
`,t.appendChild(n);let i=document.createElement("div");i.className=o.error?"chip error":"chip";let r=document.createElement("span");if(r.className="label",r.textContent=o.label,i.appendChild(r),o.onReshow){let a=document.createElement("button");a.textContent="\u21BB",a.title="Volver a mostrar la gu\xEDa",a.addEventListener("click",o.onReshow),i.appendChild(a);}let s=document.createElement("button");return s.textContent="\u2715",s.title="Salir de la vista previa",s.addEventListener("click",o.onClose),i.appendChild(s),t.appendChild(i),document.body.appendChild(e),{remove:()=>e.remove()}}function To(o){return {name:"guides",install(e){if(!yt())return;let t=new rt(e,o);window.__veoGuides={controller:t},e.on("identify",({sessionId:n})=>{t.checkGuides(window.location.href,n);}),e.on("pageview",({url:n,sessionId:i})=>{t.checkGuides(n,i);}),t.checkGuides(window.location.href,e.getSessionId());}}}exports.closeGuidePreview=vn;exports.guidesPlugin=To;exports.previewGuide=at;exports.runPreviewMode=yn;return exports;})({});//# sourceMappingURL=veo-guides.js.map
|
|
409
438
|
//# sourceMappingURL=veo-guides.js.map
|