@swarm.ing/pieui 3.0.9 → 3.0.10

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.esm.js CHANGED
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import{useContext as IZ,useEffect as GZ,useRef as MZ}from"react";import{createContext as gU,useContext as pU}from"react";var KZ=globalThis,M=(Z,U)=>{let $=Symbol.for(Z);if(!($ in KZ))KZ[$]=U();return KZ[$]};var o=M("@swarm.ing/pieui:context:pieConfig",()=>gU(null)),p=()=>{let Z=pU(o);if(!Z)throw Error("usePieConfig must be used within PieConfigProvider");return Z},r=()=>{let{apiServer:Z}=p();return Z},HZ=r,zZ=()=>{let{centrifugeServer:Z}=p();return Z};var m=()=>{let{enableRenderingLog:Z}=p();return Z},vZ=m;var a=()=>{let{onLinkLost:Z}=p();return Z},n=()=>{let{onLinkRestored:Z}=p();return Z},OZ="__piedemo__";import{createContext as dU}from"react";import{Centrifuge as hZ}from"centrifuge";var gZ=M("@swarm.ing/pieui:centrifuge-cache",()=>new Map),JZ=(Z,U)=>{if(!U)return null;let $=`${Z}::${U}`,H=gZ.get($);if(H)return H;async function z(){let T=await fetch(Z+"api/centrifuge/gen_token",{credentials:"include"});if(!T.ok){if(T.status===401||T.status===403)throw new hZ.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${T.status}`)}return(await T.json()).token}let J=new hZ(U,{getToken:z});return gZ.set($,J),J},uU=M("@swarm.ing/pieui:context:centrifuge",()=>dU(null)),v=uU;import{io as cU}from"socket.io-client";import{createContext as lU}from"react";var pZ=M("@swarm.ing/pieui:socket-cache",()=>new Map),TZ=(Z)=>{let U=pZ.get(Z);if(U)return U;let $=cU(Z,{autoConnect:!1,transports:["websocket"]});return pZ.set(Z,$),$},oU=M("@swarm.ing/pieui:context:socket",()=>lU(null)),h=oU;import iU from"mitt";import{createContext as sU,useCallback as rU,useContext as aU}from"react";function d(){return M("@swarm.ing/pieui:mitt-emitter",()=>iU())}var dZ=M("@swarm.ing/pieui:context:mitt",()=>sU(null));function nU(Z){let U=aU(dZ);return rU(($,H)=>{(U??d()).emit(`pie${$}_${Z}`,H)},[Z,U])}var g=dZ;function uZ(Z){return Z.wasRecovering===!0&&Z.recovered===!1}function cZ(Z){return Z.recoverable===!1}function lZ(Z,U,$){let H=Z.getSubscription(U);if(H)return{subscription:H,createdHere:!1};return{subscription:Z.newSubscription(U,$),createdHere:!0}}var tU=(Z)=>{let U=document.cookie?document.cookie.split(";"):[];for(let $ of U){let H=$.indexOf("=");if((H===-1?$:$.slice(0,H)).trim()===Z){let J=H===-1?"":$.slice(H+1).trim();try{return decodeURIComponent(J)}catch{return J}}}return null},eU={isClient(){return typeof window<"u"&&typeof document<"u"},readSid(){return typeof window>"u"?void 0:window.sid},setSid(Z){if(typeof window<"u")window.sid=Z},readWebStorage(Z,U){return(Z==="local"?window.localStorage:window.sessionStorage).getItem(U)},readCookie:tU,readUrlParams(Z){return new URLSearchParams(window.location.search).getAll(Z)},readDomInput(Z){let U=document.getElementsByName(Z);if(!U.length)return null;let $=U[0];if($ instanceof HTMLInputElement){if($.type==="file"&&$.files)return Array.from($.files);return[$.value]}if($ instanceof HTMLTextAreaElement)return[$.value];return[]},submitGlobalForm(){if(typeof document>"u")return;let Z=document.getElementById("piedata_global_form");Z&&Z.submit()}},oZ=eU;var Z$={};function c(){return Z$}var iZ=new Map;var sZ=(Z)=>{return iZ.has(Z)?iZ.get(Z):null};var rZ,U$={isClient(){return!0},readSid(){return rZ},setSid(Z){rZ=Z},readWebStorage(Z,U){let $=c(),H=Z==="local"?$.storage:$.sessionStorage;return H?H.getItem(U):null},async readWebStorageAsync(Z,U){let $=c(),H=Z==="local"?$.asyncStorage:$.asyncSessionStorage;if(H)return H.getItem(U);let z=Z==="local"?$.storage:$.sessionStorage;return z?z.getItem(U):null},readCookie(Z){let U=c();return U.getCookie?U.getCookie(Z):null},readUrlParams(Z){let U=c();return U.getRouteParams?U.getRouteParams(Z):[]},readDomInput(Z){let U=c();return U.getInput?U.getInput(Z):sZ(Z)},submitGlobalForm(){c().submitForm?.()}},aZ=U$;var $$=typeof navigator<"u"&&navigator.product==="ReactNative",H$=$$?aZ:oZ,N=H$;var t=M("@swarm.ing/pieui:sid-state",()=>({promise:null,resolve:null}));function nZ(){t.resolve?.()}function FZ(){if(!N.isClient())return Promise.resolve();if(N.readSid()!==void 0)return Promise.resolve();if(!t.promise)t.promise=new Promise((Z)=>{t.resolve=()=>{Z()}});return t.promise}import{useMemo as tZ}from"react";var z$=["localStorage","sessionStorage","cookie","url","telegram:cloud","telegram:secure"],J$=new Set(["telegram:cloud","telegram:secure"]),e=new Map,eZ=(Z,U)=>{e.set(Z,U)},ZU=(Z)=>{e.delete(Z)},UU=(Z="piedata_global_form")=>{let U;if(typeof Z==="string"){if(typeof document>"u")return;U=document.getElementById(Z)}else U=Z;if(!U)return;let $=U.ownerDocument;for(let H of Array.from(U.getElementsByTagName("input")))if(H.getAttribute("data-pie-stored")!==null)H.remove();for(let[H,z]of e){let J=z();if(J instanceof Promise)continue;for(let T of J){if(typeof T!=="string")continue;let G=$.createElement("input");G.type="hidden",G.name=H,G.value=T,G.setAttribute("data-pie-stored","1"),U.appendChild(G)}}},XZ=(Z)=>{if(Z==="sid")return{source:"sid",key:"sid"};for(let U of z$){let $=U+":";if(Z.startsWith($))return{source:U,key:Z.slice($.length)}}return{source:"dom",key:Z}},$U=(Z,U=!1)=>{let{source:$,key:H}=XZ(Z);if($==="sid"){let T=N.readSid();if(!T)throw Error("SocketIO isn't initialized properly");return[T]}if($==="localStorage"||$==="sessionStorage")try{let T=N.readWebStorage($==="localStorage"?"local":"session",H);if(T===null){if(U)console.warn(`No ${$} value found for key ${H}`);return[]}return[T]}catch(T){if(U)console.warn(`Failed to read ${$} key ${H}:`,T);return[]}if($==="cookie"){let T=N.readCookie(H);if(T===null){if(U)console.warn(`No cookie found for key ${H}`);return[]}return[T]}if($==="url"){let T=N.readUrlParams(H);if(!T.length&&U)console.warn(`No URL query param found for key ${H}`);return T}if(J$.has($)){if(U)console.warn(`Source ${$} is async; use readAjaxKeyAsync (readAjaxKey returns [])`);return[]}let z=e.get(H);if(z){let T=z();if(T instanceof Promise){if(U)console.warn(`stored resolver for ${H} is async; use readAjaxKeyAsync (readAjaxKey returns [])`);return[]}return T}let J=N.readDomInput(H);if(J===null){if(U)console.warn(`No input found with name ${H}`);return[]}return J},T$=(Z,U,$)=>{let H=window.Telegram?.WebApp,z=Z==="telegram:cloud"?H?.CloudStorage:H?.SecureStorage,J=Z==="telegram:cloud"?"Telegram CloudStorage":"Telegram SecureStorage";if(!z){if($)console.warn(`${J} is not available`);return Promise.resolve([])}return new Promise((T)=>{try{z.getItem(U,(G,X)=>{if(G){if($)console.warn(`Failed to read ${J} key ${U}:`,G);T([]);return}if(X==null||X===""){if($)console.warn(`No ${J} value found for key ${U}`);T([]);return}T([X])})}catch(G){if($)console.warn(`Failed to read ${J} key ${U}:`,G);T([])}})},HU=async(Z,U=!1)=>{let{source:$,key:H}=XZ(Z);if($==="telegram:cloud"||$==="telegram:secure")return T$($,H,U);if(($==="localStorage"||$==="sessionStorage")&&N.readWebStorageAsync)try{let z=await N.readWebStorageAsync($==="localStorage"?"local":"session",H);if(z===null){if(U)console.warn(`No ${$} value found for key ${H}`);return[]}return[z]}catch(z){if(U)console.warn(`Failed to read ${$} key ${H}:`,z);return[]}if($==="dom"){let z=e.get(H);if(z)return z()}return $U(Z,U)},zU=(Z,U={},$=[],H,z)=>{let J=z?.renderingLogEnabled??!1,T=z?.timeout,G=z?.retryPolicy,X=G?.maxRetries??0,Y=G?.baseDelay??1000,Q=G?.retryOn??[502,503,504];if(J)console.log("Registering AJAX: ",H,U,$);return async(q={})=>{if(!N.isClient()){if(J)console.warn("getAjaxSubmit called on server, skipping DOM-dependent logic");return}let V=z?.apiServer;if(!V){if(J)console.warn("AJAX skipped: apiServer is missing");return}if(!H||!Z){if(J)console.warn("AJAX skipped: pathname or setUiAjaxConfiguration is missing");return}if($.includes("sid"))await FZ();let B=new FormData;for(let[O,P]of Object.entries({...U,...q}))B.append(O,P);for(let O of $){let{key:P}=XZ(O);for(let w of await HU(O,J))B.append(P,w)}let W=V+"api/ajax_content"+H;Z(null);let D;for(let O=0;O<=X;O++){if(O>0){let K=Y*2**(O-1);if(J)console.log(`AJAX retry ${O}/${X} after ${K}ms`);await new Promise((_)=>setTimeout(_,K))}let P=T!=null?new AbortController:null,w=P&&setTimeout(()=>P.abort(),T);try{let K=await fetch(W,{method:"POST",body:B,signal:P?.signal});if(w)clearTimeout(w);if(!K.ok&&Q.includes(K.status)&&O<X){D=Error(`HTTP ${K.status}`);continue}let F=(K.headers.get("content-type")||"").includes("application/json");if(!!K.body?.getReader&&!F){let x=K.body.getReader(),$Z=new TextDecoder,k="";while(!0){let{done:S,value:mU}=await x.read();if(S)break;k+=$Z.decode(mU,{stream:!0});let mZ=k.split(`
3
- `);k=mZ.pop()??"";for(let vU of mZ){let DZ=vU.trim();if(!DZ)continue;try{let hU=JSON.parse(DZ);Z([hU])}catch{if(J)console.warn("Failed to parse streamed line:",DZ)}}}if(k.trim())try{let S=JSON.parse(k);Z([S])}catch{if(J)console.warn("Failed to parse final streamed line:",k)}return{}}else{let x=await K.json();return Z(x),x}}catch(K){if(w)clearTimeout(w);if(D=K,O<X)continue;if(J)console.error("AJAX request failed:",K);return Z(null),K}}if(J)console.error("AJAX request failed after retries:",D);return Z(null),D}},X$=(Z,U={},$=[],H,z)=>{let{apiServer:J,enableRenderingLog:T}=p(),G=JSON.stringify(U),X=JSON.stringify($),Y=JSON.stringify(z);return tZ(()=>zU(Z,U,$,H,{apiServer:J,renderingLogEnabled:T,timeout:z?.timeout,retryPolicy:z?.retryPolicy}),[Z,G,X,H,J,T,Y])},JU=(Z={})=>{let U=[];for(let $ of Object.keys(Z??{})){let H=null;if($==="pathname")H="default";else if($.endsWith("Pathname"))H=$.slice(0,-8);if(H===null)continue;let z=H==="default"?"":H;U.push({key:H,pathname:Z[$],depsNames:Z[z?`${z}DepsNames`:"depsNames"]??[],kwargs:Z[z?`${z}Kwargs`:"kwargs"]??{}})}return U},G$=(Z={},U,$)=>{let{apiServer:H,enableRenderingLog:z}=p(),J=JSON.stringify(Z??{}),T=JSON.stringify($);return tZ(()=>{let G={};for(let X of JU(Z??{}))G[X.key]=zU(U,X.kwargs,X.depsNames,X.pathname,{apiServer:H,renderingLogEnabled:z,timeout:$?.timeout,retryPolicy:$?.retryPolicy});return G},[J,U,H,z,T])};import{jsx as B$,jsxs as W$,Fragment as q$}from"react/jsx-runtime";var Y$=({card:Z,data:U,children:$,useSocketioSupport:H=!1,useCentrifugeSupport:z=!1,useMittSupport:J=!1,centrifugeChannel:T=void 0,methods:G=void 0,stored:X=void 0,onResync:Y=void 0})=>{let Q=vZ(),q=MZ(G);q.current=G;let V=MZ(Y);V.current=Y;let B=MZ(X);B.current=X;let W=typeof X==="function";if(GZ(()=>{if(!W)return;let w=U.name;return eZ(w,()=>[JSON.stringify(B.current())]),()=>ZU(w)},[W,U.name]),Q)console.log("[PieCard] Rendering card:",Z),console.log("[PieCard] Card data:",U),console.log("[PieCard] Component name:",U?.name),console.log("[PieCard] Real-time support:",{socketio:H,centrifuge:z,mitt:J,centrifugeChannel:T}),console.log("[PieCard] Methods:",G?Object.keys(G):"none"),console.log("[PieCard] Has children:",!!$);let D=IZ(h),O=IZ(v),P=IZ(g);if(GZ(()=>{if(!D||!H||!q.current||!U.name){if(Q&&H)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!D,useSocketioSupport:H,hasMethods:!!q.current,hasDataName:!!U?.name});return}let K=Object.keys(q.current??{}).map((_)=>{let F=`pie${_}_${U.name}`;if(Q)console.log(`[PieCard] Socket.IO registering event: ${F}`);let j=(x)=>{q.current?.[_]?.(x)};return D.on(F,j),[F,j]});return()=>{K.forEach(([_,F])=>{if(Q)console.log(`[PieCard] Socket.IO unregistering event: ${_}`);D.off(_,F)})}},[D,U.name,H]),GZ(()=>{if(!O||!z||!T||!U.name){if(Q&&z)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!O,useCentrifugeSupport:z,hasCentrifugeChannel:!!T,hasMethods:!!q.current,hasDataName:!!U?.name});return}let K=Object.keys(q.current??{}).map((_)=>{let F=`pie${_}_${U.name}_${T}`;if(Q)console.log(`[PieCard] Centrifuge subscribing to channel: ${F}`);let{subscription:j,createdHere:x}=lZ(O,F,{recoverable:!0,positioned:!0}),$Z=(S)=>{if(Q)console.log(`[PieCard] Centrifuge received data on ${F}:`,S.data);q.current?.[_]?.(S.data)},k=(S)=>{if(cZ(S))console.warn(`[PieCard] Centrifuge channel ${F} is not `+"recoverable — enable history on the server "+"namespace for exact replay; relying on resync fallback only.");if(uZ(S)){if(Q)console.log(`[PieCard] Centrifuge recovery gap on ${F}; requesting resync`);V.current?.({channel:F,reason:"gap"})}};return j.on("publication",$Z),j.on("subscribed",k),j.subscribe(),{subscription:j,createdHere:x,onPublication:$Z,onSubscribed:k}});return()=>{K.forEach(({subscription:_,createdHere:F,onPublication:j,onSubscribed:x})=>{if(Q)console.log("[PieCard] Centrifuge unsubscribing from channel");if(_.off("publication",j),_.off("subscribed",x),F)_.unsubscribe(),O.removeSubscription(_)})}},[O,T,U.name,z]),GZ(()=>{if(!P||!J||!U.name){if(Q&&J)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!P,useMittSupport:J,hasMethods:!!q.current,hasDataName:!!U?.name});return}let w=Object.keys(q.current??{}),K={};return w.forEach((_)=>{let F=`pie${_}_${U.name}`,j=(x)=>{if(Q)console.log(`[PieCard] Mitt registering event: ${F}`);q.current?.[_]?.(x)};K[F]=j,P.on(F,j)}),()=>{Object.entries(K).forEach(([_,F])=>{if(Q)console.log(`[PieCard] Mitt unregistering event: ${_}`);P.off(_,F)})}},[P,U.name,J]),Q)console.log("[PieCard] Rendering complete, returning children");if(X!==void 0&&!W)return W$(q$,{children:[B$("input",{type:"hidden",name:U.name,value:JSON.stringify(X)}),$]});return $},A=Y$;import{lazy as Q$}from"react";var l=new Map;function TU(Z,U){return U.catch(()=>{if(l.get(Z)===U)l.delete(Z)}),l.set(Z,U),U}function PZ(Z,U){return Q$(()=>{if(l.has(U))return l.get(U);return TU(U,Z().then(($)=>$))})}var XU=async(Z,U)=>{if(!U)return;if(l.has(Z))return l.get(Z);return TU(Z,U().then(($)=>$))};var f=M("@swarm.ing/pieui:component-registry",()=>new Map),_$=(Z)=>{if(!Z.name)throw Error("Component registration requires a name");if(!Z.component&&!Z.loader)throw Error(`Component "${Z.name}" requires component or loader`);let U={name:Z.name,component:Z.component,loader:Z.loader,metadata:Z.metadata,fallback:Z.fallback,isLazy:!1};if(!U.component&&U.loader)U.component=PZ(U.loader,Z.name),U.isLazy=!0;return U};function I(Z){let U=_$(Z);return f.set(U.name,U),U.component}var V$=(Z)=>{Z.forEach((U)=>I(U))},D$=(Z)=>{f.delete(Z)},K$=(Z)=>{return f.has(Z)},O$=(Z)=>{return f.get(Z)?.metadata},ZZ=(Z)=>{return f.get(Z)},F$=()=>{return Array.from(f.keys())},I$=()=>{return f.size},YU=()=>Array.from(f.values()).filter((Z)=>Z.isLazy&&typeof Z.loader==="function").map((Z)=>Z.name),qU=(Z)=>{let U=f.get(Z);if(!U?.isLazy||typeof U.loader!=="function")return;return XU(Z,U.loader)},GU=!1,M$=()=>{if(GU||typeof window>"u")return;GU=!0;let Z=navigator.connection;if(Z?.saveData)return;if(Z?.effectiveType&&["slow-2g","2g"].includes(Z.effectiveType))return;let U=YU(),$="requestIdleCallback"in window?(z)=>window.requestIdleCallback(z,{timeout:2000}):(z)=>window.setTimeout(z,300),H=(z)=>{if(z>=U.length)return;$(()=>{Promise.resolve().then(()=>qU(U[z])).catch(()=>{}).finally(()=>H(z+1))})};H(0)};import{useContext as BU,memo as f$}from"react";import{createContext as P$}from"react";import{jsx as N$,Fragment as w$}from"react/jsx-runtime";var A$=M("@swarm.ing/pieui:context:fallback",()=>P$(N$(w$,{}))),E=A$;import{createContext as L$}from"react";var R$=M("@swarm.ing/pieui:context:lazyError",()=>L$(void 0)),u=R$;import{Component as j$,Suspense as E$}from"react";import{jsx as x$}from"react/jsx-runtime";var C$=2,y$=400;class i extends j${state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(Z){if(this.props.onError?.(Z),this.state.attempt<C$){let U=y$*(this.state.attempt+1);this.timer=setTimeout(()=>{this.setState(($)=>({failed:!1,attempt:$.attempt+1}))},U)}}componentDidUpdate(Z){if(Z.name!==this.props.name&&this.state.attempt!==0)this.setState({failed:!1,attempt:0})}componentWillUnmount(){if(this.timer)clearTimeout(this.timer)}render(){if(this.state.failed)return this.props.fallback;return x$(E$,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}import{jsx as AZ}from"react/jsx-runtime";function b$({uiConfig:Z,setUiAjaxConfiguration:U}){let $=BU(E),H=BU(u),z=m();if(z)console.log("[UI] Rendering component:",Z.card),console.log("[UI] Component data:",Z.data),console.log("[UI] Component content:",Z.content),console.log("[UI] Has setUiAjaxConfiguration:",!!U);let J=ZZ(Z.card);if(!J?.component){if(z)console.warn(`[UI] Component not found in registry: ${Z.card}`),console.log("[UI] Returning fallback component");return $}if(z)console.log("[UI] Found component in registry:",{name:J.name,isLazy:J.isLazy,hasMetadata:!!J.metadata});let T=J.component,G=AZ(T,{data:Z.data,content:Z.content,setUiAjaxConfiguration:U});if(J.isLazy){if(z)console.log("[UI] Rendering lazy component with Suspense:",J.name);return AZ(i,{name:J.name,fallback:J.fallback?AZ(J.fallback,{}):$,onError:H,children:G})}if(z)console.log("[UI] Rendering component directly:",J.name);return G}var R=f$(b$);import{useContext as WU}from"react";import{createContext as k$}from"react";var S$=M("@swarm.ing/pieui:context:uiRenderer",()=>k$(null)),C=S$;import{jsx as YZ}from"react/jsx-runtime";function QU({uiConfig:Z,setUiAjaxConfiguration:U}){let $=WU(E),H=WU(u),z=m();if(z)console.log("[UILoading] Rendering fallback for:",Z.card),console.log("[UILoading] Component data:",Z.data),console.log("[UILoading] Component content:",Z.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!U);let J=ZZ(Z.card);if(!J?.component){if(z)console.warn(`[UILoading] Component not found in registry: ${Z.card}`),console.log("[UILoading] Returning fallback component");return $}if(z)console.log("[UILoading] Found component in registry:",{name:J.name,isLazy:J.isLazy,hasMetadata:!!J.metadata,hasFallback:!!J.fallback});if(J.fallback){if(z)console.log("[UILoading] Rendering fallback for:",J.name);let X=J.fallback;return YZ(X,{})}if(z)console.log("[UILoading] No fallback, rendering full component:",J.name);let T=J.component,G=YZ(C.Provider,{value:QU,children:YZ(T,{data:Z.data,content:Z.content,setUiAjaxConfiguration:U})});if(J.isLazy)return YZ(i,{name:J.name,fallback:$,onError:H,children:G});return G}var wZ=QU;import{useContext as m$}from"react";import{jsx as NZ}from"react/jsx-runtime";var v$=({data:Z,content:U,setUiAjaxConfiguration:$})=>{let{name:H,sx:z}=Z,J=m$(C)??R;return NZ(A,{card:H,data:Z,children:NZ("div",{style:z,id:H,children:U.map((T,G)=>{return NZ(J,{uiConfig:T,setUiAjaxConfiguration:$},`children-${G}`)})})})},_U=v$;var h$=I({name:"SequenceCard",component:_U,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});import{useContext as g$}from"react";import{jsx as VU}from"react/jsx-runtime";var p$=({data:Z,content:U,setUiAjaxConfiguration:$})=>{let{name:H}=Z,z=g$(C)??R;return VU(A,{card:H,data:Z,children:U.map((J,T)=>{return VU(z,{uiConfig:J,setUiAjaxConfiguration:$},`children-${T}`)})})},DU=p$;var d$=I({name:"UnionCard",component:DU,metadata:{author:"Swarm.ing",description:"Renders one of many components"}});import{useEffect as o$,useState as i$}from"react";import s$ from"html-react-parser";import{useCallback as qZ,useEffect as u$,useRef as LZ,useState as c$}from"react";function l$(){let Z=new AudioContext,U=Z.createOscillator(),$=U.connect(Z.createMediaStreamDestination());U.start();let H=$.stream.getAudioTracks()[0];return H.enabled=!1,H}function RZ(Z=null,U){let[$,H]=c$(!1),z=LZ(null),J=LZ(null),T=LZ(null),G=qZ(async(q,V=!0)=>{if(z.current)X();let B=new RTCPeerConnection;if(B.onconnectionstatechange=()=>{if(B.connectionState==="connected")H(!0);else if(["disconnected","failed","closed"].includes(B.connectionState))H(!1)},B.ontrack=(_)=>{if(Z)Z.srcObject=_.streams[0]},V){let _=await navigator.mediaDevices.getUserMedia({audio:!0});B.addTrack(_.getTracks()[0],_)}else{let _=l$();B.addTrack(_)}let W=B.createDataChannel("oai-events");J.current=W,T.current=new Promise((_)=>{W.addEventListener("open",()=>{_()})});let D=await B.createOffer();await B.setLocalDescription(D);let K=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:D.sdp,headers:{Authorization:`Bearer ${q}`,"Content-Type":"application/sdp"}})).text();await B.setRemoteDescription({type:"answer",sdp:K}),z.current=B,await T.current},[Z]),X=qZ(()=>{let q=J.current;if(q)q.close();z.current?.getSenders()?.forEach((V)=>V.track?.stop()),z.current?.close(),H(!1),z.current=null,J.current=null,T.current=null},[Z]),Y=qZ((q)=>{let V=J.current;if(!V){console.error("Data channel is not ready",q);return}let B=new Date().toLocaleTimeString();if(q.event_id=q.event_id||crypto.randomUUID(),V.send(JSON.stringify(q)),!q.timestamp)q.timestamp=B;U?.(q)},[U,Z]),Q=qZ((q)=>{if(!J.current){console.error("Data channel is not ready");return}let B=()=>{Y({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:q}]}}),Y({type:"response.create"})};if(T.current)T.current.then(B);else B()},[U,Z]);return u$(()=>{let q=J.current;if(!q)return;let V=(B)=>{let W=JSON.parse(B.data);if(!W.timestamp)W.timestamp=new Date().toLocaleTimeString();U?.(W)};return q.addEventListener("message",V),()=>{q.removeEventListener("message",V)}},[U,Z]),{isSessionActive:$,startSession:G,stopSession:X,sendTextMessage:Q}}import{jsx as a$}from"react/jsx-runtime";var r$=({data:Z})=>{let{html:U,useSocketioSupport:$,useCentrifugeSupport:H,useMittSupport:z,centrifugeChannel:J}=Z,[T,G]=i$(U),{isSessionActive:X,startSession:Y,sendTextMessage:Q}=RZ(null,(W)=>{if(console.log(W.type,W.type==="response.output_text.delta"&&W.delta),W.type==="response.output_text.delta"&&W.delta)G((D)=>D+W.delta)});return o$(()=>{G(U)},[U]),a$(A,{card:"HTMLEmbedCard",data:Z,methods:{update:(W)=>{G(W.value)},generateUsingAI:async(W)=>{try{if(!X&&W.token)await Y(W.token,!1);Q(W.prompt)}catch(D){console.error("Failed to generate using AI",D)}},initializeAI:async(W)=>{if(!X&&W.token)await Y(W.token,!1)}},useCentrifugeSupport:H,useSocketioSupport:$,useMittSupport:z,centrifugeChannel:J,children:s$(T)})},KU=r$;var n$=I({name:"HTMLEmbedCard",component:KU,metadata:{author:"Swarm.ing"}});import{useEffect as t$,useState as e$}from"react";import{jsx as OU}from"react/jsx-runtime";var ZH=({data:Z})=>{let{name:U,value:$,useSocketioSupport:H,useCentrifugeSupport:z,useMittSupport:J,centrifugeChannel:T}=Z,[G,X]=e$($);return t$(()=>{X($)},[$]),OU(A,{card:"HiddenCard",data:Z,useSocketioSupport:H,useCentrifugeSupport:z,useMittSupport:J,centrifugeChannel:T,methods:{update:({value:Y})=>{X(Y)}},children:OU("input",{type:"hidden",id:U,name:U,value:G})})},FU=ZH;var UH=I({name:"HiddenCard",component:FU,metadata:{author:"Swarm.ing"}});import{useContext as IU,useEffect as zH}from"react";import{createContext as $H}from"react";var HH=M("@swarm.ing/pieui:context:navigate",()=>$H(void 0)),b=HH;import{jsx as XH,Fragment as TH}from"react/jsx-runtime";var JH=({data:Z})=>{let{url:U}=Z,$=IU(b),H=IU(E);return zH(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(U))window.location.href=U;else $?.(U)},[U,$]),XH(TH,{children:H})},MU=JH;var GH=I({name:"AutoRedirectCard",component:MU,metadata:{author:"Swarm.ing"}});import{Bounce as YH,Slide as qH,Zoom as BH,Flip as WH}from"react-toastify";import{toast as QH,ToastContainer as _H}from"react-toastify";import{useContext as VH,useMemo as DH,useRef as KH}from"react";import{jsx as jZ,Fragment as AH}from"react/jsx-runtime";var OH={bounce:YH,slide:qH,zoom:BH,flip:WH},FH=(Z)=>{let U={...Z,type:Z.alertType,transition:Z.transition?OH[Z.transition]:void 0,position:Z.position??"bottom-right",autoClose:Z.autoClose??3000,style:{backgroundColor:"black",...Z.sx}};QH(Z.message,U)},IH=(Z)=>{console.log("Log event",Z)},MH=(Z)=>{if(typeof window>"u"||!window.Notification){console.warn("[IOEventsCard] Notifications API is not available");return}let U=()=>{try{new window.Notification(Z.title,{body:Z.message??Z.subtitle,icon:Z.icon,silent:Z.silent})}catch(H){console.error("[IOEventsCard] Failed to show notification",H)}},$=window.Notification.permission;if($==="granted"){U();return}if($==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((H)=>{if(H==="granted")U()})},PH=({data:Z})=>{let{useCentrifugeSupport:U,useSocketioSupport:$,useMittSupport:H,centrifugeChannel:z}=Z,J=VH(b),T=KH(J);T.current=J;let G=DH(()=>({alert:FH,log:IH,push:MH,redirect:(X)=>{if(X.to){let Y=X.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(Y))window.location.href=Y;else T.current?.(Y)}else window.location.reload()},reload:(X)=>{if(X.to){let Y=X.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(Y))window.location.href=Y;else T.current?.(Y)}else window.location.reload()}}),[]);return jZ(AH,{children:jZ(A,{card:"IOEventsCard",data:Z,useCentrifugeSupport:U,useSocketioSupport:$,useMittSupport:H,centrifugeChannel:z,methods:G,children:jZ(_H,{})})})},PU=PH;var wH=I({name:"IOEventsCard",component:PU,metadata:{author:"Swarm.ing"}});import{useEffect as AU,useState as NH}from"react";import{jsx as wU}from"react/jsx-runtime";var LH=({data:Z})=>{let{name:U,key:$,value:H,useSocketioSupport:z,useCentrifugeSupport:J,useMittSupport:T,centrifugeChannel:G}=Z,[X,Y]=NH(H);return AU(()=>{Y(H)},[H]),AU(()=>{if(typeof window>"u")return;sessionStorage.setItem($,X)},[$,X]),wU(A,{card:"SessionStorageCard",data:Z,useSocketioSupport:z,useCentrifugeSupport:J,useMittSupport:T,centrifugeChannel:G,methods:{update:({value:Q})=>{Y(Q)},remove:()=>{sessionStorage.removeItem($),Y("")}},children:wU("input",{type:"hidden",id:U,name:U,value:X})})},NU=LH;var RH=I({name:"SessionStorageCard",component:NU,metadata:{author:"PieData"}});import{useEffect as LU,useState as jH}from"react";import{jsx as RU}from"react/jsx-runtime";var EH=({data:Z})=>{let{name:U,key:$,value:H,useSocketioSupport:z,useCentrifugeSupport:J,useMittSupport:T,centrifugeChannel:G}=Z,[X,Y]=jH(H);return LU(()=>{Y(H)},[H]),LU(()=>{if(typeof window>"u")return;localStorage.setItem($,X)},[$,X]),RU(A,{card:"DeviceStorageCard",data:Z,useSocketioSupport:z,useCentrifugeSupport:J,useMittSupport:T,centrifugeChannel:G,methods:{update:({value:Q})=>{Y(Q)},remove:()=>{localStorage.removeItem($),Y("")}},children:RU("input",{type:"hidden",id:U,name:U,value:X})})},jU=EH;var CH=I({name:"DeviceStorageCard",component:jU,metadata:{author:"PieData"}});import{useCallback as EZ,useContext as CZ,useEffect as yH,useRef as xH,useState as EU}from"react";import{jsx as CU}from"react/jsx-runtime";var fH=({data:Z,content:U})=>{let{useLoader:$,noReturn:H,returnType:z,useSocketioSupport:J,useCentrifugeSupport:T,useMittSupport:G,centrifugeChannel:X}=Z,Y=CZ(E),Q=CZ(C)??R,[q,V]=EU(!1),[B,W]=EU(null),D=xH(U),O=CZ(g),P=EZ((_)=>{if(_===null)V(!0);else if(V(!1),!H)D.current=_;if(!H)W(_)},[H]),w=EZ((_)=>{D.current=_.content,W(_.content)},[]),K=EZ((_)=>{if(_===null)V(!0);else if(V(!1),!H)for(let F of _)O?.emit(F.name,F.data)},[H,O]);if(yH(()=>{W(U),V(!1)},[U]),!B&&$)return Y;return CU(A,{card:"AjaxGroupCard",data:Z,methods:{changeContent:w},useSocketioSupport:J,useCentrifugeSupport:T,useMittSupport:G,centrifugeChannel:X,children:CU(Q,{uiConfig:B??D.current,setUiAjaxConfiguration:z==="events"?K:P})})},yU=fH;var bH=I({name:"AjaxGroupCard",component:yU,metadata:{author:"Swarm.ing",description:"Group card with AJAX support"}});import{useContext as xU}from"react";import{jsx as yZ}from"react/jsx-runtime";var kH=({data:Z,content:U,setUiAjaxConfiguration:$})=>{let{name:H,url:z,sx:J}=Z,T=xU(b),G=xU(C)??R;return yZ(A,{card:H,data:Z,children:yZ("div",{style:J,id:H,onClick:(Y)=>{if(z)if(Y.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(z))window.location.href=z;else T?.(z)},children:yZ(G,{setUiAjaxConfiguration:$,uiConfig:U})})})},fU=kH;var SH=I({name:"BoxCard",component:fU,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});import{useContext as mH}from"react";import{jsx as xZ}from"react/jsx-runtime";var vH=({data:Z,content:U,setUiAjaxConfiguration:$})=>{let{name:H,sx:z}=Z,J=mH(C)??R;return xZ(A,{card:H,data:Z,children:xZ("div",{style:z,id:H,children:U.map((T,G)=>{return xZ(J,{uiConfig:T,setUiAjaxConfiguration:$},`children-${G}`)})})})},bU=vH;var hH=I({name:"OneOfCard",component:bU,metadata:{author:"Swarm.ing",description:"Different variants"}});import{useMemo as UZ}from"react";import{QueryClient as rH,QueryClientProvider as aH,useQuery as nH}from"@tanstack/react-query";import{useContext as dH,useEffect as uH,useRef as fZ}from"react";import{useEffect as gH,useState as pH}from"react";var BZ=new Map,WZ=new Map;function QZ(Z,U){let $=`${Z}::${U}`,H=Z?BZ.get($):void 0,[z,J]=pH(H??null);return gH(()=>{if(!Z)return;if(BZ.has($)){J(BZ.get($));return}let T=WZ.get($);if(!T)T=fetch(Z+`api/support/${U}`,{method:"GET"}).then((X)=>X.json()).then((X)=>{return BZ.set($,X),WZ.delete($),X}).catch((X)=>{throw WZ.delete($),X}),WZ.set($,T);let G=!1;return T.then((X)=>{if(!G)J(X)}).catch(()=>{}),()=>{G=!0}},[Z,U,$]),z}function s(Z,U){if(U==="up")return{state:"up",signal:Z==="down"?"restored":null};return{state:"down",signal:Z==="up"?"lost":null}}var cH=({children:Z})=>{let U=dH(h),$=HZ(),H=QZ($,"socketIO"),z=a(),J=n(),T=fZ(z);T.current=z;let G=fZ(J);G.current=J;let X=fZ("initial"),Y=(Q)=>{if(N.isClient())N.setSid(Q.sid),nZ(),console.log(`SocketIO initialized: ${N.readSid()}`)};return uH(()=>{if(!U||!H)return;let Q=()=>{let{state:V,signal:B}=s(X.current,"up");if(X.current=V,B==="restored")G.current?.("socketio");console.log("SocketIO connected")},q=(V)=>{if(console.log(`SocketIO disconnected: ${V}`),U.connect(),V==="io client disconnect")return;let{state:B,signal:W}=s(X.current,"down");if(X.current=B,W==="lost")T.current?.("socketio",V)};return U.on("pieinit",Y),U.on("connect",Q),U.on("disconnect",q),U.connect(),()=>{U.off("pieinit",Y),U.off("connect",Q),U.off("disconnect",q),U.disconnect()}},[U,H]),Z},_Z=cH;import{useContext as lH,useEffect as oH,useRef as bZ}from"react";var iH=({children:Z})=>{let U=lH(v),$=HZ(),H=QZ($,"centrifuge"),z=a(),J=n(),T=bZ(z);T.current=z;let G=bZ(J);G.current=J;let X=bZ("initial");return oH(()=>{if(!U||!H)return;let Y=(V)=>{let{state:B,signal:W}=s(X.current,"down");if(X.current=B,W==="lost")T.current?.("centrifuge",V)},Q=()=>{let{state:V,signal:B}=s(X.current,"up");if(X.current=V,B==="restored")G.current?.("centrifuge");console.log("Centrifuge connected")},q=(V)=>{console.log("Centrifuge disconnected:",V),Y(V)};return U.on("connecting",Y),U.on("connected",Q),U.on("disconnected",q),U.connect(),()=>{U.off("connecting",Y),U.off("connected",Q),U.off("disconnected",q),U.disconnect()}},[U,H]),Z},VZ=iH;import{createAxiosDateTransformer as tH}from"axios-date-transformer";import{jsx as sH}from"react/jsx-runtime";function kU(Z,U,$){if(!U)return $;let H=Z.replace(/^\//,""),z=U[H];if(!z)return $;return sH(wZ,{uiConfig:z})}import{jsx as L,Fragment as Uz}from"react/jsx-runtime";var eH=({location:Z,fallback:U,piecache:$,onError:H,queryOptions:z,disableGlobalForm:J})=>{let T=r(),G=zZ(),X=m(),Y=UZ(()=>tH({baseURL:T||""}),[T]),Q=UZ(()=>d(),[]),q=UZ(()=>T?TZ(T):null,[T]),V=UZ(()=>T?JZ(T,G):null,[T,G]),{data:B,isLoading:W,error:D}=nH({queryKey:["uiConfig",Z.pathname+Z.search,T],enabled:!!T,queryFn:async()=>{let P=new URLSearchParams(Z.search);P.set("__pieroot","web");let w="/api/content"+Z.pathname+"?"+P.toString();if(X)console.log("[PieRoot] Fetching UI configuration from:",w);let K=await Y.get(w,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(X)console.log("[PieRoot] Received UI configuration:",K.data);return K.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(P)=>Math.min(1000*2**P,30000),...z}),O=kU(Z.pathname,$,U);if(!T)return O??null;if(X)console.log("[PieRoot] Rendering with location:",Z),console.log("[PieRoot] API_SERVER:",T),console.log("[PieRoot] CENTRIFUGE_SERVER:",G),console.log("[PieRoot] Fallback provided:",!!U),console.log("[PieRoot] Piecache provided:",!!$);if(D){if(X)console.error("[PieRoot] Error fetching UI configuration:",D),console.error("[PieRoot] Error details:",{message:D.message,status:D.response?.status,data:D.response?.data});return H?.(D),O}if(W||!B){if(X)console.log("[PieRoot] Loading state:",{isLoading:W,hasUiConfiguration:!!B});return O}if(X)console.log("[PieRoot] UI configuration loaded successfully:",B),console.log("[PieRoot] Rendering UI with configuration");return L(g.Provider,{value:Q,children:L(h.Provider,{value:q,children:L(v.Provider,{value:V,children:L(E.Provider,{value:U??L(Uz,{}),children:L(_Z,{children:L(VZ,{children:J?L(R,{uiConfig:B}):L("form",{id:"piedata_global_form",action:T+"api/process"+Z.pathname,method:"post",encType:"multipart/form-data",children:L(R,{uiConfig:B})})})})})})})})},Zz=(Z)=>{let U=UZ(()=>new rH,[]),$=Z.queryClient??U;return L(b.Provider,{value:Z.onNavigate,children:L(o.Provider,{value:Z.config,children:L(u.Provider,{value:Z.onError,children:L(aH,{client:$,children:L(eH,{...Z})})})})})},kZ=Zz;import{useMemo as SZ,useState as $z}from"react";import{QueryClient as Hz,QueryClientProvider as zz}from"@tanstack/react-query";import{jsx as y,Fragment as Xz}from"react/jsx-runtime";var Jz=({location:Z,fallback:U,children:$,disableGlobalForm:H})=>{let z=r(),J=zZ(),T=m(),G=SZ(()=>d(),[]),X=SZ(()=>z?TZ(z):null,[z]),Y=SZ(()=>z?JZ(z,J):null,[z,J]);if(T)console.log("[PieRoot] Rendering with location:",Z),console.log("[PieRoot] API_SERVER:",z),console.log("[PieRoot] CENTRIFUGE_SERVER:",J),console.log("[PieRoot] Fallback provided:",!!U);return y(g.Provider,{value:G,children:y(h.Provider,{value:X,children:y(v.Provider,{value:Y,children:y(E.Provider,{value:U??y(Xz,{}),children:y(_Z,{children:y(VZ,{children:H?$:y("form",{id:"piedata_global_form",action:z+"api/process"+Z.pathname,method:"post",encType:"multipart/form-data",children:$})})})})})})})},Tz=(Z)=>{let[U]=$z(()=>new Hz),$=Z.queryClient??U;return y(b.Provider,{value:Z.onNavigate,children:y(o.Provider,{value:Z.config,children:y(u.Provider,{value:Z.onError,children:y(zz,{client:$,children:y(Jz,{...Z})})})})})},Gz=Tz;import{useEffect as Yz,useMemo as qz}from"react";import{jsx as SU}from"react/jsx-runtime";var Bz=SU("div",{style:{padding:16,fontFamily:"system-ui, sans-serif",color:"#888"},children:"Loading card…"}),Wz=({apiServer:Z,pathname:U="/",search:$="",centrifugeServer:H,previewEvents:z=!1,fallback:J,enableRenderingLog:T=!1})=>{let G=Z??(typeof process<"u"?process.env.PIE_API_SERVER:void 0)??"";Yz(()=>{if(!z||!G||typeof window>"u"||typeof EventSource>"u")return;let Q=G.endsWith("/")?G:`${G}/`,q=new EventSource(`${Q}api/preview/events`),V=d();return q.onmessage=(B)=>{try{let W=JSON.parse(B.data);if(W&&typeof W.name==="string")V.emit(W.name,W.payload)}catch{}},()=>q.close()},[z,G]);let X=qz(()=>({apiServer:G,centrifugeServer:H,enableRenderingLog:T,pageProcessor:"web"}),[G,H,T]);return SU(kZ,{location:{pathname:U,search:$},config:X,fallback:J??Bz,onNavigate:(Q)=>{if(typeof window<"u")window.history.pushState(null,"",Q)}})},Qz=Wz;import{clsx as _z}from"clsx";import{twMerge as Vz}from"tailwind-merge";function Dz(...Z){return Vz(_z(Z))}var Kz=()=>{UU(),N.submitGlobalForm()};var Oz=(Z,U)=>`${Z}${OZ}${U}`;export{nU as usePieEmit,n as useOnLinkRestored,a as useOnLinkLost,G$ as useAjaxSubmits,X$ as useAjaxSubmit,D$ as unregisterComponent,PZ as trackLazy,Kz as submitGlobalForm,f as registry,I as registerPieComponent,V$ as registerMultipleComponents,HU as readAjaxKeyAsync,$U as readAjaxKey,qU as preloadComponent,M$ as prefetchLazyComponents,Oz as pieName,XZ as parseDepName,K$ as hasComponent,I$ as getRegistrySize,ZZ as getRegistryEntry,YU as getLazyComponentNames,d as getEmitter,O$ as getComponentMeta,F$ as getAllRegisteredComponents,JU as discoverAjaxEndpoints,Dz as cn,d$ as UnionCard,C as UIRendererContext,wZ as UILoading,R as UI,h as SocketIOContext,RH as SessionStorageCard,h$ as SequenceCard,kZ as PieRoot,Qz as PiePreviewRoot,o as PieConfigContext,A as PieCard,Gz as PieBaseRoot,OZ as PIEBREAK,hH as OneOfCard,g as MittContext,wH as IOEventsCard,UH as HiddenCard,n$ as HTMLEmbedCard,E as FallbackContext,CH as DeviceStorageCard,v as CentrifugeIOContext,SH as BoxCard,GH as AutoRedirectCard,bH as AjaxGroupCard};
2
+ import{useContext as MZ,useEffect as GZ,useRef as PZ}from"react";import{createContext as pU,useContext as dU}from"react";var FZ=globalThis,I=(Z,U)=>{let $=Symbol.for(Z);if(!($ in FZ))FZ[$]=U();return FZ[$]};var o=I("@swarm.ing/pieui:context:pieConfig",()=>pU(null)),g=()=>{let Z=dU(o);if(!Z)throw Error("usePieConfig must be used within PieConfigProvider");return Z},r=()=>{let{apiServer:Z}=g();return Z},zZ=r,HZ=()=>{let{centrifugeServer:Z}=g();return Z};var k=()=>{let{enableRenderingLog:Z}=g();return Z},hZ=k;var a=()=>{let{onLinkLost:Z}=g();return Z},n=()=>{let{onLinkRestored:Z}=g();return Z},OZ="__piedemo__";import{createContext as uU}from"react";import{Centrifuge as gZ}from"centrifuge";var pZ=I("@swarm.ing/pieui:centrifuge-cache",()=>new Map),JZ=(Z,U)=>{if(!U)return null;let $=`${Z}::${U}`,z=pZ.get($);if(z)return z;async function H(){let T=await fetch(Z+"api/centrifuge/gen_token",{credentials:"include"});if(!T.ok){if(T.status===401||T.status===403)throw new gZ.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${T.status}`)}return(await T.json()).token}let J=new gZ(U,{getToken:H});return pZ.set($,J),J},cU=I("@swarm.ing/pieui:context:centrifuge",()=>uU(null)),S=cU;import{io as lU}from"socket.io-client";import{createContext as oU}from"react";var dZ=I("@swarm.ing/pieui:socket-cache",()=>new Map),TZ=(Z)=>{let U=dZ.get(Z);if(U)return U;let $=lU(Z,{autoConnect:!1,transports:["websocket"]});return dZ.set(Z,$),$},sU=I("@swarm.ing/pieui:context:socket",()=>oU(null)),m=sU;import iU from"mitt";import{createContext as rU,useCallback as aU,useContext as nU}from"react";function p(){return I("@swarm.ing/pieui:mitt-emitter",()=>iU())}var uZ=I("@swarm.ing/pieui:context:mitt",()=>rU(null));function tU(Z){let U=nU(uZ);return aU(($,z)=>{(U??p()).emit(`pie${$}_${Z}`,z)},[Z,U])}var v=uZ;function cZ(Z){return Z.wasRecovering===!0&&Z.recovered===!1}function lZ(Z){return Z.recoverable===!1}function oZ(Z,U,$){let z=Z.getSubscription(U);if(z)return{subscription:z,createdHere:!1};return{subscription:Z.newSubscription(U,$),createdHere:!0}}var eU=(Z)=>{let U=document.cookie?document.cookie.split(";"):[];for(let $ of U){let z=$.indexOf("=");if((z===-1?$:$.slice(0,z)).trim()===Z){let J=z===-1?"":$.slice(z+1).trim();try{return decodeURIComponent(J)}catch{return J}}}return null},Z$={isClient(){return typeof window<"u"&&typeof document<"u"},readSid(){return typeof window>"u"?void 0:window.sid},setSid(Z){if(typeof window<"u")window.sid=Z},readWebStorage(Z,U){return(Z==="local"?window.localStorage:window.sessionStorage).getItem(U)},readCookie:eU,readUrlParams(Z){return new URLSearchParams(window.location.search).getAll(Z)},readDomInput(Z){let U=document.getElementsByName(Z);if(!U.length)return null;let $=U[0];if($ instanceof HTMLInputElement){if($.type==="file"&&$.files)return Array.from($.files);return[$.value]}if($ instanceof HTMLTextAreaElement)return[$.value];return[]},submitGlobalForm(){if(typeof document>"u")return;let Z=document.getElementById("piedata_global_form");Z&&Z.submit()}},sZ=Z$;var U$={};function c(){return U$}var iZ=new Map;var rZ=(Z)=>{return iZ.has(Z)?iZ.get(Z):null};var aZ,$$={isClient(){return!0},readSid(){return aZ},setSid(Z){aZ=Z},readWebStorage(Z,U){let $=c(),z=Z==="local"?$.storage:$.sessionStorage;return z?z.getItem(U):null},async readWebStorageAsync(Z,U){let $=c(),z=Z==="local"?$.asyncStorage:$.asyncSessionStorage;if(z)return z.getItem(U);let H=Z==="local"?$.storage:$.sessionStorage;return H?H.getItem(U):null},readCookie(Z){let U=c();return U.getCookie?U.getCookie(Z):null},readUrlParams(Z){let U=c();return U.getRouteParams?U.getRouteParams(Z):[]},readDomInput(Z){let U=c();return U.getInput?U.getInput(Z):rZ(Z)},submitGlobalForm(){c().submitForm?.()}},nZ=$$;var z$=typeof navigator<"u"&&navigator.product==="ReactNative",H$=z$?nZ:sZ,N=H$;var t=I("@swarm.ing/pieui:sid-state",()=>({promise:null,resolve:null}));function tZ(){t.resolve?.()}function IZ(){if(!N.isClient())return Promise.resolve();if(N.readSid()!==void 0)return Promise.resolve();if(!t.promise)t.promise=new Promise((Z)=>{t.resolve=()=>{Z()}});return t.promise}import{useMemo as eZ}from"react";var J$=["localStorage","sessionStorage","cookie","url","telegram:cloud","telegram:secure"],T$=new Set(["telegram:cloud","telegram:secure"]),e=new Map,ZU=(Z,U)=>{e.set(Z,U)},UU=(Z)=>{e.delete(Z)},$U=(Z="piedata_global_form")=>{let U;if(typeof Z==="string"){if(typeof document>"u")return;U=document.getElementById(Z)}else U=Z;if(!U)return;let $=U.ownerDocument;for(let z of Array.from(U.getElementsByTagName("input")))if(z.getAttribute("data-pie-stored")!==null)z.remove();for(let[z,H]of e){let J=H();if(J instanceof Promise)continue;for(let T of J){if(typeof T!=="string")continue;let G=$.createElement("input");G.type="hidden",G.name=z,G.value=T,G.setAttribute("data-pie-stored","1"),U.appendChild(G)}}},XZ=(Z)=>{if(Z==="sid")return{source:"sid",key:"sid"};for(let U of J$){let $=U+":";if(Z.startsWith($))return{source:U,key:Z.slice($.length)}}return{source:"dom",key:Z}},zU=(Z,U=!1)=>{let{source:$,key:z}=XZ(Z);if($==="sid"){let T=N.readSid();if(!T)throw Error("SocketIO isn't initialized properly");return[T]}if($==="localStorage"||$==="sessionStorage")try{let T=N.readWebStorage($==="localStorage"?"local":"session",z);if(T===null){if(U)console.warn(`No ${$} value found for key ${z}`);return[]}return[T]}catch(T){if(U)console.warn(`Failed to read ${$} key ${z}:`,T);return[]}if($==="cookie"){let T=N.readCookie(z);if(T===null){if(U)console.warn(`No cookie found for key ${z}`);return[]}return[T]}if($==="url"){let T=N.readUrlParams(z);if(!T.length&&U)console.warn(`No URL query param found for key ${z}`);return T}if(T$.has($)){if(U)console.warn(`Source ${$} is async; use readAjaxKeyAsync (readAjaxKey returns [])`);return[]}let H=e.get(z);if(H){let T=H();if(T instanceof Promise){if(U)console.warn(`stored resolver for ${z} is async; use readAjaxKeyAsync (readAjaxKey returns [])`);return[]}return T}let J=N.readDomInput(z);if(J===null){if(U)console.warn(`No input found with name ${z}`);return[]}return J},X$=(Z,U,$)=>{let z=window.Telegram?.WebApp,H=Z==="telegram:cloud"?z?.CloudStorage:z?.SecureStorage,J=Z==="telegram:cloud"?"Telegram CloudStorage":"Telegram SecureStorage";if(!H){if($)console.warn(`${J} is not available`);return Promise.resolve([])}return new Promise((T)=>{try{H.getItem(U,(G,X)=>{if(G){if($)console.warn(`Failed to read ${J} key ${U}:`,G);T([]);return}if(X==null||X===""){if($)console.warn(`No ${J} value found for key ${U}`);T([]);return}T([X])})}catch(G){if($)console.warn(`Failed to read ${J} key ${U}:`,G);T([])}})},HU=async(Z,U=!1)=>{let{source:$,key:z}=XZ(Z);if($==="telegram:cloud"||$==="telegram:secure")return X$($,z,U);if(($==="localStorage"||$==="sessionStorage")&&N.readWebStorageAsync)try{let H=await N.readWebStorageAsync($==="localStorage"?"local":"session",z);if(H===null){if(U)console.warn(`No ${$} value found for key ${z}`);return[]}return[H]}catch(H){if(U)console.warn(`Failed to read ${$} key ${z}:`,H);return[]}if($==="dom"){let H=e.get(z);if(H)return H()}return zU(Z,U)},G$=(Z)=>{if(!Z)return[];if(Array.isArray(Z))return Z.map(([U,$])=>[String(U),String($)]);if(typeof Z.forEach==="function"){let U=[];return Z.forEach(($,z)=>U.push([z,$])),U}return Object.entries(Z)},Y$=(Z)=>{let U=Z.filter(Boolean);if(U.length===0)return;if(U.length===1)return U[0];let $=AbortSignal.any;if(typeof $==="function")return $.call(AbortSignal,U);let z=new AbortController;for(let H of U){if(H.aborted){z.abort(H.reason);break}H.addEventListener("abort",()=>z.abort(H.reason),{once:!0})}return z.signal},B$=(Z,U,$)=>{let z={method:"POST",credentials:"include"},H={},J=[U];for(let G of $){if(!G)continue;let{headers:X,signal:B,body:_,...W}=G;Object.assign(z,W);for(let[V,Q]of G$(X))H[V.toLowerCase()]=Q;J.push(B)}if(z.body=Z,Object.keys(H).length>0)z.headers=H;let T=Y$(J);if(T)z.signal=T;return z},JU=(Z,U={},$=[],z,H)=>{let J=H?.renderingLogEnabled??!1,T=H?.timeout,G=H?.retryPolicy,X=G?.maxRetries??0,B=G?.baseDelay??1000,_=G?.retryOn??[502,503,504];if(J)console.log("Registering AJAX: ",z,U,$);return async(W={},V)=>{if(!N.isClient()){if(J)console.warn("getAjaxSubmit called on server, skipping DOM-dependent logic");return}let Q=H?.apiServer;if(!Q){if(J)console.warn("AJAX skipped: apiServer is missing");return}if(!z||!Z){if(J)console.warn("AJAX skipped: pathname or setUiAjaxConfiguration is missing");return}if($.includes("sid"))await IZ();let q=new FormData;for(let[D,P]of Object.entries({...U,...W}))q.append(D,P);for(let D of $){let{key:P}=XZ(D);for(let A of await HU(D,J))q.append(P,A)}let F=Q+"api/ajax_content"+z;Z(null);let w;for(let D=0;D<=X;D++){if(D>0){let Y=B*2**(D-1);if(J)console.log(`AJAX retry ${D}/${X} after ${Y}ms`);await new Promise((K)=>setTimeout(K,Y))}let P=T!=null?new AbortController:null,A=P&&setTimeout(()=>P.abort(),T);try{let Y=await fetch(F,B$(q,P?.signal,[H?.fetchOptions,V]));if(A)clearTimeout(A);if(!Y.ok&&_.includes(Y.status)&&D<X){w=Error(`HTTP ${Y.status}`);continue}let R=(Y.headers.get("content-type")||"").includes("application/json");if(!!Y.body?.getReader&&!R){let u=Y.body.getReader(),$Z=new TextDecoder,y="";while(!0){let{done:DZ,value:vU}=await u.read();if(DZ)break;y+=$Z.decode(vU,{stream:!0});let vZ=y.split(`
3
+ `);y=vZ.pop()??"";for(let hU of vZ){let KZ=hU.trim();if(!KZ)continue;try{let gU=JSON.parse(KZ);Z([gU])}catch{if(J)console.warn("Failed to parse streamed line:",KZ)}}}if(y.trim())try{let DZ=JSON.parse(y);Z([DZ])}catch{if(J)console.warn("Failed to parse final streamed line:",y)}return{}}else{let u=await Y.json();return Z(u),u}}catch(Y){if(A)clearTimeout(A);if(w=Y,D<X)continue;if(J)console.error("AJAX request failed:",Y);return Z(null),Y}}if(J)console.error("AJAX request failed after retries:",w);return Z(null),w}},W$=(Z,U={},$=[],z,H)=>{let{apiServer:J,enableRenderingLog:T}=g(),G=JSON.stringify(U),X=JSON.stringify($),B=JSON.stringify(H);return eZ(()=>JU(Z,U,$,z,{apiServer:J,renderingLogEnabled:T,timeout:H?.timeout,retryPolicy:H?.retryPolicy,fetchOptions:H?.fetchOptions}),[Z,G,X,z,J,T,B])},TU=(Z={})=>{let U=[];for(let $ of Object.keys(Z??{})){let z=null;if($==="pathname")z="default";else if($.endsWith("Pathname"))z=$.slice(0,-8);if(z===null)continue;let H=z==="default"?"":z;U.push({key:z,pathname:Z[$],depsNames:Z[H?`${H}DepsNames`:"depsNames"]??[],kwargs:Z[H?`${H}Kwargs`:"kwargs"]??{}})}return U},q$=(Z={},U,$)=>{let{apiServer:z,enableRenderingLog:H}=g(),J=JSON.stringify(Z??{}),T=JSON.stringify($);return eZ(()=>{let G={};for(let X of TU(Z??{}))G[X.key]=JU(U,X.kwargs,X.depsNames,X.pathname,{apiServer:z,renderingLogEnabled:H,timeout:$?.timeout,retryPolicy:$?.retryPolicy,fetchOptions:$?.fetchOptions});return G},[J,U,z,H,T])};import{jsx as V$,jsxs as D$,Fragment as _$}from"react/jsx-runtime";var Q$=({card:Z,data:U,children:$,useSocketioSupport:z=!1,useCentrifugeSupport:H=!1,useMittSupport:J=!1,centrifugeChannel:T=void 0,methods:G=void 0,stored:X=void 0,onResync:B=void 0})=>{let _=hZ(),W=PZ(G);W.current=G;let V=PZ(B);V.current=B;let Q=PZ(X);Q.current=X;let q=typeof X==="function";if(GZ(()=>{if(!q)return;let P=U.name;return ZU(P,()=>[JSON.stringify(Q.current())]),()=>UU(P)},[q,U.name]),_)console.log("[PieCard] Rendering card:",Z),console.log("[PieCard] Card data:",U),console.log("[PieCard] Component name:",U?.name),console.log("[PieCard] Real-time support:",{socketio:z,centrifuge:H,mitt:J,centrifugeChannel:T}),console.log("[PieCard] Methods:",G?Object.keys(G):"none"),console.log("[PieCard] Has children:",!!$);let F=MZ(m),w=MZ(S),D=MZ(v);if(GZ(()=>{if(!F||!z||!W.current||!U.name){if(_&&z)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!F,useSocketioSupport:z,hasMethods:!!W.current,hasDataName:!!U?.name});return}let A=Object.keys(W.current??{}).map((Y)=>{let K=`pie${Y}_${U.name}`;if(_)console.log(`[PieCard] Socket.IO registering event: ${K}`);let R=(h)=>{W.current?.[Y]?.(h)};return F.on(K,R),[K,R]});return()=>{A.forEach(([Y,K])=>{if(_)console.log(`[PieCard] Socket.IO unregistering event: ${Y}`);F.off(Y,K)})}},[F,U.name,z]),GZ(()=>{if(!w||!H||!T||!U.name){if(_&&H)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!w,useCentrifugeSupport:H,hasCentrifugeChannel:!!T,hasMethods:!!W.current,hasDataName:!!U?.name});return}let A=Object.keys(W.current??{}).map((Y)=>{let K=`pie${Y}_${U.name}_${T}`;if(_)console.log(`[PieCard] Centrifuge subscribing to channel: ${K}`);let{subscription:R,createdHere:h}=oZ(w,K,{recoverable:!0,positioned:!0}),u=(y)=>{if(_)console.log(`[PieCard] Centrifuge received data on ${K}:`,y.data);W.current?.[Y]?.(y.data)},$Z=(y)=>{if(lZ(y))console.warn(`[PieCard] Centrifuge channel ${K} is not `+"recoverable — enable history on the server "+"namespace for exact replay; relying on resync fallback only.");if(cZ(y)){if(_)console.log(`[PieCard] Centrifuge recovery gap on ${K}; requesting resync`);V.current?.({channel:K,reason:"gap"})}};return R.on("publication",u),R.on("subscribed",$Z),R.subscribe(),{subscription:R,createdHere:h,onPublication:u,onSubscribed:$Z}});return()=>{A.forEach(({subscription:Y,createdHere:K,onPublication:R,onSubscribed:h})=>{if(_)console.log("[PieCard] Centrifuge unsubscribing from channel");if(Y.off("publication",R),Y.off("subscribed",h),K)Y.unsubscribe(),w.removeSubscription(Y)})}},[w,T,U.name,H]),GZ(()=>{if(!D||!J||!U.name){if(_&&J)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!D,useMittSupport:J,hasMethods:!!W.current,hasDataName:!!U?.name});return}let P=Object.keys(W.current??{}),A={};return P.forEach((Y)=>{let K=`pie${Y}_${U.name}`,R=(h)=>{if(_)console.log(`[PieCard] Mitt registering event: ${K}`);W.current?.[Y]?.(h)};A[K]=R,D.on(K,R)}),()=>{Object.entries(A).forEach(([Y,K])=>{if(_)console.log(`[PieCard] Mitt unregistering event: ${Y}`);D.off(Y,K)})}},[D,U.name,J]),_)console.log("[PieCard] Rendering complete, returning children");if(X!==void 0&&!q)return D$(_$,{children:[V$("input",{type:"hidden",name:U.name,value:JSON.stringify(X)}),$]});return $},M=Q$;import{lazy as K$}from"react";var l=new Map;function XU(Z,U){return U.catch(()=>{if(l.get(Z)===U)l.delete(Z)}),l.set(Z,U),U}function AZ(Z,U){return K$(()=>{if(l.has(U))return l.get(U);return XU(U,Z().then(($)=>$))})}var GU=async(Z,U)=>{if(!U)return;if(l.has(Z))return l.get(Z);return XU(Z,U().then(($)=>$))};var f=I("@swarm.ing/pieui:component-registry",()=>new Map),F$=(Z)=>{if(!Z.name)throw Error("Component registration requires a name");if(!Z.component&&!Z.loader)throw Error(`Component "${Z.name}" requires component or loader`);let U={name:Z.name,component:Z.component,loader:Z.loader,metadata:Z.metadata,fallback:Z.fallback,isLazy:!1};if(!U.component&&U.loader)U.component=AZ(U.loader,Z.name),U.isLazy=!0;return U};function O(Z){let U=F$(Z);return f.set(U.name,U),U.component}var O$=(Z)=>{Z.forEach((U)=>O(U))},I$=(Z)=>{f.delete(Z)},M$=(Z)=>{return f.has(Z)},P$=(Z)=>{return f.get(Z)?.metadata},ZZ=(Z)=>{return f.get(Z)},A$=()=>{return Array.from(f.keys())},w$=()=>{return f.size},BU=()=>Array.from(f.values()).filter((Z)=>Z.isLazy&&typeof Z.loader==="function").map((Z)=>Z.name),WU=(Z)=>{let U=f.get(Z);if(!U?.isLazy||typeof U.loader!=="function")return;return GU(Z,U.loader)},YU=!1,N$=()=>{if(YU||typeof window>"u")return;YU=!0;let Z=navigator.connection;if(Z?.saveData)return;if(Z?.effectiveType&&["slow-2g","2g"].includes(Z.effectiveType))return;let U=BU(),$="requestIdleCallback"in window?(H)=>window.requestIdleCallback(H,{timeout:2000}):(H)=>window.setTimeout(H,300),z=(H)=>{if(H>=U.length)return;$(()=>{Promise.resolve().then(()=>WU(U[H])).catch(()=>{}).finally(()=>z(H+1))})};z(0)};import{useContext as qU,memo as m$}from"react";import{createContext as L$}from"react";import{jsx as E$,Fragment as j$}from"react/jsx-runtime";var R$=I("@swarm.ing/pieui:context:fallback",()=>L$(E$(j$,{}))),E=R$;import{createContext as C$}from"react";var x$=I("@swarm.ing/pieui:context:lazyError",()=>C$(void 0)),d=x$;import{Component as y$,Suspense as f$}from"react";import{jsx as S$}from"react/jsx-runtime";var b$=2,k$=400;class s extends y${state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(Z){if(this.props.onError?.(Z),this.state.attempt<b$){let U=k$*(this.state.attempt+1);this.timer=setTimeout(()=>{this.setState(($)=>({failed:!1,attempt:$.attempt+1}))},U)}}componentDidUpdate(Z){if(Z.name!==this.props.name&&this.state.attempt!==0)this.setState({failed:!1,attempt:0})}componentWillUnmount(){if(this.timer)clearTimeout(this.timer)}render(){if(this.state.failed)return this.props.fallback;return S$(f$,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}import{jsx as wZ}from"react/jsx-runtime";function v$({uiConfig:Z,setUiAjaxConfiguration:U}){let $=qU(E),z=qU(d),H=k();if(H)console.log("[UI] Rendering component:",Z.card),console.log("[UI] Component data:",Z.data),console.log("[UI] Component content:",Z.content),console.log("[UI] Has setUiAjaxConfiguration:",!!U);let J=ZZ(Z.card);if(!J?.component){if(H)console.warn(`[UI] Component not found in registry: ${Z.card}`),console.log("[UI] Returning fallback component");return $}if(H)console.log("[UI] Found component in registry:",{name:J.name,isLazy:J.isLazy,hasMetadata:!!J.metadata});let T=J.component,G=wZ(T,{data:Z.data,content:Z.content,setUiAjaxConfiguration:U});if(J.isLazy){if(H)console.log("[UI] Rendering lazy component with Suspense:",J.name);return wZ(s,{name:J.name,fallback:J.fallback?wZ(J.fallback,{}):$,onError:z,children:G})}if(H)console.log("[UI] Rendering component directly:",J.name);return G}var j=m$(v$);import{useContext as QU}from"react";import{createContext as h$}from"react";var g$=I("@swarm.ing/pieui:context:uiRenderer",()=>h$(null)),C=g$;import{jsx as YZ}from"react/jsx-runtime";function _U({uiConfig:Z,setUiAjaxConfiguration:U}){let $=QU(E),z=QU(d),H=k();if(H)console.log("[UILoading] Rendering fallback for:",Z.card),console.log("[UILoading] Component data:",Z.data),console.log("[UILoading] Component content:",Z.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!U);let J=ZZ(Z.card);if(!J?.component){if(H)console.warn(`[UILoading] Component not found in registry: ${Z.card}`),console.log("[UILoading] Returning fallback component");return $}if(H)console.log("[UILoading] Found component in registry:",{name:J.name,isLazy:J.isLazy,hasMetadata:!!J.metadata,hasFallback:!!J.fallback});if(J.fallback){if(H)console.log("[UILoading] Rendering fallback for:",J.name);let X=J.fallback;return YZ(X,{})}if(H)console.log("[UILoading] No fallback, rendering full component:",J.name);let T=J.component,G=YZ(C.Provider,{value:_U,children:YZ(T,{data:Z.data,content:Z.content,setUiAjaxConfiguration:U})});if(J.isLazy)return YZ(s,{name:J.name,fallback:$,onError:z,children:G});return G}var NZ=_U;import{useContext as p$}from"react";import{jsx as LZ}from"react/jsx-runtime";var d$=({data:Z,content:U,setUiAjaxConfiguration:$})=>{let{name:z,sx:H}=Z,J=p$(C)??j;return LZ(M,{card:z,data:Z,children:LZ("div",{style:H,id:z,children:U.map((T,G)=>{return LZ(J,{uiConfig:T,setUiAjaxConfiguration:$},`children-${G}`)})})})},VU=d$;var u$=O({name:"SequenceCard",component:VU,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});import{useContext as c$}from"react";import{jsx as DU}from"react/jsx-runtime";var l$=({data:Z,content:U,setUiAjaxConfiguration:$})=>{let{name:z}=Z,H=c$(C)??j;return DU(M,{card:z,data:Z,children:U.map((J,T)=>{return DU(H,{uiConfig:J,setUiAjaxConfiguration:$},`children-${T}`)})})},KU=l$;var o$=O({name:"UnionCard",component:KU,metadata:{author:"Swarm.ing",description:"Renders one of many components"}});import{useEffect as a$,useState as n$}from"react";import t$ from"html-react-parser";import{useCallback as BZ,useEffect as s$,useRef as RZ,useState as i$}from"react";function r$(){let Z=new AudioContext,U=Z.createOscillator(),$=U.connect(Z.createMediaStreamDestination());U.start();let z=$.stream.getAudioTracks()[0];return z.enabled=!1,z}function jZ(Z=null,U){let[$,z]=i$(!1),H=RZ(null),J=RZ(null),T=RZ(null),G=BZ(async(W,V=!0)=>{if(H.current)X();let Q=new RTCPeerConnection;if(Q.onconnectionstatechange=()=>{if(Q.connectionState==="connected")z(!0);else if(["disconnected","failed","closed"].includes(Q.connectionState))z(!1)},Q.ontrack=(Y)=>{if(Z)Z.srcObject=Y.streams[0]},V){let Y=await navigator.mediaDevices.getUserMedia({audio:!0});Q.addTrack(Y.getTracks()[0],Y)}else{let Y=r$();Q.addTrack(Y)}let q=Q.createDataChannel("oai-events");J.current=q,T.current=new Promise((Y)=>{q.addEventListener("open",()=>{Y()})});let F=await Q.createOffer();await Q.setLocalDescription(F);let A=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:F.sdp,headers:{Authorization:`Bearer ${W}`,"Content-Type":"application/sdp"}})).text();await Q.setRemoteDescription({type:"answer",sdp:A}),H.current=Q,await T.current},[Z]),X=BZ(()=>{let W=J.current;if(W)W.close();H.current?.getSenders()?.forEach((V)=>V.track?.stop()),H.current?.close(),z(!1),H.current=null,J.current=null,T.current=null},[Z]),B=BZ((W)=>{let V=J.current;if(!V){console.error("Data channel is not ready",W);return}let Q=new Date().toLocaleTimeString();if(W.event_id=W.event_id||crypto.randomUUID(),V.send(JSON.stringify(W)),!W.timestamp)W.timestamp=Q;U?.(W)},[U,Z]),_=BZ((W)=>{if(!J.current){console.error("Data channel is not ready");return}let Q=()=>{B({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:W}]}}),B({type:"response.create"})};if(T.current)T.current.then(Q);else Q()},[U,Z]);return s$(()=>{let W=J.current;if(!W)return;let V=(Q)=>{let q=JSON.parse(Q.data);if(!q.timestamp)q.timestamp=new Date().toLocaleTimeString();U?.(q)};return W.addEventListener("message",V),()=>{W.removeEventListener("message",V)}},[U,Z]),{isSessionActive:$,startSession:G,stopSession:X,sendTextMessage:_}}import{jsx as Zz}from"react/jsx-runtime";var e$=({data:Z})=>{let{html:U,useSocketioSupport:$,useCentrifugeSupport:z,useMittSupport:H,centrifugeChannel:J}=Z,[T,G]=n$(U),{isSessionActive:X,startSession:B,sendTextMessage:_}=jZ(null,(q)=>{if(console.log(q.type,q.type==="response.output_text.delta"&&q.delta),q.type==="response.output_text.delta"&&q.delta)G((F)=>F+q.delta)});return a$(()=>{G(U)},[U]),Zz(M,{card:"HTMLEmbedCard",data:Z,methods:{update:(q)=>{G(q.value)},generateUsingAI:async(q)=>{try{if(!X&&q.token)await B(q.token,!1);_(q.prompt)}catch(F){console.error("Failed to generate using AI",F)}},initializeAI:async(q)=>{if(!X&&q.token)await B(q.token,!1)}},useCentrifugeSupport:z,useSocketioSupport:$,useMittSupport:H,centrifugeChannel:J,children:t$(T)})},FU=e$;var Uz=O({name:"HTMLEmbedCard",component:FU,metadata:{author:"Swarm.ing"}});import{useEffect as $z,useState as zz}from"react";import{jsx as OU}from"react/jsx-runtime";var Hz=({data:Z})=>{let{name:U,value:$,useSocketioSupport:z,useCentrifugeSupport:H,useMittSupport:J,centrifugeChannel:T}=Z,[G,X]=zz($);return $z(()=>{X($)},[$]),OU(M,{card:"HiddenCard",data:Z,useSocketioSupport:z,useCentrifugeSupport:H,useMittSupport:J,centrifugeChannel:T,methods:{update:({value:B})=>{X(B)}},children:OU("input",{type:"hidden",id:U,name:U,value:G})})},IU=Hz;var Jz=O({name:"HiddenCard",component:IU,metadata:{author:"Swarm.ing"}});import{useContext as MU,useEffect as Gz}from"react";import{createContext as Tz}from"react";var Xz=I("@swarm.ing/pieui:context:navigate",()=>Tz(void 0)),b=Xz;import{jsx as Wz,Fragment as Bz}from"react/jsx-runtime";var Yz=({data:Z})=>{let{url:U}=Z,$=MU(b),z=MU(E);return Gz(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(U))window.location.href=U;else $?.(U)},[U,$]),Wz(Bz,{children:z})},PU=Yz;var qz=O({name:"AutoRedirectCard",component:PU,metadata:{author:"Swarm.ing"}});import{Bounce as Qz,Slide as _z,Zoom as Vz,Flip as Dz}from"react-toastify";import{toast as Kz,ToastContainer as Fz}from"react-toastify";import{useContext as Oz,useMemo as Iz,useRef as Mz}from"react";import{jsx as EZ,Fragment as Rz}from"react/jsx-runtime";var Pz={bounce:Qz,slide:_z,zoom:Vz,flip:Dz},Az=(Z)=>{let U={...Z,type:Z.alertType,transition:Z.transition?Pz[Z.transition]:void 0,position:Z.position??"bottom-right",autoClose:Z.autoClose??3000,style:{backgroundColor:"black",...Z.sx}};Kz(Z.message,U)},wz=(Z)=>{console.log("Log event",Z)},Nz=(Z)=>{if(typeof window>"u"||!window.Notification){console.warn("[IOEventsCard] Notifications API is not available");return}let U=()=>{try{new window.Notification(Z.title,{body:Z.message??Z.subtitle,icon:Z.icon,silent:Z.silent})}catch(z){console.error("[IOEventsCard] Failed to show notification",z)}},$=window.Notification.permission;if($==="granted"){U();return}if($==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((z)=>{if(z==="granted")U()})},Lz=({data:Z})=>{let{useCentrifugeSupport:U,useSocketioSupport:$,useMittSupport:z,centrifugeChannel:H}=Z,J=Oz(b),T=Mz(J);T.current=J;let G=Iz(()=>({alert:Az,log:wz,push:Nz,redirect:(X)=>{if(X.to){let B=X.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(B))window.location.href=B;else T.current?.(B)}else window.location.reload()},reload:(X)=>{if(X.to){let B=X.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(B))window.location.href=B;else T.current?.(B)}else window.location.reload()}}),[]);return EZ(Rz,{children:EZ(M,{card:"IOEventsCard",data:Z,useCentrifugeSupport:U,useSocketioSupport:$,useMittSupport:z,centrifugeChannel:H,methods:G,children:EZ(Fz,{})})})},AU=Lz;var jz=O({name:"IOEventsCard",component:AU,metadata:{author:"Swarm.ing"}});import{useEffect as wU,useState as Ez}from"react";import{jsx as NU}from"react/jsx-runtime";var Cz=({data:Z})=>{let{name:U,key:$,value:z,useSocketioSupport:H,useCentrifugeSupport:J,useMittSupport:T,centrifugeChannel:G}=Z,[X,B]=Ez(z);return wU(()=>{B(z)},[z]),wU(()=>{if(typeof window>"u")return;sessionStorage.setItem($,X)},[$,X]),NU(M,{card:"SessionStorageCard",data:Z,useSocketioSupport:H,useCentrifugeSupport:J,useMittSupport:T,centrifugeChannel:G,methods:{update:({value:_})=>{B(_)},remove:()=>{sessionStorage.removeItem($),B("")}},children:NU("input",{type:"hidden",id:U,name:U,value:X})})},LU=Cz;var xz=O({name:"SessionStorageCard",component:LU,metadata:{author:"PieData"}});import{useEffect as RU,useState as yz}from"react";import{jsx as jU}from"react/jsx-runtime";var fz=({data:Z})=>{let{name:U,key:$,value:z,useSocketioSupport:H,useCentrifugeSupport:J,useMittSupport:T,centrifugeChannel:G}=Z,[X,B]=yz(z);return RU(()=>{B(z)},[z]),RU(()=>{if(typeof window>"u")return;localStorage.setItem($,X)},[$,X]),jU(M,{card:"DeviceStorageCard",data:Z,useSocketioSupport:H,useCentrifugeSupport:J,useMittSupport:T,centrifugeChannel:G,methods:{update:({value:_})=>{B(_)},remove:()=>{localStorage.removeItem($),B("")}},children:jU("input",{type:"hidden",id:U,name:U,value:X})})},EU=fz;var bz=O({name:"DeviceStorageCard",component:EU,metadata:{author:"PieData"}});import{useCallback as CZ,useContext as xZ,useEffect as kz,useRef as Sz,useState as CU}from"react";import{jsx as xU}from"react/jsx-runtime";var mz=({data:Z,content:U})=>{let{useLoader:$,noReturn:z,returnType:H,useSocketioSupport:J,useCentrifugeSupport:T,useMittSupport:G,centrifugeChannel:X}=Z,B=xZ(E),_=xZ(C)??j,[W,V]=CU(!1),[Q,q]=CU(null),F=Sz(U),w=xZ(v),D=CZ((Y)=>{if(Y===null)V(!0);else if(V(!1),!z)F.current=Y;if(!z)q(Y)},[z]),P=CZ((Y)=>{F.current=Y.content,q(Y.content)},[]),A=CZ((Y)=>{if(Y===null)V(!0);else if(V(!1),!z)for(let K of Y)w?.emit(K.name,K.data)},[z,w]);if(kz(()=>{q(U),V(!1)},[U]),!Q&&$)return B;return xU(M,{card:"AjaxGroupCard",data:Z,methods:{changeContent:P},useSocketioSupport:J,useCentrifugeSupport:T,useMittSupport:G,centrifugeChannel:X,children:xU(_,{uiConfig:Q??F.current,setUiAjaxConfiguration:H==="events"?A:D})})},yU=mz;var vz=O({name:"AjaxGroupCard",component:yU,metadata:{author:"Swarm.ing",description:"Group card with AJAX support"}});import{useContext as fU}from"react";import{jsx as yZ}from"react/jsx-runtime";var hz=({data:Z,content:U,setUiAjaxConfiguration:$})=>{let{name:z,url:H,sx:J}=Z,T=fU(b),G=fU(C)??j;return yZ(M,{card:z,data:Z,children:yZ("div",{style:J,id:z,onClick:(B)=>{if(H)if(B.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(H))window.location.href=H;else T?.(H)},children:yZ(G,{setUiAjaxConfiguration:$,uiConfig:U})})})},bU=hz;var gz=O({name:"BoxCard",component:bU,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});import{useContext as pz}from"react";import{jsx as fZ}from"react/jsx-runtime";var dz=({data:Z,content:U,setUiAjaxConfiguration:$})=>{let{name:z,sx:H}=Z,J=pz(C)??j;return fZ(M,{card:z,data:Z,children:fZ("div",{style:H,id:z,children:U.map((T,G)=>{return fZ(J,{uiConfig:T,setUiAjaxConfiguration:$},`children-${G}`)})})})},kU=dz;var uz=O({name:"OneOfCard",component:kU,metadata:{author:"Swarm.ing",description:"Different variants"}});import{useMemo as UZ}from"react";import{QueryClient as ez,QueryClientProvider as Z0,useQuery as U0}from"@tanstack/react-query";import{useContext as oz,useEffect as sz,useRef as bZ}from"react";import{useEffect as cz,useState as lz}from"react";var WZ=new Map,qZ=new Map;function QZ(Z,U){let $=`${Z}::${U}`,z=Z?WZ.get($):void 0,[H,J]=lz(z??null);return cz(()=>{if(!Z)return;if(WZ.has($)){J(WZ.get($));return}let T=qZ.get($);if(!T)T=fetch(Z+`api/support/${U}`,{method:"GET"}).then((X)=>X.json()).then((X)=>{return WZ.set($,X),qZ.delete($),X}).catch((X)=>{throw qZ.delete($),X}),qZ.set($,T);let G=!1;return T.then((X)=>{if(!G)J(X)}).catch(()=>{}),()=>{G=!0}},[Z,U,$]),H}function i(Z,U){if(U==="up")return{state:"up",signal:Z==="down"?"restored":null};return{state:"down",signal:Z==="up"?"lost":null}}var iz=({children:Z})=>{let U=oz(m),$=zZ(),z=QZ($,"socketIO"),H=a(),J=n(),T=bZ(H);T.current=H;let G=bZ(J);G.current=J;let X=bZ("initial"),B=(_)=>{if(N.isClient())N.setSid(_.sid),tZ(),console.log(`SocketIO initialized: ${N.readSid()}`)};return sz(()=>{if(!U||!z)return;let _=()=>{let{state:V,signal:Q}=i(X.current,"up");if(X.current=V,Q==="restored")G.current?.("socketio");console.log("SocketIO connected")},W=(V)=>{if(console.log(`SocketIO disconnected: ${V}`),U.connect(),V==="io client disconnect")return;let{state:Q,signal:q}=i(X.current,"down");if(X.current=Q,q==="lost")T.current?.("socketio",V)};return U.on("pieinit",B),U.on("connect",_),U.on("disconnect",W),U.connect(),()=>{U.off("pieinit",B),U.off("connect",_),U.off("disconnect",W),U.disconnect()}},[U,z]),Z},_Z=iz;import{useContext as rz,useEffect as az,useRef as kZ}from"react";var nz=({children:Z})=>{let U=rz(S),$=zZ(),z=QZ($,"centrifuge"),H=a(),J=n(),T=kZ(H);T.current=H;let G=kZ(J);G.current=J;let X=kZ("initial");return az(()=>{if(!U||!z)return;let B=(V)=>{let{state:Q,signal:q}=i(X.current,"down");if(X.current=Q,q==="lost")T.current?.("centrifuge",V)},_=()=>{let{state:V,signal:Q}=i(X.current,"up");if(X.current=V,Q==="restored")G.current?.("centrifuge");console.log("Centrifuge connected")},W=(V)=>{console.log("Centrifuge disconnected:",V),B(V)};return U.on("connecting",B),U.on("connected",_),U.on("disconnected",W),U.connect(),()=>{U.off("connecting",B),U.off("connected",_),U.off("disconnected",W),U.disconnect()}},[U,z]),Z},VZ=nz;import{createAxiosDateTransformer as $0}from"axios-date-transformer";import{jsx as tz}from"react/jsx-runtime";function SU(Z,U,$){if(!U)return $;let z=Z.replace(/^\//,""),H=U[z];if(!H)return $;return tz(NZ,{uiConfig:H})}import{jsx as L,Fragment as J0}from"react/jsx-runtime";var z0=({location:Z,fallback:U,piecache:$,onError:z,queryOptions:H,disableGlobalForm:J})=>{let T=r(),G=HZ(),X=k(),B=UZ(()=>$0({baseURL:T||""}),[T]),_=UZ(()=>p(),[]),W=UZ(()=>T?TZ(T):null,[T]),V=UZ(()=>T?JZ(T,G):null,[T,G]),{data:Q,isLoading:q,error:F}=U0({queryKey:["uiConfig",Z.pathname+Z.search,T],enabled:!!T,queryFn:async()=>{let D=new URLSearchParams(Z.search);D.set("__pieroot","web");let P="/api/content"+Z.pathname+"?"+D.toString();if(X)console.log("[PieRoot] Fetching UI configuration from:",P);let A=await B.get(P,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(X)console.log("[PieRoot] Received UI configuration:",A.data);return A.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(D)=>Math.min(1000*2**D,30000),...H}),w=SU(Z.pathname,$,U);if(!T)return w??null;if(X)console.log("[PieRoot] Rendering with location:",Z),console.log("[PieRoot] API_SERVER:",T),console.log("[PieRoot] CENTRIFUGE_SERVER:",G),console.log("[PieRoot] Fallback provided:",!!U),console.log("[PieRoot] Piecache provided:",!!$);if(F){if(X)console.error("[PieRoot] Error fetching UI configuration:",F),console.error("[PieRoot] Error details:",{message:F.message,status:F.response?.status,data:F.response?.data});return z?.(F),w}if(q||!Q){if(X)console.log("[PieRoot] Loading state:",{isLoading:q,hasUiConfiguration:!!Q});return w}if(X)console.log("[PieRoot] UI configuration loaded successfully:",Q),console.log("[PieRoot] Rendering UI with configuration");return L(v.Provider,{value:_,children:L(m.Provider,{value:W,children:L(S.Provider,{value:V,children:L(E.Provider,{value:U??L(J0,{}),children:L(_Z,{children:L(VZ,{children:J?L(j,{uiConfig:Q}):L("form",{id:"piedata_global_form",action:T+"api/process"+Z.pathname,method:"post",encType:"multipart/form-data",children:L(j,{uiConfig:Q})})})})})})})})},H0=(Z)=>{let U=UZ(()=>new ez,[]),$=Z.queryClient??U;return L(b.Provider,{value:Z.onNavigate,children:L(o.Provider,{value:Z.config,children:L(d.Provider,{value:Z.onError,children:L(Z0,{client:$,children:L(z0,{...Z})})})})})},SZ=H0;import{useMemo as mZ,useState as T0}from"react";import{QueryClient as X0,QueryClientProvider as G0}from"@tanstack/react-query";import{jsx as x,Fragment as W0}from"react/jsx-runtime";var Y0=({location:Z,fallback:U,children:$,disableGlobalForm:z})=>{let H=r(),J=HZ(),T=k(),G=mZ(()=>p(),[]),X=mZ(()=>H?TZ(H):null,[H]),B=mZ(()=>H?JZ(H,J):null,[H,J]);if(T)console.log("[PieRoot] Rendering with location:",Z),console.log("[PieRoot] API_SERVER:",H),console.log("[PieRoot] CENTRIFUGE_SERVER:",J),console.log("[PieRoot] Fallback provided:",!!U);return x(v.Provider,{value:G,children:x(m.Provider,{value:X,children:x(S.Provider,{value:B,children:x(E.Provider,{value:U??x(W0,{}),children:x(_Z,{children:x(VZ,{children:z?$:x("form",{id:"piedata_global_form",action:H+"api/process"+Z.pathname,method:"post",encType:"multipart/form-data",children:$})})})})})})})},B0=(Z)=>{let[U]=T0(()=>new X0),$=Z.queryClient??U;return x(b.Provider,{value:Z.onNavigate,children:x(o.Provider,{value:Z.config,children:x(d.Provider,{value:Z.onError,children:x(G0,{client:$,children:x(Y0,{...Z})})})})})},q0=B0;import{useEffect as Q0,useMemo as _0}from"react";import{jsx as mU}from"react/jsx-runtime";var V0=mU("div",{style:{padding:16,fontFamily:"system-ui, sans-serif",color:"#888"},children:"Loading card…"}),D0=({apiServer:Z,pathname:U="/",search:$="",centrifugeServer:z,previewEvents:H=!1,fallback:J,enableRenderingLog:T=!1})=>{let G=Z??(typeof process<"u"?process.env.PIE_API_SERVER:void 0)??"";Q0(()=>{if(!H||!G||typeof window>"u"||typeof EventSource>"u")return;let _=G.endsWith("/")?G:`${G}/`,W=new EventSource(`${_}api/preview/events`),V=p();return W.onmessage=(Q)=>{try{let q=JSON.parse(Q.data);if(q&&typeof q.name==="string")V.emit(q.name,q.payload)}catch{}},()=>W.close()},[H,G]);let X=_0(()=>({apiServer:G,centrifugeServer:z,enableRenderingLog:T,pageProcessor:"web"}),[G,z,T]);return mU(SZ,{location:{pathname:U,search:$},config:X,fallback:J??V0,onNavigate:(_)=>{if(typeof window<"u")window.history.pushState(null,"",_)}})},K0=D0;import{clsx as F0}from"clsx";import{twMerge as O0}from"tailwind-merge";function I0(...Z){return O0(F0(Z))}var M0=()=>{$U(),N.submitGlobalForm()};var P0=(Z,U)=>`${Z}${OZ}${U}`;export{tU as usePieEmit,n as useOnLinkRestored,a as useOnLinkLost,q$ as useAjaxSubmits,W$ as useAjaxSubmit,I$ as unregisterComponent,AZ as trackLazy,M0 as submitGlobalForm,f as registry,O as registerPieComponent,O$ as registerMultipleComponents,HU as readAjaxKeyAsync,zU as readAjaxKey,WU as preloadComponent,N$ as prefetchLazyComponents,P0 as pieName,XZ as parseDepName,M$ as hasComponent,w$ as getRegistrySize,ZZ as getRegistryEntry,BU as getLazyComponentNames,p as getEmitter,P$ as getComponentMeta,A$ as getAllRegisteredComponents,TU as discoverAjaxEndpoints,I0 as cn,o$ as UnionCard,C as UIRendererContext,NZ as UILoading,j as UI,m as SocketIOContext,xz as SessionStorageCard,u$ as SequenceCard,SZ as PieRoot,K0 as PiePreviewRoot,o as PieConfigContext,M as PieCard,q0 as PieBaseRoot,OZ as PIEBREAK,uz as OneOfCard,v as MittContext,jz as IOEventsCard,Jz as HiddenCard,Uz as HTMLEmbedCard,E as FallbackContext,bz as DeviceStorageCard,S as CentrifugeIOContext,gz as BoxCard,qz as AutoRedirectCard,vz as AjaxGroupCard};
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- var o$=Object.create;var{getPrototypeOf:i$,defineProperty:BZ,getOwnPropertyNames:DU,getOwnPropertyDescriptor:s$}=Object,KU=Object.prototype.hasOwnProperty;var OU=(Z,U,$)=>{$=Z!=null?o$(i$(Z)):{};let H=U||!Z||!Z.__esModule?BZ($,"default",{value:Z,enumerable:!0}):$;for(let z of DU(Z))if(!KU.call(H,z))BZ(H,z,{get:()=>Z[z],enumerable:!0});return H},VU=new WeakMap,r$=(Z)=>{var U=VU.get(Z),$;if(U)return U;if(U=BZ({},"__esModule",{value:!0}),Z&&typeof Z==="object"||typeof Z==="function")DU(Z).map((H)=>!KU.call(U,H)&&BZ(U,H,{get:()=>Z[H],enumerable:!($=s$(Z,H))||$.enumerable}));return VU.set(Z,U),U};var a$=(Z,U)=>{for(var $ in U)BZ(Z,$,{get:U[$],enumerable:!0,configurable:!0,set:(H)=>U[$]=()=>H})};var pH={};a$(pH,{usePieEmit:()=>RU,useOnLinkRestored:()=>ZZ,useOnLinkLost:()=>e,useAjaxSubmits:()=>dU,useAjaxSubmit:()=>pU,unregisterComponent:()=>sU,trackLazy:()=>jZ,submitGlobalForm:()=>p$,registry:()=>S,registerPieComponent:()=>I,registerMultipleComponents:()=>iU,readAjaxKeyAsync:()=>UU,readAjaxKey:()=>ZU,preloadComponent:()=>zU,prefetchLazyComponents:()=>eU,pieName:()=>d$,parseDepName:()=>VZ,hasComponent:()=>rU,getRegistrySize:()=>tU,getRegistryEntry:()=>HZ,getLazyComponentNames:()=>HU,getEmitter:()=>c,getComponentMeta:()=>aU,getAllRegisteredComponents:()=>nU,discoverAjaxEndpoints:()=>$U,cn:()=>g$,UnionCard:()=>q$,UIRendererContext:()=>y,UILoading:()=>xZ,UI:()=>j,SocketIOContext:()=>v,SessionStorageCard:()=>A$,SequenceCard:()=>X$,PieRoot:()=>oZ,PiePreviewRoot:()=>m$,PieConfigContext:()=>a,PieCard:()=>P,PieBaseRoot:()=>S$,PIEBREAK:()=>NZ,OneOfCard:()=>x$,MittContext:()=>h,IOEventsCard:()=>M$,HiddenCard:()=>D$,HTMLEmbedCard:()=>_$,FallbackContext:()=>C,DeviceStorageCard:()=>N$,CentrifugeIOContext:()=>m,BoxCard:()=>E$,AutoRedirectCard:()=>F$,AjaxGroupCard:()=>R$});module.exports=r$(pH);var f=require("react");var PZ=require("react");var aZ=globalThis,M=(Z,U)=>{let $=Symbol.for(Z);if(!($ in aZ))aZ[$]=U();return aZ[$]};var a=M("@swarm.ing/pieui:context:pieConfig",()=>PZ.createContext(null)),l=()=>{let Z=PZ.useContext(a);if(!Z)throw Error("usePieConfig must be used within PieConfigProvider");return Z},WZ=()=>{let{apiServer:Z}=l();return Z},AZ=WZ,wZ=()=>{let{centrifugeServer:Z}=l();return Z};var u=()=>{let{enableRenderingLog:Z}=l();return Z},FU=u;var e=()=>{let{onLinkLost:Z}=l();return Z},ZZ=()=>{let{onLinkRestored:Z}=l();return Z},NZ="__piedemo__";var MU=require("react"),nZ=require("centrifuge");var IU=M("@swarm.ing/pieui:centrifuge-cache",()=>new Map),LZ=(Z,U)=>{if(!U)return null;let $=`${Z}::${U}`,H=IU.get($);if(H)return H;async function z(){let T=await fetch(Z+"api/centrifuge/gen_token",{credentials:"include"});if(!T.ok){if(T.status===401||T.status===403)throw new nZ.Centrifuge.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${T.status}`)}return(await T.json()).token}let J=new nZ.Centrifuge(U,{getToken:z});return IU.set($,J),J},n$=M("@swarm.ing/pieui:context:centrifuge",()=>MU.createContext(null)),m=n$;var AU=require("socket.io-client"),wU=require("react");var PU=M("@swarm.ing/pieui:socket-cache",()=>new Map),RZ=(Z)=>{let U=PU.get(Z);if(U)return U;let $=AU.io(Z,{autoConnect:!1,transports:["websocket"]});return PU.set(Z,$),$},t$=M("@swarm.ing/pieui:context:socket",()=>wU.createContext(null)),v=t$;var NU=OU(require("mitt")),UZ=require("react");function c(){return M("@swarm.ing/pieui:mitt-emitter",()=>NU.default())}var LU=M("@swarm.ing/pieui:context:mitt",()=>UZ.createContext(null));function RU(Z){let U=UZ.useContext(LU);return UZ.useCallback(($,H)=>{(U??c()).emit(`pie${$}_${Z}`,H)},[Z,U])}var h=LU;function jU(Z){return Z.wasRecovering===!0&&Z.recovered===!1}function EU(Z){return Z.recoverable===!1}function CU(Z,U,$){let H=Z.getSubscription(U);if(H)return{subscription:H,createdHere:!1};return{subscription:Z.newSubscription(U,$),createdHere:!0}}var e$=(Z)=>{let U=document.cookie?document.cookie.split(";"):[];for(let $ of U){let H=$.indexOf("=");if((H===-1?$:$.slice(0,H)).trim()===Z){let J=H===-1?"":$.slice(H+1).trim();try{return decodeURIComponent(J)}catch{return J}}}return null},ZH={isClient(){return typeof window<"u"&&typeof document<"u"},readSid(){return typeof window>"u"?void 0:window.sid},setSid(Z){if(typeof window<"u")window.sid=Z},readWebStorage(Z,U){return(Z==="local"?window.localStorage:window.sessionStorage).getItem(U)},readCookie:e$,readUrlParams(Z){return new URLSearchParams(window.location.search).getAll(Z)},readDomInput(Z){let U=document.getElementsByName(Z);if(!U.length)return null;let $=U[0];if($ instanceof HTMLInputElement){if($.type==="file"&&$.files)return Array.from($.files);return[$.value]}if($ instanceof HTMLTextAreaElement)return[$.value];return[]},submitGlobalForm(){if(typeof document>"u")return;let Z=document.getElementById("piedata_global_form");Z&&Z.submit()}},yU=ZH;var UH={};function n(){return UH}var xU=new Map;var fU=(Z)=>{return xU.has(Z)?xU.get(Z):null};var bU,$H={isClient(){return!0},readSid(){return bU},setSid(Z){bU=Z},readWebStorage(Z,U){let $=n(),H=Z==="local"?$.storage:$.sessionStorage;return H?H.getItem(U):null},async readWebStorageAsync(Z,U){let $=n(),H=Z==="local"?$.asyncStorage:$.asyncSessionStorage;if(H)return H.getItem(U);let z=Z==="local"?$.storage:$.sessionStorage;return z?z.getItem(U):null},readCookie(Z){let U=n();return U.getCookie?U.getCookie(Z):null},readUrlParams(Z){let U=n();return U.getRouteParams?U.getRouteParams(Z):[]},readDomInput(Z){let U=n();return U.getInput?U.getInput(Z):fU(Z)},submitGlobalForm(){n().submitForm?.()}},kU=$H;var HH=typeof navigator<"u"&&navigator.product==="ReactNative",zH=HH?kU:yU,N=zH;var QZ=M("@swarm.ing/pieui:sid-state",()=>({promise:null,resolve:null}));function SU(){QZ.resolve?.()}function tZ(){if(!N.isClient())return Promise.resolve();if(N.readSid()!==void 0)return Promise.resolve();if(!QZ.promise)QZ.promise=new Promise((Z)=>{QZ.resolve=()=>{Z()}});return QZ.promise}var eZ=require("react");var JH=["localStorage","sessionStorage","cookie","url","telegram:cloud","telegram:secure"],TH=new Set(["telegram:cloud","telegram:secure"]),_Z=new Map,mU=(Z,U)=>{_Z.set(Z,U)},vU=(Z)=>{_Z.delete(Z)},hU=(Z="piedata_global_form")=>{let U;if(typeof Z==="string"){if(typeof document>"u")return;U=document.getElementById(Z)}else U=Z;if(!U)return;let $=U.ownerDocument;for(let H of Array.from(U.getElementsByTagName("input")))if(H.getAttribute("data-pie-stored")!==null)H.remove();for(let[H,z]of _Z){let J=z();if(J instanceof Promise)continue;for(let T of J){if(typeof T!=="string")continue;let G=$.createElement("input");G.type="hidden",G.name=H,G.value=T,G.setAttribute("data-pie-stored","1"),U.appendChild(G)}}},VZ=(Z)=>{if(Z==="sid")return{source:"sid",key:"sid"};for(let U of JH){let $=U+":";if(Z.startsWith($))return{source:U,key:Z.slice($.length)}}return{source:"dom",key:Z}},ZU=(Z,U=!1)=>{let{source:$,key:H}=VZ(Z);if($==="sid"){let T=N.readSid();if(!T)throw Error("SocketIO isn't initialized properly");return[T]}if($==="localStorage"||$==="sessionStorage")try{let T=N.readWebStorage($==="localStorage"?"local":"session",H);if(T===null){if(U)console.warn(`No ${$} value found for key ${H}`);return[]}return[T]}catch(T){if(U)console.warn(`Failed to read ${$} key ${H}:`,T);return[]}if($==="cookie"){let T=N.readCookie(H);if(T===null){if(U)console.warn(`No cookie found for key ${H}`);return[]}return[T]}if($==="url"){let T=N.readUrlParams(H);if(!T.length&&U)console.warn(`No URL query param found for key ${H}`);return T}if(TH.has($)){if(U)console.warn(`Source ${$} is async; use readAjaxKeyAsync (readAjaxKey returns [])`);return[]}let z=_Z.get(H);if(z){let T=z();if(T instanceof Promise){if(U)console.warn(`stored resolver for ${H} is async; use readAjaxKeyAsync (readAjaxKey returns [])`);return[]}return T}let J=N.readDomInput(H);if(J===null){if(U)console.warn(`No input found with name ${H}`);return[]}return J},XH=(Z,U,$)=>{let H=window.Telegram?.WebApp,z=Z==="telegram:cloud"?H?.CloudStorage:H?.SecureStorage,J=Z==="telegram:cloud"?"Telegram CloudStorage":"Telegram SecureStorage";if(!z){if($)console.warn(`${J} is not available`);return Promise.resolve([])}return new Promise((T)=>{try{z.getItem(U,(G,X)=>{if(G){if($)console.warn(`Failed to read ${J} key ${U}:`,G);T([]);return}if(X==null||X===""){if($)console.warn(`No ${J} value found for key ${U}`);T([]);return}T([X])})}catch(G){if($)console.warn(`Failed to read ${J} key ${U}:`,G);T([])}})},UU=async(Z,U=!1)=>{let{source:$,key:H}=VZ(Z);if($==="telegram:cloud"||$==="telegram:secure")return XH($,H,U);if(($==="localStorage"||$==="sessionStorage")&&N.readWebStorageAsync)try{let z=await N.readWebStorageAsync($==="localStorage"?"local":"session",H);if(z===null){if(U)console.warn(`No ${$} value found for key ${H}`);return[]}return[z]}catch(z){if(U)console.warn(`Failed to read ${$} key ${H}:`,z);return[]}if($==="dom"){let z=_Z.get(H);if(z)return z()}return ZU(Z,U)},gU=(Z,U={},$=[],H,z)=>{let J=z?.renderingLogEnabled??!1,T=z?.timeout,G=z?.retryPolicy,X=G?.maxRetries??0,Y=G?.baseDelay??1000,Q=G?.retryOn??[502,503,504];if(J)console.log("Registering AJAX: ",H,U,$);return async(q={})=>{if(!N.isClient()){if(J)console.warn("getAjaxSubmit called on server, skipping DOM-dependent logic");return}let V=z?.apiServer;if(!V){if(J)console.warn("AJAX skipped: apiServer is missing");return}if(!H||!Z){if(J)console.warn("AJAX skipped: pathname or setUiAjaxConfiguration is missing");return}if($.includes("sid"))await tZ();let B=new FormData;for(let[O,A]of Object.entries({...U,...q}))B.append(O,A);for(let O of $){let{key:A}=VZ(O);for(let w of await UU(O,J))B.append(A,w)}let W=V+"api/ajax_content"+H;Z(null);let D;for(let O=0;O<=X;O++){if(O>0){let K=Y*2**(O-1);if(J)console.log(`AJAX retry ${O}/${X} after ${K}ms`);await new Promise((_)=>setTimeout(_,K))}let A=T!=null?new AbortController:null,w=A&&setTimeout(()=>A.abort(),T);try{let K=await fetch(W,{method:"POST",body:B,signal:A?.signal});if(w)clearTimeout(w);if(!K.ok&&Q.includes(K.status)&&O<X){D=Error(`HTTP ${K.status}`);continue}let F=(K.headers.get("content-type")||"").includes("application/json");if(!!K.body?.getReader&&!F){let k=K.body.getReader(),MZ=new TextDecoder,p="";while(!0){let{done:d,value:u$}=await k.read();if(d)break;p+=MZ.decode(u$,{stream:!0});let _U=p.split(`
3
- `);p=_U.pop()??"";for(let c$ of _U){let rZ=c$.trim();if(!rZ)continue;try{let l$=JSON.parse(rZ);Z([l$])}catch{if(J)console.warn("Failed to parse streamed line:",rZ)}}}if(p.trim())try{let d=JSON.parse(p);Z([d])}catch{if(J)console.warn("Failed to parse final streamed line:",p)}return{}}else{let k=await K.json();return Z(k),k}}catch(K){if(w)clearTimeout(w);if(D=K,O<X)continue;if(J)console.error("AJAX request failed:",K);return Z(null),K}}if(J)console.error("AJAX request failed after retries:",D);return Z(null),D}},pU=(Z,U={},$=[],H,z)=>{let{apiServer:J,enableRenderingLog:T}=l(),G=JSON.stringify(U),X=JSON.stringify($),Y=JSON.stringify(z);return eZ.useMemo(()=>gU(Z,U,$,H,{apiServer:J,renderingLogEnabled:T,timeout:z?.timeout,retryPolicy:z?.retryPolicy}),[Z,G,X,H,J,T,Y])},$U=(Z={})=>{let U=[];for(let $ of Object.keys(Z??{})){let H=null;if($==="pathname")H="default";else if($.endsWith("Pathname"))H=$.slice(0,-8);if(H===null)continue;let z=H==="default"?"":H;U.push({key:H,pathname:Z[$],depsNames:Z[z?`${z}DepsNames`:"depsNames"]??[],kwargs:Z[z?`${z}Kwargs`:"kwargs"]??{}})}return U},dU=(Z={},U,$)=>{let{apiServer:H,enableRenderingLog:z}=l(),J=JSON.stringify(Z??{}),T=JSON.stringify($);return eZ.useMemo(()=>{let G={};for(let X of $U(Z??{}))G[X.key]=gU(U,X.kwargs,X.depsNames,X.pathname,{apiServer:H,renderingLogEnabled:z,timeout:$?.timeout,retryPolicy:$?.retryPolicy});return G},[J,U,H,z,T])};var $Z=require("react/jsx-runtime"),GH=({card:Z,data:U,children:$,useSocketioSupport:H=!1,useCentrifugeSupport:z=!1,useMittSupport:J=!1,centrifugeChannel:T=void 0,methods:G=void 0,stored:X=void 0,onResync:Y=void 0})=>{let Q=FU(),q=f.useRef(G);q.current=G;let V=f.useRef(Y);V.current=Y;let B=f.useRef(X);B.current=X;let W=typeof X==="function";if(f.useEffect(()=>{if(!W)return;let w=U.name;return mU(w,()=>[JSON.stringify(B.current())]),()=>vU(w)},[W,U.name]),Q)console.log("[PieCard] Rendering card:",Z),console.log("[PieCard] Card data:",U),console.log("[PieCard] Component name:",U?.name),console.log("[PieCard] Real-time support:",{socketio:H,centrifuge:z,mitt:J,centrifugeChannel:T}),console.log("[PieCard] Methods:",G?Object.keys(G):"none"),console.log("[PieCard] Has children:",!!$);let D=f.useContext(v),O=f.useContext(m),A=f.useContext(h);if(f.useEffect(()=>{if(!D||!H||!q.current||!U.name){if(Q&&H)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!D,useSocketioSupport:H,hasMethods:!!q.current,hasDataName:!!U?.name});return}let K=Object.keys(q.current??{}).map((_)=>{let F=`pie${_}_${U.name}`;if(Q)console.log(`[PieCard] Socket.IO registering event: ${F}`);let x=(k)=>{q.current?.[_]?.(k)};return D.on(F,x),[F,x]});return()=>{K.forEach(([_,F])=>{if(Q)console.log(`[PieCard] Socket.IO unregistering event: ${_}`);D.off(_,F)})}},[D,U.name,H]),f.useEffect(()=>{if(!O||!z||!T||!U.name){if(Q&&z)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!O,useCentrifugeSupport:z,hasCentrifugeChannel:!!T,hasMethods:!!q.current,hasDataName:!!U?.name});return}let K=Object.keys(q.current??{}).map((_)=>{let F=`pie${_}_${U.name}_${T}`;if(Q)console.log(`[PieCard] Centrifuge subscribing to channel: ${F}`);let{subscription:x,createdHere:k}=CU(O,F,{recoverable:!0,positioned:!0}),MZ=(d)=>{if(Q)console.log(`[PieCard] Centrifuge received data on ${F}:`,d.data);q.current?.[_]?.(d.data)},p=(d)=>{if(EU(d))console.warn(`[PieCard] Centrifuge channel ${F} is not `+"recoverable — enable history on the server "+"namespace for exact replay; relying on resync fallback only.");if(jU(d)){if(Q)console.log(`[PieCard] Centrifuge recovery gap on ${F}; requesting resync`);V.current?.({channel:F,reason:"gap"})}};return x.on("publication",MZ),x.on("subscribed",p),x.subscribe(),{subscription:x,createdHere:k,onPublication:MZ,onSubscribed:p}});return()=>{K.forEach(({subscription:_,createdHere:F,onPublication:x,onSubscribed:k})=>{if(Q)console.log("[PieCard] Centrifuge unsubscribing from channel");if(_.off("publication",x),_.off("subscribed",k),F)_.unsubscribe(),O.removeSubscription(_)})}},[O,T,U.name,z]),f.useEffect(()=>{if(!A||!J||!U.name){if(Q&&J)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!A,useMittSupport:J,hasMethods:!!q.current,hasDataName:!!U?.name});return}let w=Object.keys(q.current??{}),K={};return w.forEach((_)=>{let F=`pie${_}_${U.name}`,x=(k)=>{if(Q)console.log(`[PieCard] Mitt registering event: ${F}`);q.current?.[_]?.(k)};K[F]=x,A.on(F,x)}),()=>{Object.entries(K).forEach(([_,F])=>{if(Q)console.log(`[PieCard] Mitt unregistering event: ${_}`);A.off(_,F)})}},[A,U.name,J]),Q)console.log("[PieCard] Rendering complete, returning children");if(X!==void 0&&!W)return $Z.jsxs($Z.Fragment,{children:[$Z.jsx("input",{type:"hidden",name:U.name,value:JSON.stringify(X)}),$]});return $},P=GH;var uU=require("react"),t=new Map;function cU(Z,U){return U.catch(()=>{if(t.get(Z)===U)t.delete(Z)}),t.set(Z,U),U}function jZ(Z,U){return uU.lazy(()=>{if(t.has(U))return t.get(U);return cU(U,Z().then(($)=>$))})}var lU=async(Z,U)=>{if(!U)return;if(t.has(Z))return t.get(Z);return cU(Z,U().then(($)=>$))};var S=M("@swarm.ing/pieui:component-registry",()=>new Map),YH=(Z)=>{if(!Z.name)throw Error("Component registration requires a name");if(!Z.component&&!Z.loader)throw Error(`Component "${Z.name}" requires component or loader`);let U={name:Z.name,component:Z.component,loader:Z.loader,metadata:Z.metadata,fallback:Z.fallback,isLazy:!1};if(!U.component&&U.loader)U.component=jZ(U.loader,Z.name),U.isLazy=!0;return U};function I(Z){let U=YH(Z);return S.set(U.name,U),U.component}var iU=(Z)=>{Z.forEach((U)=>I(U))},sU=(Z)=>{S.delete(Z)},rU=(Z)=>{return S.has(Z)},aU=(Z)=>{return S.get(Z)?.metadata},HZ=(Z)=>{return S.get(Z)},nU=()=>{return Array.from(S.keys())},tU=()=>{return S.size},HU=()=>Array.from(S.values()).filter((Z)=>Z.isLazy&&typeof Z.loader==="function").map((Z)=>Z.name),zU=(Z)=>{let U=S.get(Z);if(!U?.isLazy||typeof U.loader!=="function")return;return lU(Z,U.loader)},oU=!1,eU=()=>{if(oU||typeof window>"u")return;oU=!0;let Z=navigator.connection;if(Z?.saveData)return;if(Z?.effectiveType&&["slow-2g","2g"].includes(Z.effectiveType))return;let U=HU(),$="requestIdleCallback"in window?(z)=>window.requestIdleCallback(z,{timeout:2000}):(z)=>window.setTimeout(z,300),H=(z)=>{if(z>=U.length)return;$(()=>{Promise.resolve().then(()=>zU(U[z])).catch(()=>{}).finally(()=>H(z+1))})};H(0)};var DZ=require("react");var Z$=require("react");var EZ=require("react/jsx-runtime"),qH=M("@swarm.ing/pieui:context:fallback",()=>Z$.createContext(EZ.jsx(EZ.Fragment,{}))),C=qH;var U$=require("react");var BH=M("@swarm.ing/pieui:context:lazyError",()=>U$.createContext(void 0)),o=BH;var CZ=require("react"),$$=require("react/jsx-runtime"),WH=2,QH=400;class zZ extends CZ.Component{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(Z){if(this.props.onError?.(Z),this.state.attempt<WH){let U=QH*(this.state.attempt+1);this.timer=setTimeout(()=>{this.setState(($)=>({failed:!1,attempt:$.attempt+1}))},U)}}componentDidUpdate(Z){if(Z.name!==this.props.name&&this.state.attempt!==0)this.setState({failed:!1,attempt:0})}componentWillUnmount(){if(this.timer)clearTimeout(this.timer)}render(){if(this.state.failed)return this.props.fallback;return $$.jsx(CZ.Suspense,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}var yZ=require("react/jsx-runtime");function _H({uiConfig:Z,setUiAjaxConfiguration:U}){let $=DZ.useContext(C),H=DZ.useContext(o),z=u();if(z)console.log("[UI] Rendering component:",Z.card),console.log("[UI] Component data:",Z.data),console.log("[UI] Component content:",Z.content),console.log("[UI] Has setUiAjaxConfiguration:",!!U);let J=HZ(Z.card);if(!J?.component){if(z)console.warn(`[UI] Component not found in registry: ${Z.card}`),console.log("[UI] Returning fallback component");return $}if(z)console.log("[UI] Found component in registry:",{name:J.name,isLazy:J.isLazy,hasMetadata:!!J.metadata});let T=J.component,G=yZ.jsx(T,{data:Z.data,content:Z.content,setUiAjaxConfiguration:U});if(J.isLazy){if(z)console.log("[UI] Rendering lazy component with Suspense:",J.name);return yZ.jsx(zZ,{name:J.name,fallback:J.fallback?yZ.jsx(J.fallback,{}):$,onError:H,children:G})}if(z)console.log("[UI] Rendering component directly:",J.name);return G}var j=DZ.memo(_H);var JU=require("react");var H$=require("react");var VH=M("@swarm.ing/pieui:context:uiRenderer",()=>H$.createContext(null)),y=VH;var KZ=require("react/jsx-runtime");function z$({uiConfig:Z,setUiAjaxConfiguration:U}){let $=JU.useContext(C),H=JU.useContext(o),z=u();if(z)console.log("[UILoading] Rendering fallback for:",Z.card),console.log("[UILoading] Component data:",Z.data),console.log("[UILoading] Component content:",Z.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!U);let J=HZ(Z.card);if(!J?.component){if(z)console.warn(`[UILoading] Component not found in registry: ${Z.card}`),console.log("[UILoading] Returning fallback component");return $}if(z)console.log("[UILoading] Found component in registry:",{name:J.name,isLazy:J.isLazy,hasMetadata:!!J.metadata,hasFallback:!!J.fallback});if(J.fallback){if(z)console.log("[UILoading] Rendering fallback for:",J.name);let X=J.fallback;return KZ.jsx(X,{})}if(z)console.log("[UILoading] No fallback, rendering full component:",J.name);let T=J.component,G=KZ.jsx(y.Provider,{value:z$,children:KZ.jsx(T,{data:Z.data,content:Z.content,setUiAjaxConfiguration:U})});if(J.isLazy)return KZ.jsx(zZ,{name:J.name,fallback:$,onError:H,children:G});return G}var xZ=z$;var J$=require("react");var fZ=require("react/jsx-runtime"),DH=({data:Z,content:U,setUiAjaxConfiguration:$})=>{let{name:H,sx:z}=Z,J=J$.useContext(y)??j;return fZ.jsx(P,{card:H,data:Z,children:fZ.jsx("div",{style:z,id:H,children:U.map((T,G)=>{return fZ.jsx(J,{uiConfig:T,setUiAjaxConfiguration:$},`children-${G}`)})})})},T$=DH;var X$=I({name:"SequenceCard",component:T$,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var G$=require("react");var TU=require("react/jsx-runtime"),KH=({data:Z,content:U,setUiAjaxConfiguration:$})=>{let{name:H}=Z,z=G$.useContext(y)??j;return TU.jsx(P,{card:H,data:Z,children:U.map((J,T)=>{return TU.jsx(z,{uiConfig:J,setUiAjaxConfiguration:$},`children-${T}`)})})},Y$=KH;var q$=I({name:"UnionCard",component:Y$,metadata:{author:"Swarm.ing",description:"Renders one of many components"}});var bZ=require("react"),B$=OU(require("html-react-parser"));var b=require("react");function OH(){let Z=new AudioContext,U=Z.createOscillator(),$=U.connect(Z.createMediaStreamDestination());U.start();let H=$.stream.getAudioTracks()[0];return H.enabled=!1,H}function XU(Z=null,U){let[$,H]=b.useState(!1),z=b.useRef(null),J=b.useRef(null),T=b.useRef(null),G=b.useCallback(async(q,V=!0)=>{if(z.current)X();let B=new RTCPeerConnection;if(B.onconnectionstatechange=()=>{if(B.connectionState==="connected")H(!0);else if(["disconnected","failed","closed"].includes(B.connectionState))H(!1)},B.ontrack=(_)=>{if(Z)Z.srcObject=_.streams[0]},V){let _=await navigator.mediaDevices.getUserMedia({audio:!0});B.addTrack(_.getTracks()[0],_)}else{let _=OH();B.addTrack(_)}let W=B.createDataChannel("oai-events");J.current=W,T.current=new Promise((_)=>{W.addEventListener("open",()=>{_()})});let D=await B.createOffer();await B.setLocalDescription(D);let K=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:D.sdp,headers:{Authorization:`Bearer ${q}`,"Content-Type":"application/sdp"}})).text();await B.setRemoteDescription({type:"answer",sdp:K}),z.current=B,await T.current},[Z]),X=b.useCallback(()=>{let q=J.current;if(q)q.close();z.current?.getSenders()?.forEach((V)=>V.track?.stop()),z.current?.close(),H(!1),z.current=null,J.current=null,T.current=null},[Z]),Y=b.useCallback((q)=>{let V=J.current;if(!V){console.error("Data channel is not ready",q);return}let B=new Date().toLocaleTimeString();if(q.event_id=q.event_id||crypto.randomUUID(),V.send(JSON.stringify(q)),!q.timestamp)q.timestamp=B;U?.(q)},[U,Z]),Q=b.useCallback((q)=>{if(!J.current){console.error("Data channel is not ready");return}let B=()=>{Y({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:q}]}}),Y({type:"response.create"})};if(T.current)T.current.then(B);else B()},[U,Z]);return b.useEffect(()=>{let q=J.current;if(!q)return;let V=(B)=>{let W=JSON.parse(B.data);if(!W.timestamp)W.timestamp=new Date().toLocaleTimeString();U?.(W)};return q.addEventListener("message",V),()=>{q.removeEventListener("message",V)}},[U,Z]),{isSessionActive:$,startSession:G,stopSession:X,sendTextMessage:Q}}var Q$=require("react/jsx-runtime"),FH=({data:Z})=>{let{html:U,useSocketioSupport:$,useCentrifugeSupport:H,useMittSupport:z,centrifugeChannel:J}=Z,[T,G]=bZ.useState(U),{isSessionActive:X,startSession:Y,sendTextMessage:Q}=XU(null,(W)=>{if(console.log(W.type,W.type==="response.output_text.delta"&&W.delta),W.type==="response.output_text.delta"&&W.delta)G((D)=>D+W.delta)});return bZ.useEffect(()=>{G(U)},[U]),Q$.jsx(P,{card:"HTMLEmbedCard",data:Z,methods:{update:(W)=>{G(W.value)},generateUsingAI:async(W)=>{try{if(!X&&W.token)await Y(W.token,!1);Q(W.prompt)}catch(D){console.error("Failed to generate using AI",D)}},initializeAI:async(W)=>{if(!X&&W.token)await Y(W.token,!1)}},useCentrifugeSupport:H,useSocketioSupport:$,useMittSupport:z,centrifugeChannel:J,children:B$.default(T)})},W$=FH;var _$=I({name:"HTMLEmbedCard",component:W$,metadata:{author:"Swarm.ing"}});var kZ=require("react");var GU=require("react/jsx-runtime"),IH=({data:Z})=>{let{name:U,value:$,useSocketioSupport:H,useCentrifugeSupport:z,useMittSupport:J,centrifugeChannel:T}=Z,[G,X]=kZ.useState($);return kZ.useEffect(()=>{X($)},[$]),GU.jsx(P,{card:"HiddenCard",data:Z,useSocketioSupport:H,useCentrifugeSupport:z,useMittSupport:J,centrifugeChannel:T,methods:{update:({value:Y})=>{X(Y)}},children:GU.jsx("input",{type:"hidden",id:U,name:U,value:G})})},V$=IH;var D$=I({name:"HiddenCard",component:V$,metadata:{author:"Swarm.ing"}});var OZ=require("react");var K$=require("react");var MH=M("@swarm.ing/pieui:context:navigate",()=>K$.createContext(void 0)),g=MH;var SZ=require("react/jsx-runtime"),PH=({data:Z})=>{let{url:U}=Z,$=OZ.useContext(g),H=OZ.useContext(C);return OZ.useEffect(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(U))window.location.href=U;else $?.(U)},[U,$]),SZ.jsx(SZ.Fragment,{children:H})},O$=PH;var F$=I({name:"AutoRedirectCard",component:O$,metadata:{author:"Swarm.ing"}});var i=require("react-toastify"),mZ=require("react-toastify");var TZ=require("react");var JZ=require("react/jsx-runtime"),AH={bounce:i.Bounce,slide:i.Slide,zoom:i.Zoom,flip:i.Flip},wH=(Z)=>{let U={...Z,type:Z.alertType,transition:Z.transition?AH[Z.transition]:void 0,position:Z.position??"bottom-right",autoClose:Z.autoClose??3000,style:{backgroundColor:"black",...Z.sx}};mZ.toast(Z.message,U)},NH=(Z)=>{console.log("Log event",Z)},LH=(Z)=>{if(typeof window>"u"||!window.Notification){console.warn("[IOEventsCard] Notifications API is not available");return}let U=()=>{try{new window.Notification(Z.title,{body:Z.message??Z.subtitle,icon:Z.icon,silent:Z.silent})}catch(H){console.error("[IOEventsCard] Failed to show notification",H)}},$=window.Notification.permission;if($==="granted"){U();return}if($==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((H)=>{if(H==="granted")U()})},RH=({data:Z})=>{let{useCentrifugeSupport:U,useSocketioSupport:$,useMittSupport:H,centrifugeChannel:z}=Z,J=TZ.useContext(g),T=TZ.useRef(J);T.current=J;let G=TZ.useMemo(()=>({alert:wH,log:NH,push:LH,redirect:(X)=>{if(X.to){let Y=X.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(Y))window.location.href=Y;else T.current?.(Y)}else window.location.reload()},reload:(X)=>{if(X.to){let Y=X.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(Y))window.location.href=Y;else T.current?.(Y)}else window.location.reload()}}),[]);return JZ.jsx(JZ.Fragment,{children:JZ.jsx(P,{card:"IOEventsCard",data:Z,useCentrifugeSupport:U,useSocketioSupport:$,useMittSupport:H,centrifugeChannel:z,methods:G,children:JZ.jsx(mZ.ToastContainer,{})})})},I$=RH;var M$=I({name:"IOEventsCard",component:I$,metadata:{author:"Swarm.ing"}});var FZ=require("react");var YU=require("react/jsx-runtime"),jH=({data:Z})=>{let{name:U,key:$,value:H,useSocketioSupport:z,useCentrifugeSupport:J,useMittSupport:T,centrifugeChannel:G}=Z,[X,Y]=FZ.useState(H);return FZ.useEffect(()=>{Y(H)},[H]),FZ.useEffect(()=>{if(typeof window>"u")return;sessionStorage.setItem($,X)},[$,X]),YU.jsx(P,{card:"SessionStorageCard",data:Z,useSocketioSupport:z,useCentrifugeSupport:J,useMittSupport:T,centrifugeChannel:G,methods:{update:({value:Q})=>{Y(Q)},remove:()=>{sessionStorage.removeItem($),Y("")}},children:YU.jsx("input",{type:"hidden",id:U,name:U,value:X})})},P$=jH;var A$=I({name:"SessionStorageCard",component:P$,metadata:{author:"PieData"}});var IZ=require("react");var qU=require("react/jsx-runtime"),EH=({data:Z})=>{let{name:U,key:$,value:H,useSocketioSupport:z,useCentrifugeSupport:J,useMittSupport:T,centrifugeChannel:G}=Z,[X,Y]=IZ.useState(H);return IZ.useEffect(()=>{Y(H)},[H]),IZ.useEffect(()=>{if(typeof window>"u")return;localStorage.setItem($,X)},[$,X]),qU.jsx(P,{card:"DeviceStorageCard",data:Z,useSocketioSupport:z,useCentrifugeSupport:J,useMittSupport:T,centrifugeChannel:G,methods:{update:({value:Q})=>{Y(Q)},remove:()=>{localStorage.removeItem($),Y("")}},children:qU.jsx("input",{type:"hidden",id:U,name:U,value:X})})},w$=EH;var N$=I({name:"DeviceStorageCard",component:w$,metadata:{author:"PieData"}});var E=require("react");var BU=require("react/jsx-runtime"),CH=({data:Z,content:U})=>{let{useLoader:$,noReturn:H,returnType:z,useSocketioSupport:J,useCentrifugeSupport:T,useMittSupport:G,centrifugeChannel:X}=Z,Y=E.useContext(C),Q=E.useContext(y)??j,[q,V]=E.useState(!1),[B,W]=E.useState(null),D=E.useRef(U),O=E.useContext(h),A=E.useCallback((_)=>{if(_===null)V(!0);else if(V(!1),!H)D.current=_;if(!H)W(_)},[H]),w=E.useCallback((_)=>{D.current=_.content,W(_.content)},[]),K=E.useCallback((_)=>{if(_===null)V(!0);else if(V(!1),!H)for(let F of _)O?.emit(F.name,F.data)},[H,O]);if(E.useEffect(()=>{W(U),V(!1)},[U]),!B&&$)return Y;return BU.jsx(P,{card:"AjaxGroupCard",data:Z,methods:{changeContent:w},useSocketioSupport:J,useCentrifugeSupport:T,useMittSupport:G,centrifugeChannel:X,children:BU.jsx(Q,{uiConfig:B??D.current,setUiAjaxConfiguration:z==="events"?K:A})})},L$=CH;var R$=I({name:"AjaxGroupCard",component:L$,metadata:{author:"Swarm.ing",description:"Group card with AJAX support"}});var WU=require("react");var vZ=require("react/jsx-runtime"),yH=({data:Z,content:U,setUiAjaxConfiguration:$})=>{let{name:H,url:z,sx:J}=Z,T=WU.useContext(g),G=WU.useContext(y)??j;return vZ.jsx(P,{card:H,data:Z,children:vZ.jsx("div",{style:J,id:H,onClick:(Y)=>{if(z)if(Y.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(z))window.location.href=z;else T?.(z)},children:vZ.jsx(G,{setUiAjaxConfiguration:$,uiConfig:U})})})},j$=yH;var E$=I({name:"BoxCard",component:j$,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var C$=require("react");var hZ=require("react/jsx-runtime"),xH=({data:Z,content:U,setUiAjaxConfiguration:$})=>{let{name:H,sx:z}=Z,J=C$.useContext(y)??j;return hZ.jsx(P,{card:H,data:Z,children:hZ.jsx("div",{style:z,id:H,children:U.map((T,G)=>{return hZ.jsx(J,{uiConfig:T,setUiAjaxConfiguration:$},`children-${G}`)})})})},y$=xH;var x$=I({name:"OneOfCard",component:y$,metadata:{author:"Swarm.ing",description:"Different variants"}});var GZ=require("react"),YZ=require("@tanstack/react-query");var s=require("react");var dZ=require("react"),gZ=new Map,pZ=new Map;function uZ(Z,U){let $=`${Z}::${U}`,H=Z?gZ.get($):void 0,[z,J]=dZ.useState(H??null);return dZ.useEffect(()=>{if(!Z)return;if(gZ.has($)){J(gZ.get($));return}let T=pZ.get($);if(!T)T=fetch(Z+`api/support/${U}`,{method:"GET"}).then((X)=>X.json()).then((X)=>{return gZ.set($,X),pZ.delete($),X}).catch((X)=>{throw pZ.delete($),X}),pZ.set($,T);let G=!1;return T.then((X)=>{if(!G)J(X)}).catch(()=>{}),()=>{G=!0}},[Z,U,$]),z}function XZ(Z,U){if(U==="up")return{state:"up",signal:Z==="down"?"restored":null};return{state:"down",signal:Z==="up"?"lost":null}}var fH=({children:Z})=>{let U=s.useContext(v),$=AZ(),H=uZ($,"socketIO"),z=e(),J=ZZ(),T=s.useRef(z);T.current=z;let G=s.useRef(J);G.current=J;let X=s.useRef("initial"),Y=(Q)=>{if(N.isClient())N.setSid(Q.sid),SU(),console.log(`SocketIO initialized: ${N.readSid()}`)};return s.useEffect(()=>{if(!U||!H)return;let Q=()=>{let{state:V,signal:B}=XZ(X.current,"up");if(X.current=V,B==="restored")G.current?.("socketio");console.log("SocketIO connected")},q=(V)=>{if(console.log(`SocketIO disconnected: ${V}`),U.connect(),V==="io client disconnect")return;let{state:B,signal:W}=XZ(X.current,"down");if(X.current=B,W==="lost")T.current?.("socketio",V)};return U.on("pieinit",Y),U.on("connect",Q),U.on("disconnect",q),U.connect(),()=>{U.off("pieinit",Y),U.off("connect",Q),U.off("disconnect",q),U.disconnect()}},[U,H]),Z},cZ=fH;var r=require("react");var bH=({children:Z})=>{let U=r.useContext(m),$=AZ(),H=uZ($,"centrifuge"),z=e(),J=ZZ(),T=r.useRef(z);T.current=z;let G=r.useRef(J);G.current=J;let X=r.useRef("initial");return r.useEffect(()=>{if(!U||!H)return;let Y=(V)=>{let{state:B,signal:W}=XZ(X.current,"down");if(X.current=B,W==="lost")T.current?.("centrifuge",V)},Q=()=>{let{state:V,signal:B}=XZ(X.current,"up");if(X.current=V,B==="restored")G.current?.("centrifuge");console.log("Centrifuge connected")},q=(V)=>{console.log("Centrifuge disconnected:",V),Y(V)};return U.on("connecting",Y),U.on("connected",Q),U.on("disconnected",q),U.connect(),()=>{U.off("connecting",Y),U.off("connected",Q),U.off("disconnected",q),U.disconnect()}},[U,H]),Z},lZ=bH;var k$=require("axios-date-transformer");var b$=require("react/jsx-runtime");function f$(Z,U,$){if(!U)return $;let H=Z.replace(/^\//,""),z=U[H];if(!z)return $;return b$.jsx(xZ,{uiConfig:z})}var L=require("react/jsx-runtime"),kH=({location:Z,fallback:U,piecache:$,onError:H,queryOptions:z,disableGlobalForm:J})=>{let T=WZ(),G=wZ(),X=u(),Y=GZ.useMemo(()=>k$.createAxiosDateTransformer({baseURL:T||""}),[T]),Q=GZ.useMemo(()=>c(),[]),q=GZ.useMemo(()=>T?RZ(T):null,[T]),V=GZ.useMemo(()=>T?LZ(T,G):null,[T,G]),{data:B,isLoading:W,error:D}=YZ.useQuery({queryKey:["uiConfig",Z.pathname+Z.search,T],enabled:!!T,queryFn:async()=>{let A=new URLSearchParams(Z.search);A.set("__pieroot","web");let w="/api/content"+Z.pathname+"?"+A.toString();if(X)console.log("[PieRoot] Fetching UI configuration from:",w);let K=await Y.get(w,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(X)console.log("[PieRoot] Received UI configuration:",K.data);return K.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(A)=>Math.min(1000*2**A,30000),...z}),O=f$(Z.pathname,$,U);if(!T)return O??null;if(X)console.log("[PieRoot] Rendering with location:",Z),console.log("[PieRoot] API_SERVER:",T),console.log("[PieRoot] CENTRIFUGE_SERVER:",G),console.log("[PieRoot] Fallback provided:",!!U),console.log("[PieRoot] Piecache provided:",!!$);if(D){if(X)console.error("[PieRoot] Error fetching UI configuration:",D),console.error("[PieRoot] Error details:",{message:D.message,status:D.response?.status,data:D.response?.data});return H?.(D),O}if(W||!B){if(X)console.log("[PieRoot] Loading state:",{isLoading:W,hasUiConfiguration:!!B});return O}if(X)console.log("[PieRoot] UI configuration loaded successfully:",B),console.log("[PieRoot] Rendering UI with configuration");return L.jsx(h.Provider,{value:Q,children:L.jsx(v.Provider,{value:q,children:L.jsx(m.Provider,{value:V,children:L.jsx(C.Provider,{value:U??L.jsx(L.Fragment,{}),children:L.jsx(cZ,{children:L.jsx(lZ,{children:J?L.jsx(j,{uiConfig:B}):L.jsx("form",{id:"piedata_global_form",action:T+"api/process"+Z.pathname,method:"post",encType:"multipart/form-data",children:L.jsx(j,{uiConfig:B})})})})})})})})},SH=(Z)=>{let U=GZ.useMemo(()=>new YZ.QueryClient,[]),$=Z.queryClient??U;return L.jsx(g.Provider,{value:Z.onNavigate,children:L.jsx(a.Provider,{value:Z.config,children:L.jsx(o.Provider,{value:Z.onError,children:L.jsx(YZ.QueryClientProvider,{client:$,children:L.jsx(kH,{...Z})})})})})},oZ=SH;var qZ=require("react"),iZ=require("@tanstack/react-query");var R=require("react/jsx-runtime"),mH=({location:Z,fallback:U,children:$,disableGlobalForm:H})=>{let z=WZ(),J=wZ(),T=u(),G=qZ.useMemo(()=>c(),[]),X=qZ.useMemo(()=>z?RZ(z):null,[z]),Y=qZ.useMemo(()=>z?LZ(z,J):null,[z,J]);if(T)console.log("[PieRoot] Rendering with location:",Z),console.log("[PieRoot] API_SERVER:",z),console.log("[PieRoot] CENTRIFUGE_SERVER:",J),console.log("[PieRoot] Fallback provided:",!!U);return R.jsx(h.Provider,{value:G,children:R.jsx(v.Provider,{value:X,children:R.jsx(m.Provider,{value:Y,children:R.jsx(C.Provider,{value:U??R.jsx(R.Fragment,{}),children:R.jsx(cZ,{children:R.jsx(lZ,{children:H?$:R.jsx("form",{id:"piedata_global_form",action:z+"api/process"+Z.pathname,method:"post",encType:"multipart/form-data",children:$})})})})})})})},vH=(Z)=>{let[U]=qZ.useState(()=>new iZ.QueryClient),$=Z.queryClient??U;return R.jsx(g.Provider,{value:Z.onNavigate,children:R.jsx(a.Provider,{value:Z.config,children:R.jsx(o.Provider,{value:Z.onError,children:R.jsx(iZ.QueryClientProvider,{client:$,children:R.jsx(mH,{...Z})})})})})},S$=vH;var sZ=require("react");var QU=require("react/jsx-runtime"),hH=QU.jsx("div",{style:{padding:16,fontFamily:"system-ui, sans-serif",color:"#888"},children:"Loading card…"}),gH=({apiServer:Z,pathname:U="/",search:$="",centrifugeServer:H,previewEvents:z=!1,fallback:J,enableRenderingLog:T=!1})=>{let G=Z??(typeof process<"u"?process.env.PIE_API_SERVER:void 0)??"";sZ.useEffect(()=>{if(!z||!G||typeof window>"u"||typeof EventSource>"u")return;let Q=G.endsWith("/")?G:`${G}/`,q=new EventSource(`${Q}api/preview/events`),V=c();return q.onmessage=(B)=>{try{let W=JSON.parse(B.data);if(W&&typeof W.name==="string")V.emit(W.name,W.payload)}catch{}},()=>q.close()},[z,G]);let X=sZ.useMemo(()=>({apiServer:G,centrifugeServer:H,enableRenderingLog:T,pageProcessor:"web"}),[G,H,T]);return QU.jsx(oZ,{location:{pathname:U,search:$},config:X,fallback:J??hH,onNavigate:(Q)=>{if(typeof window<"u")window.history.pushState(null,"",Q)}})},m$=gH;var v$=require("clsx"),h$=require("tailwind-merge");function g$(...Z){return h$.twMerge(v$.clsx(Z))}var p$=()=>{hU(),N.submitGlobalForm()};var d$=(Z,U)=>`${Z}${NZ}${U}`;
2
+ var s$=Object.create;var{getPrototypeOf:i$,defineProperty:WZ,getOwnPropertyNames:KU,getOwnPropertyDescriptor:r$}=Object,FU=Object.prototype.hasOwnProperty;var OU=(Z,U,$)=>{$=Z!=null?s$(i$(Z)):{};let z=U||!Z||!Z.__esModule?WZ($,"default",{value:Z,enumerable:!0}):$;for(let H of KU(Z))if(!FU.call(z,H))WZ(z,H,{get:()=>Z[H],enumerable:!0});return z},DU=new WeakMap,a$=(Z)=>{var U=DU.get(Z),$;if(U)return U;if(U=WZ({},"__esModule",{value:!0}),Z&&typeof Z==="object"||typeof Z==="function")KU(Z).map((z)=>!FU.call(U,z)&&WZ(U,z,{get:()=>Z[z],enumerable:!($=r$(Z,z))||$.enumerable}));return DU.set(Z,U),U};var n$=(Z,U)=>{for(var $ in U)WZ(Z,$,{get:U[$],enumerable:!0,configurable:!0,set:(z)=>U[$]=()=>z})};var lz={};n$(lz,{usePieEmit:()=>jU,useOnLinkRestored:()=>ZZ,useOnLinkLost:()=>e,useAjaxSubmits:()=>uU,useAjaxSubmit:()=>dU,unregisterComponent:()=>rU,trackLazy:()=>jZ,submitGlobalForm:()=>d$,registry:()=>S,registerPieComponent:()=>O,registerMultipleComponents:()=>iU,readAjaxKeyAsync:()=>$U,readAjaxKey:()=>UU,preloadComponent:()=>JU,prefetchLazyComponents:()=>Z$,pieName:()=>u$,parseDepName:()=>VZ,hasComponent:()=>aU,getRegistrySize:()=>eU,getRegistryEntry:()=>zZ,getLazyComponentNames:()=>HU,getEmitter:()=>d,getComponentMeta:()=>nU,getAllRegisteredComponents:()=>tU,discoverAjaxEndpoints:()=>zU,cn:()=>p$,UnionCard:()=>W$,UIRendererContext:()=>y,UILoading:()=>yZ,UI:()=>j,SocketIOContext:()=>v,SessionStorageCard:()=>w$,SequenceCard:()=>G$,PieRoot:()=>oZ,PiePreviewRoot:()=>v$,PieConfigContext:()=>a,PieCard:()=>M,PieBaseRoot:()=>m$,PIEBREAK:()=>NZ,OneOfCard:()=>f$,MittContext:()=>h,IOEventsCard:()=>P$,HiddenCard:()=>K$,HTMLEmbedCard:()=>V$,FallbackContext:()=>x,DeviceStorageCard:()=>L$,CentrifugeIOContext:()=>m,BoxCard:()=>C$,AutoRedirectCard:()=>I$,AjaxGroupCard:()=>j$});module.exports=a$(lz);var f=require("react");var PZ=require("react");var nZ=globalThis,I=(Z,U)=>{let $=Symbol.for(Z);if(!($ in nZ))nZ[$]=U();return nZ[$]};var a=I("@swarm.ing/pieui:context:pieConfig",()=>PZ.createContext(null)),c=()=>{let Z=PZ.useContext(a);if(!Z)throw Error("usePieConfig must be used within PieConfigProvider");return Z},qZ=()=>{let{apiServer:Z}=c();return Z},AZ=qZ,wZ=()=>{let{centrifugeServer:Z}=c();return Z};var p=()=>{let{enableRenderingLog:Z}=c();return Z},IU=p;var e=()=>{let{onLinkLost:Z}=c();return Z},ZZ=()=>{let{onLinkRestored:Z}=c();return Z},NZ="__piedemo__";var PU=require("react"),tZ=require("centrifuge");var MU=I("@swarm.ing/pieui:centrifuge-cache",()=>new Map),LZ=(Z,U)=>{if(!U)return null;let $=`${Z}::${U}`,z=MU.get($);if(z)return z;async function H(){let T=await fetch(Z+"api/centrifuge/gen_token",{credentials:"include"});if(!T.ok){if(T.status===401||T.status===403)throw new tZ.Centrifuge.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${T.status}`)}return(await T.json()).token}let J=new tZ.Centrifuge(U,{getToken:H});return MU.set($,J),J},t$=I("@swarm.ing/pieui:context:centrifuge",()=>PU.createContext(null)),m=t$;var wU=require("socket.io-client"),NU=require("react");var AU=I("@swarm.ing/pieui:socket-cache",()=>new Map),RZ=(Z)=>{let U=AU.get(Z);if(U)return U;let $=wU.io(Z,{autoConnect:!1,transports:["websocket"]});return AU.set(Z,$),$},e$=I("@swarm.ing/pieui:context:socket",()=>NU.createContext(null)),v=e$;var LU=OU(require("mitt")),UZ=require("react");function d(){return I("@swarm.ing/pieui:mitt-emitter",()=>LU.default())}var RU=I("@swarm.ing/pieui:context:mitt",()=>UZ.createContext(null));function jU(Z){let U=UZ.useContext(RU);return UZ.useCallback(($,z)=>{(U??d()).emit(`pie${$}_${Z}`,z)},[Z,U])}var h=RU;function EU(Z){return Z.wasRecovering===!0&&Z.recovered===!1}function CU(Z){return Z.recoverable===!1}function xU(Z,U,$){let z=Z.getSubscription(U);if(z)return{subscription:z,createdHere:!1};return{subscription:Z.newSubscription(U,$),createdHere:!0}}var Zz=(Z)=>{let U=document.cookie?document.cookie.split(";"):[];for(let $ of U){let z=$.indexOf("=");if((z===-1?$:$.slice(0,z)).trim()===Z){let J=z===-1?"":$.slice(z+1).trim();try{return decodeURIComponent(J)}catch{return J}}}return null},Uz={isClient(){return typeof window<"u"&&typeof document<"u"},readSid(){return typeof window>"u"?void 0:window.sid},setSid(Z){if(typeof window<"u")window.sid=Z},readWebStorage(Z,U){return(Z==="local"?window.localStorage:window.sessionStorage).getItem(U)},readCookie:Zz,readUrlParams(Z){return new URLSearchParams(window.location.search).getAll(Z)},readDomInput(Z){let U=document.getElementsByName(Z);if(!U.length)return null;let $=U[0];if($ instanceof HTMLInputElement){if($.type==="file"&&$.files)return Array.from($.files);return[$.value]}if($ instanceof HTMLTextAreaElement)return[$.value];return[]},submitGlobalForm(){if(typeof document>"u")return;let Z=document.getElementById("piedata_global_form");Z&&Z.submit()}},yU=Uz;var $z={};function n(){return $z}var fU=new Map;var bU=(Z)=>{return fU.has(Z)?fU.get(Z):null};var kU,zz={isClient(){return!0},readSid(){return kU},setSid(Z){kU=Z},readWebStorage(Z,U){let $=n(),z=Z==="local"?$.storage:$.sessionStorage;return z?z.getItem(U):null},async readWebStorageAsync(Z,U){let $=n(),z=Z==="local"?$.asyncStorage:$.asyncSessionStorage;if(z)return z.getItem(U);let H=Z==="local"?$.storage:$.sessionStorage;return H?H.getItem(U):null},readCookie(Z){let U=n();return U.getCookie?U.getCookie(Z):null},readUrlParams(Z){let U=n();return U.getRouteParams?U.getRouteParams(Z):[]},readDomInput(Z){let U=n();return U.getInput?U.getInput(Z):bU(Z)},submitGlobalForm(){n().submitForm?.()}},SU=zz;var Hz=typeof navigator<"u"&&navigator.product==="ReactNative",Jz=Hz?SU:yU,N=Jz;var QZ=I("@swarm.ing/pieui:sid-state",()=>({promise:null,resolve:null}));function mU(){QZ.resolve?.()}function eZ(){if(!N.isClient())return Promise.resolve();if(N.readSid()!==void 0)return Promise.resolve();if(!QZ.promise)QZ.promise=new Promise((Z)=>{QZ.resolve=()=>{Z()}});return QZ.promise}var ZU=require("react");var Tz=["localStorage","sessionStorage","cookie","url","telegram:cloud","telegram:secure"],Xz=new Set(["telegram:cloud","telegram:secure"]),_Z=new Map,vU=(Z,U)=>{_Z.set(Z,U)},hU=(Z)=>{_Z.delete(Z)},gU=(Z="piedata_global_form")=>{let U;if(typeof Z==="string"){if(typeof document>"u")return;U=document.getElementById(Z)}else U=Z;if(!U)return;let $=U.ownerDocument;for(let z of Array.from(U.getElementsByTagName("input")))if(z.getAttribute("data-pie-stored")!==null)z.remove();for(let[z,H]of _Z){let J=H();if(J instanceof Promise)continue;for(let T of J){if(typeof T!=="string")continue;let G=$.createElement("input");G.type="hidden",G.name=z,G.value=T,G.setAttribute("data-pie-stored","1"),U.appendChild(G)}}},VZ=(Z)=>{if(Z==="sid")return{source:"sid",key:"sid"};for(let U of Tz){let $=U+":";if(Z.startsWith($))return{source:U,key:Z.slice($.length)}}return{source:"dom",key:Z}},UU=(Z,U=!1)=>{let{source:$,key:z}=VZ(Z);if($==="sid"){let T=N.readSid();if(!T)throw Error("SocketIO isn't initialized properly");return[T]}if($==="localStorage"||$==="sessionStorage")try{let T=N.readWebStorage($==="localStorage"?"local":"session",z);if(T===null){if(U)console.warn(`No ${$} value found for key ${z}`);return[]}return[T]}catch(T){if(U)console.warn(`Failed to read ${$} key ${z}:`,T);return[]}if($==="cookie"){let T=N.readCookie(z);if(T===null){if(U)console.warn(`No cookie found for key ${z}`);return[]}return[T]}if($==="url"){let T=N.readUrlParams(z);if(!T.length&&U)console.warn(`No URL query param found for key ${z}`);return T}if(Xz.has($)){if(U)console.warn(`Source ${$} is async; use readAjaxKeyAsync (readAjaxKey returns [])`);return[]}let H=_Z.get(z);if(H){let T=H();if(T instanceof Promise){if(U)console.warn(`stored resolver for ${z} is async; use readAjaxKeyAsync (readAjaxKey returns [])`);return[]}return T}let J=N.readDomInput(z);if(J===null){if(U)console.warn(`No input found with name ${z}`);return[]}return J},Gz=(Z,U,$)=>{let z=window.Telegram?.WebApp,H=Z==="telegram:cloud"?z?.CloudStorage:z?.SecureStorage,J=Z==="telegram:cloud"?"Telegram CloudStorage":"Telegram SecureStorage";if(!H){if($)console.warn(`${J} is not available`);return Promise.resolve([])}return new Promise((T)=>{try{H.getItem(U,(G,X)=>{if(G){if($)console.warn(`Failed to read ${J} key ${U}:`,G);T([]);return}if(X==null||X===""){if($)console.warn(`No ${J} value found for key ${U}`);T([]);return}T([X])})}catch(G){if($)console.warn(`Failed to read ${J} key ${U}:`,G);T([])}})},$U=async(Z,U=!1)=>{let{source:$,key:z}=VZ(Z);if($==="telegram:cloud"||$==="telegram:secure")return Gz($,z,U);if(($==="localStorage"||$==="sessionStorage")&&N.readWebStorageAsync)try{let H=await N.readWebStorageAsync($==="localStorage"?"local":"session",z);if(H===null){if(U)console.warn(`No ${$} value found for key ${z}`);return[]}return[H]}catch(H){if(U)console.warn(`Failed to read ${$} key ${z}:`,H);return[]}if($==="dom"){let H=_Z.get(z);if(H)return H()}return UU(Z,U)},Yz=(Z)=>{if(!Z)return[];if(Array.isArray(Z))return Z.map(([U,$])=>[String(U),String($)]);if(typeof Z.forEach==="function"){let U=[];return Z.forEach(($,z)=>U.push([z,$])),U}return Object.entries(Z)},Bz=(Z)=>{let U=Z.filter(Boolean);if(U.length===0)return;if(U.length===1)return U[0];let $=AbortSignal.any;if(typeof $==="function")return $.call(AbortSignal,U);let z=new AbortController;for(let H of U){if(H.aborted){z.abort(H.reason);break}H.addEventListener("abort",()=>z.abort(H.reason),{once:!0})}return z.signal},Wz=(Z,U,$)=>{let z={method:"POST",credentials:"include"},H={},J=[U];for(let G of $){if(!G)continue;let{headers:X,signal:B,body:_,...W}=G;Object.assign(z,W);for(let[V,Q]of Yz(X))H[V.toLowerCase()]=Q;J.push(B)}if(z.body=Z,Object.keys(H).length>0)z.headers=H;let T=Bz(J);if(T)z.signal=T;return z},pU=(Z,U={},$=[],z,H)=>{let J=H?.renderingLogEnabled??!1,T=H?.timeout,G=H?.retryPolicy,X=G?.maxRetries??0,B=G?.baseDelay??1000,_=G?.retryOn??[502,503,504];if(J)console.log("Registering AJAX: ",z,U,$);return async(W={},V)=>{if(!N.isClient()){if(J)console.warn("getAjaxSubmit called on server, skipping DOM-dependent logic");return}let Q=H?.apiServer;if(!Q){if(J)console.warn("AJAX skipped: apiServer is missing");return}if(!z||!Z){if(J)console.warn("AJAX skipped: pathname or setUiAjaxConfiguration is missing");return}if($.includes("sid"))await eZ();let q=new FormData;for(let[D,P]of Object.entries({...U,...W}))q.append(D,P);for(let D of $){let{key:P}=VZ(D);for(let A of await $U(D,J))q.append(P,A)}let F=Q+"api/ajax_content"+z;Z(null);let w;for(let D=0;D<=X;D++){if(D>0){let Y=B*2**(D-1);if(J)console.log(`AJAX retry ${D}/${X} after ${Y}ms`);await new Promise((K)=>setTimeout(K,Y))}let P=T!=null?new AbortController:null,A=P&&setTimeout(()=>P.abort(),T);try{let Y=await fetch(F,Wz(q,P?.signal,[H?.fetchOptions,V]));if(A)clearTimeout(A);if(!Y.ok&&_.includes(Y.status)&&D<X){w=Error(`HTTP ${Y.status}`);continue}let C=(Y.headers.get("content-type")||"").includes("application/json");if(!!Y.body?.getReader&&!C){let r=Y.body.getReader(),MZ=new TextDecoder,k="";while(!0){let{done:rZ,value:c$}=await r.read();if(rZ)break;k+=MZ.decode(c$,{stream:!0});let VU=k.split(`
3
+ `);k=VU.pop()??"";for(let l$ of VU){let aZ=l$.trim();if(!aZ)continue;try{let o$=JSON.parse(aZ);Z([o$])}catch{if(J)console.warn("Failed to parse streamed line:",aZ)}}}if(k.trim())try{let rZ=JSON.parse(k);Z([rZ])}catch{if(J)console.warn("Failed to parse final streamed line:",k)}return{}}else{let r=await Y.json();return Z(r),r}}catch(Y){if(A)clearTimeout(A);if(w=Y,D<X)continue;if(J)console.error("AJAX request failed:",Y);return Z(null),Y}}if(J)console.error("AJAX request failed after retries:",w);return Z(null),w}},dU=(Z,U={},$=[],z,H)=>{let{apiServer:J,enableRenderingLog:T}=c(),G=JSON.stringify(U),X=JSON.stringify($),B=JSON.stringify(H);return ZU.useMemo(()=>pU(Z,U,$,z,{apiServer:J,renderingLogEnabled:T,timeout:H?.timeout,retryPolicy:H?.retryPolicy,fetchOptions:H?.fetchOptions}),[Z,G,X,z,J,T,B])},zU=(Z={})=>{let U=[];for(let $ of Object.keys(Z??{})){let z=null;if($==="pathname")z="default";else if($.endsWith("Pathname"))z=$.slice(0,-8);if(z===null)continue;let H=z==="default"?"":z;U.push({key:z,pathname:Z[$],depsNames:Z[H?`${H}DepsNames`:"depsNames"]??[],kwargs:Z[H?`${H}Kwargs`:"kwargs"]??{}})}return U},uU=(Z={},U,$)=>{let{apiServer:z,enableRenderingLog:H}=c(),J=JSON.stringify(Z??{}),T=JSON.stringify($);return ZU.useMemo(()=>{let G={};for(let X of zU(Z??{}))G[X.key]=pU(U,X.kwargs,X.depsNames,X.pathname,{apiServer:z,renderingLogEnabled:H,timeout:$?.timeout,retryPolicy:$?.retryPolicy,fetchOptions:$?.fetchOptions});return G},[J,U,z,H,T])};var $Z=require("react/jsx-runtime"),qz=({card:Z,data:U,children:$,useSocketioSupport:z=!1,useCentrifugeSupport:H=!1,useMittSupport:J=!1,centrifugeChannel:T=void 0,methods:G=void 0,stored:X=void 0,onResync:B=void 0})=>{let _=IU(),W=f.useRef(G);W.current=G;let V=f.useRef(B);V.current=B;let Q=f.useRef(X);Q.current=X;let q=typeof X==="function";if(f.useEffect(()=>{if(!q)return;let P=U.name;return vU(P,()=>[JSON.stringify(Q.current())]),()=>hU(P)},[q,U.name]),_)console.log("[PieCard] Rendering card:",Z),console.log("[PieCard] Card data:",U),console.log("[PieCard] Component name:",U?.name),console.log("[PieCard] Real-time support:",{socketio:z,centrifuge:H,mitt:J,centrifugeChannel:T}),console.log("[PieCard] Methods:",G?Object.keys(G):"none"),console.log("[PieCard] Has children:",!!$);let F=f.useContext(v),w=f.useContext(m),D=f.useContext(h);if(f.useEffect(()=>{if(!F||!z||!W.current||!U.name){if(_&&z)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!F,useSocketioSupport:z,hasMethods:!!W.current,hasDataName:!!U?.name});return}let A=Object.keys(W.current??{}).map((Y)=>{let K=`pie${Y}_${U.name}`;if(_)console.log(`[PieCard] Socket.IO registering event: ${K}`);let C=(u)=>{W.current?.[Y]?.(u)};return F.on(K,C),[K,C]});return()=>{A.forEach(([Y,K])=>{if(_)console.log(`[PieCard] Socket.IO unregistering event: ${Y}`);F.off(Y,K)})}},[F,U.name,z]),f.useEffect(()=>{if(!w||!H||!T||!U.name){if(_&&H)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!w,useCentrifugeSupport:H,hasCentrifugeChannel:!!T,hasMethods:!!W.current,hasDataName:!!U?.name});return}let A=Object.keys(W.current??{}).map((Y)=>{let K=`pie${Y}_${U.name}_${T}`;if(_)console.log(`[PieCard] Centrifuge subscribing to channel: ${K}`);let{subscription:C,createdHere:u}=xU(w,K,{recoverable:!0,positioned:!0}),r=(k)=>{if(_)console.log(`[PieCard] Centrifuge received data on ${K}:`,k.data);W.current?.[Y]?.(k.data)},MZ=(k)=>{if(CU(k))console.warn(`[PieCard] Centrifuge channel ${K} is not `+"recoverable — enable history on the server "+"namespace for exact replay; relying on resync fallback only.");if(EU(k)){if(_)console.log(`[PieCard] Centrifuge recovery gap on ${K}; requesting resync`);V.current?.({channel:K,reason:"gap"})}};return C.on("publication",r),C.on("subscribed",MZ),C.subscribe(),{subscription:C,createdHere:u,onPublication:r,onSubscribed:MZ}});return()=>{A.forEach(({subscription:Y,createdHere:K,onPublication:C,onSubscribed:u})=>{if(_)console.log("[PieCard] Centrifuge unsubscribing from channel");if(Y.off("publication",C),Y.off("subscribed",u),K)Y.unsubscribe(),w.removeSubscription(Y)})}},[w,T,U.name,H]),f.useEffect(()=>{if(!D||!J||!U.name){if(_&&J)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!D,useMittSupport:J,hasMethods:!!W.current,hasDataName:!!U?.name});return}let P=Object.keys(W.current??{}),A={};return P.forEach((Y)=>{let K=`pie${Y}_${U.name}`,C=(u)=>{if(_)console.log(`[PieCard] Mitt registering event: ${K}`);W.current?.[Y]?.(u)};A[K]=C,D.on(K,C)}),()=>{Object.entries(A).forEach(([Y,K])=>{if(_)console.log(`[PieCard] Mitt unregistering event: ${Y}`);D.off(Y,K)})}},[D,U.name,J]),_)console.log("[PieCard] Rendering complete, returning children");if(X!==void 0&&!q)return $Z.jsxs($Z.Fragment,{children:[$Z.jsx("input",{type:"hidden",name:U.name,value:JSON.stringify(X)}),$]});return $},M=qz;var cU=require("react"),t=new Map;function lU(Z,U){return U.catch(()=>{if(t.get(Z)===U)t.delete(Z)}),t.set(Z,U),U}function jZ(Z,U){return cU.lazy(()=>{if(t.has(U))return t.get(U);return lU(U,Z().then(($)=>$))})}var oU=async(Z,U)=>{if(!U)return;if(t.has(Z))return t.get(Z);return lU(Z,U().then(($)=>$))};var S=I("@swarm.ing/pieui:component-registry",()=>new Map),Qz=(Z)=>{if(!Z.name)throw Error("Component registration requires a name");if(!Z.component&&!Z.loader)throw Error(`Component "${Z.name}" requires component or loader`);let U={name:Z.name,component:Z.component,loader:Z.loader,metadata:Z.metadata,fallback:Z.fallback,isLazy:!1};if(!U.component&&U.loader)U.component=jZ(U.loader,Z.name),U.isLazy=!0;return U};function O(Z){let U=Qz(Z);return S.set(U.name,U),U.component}var iU=(Z)=>{Z.forEach((U)=>O(U))},rU=(Z)=>{S.delete(Z)},aU=(Z)=>{return S.has(Z)},nU=(Z)=>{return S.get(Z)?.metadata},zZ=(Z)=>{return S.get(Z)},tU=()=>{return Array.from(S.keys())},eU=()=>{return S.size},HU=()=>Array.from(S.values()).filter((Z)=>Z.isLazy&&typeof Z.loader==="function").map((Z)=>Z.name),JU=(Z)=>{let U=S.get(Z);if(!U?.isLazy||typeof U.loader!=="function")return;return oU(Z,U.loader)},sU=!1,Z$=()=>{if(sU||typeof window>"u")return;sU=!0;let Z=navigator.connection;if(Z?.saveData)return;if(Z?.effectiveType&&["slow-2g","2g"].includes(Z.effectiveType))return;let U=HU(),$="requestIdleCallback"in window?(H)=>window.requestIdleCallback(H,{timeout:2000}):(H)=>window.setTimeout(H,300),z=(H)=>{if(H>=U.length)return;$(()=>{Promise.resolve().then(()=>JU(U[H])).catch(()=>{}).finally(()=>z(H+1))})};z(0)};var DZ=require("react");var U$=require("react");var EZ=require("react/jsx-runtime"),_z=I("@swarm.ing/pieui:context:fallback",()=>U$.createContext(EZ.jsx(EZ.Fragment,{}))),x=_z;var $$=require("react");var Vz=I("@swarm.ing/pieui:context:lazyError",()=>$$.createContext(void 0)),l=Vz;var CZ=require("react"),z$=require("react/jsx-runtime"),Dz=2,Kz=400;class HZ extends CZ.Component{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(Z){if(this.props.onError?.(Z),this.state.attempt<Dz){let U=Kz*(this.state.attempt+1);this.timer=setTimeout(()=>{this.setState(($)=>({failed:!1,attempt:$.attempt+1}))},U)}}componentDidUpdate(Z){if(Z.name!==this.props.name&&this.state.attempt!==0)this.setState({failed:!1,attempt:0})}componentWillUnmount(){if(this.timer)clearTimeout(this.timer)}render(){if(this.state.failed)return this.props.fallback;return z$.jsx(CZ.Suspense,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}var xZ=require("react/jsx-runtime");function Fz({uiConfig:Z,setUiAjaxConfiguration:U}){let $=DZ.useContext(x),z=DZ.useContext(l),H=p();if(H)console.log("[UI] Rendering component:",Z.card),console.log("[UI] Component data:",Z.data),console.log("[UI] Component content:",Z.content),console.log("[UI] Has setUiAjaxConfiguration:",!!U);let J=zZ(Z.card);if(!J?.component){if(H)console.warn(`[UI] Component not found in registry: ${Z.card}`),console.log("[UI] Returning fallback component");return $}if(H)console.log("[UI] Found component in registry:",{name:J.name,isLazy:J.isLazy,hasMetadata:!!J.metadata});let T=J.component,G=xZ.jsx(T,{data:Z.data,content:Z.content,setUiAjaxConfiguration:U});if(J.isLazy){if(H)console.log("[UI] Rendering lazy component with Suspense:",J.name);return xZ.jsx(HZ,{name:J.name,fallback:J.fallback?xZ.jsx(J.fallback,{}):$,onError:z,children:G})}if(H)console.log("[UI] Rendering component directly:",J.name);return G}var j=DZ.memo(Fz);var TU=require("react");var H$=require("react");var Oz=I("@swarm.ing/pieui:context:uiRenderer",()=>H$.createContext(null)),y=Oz;var KZ=require("react/jsx-runtime");function J$({uiConfig:Z,setUiAjaxConfiguration:U}){let $=TU.useContext(x),z=TU.useContext(l),H=p();if(H)console.log("[UILoading] Rendering fallback for:",Z.card),console.log("[UILoading] Component data:",Z.data),console.log("[UILoading] Component content:",Z.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!U);let J=zZ(Z.card);if(!J?.component){if(H)console.warn(`[UILoading] Component not found in registry: ${Z.card}`),console.log("[UILoading] Returning fallback component");return $}if(H)console.log("[UILoading] Found component in registry:",{name:J.name,isLazy:J.isLazy,hasMetadata:!!J.metadata,hasFallback:!!J.fallback});if(J.fallback){if(H)console.log("[UILoading] Rendering fallback for:",J.name);let X=J.fallback;return KZ.jsx(X,{})}if(H)console.log("[UILoading] No fallback, rendering full component:",J.name);let T=J.component,G=KZ.jsx(y.Provider,{value:J$,children:KZ.jsx(T,{data:Z.data,content:Z.content,setUiAjaxConfiguration:U})});if(J.isLazy)return KZ.jsx(HZ,{name:J.name,fallback:$,onError:z,children:G});return G}var yZ=J$;var T$=require("react");var fZ=require("react/jsx-runtime"),Iz=({data:Z,content:U,setUiAjaxConfiguration:$})=>{let{name:z,sx:H}=Z,J=T$.useContext(y)??j;return fZ.jsx(M,{card:z,data:Z,children:fZ.jsx("div",{style:H,id:z,children:U.map((T,G)=>{return fZ.jsx(J,{uiConfig:T,setUiAjaxConfiguration:$},`children-${G}`)})})})},X$=Iz;var G$=O({name:"SequenceCard",component:X$,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var Y$=require("react");var XU=require("react/jsx-runtime"),Mz=({data:Z,content:U,setUiAjaxConfiguration:$})=>{let{name:z}=Z,H=Y$.useContext(y)??j;return XU.jsx(M,{card:z,data:Z,children:U.map((J,T)=>{return XU.jsx(H,{uiConfig:J,setUiAjaxConfiguration:$},`children-${T}`)})})},B$=Mz;var W$=O({name:"UnionCard",component:B$,metadata:{author:"Swarm.ing",description:"Renders one of many components"}});var bZ=require("react"),q$=OU(require("html-react-parser"));var b=require("react");function Pz(){let Z=new AudioContext,U=Z.createOscillator(),$=U.connect(Z.createMediaStreamDestination());U.start();let z=$.stream.getAudioTracks()[0];return z.enabled=!1,z}function GU(Z=null,U){let[$,z]=b.useState(!1),H=b.useRef(null),J=b.useRef(null),T=b.useRef(null),G=b.useCallback(async(W,V=!0)=>{if(H.current)X();let Q=new RTCPeerConnection;if(Q.onconnectionstatechange=()=>{if(Q.connectionState==="connected")z(!0);else if(["disconnected","failed","closed"].includes(Q.connectionState))z(!1)},Q.ontrack=(Y)=>{if(Z)Z.srcObject=Y.streams[0]},V){let Y=await navigator.mediaDevices.getUserMedia({audio:!0});Q.addTrack(Y.getTracks()[0],Y)}else{let Y=Pz();Q.addTrack(Y)}let q=Q.createDataChannel("oai-events");J.current=q,T.current=new Promise((Y)=>{q.addEventListener("open",()=>{Y()})});let F=await Q.createOffer();await Q.setLocalDescription(F);let A=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:F.sdp,headers:{Authorization:`Bearer ${W}`,"Content-Type":"application/sdp"}})).text();await Q.setRemoteDescription({type:"answer",sdp:A}),H.current=Q,await T.current},[Z]),X=b.useCallback(()=>{let W=J.current;if(W)W.close();H.current?.getSenders()?.forEach((V)=>V.track?.stop()),H.current?.close(),z(!1),H.current=null,J.current=null,T.current=null},[Z]),B=b.useCallback((W)=>{let V=J.current;if(!V){console.error("Data channel is not ready",W);return}let Q=new Date().toLocaleTimeString();if(W.event_id=W.event_id||crypto.randomUUID(),V.send(JSON.stringify(W)),!W.timestamp)W.timestamp=Q;U?.(W)},[U,Z]),_=b.useCallback((W)=>{if(!J.current){console.error("Data channel is not ready");return}let Q=()=>{B({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:W}]}}),B({type:"response.create"})};if(T.current)T.current.then(Q);else Q()},[U,Z]);return b.useEffect(()=>{let W=J.current;if(!W)return;let V=(Q)=>{let q=JSON.parse(Q.data);if(!q.timestamp)q.timestamp=new Date().toLocaleTimeString();U?.(q)};return W.addEventListener("message",V),()=>{W.removeEventListener("message",V)}},[U,Z]),{isSessionActive:$,startSession:G,stopSession:X,sendTextMessage:_}}var _$=require("react/jsx-runtime"),Az=({data:Z})=>{let{html:U,useSocketioSupport:$,useCentrifugeSupport:z,useMittSupport:H,centrifugeChannel:J}=Z,[T,G]=bZ.useState(U),{isSessionActive:X,startSession:B,sendTextMessage:_}=GU(null,(q)=>{if(console.log(q.type,q.type==="response.output_text.delta"&&q.delta),q.type==="response.output_text.delta"&&q.delta)G((F)=>F+q.delta)});return bZ.useEffect(()=>{G(U)},[U]),_$.jsx(M,{card:"HTMLEmbedCard",data:Z,methods:{update:(q)=>{G(q.value)},generateUsingAI:async(q)=>{try{if(!X&&q.token)await B(q.token,!1);_(q.prompt)}catch(F){console.error("Failed to generate using AI",F)}},initializeAI:async(q)=>{if(!X&&q.token)await B(q.token,!1)}},useCentrifugeSupport:z,useSocketioSupport:$,useMittSupport:H,centrifugeChannel:J,children:q$.default(T)})},Q$=Az;var V$=O({name:"HTMLEmbedCard",component:Q$,metadata:{author:"Swarm.ing"}});var kZ=require("react");var YU=require("react/jsx-runtime"),wz=({data:Z})=>{let{name:U,value:$,useSocketioSupport:z,useCentrifugeSupport:H,useMittSupport:J,centrifugeChannel:T}=Z,[G,X]=kZ.useState($);return kZ.useEffect(()=>{X($)},[$]),YU.jsx(M,{card:"HiddenCard",data:Z,useSocketioSupport:z,useCentrifugeSupport:H,useMittSupport:J,centrifugeChannel:T,methods:{update:({value:B})=>{X(B)}},children:YU.jsx("input",{type:"hidden",id:U,name:U,value:G})})},D$=wz;var K$=O({name:"HiddenCard",component:D$,metadata:{author:"Swarm.ing"}});var FZ=require("react");var F$=require("react");var Nz=I("@swarm.ing/pieui:context:navigate",()=>F$.createContext(void 0)),g=Nz;var SZ=require("react/jsx-runtime"),Lz=({data:Z})=>{let{url:U}=Z,$=FZ.useContext(g),z=FZ.useContext(x);return FZ.useEffect(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(U))window.location.href=U;else $?.(U)},[U,$]),SZ.jsx(SZ.Fragment,{children:z})},O$=Lz;var I$=O({name:"AutoRedirectCard",component:O$,metadata:{author:"Swarm.ing"}});var o=require("react-toastify"),mZ=require("react-toastify");var TZ=require("react");var JZ=require("react/jsx-runtime"),Rz={bounce:o.Bounce,slide:o.Slide,zoom:o.Zoom,flip:o.Flip},jz=(Z)=>{let U={...Z,type:Z.alertType,transition:Z.transition?Rz[Z.transition]:void 0,position:Z.position??"bottom-right",autoClose:Z.autoClose??3000,style:{backgroundColor:"black",...Z.sx}};mZ.toast(Z.message,U)},Ez=(Z)=>{console.log("Log event",Z)},Cz=(Z)=>{if(typeof window>"u"||!window.Notification){console.warn("[IOEventsCard] Notifications API is not available");return}let U=()=>{try{new window.Notification(Z.title,{body:Z.message??Z.subtitle,icon:Z.icon,silent:Z.silent})}catch(z){console.error("[IOEventsCard] Failed to show notification",z)}},$=window.Notification.permission;if($==="granted"){U();return}if($==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((z)=>{if(z==="granted")U()})},xz=({data:Z})=>{let{useCentrifugeSupport:U,useSocketioSupport:$,useMittSupport:z,centrifugeChannel:H}=Z,J=TZ.useContext(g),T=TZ.useRef(J);T.current=J;let G=TZ.useMemo(()=>({alert:jz,log:Ez,push:Cz,redirect:(X)=>{if(X.to){let B=X.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(B))window.location.href=B;else T.current?.(B)}else window.location.reload()},reload:(X)=>{if(X.to){let B=X.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(B))window.location.href=B;else T.current?.(B)}else window.location.reload()}}),[]);return JZ.jsx(JZ.Fragment,{children:JZ.jsx(M,{card:"IOEventsCard",data:Z,useCentrifugeSupport:U,useSocketioSupport:$,useMittSupport:z,centrifugeChannel:H,methods:G,children:JZ.jsx(mZ.ToastContainer,{})})})},M$=xz;var P$=O({name:"IOEventsCard",component:M$,metadata:{author:"Swarm.ing"}});var OZ=require("react");var BU=require("react/jsx-runtime"),yz=({data:Z})=>{let{name:U,key:$,value:z,useSocketioSupport:H,useCentrifugeSupport:J,useMittSupport:T,centrifugeChannel:G}=Z,[X,B]=OZ.useState(z);return OZ.useEffect(()=>{B(z)},[z]),OZ.useEffect(()=>{if(typeof window>"u")return;sessionStorage.setItem($,X)},[$,X]),BU.jsx(M,{card:"SessionStorageCard",data:Z,useSocketioSupport:H,useCentrifugeSupport:J,useMittSupport:T,centrifugeChannel:G,methods:{update:({value:_})=>{B(_)},remove:()=>{sessionStorage.removeItem($),B("")}},children:BU.jsx("input",{type:"hidden",id:U,name:U,value:X})})},A$=yz;var w$=O({name:"SessionStorageCard",component:A$,metadata:{author:"PieData"}});var IZ=require("react");var WU=require("react/jsx-runtime"),fz=({data:Z})=>{let{name:U,key:$,value:z,useSocketioSupport:H,useCentrifugeSupport:J,useMittSupport:T,centrifugeChannel:G}=Z,[X,B]=IZ.useState(z);return IZ.useEffect(()=>{B(z)},[z]),IZ.useEffect(()=>{if(typeof window>"u")return;localStorage.setItem($,X)},[$,X]),WU.jsx(M,{card:"DeviceStorageCard",data:Z,useSocketioSupport:H,useCentrifugeSupport:J,useMittSupport:T,centrifugeChannel:G,methods:{update:({value:_})=>{B(_)},remove:()=>{localStorage.removeItem($),B("")}},children:WU.jsx("input",{type:"hidden",id:U,name:U,value:X})})},N$=fz;var L$=O({name:"DeviceStorageCard",component:N$,metadata:{author:"PieData"}});var E=require("react");var qU=require("react/jsx-runtime"),bz=({data:Z,content:U})=>{let{useLoader:$,noReturn:z,returnType:H,useSocketioSupport:J,useCentrifugeSupport:T,useMittSupport:G,centrifugeChannel:X}=Z,B=E.useContext(x),_=E.useContext(y)??j,[W,V]=E.useState(!1),[Q,q]=E.useState(null),F=E.useRef(U),w=E.useContext(h),D=E.useCallback((Y)=>{if(Y===null)V(!0);else if(V(!1),!z)F.current=Y;if(!z)q(Y)},[z]),P=E.useCallback((Y)=>{F.current=Y.content,q(Y.content)},[]),A=E.useCallback((Y)=>{if(Y===null)V(!0);else if(V(!1),!z)for(let K of Y)w?.emit(K.name,K.data)},[z,w]);if(E.useEffect(()=>{q(U),V(!1)},[U]),!Q&&$)return B;return qU.jsx(M,{card:"AjaxGroupCard",data:Z,methods:{changeContent:P},useSocketioSupport:J,useCentrifugeSupport:T,useMittSupport:G,centrifugeChannel:X,children:qU.jsx(_,{uiConfig:Q??F.current,setUiAjaxConfiguration:H==="events"?A:D})})},R$=bz;var j$=O({name:"AjaxGroupCard",component:R$,metadata:{author:"Swarm.ing",description:"Group card with AJAX support"}});var QU=require("react");var vZ=require("react/jsx-runtime"),kz=({data:Z,content:U,setUiAjaxConfiguration:$})=>{let{name:z,url:H,sx:J}=Z,T=QU.useContext(g),G=QU.useContext(y)??j;return vZ.jsx(M,{card:z,data:Z,children:vZ.jsx("div",{style:J,id:z,onClick:(B)=>{if(H)if(B.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(H))window.location.href=H;else T?.(H)},children:vZ.jsx(G,{setUiAjaxConfiguration:$,uiConfig:U})})})},E$=kz;var C$=O({name:"BoxCard",component:E$,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var x$=require("react");var hZ=require("react/jsx-runtime"),Sz=({data:Z,content:U,setUiAjaxConfiguration:$})=>{let{name:z,sx:H}=Z,J=x$.useContext(y)??j;return hZ.jsx(M,{card:z,data:Z,children:hZ.jsx("div",{style:H,id:z,children:U.map((T,G)=>{return hZ.jsx(J,{uiConfig:T,setUiAjaxConfiguration:$},`children-${G}`)})})})},y$=Sz;var f$=O({name:"OneOfCard",component:y$,metadata:{author:"Swarm.ing",description:"Different variants"}});var GZ=require("react"),YZ=require("@tanstack/react-query");var s=require("react");var dZ=require("react"),gZ=new Map,pZ=new Map;function uZ(Z,U){let $=`${Z}::${U}`,z=Z?gZ.get($):void 0,[H,J]=dZ.useState(z??null);return dZ.useEffect(()=>{if(!Z)return;if(gZ.has($)){J(gZ.get($));return}let T=pZ.get($);if(!T)T=fetch(Z+`api/support/${U}`,{method:"GET"}).then((X)=>X.json()).then((X)=>{return gZ.set($,X),pZ.delete($),X}).catch((X)=>{throw pZ.delete($),X}),pZ.set($,T);let G=!1;return T.then((X)=>{if(!G)J(X)}).catch(()=>{}),()=>{G=!0}},[Z,U,$]),H}function XZ(Z,U){if(U==="up")return{state:"up",signal:Z==="down"?"restored":null};return{state:"down",signal:Z==="up"?"lost":null}}var mz=({children:Z})=>{let U=s.useContext(v),$=AZ(),z=uZ($,"socketIO"),H=e(),J=ZZ(),T=s.useRef(H);T.current=H;let G=s.useRef(J);G.current=J;let X=s.useRef("initial"),B=(_)=>{if(N.isClient())N.setSid(_.sid),mU(),console.log(`SocketIO initialized: ${N.readSid()}`)};return s.useEffect(()=>{if(!U||!z)return;let _=()=>{let{state:V,signal:Q}=XZ(X.current,"up");if(X.current=V,Q==="restored")G.current?.("socketio");console.log("SocketIO connected")},W=(V)=>{if(console.log(`SocketIO disconnected: ${V}`),U.connect(),V==="io client disconnect")return;let{state:Q,signal:q}=XZ(X.current,"down");if(X.current=Q,q==="lost")T.current?.("socketio",V)};return U.on("pieinit",B),U.on("connect",_),U.on("disconnect",W),U.connect(),()=>{U.off("pieinit",B),U.off("connect",_),U.off("disconnect",W),U.disconnect()}},[U,z]),Z},cZ=mz;var i=require("react");var vz=({children:Z})=>{let U=i.useContext(m),$=AZ(),z=uZ($,"centrifuge"),H=e(),J=ZZ(),T=i.useRef(H);T.current=H;let G=i.useRef(J);G.current=J;let X=i.useRef("initial");return i.useEffect(()=>{if(!U||!z)return;let B=(V)=>{let{state:Q,signal:q}=XZ(X.current,"down");if(X.current=Q,q==="lost")T.current?.("centrifuge",V)},_=()=>{let{state:V,signal:Q}=XZ(X.current,"up");if(X.current=V,Q==="restored")G.current?.("centrifuge");console.log("Centrifuge connected")},W=(V)=>{console.log("Centrifuge disconnected:",V),B(V)};return U.on("connecting",B),U.on("connected",_),U.on("disconnected",W),U.connect(),()=>{U.off("connecting",B),U.off("connected",_),U.off("disconnected",W),U.disconnect()}},[U,z]),Z},lZ=vz;var S$=require("axios-date-transformer");var k$=require("react/jsx-runtime");function b$(Z,U,$){if(!U)return $;let z=Z.replace(/^\//,""),H=U[z];if(!H)return $;return k$.jsx(yZ,{uiConfig:H})}var L=require("react/jsx-runtime"),hz=({location:Z,fallback:U,piecache:$,onError:z,queryOptions:H,disableGlobalForm:J})=>{let T=qZ(),G=wZ(),X=p(),B=GZ.useMemo(()=>S$.createAxiosDateTransformer({baseURL:T||""}),[T]),_=GZ.useMemo(()=>d(),[]),W=GZ.useMemo(()=>T?RZ(T):null,[T]),V=GZ.useMemo(()=>T?LZ(T,G):null,[T,G]),{data:Q,isLoading:q,error:F}=YZ.useQuery({queryKey:["uiConfig",Z.pathname+Z.search,T],enabled:!!T,queryFn:async()=>{let D=new URLSearchParams(Z.search);D.set("__pieroot","web");let P="/api/content"+Z.pathname+"?"+D.toString();if(X)console.log("[PieRoot] Fetching UI configuration from:",P);let A=await B.get(P,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(X)console.log("[PieRoot] Received UI configuration:",A.data);return A.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(D)=>Math.min(1000*2**D,30000),...H}),w=b$(Z.pathname,$,U);if(!T)return w??null;if(X)console.log("[PieRoot] Rendering with location:",Z),console.log("[PieRoot] API_SERVER:",T),console.log("[PieRoot] CENTRIFUGE_SERVER:",G),console.log("[PieRoot] Fallback provided:",!!U),console.log("[PieRoot] Piecache provided:",!!$);if(F){if(X)console.error("[PieRoot] Error fetching UI configuration:",F),console.error("[PieRoot] Error details:",{message:F.message,status:F.response?.status,data:F.response?.data});return z?.(F),w}if(q||!Q){if(X)console.log("[PieRoot] Loading state:",{isLoading:q,hasUiConfiguration:!!Q});return w}if(X)console.log("[PieRoot] UI configuration loaded successfully:",Q),console.log("[PieRoot] Rendering UI with configuration");return L.jsx(h.Provider,{value:_,children:L.jsx(v.Provider,{value:W,children:L.jsx(m.Provider,{value:V,children:L.jsx(x.Provider,{value:U??L.jsx(L.Fragment,{}),children:L.jsx(cZ,{children:L.jsx(lZ,{children:J?L.jsx(j,{uiConfig:Q}):L.jsx("form",{id:"piedata_global_form",action:T+"api/process"+Z.pathname,method:"post",encType:"multipart/form-data",children:L.jsx(j,{uiConfig:Q})})})})})})})})},gz=(Z)=>{let U=GZ.useMemo(()=>new YZ.QueryClient,[]),$=Z.queryClient??U;return L.jsx(g.Provider,{value:Z.onNavigate,children:L.jsx(a.Provider,{value:Z.config,children:L.jsx(l.Provider,{value:Z.onError,children:L.jsx(YZ.QueryClientProvider,{client:$,children:L.jsx(hz,{...Z})})})})})},oZ=gz;var BZ=require("react"),sZ=require("@tanstack/react-query");var R=require("react/jsx-runtime"),pz=({location:Z,fallback:U,children:$,disableGlobalForm:z})=>{let H=qZ(),J=wZ(),T=p(),G=BZ.useMemo(()=>d(),[]),X=BZ.useMemo(()=>H?RZ(H):null,[H]),B=BZ.useMemo(()=>H?LZ(H,J):null,[H,J]);if(T)console.log("[PieRoot] Rendering with location:",Z),console.log("[PieRoot] API_SERVER:",H),console.log("[PieRoot] CENTRIFUGE_SERVER:",J),console.log("[PieRoot] Fallback provided:",!!U);return R.jsx(h.Provider,{value:G,children:R.jsx(v.Provider,{value:X,children:R.jsx(m.Provider,{value:B,children:R.jsx(x.Provider,{value:U??R.jsx(R.Fragment,{}),children:R.jsx(cZ,{children:R.jsx(lZ,{children:z?$:R.jsx("form",{id:"piedata_global_form",action:H+"api/process"+Z.pathname,method:"post",encType:"multipart/form-data",children:$})})})})})})})},dz=(Z)=>{let[U]=BZ.useState(()=>new sZ.QueryClient),$=Z.queryClient??U;return R.jsx(g.Provider,{value:Z.onNavigate,children:R.jsx(a.Provider,{value:Z.config,children:R.jsx(l.Provider,{value:Z.onError,children:R.jsx(sZ.QueryClientProvider,{client:$,children:R.jsx(pz,{...Z})})})})})},m$=dz;var iZ=require("react");var _U=require("react/jsx-runtime"),uz=_U.jsx("div",{style:{padding:16,fontFamily:"system-ui, sans-serif",color:"#888"},children:"Loading card…"}),cz=({apiServer:Z,pathname:U="/",search:$="",centrifugeServer:z,previewEvents:H=!1,fallback:J,enableRenderingLog:T=!1})=>{let G=Z??(typeof process<"u"?process.env.PIE_API_SERVER:void 0)??"";iZ.useEffect(()=>{if(!H||!G||typeof window>"u"||typeof EventSource>"u")return;let _=G.endsWith("/")?G:`${G}/`,W=new EventSource(`${_}api/preview/events`),V=d();return W.onmessage=(Q)=>{try{let q=JSON.parse(Q.data);if(q&&typeof q.name==="string")V.emit(q.name,q.payload)}catch{}},()=>W.close()},[H,G]);let X=iZ.useMemo(()=>({apiServer:G,centrifugeServer:z,enableRenderingLog:T,pageProcessor:"web"}),[G,z,T]);return _U.jsx(oZ,{location:{pathname:U,search:$},config:X,fallback:J??uz,onNavigate:(_)=>{if(typeof window<"u")window.history.pushState(null,"",_)}})},v$=cz;var h$=require("clsx"),g$=require("tailwind-merge");function p$(...Z){return g$.twMerge(h$.clsx(Z))}var d$=()=>{gU(),N.submitGlobalForm()};var u$=(Z,U)=>`${Z}${NZ}${U}`;
@@ -26,7 +26,7 @@ export { default as PieCard } from '../components/PieCard';
26
26
  export { registerPieComponent, getAllRegisteredComponents, getRegistrySize, registry, hasComponent, getRegistryEntry, getComponentMeta, registerMultipleComponents, unregisterComponent, getLazyComponentNames, preloadComponent, prefetchLazyComponents, } from '../util/registry';
27
27
  export { trackLazy } from '../util/lazy';
28
28
  export { useAjaxSubmit, useAjaxSubmits, discoverAjaxEndpoints, readAjaxKey, readAjaxKeyAsync, parseDepName, } from '../util/ajaxCommonUtils';
29
- export type { RetryPolicy, DepSource, AjaxEndpointConfig } from '../util/ajaxCommonUtils';
29
+ export type { RetryPolicy, DepSource, AjaxEndpointConfig, AjaxSubmitFn, GetAjaxSubmitOptions, } from '../util/ajaxCommonUtils';
30
30
  export { submitGlobalForm } from '../util/globalForm';
31
31
  export { usePieEmit } from '../util/mitt';
32
32
  export { default as MittContext, getEmitter } from '../util/mitt';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/native/index.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AAGH,OAAO,cAAc,CAAA;AAGrB,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAIlE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EACH,4BAA4B,EAC5B,qBAAqB,EACrB,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,GACjC,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACH,cAAc,EACd,gBAAgB,EAChB,eAAe,GAClB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACH,OAAO,EACP,YAAY,EACZ,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,aAAa,GAChB,MAAM,cAAc,CAAA;AAGrB,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EACH,OAAO,IAAI,iBAAiB,EAC5B,KAAK,eAAe,GACvB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAG1D,OAAO,EACH,oBAAoB,EACpB,0BAA0B,EAC1B,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,0BAA0B,EAC1B,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,GACzB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAGxC,OAAO,EACH,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EAChB,YAAY,GACf,MAAM,yBAAyB,CAAA;AAChC,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AACzF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAGrD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACjE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAC3D,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACnE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAGzC,YAAY,EACR,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,0BAA0B,EAC1B,iCAAiC,EACjC,4BAA4B,EAC5B,6BAA6B,EAC7B,+BAA+B,EAC/B,sCAAsC,EACtC,SAAS,EACT,YAAY,EACZ,0BAA0B,GAC7B,MAAM,UAAU,CAAA;AACjB,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAChF,YAAY,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/native/index.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AAGH,OAAO,cAAc,CAAA;AAGrB,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAIlE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EACH,4BAA4B,EAC5B,qBAAqB,EACrB,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,GACjC,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACH,cAAc,EACd,gBAAgB,EAChB,eAAe,GAClB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACH,OAAO,EACP,YAAY,EACZ,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,aAAa,GAChB,MAAM,cAAc,CAAA;AAGrB,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EACH,OAAO,IAAI,iBAAiB,EAC5B,KAAK,eAAe,GACvB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAG1D,OAAO,EACH,oBAAoB,EACpB,0BAA0B,EAC1B,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,0BAA0B,EAC1B,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,GACzB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAGxC,OAAO,EACH,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EAChB,YAAY,GACf,MAAM,yBAAyB,CAAA;AAChC,YAAY,EACR,WAAW,EACX,SAAS,EACT,kBAAkB,EAClB,YAAY,EACZ,oBAAoB,GACvB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAGrD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACjE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAC3D,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACnE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAGzC,YAAY,EACR,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,0BAA0B,EAC1B,iCAAiC,EACjC,4BAA4B,EAC5B,6BAA6B,EAC7B,+BAA+B,EAC/B,sCAAsC,EACtC,SAAS,EACT,YAAY,EACZ,0BAA0B,GAC7B,MAAM,UAAU,CAAA;AACjB,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAChF,YAAY,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA"}