backflow-ui-renderer 0.1.68 → 0.1.69

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/dist/index.cjs CHANGED
@@ -202,7 +202,7 @@ ${l.join(`
202
202
  font-weight: inherit;
203
203
  margin: 0;
204
204
  }
205
- `}function Xdt(e,t,n,r){return y.createElement("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",width:"100%",height:"100%",minHeight:"100%",backgroundColor:e.colors.background,gap:"16px"}},V("p",{style:{color:e.colors.text,fontSize:"1.125rem"}},"Scene not found"),y.createElement("div",{style:{display:"flex",gap:"12px",alignItems:"center"}},t>0&&y.createElement("button",{onClick:n,style:{padding:"0.5rem 1.5rem",borderRadius:"0.5rem",backgroundColor:e.colors.surfaceHover,color:e.colors.text,border:"none",cursor:"pointer",fontSize:"0.875rem",fontWeight:500,transition:e.effects.transition},onMouseOver:i=>i.target.style.backgroundColor=e.colors.border,onMouseOut:i=>i.target.style.backgroundColor=e.colors.surfaceHover},"← Go Back"),r&&y.createElement("button",{onClick:r,style:{display:"flex",alignItems:"center",gap:"6px",padding:"0.5rem 1.5rem",borderRadius:"0.5rem",backgroundColor:e.colors.primary,variant:"outline",color:e.colors.text,border:"none",cursor:"pointer",fontSize:"0.875rem",fontWeight:500,transition:"opacity 0.2s"},onMouseOver:i=>i.target.style.opacity="0.85",onMouseOut:i=>i.target.style.opacity="1"},y.createElement("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},V("polygon",{points:"13 2 3 14 12 14 11 22 21 10 12 10 13 2"})),"Generate Scene")))}function Jdt(e){return y.createElement("div",{key:"preview-modal",style:{position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(0, 0, 0, 0.5)",backdropFilter:"blur(4px)",WebkitBackdropFilter:"blur(4px)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:1e4,animation:"bf-fade-in 0.15s ease"}},y.createElement("div",{style:{backgroundColor:e.colors.background,borderRadius:"12px",padding:"24px",maxWidth:"360px",width:"90%",boxShadow:"0 20px 40px rgba(0, 0, 0, 0.4)",border:"1px solid rgba(255, 255, 255, 0.08)"}},V("h3",{style:{color:e.colors.text,fontSize:"16px",fontWeight:600,marginBottom:"12px"}},"Sample Modal"),V("p",{style:{color:e.colors.textSecondary,fontSize:"14px",marginBottom:"20px"}},"This is a preview of the modal component for styling."),y.createElement("div",{style:{display:"flex",gap:"12px",justifyContent:"flex-end"}},V("button",{style:{padding:"10px 20px",borderRadius:"8px",cursor:"pointer",fontSize:"14px",fontWeight:500,background:"rgba(255,255,255,0.08)",color:e.colors.text,border:`1px solid ${e.colors.borderSubtle}`}},"Cancel"),V("button",{style:{padding:"10px 20px",borderRadius:"8px",cursor:"pointer",fontSize:"14px",fontWeight:500,background:e.colors.primary,color:e.colors.text,border:"none"}},"Confirm"))))}function WC(e,t,n,r,i,o,s){var O,I,N,B,D,R,U,W,F,q,G,et,st;if(!e)return null;const{definition:a,closing:l}=e,h=a.variant?(O=a.variants)==null?void 0:O[a.variant]:void 0,u={...a,...h,style:{...a.style,...h==null?void 0:h.style},components:(h==null?void 0:h.components)||a.components,actions:(h==null?void 0:h.actions)||a.actions},f=u.popover===!0,p=(I=u.style)==null?void 0:I.placement,g=p==="left"||p==="right"||p==="bottom"?p:"center",x=u.drawer===!0||g==="left"||g==="right",m=g==="bottom",b=l===!0,_=u.className||"",S=_?((N=n.parseClassNameResponsive)==null?void 0:N.call(n,_,`modal-${e.id}`))??n.parseClassName(_):{};_&&S.backgroundColor&&delete S.backgroundColor;const P=f&&s&&s.top>window.innerHeight/2&&s.bottom+300>window.innerHeight,C=s?Math.min(Math.max(12,s.left),Math.max(12,window.innerWidth-372)):void 0,w=()=>{var H;b||(H=i||n.dismissModal)==null||H()},E=y.createElement("div",{key:`modal-overlay-${e.id||"base"}`,style:{position:"fixed",top:0,left:0,right:0,bottom:0,animation:b?"bf-fade-out 0.2s ease forwards":"bf-fade-in 0.15s ease",backdropFilter:f?void 0:"blur(4px)",WebkitBackdropFilter:f?void 0:"blur(4px)",display:"flex",alignItems:f?"flex-start":m?"flex-end":"center",justifyContent:f?"flex-end":x?g==="left"?"flex-start":"flex-end":"center",paddingTop:void 0,paddingRight:void 0,backgroundColor:f?"transparent":((B=u.style)==null?void 0:B.overlayColor)||"rgba(0,0,0,0.45)",pointerEvents:"auto",zIndex:o||1e4},onClick:H=>{H.target===H.currentTarget&&w()}},y.createElement("div",{className:_||void 0,style:{pointerEvents:f?"auto":void 0,...f?{position:"fixed",top:P||!s?P?void 0:"116px":`${s.bottom+8}px`,bottom:P?`${Math.max(12,window.innerHeight-s.top+8)}px`:void 0,left:C===void 0?void 0:`${C}px`,right:C===void 0?"24px":void 0}:{},backgroundColor:_?void 0:((D=u.style)==null?void 0:D.backgroundColor)||r||t.colors.background,borderRadius:x?"0px":((R=u.style)==null?void 0:R.borderRadius)||(m?"16px 16px 0 0":"12px"),padding:x?"0.5rem":m?"16px":"24px",height:x?"100%":"auto",maxHeight:m?"90vh":x?void 0:"85vh",maxWidth:x?"520px":m?n.isMobileView?"none":"640px":((U=u.style)==null?void 0:U.width)||{sm:"min(360px, 92vw)",md:"min(480px, 92vw)",lg:"min(720px, 92vw)",full:"90vw"}[u.size||"sm"]||"min(400px, 92vw)",width:(W=u.style)!=null&&W.width?"100%":x?"90vw":m?"100%":"90%",boxShadow:x?g==="left"?"4px 0 24px rgba(0, 0, 0, 0.4)":"-4px 0 24px rgba(0, 0, 0, 0.4)":m?"0 -8px 32px rgba(0, 0, 0, 0.45)":"0 20px 40px rgba(0, 0, 0, 0.4)",...f?{minWidth:"min(360px, 92vw)",marginRight:"0px",boxShadow:"0 12px 32px rgba(0, 0, 0, 0.45)"}:{},...u.skeleton&&!f?{position:"relative"}:{},border:"none",borderLeft:x&&g==="right"?`1px solid ${((F=u.style)==null?void 0:F.borderColor)||"rgba(255, 255, 255, 0.08)"}`:"none",borderRight:x&&g==="left"?`1px solid ${((q=u.style)==null?void 0:q.borderColor)||"rgba(255, 255, 255, 0.08)"}`:"none",overflow:"auto",animation:x?b?g==="left"?"bf-slide-out-left 0.2s ease forwards":"bf-slide-out-right 0.2s ease forwards":g==="left"?"bf-slide-in-left 0.2s ease":"bf-slide-in-right 0.2s ease":m?b?"bf-slide-out-down 0.2s ease forwards":"bf-slide-in-up 0.25s ease":b?"bf-fade-out 0.2s ease forwards":void 0,...S}},m?y.createElement("div",{key:"bf-sheet-handle",style:{width:"40px",height:"4px",borderRadius:"2px",backgroundColor:"rgba(255, 255, 255, 0.2)",margin:"0 auto 12px",flexShrink:0}}):null,u.icon?y.createElement("div",{style:{textAlign:"center",marginBottom:"12px",display:"flex",justifyContent:"center"}},n.renderIcon(u.icon,32)):null,u.title?y.createElement("h3",{className:"text-[#1c1917] dark:text-[#ffffff]",style:{fontFamily:(G=t.typography)==null?void 0:G.headingFontFamily,fontSize:u.icon?"18px":"16px",fontWeight:600,marginBottom:"12px",marginTop:"4px",paddingLeft:x?"1.5rem":"0px",paddingRight:x?"1.5rem":"0px",textAlign:u.icon?"center":"left"}},n.interpolateText(u.title)):null,...(u.components||[]).map((H,J)=>Bd(n,H,J,"modal")),(((et=u.actions)==null?void 0:et.length)||0)>0?y.createElement("div",{style:{display:"flex",gap:"12px",justifyContent:"flex-end",marginTop:"20px"}},...(u.actions||[]).map((H,J)=>{const ct=(yt=>{const $t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(yt);if(!$t)return!1;const[Ct,ut,ht]=[parseInt($t[1],16),parseInt($t[2],16),parseInt($t[3],16)];return(Ct*299+ut*587+ht*114)/1e3>150})(t.colors.primary)?"#000000":"#ffffff",mt={primary:{background:t.colors.primary,color:ct,border:"none"},secondary:{background:"rgba(255, 255, 255, 0.08)",color:t.colors.text,border:`1px solid ${t.colors.borderSubtle}`},ghost:{background:"transparent",color:t.colors.text,border:`1px solid ${t.colors.borderSubtle}`},danger:{background:t.colors.danger,color:"#ffffff",border:"none"}},vt=mt[H.variant||"primary"]||mt.primary;return y.createElement("button",{key:J,onClick:()=>{if(e.legacyOnConfirm&&(H.confirm||H.label==="Confirm")){w(),setTimeout(()=>{var yt;return(yt=e.legacyOnConfirm)==null?void 0:yt.call(e)},250);return}H.onClick&&n.handleButtonClick(H.onClick,{onSuccess:H.onSuccess,onError:H.onError}),H.dismiss&&w()},style:{padding:"10px 20px",borderRadius:"8px",cursor:"pointer",fontSize:"14px",fontWeight:500,...vt}},H.label)})):null,u.skeleton&&!b&&(n.loading&&Object.entries(n.loading).some(([H,J])=>{var ot;return J&&((ot=H.split("|")[1])==null?void 0:ot.startsWith("modal"))}))?y.createElement("div",{key:"bf-modal-skeleton",style:{position:"absolute",inset:0,zIndex:20,pointerEvents:"none",borderRadius:"inherit",background:S.backgroundColor||((st=u.style)==null?void 0:st.backgroundColor)||r||t.colors.background,padding:"24px",display:"flex",flexDirection:"column",gap:"14px"}},...Array.from({length:5}).map((H,J)=>y.createElement("div",{key:`bf-sk-${J}`,style:{height:J===0?"18px":"46px",width:J===0?"45%":"100%",borderRadius:"10px",background:"linear-gradient(90deg, rgba(148,148,148,0.12) 25%, rgba(148,148,148,0.26) 37%, rgba(148,148,148,0.12) 63%)",backgroundSize:"400% 100%",animation:"bf-shimmer 1.2s ease-in-out infinite"}}))):null));return f&&typeof document<"u"?Ja.createPortal(E,document.body):E}const Qdt=new tl,hm=()=>{try{if(typeof window<"u")return window.localStorage.getItem("backflow_dev_diagnostics")==="1"}catch{}return!1},ov=(...e)=>{hm()&&console.log(...e)},sv=(...e)=>{hm()&&console.warn(...e)};let BI=null;window.addEventListener("message",e=>{var t,n,r;(((t=e.data)==null?void 0:t.type)==="auth"||((n=e.data)==null?void 0:n.type)==="auth-token")&&((r=e.data)!=null&&r.token)&&(BI=e.data.token,localStorage.setItem("token",e.data.token),e.data.refreshToken&&localStorage.setItem("backflow_refresh_token",e.data.refreshToken),e.data.userId&&localStorage.setItem("backflow_refresh_user_id",e.data.userId))});function jl(e){try{const t=JSON.parse(atob(e.split(".")[1]));return typeof t.exp!="number"||t.exp*1e3<=Date.now()}catch{return!0}}function tpt({workflow:e,sdk:t,iconResolver:n,authToken:r,nativeAction:i,onRouteExecute:o,onJobProgress:s,appName:a,appIcon:l,selectedComponentKey:h,selectedComponentClass:u,styleOverrides:f,interactionDisabled:p,theme:g,imageReplacements:x,currentSceneId:m,onSceneChange:b,onGenerateScene:_,enableRouting:S,routingMode:P,previewElement:C,tenantId:w,appId:E,renderPhaserGame:O,renderMode:I,apiUrl:N,workflowBaseUrl:B,initialScene:D,previewMode:R,remoteSessionId:U,devDiagnostics:W}){var v,A,M,j,tt,rt,at,bt,Lt,Xt,ve,Un,xn,br,Xn,Co,Yf;y.useEffect(()=>{if(typeof document>"u")return;const T=(e==null?void 0:e.title)||a;T&&(document.title=String(T))},[e,a]);const F=(()=>{const T=BI||localStorage.getItem("token");return!!T&&!jl(T)})(),[q,G]=y.useState(!F),[et,st]=y.useState(null),H=y.useMemo(()=>Array.isArray(e==null?void 0:e.steps)?e.steps:[],[e]),J=y.useMemo(()=>{const T=H;return e&&!Array.isArray(e.steps)&&(sv("[WorkflowRenderer] NON-ARRAY steps:",typeof e.steps,JSON.stringify(e.steps).slice(0,500)),sv("[WorkflowRenderer] Workflow keys:",Object.keys(e))),q!==!0?T:T.filter(k=>{var $,Y;return!(k.requiresAuth===!0||(($=k.config)==null?void 0:$.requireAuth)===!0||((Y=k.config)==null?void 0:Y.requiresAuth)===!0)})},[e,q,H]),ot=y.useCallback(T=>{var $;const k=H.find(Y=>Y.id===T);return(($=k==null?void 0:k.config)==null?void 0:$.requireAuth)===!0||(k==null?void 0:k.requiresAuth)===!0},[H]),ct=e&&!((v=e.config)!=null&&v.colorMode)?nR(e):void 0,mt=sT(ct?{...(e==null?void 0:e.config)||{},colorMode:ct}:e==null?void 0:e.config,void 0,g),vt=!((A=e==null?void 0:e.config)!=null&&A.colorMode)&&!ct&&!(g!=null&&g.colorMode),yt=T=>Fw(T,{primary:Rt.colors.primary,accent:Rt.colors.accent,colorMode:Rt.colorMode},vt),$t=I||"legacy",Ct=P||(S?"hash":"memory"),ut=Ct!=="memory",[ht,It]=y.useState(F),[nt,St]=y.useState(!1),[dt,Jt]=y.useState(!1),[pe,Oe]=y.useState("idle"),{sceneToRoute:ae,routeToScene:sn}=y.useMemo(()=>LI(J),[J]),Ve=y.useMemo(()=>{var k,$;if(D&&J.some(Y=>Y.id===D))return D;const T=J.filter(Y=>Y.type==="render_scene");return((k=T.find(Y=>Y.route==="/"))==null?void 0:k.id)||(($=T[0])==null?void 0:$.id)||""},[J,D]),Pn=y.useMemo(()=>{if(ut&&typeof window<"u"){const T=Ct==="hash"?window.location.hash.slice(1)||"/":window.location.pathname,k=Vu(T,sn,ae);if(k)return k.sceneId}return Ve},[Ve,ut,Ct,sn,ae]),[Je,Qe]=y.useState([]),[fr,dr]=y.useState(Pn),nr=y.useRef(null),Ue=HM(nr),Cr=y.useRef(!1);y.useRef(null);const Zt=y.useRef(!1),te=y.useRef(!1),Fe=y.useRef(0),ye=y.useRef(null),oe=y.useRef(!1),Te=y.useRef(!1),xe=y.useRef(null),pr=T=>{var k,$;return(T==null?void 0:T.requiresAuth)===!0||((k=T==null?void 0:T.config)==null?void 0:k.requireAuth)===!0||(($=T==null?void 0:T.config)==null?void 0:$.requiresAuth)===!0},mr=()=>{var Y;const T=ye.current,$=(T&&H.some(z=>z.id===T)?T:null)||((Y=H.find(z=>z.type==="render_scene"&&pr(z)))==null?void 0:Y.id);$&&ut&&(Ct==="hash"?Ca($,ae,!0):Dl($,ae,!0)),(!$||!ut)&&localStorage.setItem("backflow_post_auth_redirect","1"),window.location.reload()};y.useEffect(()=>(Zt.current=!1,oT(),()=>{Zt.current=!0}),[]),y.useEffect(()=>{r&&localStorage.setItem("token",r)},[r]);const Mt=m??fr;y.useEffect(()=>{var Q,Z,lt;const T=J.find(it=>it.id===Mt),k=!!((Q=e==null?void 0:e.config)!=null&&Q.remoteControl)&&!!(T!=null&&T.remoteScene);if(ZC(k),KC(k&&!!((lt=(Z=e==null?void 0:e.config)==null?void 0:Z.mouse)!=null&&lt.enabled)),!k||!U){cv();return}const $=N||(t==null?void 0:t.endpoint),Y=$&&/^https?:\/\//.test($)?$:window.location.origin,z=new URL("/ws",Y);z.protocol=z.protocol==="https:"?"wss:":"ws:";const K=z.toString(),X=`agent:${w||"default"}:${U}`;return iT(K,X,r||localStorage.getItem("token")||void 0),()=>cv()},[(M=e==null?void 0:e.config)==null?void 0:M.remoteControl,(tt=(j=e==null?void 0:e.config)==null?void 0:j.mouse)==null?void 0:tt.enabled,J,Mt,U,w,N,t,r]);const rr=y.useCallback(T=>{dr(T),b==null||b(T)},[b]);y.useEffect(()=>{var $;const T=J.find(Y=>Y.id===Mt),k=(($=T==null?void 0:T.config)==null?void 0:$.requireAuth)===!0||(T==null?void 0:T.requiresAuth)===!0;Mt&&!k&&St(!1)},[Mt,J]);const an=(e==null?void 0:e.modals)||{};y.useEffect(()=>{if(!ht)return;const T=Rt.startupModal;!T||!an[T]||localStorage.getItem(`backflow_startup_modal_${T}`)||me({id:T,definition:an[T]})},[ht]);const Ko=y.useRef(typeof window>"u"?null:new URLSearchParams(window.location.search).get("customer_session_token"));y.useEffect(()=>{if(!ht||!Ko.current||!an["payment-success"])return;window.history.replaceState({},"",window.location.pathname);const k=setTimeout(()=>{an["payment-success"]&&me({id:"payment-success",definition:an["payment-success"]})},400);return()=>clearTimeout(k)},[ht,an["payment-success"]]),y.useEffect(()=>{q===!0&&(!Mt||J.some(T=>T.id===Mt)||Ve&&rr(Ve))},[q,J,Mt,Ve]),y.useEffect(()=>{if(ut){if(Cr.current){Cr.current=!1;return}Ct==="hash"?Ca(Mt,ae,!1,we):Dl(Mt,ae,!1,we)}},[Mt,ut,Ct,ae]),y.useEffect(()=>{if(!ut)return;const T=ae.get(Mt);T!=null&&T.includes(":")||(Ct==="hash"?Ca(Mt,ae,!0):Dl(Mt,ae,!0))},[]);const uo=y.useRef(!0);y.useEffect(()=>{const T=setTimeout(()=>{uo.current=!1},1500);return()=>clearTimeout(T)},[]),y.useEffect(()=>{if(!ut)return;const T=k=>{var K;if(uo.current)return;const $=Ct==="hash"?window.location.hash.slice(1)||"/":window.location.pathname,Y=Vu($,sn,ae),z=((K=k.state)==null?void 0:K.sceneId)||(Y==null?void 0:Y.sceneId);z&&z!==Mt&&(Cr.current=!0,rr(z),Qe(X=>X.length>0&&X[X.length-1]===z?X.slice(0,-1):X))};return window.addEventListener("popstate",T),()=>window.removeEventListener("popstate",T)},[ut,Ct,sn,ae,Mt,rr]),y.useEffect(()=>{var Y;if(!ut||typeof window>"u")return;const T=Ct==="hash"?window.location.hash.slice(1)||"/":window.location.pathname,k=Vu(T,sn,ae),$=(k==null?void 0:k.sceneId)||Ve;$&&$!==Mt&&(dr($),Qe([]),b==null||b($),k&&!((Y=ae.get($))!=null&&Y.includes(":"))&&(Ct==="hash"?Ca($,ae,!0):Dl($,ae,!0)))},[e]),y.useEffect(()=>{m&&m!==fr&&dr(m)},[m]);const ho=y.useCallback(()=>{if(ut){window.history.back();return}if(Je.length>0){const T=Je[Je.length-1];Qe(k=>k.slice(0,-1)),rr(T)}},[Je,ut]),[we,fe]=y.useState({}),An=y.useRef(we);y.useEffect(()=>{An.current=we},[we]),y.useEffect(()=>{const T=r||(typeof localStorage<"u"?localStorage.getItem("token"):"")||"";if(T)try{const k=JSON.parse(atob(T.split(".")[1])),$=k.sub||k.uid||k.user_id||k.userId;fe(Y=>({...Y,me:{uid:$,email:k.email},user:{uid:$,email:k.email,displayName:k.name||k.displayName,role:k.role,...Y.user||{}}}))}catch{}},[r,ht,Mt]),y.useEffect(()=>{if(!ut||typeof window>"u")return;const T=Ct==="hash"?window.location.hash.slice(1)||"/":window.location.pathname,k=Vu(T,sn,ae);if(!k||k.sceneId!==Mt)return;const $=Object.entries(k.params);if($.length===0)return;const Y={...An.current};for(const[z,K]of $)Y[z]=K,Y[`_${z}`]=K;An.current=Y,fe(Y)},[Mt,ut,Ct,sn,ae]),y.useEffect(()=>{if(!ut||typeof window>"u")return;const T=ae.get(Mt);!T||!T.includes(":")||Cr.current||(Ct==="hash"?Ca(Mt,ae,!1,An.current):Dl(Mt,ae,!1,An.current))},[we,Mt,ut,Ct,ae]);const Xo=y.useCallback(T=>{var X;const k=J.find(Q=>Q.id===T),$=(X=k==null?void 0:k.config)==null?void 0:X.components,Y=(e==null?void 0:e.widgets)||[];let z=!1;const K=Q=>{if(!(z||!Q)){if(Array.isArray(Q))return Q.forEach(K);if(typeof Q=="object"){if(typeof Q.dataSource=="string"&&/^(list|table|select|advanced-select|map|places)$/.test(Q.type)){z=!0;return}if(typeof Q.widgetId=="string"){const Z=Y.find(lt=>lt.id===Q.widgetId);Z&&K(Z.components)}Array.isArray(Q.children)&&K(Q.children),Q.renderItem&&K(Q.renderItem)}}};return K($),z},[J,e]);y.useEffect(()=>{oe.current=!Xo(Mt)},[Mt,Xo]),y.useEffect(()=>{if(!ut||typeof window>"u"||Te.current)return;const T=Ct==="hash"?window.location.hash.slice(1)||"/":window.location.pathname,k=Vu(T,sn,ae);if(!(!k||k.sceneId===Ve))return Te.current=!0,xe.current=setTimeout(()=>{oe.current||(ht?(dr(Ve),Qe([]),b==null||b(Ve),Ct==="hash"?Ca(Ve,ae,!0):Dl(Ve,ae,!0)):(te.current=!0,St(!0)))},4e3),()=>{xe.current&&(clearTimeout(xe.current),xe.current=null)}},[ut,Ct,sn,ae,Ve,ht,b]),y.useEffect(()=>{const T=()=>{const $=localStorage.getItem("token");!(!!$&&!jl($))&&ht&&(te.current=!0,Mt&&(ye.current=Mt),It(!1),St(!0))},k=setInterval(T,15e3);return window.addEventListener("storage",T),()=>{clearInterval(k),window.removeEventListener("storage",T)}},[ht,Mt]),y.useEffect(()=>{U&&fe(T=>T.remoteSessionId===U?T:{...T,remoteSessionId:U})},[U]);const Jo=y.useMemo(()=>Array.isArray(e==null?void 0:e.workflowRefs)?e.workflowRefs:[],[e]),zr=y.useMemo(()=>Jo.filter(T=>T.sceneIds==="*"||Array.isArray(T.sceneIds)&&T.sceneIds.includes(Mt)),[Mt,Jo]),[fo,Qo]=y.useState({}),Li=y.useRef({}),xi=y.useCallback(async(T,k=!1)=>{if(!ht||!T.appId)return;const $=N||(t==null?void 0:t.endpoint)||window.location.origin,Y=!N&&typeof $=="string"&&$.startsWith("/")?$.replace(/\/+$/,""):"",z=/^https?:\/\//.test($)?$:window.location.origin,K=`${Y}/mobile/apps/${encodeURIComponent(T.appId)}/workflow`,X=await fetch(new URL(K,z).toString(),{cache:k?"no-cache":"default",headers:{Authorization:`Bearer ${r||localStorage.getItem("token")||""}`}});if(!X.ok)throw new Error(`Workflow reference ${T.id} failed`);const Q=await X.json(),Z=(Q==null?void 0:Q.app)||Q;if(!Array.isArray(Z==null?void 0:Z.steps))throw new Error(`Workflow reference ${T.id} is invalid`);Qo(lt=>({...lt,[T.id]:Z}))},[N,r,ht,t]);y.useEffect(()=>{let T=!1;for(const k of zr){const $=`${k.appId}:${k.sourceSceneId||""}`;Li.current[k.id]!==$&&(Li.current[k.id]=$,xi(k).catch(()=>{T||delete Li.current[k.id]}))}return()=>{T=!0}},[zr,xi]),y.useEffect(()=>{var Y;const T=zr.filter(z=>{var K;return((K=z.realtime)==null?void 0:K.mode)==="ws"});if(T.length===0||!w)return;const k=(Y=t==null?void 0:t.client)==null?void 0:Y.createWebSocket;if(!k)return;const $=k(`tenant:${w}:entities`);return $.onmessage=z=>{let K;try{K=JSON.parse(z.data)}catch{return}if(!(K.type!=="entity_changed"||K.entity!=="mobile_apps"))for(const X of T)K.id===X.appId&&xi(X,!0).catch(()=>{})},()=>$.close()},[zr,xi,w,t]);const[vn,zt]=y.useState({}),[ts,po]=y.useState({}),mo=y.useRef(new Set),Fr=y.useRef({}),[go,es]=y.useState({}),[gr,ns]=y.useState({}),[Ks,Xs]=y.useState({}),[cl,ul]=y.useState({}),[ir,rs]=y.useState({}),[Di,Js]=y.useState([]),is=y.useRef(new Set),os=y.useRef(new Map),ss=y.useCallback((T,k)=>{if(!(W??hm()))return;const $=`${T}:${k}`;is.current.has($)||(is.current.add($),Js(Y=>[...Y,{level:"warn",code:T,where:`runtime:${Mt}`,msg:k}]))},[Mt,W]),Qs=y.useCallback((T,k)=>{if(!(W??hm()))return;const $=Date.now(),Y=(os.current.get(T)||[]).filter(X=>$-X.at<2e3),z=Y.find(X=>X.componentKey!==k&&$-X.at<500);Y.push({componentKey:k,at:$}),os.current.set(T,Y),z&&ss("DATASOURCE_DUPLICATE_RUNTIME",`"${T}" fetched by ${z.componentKey} and ${k} within 500ms`);const K=Y.filter(X=>X.componentKey===k);K.length>=3&&ss("RENDER_FETCH_LOOP",`"${T}" fetched ${K.length} times by ${k} within 2s`)},[W,ss]);y.useEffect(()=>{is.current.clear(),os.current.clear(),Js([])},[Mt]);const zn=y.useRef(new Map),yr=y.useRef(new Map),yo=y.useRef(new Set),[as,ji]=y.useState(!1),[Ft,me]=y.useState(null),[vo,ti]=y.useState(null),Tt=y.useRef(Ft);Tt.current=Ft;const Ye=y.useRef(null);y.useEffect(()=>{var k;if(!((k=Ft==null?void 0:Ft.definition)!=null&&k.popover))return;const T=()=>{const $=Ye.current;$&&ti($.getBoundingClientRect())};return window.addEventListener("scroll",T,!0),window.addEventListener("resize",T),T(),()=>{window.removeEventListener("scroll",T,!0),window.removeEventListener("resize",T)}},[Ft==null?void 0:Ft.id,(rt=Ft==null?void 0:Ft.definition)==null?void 0:rt.popover]);const Ut=y.useCallback(()=>{me(T=>T?{...T,closing:!0}:null),setTimeout(()=>me(null),250)},[]);y.useEffect(()=>{var $;const T=($=Ft==null?void 0:Ft.definition)==null?void 0:$.autoClose;if(!T||T<=0||Ft!=null&&Ft.closing)return;const k=setTimeout(()=>Ut(),T);return()=>clearTimeout(k)},[Ft==null?void 0:Ft.id]);const[ce,ls]=y.useState(null),hl=y.useCallback(()=>{ls(T=>T?{...T,closing:!0}:null),setTimeout(()=>ls(null),250)},[]),or=Ue>0&&Ue<Sh.md;y.useEffect(()=>{e&&typeof e=="object"&&(e.auth={signedIn:ht})},[e,ht]),y.useEffect(()=>{const T=e;if(!T)return;T.config||(T.config={});const k=T.config.logo;let $=!1;return qN({appIcon:l,workflowBaseUrl:B,configuredLogo:k}).then(Y=>{$||T.config.logo!==Y&&(T.config.logo=Y,fe(z=>z&&{...z}))}),()=>{$=!0}},[e,B,l]);const[ei,Bi]=y.useState("login"),[Ne,tn]=y.useState(""),[We,Wr]=y.useState(""),[ni,ta]=y.useState(""),[bo,ea]=y.useState({}),[cs,xo]=y.useState(""),[ri,kn]=y.useState(null),[bn,wo]=y.useState(!1),[du,Cf]=y.useState(!1),[he,ii]=y.useState(!1),[Re,pu]=y.useState(null),[mu,fl]=y.useState(!1),[dl,wi]=y.useState(!1),[gu,zi]=y.useState(!1),[_e,_o]=y.useState({}),us=T=>T?/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(T)?null:"Invalid email address":null,hs=T=>T?T.length>=6?null:"Password must be at least 6 characters":null,Ag=(T,k)=>k?k===T?null:"Passwords do not match":null,_i=(T,k)=>_o($=>({...$,[T]:k||""})),So=T=>{var k,$;return T?typeof T=="string"?T:Array.isArray(T)?((k=T[0])==null?void 0:k.message)||"Validation failed":typeof T.message=="string"?T.message:typeof T.error=="string"?T.error:($=T.error)!=null&&$.message?T.error.message:"An error occurred":"An error occurred"},pl=(we==null?void 0:we._colorMode)||mt.colorMode,Tf=pl==="dark"?yh:Ql;let Rt=mt;if(pl!==mt.colorMode){const T=Ql,k={};if(mt.colors&&pl==="dark")for(const[$,Y]of Object.entries(mt.colors))Y!==T[$]&&(k[$]=Y);Rt={...mt,colorMode:pl,colors:{...Tf,...k}}}y.useEffect(()=>{typeof document>"u"||document.documentElement.setAttribute("data-theme",Rt.colorMode==="dark"?"dark":"light")},[Rt.colorMode]);const Mf=y.useCallback(T=>{try{localStorage.setItem("bf_theme",T)}catch{}fe(k=>({...k,_colorMode:T}))},[]);y.useEffect(()=>{if(typeof localStorage>"u")return;const T=localStorage.getItem("bf_theme");(T==="dark"||T==="light")&&fe(k=>({...k,_colorMode:T}))},[]),y.useEffect(()=>{const T=new URLSearchParams(window.location.search).get("token");if(T&&!jl(T)){localStorage.setItem("token",T);const X=new URL(window.location.href);X.searchParams.delete("token"),window.history.replaceState({},"",X.toString())}const k=localStorage.getItem("token"),$=!!k&&!jl(k);$?(te.current=!1,G(!1)):G(!0),It($);const Y=()=>{const X=localStorage.getItem("token"),Q=!!X&&!jl(X);Q?(te.current=!1,G(!1)):G(!0),It(Q)};window.addEventListener("storage",Y);const z=X=>{var Q,Z,lt;if((((Q=X.data)==null?void 0:Q.type)==="auth"||((Z=X.data)==null?void 0:Z.type)==="auth-token")&&((lt=X.data)!=null&&lt.token)){if(localStorage.setItem("token",X.data.token),X.data.refreshToken&&localStorage.setItem("backflow_refresh_token",X.data.refreshToken),X.data.userId&&localStorage.setItem("backflow_refresh_user_id",X.data.userId),jl(X.data.token)){te.current=!0,It(!1);return}if(!ht&&(nt||te.current||!!ye.current)){mr();return}It(!0),St(!1),G(!1),te.current=!1}};window.addEventListener("message",z);const K=()=>{var X;if(!te.current){const Q=J.find(lt=>lt.id===Mt);if(!(((X=Q==null?void 0:Q.config)==null?void 0:X.requireAuth)===!0||(Q==null?void 0:Q.requiresAuth)===!0))return;te.current=!0,It(!1),St(!0)}};return window.addEventListener("auth:required",K),()=>{window.removeEventListener("storage",Y),window.removeEventListener("message",z),window.removeEventListener("auth:required",K)}},[]);const Vr=async()=>{var $;const T=localStorage.getItem("backflow_refresh_token"),k=localStorage.getItem("backflow_refresh_user_id");if(!T||!k)return!1;try{const z=await(await fetch(`${window.location.origin}/api/auth/refresh`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({refreshToken:T,userId:k})})).json();if(z.success&&(($=z.data)!=null&&$.token))return z.data.refreshToken&&localStorage.setItem("backflow_refresh_token",z.data.refreshToken),localStorage.setItem("token",z.data.token),!0}catch{}return localStorage.removeItem("backflow_refresh_token"),localStorage.removeItem("backflow_refresh_user_id"),!1},Fi=async(T,k=!1)=>{var $;if(T.status===401&&!nt){if(await Vr())return!1;if(ov("[bf] 401 intercepted, showAuth:",nt,"authInterceptedRef:",te.current),!te.current){te.current=!0,localStorage.removeItem("token"),It(!1);const z=J.find(X=>X.id===Mt),K=(($=z==null?void 0:z.config)==null?void 0:$.requireAuth)===!0||(z==null?void 0:z.requiresAuth)===!0;(k||K||Mt&&Mt!==Ve)&&(St(!0),Mt&&(ye.current=Mt))}return!0}return!1},Of=Mt&&J.some(T=>T.id===Mt)?Mt:(at=J[0])==null?void 0:at.id,oi=J.find(T=>T.id===Of),He=(oi==null?void 0:oi.type)==="render_scene"?oi.config:null;y.useEffect(()=>{if(!He)return;const T=w||"default",k={TENANT_ID:T,tenantId:T,role:"user"};fe($=>{const Y={};for(const z of Object.keys($))(z.startsWith("_")||z==="me")&&(Y[z]=$[z]);return{...k,...He.sceneData||{},...Y}})},[Mt,He]),y.useEffect(()=>{const T=Rt.persistedKeys;if(!T||T.length===0)return;const k={};for(const $ of T){const Y=localStorage.getItem(`bf_persist_${$}`);Y&&(k[$]=Y)}Object.keys(k).length>0&&(An.current={...An.current,...k},fe(An.current))},[Mt]),y.useEffect(()=>{const T=Rt.persistedKeys;if(!(!T||T.length===0))for(const k of T){if(!(k in we))continue;const $=we[k],Y=`bf_persist_${k}`;$==null||$===""?localStorage.removeItem(Y):localStorage.setItem(Y,String($))}}),y.useEffect(()=>{if(typeof window>"u")return;let T=0;const k=Y=>{const z=Y,K=!!z&&z!==document&&z!==window&&typeof z.scrollTop=="number"&&(z.scrollHeight||0)>(z.clientHeight||0),X=document.documentElement,Q=K?z.scrollTop:window.scrollY||X.scrollTop||document.body.scrollTop||0,Z=K?z.clientHeight:window.innerHeight||X.clientHeight||0,lt=K?z.scrollHeight:Math.max(X.scrollHeight,document.body?document.body.scrollHeight:0),it=Q>Math.max(8,Z*.5),gt=it&&Q+Z>=lt-16;fe(Ot=>Ot._scrolled===it&&Ot._atBottom===gt?Ot:{...Ot,_scrolled:it,_atBottom:gt})},$=Y=>{if(T)return;const z=Y.target;T=requestAnimationFrame(()=>{T=0,k(z)})};return window.addEventListener("scroll",$,{passive:!0,capture:!0}),k(null),()=>{window.removeEventListener("scroll",$,{capture:!0}),T&&cancelAnimationFrame(T)}},[]);const kf=T=>{const k=T.match(/^(GET|POST|PATCH|DELETE|PUT)\s+(.+)/);return{method:k?k[1]:"POST",path:k?k[2]:T}},yu=T=>{const k={...T};return delete k.TENANT_ID,delete k.tenantId,delete k.role,k},Po=y.useCallback(async T=>{var z,K,X,Q;if(!T.action)return;const k=String(T.action),$=T.condition;if($&&!Sl(String($),An.current))return;const Y=An.current;try{if(k.startsWith("execute_workflow:")){if(!ht)return;const{method:Z,path:lt}=kf(k.replace("execute_workflow:","")),it=lt.replace(/:(\w+)/g,(Pt,Kt)=>{const Nt=Y[Kt];return Nt===void 0?Pt:encodeURIComponent(String(Nt))}).replace(/\{\{(\w+)\}\}/g,(Pt,Kt)=>{const Nt=Y[Kt];return Nt===void 0?Pt:encodeURIComponent(String(Nt))}),gt=Z!=="GET"&&Z!=="DELETE";Z!=="GET"&&ra(Z,it,Y,!0);const Ot=await fetch(bl(it),{method:Z,headers:{"Content-Type":"application/json",Authorization:`Bearer ${r||localStorage.getItem("token")||""}`},...gt?{body:JSON.stringify(yu(Y))}:{}});if(Zt.current||await Fi(Ot)||Zt.current)return;if(!Ot.ok)throw Ur(it),new Error(`Route failed: ${Ot.statusText}`);const wt=await Ot.json();if(Zt.current)return;if(wt&&typeof wt=="object"&&!Array.isArray(wt)&&fe(Pt=>({...Pt,feedback:wt})),((z=T.onSuccess)==null?void 0:z.type)==="toast"&&T.onSuccess.value)Ee(T.onSuccess.value,"success");else if(((K=T.onSuccess)==null?void 0:K.type)==="navigate"&&T.onSuccess.value){const Pt=T.onSuccess.value;if(ot(Pt)&&!ht){ye.current=Pt,St(!0);return}Qe(Nt=>[...Nt,Mt]),rr(Pt)}wt!=null&&wt.data&&fe(Pt=>({...Pt,...wt.data})),(X=wt==null?void 0:wt.integrations)!=null&&X.data&&typeof wt.integrations.data=="object"&&!Array.isArray(wt.integrations.data)&&fe(Pt=>({...Pt,...wt.integrations.data})),wt!=null&&wt.user&&typeof wt.user=="object"&&fe(Pt=>({...Pt,user:wt.user})),En.current[it.replace(/^\//,"")]={response:wt},fe(Pt=>({...Pt}))}else if(k.startsWith("navigate:")){const Z=k.replace("navigate:","");if(ot(Z)&&!ht){ye.current=Z,St(!0);return}Qe(it=>[...it,Mt]),rr(Z)}else if(k.startsWith("go_to_step:")){const Z=k.replace("go_to_step:","").split("?")[0].trim();if(ot(Z)&&!ht){ye.current=Z,St(!0);return}Qe(it=>[...it,Mt]),rr(Z)}else if(k.startsWith("show_toast:")){const Z=k.replace("show_toast:","");Z&&Ee(Z,"success")}else if(k.startsWith("show_modal:")){const Z=k.replace("show_modal:","");if(an[Z]){const lt=an[Z],it=lt.clearFormKeys;fe(gt=>{const Ot={...gt};let wt=Array.isArray(it)&&it.length>0;if(wt)for(const Pt of it)delete Ot[Pt];for(const Pt of Object.keys(Ot))Pt.startsWith("__acc_")&&(delete Ot[Pt],wt=!0);return wt?Ot:gt}),me({id:Z,definition:lt}),lt.preload&&await oa(String(lt.preload))}else{const lt=Z.split("|");me({id:"__legacy",definition:{title:lt[0]||"Notice",components:lt[1]?[{type:"text",text:lt[1],color:Rt.colorMode==="light"?"rgba(0,0,0,0.65)":"rgba(255,255,255,0.7)",fontSize:14}]:[],actions:[{label:"OK",variant:"primary",dismiss:!0}]}})}}else if(k.startsWith("toast:")){const Z=k.replace("toast:","");Ee(Z,"success")}}catch(Z){if(Z instanceof Vi&&_u(Z,T==null?void 0:T.onError))return;(Q=T.onError)!=null&&Q.message&&Ee(T.onError.message,"error")}},[Mt,J,ht]),$f=y.useRef(null),ml=y.useRef(null);y.useEffect(()=>{const T=ml.current;ml.current=Mt;const k=He==null?void 0:He.events,$=Array.isArray(k==null?void 0:k.onLoad)?k.onLoad:k!=null&&k.onLoad?[k.onLoad]:[];$.length!==0&&T!==Mt&&$.forEach(Y=>Po(Y))},[Mt,He==null?void 0:He.events,Po]),y.useEffect(()=>{var k,$;const T=$f.current;if($f.current=Mt,T&&T!==Mt){const Y=J.find(K=>K.id===T),z=(Y==null?void 0:Y.type)==="render_scene"?Y.config:null;($=(k=z==null?void 0:z.events)==null?void 0:k.onLeave)!=null&&$.action&&Po(z.events.onLeave)}},[Mt,J,Po]),y.useEffect(()=>{const T=He==null?void 0:He.events;if(!(T!=null&&T.onVisibilityChange))return;const k=()=>{var $,Y,z,K;document.hidden?(Y=($=T.onVisibilityChange)==null?void 0:$.onHidden)!=null&&Y.action&&Po(T.onVisibilityChange.onHidden):(K=(z=T.onVisibilityChange)==null?void 0:z.onVisible)!=null&&K.action&&Po(T.onVisibilityChange.onVisible)};return document.addEventListener("visibilitychange",k),()=>document.removeEventListener("visibilitychange",k)},[Mt,He==null?void 0:He.events,Po]);const Eg=y.useCallback(async(T,k)=>{Xs($=>({...$,[T]:!0}));try{await k()}finally{Xs($=>({...$,[T]:!1}))}},[]),Fn=y.useRef({}),If=y.useRef({}),vu=y.useRef({}),Si=y.useRef(new Map),gl=y.useRef(new Map),na=y.useRef(new Set),yl=y.useRef(new Set),Wi=y.useRef(null),vl=y.useRef([]),fs=y.useRef({}),Wn=y.useCallback(async(T,k,$=0,Y=10,z,K,X,Q=!1,Z=!1)=>{var Kt,Nt,Wt,de,jt;if(!T||te.current||!ht)return;const lt=`${k}|${T}|${$}|${Q}`,it=Si.current.get(lt)||0,gt=Fn.current[k]===T,Ot=If.current[k]===lt;if(!Z&&gt&&Ot&&Date.now()-it<1e3)return;If.current[k]=lt,Si.current.set(lt,Date.now()),Fn.current[k]=T,$===0&&!Q&&(ca.current[k]=1),po(ft=>({...ft,[k]:""}));const Pt=T.match(/^\{\{\s*\[([\w/.-]+)\](?:\.([\w.]+))?\s*\}\}$/);if(Pt){const ft=$n(`${Pt[1]}${Pt[2]?"."+Pt[2]:""}`);if(Array.isArray(ft))return zt(xt=>({...xt,[k]:ft})),En.current[k]=ft,En.current[T]=ft,rs(xt=>({...xt,[k]:{page:$,limit:Y,total:ft.length,hasMore:($+1)*Y<ft.length}})),ft}mo.current.has(k)||Fr.current[k]||(Fr.current[k]=setTimeout(()=>{delete Fr.current[k],ns(ft=>({...ft,[k]:!0}))},180));try{let ft=[],xt=0,_t;const Bt=An.current;if(Qs(T,k),mh(T)&&t){const qt=Nf(T,{limit:Y,page:$}),$e=z?Tr(qt,z,K):qt,Gt=Xu($e),se=await zd(t,Gt,Bt);_t=se,ft=(se==null?void 0:se.emails)||(se==null?void 0:se.items)||(se==null?void 0:se.data)||(se==null?void 0:se.history)||(Array.isArray(se)?se:[]),xt=((Kt=se==null?void 0:se.pagination)==null?void 0:Kt.total)??(se==null?void 0:se.count)??ft.length}else if(!mh(T)){const qt=t==null?void 0:t.endpoint,$e=N||(qt&&/^https?:\/\//.test(qt)?qt:window.location.origin);let Gt=T;!N&&qt&&!/^https?:\/\//.test(qt)&&typeof qt=="string"&&(Gt=`${qt.replace(/\/+$/,"")}${T.startsWith("/")?T:`/${T}`}`),ov("[fetchListData] apiUrl=%s baseUrl=%s dataSource=%s origin=%s",N,$e,T,window.location.origin);const se=new URL(Gt,$e),Hn=vu.current[k];se.searchParams.set("limit",String(Y)),(Hn==null?void 0:Hn.paginationMode)==="page"?(se.searchParams.delete("offset"),se.searchParams.set("page",String($+1))):se.searchParams.set("offset",String($*Y)),Z&&se.searchParams.set("_ts",String(Date.now())),z&&(se.searchParams.set("sort",z),se.searchParams.set("dir",K||"asc"));const sr=await fetch(se.toString(),{headers:{Authorization:`Bearer ${r||localStorage.getItem("token")||""}`}});if(await Fi(sr)||Zt.current)return;let Se=null;try{Se=await sr.json()}catch{}if(!sr.ok){const qi=typeof(Se==null?void 0:Se.message)=="string"&&Se.message||typeof(Se==null?void 0:Se.error)=="string"&&Se.error||`Request failed: ${sr.statusText}`;if(sr.status===429&&!gl.current.has(k)){const Ze=Math.min(Math.max(Number(Se==null?void 0:Se.retryAfter)||2,1)*1e3,3e4);gl.current.set(k,window.setTimeout(()=>{gl.current.delete(k),!Zt.current&&Wn(T,k,$,Y,z,K,X,Q,!0)},Ze))}throw new Vi([qi],Se||void 0)}if(oe.current=!0,_t=Se,Zt.current)return;const ys=Hn!=null&&Hn.responseKey?Se==null?void 0:Se[Hn.responseKey]:Se;if(ft=Array.isArray(ys)?ys:Array.isArray(Se.data)?Se.data:Array.isArray(Se.items)?Se.items:Array.isArray(Se.roles)?Se.roles:Array.isArray(Se.groups)?Se.groups:[],ft.length===0&&Se&&typeof Se=="object"){const qi=Array.isArray(Se.results)?Se.results[0]:null,Ze=(Nt=qi==null?void 0:qi.result)==null?void 0:Nt.steps,be=Array.isArray(Ze)?(Wt=Ze[Ze.length-1])==null?void 0:Wt.output:null;Array.isArray(be)?ft=be:Array.isArray(be==null?void 0:be.data)&&(ft=be.data)}xt=((de=Se.pagination)==null?void 0:de.total)??Se.count??Se.total??ft.length}if(zt(qt=>{if(Q&&Array.isArray(qt[k])){const $e=new Set(qt[k].map(se=>se==null?void 0:se.id)),Gt=[...qt[k],...ft.filter(se=>!$e.has(se==null?void 0:se.id))];return{...qt,[k]:Gt}}return{...qt,[k]:ft}}),Tt.current&&!Tt.current.closing){const qt=(jt=An.current)==null?void 0:jt.id,$e=qt?ft.find(Gt=>(Gt==null?void 0:Gt.id)===qt):null;$e&&fe(Gt=>Object.keys($e).some(Hn=>JSON.stringify(Gt[Hn])!==JSON.stringify($e[Hn]))?{...Gt,...$e}:Gt)}if(mo.current.add(k),En.current[k]=ft,T&&(En.current[T]=ft),X&&(En.current[X]={items:ft,response:_t},T)){const qt=fs.current[X];qt&&qt!==T&&sv(`[renderer] duplicate list key "${X}" used for both ${qt} and ${T}`),fs.current[X]=T}{const qt=String(T||"").replace(/^\//,"").split("?")[0];qt&&(En.current[qt]={response:_t})}return rs(qt=>{var $e,Gt,se;return{...qt,[k]:{page:$,limit:Y,total:xt,totalKnown:typeof(($e=_t==null?void 0:_t.pagination)==null?void 0:$e.hasMore)!="boolean"||typeof((Gt=_t==null?void 0:_t.pagination)==null?void 0:Gt.total)=="number",hasMore:typeof((se=_t==null?void 0:_t.pagination)==null?void 0:se.hasMore)=="boolean"?_t.pagination.hasMore:($+1)*Y<xt}}}),ft}catch(ft){if(ft instanceof Vi&&_u(ft))return;po(xt=>({...xt,[k]:ft instanceof Error?ft.message:"Could not load items."})),zt(xt=>{const _t=xt[k];return Array.isArray(_t)&&_t.length>0?xt:{...xt,[k]:[]}})}finally{Fr.current[k]&&(clearTimeout(Fr.current[k]),delete Fr.current[k]),ns(ft=>({...ft,[k]:!1}))}},[t,ht,Qs]),vr=()=>{const T=N||(t==null?void 0:t.endpoint);return T&&/^https?:\/\//.test(T)?T:T!=null&&T.startsWith("/")?`${window.location.origin}${T}`:window.location.origin},bl=T=>{const k=N||(t==null?void 0:t.endpoint);if(/^https?:\/\//.test(T))return T;const $=T.startsWith("/")?T:`/${T}`;return N&&/^https?:\/\//.test(N)?new URL($,N).toString():k&&/^https?:\/\//.test(k)?new URL($,k).toString():!N&&typeof k=="string"&&k.startsWith("/")?`${window.location.origin}${k.replace(/\/+$/,"")}${$}`:`${window.location.origin}${$}`};y.useEffect(()=>{if(ht)return;let T=!0;fl(!1),wi(!1),zi(!1);const k=w?`?tenant_id=${encodeURIComponent(w)}`:"",$={},Y=["localhost","127.0.0.1","[::1]"].includes(window.location.hostname);return E&&!Y&&($["x-app-id"]=E),fetch(`${vr()}/auth/providers${k}`,{headers:$,cache:"no-store"}).then(z=>z.ok?z.json():null).then(z=>{if(!T)return;pu(Array.isArray(z==null?void 0:z.providers)?z.providers:[]);const K=(z==null?void 0:z.emailCodeLogin)===!0;fl(K),wi(K)}).catch(()=>{T&&(pu([]),wi(!1))}),()=>{T=!1}},[ht,w,E]);const bu=y.useRef(null);y.useEffect(()=>{var z;if(!ht)return;const T=r||localStorage.getItem("token");if(!T){G(!0);return}const k=((e==null?void 0:e.steps)||[]).find(K=>K.id===Mt);if(!(((z=k==null?void 0:k.config)==null?void 0:z.requireAuth)===!0||(k==null?void 0:k.requiresAuth)===!0||nt)||bu.current===T)return;let Y=!1;return(async()=>{var K;try{const X=await fetch(`${vr()}/admin/users/me`,{headers:{Authorization:`Bearer ${T}`}});if(Y)return;if(X.ok){const Q=await X.json().catch(()=>null);bu.current=T,G(!1),st(typeof((K=Q==null?void 0:Q.user)==null?void 0:K.emailVerified)=="boolean"?Q.user.emailVerified:null)}else Mt&&(ye.current=Mt),bu.current=null,G(!0),It(!1),st(null)}catch{Y||(Mt&&(ye.current=Mt),G(!0))}})(),()=>{Y=!0}},[ht,Mt,e==null?void 0:e.steps]);const xu=y.useCallback((T,k,$)=>{!T||k.length===0||zt(Y=>{const z={...Y};for(const[K,X]of Object.entries(Fn.current)){if(X!==T||!Y[K])continue;const Q=Y[K];$==="remove"&&(z[K]=Q.filter(Z=>!k.includes(Z.id)))}return z})},[]),Ur=y.useCallback((T,k,$)=>{var Q,Z;const Y=new Map;for(const[lt,it]of Object.entries(fs.current))Y.set(it,lt);const z=new Map;for(const[lt,it]of Object.entries(Fn.current))z.set(lt,{ds:it,dataKey:Y.get(it)});for(const[lt,it]of Object.entries(fs.current))Object.values(Fn.current).includes(it)||z.set(lt,{ds:it,dataKey:lt});if(z.size===0)return;const K=Array.isArray(k)?new Set(k):void 0,X=(lt,it)=>na.current.has(lt)||(it?na.current.has(it):!1);for(const[lt,{ds:it,dataKey:gt}]of z){if(!X(lt,gt))continue;const Ot=!!(K!=null&&K.has(lt)||gt&&(K!=null&&K.has(gt)));if(k==="view"||Ot){Wn(it,lt,0,((Q=ir[lt])==null?void 0:Q.limit)||10,void 0,void 0,gt,!1,$);continue}const wt=it==null?void 0:it.split("?")[0];wt&&T.startsWith(wt)&&Wn(it,lt,0,((Z=ir[lt])==null?void 0:Z.limit)||10,void 0,void 0,gt,!1,$)}},[Wn,ir]),ra=y.useCallback((T,k,$,Y)=>{const z=String(T||"").toUpperCase();if(z==="GET"||Y===!1)return;const K=Y==="remove"||Y==="merge"||Y==="add"||Y==="refresh"?Y:z==="DELETE"?"remove":z==="PUT"||z==="PATCH"?"merge":z==="POST"?"add":null;if(!K||K==="refresh")return;const X=()=>{const Z=String(k).match(/\/([^/]+)\/?$/);return Z?decodeURIComponent(Z[1]):void 0},Q=[];for(const[Z,lt]of Object.entries(Fn.current)){if(!lt||!k.startsWith(lt))continue;const it=k.slice(lt.length);K==="add"&&it&&!it.startsWith("?")||Q.push({key:Z,ds:lt})}Q.length!==0&&zt(Z=>{const lt={...Z};for(const{key:it,ds:gt}of Q){const Ot=Z[it]||[];if(K==="remove"){const wt=($==null?void 0:$.id)||X();lt[it]=Ot.filter(Pt=>Pt.id!==wt)}else if(K==="merge"){const wt=($==null?void 0:$.id)||X();lt[it]=Ot.map(Pt=>Pt.id===wt?{...Pt,...$}:Pt)}else{const wt=$==null?void 0:$.id;if(wt!=null&&Ot.some(Kt=>String(Kt.id)===String(wt))){lt[it]=Ot.map(Kt=>String(Kt.id)===String(wt)?{...Kt,...$}:Kt);continue}const Pt={...$||{},id:wt||`temp_${Date.now()}`};K==="add"&&Pt.status===void 0&&(Pt.status="queued"),lt[it]=[Pt,...Ot]}}return lt})},[]),si=y.useCallback((T,k,$,Y)=>{var Z;const z=vr();let K=!1;const X=lt=>{K||(K=!0,lt())},Q=t==null?void 0:t.queues;if(T==="sse"&&(Q!=null&&Q.subscribe))try{const lt=Y.sseUrl||`${z}/queues/bulk-operations/jobs/${k}/subscribe?token=${encodeURIComponent($)}`,it=((t==null?void 0:t.endpoint)||z).replace(/\/$/,""),gt=lt.startsWith(it)?lt.slice(it.length):lt;Q.subscribe(gt,{onComplete:Ot=>X(()=>Y.onComplete(Ot)),onFailed:Ot=>X(()=>Y.onFailed({message:Ot||"Subscription failed",kind:"transport"})),onError:()=>X(()=>Y.onFailed({message:"Stream error",kind:"transport"})),onConnected:()=>{},onProgress:Ot=>{var wt;return(wt=Y.onProgress)==null?void 0:wt.call(Y,Ot)}}),setTimeout(()=>X(()=>Y.onFailed({message:"Timed out",kind:"transport"})),3e4);return}catch{}if(T==="ws"&&((Z=t==null?void 0:t.client)!=null&&Z.createWebSocket))try{const lt=t.client.createWebSocket(`job:${k}`);lt.onmessage=it=>{try{const gt=JSON.parse(it.data);(gt==null?void 0:gt.type)==="completed"?X(()=>Y.onComplete(gt.result)):(gt==null?void 0:gt.type)==="failed"&&X(()=>Y.onFailed({message:gt.error||"Job failed",kind:"job"}))}catch{}},lt.onerror=()=>X(()=>Y.onFailed({message:"Connection error",kind:"transport"})),setTimeout(()=>X(()=>Y.onFailed({message:"Timed out",kind:"transport"})),3e4);return}catch{}if(T==="poll"&&(Q!=null&&Q.getJob)){const lt=window.setInterval(async()=>{var it;try{const gt=await Q.getJob("bulk-operations",k),Ot=(gt==null?void 0:gt.status)||((it=gt==null?void 0:gt.job)==null?void 0:it.status),wt=(gt==null?void 0:gt.result)||(gt==null?void 0:gt.data);Ot==="failed"||wt!=null&&wt.final?(window.clearInterval(lt),X(()=>Ot==="failed"?Y.onFailed({message:(wt==null?void 0:wt.error)||"Job failed",kind:"job"}):Y.onComplete(wt))):Ot==="completed"&&(window.clearInterval(lt),X(()=>Y.onComplete(wt)))}catch{}},600);setTimeout(()=>{window.clearInterval(lt),X(()=>Y.onFailed({message:"Timed out",kind:"transport"}))},3e4);return}X(()=>Y.onFailed({message:"Feedback transport unavailable",kind:"transport"}))},[]),Cg=y.useCallback(async(T,k,$)=>{var gt,Ot;const Y=t==null?void 0:t.files,z=encodeURIComponent(r||localStorage.getItem("token")||""),K={...k||{},bucket:(k==null?void 0:k.bucket)||(k==null?void 0:k.entityType)||"media"};if(Y!=null&&Y.upload){const wt=await Y.upload(T,K,$),Pt=(wt==null?void 0:wt.url)||(wt==null?void 0:wt.path)||"";return Pt?(wt==null?void 0:wt.visibility)==="public"?Pt:`${vr()}${Pt}?token=${z}`:""}const X=new FormData;X.append("file",T),X.append("bucket",K.bucket),k!=null&&k.entityType&&X.append("entityType",k.entityType),k!=null&&k.entityId&&X.append("entityId",k.entityId),k!=null&&k.visibility&&X.append("visibility",k.visibility);const Q=await fetch(`${vr()}/files/upload`,{method:"POST",headers:{Authorization:`Bearer ${r||localStorage.getItem("token")||""}`},body:X});if(!Q.ok)throw new Error("Upload failed");const Z=await Q.json(),lt=((gt=Z==null?void 0:Z.asset)==null?void 0:gt.url)||(Z==null?void 0:Z.url)||(Z==null?void 0:Z.path)||(Z==null?void 0:Z.id)||"";return lt?((Ot=Z==null?void 0:Z.asset)==null?void 0:Ot.visibility)==="public"?lt:`${vr()}${lt}?token=${z}`:""},[]),ia=y.useCallback(async(T,k,$,Y)=>{var X;if(!(T!=null&&T.endpoint)||Y.length===0)return;const z=T.endpoint,K=T.optimistic??!0;try{const Q=await fetch(vr()+z,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${r||localStorage.getItem("token")||""}`},body:JSON.stringify({ids:Y})});let Z={};try{Z=await Q.json()}catch{}if(!Q.ok){Ee(((X=Z==null?void 0:Z.error)==null?void 0:X.message)||"Request failed","error");return}K!==!1&&(K==="remove"||K==="refresh"?K:Z.softUpdate||(T.action==="delete"?"remove":"refresh"))==="remove"&&xu(k,Y,"remove"),fe(it=>({...it,_selIds:[],_selectMode:!1}));const lt=(it,gt,Ot)=>{var wt;if(it)Ee(Ot||"Bulk operation failed","error");else{const Pt=gt||{},Kt=Pt.total??Y.length,Nt=Pt.successful??Kt;Ee(Nt>=Kt?`${Nt} ${T.action}d`:`${Nt} of ${Kt} ${T.action}d`,"success")}Wn(k,$,0,((wt=ir[$])==null?void 0:wt.limit)||10)};Z.jobId&&Z.token&&T.feedback?si(T.feedback,Z.jobId,Z.token,{onComplete:it=>lt(!1,it),onFailed:it=>{var gt;if(it.kind==="transport"){Wn(k,$,0,((gt=ir[$])==null?void 0:gt.limit)||10);return}lt(!0,null,it.message)}}):lt(!1,Z)}catch{Ee("Request failed","error")}},[xu,si,Wn,ir]),Tr=(T,k,$)=>{const Y=Xu(T),z=Y.indexOf("(");if(z===-1)return T;const K=Y.slice(z+1,-1).trim(),X=`sort: "${k}", dir: ${$==="desc"?'"desc"':'"asc"'}`;if(!K)return T.replace(/\(\)$/,`({${X}})`);const Q=K.lastIndexOf(",");if(Q===-1)return T.replace(/\(([^)]*)\)$/,`(${K}, {${X}})`);const Z=K.slice(Q+1).trim();return Z.startsWith("{")?T.replace(/\(([^)]*)\)$/,`(${K.slice(0,Q)}, {${Z.slice(1,-1)}, ${X}})`):T.replace(/\(([^)]*)\)$/,`(${K}, {${X}})`)},Nf=(T,k)=>{const $=Xu(T),Y=$.indexOf("(");if(Y===-1)return T;const z=$.slice(Y+1,-1).trim(),K=`limit: ${k.limit}, page: ${k.page}`;if(!z)return T.replace(/\(\)$/,`({${K}})`);const X=z.lastIndexOf(",");if(X===-1)return T.replace(/\(([^)]*)\)$/,`(${z}, {${K}})`);const Q=z.slice(X+1).trim();return Q.startsWith("{")?T.replace(/\(([^)]*)\)$/,`(${z.slice(0,X)}, {${Q.slice(1,-1)}, ${K}})`):T.replace(/\(([^)]*)\)$/,`(${z}, {${K}})`)};y.useEffect(()=>()=>{Zt.current=!0},[]),Rt.colors.background;const Vn=y.useMemo(()=>`bf-preview-${Math.random().toString(36).slice(2,9)}`,[]),Tg=T=>T.replace(/:(\w+)/g,(k,$)=>{const Y=we[$];return Y===void 0?k:String(Y)}),wu=T=>{try{const k=JSON.parse(T);if(Array.isArray(k)&&k.length>0)return k.map($=>{var Y;return $.message||`${((Y=$.path)==null?void 0:Y.join("."))||"field"} is invalid`})}catch{}return null};class Vi extends Error{constructor($,Y){super($.join(", "));jg(this,"errors");jg(this,"body");this.errors=$,this.body=Y}}const oa=async(T,k)=>{var Pt,Kt,Nt,Wt,de;if(te.current||!ht&&nt)return;const{method:$,path:Y}=kf(T),z=Tg(Y),K=$!=="GET"&&$!=="DELETE",X=vr();let Q=k==null?void 0:k.payload;if(Q&&typeof Q=="object"&&typeof Q.$condiments=="string"){const jt=Q.$condiments,ft=An.current||{},xt=Object.keys(ft).filter(Bt=>Bt.startsWith(jt)&&ft[Bt]!==!1&&ft[Bt]!==void 0&&ft[Bt]!==null&&ft[Bt]!=="").map(Bt=>({id:Bt.slice(jt.length),qty:1})),_t=Array.isArray(Q.items)?Q.items:null;Q=_t&&_t.length?{...Q,items:_t.map(Bt=>({...Bt,condiments:xt}))}:{...Q,condiments:xt},delete Q.$condiments,k={...k,payload:Q}}if(Q&&typeof Q=="object"&&Q.$adjustQty&&Q.$append){const jt=Q.$adjustQty||{},ft=$n(String(Q.$append)),xt=(Array.isArray(ft)?ft:[]).map(qt=>({menu_id:qt==null?void 0:qt.menu_id,qty:Number(qt==null?void 0:qt.qty)||1,...Array.isArray(qt==null?void 0:qt.condiments)&&qt.condiments.length?{condiments:qt.condiments}:{}})).filter(qt=>qt.menu_id),_t=xt.find(qt=>qt.menu_id===jt.menu_id),Bt=Number(jt.delta)||0;_t&&(_t.qty=Math.max(0,_t.qty+Bt)),Q={...Q,items:xt.filter(qt=>qt.qty>0)},delete Q.$adjustQty,delete Q.$append,k={...k,payload:Q}}if(Q&&typeof Q=="object"&&Q.$append){const jt=$n(String(Q.$append)),ft=(Array.isArray(jt)?jt:[]).map(_t=>({menu_id:_t==null?void 0:_t.menu_id,qty:Number(_t==null?void 0:_t.qty)||1,...Array.isArray(_t==null?void 0:_t.condiments)&&_t.condiments.length?{condiments:_t.condiments}:{}})).filter(_t=>_t.menu_id),xt=Array.isArray(Q.items)?Q.items:[];for(const _t of xt){const Bt=ft.find(qt=>qt.menu_id===(_t==null?void 0:_t.menu_id));Bt&&(_t!=null&&_t.menu_id)?(Bt.qty=Number(Bt.qty||0)+(Number(_t==null?void 0:_t.qty)||1),Array.isArray(_t==null?void 0:_t.condiments)&&_t.condiments.length&&(Bt.condiments=_t.condiments)):ft.push(_t)}Q={...Q,items:ft},delete Q.$append,k={...k,payload:Q}}let Z;if(k!=null&&k.payload&&typeof k.payload=="object"){const jt=ft=>{if(typeof ft=="string"){const xt=ft.match(/^\{\{\s*([\w.]+)\s*\}\}$/);if(xt){const _t=$n(xt[1]);if(_t!==void 0)return _t==="true"?!0:_t==="false"?!1:_t}return ft.includes("{{")?_l(ft):ft}if(Array.isArray(ft))return ft.map(jt);if(ft&&typeof ft=="object"){const xt={};for(const[_t,Bt]of Object.entries(ft))xt[_t]=jt(Bt);return xt}return ft};Z=jt(k.payload)}else Z=we;if(Z=yu(Z),$!=="GET"){const jt=Z&&typeof Z=="object"&&!Array.isArray(Z)&&Z.id!==void 0?Z:we;ra($,z,jt,(k==null?void 0:k.optimistic)??!0)}const lt=await fetch(bl(z),{method:$,headers:{"Content-Type":"application/json",Authorization:`Bearer ${r||localStorage.getItem("token")||""}`},...K?{body:JSON.stringify(Z)}:{}});if(await Fi(lt)||Zt.current)return;let it;try{it=await lt.json()}catch{if(Zt.current)return;if(!lt.ok)throw new Vi([`Request failed: ${lt.statusText}`]);return}if(!lt.ok||it.success===!1){Ur(z,k==null?void 0:k.refetchScope);let jt=["Something went wrong"];const ft=typeof it.error=="string"?it.error:(Pt=it.error)==null?void 0:Pt.message;if(ft){const xt=ft.replace(/^Validation failed:\s*/i,"");jt=wu(xt)||[xt]}else it.message&&(jt=[it.message]);throw new Vi(jt,it)}it.token&&localStorage.setItem("token",it.token),k!=null&&k.openUrl&&(it!=null&&it.url)&&String(it.url).startsWith("http")&&window.open(String(it.url),"_blank","noopener,noreferrer"),it&&typeof it=="object"&&!Array.isArray(it)&&fe(jt=>({...jt,feedback:it})),it.data&&(k==null?void 0:k.mergeResponse)!==!1&&fe(jt=>({...jt,...it.data})),it.user&&typeof it.user=="object"?fe(jt=>({...jt,user:it.user})):fe(jt=>({...jt})),En.current[z.replace(/^\//,"")]={response:it};for(const[jt,ft]of Object.entries(fs.current))if(ft===z||ft.endsWith(z)){const xt=En.current[jt];En.current[jt]={items:Array.isArray(xt)?xt:Array.isArray(xt==null?void 0:xt.items)?xt.items:[],response:it}}const gt=(Nt=(Kt=it.subscribe)==null?void 0:Kt.websocket)==null?void 0:Nt.workflowChannel;gt&&(k==null?void 0:k.mergeResponse)!==!1&&fe(jt=>{var ft,xt,_t,Bt;return{...jt,liveCastChannel:gt,execution_id:it.draftId||jt.execution_id,id:it.sessionId||jt.id,status:"running",test_session:{...jt.test_session||{},id:it.sessionId||((ft=jt.test_session)==null?void 0:ft.id),execution_id:it.draftId||((xt=jt.test_session)==null?void 0:xt.execution_id),status:"running",liveCastChannel:gt,prompt:(Z==null?void 0:Z.prompt)||((_t=jt.test_session)==null?void 0:_t.prompt),url:(Z==null?void 0:Z.url)||((Bt=jt.test_session)==null?void 0:Bt.url)}}}),Ur(z,k==null?void 0:k.refetchScope,!0);const Ot=k==null?void 0:k.feedback,wt=typeof Ot=="string"?Ot:Ot==null?void 0:Ot.transport;if(wt&&it.jobId&&(it.token||(Wt=it.subscribe)!=null&&Wt.sse||typeof Ot=="object")){let jt=(de=it.subscribe)!=null&&de.sse?/^https?:\/\//.test(it.subscribe.sse)?it.subscribe.sse:X+it.subscribe.sse:void 0;if(typeof Ot=="object"&&Ot.subscribeUrl){const ft=String(Ot.subscribeUrl).trim(),xt=ft.startsWith("{{")&&ft.endsWith("}}")?ft.slice(2,-2).trim():ft,_t=xt.match(/^\[(.+?)\](?:\.(.*))?$/),Bt=_t?$n(`${_t[1]}${_t[2]?"."+_t[2]:""}`):xt.split(".").reduce((qt,$e)=>qt==null?void 0:qt[$e],it);Bt&&(jt=/^https?:\/\//.test(Bt)?Bt:X+Bt)}if(jt){si(wt,it.jobId,it.token,{sseUrl:jt,onProgress:ft=>{s==null||s(ft);const xt=Date.now();xt-Fe.current>=2e3&&(Fe.current=xt,Ur(z,k==null?void 0:k.refetchScope))},onComplete:ft=>{const xt=(ft==null?void 0:ft.result)??ft;if(xt&&typeof xt=="object"){const _t=z.replace(/^\//,"");En.current[_t]={response:xt},fe(Bt=>({...Bt}))}Ur(z,k==null?void 0:k.refetchScope,!0)},onFailed:ft=>{Ur(z,k==null?void 0:k.refetchScope,!0),ft.kind!=="transport"&&Ee(ft.message||"Job failed","error")}});return}si(wt,it.jobId,it.token,{onComplete:ft=>{const xt=ft||{},_t=xt.total,Bt=xt.successful;_t!==void 0&&Ee(Bt>=_t?`${Bt} completed`:`${Bt} of ${_t} completed`,"success"),Ur(z,k==null?void 0:k.refetchScope,!0)},onFailed:ft=>{if(ft.kind==="transport"){Ur(z,k==null?void 0:k.refetchScope,!0);return}Ee(ft.message||"Job failed","error"),Ur(z,k==null?void 0:k.refetchScope,!0)}})}},Pi=T=>{var Y,z;me(null);const k=T==="/"&&(((Y=J.find(K=>K.route==="/"))==null?void 0:Y.id)||((z=J.find(K=>K.type==="render_scene"))==null?void 0:z.id))||T;if(ot(k)&&!ht){ye.current=k,St(!0);return}Qe(K=>[...K,Mt]),rr(k)},xl=(T,k="error")=>{if(fe($=>({...$,gateTitle:T.uiTitle||"Usage Notice",gateMessage:T.message})),T.uiVariant!=="modal"){const $=T.uiTitle?`${T.uiTitle}
205
+ `}function Xdt(e,t,n,r){return y.createElement("div",{style:{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",width:"100%",height:"100%",minHeight:"100%",backgroundColor:e.colors.background,gap:"16px"}},V("p",{style:{color:e.colors.text,fontSize:"1.125rem"}},"Scene not found"),y.createElement("div",{style:{display:"flex",gap:"12px",alignItems:"center"}},t>0&&y.createElement("button",{onClick:n,style:{padding:"0.5rem 1.5rem",borderRadius:"0.5rem",backgroundColor:e.colors.surfaceHover,color:e.colors.text,border:"none",cursor:"pointer",fontSize:"0.875rem",fontWeight:500,transition:e.effects.transition},onMouseOver:i=>i.target.style.backgroundColor=e.colors.border,onMouseOut:i=>i.target.style.backgroundColor=e.colors.surfaceHover},"← Go Back"),r&&y.createElement("button",{onClick:r,style:{display:"flex",alignItems:"center",gap:"6px",padding:"0.5rem 1.5rem",borderRadius:"0.5rem",backgroundColor:e.colors.primary,variant:"outline",color:e.colors.text,border:"none",cursor:"pointer",fontSize:"0.875rem",fontWeight:500,transition:"opacity 0.2s"},onMouseOver:i=>i.target.style.opacity="0.85",onMouseOut:i=>i.target.style.opacity="1"},y.createElement("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},V("polygon",{points:"13 2 3 14 12 14 11 22 21 10 12 10 13 2"})),"Generate Scene")))}function Jdt(e){return y.createElement("div",{key:"preview-modal",style:{position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(0, 0, 0, 0.5)",backdropFilter:"blur(4px)",WebkitBackdropFilter:"blur(4px)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:1e4,animation:"bf-fade-in 0.15s ease"}},y.createElement("div",{style:{backgroundColor:e.colors.background,borderRadius:"12px",padding:"24px",maxWidth:"360px",width:"90%",boxShadow:"0 20px 40px rgba(0, 0, 0, 0.4)",border:"1px solid rgba(255, 255, 255, 0.08)"}},V("h3",{style:{color:e.colors.text,fontSize:"16px",fontWeight:600,marginBottom:"12px"}},"Sample Modal"),V("p",{style:{color:e.colors.textSecondary,fontSize:"14px",marginBottom:"20px"}},"This is a preview of the modal component for styling."),y.createElement("div",{style:{display:"flex",gap:"12px",justifyContent:"flex-end"}},V("button",{style:{padding:"10px 20px",borderRadius:"8px",cursor:"pointer",fontSize:"14px",fontWeight:500,background:"rgba(255,255,255,0.08)",color:e.colors.text,border:`1px solid ${e.colors.borderSubtle}`}},"Cancel"),V("button",{style:{padding:"10px 20px",borderRadius:"8px",cursor:"pointer",fontSize:"14px",fontWeight:500,background:e.colors.primary,color:e.colors.text,border:"none"}},"Confirm"))))}function WC(e,t,n,r,i,o,s){var O,I,N,B,D,R,U,W,F,q,G,et,st;if(!e)return null;const{definition:a,closing:l}=e,h=a.variant?(O=a.variants)==null?void 0:O[a.variant]:void 0,u={...a,...h,style:{...a.style,...h==null?void 0:h.style},components:(h==null?void 0:h.components)||a.components,actions:(h==null?void 0:h.actions)||a.actions},f=u.popover===!0,p=(I=u.style)==null?void 0:I.placement,g=p==="left"||p==="right"||p==="bottom"?p:"center",x=u.drawer===!0||g==="left"||g==="right",m=g==="bottom",b=l===!0,_=u.className||"",S=_?((N=n.parseClassNameResponsive)==null?void 0:N.call(n,_,`modal-${e.id}`))??n.parseClassName(_):{};_&&S.backgroundColor&&delete S.backgroundColor;const P=f&&s&&s.top>window.innerHeight/2&&s.bottom+300>window.innerHeight,C=s?Math.min(Math.max(12,s.left),Math.max(12,window.innerWidth-372)):void 0,w=()=>{var H;b||(H=i||n.dismissModal)==null||H()},E=y.createElement("div",{key:`modal-overlay-${e.id||"base"}`,style:{position:"fixed",top:0,left:0,right:0,bottom:0,animation:b?"bf-fade-out 0.2s ease forwards":"bf-fade-in 0.15s ease",backdropFilter:f?void 0:"blur(4px)",WebkitBackdropFilter:f?void 0:"blur(4px)",display:"flex",alignItems:f?"flex-start":m?"flex-end":"center",justifyContent:f?"flex-end":x?g==="left"?"flex-start":"flex-end":"center",paddingTop:void 0,paddingRight:void 0,backgroundColor:f?"transparent":((B=u.style)==null?void 0:B.overlayColor)||"rgba(0,0,0,0.45)",pointerEvents:"auto",zIndex:o||1e4},onClick:H=>{H.target===H.currentTarget&&w()}},y.createElement("div",{className:_||void 0,style:{pointerEvents:f?"auto":void 0,...f?{position:"fixed",top:P||!s?P?void 0:"116px":`${s.bottom+8}px`,bottom:P?`${Math.max(12,window.innerHeight-s.top+8)}px`:void 0,left:C===void 0?void 0:`${C}px`,right:C===void 0?"24px":void 0}:{},backgroundColor:_?void 0:((D=u.style)==null?void 0:D.backgroundColor)||r||t.colors.background,borderRadius:x?"0px":((R=u.style)==null?void 0:R.borderRadius)||(m?"16px 16px 0 0":"12px"),padding:x?"0.5rem":m?"16px":"24px",height:x?"100%":"auto",maxHeight:m?"90vh":x?void 0:"85vh",maxWidth:x?"520px":m?n.isMobileView?"none":"640px":((U=u.style)==null?void 0:U.width)||{sm:"min(360px, 92vw)",md:"min(480px, 92vw)",lg:"min(720px, 92vw)",full:"90vw"}[u.size||"sm"]||"min(400px, 92vw)",width:(W=u.style)!=null&&W.width?"100%":x?"90vw":m?"100%":"90%",boxShadow:x?g==="left"?"4px 0 24px rgba(0, 0, 0, 0.4)":"-4px 0 24px rgba(0, 0, 0, 0.4)":m?"0 -8px 32px rgba(0, 0, 0, 0.45)":"0 20px 40px rgba(0, 0, 0, 0.4)",...f?{minWidth:"min(360px, 92vw)",marginRight:"0px",boxShadow:"0 12px 32px rgba(0, 0, 0, 0.45)"}:{},...u.skeleton&&!f?{position:"relative"}:{},border:"none",borderLeft:x&&g==="right"?`1px solid ${((F=u.style)==null?void 0:F.borderColor)||"rgba(255, 255, 255, 0.08)"}`:"none",borderRight:x&&g==="left"?`1px solid ${((q=u.style)==null?void 0:q.borderColor)||"rgba(255, 255, 255, 0.08)"}`:"none",overflow:"auto",animation:x?b?g==="left"?"bf-slide-out-left 0.2s ease forwards":"bf-slide-out-right 0.2s ease forwards":g==="left"?"bf-slide-in-left 0.2s ease":"bf-slide-in-right 0.2s ease":m?b?"bf-slide-out-down 0.2s ease forwards":"bf-slide-in-up 0.25s ease":b?"bf-fade-out 0.2s ease forwards":void 0,...S}},m?y.createElement("div",{key:"bf-sheet-handle",style:{width:"40px",height:"4px",borderRadius:"2px",backgroundColor:"rgba(255, 255, 255, 0.2)",margin:"0 auto 12px",flexShrink:0}}):null,u.icon?y.createElement("div",{style:{textAlign:"center",marginBottom:"12px",display:"flex",justifyContent:"center"}},n.renderIcon(u.icon,32)):null,u.title?y.createElement("h3",{className:"text-[#1c1917] dark:text-[#ffffff]",style:{fontFamily:(G=t.typography)==null?void 0:G.headingFontFamily,fontSize:u.icon?"18px":"16px",fontWeight:600,marginBottom:"12px",marginTop:"4px",paddingLeft:x?"1.5rem":"0px",paddingRight:x?"1.5rem":"0px",textAlign:u.icon?"center":"left"}},n.interpolateText(u.title)):null,...(u.components||[]).map((H,J)=>Bd(n,H,J,"modal")),(((et=u.actions)==null?void 0:et.length)||0)>0?y.createElement("div",{style:{display:"flex",gap:"12px",justifyContent:"flex-end",marginTop:"20px"}},...(u.actions||[]).map((H,J)=>{const ct=(yt=>{const $t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(yt);if(!$t)return!1;const[Ct,ut,ht]=[parseInt($t[1],16),parseInt($t[2],16),parseInt($t[3],16)];return(Ct*299+ut*587+ht*114)/1e3>150})(t.colors.primary)?"#000000":"#ffffff",mt={primary:{background:t.colors.primary,color:ct,border:"none"},secondary:{background:"rgba(255, 255, 255, 0.08)",color:t.colors.text,border:`1px solid ${t.colors.borderSubtle}`},ghost:{background:"transparent",color:t.colors.text,border:`1px solid ${t.colors.borderSubtle}`},danger:{background:t.colors.danger,color:"#ffffff",border:"none"}},vt=mt[H.variant||"primary"]||mt.primary;return y.createElement("button",{key:J,onClick:()=>{if(e.legacyOnConfirm&&(H.confirm||H.label==="Confirm")){w(),setTimeout(()=>{var yt;return(yt=e.legacyOnConfirm)==null?void 0:yt.call(e)},250);return}H.onClick&&n.handleButtonClick(H.onClick,{onSuccess:H.onSuccess,onError:H.onError}),H.dismiss&&w()},style:{padding:"10px 20px",borderRadius:"8px",cursor:"pointer",fontSize:"14px",fontWeight:500,...vt}},H.label)})):null,u.skeleton&&!b&&(n.loading&&Object.entries(n.loading).some(([H,J])=>{var ot;return J&&((ot=H.split("|")[1])==null?void 0:ot.startsWith("modal"))}))?y.createElement("div",{key:"bf-modal-skeleton",style:{position:"absolute",inset:0,zIndex:20,pointerEvents:"none",borderRadius:"inherit",background:S.backgroundColor||((st=u.style)==null?void 0:st.backgroundColor)||r||t.colors.background,padding:"24px",display:"flex",flexDirection:"column",gap:"14px"}},...Array.from({length:5}).map((H,J)=>y.createElement("div",{key:`bf-sk-${J}`,style:{height:J===0?"18px":"46px",width:J===0?"45%":"100%",borderRadius:"10px",background:"linear-gradient(90deg, rgba(148,148,148,0.12) 25%, rgba(148,148,148,0.26) 37%, rgba(148,148,148,0.12) 63%)",backgroundSize:"400% 100%",animation:"bf-shimmer 1.2s ease-in-out infinite"}}))):null));return f&&typeof document<"u"?Ja.createPortal(E,document.body):E}const Qdt=new tl,hm=()=>{try{if(typeof window<"u")return window.localStorage.getItem("backflow_dev_diagnostics")==="1"}catch{}return!1},ov=(...e)=>{hm()&&console.log(...e)},sv=(...e)=>{hm()&&console.warn(...e)};let BI=null;window.addEventListener("message",e=>{var t,n,r;(((t=e.data)==null?void 0:t.type)==="auth"||((n=e.data)==null?void 0:n.type)==="auth-token")&&((r=e.data)!=null&&r.token)&&(BI=e.data.token,localStorage.setItem("token",e.data.token),e.data.refreshToken&&localStorage.setItem("backflow_refresh_token",e.data.refreshToken),e.data.userId&&localStorage.setItem("backflow_refresh_user_id",e.data.userId))});function jl(e){try{const t=JSON.parse(atob(e.split(".")[1]));return typeof t.exp!="number"||t.exp*1e3<=Date.now()}catch{return!0}}function tpt({workflow:e,sdk:t,iconResolver:n,authToken:r,nativeAction:i,onRouteExecute:o,onJobProgress:s,appName:a,appIcon:l,selectedComponentKey:h,selectedComponentClass:u,styleOverrides:f,interactionDisabled:p,theme:g,imageReplacements:x,currentSceneId:m,onSceneChange:b,onGenerateScene:_,enableRouting:S,routingMode:P,previewElement:C,tenantId:w,appId:E,renderPhaserGame:O,renderMode:I,apiUrl:N,workflowBaseUrl:B,initialScene:D,previewMode:R,remoteSessionId:U,devDiagnostics:W}){var v,A,M,j,tt,rt,at,bt,Lt,Xt,ve,Un,xn,br,Xn,Co,Yf;y.useEffect(()=>{if(typeof document>"u")return;const T=(e==null?void 0:e.title)||a;T&&(document.title=String(T))},[e,a]);const F=(()=>{const T=BI||localStorage.getItem("token");return!!T&&!jl(T)})(),[q,G]=y.useState(!F),[et,st]=y.useState(null),H=y.useMemo(()=>Array.isArray(e==null?void 0:e.steps)?e.steps:[],[e]),J=y.useMemo(()=>{const T=H;return e&&!Array.isArray(e.steps)&&(sv("[WorkflowRenderer] NON-ARRAY steps:",typeof e.steps,JSON.stringify(e.steps).slice(0,500)),sv("[WorkflowRenderer] Workflow keys:",Object.keys(e))),q!==!0?T:T.filter(k=>{var $,Y;return!(k.requiresAuth===!0||(($=k.config)==null?void 0:$.requireAuth)===!0||((Y=k.config)==null?void 0:Y.requiresAuth)===!0)})},[e,q,H]),ot=y.useCallback(T=>{var $;const k=H.find(Y=>Y.id===T);return(($=k==null?void 0:k.config)==null?void 0:$.requireAuth)===!0||(k==null?void 0:k.requiresAuth)===!0},[H]),ct=e&&!((v=e.config)!=null&&v.colorMode)?nR(e):void 0,mt=sT(ct?{...(e==null?void 0:e.config)||{},colorMode:ct}:e==null?void 0:e.config,void 0,g),vt=!((A=e==null?void 0:e.config)!=null&&A.colorMode)&&!ct&&!(g!=null&&g.colorMode),yt=T=>Fw(T,{primary:Rt.colors.primary,accent:Rt.colors.accent,colorMode:Rt.colorMode},vt),$t=I||"legacy",Ct=P||(S?"hash":"memory"),ut=Ct!=="memory",[ht,It]=y.useState(F),[nt,St]=y.useState(!1),[dt,Jt]=y.useState(!1),[pe,Oe]=y.useState("idle"),{sceneToRoute:ae,routeToScene:sn}=y.useMemo(()=>LI(J),[J]),Ve=y.useMemo(()=>{var k,$;if(D&&J.some(Y=>Y.id===D))return D;const T=J.filter(Y=>Y.type==="render_scene");return((k=T.find(Y=>Y.route==="/"))==null?void 0:k.id)||(($=T[0])==null?void 0:$.id)||""},[J,D]),Pn=y.useMemo(()=>{if(ut&&typeof window<"u"){const T=Ct==="hash"?window.location.hash.slice(1)||"/":window.location.pathname,k=Vu(T,sn,ae);if(k)return k.sceneId}return Ve},[Ve,ut,Ct,sn,ae]),[Je,Qe]=y.useState([]),[fr,dr]=y.useState(Pn),nr=y.useRef(null),Ue=HM(nr),Cr=y.useRef(!1);y.useRef(null);const Zt=y.useRef(!1),te=y.useRef(!1),Fe=y.useRef(0),ye=y.useRef(null),oe=y.useRef(!1),Te=y.useRef(!1),xe=y.useRef(null),pr=T=>{var k,$;return(T==null?void 0:T.requiresAuth)===!0||((k=T==null?void 0:T.config)==null?void 0:k.requireAuth)===!0||(($=T==null?void 0:T.config)==null?void 0:$.requiresAuth)===!0},mr=()=>{var Y;const T=ye.current,$=(T&&H.some(z=>z.id===T)?T:null)||((Y=H.find(z=>z.type==="render_scene"&&pr(z)))==null?void 0:Y.id);$&&ut&&(Ct==="hash"?Ca($,ae,!0):Dl($,ae,!0)),(!$||!ut)&&localStorage.setItem("backflow_post_auth_redirect","1"),window.location.reload()};y.useEffect(()=>(Zt.current=!1,oT(),()=>{Zt.current=!0}),[]),y.useEffect(()=>{r&&localStorage.setItem("token",r)},[r]);const Mt=m??fr;y.useEffect(()=>{var Q,Z,lt;const T=J.find(it=>it.id===Mt),k=!!((Q=e==null?void 0:e.config)!=null&&Q.remoteControl)&&!!(T!=null&&T.remoteScene);if(ZC(k),KC(k&&!!((lt=(Z=e==null?void 0:e.config)==null?void 0:Z.mouse)!=null&&lt.enabled)),!k||!U){cv();return}const $=N||(t==null?void 0:t.endpoint),Y=$&&/^https?:\/\//.test($)?$:window.location.origin,z=new URL("/ws",Y);z.protocol=z.protocol==="https:"?"wss:":"ws:";const K=z.toString(),X=`agent:${w||"default"}:${U}`;return iT(K,X,r||localStorage.getItem("token")||void 0),()=>cv()},[(M=e==null?void 0:e.config)==null?void 0:M.remoteControl,(tt=(j=e==null?void 0:e.config)==null?void 0:j.mouse)==null?void 0:tt.enabled,J,Mt,U,w,N,t,r]);const rr=y.useCallback(T=>{dr(T),b==null||b(T)},[b]);y.useEffect(()=>{var $;const T=J.find(Y=>Y.id===Mt),k=(($=T==null?void 0:T.config)==null?void 0:$.requireAuth)===!0||(T==null?void 0:T.requiresAuth)===!0;Mt&&!k&&St(!1)},[Mt,J]);const an=(e==null?void 0:e.modals)||{};y.useEffect(()=>{if(!ht)return;const T=Rt.startupModal;!T||!an[T]||localStorage.getItem(`backflow_startup_modal_${T}`)||me({id:T,definition:an[T]})},[ht]);const Ko=y.useRef(typeof window>"u"?null:new URLSearchParams(window.location.search).get("customer_session_token"));y.useEffect(()=>{if(!ht||!Ko.current||!an["payment-success"])return;window.history.replaceState({},"",window.location.pathname);const k=setTimeout(()=>{an["payment-success"]&&me({id:"payment-success",definition:an["payment-success"]})},400);return()=>clearTimeout(k)},[ht,an["payment-success"]]),y.useEffect(()=>{q===!0&&(!Mt||J.some(T=>T.id===Mt)||Ve&&rr(Ve))},[q,J,Mt,Ve]),y.useEffect(()=>{if(ut){if(Cr.current){Cr.current=!1;return}Ct==="hash"?Ca(Mt,ae,!1,we):Dl(Mt,ae,!1,we)}},[Mt,ut,Ct,ae]),y.useEffect(()=>{if(!ut)return;const T=ae.get(Mt);T!=null&&T.includes(":")||(Ct==="hash"?Ca(Mt,ae,!0):Dl(Mt,ae,!0))},[]);const uo=y.useRef(!0);y.useEffect(()=>{const T=setTimeout(()=>{uo.current=!1},1500);return()=>clearTimeout(T)},[]),y.useEffect(()=>{if(!ut)return;const T=k=>{var K;if(uo.current)return;const $=Ct==="hash"?window.location.hash.slice(1)||"/":window.location.pathname,Y=Vu($,sn,ae),z=((K=k.state)==null?void 0:K.sceneId)||(Y==null?void 0:Y.sceneId);z&&z!==Mt&&(Cr.current=!0,rr(z),Qe(X=>X.length>0&&X[X.length-1]===z?X.slice(0,-1):X))};return window.addEventListener("popstate",T),()=>window.removeEventListener("popstate",T)},[ut,Ct,sn,ae,Mt,rr]),y.useEffect(()=>{var Y;if(!ut||typeof window>"u")return;const T=Ct==="hash"?window.location.hash.slice(1)||"/":window.location.pathname,k=Vu(T,sn,ae),$=(k==null?void 0:k.sceneId)||Ve;$&&$!==Mt&&(dr($),Qe([]),b==null||b($),k&&!((Y=ae.get($))!=null&&Y.includes(":"))&&(Ct==="hash"?Ca($,ae,!0):Dl($,ae,!0)))},[e]),y.useEffect(()=>{m&&m!==fr&&dr(m)},[m]);const ho=y.useCallback(()=>{if(ut){window.history.back();return}if(Je.length>0){const T=Je[Je.length-1];Qe(k=>k.slice(0,-1)),rr(T)}},[Je,ut]),[we,fe]=y.useState({}),An=y.useRef(we);y.useEffect(()=>{An.current=we},[we]),y.useEffect(()=>{const T=r||(typeof localStorage<"u"?localStorage.getItem("token"):"")||"";if(T)try{const k=JSON.parse(atob(T.split(".")[1])),$=k.sub||k.uid||k.user_id||k.userId;fe(Y=>({...Y,me:{uid:$,email:k.email},user:{uid:$,email:k.email,displayName:k.name||k.displayName,role:k.role,...Y.user||{}}}))}catch{}},[r,ht,Mt]),y.useEffect(()=>{if(!ut||typeof window>"u")return;const T=Ct==="hash"?window.location.hash.slice(1)||"/":window.location.pathname,k=Vu(T,sn,ae);if(!k||k.sceneId!==Mt)return;const $=Object.entries(k.params);if($.length===0)return;const Y={...An.current};for(const[z,K]of $)Y[z]=K,Y[`_${z}`]=K;An.current=Y,fe(Y)},[Mt,ut,Ct,sn,ae]),y.useEffect(()=>{if(!ut||typeof window>"u")return;const T=ae.get(Mt);!T||!T.includes(":")||Cr.current||(Ct==="hash"?Ca(Mt,ae,!0,An.current):Dl(Mt,ae,!0,An.current))},[we,Mt,ut,Ct,ae]);const Xo=y.useCallback(T=>{var X;const k=J.find(Q=>Q.id===T),$=(X=k==null?void 0:k.config)==null?void 0:X.components,Y=(e==null?void 0:e.widgets)||[];let z=!1;const K=Q=>{if(!(z||!Q)){if(Array.isArray(Q))return Q.forEach(K);if(typeof Q=="object"){if(typeof Q.dataSource=="string"&&/^(list|table|select|advanced-select|map|places)$/.test(Q.type)){z=!0;return}if(typeof Q.widgetId=="string"){const Z=Y.find(lt=>lt.id===Q.widgetId);Z&&K(Z.components)}Array.isArray(Q.children)&&K(Q.children),Q.renderItem&&K(Q.renderItem)}}};return K($),z},[J,e]);y.useEffect(()=>{oe.current=!Xo(Mt)},[Mt,Xo]),y.useEffect(()=>{if(!ut||typeof window>"u"||Te.current)return;const T=Ct==="hash"?window.location.hash.slice(1)||"/":window.location.pathname,k=Vu(T,sn,ae);if(!(!k||k.sceneId===Ve))return Te.current=!0,xe.current=setTimeout(()=>{oe.current||(ht?(dr(Ve),Qe([]),b==null||b(Ve),Ct==="hash"?Ca(Ve,ae,!0):Dl(Ve,ae,!0)):(te.current=!0,St(!0)))},4e3),()=>{xe.current&&(clearTimeout(xe.current),xe.current=null)}},[ut,Ct,sn,ae,Ve,ht,b]),y.useEffect(()=>{const T=()=>{const $=localStorage.getItem("token");!(!!$&&!jl($))&&ht&&(te.current=!0,Mt&&(ye.current=Mt),It(!1),St(!0))},k=setInterval(T,15e3);return window.addEventListener("storage",T),()=>{clearInterval(k),window.removeEventListener("storage",T)}},[ht,Mt]),y.useEffect(()=>{U&&fe(T=>T.remoteSessionId===U?T:{...T,remoteSessionId:U})},[U]);const Jo=y.useMemo(()=>Array.isArray(e==null?void 0:e.workflowRefs)?e.workflowRefs:[],[e]),zr=y.useMemo(()=>Jo.filter(T=>T.sceneIds==="*"||Array.isArray(T.sceneIds)&&T.sceneIds.includes(Mt)),[Mt,Jo]),[fo,Qo]=y.useState({}),Li=y.useRef({}),xi=y.useCallback(async(T,k=!1)=>{if(!ht||!T.appId)return;const $=N||(t==null?void 0:t.endpoint)||window.location.origin,Y=!N&&typeof $=="string"&&$.startsWith("/")?$.replace(/\/+$/,""):"",z=/^https?:\/\//.test($)?$:window.location.origin,K=`${Y}/mobile/apps/${encodeURIComponent(T.appId)}/workflow`,X=await fetch(new URL(K,z).toString(),{cache:k?"no-cache":"default",headers:{Authorization:`Bearer ${r||localStorage.getItem("token")||""}`}});if(!X.ok)throw new Error(`Workflow reference ${T.id} failed`);const Q=await X.json(),Z=(Q==null?void 0:Q.app)||Q;if(!Array.isArray(Z==null?void 0:Z.steps))throw new Error(`Workflow reference ${T.id} is invalid`);Qo(lt=>({...lt,[T.id]:Z}))},[N,r,ht,t]);y.useEffect(()=>{let T=!1;for(const k of zr){const $=`${k.appId}:${k.sourceSceneId||""}`;Li.current[k.id]!==$&&(Li.current[k.id]=$,xi(k).catch(()=>{T||delete Li.current[k.id]}))}return()=>{T=!0}},[zr,xi]),y.useEffect(()=>{var Y;const T=zr.filter(z=>{var K;return((K=z.realtime)==null?void 0:K.mode)==="ws"});if(T.length===0||!w)return;const k=(Y=t==null?void 0:t.client)==null?void 0:Y.createWebSocket;if(!k)return;const $=k(`tenant:${w}:entities`);return $.onmessage=z=>{let K;try{K=JSON.parse(z.data)}catch{return}if(!(K.type!=="entity_changed"||K.entity!=="mobile_apps"))for(const X of T)K.id===X.appId&&xi(X,!0).catch(()=>{})},()=>$.close()},[zr,xi,w,t]);const[vn,zt]=y.useState({}),[ts,po]=y.useState({}),mo=y.useRef(new Set),Fr=y.useRef({}),[go,es]=y.useState({}),[gr,ns]=y.useState({}),[Ks,Xs]=y.useState({}),[cl,ul]=y.useState({}),[ir,rs]=y.useState({}),[Di,Js]=y.useState([]),is=y.useRef(new Set),os=y.useRef(new Map),ss=y.useCallback((T,k)=>{if(!(W??hm()))return;const $=`${T}:${k}`;is.current.has($)||(is.current.add($),Js(Y=>[...Y,{level:"warn",code:T,where:`runtime:${Mt}`,msg:k}]))},[Mt,W]),Qs=y.useCallback((T,k)=>{if(!(W??hm()))return;const $=Date.now(),Y=(os.current.get(T)||[]).filter(X=>$-X.at<2e3),z=Y.find(X=>X.componentKey!==k&&$-X.at<500);Y.push({componentKey:k,at:$}),os.current.set(T,Y),z&&ss("DATASOURCE_DUPLICATE_RUNTIME",`"${T}" fetched by ${z.componentKey} and ${k} within 500ms`);const K=Y.filter(X=>X.componentKey===k);K.length>=3&&ss("RENDER_FETCH_LOOP",`"${T}" fetched ${K.length} times by ${k} within 2s`)},[W,ss]);y.useEffect(()=>{is.current.clear(),os.current.clear(),Js([])},[Mt]);const zn=y.useRef(new Map),yr=y.useRef(new Map),yo=y.useRef(new Set),[as,ji]=y.useState(!1),[Ft,me]=y.useState(null),[vo,ti]=y.useState(null),Tt=y.useRef(Ft);Tt.current=Ft;const Ye=y.useRef(null);y.useEffect(()=>{var k;if(!((k=Ft==null?void 0:Ft.definition)!=null&&k.popover))return;const T=()=>{const $=Ye.current;$&&ti($.getBoundingClientRect())};return window.addEventListener("scroll",T,!0),window.addEventListener("resize",T),T(),()=>{window.removeEventListener("scroll",T,!0),window.removeEventListener("resize",T)}},[Ft==null?void 0:Ft.id,(rt=Ft==null?void 0:Ft.definition)==null?void 0:rt.popover]);const Ut=y.useCallback(()=>{me(T=>T?{...T,closing:!0}:null),setTimeout(()=>me(null),250)},[]);y.useEffect(()=>{var $;const T=($=Ft==null?void 0:Ft.definition)==null?void 0:$.autoClose;if(!T||T<=0||Ft!=null&&Ft.closing)return;const k=setTimeout(()=>Ut(),T);return()=>clearTimeout(k)},[Ft==null?void 0:Ft.id]);const[ce,ls]=y.useState(null),hl=y.useCallback(()=>{ls(T=>T?{...T,closing:!0}:null),setTimeout(()=>ls(null),250)},[]),or=Ue>0&&Ue<Sh.md;y.useEffect(()=>{e&&typeof e=="object"&&(e.auth={signedIn:ht})},[e,ht]),y.useEffect(()=>{const T=e;if(!T)return;T.config||(T.config={});const k=T.config.logo;let $=!1;return qN({appIcon:l,workflowBaseUrl:B,configuredLogo:k}).then(Y=>{$||T.config.logo!==Y&&(T.config.logo=Y,fe(z=>z&&{...z}))}),()=>{$=!0}},[e,B,l]);const[ei,Bi]=y.useState("login"),[Ne,tn]=y.useState(""),[We,Wr]=y.useState(""),[ni,ta]=y.useState(""),[bo,ea]=y.useState({}),[cs,xo]=y.useState(""),[ri,kn]=y.useState(null),[bn,wo]=y.useState(!1),[du,Cf]=y.useState(!1),[he,ii]=y.useState(!1),[Re,pu]=y.useState(null),[mu,fl]=y.useState(!1),[dl,wi]=y.useState(!1),[gu,zi]=y.useState(!1),[_e,_o]=y.useState({}),us=T=>T?/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(T)?null:"Invalid email address":null,hs=T=>T?T.length>=6?null:"Password must be at least 6 characters":null,Ag=(T,k)=>k?k===T?null:"Passwords do not match":null,_i=(T,k)=>_o($=>({...$,[T]:k||""})),So=T=>{var k,$;return T?typeof T=="string"?T:Array.isArray(T)?((k=T[0])==null?void 0:k.message)||"Validation failed":typeof T.message=="string"?T.message:typeof T.error=="string"?T.error:($=T.error)!=null&&$.message?T.error.message:"An error occurred":"An error occurred"},pl=(we==null?void 0:we._colorMode)||mt.colorMode,Tf=pl==="dark"?yh:Ql;let Rt=mt;if(pl!==mt.colorMode){const T=Ql,k={};if(mt.colors&&pl==="dark")for(const[$,Y]of Object.entries(mt.colors))Y!==T[$]&&(k[$]=Y);Rt={...mt,colorMode:pl,colors:{...Tf,...k}}}y.useEffect(()=>{typeof document>"u"||document.documentElement.setAttribute("data-theme",Rt.colorMode==="dark"?"dark":"light")},[Rt.colorMode]);const Mf=y.useCallback(T=>{try{localStorage.setItem("bf_theme",T)}catch{}fe(k=>({...k,_colorMode:T}))},[]);y.useEffect(()=>{if(typeof localStorage>"u")return;const T=localStorage.getItem("bf_theme");(T==="dark"||T==="light")&&fe(k=>({...k,_colorMode:T}))},[]),y.useEffect(()=>{const T=new URLSearchParams(window.location.search).get("token");if(T&&!jl(T)){localStorage.setItem("token",T);const X=new URL(window.location.href);X.searchParams.delete("token"),window.history.replaceState({},"",X.toString())}const k=localStorage.getItem("token"),$=!!k&&!jl(k);$?(te.current=!1,G(!1)):G(!0),It($);const Y=()=>{const X=localStorage.getItem("token"),Q=!!X&&!jl(X);Q?(te.current=!1,G(!1)):G(!0),It(Q)};window.addEventListener("storage",Y);const z=X=>{var Q,Z,lt;if((((Q=X.data)==null?void 0:Q.type)==="auth"||((Z=X.data)==null?void 0:Z.type)==="auth-token")&&((lt=X.data)!=null&&lt.token)){if(localStorage.setItem("token",X.data.token),X.data.refreshToken&&localStorage.setItem("backflow_refresh_token",X.data.refreshToken),X.data.userId&&localStorage.setItem("backflow_refresh_user_id",X.data.userId),jl(X.data.token)){te.current=!0,It(!1);return}if(!ht&&(nt||te.current||!!ye.current)){mr();return}It(!0),St(!1),G(!1),te.current=!1}};window.addEventListener("message",z);const K=()=>{var X;if(!te.current){const Q=J.find(lt=>lt.id===Mt);if(!(((X=Q==null?void 0:Q.config)==null?void 0:X.requireAuth)===!0||(Q==null?void 0:Q.requiresAuth)===!0))return;te.current=!0,It(!1),St(!0)}};return window.addEventListener("auth:required",K),()=>{window.removeEventListener("storage",Y),window.removeEventListener("message",z),window.removeEventListener("auth:required",K)}},[]);const Vr=async()=>{var $;const T=localStorage.getItem("backflow_refresh_token"),k=localStorage.getItem("backflow_refresh_user_id");if(!T||!k)return!1;try{const z=await(await fetch(`${window.location.origin}/api/auth/refresh`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({refreshToken:T,userId:k})})).json();if(z.success&&(($=z.data)!=null&&$.token))return z.data.refreshToken&&localStorage.setItem("backflow_refresh_token",z.data.refreshToken),localStorage.setItem("token",z.data.token),!0}catch{}return localStorage.removeItem("backflow_refresh_token"),localStorage.removeItem("backflow_refresh_user_id"),!1},Fi=async(T,k=!1)=>{var $;if(T.status===401&&!nt){if(await Vr())return!1;if(ov("[bf] 401 intercepted, showAuth:",nt,"authInterceptedRef:",te.current),!te.current){te.current=!0,localStorage.removeItem("token"),It(!1);const z=J.find(X=>X.id===Mt),K=(($=z==null?void 0:z.config)==null?void 0:$.requireAuth)===!0||(z==null?void 0:z.requiresAuth)===!0;(k||K||Mt&&Mt!==Ve)&&(St(!0),Mt&&(ye.current=Mt))}return!0}return!1},Of=Mt&&J.some(T=>T.id===Mt)?Mt:(at=J[0])==null?void 0:at.id,oi=J.find(T=>T.id===Of),He=(oi==null?void 0:oi.type)==="render_scene"?oi.config:null;y.useEffect(()=>{if(!He)return;const T=w||"default",k={TENANT_ID:T,tenantId:T,role:"user"};fe($=>{const Y={};for(const z of Object.keys($))(z.startsWith("_")||z==="me")&&(Y[z]=$[z]);return{...k,...He.sceneData||{},...Y}})},[Mt,He]),y.useEffect(()=>{const T=Rt.persistedKeys;if(!T||T.length===0)return;const k={};for(const $ of T){const Y=localStorage.getItem(`bf_persist_${$}`);Y&&(k[$]=Y)}Object.keys(k).length>0&&(An.current={...An.current,...k},fe(An.current))},[Mt]),y.useEffect(()=>{const T=Rt.persistedKeys;if(!(!T||T.length===0))for(const k of T){if(!(k in we))continue;const $=we[k],Y=`bf_persist_${k}`;$==null||$===""?localStorage.removeItem(Y):localStorage.setItem(Y,String($))}}),y.useEffect(()=>{if(typeof window>"u")return;let T=0;const k=Y=>{const z=Y,K=!!z&&z!==document&&z!==window&&typeof z.scrollTop=="number"&&(z.scrollHeight||0)>(z.clientHeight||0),X=document.documentElement,Q=K?z.scrollTop:window.scrollY||X.scrollTop||document.body.scrollTop||0,Z=K?z.clientHeight:window.innerHeight||X.clientHeight||0,lt=K?z.scrollHeight:Math.max(X.scrollHeight,document.body?document.body.scrollHeight:0),it=Q>Math.max(8,Z*.5),gt=it&&Q+Z>=lt-16;fe(Ot=>Ot._scrolled===it&&Ot._atBottom===gt?Ot:{...Ot,_scrolled:it,_atBottom:gt})},$=Y=>{if(T)return;const z=Y.target;T=requestAnimationFrame(()=>{T=0,k(z)})};return window.addEventListener("scroll",$,{passive:!0,capture:!0}),k(null),()=>{window.removeEventListener("scroll",$,{capture:!0}),T&&cancelAnimationFrame(T)}},[]);const kf=T=>{const k=T.match(/^(GET|POST|PATCH|DELETE|PUT)\s+(.+)/);return{method:k?k[1]:"POST",path:k?k[2]:T}},yu=T=>{const k={...T};return delete k.TENANT_ID,delete k.tenantId,delete k.role,k},Po=y.useCallback(async T=>{var z,K,X,Q;if(!T.action)return;const k=String(T.action),$=T.condition;if($&&!Sl(String($),An.current))return;const Y=An.current;try{if(k.startsWith("execute_workflow:")){if(!ht)return;const{method:Z,path:lt}=kf(k.replace("execute_workflow:","")),it=lt.replace(/:(\w+)/g,(Pt,Kt)=>{const Nt=Y[Kt];return Nt===void 0?Pt:encodeURIComponent(String(Nt))}).replace(/\{\{(\w+)\}\}/g,(Pt,Kt)=>{const Nt=Y[Kt];return Nt===void 0?Pt:encodeURIComponent(String(Nt))}),gt=Z!=="GET"&&Z!=="DELETE";Z!=="GET"&&ra(Z,it,Y,!0);const Ot=await fetch(bl(it),{method:Z,headers:{"Content-Type":"application/json",Authorization:`Bearer ${r||localStorage.getItem("token")||""}`},...gt?{body:JSON.stringify(yu(Y))}:{}});if(Zt.current||await Fi(Ot)||Zt.current)return;if(!Ot.ok)throw Ur(it),new Error(`Route failed: ${Ot.statusText}`);const wt=await Ot.json();if(Zt.current)return;if(wt&&typeof wt=="object"&&!Array.isArray(wt)&&fe(Pt=>({...Pt,feedback:wt})),((z=T.onSuccess)==null?void 0:z.type)==="toast"&&T.onSuccess.value)Ee(T.onSuccess.value,"success");else if(((K=T.onSuccess)==null?void 0:K.type)==="navigate"&&T.onSuccess.value){const Pt=T.onSuccess.value;if(ot(Pt)&&!ht){ye.current=Pt,St(!0);return}Qe(Nt=>[...Nt,Mt]),rr(Pt)}wt!=null&&wt.data&&fe(Pt=>({...Pt,...wt.data})),(X=wt==null?void 0:wt.integrations)!=null&&X.data&&typeof wt.integrations.data=="object"&&!Array.isArray(wt.integrations.data)&&fe(Pt=>({...Pt,...wt.integrations.data})),wt!=null&&wt.user&&typeof wt.user=="object"&&fe(Pt=>({...Pt,user:wt.user})),En.current[it.replace(/^\//,"")]={response:wt},fe(Pt=>({...Pt}))}else if(k.startsWith("navigate:")){const Z=k.replace("navigate:","");if(ot(Z)&&!ht){ye.current=Z,St(!0);return}Qe(it=>[...it,Mt]),rr(Z)}else if(k.startsWith("go_to_step:")){const Z=k.replace("go_to_step:","").split("?")[0].trim();if(ot(Z)&&!ht){ye.current=Z,St(!0);return}Qe(it=>[...it,Mt]),rr(Z)}else if(k.startsWith("show_toast:")){const Z=k.replace("show_toast:","");Z&&Ee(Z,"success")}else if(k.startsWith("show_modal:")){const Z=k.replace("show_modal:","");if(an[Z]){const lt=an[Z],it=lt.clearFormKeys;fe(gt=>{const Ot={...gt};let wt=Array.isArray(it)&&it.length>0;if(wt)for(const Pt of it)delete Ot[Pt];for(const Pt of Object.keys(Ot))Pt.startsWith("__acc_")&&(delete Ot[Pt],wt=!0);return wt?Ot:gt}),me({id:Z,definition:lt}),lt.preload&&await oa(String(lt.preload))}else{const lt=Z.split("|");me({id:"__legacy",definition:{title:lt[0]||"Notice",components:lt[1]?[{type:"text",text:lt[1],color:Rt.colorMode==="light"?"rgba(0,0,0,0.65)":"rgba(255,255,255,0.7)",fontSize:14}]:[],actions:[{label:"OK",variant:"primary",dismiss:!0}]}})}}else if(k.startsWith("toast:")){const Z=k.replace("toast:","");Ee(Z,"success")}}catch(Z){if(Z instanceof Vi&&_u(Z,T==null?void 0:T.onError))return;(Q=T.onError)!=null&&Q.message&&Ee(T.onError.message,"error")}},[Mt,J,ht]),$f=y.useRef(null),ml=y.useRef(null);y.useEffect(()=>{const T=ml.current;ml.current=Mt;const k=He==null?void 0:He.events,$=Array.isArray(k==null?void 0:k.onLoad)?k.onLoad:k!=null&&k.onLoad?[k.onLoad]:[];$.length!==0&&T!==Mt&&$.forEach(Y=>Po(Y))},[Mt,He==null?void 0:He.events,Po]),y.useEffect(()=>{var k,$;const T=$f.current;if($f.current=Mt,T&&T!==Mt){const Y=J.find(K=>K.id===T),z=(Y==null?void 0:Y.type)==="render_scene"?Y.config:null;($=(k=z==null?void 0:z.events)==null?void 0:k.onLeave)!=null&&$.action&&Po(z.events.onLeave)}},[Mt,J,Po]),y.useEffect(()=>{const T=He==null?void 0:He.events;if(!(T!=null&&T.onVisibilityChange))return;const k=()=>{var $,Y,z,K;document.hidden?(Y=($=T.onVisibilityChange)==null?void 0:$.onHidden)!=null&&Y.action&&Po(T.onVisibilityChange.onHidden):(K=(z=T.onVisibilityChange)==null?void 0:z.onVisible)!=null&&K.action&&Po(T.onVisibilityChange.onVisible)};return document.addEventListener("visibilitychange",k),()=>document.removeEventListener("visibilitychange",k)},[Mt,He==null?void 0:He.events,Po]);const Eg=y.useCallback(async(T,k)=>{Xs($=>({...$,[T]:!0}));try{await k()}finally{Xs($=>({...$,[T]:!1}))}},[]),Fn=y.useRef({}),If=y.useRef({}),vu=y.useRef({}),Si=y.useRef(new Map),gl=y.useRef(new Map),na=y.useRef(new Set),yl=y.useRef(new Set),Wi=y.useRef(null),vl=y.useRef([]),fs=y.useRef({}),Wn=y.useCallback(async(T,k,$=0,Y=10,z,K,X,Q=!1,Z=!1)=>{var Kt,Nt,Wt,de,jt;if(!T||te.current||!ht)return;const lt=`${k}|${T}|${$}|${Q}`,it=Si.current.get(lt)||0,gt=Fn.current[k]===T,Ot=If.current[k]===lt;if(!Z&&gt&&Ot&&Date.now()-it<1e3)return;If.current[k]=lt,Si.current.set(lt,Date.now()),Fn.current[k]=T,$===0&&!Q&&(ca.current[k]=1),po(ft=>({...ft,[k]:""}));const Pt=T.match(/^\{\{\s*\[([\w/.-]+)\](?:\.([\w.]+))?\s*\}\}$/);if(Pt){const ft=$n(`${Pt[1]}${Pt[2]?"."+Pt[2]:""}`);if(Array.isArray(ft))return zt(xt=>({...xt,[k]:ft})),En.current[k]=ft,En.current[T]=ft,rs(xt=>({...xt,[k]:{page:$,limit:Y,total:ft.length,hasMore:($+1)*Y<ft.length}})),ft}mo.current.has(k)||Fr.current[k]||(Fr.current[k]=setTimeout(()=>{delete Fr.current[k],ns(ft=>({...ft,[k]:!0}))},180));try{let ft=[],xt=0,_t;const Bt=An.current;if(Qs(T,k),mh(T)&&t){const qt=Nf(T,{limit:Y,page:$}),$e=z?Tr(qt,z,K):qt,Gt=Xu($e),se=await zd(t,Gt,Bt);_t=se,ft=(se==null?void 0:se.emails)||(se==null?void 0:se.items)||(se==null?void 0:se.data)||(se==null?void 0:se.history)||(Array.isArray(se)?se:[]),xt=((Kt=se==null?void 0:se.pagination)==null?void 0:Kt.total)??(se==null?void 0:se.count)??ft.length}else if(!mh(T)){const qt=t==null?void 0:t.endpoint,$e=N||(qt&&/^https?:\/\//.test(qt)?qt:window.location.origin);let Gt=T;!N&&qt&&!/^https?:\/\//.test(qt)&&typeof qt=="string"&&(Gt=`${qt.replace(/\/+$/,"")}${T.startsWith("/")?T:`/${T}`}`),ov("[fetchListData] apiUrl=%s baseUrl=%s dataSource=%s origin=%s",N,$e,T,window.location.origin);const se=new URL(Gt,$e),Hn=vu.current[k];se.searchParams.set("limit",String(Y)),(Hn==null?void 0:Hn.paginationMode)==="page"?(se.searchParams.delete("offset"),se.searchParams.set("page",String($+1))):se.searchParams.set("offset",String($*Y)),Z&&se.searchParams.set("_ts",String(Date.now())),z&&(se.searchParams.set("sort",z),se.searchParams.set("dir",K||"asc"));const sr=await fetch(se.toString(),{headers:{Authorization:`Bearer ${r||localStorage.getItem("token")||""}`}});if(await Fi(sr)||Zt.current)return;let Se=null;try{Se=await sr.json()}catch{}if(!sr.ok){const qi=typeof(Se==null?void 0:Se.message)=="string"&&Se.message||typeof(Se==null?void 0:Se.error)=="string"&&Se.error||`Request failed: ${sr.statusText}`;if(sr.status===429&&!gl.current.has(k)){const Ze=Math.min(Math.max(Number(Se==null?void 0:Se.retryAfter)||2,1)*1e3,3e4);gl.current.set(k,window.setTimeout(()=>{gl.current.delete(k),!Zt.current&&Wn(T,k,$,Y,z,K,X,Q,!0)},Ze))}throw new Vi([qi],Se||void 0)}if(oe.current=!0,_t=Se,Zt.current)return;const ys=Hn!=null&&Hn.responseKey?Se==null?void 0:Se[Hn.responseKey]:Se;if(ft=Array.isArray(ys)?ys:Array.isArray(Se.data)?Se.data:Array.isArray(Se.items)?Se.items:Array.isArray(Se.roles)?Se.roles:Array.isArray(Se.groups)?Se.groups:[],ft.length===0&&Se&&typeof Se=="object"){const qi=Array.isArray(Se.results)?Se.results[0]:null,Ze=(Nt=qi==null?void 0:qi.result)==null?void 0:Nt.steps,be=Array.isArray(Ze)?(Wt=Ze[Ze.length-1])==null?void 0:Wt.output:null;Array.isArray(be)?ft=be:Array.isArray(be==null?void 0:be.data)&&(ft=be.data)}xt=((de=Se.pagination)==null?void 0:de.total)??Se.count??Se.total??ft.length}if(zt(qt=>{if(Q&&Array.isArray(qt[k])){const $e=new Set(qt[k].map(se=>se==null?void 0:se.id)),Gt=[...qt[k],...ft.filter(se=>!$e.has(se==null?void 0:se.id))];return{...qt,[k]:Gt}}return{...qt,[k]:ft}}),Tt.current&&!Tt.current.closing){const qt=(jt=An.current)==null?void 0:jt.id,$e=qt?ft.find(Gt=>(Gt==null?void 0:Gt.id)===qt):null;$e&&fe(Gt=>Object.keys($e).some(Hn=>JSON.stringify(Gt[Hn])!==JSON.stringify($e[Hn]))?{...Gt,...$e}:Gt)}if(mo.current.add(k),En.current[k]=ft,T&&(En.current[T]=ft),X&&(En.current[X]={items:ft,response:_t},T)){const qt=fs.current[X];qt&&qt!==T&&sv(`[renderer] duplicate list key "${X}" used for both ${qt} and ${T}`),fs.current[X]=T}{const qt=String(T||"").replace(/^\//,"").split("?")[0];qt&&(En.current[qt]={response:_t})}return rs(qt=>{var $e,Gt,se;return{...qt,[k]:{page:$,limit:Y,total:xt,totalKnown:typeof(($e=_t==null?void 0:_t.pagination)==null?void 0:$e.hasMore)!="boolean"||typeof((Gt=_t==null?void 0:_t.pagination)==null?void 0:Gt.total)=="number",hasMore:typeof((se=_t==null?void 0:_t.pagination)==null?void 0:se.hasMore)=="boolean"?_t.pagination.hasMore:($+1)*Y<xt}}}),ft}catch(ft){if(ft instanceof Vi&&_u(ft))return;po(xt=>({...xt,[k]:ft instanceof Error?ft.message:"Could not load items."})),zt(xt=>{const _t=xt[k];return Array.isArray(_t)&&_t.length>0?xt:{...xt,[k]:[]}})}finally{Fr.current[k]&&(clearTimeout(Fr.current[k]),delete Fr.current[k]),ns(ft=>({...ft,[k]:!1}))}},[t,ht,Qs]),vr=()=>{const T=N||(t==null?void 0:t.endpoint);return T&&/^https?:\/\//.test(T)?T:T!=null&&T.startsWith("/")?`${window.location.origin}${T}`:window.location.origin},bl=T=>{const k=N||(t==null?void 0:t.endpoint);if(/^https?:\/\//.test(T))return T;const $=T.startsWith("/")?T:`/${T}`;return N&&/^https?:\/\//.test(N)?new URL($,N).toString():k&&/^https?:\/\//.test(k)?new URL($,k).toString():!N&&typeof k=="string"&&k.startsWith("/")?`${window.location.origin}${k.replace(/\/+$/,"")}${$}`:`${window.location.origin}${$}`};y.useEffect(()=>{if(ht)return;let T=!0;fl(!1),wi(!1),zi(!1);const k=w?`?tenant_id=${encodeURIComponent(w)}`:"",$={},Y=["localhost","127.0.0.1","[::1]"].includes(window.location.hostname);return E&&!Y&&($["x-app-id"]=E),fetch(`${vr()}/auth/providers${k}`,{headers:$,cache:"no-store"}).then(z=>z.ok?z.json():null).then(z=>{if(!T)return;pu(Array.isArray(z==null?void 0:z.providers)?z.providers:[]);const K=(z==null?void 0:z.emailCodeLogin)===!0;fl(K),wi(K)}).catch(()=>{T&&(pu([]),wi(!1))}),()=>{T=!1}},[ht,w,E]);const bu=y.useRef(null);y.useEffect(()=>{var z;if(!ht)return;const T=r||localStorage.getItem("token");if(!T){G(!0);return}const k=((e==null?void 0:e.steps)||[]).find(K=>K.id===Mt);if(!(((z=k==null?void 0:k.config)==null?void 0:z.requireAuth)===!0||(k==null?void 0:k.requiresAuth)===!0||nt)||bu.current===T)return;let Y=!1;return(async()=>{var K;try{const X=await fetch(`${vr()}/admin/users/me`,{headers:{Authorization:`Bearer ${T}`}});if(Y)return;if(X.ok){const Q=await X.json().catch(()=>null);bu.current=T,G(!1),st(typeof((K=Q==null?void 0:Q.user)==null?void 0:K.emailVerified)=="boolean"?Q.user.emailVerified:null)}else Mt&&(ye.current=Mt),bu.current=null,G(!0),It(!1),st(null)}catch{Y||(Mt&&(ye.current=Mt),G(!0))}})(),()=>{Y=!0}},[ht,Mt,e==null?void 0:e.steps]);const xu=y.useCallback((T,k,$)=>{!T||k.length===0||zt(Y=>{const z={...Y};for(const[K,X]of Object.entries(Fn.current)){if(X!==T||!Y[K])continue;const Q=Y[K];$==="remove"&&(z[K]=Q.filter(Z=>!k.includes(Z.id)))}return z})},[]),Ur=y.useCallback((T,k,$)=>{var Q,Z;const Y=new Map;for(const[lt,it]of Object.entries(fs.current))Y.set(it,lt);const z=new Map;for(const[lt,it]of Object.entries(Fn.current))z.set(lt,{ds:it,dataKey:Y.get(it)});for(const[lt,it]of Object.entries(fs.current))Object.values(Fn.current).includes(it)||z.set(lt,{ds:it,dataKey:lt});if(z.size===0)return;const K=Array.isArray(k)?new Set(k):void 0,X=(lt,it)=>na.current.has(lt)||(it?na.current.has(it):!1);for(const[lt,{ds:it,dataKey:gt}]of z){if(!X(lt,gt))continue;const Ot=!!(K!=null&&K.has(lt)||gt&&(K!=null&&K.has(gt)));if(k==="view"||Ot){Wn(it,lt,0,((Q=ir[lt])==null?void 0:Q.limit)||10,void 0,void 0,gt,!1,$);continue}const wt=it==null?void 0:it.split("?")[0];wt&&T.startsWith(wt)&&Wn(it,lt,0,((Z=ir[lt])==null?void 0:Z.limit)||10,void 0,void 0,gt,!1,$)}},[Wn,ir]),ra=y.useCallback((T,k,$,Y)=>{const z=String(T||"").toUpperCase();if(z==="GET"||Y===!1)return;const K=Y==="remove"||Y==="merge"||Y==="add"||Y==="refresh"?Y:z==="DELETE"?"remove":z==="PUT"||z==="PATCH"?"merge":z==="POST"?"add":null;if(!K||K==="refresh")return;const X=()=>{const Z=String(k).match(/\/([^/]+)\/?$/);return Z?decodeURIComponent(Z[1]):void 0},Q=[];for(const[Z,lt]of Object.entries(Fn.current)){if(!lt||!k.startsWith(lt))continue;const it=k.slice(lt.length);K==="add"&&it&&!it.startsWith("?")||Q.push({key:Z,ds:lt})}Q.length!==0&&zt(Z=>{const lt={...Z};for(const{key:it,ds:gt}of Q){const Ot=Z[it]||[];if(K==="remove"){const wt=($==null?void 0:$.id)||X();lt[it]=Ot.filter(Pt=>Pt.id!==wt)}else if(K==="merge"){const wt=($==null?void 0:$.id)||X();lt[it]=Ot.map(Pt=>Pt.id===wt?{...Pt,...$}:Pt)}else{const wt=$==null?void 0:$.id;if(wt!=null&&Ot.some(Kt=>String(Kt.id)===String(wt))){lt[it]=Ot.map(Kt=>String(Kt.id)===String(wt)?{...Kt,...$}:Kt);continue}const Pt={...$||{},id:wt||`temp_${Date.now()}`};K==="add"&&Pt.status===void 0&&(Pt.status="queued"),lt[it]=[Pt,...Ot]}}return lt})},[]),si=y.useCallback((T,k,$,Y)=>{var Z;const z=vr();let K=!1;const X=lt=>{K||(K=!0,lt())},Q=t==null?void 0:t.queues;if(T==="sse"&&(Q!=null&&Q.subscribe))try{const lt=Y.sseUrl||`${z}/queues/bulk-operations/jobs/${k}/subscribe?token=${encodeURIComponent($)}`,it=((t==null?void 0:t.endpoint)||z).replace(/\/$/,""),gt=lt.startsWith(it)?lt.slice(it.length):lt;Q.subscribe(gt,{onComplete:Ot=>X(()=>Y.onComplete(Ot)),onFailed:Ot=>X(()=>Y.onFailed({message:Ot||"Subscription failed",kind:"transport"})),onError:()=>X(()=>Y.onFailed({message:"Stream error",kind:"transport"})),onConnected:()=>{},onProgress:Ot=>{var wt;return(wt=Y.onProgress)==null?void 0:wt.call(Y,Ot)}}),setTimeout(()=>X(()=>Y.onFailed({message:"Timed out",kind:"transport"})),3e4);return}catch{}if(T==="ws"&&((Z=t==null?void 0:t.client)!=null&&Z.createWebSocket))try{const lt=t.client.createWebSocket(`job:${k}`);lt.onmessage=it=>{try{const gt=JSON.parse(it.data);(gt==null?void 0:gt.type)==="completed"?X(()=>Y.onComplete(gt.result)):(gt==null?void 0:gt.type)==="failed"&&X(()=>Y.onFailed({message:gt.error||"Job failed",kind:"job"}))}catch{}},lt.onerror=()=>X(()=>Y.onFailed({message:"Connection error",kind:"transport"})),setTimeout(()=>X(()=>Y.onFailed({message:"Timed out",kind:"transport"})),3e4);return}catch{}if(T==="poll"&&(Q!=null&&Q.getJob)){const lt=window.setInterval(async()=>{var it;try{const gt=await Q.getJob("bulk-operations",k),Ot=(gt==null?void 0:gt.status)||((it=gt==null?void 0:gt.job)==null?void 0:it.status),wt=(gt==null?void 0:gt.result)||(gt==null?void 0:gt.data);Ot==="failed"||wt!=null&&wt.final?(window.clearInterval(lt),X(()=>Ot==="failed"?Y.onFailed({message:(wt==null?void 0:wt.error)||"Job failed",kind:"job"}):Y.onComplete(wt))):Ot==="completed"&&(window.clearInterval(lt),X(()=>Y.onComplete(wt)))}catch{}},600);setTimeout(()=>{window.clearInterval(lt),X(()=>Y.onFailed({message:"Timed out",kind:"transport"}))},3e4);return}X(()=>Y.onFailed({message:"Feedback transport unavailable",kind:"transport"}))},[]),Cg=y.useCallback(async(T,k,$)=>{var gt,Ot;const Y=t==null?void 0:t.files,z=encodeURIComponent(r||localStorage.getItem("token")||""),K={...k||{},bucket:(k==null?void 0:k.bucket)||(k==null?void 0:k.entityType)||"media"};if(Y!=null&&Y.upload){const wt=await Y.upload(T,K,$),Pt=(wt==null?void 0:wt.url)||(wt==null?void 0:wt.path)||"";return Pt?(wt==null?void 0:wt.visibility)==="public"?Pt:`${vr()}${Pt}?token=${z}`:""}const X=new FormData;X.append("file",T),X.append("bucket",K.bucket),k!=null&&k.entityType&&X.append("entityType",k.entityType),k!=null&&k.entityId&&X.append("entityId",k.entityId),k!=null&&k.visibility&&X.append("visibility",k.visibility);const Q=await fetch(`${vr()}/files/upload`,{method:"POST",headers:{Authorization:`Bearer ${r||localStorage.getItem("token")||""}`},body:X});if(!Q.ok)throw new Error("Upload failed");const Z=await Q.json(),lt=((gt=Z==null?void 0:Z.asset)==null?void 0:gt.url)||(Z==null?void 0:Z.url)||(Z==null?void 0:Z.path)||(Z==null?void 0:Z.id)||"";return lt?((Ot=Z==null?void 0:Z.asset)==null?void 0:Ot.visibility)==="public"?lt:`${vr()}${lt}?token=${z}`:""},[]),ia=y.useCallback(async(T,k,$,Y)=>{var X;if(!(T!=null&&T.endpoint)||Y.length===0)return;const z=T.endpoint,K=T.optimistic??!0;try{const Q=await fetch(vr()+z,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${r||localStorage.getItem("token")||""}`},body:JSON.stringify({ids:Y})});let Z={};try{Z=await Q.json()}catch{}if(!Q.ok){Ee(((X=Z==null?void 0:Z.error)==null?void 0:X.message)||"Request failed","error");return}K!==!1&&(K==="remove"||K==="refresh"?K:Z.softUpdate||(T.action==="delete"?"remove":"refresh"))==="remove"&&xu(k,Y,"remove"),fe(it=>({...it,_selIds:[],_selectMode:!1}));const lt=(it,gt,Ot)=>{var wt;if(it)Ee(Ot||"Bulk operation failed","error");else{const Pt=gt||{},Kt=Pt.total??Y.length,Nt=Pt.successful??Kt;Ee(Nt>=Kt?`${Nt} ${T.action}d`:`${Nt} of ${Kt} ${T.action}d`,"success")}Wn(k,$,0,((wt=ir[$])==null?void 0:wt.limit)||10)};Z.jobId&&Z.token&&T.feedback?si(T.feedback,Z.jobId,Z.token,{onComplete:it=>lt(!1,it),onFailed:it=>{var gt;if(it.kind==="transport"){Wn(k,$,0,((gt=ir[$])==null?void 0:gt.limit)||10);return}lt(!0,null,it.message)}}):lt(!1,Z)}catch{Ee("Request failed","error")}},[xu,si,Wn,ir]),Tr=(T,k,$)=>{const Y=Xu(T),z=Y.indexOf("(");if(z===-1)return T;const K=Y.slice(z+1,-1).trim(),X=`sort: "${k}", dir: ${$==="desc"?'"desc"':'"asc"'}`;if(!K)return T.replace(/\(\)$/,`({${X}})`);const Q=K.lastIndexOf(",");if(Q===-1)return T.replace(/\(([^)]*)\)$/,`(${K}, {${X}})`);const Z=K.slice(Q+1).trim();return Z.startsWith("{")?T.replace(/\(([^)]*)\)$/,`(${K.slice(0,Q)}, {${Z.slice(1,-1)}, ${X}})`):T.replace(/\(([^)]*)\)$/,`(${K}, {${X}})`)},Nf=(T,k)=>{const $=Xu(T),Y=$.indexOf("(");if(Y===-1)return T;const z=$.slice(Y+1,-1).trim(),K=`limit: ${k.limit}, page: ${k.page}`;if(!z)return T.replace(/\(\)$/,`({${K}})`);const X=z.lastIndexOf(",");if(X===-1)return T.replace(/\(([^)]*)\)$/,`(${z}, {${K}})`);const Q=z.slice(X+1).trim();return Q.startsWith("{")?T.replace(/\(([^)]*)\)$/,`(${z.slice(0,X)}, {${Q.slice(1,-1)}, ${K}})`):T.replace(/\(([^)]*)\)$/,`(${z}, {${K}})`)};y.useEffect(()=>()=>{Zt.current=!0},[]),Rt.colors.background;const Vn=y.useMemo(()=>`bf-preview-${Math.random().toString(36).slice(2,9)}`,[]),Tg=T=>T.replace(/:(\w+)/g,(k,$)=>{const Y=we[$];return Y===void 0?k:String(Y)}),wu=T=>{try{const k=JSON.parse(T);if(Array.isArray(k)&&k.length>0)return k.map($=>{var Y;return $.message||`${((Y=$.path)==null?void 0:Y.join("."))||"field"} is invalid`})}catch{}return null};class Vi extends Error{constructor($,Y){super($.join(", "));jg(this,"errors");jg(this,"body");this.errors=$,this.body=Y}}const oa=async(T,k)=>{var Pt,Kt,Nt,Wt,de;if(te.current||!ht&&nt)return;const{method:$,path:Y}=kf(T),z=Tg(Y),K=$!=="GET"&&$!=="DELETE",X=vr();let Q=k==null?void 0:k.payload;if(Q&&typeof Q=="object"&&typeof Q.$condiments=="string"){const jt=Q.$condiments,ft=An.current||{},xt=Object.keys(ft).filter(Bt=>Bt.startsWith(jt)&&ft[Bt]!==!1&&ft[Bt]!==void 0&&ft[Bt]!==null&&ft[Bt]!=="").map(Bt=>({id:Bt.slice(jt.length),qty:1})),_t=Array.isArray(Q.items)?Q.items:null;Q=_t&&_t.length?{...Q,items:_t.map(Bt=>({...Bt,condiments:xt}))}:{...Q,condiments:xt},delete Q.$condiments,k={...k,payload:Q}}if(Q&&typeof Q=="object"&&Q.$adjustQty&&Q.$append){const jt=Q.$adjustQty||{},ft=$n(String(Q.$append)),xt=(Array.isArray(ft)?ft:[]).map(qt=>({menu_id:qt==null?void 0:qt.menu_id,qty:Number(qt==null?void 0:qt.qty)||1,...Array.isArray(qt==null?void 0:qt.condiments)&&qt.condiments.length?{condiments:qt.condiments}:{}})).filter(qt=>qt.menu_id),_t=xt.find(qt=>qt.menu_id===jt.menu_id),Bt=Number(jt.delta)||0;_t&&(_t.qty=Math.max(0,_t.qty+Bt)),Q={...Q,items:xt.filter(qt=>qt.qty>0)},delete Q.$adjustQty,delete Q.$append,k={...k,payload:Q}}if(Q&&typeof Q=="object"&&Q.$append){const jt=$n(String(Q.$append)),ft=(Array.isArray(jt)?jt:[]).map(_t=>({menu_id:_t==null?void 0:_t.menu_id,qty:Number(_t==null?void 0:_t.qty)||1,...Array.isArray(_t==null?void 0:_t.condiments)&&_t.condiments.length?{condiments:_t.condiments}:{}})).filter(_t=>_t.menu_id),xt=Array.isArray(Q.items)?Q.items:[];for(const _t of xt){const Bt=ft.find(qt=>qt.menu_id===(_t==null?void 0:_t.menu_id));Bt&&(_t!=null&&_t.menu_id)?(Bt.qty=Number(Bt.qty||0)+(Number(_t==null?void 0:_t.qty)||1),Array.isArray(_t==null?void 0:_t.condiments)&&_t.condiments.length&&(Bt.condiments=_t.condiments)):ft.push(_t)}Q={...Q,items:ft},delete Q.$append,k={...k,payload:Q}}let Z;if(k!=null&&k.payload&&typeof k.payload=="object"){const jt=ft=>{if(typeof ft=="string"){const xt=ft.match(/^\{\{\s*([\w.]+)\s*\}\}$/);if(xt){const _t=$n(xt[1]);if(_t!==void 0)return _t==="true"?!0:_t==="false"?!1:_t}return ft.includes("{{")?_l(ft):ft}if(Array.isArray(ft))return ft.map(jt);if(ft&&typeof ft=="object"){const xt={};for(const[_t,Bt]of Object.entries(ft))xt[_t]=jt(Bt);return xt}return ft};Z=jt(k.payload)}else Z=we;if(Z=yu(Z),$!=="GET"){const jt=Z&&typeof Z=="object"&&!Array.isArray(Z)&&Z.id!==void 0?Z:we;ra($,z,jt,(k==null?void 0:k.optimistic)??!0)}const lt=await fetch(bl(z),{method:$,headers:{"Content-Type":"application/json",Authorization:`Bearer ${r||localStorage.getItem("token")||""}`},...K?{body:JSON.stringify(Z)}:{}});if(await Fi(lt)||Zt.current)return;let it;try{it=await lt.json()}catch{if(Zt.current)return;if(!lt.ok)throw new Vi([`Request failed: ${lt.statusText}`]);return}if(!lt.ok||it.success===!1){Ur(z,k==null?void 0:k.refetchScope);let jt=["Something went wrong"];const ft=typeof it.error=="string"?it.error:(Pt=it.error)==null?void 0:Pt.message;if(ft){const xt=ft.replace(/^Validation failed:\s*/i,"");jt=wu(xt)||[xt]}else it.message&&(jt=[it.message]);throw new Vi(jt,it)}it.token&&localStorage.setItem("token",it.token),k!=null&&k.openUrl&&(it!=null&&it.url)&&String(it.url).startsWith("http")&&window.open(String(it.url),"_blank","noopener,noreferrer"),it&&typeof it=="object"&&!Array.isArray(it)&&fe(jt=>({...jt,feedback:it})),it.data&&(k==null?void 0:k.mergeResponse)!==!1&&fe(jt=>({...jt,...it.data})),it.user&&typeof it.user=="object"?fe(jt=>({...jt,user:it.user})):fe(jt=>({...jt})),En.current[z.replace(/^\//,"")]={response:it};for(const[jt,ft]of Object.entries(fs.current))if(ft===z||ft.endsWith(z)){const xt=En.current[jt];En.current[jt]={items:Array.isArray(xt)?xt:Array.isArray(xt==null?void 0:xt.items)?xt.items:[],response:it}}const gt=(Nt=(Kt=it.subscribe)==null?void 0:Kt.websocket)==null?void 0:Nt.workflowChannel;gt&&(k==null?void 0:k.mergeResponse)!==!1&&fe(jt=>{var ft,xt,_t,Bt;return{...jt,liveCastChannel:gt,execution_id:it.draftId||jt.execution_id,id:it.sessionId||jt.id,status:"running",test_session:{...jt.test_session||{},id:it.sessionId||((ft=jt.test_session)==null?void 0:ft.id),execution_id:it.draftId||((xt=jt.test_session)==null?void 0:xt.execution_id),status:"running",liveCastChannel:gt,prompt:(Z==null?void 0:Z.prompt)||((_t=jt.test_session)==null?void 0:_t.prompt),url:(Z==null?void 0:Z.url)||((Bt=jt.test_session)==null?void 0:Bt.url)}}}),Ur(z,k==null?void 0:k.refetchScope,!0);const Ot=k==null?void 0:k.feedback,wt=typeof Ot=="string"?Ot:Ot==null?void 0:Ot.transport;if(wt&&it.jobId&&(it.token||(Wt=it.subscribe)!=null&&Wt.sse||typeof Ot=="object")){let jt=(de=it.subscribe)!=null&&de.sse?/^https?:\/\//.test(it.subscribe.sse)?it.subscribe.sse:X+it.subscribe.sse:void 0;if(typeof Ot=="object"&&Ot.subscribeUrl){const ft=String(Ot.subscribeUrl).trim(),xt=ft.startsWith("{{")&&ft.endsWith("}}")?ft.slice(2,-2).trim():ft,_t=xt.match(/^\[(.+?)\](?:\.(.*))?$/),Bt=_t?$n(`${_t[1]}${_t[2]?"."+_t[2]:""}`):xt.split(".").reduce((qt,$e)=>qt==null?void 0:qt[$e],it);Bt&&(jt=/^https?:\/\//.test(Bt)?Bt:X+Bt)}if(jt){si(wt,it.jobId,it.token,{sseUrl:jt,onProgress:ft=>{s==null||s(ft);const xt=Date.now();xt-Fe.current>=2e3&&(Fe.current=xt,Ur(z,k==null?void 0:k.refetchScope))},onComplete:ft=>{const xt=(ft==null?void 0:ft.result)??ft;if(xt&&typeof xt=="object"){const _t=z.replace(/^\//,"");En.current[_t]={response:xt},fe(Bt=>({...Bt}))}Ur(z,k==null?void 0:k.refetchScope,!0)},onFailed:ft=>{Ur(z,k==null?void 0:k.refetchScope,!0),ft.kind!=="transport"&&Ee(ft.message||"Job failed","error")}});return}si(wt,it.jobId,it.token,{onComplete:ft=>{const xt=ft||{},_t=xt.total,Bt=xt.successful;_t!==void 0&&Ee(Bt>=_t?`${Bt} completed`:`${Bt} of ${_t} completed`,"success"),Ur(z,k==null?void 0:k.refetchScope,!0)},onFailed:ft=>{if(ft.kind==="transport"){Ur(z,k==null?void 0:k.refetchScope,!0);return}Ee(ft.message||"Job failed","error"),Ur(z,k==null?void 0:k.refetchScope,!0)}})}},Pi=T=>{var Y,z;me(null);const k=T==="/"&&(((Y=J.find(K=>K.route==="/"))==null?void 0:Y.id)||((z=J.find(K=>K.type==="render_scene"))==null?void 0:z.id))||T;if(ot(k)&&!ht){ye.current=k,St(!0);return}Qe(K=>[...K,Mt]),rr(k)},xl=(T,k="error")=>{if(fe($=>({...$,gateTitle:T.uiTitle||"Usage Notice",gateMessage:T.message})),T.uiVariant!=="modal"){const $=T.uiTitle?`${T.uiTitle}
206
206
  ${T.message}`:T.message;Ee($,k);return}if(T.modalId&&an[T.modalId]){me({id:T.modalId,definition:an[T.modalId]});return}me({id:"__legacy",definition:{title:T.uiTitle||"Usage Notice",components:[{type:"text",text:T.message,color:Rt.colorMode==="light"?"rgba(0,0,0,0.65)":"rgba(255,255,255,0.7)",fontSize:14}],actions:[{label:"OK",variant:"primary",dismiss:!0}]}})},_u=(T,k)=>{const $=T.body;if(!$)return!1;const Y=typeof($==null?void 0:$.message)=="string"&&$.message||T.errors[0]||"Request blocked by limits",z=()=>xl({message:Y,uiVariant:$.uiVariant,uiTitle:typeof($==null?void 0:$.uiTitle)=="string"?$.uiTitle:void 0,modalId:typeof($==null?void 0:$.modalId)=="string"?$.modalId:void 0});return $.gateAction==="login"?(Bi("login"),!0):$.gateAction==="upgrade"?$.uiVariant==="modal"||typeof($==null?void 0:$.modalId)=="string"?(z(),!0):k!=null&&k.upgradeScene?(Pi(k.upgradeScene),!0):(z(),!0):$.gateAction==="block"||$.gateAction==="warn"||$.warning?(z(),!0):!1};y.useEffect(()=>{var K;if(!ht||q)return;const T=ye.current,k=T&&J.some(X=>X.id===T),Y=localStorage.getItem("backflow_post_auth_redirect")==="1"?(K=J.find(X=>X.type==="render_scene"&&pr(X)))==null?void 0:K.id:null,z=k?T:Y;z&&(localStorage.removeItem("backflow_post_auth_redirect"),ye.current=null,Pi(z))},[ht,q,J]);const Ee=(T,k="success",$)=>{const Y=Array.isArray(T)?T.join(`
207
207
  `):T,z=k==="success",K=z?"#10B981":"#EF4444",X=Rt.toast||{},Q=$??X.duration??3e3,Z=X.position||"bottom-right",lt={"bottom-right":{right:"24px",bottom:"24px"},"bottom-left":{left:"24px",bottom:"24px"},"bottom-center":{left:"50%",bottom:"24px",transform:"translateX(-50%)"},"top-right":{right:"24px",top:"24px"},"top-left":{left:"24px",top:"24px"},"top-center":{left:"50%",top:"24px",transform:"translateX(-50%)"}},it=lt[Z]||lt["bottom-right"],gt=document.createElement("div"),Ot=document.createElement("span");Ot.textContent=z?"✓":"✕",Object.assign(Ot.style,{display:"flex",alignItems:"center",justifyContent:"center",width:"22px",height:"22px",minWidth:"22px",borderRadius:"50%",backgroundColor:`${K}26`,color:K,fontSize:"12px",fontWeight:"700"});const wt=document.createElement("span");wt.textContent=Y,Object.assign(wt.style,{color:"rgba(255, 255, 255, 0.92)",fontSize:"13.5px",lineHeight:"1.45",whiteSpace:"pre-line"}),Object.assign(gt.style,{position:"fixed",...it,zIndex:"2147483647",display:"flex",alignItems:"flex-start",gap:"10px",padding:"12px 16px",borderRadius:"12px",backgroundColor:"rgba(23, 25, 35, 0.97)",border:"1px solid rgba(148, 163, 184, 0.25)",boxShadow:"0 8px 28px rgba(0, 0, 0, 0.4)",maxWidth:"380px",opacity:"0",pointerEvents:"auto"}),gt.appendChild(Ot),gt.appendChild(wt),document.body.appendChild(gt),gt.animate([{opacity:0,transform:"translateX(24px)"},{opacity:1,transform:"translateX(0)"}],{duration:250,easing:"cubic-bezier(0.16, 1, 0.3, 1)",fill:"both"}).finished.catch(()=>{});const Kt=()=>{gt.animate([{opacity:1,transform:"translateX(0)"},{opacity:0,transform:"translateX(16px)"}],{duration:200,easing:"ease",fill:"both"}).finished.then(()=>gt.remove()).catch(()=>gt.remove())};return Q>0&&setTimeout(Kt,Q),{update:Nt=>{wt.textContent=Array.isArray(Nt)?Nt.join(`
208
208
  `):Nt},dismiss:Kt}},Hr=(T,k=!0)=>{if(k&&(T!=null&&T.onSuccess)){const $=Array.isArray(T.onSuccess)?T.onSuccess:[T.onSuccess];for(const Y of $){const{type:z,value:K,title:X,key:Q}=Y;switch(z){case"toast":Ee(K||"Success!","success");break;case"navigate":K&&Pi(K);break;case"redirect":K&&(window.location.href=K);break;case"modal":K&&an[K]?me({id:K,definition:an[K]}):me({id:"__legacy",definition:{title:X||"Success",components:K?[{type:"text",text:K,color:Rt.colorMode==="light"?"rgba(0,0,0,0.65)":"rgba(255,255,255,0.7)",fontSize:14}]:[],actions:[{label:"OK",variant:"primary",dismiss:!0}]}});break;case"route":K&&oa(K);break;case"set_data":Q&&K!==void 0&&fe(Z=>({...Z,[Q]:K}));break}}}else!k&&(T!=null&&T.onError)&&Ee(T.onError.message||"An error occurred","error")},Mg=()=>{var Hn,sr,Se,ys,qi,Ze,be,Cn;const T=(kt,Dt)=>{var Gi,Yi,Ww,Vw,Uw,Hw;const ue=((Gi=kt.data)==null?void 0:Gi.token)||kt.token||kt.accessToken||kt.idToken;ue&&localStorage.setItem("token",ue);const Tn=((Yi=kt.data)==null?void 0:Yi.refreshToken)||kt.refreshToken,xr=ei!=="login"||Dt;Tn&&xr&&localStorage.setItem("backflow_refresh_token",Tn);const wr=((Vw=(Ww=kt.data)==null?void 0:Ww.user)==null?void 0:Vw.id)||((Uw=kt.user)==null?void 0:Uw.id)||((Hw=kt.data)==null?void 0:Hw.userId);if(wr&&xr&&localStorage.setItem("backflow_refresh_user_id",wr),!ht&&(nt||te.current||!!ye.current)){mr();return}te.current=!1,It(!0),St(!1),G(!1),tn(""),Wr(""),ta(""),ea({}),kn(null),zi(!1)},k=async kt=>{wo(!0),kn(null);try{const Dt=ei==="login"?"/auth/login":"/auth/register",ue=`${vr().replace(/\/+$/,"")}${Dt}`,Tn=ei==="login"?{email:Ne,password:We,trustDevice:kt,tenantId:w}:{email:Ne,password:We,displayName:Ne.split("@")[0],tenantId:w},xr={"Content-Type":"application/json"},wr=["localhost","127.0.0.1","[::1]"].includes(window.location.hostname);E&&!wr&&(xr["x-app-id"]=E);const $r=await fetch(ue,{method:"POST",headers:xr,body:JSON.stringify(Tn)});if(!$r.ok){const Yi=await $r.json().catch(()=>({error:"Authentication failed"}));throw new Error(So(Yi))}const Gi=await $r.json();if(Array.isArray(Gi)||Gi.success===!1)throw new Error(So(Gi));T(Gi,kt)}catch(Dt){const ue=typeof Dt=="string"?Dt:(Dt==null?void 0:Dt.message)||JSON.stringify(Dt)||"Authentication failed";kn(ue),Ee(ue,"error")}finally{wo(!1)}},$=async()=>{if(!Ne||!We||ei==="register"&&!ni)return;const kt=us(Ne),Dt=hs(We);if(kt||Dt){kn(kt||Dt);return}if(ei==="register"&&ni!==We){_i("confirm","Passwords do not match"),kn("Passwords do not match");return}const ue=localStorage.getItem("backflow_trust_device_asked")==="true";if(ei==="login"&&!ue){Cf(!0);return}await k(localStorage.getItem("backflow_trust_device")==="true")},Y=kt=>{localStorage.setItem("backflow_trust_device",String(kt)),he&&localStorage.setItem("backflow_trust_device_asked","true"),Cf(!1),k(kt)},z=async()=>{if(!Ne)return;const kt=us(Ne);if(kt){kn(kt);return}wo(!0),kn(null);try{const Dt=await fetch("/api/auth/forgot-password",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:Ne})});if(!Dt.ok){const ue=await Dt.json().catch(()=>({error:"Failed to send reset email"}));throw new Error(So(ue))}Bi("reset"),xo(""),Wr(""),kn(null)}catch(Dt){const ue=typeof Dt=="string"?Dt:(Dt==null?void 0:Dt.message)||"Failed to send reset email";kn(ue),Ee(ue,"error")}finally{wo(!1)}},K=async()=>{if(!cs||!We)return;const kt=hs(We);if(kt){kn(kt);return}wo(!0),kn(null);try{const Dt=await fetch("/api/auth/reset-password",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:cs,password:We})});if(!Dt.ok){const ue=await Dt.json().catch(()=>({error:"Failed to reset password"}));throw new Error(So(ue))}Bi("login"),tn(""),Wr(""),xo(""),kn(null)}catch(Dt){const ue=typeof Dt=="string"?Dt:(Dt==null?void 0:Dt.message)||"Failed to reset password";kn(ue),Ee(ue,"error")}finally{wo(!1)}},X=kt=>{Bi(kt),kn(null),kt!=="reset"&&(xo(""),Wr("")),ta(""),ea({}),zi(!1)},Q=((Hn=e==null?void 0:e.config)==null?void 0:Hn.auth)||{},Z=Q.style==="page"?"page":"modal",lt=Q.containerStyle||{},it=lt.backgroundColor||"#000000",gt=kd(it)==="dark",Ot=gt?"#f3f4f6":"#111827",wt=gt?"#9ca3af":"#6b7280",Pt=gt?"#374151":"#f3f4f6",Kt=gt?"#4b5563":"#d1d5db",Nt=((sr=Rt.colors)==null?void 0:sr.primary)||(gt?"#ffffff":"#000000"),Wt=(()=>{const kt=String(Nt).replace("#",""),Dt=kt.length===3?kt.split("").map(wr=>wr+wr).join(""):kt,ue=parseInt(Dt.slice(0,2),16),Tn=parseInt(Dt.slice(2,4),16),xr=parseInt(Dt.slice(4,6),16);return[ue,Tn,xr].some(wr=>Number.isNaN(wr))?0:(.299*ue+.587*Tn+.114*xr)/255})(),de=Nt,jt=Wt>.62?"#111827":"#ffffff",ft="#ef4444",xt=(kt="12px")=>({width:"100%",padding:"12px 16px",border:`1px solid ${Kt}`,borderRadius:"8px",fontSize:"14px",backgroundColor:Pt,color:Ot,colorScheme:gt?"dark":"light",outline:"none",marginBottom:kt,boxSizing:"border-box"}),_t=du?y.createElement("div",{key:"trust-overlay",style:{position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(0,0,0,0.6)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:10001}},y.createElement("div",{style:{width:"90%",maxWidth:"340px",padding:"24px",backgroundColor:it,borderRadius:"12px"}},y.createElement("h3",{style:{fontSize:"17px",fontWeight:700,color:Ot,margin:"0 0 8px"}},"Trust this device?"),y.createElement("p",{style:{fontSize:"13px",color:wt,margin:"0 0 16px"}},"Trusted devices stay signed in between visits."),y.createElement("label",{style:{display:"flex",alignItems:"center",gap:"8px",fontSize:"13px",color:wt,marginBottom:"16px",cursor:"pointer"}},y.createElement("input",{type:"checkbox",checked:he,onChange:kt=>ii(kt.target.checked),style:{width:"16px",height:"16px",appearance:"auto",WebkitAppearance:"auto",accentColor:de,colorScheme:gt?"dark":"light",outline:`1px solid ${Kt}`,outlineOffset:"-1px",borderRadius:"4px",flexShrink:0,cursor:"pointer"}}),"Don’t ask me again"),y.createElement("div",{style:{display:"flex",gap:"8px"}},y.createElement("button",{onClick:()=>Y(!1),style:{flex:1,padding:"10px",borderRadius:"8px",border:`1px solid ${Kt}`,backgroundColor:"transparent",color:Ot,cursor:"pointer"}},"No"),y.createElement("button",{onClick:()=>Y(!0),style:{flex:1,padding:"10px",borderRadius:"8px",border:"none",backgroundColor:de,color:jt,fontWeight:600,cursor:"pointer"}},"Yes")))):null,Bt=(kt,Dt,ue,Tn,xr,wr)=>y.createElement("div",{key:kt,style:{position:"relative",marginBottom:"12px"}},V("input",{key:"input",type:bo[kt]?"text":"password",placeholder:Dt,value:ue,onChange:$r=>Tn($r.target.value),onKeyDown:$r=>{$r.key==="Enter"&&xr()},style:{...xt("0px"),paddingRight:"40px",borderColor:wr?ft:Kt}}),y.createElement("button",{key:"toggle",type:"button","aria-label":bo[kt]?"Hide password":"Show password",onClick:()=>ea($r=>({...$r,[kt]:!$r[kt]})),style:{position:"absolute",right:"8px",top:"50%",transform:"translateY(-50%)",background:"none",border:"none",cursor:"pointer",color:wt,display:"flex",alignItems:"center",padding:"4px"}},Kn.renderIcon(bo[kt]?"eye-off":"eye",16)));a||e!=null&&e.title;const qt=(Se=e==null?void 0:e.config)!=null&&Se.logo&&((ys=e==null?void 0:e.config)==null?void 0:ys.logo)!==""?e.config.logo:Ju,$e=l||((qi=e==null?void 0:e.navigation)==null?void 0:qi.logo)||"mail",Gt=[];if(Gt.push(y.createElement("div",{key:"brand",role:"button","aria-label":"Go back home",onClick:()=>{Pi("/"),St(!1),te.current=!1,ye.current=null},style:{display:"flex",alignItems:"center",justifyContent:"center",marginBottom:"20px",cursor:"pointer"}},qt?y.createElement("img",{src:qt,alt:"",style:{width:"56px",height:"56px",objectFit:"contain",...qt===Ju?{backgroundColor:"#171717",padding:"8px",borderRadius:"8px"}:{}}}):Kn.renderIcon($e,56))),ei==="login"){if(Gt.push(y.createElement("h2",{key:"title",style:{fontSize:"24px",fontWeight:700,color:Ot,marginBottom:"8px",textAlign:"center"}},"Sign In")),Gt.push(y.createElement("p",{key:"sub",style:{fontSize:"14px",color:wt,marginBottom:"24px",textAlign:"center"}},"Enter your credentials to continue")),!!(Re!=null&&Re.includes("google"))&&!dl&&(Gt.push(y.createElement("button",{key:"google",onClick:()=>{const Dt=vr(),ue=encodeURIComponent(window.location.origin+window.location.pathname),Tn=w?`&tenant_id=${encodeURIComponent(w)}`:"";window.location.href=`${Dt}/auth/oauth/google?redirect_uri=${ue}${Tn}`},style:{width:"100%",padding:"11px",borderRadius:"8px",fontSize:"14px",fontWeight:600,backgroundColor:"transparent",color:Ot,border:`1px solid ${Kt}`,cursor:"pointer",marginBottom:"16px",display:"flex",alignItems:"center",justifyContent:"center",gap:"8px"}},y.createElement("svg",{width:"16",height:"16",viewBox:"0 0 24 24"},y.createElement("path",{fill:"#4285F4",d:"M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z"}),y.createElement("path",{fill:"#34A853",d:"M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z"}),y.createElement("path",{fill:"#FBBC05",d:"M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z"}),y.createElement("path",{fill:"#EA4335",d:"M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z"})),"Continue with Google")),Gt.push(y.createElement("div",{key:"or",style:{display:"flex",alignItems:"center",gap:"8px",marginBottom:"16px"}},y.createElement("div",{key:"l",style:{flex:1,height:"1px",backgroundColor:Kt}}),y.createElement("span",{key:"t",style:{fontSize:"12px",color:wt}},"or"),y.createElement("div",{key:"r",style:{flex:1,height:"1px",backgroundColor:Kt}})))),gu||(Gt.push(V("input",{key:"email",type:"email",placeholder:"Email Address",value:Ne,onChange:Dt=>{tn(Dt.target.value),_i("email",us(Dt.target.value))},style:{...xt(),borderColor:_e.email&&Ne?ft:Kt}})),_e.email&&Ne&&Gt.push(y.createElement("p",{key:"email-err",style:{color:ft,fontSize:"12px",marginTop:"-8px",marginBottom:"8px"}},_e.email))),mu&&dl){const Dt=["localhost","127.0.0.1","[::1]"].includes(window.location.hostname);Gt.push(y.createElement(t5,{key:`email-code:${w||""}:${E||""}:${Ne}`,baseUrl:vr(),email:Ne,tenantId:w,appId:Dt?void 0:E,inputStyle:xt(),errorColor:ft,buttonStyle:{width:"100%",padding:"12px",borderRadius:"8px",fontSize:"15px",fontWeight:600,backgroundColor:de,color:jt,border:"none",marginBottom:"8px",cursor:"pointer"},onAuthenticated:T,onChallenge:zi}))}else Gt.push(Bt("pass","Password",We,Dt=>{Wr(Dt),_i("pass",hs(Dt))},$,!!(_e.pass&&We))),_e.pass&&We&&Gt.push(y.createElement("p",{key:"pass-err",style:{color:ft,fontSize:"12px",marginTop:"-12px",marginBottom:"12px"}},_e.pass)),ri&&Gt.push(y.createElement("p",{key:"err",style:{color:ft,fontSize:"13px",marginBottom:"12px",textAlign:"center"}},ri)),Gt.push(y.createElement("button",{key:"submt",onClick:$,disabled:bn||!Ne||!We,style:{width:"100%",padding:"12px",borderRadius:"8px",fontSize:"15px",fontWeight:600,backgroundColor:bn?gt?"#4b5563":"#9ca3af":de,color:jt,border:"none",cursor:bn?"not-allowed":"pointer",marginBottom:"8px"}},bn?"Please wait...":"Sign In")),Gt.push(y.createElement("p",{key:"forgot",style:{fontSize:"13px",color:wt,textAlign:"center",cursor:"pointer",marginBottom:"16px"},onClick:()=>X("forgot")},"Forgot password?"));Gt.push(y.createElement("p",{key:"sw",style:{fontSize:"13px",color:wt,textAlign:"center",cursor:"pointer"},onClick:()=>X("register")},"Don’t have an account? Register"))}else ei==="register"?(Gt.push(y.createElement("h2",{key:"title",style:{fontSize:"24px",fontWeight:700,color:Ot,marginBottom:"8px",textAlign:"center"}},"Create Account")),Gt.push(y.createElement("p",{key:"sub",style:{fontSize:"14px",color:wt,marginBottom:"24px",textAlign:"center"}},"Create an account to get started")),Gt.push(V("input",{key:"email",type:"email",placeholder:"Email",value:Ne,onChange:kt=>{tn(kt.target.value),_i("email",us(kt.target.value))},style:{...xt(),borderColor:_e.email&&Ne?ft:Kt}})),_e.email&&Ne&&Gt.push(y.createElement("p",{key:"email-err",style:{color:ft,fontSize:"12px",marginTop:"-8px",marginBottom:"8px"}},_e.email)),Gt.push(Bt("pass","Password",We,kt=>{Wr(kt),_i("pass",hs(kt))},$,!!(_e.pass&&We))),_e.pass&&We&&Gt.push(y.createElement("p",{key:"pass-err",style:{color:ft,fontSize:"12px",marginTop:"-12px",marginBottom:"12px"}},_e.pass)),Gt.push(Bt("confirm","Confirm password",ni,kt=>{ta(kt),_i("confirm",Ag(We,kt))},$,!!(_e.confirm&&ni))),_e.confirm&&ni&&Gt.push(y.createElement("p",{key:"confirm-err",style:{color:ft,fontSize:"12px",marginTop:"-12px",marginBottom:"12px"}},_e.confirm)),ri&&Gt.push(y.createElement("p",{key:"err",style:{color:ft,fontSize:"13px",marginBottom:"12px",textAlign:"center"}},ri)),Gt.push(y.createElement("button",{key:"submt",onClick:$,disabled:bn||!Ne||!We||!ni,style:{width:"100%",padding:"12px",borderRadius:"8px",fontSize:"15px",fontWeight:600,backgroundColor:bn?gt?"#4b5563":"#9ca3af":de,color:jt,border:"none",cursor:bn?"not-allowed":"pointer",marginBottom:"16px"}},bn?"Please wait...":"Create Account")),Gt.push(y.createElement("p",{key:"sw",style:{fontSize:"13px",color:wt,textAlign:"center",cursor:"pointer"},onClick:()=>X("login")},"Already have an account? Sign In"))):ei==="forgot"?(Gt.push(y.createElement("h2",{key:"title",style:{fontSize:"24px",fontWeight:700,color:Ot,marginBottom:"8px",textAlign:"center"}},"Reset Password")),Gt.push(y.createElement("p",{key:"sub",style:{fontSize:"14px",color:wt,marginBottom:"24px",textAlign:"center"}},"Enter your email to receive a reset link")),Gt.push(V("input",{key:"email",type:"email",placeholder:"Email",value:Ne,onChange:kt=>{tn(kt.target.value),_i("email",us(kt.target.value))},onKeyDown:kt=>{kt.key==="Enter"&&z()},style:{...xt("16px"),borderColor:_e.email&&Ne?ft:Kt}})),_e.email&&Ne&&Gt.push(y.createElement("p",{key:"email-err",style:{color:ft,fontSize:"12px",marginTop:"-8px",marginBottom:"8px"}},_e.email)),ri&&Gt.push(y.createElement("p",{key:"err",style:{color:ft,fontSize:"13px",marginBottom:"12px",textAlign:"center"}},ri)),Gt.push(y.createElement("button",{key:"submt",onClick:z,disabled:bn||!Ne,style:{width:"100%",padding:"12px",borderRadius:"8px",fontSize:"15px",fontWeight:600,backgroundColor:bn?gt?"#4b5563":"#9ca3af":de,color:jt,border:"none",cursor:bn?"not-allowed":"pointer",marginBottom:"16px"}},bn?"Please wait...":"Send Reset Link")),Gt.push(y.createElement("p",{key:"sw",style:{fontSize:"13px",color:wt,textAlign:"center",cursor:"pointer"},onClick:()=>X("login")},"Back to Sign In"))):ei==="reset"&&(Gt.push(y.createElement("h2",{key:"title",style:{fontSize:"24px",fontWeight:700,color:Ot,marginBottom:"8px",textAlign:"center"}},"Set New Password")),Gt.push(y.createElement("p",{key:"sub",style:{fontSize:"14px",color:wt,marginBottom:"24px",textAlign:"center"}},"Enter the reset code and your new password")),Gt.push(V("input",{key:"code",type:"text",placeholder:"Reset code",value:cs,onChange:kt=>xo(kt.target.value),style:xt()})),Gt.push(Bt("pass","New password",We,kt=>{Wr(kt),_i("pass",hs(kt))},K,!!(_e.pass&&We))),_e.pass&&We&&Gt.push(y.createElement("p",{key:"pass-err",style:{color:ft,fontSize:"12px",marginTop:"-12px",marginBottom:"12px"}},_e.pass)),ri&&Gt.push(y.createElement("p",{key:"err",style:{color:ft,fontSize:"13px",marginBottom:"12px",textAlign:"center"}},ri)),Gt.push(y.createElement("button",{key:"submt",onClick:K,disabled:bn||!cs||!We,style:{width:"100%",padding:"12px",borderRadius:"8px",fontSize:"15px",fontWeight:600,backgroundColor:bn?gt?"#4b5563":"#9ca3af":de,color:jt,border:"none",cursor:bn?"not-allowed":"pointer",marginBottom:"16px"}},bn?"Please wait...":"Reset Password")),Gt.push(y.createElement("p",{key:"sw",style:{fontSize:"13px",color:wt,textAlign:"center",cursor:"pointer"},onClick:()=>X("login")},"Back to Sign In")));const se=y.createElement("div",{key:"auth-box",style:{width:"100%",maxWidth:Z==="page"?"400px":"360px",padding:"24px",backgroundColor:it,borderRadius:"12px",...lt}},...Gt);if(Z==="page"){const kt=((Ze=Rt.colors)==null?void 0:Ze.primary)||"#4f46e5",ue=Q.coverImage?`url(${Q.coverImage}) center/cover no-repeat`:Q.coverBackground||`radial-gradient(55% 45% at 8% 62%, rgba(255,95,109,0.45) 0%, rgba(255,95,109,0) 60%), radial-gradient(55% 45% at 92% 62%, rgba(34,211,238,0.45) 0%, rgba(34,211,238,0) 60%), radial-gradient(60% 40% at 30% 30%, rgba(251,191,36,0.28) 0%, rgba(251,191,36,0) 60%), radial-gradient(60% 40% at 70% 30%, rgba(74,222,128,0.28) 0%, rgba(74,222,128,0) 60%), radial-gradient(80% 45% at 50% 8%, rgba(236,72,153,0.3) 0%, rgba(236,72,153,0) 65%), radial-gradient(90% 55% at 50% 78%, rgba(236,72,153,0.4) 0%, rgba(236,72,153,0) 65%), ${kt}`,Tn=(be=e==null?void 0:e.config)!=null&&be.logo&&((Cn=e==null?void 0:e.config)==null?void 0:Cn.logo)!==""?e.config.logo:Ju,xr=Tn?y.createElement("img",{src:Tn,alt:"",style:{position:"absolute",bottom:"-6%",left:"50%",width:"90%",maxWidth:"660px",height:"auto",objectFit:"contain",transform:"translateX(-50%) rotate(-8deg)",opacity:.92,filter:"brightness(0) invert(1)",animation:"bf-logo-excited 4s ease-in-out infinite"}}):y.createElement("div",{style:{color:"#ffffff",opacity:.95}},Kn.renderIcon($e,96));return y.createElement("div",{key:"auth-page",style:{position:"fixed",top:0,left:0,right:0,bottom:0,display:"flex",backgroundColor:it,zIndex:1e4,animation:"bf-fade-in 0.2s ease"}},y.createElement("div",{style:{flex:or?"1 1 100%":"0 0 40%",display:"flex",alignItems:"center",justifyContent:"center",padding:"24px",backgroundColor:it}},se),y.createElement("div",{style:{flex:"0 0 60%",background:ue,display:or?"none":"flex",alignItems:"center",justifyContent:"center",position:"relative",overflow:"hidden"}},xr),_t)}return y.createElement("div",{key:"auth-form",style:{position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(0,0,0,0.5)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:1e4,animation:"bf-fade-in 0.15s ease"}},y.createElement("button",{key:"auth-close","aria-label":"Close sign in",onClick:()=>{St(!1),te.current=!1,ye.current=null},style:{position:"absolute",top:"16px",right:"16px",width:"38px",height:"38px",borderRadius:"999px",border:`1px solid ${Kt}`,backgroundColor:gt?"rgba(255,255,255,0.08)":"#ffffff",color:Ot,display:"flex",alignItems:"center",justifyContent:"center",cursor:"pointer",zIndex:1}},Kn.renderIcon("x",18)),se,_t)},Mr=async(T,k,$)=>{var Y,z,K;try{let X=String(_l(T)??"");const Q=X.match(/^\{\{\s*(.+?)\s*\?\s*(.*?)\s+:\s+(.*?)\s*\}\}$/);Q&&(X=Sl(Q[1])?Q[2]:Q[3]);const Z=X.split(";").map(Nt=>Nt.trim()).filter(Boolean);if(Z.length>1){const Nt=Bt=>/^(go_to_step|navigate):/.test(Bt),Wt=Bt=>/^show_modal:/.test(Bt),de=Bt=>/^(execute_workflow|fetch|geolocate|sdk|native):/.test(Bt),jt=Bt=>/^(close_modal|go_back)\b/.test(Bt),ft=Z.some(de)||Z.some(jt)?[]:Z.filter(Bt=>Nt(Bt)||Wt(Bt)),xt=ft.length>0?[...ft,...Z.filter(Bt=>!Nt(Bt)&&!Wt(Bt))]:Z,_t=Z[Z.length-1];for(const Bt of xt)await Mr(Bt,Bt===_t?k:void 0,$);return}if(X==="go_back"){ho();return}if(X==="toggle_theme"){Mf((we._colorMode||Rt.colorMode)==="dark"?"light":"dark");return}if(X==="close_modal"){Ut();return}const lt=X.match(/^geolocate(?::(.+))?$/);if(lt){const Nt=(Y=lt[1])==null?void 0:Y.trim(),Wt=await new Promise((de,jt)=>{if(typeof navigator>"u"||!navigator.geolocation){jt(new Error("Location is not available on this device"));return}navigator.geolocation.getCurrentPosition(ft=>de({lat:ft.coords.latitude,lng:ft.coords.longitude}),ft=>jt(new Error((ft==null?void 0:ft.message)||"Location permission is required")),{enableHighAccuracy:!0,timeout:8e3,maximumAge:0})});fe(de=>({...de,latitude:Wt.lat,longitude:Wt.lng})),Nt&&await Mr(Nt,k,{...$||{},payload:{...($==null?void 0:$.payload)||{},latitude:Wt.lat,longitude:Wt.lng}});return}const it=X.match(/^(toast|show_toast):(.*)$/);if(it){const Nt=it[2].trim();Nt&&Ee(Nt,"success");return}const gt=X.match(/^scroll_to:([\w-]+)$/);if(gt){(z=document.getElementById(gt[1]))==null||z.scrollIntoView({behavior:"smooth",block:"start"});return}const Ot=X.match(/^set_data:([\w.-]+)=(.*)$/);if(Ot){let Nt=Ot[2];(Nt==="$uuid"||Nt==="{{$uuid}}")&&(Nt=typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`),fe(Wt=>({...Wt,[Ot[1]]:Nt}));return}const wt=X.match(/^native:([a-z][\w.-]*)$/i);if(wt){if(!i){Ee("Native app required","error");return}const Nt=wt[1],Wt=await i(Nt,we);if(Wt&&typeof Wt=="object"&&!Array.isArray(Wt)){const de=Nt.replace(/[^\w]/g,"_");fe(jt=>({...jt,native:{...jt.native||{},[de]:Wt}}))}return}const Pt=X.match(/^copy_to_clipboard:([\s\S]*)$/);if(Pt){const Nt=Pt[1];try{await navigator.clipboard.writeText(Nt)}catch{const Wt=document.createElement("textarea");Wt.value=Nt,Wt.style.position="fixed",Wt.style.opacity="0",document.body.appendChild(Wt),Wt.select(),document.execCommand("copy"),Wt.remove()}Ee("Copied to clipboard","success");return}const Kt=X.match(/^auth:(login|register|forgot|reset|logout)$/);if(Kt){if(Kt[1]==="logout"){if(!ht)return;localStorage.removeItem("token"),localStorage.removeItem("backflow_refresh_token"),localStorage.removeItem("backflow_refresh_user_id"),te.current=!1,ye.current=null,It(!1),St(!1),st(null),G(!1),Pi("/");return}if(ht)return;kn(null),Bi(Kt[1]),St(!0);return}if(X==="accept_startup_modal"){const Nt=Rt.startupModal;Nt&&localStorage.setItem(`backflow_startup_modal_${Nt}`,"1"),Ut();const Wt=J.find(de=>de.route==="/");Wt&&(Qe(de=>[...de,Mt]),rr(Wt.id));return}if(X==="decline_startup_modal"){Ut();const Nt=J.find(Wt=>Wt.route==="/");Nt&&(Qe(Wt=>[...Wt,Mt]),rr(Nt.id));return}if(X==="toggle_select"){fe(Nt=>({...Nt,_selectMode:!Nt._selectMode,...Nt._selectMode?{_selIds:[]}:{}}));return}if(X.startsWith("go_to_step:"))Pi(X.replace("go_to_step:","")),Hr(k,!0);else if(X.startsWith("navigate:"))Pi(X.replace("navigate:","")),Hr(k,!0);else if(mh(X)&&t){const Nt=Xu(X),Wt=await zd(t,Nt,we);Wt!=null&&Wt.data?fe(de=>({...de,...Wt.data})):Wt&&typeof Wt=="object"&&!Array.isArray(Wt)&&fe(de=>({...de,...Wt})),Wt!=null&&Wt.url&&String(Wt.url).startsWith("http")&&window.open(String(Wt.url),"_blank","noopener,noreferrer"),Hr(k,!0)}else if(X.startsWith("show_modal:")){const Nt=X.replace("show_modal:","");if(an[Nt]){const Wt=an[Nt];if(ti(Wt.popover&&($!=null&&$.anchorElement)?$.anchorElement.getBoundingClientRect():null),Ye.current=Wt.popover&&($==null?void 0:$.anchorElement)||null,Wi.current&&typeof Wi.current=="object"){const ft=Object.keys(Wi.current);fe(xt=>{const _t={...xt};for(const Bt of vl.current)ft.includes(Bt)||delete _t[Bt];return{..._t,...Wi.current}}),vl.current=ft}const de=Wt.clearFormKeys;Array.isArray(de)&&de.length>0&&fe(ft=>{const xt={...ft};for(const _t of de)delete xt[_t];return xt});const jt=Wt.defaults;jt&&typeof jt=="object"&&fe(ft=>{const xt={...ft};for(const[_t,Bt]of Object.entries(jt))xt[_t]===void 0&&(xt[_t]=Bt);return xt}),(Ft==null?void 0:Ft.id)===Nt||(ce==null?void 0:ce.id)===Nt||(ls(null),me({id:Nt,definition:Wt})),Wt.preload&&await oa(String(Wt.preload))}else{const Wt=Nt.split("|");me({id:"__legacy",definition:{title:Wt[0]||"Notice",components:Wt[1]?[{type:"text",text:Wt[1],color:"rgba(255,255,255,0.7)",fontSize:14}]:[],actions:[{label:"OK",variant:"primary",dismiss:!0}]}})}Hr(k,!0)}else X.startsWith("execute_workflow:")?(await oa(X.replace("execute_workflow:",""),$),Hr(k,!0)):X.startsWith("fetch:")&&(await oa(X.replace("fetch:",""),$),o==null||o(X.replace("fetch:","")),Hr(k,!0))}catch(X){if(ov("[handleButtonClick] caught error:",X,"callbacks:",k),(X==null?void 0:X.status)===401){await Fi({status:401},!0);return}if(X instanceof Vi){if(_u(X,k==null?void 0:k.onError))return;Ee(X.errors.length>1?X.errors:X.errors[0],"error")}else(K=k==null?void 0:k.onError)!=null&&K.message?Ee(k.onError.message,"error"):Ee(X instanceof Error?X.message:"An error occurred","error")}},Rf=T=>{const k=T&&typeof T=="object"&&"_seconds"in T?new Date(T._seconds*1e3):new Date(T);if(isNaN(k.getTime()))return String(T??"");const $=Math.floor((Date.now()-k.getTime())/6e4);if($<1)return"just now";if($<60)return`${$}m ago`;const Y=Math.floor($/60);if(Y<24)return`${Y}h ago`;const z=Math.floor(Y/24);return z<7?`${z}d ago`:k.toLocaleDateString()},Or=(T,k)=>{if(k==="money"||k==="currency"){const Y=Number(T);return Number.isFinite(Y)?Y.toFixed(2):String(T??"")}if(k==="names"||k==="join")return Array.isArray(T)?T.map(Y=>Y&&typeof Y=="object"?Y.name:Y).filter(Boolean).join(", "):T==null?"":String(T);if(k==="timeago")return Rf(T);if(k==="filesize"||k==="size"){const Y=Number(T);if(!Number.isFinite(Y))return String(T??"");const z=["B","KB","MB","GB","TB"];let K=Y,X=0;for(;K>=1024&&X<z.length-1;)K/=1024,X++;return`${K.toFixed(K>=10||X===0?0:1)} ${z[X]}`}const $=T&&typeof T=="object"&&"_seconds"in T?new Date(T._seconds*1e3):new Date(T);if(!isNaN($.getTime())){if(k==="date")return $.toLocaleDateString();if(k==="time")return $.toLocaleTimeString();if(k==="datetime")return $.toLocaleString()}return String(T??"")},En=y.useRef({}),$n=T=>{const k=T.split(".").filter(Boolean);if(k.length===0)return;let $=En.current[k[0]]??we[k[0]];for(let Y=1;Y<k.length;Y++){if($==null)return;const z=k[Y];if(Array.isArray($))if(z==="first")$=$[0];else if(z==="last")$=$[$.length-1];else if(z==="length")$=$.length;else if(/^\d+$/.test(z))$=$[Number(z)];else if(z==="index")$=$[0];else return;else if($&&typeof $=="object"&&Array.isArray($.items))z==="response"?$=$.response:z==="first"?$=$.items[0]:z==="last"?$=$.items[$.items.length-1]:z==="length"?$=$.items.length:/^\d+$/.test(z)?$=$.items[Number(z)]:z==="index"?$=$.items[0]:$=$[z];else if(typeof $=="object")$=$[z];else return}return $},wl=y.useRef({}),[sa,Lf]=y.useState({}),Ui=y.useCallback(T=>(wl.current[T]||(wl.current[T]=import(T).catch(()=>fetch(T).then(k=>k.text()).then(k=>{const $={};return new Function("module","exports",k)($,$),$.exports||$}))),wl.current[T]),[]),aa=(T,k,$,Y)=>{if(!T)return"";if(T.startsWith("sdk:")){const X=$||"",Q=sa[X];if(X&&Q!==void 0)return Q;const Z=T.slice(4);return t&&zd(t,Z,{...we,$data:En.current}).then(lt=>{Zt.current||(Y&&(En.current[Y]=lt),Lf(it=>({...it,[X]:String(lt??"")})))}).catch(()=>{}),""}const z=T.match(/^([A-Za-z_]\w*)\s*\(\s*(.*?)\s*\)$/s);if(z){const X=z[1],Q=aa(z[2]);if(k){const Z=sa[$||""];return $&&Z!==void 0?Z:(Ui(k).then(lt=>{var gt,Ot;const it=lt&&(lt[X]||((gt=lt.default)==null?void 0:gt[X])||((Ot=lt.exports)==null?void 0:Ot[X]))||(typeof lt=="function"?lt:void 0);typeof it=="function"&&$&&Promise.resolve(it(Q,{data:En.current})).then(wt=>{Zt.current||(Y&&(En.current[Y]=wt),Lf(Pt=>({...Pt,[$]:String(wt??"")})))})}).catch(()=>{}),"")}return X==="timeago"?Rf(Q):X==="date"?Or(Q,"date"):X==="time"?Or(Q,"time"):X==="datetime"?Or(Q,"datetime"):X==="upper"?String(Q).toUpperCase():X==="lower"?String(Q).toLowerCase():String(Q??"")}if(T.startsWith("{{")&&T.endsWith("}}")){const Q=T.slice(2,-2).trim().split("|").map(gt=>gt.trim()),Z=Q[0],lt=Q[1],it=Z.startsWith("{")&&Z.endsWith("}")?$n(Z.slice(1,-1)):Z.startsWith("$")?$n(Z.slice(1)):we[Z];return lt?Or(it,lt):String(it??"")}if(T.startsWith("{")&&T.endsWith("}"))return String($n(T.slice(1,-1))??"");const K=T.trim();return/^[A-Za-z_][\w.-]*$/.test(K)?String($n(K)??""):String(T??"")},_l=T=>T?T.replace(/\{\{\s*\[([\w/.-]+)\](?:\.([\w.]+(?:\|\w+)?))?\s*(?:\|\|\s*(.+?))?\}\}/g,(k,$,Y,z)=>{let K,X=Y;if(Y!=null&&Y.includes("|")){const Z=Y.split("|");X=Z[0],K=Z[1]}const Q=$n(X?`${$}.${X}`:$);if(Q!=null){const Z=K?Or(Q,K):Q;return Array.isArray(Z)||typeof Z=="object"?JSON.stringify(Z):String(Z)}return z!==void 0?z.replace(/^["']|["']$/g,""):""}).replace(/\{\{(\w+(?:\.\w+)*)\s*(?:\|(date|time|datetime|timeago|money|currency|names|join|filesize|size)\s*)?(?:\|\|\s*(.+?))?\}\}/g,(k,$,Y,z)=>{const K=$.split(".");let X=we;for(const Q of K)X=X==null?void 0:X[Q];if(X!==void 0)return Y?Or(X,Y):String(X);if(Wi.current){let Q=Wi.current;for(const Z of K)Q=Q==null?void 0:Q[Z];if(Q!==void 0)return Y?Or(Q,Y):String(Q)}if(K[0]==="config"){let Q=e==null?void 0:e.config;for(const Z of K.slice(1))Q=Q==null?void 0:Q[Z];if(Q!==void 0)return String(Q)}return z!==void 0?z.replace(/^["']|["']$/g,""):""}):"",Ao=(T,k)=>{if(!T)return!0;if(typeof T=="object")try{const K=Q=>{const Z=Date.parse(String(Q));return Number.isNaN(Z)?Number(Q):Z},X={...we,...k,now:()=>Date.now(),date:K,isAfter:(Q,Z)=>K(Q)>K(Z),isBefore:(Q,Z)=>K(Q)<K(Z),includes:(Q,Z)=>Array.isArray(Q)?Q.includes(Z):String(Q??"").includes(String(Z??"")),length:Q=>String(Q??"").length,lower:Q=>String(Q??"").toLowerCase(),upper:Q=>String(Q??"").toUpperCase(),round:Math.round,abs:Math.abs};return!!Qdt.evaluate(T.expression,X)}catch{return!1}const $=K=>{var Q;if(K==="auth"){const Z=(Q=e==null?void 0:e.auth)==null?void 0:Q.signedIn;return Z===void 0?ht:Z}if(K.startsWith("[")&&K.includes("]")){const Z=K.indexOf("]"),lt=En.current[K.slice(1,Z)],it=K.slice(Z+1).replace(/^\./,"");let gt;const Ot=it.split(".").filter(Boolean);Ot[0]==="response"||Ot[0]==="items"?gt=lt:gt=(lt==null?void 0:lt.items)??lt;for(const wt of Ot){if(gt==null)return;Array.isArray(gt)&&wt==="length"?gt=gt.length:gt=gt==null?void 0:gt[wt]}return gt}let X=k;for(const Z of K.split(".")){if(X==null)return;Array.isArray(X)&&Z==="first"?X=X[0]:Array.isArray(X)&&Z==="last"?X=X[X.length-1]:X=X==null?void 0:X[Z]}return X},Y=T.trim();if(Y.includes("||"))return Y.split("||").some(K=>Ao(K,k));if(Y.includes("&&"))return Y.split("&&").every(K=>Ao(K,k));if(Y.startsWith("!"))return!$(Y.slice(1).trim());const z=Y.match(/^(\[[^\]]+\](?:\.\w+)*|[\w-]+(?:\.[\w-]+)*)\s*(==|!=|>|<|>=|<=)\s*(.+)$/);if(z){const K=$(z[1]),X=z[3].trim();let Q=X.replace(/^["']|["']$/g,"");if(X.startsWith("[")){const Z=$(Q);Z!=null&&(Q=String(Z))}switch(z[2]){case"==":return String(K)===Q;case"!=":return String(K)!==Q;case">":return Number(K)>Number(Q);case"<":return Number(K)<Number(Q);case">=":return Number(K)>=Number(Q);case"<=":return Number(K)<=Number(Q)}}return!!$(Y)},Sl=(T,k)=>Ao(T,k?{...we,...k}:we),Ai=(T,k,$)=>{if(!f||h!==k&&!(u&&$&&u===$))return T;const z={...T};return f.size!==void 0&&(z.transform=`scale(${f.size/100})`,z.transformOrigin="center center"),f.spacing!==void 0&&(z.margin=`${f.spacing}px`),f.alignment&&(z.textAlign=f.alignment,f.alignment==="left"?(z.marginLeft="0",z.marginRight="auto"):f.alignment==="right"&&(z.marginLeft="auto",z.marginRight="0")),f.color&&(z.color=f.color),f.gridCols!==void 0&&(z.gridTemplateColumns=`repeat(${f.gridCols}, minmax(0, 1fr))`),f.gridGap!==void 0&&(z.gap=`${f.gridGap}px`),f.buttonBackground&&(z.background=f.buttonBackground),f.buttonTextColor&&(z.color=f.buttonTextColor),f.buttonBorderRadius!==void 0&&(z.borderRadius=`${f.buttonBorderRadius}px`),f.linkColor&&(z.color=f.linkColor),f.linkTextDecoration&&(z.textDecoration=f.linkTextDecoration),f.flexDirection&&(z.flexDirection=f.flexDirection),f.flexGap!==void 0&&(z.gap=`${f.flexGap}px`),z},Og=(T,k)=>{const $={...T};return k.scale!==void 0&&k.scale!==100&&($.transform=`scale(${k.scale/100})`,$.transformOrigin="center center"),k.spacing!==void 0&&k.spacing!==0&&($.margin=`${k.spacing}px`),k.alignment&&k.alignment!=="center"&&($.textAlign=k.alignment,k.alignment==="left"?($.marginLeft="0",$.marginRight="auto"):k.alignment==="right"&&($.marginLeft="auto",$.marginRight="0")),k.color&&($.color=k.color),k.background&&($.backgroundColor=k.background),k.borderColor&&($.borderColor=k.borderColor),$},ds=(T,k,$)=>{const Y=$==null?void 0:$.componentClass,K=h===T||u&&Y&&u===Y,X=$?Og(k,$):k,Q=Ai(X,T,Y),Z=($==null?void 0:$.className)||"";/\bfont-serif\b/.test(Z)&&(Q.fontFamily=Rt.typography.headingFontFamily),/\bfont-sans\b/.test(Z)&&(Q.fontFamily=Rt.typography.fontFamily),$!=null&&$.fieldSpan&&$.fieldSpan>1&&(Q.gridColumn=`span ${$.fieldSpan} / span ${$.fieldSpan}`),$!=null&&$.rawStyle&&Object.assign(Q,$.rawStyle);const lt=$t==="css-driven"?{"data-bf-r":`${Vn}-${T}`}:{};if(K){const gt=Q.boxShadow?`${Q.boxShadow}, `:"";return{"data-component-key":T,...lt,style:{...Q,boxShadow:`${gt}0 0 0 3px ${Rt.colors.primary}`}}}return Object.keys(Q).length>0?{"data-component-key":T,...lt,style:Q}:{"data-component-key":T,...lt}},kg=(T,k)=>{var X;if(!T)return{};const $=Mv(T),Y=T.split(/\s+/).filter(Q=>!/^(sm|md|lg|xl|2xl):/.test(Q)).join(" "),z=yt(Y||"flex");if(!Tv($))return z;if($t==="css-driven"){const Q={flexDirection:"fd",gap:"gap",width:"w",minHeight:"min-h",alignItems:"items",justifyContent:"justify",display:"display",gridTemplateColumns:"grid-template",fontSize:"text",borderRadius:"radius",padding:"p",paddingLeft:"px",paddingRight:"px",paddingTop:"py",paddingBottom:"py",margin:"m",marginTop:"mt",marginRight:"mr",marginBottom:"mb",marginLeft:"ml"},Z=(lt,it)=>`var(--bf-${Q[lt]||lt}-${k}, ${z[lt]||it})`;if($.flexDirection.size>0&&(z.flexDirection=Z("flexDirection","column")),$.gap.size>0&&(z.gap=Z("gap","0px")),$.width.size>0&&(z.width=Z("width","auto")),$.minHeight.size>0&&(z.minHeight=Z("minHeight","0px")),$.alignItems.size>0&&(z.alignItems=Z("alignItems","stretch")),$.justifyContent.size>0&&(z.justifyContent=Z("justifyContent","flex-start")),$.display.size>0&&(z.display=Z("display","flex")),$.gridCols.size>0){const lt=z.gridTemplateColumns||"1",it=typeof lt=="string"?(X=lt.match(/^repeat\((\d+)/))==null?void 0:X[1]:lt;z.gridTemplateColumns=`repeat(var(--bf-cols-${k}, ${it||"1"}), minmax(0, 1fr))`}return $.gridTemplateColumns.size>0&&(z.gridTemplateColumns=Z("gridTemplateColumns",String(z.gridTemplateColumns||"none"))),$.textSize.size>0&&(z.fontSize=Z("fontSize","1rem")),$.borderRadius.size>0&&(z.borderRadius=Z("borderRadius","0px")),$.padding.p.size>0&&(z.padding=Z("padding","0px")),$.padding.px.size>0&&(z.paddingLeft=Z("paddingLeft","0px"),z.paddingRight=Z("paddingRight","0px")),$.padding.py.size>0&&(z.paddingTop=Z("paddingTop","0px"),z.paddingBottom=Z("paddingBottom","0px")),$.margin.all.size>0&&(z.margin=Z("margin","0px")),$.margin.t.size>0&&(z.marginTop=Z("marginTop","0px")),$.margin.r.size>0&&(z.marginRight=Z("marginRight","0px")),$.margin.b.size>0&&(z.marginBottom=Z("marginBottom","0px")),$.margin.l.size>0&&(z.marginLeft=Z("marginLeft","0px")),$.margin.x.size>0&&(z.marginLeft=Z("marginLeft","0px"),z.marginRight=Z("marginRight","0px")),$.margin.y.size>0&&(z.marginTop=Z("marginTop","0px"),z.marginBottom=Z("marginBottom","0px")),z}const K=Ue;if($.flexDirection.size>0&&(z.flexDirection=Qt($.flexDirection,K,"column")),$.gap.size>0&&(z.gap=Qt($.gap,K,"0px")),$.width.size>0&&(z.width=Qt($.width,K,"auto")),$.minHeight.size>0&&(z.minHeight=Qt($.minHeight,K,"0px")),$.alignItems.size>0&&(z.alignItems=Qt($.alignItems,K,"stretch")),$.justifyContent.size>0&&(z.justifyContent=Qt($.justifyContent,K,"flex-start")),$.display.size>0&&(z.display=Qt($.display,K,"flex")),$.gridCols.size>0){const Q=Qt($.gridCols,K,1);z.gridTemplateColumns=`repeat(${Q}, minmax(0, 1fr))`}return $.gridTemplateColumns.size>0&&(z.gridTemplateColumns=Qt($.gridTemplateColumns,K,String(z.gridTemplateColumns||"none"))),$.textSize.size>0&&(z.fontSize=Qt($.textSize,K,"1rem")),$.borderRadius.size>0&&(z.borderRadius=Qt($.borderRadius,K,"0px")),$.padding.p.size>0&&(z.padding=Qt($.padding.p,K,"0px")),$.padding.px.size>0&&(z.paddingLeft=Qt($.padding.px,K,"0px"),z.paddingRight=Qt($.padding.px,K,"0px")),$.padding.py.size>0&&(z.paddingTop=Qt($.padding.py,K,"0px"),z.paddingBottom=Qt($.padding.py,K,"0px")),$.margin.all.size>0&&(z.margin=Qt($.margin.all,K,"0px")),$.margin.t.size>0&&(z.marginTop=Qt($.margin.t,K,"0px")),$.margin.r.size>0&&(z.marginRight=Qt($.margin.r,K,"0px")),$.margin.b.size>0&&(z.marginBottom=Qt($.margin.b,K,"0px")),$.margin.l.size>0&&(z.marginLeft=Qt($.margin.l,K,"0px")),$.margin.x.size>0&&(z.marginLeft=Qt($.margin.x,K,"0px"),z.marginRight=Qt($.margin.x,K,"0px")),$.margin.y.size>0&&(z.marginTop=Qt($.margin.y,K,"0px"),z.marginBottom=Qt($.margin.y,K,"0px")),z},ai=y.useRef(new Map),Pl=y.useCallback(async T=>{const k=ai.current.get(T);if(k)return k;const $=r||localStorage.getItem("token")||"",Y=t==null?void 0:t.endpoint,z=N||(typeof Y=="string"?Y.replace(/\/+$/,""):"")||"/api",K=`?collection=${encodeURIComponent(T)}`;for(const X of[`${z}/tenant/schema${K}`,`${z}/admin/schema${K}`])try{const Q=await fetch(X,{headers:{Authorization:`Bearer ${$}`}});if(!Q.ok)continue;const Z=await Q.json(),lt=Array.isArray(Z)?Z:Array.isArray(Z==null?void 0:Z.data)?Z.data:[],it=lt.find(gt=>gt.collection===T)||null;if(console.log(`[SchemaDebug][FE] fetchEntitySchema collection=${T} found=${!!it} totalSchemas=${lt.length}`,it),!it)continue;return ai.current.set(T,it),it}catch{}return null},[r,N,t]),Kn={cfg:Rt,sdk:t,apiUrl:N,renderMode:$t,scopeId:Vn,widgets:[...Array.isArray(e==null?void 0:e.widgets)?e.widgets:[],...Object.values(fo).flatMap(T=>T.widgets||[])],widgetStack:[],parseClassName:yt,containerWidth:Ue,interactionDisabled:p,previewMode:R,isAuthenticated:ht,styleOverrides:f,selectedComponentKey:h,selectedComponentClass:u,sceneData:we,setSceneData:fe,setColorMode:T=>Mf(T),portalTarget:nr.current,imageErrors:cl,setImageErrors:ul,handleButtonClick:Mr,interpolateText:_l,evaluateExpression:aa,evaluateCondition:Sl,showToast:Ee,setActiveModal:me,dismissModal:Ut,setOverlayModal:ls,dismissOverlayModal:hl,fetchListData:Wn,fetchEntitySchema:Pl,goBack:ho,currentSceneId:Mt,isMobileView:or,navigateToScene:Pi,mobileMenuOpen:as,setMobileMenuOpen:ji,renderComponent:(T,k,$)=>Bd(Kn,T,k,$),renderIcon:(T,k,$)=>(n==null?void 0:n(T,k,$))??I0(T,k,$),getCommonProps:ds,imageReplacements:x,listData:vn,listErrors:ts,resolveReferencePath:$n,rowContextRef:Wi,uploadFile:Cg,runBulkSelectAction:ia,refetchScope:T=>Ur("__scope__",T,!0),selectDynamicOptions:go,setSelectDynamicOptions:es,loading:gr,buttonLoading:Ks,withLoading:Eg,paginationState:ir,parseClassNameResponsive:kg};O&&(Kn.renderPhaserGame=(T,k)=>O(Kn,T,k));let In=[];const la=y.useMemo(()=>{const T={};for(const[k,$]of Object.entries(we))k.startsWith("_")||(T[k]=$);return JSON.stringify(T)},[we]),Al=y.useMemo(()=>{try{return JSON.stringify(vn)}catch{return JSON.stringify(Object.fromEntries(Object.entries(vn).map(([T,k])=>[T,Array.isArray(k)?k.length:0])))}},[vn]),Ei=y.useRef({}),Hi=y.useRef(""),ps=y.useRef(""),El=y.useRef(""),ca=y.useRef({}),Df=y.useRef({}),ua=y.useRef(ir);ua.current=ir;const jf=y.useRef(gr);jf.current=gr;const Cl=y.useRef({}),Su=y.useRef(new Set),Eo=y.useRef(null),Bf=y.useRef(!1);y.useEffect(()=>{if(!He||!ht){zn.current.forEach($=>$()),zn.current.clear(),yr.current.clear();return}const T=$=>{var z;const Y=$.getAttribute("data-bf-scroll-load");!Y||Su.current.has(Y)||(Su.current.add(Y),(z=Eo.current)==null||z.observe($))};Eo.current||(Eo.current=new IntersectionObserver($=>{for(const Y of $){if(!Y.isIntersecting)continue;const z=Y.target.getAttribute("data-bf-scroll-load");if(!z||!Bf.current||Cl.current[z])continue;const K=ua.current[z],X=Fn.current[z];if(!X||!(K!=null&&K.hasMore)||jf.current[z])continue;Cl.current[z]=!0;const Q=ca.current[z]||1;ca.current[z]=Q+1;const Z=Df.current[z];Wn(X,z,Q,K.limit,Z==null?void 0:Z.field,Z==null?void 0:Z.direction,void 0,!0).finally(()=>{var lt;if(Cl.current[z]=!1,Y.target.isConnected){const it=Y.target.getBoundingClientRect();it.bottom>-160&&it.top<(window.innerHeight||800)+160&&((lt=Eo.current)==null||lt.observe(Y.target))}})}},{rootMargin:"160px 0px"})),document.querySelectorAll("[data-bf-scroll-load]").forEach(T);const k=()=>{Bf.current=!0};return window.addEventListener("scroll",k,{capture:!0,passive:!0}),()=>{window.removeEventListener("scroll",k,{capture:!0})}},[Mt,He,Wn,vn,gr,ir,we]),y.useEffect(()=>()=>{var T;(T=Eo.current)==null||T.disconnect(),Eo.current=null,Su.current=new Set},[Mt]),y.useEffect(()=>{if(!He)return;const T=X=>typeof X=="string"?X.replace(/\{\{\s*\[([\w/.-]+)\](?:\.([\w.]+))?\s*(?:\|\|\s*(.+?))?\}\}/g,(Q,Z,lt,it)=>{const gt=$n(lt?`${Z}.${lt}`:Z);return gt!=null?String(gt):it!==void 0?it.replace(/^["']|["']$/g,""):""}).replace(/\{\{([\w.]+)\}\}/g,(Q,Z)=>{const lt=Z.split(".").reduce((it,gt)=>it==null?void 0:it[gt],we);return lt!=null?String(lt):""}):"";Hi.current!==Mt&&(Hi.current=Mt);let k=new Set;const $=(X,Q="")=>{Array.isArray(X)&&X.forEach((Z,lt)=>{var wt;const it=`${Q}-${lt}`;if(Z.condition&&!Sl(Z.condition,Z.__conditionBase))return;if((Z.type==="list"||Z.type==="table")&&Z.dataSource){const Pt=`${Mt}|${it}`;k.add(Pt),Z.key&&k.add(Z.key),Df.current[Pt]=Z.sort||{},vu.current[Pt]={responseKey:Z.responseKey,paginationMode:Z.paginationMode};const Kt=String(Z.dataSource),Nt=Kt.trim().match(/^\{\{\s*\[([\w/.-]+)\](?:\.([\w.]+))?\s*\}\}$/),Wt=!!Nt,de=Wt?Kt:T(Z.dataSource),jt=Wt?`${Kt}#${Nt?JSON.stringify($n(`${Nt[1]}${Nt[2]?"."+Nt[2]:""}`)):"u"}`:de,ft=Ei.current[Pt]!==jt;ft&&(Ei.current[Pt]=jt,ca.current[Pt]=1,Wn(de,Pt,0,Z.pageSize||10,void 0,void 0,Z.key));const xt=Z.realtime,_t=xt?T(xt.channel||""):"",Bt=xt?T(xt.url||""):"",qt=xt?T(xt.event||""):"",$e=xt?`${Bt}|${_t}|${qt}`:"",Gt=yr.current.get(Pt)!==$e;if(xt&&(ft||Gt)){yr.current.set(Pt,$e);const se=zn.current.get(Pt);se&&se();const Hn=Z.pageSize||10;let sr;const Se=Ze=>{if(!xt.bind)return;let be=Ze;try{be=typeof Ze=="string"?JSON.parse(Ze):Ze}catch{}xt.bindField&&(!be||be[xt.bindField]===void 0)||be&&typeof be=="object"&&fe(Cn=>({...Cn,[xt.bind]:be}))},ys=Ze=>{if(!xt.filter)return!0;let be=Ze;if(typeof be=="string")try{be=JSON.parse(be)}catch{return!1}if(!be||typeof be!="object")return!1;const Cn=Object.entries(xt.filter);return Cn.some(([kt])=>kt in be)?Cn.every(([kt,Dt])=>{if(!(kt in be))return!0;const ue=typeof Dt=="string"?_l(Dt):Dt;return ue===""||be[kt]===ue}):!1},qi=(Ze,be)=>{if(!xt.onEvent||!Array.isArray(be))return;let Cn=Ze;if(typeof Cn=="string")try{Cn=JSON.parse(Cn)}catch{return}const kt=Cn==null?void 0:Cn.id,Dt=be.find(ue=>(ue==null?void 0:ue.id)===kt);if(Dt&&!(xt.onEvent.when&&!Ao(xt.onEvent.when,Dt))){if(xt.onEvent.once===!0){const ue=[it,xt.onEvent.action,xt.onEvent.when||"",(Dt==null?void 0:Dt.id)||kt||""].join(":");if(yo.current.has(ue))return;yo.current.add(ue)}Wi.current=Dt,vl.current=Object.keys(Dt),fe(ue=>({...ue,...Dt})),Mr(xt.onEvent.action,{}).catch(()=>{})}};switch(xt.mode){case"poll":{const Ze=xt.interval||5e3,be=window.setInterval(()=>{xt.while&&!Ao(xt.while,An.current)||Wn(de,Pt,0,Hn)},Ze);sr=()=>clearInterval(be);break}case"sse":{if(!Bt&&!_t){sr=()=>{};break}const Ze=r||localStorage.getItem("token")||"",be=Bt||`/events?channel=${_t}`,Cn=Ze&&!be.includes("token=")?`${be}${be.includes("?")?"&":"?"}token=${encodeURIComponent(Ze)}`:be,kt=new EventSource(Cn),Dt=ue=>{ys(ue.data)&&(Se(ue.data),Wn(de,Pt,0,Hn))};qt?kt.addEventListener(qt,Dt):kt.onmessage=Dt,kt.onerror=()=>kt.close(),sr=()=>kt.close();break}case"ws":{const Ze=_t||(w?`tenant:${w}:entities`:"");if(!Bt&&!Ze){sr=()=>{};break}let be=null,Cn=!1;const kt=()=>{var ue;if(Cn)return;let Dt;if(Ze&&((ue=t==null?void 0:t.client)!=null&&ue.createWebSocket))Dt=t.client.createWebSocket(Ze);else{const Tn=Bt||`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}/ws?channel=${Ze}`;Dt=new WebSocket(Tn)}typeof Dt.addEventListener=="function"&&Dt.addEventListener("open",()=>{Wn(de,Pt,0,Hn)}),Dt.onmessage=Tn=>{ys(Tn.data)&&(Se(Tn.data),Wn(de,Pt,0,Hn).then(xr=>{const wr=Array.isArray(xr)?xr:vn[Pt];xt.onEvent&&qi(Tn.data,wr);const $r=we==null?void 0:we.id;if($r&&Array.isArray(wr)&&Hi.current===Mt){const Gi=wr.find(Yi=>(Yi==null?void 0:Yi.id)===$r);Gi&&fe(Yi=>({...Yi,...Gi}))}}))},Dt.onclose=()=>{Cn||setTimeout(kt,3e3)},be=Dt};kt(),sr=()=>{Cn=!0,be==null||be.close()};break}default:sr=()=>{}}zn.current.set(Pt,sr)}}if(Z.type==="select"&&Z.dataSource){const Pt=`${it}-sel`,Kt=T(Z.dataSource);Ei.current[Pt]!==Kt&&(Ei.current[Pt]=Kt,(async()=>{try{const Nt=Z.dataSource,Wt=T(Nt),de=await fetch(Wt,{headers:{Authorization:`Bearer ${r||localStorage.getItem("token")||""}`}});if(!de.ok)return;const jt=await de.json(),ft=Z.dataField||"configs",xt=Z.optionLabel||"label",_t=Z.optionValue||"value",Bt=jt[ft]||jt.data||jt,qt=Array.isArray(Bt)?Bt.map($e=>({label:$e[xt]||$e.name||$e.label,value:$e[_t]||$e.id||$e.name||$e.label})):[];es($e=>({...$e,[it]:qt}))}catch{}})())}Z.children&&$(Z.children,it);const gt=Z.accordionItems||(Z.type==="accordion"?Z.items:null);Array.isArray(gt)&&gt.forEach((Pt,Kt)=>{Array.isArray(Pt==null?void 0:Pt.content)&&$(Pt.content,`${it}-acc-${Kt}-content`)}),Array.isArray(Z.tabItems)&&Z.tabItems.forEach((Pt,Kt)=>{const Nt=Array.isArray(Pt==null?void 0:Pt.content)?Pt.content:Array.isArray(Pt==null?void 0:Pt.children)?Pt.children:null;Nt&&$(Nt,`${it}-tabcontent-${Kt}`)});const Ot=Z;if(Ot.type==="widget"&&Ot.widgetId){const Pt=(wt=e==null?void 0:e.widgets)==null?void 0:wt.find(Kt=>Kt.id===Ot.widgetId);Pt&&Array.isArray(Pt.components)&&$(Pt.components,`${it}-${Ot.widgetId}`)}})},Y=`${Mt}|${la}|${Al}|${ht}`;ps.current!==Y&&(ps.current=Y,$(In),yl.current=k);const z=Ft||ce;if(El.current!==((z==null?void 0:z.id)||"")){El.current=(z==null?void 0:z.id)||"";for(const[X,Q]of zn.current)X.startsWith("modal")&&(Q(),zn.current.delete(X),delete Ei.current[X])}const K=z?an==null?void 0:an[z.id]:void 0;k=new Set,K&&Array.isArray(K==null?void 0:K.components)&&$(K.components,"modal"),na.current=new Set([...yl.current,...k]);for(const[X,Q]of zn.current)na.current.has(X)||(Q(),zn.current.delete(X),yr.current.delete(X),delete Ei.current[X])},[Mt,Wn,la,Al,Ft==null?void 0:Ft.id,ce==null?void 0:ce.id,ht]),y.useEffect(()=>()=>{zn.current.forEach(T=>T()),zn.current.clear(),yr.current.clear(),ps.current=""},[Mt]);const kr=y.useMemo(()=>{if(!He||$t!=="css-driven")return null;const T=new Map,k=($,Y)=>{$.forEach((z,K)=>{const X=`${Y}-${K}`;if(z.className){const Q=Mv(z.className);if(Tv(Q)){const Z=jI(Vn,X,Q);Z&&T.set(X,Z)}}z.children&&k(z.children,X)})};return k(In,""),T},[Mt,In,$t,Vn]),ha=y.useRef(xl);ha.current=xl;const ms=Rt.realtime,fa=ms==null?void 0:ms.mode,Tl=ms==null?void 0:ms.url;if(y.useEffect(()=>{if(!ht||fa!=="sse"||!Tl)return;const T=r||localStorage.getItem("token");if(!T)return;let k=null,$=!1;return(async()=>{try{const Y=N||(t==null?void 0:t.endpoint)||window.location.origin,z=await fetch(`${Y}${Tl}/token`,{headers:{Authorization:`Bearer ${T}`}});if(!z.ok)return;const{token:K}=await z.json();if(!K||$)return;k=new EventSource(`${Y}${Tl}/subscribe?token=${encodeURIComponent(K)}`),k.onmessage=X=>{try{const Q=JSON.parse(X.data);Q!=null&&Q.message&&ha.current(Q,"success")}catch{}},k.onerror=()=>k==null?void 0:k.close()}catch{}})(),()=>{$=!0,k==null||k.close()}},[ht,N,r,fa,Tl]),!He)return y.createElement(y.Fragment,null,Xdt(mt,Je.length,ho,_));const Me=He,da=Me.backgroundColor,gs=da&&kd(da)!==(Rt.colorMode==="dark"?"dark":"light")?kd(da)==="dark"?yh.text:Ql.text:Rt.colors.text,Ml=Me.height!==void 0?typeof Me.height=="number"?`${Me.height}px`:Me.height:void 0,Ci=Me.minHeight!==void 0?typeof Me.minHeight=="number"?`${Me.minHeight}px`:Me.minHeight:void 0,zf=Me.className?{...FC,fontFamily:Rt.typography.fontFamily,display:"flex",flexDirection:"column",width:"100%",maxWidth:"100%",position:"relative",...Ml?{height:Ml}:{},...Ci?{minHeight:Ci}:{},backgroundColor:da||Rt.colors.background,color:gs,...yt(Me.className)}:{...FC,fontFamily:Rt.typography.fontFamily,display:"flex",flexDirection:"column",position:"relative",width:"100%",maxWidth:"100%",...Ml?{height:Ml}:{},...Ci?{minHeight:Ci}:{},backgroundColor:da||Rt.colors.background,color:gs},Pu=Array.isArray(Me.components)?Me.components:[],$g=Kdt(Vn),li=(He==null?void 0:He.requireAuth)===!0||(Me==null?void 0:Me.requiresAuth)===!0||(oi==null?void 0:oi.requiresAuth)===!0||((bt=oi==null?void 0:oi.config)==null?void 0:bt.requiresAuth)===!0,Ff=(li||nt)&&!ht?Mg():null,pa=ht&&li&&et===!1&&!dt,Ng=async()=>{Oe("sending");try{const T=r||localStorage.getItem("token"),k=await fetch(`${vr()}/auth/resend-verification`,{method:"POST",headers:{Authorization:`Bearer ${T}`}}),$=await k.json().catch(()=>null);if(!k.ok||($==null?void 0:$.success)===!1)throw new Error(So($));Oe("sent"),Ee("Verification email sent")}catch(T){Oe("idle"),Ee((T==null?void 0:T.message)||"Failed to resend","error")}},Ol=pa?y.createElement("div",{key:"email-banner",style:{position:"relative",display:"flex",alignItems:"center",justifyContent:"center",gap:"8px",padding:"10px 40px",backgroundColor:Rt.colorMode==="dark"?"#78350f":"#fef3c7",color:Rt.colorMode==="dark"?"#fef3c7":"#92400e",fontSize:"13px",fontWeight:500,boxShadow:"0 2px 8px rgba(0,0,0,0.15)"}},Kn.renderIcon("alert-triangle",14),y.createElement("span",null,"Verify your email — check your inbox for the confirmation link."),y.createElement("button",{key:"resend",onClick:Ng,disabled:pe!=="idle",style:{background:"none",border:"none",padding:0,color:"inherit",font:"inherit",fontWeight:700,textDecoration:"underline",cursor:pe==="idle"?"pointer":"default",opacity:pe==="idle"?1:.7}},pe==="sent"?"Sent":pe==="sending"?"Sending…":"Resend"),y.createElement("button",{"aria-label":"Dismiss",onClick:()=>Jt(!0),style:{position:"absolute",right:"8px",top:"50%",transform:"translateY(-50%)",background:"none",border:"none",cursor:"pointer",color:"inherit",display:"flex",alignItems:"center",padding:"4px"}},Kn.renderIcon("x",16))):null,Nn=e,Au=Array.isArray(Nn==null?void 0:Nn.widgets)?Nn.widgets:[],Eu=new Set,ma=T=>{if(Array.isArray(T)){for(const k of T)ma(k);return}if(!(!T||typeof T!="object")){T.type==="widget"&&T.widgetId&&Eu.add(T.widgetId);for(const k in T)ma(T[k])}};ma(Pu),Nn!=null&&Nn.modals&&typeof Nn.modals=="object"&&ma(Nn.modals);for(const T of Au)ma(T.components);const Wf=Au.filter(T=>Eu.has(T.id)?!1:T.sceneIds==="*"?!0:Array.isArray(T.sceneIds)?T.sceneIds.includes("*")||T.sceneIds.includes(Mt):!1),Vf=zr.map(T=>{var Y,z,K;const k=fo[T.id],$=T.sourceSceneId?(Y=k==null?void 0:k.steps)==null?void 0:Y.find(X=>X.id===T.sourceSceneId):(z=k==null?void 0:k.steps)==null?void 0:z.find(X=>X.type==="render_scene");return(K=$==null?void 0:$.config)!=null&&K.components?{...T,components:$.config.components}:null}).filter(Boolean);In=[...Pu],(Xt=(Lt=Nn.layout)==null?void 0:Lt.header)!=null&&Xt.length?In.splice(0,0,...Nn.layout.header):(Un=(ve=Me==null?void 0:Me.layout)==null?void 0:ve.header)!=null&&Un.length&&In.splice(0,0,...Me.layout.header);for(const T of Wf||[]){const k=T.components||[];if(!k.length)continue;if(T.targetKey){const Y=T.targetKey.split("-").filter(Boolean).map(Number);if(Y.length>0){let z=In,K=Y[0];for(let Q=0;Q<Y.length-1;Q++){const Z=z[Y[Q]];if(!Z||!Array.isArray(Z.children))break;z=Z.children,K=Y[Q+1]}const X=T.targetPosition||"before";if(X==="inside"){const Q=z[K];Q&&(Array.isArray(Q.children)||(Q.children=[]),Q.children.unshift(...k))}else X==="after"?z.splice(K+1,0,...k):z.splice(K,0,...k);continue}}const $=T.index??In.length;In.splice($,0,...k)}for(const T of Vf){if(T.targetKey){const k=T.targetKey.split("-").filter(Boolean).map(Number);let $=In,Y=k[0];for(let K=0;K<k.length-1;K++){const X=$[k[K]];if(!X||!Array.isArray(X.children))break;$=X.children,Y=k[K+1]}const z=T.targetPosition||"before";if(z==="inside"){const K=$[Y];K&&(Array.isArray(K.children)||(K.children=[]),K.children.unshift(...T.components))}else z==="after"?$.splice(Y+1,0,...T.components):$.splice(Y,0,...T.components);continue}In.splice(T.index??In.length,0,...T.components)}(br=(xn=Nn.layout)==null?void 0:xn.footer)!=null&&br.length?In.push(...Nn.layout.footer):(Co=(Xn=Me==null?void 0:Me.layout)==null?void 0:Xn.footer)!=null&&Co.length&&In.push(...Me.layout.footer);const Uf=kr&&kr.size>0?y.createElement("style",{key:"bf-responsive"},Array.from(kr.values()).join(`
package/dist/index.js CHANGED
@@ -54334,7 +54334,7 @@ function Tmt({
54334
54334
  }, [Mt, ut, Tt, sn, ae]), x.useEffect(() => {
54335
54335
  if (!ut || typeof window > "u") return;
54336
54336
  const C = ae.get(Mt);
54337
- !C || !C.includes(":") || Mr.current || (Tt === "hash" ? ql(Mt, ae, !1, Pn.current) : Gl(Mt, ae, !1, Pn.current));
54337
+ !C || !C.includes(":") || Mr.current || (Tt === "hash" ? ql(Mt, ae, !0, Pn.current) : Gl(Mt, ae, !0, Pn.current));
54338
54338
  }, [
54339
54339
  xe,
54340
54340
  Mt,
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/renderer/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAS1B,OAAO,EACL,WAAW,EAGX,YAAY,EACZ,aAAa,EACd,MAAM,UAAU,CAAC;AAIlB,OAAO,EAAmC,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAM/D,OAAO,EACL,cAAc,EAEd,gBAAgB,EAChB,oBAAoB,EAEpB,eAAe,EACf,mBAAmB,EACpB,MAAM,WAAW,CAAC;AAInB,OAAO,KAAK,EACV,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,gBAAgB,EAChB,SAAS,EACT,WAAW,EACX,eAAe,EACf,eAAe,EACf,KAAK,EAEL,YAAY,EACZ,cAAc,EACd,yBAAyB,EACzB,cAAc,EACd,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,UAAU,EACV,cAAc,EACd,WAAW,EACX,UAAU,EACV,WAAW,EACX,aAAa,EACb,QAAQ,EACR,iBAAiB,EAEjB,qBAAqB,EACrB,qBAAqB,EACrB,YAAY,EACb,MAAM,SAAS,CAAC;AAYjB,OAAO,EACL,QAAQ,EACR,cAAc,EACd,eAAe,EACf,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACT,WAAW,EACX,eAAe,EACf,eAAe,EACf,KAAK,EACL,YAAY,EACZ,SAAS,EACT,cAAc,EACd,yBAAyB,EACzB,cAAc,EACd,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,UAAU,EACV,UAAU,EACV,aAAa,EACb,cAAc,EACd,WAAW,EACX,UAAU,EACV,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EACjB,QAAQ,EACR,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,YAAY,GACb,CAAC;AAquNF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,qBAAqB,yDAEnE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/renderer/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAS1B,OAAO,EACL,WAAW,EAGX,YAAY,EACZ,aAAa,EACd,MAAM,UAAU,CAAC;AAIlB,OAAO,EAAmC,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAM/D,OAAO,EACL,cAAc,EAEd,gBAAgB,EAChB,oBAAoB,EAEpB,eAAe,EACf,mBAAmB,EACpB,MAAM,WAAW,CAAC;AAInB,OAAO,KAAK,EACV,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,gBAAgB,EAChB,SAAS,EACT,WAAW,EACX,eAAe,EACf,eAAe,EACf,KAAK,EAEL,YAAY,EACZ,cAAc,EACd,yBAAyB,EACzB,cAAc,EACd,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,UAAU,EACV,cAAc,EACd,WAAW,EACX,UAAU,EACV,WAAW,EACX,aAAa,EACb,QAAQ,EACR,iBAAiB,EAEjB,qBAAqB,EACrB,qBAAqB,EACrB,YAAY,EACb,MAAM,SAAS,CAAC;AAYjB,OAAO,EACL,QAAQ,EACR,cAAc,EACd,eAAe,EACf,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACT,WAAW,EACX,eAAe,EACf,eAAe,EACf,KAAK,EACL,YAAY,EACZ,SAAS,EACT,cAAc,EACd,yBAAyB,EACzB,cAAc,EACd,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,UAAU,EACV,UAAU,EACV,aAAa,EACb,cAAc,EACd,WAAW,EACX,UAAU,EACV,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EACjB,QAAQ,EACR,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,YAAY,GACb,CAAC;AAyuNF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,qBAAqB,yDAEnE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "backflow-ui-renderer",
3
- "version": "0.1.68",
3
+ "version": "0.1.69",
4
4
  "description": "Standalone React workflow renderer for Backflow",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",