@swarm.ing/pieui 2.1.4 → 2.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/README.md +595 -124
  2. package/dist/cli.js +2208 -14
  3. package/dist/code/commands/listEvents.d.ts.map +1 -1
  4. package/dist/code/commands/registry.d.ts.map +1 -1
  5. package/dist/components/PieCard/index.d.ts +1 -1
  6. package/dist/components/PieCard/index.d.ts.map +1 -1
  7. package/dist/components/PieCard/types/index.d.ts +11 -0
  8. package/dist/components/PieCard/types/index.d.ts.map +1 -1
  9. package/dist/components/index.esm.js +1 -1
  10. package/dist/components/index.js +1 -1
  11. package/dist/index.esm.js +2 -2
  12. package/dist/index.js +2 -2
  13. package/dist/max/index.esm.js +1 -1
  14. package/dist/max/index.js +1 -1
  15. package/dist/native/PieNativeRoot.d.ts +15 -0
  16. package/dist/native/PieNativeRoot.d.ts.map +1 -0
  17. package/dist/native/components/AutoRedirectCard.d.ts +10 -0
  18. package/dist/native/components/AutoRedirectCard.d.ts.map +1 -0
  19. package/dist/native/components/BoxCard.d.ts +13 -0
  20. package/dist/native/components/BoxCard.d.ts.map +1 -0
  21. package/dist/native/components/DeviceStorageCard.d.ts +12 -0
  22. package/dist/native/components/DeviceStorageCard.d.ts.map +1 -0
  23. package/dist/native/components/HTMLEmbedCard.d.ts +11 -0
  24. package/dist/native/components/HTMLEmbedCard.d.ts.map +1 -0
  25. package/dist/native/components/HiddenCard.d.ts +11 -0
  26. package/dist/native/components/HiddenCard.d.ts.map +1 -0
  27. package/dist/native/components/IOEventsCard.d.ts +11 -0
  28. package/dist/native/components/IOEventsCard.d.ts.map +1 -0
  29. package/dist/native/components/OneOfCard.d.ts +12 -0
  30. package/dist/native/components/OneOfCard.d.ts.map +1 -0
  31. package/dist/native/components/SequenceCard.d.ts +12 -0
  32. package/dist/native/components/SequenceCard.d.ts.map +1 -0
  33. package/dist/native/components/SessionStorageCard.d.ts +9 -0
  34. package/dist/native/components/SessionStorageCard.d.ts.map +1 -0
  35. package/dist/native/components/index.d.ts +13 -0
  36. package/dist/native/components/index.d.ts.map +1 -0
  37. package/dist/native/index.d.ts +41 -0
  38. package/dist/native/index.d.ts.map +1 -0
  39. package/dist/native/index.esm.js +3 -0
  40. package/dist/native/index.js +3 -0
  41. package/dist/platform/clientSources.d.ts +4 -0
  42. package/dist/platform/clientSources.d.ts.map +1 -0
  43. package/dist/platform/clientSources.native.d.ts +4 -0
  44. package/dist/platform/clientSources.native.d.ts.map +1 -0
  45. package/dist/platform/clientSources.web.d.ts +10 -0
  46. package/dist/platform/clientSources.web.d.ts.map +1 -0
  47. package/dist/platform/nativeConfig.d.ts +63 -0
  48. package/dist/platform/nativeConfig.d.ts.map +1 -0
  49. package/dist/platform/nativeFormStore.d.ts +12 -0
  50. package/dist/platform/nativeFormStore.d.ts.map +1 -0
  51. package/dist/platform/types.d.ts +39 -0
  52. package/dist/platform/types.d.ts.map +1 -0
  53. package/dist/providers/SocketIOInitProvider.d.ts.map +1 -1
  54. package/dist/telegram/index.esm.js +1 -1
  55. package/dist/telegram/index.js +1 -1
  56. package/dist/tests/centrifugeRecovery.test.d.ts +2 -0
  57. package/dist/tests/centrifugeRecovery.test.d.ts.map +1 -0
  58. package/dist/tests/clientSources.test.d.ts +2 -0
  59. package/dist/tests/clientSources.test.d.ts.map +1 -0
  60. package/dist/tests/clientSourcesNative.test.d.ts +12 -0
  61. package/dist/tests/clientSourcesNative.test.d.ts.map +1 -0
  62. package/dist/tests/piecardRecovery.test.d.ts +2 -0
  63. package/dist/tests/piecardRecovery.test.d.ts.map +1 -0
  64. package/dist/util/ajaxCommonUtils.d.ts.map +1 -1
  65. package/dist/util/centrifuge.d.ts +5 -0
  66. package/dist/util/centrifuge.d.ts.map +1 -1
  67. package/dist/util/centrifugeRecovery.d.ts +26 -0
  68. package/dist/util/centrifugeRecovery.d.ts.map +1 -0
  69. package/dist/util/globalForm.d.ts +4 -5
  70. package/dist/util/globalForm.d.ts.map +1 -1
  71. package/dist/util/waitForSidAvailable.d.ts.map +1 -1
  72. package/package.json +17 -4
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- var wZ=Object.create;var{getPrototypeOf:LZ,defineProperty:e,getOwnPropertyNames:TU,getOwnPropertyDescriptor:NZ}=Object,JU=Object.prototype.hasOwnProperty;var BU=(H,U,Z)=>{Z=H!=null?wZ(LZ(H)):{};let $=U||!H||!H.__esModule?e(Z,"default",{value:H,enumerable:!0}):Z;for(let T of TU(H))if(!JU.call($,T))e($,T,{get:()=>H[T],enumerable:!0});return $},zU=new WeakMap,fZ=(H)=>{var U=zU.get(H),Z;if(U)return U;if(U=e({},"__esModule",{value:!0}),H&&typeof H==="object"||typeof H==="function")TU(H).map(($)=>!JU.call(U,$)&&e(U,$,{get:()=>H[$],enumerable:!(Z=NZ(H,$))||Z.enumerable}));return zU.set(H,U),U};var EZ=(H,U)=>{for(var Z in U)e(H,Z,{get:U[Z],enumerable:!0,configurable:!0,set:($)=>U[Z]=()=>$})};var D$={};EZ(D$,{usePieEmit:()=>DU,useAjaxSubmit:()=>WZ,unregisterComponent:()=>AU,trackLazy:()=>VH,submitGlobalForm:()=>_Z,registry:()=>j,registerPieComponent:()=>_,registerMultipleComponents:()=>MU,readAjaxKeyAsync:()=>ZU,readAjaxKey:()=>UU,preloadComponent:()=>dH,prefetchLazyComponents:()=>NU,pieName:()=>KZ,parseDepName:()=>IH,hasComponent:()=>PU,getRegistrySize:()=>LU,getRegistryEntry:()=>l,getLazyComponentNames:()=>uH,getEmitter:()=>p,getComponentMeta:()=>RU,getAllRegisteredComponents:()=>wU,cn:()=>FZ,UnionCard:()=>mU,UIRendererContext:()=>E,UILoading:()=>MH,UI:()=>L,SocketIOContext:()=>k,SessionStorageCard:()=>tU,SequenceCard:()=>SU,PieRoot:()=>vH,PiePreviewRoot:()=>qZ,PieConfigContext:()=>h,PieCard:()=>A,PieBaseRoot:()=>XZ,PIEBREAK:()=>QH,OneOfCard:()=>JZ,MittContext:()=>x,IOEventsCard:()=>nU,HiddenCard:()=>dU,HTMLEmbedCard:()=>gU,FallbackContext:()=>f,DeviceStorageCard:()=>eU,CentrifugeIOContext:()=>y,BoxCard:()=>$Z,AutoRedirectCard:()=>iU,AjaxGroupCard:()=>UZ});module.exports=fZ(D$);var S=require("react");var XH=require("react");var pH=globalThis,K=(H,U)=>{let Z=Symbol.for(H);if(!(Z in pH))pH[Z]=U();return pH[Z]};var h=K("@swarm.ing/pieui:context:pieConfig",()=>XH.createContext(null)),HH=()=>{let H=XH.useContext(h);if(!H)throw Error("usePieConfig must be used within PieConfigProvider");return H},UH=()=>{let{apiServer:H}=HH();return H},YH=UH,qH=()=>{let{centrifugeServer:H}=HH();return H};var v=()=>{let{enableRenderingLog:H}=HH();return H},IU=v;var QH="__piedemo__";var GU=require("react"),gH=require("centrifuge");var OU=K("@swarm.ing/pieui:centrifuge-cache",()=>new Map),WH=(H,U)=>{if(!U)return null;let Z=`${H}::${U}`,$=OU.get(Z);if($)return $;async function T(){let J=await fetch(H+"api/centrifuge/gen_token",{credentials:"include"});if(!J.ok){if(J.status===401||J.status===403)throw new gH.Centrifuge.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${J.status}`)}return(await J.json()).token}let z=new gH.Centrifuge(U,{getToken:T});return OU.set(Z,z),z},CZ=K("@swarm.ing/pieui:context:centrifuge",()=>GU.createContext(null)),y=CZ;var YU=require("socket.io-client"),qU=require("react");var XU=K("@swarm.ing/pieui:socket-cache",()=>new Map),DH=(H)=>{let U=XU.get(H);if(U)return U;let Z=YU.io(H,{autoConnect:!1,transports:["websocket"]});return XU.set(H,Z),Z},jZ=K("@swarm.ing/pieui:context:socket",()=>qU.createContext(null)),k=jZ;var QU=BU(require("mitt")),d=require("react");function p(){return K("@swarm.ing/pieui:mitt-emitter",()=>QU.default())}var WU=K("@swarm.ing/pieui:context:mitt",()=>d.createContext(null));function DU(H){let U=d.useContext(WU);return d.useCallback((Z,$)=>{(U??p()).emit(`pie${Z}_${H}`,$)},[H,U])}var x=WU;var o=require("react/jsx-runtime"),yZ=({card:H,data:U,children:Z,useSocketioSupport:$=!1,useCentrifugeSupport:T=!1,useMittSupport:z=!1,centrifugeChannel:J=void 0,methods:B=void 0,stored:I=void 0})=>{let O=IU(),D=S.useRef(B);if(D.current=B,O)console.log("[PieCard] Rendering card:",H),console.log("[PieCard] Card data:",U),console.log("[PieCard] Component name:",U?.name),console.log("[PieCard] Real-time support:",{socketio:$,centrifuge:T,mitt:z,centrifugeChannel:J}),console.log("[PieCard] Methods:",B?Object.keys(B):"none"),console.log("[PieCard] Has children:",!!Z);let Q=S.useContext(k),V=S.useContext(y),G=S.useContext(x);if(S.useEffect(()=>{if(!Q||!$||!D.current||!U.name){if(O&&$)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!Q,useSocketioSupport:$,hasMethods:!!D.current,hasDataName:!!U?.name});return}let W=Object.keys(D.current??{}).map((X)=>{let q=`pie${X}_${U.name}`;if(O)console.log(`[PieCard] Socket.IO registering event: ${q}`);let M=(F)=>{D.current?.[X]?.(F)};return Q.on(q,M),[q,M]});return()=>{W.forEach(([X,q])=>{if(O)console.log(`[PieCard] Socket.IO unregistering event: ${X}`);Q.off(X,q)})}},[Q,U.name,$]),S.useEffect(()=>{if(!V||!T||!J||!U.name){if(O&&T)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!V,useCentrifugeSupport:T,hasCentrifugeChannel:!!J,hasMethods:!!D.current,hasDataName:!!U?.name});return}let W=Object.keys(D.current??{}).map((X)=>{let q=`pie${X}_${U.name}_${J}`;if(O)console.log(`[PieCard] Centrifuge subscribing to channel: ${q}`);let M=V.newSubscription(q);return M.on("publication",(F)=>{if(O)console.log(`[PieCard] Centrifuge received data on ${q}:`,F.data);D.current?.[X]?.(F.data)}),M.subscribe(),M});return()=>{W.forEach((X)=>{if(O)console.log("[PieCard] Centrifuge unsubscribing from channel");X.unsubscribe(),V.removeSubscription(X)})}},[V,J,U.name,T]),S.useEffect(()=>{if(!G||!z||!U.name){if(O&&z)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!G,useMittSupport:z,hasMethods:!!D.current,hasDataName:!!U?.name});return}let Y=Object.keys(D.current??{}),W={};return Y.forEach((X)=>{let q=`pie${X}_${U.name}`,M=(F)=>{if(O)console.log(`[PieCard] Mitt registering event: ${q}`);D.current?.[X]?.(F)};W[q]=M,G.on(q,M)}),()=>{Object.entries(W).forEach(([X,q])=>{if(O)console.log(`[PieCard] Mitt unregistering event: ${X}`);G.off(X,q)})}},[G,U.name,z]),O)console.log("[PieCard] Rendering complete, returning children");if(I!==void 0)return o.jsxs(o.Fragment,{children:[o.jsx("input",{type:"hidden",name:U.name,value:JSON.stringify(I)}),Z]});return Z},A=yZ;var VU=require("react"),g=new Map;function FU(H,U){return U.catch(()=>{if(g.get(H)===U)g.delete(H)}),g.set(H,U),U}function VH(H,U){return VU.lazy(()=>{if(g.has(U))return g.get(U);return FU(U,H().then((Z)=>Z))})}var _U=async(H,U)=>{if(!U)return;if(g.has(H))return g.get(H);return FU(H,U().then((Z)=>Z))};var j=K("@swarm.ing/pieui:component-registry",()=>new Map),kZ=(H)=>{if(!H.name)throw Error("Component registration requires a name");if(!H.component&&!H.loader)throw Error(`Component "${H.name}" requires component or loader`);let U={name:H.name,component:H.component,loader:H.loader,metadata:H.metadata,fallback:H.fallback,isLazy:!1};if(!U.component&&U.loader)U.component=VH(U.loader,H.name),U.isLazy=!0;return U};function _(H){let U=kZ(H);return j.set(U.name,U),U.component}var MU=(H)=>{H.forEach((U)=>_(U))},AU=(H)=>{j.delete(H)},PU=(H)=>{return j.has(H)},RU=(H)=>{return j.get(H)?.metadata},l=(H)=>{return j.get(H)},wU=()=>{return Array.from(j.keys())},LU=()=>{return j.size},uH=()=>Array.from(j.values()).filter((H)=>H.isLazy&&typeof H.loader==="function").map((H)=>H.name),dH=(H)=>{let U=j.get(H);if(!U?.isLazy||typeof U.loader!=="function")return;return _U(H,U.loader)},KU=!1,NU=()=>{if(KU||typeof window>"u")return;KU=!0;let H=navigator.connection;if(H?.saveData)return;if(H?.effectiveType&&["slow-2g","2g"].includes(H.effectiveType))return;let U=uH(),Z="requestIdleCallback"in window?(T)=>window.requestIdleCallback(T,{timeout:2000}):(T)=>window.setTimeout(T,300),$=(T)=>{if(T>=U.length)return;Z(()=>{Promise.resolve().then(()=>dH(U[T])).catch(()=>{}).finally(()=>$(T+1))})};$(0)};var ZH=require("react");var fU=require("react");var FH=require("react/jsx-runtime"),xZ=K("@swarm.ing/pieui:context:fallback",()=>fU.createContext(FH.jsx(FH.Fragment,{}))),f=xZ;var EU=require("react");var SZ=K("@swarm.ing/pieui:context:lazyError",()=>EU.createContext(void 0)),m=SZ;var _H=require("react"),CU=require("react/jsx-runtime"),bZ=2,vZ=400;class i extends _H.Component{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(H){if(this.props.onError?.(H),this.state.attempt<bZ){let U=vZ*(this.state.attempt+1);this.timer=setTimeout(()=>{this.setState((Z)=>({failed:!1,attempt:Z.attempt+1}))},U)}}componentDidUpdate(H){if(H.name!==this.props.name&&this.state.attempt!==0)this.setState({failed:!1,attempt:0})}componentWillUnmount(){if(this.timer)clearTimeout(this.timer)}render(){if(this.state.failed)return this.props.fallback;return CU.jsx(_H.Suspense,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}var KH=require("react/jsx-runtime");function mZ({uiConfig:H,setUiAjaxConfiguration:U}){let Z=ZH.useContext(f),$=ZH.useContext(m),T=v();if(T)console.log("[UI] Rendering component:",H.card),console.log("[UI] Component data:",H.data),console.log("[UI] Component content:",H.content),console.log("[UI] Has setUiAjaxConfiguration:",!!U);let z=l(H.card);if(!z?.component){if(T)console.warn(`[UI] Component not found in registry: ${H.card}`),console.log("[UI] Returning fallback component");return Z}if(T)console.log("[UI] Found component in registry:",{name:z.name,isLazy:z.isLazy,hasMetadata:!!z.metadata});let J=z.component,B=KH.jsx(J,{data:H.data,content:H.content,setUiAjaxConfiguration:U});if(z.isLazy){if(T)console.log("[UI] Rendering lazy component with Suspense:",z.name);return KH.jsx(i,{name:z.name,fallback:z.fallback?KH.jsx(z.fallback,{}):Z,onError:$,children:B})}if(T)console.log("[UI] Rendering component directly:",z.name);return B}var L=ZH.memo(mZ);var oH=require("react");var jU=require("react");var cZ=K("@swarm.ing/pieui:context:uiRenderer",()=>jU.createContext(null)),E=cZ;var $H=require("react/jsx-runtime");function yU({uiConfig:H,setUiAjaxConfiguration:U}){let Z=oH.useContext(f),$=oH.useContext(m),T=v();if(T)console.log("[UILoading] Rendering fallback for:",H.card),console.log("[UILoading] Component data:",H.data),console.log("[UILoading] Component content:",H.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!U);let z=l(H.card);if(!z?.component){if(T)console.warn(`[UILoading] Component not found in registry: ${H.card}`),console.log("[UILoading] Returning fallback component");return Z}if(T)console.log("[UILoading] Found component in registry:",{name:z.name,isLazy:z.isLazy,hasMetadata:!!z.metadata,hasFallback:!!z.fallback});if(z.fallback){if(T)console.log("[UILoading] Rendering fallback for:",z.name);let I=z.fallback;return $H.jsx(I,{})}if(T)console.log("[UILoading] No fallback, rendering full component:",z.name);let J=z.component,B=$H.jsx(E.Provider,{value:yU,children:$H.jsx(J,{data:H.data,content:H.content,setUiAjaxConfiguration:U})});if(z.isLazy)return $H.jsx(i,{name:z.name,fallback:Z,onError:$,children:B});return B}var MH=yU;var kU=require("react");var AH=require("react/jsx-runtime"),hZ=({data:H,content:U,setUiAjaxConfiguration:Z})=>{let{name:$,sx:T}=H,z=kU.useContext(E)??L;return AH.jsx(A,{card:$,data:H,children:AH.jsx("div",{style:T,id:$,children:U.map((J,B)=>{return AH.jsx(z,{uiConfig:J,setUiAjaxConfiguration:Z},`children-${B}`)})})})},xU=hZ;var SU=_({name:"SequenceCard",component:xU,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var bU=require("react");var lH=require("react/jsx-runtime"),pZ=({data:H,content:U,setUiAjaxConfiguration:Z})=>{let{name:$}=H,T=bU.useContext(E)??L;return lH.jsx(A,{card:$,data:H,children:U.map((z,J)=>{return lH.jsx(T,{uiConfig:z,setUiAjaxConfiguration:Z},`children-${J}`)})})},vU=pZ;var mU=_({name:"UnionCard",component:vU,metadata:{author:"Swarm.ing",description:"Renders one of many components"}});var PH=require("react"),cU=BU(require("html-react-parser"));var C=require("react");function gZ(){let H=new AudioContext,U=H.createOscillator(),Z=U.connect(H.createMediaStreamDestination());U.start();let $=Z.stream.getAudioTracks()[0];return $.enabled=!1,$}function iH(H=null,U){let[Z,$]=C.useState(!1),T=C.useRef(null),z=C.useRef(null),J=C.useRef(null),B=C.useCallback(async(Q,V=!0)=>{if(T.current)I();let G=new RTCPeerConnection;if(G.onconnectionstatechange=()=>{if(G.connectionState==="connected")$(!0);else if(["disconnected","failed","closed"].includes(G.connectionState))$(!1)},G.ontrack=(P)=>{if(H)H.srcObject=P.streams[0]},V){let P=await navigator.mediaDevices.getUserMedia({audio:!0});G.addTrack(P.getTracks()[0],P)}else{let P=gZ();G.addTrack(P)}let Y=G.createDataChannel("oai-events");z.current=Y,J.current=new Promise((P)=>{Y.addEventListener("open",()=>{P()})});let W=await G.createOffer();await G.setLocalDescription(W);let F=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:W.sdp,headers:{Authorization:`Bearer ${Q}`,"Content-Type":"application/sdp"}})).text();await G.setRemoteDescription({type:"answer",sdp:F}),T.current=G,await J.current},[H]),I=C.useCallback(()=>{let Q=z.current;if(Q)Q.close();T.current?.getSenders()?.forEach((V)=>V.track?.stop()),T.current?.close(),$(!1),T.current=null,z.current=null,J.current=null},[H]),O=C.useCallback((Q)=>{let V=z.current;if(!V){console.error("Data channel is not ready",Q);return}let G=new Date().toLocaleTimeString();if(Q.event_id=Q.event_id||crypto.randomUUID(),V.send(JSON.stringify(Q)),!Q.timestamp)Q.timestamp=G;U?.(Q)},[U,H]),D=C.useCallback((Q)=>{if(!z.current){console.error("Data channel is not ready");return}let G=()=>{O({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:Q}]}}),O({type:"response.create"})};if(J.current)J.current.then(G);else G()},[U,H]);return C.useEffect(()=>{let Q=z.current;if(!Q)return;let V=(G)=>{let Y=JSON.parse(G.data);if(!Y.timestamp)Y.timestamp=new Date().toLocaleTimeString();U?.(Y)};return Q.addEventListener("message",V),()=>{Q.removeEventListener("message",V)}},[U,H]),{isSessionActive:Z,startSession:B,stopSession:I,sendTextMessage:D}}var pU=require("react/jsx-runtime"),uZ=({data:H})=>{let{html:U,useSocketioSupport:Z,useCentrifugeSupport:$,useMittSupport:T,centrifugeChannel:z}=H,[J,B]=PH.useState(U),{isSessionActive:I,startSession:O,sendTextMessage:D}=iH(null,(Y)=>{if(console.log(Y.type,Y.type==="response.output_text.delta"&&Y.delta),Y.type==="response.output_text.delta"&&Y.delta)B((W)=>W+Y.delta)});return PH.useEffect(()=>{B(U)},[U]),pU.jsx(A,{card:"HTMLEmbedCard",data:H,methods:{update:(Y)=>{B(Y.value)},generateUsingAI:async(Y)=>{try{if(!I&&Y.token)await O(Y.token,!1);D(Y.prompt)}catch(W){console.error("Failed to generate using AI",W)}},initializeAI:async(Y)=>{if(!I&&Y.token)await O(Y.token,!1)}},useCentrifugeSupport:$,useSocketioSupport:Z,useMittSupport:T,centrifugeChannel:z,children:cU.default(J)})},hU=uZ;var gU=_({name:"HTMLEmbedCard",component:hU,metadata:{author:"Swarm.ing"}});var RH=require("react");var sH=require("react/jsx-runtime"),dZ=({data:H})=>{let{name:U,value:Z,useSocketioSupport:$,useCentrifugeSupport:T,useMittSupport:z,centrifugeChannel:J}=H,[B,I]=RH.useState(Z);return RH.useEffect(()=>{I(Z)},[Z]),sH.jsx(A,{card:"HiddenCard",data:H,useSocketioSupport:$,useCentrifugeSupport:T,useMittSupport:z,centrifugeChannel:J,methods:{update:({value:O})=>{I(O)}},children:sH.jsx("input",{type:"hidden",id:U,name:U,value:B})})},uU=dZ;var dU=_({name:"HiddenCard",component:uU,metadata:{author:"Swarm.ing"}});var zH=require("react");var oU=require("react");var oZ=K("@swarm.ing/pieui:context:navigate",()=>oU.createContext(void 0)),b=oZ;var wH=require("react/jsx-runtime"),lZ=({data:H})=>{let{url:U}=H,Z=zH.useContext(b),$=zH.useContext(f);return zH.useEffect(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(U))window.location.href=U;else Z?.(U)},[U,Z]),wH.jsx(wH.Fragment,{children:$})},lU=lZ;var iU=_({name:"AutoRedirectCard",component:lU,metadata:{author:"Swarm.ing"}});var c=require("react-toastify"),LH=require("react-toastify");var n=require("react");var s=require("react/jsx-runtime"),iZ={bounce:c.Bounce,slide:c.Slide,zoom:c.Zoom,flip:c.Flip},sZ=(H)=>{let U={...H,type:H.alertType,transition:H.transition?iZ[H.transition]:void 0,position:H.position??"bottom-right",autoClose:H.autoClose??3000,style:{backgroundColor:"black",...H.sx}};LH.toast(H.message,U)},nZ=(H)=>{console.log("Log event",H)},rZ=(H)=>{if(typeof window>"u"||!window.Notification){console.warn("[IOEventsCard] Notifications API is not available");return}let U=()=>{try{new window.Notification(H.title,{body:H.message??H.subtitle,icon:H.icon,silent:H.silent})}catch($){console.error("[IOEventsCard] Failed to show notification",$)}},Z=window.Notification.permission;if(Z==="granted"){U();return}if(Z==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then(($)=>{if($==="granted")U()})},tZ=({data:H})=>{let{useCentrifugeSupport:U,useSocketioSupport:Z,useMittSupport:$,centrifugeChannel:T}=H,z=n.useContext(b),J=n.useRef(z);J.current=z;let B=n.useMemo(()=>({alert:sZ,log:nZ,push:rZ,redirect:(I)=>{if(I.to){let O=I.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(O))window.location.href=O;else J.current?.(O)}else window.location.reload()},reload:(I)=>{if(I.to){let O=I.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(O))window.location.href=O;else J.current?.(O)}else window.location.reload()}}),[]);return s.jsx(s.Fragment,{children:s.jsx(A,{card:"IOEventsCard",data:H,useCentrifugeSupport:U,useSocketioSupport:Z,useMittSupport:$,centrifugeChannel:T,methods:B,children:s.jsx(LH.ToastContainer,{})})})},sU=tZ;var nU=_({name:"IOEventsCard",component:sU,metadata:{author:"Swarm.ing"}});var TH=require("react");var nH=require("react/jsx-runtime"),aZ=({data:H})=>{let{name:U,key:Z,value:$,useSocketioSupport:T,useCentrifugeSupport:z,useMittSupport:J,centrifugeChannel:B}=H,[I,O]=TH.useState($);return TH.useEffect(()=>{O($)},[$]),TH.useEffect(()=>{if(typeof window>"u")return;sessionStorage.setItem(Z,I)},[Z,I]),nH.jsx(A,{card:"SessionStorageCard",data:H,useSocketioSupport:T,useCentrifugeSupport:z,useMittSupport:J,centrifugeChannel:B,methods:{update:({value:D})=>{O(D)},remove:()=>{sessionStorage.removeItem(Z),O("")}},children:nH.jsx("input",{type:"hidden",id:U,name:U,value:I})})},rU=aZ;var tU=_({name:"SessionStorageCard",component:rU,metadata:{author:"PieData"}});var JH=require("react");var rH=require("react/jsx-runtime"),eZ=({data:H})=>{let{name:U,key:Z,value:$,useSocketioSupport:T,useCentrifugeSupport:z,useMittSupport:J,centrifugeChannel:B}=H,[I,O]=JH.useState($);return JH.useEffect(()=>{O($)},[$]),JH.useEffect(()=>{if(typeof window>"u")return;localStorage.setItem(Z,I)},[Z,I]),rH.jsx(A,{card:"DeviceStorageCard",data:H,useSocketioSupport:T,useCentrifugeSupport:z,useMittSupport:J,centrifugeChannel:B,methods:{update:({value:D})=>{O(D)},remove:()=>{localStorage.removeItem(Z),O("")}},children:rH.jsx("input",{type:"hidden",id:U,name:U,value:I})})},aU=eZ;var eU=_({name:"DeviceStorageCard",component:aU,metadata:{author:"PieData"}});var N=require("react");var tH=require("react/jsx-runtime"),H$=({data:H,content:U})=>{let{useLoader:Z,noReturn:$,returnType:T,useSocketioSupport:z,useCentrifugeSupport:J,useMittSupport:B,centrifugeChannel:I}=H,O=N.useContext(f),D=N.useContext(E)??L,[Q,V]=N.useState(!1),[G,Y]=N.useState(null),W=N.useRef(U),X=N.useContext(x),q=N.useCallback((P)=>{if(P===null)V(!0);else if(V(!1),!$)W.current=P;if(!$)Y(P)},[$]),M=N.useCallback((P)=>{W.current=P.content,Y(P.content)},[]),F=N.useCallback((P)=>{if(P===null)V(!0);else if(V(!1),!$)for(let OH of P)X?.emit(OH.name,OH.data)},[$,X]);if(N.useEffect(()=>{Y(U),V(!1)},[U]),!G&&Z)return O;return tH.jsx(A,{card:"AjaxGroupCard",data:H,methods:{changeContent:M},useSocketioSupport:z,useCentrifugeSupport:J,useMittSupport:B,centrifugeChannel:I,children:tH.jsx(D,{uiConfig:G??W.current,setUiAjaxConfiguration:T==="events"?F:q})})},HZ=H$;var UZ=_({name:"AjaxGroupCard",component:HZ,metadata:{author:"Swarm.ing",description:"Group card with AJAX support"}});var aH=require("react");var NH=require("react/jsx-runtime"),U$=({data:H,content:U,setUiAjaxConfiguration:Z})=>{let{name:$,url:T,sx:z}=H,J=aH.useContext(b),B=aH.useContext(E)??L;return NH.jsx(A,{card:$,data:H,children:NH.jsx("div",{style:z,id:$,onClick:(O)=>{if(T)if(O.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(T))window.location.href=T;else J?.(T)},children:NH.jsx(B,{setUiAjaxConfiguration:Z,uiConfig:U})})})},ZZ=U$;var $Z=_({name:"BoxCard",component:ZZ,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var zZ=require("react");var fH=require("react/jsx-runtime"),Z$=({data:H,content:U,setUiAjaxConfiguration:Z})=>{let{name:$,sx:T}=H,z=zZ.useContext(E)??L;return fH.jsx(A,{card:$,data:H,children:fH.jsx("div",{style:T,id:$,children:U.map((J,B)=>{return fH.jsx(z,{uiConfig:J,setUiAjaxConfiguration:Z},`children-${B}`)})})})},TZ=Z$;var JZ=_({name:"OneOfCard",component:TZ,metadata:{author:"Swarm.ing",description:"Different variants"}});var r=require("react"),t=require("@tanstack/react-query");var kH=require("react");var jH=require("react"),EH=new Map,CH=new Map;function yH(H,U){let Z=`${H}::${U}`,$=H?EH.get(Z):void 0,[T,z]=jH.useState($??null);return jH.useEffect(()=>{if(!H)return;if(EH.has(Z)){z(EH.get(Z));return}let J=CH.get(Z);if(!J)J=fetch(H+`api/support/${U}`,{method:"GET"}).then((I)=>I.json()).then((I)=>{return EH.set(Z,I),CH.delete(Z),I}).catch((I)=>{throw CH.delete(Z),I}),CH.set(Z,J);let B=!1;return J.then((I)=>{if(!B)z(I)}).catch(()=>{}),()=>{B=!0}},[H,U,Z]),T}var BH=K("@swarm.ing/pieui:sid-state",()=>({promise:null,resolve:null}));function BZ(){BH.resolve?.()}function eH(){if(typeof window>"u")return Promise.resolve();if(typeof window.sid<"u")return Promise.resolve();if(!BH.promise)BH.promise=new Promise((H)=>{BH.resolve=()=>{H()}});return BH.promise}var $$=({children:H})=>{let U=kH.useContext(k),Z=YH(),$=yH(Z,"socketIO"),T=(z)=>{if(typeof window<"u")window.sid=z.sid,BZ(),console.log(`SocketIO initialized: ${window.sid}`)};return kH.useEffect(()=>{if(!U)return;let z=()=>{console.log("SocketIO connected")},J=(B)=>{console.log(`SocketIO disconnected: ${B}`),U.connect()};if($)U.on("pieinit",T),U.on("connect",z),U.on("disconnect",J),U.connect();return()=>{if($)U.off("pieinit",T),U.off("connect",z),U.off("disconnect",J),U.disconnect()}},[U,$]),H},xH=$$;var SH=require("react");var z$=({children:H})=>{let U=SH.useContext(y),Z=YH(),$=yH(Z,"centrifuge");return SH.useEffect(()=>{if(!U)return;let T=()=>{console.log("Centrifuge connected")},z=(J)=>{console.log("Centrifuge disconnected:",J)};if($)U.on("connected",T),U.on("disconnected",z),U.connect();return()=>{if($)U.disconnect()}},[U,$]),H},bH=z$;var GZ=require("axios-date-transformer");var OZ=require("react/jsx-runtime");function IZ(H,U,Z){if(!U)return Z;let $=H.replace(/^\//,""),T=U[$];if(!T)return Z;return OZ.jsx(MH,{uiConfig:T})}var R=require("react/jsx-runtime"),T$=({location:H,fallback:U,piecache:Z,onError:$,queryOptions:T,disableGlobalForm:z})=>{let J=UH(),B=qH(),I=v(),O=r.useMemo(()=>GZ.createAxiosDateTransformer({baseURL:J||""}),[J]),D=r.useMemo(()=>p(),[]),Q=r.useMemo(()=>J?DH(J):null,[J]),V=r.useMemo(()=>J?WH(J,B):null,[J,B]),{data:G,isLoading:Y,error:W}=t.useQuery({queryKey:["uiConfig",H.pathname+H.search,J],enabled:!!J,queryFn:async()=>{let q=new URLSearchParams(H.search);q.set("__pieroot","web");let M="/api/content"+H.pathname+"?"+q.toString();if(I)console.log("[PieRoot] Fetching UI configuration from:",M);let F=await O.get(M,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(I)console.log("[PieRoot] Received UI configuration:",F.data);return F.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(q)=>Math.min(1000*2**q,30000),...T}),X=IZ(H.pathname,Z,U);if(!J)return X??null;if(I)console.log("[PieRoot] Rendering with location:",H),console.log("[PieRoot] API_SERVER:",J),console.log("[PieRoot] CENTRIFUGE_SERVER:",B),console.log("[PieRoot] Fallback provided:",!!U),console.log("[PieRoot] Piecache provided:",!!Z);if(W){if(I)console.error("[PieRoot] Error fetching UI configuration:",W),console.error("[PieRoot] Error details:",{message:W.message,status:W.response?.status,data:W.response?.data});return $?.(W),X}if(Y||!G){if(I)console.log("[PieRoot] Loading state:",{isLoading:Y,hasUiConfiguration:!!G});return X}if(I)console.log("[PieRoot] UI configuration loaded successfully:",G),console.log("[PieRoot] Rendering UI with configuration");return R.jsx(x.Provider,{value:D,children:R.jsx(k.Provider,{value:Q,children:R.jsx(y.Provider,{value:V,children:R.jsx(f.Provider,{value:U??R.jsx(R.Fragment,{}),children:R.jsx(xH,{children:R.jsx(bH,{children:z?R.jsx(L,{uiConfig:G}):R.jsx("form",{id:"piedata_global_form",action:J+"api/process"+H.pathname,method:"post",encType:"multipart/form-data",children:R.jsx(L,{uiConfig:G})})})})})})})})},J$=(H)=>{let U=r.useMemo(()=>new t.QueryClient,[]),Z=H.queryClient??U;return R.jsx(b.Provider,{value:H.onNavigate,children:R.jsx(h.Provider,{value:H.config,children:R.jsx(m.Provider,{value:H.onError,children:R.jsx(t.QueryClientProvider,{client:Z,children:R.jsx(T$,{...H})})})})})},vH=J$;var a=require("react"),mH=require("@tanstack/react-query");var w=require("react/jsx-runtime"),B$=({location:H,fallback:U,children:Z,disableGlobalForm:$})=>{let T=UH(),z=qH(),J=v(),B=a.useMemo(()=>p(),[]),I=a.useMemo(()=>T?DH(T):null,[T]),O=a.useMemo(()=>T?WH(T,z):null,[T,z]);if(J)console.log("[PieRoot] Rendering with location:",H),console.log("[PieRoot] API_SERVER:",T),console.log("[PieRoot] CENTRIFUGE_SERVER:",z),console.log("[PieRoot] Fallback provided:",!!U);return w.jsx(x.Provider,{value:B,children:w.jsx(k.Provider,{value:I,children:w.jsx(y.Provider,{value:O,children:w.jsx(f.Provider,{value:U??w.jsx(w.Fragment,{}),children:w.jsx(xH,{children:w.jsx(bH,{children:$?Z:w.jsx("form",{id:"piedata_global_form",action:T+"api/process"+H.pathname,method:"post",encType:"multipart/form-data",children:Z})})})})})})})},I$=(H)=>{let[U]=a.useState(()=>new mH.QueryClient),Z=H.queryClient??U;return w.jsx(b.Provider,{value:H.onNavigate,children:w.jsx(h.Provider,{value:H.config,children:w.jsx(m.Provider,{value:H.onError,children:w.jsx(mH.QueryClientProvider,{client:Z,children:w.jsx(B$,{...H})})})})})},XZ=I$;var YZ=require("react");var HU=require("react/jsx-runtime"),O$=HU.jsx("div",{style:{padding:16,fontFamily:"system-ui, sans-serif",color:"#888"},children:"Loading card…"}),G$=({apiServer:H,pathname:U="/",search:Z="",centrifugeServer:$,fallback:T,enableRenderingLog:z=!1})=>{let J=H??(typeof process<"u"?process.env.PIE_API_SERVER:void 0)??"",B=YZ.useMemo(()=>({apiServer:J,centrifugeServer:$,enableRenderingLog:z,pageProcessor:"web"}),[J,$,z]);return HU.jsx(vH,{location:{pathname:U,search:Z},config:B,fallback:T??O$,onNavigate:(O)=>{if(typeof window<"u")window.history.pushState(null,"",O)}})},qZ=G$;var QZ=require("react"),X$=["localStorage","sessionStorage","cookie","url","telegram:cloud","telegram:secure"],Y$=new Set(["telegram:cloud","telegram:secure"]),IH=(H)=>{if(H==="sid")return{source:"sid",key:"sid"};for(let U of X$){let Z=U+":";if(H.startsWith(Z))return{source:U,key:H.slice(Z.length)}}return{source:"dom",key:H}},UU=(H,U=!1)=>{let{source:Z,key:$}=IH(H);if(Z==="sid"){if(!window.sid)throw Error("SocketIO isn't initialized properly");return[window.sid]}if(Z==="localStorage"||Z==="sessionStorage")try{let B=(Z==="localStorage"?window.localStorage:window.sessionStorage).getItem($);if(B===null){if(U)console.warn(`No ${Z} value found for key ${$}`);return[]}return[B]}catch(J){if(U)console.warn(`Failed to read ${Z} key ${$}:`,J);return[]}if(Z==="cookie"){let J=q$($);if(J===null){if(U)console.warn(`No cookie found for key ${$}`);return[]}return[J]}if(Z==="url"){let J=new URLSearchParams(window.location.search).getAll($);if(!J.length&&U)console.warn(`No URL query param found for key ${$}`);return J}if(Y$.has(Z)){if(U)console.warn(`Source ${Z} is async; use readAjaxKeyAsync (readAjaxKey returns [])`);return[]}let T=document.getElementsByName($);if(!T.length){if(U)console.warn(`No input found with name ${$}`);return[]}let z=T[0];if(z instanceof HTMLInputElement){if(z.type==="file"&&z.files)return Array.from(z.files);return[z.value]}if(z instanceof HTMLTextAreaElement)return[z.value];return[]},q$=(H)=>{let U=document.cookie?document.cookie.split(";"):[];for(let Z of U){let $=Z.indexOf("=");if(($===-1?Z:Z.slice(0,$)).trim()===H){let z=$===-1?"":Z.slice($+1).trim();try{return decodeURIComponent(z)}catch{return z}}}return null},Q$=(H,U,Z)=>{let $=window.Telegram?.WebApp,T=H==="telegram:cloud"?$?.CloudStorage:$?.SecureStorage,z=H==="telegram:cloud"?"Telegram CloudStorage":"Telegram SecureStorage";if(!T){if(Z)console.warn(`${z} is not available`);return Promise.resolve([])}return new Promise((J)=>{try{T.getItem(U,(B,I)=>{if(B){if(Z)console.warn(`Failed to read ${z} key ${U}:`,B);J([]);return}if(I==null||I===""){if(Z)console.warn(`No ${z} value found for key ${U}`);J([]);return}J([I])})}catch(B){if(Z)console.warn(`Failed to read ${z} key ${U}:`,B);J([])}})},ZU=async(H,U=!1)=>{let{source:Z,key:$}=IH(H);if(Z==="telegram:cloud"||Z==="telegram:secure")return Q$(Z,$,U);return UU(H,U)},W$=(H,U={},Z=[],$,T)=>{let z=T?.renderingLogEnabled??!1,J=T?.timeout,B=T?.retryPolicy,I=B?.maxRetries??0,O=B?.baseDelay??1000,D=B?.retryOn??[502,503,504];if(z)console.log("Registering AJAX: ",$,U,Z);return async(Q={})=>{if(typeof window>"u"||typeof document>"u"){if(z)console.warn("getAjaxSubmit called on server, skipping DOM-dependent logic");return}let V=T?.apiServer;if(!V){if(z)console.warn("AJAX skipped: apiServer is missing");return}if(!$||!H){if(z)console.warn("AJAX skipped: pathname or setUiAjaxConfiguration is missing");return}if(Z.includes("sid"))await eH();let G=new FormData;for(let[X,q]of Object.entries({...U,...Q}))G.append(X,q);for(let X of Z){let{key:q}=IH(X);for(let M of await ZU(X,z))G.append(q,M)}let Y=V+"api/ajax_content"+$;H(null);let W;for(let X=0;X<=I;X++){if(X>0){let F=O*2**(X-1);if(z)console.log(`AJAX retry ${X}/${I} after ${F}ms`);await new Promise((P)=>setTimeout(P,F))}let q=J!=null?new AbortController:null,M=q&&setTimeout(()=>q.abort(),J);try{let F=await fetch(Y,{method:"POST",body:G,signal:q?.signal});if(M)clearTimeout(M);if(!F.ok&&D.includes(F.status)&&X<I){W=Error(`HTTP ${F.status}`);continue}let OH=(F.headers.get("content-type")||"").includes("application/json");if(!!F.body?.getReader&&!OH){let GH=F.body.getReader(),MZ=new TextDecoder,u="";while(!0){let{done:cH,value:AZ}=await GH.read();if(cH)break;u+=MZ.decode(AZ,{stream:!0});let $U=u.split(`
3
- `);u=$U.pop()??"";for(let PZ of $U){let hH=PZ.trim();if(!hH)continue;try{let RZ=JSON.parse(hH);H([RZ])}catch{if(z)console.warn("Failed to parse streamed line:",hH)}}}if(u.trim())try{let cH=JSON.parse(u);H([cH])}catch{if(z)console.warn("Failed to parse final streamed line:",u)}return{}}else{let GH=await F.json();return H(GH),GH}}catch(F){if(M)clearTimeout(M);if(W=F,X<I)continue;if(z)console.error("AJAX request failed:",F);return H(null),F}}if(z)console.error("AJAX request failed after retries:",W);return H(null),W}},WZ=(H,U={},Z=[],$,T)=>{let{apiServer:z,enableRenderingLog:J}=HH(),B=JSON.stringify(U),I=JSON.stringify(Z),O=JSON.stringify(T);return QZ.useMemo(()=>W$(H,U,Z,$,{apiServer:z,renderingLogEnabled:J,timeout:T?.timeout,retryPolicy:T?.retryPolicy}),[H,B,I,$,z,J,O])};var DZ=require("clsx"),VZ=require("tailwind-merge");function FZ(...H){return VZ.twMerge(DZ.clsx(H))}var _Z=()=>{if(typeof document>"u")return;let H=document.getElementById("piedata_global_form");H&&H.submit()};var KZ=(H,U)=>`${H}${QH}${U}`;
2
+ var yH=Object.create;var{getPrototypeOf:SH,defineProperty:HU,getOwnPropertyNames:IZ,getOwnPropertyDescriptor:bH}=Object,GZ=Object.prototype.hasOwnProperty;var XZ=(U,Z,H)=>{H=U!=null?yH(SH(U)):{};let $=Z||!U||!U.__esModule?HU(H,"default",{value:U,enumerable:!0}):H;for(let T of IZ(U))if(!GZ.call($,T))HU($,T,{get:()=>U[T],enumerable:!0});return $},JZ=new WeakMap,mH=(U)=>{var Z=JZ.get(U),H;if(Z)return Z;if(Z=HU({},"__esModule",{value:!0}),U&&typeof U==="object"||typeof U==="function")IZ(U).map(($)=>!GZ.call(Z,$)&&HU(Z,$,{get:()=>U[$],enumerable:!(H=bH(U,$))||H.enumerable}));return JZ.set(U,Z),Z};var vH=(U,Z)=>{for(var H in Z)HU(U,H,{get:Z[H],enumerable:!0,configurable:!0,set:($)=>Z[H]=()=>$})};var f$={};vH(f$,{usePieEmit:()=>VZ,useAjaxSubmit:()=>RH,unregisterComponent:()=>wZ,trackLazy:()=>FU,submitGlobalForm:()=>EH,registry:()=>y,registerPieComponent:()=>F,registerMultipleComponents:()=>LZ,readAjaxKeyAsync:()=>zZ,readAjaxKey:()=>$Z,preloadComponent:()=>lU,prefetchLazyComponents:()=>CZ,pieName:()=>jH,parseDepName:()=>BU,hasComponent:()=>NZ,getRegistrySize:()=>fZ,getRegistryEntry:()=>r,getLazyComponentNames:()=>oU,getEmitter:()=>c,getComponentMeta:()=>EZ,getAllRegisteredComponents:()=>jZ,cn:()=>NH,UnionCard:()=>uZ,UIRendererContext:()=>C,UILoading:()=>MU,UI:()=>N,SocketIOContext:()=>b,SessionStorageCard:()=>ZH,SequenceCard:()=>pZ,PieRoot:()=>pU,PiePreviewRoot:()=>AH,PieConfigContext:()=>u,PieCard:()=>M,PieBaseRoot:()=>KH,PIEBREAK:()=>DU,OneOfCard:()=>YH,MittContext:()=>m,IOEventsCard:()=>eZ,HiddenCard:()=>sZ,HTMLEmbedCard:()=>lZ,FallbackContext:()=>f,DeviceStorageCard:()=>$H,CentrifugeIOContext:()=>S,BoxCard:()=>IH,AutoRedirectCard:()=>tZ,AjaxGroupCard:()=>TH});module.exports=mH(f$);var k=require("react");var qU=require("react");var cU=globalThis,P=(U,Z)=>{let H=Symbol.for(U);if(!(H in cU))cU[H]=Z();return cU[H]};var u=P("@swarm.ing/pieui:context:pieConfig",()=>qU.createContext(null)),$U=()=>{let U=qU.useContext(u);if(!U)throw Error("usePieConfig must be used within PieConfigProvider");return U},zU=()=>{let{apiServer:U}=$U();return U},QU=zU,WU=()=>{let{centrifugeServer:U}=$U();return U};var p=()=>{let{enableRenderingLog:U}=$U();return U},YZ=p;var DU="__piedemo__";var OZ=require("react"),dU=require("centrifuge");var BZ=P("@swarm.ing/pieui:centrifuge-cache",()=>new Map),_U=(U,Z)=>{if(!Z)return null;let H=`${U}::${Z}`,$=BZ.get(H);if($)return $;async function T(){let J=await fetch(U+"api/centrifuge/gen_token",{credentials:"include"});if(!J.ok){if(J.status===401||J.status===403)throw new dU.Centrifuge.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${J.status}`)}return(await J.json()).token}let z=new dU.Centrifuge(Z,{getToken:T});return BZ.set(H,z),z},pH=P("@swarm.ing/pieui:context:centrifuge",()=>OZ.createContext(null)),S=pH;var QZ=require("socket.io-client"),WZ=require("react");var qZ=P("@swarm.ing/pieui:socket-cache",()=>new Map),VU=(U)=>{let Z=qZ.get(U);if(Z)return Z;let H=QZ.io(U,{autoConnect:!1,transports:["websocket"]});return qZ.set(U,H),H},hH=P("@swarm.ing/pieui:context:socket",()=>WZ.createContext(null)),b=hH;var DZ=XZ(require("mitt")),i=require("react");function c(){return P("@swarm.ing/pieui:mitt-emitter",()=>DZ.default())}var _Z=P("@swarm.ing/pieui:context:mitt",()=>i.createContext(null));function VZ(U){let Z=i.useContext(_Z);return i.useCallback((H,$)=>{(Z??c()).emit(`pie${H}_${U}`,$)},[U,Z])}var m=_Z;function FZ(U){return U.wasRecovering===!0&&U.recovered===!1}function KZ(U){return U.recoverable===!1}var s=require("react/jsx-runtime"),gH=({card:U,data:Z,children:H,useSocketioSupport:$=!1,useCentrifugeSupport:T=!1,useMittSupport:z=!1,centrifugeChannel:J=void 0,methods:G=void 0,stored:I=void 0,onResync:X=void 0})=>{let W=YZ(),q=k.useRef(G);q.current=G;let V=k.useRef(X);if(V.current=X,W)console.log("[PieCard] Rendering card:",U),console.log("[PieCard] Card data:",Z),console.log("[PieCard] Component name:",Z?.name),console.log("[PieCard] Real-time support:",{socketio:$,centrifuge:T,mitt:z,centrifugeChannel:J}),console.log("[PieCard] Methods:",G?Object.keys(G):"none"),console.log("[PieCard] Has children:",!!H);let B=k.useContext(b),O=k.useContext(S),_=k.useContext(m);if(k.useEffect(()=>{if(!B||!$||!q.current||!Z.name){if(W&&$)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!B,useSocketioSupport:$,hasMethods:!!q.current,hasDataName:!!Z?.name});return}let A=Object.keys(q.current??{}).map((D)=>{let Y=`pie${D}_${Z.name}`;if(W)console.log(`[PieCard] Socket.IO registering event: ${Y}`);let Q=(j)=>{q.current?.[D]?.(j)};return B.on(Y,Q),[Y,Q]});return()=>{A.forEach(([D,Y])=>{if(W)console.log(`[PieCard] Socket.IO unregistering event: ${D}`);B.off(D,Y)})}},[B,Z.name,$]),k.useEffect(()=>{if(!O||!T||!J||!Z.name){if(W&&T)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!O,useCentrifugeSupport:T,hasCentrifugeChannel:!!J,hasMethods:!!q.current,hasDataName:!!Z?.name});return}let A=Object.keys(q.current??{}).map((D)=>{let Y=`pie${D}_${Z.name}_${J}`;if(W)console.log(`[PieCard] Centrifuge subscribing to channel: ${Y}`);let Q=O.newSubscription(Y,{recoverable:!0,positioned:!0});return Q.on("publication",(j)=>{if(W)console.log(`[PieCard] Centrifuge received data on ${Y}:`,j.data);q.current?.[D]?.(j.data)}),Q.on("subscribed",(j)=>{if(KZ(j))console.warn(`[PieCard] Centrifuge channel ${Y} is not `+"recoverable — enable history on the server "+"namespace for exact replay; relying on resync fallback only.");if(FZ(j)){if(W)console.log(`[PieCard] Centrifuge recovery gap on ${Y}; requesting resync`);V.current?.({channel:Y,reason:"gap"})}}),Q.subscribe(),Q});return()=>{A.forEach((D)=>{if(W)console.log("[PieCard] Centrifuge unsubscribing from channel");D.unsubscribe(),O.removeSubscription(D)})}},[O,J,Z.name,T]),k.useEffect(()=>{if(!_||!z||!Z.name){if(W&&z)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!_,useMittSupport:z,hasMethods:!!q.current,hasDataName:!!Z?.name});return}let K=Object.keys(q.current??{}),A={};return K.forEach((D)=>{let Y=`pie${D}_${Z.name}`,Q=(j)=>{if(W)console.log(`[PieCard] Mitt registering event: ${Y}`);q.current?.[D]?.(j)};A[Y]=Q,_.on(Y,Q)}),()=>{Object.entries(A).forEach(([D,Y])=>{if(W)console.log(`[PieCard] Mitt unregistering event: ${D}`);_.off(D,Y)})}},[_,Z.name,z]),W)console.log("[PieCard] Rendering complete, returning children");if(I!==void 0)return s.jsxs(s.Fragment,{children:[s.jsx("input",{type:"hidden",name:Z.name,value:JSON.stringify(I)}),H]});return H},M=gH;var PZ=require("react"),d=new Map;function AZ(U,Z){return Z.catch(()=>{if(d.get(U)===Z)d.delete(U)}),d.set(U,Z),Z}function FU(U,Z){return PZ.lazy(()=>{if(d.has(Z))return d.get(Z);return AZ(Z,U().then((H)=>H))})}var MZ=async(U,Z)=>{if(!Z)return;if(d.has(U))return d.get(U);return AZ(U,Z().then((H)=>H))};var y=P("@swarm.ing/pieui:component-registry",()=>new Map),uH=(U)=>{if(!U.name)throw Error("Component registration requires a name");if(!U.component&&!U.loader)throw Error(`Component "${U.name}" requires component or loader`);let Z={name:U.name,component:U.component,loader:U.loader,metadata:U.metadata,fallback:U.fallback,isLazy:!1};if(!Z.component&&Z.loader)Z.component=FU(Z.loader,U.name),Z.isLazy=!0;return Z};function F(U){let Z=uH(U);return y.set(Z.name,Z),Z.component}var LZ=(U)=>{U.forEach((Z)=>F(Z))},wZ=(U)=>{y.delete(U)},NZ=(U)=>{return y.has(U)},EZ=(U)=>{return y.get(U)?.metadata},r=(U)=>{return y.get(U)},jZ=()=>{return Array.from(y.keys())},fZ=()=>{return y.size},oU=()=>Array.from(y.values()).filter((U)=>U.isLazy&&typeof U.loader==="function").map((U)=>U.name),lU=(U)=>{let Z=y.get(U);if(!Z?.isLazy||typeof Z.loader!=="function")return;return MZ(U,Z.loader)},RZ=!1,CZ=()=>{if(RZ||typeof window>"u")return;RZ=!0;let U=navigator.connection;if(U?.saveData)return;if(U?.effectiveType&&["slow-2g","2g"].includes(U.effectiveType))return;let Z=oU(),H="requestIdleCallback"in window?(T)=>window.requestIdleCallback(T,{timeout:2000}):(T)=>window.setTimeout(T,300),$=(T)=>{if(T>=Z.length)return;H(()=>{Promise.resolve().then(()=>lU(Z[T])).catch(()=>{}).finally(()=>$(T+1))})};$(0)};var TU=require("react");var xZ=require("react");var KU=require("react/jsx-runtime"),cH=P("@swarm.ing/pieui:context:fallback",()=>xZ.createContext(KU.jsx(KU.Fragment,{}))),f=cH;var kZ=require("react");var dH=P("@swarm.ing/pieui:context:lazyError",()=>kZ.createContext(void 0)),h=dH;var PU=require("react"),yZ=require("react/jsx-runtime"),oH=2,lH=400;class n extends PU.Component{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(U){if(this.props.onError?.(U),this.state.attempt<oH){let Z=lH*(this.state.attempt+1);this.timer=setTimeout(()=>{this.setState((H)=>({failed:!1,attempt:H.attempt+1}))},Z)}}componentDidUpdate(U){if(U.name!==this.props.name&&this.state.attempt!==0)this.setState({failed:!1,attempt:0})}componentWillUnmount(){if(this.timer)clearTimeout(this.timer)}render(){if(this.state.failed)return this.props.fallback;return yZ.jsx(PU.Suspense,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}var AU=require("react/jsx-runtime");function iH({uiConfig:U,setUiAjaxConfiguration:Z}){let H=TU.useContext(f),$=TU.useContext(h),T=p();if(T)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:",!!Z);let z=r(U.card);if(!z?.component){if(T)console.warn(`[UI] Component not found in registry: ${U.card}`),console.log("[UI] Returning fallback component");return H}if(T)console.log("[UI] Found component in registry:",{name:z.name,isLazy:z.isLazy,hasMetadata:!!z.metadata});let J=z.component,G=AU.jsx(J,{data:U.data,content:U.content,setUiAjaxConfiguration:Z});if(z.isLazy){if(T)console.log("[UI] Rendering lazy component with Suspense:",z.name);return AU.jsx(n,{name:z.name,fallback:z.fallback?AU.jsx(z.fallback,{}):H,onError:$,children:G})}if(T)console.log("[UI] Rendering component directly:",z.name);return G}var N=TU.memo(iH);var iU=require("react");var SZ=require("react");var sH=P("@swarm.ing/pieui:context:uiRenderer",()=>SZ.createContext(null)),C=sH;var JU=require("react/jsx-runtime");function bZ({uiConfig:U,setUiAjaxConfiguration:Z}){let H=iU.useContext(f),$=iU.useContext(h),T=p();if(T)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:",!!Z);let z=r(U.card);if(!z?.component){if(T)console.warn(`[UILoading] Component not found in registry: ${U.card}`),console.log("[UILoading] Returning fallback component");return H}if(T)console.log("[UILoading] Found component in registry:",{name:z.name,isLazy:z.isLazy,hasMetadata:!!z.metadata,hasFallback:!!z.fallback});if(z.fallback){if(T)console.log("[UILoading] Rendering fallback for:",z.name);let I=z.fallback;return JU.jsx(I,{})}if(T)console.log("[UILoading] No fallback, rendering full component:",z.name);let J=z.component,G=JU.jsx(C.Provider,{value:bZ,children:JU.jsx(J,{data:U.data,content:U.content,setUiAjaxConfiguration:Z})});if(z.isLazy)return JU.jsx(n,{name:z.name,fallback:H,onError:$,children:G});return G}var MU=bZ;var mZ=require("react");var RU=require("react/jsx-runtime"),rH=({data:U,content:Z,setUiAjaxConfiguration:H})=>{let{name:$,sx:T}=U,z=mZ.useContext(C)??N;return RU.jsx(M,{card:$,data:U,children:RU.jsx("div",{style:T,id:$,children:Z.map((J,G)=>{return RU.jsx(z,{uiConfig:J,setUiAjaxConfiguration:H},`children-${G}`)})})})},vZ=rH;var pZ=F({name:"SequenceCard",component:vZ,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var hZ=require("react");var sU=require("react/jsx-runtime"),nH=({data:U,content:Z,setUiAjaxConfiguration:H})=>{let{name:$}=U,T=hZ.useContext(C)??N;return sU.jsx(M,{card:$,data:U,children:Z.map((z,J)=>{return sU.jsx(T,{uiConfig:z,setUiAjaxConfiguration:H},`children-${J}`)})})},gZ=nH;var uZ=F({name:"UnionCard",component:gZ,metadata:{author:"Swarm.ing",description:"Renders one of many components"}});var LU=require("react"),cZ=XZ(require("html-react-parser"));var x=require("react");function tH(){let U=new AudioContext,Z=U.createOscillator(),H=Z.connect(U.createMediaStreamDestination());Z.start();let $=H.stream.getAudioTracks()[0];return $.enabled=!1,$}function rU(U=null,Z){let[H,$]=x.useState(!1),T=x.useRef(null),z=x.useRef(null),J=x.useRef(null),G=x.useCallback(async(q,V=!0)=>{if(T.current)I();let B=new RTCPeerConnection;if(B.onconnectionstatechange=()=>{if(B.connectionState==="connected")$(!0);else if(["disconnected","failed","closed"].includes(B.connectionState))$(!1)},B.ontrack=(Q)=>{if(U)U.srcObject=Q.streams[0]},V){let Q=await navigator.mediaDevices.getUserMedia({audio:!0});B.addTrack(Q.getTracks()[0],Q)}else{let Q=tH();B.addTrack(Q)}let O=B.createDataChannel("oai-events");z.current=O,J.current=new Promise((Q)=>{O.addEventListener("open",()=>{Q()})});let _=await B.createOffer();await B.setLocalDescription(_);let Y=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:_.sdp,headers:{Authorization:`Bearer ${q}`,"Content-Type":"application/sdp"}})).text();await B.setRemoteDescription({type:"answer",sdp:Y}),T.current=B,await J.current},[U]),I=x.useCallback(()=>{let q=z.current;if(q)q.close();T.current?.getSenders()?.forEach((V)=>V.track?.stop()),T.current?.close(),$(!1),T.current=null,z.current=null,J.current=null},[U]),X=x.useCallback((q)=>{let V=z.current;if(!V){console.error("Data channel is not ready",q);return}let B=new Date().toLocaleTimeString();if(q.event_id=q.event_id||crypto.randomUUID(),V.send(JSON.stringify(q)),!q.timestamp)q.timestamp=B;Z?.(q)},[Z,U]),W=x.useCallback((q)=>{if(!z.current){console.error("Data channel is not ready");return}let B=()=>{X({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:q}]}}),X({type:"response.create"})};if(J.current)J.current.then(B);else B()},[Z,U]);return x.useEffect(()=>{let q=z.current;if(!q)return;let V=(B)=>{let O=JSON.parse(B.data);if(!O.timestamp)O.timestamp=new Date().toLocaleTimeString();Z?.(O)};return q.addEventListener("message",V),()=>{q.removeEventListener("message",V)}},[Z,U]),{isSessionActive:H,startSession:G,stopSession:I,sendTextMessage:W}}var oZ=require("react/jsx-runtime"),aH=({data:U})=>{let{html:Z,useSocketioSupport:H,useCentrifugeSupport:$,useMittSupport:T,centrifugeChannel:z}=U,[J,G]=LU.useState(Z),{isSessionActive:I,startSession:X,sendTextMessage:W}=rU(null,(O)=>{if(console.log(O.type,O.type==="response.output_text.delta"&&O.delta),O.type==="response.output_text.delta"&&O.delta)G((_)=>_+O.delta)});return LU.useEffect(()=>{G(Z)},[Z]),oZ.jsx(M,{card:"HTMLEmbedCard",data:U,methods:{update:(O)=>{G(O.value)},generateUsingAI:async(O)=>{try{if(!I&&O.token)await X(O.token,!1);W(O.prompt)}catch(_){console.error("Failed to generate using AI",_)}},initializeAI:async(O)=>{if(!I&&O.token)await X(O.token,!1)}},useCentrifugeSupport:$,useSocketioSupport:H,useMittSupport:T,centrifugeChannel:z,children:cZ.default(J)})},dZ=aH;var lZ=F({name:"HTMLEmbedCard",component:dZ,metadata:{author:"Swarm.ing"}});var wU=require("react");var nU=require("react/jsx-runtime"),eH=({data:U})=>{let{name:Z,value:H,useSocketioSupport:$,useCentrifugeSupport:T,useMittSupport:z,centrifugeChannel:J}=U,[G,I]=wU.useState(H);return wU.useEffect(()=>{I(H)},[H]),nU.jsx(M,{card:"HiddenCard",data:U,useSocketioSupport:$,useCentrifugeSupport:T,useMittSupport:z,centrifugeChannel:J,methods:{update:({value:X})=>{I(X)}},children:nU.jsx("input",{type:"hidden",id:Z,name:Z,value:G})})},iZ=eH;var sZ=F({name:"HiddenCard",component:iZ,metadata:{author:"Swarm.ing"}});var IU=require("react");var rZ=require("react");var U$=P("@swarm.ing/pieui:context:navigate",()=>rZ.createContext(void 0)),v=U$;var NU=require("react/jsx-runtime"),Z$=({data:U})=>{let{url:Z}=U,H=IU.useContext(v),$=IU.useContext(f);return IU.useEffect(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(Z))window.location.href=Z;else H?.(Z)},[Z,H]),NU.jsx(NU.Fragment,{children:$})},nZ=Z$;var tZ=F({name:"AutoRedirectCard",component:nZ,metadata:{author:"Swarm.ing"}});var g=require("react-toastify"),EU=require("react-toastify");var a=require("react");var t=require("react/jsx-runtime"),H$={bounce:g.Bounce,slide:g.Slide,zoom:g.Zoom,flip:g.Flip},$$=(U)=>{let Z={...U,type:U.alertType,transition:U.transition?H$[U.transition]:void 0,position:U.position??"bottom-right",autoClose:U.autoClose??3000,style:{backgroundColor:"black",...U.sx}};EU.toast(U.message,Z)},z$=(U)=>{console.log("Log event",U)},T$=(U)=>{if(typeof window>"u"||!window.Notification){console.warn("[IOEventsCard] Notifications API is not available");return}let Z=()=>{try{new window.Notification(U.title,{body:U.message??U.subtitle,icon:U.icon,silent:U.silent})}catch($){console.error("[IOEventsCard] Failed to show notification",$)}},H=window.Notification.permission;if(H==="granted"){Z();return}if(H==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then(($)=>{if($==="granted")Z()})},J$=({data:U})=>{let{useCentrifugeSupport:Z,useSocketioSupport:H,useMittSupport:$,centrifugeChannel:T}=U,z=a.useContext(v),J=a.useRef(z);J.current=z;let G=a.useMemo(()=>({alert:$$,log:z$,push:T$,redirect:(I)=>{if(I.to){let X=I.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(X))window.location.href=X;else J.current?.(X)}else window.location.reload()},reload:(I)=>{if(I.to){let X=I.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(X))window.location.href=X;else J.current?.(X)}else window.location.reload()}}),[]);return t.jsx(t.Fragment,{children:t.jsx(M,{card:"IOEventsCard",data:U,useCentrifugeSupport:Z,useSocketioSupport:H,useMittSupport:$,centrifugeChannel:T,methods:G,children:t.jsx(EU.ToastContainer,{})})})},aZ=J$;var eZ=F({name:"IOEventsCard",component:aZ,metadata:{author:"Swarm.ing"}});var GU=require("react");var tU=require("react/jsx-runtime"),I$=({data:U})=>{let{name:Z,key:H,value:$,useSocketioSupport:T,useCentrifugeSupport:z,useMittSupport:J,centrifugeChannel:G}=U,[I,X]=GU.useState($);return GU.useEffect(()=>{X($)},[$]),GU.useEffect(()=>{if(typeof window>"u")return;sessionStorage.setItem(H,I)},[H,I]),tU.jsx(M,{card:"SessionStorageCard",data:U,useSocketioSupport:T,useCentrifugeSupport:z,useMittSupport:J,centrifugeChannel:G,methods:{update:({value:W})=>{X(W)},remove:()=>{sessionStorage.removeItem(H),X("")}},children:tU.jsx("input",{type:"hidden",id:Z,name:Z,value:I})})},UH=I$;var ZH=F({name:"SessionStorageCard",component:UH,metadata:{author:"PieData"}});var XU=require("react");var aU=require("react/jsx-runtime"),G$=({data:U})=>{let{name:Z,key:H,value:$,useSocketioSupport:T,useCentrifugeSupport:z,useMittSupport:J,centrifugeChannel:G}=U,[I,X]=XU.useState($);return XU.useEffect(()=>{X($)},[$]),XU.useEffect(()=>{if(typeof window>"u")return;localStorage.setItem(H,I)},[H,I]),aU.jsx(M,{card:"DeviceStorageCard",data:U,useSocketioSupport:T,useCentrifugeSupport:z,useMittSupport:J,centrifugeChannel:G,methods:{update:({value:W})=>{X(W)},remove:()=>{localStorage.removeItem(H),X("")}},children:aU.jsx("input",{type:"hidden",id:Z,name:Z,value:I})})},HH=G$;var $H=F({name:"DeviceStorageCard",component:HH,metadata:{author:"PieData"}});var E=require("react");var eU=require("react/jsx-runtime"),X$=({data:U,content:Z})=>{let{useLoader:H,noReturn:$,returnType:T,useSocketioSupport:z,useCentrifugeSupport:J,useMittSupport:G,centrifugeChannel:I}=U,X=E.useContext(f),W=E.useContext(C)??N,[q,V]=E.useState(!1),[B,O]=E.useState(null),_=E.useRef(Z),K=E.useContext(m),A=E.useCallback((Q)=>{if(Q===null)V(!0);else if(V(!1),!$)_.current=Q;if(!$)O(Q)},[$]),D=E.useCallback((Q)=>{_.current=Q.content,O(Q.content)},[]),Y=E.useCallback((Q)=>{if(Q===null)V(!0);else if(V(!1),!$)for(let j of Q)K?.emit(j.name,j.data)},[$,K]);if(E.useEffect(()=>{O(Z),V(!1)},[Z]),!B&&H)return X;return eU.jsx(M,{card:"AjaxGroupCard",data:U,methods:{changeContent:D},useSocketioSupport:z,useCentrifugeSupport:J,useMittSupport:G,centrifugeChannel:I,children:eU.jsx(W,{uiConfig:B??_.current,setUiAjaxConfiguration:T==="events"?Y:A})})},zH=X$;var TH=F({name:"AjaxGroupCard",component:zH,metadata:{author:"Swarm.ing",description:"Group card with AJAX support"}});var UZ=require("react");var jU=require("react/jsx-runtime"),Y$=({data:U,content:Z,setUiAjaxConfiguration:H})=>{let{name:$,url:T,sx:z}=U,J=UZ.useContext(v),G=UZ.useContext(C)??N;return jU.jsx(M,{card:$,data:U,children:jU.jsx("div",{style:z,id:$,onClick:(X)=>{if(T)if(X.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(T))window.location.href=T;else J?.(T)},children:jU.jsx(G,{setUiAjaxConfiguration:H,uiConfig:Z})})})},JH=Y$;var IH=F({name:"BoxCard",component:JH,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var GH=require("react");var fU=require("react/jsx-runtime"),B$=({data:U,content:Z,setUiAjaxConfiguration:H})=>{let{name:$,sx:T}=U,z=GH.useContext(C)??N;return fU.jsx(M,{card:$,data:U,children:fU.jsx("div",{style:T,id:$,children:Z.map((J,G)=>{return fU.jsx(z,{uiConfig:J,setUiAjaxConfiguration:H},`children-${G}`)})})})},XH=B$;var YH=F({name:"OneOfCard",component:XH,metadata:{author:"Swarm.ing",description:"Different variants"}});var e=require("react"),UU=require("@tanstack/react-query");var SU=require("react");var kU=require("react"),CU=new Map,xU=new Map;function yU(U,Z){let H=`${U}::${Z}`,$=U?CU.get(H):void 0,[T,z]=kU.useState($??null);return kU.useEffect(()=>{if(!U)return;if(CU.has(H)){z(CU.get(H));return}let J=xU.get(H);if(!J)J=fetch(U+`api/support/${Z}`,{method:"GET"}).then((I)=>I.json()).then((I)=>{return CU.set(H,I),xU.delete(H),I}).catch((I)=>{throw xU.delete(H),I}),xU.set(H,J);let G=!1;return J.then((I)=>{if(!G)z(I)}).catch(()=>{}),()=>{G=!0}},[U,Z,H]),T}var O$=(U)=>{let Z=document.cookie?document.cookie.split(";"):[];for(let H of Z){let $=H.indexOf("=");if(($===-1?H:H.slice(0,$)).trim()===U){let z=$===-1?"":H.slice($+1).trim();try{return decodeURIComponent(z)}catch{return z}}}return null},q$={isClient(){return typeof window<"u"&&typeof document<"u"},readSid(){return typeof window>"u"?void 0:window.sid},setSid(U){if(typeof window<"u")window.sid=U},readWebStorage(U,Z){return(U==="local"?window.localStorage:window.sessionStorage).getItem(Z)},readCookie:O$,readUrlParams(U){return new URLSearchParams(window.location.search).getAll(U)},readDomInput(U){let Z=document.getElementsByName(U);if(!Z.length)return null;let H=Z[0];if(H instanceof HTMLInputElement){if(H.type==="file"&&H.files)return Array.from(H.files);return[H.value]}if(H instanceof HTMLTextAreaElement)return[H.value];return[]},submitGlobalForm(){if(typeof document>"u")return;let U=document.getElementById("piedata_global_form");U&&U.submit()}},BH=q$;var Q$={};function o(){return Q$}var OH=new Map;var qH=(U)=>{return OH.has(U)?OH.get(U):null};var QH,W$={isClient(){return!0},readSid(){return QH},setSid(U){QH=U},readWebStorage(U,Z){let H=o(),$=U==="local"?H.storage:H.sessionStorage;return $?$.getItem(Z):null},async readWebStorageAsync(U,Z){let H=o(),$=U==="local"?H.asyncStorage:H.asyncSessionStorage;if($)return $.getItem(Z);let T=U==="local"?H.storage:H.sessionStorage;return T?T.getItem(Z):null},readCookie(U){let Z=o();return Z.getCookie?Z.getCookie(U):null},readUrlParams(U){let Z=o();return Z.getRouteParams?Z.getRouteParams(U):[]},readDomInput(U){let Z=o();return Z.getInput?Z.getInput(U):qH(U)},submitGlobalForm(){o().submitForm?.()}},WH=W$;var D$=typeof navigator<"u"&&navigator.product==="ReactNative",_$=D$?WH:BH,R=_$;var YU=P("@swarm.ing/pieui:sid-state",()=>({promise:null,resolve:null}));function DH(){YU.resolve?.()}function ZZ(){if(!R.isClient())return Promise.resolve();if(R.readSid()!==void 0)return Promise.resolve();if(!YU.promise)YU.promise=new Promise((U)=>{YU.resolve=()=>{U()}});return YU.promise}var V$=({children:U})=>{let Z=SU.useContext(b),H=QU(),$=yU(H,"socketIO"),T=(z)=>{if(R.isClient())R.setSid(z.sid),DH(),console.log(`SocketIO initialized: ${R.readSid()}`)};return SU.useEffect(()=>{if(!Z)return;let z=()=>{console.log("SocketIO connected")},J=(G)=>{console.log(`SocketIO disconnected: ${G}`),Z.connect()};if($)Z.on("pieinit",T),Z.on("connect",z),Z.on("disconnect",J),Z.connect();return()=>{if($)Z.off("pieinit",T),Z.off("connect",z),Z.off("disconnect",J),Z.disconnect()}},[Z,$]),U},bU=V$;var mU=require("react");var F$=({children:U})=>{let Z=mU.useContext(S),H=QU(),$=yU(H,"centrifuge");return mU.useEffect(()=>{if(!Z)return;let T=()=>{console.log("Centrifuge connected")},z=(J)=>{console.log("Centrifuge disconnected:",J)};if($)Z.on("connected",T),Z.on("disconnected",z),Z.connect();return()=>{if($)Z.disconnect()}},[Z,$]),U},vU=F$;var FH=require("axios-date-transformer");var VH=require("react/jsx-runtime");function _H(U,Z,H){if(!Z)return H;let $=U.replace(/^\//,""),T=Z[$];if(!T)return H;return VH.jsx(MU,{uiConfig:T})}var L=require("react/jsx-runtime"),K$=({location:U,fallback:Z,piecache:H,onError:$,queryOptions:T,disableGlobalForm:z})=>{let J=zU(),G=WU(),I=p(),X=e.useMemo(()=>FH.createAxiosDateTransformer({baseURL:J||""}),[J]),W=e.useMemo(()=>c(),[]),q=e.useMemo(()=>J?VU(J):null,[J]),V=e.useMemo(()=>J?_U(J,G):null,[J,G]),{data:B,isLoading:O,error:_}=UU.useQuery({queryKey:["uiConfig",U.pathname+U.search,J],enabled:!!J,queryFn:async()=>{let A=new URLSearchParams(U.search);A.set("__pieroot","web");let D="/api/content"+U.pathname+"?"+A.toString();if(I)console.log("[PieRoot] Fetching UI configuration from:",D);let Y=await X.get(D,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(I)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:(A)=>Math.min(1000*2**A,30000),...T}),K=_H(U.pathname,H,Z);if(!J)return K??null;if(I)console.log("[PieRoot] Rendering with location:",U),console.log("[PieRoot] API_SERVER:",J),console.log("[PieRoot] CENTRIFUGE_SERVER:",G),console.log("[PieRoot] Fallback provided:",!!Z),console.log("[PieRoot] Piecache provided:",!!H);if(_){if(I)console.error("[PieRoot] Error fetching UI configuration:",_),console.error("[PieRoot] Error details:",{message:_.message,status:_.response?.status,data:_.response?.data});return $?.(_),K}if(O||!B){if(I)console.log("[PieRoot] Loading state:",{isLoading:O,hasUiConfiguration:!!B});return K}if(I)console.log("[PieRoot] UI configuration loaded successfully:",B),console.log("[PieRoot] Rendering UI with configuration");return L.jsx(m.Provider,{value:W,children:L.jsx(b.Provider,{value:q,children:L.jsx(S.Provider,{value:V,children:L.jsx(f.Provider,{value:Z??L.jsx(L.Fragment,{}),children:L.jsx(bU,{children:L.jsx(vU,{children:z?L.jsx(N,{uiConfig:B}):L.jsx("form",{id:"piedata_global_form",action:J+"api/process"+U.pathname,method:"post",encType:"multipart/form-data",children:L.jsx(N,{uiConfig:B})})})})})})})})},P$=(U)=>{let Z=e.useMemo(()=>new UU.QueryClient,[]),H=U.queryClient??Z;return L.jsx(v.Provider,{value:U.onNavigate,children:L.jsx(u.Provider,{value:U.config,children:L.jsx(h.Provider,{value:U.onError,children:L.jsx(UU.QueryClientProvider,{client:H,children:L.jsx(K$,{...U})})})})})},pU=P$;var ZU=require("react"),hU=require("@tanstack/react-query");var w=require("react/jsx-runtime"),A$=({location:U,fallback:Z,children:H,disableGlobalForm:$})=>{let T=zU(),z=WU(),J=p(),G=ZU.useMemo(()=>c(),[]),I=ZU.useMemo(()=>T?VU(T):null,[T]),X=ZU.useMemo(()=>T?_U(T,z):null,[T,z]);if(J)console.log("[PieRoot] Rendering with location:",U),console.log("[PieRoot] API_SERVER:",T),console.log("[PieRoot] CENTRIFUGE_SERVER:",z),console.log("[PieRoot] Fallback provided:",!!Z);return w.jsx(m.Provider,{value:G,children:w.jsx(b.Provider,{value:I,children:w.jsx(S.Provider,{value:X,children:w.jsx(f.Provider,{value:Z??w.jsx(w.Fragment,{}),children:w.jsx(bU,{children:w.jsx(vU,{children:$?H:w.jsx("form",{id:"piedata_global_form",action:T+"api/process"+U.pathname,method:"post",encType:"multipart/form-data",children:H})})})})})})})},M$=(U)=>{let[Z]=ZU.useState(()=>new hU.QueryClient),H=U.queryClient??Z;return w.jsx(v.Provider,{value:U.onNavigate,children:w.jsx(u.Provider,{value:U.config,children:w.jsx(h.Provider,{value:U.onError,children:w.jsx(hU.QueryClientProvider,{client:H,children:w.jsx(A$,{...U})})})})})},KH=M$;var PH=require("react");var HZ=require("react/jsx-runtime"),R$=HZ.jsx("div",{style:{padding:16,fontFamily:"system-ui, sans-serif",color:"#888"},children:"Loading card…"}),L$=({apiServer:U,pathname:Z="/",search:H="",centrifugeServer:$,fallback:T,enableRenderingLog:z=!1})=>{let J=U??(typeof process<"u"?process.env.PIE_API_SERVER:void 0)??"",G=PH.useMemo(()=>({apiServer:J,centrifugeServer:$,enableRenderingLog:z,pageProcessor:"web"}),[J,$,z]);return HZ.jsx(pU,{location:{pathname:Z,search:H},config:G,fallback:T??R$,onNavigate:(X)=>{if(typeof window<"u")window.history.pushState(null,"",X)}})},AH=L$;var MH=require("react");var w$=["localStorage","sessionStorage","cookie","url","telegram:cloud","telegram:secure"],N$=new Set(["telegram:cloud","telegram:secure"]),BU=(U)=>{if(U==="sid")return{source:"sid",key:"sid"};for(let Z of w$){let H=Z+":";if(U.startsWith(H))return{source:Z,key:U.slice(H.length)}}return{source:"dom",key:U}},$Z=(U,Z=!1)=>{let{source:H,key:$}=BU(U);if(H==="sid"){let z=R.readSid();if(!z)throw Error("SocketIO isn't initialized properly");return[z]}if(H==="localStorage"||H==="sessionStorage")try{let z=R.readWebStorage(H==="localStorage"?"local":"session",$);if(z===null){if(Z)console.warn(`No ${H} value found for key ${$}`);return[]}return[z]}catch(z){if(Z)console.warn(`Failed to read ${H} key ${$}:`,z);return[]}if(H==="cookie"){let z=R.readCookie($);if(z===null){if(Z)console.warn(`No cookie found for key ${$}`);return[]}return[z]}if(H==="url"){let z=R.readUrlParams($);if(!z.length&&Z)console.warn(`No URL query param found for key ${$}`);return z}if(N$.has(H)){if(Z)console.warn(`Source ${H} is async; use readAjaxKeyAsync (readAjaxKey returns [])`);return[]}let T=R.readDomInput($);if(T===null){if(Z)console.warn(`No input found with name ${$}`);return[]}return T},E$=(U,Z,H)=>{let $=window.Telegram?.WebApp,T=U==="telegram:cloud"?$?.CloudStorage:$?.SecureStorage,z=U==="telegram:cloud"?"Telegram CloudStorage":"Telegram SecureStorage";if(!T){if(H)console.warn(`${z} is not available`);return Promise.resolve([])}return new Promise((J)=>{try{T.getItem(Z,(G,I)=>{if(G){if(H)console.warn(`Failed to read ${z} key ${Z}:`,G);J([]);return}if(I==null||I===""){if(H)console.warn(`No ${z} value found for key ${Z}`);J([]);return}J([I])})}catch(G){if(H)console.warn(`Failed to read ${z} key ${Z}:`,G);J([])}})},zZ=async(U,Z=!1)=>{let{source:H,key:$}=BU(U);if(H==="telegram:cloud"||H==="telegram:secure")return E$(H,$,Z);if((H==="localStorage"||H==="sessionStorage")&&R.readWebStorageAsync)try{let T=await R.readWebStorageAsync(H==="localStorage"?"local":"session",$);if(T===null){if(Z)console.warn(`No ${H} value found for key ${$}`);return[]}return[T]}catch(T){if(Z)console.warn(`Failed to read ${H} key ${$}:`,T);return[]}return $Z(U,Z)},j$=(U,Z={},H=[],$,T)=>{let z=T?.renderingLogEnabled??!1,J=T?.timeout,G=T?.retryPolicy,I=G?.maxRetries??0,X=G?.baseDelay??1000,W=G?.retryOn??[502,503,504];if(z)console.log("Registering AJAX: ",$,Z,H);return async(q={})=>{if(!R.isClient()){if(z)console.warn("getAjaxSubmit called on server, skipping DOM-dependent logic");return}let V=T?.apiServer;if(!V){if(z)console.warn("AJAX skipped: apiServer is missing");return}if(!$||!U){if(z)console.warn("AJAX skipped: pathname or setUiAjaxConfiguration is missing");return}if(H.includes("sid"))await ZZ();let B=new FormData;for(let[K,A]of Object.entries({...Z,...q}))B.append(K,A);for(let K of H){let{key:A}=BU(K);for(let D of await zZ(K,z))B.append(A,D)}let O=V+"api/ajax_content"+$;U(null);let _;for(let K=0;K<=I;K++){if(K>0){let Y=X*2**(K-1);if(z)console.log(`AJAX retry ${K}/${I} after ${Y}ms`);await new Promise((Q)=>setTimeout(Q,Y))}let A=J!=null?new AbortController:null,D=A&&setTimeout(()=>A.abort(),J);try{let Y=await fetch(O,{method:"POST",body:B,signal:A?.signal});if(D)clearTimeout(D);if(!Y.ok&&W.includes(Y.status)&&K<I){_=Error(`HTTP ${Y.status}`);continue}let j=(Y.headers.get("content-type")||"").includes("application/json");if(!!Y.body?.getReader&&!j){let OU=Y.body.getReader(),fH=new TextDecoder,l="";while(!0){let{done:gU,value:CH}=await OU.read();if(gU)break;l+=fH.decode(CH,{stream:!0});let TZ=l.split(`
3
+ `);l=TZ.pop()??"";for(let xH of TZ){let uU=xH.trim();if(!uU)continue;try{let kH=JSON.parse(uU);U([kH])}catch{if(z)console.warn("Failed to parse streamed line:",uU)}}}if(l.trim())try{let gU=JSON.parse(l);U([gU])}catch{if(z)console.warn("Failed to parse final streamed line:",l)}return{}}else{let OU=await Y.json();return U(OU),OU}}catch(Y){if(D)clearTimeout(D);if(_=Y,K<I)continue;if(z)console.error("AJAX request failed:",Y);return U(null),Y}}if(z)console.error("AJAX request failed after retries:",_);return U(null),_}},RH=(U,Z={},H=[],$,T)=>{let{apiServer:z,enableRenderingLog:J}=$U(),G=JSON.stringify(Z),I=JSON.stringify(H),X=JSON.stringify(T);return MH.useMemo(()=>j$(U,Z,H,$,{apiServer:z,renderingLogEnabled:J,timeout:T?.timeout,retryPolicy:T?.retryPolicy}),[U,G,I,$,z,J,X])};var LH=require("clsx"),wH=require("tailwind-merge");function NH(...U){return wH.twMerge(LH.clsx(U))}var EH=()=>{R.submitGlobalForm()};var jH=(U,Z)=>`${U}${DU}${Z}`;
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- import{useMemo as R}from"react";import{QueryClient as rU,QueryClientProvider as aU,useQuery as tU}from"@tanstack/react-query";import HU from"mitt";import{createContext as NU,useCallback as HL,useContext as NL}from"react";var A=globalThis,J=(U,L)=>{let T=Symbol.for(U);if(!(T in A))A[T]=L();return A[T]};function b(){return J("@swarm.ing/pieui:mitt-emitter",()=>HU())}var ZU=J("@swarm.ing/pieui:context:mitt",()=>NU(null));var u=ZU;import{io as VU}from"socket.io-client";import{createContext as YU}from"react";var c=J("@swarm.ing/pieui:socket-cache",()=>new Map),o=(U)=>{let L=c.get(U);if(L)return L;let T=VU(U,{autoConnect:!1,transports:["websocket"]});return c.set(U,T),T},FU=J("@swarm.ing/pieui:context:socket",()=>YU(null)),K=FU;import{createContext as GU}from"react";import{Centrifuge as g}from"centrifuge";var h=J("@swarm.ing/pieui:centrifuge-cache",()=>new Map),l=(U,L)=>{if(!L)return null;let T=`${U}::${L}`,D=h.get(T);if(D)return D;async function z(){let $=await fetch(U+"api/centrifuge/gen_token",{credentials:"include"});if(!$.ok){if($.status===401||$.status===403)throw new g.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${$.status}`)}return(await $.json()).token}let I=new g(L,{getToken:z});return h.set(T,I),I},OU=J("@swarm.ing/pieui:context:centrifuge",()=>GU(null)),X=OU;import{useContext as KU,useEffect as XU}from"react";import{useEffect as QU,useState as _U}from"react";var B=new Map,W=new Map;function f(U,L){let T=`${U}::${L}`,D=U?B.get(T):void 0,[z,I]=_U(D??null);return QU(()=>{if(!U)return;if(B.has(T)){I(B.get(T));return}let $=W.get(T);if(!$)$=fetch(U+`api/support/${L}`,{method:"GET"}).then((H)=>H.json()).then((H)=>{return B.set(T,H),W.delete(T),H}).catch((H)=>{throw W.delete(T),H}),W.set(T,$);let Z=!1;return $.then((H)=>{if(!Z)I(H)}).catch(()=>{}),()=>{Z=!0}},[U,L,T]),z}import{createContext as qU,useContext as RU}from"react";var y=J("@swarm.ing/pieui:context:pieConfig",()=>qU(null)),w=()=>{let U=RU(y);if(!U)throw Error("usePieConfig must be used within PieConfigProvider");return U},k=()=>{let{apiServer:U}=w();return U},j=k,p=()=>{let{centrifugeServer:U}=w();return U};var Y=()=>{let{enableRenderingLog:U}=w();return U};var EU=J("@swarm.ing/pieui:sid-state",()=>({promise:null,resolve:null}));function n(){EU.resolve?.()}var BU=({children:U})=>{let L=KU(K),T=j(),D=f(T,"socketIO"),z=(I)=>{if(typeof window<"u")window.sid=I.sid,n(),console.log(`SocketIO initialized: ${window.sid}`)};return XU(()=>{if(!L)return;let I=()=>{console.log("SocketIO connected")},$=(Z)=>{console.log(`SocketIO disconnected: ${Z}`),L.connect()};if(D)L.on("pieinit",z),L.on("connect",I),L.on("disconnect",$),L.connect();return()=>{if(D)L.off("pieinit",z),L.off("connect",I),L.off("disconnect",$),L.disconnect()}},[L,D]),U},s=BU;import{useContext as WU,useEffect as fU}from"react";var jU=({children:U})=>{let L=WU(X),T=j(),D=f(T,"centrifuge");return fU(()=>{if(!L)return;let z=()=>{console.log("Centrifuge connected")},I=($)=>{console.log("Centrifuge disconnected:",$)};if(D)L.on("connected",z),L.on("disconnected",I),L.connect();return()=>{if(D)L.disconnect()}},[L,D]),U},i=jU;import{createContext as MU}from"react";import{jsx as yU,Fragment as AU}from"react/jsx-runtime";var PU=J("@swarm.ing/pieui:context:fallback",()=>MU(yU(AU,{}))),F=PU;import{createContext as wU}from"react";var kU=J("@swarm.ing/pieui:context:lazyError",()=>wU(void 0)),G=kU;var mU=J("@swarm.ing/pieui:component-registry",()=>new Map);var M=(U)=>{return mU.get(U)};import{useContext as r,memo as bU}from"react";import{Component as CU,Suspense as dU}from"react";import{jsx as xU}from"react/jsx-runtime";var SU=2,vU=400;class O extends CU{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(U){if(this.props.onError?.(U),this.state.attempt<SU){let L=vU*(this.state.attempt+1);this.timer=setTimeout(()=>{this.setState((T)=>({failed:!1,attempt:T.attempt+1}))},L)}}componentDidUpdate(U){if(U.name!==this.props.name&&this.state.attempt!==0)this.setState({failed:!1,attempt:0})}componentWillUnmount(){if(this.timer)clearTimeout(this.timer)}render(){if(this.state.failed)return this.props.fallback;return xU(dU,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}import{jsx as m}from"react/jsx-runtime";function uU({uiConfig:U,setUiAjaxConfiguration:L}){let T=r(F),D=r(G),z=Y();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:",!!L);let I=M(U.card);if(!I?.component){if(z)console.warn(`[UI] Component not found in registry: ${U.card}`),console.log("[UI] Returning fallback component");return T}if(z)console.log("[UI] Found component in registry:",{name:I.name,isLazy:I.isLazy,hasMetadata:!!I.metadata});let $=I.component,Z=m($,{data:U.data,content:U.content,setUiAjaxConfiguration:L});if(I.isLazy){if(z)console.log("[UI] Rendering lazy component with Suspense:",I.name);return m(O,{name:I.name,fallback:I.fallback?m(I.fallback,{}):T,onError:D,children:Z})}if(z)console.log("[UI] Rendering component directly:",I.name);return Z}var C=bU(uU);import{createAxiosDateTransformer as eU}from"axios-date-transformer";import{useEffect as a,useState as cU}from"react";var Q=()=>{let[U,L]=cU(null);return a(()=>{if(typeof window>"u")return;let T=window.WebApp;if(!T)return;T.ready(),L(T)},[]),U},oU=()=>{let U=Q();return[U?.initDataUnsafe,U?.initData]},gU=(U)=>{let L=Q();return a(()=>{if(!L||!U)return;return L.BackButton.onClick(U),L.BackButton.show(),()=>{L.BackButton.offClick(U),L.BackButton.hide()}},[L,U]),L?.BackButton??null},hU=()=>{return Q()?.HapticFeedback??null};import{createContext as lU}from"react";var pU=J("@swarm.ing/pieui:context:navigate",()=>lU(void 0)),t=pU;import{useContext as UU}from"react";import{createContext as nU}from"react";var sU=J("@swarm.ing/pieui:context:uiRenderer",()=>nU(null)),e=sU;import{jsx as P}from"react/jsx-runtime";function LU({uiConfig:U,setUiAjaxConfiguration:L}){let T=UU(F),D=UU(G),z=Y();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:",!!L);let I=M(U.card);if(!I?.component){if(z)console.warn(`[UILoading] Component not found in registry: ${U.card}`),console.log("[UILoading] Returning fallback component");return T}if(z)console.log("[UILoading] Found component in registry:",{name:I.name,isLazy:I.isLazy,hasMetadata:!!I.metadata,hasFallback:!!I.fallback});if(I.fallback){if(z)console.log("[UILoading] Rendering fallback for:",I.name);let H=I.fallback;return P(H,{})}if(z)console.log("[UILoading] No fallback, rendering full component:",I.name);let $=I.component,Z=P(e.Provider,{value:LU,children:P($,{data:U.data,content:U.content,setUiAjaxConfiguration:L})});if(I.isLazy)return P(O,{name:I.name,fallback:T,onError:D,children:Z});return Z}var TU=LU;import{jsx as iU}from"react/jsx-runtime";function IU(U,L,T){if(!L)return T;let D=U.replace(/^\//,""),z=L[D];if(!z)return T;return iU(TU,{uiConfig:z})}import{jsx as N,Fragment as TL}from"react/jsx-runtime";var UL=({location:U,fallback:L,piecache:T,onError:D,queryOptions:z,disableGlobalForm:I})=>{let $=k(),Z=p(),H=Y(),$U=R(()=>eU({baseURL:$}),[$]),zU=R(()=>b(),[]),JU=R(()=>$?o($):null,[$]),DU=R(()=>$?l($,Z):null,[$,Z]),E=Q(),{data:_,isLoading:d,error:V}=tU({queryKey:["uiConfig",U.pathname+U.search,E?.initData],queryFn:async()=>{let q=new URLSearchParams(U.search);if(q.set("__pieroot","max"),E?.initData)q.set("initData",E.initData);let v="/api/content"+U.pathname+"?"+q.toString();if(H)console.log("[PieRoot] Fetching UI configuration from:",v);let x=await $U.get(v,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(H)console.log("[PieRoot] Received UI configuration:",x.data);return x.data},enabled:!!E?.initData,staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(q)=>Math.min(1000*2**q,30000),...z}),S=IU(U.pathname,T,L);if(!$)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(V&&H)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?.(V),S;if(d||!_){if(H)console.log("[PieRoot] Loading state:",{isLoading:d,hasUiConfiguration:!!_});return S}if(H)console.log("[PieRoot] UI configuration loaded successfully:",_),console.log("[PieRoot] Rendering UI with configuration");return N(u.Provider,{value:zU,children:N(K.Provider,{value:JU,children:N(X.Provider,{value:DU,children:N(F.Provider,{value:L??N(TL,{}),children:N(s,{children:N(i,{children:I?N(C,{uiConfig:_}):N("form",{id:"piedata_global_form",action:$+"api/process"+U.pathname,method:"post",encType:"multipart/form-data",children:N(C,{uiConfig:_})})})})})})})})},LL=(U)=>{let L=R(()=>new rU,[]),T=U.queryClient??L;return N(t.Provider,{value:U.onNavigate,children:N(y.Provider,{value:U.config,children:N(G.Provider,{value:U.onError,children:N(aU,{client:T,children:N(UL,{...U})})})})})},IL=LL;export{Q as useMaxWebApp,oU as useMaxInitData,hU as useMaxHapticFeedback,gU as useMaxBackButton,IL as PieMaxRoot};
2
+ import{useMemo as E}from"react";import{QueryClient as VL,QueryClientProvider as YL,useQuery as DL}from"@tanstack/react-query";import FU from"mitt";import{createContext as KU,useCallback as BL,useContext as WL}from"react";var w=globalThis,H=(U,L)=>{let $=Symbol.for(U);if(!($ in w))w[$]=L();return w[$]};function g(){return H("@swarm.ing/pieui:mitt-emitter",()=>FU())}var OU=H("@swarm.ing/pieui:context:mitt",()=>KU(null));var h=OU;import{io as XU}from"socket.io-client";import{createContext as qU}from"react";var c=H("@swarm.ing/pieui:socket-cache",()=>new Map),l=(U)=>{let L=c.get(U);if(L)return L;let $=XU(U,{autoConnect:!1,transports:["websocket"]});return c.set(U,$),$},EU=H("@swarm.ing/pieui:context:socket",()=>qU(null)),W=EU;import{createContext as BU}from"react";import{Centrifuge as p}from"centrifuge";var o=H("@swarm.ing/pieui:centrifuge-cache",()=>new Map),s=(U,L)=>{if(!L)return null;let $=`${U}::${L}`,I=o.get($);if(I)return I;async function J(){let T=await fetch(U+"api/centrifuge/gen_token",{credentials:"include"});if(!T.ok){if(T.status===401||T.status===403)throw new p.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${T.status}`)}return(await T.json()).token}let z=new p(L,{getToken:J});return o.set($,z),z},WU=H("@swarm.ing/pieui:context:centrifuge",()=>BU(null)),N=WU;import{useContext as kU,useEffect as SU}from"react";import{useEffect as NU,useState as RU}from"react";var R=new Map,j=new Map;function M(U,L){let $=`${U}::${L}`,I=U?R.get($):void 0,[J,z]=RU(I??null);return NU(()=>{if(!U)return;if(R.has($)){z(R.get($));return}let T=j.get($);if(!T)T=fetch(U+`api/support/${L}`,{method:"GET"}).then((Z)=>Z.json()).then((Z)=>{return R.set($,Z),j.delete($),Z}).catch((Z)=>{throw j.delete($),Z}),j.set($,T);let Y=!1;return T.then((Z)=>{if(!Y)z(Z)}).catch(()=>{}),()=>{Y=!0}},[U,L,$]),J}import{createContext as jU,useContext as MU}from"react";var x=H("@swarm.ing/pieui:context:pieConfig",()=>jU(null)),C=()=>{let U=MU(x);if(!U)throw Error("usePieConfig must be used within PieConfigProvider");return U},k=()=>{let{apiServer:U}=C();return U},A=k,n=()=>{let{centrifugeServer:U}=C();return U};var Q=()=>{let{enableRenderingLog:U}=C();return U};var AU=(U)=>{let L=document.cookie?document.cookie.split(";"):[];for(let $ of L){let I=$.indexOf("=");if((I===-1?$:$.slice(0,I)).trim()===U){let z=I===-1?"":$.slice(I+1).trim();try{return decodeURIComponent(z)}catch{return z}}}return null},PU={isClient(){return typeof window<"u"&&typeof document<"u"},readSid(){return typeof window>"u"?void 0:window.sid},setSid(U){if(typeof window<"u")window.sid=U},readWebStorage(U,L){return(U==="local"?window.localStorage:window.sessionStorage).getItem(L)},readCookie:AU,readUrlParams(U){return new URLSearchParams(window.location.search).getAll(U)},readDomInput(U){let L=document.getElementsByName(U);if(!L.length)return null;let $=L[0];if($ instanceof HTMLInputElement){if($.type==="file"&&$.files)return Array.from($.files);return[$.value]}if($ instanceof HTMLTextAreaElement)return[$.value];return[]},submitGlobalForm(){if(typeof document>"u")return;let U=document.getElementById("piedata_global_form");U&&U.submit()}},r=PU;var fU={};function D(){return fU}var i=new Map;var a=(U)=>{return i.has(U)?i.get(U):null};var t,yU={isClient(){return!0},readSid(){return t},setSid(U){t=U},readWebStorage(U,L){let $=D(),I=U==="local"?$.storage:$.sessionStorage;return I?I.getItem(L):null},async readWebStorageAsync(U,L){let $=D(),I=U==="local"?$.asyncStorage:$.asyncSessionStorage;if(I)return I.getItem(L);let J=U==="local"?$.storage:$.sessionStorage;return J?J.getItem(L):null},readCookie(U){let L=D();return L.getCookie?L.getCookie(U):null},readUrlParams(U){let L=D();return L.getRouteParams?L.getRouteParams(U):[]},readDomInput(U){let L=D();return L.getInput?L.getInput(U):a(U)},submitGlobalForm(){D().submitForm?.()}},e=yU;var wU=typeof navigator<"u"&&navigator.product==="ReactNative",xU=wU?e:r,P=xU;var CU=H("@swarm.ing/pieui:sid-state",()=>({promise:null,resolve:null}));function UU(){CU.resolve?.()}var bU=({children:U})=>{let L=kU(W),$=A(),I=M($,"socketIO"),J=(z)=>{if(P.isClient())P.setSid(z.sid),UU(),console.log(`SocketIO initialized: ${P.readSid()}`)};return SU(()=>{if(!L)return;let z=()=>{console.log("SocketIO connected")},T=(Y)=>{console.log(`SocketIO disconnected: ${Y}`),L.connect()};if(I)L.on("pieinit",J),L.on("connect",z),L.on("disconnect",T),L.connect();return()=>{if(I)L.off("pieinit",J),L.off("connect",z),L.off("disconnect",T),L.disconnect()}},[L,I]),U},LU=bU;import{useContext as mU,useEffect as vU}from"react";var dU=({children:U})=>{let L=mU(N),$=A(),I=M($,"centrifuge");return vU(()=>{if(!L)return;let J=()=>{console.log("Centrifuge connected")},z=(T)=>{console.log("Centrifuge disconnected:",T)};if(I)L.on("connected",J),L.on("disconnected",z),L.connect();return()=>{if(I)L.disconnect()}},[L,I]),U},$U=dU;import{createContext as uU}from"react";import{jsx as cU,Fragment as hU}from"react/jsx-runtime";var gU=H("@swarm.ing/pieui:context:fallback",()=>uU(cU(hU,{}))),_=gU;import{createContext as lU}from"react";var pU=H("@swarm.ing/pieui:context:lazyError",()=>lU(void 0)),F=pU;var oU=H("@swarm.ing/pieui:component-registry",()=>new Map);var f=(U)=>{return oU.get(U)};import{useContext as zU,memo as tU}from"react";import{Component as sU,Suspense as nU}from"react";import{jsx as aU}from"react/jsx-runtime";var rU=2,iU=400;class K extends sU{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(U){if(this.props.onError?.(U),this.state.attempt<rU){let L=iU*(this.state.attempt+1);this.timer=setTimeout(()=>{this.setState(($)=>({failed:!1,attempt:$.attempt+1}))},L)}}componentDidUpdate(U){if(U.name!==this.props.name&&this.state.attempt!==0)this.setState({failed:!1,attempt:0})}componentWillUnmount(){if(this.timer)clearTimeout(this.timer)}render(){if(this.state.failed)return this.props.fallback;return aU(nU,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}import{jsx as S}from"react/jsx-runtime";function eU({uiConfig:U,setUiAjaxConfiguration:L}){let $=zU(_),I=zU(F),J=Q();if(J)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:",!!L);let z=f(U.card);if(!z?.component){if(J)console.warn(`[UI] Component not found in registry: ${U.card}`),console.log("[UI] Returning fallback component");return $}if(J)console.log("[UI] Found component in registry:",{name:z.name,isLazy:z.isLazy,hasMetadata:!!z.metadata});let T=z.component,Y=S(T,{data:U.data,content:U.content,setUiAjaxConfiguration:L});if(z.isLazy){if(J)console.log("[UI] Rendering lazy component with Suspense:",z.name);return S(K,{name:z.name,fallback:z.fallback?S(z.fallback,{}):$,onError:I,children:Y})}if(J)console.log("[UI] Rendering component directly:",z.name);return Y}var b=tU(eU);import{createAxiosDateTransformer as GL}from"axios-date-transformer";import{useEffect as IU,useState as UL}from"react";var O=()=>{let[U,L]=UL(null);return IU(()=>{if(typeof window>"u")return;let $=window.WebApp;if(!$)return;$.ready(),L($)},[]),U},LL=()=>{let U=O();return[U?.initDataUnsafe,U?.initData]},$L=(U)=>{let L=O();return IU(()=>{if(!L||!U)return;return L.BackButton.onClick(U),L.BackButton.show(),()=>{L.BackButton.offClick(U),L.BackButton.hide()}},[L,U]),L?.BackButton??null},zL=()=>{return O()?.HapticFeedback??null};import{createContext as IL}from"react";var TL=H("@swarm.ing/pieui:context:navigate",()=>IL(void 0)),TU=TL;import{useContext as HU}from"react";import{createContext as JL}from"react";var HL=H("@swarm.ing/pieui:context:uiRenderer",()=>JL(null)),JU=HL;import{jsx as y}from"react/jsx-runtime";function ZU({uiConfig:U,setUiAjaxConfiguration:L}){let $=HU(_),I=HU(F),J=Q();if(J)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:",!!L);let z=f(U.card);if(!z?.component){if(J)console.warn(`[UILoading] Component not found in registry: ${U.card}`),console.log("[UILoading] Returning fallback component");return $}if(J)console.log("[UILoading] Found component in registry:",{name:z.name,isLazy:z.isLazy,hasMetadata:!!z.metadata,hasFallback:!!z.fallback});if(z.fallback){if(J)console.log("[UILoading] Rendering fallback for:",z.name);let Z=z.fallback;return y(Z,{})}if(J)console.log("[UILoading] No fallback, rendering full component:",z.name);let T=z.component,Y=y(JU.Provider,{value:ZU,children:y(T,{data:U.data,content:U.content,setUiAjaxConfiguration:L})});if(z.isLazy)return y(K,{name:z.name,fallback:$,onError:I,children:Y});return Y}var VU=ZU;import{jsx as ZL}from"react/jsx-runtime";function YU(U,L,$){if(!L)return $;let I=U.replace(/^\//,""),J=L[I];if(!J)return $;return ZL(VU,{uiConfig:J})}import{jsx as V,Fragment as FL}from"react/jsx-runtime";var QL=({location:U,fallback:L,piecache:$,onError:I,queryOptions:J,disableGlobalForm:z})=>{let T=k(),Y=n(),Z=Q(),DU=E(()=>GL({baseURL:T}),[T]),GU=E(()=>g(),[]),QU=E(()=>T?l(T):null,[T]),_U=E(()=>T?s(T,Y):null,[T,Y]),B=O(),{data:X,isLoading:m,error:G}=DL({queryKey:["uiConfig",U.pathname+U.search,B?.initData],queryFn:async()=>{let q=new URLSearchParams(U.search);if(q.set("__pieroot","max"),B?.initData)q.set("initData",B.initData);let d="/api/content"+U.pathname+"?"+q.toString();if(Z)console.log("[PieRoot] Fetching UI configuration from:",d);let u=await DU.get(d,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(Z)console.log("[PieRoot] Received UI configuration:",u.data);return u.data},enabled:!!B?.initData,staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(q)=>Math.min(1000*2**q,30000),...J}),v=YU(U.pathname,$,L);if(!T)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(G&&Z)return console.error("[PieRoot] Error fetching UI configuration:",G),console.error("[PieRoot] Error details:",{message:G.message,status:G.response?.status,data:G.response?.data}),I?.(G),v;if(m||!X){if(Z)console.log("[PieRoot] Loading state:",{isLoading:m,hasUiConfiguration:!!X});return v}if(Z)console.log("[PieRoot] UI configuration loaded successfully:",X),console.log("[PieRoot] Rendering UI with configuration");return V(h.Provider,{value:GU,children:V(W.Provider,{value:QU,children:V(N.Provider,{value:_U,children:V(_.Provider,{value:L??V(FL,{}),children:V(LU,{children:V($U,{children:z?V(b,{uiConfig:X}):V("form",{id:"piedata_global_form",action:T+"api/process"+U.pathname,method:"post",encType:"multipart/form-data",children:V(b,{uiConfig:X})})})})})})})})},_L=(U)=>{let L=E(()=>new VL,[]),$=U.queryClient??L;return V(TU.Provider,{value:U.onNavigate,children:V(x.Provider,{value:U.config,children:V(F.Provider,{value:U.onError,children:V(YL,{client:$,children:V(QL,{...U})})})})})},KL=_L;export{O as useMaxWebApp,LL as useMaxInitData,zL as useMaxHapticFeedback,$L as useMaxBackButton,KL as PieMaxRoot};
package/dist/max/index.js CHANGED
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- var dU=Object.create;var{getPrototypeOf:SU,defineProperty:K,getOwnPropertyNames:e,getOwnPropertyDescriptor:vU}=Object,UU=Object.prototype.hasOwnProperty;var xU=(U,L,T)=>{T=U!=null?dU(SU(U)):{};let $=L||!U||!U.__esModule?K(T,"default",{value:U,enumerable:!0}):T;for(let J of e(U))if(!UU.call($,J))K($,J,{get:()=>U[J],enumerable:!0});return $},t=new WeakMap,bU=(U)=>{var L=t.get(U),T;if(L)return L;if(L=K({},"__esModule",{value:!0}),U&&typeof U==="object"||typeof U==="function")e(U).map(($)=>!UU.call(L,$)&&K(L,$,{get:()=>U[$],enumerable:!(T=vU(U,$))||T.enumerable}));return t.set(U,L),L};var uU=(U,L)=>{for(var T in L)K(U,T,{get:L[T],enumerable:!0,configurable:!0,set:($)=>L[T]=()=>$})};var IL={};uU(IL,{useMaxWebApp:()=>V,useMaxInitData:()=>qU,useMaxHapticFeedback:()=>EU,useMaxBackButton:()=>RU,PieMaxRoot:()=>yU});module.exports=bU(IL);var _=require("react"),q=require("@tanstack/react-query");var LU=xU(require("mitt")),j=require("react");var c=globalThis,D=(U,L)=>{let T=Symbol.for(U);if(!(T in c))c[T]=L();return c[T]};function TU(){return D("@swarm.ing/pieui:mitt-emitter",()=>LU.default())}var cU=D("@swarm.ing/pieui:context:mitt",()=>j.createContext(null));var IU=cU;var zU=require("socket.io-client"),JU=require("react");var $U=D("@swarm.ing/pieui:socket-cache",()=>new Map),DU=(U)=>{let L=$U.get(U);if(L)return L;let T=zU.io(U,{autoConnect:!1,transports:["websocket"]});return $U.set(U,T),T},oU=D("@swarm.ing/pieui:context:socket",()=>JU.createContext(null)),M=oU;var NU=require("react"),o=require("centrifuge");var HU=D("@swarm.ing/pieui:centrifuge-cache",()=>new Map),ZU=(U,L)=>{if(!L)return null;let T=`${U}::${L}`,$=HU.get(T);if($)return $;async function J(){let z=await fetch(U+"api/centrifuge/gen_token",{credentials:"include"});if(!z.ok){if(z.status===401||z.status===403)throw new o.Centrifuge.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${z.status}`)}return(await z.json()).token}let I=new o.Centrifuge(L,{getToken:J});return HU.set(T,I),I},gU=D("@swarm.ing/pieui:context:centrifuge",()=>NU.createContext(null)),P=gU;var d=require("react");var w=require("react"),A=new Map,y=new Map;function k(U,L){let T=`${U}::${L}`,$=U?A.get(T):void 0,[J,I]=w.useState($??null);return w.useEffect(()=>{if(!U)return;if(A.has(T)){I(A.get(T));return}let z=y.get(T);if(!z)z=fetch(U+`api/support/${L}`,{method:"GET"}).then((N)=>N.json()).then((N)=>{return A.set(T,N),y.delete(T),N}).catch((N)=>{throw y.delete(T),N}),y.set(T,z);let Z=!1;return z.then((N)=>{if(!Z)I(N)}).catch(()=>{}),()=>{Z=!0}},[U,L,T]),J}var m=require("react");var g=D("@swarm.ing/pieui:context:pieConfig",()=>m.createContext(null)),h=()=>{let U=m.useContext(g);if(!U)throw Error("usePieConfig must be used within PieConfigProvider");return U},l=()=>{let{apiServer:U}=h();return U},C=l,VU=()=>{let{centrifugeServer:U}=h();return U};var F=()=>{let{enableRenderingLog:U}=h();return U};var hU=D("@swarm.ing/pieui:sid-state",()=>({promise:null,resolve:null}));function YU(){hU.resolve?.()}var lU=({children:U})=>{let L=d.useContext(M),T=C(),$=k(T,"socketIO"),J=(I)=>{if(typeof window<"u")window.sid=I.sid,YU(),console.log(`SocketIO initialized: ${window.sid}`)};return d.useEffect(()=>{if(!L)return;let I=()=>{console.log("SocketIO connected")},z=(Z)=>{console.log(`SocketIO disconnected: ${Z}`),L.connect()};if($)L.on("pieinit",J),L.on("connect",I),L.on("disconnect",z),L.connect();return()=>{if($)L.off("pieinit",J),L.off("connect",I),L.off("disconnect",z),L.disconnect()}},[L,$]),U},FU=lU;var S=require("react");var pU=({children:U})=>{let L=S.useContext(P),T=C(),$=k(T,"centrifuge");return S.useEffect(()=>{if(!L)return;let J=()=>{console.log("Centrifuge connected")},I=(z)=>{console.log("Centrifuge disconnected:",z)};if($)L.on("connected",J),L.on("disconnected",I),L.connect();return()=>{if($)L.disconnect()}},[L,$]),U},GU=pU;var OU=require("react");var v=require("react/jsx-runtime"),nU=D("@swarm.ing/pieui:context:fallback",()=>OU.createContext(v.jsx(v.Fragment,{}))),G=nU;var QU=require("react");var sU=D("@swarm.ing/pieui:context:lazyError",()=>QU.createContext(void 0)),O=sU;var iU=D("@swarm.ing/pieui:component-registry",()=>new Map);var x=(U)=>{return iU.get(U)};var X=require("react");var b=require("react"),_U=require("react/jsx-runtime"),rU=2,aU=400;class Q extends b.Component{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(U){if(this.props.onError?.(U),this.state.attempt<rU){let L=aU*(this.state.attempt+1);this.timer=setTimeout(()=>{this.setState((T)=>({failed:!1,attempt:T.attempt+1}))},L)}}componentDidUpdate(U){if(U.name!==this.props.name&&this.state.attempt!==0)this.setState({failed:!1,attempt:0})}componentWillUnmount(){if(this.timer)clearTimeout(this.timer)}render(){if(this.state.failed)return this.props.fallback;return _U.jsx(b.Suspense,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}var u=require("react/jsx-runtime");function tU({uiConfig:U,setUiAjaxConfiguration:L}){let T=X.useContext(G),$=X.useContext(O),J=F();if(J)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:",!!L);let I=x(U.card);if(!I?.component){if(J)console.warn(`[UI] Component not found in registry: ${U.card}`),console.log("[UI] Returning fallback component");return T}if(J)console.log("[UI] Found component in registry:",{name:I.name,isLazy:I.isLazy,hasMetadata:!!I.metadata});let z=I.component,Z=u.jsx(z,{data:U.data,content:U.content,setUiAjaxConfiguration:L});if(I.isLazy){if(J)console.log("[UI] Rendering lazy component with Suspense:",I.name);return u.jsx(Q,{name:I.name,fallback:I.fallback?u.jsx(I.fallback,{}):T,onError:$,children:Z})}if(J)console.log("[UI] Rendering component directly:",I.name);return Z}var p=X.memo(tU);var AU=require("axios-date-transformer");var B=require("react"),V=()=>{let[U,L]=B.useState(null);return B.useEffect(()=>{if(typeof window>"u")return;let T=window.WebApp;if(!T)return;T.ready(),L(T)},[]),U},qU=()=>{let U=V();return[U?.initDataUnsafe,U?.initData]},RU=(U)=>{let L=V();return B.useEffect(()=>{if(!L||!U)return;return L.BackButton.onClick(U),L.BackButton.show(),()=>{L.BackButton.offClick(U),L.BackButton.hide()}},[L,U]),L?.BackButton??null},EU=()=>{return V()?.HapticFeedback??null};var KU=require("react");var eU=D("@swarm.ing/pieui:context:navigate",()=>KU.createContext(void 0)),XU=eU;var n=require("react");var BU=require("react");var UL=D("@swarm.ing/pieui:context:uiRenderer",()=>BU.createContext(null)),WU=UL;var W=require("react/jsx-runtime");function fU({uiConfig:U,setUiAjaxConfiguration:L}){let T=n.useContext(G),$=n.useContext(O),J=F();if(J)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:",!!L);let I=x(U.card);if(!I?.component){if(J)console.warn(`[UILoading] Component not found in registry: ${U.card}`),console.log("[UILoading] Returning fallback component");return T}if(J)console.log("[UILoading] Found component in registry:",{name:I.name,isLazy:I.isLazy,hasMetadata:!!I.metadata,hasFallback:!!I.fallback});if(I.fallback){if(J)console.log("[UILoading] Rendering fallback for:",I.name);let N=I.fallback;return W.jsx(N,{})}if(J)console.log("[UILoading] No fallback, rendering full component:",I.name);let z=I.component,Z=W.jsx(WU.Provider,{value:fU,children:W.jsx(z,{data:U.data,content:U.content,setUiAjaxConfiguration:L})});if(I.isLazy)return W.jsx(Q,{name:I.name,fallback:T,onError:$,children:Z});return Z}var jU=fU;var PU=require("react/jsx-runtime");function MU(U,L,T){if(!L)return T;let $=U.replace(/^\//,""),J=L[$];if(!J)return T;return PU.jsx(jU,{uiConfig:J})}var H=require("react/jsx-runtime"),LL=({location:U,fallback:L,piecache:T,onError:$,queryOptions:J,disableGlobalForm:I})=>{let z=l(),Z=VU(),N=F(),wU=_.useMemo(()=>AU.createAxiosDateTransformer({baseURL:z}),[z]),kU=_.useMemo(()=>TU(),[]),mU=_.useMemo(()=>z?DU(z):null,[z]),CU=_.useMemo(()=>z?ZU(z,Z):null,[z,Z]),f=V(),{data:R,isLoading:s,error:Y}=q.useQuery({queryKey:["uiConfig",U.pathname+U.search,f?.initData],queryFn:async()=>{let E=new URLSearchParams(U.search);if(E.set("__pieroot","max"),f?.initData)E.set("initData",f.initData);let r="/api/content"+U.pathname+"?"+E.toString();if(N)console.log("[PieRoot] Fetching UI configuration from:",r);let a=await wU.get(r,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(N)console.log("[PieRoot] Received UI configuration:",a.data);return a.data},enabled:!!f?.initData,staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(E)=>Math.min(1000*2**E,30000),...J}),i=MU(U.pathname,T,L);if(!z)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(Y&&N)return console.error("[PieRoot] Error fetching UI configuration:",Y),console.error("[PieRoot] Error details:",{message:Y.message,status:Y.response?.status,data:Y.response?.data}),$?.(Y),i;if(s||!R){if(N)console.log("[PieRoot] Loading state:",{isLoading:s,hasUiConfiguration:!!R});return i}if(N)console.log("[PieRoot] UI configuration loaded successfully:",R),console.log("[PieRoot] Rendering UI with configuration");return H.jsx(IU.Provider,{value:kU,children:H.jsx(M.Provider,{value:mU,children:H.jsx(P.Provider,{value:CU,children:H.jsx(G.Provider,{value:L??H.jsx(H.Fragment,{}),children:H.jsx(FU,{children:H.jsx(GU,{children:I?H.jsx(p,{uiConfig:R}):H.jsx("form",{id:"piedata_global_form",action:z+"api/process"+U.pathname,method:"post",encType:"multipart/form-data",children:H.jsx(p,{uiConfig:R})})})})})})})})},TL=(U)=>{let L=_.useMemo(()=>new q.QueryClient,[]),T=U.queryClient??L;return H.jsx(XU.Provider,{value:U.onNavigate,children:H.jsx(g.Provider,{value:U.config,children:H.jsx(O.Provider,{value:U.onError,children:H.jsx(q.QueryClientProvider,{client:T,children:H.jsx(LL,{...U})})})})})},yU=TL;
2
+ var hU=Object.create;var{getPrototypeOf:cU,defineProperty:W,getOwnPropertyNames:LU,getOwnPropertyDescriptor:lU}=Object,$U=Object.prototype.hasOwnProperty;var pU=(U,L,$)=>{$=U!=null?hU(cU(U)):{};let z=L||!U||!U.__esModule?W($,"default",{value:U,enumerable:!0}):$;for(let T of LU(U))if(!$U.call(z,T))W(z,T,{get:()=>U[T],enumerable:!0});return z},UU=new WeakMap,oU=(U)=>{var L=UU.get(U),$;if(L)return L;if(L=W({},"__esModule",{value:!0}),U&&typeof U==="object"||typeof U==="function")LU(U).map((z)=>!$U.call(L,z)&&W(L,z,{get:()=>U[z],enumerable:!($=lU(U,z))||$.enumerable}));return UU.set(U,L),L};var sU=(U,L)=>{for(var $ in L)W(U,$,{get:L[$],enumerable:!0,configurable:!0,set:(z)=>L[$]=()=>z})};var KL={};sU(KL,{useMaxWebApp:()=>G,useMaxInitData:()=>jU,useMaxHapticFeedback:()=>AU,useMaxBackButton:()=>MU,PieMaxRoot:()=>mU});module.exports=oU(KL);var X=require("react"),q=require("@tanstack/react-query");var zU=pU(require("mitt")),A=require("react");var c=globalThis,H=(U,L)=>{let $=Symbol.for(U);if(!($ in c))c[$]=L();return c[$]};function IU(){return H("@swarm.ing/pieui:mitt-emitter",()=>zU.default())}var nU=H("@swarm.ing/pieui:context:mitt",()=>A.createContext(null));var TU=nU;var HU=require("socket.io-client"),ZU=require("react");var JU=H("@swarm.ing/pieui:socket-cache",()=>new Map),VU=(U)=>{let L=JU.get(U);if(L)return L;let $=HU.io(U,{autoConnect:!1,transports:["websocket"]});return JU.set(U,$),$},rU=H("@swarm.ing/pieui:context:socket",()=>ZU.createContext(null)),P=rU;var DU=require("react"),l=require("centrifuge");var YU=H("@swarm.ing/pieui:centrifuge-cache",()=>new Map),GU=(U,L)=>{if(!L)return null;let $=`${U}::${L}`,z=YU.get($);if(z)return z;async function T(){let J=await fetch(U+"api/centrifuge/gen_token",{credentials:"include"});if(!J.ok){if(J.status===401||J.status===403)throw new l.Centrifuge.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${J.status}`)}return(await J.json()).token}let I=new l.Centrifuge(L,{getToken:T});return YU.set($,I),I},iU=H("@swarm.ing/pieui:context:centrifuge",()=>DU.createContext(null)),f=iU;var m=require("react");var x=require("react"),y=new Map,w=new Map;function C(U,L){let $=`${U}::${L}`,z=U?y.get($):void 0,[T,I]=x.useState(z??null);return x.useEffect(()=>{if(!U)return;if(y.has($)){I(y.get($));return}let J=w.get($);if(!J)J=fetch(U+`api/support/${L}`,{method:"GET"}).then((V)=>V.json()).then((V)=>{return y.set($,V),w.delete($),V}).catch((V)=>{throw w.delete($),V}),w.set($,J);let Y=!1;return J.then((V)=>{if(!Y)I(V)}).catch(()=>{}),()=>{Y=!0}},[U,L,$]),T}var k=require("react");var p=H("@swarm.ing/pieui:context:pieConfig",()=>k.createContext(null)),o=()=>{let U=k.useContext(p);if(!U)throw Error("usePieConfig must be used within PieConfigProvider");return U},s=()=>{let{apiServer:U}=o();return U},S=s,QU=()=>{let{centrifugeServer:U}=o();return U};var _=()=>{let{enableRenderingLog:U}=o();return U};var aU=(U)=>{let L=document.cookie?document.cookie.split(";"):[];for(let $ of L){let z=$.indexOf("=");if((z===-1?$:$.slice(0,z)).trim()===U){let I=z===-1?"":$.slice(z+1).trim();try{return decodeURIComponent(I)}catch{return I}}}return null},tU={isClient(){return typeof window<"u"&&typeof document<"u"},readSid(){return typeof window>"u"?void 0:window.sid},setSid(U){if(typeof window<"u")window.sid=U},readWebStorage(U,L){return(U==="local"?window.localStorage:window.sessionStorage).getItem(L)},readCookie:aU,readUrlParams(U){return new URLSearchParams(window.location.search).getAll(U)},readDomInput(U){let L=document.getElementsByName(U);if(!L.length)return null;let $=L[0];if($ instanceof HTMLInputElement){if($.type==="file"&&$.files)return Array.from($.files);return[$.value]}if($ instanceof HTMLTextAreaElement)return[$.value];return[]},submitGlobalForm(){if(typeof document>"u")return;let U=document.getElementById("piedata_global_form");U&&U.submit()}},_U=tU;var eU={};function D(){return eU}var FU=new Map;var KU=(U)=>{return FU.has(U)?FU.get(U):null};var OU,UL={isClient(){return!0},readSid(){return OU},setSid(U){OU=U},readWebStorage(U,L){let $=D(),z=U==="local"?$.storage:$.sessionStorage;return z?z.getItem(L):null},async readWebStorageAsync(U,L){let $=D(),z=U==="local"?$.asyncStorage:$.asyncSessionStorage;if(z)return z.getItem(L);let T=U==="local"?$.storage:$.sessionStorage;return T?T.getItem(L):null},readCookie(U){let L=D();return L.getCookie?L.getCookie(U):null},readUrlParams(U){let L=D();return L.getRouteParams?L.getRouteParams(U):[]},readDomInput(U){let L=D();return L.getInput?L.getInput(U):KU(U)},submitGlobalForm(){D().submitForm?.()}},XU=UL;var LL=typeof navigator<"u"&&navigator.product==="ReactNative",$L=LL?XU:_U,b=$L;var zL=H("@swarm.ing/pieui:sid-state",()=>({promise:null,resolve:null}));function qU(){zL.resolve?.()}var IL=({children:U})=>{let L=m.useContext(P),$=S(),z=C($,"socketIO"),T=(I)=>{if(b.isClient())b.setSid(I.sid),qU(),console.log(`SocketIO initialized: ${b.readSid()}`)};return m.useEffect(()=>{if(!L)return;let I=()=>{console.log("SocketIO connected")},J=(Y)=>{console.log(`SocketIO disconnected: ${Y}`),L.connect()};if(z)L.on("pieinit",T),L.on("connect",I),L.on("disconnect",J),L.connect();return()=>{if(z)L.off("pieinit",T),L.off("connect",I),L.off("disconnect",J),L.disconnect()}},[L,z]),U},EU=IL;var v=require("react");var TL=({children:U})=>{let L=v.useContext(f),$=S(),z=C($,"centrifuge");return v.useEffect(()=>{if(!L)return;let T=()=>{console.log("Centrifuge connected")},I=(J)=>{console.log("Centrifuge disconnected:",J)};if(z)L.on("connected",T),L.on("disconnected",I),L.connect();return()=>{if(z)L.disconnect()}},[L,z]),U},BU=TL;var WU=require("react");var d=require("react/jsx-runtime"),JL=H("@swarm.ing/pieui:context:fallback",()=>WU.createContext(d.jsx(d.Fragment,{}))),F=JL;var NU=require("react");var HL=H("@swarm.ing/pieui:context:lazyError",()=>NU.createContext(void 0)),K=HL;var ZL=H("@swarm.ing/pieui:component-registry",()=>new Map);var u=(U)=>{return ZL.get(U)};var N=require("react");var g=require("react"),RU=require("react/jsx-runtime"),VL=2,YL=400;class O extends g.Component{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(U){if(this.props.onError?.(U),this.state.attempt<VL){let L=YL*(this.state.attempt+1);this.timer=setTimeout(()=>{this.setState(($)=>({failed:!1,attempt:$.attempt+1}))},L)}}componentDidUpdate(U){if(U.name!==this.props.name&&this.state.attempt!==0)this.setState({failed:!1,attempt:0})}componentWillUnmount(){if(this.timer)clearTimeout(this.timer)}render(){if(this.state.failed)return this.props.fallback;return RU.jsx(g.Suspense,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}var h=require("react/jsx-runtime");function DL({uiConfig:U,setUiAjaxConfiguration:L}){let $=N.useContext(F),z=N.useContext(K),T=_();if(T)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:",!!L);let I=u(U.card);if(!I?.component){if(T)console.warn(`[UI] Component not found in registry: ${U.card}`),console.log("[UI] Returning fallback component");return $}if(T)console.log("[UI] Found component in registry:",{name:I.name,isLazy:I.isLazy,hasMetadata:!!I.metadata});let J=I.component,Y=h.jsx(J,{data:U.data,content:U.content,setUiAjaxConfiguration:L});if(I.isLazy){if(T)console.log("[UI] Rendering lazy component with Suspense:",I.name);return h.jsx(O,{name:I.name,fallback:I.fallback?h.jsx(I.fallback,{}):$,onError:z,children:Y})}if(T)console.log("[UI] Rendering component directly:",I.name);return Y}var n=N.memo(DL);var bU=require("axios-date-transformer");var R=require("react"),G=()=>{let[U,L]=R.useState(null);return R.useEffect(()=>{if(typeof window>"u")return;let $=window.WebApp;if(!$)return;$.ready(),L($)},[]),U},jU=()=>{let U=G();return[U?.initDataUnsafe,U?.initData]},MU=(U)=>{let L=G();return R.useEffect(()=>{if(!L||!U)return;return L.BackButton.onClick(U),L.BackButton.show(),()=>{L.BackButton.offClick(U),L.BackButton.hide()}},[L,U]),L?.BackButton??null},AU=()=>{return G()?.HapticFeedback??null};var PU=require("react");var GL=H("@swarm.ing/pieui:context:navigate",()=>PU.createContext(void 0)),fU=GL;var r=require("react");var yU=require("react");var QL=H("@swarm.ing/pieui:context:uiRenderer",()=>yU.createContext(null)),wU=QL;var j=require("react/jsx-runtime");function xU({uiConfig:U,setUiAjaxConfiguration:L}){let $=r.useContext(F),z=r.useContext(K),T=_();if(T)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:",!!L);let I=u(U.card);if(!I?.component){if(T)console.warn(`[UILoading] Component not found in registry: ${U.card}`),console.log("[UILoading] Returning fallback component");return $}if(T)console.log("[UILoading] Found component in registry:",{name:I.name,isLazy:I.isLazy,hasMetadata:!!I.metadata,hasFallback:!!I.fallback});if(I.fallback){if(T)console.log("[UILoading] Rendering fallback for:",I.name);let V=I.fallback;return j.jsx(V,{})}if(T)console.log("[UILoading] No fallback, rendering full component:",I.name);let J=I.component,Y=j.jsx(wU.Provider,{value:xU,children:j.jsx(J,{data:U.data,content:U.content,setUiAjaxConfiguration:L})});if(I.isLazy)return j.jsx(O,{name:I.name,fallback:$,onError:z,children:Y});return Y}var CU=xU;var SU=require("react/jsx-runtime");function kU(U,L,$){if(!L)return $;let z=U.replace(/^\//,""),T=L[z];if(!T)return $;return SU.jsx(CU,{uiConfig:T})}var Z=require("react/jsx-runtime"),_L=({location:U,fallback:L,piecache:$,onError:z,queryOptions:T,disableGlobalForm:I})=>{let J=s(),Y=QU(),V=_(),vU=X.useMemo(()=>bU.createAxiosDateTransformer({baseURL:J}),[J]),dU=X.useMemo(()=>IU(),[]),uU=X.useMemo(()=>J?VU(J):null,[J]),gU=X.useMemo(()=>J?GU(J,Y):null,[J,Y]),M=G(),{data:E,isLoading:i,error:Q}=q.useQuery({queryKey:["uiConfig",U.pathname+U.search,M?.initData],queryFn:async()=>{let B=new URLSearchParams(U.search);if(B.set("__pieroot","max"),M?.initData)B.set("initData",M.initData);let t="/api/content"+U.pathname+"?"+B.toString();if(V)console.log("[PieRoot] Fetching UI configuration from:",t);let e=await vU.get(t,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(V)console.log("[PieRoot] Received UI configuration:",e.data);return e.data},enabled:!!M?.initData,staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(B)=>Math.min(1000*2**B,30000),...T}),a=kU(U.pathname,$,L);if(!J)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(Q&&V)return console.error("[PieRoot] Error fetching UI configuration:",Q),console.error("[PieRoot] Error details:",{message:Q.message,status:Q.response?.status,data:Q.response?.data}),z?.(Q),a;if(i||!E){if(V)console.log("[PieRoot] Loading state:",{isLoading:i,hasUiConfiguration:!!E});return a}if(V)console.log("[PieRoot] UI configuration loaded successfully:",E),console.log("[PieRoot] Rendering UI with configuration");return Z.jsx(TU.Provider,{value:dU,children:Z.jsx(P.Provider,{value:uU,children:Z.jsx(f.Provider,{value:gU,children:Z.jsx(F.Provider,{value:L??Z.jsx(Z.Fragment,{}),children:Z.jsx(EU,{children:Z.jsx(BU,{children:I?Z.jsx(n,{uiConfig:E}):Z.jsx("form",{id:"piedata_global_form",action:J+"api/process"+U.pathname,method:"post",encType:"multipart/form-data",children:Z.jsx(n,{uiConfig:E})})})})})})})})},FL=(U)=>{let L=X.useMemo(()=>new q.QueryClient,[]),$=U.queryClient??L;return Z.jsx(fU.Provider,{value:U.onNavigate,children:Z.jsx(p.Provider,{value:U.config,children:Z.jsx(K.Provider,{value:U.onError,children:Z.jsx(q.QueryClientProvider,{client:$,children:Z.jsx(_L,{...U})})})})})},mU=FL;
@@ -0,0 +1,15 @@
1
+ import { PieBaseRootProps } from '../components/PieBaseRoot/types';
2
+ /**
3
+ * React Native root for PieUI. Behaves exactly like {@link PieBaseRoot} but
4
+ * never renders the implicit `<form id="piedata_global_form">` wrapper — there
5
+ * is no HTML form on native, so the global "submit" is handled by the platform
6
+ * `ClientSources` implementation instead (wire it via
7
+ * {@link configureNativeClientSources}).
8
+ *
9
+ * The host registers its own React Native leaf components with
10
+ * `registerPieComponent` and renders the server-driven tree through `UI` /
11
+ * `PieCard` inside this root.
12
+ */
13
+ declare const PieNativeRoot: (props: PieBaseRootProps) => import("react").JSX.Element;
14
+ export default PieNativeRoot;
15
+ //# sourceMappingURL=PieNativeRoot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PieNativeRoot.d.ts","sourceRoot":"","sources":["../../src/native/PieNativeRoot.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAElE;;;;;;;;;;GAUG;AACH,QAAA,MAAM,aAAa,GAAI,OAAO,gBAAgB,gCAE7C,CAAA;AAED,eAAe,aAAa,CAAA"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * React Native variant of `AutoRedirectCard`. On mount routes to `data.url` via
3
+ * `Linking` (external) or `NavigateContext` (internal), rendering the fallback
4
+ * in the meantime.
5
+ */
6
+ declare const AutoRedirectCard: ({ data }: {
7
+ data: any;
8
+ }) => import("react").JSX.Element;
9
+ export default AutoRedirectCard;
10
+ //# sourceMappingURL=AutoRedirectCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AutoRedirectCard.d.ts","sourceRoot":"","sources":["../../../src/native/components/AutoRedirectCard.tsx"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,QAAA,MAAM,gBAAgB,GAAI,UAAU;IAAE,IAAI,EAAE,GAAG,CAAA;CAAE,gCAYhD,CAAA;AAED,eAAe,gBAAgB,CAAA"}
@@ -0,0 +1,13 @@
1
+ import { SetUiAjaxConfigurationType, UIConfigType } from '../../types';
2
+ /**
3
+ * React Native variant of `BoxCard`. Renders its child config inside a `View`
4
+ * (a `Pressable` when `data.url` is set), routing external URLs through
5
+ * `Linking` and internal ones through `NavigateContext`.
6
+ */
7
+ declare const BoxCard: ({ data, content, setUiAjaxConfiguration, }: {
8
+ data: any;
9
+ content: UIConfigType;
10
+ setUiAjaxConfiguration?: SetUiAjaxConfigurationType;
11
+ }) => import("react").JSX.Element;
12
+ export default BoxCard;
13
+ //# sourceMappingURL=BoxCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BoxCard.d.ts","sourceRoot":"","sources":["../../../src/native/components/BoxCard.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,0BAA0B,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAStE;;;;GAIG;AACH,QAAA,MAAM,OAAO,GAAI,4CAId;IACC,IAAI,EAAE,GAAG,CAAA;IACT,OAAO,EAAE,YAAY,CAAA;IACrB,sBAAsB,CAAC,EAAE,0BAA0B,CAAA;CACtD,gCA6BA,CAAA;AAED,eAAe,OAAO,CAAA"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * React Native variant of `DeviceStorageCard`. Persists `data.value` to the
3
+ * host's sync storage adapter (`configureNativeClientSources({ storage })`,
4
+ * e.g. MMKV) under `data.key`, and mirrors it into the native form store under
5
+ * `data.name` so it can participate in Ajax submissions by name. Renders
6
+ * nothing visible.
7
+ */
8
+ declare const DeviceStorageCard: ({ data }: {
9
+ data: any;
10
+ }) => import("react").JSX.Element;
11
+ export default DeviceStorageCard;
12
+ //# sourceMappingURL=DeviceStorageCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeviceStorageCard.d.ts","sourceRoot":"","sources":["../../../src/native/components/DeviceStorageCard.tsx"],"names":[],"mappings":"AAKA;;;;;;GAMG;AACH,QAAA,MAAM,iBAAiB,GAAI,UAAU;IAAE,IAAI,EAAE,GAAG,CAAA;CAAE,gCAyCjD,CAAA;AAED,eAAe,iBAAiB,CAAA"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * React Native variant of `HTMLEmbedCard`. React Native cannot render arbitrary
3
+ * HTML, so this shows the markup as stripped plain text inside a `<Text>` and
4
+ * supports the `update` event. The web variant's WebRTC/AI streaming is
5
+ * browser-only and intentionally omitted here.
6
+ */
7
+ declare const HTMLEmbedCard: ({ data }: {
8
+ data: any;
9
+ }) => import("react").JSX.Element;
10
+ export default HTMLEmbedCard;
11
+ //# sourceMappingURL=HTMLEmbedCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HTMLEmbedCard.d.ts","sourceRoot":"","sources":["../../../src/native/components/HTMLEmbedCard.tsx"],"names":[],"mappings":"AAYA;;;;;GAKG;AACH,QAAA,MAAM,aAAa,GAAI,UAAU;IAAE,IAAI,EAAE,GAAG,CAAA;CAAE,gCA6B7C,CAAA;AAED,eAAe,aAAa,CAAA"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * React Native variant of `HiddenCard`. There is no hidden `<input>` on native,
3
+ * so the value is published to the native form store under `data.name` — a
4
+ * plain dep name then resolves to it exactly as it would from a hidden input on
5
+ * web. Renders nothing visible.
6
+ */
7
+ declare const HiddenCard: ({ data }: {
8
+ data: any;
9
+ }) => import("react").JSX.Element;
10
+ export default HiddenCard;
11
+ //# sourceMappingURL=HiddenCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HiddenCard.d.ts","sourceRoot":"","sources":["../../../src/native/components/HiddenCard.tsx"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,QAAA,MAAM,UAAU,GAAI,UAAU;IAAE,IAAI,EAAE,GAAG,CAAA;CAAE,gCAmC1C,CAAA;AAED,eAAe,UAAU,CAAA"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * React Native variant of `IOEventsCard`. Maps server-driven IO events onto
3
+ * native primitives: `alert` → `Alert.alert`, `redirect`/`reload` → `Linking`
4
+ * (external) or `NavigateContext` (internal), `log` → console. There is no DOM
5
+ * toast container, and web push notifications are not available; `push` warns.
6
+ */
7
+ declare const IOEventsCard: ({ data }: {
8
+ data: any;
9
+ }) => import("react").JSX.Element;
10
+ export default IOEventsCard;
11
+ //# sourceMappingURL=IOEventsCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IOEventsCard.d.ts","sourceRoot":"","sources":["../../../src/native/components/IOEventsCard.tsx"],"names":[],"mappings":"AAQA;;;;;GAKG;AACH,QAAA,MAAM,YAAY,GAAI,UAAU;IAAE,IAAI,EAAE,GAAG,CAAA;CAAE,gCA0C5C,CAAA;AAED,eAAe,YAAY,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { SetUiAjaxConfigurationType, UIConfigType } from '../../types';
2
+ /**
3
+ * React Native variant of `OneOfCard`. Renders its child configs inside a
4
+ * `View` (replacing the web `<div>`).
5
+ */
6
+ declare const OneOfCard: ({ data, content, setUiAjaxConfiguration, }: {
7
+ data: any;
8
+ content: UIConfigType[];
9
+ setUiAjaxConfiguration?: SetUiAjaxConfigurationType;
10
+ }) => import("react").JSX.Element;
11
+ export default OneOfCard;
12
+ //# sourceMappingURL=OneOfCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OneOfCard.d.ts","sourceRoot":"","sources":["../../../src/native/components/OneOfCard.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,0BAA0B,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAKtE;;;GAGG;AACH,QAAA,MAAM,SAAS,GAAI,4CAIhB;IACC,IAAI,EAAE,GAAG,CAAA;IACT,OAAO,EAAE,YAAY,EAAE,CAAA;IACvB,sBAAsB,CAAC,EAAE,0BAA0B,CAAA;CACtD,gCAgBA,CAAA;AAED,eAAe,SAAS,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { SetUiAjaxConfigurationType, UIConfigType } from '../../types';
2
+ /**
3
+ * React Native variant of `SequenceCard`. Renders its array of child configs in
4
+ * order inside a `View` (replacing the web `<div>`).
5
+ */
6
+ declare const SequenceCard: ({ data, content, setUiAjaxConfiguration, }: {
7
+ data: any;
8
+ content: UIConfigType[];
9
+ setUiAjaxConfiguration?: SetUiAjaxConfigurationType;
10
+ }) => import("react").JSX.Element;
11
+ export default SequenceCard;
12
+ //# sourceMappingURL=SequenceCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SequenceCard.d.ts","sourceRoot":"","sources":["../../../src/native/components/SequenceCard.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,0BAA0B,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAKtE;;;GAGG;AACH,QAAA,MAAM,YAAY,GAAI,4CAInB;IACC,IAAI,EAAE,GAAG,CAAA;IACT,OAAO,EAAE,YAAY,EAAE,CAAA;IACvB,sBAAsB,CAAC,EAAE,0BAA0B,CAAA;CACtD,gCAgBA,CAAA;AAED,eAAe,YAAY,CAAA"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * React Native variant of `SessionStorageCard`. Like the device variant but
3
+ * persists to the host's sync `sessionStorage` adapter. Renders nothing visible.
4
+ */
5
+ declare const SessionStorageCard: ({ data }: {
6
+ data: any;
7
+ }) => import("react").JSX.Element;
8
+ export default SessionStorageCard;
9
+ //# sourceMappingURL=SessionStorageCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionStorageCard.d.ts","sourceRoot":"","sources":["../../../src/native/components/SessionStorageCard.tsx"],"names":[],"mappings":"AAKA;;;GAGG;AACH,QAAA,MAAM,kBAAkB,GAAI,UAAU;IAAE,IAAI,EAAE,GAAG,CAAA;CAAE,gCAyClD,CAAA;AAED,eAAe,kBAAkB,CAAA"}
@@ -0,0 +1,13 @@
1
+ import BoxCard from './BoxCard';
2
+ import SequenceCard from './SequenceCard';
3
+ import OneOfCard from './OneOfCard';
4
+ import HiddenCard from './HiddenCard';
5
+ import DeviceStorageCard from './DeviceStorageCard';
6
+ import SessionStorageCard from './SessionStorageCard';
7
+ import IOEventsCard from './IOEventsCard';
8
+ import HTMLEmbedCard from './HTMLEmbedCard';
9
+ import AutoRedirectCard from './AutoRedirectCard';
10
+ import UnionCard from '../../components/Containers/UnionCard/ui/UnionCard';
11
+ import AjaxGroupCard from '../../components/Containers/AjaxGroupCard/ui/AjaxGroupCard';
12
+ export { BoxCard, SequenceCard, OneOfCard, HiddenCard, DeviceStorageCard, SessionStorageCard, IOEventsCard, HTMLEmbedCard, AutoRedirectCard, UnionCard, AjaxGroupCard, };
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/native/components/index.ts"],"names":[],"mappings":"AAeA,OAAO,OAAO,MAAM,WAAW,CAAA;AAC/B,OAAO,YAAY,MAAM,gBAAgB,CAAA;AACzC,OAAO,SAAS,MAAM,aAAa,CAAA;AACnC,OAAO,UAAU,MAAM,cAAc,CAAA;AACrC,OAAO,iBAAiB,MAAM,qBAAqB,CAAA;AACnD,OAAO,kBAAkB,MAAM,sBAAsB,CAAA;AACrD,OAAO,YAAY,MAAM,gBAAgB,CAAA;AACzC,OAAO,aAAa,MAAM,iBAAiB,CAAA;AAC3C,OAAO,gBAAgB,MAAM,oBAAoB,CAAA;AAMjD,OAAO,SAAS,MAAM,oDAAoD,CAAA;AAC1E,OAAO,aAAa,MAAM,4DAA4D,CAAA;AAoBtF,OAAO,EACH,OAAO,EACP,YAAY,EACZ,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,aAAa,GAChB,CAAA"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * React Native entry for PieUI (`@swarm.ing/pieui/native`).
3
+ *
4
+ * Exposes the platform-agnostic core (registry, dynamic UI renderer, PieCard,
5
+ * real-time contexts, Ajax helpers) plus native-specific wiring. It deliberately
6
+ * does NOT export the DOM container/leaf cards (BoxCard, HTMLEmbedCard,
7
+ * IOEventsCard, …) — those render HTML host elements or pull browser-only
8
+ * libraries. On native the host registers its own React Native leaf components
9
+ * with `registerPieComponent` and renders them through `UI` / `PieCard`.
10
+ *
11
+ * Bundlers that understand the `.native` extension (Metro) resolve the platform
12
+ * layer to `clientSources.native.ts` automatically. Wire the host's storage /
13
+ * route / form sources once at startup via `configureNativeClientSources`.
14
+ */
15
+ import './components';
16
+ export { default as PieNativeRoot } from './PieNativeRoot';
17
+ export { default as PieBaseRoot } from '../components/PieBaseRoot';
18
+ export { default as PieRoot } from '../components/PieRoot';
19
+ export { configureNativeClientSources, getNativeClientConfig, resetNativeClientSources, type NativeClientConfig, type NativeStorageAdapter, type NativeAsyncStorageAdapter, } from '../platform/nativeConfig';
20
+ export { setNativeField, clearNativeField, readNativeField, } from '../platform/nativeFormStore';
21
+ export { BoxCard, SequenceCard, OneOfCard, HiddenCard, DeviceStorageCard, SessionStorageCard, IOEventsCard, HTMLEmbedCard, AutoRedirectCard, UnionCard, AjaxGroupCard, } from './components';
22
+ export { default as UI } from '../components/UI';
23
+ export { default as UILoading } from '../components/UILoading';
24
+ export { default as UIRendererContext, type UIRendererProps, } from '../util/uiRenderer';
25
+ export { default as PieCard } from '../components/PieCard';
26
+ export { registerPieComponent, getAllRegisteredComponents, getRegistrySize, registry, hasComponent, getRegistryEntry, getComponentMeta, registerMultipleComponents, unregisterComponent, getLazyComponentNames, preloadComponent, prefetchLazyComponents, } from '../util/registry';
27
+ export { trackLazy } from '../util/lazy';
28
+ export { useAjaxSubmit, readAjaxKey, readAjaxKeyAsync, parseDepName, } from '../util/ajaxCommonUtils';
29
+ export type { RetryPolicy, DepSource } from '../util/ajaxCommonUtils';
30
+ export { submitGlobalForm } from '../util/globalForm';
31
+ export { usePieEmit } from '../util/mitt';
32
+ export { default as MittContext, getEmitter } from '../util/mitt';
33
+ export { default as SocketIOContext } from '../util/socket';
34
+ export { default as CentrifugeIOContext } from '../util/centrifuge';
35
+ export { default as FallbackContext } from '../util/fallback';
36
+ export { PieConfigContext, PIEBREAK } from '../util/pieConfig';
37
+ export { pieName } from '../util/pieName';
38
+ export type { PieComponentProps, PieSimpleComponentProps, PieComplexComponentProps, PieContainerComponentProps, PieComplexContainerComponentProps, InputPieSimpleComponentProps, InputPieComplexComponentProps, InputPieContainerComponentProps, InputPieComplexContainerComponentProps, PieConfig, UIConfigType, SetUiAjaxConfigurationType, } from '../types';
39
+ export type { PieRootProps, PieQueryOptions } from '../components/PieRoot/types';
40
+ export type { PieBaseRootProps } from '../components/PieBaseRoot/types';
41
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/native/index.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AAGH,OAAO,cAAc,CAAA;AAGrB,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAIlE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EACH,4BAA4B,EAC5B,qBAAqB,EACrB,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,GACjC,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACH,cAAc,EACd,gBAAgB,EAChB,eAAe,GAClB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACH,OAAO,EACP,YAAY,EACZ,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,aAAa,GAChB,MAAM,cAAc,CAAA;AAGrB,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,EACH,OAAO,IAAI,iBAAiB,EAC5B,KAAK,eAAe,GACvB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAG1D,OAAO,EACH,oBAAoB,EACpB,0BAA0B,EAC1B,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,0BAA0B,EAC1B,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,GACzB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAGxC,OAAO,EACH,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,YAAY,GACf,MAAM,yBAAyB,CAAA;AAChC,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAGrD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACjE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAC3D,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AACnE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAGzC,YAAY,EACR,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,0BAA0B,EAC1B,iCAAiC,EACjC,4BAA4B,EAC5B,6BAA6B,EAC7B,+BAA+B,EAC/B,sCAAsC,EACtC,SAAS,EACT,YAAY,EACZ,0BAA0B,GAC7B,MAAM,UAAU,CAAA;AACjB,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAChF,YAAY,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA"}