@frigade/react 1.36.9 → 1.37.1

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
@@ -1,6 +1,6 @@
1
1
  [![npm version](https://img.shields.io/npm/v/@frigade/react)](https://www.npmjs.com/package/@frigade/react)
2
2
  [![npm downloads](https://img.shields.io/npm/dw/@frigade/react)](https://www.npmjs.com/package/@frigade/react)
3
- [![npm version](https://github.com/FrigadeHQ/frigade-react/actions/workflows/tests.yml/badge.svg)](https://github.com/FrigadeHQ/frigade-react/actions/workflows/tests.yml)
3
+ [![npm version](https://github.com/FrigadeHQ/javascript/actions/workflows/tests.yml/badge.svg)](https://github.com/FrigadeHQ/javascript/actions/workflows/tests.yml)
4
4
  [![typescript](https://camo.githubusercontent.com/0f9fcc0ac1b8617ad4989364f60f78b2d6b32985ad6a508f215f14d8f897b8d3/68747470733a2f2f62616467656e2e6e65742f62616467652f547970655363726970742f7374726963742532302546302539462539322541412f626c7565)](https://www.npmjs.com/package/@frigade/react)
5
5
  [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier)
6
6
 
@@ -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
 
package/dist/index.d.ts CHANGED
@@ -744,9 +744,9 @@ declare function Label({ title, required, appearance, }: {
744
744
  title?: string;
745
745
  required: boolean;
746
746
  appearance?: Appearance;
747
- }): JSX.Element;
747
+ }): React__default.JSX.Element;
748
748
 
749
- 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;
750
750
 
751
751
  interface Overrides extends Record<string, Overrides | CSSProperties> {
752
752
  }
@@ -756,14 +756,14 @@ type BoxProps<T extends ElementType = 'div'> = {
756
756
  children?: ReactNode;
757
757
  overrides?: Overrides;
758
758
  } & BorderProps & ColorProps & Exclude<LayoutProps, 'size'> & ShadowProps & SpaceProps & TypographyProps & ComponentPropsWithoutRef<T>;
759
- 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;
760
760
 
761
761
  interface ButtonProps extends BoxProps {
762
762
  title: string;
763
763
  }
764
764
  declare const Button: React.FC<ButtonProps> & {
765
765
  [k: string]: {
766
- (props: ButtonProps): JSX.Element;
766
+ (props: ButtonProps): React.JSX.Element;
767
767
  displayName: string;
768
768
  };
769
769
  };
@@ -854,7 +854,7 @@ interface BaseTextProps extends BoxProps, Partial<Pick<FontProps, 'fontWeight'>>
854
854
  }
855
855
  declare const Text: React__default.FC<BaseTextProps> & {
856
856
  [k: string]: {
857
- (props: BaseTextProps): JSX.Element;
857
+ (props: BaseTextProps): React__default.JSX.Element;
858
858
  displayName: string;
859
859
  };
860
860
  };
@@ -868,7 +868,7 @@ declare const ProgressBar: ({ count, total, display, textLocation, style, textSt
868
868
  style?: CSSProperties;
869
869
  textStyle?: CSSProperties;
870
870
  appearance?: Appearance;
871
- }) => JSX.Element;
871
+ }) => React__default.JSX.Element;
872
872
 
873
873
  declare const tokens: {
874
874
  colors: {
package/dist/index.js CHANGED
@@ -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.9 ";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;