@frigade/react 1.33.7 → 1.33.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.js +3 -2
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +3 -2
- package/lib/index.mjs.map +1 -1
- package/package.json +1 -1
package/lib/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import ht,{createContext as Ap,useEffect as vo,useState as Ae}from"react";import{ThemeProvider as Ip}from"styled-components";import xt,{useContext as rp,useEffect as ko,useState as lr}from"react";import{useCallback as ut,useContext as kl,useEffect as Pl}from"react";import Wo,{useMemo as vr}from"react";var Pr="1.33.7 ";var Be="NOT_STARTED_STEP",Q="COMPLETED_FLOW",ao="ABORTED_FLOW",mt="STARTED_FLOW",Ie="NOT_STARTED_FLOW",Ne="COMPLETED_STEP",po="STARTED_STEP";function Me(){let{publicApiKey:e,userId:t,apiUrl:o}=Wo.useContext(j);return{config:vr(()=>({headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Frigade-SDK-Version":Pr,"X-Frigade-SDK-Platform":"React"}}),[e,t]),apiUrl:vr(()=>`${o}/v1/public/`,[o])}}var ul="frigade-last-call-at-",fl="frigade-last-call-data-";function Ft(){let{shouldGracefullyDegrade:e,readonly:t}=Wo.useContext(j);return async(o,i)=>{if(t&&(i.method==="POST"||i.method==="PUT"||i.method==="DELETE"))return Tt();if(e)return console.log(`Skipping ${o} call to Frigade due to error`),Tt();let r=ul+o,n=fl+o;if(window&&window.localStorage&&i&&i.body&&i.method==="POST"){let p=window.localStorage.getItem(r),d=window.localStorage.getItem(n);if(p&&d&&d==i.body){let a=new Date(p);if(new Date().getTime()-a.getTime()<1e3)return Tt()}window.localStorage.setItem(r,new Date().toISOString()),window.localStorage.setItem(n,i.body)}let s;try{s=await fetch(o,i)}catch(p){return Tt(p)}return s?s.ok?s:Tt(s.statusText):Tt()}}function Tt(e){return e&&console.log("Call to Frigade failed",e),{json:()=>({})}}function kt(){let{publicApiKey:e,shouldGracefullyDegrade:t}=Wo.useContext(j);function o(){if(t){console.error("Frigade hooks cannot be used when Frigade SDK has failed to initialize");return}e||console.error("Frigade hooks cannot be used outside the scope of FrigadeProvider")}return{verifySDKInitiated:o}}import{useContext as wl,useState as Br}from"react";import{useContext as xl,useEffect as hl,useState as Cl}from"react";import yl from"swr";import{useContext as gl}from"react";function Fe(){let{openFlowStates:e,setOpenFlowStates:t,hasActiveFullPageFlow:o,setCompletedFlowsToKeepOpenDuringSession:i,completedFlowsToKeepOpenDuringSession:r}=gl(j);function n(c,g=!1){return e[c]??g}function s(c,g){t(S=>({...S,[c]:g}))}function p(c){t(g=>{let{[c]:S,...T}=g;return{...T}})}function d(c){r.includes(c)||i(g=>[...g,c])}function a(c){return r.includes(c)}function C(c){return Object.entries(e).some(([g,S])=>S&&g!=c)||o}return{getOpenFlowState:n,setOpenFlowState:s,resetOpenFlowState:p,hasOpenModals:C,setKeepCompletedFlowOpenDuringSession:d,shouldKeepCompletedFlowOpenDuringSession:a}}import Sl from"swr/immutable";var bl="unknown";function Ee(){let{config:e,apiUrl:t}=Me(),{publicApiKey:o,userId:i,organizationId:r,flows:n,setShouldGracefullyDegrade:s,readonly:p}=xl(j),{resetOpenFlowState:d}=Fe(),[a,C]=Cl(!1),c={data:n.map(y=>({flowId:y.id,flowState:Q,lastStepId:null,userId:i,foreignUserId:i,stepStates:{},shouldTrigger:!1}))},g=y=>fetch(y,e).then(E=>{if(E.ok)return E.json();throw new Error("Failed to fetch user flow states")}).catch(E=>(console.log(`Error fetching ${y}: ${E}. Will gracefully degrade and hide Frigade`),s(!0),c)),S=o&&n&&i?`${t}userFlowStates?foreignUserId=${encodeURIComponent(i)}${r?`&foreignUserGroupId=${encodeURIComponent(r)}`:""}`:null,{data:T,isLoading:k,mutate:u,error:v}=p?Sl(S,g):yl(S,g,{revalidateOnFocus:!0,revalidateIfStale:!0,keepPreviousData:!0,revalidateOnMount:!0,errorRetryInterval:1e4,errorRetryCount:3,onError:()=>c,onLoadingSlow:()=>c}),x=T==null?void 0:T.data;hl(()=>{!a&&!k&&x&&C(!0)},[x,a,k]);async function F(y){if(x&&!p){let E=x.find(L=>L.flowId===y);E&&E.flowState!==Q&&(E.flowState=Q),await u(Promise.resolve({...T,data:x}),{optimisticData:{...T,data:x},revalidate:!1,rollbackOnError:!1})}}async function N(y,E,L){if(x){let I=x.find($=>$.flowId===y);I&&(I.stepStates[E]=L,I.flowState=mt),await u(Promise.resolve({...T,data:x}),{optimisticData:{...T,data:x},revalidate:!1,rollbackOnError:!1})}}async function h(y,E,L){if(x){let I=x.find($=>$.flowId===y);I&&(I.lastStepId=E,I.stepStates[E]=L,I.flowState=mt),await u({...T,data:x},{optimisticData:{...T,data:x},revalidate:!1,rollbackOnError:!1})}}async function m(y){if(x){let E=x.find(L=>L.flowId===y);E&&E.flowState!==Ie&&(E.flowState=Ie,E.lastStepId=bl,Object.keys(E.stepStates).forEach(L=>{E.stepStates[L].actionType=Be,E.stepStates[L].createdAt=new Date().toISOString()}),await u({...T,data:x},{optimisticData:{...T,data:x},revalidate:!1,rollbackOnError:!1}),d(y))}}async function w(y,E){if(x){let L=x.find(I=>I.flowId===y);L&&L.stepStates[E]!==Be&&(L.stepStates[E]=Be),await u({...T,data:x},{optimisticData:{...T,data:x},revalidate:!1,rollbackOnError:!1})}}return{userFlowStatesData:x,isLoadingUserFlowStateData:!a,mutateUserFlowState:u,optimisticallyMarkFlowCompleted:F,optimisticallyMarkFlowNotStarted:m,optimisticallyMarkStepCompleted:N,optimisticallyMarkStepNotStarted:w,optimisticallyMarkStepStarted:h,error:v}}function Ht(){let{config:e,apiUrl:t}=Me(),{userFlowStatesData:o,mutateUserFlowState:i}=Ee(),{failedFlowResponses:r,setFailedFlowResponses:n,flowResponses:s,setFlowResponses:p}=wl(j),[d,a]=Br(new Set),[C,c]=Br(new Set),g=Ft();function S(u){let v=JSON.stringify(u);if(d.has(v))return null;d.add(v),a(d),C.add(u),c(C);let x=s==null?void 0:s.find(F=>F.flowSlug===u.flowSlug&&F.stepId===u.stepId&&F.actionType===u.actionType&&F.createdAt===u.createdAt);return g(`${t}flowResponses`,{...e,method:"POST",body:v}).then(F=>{F.status!==200&&F.status!==201?(console.log("Failed to send flow response for step "+u.stepId+". Will retry again later."),n([...r,u])):x||p(N=>[...N??[],u])})}async function T(u){u.foreignUserId&&(u.actionType===mt||u.actionType===Ie?await S(u):u.actionType===Q?await S(u):u.actionType===po?await S(u):u.actionType===Ne?await S(u):u.actionType===ao?await S(u):u.actionType===Be&&await S(u))}function k(){let u=[];return o==null||o.forEach(v=>{if(v&&v.stepStates&&Object.keys(v.stepStates).length!==0)for(let x in v.stepStates){let F=v.stepStates[x];u.push({foreignUserId:v.foreignUserId,flowSlug:v.flowId,stepId:F.stepId,actionType:F.actionType,data:{},createdAt:new Date(F.createdAt),blocked:F.blocked,hidden:F.hidden})}}),[...u,...s]}return{addResponse:T,setFlowResponses:p,getFlowResponses:k}}import vl from"swr";var Tl=/user.flow\(([^\)]+)\) == '?COMPLETED_FLOW'?/gm,Er=e=>{let t=Tl.exec(e);if(t===null)return null;let o=null;return t.forEach((i,r)=>{let n=Fl(i,"'","");n.startsWith("flow_")&&(o=n)}),o},Fl=function(e,t,o){return e.replace(new RegExp(t,"g"),o)};function Z(){let{config:e,apiUrl:t}=Me(),{flows:o,setFlows:i,userId:r,publicApiKey:n,customVariables:s,setCustomVariables:p,hasActiveFullPageFlow:d,setHasActiveFullPageFlow:a,setFlowResponses:C,setShouldGracefullyDegrade:c,readonly:g}=kl(j),S={data:[]},{verifySDKInitiated:T}=kt(),{addResponse:k,getFlowResponses:u}=Ht(),v=f=>fetch(f,e).then(b=>b.ok?b.json():(console.log(`Error fetching ${f} (${b.status}): ${b.statusText}. .Will gracefully degrade and hide Frigade`),c(!0),S)).catch(b=>(console.log(`Error fetching ${f}: ${b}. Will gracefully degrade and hide Frigade`),c(!0),S)),{userFlowStatesData:x,isLoadingUserFlowStateData:F,optimisticallyMarkFlowCompleted:N,optimisticallyMarkFlowNotStarted:h,optimisticallyMarkStepCompleted:m,optimisticallyMarkStepNotStarted:w,optimisticallyMarkStepStarted:y}=Ee(),{data:E,error:L,isLoading:I}=vl(n?`${t}flows${g?"?readonly=true":""}`:null,v,{keepPreviousData:!0});Pl(()=>{if(L){console.error(L);return}E&&E.data&&i(E.data)},[E,L]);function $(f){if(I)return null;let b=o.find(B=>B.slug===f);return!b&&o.length>0&&!F&&!I?(console.log(`Flow with slug ${f} not found`),null):(b==null?void 0:b.active)===!1?null:b}function O(f){var A;if(!$(f))return[];let b=$(f).data;return b?(b=H(b),(((A=JSON.parse(b))==null?void 0:A.data)??[]).map(J=>{let ct=je(J);return{handleSecondaryButtonClick:()=>{J.skippable===!0&&le(f,J.id,{skipped:!0})},...J,complete:de(f,J.id)===Ne||ct>=1,blocked:z(f,J.id),hidden:D(f,J.id),handlePrimaryButtonClick:()=>{(!J.completionCriteria&&(J.autoMarkCompleted||J.autoMarkCompleted===void 0)||J.completionCriteria&&J.autoMarkCompleted===!0)&&le(f,J.id)},progress:ct}}).filter(J=>J.hidden!==!0)):[]}function H(f){return f.replaceAll(/\${(.*?)}/g,(b,B)=>s[B]===void 0?"":String(s[B]).replace(/[\u00A0-\u9999<>\&]/g,function(A){return"&#"+A.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 _(f){if(!$(f))return[];let b=$(f).data;return b?(b=H(b),JSON.parse(b)??{}):[]}function oe(f,b){p(B=>({...B,[f]:b}))}function R(f){!F&&!I&&f&&JSON.stringify(s)!=JSON.stringify({...s,...f})&&Object.keys(f).forEach(b=>{oe(b,f[b])})}let K=ut(async(f,b,B)=>{T();let A={foreignUserId:r,flowSlug:f,stepId:b,actionType:po,data:B??{},createdAt:new Date,blocked:!1,hidden:!1};q(A)&&(await y(f,b,A),k(A))},[r,x]),ee=ut(async(f,b,B)=>{T();let A={foreignUserId:r,flowSlug:f,stepId:b,actionType:Be,data:B??{},createdAt:new Date,blocked:!1,hidden:!1};q(A)&&(await w(f,b),k(A))},[r,x]),le=ut(async(f,b,B)=>{T();let A={foreignUserId:r,flowSlug:f,stepId:b,actionType:Ne,data:B??{},createdAt:new Date,blocked:!1,hidden:!1};q(A)&&(await m(f,b,A),k(A))},[r,x]),X=ut(async(f,b)=>{if(T(),De(f)===Ie)return;let B={foreignUserId:r,flowSlug:f,stepId:"unknown",actionType:Ie,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};await h(f),q(B)&&k(B)},[r,x]),G=ut(async(f,b)=>{T();let B={foreignUserId:r,flowSlug:f,stepId:"unknown",actionType:mt,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};q(B)&&k(B)},[r,x]),xe=ut(async(f,b)=>{T();let B={foreignUserId:r,flowSlug:f,stepId:"unknown",actionType:Q,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};q(B)&&(await N(f),k(B))},[r,x]),Te=ut(async(f,b)=>{T();let B={foreignUserId:r,flowSlug:f,stepId:"unknown",actionType:ao,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};q(B)&&(await N(f),k(B))},[r,x]);function q(f){var b;if(!x&&f.actionType===Be)return!1;if(x){let B=x.find(A=>A.flowId===f.flowSlug);if(f.actionType===Be&&(!(B!=null&&B.stepStates[f.stepId])||B.stepStates[f.stepId].actionType===Be)||B&&((b=B.stepStates[f.stepId])==null?void 0:b.actionType)===f.actionType||B&&B.flowState===Q&&f.actionType===Q)return!1}return!0}function de(f,b){let B=re(f,b);return F?null:B?B.actionType:Be}function z(f,b){let B=re(f,b);return B?B.blocked:!1}function D(f,b){let B=re(f,b);return B?B.hidden:!1}function re(f,b){if(F)return null;let B=x==null?void 0:x.find(A=>A.flowId===f);return!B||!B.stepStates[b]?null:B.stepStates[b]??null}function V(f){var B;if(F||!x)return null;if(De(f)===Ie)return O(f)[0]??null;let b=(B=x.find(A=>A.flowId===f))==null?void 0:B.lastStepId;return b?O(f).find(A=>A.id===b):null}function ie(f){let b=V(f);if(!b)return 0;let B=O(f).findIndex(A=>A.id===b.id)??0;return de(f,b.id)===Ne&&B<O(f).length-1?B+1:B}function je(f){if(!f.completionCriteria)return;let b=Er(f.completionCriteria);if(b===null)return;let B=dt(b),A=W(b);return A===0?void 0:B/A}function De(f){let b=x==null?void 0:x.find(B=>B.flowId===f);return b?b.flowState:null}function dt(f){let b=O(f);return b.length===0?0:b.filter(A=>de(f,A.id)===Ne).length}function W(f){return O(f).length}function ve(f){let b=o.find(B=>B.slug===f);return b?JSON.parse(b.data):null}function $e(f){if(g)return!1;if(F)return!0;if(f!=null&&f.targetingLogic&&x){let b=x.find(B=>B.flowId===f.slug);if(b)return b.shouldTrigger===!1}return!!(f!=null&&f.targetingLogic&&r&&r.startsWith("guest_"))}function _o(f){return!$e($(f))}return{getFlow:$,getFlowData:ve,isLoading:F||I,getStepStatus:de,getFlowSteps:O,getCurrentStepIndex:ie,markStepStarted:K,markStepCompleted:le,markFlowNotStarted:X,markFlowStarted:G,markFlowCompleted:xe,markFlowAborted:Te,markStepNotStarted:ee,getFlowStatus:De,getNumberOfStepsCompleted:dt,getNumberOfSteps:W,targetingLogicShouldHideFlow:$e,setCustomVariable:oe,updateCustomVariables:R,customVariables:s,getStepOptionalProgress:je,getFlowMetadata:_,isStepBlocked:z,isStepHidden:D,hasActiveFullPageFlow:d,setHasActiveFullPageFlow:a,isFlowAvailableToUser:_o}}import{useCallback as Ar,useContext as Bl,useEffect as El}from"react";var Pt="guest_";function Vt(){let{userId:e,organizationId:t,setUserId:o,setUserProperties:i,shouldGracefullyDegrade:r}=Bl(j),{config:n,apiUrl:s}=Me(),{mutateUserFlowState:p}=Ee(),d=Ft(),{verifySDKInitiated:a}=kt();El(()=>{if(e&&!t){if(e.startsWith(Pt))return;let g=`frigade-user-registered-${e}`;localStorage.getItem(g)||(d(`${s}users`,{...n,method:"POST",body:JSON.stringify({foreignId:e})}),localStorage.setItem(g,"true"))}},[e,r,t]);let C=Ar(async g=>{a();let S={foreignId:e,properties:g};await d(`${s}users`,{...n,method:"POST",body:JSON.stringify(S)}),i(T=>({...T,...g})),p()},[e,n,r,p]),c=Ar(async(g,S)=>{a();let k={foreignId:e,events:[{event:g,properties:S}]};await d(`${s}users`,{...n,method:"POST",body:JSON.stringify(k)}),p()},[e,n,p]);return{userId:e,setUserId:o,addPropertiesToUser:C,trackEventForUser:c}}import{v4 as ip}from"uuid";import ze,{useEffect as Ra,useState as ep}from"react";import Le,{useEffect as $l}from"react";import uo from"styled-components";import Al from"react";import Il from"styled-components";var Ir="fr-",jt="cfr-";function l(e,t){let o=`${Ir}${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+" "+jt+e}return o}function P(e){if(!e.className||e.className.indexOf(jt)!==-1)return"";let o=e.className.replace(/\s+/g," ").split(" ");return o.length==1&&o[0].startsWith(Ir)?"":`:not(${o.map(i=>`.${i}`).join(", ")})`}function Ho(e){return e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function Ge(e){return e!=null&&e.styleOverrides?Object.keys(e.styleOverrides).map(t=>`${Ho(t)}: ${e.styleOverrides[t]};`).join(" "):""}function Ce(...e){return e.filter(Boolean).join(" ")}function Gt(e){return e.charAt(0).toUpperCase()+e.slice(1)}var Nl=Il.div`
|
|
2
|
+
import ht,{createContext as Ap,useEffect as vo,useState as Ae}from"react";import{ThemeProvider as Ip}from"styled-components";import xt,{useContext as rp,useEffect as ko,useState as lr}from"react";import{useCallback as ut,useContext as kl,useEffect as Pl}from"react";import Wo,{useMemo as vr}from"react";var Pr="1.33.9 ";var Be="NOT_STARTED_STEP",Q="COMPLETED_FLOW",ao="ABORTED_FLOW",mt="STARTED_FLOW",Ie="NOT_STARTED_FLOW",Ne="COMPLETED_STEP",po="STARTED_STEP";function Me(){let{publicApiKey:e,userId:t,apiUrl:o}=Wo.useContext(j);return{config:vr(()=>({headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Frigade-SDK-Version":Pr,"X-Frigade-SDK-Platform":"React"}}),[e,t]),apiUrl:vr(()=>`${o}/v1/public/`,[o])}}var ul="frigade-last-call-at-",fl="frigade-last-call-data-";function Ft(){let{shouldGracefullyDegrade:e,readonly:t}=Wo.useContext(j);return async(o,i)=>{if(t&&(i.method==="POST"||i.method==="PUT"||i.method==="DELETE"))return Tt();if(e)return console.log(`Skipping ${o} call to Frigade due to error`),Tt();let r=ul+o,n=fl+o;if(window&&window.localStorage&&i&&i.body&&i.method==="POST"){let p=window.localStorage.getItem(r),d=window.localStorage.getItem(n);if(p&&d&&d==i.body){let a=new Date(p);if(new Date().getTime()-a.getTime()<1e3)return Tt()}window.localStorage.setItem(r,new Date().toISOString()),window.localStorage.setItem(n,i.body)}let s;try{s=await fetch(o,i)}catch(p){return Tt(p)}return s?s.ok?s:Tt(s.statusText):Tt()}}function Tt(e){return e&&console.log("Call to Frigade failed",e),{json:()=>({})}}function kt(){let{publicApiKey:e,shouldGracefullyDegrade:t}=Wo.useContext(j);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 wl,useState as Br}from"react";import{useContext as xl,useEffect as hl,useState as Cl}from"react";import yl from"swr";import{useContext as gl}from"react";function Fe(){let{openFlowStates:e,setOpenFlowStates:t,hasActiveFullPageFlow:o,setCompletedFlowsToKeepOpenDuringSession:i,completedFlowsToKeepOpenDuringSession:r}=gl(j);function n(c,g=!1){return e[c]??g}function s(c,g){t(S=>({...S,[c]:g}))}function p(c){t(g=>{let{[c]:S,...T}=g;return{...T}})}function d(c){r.includes(c)||i(g=>[...g,c])}function a(c){return r.includes(c)}function C(c){return Object.entries(e).some(([g,S])=>S&&g!=c)||o}return{getOpenFlowState:n,setOpenFlowState:s,resetOpenFlowState:p,hasOpenModals:C,setKeepCompletedFlowOpenDuringSession:d,shouldKeepCompletedFlowOpenDuringSession:a}}import Sl from"swr/immutable";var bl="unknown";function Ee(){let{config:e,apiUrl:t}=Me(),{publicApiKey:o,userId:i,organizationId:r,flows:n,setShouldGracefullyDegrade:s,readonly:p}=xl(j),{resetOpenFlowState:d}=Fe(),[a,C]=Cl(!1),c={data:n.map(y=>({flowId:y.id,flowState:Q,lastStepId:null,userId:i,foreignUserId:i,stepStates:{},shouldTrigger:!1}))},g=y=>fetch(y,e).then(E=>{if(E.ok)return E.json();throw new Error("Failed to fetch user flow states")}).catch(E=>(console.log(`Error fetching ${y}: ${E}. Will gracefully degrade and hide Frigade`),s(!0),c)),S=o&&n&&i?`${t}userFlowStates?foreignUserId=${encodeURIComponent(i)}${r?`&foreignUserGroupId=${encodeURIComponent(r)}`:""}`:null,{data:T,isLoading:k,mutate:u,error:v}=p?Sl(S,g):yl(S,g,{revalidateOnFocus:!0,revalidateIfStale:!0,keepPreviousData:!0,revalidateOnMount:!0,errorRetryInterval:1e4,errorRetryCount:3,onError:()=>c,onLoadingSlow:()=>c}),x=T==null?void 0:T.data;hl(()=>{!a&&!k&&x&&C(!0)},[x,a,k]);async function F(y){if(x&&!p){let E=x.find(L=>L.flowId===y);E&&E.flowState!==Q&&(E.flowState=Q),await u(Promise.resolve({...T,data:x}),{optimisticData:{...T,data:x},revalidate:!1,rollbackOnError:!1})}}async function N(y,E,L){if(x){let I=x.find($=>$.flowId===y);I&&(I.stepStates[E]=L,I.flowState=mt),await u(Promise.resolve({...T,data:x}),{optimisticData:{...T,data:x},revalidate:!1,rollbackOnError:!1})}}async function h(y,E,L){if(x){let I=x.find($=>$.flowId===y);I&&(I.lastStepId=E,I.stepStates[E]=L,I.flowState=mt),await u({...T,data:x},{optimisticData:{...T,data:x},revalidate:!1,rollbackOnError:!1})}}async function m(y){if(x){let E=x.find(L=>L.flowId===y);E&&E.flowState!==Ie&&(E.flowState=Ie,E.lastStepId=bl,Object.keys(E.stepStates).forEach(L=>{E.stepStates[L].actionType=Be,E.stepStates[L].createdAt=new Date().toISOString()}),await u({...T,data:x},{optimisticData:{...T,data:x},revalidate:!1,rollbackOnError:!1}),d(y))}}async function w(y,E){if(x){let L=x.find(I=>I.flowId===y);L&&L.stepStates[E]!==Be&&(L.stepStates[E]=Be),await u({...T,data:x},{optimisticData:{...T,data:x},revalidate:!1,rollbackOnError:!1})}}return{userFlowStatesData:x,isLoadingUserFlowStateData:!a,mutateUserFlowState:u,optimisticallyMarkFlowCompleted:F,optimisticallyMarkFlowNotStarted:m,optimisticallyMarkStepCompleted:N,optimisticallyMarkStepNotStarted:w,optimisticallyMarkStepStarted:h,error:v}}function Ht(){let{config:e,apiUrl:t}=Me(),{userFlowStatesData:o,mutateUserFlowState:i}=Ee(),{failedFlowResponses:r,setFailedFlowResponses:n,flowResponses:s,setFlowResponses:p}=wl(j),[d,a]=Br(new Set),[C,c]=Br(new Set),g=Ft();function S(u){let v=JSON.stringify(u);if(d.has(v))return null;d.add(v),a(d),C.add(u),c(C);let x=s==null?void 0:s.find(F=>F.flowSlug===u.flowSlug&&F.stepId===u.stepId&&F.actionType===u.actionType&&F.createdAt===u.createdAt);return g(`${t}flowResponses`,{...e,method:"POST",body:v}).then(F=>{F.status!==200&&F.status!==201?(console.log("Failed to send flow response for step "+u.stepId+". Will retry again later."),n([...r,u])):x||p(N=>[...N??[],u])})}async function T(u){u.foreignUserId&&(u.actionType===mt||u.actionType===Ie?await S(u):u.actionType===Q?await S(u):u.actionType===po?await S(u):u.actionType===Ne?await S(u):u.actionType===ao?await S(u):u.actionType===Be&&await S(u))}function k(){let u=[];return o==null||o.forEach(v=>{if(v&&v.stepStates&&Object.keys(v.stepStates).length!==0)for(let x in v.stepStates){let F=v.stepStates[x];u.push({foreignUserId:v.foreignUserId,flowSlug:v.flowId,stepId:F.stepId,actionType:F.actionType,data:{},createdAt:new Date(F.createdAt),blocked:F.blocked,hidden:F.hidden})}}),[...u,...s]}return{addResponse:T,setFlowResponses:p,getFlowResponses:k}}import vl from"swr";var Tl=/user.flow\(([^\)]+)\) == '?COMPLETED_FLOW'?/gm,Er=e=>{let t=Tl.exec(e);if(t===null)return null;let o=null;return t.forEach((i,r)=>{let n=Fl(i,"'","");n.startsWith("flow_")&&(o=n)}),o},Fl=function(e,t,o){return e.replace(new RegExp(t,"g"),o)};function Z(){let{config:e,apiUrl:t}=Me(),{flows:o,setFlows:i,userId:r,publicApiKey:n,customVariables:s,setCustomVariables:p,hasActiveFullPageFlow:d,setHasActiveFullPageFlow:a,setFlowResponses:C,setShouldGracefullyDegrade:c,readonly:g}=kl(j),S={data:[]},{verifySDKInitiated:T}=kt(),{addResponse:k,getFlowResponses:u}=Ht(),v=f=>fetch(f,e).then(b=>b.ok?b.json():(console.log(`Error fetching ${f} (${b.status}): ${b.statusText}. .Will gracefully degrade and hide Frigade`),c(!0),S)).catch(b=>(console.log(`Error fetching ${f}: ${b}. Will gracefully degrade and hide Frigade`),c(!0),S)),{userFlowStatesData:x,isLoadingUserFlowStateData:F,optimisticallyMarkFlowCompleted:N,optimisticallyMarkFlowNotStarted:h,optimisticallyMarkStepCompleted:m,optimisticallyMarkStepNotStarted:w,optimisticallyMarkStepStarted:y}=Ee(),{data:E,error:L,isLoading:I}=vl(n?`${t}flows${g?"?readonly=true":""}`:null,v,{keepPreviousData:!0});Pl(()=>{if(L){console.error(L);return}E&&E.data&&i(E.data)},[E,L]);function $(f){if(I)return null;let b=o.find(B=>B.slug===f);return!b&&o.length>0&&!F&&!I?(console.log(`Flow with slug ${f} not found`),null):(b==null?void 0:b.active)===!1?null:b}function O(f){var A;if(!$(f))return[];let b=$(f).data;return b?(b=H(b),(((A=JSON.parse(b))==null?void 0:A.data)??[]).map(J=>{let ct=je(J);return{handleSecondaryButtonClick:()=>{J.skippable===!0&&le(f,J.id,{skipped:!0})},...J,complete:de(f,J.id)===Ne||ct>=1,blocked:z(f,J.id),hidden:D(f,J.id),handlePrimaryButtonClick:()=>{(!J.completionCriteria&&(J.autoMarkCompleted||J.autoMarkCompleted===void 0)||J.completionCriteria&&J.autoMarkCompleted===!0)&&le(f,J.id)},progress:ct}}).filter(J=>J.hidden!==!0)):[]}function H(f){return f.replaceAll(/\${(.*?)}/g,(b,B)=>s[B]===void 0?"":String(s[B]).replace(/[\u00A0-\u9999<>\&]/g,function(A){return"&#"+A.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 _(f){if(!$(f))return[];let b=$(f).data;return b?(b=H(b),JSON.parse(b)??{}):[]}function oe(f,b){p(B=>({...B,[f]:b}))}function R(f){!F&&!I&&f&&JSON.stringify(s)!=JSON.stringify({...s,...f})&&Object.keys(f).forEach(b=>{oe(b,f[b])})}let K=ut(async(f,b,B)=>{if(!T())return;let A={foreignUserId:r,flowSlug:f,stepId:b,actionType:po,data:B??{},createdAt:new Date,blocked:!1,hidden:!1};q(A)&&(await y(f,b,A),k(A))},[r,x]),ee=ut(async(f,b,B)=>{if(!T())return;let A={foreignUserId:r,flowSlug:f,stepId:b,actionType:Be,data:B??{},createdAt:new Date,blocked:!1,hidden:!1};q(A)&&(await w(f,b),k(A))},[r,x]),le=ut(async(f,b,B)=>{if(!T())return;let A={foreignUserId:r,flowSlug:f,stepId:b,actionType:Ne,data:B??{},createdAt:new Date,blocked:!1,hidden:!1};q(A)&&(await m(f,b,A),k(A))},[r,x]),X=ut(async(f,b)=>{if(!T()||De(f)===Ie)return;let B={foreignUserId:r,flowSlug:f,stepId:"unknown",actionType:Ie,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};await h(f),q(B)&&k(B)},[r,x]),G=ut(async(f,b)=>{if(!T())return;let B={foreignUserId:r,flowSlug:f,stepId:"unknown",actionType:mt,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};q(B)&&k(B)},[r,x]),xe=ut(async(f,b)=>{if(!T())return;let B={foreignUserId:r,flowSlug:f,stepId:"unknown",actionType:Q,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};q(B)&&(await N(f),k(B))},[r,x]),Te=ut(async(f,b)=>{if(!T())return;let B={foreignUserId:r,flowSlug:f,stepId:"unknown",actionType:ao,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};q(B)&&(await N(f),k(B))},[r,x]);function q(f){var b;if(!x&&f.actionType===Be)return!1;if(x){let B=x.find(A=>A.flowId===f.flowSlug);if(f.actionType===Be&&(!(B!=null&&B.stepStates[f.stepId])||B.stepStates[f.stepId].actionType===Be)||B&&((b=B.stepStates[f.stepId])==null?void 0:b.actionType)===f.actionType||B&&B.flowState===Q&&f.actionType===Q)return!1}return!0}function de(f,b){let B=re(f,b);return F?null:B?B.actionType:Be}function z(f,b){let B=re(f,b);return B?B.blocked:!1}function D(f,b){let B=re(f,b);return B?B.hidden:!1}function re(f,b){if(F)return null;let B=x==null?void 0:x.find(A=>A.flowId===f);return!B||!B.stepStates[b]?null:B.stepStates[b]??null}function V(f){var B;if(F||!x)return null;if(De(f)===Ie)return O(f)[0]??null;let b=(B=x.find(A=>A.flowId===f))==null?void 0:B.lastStepId;return b?O(f).find(A=>A.id===b):null}function ie(f){let b=V(f);if(!b)return 0;let B=O(f).findIndex(A=>A.id===b.id)??0;return de(f,b.id)===Ne&&B<O(f).length-1?B+1:B}function je(f){if(!f.completionCriteria)return;let b=Er(f.completionCriteria);if(b===null)return;let B=dt(b),A=W(b);return A===0?void 0:B/A}function De(f){let b=x==null?void 0:x.find(B=>B.flowId===f);return b?b.flowState:null}function dt(f){let b=O(f);return b.length===0?0:b.filter(A=>de(f,A.id)===Ne).length}function W(f){return O(f).length}function ve(f){let b=o.find(B=>B.slug===f);return b?JSON.parse(b.data):null}function $e(f){if(g)return!1;if(F)return!0;if(f!=null&&f.targetingLogic&&x){let b=x.find(B=>B.flowId===f.slug);if(b)return b.shouldTrigger===!1}return!!(f!=null&&f.targetingLogic&&r&&r.startsWith("guest_"))}function _o(f){return!$e($(f))}return{getFlow:$,getFlowData:ve,isLoading:F||I,getStepStatus:de,getFlowSteps:O,getCurrentStepIndex:ie,markStepStarted:K,markStepCompleted:le,markFlowNotStarted:X,markFlowStarted:G,markFlowCompleted:xe,markFlowAborted:Te,markStepNotStarted:ee,getFlowStatus:De,getNumberOfStepsCompleted:dt,getNumberOfSteps:W,targetingLogicShouldHideFlow:$e,setCustomVariable:oe,updateCustomVariables:R,customVariables:s,getStepOptionalProgress:je,getFlowMetadata:_,isStepBlocked:z,isStepHidden:D,hasActiveFullPageFlow:d,setHasActiveFullPageFlow:a,isFlowAvailableToUser:_o}}import{useCallback as Ar,useContext as Bl,useEffect as El}from"react";var Pt="guest_";function Vt(){let{userId:e,organizationId:t,setUserId:o,setUserProperties:i,shouldGracefullyDegrade:r}=Bl(j),{config:n,apiUrl:s}=Me(),{mutateUserFlowState:p}=Ee(),d=Ft(),{verifySDKInitiated:a}=kt();El(()=>{if(e&&!t){if(e.startsWith(Pt))return;let g=`frigade-user-registered-${e}`;localStorage.getItem(g)||(d(`${s}users`,{...n,method:"POST",body:JSON.stringify({foreignId:e})}),localStorage.setItem(g,"true"))}},[e,r,t]);let C=Ar(async g=>{if(!a())return;let S={foreignId:e,properties:g};await d(`${s}users`,{...n,method:"POST",body:JSON.stringify(S)}),i(T=>({...T,...g})),p()},[e,n,r,p]),c=Ar(async(g,S)=>{if(!a())return;let k={foreignId:e,events:[{event:g,properties:S}]};await d(`${s}users`,{...n,method:"POST",body:JSON.stringify(k)}),p()},[e,n,p]);return{userId:e,setUserId:o,addPropertiesToUser:C,trackEventForUser:c}}import{v4 as ip}from"uuid";import ze,{useEffect as Ra,useState as ep}from"react";import Le,{useEffect as $l}from"react";import uo from"styled-components";import Al from"react";import Il from"styled-components";var Ir="fr-",jt="cfr-";function l(e,t){let o=`${Ir}${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+" "+jt+e}return o}function P(e){if(!e.className||e.className.indexOf(jt)!==-1)return"";let o=e.className.replace(/\s+/g," ").split(" ");return o.length==1&&o[0].startsWith(Ir)?"":`:not(${o.map(i=>`.${i}`).join(", ")})`}function Ho(e){return e.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g,"$1-$2").toLowerCase()}function Ge(e){return e!=null&&e.styleOverrides?Object.keys(e.styleOverrides).map(t=>`${Ho(t)}: ${e.styleOverrides[t]};`).join(" "):""}function Ce(...e){return e.filter(Boolean).join(" ")}function Gt(e){return e.charAt(0).toUpperCase()+e.slice(1)}var Nl=Il.div`
|
|
3
3
|
display: flex;
|
|
4
4
|
justify-content: center;
|
|
5
5
|
position: fixed;
|
|
@@ -550,6 +550,7 @@ import ht,{createContext as Ap,useEffect as vo,useState as Ae}from"react";import
|
|
|
550
550
|
`,Va=wo.iframe`
|
|
551
551
|
width: 100%;
|
|
552
552
|
height: 100%;
|
|
553
|
+
min-height: 260px;
|
|
553
554
|
border-radius: ${e=>e.appearance.theme.borderRadius}px;
|
|
554
555
|
`;function st({appearance:e,videoUri:t}){let o=Ua(),[i,r]=za(!1);if(t.includes("youtube")){let n=t.split("v=")[1],s=n.indexOf("&");return s!==-1&&(n=n.substring(0,s)),Xt.createElement(Va,{width:"100%",height:"100%",src:`https://www.youtube.com/embed/${n}`,frameBorder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0,appearance:e})}return Xt.createElement(_a,{className:l("videoPlayerWrapper",e),appearance:e},!i&&Xt.createElement(Wa,{onClick:()=>{r(!0),o.current.play()},appearance:e},Xt.createElement(bo,null)),Xt.createElement(Ha,{appearance:e,controls:i,ref:o,play:i,src:t}))}var Ga=To.div`
|
|
555
556
|
${e=>P(e)} {
|
|
@@ -629,7 +630,7 @@ import ht,{createContext as Ap,useEffect as vo,useState as Ae}from"react";import
|
|
|
629
630
|
display: flex;
|
|
630
631
|
align-self: center;
|
|
631
632
|
`;var Ei=({stepData:e,setCanContinue:t,onSaveData:o,appearance:i})=>{let r=e.props,[n,s]=ir([]),[p,d]=ir(!1),[a,C]=ir(e.id);return rr(()=>{n.length==0&&!p&&(d(!0),o({choice:[]}))},[p]),rr(()=>{a!==e.id&&(C(e.id),s([]))},[e]),rr(()=>{o({choice:n}),n.length>=r.minChoices?t(!0):t(!1)},[n]),Ye.createElement(bi,{className:l("selectListContainer",i)},Ye.createElement(wi,null,Ye.createElement(Ti,{className:l("selectListTitle",i)},e.title),Ye.createElement(Fi,{appearance:i,className:l("selectListSubtitle",i)},e.subtitle)),r.options.map((c,g)=>{let S=n.includes(c.id);return Ye.createElement(ki,{key:`select-item-${g}`,onClick:()=>{if(n.includes(c.id)){s(n.filter(T=>T!==c.id));return}n.length<r.maxChoices?s([...n,c.id]):n.length==1&&r.maxChoices==1&&s([c.id])},hideBottomBorder:g===r.options.length-1,className:l("selectListSelectItem",i)},Ye.createElement(Pi,{className:l("selectListItemImage",i)},c.imageUri&&Ye.createElement(vi,{src:c.imageUri,alt:`select-icon-${g}`}),Ye.createElement(Bi,{appearance:i,className:l("selectListSelectItemText",i)},c.title)),Ye.createElement(Ke,{appearance:i,value:S,primaryColor:i.theme.colorPrimary}))}))};import Se,{useEffect as nr,useState as Jt}from"react";import{AnimatePresence as Xa,motion as Ja}from"framer-motion";var Qa=({children:e,id:t,shouldWrap:o=!1})=>Se.createElement(Se.Fragment,null,o?Se.createElement(Xa,{initial:!1},Se.createElement(Ja.div,{key:t,initial:{opacity:1,y:"100%"},animate:{opacity:1,y:0},exit:{opacity:0,y:"-100%"},transition:{duration:.5,ease:"easeInOut"},style:{width:"100%",height:"100%",position:"absolute",top:0,left:0,zIndex:1,overflowY:"auto"}},e)):e),Fo=({appearance:e,steps:t,selectedStep:o,customStepTypes:i,customVariables:r,onButtonClick:n,onStepCompletion:s,flowId:p,type:d,hideOnFlowCompletion:a,onComplete:C,setVisible:c,setShowModal:g,onDismiss:S,showPagination:T=!1,customFormElements:k,allowBackNavigation:u,validationHandler:v})=>{var z;let F={...{linkCollection:yi,multiInput:ai,callToAction:Si,selectList:Ei},...i},{primaryCTAClickSideEffects:N,secondaryCTAClickSideEffects:h}=ae(),[m,w]=Jt(!1),[y,E]=Jt({}),[L,I]=Jt(!1),[$,O]=Jt(!1),[H,_]=Jt(null),oe=t[o]??null,{markStepCompleted:R,markStepStarted:K,isLoading:ee,updateCustomVariables:le,markFlowCompleted:X}=Z();nr(()=>{le(r)},[r,ee]),nr(()=>{window&&u&&!$&&(window.location.hash=t[o].id,O(!0))},[u,$,O]),nr(()=>{var D;if(window&&((D=window==null?void 0:window.location)!=null&&D.hash)&&window.location.hash.replace("#","")!==t[o].id){let re=window.location.hash.replace("#",""),V=t.findIndex(ie=>ie.id===re);V!==-1&&K(p,t[V].id)}},[(z=window==null?void 0:window.location)==null?void 0:z.hash,K,o,t]);function G(){return{data:y[t[o].id]??{},stepId:t[o].id,customVariables:r}}function xe(D,re,V){let ie=o+1<t.length?t[o+1]:null;return s&&s(D,V,ie,y,G()),n?n(D,o,re,ie):!0}function Te(D,re){E(V=>{let ie={};return ie[D.id]=re,{...V,...ie}})}function q(D){return D.selectedStep.imageUri?Se.createElement(gi,{image:D.selectedStep.imageUri,appearance:e,className:l("formContainerSidebarImage",e)}):null}let de=Se.createElement(hi,{step:t[o],canContinue:m&&!L,formType:d,selectedStep:o,appearance:e,onPrimaryClick:async()=>{if(I(!0),v){let V=await v(t[o],o,t[o+1],y,G());if(V){_(V),I(!1);return}else _(null)}let D={...G()};await R(p,t[o].id,D),o+1<t.length&&await K(p,t[o+1].id);let re=xe(t[o],"primary",o);o+1>=t.length&&(C&&C(),S&&S(),a&&re&&(c&&c(!1),g(!1)),await X(p)),N(t[o]),I(!1),window&&u&&o+1<t.length&&(window.location.hash=t[o+1].id)},onSecondaryClick:()=>{xe(t[o],"secondary",o),h(t[o])},onBack:async()=>{o-1>=0&&(I(!0),await K(p,t[o-1].id),I(!1))},steps:t,allowBackNavigation:u,errorMessage:H});return Se.createElement(Se.Fragment,null,Se.createElement(mi,{className:l("formContainer",e)},Se.createElement(ui,null,Se.createElement(Qa,{id:o,shouldWrap:d==="large-modal"},Se.createElement(fi,{key:oe.id,type:d,className:l("formContent",e)},t.map(D=>{let re=F[D.type];return oe.id!==D.id?null:Se.createElement(re,{key:D.id,stepData:D,canContinue:m,setCanContinue:w,onSaveData:V=>{Te(D,V)},appearance:e,customFormElements:k,flowId:p})}),T&&Se.createElement(Ci,{className:l("formPagination",e),appearance:e,stepCount:t.length,currentStep:o}),de))),d=="large-modal"&&Se.createElement(q,{selectedStep:t[o]})))};import Qt from"react";import{createGlobalStyle as Za}from"styled-components";function se({appearance:e}){if(!e||!e.styleOverrides)return Qt.createElement(Qt.Fragment,null);let t=Object.entries(e.styleOverrides).filter(([i,r])=>typeof r=="object");if(t.length===0)return Qt.createElement(Qt.Fragment,null);let o=Za`
|
|
632
|
-
${i=>i.inlineStyles.map(([r,n])=>`.${jt}${r}.${jt}${r} { ${Object.entries(n).map(([s,p])=>`${Ho(s)}: ${p};`).join(" ")} }`).join(" ")}`;return Qt.createElement(o,{inlineStyles:t})}var Ai=({flowId:e,customStepTypes:t={},type:o="inline",visible:i,setVisible:r,customVariables:n,customFormElements:s,onComplete:p,appearance:d,hideOnFlowCompletion:a=!0,onStepCompletion:C,onButtonClick:c,dismissible:g=!0,endFlowOnDismiss:S=!1,modalPosition:T="center",repeatable:k=!1,onDismiss:u,showPagination:v=!1,allowBackNavigation:x=!1,validationHandler:F,showFrigadeBranding:N=!1})=>{let{getFlow:h,getFlowSteps:m,isLoading:w,targetingLogicShouldHideFlow:y,getFlowStatus:E,getCurrentStepIndex:L,markFlowCompleted:I,markFlowNotStarted:$}=Z(),O=L(e),{mergeAppearanceWithDefault:H}=te(),[_,oe]=ep(!1),{setOpenFlowState:R,getOpenFlowState:K,hasOpenModals:ee}=Fe();d=H(d);let[le,X]=i!==void 0&&r!==void 0?[i,r]:[K(e,!0),q=>R(e,q)];if(Ra(()=>{!_&&!w&&(oe(!0),E(e)===Q&&k&&$(e),oe(!0))},[_,oe,w]),w)return null;let G=h(e);if(!G||y(G))return null;let xe=m(e);if(!xe||i!==void 0&&i===!1||E(e)===Q&&a||(o=="modal"||o=="corner-modal")&&ee(e))return null;let Te=()=>{X(!1),u&&u(),S===!0&&I(e)};if(T=="center"&&o==="modal"||o==="large-modal"){let q={padding:"24px"};return o==="large-modal"?(q.width="85%",q.height="90%",q.maxHeight="800px",q.minHeight="500px",q.padding="0"):q.width="400px",ze.createElement(tt,{appearance:d,onClose:Te,visible:le,style:q,dismissible:g,showFrigadeBranding:N},ze.createElement(se,{appearance:d}),ze.createElement(Fo,{appearance:d,steps:xe,selectedStep:O,customStepTypes:t,customVariables:n,onButtonClick:c,onStepCompletion:C,flowId:e,type:o,hideOnFlowCompletion:a,onComplete:p,setVisible:r,setShowModal:X,onDismiss:u,showPagination:v,customFormElements:s,allowBackNavigation:x,validationHandler:F}))}return o==="modal"&&T!=="center"?ze.createElement(Gr,{appearance:d,onClose:Te,visible:le},ze.createElement(se,{appearance:d}),ze.createElement(Fo,{appearance:d,steps:xe,selectedStep:O,customStepTypes:t,customVariables:n,onButtonClick:c,onStepCompletion:C,flowId:e,type:o,hideOnFlowCompletion:a,onComplete:p,setVisible:r,setShowModal:X,onDismiss:u,showPagination:v,customFormElements:s,allowBackNavigation:x,validationHandler:F})):ze.createElement(ze.Fragment,null,ze.createElement(se,{appearance:d}),ze.createElement(Fo,{appearance:d,steps:xe,selectedStep:O,customStepTypes:t,customVariables:n,onButtonClick:c,onStepCompletion:C,flowId:e,type:o,hideOnFlowCompletion:a,onComplete:p,setVisible:r,setShowModal:X,onDismiss:u,showPagination:v,customFormElements:s,allowBackNavigation:x,validationHandler:F}))},Ii=Ai;import{useCallback as Ni,useContext as tp,useEffect as op}from"react";function sr(){let{organizationId:e,userId:t,setOrganizationId:o}=tp(j),{mutateUserFlowState:i}=Ee(),{config:r,apiUrl:n}=Me(),s=Ft(),{verifySDKInitiated:p}=kt();op(()=>{if(t&&e){if(t.startsWith(Pt))return;let C=`frigade-user-group-registered-${t}-${e}`;localStorage.getItem(C)||(s(`${n}userGroups`,{...r,method:"POST",body:JSON.stringify({foreignUserId:t,foreignUserGroupId:e})}),localStorage.setItem(C,"true"))}},[t,e]);let d=Ni(async C=>{if(p(),!e||!t){console.error("Cannot add properties to organization: Organization ID and User ID must both be set.",{organizationId:e,userId:t});return}let c={foreignUserId:t,foreignUserGroupId:e,properties:C};await s(`${n}userGroups`,{...r,method:"POST",body:JSON.stringify(c)}),i()},[e,t,r,i]),a=Ni(async(C,c)=>{if(p(),!e||!t){console.error("Cannot track event for organization: Organization ID and User ID must both be set.",{organizationId:e,userId:t});return}let S={foreignUserId:t,foreignUserGroupId:e,events:[{event:C,properties:c}]};await s(`${n}userGroups`,{...r,method:"POST",body:JSON.stringify(S)}),i()},[e,t,r,i]);return{organizationId:e,setOrganizationId:o,addPropertiesToOrganization:d,trackEventForOrganization:a}}var Li="frigade-xFrigade_guestUserId",Zt="frigade-xFrigade_userId",Oi=({})=>{let{setFlowResponses:e}=Ht(),{userFlowStatesData:t,isLoadingUserFlowStateData:o,mutateUserFlowState:i}=Ee(),{userId:r,setUserId:n}=Vt(),[s,p]=lr(null),{getFlowStatus:d}=Z(),{flows:a,userProperties:C,setIsNewGuestUser:c,flowResponses:g}=rp(j),[S,T]=lr([]),[k,u]=lr([]),{organizationId:v}=sr();ko(()=>{if(!o&&t)for(let h=0;h<t.length;h++){let m=t[h],w=a.find(y=>y.slug===(m==null?void 0:m.flowId));if(w&&m&&m.shouldTrigger===!0&&w.type=="FORM"&&w.triggerType==="AUTOMATIC"&&!k.includes(w.slug)){setTimeout(()=>{x(m.flowId)},500);break}}},[o,t]),ko(()=>{g.length>0&&i()},[g]);function x(h){let m=a.find(w=>w.slug===h);m&&m.triggerType==="AUTOMATIC"&&!k.includes(m.slug)&&(u([...k,m.slug]),T([m]))}function F(){if(!r){let h=localStorage.getItem(Zt);if(h){n(h);return}let m=localStorage.getItem(Li);if(m){n(m);return}c(!0);let w=Pt+ip();try{localStorage.setItem(Li,w)}catch(y){console.log("Failed to save guest user id locally: Local storage unavailable",y)}n(y=>y||w)}}ko(()=>{try{if(a){let h=[];a.forEach(m=>{if(m.data){let w=m.data.match(/"imageUri":"(.*?)"/g);w&&w.forEach(y=>{let E=y.replace('"imageUri":"',"").replace('"',"");if(h.includes(E))return;let L=new Image;L.src=E,h.push(E)})}})}}catch{}},[a]),ko(()=>{if(r!==s&&e([]),p(r),r&&!r.startsWith(Pt))try{localStorage.setItem(Zt,r)}catch(h){console.log("Failed to save user id locally: Local storage available",h)}r===null&&setTimeout(()=>{r===null&&F()},50)},[r,a,C]);function N(){return xt.createElement(xt.Fragment,null,S.map(h=>d(h.slug)!==Ie?null:xt.createElement("span",{key:h.slug},xt.createElement(Ii,{flowId:h.slug,type:"modal",modalPosition:"center",endFlowOnDismiss:!0}))))}return xt.createElement(xt.Fragment,null,xt.createElement(N,null))};import{ErrorBoundary as Np}from"react-error-boundary";import{deepmerge as Lp}from"deepmerge-ts";import{deepmerge as np}from"deepmerge-ts";var Di={colorPrimary:"colors.primary.background",colorText:"colors.neutral.foreground",colorBackground:"colors.neutral.background",colorBackgroundSecondary:"colors.secondary.background",colorTextOnPrimaryBackground:"colors.primary.foreground",colorTextSecondary:"colors.secondary.foreground",colorTextDisabled:"colors.gray700",colorBorder:"colors.gray800",colorTextError:"colors.negative.foreground",borderRadius:"radii.lg"};function sp(e){if(!e)return;let t={};return Object.entries(e).forEach(([o,i])=>{if(Di[o]){let r=Di[o].split("."),n=t;r.forEach((s,p)=>{n[s]||(n[s]=p===r.length-1?i:{}),n=n[s]})}}),t}function lp(e){if(!e)return;let t=np({},e),o={};return Object.keys(t).forEach(i=>{let r=`.fr-${i}`;o[r]=t[i]}),o}function $i(e){let{theme:t,styleOverrides:o}=e,i=sp(t),r=lp(o);return{overrides:i,css:r}}import wp from"styled-components";import{compose as Tp,variant as Ui}from"styled-system";import Mi from"react";import ap,{ThemeProvider as pp,useTheme as dp}from"styled-components";import{border as cp,color as mp,compose as up,get as fp,shadow as gp,space as xp,system as hp,typography as Cp}from"styled-system";import{deepmerge as yp}from"deepmerge-ts";var Sp={width:{property:"width",scale:"sizes",transform:(e,t)=>fp(t,e,!(typeof e=="number"&&!isNaN(e))||e>1?e:e*100+"%")},height:{property:"height",scale:"sizes"},minWidth:{property:"minWidth",scale:"sizes"},minHeight:{property:"minHeight",scale:"sizes"},maxWidth:{property:"maxWidth",scale:"sizes"},maxHeight:{property:"maxHeight",scale:"sizes"},overflow:!0,overflowX:!0,overflowY:!0,display:!0,verticalAlign:!0},bp=ap("div")(({css:e})=>e,up(cp,mp,gp,xp,Cp,hp(Sp))),Rt=({as:e,children:t,overrides:o,...i})=>{let r=dp(),n={border:"none",boxSizing:"border-box",m:0,p:0},s=()=>Mi.createElement(bp,{as:e,...n,...i},t);if(o!==void 0){let p=yp(r,o);return Mi.createElement(pp,{theme:p},s())}return s()};var eo={Primary:{backgroundColor:"primary.background",color:"primary.foreground","&:hover":{backgroundColor:"blue400"}},Secondary:{backgroundColor:"white",border:"1px solid",borderColor:"gray800",color:"neutral.foreground","&:hover":{backgroundColor:"blue900"}},Link:{backgroundColor:"transparent",color:"primary.inverted"},Plain:{backgroundColor:"transparent",color:"neutral.foreground"}},Fp={sm:{paddingX:4,paddingY:1},md:{paddingX:6,paddingY:2}},zi=wp(Rt)(()=>({whiteSpace:"nowrap"}),Tp(Ui({scale:"components.Button",variants:"components.Button"}),Ui({prop:"size",variants:Fp})));import kp from"styled-components";import{variant as Pp,system as vp}from"styled-system";var Po={Display1:{fontSize:"5xl",fontWeight:"bold",letterSpacing:"md",lineHeight:"4xl"},Display2:{fontSize:"4xl",fontWeight:"bold",letterSpacing:"md",lineHeight:"3xl"},H1:{fontSize:"3xl",fontWeight:"bold",letterSpacing:"md",lineHeight:"2xl"},H2:{fontSize:"2xl",fontWeight:"bold",letterSpacing:"md",lineHeight:"xl"},H3:{fontSize:"xl",fontWeight:"bold",letterSpacing:"md",lineHeight:"lg"},H4:{fontSize:"lg",fontWeight:"bold",letterSpacing:"md",lineHeight:"md"},Body1:{fontSize:"md",fontWeight:"regular",letterSpacing:"md",lineHeight:"md"},Body2:{fontSize:"sm",fontWeight:"regular",letterSpacing:"md",lineHeight:"md"},Caption:{fontSize:"xs",fontWeight:"regular",letterSpacing:"md",lineHeight:"sm"}};var _i=kp(Rt)(Pp({scale:"components.Text",variants:"components.Text"}),vp({fontWeight:{property:"fontWeight",scale:"fontWeights"}}));var Wi=4,Hi="px",Bp=20,Ep=Object.fromEntries(Array.from(Array(Bp+1),(e,t)=>t===0?[.5,`${.5*Wi}${Hi}`]:[t,`${t*Wi}${Hi}`])),It={black:"#000000",gray100:"#14161A",gray200:"#181B20",gray300:"#1F2329",gray400:"#2E343D",gray500:"#4C5766",gray600:"#5A6472",gray700:"#C5CBD3",gray800:"#E2E5E9",gray900:"#F1F2F4",white:"#ffffff",blue400:"#015AC6",blue500:"#0171F8",blue800:"#DBECFF",blue900:"#F5F9FF",green400:"#009E37",green500:"#00D149",green800:"#DBFFE8",transparent:"#FFFFFF00",red500:"#c00000"},ar={colors:{...It,neutral:{foreground:It.gray300},primary:{background:It.blue500,foreground:It.white,inverted:It.blue500},negative:{foreground:It.red500}},fonts:{default:"TT Interphases Pro, sans-serif"},fontSizes:{xs:"12px",sm:"14px",md:"16px",lg:"18px",xl:"20px","2xl":"24px","3xl":"30px","4xl":"36px","5xl":"48px"},fontWeights:{regular:400,semibold:500,bold:700},letterSpacings:{md:"0.02em"},lineHeights:{xs:"18px",sm:"22px",md:"24px",lg:"26px",xl:"30px","2xl":"38px","3xl":"46px","4xl":"60px"},radii:{md:"8px",lg:"20px",round:"50%"},shadows:{md:"0px 4px 20px rgba(0, 0, 0, 0.06)"},space:Ep,components:{Button:eo,Text:Po}};var Vi="https://api.frigade.com",j=Ap({publicApiKey:"",setUserId:()=>{},flows:[],setFlows:()=>{},failedFlowResponses:[],setFailedFlowResponses:()=>{},flowResponses:[],setFlowResponses:()=>{},userProperties:{},setUserProperties:()=>{},openFlowStates:{},setOpenFlowStates:()=>{},completedFlowsToKeepOpenDuringSession:[],setCompletedFlowsToKeepOpenDuringSession:()=>{},customVariables:{},setCustomVariables:()=>{},isNewGuestUser:!1,setIsNewGuestUser:()=>{},hasActiveFullPageFlow:!1,setHasActiveFullPageFlow:()=>{},organizationId:"",setOrganizationId:()=>{},navigate:()=>{},defaultAppearance:qe,shouldGracefullyDegrade:!1,setShouldGracefullyDegrade:()=>{},apiUrl:Vi,readonly:!1});function Op(){Object.keys(localStorage).forEach(e=>{e.startsWith("frigade-")&&localStorage.removeItem(e)})}var Dp=({publicApiKey:e,userId:t,organizationId:o,config:i,children:r})=>{var K,ee;let[n,s]=Ae(t||null),[p,d]=Ae(o||null),[a,C]=Ae([]),[c,g]=Ae([]),[S,T]=Ae([]),[k,u]=Ae({}),[v,x]=Ae({}),[F,N]=Ae([]),[h,m]=Ae({}),[w,y]=Ae(!1),[E,L]=Ae(!1),[I,$]=Ae(!_(e)),O=(le,X)=>{if(X==="_blank"){window.open(le,"_blank");return}setTimeout(()=>{window.location.href=le},50)},H={theme:{...qe.theme,...((K=i==null?void 0:i.defaultAppearance)==null?void 0:K.theme)??{}},styleOverrides:{...qe.styleOverrides,...((ee=i==null?void 0:i.defaultAppearance)==null?void 0:ee.styleOverrides)??{}}};function _(le){return!!(le&&le.length>10&&le.substring(0,10)==="api_public")}vo(()=>{t&&s(t)},[t]),vo(()=>{n&&window&&window.localStorage&&window.localStorage.getItem(Zt)&&window.localStorage.getItem(Zt)!==n&&Op()},[n]),vo(()=>{o&&d(o)},[o]),vo(()=>{if(_(e))$(!1);else{console.error("Frigade SDK failed to initialize. API key provided is either missing or valid."),$(!0);return}},[e,$]);let oe={publicApiKey:e,userId:n,setUserId:s,setFlows:C,flows:a,failedFlowResponses:c,setFailedFlowResponses:g,flowResponses:S,setFlowResponses:T,userProperties:k,setUserProperties:u,openFlowStates:v,setOpenFlowStates:x,completedFlowsToKeepOpenDuringSession:F,setCompletedFlowsToKeepOpenDuringSession:N,customVariables:h,setCustomVariables:m,isNewGuestUser:w,setIsNewGuestUser:y,hasActiveFullPageFlow:E,setHasActiveFullPageFlow:L,organizationId:p,setOrganizationId:d,navigate:i&&i.navigate?i.navigate:O,defaultAppearance:H,shouldGracefullyDegrade:I,setShouldGracefullyDegrade:$,apiUrl:i&&i.apiUrl?i.apiUrl:Vi,readonly:i&&i.readonly?i.readonly:!1};if(I)return ht.createElement(j.Provider,{value:oe},r);let{overrides:R}=$i(H);return ht.createElement(Np,{fallback:ht.createElement(ht.Fragment,null,r)},ht.createElement(j.Provider,{value:oe},ht.createElement(Ip,{theme:Lp(H.theme,ar,R??{},(i==null?void 0:i.theme)??{})},r,ht.createElement(Oi,null))))};import Ld from"react";import me,{useEffect as Cs,useState as ys}from"react";import Oe,{useState as id}from"react";import St from"styled-components";import Ao from"react";import Ct from"react";import Gi from"styled-components";var ji=Gi.span`
|
|
633
|
+
${i=>i.inlineStyles.map(([r,n])=>`.${jt}${r}.${jt}${r} { ${Object.entries(n).map(([s,p])=>`${Ho(s)}: ${p};`).join(" ")} }`).join(" ")}`;return Qt.createElement(o,{inlineStyles:t})}var Ai=({flowId:e,customStepTypes:t={},type:o="inline",visible:i,setVisible:r,customVariables:n,customFormElements:s,onComplete:p,appearance:d,hideOnFlowCompletion:a=!0,onStepCompletion:C,onButtonClick:c,dismissible:g=!0,endFlowOnDismiss:S=!1,modalPosition:T="center",repeatable:k=!1,onDismiss:u,showPagination:v=!1,allowBackNavigation:x=!1,validationHandler:F,showFrigadeBranding:N=!1})=>{let{getFlow:h,getFlowSteps:m,isLoading:w,targetingLogicShouldHideFlow:y,getFlowStatus:E,getCurrentStepIndex:L,markFlowCompleted:I,markFlowNotStarted:$}=Z(),O=L(e),{mergeAppearanceWithDefault:H}=te(),[_,oe]=ep(!1),{setOpenFlowState:R,getOpenFlowState:K,hasOpenModals:ee}=Fe();d=H(d);let[le,X]=i!==void 0&&r!==void 0?[i,r]:[K(e,!0),q=>R(e,q)];if(Ra(()=>{!_&&!w&&(oe(!0),E(e)===Q&&k&&$(e),oe(!0))},[_,oe,w]),w)return null;let G=h(e);if(!G||y(G))return null;let xe=m(e);if(!xe||i!==void 0&&i===!1||E(e)===Q&&a||(o=="modal"||o=="corner-modal")&&ee(e))return null;let Te=()=>{X(!1),u&&u(),S===!0&&I(e)};if(T=="center"&&o==="modal"||o==="large-modal"){let q={padding:"24px"};return o==="large-modal"?(q.width="85%",q.height="90%",q.maxHeight="800px",q.minHeight="500px",q.padding="0"):q.width="400px",ze.createElement(tt,{appearance:d,onClose:Te,visible:le,style:q,dismissible:g,showFrigadeBranding:N},ze.createElement(se,{appearance:d}),ze.createElement(Fo,{appearance:d,steps:xe,selectedStep:O,customStepTypes:t,customVariables:n,onButtonClick:c,onStepCompletion:C,flowId:e,type:o,hideOnFlowCompletion:a,onComplete:p,setVisible:r,setShowModal:X,onDismiss:u,showPagination:v,customFormElements:s,allowBackNavigation:x,validationHandler:F}))}return o==="modal"&&T!=="center"?ze.createElement(Gr,{appearance:d,onClose:Te,visible:le},ze.createElement(se,{appearance:d}),ze.createElement(Fo,{appearance:d,steps:xe,selectedStep:O,customStepTypes:t,customVariables:n,onButtonClick:c,onStepCompletion:C,flowId:e,type:o,hideOnFlowCompletion:a,onComplete:p,setVisible:r,setShowModal:X,onDismiss:u,showPagination:v,customFormElements:s,allowBackNavigation:x,validationHandler:F})):ze.createElement(ze.Fragment,null,ze.createElement(se,{appearance:d}),ze.createElement(Fo,{appearance:d,steps:xe,selectedStep:O,customStepTypes:t,customVariables:n,onButtonClick:c,onStepCompletion:C,flowId:e,type:o,hideOnFlowCompletion:a,onComplete:p,setVisible:r,setShowModal:X,onDismiss:u,showPagination:v,customFormElements:s,allowBackNavigation:x,validationHandler:F}))},Ii=Ai;import{useCallback as Ni,useContext as tp,useEffect as op}from"react";function sr(){let{organizationId:e,userId:t,setOrganizationId:o}=tp(j),{mutateUserFlowState:i}=Ee(),{config:r,apiUrl:n}=Me(),s=Ft(),{verifySDKInitiated:p}=kt();op(()=>{if(t&&e){if(t.startsWith(Pt))return;let C=`frigade-user-group-registered-${t}-${e}`;localStorage.getItem(C)||(s(`${n}userGroups`,{...r,method:"POST",body:JSON.stringify({foreignUserId:t,foreignUserGroupId:e})}),localStorage.setItem(C,"true"))}},[t,e]);let d=Ni(async C=>{if(!p())return;if(!e||!t){console.error("Cannot add properties to organization: Organization ID and User ID must both be set.",{organizationId:e,userId:t});return}let c={foreignUserId:t,foreignUserGroupId:e,properties:C};await s(`${n}userGroups`,{...r,method:"POST",body:JSON.stringify(c)}),i()},[e,t,r,i]),a=Ni(async(C,c)=>{if(!p())return;if(!e||!t){console.error("Cannot track event for organization: Organization ID and User ID must both be set.",{organizationId:e,userId:t});return}let S={foreignUserId:t,foreignUserGroupId:e,events:[{event:C,properties:c}]};await s(`${n}userGroups`,{...r,method:"POST",body:JSON.stringify(S)}),i()},[e,t,r,i]);return{organizationId:e,setOrganizationId:o,addPropertiesToOrganization:d,trackEventForOrganization:a}}var Li="frigade-xFrigade_guestUserId",Zt="frigade-xFrigade_userId",Oi=({})=>{let{setFlowResponses:e}=Ht(),{userFlowStatesData:t,isLoadingUserFlowStateData:o,mutateUserFlowState:i}=Ee(),{userId:r,setUserId:n}=Vt(),[s,p]=lr(null),{getFlowStatus:d}=Z(),{flows:a,userProperties:C,setIsNewGuestUser:c,flowResponses:g}=rp(j),[S,T]=lr([]),[k,u]=lr([]),{organizationId:v}=sr();ko(()=>{if(!o&&t)for(let h=0;h<t.length;h++){let m=t[h],w=a.find(y=>y.slug===(m==null?void 0:m.flowId));if(w&&m&&m.shouldTrigger===!0&&w.type=="FORM"&&w.triggerType==="AUTOMATIC"&&!k.includes(w.slug)){setTimeout(()=>{x(m.flowId)},500);break}}},[o,t]),ko(()=>{g.length>0&&i()},[g]);function x(h){let m=a.find(w=>w.slug===h);m&&m.triggerType==="AUTOMATIC"&&!k.includes(m.slug)&&(u([...k,m.slug]),T([m]))}function F(){if(!r){let h=localStorage.getItem(Zt);if(h){n(h);return}let m=localStorage.getItem(Li);if(m){n(m);return}c(!0);let w=Pt+ip();try{localStorage.setItem(Li,w)}catch(y){console.log("Failed to save guest user id locally: Local storage unavailable",y)}n(y=>y||w)}}ko(()=>{try{if(a){let h=[];a.forEach(m=>{if(m.data){let w=m.data.match(/"imageUri":"(.*?)"/g);w&&w.forEach(y=>{let E=y.replace('"imageUri":"',"").replace('"',"");if(h.includes(E))return;let L=new Image;L.src=E,h.push(E)})}})}}catch{}},[a]),ko(()=>{if(r!==s&&e([]),p(r),r&&!r.startsWith(Pt))try{localStorage.setItem(Zt,r)}catch(h){console.log("Failed to save user id locally: Local storage available",h)}r===null&&setTimeout(()=>{r===null&&F()},50)},[r,a,C]);function N(){return xt.createElement(xt.Fragment,null,S.map(h=>d(h.slug)!==Ie?null:xt.createElement("span",{key:h.slug},xt.createElement(Ii,{flowId:h.slug,type:"modal",modalPosition:"center",endFlowOnDismiss:!0}))))}return xt.createElement(xt.Fragment,null,xt.createElement(N,null))};import{ErrorBoundary as Np}from"react-error-boundary";import{deepmerge as Lp}from"deepmerge-ts";import{deepmerge as np}from"deepmerge-ts";var Di={colorPrimary:"colors.primary.background",colorText:"colors.neutral.foreground",colorBackground:"colors.neutral.background",colorBackgroundSecondary:"colors.secondary.background",colorTextOnPrimaryBackground:"colors.primary.foreground",colorTextSecondary:"colors.secondary.foreground",colorTextDisabled:"colors.gray700",colorBorder:"colors.gray800",colorTextError:"colors.negative.foreground",borderRadius:"radii.lg"};function sp(e){if(!e)return;let t={};return Object.entries(e).forEach(([o,i])=>{if(Di[o]){let r=Di[o].split("."),n=t;r.forEach((s,p)=>{n[s]||(n[s]=p===r.length-1?i:{}),n=n[s]})}}),t}function lp(e){if(!e)return;let t=np({},e),o={};return Object.keys(t).forEach(i=>{let r=`.fr-${i}`;o[r]=t[i]}),o}function $i(e){let{theme:t,styleOverrides:o}=e,i=sp(t),r=lp(o);return{overrides:i,css:r}}import wp from"styled-components";import{compose as Tp,variant as Ui}from"styled-system";import Mi from"react";import ap,{ThemeProvider as pp,useTheme as dp}from"styled-components";import{border as cp,color as mp,compose as up,get as fp,shadow as gp,space as xp,system as hp,typography as Cp}from"styled-system";import{deepmerge as yp}from"deepmerge-ts";var Sp={width:{property:"width",scale:"sizes",transform:(e,t)=>fp(t,e,!(typeof e=="number"&&!isNaN(e))||e>1?e:e*100+"%")},height:{property:"height",scale:"sizes"},minWidth:{property:"minWidth",scale:"sizes"},minHeight:{property:"minHeight",scale:"sizes"},maxWidth:{property:"maxWidth",scale:"sizes"},maxHeight:{property:"maxHeight",scale:"sizes"},overflow:!0,overflowX:!0,overflowY:!0,display:!0,verticalAlign:!0},bp=ap("div")(({css:e})=>e,up(cp,mp,gp,xp,Cp,hp(Sp))),Rt=({as:e,children:t,overrides:o,...i})=>{let r=dp(),n={border:"none",boxSizing:"border-box",m:0,p:0},s=()=>Mi.createElement(bp,{as:e,...n,...i},t);if(o!==void 0){let p=yp(r,o);return Mi.createElement(pp,{theme:p},s())}return s()};var eo={Primary:{backgroundColor:"primary.background",color:"primary.foreground","&:hover":{backgroundColor:"blue400"}},Secondary:{backgroundColor:"white",border:"1px solid",borderColor:"gray800",color:"neutral.foreground","&:hover":{backgroundColor:"blue900"}},Link:{backgroundColor:"transparent",color:"primary.inverted"},Plain:{backgroundColor:"transparent",color:"neutral.foreground"}},Fp={sm:{paddingX:4,paddingY:1},md:{paddingX:6,paddingY:2}},zi=wp(Rt)(()=>({whiteSpace:"nowrap"}),Tp(Ui({scale:"components.Button",variants:"components.Button"}),Ui({prop:"size",variants:Fp})));import kp from"styled-components";import{variant as Pp,system as vp}from"styled-system";var Po={Display1:{fontSize:"5xl",fontWeight:"bold",letterSpacing:"md",lineHeight:"4xl"},Display2:{fontSize:"4xl",fontWeight:"bold",letterSpacing:"md",lineHeight:"3xl"},H1:{fontSize:"3xl",fontWeight:"bold",letterSpacing:"md",lineHeight:"2xl"},H2:{fontSize:"2xl",fontWeight:"bold",letterSpacing:"md",lineHeight:"xl"},H3:{fontSize:"xl",fontWeight:"bold",letterSpacing:"md",lineHeight:"lg"},H4:{fontSize:"lg",fontWeight:"bold",letterSpacing:"md",lineHeight:"md"},Body1:{fontSize:"md",fontWeight:"regular",letterSpacing:"md",lineHeight:"md"},Body2:{fontSize:"sm",fontWeight:"regular",letterSpacing:"md",lineHeight:"md"},Caption:{fontSize:"xs",fontWeight:"regular",letterSpacing:"md",lineHeight:"sm"}};var _i=kp(Rt)(Pp({scale:"components.Text",variants:"components.Text"}),vp({fontWeight:{property:"fontWeight",scale:"fontWeights"}}));var Wi=4,Hi="px",Bp=20,Ep=Object.fromEntries(Array.from(Array(Bp+1),(e,t)=>t===0?[.5,`${.5*Wi}${Hi}`]:[t,`${t*Wi}${Hi}`])),It={black:"#000000",gray100:"#14161A",gray200:"#181B20",gray300:"#1F2329",gray400:"#2E343D",gray500:"#4C5766",gray600:"#5A6472",gray700:"#C5CBD3",gray800:"#E2E5E9",gray900:"#F1F2F4",white:"#ffffff",blue400:"#015AC6",blue500:"#0171F8",blue800:"#DBECFF",blue900:"#F5F9FF",green400:"#009E37",green500:"#00D149",green800:"#DBFFE8",transparent:"#FFFFFF00",red500:"#c00000"},ar={colors:{...It,neutral:{foreground:It.gray300},primary:{background:It.blue500,foreground:It.white,inverted:It.blue500},negative:{foreground:It.red500}},fonts:{default:"TT Interphases Pro, sans-serif"},fontSizes:{xs:"12px",sm:"14px",md:"16px",lg:"18px",xl:"20px","2xl":"24px","3xl":"30px","4xl":"36px","5xl":"48px"},fontWeights:{regular:400,semibold:500,bold:700},letterSpacings:{md:"0.02em"},lineHeights:{xs:"18px",sm:"22px",md:"24px",lg:"26px",xl:"30px","2xl":"38px","3xl":"46px","4xl":"60px"},radii:{md:"8px",lg:"20px",round:"50%"},shadows:{md:"0px 4px 20px rgba(0, 0, 0, 0.06)"},space:Ep,components:{Button:eo,Text:Po}};var Vi="https://api.frigade.com",j=Ap({publicApiKey:"",setUserId:()=>{},flows:[],setFlows:()=>{},failedFlowResponses:[],setFailedFlowResponses:()=>{},flowResponses:[],setFlowResponses:()=>{},userProperties:{},setUserProperties:()=>{},openFlowStates:{},setOpenFlowStates:()=>{},completedFlowsToKeepOpenDuringSession:[],setCompletedFlowsToKeepOpenDuringSession:()=>{},customVariables:{},setCustomVariables:()=>{},isNewGuestUser:!1,setIsNewGuestUser:()=>{},hasActiveFullPageFlow:!1,setHasActiveFullPageFlow:()=>{},organizationId:"",setOrganizationId:()=>{},navigate:()=>{},defaultAppearance:qe,shouldGracefullyDegrade:!1,setShouldGracefullyDegrade:()=>{},apiUrl:Vi,readonly:!1});function Op(){Object.keys(localStorage).forEach(e=>{e.startsWith("frigade-")&&localStorage.removeItem(e)})}var Dp=({publicApiKey:e,userId:t,organizationId:o,config:i,children:r})=>{var K,ee;let[n,s]=Ae(t||null),[p,d]=Ae(o||null),[a,C]=Ae([]),[c,g]=Ae([]),[S,T]=Ae([]),[k,u]=Ae({}),[v,x]=Ae({}),[F,N]=Ae([]),[h,m]=Ae({}),[w,y]=Ae(!1),[E,L]=Ae(!1),[I,$]=Ae(!_(e)),O=(le,X)=>{if(X==="_blank"){window.open(le,"_blank");return}setTimeout(()=>{window.location.href=le},50)},H={theme:{...qe.theme,...((K=i==null?void 0:i.defaultAppearance)==null?void 0:K.theme)??{}},styleOverrides:{...qe.styleOverrides,...((ee=i==null?void 0:i.defaultAppearance)==null?void 0:ee.styleOverrides)??{}}};function _(le){return!!(le&&le.length>10&&le.substring(0,10)==="api_public")}vo(()=>{t&&s(t)},[t]),vo(()=>{n&&window&&window.localStorage&&window.localStorage.getItem(Zt)&&window.localStorage.getItem(Zt)!==n&&Op()},[n]),vo(()=>{o&&d(o)},[o]),vo(()=>{if(_(e))$(!1);else{console.error("Frigade SDK failed to initialize. API key provided is either missing or valid."),$(!0);return}},[e,$]);let oe={publicApiKey:e,userId:n,setUserId:s,setFlows:C,flows:a,failedFlowResponses:c,setFailedFlowResponses:g,flowResponses:S,setFlowResponses:T,userProperties:k,setUserProperties:u,openFlowStates:v,setOpenFlowStates:x,completedFlowsToKeepOpenDuringSession:F,setCompletedFlowsToKeepOpenDuringSession:N,customVariables:h,setCustomVariables:m,isNewGuestUser:w,setIsNewGuestUser:y,hasActiveFullPageFlow:E,setHasActiveFullPageFlow:L,organizationId:p,setOrganizationId:d,navigate:i&&i.navigate?i.navigate:O,defaultAppearance:H,shouldGracefullyDegrade:I,setShouldGracefullyDegrade:$,apiUrl:i&&i.apiUrl?i.apiUrl:Vi,readonly:i&&i.readonly?i.readonly:!1};if(I)return ht.createElement(j.Provider,{value:oe},r);let{overrides:R}=$i(H);return ht.createElement(Np,{fallback:ht.createElement(ht.Fragment,null,r)},ht.createElement(j.Provider,{value:oe},ht.createElement(Ip,{theme:Lp(H.theme,ar,R??{},(i==null?void 0:i.theme)??{})},r,ht.createElement(Oi,null))))};import Ld from"react";import me,{useEffect as Cs,useState as ys}from"react";import Oe,{useState as id}from"react";import St from"styled-components";import Ao from"react";import Ct from"react";import Gi from"styled-components";var ji=Gi.span`
|
|
633
634
|
font-weight: 400;
|
|
634
635
|
font-size: 15px;
|
|
635
636
|
line-height: 20px;
|