@frigade/react 1.35.4 → 1.35.5

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.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import bt,{createContext as Mp,useEffect as Do,useState as Le}from"react";import{ThemeProvider as Up}from"styled-components";import St,{useContext as mp,useEffect as Oo,useState as ur}from"react";import{useCallback as xt,useContext as Ul,useEffect as zl}from"react";import qo,{useMemo as Dr}from"react";var Lr="1.35.4 ";var Oe="NOT_STARTED_STEP",q="COMPLETED_FLOW",go="ABORTED_FLOW",gt="STARTED_FLOW",Me="NOT_STARTED_FLOW",Ue="COMPLETED_STEP",xo="STARTED_STEP";function We(){let{publicApiKey:e,userId:t,apiUrl:o}=qo.useContext(K);return{config:Dr(()=>({headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Frigade-SDK-Version":Lr,"X-Frigade-SDK-Platform":"React"}}),[e,t]),apiUrl:Dr(()=>`${o}/v1/public/`,[o])}}var Pl="frigade-last-call-at-",vl="frigade-last-call-data-";function Et(){let{shouldGracefullyDegrade:e,readonly:t}=qo.useContext(K);return async(o,i)=>{if(t&&(i.method==="POST"||i.method==="PUT"||i.method==="DELETE"))return Bt();if(e)return console.log(`Skipping ${o} call to Frigade due to error`),Bt();let r=Pl+o,n=vl+o;if(window&&window.localStorage&&i&&i.body&&i.method==="POST"){let p=window.localStorage.getItem(r),c=window.localStorage.getItem(n);if(p&&c&&c==i.body){let a=new Date(p);if(new Date().getTime()-a.getTime()<1e3)return Bt()}window.localStorage.setItem(r,new Date().toISOString()),window.localStorage.setItem(n,i.body)}let s;try{s=await fetch(o,i)}catch(p){return Bt(p)}return s?s.ok?s:Bt(s.statusText):Bt()}}function Bt(e){return e&&console.log("Call to Frigade failed",e),{json:()=>({})}}function At(){let{publicApiKey:e,shouldGracefullyDegrade:t}=qo.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}}import{useContext as Dl,useState as $r}from"react";import{useContext as El,useEffect as Al,useState as Nl}from"react";import Il from"swr";import{useContext as Bl}from"react";function Te(){let{openFlowStates:e,setOpenFlowStates:t,hasActiveFullPageFlow:o,setCompletedFlowsToKeepOpenDuringSession:i,completedFlowsToKeepOpenDuringSession:r}=Bl(K);function n(d,x=!1){return e[d]??x}function s(d,x){t(S=>({...S,[d]:x}))}function p(d){t(x=>{let{[d]:S,...w}=x;return{...w}})}function c(d){r.includes(d)||i(x=>[...x,d])}function a(d){return r.includes(d)}function g(d){return Object.entries(e).some(([x,S])=>S&&x!=d)||o}return{getOpenFlowState:n,setOpenFlowState:s,resetOpenFlowState:p,hasOpenModals:g,setKeepCompletedFlowOpenDuringSession:c,shouldKeepCompletedFlowOpenDuringSession:a}}import Ol from"swr/immutable";var Ll="unknown";function Ee(){let{config:e,apiUrl:t}=We(),{publicApiKey:o,userId:i,organizationId:r,flows:n,setShouldGracefullyDegrade:s,readonly:p}=El(K),{resetOpenFlowState:c}=Te(),[a,g]=Nl(!1),d={data:n.map(T=>({flowId:T.id,flowState:q,lastStepId:null,userId:i,foreignUserId:i,stepStates:{},shouldTrigger:!1}))},x=T=>fetch(T,e).then(F=>{if(F.ok)return F.json();throw new Error("Failed to fetch user flow states")}).catch(F=>(console.log(`Error fetching ${T}: ${F}. Will gracefully degrade and hide Frigade`),s(!0),d)),S=o&&n&&i?`${t}userFlowStates?foreignUserId=${encodeURIComponent(i)}${r?`&foreignUserGroupId=${encodeURIComponent(r)}`:""}`:null,{data:w,isLoading:P,mutate:f,error:E}=p?Ol(S,x):Il(S,x,{revalidateOnFocus:!0,revalidateIfStale:!0,keepPreviousData:!0,revalidateOnMount:!0,errorRetryInterval:1e4,errorRetryCount:3,onError:()=>d,onLoadingSlow:()=>d}),b=w==null?void 0:w.data;Al(()=>{!a&&!P&&b&&g(!0)},[b,a,P]);async function y(T){if(b&&!p){let F=b.find(O=>O.flowId===T);F&&F.flowState!==q&&(F.flowState=q),await f(Promise.resolve({...w,data:b}),{optimisticData:{...w,data:b},revalidate:!1,rollbackOnError:!1})}}async function A(T,F,O){if(b){let N=b.find(I=>I.flowId===T);N&&(N.stepStates[F]=O,N.flowState=gt),await f(Promise.resolve({...w,data:b}),{optimisticData:{...w,data:b},revalidate:!1,rollbackOnError:!1})}}async function h(T,F,O){if(b){let N=b.find(I=>I.flowId===T);N&&(N.lastStepId=F,N.stepStates[F]=O,N.flowState=gt),await f({...w,data:b},{optimisticData:{...w,data:b},revalidate:!1,rollbackOnError:!1})}}async function m(T){if(b){let F=b.find(O=>O.flowId===T);F&&F.flowState!==Me&&(F.flowState=Me,F.lastStepId=Ll,Object.keys(F.stepStates).forEach(O=>{F.stepStates[O].actionType=Oe,F.stepStates[O].createdAt=new Date().toISOString()}),await f({...w,data:b},{optimisticData:{...w,data:b},revalidate:!1,rollbackOnError:!1}),c(T))}}async function B(T,F){if(b){let O=b.find(N=>N.flowId===T);O&&O.stepStates[F]!==Oe&&(O.stepStates[F]=Oe),await f({...w,data:b},{optimisticData:{...w,data:b},revalidate:!1,rollbackOnError:!1})}}return{userFlowStatesData:b,isLoadingUserFlowStateData:!a,mutateUserFlowState:f,optimisticallyMarkFlowCompleted:y,optimisticallyMarkFlowNotStarted:m,optimisticallyMarkStepCompleted:A,optimisticallyMarkStepNotStarted:B,optimisticallyMarkStepStarted:h,error:E}}function qt(){let{config:e,apiUrl:t}=We(),{userFlowStatesData:o,mutateUserFlowState:i}=Ee(),{failedFlowResponses:r,setFailedFlowResponses:n,flowResponses:s,setFlowResponses:p}=Dl(K),[c,a]=$r(new Set),[g,d]=$r(new Set),x=Et();function S(f){let E=JSON.stringify(f);if(c.has(E))return null;c.add(E),a(c),g.add(f),d(g);let b=s==null?void 0:s.find(y=>y.flowSlug===f.flowSlug&&y.stepId===f.stepId&&y.actionType===f.actionType&&y.createdAt===f.createdAt);return x(`${t}flowResponses`,{...e,method:"POST",body:E}).then(y=>{y.status!==200&&y.status!==201?(console.log("Failed to send flow response for step "+f.stepId+". Will retry again later."),n([...r,f])):b||p(A=>[...A??[],f])})}async function w(f){f.foreignUserId&&(f.actionType===gt||f.actionType===Me?await S(f):f.actionType===q?await S(f):f.actionType===xo?await S(f):f.actionType===Ue?await S(f):f.actionType===go?await S(f):f.actionType===Oe&&await S(f))}function P(){let f=[];return o==null||o.forEach(E=>{if(E&&E.stepStates&&Object.keys(E.stepStates).length!==0)for(let b in E.stepStates){let y=E.stepStates[b];f.push({foreignUserId:E.foreignUserId,flowSlug:E.flowId,stepId:y.stepId,actionType:y.actionType,data:{},createdAt:new Date(y.createdAt),blocked:y.blocked,hidden:y.hidden})}}),[...f,...s]}return{addResponse:w,setFlowResponses:p,getFlowResponses:P}}import _l from"swr";var $l=/user.flow\(([^\)]+)\) == '?COMPLETED_FLOW'?/gm,Mr=e=>{let t=$l.exec(e);if(t===null)return null;let o=null;return t.forEach((i,r)=>{let n=Ml(i,"'","");n.startsWith("flow_")&&(o=n)}),o},Ml=function(e,t,o){return e.replace(new RegExp(t,"g"),o)};function Y(){let{config:e,apiUrl:t}=We(),{flows:o,setFlows:i,userId:r,publicApiKey:n,customVariables:s,setCustomVariables:p,hasActiveFullPageFlow:c,setHasActiveFullPageFlow:a,setFlowResponses:g,setShouldGracefullyDegrade:d,readonly:x}=Ul(K),S={data:[]},{verifySDKInitiated:w}=At(),{addResponse:P,getFlowResponses:f}=qt(),E=u=>fetch(u,e).then(C=>C.ok?C.json():(console.log(`Error fetching ${u} (${C.status}): ${C.statusText}. .Will gracefully degrade and hide Frigade`),d(!0),S)).catch(C=>(console.log(`Error fetching ${u}: ${C}. Will gracefully degrade and hide Frigade`),d(!0),S)),{mutateUserFlowState:b,userFlowStatesData:y,isLoadingUserFlowStateData:A,optimisticallyMarkFlowCompleted:h,optimisticallyMarkFlowNotStarted:m,optimisticallyMarkStepCompleted:B,optimisticallyMarkStepNotStarted:T,optimisticallyMarkStepStarted:F}=Ee(),{data:O,error:N,isLoading:I}=_l(n?`${t}flows${x?"?readonly=true":""}`:null,E,{keepPreviousData:!0});zl(()=>{if(N){console.error(N);return}O&&O.data&&i(O.data)},[O,N]);function $(u){if(I)return null;let C=o.find(v=>v.slug===u);return!C&&o.length>0&&!A&&!I?(console.log(`Flow with slug ${u} not found`),null):(C==null?void 0:C.active)===!1?null:C}function D(u){var _;if(!$(u))return[];let C=$(u).data;return C?(C=ee(C),(((_=JSON.parse(C))==null?void 0:_.data)??[]).map(ye=>{let Or=se(ye);return{handleSecondaryButtonClick:()=>{ye.skippable===!0&&H(u,ye.id,{skipped:!0})},...ye,complete:ge(u,ye.id)===Ue||Or>=1,blocked:re(u,ye.id),hidden:L(u,ye.id),handlePrimaryButtonClick:()=>{(!ye.completionCriteria&&(ye.autoMarkCompleted||ye.autoMarkCompleted===void 0)||ye.completionCriteria&&ye.autoMarkCompleted===!0)&&H(u,ye.id)},progress:Or}}).filter(ye=>ye.hidden!==!0)):[]}function ee(u){return u.replaceAll(/\${(.*?)}/g,(C,v)=>s[v]===void 0?"":String(s[v]).replace(/[\u00A0-\u9999<>\&]/g,function(_){return"&#"+_.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 M(u){if(!$(u))return[];let C=$(u).data;return C?(C=ee(C),JSON.parse(C)??{}):[]}function te(u,C){p(v=>({...v,[u]:C}))}function fe(u){!A&&!I&&u&&JSON.stringify(s)!=JSON.stringify({...s,...u})&&Object.keys(u).forEach(C=>{te(C,u[C])})}let X=xt(async(u,C,v)=>{if(!w())return;let _={foreignUserId:r,flowSlug:u,stepId:C,actionType:xo,data:v??{},createdAt:new Date,blocked:!1,hidden:!1};J(_)&&(await F(u,C,_),P(_))},[r,y]),W=xt(async(u,C,v)=>{if(!w())return;let _={foreignUserId:r,flowSlug:u,stepId:C,actionType:Oe,data:v??{},createdAt:new Date,blocked:!1,hidden:!1};J(_)&&(await T(u,C),P(_))},[r,y]),H=xt(async(u,C,v)=>{if(!w())return;let _={foreignUserId:r,flowSlug:u,stepId:C,actionType:Ue,data:v??{},createdAt:new Date,blocked:!1,hidden:!1};J(_)&&(await B(u,C,_),P(_))},[r,y]),Ce=xt(async(u,C)=>{if(!w()||pe(u)===Me)return;let v={foreignUserId:r,flowSlug:u,stepId:"unknown",actionType:Me,data:C??{},createdAt:new Date,blocked:!1,hidden:!1};await m(u),J(v)&&P(v)},[r,y]),Ie=xt(async(u,C)=>{if(!w())return;let v={foreignUserId:r,flowSlug:u,stepId:"unknown",actionType:gt,data:C??{},createdAt:new Date,blocked:!1,hidden:!1};J(v)&&P(v)},[r,y]),we=xt(async(u,C)=>{if(!w())return;let v={foreignUserId:r,flowSlug:u,stepId:"unknown",actionType:q,data:C??{},createdAt:new Date,blocked:!1,hidden:!1};J(v)&&(await h(u),P(v))},[r,y]),me=xt(async(u,C)=>{if(!w())return;let v={foreignUserId:r,flowSlug:u,stepId:"unknown",actionType:go,data:C??{},createdAt:new Date,blocked:!1,hidden:!1};J(v)&&(await h(u),P(v))},[r,y]);function J(u){var C;if(!y&&u.actionType===Oe)return!1;if(y){let v=y.find(_=>_.flowId===u.flowSlug);if(u.actionType===Oe&&(!(v!=null&&v.stepStates[u.stepId])||v.stepStates[u.stepId].actionType===Oe)||v&&((C=v.stepStates[u.stepId])==null?void 0:C.actionType)===u.actionType||v&&v.flowState===q&&u.actionType===q)return!1}return!0}function ge(u,C){let v=j(u,C);return A?null:v?v.actionType:Oe}function re(u,C){let v=j(u,C);return v?v.blocked:!1}function L(u,C){let v=j(u,C);return v?v.hidden:!1}function j(u,C){if(A)return null;let v=y==null?void 0:y.find(_=>_.flowId===u);return!v||!v.stepStates[C]?null:v.stepStates[C]??null}function V(u){var v;if(A||!y)return null;if(pe(u)===Me)return D(u)[0]??null;let C=(v=y.find(_=>_.flowId===u))==null?void 0:v.lastStepId;return C?D(u).find(_=>_.id===C):null}function ne(u){let C=V(u);if(!C)return 0;let v=D(u).findIndex(_=>_.id===C.id)??0;return ge(u,C.id)===Ue&&v<D(u).length-1?v+1:v}function se(u){if(!u.completionCriteria)return;let C=Mr(u.completionCriteria);if(C===null)return;let v=Ye(C),_=$e(C);return _===0?void 0:v/_}function pe(u){let C=y==null?void 0:y.find(v=>v.flowId===u);return C?C.flowState:null}function Ye(u){let C=D(u);return C.length===0?0:C.filter(_=>ge(u,_.id)===Ue).length}function $e(u){return D(u).length}function G(u){let C=o.find(v=>v.slug===u);return C?JSON.parse(C.data):null}function Be(u){if(x)return!1;if(A)return!0;if(u!=null&&u.targetingLogic&&y){let C=y.find(v=>v.flowId===u.slug);if(C)return C.shouldTrigger===!1}return!!(u!=null&&u.targetingLogic&&r&&r.startsWith("guest_"))}function Kt(u){return!Be($(u))}function fo(){r&&b()}return{getFlow:$,getFlowData:G,isLoading:A||I,getStepStatus:ge,getFlowSteps:D,getCurrentStepIndex:ne,markStepStarted:X,markStepCompleted:H,markFlowNotStarted:Ce,markFlowStarted:Ie,markFlowCompleted:we,markFlowAborted:me,markStepNotStarted:W,getFlowStatus:pe,getNumberOfStepsCompleted:Ye,getNumberOfSteps:$e,targetingLogicShouldHideFlow:Be,setCustomVariable:te,updateCustomVariables:fe,customVariables:s,getStepOptionalProgress:se,getFlowMetadata:M,isStepBlocked:re,isStepHidden:L,hasActiveFullPageFlow:c,setHasActiveFullPageFlow:a,isFlowAvailableToUser:Kt,refresh:fo}}import{useCallback as Ur,useContext as Wl,useEffect as Hl}from"react";var Nt="guest_";function Yt(){let{userId:e,organizationId:t,setUserId:o,setUserProperties:i,shouldGracefullyDegrade:r}=Wl(K),{config:n,apiUrl:s}=We(),{mutateUserFlowState:p}=Ee(),c=Et(),{verifySDKInitiated:a}=At();Hl(()=>{if(e&&!t){if(e.startsWith(Nt))return;let x=`frigade-user-registered-${e}`;localStorage.getItem(x)||(c(`${s}users`,{...n,method:"POST",body:JSON.stringify({foreignId:e})}),localStorage.setItem(x,"true"))}},[e,r,t]);let g=Ur(async x=>{if(!a())return;let S={foreignId:e,properties:x};await c(`${s}users`,{...n,method:"POST",body:JSON.stringify(S)}),i(w=>({...w,...x})),p()},[e,n,r,p]),d=Ur(async(x,S)=>{if(!a())return;let P={foreignId:e,events:[{event:x,properties:S}]};await c(`${s}users`,{...n,method:"POST",body:JSON.stringify(P)}),p()},[e,n,p]);return{userId:e,setUserId:o,addPropertiesToUser:g,trackEventForUser:d}}import{v4 as up}from"uuid";import Ge,{useEffect as ap,useState as pp}from"react";import ze,{useEffect as Xl}from"react";import yo from"styled-components";import jl from"react";import Vl from"styled-components";var zr="fr-",Xt="cfr-";function l(e,t){let o=`${zr}${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+" "+Xt+e}return o}function k(e){if(!e.className||e.className.indexOf(Xt)!==-1)return"";let o=e.className.replace(/\s+/g," ").split(" ");return o.length==1&&o[0].startsWith(zr)?"":`:not(${o.map(i=>`.${i}`).join(", ")})`}function Yo(e){return e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function Xe(e){return e!=null&&e.styleOverrides?Object.keys(e.styleOverrides).map(t=>`${Yo(t)}: ${e.styleOverrides[t]};`).join(" "):""}function xe(...e){return e.filter(Boolean).join(" ")}function Jt(e){return e.charAt(0).toUpperCase()+e.slice(1)}var Gl=Vl.div`
2
+ import bt,{createContext as Mp,useEffect as Do,useState as Le}from"react";import{ThemeProvider as Up}from"styled-components";import St,{useContext as mp,useEffect as Oo,useState as ur}from"react";import{useCallback as xt,useContext as Ul,useEffect as zl}from"react";import qo,{useMemo as Dr}from"react";var Lr="1.35.5 ";var Oe="NOT_STARTED_STEP",q="COMPLETED_FLOW",go="ABORTED_FLOW",gt="STARTED_FLOW",Me="NOT_STARTED_FLOW",Ue="COMPLETED_STEP",xo="STARTED_STEP";function We(){let{publicApiKey:e,userId:t,apiUrl:o}=qo.useContext(K);return{config:Dr(()=>({headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Frigade-SDK-Version":Lr,"X-Frigade-SDK-Platform":"React"}}),[e,t]),apiUrl:Dr(()=>`${o}/v1/public/`,[o])}}var Pl="frigade-last-call-at-",vl="frigade-last-call-data-";function Et(){let{shouldGracefullyDegrade:e,readonly:t}=qo.useContext(K);return async(o,i)=>{if(t&&(i.method==="POST"||i.method==="PUT"||i.method==="DELETE"))return Bt();if(e)return console.log(`Skipping ${o} call to Frigade due to error`),Bt();let r=Pl+o,n=vl+o;if(window&&window.localStorage&&i&&i.body&&i.method==="POST"){let p=window.localStorage.getItem(r),c=window.localStorage.getItem(n);if(p&&c&&c==i.body){let a=new Date(p);if(new Date().getTime()-a.getTime()<1e3)return Bt()}window.localStorage.setItem(r,new Date().toISOString()),window.localStorage.setItem(n,i.body)}let s;try{s=await fetch(o,i)}catch(p){return Bt(p)}return s?s.ok?s:Bt(s.statusText):Bt()}}function Bt(e){return e&&console.log("Call to Frigade failed",e),{json:()=>({})}}function At(){let{publicApiKey:e,shouldGracefullyDegrade:t}=qo.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}}import{useContext as Dl,useState as $r}from"react";import{useContext as El,useEffect as Al,useState as Nl}from"react";import Il from"swr";import{useContext as Bl}from"react";function Te(){let{openFlowStates:e,setOpenFlowStates:t,hasActiveFullPageFlow:o,setCompletedFlowsToKeepOpenDuringSession:i,completedFlowsToKeepOpenDuringSession:r}=Bl(K);function n(d,x=!1){return e[d]??x}function s(d,x){t(S=>({...S,[d]:x}))}function p(d){t(x=>{let{[d]:S,...w}=x;return{...w}})}function c(d){r.includes(d)||i(x=>[...x,d])}function a(d){return r.includes(d)}function g(d){return Object.entries(e).some(([x,S])=>S&&x!=d)||o}return{getOpenFlowState:n,setOpenFlowState:s,resetOpenFlowState:p,hasOpenModals:g,setKeepCompletedFlowOpenDuringSession:c,shouldKeepCompletedFlowOpenDuringSession:a}}import Ol from"swr/immutable";var Ll="unknown";function Ee(){let{config:e,apiUrl:t}=We(),{publicApiKey:o,userId:i,organizationId:r,flows:n,setShouldGracefullyDegrade:s,readonly:p}=El(K),{resetOpenFlowState:c}=Te(),[a,g]=Nl(!1),d={data:n.map(T=>({flowId:T.id,flowState:q,lastStepId:null,userId:i,foreignUserId:i,stepStates:{},shouldTrigger:!1}))},x=T=>fetch(T,e).then(F=>{if(F.ok)return F.json();throw new Error("Failed to fetch user flow states")}).catch(F=>(console.log(`Error fetching ${T}: ${F}. Will gracefully degrade and hide Frigade`),s(!0),d)),S=o&&n&&i?`${t}userFlowStates?foreignUserId=${encodeURIComponent(i)}${r?`&foreignUserGroupId=${encodeURIComponent(r)}`:""}`:null,{data:w,isLoading:P,mutate:f,error:E}=p?Ol(S,x):Il(S,x,{revalidateOnFocus:!0,revalidateIfStale:!0,keepPreviousData:!0,revalidateOnMount:!0,errorRetryInterval:1e4,errorRetryCount:3,onError:()=>d,onLoadingSlow:()=>d}),b=w==null?void 0:w.data;Al(()=>{!a&&!P&&b&&g(!0)},[b,a,P]);async function y(T){if(b&&!p){let F=b.find(O=>O.flowId===T);F&&F.flowState!==q&&(F.flowState=q),await f(Promise.resolve({...w,data:b}),{optimisticData:{...w,data:b},revalidate:!1,rollbackOnError:!1})}}async function A(T,F,O){if(b){let N=b.find(I=>I.flowId===T);N&&(N.stepStates[F]=O,N.flowState=gt),await f(Promise.resolve({...w,data:b}),{optimisticData:{...w,data:b},revalidate:!1,rollbackOnError:!1})}}async function h(T,F,O){if(b){let N=b.find(I=>I.flowId===T);N&&(N.lastStepId=F,N.stepStates[F]=O,N.flowState=gt),await f({...w,data:b},{optimisticData:{...w,data:b},revalidate:!1,rollbackOnError:!1})}}async function m(T){if(b){let F=b.find(O=>O.flowId===T);F&&F.flowState!==Me&&(F.flowState=Me,F.lastStepId=Ll,Object.keys(F.stepStates).forEach(O=>{F.stepStates[O].actionType=Oe,F.stepStates[O].createdAt=new Date().toISOString()}),await f({...w,data:b},{optimisticData:{...w,data:b},revalidate:!1,rollbackOnError:!1}),c(T))}}async function B(T,F){if(b){let O=b.find(N=>N.flowId===T);O&&O.stepStates[F]!==Oe&&(O.stepStates[F]=Oe),await f({...w,data:b},{optimisticData:{...w,data:b},revalidate:!1,rollbackOnError:!1})}}return{userFlowStatesData:b,isLoadingUserFlowStateData:!a,mutateUserFlowState:f,optimisticallyMarkFlowCompleted:y,optimisticallyMarkFlowNotStarted:m,optimisticallyMarkStepCompleted:A,optimisticallyMarkStepNotStarted:B,optimisticallyMarkStepStarted:h,error:E}}function qt(){let{config:e,apiUrl:t}=We(),{userFlowStatesData:o,mutateUserFlowState:i}=Ee(),{failedFlowResponses:r,setFailedFlowResponses:n,flowResponses:s,setFlowResponses:p}=Dl(K),[c,a]=$r(new Set),[g,d]=$r(new Set),x=Et();function S(f){let E=JSON.stringify(f);if(c.has(E))return null;c.add(E),a(c),g.add(f),d(g);let b=s==null?void 0:s.find(y=>y.flowSlug===f.flowSlug&&y.stepId===f.stepId&&y.actionType===f.actionType&&y.createdAt===f.createdAt);return x(`${t}flowResponses`,{...e,method:"POST",body:E}).then(y=>{y.status!==200&&y.status!==201?(console.log("Failed to send flow response for step "+f.stepId+". Will retry again later."),n([...r,f])):b||p(A=>[...A??[],f])})}async function w(f){f.foreignUserId&&(f.actionType===gt||f.actionType===Me?await S(f):f.actionType===q?await S(f):f.actionType===xo?await S(f):f.actionType===Ue?await S(f):f.actionType===go?await S(f):f.actionType===Oe&&await S(f))}function P(){let f=[];return o==null||o.forEach(E=>{if(E&&E.stepStates&&Object.keys(E.stepStates).length!==0)for(let b in E.stepStates){let y=E.stepStates[b];f.push({foreignUserId:E.foreignUserId,flowSlug:E.flowId,stepId:y.stepId,actionType:y.actionType,data:{},createdAt:new Date(y.createdAt),blocked:y.blocked,hidden:y.hidden})}}),[...f,...s]}return{addResponse:w,setFlowResponses:p,getFlowResponses:P}}import _l from"swr";var $l=/user.flow\(([^\)]+)\) == '?COMPLETED_FLOW'?/gm,Mr=e=>{let t=$l.exec(e);if(t===null)return null;let o=null;return t.forEach((i,r)=>{let n=Ml(i,"'","");n.startsWith("flow_")&&(o=n)}),o},Ml=function(e,t,o){return e.replace(new RegExp(t,"g"),o)};function Y(){let{config:e,apiUrl:t}=We(),{flows:o,setFlows:i,userId:r,publicApiKey:n,customVariables:s,setCustomVariables:p,hasActiveFullPageFlow:c,setHasActiveFullPageFlow:a,setFlowResponses:g,setShouldGracefullyDegrade:d,readonly:x}=Ul(K),S={data:[]},{verifySDKInitiated:w}=At(),{addResponse:P,getFlowResponses:f}=qt(),E=u=>fetch(u,e).then(C=>C.ok?C.json():(console.log(`Error fetching ${u} (${C.status}): ${C.statusText}. .Will gracefully degrade and hide Frigade`),d(!0),S)).catch(C=>(console.log(`Error fetching ${u}: ${C}. Will gracefully degrade and hide Frigade`),d(!0),S)),{mutateUserFlowState:b,userFlowStatesData:y,isLoadingUserFlowStateData:A,optimisticallyMarkFlowCompleted:h,optimisticallyMarkFlowNotStarted:m,optimisticallyMarkStepCompleted:B,optimisticallyMarkStepNotStarted:T,optimisticallyMarkStepStarted:F}=Ee(),{data:O,error:N,isLoading:I}=_l(n?`${t}flows${x?"?readonly=true":""}`:null,E,{keepPreviousData:!0});zl(()=>{if(N){console.error(N);return}O&&O.data&&i(O.data)},[O,N]);function $(u){if(I)return null;let C=o.find(v=>v.slug===u);return!C&&o.length>0&&!A&&!I?(console.log(`Flow with slug ${u} not found`),null):(C==null?void 0:C.active)===!1?null:C}function D(u){var _;if(!$(u))return[];let C=$(u).data;return C?(C=ee(C),(((_=JSON.parse(C))==null?void 0:_.data)??[]).map(ye=>{let Or=se(ye);return{handleSecondaryButtonClick:()=>{ye.skippable===!0&&H(u,ye.id,{skipped:!0})},...ye,complete:ge(u,ye.id)===Ue||Or>=1,blocked:re(u,ye.id),hidden:L(u,ye.id),handlePrimaryButtonClick:()=>{(!ye.completionCriteria&&(ye.autoMarkCompleted||ye.autoMarkCompleted===void 0)||ye.completionCriteria&&ye.autoMarkCompleted===!0)&&H(u,ye.id)},progress:Or}}).filter(ye=>ye.hidden!==!0)):[]}function ee(u){return u.replaceAll(/\${(.*?)}/g,(C,v)=>s[v]===void 0?"":String(s[v]).replace(/[\u00A0-\u9999<>\&]/g,function(_){return"&#"+_.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 M(u){if(!$(u))return[];let C=$(u).data;return C?(C=ee(C),JSON.parse(C)??{}):[]}function te(u,C){p(v=>({...v,[u]:C}))}function fe(u){!A&&!I&&u&&JSON.stringify(s)!=JSON.stringify({...s,...u})&&Object.keys(u).forEach(C=>{te(C,u[C])})}let X=xt(async(u,C,v)=>{if(!w())return;let _={foreignUserId:r,flowSlug:u,stepId:C,actionType:xo,data:v??{},createdAt:new Date,blocked:!1,hidden:!1};J(_)&&(await F(u,C,_),P(_))},[r,y]),W=xt(async(u,C,v)=>{if(!w())return;let _={foreignUserId:r,flowSlug:u,stepId:C,actionType:Oe,data:v??{},createdAt:new Date,blocked:!1,hidden:!1};J(_)&&(await T(u,C),P(_))},[r,y]),H=xt(async(u,C,v)=>{if(!w())return;let _={foreignUserId:r,flowSlug:u,stepId:C,actionType:Ue,data:v??{},createdAt:new Date,blocked:!1,hidden:!1};J(_)&&(await B(u,C,_),P(_))},[r,y]),Ce=xt(async(u,C)=>{if(!w()||pe(u)===Me)return;let v={foreignUserId:r,flowSlug:u,stepId:"unknown",actionType:Me,data:C??{},createdAt:new Date,blocked:!1,hidden:!1};await m(u),J(v)&&P(v)},[r,y]),Ie=xt(async(u,C)=>{if(!w())return;let v={foreignUserId:r,flowSlug:u,stepId:"unknown",actionType:gt,data:C??{},createdAt:new Date,blocked:!1,hidden:!1};J(v)&&P(v)},[r,y]),we=xt(async(u,C)=>{if(!w())return;let v={foreignUserId:r,flowSlug:u,stepId:"unknown",actionType:q,data:C??{},createdAt:new Date,blocked:!1,hidden:!1};J(v)&&(await h(u),P(v))},[r,y]),me=xt(async(u,C)=>{if(!w())return;let v={foreignUserId:r,flowSlug:u,stepId:"unknown",actionType:go,data:C??{},createdAt:new Date,blocked:!1,hidden:!1};J(v)&&(await h(u),P(v))},[r,y]);function J(u){var C;if(!y&&u.actionType===Oe)return!1;if(y){let v=y.find(_=>_.flowId===u.flowSlug);if(u.actionType===Oe&&(!(v!=null&&v.stepStates[u.stepId])||v.stepStates[u.stepId].actionType===Oe)||v&&((C=v.stepStates[u.stepId])==null?void 0:C.actionType)===u.actionType||v&&v.flowState===q&&u.actionType===q)return!1}return!0}function ge(u,C){let v=j(u,C);return A?null:v?v.actionType:Oe}function re(u,C){let v=j(u,C);return v?v.blocked:!1}function L(u,C){let v=j(u,C);return v?v.hidden:!1}function j(u,C){if(A)return null;let v=y==null?void 0:y.find(_=>_.flowId===u);return!v||!v.stepStates[C]?null:v.stepStates[C]??null}function V(u){var v;if(A||!y)return null;if(pe(u)===Me)return D(u)[0]??null;let C=(v=y.find(_=>_.flowId===u))==null?void 0:v.lastStepId;return C?D(u).find(_=>_.id===C):null}function ne(u){let C=V(u);if(!C)return 0;let v=D(u).findIndex(_=>_.id===C.id)??0;return ge(u,C.id)===Ue&&v<D(u).length-1?v+1:v}function se(u){if(!u.completionCriteria)return;let C=Mr(u.completionCriteria);if(C===null)return;let v=Ye(C),_=$e(C);return _===0?void 0:v/_}function pe(u){let C=y==null?void 0:y.find(v=>v.flowId===u);return C?C.flowState:null}function Ye(u){let C=D(u);return C.length===0?0:C.filter(_=>ge(u,_.id)===Ue).length}function $e(u){return D(u).length}function G(u){let C=o.find(v=>v.slug===u);return C?JSON.parse(C.data):null}function Be(u){if(x)return!1;if(A)return!0;if(u!=null&&u.targetingLogic&&y){let C=y.find(v=>v.flowId===u.slug);if(C)return C.shouldTrigger===!1}return!!(u!=null&&u.targetingLogic&&r&&r.startsWith("guest_"))}function Kt(u){return!Be($(u))}function fo(){r&&b()}return{getFlow:$,getFlowData:G,isLoading:A||I,getStepStatus:ge,getFlowSteps:D,getCurrentStepIndex:ne,markStepStarted:X,markStepCompleted:H,markFlowNotStarted:Ce,markFlowStarted:Ie,markFlowCompleted:we,markFlowAborted:me,markStepNotStarted:W,getFlowStatus:pe,getNumberOfStepsCompleted:Ye,getNumberOfSteps:$e,targetingLogicShouldHideFlow:Be,setCustomVariable:te,updateCustomVariables:fe,customVariables:s,getStepOptionalProgress:se,getFlowMetadata:M,isStepBlocked:re,isStepHidden:L,hasActiveFullPageFlow:c,setHasActiveFullPageFlow:a,isFlowAvailableToUser:Kt,refresh:fo}}import{useCallback as Ur,useContext as Wl,useEffect as Hl}from"react";var Nt="guest_";function Yt(){let{userId:e,organizationId:t,setUserId:o,setUserProperties:i,shouldGracefullyDegrade:r}=Wl(K),{config:n,apiUrl:s}=We(),{mutateUserFlowState:p}=Ee(),c=Et(),{verifySDKInitiated:a}=At();Hl(()=>{if(e&&!t){if(e.startsWith(Nt))return;let x=`frigade-user-registered-${e}`;localStorage.getItem(x)||(c(`${s}users`,{...n,method:"POST",body:JSON.stringify({foreignId:e})}),localStorage.setItem(x,"true"))}},[e,r,t]);let g=Ur(async x=>{if(!a())return;let S={foreignId:e,properties:x};await c(`${s}users`,{...n,method:"POST",body:JSON.stringify(S)}),i(w=>({...w,...x})),p()},[e,n,r,p]),d=Ur(async(x,S)=>{if(!a())return;let P={foreignId:e,events:[{event:x,properties:S}]};await c(`${s}users`,{...n,method:"POST",body:JSON.stringify(P)}),p()},[e,n,p]);return{userId:e,setUserId:o,addPropertiesToUser:g,trackEventForUser:d}}import{v4 as up}from"uuid";import Ge,{useEffect as ap,useState as pp}from"react";import ze,{useEffect as Xl}from"react";import yo from"styled-components";import jl from"react";import Vl from"styled-components";var zr="fr-",Xt="cfr-";function l(e,t){let o=`${zr}${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+" "+Xt+e}return o}function k(e){if(!e.className||e.className.indexOf(Xt)!==-1)return"";let o=e.className.replace(/\s+/g," ").split(" ");return o.length==1&&o[0].startsWith(zr)?"":`:not(${o.map(i=>`.${i}`).join(", ")})`}function Yo(e){return e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function Xe(e){return e!=null&&e.styleOverrides?Object.keys(e.styleOverrides).map(t=>`${Yo(t)}: ${e.styleOverrides[t]};`).join(" "):""}function xe(...e){return e.filter(Boolean).join(" ")}function Jt(e){return e.charAt(0).toUpperCase()+e.slice(1)}var Gl=Vl.div`
3
3
  display: flex;
4
4
  justify-content: center;
5
5
  position: fixed;
@@ -480,7 +480,7 @@ import bt,{createContext as Mp,useEffect as Do,useState as Le}from"react";import
480
480
  margin-right: 8px;
481
481
  }
482
482
  }
483
- `,Z=({onClick:e,title:t,style:o,disabled:i,type:r="inline",size:n="medium",secondary:s=!1,appearance:p,withMargin:c=!0,classPrefix:a=""})=>{function g(){let d=s?"buttonSecondary":"button";return a===""?d:`${a}${Jt(d)}`}return Ua.createElement(za,{secondary:s,appearance:p,disabled:i,onClick:e,styleOverrides:o,type:r,withMargin:c,size:n,className:l(g(),p)},t??"Continue")};var Fi=({step:e,canContinue:t,appearance:o,onPrimaryClick:i,onSecondaryClick:r,selectedStep:n,steps:s,onBack:p,allowBackNavigation:c,errorMessage:a})=>{let g=s.length>1&&n!=0&&c,d=e.primaryButtonTitle&&e.secondaryButtonTitle||g?"inline":"full-width";return at.createElement(at.Fragment,null,a!==null&&a!=null&&at.createElement(hi,{appearance:o,className:l("formCTAError",o)},a),at.createElement(xi,{showBackButton:g,className:l("formCTAContainer",o)},g&&at.createElement(Z,{title:e.backButtonTitle??"\u2190",onClick:p,secondary:!0,withMargin:!1,type:d,appearance:o,style:{width:"90px",maxWidth:"90px"},classPrefix:"back"}),at.createElement(Ci,{className:l("ctaWrapper",o)},e.secondaryButtonTitle?at.createElement(Z,{title:e.secondaryButtonTitle,onClick:r,secondary:!0,withMargin:!1,type:d,appearance:o}):null," ",e.primaryButtonTitle?at.createElement(Z,{disabled:!t,withMargin:!1,title:e.primaryButtonTitle,onClick:i,type:d,appearance:o}):null)))};import ar from"react";import _a from"styled-components";var Wa=_a.div`
483
+ `,Z=({onClick:e,title:t,style:o,disabled:i,type:r="inline",size:n="medium",secondary:s=!1,appearance:p,withMargin:c=!0,classPrefix:a=""})=>{function g(){let d=s?"buttonSecondary":"button";return a===""?d:`${a}${Jt(d)}`}return Ua.createElement(za,{secondary:s,appearance:p,disabled:i,onClick:e,styleOverrides:o,type:r,withMargin:c,size:n,className:l(g(),p)},t??"Continue")};var Fi=({step:e,canContinue:t,appearance:o,onPrimaryClick:i,onSecondaryClick:r,selectedStep:n,steps:s,onBack:p,allowBackNavigation:c,errorMessage:a})=>{let g=s.length>1&&n!=0&&c,d=e.primaryButtonTitle&&e.secondaryButtonTitle||g?"inline":"full-width";return at.createElement(at.Fragment,null,a!==null&&a!=null&&at.createElement(hi,{appearance:o,className:l("formCTAError",o)},a),at.createElement(xi,{showBackButton:g,className:l("formCTAContainer",o)},g&&at.createElement(Z,{title:e.backButtonTitle??"Back",onClick:p,secondary:!0,withMargin:!1,type:d,appearance:o,style:{width:"90px",maxWidth:"90px"},classPrefix:"back"}),at.createElement(Ci,{className:l("ctaWrapper",o)},e.secondaryButtonTitle?at.createElement(Z,{title:e.secondaryButtonTitle,onClick:r,secondary:!0,withMargin:!1,type:d,appearance:o}):null," ",e.primaryButtonTitle?at.createElement(Z,{disabled:!t,withMargin:!1,title:e.primaryButtonTitle,onClick:i,type:d,appearance:o}):null)))};import ar from"react";import _a from"styled-components";var Wa=_a.div`
484
484
  text-align: center;
485
485
  `,ki=({stepCount:e=0,currentStep:t=0,className:o,appearance:i})=>{let{theme:r}=Q().mergeAppearanceWithDefault(i);return ar.createElement(Wa,{className:o},ar.createElement("svg",{width:16*e-8,height:8,viewBox:`0 0 ${16*e-8} 8`,fill:"none"},Array(e).fill(null).map((n,s)=>ar.createElement("rect",{key:s,x:16*s,y:0,width:8,height:8,rx:4,fill:t===s?r.colorPrimary:"#E6E6E6"}))))};import yt from"react";import Lt from"styled-components";import{useContext as Ha}from"react";function ie(){let e=Ha(K);function t(r){i(r.primaryButtonUri,r.primaryButtonUriTarget)}function o(r){i(r.secondaryButtonUri,r.secondaryButtonUriTarget)}function i(r,n){if(!r)return;let s=r.startsWith("http")?"_blank":"_self";n&&n!=="_blank"&&(s="_self"),e.navigate(r,s)}return{primaryCTAClickSideEffects:t,secondaryCTAClickSideEffects:o,handleUrl:i}}var ja=Lt.div`
486
486
  display: flex;
@@ -1698,15 +1698,15 @@ ${i=>i.inlineStyles.map(([r,n])=>`.${Xt}${r}.${Xt}${r} { ${Object.entries(n).map
1698
1698
  justify-content: center;
1699
1699
  align-items: stretch;
1700
1700
  gap: 16px;
1701
- margin-top: 16px;
1701
+ margin-top: 8px;
1702
1702
  `,hl=vt.div`
1703
1703
  margin-top: 16px;
1704
1704
  margin-bottom: 16px;
1705
1705
  `,Cl=vt.div`
1706
1706
  ${e=>k(e)} {
1707
1707
  position: absolute;
1708
- top: -8px;
1709
- right: -8px;
1708
+ top: -16px;
1709
+ right: -16px;
1710
1710
  cursor: pointer;
1711
1711
 
1712
1712
  :hover {
@@ -1718,10 +1718,10 @@ ${i=>i.inlineStyles.map(([r,n])=>`.${Xt}${r}.${Xt}${r} { ${Object.entries(n).map
1718
1718
  font-style: normal;
1719
1719
  justify-content: center;
1720
1720
  text-align: center;
1721
- font-size: 24px;
1721
+ font-size: 18px;
1722
1722
  font-weight: 700;
1723
- line-height: 30px; /* 125% */
1724
- letter-spacing: 0.48px;
1723
+ line-height: 24px; /* 125% */
1724
+ letter-spacing: 0.36px;
1725
1725
  display: flex;
1726
1726
  align-items: center;
1727
1727
  color: ${e=>e.appearance.theme.colorText};
@@ -1734,9 +1734,9 @@ ${i=>i.inlineStyles.map(([r,n])=>`.${Xt}${r}.${Xt}${r} { ${Object.entries(n).map
1734
1734
  text-align: center;
1735
1735
  font-weight: 400;
1736
1736
  color: ${e=>e.appearance.theme.colorTextSecondary};
1737
- font-size: 16px;
1738
- line-height: 24px; /* 150% */
1739
- letter-spacing: 0.32px;
1737
+ font-size: 14px;
1738
+ line-height: 22px; /* 150% */
1739
+ letter-spacing: 0.28px;
1740
1740
  margin-bottom: 8px;
1741
1741
  }
1742
1742
  `;import bl from"react";import ac from"styled-components";var pc=ac.img`
@@ -1744,5 +1744,5 @@ ${i=>i.inlineStyles.map(([r,n])=>`.${Xt}${r}.${Xt}${r} { ${Object.entries(n).map
1744
1744
  height: 100%;
1745
1745
  min-height: 200px;
1746
1746
  border-radius: ${e=>e.appearance.theme.borderRadius}px;
1747
- `;function wl({stepData:e,appearance:t,classPrefix:o=""}){return e.videoUri?bl.createElement(Ve,{appearance:t,videoUri:e.videoUri}):e.imageUri?bl.createElement(pc,{className:l(`${o}image`,t),appearance:t,src:e.imageUri}):null}var cc=({flowId:e,onDismiss:t,customVariables:o,onButtonClick:i,appearance:r,className:n,style:s,dismissible:p=!0,modalPosition:c})=>{let{getFlow:a,markFlowCompleted:g,markStepCompleted:d,isLoading:x,targetingLogicShouldHideFlow:S,updateCustomVariables:w,getFlowSteps:P,getFlowStatus:f,getCurrentStepIndex:E}=Y(),{primaryCTAClickSideEffects:b,secondaryCTAClickSideEffects:y}=ie(),{mergeAppearanceWithDefault:A}=Q(),{setOpenFlowState:h,getOpenFlowState:m,hasOpenModals:B}=Te(),[T,F]=[m(e,!0),M=>h(e,M)];if(r=A(r),dc(()=>{w(o)},[o,x]),x)return null;let O=a(e);if(!O||S(O)||f(e)===q||B())return null;let I=P(e)[E(e)],$=()=>{F(!1),t&&t(),g(e)};function D(){return be.createElement(be.Fragment,null,be.createElement(oe,{appearance:r}),be.createElement(fl,{appearance:r,className:xe(l("announcementContainer",r),n),style:s},(p===!0||I.dismissible)&&c=="inline"&&be.createElement(Cl,{onClick:async()=>{await g(e),t&&t()},className:l("announcementDismissButton",r)},be.createElement(Fe,null)),be.createElement(gl,null,be.createElement(yl,{appearance:r,className:l("announcementTitle",r),dangerouslySetInnerHTML:le(I.title)}),I.subtitle&&be.createElement(Sl,{appearance:r,className:l("announcementSubtitle",r),dangerouslySetInnerHTML:le(I.subtitle)})),(I.imageUri||I.videoUri)&&be.createElement(hl,{className:l("announcementMediaContainer",r)},be.createElement(wl,{appearance:r,stepData:I})),(I.primaryButtonTitle||I.secondaryButtonTitle)&&be.createElement(xl,{className:l("announcementCTAContainer",r)},I.secondaryButtonTitle&&be.createElement(Z,{classPrefix:"announcement",title:I.secondaryButtonTitle,appearance:r,withMargin:!1,size:"medium",type:"full-width",onClick:async()=>{I.handleSecondaryButtonClick(),y(I),i&&i(I,E(e),"secondary")},secondary:!0}),I.primaryButtonTitle&&be.createElement(Z,{classPrefix:"announcement",title:I.primaryButtonTitle,appearance:r,withMargin:!1,size:"medium",type:"full-width",onClick:async()=>{I.handlePrimaryButtonClick(),b(I),!(i&&i(I,E(e),"primary")===!1)&&(await d(e,I.id),await g(e))}}))))}let ee={padding:"24px",maxWidth:"400px"};return c==="inline"?D():c!=="center"?be.createElement(bo,{modalPosition:c,onClose:$,visible:T,dismissible:p,appearance:r},D()):be.createElement(He,{appearance:r,onClose:$,visible:T,style:ee,dismissible:p},D())};import*as Ko from"react";import Tl from"react";var Fl=({as:e="span",children:t,variant:o="Body1",...i})=>Tl.createElement(qi,{color:"neutral.foreground",fontFamily:"default",forwardedAs:e,variant:o,...i},t),mc=Object.fromEntries(Object.keys(Lo).map(e=>{let t=["H1","H2","H3","H4"].includes(e)?e.toLowerCase():void 0,o=i=>Tl.createElement(Fl,{as:t,...i,variant:e},i.children);return o.displayName=`Text.${e}`,[e,o]})),Ir=Object.assign(Fl,mc);var kl=({as:e="button",className:t,size:o="md",title:i,variant:r="Primary",...n})=>{var s;return Ko.createElement(Ki,{className:`fr-button-${r.toLowerCase()}${t?` ${t}`:""}`,forwardedAs:e,variant:r,size:o,borderRadius:"md",...n},Ko.createElement(Ir,{color:(s=so[r])==null?void 0:s.color,fontWeight:"semibold"},i))},uc=Object.fromEntries(Object.keys(so).map(e=>{let t=o=>Ko.createElement(kl,{...o,variant:e});return t.displayName=`Button.${e}`,[e,t]})),fc=Object.assign(kl,uc);export{no as Box,fc as Button,Qe as CheckBox,lt as FormLabel,or as FormTextField,cc as FrigadeAnnouncement,ic as FrigadeBanner,Fr as FrigadeChecklist,Je as FrigadeDefaultAppearance,oc as FrigadeEmbeddedTip,Mi as FrigadeForm,Dd as FrigadeGuide,Nd as FrigadeHeroChecklist,lc as FrigadeNPSSurvey,Od as FrigadeProgressBadge,Wp as FrigadeProvider,ec as FrigadeSupportWidget,Xd as FrigadeTour,Ot as ProgressRing,Ir as Text,gr as tokens,Te as useFlowOpens,qt as useFlowResponses,Y as useFlows,mr as useOrganization,Yt as useUser,Ee as useUserFlowStates};
1747
+ `;function wl({stepData:e,appearance:t,classPrefix:o=""}){return e.videoUri?bl.createElement(Ve,{appearance:t,videoUri:e.videoUri}):e.imageUri?bl.createElement(pc,{className:l(`${o}image`,t),appearance:t,src:e.imageUri}):null}var cc=({flowId:e,onDismiss:t,customVariables:o,onButtonClick:i,appearance:r,className:n,style:s,dismissible:p=!0,modalPosition:c})=>{let{getFlow:a,markFlowCompleted:g,markStepCompleted:d,isLoading:x,targetingLogicShouldHideFlow:S,updateCustomVariables:w,getFlowSteps:P,getFlowStatus:f,getCurrentStepIndex:E}=Y(),{primaryCTAClickSideEffects:b,secondaryCTAClickSideEffects:y}=ie(),{mergeAppearanceWithDefault:A}=Q(),{setOpenFlowState:h,getOpenFlowState:m,hasOpenModals:B}=Te(),[T,F]=[m(e,!0),M=>h(e,M)];if(r=A(r),dc(()=>{w(o)},[o,x]),x)return null;let O=a(e);if(!O||S(O)||f(e)===q||B())return null;let I=P(e)[E(e)],$=()=>{F(!1),t&&t(),g(e)};function D(){return be.createElement(be.Fragment,null,be.createElement(oe,{appearance:r}),be.createElement(fl,{appearance:r,className:xe(l("announcementContainer",r),n),style:s},(p===!0||I.dismissible)&&c=="inline"&&be.createElement(Cl,{onClick:async()=>{await g(e),t&&t()},className:l("announcementDismissButton",r)},be.createElement(Fe,null)),be.createElement(gl,null,be.createElement(yl,{appearance:r,className:l("announcementTitle",r),dangerouslySetInnerHTML:le(I.title)}),I.subtitle&&be.createElement(Sl,{appearance:r,className:l("announcementSubtitle",r),dangerouslySetInnerHTML:le(I.subtitle)})),(I.imageUri||I.videoUri)&&be.createElement(hl,{className:l("announcementMediaContainer",r)},be.createElement(wl,{appearance:r,stepData:I})),(I.primaryButtonTitle||I.secondaryButtonTitle)&&be.createElement(xl,{className:l("announcementCTAContainer",r)},I.secondaryButtonTitle&&be.createElement(Z,{classPrefix:"announcement",title:I.secondaryButtonTitle,appearance:r,withMargin:!1,size:"small",type:"full-width",onClick:async()=>{I.handleSecondaryButtonClick(),y(I),i&&i(I,E(e),"secondary")},secondary:!0}),I.primaryButtonTitle&&be.createElement(Z,{classPrefix:"announcement",title:I.primaryButtonTitle,appearance:r,withMargin:!1,size:"small",type:"full-width",onClick:async()=>{I.handlePrimaryButtonClick(),b(I),!(i&&i(I,E(e),"primary")===!1)&&(await d(e,I.id),await g(e))}}))))}let ee={padding:"24px",maxWidth:"400px"};return c==="inline"?D():c!=="center"?be.createElement(bo,{modalPosition:c,onClose:$,visible:T,dismissible:p,appearance:r},D()):be.createElement(He,{appearance:r,onClose:$,visible:T,style:ee,dismissible:p},D())};import*as Ko from"react";import Tl from"react";var Fl=({as:e="span",children:t,variant:o="Body1",...i})=>Tl.createElement(qi,{color:"neutral.foreground",fontFamily:"default",forwardedAs:e,variant:o,...i},t),mc=Object.fromEntries(Object.keys(Lo).map(e=>{let t=["H1","H2","H3","H4"].includes(e)?e.toLowerCase():void 0,o=i=>Tl.createElement(Fl,{as:t,...i,variant:e},i.children);return o.displayName=`Text.${e}`,[e,o]})),Ir=Object.assign(Fl,mc);var kl=({as:e="button",className:t,size:o="md",title:i,variant:r="Primary",...n})=>{var s;return Ko.createElement(Ki,{className:`fr-button-${r.toLowerCase()}${t?` ${t}`:""}`,forwardedAs:e,variant:r,size:o,borderRadius:"md",...n},Ko.createElement(Ir,{color:(s=so[r])==null?void 0:s.color,fontWeight:"semibold"},i))},uc=Object.fromEntries(Object.keys(so).map(e=>{let t=o=>Ko.createElement(kl,{...o,variant:e});return t.displayName=`Button.${e}`,[e,t]})),fc=Object.assign(kl,uc);export{no as Box,fc as Button,Qe as CheckBox,lt as FormLabel,or as FormTextField,cc as FrigadeAnnouncement,ic as FrigadeBanner,Fr as FrigadeChecklist,Je as FrigadeDefaultAppearance,oc as FrigadeEmbeddedTip,Mi as FrigadeForm,Dd as FrigadeGuide,Nd as FrigadeHeroChecklist,lc as FrigadeNPSSurvey,Od as FrigadeProgressBadge,Wp as FrigadeProvider,ec as FrigadeSupportWidget,Xd as FrigadeTour,Ot as ProgressRing,Ir as Text,gr as tokens,Te as useFlowOpens,qt as useFlowResponses,Y as useFlows,mr as useOrganization,Yt as useUser,Ee as useUserFlowStates};
1748
1748
  //# sourceMappingURL=index.mjs.map