@frigade/react 1.32.60 → 1.32.61

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 xl=Object.create;var To=Object.defineProperty;var Cl=Object.getOwnPropertyDescriptor;var Sl=Object.getOwnPropertyNames;var yl=Object.getPrototypeOf,bl=Object.prototype.hasOwnProperty;var wl=(e,t)=>{for(var o in t)To(e,o,{get:t[o],enumerable:!0})},Pr=(e,t,o,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Sl(t))!bl.call(e,n)&&n!==o&&To(e,n,{get:()=>t[n],enumerable:!(i=Cl(t,n))||i.enumerable});return e};var g=(e,t,o)=>(o=e!=null?xl(yl(e)):{},Pr(t||!e||!e.__esModule?To(o,"default",{value:e,enumerable:!0}):o,e)),Tl=e=>Pr(To({},"__esModule",{value:!0}),e);var mp={};wl(mp,{CheckBox:()=>Re,FormLabel:()=>ut,FormTextField:()=>Do,FrigadeBanner:()=>pl,FrigadeChecklist:()=>Qo,FrigadeDefaultAppearance:()=>Qe,FrigadeEmbeddedTip:()=>rl,FrigadeForm:()=>lr,FrigadeGuide:()=>Os,FrigadeHeroChecklist:()=>ys,FrigadeNPSSurvey:()=>hl,FrigadeProgressBadge:()=>Ns,FrigadeProvider:()=>Wi,FrigadeSupportWidget:()=>Zs,FrigadeTour:()=>Ws,ProgressRing:()=>vt,useFlowOpens:()=>Ne,useFlowResponses:()=>_t,useFlows:()=>Q,useOrganization:()=>jo,useUser:()=>Wt});module.exports=Tl(mp);var Y=g(require("react")),_i=require("styled-components");var fe=g(require("react"));var He=require("react");var Dt=g(require("react"));var vr="1.32.60 ";var Ie="https://api.frigade.com/v1/public/",ze="NOT_STARTED_STEP",oe="COMPLETED_FLOW",Fo="ABORTED_FLOW",kt="STARTED_FLOW",je="NOT_STARTED_FLOW",Ge="COMPLETED_STEP",ko="STARTED_STEP";function Je(){let{publicApiKey:e,userId:t}=Dt.default.useContext(J);return{config:(0,Dt.useMemo)(()=>({headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Frigade-SDK-Version":vr,"X-Frigade-SDK-Platform":"React"}}),[e,t])}}var Fl="frigade-last-call-at-",kl="frigade-last-call-data-";function $t(){let{shouldGracefullyDegrade:e}=Dt.default.useContext(J);return async(t,o)=>{if(e)return console.log(`Skipping ${t} call to Frigade due to error`),no();let i=Fl+t,n=kl+t;if(window&&window.localStorage&&o&&o.body&&o.method==="POST"){let s=window.localStorage.getItem(i),p=window.localStorage.getItem(n);if(s&&p&&p==o.body){let c=new Date(s);if(new Date().getTime()-c.getTime()<1e3)return no()}window.localStorage.setItem(i,new Date().toISOString()),window.localStorage.setItem(n,o.body)}let r;try{r=await fetch(t,o)}catch(s){return no(s)}return r?r.ok?r:no(r.statusText):no()}}function no(e){return e&&console.log("Call to Frigade failed",e),{json:()=>({})}}function Mt(){let{publicApiKey:e,shouldGracefullyDegrade:t}=Dt.default.useContext(J);function o(){if(t){console.error("Frigade hooks cannot be used when Frigade SDK has failed to initialize");return}e||console.error("Frigade hooks cannot be used outside the scope of FrigadeProvider")}return{verifySDKInitiated:o}}var so=require("react");var Ut=require("react");var Br=g(require("swr"));var Er=require("react");function Ne(){let{openFlowStates:e,setOpenFlowStates:t,hasActiveFullPageFlow:o,setCompletedFlowsToKeepOpenDuringSession:i,completedFlowsToKeepOpenDuringSession:n}=(0,Er.useContext)(J);function r(d,u=!1){return e[d]??u}function s(d,u){t(b=>({...b,[d]:u}))}function p(d){t(u=>{let{[d]:b,...B}=u;return{...B}})}function c(d){n.includes(d)||i(u=>[...u,d])}function a(d){return n.includes(d)}function S(){return Object.values(e).some(d=>d)||o}return{getOpenFlowState:r,setOpenFlowState:s,resetOpenFlowState:p,hasOpenModals:S,setKeepCompletedFlowOpenDuringSession:c,shouldKeepCompletedFlowOpenDuringSession:a}}var Pl="unknown";function We(){let{config:e}=Je(),{publicApiKey:t,userId:o,organizationId:i,flows:n,setShouldGracefullyDegrade:r}=(0,Ut.useContext)(J),{resetOpenFlowState:s}=Ne(),[p,c]=(0,Ut.useState)(!1),a={data:n.map(y=>({flowId:y.id,flowState:oe,lastStepId:null,userId:o,foreignUserId:o,stepStates:{},shouldTrigger:!1}))},S=y=>fetch(y,e).then(m=>{if(m.ok)return m.json();throw new Error("Failed to fetch user flow states")}).catch(m=>(console.log(`Error fetching ${y}: ${m}. Will gracefully degrade and hide Frigade`),r(!0),a)),{data:d,isLoading:u,mutate:b,error:B}=(0,Br.default)(t&&n&&o?`${Ie}userFlowStates?foreignUserId=${encodeURIComponent(o)}${i?`&foreignUserGroupId=${encodeURIComponent(i)}`:""}`:null,S,{revalidateIfStale:!0,keepPreviousData:!0,revalidateOnMount:!0,errorRetryInterval:1e4,errorRetryCount:3,onError:()=>a,onLoadingSlow:()=>a}),f=d==null?void 0:d.data;(0,Ut.useEffect)(()=>{!p&&!u&&f&&c(!0)},[f,p,u]);async function C(y){if(f){let m=f.find(x=>x.flowId===y);m&&m.flowState!==oe&&(m.flowState=oe),await b(Promise.resolve({...d,data:f}),{optimisticData:{...d,data:f},revalidate:!1,rollbackOnError:!1})}}async function k(y,m,x){if(f){let T=f.find(O=>O.flowId===y);T&&(T.stepStates[m]=x,T.flowState=kt),await b(Promise.resolve({...d,data:f}),{optimisticData:{...d,data:f},revalidate:!1,rollbackOnError:!1})}}async function P(y,m,x){if(f){let T=f.find(O=>O.flowId===y);T&&(T.lastStepId=m,T.stepStates[m]=x,T.flowState=kt),await b({...d,data:f},{optimisticData:{...d,data:f},revalidate:!1,rollbackOnError:!1})}}async function I(y){if(f){let m=f.find(x=>x.flowId===y);m&&m.flowState!==je&&(m.flowState=je,m.lastStepId=Pl,Object.keys(m.stepStates).forEach(x=>{m.stepStates[x].actionType=ze,m.stepStates[x].createdAt=new Date().toISOString()}),await b({...d,data:f},{optimisticData:{...d,data:f},revalidate:!1,rollbackOnError:!1}),s(y))}}async function v(y,m){if(f){let x=f.find(T=>T.flowId===y);x&&x.stepStates[m]!==ze&&(x.stepStates[m]=ze),await b({...d,data:f},{optimisticData:{...d,data:f},revalidate:!1,rollbackOnError:!1})}}return{userFlowStatesData:f,isLoadingUserFlowStateData:!p,mutateUserFlowState:b,optimisticallyMarkFlowCompleted:C,optimisticallyMarkFlowNotStarted:I,optimisticallyMarkStepCompleted:k,optimisticallyMarkStepNotStarted:v,optimisticallyMarkStepStarted:P,error:B}}function _t(){let{config:e}=Je(),{userFlowStatesData:t,mutateUserFlowState:o}=We(),{failedFlowResponses:i,setFailedFlowResponses:n,flowResponses:r,setFlowResponses:s}=(0,so.useContext)(J),[p,c]=(0,so.useState)(new Set),[a,S]=(0,so.useState)(new Set),d=$t();function u(f){let C=JSON.stringify(f);if(p.has(C))return null;p.add(C),c(p),a.add(f),S(a);let k=r==null?void 0:r.find(P=>P.flowSlug===f.flowSlug&&P.stepId===f.stepId&&P.actionType===f.actionType&&P.createdAt===f.createdAt);return d(`${Ie}flowResponses`,{...e,method:"POST",body:C}).then(P=>{P.status!==200&&P.status!==201?(console.log("Failed to send flow response for step "+f.stepId+". Will retry again later."),n([...i,f])):k||s(I=>[...I??[],f])})}async function b(f){f.foreignUserId&&(f.actionType===kt||f.actionType===je?await u(f):f.actionType===oe?await u(f):f.actionType===ko?await u(f):f.actionType===Ge?await u(f):f.actionType===Fo?await u(f):f.actionType===ze&&await u(f))}function B(){let f=[];return t==null||t.forEach(C=>{if(C&&C.stepStates&&Object.keys(C.stepStates).length!==0)for(let k in C.stepStates){let P=C.stepStates[k];f.push({foreignUserId:C.foreignUserId,flowSlug:C.flowId,stepId:P.stepId,actionType:P.actionType,data:{},createdAt:new Date(P.createdAt),blocked:P.blocked,hidden:P.hidden})}}),[...f,...r]}return{addResponse:b,setFlowResponses:s,getFlowResponses:B}}var Ir=g(require("swr"));var vl=/user.flow\(([^\)]+)\) == '?COMPLETED_FLOW'?/gm,Ar=e=>{let t=vl.exec(e);if(t===null)return null;let o=null;return t.forEach((i,n)=>{let r=El(i,"'","");r.startsWith("flow_")&&(o=r)}),o},El=function(e,t,o){return e.replace(new RegExp(t,"g"),o)};function Q(){let{config:e}=Je(),{flows:t,setFlows:o,userId:i,publicApiKey:n,customVariables:r,setCustomVariables:s,hasActiveFullPageFlow:p,setHasActiveFullPageFlow:c,setFlowResponses:a,setShouldGracefullyDegrade:S}=(0,He.useContext)(J),d={data:[]},{verifySDKInitiated:u}=Mt(),{addResponse:b,getFlowResponses:B}=_t(),f=h=>fetch(h,e).then(w=>w.ok?w.json():(console.log(`Error fetching ${h} (${w.status}): ${w.statusText}. .Will gracefully degrade and hide Frigade`),S(!0),d)).catch(w=>(console.log(`Error fetching ${h}: ${w}. Will gracefully degrade and hide Frigade`),S(!0),d)),{userFlowStatesData:C,isLoadingUserFlowStateData:k,optimisticallyMarkFlowCompleted:P,optimisticallyMarkFlowNotStarted:I,optimisticallyMarkStepCompleted:v,optimisticallyMarkStepNotStarted:y,optimisticallyMarkStepStarted:m}=We(),{data:x,error:T,isLoading:O}=(0,Ir.default)(n?`${Ie}flows`:null,f,{keepPreviousData:!0});(0,He.useEffect)(()=>{if(T){console.error(T);return}x&&x.data&&(x.data=o(x.data))},[x,T]);function H(h){if(O)return null;let w=t.find(E=>E.slug===h);return!w&&t.length>0&&!k&&!O?(console.log(`Flow with slug ${h} not found`),null):(w==null?void 0:w.active)===!1?null:w}function V(h){var G;if(!H(h))return[];let w=H(h).data;return w?(w=N(w),(((G=JSON.parse(w))==null?void 0:G.data)??[]).map(Se=>{let W=ie(Se);return{handleSecondaryButtonClick:()=>{Se.skippable===!0&&M(h,Se.id,{skipped:!0})},...Se,complete:L(h,Se.id)===Ge||W>=1,blocked:ue(h,Se.id),hidden:Te(h,Se.id),handlePrimaryButtonClick:()=>{(!Se.completionCriteria&&(Se.autoMarkCompleted||Se.autoMarkCompleted===void 0)||Se.completionCriteria&&Se.autoMarkCompleted===!0)&&M(h,Se.id)},progress:W}}).filter(Se=>Se.hidden!==!0)):[]}function N(h){return h.replace(/\${(.*?)}/g,(w,E)=>r[E]!==void 0?String(r[E]):"")}function z(h){if(!H(h))return[];let w=H(h).data;return w?(w=N(w),JSON.parse(w)??{}):[]}function U(h,w){s(E=>({...E,[h]:w}))}function $(h){!k&&!O&&h&&JSON.stringify(r)!=JSON.stringify({...r,...h})&&Object.keys(h).forEach(w=>{U(w,h[w])})}let me=(0,He.useCallback)(async(h,w,E)=>{u();let G={foreignUserId:i,flowSlug:h,stepId:w,actionType:ko,data:E??{},createdAt:new Date,blocked:!1,hidden:!1};pe(G)&&(await m(h,w,G),b(G))},[i,C]),Ce=(0,He.useCallback)(async(h,w,E)=>{u();let G={foreignUserId:i,flowSlug:h,stepId:w,actionType:ze,data:E??{},createdAt:new Date,blocked:!1,hidden:!1};pe(G)&&(await y(h,w),b(G))},[i,C]),M=(0,He.useCallback)(async(h,w,E)=>{u();let G={foreignUserId:i,flowSlug:h,stepId:w,actionType:Ge,data:E??{},createdAt:new Date,blocked:!1,hidden:!1};pe(G)&&(await v(h,w,G),b(G))},[i,C]),Ae=(0,He.useCallback)(async(h,w)=>{if(u(),te(h)===je)return;let E={foreignUserId:i,flowSlug:h,stepId:"unknown",actionType:je,data:w??{},createdAt:new Date,blocked:!1,hidden:!1};await I(h),pe(E)&&b(E)},[i,C]),Pe=(0,He.useCallback)(async(h,w)=>{u();let E={foreignUserId:i,flowSlug:h,stepId:"unknown",actionType:kt,data:w??{},createdAt:new Date,blocked:!1,hidden:!1};pe(E)&&b(E)},[i,C]),ae=(0,He.useCallback)(async(h,w)=>{u();let E={foreignUserId:i,flowSlug:h,stepId:"unknown",actionType:oe,data:w??{},createdAt:new Date,blocked:!1,hidden:!1};pe(E)&&(await P(h),b(E))},[i,C]),q=(0,He.useCallback)(async(h,w)=>{u();let E={foreignUserId:i,flowSlug:h,stepId:"unknown",actionType:Fo,data:w??{},createdAt:new Date,blocked:!1,hidden:!1};pe(E)&&(await P(h),b(E))},[i,C]);function pe(h){var w;if(!C&&h.actionType===ze)return!1;if(C){let E=C.find(G=>G.flowId===h.flowSlug);if(h.actionType===ze&&(!(E!=null&&E.stepStates[h.stepId])||E.stepStates[h.stepId].actionType===ze)||E&&((w=E.stepStates[h.stepId])==null?void 0:w.actionType)===h.actionType||E&&E.flowState===oe&&h.actionType===oe)return!1}return!0}function L(h,w){let E=De(h,w);return k?null:E?E.actionType:ze}function ue(h,w){let E=De(h,w);return E?E.blocked:!1}function Te(h,w){let E=De(h,w);return E?E.hidden:!1}function De(h,w){if(k)return null;let E=C==null?void 0:C.find(G=>G.flowId===h);return!E||!E.stepStates[w]?null:E.stepStates[w]??null}function K(h){var E;if(k||!C)return null;if(te(h)===je)return V(h)[0]??null;let w=(E=C.find(G=>G.flowId===h))==null?void 0:E.lastStepId;return w?V(h).find(G=>G.id===w):null}function Fe(h){let w=K(h);if(!w)return 0;let E=V(h).findIndex(G=>G.id===w.id)??0;return L(h,w.id)===Ge&&E<V(h).length-1?E+1:E}function ie(h){if(!h.completionCriteria)return;let w=Ar(h.completionCriteria);if(w===null)return;let E=at(w),G=pt(w);return G===0?void 0:E/G}function te(h){let w=C==null?void 0:C.find(E=>E.flowId===h);return w?w.flowState:null}function at(h){let w=V(h);return w.length===0?0:w.filter(G=>L(h,G.id)===Ge).length}function pt(h){return V(h).length}function Ot(h){return JSON.parse(t.find(w=>w.slug===h).data)}function j(h){if(k)return!0;if(h!=null&&h.targetingLogic&&C){let w=C.find(E=>E.flowId===h.slug);if(w)return w.shouldTrigger===!1}return!!(h!=null&&h.targetingLogic&&i&&i.startsWith("guest_"))}function _e(h){return!j(H(h))}return{getFlow:H,getFlowData:Ot,isLoading:k||O,getStepStatus:L,getFlowSteps:V,getCurrentStepIndex:Fe,markStepStarted:me,markStepCompleted:M,markFlowNotStarted:Ae,markFlowStarted:Pe,markFlowCompleted:ae,markFlowAborted:q,markStepNotStarted:Ce,getFlowStatus:te,getNumberOfStepsCompleted:at,getNumberOfSteps:pt,targetingLogicShouldHideFlow:j,setCustomVariable:U,updateCustomVariables:$,customVariables:r,getStepOptionalProgress:ie,getFlowMetadata:z,isStepBlocked:ue,isStepHidden:Te,hasActiveFullPageFlow:p,setHasActiveFullPageFlow:c,isFlowAvailableToUser:_e}}var Pt=require("react");var zt="guest_";function Wt(){let{userId:e,organizationId:t,setUserId:o,setUserProperties:i,shouldGracefullyDegrade:n}=(0,Pt.useContext)(J),{config:r}=Je(),{mutateUserFlowState:s}=We(),p=$t(),{verifySDKInitiated:c}=Mt();(0,Pt.useEffect)(()=>{if(e&&!t){if(e.startsWith(zt))return;let d=`frigade-user-registered-${e}`;localStorage.getItem(d)||(p(`${Ie}users`,{...r,method:"POST",body:JSON.stringify({foreignId:e})}),localStorage.setItem(d,"true"))}},[e,n,t]);let a=(0,Pt.useCallback)(async d=>{c();let u={foreignId:e,properties:d};await p(`${Ie}users`,{...r,method:"POST",body:JSON.stringify(u)}),i(b=>({...b,...d})),s()},[e,r,n,s]),S=(0,Pt.useCallback)(async(d,u)=>{c();let B={foreignId:e,events:[{event:d,properties:u}]};await p(`${Ie}users`,{...r,method:"POST",body:JSON.stringify(B)}),s()},[e,r,s]);return{userId:e,setUserId:o,addPropertiesToUser:a,trackEventForUser:S}}var Mi=require("uuid");var Be=g(require("react"));var Le=g(require("react")),ao=g(require("styled-components"));var Or=g(require("react")),Dr=g(require("styled-components"));var Nr="fr-",lo="cfr-";function l(e,t){let o=`${Nr}${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+" "+lo+e}return o}function F(e){if(!e.className||e.className.indexOf(lo)!==-1)return"";let o=e.className.replace(/\s+/g," ").split(" ");return o.length==1&&o[0].startsWith(Nr)?"":`:not(${o.map(i=>`.${i}`).join(", ")})`}function Ro(e){return e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function ct(e){return e!=null&&e.styleOverrides?Object.keys(e.styleOverrides).map(t=>`${Ro(t)}: ${e.styleOverrides[t]};`).join(" "):""}function ve(...e){return e.filter(Boolean).join(" ")}function Lr(e){return e.charAt(0).toUpperCase()+e.slice(1)}var Bl=Dr.default.div`
2
+ var xl=Object.create;var To=Object.defineProperty;var Cl=Object.getOwnPropertyDescriptor;var Sl=Object.getOwnPropertyNames;var yl=Object.getPrototypeOf,bl=Object.prototype.hasOwnProperty;var wl=(e,t)=>{for(var o in t)To(e,o,{get:t[o],enumerable:!0})},Pr=(e,t,o,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Sl(t))!bl.call(e,n)&&n!==o&&To(e,n,{get:()=>t[n],enumerable:!(i=Cl(t,n))||i.enumerable});return e};var g=(e,t,o)=>(o=e!=null?xl(yl(e)):{},Pr(t||!e||!e.__esModule?To(o,"default",{value:e,enumerable:!0}):o,e)),Tl=e=>Pr(To({},"__esModule",{value:!0}),e);var mp={};wl(mp,{CheckBox:()=>Re,FormLabel:()=>ut,FormTextField:()=>Do,FrigadeBanner:()=>pl,FrigadeChecklist:()=>Qo,FrigadeDefaultAppearance:()=>Qe,FrigadeEmbeddedTip:()=>rl,FrigadeForm:()=>lr,FrigadeGuide:()=>Os,FrigadeHeroChecklist:()=>ys,FrigadeNPSSurvey:()=>hl,FrigadeProgressBadge:()=>Ns,FrigadeProvider:()=>Wi,FrigadeSupportWidget:()=>Zs,FrigadeTour:()=>Ws,ProgressRing:()=>vt,useFlowOpens:()=>Ne,useFlowResponses:()=>_t,useFlows:()=>Q,useOrganization:()=>jo,useUser:()=>Wt});module.exports=Tl(mp);var Y=g(require("react")),_i=require("styled-components");var fe=g(require("react"));var He=require("react");var Dt=g(require("react"));var vr="1.32.61 ";var Ie="https://api.frigade.com/v1/public/",ze="NOT_STARTED_STEP",oe="COMPLETED_FLOW",Fo="ABORTED_FLOW",kt="STARTED_FLOW",je="NOT_STARTED_FLOW",Ge="COMPLETED_STEP",ko="STARTED_STEP";function Je(){let{publicApiKey:e,userId:t}=Dt.default.useContext(J);return{config:(0,Dt.useMemo)(()=>({headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Frigade-SDK-Version":vr,"X-Frigade-SDK-Platform":"React"}}),[e,t])}}var Fl="frigade-last-call-at-",kl="frigade-last-call-data-";function $t(){let{shouldGracefullyDegrade:e}=Dt.default.useContext(J);return async(t,o)=>{if(e)return console.log(`Skipping ${t} call to Frigade due to error`),no();let i=Fl+t,n=kl+t;if(window&&window.localStorage&&o&&o.body&&o.method==="POST"){let s=window.localStorage.getItem(i),p=window.localStorage.getItem(n);if(s&&p&&p==o.body){let c=new Date(s);if(new Date().getTime()-c.getTime()<1e3)return no()}window.localStorage.setItem(i,new Date().toISOString()),window.localStorage.setItem(n,o.body)}let r;try{r=await fetch(t,o)}catch(s){return no(s)}return r?r.ok?r:no(r.statusText):no()}}function no(e){return e&&console.log("Call to Frigade failed",e),{json:()=>({})}}function Mt(){let{publicApiKey:e,shouldGracefullyDegrade:t}=Dt.default.useContext(J);function o(){if(t){console.error("Frigade hooks cannot be used when Frigade SDK has failed to initialize");return}e||console.error("Frigade hooks cannot be used outside the scope of FrigadeProvider")}return{verifySDKInitiated:o}}var so=require("react");var Ut=require("react");var Br=g(require("swr"));var Er=require("react");function Ne(){let{openFlowStates:e,setOpenFlowStates:t,hasActiveFullPageFlow:o,setCompletedFlowsToKeepOpenDuringSession:i,completedFlowsToKeepOpenDuringSession:n}=(0,Er.useContext)(J);function r(d,u=!1){return e[d]??u}function s(d,u){t(b=>({...b,[d]:u}))}function p(d){t(u=>{let{[d]:b,...B}=u;return{...B}})}function c(d){n.includes(d)||i(u=>[...u,d])}function a(d){return n.includes(d)}function S(){return Object.values(e).some(d=>d)||o}return{getOpenFlowState:r,setOpenFlowState:s,resetOpenFlowState:p,hasOpenModals:S,setKeepCompletedFlowOpenDuringSession:c,shouldKeepCompletedFlowOpenDuringSession:a}}var Pl="unknown";function We(){let{config:e}=Je(),{publicApiKey:t,userId:o,organizationId:i,flows:n,setShouldGracefullyDegrade:r}=(0,Ut.useContext)(J),{resetOpenFlowState:s}=Ne(),[p,c]=(0,Ut.useState)(!1),a={data:n.map(y=>({flowId:y.id,flowState:oe,lastStepId:null,userId:o,foreignUserId:o,stepStates:{},shouldTrigger:!1}))},S=y=>fetch(y,e).then(m=>{if(m.ok)return m.json();throw new Error("Failed to fetch user flow states")}).catch(m=>(console.log(`Error fetching ${y}: ${m}. Will gracefully degrade and hide Frigade`),r(!0),a)),{data:d,isLoading:u,mutate:b,error:B}=(0,Br.default)(t&&n&&o?`${Ie}userFlowStates?foreignUserId=${encodeURIComponent(o)}${i?`&foreignUserGroupId=${encodeURIComponent(i)}`:""}`:null,S,{revalidateIfStale:!0,keepPreviousData:!0,revalidateOnMount:!0,errorRetryInterval:1e4,errorRetryCount:3,onError:()=>a,onLoadingSlow:()=>a}),f=d==null?void 0:d.data;(0,Ut.useEffect)(()=>{!p&&!u&&f&&c(!0)},[f,p,u]);async function C(y){if(f){let m=f.find(x=>x.flowId===y);m&&m.flowState!==oe&&(m.flowState=oe),await b(Promise.resolve({...d,data:f}),{optimisticData:{...d,data:f},revalidate:!1,rollbackOnError:!1})}}async function k(y,m,x){if(f){let T=f.find(O=>O.flowId===y);T&&(T.stepStates[m]=x,T.flowState=kt),await b(Promise.resolve({...d,data:f}),{optimisticData:{...d,data:f},revalidate:!1,rollbackOnError:!1})}}async function P(y,m,x){if(f){let T=f.find(O=>O.flowId===y);T&&(T.lastStepId=m,T.stepStates[m]=x,T.flowState=kt),await b({...d,data:f},{optimisticData:{...d,data:f},revalidate:!1,rollbackOnError:!1})}}async function I(y){if(f){let m=f.find(x=>x.flowId===y);m&&m.flowState!==je&&(m.flowState=je,m.lastStepId=Pl,Object.keys(m.stepStates).forEach(x=>{m.stepStates[x].actionType=ze,m.stepStates[x].createdAt=new Date().toISOString()}),await b({...d,data:f},{optimisticData:{...d,data:f},revalidate:!1,rollbackOnError:!1}),s(y))}}async function v(y,m){if(f){let x=f.find(T=>T.flowId===y);x&&x.stepStates[m]!==ze&&(x.stepStates[m]=ze),await b({...d,data:f},{optimisticData:{...d,data:f},revalidate:!1,rollbackOnError:!1})}}return{userFlowStatesData:f,isLoadingUserFlowStateData:!p,mutateUserFlowState:b,optimisticallyMarkFlowCompleted:C,optimisticallyMarkFlowNotStarted:I,optimisticallyMarkStepCompleted:k,optimisticallyMarkStepNotStarted:v,optimisticallyMarkStepStarted:P,error:B}}function _t(){let{config:e}=Je(),{userFlowStatesData:t,mutateUserFlowState:o}=We(),{failedFlowResponses:i,setFailedFlowResponses:n,flowResponses:r,setFlowResponses:s}=(0,so.useContext)(J),[p,c]=(0,so.useState)(new Set),[a,S]=(0,so.useState)(new Set),d=$t();function u(f){let C=JSON.stringify(f);if(p.has(C))return null;p.add(C),c(p),a.add(f),S(a);let k=r==null?void 0:r.find(P=>P.flowSlug===f.flowSlug&&P.stepId===f.stepId&&P.actionType===f.actionType&&P.createdAt===f.createdAt);return d(`${Ie}flowResponses`,{...e,method:"POST",body:C}).then(P=>{P.status!==200&&P.status!==201?(console.log("Failed to send flow response for step "+f.stepId+". Will retry again later."),n([...i,f])):k||s(I=>[...I??[],f])})}async function b(f){f.foreignUserId&&(f.actionType===kt||f.actionType===je?await u(f):f.actionType===oe?await u(f):f.actionType===ko?await u(f):f.actionType===Ge?await u(f):f.actionType===Fo?await u(f):f.actionType===ze&&await u(f))}function B(){let f=[];return t==null||t.forEach(C=>{if(C&&C.stepStates&&Object.keys(C.stepStates).length!==0)for(let k in C.stepStates){let P=C.stepStates[k];f.push({foreignUserId:C.foreignUserId,flowSlug:C.flowId,stepId:P.stepId,actionType:P.actionType,data:{},createdAt:new Date(P.createdAt),blocked:P.blocked,hidden:P.hidden})}}),[...f,...r]}return{addResponse:b,setFlowResponses:s,getFlowResponses:B}}var Ir=g(require("swr"));var vl=/user.flow\(([^\)]+)\) == '?COMPLETED_FLOW'?/gm,Ar=e=>{let t=vl.exec(e);if(t===null)return null;let o=null;return t.forEach((i,n)=>{let r=El(i,"'","");r.startsWith("flow_")&&(o=r)}),o},El=function(e,t,o){return e.replace(new RegExp(t,"g"),o)};function Q(){let{config:e}=Je(),{flows:t,setFlows:o,userId:i,publicApiKey:n,customVariables:r,setCustomVariables:s,hasActiveFullPageFlow:p,setHasActiveFullPageFlow:c,setFlowResponses:a,setShouldGracefullyDegrade:S}=(0,He.useContext)(J),d={data:[]},{verifySDKInitiated:u}=Mt(),{addResponse:b,getFlowResponses:B}=_t(),f=h=>fetch(h,e).then(w=>w.ok?w.json():(console.log(`Error fetching ${h} (${w.status}): ${w.statusText}. .Will gracefully degrade and hide Frigade`),S(!0),d)).catch(w=>(console.log(`Error fetching ${h}: ${w}. Will gracefully degrade and hide Frigade`),S(!0),d)),{userFlowStatesData:C,isLoadingUserFlowStateData:k,optimisticallyMarkFlowCompleted:P,optimisticallyMarkFlowNotStarted:I,optimisticallyMarkStepCompleted:v,optimisticallyMarkStepNotStarted:y,optimisticallyMarkStepStarted:m}=We(),{data:x,error:T,isLoading:O}=(0,Ir.default)(n?`${Ie}flows`:null,f,{keepPreviousData:!0});(0,He.useEffect)(()=>{if(T){console.error(T);return}x&&x.data&&(x.data=o(x.data))},[x,T]);function V(h){if(O)return null;let w=t.find(E=>E.slug===h);return!w&&t.length>0&&!k&&!O?(console.log(`Flow with slug ${h} not found`),null):(w==null?void 0:w.active)===!1?null:w}function j(h){var W;if(!V(h))return[];let w=V(h).data;return w?(w=N(w),(((W=JSON.parse(w))==null?void 0:W.data)??[]).map(Se=>{let H=ie(Se);return{handleSecondaryButtonClick:()=>{Se.skippable===!0&&M(h,Se.id,{skipped:!0})},...Se,complete:L(h,Se.id)===Ge||H>=1,blocked:ue(h,Se.id),hidden:Te(h,Se.id),handlePrimaryButtonClick:()=>{(!Se.completionCriteria&&(Se.autoMarkCompleted||Se.autoMarkCompleted===void 0)||Se.completionCriteria&&Se.autoMarkCompleted===!0)&&M(h,Se.id)},progress:H}}).filter(Se=>Se.hidden!==!0)):[]}function N(h){return h.replaceAll(/\${(.*?)}/g,(w,E)=>r[E]===void 0?"":String(r[E]).replace(/[\u00A0-\u9999<>\&]/g,function(W){return"&#"+W.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 z(h){if(!V(h))return[];let w=V(h).data;return w?(w=N(w),JSON.parse(w)??{}):[]}function U(h,w){s(E=>({...E,[h]:w}))}function $(h){!k&&!O&&h&&JSON.stringify(r)!=JSON.stringify({...r,...h})&&Object.keys(h).forEach(w=>{U(w,h[w])})}let me=(0,He.useCallback)(async(h,w,E)=>{u();let W={foreignUserId:i,flowSlug:h,stepId:w,actionType:ko,data:E??{},createdAt:new Date,blocked:!1,hidden:!1};pe(W)&&(await m(h,w,W),b(W))},[i,C]),Ce=(0,He.useCallback)(async(h,w,E)=>{u();let W={foreignUserId:i,flowSlug:h,stepId:w,actionType:ze,data:E??{},createdAt:new Date,blocked:!1,hidden:!1};pe(W)&&(await y(h,w),b(W))},[i,C]),M=(0,He.useCallback)(async(h,w,E)=>{u();let W={foreignUserId:i,flowSlug:h,stepId:w,actionType:Ge,data:E??{},createdAt:new Date,blocked:!1,hidden:!1};pe(W)&&(await v(h,w,W),b(W))},[i,C]),Ae=(0,He.useCallback)(async(h,w)=>{if(u(),te(h)===je)return;let E={foreignUserId:i,flowSlug:h,stepId:"unknown",actionType:je,data:w??{},createdAt:new Date,blocked:!1,hidden:!1};await I(h),pe(E)&&b(E)},[i,C]),Pe=(0,He.useCallback)(async(h,w)=>{u();let E={foreignUserId:i,flowSlug:h,stepId:"unknown",actionType:kt,data:w??{},createdAt:new Date,blocked:!1,hidden:!1};pe(E)&&b(E)},[i,C]),ae=(0,He.useCallback)(async(h,w)=>{u();let E={foreignUserId:i,flowSlug:h,stepId:"unknown",actionType:oe,data:w??{},createdAt:new Date,blocked:!1,hidden:!1};pe(E)&&(await P(h),b(E))},[i,C]),q=(0,He.useCallback)(async(h,w)=>{u();let E={foreignUserId:i,flowSlug:h,stepId:"unknown",actionType:Fo,data:w??{},createdAt:new Date,blocked:!1,hidden:!1};pe(E)&&(await P(h),b(E))},[i,C]);function pe(h){var w;if(!C&&h.actionType===ze)return!1;if(C){let E=C.find(W=>W.flowId===h.flowSlug);if(h.actionType===ze&&(!(E!=null&&E.stepStates[h.stepId])||E.stepStates[h.stepId].actionType===ze)||E&&((w=E.stepStates[h.stepId])==null?void 0:w.actionType)===h.actionType||E&&E.flowState===oe&&h.actionType===oe)return!1}return!0}function L(h,w){let E=De(h,w);return k?null:E?E.actionType:ze}function ue(h,w){let E=De(h,w);return E?E.blocked:!1}function Te(h,w){let E=De(h,w);return E?E.hidden:!1}function De(h,w){if(k)return null;let E=C==null?void 0:C.find(W=>W.flowId===h);return!E||!E.stepStates[w]?null:E.stepStates[w]??null}function K(h){var E;if(k||!C)return null;if(te(h)===je)return j(h)[0]??null;let w=(E=C.find(W=>W.flowId===h))==null?void 0:E.lastStepId;return w?j(h).find(W=>W.id===w):null}function Fe(h){let w=K(h);if(!w)return 0;let E=j(h).findIndex(W=>W.id===w.id)??0;return L(h,w.id)===Ge&&E<j(h).length-1?E+1:E}function ie(h){if(!h.completionCriteria)return;let w=Ar(h.completionCriteria);if(w===null)return;let E=at(w),W=pt(w);return W===0?void 0:E/W}function te(h){let w=C==null?void 0:C.find(E=>E.flowId===h);return w?w.flowState:null}function at(h){let w=j(h);return w.length===0?0:w.filter(W=>L(h,W.id)===Ge).length}function pt(h){return j(h).length}function Ot(h){return JSON.parse(t.find(w=>w.slug===h).data)}function G(h){if(k)return!0;if(h!=null&&h.targetingLogic&&C){let w=C.find(E=>E.flowId===h.slug);if(w)return w.shouldTrigger===!1}return!!(h!=null&&h.targetingLogic&&i&&i.startsWith("guest_"))}function _e(h){return!G(V(h))}return{getFlow:V,getFlowData:Ot,isLoading:k||O,getStepStatus:L,getFlowSteps:j,getCurrentStepIndex:Fe,markStepStarted:me,markStepCompleted:M,markFlowNotStarted:Ae,markFlowStarted:Pe,markFlowCompleted:ae,markFlowAborted:q,markStepNotStarted:Ce,getFlowStatus:te,getNumberOfStepsCompleted:at,getNumberOfSteps:pt,targetingLogicShouldHideFlow:G,setCustomVariable:U,updateCustomVariables:$,customVariables:r,getStepOptionalProgress:ie,getFlowMetadata:z,isStepBlocked:ue,isStepHidden:Te,hasActiveFullPageFlow:p,setHasActiveFullPageFlow:c,isFlowAvailableToUser:_e}}var Pt=require("react");var zt="guest_";function Wt(){let{userId:e,organizationId:t,setUserId:o,setUserProperties:i,shouldGracefullyDegrade:n}=(0,Pt.useContext)(J),{config:r}=Je(),{mutateUserFlowState:s}=We(),p=$t(),{verifySDKInitiated:c}=Mt();(0,Pt.useEffect)(()=>{if(e&&!t){if(e.startsWith(zt))return;let d=`frigade-user-registered-${e}`;localStorage.getItem(d)||(p(`${Ie}users`,{...r,method:"POST",body:JSON.stringify({foreignId:e})}),localStorage.setItem(d,"true"))}},[e,n,t]);let a=(0,Pt.useCallback)(async d=>{c();let u={foreignId:e,properties:d};await p(`${Ie}users`,{...r,method:"POST",body:JSON.stringify(u)}),i(b=>({...b,...d})),s()},[e,r,n,s]),S=(0,Pt.useCallback)(async(d,u)=>{c();let B={foreignId:e,events:[{event:d,properties:u}]};await p(`${Ie}users`,{...r,method:"POST",body:JSON.stringify(B)}),s()},[e,r,s]);return{userId:e,setUserId:o,addPropertiesToUser:a,trackEventForUser:S}}var Mi=require("uuid");var Be=g(require("react"));var Le=g(require("react")),ao=g(require("styled-components"));var Or=g(require("react")),Dr=g(require("styled-components"));var Nr="fr-",lo="cfr-";function l(e,t){let o=`${Nr}${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+" "+lo+e}return o}function F(e){if(!e.className||e.className.indexOf(lo)!==-1)return"";let o=e.className.replace(/\s+/g," ").split(" ");return o.length==1&&o[0].startsWith(Nr)?"":`:not(${o.map(i=>`.${i}`).join(", ")})`}function Ro(e){return e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function ct(e){return e!=null&&e.styleOverrides?Object.keys(e.styleOverrides).map(t=>`${Ro(t)}: ${e.styleOverrides[t]};`).join(" "):""}function ve(...e){return e.filter(Boolean).join(" ")}function Lr(e){return e.charAt(0).toUpperCase()+e.slice(1)}var Bl=Dr.default.div`
3
3
  display: flex;
4
4
  justify-content: center;
5
5
  position: fixed;
@@ -628,8 +628,8 @@ var xl=Object.create;var To=Object.defineProperty;var Cl=Object.getOwnPropertyDe
628
628
  color: ${e=>{var t,o;return(o=(t=e.appearance)==null?void 0:t.theme)==null?void 0:o.colorText}};
629
629
  display: flex;
630
630
  align-self: center;
631
- `;var Ni=({stepData:e,setCanContinue:t,onSaveData:o,appearance:i})=>{let n=e.props,[r,s]=(0,be.useState)([]),[p,c]=(0,be.useState)(!1),[a,S]=(0,be.useState)(e.id);return(0,be.useEffect)(()=>{r.length==0&&!p&&(c(!0),o({choice:[]}))},[p]),(0,be.useEffect)(()=>{a!==e.id&&(S(e.id),s([]))},[e]),(0,be.useEffect)(()=>{o({choice:r}),r.length>=n.minChoices?t(!0):t(!1)},[r]),be.default.createElement(Fi,{className:l("selectListContainer",i)},be.default.createElement(ki,null,be.default.createElement(Pi,{className:l("selectListTitle",i)},e.title),be.default.createElement(vi,{appearance:i,className:l("selectListSubtitle",i)},e.subtitle)),n.options.map((d,u)=>{let b=r.includes(d.id);return be.default.createElement(Ei,{key:`select-item-${u}`,onClick:()=>{if(r.includes(d.id)){s(r.filter(B=>B!==d.id));return}r.length<n.maxChoices?s([...r,d.id]):r.length==1&&n.maxChoices==1&&s([d.id])},hideBottomBorder:u===n.options.length-1,className:l("selectListSelectItem",i)},be.default.createElement(Bi,{className:l("selectListItemImage",i)},d.imageUri&&be.default.createElement(Ai,{src:d.imageUri,alt:`select-icon-${u}`}),be.default.createElement(Ii,{appearance:i,className:l("selectListSelectItemText",i)},d.title)),be.default.createElement(Re,{appearance:i,value:b,primaryColor:i.theme.colorPrimary}))}))};var Z=g(require("react"));var Ho=require("framer-motion"),ka=({children:e,id:t,shouldWrap:o=!1})=>Z.default.createElement(Z.default.Fragment,null,o?Z.default.createElement(Ho.AnimatePresence,{initial:!1},Z.default.createElement(Ho.motion.div,{key:t,initial:{opacity:1,y:"100%"},animate:{opacity:1,y:0},exit:{opacity:0,y:"-100%"},transition:{duration:.5,ease:"easeInOut"},style:{width:"100%",height:"100%",position:"absolute",top:0,left:0,zIndex:1,overflowY:"auto"}},e)):e),Vo=({appearance:e,steps:t,selectedStep:o,customStepTypes:i,customVariables:n,onButtonClick:r,onStepCompletion:s,flowId:p,type:c,hideOnFlowCompletion:a,onComplete:S,setVisible:d,setShowModal:u,onDismiss:b,showPagination:B=!1,customFormElements:f,allowBackNavigation:C,validationHandler:k})=>{var De;let I={...{linkCollection:wi,multiInput:pi,callToAction:Ti,selectList:Ni},...i},{primaryCTAClickSideEffects:v,secondaryCTAClickSideEffects:y}=de(),[m,x]=(0,Z.useState)(!1),[T,O]=(0,Z.useState)({}),[H,V]=(0,Z.useState)(!1),[N,z]=(0,Z.useState)(!1),[U,$]=(0,Z.useState)(null),me=t[o]??null,{markStepCompleted:Ce,markStepStarted:M,isLoading:Ae,updateCustomVariables:Pe,markFlowCompleted:ae}=Q();(0,Z.useEffect)(()=>{Pe(n)},[n,Ae]),(0,Z.useEffect)(()=>{window&&C&&!N&&(window.location.hash=t[o].id,z(!0))},[C,N,z]),(0,Z.useEffect)(()=>{var K;if(window&&((K=window==null?void 0:window.location)!=null&&K.hash)&&window.location.hash.replace("#","")!==t[o].id){let Fe=window.location.hash.replace("#",""),ie=t.findIndex(te=>te.id===Fe);ie!==-1&&M(p,t[ie].id)}},[(De=window==null?void 0:window.location)==null?void 0:De.hash,M,o,t]);function q(){return{data:T[t[o].id]??{},stepId:t[o].id,customVariables:n}}function pe(K,Fe,ie){let te=o+1<t.length?t[o+1]:null;r&&r(K,o,Fe,te),s&&s(K,ie,te,T,q())}function L(K,Fe){O(ie=>{let te={};return te[K.id]=Fe,{...ie,...te}})}function ue(K){return K.selectedStep.imageUri?Z.default.createElement(hi,{image:K.selectedStep.imageUri,appearance:e,className:l("formContainerSidebarImage",e)}):null}let Te=Z.default.createElement(Ci,{step:t[o],canContinue:m&&!H,formType:c,selectedStep:o,appearance:e,onPrimaryClick:async()=>{if(V(!0),k){let Fe=await k(t[o],o,t[o+1],T,q());if(Fe){$(Fe),V(!1);return}else $(null)}let K={...q()};await Ce(p,t[o].id,K),o+1<t.length&&await M(p,t[o+1].id),pe(t[o],"primary",o),o+1>=t.length&&(S&&S(),b&&b(),a&&(d&&d(!1),u(!1)),await ae(p)),v(t[o]),V(!1),window&&C&&o+1<t.length&&(window.location.hash=t[o+1].id)},onSecondaryClick:()=>{pe(t[o],"secondary",o),y(t[o])},onBack:async()=>{o-1>=0&&(V(!0),await M(p,t[o-1].id),V(!1))},steps:t,allowBackNavigation:C,errorMessage:U});return Z.default.createElement(Z.default.Fragment,null,Z.default.createElement(ui,{className:l("formContainer",e)},Z.default.createElement(fi,null,Z.default.createElement(ka,{id:o,shouldWrap:c==="large-modal"},Z.default.createElement(gi,{key:me.id,type:c,className:l("formContent",e)},t.map(K=>{let Fe=I[K.type];return me.id!==K.id?null:Z.default.createElement(Fe,{key:K.id,stepData:K,canContinue:m,setCanContinue:x,onSaveData:ie=>{L(K,ie)},appearance:e,customFormElements:f,flowId:p})}),B&&Z.default.createElement(yi,{className:l("formPagination",e),appearance:e,stepCount:t.length,currentStep:o}),Te))),c=="large-modal"&&Z.default.createElement(ue,{selectedStep:t[o]})))};var qt=g(require("react")),Li=require("styled-components");function se({appearance:e}){if(!e||!e.styleOverrides)return qt.default.createElement(qt.default.Fragment,null);let t=Object.entries(e.styleOverrides).filter(([i,n])=>typeof n=="object");if(t.length===0)return qt.default.createElement(qt.default.Fragment,null);let o=Li.createGlobalStyle`
632
- ${i=>i.inlineStyles.map(([n,r])=>`.${lo}${n}.${lo}${n} { ${Object.entries(r).map(([s,p])=>`${Ro(s)}: ${p};`).join(" ")} }`).join(" ")}`;return qt.default.createElement(o,{inlineStyles:t})}var lr=({flowId:e,customStepTypes:t={},type:o="inline",visible:i,setVisible:n,customVariables:r,customFormElements:s,onComplete:p,appearance:c,hideOnFlowCompletion:a=!0,onStepCompletion:S,onButtonClick:d,dismissible:u=!0,endFlowOnDismiss:b=!1,modalPosition:B="center",repeatable:f=!1,onDismiss:C,showPagination:k=!1,allowBackNavigation:P=!1,validationHandler:I,showFrigadeBranding:v=!1})=>{let{getFlow:y,getFlowSteps:m,isLoading:x,targetingLogicShouldHideFlow:T,getFlowStatus:O,getCurrentStepIndex:H,markFlowCompleted:V,markFlowNotStarted:N}=Q(),z=H(e),{mergeAppearanceWithDefault:U}=re(),[$,me]=(0,Be.useState)(!1),{setOpenFlowState:Ce,getOpenFlowState:M}=Ne();c=U(c);let[Ae,Pe]=i!==void 0&&n!==void 0?[i,n]:[M(e,!0),L=>Ce(e,L)];if((0,Be.useEffect)(()=>{!$&&!x&&(me(!0),O(e)===oe&&f&&N(e),me(!0))},[$,me,x]),x)return null;let ae=y(e);if(!ae||T(ae))return null;let q=m(e);if(!q||i!==void 0&&i===!1||O(e)===oe&&a)return null;let pe=()=>{Pe(!1),C&&C(),b===!0&&V(e)};if(B=="center"&&o==="modal"||o==="large-modal"){let L={padding:"24px"};return o==="large-modal"?(L.width="85%",L.height="90%",L.maxHeight="800px",L.minHeight="500px",L.padding="0"):L.width="400px",Be.default.createElement(Ct,{appearance:c,onClose:pe,visible:Ae,style:L,dismissible:u,showFrigadeBranding:v},Be.default.createElement(se,{appearance:c}),Be.default.createElement(Vo,{appearance:c,steps:q,selectedStep:z,customStepTypes:t,customVariables:r,onButtonClick:d,onStepCompletion:S,flowId:e,type:o,hideOnFlowCompletion:a,onComplete:p,setVisible:n,setShowModal:Pe,onDismiss:C,showPagination:k,customFormElements:s,allowBackNavigation:P,validationHandler:I}))}return o==="modal"&&B!=="center"?Be.default.createElement(Qr,{appearance:c,onClose:pe,visible:Ae},Be.default.createElement(se,{appearance:c}),Be.default.createElement(Vo,{appearance:c,steps:q,selectedStep:z,customStepTypes:t,customVariables:r,onButtonClick:d,onStepCompletion:S,flowId:e,type:o,hideOnFlowCompletion:a,onComplete:p,setVisible:n,setShowModal:Pe,onDismiss:C,showPagination:k,customFormElements:s,allowBackNavigation:P,validationHandler:I})):Be.default.createElement(Be.default.Fragment,null,Be.default.createElement(se,{appearance:c}),Be.default.createElement(Vo,{appearance:c,steps:q,selectedStep:z,customStepTypes:t,customVariables:r,onButtonClick:d,onStepCompletion:S,flowId:e,type:o,hideOnFlowCompletion:a,onComplete:p,setVisible:n,setShowModal:Pe,onDismiss:C,showPagination:k,customFormElements:s,allowBackNavigation:P,validationHandler:I}))},Oi=lr;var Bt=require("react");function jo(){let{organizationId:e,userId:t,setOrganizationId:o}=(0,Bt.useContext)(J),{mutateUserFlowState:i}=We(),{config:n}=Je(),r=$t(),{verifySDKInitiated:s}=Mt();(0,Bt.useEffect)(()=>{if(t&&e){if(t.startsWith(zt))return;let a=`frigade-user-group-registered-${t}-${e}`;localStorage.getItem(a)||(r(`${Ie}userGroups`,{...n,method:"POST",body:JSON.stringify({foreignUserId:t,foreignUserGroupId:e})}),localStorage.setItem(a,"true"))}},[t,e]);let p=(0,Bt.useCallback)(async a=>{if(s(),!e||!t){console.error("Cannot add properties to organization: Organization ID and User ID must both be set.",{organizationId:e,userId:t});return}let S={foreignUserId:t,foreignUserGroupId:e,properties:a};await r(`${Ie}userGroups`,{...n,method:"POST",body:JSON.stringify(S)}),i()},[e,t,n,i]),c=(0,Bt.useCallback)(async(a,S)=>{if(s(),!e||!t){console.error("Cannot track event for organization: Organization ID and User ID must both be set.",{organizationId:e,userId:t});return}let u={foreignUserId:t,foreignUserGroupId:e,events:[{event:a,properties:S}]};await r(`${Ie}userGroups`,{...n,method:"POST",body:JSON.stringify(u)}),i()},[e,t,n,i]);return{organizationId:e,setOrganizationId:o,addPropertiesToOrganization:p,trackEventForOrganization:c}}var Di="xFrigade_guestUserId",$i="xFrigade_userId",Ui=({})=>{let{setFlowResponses:e}=_t(),{userFlowStatesData:t,isLoadingUserFlowStateData:o,mutateUserFlowState:i}=We(),{userId:n,setUserId:r}=Wt(),[s,p]=(0,fe.useState)(null),{getFlowStatus:c}=Q(),{flows:a,userProperties:S,setIsNewGuestUser:d,flowResponses:u}=(0,fe.useContext)(J),[b,B]=(0,fe.useState)([]),[f,C]=(0,fe.useState)([]),{organizationId:k}=jo();(0,fe.useEffect)(()=>{if(!o&&t)for(let y=0;y<t.length;y++){let m=t[y],x=a.find(T=>T.slug===(m==null?void 0:m.flowId));if(x&&m&&m.shouldTrigger===!0&&x.type=="FORM"&&x.triggerType==="AUTOMATIC"&&!f.includes(x.slug)){setTimeout(()=>{P(m.flowId)},500);break}}},[o,t]),(0,fe.useEffect)(()=>{u.length>0&&i()},[u]);function P(y){let m=a.find(x=>x.slug===y);m&&m.triggerType==="AUTOMATIC"&&!f.includes(m.slug)&&(C([...f,m.slug]),B([m]))}function I(){if(!n){let y=localStorage.getItem($i);if(y){r(y);return}let m=localStorage.getItem(Di);if(m){r(m);return}d(!0);let x=zt+(0,Mi.v4)();try{localStorage.setItem(Di,x)}catch(T){console.log("Failed to save guest user id locally: Local storage unavailable",T)}r(T=>T||x)}}(0,fe.useEffect)(()=>{try{if(a){let y=[];a.forEach(m=>{if(m.data){let x=m.data.match(/"imageUri":"(.*?)"/g);x&&x.forEach(T=>{let O=T.replace('"imageUri":"',"").replace('"',"");if(y.includes(O))return;let H=new Image;H.src=O,y.push(O)})}})}}catch{}},[a]),(0,fe.useEffect)(()=>{if(n!==s&&e([]),p(n),n&&!n.startsWith(zt))try{localStorage.setItem($i,n)}catch(y){console.log("Failed to save user id locally: Local storage available",y)}n===null&&setTimeout(()=>{n===null&&I()},50)},[n,a,S]);function v(){return fe.default.createElement(fe.default.Fragment,null,b.map(y=>c(y.slug)!==je?null:fe.default.createElement("span",{key:y.slug},fe.default.createElement(Oi,{flowId:y.slug,type:"modal",modalPosition:"center",endFlowOnDismiss:!0}))))}return fe.default.createElement(fe.default.Fragment,null,fe.default.createElement(v,null))};var zi=require("react-error-boundary"),J=(0,Y.createContext)({publicApiKey:"",setUserId:()=>{},flows:[],setFlows:()=>{},failedFlowResponses:[],setFailedFlowResponses:()=>{},flowResponses:[],setFlowResponses:()=>{},userProperties:{},setUserProperties:()=>{},openFlowStates:{},setOpenFlowStates:()=>{},completedFlowsToKeepOpenDuringSession:[],setCompletedFlowsToKeepOpenDuringSession:()=>{},customVariables:{},setCustomVariables:()=>{},isNewGuestUser:!1,setIsNewGuestUser:()=>{},hasActiveFullPageFlow:!1,setHasActiveFullPageFlow:()=>{},organizationId:"",setOrganizationId:()=>{},navigate:()=>{},defaultAppearance:Qe,shouldGracefullyDegrade:!1,setShouldGracefullyDegrade:()=>{}}),Wi=({publicApiKey:e,userId:t,organizationId:o,config:i,children:n})=>{var me,Ce;let[r,s]=(0,Y.useState)(t||null),[p,c]=(0,Y.useState)(o||null),[a,S]=(0,Y.useState)([]),[d,u]=(0,Y.useState)([]),[b,B]=(0,Y.useState)([]),[f,C]=(0,Y.useState)({}),[k,P]=(0,Y.useState)({}),[I,v]=(0,Y.useState)([]),[y,m]=(0,Y.useState)({}),[x,T]=(0,Y.useState)(!1),[O,H]=(0,Y.useState)(!1),[V,N]=(0,Y.useState)(!$(e)),z=(M,Ae)=>{if(Ae==="_blank"){window.open(M,"_blank");return}setTimeout(()=>{window.location.href=M},50)},U={theme:{...Qe.theme,...((me=i==null?void 0:i.defaultAppearance)==null?void 0:me.theme)??{}},styleOverrides:{...Qe.styleOverrides,...((Ce=i==null?void 0:i.defaultAppearance)==null?void 0:Ce.styleOverrides)??{}}};function $(M){return!!(M&&M.length>10&&M.substring(0,10)==="api_public")}return(0,Y.useEffect)(()=>{t&&s(t)},[t]),(0,Y.useEffect)(()=>{o&&c(o)},[o]),(0,Y.useEffect)(()=>{if($(e))N(!1);else{console.error("Frigade SDK failed to initialize. API key provided is either missing or valid."),N(!0);return}},[e,N]),V?Y.default.createElement(J.Provider,{value:{publicApiKey:e,userId:r,setUserId:s,setFlows:S,flows:a,failedFlowResponses:d,setFailedFlowResponses:u,flowResponses:b,setFlowResponses:B,userProperties:f,setUserProperties:C,openFlowStates:k,setOpenFlowStates:P,completedFlowsToKeepOpenDuringSession:I,setCompletedFlowsToKeepOpenDuringSession:v,customVariables:y,setCustomVariables:m,isNewGuestUser:x,setIsNewGuestUser:T,hasActiveFullPageFlow:O,setHasActiveFullPageFlow:H,organizationId:p,setOrganizationId:c,navigate:i&&i.navigate?i.navigate:z,defaultAppearance:U,shouldGracefullyDegrade:V,setShouldGracefullyDegrade:N}},n):Y.default.createElement(zi.ErrorBoundary,{fallback:Y.default.createElement(Y.default.Fragment,null,n)},Y.default.createElement(J.Provider,{value:{publicApiKey:e,userId:r,setUserId:s,setFlows:S,flows:a,failedFlowResponses:d,setFailedFlowResponses:u,flowResponses:b,setFlowResponses:B,userProperties:f,setUserProperties:C,openFlowStates:k,setOpenFlowStates:P,completedFlowsToKeepOpenDuringSession:I,setCompletedFlowsToKeepOpenDuringSession:v,customVariables:y,setCustomVariables:m,isNewGuestUser:x,setIsNewGuestUser:T,hasActiveFullPageFlow:O,setHasActiveFullPageFlow:H,organizationId:p,setOrganizationId:c,navigate:i&&i.navigate?i.navigate:z,defaultAppearance:U,shouldGracefullyDegrade:V,setShouldGracefullyDegrade:N}},Y.default.createElement(_i.ThemeProvider,{theme:U.theme},n,Y.default.createElement(Ui,null))))};var Ss=g(require("react"));var ee=g(require("react"));var Oe=g(require("react")),Tt=g(require("styled-components"));var go=g(require("react"));var bt=g(require("react")),ar=g(require("styled-components"));var Hi=ar.default.span`
631
+ `;var Ni=({stepData:e,setCanContinue:t,onSaveData:o,appearance:i})=>{let n=e.props,[r,s]=(0,be.useState)([]),[p,c]=(0,be.useState)(!1),[a,S]=(0,be.useState)(e.id);return(0,be.useEffect)(()=>{r.length==0&&!p&&(c(!0),o({choice:[]}))},[p]),(0,be.useEffect)(()=>{a!==e.id&&(S(e.id),s([]))},[e]),(0,be.useEffect)(()=>{o({choice:r}),r.length>=n.minChoices?t(!0):t(!1)},[r]),be.default.createElement(Fi,{className:l("selectListContainer",i)},be.default.createElement(ki,null,be.default.createElement(Pi,{className:l("selectListTitle",i)},e.title),be.default.createElement(vi,{appearance:i,className:l("selectListSubtitle",i)},e.subtitle)),n.options.map((d,u)=>{let b=r.includes(d.id);return be.default.createElement(Ei,{key:`select-item-${u}`,onClick:()=>{if(r.includes(d.id)){s(r.filter(B=>B!==d.id));return}r.length<n.maxChoices?s([...r,d.id]):r.length==1&&n.maxChoices==1&&s([d.id])},hideBottomBorder:u===n.options.length-1,className:l("selectListSelectItem",i)},be.default.createElement(Bi,{className:l("selectListItemImage",i)},d.imageUri&&be.default.createElement(Ai,{src:d.imageUri,alt:`select-icon-${u}`}),be.default.createElement(Ii,{appearance:i,className:l("selectListSelectItemText",i)},d.title)),be.default.createElement(Re,{appearance:i,value:b,primaryColor:i.theme.colorPrimary}))}))};var Z=g(require("react"));var Ho=require("framer-motion"),ka=({children:e,id:t,shouldWrap:o=!1})=>Z.default.createElement(Z.default.Fragment,null,o?Z.default.createElement(Ho.AnimatePresence,{initial:!1},Z.default.createElement(Ho.motion.div,{key:t,initial:{opacity:1,y:"100%"},animate:{opacity:1,y:0},exit:{opacity:0,y:"-100%"},transition:{duration:.5,ease:"easeInOut"},style:{width:"100%",height:"100%",position:"absolute",top:0,left:0,zIndex:1,overflowY:"auto"}},e)):e),Vo=({appearance:e,steps:t,selectedStep:o,customStepTypes:i,customVariables:n,onButtonClick:r,onStepCompletion:s,flowId:p,type:c,hideOnFlowCompletion:a,onComplete:S,setVisible:d,setShowModal:u,onDismiss:b,showPagination:B=!1,customFormElements:f,allowBackNavigation:C,validationHandler:k})=>{var De;let I={...{linkCollection:wi,multiInput:pi,callToAction:Ti,selectList:Ni},...i},{primaryCTAClickSideEffects:v,secondaryCTAClickSideEffects:y}=de(),[m,x]=(0,Z.useState)(!1),[T,O]=(0,Z.useState)({}),[V,j]=(0,Z.useState)(!1),[N,z]=(0,Z.useState)(!1),[U,$]=(0,Z.useState)(null),me=t[o]??null,{markStepCompleted:Ce,markStepStarted:M,isLoading:Ae,updateCustomVariables:Pe,markFlowCompleted:ae}=Q();(0,Z.useEffect)(()=>{Pe(n)},[n,Ae]),(0,Z.useEffect)(()=>{window&&C&&!N&&(window.location.hash=t[o].id,z(!0))},[C,N,z]),(0,Z.useEffect)(()=>{var K;if(window&&((K=window==null?void 0:window.location)!=null&&K.hash)&&window.location.hash.replace("#","")!==t[o].id){let Fe=window.location.hash.replace("#",""),ie=t.findIndex(te=>te.id===Fe);ie!==-1&&M(p,t[ie].id)}},[(De=window==null?void 0:window.location)==null?void 0:De.hash,M,o,t]);function q(){return{data:T[t[o].id]??{},stepId:t[o].id,customVariables:n}}function pe(K,Fe,ie){let te=o+1<t.length?t[o+1]:null;r&&r(K,o,Fe,te),s&&s(K,ie,te,T,q())}function L(K,Fe){O(ie=>{let te={};return te[K.id]=Fe,{...ie,...te}})}function ue(K){return K.selectedStep.imageUri?Z.default.createElement(hi,{image:K.selectedStep.imageUri,appearance:e,className:l("formContainerSidebarImage",e)}):null}let Te=Z.default.createElement(Ci,{step:t[o],canContinue:m&&!V,formType:c,selectedStep:o,appearance:e,onPrimaryClick:async()=>{if(j(!0),k){let Fe=await k(t[o],o,t[o+1],T,q());if(Fe){$(Fe),j(!1);return}else $(null)}let K={...q()};await Ce(p,t[o].id,K),o+1<t.length&&await M(p,t[o+1].id),pe(t[o],"primary",o),o+1>=t.length&&(S&&S(),b&&b(),a&&(d&&d(!1),u(!1)),await ae(p)),v(t[o]),j(!1),window&&C&&o+1<t.length&&(window.location.hash=t[o+1].id)},onSecondaryClick:()=>{pe(t[o],"secondary",o),y(t[o])},onBack:async()=>{o-1>=0&&(j(!0),await M(p,t[o-1].id),j(!1))},steps:t,allowBackNavigation:C,errorMessage:U});return Z.default.createElement(Z.default.Fragment,null,Z.default.createElement(ui,{className:l("formContainer",e)},Z.default.createElement(fi,null,Z.default.createElement(ka,{id:o,shouldWrap:c==="large-modal"},Z.default.createElement(gi,{key:me.id,type:c,className:l("formContent",e)},t.map(K=>{let Fe=I[K.type];return me.id!==K.id?null:Z.default.createElement(Fe,{key:K.id,stepData:K,canContinue:m,setCanContinue:x,onSaveData:ie=>{L(K,ie)},appearance:e,customFormElements:f,flowId:p})}),B&&Z.default.createElement(yi,{className:l("formPagination",e),appearance:e,stepCount:t.length,currentStep:o}),Te))),c=="large-modal"&&Z.default.createElement(ue,{selectedStep:t[o]})))};var qt=g(require("react")),Li=require("styled-components");function se({appearance:e}){if(!e||!e.styleOverrides)return qt.default.createElement(qt.default.Fragment,null);let t=Object.entries(e.styleOverrides).filter(([i,n])=>typeof n=="object");if(t.length===0)return qt.default.createElement(qt.default.Fragment,null);let o=Li.createGlobalStyle`
632
+ ${i=>i.inlineStyles.map(([n,r])=>`.${lo}${n}.${lo}${n} { ${Object.entries(r).map(([s,p])=>`${Ro(s)}: ${p};`).join(" ")} }`).join(" ")}`;return qt.default.createElement(o,{inlineStyles:t})}var lr=({flowId:e,customStepTypes:t={},type:o="inline",visible:i,setVisible:n,customVariables:r,customFormElements:s,onComplete:p,appearance:c,hideOnFlowCompletion:a=!0,onStepCompletion:S,onButtonClick:d,dismissible:u=!0,endFlowOnDismiss:b=!1,modalPosition:B="center",repeatable:f=!1,onDismiss:C,showPagination:k=!1,allowBackNavigation:P=!1,validationHandler:I,showFrigadeBranding:v=!1})=>{let{getFlow:y,getFlowSteps:m,isLoading:x,targetingLogicShouldHideFlow:T,getFlowStatus:O,getCurrentStepIndex:V,markFlowCompleted:j,markFlowNotStarted:N}=Q(),z=V(e),{mergeAppearanceWithDefault:U}=re(),[$,me]=(0,Be.useState)(!1),{setOpenFlowState:Ce,getOpenFlowState:M}=Ne();c=U(c);let[Ae,Pe]=i!==void 0&&n!==void 0?[i,n]:[M(e,!0),L=>Ce(e,L)];if((0,Be.useEffect)(()=>{!$&&!x&&(me(!0),O(e)===oe&&f&&N(e),me(!0))},[$,me,x]),x)return null;let ae=y(e);if(!ae||T(ae))return null;let q=m(e);if(!q||i!==void 0&&i===!1||O(e)===oe&&a)return null;let pe=()=>{Pe(!1),C&&C(),b===!0&&j(e)};if(B=="center"&&o==="modal"||o==="large-modal"){let L={padding:"24px"};return o==="large-modal"?(L.width="85%",L.height="90%",L.maxHeight="800px",L.minHeight="500px",L.padding="0"):L.width="400px",Be.default.createElement(Ct,{appearance:c,onClose:pe,visible:Ae,style:L,dismissible:u,showFrigadeBranding:v},Be.default.createElement(se,{appearance:c}),Be.default.createElement(Vo,{appearance:c,steps:q,selectedStep:z,customStepTypes:t,customVariables:r,onButtonClick:d,onStepCompletion:S,flowId:e,type:o,hideOnFlowCompletion:a,onComplete:p,setVisible:n,setShowModal:Pe,onDismiss:C,showPagination:k,customFormElements:s,allowBackNavigation:P,validationHandler:I}))}return o==="modal"&&B!=="center"?Be.default.createElement(Qr,{appearance:c,onClose:pe,visible:Ae},Be.default.createElement(se,{appearance:c}),Be.default.createElement(Vo,{appearance:c,steps:q,selectedStep:z,customStepTypes:t,customVariables:r,onButtonClick:d,onStepCompletion:S,flowId:e,type:o,hideOnFlowCompletion:a,onComplete:p,setVisible:n,setShowModal:Pe,onDismiss:C,showPagination:k,customFormElements:s,allowBackNavigation:P,validationHandler:I})):Be.default.createElement(Be.default.Fragment,null,Be.default.createElement(se,{appearance:c}),Be.default.createElement(Vo,{appearance:c,steps:q,selectedStep:z,customStepTypes:t,customVariables:r,onButtonClick:d,onStepCompletion:S,flowId:e,type:o,hideOnFlowCompletion:a,onComplete:p,setVisible:n,setShowModal:Pe,onDismiss:C,showPagination:k,customFormElements:s,allowBackNavigation:P,validationHandler:I}))},Oi=lr;var Bt=require("react");function jo(){let{organizationId:e,userId:t,setOrganizationId:o}=(0,Bt.useContext)(J),{mutateUserFlowState:i}=We(),{config:n}=Je(),r=$t(),{verifySDKInitiated:s}=Mt();(0,Bt.useEffect)(()=>{if(t&&e){if(t.startsWith(zt))return;let a=`frigade-user-group-registered-${t}-${e}`;localStorage.getItem(a)||(r(`${Ie}userGroups`,{...n,method:"POST",body:JSON.stringify({foreignUserId:t,foreignUserGroupId:e})}),localStorage.setItem(a,"true"))}},[t,e]);let p=(0,Bt.useCallback)(async a=>{if(s(),!e||!t){console.error("Cannot add properties to organization: Organization ID and User ID must both be set.",{organizationId:e,userId:t});return}let S={foreignUserId:t,foreignUserGroupId:e,properties:a};await r(`${Ie}userGroups`,{...n,method:"POST",body:JSON.stringify(S)}),i()},[e,t,n,i]),c=(0,Bt.useCallback)(async(a,S)=>{if(s(),!e||!t){console.error("Cannot track event for organization: Organization ID and User ID must both be set.",{organizationId:e,userId:t});return}let u={foreignUserId:t,foreignUserGroupId:e,events:[{event:a,properties:S}]};await r(`${Ie}userGroups`,{...n,method:"POST",body:JSON.stringify(u)}),i()},[e,t,n,i]);return{organizationId:e,setOrganizationId:o,addPropertiesToOrganization:p,trackEventForOrganization:c}}var Di="xFrigade_guestUserId",$i="xFrigade_userId",Ui=({})=>{let{setFlowResponses:e}=_t(),{userFlowStatesData:t,isLoadingUserFlowStateData:o,mutateUserFlowState:i}=We(),{userId:n,setUserId:r}=Wt(),[s,p]=(0,fe.useState)(null),{getFlowStatus:c}=Q(),{flows:a,userProperties:S,setIsNewGuestUser:d,flowResponses:u}=(0,fe.useContext)(J),[b,B]=(0,fe.useState)([]),[f,C]=(0,fe.useState)([]),{organizationId:k}=jo();(0,fe.useEffect)(()=>{if(!o&&t)for(let y=0;y<t.length;y++){let m=t[y],x=a.find(T=>T.slug===(m==null?void 0:m.flowId));if(x&&m&&m.shouldTrigger===!0&&x.type=="FORM"&&x.triggerType==="AUTOMATIC"&&!f.includes(x.slug)){setTimeout(()=>{P(m.flowId)},500);break}}},[o,t]),(0,fe.useEffect)(()=>{u.length>0&&i()},[u]);function P(y){let m=a.find(x=>x.slug===y);m&&m.triggerType==="AUTOMATIC"&&!f.includes(m.slug)&&(C([...f,m.slug]),B([m]))}function I(){if(!n){let y=localStorage.getItem($i);if(y){r(y);return}let m=localStorage.getItem(Di);if(m){r(m);return}d(!0);let x=zt+(0,Mi.v4)();try{localStorage.setItem(Di,x)}catch(T){console.log("Failed to save guest user id locally: Local storage unavailable",T)}r(T=>T||x)}}(0,fe.useEffect)(()=>{try{if(a){let y=[];a.forEach(m=>{if(m.data){let x=m.data.match(/"imageUri":"(.*?)"/g);x&&x.forEach(T=>{let O=T.replace('"imageUri":"',"").replace('"',"");if(y.includes(O))return;let V=new Image;V.src=O,y.push(O)})}})}}catch{}},[a]),(0,fe.useEffect)(()=>{if(n!==s&&e([]),p(n),n&&!n.startsWith(zt))try{localStorage.setItem($i,n)}catch(y){console.log("Failed to save user id locally: Local storage available",y)}n===null&&setTimeout(()=>{n===null&&I()},50)},[n,a,S]);function v(){return fe.default.createElement(fe.default.Fragment,null,b.map(y=>c(y.slug)!==je?null:fe.default.createElement("span",{key:y.slug},fe.default.createElement(Oi,{flowId:y.slug,type:"modal",modalPosition:"center",endFlowOnDismiss:!0}))))}return fe.default.createElement(fe.default.Fragment,null,fe.default.createElement(v,null))};var zi=require("react-error-boundary"),J=(0,Y.createContext)({publicApiKey:"",setUserId:()=>{},flows:[],setFlows:()=>{},failedFlowResponses:[],setFailedFlowResponses:()=>{},flowResponses:[],setFlowResponses:()=>{},userProperties:{},setUserProperties:()=>{},openFlowStates:{},setOpenFlowStates:()=>{},completedFlowsToKeepOpenDuringSession:[],setCompletedFlowsToKeepOpenDuringSession:()=>{},customVariables:{},setCustomVariables:()=>{},isNewGuestUser:!1,setIsNewGuestUser:()=>{},hasActiveFullPageFlow:!1,setHasActiveFullPageFlow:()=>{},organizationId:"",setOrganizationId:()=>{},navigate:()=>{},defaultAppearance:Qe,shouldGracefullyDegrade:!1,setShouldGracefullyDegrade:()=>{}}),Wi=({publicApiKey:e,userId:t,organizationId:o,config:i,children:n})=>{var me,Ce;let[r,s]=(0,Y.useState)(t||null),[p,c]=(0,Y.useState)(o||null),[a,S]=(0,Y.useState)([]),[d,u]=(0,Y.useState)([]),[b,B]=(0,Y.useState)([]),[f,C]=(0,Y.useState)({}),[k,P]=(0,Y.useState)({}),[I,v]=(0,Y.useState)([]),[y,m]=(0,Y.useState)({}),[x,T]=(0,Y.useState)(!1),[O,V]=(0,Y.useState)(!1),[j,N]=(0,Y.useState)(!$(e)),z=(M,Ae)=>{if(Ae==="_blank"){window.open(M,"_blank");return}setTimeout(()=>{window.location.href=M},50)},U={theme:{...Qe.theme,...((me=i==null?void 0:i.defaultAppearance)==null?void 0:me.theme)??{}},styleOverrides:{...Qe.styleOverrides,...((Ce=i==null?void 0:i.defaultAppearance)==null?void 0:Ce.styleOverrides)??{}}};function $(M){return!!(M&&M.length>10&&M.substring(0,10)==="api_public")}return(0,Y.useEffect)(()=>{t&&s(t)},[t]),(0,Y.useEffect)(()=>{o&&c(o)},[o]),(0,Y.useEffect)(()=>{if($(e))N(!1);else{console.error("Frigade SDK failed to initialize. API key provided is either missing or valid."),N(!0);return}},[e,N]),j?Y.default.createElement(J.Provider,{value:{publicApiKey:e,userId:r,setUserId:s,setFlows:S,flows:a,failedFlowResponses:d,setFailedFlowResponses:u,flowResponses:b,setFlowResponses:B,userProperties:f,setUserProperties:C,openFlowStates:k,setOpenFlowStates:P,completedFlowsToKeepOpenDuringSession:I,setCompletedFlowsToKeepOpenDuringSession:v,customVariables:y,setCustomVariables:m,isNewGuestUser:x,setIsNewGuestUser:T,hasActiveFullPageFlow:O,setHasActiveFullPageFlow:V,organizationId:p,setOrganizationId:c,navigate:i&&i.navigate?i.navigate:z,defaultAppearance:U,shouldGracefullyDegrade:j,setShouldGracefullyDegrade:N}},n):Y.default.createElement(zi.ErrorBoundary,{fallback:Y.default.createElement(Y.default.Fragment,null,n)},Y.default.createElement(J.Provider,{value:{publicApiKey:e,userId:r,setUserId:s,setFlows:S,flows:a,failedFlowResponses:d,setFailedFlowResponses:u,flowResponses:b,setFlowResponses:B,userProperties:f,setUserProperties:C,openFlowStates:k,setOpenFlowStates:P,completedFlowsToKeepOpenDuringSession:I,setCompletedFlowsToKeepOpenDuringSession:v,customVariables:y,setCustomVariables:m,isNewGuestUser:x,setIsNewGuestUser:T,hasActiveFullPageFlow:O,setHasActiveFullPageFlow:V,organizationId:p,setOrganizationId:c,navigate:i&&i.navigate?i.navigate:z,defaultAppearance:U,shouldGracefullyDegrade:j,setShouldGracefullyDegrade:N}},Y.default.createElement(_i.ThemeProvider,{theme:U.theme},n,Y.default.createElement(Ui,null))))};var Ss=g(require("react"));var ee=g(require("react"));var Oe=g(require("react")),Tt=g(require("styled-components"));var go=g(require("react"));var bt=g(require("react")),ar=g(require("styled-components"));var Hi=ar.default.span`
633
633
  font-weight: 400;
634
634
  font-size: 15px;
635
635
  line-height: 20px;
@@ -1013,7 +1013,7 @@ ${i=>i.inlineStyles.map(([n,r])=>`.${lo}${n}.${lo}${n} { ${Object.entries(r).map
1013
1013
  line-height: 14px;
1014
1014
  font-weight: 400;
1015
1015
  cursor: pointer;
1016
- `;var Ja=({steps:e,style:t,title:o,primaryColor:i,appearance:n,onButtonClick:r})=>{let{primaryCTAClickSideEffects:s}=de();return it.default.createElement(En,{style:t,className:l("guideContainer",n)},it.default.createElement(An,{className:l("guideTitle",n)},o),it.default.createElement(Bn,{className:l("guideItemContainer",n)},e.map((p,c)=>it.default.createElement(In,{key:`guide-${p.id??c}`,as:Mn.motion.div,whileHover:{boxShadow:"0px 2px 8px rgba(0, 0, 0, 0.05)",transition:{duration:.25}},className:l("guideItem",n)},p.icon&&it.default.createElement(Nn,{className:l("guideIcon",n)},it.default.createElement(Ln,null,p.icon)),it.default.createElement(On,{className:l("guideItemTitle",n),dangerouslySetInnerHTML:ye(p.title)}),it.default.createElement(Dn,{className:l("guideItemSubtitle",n),dangerouslySetInnerHTML:ye(p.subtitle)}),it.default.createElement($n,{className:l("guideItemLink",n),color:i,onClick:()=>{p.primaryButtonUri&&s(p),r&&r(p)}},p.primaryButtonTitle)))))},So=Ja;var Qa=({steps:e,title:t,subtitle:o,stepsTitle:i,visible:n,onClose:r,selectedStep:s,setSelectedStep:p,customStepTypes:c,appearance:a,guideData:S,guideTitle:d,onGuideButtonClick:u})=>{let b=({stepData:m,handleSecondaryCTAClick:x,handleCTAClick:T})=>m?D.default.createElement(xn,{className:l("checklistStepContainer",a),"data-testid":"checklistStepContainer"},D.default.createElement(Cn,{appearance:a,className:l("checklistStepTitle",a),dangerouslySetInnerHTML:ye(m.title)}),D.default.createElement(Sn,{appearance:a,className:l("checklistStepSubtitle",a),dangerouslySetInnerHTML:ye(m.subtitle)}),D.default.createElement(yn,{className:l("checklistCTAContainer",a)},m.secondaryButtonTitle&&D.default.createElement(ne,{title:m.secondaryButtonTitle,onClick:x,appearance:a,secondary:!0}),D.default.createElement(ne,{title:m.primaryButtonTitle,onClick:T,appearance:a}))):D.default.createElement(D.default.Fragment,null),f={...{default:m=>{var H;if((H=e[P])!=null&&H.StepContent){let V=e[P].StepContent;return D.default.createElement("div",null,V)}let x=e[P];return D.default.createElement(b,{stepData:m,handleCTAClick:()=>{x.handlePrimaryButtonClick&&x.handlePrimaryButtonClick()},handleSecondaryCTAClick:()=>{x.handleSecondaryButtonClick&&x.handleSecondaryButtonClick()}})}},...c},[C,k]=(0,D.useState)(0),P=s??C,I=p??k,v=()=>{var m;return e?!((m=e[P])!=null&&m.type)||!f[e[P].type]?f.default(e[P]):f[e[P].type]({stepData:e[P],primaryColor:a.theme.colorPrimary}):D.default.createElement(D.default.Fragment,null)},y=e.filter(m=>m.complete).length;return n?(a.theme.modalContainer||(a.theme.borderRadius&&(ur.borderRadius=a.theme.borderRadius+"px"),a.theme.modalContainer=ur),D.default.createElement(Ct,{onClose:r,visible:n,appearance:a},D.default.createElement(kn,null,D.default.createElement(pn,null,D.default.createElement(dn,{appearance:a,className:l("checklistTitle",a)},t),D.default.createElement(cn,{appearance:a,className:l("checklistSubtitle",a)},o)),D.default.createElement(an,null,e&&e.length>0&&D.default.createElement(mn,{className:l("stepsContainer",a)},D.default.createElement(un,null,D.default.createElement("div",{style:{flex:3}},D.default.createElement(fn,{className:l("stepsTitle",a)},i)),D.default.createElement(Fn,null,D.default.createElement(tt,{fillColor:a.theme.colorPrimary,style:{width:"100%"},count:y,total:e.length,appearance:a}))),D.default.createElement(gn,null,D.default.createElement(hn,{className:l("checklistStepListContainer",a),appearance:a},e.map((m,x)=>{let T=P===x;return D.default.createElement(bn,{selected:T,className:l(`checklistStepListItem${T?"Selected":""}`,a),key:`checklist-guide-step-${m.id??x}`,disabled:m.blocked,onClick:()=>{m.blocked||I(x)},title:m.blocked?"Finish remaining steps to continue":void 0},T&&D.default.createElement(qo,{className:l("checklistStepItemSelectedIndicator",a),as:Un.motion.div,layoutId:"checklist-step-selected",style:{backgroundColor:a.theme.colorPrimary,borderRadius:0,height:"100%",top:"0%",width:"2px"}}),D.default.createElement(wn,{selected:T,className:l(`checklistStepListStepName${T?"Selected":""}`,a)},m.stepName),D.default.createElement(Tn,null,D.default.createElement(Re,{value:m.complete,type:"round",primaryColor:a.theme.colorPrimary,progress:m.progress,appearance:a}),D.default.createElement(vn,null,D.default.createElement(Zt,{style:{marginLeft:"10px"},color:a.theme.colorBackgroundSecondary}))))})),D.default.createElement(v,null))),S&&S.length>0&&D.default.createElement(So,{steps:S,title:d,primaryColor:a.theme.colorPrimary,style:{border:"none",boxShadow:"none"},appearance:a,onButtonClick:m=>(u&&u(m),!0)}))))):D.default.createElement(D.default.Fragment,null)},fr=Qa;var Xo=require("react"),_n=()=>{let e={isSmall:"(max-width: 480px)",isMedium:"(min-width: 481px) AND (max-width: 1023px)",isLarge:"(min-width: 1025px)"},t=Object.fromEntries(Object.entries(e).map(([p])=>[p,!1])),[o,i]=(0,Xo.useState)(t),n=null,r=()=>{n!==null?clearTimeout(n):s(),n=setTimeout(()=>{s()},16)},s=()=>{let p=Object.fromEntries(Object.entries(e).map(([c,a])=>{if(!window)return[c,!1];let S=window.matchMedia(a);return S.addEventListener("change",r),[c,S.matches]}));i(p)};return(0,Xo.useEffect)(()=>{s()},[]),o};var ce=g(require("react"));var he=g(require("react"));var Jo=require("framer-motion");var nt=g(require("styled-components")),zn=nt.default.div`
1016
+ `;var Ja=({steps:e,style:t,title:o,primaryColor:i,appearance:n,onButtonClick:r})=>{let{primaryCTAClickSideEffects:s}=de();return it.default.createElement(En,{style:t,className:l("guideContainer",n)},it.default.createElement(An,{className:l("guideTitle",n)},o),it.default.createElement(Bn,{className:l("guideItemContainer",n)},e.map((p,c)=>it.default.createElement(In,{key:`guide-${p.id??c}`,as:Mn.motion.div,whileHover:{boxShadow:"0px 2px 8px rgba(0, 0, 0, 0.05)",transition:{duration:.25}},className:l("guideItem",n)},p.icon&&it.default.createElement(Nn,{className:l("guideIcon",n)},it.default.createElement(Ln,null,p.icon)),it.default.createElement(On,{className:l("guideItemTitle",n),dangerouslySetInnerHTML:ye(p.title)}),it.default.createElement(Dn,{className:l("guideItemSubtitle",n),dangerouslySetInnerHTML:ye(p.subtitle)}),it.default.createElement($n,{className:l("guideItemLink",n),color:i,onClick:()=>{p.primaryButtonUri&&s(p),r&&r(p)}},p.primaryButtonTitle)))))},So=Ja;var Qa=({steps:e,title:t,subtitle:o,stepsTitle:i,visible:n,onClose:r,selectedStep:s,setSelectedStep:p,customStepTypes:c,appearance:a,guideData:S,guideTitle:d,onGuideButtonClick:u})=>{let b=({stepData:m,handleSecondaryCTAClick:x,handleCTAClick:T})=>m?D.default.createElement(xn,{className:l("checklistStepContainer",a),"data-testid":"checklistStepContainer"},D.default.createElement(Cn,{appearance:a,className:l("checklistStepTitle",a),dangerouslySetInnerHTML:ye(m.title)}),D.default.createElement(Sn,{appearance:a,className:l("checklistStepSubtitle",a),dangerouslySetInnerHTML:ye(m.subtitle)}),D.default.createElement(yn,{className:l("checklistCTAContainer",a)},m.secondaryButtonTitle&&D.default.createElement(ne,{title:m.secondaryButtonTitle,onClick:x,appearance:a,secondary:!0}),D.default.createElement(ne,{title:m.primaryButtonTitle,onClick:T,appearance:a}))):D.default.createElement(D.default.Fragment,null),f={...{default:m=>{var V;if((V=e[P])!=null&&V.StepContent){let j=e[P].StepContent;return D.default.createElement("div",null,j)}let x=e[P];return D.default.createElement(b,{stepData:m,handleCTAClick:()=>{x.handlePrimaryButtonClick&&x.handlePrimaryButtonClick()},handleSecondaryCTAClick:()=>{x.handleSecondaryButtonClick&&x.handleSecondaryButtonClick()}})}},...c},[C,k]=(0,D.useState)(0),P=s??C,I=p??k,v=()=>{var m;return e?!((m=e[P])!=null&&m.type)||!f[e[P].type]?f.default(e[P]):f[e[P].type]({stepData:e[P],primaryColor:a.theme.colorPrimary}):D.default.createElement(D.default.Fragment,null)},y=e.filter(m=>m.complete).length;return n?(a.theme.modalContainer||(a.theme.borderRadius&&(ur.borderRadius=a.theme.borderRadius+"px"),a.theme.modalContainer=ur),D.default.createElement(Ct,{onClose:r,visible:n,appearance:a},D.default.createElement(kn,null,D.default.createElement(pn,null,D.default.createElement(dn,{appearance:a,className:l("checklistTitle",a)},t),D.default.createElement(cn,{appearance:a,className:l("checklistSubtitle",a)},o)),D.default.createElement(an,null,e&&e.length>0&&D.default.createElement(mn,{className:l("stepsContainer",a)},D.default.createElement(un,null,D.default.createElement("div",{style:{flex:3}},D.default.createElement(fn,{className:l("stepsTitle",a)},i)),D.default.createElement(Fn,null,D.default.createElement(tt,{fillColor:a.theme.colorPrimary,style:{width:"100%"},count:y,total:e.length,appearance:a}))),D.default.createElement(gn,null,D.default.createElement(hn,{className:l("checklistStepListContainer",a),appearance:a},e.map((m,x)=>{let T=P===x;return D.default.createElement(bn,{selected:T,className:l(`checklistStepListItem${T?"Selected":""}`,a),key:`checklist-guide-step-${m.id??x}`,disabled:m.blocked,onClick:()=>{m.blocked||I(x)},title:m.blocked?"Finish remaining steps to continue":void 0},T&&D.default.createElement(qo,{className:l("checklistStepItemSelectedIndicator",a),as:Un.motion.div,layoutId:"checklist-step-selected",style:{backgroundColor:a.theme.colorPrimary,borderRadius:0,height:"100%",top:"0%",width:"2px"}}),D.default.createElement(wn,{selected:T,className:l(`checklistStepListStepName${T?"Selected":""}`,a)},m.stepName),D.default.createElement(Tn,null,D.default.createElement(Re,{value:m.complete,type:"round",primaryColor:a.theme.colorPrimary,progress:m.progress,appearance:a}),D.default.createElement(vn,null,D.default.createElement(Zt,{style:{marginLeft:"10px"},color:a.theme.colorBackgroundSecondary}))))})),D.default.createElement(v,null))),S&&S.length>0&&D.default.createElement(So,{steps:S,title:d,primaryColor:a.theme.colorPrimary,style:{border:"none",boxShadow:"none"},appearance:a,onButtonClick:m=>(u&&u(m),!0)}))))):D.default.createElement(D.default.Fragment,null)},fr=Qa;var Xo=require("react"),_n=()=>{let e={isSmall:"(max-width: 480px)",isMedium:"(min-width: 481px) AND (max-width: 1023px)",isLarge:"(min-width: 1025px)"},t=Object.fromEntries(Object.entries(e).map(([p])=>[p,!1])),[o,i]=(0,Xo.useState)(t),n=null,r=()=>{n!==null?clearTimeout(n):s(),n=setTimeout(()=>{s()},16)},s=()=>{let p=Object.fromEntries(Object.entries(e).map(([c,a])=>{if(!window)return[c,!1];let S=window.matchMedia(a);return S.addEventListener("change",r),[c,S.matches]}));i(p)};return(0,Xo.useEffect)(()=>{s()},[]),o};var ce=g(require("react"));var he=g(require("react"));var Jo=require("framer-motion");var nt=g(require("styled-components")),zn=nt.default.div`
1017
1017
  background-color: ${e=>{var t,o;return(o=(t=e.appearance)==null?void 0:t.theme)==null?void 0:o.colorBackground}};
1018
1018
  border: 1px solid;
1019
1019
  border-color: ${e=>{var t,o;return(o=(t=e.appearance)==null?void 0:t.theme)==null?void 0:o.colorBorder}};
@@ -1238,7 +1238,7 @@ ${i=>i.inlineStyles.map(([n,r])=>`.${lo}${n}.${lo}${n} { ${Object.entries(r).map
1238
1238
  color: ${({theme:e})=>e.colorTextSecondary};
1239
1239
  ${e=>e.blocked||e.complete?"opacity: 0.4;":`
1240
1240
  `}
1241
- `;var gs=({stepData:e,style:t={},appearance:o})=>{let{mergeAppearanceWithDefault:i}=re(),{primaryCTAClickSideEffects:n}=de();o=i(o);let{imageUri:r=null,subtitle:s=null,title:p=null,complete:c=!1,blocked:a=!1}=e,S=e.primaryButtonTitle||e.secondaryButtonTitle,d=()=>{n(e)};return Nt.default.createElement(ss,{className:l("carouselCard",o),onClick:a?null:d,style:t,blocked:a,complete:c},r&&Nt.default.createElement(ls,{className:l("carouselCardImage",o),src:r,alt:p,style:{opacity:c||a?.4:1}}),(c||!0)&&Nt.default.createElement(cs,{className:l("carouselCompletedPill",o)},Nt.default.createElement(fs,{style:{color:"#108E0B"}},"Complete")),p&&Nt.default.createElement(us,{blocked:a,complete:c,className:l("carouselCardTitle",o)},p),s&&Nt.default.createElement(st.Quiet,{blocked:a,complete:c,className:l("carouselCardSubtitle",o)},s))};var Rt=g(require("react"));var hs=({numberOfStepsCompleted:e,numberOfSteps:t,appearance:o})=>{let i=t>0?e/t:0,n=200,r=Math.min(n,Math.max(10,Math.round(n*i)));return Rt.default.createElement(ps,{className:l("carouselProgressBar",o)},Rt.default.createElement(ds,{as:st.Loud,style:{marginRight:8}},e," of ",t),Rt.default.createElement("svg",{height:10,width:n},Rt.default.createElement("rect",{x:0,y:0,rx:5,width:n,height:10,fill:"#E6E6E6"}),Rt.default.createElement("rect",{x:0,y:0,rx:5,width:r,height:10,fill:"currentColor"})))};var ip=()=>_.default.createElement("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},_.default.createElement("path",{d:"M14 6L20 12",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round"}),_.default.createElement("path",{d:"M14 18L20 12",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round"}),_.default.createElement("path",{d:"M4 12H20",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round"})),xs=({side:e="left",show:t=!1,onClick:o=()=>{}})=>{let[i,n]=(0,_.useState)(!1),[r,s]=(0,_.useState)(!1);(0,_.useEffect)(()=>{t===!0&&i===!1?n(!0):t===!1&&i===!0&&s(!0)},[t]);let p=()=>{n(!1),s(!1)},c=e=="left"?{top:0,bottom:0,left:-20,transform:"rotate(180deg)"}:{top:0,bottom:0,right:-20};return i?_.default.createElement(rs,{style:c,reversed:r,onAnimationEnd:r?p:null},_.default.createElement(is,{onClick:()=>o(),style:{right:16,top:"calc(50% - 24px)"}},_.default.createElement(ip,null))):null},Cs=({flowId:e,appearance:t,customVariables:o,className:i})=>{let n=(0,_.useRef)(null),[r,s]=(0,_.useState)(!1),[p,c]=(0,_.useState)(!1),[a,S]=(0,_.useState)(null),[d,u]=(0,_.useState)([]),[b,B]=(0,_.useState)(0),{getFlowMetadata:f,getFlowSteps:C,getNumberOfStepsCompleted:k,updateCustomVariables:P,getFlowStatus:I,isLoading:v,targetingLogicShouldHideFlow:y,getFlow:m}=Q();(0,_.useEffect)(()=>{P(o)},[o,v]),(0,_.useEffect)(()=>{if(v)return;let N=f(e),z=k(e),U=C(e);S(N),N.data!==null&&(u(U.sort(($,me)=>Number($.complete)-Number(me.complete))),c(U.length>3),B(z))},[v]);let x=[];for(let N=0;N<d.length;N+=3)x.push(d.slice(N,N+3));let T=N=>{let z=N.target,U=z.scrollWidth-z.clientWidth,$=Math.ceil(z.scrollLeft);$>0&&r===!1&&s(!0),$===0&&r===!0&&s(!1),$<U&&p===!1&&c(!0),$===U&&p===!0&&c(!1)},O=(N=!0)=>{let z=N?1:-1;n.current!==null&&n.current.scrollBy({left:n.current.clientWidth*z,behavior:"smooth"})},H=null,V=N=>{H!==null?clearTimeout(H):T(N),H=setTimeout(()=>{T(N)},16)};return v?null:_.default.createElement(as,{className:ve(l("carouselContainer",t),i)},_.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:20}},_.default.createElement("div",null,_.default.createElement(ms,{className:l("carouselTitle",t)},a==null?void 0:a.title),_.default.createElement(st.Quiet,{className:l("carouselSubtitle",t)},a==null?void 0:a.subtitle)),_.default.createElement(hs,{numberOfStepsCompleted:b,numberOfSteps:d.length})),_.default.createElement("div",{style:{position:"relative"}},_.default.createElement(xs,{show:r,onClick:()=>O(!1)}),_.default.createElement(xs,{side:"right",show:p,onClick:O}),_.default.createElement(ts,{ref:n,onScroll:V},x.map((N,z)=>_.default.createElement(os,{key:z,style:{flex:`0 0 calc(100% - ${d.length>3?36:0}px)`}},N.map((U,$)=>_.default.createElement(gs,{key:$,stepData:U,style:{flex:d.length>3?"0 1 calc(33% - 16px * 2 / 3)":1},appearance:t})))))),_.default.createElement(se,{appearance:t}))};var Qo=({flowId:e,title:t,subtitle:o,style:i,initialSelectedStep:n,className:r,type:s="inline",onDismiss:p,visible:c,customVariables:a,onStepCompletion:S,onButtonClick:d,appearance:u,hideOnFlowCompletion:b,setVisible:B,customStepTypes:f,checklistStyle:C="default",autoExpandFirstIncompleteStep:k,autoExpandNextStep:P,...I})=>{let{getFlow:v,getFlowSteps:y,markStepCompleted:m,getStepStatus:x,getNumberOfStepsCompleted:T,isLoading:O,targetingLogicShouldHideFlow:H,updateCustomVariables:V,getFlowMetadata:N,isStepBlocked:z,getFlowStatus:U,hasActiveFullPageFlow:$,setHasActiveFullPageFlow:me}=Q(),{primaryCTAClickSideEffects:Ce,secondaryCTAClickSideEffects:M}=de(),{getOpenFlowState:Ae,setOpenFlowState:Pe}=Ne(),[ae,q]=(0,ee.useState)(n||0),[pe,L]=(0,ee.useState)(!1),ue=c===void 0?Ae(e):c,Te=s==="modal",{mergeAppearanceWithDefault:De}=re(),{isLarge:K}=_n();if(u=De(u),(0,ee.useEffect)(()=>{V(a)},[a,O]),(0,ee.useEffect)(()=>{c!==void 0&&(Te&&c===!0?me(!0):Te&&c===!1&&me(!1))},[c,B,$]),O)return null;let Fe=v(e);if(!Fe||H(Fe))return null;let ie=y(e);if(!ie||b===!0&&U(e)===oe)return null;let te=N(e);if(te!=null&&te.title&&(t=te.title),te!=null&&te.subtitle&&(o=te.subtitle),!pe&&n===void 0&&T(e)>0){let W=ie.findIndex(dt=>dt.complete===!1);q(W>-1?W:ie.length-1),L(!0)}function at(){if(ae+1>=ie.length){Te&&Pe(e,!1);return}z(e,ie[ae+1].id)||q(ae+1)}function pt(W,dt,wo){let kr=ae+1<ie.length?ie[ae+1]:null;d&&d(W,ae,dt,kr)===!0&&Te&&h(),S&&S(W,wo,kr),!S&&!d&&(W.primaryButtonUri||W.secondaryButtonUri)&&Te&&h()}function Ot(){return ie.map((W,dt)=>({...W,handleSecondaryButtonClick:()=>{at(),M(W),W.skippable===!0&&m(e,W.id,{skipped:!0}),pt(W,"secondary",dt)},handlePrimaryButtonClick:()=>{(!W.completionCriteria&&(W.autoMarkCompleted||W.autoMarkCompleted===void 0)||W.completionCriteria&&W.autoMarkCompleted===!0)&&(m(e,W.id),at()),pt(W,"primary",dt),Ce(W),x(e,W.id)===Ge&&at()}}))}function j(){return ee.default.createElement(se,{appearance:u})}let _e={steps:Ot(),title:t,subtitle:o,primaryColor:u.theme.colorPrimary,appearance:u,customStepTypes:f,type:s,className:r,autoExpandFirstIncompleteStep:k,autoExpandNextStep:P};function h(){Pe(e,!1),p&&p(),B&&B(!1)}function w(){return ee.default.createElement(ee.default.Fragment,null,ee.default.createElement(j,null),ee.default.createElement(Cs,{flowId:e,appearance:u,customVariables:a,className:r}))}function E(){return ee.default.createElement(ee.default.Fragment,null,ee.default.createElement(j,null),ee.default.createElement(gr,{visible:ue,onClose:()=>{h()},selectedStep:ae,setSelectedStep:q,autoExpandNextStep:!0,appearance:u,..._e}))}function G(){if(!K)return E();let W=I.guideFlowId,dt;return W&&v(W)&&(dt=y(W)),ee.default.createElement(ee.default.Fragment,null,ee.default.createElement(j,null),ee.default.createElement(fr,{visible:ue,stepsTitle:te.stepsTitle?te.stepsTitle:"Your quick start guide",onClose:()=>{h()},selectedStep:ae,setSelectedStep:q,guideData:dt,guideTitle:I.guideTitle??"Guide",appearance:u,title:t,subtitle:o,onGuideButtonClick:wo=>{pt(wo,"link",0)},customStepTypes:f,..._e}))}function Se(){if(!K)return E();let W=ee.default.createElement(cr,{flowId:e,style:i,selectedStep:ae,setSelectedStep:q,appearance:u,type:s,..._e});return Te?ee.default.createElement(Ct,{onClose:()=>{h()},visible:ue,appearance:u,style:{paddingTop:"0px",padding:"12px",paddingLeft:0}},ee.default.createElement(j,null),W):ee.default.createElement(ee.default.Fragment,null,ee.default.createElement(j,null),W)}switch(C){case"condensed":return E();case"with-guide":return G();case"default":return Se();case"carousel":return w();default:return Se()}};var ys=e=>Ss.default.createElement(Qo,{type:"inline",...e});var Ye=g(require("react"));var Ke=g(require("react"));var yo=g(require("styled-components")),bs=yo.default.div`
1241
+ `;var gs=({stepData:e,style:t={},appearance:o})=>{let{mergeAppearanceWithDefault:i}=re(),{primaryCTAClickSideEffects:n}=de();o=i(o);let{imageUri:r=null,subtitle:s=null,title:p=null,complete:c=!1,blocked:a=!1}=e,S=e.primaryButtonTitle||e.secondaryButtonTitle,d=()=>{n(e)};return Nt.default.createElement(ss,{className:l("carouselCard",o),onClick:a?null:d,style:t,blocked:a,complete:c},r&&Nt.default.createElement(ls,{className:l("carouselCardImage",o),src:r,alt:p,style:{opacity:c||a?.4:1}}),(c||!0)&&Nt.default.createElement(cs,{className:l("carouselCompletedPill",o)},Nt.default.createElement(fs,{style:{color:"#108E0B"}},"Complete")),p&&Nt.default.createElement(us,{blocked:a,complete:c,className:l("carouselCardTitle",o)},p),s&&Nt.default.createElement(st.Quiet,{blocked:a,complete:c,className:l("carouselCardSubtitle",o)},s))};var Rt=g(require("react"));var hs=({numberOfStepsCompleted:e,numberOfSteps:t,appearance:o})=>{let i=t>0?e/t:0,n=200,r=Math.min(n,Math.max(10,Math.round(n*i)));return Rt.default.createElement(ps,{className:l("carouselProgressBar",o)},Rt.default.createElement(ds,{as:st.Loud,style:{marginRight:8}},e," of ",t),Rt.default.createElement("svg",{height:10,width:n},Rt.default.createElement("rect",{x:0,y:0,rx:5,width:n,height:10,fill:"#E6E6E6"}),Rt.default.createElement("rect",{x:0,y:0,rx:5,width:r,height:10,fill:"currentColor"})))};var ip=()=>_.default.createElement("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},_.default.createElement("path",{d:"M14 6L20 12",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round"}),_.default.createElement("path",{d:"M14 18L20 12",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round"}),_.default.createElement("path",{d:"M4 12H20",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round"})),xs=({side:e="left",show:t=!1,onClick:o=()=>{}})=>{let[i,n]=(0,_.useState)(!1),[r,s]=(0,_.useState)(!1);(0,_.useEffect)(()=>{t===!0&&i===!1?n(!0):t===!1&&i===!0&&s(!0)},[t]);let p=()=>{n(!1),s(!1)},c=e=="left"?{top:0,bottom:0,left:-20,transform:"rotate(180deg)"}:{top:0,bottom:0,right:-20};return i?_.default.createElement(rs,{style:c,reversed:r,onAnimationEnd:r?p:null},_.default.createElement(is,{onClick:()=>o(),style:{right:16,top:"calc(50% - 24px)"}},_.default.createElement(ip,null))):null},Cs=({flowId:e,appearance:t,customVariables:o,className:i})=>{let n=(0,_.useRef)(null),[r,s]=(0,_.useState)(!1),[p,c]=(0,_.useState)(!1),[a,S]=(0,_.useState)(null),[d,u]=(0,_.useState)([]),[b,B]=(0,_.useState)(0),{getFlowMetadata:f,getFlowSteps:C,getNumberOfStepsCompleted:k,updateCustomVariables:P,getFlowStatus:I,isLoading:v,targetingLogicShouldHideFlow:y,getFlow:m}=Q();(0,_.useEffect)(()=>{P(o)},[o,v]),(0,_.useEffect)(()=>{if(v)return;let N=f(e),z=k(e),U=C(e);S(N),N.data!==null&&(u(U.sort(($,me)=>Number($.complete)-Number(me.complete))),c(U.length>3),B(z))},[v]);let x=[];for(let N=0;N<d.length;N+=3)x.push(d.slice(N,N+3));let T=N=>{let z=N.target,U=z.scrollWidth-z.clientWidth,$=Math.ceil(z.scrollLeft);$>0&&r===!1&&s(!0),$===0&&r===!0&&s(!1),$<U&&p===!1&&c(!0),$===U&&p===!0&&c(!1)},O=(N=!0)=>{let z=N?1:-1;n.current!==null&&n.current.scrollBy({left:n.current.clientWidth*z,behavior:"smooth"})},V=null,j=N=>{V!==null?clearTimeout(V):T(N),V=setTimeout(()=>{T(N)},16)};return v?null:_.default.createElement(as,{className:ve(l("carouselContainer",t),i)},_.default.createElement("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:20}},_.default.createElement("div",null,_.default.createElement(ms,{className:l("carouselTitle",t)},a==null?void 0:a.title),_.default.createElement(st.Quiet,{className:l("carouselSubtitle",t)},a==null?void 0:a.subtitle)),_.default.createElement(hs,{numberOfStepsCompleted:b,numberOfSteps:d.length})),_.default.createElement("div",{style:{position:"relative"}},_.default.createElement(xs,{show:r,onClick:()=>O(!1)}),_.default.createElement(xs,{side:"right",show:p,onClick:O}),_.default.createElement(ts,{ref:n,onScroll:j},x.map((N,z)=>_.default.createElement(os,{key:z,style:{flex:`0 0 calc(100% - ${d.length>3?36:0}px)`}},N.map((U,$)=>_.default.createElement(gs,{key:$,stepData:U,style:{flex:d.length>3?"0 1 calc(33% - 16px * 2 / 3)":1},appearance:t})))))),_.default.createElement(se,{appearance:t}))};var Qo=({flowId:e,title:t,subtitle:o,style:i,initialSelectedStep:n,className:r,type:s="inline",onDismiss:p,visible:c,customVariables:a,onStepCompletion:S,onButtonClick:d,appearance:u,hideOnFlowCompletion:b,setVisible:B,customStepTypes:f,checklistStyle:C="default",autoExpandFirstIncompleteStep:k,autoExpandNextStep:P,...I})=>{let{getFlow:v,getFlowSteps:y,markStepCompleted:m,getStepStatus:x,getNumberOfStepsCompleted:T,isLoading:O,targetingLogicShouldHideFlow:V,updateCustomVariables:j,getFlowMetadata:N,isStepBlocked:z,getFlowStatus:U,hasActiveFullPageFlow:$,setHasActiveFullPageFlow:me}=Q(),{primaryCTAClickSideEffects:Ce,secondaryCTAClickSideEffects:M}=de(),{getOpenFlowState:Ae,setOpenFlowState:Pe}=Ne(),[ae,q]=(0,ee.useState)(n||0),[pe,L]=(0,ee.useState)(!1),ue=c===void 0?Ae(e):c,Te=s==="modal",{mergeAppearanceWithDefault:De}=re(),{isLarge:K}=_n();if(u=De(u),(0,ee.useEffect)(()=>{j(a)},[a,O]),(0,ee.useEffect)(()=>{c!==void 0&&(Te&&c===!0?me(!0):Te&&c===!1&&me(!1))},[c,B,$]),O)return null;let Fe=v(e);if(!Fe||V(Fe))return null;let ie=y(e);if(!ie||b===!0&&U(e)===oe)return null;let te=N(e);if(te!=null&&te.title&&(t=te.title),te!=null&&te.subtitle&&(o=te.subtitle),!pe&&n===void 0&&T(e)>0){let H=ie.findIndex(dt=>dt.complete===!1);q(H>-1?H:ie.length-1),L(!0)}function at(){if(ae+1>=ie.length){Te&&Pe(e,!1);return}z(e,ie[ae+1].id)||q(ae+1)}function pt(H,dt,wo){let kr=ae+1<ie.length?ie[ae+1]:null;d&&d(H,ae,dt,kr)===!0&&Te&&h(),S&&S(H,wo,kr),!S&&!d&&(H.primaryButtonUri||H.secondaryButtonUri)&&Te&&h()}function Ot(){return ie.map((H,dt)=>({...H,handleSecondaryButtonClick:()=>{at(),M(H),H.skippable===!0&&m(e,H.id,{skipped:!0}),pt(H,"secondary",dt)},handlePrimaryButtonClick:()=>{(!H.completionCriteria&&(H.autoMarkCompleted||H.autoMarkCompleted===void 0)||H.completionCriteria&&H.autoMarkCompleted===!0)&&(m(e,H.id),at()),pt(H,"primary",dt),Ce(H),x(e,H.id)===Ge&&at()}}))}function G(){return ee.default.createElement(se,{appearance:u})}let _e={steps:Ot(),title:t,subtitle:o,primaryColor:u.theme.colorPrimary,appearance:u,customStepTypes:f,type:s,className:r,autoExpandFirstIncompleteStep:k,autoExpandNextStep:P};function h(){Pe(e,!1),p&&p(),B&&B(!1)}function w(){return ee.default.createElement(ee.default.Fragment,null,ee.default.createElement(G,null),ee.default.createElement(Cs,{flowId:e,appearance:u,customVariables:a,className:r}))}function E(){return ee.default.createElement(ee.default.Fragment,null,ee.default.createElement(G,null),ee.default.createElement(gr,{visible:ue,onClose:()=>{h()},selectedStep:ae,setSelectedStep:q,autoExpandNextStep:!0,appearance:u,..._e}))}function W(){if(!K)return E();let H=I.guideFlowId,dt;return H&&v(H)&&(dt=y(H)),ee.default.createElement(ee.default.Fragment,null,ee.default.createElement(G,null),ee.default.createElement(fr,{visible:ue,stepsTitle:te.stepsTitle?te.stepsTitle:"Your quick start guide",onClose:()=>{h()},selectedStep:ae,setSelectedStep:q,guideData:dt,guideTitle:I.guideTitle??"Guide",appearance:u,title:t,subtitle:o,onGuideButtonClick:wo=>{pt(wo,"link",0)},customStepTypes:f,..._e}))}function Se(){if(!K)return E();let H=ee.default.createElement(cr,{flowId:e,style:i,selectedStep:ae,setSelectedStep:q,appearance:u,type:s,..._e});return Te?ee.default.createElement(Ct,{onClose:()=>{h()},visible:ue,appearance:u,style:{paddingTop:"0px",padding:"12px",paddingLeft:0}},ee.default.createElement(G,null),H):ee.default.createElement(ee.default.Fragment,null,ee.default.createElement(G,null),H)}switch(C){case"condensed":return E();case"with-guide":return W();case"default":return Se();case"carousel":return w();default:return Se()}};var ys=e=>Ss.default.createElement(Qo,{type:"inline",...e});var Ye=g(require("react"));var Ke=g(require("react"));var yo=g(require("styled-components")),bs=yo.default.div`
1242
1242
  border: 1px solid ${e=>e.appearance.theme.colorBorder};
1243
1243
  border-radius: 8px;
1244
1244
  padding: 6px 10px 6px 10px;
@@ -1344,7 +1344,7 @@ ${i=>i.inlineStyles.map(([n,r])=>`.${lo}${n}.${lo}${n} { ${Object.entries(r).map
1344
1344
  `,dp=(0,ro.default)(_s)`
1345
1345
  width: ${oo+12}px;
1346
1346
  height: ${oo+12}px;
1347
- `,cp=({steps:e=[],onDismiss:t,onComplete:o=()=>{},tooltipPosition:i="auto",showHighlight:n=!0,primaryColor:r="#000000",offset:s={x:0,y:0},visible:p=!0,containerStyle:c={},selectedStep:a=0,customStepTypes:S,appearance:d,dismissible:u=!1,showHighlightOnly:b,showStepCount:B=!0,completedStepsCount:f=0,showFrigadeBranding:C=!1})=>{var te,at,pt,Ot;let[k,P]=(0,A.useState)(),[I,v]=(0,A.useState)(new Date),y=(0,A.useRef)(null),[m,x]=(0,A.useState)(document.querySelector(e[a].selector)),T=$s(m,I),[O,H]=(0,A.useState)(),[V,N]=(0,A.useState)(!b),z=(at=(te=e[a])==null?void 0:te.props)!=null&&at.position?e[a].props.position:"absolute",U=((Ot=(pt=e[a])==null?void 0:pt.props)==null?void 0:Ot.zIndex)??90,$=(k==null?void 0:k.width)??Ms,me=(k==null?void 0:k.height)??Us;(0,A.useLayoutEffect)(()=>{y.current&&P({width:y.current.clientWidth,height:y.current.clientHeight})},[a,I,z]),(0,A.useEffect)(()=>{b||N(!0)},[a]);let Ce=i==="auto"?"right":i,M=hr(T,Ce,$,s,z),Ae=T.right+$>(window.innerWidth||document.documentElement.clientWidth),Pe=T.bottom+Us>(window.innerHeight||document.documentElement.clientHeight);Ae&&i==="auto"&&(M=hr(T,"left",$,s,z),Ce="left");let ae=window.location.pathname.split("/").pop(),q=()=>{let j=document.querySelector(e[a].selector);O&&O===JSON.stringify(j==null?void 0:j.getBoundingClientRect())||(x(j),v(new Date),j&&H(JSON.stringify(j.getBoundingClientRect())))};if((0,A.useEffect)(()=>{let j=new MutationObserver(q);return j.observe(document.body,{subtree:!0,childList:!0}),()=>j.disconnect()},[q]),(0,A.useEffect)(()=>{let j=new MutationObserver(q);return j.observe(document.body,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["style","class"]}),()=>j.disconnect()},[q]),(0,A.useEffect)(()=>{let j=setInterval(()=>{q()},10);return()=>clearInterval(j)},[q]),(0,A.useLayoutEffect)(()=>{setTimeout(()=>{q()},sp),q()},[a,ae]),m===null)return A.default.createElement(A.default.Fragment,null);if(M.x==0&&M.y==0)return A.default.createElement(A.default.Fragment,null);if(!p)return A.default.createElement(A.default.Fragment,null);let pe=()=>{let j=()=>{if(e[a].handlePrimaryButtonClick&&(e[a].handlePrimaryButtonClick(),N(!1),setTimeout(()=>{q()},30)),f===e.length-1)return o()},_e=()=>{e[a].handleSecondaryButtonClick&&(e[a].handleSecondaryButtonClick(),b&&N(!1))};return A.default.createElement(A.default.Fragment,null,B&&A.default.createElement(Vr,null,A.default.createElement(Gr,{className:l("tooltipStepCounter",d)},a+1," of ",e.length)),A.default.createElement(jr,{showStepCount:B,className:l("tooltipCTAContainer",d)},e[a].secondaryButtonTitle&&A.default.createElement(ne,{title:e[a].secondaryButtonTitle,appearance:d,onClick:_e,size:"small",withMargin:!1,secondary:!0}),e[a].primaryButtonTitle&&A.default.createElement(ne,{title:e[a].primaryButtonTitle,appearance:d,onClick:j,withMargin:!1,size:"small"})))},L=()=>A.default.createElement(A.default.Fragment,null,u&&A.default.createElement(_r,{"data-testid":"tooltip-dismiss",onClick:()=>{t&&t()},className:l("tooltipClose",d)},A.default.createElement($e,null)),e[a].imageUri&&A.default.createElement(zr,{dismissible:u,appearance:d,src:e[a].imageUri,className:l("tooltipImageContainer",d)}),e[a].videoUri&&!e[a].imageUri&&A.default.createElement(Wr,{dismissible:u,appearance:d,className:l("tooltipVideoContainer",d)},A.default.createElement(Gt,{appearance:d,videoUri:e[a].videoUri})),A.default.createElement(Ee,{appearance:d,title:e[a].title,subtitle:e[a].subtitle,size:"small"}),A.default.createElement(Hr,{className:l("tooltipFooter",d)},A.default.createElement(pe,null))),Te={...{default:j=>{var _e;if((_e=e[a])!=null&&_e.StepContent){let h=e[a].StepContent;return A.default.createElement("div",null,h)}return A.default.createElement(L,null)}},...S},De=()=>{var j;return e?!((j=e[a])!=null&&j.type)||!Te[e[a].type]?Te.default(e[a]):Te[e[a].type]({stepData:e[a],primaryColor:r}):A.default.createElement(A.default.Fragment,null)};if(b&&e[a].complete===!0)return null;let K={top:(M==null?void 0:M.y)-oo,left:(Ce=="left"?T.x+s.x:(M==null?void 0:M.x)-oo)??0,cursor:b?"pointer":"default",position:z},Fe=()=>{let _e=K.left+(Ce=="left"?-$:24);return Math.min(Math.max(_e,20),window.innerWidth-$-20)},ie=()=>{b&&(v(new Date),N(!V))};return A.default.createElement(pp,null,A.default.createElement(dp,{style:K,zIndex:U,className:l("tourHighlightContainer",d)},n&&e[a].showHighlight!==!1&&A.default.createElement(A.default.Fragment,null,A.default.createElement(ap,{style:{position:z},onClick:ie,primaryColor:d.theme.colorPrimary}),A.default.createElement(lp,{style:{position:"absolute"},onClick:ie,primaryColor:d.theme.colorPrimary}))),A.default.createElement(_s,{style:{...K,left:Fe()},zIndex:U+1,className:l("tooltipContainerWrapper",d)},V&&A.default.createElement(A.default.Fragment,null,A.default.createElement(Eo,{ref:y,layoutId:"tooltip-container",style:{position:"relative",width:"max-content",right:0,top:12,...c},appearance:d,className:l("tooltipContainer",d),maxWidth:Ms,zIndex:U+10},A.default.createElement(De,null)),C&&A.default.createElement(Kr,{className:l("poweredByFrigadeTooltipRibbon",d),appearance:d,zIndex:U+10},A.default.createElement(Ao,{appearance:d})))))},Zo=cp;var zs=require("react-portal");var Ws=({flowId:e,customVariables:t,appearance:o,onStepCompletion:i,onButtonClick:n,showTooltipsSimultaneously:r=!1,onDismiss:s,dismissible:p,tooltipPosition:c="auto",showHighlightOnly:a=!1,dismissBehavior:S="complete-flow",onComplete:d,...u})=>{let{getFlow:b,getFlowSteps:B,isLoading:f,targetingLogicShouldHideFlow:C,markStepCompleted:k,markStepStarted:P,markFlowCompleted:I,updateCustomVariables:v,getCurrentStepIndex:y,getStepStatus:m,isStepBlocked:x,getFlowStatus:T,getNumberOfStepsCompleted:O}=Q(),{isLoadingUserFlowStateData:H}=We(),{primaryCTAClickSideEffects:V,secondaryCTAClickSideEffects:N}=de(),{hasOpenModals:z}=Ne(),U=y(e),{openFlowStates:$}=(0,Xe.useContext)(J),{mergeAppearanceWithDefault:me}=re();if(o=me(o),(0,Xe.useEffect)(()=>{v(t)},[t,f]),H)return null;let Ce=b(e);if(!Ce||C(Ce)||T(e)==oe||z())return null;let M=B(e);if(Object.keys($).length>0){let L=Object.keys($).find(ue=>$[ue]===!0);if(L!==void 0&&L!==e)return Xe.default.createElement(Xe.default.Fragment,null)}async function Ae(L){if(await k(e,L.id),M.map(ue=>m(e,ue.id)).every(ue=>ue===Ge)){await I(e);return}if(!a&&U+1<M.length){if(x(e,M[U+1].id))return;await P(e,M[U+1].id)}}function Pe(L,ue,Te){let De=U+1<M.length?M[U+1]:null;n&&n(L,U,ue,De),i&&i(L,Te,De)}function ae(){return M.map(L=>({...L,handleSecondaryButtonClick:async()=>{N(L),L.skippable===!0&&await k(e,L.id,{skipped:!0}),Pe(L,"secondary",U)},handlePrimaryButtonClick:async()=>{(!L.completionCriteria&&(L.autoMarkCompleted||L.autoMarkCompleted===void 0)||L.completionCriteria&&L.autoMarkCompleted===!0)&&await Ae(L),Pe(L,"primary",U),V(L)}}))}async function q(L){s&&s(),S==="complete-flow"?await I(e):await k(e,L.id)}function pe(){d&&d()}return Xe.default.createElement(zs.Portal,null,Xe.default.createElement(se,{appearance:o}),r?M.map((L,ue)=>Xe.default.createElement(Zo,{key:L.id,appearance:o,steps:ae(),selectedStep:ue,showTooltipsSimultaneously:r,dismissible:p,onDismiss:()=>q(L),tooltipPosition:c,showHighlightOnly:a,completedStepsCount:O(e),onComplete:pe,...u})):Xe.default.createElement(Zo,{appearance:o,steps:ae(),selectedStep:U,showTooltipsSimultaneously:r,dismissible:p,onDismiss:()=>q(M[U]),tooltipPosition:c,completedStepsCount:O(e),showHighlightOnly:a,onComplete:pe,...u}))};var le=g(require("react"));var Qs=require("react-portal");var Ft=g(require("styled-components"));var Hs=Ft.default.button`
1347
+ `,cp=({steps:e=[],onDismiss:t,onComplete:o=()=>{},tooltipPosition:i="auto",showHighlight:n=!0,primaryColor:r="#000000",offset:s={x:0,y:0},visible:p=!0,containerStyle:c={},selectedStep:a=0,customStepTypes:S,appearance:d,dismissible:u=!1,showHighlightOnly:b,showStepCount:B=!0,completedStepsCount:f=0,showFrigadeBranding:C=!1})=>{var te,at,pt,Ot;let[k,P]=(0,A.useState)(),[I,v]=(0,A.useState)(new Date),y=(0,A.useRef)(null),[m,x]=(0,A.useState)(document.querySelector(e[a].selector)),T=$s(m,I),[O,V]=(0,A.useState)(),[j,N]=(0,A.useState)(!b),z=(at=(te=e[a])==null?void 0:te.props)!=null&&at.position?e[a].props.position:"absolute",U=((Ot=(pt=e[a])==null?void 0:pt.props)==null?void 0:Ot.zIndex)??90,$=(k==null?void 0:k.width)??Ms,me=(k==null?void 0:k.height)??Us;(0,A.useLayoutEffect)(()=>{y.current&&P({width:y.current.clientWidth,height:y.current.clientHeight})},[a,I,z]),(0,A.useEffect)(()=>{b||N(!0)},[a]);let Ce=i==="auto"?"right":i,M=hr(T,Ce,$,s,z),Ae=T.right+$>(window.innerWidth||document.documentElement.clientWidth),Pe=T.bottom+Us>(window.innerHeight||document.documentElement.clientHeight);Ae&&i==="auto"&&(M=hr(T,"left",$,s,z),Ce="left");let ae=window.location.pathname.split("/").pop(),q=()=>{let G=document.querySelector(e[a].selector);O&&O===JSON.stringify(G==null?void 0:G.getBoundingClientRect())||(x(G),v(new Date),G&&V(JSON.stringify(G.getBoundingClientRect())))};if((0,A.useEffect)(()=>{let G=new MutationObserver(q);return G.observe(document.body,{subtree:!0,childList:!0}),()=>G.disconnect()},[q]),(0,A.useEffect)(()=>{let G=new MutationObserver(q);return G.observe(document.body,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["style","class"]}),()=>G.disconnect()},[q]),(0,A.useEffect)(()=>{let G=setInterval(()=>{q()},10);return()=>clearInterval(G)},[q]),(0,A.useLayoutEffect)(()=>{setTimeout(()=>{q()},sp),q()},[a,ae]),m===null)return A.default.createElement(A.default.Fragment,null);if(M.x==0&&M.y==0)return A.default.createElement(A.default.Fragment,null);if(!p)return A.default.createElement(A.default.Fragment,null);let pe=()=>{let G=()=>{if(e[a].handlePrimaryButtonClick&&(e[a].handlePrimaryButtonClick(),N(!1),setTimeout(()=>{q()},30)),f===e.length-1)return o()},_e=()=>{e[a].handleSecondaryButtonClick&&(e[a].handleSecondaryButtonClick(),b&&N(!1))};return A.default.createElement(A.default.Fragment,null,B&&A.default.createElement(Vr,null,A.default.createElement(Gr,{className:l("tooltipStepCounter",d)},a+1," of ",e.length)),A.default.createElement(jr,{showStepCount:B,className:l("tooltipCTAContainer",d)},e[a].secondaryButtonTitle&&A.default.createElement(ne,{title:e[a].secondaryButtonTitle,appearance:d,onClick:_e,size:"small",withMargin:!1,secondary:!0}),e[a].primaryButtonTitle&&A.default.createElement(ne,{title:e[a].primaryButtonTitle,appearance:d,onClick:G,withMargin:!1,size:"small"})))},L=()=>A.default.createElement(A.default.Fragment,null,u&&A.default.createElement(_r,{"data-testid":"tooltip-dismiss",onClick:()=>{t&&t()},className:l("tooltipClose",d)},A.default.createElement($e,null)),e[a].imageUri&&A.default.createElement(zr,{dismissible:u,appearance:d,src:e[a].imageUri,className:l("tooltipImageContainer",d)}),e[a].videoUri&&!e[a].imageUri&&A.default.createElement(Wr,{dismissible:u,appearance:d,className:l("tooltipVideoContainer",d)},A.default.createElement(Gt,{appearance:d,videoUri:e[a].videoUri})),A.default.createElement(Ee,{appearance:d,title:e[a].title,subtitle:e[a].subtitle,size:"small"}),A.default.createElement(Hr,{className:l("tooltipFooter",d)},A.default.createElement(pe,null))),Te={...{default:G=>{var _e;if((_e=e[a])!=null&&_e.StepContent){let h=e[a].StepContent;return A.default.createElement("div",null,h)}return A.default.createElement(L,null)}},...S},De=()=>{var G;return e?!((G=e[a])!=null&&G.type)||!Te[e[a].type]?Te.default(e[a]):Te[e[a].type]({stepData:e[a],primaryColor:r}):A.default.createElement(A.default.Fragment,null)};if(b&&e[a].complete===!0)return null;let K={top:(M==null?void 0:M.y)-oo,left:(Ce=="left"?T.x+s.x:(M==null?void 0:M.x)-oo)??0,cursor:b?"pointer":"default",position:z},Fe=()=>{let _e=K.left+(Ce=="left"?-$:24);return Math.min(Math.max(_e,20),window.innerWidth-$-20)},ie=()=>{b&&(v(new Date),N(!j))};return A.default.createElement(pp,null,A.default.createElement(dp,{style:K,zIndex:U,className:l("tourHighlightContainer",d)},n&&e[a].showHighlight!==!1&&A.default.createElement(A.default.Fragment,null,A.default.createElement(ap,{style:{position:z},onClick:ie,primaryColor:d.theme.colorPrimary}),A.default.createElement(lp,{style:{position:"absolute"},onClick:ie,primaryColor:d.theme.colorPrimary}))),A.default.createElement(_s,{style:{...K,left:Fe()},zIndex:U+1,className:l("tooltipContainerWrapper",d)},j&&A.default.createElement(A.default.Fragment,null,A.default.createElement(Eo,{ref:y,layoutId:"tooltip-container",style:{position:"relative",width:"max-content",right:0,top:12,...c},appearance:d,className:l("tooltipContainer",d),maxWidth:Ms,zIndex:U+10},A.default.createElement(De,null)),C&&A.default.createElement(Kr,{className:l("poweredByFrigadeTooltipRibbon",d),appearance:d,zIndex:U+10},A.default.createElement(Ao,{appearance:d})))))},Zo=cp;var zs=require("react-portal");var Ws=({flowId:e,customVariables:t,appearance:o,onStepCompletion:i,onButtonClick:n,showTooltipsSimultaneously:r=!1,onDismiss:s,dismissible:p,tooltipPosition:c="auto",showHighlightOnly:a=!1,dismissBehavior:S="complete-flow",onComplete:d,...u})=>{let{getFlow:b,getFlowSteps:B,isLoading:f,targetingLogicShouldHideFlow:C,markStepCompleted:k,markStepStarted:P,markFlowCompleted:I,updateCustomVariables:v,getCurrentStepIndex:y,getStepStatus:m,isStepBlocked:x,getFlowStatus:T,getNumberOfStepsCompleted:O}=Q(),{isLoadingUserFlowStateData:V}=We(),{primaryCTAClickSideEffects:j,secondaryCTAClickSideEffects:N}=de(),{hasOpenModals:z}=Ne(),U=y(e),{openFlowStates:$}=(0,Xe.useContext)(J),{mergeAppearanceWithDefault:me}=re();if(o=me(o),(0,Xe.useEffect)(()=>{v(t)},[t,f]),V)return null;let Ce=b(e);if(!Ce||C(Ce)||T(e)==oe||z())return null;let M=B(e);if(Object.keys($).length>0){let L=Object.keys($).find(ue=>$[ue]===!0);if(L!==void 0&&L!==e)return Xe.default.createElement(Xe.default.Fragment,null)}async function Ae(L){if(await k(e,L.id),M.map(ue=>m(e,ue.id)).every(ue=>ue===Ge)){await I(e);return}if(!a&&U+1<M.length){if(x(e,M[U+1].id))return;await P(e,M[U+1].id)}}function Pe(L,ue,Te){let De=U+1<M.length?M[U+1]:null;n&&n(L,U,ue,De),i&&i(L,Te,De)}function ae(){return M.map(L=>({...L,handleSecondaryButtonClick:async()=>{N(L),L.skippable===!0&&await k(e,L.id,{skipped:!0}),Pe(L,"secondary",U)},handlePrimaryButtonClick:async()=>{(!L.completionCriteria&&(L.autoMarkCompleted||L.autoMarkCompleted===void 0)||L.completionCriteria&&L.autoMarkCompleted===!0)&&await Ae(L),Pe(L,"primary",U),j(L)}}))}async function q(L){s&&s(),S==="complete-flow"?await I(e):await k(e,L.id)}function pe(){d&&d()}return Xe.default.createElement(zs.Portal,null,Xe.default.createElement(se,{appearance:o}),r?M.map((L,ue)=>Xe.default.createElement(Zo,{key:L.id,appearance:o,steps:ae(),selectedStep:ue,showTooltipsSimultaneously:r,dismissible:p,onDismiss:()=>q(L),tooltipPosition:c,showHighlightOnly:a,completedStepsCount:O(e),onComplete:pe,...u})):Xe.default.createElement(Zo,{appearance:o,steps:ae(),selectedStep:U,showTooltipsSimultaneously:r,dismissible:p,onDismiss:()=>q(M[U]),tooltipPosition:c,completedStepsCount:O(e),showHighlightOnly:a,onComplete:pe,...u}))};var le=g(require("react"));var Qs=require("react-portal");var Ft=g(require("styled-components"));var Hs=Ft.default.button`
1348
1348
  ${e=>F(e)} {
1349
1349
  // Anything inside this block will be ignored if the user provides a custom class
1350
1350
 
@@ -1600,5 +1600,5 @@ ${i=>i.inlineStyles.map(([n,r])=>`.${lo}${n}.${lo}${n} { ${Object.entries(r).map
1600
1600
  opacity: 0.8;
1601
1601
  }
1602
1602
  }
1603
- `;var hl=({flowId:e,onDismiss:t,customVariables:o,onButtonClick:i,appearance:n,className:r,style:s})=>{let{getFlow:p,markFlowCompleted:c,markStepCompleted:a,getNumberOfStepsCompleted:S,isLoading:d,targetingLogicShouldHideFlow:u,updateCustomVariables:b,getFlowSteps:B,getFlowStatus:f,getCurrentStepIndex:C}=Q(),{primaryCTAClickSideEffects:k}=de(),{mergeAppearanceWithDefault:P}=re(),[I,v]=X.default.useState(null),[y,m]=X.default.useState(""),{hasOpenModals:x,setKeepCompletedFlowOpenDuringSession:T,shouldKeepCompletedFlowOpenDuringSession:O}=Ne();if(n=P(n),(0,X.useEffect)(()=>{b(o)},[o,d]),d)return null;let H=p(e);if(!H||u(H)||f(e)===oe||S(e)===1&&!O(e)||x())return null;let N=B(e)[C(e)];function z(){return X.default.createElement(X.default.Fragment,null,X.default.createElement(Fr,null,X.default.createElement(Ee,{size:"large",appearance:n,title:N.title,subtitle:N.subtitle})),X.default.createElement(wr,{className:l("npsNumberButtonContainer",n),appearance:n},Array.from(Array(10).keys()).map($=>X.default.createElement(cl,{className:l("npsNumberButton",n),selected:I===$+1,key:$,onClick:async()=>{T(e),v($+1),await a(e,N.id,{score:$+1})},appearance:n},$+1))),X.default.createElement(ml,{appearance:n},X.default.createElement(Tr,{appearance:n},"Not likely at all"),X.default.createElement(Tr,{appearance:n},"Extremely likely")))}function U(){return X.default.createElement(X.default.Fragment,null,X.default.createElement(Fr,null,X.default.createElement(Ee,{appearance:n,title:"Why did you choose this score?",size:"large"})),X.default.createElement(ul,{appearance:n,value:y,onChange:$=>{m($.target.value)},placeHolder:"Add your optional fedback here..."}),X.default.createElement(wr,{appearance:n,className:l("npsNumberButtonContainer",n)},X.default.createElement(ne,{size:"large",withMargin:!1,onClick:async()=>{await c(e),i&&i(N,1,"primary")},appearance:n,title:N.secondaryButtonTitle||"Skip",secondary:!0}),X.default.createElement(ne,{size:"large",withMargin:!1,onClick:async()=>{await a(e,N.id,{feedbackText:y}),await c(e),i&&i(N,1,"primary")},appearance:n,title:N.primaryButtonTitle||"Submit"})))}return X.default.createElement(gl.Portal,null,X.default.createElement(se,{appearance:n}),X.default.createElement(dl,{appearance:n,className:ve(l("npsSurveyContainer",n),r),style:s},X.default.createElement(fl,{onClick:async()=>{await c(e),t&&t()},className:l("npsSurveyDismissButton",n)},X.default.createElement($e,null)),S(e)==0&&z(),S(e)==1&&U()))};0&&(module.exports={CheckBox,FormLabel,FormTextField,FrigadeBanner,FrigadeChecklist,FrigadeDefaultAppearance,FrigadeEmbeddedTip,FrigadeForm,FrigadeGuide,FrigadeHeroChecklist,FrigadeNPSSurvey,FrigadeProgressBadge,FrigadeProvider,FrigadeSupportWidget,FrigadeTour,ProgressRing,useFlowOpens,useFlowResponses,useFlows,useOrganization,useUser});
1603
+ `;var hl=({flowId:e,onDismiss:t,customVariables:o,onButtonClick:i,appearance:n,className:r,style:s})=>{let{getFlow:p,markFlowCompleted:c,markStepCompleted:a,getNumberOfStepsCompleted:S,isLoading:d,targetingLogicShouldHideFlow:u,updateCustomVariables:b,getFlowSteps:B,getFlowStatus:f,getCurrentStepIndex:C}=Q(),{primaryCTAClickSideEffects:k}=de(),{mergeAppearanceWithDefault:P}=re(),[I,v]=X.default.useState(null),[y,m]=X.default.useState(""),{hasOpenModals:x,setKeepCompletedFlowOpenDuringSession:T,shouldKeepCompletedFlowOpenDuringSession:O}=Ne();if(n=P(n),(0,X.useEffect)(()=>{b(o)},[o,d]),d)return null;let V=p(e);if(!V||u(V)||f(e)===oe||S(e)===1&&!O(e)||x())return null;let N=B(e)[C(e)];function z(){return X.default.createElement(X.default.Fragment,null,X.default.createElement(Fr,null,X.default.createElement(Ee,{size:"large",appearance:n,title:N.title,subtitle:N.subtitle})),X.default.createElement(wr,{className:l("npsNumberButtonContainer",n),appearance:n},Array.from(Array(10).keys()).map($=>X.default.createElement(cl,{className:l("npsNumberButton",n),selected:I===$+1,key:$,onClick:async()=>{T(e),v($+1),await a(e,N.id,{score:$+1})},appearance:n},$+1))),X.default.createElement(ml,{appearance:n},X.default.createElement(Tr,{appearance:n},"Not likely at all"),X.default.createElement(Tr,{appearance:n},"Extremely likely")))}function U(){return X.default.createElement(X.default.Fragment,null,X.default.createElement(Fr,null,X.default.createElement(Ee,{appearance:n,title:"Why did you choose this score?",size:"large"})),X.default.createElement(ul,{appearance:n,value:y,onChange:$=>{m($.target.value)},placeHolder:"Add your optional fedback here..."}),X.default.createElement(wr,{appearance:n,className:l("npsNumberButtonContainer",n)},X.default.createElement(ne,{size:"large",withMargin:!1,onClick:async()=>{await c(e),i&&i(N,1,"primary")},appearance:n,title:N.secondaryButtonTitle||"Skip",secondary:!0}),X.default.createElement(ne,{size:"large",withMargin:!1,onClick:async()=>{await a(e,N.id,{feedbackText:y}),await c(e),i&&i(N,1,"primary")},appearance:n,title:N.primaryButtonTitle||"Submit"})))}return X.default.createElement(gl.Portal,null,X.default.createElement(se,{appearance:n}),X.default.createElement(dl,{appearance:n,className:ve(l("npsSurveyContainer",n),r),style:s},X.default.createElement(fl,{onClick:async()=>{await c(e),t&&t()},className:l("npsSurveyDismissButton",n)},X.default.createElement($e,null)),S(e)==0&&z(),S(e)==1&&U()))};0&&(module.exports={CheckBox,FormLabel,FormTextField,FrigadeBanner,FrigadeChecklist,FrigadeDefaultAppearance,FrigadeEmbeddedTip,FrigadeForm,FrigadeGuide,FrigadeHeroChecklist,FrigadeNPSSurvey,FrigadeProgressBadge,FrigadeProvider,FrigadeSupportWidget,FrigadeTour,ProgressRing,useFlowOpens,useFlowResponses,useFlows,useOrganization,useUser});
1604
1604
  //# sourceMappingURL=index.js.map