@frigade/react 1.33.3 → 1.33.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +2 -2
- package/lib/index.mjs.map +1 -1
- package/package.json +1 -1
package/lib/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import ht,{createContext as Ap,useEffect as vo,useState as Ae}from"react";import{ThemeProvider as Ip}from"styled-components";import xt,{useContext as rp,useEffect as ko,useState as sr}from"react";import{useCallback as ut,useContext as kl,useEffect as Pl}from"react";import _o,{useMemo as Pr}from"react";var kr="1.33.3 ";var Be="NOT_STARTED_STEP",Z="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}=_o.useContext(j);return{config:Pr(()=>({headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Frigade-SDK-Version":kr,"X-Frigade-SDK-Platform":"React"}}),[e,t]),apiUrl:Pr(()=>`${o}/v1/public/`,[o])}}var ul="frigade-last-call-at-",fl="frigade-last-call-data-";function Ft(){let{shouldGracefullyDegrade:e,readonly:t}=_o.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}=_o.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 vr}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,f=!1){return e[c]??f}function s(c,f){t(y=>({...y,[c]:f}))}function p(c){t(f=>{let{[c]:y,...T}=f;return{...T}})}function d(c){r.includes(c)||i(f=>[...f,c])}function a(c){return r.includes(c)}function h(c){return Object.entries(e).some(([f,y])=>y&&f!=c)||o}return{getOpenFlowState:n,setOpenFlowState:s,resetOpenFlowState:p,hasOpenModals:h,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,h]=Cl(!1),c={data:n.map(C=>({flowId:C.id,flowState:Z,lastStepId:null,userId:i,foreignUserId:i,stepStates:{},shouldTrigger:!1}))},f=C=>fetch(C,e).then(B=>{if(B.ok)return B.json();throw new Error("Failed to fetch user flow states")}).catch(B=>(console.log(`Error fetching ${C}: ${B}. Will gracefully degrade and hide Frigade`),s(!0),c)),y=o&&n&&i?`${t}userFlowStates?foreignUserId=${encodeURIComponent(i)}${r?`&foreignUserGroupId=${encodeURIComponent(r)}`:""}`:null,{data:T,isLoading:P,mutate:g,error:v}=p?Sl(y,f):yl(y,f,{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&&!P&&x&&h(!0)},[x,a,P]);async function F(C){if(x&&!p){let B=x.find(L=>L.flowId===C);B&&B.flowState!==Z&&(B.flowState=Z),await g(Promise.resolve({...T,data:x}),{optimisticData:{...T,data:x},revalidate:!1,rollbackOnError:!1})}}async function I(C,B,L){if(x){let M=x.find(N=>N.flowId===C);M&&(M.stepStates[B]=L,M.flowState=mt),await g(Promise.resolve({...T,data:x}),{optimisticData:{...T,data:x},revalidate:!1,rollbackOnError:!1})}}async function S(C,B,L){if(x){let M=x.find(N=>N.flowId===C);M&&(M.lastStepId=B,M.stepStates[B]=L,M.flowState=mt),await g({...T,data:x},{optimisticData:{...T,data:x},revalidate:!1,rollbackOnError:!1})}}async function m(C){if(x){let B=x.find(L=>L.flowId===C);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 g({...T,data:x},{optimisticData:{...T,data:x},revalidate:!1,rollbackOnError:!1}),d(C))}}async function w(C,B){if(x){let L=x.find(M=>M.flowId===C);L&&L.stepStates[B]!==Be&&(L.stepStates[B]=Be),await g({...T,data:x},{optimisticData:{...T,data:x},revalidate:!1,rollbackOnError:!1})}}return{userFlowStatesData:x,isLoadingUserFlowStateData:!a,mutateUserFlowState:g,optimisticallyMarkFlowCompleted:F,optimisticallyMarkFlowNotStarted:m,optimisticallyMarkStepCompleted:I,optimisticallyMarkStepNotStarted:w,optimisticallyMarkStepStarted:S,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]=vr(new Set),[h,c]=vr(new Set),f=Ft();function y(g){let v=JSON.stringify(g);if(d.has(v))return null;d.add(v),a(d),h.add(g),c(h);let x=s==null?void 0:s.find(F=>F.flowSlug===g.flowSlug&&F.stepId===g.stepId&&F.actionType===g.actionType&&F.createdAt===g.createdAt);return f(`${t}flowResponses`,{...e,method:"POST",body:v}).then(F=>{F.status!==200&&F.status!==201?(console.log("Failed to send flow response for step "+g.stepId+". Will retry again later."),n([...r,g])):x||p(I=>[...I??[],g])})}async function T(g){g.foreignUserId&&(g.actionType===mt||g.actionType===Ie?await y(g):g.actionType===Z?await y(g):g.actionType===po?await y(g):g.actionType===Ne?await y(g):g.actionType===ao?await y(g):g.actionType===Be&&await y(g))}function P(){let g=[];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];g.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})}}),[...g,...s]}return{addResponse:T,setFlowResponses:p,getFlowResponses:P}}import vl from"swr";var Tl=/user.flow\(([^\)]+)\) == '?COMPLETED_FLOW'?/gm,Br=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 R(){let{config:e,apiUrl:t}=Me(),{flows:o,setFlows:i,userId:r,publicApiKey:n,customVariables:s,setCustomVariables:p,hasActiveFullPageFlow:d,setHasActiveFullPageFlow:a,setFlowResponses:h,setShouldGracefullyDegrade:c,readonly:f}=kl(j),y={data:[]},{verifySDKInitiated:T}=kt(),{addResponse:P,getFlowResponses:g}=Ht(),v=u=>fetch(u,e).then(b=>b.ok?b.json():(console.log(`Error fetching ${u} (${b.status}): ${b.statusText}. .Will gracefully degrade and hide Frigade`),c(!0),y)).catch(b=>(console.log(`Error fetching ${u}: ${b}. Will gracefully degrade and hide Frigade`),c(!0),y)),{userFlowStatesData:x,isLoadingUserFlowStateData:F,optimisticallyMarkFlowCompleted:I,optimisticallyMarkFlowNotStarted:S,optimisticallyMarkStepCompleted:m,optimisticallyMarkStepNotStarted:w,optimisticallyMarkStepStarted:C}=Ee(),{data:B,error:L,isLoading:M}=vl(n?`${t}flows${f?"?readonly=true":""}`:null,v,{keepPreviousData:!0});Pl(()=>{if(L){console.error(L);return}B&&B.data&&i(B.data)},[B,L]);function N(u){if(M)return null;let b=o.find(E=>E.slug===u);return!b&&o.length>0&&!F&&!M?(console.log(`Flow with slug ${u} not found`),null):(b==null?void 0:b.active)===!1?null:b}function O(u){var A;if(!N(u))return[];let b=N(u).data;return b?(b=H(b),(((A=JSON.parse(b))==null?void 0:A.data)??[]).map(Q=>{let ct=je(Q);return{handleSecondaryButtonClick:()=>{Q.skippable===!0&&le(u,Q.id,{skipped:!0})},...Q,complete:de(u,Q.id)===Ne||ct>=1,blocked:_(u,Q.id),hidden:D(u,Q.id),handlePrimaryButtonClick:()=>{(!Q.completionCriteria&&(Q.autoMarkCompleted||Q.autoMarkCompleted===void 0)||Q.completionCriteria&&Q.autoMarkCompleted===!0)&&le(u,Q.id)},progress:ct}}).filter(Q=>Q.hidden!==!0)):[]}function H(u){return u.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 $(u){if(!N(u))return[];let b=N(u).data;return b?(b=H(b),JSON.parse(b)??{}):[]}function X(u,b){p(E=>({...E,[u]:b}))}function ee(u){!F&&!M&&u&&JSON.stringify(s)!=JSON.stringify({...s,...u})&&Object.keys(u).forEach(b=>{X(b,u[b])})}let K=ut(async(u,b,E)=>{T();let A={foreignUserId:r,flowSlug:u,stepId:b,actionType:po,data:E??{},createdAt:new Date,blocked:!1,hidden:!1};q(A)&&(await C(u,b,A),P(A))},[r,x]),te=ut(async(u,b,E)=>{T();let A={foreignUserId:r,flowSlug:u,stepId:b,actionType:Be,data:E??{},createdAt:new Date,blocked:!1,hidden:!1};q(A)&&(await w(u,b),P(A))},[r,x]),le=ut(async(u,b,E)=>{T();let A={foreignUserId:r,flowSlug:u,stepId:b,actionType:Ne,data:E??{},createdAt:new Date,blocked:!1,hidden:!1};q(A)&&(await m(u,b,A),P(A))},[r,x]),J=ut(async(u,b)=>{if(T(),De(u)===Ie)return;let E={foreignUserId:r,flowSlug:u,stepId:"unknown",actionType:Ie,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};await S(u),q(E)&&P(E)},[r,x]),G=ut(async(u,b)=>{T();let E={foreignUserId:r,flowSlug:u,stepId:"unknown",actionType:mt,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};q(E)&&P(E)},[r,x]),xe=ut(async(u,b)=>{T();let E={foreignUserId:r,flowSlug:u,stepId:"unknown",actionType:Z,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};q(E)&&(await I(u),P(E))},[r,x]),Te=ut(async(u,b)=>{T();let E={foreignUserId:r,flowSlug:u,stepId:"unknown",actionType:ao,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};q(E)&&(await I(u),P(E))},[r,x]);function q(u){var b;if(!x&&u.actionType===Be)return!1;if(x){let E=x.find(A=>A.flowId===u.flowSlug);if(u.actionType===Be&&(!(E!=null&&E.stepStates[u.stepId])||E.stepStates[u.stepId].actionType===Be)||E&&((b=E.stepStates[u.stepId])==null?void 0:b.actionType)===u.actionType||E&&E.flowState===Z&&u.actionType===Z)return!1}return!0}function de(u,b){let E=re(u,b);return F?null:E?E.actionType:Be}function _(u,b){let E=re(u,b);return E?E.blocked:!1}function D(u,b){let E=re(u,b);return E?E.hidden:!1}function re(u,b){if(F)return null;let E=x==null?void 0:x.find(A=>A.flowId===u);return!E||!E.stepStates[b]?null:E.stepStates[b]??null}function V(u){var E;if(F||!x)return null;if(De(u)===Ie)return O(u)[0]??null;let b=(E=x.find(A=>A.flowId===u))==null?void 0:E.lastStepId;return b?O(u).find(A=>A.id===b):null}function ie(u){let b=V(u);if(!b)return 0;let E=O(u).findIndex(A=>A.id===b.id)??0;return de(u,b.id)===Ne&&E<O(u).length-1?E+1:E}function je(u){if(!u.completionCriteria)return;let b=Br(u.completionCriteria);if(b===null)return;let E=dt(b),A=W(b);return A===0?void 0:E/A}function De(u){let b=x==null?void 0:x.find(E=>E.flowId===u);return b?b.flowState:null}function dt(u){let b=O(u);return b.length===0?0:b.filter(A=>de(u,A.id)===Ne).length}function W(u){return O(u).length}function ve(u){return JSON.parse(o.find(b=>b.slug===u).data)}function $e(u){if(f)return!1;if(F)return!0;if(u!=null&&u.targetingLogic&&x){let b=x.find(E=>E.flowId===u.slug);if(b)return b.shouldTrigger===!1}return!!(u!=null&&u.targetingLogic&&r&&r.startsWith("guest_"))}function zo(u){return!$e(N(u))}return{getFlow:N,getFlowData:ve,isLoading:F||M,getStepStatus:de,getFlowSteps:O,getCurrentStepIndex:ie,markStepStarted:K,markStepCompleted:le,markFlowNotStarted:J,markFlowStarted:G,markFlowCompleted:xe,markFlowAborted:Te,markStepNotStarted:te,getFlowStatus:De,getNumberOfStepsCompleted:dt,getNumberOfSteps:W,targetingLogicShouldHideFlow:$e,setCustomVariable:X,updateCustomVariables:ee,customVariables:s,getStepOptionalProgress:je,getFlowMetadata:$,isStepBlocked:_,isStepHidden:D,hasActiveFullPageFlow:d,setHasActiveFullPageFlow:a,isFlowAvailableToUser:zo}}import{useCallback as Er,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 f=`frigade-user-registered-${e}`;localStorage.getItem(f)||(d(`${s}users`,{...n,method:"POST",body:JSON.stringify({foreignId:e})}),localStorage.setItem(f,"true"))}},[e,r,t]);let h=Er(async f=>{a();let y={foreignId:e,properties:f};await d(`${s}users`,{...n,method:"POST",body:JSON.stringify(y)}),i(T=>({...T,...f})),p()},[e,n,r,p]),c=Er(async(f,y)=>{a();let P={foreignId:e,events:[{event:f,properties:y}]};await d(`${s}users`,{...n,method:"POST",body:JSON.stringify(P)}),p()},[e,n,p]);return{userId:e,setUserId:o,addPropertiesToUser:h,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 Ar="fr-",jt="cfr-";function l(e,t){let o=`${Ar}${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 k(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(Ar)?"":`:not(${o.map(i=>`.${i}`).join(", ")})`}function Wo(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=>`${Wo(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 sr}from"react";import{useCallback as ut,useContext as kl,useEffect as Pl}from"react";import _o,{useMemo as Pr}from"react";var kr="1.33.4 ";var Be="NOT_STARTED_STEP",Z="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}=_o.useContext(j);return{config:Pr(()=>({headers:{Authorization:`Bearer ${e}`,"Content-Type":"application/json","X-Frigade-SDK-Version":kr,"X-Frigade-SDK-Platform":"React"}}),[e,t]),apiUrl:Pr(()=>`${o}/v1/public/`,[o])}}var ul="frigade-last-call-at-",fl="frigade-last-call-data-";function Ft(){let{shouldGracefullyDegrade:e,readonly:t}=_o.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}=_o.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 vr}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,f=!1){return e[c]??f}function s(c,f){t(y=>({...y,[c]:f}))}function p(c){t(f=>{let{[c]:y,...T}=f;return{...T}})}function d(c){r.includes(c)||i(f=>[...f,c])}function a(c){return r.includes(c)}function h(c){return Object.entries(e).some(([f,y])=>y&&f!=c)||o}return{getOpenFlowState:n,setOpenFlowState:s,resetOpenFlowState:p,hasOpenModals:h,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,h]=Cl(!1),c={data:n.map(C=>({flowId:C.id,flowState:Z,lastStepId:null,userId:i,foreignUserId:i,stepStates:{},shouldTrigger:!1}))},f=C=>fetch(C,e).then(B=>{if(B.ok)return B.json();throw new Error("Failed to fetch user flow states")}).catch(B=>(console.log(`Error fetching ${C}: ${B}. Will gracefully degrade and hide Frigade`),s(!0),c)),y=o&&n&&i?`${t}userFlowStates?foreignUserId=${encodeURIComponent(i)}${r?`&foreignUserGroupId=${encodeURIComponent(r)}`:""}`:null,{data:T,isLoading:P,mutate:g,error:v}=p?Sl(y,f):yl(y,f,{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&&!P&&x&&h(!0)},[x,a,P]);async function F(C){if(x&&!p){let B=x.find(L=>L.flowId===C);B&&B.flowState!==Z&&(B.flowState=Z),await g(Promise.resolve({...T,data:x}),{optimisticData:{...T,data:x},revalidate:!1,rollbackOnError:!1})}}async function I(C,B,L){if(x){let M=x.find(N=>N.flowId===C);M&&(M.stepStates[B]=L,M.flowState=mt),await g(Promise.resolve({...T,data:x}),{optimisticData:{...T,data:x},revalidate:!1,rollbackOnError:!1})}}async function S(C,B,L){if(x){let M=x.find(N=>N.flowId===C);M&&(M.lastStepId=B,M.stepStates[B]=L,M.flowState=mt),await g({...T,data:x},{optimisticData:{...T,data:x},revalidate:!1,rollbackOnError:!1})}}async function m(C){if(x){let B=x.find(L=>L.flowId===C);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 g({...T,data:x},{optimisticData:{...T,data:x},revalidate:!1,rollbackOnError:!1}),d(C))}}async function w(C,B){if(x){let L=x.find(M=>M.flowId===C);L&&L.stepStates[B]!==Be&&(L.stepStates[B]=Be),await g({...T,data:x},{optimisticData:{...T,data:x},revalidate:!1,rollbackOnError:!1})}}return{userFlowStatesData:x,isLoadingUserFlowStateData:!a,mutateUserFlowState:g,optimisticallyMarkFlowCompleted:F,optimisticallyMarkFlowNotStarted:m,optimisticallyMarkStepCompleted:I,optimisticallyMarkStepNotStarted:w,optimisticallyMarkStepStarted:S,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]=vr(new Set),[h,c]=vr(new Set),f=Ft();function y(g){let v=JSON.stringify(g);if(d.has(v))return null;d.add(v),a(d),h.add(g),c(h);let x=s==null?void 0:s.find(F=>F.flowSlug===g.flowSlug&&F.stepId===g.stepId&&F.actionType===g.actionType&&F.createdAt===g.createdAt);return f(`${t}flowResponses`,{...e,method:"POST",body:v}).then(F=>{F.status!==200&&F.status!==201?(console.log("Failed to send flow response for step "+g.stepId+". Will retry again later."),n([...r,g])):x||p(I=>[...I??[],g])})}async function T(g){g.foreignUserId&&(g.actionType===mt||g.actionType===Ie?await y(g):g.actionType===Z?await y(g):g.actionType===po?await y(g):g.actionType===Ne?await y(g):g.actionType===ao?await y(g):g.actionType===Be&&await y(g))}function P(){let g=[];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];g.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})}}),[...g,...s]}return{addResponse:T,setFlowResponses:p,getFlowResponses:P}}import vl from"swr";var Tl=/user.flow\(([^\)]+)\) == '?COMPLETED_FLOW'?/gm,Br=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 R(){let{config:e,apiUrl:t}=Me(),{flows:o,setFlows:i,userId:r,publicApiKey:n,customVariables:s,setCustomVariables:p,hasActiveFullPageFlow:d,setHasActiveFullPageFlow:a,setFlowResponses:h,setShouldGracefullyDegrade:c,readonly:f}=kl(j),y={data:[]},{verifySDKInitiated:T}=kt(),{addResponse:P,getFlowResponses:g}=Ht(),v=u=>fetch(u,e).then(b=>b.ok?b.json():(console.log(`Error fetching ${u} (${b.status}): ${b.statusText}. .Will gracefully degrade and hide Frigade`),c(!0),y)).catch(b=>(console.log(`Error fetching ${u}: ${b}. Will gracefully degrade and hide Frigade`),c(!0),y)),{userFlowStatesData:x,isLoadingUserFlowStateData:F,optimisticallyMarkFlowCompleted:I,optimisticallyMarkFlowNotStarted:S,optimisticallyMarkStepCompleted:m,optimisticallyMarkStepNotStarted:w,optimisticallyMarkStepStarted:C}=Ee(),{data:B,error:L,isLoading:M}=vl(n?`${t}flows${f?"?readonly=true":""}`:null,v,{keepPreviousData:!0});Pl(()=>{if(L){console.error(L);return}B&&B.data&&i(B.data)},[B,L]);function N(u){if(M)return null;let b=o.find(E=>E.slug===u);return!b&&o.length>0&&!F&&!M?(console.log(`Flow with slug ${u} not found`),null):(b==null?void 0:b.active)===!1?null:b}function O(u){var A;if(!N(u))return[];let b=N(u).data;return b?(b=H(b),(((A=JSON.parse(b))==null?void 0:A.data)??[]).map(Q=>{let ct=je(Q);return{handleSecondaryButtonClick:()=>{Q.skippable===!0&&le(u,Q.id,{skipped:!0})},...Q,complete:de(u,Q.id)===Ne||ct>=1,blocked:_(u,Q.id),hidden:D(u,Q.id),handlePrimaryButtonClick:()=>{(!Q.completionCriteria&&(Q.autoMarkCompleted||Q.autoMarkCompleted===void 0)||Q.completionCriteria&&Q.autoMarkCompleted===!0)&&le(u,Q.id)},progress:ct}}).filter(Q=>Q.hidden!==!0)):[]}function H(u){return u.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 $(u){if(!N(u))return[];let b=N(u).data;return b?(b=H(b),JSON.parse(b)??{}):[]}function X(u,b){p(E=>({...E,[u]:b}))}function ee(u){!F&&!M&&u&&JSON.stringify(s)!=JSON.stringify({...s,...u})&&Object.keys(u).forEach(b=>{X(b,u[b])})}let K=ut(async(u,b,E)=>{T();let A={foreignUserId:r,flowSlug:u,stepId:b,actionType:po,data:E??{},createdAt:new Date,blocked:!1,hidden:!1};q(A)&&(await C(u,b,A),P(A))},[r,x]),te=ut(async(u,b,E)=>{T();let A={foreignUserId:r,flowSlug:u,stepId:b,actionType:Be,data:E??{},createdAt:new Date,blocked:!1,hidden:!1};q(A)&&(await w(u,b),P(A))},[r,x]),le=ut(async(u,b,E)=>{T();let A={foreignUserId:r,flowSlug:u,stepId:b,actionType:Ne,data:E??{},createdAt:new Date,blocked:!1,hidden:!1};q(A)&&(await m(u,b,A),P(A))},[r,x]),J=ut(async(u,b)=>{if(T(),De(u)===Ie)return;let E={foreignUserId:r,flowSlug:u,stepId:"unknown",actionType:Ie,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};await S(u),q(E)&&P(E)},[r,x]),G=ut(async(u,b)=>{T();let E={foreignUserId:r,flowSlug:u,stepId:"unknown",actionType:mt,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};q(E)&&P(E)},[r,x]),xe=ut(async(u,b)=>{T();let E={foreignUserId:r,flowSlug:u,stepId:"unknown",actionType:Z,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};q(E)&&(await I(u),P(E))},[r,x]),Te=ut(async(u,b)=>{T();let E={foreignUserId:r,flowSlug:u,stepId:"unknown",actionType:ao,data:b??{},createdAt:new Date,blocked:!1,hidden:!1};q(E)&&(await I(u),P(E))},[r,x]);function q(u){var b;if(!x&&u.actionType===Be)return!1;if(x){let E=x.find(A=>A.flowId===u.flowSlug);if(u.actionType===Be&&(!(E!=null&&E.stepStates[u.stepId])||E.stepStates[u.stepId].actionType===Be)||E&&((b=E.stepStates[u.stepId])==null?void 0:b.actionType)===u.actionType||E&&E.flowState===Z&&u.actionType===Z)return!1}return!0}function de(u,b){let E=re(u,b);return F?null:E?E.actionType:Be}function _(u,b){let E=re(u,b);return E?E.blocked:!1}function D(u,b){let E=re(u,b);return E?E.hidden:!1}function re(u,b){if(F)return null;let E=x==null?void 0:x.find(A=>A.flowId===u);return!E||!E.stepStates[b]?null:E.stepStates[b]??null}function V(u){var E;if(F||!x)return null;if(De(u)===Ie)return O(u)[0]??null;let b=(E=x.find(A=>A.flowId===u))==null?void 0:E.lastStepId;return b?O(u).find(A=>A.id===b):null}function ie(u){let b=V(u);if(!b)return 0;let E=O(u).findIndex(A=>A.id===b.id)??0;return de(u,b.id)===Ne&&E<O(u).length-1?E+1:E}function je(u){if(!u.completionCriteria)return;let b=Br(u.completionCriteria);if(b===null)return;let E=dt(b),A=W(b);return A===0?void 0:E/A}function De(u){let b=x==null?void 0:x.find(E=>E.flowId===u);return b?b.flowState:null}function dt(u){let b=O(u);return b.length===0?0:b.filter(A=>de(u,A.id)===Ne).length}function W(u){return O(u).length}function ve(u){return JSON.parse(o.find(b=>b.slug===u).data)}function $e(u){if(f)return!1;if(F)return!0;if(u!=null&&u.targetingLogic&&x){let b=x.find(E=>E.flowId===u.slug);if(b)return b.shouldTrigger===!1}return!!(u!=null&&u.targetingLogic&&r&&r.startsWith("guest_"))}function zo(u){return!$e(N(u))}return{getFlow:N,getFlowData:ve,isLoading:F||M,getStepStatus:de,getFlowSteps:O,getCurrentStepIndex:ie,markStepStarted:K,markStepCompleted:le,markFlowNotStarted:J,markFlowStarted:G,markFlowCompleted:xe,markFlowAborted:Te,markStepNotStarted:te,getFlowStatus:De,getNumberOfStepsCompleted:dt,getNumberOfSteps:W,targetingLogicShouldHideFlow:$e,setCustomVariable:X,updateCustomVariables:ee,customVariables:s,getStepOptionalProgress:je,getFlowMetadata:$,isStepBlocked:_,isStepHidden:D,hasActiveFullPageFlow:d,setHasActiveFullPageFlow:a,isFlowAvailableToUser:zo}}import{useCallback as Er,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 f=`frigade-user-registered-${e}`;localStorage.getItem(f)||(d(`${s}users`,{...n,method:"POST",body:JSON.stringify({foreignId:e})}),localStorage.setItem(f,"true"))}},[e,r,t]);let h=Er(async f=>{a();let y={foreignId:e,properties:f};await d(`${s}users`,{...n,method:"POST",body:JSON.stringify(y)}),i(T=>({...T,...f})),p()},[e,n,r,p]),c=Er(async(f,y)=>{a();let P={foreignId:e,events:[{event:f,properties:y}]};await d(`${s}users`,{...n,method:"POST",body:JSON.stringify(P)}),p()},[e,n,p]);return{userId:e,setUserId:o,addPropertiesToUser:h,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 Ar="fr-",jt="cfr-";function l(e,t){let o=`${Ar}${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 k(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(Ar)?"":`:not(${o.map(i=>`.${i}`).join(", ")})`}function Wo(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=>`${Wo(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;
|
|
@@ -1237,7 +1237,7 @@ ${i=>i.inlineStyles.map(([r,n])=>`.${jt}${r}.${jt}${r} { ${Object.entries(n).map
|
|
|
1237
1237
|
color: ${({theme:e})=>e.colorTextSecondary};
|
|
1238
1238
|
${e=>e.blocked||e.complete?"opacity: 0.4;":`
|
|
1239
1239
|
`}
|
|
1240
|
-
`;var fs=({stepData:e,style:t={},appearance:o})=>{let{mergeAppearanceWithDefault:i}=oe(),{primaryCTAClickSideEffects:r}=ae();o=i(o);let{imageUri:n=null,subtitle:s=null,title:p=null,complete:d=!1,blocked:a=!1}=e,h=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}}),
|
|
1240
|
+
`;var fs=({stepData:e,style:t={},appearance:o})=>{let{mergeAppearanceWithDefault:i}=oe(),{primaryCTAClickSideEffects:r}=ae();o=i(o);let{imageUri:n=null,subtitle:s=null,title:p=null,complete:d=!1,blocked:a=!1}=e,h=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,n=Math.min(r,Math.max(10,Math.round(r*i)));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:r},io.createElement("rect",{x:0,y:0,rx:5,width:r,height:10,fill:"#E6E6E6"}),io.createElement("rect",{x:0,y:0,rx:5,width:n,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);gr(()=>{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,h]=bt(null),[c,f]=bt([]),[y,T]=bt(0),{getFlowMetadata:P,getFlowSteps:g,getNumberOfStepsCompleted:v,updateCustomVariables:x,getFlowStatus:F,isLoading:I,targetingLogicShouldHideFlow:S,getFlow:m}=R();gr(()=>{x(o)},[o,I]),gr(()=>{if(I)return;let N=P(e),O=v(e),H=g(e);h(N),N.data!==null&&(f(H.sort(($,X)=>Number($.complete)-Number(X.complete))),d(H.length>3),T(O))},[I]);let w=[];for(let N=0;N<c.length;N+=3)w.push(c.slice(N,N+3));let C=N=>{let O=N.target,H=O.scrollWidth-O.clientWidth,$=Math.ceil(O.scrollLeft);$>0&&n===!1&&s(!0),$===0&&n===!0&&s(!1),$<H&&p===!1&&d(!0),$===H&&p===!0&&d(!1)},B=(N=!0)=>{let O=N?1:-1;r.current!==null&&r.current.scrollBy({left:r.current.clientWidth*O,behavior:"smooth"})},L=null,M=N=>{L!==null?clearTimeout(L):C(N),L=setTimeout(()=>{C(N)},16)};return I?null:pe.createElement(ls,{className:Ce(l("carouselContainer",t),i)},pe.createElement("div",{style:{display:"flex",justifyContent:"space-between",marginBottom: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:y,numberOfSteps:c.length})),pe.createElement("div",{style:{position:"relative"}},pe.createElement(xs,{show:n,onClick:()=>B(!1)}),pe.createElement(xs,{side:"right",show:p,onClick:B}),pe.createElement(es,{ref:r,onScroll:M},w.map((N,O)=>pe.createElement(ts,{key:O,style:{flex:`0 0 calc(100% - ${c.length>3?36:0}px)`}},N.map((H,$)=>pe.createElement(fs,{key:$,stepData:H,style:{flex:c.length>3?"0 1 calc(33% - 16px * 2 / 3)":1},appearance:t})))))),pe.createElement(se,{appearance:t}))};var xr=({flowId:e,title:t,subtitle:o,style:i,initialSelectedStep:r,className:n,type:s="inline",onDismiss:p,visible:d,customVariables:a,onStepCompletion:h,onButtonClick:c,appearance:f,hideOnFlowCompletion:y,setVisible:T,customStepTypes:P,checklistStyle:g="default",autoExpandFirstIncompleteStep:v,autoExpandNextStep:x,...F})=>{let{getFlow:I,getFlowSteps:S,markStepCompleted:m,getStepStatus:w,getNumberOfStepsCompleted:C,isLoading:B,targetingLogicShouldHideFlow:L,updateCustomVariables:M,getFlowMetadata:N,isStepBlocked:O,getFlowStatus:H,hasActiveFullPageFlow:$,setHasActiveFullPageFlow:X}=R(),{primaryCTAClickSideEffects:ee,secondaryCTAClickSideEffects:K}=ae(),{getOpenFlowState:te,setOpenFlowState:le}=Fe(),[J,G]=ys(r||0),[xe,Te]=ys(!1),q=d===void 0?te(e):d,de=s==="modal",{mergeAppearanceWithDefault:_}=oe(),{isLarge:D}=Dn();if(f=_(f),Cs(()=>{M(a)},[a,B]),Cs(()=>{d!==void 0&&(de&&d===!0?X(!0):de&&d===!1&&X(!1))},[d,T,$]),B)return null;let re=I(e);if(!re||L(re))return null;let V=S(e);if(!V||y===!0&&H(e)===Z)return null;let ie=N(e);if(ie!=null&&ie.title&&(t=ie.title),ie!=null&&ie.subtitle&&(o=ie.subtitle),!xe&&r===void 0&&C(e)>0){let A=V.findIndex(Q=>Q.complete===!1);G(A>-1?A:V.length-1),Te(!0)}function je(){if(J+1>=V.length){de&&le(e,!1);return}O(e,V[J+1].id)||G(J+1)}function De(A,Q,ct){let Fr=J+1<V.length?V[J+1]:null;c&&c(A,J,Q,Fr)===!0&&de&&$e(),h&&h(A,ct,Fr),!h&&!c&&(A.primaryButtonUri||A.secondaryButtonUri)&&de&&$e()}function dt(){return V.map((A,Q)=>({...A,handleSecondaryButtonClick:()=>{je(),K(A),A.skippable===!0&&m(e,A.id,{skipped:!0}),De(A,"secondary",Q)},handlePrimaryButtonClick:()=>{(!A.completionCriteria&&(A.autoMarkCompleted||A.autoMarkCompleted===void 0)||A.completionCriteria&&A.autoMarkCompleted===!0)&&(m(e,A.id),je()),De(A,"primary",Q),ee(A),w(e,A.id)===Ne&&je()}}))}function W(){return me.createElement(se,{appearance:f})}let ve={steps:dt(),title:t,subtitle:o,primaryColor:f.theme.colorPrimary,appearance:f,customStepTypes:P,type:s,className:n,autoExpandFirstIncompleteStep:v,autoExpandNextStep:x};function $e(){le(e,!1),p&&p(),T&&T(!1)}function zo(){return me.createElement(me.Fragment,null,me.createElement(W,null),me.createElement(hs,{flowId:e,appearance:f,customVariables:a,className:n}))}function u(){return me.createElement(me.Fragment,null,me.createElement(W,null),me.createElement(fr,{visible:q,onClose:()=>{$e()},selectedStep:J,setSelectedStep:G,autoExpandNextStep:!0,appearance:f,...ve}))}function b(){if(!D)return u();let A=F.guideFlowId,Q;return A&&I(A)&&(Q=S(A)),me.createElement(me.Fragment,null,me.createElement(W,null),me.createElement(ur,{visible:q,stepsTitle:ie.stepsTitle?ie.stepsTitle:"Your quick start guide",onClose:()=>{$e()},selectedStep:J,setSelectedStep:G,guideData:Q,guideTitle:F.guideTitle??"Guide",appearance:f,title:t,subtitle:o,onGuideButtonClick:ct=>{De(ct,"link",0)},customStepTypes:P,...ve}))}function E(){if(!D)return u();let A=me.createElement(cr,{flowId:e,style:i,selectedStep:J,setSelectedStep:G,appearance:f,type:s,...ve});return de?me.createElement(tt,{onClose:()=>{$e()},visible:q,appearance:f,style:{paddingTop:"0px",padding:"12px",paddingLeft:0}},me.createElement(W,null),A):me.createElement(me.Fragment,null,me.createElement(W,null),A)}switch(g){case"condensed":return u();case"with-guide":return b();case"default":return E();case"carousel":return zo();default:return E()}};var Od=e=>Ld.createElement(xr,{type:"inline",...e});import pt,{useEffect as $d}from"react";import He from"react";import Oo from"styled-components";var Ss=Oo.div`
|
|
1241
1241
|
border: 1px solid ${e=>e.appearance.theme.colorBorder};
|
|
1242
1242
|
border-radius: 8px;
|
|
1243
1243
|
padding: 6px 10px 6px 10px;
|