@swarm.ing/pieui 2.0.20 → 2.0.22

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.
Files changed (34) hide show
  1. package/README.md +6 -2
  2. package/dist/cli.js +19558 -15325
  3. package/dist/components/Containers/OneOfCard/index.d.ts +3 -0
  4. package/dist/components/Containers/OneOfCard/index.d.ts.map +1 -0
  5. package/dist/components/Containers/OneOfCard/types/index.d.ts +9 -0
  6. package/dist/components/Containers/OneOfCard/types/index.d.ts.map +1 -0
  7. package/dist/components/Containers/OneOfCard/ui/OneOfCard.d.ts +4 -0
  8. package/dist/components/Containers/OneOfCard/ui/OneOfCard.d.ts.map +1 -0
  9. package/dist/components/PieBaseRoot/index.d.ts.map +1 -1
  10. package/dist/components/PieMaxRoot/index.d.ts.map +1 -1
  11. package/dist/components/PieRoot/index.d.ts.map +1 -1
  12. package/dist/components/PieRoot/types/index.d.ts +7 -0
  13. package/dist/components/PieRoot/types/index.d.ts.map +1 -1
  14. package/dist/components/PieTelegramRoot/index.d.ts.map +1 -1
  15. package/dist/components/index.d.ts +1 -0
  16. package/dist/components/index.d.ts.map +1 -1
  17. package/dist/components/index.esm.js +1 -1
  18. package/dist/components/index.js +1 -1
  19. package/dist/index.d.ts +1 -1
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.esm.js +2 -2
  22. package/dist/index.js +2 -2
  23. package/dist/pieui.components.json +21 -0
  24. package/dist/tests/ajaxCommonUtils.test.d.ts +15 -0
  25. package/dist/tests/ajaxCommonUtils.test.d.ts.map +1 -0
  26. package/dist/tests/lazy.test.d.ts +14 -0
  27. package/dist/tests/lazy.test.d.ts.map +1 -0
  28. package/dist/tests/pieName.test.d.ts +12 -0
  29. package/dist/tests/pieName.test.d.ts.map +1 -0
  30. package/dist/tests/waitForSidAvailable.test.d.ts +20 -0
  31. package/dist/tests/waitForSidAvailable.test.d.ts.map +1 -0
  32. package/dist/util/ajaxCommonUtils.d.ts +18 -0
  33. package/dist/util/ajaxCommonUtils.d.ts.map +1 -1
  34. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- var oH=Object.create;var{getPrototypeOf:EH,defineProperty:Pf,getOwnPropertyNames:PU,getOwnPropertyDescriptor:mH}=Object,VU=Object.prototype.hasOwnProperty;var IU=(f,U,Z)=>{Z=f!=null?oH(EH(f)):{};let H=U||!f||!f.__esModule?Pf(Z,"default",{value:f,enumerable:!0}):Z;for(let z of PU(f))if(!VU.call(H,z))Pf(H,z,{get:()=>f[z],enumerable:!0});return H},GU=new WeakMap,kH=(f)=>{var U=GU.get(f),Z;if(U)return U;if(U=Pf({},"__esModule",{value:!0}),f&&typeof f==="object"||typeof f==="function")PU(f).map((H)=>!VU.call(U,H)&&Pf(U,H,{get:()=>f[H],enumerable:!(Z=mH(f,H))||Z.enumerable}));return GU.set(f,U),U};var jH=(f,U)=>{for(var Z in U)Pf(f,Z,{get:U[Z],enumerable:!0,configurable:!0,set:(H)=>U[Z]=()=>H})};var CZ={};jH(CZ,{useWebApp:()=>uf,usePieMittAgentTools:()=>RH,usePieEmit:()=>_U,useOpenAIWebRTC:()=>If,useMaxWebApp:()=>vf,useAjaxSubmit:()=>CH,unregisterComponent:()=>KU,submitGlobalForm:()=>SH,registry:()=>g,registerPieComponent:()=>C,registerMultipleComponents:()=>FU,pieName:()=>LH,hasComponent:()=>SU,getRegistrySize:()=>AU,getRegistryEntry:()=>t,getMittAgentTools:()=>$U,getComponentMeta:()=>LU,getAllRegisteredComponents:()=>MU,cn:()=>KH,UnionCard:()=>dU,UIRendererContext:()=>x,UILoading:()=>Kf,UI:()=>F,SessionStorageCard:()=>tU,SequenceCard:()=>kU,SecureStorageCard:()=>ZH,PieTelegramRoot:()=>XH,PieRoot:()=>JH,PieMaxRoot:()=>WH,PieCard:()=>_,PieBaseRoot:()=>qH,PIEBREAK:()=>_f,IOEventsCard:()=>sU,HiddenCard:()=>cU,HTMLEmbedCard:()=>vU,DeviceStorageCard:()=>eU,CloudStorageCard:()=>UH,BoxCard:()=>TH,AutoRedirectCard:()=>rU,AjaxGroupCard:()=>DH});module.exports=kH(CZ);var d=require("react");var Cf=require("react"),u=Cf.createContext(null),s=()=>{let f=Cf.useContext(u);if(!f)throw new Error("usePieConfig must be used within PieConfigProvider");return f},b=()=>{let{apiServer:f}=s();return f},Of=b,v=()=>{let{centrifugeServer:f}=s();return f};var o=()=>{let{enableRenderingLog:f}=s();return f},JU=o,YU=()=>{let{pageProcessor:f}=s();return f};var _f="__piedemo__";var qU=require("react"),lf=require("centrifuge"),XU=new Map,p=(f,U)=>{if(!U)return null;let Z=`${f}::${U}`,H=XU.get(Z);if(H)return H;async function z(){let $=await fetch(f+"api/centrifuge/gen_token");if(!$.ok){if($.status===403)throw new lf.Centrifuge.UnauthorizedError("Backend is not answering");throw new Error(`Unexpected status code ${$.status}`)}return(await $.json()).token}let D=new lf.Centrifuge(U,{getToken:z});return XU.set(Z,D),D},xH=qU.createContext(null),m=xH;var WU=require("socket.io-client"),QU=require("react"),BU=new Map,c=(f)=>{let U=BU.get(f);if(U)return U;let Z=WU.io(f,{autoConnect:!1,transports:["websocket"]});return BU.set(f,Z),Z},dH=QU.createContext(null),k=dH;var CU=IU(require("mitt")),i=require("react"),rf=null;function j(){if(!rf)rf=CU.default();return rf}var OU=i.createContext(null);function _U(f){let U=i.useContext(OU);return i.useCallback((Z,H)=>{(U??j()).emit(`pie${Z}_${f}`,H)},[f,U])}var N=OU;var uH=({card:f,data:U,children:Z,useSocketioSupport:H=!1,useCentrifugeSupport:z=!1,useMittSupport:D=!1,centrifugeChannel:$=void 0,methods:G=void 0})=>{let T=JU(),P=d.useRef(G);if(P.current=G,T)console.log("[PieCard] Rendering card:",f),console.log("[PieCard] Card data:",U),console.log("[PieCard] Component name:",U?.name),console.log("[PieCard] Real-time support:",{socketio:H,centrifuge:z,mitt:D,centrifugeChannel:$}),console.log("[PieCard] Methods:",G?Object.keys(G):"none"),console.log("[PieCard] Has children:",!!Z);let X=d.useContext(k),B=d.useContext(m),q=d.useContext(N);if(d.useEffect(()=>{if(!X||!H||!P.current||!U.name){if(T&&H)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!X,useSocketioSupport:H,hasMethods:!!P.current,hasDataName:!!U?.name});return}let I=Object.keys(P.current??{}).map((V)=>{let J=`pie${V}_${U.name}`;if(T)console.log(`[PieCard] Socket.IO registering event: ${J}`);let W=(Q)=>{P.current?.[V]?.(Q)};return X.on(J,W),[J,W]});return()=>{I.forEach(([V,J])=>{if(T)console.log(`[PieCard] Socket.IO unregistering event: ${V}`);X.off(V,J)})}},[X,U.name,H]),d.useEffect(()=>{if(!B||!z||!$||!U.name){if(T&&z)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!B,useCentrifugeSupport:z,hasCentrifugeChannel:!!$,hasMethods:!!P.current,hasDataName:!!U?.name});return}let I=Object.keys(P.current??{}).map((V)=>{let J=`pie${V}_${U.name}_${$}`;if(T)console.log(`[PieCard] Centrifuge subscribing to channel: ${J}`);let W=B.newSubscription(J);return W.on("publication",(Q)=>{if(T)console.log(`[PieCard] Centrifuge received data on ${J}:`,Q.data);P.current?.[V]?.(Q.data)}),W.subscribe(),W});return()=>{I.forEach((V)=>{if(T)console.log("[PieCard] Centrifuge unsubscribing from channel");V.unsubscribe(),B.removeSubscription(V)})}},[B,$,U.name,z]),d.useEffect(()=>{if(!q||!D||!U.name){if(T&&D)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!q,useMittSupport:D,hasMethods:!!P.current,hasDataName:!!U?.name});return}let Y=Object.keys(P.current??{}),I={};return Y.forEach((V)=>{let J=`pie${V}_${U.name}`,W=(Q)=>{if(T)console.log(`[PieCard] Mitt registering event: ${J}`);P.current?.[V]?.(Q)};I[J]=W,q.on(J,W)}),()=>{Object.entries(I).forEach(([V,J])=>{if(T)console.log(`[PieCard] Mitt unregistering event: ${V}`);q.off(V,J)})}},[q,U.name,D]),T)console.log("[PieCard] Rendering complete, returning children");return Z},_=uH;var RU=require("react"),nf=new Map;function wU(f,U){return RU.lazy(()=>{if(nf.has(U))return nf.get(U);let Z=f().then((H)=>H);return nf.set(U,Z),Z})}var g=new Map,bH=(f)=>{if(!f.name)throw new Error("Component registration requires a name");if(!f.component&&!f.loader)throw new Error(`Component "${f.name}" requires component or loader`);let U={name:f.name,component:f.component,loader:f.loader,metadata:f.metadata,fallback:f.fallback,isLazy:!1};if(!U.component&&U.loader)U.component=wU(U.loader,f.name),U.loader=void 0,U.isLazy=!0;return U};function C(f){let U=bH(f);return g.set(U.name,U),U.component}var FU=(f)=>{f.forEach((U)=>C(U))},KU=(f)=>{g.delete(f)},SU=(f)=>{return g.has(f)},LU=(f)=>{return g.get(f)?.metadata},t=(f)=>{return g.get(f)},MU=()=>{return Array.from(g.keys())},AU=()=>{return g.size};var a=require("react");var NU=require("react"),Rf=require("react/jsx-runtime"),gH=NU.createContext(Rf.jsx(Rf.Fragment,{})),w=gH;var wf=require("react/jsx-runtime");function vH({uiConfig:f,setUiAjaxConfiguration:U}){let Z=a.useContext(w),H=o();if(H)console.log("[UI] Rendering component:",f.card),console.log("[UI] Component data:",f.data),console.log("[UI] Component content:",f.content),console.log("[UI] Has setUiAjaxConfiguration:",!!U);let z=t(f.card);if(!z?.component){if(H)console.warn(`[UI] Component not found in registry: ${f.card}`),console.log("[UI] Returning fallback component");return Z}if(H)console.log("[UI] Found component in registry:",{name:z.name,isLazy:z.isLazy,hasMetadata:!!z.metadata});let D=z.component,$=wf.jsx(D,{data:f.data,content:f.content,setUiAjaxConfiguration:U});if(z.isLazy){if(H)console.log("[UI] Rendering lazy component with Suspense:",z.name);return wf.jsx(a.Suspense,{fallback:z.fallback?wf.jsx(z.fallback,{}):Z,children:$},`${z.name}`)}if(H)console.log("[UI] Rendering component directly:",z.name);return $}var F=a.memo(vH);var Ff=require("react");var yU=require("react"),pH=yU.createContext(null),x=pH;var Vf=require("react/jsx-runtime");function oU({uiConfig:f,setUiAjaxConfiguration:U}){let Z=Ff.useContext(w),H=o();if(H)console.log("[UILoading] Rendering fallback for:",f.card),console.log("[UILoading] Component data:",f.data),console.log("[UILoading] Component content:",f.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!U);let z=t(f.card);if(!z?.component){if(H)console.warn(`[UILoading] Component not found in registry: ${f.card}`),console.log("[UILoading] Returning fallback component");return Z}if(H)console.log("[UILoading] Found component in registry:",{name:z.name,isLazy:z.isLazy,hasMetadata:!!z.metadata,hasFallback:!!z.fallback});if(z.fallback){if(H)console.log("[UILoading] Rendering fallback for:",z.name);let G=z.fallback;return Vf.jsx(G,{})}if(H)console.log("[UILoading] No fallback, rendering full component:",z.name);let D=z.component,$=Vf.jsx(x.Provider,{value:oU,children:Vf.jsx(D,{data:f.data,content:f.content,setUiAjaxConfiguration:U})});if(z.isLazy)return Vf.jsx(Ff.Suspense,{fallback:Z,children:$},`${z.name}`);return $}var Kf=oU;var EU=require("react");var Sf=require("react/jsx-runtime"),cH=({data:f,content:U,setUiAjaxConfiguration:Z})=>{let{name:H,sx:z}=f,D=EU.useContext(x)??F;return Sf.jsx(_,{card:H,data:f,children:Sf.jsx("div",{style:z,id:H,children:U.map(($,G)=>{return Sf.jsx(D,{uiConfig:$,setUiAjaxConfiguration:Z},`children-${G}`)})})})},mU=cH;var kU=C({name:"SequenceCard",component:mU,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var jU=require("react");var sf=require("react/jsx-runtime"),hH=({data:f,content:U,setUiAjaxConfiguration:Z})=>{let{name:H}=f,z=jU.useContext(x)??F;return sf.jsx(_,{card:H,data:f,children:U.map((D,$)=>{return sf.jsx(z,{uiConfig:D,setUiAjaxConfiguration:Z},`children-${$}`)})})},xU=hH;var dU=C({name:"UnionCard",component:xU,metadata:{author:"Swarm.ing",description:"Renders one of many components"}});var Lf=require("react"),uU=IU(require("html-react-parser"));var E=require("react");function lH(){let f=new AudioContext,U=f.createOscillator(),Z=U.connect(f.createMediaStreamDestination());U.start();let H=Z.stream.getAudioTracks()[0];return H.enabled=!1,H}function If(f=null,U){let[Z,H]=E.useState(!1),z=E.useRef(null),D=E.useRef(null),$=E.useRef(null),G=E.useCallback(async(B,q=!0)=>{if(z.current)T();let Y=new RTCPeerConnection;if(Y.onconnectionstatechange=()=>{if(Y.connectionState==="connected")H(!0);else if(["disconnected","failed","closed"].includes(Y.connectionState))H(!1)},Y.ontrack=(R)=>{if(f)f.srcObject=R.streams[0]},q){let R=await navigator.mediaDevices.getUserMedia({audio:!0});Y.addTrack(R.getTracks()[0],R)}else{let R=lH();Y.addTrack(R)}let I=Y.createDataChannel("oai-events");D.current=I,$.current=new Promise((R)=>{I.addEventListener("open",()=>{R()})});let V=await Y.createOffer();await Y.setLocalDescription(V);let O=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:V.sdp,headers:{Authorization:`Bearer ${B}`,"Content-Type":"application/sdp"}})).text();await Y.setRemoteDescription({type:"answer",sdp:O}),z.current=Y,await $.current},[f]),T=E.useCallback(()=>{let B=D.current;if(B)B.close();z.current?.getSenders()?.forEach((q)=>q.track?.stop()),z.current?.close(),H(!1),z.current=null,D.current=null,$.current=null},[f]),P=E.useCallback((B)=>{let q=D.current;if(!q){console.error("Data channel is not ready",B);return}let Y=new Date().toLocaleTimeString();if(B.event_id=B.event_id||crypto.randomUUID(),q.send(JSON.stringify(B)),!B.timestamp)B.timestamp=Y;U?.(B)},[U,f]),X=E.useCallback((B)=>{if(!D.current){console.error("Data channel is not ready");return}let Y=()=>{P({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:B}]}}),P({type:"response.create"})};if($.current)$.current.then(Y);else Y()},[U,f]);return E.useEffect(()=>{let B=D.current;if(!B)return;let q=(Y)=>{let I=JSON.parse(Y.data);if(!I.timestamp)I.timestamp=new Date().toLocaleTimeString();U?.(I)};return B.addEventListener("message",q),()=>{B.removeEventListener("message",q)}},[U,f]),{isSessionActive:Z,startSession:G,stopSession:T,sendTextMessage:X}}var gU=require("react/jsx-runtime"),rH=({data:f})=>{let{html:U,useSocketioSupport:Z,useCentrifugeSupport:H,useMittSupport:z,centrifugeChannel:D}=f,[$,G]=Lf.useState(U),{isSessionActive:T,startSession:P,sendTextMessage:X}=If(null,(I)=>{if(console.log(I.type,I.type==="response.output_text.delta"&&I.delta),I.type==="response.output_text.delta"&&I.delta)G((V)=>V+I.delta)});return Lf.useEffect(()=>{G(U)},[U]),gU.jsx(_,{card:"HTMLEmbedCard",data:f,methods:{update:(I)=>{G(I.value)},generateUsingAI:async(I)=>{try{if(!T&&I.token)await P(I.token,!1);X(I.prompt)}catch(V){console.error("Failed to generate using AI",V)}},initializeAI:async(I)=>{if(!T&&I.token)await P(I.token,!1)}},useCentrifugeSupport:H,useSocketioSupport:Z,useMittSupport:z,centrifugeChannel:D,children:uU.default($)})},bU=rH;var vU=C({name:"HTMLEmbedCard",component:bU,metadata:{author:"Swarm.ing"}});var Mf=require("react");var tf=require("react/jsx-runtime"),nH=({data:f})=>{let{name:U,value:Z,useSocketioSupport:H,useCentrifugeSupport:z,useMittSupport:D,centrifugeChannel:$}=f,[G,T]=Mf.useState(Z);return Mf.useEffect(()=>{T(Z)},[Z]),tf.jsx(_,{card:"HiddenCard",data:f,useSocketioSupport:H,useCentrifugeSupport:z,useMittSupport:D,centrifugeChannel:$,methods:{update:({value:P})=>{T(P)}},children:tf.jsx("input",{type:"hidden",id:U,name:U,value:G})})},pU=nH;var cU=C({name:"HiddenCard",component:pU,metadata:{author:"Swarm.ing"}});var Jf=require("react");var hU=require("react"),sH=hU.createContext(void 0),y=sH;var Af=require("react/jsx-runtime"),iH=({data:f})=>{let{url:U}=f,Z=Jf.useContext(y),H=Jf.useContext(w);return Jf.useEffect(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(U))window.location.href=U;else Z?.(U)},[U,Z]),Af.jsx(Af.Fragment,{children:H})},lU=iH;var rU=C({name:"AutoRedirectCard",component:lU,metadata:{author:"Swarm.ing"}});var h=require("react-toastify"),Nf=require("react-toastify");var ff=require("react");var e=require("react/jsx-runtime"),tH={bounce:h.Bounce,slide:h.Slide,zoom:h.Zoom,flip:h.Flip},aH=(f)=>{let U={...f,type:f.alertType,transition:f.transition?tH[f.transition]:void 0,position:f.position??"bottom-right",autoClose:f.autoClose??3000,style:{backgroundColor:"black",...f.sx}};Nf.toast(f.message,U)},eH=(f)=>{console.log("Log event",f)},fZ=(f)=>{if(typeof window==="undefined"||!window.Notification){console.warn("[IOEventsCard] Notifications API is not available");return}let U=()=>{try{new window.Notification(f.title,{body:f.message??f.subtitle,icon:f.icon,silent:f.silent})}catch(H){console.error("[IOEventsCard] Failed to show notification",H)}},Z=window.Notification.permission;if(Z==="granted"){U();return}if(Z==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((H)=>{if(H==="granted")U()})},UZ=({data:f})=>{let{useCentrifugeSupport:U,useSocketioSupport:Z,useMittSupport:H,centrifugeChannel:z}=f,D=ff.useContext(y),$=ff.useRef(D);$.current=D;let G=ff.useMemo(()=>({alert:aH,log:eH,push:fZ,redirect:(T)=>{if(T.to){let P=T.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(P))window.location.href=P;else $.current?.(P)}else window.location.reload()},reload:(T)=>{if(T.to){let P=T.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(P))window.location.href=P;else $.current?.(P)}else window.location.reload()}}),[]);return e.jsx(e.Fragment,{children:e.jsx(_,{card:"IOEventsCard",data:f,useCentrifugeSupport:U,useSocketioSupport:Z,useMittSupport:H,centrifugeChannel:z,methods:G,children:e.jsx(Nf.ToastContainer,{})})})},nU=UZ;var sU=C({name:"IOEventsCard",component:nU,metadata:{author:"Swarm.ing"}});var Yf=require("react");var af=require("react/jsx-runtime"),HZ=({data:f})=>{let{name:U,key:Z,value:H,useSocketioSupport:z,useCentrifugeSupport:D,useMittSupport:$,centrifugeChannel:G}=f,[T,P]=Yf.useState(H);return Yf.useEffect(()=>{P(H)},[H]),Yf.useEffect(()=>{if(typeof window==="undefined")return;sessionStorage.setItem(Z,T)},[Z,T]),af.jsx(_,{card:"SessionStorageCard",data:f,useSocketioSupport:z,useCentrifugeSupport:D,useMittSupport:$,centrifugeChannel:G,methods:{update:({value:X})=>{P(X)},remove:()=>{sessionStorage.removeItem(Z),P("")}},children:af.jsx("input",{type:"hidden",id:U,name:U,value:T})})},iU=HZ;var tU=C({name:"SessionStorageCard",component:iU,metadata:{author:"PieData"}});var Xf=require("react");var ef=require("react/jsx-runtime"),ZZ=({data:f})=>{let{name:U,key:Z,value:H,useSocketioSupport:z,useCentrifugeSupport:D,useMittSupport:$,centrifugeChannel:G}=f,[T,P]=Xf.useState(H);return Xf.useEffect(()=>{P(H)},[H]),Xf.useEffect(()=>{if(typeof window==="undefined")return;localStorage.setItem(Z,T)},[Z,T]),ef.jsx(_,{card:"DeviceStorageCard",data:f,useSocketioSupport:z,useCentrifugeSupport:D,useMittSupport:$,centrifugeChannel:G,methods:{update:({value:X})=>{P(X)},remove:()=>{localStorage.removeItem(Z),P("")}},children:ef.jsx("input",{type:"hidden",id:U,name:U,value:T})})},aU=ZZ;var eU=C({name:"DeviceStorageCard",component:aU,metadata:{author:"PieData"}});var qf=require("react");var fU=require("react/jsx-runtime"),zZ=({data:f})=>{let{name:U,key:Z,value:H,useSocketioSupport:z,useCentrifugeSupport:D,useMittSupport:$,centrifugeChannel:G}=f,[T,P]=qf.useState(H);return qf.useEffect(()=>{P(H)},[H]),qf.useEffect(()=>{if(typeof window==="undefined")return;let X=window.Telegram?.WebApp?.CloudStorage;if(!X)return;X.setItem(Z,T)},[Z,T]),fU.jsx(_,{card:"CloudStorageCard",data:f,useSocketioSupport:z,useCentrifugeSupport:D,useMittSupport:$,centrifugeChannel:G,methods:{update:({value:X})=>{P(X)},remove:()=>{let X=window.Telegram?.WebApp?.CloudStorage;if(X)X.removeItem(Z);P("")}},children:fU.jsx("input",{type:"hidden",id:U,name:U,value:T})})},fH=zZ;var UH=C({name:"CloudStorageCard",component:fH,metadata:{author:"PieData"}});var Bf=require("react");var UU=require("react/jsx-runtime"),DZ=({data:f})=>{let{name:U,key:Z,value:H,useSocketioSupport:z,useCentrifugeSupport:D,useMittSupport:$,centrifugeChannel:G}=f,[T,P]=Bf.useState(H);return Bf.useEffect(()=>{P(H)},[H]),Bf.useEffect(()=>{if(typeof window==="undefined")return;let X=window.Telegram?.WebApp?.SecureStorage;if(!X)return;X.setItem(Z,T)},[Z,T]),UU.jsx(_,{card:"SecureStorageCard",data:f,useSocketioSupport:z,useCentrifugeSupport:D,useMittSupport:$,centrifugeChannel:G,methods:{update:({value:X})=>{P(X)},remove:()=>{let X=window.Telegram?.WebApp?.SecureStorage;if(X)X.removeItem(Z);P("")}},children:UU.jsx("input",{type:"hidden",id:U,name:U,value:T})})},HH=DZ;var ZH=C({name:"SecureStorageCard",component:HH,metadata:{author:"PieData"}});var M=require("react");var HU=require("react/jsx-runtime"),$Z=({data:f,content:U})=>{let{useLoader:Z,noReturn:H,returnType:z,useSocketioSupport:D,useCentrifugeSupport:$,useMittSupport:G,centrifugeChannel:T}=f,P=M.useContext(w),X=M.useContext(x)??F,[B,q]=M.useState(!1),[Y,I]=M.useState(null),V=M.useRef(U),J=M.useContext(N),W=M.useCallback((R)=>{if(R===null)q(!0);else if(q(!1),!H)V.current=R;if(!H)I(R)},[H]),Q=M.useCallback((R)=>{V.current=R.content,I(R.content)},[]),O=M.useCallback((R)=>{if(R===null)q(!0);else if(q(!1),!H)for(let Wf of R)J?.emit(Wf.name,Wf.data)},[H,J]);if(M.useEffect(()=>{I(U),q(!1)},[U]),!Y&&Z)return P;return HU.jsx(_,{card:"AjaxGroupCard",data:f,methods:{changeContent:Q},useSocketioSupport:D,useCentrifugeSupport:$,useMittSupport:G,centrifugeChannel:T,children:HU.jsx(X,{uiConfig:Y??V.current,setUiAjaxConfiguration:z==="events"?O:W})})},zH=$Z;var DH=C({name:"AjaxGroupCard",component:zH,metadata:{author:"Swarm.ing",description:"Group card with AJAX support"}});var ZU=require("react");var yf=require("react/jsx-runtime"),TZ=({data:f,content:U,setUiAjaxConfiguration:Z})=>{let{name:H,url:z,sx:D}=f,$=ZU.useContext(y),G=ZU.useContext(x)??F;return yf.jsx(_,{card:H,data:f,children:yf.jsx("div",{style:D,id:H,onClick:(P)=>{if(z)if(P.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(z))window.location.href=z;else $?.(z)},children:yf.jsx(G,{setUiAjaxConfiguration:Z,uiConfig:U})})})},$H=TZ;var TH=C({name:"BoxCard",component:$H,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var Hf=require("react"),Zf=require("@tanstack/react-query");var jf=require("react");var mf=require("react"),of=new Map,Ef=new Map;function kf(f,U){let Z=`${f}::${U}`,H=f?of.get(Z):void 0,[z,D]=mf.useState(H??null);return mf.useEffect(()=>{if(!f)return;if(of.has(Z)){D(of.get(Z));return}let $=Ef.get(Z);if(!$)$=fetch(f+`api/support/${U}`,{method:"GET"}).then((T)=>T.json()).then((T)=>{return of.set(Z,T),Ef.delete(Z),T}).catch((T)=>{throw Ef.delete(Z),T}),Ef.set(Z,$);let G=!1;return $.then((T)=>{if(!G)D(T)}).catch(()=>{}),()=>{G=!0}},[f,U,Z]),z}var zU=null,GH=null;function PH(){GH?.()}function DU(){if(typeof window==="undefined")return Promise.resolve();if(typeof window.sid!=="undefined")return Promise.resolve();if(!zU)zU=new Promise((f)=>{GH=()=>{f()}});return zU}var GZ=({children:f})=>{let U=jf.useContext(k),Z=Of(),H=kf(Z,"socketIO"),z=(D)=>{if(typeof window!=="undefined")window.sid=D.sid,PH(),console.log(`SocketIO initialized: ${window.sid}`)};return jf.useEffect(()=>{if(!U)return;let D=()=>{console.log("SocketIO connected")},$=(G)=>{console.log(`SocketIO disconnected: ${G}`),U.connect()};if(H)U.on("pieinit",z),U.on("connect",D),U.on("disconnect",$),U.connect();return()=>{if(H)U.off("pieinit",z),U.off("connect",D),U.off("disconnect",$),U.disconnect()}},[U,H]),f},l=GZ;var xf=require("react");var PZ=({children:f})=>{let U=xf.useContext(m),Z=Of(),H=kf(Z,"centrifuge");return xf.useEffect(()=>{if(!U)return;let z=()=>{console.log("Centrifuge connected")},D=($)=>{console.log("Centrifuge disconnected:",$)};if(H)U.on("connected",z),U.on("disconnected",D),U.connect();return()=>{if(H)U.disconnect()}},[U,H]),f},r=PZ;var IH=require("axios-date-transformer");var VH=require("react/jsx-runtime");function Uf(f,U,Z){if(!U)return Z;let H=f.replace(/^\//,""),z=U[H];if(!z)return Z;return VH.jsx(Kf,{uiConfig:z})}var K=require("react/jsx-runtime"),VZ=({location:f,fallback:U,piecache:Z,onError:H,queryOptions:z})=>{let D=b(),$=v(),G=o(),T=Hf.useMemo(()=>IH.createAxiosDateTransformer({baseURL:D||""}),[D]),P=Hf.useMemo(()=>j(),[]),X=Hf.useMemo(()=>D?c(D):null,[D]),B=Hf.useMemo(()=>D?p(D,$):null,[D,$]),{data:q,isLoading:Y,error:I}=Zf.useQuery({queryKey:["uiConfig",f.pathname+f.search,D],enabled:!!D,queryFn:async()=>{let J=new URLSearchParams(f.search);J.set("__pieroot","web");let W="/api/content"+f.pathname+"?"+J.toString();if(G)console.log("[PieRoot] Fetching UI configuration from:",W);let Q=await T.get(W,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(G)console.log("[PieRoot] Received UI configuration:",Q.data);return Q.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(J)=>Math.min(1000*2**J,30000),...z}),V=Uf(f.pathname,Z,U);if(!D)return V??null;if(G)console.log("[PieRoot] Rendering with location:",f),console.log("[PieRoot] API_SERVER:",D),console.log("[PieRoot] CENTRIFUGE_SERVER:",$),console.log("[PieRoot] Fallback provided:",!!U),console.log("[PieRoot] Piecache provided:",!!Z);if(I){if(G)console.error("[PieRoot] Error fetching UI configuration:",I),console.error("[PieRoot] Error details:",{message:I.message,status:I.response?.status,data:I.response?.data});return H?.(),V}if(Y||!q){if(G)console.log("[PieRoot] Loading state:",{isLoading:Y,hasUiConfiguration:!!q});return V}if(G)console.log("[PieRoot] UI configuration loaded successfully:",q),console.log("[PieRoot] Rendering UI with configuration");return K.jsx(N.Provider,{value:P,children:K.jsx(k.Provider,{value:X,children:K.jsx(m.Provider,{value:B,children:K.jsx(w.Provider,{value:U??K.jsx(K.Fragment,{}),children:K.jsx(l,{children:K.jsx(r,{children:K.jsx("form",{id:"piedata_global_form",action:D+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:K.jsx(F,{uiConfig:q})})})})})})})})},IZ=(f)=>{let U=Hf.useMemo(()=>new Zf.QueryClient,[]);return K.jsx(y.Provider,{value:f.onNavigate,children:K.jsx(u.Provider,{value:f.config,children:K.jsx(Zf.QueryClientProvider,{client:U,children:K.jsx(VZ,{...f})})})})},JH=IZ;var zf=require("react"),Df=require("@tanstack/react-query");var YH=require("axios-date-transformer");var df=require("react");var uf=({onError:f}={})=>{let[U,Z]=df.useState(null),H=YU();return df.useEffect(()=>{if(typeof window==="undefined")return;let z=window.Telegram?.WebApp;if(!z)return;try{z.ready?.()}catch(D){f?.()}if(H==="telegram_expanded"&&(z.platform==="ios"||z.platform==="android"))z.expand();Z(z)},[]),U};var S=require("react/jsx-runtime"),JZ=({location:f,fallback:U,piecache:Z,onError:H,queryOptions:z})=>{let D=b(),$=v(),G=o(),T=zf.useMemo(()=>YH.createAxiosDateTransformer({baseURL:D}),[D]),P=zf.useMemo(()=>j(),[]),X=zf.useMemo(()=>D?c(D):null,[D]),B=zf.useMemo(()=>D?p(D,$):null,[D,$]),q=uf({onError:H}),{data:Y,isLoading:I,error:V}=Df.useQuery({queryKey:["uiConfig",f.pathname+f.search,q?.initData],enabled:!!q?.initData,queryFn:async()=>{let W=new URLSearchParams(f.search);if(W.set("__pieroot","telegram"),q?.initData)W.set("initData",q.initData);let Q="/api/content"+f.pathname+"?"+W.toString();if(G)console.log("[PieRoot] Fetching UI configuration from:",Q);let O=await T.get(Q,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(G)console.log("[PieRoot] Received UI configuration:",O.data);return O.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(W)=>Math.min(1000*2**W,30000),...z}),J=Uf(f.pathname,Z,U);if(!D)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(V&&G)return console.error("[PieRoot] Error fetching UI configuration:",V),console.error("[PieRoot] Error details:",{message:V.message,status:V.response?.status,data:V.response?.data}),H?.(),J;if(I||!Y){if(G)console.log("[PieRoot] Loading state:",{isLoading:I,hasUiConfiguration:!!Y});return J}if(G)console.log("[PieRoot] UI configuration loaded successfully:",Y),console.log("[PieRoot] Rendering UI with configuration");return S.jsx(N.Provider,{value:P,children:S.jsx(k.Provider,{value:X,children:S.jsx(m.Provider,{value:B,children:S.jsx(w.Provider,{value:U??S.jsx(S.Fragment,{}),children:S.jsx(l,{children:S.jsx(r,{children:S.jsx("form",{id:"piedata_global_form",action:D+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:S.jsx(F,{uiConfig:Y})})})})})})})})},YZ=(f)=>{let U=zf.useMemo(()=>new Df.QueryClient,[]);return S.jsx(y.Provider,{value:f.onNavigate,children:S.jsx(u.Provider,{value:f.config,children:S.jsx(Df.QueryClientProvider,{client:U,children:S.jsx(JZ,{...f})})})})},XH=YZ;var $f=require("react"),bf=require("@tanstack/react-query");var A=require("react/jsx-runtime"),XZ=({location:f,fallback:U,children:Z})=>{let H=b(),z=v(),D=o(),$=$f.useMemo(()=>j(),[]),G=$f.useMemo(()=>H?c(H):null,[H]),T=$f.useMemo(()=>H?p(H,z):null,[H,z]);if(D)console.log("[PieRoot] Rendering with location:",f),console.log("[PieRoot] API_SERVER:",H),console.log("[PieRoot] CENTRIFUGE_SERVER:",z),console.log("[PieRoot] Fallback provided:",!!U);return A.jsx(N.Provider,{value:$,children:A.jsx(k.Provider,{value:G,children:A.jsx(m.Provider,{value:T,children:A.jsx(w.Provider,{value:U??A.jsx(A.Fragment,{}),children:A.jsx(l,{children:A.jsx(r,{children:A.jsx("form",{id:"piedata_global_form",action:H+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:Z})})})})})})})},qZ=(f)=>{let[U]=$f.useState(()=>new bf.QueryClient);return A.jsx(y.Provider,{value:f.onNavigate,children:A.jsx(u.Provider,{value:f.config,children:A.jsx(bf.QueryClientProvider,{client:U,children:A.jsx(XZ,{...f})})})})},qH=qZ;var Tf=require("react"),Gf=require("@tanstack/react-query");var BH=require("axios-date-transformer");var gf=require("react"),vf=()=>{let[f,U]=gf.useState(null);return gf.useEffect(()=>{if(typeof window==="undefined")return;let Z=window.WebApp;if(!Z)return;Z.ready(),U(Z)},[]),f};var L=require("react/jsx-runtime"),BZ=({location:f,fallback:U,piecache:Z,onError:H,queryOptions:z})=>{let D=b(),$=v(),G=o(),T=Tf.useMemo(()=>BH.createAxiosDateTransformer({baseURL:D}),[D]),P=Tf.useMemo(()=>j(),[]),X=Tf.useMemo(()=>D?c(D):null,[D]),B=Tf.useMemo(()=>D?p(D,$):null,[D,$]),q=vf(),{data:Y,isLoading:I,error:V}=Gf.useQuery({queryKey:["uiConfig",f.pathname+f.search,q?.initData],queryFn:async()=>{let W=new URLSearchParams(f.search);if(W.set("__pieroot","max"),q?.initData)W.set("initData",q.initData);let Q="/api/content"+f.pathname+"?"+W.toString();if(G)console.log("[PieRoot] Fetching UI configuration from:",Q);let O=await T.get(Q,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(G)console.log("[PieRoot] Received UI configuration:",O.data);return O.data},enabled:!!q?.initData,staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(W)=>Math.min(1000*2**W,30000),...z}),J=Uf(f.pathname,Z,U);if(!D)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(V&&G)return console.error("[PieRoot] Error fetching UI configuration:",V),console.error("[PieRoot] Error details:",{message:V.message,status:V.response?.status,data:V.response?.data}),H?.(),J;if(I||!Y){if(G)console.log("[PieRoot] Loading state:",{isLoading:I,hasUiConfiguration:!!Y});return J}if(G)console.log("[PieRoot] UI configuration loaded successfully:",Y),console.log("[PieRoot] Rendering UI with configuration");return L.jsx(N.Provider,{value:P,children:L.jsx(k.Provider,{value:X,children:L.jsx(m.Provider,{value:B,children:L.jsx(w.Provider,{value:U??L.jsx(L.Fragment,{}),children:L.jsx(l,{children:L.jsx(r,{children:L.jsx("form",{id:"piedata_global_form",action:D+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:L.jsx(F,{uiConfig:Y})})})})})})})})},WZ=(f)=>{let U=Tf.useMemo(()=>new Gf.QueryClient,[]);return L.jsx(y.Provider,{value:f.onNavigate,children:L.jsx(u.Provider,{value:f.config,children:L.jsx(Gf.QueryClientProvider,{client:U,children:L.jsx(BZ,{...f})})})})},WH=WZ;var QH=require("react"),QZ=(f,U={},Z=[],H,z)=>{let D=z?.renderingLogEnabled??!1,$=z?.timeout,G=z?.retryPolicy,T=G?.maxRetries??0,P=G?.baseDelay??1000,X=G?.retryOn??[502,503,504];if(D)console.log("Registering AJAX: ",H,U,Z);return async(B={})=>{if(typeof window==="undefined"||typeof document==="undefined"){if(D)console.warn("getAjaxSubmit called on server, skipping DOM-dependent logic");return}let q=z?.apiServer;if(!q){if(D)console.warn("AJAX skipped: apiServer is missing");return}if(!H||!f){if(D)console.warn("AJAX skipped: pathname or setUiAjaxConfiguration is missing");return}if(Z.includes("sid"))await DU();let Y=new FormData;for(let[J,W]of Object.entries({...U,...B}))Y.append(J,W);for(let J of Z)if(J==="sid"){if(!window.sid)throw new Error("SocketIO isn't initialized properly");Y.append("sid",window.sid)}else{let W=document.getElementsByName(J);if(!W.length){if(D)console.warn(`No input found with name ${J}`);continue}let Q=W[0];if(Q instanceof HTMLInputElement)if(Q.type==="file"&&Q.files)Array.from(Q.files).forEach((O)=>Y.append(J,O));else Y.append(J,Q.value);else if(Q instanceof HTMLTextAreaElement)Y.append(J,Q.value)}let I=q+"api/ajax_content"+H;f(null);let V;for(let J=0;J<=T;J++){if(J>0){let O=P*2**(J-1);if(D)console.log(`AJAX retry ${J}/${T} after ${O}ms`);await new Promise((R)=>setTimeout(R,O))}let W=$!=null?new AbortController:null,Q=W&&setTimeout(()=>W.abort(),$);try{let O=await fetch(I,{method:"POST",body:Y,signal:W?.signal});if(Q)clearTimeout(Q);if(!O.ok&&X.includes(O.status)&&J<T){V=new Error(`HTTP ${O.status}`);continue}let Wf=(O.headers.get("content-type")||"").includes("application/json");if(!!O.body?.getReader&&!Wf){let Qf=O.body.getReader(),MH=new TextDecoder,n="";while(!0){let{done:cf,value:AH}=await Qf.read();if(cf)break;n+=MH.decode(AH,{stream:!0});let TU=n.split(`
3
- `);n=TU.pop()??"";for(let NH of TU){let hf=NH.trim();if(!hf)continue;try{let yH=JSON.parse(hf);f([yH])}catch{if(D)console.warn("Failed to parse streamed line:",hf)}}}if(n.trim())try{let cf=JSON.parse(n);f([cf])}catch{if(D)console.warn("Failed to parse final streamed line:",n)}return{}}else{let Qf=await O.json();return f(Qf),Qf}}catch(O){if(Q)clearTimeout(Q);if(V=O,J<T)continue;if(D)console.error("AJAX request failed:",O);return f(null),O}}if(D)console.error("AJAX request failed after retries:",V);return f(null),V}},CH=(f,U={},Z=[],H,z)=>{let{apiServer:D,enableRenderingLog:$}=s(),G=JSON.stringify(U),T=JSON.stringify(Z),P=JSON.stringify(z);return QH.useMemo(()=>QZ(f,U,Z,H,{apiServer:D,renderingLogEnabled:$,timeout:z?.timeout,retryPolicy:z?.retryPolicy}),[f,G,T,H,D,$,P])};var OH=require("@openai/agents"),pf=require("react");var _H=/^pie(.+?)_(.+)$/;function $U(f=j(),U={}){let Z=[],H=new Set;for(let z of f.all.keys()){if(typeof z!=="string")continue;let D=z.match(_H);if(!D)continue;let[,$,G]=D,T={methodName:$,cardName:G,eventName:z};if(U.filter&&!U.filter(T))continue;let P=U.nameFor?.(T)??`${G}_${$}`;if(H.has(P))continue;H.add(P);let X=U.describe?.(T)??`Invokes the "${$}" method on the PieCard "${G}" by emitting the in-process mitt event "${z}". The optional "payload" argument is forwarded verbatim to the card's handler.`;Z.push(OH.tool({name:P,description:X,strict:!1,parameters:{type:"object",properties:{payload:{description:"Arbitrary JSON payload forwarded to the PieCard method handler. Omit for fire-and-forget calls."}},required:[],additionalProperties:!0},execute:async(B)=>{let q=B?.payload;return f.emit(z,q),`Emitted "${z}"`}}))}return Z}function RH(f={}){let Z=pf.useContext(N)??j(),H=[];for(let T of Z.all.keys())if(typeof T==="string"&&_H.test(T))H.push(T);H.sort();let z=H.join("|"),{filter:D,describe:$,nameFor:G}=f;return pf.useMemo(()=>$U(Z,{filter:D,describe:$,nameFor:G}),[Z,z,D,$,G])}var wH=require("clsx"),FH=require("tailwind-merge");function KH(...f){return FH.twMerge(wH.clsx(f))}var SH=()=>{if(typeof document==="undefined")return;let f=document.getElementById("piedata_global_form");f&&f.submit()};var LH=(f,U)=>`${f}${_f}${U}`;
2
+ var xH=Object.create;var{getPrototypeOf:dH,defineProperty:Vf,getOwnPropertyNames:CU,getOwnPropertyDescriptor:uH}=Object,JU=Object.prototype.hasOwnProperty;var YU=(f,U,P)=>{P=f!=null?xH(dH(f)):{};let H=U||!f||!f.__esModule?Vf(P,"default",{value:f,enumerable:!0}):P;for(let D of CU(f))if(!JU.call(H,D))Vf(H,D,{get:()=>f[D],enumerable:!0});return H},IU=new WeakMap,bH=(f)=>{var U=IU.get(f),P;if(U)return U;if(U=Vf({},"__esModule",{value:!0}),f&&typeof f==="object"||typeof f==="function")CU(f).map((H)=>!JU.call(U,H)&&Vf(U,H,{get:()=>f[H],enumerable:!(P=uH(f,H))||P.enumerable}));return IU.set(f,U),U};var gH=(f,U)=>{for(var P in U)Vf(f,P,{get:U[P],enumerable:!0,configurable:!0,set:(H)=>U[P]=()=>H})};var SP={};gH(SP,{useWebApp:()=>bf,usePieMittAgentTools:()=>MH,usePieEmit:()=>wU,useOpenAIWebRTC:()=>Cf,useMaxWebApp:()=>pf,useAjaxSubmit:()=>KH,unregisterComponent:()=>MU,submitGlobalForm:()=>oH,registry:()=>g,registerPieComponent:()=>W,registerMultipleComponents:()=>FU,readAjaxKey:()=>zU,pieName:()=>yH,hasComponent:()=>LU,getRegistrySize:()=>oU,getRegistryEntry:()=>s,getMittAgentTools:()=>TU,getComponentMeta:()=>AU,getAllRegisteredComponents:()=>NU,cn:()=>NH,UnionCard:()=>bU,UIRendererContext:()=>o,UILoading:()=>Sf,UI:()=>w,SessionStorageCard:()=>eU,SequenceCard:()=>xU,SecureStorageCard:()=>ZH,PieTelegramRoot:()=>WH,PieRoot:()=>qH,PieMaxRoot:()=>_H,PieCard:()=>_,PieBaseRoot:()=>QH,PIEBREAK:()=>Rf,OneOfCard:()=>JH,IOEventsCard:()=>sU,HiddenCard:()=>lU,HTMLEmbedCard:()=>cU,DeviceStorageCard:()=>UH,CloudStorageCard:()=>PH,BoxCard:()=>VH,AutoRedirectCard:()=>iU,AjaxGroupCard:()=>zH});module.exports=bH(SP);var d=require("react");var Wf=require("react"),u=Wf.createContext(null),i=()=>{let f=Wf.useContext(u);if(!f)throw new Error("usePieConfig must be used within PieConfigProvider");return f},b=()=>{let{apiServer:f}=i();return f},Qf=b,v=()=>{let{centrifugeServer:f}=i();return f};var m=()=>{let{enableRenderingLog:f}=i();return f},OU=m,XU=()=>{let{pageProcessor:f}=i();return f};var Rf="__piedemo__";var qU=require("react"),rf=require("centrifuge"),GU=new Map,p=(f,U)=>{if(!U)return null;let P=`${f}::${U}`,H=GU.get(P);if(H)return H;async function D(){let Z=await fetch(f+"api/centrifuge/gen_token");if(!Z.ok){if(Z.status===403)throw new rf.Centrifuge.UnauthorizedError("Backend is not answering");throw new Error(`Unexpected status code ${Z.status}`)}return(await Z.json()).token}let z=new rf.Centrifuge(U,{getToken:D});return GU.set(P,z),z},vH=qU.createContext(null),k=vH;var WU=require("socket.io-client"),QU=require("react"),BU=new Map,c=(f)=>{let U=BU.get(f);if(U)return U;let P=WU.io(f,{autoConnect:!1,transports:["websocket"]});return BU.set(f,P),P},pH=QU.createContext(null),j=pH;var RU=YU(require("mitt")),t=require("react"),nf=null;function x(){if(!nf)nf=RU.default();return nf}var _U=t.createContext(null);function wU(f){let U=t.useContext(_U);return t.useCallback((P,H)=>{(U??x()).emit(`pie${P}_${f}`,H)},[f,U])}var N=_U;var cH=({card:f,data:U,children:P,useSocketioSupport:H=!1,useCentrifugeSupport:D=!1,useMittSupport:z=!1,centrifugeChannel:Z=void 0,methods:T=void 0})=>{let $=OU(),V=d.useRef(T);if(V.current=T,$)console.log("[PieCard] Rendering card:",f),console.log("[PieCard] Card data:",U),console.log("[PieCard] Component name:",U?.name),console.log("[PieCard] Real-time support:",{socketio:H,centrifuge:D,mitt:z,centrifugeChannel:Z}),console.log("[PieCard] Methods:",T?Object.keys(T):"none"),console.log("[PieCard] Has children:",!!P);let O=d.useContext(j),X=d.useContext(k),G=d.useContext(N);if(d.useEffect(()=>{if(!O||!H||!V.current||!U.name){if($&&H)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!O,useSocketioSupport:H,hasMethods:!!V.current,hasDataName:!!U?.name});return}let I=Object.keys(V.current??{}).map((Y)=>{let C=`pie${Y}_${U.name}`;if($)console.log(`[PieCard] Socket.IO registering event: ${C}`);let q=(B)=>{V.current?.[Y]?.(B)};return O.on(C,q),[C,q]});return()=>{I.forEach(([Y,C])=>{if($)console.log(`[PieCard] Socket.IO unregistering event: ${Y}`);O.off(Y,C)})}},[O,U.name,H]),d.useEffect(()=>{if(!X||!D||!Z||!U.name){if($&&D)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!X,useCentrifugeSupport:D,hasCentrifugeChannel:!!Z,hasMethods:!!V.current,hasDataName:!!U?.name});return}let I=Object.keys(V.current??{}).map((Y)=>{let C=`pie${Y}_${U.name}_${Z}`;if($)console.log(`[PieCard] Centrifuge subscribing to channel: ${C}`);let q=X.newSubscription(C);return q.on("publication",(B)=>{if($)console.log(`[PieCard] Centrifuge received data on ${C}:`,B.data);V.current?.[Y]?.(B.data)}),q.subscribe(),q});return()=>{I.forEach((Y)=>{if($)console.log("[PieCard] Centrifuge unsubscribing from channel");Y.unsubscribe(),X.removeSubscription(Y)})}},[X,Z,U.name,D]),d.useEffect(()=>{if(!G||!z||!U.name){if($&&z)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!G,useMittSupport:z,hasMethods:!!V.current,hasDataName:!!U?.name});return}let J=Object.keys(V.current??{}),I={};return J.forEach((Y)=>{let C=`pie${Y}_${U.name}`,q=(B)=>{if($)console.log(`[PieCard] Mitt registering event: ${C}`);V.current?.[Y]?.(B)};I[C]=q,G.on(C,q)}),()=>{Object.entries(I).forEach(([Y,C])=>{if($)console.log(`[PieCard] Mitt unregistering event: ${Y}`);G.off(Y,C)})}},[G,U.name,z]),$)console.log("[PieCard] Rendering complete, returning children");return P},_=cH;var KU=require("react"),tf=new Map;function SU(f,U){return KU.lazy(()=>{if(tf.has(U))return tf.get(U);let P=f().then((H)=>H);return tf.set(U,P),P})}var g=new Map,hH=(f)=>{if(!f.name)throw new Error("Component registration requires a name");if(!f.component&&!f.loader)throw new Error(`Component "${f.name}" requires component or loader`);let U={name:f.name,component:f.component,loader:f.loader,metadata:f.metadata,fallback:f.fallback,isLazy:!1};if(!U.component&&U.loader)U.component=SU(U.loader,f.name),U.loader=void 0,U.isLazy=!0;return U};function W(f){let U=hH(f);return g.set(U.name,U),U.component}var FU=(f)=>{f.forEach((U)=>W(U))},MU=(f)=>{g.delete(f)},LU=(f)=>{return g.has(f)},AU=(f)=>{return g.get(f)?.metadata},s=(f)=>{return g.get(f)},NU=()=>{return Array.from(g.keys())},oU=()=>{return g.size};var a=require("react");var yU=require("react"),_f=require("react/jsx-runtime"),lH=yU.createContext(_f.jsx(_f.Fragment,{})),M=lH;var wf=require("react/jsx-runtime");function rH({uiConfig:f,setUiAjaxConfiguration:U}){let P=a.useContext(M),H=m();if(H)console.log("[UI] Rendering component:",f.card),console.log("[UI] Component data:",f.data),console.log("[UI] Component content:",f.content),console.log("[UI] Has setUiAjaxConfiguration:",!!U);let D=s(f.card);if(!D?.component){if(H)console.warn(`[UI] Component not found in registry: ${f.card}`),console.log("[UI] Returning fallback component");return P}if(H)console.log("[UI] Found component in registry:",{name:D.name,isLazy:D.isLazy,hasMetadata:!!D.metadata});let z=D.component,Z=wf.jsx(z,{data:f.data,content:f.content,setUiAjaxConfiguration:U});if(D.isLazy){if(H)console.log("[UI] Rendering lazy component with Suspense:",D.name);return wf.jsx(a.Suspense,{fallback:D.fallback?wf.jsx(D.fallback,{}):P,children:Z},`${D.name}`)}if(H)console.log("[UI] Rendering component directly:",D.name);return Z}var w=a.memo(rH);var Kf=require("react");var mU=require("react"),nH=mU.createContext(null),o=nH;var If=require("react/jsx-runtime");function EU({uiConfig:f,setUiAjaxConfiguration:U}){let P=Kf.useContext(M),H=m();if(H)console.log("[UILoading] Rendering fallback for:",f.card),console.log("[UILoading] Component data:",f.data),console.log("[UILoading] Component content:",f.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!U);let D=s(f.card);if(!D?.component){if(H)console.warn(`[UILoading] Component not found in registry: ${f.card}`),console.log("[UILoading] Returning fallback component");return P}if(H)console.log("[UILoading] Found component in registry:",{name:D.name,isLazy:D.isLazy,hasMetadata:!!D.metadata,hasFallback:!!D.fallback});if(D.fallback){if(H)console.log("[UILoading] Rendering fallback for:",D.name);let T=D.fallback;return If.jsx(T,{})}if(H)console.log("[UILoading] No fallback, rendering full component:",D.name);let z=D.component,Z=If.jsx(o.Provider,{value:EU,children:If.jsx(z,{data:f.data,content:f.content,setUiAjaxConfiguration:U})});if(D.isLazy)return If.jsx(Kf.Suspense,{fallback:P,children:Z},`${D.name}`);return Z}var Sf=EU;var kU=require("react");var Ff=require("react/jsx-runtime"),iH=({data:f,content:U,setUiAjaxConfiguration:P})=>{let{name:H,sx:D}=f,z=kU.useContext(o)??w;return Ff.jsx(_,{card:H,data:f,children:Ff.jsx("div",{style:D,id:H,children:U.map((Z,T)=>{return Ff.jsx(z,{uiConfig:Z,setUiAjaxConfiguration:P},`children-${T}`)})})})},jU=iH;var xU=W({name:"SequenceCard",component:jU,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var dU=require("react");var sf=require("react/jsx-runtime"),tH=({data:f,content:U,setUiAjaxConfiguration:P})=>{let{name:H}=f,D=dU.useContext(o)??w;return sf.jsx(_,{card:H,data:f,children:U.map((z,Z)=>{return sf.jsx(D,{uiConfig:z,setUiAjaxConfiguration:P},`children-${Z}`)})})},uU=tH;var bU=W({name:"UnionCard",component:uU,metadata:{author:"Swarm.ing",description:"Renders one of many components"}});var Mf=require("react"),gU=YU(require("html-react-parser"));var E=require("react");function sH(){let f=new AudioContext,U=f.createOscillator(),P=U.connect(f.createMediaStreamDestination());U.start();let H=P.stream.getAudioTracks()[0];return H.enabled=!1,H}function Cf(f=null,U){let[P,H]=E.useState(!1),D=E.useRef(null),z=E.useRef(null),Z=E.useRef(null),T=E.useCallback(async(X,G=!0)=>{if(D.current)$();let J=new RTCPeerConnection;if(J.onconnectionstatechange=()=>{if(J.connectionState==="connected")H(!0);else if(["disconnected","failed","closed"].includes(J.connectionState))H(!1)},J.ontrack=(R)=>{if(f)f.srcObject=R.streams[0]},G){let R=await navigator.mediaDevices.getUserMedia({audio:!0});J.addTrack(R.getTracks()[0],R)}else{let R=sH();J.addTrack(R)}let I=J.createDataChannel("oai-events");z.current=I,Z.current=new Promise((R)=>{I.addEventListener("open",()=>{R()})});let Y=await J.createOffer();await J.setLocalDescription(Y);let Q=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:Y.sdp,headers:{Authorization:`Bearer ${X}`,"Content-Type":"application/sdp"}})).text();await J.setRemoteDescription({type:"answer",sdp:Q}),D.current=J,await Z.current},[f]),$=E.useCallback(()=>{let X=z.current;if(X)X.close();D.current?.getSenders()?.forEach((G)=>G.track?.stop()),D.current?.close(),H(!1),D.current=null,z.current=null,Z.current=null},[f]),V=E.useCallback((X)=>{let G=z.current;if(!G){console.error("Data channel is not ready",X);return}let J=new Date().toLocaleTimeString();if(X.event_id=X.event_id||crypto.randomUUID(),G.send(JSON.stringify(X)),!X.timestamp)X.timestamp=J;U?.(X)},[U,f]),O=E.useCallback((X)=>{if(!z.current){console.error("Data channel is not ready");return}let J=()=>{V({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:X}]}}),V({type:"response.create"})};if(Z.current)Z.current.then(J);else J()},[U,f]);return E.useEffect(()=>{let X=z.current;if(!X)return;let G=(J)=>{let I=JSON.parse(J.data);if(!I.timestamp)I.timestamp=new Date().toLocaleTimeString();U?.(I)};return X.addEventListener("message",G),()=>{X.removeEventListener("message",G)}},[U,f]),{isSessionActive:P,startSession:T,stopSession:$,sendTextMessage:O}}var pU=require("react/jsx-runtime"),aH=({data:f})=>{let{html:U,useSocketioSupport:P,useCentrifugeSupport:H,useMittSupport:D,centrifugeChannel:z}=f,[Z,T]=Mf.useState(U),{isSessionActive:$,startSession:V,sendTextMessage:O}=Cf(null,(I)=>{if(console.log(I.type,I.type==="response.output_text.delta"&&I.delta),I.type==="response.output_text.delta"&&I.delta)T((Y)=>Y+I.delta)});return Mf.useEffect(()=>{T(U)},[U]),pU.jsx(_,{card:"HTMLEmbedCard",data:f,methods:{update:(I)=>{T(I.value)},generateUsingAI:async(I)=>{try{if(!$&&I.token)await V(I.token,!1);O(I.prompt)}catch(Y){console.error("Failed to generate using AI",Y)}},initializeAI:async(I)=>{if(!$&&I.token)await V(I.token,!1)}},useCentrifugeSupport:H,useSocketioSupport:P,useMittSupport:D,centrifugeChannel:z,children:gU.default(Z)})},vU=aH;var cU=W({name:"HTMLEmbedCard",component:vU,metadata:{author:"Swarm.ing"}});var Lf=require("react");var af=require("react/jsx-runtime"),eH=({data:f})=>{let{name:U,value:P,useSocketioSupport:H,useCentrifugeSupport:D,useMittSupport:z,centrifugeChannel:Z}=f,[T,$]=Lf.useState(P);return Lf.useEffect(()=>{$(P)},[P]),af.jsx(_,{card:"HiddenCard",data:f,useSocketioSupport:H,useCentrifugeSupport:D,useMittSupport:z,centrifugeChannel:Z,methods:{update:({value:V})=>{$(V)}},children:af.jsx("input",{type:"hidden",id:U,name:U,value:T})})},hU=eH;var lU=W({name:"HiddenCard",component:hU,metadata:{author:"Swarm.ing"}});var Jf=require("react");var rU=require("react"),fP=rU.createContext(void 0),y=fP;var Af=require("react/jsx-runtime"),UP=({data:f})=>{let{url:U}=f,P=Jf.useContext(y),H=Jf.useContext(M);return Jf.useEffect(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(U))window.location.href=U;else P?.(U)},[U,P]),Af.jsx(Af.Fragment,{children:H})},nU=UP;var iU=W({name:"AutoRedirectCard",component:nU,metadata:{author:"Swarm.ing"}});var h=require("react-toastify"),Nf=require("react-toastify");var ff=require("react");var e=require("react/jsx-runtime"),HP={bounce:h.Bounce,slide:h.Slide,zoom:h.Zoom,flip:h.Flip},PP=(f)=>{let U={...f,type:f.alertType,transition:f.transition?HP[f.transition]:void 0,position:f.position??"bottom-right",autoClose:f.autoClose??3000,style:{backgroundColor:"black",...f.sx}};Nf.toast(f.message,U)},DP=(f)=>{console.log("Log event",f)},ZP=(f)=>{if(typeof window==="undefined"||!window.Notification){console.warn("[IOEventsCard] Notifications API is not available");return}let U=()=>{try{new window.Notification(f.title,{body:f.message??f.subtitle,icon:f.icon,silent:f.silent})}catch(H){console.error("[IOEventsCard] Failed to show notification",H)}},P=window.Notification.permission;if(P==="granted"){U();return}if(P==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((H)=>{if(H==="granted")U()})},$P=({data:f})=>{let{useCentrifugeSupport:U,useSocketioSupport:P,useMittSupport:H,centrifugeChannel:D}=f,z=ff.useContext(y),Z=ff.useRef(z);Z.current=z;let T=ff.useMemo(()=>({alert:PP,log:DP,push:ZP,redirect:($)=>{if($.to){let V=$.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(V))window.location.href=V;else Z.current?.(V)}else window.location.reload()},reload:($)=>{if($.to){let V=$.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(V))window.location.href=V;else Z.current?.(V)}else window.location.reload()}}),[]);return e.jsx(e.Fragment,{children:e.jsx(_,{card:"IOEventsCard",data:f,useCentrifugeSupport:U,useSocketioSupport:P,useMittSupport:H,centrifugeChannel:D,methods:T,children:e.jsx(Nf.ToastContainer,{})})})},tU=$P;var sU=W({name:"IOEventsCard",component:tU,metadata:{author:"Swarm.ing"}});var Yf=require("react");var ef=require("react/jsx-runtime"),zP=({data:f})=>{let{name:U,key:P,value:H,useSocketioSupport:D,useCentrifugeSupport:z,useMittSupport:Z,centrifugeChannel:T}=f,[$,V]=Yf.useState(H);return Yf.useEffect(()=>{V(H)},[H]),Yf.useEffect(()=>{if(typeof window==="undefined")return;sessionStorage.setItem(P,$)},[P,$]),ef.jsx(_,{card:"SessionStorageCard",data:f,useSocketioSupport:D,useCentrifugeSupport:z,useMittSupport:Z,centrifugeChannel:T,methods:{update:({value:O})=>{V(O)},remove:()=>{sessionStorage.removeItem(P),V("")}},children:ef.jsx("input",{type:"hidden",id:U,name:U,value:$})})},aU=zP;var eU=W({name:"SessionStorageCard",component:aU,metadata:{author:"PieData"}});var Of=require("react");var fU=require("react/jsx-runtime"),TP=({data:f})=>{let{name:U,key:P,value:H,useSocketioSupport:D,useCentrifugeSupport:z,useMittSupport:Z,centrifugeChannel:T}=f,[$,V]=Of.useState(H);return Of.useEffect(()=>{V(H)},[H]),Of.useEffect(()=>{if(typeof window==="undefined")return;localStorage.setItem(P,$)},[P,$]),fU.jsx(_,{card:"DeviceStorageCard",data:f,useSocketioSupport:D,useCentrifugeSupport:z,useMittSupport:Z,centrifugeChannel:T,methods:{update:({value:O})=>{V(O)},remove:()=>{localStorage.removeItem(P),V("")}},children:fU.jsx("input",{type:"hidden",id:U,name:U,value:$})})},fH=TP;var UH=W({name:"DeviceStorageCard",component:fH,metadata:{author:"PieData"}});var Xf=require("react");var UU=require("react/jsx-runtime"),VP=({data:f})=>{let{name:U,key:P,value:H,useSocketioSupport:D,useCentrifugeSupport:z,useMittSupport:Z,centrifugeChannel:T}=f,[$,V]=Xf.useState(H);return Xf.useEffect(()=>{V(H)},[H]),Xf.useEffect(()=>{if(typeof window==="undefined")return;let O=window.Telegram?.WebApp?.CloudStorage;if(!O)return;O.setItem(P,$)},[P,$]),UU.jsx(_,{card:"CloudStorageCard",data:f,useSocketioSupport:D,useCentrifugeSupport:z,useMittSupport:Z,centrifugeChannel:T,methods:{update:({value:O})=>{V(O)},remove:()=>{let O=window.Telegram?.WebApp?.CloudStorage;if(O)O.removeItem(P);V("")}},children:UU.jsx("input",{type:"hidden",id:U,name:U,value:$})})},HH=VP;var PH=W({name:"CloudStorageCard",component:HH,metadata:{author:"PieData"}});var Gf=require("react");var HU=require("react/jsx-runtime"),IP=({data:f})=>{let{name:U,key:P,value:H,useSocketioSupport:D,useCentrifugeSupport:z,useMittSupport:Z,centrifugeChannel:T}=f,[$,V]=Gf.useState(H);return Gf.useEffect(()=>{V(H)},[H]),Gf.useEffect(()=>{if(typeof window==="undefined")return;let O=window.Telegram?.WebApp?.SecureStorage;if(!O)return;O.setItem(P,$)},[P,$]),HU.jsx(_,{card:"SecureStorageCard",data:f,useSocketioSupport:D,useCentrifugeSupport:z,useMittSupport:Z,centrifugeChannel:T,methods:{update:({value:O})=>{V(O)},remove:()=>{let O=window.Telegram?.WebApp?.SecureStorage;if(O)O.removeItem(P);V("")}},children:HU.jsx("input",{type:"hidden",id:U,name:U,value:$})})},DH=IP;var ZH=W({name:"SecureStorageCard",component:DH,metadata:{author:"PieData"}});var L=require("react");var PU=require("react/jsx-runtime"),CP=({data:f,content:U})=>{let{useLoader:P,noReturn:H,returnType:D,useSocketioSupport:z,useCentrifugeSupport:Z,useMittSupport:T,centrifugeChannel:$}=f,V=L.useContext(M),O=L.useContext(o)??w,[X,G]=L.useState(!1),[J,I]=L.useState(null),Y=L.useRef(U),C=L.useContext(N),q=L.useCallback((R)=>{if(R===null)G(!0);else if(G(!1),!H)Y.current=R;if(!H)I(R)},[H]),B=L.useCallback((R)=>{Y.current=R.content,I(R.content)},[]),Q=L.useCallback((R)=>{if(R===null)G(!0);else if(G(!1),!H)for(let qf of R)C?.emit(qf.name,qf.data)},[H,C]);if(L.useEffect(()=>{I(U),G(!1)},[U]),!J&&P)return V;return PU.jsx(_,{card:"AjaxGroupCard",data:f,methods:{changeContent:B},useSocketioSupport:z,useCentrifugeSupport:Z,useMittSupport:T,centrifugeChannel:$,children:PU.jsx(O,{uiConfig:J??Y.current,setUiAjaxConfiguration:D==="events"?Q:q})})},$H=CP;var zH=W({name:"AjaxGroupCard",component:$H,metadata:{author:"Swarm.ing",description:"Group card with AJAX support"}});var DU=require("react");var of=require("react/jsx-runtime"),JP=({data:f,content:U,setUiAjaxConfiguration:P})=>{let{name:H,url:D,sx:z}=f,Z=DU.useContext(y),T=DU.useContext(o)??w;return of.jsx(_,{card:H,data:f,children:of.jsx("div",{style:z,id:H,onClick:(V)=>{if(D)if(V.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(D))window.location.href=D;else Z?.(D)},children:of.jsx(T,{setUiAjaxConfiguration:P,uiConfig:U})})})},TH=JP;var VH=W({name:"BoxCard",component:TH,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var IH=require("react");var yf=require("react/jsx-runtime"),YP=({data:f,content:U,setUiAjaxConfiguration:P})=>{let{name:H,sx:D}=f,z=IH.useContext(o)??w;return yf.jsx(_,{card:H,data:f,children:yf.jsx("div",{style:D,id:H,children:U.map((Z,T)=>{return yf.jsx(z,{uiConfig:Z,setUiAjaxConfiguration:P},`children-${T}`)})})})},CH=YP;var JH=W({name:"OneOfCard",component:CH,metadata:{author:"Swarm.ing",description:"Different variants"}});var Hf=require("react"),Pf=require("@tanstack/react-query");var xf=require("react");var kf=require("react"),mf=new Map,Ef=new Map;function jf(f,U){let P=`${f}::${U}`,H=f?mf.get(P):void 0,[D,z]=kf.useState(H??null);return kf.useEffect(()=>{if(!f)return;if(mf.has(P)){z(mf.get(P));return}let Z=Ef.get(P);if(!Z)Z=fetch(f+`api/support/${U}`,{method:"GET"}).then(($)=>$.json()).then(($)=>{return mf.set(P,$),Ef.delete(P),$}).catch(($)=>{throw Ef.delete(P),$}),Ef.set(P,Z);let T=!1;return Z.then(($)=>{if(!T)z($)}).catch(()=>{}),()=>{T=!0}},[f,U,P]),D}var ZU=null,YH=null;function OH(){YH?.()}function $U(){if(typeof window==="undefined")return Promise.resolve();if(typeof window.sid!=="undefined")return Promise.resolve();if(!ZU)ZU=new Promise((f)=>{YH=()=>{f()}});return ZU}var OP=({children:f})=>{let U=xf.useContext(j),P=Qf(),H=jf(P,"socketIO"),D=(z)=>{if(typeof window!=="undefined")window.sid=z.sid,OH(),console.log(`SocketIO initialized: ${window.sid}`)};return xf.useEffect(()=>{if(!U)return;let z=()=>{console.log("SocketIO connected")},Z=(T)=>{console.log(`SocketIO disconnected: ${T}`),U.connect()};if(H)U.on("pieinit",D),U.on("connect",z),U.on("disconnect",Z),U.connect();return()=>{if(H)U.off("pieinit",D),U.off("connect",z),U.off("disconnect",Z),U.disconnect()}},[U,H]),f},l=OP;var df=require("react");var XP=({children:f})=>{let U=df.useContext(k),P=Qf(),H=jf(P,"centrifuge");return df.useEffect(()=>{if(!U)return;let D=()=>{console.log("Centrifuge connected")},z=(Z)=>{console.log("Centrifuge disconnected:",Z)};if(H)U.on("connected",D),U.on("disconnected",z),U.connect();return()=>{if(H)U.disconnect()}},[U,H]),f},r=XP;var GH=require("axios-date-transformer");var XH=require("react/jsx-runtime");function Uf(f,U,P){if(!U)return P;let H=f.replace(/^\//,""),D=U[H];if(!D)return P;return XH.jsx(Sf,{uiConfig:D})}var K=require("react/jsx-runtime"),GP=({location:f,fallback:U,piecache:P,onError:H,queryOptions:D,disableGlobalForm:z})=>{let Z=b(),T=v(),$=m(),V=Hf.useMemo(()=>GH.createAxiosDateTransformer({baseURL:Z||""}),[Z]),O=Hf.useMemo(()=>x(),[]),X=Hf.useMemo(()=>Z?c(Z):null,[Z]),G=Hf.useMemo(()=>Z?p(Z,T):null,[Z,T]),{data:J,isLoading:I,error:Y}=Pf.useQuery({queryKey:["uiConfig",f.pathname+f.search,Z],enabled:!!Z,queryFn:async()=>{let q=new URLSearchParams(f.search);q.set("__pieroot","web");let B="/api/content"+f.pathname+"?"+q.toString();if($)console.log("[PieRoot] Fetching UI configuration from:",B);let Q=await V.get(B,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if($)console.log("[PieRoot] Received UI configuration:",Q.data);return Q.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(q)=>Math.min(1000*2**q,30000),...D}),C=Uf(f.pathname,P,U);if(!Z)return C??null;if($)console.log("[PieRoot] Rendering with location:",f),console.log("[PieRoot] API_SERVER:",Z),console.log("[PieRoot] CENTRIFUGE_SERVER:",T),console.log("[PieRoot] Fallback provided:",!!U),console.log("[PieRoot] Piecache provided:",!!P);if(Y){if($)console.error("[PieRoot] Error fetching UI configuration:",Y),console.error("[PieRoot] Error details:",{message:Y.message,status:Y.response?.status,data:Y.response?.data});return H?.(),C}if(I||!J){if($)console.log("[PieRoot] Loading state:",{isLoading:I,hasUiConfiguration:!!J});return C}if($)console.log("[PieRoot] UI configuration loaded successfully:",J),console.log("[PieRoot] Rendering UI with configuration");return K.jsx(N.Provider,{value:O,children:K.jsx(j.Provider,{value:X,children:K.jsx(k.Provider,{value:G,children:K.jsx(M.Provider,{value:U??K.jsx(K.Fragment,{}),children:K.jsx(l,{children:K.jsx(r,{children:z?K.jsx(w,{uiConfig:J}):K.jsx("form",{id:"piedata_global_form",action:Z+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:K.jsx(w,{uiConfig:J})})})})})})})})},qP=(f)=>{let U=Hf.useMemo(()=>new Pf.QueryClient,[]);return K.jsx(y.Provider,{value:f.onNavigate,children:K.jsx(u.Provider,{value:f.config,children:K.jsx(Pf.QueryClientProvider,{client:U,children:K.jsx(GP,{...f})})})})},qH=qP;var Df=require("react"),Zf=require("@tanstack/react-query");var BH=require("axios-date-transformer");var uf=require("react");var bf=({onError:f}={})=>{let[U,P]=uf.useState(null),H=XU();return uf.useEffect(()=>{if(typeof window==="undefined")return;let D=window.Telegram?.WebApp;if(!D)return;try{D.ready?.()}catch(z){f?.()}if(H==="telegram_expanded"&&(D.platform==="ios"||D.platform==="android"))D.expand();P(D)},[]),U};var S=require("react/jsx-runtime"),BP=({location:f,fallback:U,piecache:P,onError:H,queryOptions:D,disableGlobalForm:z})=>{let Z=b(),T=v(),$=m(),V=Df.useMemo(()=>BH.createAxiosDateTransformer({baseURL:Z}),[Z]),O=Df.useMemo(()=>x(),[]),X=Df.useMemo(()=>Z?c(Z):null,[Z]),G=Df.useMemo(()=>Z?p(Z,T):null,[Z,T]),J=bf({onError:H}),{data:I,isLoading:Y,error:C}=Zf.useQuery({queryKey:["uiConfig",f.pathname+f.search,J?.initData],enabled:!!J?.initData,queryFn:async()=>{let B=new URLSearchParams(f.search);if(B.set("__pieroot","telegram"),J?.initData)B.set("initData",J.initData);let Q="/api/content"+f.pathname+"?"+B.toString();if($)console.log("[PieRoot] Fetching UI configuration from:",Q);let R=await V.get(Q,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if($)console.log("[PieRoot] Received UI configuration:",R.data);return R.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(B)=>Math.min(1000*2**B,30000),...D}),q=Uf(f.pathname,P,U);if(!Z)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(C&&$)return console.error("[PieRoot] Error fetching UI configuration:",C),console.error("[PieRoot] Error details:",{message:C.message,status:C.response?.status,data:C.response?.data}),H?.(),q;if(Y||!I){if($)console.log("[PieRoot] Loading state:",{isLoading:Y,hasUiConfiguration:!!I});return q}if($)console.log("[PieRoot] UI configuration loaded successfully:",I),console.log("[PieRoot] Rendering UI with configuration");return S.jsx(N.Provider,{value:O,children:S.jsx(j.Provider,{value:X,children:S.jsx(k.Provider,{value:G,children:S.jsx(M.Provider,{value:U??S.jsx(S.Fragment,{}),children:S.jsx(l,{children:S.jsx(r,{children:z?S.jsx(w,{uiConfig:I}):S.jsx("form",{id:"piedata_global_form",action:Z+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:S.jsx(w,{uiConfig:I})})})})})})})})},WP=(f)=>{let U=Df.useMemo(()=>new Zf.QueryClient,[]);return S.jsx(y.Provider,{value:f.onNavigate,children:S.jsx(u.Provider,{value:f.config,children:S.jsx(Zf.QueryClientProvider,{client:U,children:S.jsx(BP,{...f})})})})},WH=WP;var $f=require("react"),gf=require("@tanstack/react-query");var A=require("react/jsx-runtime"),QP=({location:f,fallback:U,children:P,disableGlobalForm:H})=>{let D=b(),z=v(),Z=m(),T=$f.useMemo(()=>x(),[]),$=$f.useMemo(()=>D?c(D):null,[D]),V=$f.useMemo(()=>D?p(D,z):null,[D,z]);if(Z)console.log("[PieRoot] Rendering with location:",f),console.log("[PieRoot] API_SERVER:",D),console.log("[PieRoot] CENTRIFUGE_SERVER:",z),console.log("[PieRoot] Fallback provided:",!!U);return A.jsx(N.Provider,{value:T,children:A.jsx(j.Provider,{value:$,children:A.jsx(k.Provider,{value:V,children:A.jsx(M.Provider,{value:U??A.jsx(A.Fragment,{}),children:A.jsx(l,{children:A.jsx(r,{children:H?P:A.jsx("form",{id:"piedata_global_form",action:D+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:P})})})})})})})},RP=(f)=>{let[U]=$f.useState(()=>new gf.QueryClient);return A.jsx(y.Provider,{value:f.onNavigate,children:A.jsx(u.Provider,{value:f.config,children:A.jsx(gf.QueryClientProvider,{client:U,children:A.jsx(QP,{...f})})})})},QH=RP;var zf=require("react"),Tf=require("@tanstack/react-query");var RH=require("axios-date-transformer");var vf=require("react"),pf=()=>{let[f,U]=vf.useState(null);return vf.useEffect(()=>{if(typeof window==="undefined")return;let P=window.WebApp;if(!P)return;P.ready(),U(P)},[]),f};var F=require("react/jsx-runtime"),_P=({location:f,fallback:U,piecache:P,onError:H,queryOptions:D,disableGlobalForm:z})=>{let Z=b(),T=v(),$=m(),V=zf.useMemo(()=>RH.createAxiosDateTransformer({baseURL:Z}),[Z]),O=zf.useMemo(()=>x(),[]),X=zf.useMemo(()=>Z?c(Z):null,[Z]),G=zf.useMemo(()=>Z?p(Z,T):null,[Z,T]),J=pf(),{data:I,isLoading:Y,error:C}=Tf.useQuery({queryKey:["uiConfig",f.pathname+f.search,J?.initData],queryFn:async()=>{let B=new URLSearchParams(f.search);if(B.set("__pieroot","max"),J?.initData)B.set("initData",J.initData);let Q="/api/content"+f.pathname+"?"+B.toString();if($)console.log("[PieRoot] Fetching UI configuration from:",Q);let R=await V.get(Q,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if($)console.log("[PieRoot] Received UI configuration:",R.data);return R.data},enabled:!!J?.initData,staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(B)=>Math.min(1000*2**B,30000),...D}),q=Uf(f.pathname,P,U);if(!Z)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(C&&$)return console.error("[PieRoot] Error fetching UI configuration:",C),console.error("[PieRoot] Error details:",{message:C.message,status:C.response?.status,data:C.response?.data}),H?.(),q;if(Y||!I){if($)console.log("[PieRoot] Loading state:",{isLoading:Y,hasUiConfiguration:!!I});return q}if($)console.log("[PieRoot] UI configuration loaded successfully:",I),console.log("[PieRoot] Rendering UI with configuration");return F.jsx(N.Provider,{value:O,children:F.jsx(j.Provider,{value:X,children:F.jsx(k.Provider,{value:G,children:F.jsx(M.Provider,{value:U??F.jsx(F.Fragment,{}),children:F.jsx(l,{children:F.jsx(r,{children:z?F.jsx(w,{uiConfig:I}):F.jsx("form",{id:"piedata_global_form",action:Z+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:F.jsx(w,{uiConfig:I})})})})})})})})},wP=(f)=>{let U=zf.useMemo(()=>new Tf.QueryClient,[]);return F.jsx(y.Provider,{value:f.onNavigate,children:F.jsx(u.Provider,{value:f.config,children:F.jsx(Tf.QueryClientProvider,{client:U,children:F.jsx(_P,{...f})})})})},_H=wP;var wH=require("react"),zU=(f,U=!1)=>{if(f==="sid"){if(!window.sid)throw new Error("SocketIO isn't initialized properly");return[window.sid]}let P=document.getElementsByName(f);if(!P.length){if(U)console.warn(`No input found with name ${f}`);return[]}let H=P[0];if(H instanceof HTMLInputElement){if(H.type==="file"&&H.files)return Array.from(H.files);return[H.value]}if(H instanceof HTMLTextAreaElement)return[H.value];return[]},KP=(f,U={},P=[],H,D)=>{let z=D?.renderingLogEnabled??!1,Z=D?.timeout,T=D?.retryPolicy,$=T?.maxRetries??0,V=T?.baseDelay??1000,O=T?.retryOn??[502,503,504];if(z)console.log("Registering AJAX: ",H,U,P);return async(X={})=>{if(typeof window==="undefined"||typeof document==="undefined"){if(z)console.warn("getAjaxSubmit called on server, skipping DOM-dependent logic");return}let G=D?.apiServer;if(!G){if(z)console.warn("AJAX skipped: apiServer is missing");return}if(!H||!f){if(z)console.warn("AJAX skipped: pathname or setUiAjaxConfiguration is missing");return}if(P.includes("sid"))await $U();let J=new FormData;for(let[C,q]of Object.entries({...U,...X}))J.append(C,q);for(let C of P)for(let q of zU(C,z))J.append(C,q);let I=G+"api/ajax_content"+H;f(null);let Y;for(let C=0;C<=$;C++){if(C>0){let Q=V*2**(C-1);if(z)console.log(`AJAX retry ${C}/${$} after ${Q}ms`);await new Promise((R)=>setTimeout(R,Q))}let q=Z!=null?new AbortController:null,B=q&&setTimeout(()=>q.abort(),Z);try{let Q=await fetch(I,{method:"POST",body:J,signal:q?.signal});if(B)clearTimeout(B);if(!Q.ok&&O.includes(Q.status)&&C<$){Y=new Error(`HTTP ${Q.status}`);continue}let qf=(Q.headers.get("content-type")||"").includes("application/json");if(!!Q.body?.getReader&&!qf){let Bf=Q.body.getReader(),mH=new TextDecoder,n="";while(!0){let{done:hf,value:EH}=await Bf.read();if(hf)break;n+=mH.decode(EH,{stream:!0});let VU=n.split(`
3
+ `);n=VU.pop()??"";for(let kH of VU){let lf=kH.trim();if(!lf)continue;try{let jH=JSON.parse(lf);f([jH])}catch{if(z)console.warn("Failed to parse streamed line:",lf)}}}if(n.trim())try{let hf=JSON.parse(n);f([hf])}catch{if(z)console.warn("Failed to parse final streamed line:",n)}return{}}else{let Bf=await Q.json();return f(Bf),Bf}}catch(Q){if(B)clearTimeout(B);if(Y=Q,C<$)continue;if(z)console.error("AJAX request failed:",Q);return f(null),Q}}if(z)console.error("AJAX request failed after retries:",Y);return f(null),Y}},KH=(f,U={},P=[],H,D)=>{let{apiServer:z,enableRenderingLog:Z}=i(),T=JSON.stringify(U),$=JSON.stringify(P),V=JSON.stringify(D);return wH.useMemo(()=>KP(f,U,P,H,{apiServer:z,renderingLogEnabled:Z,timeout:D?.timeout,retryPolicy:D?.retryPolicy}),[f,T,$,H,z,Z,V])};var SH=require("@openai/agents"),cf=require("react");var FH=/^pie(.+?)_(.+)$/;function TU(f=x(),U={}){let P=[],H=new Set;for(let D of f.all.keys()){if(typeof D!=="string")continue;let z=D.match(FH);if(!z)continue;let[,Z,T]=z,$={methodName:Z,cardName:T,eventName:D};if(U.filter&&!U.filter($))continue;let V=U.nameFor?.($)??`${T}_${Z}`;if(H.has(V))continue;H.add(V);let O=U.describe?.($)??`Invokes the "${Z}" method on the PieCard "${T}" by emitting the in-process mitt event "${D}". The optional "payload" argument is forwarded verbatim to the card's handler.`;P.push(SH.tool({name:V,description:O,strict:!1,parameters:{type:"object",properties:{payload:{description:"Arbitrary JSON payload forwarded to the PieCard method handler. Omit for fire-and-forget calls."}},required:[],additionalProperties:!0},execute:async(X)=>{let G=X?.payload;return f.emit(D,G),`Emitted "${D}"`}}))}return P}function MH(f={}){let P=cf.useContext(N)??x(),H=[];for(let $ of P.all.keys())if(typeof $==="string"&&FH.test($))H.push($);H.sort();let D=H.join("|"),{filter:z,describe:Z,nameFor:T}=f;return cf.useMemo(()=>TU(P,{filter:z,describe:Z,nameFor:T}),[P,D,z,Z,T])}var LH=require("clsx"),AH=require("tailwind-merge");function NH(...f){return AH.twMerge(LH.clsx(f))}var oH=()=>{if(typeof document==="undefined")return;let f=document.getElementById("piedata_global_form");f&&f.submit()};var yH=(f,U)=>`${f}${Rf}${U}`;
@@ -361,5 +361,26 @@
361
361
  ],
362
362
  "$schema": "http://json-schema.org/draft-07/schema#"
363
363
  }
364
+ },
365
+ {
366
+ "card": "OneOfCard",
367
+ "data": {
368
+ "type": "object",
369
+ "properties": {
370
+ "name": {
371
+ "type": "string"
372
+ },
373
+ "sx": {
374
+ "type": "object",
375
+ "additionalProperties": {}
376
+ }
377
+ },
378
+ "additionalProperties": false,
379
+ "required": [
380
+ "name",
381
+ "sx"
382
+ ],
383
+ "$schema": "http://json-schema.org/draft-07/schema#"
384
+ }
364
385
  }
365
386
  ]
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Unit tests for `getAjaxSubmit` from `util/ajaxCommonUtils.ts`.
3
+ *
4
+ * `getAjaxSubmit` is a plain factory function (no React hooks) that builds
5
+ * the async submit callback used by `AjaxGroupCard` and similar containers.
6
+ * It contains several guard clauses that short-circuit execution when required
7
+ * arguments are absent — each of those is tested here so regressions in the
8
+ * guard logic surface immediately without needing a full render tree.
9
+ *
10
+ * Tests that require actual HTTP calls or DOM form collection belong in an
11
+ * integration layer; this file focuses on the observable API surface of the
12
+ * factory itself.
13
+ */
14
+ export {};
15
+ //# sourceMappingURL=ajaxCommonUtils.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ajaxCommonUtils.test.d.ts","sourceRoot":"","sources":["../../src/tests/ajaxCommonUtils.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Unit tests for `trackLazy` and `preloadComponent` from `util/lazy.ts`.
3
+ *
4
+ * These utilities wrap React.lazy with a shared module-promise cache keyed by
5
+ * component name. The cache prevents redundant network requests when the same
6
+ * lazy component mounts, unmounts, and remounts — or when a manual preload
7
+ * races an initial render.
8
+ *
9
+ * Note: React.lazy components can only be *rendered* inside a Suspense
10
+ * boundary, so these tests verify the caching contract and API shape rather
11
+ * than the rendered output.
12
+ */
13
+ export {};
14
+ //# sourceMappingURL=lazy.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazy.test.d.ts","sourceRoot":"","sources":["../../src/tests/lazy.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Unit tests for the `pieName` utility.
3
+ *
4
+ * `pieName(name, child)` builds a composite component identifier using the
5
+ * PieUI-internal separator constant (PIEBREAK = '__piedemo__'). This naming
6
+ * convention is shared between the runtime renderer and server-side UI-config
7
+ * generators, so any drift in the output format would cause silent mismatches
8
+ * in production. These tests pin the exact output so regressions surface
9
+ * immediately.
10
+ */
11
+ export {};
12
+ //# sourceMappingURL=pieName.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pieName.test.d.ts","sourceRoot":"","sources":["../../src/tests/pieName.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Unit tests for `waitForSidAvailable` and `markSidAvailable` from
3
+ * `util/waitForSidAvailable.ts`.
4
+ *
5
+ * These utilities coordinate the moment when a Socket.IO session ID (`sid`)
6
+ * becomes available on `window.sid` after the WebSocket handshake completes.
7
+ * Instead of polling, the module exposes a Promise singleton that resolves
8
+ * exactly once when `markSidAvailable()` is called by `SocketIOInitProvider`.
9
+ *
10
+ * Testing strategy:
11
+ * - When `window.sid` is already defined the function must resolve immediately.
12
+ * - `markSidAvailable` must resolve any in-flight promise.
13
+ * - The function must return a Promise (not throw synchronously).
14
+ * - Both exports must be callable without crashing.
15
+ *
16
+ * Important: the module stores its promise singleton at module scope, so tests
17
+ * that set `window.sid` clean up after themselves to avoid leaking state.
18
+ */
19
+ export {};
20
+ //# sourceMappingURL=waitForSidAvailable.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"waitForSidAvailable.test.d.ts","sourceRoot":"","sources":["../../src/tests/waitForSidAvailable.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG"}
@@ -26,6 +26,24 @@ export type GetAjaxSubmitOptions = {
26
26
  /** Retry policy for failed requests. No retries if omitted. */
27
27
  retryPolicy?: RetryPolicy;
28
28
  };
