@piedata/pieui 2.0.5 → 2.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +223 -97
- package/dist/code/commands/init.d.ts.map +1 -1
- package/dist/code/templates/index.d.ts +2 -1
- package/dist/code/templates/index.d.ts.map +1 -1
- package/dist/code/templates/nextConfig.d.ts +3 -0
- package/dist/code/templates/nextConfig.d.ts.map +1 -0
- package/dist/components/Common/CloudStorageCard/index.d.ts +3 -0
- package/dist/components/Common/CloudStorageCard/index.d.ts.map +1 -0
- package/dist/components/Common/CloudStorageCard/types/index.d.ts +13 -0
- package/dist/components/Common/CloudStorageCard/types/index.d.ts.map +1 -0
- package/dist/components/Common/CloudStorageCard/ui/CloudStorageCard.d.ts +4 -0
- package/dist/components/Common/CloudStorageCard/ui/CloudStorageCard.d.ts.map +1 -0
- package/dist/components/Common/DeviceStorageCard/index.d.ts +3 -0
- package/dist/components/Common/DeviceStorageCard/index.d.ts.map +1 -0
- package/dist/components/Common/DeviceStorageCard/types/index.d.ts +13 -0
- package/dist/components/Common/DeviceStorageCard/types/index.d.ts.map +1 -0
- package/dist/components/Common/DeviceStorageCard/ui/DeviceStorageCard.d.ts +4 -0
- package/dist/components/Common/DeviceStorageCard/ui/DeviceStorageCard.d.ts.map +1 -0
- package/dist/components/Common/SecureStorageCard/index.d.ts +3 -0
- package/dist/components/Common/SecureStorageCard/index.d.ts.map +1 -0
- package/dist/components/Common/SecureStorageCard/types/index.d.ts +13 -0
- package/dist/components/Common/SecureStorageCard/types/index.d.ts.map +1 -0
- package/dist/components/Common/SecureStorageCard/ui/SecureStorageCard.d.ts +4 -0
- package/dist/components/Common/SecureStorageCard/ui/SecureStorageCard.d.ts.map +1 -0
- package/dist/components/Common/SessionStorageCard/index.d.ts +3 -0
- package/dist/components/Common/SessionStorageCard/index.d.ts.map +1 -0
- package/dist/components/Common/SessionStorageCard/types/index.d.ts +13 -0
- package/dist/components/Common/SessionStorageCard/types/index.d.ts.map +1 -0
- package/dist/components/Common/SessionStorageCard/ui/SessionStorageCard.d.ts +4 -0
- package/dist/components/Common/SessionStorageCard/ui/SessionStorageCard.d.ts.map +1 -0
- package/dist/components/index.d.ts +4 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.esm.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.js +2 -2
- package/dist/index.js +2 -2
- package/dist/pieui.components.json +144 -0
- package/dist/tests/mittAgentTools.test.d.ts +2 -0
- package/dist/tests/mittAgentTools.test.d.ts.map +1 -0
- package/dist/util/ajaxCommonUtils.d.ts +21 -2
- package/dist/util/ajaxCommonUtils.d.ts.map +1 -1
- package/dist/util/mittAgentTools.d.ts +89 -0
- package/dist/util/mittAgentTools.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{useContext as E,useEffect as j,useRef as Jo}from"react";import{createContext as Zo,useContext as Do}from"react";var Lo=Zo(null),zo=()=>{let o=Do(Lo);if(!o)throw new Error("usePieConfig must be used within PieConfigProvider");return o};var p=()=>{let{enableRenderingLog:o}=zo();return o},i=p;import{createContext as Bo}from"react";import{Centrifuge as bf}from"centrifuge";var qo=Bo(null),v=qo;import{io as mf}from"socket.io-client";import{createContext as $o}from"react";var Go=$o(null),c=Go;import vf from"mitt";import{createContext as Fo,useCallback as nf,useContext as hf}from"react";var Oo=Fo(null);var K=Oo;var Xo=({card:o,data:f,children:A,useSocketioSupport:I=!1,useCentrifugeSupport:U=!1,useMittSupport:T=!1,centrifugeChannel:H=void 0,methods:B=void 0})=>{let C=i(),w=Jo(B);if(w.current=B,C)console.log("[PieCard] Rendering card:",o),console.log("[PieCard] Card data:",f),console.log("[PieCard] Component name:",f?.name),console.log("[PieCard] Real-time support:",{socketio:I,centrifuge:U,mitt:T,centrifugeChannel:H}),console.log("[PieCard] Methods:",B?Object.keys(B):"none"),console.log("[PieCard] Has children:",!!A);let O=E(c),D=E(v),z=E(K);if(j(()=>{if(!O||!I||!w.current||!f.name){if(C&&I)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!O,useSocketioSupport:I,hasMethods:!!w.current,hasDataName:!!f?.name});return}let P=Object.keys(w.current??{}).map((Z)=>{let q=`pie${Z}_${f.name}`;if(C)console.log(`[PieCard] Socket.IO registering event: ${q}`);let J=(Q)=>{w.current?.[Z]?.(Q)};return O.on(q,J),[q,J]});return()=>{P.forEach(([Z,q])=>{if(C)console.log(`[PieCard] Socket.IO unregistering event: ${Z}`);O.off(Z,q)})}},[O,f.name,I]),j(()=>{if(!D||!U||!H||!f.name){if(C&&U)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!D,useCentrifugeSupport:U,hasCentrifugeChannel:!!H,hasMethods:!!w.current,hasDataName:!!f?.name});return}let P=Object.keys(w.current??{}).map((Z)=>{let q=`pie${Z}_${f.name}_${H}`;if(C)console.log(`[PieCard] Centrifuge subscribing to channel: ${q}`);let J=D.newSubscription(q);return J.on("publication",(Q)=>{if(C)console.log(`[PieCard] Centrifuge received data on ${q}:`,Q.data);w.current?.[Z]?.(Q.data)}),J.subscribe(),J});return()=>{P.forEach((Z)=>{if(C)console.log("[PieCard] Centrifuge unsubscribing from channel");Z.unsubscribe(),D.removeSubscription(Z)})}},[D,H,f.name,U]),j(()=>{if(!z||!T||!f.name){if(C&&T)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!z,useMittSupport:T,hasMethods:!!w.current,hasDataName:!!f?.name});return}let L=Object.keys(w.current??{}),P={};return L.forEach((Z)=>{let q=`pie${Z}_${f.name}`,J=(Q)=>{if(C)console.log(`[PieCard] Mitt registering event: ${q}`);w.current?.[Z]?.(Q)};P[q]=J,z.on(q,J)}),()=>{Object.entries(P).forEach(([Z,q])=>{if(C)console.log(`[PieCard] Mitt unregistering event: ${Z}`);z.off(Z,q)})}},[z,f.name,T]),C)console.log("[PieCard] Rendering complete, returning children");return A},F=Xo;import{lazy as Qo}from"react";var l=new Map;function u(o,f){return Qo(()=>{if(l.has(f))return l.get(f);let A=o().then((I)=>I);return l.set(f,A),A})}var n=new Map,Yo=(o)=>{if(!o.name)throw new Error("Component registration requires a name");if(!o.component&&!o.loader)throw new Error(`Component "${o.name}" requires component or loader`);let f={name:o.name,component:o.component,loader:o.loader,metadata:o.metadata,fallback:o.fallback,isLazy:!1};if(!f.component&&f.loader)f.component=u(f.loader,o.name),f.loader=void 0,f.isLazy=!0;return f};function G(o){let f=Yo(o);return n.set(f.name,f),f.component}var R=(o)=>{return n.get(o)};import{Suspense as Ro,useContext as _o,memo as xo}from"react";import{createContext as Vo}from"react";import{jsx as Ko,Fragment as po}from"react/jsx-runtime";var Wo=Vo(Ko(po,{})),V=Wo;import{jsx as y}from"react/jsx-runtime";function Mo({uiConfig:o,setUiAjaxConfiguration:f}){let A=_o(V),I=p();if(I)console.log("[UI] Rendering component:",o.card),console.log("[UI] Component data:",o.data),console.log("[UI] Component content:",o.content),console.log("[UI] Has setUiAjaxConfiguration:",!!f);let U=R(o.card);if(!U?.component){if(I)console.warn(`[UI] Component not found in registry: ${o.card}`),console.log("[UI] Returning fallback component");return A}if(I)console.log("[UI] Found component in registry:",{name:U.name,isLazy:U.isLazy,hasMetadata:!!U.metadata});let T=U.component,H=y(T,{data:o.data,content:o.content,setUiAjaxConfiguration:f});if(U.isLazy){if(I)console.log("[UI] Rendering lazy component with Suspense:",U.name);return y(Ro,{fallback:U.fallback?y(U.fallback,{}):A,children:H},`${U.name}`)}if(I)console.log("[UI] Rendering component directly:",U.name);return H}var Y=xo(Mo);import{Suspense as lo,useContext as yo}from"react";import{createContext as Eo}from"react";var jo=Eo(null),X=jo;import{jsx as _}from"react/jsx-runtime";function h({uiConfig:o,setUiAjaxConfiguration:f}){let A=yo(V),I=p();if(I)console.log("[UILoading] Rendering fallback for:",o.card),console.log("[UILoading] Component data:",o.data),console.log("[UILoading] Component content:",o.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!f);let U=R(o.card);if(!U?.component){if(I)console.warn(`[UILoading] Component not found in registry: ${o.card}`),console.log("[UILoading] Returning fallback component");return A}if(I)console.log("[UILoading] Found component in registry:",{name:U.name,isLazy:U.isLazy,hasMetadata:!!U.metadata,hasFallback:!!U.fallback});if(U.fallback){if(I)console.log("[UILoading] Rendering fallback for:",U.name);let B=U.fallback;return _(B,{})}if(I)console.log("[UILoading] No fallback, rendering full component:",U.name);let T=U.component,H=_(X.Provider,{value:h,children:_(T,{data:o.data,content:o.content,setUiAjaxConfiguration:f})});if(U.isLazy)return _(lo,{fallback:A,children:H},`${U.name}`);return H}var bo=h;import{useContext as No}from"react";import{jsx as b}from"react/jsx-runtime";var ko=({data:o,content:f,setUiAjaxConfiguration:A})=>{let{name:I,sx:U}=o,T=No(X)??Y;return b(F,{card:I,data:o,children:b("div",{style:U,id:I,children:f.map((H,B)=>{return b(T,{uiConfig:H,setUiAjaxConfiguration:A},`children-${B}`)})})})},a=ko;var mo=G({name:"SequenceCard",component:a,metadata:{author:"PieData",description:"Simple div with styles joining few components"}});import{useContext as ro}from"react";import{jsx as s}from"react/jsx-runtime";var So=({data:o,content:f,setUiAjaxConfiguration:A})=>{let{name:I}=o,U=ro(X)??Y;return s(F,{card:I,data:o,children:f.map((T,H)=>{return s(U,{uiConfig:T,setUiAjaxConfiguration:A},`children-${H}`)})})},t=So;var go=G({name:"UnionCard",component:t,metadata:{author:"PieData",description:"Renders one of many components"}});import{useEffect as uo,useState as no}from"react";import ho from"html-react-parser";import{useCallback as x,useEffect as io,useRef as N,useState as vo}from"react";function co(){let o=new AudioContext,f=o.createOscillator(),A=f.connect(o.createMediaStreamDestination());f.start();let I=A.stream.getAudioTracks()[0];return I.enabled=!1,I}function k(o=null,f){let[A,I]=vo(!1),U=N(null),T=N(null),H=N(null),B=x(async(D,z=!0)=>{if(U.current)C();let L=new RTCPeerConnection;if(L.onconnectionstatechange=()=>{if(L.connectionState==="connected")I(!0);else if(["disconnected","failed","closed"].includes(L.connectionState))I(!1)},L.ontrack=($)=>{if(o)o.srcObject=$.streams[0]},z){let $=await navigator.mediaDevices.getUserMedia({audio:!0});L.addTrack($.getTracks()[0],$)}else{let $=co();L.addTrack($)}let P=L.createDataChannel("oai-events");T.current=P,H.current=new Promise(($)=>{P.addEventListener("open",()=>{$()})});let Z=await L.createOffer();await L.setLocalDescription(Z);let M=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:Z.sdp,headers:{Authorization:`Bearer ${D}`,"Content-Type":"application/sdp"}})).text();await L.setRemoteDescription({type:"answer",sdp:M}),U.current=L,await H.current},[o]),C=x(()=>{let D=T.current;if(D)D.close();U.current?.getSenders()?.forEach((z)=>z.track?.stop()),U.current?.close(),I(!1),U.current=null,T.current=null,H.current=null},[o]),w=x((D)=>{let z=T.current;if(!z){console.error("Data channel is not ready",D);return}let L=new Date().toLocaleTimeString();if(D.event_id=D.event_id||crypto.randomUUID(),z.send(JSON.stringify(D)),!D.timestamp)D.timestamp=L;f?.(D)},[f,o]),O=x((D)=>{if(!T.current){console.error("Data channel is not ready");return}let L=()=>{w({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:D}]}}),w({type:"response.create"})};if(H.current)H.current.then(L);else L()},[f,o]);return io(()=>{let D=T.current;if(!D)return;let z=(L)=>{let P=JSON.parse(L.data);if(!P.timestamp)P.timestamp=new Date().toLocaleTimeString();f?.(P)};return D.addEventListener("message",z),()=>{D.removeEventListener("message",z)}},[f,o]),{isSessionActive:A,startSession:B,stopSession:C,sendTextMessage:O}}import{jsx as so}from"react/jsx-runtime";var ao=({data:o})=>{let{html:f,useSocketioSupport:A,useCentrifugeSupport:I,useMittSupport:U,centrifugeChannel:T}=o,[H,B]=no(f),{isSessionActive:C,startSession:w,sendTextMessage:O}=k(null,(P)=>{if(console.log(P.type,P.type==="response.output_text.delta"&&P.delta),P.type==="response.output_text.delta"&&P.delta)B((Z)=>Z+P.delta)});return uo(()=>{B(f)},[f]),so(F,{card:"HTMLEmbedCard",data:o,methods:{update:(P)=>{B(P.value)},generateUsingAI:async(P)=>{try{if(!C&&P.token)await w(P.token,!1);O(P.prompt)}catch(Z){console.error("Failed to generate using AI",Z)}},initializeAI:async(P)=>{if(!C&&P.token)await w(P.token,!1)}},useCentrifugeSupport:I,useSocketioSupport:A,useMittSupport:U,centrifugeChannel:T,children:ho(H)})},e=ao;var to=G({name:"HTMLEmbedCard",component:e,metadata:{author:"PieData"}});import{useEffect as eo,useState as of}from"react";import{jsx as oo}from"react/jsx-runtime";var ff=({data:o})=>{let{name:f,value:A,useSocketioSupport:I,useCentrifugeSupport:U,useMittSupport:T,centrifugeChannel:H}=o,[B,C]=of(A);return eo(()=>{C(A)},[A]),oo(F,{card:"HiddenCard",data:o,useSocketioSupport:I,useCentrifugeSupport:U,useMittSupport:T,centrifugeChannel:H,methods:{update:({value:w})=>{C(w)}},children:oo("input",{type:"hidden",id:f,name:f,value:B})})},fo=ff;var Uf=G({name:"HiddenCard",component:fo,metadata:{author:"PieData"}});import{useContext as Uo,useEffect as Pf}from"react";import{createContext as If}from"react";var Af=If(void 0),W=Af;import{jsx as wf,Fragment as Tf}from"react/jsx-runtime";var Hf=({data:o})=>{let{url:f}=o,A=Uo(W),I=Uo(V);return Pf(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(f))window.location.href=f;else A?.(f)},[f,A]),wf(Tf,{children:I})},Io=Hf;var Cf=G({name:"AutoRedirectCard",component:Io,metadata:{author:"PieData"}});import{Bounce as Zf,Slide as Df,Zoom as Lf,Flip as zf}from"react-toastify";import{toast as Bf,ToastContainer as qf}from"react-toastify";import{useContext as $f,useMemo as Gf,useRef as Ff}from"react";import{jsx as m,Fragment as Vf}from"react/jsx-runtime";var Of={bounce:Zf,slide:Df,zoom:Lf,flip:zf},Jf=(o)=>{let f={...o,type:o.alertType,transition:o.transition?Of[o.transition]:void 0,position:o.position??"bottom-right",autoClose:o.autoClose??3000,style:{backgroundColor:"black",...o.sx}};Bf(o.message,f)},Xf=(o)=>{console.log("Log event",o)},Qf=(o)=>{if(typeof window==="undefined"||!window.Notification){console.warn("[IOEventsCard] Notifications API is not available");return}let f=()=>{try{new window.Notification(o.title,{body:o.message??o.subtitle,icon:o.icon,silent:o.silent})}catch(I){console.error("[IOEventsCard] Failed to show notification",I)}},A=window.Notification.permission;if(A==="granted"){f();return}if(A==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((I)=>{if(I==="granted")f()})},Yf=({data:o})=>{let{useCentrifugeSupport:f,useSocketioSupport:A,useMittSupport:I,centrifugeChannel:U}=o,T=$f(W),H=Ff(T);H.current=T;let B=Gf(()=>({alert:Jf,log:Xf,push:Qf,redirect:(C)=>{if(C.to){let w=C.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(w))window.location.href=w;else H.current?.(w)}else window.location.reload()},reload:(C)=>{if(C.to){let w=C.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(w))window.location.href=w;else H.current?.(w)}else window.location.reload()}}),[]);return m(Vf,{children:m(F,{card:"IOEventsCard",data:o,useCentrifugeSupport:f,useSocketioSupport:A,useMittSupport:I,centrifugeChannel:U,methods:B,children:m(qf,{})})})},Ao=Yf;var Wf=G({name:"IOEventsCard",component:Ao,metadata:{author:"PieData"}});import{useCallback as d,useContext as r,useEffect as pf,useRef as Kf,useState as Po}from"react";import{jsx as Ho}from"react/jsx-runtime";var Rf=({data:o,content:f})=>{let{useLoader:A,noReturn:I,returnType:U,useSocketioSupport:T,useCentrifugeSupport:H,useMittSupport:B,centrifugeChannel:C}=o,w=r(V),O=r(X)??Y,[D,z]=Po(!1),[L,P]=Po(null),Z=Kf(f),q=r(K),J=d(($)=>{if($===null)z(!0);else if(z(!1),!I)Z.current=$;if(!I)P($)},[I]),Q=d(($)=>{Z.current=$.content,P($.content)},[]),M=d(($)=>{if($===null)z(!0);else if(z(!1),!I)for(let g of $)q?.emit(g.name,g.data)},[I,q]);if(pf(()=>{P(f),z(!1)},[f]),!L&&A)return w;return Ho(F,{card:"AjaxGroupCard",data:o,methods:{changeContent:Q},useSocketioSupport:T,useCentrifugeSupport:H,useMittSupport:B,centrifugeChannel:C,children:Ho(O,{uiConfig:L??Z.current,setUiAjaxConfiguration:U==="events"?M:J})})},To=Rf;var _f=G({name:"AjaxGroupCard",component:To,metadata:{author:"PieData",description:"Group card with AJAX support"}});import{useContext as wo}from"react";import{jsx as S}from"react/jsx-runtime";var xf=({data:o,content:f,setUiAjaxConfiguration:A})=>{let{name:I,url:U,sx:T}=o,H=wo(W),B=wo(X)??Y;return S(F,{card:I,data:o,children:S("div",{style:T,id:I,onClick:(w)=>{if(U)if(w.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(U))window.location.href=U;else H?.(U)},children:S(B,{setUiAjaxConfiguration:A,uiConfig:f})})})},Co=xf;var Mf=G({name:"BoxCard",component:Co,metadata:{author:"PieData",description:"Simple div with styles joining few components"}});export{go as UnionCard,bo as UILoading,Y as UI,mo as SequenceCard,F as PieCard,Wf as IOEventsCard,Uf as HiddenCard,to as HTMLEmbedCard,Mf as BoxCard,Cf as AutoRedirectCard,_f as AjaxGroupCard};
|
|
2
|
+
import{useContext as Q,useEffect as W,useRef as Wo}from"react";import{createContext as Bo,useContext as Vo}from"react";var qo=Bo(null),$o=()=>{let o=Vo(qo);if(!o)throw new Error("usePieConfig must be used within PieConfigProvider");return o};var $=()=>{let{enableRenderingLog:o}=$o();return o},E=$;import{createContext as Go}from"react";import{Centrifuge as df}from"centrifuge";var Fo=Go(null),b=Fo;import{io as If}from"socket.io-client";import{createContext as Oo}from"react";var Jo=Oo(null),N=Jo;import Af from"mitt";import{createContext as Xo,useCallback as Hf,useContext as Zf}from"react";var Qo=Xo(null);var G=Qo;var Yo=({card:o,data:r,children:C,useSocketioSupport:f=!1,useCentrifugeSupport:p=!1,useMittSupport:i=!1,centrifugeChannel:U=void 0,methods:l=void 0})=>{let d=E(),u=Wo(l);if(u.current=l,d)console.log("[PieCard] Rendering card:",o),console.log("[PieCard] Card data:",r),console.log("[PieCard] Component name:",r?.name),console.log("[PieCard] Real-time support:",{socketio:f,centrifuge:p,mitt:i,centrifugeChannel:U}),console.log("[PieCard] Methods:",l?Object.keys(l):"none"),console.log("[PieCard] Has children:",!!C);let m=Q(N),P=Q(b),D=Q(G);if(W(()=>{if(!m||!f||!u.current||!r.name){if(d&&f)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!m,useSocketioSupport:f,hasMethods:!!u.current,hasDataName:!!r?.name});return}let I=Object.keys(u.current??{}).map((S)=>{let H=`pie${S}_${r.name}`;if(d)console.log(`[PieCard] Socket.IO registering event: ${H}`);let L=(z)=>{u.current?.[S]?.(z)};return m.on(H,L),[H,L]});return()=>{I.forEach(([S,H])=>{if(d)console.log(`[PieCard] Socket.IO unregistering event: ${S}`);m.off(S,H)})}},[m,r.name,f]),W(()=>{if(!P||!p||!U||!r.name){if(d&&p)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!P,useCentrifugeSupport:p,hasCentrifugeChannel:!!U,hasMethods:!!u.current,hasDataName:!!r?.name});return}let I=Object.keys(u.current??{}).map((S)=>{let H=`pie${S}_${r.name}_${U}`;if(d)console.log(`[PieCard] Centrifuge subscribing to channel: ${H}`);let L=P.newSubscription(H);return L.on("publication",(z)=>{if(d)console.log(`[PieCard] Centrifuge received data on ${H}:`,z.data);u.current?.[S]?.(z.data)}),L.subscribe(),L});return()=>{I.forEach((S)=>{if(d)console.log("[PieCard] Centrifuge unsubscribing from channel");S.unsubscribe(),P.removeSubscription(S)})}},[P,U,r.name,p]),W(()=>{if(!D||!i||!r.name){if(d&&i)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!D,useMittSupport:i,hasMethods:!!u.current,hasDataName:!!r?.name});return}let w=Object.keys(u.current??{}),I={};return w.forEach((S)=>{let H=`pie${S}_${r.name}`,L=(z)=>{if(d)console.log(`[PieCard] Mitt registering event: ${H}`);u.current?.[S]?.(z)};I[H]=L,D.on(H,L)}),()=>{Object.entries(I).forEach(([S,H])=>{if(d)console.log(`[PieCard] Mitt unregistering event: ${S}`);D.off(S,H)})}},[D,r.name,i]),d)console.log("[PieCard] Rendering complete, returning children");return C},T=Yo;import{lazy as ao}from"react";var Y=new Map;function t(o,r){return ao(()=>{if(Y.has(r))return Y.get(r);let C=o().then((f)=>f);return Y.set(r,C),C})}var c=new Map,Mo=(o)=>{if(!o.name)throw new Error("Component registration requires a name");if(!o.component&&!o.loader)throw new Error(`Component "${o.name}" requires component or loader`);let r={name:o.name,component:o.component,loader:o.loader,metadata:o.metadata,fallback:o.fallback,isLazy:!1};if(!r.component&&r.loader)r.component=t(r.loader,o.name),r.loader=void 0,r.isLazy=!0;return r};function A(o){let r=Mo(o);return c.set(r.name,r),r.component}var F=(o)=>{return c.get(o)};import{Suspense as xo,useContext as ko,memo as no}from"react";import{createContext as Ko}from"react";import{jsx as _o,Fragment as yo}from"react/jsx-runtime";var Ro=Ko(_o(yo,{})),V=Ro;import{jsx as a}from"react/jsx-runtime";function Eo({uiConfig:o,setUiAjaxConfiguration:r}){let C=ko(V),f=$();if(f)console.log("[UI] Rendering component:",o.card),console.log("[UI] Component data:",o.data),console.log("[UI] Component content:",o.content),console.log("[UI] Has setUiAjaxConfiguration:",!!r);let p=F(o.card);if(!p?.component){if(f)console.warn(`[UI] Component not found in registry: ${o.card}`),console.log("[UI] Returning fallback component");return C}if(f)console.log("[UI] Found component in registry:",{name:p.name,isLazy:p.isLazy,hasMetadata:!!p.metadata});let i=p.component,U=a(i,{data:o.data,content:o.content,setUiAjaxConfiguration:r});if(p.isLazy){if(f)console.log("[UI] Rendering lazy component with Suspense:",p.name);return a(xo,{fallback:p.fallback?a(p.fallback,{}):C,children:U},`${p.name}`)}if(f)console.log("[UI] Rendering component directly:",p.name);return U}var B=no(Eo);import{Suspense as to,useContext as co}from"react";import{createContext as bo}from"react";var No=bo(null),g=No;import{jsx as O}from"react/jsx-runtime";function j({uiConfig:o,setUiAjaxConfiguration:r}){let C=co(V),f=$();if(f)console.log("[UILoading] Rendering fallback for:",o.card),console.log("[UILoading] Component data:",o.data),console.log("[UILoading] Component content:",o.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!r);let p=F(o.card);if(!p?.component){if(f)console.warn(`[UILoading] Component not found in registry: ${o.card}`),console.log("[UILoading] Returning fallback component");return C}if(f)console.log("[UILoading] Found component in registry:",{name:p.name,isLazy:p.isLazy,hasMetadata:!!p.metadata,hasFallback:!!p.fallback});if(p.fallback){if(f)console.log("[UILoading] Rendering fallback for:",p.name);let l=p.fallback;return O(l,{})}if(f)console.log("[UILoading] No fallback, rendering full component:",p.name);let i=p.component,U=O(g.Provider,{value:j,children:O(i,{data:o.data,content:o.content,setUiAjaxConfiguration:r})});if(p.isLazy)return O(to,{fallback:C,children:U},`${p.name}`);return U}var jo=j;import{useContext as vo}from"react";import{jsx as M}from"react/jsx-runtime";var so=({data:o,content:r,setUiAjaxConfiguration:C})=>{let{name:f,sx:p}=o,i=vo(g)??B;return M(T,{card:f,data:o,children:M("div",{style:p,id:f,children:r.map((U,l)=>{return M(i,{uiConfig:U,setUiAjaxConfiguration:C},`children-${l}`)})})})},v=so;var ho=A({name:"SequenceCard",component:v,metadata:{author:"PieData",description:"Simple div with styles joining few components"}});import{useContext as eo}from"react";import{jsx as s}from"react/jsx-runtime";var or=({data:o,content:r,setUiAjaxConfiguration:C})=>{let{name:f}=o,p=eo(g)??B;return s(T,{card:f,data:o,children:r.map((i,U)=>{return s(p,{uiConfig:i,setUiAjaxConfiguration:C},`children-${U}`)})})},h=or;var rr=A({name:"UnionCard",component:h,metadata:{author:"PieData",description:"Renders one of many components"}});import{useEffect as ur,useState as dr}from"react";import Ur from"html-react-parser";import{useCallback as J,useEffect as fr,useRef as K,useState as pr}from"react";function Cr(){let o=new AudioContext,r=o.createOscillator(),C=r.connect(o.createMediaStreamDestination());r.start();let f=C.stream.getAudioTracks()[0];return f.enabled=!1,f}function R(o=null,r){let[C,f]=pr(!1),p=K(null),i=K(null),U=K(null),l=J(async(P,D=!0)=>{if(p.current)d();let w=new RTCPeerConnection;if(w.onconnectionstatechange=()=>{if(w.connectionState==="connected")f(!0);else if(["disconnected","failed","closed"].includes(w.connectionState))f(!1)},w.ontrack=(Z)=>{if(o)o.srcObject=Z.streams[0]},D){let Z=await navigator.mediaDevices.getUserMedia({audio:!0});w.addTrack(Z.getTracks()[0],Z)}else{let Z=Cr();w.addTrack(Z)}let I=w.createDataChannel("oai-events");i.current=I,U.current=new Promise((Z)=>{I.addEventListener("open",()=>{Z()})});let S=await w.createOffer();await w.setLocalDescription(S);let X=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:S.sdp,headers:{Authorization:`Bearer ${P}`,"Content-Type":"application/sdp"}})).text();await w.setRemoteDescription({type:"answer",sdp:X}),p.current=w,await U.current},[o]),d=J(()=>{let P=i.current;if(P)P.close();p.current?.getSenders()?.forEach((D)=>D.track?.stop()),p.current?.close(),f(!1),p.current=null,i.current=null,U.current=null},[o]),u=J((P)=>{let D=i.current;if(!D){console.error("Data channel is not ready",P);return}let w=new Date().toLocaleTimeString();if(P.event_id=P.event_id||crypto.randomUUID(),D.send(JSON.stringify(P)),!P.timestamp)P.timestamp=w;r?.(P)},[r,o]),m=J((P)=>{if(!i.current){console.error("Data channel is not ready");return}let w=()=>{u({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:P}]}}),u({type:"response.create"})};if(U.current)U.current.then(w);else w()},[r,o]);return fr(()=>{let P=i.current;if(!P)return;let D=(w)=>{let I=JSON.parse(w.data);if(!I.timestamp)I.timestamp=new Date().toLocaleTimeString();r?.(I)};return P.addEventListener("message",D),()=>{P.removeEventListener("message",D)}},[r,o]),{isSessionActive:C,startSession:l,stopSession:d,sendTextMessage:m}}import{jsx as mr}from"react/jsx-runtime";var ir=({data:o})=>{let{html:r,useSocketioSupport:C,useCentrifugeSupport:f,useMittSupport:p,centrifugeChannel:i}=o,[U,l]=dr(r),{isSessionActive:d,startSession:u,sendTextMessage:m}=R(null,(I)=>{if(console.log(I.type,I.type==="response.output_text.delta"&&I.delta),I.type==="response.output_text.delta"&&I.delta)l((S)=>S+I.delta)});return ur(()=>{l(r)},[r]),mr(T,{card:"HTMLEmbedCard",data:o,methods:{update:(I)=>{l(I.value)},generateUsingAI:async(I)=>{try{if(!d&&I.token)await u(I.token,!1);m(I.prompt)}catch(S){console.error("Failed to generate using AI",S)}},initializeAI:async(I)=>{if(!d&&I.token)await u(I.token,!1)}},useCentrifugeSupport:f,useSocketioSupport:C,useMittSupport:p,centrifugeChannel:i,children:Ur(U)})},e=ir;var Ir=A({name:"HTMLEmbedCard",component:e,metadata:{author:"PieData"}});import{useEffect as lr,useState as Sr}from"react";import{jsx as oo}from"react/jsx-runtime";var Pr=({data:o})=>{let{name:r,value:C,useSocketioSupport:f,useCentrifugeSupport:p,useMittSupport:i,centrifugeChannel:U}=o,[l,d]=Sr(C);return lr(()=>{d(C)},[C]),oo(T,{card:"HiddenCard",data:o,useSocketioSupport:f,useCentrifugeSupport:p,useMittSupport:i,centrifugeChannel:U,methods:{update:({value:u})=>{d(u)}},children:oo("input",{type:"hidden",id:r,name:r,value:l})})},ro=Pr;var wr=A({name:"HiddenCard",component:ro,metadata:{author:"PieData"}});import{useContext as fo,useEffect as Tr}from"react";import{createContext as Ar}from"react";var Dr=Ar(void 0),q=Dr;import{jsx as Lr,Fragment as Zr}from"react/jsx-runtime";var Hr=({data:o})=>{let{url:r}=o,C=fo(q),f=fo(V);return Tr(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(r))window.location.href=r;else C?.(r)},[r,C]),Lr(Zr,{children:f})},po=Hr;var gr=A({name:"AutoRedirectCard",component:po,metadata:{author:"PieData"}});import{Bounce as zr,Slide as Br,Zoom as Vr,Flip as qr}from"react-toastify";import{toast as $r,ToastContainer as Gr}from"react-toastify";import{useContext as Fr,useMemo as Or,useRef as Jr}from"react";import{jsx as y,Fragment as Mr}from"react/jsx-runtime";var Xr={bounce:zr,slide:Br,zoom:Vr,flip:qr},Qr=(o)=>{let r={...o,type:o.alertType,transition:o.transition?Xr[o.transition]:void 0,position:o.position??"bottom-right",autoClose:o.autoClose??3000,style:{backgroundColor:"black",...o.sx}};$r(o.message,r)},Wr=(o)=>{console.log("Log event",o)},Yr=(o)=>{if(typeof window==="undefined"||!window.Notification){console.warn("[IOEventsCard] Notifications API is not available");return}let r=()=>{try{new window.Notification(o.title,{body:o.message??o.subtitle,icon:o.icon,silent:o.silent})}catch(f){console.error("[IOEventsCard] Failed to show notification",f)}},C=window.Notification.permission;if(C==="granted"){r();return}if(C==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((f)=>{if(f==="granted")r()})},ar=({data:o})=>{let{useCentrifugeSupport:r,useSocketioSupport:C,useMittSupport:f,centrifugeChannel:p}=o,i=Fr(q),U=Jr(i);U.current=i;let l=Or(()=>({alert:Qr,log:Wr,push:Yr,redirect:(d)=>{if(d.to){let u=d.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(u))window.location.href=u;else U.current?.(u)}else window.location.reload()},reload:(d)=>{if(d.to){let u=d.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(u))window.location.href=u;else U.current?.(u)}else window.location.reload()}}),[]);return y(Mr,{children:y(T,{card:"IOEventsCard",data:o,useCentrifugeSupport:r,useSocketioSupport:C,useMittSupport:f,centrifugeChannel:p,methods:l,children:y(Gr,{})})})},Co=ar;var Kr=A({name:"IOEventsCard",component:Co,metadata:{author:"PieData"}});import{useEffect as uo,useState as Rr}from"react";import{jsx as Uo}from"react/jsx-runtime";var yr=({data:o})=>{let{name:r,key:C,value:f,useSocketioSupport:p,useCentrifugeSupport:i,useMittSupport:U,centrifugeChannel:l}=o,[d,u]=Rr(f);return uo(()=>{u(f)},[f]),uo(()=>{if(typeof window==="undefined")return;sessionStorage.setItem(C,d)},[C,d]),Uo(T,{card:"SessionStorageCard",data:o,useSocketioSupport:p,useCentrifugeSupport:i,useMittSupport:U,centrifugeChannel:l,methods:{update:({value:m})=>{u(m)},remove:()=>{sessionStorage.removeItem(C),u("")}},children:Uo("input",{type:"hidden",id:r,name:r,value:d})})},io=yr;var _r=A({name:"SessionStorageCard",component:io,metadata:{author:"PieData"}});import{useEffect as mo,useState as xr}from"react";import{jsx as Io}from"react/jsx-runtime";var kr=({data:o})=>{let{name:r,key:C,value:f,useSocketioSupport:p,useCentrifugeSupport:i,useMittSupport:U,centrifugeChannel:l}=o,[d,u]=xr(f);return mo(()=>{u(f)},[f]),mo(()=>{if(typeof window==="undefined")return;localStorage.setItem(C,d)},[C,d]),Io(T,{card:"DeviceStorageCard",data:o,useSocketioSupport:p,useCentrifugeSupport:i,useMittSupport:U,centrifugeChannel:l,methods:{update:({value:m})=>{u(m)},remove:()=>{localStorage.removeItem(C),u("")}},children:Io("input",{type:"hidden",id:r,name:r,value:d})})},lo=kr;var nr=A({name:"DeviceStorageCard",component:lo,metadata:{author:"PieData"}});import{useEffect as So,useState as Er}from"react";import{jsx as Po}from"react/jsx-runtime";var br=({data:o})=>{let{name:r,key:C,value:f,useSocketioSupport:p,useCentrifugeSupport:i,useMittSupport:U,centrifugeChannel:l}=o,[d,u]=Er(f);return So(()=>{u(f)},[f]),So(()=>{if(typeof window==="undefined")return;let m=window.Telegram?.WebApp?.CloudStorage;if(!m)return;m.setItem(C,d)},[C,d]),Po(T,{card:"CloudStorageCard",data:o,useSocketioSupport:p,useCentrifugeSupport:i,useMittSupport:U,centrifugeChannel:l,methods:{update:({value:m})=>{u(m)},remove:()=>{let m=window.Telegram?.WebApp?.CloudStorage;if(m)m.removeItem(C);u("")}},children:Po("input",{type:"hidden",id:r,name:r,value:d})})},wo=br;var Nr=A({name:"CloudStorageCard",component:wo,metadata:{author:"PieData"}});import{useEffect as Ao,useState as tr}from"react";import{jsx as Do}from"react/jsx-runtime";var cr=({data:o})=>{let{name:r,key:C,value:f,useSocketioSupport:p,useCentrifugeSupport:i,useMittSupport:U,centrifugeChannel:l}=o,[d,u]=tr(f);return Ao(()=>{u(f)},[f]),Ao(()=>{if(typeof window==="undefined")return;let m=window.Telegram?.WebApp?.SecureStorage;if(!m)return;m.setItem(C,d)},[C,d]),Do(T,{card:"SecureStorageCard",data:o,useSocketioSupport:p,useCentrifugeSupport:i,useMittSupport:U,centrifugeChannel:l,methods:{update:({value:m})=>{u(m)},remove:()=>{let m=window.Telegram?.WebApp?.SecureStorage;if(m)m.removeItem(C);u("")}},children:Do("input",{type:"hidden",id:r,name:r,value:d})})},To=cr;var jr=A({name:"SecureStorageCard",component:To,metadata:{author:"PieData"}});import{useCallback as _,useContext as x,useEffect as vr,useRef as sr,useState as Ho}from"react";import{jsx as Zo}from"react/jsx-runtime";var hr=({data:o,content:r})=>{let{useLoader:C,noReturn:f,returnType:p,useSocketioSupport:i,useCentrifugeSupport:U,useMittSupport:l,centrifugeChannel:d}=o,u=x(V),m=x(g)??B,[P,D]=Ho(!1),[w,I]=Ho(null),S=sr(r),H=x(G),L=_((Z)=>{if(Z===null)D(!0);else if(D(!1),!f)S.current=Z;if(!f)I(Z)},[f]),z=_((Z)=>{S.current=Z.content,I(Z.content)},[]),X=_((Z)=>{if(Z===null)D(!0);else if(D(!1),!f)for(let n of Z)H?.emit(n.name,n.data)},[f,H]);if(vr(()=>{I(r),D(!1)},[r]),!w&&C)return u;return Zo(T,{card:"AjaxGroupCard",data:o,methods:{changeContent:z},useSocketioSupport:i,useCentrifugeSupport:U,useMittSupport:l,centrifugeChannel:d,children:Zo(m,{uiConfig:w??S.current,setUiAjaxConfiguration:p==="events"?X:L})})},Lo=hr;var er=A({name:"AjaxGroupCard",component:Lo,metadata:{author:"PieData",description:"Group card with AJAX support"}});import{useContext as go}from"react";import{jsx as k}from"react/jsx-runtime";var of=({data:o,content:r,setUiAjaxConfiguration:C})=>{let{name:f,url:p,sx:i}=o,U=go(q),l=go(g)??B;return k(T,{card:f,data:o,children:k("div",{style:i,id:f,onClick:(u)=>{if(p)if(u.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(p))window.location.href=p;else U?.(p)},children:k(l,{setUiAjaxConfiguration:C,uiConfig:r})})})},zo=of;var rf=A({name:"BoxCard",component:zo,metadata:{author:"PieData",description:"Simple div with styles joining few components"}});export{rr as UnionCard,jo as UILoading,B as UI,_r as SessionStorageCard,ho as SequenceCard,jr as SecureStorageCard,T as PieCard,Kr as IOEventsCard,wr as HiddenCard,Ir as HTMLEmbedCard,nr as DeviceStorageCard,Nr as CloudStorageCard,rf as BoxCard,gr as AutoRedirectCard,er as AjaxGroupCard};
|
package/dist/components/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
var So=Object.create;var{getPrototypeOf:go,defineProperty:j,getOwnPropertyNames:Po,getOwnPropertyDescriptor:io}=Object,Ho=Object.prototype.hasOwnProperty;var To=(o,f,A)=>{A=o!=null?So(go(o)):{};let U=f||!o||!o.__esModule?j(A,"default",{value:o,enumerable:!0}):A;for(let I of Po(o))if(!Ho.call(U,I))j(U,I,{get:()=>o[I],enumerable:!0});return U},Ao=new WeakMap,vo=(o)=>{var f=Ao.get(o),A;if(f)return f;if(f=j({},"__esModule",{value:!0}),o&&typeof o==="object"||typeof o==="function")Po(o).map((U)=>!Ho.call(f,U)&&j(f,U,{get:()=>o[U],enumerable:!(A=io(o,U))||A.enumerable}));return Ao.set(o,f),f};var co=(o,f)=>{for(var A in f)j(o,A,{get:f[A],enumerable:!0,configurable:!0,set:(U)=>f[A]=()=>U})};var Jf={};co(Jf,{UnionCard:()=>Wo,UILoading:()=>Oo,UI:()=>V,SequenceCard:()=>Qo,PieCard:()=>G,IOEventsCard:()=>bo,HiddenCard:()=>Mo,HTMLEmbedCard:()=>_o,BoxCard:()=>ro,AutoRedirectCard:()=>lo,AjaxGroupCard:()=>ko});module.exports=vo(Jf);var Y=require("react");var N=require("react"),uo=N.createContext(null),no=()=>{let o=N.useContext(uo);if(!o)throw new Error("usePieConfig must be used within PieConfigProvider");return o};var l=()=>{let{enableRenderingLog:o}=no();return o},wo=l;var Co=require("react"),ho=require("centrifuge");var ao=Co.createContext(null),Zo=ao;var so=require("socket.io-client"),Do=require("react");var to=Do.createContext(null),Lo=to;var eo=To(require("mitt")),k=require("react");var of=k.createContext(null);var m=of;var ff=({card:o,data:f,children:A,useSocketioSupport:U=!1,useCentrifugeSupport:I=!1,useMittSupport:T=!1,centrifugeChannel:H=void 0,methods:B=void 0})=>{let C=wo(),w=Y.useRef(B);if(w.current=B,C)console.log("[PieCard] Rendering card:",o),console.log("[PieCard] Card data:",f),console.log("[PieCard] Component name:",f?.name),console.log("[PieCard] Real-time support:",{socketio:U,centrifuge:I,mitt:T,centrifugeChannel:H}),console.log("[PieCard] Methods:",B?Object.keys(B):"none"),console.log("[PieCard] Has children:",!!A);let J=Y.useContext(Lo),D=Y.useContext(Zo),z=Y.useContext(m);if(Y.useEffect(()=>{if(!J||!U||!w.current||!f.name){if(C&&U)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!J,useSocketioSupport:U,hasMethods:!!w.current,hasDataName:!!f?.name});return}let P=Object.keys(w.current??{}).map((Z)=>{let q=`pie${Z}_${f.name}`;if(C)console.log(`[PieCard] Socket.IO registering event: ${q}`);let Q=(p)=>{w.current?.[Z]?.(p)};return J.on(q,Q),[q,Q]});return()=>{P.forEach(([Z,q])=>{if(C)console.log(`[PieCard] Socket.IO unregistering event: ${Z}`);J.off(Z,q)})}},[J,f.name,U]),Y.useEffect(()=>{if(!D||!I||!H||!f.name){if(C&&I)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!D,useCentrifugeSupport:I,hasCentrifugeChannel:!!H,hasMethods:!!w.current,hasDataName:!!f?.name});return}let P=Object.keys(w.current??{}).map((Z)=>{let q=`pie${Z}_${f.name}_${H}`;if(C)console.log(`[PieCard] Centrifuge subscribing to channel: ${q}`);let Q=D.newSubscription(q);return Q.on("publication",(p)=>{if(C)console.log(`[PieCard] Centrifuge received data on ${q}:`,p.data);w.current?.[Z]?.(p.data)}),Q.subscribe(),Q});return()=>{P.forEach((Z)=>{if(C)console.log("[PieCard] Centrifuge unsubscribing from channel");Z.unsubscribe(),D.removeSubscription(Z)})}},[D,H,f.name,I]),Y.useEffect(()=>{if(!z||!T||!f.name){if(C&&T)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!z,useMittSupport:T,hasMethods:!!w.current,hasDataName:!!f?.name});return}let L=Object.keys(w.current??{}),P={};return L.forEach((Z)=>{let q=`pie${Z}_${f.name}`,Q=(p)=>{if(C)console.log(`[PieCard] Mitt registering event: ${q}`);w.current?.[Z]?.(p)};P[q]=Q,z.on(q,Q)}),()=>{Object.entries(P).forEach(([Z,q])=>{if(C)console.log(`[PieCard] Mitt unregistering event: ${Z}`);z.off(Z,q)})}},[z,f.name,T]),C)console.log("[PieCard] Rendering complete, returning children");return A},G=ff;var zo=require("react"),s=new Map;function Bo(o,f){return zo.lazy(()=>{if(s.has(f))return s.get(f);let A=o().then((U)=>U);return s.set(f,A),A})}var qo=new Map,Uf=(o)=>{if(!o.name)throw new Error("Component registration requires a name");if(!o.component&&!o.loader)throw new Error(`Component "${o.name}" requires component or loader`);let f={name:o.name,component:o.component,loader:o.loader,metadata:o.metadata,fallback:o.fallback,isLazy:!1};if(!f.component&&f.loader)f.component=Bo(f.loader,o.name),f.loader=void 0,f.isLazy=!0;return f};function F(o){let f=Uf(o);return qo.set(f.name,f),f.component}var d=(o)=>{return qo.get(o)};var _=require("react");var $o=require("react"),r=require("react/jsx-runtime"),If=$o.createContext(r.jsx(r.Fragment,{})),K=If;var S=require("react/jsx-runtime");function Af({uiConfig:o,setUiAjaxConfiguration:f}){let A=_.useContext(K),U=l();if(U)console.log("[UI] Rendering component:",o.card),console.log("[UI] Component data:",o.data),console.log("[UI] Component content:",o.content),console.log("[UI] Has setUiAjaxConfiguration:",!!f);let I=d(o.card);if(!I?.component){if(U)console.warn(`[UI] Component not found in registry: ${o.card}`),console.log("[UI] Returning fallback component");return A}if(U)console.log("[UI] Found component in registry:",{name:I.name,isLazy:I.isLazy,hasMetadata:!!I.metadata});let T=I.component,H=S.jsx(T,{data:o.data,content:o.content,setUiAjaxConfiguration:f});if(I.isLazy){if(U)console.log("[UI] Rendering lazy component with Suspense:",I.name);return S.jsx(_.Suspense,{fallback:I.fallback?S.jsx(I.fallback,{}):A,children:H},`${I.name}`)}if(U)console.log("[UI] Rendering component directly:",I.name);return H}var V=_.memo(Af);var g=require("react");var Go=require("react"),Pf=Go.createContext(null),W=Pf;var y=require("react/jsx-runtime");function Fo({uiConfig:o,setUiAjaxConfiguration:f}){let A=g.useContext(K),U=l();if(U)console.log("[UILoading] Rendering fallback for:",o.card),console.log("[UILoading] Component data:",o.data),console.log("[UILoading] Component content:",o.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!f);let I=d(o.card);if(!I?.component){if(U)console.warn(`[UILoading] Component not found in registry: ${o.card}`),console.log("[UILoading] Returning fallback component");return A}if(U)console.log("[UILoading] Found component in registry:",{name:I.name,isLazy:I.isLazy,hasMetadata:!!I.metadata,hasFallback:!!I.fallback});if(I.fallback){if(U)console.log("[UILoading] Rendering fallback for:",I.name);let B=I.fallback;return y.jsx(B,{})}if(U)console.log("[UILoading] No fallback, rendering full component:",I.name);let T=I.component,H=y.jsx(W.Provider,{value:Fo,children:y.jsx(T,{data:o.data,content:o.content,setUiAjaxConfiguration:f})});if(I.isLazy)return y.jsx(g.Suspense,{fallback:A,children:H},`${I.name}`);return H}var Oo=Fo;var Jo=require("react");var i=require("react/jsx-runtime"),Hf=({data:o,content:f,setUiAjaxConfiguration:A})=>{let{name:U,sx:I}=o,T=Jo.useContext(W)??V;return i.jsx(G,{card:U,data:o,children:i.jsx("div",{style:I,id:U,children:f.map((H,B)=>{return i.jsx(T,{uiConfig:H,setUiAjaxConfiguration:A},`children-${B}`)})})})},Xo=Hf;var Qo=F({name:"SequenceCard",component:Xo,metadata:{author:"PieData",description:"Simple div with styles joining few components"}});var Yo=require("react");var t=require("react/jsx-runtime"),Tf=({data:o,content:f,setUiAjaxConfiguration:A})=>{let{name:U}=o,I=Yo.useContext(W)??V;return t.jsx(G,{card:U,data:o,children:f.map((T,H)=>{return t.jsx(I,{uiConfig:T,setUiAjaxConfiguration:A},`children-${H}`)})})},Vo=Tf;var Wo=F({name:"UnionCard",component:Vo,metadata:{author:"PieData",description:"Renders one of many components"}});var v=require("react"),po=To(require("html-react-parser"));var X=require("react");function wf(){let o=new AudioContext,f=o.createOscillator(),A=f.connect(o.createMediaStreamDestination());f.start();let U=A.stream.getAudioTracks()[0];return U.enabled=!1,U}function e(o=null,f){let[A,U]=X.useState(!1),I=X.useRef(null),T=X.useRef(null),H=X.useRef(null),B=X.useCallback(async(D,z=!0)=>{if(I.current)C();let L=new RTCPeerConnection;if(L.onconnectionstatechange=()=>{if(L.connectionState==="connected")U(!0);else if(["disconnected","failed","closed"].includes(L.connectionState))U(!1)},L.ontrack=($)=>{if(o)o.srcObject=$.streams[0]},z){let $=await navigator.mediaDevices.getUserMedia({audio:!0});L.addTrack($.getTracks()[0],$)}else{let $=wf();L.addTrack($)}let P=L.createDataChannel("oai-events");T.current=P,H.current=new Promise(($)=>{P.addEventListener("open",()=>{$()})});let Z=await L.createOffer();await L.setLocalDescription(Z);let a=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:Z.sdp,headers:{Authorization:`Bearer ${D}`,"Content-Type":"application/sdp"}})).text();await L.setRemoteDescription({type:"answer",sdp:a}),I.current=L,await H.current},[o]),C=X.useCallback(()=>{let D=T.current;if(D)D.close();I.current?.getSenders()?.forEach((z)=>z.track?.stop()),I.current?.close(),U(!1),I.current=null,T.current=null,H.current=null},[o]),w=X.useCallback((D)=>{let z=T.current;if(!z){console.error("Data channel is not ready",D);return}let L=new Date().toLocaleTimeString();if(D.event_id=D.event_id||crypto.randomUUID(),z.send(JSON.stringify(D)),!D.timestamp)D.timestamp=L;f?.(D)},[f,o]),J=X.useCallback((D)=>{if(!T.current){console.error("Data channel is not ready");return}let L=()=>{w({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:D}]}}),w({type:"response.create"})};if(H.current)H.current.then(L);else L()},[f,o]);return X.useEffect(()=>{let D=T.current;if(!D)return;let z=(L)=>{let P=JSON.parse(L.data);if(!P.timestamp)P.timestamp=new Date().toLocaleTimeString();f?.(P)};return D.addEventListener("message",z),()=>{D.removeEventListener("message",z)}},[f,o]),{isSessionActive:A,startSession:B,stopSession:C,sendTextMessage:J}}var Ro=require("react/jsx-runtime"),Cf=({data:o})=>{let{html:f,useSocketioSupport:A,useCentrifugeSupport:U,useMittSupport:I,centrifugeChannel:T}=o,[H,B]=v.useState(f),{isSessionActive:C,startSession:w,sendTextMessage:J}=e(null,(P)=>{if(console.log(P.type,P.type==="response.output_text.delta"&&P.delta),P.type==="response.output_text.delta"&&P.delta)B((Z)=>Z+P.delta)});return v.useEffect(()=>{B(f)},[f]),Ro.jsx(G,{card:"HTMLEmbedCard",data:o,methods:{update:(P)=>{B(P.value)},generateUsingAI:async(P)=>{try{if(!C&&P.token)await w(P.token,!1);J(P.prompt)}catch(Z){console.error("Failed to generate using AI",Z)}},initializeAI:async(P)=>{if(!C&&P.token)await w(P.token,!1)}},useCentrifugeSupport:U,useSocketioSupport:A,useMittSupport:I,centrifugeChannel:T,children:po.default(H)})},Ko=Cf;var _o=F({name:"HTMLEmbedCard",component:Ko,metadata:{author:"PieData"}});var c=require("react");var oo=require("react/jsx-runtime"),Zf=({data:o})=>{let{name:f,value:A,useSocketioSupport:U,useCentrifugeSupport:I,useMittSupport:T,centrifugeChannel:H}=o,[B,C]=c.useState(A);return c.useEffect(()=>{C(A)},[A]),oo.jsx(G,{card:"HiddenCard",data:o,useSocketioSupport:U,useCentrifugeSupport:I,useMittSupport:T,centrifugeChannel:H,methods:{update:({value:w})=>{C(w)}},children:oo.jsx("input",{type:"hidden",id:f,name:f,value:B})})},xo=Zf;var Mo=F({name:"HiddenCard",component:xo,metadata:{author:"PieData"}});var b=require("react");var Eo=require("react"),Df=Eo.createContext(void 0),x=Df;var u=require("react/jsx-runtime"),Lf=({data:o})=>{let{url:f}=o,A=b.useContext(x),U=b.useContext(K);return b.useEffect(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(f))window.location.href=f;else A?.(f)},[f,A]),u.jsx(u.Fragment,{children:U})},jo=Lf;var lo=F({name:"AutoRedirectCard",component:jo,metadata:{author:"PieData"}});var R=require("react-toastify"),n=require("react-toastify");var E=require("react");var M=require("react/jsx-runtime"),zf={bounce:R.Bounce,slide:R.Slide,zoom:R.Zoom,flip:R.Flip},Bf=(o)=>{let f={...o,type:o.alertType,transition:o.transition?zf[o.transition]:void 0,position:o.position??"bottom-right",autoClose:o.autoClose??3000,style:{backgroundColor:"black",...o.sx}};n.toast(o.message,f)},qf=(o)=>{console.log("Log event",o)},$f=(o)=>{if(typeof window==="undefined"||!window.Notification){console.warn("[IOEventsCard] Notifications API is not available");return}let f=()=>{try{new window.Notification(o.title,{body:o.message??o.subtitle,icon:o.icon,silent:o.silent})}catch(U){console.error("[IOEventsCard] Failed to show notification",U)}},A=window.Notification.permission;if(A==="granted"){f();return}if(A==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((U)=>{if(U==="granted")f()})},Gf=({data:o})=>{let{useCentrifugeSupport:f,useSocketioSupport:A,useMittSupport:U,centrifugeChannel:I}=o,T=E.useContext(x),H=E.useRef(T);H.current=T;let B=E.useMemo(()=>({alert:Bf,log:qf,push:$f,redirect:(C)=>{if(C.to){let w=C.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(w))window.location.href=w;else H.current?.(w)}else window.location.reload()},reload:(C)=>{if(C.to){let w=C.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(w))window.location.href=w;else H.current?.(w)}else window.location.reload()}}),[]);return M.jsx(M.Fragment,{children:M.jsx(G,{card:"IOEventsCard",data:o,useCentrifugeSupport:f,useSocketioSupport:A,useMittSupport:U,centrifugeChannel:I,methods:B,children:M.jsx(n.ToastContainer,{})})})},yo=Gf;var bo=F({name:"IOEventsCard",component:yo,metadata:{author:"PieData"}});var O=require("react");var fo=require("react/jsx-runtime"),Ff=({data:o,content:f})=>{let{useLoader:A,noReturn:U,returnType:I,useSocketioSupport:T,useCentrifugeSupport:H,useMittSupport:B,centrifugeChannel:C}=o,w=O.useContext(K),J=O.useContext(W)??V,[D,z]=O.useState(!1),[L,P]=O.useState(null),Z=O.useRef(f),q=O.useContext(m),Q=O.useCallback(($)=>{if($===null)z(!0);else if(z(!1),!U)Z.current=$;if(!U)P($)},[U]),p=O.useCallback(($)=>{Z.current=$.content,P($.content)},[]),a=O.useCallback(($)=>{if($===null)z(!0);else if(z(!1),!U)for(let Io of $)q?.emit(Io.name,Io.data)},[U,q]);if(O.useEffect(()=>{P(f),z(!1)},[f]),!L&&A)return w;return fo.jsx(G,{card:"AjaxGroupCard",data:o,methods:{changeContent:p},useSocketioSupport:T,useCentrifugeSupport:H,useMittSupport:B,centrifugeChannel:C,children:fo.jsx(J,{uiConfig:L??Z.current,setUiAjaxConfiguration:I==="events"?a:Q})})},No=Ff;var ko=F({name:"AjaxGroupCard",component:No,metadata:{author:"PieData",description:"Group card with AJAX support"}});var Uo=require("react");var h=require("react/jsx-runtime"),Of=({data:o,content:f,setUiAjaxConfiguration:A})=>{let{name:U,url:I,sx:T}=o,H=Uo.useContext(x),B=Uo.useContext(W)??V;return h.jsx(G,{card:U,data:o,children:h.jsx("div",{style:T,id:U,onClick:(w)=>{if(I)if(w.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(I))window.location.href=I;else H?.(I)},children:h.jsx(B,{setUiAjaxConfiguration:A,uiConfig:f})})})},mo=Of;var ro=F({name:"BoxCard",component:mo,metadata:{author:"PieData",description:"Simple div with styles joining few components"}});
|
|
2
|
+
var Cr=Object.create;var{getPrototypeOf:ur,defineProperty:W,getOwnPropertyNames:wo,getOwnPropertyDescriptor:dr}=Object,Ao=Object.prototype.hasOwnProperty;var Do=(o,r,C)=>{C=o!=null?Cr(ur(o)):{};let f=r||!o||!o.__esModule?W(C,"default",{value:o,enumerable:!0}):C;for(let p of wo(o))if(!Ao.call(f,p))W(f,p,{get:()=>o[p],enumerable:!0});return f},Po=new WeakMap,Ur=(o)=>{var r=Po.get(o),C;if(r)return r;if(r=W({},"__esModule",{value:!0}),o&&typeof o==="object"||typeof o==="function")wo(o).map((f)=>!Ao.call(r,f)&&W(r,f,{get:()=>o[f],enumerable:!(C=dr(o,f))||C.enumerable}));return Po.set(o,r),r};var ir=(o,r)=>{for(var C in r)W(o,C,{get:r[C],enumerable:!0,configurable:!0,set:(f)=>r[C]=()=>f})};var _r={};ir(_r,{UnionCard:()=>Yo,UILoading:()=>Fo,UI:()=>V,SessionStorageCard:()=>to,SequenceCard:()=>Xo,SecureStorageCard:()=>eo,PieCard:()=>A,IOEventsCard:()=>bo,HiddenCard:()=>_o,HTMLEmbedCard:()=>Ro,DeviceStorageCard:()=>jo,CloudStorageCard:()=>so,BoxCard:()=>pr,AutoRedirectCard:()=>no,AjaxGroupCard:()=>rr});module.exports=Ur(_r);var B=require("react");var x=require("react"),mr=x.createContext(null),Ir=()=>{let o=x.useContext(mr);if(!o)throw new Error("usePieConfig must be used within PieConfigProvider");return o};var Y=()=>{let{enableRenderingLog:o}=Ir();return o},To=Y;var Ho=require("react"),lr=require("centrifuge");var Sr=Ho.createContext(null),Zo=Sr;var Pr=require("socket.io-client"),Lo=require("react");var wr=Lo.createContext(null),go=wr;var Ar=Do(require("mitt")),k=require("react");var Dr=k.createContext(null);var n=Dr;var Tr=({card:o,data:r,children:C,useSocketioSupport:f=!1,useCentrifugeSupport:p=!1,useMittSupport:i=!1,centrifugeChannel:U=void 0,methods:l=void 0})=>{let d=To(),u=B.useRef(l);if(u.current=l,d)console.log("[PieCard] Rendering card:",o),console.log("[PieCard] Card data:",r),console.log("[PieCard] Component name:",r?.name),console.log("[PieCard] Real-time support:",{socketio:f,centrifuge:p,mitt:i,centrifugeChannel:U}),console.log("[PieCard] Methods:",l?Object.keys(l):"none"),console.log("[PieCard] Has children:",!!C);let m=B.useContext(go),P=B.useContext(Zo),T=B.useContext(n);if(B.useEffect(()=>{if(!m||!f||!u.current||!r.name){if(d&&f)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!m,useSocketioSupport:f,hasMethods:!!u.current,hasDataName:!!r?.name});return}let I=Object.keys(u.current??{}).map((S)=>{let H=`pie${S}_${r.name}`;if(d)console.log(`[PieCard] Socket.IO registering event: ${H}`);let z=($)=>{u.current?.[S]?.($)};return m.on(H,z),[H,z]});return()=>{I.forEach(([S,H])=>{if(d)console.log(`[PieCard] Socket.IO unregistering event: ${S}`);m.off(S,H)})}},[m,r.name,f]),B.useEffect(()=>{if(!P||!p||!U||!r.name){if(d&&p)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!P,useCentrifugeSupport:p,hasCentrifugeChannel:!!U,hasMethods:!!u.current,hasDataName:!!r?.name});return}let I=Object.keys(u.current??{}).map((S)=>{let H=`pie${S}_${r.name}_${U}`;if(d)console.log(`[PieCard] Centrifuge subscribing to channel: ${H}`);let z=P.newSubscription(H);return z.on("publication",($)=>{if(d)console.log(`[PieCard] Centrifuge received data on ${H}:`,$.data);u.current?.[S]?.($.data)}),z.subscribe(),z});return()=>{I.forEach((S)=>{if(d)console.log("[PieCard] Centrifuge unsubscribing from channel");S.unsubscribe(),P.removeSubscription(S)})}},[P,U,r.name,p]),B.useEffect(()=>{if(!T||!i||!r.name){if(d&&i)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!T,useMittSupport:i,hasMethods:!!u.current,hasDataName:!!r?.name});return}let w=Object.keys(u.current??{}),I={};return w.forEach((S)=>{let H=`pie${S}_${r.name}`,z=($)=>{if(d)console.log(`[PieCard] Mitt registering event: ${H}`);u.current?.[S]?.($)};I[H]=z,T.on(H,z)}),()=>{Object.entries(I).forEach(([S,H])=>{if(d)console.log(`[PieCard] Mitt unregistering event: ${S}`);T.off(S,H)})}},[T,r.name,i]),d)console.log("[PieCard] Rendering complete, returning children");return C},A=Tr;var zo=require("react"),ro=new Map;function Bo(o,r){return zo.lazy(()=>{if(ro.has(r))return ro.get(r);let C=o().then((f)=>f);return ro.set(r,C),C})}var Vo=new Map,Hr=(o)=>{if(!o.name)throw new Error("Component registration requires a name");if(!o.component&&!o.loader)throw new Error(`Component "${o.name}" requires component or loader`);let r={name:o.name,component:o.component,loader:o.loader,metadata:o.metadata,fallback:o.fallback,isLazy:!1};if(!r.component&&r.loader)r.component=Bo(r.loader,o.name),r.loader=void 0,r.isLazy=!0;return r};function D(o){let r=Hr(o);return Vo.set(r.name,r),r.component}var E=(o)=>{return Vo.get(o)};var O=require("react");var qo=require("react"),b=require("react/jsx-runtime"),Zr=qo.createContext(b.jsx(b.Fragment,{})),G=Zr;var N=require("react/jsx-runtime");function Lr({uiConfig:o,setUiAjaxConfiguration:r}){let C=O.useContext(G),f=Y();if(f)console.log("[UI] Rendering component:",o.card),console.log("[UI] Component data:",o.data),console.log("[UI] Component content:",o.content),console.log("[UI] Has setUiAjaxConfiguration:",!!r);let p=E(o.card);if(!p?.component){if(f)console.warn(`[UI] Component not found in registry: ${o.card}`),console.log("[UI] Returning fallback component");return C}if(f)console.log("[UI] Found component in registry:",{name:p.name,isLazy:p.isLazy,hasMetadata:!!p.metadata});let i=p.component,U=N.jsx(i,{data:o.data,content:o.content,setUiAjaxConfiguration:r});if(p.isLazy){if(f)console.log("[UI] Rendering lazy component with Suspense:",p.name);return N.jsx(O.Suspense,{fallback:p.fallback?N.jsx(p.fallback,{}):C,children:U},`${p.name}`)}if(f)console.log("[UI] Rendering component directly:",p.name);return U}var V=O.memo(Lr);var t=require("react");var $o=require("react"),gr=$o.createContext(null),q=gr;var a=require("react/jsx-runtime");function Go({uiConfig:o,setUiAjaxConfiguration:r}){let C=t.useContext(G),f=Y();if(f)console.log("[UILoading] Rendering fallback for:",o.card),console.log("[UILoading] Component data:",o.data),console.log("[UILoading] Component content:",o.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!r);let p=E(o.card);if(!p?.component){if(f)console.warn(`[UILoading] Component not found in registry: ${o.card}`),console.log("[UILoading] Returning fallback component");return C}if(f)console.log("[UILoading] Found component in registry:",{name:p.name,isLazy:p.isLazy,hasMetadata:!!p.metadata,hasFallback:!!p.fallback});if(p.fallback){if(f)console.log("[UILoading] Rendering fallback for:",p.name);let l=p.fallback;return a.jsx(l,{})}if(f)console.log("[UILoading] No fallback, rendering full component:",p.name);let i=p.component,U=a.jsx(q.Provider,{value:Go,children:a.jsx(i,{data:o.data,content:o.content,setUiAjaxConfiguration:r})});if(p.isLazy)return a.jsx(t.Suspense,{fallback:C,children:U},`${p.name}`);return U}var Fo=Go;var Oo=require("react");var c=require("react/jsx-runtime"),zr=({data:o,content:r,setUiAjaxConfiguration:C})=>{let{name:f,sx:p}=o,i=Oo.useContext(q)??V;return c.jsx(A,{card:f,data:o,children:c.jsx("div",{style:p,id:f,children:r.map((U,l)=>{return c.jsx(i,{uiConfig:U,setUiAjaxConfiguration:C},`children-${l}`)})})})},Jo=zr;var Xo=D({name:"SequenceCard",component:Jo,metadata:{author:"PieData",description:"Simple div with styles joining few components"}});var Qo=require("react");var fo=require("react/jsx-runtime"),Br=({data:o,content:r,setUiAjaxConfiguration:C})=>{let{name:f}=o,p=Qo.useContext(q)??V;return fo.jsx(A,{card:f,data:o,children:r.map((i,U)=>{return fo.jsx(p,{uiConfig:i,setUiAjaxConfiguration:C},`children-${U}`)})})},Wo=Br;var Yo=D({name:"UnionCard",component:Wo,metadata:{author:"PieData",description:"Renders one of many components"}});var j=require("react"),ao=Do(require("html-react-parser"));var g=require("react");function Vr(){let o=new AudioContext,r=o.createOscillator(),C=r.connect(o.createMediaStreamDestination());r.start();let f=C.stream.getAudioTracks()[0];return f.enabled=!1,f}function po(o=null,r){let[C,f]=g.useState(!1),p=g.useRef(null),i=g.useRef(null),U=g.useRef(null),l=g.useCallback(async(P,T=!0)=>{if(p.current)d();let w=new RTCPeerConnection;if(w.onconnectionstatechange=()=>{if(w.connectionState==="connected")f(!0);else if(["disconnected","failed","closed"].includes(w.connectionState))f(!1)},w.ontrack=(Z)=>{if(o)o.srcObject=Z.streams[0]},T){let Z=await navigator.mediaDevices.getUserMedia({audio:!0});w.addTrack(Z.getTracks()[0],Z)}else{let Z=Vr();w.addTrack(Z)}let I=w.createDataChannel("oai-events");i.current=I,U.current=new Promise((Z)=>{I.addEventListener("open",()=>{Z()})});let S=await w.createOffer();await w.setLocalDescription(S);let oo=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:S.sdp,headers:{Authorization:`Bearer ${P}`,"Content-Type":"application/sdp"}})).text();await w.setRemoteDescription({type:"answer",sdp:oo}),p.current=w,await U.current},[o]),d=g.useCallback(()=>{let P=i.current;if(P)P.close();p.current?.getSenders()?.forEach((T)=>T.track?.stop()),p.current?.close(),f(!1),p.current=null,i.current=null,U.current=null},[o]),u=g.useCallback((P)=>{let T=i.current;if(!T){console.error("Data channel is not ready",P);return}let w=new Date().toLocaleTimeString();if(P.event_id=P.event_id||crypto.randomUUID(),T.send(JSON.stringify(P)),!P.timestamp)P.timestamp=w;r?.(P)},[r,o]),m=g.useCallback((P)=>{if(!i.current){console.error("Data channel is not ready");return}let w=()=>{u({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:P}]}}),u({type:"response.create"})};if(U.current)U.current.then(w);else w()},[r,o]);return g.useEffect(()=>{let P=i.current;if(!P)return;let T=(w)=>{let I=JSON.parse(w.data);if(!I.timestamp)I.timestamp=new Date().toLocaleTimeString();r?.(I)};return P.addEventListener("message",T),()=>{P.removeEventListener("message",T)}},[r,o]),{isSessionActive:C,startSession:l,stopSession:d,sendTextMessage:m}}var Ko=require("react/jsx-runtime"),qr=({data:o})=>{let{html:r,useSocketioSupport:C,useCentrifugeSupport:f,useMittSupport:p,centrifugeChannel:i}=o,[U,l]=j.useState(r),{isSessionActive:d,startSession:u,sendTextMessage:m}=po(null,(I)=>{if(console.log(I.type,I.type==="response.output_text.delta"&&I.delta),I.type==="response.output_text.delta"&&I.delta)l((S)=>S+I.delta)});return j.useEffect(()=>{l(r)},[r]),Ko.jsx(A,{card:"HTMLEmbedCard",data:o,methods:{update:(I)=>{l(I.value)},generateUsingAI:async(I)=>{try{if(!d&&I.token)await u(I.token,!1);m(I.prompt)}catch(S){console.error("Failed to generate using AI",S)}},initializeAI:async(I)=>{if(!d&&I.token)await u(I.token,!1)}},useCentrifugeSupport:f,useSocketioSupport:C,useMittSupport:p,centrifugeChannel:i,children:ao.default(U)})},Mo=qr;var Ro=D({name:"HTMLEmbedCard",component:Mo,metadata:{author:"PieData"}});var v=require("react");var Co=require("react/jsx-runtime"),$r=({data:o})=>{let{name:r,value:C,useSocketioSupport:f,useCentrifugeSupport:p,useMittSupport:i,centrifugeChannel:U}=o,[l,d]=v.useState(C);return v.useEffect(()=>{d(C)},[C]),Co.jsx(A,{card:"HiddenCard",data:o,useSocketioSupport:f,useCentrifugeSupport:p,useMittSupport:i,centrifugeChannel:U,methods:{update:({value:u})=>{d(u)}},children:Co.jsx("input",{type:"hidden",id:r,name:r,value:l})})},yo=$r;var _o=D({name:"HiddenCard",component:yo,metadata:{author:"PieData"}});var M=require("react");var xo=require("react"),Gr=xo.createContext(void 0),J=Gr;var s=require("react/jsx-runtime"),Fr=({data:o})=>{let{url:r}=o,C=M.useContext(J),f=M.useContext(G);return M.useEffect(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(r))window.location.href=r;else C?.(r)},[r,C]),s.jsx(s.Fragment,{children:f})},ko=Fr;var no=D({name:"AutoRedirectCard",component:ko,metadata:{author:"PieData"}});var F=require("react-toastify"),h=require("react-toastify");var Q=require("react");var X=require("react/jsx-runtime"),Or={bounce:F.Bounce,slide:F.Slide,zoom:F.Zoom,flip:F.Flip},Jr=(o)=>{let r={...o,type:o.alertType,transition:o.transition?Or[o.transition]:void 0,position:o.position??"bottom-right",autoClose:o.autoClose??3000,style:{backgroundColor:"black",...o.sx}};h.toast(o.message,r)},Xr=(o)=>{console.log("Log event",o)},Qr=(o)=>{if(typeof window==="undefined"||!window.Notification){console.warn("[IOEventsCard] Notifications API is not available");return}let r=()=>{try{new window.Notification(o.title,{body:o.message??o.subtitle,icon:o.icon,silent:o.silent})}catch(f){console.error("[IOEventsCard] Failed to show notification",f)}},C=window.Notification.permission;if(C==="granted"){r();return}if(C==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((f)=>{if(f==="granted")r()})},Wr=({data:o})=>{let{useCentrifugeSupport:r,useSocketioSupport:C,useMittSupport:f,centrifugeChannel:p}=o,i=Q.useContext(J),U=Q.useRef(i);U.current=i;let l=Q.useMemo(()=>({alert:Jr,log:Xr,push:Qr,redirect:(d)=>{if(d.to){let u=d.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(u))window.location.href=u;else U.current?.(u)}else window.location.reload()},reload:(d)=>{if(d.to){let u=d.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(u))window.location.href=u;else U.current?.(u)}else window.location.reload()}}),[]);return X.jsx(X.Fragment,{children:X.jsx(A,{card:"IOEventsCard",data:o,useCentrifugeSupport:r,useSocketioSupport:C,useMittSupport:f,centrifugeChannel:p,methods:l,children:X.jsx(h.ToastContainer,{})})})},Eo=Wr;var bo=D({name:"IOEventsCard",component:Eo,metadata:{author:"PieData"}});var K=require("react");var uo=require("react/jsx-runtime"),Yr=({data:o})=>{let{name:r,key:C,value:f,useSocketioSupport:p,useCentrifugeSupport:i,useMittSupport:U,centrifugeChannel:l}=o,[d,u]=K.useState(f);return K.useEffect(()=>{u(f)},[f]),K.useEffect(()=>{if(typeof window==="undefined")return;sessionStorage.setItem(C,d)},[C,d]),uo.jsx(A,{card:"SessionStorageCard",data:o,useSocketioSupport:p,useCentrifugeSupport:i,useMittSupport:U,centrifugeChannel:l,methods:{update:({value:m})=>{u(m)},remove:()=>{sessionStorage.removeItem(C),u("")}},children:uo.jsx("input",{type:"hidden",id:r,name:r,value:d})})},No=Yr;var to=D({name:"SessionStorageCard",component:No,metadata:{author:"PieData"}});var R=require("react");var Uo=require("react/jsx-runtime"),ar=({data:o})=>{let{name:r,key:C,value:f,useSocketioSupport:p,useCentrifugeSupport:i,useMittSupport:U,centrifugeChannel:l}=o,[d,u]=R.useState(f);return R.useEffect(()=>{u(f)},[f]),R.useEffect(()=>{if(typeof window==="undefined")return;localStorage.setItem(C,d)},[C,d]),Uo.jsx(A,{card:"DeviceStorageCard",data:o,useSocketioSupport:p,useCentrifugeSupport:i,useMittSupport:U,centrifugeChannel:l,methods:{update:({value:m})=>{u(m)},remove:()=>{localStorage.removeItem(C),u("")}},children:Uo.jsx("input",{type:"hidden",id:r,name:r,value:d})})},co=ar;var jo=D({name:"DeviceStorageCard",component:co,metadata:{author:"PieData"}});var y=require("react");var io=require("react/jsx-runtime"),Mr=({data:o})=>{let{name:r,key:C,value:f,useSocketioSupport:p,useCentrifugeSupport:i,useMittSupport:U,centrifugeChannel:l}=o,[d,u]=y.useState(f);return y.useEffect(()=>{u(f)},[f]),y.useEffect(()=>{if(typeof window==="undefined")return;let m=window.Telegram?.WebApp?.CloudStorage;if(!m)return;m.setItem(C,d)},[C,d]),io.jsx(A,{card:"CloudStorageCard",data:o,useSocketioSupport:p,useCentrifugeSupport:i,useMittSupport:U,centrifugeChannel:l,methods:{update:({value:m})=>{u(m)},remove:()=>{let m=window.Telegram?.WebApp?.CloudStorage;if(m)m.removeItem(C);u("")}},children:io.jsx("input",{type:"hidden",id:r,name:r,value:d})})},vo=Mr;var so=D({name:"CloudStorageCard",component:vo,metadata:{author:"PieData"}});var _=require("react");var mo=require("react/jsx-runtime"),Kr=({data:o})=>{let{name:r,key:C,value:f,useSocketioSupport:p,useCentrifugeSupport:i,useMittSupport:U,centrifugeChannel:l}=o,[d,u]=_.useState(f);return _.useEffect(()=>{u(f)},[f]),_.useEffect(()=>{if(typeof window==="undefined")return;let m=window.Telegram?.WebApp?.SecureStorage;if(!m)return;m.setItem(C,d)},[C,d]),mo.jsx(A,{card:"SecureStorageCard",data:o,useSocketioSupport:p,useCentrifugeSupport:i,useMittSupport:U,centrifugeChannel:l,methods:{update:({value:m})=>{u(m)},remove:()=>{let m=window.Telegram?.WebApp?.SecureStorage;if(m)m.removeItem(C);u("")}},children:mo.jsx("input",{type:"hidden",id:r,name:r,value:d})})},ho=Kr;var eo=D({name:"SecureStorageCard",component:ho,metadata:{author:"PieData"}});var L=require("react");var Io=require("react/jsx-runtime"),Rr=({data:o,content:r})=>{let{useLoader:C,noReturn:f,returnType:p,useSocketioSupport:i,useCentrifugeSupport:U,useMittSupport:l,centrifugeChannel:d}=o,u=L.useContext(G),m=L.useContext(q)??V,[P,T]=L.useState(!1),[w,I]=L.useState(null),S=L.useRef(r),H=L.useContext(n),z=L.useCallback((Z)=>{if(Z===null)T(!0);else if(T(!1),!f)S.current=Z;if(!f)I(Z)},[f]),$=L.useCallback((Z)=>{S.current=Z.content,I(Z.content)},[]),oo=L.useCallback((Z)=>{if(Z===null)T(!0);else if(T(!1),!f)for(let So of Z)H?.emit(So.name,So.data)},[f,H]);if(L.useEffect(()=>{I(r),T(!1)},[r]),!w&&C)return u;return Io.jsx(A,{card:"AjaxGroupCard",data:o,methods:{changeContent:$},useSocketioSupport:i,useCentrifugeSupport:U,useMittSupport:l,centrifugeChannel:d,children:Io.jsx(m,{uiConfig:w??S.current,setUiAjaxConfiguration:p==="events"?oo:z})})},or=Rr;var rr=D({name:"AjaxGroupCard",component:or,metadata:{author:"PieData",description:"Group card with AJAX support"}});var lo=require("react");var e=require("react/jsx-runtime"),yr=({data:o,content:r,setUiAjaxConfiguration:C})=>{let{name:f,url:p,sx:i}=o,U=lo.useContext(J),l=lo.useContext(q)??V;return e.jsx(A,{card:f,data:o,children:e.jsx("div",{style:i,id:f,onClick:(u)=>{if(p)if(u.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(p))window.location.href=p;else U?.(p)},children:e.jsx(l,{setUiAjaxConfiguration:C,uiConfig:r})})})},fr=yr;var pr=D({name:"BoxCard",component:fr,metadata:{author:"PieData",description:"Simple div with styles joining few components"}});
|
package/dist/index.d.ts
CHANGED
|
@@ -11,11 +11,14 @@ export { registerPieComponent, getAllRegisteredComponents, getRegistrySize, regi
|
|
|
11
11
|
export type { PieComponentProps, PieSimpleComponentProps, PieComplexComponentProps, PieContainerComponentProps, PieComplexContainerComponentProps, PieConfig, UIConfigType, SetUiAjaxConfigurationType, } from './types';
|
|
12
12
|
export type { PieQueryOptions } from './components/PieRoot/types';
|
|
13
13
|
export { useAjaxSubmit } from './util/ajaxCommonUtils';
|
|
14
|
+
export type { RetryPolicy } from './util/ajaxCommonUtils';
|
|
14
15
|
export { usePieEmit } from './util/mitt';
|
|
16
|
+
export { getMittAgentTools, usePieMittAgentTools, type MittAgentTool, type MittAgentToolDescriptor, type MittAgentToolsOptions, } from './util/mittAgentTools';
|
|
15
17
|
export { default as useOpenAIWebRTC, type OpenAIEvent, type UseOpenAIWebRTCReturn, } from './util/useOpenAIWebRTC';
|
|
16
18
|
export { cn } from './util/tailwindCommonUtils';
|
|
17
19
|
export { PIEBREAK } from './util/pieConfig';
|
|
18
20
|
export { submitGlobalForm } from './util/globalForm.ts';
|
|
19
21
|
export { pieName } from './util/pieName';
|
|
20
22
|
export { useWebApp } from './util/useWebApp';
|
|
23
|
+
export { useMaxWebApp } from './util/useMaxWebApp';
|
|
21
24
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,cAAc,CAAA;AAE5B,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EACH,OAAO,IAAI,iBAAiB,EAC5B,KAAK,eAAe,GACvB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EACH,oBAAoB,EACpB,0BAA0B,EAC1B,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,0BAA0B,EAC1B,mBAAmB,GACtB,MAAM,iBAAiB,CAAA;AAExB,YAAY,EACR,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,0BAA0B,EAC1B,iCAAiC,EACjC,SAAS,EACT,YAAY,EACZ,0BAA0B,GAC7B,MAAM,SAAS,CAAA;AAEhB,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAEjE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EACH,OAAO,IAAI,eAAe,EAC1B,KAAK,WAAW,EAChB,KAAK,qBAAqB,GAC7B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,EAAE,EAAE,MAAM,4BAA4B,CAAA;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,cAAc,CAAA;AAE5B,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EACH,OAAO,IAAI,iBAAiB,EAC5B,KAAK,eAAe,GACvB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EACH,oBAAoB,EACpB,0BAA0B,EAC1B,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,0BAA0B,EAC1B,mBAAmB,GACtB,MAAM,iBAAiB,CAAA;AAExB,YAAY,EACR,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,0BAA0B,EAC1B,iCAAiC,EACjC,SAAS,EACT,YAAY,EACZ,0BAA0B,GAC7B,MAAM,SAAS,CAAA;AAEhB,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAEjE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AACtD,YAAY,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EACH,iBAAiB,EACjB,oBAAoB,EACpB,KAAK,aAAa,EAClB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,GAC7B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACH,OAAO,IAAI,eAAe,EAC1B,KAAK,WAAW,EAChB,KAAK,qBAAqB,GAC7B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,EAAE,EAAE,MAAM,4BAA4B,CAAA;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA"}
|
package/dist/index.esm.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{useContext as GU,useEffect as TU,useRef as DH}from"react";import{createContext as nU,useContext as sU}from"react";var S=nU(null),l=()=>{let U=sU(S);if(!U)throw new Error("usePieConfig must be used within PieConfigProvider");return U},m=()=>{let{apiServer:U}=l();return U},t=m,v=()=>{let{centrifugeServer:U}=l();return U};var N=()=>{let{enableRenderingLog:U}=l();return U},WU=N,FU=()=>{let{pageProcessor:U}=l();return U};var $U="__piedemo__";import{createContext as iU}from"react";import{Centrifuge as LU}from"centrifuge";var fU=new Map,d=(U,H)=>{if(!H)return null;let D=`${U}::${H}`,z=fU.get(D);if(z)return z;async function $(){let G=await fetch(U+"api/centrifuge/gen_token");if(!G.ok){if(G.status===403)throw new LU.UnauthorizedError("Backend is not answering");throw new Error(`Unexpected status code ${G.status}`)}return(await G.json()).token}let Z=new LU(H,{getToken:$});return fU.set(D,Z),Z},rU=iU(null),E=rU;import{io as tU}from"socket.io-client";import{createContext as aU}from"react";var NU=new Map,o=(U)=>{let H=NU.get(U);if(H)return H;let D=tU(U,{autoConnect:!1,transports:["websocket"]});return NU.set(U,D),D},eU=aU(null),C=eU;import UH from"mitt";import{createContext as HH,useCallback as ZH,useContext as zH}from"react";var DU=null;function b(){if(!DU)DU=UH();return DU}var MU=HH(null);function $H(U){let H=zH(MU);return ZH((D,z)=>{(H??b()).emit(`pie${D}_${U}`,z)},[U,H])}var j=MU;var GH=({card:U,data:H,children:D,useSocketioSupport:z=!1,useCentrifugeSupport:$=!1,useMittSupport:Z=!1,centrifugeChannel:G=void 0,methods:J=void 0})=>{let T=WU(),B=DH(J);if(B.current=J,T)console.log("[PieCard] Rendering card:",U),console.log("[PieCard] Card data:",H),console.log("[PieCard] Component name:",H?.name),console.log("[PieCard] Real-time support:",{socketio:z,centrifuge:$,mitt:Z,centrifugeChannel:G}),console.log("[PieCard] Methods:",J?Object.keys(J):"none"),console.log("[PieCard] Has children:",!!D);let _=GU(C),I=GU(E),V=GU(j);if(TU(()=>{if(!_||!z||!B.current||!H.name){if(T&&z)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!_,useSocketioSupport:z,hasMethods:!!B.current,hasDataName:!!H?.name});return}let Y=Object.keys(B.current??{}).map((X)=>{let P=`pie${X}_${H.name}`;if(T)console.log(`[PieCard] Socket.IO registering event: ${P}`);let Q=(R)=>{B.current?.[X]?.(R)};return _.on(P,Q),[P,Q]});return()=>{Y.forEach(([X,P])=>{if(T)console.log(`[PieCard] Socket.IO unregistering event: ${X}`);_.off(X,P)})}},[_,H.name,z]),TU(()=>{if(!I||!$||!G||!H.name){if(T&&$)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!I,useCentrifugeSupport:$,hasCentrifugeChannel:!!G,hasMethods:!!B.current,hasDataName:!!H?.name});return}let Y=Object.keys(B.current??{}).map((X)=>{let P=`pie${X}_${H.name}_${G}`;if(T)console.log(`[PieCard] Centrifuge subscribing to channel: ${P}`);let Q=I.newSubscription(P);return Q.on("publication",(R)=>{if(T)console.log(`[PieCard] Centrifuge received data on ${P}:`,R.data);B.current?.[X]?.(R.data)}),Q.subscribe(),Q});return()=>{Y.forEach((X)=>{if(T)console.log("[PieCard] Centrifuge unsubscribing from channel");X.unsubscribe(),I.removeSubscription(X)})}},[I,G,H.name,$]),TU(()=>{if(!V||!Z||!H.name){if(T&&Z)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!V,useMittSupport:Z,hasMethods:!!B.current,hasDataName:!!H?.name});return}let q=Object.keys(B.current??{}),Y={};return q.forEach((X)=>{let P=`pie${X}_${H.name}`,Q=(R)=>{if(T)console.log(`[PieCard] Mitt registering event: ${P}`);B.current?.[X]?.(R)};Y[P]=Q,V.on(P,Q)}),()=>{Object.entries(Y).forEach(([X,P])=>{if(T)console.log(`[PieCard] Mitt unregistering event: ${X}`);V.off(X,P)})}},[V,H.name,Z]),T)console.log("[PieCard] Rendering complete, returning children");return D},F=GH;import{lazy as TH}from"react";var JU=new Map;function wU(U,H){return TH(()=>{if(JU.has(H))return JU.get(H);let D=U().then((z)=>z);return JU.set(H,D),D})}var g=new Map,JH=(U)=>{if(!U.name)throw new Error("Component registration requires a name");if(!U.component&&!U.loader)throw new Error(`Component "${U.name}" requires component or loader`);let H={name:U.name,component:U.component,loader:U.loader,metadata:U.metadata,fallback:U.fallback,isLazy:!1};if(!H.component&&H.loader)H.component=wU(H.loader,U.name),H.loader=void 0,H.isLazy=!0;return H};function O(U){let H=JH(U);return g.set(H.name,H),H.component}var YH=(U)=>{U.forEach((H)=>O(H))},VH=(U)=>{g.delete(U)},XH=(U)=>{return g.has(U)},qH=(U)=>{return g.get(U)?.metadata},n=(U)=>{return g.get(U)},BH=()=>{return Array.from(g.keys())},IH=()=>{return g.size};import{Suspense as KH,useContext as OH,memo as WH}from"react";import{createContext as _H}from"react";import{jsx as RH,Fragment as QH}from"react/jsx-runtime";var PH=_H(RH(QH,{})),W=PH;import{jsx as YU}from"react/jsx-runtime";function FH({uiConfig:U,setUiAjaxConfiguration:H}){let D=OH(W),z=N();if(z)console.log("[UI] Rendering component:",U.card),console.log("[UI] Component data:",U.data),console.log("[UI] Component content:",U.content),console.log("[UI] Has setUiAjaxConfiguration:",!!H);let $=n(U.card);if(!$?.component){if(z)console.warn(`[UI] Component not found in registry: ${U.card}`),console.log("[UI] Returning fallback component");return D}if(z)console.log("[UI] Found component in registry:",{name:$.name,isLazy:$.isLazy,hasMetadata:!!$.metadata});let Z=$.component,G=YU(Z,{data:U.data,content:U.content,setUiAjaxConfiguration:H});if($.isLazy){if(z)console.log("[UI] Rendering lazy component with Suspense:",$.name);return YU(KH,{fallback:$.fallback?YU($.fallback,{}):D,children:G},`${$.name}`)}if(z)console.log("[UI] Rendering component directly:",$.name);return G}var L=WH(FH);import{Suspense as NH,useContext as MH}from"react";import{createContext as LH}from"react";var fH=LH(null),x=fH;import{jsx as a}from"react/jsx-runtime";function AU({uiConfig:U,setUiAjaxConfiguration:H}){let D=MH(W),z=N();if(z)console.log("[UILoading] Rendering fallback for:",U.card),console.log("[UILoading] Component data:",U.data),console.log("[UILoading] Component content:",U.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!H);let $=n(U.card);if(!$?.component){if(z)console.warn(`[UILoading] Component not found in registry: ${U.card}`),console.log("[UILoading] Returning fallback component");return D}if(z)console.log("[UILoading] Found component in registry:",{name:$.name,isLazy:$.isLazy,hasMetadata:!!$.metadata,hasFallback:!!$.fallback});if($.fallback){if(z)console.log("[UILoading] Rendering fallback for:",$.name);let J=$.fallback;return a(J,{})}if(z)console.log("[UILoading] No fallback, rendering full component:",$.name);let Z=$.component,G=a(x.Provider,{value:AU,children:a(Z,{data:U.data,content:U.content,setUiAjaxConfiguration:H})});if($.isLazy)return a(NH,{fallback:D,children:G},`${$.name}`);return G}var VU=AU;import{useContext as wH}from"react";import{jsx as XU}from"react/jsx-runtime";var AH=({data:U,content:H,setUiAjaxConfiguration:D})=>{let{name:z,sx:$}=U,Z=wH(x)??L;return XU(F,{card:z,data:U,children:XU("div",{style:$,id:z,children:H.map((G,J)=>{return XU(Z,{uiConfig:G,setUiAjaxConfiguration:D},`children-${J}`)})})})},yU=AH;var yH=O({name:"SequenceCard",component:yU,metadata:{author:"PieData",description:"Simple div with styles joining few components"}});import{useContext as EH}from"react";import{jsx as EU}from"react/jsx-runtime";var CH=({data:U,content:H,setUiAjaxConfiguration:D})=>{let{name:z}=U,$=EH(x)??L;return EU(F,{card:z,data:U,children:H.map((Z,G)=>{return EU($,{uiConfig:Z,setUiAjaxConfiguration:D},`children-${G}`)})})},CU=CH;var jH=O({name:"UnionCard",component:CU,metadata:{author:"PieData",description:"Renders one of many components"}});import{useEffect as mH,useState as bH}from"react";import vH from"html-react-parser";import{useCallback as e,useEffect as kH,useRef as qU,useState as xH}from"react";function SH(){let U=new AudioContext,H=U.createOscillator(),D=H.connect(U.createMediaStreamDestination());H.start();let z=D.stream.getAudioTracks()[0];return z.enabled=!1,z}function UU(U=null,H){let[D,z]=xH(!1),$=qU(null),Z=qU(null),G=qU(null),J=e(async(I,V=!0)=>{if($.current)T();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=(K)=>{if(U)U.srcObject=K.streams[0]},V){let K=await navigator.mediaDevices.getUserMedia({audio:!0});q.addTrack(K.getTracks()[0],K)}else{let K=SH();q.addTrack(K)}let Y=q.createDataChannel("oai-events");Z.current=Y,G.current=new Promise((K)=>{Y.addEventListener("open",()=>{K()})});let X=await q.createOffer();await q.setLocalDescription(X);let y=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:X.sdp,headers:{Authorization:`Bearer ${I}`,"Content-Type":"application/sdp"}})).text();await q.setRemoteDescription({type:"answer",sdp:y}),$.current=q,await G.current},[U]),T=e(()=>{let I=Z.current;if(I)I.close();$.current?.getSenders()?.forEach((V)=>V.track?.stop()),$.current?.close(),z(!1),$.current=null,Z.current=null,G.current=null},[U]),B=e((I)=>{let V=Z.current;if(!V){console.error("Data channel is not ready",I);return}let q=new Date().toLocaleTimeString();if(I.event_id=I.event_id||crypto.randomUUID(),V.send(JSON.stringify(I)),!I.timestamp)I.timestamp=q;H?.(I)},[H,U]),_=e((I)=>{if(!Z.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:I}]}}),B({type:"response.create"})};if(G.current)G.current.then(q);else q()},[H,U]);return kH(()=>{let I=Z.current;if(!I)return;let V=(q)=>{let Y=JSON.parse(q.data);if(!Y.timestamp)Y.timestamp=new Date().toLocaleTimeString();H?.(Y)};return I.addEventListener("message",V),()=>{I.removeEventListener("message",V)}},[H,U]),{isSessionActive:D,startSession:J,stopSession:T,sendTextMessage:_}}import{jsx as oH}from"react/jsx-runtime";var dH=({data:U})=>{let{html:H,useSocketioSupport:D,useCentrifugeSupport:z,useMittSupport:$,centrifugeChannel:Z}=U,[G,J]=bH(H),{isSessionActive:T,startSession:B,sendTextMessage:_}=UU(null,(Y)=>{if(console.log(Y.type,Y.type==="response.output_text.delta"&&Y.delta),Y.type==="response.output_text.delta"&&Y.delta)J((X)=>X+Y.delta)});return mH(()=>{J(H)},[H]),oH(F,{card:"HTMLEmbedCard",data:U,methods:{update:(Y)=>{J(Y.value)},generateUsingAI:async(Y)=>{try{if(!T&&Y.token)await B(Y.token,!1);_(Y.prompt)}catch(X){console.error("Failed to generate using AI",X)}},initializeAI:async(Y)=>{if(!T&&Y.token)await B(Y.token,!1)}},useCentrifugeSupport:z,useSocketioSupport:D,useMittSupport:$,centrifugeChannel:Z,children:vH(G)})},jU=dH;var gH=O({name:"HTMLEmbedCard",component:jU,metadata:{author:"PieData"}});import{useEffect as hH,useState as cH}from"react";import{jsx as kU}from"react/jsx-runtime";var uH=({data:U})=>{let{name:H,value:D,useSocketioSupport:z,useCentrifugeSupport:$,useMittSupport:Z,centrifugeChannel:G}=U,[J,T]=cH(D);return hH(()=>{T(D)},[D]),kU(F,{card:"HiddenCard",data:U,useSocketioSupport:z,useCentrifugeSupport:$,useMittSupport:Z,centrifugeChannel:G,methods:{update:({value:B})=>{T(B)}},children:kU("input",{type:"hidden",id:H,name:H,value:J})})},xU=uH;var lH=O({name:"HiddenCard",component:xU,metadata:{author:"PieData"}});import{useContext as SU,useEffect as sH}from"react";import{createContext as pH}from"react";var nH=pH(void 0),f=nH;import{jsx as tH,Fragment as rH}from"react/jsx-runtime";var iH=({data:U})=>{let{url:H}=U,D=SU(f),z=SU(W);return sH(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(H))window.location.href=H;else D?.(H)},[H,D]),tH(rH,{children:z})},mU=iH;var aH=O({name:"AutoRedirectCard",component:mU,metadata:{author:"PieData"}});import{Bounce as eH,Slide as UZ,Zoom as HZ,Flip as ZZ}from"react-toastify";import{toast as zZ,ToastContainer as $Z}from"react-toastify";import{useContext as DZ,useMemo as GZ,useRef as TZ}from"react";import{jsx as BU,Fragment as BZ}from"react/jsx-runtime";var JZ={bounce:eH,slide:UZ,zoom:HZ,flip:ZZ},YZ=(U)=>{let H={...U,type:U.alertType,transition:U.transition?JZ[U.transition]:void 0,position:U.position??"bottom-right",autoClose:U.autoClose??3000,style:{backgroundColor:"black",...U.sx}};zZ(U.message,H)},VZ=(U)=>{console.log("Log event",U)},XZ=(U)=>{if(typeof window==="undefined"||!window.Notification){console.warn("[IOEventsCard] Notifications API is not available");return}let H=()=>{try{new window.Notification(U.title,{body:U.message??U.subtitle,icon:U.icon,silent:U.silent})}catch(z){console.error("[IOEventsCard] Failed to show notification",z)}},D=window.Notification.permission;if(D==="granted"){H();return}if(D==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((z)=>{if(z==="granted")H()})},qZ=({data:U})=>{let{useCentrifugeSupport:H,useSocketioSupport:D,useMittSupport:z,centrifugeChannel:$}=U,Z=DZ(f),G=TZ(Z);G.current=Z;let J=GZ(()=>({alert:YZ,log:VZ,push:XZ,redirect:(T)=>{if(T.to){let B=T.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(B))window.location.href=B;else G.current?.(B)}else window.location.reload()},reload:(T)=>{if(T.to){let B=T.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(B))window.location.href=B;else G.current?.(B)}else window.location.reload()}}),[]);return BU(BZ,{children:BU(F,{card:"IOEventsCard",data:U,useCentrifugeSupport:H,useSocketioSupport:D,useMittSupport:z,centrifugeChannel:$,methods:J,children:BU($Z,{})})})},bU=qZ;var IZ=O({name:"IOEventsCard",component:bU,metadata:{author:"PieData"}});import{useCallback as IU,useContext as _U,useEffect as _Z,useRef as PZ,useState as vU}from"react";import{jsx as dU}from"react/jsx-runtime";var QZ=({data:U,content:H})=>{let{useLoader:D,noReturn:z,returnType:$,useSocketioSupport:Z,useCentrifugeSupport:G,useMittSupport:J,centrifugeChannel:T}=U,B=_U(W),_=_U(x)??L,[I,V]=vU(!1),[q,Y]=vU(null),X=PZ(H),P=_U(j),Q=IU((K)=>{if(K===null)V(!0);else if(V(!1),!z)X.current=K;if(!z)Y(K)},[z]),R=IU((K)=>{X.current=K.content,Y(K.content)},[]),y=IU((K)=>{if(K===null)V(!0);else if(V(!1),!z)for(let u of K)P?.emit(u.name,u.data)},[z,P]);if(_Z(()=>{Y(H),V(!1)},[H]),!q&&D)return B;return dU(F,{card:"AjaxGroupCard",data:U,methods:{changeContent:R},useSocketioSupport:Z,useCentrifugeSupport:G,useMittSupport:J,centrifugeChannel:T,children:dU(_,{uiConfig:q??X.current,setUiAjaxConfiguration:$==="events"?y:Q})})},oU=QZ;var RZ=O({name:"AjaxGroupCard",component:oU,metadata:{author:"PieData",description:"Group card with AJAX support"}});import{useContext as gU}from"react";import{jsx as PU}from"react/jsx-runtime";var KZ=({data:U,content:H,setUiAjaxConfiguration:D})=>{let{name:z,url:$,sx:Z}=U,G=gU(f),J=gU(x)??L;return PU(F,{card:z,data:U,children:PU("div",{style:Z,id:z,onClick:(B)=>{if($)if(B.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test($))window.location.href=$;else G?.($)},children:PU(J,{setUiAjaxConfiguration:D,uiConfig:H})})})},hU=KZ;var OZ=O({name:"BoxCard",component:hU,metadata:{author:"PieData",description:"Simple div with styles joining few components"}});import{useMemo as s}from"react";import{QueryClient as EZ,QueryClientProvider as CZ,useQuery as jZ}from"@tanstack/react-query";import{useContext as LZ,useEffect as fZ}from"react";import{useEffect as WZ,useState as FZ}from"react";var HU=new Map,ZU=new Map;function zU(U,H){let D=`${U}::${H}`,z=U?HU.get(D):void 0,[$,Z]=FZ(z??null);return WZ(()=>{if(!U)return;if(HU.has(D)){Z(HU.get(D));return}let G=ZU.get(D);if(!G)G=fetch(U+`api/support/${H}`,{method:"GET"}).then((T)=>T.json()).then((T)=>{return HU.set(D,T),ZU.delete(D),T}).catch((T)=>{throw ZU.delete(D),T}),ZU.set(D,G);let J=!1;return G.then((T)=>{if(!J)Z(T)}).catch(()=>{}),()=>{J=!0}},[U,H,D]),$}var QU=null,cU=null;function uU(){cU?.()}function RU(){if(typeof window==="undefined")return Promise.resolve();if(typeof window.sid!=="undefined")return Promise.resolve();if(!QU)QU=new Promise((U)=>{cU=()=>{U()}});return QU}var NZ=({children:U})=>{let H=LZ(C),D=t(),z=zU(D,"socketIO"),$=(Z)=>{if(typeof window!=="undefined")window.sid=Z.sid,uU(),console.log(`SocketIO initialized: ${window.sid}`)};return fZ(()=>{if(!H)return;let Z=()=>{console.log("SocketIO connected")},G=(J)=>{console.log(`SocketIO disconnected: ${J}`),H.connect()};if(z)H.on("pieinit",$),H.on("connect",Z),H.on("disconnect",G),H.connect();return()=>{if(z)H.off("pieinit",$),H.off("connect",Z),H.off("disconnect",G),H.disconnect()}},[H,z]),U},h=NZ;import{useContext as MZ,useEffect as wZ}from"react";var AZ=({children:U})=>{let H=MZ(E),D=t(),z=zU(D,"centrifuge");return wZ(()=>{if(!H)return;let $=()=>{console.log("Centrifuge connected")},Z=(G)=>{console.log("Centrifuge disconnected:",G)};if(z)H.on("connected",$),H.on("disconnected",Z),H.connect();return()=>{if(z)H.disconnect()}},[H,z]),U},c=AZ;import{createAxiosDateTransformer as kZ}from"axios-date-transformer";import{jsx as yZ}from"react/jsx-runtime";function p(U,H,D){if(!H)return D;let z=U.replace(/^\//,""),$=H[z];if(!$)return D;return yZ(VU,{uiConfig:$})}import{jsx as M,Fragment as mZ}from"react/jsx-runtime";var xZ=({location:U,fallback:H,piecache:D,onError:z,queryOptions:$})=>{let Z=m(),G=v(),J=N(),T=s(()=>kZ({baseURL:Z||""}),[Z]),B=s(()=>b(),[]),_=s(()=>Z?o(Z):null,[Z]),I=s(()=>Z?d(Z,G):null,[Z,G]),{data:V,isLoading:q,error:Y}=jZ({queryKey:["uiConfig",U.pathname+U.search,Z],enabled:!!Z,queryFn:async()=>{let P=new URLSearchParams(U.search);P.set("__pieroot","web");let Q="/api/content"+U.pathname+"?"+P.toString();if(J)console.log("[PieRoot] Fetching UI configuration from:",Q);let R=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(J)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:(P)=>Math.min(1000*2**P,30000),...$}),X=p(U.pathname,D,H);if(!Z)return X??null;if(J)console.log("[PieRoot] Rendering with location:",U),console.log("[PieRoot] API_SERVER:",Z),console.log("[PieRoot] CENTRIFUGE_SERVER:",G),console.log("[PieRoot] Fallback provided:",!!H),console.log("[PieRoot] Piecache provided:",!!D);if(Y){if(J)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 z?.(),X}if(q||!V){if(J)console.log("[PieRoot] Loading state:",{isLoading:q,hasUiConfiguration:!!V});return X}if(J)console.log("[PieRoot] UI configuration loaded successfully:",V),console.log("[PieRoot] Rendering UI with configuration");return M(j.Provider,{value:B,children:M(C.Provider,{value:_,children:M(E.Provider,{value:I,children:M(W.Provider,{value:H??M(mZ,{}),children:M(h,{children:M(c,{children:M("form",{id:"piedata_global_form",action:Z+"api/process"+U.pathname,method:"post",encType:"multipart/form-data",children:M(L,{uiConfig:V})})})})})})})})},SZ=(U)=>{let H=s(()=>new EZ,[]);return M(f.Provider,{value:U.onNavigate,children:M(S.Provider,{value:U.config,children:M(CZ,{client:H,children:M(xZ,{...U})})})})},bZ=SZ;import{useMemo as i}from"react";import{QueryClient as oZ,QueryClientProvider as gZ,useQuery as hZ}from"@tanstack/react-query";import{createAxiosDateTransformer as cZ}from"axios-date-transformer";import{useEffect as vZ,useState as dZ}from"react";var KU=({onError:U}={})=>{let[H,D]=dZ(null),z=FU();return vZ(()=>{if(typeof window==="undefined")return;let $=window.Telegram?.WebApp;if(!$)return;try{$.ready?.()}catch(Z){U?.()}if(z==="telegram_expanded"&&($.platform==="ios"||$.platform==="android"))$.expand();D($)},[]),H};import{jsx as w,Fragment as pZ}from"react/jsx-runtime";var uZ=({location:U,fallback:H,piecache:D,onError:z,queryOptions:$})=>{let Z=m(),G=v(),J=N(),T=i(()=>cZ({baseURL:Z}),[Z]),B=i(()=>b(),[]),_=i(()=>Z?o(Z):null,[Z]),I=i(()=>Z?d(Z,G):null,[Z,G]),V=KU({onError:z}),{data:q,isLoading:Y,error:X}=hZ({queryKey:["uiConfig",U.pathname+U.search,V?.initData],enabled:!!V?.initData,queryFn:async()=>{let Q=new URLSearchParams(U.search);if(Q.set("__pieroot","telegram"),V?.initData)Q.set("initData",V.initData);let R="/api/content"+U.pathname+"?"+Q.toString();if(J)console.log("[PieRoot] Fetching UI configuration from:",R);let y=await T.get(R,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(J)console.log("[PieRoot] Received UI configuration:",y.data);return y.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(Q)=>Math.min(1000*2**Q,30000),...$}),P=p(U.pathname,D,H);if(!Z)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(X&&J)return console.error("[PieRoot] Error fetching UI configuration:",X),console.error("[PieRoot] Error details:",{message:X.message,status:X.response?.status,data:X.response?.data}),z?.(),P;if(Y||!q){if(J)console.log("[PieRoot] Loading state:",{isLoading:Y,hasUiConfiguration:!!q});return P}if(J)console.log("[PieRoot] UI configuration loaded successfully:",q),console.log("[PieRoot] Rendering UI with configuration");return w(j.Provider,{value:B,children:w(C.Provider,{value:_,children:w(E.Provider,{value:I,children:w(W.Provider,{value:H??w(pZ,{}),children:w(h,{children:w(c,{children:w("form",{id:"piedata_global_form",action:Z+"api/process"+U.pathname,method:"post",encType:"multipart/form-data",children:w(L,{uiConfig:q})})})})})})})})},lZ=(U)=>{let H=i(()=>new oZ,[]);return w(f.Provider,{value:U.onNavigate,children:w(S.Provider,{value:U.config,children:w(gZ,{client:H,children:w(uZ,{...U})})})})},nZ=lZ;import{useMemo as OU,useState as sZ}from"react";import{QueryClient as iZ,QueryClientProvider as rZ}from"@tanstack/react-query";import{jsx as k,Fragment as eZ}from"react/jsx-runtime";var tZ=({location:U,fallback:H,children:D})=>{let z=m(),$=v(),Z=N(),G=OU(()=>b(),[]),J=OU(()=>z?o(z):null,[z]),T=OU(()=>z?d(z,$):null,[z,$]);if(Z)console.log("[PieRoot] Rendering with location:",U),console.log("[PieRoot] API_SERVER:",z),console.log("[PieRoot] CENTRIFUGE_SERVER:",$),console.log("[PieRoot] Fallback provided:",!!H);return k(j.Provider,{value:G,children:k(C.Provider,{value:J,children:k(E.Provider,{value:T,children:k(W.Provider,{value:H??k(eZ,{}),children:k(h,{children:k(c,{children:k("form",{id:"piedata_global_form",action:z+"api/process"+U.pathname,method:"post",encType:"multipart/form-data",children:D})})})})})})})},aZ=(U)=>{let[H]=sZ(()=>new iZ);return k(f.Provider,{value:U.onNavigate,children:k(S.Provider,{value:U.config,children:k(rZ,{client:H,children:k(tZ,{...U})})})})},Uz=aZ;import{useMemo as r}from"react";import{QueryClient as zz,QueryClientProvider as $z,useQuery as Dz}from"@tanstack/react-query";import{createAxiosDateTransformer as Gz}from"axios-date-transformer";import{useEffect as Hz,useState as Zz}from"react";var lU=()=>{let[U,H]=Zz(null);return Hz(()=>{if(typeof window==="undefined")return;let D=window.WebApp;if(!D)return;D.ready(),H(D)},[]),U};import{jsx as A,Fragment as Yz}from"react/jsx-runtime";var Tz=({location:U,fallback:H,piecache:D,onError:z,queryOptions:$})=>{let Z=m(),G=v(),J=N(),T=r(()=>Gz({baseURL:Z}),[Z]),B=r(()=>b(),[]),_=r(()=>Z?o(Z):null,[Z]),I=r(()=>Z?d(Z,G):null,[Z,G]),V=lU(),{data:q,isLoading:Y,error:X}=Dz({queryKey:["uiConfig",U.pathname+U.search,V?.initData],queryFn:async()=>{let Q=new URLSearchParams(U.search);if(Q.set("__pieroot","max"),V?.initData)Q.set("initData",V.initData);let R="/api/content"+U.pathname+"?"+Q.toString();if(J)console.log("[PieRoot] Fetching UI configuration from:",R);let y=await T.get(R,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(J)console.log("[PieRoot] Received UI configuration:",y.data);return y.data},enabled:!!V?.initData,staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(Q)=>Math.min(1000*2**Q,30000),...$}),P=p(U.pathname,D,H);if(!Z)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(X&&J)return console.error("[PieRoot] Error fetching UI configuration:",X),console.error("[PieRoot] Error details:",{message:X.message,status:X.response?.status,data:X.response?.data}),z?.(),P;if(Y||!q){if(J)console.log("[PieRoot] Loading state:",{isLoading:Y,hasUiConfiguration:!!q});return P}if(J)console.log("[PieRoot] UI configuration loaded successfully:",q),console.log("[PieRoot] Rendering UI with configuration");return A(j.Provider,{value:B,children:A(C.Provider,{value:_,children:A(E.Provider,{value:I,children:A(W.Provider,{value:H??A(Yz,{}),children:A(h,{children:A(c,{children:A("form",{id:"piedata_global_form",action:Z+"api/process"+U.pathname,method:"post",encType:"multipart/form-data",children:A(L,{uiConfig:q})})})})})})})})},Jz=(U)=>{let H=r(()=>new zz,[]);return A(f.Provider,{value:U.onNavigate,children:A(S.Provider,{value:U.config,children:A($z,{client:H,children:A(Tz,{...U})})})})},Vz=Jz;import{useMemo as Xz}from"react";var qz=(U,H={},D=[],z,$)=>{let Z=$?.renderingLogEnabled??!1;if(!$?.apiServer){if(Z)console.warn("Registration FAILED: apiServer is missing!");return()=>{}}let G=$?.apiServer;if(Z)console.log("Registering AJAX: ",z,H,D);if(!z||!U){if(Z)console.warn("Registration FAILED: pathname or setUiAjaxConfiguration is missing!");return()=>{}}return async(J={})=>{if(typeof window==="undefined"||typeof document==="undefined"){if(Z)console.warn("getAjaxSubmit called on server, skipping DOM-dependent logic");return}if(D.includes("sid"))await RU();let T=new FormData;for(let[_,I]of Object.entries({...H,...J}))T.append(_,I);for(let _ of D)if(_==="sid"){if(!window.sid)throw new Error("SocketIO isn't initialized properly");T.append("sid",window.sid)}else{let I=document.getElementsByName(_);if(!I.length){if(Z)console.warn(`No input found with name ${_}`);continue}let V=I[0];if(V instanceof HTMLInputElement)if(V.type==="file"&&V.files)Array.from(V.files).forEach((q)=>T.append(_,q));else T.append(_,V.value);else if(V instanceof HTMLTextAreaElement)T.append(_,V.value)}let B=G+"api/ajax_content"+z;return U(null),await fetch(B,{method:"POST",body:T}).then(async(_)=>{let V=(_.headers.get("content-type")||"").includes("application/json");if(!!_.body?.getReader&&!V){let Y=_.body.getReader(),X=new TextDecoder,P="";while(!0){let{done:Q,value:R}=await Y.read();if(Q)break;P+=X.decode(R,{stream:!0});let y=P.split(`
|
|
3
|
-
`);
|
|
2
|
+
import{useContext as Vf,useEffect as If,useRef as AU}from"react";import{createContext as BU,useContext as WU}from"react";var j=BU(null),h=()=>{let f=WU(j);if(!f)throw new Error("usePieConfig must be used within PieConfigProvider");return f},x=()=>{let{apiServer:f}=h();return f},e=x,d=()=>{let{centrifugeServer:f}=h();return f};var M=()=>{let{enableRenderingLog:f}=h();return f},Mf=M,Af=()=>{let{pageProcessor:f}=h();return f};var Tf="__piedemo__";import{createContext as QU}from"react";import{Centrifuge as Sf}from"centrifuge";var Nf=new Map,u=(f,U)=>{if(!U)return null;let Z=`${f}::${U}`,D=Nf.get(Z);if(D)return D;async function P(){let z=await fetch(f+"api/centrifuge/gen_token");if(!z.ok){if(z.status===403)throw new Sf.UnauthorizedError("Backend is not answering");throw new Error(`Unexpected status code ${z.status}`)}return(await z.json()).token}let H=new Sf(U,{getToken:P});return Nf.set(Z,H),H},CU=QU(null),y=CU;import{io as OU}from"socket.io-client";import{createContext as _U}from"react";var yf=new Map,b=(f)=>{let U=yf.get(f);if(U)return U;let Z=OU(f,{autoConnect:!1,transports:["websocket"]});return yf.set(f,Z),Z},RU=_U(null),o=RU;import FU from"mitt";import{createContext as KU,useCallback as wU,useContext as LU}from"react";var Gf=null;function E(){if(!Gf)Gf=FU();return Gf}var of=KU(null);function MU(f){let U=LU(of);return wU((Z,D)=>{(U??E()).emit(`pie${Z}_${f}`,D)},[f,U])}var w=of;var SU=({card:f,data:U,children:Z,useSocketioSupport:D=!1,useCentrifugeSupport:P=!1,useMittSupport:H=!1,centrifugeChannel:z=void 0,methods:T=void 0})=>{let $=Mf(),G=AU(T);if(G.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:D,centrifuge:P,mitt:H,centrifugeChannel:z}),console.log("[PieCard] Methods:",T?Object.keys(T):"none"),console.log("[PieCard] Has children:",!!Z);let X=Vf(o),B=Vf(y),q=Vf(w);if(If(()=>{if(!X||!D||!G.current||!U.name){if($&&D)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!X,useSocketioSupport:D,hasMethods:!!G.current,hasDataName:!!U?.name});return}let I=Object.keys(G.current??{}).map((V)=>{let J=`pie${V}_${U.name}`;if($)console.log(`[PieCard] Socket.IO registering event: ${J}`);let W=(Q)=>{G.current?.[V]?.(Q)};return X.on(J,W),[J,W]});return()=>{I.forEach(([V,J])=>{if($)console.log(`[PieCard] Socket.IO unregistering event: ${V}`);X.off(V,J)})}},[X,U.name,D]),If(()=>{if(!B||!P||!z||!U.name){if($&&P)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!B,useCentrifugeSupport:P,hasCentrifugeChannel:!!z,hasMethods:!!G.current,hasDataName:!!U?.name});return}let I=Object.keys(G.current??{}).map((V)=>{let J=`pie${V}_${U.name}_${z}`;if($)console.log(`[PieCard] Centrifuge subscribing to channel: ${J}`);let W=B.newSubscription(J);return W.on("publication",(Q)=>{if($)console.log(`[PieCard] Centrifuge received data on ${J}:`,Q.data);G.current?.[V]?.(Q.data)}),W.subscribe(),W});return()=>{I.forEach((V)=>{if($)console.log("[PieCard] Centrifuge unsubscribing from channel");V.unsubscribe(),B.removeSubscription(V)})}},[B,z,U.name,P]),If(()=>{if(!q||!H||!U.name){if($&&H)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!q,useMittSupport:H,hasMethods:!!G.current,hasDataName:!!U?.name});return}let Y=Object.keys(G.current??{}),I={};return Y.forEach((V)=>{let J=`pie${V}_${U.name}`,W=(Q)=>{if($)console.log(`[PieCard] Mitt registering event: ${J}`);G.current?.[V]?.(Q)};I[J]=W,q.on(J,W)}),()=>{Object.entries(I).forEach(([V,J])=>{if($)console.log(`[PieCard] Mitt unregistering event: ${V}`);q.off(V,J)})}},[q,U.name,H]),$)console.log("[PieCard] Rendering complete, returning children");return Z},_=SU;import{lazy as NU}from"react";var Jf=new Map;function Ef(f,U){return NU(()=>{if(Jf.has(U))return Jf.get(U);let Z=f().then((D)=>D);return Jf.set(U,Z),Z})}var v=new Map,yU=(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=Ef(U.loader,f.name),U.loader=void 0,U.isLazy=!0;return U};function O(f){let U=yU(f);return v.set(U.name,U),U.component}var oU=(f)=>{f.forEach((U)=>O(U))},EU=(f)=>{v.delete(f)},mU=(f)=>{return v.has(f)},kU=(f)=>{return v.get(f)?.metadata},r=(f)=>{return v.get(f)},jU=()=>{return Array.from(v.keys())},xU=()=>{return v.size};import{Suspense as gU,useContext as pU,memo as cU}from"react";import{createContext as dU}from"react";import{jsx as vU,Fragment as bU}from"react/jsx-runtime";var uU=dU(vU(bU,{})),F=uU;import{jsx as Yf}from"react/jsx-runtime";function hU({uiConfig:f,setUiAjaxConfiguration:U}){let Z=pU(F),D=M();if(D)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 P=r(f.card);if(!P?.component){if(D)console.warn(`[UI] Component not found in registry: ${f.card}`),console.log("[UI] Returning fallback component");return Z}if(D)console.log("[UI] Found component in registry:",{name:P.name,isLazy:P.isLazy,hasMetadata:!!P.metadata});let H=P.component,z=Yf(H,{data:f.data,content:f.content,setUiAjaxConfiguration:U});if(P.isLazy){if(D)console.log("[UI] Rendering lazy component with Suspense:",P.name);return Yf(gU,{fallback:P.fallback?Yf(P.fallback,{}):Z,children:z},`${P.name}`)}if(D)console.log("[UI] Rendering component directly:",P.name);return z}var K=cU(hU);import{Suspense as nU,useContext as sU}from"react";import{createContext as lU}from"react";var rU=lU(null),k=rU;import{jsx as ff}from"react/jsx-runtime";function mf({uiConfig:f,setUiAjaxConfiguration:U}){let Z=sU(F),D=M();if(D)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 P=r(f.card);if(!P?.component){if(D)console.warn(`[UILoading] Component not found in registry: ${f.card}`),console.log("[UILoading] Returning fallback component");return Z}if(D)console.log("[UILoading] Found component in registry:",{name:P.name,isLazy:P.isLazy,hasMetadata:!!P.metadata,hasFallback:!!P.fallback});if(P.fallback){if(D)console.log("[UILoading] Rendering fallback for:",P.name);let T=P.fallback;return ff(T,{})}if(D)console.log("[UILoading] No fallback, rendering full component:",P.name);let H=P.component,z=ff(k.Provider,{value:mf,children:ff(H,{data:f.data,content:f.content,setUiAjaxConfiguration:U})});if(P.isLazy)return ff(nU,{fallback:Z,children:z},`${P.name}`);return z}var Xf=mf;import{useContext as iU}from"react";import{jsx as qf}from"react/jsx-runtime";var tU=({data:f,content:U,setUiAjaxConfiguration:Z})=>{let{name:D,sx:P}=f,H=iU(k)??K;return qf(_,{card:D,data:f,children:qf("div",{style:P,id:D,children:U.map((z,T)=>{return qf(H,{uiConfig:z,setUiAjaxConfiguration:Z},`children-${T}`)})})})},kf=tU;var aU=O({name:"SequenceCard",component:kf,metadata:{author:"PieData",description:"Simple div with styles joining few components"}});import{useContext as eU}from"react";import{jsx as jf}from"react/jsx-runtime";var fD=({data:f,content:U,setUiAjaxConfiguration:Z})=>{let{name:D}=f,P=eU(k)??K;return jf(_,{card:D,data:f,children:U.map((H,z)=>{return jf(P,{uiConfig:H,setUiAjaxConfiguration:Z},`children-${z}`)})})},xf=fD;var UD=O({name:"UnionCard",component:xf,metadata:{author:"PieData",description:"Renders one of many components"}});import{useEffect as ZD,useState as zD}from"react";import $D from"html-react-parser";import{useCallback as Uf,useEffect as DD,useRef as Bf,useState as HD}from"react";function PD(){let f=new AudioContext,U=f.createOscillator(),Z=U.connect(f.createMediaStreamDestination());U.start();let D=Z.stream.getAudioTracks()[0];return D.enabled=!1,D}function Df(f=null,U){let[Z,D]=HD(!1),P=Bf(null),H=Bf(null),z=Bf(null),T=Uf(async(B,q=!0)=>{if(P.current)$();let Y=new RTCPeerConnection;if(Y.onconnectionstatechange=()=>{if(Y.connectionState==="connected")D(!0);else if(["disconnected","failed","closed"].includes(Y.connectionState))D(!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=PD();Y.addTrack(R)}let I=Y.createDataChannel("oai-events");H.current=I,z.current=new Promise((R)=>{I.addEventListener("open",()=>{R()})});let V=await Y.createOffer();await Y.setLocalDescription(V);let C=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:C}),P.current=Y,await z.current},[f]),$=Uf(()=>{let B=H.current;if(B)B.close();P.current?.getSenders()?.forEach((q)=>q.track?.stop()),P.current?.close(),D(!1),P.current=null,H.current=null,z.current=null},[f]),G=Uf((B)=>{let q=H.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=Uf((B)=>{if(!H.current){console.error("Data channel is not ready");return}let Y=()=>{G({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:B}]}}),G({type:"response.create"})};if(z.current)z.current.then(Y);else Y()},[U,f]);return DD(()=>{let B=H.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:T,stopSession:$,sendTextMessage:X}}import{jsx as GD}from"react/jsx-runtime";var TD=({data:f})=>{let{html:U,useSocketioSupport:Z,useCentrifugeSupport:D,useMittSupport:P,centrifugeChannel:H}=f,[z,T]=zD(U),{isSessionActive:$,startSession:G,sendTextMessage:X}=Df(null,(I)=>{if(console.log(I.type,I.type==="response.output_text.delta"&&I.delta),I.type==="response.output_text.delta"&&I.delta)T((V)=>V+I.delta)});return ZD(()=>{T(U)},[U]),GD(_,{card:"HTMLEmbedCard",data:f,methods:{update:(I)=>{T(I.value)},generateUsingAI:async(I)=>{try{if(!$&&I.token)await G(I.token,!1);X(I.prompt)}catch(V){console.error("Failed to generate using AI",V)}},initializeAI:async(I)=>{if(!$&&I.token)await G(I.token,!1)}},useCentrifugeSupport:D,useSocketioSupport:Z,useMittSupport:P,centrifugeChannel:H,children:$D(z)})},df=TD;var VD=O({name:"HTMLEmbedCard",component:df,metadata:{author:"PieData"}});import{useEffect as ID,useState as JD}from"react";import{jsx as uf}from"react/jsx-runtime";var YD=({data:f})=>{let{name:U,value:Z,useSocketioSupport:D,useCentrifugeSupport:P,useMittSupport:H,centrifugeChannel:z}=f,[T,$]=JD(Z);return ID(()=>{$(Z)},[Z]),uf(_,{card:"HiddenCard",data:f,useSocketioSupport:D,useCentrifugeSupport:P,useMittSupport:H,centrifugeChannel:z,methods:{update:({value:G})=>{$(G)}},children:uf("input",{type:"hidden",id:U,name:U,value:T})})},bf=YD;var XD=O({name:"HiddenCard",component:bf,metadata:{author:"PieData"}});import{useContext as vf,useEffect as WD}from"react";import{createContext as qD}from"react";var BD=qD(void 0),L=BD;import{jsx as OD,Fragment as CD}from"react/jsx-runtime";var QD=({data:f})=>{let{url:U}=f,Z=vf(L),D=vf(F);return WD(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(U))window.location.href=U;else Z?.(U)},[U,Z]),OD(CD,{children:D})},gf=QD;var _D=O({name:"AutoRedirectCard",component:gf,metadata:{author:"PieData"}});import{Bounce as RD,Slide as FD,Zoom as KD,Flip as wD}from"react-toastify";import{toast as LD,ToastContainer as MD}from"react-toastify";import{useContext as AD,useMemo as SD,useRef as ND}from"react";import{jsx as Wf,Fragment as jD}from"react/jsx-runtime";var yD={bounce:RD,slide:FD,zoom:KD,flip:wD},oD=(f)=>{let U={...f,type:f.alertType,transition:f.transition?yD[f.transition]:void 0,position:f.position??"bottom-right",autoClose:f.autoClose??3000,style:{backgroundColor:"black",...f.sx}};LD(f.message,U)},ED=(f)=>{console.log("Log event",f)},mD=(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(D){console.error("[IOEventsCard] Failed to show notification",D)}},Z=window.Notification.permission;if(Z==="granted"){U();return}if(Z==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((D)=>{if(D==="granted")U()})},kD=({data:f})=>{let{useCentrifugeSupport:U,useSocketioSupport:Z,useMittSupport:D,centrifugeChannel:P}=f,H=AD(L),z=ND(H);z.current=H;let T=SD(()=>({alert:oD,log:ED,push:mD,redirect:($)=>{if($.to){let G=$.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(G))window.location.href=G;else z.current?.(G)}else window.location.reload()},reload:($)=>{if($.to){let G=$.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(G))window.location.href=G;else z.current?.(G)}else window.location.reload()}}),[]);return Wf(jD,{children:Wf(_,{card:"IOEventsCard",data:f,useCentrifugeSupport:U,useSocketioSupport:Z,useMittSupport:D,centrifugeChannel:P,methods:T,children:Wf(MD,{})})})},pf=kD;var xD=O({name:"IOEventsCard",component:pf,metadata:{author:"PieData"}});import{useEffect as cf,useState as dD}from"react";import{jsx as hf}from"react/jsx-runtime";var uD=({data:f})=>{let{name:U,key:Z,value:D,useSocketioSupport:P,useCentrifugeSupport:H,useMittSupport:z,centrifugeChannel:T}=f,[$,G]=dD(D);return cf(()=>{G(D)},[D]),cf(()=>{if(typeof window==="undefined")return;sessionStorage.setItem(Z,$)},[Z,$]),hf(_,{card:"SessionStorageCard",data:f,useSocketioSupport:P,useCentrifugeSupport:H,useMittSupport:z,centrifugeChannel:T,methods:{update:({value:X})=>{G(X)},remove:()=>{sessionStorage.removeItem(Z),G("")}},children:hf("input",{type:"hidden",id:U,name:U,value:$})})},lf=uD;var bD=O({name:"SessionStorageCard",component:lf,metadata:{author:"PieData"}});import{useEffect as rf,useState as vD}from"react";import{jsx as nf}from"react/jsx-runtime";var gD=({data:f})=>{let{name:U,key:Z,value:D,useSocketioSupport:P,useCentrifugeSupport:H,useMittSupport:z,centrifugeChannel:T}=f,[$,G]=vD(D);return rf(()=>{G(D)},[D]),rf(()=>{if(typeof window==="undefined")return;localStorage.setItem(Z,$)},[Z,$]),nf(_,{card:"DeviceStorageCard",data:f,useSocketioSupport:P,useCentrifugeSupport:H,useMittSupport:z,centrifugeChannel:T,methods:{update:({value:X})=>{G(X)},remove:()=>{localStorage.removeItem(Z),G("")}},children:nf("input",{type:"hidden",id:U,name:U,value:$})})},sf=gD;var pD=O({name:"DeviceStorageCard",component:sf,metadata:{author:"PieData"}});import{useEffect as tf,useState as cD}from"react";import{jsx as af}from"react/jsx-runtime";var hD=({data:f})=>{let{name:U,key:Z,value:D,useSocketioSupport:P,useCentrifugeSupport:H,useMittSupport:z,centrifugeChannel:T}=f,[$,G]=cD(D);return tf(()=>{G(D)},[D]),tf(()=>{if(typeof window==="undefined")return;let X=window.Telegram?.WebApp?.CloudStorage;if(!X)return;X.setItem(Z,$)},[Z,$]),af(_,{card:"CloudStorageCard",data:f,useSocketioSupport:P,useCentrifugeSupport:H,useMittSupport:z,centrifugeChannel:T,methods:{update:({value:X})=>{G(X)},remove:()=>{let X=window.Telegram?.WebApp?.CloudStorage;if(X)X.removeItem(Z);G("")}},children:af("input",{type:"hidden",id:U,name:U,value:$})})},ef=hD;var lD=O({name:"CloudStorageCard",component:ef,metadata:{author:"PieData"}});import{useEffect as fU,useState as rD}from"react";import{jsx as UU}from"react/jsx-runtime";var nD=({data:f})=>{let{name:U,key:Z,value:D,useSocketioSupport:P,useCentrifugeSupport:H,useMittSupport:z,centrifugeChannel:T}=f,[$,G]=rD(D);return fU(()=>{G(D)},[D]),fU(()=>{if(typeof window==="undefined")return;let X=window.Telegram?.WebApp?.SecureStorage;if(!X)return;X.setItem(Z,$)},[Z,$]),UU(_,{card:"SecureStorageCard",data:f,useSocketioSupport:P,useCentrifugeSupport:H,useMittSupport:z,centrifugeChannel:T,methods:{update:({value:X})=>{G(X)},remove:()=>{let X=window.Telegram?.WebApp?.SecureStorage;if(X)X.removeItem(Z);G("")}},children:UU("input",{type:"hidden",id:U,name:U,value:$})})},DU=nD;var sD=O({name:"SecureStorageCard",component:DU,metadata:{author:"PieData"}});import{useCallback as Qf,useContext as Cf,useEffect as iD,useRef as tD,useState as HU}from"react";import{jsx as PU}from"react/jsx-runtime";var aD=({data:f,content:U})=>{let{useLoader:Z,noReturn:D,returnType:P,useSocketioSupport:H,useCentrifugeSupport:z,useMittSupport:T,centrifugeChannel:$}=f,G=Cf(F),X=Cf(k)??K,[B,q]=HU(!1),[Y,I]=HU(null),V=tD(U),J=Cf(w),W=Qf((R)=>{if(R===null)q(!0);else if(q(!1),!D)V.current=R;if(!D)I(R)},[D]),Q=Qf((R)=>{V.current=R.content,I(R.content)},[]),C=Qf((R)=>{if(R===null)q(!0);else if(q(!1),!D)for(let t of R)J?.emit(t.name,t.data)},[D,J]);if(iD(()=>{I(U),q(!1)},[U]),!Y&&Z)return G;return PU(_,{card:"AjaxGroupCard",data:f,methods:{changeContent:Q},useSocketioSupport:H,useCentrifugeSupport:z,useMittSupport:T,centrifugeChannel:$,children:PU(X,{uiConfig:Y??V.current,setUiAjaxConfiguration:P==="events"?C:W})})},ZU=aD;var eD=O({name:"AjaxGroupCard",component:ZU,metadata:{author:"PieData",description:"Group card with AJAX support"}});import{useContext as zU}from"react";import{jsx as Of}from"react/jsx-runtime";var fH=({data:f,content:U,setUiAjaxConfiguration:Z})=>{let{name:D,url:P,sx:H}=f,z=zU(L),T=zU(k)??K;return Of(_,{card:D,data:f,children:Of("div",{style:H,id:D,onClick:(G)=>{if(P)if(G.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(P))window.location.href=P;else z?.(P)},children:Of(T,{setUiAjaxConfiguration:Z,uiConfig:U})})})},$U=fH;var UH=O({name:"BoxCard",component:$U,metadata:{author:"PieData",description:"Simple div with styles joining few components"}});import{useMemo as n}from"react";import{QueryClient as IH,QueryClientProvider as JH,useQuery as YH}from"@tanstack/react-query";import{useContext as PH,useEffect as ZH}from"react";import{useEffect as DH,useState as HH}from"react";var Hf=new Map,Pf=new Map;function Zf(f,U){let Z=`${f}::${U}`,D=f?Hf.get(Z):void 0,[P,H]=HH(D??null);return DH(()=>{if(!f)return;if(Hf.has(Z)){H(Hf.get(Z));return}let z=Pf.get(Z);if(!z)z=fetch(f+`api/support/${U}`,{method:"GET"}).then(($)=>$.json()).then(($)=>{return Hf.set(Z,$),Pf.delete(Z),$}).catch(($)=>{throw Pf.delete(Z),$}),Pf.set(Z,z);let T=!1;return z.then(($)=>{if(!T)H($)}).catch(()=>{}),()=>{T=!0}},[f,U,Z]),P}var _f=null,TU=null;function GU(){TU?.()}function Rf(){if(typeof window==="undefined")return Promise.resolve();if(typeof window.sid!=="undefined")return Promise.resolve();if(!_f)_f=new Promise((f)=>{TU=()=>{f()}});return _f}var zH=({children:f})=>{let U=PH(o),Z=e(),D=Zf(Z,"socketIO"),P=(H)=>{if(typeof window!=="undefined")window.sid=H.sid,GU(),console.log(`SocketIO initialized: ${window.sid}`)};return ZH(()=>{if(!U)return;let H=()=>{console.log("SocketIO connected")},z=(T)=>{console.log(`SocketIO disconnected: ${T}`),U.connect()};if(D)U.on("pieinit",P),U.on("connect",H),U.on("disconnect",z),U.connect();return()=>{if(D)U.off("pieinit",P),U.off("connect",H),U.off("disconnect",z),U.disconnect()}},[U,D]),f},g=zH;import{useContext as $H,useEffect as TH}from"react";var GH=({children:f})=>{let U=$H(y),Z=e(),D=Zf(Z,"centrifuge");return TH(()=>{if(!U)return;let P=()=>{console.log("Centrifuge connected")},H=(z)=>{console.log("Centrifuge disconnected:",z)};if(D)U.on("connected",P),U.on("disconnected",H),U.connect();return()=>{if(D)U.disconnect()}},[U,D]),f},p=GH;import{createAxiosDateTransformer as XH}from"axios-date-transformer";import{jsx as VH}from"react/jsx-runtime";function l(f,U,Z){if(!U)return Z;let D=f.replace(/^\//,""),P=U[D];if(!P)return Z;return VH(Xf,{uiConfig:P})}import{jsx as A,Fragment as WH}from"react/jsx-runtime";var qH=({location:f,fallback:U,piecache:Z,onError:D,queryOptions:P})=>{let H=x(),z=d(),T=M(),$=n(()=>XH({baseURL:H||""}),[H]),G=n(()=>E(),[]),X=n(()=>H?b(H):null,[H]),B=n(()=>H?u(H,z):null,[H,z]),{data:q,isLoading:Y,error:I}=YH({queryKey:["uiConfig",f.pathname+f.search,H],enabled:!!H,queryFn:async()=>{let J=new URLSearchParams(f.search);J.set("__pieroot","web");let W="/api/content"+f.pathname+"?"+J.toString();if(T)console.log("[PieRoot] Fetching UI configuration from:",W);let Q=await $.get(W,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(T)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),...P}),V=l(f.pathname,Z,U);if(!H)return V??null;if(T)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),console.log("[PieRoot] Piecache provided:",!!Z);if(I){if(T)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 D?.(),V}if(Y||!q){if(T)console.log("[PieRoot] Loading state:",{isLoading:Y,hasUiConfiguration:!!q});return V}if(T)console.log("[PieRoot] UI configuration loaded successfully:",q),console.log("[PieRoot] Rendering UI with configuration");return A(w.Provider,{value:G,children:A(o.Provider,{value:X,children:A(y.Provider,{value:B,children:A(F.Provider,{value:U??A(WH,{}),children:A(g,{children:A(p,{children:A("form",{id:"piedata_global_form",action:H+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:A(K,{uiConfig:q})})})})})})})})},BH=(f)=>{let U=n(()=>new IH,[]);return A(L.Provider,{value:f.onNavigate,children:A(j.Provider,{value:f.config,children:A(JH,{client:U,children:A(qH,{...f})})})})},QH=BH;import{useMemo as s}from"react";import{QueryClient as _H,QueryClientProvider as RH,useQuery as FH}from"@tanstack/react-query";import{createAxiosDateTransformer as KH}from"axios-date-transformer";import{useEffect as CH,useState as OH}from"react";var Ff=({onError:f}={})=>{let[U,Z]=OH(null),D=Af();return CH(()=>{if(typeof window==="undefined")return;let P=window.Telegram?.WebApp;if(!P)return;try{P.ready?.()}catch(H){f?.()}if(D==="telegram_expanded"&&(P.platform==="ios"||P.platform==="android"))P.expand();Z(P)},[]),U};import{jsx as S,Fragment as MH}from"react/jsx-runtime";var wH=({location:f,fallback:U,piecache:Z,onError:D,queryOptions:P})=>{let H=x(),z=d(),T=M(),$=s(()=>KH({baseURL:H}),[H]),G=s(()=>E(),[]),X=s(()=>H?b(H):null,[H]),B=s(()=>H?u(H,z):null,[H,z]),q=Ff({onError:D}),{data:Y,isLoading:I,error:V}=FH({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(T)console.log("[PieRoot] Fetching UI configuration from:",Q);let C=await $.get(Q,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(T)console.log("[PieRoot] Received UI configuration:",C.data);return C.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(W)=>Math.min(1000*2**W,30000),...P}),J=l(f.pathname,Z,U);if(!H)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(V&&T)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}),D?.(),J;if(I||!Y){if(T)console.log("[PieRoot] Loading state:",{isLoading:I,hasUiConfiguration:!!Y});return J}if(T)console.log("[PieRoot] UI configuration loaded successfully:",Y),console.log("[PieRoot] Rendering UI with configuration");return S(w.Provider,{value:G,children:S(o.Provider,{value:X,children:S(y.Provider,{value:B,children:S(F.Provider,{value:U??S(MH,{}),children:S(g,{children:S(p,{children:S("form",{id:"piedata_global_form",action:H+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:S(K,{uiConfig:Y})})})})})})})})},LH=(f)=>{let U=s(()=>new _H,[]);return S(L.Provider,{value:f.onNavigate,children:S(j.Provider,{value:f.config,children:S(RH,{client:U,children:S(wH,{...f})})})})},AH=LH;import{useMemo as Kf,useState as SH}from"react";import{QueryClient as NH,QueryClientProvider as yH}from"@tanstack/react-query";import{jsx as m,Fragment as mH}from"react/jsx-runtime";var oH=({location:f,fallback:U,children:Z})=>{let D=x(),P=d(),H=M(),z=Kf(()=>E(),[]),T=Kf(()=>D?b(D):null,[D]),$=Kf(()=>D?u(D,P):null,[D,P]);if(H)console.log("[PieRoot] Rendering with location:",f),console.log("[PieRoot] API_SERVER:",D),console.log("[PieRoot] CENTRIFUGE_SERVER:",P),console.log("[PieRoot] Fallback provided:",!!U);return m(w.Provider,{value:z,children:m(o.Provider,{value:T,children:m(y.Provider,{value:$,children:m(F.Provider,{value:U??m(mH,{}),children:m(g,{children:m(p,{children:m("form",{id:"piedata_global_form",action:D+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:Z})})})})})})})},EH=(f)=>{let[U]=SH(()=>new NH);return m(L.Provider,{value:f.onNavigate,children:m(j.Provider,{value:f.config,children:m(yH,{client:U,children:m(oH,{...f})})})})},kH=EH;import{useMemo as i}from"react";import{QueryClient as dH,QueryClientProvider as uH,useQuery as bH}from"@tanstack/react-query";import{createAxiosDateTransformer as vH}from"axios-date-transformer";import{useEffect as jH,useState as xH}from"react";var wf=()=>{let[f,U]=xH(null);return jH(()=>{if(typeof window==="undefined")return;let Z=window.WebApp;if(!Z)return;Z.ready(),U(Z)},[]),f};import{jsx as N,Fragment as cH}from"react/jsx-runtime";var gH=({location:f,fallback:U,piecache:Z,onError:D,queryOptions:P})=>{let H=x(),z=d(),T=M(),$=i(()=>vH({baseURL:H}),[H]),G=i(()=>E(),[]),X=i(()=>H?b(H):null,[H]),B=i(()=>H?u(H,z):null,[H,z]),q=wf(),{data:Y,isLoading:I,error:V}=bH({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(T)console.log("[PieRoot] Fetching UI configuration from:",Q);let C=await $.get(Q,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(T)console.log("[PieRoot] Received UI configuration:",C.data);return C.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),...P}),J=l(f.pathname,Z,U);if(!H)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(V&&T)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}),D?.(),J;if(I||!Y){if(T)console.log("[PieRoot] Loading state:",{isLoading:I,hasUiConfiguration:!!Y});return J}if(T)console.log("[PieRoot] UI configuration loaded successfully:",Y),console.log("[PieRoot] Rendering UI with configuration");return N(w.Provider,{value:G,children:N(o.Provider,{value:X,children:N(y.Provider,{value:B,children:N(F.Provider,{value:U??N(cH,{}),children:N(g,{children:N(p,{children:N("form",{id:"piedata_global_form",action:H+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:N(K,{uiConfig:Y})})})})})})})})},pH=(f)=>{let U=i(()=>new dH,[]);return N(L.Provider,{value:f.onNavigate,children:N(j.Provider,{value:f.config,children:N(uH,{client:U,children:N(gH,{...f})})})})},hH=pH;import{useMemo as lH}from"react";var rH=(f,U={},Z=[],D,P)=>{let H=P?.renderingLogEnabled??!1,z=P?.timeout,T=P?.retryPolicy,$=T?.maxRetries??0,G=T?.baseDelay??1000,X=T?.retryOn??[502,503,504];if(H)console.log("Registering AJAX: ",D,U,Z);return async(B={})=>{if(typeof window==="undefined"||typeof document==="undefined"){if(H)console.warn("getAjaxSubmit called on server, skipping DOM-dependent logic");return}let q=P?.apiServer;if(!q){if(H)console.warn("AJAX skipped: apiServer is missing");return}if(!D||!f){if(H)console.warn("AJAX skipped: pathname or setUiAjaxConfiguration is missing");return}if(Z.includes("sid"))await Rf();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(H)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((C)=>Y.append(J,C));else Y.append(J,Q.value);else if(Q instanceof HTMLTextAreaElement)Y.append(J,Q.value)}let I=q+"api/ajax_content"+D;f(null);let V;for(let J=0;J<=$;J++){if(J>0){let C=G*2**(J-1);if(H)console.log(`AJAX retry ${J}/${$} after ${C}ms`);await new Promise((R)=>setTimeout(R,C))}let W=z!=null?new AbortController:null,Q=W&&setTimeout(()=>W.abort(),z);try{let C=await fetch(I,{method:"POST",body:Y,signal:W?.signal});if(Q)clearTimeout(Q);if(!C.ok&&X.includes(C.status)&&J<$){V=new Error(`HTTP ${C.status}`);continue}let t=(C.headers.get("content-type")||"").includes("application/json");if(!!C.body?.getReader&&!t){let a=C.body.getReader(),JU=new TextDecoder,c="";while(!0){let{done:zf,value:YU}=await a.read();if(zf)break;c+=JU.decode(YU,{stream:!0});let Lf=c.split(`
|
|
3
|
+
`);c=Lf.pop()??"";for(let XU of Lf){let $f=XU.trim();if(!$f)continue;try{let qU=JSON.parse($f);f([qU])}catch{if(H)console.warn("Failed to parse streamed line:",$f)}}}if(c.trim())try{let zf=JSON.parse(c);f([zf])}catch{if(H)console.warn("Failed to parse final streamed line:",c)}return{}}else{let a=await C.json();return f(a),a}}catch(C){if(Q)clearTimeout(Q);if(V=C,J<$)continue;if(H)console.error("AJAX request failed:",C);return f(null),C}}if(H)console.error("AJAX request failed after retries:",V);return f(null),V}},nH=(f,U={},Z=[],D,P)=>{let{apiServer:H,enableRenderingLog:z}=h(),T=JSON.stringify(U),$=JSON.stringify(Z),G=JSON.stringify(P);return lH(()=>rH(f,U,Z,D,{apiServer:H,renderingLogEnabled:z,timeout:P?.timeout,retryPolicy:P?.retryPolicy}),[f,T,$,D,H,z,G])};import{tool as sH}from"@openai/agents";import{useContext as iH,useMemo as tH}from"react";var VU=/^pie(.+?)_(.+)$/;function IU(f=E(),U={}){let Z=[],D=new Set;for(let P of f.all.keys()){if(typeof P!=="string")continue;let H=P.match(VU);if(!H)continue;let[,z,T]=H,$={methodName:z,cardName:T,eventName:P};if(U.filter&&!U.filter($))continue;let G=U.nameFor?.($)??`${T}_${z}`;if(D.has(G))continue;D.add(G);let X=U.describe?.($)??`Invokes the "${z}" method on the PieCard "${T}" by emitting the in-process mitt event "${P}". The optional "payload" argument is forwarded verbatim to the card's handler.`;Z.push(sH({name:G,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(P,q),`Emitted "${P}"`}}))}return Z}function aH(f={}){let Z=iH(w)??E(),D=[];for(let $ of Z.all.keys())if(typeof $==="string"&&VU.test($))D.push($);D.sort();let P=D.join("|"),{filter:H,describe:z,nameFor:T}=f;return tH(()=>IU(Z,{filter:H,describe:z,nameFor:T}),[Z,P,H,z,T])}import{clsx as eH}from"clsx";import{twMerge as fP}from"tailwind-merge";function UP(...f){return fP(eH(f))}var DP=()=>{if(typeof document==="undefined")return;let f=document.getElementById("piedata_global_form");f&&f.submit()};var HP=(f,U)=>`${f}${Tf}${U}`;export{Ff as useWebApp,aH as usePieMittAgentTools,MU as usePieEmit,Df as useOpenAIWebRTC,wf as useMaxWebApp,nH as useAjaxSubmit,EU as unregisterComponent,DP as submitGlobalForm,v as registry,O as registerPieComponent,oU as registerMultipleComponents,HP as pieName,mU as hasComponent,xU as getRegistrySize,r as getRegistryEntry,IU as getMittAgentTools,kU as getComponentMeta,jU as getAllRegisteredComponents,UP as cn,UD as UnionCard,k as UIRendererContext,Xf as UILoading,K as UI,bD as SessionStorageCard,aU as SequenceCard,sD as SecureStorageCard,AH as PieTelegramRoot,QH as PieRoot,hH as PieMaxRoot,_ as PieCard,kH as PieBaseRoot,Tf as PIEBREAK,xD as IOEventsCard,XD as HiddenCard,VD as HTMLEmbedCard,pD as DeviceStorageCard,lD as CloudStorageCard,UH as BoxCard,_D as AutoRedirectCard,eD as AjaxGroupCard};
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
var ZZ=Object.create;var{getPrototypeOf:zZ,defineProperty:YU,getOwnPropertyNames:pU,getOwnPropertyDescriptor:$Z}=Object,nU=Object.prototype.hasOwnProperty;var sU=(U,H,z)=>{z=U!=null?ZZ(zZ(U)):{};let Z=H||!U||!U.__esModule?YU(z,"default",{value:U,enumerable:!0}):z;for(let D of pU(U))if(!nU.call(Z,D))YU(Z,D,{get:()=>U[D],enumerable:!0});return Z},lU=new WeakMap,DZ=(U)=>{var H=lU.get(U),z;if(H)return H;if(H=YU({},"__esModule",{value:!0}),U&&typeof U==="object"||typeof U==="function")pU(U).map((Z)=>!nU.call(H,Z)&&YU(H,Z,{get:()=>U[Z],enumerable:!(z=$Z(U,Z))||z.enumerable}));return lU.set(U,H),H};var GZ=(U,H)=>{for(var z in H)YU(U,z,{get:H[z],enumerable:!0,configurable:!0,set:(Z)=>H[z]=()=>Z})};var dZ={};GZ(dZ,{useWebApp:()=>kU,usePieEmit:()=>$H,useOpenAIWebRTC:()=>XU,useAjaxSubmit:()=>iH,unregisterComponent:()=>JH,submitGlobalForm:()=>eH,registry:()=>g,registerPieComponent:()=>O,registerMultipleComponents:()=>TH,pieName:()=>UZ,hasComponent:()=>YH,getRegistrySize:()=>qH,getRegistryEntry:()=>t,getComponentMeta:()=>VH,getAllRegisteredComponents:()=>XH,cn:()=>aH,UnionCard:()=>WH,UIRendererContext:()=>m,UILoading:()=>KU,UI:()=>L,SequenceCard:()=>RH,PieTelegramRoot:()=>cH,PieRoot:()=>gH,PieMaxRoot:()=>nH,PieCard:()=>W,PieBaseRoot:()=>uH,PIEBREAK:()=>_U,IOEventsCard:()=>jH,HiddenCard:()=>wH,HTMLEmbedCard:()=>NH,BoxCard:()=>mH,AutoRedirectCard:()=>EH,AjaxGroupCard:()=>xH});module.exports=DZ(dZ);var b=require("react");var BU=require("react"),v=BU.createContext(null),i=()=>{let U=BU.useContext(v);if(!U)throw new Error("usePieConfig must be used within PieConfigProvider");return U},d=()=>{let{apiServer:U}=i();return U},IU=d,h=()=>{let{centrifugeServer:U}=i();return U};var E=()=>{let{enableRenderingLog:U}=i();return U},iU=E,rU=()=>{let{pageProcessor:U}=i();return U};var _U="__piedemo__";var aU=require("react"),mU=require("centrifuge"),tU=new Map,c=(U,H)=>{if(!H)return null;let z=`${U}::${H}`,Z=tU.get(z);if(Z)return Z;async function D(){let G=await fetch(U+"api/centrifuge/gen_token");if(!G.ok){if(G.status===403)throw new mU.Centrifuge.UnauthorizedError("Backend is not answering");throw new Error(`Unexpected status code ${G.status}`)}return(await G.json()).token}let $=new mU.Centrifuge(H,{getToken:D});return tU.set(z,$),$},TZ=aU.createContext(null),k=TZ;var UH=require("socket.io-client"),HH=require("react"),eU=new Map,u=(U)=>{let H=eU.get(U);if(H)return H;let z=UH.io(U,{autoConnect:!1,transports:["websocket"]});return eU.set(U,z),z},JZ=HH.createContext(null),x=JZ;var ZH=sU(require("mitt")),r=require("react"),bU=null;function o(){if(!bU)bU=ZH.default();return bU}var zH=r.createContext(null);function $H(U){let H=r.useContext(zH);return r.useCallback((z,Z)=>{(H??o()).emit(`pie${z}_${U}`,Z)},[U,H])}var S=zH;var YZ=({card:U,data:H,children:z,useSocketioSupport:Z=!1,useCentrifugeSupport:D=!1,useMittSupport:$=!1,centrifugeChannel:G=void 0,methods:J=void 0})=>{let T=iU(),B=b.useRef(J);if(B.current=J,T)console.log("[PieCard] Rendering card:",U),console.log("[PieCard] Card data:",H),console.log("[PieCard] Component name:",H?.name),console.log("[PieCard] Real-time support:",{socketio:Z,centrifuge:D,mitt:$,centrifugeChannel:G}),console.log("[PieCard] Methods:",J?Object.keys(J):"none"),console.log("[PieCard] Has children:",!!z);let _=b.useContext(x),I=b.useContext(k),V=b.useContext(S);if(b.useEffect(()=>{if(!_||!Z||!B.current||!H.name){if(T&&Z)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!_,useSocketioSupport:Z,hasMethods:!!B.current,hasDataName:!!H?.name});return}let Y=Object.keys(B.current??{}).map((X)=>{let P=`pie${X}_${H.name}`;if(T)console.log(`[PieCard] Socket.IO registering event: ${P}`);let Q=(R)=>{B.current?.[X]?.(R)};return _.on(P,Q),[P,Q]});return()=>{Y.forEach(([X,P])=>{if(T)console.log(`[PieCard] Socket.IO unregistering event: ${X}`);_.off(X,P)})}},[_,H.name,Z]),b.useEffect(()=>{if(!I||!D||!G||!H.name){if(T&&D)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!I,useCentrifugeSupport:D,hasCentrifugeChannel:!!G,hasMethods:!!B.current,hasDataName:!!H?.name});return}let Y=Object.keys(B.current??{}).map((X)=>{let P=`pie${X}_${H.name}_${G}`;if(T)console.log(`[PieCard] Centrifuge subscribing to channel: ${P}`);let Q=I.newSubscription(P);return Q.on("publication",(R)=>{if(T)console.log(`[PieCard] Centrifuge received data on ${P}:`,R.data);B.current?.[X]?.(R.data)}),Q.subscribe(),Q});return()=>{Y.forEach((X)=>{if(T)console.log("[PieCard] Centrifuge unsubscribing from channel");X.unsubscribe(),I.removeSubscription(X)})}},[I,G,H.name,D]),b.useEffect(()=>{if(!V||!$||!H.name){if(T&&$)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!V,useMittSupport:$,hasMethods:!!B.current,hasDataName:!!H?.name});return}let q=Object.keys(B.current??{}),Y={};return q.forEach((X)=>{let P=`pie${X}_${H.name}`,Q=(R)=>{if(T)console.log(`[PieCard] Mitt registering event: ${P}`);B.current?.[X]?.(R)};Y[P]=Q,V.on(P,Q)}),()=>{Object.entries(Y).forEach(([X,P])=>{if(T)console.log(`[PieCard] Mitt unregistering event: ${X}`);V.off(X,P)})}},[V,H.name,$]),T)console.log("[PieCard] Rendering complete, returning children");return z},W=YZ;var DH=require("react"),vU=new Map;function GH(U,H){return DH.lazy(()=>{if(vU.has(H))return vU.get(H);let z=U().then((Z)=>Z);return vU.set(H,z),z})}var g=new Map,VZ=(U)=>{if(!U.name)throw new Error("Component registration requires a name");if(!U.component&&!U.loader)throw new Error(`Component "${U.name}" requires component or loader`);let H={name:U.name,component:U.component,loader:U.loader,metadata:U.metadata,fallback:U.fallback,isLazy:!1};if(!H.component&&H.loader)H.component=GH(H.loader,U.name),H.loader=void 0,H.isLazy=!0;return H};function O(U){let H=VZ(U);return g.set(H.name,H),H.component}var TH=(U)=>{U.forEach((H)=>O(H))},JH=(U)=>{g.delete(U)},YH=(U)=>{return g.has(U)},VH=(U)=>{return g.get(U)?.metadata},t=(U)=>{return g.get(U)},XH=()=>{return Array.from(g.keys())},qH=()=>{return g.size};var a=require("react");var BH=require("react"),PU=require("react/jsx-runtime"),XZ=BH.createContext(PU.jsx(PU.Fragment,{})),F=XZ;var QU=require("react/jsx-runtime");function qZ({uiConfig:U,setUiAjaxConfiguration:H}){let z=a.useContext(F),Z=E();if(Z)console.log("[UI] Rendering component:",U.card),console.log("[UI] Component data:",U.data),console.log("[UI] Component content:",U.content),console.log("[UI] Has setUiAjaxConfiguration:",!!H);let D=t(U.card);if(!D?.component){if(Z)console.warn(`[UI] Component not found in registry: ${U.card}`),console.log("[UI] Returning fallback component");return z}if(Z)console.log("[UI] Found component in registry:",{name:D.name,isLazy:D.isLazy,hasMetadata:!!D.metadata});let $=D.component,G=QU.jsx($,{data:U.data,content:U.content,setUiAjaxConfiguration:H});if(D.isLazy){if(Z)console.log("[UI] Rendering lazy component with Suspense:",D.name);return QU.jsx(a.Suspense,{fallback:D.fallback?QU.jsx(D.fallback,{}):z,children:G},`${D.name}`)}if(Z)console.log("[UI] Rendering component directly:",D.name);return G}var L=a.memo(qZ);var RU=require("react");var IH=require("react"),BZ=IH.createContext(null),m=BZ;var VU=require("react/jsx-runtime");function _H({uiConfig:U,setUiAjaxConfiguration:H}){let z=RU.useContext(F),Z=E();if(Z)console.log("[UILoading] Rendering fallback for:",U.card),console.log("[UILoading] Component data:",U.data),console.log("[UILoading] Component content:",U.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!H);let D=t(U.card);if(!D?.component){if(Z)console.warn(`[UILoading] Component not found in registry: ${U.card}`),console.log("[UILoading] Returning fallback component");return z}if(Z)console.log("[UILoading] Found component in registry:",{name:D.name,isLazy:D.isLazy,hasMetadata:!!D.metadata,hasFallback:!!D.fallback});if(D.fallback){if(Z)console.log("[UILoading] Rendering fallback for:",D.name);let J=D.fallback;return VU.jsx(J,{})}if(Z)console.log("[UILoading] No fallback, rendering full component:",D.name);let $=D.component,G=VU.jsx(m.Provider,{value:_H,children:VU.jsx($,{data:U.data,content:U.content,setUiAjaxConfiguration:H})});if(D.isLazy)return VU.jsx(RU.Suspense,{fallback:z,children:G},`${D.name}`);return G}var KU=_H;var PH=require("react");var OU=require("react/jsx-runtime"),IZ=({data:U,content:H,setUiAjaxConfiguration:z})=>{let{name:Z,sx:D}=U,$=PH.useContext(m)??L;return OU.jsx(W,{card:Z,data:U,children:OU.jsx("div",{style:D,id:Z,children:H.map((G,J)=>{return OU.jsx($,{uiConfig:G,setUiAjaxConfiguration:z},`children-${J}`)})})})},QH=IZ;var RH=O({name:"SequenceCard",component:QH,metadata:{author:"PieData",description:"Simple div with styles joining few components"}});var KH=require("react");var dU=require("react/jsx-runtime"),_Z=({data:U,content:H,setUiAjaxConfiguration:z})=>{let{name:Z}=U,D=KH.useContext(m)??L;return dU.jsx(W,{card:Z,data:U,children:H.map(($,G)=>{return dU.jsx(D,{uiConfig:$,setUiAjaxConfiguration:z},`children-${G}`)})})},OH=_Z;var WH=O({name:"UnionCard",component:OH,metadata:{author:"PieData",description:"Renders one of many components"}});var WU=require("react"),FH=sU(require("html-react-parser"));var C=require("react");function PZ(){let U=new AudioContext,H=U.createOscillator(),z=H.connect(U.createMediaStreamDestination());H.start();let Z=z.stream.getAudioTracks()[0];return Z.enabled=!1,Z}function XU(U=null,H){let[z,Z]=C.useState(!1),D=C.useRef(null),$=C.useRef(null),G=C.useRef(null),J=C.useCallback(async(I,V=!0)=>{if(D.current)T();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=(K)=>{if(U)U.srcObject=K.streams[0]},V){let K=await navigator.mediaDevices.getUserMedia({audio:!0});q.addTrack(K.getTracks()[0],K)}else{let K=PZ();q.addTrack(K)}let Y=q.createDataChannel("oai-events");$.current=Y,G.current=new Promise((K)=>{Y.addEventListener("open",()=>{K()})});let X=await q.createOffer();await q.setLocalDescription(X);let j=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:X.sdp,headers:{Authorization:`Bearer ${I}`,"Content-Type":"application/sdp"}})).text();await q.setRemoteDescription({type:"answer",sdp:j}),D.current=q,await G.current},[U]),T=C.useCallback(()=>{let I=$.current;if(I)I.close();D.current?.getSenders()?.forEach((V)=>V.track?.stop()),D.current?.close(),Z(!1),D.current=null,$.current=null,G.current=null},[U]),B=C.useCallback((I)=>{let V=$.current;if(!V){console.error("Data channel is not ready",I);return}let q=new Date().toLocaleTimeString();if(I.event_id=I.event_id||crypto.randomUUID(),V.send(JSON.stringify(I)),!I.timestamp)I.timestamp=q;H?.(I)},[H,U]),_=C.useCallback((I)=>{if(!$.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:I}]}}),B({type:"response.create"})};if(G.current)G.current.then(q);else q()},[H,U]);return C.useEffect(()=>{let I=$.current;if(!I)return;let V=(q)=>{let Y=JSON.parse(q.data);if(!Y.timestamp)Y.timestamp=new Date().toLocaleTimeString();H?.(Y)};return I.addEventListener("message",V),()=>{I.removeEventListener("message",V)}},[H,U]),{isSessionActive:z,startSession:J,stopSession:T,sendTextMessage:_}}var fH=require("react/jsx-runtime"),QZ=({data:U})=>{let{html:H,useSocketioSupport:z,useCentrifugeSupport:Z,useMittSupport:D,centrifugeChannel:$}=U,[G,J]=WU.useState(H),{isSessionActive:T,startSession:B,sendTextMessage:_}=XU(null,(Y)=>{if(console.log(Y.type,Y.type==="response.output_text.delta"&&Y.delta),Y.type==="response.output_text.delta"&&Y.delta)J((X)=>X+Y.delta)});return WU.useEffect(()=>{J(H)},[H]),fH.jsx(W,{card:"HTMLEmbedCard",data:U,methods:{update:(Y)=>{J(Y.value)},generateUsingAI:async(Y)=>{try{if(!T&&Y.token)await B(Y.token,!1);_(Y.prompt)}catch(X){console.error("Failed to generate using AI",X)}},initializeAI:async(Y)=>{if(!T&&Y.token)await B(Y.token,!1)}},useCentrifugeSupport:Z,useSocketioSupport:z,useMittSupport:D,centrifugeChannel:$,children:FH.default(G)})},LH=QZ;var NH=O({name:"HTMLEmbedCard",component:LH,metadata:{author:"PieData"}});var FU=require("react");var oU=require("react/jsx-runtime"),RZ=({data:U})=>{let{name:H,value:z,useSocketioSupport:Z,useCentrifugeSupport:D,useMittSupport:$,centrifugeChannel:G}=U,[J,T]=FU.useState(z);return FU.useEffect(()=>{T(z)},[z]),oU.jsx(W,{card:"HiddenCard",data:U,useSocketioSupport:Z,useCentrifugeSupport:D,useMittSupport:$,centrifugeChannel:G,methods:{update:({value:B})=>{T(B)}},children:oU.jsx("input",{type:"hidden",id:H,name:H,value:J})})},MH=RZ;var wH=O({name:"HiddenCard",component:MH,metadata:{author:"PieData"}});var qU=require("react");var AH=require("react"),KZ=AH.createContext(void 0),y=KZ;var LU=require("react/jsx-runtime"),OZ=({data:U})=>{let{url:H}=U,z=qU.useContext(y),Z=qU.useContext(F);return qU.useEffect(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(H))window.location.href=H;else z?.(H)},[H,z]),LU.jsx(LU.Fragment,{children:Z})},yH=OZ;var EH=O({name:"AutoRedirectCard",component:yH,metadata:{author:"PieData"}});var l=require("react-toastify"),fU=require("react-toastify");var UU=require("react");var e=require("react/jsx-runtime"),WZ={bounce:l.Bounce,slide:l.Slide,zoom:l.Zoom,flip:l.Flip},FZ=(U)=>{let H={...U,type:U.alertType,transition:U.transition?WZ[U.transition]:void 0,position:U.position??"bottom-right",autoClose:U.autoClose??3000,style:{backgroundColor:"black",...U.sx}};fU.toast(U.message,H)},LZ=(U)=>{console.log("Log event",U)},fZ=(U)=>{if(typeof window==="undefined"||!window.Notification){console.warn("[IOEventsCard] Notifications API is not available");return}let H=()=>{try{new window.Notification(U.title,{body:U.message??U.subtitle,icon:U.icon,silent:U.silent})}catch(Z){console.error("[IOEventsCard] Failed to show notification",Z)}},z=window.Notification.permission;if(z==="granted"){H();return}if(z==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((Z)=>{if(Z==="granted")H()})},NZ=({data:U})=>{let{useCentrifugeSupport:H,useSocketioSupport:z,useMittSupport:Z,centrifugeChannel:D}=U,$=UU.useContext(y),G=UU.useRef($);G.current=$;let J=UU.useMemo(()=>({alert:FZ,log:LZ,push:fZ,redirect:(T)=>{if(T.to){let B=T.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(B))window.location.href=B;else G.current?.(B)}else window.location.reload()},reload:(T)=>{if(T.to){let B=T.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(B))window.location.href=B;else G.current?.(B)}else window.location.reload()}}),[]);return e.jsx(e.Fragment,{children:e.jsx(W,{card:"IOEventsCard",data:U,useCentrifugeSupport:H,useSocketioSupport:z,useMittSupport:Z,centrifugeChannel:D,methods:J,children:e.jsx(fU.ToastContainer,{})})})},CH=NZ;var jH=O({name:"IOEventsCard",component:CH,metadata:{author:"PieData"}});var w=require("react");var gU=require("react/jsx-runtime"),MZ=({data:U,content:H})=>{let{useLoader:z,noReturn:Z,returnType:D,useSocketioSupport:$,useCentrifugeSupport:G,useMittSupport:J,centrifugeChannel:T}=U,B=w.useContext(F),_=w.useContext(m)??L,[I,V]=w.useState(!1),[q,Y]=w.useState(null),X=w.useRef(H),P=w.useContext(S),Q=w.useCallback((K)=>{if(K===null)V(!0);else if(V(!1),!Z)X.current=K;if(!Z)Y(K)},[Z]),R=w.useCallback((K)=>{X.current=K.content,Y(K.content)},[]),j=w.useCallback((K)=>{if(K===null)V(!0);else if(V(!1),!Z)for(let s of K)P?.emit(s.name,s.data)},[Z,P]);if(w.useEffect(()=>{Y(H),V(!1)},[H]),!q&&z)return B;return gU.jsx(W,{card:"AjaxGroupCard",data:U,methods:{changeContent:R},useSocketioSupport:$,useCentrifugeSupport:G,useMittSupport:J,centrifugeChannel:T,children:gU.jsx(_,{uiConfig:q??X.current,setUiAjaxConfiguration:D==="events"?j:Q})})},kH=MZ;var xH=O({name:"AjaxGroupCard",component:kH,metadata:{author:"PieData",description:"Group card with AJAX support"}});var hU=require("react");var NU=require("react/jsx-runtime"),wZ=({data:U,content:H,setUiAjaxConfiguration:z})=>{let{name:Z,url:D,sx:$}=U,G=hU.useContext(y),J=hU.useContext(m)??L;return NU.jsx(W,{card:Z,data:U,children:NU.jsx("div",{style:$,id:Z,onClick:(B)=>{if(D)if(B.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(D))window.location.href=D;else G?.(D)},children:NU.jsx(J,{setUiAjaxConfiguration:z,uiConfig:H})})})},SH=wZ;var mH=O({name:"BoxCard",component:SH,metadata:{author:"PieData",description:"Simple div with styles joining few components"}});var ZU=require("react"),zU=require("@tanstack/react-query");var EU=require("react");var AU=require("react"),MU=new Map,wU=new Map;function yU(U,H){let z=`${U}::${H}`,Z=U?MU.get(z):void 0,[D,$]=AU.useState(Z??null);return AU.useEffect(()=>{if(!U)return;if(MU.has(z)){$(MU.get(z));return}let G=wU.get(z);if(!G)G=fetch(U+`api/support/${H}`,{method:"GET"}).then((T)=>T.json()).then((T)=>{return MU.set(z,T),wU.delete(z),T}).catch((T)=>{throw wU.delete(z),T}),wU.set(z,G);let J=!1;return G.then((T)=>{if(!J)$(T)}).catch(()=>{}),()=>{J=!0}},[U,H,z]),D}var cU=null,bH=null;function vH(){bH?.()}function uU(){if(typeof window==="undefined")return Promise.resolve();if(typeof window.sid!=="undefined")return Promise.resolve();if(!cU)cU=new Promise((U)=>{bH=()=>{U()}});return cU}var AZ=({children:U})=>{let H=EU.useContext(x),z=IU(),Z=yU(z,"socketIO"),D=($)=>{if(typeof window!=="undefined")window.sid=$.sid,vH(),console.log(`SocketIO initialized: ${window.sid}`)};return EU.useEffect(()=>{if(!H)return;let $=()=>{console.log("SocketIO connected")},G=(J)=>{console.log(`SocketIO disconnected: ${J}`),H.connect()};if(Z)H.on("pieinit",D),H.on("connect",$),H.on("disconnect",G),H.connect();return()=>{if(Z)H.off("pieinit",D),H.off("connect",$),H.off("disconnect",G),H.disconnect()}},[H,Z]),U},p=AZ;var CU=require("react");var yZ=({children:U})=>{let H=CU.useContext(k),z=IU(),Z=yU(z,"centrifuge");return CU.useEffect(()=>{if(!H)return;let D=()=>{console.log("Centrifuge connected")},$=(G)=>{console.log("Centrifuge disconnected:",G)};if(Z)H.on("connected",D),H.on("disconnected",$),H.connect();return()=>{if(Z)H.disconnect()}},[H,Z]),U},n=yZ;var oH=require("axios-date-transformer");var dH=require("react/jsx-runtime");function HU(U,H,z){if(!H)return z;let Z=U.replace(/^\//,""),D=H[Z];if(!D)return z;return dH.jsx(KU,{uiConfig:D})}var f=require("react/jsx-runtime"),EZ=({location:U,fallback:H,piecache:z,onError:Z,queryOptions:D})=>{let $=d(),G=h(),J=E(),T=ZU.useMemo(()=>oH.createAxiosDateTransformer({baseURL:$||""}),[$]),B=ZU.useMemo(()=>o(),[]),_=ZU.useMemo(()=>$?u($):null,[$]),I=ZU.useMemo(()=>$?c($,G):null,[$,G]),{data:V,isLoading:q,error:Y}=zU.useQuery({queryKey:["uiConfig",U.pathname+U.search,$],enabled:!!$,queryFn:async()=>{let P=new URLSearchParams(U.search);P.set("__pieroot","web");let Q="/api/content"+U.pathname+"?"+P.toString();if(J)console.log("[PieRoot] Fetching UI configuration from:",Q);let R=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(J)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:(P)=>Math.min(1000*2**P,30000),...D}),X=HU(U.pathname,z,H);if(!$)return X??null;if(J)console.log("[PieRoot] Rendering with location:",U),console.log("[PieRoot] API_SERVER:",$),console.log("[PieRoot] CENTRIFUGE_SERVER:",G),console.log("[PieRoot] Fallback provided:",!!H),console.log("[PieRoot] Piecache provided:",!!z);if(Y){if(J)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 Z?.(),X}if(q||!V){if(J)console.log("[PieRoot] Loading state:",{isLoading:q,hasUiConfiguration:!!V});return X}if(J)console.log("[PieRoot] UI configuration loaded successfully:",V),console.log("[PieRoot] Rendering UI with configuration");return f.jsx(S.Provider,{value:B,children:f.jsx(x.Provider,{value:_,children:f.jsx(k.Provider,{value:I,children:f.jsx(F.Provider,{value:H??f.jsx(f.Fragment,{}),children:f.jsx(p,{children:f.jsx(n,{children:f.jsx("form",{id:"piedata_global_form",action:$+"api/process"+U.pathname,method:"post",encType:"multipart/form-data",children:f.jsx(L,{uiConfig:V})})})})})})})})},CZ=(U)=>{let H=ZU.useMemo(()=>new zU.QueryClient,[]);return f.jsx(y.Provider,{value:U.onNavigate,children:f.jsx(v.Provider,{value:U.config,children:f.jsx(zU.QueryClientProvider,{client:H,children:f.jsx(EZ,{...U})})})})},gH=CZ;var $U=require("react"),DU=require("@tanstack/react-query");var hH=require("axios-date-transformer");var jU=require("react");var kU=({onError:U}={})=>{let[H,z]=jU.useState(null),Z=rU();return jU.useEffect(()=>{if(typeof window==="undefined")return;let D=window.Telegram?.WebApp;if(!D)return;try{D.ready?.()}catch($){U?.()}if(Z==="telegram_expanded"&&(D.platform==="ios"||D.platform==="android"))D.expand();z(D)},[]),H};var N=require("react/jsx-runtime"),jZ=({location:U,fallback:H,piecache:z,onError:Z,queryOptions:D})=>{let $=d(),G=h(),J=E(),T=$U.useMemo(()=>hH.createAxiosDateTransformer({baseURL:$}),[$]),B=$U.useMemo(()=>o(),[]),_=$U.useMemo(()=>$?u($):null,[$]),I=$U.useMemo(()=>$?c($,G):null,[$,G]),V=kU({onError:Z}),{data:q,isLoading:Y,error:X}=DU.useQuery({queryKey:["uiConfig",U.pathname+U.search,V?.initData],enabled:!!V?.initData,queryFn:async()=>{let Q=new URLSearchParams(U.search);if(Q.set("__pieroot","telegram"),V?.initData)Q.set("initData",V.initData);let R="/api/content"+U.pathname+"?"+Q.toString();if(J)console.log("[PieRoot] Fetching UI configuration from:",R);let j=await T.get(R,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(J)console.log("[PieRoot] Received UI configuration:",j.data);return j.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(Q)=>Math.min(1000*2**Q,30000),...D}),P=HU(U.pathname,z,H);if(!$)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(X&&J)return console.error("[PieRoot] Error fetching UI configuration:",X),console.error("[PieRoot] Error details:",{message:X.message,status:X.response?.status,data:X.response?.data}),Z?.(),P;if(Y||!q){if(J)console.log("[PieRoot] Loading state:",{isLoading:Y,hasUiConfiguration:!!q});return P}if(J)console.log("[PieRoot] UI configuration loaded successfully:",q),console.log("[PieRoot] Rendering UI with configuration");return N.jsx(S.Provider,{value:B,children:N.jsx(x.Provider,{value:_,children:N.jsx(k.Provider,{value:I,children:N.jsx(F.Provider,{value:H??N.jsx(N.Fragment,{}),children:N.jsx(p,{children:N.jsx(n,{children:N.jsx("form",{id:"piedata_global_form",action:$+"api/process"+U.pathname,method:"post",encType:"multipart/form-data",children:N.jsx(L,{uiConfig:q})})})})})})})})},kZ=(U)=>{let H=$U.useMemo(()=>new DU.QueryClient,[]);return N.jsx(y.Provider,{value:U.onNavigate,children:N.jsx(v.Provider,{value:U.config,children:N.jsx(DU.QueryClientProvider,{client:H,children:N.jsx(jZ,{...U})})})})},cH=kZ;var GU=require("react"),xU=require("@tanstack/react-query");var A=require("react/jsx-runtime"),xZ=({location:U,fallback:H,children:z})=>{let Z=d(),D=h(),$=E(),G=GU.useMemo(()=>o(),[]),J=GU.useMemo(()=>Z?u(Z):null,[Z]),T=GU.useMemo(()=>Z?c(Z,D):null,[Z,D]);if($)console.log("[PieRoot] Rendering with location:",U),console.log("[PieRoot] API_SERVER:",Z),console.log("[PieRoot] CENTRIFUGE_SERVER:",D),console.log("[PieRoot] Fallback provided:",!!H);return A.jsx(S.Provider,{value:G,children:A.jsx(x.Provider,{value:J,children:A.jsx(k.Provider,{value:T,children:A.jsx(F.Provider,{value:H??A.jsx(A.Fragment,{}),children:A.jsx(p,{children:A.jsx(n,{children:A.jsx("form",{id:"piedata_global_form",action:Z+"api/process"+U.pathname,method:"post",encType:"multipart/form-data",children:z})})})})})})})},SZ=(U)=>{let[H]=GU.useState(()=>new xU.QueryClient);return A.jsx(y.Provider,{value:U.onNavigate,children:A.jsx(v.Provider,{value:U.config,children:A.jsx(xU.QueryClientProvider,{client:H,children:A.jsx(xZ,{...U})})})})},uH=SZ;var TU=require("react"),JU=require("@tanstack/react-query");var pH=require("axios-date-transformer");var SU=require("react"),lH=()=>{let[U,H]=SU.useState(null);return SU.useEffect(()=>{if(typeof window==="undefined")return;let z=window.WebApp;if(!z)return;z.ready(),H(z)},[]),U};var M=require("react/jsx-runtime"),mZ=({location:U,fallback:H,piecache:z,onError:Z,queryOptions:D})=>{let $=d(),G=h(),J=E(),T=TU.useMemo(()=>pH.createAxiosDateTransformer({baseURL:$}),[$]),B=TU.useMemo(()=>o(),[]),_=TU.useMemo(()=>$?u($):null,[$]),I=TU.useMemo(()=>$?c($,G):null,[$,G]),V=lH(),{data:q,isLoading:Y,error:X}=JU.useQuery({queryKey:["uiConfig",U.pathname+U.search,V?.initData],queryFn:async()=>{let Q=new URLSearchParams(U.search);if(Q.set("__pieroot","max"),V?.initData)Q.set("initData",V.initData);let R="/api/content"+U.pathname+"?"+Q.toString();if(J)console.log("[PieRoot] Fetching UI configuration from:",R);let j=await T.get(R,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(J)console.log("[PieRoot] Received UI configuration:",j.data);return j.data},enabled:!!V?.initData,staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(Q)=>Math.min(1000*2**Q,30000),...D}),P=HU(U.pathname,z,H);if(!$)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(X&&J)return console.error("[PieRoot] Error fetching UI configuration:",X),console.error("[PieRoot] Error details:",{message:X.message,status:X.response?.status,data:X.response?.data}),Z?.(),P;if(Y||!q){if(J)console.log("[PieRoot] Loading state:",{isLoading:Y,hasUiConfiguration:!!q});return P}if(J)console.log("[PieRoot] UI configuration loaded successfully:",q),console.log("[PieRoot] Rendering UI with configuration");return M.jsx(S.Provider,{value:B,children:M.jsx(x.Provider,{value:_,children:M.jsx(k.Provider,{value:I,children:M.jsx(F.Provider,{value:H??M.jsx(M.Fragment,{}),children:M.jsx(p,{children:M.jsx(n,{children:M.jsx("form",{id:"piedata_global_form",action:$+"api/process"+U.pathname,method:"post",encType:"multipart/form-data",children:M.jsx(L,{uiConfig:q})})})})})})})})},bZ=(U)=>{let H=TU.useMemo(()=>new JU.QueryClient,[]);return M.jsx(y.Provider,{value:U.onNavigate,children:M.jsx(v.Provider,{value:U.config,children:M.jsx(JU.QueryClientProvider,{client:H,children:M.jsx(mZ,{...U})})})})},nH=bZ;var sH=require("react"),vZ=(U,H={},z=[],Z,D)=>{let $=D?.renderingLogEnabled??!1;if(!D?.apiServer){if($)console.warn("Registration FAILED: apiServer is missing!");return()=>{}}let G=D?.apiServer;if($)console.log("Registering AJAX: ",Z,H,z);if(!Z||!U){if($)console.warn("Registration FAILED: pathname or setUiAjaxConfiguration is missing!");return()=>{}}return async(J={})=>{if(typeof window==="undefined"||typeof document==="undefined"){if($)console.warn("getAjaxSubmit called on server, skipping DOM-dependent logic");return}if(z.includes("sid"))await uU();let T=new FormData;for(let[_,I]of Object.entries({...H,...J}))T.append(_,I);for(let _ of z)if(_==="sid"){if(!window.sid)throw new Error("SocketIO isn't initialized properly");T.append("sid",window.sid)}else{let I=document.getElementsByName(_);if(!I.length){if($)console.warn(`No input found with name ${_}`);continue}let V=I[0];if(V instanceof HTMLInputElement)if(V.type==="file"&&V.files)Array.from(V.files).forEach((q)=>T.append(_,q));else T.append(_,V.value);else if(V instanceof HTMLTextAreaElement)T.append(_,V.value)}let B=G+"api/ajax_content"+Z;return U(null),await fetch(B,{method:"POST",body:T}).then(async(_)=>{let V=(_.headers.get("content-type")||"").includes("application/json");if(!!_.body?.getReader&&!V){let Y=_.body.getReader(),X=new TextDecoder,P="";while(!0){let{done:Q,value:R}=await Y.read();if(Q)break;P+=X.decode(R,{stream:!0});let j=P.split(`
|
|
3
|
-
`);
|
|
2
|
+
var oD=Object.create;var{getPrototypeOf:ED,defineProperty:Gf,getOwnPropertyNames:GU,getOwnPropertyDescriptor:mD}=Object,VU=Object.prototype.hasOwnProperty;var IU=(f,U,H)=>{H=f!=null?oD(ED(f)):{};let D=U||!f||!f.__esModule?Gf(H,"default",{value:f,enumerable:!0}):H;for(let P of GU(f))if(!VU.call(D,P))Gf(D,P,{get:()=>f[P],enumerable:!0});return D},TU=new WeakMap,kD=(f)=>{var U=TU.get(f),H;if(U)return U;if(U=Gf({},"__esModule",{value:!0}),f&&typeof f==="object"||typeof f==="function")GU(f).map((D)=>!VU.call(U,D)&&Gf(U,D,{get:()=>f[D],enumerable:!(H=mD(f,D))||H.enumerable}));return TU.set(f,U),U};var jD=(f,U)=>{for(var H in U)Gf(f,H,{get:U[H],enumerable:!0,configurable:!0,set:(D)=>U[H]=()=>D})};var CH={};jD(CH,{useWebApp:()=>uf,usePieMittAgentTools:()=>RD,usePieEmit:()=>_U,useOpenAIWebRTC:()=>If,useMaxWebApp:()=>gf,useAjaxSubmit:()=>CD,unregisterComponent:()=>wU,submitGlobalForm:()=>LD,registry:()=>v,registerPieComponent:()=>C,registerMultipleComponents:()=>KU,pieName:()=>MD,hasComponent:()=>LU,getRegistrySize:()=>SU,getRegistryEntry:()=>t,getMittAgentTools:()=>zU,getComponentMeta:()=>MU,getAllRegisteredComponents:()=>AU,cn:()=>wD,UnionCard:()=>dU,UIRendererContext:()=>x,UILoading:()=>wf,UI:()=>K,SessionStorageCard:()=>tU,SequenceCard:()=>kU,SecureStorageCard:()=>HD,PieTelegramRoot:()=>XD,PieRoot:()=>JD,PieMaxRoot:()=>WD,PieCard:()=>_,PieBaseRoot:()=>qD,PIEBREAK:()=>_f,IOEventsCard:()=>sU,HiddenCard:()=>cU,HTMLEmbedCard:()=>gU,DeviceStorageCard:()=>eU,CloudStorageCard:()=>UD,BoxCard:()=>$D,AutoRedirectCard:()=>rU,AjaxGroupCard:()=>ZD});module.exports=kD(CH);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,g=()=>{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 H=`${f}::${U}`,D=XU.get(H);if(D)return D;async function P(){let z=await fetch(f+"api/centrifuge/gen_token");if(!z.ok){if(z.status===403)throw new lf.Centrifuge.UnauthorizedError("Backend is not answering");throw new Error(`Unexpected status code ${z.status}`)}return(await z.json()).token}let Z=new lf.Centrifuge(U,{getToken:P});return XU.set(H,Z),Z},xD=qU.createContext(null),m=xD;var WU=require("socket.io-client"),QU=require("react"),BU=new Map,c=(f)=>{let U=BU.get(f);if(U)return U;let H=WU.io(f,{autoConnect:!1,transports:["websocket"]});return BU.set(f,H),H},dD=QU.createContext(null),k=dD;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((H,D)=>{(U??j()).emit(`pie${H}_${f}`,D)},[f,U])}var N=OU;var uD=({card:f,data:U,children:H,useSocketioSupport:D=!1,useCentrifugeSupport:P=!1,useMittSupport:Z=!1,centrifugeChannel:z=void 0,methods:T=void 0})=>{let $=JU(),G=d.useRef(T);if(G.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:D,centrifuge:P,mitt:Z,centrifugeChannel:z}),console.log("[PieCard] Methods:",T?Object.keys(T):"none"),console.log("[PieCard] Has children:",!!H);let X=d.useContext(k),B=d.useContext(m),q=d.useContext(N);if(d.useEffect(()=>{if(!X||!D||!G.current||!U.name){if($&&D)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!X,useSocketioSupport:D,hasMethods:!!G.current,hasDataName:!!U?.name});return}let I=Object.keys(G.current??{}).map((V)=>{let J=`pie${V}_${U.name}`;if($)console.log(`[PieCard] Socket.IO registering event: ${J}`);let W=(Q)=>{G.current?.[V]?.(Q)};return X.on(J,W),[J,W]});return()=>{I.forEach(([V,J])=>{if($)console.log(`[PieCard] Socket.IO unregistering event: ${V}`);X.off(V,J)})}},[X,U.name,D]),d.useEffect(()=>{if(!B||!P||!z||!U.name){if($&&P)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!B,useCentrifugeSupport:P,hasCentrifugeChannel:!!z,hasMethods:!!G.current,hasDataName:!!U?.name});return}let I=Object.keys(G.current??{}).map((V)=>{let J=`pie${V}_${U.name}_${z}`;if($)console.log(`[PieCard] Centrifuge subscribing to channel: ${J}`);let W=B.newSubscription(J);return W.on("publication",(Q)=>{if($)console.log(`[PieCard] Centrifuge received data on ${J}:`,Q.data);G.current?.[V]?.(Q.data)}),W.subscribe(),W});return()=>{I.forEach((V)=>{if($)console.log("[PieCard] Centrifuge unsubscribing from channel");V.unsubscribe(),B.removeSubscription(V)})}},[B,z,U.name,P]),d.useEffect(()=>{if(!q||!Z||!U.name){if($&&Z)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!q,useMittSupport:Z,hasMethods:!!G.current,hasDataName:!!U?.name});return}let Y=Object.keys(G.current??{}),I={};return Y.forEach((V)=>{let J=`pie${V}_${U.name}`,W=(Q)=>{if($)console.log(`[PieCard] Mitt registering event: ${J}`);G.current?.[V]?.(Q)};I[J]=W,q.on(J,W)}),()=>{Object.entries(I).forEach(([V,J])=>{if($)console.log(`[PieCard] Mitt unregistering event: ${V}`);q.off(V,J)})}},[q,U.name,Z]),$)console.log("[PieCard] Rendering complete, returning children");return H},_=uD;var RU=require("react"),nf=new Map;function FU(f,U){return RU.lazy(()=>{if(nf.has(U))return nf.get(U);let H=f().then((D)=>D);return nf.set(U,H),H})}var v=new Map,bD=(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=FU(U.loader,f.name),U.loader=void 0,U.isLazy=!0;return U};function C(f){let U=bD(f);return v.set(U.name,U),U.component}var KU=(f)=>{f.forEach((U)=>C(U))},wU=(f)=>{v.delete(f)},LU=(f)=>{return v.has(f)},MU=(f)=>{return v.get(f)?.metadata},t=(f)=>{return v.get(f)},AU=()=>{return Array.from(v.keys())},SU=()=>{return v.size};var a=require("react");var NU=require("react"),Rf=require("react/jsx-runtime"),vD=NU.createContext(Rf.jsx(Rf.Fragment,{})),F=vD;var Ff=require("react/jsx-runtime");function gD({uiConfig:f,setUiAjaxConfiguration:U}){let H=a.useContext(F),D=o();if(D)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 P=t(f.card);if(!P?.component){if(D)console.warn(`[UI] Component not found in registry: ${f.card}`),console.log("[UI] Returning fallback component");return H}if(D)console.log("[UI] Found component in registry:",{name:P.name,isLazy:P.isLazy,hasMetadata:!!P.metadata});let Z=P.component,z=Ff.jsx(Z,{data:f.data,content:f.content,setUiAjaxConfiguration:U});if(P.isLazy){if(D)console.log("[UI] Rendering lazy component with Suspense:",P.name);return Ff.jsx(a.Suspense,{fallback:P.fallback?Ff.jsx(P.fallback,{}):H,children:z},`${P.name}`)}if(D)console.log("[UI] Rendering component directly:",P.name);return z}var K=a.memo(gD);var Kf=require("react");var yU=require("react"),pD=yU.createContext(null),x=pD;var Vf=require("react/jsx-runtime");function oU({uiConfig:f,setUiAjaxConfiguration:U}){let H=Kf.useContext(F),D=o();if(D)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 P=t(f.card);if(!P?.component){if(D)console.warn(`[UILoading] Component not found in registry: ${f.card}`),console.log("[UILoading] Returning fallback component");return H}if(D)console.log("[UILoading] Found component in registry:",{name:P.name,isLazy:P.isLazy,hasMetadata:!!P.metadata,hasFallback:!!P.fallback});if(P.fallback){if(D)console.log("[UILoading] Rendering fallback for:",P.name);let T=P.fallback;return Vf.jsx(T,{})}if(D)console.log("[UILoading] No fallback, rendering full component:",P.name);let Z=P.component,z=Vf.jsx(x.Provider,{value:oU,children:Vf.jsx(Z,{data:f.data,content:f.content,setUiAjaxConfiguration:U})});if(P.isLazy)return Vf.jsx(Kf.Suspense,{fallback:H,children:z},`${P.name}`);return z}var wf=oU;var EU=require("react");var Lf=require("react/jsx-runtime"),cD=({data:f,content:U,setUiAjaxConfiguration:H})=>{let{name:D,sx:P}=f,Z=EU.useContext(x)??K;return Lf.jsx(_,{card:D,data:f,children:Lf.jsx("div",{style:P,id:D,children:U.map((z,T)=>{return Lf.jsx(Z,{uiConfig:z,setUiAjaxConfiguration:H},`children-${T}`)})})})},mU=cD;var kU=C({name:"SequenceCard",component:mU,metadata:{author:"PieData",description:"Simple div with styles joining few components"}});var jU=require("react");var sf=require("react/jsx-runtime"),hD=({data:f,content:U,setUiAjaxConfiguration:H})=>{let{name:D}=f,P=jU.useContext(x)??K;return sf.jsx(_,{card:D,data:f,children:U.map((Z,z)=>{return sf.jsx(P,{uiConfig:Z,setUiAjaxConfiguration:H},`children-${z}`)})})},xU=hD;var dU=C({name:"UnionCard",component:xU,metadata:{author:"PieData",description:"Renders one of many components"}});var Mf=require("react"),uU=IU(require("html-react-parser"));var E=require("react");function lD(){let f=new AudioContext,U=f.createOscillator(),H=U.connect(f.createMediaStreamDestination());U.start();let D=H.stream.getAudioTracks()[0];return D.enabled=!1,D}function If(f=null,U){let[H,D]=E.useState(!1),P=E.useRef(null),Z=E.useRef(null),z=E.useRef(null),T=E.useCallback(async(B,q=!0)=>{if(P.current)$();let Y=new RTCPeerConnection;if(Y.onconnectionstatechange=()=>{if(Y.connectionState==="connected")D(!0);else if(["disconnected","failed","closed"].includes(Y.connectionState))D(!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=lD();Y.addTrack(R)}let I=Y.createDataChannel("oai-events");Z.current=I,z.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}),P.current=Y,await z.current},[f]),$=E.useCallback(()=>{let B=Z.current;if(B)B.close();P.current?.getSenders()?.forEach((q)=>q.track?.stop()),P.current?.close(),D(!1),P.current=null,Z.current=null,z.current=null},[f]),G=E.useCallback((B)=>{let q=Z.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(!Z.current){console.error("Data channel is not ready");return}let Y=()=>{G({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:B}]}}),G({type:"response.create"})};if(z.current)z.current.then(Y);else Y()},[U,f]);return E.useEffect(()=>{let B=Z.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:H,startSession:T,stopSession:$,sendTextMessage:X}}var vU=require("react/jsx-runtime"),rD=({data:f})=>{let{html:U,useSocketioSupport:H,useCentrifugeSupport:D,useMittSupport:P,centrifugeChannel:Z}=f,[z,T]=Mf.useState(U),{isSessionActive:$,startSession:G,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)T((V)=>V+I.delta)});return Mf.useEffect(()=>{T(U)},[U]),vU.jsx(_,{card:"HTMLEmbedCard",data:f,methods:{update:(I)=>{T(I.value)},generateUsingAI:async(I)=>{try{if(!$&&I.token)await G(I.token,!1);X(I.prompt)}catch(V){console.error("Failed to generate using AI",V)}},initializeAI:async(I)=>{if(!$&&I.token)await G(I.token,!1)}},useCentrifugeSupport:D,useSocketioSupport:H,useMittSupport:P,centrifugeChannel:Z,children:uU.default(z)})},bU=rD;var gU=C({name:"HTMLEmbedCard",component:bU,metadata:{author:"PieData"}});var Af=require("react");var tf=require("react/jsx-runtime"),nD=({data:f})=>{let{name:U,value:H,useSocketioSupport:D,useCentrifugeSupport:P,useMittSupport:Z,centrifugeChannel:z}=f,[T,$]=Af.useState(H);return Af.useEffect(()=>{$(H)},[H]),tf.jsx(_,{card:"HiddenCard",data:f,useSocketioSupport:D,useCentrifugeSupport:P,useMittSupport:Z,centrifugeChannel:z,methods:{update:({value:G})=>{$(G)}},children:tf.jsx("input",{type:"hidden",id:U,name:U,value:T})})},pU=nD;var cU=C({name:"HiddenCard",component:pU,metadata:{author:"PieData"}});var Jf=require("react");var hU=require("react"),sD=hU.createContext(void 0),y=sD;var Sf=require("react/jsx-runtime"),iD=({data:f})=>{let{url:U}=f,H=Jf.useContext(y),D=Jf.useContext(F);return Jf.useEffect(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(U))window.location.href=U;else H?.(U)},[U,H]),Sf.jsx(Sf.Fragment,{children:D})},lU=iD;var rU=C({name:"AutoRedirectCard",component:lU,metadata:{author:"PieData"}});var h=require("react-toastify"),Nf=require("react-toastify");var ff=require("react");var e=require("react/jsx-runtime"),tD={bounce:h.Bounce,slide:h.Slide,zoom:h.Zoom,flip:h.Flip},aD=(f)=>{let U={...f,type:f.alertType,transition:f.transition?tD[f.transition]:void 0,position:f.position??"bottom-right",autoClose:f.autoClose??3000,style:{backgroundColor:"black",...f.sx}};Nf.toast(f.message,U)},eD=(f)=>{console.log("Log event",f)},fH=(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(D){console.error("[IOEventsCard] Failed to show notification",D)}},H=window.Notification.permission;if(H==="granted"){U();return}if(H==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((D)=>{if(D==="granted")U()})},UH=({data:f})=>{let{useCentrifugeSupport:U,useSocketioSupport:H,useMittSupport:D,centrifugeChannel:P}=f,Z=ff.useContext(y),z=ff.useRef(Z);z.current=Z;let T=ff.useMemo(()=>({alert:aD,log:eD,push:fH,redirect:($)=>{if($.to){let G=$.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(G))window.location.href=G;else z.current?.(G)}else window.location.reload()},reload:($)=>{if($.to){let G=$.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(G))window.location.href=G;else z.current?.(G)}else window.location.reload()}}),[]);return e.jsx(e.Fragment,{children:e.jsx(_,{card:"IOEventsCard",data:f,useCentrifugeSupport:U,useSocketioSupport:H,useMittSupport:D,centrifugeChannel:P,methods:T,children:e.jsx(Nf.ToastContainer,{})})})},nU=UH;var sU=C({name:"IOEventsCard",component:nU,metadata:{author:"PieData"}});var Yf=require("react");var af=require("react/jsx-runtime"),DH=({data:f})=>{let{name:U,key:H,value:D,useSocketioSupport:P,useCentrifugeSupport:Z,useMittSupport:z,centrifugeChannel:T}=f,[$,G]=Yf.useState(D);return Yf.useEffect(()=>{G(D)},[D]),Yf.useEffect(()=>{if(typeof window==="undefined")return;sessionStorage.setItem(H,$)},[H,$]),af.jsx(_,{card:"SessionStorageCard",data:f,useSocketioSupport:P,useCentrifugeSupport:Z,useMittSupport:z,centrifugeChannel:T,methods:{update:({value:X})=>{G(X)},remove:()=>{sessionStorage.removeItem(H),G("")}},children:af.jsx("input",{type:"hidden",id:U,name:U,value:$})})},iU=DH;var tU=C({name:"SessionStorageCard",component:iU,metadata:{author:"PieData"}});var Xf=require("react");var ef=require("react/jsx-runtime"),HH=({data:f})=>{let{name:U,key:H,value:D,useSocketioSupport:P,useCentrifugeSupport:Z,useMittSupport:z,centrifugeChannel:T}=f,[$,G]=Xf.useState(D);return Xf.useEffect(()=>{G(D)},[D]),Xf.useEffect(()=>{if(typeof window==="undefined")return;localStorage.setItem(H,$)},[H,$]),ef.jsx(_,{card:"DeviceStorageCard",data:f,useSocketioSupport:P,useCentrifugeSupport:Z,useMittSupport:z,centrifugeChannel:T,methods:{update:({value:X})=>{G(X)},remove:()=>{localStorage.removeItem(H),G("")}},children:ef.jsx("input",{type:"hidden",id:U,name:U,value:$})})},aU=HH;var eU=C({name:"DeviceStorageCard",component:aU,metadata:{author:"PieData"}});var qf=require("react");var fU=require("react/jsx-runtime"),PH=({data:f})=>{let{name:U,key:H,value:D,useSocketioSupport:P,useCentrifugeSupport:Z,useMittSupport:z,centrifugeChannel:T}=f,[$,G]=qf.useState(D);return qf.useEffect(()=>{G(D)},[D]),qf.useEffect(()=>{if(typeof window==="undefined")return;let X=window.Telegram?.WebApp?.CloudStorage;if(!X)return;X.setItem(H,$)},[H,$]),fU.jsx(_,{card:"CloudStorageCard",data:f,useSocketioSupport:P,useCentrifugeSupport:Z,useMittSupport:z,centrifugeChannel:T,methods:{update:({value:X})=>{G(X)},remove:()=>{let X=window.Telegram?.WebApp?.CloudStorage;if(X)X.removeItem(H);G("")}},children:fU.jsx("input",{type:"hidden",id:U,name:U,value:$})})},fD=PH;var UD=C({name:"CloudStorageCard",component:fD,metadata:{author:"PieData"}});var Bf=require("react");var UU=require("react/jsx-runtime"),ZH=({data:f})=>{let{name:U,key:H,value:D,useSocketioSupport:P,useCentrifugeSupport:Z,useMittSupport:z,centrifugeChannel:T}=f,[$,G]=Bf.useState(D);return Bf.useEffect(()=>{G(D)},[D]),Bf.useEffect(()=>{if(typeof window==="undefined")return;let X=window.Telegram?.WebApp?.SecureStorage;if(!X)return;X.setItem(H,$)},[H,$]),UU.jsx(_,{card:"SecureStorageCard",data:f,useSocketioSupport:P,useCentrifugeSupport:Z,useMittSupport:z,centrifugeChannel:T,methods:{update:({value:X})=>{G(X)},remove:()=>{let X=window.Telegram?.WebApp?.SecureStorage;if(X)X.removeItem(H);G("")}},children:UU.jsx("input",{type:"hidden",id:U,name:U,value:$})})},DD=ZH;var HD=C({name:"SecureStorageCard",component:DD,metadata:{author:"PieData"}});var A=require("react");var DU=require("react/jsx-runtime"),zH=({data:f,content:U})=>{let{useLoader:H,noReturn:D,returnType:P,useSocketioSupport:Z,useCentrifugeSupport:z,useMittSupport:T,centrifugeChannel:$}=f,G=A.useContext(F),X=A.useContext(x)??K,[B,q]=A.useState(!1),[Y,I]=A.useState(null),V=A.useRef(U),J=A.useContext(N),W=A.useCallback((R)=>{if(R===null)q(!0);else if(q(!1),!D)V.current=R;if(!D)I(R)},[D]),Q=A.useCallback((R)=>{V.current=R.content,I(R.content)},[]),O=A.useCallback((R)=>{if(R===null)q(!0);else if(q(!1),!D)for(let Wf of R)J?.emit(Wf.name,Wf.data)},[D,J]);if(A.useEffect(()=>{I(U),q(!1)},[U]),!Y&&H)return G;return DU.jsx(_,{card:"AjaxGroupCard",data:f,methods:{changeContent:Q},useSocketioSupport:Z,useCentrifugeSupport:z,useMittSupport:T,centrifugeChannel:$,children:DU.jsx(X,{uiConfig:Y??V.current,setUiAjaxConfiguration:P==="events"?O:W})})},PD=zH;var ZD=C({name:"AjaxGroupCard",component:PD,metadata:{author:"PieData",description:"Group card with AJAX support"}});var HU=require("react");var yf=require("react/jsx-runtime"),$H=({data:f,content:U,setUiAjaxConfiguration:H})=>{let{name:D,url:P,sx:Z}=f,z=HU.useContext(y),T=HU.useContext(x)??K;return yf.jsx(_,{card:D,data:f,children:yf.jsx("div",{style:Z,id:D,onClick:(G)=>{if(P)if(G.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(P))window.location.href=P;else z?.(P)},children:yf.jsx(T,{setUiAjaxConfiguration:H,uiConfig:U})})})},zD=$H;var $D=C({name:"BoxCard",component:zD,metadata:{author:"PieData",description:"Simple div with styles joining few components"}});var Df=require("react"),Hf=require("@tanstack/react-query");var jf=require("react");var mf=require("react"),of=new Map,Ef=new Map;function kf(f,U){let H=`${f}::${U}`,D=f?of.get(H):void 0,[P,Z]=mf.useState(D??null);return mf.useEffect(()=>{if(!f)return;if(of.has(H)){Z(of.get(H));return}let z=Ef.get(H);if(!z)z=fetch(f+`api/support/${U}`,{method:"GET"}).then(($)=>$.json()).then(($)=>{return of.set(H,$),Ef.delete(H),$}).catch(($)=>{throw Ef.delete(H),$}),Ef.set(H,z);let T=!1;return z.then(($)=>{if(!T)Z($)}).catch(()=>{}),()=>{T=!0}},[f,U,H]),P}var PU=null,TD=null;function GD(){TD?.()}function ZU(){if(typeof window==="undefined")return Promise.resolve();if(typeof window.sid!=="undefined")return Promise.resolve();if(!PU)PU=new Promise((f)=>{TD=()=>{f()}});return PU}var TH=({children:f})=>{let U=jf.useContext(k),H=Of(),D=kf(H,"socketIO"),P=(Z)=>{if(typeof window!=="undefined")window.sid=Z.sid,GD(),console.log(`SocketIO initialized: ${window.sid}`)};return jf.useEffect(()=>{if(!U)return;let Z=()=>{console.log("SocketIO connected")},z=(T)=>{console.log(`SocketIO disconnected: ${T}`),U.connect()};if(D)U.on("pieinit",P),U.on("connect",Z),U.on("disconnect",z),U.connect();return()=>{if(D)U.off("pieinit",P),U.off("connect",Z),U.off("disconnect",z),U.disconnect()}},[U,D]),f},l=TH;var xf=require("react");var GH=({children:f})=>{let U=xf.useContext(m),H=Of(),D=kf(H,"centrifuge");return xf.useEffect(()=>{if(!U)return;let P=()=>{console.log("Centrifuge connected")},Z=(z)=>{console.log("Centrifuge disconnected:",z)};if(D)U.on("connected",P),U.on("disconnected",Z),U.connect();return()=>{if(D)U.disconnect()}},[U,D]),f},r=GH;var ID=require("axios-date-transformer");var VD=require("react/jsx-runtime");function Uf(f,U,H){if(!U)return H;let D=f.replace(/^\//,""),P=U[D];if(!P)return H;return VD.jsx(wf,{uiConfig:P})}var w=require("react/jsx-runtime"),VH=({location:f,fallback:U,piecache:H,onError:D,queryOptions:P})=>{let Z=b(),z=g(),T=o(),$=Df.useMemo(()=>ID.createAxiosDateTransformer({baseURL:Z||""}),[Z]),G=Df.useMemo(()=>j(),[]),X=Df.useMemo(()=>Z?c(Z):null,[Z]),B=Df.useMemo(()=>Z?p(Z,z):null,[Z,z]),{data:q,isLoading:Y,error:I}=Hf.useQuery({queryKey:["uiConfig",f.pathname+f.search,Z],enabled:!!Z,queryFn:async()=>{let J=new URLSearchParams(f.search);J.set("__pieroot","web");let W="/api/content"+f.pathname+"?"+J.toString();if(T)console.log("[PieRoot] Fetching UI configuration from:",W);let Q=await $.get(W,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(T)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),...P}),V=Uf(f.pathname,H,U);if(!Z)return V??null;if(T)console.log("[PieRoot] Rendering with location:",f),console.log("[PieRoot] API_SERVER:",Z),console.log("[PieRoot] CENTRIFUGE_SERVER:",z),console.log("[PieRoot] Fallback provided:",!!U),console.log("[PieRoot] Piecache provided:",!!H);if(I){if(T)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 D?.(),V}if(Y||!q){if(T)console.log("[PieRoot] Loading state:",{isLoading:Y,hasUiConfiguration:!!q});return V}if(T)console.log("[PieRoot] UI configuration loaded successfully:",q),console.log("[PieRoot] Rendering UI with configuration");return w.jsx(N.Provider,{value:G,children:w.jsx(k.Provider,{value:X,children:w.jsx(m.Provider,{value:B,children:w.jsx(F.Provider,{value:U??w.jsx(w.Fragment,{}),children:w.jsx(l,{children:w.jsx(r,{children:w.jsx("form",{id:"piedata_global_form",action:Z+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:w.jsx(K,{uiConfig:q})})})})})})})})},IH=(f)=>{let U=Df.useMemo(()=>new Hf.QueryClient,[]);return w.jsx(y.Provider,{value:f.onNavigate,children:w.jsx(u.Provider,{value:f.config,children:w.jsx(Hf.QueryClientProvider,{client:U,children:w.jsx(VH,{...f})})})})},JD=IH;var Pf=require("react"),Zf=require("@tanstack/react-query");var YD=require("axios-date-transformer");var df=require("react");var uf=({onError:f}={})=>{let[U,H]=df.useState(null),D=YU();return df.useEffect(()=>{if(typeof window==="undefined")return;let P=window.Telegram?.WebApp;if(!P)return;try{P.ready?.()}catch(Z){f?.()}if(D==="telegram_expanded"&&(P.platform==="ios"||P.platform==="android"))P.expand();H(P)},[]),U};var L=require("react/jsx-runtime"),JH=({location:f,fallback:U,piecache:H,onError:D,queryOptions:P})=>{let Z=b(),z=g(),T=o(),$=Pf.useMemo(()=>YD.createAxiosDateTransformer({baseURL:Z}),[Z]),G=Pf.useMemo(()=>j(),[]),X=Pf.useMemo(()=>Z?c(Z):null,[Z]),B=Pf.useMemo(()=>Z?p(Z,z):null,[Z,z]),q=uf({onError:D}),{data:Y,isLoading:I,error:V}=Zf.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(T)console.log("[PieRoot] Fetching UI configuration from:",Q);let O=await $.get(Q,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(T)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),...P}),J=Uf(f.pathname,H,U);if(!Z)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(V&&T)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}),D?.(),J;if(I||!Y){if(T)console.log("[PieRoot] Loading state:",{isLoading:I,hasUiConfiguration:!!Y});return J}if(T)console.log("[PieRoot] UI configuration loaded successfully:",Y),console.log("[PieRoot] Rendering UI with configuration");return L.jsx(N.Provider,{value:G,children:L.jsx(k.Provider,{value:X,children:L.jsx(m.Provider,{value:B,children:L.jsx(F.Provider,{value:U??L.jsx(L.Fragment,{}),children:L.jsx(l,{children:L.jsx(r,{children:L.jsx("form",{id:"piedata_global_form",action:Z+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:L.jsx(K,{uiConfig:Y})})})})})})})})},YH=(f)=>{let U=Pf.useMemo(()=>new Zf.QueryClient,[]);return L.jsx(y.Provider,{value:f.onNavigate,children:L.jsx(u.Provider,{value:f.config,children:L.jsx(Zf.QueryClientProvider,{client:U,children:L.jsx(JH,{...f})})})})},XD=YH;var zf=require("react"),bf=require("@tanstack/react-query");var S=require("react/jsx-runtime"),XH=({location:f,fallback:U,children:H})=>{let D=b(),P=g(),Z=o(),z=zf.useMemo(()=>j(),[]),T=zf.useMemo(()=>D?c(D):null,[D]),$=zf.useMemo(()=>D?p(D,P):null,[D,P]);if(Z)console.log("[PieRoot] Rendering with location:",f),console.log("[PieRoot] API_SERVER:",D),console.log("[PieRoot] CENTRIFUGE_SERVER:",P),console.log("[PieRoot] Fallback provided:",!!U);return S.jsx(N.Provider,{value:z,children:S.jsx(k.Provider,{value:T,children:S.jsx(m.Provider,{value:$,children:S.jsx(F.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:H})})})})})})})},qH=(f)=>{let[U]=zf.useState(()=>new bf.QueryClient);return S.jsx(y.Provider,{value:f.onNavigate,children:S.jsx(u.Provider,{value:f.config,children:S.jsx(bf.QueryClientProvider,{client:U,children:S.jsx(XH,{...f})})})})},qD=qH;var $f=require("react"),Tf=require("@tanstack/react-query");var BD=require("axios-date-transformer");var vf=require("react"),gf=()=>{let[f,U]=vf.useState(null);return vf.useEffect(()=>{if(typeof window==="undefined")return;let H=window.WebApp;if(!H)return;H.ready(),U(H)},[]),f};var M=require("react/jsx-runtime"),BH=({location:f,fallback:U,piecache:H,onError:D,queryOptions:P})=>{let Z=b(),z=g(),T=o(),$=$f.useMemo(()=>BD.createAxiosDateTransformer({baseURL:Z}),[Z]),G=$f.useMemo(()=>j(),[]),X=$f.useMemo(()=>Z?c(Z):null,[Z]),B=$f.useMemo(()=>Z?p(Z,z):null,[Z,z]),q=gf(),{data:Y,isLoading:I,error:V}=Tf.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(T)console.log("[PieRoot] Fetching UI configuration from:",Q);let O=await $.get(Q,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(T)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),...P}),J=Uf(f.pathname,H,U);if(!Z)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(V&&T)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}),D?.(),J;if(I||!Y){if(T)console.log("[PieRoot] Loading state:",{isLoading:I,hasUiConfiguration:!!Y});return J}if(T)console.log("[PieRoot] UI configuration loaded successfully:",Y),console.log("[PieRoot] Rendering UI with configuration");return M.jsx(N.Provider,{value:G,children:M.jsx(k.Provider,{value:X,children:M.jsx(m.Provider,{value:B,children:M.jsx(F.Provider,{value:U??M.jsx(M.Fragment,{}),children:M.jsx(l,{children:M.jsx(r,{children:M.jsx("form",{id:"piedata_global_form",action:Z+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:M.jsx(K,{uiConfig:Y})})})})})})})})},WH=(f)=>{let U=$f.useMemo(()=>new Tf.QueryClient,[]);return M.jsx(y.Provider,{value:f.onNavigate,children:M.jsx(u.Provider,{value:f.config,children:M.jsx(Tf.QueryClientProvider,{client:U,children:M.jsx(BH,{...f})})})})},WD=WH;var QD=require("react"),QH=(f,U={},H=[],D,P)=>{let Z=P?.renderingLogEnabled??!1,z=P?.timeout,T=P?.retryPolicy,$=T?.maxRetries??0,G=T?.baseDelay??1000,X=T?.retryOn??[502,503,504];if(Z)console.log("Registering AJAX: ",D,U,H);return async(B={})=>{if(typeof window==="undefined"||typeof document==="undefined"){if(Z)console.warn("getAjaxSubmit called on server, skipping DOM-dependent logic");return}let q=P?.apiServer;if(!q){if(Z)console.warn("AJAX skipped: apiServer is missing");return}if(!D||!f){if(Z)console.warn("AJAX skipped: pathname or setUiAjaxConfiguration is missing");return}if(H.includes("sid"))await ZU();let Y=new FormData;for(let[J,W]of Object.entries({...U,...B}))Y.append(J,W);for(let J of H)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(Z)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"+D;f(null);let V;for(let J=0;J<=$;J++){if(J>0){let O=G*2**(J-1);if(Z)console.log(`AJAX retry ${J}/${$} after ${O}ms`);await new Promise((R)=>setTimeout(R,O))}let W=z!=null?new AbortController:null,Q=W&&setTimeout(()=>W.abort(),z);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<$){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(),AD=new TextDecoder,n="";while(!0){let{done:cf,value:SD}=await Qf.read();if(cf)break;n+=AD.decode(SD,{stream:!0});let $U=n.split(`
|
|
3
|
+
`);n=$U.pop()??"";for(let ND of $U){let hf=ND.trim();if(!hf)continue;try{let yD=JSON.parse(hf);f([yD])}catch{if(Z)console.warn("Failed to parse streamed line:",hf)}}}if(n.trim())try{let cf=JSON.parse(n);f([cf])}catch{if(Z)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<$)continue;if(Z)console.error("AJAX request failed:",O);return f(null),O}}if(Z)console.error("AJAX request failed after retries:",V);return f(null),V}},CD=(f,U={},H=[],D,P)=>{let{apiServer:Z,enableRenderingLog:z}=s(),T=JSON.stringify(U),$=JSON.stringify(H),G=JSON.stringify(P);return QD.useMemo(()=>QH(f,U,H,D,{apiServer:Z,renderingLogEnabled:z,timeout:P?.timeout,retryPolicy:P?.retryPolicy}),[f,T,$,D,Z,z,G])};var OD=require("@openai/agents"),pf=require("react");var _D=/^pie(.+?)_(.+)$/;function zU(f=j(),U={}){let H=[],D=new Set;for(let P of f.all.keys()){if(typeof P!=="string")continue;let Z=P.match(_D);if(!Z)continue;let[,z,T]=Z,$={methodName:z,cardName:T,eventName:P};if(U.filter&&!U.filter($))continue;let G=U.nameFor?.($)??`${T}_${z}`;if(D.has(G))continue;D.add(G);let X=U.describe?.($)??`Invokes the "${z}" method on the PieCard "${T}" by emitting the in-process mitt event "${P}". The optional "payload" argument is forwarded verbatim to the card's handler.`;H.push(OD.tool({name:G,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(P,q),`Emitted "${P}"`}}))}return H}function RD(f={}){let H=pf.useContext(N)??j(),D=[];for(let $ of H.all.keys())if(typeof $==="string"&&_D.test($))D.push($);D.sort();let P=D.join("|"),{filter:Z,describe:z,nameFor:T}=f;return pf.useMemo(()=>zU(H,{filter:Z,describe:z,nameFor:T}),[H,P,Z,z,T])}var FD=require("clsx"),KD=require("tailwind-merge");function wD(...f){return KD.twMerge(FD.clsx(f))}var LD=()=>{if(typeof document==="undefined")return;let f=document.getElementById("piedata_global_form");f&&f.submit()};var MD=(f,U)=>`${f}${_f}${U}`;
|