@frigade/react 1.33.8 → 1.33.9

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 Yl=Object.create;var Ao=Object.defineProperty;var Xl=Object.getOwnPropertyDescriptor;var Jl=Object.getOwnPropertyNames;var Ql=Object.getPrototypeOf,Zl=Object.prototype.hasOwnProperty;var Rl=(e,t)=>{for(var o in t)Ao(e,o,{get:t[o],enumerable:!0})},Hr=(e,t,o,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Jl(t))!Zl.call(e,r)&&r!==o&&Ao(e,r,{get:()=>t[r],enumerable:!(i=Xl(t,r))||i.enumerable});return e};var m=(e,t,o)=>(o=e!=null?Yl(Ql(e)):{},Hr(t||!e||!e.__esModule?Ao(o,"default",{value:e,enumerable:!0}):o,e)),ea=e=>Hr(Ao({},"__esModule",{value:!0}),e);var ed={};Rl(ed,{Box:()=>Xt,Button:()=>Kl,CheckBox:()=>et,FormLabel:()=>mt,FormTextField:()=>Ho,FrigadeBanner:()=>Ml,FrigadeChecklist:()=>lr,FrigadeDefaultAppearance:()=>Ze,FrigadeEmbeddedTip:()=>Il,FrigadeForm:()=>wr,FrigadeGuide:()=>al,FrigadeHeroChecklist:()=>Ys,FrigadeNPSSurvey:()=>jl,FrigadeProgressBadge:()=>sl,FrigadeProvider:()=>xn,FrigadeSupportWidget:()=>Pl,FrigadeTour:()=>gl,ProgressRing:()=>At,Text:()=>pr,tokens:()=>Ro,useFlowOpens:()=>Ne,useFlowResponses:()=>Wt,useFlows:()=>Z,useOrganization:()=>Jo,useUser:()=>Vt});module.exports=ea(ed);var Y=m(require("react")),mn=require("styled-components");var Ce=m(require("react"));var He=require("react");var vt=m(require("react"));var Vr="1.33.8 ";var _e="NOT_STARTED_STEP",ie="COMPLETED_FLOW",Io="ABORTED_FLOW",Bt="STARTED_FLOW",Ve="NOT_STARTED_FLOW",je="COMPLETED_STEP",No="STARTED_STEP";function Qe(){let{publicApiKey:e,userId:t,apiUrl:o}=vt.default.useContext(K);return{config:(0,vt.useMemo)(()=>({headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Frigade-SDK-Version":Vr,"X-Frigade-SDK-Platform":"React"}}),[e,t]),apiUrl:(0,vt.useMemo)(()=>`${o}/v1/public/`,[o])}}var ta="frigade-last-call-at-",oa="frigade-last-call-data-";function Ut(){let{shouldGracefullyDegrade:e,readonly:t}=vt.default.useContext(K);return async(o,i)=>{if(t&&(i.method==="POST"||i.method==="PUT"||i.method==="DELETE"))return Mt();if(e)return console.log(`Skipping ${o} call to Frigade due to error`),Mt();let r=ta+o,n=oa+o;if(window&&window.localStorage&&i&&i.body&&i.method==="POST"){let p=window.localStorage.getItem(r),d=window.localStorage.getItem(n);if(p&&d&&d==i.body){let a=new Date(p);if(new Date().getTime()-a.getTime()<1e3)return Mt()}window.localStorage.setItem(r,new Date().toISOString()),window.localStorage.setItem(n,i.body)}let s;try{s=await fetch(o,i)}catch(p){return Mt(p)}return s?s.ok?s:Mt(s.statusText):Mt()}}function Mt(e){return e&&console.log("Call to Frigade failed",e),{json:()=>({})}}function zt(){let{publicApiKey:e,shouldGracefullyDegrade:t}=vt.default.useContext(K);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 po=require("react");var _t=require("react");var Gr=m(require("swr"));var jr=require("react");function Ne(){let{openFlowStates:e,setOpenFlowStates:t,hasActiveFullPageFlow:o,setCompletedFlowsToKeepOpenDuringSession:i,completedFlowsToKeepOpenDuringSession:r}=(0,jr.useContext)(K);function n(c,x=!1){return e[c]??x}function s(c,x){t(b=>({...b,[c]:x}))}function p(c){t(x=>{let{[c]:b,...F}=x;return{...F}})}function d(c){r.includes(c)||i(x=>[...x,c])}function a(c){return r.includes(c)}function y(c){return Object.entries(e).some(([x,b])=>b&&x!=c)||o}return{getOpenFlowState:n,setOpenFlowState:s,resetOpenFlowState:p,hasOpenModals:y,setKeepCompletedFlowOpenDuringSession:d,shouldKeepCompletedFlowOpenDuringSession:a}}var qr=m(require("swr/immutable")),ra="unknown";function We(){let{config:e,apiUrl:t}=Qe(),{publicApiKey:o,userId:i,organizationId:r,flows:n,setShouldGracefullyDegrade:s,readonly:p}=(0,_t.useContext)(K),{resetOpenFlowState:d}=Ne(),[a,y]=(0,_t.useState)(!1),c={data:n.map(S=>({flowId:S.id,flowState:ie,lastStepId:null,userId:i,foreignUserId:i,stepStates:{},shouldTrigger:!1}))},x=S=>fetch(S,e).then(A=>{if(A.ok)return A.json();throw new Error("Failed to fetch user flow states")}).catch(A=>(console.log(`Error fetching ${S}: ${A}. Will gracefully degrade and hide Frigade`),s(!0),c)),b=o&&n&&i?`${t}userFlowStates?foreignUserId=${encodeURIComponent(i)}${r?`&foreignUserGroupId=${encodeURIComponent(r)}`:""}`:null,{data:F,isLoading:P,mutate:f,error:B}=p?(0,qr.default)(b,x):(0,Gr.default)(b,x,{revalidateOnFocus:!0,revalidateIfStale:!0,keepPreviousData:!0,revalidateOnMount:!0,errorRetryInterval:1e4,errorRetryCount:3,onError:()=>c,onLoadingSlow:()=>c}),h=F==null?void 0:F.data;(0,_t.useEffect)(()=>{!a&&!P&&h&&y(!0)},[h,a,P]);async function k(S){if(h&&!p){let A=h.find(D=>D.flowId===S);A&&A.flowState!==ie&&(A.flowState=ie),await f(Promise.resolve({...F,data:h}),{optimisticData:{...F,data:h},revalidate:!1,rollbackOnError:!1})}}async function O(S,A,D){if(h){let L=h.find(U=>U.flowId===S);L&&(L.stepStates[A]=D,L.flowState=Bt),await f(Promise.resolve({...F,data:h}),{optimisticData:{...F,data:h},revalidate:!1,rollbackOnError:!1})}}async function C(S,A,D){if(h){let L=h.find(U=>U.flowId===S);L&&(L.lastStepId=A,L.stepStates[A]=D,L.flowState=Bt),await f({...F,data:h},{optimisticData:{...F,data:h},revalidate:!1,rollbackOnError:!1})}}async function u(S){if(h){let A=h.find(D=>D.flowId===S);A&&A.flowState!==Ve&&(A.flowState=Ve,A.lastStepId=ra,Object.keys(A.stepStates).forEach(D=>{A.stepStates[D].actionType=_e,A.stepStates[D].createdAt=new Date().toISOString()}),await f({...F,data:h},{optimisticData:{...F,data:h},revalidate:!1,rollbackOnError:!1}),d(S))}}async function T(S,A){if(h){let D=h.find(L=>L.flowId===S);D&&D.stepStates[A]!==_e&&(D.stepStates[A]=_e),await f({...F,data:h},{optimisticData:{...F,data:h},revalidate:!1,rollbackOnError:!1})}}return{userFlowStatesData:h,isLoadingUserFlowStateData:!a,mutateUserFlowState:f,optimisticallyMarkFlowCompleted:k,optimisticallyMarkFlowNotStarted:u,optimisticallyMarkStepCompleted:O,optimisticallyMarkStepNotStarted:T,optimisticallyMarkStepStarted:C,error:B}}function Wt(){let{config:e,apiUrl:t}=Qe(),{userFlowStatesData:o,mutateUserFlowState:i}=We(),{failedFlowResponses:r,setFailedFlowResponses:n,flowResponses:s,setFlowResponses:p}=(0,po.useContext)(K),[d,a]=(0,po.useState)(new Set),[y,c]=(0,po.useState)(new Set),x=Ut();function b(f){let B=JSON.stringify(f);if(d.has(B))return null;d.add(B),a(d),y.add(f),c(y);let h=s==null?void 0:s.find(k=>k.flowSlug===f.flowSlug&&k.stepId===f.stepId&&k.actionType===f.actionType&&k.createdAt===f.createdAt);return x(`${t}flowResponses`,{...e,method:"POST",body:B}).then(k=>{k.status!==200&&k.status!==201?(console.log("Failed to send flow response for step "+f.stepId+". Will retry again later."),n([...r,f])):h||p(O=>[...O??[],f])})}async function F(f){f.foreignUserId&&(f.actionType===Bt||f.actionType===Ve?await b(f):f.actionType===ie?await b(f):f.actionType===No?await b(f):f.actionType===je?await b(f):f.actionType===Io?await b(f):f.actionType===_e&&await b(f))}function P(){let f=[];return o==null||o.forEach(B=>{if(B&&B.stepStates&&Object.keys(B.stepStates).length!==0)for(let h in B.stepStates){let k=B.stepStates[h];f.push({foreignUserId:B.foreignUserId,flowSlug:B.flowId,stepId:k.stepId,actionType:k.actionType,data:{},createdAt:new Date(k.createdAt),blocked:k.blocked,hidden:k.hidden})}}),[...f,...s]}return{addResponse:F,setFlowResponses:p,getFlowResponses:P}}var Yr=m(require("swr"));var ia=/user.flow\(([^\)]+)\) == '?COMPLETED_FLOW'?/gm,Kr=e=>{let t=ia.exec(e);if(t===null)return null;let o=null;return t.forEach((i,r)=>{let n=na(i,"'","");n.startsWith("flow_")&&(o=n)}),o},na=function(e,t,o){return e.replace(new RegExp(t,"g"),o)};function Z(){let{config:e,apiUrl:t}=Qe(),{flows:o,setFlows:i,userId:r,publicApiKey:n,customVariables:s,setCustomVariables:p,hasActiveFullPageFlow:d,setHasActiveFullPageFlow:a,setFlowResponses:y,setShouldGracefullyDegrade:c,readonly:x}=(0,He.useContext)(K),b={data:[]},{verifySDKInitiated:F}=zt(),{addResponse:P,getFlowResponses:f}=Wt(),B=g=>fetch(g,e).then(w=>w.ok?w.json():(console.log(`Error fetching ${g} (${w.status}): ${w.statusText}. .Will gracefully degrade and hide Frigade`),c(!0),b)).catch(w=>(console.log(`Error fetching ${g}: ${w}. Will gracefully degrade and hide Frigade`),c(!0),b)),{userFlowStatesData:h,isLoadingUserFlowStateData:k,optimisticallyMarkFlowCompleted:O,optimisticallyMarkFlowNotStarted:C,optimisticallyMarkStepCompleted:u,optimisticallyMarkStepNotStarted:T,optimisticallyMarkStepStarted:S}=We(),{data:A,error:D,isLoading:L}=(0,Yr.default)(n?`${t}flows${x?"?readonly=true":""}`:null,B,{keepPreviousData:!0});(0,He.useEffect)(()=>{if(D){console.error(D);return}A&&A.data&&i(A.data)},[A,D]);function U(g){if(L)return null;let w=o.find(E=>E.slug===g);return!w&&o.length>0&&!k&&!L?(console.log(`Flow with slug ${g} not found`),null):(w==null?void 0:w.active)===!1?null:w}function $(g){var I;if(!U(g))return[];let w=U(g).data;return w?(w=j(w),(((I=JSON.parse(w))==null?void 0:I.data)??[]).map(re=>{let Pt=pt(re);return{handleSecondaryButtonClick:()=>{re.skippable===!0&&fe(g,re.id,{skipped:!0})},...re,complete:he(g,re.id)===je||Pt>=1,blocked:_(g,re.id),hidden:M(g,re.id),handlePrimaryButtonClick:()=>{(!re.completionCriteria&&(re.autoMarkCompleted||re.autoMarkCompleted===void 0)||re.completionCriteria&&re.autoMarkCompleted===!0)&&fe(g,re.id)},progress:Pt}}).filter(re=>re.hidden!==!0)):[]}function j(g){return g.replaceAll(/\${(.*?)}/g,(w,E)=>s[E]===void 0?"":String(s[E]).replace(/[\u00A0-\u9999<>\&]/g,function(I){return"&#"+I.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 H(g){if(!U(g))return[];let w=U(g).data;return w?(w=j(w),JSON.parse(w)??{}):[]}function ae(g,w){p(E=>({...E,[g]:w}))}function ne(g){!k&&!L&&g&&JSON.stringify(s)!=JSON.stringify({...s,...g})&&Object.keys(g).forEach(w=>{ae(w,g[w])})}let Q=(0,He.useCallback)(async(g,w,E)=>{F();let I={foreignUserId:r,flowSlug:g,stepId:w,actionType:No,data:E??{},createdAt:new Date,blocked:!1,hidden:!1};J(I)&&(await S(g,w,I),P(I))},[r,h]),se=(0,He.useCallback)(async(g,w,E)=>{F();let I={foreignUserId:r,flowSlug:g,stepId:w,actionType:_e,data:E??{},createdAt:new Date,blocked:!1,hidden:!1};J(I)&&(await T(g,w),P(I))},[r,h]),fe=(0,He.useCallback)(async(g,w,E)=>{F();let I={foreignUserId:r,flowSlug:g,stepId:w,actionType:je,data:E??{},createdAt:new Date,blocked:!1,hidden:!1};J(I)&&(await u(g,w,I),P(I))},[r,h]),oe=(0,He.useCallback)(async(g,w)=>{if(F(),Xe(g)===Ve)return;let E={foreignUserId:r,flowSlug:g,stepId:"unknown",actionType:Ve,data:w??{},createdAt:new Date,blocked:!1,hidden:!1};await C(g),J(E)&&P(E)},[r,h]),X=(0,He.useCallback)(async(g,w)=>{F();let E={foreignUserId:r,flowSlug:g,stepId:"unknown",actionType:Bt,data:w??{},createdAt:new Date,blocked:!1,hidden:!1};J(E)&&P(E)},[r,h]),ve=(0,He.useCallback)(async(g,w)=>{F();let E={foreignUserId:r,flowSlug:g,stepId:"unknown",actionType:ie,data:w??{},createdAt:new Date,blocked:!1,hidden:!1};J(E)&&(await O(g),P(E))},[r,h]),De=(0,He.useCallback)(async(g,w)=>{F();let E={foreignUserId:r,flowSlug:g,stepId:"unknown",actionType:Io,data:w??{},createdAt:new Date,blocked:!1,hidden:!1};J(E)&&(await O(g),P(E))},[r,h]);function J(g){var w;if(!h&&g.actionType===_e)return!1;if(h){let E=h.find(I=>I.flowId===g.flowSlug);if(g.actionType===_e&&(!(E!=null&&E.stepStates[g.stepId])||E.stepStates[g.stepId].actionType===_e)||E&&((w=E.stepStates[g.stepId])==null?void 0:w.actionType)===g.actionType||E&&E.flowState===ie&&g.actionType===ie)return!1}return!0}function he(g,w){let E=pe(g,w);return k?null:E?E.actionType:_e}function _(g,w){let E=pe(g,w);return E?E.blocked:!1}function M(g,w){let E=pe(g,w);return E?E.hidden:!1}function pe(g,w){if(k)return null;let E=h==null?void 0:h.find(I=>I.flowId===g);return!E||!E.stepStates[w]?null:E.stepStates[w]??null}function q(g){var E;if(k||!h)return null;if(Xe(g)===Ve)return $(g)[0]??null;let w=(E=h.find(I=>I.flowId===g))==null?void 0:E.lastStepId;return w?$(g).find(I=>I.id===w):null}function de(g){let w=q(g);if(!w)return 0;let E=$(g).findIndex(I=>I.id===w.id)??0;return he(g,w.id)===je&&E<$(g).length-1?E+1:E}function pt(g){if(!g.completionCriteria)return;let w=Kr(g.completionCriteria);if(w===null)return;let E=kt(w),I=V(w);return I===0?void 0:E/I}function Xe(g){let w=h==null?void 0:h.find(E=>E.flowId===g);return w?w.flowState:null}function kt(g){let w=$(g);return w.length===0?0:w.filter(I=>he(g,I.id)===je).length}function V(g){return $(g).length}function ze(g){let w=o.find(E=>E.slug===g);return w?JSON.parse(w.data):null}function Je(g){if(x)return!1;if(k)return!0;if(g!=null&&g.targetingLogic&&h){let w=h.find(E=>E.flowId===g.slug);if(w)return w.shouldTrigger===!1}return!!(g!=null&&g.targetingLogic&&r&&r.startsWith("guest_"))}function cr(g){return!Je(U(g))}return{getFlow:U,getFlowData:ze,isLoading:k||L,getStepStatus:he,getFlowSteps:$,getCurrentStepIndex:de,markStepStarted:Q,markStepCompleted:fe,markFlowNotStarted:oe,markFlowStarted:X,markFlowCompleted:ve,markFlowAborted:De,markStepNotStarted:se,getFlowStatus:Xe,getNumberOfStepsCompleted:kt,getNumberOfSteps:V,targetingLogicShouldHideFlow:Je,setCustomVariable:ae,updateCustomVariables:ne,customVariables:s,getStepOptionalProgress:pt,getFlowMetadata:H,isStepBlocked:_,isStepHidden:M,hasActiveFullPageFlow:d,setHasActiveFullPageFlow:a,isFlowAvailableToUser:cr}}var Et=require("react");var Ht="guest_";function Vt(){let{userId:e,organizationId:t,setUserId:o,setUserProperties:i,shouldGracefullyDegrade:r}=(0,Et.useContext)(K),{config:n,apiUrl:s}=Qe(),{mutateUserFlowState:p}=We(),d=Ut(),{verifySDKInitiated:a}=zt();(0,Et.useEffect)(()=>{if(e&&!t){if(e.startsWith(Ht))return;let x=`frigade-user-registered-${e}`;localStorage.getItem(x)||(d(`${s}users`,{...n,method:"POST",body:JSON.stringify({foreignId:e})}),localStorage.setItem(x,"true"))}},[e,r,t]);let y=(0,Et.useCallback)(async x=>{a();let b={foreignId:e,properties:x};await d(`${s}users`,{...n,method:"POST",body:JSON.stringify(b)}),i(F=>({...F,...x})),p()},[e,n,r,p]),c=(0,Et.useCallback)(async(x,b)=>{a();let P={foreignId:e,events:[{event:x,properties:b}]};await d(`${s}users`,{...n,method:"POST",body:JSON.stringify(P)}),p()},[e,n,p]);return{userId:e,setUserId:o,addPropertiesToUser:y,trackEventForUser:c}}var Ri=require("uuid");var Ie=m(require("react"));var Le=m(require("react")),uo=m(require("styled-components"));var Jr=m(require("react")),Qr=m(require("styled-components"));var Xr="fr-",co="cfr-";function l(e,t){let o=`${Xr}${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+" "+co+e}return o}function v(e){if(!e.className||e.className.indexOf(co)!==-1)return"";let o=e.className.replace(/\s+/g," ").split(" ");return o.length==1&&o[0].startsWith(Xr)?"":`:not(${o.map(i=>`.${i}`).join(", ")})`}function mr(e){return e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function dt(e){return e!=null&&e.styleOverrides?Object.keys(e.styleOverrides).map(t=>`${mr(t)}: ${e.styleOverrides[t]};`).join(" "):""}function Ee(...e){return e.filter(Boolean).join(" ")}function mo(e){return e.charAt(0).toUpperCase()+e.slice(1)}var sa=Qr.default.div`
2
+ var Yl=Object.create;var Ao=Object.defineProperty;var Xl=Object.getOwnPropertyDescriptor;var Jl=Object.getOwnPropertyNames;var Ql=Object.getPrototypeOf,Zl=Object.prototype.hasOwnProperty;var Rl=(e,t)=>{for(var o in t)Ao(e,o,{get:t[o],enumerable:!0})},Hr=(e,t,o,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Jl(t))!Zl.call(e,r)&&r!==o&&Ao(e,r,{get:()=>t[r],enumerable:!(i=Xl(t,r))||i.enumerable});return e};var m=(e,t,o)=>(o=e!=null?Yl(Ql(e)):{},Hr(t||!e||!e.__esModule?Ao(o,"default",{value:e,enumerable:!0}):o,e)),ea=e=>Hr(Ao({},"__esModule",{value:!0}),e);var ed={};Rl(ed,{Box:()=>Xt,Button:()=>Kl,CheckBox:()=>et,FormLabel:()=>mt,FormTextField:()=>Ho,FrigadeBanner:()=>Ml,FrigadeChecklist:()=>lr,FrigadeDefaultAppearance:()=>Ze,FrigadeEmbeddedTip:()=>Il,FrigadeForm:()=>wr,FrigadeGuide:()=>al,FrigadeHeroChecklist:()=>Ys,FrigadeNPSSurvey:()=>jl,FrigadeProgressBadge:()=>sl,FrigadeProvider:()=>xn,FrigadeSupportWidget:()=>Pl,FrigadeTour:()=>gl,ProgressRing:()=>At,Text:()=>pr,tokens:()=>Ro,useFlowOpens:()=>Ne,useFlowResponses:()=>Wt,useFlows:()=>Z,useOrganization:()=>Jo,useUser:()=>Vt});module.exports=ea(ed);var Y=m(require("react")),mn=require("styled-components");var Ce=m(require("react"));var He=require("react");var vt=m(require("react"));var Vr="1.33.9 ";var _e="NOT_STARTED_STEP",ie="COMPLETED_FLOW",Io="ABORTED_FLOW",Bt="STARTED_FLOW",Ve="NOT_STARTED_FLOW",je="COMPLETED_STEP",No="STARTED_STEP";function Qe(){let{publicApiKey:e,userId:t,apiUrl:o}=vt.default.useContext(K);return{config:(0,vt.useMemo)(()=>({headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Frigade-SDK-Version":Vr,"X-Frigade-SDK-Platform":"React"}}),[e,t]),apiUrl:(0,vt.useMemo)(()=>`${o}/v1/public/`,[o])}}var ta="frigade-last-call-at-",oa="frigade-last-call-data-";function Ut(){let{shouldGracefullyDegrade:e,readonly:t}=vt.default.useContext(K);return async(o,i)=>{if(t&&(i.method==="POST"||i.method==="PUT"||i.method==="DELETE"))return Mt();if(e)return console.log(`Skipping ${o} call to Frigade due to error`),Mt();let r=ta+o,n=oa+o;if(window&&window.localStorage&&i&&i.body&&i.method==="POST"){let p=window.localStorage.getItem(r),d=window.localStorage.getItem(n);if(p&&d&&d==i.body){let a=new Date(p);if(new Date().getTime()-a.getTime()<1e3)return Mt()}window.localStorage.setItem(r,new Date().toISOString()),window.localStorage.setItem(n,i.body)}let s;try{s=await fetch(o,i)}catch(p){return Mt(p)}return s?s.ok?s:Mt(s.statusText):Mt()}}function Mt(e){return e&&console.log("Call to Frigade failed",e),{json:()=>({})}}function zt(){let{publicApiKey:e,shouldGracefullyDegrade:t}=vt.default.useContext(K);function o(){return t?(console.error("Frigade hooks cannot be used when Frigade SDK has failed to initialize"),!1):e?!0:(console.error("Frigade hooks cannot be used outside the scope of FrigadeProvider"),!1)}return{verifySDKInitiated:o}}var po=require("react");var _t=require("react");var Gr=m(require("swr"));var jr=require("react");function Ne(){let{openFlowStates:e,setOpenFlowStates:t,hasActiveFullPageFlow:o,setCompletedFlowsToKeepOpenDuringSession:i,completedFlowsToKeepOpenDuringSession:r}=(0,jr.useContext)(K);function n(c,x=!1){return e[c]??x}function s(c,x){t(b=>({...b,[c]:x}))}function p(c){t(x=>{let{[c]:b,...F}=x;return{...F}})}function d(c){r.includes(c)||i(x=>[...x,c])}function a(c){return r.includes(c)}function y(c){return Object.entries(e).some(([x,b])=>b&&x!=c)||o}return{getOpenFlowState:n,setOpenFlowState:s,resetOpenFlowState:p,hasOpenModals:y,setKeepCompletedFlowOpenDuringSession:d,shouldKeepCompletedFlowOpenDuringSession:a}}var qr=m(require("swr/immutable")),ra="unknown";function We(){let{config:e,apiUrl:t}=Qe(),{publicApiKey:o,userId:i,organizationId:r,flows:n,setShouldGracefullyDegrade:s,readonly:p}=(0,_t.useContext)(K),{resetOpenFlowState:d}=Ne(),[a,y]=(0,_t.useState)(!1),c={data:n.map(S=>({flowId:S.id,flowState:ie,lastStepId:null,userId:i,foreignUserId:i,stepStates:{},shouldTrigger:!1}))},x=S=>fetch(S,e).then(A=>{if(A.ok)return A.json();throw new Error("Failed to fetch user flow states")}).catch(A=>(console.log(`Error fetching ${S}: ${A}. Will gracefully degrade and hide Frigade`),s(!0),c)),b=o&&n&&i?`${t}userFlowStates?foreignUserId=${encodeURIComponent(i)}${r?`&foreignUserGroupId=${encodeURIComponent(r)}`:""}`:null,{data:F,isLoading:P,mutate:f,error:B}=p?(0,qr.default)(b,x):(0,Gr.default)(b,x,{revalidateOnFocus:!0,revalidateIfStale:!0,keepPreviousData:!0,revalidateOnMount:!0,errorRetryInterval:1e4,errorRetryCount:3,onError:()=>c,onLoadingSlow:()=>c}),h=F==null?void 0:F.data;(0,_t.useEffect)(()=>{!a&&!P&&h&&y(!0)},[h,a,P]);async function k(S){if(h&&!p){let A=h.find(D=>D.flowId===S);A&&A.flowState!==ie&&(A.flowState=ie),await f(Promise.resolve({...F,data:h}),{optimisticData:{...F,data:h},revalidate:!1,rollbackOnError:!1})}}async function O(S,A,D){if(h){let L=h.find(U=>U.flowId===S);L&&(L.stepStates[A]=D,L.flowState=Bt),await f(Promise.resolve({...F,data:h}),{optimisticData:{...F,data:h},revalidate:!1,rollbackOnError:!1})}}async function C(S,A,D){if(h){let L=h.find(U=>U.flowId===S);L&&(L.lastStepId=A,L.stepStates[A]=D,L.flowState=Bt),await f({...F,data:h},{optimisticData:{...F,data:h},revalidate:!1,rollbackOnError:!1})}}async function u(S){if(h){let A=h.find(D=>D.flowId===S);A&&A.flowState!==Ve&&(A.flowState=Ve,A.lastStepId=ra,Object.keys(A.stepStates).forEach(D=>{A.stepStates[D].actionType=_e,A.stepStates[D].createdAt=new Date().toISOString()}),await f({...F,data:h},{optimisticData:{...F,data:h},revalidate:!1,rollbackOnError:!1}),d(S))}}async function T(S,A){if(h){let D=h.find(L=>L.flowId===S);D&&D.stepStates[A]!==_e&&(D.stepStates[A]=_e),await f({...F,data:h},{optimisticData:{...F,data:h},revalidate:!1,rollbackOnError:!1})}}return{userFlowStatesData:h,isLoadingUserFlowStateData:!a,mutateUserFlowState:f,optimisticallyMarkFlowCompleted:k,optimisticallyMarkFlowNotStarted:u,optimisticallyMarkStepCompleted:O,optimisticallyMarkStepNotStarted:T,optimisticallyMarkStepStarted:C,error:B}}function Wt(){let{config:e,apiUrl:t}=Qe(),{userFlowStatesData:o,mutateUserFlowState:i}=We(),{failedFlowResponses:r,setFailedFlowResponses:n,flowResponses:s,setFlowResponses:p}=(0,po.useContext)(K),[d,a]=(0,po.useState)(new Set),[y,c]=(0,po.useState)(new Set),x=Ut();function b(f){let B=JSON.stringify(f);if(d.has(B))return null;d.add(B),a(d),y.add(f),c(y);let h=s==null?void 0:s.find(k=>k.flowSlug===f.flowSlug&&k.stepId===f.stepId&&k.actionType===f.actionType&&k.createdAt===f.createdAt);return x(`${t}flowResponses`,{...e,method:"POST",body:B}).then(k=>{k.status!==200&&k.status!==201?(console.log("Failed to send flow response for step "+f.stepId+". Will retry again later."),n([...r,f])):h||p(O=>[...O??[],f])})}async function F(f){f.foreignUserId&&(f.actionType===Bt||f.actionType===Ve?await b(f):f.actionType===ie?await b(f):f.actionType===No?await b(f):f.actionType===je?await b(f):f.actionType===Io?await b(f):f.actionType===_e&&await b(f))}function P(){let f=[];return o==null||o.forEach(B=>{if(B&&B.stepStates&&Object.keys(B.stepStates).length!==0)for(let h in B.stepStates){let k=B.stepStates[h];f.push({foreignUserId:B.foreignUserId,flowSlug:B.flowId,stepId:k.stepId,actionType:k.actionType,data:{},createdAt:new Date(k.createdAt),blocked:k.blocked,hidden:k.hidden})}}),[...f,...s]}return{addResponse:F,setFlowResponses:p,getFlowResponses:P}}var Yr=m(require("swr"));var ia=/user.flow\(([^\)]+)\) == '?COMPLETED_FLOW'?/gm,Kr=e=>{let t=ia.exec(e);if(t===null)return null;let o=null;return t.forEach((i,r)=>{let n=na(i,"'","");n.startsWith("flow_")&&(o=n)}),o},na=function(e,t,o){return e.replace(new RegExp(t,"g"),o)};function Z(){let{config:e,apiUrl:t}=Qe(),{flows:o,setFlows:i,userId:r,publicApiKey:n,customVariables:s,setCustomVariables:p,hasActiveFullPageFlow:d,setHasActiveFullPageFlow:a,setFlowResponses:y,setShouldGracefullyDegrade:c,readonly:x}=(0,He.useContext)(K),b={data:[]},{verifySDKInitiated:F}=zt(),{addResponse:P,getFlowResponses:f}=Wt(),B=g=>fetch(g,e).then(w=>w.ok?w.json():(console.log(`Error fetching ${g} (${w.status}): ${w.statusText}. .Will gracefully degrade and hide Frigade`),c(!0),b)).catch(w=>(console.log(`Error fetching ${g}: ${w}. Will gracefully degrade and hide Frigade`),c(!0),b)),{userFlowStatesData:h,isLoadingUserFlowStateData:k,optimisticallyMarkFlowCompleted:O,optimisticallyMarkFlowNotStarted:C,optimisticallyMarkStepCompleted:u,optimisticallyMarkStepNotStarted:T,optimisticallyMarkStepStarted:S}=We(),{data:A,error:D,isLoading:L}=(0,Yr.default)(n?`${t}flows${x?"?readonly=true":""}`:null,B,{keepPreviousData:!0});(0,He.useEffect)(()=>{if(D){console.error(D);return}A&&A.data&&i(A.data)},[A,D]);function U(g){if(L)return null;let w=o.find(E=>E.slug===g);return!w&&o.length>0&&!k&&!L?(console.log(`Flow with slug ${g} not found`),null):(w==null?void 0:w.active)===!1?null:w}function $(g){var I;if(!U(g))return[];let w=U(g).data;return w?(w=j(w),(((I=JSON.parse(w))==null?void 0:I.data)??[]).map(re=>{let Pt=pt(re);return{handleSecondaryButtonClick:()=>{re.skippable===!0&&fe(g,re.id,{skipped:!0})},...re,complete:he(g,re.id)===je||Pt>=1,blocked:_(g,re.id),hidden:M(g,re.id),handlePrimaryButtonClick:()=>{(!re.completionCriteria&&(re.autoMarkCompleted||re.autoMarkCompleted===void 0)||re.completionCriteria&&re.autoMarkCompleted===!0)&&fe(g,re.id)},progress:Pt}}).filter(re=>re.hidden!==!0)):[]}function j(g){return g.replaceAll(/\${(.*?)}/g,(w,E)=>s[E]===void 0?"":String(s[E]).replace(/[\u00A0-\u9999<>\&]/g,function(I){return"&#"+I.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 H(g){if(!U(g))return[];let w=U(g).data;return w?(w=j(w),JSON.parse(w)??{}):[]}function ae(g,w){p(E=>({...E,[g]:w}))}function ne(g){!k&&!L&&g&&JSON.stringify(s)!=JSON.stringify({...s,...g})&&Object.keys(g).forEach(w=>{ae(w,g[w])})}let Q=(0,He.useCallback)(async(g,w,E)=>{if(!F())return;let I={foreignUserId:r,flowSlug:g,stepId:w,actionType:No,data:E??{},createdAt:new Date,blocked:!1,hidden:!1};J(I)&&(await S(g,w,I),P(I))},[r,h]),se=(0,He.useCallback)(async(g,w,E)=>{if(!F())return;let I={foreignUserId:r,flowSlug:g,stepId:w,actionType:_e,data:E??{},createdAt:new Date,blocked:!1,hidden:!1};J(I)&&(await T(g,w),P(I))},[r,h]),fe=(0,He.useCallback)(async(g,w,E)=>{if(!F())return;let I={foreignUserId:r,flowSlug:g,stepId:w,actionType:je,data:E??{},createdAt:new Date,blocked:!1,hidden:!1};J(I)&&(await u(g,w,I),P(I))},[r,h]),oe=(0,He.useCallback)(async(g,w)=>{if(!F()||Xe(g)===Ve)return;let E={foreignUserId:r,flowSlug:g,stepId:"unknown",actionType:Ve,data:w??{},createdAt:new Date,blocked:!1,hidden:!1};await C(g),J(E)&&P(E)},[r,h]),X=(0,He.useCallback)(async(g,w)=>{if(!F())return;let E={foreignUserId:r,flowSlug:g,stepId:"unknown",actionType:Bt,data:w??{},createdAt:new Date,blocked:!1,hidden:!1};J(E)&&P(E)},[r,h]),ve=(0,He.useCallback)(async(g,w)=>{if(!F())return;let E={foreignUserId:r,flowSlug:g,stepId:"unknown",actionType:ie,data:w??{},createdAt:new Date,blocked:!1,hidden:!1};J(E)&&(await O(g),P(E))},[r,h]),De=(0,He.useCallback)(async(g,w)=>{if(!F())return;let E={foreignUserId:r,flowSlug:g,stepId:"unknown",actionType:Io,data:w??{},createdAt:new Date,blocked:!1,hidden:!1};J(E)&&(await O(g),P(E))},[r,h]);function J(g){var w;if(!h&&g.actionType===_e)return!1;if(h){let E=h.find(I=>I.flowId===g.flowSlug);if(g.actionType===_e&&(!(E!=null&&E.stepStates[g.stepId])||E.stepStates[g.stepId].actionType===_e)||E&&((w=E.stepStates[g.stepId])==null?void 0:w.actionType)===g.actionType||E&&E.flowState===ie&&g.actionType===ie)return!1}return!0}function he(g,w){let E=pe(g,w);return k?null:E?E.actionType:_e}function _(g,w){let E=pe(g,w);return E?E.blocked:!1}function M(g,w){let E=pe(g,w);return E?E.hidden:!1}function pe(g,w){if(k)return null;let E=h==null?void 0:h.find(I=>I.flowId===g);return!E||!E.stepStates[w]?null:E.stepStates[w]??null}function q(g){var E;if(k||!h)return null;if(Xe(g)===Ve)return $(g)[0]??null;let w=(E=h.find(I=>I.flowId===g))==null?void 0:E.lastStepId;return w?$(g).find(I=>I.id===w):null}function de(g){let w=q(g);if(!w)return 0;let E=$(g).findIndex(I=>I.id===w.id)??0;return he(g,w.id)===je&&E<$(g).length-1?E+1:E}function pt(g){if(!g.completionCriteria)return;let w=Kr(g.completionCriteria);if(w===null)return;let E=kt(w),I=V(w);return I===0?void 0:E/I}function Xe(g){let w=h==null?void 0:h.find(E=>E.flowId===g);return w?w.flowState:null}function kt(g){let w=$(g);return w.length===0?0:w.filter(I=>he(g,I.id)===je).length}function V(g){return $(g).length}function ze(g){let w=o.find(E=>E.slug===g);return w?JSON.parse(w.data):null}function Je(g){if(x)return!1;if(k)return!0;if(g!=null&&g.targetingLogic&&h){let w=h.find(E=>E.flowId===g.slug);if(w)return w.shouldTrigger===!1}return!!(g!=null&&g.targetingLogic&&r&&r.startsWith("guest_"))}function cr(g){return!Je(U(g))}return{getFlow:U,getFlowData:ze,isLoading:k||L,getStepStatus:he,getFlowSteps:$,getCurrentStepIndex:de,markStepStarted:Q,markStepCompleted:fe,markFlowNotStarted:oe,markFlowStarted:X,markFlowCompleted:ve,markFlowAborted:De,markStepNotStarted:se,getFlowStatus:Xe,getNumberOfStepsCompleted:kt,getNumberOfSteps:V,targetingLogicShouldHideFlow:Je,setCustomVariable:ae,updateCustomVariables:ne,customVariables:s,getStepOptionalProgress:pt,getFlowMetadata:H,isStepBlocked:_,isStepHidden:M,hasActiveFullPageFlow:d,setHasActiveFullPageFlow:a,isFlowAvailableToUser:cr}}var Et=require("react");var Ht="guest_";function Vt(){let{userId:e,organizationId:t,setUserId:o,setUserProperties:i,shouldGracefullyDegrade:r}=(0,Et.useContext)(K),{config:n,apiUrl:s}=Qe(),{mutateUserFlowState:p}=We(),d=Ut(),{verifySDKInitiated:a}=zt();(0,Et.useEffect)(()=>{if(e&&!t){if(e.startsWith(Ht))return;let x=`frigade-user-registered-${e}`;localStorage.getItem(x)||(d(`${s}users`,{...n,method:"POST",body:JSON.stringify({foreignId:e})}),localStorage.setItem(x,"true"))}},[e,r,t]);let y=(0,Et.useCallback)(async x=>{if(!a())return;let b={foreignId:e,properties:x};await d(`${s}users`,{...n,method:"POST",body:JSON.stringify(b)}),i(F=>({...F,...x})),p()},[e,n,r,p]),c=(0,Et.useCallback)(async(x,b)=>{if(!a())return;let P={foreignId:e,events:[{event:x,properties:b}]};await d(`${s}users`,{...n,method:"POST",body:JSON.stringify(P)}),p()},[e,n,p]);return{userId:e,setUserId:o,addPropertiesToUser:y,trackEventForUser:c}}var Ri=require("uuid");var Ie=m(require("react"));var Le=m(require("react")),uo=m(require("styled-components"));var Jr=m(require("react")),Qr=m(require("styled-components"));var Xr="fr-",co="cfr-";function l(e,t){let o=`${Xr}${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+" "+co+e}return o}function v(e){if(!e.className||e.className.indexOf(co)!==-1)return"";let o=e.className.replace(/\s+/g," ").split(" ");return o.length==1&&o[0].startsWith(Xr)?"":`:not(${o.map(i=>`.${i}`).join(", ")})`}function mr(e){return e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function dt(e){return e!=null&&e.styleOverrides?Object.keys(e.styleOverrides).map(t=>`${mr(t)}: ${e.styleOverrides[t]};`).join(" "):""}function Ee(...e){return e.filter(Boolean).join(" ")}function mo(e){return e.charAt(0).toUpperCase()+e.slice(1)}var sa=Qr.default.div`
3
3
  display: flex;
4
4
  justify-content: center;
5
5
  position: fixed;
@@ -630,7 +630,7 @@ var Yl=Object.create;var Ao=Object.defineProperty;var Xl=Object.getOwnPropertyDe
630
630
  display: flex;
631
631
  align-self: center;
632
632
  `;var Xi=({stepData:e,setCanContinue:t,onSaveData:o,appearance:i})=>{let r=e.props,[n,s]=(0,Te.useState)([]),[p,d]=(0,Te.useState)(!1),[a,y]=(0,Te.useState)(e.id);return(0,Te.useEffect)(()=>{n.length==0&&!p&&(d(!0),o({choice:[]}))},[p]),(0,Te.useEffect)(()=>{a!==e.id&&(y(e.id),s([]))},[e]),(0,Te.useEffect)(()=>{o({choice:n}),n.length>=r.minChoices?t(!0):t(!1)},[n]),Te.default.createElement(Wi,{className:l("selectListContainer",i)},Te.default.createElement(Hi,null,Te.default.createElement(Vi,{className:l("selectListTitle",i)},e.title),Te.default.createElement(ji,{appearance:i,className:l("selectListSubtitle",i)},e.subtitle)),r.options.map((c,x)=>{let b=n.includes(c.id);return Te.default.createElement(Gi,{key:`select-item-${x}`,onClick:()=>{if(n.includes(c.id)){s(n.filter(F=>F!==c.id));return}n.length<r.maxChoices?s([...n,c.id]):n.length==1&&r.maxChoices==1&&s([c.id])},hideBottomBorder:x===r.options.length-1,className:l("selectListSelectItem",i)},Te.default.createElement(qi,{className:l("selectListItemImage",i)},c.imageUri&&Te.default.createElement(Ki,{src:c.imageUri,alt:`select-icon-${x}`}),Te.default.createElement(Yi,{appearance:i,className:l("selectListSelectItemText",i)},c.title)),Te.default.createElement(et,{appearance:i,value:b,primaryColor:i.theme.colorPrimary}))}))};var R=m(require("react"));var Yo=require("framer-motion"),rp=({children:e,id:t,shouldWrap:o=!1})=>R.default.createElement(R.default.Fragment,null,o?R.default.createElement(Yo.AnimatePresence,{initial:!1},R.default.createElement(Yo.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),Xo=({appearance:e,steps:t,selectedStep:o,customStepTypes:i,customVariables:r,onButtonClick:n,onStepCompletion:s,flowId:p,type:d,hideOnFlowCompletion:a,onComplete:y,setVisible:c,setShowModal:x,onDismiss:b,showPagination:F=!1,customFormElements:P,allowBackNavigation:f,validationHandler:B})=>{var _;let k={...{linkCollection:zi,multiInput:Pi,callToAction:_i,selectList:Xi},...i},{primaryCTAClickSideEffects:O,secondaryCTAClickSideEffects:C}=ge(),[u,T]=(0,R.useState)(!1),[S,A]=(0,R.useState)({}),[D,L]=(0,R.useState)(!1),[U,$]=(0,R.useState)(!1),[j,H]=(0,R.useState)(null),ae=t[o]??null,{markStepCompleted:ne,markStepStarted:Q,isLoading:se,updateCustomVariables:fe,markFlowCompleted:oe}=Z();(0,R.useEffect)(()=>{fe(r)},[r,se]),(0,R.useEffect)(()=>{window&&f&&!U&&(window.location.hash=t[o].id,$(!0))},[f,U,$]),(0,R.useEffect)(()=>{var M;if(window&&((M=window==null?void 0:window.location)!=null&&M.hash)&&window.location.hash.replace("#","")!==t[o].id){let pe=window.location.hash.replace("#",""),q=t.findIndex(de=>de.id===pe);q!==-1&&Q(p,t[q].id)}},[(_=window==null?void 0:window.location)==null?void 0:_.hash,Q,o,t]);function X(){return{data:S[t[o].id]??{},stepId:t[o].id,customVariables:r}}function ve(M,pe,q){let de=o+1<t.length?t[o+1]:null;return s&&s(M,q,de,S,X()),n?n(M,o,pe,de):!0}function De(M,pe){A(q=>{let de={};return de[M.id]=pe,{...q,...de}})}function J(M){return M.selectedStep.imageUri?R.default.createElement(Li,{image:M.selectedStep.imageUri,appearance:e,className:l("formContainerSidebarImage",e)}):null}let he=R.default.createElement(Di,{step:t[o],canContinue:u&&!D,formType:d,selectedStep:o,appearance:e,onPrimaryClick:async()=>{if(L(!0),B){let q=await B(t[o],o,t[o+1],S,X());if(q){H(q),L(!1);return}else H(null)}let M={...X()};await ne(p,t[o].id,M),o+1<t.length&&await Q(p,t[o+1].id);let pe=ve(t[o],"primary",o);o+1>=t.length&&(y&&y(),b&&b(),a&&pe&&(c&&c(!1),x(!1)),await oe(p)),O(t[o]),L(!1),window&&f&&o+1<t.length&&(window.location.hash=t[o+1].id)},onSecondaryClick:()=>{ve(t[o],"secondary",o),C(t[o])},onBack:async()=>{o-1>=0&&(L(!0),await Q(p,t[o-1].id),L(!1))},steps:t,allowBackNavigation:f,errorMessage:j});return R.default.createElement(R.default.Fragment,null,R.default.createElement(Ai,{className:l("formContainer",e)},R.default.createElement(Ii,null,R.default.createElement(rp,{id:o,shouldWrap:d==="large-modal"},R.default.createElement(Ni,{key:ae.id,type:d,className:l("formContent",e)},t.map(M=>{let pe=k[M.type];return ae.id!==M.id?null:R.default.createElement(pe,{key:M.id,stepData:M,canContinue:u,setCanContinue:T,onSaveData:q=>{De(M,q)},appearance:e,customFormElements:P,flowId:p})}),F&&R.default.createElement(Mi,{className:l("formPagination",e),appearance:e,stepCount:t.length,currentStep:o}),he))),d=="large-modal"&&R.default.createElement(J,{selectedStep:t[o]})))};var Kt=m(require("react")),Ji=require("styled-components");function me({appearance:e}){if(!e||!e.styleOverrides)return Kt.default.createElement(Kt.default.Fragment,null);let t=Object.entries(e.styleOverrides).filter(([i,r])=>typeof r=="object");if(t.length===0)return Kt.default.createElement(Kt.default.Fragment,null);let o=Ji.createGlobalStyle`
633
- ${i=>i.inlineStyles.map(([r,n])=>`.${co}${r}.${co}${r} { ${Object.entries(n).map(([s,p])=>`${mr(s)}: ${p};`).join(" ")} }`).join(" ")}`;return Kt.default.createElement(o,{inlineStyles:t})}var wr=({flowId:e,customStepTypes:t={},type:o="inline",visible:i,setVisible:r,customVariables:n,customFormElements:s,onComplete:p,appearance:d,hideOnFlowCompletion:a=!0,onStepCompletion:y,onButtonClick:c,dismissible:x=!0,endFlowOnDismiss:b=!1,modalPosition:F="center",repeatable:P=!1,onDismiss:f,showPagination:B=!1,allowBackNavigation:h=!1,validationHandler:k,showFrigadeBranding:O=!1})=>{let{getFlow:C,getFlowSteps:u,isLoading:T,targetingLogicShouldHideFlow:S,getFlowStatus:A,getCurrentStepIndex:D,markFlowCompleted:L,markFlowNotStarted:U}=Z(),$=D(e),{mergeAppearanceWithDefault:j}=le(),[H,ae]=(0,Ie.useState)(!1),{setOpenFlowState:ne,getOpenFlowState:Q,hasOpenModals:se}=Ne();d=j(d);let[fe,oe]=i!==void 0&&r!==void 0?[i,r]:[Q(e,!0),J=>ne(e,J)];if((0,Ie.useEffect)(()=>{!H&&!T&&(ae(!0),A(e)===ie&&P&&U(e),ae(!0))},[H,ae,T]),T)return null;let X=C(e);if(!X||S(X))return null;let ve=u(e);if(!ve||i!==void 0&&i===!1||A(e)===ie&&a||(o=="modal"||o=="corner-modal")&&se(e))return null;let De=()=>{oe(!1),f&&f(),b===!0&&L(e)};if(F=="center"&&o==="modal"||o==="large-modal"){let J={padding:"24px"};return o==="large-modal"?(J.width="85%",J.height="90%",J.maxHeight="800px",J.minHeight="500px",J.padding="0"):J.width="400px",Ie.default.createElement(ht,{appearance:d,onClose:De,visible:fe,style:J,dismissible:x,showFrigadeBranding:O},Ie.default.createElement(me,{appearance:d}),Ie.default.createElement(Xo,{appearance:d,steps:ve,selectedStep:$,customStepTypes:t,customVariables:n,onButtonClick:c,onStepCompletion:y,flowId:e,type:o,hideOnFlowCompletion:a,onComplete:p,setVisible:r,setShowModal:oe,onDismiss:f,showPagination:B,customFormElements:s,allowBackNavigation:h,validationHandler:k}))}return o==="modal"&&F!=="center"?Ie.default.createElement(ui,{appearance:d,onClose:De,visible:fe},Ie.default.createElement(me,{appearance:d}),Ie.default.createElement(Xo,{appearance:d,steps:ve,selectedStep:$,customStepTypes:t,customVariables:n,onButtonClick:c,onStepCompletion:y,flowId:e,type:o,hideOnFlowCompletion:a,onComplete:p,setVisible:r,setShowModal:oe,onDismiss:f,showPagination:B,customFormElements:s,allowBackNavigation:h,validationHandler:k})):Ie.default.createElement(Ie.default.Fragment,null,Ie.default.createElement(me,{appearance:d}),Ie.default.createElement(Xo,{appearance:d,steps:ve,selectedStep:$,customStepTypes:t,customVariables:n,onButtonClick:c,onStepCompletion:y,flowId:e,type:o,hideOnFlowCompletion:a,onComplete:p,setVisible:r,setShowModal:oe,onDismiss:f,showPagination:B,customFormElements:s,allowBackNavigation:h,validationHandler:k}))},Qi=wr;var Nt=require("react");function Jo(){let{organizationId:e,userId:t,setOrganizationId:o}=(0,Nt.useContext)(K),{mutateUserFlowState:i}=We(),{config:r,apiUrl:n}=Qe(),s=Ut(),{verifySDKInitiated:p}=zt();(0,Nt.useEffect)(()=>{if(t&&e){if(t.startsWith(Ht))return;let y=`frigade-user-group-registered-${t}-${e}`;localStorage.getItem(y)||(s(`${n}userGroups`,{...r,method:"POST",body:JSON.stringify({foreignUserId:t,foreignUserGroupId:e})}),localStorage.setItem(y,"true"))}},[t,e]);let d=(0,Nt.useCallback)(async y=>{if(p(),!e||!t){console.error("Cannot add properties to organization: Organization ID and User ID must both be set.",{organizationId:e,userId:t});return}let c={foreignUserId:t,foreignUserGroupId:e,properties:y};await s(`${n}userGroups`,{...r,method:"POST",body:JSON.stringify(c)}),i()},[e,t,r,i]),a=(0,Nt.useCallback)(async(y,c)=>{if(p(),!e||!t){console.error("Cannot track event for organization: Organization ID and User ID must both be set.",{organizationId:e,userId:t});return}let b={foreignUserId:t,foreignUserGroupId:e,events:[{event:y,properties:c}]};await s(`${n}userGroups`,{...r,method:"POST",body:JSON.stringify(b)}),i()},[e,t,r,i]);return{organizationId:e,setOrganizationId:o,addPropertiesToOrganization:d,trackEventForOrganization:a}}var Zi="frigade-xFrigade_guestUserId",So="frigade-xFrigade_userId",en=({})=>{let{setFlowResponses:e}=Wt(),{userFlowStatesData:t,isLoadingUserFlowStateData:o,mutateUserFlowState:i}=We(),{userId:r,setUserId:n}=Vt(),[s,p]=(0,Ce.useState)(null),{getFlowStatus:d}=Z(),{flows:a,userProperties:y,setIsNewGuestUser:c,flowResponses:x}=(0,Ce.useContext)(K),[b,F]=(0,Ce.useState)([]),[P,f]=(0,Ce.useState)([]),{organizationId:B}=Jo();(0,Ce.useEffect)(()=>{if(!o&&t)for(let C=0;C<t.length;C++){let u=t[C],T=a.find(S=>S.slug===(u==null?void 0:u.flowId));if(T&&u&&u.shouldTrigger===!0&&T.type=="FORM"&&T.triggerType==="AUTOMATIC"&&!P.includes(T.slug)){setTimeout(()=>{h(u.flowId)},500);break}}},[o,t]),(0,Ce.useEffect)(()=>{x.length>0&&i()},[x]);function h(C){let u=a.find(T=>T.slug===C);u&&u.triggerType==="AUTOMATIC"&&!P.includes(u.slug)&&(f([...P,u.slug]),F([u]))}function k(){if(!r){let C=localStorage.getItem(So);if(C){n(C);return}let u=localStorage.getItem(Zi);if(u){n(u);return}c(!0);let T=Ht+(0,Ri.v4)();try{localStorage.setItem(Zi,T)}catch(S){console.log("Failed to save guest user id locally: Local storage unavailable",S)}n(S=>S||T)}}(0,Ce.useEffect)(()=>{try{if(a){let C=[];a.forEach(u=>{if(u.data){let T=u.data.match(/"imageUri":"(.*?)"/g);T&&T.forEach(S=>{let A=S.replace('"imageUri":"',"").replace('"',"");if(C.includes(A))return;let D=new Image;D.src=A,C.push(A)})}})}}catch{}},[a]),(0,Ce.useEffect)(()=>{if(r!==s&&e([]),p(r),r&&!r.startsWith(Ht))try{localStorage.setItem(So,r)}catch(C){console.log("Failed to save user id locally: Local storage available",C)}r===null&&setTimeout(()=>{r===null&&k()},50)},[r,a,y]);function O(){return Ce.default.createElement(Ce.default.Fragment,null,b.map(C=>d(C.slug)!==Ve?null:Ce.default.createElement("span",{key:C.slug},Ce.default.createElement(Qi,{flowId:C.slug,type:"modal",modalPosition:"center",endFlowOnDismiss:!0}))))}return Ce.default.createElement(Ce.default.Fragment,null,Ce.default.createElement(O,null))};var un=require("react-error-boundary"),fn=require("deepmerge-ts");var on=require("deepmerge-ts"),tn={colorPrimary:"colors.primary.background",colorText:"colors.neutral.foreground",colorBackground:"colors.neutral.background",colorBackgroundSecondary:"colors.secondary.background",colorTextOnPrimaryBackground:"colors.primary.foreground",colorTextSecondary:"colors.secondary.foreground",colorTextDisabled:"colors.gray700",colorBorder:"colors.gray800",colorTextError:"colors.negative.foreground",borderRadius:"radii.lg"};function ip(e){if(!e)return;let t={};return Object.entries(e).forEach(([o,i])=>{if(tn[o]){let r=tn[o].split("."),n=t;r.forEach((s,p)=>{n[s]||(n[s]=p===r.length-1?i:{}),n=n[s]})}}),t}function np(e){if(!e)return;let t=(0,on.deepmerge)({},e),o={};return Object.keys(t).forEach(i=>{let r=`.fr-${i}`;o[r]=t[i]}),o}function rn(e){let{theme:t,styleOverrides:o}=e,i=ip(t),r=np(o);return{overrides:i,css:r}}var sn=m(require("styled-components")),bo=require("styled-system");var Tr=m(require("react")),Yt=m(require("styled-components")),Be=require("styled-system"),nn=require("deepmerge-ts"),sp={width:{property:"width",scale:"sizes",transform:(e,t)=>(0,Be.get)(t,e,!(typeof e=="number"&&!isNaN(e))||e>1?e:e*100+"%")},height:{property:"height",scale:"sizes"},minWidth:{property:"minWidth",scale:"sizes"},minHeight:{property:"minHeight",scale:"sizes"},maxWidth:{property:"maxWidth",scale:"sizes"},maxHeight:{property:"maxHeight",scale:"sizes"},overflow:!0,overflowX:!0,overflowY:!0,display:!0,verticalAlign:!0},lp=(0,Yt.default)("div")(({css:e})=>e,(0,Be.compose)(Be.border,Be.color,Be.shadow,Be.space,Be.typography,(0,Be.system)(sp))),Xt=({as:e,children:t,overrides:o,...i})=>{let r=(0,Yt.useTheme)(),n={border:"none",boxSizing:"border-box",m:0,p:0},s=()=>Tr.default.createElement(lp,{as:e,...n,...i},t);if(o!==void 0){let p=(0,nn.deepmerge)(r,o);return Tr.default.createElement(Yt.ThemeProvider,{theme:p},s())}return s()};var wo={Primary:{backgroundColor:"primary.background",color:"primary.foreground","&:hover":{backgroundColor:"blue400"}},Secondary:{backgroundColor:"white",border:"1px solid",borderColor:"gray800",color:"neutral.foreground","&:hover":{backgroundColor:"blue900"}},Link:{backgroundColor:"transparent",color:"primary.inverted"},Plain:{backgroundColor:"transparent",color:"neutral.foreground"}},ap={sm:{paddingX:4,paddingY:1},md:{paddingX:6,paddingY:2}},ln=(0,sn.default)(Xt)(()=>({whiteSpace:"nowrap"}),(0,bo.compose)((0,bo.variant)({scale:"components.Button",variants:"components.Button"}),(0,bo.variant)({prop:"size",variants:ap})));var an=m(require("styled-components")),Qo=require("styled-system");var Zo={Display1:{fontSize:"5xl",fontWeight:"bold",letterSpacing:"md",lineHeight:"4xl"},Display2:{fontSize:"4xl",fontWeight:"bold",letterSpacing:"md",lineHeight:"3xl"},H1:{fontSize:"3xl",fontWeight:"bold",letterSpacing:"md",lineHeight:"2xl"},H2:{fontSize:"2xl",fontWeight:"bold",letterSpacing:"md",lineHeight:"xl"},H3:{fontSize:"xl",fontWeight:"bold",letterSpacing:"md",lineHeight:"lg"},H4:{fontSize:"lg",fontWeight:"bold",letterSpacing:"md",lineHeight:"md"},Body1:{fontSize:"md",fontWeight:"regular",letterSpacing:"md",lineHeight:"md"},Body2:{fontSize:"sm",fontWeight:"regular",letterSpacing:"md",lineHeight:"md"},Caption:{fontSize:"xs",fontWeight:"regular",letterSpacing:"md",lineHeight:"sm"}};var pn=(0,an.default)(Xt)((0,Qo.variant)({scale:"components.Text",variants:"components.Text"}),(0,Qo.system)({fontWeight:{property:"fontWeight",scale:"fontWeights"}}));var dn=4,cn="px",pp=20,dp=Object.fromEntries(Array.from(Array(pp+1),(e,t)=>t===0?[.5,`${.5*dn}${cn}`]:[t,`${t*dn}${cn}`])),Jt={black:"#000000",gray100:"#14161A",gray200:"#181B20",gray300:"#1F2329",gray400:"#2E343D",gray500:"#4C5766",gray600:"#5A6472",gray700:"#C5CBD3",gray800:"#E2E5E9",gray900:"#F1F2F4",white:"#ffffff",blue400:"#015AC6",blue500:"#0171F8",blue800:"#DBECFF",blue900:"#F5F9FF",green400:"#009E37",green500:"#00D149",green800:"#DBFFE8",transparent:"#FFFFFF00",red500:"#c00000"},Ro={colors:{...Jt,neutral:{foreground:Jt.gray300},primary:{background:Jt.blue500,foreground:Jt.white,inverted:Jt.blue500},negative:{foreground:Jt.red500}},fonts:{default:"TT Interphases Pro, sans-serif"},fontSizes:{xs:"12px",sm:"14px",md:"16px",lg:"18px",xl:"20px","2xl":"24px","3xl":"30px","4xl":"36px","5xl":"48px"},fontWeights:{regular:400,semibold:500,bold:700},letterSpacings:{md:"0.02em"},lineHeights:{xs:"18px",sm:"22px",md:"24px",lg:"26px",xl:"30px","2xl":"38px","3xl":"46px","4xl":"60px"},radii:{md:"8px",lg:"20px",round:"50%"},shadows:{md:"0px 4px 20px rgba(0, 0, 0, 0.06)"},space:dp,components:{Button:wo,Text:Zo}};var gn="https://api.frigade.com",K=(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:Ze,shouldGracefullyDegrade:!1,setShouldGracefullyDegrade:()=>{},apiUrl:gn,readonly:!1});function cp(){Object.keys(localStorage).forEach(e=>{e.startsWith("frigade-")&&localStorage.removeItem(e)})}var xn=({publicApiKey:e,userId:t,organizationId:o,config:i,children:r})=>{var Q,se;let[n,s]=(0,Y.useState)(t||null),[p,d]=(0,Y.useState)(o||null),[a,y]=(0,Y.useState)([]),[c,x]=(0,Y.useState)([]),[b,F]=(0,Y.useState)([]),[P,f]=(0,Y.useState)({}),[B,h]=(0,Y.useState)({}),[k,O]=(0,Y.useState)([]),[C,u]=(0,Y.useState)({}),[T,S]=(0,Y.useState)(!1),[A,D]=(0,Y.useState)(!1),[L,U]=(0,Y.useState)(!H(e)),$=(fe,oe)=>{if(oe==="_blank"){window.open(fe,"_blank");return}setTimeout(()=>{window.location.href=fe},50)},j={theme:{...Ze.theme,...((Q=i==null?void 0:i.defaultAppearance)==null?void 0:Q.theme)??{}},styleOverrides:{...Ze.styleOverrides,...((se=i==null?void 0:i.defaultAppearance)==null?void 0:se.styleOverrides)??{}}};function H(fe){return!!(fe&&fe.length>10&&fe.substring(0,10)==="api_public")}(0,Y.useEffect)(()=>{t&&s(t)},[t]),(0,Y.useEffect)(()=>{n&&window&&window.localStorage&&window.localStorage.getItem(So)&&window.localStorage.getItem(So)!==n&&cp()},[n]),(0,Y.useEffect)(()=>{o&&d(o)},[o]),(0,Y.useEffect)(()=>{if(H(e))U(!1);else{console.error("Frigade SDK failed to initialize. API key provided is either missing or valid."),U(!0);return}},[e,U]);let ae={publicApiKey:e,userId:n,setUserId:s,setFlows:y,flows:a,failedFlowResponses:c,setFailedFlowResponses:x,flowResponses:b,setFlowResponses:F,userProperties:P,setUserProperties:f,openFlowStates:B,setOpenFlowStates:h,completedFlowsToKeepOpenDuringSession:k,setCompletedFlowsToKeepOpenDuringSession:O,customVariables:C,setCustomVariables:u,isNewGuestUser:T,setIsNewGuestUser:S,hasActiveFullPageFlow:A,setHasActiveFullPageFlow:D,organizationId:p,setOrganizationId:d,navigate:i&&i.navigate?i.navigate:$,defaultAppearance:j,shouldGracefullyDegrade:L,setShouldGracefullyDegrade:U,apiUrl:i&&i.apiUrl?i.apiUrl:gn,readonly:i&&i.readonly?i.readonly:!1};if(L)return Y.default.createElement(K.Provider,{value:ae},r);let{overrides:ne}=rn(j);return Y.default.createElement(un.ErrorBoundary,{fallback:Y.default.createElement(Y.default.Fragment,null,r)},Y.default.createElement(K.Provider,{value:ae},Y.default.createElement(mn.ThemeProvider,{theme:(0,fn.deepmerge)(j.theme,Ro,ne??{},(i==null?void 0:i.theme)??{})},r,Y.default.createElement(en,null))))};var Ks=m(require("react"));var te=m(require("react"));var Oe=m(require("react")),Tt=m(require("styled-components"));var To=m(require("react"));var bt=m(require("react")),Fr=m(require("styled-components"));var hn=Fr.default.span`
633
+ ${i=>i.inlineStyles.map(([r,n])=>`.${co}${r}.${co}${r} { ${Object.entries(n).map(([s,p])=>`${mr(s)}: ${p};`).join(" ")} }`).join(" ")}`;return Kt.default.createElement(o,{inlineStyles:t})}var wr=({flowId:e,customStepTypes:t={},type:o="inline",visible:i,setVisible:r,customVariables:n,customFormElements:s,onComplete:p,appearance:d,hideOnFlowCompletion:a=!0,onStepCompletion:y,onButtonClick:c,dismissible:x=!0,endFlowOnDismiss:b=!1,modalPosition:F="center",repeatable:P=!1,onDismiss:f,showPagination:B=!1,allowBackNavigation:h=!1,validationHandler:k,showFrigadeBranding:O=!1})=>{let{getFlow:C,getFlowSteps:u,isLoading:T,targetingLogicShouldHideFlow:S,getFlowStatus:A,getCurrentStepIndex:D,markFlowCompleted:L,markFlowNotStarted:U}=Z(),$=D(e),{mergeAppearanceWithDefault:j}=le(),[H,ae]=(0,Ie.useState)(!1),{setOpenFlowState:ne,getOpenFlowState:Q,hasOpenModals:se}=Ne();d=j(d);let[fe,oe]=i!==void 0&&r!==void 0?[i,r]:[Q(e,!0),J=>ne(e,J)];if((0,Ie.useEffect)(()=>{!H&&!T&&(ae(!0),A(e)===ie&&P&&U(e),ae(!0))},[H,ae,T]),T)return null;let X=C(e);if(!X||S(X))return null;let ve=u(e);if(!ve||i!==void 0&&i===!1||A(e)===ie&&a||(o=="modal"||o=="corner-modal")&&se(e))return null;let De=()=>{oe(!1),f&&f(),b===!0&&L(e)};if(F=="center"&&o==="modal"||o==="large-modal"){let J={padding:"24px"};return o==="large-modal"?(J.width="85%",J.height="90%",J.maxHeight="800px",J.minHeight="500px",J.padding="0"):J.width="400px",Ie.default.createElement(ht,{appearance:d,onClose:De,visible:fe,style:J,dismissible:x,showFrigadeBranding:O},Ie.default.createElement(me,{appearance:d}),Ie.default.createElement(Xo,{appearance:d,steps:ve,selectedStep:$,customStepTypes:t,customVariables:n,onButtonClick:c,onStepCompletion:y,flowId:e,type:o,hideOnFlowCompletion:a,onComplete:p,setVisible:r,setShowModal:oe,onDismiss:f,showPagination:B,customFormElements:s,allowBackNavigation:h,validationHandler:k}))}return o==="modal"&&F!=="center"?Ie.default.createElement(ui,{appearance:d,onClose:De,visible:fe},Ie.default.createElement(me,{appearance:d}),Ie.default.createElement(Xo,{appearance:d,steps:ve,selectedStep:$,customStepTypes:t,customVariables:n,onButtonClick:c,onStepCompletion:y,flowId:e,type:o,hideOnFlowCompletion:a,onComplete:p,setVisible:r,setShowModal:oe,onDismiss:f,showPagination:B,customFormElements:s,allowBackNavigation:h,validationHandler:k})):Ie.default.createElement(Ie.default.Fragment,null,Ie.default.createElement(me,{appearance:d}),Ie.default.createElement(Xo,{appearance:d,steps:ve,selectedStep:$,customStepTypes:t,customVariables:n,onButtonClick:c,onStepCompletion:y,flowId:e,type:o,hideOnFlowCompletion:a,onComplete:p,setVisible:r,setShowModal:oe,onDismiss:f,showPagination:B,customFormElements:s,allowBackNavigation:h,validationHandler:k}))},Qi=wr;var Nt=require("react");function Jo(){let{organizationId:e,userId:t,setOrganizationId:o}=(0,Nt.useContext)(K),{mutateUserFlowState:i}=We(),{config:r,apiUrl:n}=Qe(),s=Ut(),{verifySDKInitiated:p}=zt();(0,Nt.useEffect)(()=>{if(t&&e){if(t.startsWith(Ht))return;let y=`frigade-user-group-registered-${t}-${e}`;localStorage.getItem(y)||(s(`${n}userGroups`,{...r,method:"POST",body:JSON.stringify({foreignUserId:t,foreignUserGroupId:e})}),localStorage.setItem(y,"true"))}},[t,e]);let d=(0,Nt.useCallback)(async y=>{if(!p())return;if(!e||!t){console.error("Cannot add properties to organization: Organization ID and User ID must both be set.",{organizationId:e,userId:t});return}let c={foreignUserId:t,foreignUserGroupId:e,properties:y};await s(`${n}userGroups`,{...r,method:"POST",body:JSON.stringify(c)}),i()},[e,t,r,i]),a=(0,Nt.useCallback)(async(y,c)=>{if(!p())return;if(!e||!t){console.error("Cannot track event for organization: Organization ID and User ID must both be set.",{organizationId:e,userId:t});return}let b={foreignUserId:t,foreignUserGroupId:e,events:[{event:y,properties:c}]};await s(`${n}userGroups`,{...r,method:"POST",body:JSON.stringify(b)}),i()},[e,t,r,i]);return{organizationId:e,setOrganizationId:o,addPropertiesToOrganization:d,trackEventForOrganization:a}}var Zi="frigade-xFrigade_guestUserId",So="frigade-xFrigade_userId",en=({})=>{let{setFlowResponses:e}=Wt(),{userFlowStatesData:t,isLoadingUserFlowStateData:o,mutateUserFlowState:i}=We(),{userId:r,setUserId:n}=Vt(),[s,p]=(0,Ce.useState)(null),{getFlowStatus:d}=Z(),{flows:a,userProperties:y,setIsNewGuestUser:c,flowResponses:x}=(0,Ce.useContext)(K),[b,F]=(0,Ce.useState)([]),[P,f]=(0,Ce.useState)([]),{organizationId:B}=Jo();(0,Ce.useEffect)(()=>{if(!o&&t)for(let C=0;C<t.length;C++){let u=t[C],T=a.find(S=>S.slug===(u==null?void 0:u.flowId));if(T&&u&&u.shouldTrigger===!0&&T.type=="FORM"&&T.triggerType==="AUTOMATIC"&&!P.includes(T.slug)){setTimeout(()=>{h(u.flowId)},500);break}}},[o,t]),(0,Ce.useEffect)(()=>{x.length>0&&i()},[x]);function h(C){let u=a.find(T=>T.slug===C);u&&u.triggerType==="AUTOMATIC"&&!P.includes(u.slug)&&(f([...P,u.slug]),F([u]))}function k(){if(!r){let C=localStorage.getItem(So);if(C){n(C);return}let u=localStorage.getItem(Zi);if(u){n(u);return}c(!0);let T=Ht+(0,Ri.v4)();try{localStorage.setItem(Zi,T)}catch(S){console.log("Failed to save guest user id locally: Local storage unavailable",S)}n(S=>S||T)}}(0,Ce.useEffect)(()=>{try{if(a){let C=[];a.forEach(u=>{if(u.data){let T=u.data.match(/"imageUri":"(.*?)"/g);T&&T.forEach(S=>{let A=S.replace('"imageUri":"',"").replace('"',"");if(C.includes(A))return;let D=new Image;D.src=A,C.push(A)})}})}}catch{}},[a]),(0,Ce.useEffect)(()=>{if(r!==s&&e([]),p(r),r&&!r.startsWith(Ht))try{localStorage.setItem(So,r)}catch(C){console.log("Failed to save user id locally: Local storage available",C)}r===null&&setTimeout(()=>{r===null&&k()},50)},[r,a,y]);function O(){return Ce.default.createElement(Ce.default.Fragment,null,b.map(C=>d(C.slug)!==Ve?null:Ce.default.createElement("span",{key:C.slug},Ce.default.createElement(Qi,{flowId:C.slug,type:"modal",modalPosition:"center",endFlowOnDismiss:!0}))))}return Ce.default.createElement(Ce.default.Fragment,null,Ce.default.createElement(O,null))};var un=require("react-error-boundary"),fn=require("deepmerge-ts");var on=require("deepmerge-ts"),tn={colorPrimary:"colors.primary.background",colorText:"colors.neutral.foreground",colorBackground:"colors.neutral.background",colorBackgroundSecondary:"colors.secondary.background",colorTextOnPrimaryBackground:"colors.primary.foreground",colorTextSecondary:"colors.secondary.foreground",colorTextDisabled:"colors.gray700",colorBorder:"colors.gray800",colorTextError:"colors.negative.foreground",borderRadius:"radii.lg"};function ip(e){if(!e)return;let t={};return Object.entries(e).forEach(([o,i])=>{if(tn[o]){let r=tn[o].split("."),n=t;r.forEach((s,p)=>{n[s]||(n[s]=p===r.length-1?i:{}),n=n[s]})}}),t}function np(e){if(!e)return;let t=(0,on.deepmerge)({},e),o={};return Object.keys(t).forEach(i=>{let r=`.fr-${i}`;o[r]=t[i]}),o}function rn(e){let{theme:t,styleOverrides:o}=e,i=ip(t),r=np(o);return{overrides:i,css:r}}var sn=m(require("styled-components")),bo=require("styled-system");var Tr=m(require("react")),Yt=m(require("styled-components")),Be=require("styled-system"),nn=require("deepmerge-ts"),sp={width:{property:"width",scale:"sizes",transform:(e,t)=>(0,Be.get)(t,e,!(typeof e=="number"&&!isNaN(e))||e>1?e:e*100+"%")},height:{property:"height",scale:"sizes"},minWidth:{property:"minWidth",scale:"sizes"},minHeight:{property:"minHeight",scale:"sizes"},maxWidth:{property:"maxWidth",scale:"sizes"},maxHeight:{property:"maxHeight",scale:"sizes"},overflow:!0,overflowX:!0,overflowY:!0,display:!0,verticalAlign:!0},lp=(0,Yt.default)("div")(({css:e})=>e,(0,Be.compose)(Be.border,Be.color,Be.shadow,Be.space,Be.typography,(0,Be.system)(sp))),Xt=({as:e,children:t,overrides:o,...i})=>{let r=(0,Yt.useTheme)(),n={border:"none",boxSizing:"border-box",m:0,p:0},s=()=>Tr.default.createElement(lp,{as:e,...n,...i},t);if(o!==void 0){let p=(0,nn.deepmerge)(r,o);return Tr.default.createElement(Yt.ThemeProvider,{theme:p},s())}return s()};var wo={Primary:{backgroundColor:"primary.background",color:"primary.foreground","&:hover":{backgroundColor:"blue400"}},Secondary:{backgroundColor:"white",border:"1px solid",borderColor:"gray800",color:"neutral.foreground","&:hover":{backgroundColor:"blue900"}},Link:{backgroundColor:"transparent",color:"primary.inverted"},Plain:{backgroundColor:"transparent",color:"neutral.foreground"}},ap={sm:{paddingX:4,paddingY:1},md:{paddingX:6,paddingY:2}},ln=(0,sn.default)(Xt)(()=>({whiteSpace:"nowrap"}),(0,bo.compose)((0,bo.variant)({scale:"components.Button",variants:"components.Button"}),(0,bo.variant)({prop:"size",variants:ap})));var an=m(require("styled-components")),Qo=require("styled-system");var Zo={Display1:{fontSize:"5xl",fontWeight:"bold",letterSpacing:"md",lineHeight:"4xl"},Display2:{fontSize:"4xl",fontWeight:"bold",letterSpacing:"md",lineHeight:"3xl"},H1:{fontSize:"3xl",fontWeight:"bold",letterSpacing:"md",lineHeight:"2xl"},H2:{fontSize:"2xl",fontWeight:"bold",letterSpacing:"md",lineHeight:"xl"},H3:{fontSize:"xl",fontWeight:"bold",letterSpacing:"md",lineHeight:"lg"},H4:{fontSize:"lg",fontWeight:"bold",letterSpacing:"md",lineHeight:"md"},Body1:{fontSize:"md",fontWeight:"regular",letterSpacing:"md",lineHeight:"md"},Body2:{fontSize:"sm",fontWeight:"regular",letterSpacing:"md",lineHeight:"md"},Caption:{fontSize:"xs",fontWeight:"regular",letterSpacing:"md",lineHeight:"sm"}};var pn=(0,an.default)(Xt)((0,Qo.variant)({scale:"components.Text",variants:"components.Text"}),(0,Qo.system)({fontWeight:{property:"fontWeight",scale:"fontWeights"}}));var dn=4,cn="px",pp=20,dp=Object.fromEntries(Array.from(Array(pp+1),(e,t)=>t===0?[.5,`${.5*dn}${cn}`]:[t,`${t*dn}${cn}`])),Jt={black:"#000000",gray100:"#14161A",gray200:"#181B20",gray300:"#1F2329",gray400:"#2E343D",gray500:"#4C5766",gray600:"#5A6472",gray700:"#C5CBD3",gray800:"#E2E5E9",gray900:"#F1F2F4",white:"#ffffff",blue400:"#015AC6",blue500:"#0171F8",blue800:"#DBECFF",blue900:"#F5F9FF",green400:"#009E37",green500:"#00D149",green800:"#DBFFE8",transparent:"#FFFFFF00",red500:"#c00000"},Ro={colors:{...Jt,neutral:{foreground:Jt.gray300},primary:{background:Jt.blue500,foreground:Jt.white,inverted:Jt.blue500},negative:{foreground:Jt.red500}},fonts:{default:"TT Interphases Pro, sans-serif"},fontSizes:{xs:"12px",sm:"14px",md:"16px",lg:"18px",xl:"20px","2xl":"24px","3xl":"30px","4xl":"36px","5xl":"48px"},fontWeights:{regular:400,semibold:500,bold:700},letterSpacings:{md:"0.02em"},lineHeights:{xs:"18px",sm:"22px",md:"24px",lg:"26px",xl:"30px","2xl":"38px","3xl":"46px","4xl":"60px"},radii:{md:"8px",lg:"20px",round:"50%"},shadows:{md:"0px 4px 20px rgba(0, 0, 0, 0.06)"},space:dp,components:{Button:wo,Text:Zo}};var gn="https://api.frigade.com",K=(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:Ze,shouldGracefullyDegrade:!1,setShouldGracefullyDegrade:()=>{},apiUrl:gn,readonly:!1});function cp(){Object.keys(localStorage).forEach(e=>{e.startsWith("frigade-")&&localStorage.removeItem(e)})}var xn=({publicApiKey:e,userId:t,organizationId:o,config:i,children:r})=>{var Q,se;let[n,s]=(0,Y.useState)(t||null),[p,d]=(0,Y.useState)(o||null),[a,y]=(0,Y.useState)([]),[c,x]=(0,Y.useState)([]),[b,F]=(0,Y.useState)([]),[P,f]=(0,Y.useState)({}),[B,h]=(0,Y.useState)({}),[k,O]=(0,Y.useState)([]),[C,u]=(0,Y.useState)({}),[T,S]=(0,Y.useState)(!1),[A,D]=(0,Y.useState)(!1),[L,U]=(0,Y.useState)(!H(e)),$=(fe,oe)=>{if(oe==="_blank"){window.open(fe,"_blank");return}setTimeout(()=>{window.location.href=fe},50)},j={theme:{...Ze.theme,...((Q=i==null?void 0:i.defaultAppearance)==null?void 0:Q.theme)??{}},styleOverrides:{...Ze.styleOverrides,...((se=i==null?void 0:i.defaultAppearance)==null?void 0:se.styleOverrides)??{}}};function H(fe){return!!(fe&&fe.length>10&&fe.substring(0,10)==="api_public")}(0,Y.useEffect)(()=>{t&&s(t)},[t]),(0,Y.useEffect)(()=>{n&&window&&window.localStorage&&window.localStorage.getItem(So)&&window.localStorage.getItem(So)!==n&&cp()},[n]),(0,Y.useEffect)(()=>{o&&d(o)},[o]),(0,Y.useEffect)(()=>{if(H(e))U(!1);else{console.error("Frigade SDK failed to initialize. API key provided is either missing or valid."),U(!0);return}},[e,U]);let ae={publicApiKey:e,userId:n,setUserId:s,setFlows:y,flows:a,failedFlowResponses:c,setFailedFlowResponses:x,flowResponses:b,setFlowResponses:F,userProperties:P,setUserProperties:f,openFlowStates:B,setOpenFlowStates:h,completedFlowsToKeepOpenDuringSession:k,setCompletedFlowsToKeepOpenDuringSession:O,customVariables:C,setCustomVariables:u,isNewGuestUser:T,setIsNewGuestUser:S,hasActiveFullPageFlow:A,setHasActiveFullPageFlow:D,organizationId:p,setOrganizationId:d,navigate:i&&i.navigate?i.navigate:$,defaultAppearance:j,shouldGracefullyDegrade:L,setShouldGracefullyDegrade:U,apiUrl:i&&i.apiUrl?i.apiUrl:gn,readonly:i&&i.readonly?i.readonly:!1};if(L)return Y.default.createElement(K.Provider,{value:ae},r);let{overrides:ne}=rn(j);return Y.default.createElement(un.ErrorBoundary,{fallback:Y.default.createElement(Y.default.Fragment,null,r)},Y.default.createElement(K.Provider,{value:ae},Y.default.createElement(mn.ThemeProvider,{theme:(0,fn.deepmerge)(j.theme,Ro,ne??{},(i==null?void 0:i.theme)??{})},r,Y.default.createElement(en,null))))};var Ks=m(require("react"));var te=m(require("react"));var Oe=m(require("react")),Tt=m(require("styled-components"));var To=m(require("react"));var bt=m(require("react")),Fr=m(require("styled-components"));var hn=Fr.default.span`
634
634
  font-weight: 400;
635
635
  font-size: 15px;
636
636
  line-height: 20px;