29
+ /**
30
+ * Reads the value(s) for a single dep name from the DOM, following the same
31
+ * convention used by Ajax cards. Returns an array because file inputs can
32
+ * contribute multiple values for the same key.
33
+ *
34
+ * - `'sid'` resolves to `window.sid`. The caller must ensure SocketIO is
35
+ * ready (e.g. via {@link waitForSidAvailable}) before calling this.
36
+ * - Other names are looked up via `document.getElementsByName`; only the
37
+ * first match is read.
38
+ * - `<input type="file">` returns every selected `File`.
39
+ * - Other `<input>` / `<textarea>` returns the current `.value`.
40
+ * - Missing inputs return `[]` (and emit a warning when `renderingLogEnabled`).
41
+ *
42
+ * Must run in a browser environment — relies on `document` and `window`.
43
+ *
44
+ * @throws if `depName === 'sid'` and `window.sid` is not initialized.
45
+ */
46
+ export declare const readAjaxKey: (depName: string, renderingLogEnabled?: boolean) => Array<string | File>;
29
47
  /**
30
48
  * Builds an async "submit" function that issues an AJAX request to
31
49
  * `api/ajax_content{pathname}` and streams (or JSON-decodes) the response
@@ -1 +1 @@
1
- {"version":3,"file":"ajaxCommonUtils.d.ts","sourceRoot":"","sources":["../../src/util/ajaxCommonUtils.ts"],"names":[],"mappings":"AAEA,OAAO,UAAU,CAAA;AACjB,OAAO,EAAE,0BAA0B,EAAe,MAAM,UAAU,CAAA;AAKlE;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACtB,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,kJAAkJ;IAClJ,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACrB,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG;IAC/B,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,uEAAuE;IACvE,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,WAAW,CAAA;CAC5B,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,aAAa,GACtB,yBAAyB,0BAA0B,EACnD,SAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,EAChC,YAAW,KAAK,CAAC,MAAM,CAAM,EAC7B,WAAW,MAAM,EACjB,UAAU,oBAAoB,MAahB,cAAa,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,iBA6LtD,CAAA;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,aAAa,GACtB,yBAAyB,0BAA0B,EACnD,SAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,EAChC,YAAW,KAAK,CAAC,MAAM,CAAM,EAC7B,WAAW,MAAM,EACjB,UAAU;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,WAAW,CAAA;CAAE,oBAnN9B,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,iBA+OjD,CAAA"}
1
+ {"version":3,"file":"ajaxCommonUtils.d.ts","sourceRoot":"","sources":["../../src/util/ajaxCommonUtils.ts"],"names":[],"mappings":"AAEA,OAAO,UAAU,CAAA;AACjB,OAAO,EAAE,0BAA0B,EAAe,MAAM,UAAU,CAAA;AAKlE;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACtB,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,kJAAkJ;IAClJ,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACrB,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG;IAC/B,4DAA4D;IAC5D,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,uEAAuE;IACvE,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,8DAA8D;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,WAAW,CAAA;CAC5B,CAAA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,WAAW,GACpB,SAAS,MAAM,EACf,sBAAqB,OAAe,KACrC,KAAK,CAAC,MAAM,GAAG,IAAI,CA0BrB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,aAAa,GACtB,yBAAyB,0BAA0B,EACnD,SAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,EAChC,YAAW,KAAK,CAAC,MAAM,CAAM,EAC7B,WAAW,MAAM,EACjB,UAAU,oBAAoB,MAahB,cAAa,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,iBAuKtD,CAAA;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,aAAa,GACtB,yBAAyB,0BAA0B,EACnD,SAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,EAChC,YAAW,KAAK,CAAC,MAAM,CAAM,EAC7B,WAAW,MAAM,EACjB,UAAU;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,WAAW,CAAA;CAAE,oBA7L9B,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,iBAyNjD,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@swarm.ing/pieui",
3
- "version": "2.0.20",
3
+ "version": "2.0.22",
4
4
  "description": "A React component library featuring PieCard component",
5
5
  "repository": {
6
6
  "type": "git",