@frigade/react 1.35.39 → 1.35.40

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/lib/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- var Fa=Object.create;var Fo=Object.defineProperty,ka=Object.defineProperties,Pa=Object.getOwnPropertyDescriptor,va=Object.getOwnPropertyDescriptors,Ba=Object.getOwnPropertyNames,Go=Object.getOwnPropertySymbols,Ea=Object.getPrototypeOf,Pr=Object.prototype.hasOwnProperty,ui=Object.prototype.propertyIsEnumerable;var mi=(e,t,o)=>t in e?Fo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,F=(e,t)=>{for(var o in t||(t={}))Pr.call(t,o)&&mi(e,o,t[o]);if(Go)for(var o of Go(t))ui.call(t,o)&&mi(e,o,t[o]);return e},G=(e,t)=>ka(e,va(t));var fi=e=>typeof e=="symbol"?e:e+"",Ke=(e,t)=>{var o={};for(var n in e)Pr.call(e,n)&&t.indexOf(n)<0&&(o[n]=e[n]);if(e!=null&&Go)for(var n of Go(e))t.indexOf(n)<0&&ui.call(e,n)&&(o[n]=e[n]);return o};var Aa=(e,t)=>{for(var o in t)Fo(e,o,{get:t[o],enumerable:!0})},gi=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Ba(t))!Pr.call(e,i)&&i!==o&&Fo(e,i,{get:()=>t[i],enumerable:!(n=Pa(t,i))||n.enumerable});return e};var f=(e,t,o)=>(o=e!=null?Fa(Ea(e)):{},gi(t||!e||!e.__esModule?Fo(o,"default",{value:e,enumerable:!0}):o,e)),Oa=e=>gi(Fo({},"__esModule",{value:!0}),e);var U=(e,t,o)=>new Promise((n,i)=>{var r=d=>{try{p(o.next(d))}catch(l){i(l)}},s=d=>{try{p(o.throw(d))}catch(l){i(l)}},p=d=>d.done?n(d.value):Promise.resolve(d.value).then(r,s);p((o=o.apply(e,t)).next())});var Id={};Aa(Id,{Box:()=>co,Button:()=>wa,CheckBox:()=>ft,FlowType:()=>Yo,FormLabel:()=>Ft,FormTextField:()=>sr,FrigadeAnnouncement:()=>ya,FrigadeBanner:()=>oa,FrigadeChecklist:()=>br,FrigadeDefaultAppearance:()=>ut,FrigadeEmbeddedTip:()=>Jl,FrigadeForm:()=>zr,FrigadeGuide:()=>vl,FrigadeHeroChecklist:()=>fl,FrigadeNPSSurvey:()=>pa,FrigadeProgressBadge:()=>kl,FrigadeProvider:()=>Wn,FrigadeSupportWidget:()=>Gl,FrigadeTour:()=>Ll,ProgressBar:()=>Ye,ProgressRing:()=>Ht,Text:()=>Fr,tokens:()=>gr,useFlowOpens:()=>We,useFlowResponses:()=>oo,useFlows:()=>te,useOrganization:()=>mr,useUser:()=>io,useUserFlowStates:()=>qe});module.exports=Oa(Id);var oe=f(require("react")),$n=require("styled-components");var Ce=f(require("react"));var ot=require("react");var zt=f(require("react"));var xi="1.35.39 ";var tt="NOT_STARTED_STEP",ee="COMPLETED_FLOW",Ko="ABORTED_FLOW",_t="STARTED_FLOW",Ze="NOT_STARTED_FLOW",st="COMPLETED_STEP",qo="STARTED_STEP";function dt(){let{publicApiKey:e,userId:t,apiUrl:o}=zt.default.useContext(Q);return{config:(0,zt.useMemo)(()=>({headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Frigade-SDK-Version":xi,"X-Frigade-SDK-Platform":"React"}}),[e,t]),apiUrl:(0,zt.useMemo)(()=>`${o}/v1/public/`,[o])}}var Ia="frigade-last-call-at-",Na="frigade-last-call-data-";function Zt(){let{shouldGracefullyDegrade:e,readonly:t}=zt.default.useContext(Q);return(o,n)=>U(this,null,function*(){if(t&&(n.method==="POST"||n.method==="PUT"||n.method==="DELETE"))return Qt();if(e)return console.log(`Skipping ${o} call to Frigade due to error`),Qt();let i=Ia+o,r=Na+o;if(window&&window.localStorage&&n&&n.body&&n.method==="POST"){let p=window.localStorage.getItem(i),d=window.localStorage.getItem(r);if(p&&d&&d==n.body){let l=new Date(p);if(new Date().getTime()-l.getTime()<1e3)return Qt()}window.localStorage.setItem(i,new Date().toISOString()),window.localStorage.setItem(r,n.body)}let s;try{s=yield fetch(o,n)}catch(p){return Qt(p)}return s?s.ok?s:Qt(s.statusText):Qt()})}function Qt(e){return e&&console.log("Call to Frigade failed",e),{json:()=>({})}}function Rt(){let{publicApiKey:e,shouldGracefullyDegrade:t}=zt.default.useContext(Q);function o(){return t?(console.error("Frigade hooks cannot be used when Frigade SDK has failed to initialize"),!1):e?!0:(console.error("Frigade hooks cannot be used outside the scope of FrigadeProvider"),!1)}return{verifySDKInitiated:o}}var ko=require("react");var to=require("react");var Ci=f(require("swr"));var hi=require("react");function We(){let{openFlowStates:e,setOpenFlowStates:t,hasActiveFullPageFlow:o,setCompletedFlowsToKeepOpenDuringSession:n,completedFlowsToKeepOpenDuringSession:i}=(0,hi.useContext)(Q);function r(c,x=!1){var b;return(b=e[c])!=null?b:x}function s(c,x){t(b=>G(F({},b),{[c]:x}))}function p(c){t(x=>{let w=x,{[c]:b}=w,k=Ke(w,[fi(c)]);return F({},k)})}function d(c){i.includes(c)||n(x=>[...x,c])}function l(c){return i.includes(c)}function m(c){return Object.entries(e).some(([x,b])=>b&&x!=c)||o}return{getOpenFlowState:r,setOpenFlowState:s,resetOpenFlowState:p,hasOpenModals:m,setKeepCompletedFlowOpenDuringSession:d,shouldKeepCompletedFlowOpenDuringSession:l}}var yi=f(require("swr/immutable"));var eo=f(require("core-js-pure/actual/structured-clone"));function vr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Fe(...e){let t=e.shift(),o=e.length===1?e[0]:Fe(...e);if(!vr(t)||!vr(o))throw new Error("deepmerge can only merge Objects");let n=(0,eo.default)(t);return Object.entries(o).forEach(([i,r])=>{vr(r)?n[i]!==void 0?Object.assign(n,{[i]:Fe(n[i],(0,eo.default)(r))}):Object.assign(n,{[i]:(0,eo.default)(r)}):Array.isArray(r)?n[i]!==void 0?Object.assign(n,{[i]:[...n[i],...(0,eo.default)(r)]}):Object.assign(n,{[i]:(0,eo.default)(r)}):Object.assign(n,{[i]:r})}),n}var La="unknown";function qe(){let{config:e,apiUrl:t}=dt(),{publicApiKey:o,userId:n,organizationId:i,flows:r,setShouldGracefullyDegrade:s,readonly:p}=(0,to.useContext)(Q),{resetOpenFlowState:d}=We(),[l,m]=(0,to.useState)(!1),c={data:r.map(g=>({flowId:g.id,flowState:ee,lastStepId:null,userId:n,foreignUserId:n,stepStates:{},shouldTrigger:!1}))},x=g=>fetch(g,e).then(v=>{if(v.ok)return v.json();throw new Error("Failed to fetch user flow states")}).catch(v=>(console.log(`Error fetching ${g}: ${v}. Will gracefully degrade and hide Frigade`),s(!0),c)),b=o&&r&&n?`${t}userFlowStates?foreignUserId=${encodeURIComponent(n)}${i?`&foreignUserGroupId=${encodeURIComponent(i)}`:""}`:null,{data:k,isLoading:w,mutate:h,error:B}=p?(0,yi.default)(b,x):(0,Ci.default)(b,x,{revalidateOnFocus:!0,revalidateIfStale:!0,keepPreviousData:!0,revalidateOnMount:!0,errorRetryInterval:1e4,errorRetryCount:3,onError:()=>c,onLoadingSlow:()=>c}),S=k==null?void 0:k.data;(0,to.useEffect)(()=>{!l&&!w&&S&&m(!0)},[S,l,w]);function A(g){return U(this,null,function*(){if(S&&!p){let v=S.find(L=>L.flowId===g);v&&v.flowState!==ee&&(v.flowState=ee),yield h(Promise.resolve(Fe(k,{data:S})),{optimisticData:Fe(k,{data:S}),revalidate:!1,rollbackOnError:!1})}})}function O(g,v,L){return U(this,null,function*(){if(S){let D=S.find(N=>N.flowId===g);D&&(D.stepStates[v]=L,D.flowState=_t),yield h(Promise.resolve(Fe(k,{data:S})),{optimisticData:Fe(k,{data:S}),revalidate:!1,rollbackOnError:!1})}})}function I(g,v,L){return U(this,null,function*(){if(S){let D=S.find(N=>N.flowId===g);D&&(D.lastStepId=v,D.stepStates[v]=L,D.flowState=_t),yield h(Fe(k,{data:S}),{optimisticData:Fe(k,{data:S}),revalidate:!1,rollbackOnError:!1})}})}function C(g){return U(this,null,function*(){if(S){let v=S.find(L=>L.flowId===g);v&&v.flowState!==Ze&&(v.flowState=Ze,v.lastStepId=La,Object.keys(v.stepStates).forEach(L=>{v.stepStates[L].actionType=tt,v.stepStates[L].createdAt=new Date().toISOString()}),yield h(Fe(k,{data:S}),{optimisticData:Fe(k,{data:S}),revalidate:!1,rollbackOnError:!1}),d(g))}})}function T(g,v){return U(this,null,function*(){if(S){let L=S.find(D=>D.flowId===g);L&&L.stepStates[v]!==tt&&(L.stepStates[v]=tt),yield h(Fe(k,{data:S}),{optimisticData:Fe(k,{data:S}),revalidate:!1,rollbackOnError:!1})}})}return{userFlowStatesData:S,isLoadingUserFlowStateData:!l,mutateUserFlowState:h,optimisticallyMarkFlowCompleted:A,optimisticallyMarkFlowNotStarted:C,optimisticallyMarkStepCompleted:O,optimisticallyMarkStepNotStarted:T,optimisticallyMarkStepStarted:I,error:B}}function oo(){let{config:e,apiUrl:t}=dt(),{userFlowStatesData:o,mutateUserFlowState:n}=qe(),{failedFlowResponses:i,setFailedFlowResponses:r,flowResponses:s,setFlowResponses:p}=(0,ko.useContext)(Q),[d,l]=(0,ko.useState)(new Set),[m,c]=(0,ko.useState)(new Set),x=Zt();function b(h){let B=JSON.stringify(h);if(d.has(B))return null;d.add(B),l(d),m.add(h),c(m);let S=s==null?void 0:s.find(A=>A.flowSlug===h.flowSlug&&A.stepId===h.stepId&&A.actionType===h.actionType&&A.createdAt===h.createdAt);return x(`${t}flowResponses`,G(F({},e),{method:"POST",body:B})).then(A=>{A.status!==200&&A.status!==201?(console.log("Failed to send flow response for step "+h.stepId+". Will retry again later."),r([...i,h])):S||p(O=>[...O!=null?O:[],h])})}function k(h){return U(this,null,function*(){h.foreignUserId&&(h.actionType===_t||h.actionType===Ze?yield b(h):h.actionType===ee?yield b(h):h.actionType===qo?yield b(h):h.actionType===st?yield b(h):h.actionType===Ko?yield b(h):h.actionType===tt&&(yield b(h)))})}function w(){let h=[];return o==null||o.forEach(B=>{if(B&&B.stepStates&&Object.keys(B.stepStates).length!==0)for(let S in B.stepStates){let A=B.stepStates[S];h.push({foreignUserId:B.foreignUserId,flowSlug:B.flowId,stepId:A.stepId,actionType:A.actionType,data:{},createdAt:new Date(A.createdAt),blocked:A.blocked,hidden:A.hidden})}}),[...h,...s]}return{addResponse:k,setFlowResponses:p,getFlowResponses:w}}var bi=f(require("swr"));var Da=/user.flow\(([^\)]+)\) == '?COMPLETED_FLOW'?/gm,Si=e=>{let t=Da.exec(e);if(t===null)return null;let o=null;return t.forEach((n,i)=>{let r=$a(n,"'","");r.startsWith("flow_")&&(o=r)}),o},$a=function(e,t,o){return e.replace(new RegExp(t,"g"),o)};function Br(e){try{return JSON.parse(e)}catch(t){return console.error("Failed to parse Frigade config.yml to JSON",t),null}}var Yo=(l=>(l.CHECKLIST="CHECKLIST",l.FORM="FORM",l.TOUR="TOUR",l.SUPPORT="SUPPORT",l.CUSTOM="CUSTOM",l.BANNER="BANNER",l.EMBEDDED_TIP="EMBEDDED_TIP",l.NPS_SURVEY="NPS_SURVEY",l.ANNOUNCEMENT="ANNOUNCEMENT",l))(Yo||{});function te(){let{config:e,apiUrl:t}=dt(),{flows:o,setFlows:n,userId:i,organizationId:r,publicApiKey:s,customVariables:p,setCustomVariables:d,hasActiveFullPageFlow:l,setHasActiveFullPageFlow:m,setFlowResponses:c,setShouldGracefullyDegrade:x,readonly:b}=(0,ot.useContext)(Q),k={data:[]},{verifySDKInitiated:w}=Rt(),{addResponse:h,getFlowResponses:B}=oo(),S=y=>fetch(y,e).then(u=>u.ok?u.json():(console.log(`Error fetching ${y} (${u.status}): ${u.statusText}. Will gracefully degrade and hide Frigade`),x(!0),k)).catch(u=>(console.log(`Error fetching ${y}: ${u}. Will gracefully degrade and hide Frigade`),x(!0),k)),{mutateUserFlowState:A,userFlowStatesData:O,isLoadingUserFlowStateData:I,optimisticallyMarkFlowCompleted:C,optimisticallyMarkFlowNotStarted:T,optimisticallyMarkStepCompleted:g,optimisticallyMarkStepNotStarted:v,optimisticallyMarkStepStarted:L}=qe(),{data:D,error:N,isLoading:X}=(0,bi.default)(s?`${t}flows${b?"?readonly=true":""}`:null,S,{keepPreviousData:!0});(0,ot.useEffect)(()=>{if(N){console.error(N);return}D&&D.data&&n(D.data)},[D,N]);function W(y){if(X)return null;let u=o.find(P=>P.slug===y);return!u&&o.length>0&&!I&&!X?(console.log(`Flow with id ${y} not found`),null):(u==null?void 0:u.active)===!1&&!b?null:u}function K(y){var H,we;if(!W(y))return[];let u=W(y).data;return u?(u=ue(u),((we=(H=Br(u))==null?void 0:H.data)!=null?we:[]).map(Te=>{let To=Z(Te);return G(F({handleSecondaryButtonClick:()=>{Te.skippable===!0&&q(y,Te.id,{skipped:!0})}},Te),{complete:Se(y,Te.id)===st||To>=1,blocked:Ge(y,Te.id),hidden:De(y,Te.id),handlePrimaryButtonClick:()=>{(!Te.completionCriteria&&(Te.autoMarkCompleted||Te.autoMarkCompleted===void 0)||Te.completionCriteria&&Te.autoMarkCompleted===!0)&&q(y,Te.id)},progress:To})}).filter(Te=>Te.hidden!==!0)):[]}function ue(y){return y.replaceAll(/\${(.*?)}/g,(u,P)=>p[P]===void 0?"":String(p[P]).replace(/[\u00A0-\u9999<>\&]/g,function(H){return"&#"+H.charCodeAt(0)+";"}).replaceAll(/[\\]/g,"\\\\").replaceAll(/[\"]/g,'\\"').replaceAll(/[\/]/g,"\\/").replaceAll(/[\b]/g,"\\b").replaceAll(/[\f]/g,"\\f").replaceAll(/[\n]/g,"\\n").replaceAll(/[\r]/g,"\\r").replaceAll(/[\t]/g,"\\t"))}function ge(y){var P;if(!W(y))return[];let u=W(y).data;return u?(u=ue(u),(P=JSON.parse(u))!=null?P:{}):[]}function V(y,u){d(P=>G(F({},P),{[y]:u}))}function ce(y){!I&&!X&&y&&JSON.stringify(p)!=JSON.stringify(F(F({},p),y))&&Object.keys(y).forEach(u=>{V(u,y[u])})}let xe=(0,ot.useCallback)((y,u,P)=>U(this,null,function*(){if(!w())return;let H={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:y,stepId:u,actionType:qo,data:P!=null?P:{},createdAt:new Date,blocked:!1,hidden:!1};re(H)&&(yield L(y,u,H),h(H))}),[i,r,O]),Le=(0,ot.useCallback)((y,u,P)=>U(this,null,function*(){if(!w())return;let H={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:y,stepId:u,actionType:tt,data:P!=null?P:{},createdAt:new Date,blocked:!1,hidden:!1};re(H)&&(yield v(y,u),h(H))}),[i,r,O]),q=(0,ot.useCallback)((y,u,P)=>U(this,null,function*(){if(!w())return;let H={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:y,stepId:u,actionType:st,data:P!=null?P:{},createdAt:new Date,blocked:!1,hidden:!1};re(H)&&(yield g(y,u,H),h(H))}),[i,r,O]),J=(0,ot.useCallback)((y,u)=>U(this,null,function*(){if(!w()||Be(y)===Ze)return;let P={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:y,stepId:"unknown",actionType:Ze,data:u!=null?u:{},createdAt:new Date,blocked:!1,hidden:!1};yield T(y),re(P)&&h(P)}),[i,r,O]),ne=(0,ot.useCallback)((y,u)=>U(this,null,function*(){if(!w())return;let P={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:y,stepId:"unknown",actionType:_t,data:u!=null?u:{},createdAt:new Date,blocked:!1,hidden:!1};re(P)&&h(P)}),[i,r,O]),nt=(0,ot.useCallback)((y,u)=>U(this,null,function*(){if(!w())return;let P={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:y,stepId:"unknown",actionType:ee,data:u!=null?u:{},createdAt:new Date,blocked:!1,hidden:!1};re(P)&&(yield C(y),h(P))}),[i,r,O]),Je=(0,ot.useCallback)((y,u)=>U(this,null,function*(){if(!w())return;let P={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:y,stepId:"unknown",actionType:Ko,data:u!=null?u:{},createdAt:new Date,blocked:!1,hidden:!1};re(P)&&(yield C(y),h(P))}),[i,r,O]);function re(y){var u;if(!O&&y.actionType===tt)return!1;if(O){let P=O.find(H=>H.flowId===y.flowSlug);if(y.actionType===tt&&(!(P!=null&&P.stepStates[y.stepId])||P.stepStates[y.stepId].actionType===tt)||P&&((u=P.stepStates[y.stepId])==null?void 0:u.actionType)===y.actionType||P&&P.flowState===ee&&y.actionType===ee)return!1}return!0}function Se(y,u){let P=z(y,u);return I?null:P?P.actionType:tt}function Ge(y,u){let P=z(y,u);return P?P.blocked:!1}function De(y,u){let P=z(y,u);return P?P.hidden:!1}function z(y,u){var H;if(I)return null;let P=O==null?void 0:O.find(we=>we.flowId===y);return!P||!P.stepStates[u]?null:(H=P.stepStates[u])!=null?H:null}function $(y){var P,H;if(I||!O)return null;if(Be(y)===Ze)return(P=K(y)[0])!=null?P:null;let u=(H=O.find(we=>we.flowId===y))==null?void 0:H.lastStepId;return u?K(y).find(we=>we.id===u):null}function j(y){var H;let u=$(y);if(!u)return 0;let P=(H=K(y).findIndex(we=>we.id===u.id))!=null?H:0;return Se(y,u.id)===st&&P<K(y).length-1?P+1:P}function Z(y){if(!y.completionCriteria)return;let u=Si(y.completionCriteria);if(u===null)return;let P=Qe(u),H=Tt(u);return H===0?void 0:P/H}function Be(y){let u=O==null?void 0:O.find(P=>P.flowId===y);return u?u.flowState:null}function Qe(y){let u=K(y);return u.length===0?0:u.filter(H=>Se(y,H.id)===st).length}function Tt(y){return K(y).length}function pt(y){let u=o.find(P=>P.slug===y);return u?Br(u.data):null}function Wt(y){if(b)return!1;if(I)return!0;if(y!=null&&y.targetingLogic&&O){let u=O.find(P=>P.flowId===y.slug);if(u)return u.shouldTrigger===!1}return!!(y!=null&&y.targetingLogic&&i&&i.startsWith("guest_"))}function Xt(y){return!Wt(W(y))}function Jt(){i&&A()}return{getFlow:W,getFlowData:pt,isLoading:I||X,getStepStatus:Se,getFlowSteps:K,getCurrentStepIndex:j,markStepStarted:xe,markStepCompleted:q,markFlowNotStarted:J,markFlowStarted:ne,markFlowCompleted:nt,markFlowAborted:Je,markStepNotStarted:Le,getFlowStatus:Be,getNumberOfStepsCompleted:Qe,getNumberOfSteps:Tt,targetingLogicShouldHideFlow:Wt,setCustomVariable:V,updateCustomVariables:ce,customVariables:p,getStepOptionalProgress:Z,getFlowMetadata:ge,isStepBlocked:Ge,isStepHidden:De,hasActiveFullPageFlow:l,setHasActiveFullPageFlow:m,isFlowAvailableToUser:Xt,refresh:Jt}}var At=require("react");var ro="guest_";function io(){let{userId:e,organizationId:t,setUserId:o,setUserProperties:n,shouldGracefullyDegrade:i}=(0,At.useContext)(Q),{config:r,apiUrl:s}=dt(),{mutateUserFlowState:p}=qe(),d=Zt(),{verifySDKInitiated:l}=Rt();function m(k){return`frigade-user-registered-${k}`}(0,At.useEffect)(()=>{if(e&&!t){if(e.startsWith(ro))return;let k=m(e);localStorage.getItem(k)||(d(`${s}users`,G(F({},r),{method:"POST",body:JSON.stringify({foreignId:e})})),localStorage.setItem(k,"true"))}},[e,i,t]);let c=(0,At.useCallback)(k=>U(this,null,function*(){if(!l())return;let w={foreignId:e,properties:k};yield d(`${s}users`,G(F({},r),{method:"POST",body:JSON.stringify(w)})),n(h=>F(F({},h),k)),p()}),[e,r,i,p]),x=(0,At.useCallback)((k,w)=>U(this,null,function*(){if(!l())return;let B={foreignId:e,events:[{event:k,properties:w}]};yield d(`${s}users`,G(F({},r),{method:"POST",body:JSON.stringify(B)})),p()}),[e,r,p]),b=(0,At.useCallback)((k,w)=>U(this,null,function*(){if(l())if(w){let h=m(k);localStorage.setItem(h,"true"),o(k);let B={foreignId:k,properties:w};yield d(`${s}users`,G(F({},r),{method:"POST",body:JSON.stringify(B)})),n(S=>F(F({},S),w)),p()}else o(k)}),[r,i,p]);return{userId:e,setUserId:o,setUserIdWithProperties:b,addPropertiesToUser:c,trackEventForUser:x}}var Pn=require("uuid");var Oe=f(require("react"));var Ee=f(require("react")),Bo=f(require("styled-components"));var Ti=f(require("react")),Fi=f(require("styled-components"));var wi="fr-",Po="cfr-";function a(e,t){let o=`${wi}${e}`;if(!t)return o;if(t.styleOverrides&&t.styleOverrides[e]){if(typeof t.styleOverrides[e]=="string")return o+" "+t.styleOverrides[e];if(typeof t.styleOverrides[e]=="object")return o+" "+Po+e}return o}function E(e){if(!e.className||e.className.indexOf(Po)!==-1)return"";let o=e.className.replace(/\s+/g," ").split(" ");return o.length==1&&o[0].startsWith(wi)?"":`:not(${o.map(n=>`.${n}`).join(", ")})`}function Xo(e){return e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function ze(e){return e!=null&&e.styleOverrides?Object.keys(e.styleOverrides).map(t=>`${Xo(t)}: ${e.styleOverrides[t]};`).join(" "):""}function $e(...e){return e.filter(Boolean).join(" ")}function vo(e){return e.charAt(0).toUpperCase()+e.slice(1)}var Ma=Fi.default.div`
2
+ var Fa=Object.create;var Fo=Object.defineProperty,ka=Object.defineProperties,Pa=Object.getOwnPropertyDescriptor,va=Object.getOwnPropertyDescriptors,Ba=Object.getOwnPropertyNames,Go=Object.getOwnPropertySymbols,Ea=Object.getPrototypeOf,Pr=Object.prototype.hasOwnProperty,ui=Object.prototype.propertyIsEnumerable;var mi=(e,t,o)=>t in e?Fo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,F=(e,t)=>{for(var o in t||(t={}))Pr.call(t,o)&&mi(e,o,t[o]);if(Go)for(var o of Go(t))ui.call(t,o)&&mi(e,o,t[o]);return e},G=(e,t)=>ka(e,va(t));var fi=e=>typeof e=="symbol"?e:e+"",Ke=(e,t)=>{var o={};for(var n in e)Pr.call(e,n)&&t.indexOf(n)<0&&(o[n]=e[n]);if(e!=null&&Go)for(var n of Go(e))t.indexOf(n)<0&&ui.call(e,n)&&(o[n]=e[n]);return o};var Aa=(e,t)=>{for(var o in t)Fo(e,o,{get:t[o],enumerable:!0})},gi=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Ba(t))!Pr.call(e,i)&&i!==o&&Fo(e,i,{get:()=>t[i],enumerable:!(n=Pa(t,i))||n.enumerable});return e};var f=(e,t,o)=>(o=e!=null?Fa(Ea(e)):{},gi(t||!e||!e.__esModule?Fo(o,"default",{value:e,enumerable:!0}):o,e)),Oa=e=>gi(Fo({},"__esModule",{value:!0}),e);var U=(e,t,o)=>new Promise((n,i)=>{var r=d=>{try{p(o.next(d))}catch(l){i(l)}},s=d=>{try{p(o.throw(d))}catch(l){i(l)}},p=d=>d.done?n(d.value):Promise.resolve(d.value).then(r,s);p((o=o.apply(e,t)).next())});var Id={};Aa(Id,{Box:()=>co,Button:()=>wa,CheckBox:()=>ft,FlowType:()=>Yo,FormLabel:()=>Ft,FormTextField:()=>sr,FrigadeAnnouncement:()=>ya,FrigadeBanner:()=>oa,FrigadeChecklist:()=>br,FrigadeDefaultAppearance:()=>ut,FrigadeEmbeddedTip:()=>Jl,FrigadeForm:()=>zr,FrigadeGuide:()=>vl,FrigadeHeroChecklist:()=>fl,FrigadeNPSSurvey:()=>pa,FrigadeProgressBadge:()=>kl,FrigadeProvider:()=>Wn,FrigadeSupportWidget:()=>Gl,FrigadeTour:()=>Ll,ProgressBar:()=>Ye,ProgressRing:()=>Ht,Text:()=>Fr,tokens:()=>gr,useFlowOpens:()=>We,useFlowResponses:()=>oo,useFlows:()=>te,useOrganization:()=>mr,useUser:()=>io,useUserFlowStates:()=>qe});module.exports=Oa(Id);var oe=f(require("react")),$n=require("styled-components");var Ce=f(require("react"));var ot=require("react");var zt=f(require("react"));var xi="1.35.40 ";var tt="NOT_STARTED_STEP",ee="COMPLETED_FLOW",Ko="ABORTED_FLOW",_t="STARTED_FLOW",Ze="NOT_STARTED_FLOW",st="COMPLETED_STEP",qo="STARTED_STEP";function dt(){let{publicApiKey:e,userId:t,apiUrl:o}=zt.default.useContext(Q);return{config:(0,zt.useMemo)(()=>({headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Frigade-SDK-Version":xi,"X-Frigade-SDK-Platform":"React"}}),[e,t]),apiUrl:(0,zt.useMemo)(()=>`${o}/v1/public/`,[o])}}var Ia="frigade-last-call-at-",Na="frigade-last-call-data-";function Zt(){let{shouldGracefullyDegrade:e,readonly:t}=zt.default.useContext(Q);return(o,n)=>U(this,null,function*(){if(t&&(n.method==="POST"||n.method==="PUT"||n.method==="DELETE"))return Qt();if(e)return console.log(`Skipping ${o} call to Frigade due to error`),Qt();let i=Ia+o,r=Na+o;if(window&&window.localStorage&&n&&n.body&&n.method==="POST"){let p=window.localStorage.getItem(i),d=window.localStorage.getItem(r);if(p&&d&&d==n.body){let l=new Date(p);if(new Date().getTime()-l.getTime()<1e3)return Qt()}window.localStorage.setItem(i,new Date().toISOString()),window.localStorage.setItem(r,n.body)}let s;try{s=yield fetch(o,n)}catch(p){return Qt(p)}return s?s.ok?s:Qt(s.statusText):Qt()})}function Qt(e){return e&&console.log("Call to Frigade failed",e),{json:()=>({})}}function Rt(){let{publicApiKey:e,shouldGracefullyDegrade:t}=zt.default.useContext(Q);function o(){return t?(console.error("Frigade hooks cannot be used when Frigade SDK has failed to initialize"),!1):e?!0:(console.error("Frigade hooks cannot be used outside the scope of FrigadeProvider"),!1)}return{verifySDKInitiated:o}}var ko=require("react");var to=require("react");var Ci=f(require("swr"));var hi=require("react");function We(){let{openFlowStates:e,setOpenFlowStates:t,hasActiveFullPageFlow:o,setCompletedFlowsToKeepOpenDuringSession:n,completedFlowsToKeepOpenDuringSession:i}=(0,hi.useContext)(Q);function r(c,x=!1){var b;return(b=e[c])!=null?b:x}function s(c,x){t(b=>G(F({},b),{[c]:x}))}function p(c){t(x=>{let w=x,{[c]:b}=w,k=Ke(w,[fi(c)]);return F({},k)})}function d(c){i.includes(c)||n(x=>[...x,c])}function l(c){return i.includes(c)}function m(c){return Object.entries(e).some(([x,b])=>b&&x!=c)||o}return{getOpenFlowState:r,setOpenFlowState:s,resetOpenFlowState:p,hasOpenModals:m,setKeepCompletedFlowOpenDuringSession:d,shouldKeepCompletedFlowOpenDuringSession:l}}var yi=f(require("swr/immutable"));var eo=f(require("core-js-pure/actual/structured-clone"));function vr(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Fe(...e){let t=e.shift(),o=e.length===1?e[0]:Fe(...e);if(!vr(t)||!vr(o))throw new Error("deepmerge can only merge Objects");let n=(0,eo.default)(t);return Object.entries(o).forEach(([i,r])=>{vr(r)?n[i]!==void 0?Object.assign(n,{[i]:Fe(n[i],(0,eo.default)(r))}):Object.assign(n,{[i]:(0,eo.default)(r)}):Array.isArray(r)?n[i]!==void 0?Object.assign(n,{[i]:[...n[i],...(0,eo.default)(r)]}):Object.assign(n,{[i]:(0,eo.default)(r)}):Object.assign(n,{[i]:r})}),n}var La="unknown";function qe(){let{config:e,apiUrl:t}=dt(),{publicApiKey:o,userId:n,organizationId:i,flows:r,setShouldGracefullyDegrade:s,readonly:p}=(0,to.useContext)(Q),{resetOpenFlowState:d}=We(),[l,m]=(0,to.useState)(!1),c={data:r.map(g=>({flowId:g.id,flowState:ee,lastStepId:null,userId:n,foreignUserId:n,stepStates:{},shouldTrigger:!1}))},x=g=>fetch(g,e).then(v=>{if(v.ok)return v.json();throw new Error("Failed to fetch user flow states")}).catch(v=>(console.log(`Error fetching ${g}: ${v}. Will gracefully degrade and hide Frigade`),s(!0),c)),b=o&&r&&n?`${t}userFlowStates?foreignUserId=${encodeURIComponent(n)}${i?`&foreignUserGroupId=${encodeURIComponent(i)}`:""}`:null,{data:k,isLoading:w,mutate:h,error:B}=p?(0,yi.default)(b,x):(0,Ci.default)(b,x,{revalidateOnFocus:!0,revalidateIfStale:!0,keepPreviousData:!0,revalidateOnMount:!0,errorRetryInterval:1e4,errorRetryCount:3,onError:()=>c,onLoadingSlow:()=>c}),S=k==null?void 0:k.data;(0,to.useEffect)(()=>{!l&&!w&&S&&m(!0)},[S,l,w]);function A(g){return U(this,null,function*(){if(S&&!p){let v=S.find(L=>L.flowId===g);v&&v.flowState!==ee&&(v.flowState=ee),yield h(Promise.resolve(Fe(k,{data:S})),{optimisticData:Fe(k,{data:S}),revalidate:!1,rollbackOnError:!1})}})}function O(g,v,L){return U(this,null,function*(){if(S){let D=S.find(N=>N.flowId===g);D&&(D.stepStates[v]=L,D.flowState=_t),yield h(Promise.resolve(Fe(k,{data:S})),{optimisticData:Fe(k,{data:S}),revalidate:!1,rollbackOnError:!1})}})}function I(g,v,L){return U(this,null,function*(){if(S){let D=S.find(N=>N.flowId===g);D&&(D.lastStepId=v,D.stepStates[v]=L,D.flowState=_t),yield h(Fe(k,{data:S}),{optimisticData:Fe(k,{data:S}),revalidate:!1,rollbackOnError:!1})}})}function C(g){return U(this,null,function*(){if(S){let v=S.find(L=>L.flowId===g);v&&v.flowState!==Ze&&(v.flowState=Ze,v.lastStepId=La,Object.keys(v.stepStates).forEach(L=>{v.stepStates[L].actionType=tt,v.stepStates[L].createdAt=new Date().toISOString()}),yield h(Fe(k,{data:S}),{optimisticData:Fe(k,{data:S}),revalidate:!1,rollbackOnError:!1}),d(g))}})}function T(g,v){return U(this,null,function*(){if(S){let L=S.find(D=>D.flowId===g);L&&L.stepStates[v]!==tt&&(L.stepStates[v]=tt),yield h(Fe(k,{data:S}),{optimisticData:Fe(k,{data:S}),revalidate:!1,rollbackOnError:!1})}})}return{userFlowStatesData:S,isLoadingUserFlowStateData:!l,mutateUserFlowState:h,optimisticallyMarkFlowCompleted:A,optimisticallyMarkFlowNotStarted:C,optimisticallyMarkStepCompleted:O,optimisticallyMarkStepNotStarted:T,optimisticallyMarkStepStarted:I,error:B}}function oo(){let{config:e,apiUrl:t}=dt(),{userFlowStatesData:o,mutateUserFlowState:n}=qe(),{failedFlowResponses:i,setFailedFlowResponses:r,flowResponses:s,setFlowResponses:p}=(0,ko.useContext)(Q),[d,l]=(0,ko.useState)(new Set),[m,c]=(0,ko.useState)(new Set),x=Zt();function b(h){let B=JSON.stringify(h);if(d.has(B))return null;d.add(B),l(d),m.add(h),c(m);let S=s==null?void 0:s.find(A=>A.flowSlug===h.flowSlug&&A.stepId===h.stepId&&A.actionType===h.actionType&&A.createdAt===h.createdAt);return x(`${t}flowResponses`,G(F({},e),{method:"POST",body:B})).then(A=>{A.status!==200&&A.status!==201?(console.log("Failed to send flow response for step "+h.stepId+". Will retry again later."),r([...i,h])):S||p(O=>[...O!=null?O:[],h])})}function k(h){return U(this,null,function*(){h.foreignUserId&&(h.actionType===_t||h.actionType===Ze?yield b(h):h.actionType===ee?yield b(h):h.actionType===qo?yield b(h):h.actionType===st?yield b(h):h.actionType===Ko?yield b(h):h.actionType===tt&&(yield b(h)))})}function w(){let h=[];return o==null||o.forEach(B=>{if(B&&B.stepStates&&Object.keys(B.stepStates).length!==0)for(let S in B.stepStates){let A=B.stepStates[S];h.push({foreignUserId:B.foreignUserId,flowSlug:B.flowId,stepId:A.stepId,actionType:A.actionType,data:{},createdAt:new Date(A.createdAt),blocked:A.blocked,hidden:A.hidden})}}),[...h,...s]}return{addResponse:k,setFlowResponses:p,getFlowResponses:w}}var bi=f(require("swr"));var Da=/user.flow\(([^\)]+)\) == '?COMPLETED_FLOW'?/gm,Si=e=>{let t=Da.exec(e);if(t===null)return null;let o=null;return t.forEach((n,i)=>{let r=$a(n,"'","");r.startsWith("flow_")&&(o=r)}),o},$a=function(e,t,o){return e.replace(new RegExp(t,"g"),o)};function Br(e){try{return JSON.parse(e)}catch(t){return console.error("Failed to parse Frigade config.yml to JSON",t),null}}var Yo=(l=>(l.CHECKLIST="CHECKLIST",l.FORM="FORM",l.TOUR="TOUR",l.SUPPORT="SUPPORT",l.CUSTOM="CUSTOM",l.BANNER="BANNER",l.EMBEDDED_TIP="EMBEDDED_TIP",l.NPS_SURVEY="NPS_SURVEY",l.ANNOUNCEMENT="ANNOUNCEMENT",l))(Yo||{});function te(){let{config:e,apiUrl:t}=dt(),{flows:o,setFlows:n,userId:i,organizationId:r,publicApiKey:s,customVariables:p,setCustomVariables:d,hasActiveFullPageFlow:l,setHasActiveFullPageFlow:m,setFlowResponses:c,setShouldGracefullyDegrade:x,readonly:b}=(0,ot.useContext)(Q),k={data:[]},{verifySDKInitiated:w}=Rt(),{addResponse:h,getFlowResponses:B}=oo(),S=y=>fetch(y,e).then(u=>u.ok?u.json():(console.log(`Error fetching ${y} (${u.status}): ${u.statusText}. Will gracefully degrade and hide Frigade`),x(!0),k)).catch(u=>(console.log(`Error fetching ${y}: ${u}. Will gracefully degrade and hide Frigade`),x(!0),k)),{mutateUserFlowState:A,userFlowStatesData:O,isLoadingUserFlowStateData:I,optimisticallyMarkFlowCompleted:C,optimisticallyMarkFlowNotStarted:T,optimisticallyMarkStepCompleted:g,optimisticallyMarkStepNotStarted:v,optimisticallyMarkStepStarted:L}=qe(),{data:D,error:N,isLoading:X}=(0,bi.default)(s?`${t}flows${b?"?readonly=true":""}`:null,S,{keepPreviousData:!0});(0,ot.useEffect)(()=>{if(N){console.error(N);return}D&&D.data&&n(D.data)},[D,N]);function W(y){if(X)return null;let u=o.find(P=>P.slug===y);return!u&&o.length>0&&!I&&!X?(console.log(`Flow with id ${y} not found`),null):(u==null?void 0:u.active)===!1&&!b?null:u}function K(y){var H,we;if(!W(y))return[];let u=W(y).data;return u?(u=ue(u),((we=(H=Br(u))==null?void 0:H.data)!=null?we:[]).map(Te=>{let To=Z(Te);return G(F({handleSecondaryButtonClick:()=>{Te.skippable===!0&&q(y,Te.id,{skipped:!0})}},Te),{complete:Se(y,Te.id)===st||To>=1,blocked:Ge(y,Te.id),hidden:De(y,Te.id),handlePrimaryButtonClick:()=>{(!Te.completionCriteria&&(Te.autoMarkCompleted||Te.autoMarkCompleted===void 0)||Te.completionCriteria&&Te.autoMarkCompleted===!0)&&q(y,Te.id)},progress:To})}).filter(Te=>Te.hidden!==!0)):[]}function ue(y){return y.replaceAll(/\${(.*?)}/g,(u,P)=>p[P]===void 0?"":String(p[P]).replace(/[\u00A0-\u9999<>\&]/g,function(H){return"&#"+H.charCodeAt(0)+";"}).replaceAll(/[\\]/g,"\\\\").replaceAll(/[\"]/g,'\\"').replaceAll(/[\/]/g,"\\/").replaceAll(/[\b]/g,"\\b").replaceAll(/[\f]/g,"\\f").replaceAll(/[\n]/g,"\\n").replaceAll(/[\r]/g,"\\r").replaceAll(/[\t]/g,"\\t"))}function ge(y){var P;if(!W(y))return[];let u=W(y).data;return u?(u=ue(u),(P=JSON.parse(u))!=null?P:{}):[]}function V(y,u){d(P=>G(F({},P),{[y]:u}))}function ce(y){!I&&!X&&y&&JSON.stringify(p)!=JSON.stringify(F(F({},p),y))&&Object.keys(y).forEach(u=>{V(u,y[u])})}let xe=(0,ot.useCallback)((y,u,P)=>U(this,null,function*(){if(!w())return;let H={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:y,stepId:u,actionType:qo,data:P!=null?P:{},createdAt:new Date,blocked:!1,hidden:!1};re(H)&&(yield L(y,u,H),h(H))}),[i,r,O]),Le=(0,ot.useCallback)((y,u,P)=>U(this,null,function*(){if(!w())return;let H={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:y,stepId:u,actionType:tt,data:P!=null?P:{},createdAt:new Date,blocked:!1,hidden:!1};re(H)&&(yield v(y,u),h(H))}),[i,r,O]),q=(0,ot.useCallback)((y,u,P)=>U(this,null,function*(){if(!w())return;let H={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:y,stepId:u,actionType:st,data:P!=null?P:{},createdAt:new Date,blocked:!1,hidden:!1};re(H)&&(yield g(y,u,H),h(H))}),[i,r,O]),J=(0,ot.useCallback)((y,u)=>U(this,null,function*(){if(!w()||Be(y)===Ze)return;let P={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:y,stepId:"unknown",actionType:Ze,data:u!=null?u:{},createdAt:new Date,blocked:!1,hidden:!1};yield T(y),re(P)&&h(P)}),[i,r,O]),ne=(0,ot.useCallback)((y,u)=>U(this,null,function*(){if(!w())return;let P={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:y,stepId:"unknown",actionType:_t,data:u!=null?u:{},createdAt:new Date,blocked:!1,hidden:!1};re(P)&&h(P)}),[i,r,O]),nt=(0,ot.useCallback)((y,u)=>U(this,null,function*(){if(!w())return;let P={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:y,stepId:"unknown",actionType:ee,data:u!=null?u:{},createdAt:new Date,blocked:!1,hidden:!1};re(P)&&(yield C(y),h(P))}),[i,r,O]),Je=(0,ot.useCallback)((y,u)=>U(this,null,function*(){if(!w())return;let P={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:y,stepId:"unknown",actionType:Ko,data:u!=null?u:{},createdAt:new Date,blocked:!1,hidden:!1};re(P)&&(yield C(y),h(P))}),[i,r,O]);function re(y){var u;if(!O&&y.actionType===tt)return!1;if(O){let P=O.find(H=>H.flowId===y.flowSlug);if(y.actionType===tt&&(!(P!=null&&P.stepStates[y.stepId])||P.stepStates[y.stepId].actionType===tt)||P&&((u=P.stepStates[y.stepId])==null?void 0:u.actionType)===y.actionType||P&&P.flowState===ee&&y.actionType===ee)return!1}return!0}function Se(y,u){let P=z(y,u);return I?null:P?P.actionType:tt}function Ge(y,u){let P=z(y,u);return P?P.blocked:!1}function De(y,u){let P=z(y,u);return P?P.hidden:!1}function z(y,u){var H;if(I)return null;let P=O==null?void 0:O.find(we=>we.flowId===y);return!P||!P.stepStates[u]?null:(H=P.stepStates[u])!=null?H:null}function $(y){var P,H;if(I||!O)return null;if(Be(y)===Ze)return(P=K(y)[0])!=null?P:null;let u=(H=O.find(we=>we.flowId===y))==null?void 0:H.lastStepId;return u?K(y).find(we=>we.id===u):null}function j(y){var H;let u=$(y);if(!u)return 0;let P=(H=K(y).findIndex(we=>we.id===u.id))!=null?H:0;return Se(y,u.id)===st&&P<K(y).length-1?P+1:P}function Z(y){if(!y.completionCriteria)return;let u=Si(y.completionCriteria);if(u===null)return;let P=Qe(u),H=Tt(u);return H===0?void 0:P/H}function Be(y){let u=O==null?void 0:O.find(P=>P.flowId===y);return u?u.flowState:null}function Qe(y){let u=K(y);return u.length===0?0:u.filter(H=>Se(y,H.id)===st).length}function Tt(y){return K(y).length}function pt(y){let u=o.find(P=>P.slug===y);return u?Br(u.data):null}function Wt(y){if(b)return!1;if(I)return!0;if(y!=null&&y.targetingLogic&&O){let u=O.find(P=>P.flowId===y.slug);if(u)return u.shouldTrigger===!1}return!!(y!=null&&y.targetingLogic&&i&&i.startsWith("guest_"))}function Xt(y){return!Wt(W(y))}function Jt(){i&&A()}return{getFlow:W,getFlowData:pt,isLoading:I||X,getStepStatus:Se,getFlowSteps:K,getCurrentStepIndex:j,markStepStarted:xe,markStepCompleted:q,markFlowNotStarted:J,markFlowStarted:ne,markFlowCompleted:nt,markFlowAborted:Je,markStepNotStarted:Le,getFlowStatus:Be,getNumberOfStepsCompleted:Qe,getNumberOfSteps:Tt,targetingLogicShouldHideFlow:Wt,setCustomVariable:V,updateCustomVariables:ce,customVariables:p,getStepOptionalProgress:Z,getFlowMetadata:ge,isStepBlocked:Ge,isStepHidden:De,hasActiveFullPageFlow:l,setHasActiveFullPageFlow:m,isFlowAvailableToUser:Xt,refresh:Jt}}var At=require("react");var ro="guest_";function io(){let{userId:e,organizationId:t,setUserId:o,setUserProperties:n,shouldGracefullyDegrade:i}=(0,At.useContext)(Q),{config:r,apiUrl:s}=dt(),{mutateUserFlowState:p}=qe(),d=Zt(),{verifySDKInitiated:l}=Rt();function m(k){return`frigade-user-registered-${k}`}(0,At.useEffect)(()=>{if(e&&!t){if(e.startsWith(ro))return;let k=m(e);localStorage.getItem(k)||(d(`${s}users`,G(F({},r),{method:"POST",body:JSON.stringify({foreignId:e})})),localStorage.setItem(k,"true"))}},[e,i,t]);let c=(0,At.useCallback)(k=>U(this,null,function*(){if(!l())return;let w={foreignId:e,properties:k};yield d(`${s}users`,G(F({},r),{method:"POST",body:JSON.stringify(w)})),n(h=>F(F({},h),k)),p()}),[e,r,i,p]),x=(0,At.useCallback)((k,w)=>U(this,null,function*(){if(!l())return;let B={foreignId:e,events:[{event:k,properties:w}]};yield d(`${s}users`,G(F({},r),{method:"POST",body:JSON.stringify(B)})),p()}),[e,r,p]),b=(0,At.useCallback)((k,w)=>U(this,null,function*(){if(l())if(w){let h=m(k);localStorage.setItem(h,"true"),o(k);let B={foreignId:k,properties:w};yield d(`${s}users`,G(F({},r),{method:"POST",body:JSON.stringify(B)})),n(S=>F(F({},S),w)),p()}else o(k)}),[r,i,p]);return{userId:e,setUserId:o,setUserIdWithProperties:b,addPropertiesToUser:c,trackEventForUser:x}}var Pn=require("uuid");var Oe=f(require("react"));var Ee=f(require("react")),Bo=f(require("styled-components"));var Ti=f(require("react")),Fi=f(require("styled-components"));var wi="fr-",Po="cfr-";function a(e,t){let o=`${wi}${e}`;if(!t)return o;if(t.styleOverrides&&t.styleOverrides[e]){if(typeof t.styleOverrides[e]=="string")return o+" "+t.styleOverrides[e];if(typeof t.styleOverrides[e]=="object")return o+" "+Po+e}return o}function E(e){if(!e.className||e.className.indexOf(Po)!==-1)return"";let o=e.className.replace(/\s+/g," ").split(" ");return o.length==1&&o[0].startsWith(wi)?"":`:not(${o.map(n=>`.${n}`).join(", ")})`}function Xo(e){return e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function ze(e){return e!=null&&e.styleOverrides?Object.keys(e.styleOverrides).map(t=>`${Xo(t)}: ${e.styleOverrides[t]};`).join(" "):""}function $e(...e){return e.filter(Boolean).join(" ")}function vo(e){return e.charAt(0).toUpperCase()+e.slice(1)}var Ma=Fi.default.div`
3
3
  display: flex;
4
4
  justify-content: center;
5
5
  position: fixed;
@@ -1356,7 +1356,7 @@ ${e=>e.inlineStyles.map(([t,o])=>`.${Po}${t}.${Po}${t} { ${Object.entries(o).map
1356
1356
  `}
1357
1357
  `;var dl=({stepData:e,style:t={},appearance:o})=>{let{mergeAppearanceWithDefault:n}=se(),{primaryCTAClickSideEffects:i}=fe();o=n(o);let{imageUri:r=null,subtitle:s=null,title:p=null,complete:d=!1,blocked:l=!1}=e,m=e.primaryButtonTitle||e.secondaryButtonTitle,c=()=>{i(e)};return qt.default.createElement(ol,{className:a("carouselCard",o),onClick:l?null:c,style:t,blocked:l,complete:d},r&&qt.default.createElement(rl,{className:a("carouselCardImage",o),src:r,alt:p,style:{opacity:d||l?.4:1}}),d&&qt.default.createElement(nl,{className:a("carouselCompletedPill",o)},qt.default.createElement(pl,{style:{color:"#108E0B"}},"Complete")),p&&qt.default.createElement(al,{blocked:l,complete:d,className:a("carouselCardTitle",o)},p),s&&qt.default.createElement($t.Quiet,{blocked:l,complete:d,className:a("carouselCardSubtitle",o)},s))};var wd=()=>Y.default.createElement("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Y.default.createElement("path",{d:"M14 6L20 12",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round"}),Y.default.createElement("path",{d:"M14 18L20 12",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round"}),Y.default.createElement("path",{d:"M4 12H20",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round"})),cl=({side:e="left",show:t=!1,onClick:o=()=>{}})=>{let[n,i]=(0,Y.useState)(!1),[r,s]=(0,Y.useState)(!1);(0,Y.useEffect)(()=>{t===!0&&n===!1?i(!0):t===!1&&n===!0&&s(!0)},[t]);let p=()=>{i(!1),s(!1)},d=e=="left"?{top:0,bottom:0,left:-20,transform:"rotate(180deg)"}:{top:0,bottom:0,right:-20};return n?Y.default.createElement(Rs,{style:d,reversed:r,onAnimationEnd:r?p:null},Y.default.createElement(el,{onClick:()=>o(),style:{right:16,top:"calc(50% - 24px)"}},Y.default.createElement(wd,null))):null},ml=({flowId:e,appearance:t,customVariables:o,className:n})=>{let i=(0,Y.useRef)(null),[r,s]=(0,Y.useState)(!1),[p,d]=(0,Y.useState)(!1),[l,m]=(0,Y.useState)(null),[c,x]=(0,Y.useState)([]),[b,k]=(0,Y.useState)(0),{isSmall:w}=Xs(),h=w?1:3,{getFlowMetadata:B,getFlowSteps:S,getNumberOfStepsCompleted:A,updateCustomVariables:O,isLoading:I}=te();(0,Y.useEffect)(()=>{O(o)},[o,I]),(0,Y.useEffect)(()=>{if(I)return;let D=B(e),N=A(e),X=S(e);m(D),D.data!==null&&(x(X.sort((W,K)=>Number(W.complete)-Number(K.complete))),d(X.length>h),k(N))},[I]);let C=[];for(let D=0;D<c.length;D+=h)C.push(c.slice(D,D+h));let T=D=>{let N=D.target,X=N.scrollWidth-N.clientWidth,W=Math.ceil(N.scrollLeft);W>0&&r===!1&&s(!0),W===0&&r===!0&&s(!1),W<X&&p===!1&&d(!0),W===X&&p===!0&&d(!1)},g=(D=!0)=>{let N=D?1:-1;i.current!==null&&i.current.scrollBy({left:i.current.clientWidth*N,behavior:"smooth"})},v=null,L=D=>{v!==null?clearTimeout(v):T(D),v=setTimeout(()=>{T(D)},16)};return I?null:Y.default.createElement(il,{className:$e(a("carouselContainer",t),n)},Y.default.createElement("div",{style:{display:"flex",justifyContent:w?"center":"space-between",marginBottom:20,flexWrap:w?"wrap":"nowrap",gap:w?16:20}},Y.default.createElement("div",null,Y.default.createElement(sl,{className:a("carouselTitle",t)},l==null?void 0:l.title),Y.default.createElement($t.Quiet,{className:a("carouselSubtitle",t)},l==null?void 0:l.subtitle)),Y.default.createElement(ll,{className:a("progressWrapper",t)},Y.default.createElement(Ye,{count:b,total:c.length,appearance:t}))),Y.default.createElement("div",{style:{position:"relative"}},Y.default.createElement(cl,{show:r,onClick:()=>g(!1)}),Y.default.createElement(cl,{side:"right",show:p,onClick:g}),Y.default.createElement(Qs,{ref:i,onScroll:L},C.map((D,N)=>Y.default.createElement(Zs,{key:N,style:{flex:`0 0 calc(100% - ${c.length>h?36:0}px)`}},D.map((X,W)=>Y.default.createElement(dl,{key:W,stepData:X,style:{flex:c.length>h?`0 1 calc(100% / ${h} - 16px * 2 / ${h})`:1},appearance:t})))))),Y.default.createElement(pe,{appearance:t}))};var br=O=>{var I=O,{flowId:e,title:t,subtitle:o,style:n,initialSelectedStep:i,className:r,type:s="inline",onDismiss:p,visible:d,customVariables:l,onStepCompletion:m,onButtonClick:c,appearance:x,hideOnFlowCompletion:b,setVisible:k,customStepTypes:w,checklistStyle:h="default",autoExpandFirstIncompleteStep:B,autoExpandNextStep:S}=I,A=Ke(I,["flowId","title","subtitle","style","initialSelectedStep","className","type","onDismiss","visible","customVariables","onStepCompletion","onButtonClick","appearance","hideOnFlowCompletion","setVisible","customStepTypes","checklistStyle","autoExpandFirstIncompleteStep","autoExpandNextStep"]);let{getFlow:C,getFlowSteps:T,markStepCompleted:g,getStepStatus:v,getNumberOfStepsCompleted:L,isLoading:D,targetingLogicShouldHideFlow:N,updateCustomVariables:X,getFlowMetadata:W,isStepBlocked:K,getFlowStatus:ue,hasActiveFullPageFlow:ge,setHasActiveFullPageFlow:V}=te(),{primaryCTAClickSideEffects:ce,secondaryCTAClickSideEffects:xe}=fe(),{getOpenFlowState:Le,setOpenFlowState:q}=We(),[J,ne]=(0,ae.useState)(i||0),[nt,Je]=(0,ae.useState)(!1),re=d===void 0?Le(e):d,Se=s==="modal",{mergeAppearanceWithDefault:Ge}=se();if(x=Ge(x),(0,ae.useEffect)(()=>{X(l)},[l,D]),(0,ae.useEffect)(()=>{d!==void 0&&(Se&&d===!0?V(!0):Se&&d===!1&&V(!1))},[d,k,ge]),D)return null;let De=C(e);if(!De||N(De))return null;let z=T(e);if(!z||b===!0&&ue(e)===ee)return null;let $=W(e);if($!=null&&$.title&&(t=$.title),$!=null&&$.subtitle&&(o=$.subtitle),!nt&&i===void 0&&L(e)>0){let u=z.findIndex(P=>P.complete===!1);ne(u>-1?u:z.length-1),Je(!0)}function j(){if(J+1>=z.length){Se&&q(e,!1);return}K(e,z[J+1].id)||ne(J+1)}function Z(u,P,H){let we=J+1<z.length?z[J+1]:null;c&&c(u,J,P,we)===!0&&Se&&pt(),m&&m(u,H,we),!m&&!c&&(u.primaryButtonUri||u.secondaryButtonUri)&&Se&&pt()}function Be(){return z.map((u,P)=>G(F({},u),{handleSecondaryButtonClick:()=>{j(),xe(u),u.skippable===!0&&g(e,u.id,{skipped:!0}),Z(u,"secondary",P)},handlePrimaryButtonClick:()=>{(!u.completionCriteria&&(u.autoMarkCompleted||u.autoMarkCompleted===void 0)||u.completionCriteria&&u.autoMarkCompleted===!0)&&(g(e,u.id),j()),Z(u,"primary",P),ce(u),v(e,u.id)===st&&j()}}))}function Qe(){return ae.default.createElement(pe,{appearance:x})}let Tt={steps:Be(),title:t,subtitle:o,primaryColor:x.theme.colorPrimary,appearance:x,customStepTypes:w,type:s,className:r,autoExpandFirstIncompleteStep:B,autoExpandNextStep:S};function pt(){q(e,!1),p&&p(),k&&k(!1)}function Wt(){return ae.default.createElement(ae.default.Fragment,null,ae.default.createElement(Qe,null),ae.default.createElement(ml,{flowId:e,appearance:x,customVariables:l,className:r}))}function Xt(){return ae.default.createElement(ae.default.Fragment,null,ae.default.createElement(Qe,null),ae.default.createElement(Yr,F({visible:re,onClose:()=>{pt()},selectedStep:J,setSelectedStep:ne,autoExpandNextStep:!0,appearance:x},Tt)))}function Jt(){var H;let u=A.guideFlowId,P;return u&&C(u)&&(P=T(u)),ae.default.createElement(ae.default.Fragment,null,ae.default.createElement(Qe,null),ae.default.createElement(qr,F({visible:re,stepsTitle:$.stepsTitle?$.stepsTitle:"Your quick start guide",onClose:()=>{pt()},selectedStep:J,setSelectedStep:ne,guideData:P,guideTitle:(H=A.guideTitle)!=null?H:"Guide",appearance:x,title:t,subtitle:o,onGuideButtonClick:we=>{Z(we,"link",0)},customStepTypes:w},Tt)))}function y(){let u=ae.default.createElement(Vr,F({flowId:e,style:n,selectedStep:J,setSelectedStep:ne,appearance:x,type:s},Tt));return Se?ae.default.createElement(mt,{onClose:()=>{pt()},visible:re,appearance:x,style:{paddingTop:"0px",padding:"12px",paddingLeft:0}},ae.default.createElement(Qe,null),u):ae.default.createElement(ae.default.Fragment,null,ae.default.createElement(Qe,null),u)}switch(h){case"condensed":return Xt();case"with-guide":return Jt();case"default":return y();case"carousel":return Wt();default:return y()}};var fl=e=>ul.default.createElement(br,F({type:"inline"},e));var at=f(require("react"));var lt=f(require("react"));var jo=f(require("styled-components"));var gl=jo.default.div`
1358
1358
  border: 1px solid ${e=>e.appearance.theme.colorBorder};
1359
- border-radius: 8px;
1359
+ border-radius: ${e=>e.appearance.theme.borderRadius}px;
1360
1360
  padding: 10px 12px 10px 12px;
1361
1361
  min-width: 160px;
1362
1362
  cursor: pointer;
@@ -1394,9 +1394,8 @@ ${e=>e.inlineStyles.map(([t,o])=>`.${Po}${t}.${Po}${t} { ${Object.entries(o).map
1394
1394
  box-sizing: border-box;
1395
1395
  align-items: center;
1396
1396
  background-color: ${e=>e.appearance.theme.colorBackground};
1397
- border-width: 1px;
1398
- border-color: ${e=>e.appearance.theme.colorPrimary};
1399
- border-radius: 12px;
1397
+ border: 1px solid ${e=>e.appearance.theme.colorBorder};
1398
+ border-radius: ${e=>e.appearance.theme.borderRadius}px;
1400
1399
  `,bl=yo.default.div`
1401
1400
  ${e=>E(e)} {
1402
1401
  display: flex;