@swarm.ing/pieui 3.0.9 → 3.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +97 -14
- package/dist/code/commands/registry.d.ts.map +1 -1
- package/dist/components/index.esm.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.js +2 -2
- package/dist/index.js +2 -2
- package/dist/native/index.d.ts +1 -1
- package/dist/native/index.d.ts.map +1 -1
- package/dist/native/index.esm.js +2 -2
- package/dist/native/index.js +2 -2
- package/dist/telegram/index.esm.js +1 -1
- package/dist/telegram/index.js +1 -1
- package/dist/util/ajaxCommonUtils.d.ts +29 -6
- package/dist/util/ajaxCommonUtils.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -175823,6 +175823,7 @@ var require_tsconfig4 = __commonJS((exports2, module2) => {
|
|
|
175823
175823
|
lib: ["es2018"],
|
|
175824
175824
|
module: "commonjs",
|
|
175825
175825
|
target: "es2018",
|
|
175826
|
+
types: ["node"],
|
|
175826
175827
|
strict: true,
|
|
175827
175828
|
esModuleInterop: true,
|
|
175828
175829
|
skipLibCheck: true,
|
|
@@ -177609,6 +177610,7 @@ var require_acorn = __commonJS((exports2, module2) => {
|
|
|
177609
177610
|
allowHashBang: false,
|
|
177610
177611
|
checkPrivateFields: true,
|
|
177611
177612
|
locations: false,
|
|
177613
|
+
startLocation: null,
|
|
177612
177614
|
onToken: null,
|
|
177613
177615
|
onComment: null,
|
|
177614
177616
|
ranges: false,
|
|
@@ -177694,14 +177696,19 @@ Defaulting to 2020, but this will stop working in the future.`);
|
|
|
177694
177696
|
this.reservedWordsStrictBind = wordsRegexp(reservedStrict + " " + reservedWords.strictBind);
|
|
177695
177697
|
this.input = String(input);
|
|
177696
177698
|
this.containsEsc = false;
|
|
177697
|
-
|
|
177698
|
-
|
|
177699
|
+
this.pos = startPos || 0;
|
|
177700
|
+
this.curLine = 1;
|
|
177701
|
+
if (options.startLocation) {
|
|
177702
|
+
this.lineStart = this.pos - options.startLocation.column;
|
|
177703
|
+
this.curLine = options.startLocation.line;
|
|
177704
|
+
} else if (startPos) {
|
|
177699
177705
|
this.lineStart = this.input.lastIndexOf(`
|
|
177700
177706
|
`, startPos - 1) + 1;
|
|
177701
|
-
|
|
177707
|
+
if (this.options.locations) {
|
|
177708
|
+
this.curLine = this.input.slice(0, this.lineStart).split(lineBreak).length;
|
|
177709
|
+
}
|
|
177702
177710
|
} else {
|
|
177703
|
-
this.
|
|
177704
|
-
this.curLine = 1;
|
|
177711
|
+
this.lineStart = 0;
|
|
177705
177712
|
}
|
|
177706
177713
|
this.type = types$1.eof;
|
|
177707
177714
|
this.value = null;
|
|
@@ -179728,7 +179735,7 @@ Defaulting to 2020, but this will stop working in the future.`);
|
|
|
179728
179735
|
expr = this.finishNode(node$1, "UpdateExpression");
|
|
179729
179736
|
}
|
|
179730
179737
|
}
|
|
179731
|
-
if (!incDec && this.eat(types$1.starstar)) {
|
|
179738
|
+
if (!incDec && !(expr.type === "ArrowFunctionExpression" && expr.start === startPos) && this.eat(types$1.starstar)) {
|
|
179732
179739
|
if (sawUnary) {
|
|
179733
179740
|
this.unexpected(this.lastTokStart);
|
|
179734
179741
|
} else {
|
|
@@ -182647,7 +182654,7 @@ Defaulting to 2020, but this will stop working in the future.`);
|
|
|
182647
182654
|
}
|
|
182648
182655
|
return this.finishToken(type, word);
|
|
182649
182656
|
};
|
|
182650
|
-
var version = "8.
|
|
182657
|
+
var version = "8.18.0";
|
|
182651
182658
|
Parser.acorn = {
|
|
182652
182659
|
Parser,
|
|
182653
182660
|
version,
|
|
@@ -199740,6 +199747,53 @@ var linkPublicAssets = (frontendRoot, dir) => {
|
|
|
199740
199747
|
console.log(`[pieui] could not link public/ into the harness (${String(error)}); ` + `static assets may 404 in the preview.`);
|
|
199741
199748
|
}
|
|
199742
199749
|
};
|
|
199750
|
+
var ENV_TEMPLATE_SUFFIXES = [".example", ".sample", ".template"];
|
|
199751
|
+
var linkEnvFiles = (frontendRoot, dir) => {
|
|
199752
|
+
const isEnvFile = (name) => (name === ".env" || name.startsWith(".env.")) && !ENV_TEMPLATE_SUFFIXES.some((suffix) => name.endsWith(suffix));
|
|
199753
|
+
let names = [];
|
|
199754
|
+
try {
|
|
199755
|
+
names = import_node_fs21.default.readdirSync(frontendRoot).filter(isEnvFile).sort();
|
|
199756
|
+
} catch {
|
|
199757
|
+
return [];
|
|
199758
|
+
}
|
|
199759
|
+
try {
|
|
199760
|
+
for (const stale of import_node_fs21.default.readdirSync(dir)) {
|
|
199761
|
+
if (!isEnvFile(stale) || names.includes(stale))
|
|
199762
|
+
continue;
|
|
199763
|
+
const target = import_node_path21.default.join(dir, stale);
|
|
199764
|
+
if (import_node_fs21.default.lstatSync(target).isSymbolicLink())
|
|
199765
|
+
import_node_fs21.default.rmSync(target);
|
|
199766
|
+
}
|
|
199767
|
+
} catch {}
|
|
199768
|
+
const linked = [];
|
|
199769
|
+
for (const name of names) {
|
|
199770
|
+
const source = import_node_path21.default.join(frontendRoot, name);
|
|
199771
|
+
const target = import_node_path21.default.join(dir, name);
|
|
199772
|
+
try {
|
|
199773
|
+
if (!import_node_fs21.default.statSync(source).isFile())
|
|
199774
|
+
continue;
|
|
199775
|
+
let existing = null;
|
|
199776
|
+
try {
|
|
199777
|
+
existing = import_node_fs21.default.lstatSync(target);
|
|
199778
|
+
} catch {
|
|
199779
|
+
existing = null;
|
|
199780
|
+
}
|
|
199781
|
+
if (existing) {
|
|
199782
|
+
if (existing.isSymbolicLink() && import_node_path21.default.resolve(dir, import_node_fs21.default.readlinkSync(target)) === source) {
|
|
199783
|
+
linked.push(name);
|
|
199784
|
+
continue;
|
|
199785
|
+
}
|
|
199786
|
+
import_node_fs21.default.rmSync(target, { recursive: true, force: true });
|
|
199787
|
+
}
|
|
199788
|
+
import_node_fs21.default.mkdirSync(dir, { recursive: true });
|
|
199789
|
+
import_node_fs21.default.symlinkSync(source, target, "file");
|
|
199790
|
+
linked.push(name);
|
|
199791
|
+
} catch (error) {
|
|
199792
|
+
console.log(`[pieui] could not link ${name} into the harness ` + `(${String(error)}); its variables stay unset in the preview.`);
|
|
199793
|
+
}
|
|
199794
|
+
}
|
|
199795
|
+
return linked;
|
|
199796
|
+
};
|
|
199743
199797
|
var scaffoldHarness = (frontendRoot, registryName, hasProviders) => {
|
|
199744
199798
|
const dir = import_node_path21.default.join(frontendRoot, REGISTRY_DIR);
|
|
199745
199799
|
writeIfChanged(import_node_path21.default.join(dir, "package.json"), JSON.stringify({ name: "pie-registry-preview", version: "0.0.0", private: true }, null, 2) + `
|
|
@@ -199925,10 +199979,32 @@ export default function PreviewClient() {
|
|
|
199925
199979
|
`);
|
|
199926
199980
|
scaffoldTailwindV3(frontendRoot, dir);
|
|
199927
199981
|
linkPublicAssets(frontendRoot, dir);
|
|
199982
|
+
const envFiles = linkEnvFiles(frontendRoot, dir);
|
|
199983
|
+
if (envFiles.length) {
|
|
199984
|
+
console.log(`[pieui] env: ${envFiles.join(", ")}`);
|
|
199985
|
+
}
|
|
199928
199986
|
writeIfChanged(import_node_path21.default.join(dir, ".gitignore"), `*
|
|
199929
199987
|
`);
|
|
199930
199988
|
return dir;
|
|
199931
199989
|
};
|
|
199990
|
+
var liveHarness = (dir) => {
|
|
199991
|
+
let lock;
|
|
199992
|
+
try {
|
|
199993
|
+
lock = JSON.parse(import_node_fs21.default.readFileSync(import_node_path21.default.join(dir, ".next", "dev", "lock"), "utf8"));
|
|
199994
|
+
} catch {
|
|
199995
|
+
return null;
|
|
199996
|
+
}
|
|
199997
|
+
const { pid, appUrl } = lock;
|
|
199998
|
+
if (typeof pid !== "number" || typeof appUrl !== "string")
|
|
199999
|
+
return null;
|
|
200000
|
+
try {
|
|
200001
|
+
process.kill(pid, 0);
|
|
200002
|
+
} catch (err) {
|
|
200003
|
+
if (err.code !== "EPERM")
|
|
200004
|
+
return null;
|
|
200005
|
+
}
|
|
200006
|
+
return { pid, appUrl };
|
|
200007
|
+
};
|
|
199932
200008
|
var resolveNextBin = (frontendRoot) => {
|
|
199933
200009
|
const bin = import_node_path21.default.join(frontendRoot, "node_modules", ".bin", "next");
|
|
199934
200010
|
if (!import_node_fs21.default.existsSync(bin)) {
|
|
@@ -199947,15 +200023,22 @@ var registryCommand = (action, opts = {}) => {
|
|
|
199947
200023
|
const dir = scaffoldHarness(frontendRoot, registryName, hasProviders);
|
|
199948
200024
|
const nextBin = resolveNextBin(frontendRoot);
|
|
199949
200025
|
const env = { ...process.env };
|
|
199950
|
-
|
|
199951
|
-
|
|
199952
|
-
env.NEXT_PUBLIC_PIE_API_SERVER = opts.apiServer;
|
|
199953
|
-
}
|
|
200026
|
+
env.PIE_API_SERVER = opts.apiServer ?? "";
|
|
200027
|
+
env.NEXT_PUBLIC_PIE_API_SERVER = opts.apiServer ?? "";
|
|
199954
200028
|
if (action === "dev") {
|
|
200029
|
+
const running = liveHarness(dir);
|
|
200030
|
+
if (running) {
|
|
200031
|
+
console.error(`[pieui] a registry harness already serves ${dir}
|
|
200032
|
+
` + `[pieui] url: ${running.appUrl}
|
|
200033
|
+
` + `[pieui] pid: ${running.pid}
|
|
200034
|
+
` + `[pieui] point the viewer at that url, or stop it first ` + `(kill ${running.pid}).`);
|
|
200035
|
+
process.exitCode = 1;
|
|
200036
|
+
return;
|
|
200037
|
+
}
|
|
199955
200038
|
const port = opts.port ?? 3210;
|
|
199956
200039
|
console.log(`[pieui] registry dev → http://localhost:${port}`);
|
|
199957
200040
|
console.log(`[pieui] harness: ${dir}`);
|
|
199958
|
-
console.log(`[pieui] PIE_API_SERVER=${env.PIE_API_SERVER
|
|
200041
|
+
console.log(`[pieui] PIE_API_SERVER=${env.PIE_API_SERVER || "(unset → /)"}`);
|
|
199959
200042
|
const result2 = import_node_child_process6.spawnSync(nextBin, ["dev", "-p", String(port)], {
|
|
199960
200043
|
cwd: dir,
|
|
199961
200044
|
stdio: "inherit",
|
|
@@ -199968,8 +200051,8 @@ var registryCommand = (action, opts = {}) => {
|
|
|
199968
200051
|
}
|
|
199969
200052
|
return;
|
|
199970
200053
|
}
|
|
199971
|
-
|
|
199972
|
-
|
|
200054
|
+
env.PIE_API_SERVER = "";
|
|
200055
|
+
env.NEXT_PUBLIC_PIE_API_SERVER = "";
|
|
199973
200056
|
console.log(`[pieui] registry build (static export) → ${import_node_path21.default.join(dir, OUT_DIRNAME)}`);
|
|
199974
200057
|
const result = import_node_child_process6.spawnSync(nextBin, ["build"], {
|
|
199975
200058
|
cwd: dir,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/code/commands/registry.ts"],"names":[],"mappings":"AAyBA,KAAK,eAAe,GAAG;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,GAAG,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/code/commands/registry.ts"],"names":[],"mappings":"AAyBA,KAAK,eAAe,GAAG;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,GAAG,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAwiBD,eAAO,MAAM,eAAe,WAChB,KAAK,GAAG,OAAO,SACjB,eAAe,KACtB,IA+EF,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{useContext as o,useEffect as m,useRef as c}from"react";import{createContext as mI,useContext as bI}from"react";var g=globalThis,_=(I,U)=>{let Z=Symbol.for(I);if(!(Z in g))g[Z]=U();return g[Z]};var pI=_("@swarm.ing/pieui:context:pieConfig",()=>mI(null)),vI=()=>{let I=bI(pI);if(!I)throw Error("usePieConfig must be used within PieConfigProvider");return I};var y=()=>{let{enableRenderingLog:I}=vI();return I},UI=y;import{createContext as hI}from"react";import{Centrifuge as fT}from"centrifuge";var LT=_("@swarm.ing/pieui:centrifuge-cache",()=>new Map);var gI=_("@swarm.ing/pieui:context:centrifuge",()=>hI(null)),TI=gI;import{io as NT}from"socket.io-client";import{createContext as oI}from"react";var yT=_("@swarm.ing/pieui:socket-cache",()=>new Map);var cI=_("@swarm.ing/pieui:context:socket",()=>oI(null)),zI=cI;import mT from"mitt";import{createContext as lI,useCallback as vT,useContext as hT}from"react";var uI=_("@swarm.ing/pieui:context:mitt",()=>lI(null));var S=uI;function ZI(I){return I.wasRecovering===!0&&I.recovered===!1}function BI(I){return I.recoverable===!1}function HI(I,U,Z){let z=I.getSubscription(U);if(z)return{subscription:z,createdHere:!1};return{subscription:I.newSubscription(U,Z),createdHere:!0}}import{useMemo as dT}from"react";var $I=new Map,qI=(I,U)=>{$I.set(I,U)},OI=(I)=>{$I.delete(I)};import{jsx as rI,jsxs as sI,Fragment as iI}from"react/jsx-runtime";var dI=({card:I,data:U,children:Z,useSocketioSupport:z=!1,useCentrifugeSupport:B=!1,useMittSupport:T=!1,centrifugeChannel:$=void 0,methods:O=void 0,stored:q=void 0,onResync:Q=void 0})=>{let X=UI(),G=c(O);G.current=O;let D=c(Q);D.current=Q;let Y=c(q);Y.current=q;let J=typeof q==="function";if(m(()=>{if(!J)return;let L=U.name;return qI(L,()=>[JSON.stringify(Y.current())]),()=>OI(L)},[J,U.name]),X)console.log("[PieCard] Rendering card:",I),console.log("[PieCard] Card data:",U),console.log("[PieCard] Component name:",U?.name),console.log("[PieCard] Real-time support:",{socketio:z,centrifuge:B,mitt:T,centrifugeChannel:$}),console.log("[PieCard] Methods:",O?Object.keys(O):"none"),console.log("[PieCard] Has children:",!!Z);let V=o(zI),A=o(TI),R=o(S);if(m(()=>{if(!V||!z||!G.current||!U.name){if(X&&z)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!V,useSocketioSupport:z,hasMethods:!!G.current,hasDataName:!!U?.name});return}let f=Object.keys(G.current??{}).map((H)=>{let P=`pie${H}_${U.name}`;if(X)console.log(`[PieCard] Socket.IO registering event: ${P}`);let w=(N)=>{G.current?.[H]?.(N)};return V.on(P,w),[P,w]});return()=>{f.forEach(([H,P])=>{if(X)console.log(`[PieCard] Socket.IO unregistering event: ${H}`);V.off(H,P)})}},[V,U.name,z]),m(()=>{if(!A||!B||!$||!U.name){if(X&&B)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!A,useCentrifugeSupport:B,hasCentrifugeChannel:!!$,hasMethods:!!G.current,hasDataName:!!U?.name});return}let f=Object.keys(G.current??{}).map((H)=>{let P=`pie${H}_${U.name}_${$}`;if(X)console.log(`[PieCard] Centrifuge subscribing to channel: ${P}`);let{subscription:w,createdHere:N}=HI(A,P,{recoverable:!0,positioned:!0}),e=(k)=>{if(X)console.log(`[PieCard] Centrifuge received data on ${P}:`,k.data);G.current?.[H]?.(k.data)},II=(k)=>{if(BI(k))console.warn(`[PieCard] Centrifuge channel ${P} is not `+"recoverable — enable history on the server "+"namespace for exact replay; relying on resync fallback only.");if(ZI(k)){if(X)console.log(`[PieCard] Centrifuge recovery gap on ${P}; requesting resync`);D.current?.({channel:P,reason:"gap"})}};return w.on("publication",e),w.on("subscribed",II),w.subscribe(),{subscription:w,createdHere:N,onPublication:e,onSubscribed:II}});return()=>{f.forEach(({subscription:H,createdHere:P,onPublication:w,onSubscribed:N})=>{if(X)console.log("[PieCard] Centrifuge unsubscribing from channel");if(H.off("publication",w),H.off("subscribed",N),P)H.unsubscribe(),A.removeSubscription(H)})}},[A,$,U.name,B]),m(()=>{if(!R||!T||!U.name){if(X&&T)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!R,useMittSupport:T,hasMethods:!!G.current,hasDataName:!!U?.name});return}let L=Object.keys(G.current??{}),f={};return L.forEach((H)=>{let P=`pie${H}_${U.name}`,w=(N)=>{if(X)console.log(`[PieCard] Mitt registering event: ${P}`);G.current?.[H]?.(N)};f[P]=w,R.on(P,w)}),()=>{Object.entries(f).forEach(([H,P])=>{if(X)console.log(`[PieCard] Mitt unregistering event: ${H}`);R.off(H,P)})}},[R,U.name,T]),X)console.log("[PieCard] Rendering complete, returning children");if(q!==void 0&&!J)return sI(iI,{children:[rI("input",{type:"hidden",name:U.name,value:JSON.stringify(q)}),Z]});return Z},F=dI;import{lazy as nI}from"react";var x=new Map;function aI(I,U){return U.catch(()=>{if(x.get(I)===U)x.delete(I)}),x.set(I,U),U}function GI(I,U){return nI(()=>{if(x.has(U))return x.get(U);return aI(U,I().then((Z)=>Z))})}var JI=_("@swarm.ing/pieui:component-registry",()=>new Map),tI=(I)=>{if(!I.name)throw Error("Component registration requires a name");if(!I.component&&!I.loader)throw Error(`Component "${I.name}" requires component or loader`);let U={name:I.name,component:I.component,loader:I.loader,metadata:I.metadata,fallback:I.fallback,isLazy:!1};if(!U.component&&U.loader)U.component=GI(U.loader,I.name),U.isLazy=!0;return U};function W(I){let U=tI(I);return JI.set(U.name,U),U.component}var b=(I)=>{return JI.get(I)};import{useContext as QI,memo as GU}from"react";import{createContext as eI}from"react";import{jsx as TU,Fragment as UU}from"react/jsx-runtime";var IU=_("@swarm.ing/pieui:context:fallback",()=>eI(TU(UU,{}))),C=IU;import{createContext as zU}from"react";var ZU=_("@swarm.ing/pieui:context:lazyError",()=>zU(void 0)),p=ZU;import{Component as BU,Suspense as HU}from"react";import{jsx as OU}from"react/jsx-runtime";var $U=2,qU=400;class j extends BU{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(I){if(this.props.onError?.(I),this.state.attempt<$U){let U=qU*(this.state.attempt+1);this.timer=setTimeout(()=>{this.setState((Z)=>({failed:!1,attempt:Z.attempt+1}))},U)}}componentDidUpdate(I){if(I.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 OU(HU,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}import{jsx as l}from"react/jsx-runtime";function JU({uiConfig:I,setUiAjaxConfiguration:U}){let Z=QI(C),z=QI(p),B=y();if(B)console.log("[UI] Rendering component:",I.card),console.log("[UI] Component data:",I.data),console.log("[UI] Component content:",I.content),console.log("[UI] Has setUiAjaxConfiguration:",!!U);let T=b(I.card);if(!T?.component){if(B)console.warn(`[UI] Component not found in registry: ${I.card}`),console.log("[UI] Returning fallback component");return Z}if(B)console.log("[UI] Found component in registry:",{name:T.name,isLazy:T.isLazy,hasMetadata:!!T.metadata});let $=T.component,O=l($,{data:I.data,content:I.content,setUiAjaxConfiguration:U});if(T.isLazy){if(B)console.log("[UI] Rendering lazy component with Suspense:",T.name);return l(j,{name:T.name,fallback:T.fallback?l(T.fallback,{}):Z,onError:z,children:O})}if(B)console.log("[UI] Rendering component directly:",T.name);return O}var M=GU(JU);import{useContext as XI}from"react";import{createContext as QU}from"react";var XU=_("@swarm.ing/pieui:context:uiRenderer",()=>QU(null)),K=XU;import{jsx as v}from"react/jsx-runtime";function YI({uiConfig:I,setUiAjaxConfiguration:U}){let Z=XI(C),z=XI(p),B=y();if(B)console.log("[UILoading] Rendering fallback for:",I.card),console.log("[UILoading] Component data:",I.data),console.log("[UILoading] Component content:",I.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!U);let T=b(I.card);if(!T?.component){if(B)console.warn(`[UILoading] Component not found in registry: ${I.card}`),console.log("[UILoading] Returning fallback component");return Z}if(B)console.log("[UILoading] Found component in registry:",{name:T.name,isLazy:T.isLazy,hasMetadata:!!T.metadata,hasFallback:!!T.fallback});if(T.fallback){if(B)console.log("[UILoading] Rendering fallback for:",T.name);let q=T.fallback;return v(q,{})}if(B)console.log("[UILoading] No fallback, rendering full component:",T.name);let $=T.component,O=v(K.Provider,{value:YI,children:v($,{data:I.data,content:I.content,setUiAjaxConfiguration:U})});if(T.isLazy)return v(j,{name:T.name,fallback:Z,onError:z,children:O});return O}var YU=YI;import{useContext as PU}from"react";import{jsx as u}from"react/jsx-runtime";var WU=({data:I,content:U,setUiAjaxConfiguration:Z})=>{let{name:z,sx:B}=I,T=PU(K)??M;return u(F,{card:z,data:I,children:u("div",{style:B,id:z,children:U.map(($,O)=>{return u(T,{uiConfig:$,setUiAjaxConfiguration:Z},`children-${O}`)})})})},PI=WU;var FU=W({name:"SequenceCard",component:PI,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});import{useContext as DU}from"react";import{jsx as WI}from"react/jsx-runtime";var _U=({data:I,content:U,setUiAjaxConfiguration:Z})=>{let{name:z}=I,B=DU(K)??M;return WI(F,{card:z,data:I,children:U.map((T,$)=>{return WI(B,{uiConfig:T,setUiAjaxConfiguration:Z},`children-${$}`)})})},FI=_U;var VU=W({name:"UnionCard",component:FI,metadata:{author:"Swarm.ing",description:"Renders one of many components"}});import{useEffect as fU,useState as AU}from"react";import LU from"html-react-parser";import{useCallback as h,useEffect as wU,useRef as d,useState as KU}from"react";function MU(){let I=new AudioContext,U=I.createOscillator(),Z=U.connect(I.createMediaStreamDestination());U.start();let z=Z.stream.getAudioTracks()[0];return z.enabled=!1,z}function i(I=null,U){let[Z,z]=KU(!1),B=d(null),T=d(null),$=d(null),O=h(async(G,D=!0)=>{if(B.current)q();let Y=new RTCPeerConnection;if(Y.onconnectionstatechange=()=>{if(Y.connectionState==="connected")z(!0);else if(["disconnected","failed","closed"].includes(Y.connectionState))z(!1)},Y.ontrack=(H)=>{if(I)I.srcObject=H.streams[0]},D){let H=await navigator.mediaDevices.getUserMedia({audio:!0});Y.addTrack(H.getTracks()[0],H)}else{let H=MU();Y.addTrack(H)}let J=Y.createDataChannel("oai-events");T.current=J,$.current=new Promise((H)=>{J.addEventListener("open",()=>{H()})});let V=await Y.createOffer();await Y.setLocalDescription(V);let f=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:V.sdp,headers:{Authorization:`Bearer ${G}`,"Content-Type":"application/sdp"}})).text();await Y.setRemoteDescription({type:"answer",sdp:f}),B.current=Y,await $.current},[I]),q=h(()=>{let G=T.current;if(G)G.close();B.current?.getSenders()?.forEach((D)=>D.track?.stop()),B.current?.close(),z(!1),B.current=null,T.current=null,$.current=null},[I]),Q=h((G)=>{let D=T.current;if(!D){console.error("Data channel is not ready",G);return}let Y=new Date().toLocaleTimeString();if(G.event_id=G.event_id||crypto.randomUUID(),D.send(JSON.stringify(G)),!G.timestamp)G.timestamp=Y;U?.(G)},[U,I]),X=h((G)=>{if(!T.current){console.error("Data channel is not ready");return}let Y=()=>{Q({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:G}]}}),Q({type:"response.create"})};if($.current)$.current.then(Y);else Y()},[U,I]);return wU(()=>{let G=T.current;if(!G)return;let D=(Y)=>{let J=JSON.parse(Y.data);if(!J.timestamp)J.timestamp=new Date().toLocaleTimeString();U?.(J)};return G.addEventListener("message",D),()=>{G.removeEventListener("message",D)}},[U,I]),{isSessionActive:Z,startSession:O,stopSession:q,sendTextMessage:X}}import{jsx as CU}from"react/jsx-runtime";var RU=({data:I})=>{let{html:U,useSocketioSupport:Z,useCentrifugeSupport:z,useMittSupport:B,centrifugeChannel:T}=I,[$,O]=AU(U),{isSessionActive:q,startSession:Q,sendTextMessage:X}=i(null,(J)=>{if(console.log(J.type,J.type==="response.output_text.delta"&&J.delta),J.type==="response.output_text.delta"&&J.delta)O((V)=>V+J.delta)});return fU(()=>{O(U)},[U]),CU(F,{card:"HTMLEmbedCard",data:I,methods:{update:(J)=>{O(J.value)},generateUsingAI:async(J)=>{try{if(!q&&J.token)await Q(J.token,!1);X(J.prompt)}catch(V){console.error("Failed to generate using AI",V)}},initializeAI:async(J)=>{if(!q&&J.token)await Q(J.token,!1)}},useCentrifugeSupport:z,useSocketioSupport:Z,useMittSupport:B,centrifugeChannel:T,children:LU($)})},DI=RU;var NU=W({name:"HTMLEmbedCard",component:DI,metadata:{author:"Swarm.ing"}});import{useEffect as jU,useState as EU}from"react";import{jsx as _I}from"react/jsx-runtime";var kU=({data:I})=>{let{name:U,value:Z,useSocketioSupport:z,useCentrifugeSupport:B,useMittSupport:T,centrifugeChannel:$}=I,[O,q]=EU(Z);return jU(()=>{q(Z)},[Z]),_I(F,{card:"HiddenCard",data:I,useSocketioSupport:z,useCentrifugeSupport:B,useMittSupport:T,centrifugeChannel:$,methods:{update:({value:Q})=>{q(Q)}},children:_I("input",{type:"hidden",id:U,name:U,value:O})})},VI=kU;var yU=W({name:"HiddenCard",component:VI,metadata:{author:"Swarm.ing"}});import{useContext as wI,useEffect as mU}from"react";import{createContext as xU}from"react";var SU=_("@swarm.ing/pieui:context:navigate",()=>xU(void 0)),E=SU;import{jsx as vU,Fragment as pU}from"react/jsx-runtime";var bU=({data:I})=>{let{url:U}=I,Z=wI(E),z=wI(C);return mU(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(U))window.location.href=U;else Z?.(U)},[U,Z]),vU(pU,{children:z})},KI=bU;var hU=W({name:"AutoRedirectCard",component:KI,metadata:{author:"Swarm.ing"}});import{Bounce as gU,Slide as oU,Zoom as cU,Flip as lU}from"react-toastify";import{toast as uU,ToastContainer as dU}from"react-toastify";import{useContext as iU,useMemo as rU,useRef as sU}from"react";import{jsx as r,Fragment as UT}from"react/jsx-runtime";var nU={bounce:gU,slide:oU,zoom:cU,flip:lU},aU=(I)=>{let U={...I,type:I.alertType,transition:I.transition?nU[I.transition]:void 0,position:I.position??"bottom-right",autoClose:I.autoClose??3000,style:{backgroundColor:"black",...I.sx}};uU(I.message,U)},tU=(I)=>{console.log("Log event",I)},eU=(I)=>{if(typeof window>"u"||!window.Notification){console.warn("[IOEventsCard] Notifications API is not available");return}let U=()=>{try{new window.Notification(I.title,{body:I.message??I.subtitle,icon:I.icon,silent:I.silent})}catch(z){console.error("[IOEventsCard] Failed to show notification",z)}},Z=window.Notification.permission;if(Z==="granted"){U();return}if(Z==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((z)=>{if(z==="granted")U()})},IT=({data:I})=>{let{useCentrifugeSupport:U,useSocketioSupport:Z,useMittSupport:z,centrifugeChannel:B}=I,T=iU(E),$=sU(T);$.current=T;let O=rU(()=>({alert:aU,log:tU,push:eU,redirect:(q)=>{if(q.to){let Q=q.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(Q))window.location.href=Q;else $.current?.(Q)}else window.location.reload()},reload:(q)=>{if(q.to){let Q=q.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(Q))window.location.href=Q;else $.current?.(Q)}else window.location.reload()}}),[]);return r(UT,{children:r(F,{card:"IOEventsCard",data:I,useCentrifugeSupport:U,useSocketioSupport:Z,useMittSupport:z,centrifugeChannel:B,methods:O,children:r(dU,{})})})},MI=IT;var TT=W({name:"IOEventsCard",component:MI,metadata:{author:"Swarm.ing"}});import{useEffect as fI,useState as zT}from"react";import{jsx as AI}from"react/jsx-runtime";var ZT=({data:I})=>{let{name:U,key:Z,value:z,useSocketioSupport:B,useCentrifugeSupport:T,useMittSupport:$,centrifugeChannel:O}=I,[q,Q]=zT(z);return fI(()=>{Q(z)},[z]),fI(()=>{if(typeof window>"u")return;sessionStorage.setItem(Z,q)},[Z,q]),AI(F,{card:"SessionStorageCard",data:I,useSocketioSupport:B,useCentrifugeSupport:T,useMittSupport:$,centrifugeChannel:O,methods:{update:({value:X})=>{Q(X)},remove:()=>{sessionStorage.removeItem(Z),Q("")}},children:AI("input",{type:"hidden",id:U,name:U,value:q})})},LI=ZT;var BT=W({name:"SessionStorageCard",component:LI,metadata:{author:"PieData"}});import{useEffect as RI,useState as HT}from"react";import{jsx as CI}from"react/jsx-runtime";var $T=({data:I})=>{let{name:U,key:Z,value:z,useSocketioSupport:B,useCentrifugeSupport:T,useMittSupport:$,centrifugeChannel:O}=I,[q,Q]=HT(z);return RI(()=>{Q(z)},[z]),RI(()=>{if(typeof window>"u")return;localStorage.setItem(Z,q)},[Z,q]),CI(F,{card:"DeviceStorageCard",data:I,useSocketioSupport:B,useCentrifugeSupport:T,useMittSupport:$,centrifugeChannel:O,methods:{update:({value:X})=>{Q(X)},remove:()=>{localStorage.removeItem(Z),Q("")}},children:CI("input",{type:"hidden",id:U,name:U,value:q})})},NI=$T;var qT=W({name:"DeviceStorageCard",component:NI,metadata:{author:"PieData"}});import{useCallback as s,useContext as n,useEffect as OT,useRef as GT,useState as jI}from"react";import{jsx as EI}from"react/jsx-runtime";var JT=({data:I,content:U})=>{let{useLoader:Z,noReturn:z,returnType:B,useSocketioSupport:T,useCentrifugeSupport:$,useMittSupport:O,centrifugeChannel:q}=I,Q=n(C),X=n(K)??M,[G,D]=jI(!1),[Y,J]=jI(null),V=GT(U),A=n(S),R=s((H)=>{if(H===null)D(!0);else if(D(!1),!z)V.current=H;if(!z)J(H)},[z]),L=s((H)=>{V.current=H.content,J(H.content)},[]),f=s((H)=>{if(H===null)D(!0);else if(D(!1),!z)for(let P of H)A?.emit(P.name,P.data)},[z,A]);if(OT(()=>{J(U),D(!1)},[U]),!Y&&Z)return Q;return EI(F,{card:"AjaxGroupCard",data:I,methods:{changeContent:L},useSocketioSupport:T,useCentrifugeSupport:$,useMittSupport:O,centrifugeChannel:q,children:EI(X,{uiConfig:Y??V.current,setUiAjaxConfiguration:B==="events"?f:R})})},kI=JT;var QT=W({name:"AjaxGroupCard",component:kI,metadata:{author:"Swarm.ing",description:"Group card with AJAX support"}});import{useContext as yI}from"react";import{jsx as a}from"react/jsx-runtime";var XT=({data:I,content:U,setUiAjaxConfiguration:Z})=>{let{name:z,url:B,sx:T}=I,$=yI(E),O=yI(K)??M;return a(F,{card:z,data:I,children:a("div",{style:T,id:z,onClick:(Q)=>{if(B)if(Q.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(B))window.location.href=B;else $?.(B)},children:a(O,{setUiAjaxConfiguration:Z,uiConfig:U})})})},xI=XT;var YT=W({name:"BoxCard",component:xI,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});import{useContext as PT}from"react";import{jsx as t}from"react/jsx-runtime";var WT=({data:I,content:U,setUiAjaxConfiguration:Z})=>{let{name:z,sx:B}=I,T=PT(K)??M;return t(F,{card:z,data:I,children:t("div",{style:B,id:z,children:U.map(($,O)=>{return t(T,{uiConfig:$,setUiAjaxConfiguration:Z},`children-${O}`)})})})},SI=WT;var FT=W({name:"OneOfCard",component:SI,metadata:{author:"Swarm.ing",description:"Different variants"}});export{VU as UnionCard,YU as UILoading,M as UI,BT as SessionStorageCard,FU as SequenceCard,F as PieCard,FT as OneOfCard,TT as IOEventsCard,yU as HiddenCard,NU as HTMLEmbedCard,qT as DeviceStorageCard,YT as BoxCard,hU as AutoRedirectCard,QT as AjaxGroupCard};
|
|
2
|
+
import{useContext as c,useEffect as m,useRef as o}from"react";import{createContext as mI,useContext as bI}from"react";var g=globalThis,_=(I,U)=>{let Z=Symbol.for(I);if(!(Z in g))g[Z]=U();return g[Z]};var pI=_("@swarm.ing/pieui:context:pieConfig",()=>mI(null)),vI=()=>{let I=bI(pI);if(!I)throw Error("usePieConfig must be used within PieConfigProvider");return I};var x=()=>{let{enableRenderingLog:I}=vI();return I},UI=x;import{createContext as hI}from"react";import{Centrifuge as fT}from"centrifuge";var LT=_("@swarm.ing/pieui:centrifuge-cache",()=>new Map);var gI=_("@swarm.ing/pieui:context:centrifuge",()=>hI(null)),TI=gI;import{io as NT}from"socket.io-client";import{createContext as cI}from"react";var xT=_("@swarm.ing/pieui:socket-cache",()=>new Map);var oI=_("@swarm.ing/pieui:context:socket",()=>cI(null)),zI=oI;import mT from"mitt";import{createContext as uI,useCallback as vT,useContext as hT}from"react";var lI=_("@swarm.ing/pieui:context:mitt",()=>uI(null));var S=lI;function ZI(I){return I.wasRecovering===!0&&I.recovered===!1}function BI(I){return I.recoverable===!1}function $I(I,U,Z){let z=I.getSubscription(U);if(z)return{subscription:z,createdHere:!1};return{subscription:I.newSubscription(U,Z),createdHere:!0}}import{useMemo as dT}from"react";var qI=new Map,HI=(I,U)=>{qI.set(I,U)},GI=(I)=>{qI.delete(I)};import{jsx as rI,jsxs as sI,Fragment as iI}from"react/jsx-runtime";var dI=({card:I,data:U,children:Z,useSocketioSupport:z=!1,useCentrifugeSupport:B=!1,useMittSupport:T=!1,centrifugeChannel:q=void 0,methods:G=void 0,stored:H=void 0,onResync:Q=void 0})=>{let X=UI(),J=o(G);J.current=G;let F=o(Q);F.current=Q;let Y=o(H);Y.current=H;let O=typeof H==="function";if(m(()=>{if(!O)return;let L=U.name;return HI(L,()=>[JSON.stringify(Y.current())]),()=>GI(L)},[O,U.name]),X)console.log("[PieCard] Rendering card:",I),console.log("[PieCard] Card data:",U),console.log("[PieCard] Component name:",U?.name),console.log("[PieCard] Real-time support:",{socketio:z,centrifuge:B,mitt:T,centrifugeChannel:q}),console.log("[PieCard] Methods:",G?Object.keys(G):"none"),console.log("[PieCard] Has children:",!!Z);let V=c(zI),A=c(TI),C=c(S);if(m(()=>{if(!V||!z||!J.current||!U.name){if(X&&z)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!V,useSocketioSupport:z,hasMethods:!!J.current,hasDataName:!!U?.name});return}let f=Object.keys(J.current??{}).map(($)=>{let P=`pie${$}_${U.name}`;if(X)console.log(`[PieCard] Socket.IO registering event: ${P}`);let w=(N)=>{J.current?.[$]?.(N)};return V.on(P,w),[P,w]});return()=>{f.forEach(([$,P])=>{if(X)console.log(`[PieCard] Socket.IO unregistering event: ${$}`);V.off($,P)})}},[V,U.name,z]),m(()=>{if(!A||!B||!q||!U.name){if(X&&B)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!A,useCentrifugeSupport:B,hasCentrifugeChannel:!!q,hasMethods:!!J.current,hasDataName:!!U?.name});return}let f=Object.keys(J.current??{}).map(($)=>{let P=`pie${$}_${U.name}_${q}`;if(X)console.log(`[PieCard] Centrifuge subscribing to channel: ${P}`);let{subscription:w,createdHere:N}=$I(A,P,{recoverable:!0,positioned:!0}),e=(k)=>{if(X)console.log(`[PieCard] Centrifuge received data on ${P}:`,k.data);J.current?.[$]?.(k.data)},II=(k)=>{if(BI(k))console.warn(`[PieCard] Centrifuge channel ${P} is not `+"recoverable — enable history on the server "+"namespace for exact replay; relying on resync fallback only.");if(ZI(k)){if(X)console.log(`[PieCard] Centrifuge recovery gap on ${P}; requesting resync`);F.current?.({channel:P,reason:"gap"})}};return w.on("publication",e),w.on("subscribed",II),w.subscribe(),{subscription:w,createdHere:N,onPublication:e,onSubscribed:II}});return()=>{f.forEach(({subscription:$,createdHere:P,onPublication:w,onSubscribed:N})=>{if(X)console.log("[PieCard] Centrifuge unsubscribing from channel");if($.off("publication",w),$.off("subscribed",N),P)$.unsubscribe(),A.removeSubscription($)})}},[A,q,U.name,B]),m(()=>{if(!C||!T||!U.name){if(X&&T)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!C,useMittSupport:T,hasMethods:!!J.current,hasDataName:!!U?.name});return}let L=Object.keys(J.current??{}),f={};return L.forEach(($)=>{let P=`pie${$}_${U.name}`,w=(N)=>{if(X)console.log(`[PieCard] Mitt registering event: ${P}`);J.current?.[$]?.(N)};f[P]=w,C.on(P,w)}),()=>{Object.entries(f).forEach(([$,P])=>{if(X)console.log(`[PieCard] Mitt unregistering event: ${$}`);C.off($,P)})}},[C,U.name,T]),X)console.log("[PieCard] Rendering complete, returning children");if(H!==void 0&&!O)return sI(iI,{children:[rI("input",{type:"hidden",name:U.name,value:JSON.stringify(H)}),Z]});return Z},D=dI;import{lazy as nI}from"react";var y=new Map;function aI(I,U){return U.catch(()=>{if(y.get(I)===U)y.delete(I)}),y.set(I,U),U}function JI(I,U){return nI(()=>{if(y.has(U))return y.get(U);return aI(U,I().then((Z)=>Z))})}var OI=_("@swarm.ing/pieui:component-registry",()=>new Map),tI=(I)=>{if(!I.name)throw Error("Component registration requires a name");if(!I.component&&!I.loader)throw Error(`Component "${I.name}" requires component or loader`);let U={name:I.name,component:I.component,loader:I.loader,metadata:I.metadata,fallback:I.fallback,isLazy:!1};if(!U.component&&U.loader)U.component=JI(U.loader,I.name),U.isLazy=!0;return U};function W(I){let U=tI(I);return OI.set(U.name,U),U.component}var b=(I)=>{return OI.get(I)};import{useContext as QI,memo as JU}from"react";import{createContext as eI}from"react";import{jsx as TU,Fragment as UU}from"react/jsx-runtime";var IU=_("@swarm.ing/pieui:context:fallback",()=>eI(TU(UU,{}))),R=IU;import{createContext as zU}from"react";var ZU=_("@swarm.ing/pieui:context:lazyError",()=>zU(void 0)),p=ZU;import{Component as BU,Suspense as $U}from"react";import{jsx as GU}from"react/jsx-runtime";var qU=2,HU=400;class j extends BU{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(I){if(this.props.onError?.(I),this.state.attempt<qU){let U=HU*(this.state.attempt+1);this.timer=setTimeout(()=>{this.setState((Z)=>({failed:!1,attempt:Z.attempt+1}))},U)}}componentDidUpdate(I){if(I.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 GU($U,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}import{jsx as u}from"react/jsx-runtime";function OU({uiConfig:I,setUiAjaxConfiguration:U}){let Z=QI(R),z=QI(p),B=x();if(B)console.log("[UI] Rendering component:",I.card),console.log("[UI] Component data:",I.data),console.log("[UI] Component content:",I.content),console.log("[UI] Has setUiAjaxConfiguration:",!!U);let T=b(I.card);if(!T?.component){if(B)console.warn(`[UI] Component not found in registry: ${I.card}`),console.log("[UI] Returning fallback component");return Z}if(B)console.log("[UI] Found component in registry:",{name:T.name,isLazy:T.isLazy,hasMetadata:!!T.metadata});let q=T.component,G=u(q,{data:I.data,content:I.content,setUiAjaxConfiguration:U});if(T.isLazy){if(B)console.log("[UI] Rendering lazy component with Suspense:",T.name);return u(j,{name:T.name,fallback:T.fallback?u(T.fallback,{}):Z,onError:z,children:G})}if(B)console.log("[UI] Rendering component directly:",T.name);return G}var M=JU(OU);import{useContext as XI}from"react";import{createContext as QU}from"react";var XU=_("@swarm.ing/pieui:context:uiRenderer",()=>QU(null)),K=XU;import{jsx as v}from"react/jsx-runtime";function YI({uiConfig:I,setUiAjaxConfiguration:U}){let Z=XI(R),z=XI(p),B=x();if(B)console.log("[UILoading] Rendering fallback for:",I.card),console.log("[UILoading] Component data:",I.data),console.log("[UILoading] Component content:",I.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!U);let T=b(I.card);if(!T?.component){if(B)console.warn(`[UILoading] Component not found in registry: ${I.card}`),console.log("[UILoading] Returning fallback component");return Z}if(B)console.log("[UILoading] Found component in registry:",{name:T.name,isLazy:T.isLazy,hasMetadata:!!T.metadata,hasFallback:!!T.fallback});if(T.fallback){if(B)console.log("[UILoading] Rendering fallback for:",T.name);let H=T.fallback;return v(H,{})}if(B)console.log("[UILoading] No fallback, rendering full component:",T.name);let q=T.component,G=v(K.Provider,{value:YI,children:v(q,{data:I.data,content:I.content,setUiAjaxConfiguration:U})});if(T.isLazy)return v(j,{name:T.name,fallback:Z,onError:z,children:G});return G}var YU=YI;import{useContext as PU}from"react";import{jsx as l}from"react/jsx-runtime";var WU=({data:I,content:U,setUiAjaxConfiguration:Z})=>{let{name:z,sx:B}=I,T=PU(K)??M;return l(D,{card:z,data:I,children:l("div",{style:B,id:z,children:U.map((q,G)=>{return l(T,{uiConfig:q,setUiAjaxConfiguration:Z},`children-${G}`)})})})},PI=WU;var DU=W({name:"SequenceCard",component:PI,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});import{useContext as FU}from"react";import{jsx as WI}from"react/jsx-runtime";var _U=({data:I,content:U,setUiAjaxConfiguration:Z})=>{let{name:z}=I,B=FU(K)??M;return WI(D,{card:z,data:I,children:U.map((T,q)=>{return WI(B,{uiConfig:T,setUiAjaxConfiguration:Z},`children-${q}`)})})},DI=_U;var VU=W({name:"UnionCard",component:DI,metadata:{author:"Swarm.ing",description:"Renders one of many components"}});import{useEffect as fU,useState as AU}from"react";import LU from"html-react-parser";import{useCallback as h,useEffect as wU,useRef as d,useState as KU}from"react";function MU(){let I=new AudioContext,U=I.createOscillator(),Z=U.connect(I.createMediaStreamDestination());U.start();let z=Z.stream.getAudioTracks()[0];return z.enabled=!1,z}function i(I=null,U){let[Z,z]=KU(!1),B=d(null),T=d(null),q=d(null),G=h(async(J,F=!0)=>{if(B.current)H();let Y=new RTCPeerConnection;if(Y.onconnectionstatechange=()=>{if(Y.connectionState==="connected")z(!0);else if(["disconnected","failed","closed"].includes(Y.connectionState))z(!1)},Y.ontrack=($)=>{if(I)I.srcObject=$.streams[0]},F){let $=await navigator.mediaDevices.getUserMedia({audio:!0});Y.addTrack($.getTracks()[0],$)}else{let $=MU();Y.addTrack($)}let O=Y.createDataChannel("oai-events");T.current=O,q.current=new Promise(($)=>{O.addEventListener("open",()=>{$()})});let V=await Y.createOffer();await Y.setLocalDescription(V);let f=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:V.sdp,headers:{Authorization:`Bearer ${J}`,"Content-Type":"application/sdp"}})).text();await Y.setRemoteDescription({type:"answer",sdp:f}),B.current=Y,await q.current},[I]),H=h(()=>{let J=T.current;if(J)J.close();B.current?.getSenders()?.forEach((F)=>F.track?.stop()),B.current?.close(),z(!1),B.current=null,T.current=null,q.current=null},[I]),Q=h((J)=>{let F=T.current;if(!F){console.error("Data channel is not ready",J);return}let Y=new Date().toLocaleTimeString();if(J.event_id=J.event_id||crypto.randomUUID(),F.send(JSON.stringify(J)),!J.timestamp)J.timestamp=Y;U?.(J)},[U,I]),X=h((J)=>{if(!T.current){console.error("Data channel is not ready");return}let Y=()=>{Q({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:J}]}}),Q({type:"response.create"})};if(q.current)q.current.then(Y);else Y()},[U,I]);return wU(()=>{let J=T.current;if(!J)return;let F=(Y)=>{let O=JSON.parse(Y.data);if(!O.timestamp)O.timestamp=new Date().toLocaleTimeString();U?.(O)};return J.addEventListener("message",F),()=>{J.removeEventListener("message",F)}},[U,I]),{isSessionActive:Z,startSession:G,stopSession:H,sendTextMessage:X}}import{jsx as RU}from"react/jsx-runtime";var CU=({data:I})=>{let{html:U,useSocketioSupport:Z,useCentrifugeSupport:z,useMittSupport:B,centrifugeChannel:T}=I,[q,G]=AU(U),{isSessionActive:H,startSession:Q,sendTextMessage:X}=i(null,(O)=>{if(console.log(O.type,O.type==="response.output_text.delta"&&O.delta),O.type==="response.output_text.delta"&&O.delta)G((V)=>V+O.delta)});return fU(()=>{G(U)},[U]),RU(D,{card:"HTMLEmbedCard",data:I,methods:{update:(O)=>{G(O.value)},generateUsingAI:async(O)=>{try{if(!H&&O.token)await Q(O.token,!1);X(O.prompt)}catch(V){console.error("Failed to generate using AI",V)}},initializeAI:async(O)=>{if(!H&&O.token)await Q(O.token,!1)}},useCentrifugeSupport:z,useSocketioSupport:Z,useMittSupport:B,centrifugeChannel:T,children:LU(q)})},FI=CU;var NU=W({name:"HTMLEmbedCard",component:FI,metadata:{author:"Swarm.ing"}});import{useEffect as jU,useState as EU}from"react";import{jsx as _I}from"react/jsx-runtime";var kU=({data:I})=>{let{name:U,value:Z,useSocketioSupport:z,useCentrifugeSupport:B,useMittSupport:T,centrifugeChannel:q}=I,[G,H]=EU(Z);return jU(()=>{H(Z)},[Z]),_I(D,{card:"HiddenCard",data:I,useSocketioSupport:z,useCentrifugeSupport:B,useMittSupport:T,centrifugeChannel:q,methods:{update:({value:Q})=>{H(Q)}},children:_I("input",{type:"hidden",id:U,name:U,value:G})})},VI=kU;var xU=W({name:"HiddenCard",component:VI,metadata:{author:"Swarm.ing"}});import{useContext as wI,useEffect as mU}from"react";import{createContext as yU}from"react";var SU=_("@swarm.ing/pieui:context:navigate",()=>yU(void 0)),E=SU;import{jsx as vU,Fragment as pU}from"react/jsx-runtime";var bU=({data:I})=>{let{url:U}=I,Z=wI(E),z=wI(R);return mU(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(U))window.location.href=U;else Z?.(U)},[U,Z]),vU(pU,{children:z})},KI=bU;var hU=W({name:"AutoRedirectCard",component:KI,metadata:{author:"Swarm.ing"}});import{Bounce as gU,Slide as cU,Zoom as oU,Flip as uU}from"react-toastify";import{toast as lU,ToastContainer as dU}from"react-toastify";import{useContext as iU,useMemo as rU,useRef as sU}from"react";import{jsx as r,Fragment as UT}from"react/jsx-runtime";var nU={bounce:gU,slide:cU,zoom:oU,flip:uU},aU=(I)=>{let U={...I,type:I.alertType,transition:I.transition?nU[I.transition]:void 0,position:I.position??"bottom-right",autoClose:I.autoClose??3000,style:{backgroundColor:"black",...I.sx}};lU(I.message,U)},tU=(I)=>{console.log("Log event",I)},eU=(I)=>{if(typeof window>"u"||!window.Notification){console.warn("[IOEventsCard] Notifications API is not available");return}let U=()=>{try{new window.Notification(I.title,{body:I.message??I.subtitle,icon:I.icon,silent:I.silent})}catch(z){console.error("[IOEventsCard] Failed to show notification",z)}},Z=window.Notification.permission;if(Z==="granted"){U();return}if(Z==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((z)=>{if(z==="granted")U()})},IT=({data:I})=>{let{useCentrifugeSupport:U,useSocketioSupport:Z,useMittSupport:z,centrifugeChannel:B}=I,T=iU(E),q=sU(T);q.current=T;let G=rU(()=>({alert:aU,log:tU,push:eU,redirect:(H)=>{if(H.to){let Q=H.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(Q))window.location.href=Q;else q.current?.(Q)}else window.location.reload()},reload:(H)=>{if(H.to){let Q=H.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(Q))window.location.href=Q;else q.current?.(Q)}else window.location.reload()}}),[]);return r(UT,{children:r(D,{card:"IOEventsCard",data:I,useCentrifugeSupport:U,useSocketioSupport:Z,useMittSupport:z,centrifugeChannel:B,methods:G,children:r(dU,{})})})},MI=IT;var TT=W({name:"IOEventsCard",component:MI,metadata:{author:"Swarm.ing"}});import{useEffect as fI,useState as zT}from"react";import{jsx as AI}from"react/jsx-runtime";var ZT=({data:I})=>{let{name:U,key:Z,value:z,useSocketioSupport:B,useCentrifugeSupport:T,useMittSupport:q,centrifugeChannel:G}=I,[H,Q]=zT(z);return fI(()=>{Q(z)},[z]),fI(()=>{if(typeof window>"u")return;sessionStorage.setItem(Z,H)},[Z,H]),AI(D,{card:"SessionStorageCard",data:I,useSocketioSupport:B,useCentrifugeSupport:T,useMittSupport:q,centrifugeChannel:G,methods:{update:({value:X})=>{Q(X)},remove:()=>{sessionStorage.removeItem(Z),Q("")}},children:AI("input",{type:"hidden",id:U,name:U,value:H})})},LI=ZT;var BT=W({name:"SessionStorageCard",component:LI,metadata:{author:"PieData"}});import{useEffect as CI,useState as $T}from"react";import{jsx as RI}from"react/jsx-runtime";var qT=({data:I})=>{let{name:U,key:Z,value:z,useSocketioSupport:B,useCentrifugeSupport:T,useMittSupport:q,centrifugeChannel:G}=I,[H,Q]=$T(z);return CI(()=>{Q(z)},[z]),CI(()=>{if(typeof window>"u")return;localStorage.setItem(Z,H)},[Z,H]),RI(D,{card:"DeviceStorageCard",data:I,useSocketioSupport:B,useCentrifugeSupport:T,useMittSupport:q,centrifugeChannel:G,methods:{update:({value:X})=>{Q(X)},remove:()=>{localStorage.removeItem(Z),Q("")}},children:RI("input",{type:"hidden",id:U,name:U,value:H})})},NI=qT;var HT=W({name:"DeviceStorageCard",component:NI,metadata:{author:"PieData"}});import{useCallback as s,useContext as n,useEffect as GT,useRef as JT,useState as jI}from"react";import{jsx as EI}from"react/jsx-runtime";var OT=({data:I,content:U})=>{let{useLoader:Z,noReturn:z,returnType:B,useSocketioSupport:T,useCentrifugeSupport:q,useMittSupport:G,centrifugeChannel:H}=I,Q=n(R),X=n(K)??M,[J,F]=jI(!1),[Y,O]=jI(null),V=JT(U),A=n(S),C=s(($)=>{if($===null)F(!0);else if(F(!1),!z)V.current=$;if(!z)O($)},[z]),L=s(($)=>{V.current=$.content,O($.content)},[]),f=s(($)=>{if($===null)F(!0);else if(F(!1),!z)for(let P of $)A?.emit(P.name,P.data)},[z,A]);if(GT(()=>{O(U),F(!1)},[U]),!Y&&Z)return Q;return EI(D,{card:"AjaxGroupCard",data:I,methods:{changeContent:L},useSocketioSupport:T,useCentrifugeSupport:q,useMittSupport:G,centrifugeChannel:H,children:EI(X,{uiConfig:Y??V.current,setUiAjaxConfiguration:B==="events"?f:C})})},kI=OT;var QT=W({name:"AjaxGroupCard",component:kI,metadata:{author:"Swarm.ing",description:"Group card with AJAX support"}});import{useContext as xI}from"react";import{jsx as a}from"react/jsx-runtime";var XT=({data:I,content:U,setUiAjaxConfiguration:Z})=>{let{name:z,url:B,sx:T}=I,q=xI(E),G=xI(K)??M;return a(D,{card:z,data:I,children:a("div",{style:T,id:z,onClick:(Q)=>{if(B)if(Q.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(B))window.location.href=B;else q?.(B)},children:a(G,{setUiAjaxConfiguration:Z,uiConfig:U})})})},yI=XT;var YT=W({name:"BoxCard",component:yI,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});import{useContext as PT}from"react";import{jsx as t}from"react/jsx-runtime";var WT=({data:I,content:U,setUiAjaxConfiguration:Z})=>{let{name:z,sx:B}=I,T=PT(K)??M;return t(D,{card:z,data:I,children:t("div",{style:B,id:z,children:U.map((q,G)=>{return t(T,{uiConfig:q,setUiAjaxConfiguration:Z},`children-${G}`)})})})},SI=WT;var DT=W({name:"OneOfCard",component:SI,metadata:{author:"Swarm.ing",description:"Different variants"}});export{VU as UnionCard,YU as UILoading,M as UI,BT as SessionStorageCard,DU as SequenceCard,D as PieCard,DT as OneOfCard,TT as IOEventsCard,xU as HiddenCard,NU as HTMLEmbedCard,HT as DeviceStorageCard,YT as BoxCard,hU as AutoRedirectCard,QT as AjaxGroupCard};
|
package/dist/components/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
var DU=Object.create;var{getPrototypeOf:_U,defineProperty:h,getOwnPropertyNames:wI,getOwnPropertyDescriptor:VU}=Object,KI=Object.prototype.hasOwnProperty;var MI=(I,U,z)=>{z=I!=null?DU(_U(I)):{};let T=U||!I||!I.__esModule?h(z,"default",{value:I,enumerable:!0}):z;for(let B of wI(I))if(!KI.call(T,B))h(T,B,{get:()=>I[B],enumerable:!0});return T},VI=new WeakMap,wU=(I)=>{var U=VI.get(I),z;if(U)return U;if(U=h({},"__esModule",{value:!0}),I&&typeof I==="object"||typeof I==="function")wI(I).map((T)=>!KI.call(U,T)&&h(U,T,{get:()=>I[T],enumerable:!(z=VU(I,T))||z.enumerable}));return VI.set(I,U),U};var KU=(I,U)=>{for(var z in U)h(I,z,{get:U[z],enumerable:!0,configurable:!0,set:(T)=>U[z]=()=>T})};var ZT={};KU(ZT,{UnionCard:()=>sI,UILoading:()=>cI,UI:()=>A,SessionStorageCard:()=>qU,SequenceCard:()=>dI,PieCard:()=>W,OneOfCard:()=>FU,IOEventsCard:()=>HU,HiddenCard:()=>UU,HTMLEmbedCard:()=>eI,DeviceStorageCard:()=>GU,BoxCard:()=>YU,AutoRedirectCard:()=>ZU,AjaxGroupCard:()=>QU});module.exports=wU(ZT);var K=require("react");var r=require("react");var OI=globalThis,_=(I,U)=>{let z=Symbol.for(I);if(!(z in OI))OI[z]=U();return OI[z]};var MU=_("@swarm.ing/pieui:context:pieConfig",()=>r.createContext(null)),fU=()=>{let I=r.useContext(MU);if(!I)throw Error("usePieConfig must be used within PieConfigProvider");return I};var g=()=>{let{enableRenderingLog:I}=fU();return I},fI=g;var AI=require("react"),AU=require("centrifuge");var GT=_("@swarm.ing/pieui:centrifuge-cache",()=>new Map);var LU=_("@swarm.ing/pieui:context:centrifuge",()=>AI.createContext(null)),LI=LU;var RU=require("socket.io-client"),RI=require("react");var YT=_("@swarm.ing/pieui:socket-cache",()=>new Map);var CU=_("@swarm.ing/pieui:context:socket",()=>RI.createContext(null)),CI=CU;var NU=MI(require("mitt")),s=require("react");var jU=_("@swarm.ing/pieui:context:mitt",()=>s.createContext(null));var n=jU;function NI(I){return I.wasRecovering===!0&&I.recovered===!1}function jI(I){return I.recoverable===!1}function EI(I,U,z){let T=I.getSubscription(U);if(T)return{subscription:T,createdHere:!1};return{subscription:I.newSubscription(U,z),createdHere:!0}}var EU=require("react");var kI=new Map,yI=(I,U)=>{kI.set(I,U)},xI=(I)=>{kI.delete(I)};var x=require("react/jsx-runtime"),kU=({card:I,data:U,children:z,useSocketioSupport:T=!1,useCentrifugeSupport:B=!1,useMittSupport:Z=!1,centrifugeChannel:$=void 0,methods:O=void 0,stored:q=void 0,onResync:Q=void 0})=>{let X=fI(),G=K.useRef(O);G.current=O;let D=K.useRef(Q);D.current=Q;let Y=K.useRef(q);Y.current=q;let J=typeof q==="function";if(K.useEffect(()=>{if(!J)return;let N=U.name;return yI(N,()=>[JSON.stringify(Y.current())]),()=>xI(N)},[J,U.name]),X)console.log("[PieCard] Rendering card:",I),console.log("[PieCard] Card data:",U),console.log("[PieCard] Component name:",U?.name),console.log("[PieCard] Real-time support:",{socketio:T,centrifuge:B,mitt:Z,centrifugeChannel:$}),console.log("[PieCard] Methods:",O?Object.keys(O):"none"),console.log("[PieCard] Has children:",!!z);let V=K.useContext(CI),C=K.useContext(LI),j=K.useContext(n);if(K.useEffect(()=>{if(!V||!T||!G.current||!U.name){if(X&&T)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!V,useSocketioSupport:T,hasMethods:!!G.current,hasDataName:!!U?.name});return}let R=Object.keys(G.current??{}).map((H)=>{let P=`pie${H}_${U.name}`;if(X)console.log(`[PieCard] Socket.IO registering event: ${P}`);let f=(y)=>{G.current?.[H]?.(y)};return V.on(P,f),[P,f]});return()=>{R.forEach(([H,P])=>{if(X)console.log(`[PieCard] Socket.IO unregistering event: ${H}`);V.off(H,P)})}},[V,U.name,T]),K.useEffect(()=>{if(!C||!B||!$||!U.name){if(X&&B)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!C,useCentrifugeSupport:B,hasCentrifugeChannel:!!$,hasMethods:!!G.current,hasDataName:!!U?.name});return}let R=Object.keys(G.current??{}).map((H)=>{let P=`pie${H}_${U.name}_${$}`;if(X)console.log(`[PieCard] Centrifuge subscribing to channel: ${P}`);let{subscription:f,createdHere:y}=EI(C,P,{recoverable:!0,positioned:!0}),DI=(v)=>{if(X)console.log(`[PieCard] Centrifuge received data on ${P}:`,v.data);G.current?.[H]?.(v.data)},_I=(v)=>{if(jI(v))console.warn(`[PieCard] Centrifuge channel ${P} is not `+"recoverable — enable history on the server "+"namespace for exact replay; relying on resync fallback only.");if(NI(v)){if(X)console.log(`[PieCard] Centrifuge recovery gap on ${P}; requesting resync`);D.current?.({channel:P,reason:"gap"})}};return f.on("publication",DI),f.on("subscribed",_I),f.subscribe(),{subscription:f,createdHere:y,onPublication:DI,onSubscribed:_I}});return()=>{R.forEach(({subscription:H,createdHere:P,onPublication:f,onSubscribed:y})=>{if(X)console.log("[PieCard] Centrifuge unsubscribing from channel");if(H.off("publication",f),H.off("subscribed",y),P)H.unsubscribe(),C.removeSubscription(H)})}},[C,$,U.name,B]),K.useEffect(()=>{if(!j||!Z||!U.name){if(X&&Z)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!j,useMittSupport:Z,hasMethods:!!G.current,hasDataName:!!U?.name});return}let N=Object.keys(G.current??{}),R={};return N.forEach((H)=>{let P=`pie${H}_${U.name}`,f=(y)=>{if(X)console.log(`[PieCard] Mitt registering event: ${P}`);G.current?.[H]?.(y)};R[P]=f,j.on(P,f)}),()=>{Object.entries(R).forEach(([H,P])=>{if(X)console.log(`[PieCard] Mitt unregistering event: ${H}`);j.off(H,P)})}},[j,U.name,Z]),X)console.log("[PieCard] Rendering complete, returning children");if(q!==void 0&&!J)return x.jsxs(x.Fragment,{children:[x.jsx("input",{type:"hidden",name:U.name,value:JSON.stringify(q)}),z]});return z},W=kU;var SI=require("react"),o=new Map;function yU(I,U){return U.catch(()=>{if(o.get(I)===U)o.delete(I)}),o.set(I,U),U}function mI(I,U){return SI.lazy(()=>{if(o.has(U))return o.get(U);return yU(U,I().then((z)=>z))})}var bI=_("@swarm.ing/pieui:component-registry",()=>new Map),xU=(I)=>{if(!I.name)throw Error("Component registration requires a name");if(!I.component&&!I.loader)throw Error(`Component "${I.name}" requires component or loader`);let U={name:I.name,component:I.component,loader:I.loader,metadata:I.metadata,fallback:I.fallback,isLazy:!1};if(!U.component&&U.loader)U.component=mI(U.loader,I.name),U.isLazy=!0;return U};function F(I){let U=xU(I);return bI.set(U.name,U),U.component}var a=(I)=>{return bI.get(I)};var c=require("react");var pI=require("react");var t=require("react/jsx-runtime"),SU=_("@swarm.ing/pieui:context:fallback",()=>pI.createContext(t.jsx(t.Fragment,{}))),E=SU;var vI=require("react");var mU=_("@swarm.ing/pieui:context:lazyError",()=>vI.createContext(void 0)),e=mU;var II=require("react"),hI=require("react/jsx-runtime"),bU=2,pU=400;class S extends II.Component{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(I){if(this.props.onError?.(I),this.state.attempt<bU){let U=pU*(this.state.attempt+1);this.timer=setTimeout(()=>{this.setState((z)=>({failed:!1,attempt:z.attempt+1}))},U)}}componentDidUpdate(I){if(I.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 hI.jsx(II.Suspense,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}var UI=require("react/jsx-runtime");function vU({uiConfig:I,setUiAjaxConfiguration:U}){let z=c.useContext(E),T=c.useContext(e),B=g();if(B)console.log("[UI] Rendering component:",I.card),console.log("[UI] Component data:",I.data),console.log("[UI] Component content:",I.content),console.log("[UI] Has setUiAjaxConfiguration:",!!U);let Z=a(I.card);if(!Z?.component){if(B)console.warn(`[UI] Component not found in registry: ${I.card}`),console.log("[UI] Returning fallback component");return z}if(B)console.log("[UI] Found component in registry:",{name:Z.name,isLazy:Z.isLazy,hasMetadata:!!Z.metadata});let $=Z.component,O=UI.jsx($,{data:I.data,content:I.content,setUiAjaxConfiguration:U});if(Z.isLazy){if(B)console.log("[UI] Rendering lazy component with Suspense:",Z.name);return UI.jsx(S,{name:Z.name,fallback:Z.fallback?UI.jsx(Z.fallback,{}):z,onError:T,children:O})}if(B)console.log("[UI] Rendering component directly:",Z.name);return O}var A=c.memo(vU);var GI=require("react");var gI=require("react");var hU=_("@swarm.ing/pieui:context:uiRenderer",()=>gI.createContext(null)),L=hU;var l=require("react/jsx-runtime");function oI({uiConfig:I,setUiAjaxConfiguration:U}){let z=GI.useContext(E),T=GI.useContext(e),B=g();if(B)console.log("[UILoading] Rendering fallback for:",I.card),console.log("[UILoading] Component data:",I.data),console.log("[UILoading] Component content:",I.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!U);let Z=a(I.card);if(!Z?.component){if(B)console.warn(`[UILoading] Component not found in registry: ${I.card}`),console.log("[UILoading] Returning fallback component");return z}if(B)console.log("[UILoading] Found component in registry:",{name:Z.name,isLazy:Z.isLazy,hasMetadata:!!Z.metadata,hasFallback:!!Z.fallback});if(Z.fallback){if(B)console.log("[UILoading] Rendering fallback for:",Z.name);let q=Z.fallback;return l.jsx(q,{})}if(B)console.log("[UILoading] No fallback, rendering full component:",Z.name);let $=Z.component,O=l.jsx(L.Provider,{value:oI,children:l.jsx($,{data:I.data,content:I.content,setUiAjaxConfiguration:U})});if(Z.isLazy)return l.jsx(S,{name:Z.name,fallback:z,onError:T,children:O});return O}var cI=oI;var lI=require("react");var TI=require("react/jsx-runtime"),gU=({data:I,content:U,setUiAjaxConfiguration:z})=>{let{name:T,sx:B}=I,Z=lI.useContext(L)??A;return TI.jsx(W,{card:T,data:I,children:TI.jsx("div",{style:B,id:T,children:U.map(($,O)=>{return TI.jsx(Z,{uiConfig:$,setUiAjaxConfiguration:z},`children-${O}`)})})})},uI=gU;var dI=F({name:"SequenceCard",component:uI,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var iI=require("react");var JI=require("react/jsx-runtime"),oU=({data:I,content:U,setUiAjaxConfiguration:z})=>{let{name:T}=I,B=iI.useContext(L)??A;return JI.jsx(W,{card:T,data:I,children:U.map((Z,$)=>{return JI.jsx(B,{uiConfig:Z,setUiAjaxConfiguration:z},`children-${$}`)})})},rI=oU;var sI=F({name:"UnionCard",component:rI,metadata:{author:"Swarm.ing",description:"Renders one of many components"}});var zI=require("react"),nI=MI(require("html-react-parser"));var M=require("react");function cU(){let I=new AudioContext,U=I.createOscillator(),z=U.connect(I.createMediaStreamDestination());U.start();let T=z.stream.getAudioTracks()[0];return T.enabled=!1,T}function QI(I=null,U){let[z,T]=M.useState(!1),B=M.useRef(null),Z=M.useRef(null),$=M.useRef(null),O=M.useCallback(async(G,D=!0)=>{if(B.current)q();let Y=new RTCPeerConnection;if(Y.onconnectionstatechange=()=>{if(Y.connectionState==="connected")T(!0);else if(["disconnected","failed","closed"].includes(Y.connectionState))T(!1)},Y.ontrack=(H)=>{if(I)I.srcObject=H.streams[0]},D){let H=await navigator.mediaDevices.getUserMedia({audio:!0});Y.addTrack(H.getTracks()[0],H)}else{let H=cU();Y.addTrack(H)}let J=Y.createDataChannel("oai-events");Z.current=J,$.current=new Promise((H)=>{J.addEventListener("open",()=>{H()})});let V=await Y.createOffer();await Y.setLocalDescription(V);let R=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:V.sdp,headers:{Authorization:`Bearer ${G}`,"Content-Type":"application/sdp"}})).text();await Y.setRemoteDescription({type:"answer",sdp:R}),B.current=Y,await $.current},[I]),q=M.useCallback(()=>{let G=Z.current;if(G)G.close();B.current?.getSenders()?.forEach((D)=>D.track?.stop()),B.current?.close(),T(!1),B.current=null,Z.current=null,$.current=null},[I]),Q=M.useCallback((G)=>{let D=Z.current;if(!D){console.error("Data channel is not ready",G);return}let Y=new Date().toLocaleTimeString();if(G.event_id=G.event_id||crypto.randomUUID(),D.send(JSON.stringify(G)),!G.timestamp)G.timestamp=Y;U?.(G)},[U,I]),X=M.useCallback((G)=>{if(!Z.current){console.error("Data channel is not ready");return}let Y=()=>{Q({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:G}]}}),Q({type:"response.create"})};if($.current)$.current.then(Y);else Y()},[U,I]);return M.useEffect(()=>{let G=Z.current;if(!G)return;let D=(Y)=>{let J=JSON.parse(Y.data);if(!J.timestamp)J.timestamp=new Date().toLocaleTimeString();U?.(J)};return G.addEventListener("message",D),()=>{G.removeEventListener("message",D)}},[U,I]),{isSessionActive:z,startSession:O,stopSession:q,sendTextMessage:X}}var tI=require("react/jsx-runtime"),lU=({data:I})=>{let{html:U,useSocketioSupport:z,useCentrifugeSupport:T,useMittSupport:B,centrifugeChannel:Z}=I,[$,O]=zI.useState(U),{isSessionActive:q,startSession:Q,sendTextMessage:X}=QI(null,(J)=>{if(console.log(J.type,J.type==="response.output_text.delta"&&J.delta),J.type==="response.output_text.delta"&&J.delta)O((V)=>V+J.delta)});return zI.useEffect(()=>{O(U)},[U]),tI.jsx(W,{card:"HTMLEmbedCard",data:I,methods:{update:(J)=>{O(J.value)},generateUsingAI:async(J)=>{try{if(!q&&J.token)await Q(J.token,!1);X(J.prompt)}catch(V){console.error("Failed to generate using AI",V)}},initializeAI:async(J)=>{if(!q&&J.token)await Q(J.token,!1)}},useCentrifugeSupport:T,useSocketioSupport:z,useMittSupport:B,centrifugeChannel:Z,children:nI.default($)})},aI=lU;var eI=F({name:"HTMLEmbedCard",component:aI,metadata:{author:"Swarm.ing"}});var ZI=require("react");var XI=require("react/jsx-runtime"),uU=({data:I})=>{let{name:U,value:z,useSocketioSupport:T,useCentrifugeSupport:B,useMittSupport:Z,centrifugeChannel:$}=I,[O,q]=ZI.useState(z);return ZI.useEffect(()=>{q(z)},[z]),XI.jsx(W,{card:"HiddenCard",data:I,useSocketioSupport:T,useCentrifugeSupport:B,useMittSupport:Z,centrifugeChannel:$,methods:{update:({value:Q})=>{q(Q)}},children:XI.jsx("input",{type:"hidden",id:U,name:U,value:O})})},IU=uU;var UU=F({name:"HiddenCard",component:IU,metadata:{author:"Swarm.ing"}});var u=require("react");var TU=require("react");var dU=_("@swarm.ing/pieui:context:navigate",()=>TU.createContext(void 0)),m=dU;var BI=require("react/jsx-runtime"),iU=({data:I})=>{let{url:U}=I,z=u.useContext(m),T=u.useContext(E);return u.useEffect(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(U))window.location.href=U;else z?.(U)},[U,z]),BI.jsx(BI.Fragment,{children:T})},zU=iU;var ZU=F({name:"AutoRedirectCard",component:zU,metadata:{author:"Swarm.ing"}});var k=require("react-toastify"),HI=require("react-toastify");var p=require("react");var b=require("react/jsx-runtime"),rU={bounce:k.Bounce,slide:k.Slide,zoom:k.Zoom,flip:k.Flip},sU=(I)=>{let U={...I,type:I.alertType,transition:I.transition?rU[I.transition]:void 0,position:I.position??"bottom-right",autoClose:I.autoClose??3000,style:{backgroundColor:"black",...I.sx}};HI.toast(I.message,U)},nU=(I)=>{console.log("Log event",I)},aU=(I)=>{if(typeof window>"u"||!window.Notification){console.warn("[IOEventsCard] Notifications API is not available");return}let U=()=>{try{new window.Notification(I.title,{body:I.message??I.subtitle,icon:I.icon,silent:I.silent})}catch(T){console.error("[IOEventsCard] Failed to show notification",T)}},z=window.Notification.permission;if(z==="granted"){U();return}if(z==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((T)=>{if(T==="granted")U()})},tU=({data:I})=>{let{useCentrifugeSupport:U,useSocketioSupport:z,useMittSupport:T,centrifugeChannel:B}=I,Z=p.useContext(m),$=p.useRef(Z);$.current=Z;let O=p.useMemo(()=>({alert:sU,log:nU,push:aU,redirect:(q)=>{if(q.to){let Q=q.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(Q))window.location.href=Q;else $.current?.(Q)}else window.location.reload()},reload:(q)=>{if(q.to){let Q=q.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(Q))window.location.href=Q;else $.current?.(Q)}else window.location.reload()}}),[]);return b.jsx(b.Fragment,{children:b.jsx(W,{card:"IOEventsCard",data:I,useCentrifugeSupport:U,useSocketioSupport:z,useMittSupport:T,centrifugeChannel:B,methods:O,children:b.jsx(HI.ToastContainer,{})})})},BU=tU;var HU=F({name:"IOEventsCard",component:BU,metadata:{author:"Swarm.ing"}});var d=require("react");var YI=require("react/jsx-runtime"),eU=({data:I})=>{let{name:U,key:z,value:T,useSocketioSupport:B,useCentrifugeSupport:Z,useMittSupport:$,centrifugeChannel:O}=I,[q,Q]=d.useState(T);return d.useEffect(()=>{Q(T)},[T]),d.useEffect(()=>{if(typeof window>"u")return;sessionStorage.setItem(z,q)},[z,q]),YI.jsx(W,{card:"SessionStorageCard",data:I,useSocketioSupport:B,useCentrifugeSupport:Z,useMittSupport:$,centrifugeChannel:O,methods:{update:({value:X})=>{Q(X)},remove:()=>{sessionStorage.removeItem(z),Q("")}},children:YI.jsx("input",{type:"hidden",id:U,name:U,value:q})})},$U=eU;var qU=F({name:"SessionStorageCard",component:$U,metadata:{author:"PieData"}});var i=require("react");var PI=require("react/jsx-runtime"),IT=({data:I})=>{let{name:U,key:z,value:T,useSocketioSupport:B,useCentrifugeSupport:Z,useMittSupport:$,centrifugeChannel:O}=I,[q,Q]=i.useState(T);return i.useEffect(()=>{Q(T)},[T]),i.useEffect(()=>{if(typeof window>"u")return;localStorage.setItem(z,q)},[z,q]),PI.jsx(W,{card:"DeviceStorageCard",data:I,useSocketioSupport:B,useCentrifugeSupport:Z,useMittSupport:$,centrifugeChannel:O,methods:{update:({value:X})=>{Q(X)},remove:()=>{localStorage.removeItem(z),Q("")}},children:PI.jsx("input",{type:"hidden",id:U,name:U,value:q})})},OU=IT;var GU=F({name:"DeviceStorageCard",component:OU,metadata:{author:"PieData"}});var w=require("react");var WI=require("react/jsx-runtime"),UT=({data:I,content:U})=>{let{useLoader:z,noReturn:T,returnType:B,useSocketioSupport:Z,useCentrifugeSupport:$,useMittSupport:O,centrifugeChannel:q}=I,Q=w.useContext(E),X=w.useContext(L)??A,[G,D]=w.useState(!1),[Y,J]=w.useState(null),V=w.useRef(U),C=w.useContext(n),j=w.useCallback((H)=>{if(H===null)D(!0);else if(D(!1),!T)V.current=H;if(!T)J(H)},[T]),N=w.useCallback((H)=>{V.current=H.content,J(H.content)},[]),R=w.useCallback((H)=>{if(H===null)D(!0);else if(D(!1),!T)for(let P of H)C?.emit(P.name,P.data)},[T,C]);if(w.useEffect(()=>{J(U),D(!1)},[U]),!Y&&z)return Q;return WI.jsx(W,{card:"AjaxGroupCard",data:I,methods:{changeContent:N},useSocketioSupport:Z,useCentrifugeSupport:$,useMittSupport:O,centrifugeChannel:q,children:WI.jsx(X,{uiConfig:Y??V.current,setUiAjaxConfiguration:B==="events"?R:j})})},JU=UT;var QU=F({name:"AjaxGroupCard",component:JU,metadata:{author:"Swarm.ing",description:"Group card with AJAX support"}});var FI=require("react");var $I=require("react/jsx-runtime"),TT=({data:I,content:U,setUiAjaxConfiguration:z})=>{let{name:T,url:B,sx:Z}=I,$=FI.useContext(m),O=FI.useContext(L)??A;return $I.jsx(W,{card:T,data:I,children:$I.jsx("div",{style:Z,id:T,onClick:(Q)=>{if(B)if(Q.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(B))window.location.href=B;else $?.(B)},children:$I.jsx(O,{setUiAjaxConfiguration:z,uiConfig:U})})})},XU=TT;var YU=F({name:"BoxCard",component:XU,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var PU=require("react");var qI=require("react/jsx-runtime"),zT=({data:I,content:U,setUiAjaxConfiguration:z})=>{let{name:T,sx:B}=I,Z=PU.useContext(L)??A;return qI.jsx(W,{card:T,data:I,children:qI.jsx("div",{style:B,id:T,children:U.map(($,O)=>{return qI.jsx(Z,{uiConfig:$,setUiAjaxConfiguration:z},`children-${O}`)})})})},WU=zT;var FU=F({name:"OneOfCard",component:WU,metadata:{author:"Swarm.ing",description:"Different variants"}});
|
|
2
|
+
var FU=Object.create;var{getPrototypeOf:_U,defineProperty:h,getOwnPropertyNames:wI,getOwnPropertyDescriptor:VU}=Object,KI=Object.prototype.hasOwnProperty;var MI=(I,U,z)=>{z=I!=null?FU(_U(I)):{};let T=U||!I||!I.__esModule?h(z,"default",{value:I,enumerable:!0}):z;for(let B of wI(I))if(!KI.call(T,B))h(T,B,{get:()=>I[B],enumerable:!0});return T},VI=new WeakMap,wU=(I)=>{var U=VI.get(I),z;if(U)return U;if(U=h({},"__esModule",{value:!0}),I&&typeof I==="object"||typeof I==="function")wI(I).map((T)=>!KI.call(U,T)&&h(U,T,{get:()=>I[T],enumerable:!(z=VU(I,T))||z.enumerable}));return VI.set(I,U),U};var KU=(I,U)=>{for(var z in U)h(I,z,{get:U[z],enumerable:!0,configurable:!0,set:(T)=>U[z]=()=>T})};var ZT={};KU(ZT,{UnionCard:()=>sI,UILoading:()=>oI,UI:()=>A,SessionStorageCard:()=>HU,SequenceCard:()=>dI,PieCard:()=>W,OneOfCard:()=>DU,IOEventsCard:()=>$U,HiddenCard:()=>UU,HTMLEmbedCard:()=>eI,DeviceStorageCard:()=>JU,BoxCard:()=>YU,AutoRedirectCard:()=>ZU,AjaxGroupCard:()=>QU});module.exports=wU(ZT);var K=require("react");var r=require("react");var GI=globalThis,_=(I,U)=>{let z=Symbol.for(I);if(!(z in GI))GI[z]=U();return GI[z]};var MU=_("@swarm.ing/pieui:context:pieConfig",()=>r.createContext(null)),fU=()=>{let I=r.useContext(MU);if(!I)throw Error("usePieConfig must be used within PieConfigProvider");return I};var g=()=>{let{enableRenderingLog:I}=fU();return I},fI=g;var AI=require("react"),AU=require("centrifuge");var JT=_("@swarm.ing/pieui:centrifuge-cache",()=>new Map);var LU=_("@swarm.ing/pieui:context:centrifuge",()=>AI.createContext(null)),LI=LU;var CU=require("socket.io-client"),CI=require("react");var YT=_("@swarm.ing/pieui:socket-cache",()=>new Map);var RU=_("@swarm.ing/pieui:context:socket",()=>CI.createContext(null)),RI=RU;var NU=MI(require("mitt")),s=require("react");var jU=_("@swarm.ing/pieui:context:mitt",()=>s.createContext(null));var n=jU;function NI(I){return I.wasRecovering===!0&&I.recovered===!1}function jI(I){return I.recoverable===!1}function EI(I,U,z){let T=I.getSubscription(U);if(T)return{subscription:T,createdHere:!1};return{subscription:I.newSubscription(U,z),createdHere:!0}}var EU=require("react");var kI=new Map,xI=(I,U)=>{kI.set(I,U)},yI=(I)=>{kI.delete(I)};var y=require("react/jsx-runtime"),kU=({card:I,data:U,children:z,useSocketioSupport:T=!1,useCentrifugeSupport:B=!1,useMittSupport:Z=!1,centrifugeChannel:q=void 0,methods:G=void 0,stored:H=void 0,onResync:Q=void 0})=>{let X=fI(),J=K.useRef(G);J.current=G;let F=K.useRef(Q);F.current=Q;let Y=K.useRef(H);Y.current=H;let O=typeof H==="function";if(K.useEffect(()=>{if(!O)return;let N=U.name;return xI(N,()=>[JSON.stringify(Y.current())]),()=>yI(N)},[O,U.name]),X)console.log("[PieCard] Rendering card:",I),console.log("[PieCard] Card data:",U),console.log("[PieCard] Component name:",U?.name),console.log("[PieCard] Real-time support:",{socketio:T,centrifuge:B,mitt:Z,centrifugeChannel:q}),console.log("[PieCard] Methods:",G?Object.keys(G):"none"),console.log("[PieCard] Has children:",!!z);let V=K.useContext(RI),R=K.useContext(LI),j=K.useContext(n);if(K.useEffect(()=>{if(!V||!T||!J.current||!U.name){if(X&&T)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!V,useSocketioSupport:T,hasMethods:!!J.current,hasDataName:!!U?.name});return}let C=Object.keys(J.current??{}).map(($)=>{let P=`pie${$}_${U.name}`;if(X)console.log(`[PieCard] Socket.IO registering event: ${P}`);let f=(x)=>{J.current?.[$]?.(x)};return V.on(P,f),[P,f]});return()=>{C.forEach(([$,P])=>{if(X)console.log(`[PieCard] Socket.IO unregistering event: ${$}`);V.off($,P)})}},[V,U.name,T]),K.useEffect(()=>{if(!R||!B||!q||!U.name){if(X&&B)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!R,useCentrifugeSupport:B,hasCentrifugeChannel:!!q,hasMethods:!!J.current,hasDataName:!!U?.name});return}let C=Object.keys(J.current??{}).map(($)=>{let P=`pie${$}_${U.name}_${q}`;if(X)console.log(`[PieCard] Centrifuge subscribing to channel: ${P}`);let{subscription:f,createdHere:x}=EI(R,P,{recoverable:!0,positioned:!0}),FI=(v)=>{if(X)console.log(`[PieCard] Centrifuge received data on ${P}:`,v.data);J.current?.[$]?.(v.data)},_I=(v)=>{if(jI(v))console.warn(`[PieCard] Centrifuge channel ${P} is not `+"recoverable — enable history on the server "+"namespace for exact replay; relying on resync fallback only.");if(NI(v)){if(X)console.log(`[PieCard] Centrifuge recovery gap on ${P}; requesting resync`);F.current?.({channel:P,reason:"gap"})}};return f.on("publication",FI),f.on("subscribed",_I),f.subscribe(),{subscription:f,createdHere:x,onPublication:FI,onSubscribed:_I}});return()=>{C.forEach(({subscription:$,createdHere:P,onPublication:f,onSubscribed:x})=>{if(X)console.log("[PieCard] Centrifuge unsubscribing from channel");if($.off("publication",f),$.off("subscribed",x),P)$.unsubscribe(),R.removeSubscription($)})}},[R,q,U.name,B]),K.useEffect(()=>{if(!j||!Z||!U.name){if(X&&Z)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!j,useMittSupport:Z,hasMethods:!!J.current,hasDataName:!!U?.name});return}let N=Object.keys(J.current??{}),C={};return N.forEach(($)=>{let P=`pie${$}_${U.name}`,f=(x)=>{if(X)console.log(`[PieCard] Mitt registering event: ${P}`);J.current?.[$]?.(x)};C[P]=f,j.on(P,f)}),()=>{Object.entries(C).forEach(([$,P])=>{if(X)console.log(`[PieCard] Mitt unregistering event: ${$}`);j.off($,P)})}},[j,U.name,Z]),X)console.log("[PieCard] Rendering complete, returning children");if(H!==void 0&&!O)return y.jsxs(y.Fragment,{children:[y.jsx("input",{type:"hidden",name:U.name,value:JSON.stringify(H)}),z]});return z},W=kU;var SI=require("react"),c=new Map;function xU(I,U){return U.catch(()=>{if(c.get(I)===U)c.delete(I)}),c.set(I,U),U}function mI(I,U){return SI.lazy(()=>{if(c.has(U))return c.get(U);return xU(U,I().then((z)=>z))})}var bI=_("@swarm.ing/pieui:component-registry",()=>new Map),yU=(I)=>{if(!I.name)throw Error("Component registration requires a name");if(!I.component&&!I.loader)throw Error(`Component "${I.name}" requires component or loader`);let U={name:I.name,component:I.component,loader:I.loader,metadata:I.metadata,fallback:I.fallback,isLazy:!1};if(!U.component&&U.loader)U.component=mI(U.loader,I.name),U.isLazy=!0;return U};function D(I){let U=yU(I);return bI.set(U.name,U),U.component}var a=(I)=>{return bI.get(I)};var o=require("react");var pI=require("react");var t=require("react/jsx-runtime"),SU=_("@swarm.ing/pieui:context:fallback",()=>pI.createContext(t.jsx(t.Fragment,{}))),E=SU;var vI=require("react");var mU=_("@swarm.ing/pieui:context:lazyError",()=>vI.createContext(void 0)),e=mU;var II=require("react"),hI=require("react/jsx-runtime"),bU=2,pU=400;class S extends II.Component{state={failed:!1,attempt:0};timer;static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(I){if(this.props.onError?.(I),this.state.attempt<bU){let U=pU*(this.state.attempt+1);this.timer=setTimeout(()=>{this.setState((z)=>({failed:!1,attempt:z.attempt+1}))},U)}}componentDidUpdate(I){if(I.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 hI.jsx(II.Suspense,{fallback:this.props.fallback,children:this.props.children},`${this.props.name}:${this.state.attempt}`)}}var UI=require("react/jsx-runtime");function vU({uiConfig:I,setUiAjaxConfiguration:U}){let z=o.useContext(E),T=o.useContext(e),B=g();if(B)console.log("[UI] Rendering component:",I.card),console.log("[UI] Component data:",I.data),console.log("[UI] Component content:",I.content),console.log("[UI] Has setUiAjaxConfiguration:",!!U);let Z=a(I.card);if(!Z?.component){if(B)console.warn(`[UI] Component not found in registry: ${I.card}`),console.log("[UI] Returning fallback component");return z}if(B)console.log("[UI] Found component in registry:",{name:Z.name,isLazy:Z.isLazy,hasMetadata:!!Z.metadata});let q=Z.component,G=UI.jsx(q,{data:I.data,content:I.content,setUiAjaxConfiguration:U});if(Z.isLazy){if(B)console.log("[UI] Rendering lazy component with Suspense:",Z.name);return UI.jsx(S,{name:Z.name,fallback:Z.fallback?UI.jsx(Z.fallback,{}):z,onError:T,children:G})}if(B)console.log("[UI] Rendering component directly:",Z.name);return G}var A=o.memo(vU);var JI=require("react");var gI=require("react");var hU=_("@swarm.ing/pieui:context:uiRenderer",()=>gI.createContext(null)),L=hU;var u=require("react/jsx-runtime");function cI({uiConfig:I,setUiAjaxConfiguration:U}){let z=JI.useContext(E),T=JI.useContext(e),B=g();if(B)console.log("[UILoading] Rendering fallback for:",I.card),console.log("[UILoading] Component data:",I.data),console.log("[UILoading] Component content:",I.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!U);let Z=a(I.card);if(!Z?.component){if(B)console.warn(`[UILoading] Component not found in registry: ${I.card}`),console.log("[UILoading] Returning fallback component");return z}if(B)console.log("[UILoading] Found component in registry:",{name:Z.name,isLazy:Z.isLazy,hasMetadata:!!Z.metadata,hasFallback:!!Z.fallback});if(Z.fallback){if(B)console.log("[UILoading] Rendering fallback for:",Z.name);let H=Z.fallback;return u.jsx(H,{})}if(B)console.log("[UILoading] No fallback, rendering full component:",Z.name);let q=Z.component,G=u.jsx(L.Provider,{value:cI,children:u.jsx(q,{data:I.data,content:I.content,setUiAjaxConfiguration:U})});if(Z.isLazy)return u.jsx(S,{name:Z.name,fallback:z,onError:T,children:G});return G}var oI=cI;var uI=require("react");var TI=require("react/jsx-runtime"),gU=({data:I,content:U,setUiAjaxConfiguration:z})=>{let{name:T,sx:B}=I,Z=uI.useContext(L)??A;return TI.jsx(W,{card:T,data:I,children:TI.jsx("div",{style:B,id:T,children:U.map((q,G)=>{return TI.jsx(Z,{uiConfig:q,setUiAjaxConfiguration:z},`children-${G}`)})})})},lI=gU;var dI=D({name:"SequenceCard",component:lI,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var iI=require("react");var OI=require("react/jsx-runtime"),cU=({data:I,content:U,setUiAjaxConfiguration:z})=>{let{name:T}=I,B=iI.useContext(L)??A;return OI.jsx(W,{card:T,data:I,children:U.map((Z,q)=>{return OI.jsx(B,{uiConfig:Z,setUiAjaxConfiguration:z},`children-${q}`)})})},rI=cU;var sI=D({name:"UnionCard",component:rI,metadata:{author:"Swarm.ing",description:"Renders one of many components"}});var zI=require("react"),nI=MI(require("html-react-parser"));var M=require("react");function oU(){let I=new AudioContext,U=I.createOscillator(),z=U.connect(I.createMediaStreamDestination());U.start();let T=z.stream.getAudioTracks()[0];return T.enabled=!1,T}function QI(I=null,U){let[z,T]=M.useState(!1),B=M.useRef(null),Z=M.useRef(null),q=M.useRef(null),G=M.useCallback(async(J,F=!0)=>{if(B.current)H();let Y=new RTCPeerConnection;if(Y.onconnectionstatechange=()=>{if(Y.connectionState==="connected")T(!0);else if(["disconnected","failed","closed"].includes(Y.connectionState))T(!1)},Y.ontrack=($)=>{if(I)I.srcObject=$.streams[0]},F){let $=await navigator.mediaDevices.getUserMedia({audio:!0});Y.addTrack($.getTracks()[0],$)}else{let $=oU();Y.addTrack($)}let O=Y.createDataChannel("oai-events");Z.current=O,q.current=new Promise(($)=>{O.addEventListener("open",()=>{$()})});let V=await Y.createOffer();await Y.setLocalDescription(V);let C=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:V.sdp,headers:{Authorization:`Bearer ${J}`,"Content-Type":"application/sdp"}})).text();await Y.setRemoteDescription({type:"answer",sdp:C}),B.current=Y,await q.current},[I]),H=M.useCallback(()=>{let J=Z.current;if(J)J.close();B.current?.getSenders()?.forEach((F)=>F.track?.stop()),B.current?.close(),T(!1),B.current=null,Z.current=null,q.current=null},[I]),Q=M.useCallback((J)=>{let F=Z.current;if(!F){console.error("Data channel is not ready",J);return}let Y=new Date().toLocaleTimeString();if(J.event_id=J.event_id||crypto.randomUUID(),F.send(JSON.stringify(J)),!J.timestamp)J.timestamp=Y;U?.(J)},[U,I]),X=M.useCallback((J)=>{if(!Z.current){console.error("Data channel is not ready");return}let Y=()=>{Q({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:J}]}}),Q({type:"response.create"})};if(q.current)q.current.then(Y);else Y()},[U,I]);return M.useEffect(()=>{let J=Z.current;if(!J)return;let F=(Y)=>{let O=JSON.parse(Y.data);if(!O.timestamp)O.timestamp=new Date().toLocaleTimeString();U?.(O)};return J.addEventListener("message",F),()=>{J.removeEventListener("message",F)}},[U,I]),{isSessionActive:z,startSession:G,stopSession:H,sendTextMessage:X}}var tI=require("react/jsx-runtime"),uU=({data:I})=>{let{html:U,useSocketioSupport:z,useCentrifugeSupport:T,useMittSupport:B,centrifugeChannel:Z}=I,[q,G]=zI.useState(U),{isSessionActive:H,startSession:Q,sendTextMessage:X}=QI(null,(O)=>{if(console.log(O.type,O.type==="response.output_text.delta"&&O.delta),O.type==="response.output_text.delta"&&O.delta)G((V)=>V+O.delta)});return zI.useEffect(()=>{G(U)},[U]),tI.jsx(W,{card:"HTMLEmbedCard",data:I,methods:{update:(O)=>{G(O.value)},generateUsingAI:async(O)=>{try{if(!H&&O.token)await Q(O.token,!1);X(O.prompt)}catch(V){console.error("Failed to generate using AI",V)}},initializeAI:async(O)=>{if(!H&&O.token)await Q(O.token,!1)}},useCentrifugeSupport:T,useSocketioSupport:z,useMittSupport:B,centrifugeChannel:Z,children:nI.default(q)})},aI=uU;var eI=D({name:"HTMLEmbedCard",component:aI,metadata:{author:"Swarm.ing"}});var ZI=require("react");var XI=require("react/jsx-runtime"),lU=({data:I})=>{let{name:U,value:z,useSocketioSupport:T,useCentrifugeSupport:B,useMittSupport:Z,centrifugeChannel:q}=I,[G,H]=ZI.useState(z);return ZI.useEffect(()=>{H(z)},[z]),XI.jsx(W,{card:"HiddenCard",data:I,useSocketioSupport:T,useCentrifugeSupport:B,useMittSupport:Z,centrifugeChannel:q,methods:{update:({value:Q})=>{H(Q)}},children:XI.jsx("input",{type:"hidden",id:U,name:U,value:G})})},IU=lU;var UU=D({name:"HiddenCard",component:IU,metadata:{author:"Swarm.ing"}});var l=require("react");var TU=require("react");var dU=_("@swarm.ing/pieui:context:navigate",()=>TU.createContext(void 0)),m=dU;var BI=require("react/jsx-runtime"),iU=({data:I})=>{let{url:U}=I,z=l.useContext(m),T=l.useContext(E);return l.useEffect(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(U))window.location.href=U;else z?.(U)},[U,z]),BI.jsx(BI.Fragment,{children:T})},zU=iU;var ZU=D({name:"AutoRedirectCard",component:zU,metadata:{author:"Swarm.ing"}});var k=require("react-toastify"),$I=require("react-toastify");var p=require("react");var b=require("react/jsx-runtime"),rU={bounce:k.Bounce,slide:k.Slide,zoom:k.Zoom,flip:k.Flip},sU=(I)=>{let U={...I,type:I.alertType,transition:I.transition?rU[I.transition]:void 0,position:I.position??"bottom-right",autoClose:I.autoClose??3000,style:{backgroundColor:"black",...I.sx}};$I.toast(I.message,U)},nU=(I)=>{console.log("Log event",I)},aU=(I)=>{if(typeof window>"u"||!window.Notification){console.warn("[IOEventsCard] Notifications API is not available");return}let U=()=>{try{new window.Notification(I.title,{body:I.message??I.subtitle,icon:I.icon,silent:I.silent})}catch(T){console.error("[IOEventsCard] Failed to show notification",T)}},z=window.Notification.permission;if(z==="granted"){U();return}if(z==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((T)=>{if(T==="granted")U()})},tU=({data:I})=>{let{useCentrifugeSupport:U,useSocketioSupport:z,useMittSupport:T,centrifugeChannel:B}=I,Z=p.useContext(m),q=p.useRef(Z);q.current=Z;let G=p.useMemo(()=>({alert:sU,log:nU,push:aU,redirect:(H)=>{if(H.to){let Q=H.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(Q))window.location.href=Q;else q.current?.(Q)}else window.location.reload()},reload:(H)=>{if(H.to){let Q=H.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(Q))window.location.href=Q;else q.current?.(Q)}else window.location.reload()}}),[]);return b.jsx(b.Fragment,{children:b.jsx(W,{card:"IOEventsCard",data:I,useCentrifugeSupport:U,useSocketioSupport:z,useMittSupport:T,centrifugeChannel:B,methods:G,children:b.jsx($I.ToastContainer,{})})})},BU=tU;var $U=D({name:"IOEventsCard",component:BU,metadata:{author:"Swarm.ing"}});var d=require("react");var YI=require("react/jsx-runtime"),eU=({data:I})=>{let{name:U,key:z,value:T,useSocketioSupport:B,useCentrifugeSupport:Z,useMittSupport:q,centrifugeChannel:G}=I,[H,Q]=d.useState(T);return d.useEffect(()=>{Q(T)},[T]),d.useEffect(()=>{if(typeof window>"u")return;sessionStorage.setItem(z,H)},[z,H]),YI.jsx(W,{card:"SessionStorageCard",data:I,useSocketioSupport:B,useCentrifugeSupport:Z,useMittSupport:q,centrifugeChannel:G,methods:{update:({value:X})=>{Q(X)},remove:()=>{sessionStorage.removeItem(z),Q("")}},children:YI.jsx("input",{type:"hidden",id:U,name:U,value:H})})},qU=eU;var HU=D({name:"SessionStorageCard",component:qU,metadata:{author:"PieData"}});var i=require("react");var PI=require("react/jsx-runtime"),IT=({data:I})=>{let{name:U,key:z,value:T,useSocketioSupport:B,useCentrifugeSupport:Z,useMittSupport:q,centrifugeChannel:G}=I,[H,Q]=i.useState(T);return i.useEffect(()=>{Q(T)},[T]),i.useEffect(()=>{if(typeof window>"u")return;localStorage.setItem(z,H)},[z,H]),PI.jsx(W,{card:"DeviceStorageCard",data:I,useSocketioSupport:B,useCentrifugeSupport:Z,useMittSupport:q,centrifugeChannel:G,methods:{update:({value:X})=>{Q(X)},remove:()=>{localStorage.removeItem(z),Q("")}},children:PI.jsx("input",{type:"hidden",id:U,name:U,value:H})})},GU=IT;var JU=D({name:"DeviceStorageCard",component:GU,metadata:{author:"PieData"}});var w=require("react");var WI=require("react/jsx-runtime"),UT=({data:I,content:U})=>{let{useLoader:z,noReturn:T,returnType:B,useSocketioSupport:Z,useCentrifugeSupport:q,useMittSupport:G,centrifugeChannel:H}=I,Q=w.useContext(E),X=w.useContext(L)??A,[J,F]=w.useState(!1),[Y,O]=w.useState(null),V=w.useRef(U),R=w.useContext(n),j=w.useCallback(($)=>{if($===null)F(!0);else if(F(!1),!T)V.current=$;if(!T)O($)},[T]),N=w.useCallback(($)=>{V.current=$.content,O($.content)},[]),C=w.useCallback(($)=>{if($===null)F(!0);else if(F(!1),!T)for(let P of $)R?.emit(P.name,P.data)},[T,R]);if(w.useEffect(()=>{O(U),F(!1)},[U]),!Y&&z)return Q;return WI.jsx(W,{card:"AjaxGroupCard",data:I,methods:{changeContent:N},useSocketioSupport:Z,useCentrifugeSupport:q,useMittSupport:G,centrifugeChannel:H,children:WI.jsx(X,{uiConfig:Y??V.current,setUiAjaxConfiguration:B==="events"?C:j})})},OU=UT;var QU=D({name:"AjaxGroupCard",component:OU,metadata:{author:"Swarm.ing",description:"Group card with AJAX support"}});var DI=require("react");var qI=require("react/jsx-runtime"),TT=({data:I,content:U,setUiAjaxConfiguration:z})=>{let{name:T,url:B,sx:Z}=I,q=DI.useContext(m),G=DI.useContext(L)??A;return qI.jsx(W,{card:T,data:I,children:qI.jsx("div",{style:Z,id:T,onClick:(Q)=>{if(B)if(Q.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(B))window.location.href=B;else q?.(B)},children:qI.jsx(G,{setUiAjaxConfiguration:z,uiConfig:U})})})},XU=TT;var YU=D({name:"BoxCard",component:XU,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var PU=require("react");var HI=require("react/jsx-runtime"),zT=({data:I,content:U,setUiAjaxConfiguration:z})=>{let{name:T,sx:B}=I,Z=PU.useContext(L)??A;return HI.jsx(W,{card:T,data:I,children:HI.jsx("div",{style:B,id:T,children:U.map((q,G)=>{return HI.jsx(Z,{uiConfig:q,setUiAjaxConfiguration:z},`children-${G}`)})})})},WU=zT;var DU=D({name:"OneOfCard",component:WU,metadata:{author:"Swarm.ing",description:"Different variants"}});
|
package/dist/index.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ export { trackLazy } from './util/lazy';
|
|
|
12
12
|
export type { PieComponentProps, PieSimpleComponentProps, PieComplexComponentProps, PieContainerComponentProps, PieComplexContainerComponentProps, InputPieSimpleComponentProps, InputPieComplexComponentProps, InputPieContainerComponentProps, InputPieComplexContainerComponentProps, PieConfig, PieLinkSource, UIConfigType, SetUiAjaxConfigurationType, } from './types';
|
|
13
13
|
export type { PieQueryOptions } from './components/PieRoot/types';
|
|
14
14
|
export { useAjaxSubmit, useAjaxSubmits, discoverAjaxEndpoints, readAjaxKey, readAjaxKeyAsync, parseDepName, } from './util/ajaxCommonUtils';
|
|
15
|
-
export type { RetryPolicy, DepSource, AjaxEndpointConfig } from './util/ajaxCommonUtils';
|
|
15
|
+
export type { RetryPolicy, DepSource, AjaxEndpointConfig, AjaxSubmitFn, GetAjaxSubmitOptions, } from './util/ajaxCommonUtils';
|
|
16
16
|
export { usePieEmit } from './util/mitt';
|
|
17
17
|
export { default as MittContext, getEmitter } from './util/mitt';
|
|
18
18
|
export { default as SocketIOContext } from './util/socket';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,cAAc,CAAA;AAE5B,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EACH,OAAO,IAAI,iBAAiB,EAC5B,KAAK,eAAe,GACvB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,6BAA6B,CAAA;AACvE,YAAY,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAMtE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EACH,oBAAoB,EACpB,0BAA0B,EAC1B,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,0BAA0B,EAC1B,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,GACzB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,YAAY,EACR,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,0BAA0B,EAC1B,iCAAiC,EACjC,4BAA4B,EAC5B,6BAA6B,EAC7B,+BAA+B,EAC/B,sCAAsC,EACtC,SAAS,EACT,aAAa,EACb,YAAY,EACZ,0BAA0B,GAC7B,MAAM,SAAS,CAAA;AAEhB,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAEjE,OAAO,EACH,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EAChB,YAAY,GACf,MAAM,wBAAwB,CAAA;AAC/B,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,cAAc,CAAA;AAE5B,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EACH,OAAO,IAAI,iBAAiB,EAC5B,KAAK,eAAe,GACvB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,6BAA6B,CAAA;AACvE,YAAY,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAMtE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EACH,oBAAoB,EACpB,0BAA0B,EAC1B,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,0BAA0B,EAC1B,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,GACzB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,YAAY,EACR,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,0BAA0B,EAC1B,iCAAiC,EACjC,4BAA4B,EAC5B,6BAA6B,EAC7B,+BAA+B,EAC/B,sCAAsC,EACtC,SAAS,EACT,aAAa,EACb,YAAY,EACZ,0BAA0B,GAC7B,MAAM,SAAS,CAAA;AAEhB,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAEjE,OAAO,EACH,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EAChB,YAAY,GACf,MAAM,wBAAwB,CAAA;AAC/B,YAAY,EACR,WAAW,EACX,SAAS,EACT,kBAAkB,EAClB,YAAY,EACZ,oBAAoB,GACvB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAChE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,eAAe,CAAA;AAC1D,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EACH,gBAAgB,EAChB,aAAa,EACb,iBAAiB,GACpB,MAAM,kBAAkB,CAAA;AAMzB,OAAO,EAAE,EAAE,EAAE,MAAM,4BAA4B,CAAA;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA"}
|