@frigade/react 1.33.5 → 1.33.7
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.d.ts +1 -1
- package/lib/index.js +10 -10
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +10 -10
- package/lib/index.mjs.map +1 -1
- package/package.json +2 -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.5 ";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(B=>{if(B.ok)return B.json();throw new Error("Failed to fetch user flow states")}).catch(B=>(console.log(`Error fetching ${y}: ${B}. 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 B=x.find(L=>L.flowId===y);B&&B.flowState!==Q&&(B.flowState=Q),await u(Promise.resolve({...T,data:x}),{optimisticData:{...T,data:x},revalidate:!1,rollbackOnError:!1})}}async function N(y,B,L){if(x){let I=x.find($=>$.flowId===y);I&&(I.stepStates[B]=L,I.flowState=mt),await u(Promise.resolve({...T,data:x}),{optimisticData:{...T,data:x},revalidate:!1,rollbackOnError:!1})}}async function h(y,B,L){if(x){let I=x.find($=>$.flowId===y);I&&(I.lastStepId=B,I.stepStates[B]=L,I.flowState=mt),await u({...T,data:x},{optimisticData:{...T,data:x},revalidate:!1,rollbackOnError:!1})}}async function m(y){if(x){let B=x.find(L=>L.flowId===y);B&&B.flowState!==Ie&&(B.flowState=Ie,B.lastStepId=bl,Object.keys(B.stepStates).forEach(L=>{B.stepStates[L].actionType=Be,B.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,B){if(x){let L=x.find(I=>I.flowId===y);L&&L.stepStates[B]!==Be&&(L.stepStates[B]=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:B,error:L,isLoading:I}=vl(n?`${t}flows${g?"?readonly=true":""}`:null,v,{keepPreviousData:!0});Pl(()=>{if(L){console.error(L);return}B&&B.data&&i(B.data)},[B,L]);function $(f){if(I)return null;let b=o.find(E=>E.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,E)=>s[E]===void 0?"":String(s[E]).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(E=>({...E,[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,E)=>{T();let A={foreignUserId:r,flowSlug:f,stepId:b,actionType:po,data:E??{},createdAt:new Date,blocked:!1,hidden:!1};q(A)&&(await y(f,b,A),k(A))},[r,x]),ee=ut(async(f,b,E)=>{T();let A={foreignUserId:r,flowSlug:f,stepId:b,actionType:Be,data:E??{},createdAt:new Date,blocked:!1,hidden:!1};q(A)&&(await w(f,b),k(A))},[r,x]),le=ut(async(f,b,E)=>{T();let A={foreignUserId:r,flowSlug:f,stepId:b,actionType:Ne,data:E??{},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 E={foreignUserId:r,flowSlug:f,stepId:"unknown",actionType:Ie,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};await h(f),q(E)&&k(E)},[r,x]),G=ut(async(f,b)=>{T();let E={foreignUserId:r,flowSlug:f,stepId:"unknown",actionType:mt,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};q(E)&&k(E)},[r,x]),xe=ut(async(f,b)=>{T();let E={foreignUserId:r,flowSlug:f,stepId:"unknown",actionType:Q,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};q(E)&&(await N(f),k(E))},[r,x]),Te=ut(async(f,b)=>{T();let E={foreignUserId:r,flowSlug:f,stepId:"unknown",actionType:ao,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};q(E)&&(await N(f),k(E))},[r,x]);function q(f){var b;if(!x&&f.actionType===Be)return!1;if(x){let E=x.find(A=>A.flowId===f.flowSlug);if(f.actionType===Be&&(!(E!=null&&E.stepStates[f.stepId])||E.stepStates[f.stepId].actionType===Be)||E&&((b=E.stepStates[f.stepId])==null?void 0:b.actionType)===f.actionType||E&&E.flowState===Q&&f.actionType===Q)return!1}return!0}function de(f,b){let E=re(f,b);return F?null:E?E.actionType:Be}function z(f,b){let E=re(f,b);return E?E.blocked:!1}function D(f,b){let E=re(f,b);return E?E.hidden:!1}function re(f,b){if(F)return null;let E=x==null?void 0:x.find(A=>A.flowId===f);return!E||!E.stepStates[b]?null:E.stepStates[b]??null}function V(f){var E;if(F||!x)return null;if(De(f)===Ie)return O(f)[0]??null;let b=(E=x.find(A=>A.flowId===f))==null?void 0:E.lastStepId;return b?O(f).find(A=>A.id===b):null}function ie(f){let b=V(f);if(!b)return 0;let E=O(f).findIndex(A=>A.id===b.id)??0;return de(f,b.id)===Ne&&E<O(f).length-1?E+1:E}function je(f){if(!f.completionCriteria)return;let b=Er(f.completionCriteria);if(b===null)return;let E=dt(b),A=W(b);return A===0?void 0:E/A}function De(f){let b=x==null?void 0:x.find(E=>E.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){return JSON.parse(o.find(b=>b.slug===f).data)}function $e(f){if(g)return!1;if(F)return!0;if(f!=null&&f.targetingLogic&&x){let b=x.find(E=>E.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.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`
|
|
3
3
|
display: flex;
|
|
4
4
|
justify-content: center;
|
|
5
5
|
position: fixed;
|
|
@@ -385,7 +385,7 @@ import ht,{createContext as Ap,useEffect as vo,useState as Ae}from"react";import
|
|
|
385
385
|
`,ka=yo.div`
|
|
386
386
|
padding-left: 1px;
|
|
387
387
|
padding-right: 1px;
|
|
388
|
-
`,Pa={text:Jo,multipleChoice:ti,multipleChoiceList:ni};function ai({flowId:e,stepData:t,canContinue:o,setCanContinue:i,onSaveData:r,appearance:n,customFormElements:s}){var N;let p=t.props,[d,a]=er([]),[C,c]=er([]),{userId:g}=Vt(),[S,T]=er(x()||{}),{readonly:k}=Ca(j),u={...Pa,...s};ya(()=>{i(d.length===0)},[d,i]);function v(h,m){let w={...S,[h.id]:m};T(w),r(w),window&&window.localStorage&&!k&&window.localStorage.setItem(F(),JSON.stringify(w))}function x(){if(window&&window.localStorage){let h=window.localStorage.getItem(F());if(h)return JSON.parse(h)}return{}}function F(){return`frigade-multiInputStepTypeData-${e}-${t.id}-${g}`}return it.createElement(ka,{className:l("multiInput",n)},it.createElement(ye,{appearance:n,title:t.title,subtitle:t.subtitle}),it.createElement(wa,{className:l("multiInputContainer",n)},(N=p.data)==null?void 0:N.map(h=>{var w;let m=(w=d.reverse().find(y=>y.id===h.id))==null?void 0:w.message;return u[h.type]?it.createElement("span",{key:h.id,"data-field-id":h.id,className:l("multiInputField",n)},u[h.type]({formInput:h,customFormTypeProps:{flowId:e,stepData:t,canContinue:o,setCanContinue:i,onSaveData:r,appearance:n},onSaveInputData:y=>{!C.includes(h.id)&&y&&(y==null?void 0:y.text)!==""&&c(
|
|
388
|
+
`,Pa={text:Jo,multipleChoice:ti,multipleChoiceList:ni};function ai({flowId:e,stepData:t,canContinue:o,setCanContinue:i,onSaveData:r,appearance:n,customFormElements:s}){var N;let p=t.props,[d,a]=er([]),[C,c]=er([]),{userId:g}=Vt(),[S,T]=er(x()||{}),{readonly:k}=Ca(j),u={...Pa,...s};ya(()=>{i(d.length===0)},[d,i]);function v(h,m){let w={...S,[h.id]:m};T(w),r(w),window&&window.localStorage&&!k&&window.localStorage.setItem(F(),JSON.stringify(w))}function x(){if(window&&window.localStorage){let h=window.localStorage.getItem(F());if(h)return JSON.parse(h)}return{}}function F(){return`frigade-multiInputStepTypeData-${e}-${t.id}-${g}`}return it.createElement(ka,{className:l("multiInput",n)},it.createElement(ye,{appearance:n,title:t.title,subtitle:t.subtitle}),it.createElement(wa,{className:l("multiInputContainer",n)},(N=p.data)==null?void 0:N.map(h=>{var w;let m=(w=d.reverse().find(y=>y.id===h.id))==null?void 0:w.message;return u[h.type]?it.createElement("span",{key:h.id,"data-field-id":h.id,className:l("multiInputField",n)},u[h.type]({formInput:h,customFormTypeProps:{flowId:e,stepData:t,canContinue:o,setCanContinue:i,onSaveData:r,appearance:n},onSaveInputData:y=>{!C.includes(h.id)&&y&&(y==null?void 0:y.text)!==""&&c(E=>[...E,h.id]),v(h,y)},inputData:S[h.id],setFormValidationErrors:y=>{a(E=>y.length===0?E.filter(L=>L.id!==h.id):[...E,...y])}}),it.createElement(Sa,null,m&&C.includes(h.id)&&it.createElement(Ta,{initial:{opacity:0,height:0,marginBottom:0},animate:{opacity:1,height:"auto",marginBottom:12},exit:{opacity:0,height:0,marginBottom:0},key:h.id,style:{overflow:"hidden"},transition:{duration:.1,ease:"easeInOut",delay:.5},appearance:n,className:l("multiInputValidationError",n)},it.createElement(Fa,{appearance:n,className:l("multiInputValidationErrorIcon",n)},it.createElement(li,null)),m))):null})))}import ft from"styled-components";var pi=ft.div`
|
|
389
389
|
align-items: center;
|
|
390
390
|
display: flex;
|
|
391
391
|
justify-content: ${e=>e.showBackButton?"space-between":"flex-end"};
|
|
@@ -466,7 +466,7 @@ import ht,{createContext as Ap,useEffect as vo,useState as Ae}from"react";import
|
|
|
466
466
|
margin-right: 8px;
|
|
467
467
|
}
|
|
468
468
|
}
|
|
469
|
-
`,ne=({onClick:e,title:t,style:o,disabled:i,type:r="inline",size:n="medium",secondary:s=!1,appearance:p,withMargin:d=!0,classPrefix:a=""})=>{function C(){let c=s?"buttonSecondary":"button";return a===""?c:`${a}${Gt(c)}`}return va.createElement(Ba,{secondary:s,appearance:p,disabled:i,onClick:e,styleOverrides:o,type:r,withMargin:d,size:n,className:l(C(),p)},t)};var hi=({step:e,canContinue:t,appearance:o,onPrimaryClick:i,onSecondaryClick:r,formType:n,selectedStep:s,steps:p,onBack:d,allowBackNavigation:a,errorMessage:C})=>{let c=n==="inline"?"inline":"full-width",g=p.length>1&&s!=0&&a;return nt.createElement(nt.Fragment,null,C&&nt.createElement(di,{appearance:o,className:l("formCTAError",o)},C),nt.createElement(pi,{showBackButton:g,className:l("formCTAContainer",o)},g&&nt.createElement(ne,{title:e.backButtonTitle??"\u2190",onClick:d,secondary:!0,withMargin:!1,type:c,appearance:o,style:{width:"90px",maxWidth:"90px"},classPrefix:"back"}),nt.createElement(ci,{className:l("ctaWrapper",o)},e.secondaryButtonTitle?nt.createElement(ne,{title:e.secondaryButtonTitle,onClick:r,secondary:!0,withMargin:!1,type:c,appearance:o}):null," ",e.primaryButtonTitle?nt.createElement(ne,{disabled:!t,withMargin:!1,title:e.primaryButtonTitle,onClick:i,type:c,appearance:o}):null)))};import tr from"react";import Ea from"styled-components";var Aa=Ea.div`
|
|
469
|
+
`,ne=({onClick:e,title:t,style:o,disabled:i,type:r="inline",size:n="medium",secondary:s=!1,appearance:p,withMargin:d=!0,classPrefix:a=""})=>{function C(){let c=s?"buttonSecondary":"button";return a===""?c:`${a}${Gt(c)}`}return va.createElement(Ba,{secondary:s,appearance:p,disabled:i,onClick:e,styleOverrides:o,type:r,withMargin:d,size:n,className:l(C(),p)},t??"Continue")};var hi=({step:e,canContinue:t,appearance:o,onPrimaryClick:i,onSecondaryClick:r,formType:n,selectedStep:s,steps:p,onBack:d,allowBackNavigation:a,errorMessage:C})=>{let c=n==="inline"?"inline":"full-width",g=p.length>1&&s!=0&&a;return nt.createElement(nt.Fragment,null,C&&nt.createElement(di,{appearance:o,className:l("formCTAError",o)},C),nt.createElement(pi,{showBackButton:g,className:l("formCTAContainer",o)},g&&nt.createElement(ne,{title:e.backButtonTitle??"\u2190",onClick:d,secondary:!0,withMargin:!1,type:c,appearance:o,style:{width:"90px",maxWidth:"90px"},classPrefix:"back"}),nt.createElement(ci,{className:l("ctaWrapper",o)},e.secondaryButtonTitle?nt.createElement(ne,{title:e.secondaryButtonTitle,onClick:r,secondary:!0,withMargin:!1,type:c,appearance:o}):null," ",e.primaryButtonTitle?nt.createElement(ne,{disabled:!t,withMargin:!1,title:e.primaryButtonTitle,onClick:i,type:c,appearance:o}):null)))};import tr from"react";import Ea from"styled-components";var Aa=Ea.div`
|
|
470
470
|
text-align: center;
|
|
471
471
|
`,Ci=({stepCount:e=0,currentStep:t=0,className:o,appearance:i})=>{let{theme:r}=te().mergeAppearanceWithDefault(i);return tr.createElement(Aa,{className:o},tr.createElement("svg",{width:16*e-8,height:8,viewBox:`0 0 ${16*e-8} 8`,fill:"none"},Array(e).fill(null).map((n,s)=>tr.createElement("rect",{key:s,x:16*s,y:0,width:8,height:8,rx:4,fill:t===s?r.colorPrimary:"#E6E6E6"}))))};import gt from"react";import Et from"styled-components";import{useContext as Ia}from"react";function ae(){let e=Ia(j);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 Na=Et.div`
|
|
472
472
|
display: flex;
|
|
@@ -628,8 +628,8 @@ import ht,{createContext as Ap,useEffect as vo,useState as Ae}from"react";import
|
|
|
628
628
|
color: ${e=>{var t,o;return(o=(t=e.appearance)==null?void 0:t.theme)==null?void 0:o.colorText}};
|
|
629
629
|
display: flex;
|
|
630
630
|
align-self: center;
|
|
631
|
-
`;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,
|
|
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:B,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),B(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||B(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 B=y.replace('"imageUri":"',"").replace('"',"");if(h.includes(B))return;let L=new Image;L.src=B,h.push(B)})}})}}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),[B,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:B,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`
|
|
631
|
+
`;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
633
|
font-weight: 400;
|
|
634
634
|
font-size: 15px;
|
|
635
635
|
line-height: 20px;
|
|
@@ -674,7 +674,7 @@ ${i=>i.inlineStyles.map(([r,n])=>`.${jt}${r}.${jt}${r} { ${Object.entries(n).map
|
|
|
674
674
|
`,Xi=to.div`
|
|
675
675
|
flex-direction: row;
|
|
676
676
|
justify-content: flex-start;
|
|
677
|
-
`;var Ji=({data:e,index:t,isSelected:o,primaryColor:i,style:r,onClick:n,appearance:s})=>{var p,d;return Ao.createElement("div",{style:{position:"relative",paddingLeft:"20px"},onClick:()=>{n()}},o&&Ao.createElement(Eo,{className:l("checklistStepItemSelectedIndicator",s),as:Mp.div,layoutId:"checklis-step-selected",style:{backgroundColor:((p=s==null?void 0:s.theme)==null?void 0:p.colorPrimary)??i}}),Ao.createElement(Xi,{className:l("checklistStepItem",s),key:`hero-checklist-step-${t}`,role:"listitem"},Ao.createElement(Bo,{value:e.complete,labelPosition:"left",label:e.stepName,style:r,primaryColor:((d=s==null?void 0:s.theme)==null?void 0:d.colorPrimary)??i,appearance:s})))};import yt from"react";import{motion as Up}from"framer-motion";import pr from"styled-components";var zp={backgroundColor:"#E6E6E6"},_p=pr.div`
|
|
677
|
+
`;var Ji=({data:e,index:t,isSelected:o,primaryColor:i,style:r,onClick:n,appearance:s})=>{var p,d;return Ao.createElement("div",{style:{position:"relative",paddingLeft:"20px"},onClick:()=>{n()}},o&&Ao.createElement(Eo,{className:l("checklistStepItemSelectedIndicator",s),as:Mp.div,layoutId:"checklis-step-selected",style:{backgroundColor:((p=s==null?void 0:s.theme)==null?void 0:p.colorPrimary)??i}}),Ao.createElement(Xi,{className:l("checklistStepItem",s),key:`hero-checklist-step-${t}`,role:"listitem"},Ao.createElement(Bo,{value:e.complete,labelPosition:"left",label:e.stepName??e.title,style:r,primaryColor:((d=s==null?void 0:s.theme)==null?void 0:d.colorPrimary)??i,appearance:s})))};import yt from"react";import{motion as Up}from"framer-motion";import pr from"styled-components";var zp={backgroundColor:"#E6E6E6"},_p=pr.div`
|
|
678
678
|
display: flex;
|
|
679
679
|
flex-direction: ${e=>e.textLocation=="top"?"column":"row"};
|
|
680
680
|
justify-content: flex-start;
|
|
@@ -1236,7 +1236,7 @@ ${i=>i.inlineStyles.map(([r,n])=>`.${jt}${r}.${jt}${r} { ${Object.entries(n).map
|
|
|
1236
1236
|
color: ${({theme:e})=>e.colorTextSecondary};
|
|
1237
1237
|
${e=>e.blocked||e.complete?"opacity: 0.4;":`
|
|
1238
1238
|
`}
|
|
1239
|
-
`;var fs=({stepData:e,style:t={},appearance:o})=>{let{mergeAppearanceWithDefault:i}=te(),{primaryCTAClickSideEffects:r}=ae();o=i(o);let{imageUri:n=null,subtitle:s=null,title:p=null,complete:d=!1,blocked:a=!1}=e,C=e.primaryButtonTitle||e.secondaryButtonTitle,c=()=>{r(e)};return Ut.createElement(ns,{className:l("carouselCard",o),onClick:a?null:c,style:t,blocked:a,complete:d},n&&Ut.createElement(ss,{className:l("carouselCardImage",o),src:n,alt:p,style:{opacity:d||a?.4:1}}),d&&Ut.createElement(ds,{className:l("carouselCompletedPill",o)},Ut.createElement(us,{style:{color:"#108E0B"}},"Complete")),p&&Ut.createElement(ms,{blocked:a,complete:d,className:l("carouselCardTitle",o)},p),s&&Ut.createElement(We.Quiet,{blocked:a,complete:d,className:l("carouselCardSubtitle",o)},s))};import io from"react";var gs=({numberOfStepsCompleted:e,numberOfSteps:t,appearance:o})=>{let i=t>0?e/t:0,r=200;return io.createElement(as,{className:l("carouselProgressBar",o)},io.createElement(ps,{as:We.Loud,style:{marginRight:8}},e," of ",t),io.createElement("svg",{height:10,width:"100%",style:{minWidth:r}},io.createElement("rect",{x:0,y:0,rx:5,width:"100%",height:10,fill:"#E6E6E6"}),io.createElement("rect",{x:0,y:0,rx:5,width:`clamp(10px, 100% * ${i}, 100%)`,height:10,fill:"currentColor"})))};var Nd=()=>pe.createElement("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},pe.createElement("path",{d:"M14 6L20 12",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round"}),pe.createElement("path",{d:"M14 18L20 12",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round"}),pe.createElement("path",{d:"M4 12H20",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round"})),xs=({side:e="left",show:t=!1,onClick:o=()=>{}})=>{let[i,r]=bt(!1),[n,s]=bt(!1);xr(()=>{t===!0&&i===!1?r(!0):t===!1&&i===!0&&s(!0)},[t]);let p=()=>{r(!1),s(!1)},d=e=="left"?{top:0,bottom:0,left:-20,transform:"rotate(180deg)"}:{top:0,bottom:0,right:-20};return i?pe.createElement(os,{style:d,reversed:n,onAnimationEnd:n?p:null},pe.createElement(rs,{onClick:()=>o(),style:{right:16,top:"calc(50% - 24px)"}},pe.createElement(Nd,null))):null},hs=({flowId:e,appearance:t,customVariables:o,className:i})=>{let r=Id(null),[n,s]=bt(!1),[p,d]=bt(!1),[a,C]=bt(null),[c,g]=bt([]),[S,T]=bt(0),{isSmall:k}=Oo(),u=k?1:3,{getFlowMetadata:v,getFlowSteps:x,getNumberOfStepsCompleted:F,updateCustomVariables:N,isLoading:h}=Z();xr(()=>{N(o)},[o,h]),xr(()=>{if(h)return;let I=v(e),$=F(e),O=x(e);C(I),I.data!==null&&(g(O.sort((H,_)=>Number(H.complete)-Number(_.complete))),d(O.length>u),T($))},[h]);let m=[];for(let I=0;I<c.length;I+=u)m.push(c.slice(I,I+u));let w=I=>{let $=I.target,O=$.scrollWidth-$.clientWidth,H=Math.ceil($.scrollLeft);H>0&&n===!1&&s(!0),H===0&&n===!0&&s(!1),H<O&&p===!1&&d(!0),H===O&&p===!0&&d(!1)},y=(I=!0)=>{let $=I?1:-1;r.current!==null&&r.current.scrollBy({left:r.current.clientWidth*$,behavior:"smooth"})},
|
|
1239
|
+
`;var fs=({stepData:e,style:t={},appearance:o})=>{let{mergeAppearanceWithDefault:i}=te(),{primaryCTAClickSideEffects:r}=ae();o=i(o);let{imageUri:n=null,subtitle:s=null,title:p=null,complete:d=!1,blocked:a=!1}=e,C=e.primaryButtonTitle||e.secondaryButtonTitle,c=()=>{r(e)};return Ut.createElement(ns,{className:l("carouselCard",o),onClick:a?null:c,style:t,blocked:a,complete:d},n&&Ut.createElement(ss,{className:l("carouselCardImage",o),src:n,alt:p,style:{opacity:d||a?.4:1}}),d&&Ut.createElement(ds,{className:l("carouselCompletedPill",o)},Ut.createElement(us,{style:{color:"#108E0B"}},"Complete")),p&&Ut.createElement(ms,{blocked:a,complete:d,className:l("carouselCardTitle",o)},p),s&&Ut.createElement(We.Quiet,{blocked:a,complete:d,className:l("carouselCardSubtitle",o)},s))};import io from"react";var gs=({numberOfStepsCompleted:e,numberOfSteps:t,appearance:o})=>{let i=t>0?e/t:0,r=200;return io.createElement(as,{className:l("carouselProgressBar",o)},io.createElement(ps,{as:We.Loud,style:{marginRight:8}},e," of ",t),io.createElement("svg",{height:10,width:"100%",style:{minWidth:r}},io.createElement("rect",{x:0,y:0,rx:5,width:"100%",height:10,fill:"#E6E6E6"}),io.createElement("rect",{x:0,y:0,rx:5,width:`clamp(10px, 100% * ${i}, 100%)`,height:10,fill:"currentColor"})))};var Nd=()=>pe.createElement("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},pe.createElement("path",{d:"M14 6L20 12",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round"}),pe.createElement("path",{d:"M14 18L20 12",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round"}),pe.createElement("path",{d:"M4 12H20",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round"})),xs=({side:e="left",show:t=!1,onClick:o=()=>{}})=>{let[i,r]=bt(!1),[n,s]=bt(!1);xr(()=>{t===!0&&i===!1?r(!0):t===!1&&i===!0&&s(!0)},[t]);let p=()=>{r(!1),s(!1)},d=e=="left"?{top:0,bottom:0,left:-20,transform:"rotate(180deg)"}:{top:0,bottom:0,right:-20};return i?pe.createElement(os,{style:d,reversed:n,onAnimationEnd:n?p:null},pe.createElement(rs,{onClick:()=>o(),style:{right:16,top:"calc(50% - 24px)"}},pe.createElement(Nd,null))):null},hs=({flowId:e,appearance:t,customVariables:o,className:i})=>{let r=Id(null),[n,s]=bt(!1),[p,d]=bt(!1),[a,C]=bt(null),[c,g]=bt([]),[S,T]=bt(0),{isSmall:k}=Oo(),u=k?1:3,{getFlowMetadata:v,getFlowSteps:x,getNumberOfStepsCompleted:F,updateCustomVariables:N,isLoading:h}=Z();xr(()=>{N(o)},[o,h]),xr(()=>{if(h)return;let I=v(e),$=F(e),O=x(e);C(I),I.data!==null&&(g(O.sort((H,_)=>Number(H.complete)-Number(_.complete))),d(O.length>u),T($))},[h]);let m=[];for(let I=0;I<c.length;I+=u)m.push(c.slice(I,I+u));let w=I=>{let $=I.target,O=$.scrollWidth-$.clientWidth,H=Math.ceil($.scrollLeft);H>0&&n===!1&&s(!0),H===0&&n===!0&&s(!1),H<O&&p===!1&&d(!0),H===O&&p===!0&&d(!1)},y=(I=!0)=>{let $=I?1:-1;r.current!==null&&r.current.scrollBy({left:r.current.clientWidth*$,behavior:"smooth"})},E=null,L=I=>{E!==null?clearTimeout(E):w(I),E=setTimeout(()=>{w(I)},16)};return h?null:pe.createElement(ls,{className:Ce(l("carouselContainer",t),i)},pe.createElement("div",{style:{display:"flex",justifyContent:k?"center":"space-between",marginBottom:20,flexWrap:k?"wrap":"nowrap",gap:k?16:20}},pe.createElement("div",null,pe.createElement(cs,{className:l("carouselTitle",t)},a==null?void 0:a.title),pe.createElement(We.Quiet,{className:l("carouselSubtitle",t)},a==null?void 0:a.subtitle)),pe.createElement(gs,{numberOfStepsCompleted:S,numberOfSteps:c.length})),pe.createElement("div",{style:{position:"relative"}},pe.createElement(xs,{show:n,onClick:()=>y(!1)}),pe.createElement(xs,{side:"right",show:p,onClick:y}),pe.createElement(es,{ref:r,onScroll:L},m.map((I,$)=>pe.createElement(ts,{key:$,style:{flex:`0 0 calc(100% - ${c.length>u?36:0}px)`}},I.map((O,H)=>pe.createElement(fs,{key:H,stepData:O,style:{flex:c.length>u?`0 1 calc(100% / ${u} - 16px * 2 / ${u})`:1},appearance:t})))))),pe.createElement(se,{appearance:t}))};var hr=({flowId:e,title:t,subtitle:o,style:i,initialSelectedStep:r,className:n,type:s="inline",onDismiss:p,visible:d,customVariables:a,onStepCompletion:C,onButtonClick:c,appearance:g,hideOnFlowCompletion:S,setVisible:T,customStepTypes:k,checklistStyle:u="default",autoExpandFirstIncompleteStep:v,autoExpandNextStep:x,...F})=>{let{getFlow:N,getFlowSteps:h,markStepCompleted:m,getStepStatus:w,getNumberOfStepsCompleted:y,isLoading:E,targetingLogicShouldHideFlow:L,updateCustomVariables:I,getFlowMetadata:$,isStepBlocked:O,getFlowStatus:H,hasActiveFullPageFlow:_,setHasActiveFullPageFlow:oe}=Z(),{primaryCTAClickSideEffects:R,secondaryCTAClickSideEffects:K}=ae(),{getOpenFlowState:ee,setOpenFlowState:le}=Fe(),[X,G]=ys(r||0),[xe,Te]=ys(!1),q=d===void 0?ee(e):d,de=s==="modal",{mergeAppearanceWithDefault:z}=te(),{isLarge:D}=Oo();if(g=z(g),Cs(()=>{I(a)},[a,E]),Cs(()=>{d!==void 0&&(de&&d===!0?oe(!0):de&&d===!1&&oe(!1))},[d,T,_]),E)return null;let re=N(e);if(!re||L(re))return null;let V=h(e);if(!V||S===!0&&H(e)===Q)return null;let ie=$(e);if(ie!=null&&ie.title&&(t=ie.title),ie!=null&&ie.subtitle&&(o=ie.subtitle),!xe&&r===void 0&&y(e)>0){let A=V.findIndex(J=>J.complete===!1);G(A>-1?A:V.length-1),Te(!0)}function je(){if(X+1>=V.length){de&&le(e,!1);return}O(e,V[X+1].id)||G(X+1)}function De(A,J,ct){let kr=X+1<V.length?V[X+1]:null;c&&c(A,X,J,kr)===!0&&de&&$e(),C&&C(A,ct,kr),!C&&!c&&(A.primaryButtonUri||A.secondaryButtonUri)&&de&&$e()}function dt(){return V.map((A,J)=>({...A,handleSecondaryButtonClick:()=>{je(),K(A),A.skippable===!0&&m(e,A.id,{skipped:!0}),De(A,"secondary",J)},handlePrimaryButtonClick:()=>{(!A.completionCriteria&&(A.autoMarkCompleted||A.autoMarkCompleted===void 0)||A.completionCriteria&&A.autoMarkCompleted===!0)&&(m(e,A.id),je()),De(A,"primary",J),R(A),w(e,A.id)===Ne&&je()}}))}function W(){return me.createElement(se,{appearance:g})}let ve={steps:dt(),title:t,subtitle:o,primaryColor:g.theme.colorPrimary,appearance:g,customStepTypes:k,type:s,className:n,autoExpandFirstIncompleteStep:v,autoExpandNextStep:x};function $e(){le(e,!1),p&&p(),T&&T(!1)}function _o(){return me.createElement(me.Fragment,null,me.createElement(W,null),me.createElement(hs,{flowId:e,appearance:g,customVariables:a,className:n}))}function f(){return me.createElement(me.Fragment,null,me.createElement(W,null),me.createElement(gr,{visible:q,onClose:()=>{$e()},selectedStep:X,setSelectedStep:G,autoExpandNextStep:!0,appearance:g,...ve}))}function b(){if(!D)return f();let A=F.guideFlowId,J;return A&&N(A)&&(J=h(A)),me.createElement(me.Fragment,null,me.createElement(W,null),me.createElement(fr,{visible:q,stepsTitle:ie.stepsTitle?ie.stepsTitle:"Your quick start guide",onClose:()=>{$e()},selectedStep:X,setSelectedStep:G,guideData:J,guideTitle:F.guideTitle??"Guide",appearance:g,title:t,subtitle:o,onGuideButtonClick:ct=>{De(ct,"link",0)},customStepTypes:k,...ve}))}function B(){if(!D)return f();let A=me.createElement(mr,{flowId:e,style:i,selectedStep:X,setSelectedStep:G,appearance:g,type:s,...ve});return de?me.createElement(tt,{onClose:()=>{$e()},visible:q,appearance:g,style:{paddingTop:"0px",padding:"12px",paddingLeft:0}},me.createElement(W,null),A):me.createElement(me.Fragment,null,me.createElement(W,null),A)}switch(u){case"condensed":return f();case"with-guide":return b();case"default":return B();case"carousel":return _o();default:return B()}};var Od=e=>Ld.createElement(hr,{type:"inline",...e});import pt,{useEffect as $d}from"react";import He from"react";import Do from"styled-components";var Ss=Do.div`
|
|
1240
1240
|
border: 1px solid ${e=>e.appearance.theme.colorBorder};
|
|
1241
1241
|
border-radius: 8px;
|
|
1242
1242
|
padding: 6px 10px 6px 10px;
|
|
@@ -1342,7 +1342,7 @@ ${i=>i.inlineStyles.map(([r,n])=>`.${jt}${r}.${jt}${r} { ${Object.entries(n).map
|
|
|
1342
1342
|
`,Xd=lo(Ds)`
|
|
1343
1343
|
width: ${zt+12}px;
|
|
1344
1344
|
height: ${zt+12}px;
|
|
1345
|
-
`,Jd=({steps:e=[],onDismiss:t,onComplete:o=()=>{},tooltipPosition:i="auto",showHighlight:r=!0,primaryColor:n="#000000",offset:s={x:0,y:0},visible:p=!0,containerStyle:d={},selectedStep:a=0,customStepTypes:C,appearance:c,dismissible:g=!1,showHighlightOnly:S,showStepCount:T=!0,completedStepsCount:k=0,showFrigadeBranding:u=!1})=>{var ie,je,De,dt;let[v,x]=so(),[F,N]=so(new Date),h=jd(null),[m,w]=so(document.querySelector(e[a].selector)),y=Is(m,F),[
|
|
1345
|
+
`,Jd=({steps:e=[],onDismiss:t,onComplete:o=()=>{},tooltipPosition:i="auto",showHighlight:r=!0,primaryColor:n="#000000",offset:s={x:0,y:0},visible:p=!0,containerStyle:d={},selectedStep:a=0,customStepTypes:C,appearance:c,dismissible:g=!1,showHighlightOnly:S,showStepCount:T=!0,completedStepsCount:k=0,showFrigadeBranding:u=!1})=>{var ie,je,De,dt;let[v,x]=so(),[F,N]=so(new Date),h=jd(null),[m,w]=so(document.querySelector(e[a].selector)),y=Is(m,F),[E,L]=so(),[I,$]=so(!S),O=(je=(ie=e[a])==null?void 0:ie.props)!=null&&je.position?e[a].props.position:"absolute",H=((dt=(De=e[a])==null?void 0:De.props)==null?void 0:dt.zIndex)??90,_=(v==null?void 0:v.width)??Ls,oe=(v==null?void 0:v.height)??Os;Ns(()=>{h.current&&x({width:h.current.clientWidth,height:h.current.clientHeight})},[a,F,O]),$o(()=>{S||$(!0)},[a]);let R=i==="auto"?"right":i,K=Cr(y,R,_,s,O),ee=y.right+_>(window.innerWidth||document.documentElement.clientWidth),le=y.bottom+Os>(window.innerHeight||document.documentElement.clientHeight);ee&&i==="auto"&&(K=Cr(y,"left",_,s,O),R="left");let X=window.location.pathname.split("/").pop(),G=()=>{let W=document.querySelector(e[a].selector);if(!W){L(void 0),w(null);return}E&&E===JSON.stringify(W==null?void 0:W.getBoundingClientRect())||(w(W),N(new Date),W&&L(JSON.stringify(W.getBoundingClientRect())))};if($o(()=>{let W=new MutationObserver(G);return W.observe(document.body,{subtree:!0,childList:!0}),()=>W.disconnect()},[G]),$o(()=>{let W=new MutationObserver(G);return W.observe(document.body,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["style","class"]}),()=>W.disconnect()},[G]),$o(()=>{let W=setInterval(()=>{G()},10);return()=>clearInterval(W)},[G]),Ns(()=>{setTimeout(()=>{G()},Gd),G()},[a,X]),m===null)return M.createElement(M.Fragment,null);if(K.x==0&&K.y==0)return M.createElement(M.Fragment,null);if(!p)return M.createElement(M.Fragment,null);let xe=()=>{let W=()=>{if(e[a].handlePrimaryButtonClick&&(e[a].handlePrimaryButtonClick(),$(!1),setTimeout(()=>{G()},30)),k===e.length-1)return o()},ve=()=>{e[a].handleSecondaryButtonClick&&(e[a].handleSecondaryButtonClick(),S&&!e[a].secondaryButtonUri&&$(!1))};return M.createElement(M.Fragment,null,T&&e.length>1&&M.createElement(Ur,null,M.createElement(_r,{className:l("tooltipStepCounter",c)},a+1," of ",e.length)),M.createElement(zr,{showStepCount:T,className:l("tooltipCTAContainer",c)},e[a].secondaryButtonTitle&&M.createElement(ne,{title:e[a].secondaryButtonTitle,appearance:c,onClick:ve,size:"small",withMargin:!1,secondary:!0}),e[a].primaryButtonTitle&&M.createElement(ne,{title:e[a].primaryButtonTitle,appearance:c,onClick:W,withMargin:!1,size:"small"})))},Te=()=>M.createElement(M.Fragment,null,g&&M.createElement(Or,{"data-testid":"tooltip-dismiss",onClick:()=>{t&&t()},className:l("tooltipClose",c)},M.createElement(ke,null)),e[a].imageUri&&M.createElement(Dr,{dismissible:g,appearance:c,src:e[a].imageUri,className:l("tooltipImageContainer",c)}),e[a].videoUri&&!e[a].imageUri&&M.createElement($r,{dismissible:g,appearance:c,className:l("tooltipVideoContainer",c)},M.createElement(st,{appearance:c,videoUri:e[a].videoUri})),M.createElement(ye,{appearance:c,title:e[a].title,subtitle:e[a].subtitle,size:"small"}),M.createElement(Mr,{className:l("tooltipFooter",c)},M.createElement(xe,null))),de={...{default:W=>{var ve;if((ve=e[a])!=null&&ve.StepContent){let $e=e[a].StepContent;return M.createElement("div",null,$e)}return M.createElement(Te,null)}},...C},z=()=>{var W;return e?!((W=e[a])!=null&&W.type)||!de[e[a].type]?de.default(e[a]):de[e[a].type]({stepData:e[a],primaryColor:n}):M.createElement(M.Fragment,null)};if(S&&e[a].complete===!0)return null;let D={top:(K==null?void 0:K.y)-zt,left:(R=="left"?y.x+s.x:(K==null?void 0:K.x)-zt)??0,cursor:S?"pointer":"default",position:O},re=()=>{let ve=D.left+(R=="left"?-_:24);return Math.min(Math.max(ve,20),window.innerWidth-_-20)},V=()=>{S&&(N(new Date),$(!I))};return M.createElement(Yd,null,M.createElement(Xd,{style:D,zIndex:H,className:l("tourHighlightContainer",c)},r&&e[a].showHighlight!==!1&&M.createElement(M.Fragment,null,M.createElement(Kd,{style:{position:O},onClick:V,primaryColor:c.theme.colorPrimary,className:l("tourHighlightInnerCircle",c)}),M.createElement(qd,{style:{position:"absolute"},onClick:V,primaryColor:c.theme.colorPrimary,className:l("tourHighlightOuterCircle",c)}))),M.createElement(Ds,{style:{...D,left:re()},zIndex:H+1,className:l("tooltipContainerWrapper",c)},I&&M.createElement(M.Fragment,null,M.createElement(co,{ref:h,layoutId:"tooltip-container",style:{position:"relative",width:"max-content",right:0,top:12,...d},appearance:c,className:l("tooltipContainer",c),maxWidth:Ls,zIndex:H+10},M.createElement(z,null)),u&&M.createElement(Hr,{className:l("poweredByFrigadeTooltipRibbon",c),appearance:c,zIndex:H+10},M.createElement(mo,{appearance:c})))))},Mo=Jd;import{Portal as Rd}from"react-portal";var ec=({flowId:e,customVariables:t,appearance:o,onStepCompletion:i,onButtonClick:r,showTooltipsSimultaneously:n=!1,onDismiss:s,dismissible:p,tooltipPosition:d="auto",showHighlightOnly:a=!1,dismissBehavior:C="complete-flow",onComplete:c,skipIfNotFound:g=!1,...S})=>{let{getFlow:T,getFlowSteps:k,isLoading:u,targetingLogicShouldHideFlow:v,markStepCompleted:x,markStepStarted:F,markFlowCompleted:N,updateCustomVariables:h,getCurrentStepIndex:m,getStepStatus:w,isStepBlocked:y,getFlowStatus:E,getNumberOfStepsCompleted:L}=Z(),{isLoadingUserFlowStateData:I}=Ee(),{primaryCTAClickSideEffects:$,secondaryCTAClickSideEffects:O}=ae(),{hasOpenModals:H}=Fe(),_=m(e),{openFlowStates:oe}=Qd(j),{mergeAppearanceWithDefault:R}=te();if(o=R(o),Zd(()=>{h(t)},[t,u]),I)return null;let K=T(e);if(!K||v(K)||E(e)==Q||H())return null;let ee=k(e);if(Object.keys(oe).length>0){let z=Object.keys(oe).find(D=>oe[D]===!0);if(z!==void 0&&z!==e)return _t.createElement(_t.Fragment,null)}async function le(z){if(await x(e,z.id),ee.map(D=>w(e,D.id)).every(D=>D===Ne)){await N(e);return}if(!a&&_+1<ee.length){if(y(e,ee[_+1].id))return;await F(e,ee[_+1].id)}}function X(z,D,re){let V=_+1<ee.length?ee[_+1]:null;r&&r(z,_,D,V),i&&i(z,re,V)}function G(){return ee.map(z=>({...z,handleSecondaryButtonClick:async()=>{O(z),z.skippable===!0&&await x(e,z.id,{skipped:!0}),X(z,"secondary",_)},handlePrimaryButtonClick:async()=>{(!z.completionCriteria&&(z.autoMarkCompleted||z.autoMarkCompleted===void 0)||z.completionCriteria&&z.autoMarkCompleted===!0)&&await le(z),X(z,"primary",_),$(z)}}))}async function xe(z){s&&s(),C==="complete-flow"?await N(e):await x(e,z.id)}function Te(){c&&c()}let q=!document.querySelector(ee[_].selector);function de(){let z=ee.findIndex(D=>!!document.querySelector(D.selector));return ee.map((D,re)=>q&&!n&&re!==z&&g?null:_t.createElement(Mo,{key:D.id,appearance:o,steps:G(),selectedStep:re,showTooltipsSimultaneously:n,dismissible:p,onDismiss:()=>xe(D),tooltipPosition:d,showHighlightOnly:a,completedStepsCount:L(e),onComplete:Te,...S}))}return _t.createElement(Rd,null,_t.createElement(se,{appearance:o}),n||q&&g?de():_t.createElement(Mo,{appearance:o,steps:G(),selectedStep:_,showTooltipsSimultaneously:n,dismissible:p,onDismiss:()=>xe(ee[_]),tooltipPosition:d,completedStepsCount:L(e),showHighlightOnly:a,onComplete:Te,...S}))};import be,{useEffect as tc,useRef as oc,useState as rc}from"react";import{Portal as ic}from"react-portal";import wt from"styled-components";var $s=wt.button`
|
|
1346
1346
|
${e=>P(e)} {
|
|
1347
1347
|
// Anything inside this block will be ignored if the user provides a custom class
|
|
1348
1348
|
|
|
@@ -1430,7 +1430,7 @@ ${i=>i.inlineStyles.map(([r,n])=>`.${jt}${r}.${jt}${r} { ${Object.entries(n).map
|
|
|
1430
1430
|
font-size: 14px;
|
|
1431
1431
|
|
|
1432
1432
|
padding: 8px 12px;
|
|
1433
|
-
`;import{AnimatePresence as Ks,motion as Ys}from"framer-motion";import Vs from"react";var js=({style:e,className:t})=>Vs.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",fill:"none",viewBox:"0 0 18 18",style:e,className:t},Vs.createElement("path",{fill:"currentColor",d:"M13.43 4.938a4.494 4.494 0 00-1.043-1.435A4.955 4.955 0 009 2.197c-1.276 0-2.48.464-3.387 1.305A4.502 4.502 0 004.57 4.938a4.242 4.242 0 00-.386 1.773v.475c0 .109.087.197.196.197h.95a.197.197 0 00.197-.197V6.71c0-1.749 1.557-3.17 3.473-3.17s3.473 1.421 3.473 3.17c0 .718-.254 1.393-.738 1.955a3.537 3.537 0 01-1.9 1.125 1.928 1.928 0 00-1.085.682c-.271.343-.42.768-.42 1.206v.552c0 .109.088.197.197.197h.95a.197.197 0 00.196-.197v-.552c0-.276.192-.519.457-.578a4.904 4.904 0 002.625-1.56c.335-.392.597-.828.778-1.3a4.256 4.256 0 00-.103-3.303zM9 13.834a.985.985 0 10.001 1.97.985.985 0 00-.001-1.97z"}));import Gs from"react";var qs=({style:e,className:t})=>Gs.createElement("svg",{style:e,className:t,xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:"1.5",stroke:"currentColor"},Gs.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9 5.25h.008v.008H12v-.008z"}));var nc=({flowId:e,style:t,onStepCompletion:o,visible:i=!0,type:r="inline",title:n="Help",appearance:s})=>{let{getFlow:p,getFlowSteps:d,markStepCompleted:a,getStepStatus:C,getNumberOfStepsCompleted:c,isLoading:g,targetingLogicShouldHideFlow:S}=Z(),{primaryCTAClickSideEffects:T}=ae(),k=oc(null),[u,v]=rc(!1),{mergeAppearanceWithDefault:x}=te();s=x(s),tc(()=>(document.addEventListener("click",F,!1),()=>{document.removeEventListener("click",F,!1)}),[]);let F=y=>{k.current&&!k.current.contains(y.target)&&v(!1)};if(g)return null;let N=p(e);if(!N||S(N))return null;let h=d(e);if(!h||!i)return null;function m(y,
|
|
1433
|
+
`;import{AnimatePresence as Ks,motion as Ys}from"framer-motion";import Vs from"react";var js=({style:e,className:t})=>Vs.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",fill:"none",viewBox:"0 0 18 18",style:e,className:t},Vs.createElement("path",{fill:"currentColor",d:"M13.43 4.938a4.494 4.494 0 00-1.043-1.435A4.955 4.955 0 009 2.197c-1.276 0-2.48.464-3.387 1.305A4.502 4.502 0 004.57 4.938a4.242 4.242 0 00-.386 1.773v.475c0 .109.087.197.196.197h.95a.197.197 0 00.197-.197V6.71c0-1.749 1.557-3.17 3.473-3.17s3.473 1.421 3.473 3.17c0 .718-.254 1.393-.738 1.955a3.537 3.537 0 01-1.9 1.125 1.928 1.928 0 00-1.085.682c-.271.343-.42.768-.42 1.206v.552c0 .109.088.197.197.197h.95a.197.197 0 00.196-.197v-.552c0-.276.192-.519.457-.578a4.904 4.904 0 002.625-1.56c.335-.392.597-.828.778-1.3a4.256 4.256 0 00-.103-3.303zM9 13.834a.985.985 0 10.001 1.97.985.985 0 00-.001-1.97z"}));import Gs from"react";var qs=({style:e,className:t})=>Gs.createElement("svg",{style:e,className:t,xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:"1.5",stroke:"currentColor"},Gs.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9 5.25h.008v.008H12v-.008z"}));var nc=({flowId:e,style:t,onStepCompletion:o,visible:i=!0,type:r="inline",title:n="Help",appearance:s})=>{let{getFlow:p,getFlowSteps:d,markStepCompleted:a,getStepStatus:C,getNumberOfStepsCompleted:c,isLoading:g,targetingLogicShouldHideFlow:S}=Z(),{primaryCTAClickSideEffects:T}=ae(),k=oc(null),[u,v]=rc(!1),{mergeAppearanceWithDefault:x}=te();s=x(s),tc(()=>(document.addEventListener("click",F,!1),()=>{document.removeEventListener("click",F,!1)}),[]);let F=y=>{k.current&&!k.current.contains(y.target)&&v(!1)};if(g)return null;let N=p(e);if(!N||S(N))return null;let h=d(e);if(!h||!i)return null;function m(y,E){!y.completionCriteria&&(y.autoMarkCompleted||y.autoMarkCompleted===void 0)&&a(e,y.id),T(y),o&&o(y,E),v(!1)}function w(){return u&&be.createElement(Ws,{className:l("floatingWidgetMenu",s),as:Ys.div,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.1},type:r},h.map((y,E)=>be.createElement(Hs,{className:l("floatingWidgetMenuItem",s),key:E,onClick:()=>m(y,E)},y.title)))}return r=="inline"?be.createElement("span",{ref:k},be.createElement($s,{style:t,onClick:()=>{v(!u)},className:l("supportButton",s)},be.createElement(Us,{className:l("supportIconContainer",s)},be.createElement(qs,{className:l("supportIcon",s),style:{width:"18px",height:"18px"}})),be.createElement(Ms,{className:l("supportButtonTitle",s)},n)),be.createElement(Ks,null,be.createElement(w,null))):be.createElement(ic,null,be.createElement(zs,{style:t,ref:k},be.createElement(Ks,null,be.createElement(w,null)),be.createElement(_s,{onClick:()=>{v(!u)},as:Ys.button,whileHover:{scale:1.1},className:l("floatingWidgetButton",s)},be.createElement(js,{className:l("floatingWidgetButtonIcon",s),style:{display:"flex",width:"20px",height:"20px"}}))))};import Ve,{useEffect as sc}from"react";import Uo from"styled-components";var Xs=Uo.div`
|
|
1434
1434
|
${e=>P(e)} {
|
|
1435
1435
|
display: flex;
|
|
1436
1436
|
flex-direction: column;
|
|
@@ -1598,5 +1598,5 @@ ${i=>i.inlineStyles.map(([r,n])=>`.${jt}${r}.${jt}${r} { ${Object.entries(n).map
|
|
|
1598
1598
|
opacity: 0.8;
|
|
1599
1599
|
}
|
|
1600
1600
|
}
|
|
1601
|
-
`;var mc=({flowId:e,onDismiss:t,customVariables:o,onButtonClick:i,appearance:r,className:n,style:s,type:p="modal"})=>{let{getFlow:d,markFlowCompleted:a,markStepCompleted:C,getNumberOfStepsCompleted:c,isLoading:g,targetingLogicShouldHideFlow:S,updateCustomVariables:T,getFlowSteps:k,getFlowStatus:u,getCurrentStepIndex:v}=Z(),{primaryCTAClickSideEffects:x}=ae(),{mergeAppearanceWithDefault:F}=te(),[N,h]=Y.useState(null),[m,w]=Y.useState(""),{hasOpenModals:y,setKeepCompletedFlowOpenDuringSession:
|
|
1601
|
+
`;var mc=({flowId:e,onDismiss:t,customVariables:o,onButtonClick:i,appearance:r,className:n,style:s,type:p="modal"})=>{let{getFlow:d,markFlowCompleted:a,markStepCompleted:C,getNumberOfStepsCompleted:c,isLoading:g,targetingLogicShouldHideFlow:S,updateCustomVariables:T,getFlowSteps:k,getFlowStatus:u,getCurrentStepIndex:v}=Z(),{primaryCTAClickSideEffects:x}=ae(),{mergeAppearanceWithDefault:F}=te(),[N,h]=Y.useState(null),[m,w]=Y.useState(""),{hasOpenModals:y,setKeepCompletedFlowOpenDuringSession:E,shouldKeepCompletedFlowOpenDuringSession:L}=Fe();if(r=F(r),dc(()=>{T(o)},[o,g]),g)return null;let I=d(e);if(!I||S(I)||u(e)===Q||c(e)===1&&!L(e)||y())return null;let O=k(e)[v(e)];function H(){return Y.createElement(Y.Fragment,null,Y.createElement(Tr,null,Y.createElement(ye,{size:"large",appearance:r,title:O.title,subtitle:O.subtitle})),Y.createElement(br,{className:l("npsNumberButtonContainer",r),appearance:r},Array.from(Array(10).keys()).map(R=>Y.createElement(sl,{className:l("npsNumberButton",r),selected:N===R+1,key:R,onClick:async()=>{E(e),h(R+1),await C(e,O.id,{score:R+1})},appearance:r},R+1))),Y.createElement(ll,{appearance:r},Y.createElement(wr,{appearance:r},"Not likely at all"),Y.createElement(wr,{appearance:r},"Extremely likely")))}function _(){return Y.createElement(Y.Fragment,null,Y.createElement(Tr,null,Y.createElement(ye,{appearance:r,title:"Why did you choose this score?",size:"large"})),Y.createElement(al,{appearance:r,value:m,onChange:R=>{w(R.target.value)},placeHolder:"Add your optional fedback here..."}),Y.createElement(br,{appearance:r,className:l("npsNumberButtonContainer",r)},Y.createElement(ne,{size:"large",withMargin:!1,onClick:async()=>{await a(e),i&&i(O,1,"primary")},appearance:r,title:O.secondaryButtonTitle||"Skip",secondary:!0}),Y.createElement(ne,{size:"large",withMargin:!1,onClick:async()=>{await C(e,O.id,{feedbackText:m}),await a(e),i&&i(O,1,"primary")},appearance:r,title:O.primaryButtonTitle||"Submit"})))}function oe(){return Y.createElement(Y.Fragment,null,Y.createElement(se,{appearance:r}),Y.createElement(nl,{appearance:r,className:Ce(l("npsSurveyContainer",r),n),style:s,type:p},Y.createElement(pl,{onClick:async()=>{await a(e),t&&t()},className:l("npsSurveyDismissButton",r)},Y.createElement(ke,null)),c(e)==0&&H(),c(e)==1&&_()))}return p==="inline"?oe():Y.createElement(cc,null,oe())};import*as zo from"react";import dl from"react";var cl=({as:e="span",children:t,variant:o="Body1",...i})=>dl.createElement(_i,{color:"neutral.foreground",fontFamily:"default",forwardedAs:e,variant:o,...i},t),uc=Object.fromEntries(Object.keys(Po).map(e=>{let t=["H1","H2","H3","H4"].includes(e)?e.toLowerCase():void 0,o=i=>dl.createElement(cl,{as:t,...i,variant:e},i.children);return o.displayName=`Text.${e}`,[e,o]})),Fr=Object.assign(cl,uc);var ml=({as:e="button",className:t,size:o="md",title:i,variant:r="Primary",...n})=>{var s;return zo.createElement(zi,{className:`fr-button-${r.toLowerCase()}${t?` ${t}`:""}`,forwardedAs:e,variant:r,size:o,borderRadius:"md",...n},zo.createElement(Fr,{color:(s=eo[r])==null?void 0:s.color,fontWeight:"semibold"},i))},fc=Object.fromEntries(Object.keys(eo).map(e=>{let t=o=>zo.createElement(ml,{...o,variant:e});return t.displayName=`Button.${e}`,[e,t]})),gc=Object.assign(ml,fc);export{Rt as Box,gc as Button,Ke as CheckBox,rt as FormLabel,Jo as FormTextField,pc as FrigadeBanner,hr as FrigadeChecklist,qe as FrigadeDefaultAppearance,lc as FrigadeEmbeddedTip,Ai as FrigadeForm,zd as FrigadeGuide,Od as FrigadeHeroChecklist,mc as FrigadeNPSSurvey,Md as FrigadeProgressBadge,Dp as FrigadeProvider,nc as FrigadeSupportWidget,ec as FrigadeTour,Bt as ProgressRing,Fr as Text,ar as tokens,Fe as useFlowOpens,Ht as useFlowResponses,Z as useFlows,sr as useOrganization,Vt as useUser};
|
|
1602
1602
|
//# sourceMappingURL=index.mjs.map
|