@frigade/react 1.36.8 → 1.37.0

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/README.md CHANGED
@@ -70,6 +70,7 @@ Frigade makes it easy to manage multiple versions of onboarding across staging a
70
70
 
71
71
  Frigade automatically tracks state management and onboarding progress. Give your team full observability into the customer journey, and use Frigade to kick off automated workflows.
72
72
 
73
+
73
74
  To learn more, visit [frigade.com](<https://frigade.com>)
74
75
 
75
76
 
@@ -347,13 +347,9 @@ interface FrigadeChecklistProps extends HeroChecklistProps {
347
347
  customVariables?: {
348
348
  [key: string]: string | number | boolean;
349
349
  };
350
- /**
351
- * Flow ID referencing the flow of a guide/link collection to attach to this Checklist
352
- */
350
+ /** @ignore */
353
351
  guideFlowId?: string;
354
- /**
355
- * Title for the guide (if attached)
356
- */
352
+ /** @ignore */
357
353
  guideTitle?: string;
358
354
  autoExpandFirstIncompleteStep?: boolean;
359
355
  autoExpandNextStep?: boolean;
@@ -748,9 +744,9 @@ declare function Label({ title, required, appearance, }: {
748
744
  title?: string;
749
745
  required: boolean;
750
746
  appearance?: Appearance;
751
- }): JSX.Element;
747
+ }): React__default.JSX.Element;
752
748
 
753
- declare function TextField({ formInput, customFormTypeProps, onSaveInputData, setFormValidationErrors, inputData, }: FormInputProps): JSX.Element;
749
+ declare function TextField({ formInput, customFormTypeProps, onSaveInputData, setFormValidationErrors, inputData, }: FormInputProps): React__default.JSX.Element;
754
750
 
755
751
  interface Overrides extends Record<string, Overrides | CSSProperties> {
756
752
  }
@@ -760,14 +756,14 @@ type BoxProps<T extends ElementType = 'div'> = {
760
756
  children?: ReactNode;
761
757
  overrides?: Overrides;
762
758
  } & BorderProps & ColorProps & Exclude<LayoutProps, 'size'> & ShadowProps & SpaceProps & TypographyProps & ComponentPropsWithoutRef<T>;
763
- declare const Box: <T extends React__default.ElementType<any> = "div">({ as, children, overrides, ...rest }: any) => JSX.Element;
759
+ declare const Box: <T extends React__default.ElementType<any> = "div">({ as, children, overrides, ...rest }: any) => React__default.JSX.Element;
764
760
 
765
761
  interface ButtonProps extends BoxProps {
766
762
  title: string;
767
763
  }
768
764
  declare const Button: React.FC<ButtonProps> & {
769
765
  [k: string]: {
770
- (props: ButtonProps): JSX.Element;
766
+ (props: ButtonProps): React.JSX.Element;
771
767
  displayName: string;
772
768
  };
773
769
  };
@@ -858,7 +854,7 @@ interface BaseTextProps extends BoxProps, Partial<Pick<FontProps, 'fontWeight'>>
858
854
  }
859
855
  declare const Text: React__default.FC<BaseTextProps> & {
860
856
  [k: string]: {
861
- (props: BaseTextProps): JSX.Element;
857
+ (props: BaseTextProps): React__default.JSX.Element;
862
858
  displayName: string;
863
859
  };
864
860
  };
@@ -872,7 +868,7 @@ declare const ProgressBar: ({ count, total, display, textLocation, style, textSt
872
868
  style?: CSSProperties;
873
869
  textStyle?: CSSProperties;
874
870
  appearance?: Appearance;
875
- }) => JSX.Element;
871
+ }) => React__default.JSX.Element;
876
872
 
877
873
  declare const tokens: {
878
874
  colors: {
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- var va=Object.create;var vo=Object.defineProperty,Ba=Object.defineProperties,Ea=Object.getOwnPropertyDescriptor,Aa=Object.getOwnPropertyDescriptors,Oa=Object.getOwnPropertyNames,Jo=Object.getOwnPropertySymbols,Na=Object.getPrototypeOf,Ar=Object.prototype.hasOwnProperty,hi=Object.prototype.propertyIsEnumerable;var gi=(e,t,o)=>t in e?vo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,w=(e,t)=>{for(var o in t||(t={}))Ar.call(t,o)&&gi(e,o,t[o]);if(Jo)for(var o of Jo(t))hi.call(t,o)&&gi(e,o,t[o]);return e},q=(e,t)=>Ba(e,Aa(t));var xi=e=>typeof e=="symbol"?e:e+"",Ye=(e,t)=>{var o={};for(var n in e)Ar.call(e,n)&&t.indexOf(n)<0&&(o[n]=e[n]);if(e!=null&&Jo)for(var n of Jo(e))t.indexOf(n)<0&&hi.call(e,n)&&(o[n]=e[n]);return o};var Ia=(e,t)=>{for(var o in t)vo(e,o,{get:t[o],enumerable:!0})},Ci=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Oa(t))!Ar.call(e,i)&&i!==o&&vo(e,i,{get:()=>t[i],enumerable:!(n=Ea(t,i))||n.enumerable});return e};var u=(e,t,o)=>(o=e!=null?va(Na(e)):{},Ci(t||!e||!e.__esModule?vo(o,"default",{value:e,enumerable:!0}):o,e)),La=e=>Ci(vo({},"__esModule",{value:!0}),e);var z=(e,t,o)=>new Promise((n,i)=>{var r=d=>{try{p(o.next(d))}catch(l){i(l)}},s=d=>{try{p(o.throw(d))}catch(l){i(l)}},p=d=>d.done?n(d.value):Promise.resolve(d.value).then(r,s);p((o=o.apply(e,t)).next())});var Dd={};Ia(Dd,{Box:()=>go,Button:()=>ka,CheckBox:()=>ht,FlowType:()=>Qo,FormLabel:()=>Pt,FormTextField:()=>pr,FrigadeAnnouncement:()=>wa,FrigadeBanner:()=>na,FrigadeChecklist:()=>kr,FrigadeDefaultAppearance:()=>gt,FrigadeEmbeddedTip:()=>Rl,FrigadeForm:()=>jr,FrigadeGuide:()=>Al,FrigadeHeroChecklist:()=>xl,FrigadeNPSSurvey:()=>ma,FrigadeProgressBadge:()=>Bl,FrigadeProvider:()=>Hn,FrigadeSupportWidget:()=>Yl,FrigadeTour:()=>Dl,ProgressBar:()=>Qe,ProgressRing:()=>Gt,Text:()=>Br,tokens:()=>yr,useFlowOpens:()=>ze,useFlowResponses:()=>so,useFlows:()=>Q,useOrganization:()=>hr,useUser:()=>ao,useUserFlowStates:()=>Xe});module.exports=La(Dd);var te=u(require("react")),Wn=require("styled-components");var ge=u(require("react"));var rt=require("react");var Vt=u(require("react"));var yi="1.36.8 ";var kt="NOT_STARTED_STEP",se="COMPLETED_FLOW",Xo="ABORTED_FLOW",jt="STARTED_FLOW",et="NOT_STARTED_FLOW",Je="COMPLETED_STEP",Bo="STARTED_STEP";function mt(){let{publicApiKey:e,userId:t,apiUrl:o}=Vt.default.useContext(X);return{config:(0,Vt.useMemo)(()=>({headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Frigade-SDK-Version":yi,"X-Frigade-SDK-Platform":"React"}}),[e,t]),apiUrl:(0,Vt.useMemo)(()=>`${o}/v1/public/`,[o])}}var $a="frigade-last-call-at-",Ma="frigade-last-call-data-";function oo(){let{shouldGracefullyDegrade:e,readonly:t}=Vt.default.useContext(X);return(o,n)=>z(this,null,function*(){if(t&&(n.method==="POST"||n.method==="PUT"||n.method==="DELETE"))return to();if(e)return console.log(`Skipping ${o} call to Frigade due to error`),to();let i=$a+o,r=Ma+o;if(typeof window!="undefined"&&window.localStorage&&n&&n.body&&n.method==="POST"){let p=window.localStorage.getItem(i),d=window.localStorage.getItem(r);if(p&&d&&d==n.body){let l=new Date(p);if(new Date().getTime()-l.getTime()<1e3)return to()}typeof window!="undefined"&&(window.localStorage.setItem(i,new Date().toISOString()),window.localStorage.setItem(r,n.body))}let s;try{s=yield fetch(o,n)}catch(p){return to(p)}return s?s.ok?s:to(s.statusText):to()})}function to(e){return e&&console.log("Call to Frigade failed",e),{json:()=>({})}}function ro(){let{publicApiKey:e,shouldGracefullyDegrade:t}=Vt.default.useContext(X);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 Eo=require("react");var no=require("react");var bi=u(require("swr"));var Si=require("react");function ze(){let{openFlowStates:e,setOpenFlowStates:t,hasActiveFullPageFlow:o,setCompletedFlowsToKeepOpenDuringSession:n,completedFlowsToKeepOpenDuringSession:i}=(0,Si.useContext)(X);function r(c,g=!1){var y;return(y=e[c])!=null?y:g}function s(c,g){t(y=>q(w({},y),{[c]:g}))}function p(c){t(g=>{let C=g,{[c]:y}=C,T=Ye(C,[xi(c)]);return w({},T)})}function d(c){i.includes(c)||n(g=>[...g,c])}function l(c){return i.includes(c)}function m(c){return Object.entries(e).some(([g,y])=>y&&g!=c)||o}return{getOpenFlowState:r,setOpenFlowState:s,resetOpenFlowState:p,hasOpenModals:m,setKeepCompletedFlowOpenDuringSession:d,shouldKeepCompletedFlowOpenDuringSession:l}}var wi=u(require("swr/immutable"));var io=u(require("core-js-pure/actual/structured-clone"));function Or(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ke(...e){let t=e.shift(),o=e.length===1?e[0]:ke(...e);if(!Or(t)||!Or(o))throw new Error("deepmerge can only merge Objects");let n=(0,io.default)(t);return Object.entries(o).forEach(([i,r])=>{Or(r)?n[i]!==void 0?Object.assign(n,{[i]:ke(n[i],(0,io.default)(r))}):Object.assign(n,{[i]:(0,io.default)(r)}):Array.isArray(r)?n[i]!==void 0?Object.assign(n,{[i]:[...n[i],...(0,io.default)(r)]}):Object.assign(n,{[i]:(0,io.default)(r)}):Object.assign(n,{[i]:r})}),n}var Da="unknown";function Xe(){let{config:e,apiUrl:t}=mt(),{publicApiKey:o,userId:n,organizationId:i,flows:r,setShouldGracefullyDegrade:s,readonly:p}=(0,no.useContext)(X),{resetOpenFlowState:d}=ze(),[l,m]=(0,no.useState)(!1),c={data:r.map(b=>({flowId:b.id,flowState:se,lastStepId:null,userId:n,foreignUserId:n,stepStates:{},shouldTrigger:!1}))},g=b=>fetch(b,e).then(k=>{if(k.ok)return k.json();throw new Error("Failed to fetch user flow states")}).catch(k=>(console.log(`Error fetching ${b}: ${k}. Will gracefully degrade and hide Frigade`),s(!0),c)),y=o&&r&&n?`${t}userFlowStates?foreignUserId=${encodeURIComponent(n)}${i?`&foreignUserGroupId=${encodeURIComponent(i)}`:""}`:null,{data:T,isLoading:C,mutate:h,error:O}=p?(0,wi.default)(y,g):(0,bi.default)(y,g,{revalidateOnFocus:!0,revalidateIfStale:!0,keepPreviousData:!0,revalidateOnMount:!1,errorRetryInterval:1e4,errorRetryCount:3,onError:()=>c,onLoadingSlow:()=>c}),F=T==null?void 0:T.data;(0,no.useEffect)(()=>{!l&&!C&&F&&m(!0)},[F,l,C]);function P(b){return z(this,null,function*(){if(F&&!p){let k=F.find(D=>D.flowId===b);k&&k.flowState!==se&&(k.flowState=se),yield h(Promise.resolve(ke(T,{data:F})),{optimisticData:ke(T,{data:F}),revalidate:!1,rollbackOnError:!1})}})}function v(b,k,D){return z(this,null,function*(){if(F){let N=F.find(L=>L.flowId===b);N&&(N.stepStates[k]=D,N.flowState=jt),yield h(Promise.resolve(ke(T,{data:F})),{optimisticData:ke(T,{data:F}),revalidate:!1,rollbackOnError:!1})}})}function B(b,k,D){return z(this,null,function*(){if(F){let N=F.find(L=>L.flowId===b);N&&(N.lastStepId=k,N.stepStates[k]=D,N.flowState=jt),yield h(ke(T,{data:F}),{optimisticData:ke(T,{data:F}),revalidate:!1,rollbackOnError:!1})}})}function f(b){return z(this,null,function*(){if(F){let k=F.find(D=>D.flowId===b);k&&k.flowState!==et&&(k.flowState=et,k.lastStepId=Da,Object.keys(k.stepStates).forEach(D=>{k.stepStates[D].actionType=kt,k.stepStates[D].createdAt=new Date().toISOString()}),yield h(ke(T,{data:F}),{optimisticData:ke(T,{data:F}),revalidate:!1,rollbackOnError:!1}),d(b))}})}function $(b,k,D){return z(this,null,function*(){if(F){let N=F.find(L=>L.flowId===b);N&&(N.stepStates[k]=D),yield h(Promise.resolve(ke(T,{data:F})),{optimisticData:ke(T,{data:F}),revalidate:!1,rollbackOnError:!1})}})}return{userFlowStatesData:F,isLoadingUserFlowStateData:!l,mutateUserFlowState:h,optimisticallyMarkFlowCompleted:P,optimisticallyMarkFlowNotStarted:f,optimisticallyMarkStepCompleted:v,optimisticallyMarkStepNotStarted:$,optimisticallyMarkStepStarted:B,error:O}}function so(){let{config:e,apiUrl:t}=mt(),{userFlowStatesData:o,mutateUserFlowState:n}=Xe(),{failedFlowResponses:i,setFailedFlowResponses:r,flowResponses:s,setFlowResponses:p}=(0,Eo.useContext)(X),[d,l]=(0,Eo.useState)(new Set),[m,c]=(0,Eo.useState)(new Set),g=oo();function y(h){let O=JSON.stringify(h);if(d.has(O))return null;d.add(O),l(d),m.add(h),c(m);let F=s==null?void 0:s.find(P=>P.flowSlug===h.flowSlug&&P.stepId===h.stepId&&P.actionType===h.actionType&&P.createdAt===h.createdAt);return g(`${t}flowResponses`,q(w({},e),{method:"POST",body:O})).then(P=>{P.status!==200&&P.status!==201?(console.log("Failed to send flow response for step "+h.stepId+". Will retry again later."),r([...i,h])):F||p(v=>[...v!=null?v:[],h])})}function T(h){return z(this,null,function*(){h.foreignUserId&&(h.actionType===jt||h.actionType===et?yield y(h):h.actionType===se?yield y(h):h.actionType===Bo?yield y(h):h.actionType===Je?yield y(h):h.actionType===Xo?yield y(h):h.actionType===kt&&(yield y(h)))})}function C(){let h=[];return o==null||o.forEach(O=>{if(O&&O.stepStates&&Object.keys(O.stepStates).length!==0)for(let F in O.stepStates){let P=O.stepStates[F];h.push({foreignUserId:O.foreignUserId,flowSlug:O.flowId,stepId:P.stepId,actionType:P.actionType,data:{},createdAt:new Date(P.createdAt),blocked:P.blocked,hidden:P.hidden})}}),[...h,...s]}return{addResponse:T,setFlowResponses:p,getFlowResponses:C}}var Fi=u(require("swr"));var Ua=/user.flow\(([^\)]+)\) == '?COMPLETED_FLOW'?/gm,Ti=e=>{let t=Ua.exec(e);if(t===null)return null;let o=null;return t.forEach((n,i)=>{let r=Wa(n,"'","");r.startsWith("flow_")&&(o=r)}),o},Wa=function(e,t,o){return e.replace(new RegExp(t,"g"),o)};function Nr(e){try{return JSON.parse(e)}catch(t){return console.error("Failed to parse Frigade config.yml to JSON",t),null}}var Qo=(l=>(l.CHECKLIST="CHECKLIST",l.FORM="FORM",l.TOUR="TOUR",l.SUPPORT="SUPPORT",l.CUSTOM="CUSTOM",l.BANNER="BANNER",l.EMBEDDED_TIP="EMBEDDED_TIP",l.NPS_SURVEY="NPS_SURVEY",l.ANNOUNCEMENT="ANNOUNCEMENT",l))(Qo||{});function Q(){let{config:e,apiUrl:t}=mt(),{flows:o,setFlows:n,userId:i,organizationId:r,publicApiKey:s,customVariables:p,setCustomVariables:d,hasActiveFullPageFlow:l,setHasActiveFullPageFlow:m,setFlowResponses:c,setShouldGracefullyDegrade:g,readonly:y}=(0,rt.useContext)(X),T={data:[]},{verifySDKInitiated:C}=ro(),{addResponse:h,getFlowResponses:O}=so(),F=x=>fetch(x,e).then(S=>S.ok?S.json():(console.log(`Error fetching ${x} (${S.status}): ${S.statusText}. Will gracefully degrade and hide Frigade`),g(!0),T)).catch(S=>(console.log(`Error fetching ${x}: ${S}. Will gracefully degrade and hide Frigade`),g(!0),T)),{mutateUserFlowState:P,userFlowStatesData:v,isLoadingUserFlowStateData:B,optimisticallyMarkFlowCompleted:f,optimisticallyMarkFlowNotStarted:$,optimisticallyMarkStepCompleted:b,optimisticallyMarkStepNotStarted:k,optimisticallyMarkStepStarted:D}=Xe(),{data:N,error:L,isLoading:K}=(0,Fi.default)(s?`${t}flows${y?"?readonly=true":""}`:null,F,{keepPreviousData:!0});(0,rt.useEffect)(()=>{if(L){console.error(L);return}N&&N.data&&n(N.data)},[N,L]);function _(x){if(K)return null;let S=o.find(E=>E.slug===x);return!S&&o.length>0&&!B&&!K?(console.log(`Flow with id ${x} not found`),null):(S==null?void 0:S.active)===!1&&!y?null:S}function J(x){var I,de;if(!_(x))return[];let S=_(x).data;return S?(S=R(S),((de=(I=Nr(S))==null?void 0:I.data)!=null?de:[]).map(ee=>{let Re=ne(ee);return q(w({handleSecondaryButtonClick:()=>{ee.skippable===!0&&pe(x,ee.id,{skipped:!0})}},ee),{complete:We(x,ee.id)===Je||Re>=1,started:We(x,ee.id)===Bo||We(x,ee.id)===Je,currentlyActive:v==null?void 0:v.some(Nt=>Nt.flowId==x&&Nt.lastStepId===ee.id),blocked:je(x,ee.id),hidden:Ae(x,ee.id),handlePrimaryButtonClick:()=>{(!ee.completionCriteria&&(ee.autoMarkCompleted||ee.autoMarkCompleted===void 0)||ee.completionCriteria&&ee.autoMarkCompleted===!0)&&pe(x,ee.id)},progress:Re})}).filter(ee=>ee.hidden!==!0)):[]}function R(x){return x.replaceAll(/\${(.*?)}/g,(S,E)=>p[E]===void 0?"":String(p[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 ye(x){var E;if(!_(x))return[];let S=_(x).data;return S?(S=R(S),(E=JSON.parse(S))!=null?E:{}):[]}function j(x,S){d(E=>q(w({},E),{[x]:S}))}function ue(x){!B&&!K&&x&&JSON.stringify(p)!=JSON.stringify(w(w({},p),x))&&Object.keys(x).forEach(S=>{j(S,x[S])})}let be=(0,rt.useCallback)((x,S,E)=>z(this,null,function*(){if(!C())return;let I={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:x,stepId:S,actionType:Bo,data:E!=null?E:{},createdAt:new Date,blocked:!1,hidden:!1};Fe(I)&&(yield D(x,S,I),h(I))}),[i,r,v]),$e=(0,rt.useCallback)((x,S,E)=>z(this,null,function*(){if(!C())return;let I={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:x,stepId:S,actionType:kt,data:E!=null?E:{},createdAt:new Date,blocked:!1,hidden:!1};Fe(I)&&(yield k(x,S,I),h(I))}),[i,r,v]),pe=(0,rt.useCallback)((x,S,E)=>z(this,null,function*(){if(!C())return;let I={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:x,stepId:S,actionType:Je,data:E!=null?E:{},createdAt:new Date,blocked:!1,hidden:!1};Fe(I)&&(yield b(x,S,I),h(I))}),[i,r,v]),ie=(0,rt.useCallback)((x,S)=>z(this,null,function*(){if(!C()||Se(x)===et)return;let E={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:x,stepId:"unknown",actionType:et,data:S!=null?S:{},createdAt:new Date,blocked:!1,hidden:!1};yield $(x),Fe(E)&&h(E)}),[i,r,v]),Te=(0,rt.useCallback)((x,S)=>z(this,null,function*(){if(!C())return;let E={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:x,stepId:"unknown",actionType:jt,data:S!=null?S:{},createdAt:new Date,blocked:!1,hidden:!1};Fe(E)&&h(E)}),[i,r,v]),W=(0,rt.useCallback)((x,S)=>z(this,null,function*(){if(!C())return;let E={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:x,stepId:"unknown",actionType:se,data:S!=null?S:{},createdAt:new Date,blocked:!1,hidden:!1};Fe(E)&&(yield f(x),h(E))}),[i,r,v]),Ee=(0,rt.useCallback)((x,S)=>z(this,null,function*(){if(!C())return;let E={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:x,stepId:"unknown",actionType:Xo,data:S!=null?S:{},createdAt:new Date,blocked:!1,hidden:!1};Fe(E)&&(yield f(x),h(E))}),[i,r,v]);function Fe(x){var S;if(v===void 0)return!1;if(v){let E=v.find(I=>I.flowId===x.flowSlug);if(x.actionType===kt&&(!(E!=null&&E.stepStates[x.stepId])||E.stepStates[x.stepId].actionType===kt))return!1;if(E&&((S=E.stepStates[x.stepId])==null?void 0:S.actionType)===x.actionType){if(x.actionType===Je&&(!x.data||JSON.stringify(x.data)===JSON.stringify({})))return!1;let I=Object.keys(E.stepStates).sort((de,ee)=>{let Re=new Date(E.stepStates[de].createdAt),Nt=new Date(E.stepStates[ee].createdAt);return Re.getTime()-Nt.getTime()});if(E.stepStates[I[I.length-1]].actionType===x.actionType&&x.stepId===I[I.length-1])return!1}if(E&&E.flowState===se&&x.actionType===se)return!1}return!0}function We(x,S){let E=V(x,S);return B?null:E?E.actionType:kt}function je(x,S){let E=V(x,S);return E?E.blocked:!1}function Ae(x,S){let E=V(x,S);return E?E.hidden:!1}function V(x,S){var I;if(B)return null;let E=v==null?void 0:v.find(de=>de.flowId===x);return!E||!E.stepStates[S]?null:(I=E.stepStates[S])!=null?I:null}function M(x){var E,I;if(B||!v)return null;if(Se(x)===et)return(E=J(x)[0])!=null?E:null;let S=(I=v.find(de=>de.flowId===x))==null?void 0:I.lastStepId;return S?J(x).find(de=>de.id===S):null}function H(x){var I;let S=M(x);if(!S)return 0;let E=(I=J(x).findIndex(de=>de.id===S.id))!=null?I:0;return We(x,S.id)===Je&&E<J(x).length-1?E+1:E}function ne(x){if(!x.completionCriteria)return;let S=Ti(x.completionCriteria);if(S===null)return;let E=Tt(S),I=Ft(S);return I===0?void 0:E/I}function Se(x){let S=v==null?void 0:v.find(E=>E.flowId===x);return S?S.flowState:null}function Tt(x){let S=J(x);return S.length===0?0:S.filter(I=>We(x,I.id)===Je).length}function Ft(x){return J(x).length}function Rt(x){let S=o.find(E=>E.slug===x);return S?Nr(S.data):null}function at(x){if(y)return!1;if(B)return!0;if(x!=null&&x.targetingLogic&&v){let S=v.find(E=>E.flowId===x.slug);if(S)return S.shouldTrigger===!1}return!!(x!=null&&x.targetingLogic&&i&&i.startsWith("guest_"))}function Ot(x){return!at(_(x))}function ct(){i&&P()}function eo(){return o}return{getAllFlows:eo,getFlow:_,getFlowData:Rt,isLoading:B||K,getStepStatus:We,getFlowSteps:J,getCurrentStepIndex:H,markStepStarted:be,markStepCompleted:pe,markFlowNotStarted:ie,markFlowStarted:Te,markFlowCompleted:W,markFlowAborted:Ee,markStepNotStarted:$e,getFlowStatus:Se,getNumberOfStepsCompleted:Tt,getNumberOfSteps:Ft,targetingLogicShouldHideFlow:at,setCustomVariable:j,updateCustomVariables:ue,customVariables:p,getStepOptionalProgress:ne,getFlowMetadata:ye,isStepBlocked:je,isStepHidden:Ae,hasActiveFullPageFlow:l,setHasActiveFullPageFlow:m,isFlowAvailableToUser:Ot,refresh:ct}}var Lt=require("react");var lo="guest_";function ao(){let{userId:e,organizationId:t,setUserId:o,setUserProperties:n,shouldGracefullyDegrade:i}=(0,Lt.useContext)(X),{config:r,apiUrl:s}=mt(),{mutateUserFlowState:p}=Xe(),d=oo(),{verifySDKInitiated:l}=ro();function m(T){return`frigade-user-registered-${T}`}(0,Lt.useEffect)(()=>{if(e&&!t){if(e.startsWith(lo))return;let T=m(e);localStorage.getItem(T)||(d(`${s}users`,q(w({},r),{method:"POST",body:JSON.stringify({foreignId:e})})),localStorage.setItem(T,"true"))}},[e,i,t]);let c=(0,Lt.useCallback)(T=>z(this,null,function*(){if(!l())return;let C={foreignId:e,properties:T};yield d(`${s}users`,q(w({},r),{method:"POST",body:JSON.stringify(C)})),n(h=>w(w({},h),T)),p()}),[e,r,i,p]),g=(0,Lt.useCallback)((T,C)=>z(this,null,function*(){if(!l())return;let O={foreignId:e,events:[{event:T,properties:C}]};yield d(`${s}users`,q(w({},r),{method:"POST",body:JSON.stringify(O)})),p()}),[e,r,p]),y=(0,Lt.useCallback)((T,C)=>z(this,null,function*(){if(l())if(C){let h=m(T);localStorage.setItem(h,"true"),o(T);let O={foreignId:T,properties:C};yield d(`${s}users`,q(w({},r),{method:"POST",body:JSON.stringify(O)})),n(F=>w(w({},F),C)),p()}else o(T)}),[r,i,p]);return{userId:e,setUserId:o,setUserIdWithProperties:y,addPropertiesToUser:c,trackEventForUser:g}}var En=require("uuid");var He=u(require("react"));var Oe=u(require("react")),No=u(require("styled-components"));var Pi=u(require("react")),vi=u(require("styled-components"));var ki="fr-",Ao="cfr-";function a(e,t){let o=`${ki}${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+" "+Ao+e}return o}function A(e){if(!e.className||e.className.indexOf(Ao)!==-1)return"";let o=e.className.replace(/\s+/g," ").split(" ");return o.length==1&&o[0].startsWith(ki)?"":`:not(${o.map(n=>`.${n}`).join(", ")})`}function Zo(e){return e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function _e(e){return e!=null&&e.styleOverrides?Object.keys(e.styleOverrides).map(t=>`${Zo(t)}: ${e.styleOverrides[t]};`).join(" "):""}function Me(...e){return e.filter(Boolean).join(" ")}function Oo(e){return e.charAt(0).toUpperCase()+e.slice(1)}var za=vi.default.div`
2
+ var va=Object.create;var vo=Object.defineProperty,Ba=Object.defineProperties,Ea=Object.getOwnPropertyDescriptor,Aa=Object.getOwnPropertyDescriptors,Oa=Object.getOwnPropertyNames,Jo=Object.getOwnPropertySymbols,Na=Object.getPrototypeOf,Ar=Object.prototype.hasOwnProperty,hi=Object.prototype.propertyIsEnumerable;var gi=(e,t,o)=>t in e?vo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,w=(e,t)=>{for(var o in t||(t={}))Ar.call(t,o)&&gi(e,o,t[o]);if(Jo)for(var o of Jo(t))hi.call(t,o)&&gi(e,o,t[o]);return e},q=(e,t)=>Ba(e,Aa(t));var xi=e=>typeof e=="symbol"?e:e+"",Ye=(e,t)=>{var o={};for(var n in e)Ar.call(e,n)&&t.indexOf(n)<0&&(o[n]=e[n]);if(e!=null&&Jo)for(var n of Jo(e))t.indexOf(n)<0&&hi.call(e,n)&&(o[n]=e[n]);return o};var Ia=(e,t)=>{for(var o in t)vo(e,o,{get:t[o],enumerable:!0})},Ci=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Oa(t))!Ar.call(e,i)&&i!==o&&vo(e,i,{get:()=>t[i],enumerable:!(n=Ea(t,i))||n.enumerable});return e};var u=(e,t,o)=>(o=e!=null?va(Na(e)):{},Ci(t||!e||!e.__esModule?vo(o,"default",{value:e,enumerable:!0}):o,e)),La=e=>Ci(vo({},"__esModule",{value:!0}),e);var z=(e,t,o)=>new Promise((n,i)=>{var r=d=>{try{p(o.next(d))}catch(l){i(l)}},s=d=>{try{p(o.throw(d))}catch(l){i(l)}},p=d=>d.done?n(d.value):Promise.resolve(d.value).then(r,s);p((o=o.apply(e,t)).next())});var Dd={};Ia(Dd,{Box:()=>go,Button:()=>ka,CheckBox:()=>ht,FlowType:()=>Qo,FormLabel:()=>Pt,FormTextField:()=>pr,FrigadeAnnouncement:()=>wa,FrigadeBanner:()=>na,FrigadeChecklist:()=>kr,FrigadeDefaultAppearance:()=>gt,FrigadeEmbeddedTip:()=>Rl,FrigadeForm:()=>jr,FrigadeGuide:()=>Al,FrigadeHeroChecklist:()=>xl,FrigadeNPSSurvey:()=>ma,FrigadeProgressBadge:()=>Bl,FrigadeProvider:()=>Hn,FrigadeSupportWidget:()=>Yl,FrigadeTour:()=>Dl,ProgressBar:()=>Qe,ProgressRing:()=>Gt,Text:()=>Br,tokens:()=>yr,useFlowOpens:()=>ze,useFlowResponses:()=>so,useFlows:()=>Q,useOrganization:()=>hr,useUser:()=>ao,useUserFlowStates:()=>Xe});module.exports=La(Dd);var te=u(require("react")),Wn=require("styled-components");var ge=u(require("react"));var rt=require("react");var Vt=u(require("react"));var yi="1.32.18";var kt="NOT_STARTED_STEP",se="COMPLETED_FLOW",Xo="ABORTED_FLOW",jt="STARTED_FLOW",et="NOT_STARTED_FLOW",Je="COMPLETED_STEP",Bo="STARTED_STEP";function mt(){let{publicApiKey:e,userId:t,apiUrl:o}=Vt.default.useContext(X);return{config:(0,Vt.useMemo)(()=>({headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Frigade-SDK-Version":yi,"X-Frigade-SDK-Platform":"React"}}),[e,t]),apiUrl:(0,Vt.useMemo)(()=>`${o}/v1/public/`,[o])}}var $a="frigade-last-call-at-",Ma="frigade-last-call-data-";function oo(){let{shouldGracefullyDegrade:e,readonly:t}=Vt.default.useContext(X);return(o,n)=>z(this,null,function*(){if(t&&(n.method==="POST"||n.method==="PUT"||n.method==="DELETE"))return to();if(e)return console.log(`Skipping ${o} call to Frigade due to error`),to();let i=$a+o,r=Ma+o;if(typeof window!="undefined"&&window.localStorage&&n&&n.body&&n.method==="POST"){let p=window.localStorage.getItem(i),d=window.localStorage.getItem(r);if(p&&d&&d==n.body){let l=new Date(p);if(new Date().getTime()-l.getTime()<1e3)return to()}typeof window!="undefined"&&(window.localStorage.setItem(i,new Date().toISOString()),window.localStorage.setItem(r,n.body))}let s;try{s=yield fetch(o,n)}catch(p){return to(p)}return s?s.ok?s:to(s.statusText):to()})}function to(e){return e&&console.log("Call to Frigade failed",e),{json:()=>({})}}function ro(){let{publicApiKey:e,shouldGracefullyDegrade:t}=Vt.default.useContext(X);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 Eo=require("react");var no=require("react");var bi=u(require("swr"));var Si=require("react");function ze(){let{openFlowStates:e,setOpenFlowStates:t,hasActiveFullPageFlow:o,setCompletedFlowsToKeepOpenDuringSession:n,completedFlowsToKeepOpenDuringSession:i}=(0,Si.useContext)(X);function r(c,g=!1){var y;return(y=e[c])!=null?y:g}function s(c,g){t(y=>q(w({},y),{[c]:g}))}function p(c){t(g=>{let C=g,{[c]:y}=C,T=Ye(C,[xi(c)]);return w({},T)})}function d(c){i.includes(c)||n(g=>[...g,c])}function l(c){return i.includes(c)}function m(c){return Object.entries(e).some(([g,y])=>y&&g!=c)||o}return{getOpenFlowState:r,setOpenFlowState:s,resetOpenFlowState:p,hasOpenModals:m,setKeepCompletedFlowOpenDuringSession:d,shouldKeepCompletedFlowOpenDuringSession:l}}var wi=u(require("swr/immutable"));var io=u(require("core-js-pure/actual/structured-clone"));function Or(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ke(...e){let t=e.shift(),o=e.length===1?e[0]:ke(...e);if(!Or(t)||!Or(o))throw new Error("deepmerge can only merge Objects");let n=(0,io.default)(t);return Object.entries(o).forEach(([i,r])=>{Or(r)?n[i]!==void 0?Object.assign(n,{[i]:ke(n[i],(0,io.default)(r))}):Object.assign(n,{[i]:(0,io.default)(r)}):Array.isArray(r)?n[i]!==void 0?Object.assign(n,{[i]:[...n[i],...(0,io.default)(r)]}):Object.assign(n,{[i]:(0,io.default)(r)}):Object.assign(n,{[i]:r})}),n}var Da="unknown";function Xe(){let{config:e,apiUrl:t}=mt(),{publicApiKey:o,userId:n,organizationId:i,flows:r,setShouldGracefullyDegrade:s,readonly:p}=(0,no.useContext)(X),{resetOpenFlowState:d}=ze(),[l,m]=(0,no.useState)(!1),c={data:r.map(b=>({flowId:b.id,flowState:se,lastStepId:null,userId:n,foreignUserId:n,stepStates:{},shouldTrigger:!1}))},g=b=>fetch(b,e).then(k=>{if(k.ok)return k.json();throw new Error("Failed to fetch user flow states")}).catch(k=>(console.log(`Error fetching ${b}: ${k}. Will gracefully degrade and hide Frigade`),s(!0),c)),y=o&&r&&n?`${t}userFlowStates?foreignUserId=${encodeURIComponent(n)}${i?`&foreignUserGroupId=${encodeURIComponent(i)}`:""}`:null,{data:T,isLoading:C,mutate:h,error:O}=p?(0,wi.default)(y,g):(0,bi.default)(y,g,{revalidateOnFocus:!0,revalidateIfStale:!0,keepPreviousData:!0,revalidateOnMount:!1,errorRetryInterval:1e4,errorRetryCount:3,onError:()=>c,onLoadingSlow:()=>c}),F=T==null?void 0:T.data;(0,no.useEffect)(()=>{!l&&!C&&F&&m(!0)},[F,l,C]);function P(b){return z(this,null,function*(){if(F&&!p){let k=F.find(D=>D.flowId===b);k&&k.flowState!==se&&(k.flowState=se),yield h(Promise.resolve(ke(T,{data:F})),{optimisticData:ke(T,{data:F}),revalidate:!1,rollbackOnError:!1})}})}function v(b,k,D){return z(this,null,function*(){if(F){let N=F.find(L=>L.flowId===b);N&&(N.stepStates[k]=D,N.flowState=jt),yield h(Promise.resolve(ke(T,{data:F})),{optimisticData:ke(T,{data:F}),revalidate:!1,rollbackOnError:!1})}})}function B(b,k,D){return z(this,null,function*(){if(F){let N=F.find(L=>L.flowId===b);N&&(N.lastStepId=k,N.stepStates[k]=D,N.flowState=jt),yield h(ke(T,{data:F}),{optimisticData:ke(T,{data:F}),revalidate:!1,rollbackOnError:!1})}})}function f(b){return z(this,null,function*(){if(F){let k=F.find(D=>D.flowId===b);k&&k.flowState!==et&&(k.flowState=et,k.lastStepId=Da,Object.keys(k.stepStates).forEach(D=>{k.stepStates[D].actionType=kt,k.stepStates[D].createdAt=new Date().toISOString()}),yield h(ke(T,{data:F}),{optimisticData:ke(T,{data:F}),revalidate:!1,rollbackOnError:!1}),d(b))}})}function $(b,k,D){return z(this,null,function*(){if(F){let N=F.find(L=>L.flowId===b);N&&(N.stepStates[k]=D),yield h(Promise.resolve(ke(T,{data:F})),{optimisticData:ke(T,{data:F}),revalidate:!1,rollbackOnError:!1})}})}return{userFlowStatesData:F,isLoadingUserFlowStateData:!l,mutateUserFlowState:h,optimisticallyMarkFlowCompleted:P,optimisticallyMarkFlowNotStarted:f,optimisticallyMarkStepCompleted:v,optimisticallyMarkStepNotStarted:$,optimisticallyMarkStepStarted:B,error:O}}function so(){let{config:e,apiUrl:t}=mt(),{userFlowStatesData:o,mutateUserFlowState:n}=Xe(),{failedFlowResponses:i,setFailedFlowResponses:r,flowResponses:s,setFlowResponses:p}=(0,Eo.useContext)(X),[d,l]=(0,Eo.useState)(new Set),[m,c]=(0,Eo.useState)(new Set),g=oo();function y(h){let O=JSON.stringify(h);if(d.has(O))return null;d.add(O),l(d),m.add(h),c(m);let F=s==null?void 0:s.find(P=>P.flowSlug===h.flowSlug&&P.stepId===h.stepId&&P.actionType===h.actionType&&P.createdAt===h.createdAt);return g(`${t}flowResponses`,q(w({},e),{method:"POST",body:O})).then(P=>{P.status!==200&&P.status!==201?(console.log("Failed to send flow response for step "+h.stepId+". Will retry again later."),r([...i,h])):F||p(v=>[...v!=null?v:[],h])})}function T(h){return z(this,null,function*(){h.foreignUserId&&(h.actionType===jt||h.actionType===et?yield y(h):h.actionType===se?yield y(h):h.actionType===Bo?yield y(h):h.actionType===Je?yield y(h):h.actionType===Xo?yield y(h):h.actionType===kt&&(yield y(h)))})}function C(){let h=[];return o==null||o.forEach(O=>{if(O&&O.stepStates&&Object.keys(O.stepStates).length!==0)for(let F in O.stepStates){let P=O.stepStates[F];h.push({foreignUserId:O.foreignUserId,flowSlug:O.flowId,stepId:P.stepId,actionType:P.actionType,data:{},createdAt:new Date(P.createdAt),blocked:P.blocked,hidden:P.hidden})}}),[...h,...s]}return{addResponse:T,setFlowResponses:p,getFlowResponses:C}}var Fi=u(require("swr"));var Ua=/user.flow\(([^\)]+)\) == '?COMPLETED_FLOW'?/gm,Ti=e=>{let t=Ua.exec(e);if(t===null)return null;let o=null;return t.forEach((n,i)=>{let r=Wa(n,"'","");r.startsWith("flow_")&&(o=r)}),o},Wa=function(e,t,o){return e.replace(new RegExp(t,"g"),o)};function Nr(e){try{return JSON.parse(e)}catch(t){return console.error("Failed to parse Frigade config.yml to JSON",t),null}}var Qo=(l=>(l.CHECKLIST="CHECKLIST",l.FORM="FORM",l.TOUR="TOUR",l.SUPPORT="SUPPORT",l.CUSTOM="CUSTOM",l.BANNER="BANNER",l.EMBEDDED_TIP="EMBEDDED_TIP",l.NPS_SURVEY="NPS_SURVEY",l.ANNOUNCEMENT="ANNOUNCEMENT",l))(Qo||{});function Q(){let{config:e,apiUrl:t}=mt(),{flows:o,setFlows:n,userId:i,organizationId:r,publicApiKey:s,customVariables:p,setCustomVariables:d,hasActiveFullPageFlow:l,setHasActiveFullPageFlow:m,setFlowResponses:c,setShouldGracefullyDegrade:g,readonly:y}=(0,rt.useContext)(X),T={data:[]},{verifySDKInitiated:C}=ro(),{addResponse:h,getFlowResponses:O}=so(),F=x=>fetch(x,e).then(S=>S.ok?S.json():(console.log(`Error fetching ${x} (${S.status}): ${S.statusText}. Will gracefully degrade and hide Frigade`),g(!0),T)).catch(S=>(console.log(`Error fetching ${x}: ${S}. Will gracefully degrade and hide Frigade`),g(!0),T)),{mutateUserFlowState:P,userFlowStatesData:v,isLoadingUserFlowStateData:B,optimisticallyMarkFlowCompleted:f,optimisticallyMarkFlowNotStarted:$,optimisticallyMarkStepCompleted:b,optimisticallyMarkStepNotStarted:k,optimisticallyMarkStepStarted:D}=Xe(),{data:N,error:L,isLoading:K}=(0,Fi.default)(s?`${t}flows${y?"?readonly=true":""}`:null,F,{keepPreviousData:!0});(0,rt.useEffect)(()=>{if(L){console.error(L);return}N&&N.data&&n(N.data)},[N,L]);function _(x){if(K)return null;let S=o.find(E=>E.slug===x);return!S&&o.length>0&&!B&&!K?(console.log(`Flow with id ${x} not found`),null):(S==null?void 0:S.active)===!1&&!y?null:S}function J(x){var I,de;if(!_(x))return[];let S=_(x).data;return S?(S=R(S),((de=(I=Nr(S))==null?void 0:I.data)!=null?de:[]).map(ee=>{let Re=ne(ee);return q(w({handleSecondaryButtonClick:()=>{ee.skippable===!0&&pe(x,ee.id,{skipped:!0})}},ee),{complete:We(x,ee.id)===Je||Re>=1,started:We(x,ee.id)===Bo||We(x,ee.id)===Je,currentlyActive:v==null?void 0:v.some(Nt=>Nt.flowId==x&&Nt.lastStepId===ee.id),blocked:je(x,ee.id),hidden:Ae(x,ee.id),handlePrimaryButtonClick:()=>{(!ee.completionCriteria&&(ee.autoMarkCompleted||ee.autoMarkCompleted===void 0)||ee.completionCriteria&&ee.autoMarkCompleted===!0)&&pe(x,ee.id)},progress:Re})}).filter(ee=>ee.hidden!==!0)):[]}function R(x){return x.replaceAll(/\${(.*?)}/g,(S,E)=>p[E]===void 0?"":String(p[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 ye(x){var E;if(!_(x))return[];let S=_(x).data;return S?(S=R(S),(E=JSON.parse(S))!=null?E:{}):[]}function j(x,S){d(E=>q(w({},E),{[x]:S}))}function ue(x){!B&&!K&&x&&JSON.stringify(p)!=JSON.stringify(w(w({},p),x))&&Object.keys(x).forEach(S=>{j(S,x[S])})}let be=(0,rt.useCallback)((x,S,E)=>z(this,null,function*(){if(!C())return;let I={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:x,stepId:S,actionType:Bo,data:E!=null?E:{},createdAt:new Date,blocked:!1,hidden:!1};Fe(I)&&(yield D(x,S,I),h(I))}),[i,r,v]),$e=(0,rt.useCallback)((x,S,E)=>z(this,null,function*(){if(!C())return;let I={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:x,stepId:S,actionType:kt,data:E!=null?E:{},createdAt:new Date,blocked:!1,hidden:!1};Fe(I)&&(yield k(x,S,I),h(I))}),[i,r,v]),pe=(0,rt.useCallback)((x,S,E)=>z(this,null,function*(){if(!C())return;let I={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:x,stepId:S,actionType:Je,data:E!=null?E:{},createdAt:new Date,blocked:!1,hidden:!1};Fe(I)&&(yield b(x,S,I),h(I))}),[i,r,v]),ie=(0,rt.useCallback)((x,S)=>z(this,null,function*(){if(!C()||Se(x)===et)return;let E={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:x,stepId:"unknown",actionType:et,data:S!=null?S:{},createdAt:new Date,blocked:!1,hidden:!1};yield $(x),Fe(E)&&h(E)}),[i,r,v]),Te=(0,rt.useCallback)((x,S)=>z(this,null,function*(){if(!C())return;let E={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:x,stepId:"unknown",actionType:jt,data:S!=null?S:{},createdAt:new Date,blocked:!1,hidden:!1};Fe(E)&&h(E)}),[i,r,v]),W=(0,rt.useCallback)((x,S)=>z(this,null,function*(){if(!C())return;let E={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:x,stepId:"unknown",actionType:se,data:S!=null?S:{},createdAt:new Date,blocked:!1,hidden:!1};Fe(E)&&(yield f(x),h(E))}),[i,r,v]),Ee=(0,rt.useCallback)((x,S)=>z(this,null,function*(){if(!C())return;let E={foreignUserId:i,foreignUserGroupId:r!=null?r:null,flowSlug:x,stepId:"unknown",actionType:Xo,data:S!=null?S:{},createdAt:new Date,blocked:!1,hidden:!1};Fe(E)&&(yield f(x),h(E))}),[i,r,v]);function Fe(x){var S;if(v===void 0)return!1;if(v){let E=v.find(I=>I.flowId===x.flowSlug);if(x.actionType===kt&&(!(E!=null&&E.stepStates[x.stepId])||E.stepStates[x.stepId].actionType===kt))return!1;if(E&&((S=E.stepStates[x.stepId])==null?void 0:S.actionType)===x.actionType){if(x.actionType===Je&&(!x.data||JSON.stringify(x.data)===JSON.stringify({})))return!1;let I=Object.keys(E.stepStates).sort((de,ee)=>{let Re=new Date(E.stepStates[de].createdAt),Nt=new Date(E.stepStates[ee].createdAt);return Re.getTime()-Nt.getTime()});if(E.stepStates[I[I.length-1]].actionType===x.actionType&&x.stepId===I[I.length-1])return!1}if(E&&E.flowState===se&&x.actionType===se)return!1}return!0}function We(x,S){let E=V(x,S);return B?null:E?E.actionType:kt}function je(x,S){let E=V(x,S);return E?E.blocked:!1}function Ae(x,S){let E=V(x,S);return E?E.hidden:!1}function V(x,S){var I;if(B)return null;let E=v==null?void 0:v.find(de=>de.flowId===x);return!E||!E.stepStates[S]?null:(I=E.stepStates[S])!=null?I:null}function M(x){var E,I;if(B||!v)return null;if(Se(x)===et)return(E=J(x)[0])!=null?E:null;let S=(I=v.find(de=>de.flowId===x))==null?void 0:I.lastStepId;return S?J(x).find(de=>de.id===S):null}function H(x){var I;let S=M(x);if(!S)return 0;let E=(I=J(x).findIndex(de=>de.id===S.id))!=null?I:0;return We(x,S.id)===Je&&E<J(x).length-1?E+1:E}function ne(x){if(!x.completionCriteria)return;let S=Ti(x.completionCriteria);if(S===null)return;let E=Tt(S),I=Ft(S);return I===0?void 0:E/I}function Se(x){let S=v==null?void 0:v.find(E=>E.flowId===x);return S?S.flowState:null}function Tt(x){let S=J(x);return S.length===0?0:S.filter(I=>We(x,I.id)===Je).length}function Ft(x){return J(x).length}function Rt(x){let S=o.find(E=>E.slug===x);return S?Nr(S.data):null}function at(x){if(y)return!1;if(B)return!0;if(x!=null&&x.targetingLogic&&v){let S=v.find(E=>E.flowId===x.slug);if(S)return S.shouldTrigger===!1}return!!(x!=null&&x.targetingLogic&&i&&i.startsWith("guest_"))}function Ot(x){return!at(_(x))}function ct(){i&&P()}function eo(){return o}return{getAllFlows:eo,getFlow:_,getFlowData:Rt,isLoading:B||K,getStepStatus:We,getFlowSteps:J,getCurrentStepIndex:H,markStepStarted:be,markStepCompleted:pe,markFlowNotStarted:ie,markFlowStarted:Te,markFlowCompleted:W,markFlowAborted:Ee,markStepNotStarted:$e,getFlowStatus:Se,getNumberOfStepsCompleted:Tt,getNumberOfSteps:Ft,targetingLogicShouldHideFlow:at,setCustomVariable:j,updateCustomVariables:ue,customVariables:p,getStepOptionalProgress:ne,getFlowMetadata:ye,isStepBlocked:je,isStepHidden:Ae,hasActiveFullPageFlow:l,setHasActiveFullPageFlow:m,isFlowAvailableToUser:Ot,refresh:ct}}var Lt=require("react");var lo="guest_";function ao(){let{userId:e,organizationId:t,setUserId:o,setUserProperties:n,shouldGracefullyDegrade:i}=(0,Lt.useContext)(X),{config:r,apiUrl:s}=mt(),{mutateUserFlowState:p}=Xe(),d=oo(),{verifySDKInitiated:l}=ro();function m(T){return`frigade-user-registered-${T}`}(0,Lt.useEffect)(()=>{if(e&&!t){if(e.startsWith(lo))return;let T=m(e);localStorage.getItem(T)||(d(`${s}users`,q(w({},r),{method:"POST",body:JSON.stringify({foreignId:e})})),localStorage.setItem(T,"true"))}},[e,i,t]);let c=(0,Lt.useCallback)(T=>z(this,null,function*(){if(!l())return;let C={foreignId:e,properties:T};yield d(`${s}users`,q(w({},r),{method:"POST",body:JSON.stringify(C)})),n(h=>w(w({},h),T)),p()}),[e,r,i,p]),g=(0,Lt.useCallback)((T,C)=>z(this,null,function*(){if(!l())return;let O={foreignId:e,events:[{event:T,properties:C}]};yield d(`${s}users`,q(w({},r),{method:"POST",body:JSON.stringify(O)})),p()}),[e,r,p]),y=(0,Lt.useCallback)((T,C)=>z(this,null,function*(){if(l())if(C){let h=m(T);localStorage.setItem(h,"true"),o(T);let O={foreignId:T,properties:C};yield d(`${s}users`,q(w({},r),{method:"POST",body:JSON.stringify(O)})),n(F=>w(w({},F),C)),p()}else o(T)}),[r,i,p]);return{userId:e,setUserId:o,setUserIdWithProperties:y,addPropertiesToUser:c,trackEventForUser:g}}var En=require("uuid");var He=u(require("react"));var Oe=u(require("react")),No=u(require("styled-components"));var Pi=u(require("react")),vi=u(require("styled-components"));var ki="fr-",Ao="cfr-";function a(e,t){let o=`${ki}${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+" "+Ao+e}return o}function A(e){if(!e.className||e.className.indexOf(Ao)!==-1)return"";let o=e.className.replace(/\s+/g," ").split(" ");return o.length==1&&o[0].startsWith(ki)?"":`:not(${o.map(n=>`.${n}`).join(", ")})`}function Zo(e){return e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function _e(e){return e!=null&&e.styleOverrides?Object.keys(e.styleOverrides).map(t=>`${Zo(t)}: ${e.styleOverrides[t]};`).join(" "):""}function Me(...e){return e.filter(Boolean).join(" ")}function Oo(e){return e.charAt(0).toUpperCase()+e.slice(1)}var za=vi.default.div`
3
3
  display: flex;
4
4
  justify-content: center;
5
5
  position: fixed;