@swarm.ing/pieui 2.0.22 → 2.0.23

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.
@@ -1,4 +1,6 @@
1
1
  import type { ParsedArgs } from './types';
2
2
  export declare const parseArgs: (argv: string[]) => ParsedArgs;
3
- export declare const printUsage: () => void;
3
+ export type HelpScope = 'all' | 'login' | 'create' | 'init' | 'postbuild' | 'card' | 'card-remote' | 'page';
4
+ export declare const detectHelpScope: (argv: string[]) => HelpScope | null;
5
+ export declare const printUsage: (scope?: HelpScope) => void;
4
6
  //# sourceMappingURL=args.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/code/args.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAMR,UAAU,EACb,MAAM,SAAS,CAAA;AAEhB,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,EAAE,KAAG,UAoP1C,CAAA;AAED,eAAO,MAAM,UAAU,YA2MtB,CAAA"}
1
+ {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/code/args.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAOR,UAAU,EACb,MAAM,SAAS,CAAA;AAoJhB,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,EAAE,KAAG,UAqH1C,CAAA;AAED,MAAM,MAAM,SAAS,GACf,KAAK,GACL,OAAO,GACP,QAAQ,GACR,MAAM,GACN,WAAW,GACX,MAAM,GACN,aAAa,GACb,MAAM,CAAA;AAEZ,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,EAAE,KAAG,SAAS,GAAG,IAkB5D,CAAA;AA8KD,eAAO,MAAM,UAAU,GAAI,QAAO,SAAiB,SAsBlD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/code/commands/add.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AA0C7D,eAAO,MAAM,UAAU,GACnB,eAAe,MAAM,EACrB,gBAAe,aAAmC,EAClD,UAAS,mBAAwB,SAiGpC,CAAA"}
1
+ {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/code/commands/add.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AA0C7D,eAAO,MAAM,UAAU,GACnB,eAAe,MAAM,EACrB,gBAAe,aAAmC,EAClD,UAAS,mBAAwB,SAmGpC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"addEvent.d.ts","sourceRoot":"","sources":["../../../src/code/commands/addEvent.ts"],"names":[],"mappings":"AAqFA,eAAO,MAAM,eAAe,GACxB,QAAQ,MAAM,EACd,eAAe,MAAM,EACrB,WAAW,MAAM,SAkJpB,CAAA"}
1
+ {"version":3,"file":"addEvent.d.ts","sourceRoot":"","sources":["../../../src/code/commands/addEvent.ts"],"names":[],"mappings":"AAqFA,eAAO,MAAM,eAAe,GACxB,QAAQ,MAAM,EACd,eAAe,MAAM,EACrB,WAAW,MAAM,SA+IpB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const cardPullCommand: (cardRef: string) => Promise<void>;
2
+ //# sourceMappingURL=cardPull.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cardPull.d.ts","sourceRoot":"","sources":["../../../src/code/commands/cardPull.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe,GAAU,SAAS,MAAM,KAAG,OAAO,CAAC,IAAI,CAEnE,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const cardViewCommand: (componentName: string) => void;
2
+ //# sourceMappingURL=cardView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cardView.d.ts","sourceRoot":"","sources":["../../../src/code/commands/cardView.ts"],"names":[],"mappings":"AA0DA,eAAO,MAAM,eAAe,GAAI,eAAe,MAAM,KAAG,IA6EvD,CAAA"}
@@ -1,2 +1,2 @@
1
- export declare const createCommand: (appName: string) => void;
1
+ export declare const createCommand: (appName: string) => Promise<void>;
2
2
  //# sourceMappingURL=create.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/code/commands/create.ts"],"names":[],"mappings":"AA2FA,eAAO,MAAM,aAAa,GAAI,SAAS,MAAM,SA6C5C,CAAA"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/code/commands/create.ts"],"names":[],"mappings":"AA4FA,eAAO,MAAM,aAAa,GAAU,SAAS,MAAM,kBA+ClD,CAAA"}
@@ -1,2 +1,2 @@
1
- export declare const initCommand: (outDir: string) => void;
1
+ export declare const initCommand: (outDir: string) => Promise<void>;
2
2
  //# sourceMappingURL=init.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/code/commands/init.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,SA8GzC,CAAA"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/code/commands/init.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,WAAW,GAAU,QAAQ,MAAM,kBAkH/C,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/code/commands/list.ts"],"names":[],"mappings":"AAGA,OAAO,EAAiB,UAAU,EAAqB,MAAM,UAAU,CAAA;AAWvE,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,EAAE,QAAQ,UAAU,SAkO7D,CAAA"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/code/commands/list.ts"],"names":[],"mappings":"AAGA,OAAO,EAAiB,UAAU,EAAqB,MAAM,UAAU,CAAA;AAWvE,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,EAAE,QAAQ,UAAU,SAgO7D,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"pageAdd.d.ts","sourceRoot":"","sources":["../../../src/code/commands/pageAdd.ts"],"names":[],"mappings":"AAoDA,eAAO,MAAM,cAAc,GAAI,UAAU,MAAM,SAwB9C,CAAA"}
1
+ {"version":3,"file":"pageAdd.d.ts","sourceRoot":"","sources":["../../../src/code/commands/pageAdd.ts"],"names":[],"mappings":"AAoDA,eAAO,MAAM,cAAc,GAAI,UAAU,MAAM,SAoB9C,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { PageAjaxAction } from '../types';
2
+ export declare const pageAjaxCommand: (pageName: string, action: PageAjaxAction, handlerName: string) => void;
3
+ //# sourceMappingURL=pageAjax.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pageAjax.d.ts","sourceRoot":"","sources":["../../../src/code/commands/pageAjax.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AA6B9C,eAAO,MAAM,eAAe,GACxB,UAAU,MAAM,EAChB,QAAQ,cAAc,EACtB,aAAa,MAAM,KACpB,IA8BF,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const pageViewCommand: (pagePath: string) => void;
2
+ //# sourceMappingURL=pageView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pageView.d.ts","sourceRoot":"","sources":["../../../src/code/commands/pageView.ts"],"names":[],"mappings":"AAwBA,eAAO,MAAM,eAAe,GAAI,UAAU,MAAM,KAAG,IAWlD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../src/code/scan.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAqB,MAAM,SAAS,CAAA;AAazE,eAAO,MAAM,0BAA0B,GAAI,QAAQ,MAAM,KAAG,aAAa,EAmOxE,CAAA;AAED,eAAO,MAAM,mBAAmB,GAC5B,WAAW,GAAG,EACd,SAAS,GAAG,KACb,aAgCF,CAAA"}
1
+ {"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../src/code/scan.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAqB,MAAM,SAAS,CAAA;AAazE,eAAO,MAAM,0BAA0B,GAAI,QAAQ,MAAM,KAAG,aAAa,EAqOxE,CAAA;AAED,eAAO,MAAM,mBAAmB,GAC5B,WAAW,GAAG,EACd,SAAS,GAAG,KACb,aAgCF,CAAA"}
@@ -3,9 +3,10 @@ export declare const MANIFEST_FILENAME = "pieui.components.json";
3
3
  export declare const REGISTER_FUNCTION = "registerPieComponent";
4
4
  export type ComponentType = 'simple' | 'complex' | 'simple-container' | 'complex-container';
5
5
  export type ListFilter = 'all' | ComponentType;
6
- export type CardAction = 'add' | 'remote';
6
+ export type CardAction = 'add' | 'list' | 'pull' | 'view' | 'remove' | 'list-events' | 'add-event' | 'remote';
7
7
  export type CardRemoteAction = 'push' | 'pull' | 'list' | 'remove' | 'history' | 'public' | 'private';
8
- export type PageAction = 'add';
8
+ export type PageAction = 'add' | 'view' | 'ajax';
9
+ export type PageAjaxAction = 'add' | 'remove';
9
10
  export type ParsedArgs = {
10
11
  command: string;
11
12
  outDir: string;
@@ -15,16 +16,19 @@ export type ParsedArgs = {
15
16
  createAppName?: string;
16
17
  componentType?: ComponentType;
17
18
  eventName?: string;
18
- removeComponentName?: string;
19
19
  listFilter?: ListFilter;
20
20
  cardAction?: CardAction;
21
21
  cardAjax?: boolean;
22
22
  cardIo?: boolean;
23
23
  cardRemoteAction?: CardRemoteAction;
24
+ cardPullRef?: string;
24
25
  remoteUserId?: string;
25
26
  remoteProject?: string;
26
27
  pageAction?: PageAction;
27
28
  pagePath?: string;
29
+ pageName?: string;
30
+ pageAjaxAction?: PageAjaxAction;
31
+ pageAjaxHandler?: string;
28
32
  historyPage?: number;
29
33
  historyPerPage?: number;
30
34
  historyFrom?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/code/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,wBAAwB,CAAA;AAElD,eAAO,MAAM,iBAAiB,0BAA0B,CAAA;AACxD,eAAO,MAAM,iBAAiB,yBAAyB,CAAA;AAEvD,MAAM,MAAM,aAAa,GACnB,QAAQ,GACR,SAAS,GACT,kBAAkB,GAClB,mBAAmB,CAAA;AAEzB,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,aAAa,CAAA;AAC9C,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,QAAQ,CAAA;AACzC,MAAM,MAAM,gBAAgB,GACtB,MAAM,GACN,MAAM,GACN,MAAM,GACN,QAAQ,GACR,SAAS,GACT,QAAQ,GACR,SAAS,CAAA;AACf,MAAM,MAAM,UAAU,GAAG,KAAK,CAAA;AAE9B,MAAM,MAAM,UAAU,GAAG;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,OAAO,CAAA;IACf,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,EAAE,CAAC,EAAE,OAAO,CAAA;CACf,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,GAAG,CAAC,UAAU,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,MAAM,CAAA;CACvB,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/code/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,wBAAwB,CAAA;AAElD,eAAO,MAAM,iBAAiB,0BAA0B,CAAA;AACxD,eAAO,MAAM,iBAAiB,yBAAyB,CAAA;AAEvD,MAAM,MAAM,aAAa,GACnB,QAAQ,GACR,SAAS,GACT,kBAAkB,GAClB,mBAAmB,CAAA;AAEzB,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,aAAa,CAAA;AAC9C,MAAM,MAAM,UAAU,GAChB,KAAK,GACL,MAAM,GACN,MAAM,GACN,MAAM,GACN,QAAQ,GACR,aAAa,GACb,WAAW,GACX,QAAQ,CAAA;AACd,MAAM,MAAM,gBAAgB,GACtB,MAAM,GACN,MAAM,GACN,MAAM,GACN,QAAQ,GACR,SAAS,GACT,QAAQ,GACR,SAAS,CAAA;AACf,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAA;AAChD,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,QAAQ,CAAA;AAE7C,MAAM,MAAM,UAAU,GAAG;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,OAAO,CAAA;IACf,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,EAAE,CAAC,EAAE,OAAO,CAAA;CACf,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,GAAG,CAAC,UAAU,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,MAAM,CAAA;CACvB,CAAA"}
@@ -17,6 +17,6 @@ import { PieCardProps } from './types';
17
17
  * Cleanup runs automatically on unmount or when `data.name`/the support
18
18
  * flags change.
19
19
  */
20
- declare const PieCard: ({ card, data, children, useSocketioSupport, useCentrifugeSupport, useMittSupport, centrifugeChannel, methods, }: PieCardProps) => import("react").ReactNode;
20
+ declare const PieCard: ({ card, data, children, useSocketioSupport, useCentrifugeSupport, useMittSupport, centrifugeChannel, methods, stored, }: PieCardProps) => string | number | bigint | boolean | Iterable<import("react").ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<import("react").ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null | undefined;
21
21
  export default PieCard;
22
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/PieCard/index.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEtC;;;;;;;;;;;;;;;;;GAiBG;AACH,QAAA,MAAM,OAAO,GAAI,iHASd,YAAY,8BAoLd,CAAA;AAED,eAAe,OAAO,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/PieCard/index.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEtC;;;;;;;;;;;;;;;;;GAiBG;AACH,QAAA,MAAM,OAAO,GAAI,yHAUd,YAAY,4WAiMd,CAAA;AAED,eAAe,OAAO,CAAA"}
@@ -48,5 +48,11 @@ export interface PieCardProps {
48
48
  * does not trigger re-subscription.
49
49
  */
50
50
  methods?: Record<string, (data: any) => void>;
51
+ /**
52
+ * When provided, renders a hidden input alongside `children` with
53
+ * `name={data.name}` and `value={JSON.stringify(stored)}` so the value
54
+ * can be submitted as part of a surrounding form.
55
+ */
56
+ stored?: unknown;
51
57
  }
52
58
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/PieCard/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IACxB,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAA;IACZ,sCAAsC;IACtC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAA;IACZ,+DAA+D;IAC/D,IAAI,EAAE,WAAW,CAAA;IACjB,mEAAmE;IACnE,QAAQ,EAAE,SAAS,CAAA;IACnB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,2DAA2D;IAC3D,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC,CAAA;CAChD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/PieCard/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IACxB,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAA;IACZ,sCAAsC;IACtC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IACzB,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAA;IACZ,+DAA+D;IAC/D,IAAI,EAAE,WAAW,CAAA;IACjB,mEAAmE;IACnE,QAAQ,EAAE,SAAS,CAAA;IACnB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,2DAA2D;IAC3D,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC,CAAA;IAC7C;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;CACnB"}
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- import{useContext as J,useEffect as X,useRef as Wo}from"react";import{createContext as zo,useContext as Bo}from"react";var Vo=zo(null),$o=()=>{let o=Bo(Vo);if(!o)throw new Error("usePieConfig must be used within PieConfigProvider");return o};var B=()=>{let{enableRenderingLog:o}=$o();return o},E=B;import{createContext as qo}from"react";import{Centrifuge as lf}from"centrifuge";var Go=qo(null),b=Go;import{io as nf}from"socket.io-client";import{createContext as Fo}from"react";var Jo=Fo(null),N=Jo;import Of from"mitt";import{createContext as Xo,useCallback as Zf,useContext as Lf}from"react";var Qo=Xo(null);var V=Qo;var Yo=({card:o,data:r,children:C,useSocketioSupport:f=!1,useCentrifugeSupport:p=!1,useMittSupport:u=!1,centrifugeChannel:i=void 0,methods:I=void 0})=>{let m=E(),d=Wo(I);if(d.current=I,m)console.log("[PieCard] Rendering card:",o),console.log("[PieCard] Card data:",r),console.log("[PieCard] Component name:",r?.name),console.log("[PieCard] Real-time support:",{socketio:f,centrifuge:p,mitt:u,centrifugeChannel:i}),console.log("[PieCard] Methods:",I?Object.keys(I):"none"),console.log("[PieCard] Has children:",!!C);let U=J(N),P=J(b),g=J(V);if(X(()=>{if(!U||!f||!d.current||!r.name){if(m&&f)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!U,useSocketioSupport:f,hasMethods:!!d.current,hasDataName:!!r?.name});return}let S=Object.keys(d.current??{}).map((l)=>{let T=`pie${l}_${r.name}`;if(m)console.log(`[PieCard] Socket.IO registering event: ${T}`);let O=(Z)=>{d.current?.[l]?.(Z)};return U.on(T,O),[T,O]});return()=>{S.forEach(([l,T])=>{if(m)console.log(`[PieCard] Socket.IO unregistering event: ${l}`);U.off(l,T)})}},[U,r.name,f]),X(()=>{if(!P||!p||!i||!r.name){if(m&&p)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!P,useCentrifugeSupport:p,hasCentrifugeChannel:!!i,hasMethods:!!d.current,hasDataName:!!r?.name});return}let S=Object.keys(d.current??{}).map((l)=>{let T=`pie${l}_${r.name}_${i}`;if(m)console.log(`[PieCard] Centrifuge subscribing to channel: ${T}`);let O=P.newSubscription(T);return O.on("publication",(Z)=>{if(m)console.log(`[PieCard] Centrifuge received data on ${T}:`,Z.data);d.current?.[l]?.(Z.data)}),O.subscribe(),O});return()=>{S.forEach((l)=>{if(m)console.log("[PieCard] Centrifuge unsubscribing from channel");l.unsubscribe(),P.removeSubscription(l)})}},[P,i,r.name,p]),X(()=>{if(!g||!u||!r.name){if(m&&u)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!g,useMittSupport:u,hasMethods:!!d.current,hasDataName:!!r?.name});return}let w=Object.keys(d.current??{}),S={};return w.forEach((l)=>{let T=`pie${l}_${r.name}`,O=(Z)=>{if(m)console.log(`[PieCard] Mitt registering event: ${T}`);d.current?.[l]?.(Z)};S[T]=O,g.on(T,O)}),()=>{Object.entries(S).forEach(([l,T])=>{if(m)console.log(`[PieCard] Mitt unregistering event: ${l}`);g.off(l,T)})}},[g,r.name,u]),m)console.log("[PieCard] Rendering complete, returning children");return C},A=Yo;import{lazy as to}from"react";var Q=new Map;function c(o,r){return to(()=>{if(Q.has(r))return Q.get(r);let C=o().then((f)=>f);return Q.set(r,C),C})}var j=new Map,yo=(o)=>{if(!o.name)throw new Error("Component registration requires a name");if(!o.component&&!o.loader)throw new Error(`Component "${o.name}" requires component or loader`);let r={name:o.name,component:o.component,loader:o.loader,metadata:o.metadata,fallback:o.fallback,isLazy:!1};if(!r.component&&r.loader)r.component=c(r.loader,o.name),r.loader=void 0,r.isLazy=!0;return r};function n(o){let r=yo(o);return j.set(r.name,r),r.component}var $=(o)=>{return j.get(o)};import{Suspense as _o,useContext as ko,memo as Eo}from"react";import{createContext as Mo}from"react";import{jsx as xo,Fragment as Ko}from"react/jsx-runtime";var Ro=Mo(xo(Ko,{})),L=Ro;import{jsx as W}from"react/jsx-runtime";function bo({uiConfig:o,setUiAjaxConfiguration:r}){let C=ko(L),f=B();if(f)console.log("[UI] Rendering component:",o.card),console.log("[UI] Component data:",o.data),console.log("[UI] Component content:",o.content),console.log("[UI] Has setUiAjaxConfiguration:",!!r);let p=$(o.card);if(!p?.component){if(f)console.warn(`[UI] Component not found in registry: ${o.card}`),console.log("[UI] Returning fallback component");return C}if(f)console.log("[UI] Found component in registry:",{name:p.name,isLazy:p.isLazy,hasMetadata:!!p.metadata});let u=p.component,i=W(u,{data:o.data,content:o.content,setUiAjaxConfiguration:r});if(p.isLazy){if(f)console.log("[UI] Rendering lazy component with Suspense:",p.name);return W(_o,{fallback:p.fallback?W(p.fallback,{}):C,children:i},`${p.name}`)}if(f)console.log("[UI] Rendering component directly:",p.name);return i}var D=Eo(bo);import{Suspense as jo,useContext as vo}from"react";import{createContext as No}from"react";var co=No(null),a=co;import{jsx as q}from"react/jsx-runtime";function v({uiConfig:o,setUiAjaxConfiguration:r}){let C=vo(L),f=B();if(f)console.log("[UILoading] Rendering fallback for:",o.card),console.log("[UILoading] Component data:",o.data),console.log("[UILoading] Component content:",o.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!r);let p=$(o.card);if(!p?.component){if(f)console.warn(`[UILoading] Component not found in registry: ${o.card}`),console.log("[UILoading] Returning fallback component");return C}if(f)console.log("[UILoading] Found component in registry:",{name:p.name,isLazy:p.isLazy,hasMetadata:!!p.metadata,hasFallback:!!p.fallback});if(p.fallback){if(f)console.log("[UILoading] Rendering fallback for:",p.name);let I=p.fallback;return q(I,{})}if(f)console.log("[UILoading] No fallback, rendering full component:",p.name);let u=p.component,i=q(a.Provider,{value:v,children:q(u,{data:o.data,content:o.content,setUiAjaxConfiguration:r})});if(p.isLazy)return q(jo,{fallback:C,children:i},`${p.name}`);return i}var so=v;import{useContext as ho}from"react";import{jsx as Y}from"react/jsx-runtime";var eo=({data:o,content:r,setUiAjaxConfiguration:C})=>{let{name:f,sx:p}=o,u=ho(a)??D;return Y(A,{card:f,data:o,children:Y("div",{style:p,id:f,children:r.map((i,I)=>{return Y(u,{uiConfig:i,setUiAjaxConfiguration:C},`children-${I}`)})})})},s=eo;var or=n({name:"SequenceCard",component:s,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});import{useContext as rr}from"react";import{jsx as h}from"react/jsx-runtime";var fr=({data:o,content:r,setUiAjaxConfiguration:C})=>{let{name:f}=o,p=rr(a)??D;return h(A,{card:f,data:o,children:r.map((u,i)=>{return h(p,{uiConfig:u,setUiAjaxConfiguration:C},`children-${i}`)})})},e=fr;var pr=n({name:"UnionCard",component:e,metadata:{author:"Swarm.ing",description:"Renders one of many components"}});import{useEffect as ir,useState as ur}from"react";import Ur from"html-react-parser";import{useCallback as G,useEffect as Cr,useRef as t,useState as dr}from"react";function mr(){let o=new AudioContext,r=o.createOscillator(),C=r.connect(o.createMediaStreamDestination());r.start();let f=C.stream.getAudioTracks()[0];return f.enabled=!1,f}function y(o=null,r){let[C,f]=dr(!1),p=t(null),u=t(null),i=t(null),I=G(async(P,g=!0)=>{if(p.current)m();let w=new RTCPeerConnection;if(w.onconnectionstatechange=()=>{if(w.connectionState==="connected")f(!0);else if(["disconnected","failed","closed"].includes(w.connectionState))f(!1)},w.ontrack=(H)=>{if(o)o.srcObject=H.streams[0]},g){let H=await navigator.mediaDevices.getUserMedia({audio:!0});w.addTrack(H.getTracks()[0],H)}else{let H=mr();w.addTrack(H)}let S=w.createDataChannel("oai-events");u.current=S,i.current=new Promise((H)=>{S.addEventListener("open",()=>{H()})});let l=await w.createOffer();await w.setLocalDescription(l);let F=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:l.sdp,headers:{Authorization:`Bearer ${P}`,"Content-Type":"application/sdp"}})).text();await w.setRemoteDescription({type:"answer",sdp:F}),p.current=w,await i.current},[o]),m=G(()=>{let P=u.current;if(P)P.close();p.current?.getSenders()?.forEach((g)=>g.track?.stop()),p.current?.close(),f(!1),p.current=null,u.current=null,i.current=null},[o]),d=G((P)=>{let g=u.current;if(!g){console.error("Data channel is not ready",P);return}let w=new Date().toLocaleTimeString();if(P.event_id=P.event_id||crypto.randomUUID(),g.send(JSON.stringify(P)),!P.timestamp)P.timestamp=w;r?.(P)},[r,o]),U=G((P)=>{if(!u.current){console.error("Data channel is not ready");return}let w=()=>{d({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:P}]}}),d({type:"response.create"})};if(i.current)i.current.then(w);else w()},[r,o]);return Cr(()=>{let P=u.current;if(!P)return;let g=(w)=>{let S=JSON.parse(w.data);if(!S.timestamp)S.timestamp=new Date().toLocaleTimeString();r?.(S)};return P.addEventListener("message",g),()=>{P.removeEventListener("message",g)}},[r,o]),{isSessionActive:C,startSession:I,stopSession:m,sendTextMessage:U}}import{jsx as Ir}from"react/jsx-runtime";var Sr=({data:o})=>{let{html:r,useSocketioSupport:C,useCentrifugeSupport:f,useMittSupport:p,centrifugeChannel:u}=o,[i,I]=ur(r),{isSessionActive:m,startSession:d,sendTextMessage:U}=y(null,(S)=>{if(console.log(S.type,S.type==="response.output_text.delta"&&S.delta),S.type==="response.output_text.delta"&&S.delta)I((l)=>l+S.delta)});return ir(()=>{I(r)},[r]),Ir(A,{card:"HTMLEmbedCard",data:o,methods:{update:(S)=>{I(S.value)},generateUsingAI:async(S)=>{try{if(!m&&S.token)await d(S.token,!1);U(S.prompt)}catch(l){console.error("Failed to generate using AI",l)}},initializeAI:async(S)=>{if(!m&&S.token)await d(S.token,!1)}},useCentrifugeSupport:f,useSocketioSupport:C,useMittSupport:p,centrifugeChannel:u,children:Ur(i)})},oo=Sr;var lr=n({name:"HTMLEmbedCard",component:oo,metadata:{author:"Swarm.ing"}});import{useEffect as Pr,useState as wr}from"react";import{jsx as ro}from"react/jsx-runtime";var nr=({data:o})=>{let{name:r,value:C,useSocketioSupport:f,useCentrifugeSupport:p,useMittSupport:u,centrifugeChannel:i}=o,[I,m]=wr(C);return Pr(()=>{m(C)},[C]),ro(A,{card:"HiddenCard",data:o,useSocketioSupport:f,useCentrifugeSupport:p,useMittSupport:u,centrifugeChannel:i,methods:{update:({value:d})=>{m(d)}},children:ro("input",{type:"hidden",id:r,name:r,value:I})})},fo=nr;var Ar=n({name:"HiddenCard",component:fo,metadata:{author:"Swarm.ing"}});import{useContext as po,useEffect as Hr}from"react";import{createContext as gr}from"react";var Tr=gr(void 0),z=Tr;import{jsx as Dr,Fragment as ar}from"react/jsx-runtime";var Or=({data:o})=>{let{url:r}=o,C=po(z),f=po(L);return Hr(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(r))window.location.href=r;else C?.(r)},[r,C]),Dr(ar,{children:f})},Co=Or;var Zr=n({name:"AutoRedirectCard",component:Co,metadata:{author:"Swarm.ing"}});import{Bounce as Lr,Slide as zr,Zoom as Br,Flip as Vr}from"react-toastify";import{toast as $r,ToastContainer as qr}from"react-toastify";import{useContext as Gr,useMemo as Fr,useRef as Jr}from"react";import{jsx as M,Fragment as yr}from"react/jsx-runtime";var Xr={bounce:Lr,slide:zr,zoom:Br,flip:Vr},Qr=(o)=>{let r={...o,type:o.alertType,transition:o.transition?Xr[o.transition]:void 0,position:o.position??"bottom-right",autoClose:o.autoClose??3000,style:{backgroundColor:"black",...o.sx}};$r(o.message,r)},Wr=(o)=>{console.log("Log event",o)},Yr=(o)=>{if(typeof window==="undefined"||!window.Notification){console.warn("[IOEventsCard] Notifications API is not available");return}let r=()=>{try{new window.Notification(o.title,{body:o.message??o.subtitle,icon:o.icon,silent:o.silent})}catch(f){console.error("[IOEventsCard] Failed to show notification",f)}},C=window.Notification.permission;if(C==="granted"){r();return}if(C==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((f)=>{if(f==="granted")r()})},tr=({data:o})=>{let{useCentrifugeSupport:r,useSocketioSupport:C,useMittSupport:f,centrifugeChannel:p}=o,u=Gr(z),i=Jr(u);i.current=u;let I=Fr(()=>({alert:Qr,log:Wr,push:Yr,redirect:(m)=>{if(m.to){let d=m.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(d))window.location.href=d;else i.current?.(d)}else window.location.reload()},reload:(m)=>{if(m.to){let d=m.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(d))window.location.href=d;else i.current?.(d)}else window.location.reload()}}),[]);return M(yr,{children:M(A,{card:"IOEventsCard",data:o,useCentrifugeSupport:r,useSocketioSupport:C,useMittSupport:f,centrifugeChannel:p,methods:I,children:M(qr,{})})})},mo=tr;var Mr=n({name:"IOEventsCard",component:mo,metadata:{author:"Swarm.ing"}});import{useEffect as io,useState as Rr}from"react";import{jsx as uo}from"react/jsx-runtime";var Kr=({data:o})=>{let{name:r,key:C,value:f,useSocketioSupport:p,useCentrifugeSupport:u,useMittSupport:i,centrifugeChannel:I}=o,[m,d]=Rr(f);return io(()=>{d(f)},[f]),io(()=>{if(typeof window==="undefined")return;sessionStorage.setItem(C,m)},[C,m]),uo(A,{card:"SessionStorageCard",data:o,useSocketioSupport:p,useCentrifugeSupport:u,useMittSupport:i,centrifugeChannel:I,methods:{update:({value:U})=>{d(U)},remove:()=>{sessionStorage.removeItem(C),d("")}},children:uo("input",{type:"hidden",id:r,name:r,value:m})})},Uo=Kr;var xr=n({name:"SessionStorageCard",component:Uo,metadata:{author:"PieData"}});import{useEffect as So,useState as _r}from"react";import{jsx as Io}from"react/jsx-runtime";var kr=({data:o})=>{let{name:r,key:C,value:f,useSocketioSupport:p,useCentrifugeSupport:u,useMittSupport:i,centrifugeChannel:I}=o,[m,d]=_r(f);return So(()=>{d(f)},[f]),So(()=>{if(typeof window==="undefined")return;localStorage.setItem(C,m)},[C,m]),Io(A,{card:"DeviceStorageCard",data:o,useSocketioSupport:p,useCentrifugeSupport:u,useMittSupport:i,centrifugeChannel:I,methods:{update:({value:U})=>{d(U)},remove:()=>{localStorage.removeItem(C),d("")}},children:Io("input",{type:"hidden",id:r,name:r,value:m})})},lo=kr;var Er=n({name:"DeviceStorageCard",component:lo,metadata:{author:"PieData"}});import{useEffect as Po,useState as br}from"react";import{jsx as wo}from"react/jsx-runtime";var Nr=({data:o})=>{let{name:r,key:C,value:f,useSocketioSupport:p,useCentrifugeSupport:u,useMittSupport:i,centrifugeChannel:I}=o,[m,d]=br(f);return Po(()=>{d(f)},[f]),Po(()=>{if(typeof window==="undefined")return;let U=window.Telegram?.WebApp?.CloudStorage;if(!U)return;U.setItem(C,m)},[C,m]),wo(A,{card:"CloudStorageCard",data:o,useSocketioSupport:p,useCentrifugeSupport:u,useMittSupport:i,centrifugeChannel:I,methods:{update:({value:U})=>{d(U)},remove:()=>{let U=window.Telegram?.WebApp?.CloudStorage;if(U)U.removeItem(C);d("")}},children:wo("input",{type:"hidden",id:r,name:r,value:m})})},no=Nr;var cr=n({name:"CloudStorageCard",component:no,metadata:{author:"PieData"}});import{useEffect as Ao,useState as jr}from"react";import{jsx as go}from"react/jsx-runtime";var vr=({data:o})=>{let{name:r,key:C,value:f,useSocketioSupport:p,useCentrifugeSupport:u,useMittSupport:i,centrifugeChannel:I}=o,[m,d]=jr(f);return Ao(()=>{d(f)},[f]),Ao(()=>{if(typeof window==="undefined")return;let U=window.Telegram?.WebApp?.SecureStorage;if(!U)return;U.setItem(C,m)},[C,m]),go(A,{card:"SecureStorageCard",data:o,useSocketioSupport:p,useCentrifugeSupport:u,useMittSupport:i,centrifugeChannel:I,methods:{update:({value:U})=>{d(U)},remove:()=>{let U=window.Telegram?.WebApp?.SecureStorage;if(U)U.removeItem(C);d("")}},children:go("input",{type:"hidden",id:r,name:r,value:m})})},To=vr;var sr=n({name:"SecureStorageCard",component:To,metadata:{author:"PieData"}});import{useCallback as R,useContext as K,useEffect as hr,useRef as er,useState as Ho}from"react";import{jsx as Oo}from"react/jsx-runtime";var of=({data:o,content:r})=>{let{useLoader:C,noReturn:f,returnType:p,useSocketioSupport:u,useCentrifugeSupport:i,useMittSupport:I,centrifugeChannel:m}=o,d=K(L),U=K(a)??D,[P,g]=Ho(!1),[w,S]=Ho(null),l=er(r),T=K(V),O=R((H)=>{if(H===null)g(!0);else if(g(!1),!f)l.current=H;if(!f)S(H)},[f]),Z=R((H)=>{l.current=H.content,S(H.content)},[]),F=R((H)=>{if(H===null)g(!0);else if(g(!1),!f)for(let k of H)T?.emit(k.name,k.data)},[f,T]);if(hr(()=>{S(r),g(!1)},[r]),!w&&C)return d;return Oo(A,{card:"AjaxGroupCard",data:o,methods:{changeContent:Z},useSocketioSupport:u,useCentrifugeSupport:i,useMittSupport:I,centrifugeChannel:m,children:Oo(U,{uiConfig:w??l.current,setUiAjaxConfiguration:p==="events"?F:O})})},ao=of;var rf=n({name:"AjaxGroupCard",component:ao,metadata:{author:"Swarm.ing",description:"Group card with AJAX support"}});import{useContext as Do}from"react";import{jsx as x}from"react/jsx-runtime";var ff=({data:o,content:r,setUiAjaxConfiguration:C})=>{let{name:f,url:p,sx:u}=o,i=Do(z),I=Do(a)??D;return x(A,{card:f,data:o,children:x("div",{style:u,id:f,onClick:(d)=>{if(p)if(d.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(p))window.location.href=p;else i?.(p)},children:x(I,{setUiAjaxConfiguration:C,uiConfig:r})})})},Zo=ff;var pf=n({name:"BoxCard",component:Zo,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});import{useContext as Cf}from"react";import{jsx as _}from"react/jsx-runtime";var df=({data:o,content:r,setUiAjaxConfiguration:C})=>{let{name:f,sx:p}=o,u=Cf(a)??D;return _(A,{card:f,data:o,children:_("div",{style:p,id:f,children:r.map((i,I)=>{return _(u,{uiConfig:i,setUiAjaxConfiguration:C},`children-${I}`)})})})},Lo=df;var mf=n({name:"OneOfCard",component:Lo,metadata:{author:"Swarm.ing",description:"Different variants"}});export{pr as UnionCard,so as UILoading,D as UI,xr as SessionStorageCard,or as SequenceCard,sr as SecureStorageCard,A as PieCard,mf as OneOfCard,Mr as IOEventsCard,Ar as HiddenCard,lr as HTMLEmbedCard,Er as DeviceStorageCard,cr as CloudStorageCard,pf as BoxCard,Zr as AutoRedirectCard,rf as AjaxGroupCard};
2
+ import{useContext as J,useEffect as X,useRef as Wo}from"react";import{createContext as Bo,useContext as Vo}from"react";var $o=Bo(null),ao=()=>{let o=Vo($o);if(!o)throw new Error("usePieConfig must be used within PieConfigProvider");return o};var $=()=>{let{enableRenderingLog:o}=ao();return o},E=$;import{createContext as qo}from"react";import{Centrifuge as Af}from"centrifuge";var Go=qo(null),b=Go;import{io as Tf}from"socket.io-client";import{createContext as Fo}from"react";var Jo=Fo(null),N=Jo;import Lf from"mitt";import{createContext as Xo,useCallback as Vf,useContext as $f}from"react";var Qo=Xo(null);var a=Qo;import{jsx as Mo,jsxs as Ro,Fragment as yo}from"react/jsx-runtime";var Yo=({card:o,data:r,children:C,useSocketioSupport:f=!1,useCentrifugeSupport:p=!1,useMittSupport:i=!1,centrifugeChannel:d=void 0,methods:S=void 0,stored:U=void 0})=>{let m=E(),u=Wo(S);if(u.current=S,m)console.log("[PieCard] Rendering card:",o),console.log("[PieCard] Card data:",r),console.log("[PieCard] Component name:",r?.name),console.log("[PieCard] Real-time support:",{socketio:f,centrifuge:p,mitt:i,centrifugeChannel:d}),console.log("[PieCard] Methods:",S?Object.keys(S):"none"),console.log("[PieCard] Has children:",!!C);let P=J(N),n=J(b),l=J(a);if(X(()=>{if(!P||!f||!u.current||!r.name){if(m&&f)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!P,useSocketioSupport:f,hasMethods:!!u.current,hasDataName:!!r?.name});return}let O=Object.keys(u.current??{}).map((g)=>{let T=`pie${g}_${r.name}`;if(m)console.log(`[PieCard] Socket.IO registering event: ${T}`);let D=(z)=>{u.current?.[g]?.(z)};return P.on(T,D),[T,D]});return()=>{O.forEach(([g,T])=>{if(m)console.log(`[PieCard] Socket.IO unregistering event: ${g}`);P.off(g,T)})}},[P,r.name,f]),X(()=>{if(!n||!p||!d||!r.name){if(m&&p)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!n,useCentrifugeSupport:p,hasCentrifugeChannel:!!d,hasMethods:!!u.current,hasDataName:!!r?.name});return}let O=Object.keys(u.current??{}).map((g)=>{let T=`pie${g}_${r.name}_${d}`;if(m)console.log(`[PieCard] Centrifuge subscribing to channel: ${T}`);let D=n.newSubscription(T);return D.on("publication",(z)=>{if(m)console.log(`[PieCard] Centrifuge received data on ${T}:`,z.data);u.current?.[g]?.(z.data)}),D.subscribe(),D});return()=>{O.forEach((g)=>{if(m)console.log("[PieCard] Centrifuge unsubscribing from channel");g.unsubscribe(),n.removeSubscription(g)})}},[n,d,r.name,p]),X(()=>{if(!l||!i||!r.name){if(m&&i)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!l,useMittSupport:i,hasMethods:!!u.current,hasDataName:!!r?.name});return}let I=Object.keys(u.current??{}),O={};return I.forEach((g)=>{let T=`pie${g}_${r.name}`,D=(z)=>{if(m)console.log(`[PieCard] Mitt registering event: ${T}`);u.current?.[g]?.(z)};O[T]=D,l.on(T,D)}),()=>{Object.entries(O).forEach(([g,T])=>{if(m)console.log(`[PieCard] Mitt unregistering event: ${g}`);l.off(g,T)})}},[l,r.name,i]),m)console.log("[PieCard] Rendering complete, returning children");if(U!==void 0)return Ro(yo,{children:[Mo("input",{type:"hidden",name:r.name,value:JSON.stringify(U)}),C]});return C},A=Yo;import{lazy as Ko}from"react";var Q=new Map;function c(o,r){return Ko(()=>{if(Q.has(r))return Q.get(r);let C=o().then((f)=>f);return Q.set(r,C),C})}var j=new Map,_o=(o)=>{if(!o.name)throw new Error("Component registration requires a name");if(!o.component&&!o.loader)throw new Error(`Component "${o.name}" requires component or loader`);let r={name:o.name,component:o.component,loader:o.loader,metadata:o.metadata,fallback:o.fallback,isLazy:!1};if(!r.component&&r.loader)r.component=c(r.loader,o.name),r.loader=void 0,r.isLazy=!0;return r};function w(o){let r=_o(o);return j.set(r.name,r),r.component}var q=(o)=>{return j.get(o)};import{Suspense as bo,useContext as No,memo as co}from"react";import{createContext as ko}from"react";import{jsx as Eo,Fragment as xo}from"react/jsx-runtime";var to=ko(Eo(xo,{})),B=to;import{jsx as W}from"react/jsx-runtime";function jo({uiConfig:o,setUiAjaxConfiguration:r}){let C=No(B),f=$();if(f)console.log("[UI] Rendering component:",o.card),console.log("[UI] Component data:",o.data),console.log("[UI] Component content:",o.content),console.log("[UI] Has setUiAjaxConfiguration:",!!r);let p=q(o.card);if(!p?.component){if(f)console.warn(`[UI] Component not found in registry: ${o.card}`),console.log("[UI] Returning fallback component");return C}if(f)console.log("[UI] Found component in registry:",{name:p.name,isLazy:p.isLazy,hasMetadata:!!p.metadata});let i=p.component,d=W(i,{data:o.data,content:o.content,setUiAjaxConfiguration:r});if(p.isLazy){if(f)console.log("[UI] Rendering lazy component with Suspense:",p.name);return W(bo,{fallback:p.fallback?W(p.fallback,{}):C,children:d},`${p.name}`)}if(f)console.log("[UI] Rendering component directly:",p.name);return d}var L=co(jo);import{Suspense as ho,useContext as eo}from"react";import{createContext as vo}from"react";var so=vo(null),Z=so;import{jsx as G}from"react/jsx-runtime";function v({uiConfig:o,setUiAjaxConfiguration:r}){let C=eo(B),f=$();if(f)console.log("[UILoading] Rendering fallback for:",o.card),console.log("[UILoading] Component data:",o.data),console.log("[UILoading] Component content:",o.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!r);let p=q(o.card);if(!p?.component){if(f)console.warn(`[UILoading] Component not found in registry: ${o.card}`),console.log("[UILoading] Returning fallback component");return C}if(f)console.log("[UILoading] Found component in registry:",{name:p.name,isLazy:p.isLazy,hasMetadata:!!p.metadata,hasFallback:!!p.fallback});if(p.fallback){if(f)console.log("[UILoading] Rendering fallback for:",p.name);let S=p.fallback;return G(S,{})}if(f)console.log("[UILoading] No fallback, rendering full component:",p.name);let i=p.component,d=G(Z.Provider,{value:v,children:G(i,{data:o.data,content:o.content,setUiAjaxConfiguration:r})});if(p.isLazy)return G(ho,{fallback:C,children:d},`${p.name}`);return d}var or=v;import{useContext as rr}from"react";import{jsx as Y}from"react/jsx-runtime";var fr=({data:o,content:r,setUiAjaxConfiguration:C})=>{let{name:f,sx:p}=o,i=rr(Z)??L;return Y(A,{card:f,data:o,children:Y("div",{style:p,id:f,children:r.map((d,S)=>{return Y(i,{uiConfig:d,setUiAjaxConfiguration:C},`children-${S}`)})})})},s=fr;var pr=w({name:"SequenceCard",component:s,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});import{useContext as Cr}from"react";import{jsx as h}from"react/jsx-runtime";var mr=({data:o,content:r,setUiAjaxConfiguration:C})=>{let{name:f}=o,p=Cr(Z)??L;return h(A,{card:f,data:o,children:r.map((i,d)=>{return h(p,{uiConfig:i,setUiAjaxConfiguration:C},`children-${d}`)})})},e=mr;var dr=w({name:"UnionCard",component:e,metadata:{author:"Swarm.ing",description:"Renders one of many components"}});import{useEffect as Sr,useState as Ir}from"react";import lr from"html-react-parser";import{useCallback as F,useEffect as ir,useRef as y,useState as ur}from"react";function Ur(){let o=new AudioContext,r=o.createOscillator(),C=r.connect(o.createMediaStreamDestination());r.start();let f=C.stream.getAudioTracks()[0];return f.enabled=!1,f}function M(o=null,r){let[C,f]=ur(!1),p=y(null),i=y(null),d=y(null),S=F(async(P,n=!0)=>{if(p.current)U();let l=new RTCPeerConnection;if(l.onconnectionstatechange=()=>{if(l.connectionState==="connected")f(!0);else if(["disconnected","failed","closed"].includes(l.connectionState))f(!1)},l.ontrack=(H)=>{if(o)o.srcObject=H.streams[0]},n){let H=await navigator.mediaDevices.getUserMedia({audio:!0});l.addTrack(H.getTracks()[0],H)}else{let H=Ur();l.addTrack(H)}let I=l.createDataChannel("oai-events");i.current=I,d.current=new Promise((H)=>{I.addEventListener("open",()=>{H()})});let O=await l.createOffer();await l.setLocalDescription(O);let z=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:O.sdp,headers:{Authorization:`Bearer ${P}`,"Content-Type":"application/sdp"}})).text();await l.setRemoteDescription({type:"answer",sdp:z}),p.current=l,await d.current},[o]),U=F(()=>{let P=i.current;if(P)P.close();p.current?.getSenders()?.forEach((n)=>n.track?.stop()),p.current?.close(),f(!1),p.current=null,i.current=null,d.current=null},[o]),m=F((P)=>{let n=i.current;if(!n){console.error("Data channel is not ready",P);return}let l=new Date().toLocaleTimeString();if(P.event_id=P.event_id||crypto.randomUUID(),n.send(JSON.stringify(P)),!P.timestamp)P.timestamp=l;r?.(P)},[r,o]),u=F((P)=>{if(!i.current){console.error("Data channel is not ready");return}let l=()=>{m({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:P}]}}),m({type:"response.create"})};if(d.current)d.current.then(l);else l()},[r,o]);return ir(()=>{let P=i.current;if(!P)return;let n=(l)=>{let I=JSON.parse(l.data);if(!I.timestamp)I.timestamp=new Date().toLocaleTimeString();r?.(I)};return P.addEventListener("message",n),()=>{P.removeEventListener("message",n)}},[r,o]),{isSessionActive:C,startSession:S,stopSession:U,sendTextMessage:u}}import{jsx as wr}from"react/jsx-runtime";var Pr=({data:o})=>{let{html:r,useSocketioSupport:C,useCentrifugeSupport:f,useMittSupport:p,centrifugeChannel:i}=o,[d,S]=Ir(r),{isSessionActive:U,startSession:m,sendTextMessage:u}=M(null,(I)=>{if(console.log(I.type,I.type==="response.output_text.delta"&&I.delta),I.type==="response.output_text.delta"&&I.delta)S((O)=>O+I.delta)});return Sr(()=>{S(r)},[r]),wr(A,{card:"HTMLEmbedCard",data:o,methods:{update:(I)=>{S(I.value)},generateUsingAI:async(I)=>{try{if(!U&&I.token)await m(I.token,!1);u(I.prompt)}catch(O){console.error("Failed to generate using AI",O)}},initializeAI:async(I)=>{if(!U&&I.token)await m(I.token,!1)}},useCentrifugeSupport:f,useSocketioSupport:C,useMittSupport:p,centrifugeChannel:i,children:lr(d)})},oo=Pr;var Ar=w({name:"HTMLEmbedCard",component:oo,metadata:{author:"Swarm.ing"}});import{useEffect as nr,useState as gr}from"react";import{jsx as ro}from"react/jsx-runtime";var Tr=({data:o})=>{let{name:r,value:C,useSocketioSupport:f,useCentrifugeSupport:p,useMittSupport:i,centrifugeChannel:d}=o,[S,U]=gr(C);return nr(()=>{U(C)},[C]),ro(A,{card:"HiddenCard",data:o,useSocketioSupport:f,useCentrifugeSupport:p,useMittSupport:i,centrifugeChannel:d,methods:{update:({value:m})=>{U(m)}},children:ro("input",{type:"hidden",id:r,name:r,value:S})})},fo=Tr;var Hr=w({name:"HiddenCard",component:fo,metadata:{author:"Swarm.ing"}});import{useContext as po,useEffect as Zr}from"react";import{createContext as Or}from"react";var Dr=Or(void 0),V=Dr;import{jsx as Br,Fragment as zr}from"react/jsx-runtime";var Lr=({data:o})=>{let{url:r}=o,C=po(V),f=po(B);return Zr(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(r))window.location.href=r;else C?.(r)},[r,C]),Br(zr,{children:f})},Co=Lr;var Vr=w({name:"AutoRedirectCard",component:Co,metadata:{author:"Swarm.ing"}});import{Bounce as $r,Slide as ar,Zoom as qr,Flip as Gr}from"react-toastify";import{toast as Fr,ToastContainer as Jr}from"react-toastify";import{useContext as Xr,useMemo as Qr,useRef as Wr}from"react";import{jsx as R,Fragment as _r}from"react/jsx-runtime";var Yr={bounce:$r,slide:ar,zoom:qr,flip:Gr},yr=(o)=>{let r={...o,type:o.alertType,transition:o.transition?Yr[o.transition]:void 0,position:o.position??"bottom-right",autoClose:o.autoClose??3000,style:{backgroundColor:"black",...o.sx}};Fr(o.message,r)},Mr=(o)=>{console.log("Log event",o)},Rr=(o)=>{if(typeof window==="undefined"||!window.Notification){console.warn("[IOEventsCard] Notifications API is not available");return}let r=()=>{try{new window.Notification(o.title,{body:o.message??o.subtitle,icon:o.icon,silent:o.silent})}catch(f){console.error("[IOEventsCard] Failed to show notification",f)}},C=window.Notification.permission;if(C==="granted"){r();return}if(C==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((f)=>{if(f==="granted")r()})},Kr=({data:o})=>{let{useCentrifugeSupport:r,useSocketioSupport:C,useMittSupport:f,centrifugeChannel:p}=o,i=Xr(V),d=Wr(i);d.current=i;let S=Qr(()=>({alert:yr,log:Mr,push:Rr,redirect:(U)=>{if(U.to){let m=U.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(m))window.location.href=m;else d.current?.(m)}else window.location.reload()},reload:(U)=>{if(U.to){let m=U.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(m))window.location.href=m;else d.current?.(m)}else window.location.reload()}}),[]);return R(_r,{children:R(A,{card:"IOEventsCard",data:o,useCentrifugeSupport:r,useSocketioSupport:C,useMittSupport:f,centrifugeChannel:p,methods:S,children:R(Jr,{})})})},mo=Kr;var kr=w({name:"IOEventsCard",component:mo,metadata:{author:"Swarm.ing"}});import{useEffect as io,useState as tr}from"react";import{jsx as uo}from"react/jsx-runtime";var xr=({data:o})=>{let{name:r,key:C,value:f,useSocketioSupport:p,useCentrifugeSupport:i,useMittSupport:d,centrifugeChannel:S}=o,[U,m]=tr(f);return io(()=>{m(f)},[f]),io(()=>{if(typeof window==="undefined")return;sessionStorage.setItem(C,U)},[C,U]),uo(A,{card:"SessionStorageCard",data:o,useSocketioSupport:p,useCentrifugeSupport:i,useMittSupport:d,centrifugeChannel:S,methods:{update:({value:u})=>{m(u)},remove:()=>{sessionStorage.removeItem(C),m("")}},children:uo("input",{type:"hidden",id:r,name:r,value:U})})},Uo=xr;var Er=w({name:"SessionStorageCard",component:Uo,metadata:{author:"PieData"}});import{useEffect as So,useState as br}from"react";import{jsx as Io}from"react/jsx-runtime";var Nr=({data:o})=>{let{name:r,key:C,value:f,useSocketioSupport:p,useCentrifugeSupport:i,useMittSupport:d,centrifugeChannel:S}=o,[U,m]=br(f);return So(()=>{m(f)},[f]),So(()=>{if(typeof window==="undefined")return;localStorage.setItem(C,U)},[C,U]),Io(A,{card:"DeviceStorageCard",data:o,useSocketioSupport:p,useCentrifugeSupport:i,useMittSupport:d,centrifugeChannel:S,methods:{update:({value:u})=>{m(u)},remove:()=>{localStorage.removeItem(C),m("")}},children:Io("input",{type:"hidden",id:r,name:r,value:U})})},lo=Nr;var cr=w({name:"DeviceStorageCard",component:lo,metadata:{author:"PieData"}});import{useEffect as Po,useState as jr}from"react";import{jsx as wo}from"react/jsx-runtime";var vr=({data:o})=>{let{name:r,key:C,value:f,useSocketioSupport:p,useCentrifugeSupport:i,useMittSupport:d,centrifugeChannel:S}=o,[U,m]=jr(f);return Po(()=>{m(f)},[f]),Po(()=>{if(typeof window==="undefined")return;let u=window.Telegram?.WebApp?.CloudStorage;if(!u)return;u.setItem(C,U)},[C,U]),wo(A,{card:"CloudStorageCard",data:o,useSocketioSupport:p,useCentrifugeSupport:i,useMittSupport:d,centrifugeChannel:S,methods:{update:({value:u})=>{m(u)},remove:()=>{let u=window.Telegram?.WebApp?.CloudStorage;if(u)u.removeItem(C);m("")}},children:wo("input",{type:"hidden",id:r,name:r,value:U})})},Ao=vr;var sr=w({name:"CloudStorageCard",component:Ao,metadata:{author:"PieData"}});import{useEffect as no,useState as hr}from"react";import{jsx as go}from"react/jsx-runtime";var er=({data:o})=>{let{name:r,key:C,value:f,useSocketioSupport:p,useCentrifugeSupport:i,useMittSupport:d,centrifugeChannel:S}=o,[U,m]=hr(f);return no(()=>{m(f)},[f]),no(()=>{if(typeof window==="undefined")return;let u=window.Telegram?.WebApp?.SecureStorage;if(!u)return;u.setItem(C,U)},[C,U]),go(A,{card:"SecureStorageCard",data:o,useSocketioSupport:p,useCentrifugeSupport:i,useMittSupport:d,centrifugeChannel:S,methods:{update:({value:u})=>{m(u)},remove:()=>{let u=window.Telegram?.WebApp?.SecureStorage;if(u)u.removeItem(C);m("")}},children:go("input",{type:"hidden",id:r,name:r,value:U})})},To=er;var of=w({name:"SecureStorageCard",component:To,metadata:{author:"PieData"}});import{useCallback as K,useContext as _,useEffect as rf,useRef as ff,useState as Ho}from"react";import{jsx as Oo}from"react/jsx-runtime";var pf=({data:o,content:r})=>{let{useLoader:C,noReturn:f,returnType:p,useSocketioSupport:i,useCentrifugeSupport:d,useMittSupport:S,centrifugeChannel:U}=o,m=_(B),u=_(Z)??L,[P,n]=Ho(!1),[l,I]=Ho(null),O=ff(r),g=_(a),T=K((H)=>{if(H===null)n(!0);else if(n(!1),!f)O.current=H;if(!f)I(H)},[f]),D=K((H)=>{O.current=H.content,I(H.content)},[]),z=K((H)=>{if(H===null)n(!0);else if(n(!1),!f)for(let x of H)g?.emit(x.name,x.data)},[f,g]);if(rf(()=>{I(r),n(!1)},[r]),!l&&C)return m;return Oo(A,{card:"AjaxGroupCard",data:o,methods:{changeContent:D},useSocketioSupport:i,useCentrifugeSupport:d,useMittSupport:S,centrifugeChannel:U,children:Oo(u,{uiConfig:l??O.current,setUiAjaxConfiguration:p==="events"?z:T})})},Do=pf;var Cf=w({name:"AjaxGroupCard",component:Do,metadata:{author:"Swarm.ing",description:"Group card with AJAX support"}});import{useContext as Zo}from"react";import{jsx as k}from"react/jsx-runtime";var mf=({data:o,content:r,setUiAjaxConfiguration:C})=>{let{name:f,url:p,sx:i}=o,d=Zo(V),S=Zo(Z)??L;return k(A,{card:f,data:o,children:k("div",{style:i,id:f,onClick:(m)=>{if(p)if(m.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(p))window.location.href=p;else d?.(p)},children:k(S,{setUiAjaxConfiguration:C,uiConfig:r})})})},Lo=mf;var df=w({name:"BoxCard",component:Lo,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});import{useContext as uf}from"react";import{jsx as t}from"react/jsx-runtime";var Uf=({data:o,content:r,setUiAjaxConfiguration:C})=>{let{name:f,sx:p}=o,i=uf(Z)??L;return t(A,{card:f,data:o,children:t("div",{style:p,id:f,children:r.map((d,S)=>{return t(i,{uiConfig:d,setUiAjaxConfiguration:C},`children-${S}`)})})})},zo=Uf;var Sf=w({name:"OneOfCard",component:zo,metadata:{author:"Swarm.ing",description:"Different variants"}});export{dr as UnionCard,or as UILoading,L as UI,Er as SessionStorageCard,pr as SequenceCard,of as SecureStorageCard,A as PieCard,Sf as OneOfCard,kr as IOEventsCard,Hr as HiddenCard,Ar as HTMLEmbedCard,cr as DeviceStorageCard,sr as CloudStorageCard,df as BoxCard,Vr as AutoRedirectCard,Cf as AjaxGroupCard};
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- var ur=Object.create;var{getPrototypeOf:Ur,defineProperty:X,getOwnPropertyNames:no,getOwnPropertyDescriptor:Sr}=Object,Ao=Object.prototype.hasOwnProperty;var go=(o,r,C)=>{C=o!=null?ur(Ur(o)):{};let f=r||!o||!o.__esModule?X(C,"default",{value:o,enumerable:!0}):C;for(let p of no(o))if(!Ao.call(f,p))X(f,p,{get:()=>o[p],enumerable:!0});return f},wo=new WeakMap,Ir=(o)=>{var r=wo.get(o),C;if(r)return r;if(r=X({},"__esModule",{value:!0}),o&&typeof o==="object"||typeof o==="function")no(o).map((f)=>!Ao.call(r,f)&&X(r,f,{get:()=>o[f],enumerable:!(C=Sr(o,f))||C.enumerable}));return wo.set(o,r),r};var lr=(o,r)=>{for(var C in r)X(o,C,{get:r[C],enumerable:!0,configurable:!0,set:(f)=>r[C]=()=>f})};var Er={};lr(Er,{UnionCard:()=>Wo,UILoading:()=>qo,UI:()=>Z,SessionStorageCard:()=>co,SequenceCard:()=>Jo,SecureStorageCard:()=>or,PieCard:()=>n,OneOfCard:()=>ir,IOEventsCard:()=>bo,HiddenCard:()=>Ko,HTMLEmbedCard:()=>Mo,DeviceStorageCard:()=>vo,CloudStorageCard:()=>ho,BoxCard:()=>Cr,AutoRedirectCard:()=>ko,AjaxGroupCard:()=>fr});module.exports=Ir(Er);var z=require("react");var K=require("react"),Pr=K.createContext(null),wr=()=>{let o=K.useContext(Pr);if(!o)throw new Error("usePieConfig must be used within PieConfigProvider");return o};var Q=()=>{let{enableRenderingLog:o}=wr();return o},To=Q;var Ho=require("react"),nr=require("centrifuge");var Ar=Ho.createContext(null),Oo=Ar;var gr=require("socket.io-client"),ao=require("react");var Tr=ao.createContext(null),Do=Tr;var Hr=go(require("mitt")),x=require("react");var Or=x.createContext(null);var _=Or;var ar=({card:o,data:r,children:C,useSocketioSupport:f=!1,useCentrifugeSupport:p=!1,useMittSupport:u=!1,centrifugeChannel:i=void 0,methods:I=void 0})=>{let m=To(),d=z.useRef(I);if(d.current=I,m)console.log("[PieCard] Rendering card:",o),console.log("[PieCard] Card data:",r),console.log("[PieCard] Component name:",r?.name),console.log("[PieCard] Real-time support:",{socketio:f,centrifuge:p,mitt:u,centrifugeChannel:i}),console.log("[PieCard] Methods:",I?Object.keys(I):"none"),console.log("[PieCard] Has children:",!!C);let U=z.useContext(Do),P=z.useContext(Oo),g=z.useContext(_);if(z.useEffect(()=>{if(!U||!f||!d.current||!r.name){if(m&&f)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!U,useSocketioSupport:f,hasMethods:!!d.current,hasDataName:!!r?.name});return}let S=Object.keys(d.current??{}).map((l)=>{let T=`pie${l}_${r.name}`;if(m)console.log(`[PieCard] Socket.IO registering event: ${T}`);let D=(B)=>{d.current?.[l]?.(B)};return U.on(T,D),[T,D]});return()=>{S.forEach(([l,T])=>{if(m)console.log(`[PieCard] Socket.IO unregistering event: ${l}`);U.off(l,T)})}},[U,r.name,f]),z.useEffect(()=>{if(!P||!p||!i||!r.name){if(m&&p)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!P,useCentrifugeSupport:p,hasCentrifugeChannel:!!i,hasMethods:!!d.current,hasDataName:!!r?.name});return}let S=Object.keys(d.current??{}).map((l)=>{let T=`pie${l}_${r.name}_${i}`;if(m)console.log(`[PieCard] Centrifuge subscribing to channel: ${T}`);let D=P.newSubscription(T);return D.on("publication",(B)=>{if(m)console.log(`[PieCard] Centrifuge received data on ${T}:`,B.data);d.current?.[l]?.(B.data)}),D.subscribe(),D});return()=>{S.forEach((l)=>{if(m)console.log("[PieCard] Centrifuge unsubscribing from channel");l.unsubscribe(),P.removeSubscription(l)})}},[P,i,r.name,p]),z.useEffect(()=>{if(!g||!u||!r.name){if(m&&u)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!g,useMittSupport:u,hasMethods:!!d.current,hasDataName:!!r?.name});return}let w=Object.keys(d.current??{}),S={};return w.forEach((l)=>{let T=`pie${l}_${r.name}`,D=(B)=>{if(m)console.log(`[PieCard] Mitt registering event: ${T}`);d.current?.[l]?.(B)};S[T]=D,g.on(T,D)}),()=>{Object.entries(S).forEach(([l,T])=>{if(m)console.log(`[PieCard] Mitt unregistering event: ${l}`);g.off(l,T)})}},[g,r.name,u]),m)console.log("[PieCard] Rendering complete, returning children");return C},n=ar;var Zo=require("react"),fo=new Map;function Lo(o,r){return Zo.lazy(()=>{if(fo.has(r))return fo.get(r);let C=o().then((f)=>f);return fo.set(r,C),C})}var zo=new Map,Dr=(o)=>{if(!o.name)throw new Error("Component registration requires a name");if(!o.component&&!o.loader)throw new Error(`Component "${o.name}" requires component or loader`);let r={name:o.name,component:o.component,loader:o.loader,metadata:o.metadata,fallback:o.fallback,isLazy:!1};if(!r.component&&r.loader)r.component=Lo(r.loader,o.name),r.loader=void 0,r.isLazy=!0;return r};function A(o){let r=Dr(o);return zo.set(r.name,r),r.component}var k=(o)=>{return zo.get(o)};var q=require("react");var Bo=require("react"),E=require("react/jsx-runtime"),Zr=Bo.createContext(E.jsx(E.Fragment,{})),V=Zr;var b=require("react/jsx-runtime");function Lr({uiConfig:o,setUiAjaxConfiguration:r}){let C=q.useContext(V),f=Q();if(f)console.log("[UI] Rendering component:",o.card),console.log("[UI] Component data:",o.data),console.log("[UI] Component content:",o.content),console.log("[UI] Has setUiAjaxConfiguration:",!!r);let p=k(o.card);if(!p?.component){if(f)console.warn(`[UI] Component not found in registry: ${o.card}`),console.log("[UI] Returning fallback component");return C}if(f)console.log("[UI] Found component in registry:",{name:p.name,isLazy:p.isLazy,hasMetadata:!!p.metadata});let u=p.component,i=b.jsx(u,{data:o.data,content:o.content,setUiAjaxConfiguration:r});if(p.isLazy){if(f)console.log("[UI] Rendering lazy component with Suspense:",p.name);return b.jsx(q.Suspense,{fallback:p.fallback?b.jsx(p.fallback,{}):C,children:i},`${p.name}`)}if(f)console.log("[UI] Rendering component directly:",p.name);return i}var Z=q.memo(Lr);var N=require("react");var Vo=require("react"),zr=Vo.createContext(null),L=zr;var W=require("react/jsx-runtime");function $o({uiConfig:o,setUiAjaxConfiguration:r}){let C=N.useContext(V),f=Q();if(f)console.log("[UILoading] Rendering fallback for:",o.card),console.log("[UILoading] Component data:",o.data),console.log("[UILoading] Component content:",o.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!r);let p=k(o.card);if(!p?.component){if(f)console.warn(`[UILoading] Component not found in registry: ${o.card}`),console.log("[UILoading] Returning fallback component");return C}if(f)console.log("[UILoading] Found component in registry:",{name:p.name,isLazy:p.isLazy,hasMetadata:!!p.metadata,hasFallback:!!p.fallback});if(p.fallback){if(f)console.log("[UILoading] Rendering fallback for:",p.name);let I=p.fallback;return W.jsx(I,{})}if(f)console.log("[UILoading] No fallback, rendering full component:",p.name);let u=p.component,i=W.jsx(L.Provider,{value:$o,children:W.jsx(u,{data:o.data,content:o.content,setUiAjaxConfiguration:r})});if(p.isLazy)return W.jsx(N.Suspense,{fallback:C,children:i},`${p.name}`);return i}var qo=$o;var Go=require("react");var c=require("react/jsx-runtime"),Br=({data:o,content:r,setUiAjaxConfiguration:C})=>{let{name:f,sx:p}=o,u=Go.useContext(L)??Z;return c.jsx(n,{card:f,data:o,children:c.jsx("div",{style:p,id:f,children:r.map((i,I)=>{return c.jsx(u,{uiConfig:i,setUiAjaxConfiguration:C},`children-${I}`)})})})},Fo=Br;var Jo=A({name:"SequenceCard",component:Fo,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var Xo=require("react");var po=require("react/jsx-runtime"),Vr=({data:o,content:r,setUiAjaxConfiguration:C})=>{let{name:f}=o,p=Xo.useContext(L)??Z;return po.jsx(n,{card:f,data:o,children:r.map((u,i)=>{return po.jsx(p,{uiConfig:u,setUiAjaxConfiguration:C},`children-${i}`)})})},Qo=Vr;var Wo=A({name:"UnionCard",component:Qo,metadata:{author:"Swarm.ing",description:"Renders one of many components"}});var j=require("react"),Yo=go(require("html-react-parser"));var a=require("react");function $r(){let o=new AudioContext,r=o.createOscillator(),C=r.connect(o.createMediaStreamDestination());r.start();let f=C.stream.getAudioTracks()[0];return f.enabled=!1,f}function Co(o=null,r){let[C,f]=a.useState(!1),p=a.useRef(null),u=a.useRef(null),i=a.useRef(null),I=a.useCallback(async(P,g=!0)=>{if(p.current)m();let w=new RTCPeerConnection;if(w.onconnectionstatechange=()=>{if(w.connectionState==="connected")f(!0);else if(["disconnected","failed","closed"].includes(w.connectionState))f(!1)},w.ontrack=(H)=>{if(o)o.srcObject=H.streams[0]},g){let H=await navigator.mediaDevices.getUserMedia({audio:!0});w.addTrack(H.getTracks()[0],H)}else{let H=$r();w.addTrack(H)}let S=w.createDataChannel("oai-events");u.current=S,i.current=new Promise((H)=>{S.addEventListener("open",()=>{H()})});let l=await w.createOffer();await w.setLocalDescription(l);let ro=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:l.sdp,headers:{Authorization:`Bearer ${P}`,"Content-Type":"application/sdp"}})).text();await w.setRemoteDescription({type:"answer",sdp:ro}),p.current=w,await i.current},[o]),m=a.useCallback(()=>{let P=u.current;if(P)P.close();p.current?.getSenders()?.forEach((g)=>g.track?.stop()),p.current?.close(),f(!1),p.current=null,u.current=null,i.current=null},[o]),d=a.useCallback((P)=>{let g=u.current;if(!g){console.error("Data channel is not ready",P);return}let w=new Date().toLocaleTimeString();if(P.event_id=P.event_id||crypto.randomUUID(),g.send(JSON.stringify(P)),!P.timestamp)P.timestamp=w;r?.(P)},[r,o]),U=a.useCallback((P)=>{if(!u.current){console.error("Data channel is not ready");return}let w=()=>{d({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:P}]}}),d({type:"response.create"})};if(i.current)i.current.then(w);else w()},[r,o]);return a.useEffect(()=>{let P=u.current;if(!P)return;let g=(w)=>{let S=JSON.parse(w.data);if(!S.timestamp)S.timestamp=new Date().toLocaleTimeString();r?.(S)};return P.addEventListener("message",g),()=>{P.removeEventListener("message",g)}},[r,o]),{isSessionActive:C,startSession:I,stopSession:m,sendTextMessage:U}}var yo=require("react/jsx-runtime"),qr=({data:o})=>{let{html:r,useSocketioSupport:C,useCentrifugeSupport:f,useMittSupport:p,centrifugeChannel:u}=o,[i,I]=j.useState(r),{isSessionActive:m,startSession:d,sendTextMessage:U}=Co(null,(S)=>{if(console.log(S.type,S.type==="response.output_text.delta"&&S.delta),S.type==="response.output_text.delta"&&S.delta)I((l)=>l+S.delta)});return j.useEffect(()=>{I(r)},[r]),yo.jsx(n,{card:"HTMLEmbedCard",data:o,methods:{update:(S)=>{I(S.value)},generateUsingAI:async(S)=>{try{if(!m&&S.token)await d(S.token,!1);U(S.prompt)}catch(l){console.error("Failed to generate using AI",l)}},initializeAI:async(S)=>{if(!m&&S.token)await d(S.token,!1)}},useCentrifugeSupport:f,useSocketioSupport:C,useMittSupport:p,centrifugeChannel:u,children:Yo.default(i)})},to=qr;var Mo=A({name:"HTMLEmbedCard",component:to,metadata:{author:"Swarm.ing"}});var v=require("react");var mo=require("react/jsx-runtime"),Gr=({data:o})=>{let{name:r,value:C,useSocketioSupport:f,useCentrifugeSupport:p,useMittSupport:u,centrifugeChannel:i}=o,[I,m]=v.useState(C);return v.useEffect(()=>{m(C)},[C]),mo.jsx(n,{card:"HiddenCard",data:o,useSocketioSupport:f,useCentrifugeSupport:p,useMittSupport:u,centrifugeChannel:i,methods:{update:({value:d})=>{m(d)}},children:mo.jsx("input",{type:"hidden",id:r,name:r,value:I})})},Ro=Gr;var Ko=A({name:"HiddenCard",component:Ro,metadata:{author:"Swarm.ing"}});var Y=require("react");var xo=require("react"),Fr=xo.createContext(void 0),G=Fr;var s=require("react/jsx-runtime"),Jr=({data:o})=>{let{url:r}=o,C=Y.useContext(G),f=Y.useContext(V);return Y.useEffect(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(r))window.location.href=r;else C?.(r)},[r,C]),s.jsx(s.Fragment,{children:f})},_o=Jr;var ko=A({name:"AutoRedirectCard",component:_o,metadata:{author:"Swarm.ing"}});var $=require("react-toastify"),h=require("react-toastify");var J=require("react");var F=require("react/jsx-runtime"),Xr={bounce:$.Bounce,slide:$.Slide,zoom:$.Zoom,flip:$.Flip},Qr=(o)=>{let r={...o,type:o.alertType,transition:o.transition?Xr[o.transition]:void 0,position:o.position??"bottom-right",autoClose:o.autoClose??3000,style:{backgroundColor:"black",...o.sx}};h.toast(o.message,r)},Wr=(o)=>{console.log("Log event",o)},Yr=(o)=>{if(typeof window==="undefined"||!window.Notification){console.warn("[IOEventsCard] Notifications API is not available");return}let r=()=>{try{new window.Notification(o.title,{body:o.message??o.subtitle,icon:o.icon,silent:o.silent})}catch(f){console.error("[IOEventsCard] Failed to show notification",f)}},C=window.Notification.permission;if(C==="granted"){r();return}if(C==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((f)=>{if(f==="granted")r()})},tr=({data:o})=>{let{useCentrifugeSupport:r,useSocketioSupport:C,useMittSupport:f,centrifugeChannel:p}=o,u=J.useContext(G),i=J.useRef(u);i.current=u;let I=J.useMemo(()=>({alert:Qr,log:Wr,push:Yr,redirect:(m)=>{if(m.to){let d=m.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(d))window.location.href=d;else i.current?.(d)}else window.location.reload()},reload:(m)=>{if(m.to){let d=m.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(d))window.location.href=d;else i.current?.(d)}else window.location.reload()}}),[]);return F.jsx(F.Fragment,{children:F.jsx(n,{card:"IOEventsCard",data:o,useCentrifugeSupport:r,useSocketioSupport:C,useMittSupport:f,centrifugeChannel:p,methods:I,children:F.jsx(h.ToastContainer,{})})})},Eo=tr;var bo=A({name:"IOEventsCard",component:Eo,metadata:{author:"Swarm.ing"}});var t=require("react");var io=require("react/jsx-runtime"),yr=({data:o})=>{let{name:r,key:C,value:f,useSocketioSupport:p,useCentrifugeSupport:u,useMittSupport:i,centrifugeChannel:I}=o,[m,d]=t.useState(f);return t.useEffect(()=>{d(f)},[f]),t.useEffect(()=>{if(typeof window==="undefined")return;sessionStorage.setItem(C,m)},[C,m]),io.jsx(n,{card:"SessionStorageCard",data:o,useSocketioSupport:p,useCentrifugeSupport:u,useMittSupport:i,centrifugeChannel:I,methods:{update:({value:U})=>{d(U)},remove:()=>{sessionStorage.removeItem(C),d("")}},children:io.jsx("input",{type:"hidden",id:r,name:r,value:m})})},No=yr;var co=A({name:"SessionStorageCard",component:No,metadata:{author:"PieData"}});var y=require("react");var uo=require("react/jsx-runtime"),Mr=({data:o})=>{let{name:r,key:C,value:f,useSocketioSupport:p,useCentrifugeSupport:u,useMittSupport:i,centrifugeChannel:I}=o,[m,d]=y.useState(f);return y.useEffect(()=>{d(f)},[f]),y.useEffect(()=>{if(typeof window==="undefined")return;localStorage.setItem(C,m)},[C,m]),uo.jsx(n,{card:"DeviceStorageCard",data:o,useSocketioSupport:p,useCentrifugeSupport:u,useMittSupport:i,centrifugeChannel:I,methods:{update:({value:U})=>{d(U)},remove:()=>{localStorage.removeItem(C),d("")}},children:uo.jsx("input",{type:"hidden",id:r,name:r,value:m})})},jo=Mr;var vo=A({name:"DeviceStorageCard",component:jo,metadata:{author:"PieData"}});var M=require("react");var Uo=require("react/jsx-runtime"),Rr=({data:o})=>{let{name:r,key:C,value:f,useSocketioSupport:p,useCentrifugeSupport:u,useMittSupport:i,centrifugeChannel:I}=o,[m,d]=M.useState(f);return M.useEffect(()=>{d(f)},[f]),M.useEffect(()=>{if(typeof window==="undefined")return;let U=window.Telegram?.WebApp?.CloudStorage;if(!U)return;U.setItem(C,m)},[C,m]),Uo.jsx(n,{card:"CloudStorageCard",data:o,useSocketioSupport:p,useCentrifugeSupport:u,useMittSupport:i,centrifugeChannel:I,methods:{update:({value:U})=>{d(U)},remove:()=>{let U=window.Telegram?.WebApp?.CloudStorage;if(U)U.removeItem(C);d("")}},children:Uo.jsx("input",{type:"hidden",id:r,name:r,value:m})})},so=Rr;var ho=A({name:"CloudStorageCard",component:so,metadata:{author:"PieData"}});var R=require("react");var So=require("react/jsx-runtime"),Kr=({data:o})=>{let{name:r,key:C,value:f,useSocketioSupport:p,useCentrifugeSupport:u,useMittSupport:i,centrifugeChannel:I}=o,[m,d]=R.useState(f);return R.useEffect(()=>{d(f)},[f]),R.useEffect(()=>{if(typeof window==="undefined")return;let U=window.Telegram?.WebApp?.SecureStorage;if(!U)return;U.setItem(C,m)},[C,m]),So.jsx(n,{card:"SecureStorageCard",data:o,useSocketioSupport:p,useCentrifugeSupport:u,useMittSupport:i,centrifugeChannel:I,methods:{update:({value:U})=>{d(U)},remove:()=>{let U=window.Telegram?.WebApp?.SecureStorage;if(U)U.removeItem(C);d("")}},children:So.jsx("input",{type:"hidden",id:r,name:r,value:m})})},eo=Kr;var or=A({name:"SecureStorageCard",component:eo,metadata:{author:"PieData"}});var O=require("react");var Io=require("react/jsx-runtime"),xr=({data:o,content:r})=>{let{useLoader:C,noReturn:f,returnType:p,useSocketioSupport:u,useCentrifugeSupport:i,useMittSupport:I,centrifugeChannel:m}=o,d=O.useContext(V),U=O.useContext(L)??Z,[P,g]=O.useState(!1),[w,S]=O.useState(null),l=O.useRef(r),T=O.useContext(_),D=O.useCallback((H)=>{if(H===null)g(!0);else if(g(!1),!f)l.current=H;if(!f)S(H)},[f]),B=O.useCallback((H)=>{l.current=H.content,S(H.content)},[]),ro=O.useCallback((H)=>{if(H===null)g(!0);else if(g(!1),!f)for(let Po of H)T?.emit(Po.name,Po.data)},[f,T]);if(O.useEffect(()=>{S(r),g(!1)},[r]),!w&&C)return d;return Io.jsx(n,{card:"AjaxGroupCard",data:o,methods:{changeContent:B},useSocketioSupport:u,useCentrifugeSupport:i,useMittSupport:I,centrifugeChannel:m,children:Io.jsx(U,{uiConfig:w??l.current,setUiAjaxConfiguration:p==="events"?ro:D})})},rr=xr;var fr=A({name:"AjaxGroupCard",component:rr,metadata:{author:"Swarm.ing",description:"Group card with AJAX support"}});var lo=require("react");var e=require("react/jsx-runtime"),_r=({data:o,content:r,setUiAjaxConfiguration:C})=>{let{name:f,url:p,sx:u}=o,i=lo.useContext(G),I=lo.useContext(L)??Z;return e.jsx(n,{card:f,data:o,children:e.jsx("div",{style:u,id:f,onClick:(d)=>{if(p)if(d.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(p))window.location.href=p;else i?.(p)},children:e.jsx(I,{setUiAjaxConfiguration:C,uiConfig:r})})})},pr=_r;var Cr=A({name:"BoxCard",component:pr,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var dr=require("react");var oo=require("react/jsx-runtime"),kr=({data:o,content:r,setUiAjaxConfiguration:C})=>{let{name:f,sx:p}=o,u=dr.useContext(L)??Z;return oo.jsx(n,{card:f,data:o,children:oo.jsx("div",{style:p,id:f,children:r.map((i,I)=>{return oo.jsx(u,{uiConfig:i,setUiAjaxConfiguration:C},`children-${I}`)})})})},mr=kr;var ir=A({name:"OneOfCard",component:mr,metadata:{author:"Swarm.ing",description:"Different variants"}});
2
+ var Ur=Object.create;var{getPrototypeOf:Sr,defineProperty:W,getOwnPropertyNames:no,getOwnPropertyDescriptor:Ir}=Object,go=Object.prototype.hasOwnProperty;var To=(o,r,C)=>{C=o!=null?Ur(Sr(o)):{};let f=r||!o||!o.__esModule?W(C,"default",{value:o,enumerable:!0}):C;for(let p of no(o))if(!go.call(f,p))W(f,p,{get:()=>o[p],enumerable:!0});return f},Ao=new WeakMap,lr=(o)=>{var r=Ao.get(o),C;if(r)return r;if(r=W({},"__esModule",{value:!0}),o&&typeof o==="object"||typeof o==="function")no(o).map((f)=>!go.call(r,f)&&W(r,f,{get:()=>o[f],enumerable:!(C=Ir(o,f))||C.enumerable}));return Ao.set(o,r),r};var Pr=(o,r)=>{for(var C in r)W(o,C,{get:r[C],enumerable:!0,configurable:!0,set:(f)=>r[C]=()=>f})};var br={};Pr(br,{UnionCard:()=>Yo,UILoading:()=>Go,UI:()=>z,SessionStorageCard:()=>jo,SequenceCard:()=>Xo,SecureStorageCard:()=>rr,PieCard:()=>w,OneOfCard:()=>ur,IOEventsCard:()=>No,HiddenCard:()=>ko,HTMLEmbedCard:()=>Ko,DeviceStorageCard:()=>so,CloudStorageCard:()=>eo,BoxCard:()=>mr,AutoRedirectCard:()=>Eo,AjaxGroupCard:()=>pr});module.exports=lr(br);var $=require("react");var t=require("react"),wr=t.createContext(null),Ar=()=>{let o=t.useContext(wr);if(!o)throw new Error("usePieConfig must be used within PieConfigProvider");return o};var Y=()=>{let{enableRenderingLog:o}=Ar();return o},Ho=Y;var Oo=require("react"),nr=require("centrifuge");var gr=Oo.createContext(null),Do=gr;var Tr=require("socket.io-client"),Zo=require("react");var Hr=Zo.createContext(null),Lo=Hr;var Or=To(require("mitt")),x=require("react");var Dr=x.createContext(null);var E=Dr;var G=require("react/jsx-runtime"),Zr=({card:o,data:r,children:C,useSocketioSupport:f=!1,useCentrifugeSupport:p=!1,useMittSupport:i=!1,centrifugeChannel:d=void 0,methods:S=void 0,stored:U=void 0})=>{let m=Ho(),u=$.useRef(S);if(u.current=S,m)console.log("[PieCard] Rendering card:",o),console.log("[PieCard] Card data:",r),console.log("[PieCard] Component name:",r?.name),console.log("[PieCard] Real-time support:",{socketio:f,centrifuge:p,mitt:i,centrifugeChannel:d}),console.log("[PieCard] Methods:",S?Object.keys(S):"none"),console.log("[PieCard] Has children:",!!C);let P=$.useContext(Lo),n=$.useContext(Do),l=$.useContext(E);if($.useEffect(()=>{if(!P||!f||!u.current||!r.name){if(m&&f)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!P,useSocketioSupport:f,hasMethods:!!u.current,hasDataName:!!r?.name});return}let O=Object.keys(u.current??{}).map((g)=>{let T=`pie${g}_${r.name}`;if(m)console.log(`[PieCard] Socket.IO registering event: ${T}`);let L=(V)=>{u.current?.[g]?.(V)};return P.on(T,L),[T,L]});return()=>{O.forEach(([g,T])=>{if(m)console.log(`[PieCard] Socket.IO unregistering event: ${g}`);P.off(g,T)})}},[P,r.name,f]),$.useEffect(()=>{if(!n||!p||!d||!r.name){if(m&&p)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!n,useCentrifugeSupport:p,hasCentrifugeChannel:!!d,hasMethods:!!u.current,hasDataName:!!r?.name});return}let O=Object.keys(u.current??{}).map((g)=>{let T=`pie${g}_${r.name}_${d}`;if(m)console.log(`[PieCard] Centrifuge subscribing to channel: ${T}`);let L=n.newSubscription(T);return L.on("publication",(V)=>{if(m)console.log(`[PieCard] Centrifuge received data on ${T}:`,V.data);u.current?.[g]?.(V.data)}),L.subscribe(),L});return()=>{O.forEach((g)=>{if(m)console.log("[PieCard] Centrifuge unsubscribing from channel");g.unsubscribe(),n.removeSubscription(g)})}},[n,d,r.name,p]),$.useEffect(()=>{if(!l||!i||!r.name){if(m&&i)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!l,useMittSupport:i,hasMethods:!!u.current,hasDataName:!!r?.name});return}let I=Object.keys(u.current??{}),O={};return I.forEach((g)=>{let T=`pie${g}_${r.name}`,L=(V)=>{if(m)console.log(`[PieCard] Mitt registering event: ${T}`);u.current?.[g]?.(V)};O[T]=L,l.on(T,L)}),()=>{Object.entries(O).forEach(([g,T])=>{if(m)console.log(`[PieCard] Mitt unregistering event: ${g}`);l.off(g,T)})}},[l,r.name,i]),m)console.log("[PieCard] Rendering complete, returning children");if(U!==void 0)return G.jsxs(G.Fragment,{children:[G.jsx("input",{type:"hidden",name:r.name,value:JSON.stringify(U)}),C]});return C},w=Zr;var zo=require("react"),po=new Map;function Bo(o,r){return zo.lazy(()=>{if(po.has(r))return po.get(r);let C=o().then((f)=>f);return po.set(r,C),C})}var Vo=new Map,Lr=(o)=>{if(!o.name)throw new Error("Component registration requires a name");if(!o.component&&!o.loader)throw new Error(`Component "${o.name}" requires component or loader`);let r={name:o.name,component:o.component,loader:o.loader,metadata:o.metadata,fallback:o.fallback,isLazy:!1};if(!r.component&&r.loader)r.component=Bo(r.loader,o.name),r.loader=void 0,r.isLazy=!0;return r};function A(o){let r=Lr(o);return Vo.set(r.name,r),r.component}var b=(o)=>{return Vo.get(o)};var F=require("react");var $o=require("react"),N=require("react/jsx-runtime"),zr=$o.createContext(N.jsx(N.Fragment,{})),a=zr;var c=require("react/jsx-runtime");function Br({uiConfig:o,setUiAjaxConfiguration:r}){let C=F.useContext(a),f=Y();if(f)console.log("[UI] Rendering component:",o.card),console.log("[UI] Component data:",o.data),console.log("[UI] Component content:",o.content),console.log("[UI] Has setUiAjaxConfiguration:",!!r);let p=b(o.card);if(!p?.component){if(f)console.warn(`[UI] Component not found in registry: ${o.card}`),console.log("[UI] Returning fallback component");return C}if(f)console.log("[UI] Found component in registry:",{name:p.name,isLazy:p.isLazy,hasMetadata:!!p.metadata});let i=p.component,d=c.jsx(i,{data:o.data,content:o.content,setUiAjaxConfiguration:r});if(p.isLazy){if(f)console.log("[UI] Rendering lazy component with Suspense:",p.name);return c.jsx(F.Suspense,{fallback:p.fallback?c.jsx(p.fallback,{}):C,children:d},`${p.name}`)}if(f)console.log("[UI] Rendering component directly:",p.name);return d}var z=F.memo(Br);var j=require("react");var ao=require("react"),Vr=ao.createContext(null),B=Vr;var y=require("react/jsx-runtime");function qo({uiConfig:o,setUiAjaxConfiguration:r}){let C=j.useContext(a),f=Y();if(f)console.log("[UILoading] Rendering fallback for:",o.card),console.log("[UILoading] Component data:",o.data),console.log("[UILoading] Component content:",o.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!r);let p=b(o.card);if(!p?.component){if(f)console.warn(`[UILoading] Component not found in registry: ${o.card}`),console.log("[UILoading] Returning fallback component");return C}if(f)console.log("[UILoading] Found component in registry:",{name:p.name,isLazy:p.isLazy,hasMetadata:!!p.metadata,hasFallback:!!p.fallback});if(p.fallback){if(f)console.log("[UILoading] Rendering fallback for:",p.name);let S=p.fallback;return y.jsx(S,{})}if(f)console.log("[UILoading] No fallback, rendering full component:",p.name);let i=p.component,d=y.jsx(B.Provider,{value:qo,children:y.jsx(i,{data:o.data,content:o.content,setUiAjaxConfiguration:r})});if(p.isLazy)return y.jsx(j.Suspense,{fallback:C,children:d},`${p.name}`);return d}var Go=qo;var Fo=require("react");var v=require("react/jsx-runtime"),$r=({data:o,content:r,setUiAjaxConfiguration:C})=>{let{name:f,sx:p}=o,i=Fo.useContext(B)??z;return v.jsx(w,{card:f,data:o,children:v.jsx("div",{style:p,id:f,children:r.map((d,S)=>{return v.jsx(i,{uiConfig:d,setUiAjaxConfiguration:C},`children-${S}`)})})})},Jo=$r;var Xo=A({name:"SequenceCard",component:Jo,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var Qo=require("react");var Co=require("react/jsx-runtime"),ar=({data:o,content:r,setUiAjaxConfiguration:C})=>{let{name:f}=o,p=Qo.useContext(B)??z;return Co.jsx(w,{card:f,data:o,children:r.map((i,d)=>{return Co.jsx(p,{uiConfig:i,setUiAjaxConfiguration:C},`children-${d}`)})})},Wo=ar;var Yo=A({name:"UnionCard",component:Wo,metadata:{author:"Swarm.ing",description:"Renders one of many components"}});var s=require("react"),yo=To(require("html-react-parser"));var Z=require("react");function qr(){let o=new AudioContext,r=o.createOscillator(),C=r.connect(o.createMediaStreamDestination());r.start();let f=C.stream.getAudioTracks()[0];return f.enabled=!1,f}function mo(o=null,r){let[C,f]=Z.useState(!1),p=Z.useRef(null),i=Z.useRef(null),d=Z.useRef(null),S=Z.useCallback(async(P,n=!0)=>{if(p.current)U();let l=new RTCPeerConnection;if(l.onconnectionstatechange=()=>{if(l.connectionState==="connected")f(!0);else if(["disconnected","failed","closed"].includes(l.connectionState))f(!1)},l.ontrack=(H)=>{if(o)o.srcObject=H.streams[0]},n){let H=await navigator.mediaDevices.getUserMedia({audio:!0});l.addTrack(H.getTracks()[0],H)}else{let H=qr();l.addTrack(H)}let I=l.createDataChannel("oai-events");i.current=I,d.current=new Promise((H)=>{I.addEventListener("open",()=>{H()})});let O=await l.createOffer();await l.setLocalDescription(O);let V=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:O.sdp,headers:{Authorization:`Bearer ${P}`,"Content-Type":"application/sdp"}})).text();await l.setRemoteDescription({type:"answer",sdp:V}),p.current=l,await d.current},[o]),U=Z.useCallback(()=>{let P=i.current;if(P)P.close();p.current?.getSenders()?.forEach((n)=>n.track?.stop()),p.current?.close(),f(!1),p.current=null,i.current=null,d.current=null},[o]),m=Z.useCallback((P)=>{let n=i.current;if(!n){console.error("Data channel is not ready",P);return}let l=new Date().toLocaleTimeString();if(P.event_id=P.event_id||crypto.randomUUID(),n.send(JSON.stringify(P)),!P.timestamp)P.timestamp=l;r?.(P)},[r,o]),u=Z.useCallback((P)=>{if(!i.current){console.error("Data channel is not ready");return}let l=()=>{m({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:P}]}}),m({type:"response.create"})};if(d.current)d.current.then(l);else l()},[r,o]);return Z.useEffect(()=>{let P=i.current;if(!P)return;let n=(l)=>{let I=JSON.parse(l.data);if(!I.timestamp)I.timestamp=new Date().toLocaleTimeString();r?.(I)};return P.addEventListener("message",n),()=>{P.removeEventListener("message",n)}},[r,o]),{isSessionActive:C,startSession:S,stopSession:U,sendTextMessage:u}}var Ro=require("react/jsx-runtime"),Gr=({data:o})=>{let{html:r,useSocketioSupport:C,useCentrifugeSupport:f,useMittSupport:p,centrifugeChannel:i}=o,[d,S]=s.useState(r),{isSessionActive:U,startSession:m,sendTextMessage:u}=mo(null,(I)=>{if(console.log(I.type,I.type==="response.output_text.delta"&&I.delta),I.type==="response.output_text.delta"&&I.delta)S((O)=>O+I.delta)});return s.useEffect(()=>{S(r)},[r]),Ro.jsx(w,{card:"HTMLEmbedCard",data:o,methods:{update:(I)=>{S(I.value)},generateUsingAI:async(I)=>{try{if(!U&&I.token)await m(I.token,!1);u(I.prompt)}catch(O){console.error("Failed to generate using AI",O)}},initializeAI:async(I)=>{if(!U&&I.token)await m(I.token,!1)}},useCentrifugeSupport:f,useSocketioSupport:C,useMittSupport:p,centrifugeChannel:i,children:yo.default(d)})},Mo=Gr;var Ko=A({name:"HTMLEmbedCard",component:Mo,metadata:{author:"Swarm.ing"}});var h=require("react");var io=require("react/jsx-runtime"),Fr=({data:o})=>{let{name:r,value:C,useSocketioSupport:f,useCentrifugeSupport:p,useMittSupport:i,centrifugeChannel:d}=o,[S,U]=h.useState(C);return h.useEffect(()=>{U(C)},[C]),io.jsx(w,{card:"HiddenCard",data:o,useSocketioSupport:f,useCentrifugeSupport:p,useMittSupport:i,centrifugeChannel:d,methods:{update:({value:m})=>{U(m)}},children:io.jsx("input",{type:"hidden",id:r,name:r,value:S})})},_o=Fr;var ko=A({name:"HiddenCard",component:_o,metadata:{author:"Swarm.ing"}});var M=require("react");var to=require("react"),Jr=to.createContext(void 0),J=Jr;var e=require("react/jsx-runtime"),Xr=({data:o})=>{let{url:r}=o,C=M.useContext(J),f=M.useContext(a);return M.useEffect(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(r))window.location.href=r;else C?.(r)},[r,C]),e.jsx(e.Fragment,{children:f})},xo=Xr;var Eo=A({name:"AutoRedirectCard",component:xo,metadata:{author:"Swarm.ing"}});var q=require("react-toastify"),oo=require("react-toastify");var Q=require("react");var X=require("react/jsx-runtime"),Qr={bounce:q.Bounce,slide:q.Slide,zoom:q.Zoom,flip:q.Flip},Wr=(o)=>{let r={...o,type:o.alertType,transition:o.transition?Qr[o.transition]:void 0,position:o.position??"bottom-right",autoClose:o.autoClose??3000,style:{backgroundColor:"black",...o.sx}};oo.toast(o.message,r)},Yr=(o)=>{console.log("Log event",o)},yr=(o)=>{if(typeof window==="undefined"||!window.Notification){console.warn("[IOEventsCard] Notifications API is not available");return}let r=()=>{try{new window.Notification(o.title,{body:o.message??o.subtitle,icon:o.icon,silent:o.silent})}catch(f){console.error("[IOEventsCard] Failed to show notification",f)}},C=window.Notification.permission;if(C==="granted"){r();return}if(C==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((f)=>{if(f==="granted")r()})},Mr=({data:o})=>{let{useCentrifugeSupport:r,useSocketioSupport:C,useMittSupport:f,centrifugeChannel:p}=o,i=Q.useContext(J),d=Q.useRef(i);d.current=i;let S=Q.useMemo(()=>({alert:Wr,log:Yr,push:yr,redirect:(U)=>{if(U.to){let m=U.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(m))window.location.href=m;else d.current?.(m)}else window.location.reload()},reload:(U)=>{if(U.to){let m=U.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(m))window.location.href=m;else d.current?.(m)}else window.location.reload()}}),[]);return X.jsx(X.Fragment,{children:X.jsx(w,{card:"IOEventsCard",data:o,useCentrifugeSupport:r,useSocketioSupport:C,useMittSupport:f,centrifugeChannel:p,methods:S,children:X.jsx(oo.ToastContainer,{})})})},bo=Mr;var No=A({name:"IOEventsCard",component:bo,metadata:{author:"Swarm.ing"}});var R=require("react");var uo=require("react/jsx-runtime"),Rr=({data:o})=>{let{name:r,key:C,value:f,useSocketioSupport:p,useCentrifugeSupport:i,useMittSupport:d,centrifugeChannel:S}=o,[U,m]=R.useState(f);return R.useEffect(()=>{m(f)},[f]),R.useEffect(()=>{if(typeof window==="undefined")return;sessionStorage.setItem(C,U)},[C,U]),uo.jsx(w,{card:"SessionStorageCard",data:o,useSocketioSupport:p,useCentrifugeSupport:i,useMittSupport:d,centrifugeChannel:S,methods:{update:({value:u})=>{m(u)},remove:()=>{sessionStorage.removeItem(C),m("")}},children:uo.jsx("input",{type:"hidden",id:r,name:r,value:U})})},co=Rr;var jo=A({name:"SessionStorageCard",component:co,metadata:{author:"PieData"}});var K=require("react");var Uo=require("react/jsx-runtime"),Kr=({data:o})=>{let{name:r,key:C,value:f,useSocketioSupport:p,useCentrifugeSupport:i,useMittSupport:d,centrifugeChannel:S}=o,[U,m]=K.useState(f);return K.useEffect(()=>{m(f)},[f]),K.useEffect(()=>{if(typeof window==="undefined")return;localStorage.setItem(C,U)},[C,U]),Uo.jsx(w,{card:"DeviceStorageCard",data:o,useSocketioSupport:p,useCentrifugeSupport:i,useMittSupport:d,centrifugeChannel:S,methods:{update:({value:u})=>{m(u)},remove:()=>{localStorage.removeItem(C),m("")}},children:Uo.jsx("input",{type:"hidden",id:r,name:r,value:U})})},vo=Kr;var so=A({name:"DeviceStorageCard",component:vo,metadata:{author:"PieData"}});var _=require("react");var So=require("react/jsx-runtime"),_r=({data:o})=>{let{name:r,key:C,value:f,useSocketioSupport:p,useCentrifugeSupport:i,useMittSupport:d,centrifugeChannel:S}=o,[U,m]=_.useState(f);return _.useEffect(()=>{m(f)},[f]),_.useEffect(()=>{if(typeof window==="undefined")return;let u=window.Telegram?.WebApp?.CloudStorage;if(!u)return;u.setItem(C,U)},[C,U]),So.jsx(w,{card:"CloudStorageCard",data:o,useSocketioSupport:p,useCentrifugeSupport:i,useMittSupport:d,centrifugeChannel:S,methods:{update:({value:u})=>{m(u)},remove:()=>{let u=window.Telegram?.WebApp?.CloudStorage;if(u)u.removeItem(C);m("")}},children:So.jsx("input",{type:"hidden",id:r,name:r,value:U})})},ho=_r;var eo=A({name:"CloudStorageCard",component:ho,metadata:{author:"PieData"}});var k=require("react");var Io=require("react/jsx-runtime"),kr=({data:o})=>{let{name:r,key:C,value:f,useSocketioSupport:p,useCentrifugeSupport:i,useMittSupport:d,centrifugeChannel:S}=o,[U,m]=k.useState(f);return k.useEffect(()=>{m(f)},[f]),k.useEffect(()=>{if(typeof window==="undefined")return;let u=window.Telegram?.WebApp?.SecureStorage;if(!u)return;u.setItem(C,U)},[C,U]),Io.jsx(w,{card:"SecureStorageCard",data:o,useSocketioSupport:p,useCentrifugeSupport:i,useMittSupport:d,centrifugeChannel:S,methods:{update:({value:u})=>{m(u)},remove:()=>{let u=window.Telegram?.WebApp?.SecureStorage;if(u)u.removeItem(C);m("")}},children:Io.jsx("input",{type:"hidden",id:r,name:r,value:U})})},or=kr;var rr=A({name:"SecureStorageCard",component:or,metadata:{author:"PieData"}});var D=require("react");var lo=require("react/jsx-runtime"),tr=({data:o,content:r})=>{let{useLoader:C,noReturn:f,returnType:p,useSocketioSupport:i,useCentrifugeSupport:d,useMittSupport:S,centrifugeChannel:U}=o,m=D.useContext(a),u=D.useContext(B)??z,[P,n]=D.useState(!1),[l,I]=D.useState(null),O=D.useRef(r),g=D.useContext(E),T=D.useCallback((H)=>{if(H===null)n(!0);else if(n(!1),!f)O.current=H;if(!f)I(H)},[f]),L=D.useCallback((H)=>{O.current=H.content,I(H.content)},[]),V=D.useCallback((H)=>{if(H===null)n(!0);else if(n(!1),!f)for(let wo of H)g?.emit(wo.name,wo.data)},[f,g]);if(D.useEffect(()=>{I(r),n(!1)},[r]),!l&&C)return m;return lo.jsx(w,{card:"AjaxGroupCard",data:o,methods:{changeContent:L},useSocketioSupport:i,useCentrifugeSupport:d,useMittSupport:S,centrifugeChannel:U,children:lo.jsx(u,{uiConfig:l??O.current,setUiAjaxConfiguration:p==="events"?V:T})})},fr=tr;var pr=A({name:"AjaxGroupCard",component:fr,metadata:{author:"Swarm.ing",description:"Group card with AJAX support"}});var Po=require("react");var ro=require("react/jsx-runtime"),xr=({data:o,content:r,setUiAjaxConfiguration:C})=>{let{name:f,url:p,sx:i}=o,d=Po.useContext(J),S=Po.useContext(B)??z;return ro.jsx(w,{card:f,data:o,children:ro.jsx("div",{style:i,id:f,onClick:(m)=>{if(p)if(m.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(p))window.location.href=p;else d?.(p)},children:ro.jsx(S,{setUiAjaxConfiguration:C,uiConfig:r})})})},Cr=xr;var mr=A({name:"BoxCard",component:Cr,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var dr=require("react");var fo=require("react/jsx-runtime"),Er=({data:o,content:r,setUiAjaxConfiguration:C})=>{let{name:f,sx:p}=o,i=dr.useContext(B)??z;return fo.jsx(w,{card:f,data:o,children:fo.jsx("div",{style:p,id:f,children:r.map((d,S)=>{return fo.jsx(i,{uiConfig:d,setUiAjaxConfiguration:C},`children-${S}`)})})})},ir=Er;var ur=A({name:"OneOfCard",component:ir,metadata:{author:"Swarm.ing",description:"Different variants"}});
package/dist/index.esm.js CHANGED
@@ -1,3 +1,3 @@
1
1
  "use client";
2
- import{useContext as If,useEffect as Cf,useRef as oU}from"react";import{createContext as WU,useContext as QU}from"react";var j=WU(null),h=()=>{let f=QU(j);if(!f)throw new Error("usePieConfig must be used within PieConfigProvider");return f},x=()=>{let{apiServer:f}=h();return f},e=x,d=()=>{let{centrifugeServer:f}=h();return f};var N=()=>{let{enableRenderingLog:f}=h();return f},Lf=N,Af=()=>{let{pageProcessor:f}=h();return f};var Tf="__piedemo__";import{createContext as RU}from"react";import{Centrifuge as Nf}from"centrifuge";var of=new Map,u=(f,U)=>{if(!U)return null;let D=`${f}::${U}`,H=of.get(D);if(H)return H;async function P(){let Z=await fetch(f+"api/centrifuge/gen_token");if(!Z.ok){if(Z.status===403)throw new Nf.UnauthorizedError("Backend is not answering");throw new Error(`Unexpected status code ${Z.status}`)}return(await Z.json()).token}let z=new Nf(U,{getToken:P});return of.set(D,z),z},_U=RU(null),y=_U;import{io as wU}from"socket.io-client";import{createContext as KU}from"react";var yf=new Map,b=(f)=>{let U=yf.get(f);if(U)return U;let D=wU(f,{autoConnect:!1,transports:["websocket"]});return yf.set(f,D),D},SU=KU(null),m=SU;import FU from"mitt";import{createContext as MU,useCallback as LU,useContext as AU}from"react";var Vf=null;function E(){if(!Vf)Vf=FU();return Vf}var mf=MU(null);function NU(f){let U=AU(mf);return LU((D,H)=>{(U??E()).emit(`pie${D}_${f}`,H)},[f,U])}var S=mf;var yU=({card:f,data:U,children:D,useSocketioSupport:H=!1,useCentrifugeSupport:P=!1,useMittSupport:z=!1,centrifugeChannel:Z=void 0,methods:T=void 0})=>{let $=Lf(),V=oU(T);if(V.current=T,$)console.log("[PieCard] Rendering card:",f),console.log("[PieCard] Card data:",U),console.log("[PieCard] Component name:",U?.name),console.log("[PieCard] Real-time support:",{socketio:H,centrifuge:P,mitt:z,centrifugeChannel:Z}),console.log("[PieCard] Methods:",T?Object.keys(T):"none"),console.log("[PieCard] Has children:",!!D);let O=If(m),X=If(y),G=If(S);if(Cf(()=>{if(!O||!H||!V.current||!U.name){if($&&H)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!O,useSocketioSupport:H,hasMethods:!!V.current,hasDataName:!!U?.name});return}let I=Object.keys(V.current??{}).map((Y)=>{let C=`pie${Y}_${U.name}`;if($)console.log(`[PieCard] Socket.IO registering event: ${C}`);let q=(B)=>{V.current?.[Y]?.(B)};return O.on(C,q),[C,q]});return()=>{I.forEach(([Y,C])=>{if($)console.log(`[PieCard] Socket.IO unregistering event: ${Y}`);O.off(Y,C)})}},[O,U.name,H]),Cf(()=>{if(!X||!P||!Z||!U.name){if($&&P)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!X,useCentrifugeSupport:P,hasCentrifugeChannel:!!Z,hasMethods:!!V.current,hasDataName:!!U?.name});return}let I=Object.keys(V.current??{}).map((Y)=>{let C=`pie${Y}_${U.name}_${Z}`;if($)console.log(`[PieCard] Centrifuge subscribing to channel: ${C}`);let q=X.newSubscription(C);return q.on("publication",(B)=>{if($)console.log(`[PieCard] Centrifuge received data on ${C}:`,B.data);V.current?.[Y]?.(B.data)}),q.subscribe(),q});return()=>{I.forEach((Y)=>{if($)console.log("[PieCard] Centrifuge unsubscribing from channel");Y.unsubscribe(),X.removeSubscription(Y)})}},[X,Z,U.name,P]),Cf(()=>{if(!G||!z||!U.name){if($&&z)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!G,useMittSupport:z,hasMethods:!!V.current,hasDataName:!!U?.name});return}let J=Object.keys(V.current??{}),I={};return J.forEach((Y)=>{let C=`pie${Y}_${U.name}`,q=(B)=>{if($)console.log(`[PieCard] Mitt registering event: ${C}`);V.current?.[Y]?.(B)};I[C]=q,G.on(C,q)}),()=>{Object.entries(I).forEach(([Y,C])=>{if($)console.log(`[PieCard] Mitt unregistering event: ${Y}`);G.off(Y,C)})}},[G,U.name,z]),$)console.log("[PieCard] Rendering complete, returning children");return D},_=yU;import{lazy as mU}from"react";var Jf=new Map;function Ef(f,U){return mU(()=>{if(Jf.has(U))return Jf.get(U);let D=f().then((H)=>H);return Jf.set(U,D),D})}var g=new Map,EU=(f)=>{if(!f.name)throw new Error("Component registration requires a name");if(!f.component&&!f.loader)throw new Error(`Component "${f.name}" requires component or loader`);let U={name:f.name,component:f.component,loader:f.loader,metadata:f.metadata,fallback:f.fallback,isLazy:!1};if(!U.component&&U.loader)U.component=Ef(U.loader,f.name),U.loader=void 0,U.isLazy=!0;return U};function W(f){let U=EU(f);return g.set(U.name,U),U.component}var kU=(f)=>{f.forEach((U)=>W(U))},jU=(f)=>{g.delete(f)},xU=(f)=>{return g.has(f)},dU=(f)=>{return g.get(f)?.metadata},r=(f)=>{return g.get(f)},uU=()=>{return Array.from(g.keys())},bU=()=>{return g.size};import{Suspense as hU,useContext as lU,memo as rU}from"react";import{createContext as gU}from"react";import{jsx as cU,Fragment as pU}from"react/jsx-runtime";var vU=gU(cU(pU,{})),K=vU;import{jsx as Yf}from"react/jsx-runtime";function nU({uiConfig:f,setUiAjaxConfiguration:U}){let D=lU(K),H=N();if(H)console.log("[UI] Rendering component:",f.card),console.log("[UI] Component data:",f.data),console.log("[UI] Component content:",f.content),console.log("[UI] Has setUiAjaxConfiguration:",!!U);let P=r(f.card);if(!P?.component){if(H)console.warn(`[UI] Component not found in registry: ${f.card}`),console.log("[UI] Returning fallback component");return D}if(H)console.log("[UI] Found component in registry:",{name:P.name,isLazy:P.isLazy,hasMetadata:!!P.metadata});let z=P.component,Z=Yf(z,{data:f.data,content:f.content,setUiAjaxConfiguration:U});if(P.isLazy){if(H)console.log("[UI] Rendering lazy component with Suspense:",P.name);return Yf(hU,{fallback:P.fallback?Yf(P.fallback,{}):D,children:Z},`${P.name}`)}if(H)console.log("[UI] Rendering component directly:",P.name);return Z}var w=rU(nU);import{Suspense as sU,useContext as aU}from"react";import{createContext as iU}from"react";var tU=iU(null),o=tU;import{jsx as ff}from"react/jsx-runtime";function kf({uiConfig:f,setUiAjaxConfiguration:U}){let D=aU(K),H=N();if(H)console.log("[UILoading] Rendering fallback for:",f.card),console.log("[UILoading] Component data:",f.data),console.log("[UILoading] Component content:",f.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!U);let P=r(f.card);if(!P?.component){if(H)console.warn(`[UILoading] Component not found in registry: ${f.card}`),console.log("[UILoading] Returning fallback component");return D}if(H)console.log("[UILoading] Found component in registry:",{name:P.name,isLazy:P.isLazy,hasMetadata:!!P.metadata,hasFallback:!!P.fallback});if(P.fallback){if(H)console.log("[UILoading] Rendering fallback for:",P.name);let T=P.fallback;return ff(T,{})}if(H)console.log("[UILoading] No fallback, rendering full component:",P.name);let z=P.component,Z=ff(o.Provider,{value:kf,children:ff(z,{data:f.data,content:f.content,setUiAjaxConfiguration:U})});if(P.isLazy)return ff(sU,{fallback:D,children:Z},`${P.name}`);return Z}var Of=kf;import{useContext as eU}from"react";import{jsx as Xf}from"react/jsx-runtime";var fH=({data:f,content:U,setUiAjaxConfiguration:D})=>{let{name:H,sx:P}=f,z=eU(o)??w;return Xf(_,{card:H,data:f,children:Xf("div",{style:P,id:H,children:U.map((Z,T)=>{return Xf(z,{uiConfig:Z,setUiAjaxConfiguration:D},`children-${T}`)})})})},jf=fH;var UH=W({name:"SequenceCard",component:jf,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});import{useContext as HH}from"react";import{jsx as xf}from"react/jsx-runtime";var PH=({data:f,content:U,setUiAjaxConfiguration:D})=>{let{name:H}=f,P=HH(o)??w;return xf(_,{card:H,data:f,children:U.map((z,Z)=>{return xf(P,{uiConfig:z,setUiAjaxConfiguration:D},`children-${Z}`)})})},df=PH;var DH=W({name:"UnionCard",component:df,metadata:{author:"Swarm.ing",description:"Renders one of many components"}});import{useEffect as TH,useState as VH}from"react";import IH from"html-react-parser";import{useCallback as Uf,useEffect as ZH,useRef as Gf,useState as $H}from"react";function zH(){let f=new AudioContext,U=f.createOscillator(),D=U.connect(f.createMediaStreamDestination());U.start();let H=D.stream.getAudioTracks()[0];return H.enabled=!1,H}function Hf(f=null,U){let[D,H]=$H(!1),P=Gf(null),z=Gf(null),Z=Gf(null),T=Uf(async(X,G=!0)=>{if(P.current)$();let J=new RTCPeerConnection;if(J.onconnectionstatechange=()=>{if(J.connectionState==="connected")H(!0);else if(["disconnected","failed","closed"].includes(J.connectionState))H(!1)},J.ontrack=(R)=>{if(f)f.srcObject=R.streams[0]},G){let R=await navigator.mediaDevices.getUserMedia({audio:!0});J.addTrack(R.getTracks()[0],R)}else{let R=zH();J.addTrack(R)}let I=J.createDataChannel("oai-events");z.current=I,Z.current=new Promise((R)=>{I.addEventListener("open",()=>{R()})});let Y=await J.createOffer();await J.setLocalDescription(Y);let Q=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:Y.sdp,headers:{Authorization:`Bearer ${X}`,"Content-Type":"application/sdp"}})).text();await J.setRemoteDescription({type:"answer",sdp:Q}),P.current=J,await Z.current},[f]),$=Uf(()=>{let X=z.current;if(X)X.close();P.current?.getSenders()?.forEach((G)=>G.track?.stop()),P.current?.close(),H(!1),P.current=null,z.current=null,Z.current=null},[f]),V=Uf((X)=>{let G=z.current;if(!G){console.error("Data channel is not ready",X);return}let J=new Date().toLocaleTimeString();if(X.event_id=X.event_id||crypto.randomUUID(),G.send(JSON.stringify(X)),!X.timestamp)X.timestamp=J;U?.(X)},[U,f]),O=Uf((X)=>{if(!z.current){console.error("Data channel is not ready");return}let J=()=>{V({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:X}]}}),V({type:"response.create"})};if(Z.current)Z.current.then(J);else J()},[U,f]);return ZH(()=>{let X=z.current;if(!X)return;let G=(J)=>{let I=JSON.parse(J.data);if(!I.timestamp)I.timestamp=new Date().toLocaleTimeString();U?.(I)};return X.addEventListener("message",G),()=>{X.removeEventListener("message",G)}},[U,f]),{isSessionActive:D,startSession:T,stopSession:$,sendTextMessage:O}}import{jsx as JH}from"react/jsx-runtime";var CH=({data:f})=>{let{html:U,useSocketioSupport:D,useCentrifugeSupport:H,useMittSupport:P,centrifugeChannel:z}=f,[Z,T]=VH(U),{isSessionActive:$,startSession:V,sendTextMessage:O}=Hf(null,(I)=>{if(console.log(I.type,I.type==="response.output_text.delta"&&I.delta),I.type==="response.output_text.delta"&&I.delta)T((Y)=>Y+I.delta)});return TH(()=>{T(U)},[U]),JH(_,{card:"HTMLEmbedCard",data:f,methods:{update:(I)=>{T(I.value)},generateUsingAI:async(I)=>{try{if(!$&&I.token)await V(I.token,!1);O(I.prompt)}catch(Y){console.error("Failed to generate using AI",Y)}},initializeAI:async(I)=>{if(!$&&I.token)await V(I.token,!1)}},useCentrifugeSupport:H,useSocketioSupport:D,useMittSupport:P,centrifugeChannel:z,children:IH(Z)})},uf=CH;var YH=W({name:"HTMLEmbedCard",component:uf,metadata:{author:"Swarm.ing"}});import{useEffect as OH,useState as XH}from"react";import{jsx as bf}from"react/jsx-runtime";var GH=({data:f})=>{let{name:U,value:D,useSocketioSupport:H,useCentrifugeSupport:P,useMittSupport:z,centrifugeChannel:Z}=f,[T,$]=XH(D);return OH(()=>{$(D)},[D]),bf(_,{card:"HiddenCard",data:f,useSocketioSupport:H,useCentrifugeSupport:P,useMittSupport:z,centrifugeChannel:Z,methods:{update:({value:V})=>{$(V)}},children:bf("input",{type:"hidden",id:U,name:U,value:T})})},gf=GH;var qH=W({name:"HiddenCard",component:gf,metadata:{author:"Swarm.ing"}});import{useContext as vf,useEffect as QH}from"react";import{createContext as BH}from"react";var WH=BH(void 0),F=WH;import{jsx as wH,Fragment as _H}from"react/jsx-runtime";var RH=({data:f})=>{let{url:U}=f,D=vf(F),H=vf(K);return QH(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(U))window.location.href=U;else D?.(U)},[U,D]),wH(_H,{children:H})},pf=RH;var KH=W({name:"AutoRedirectCard",component:pf,metadata:{author:"Swarm.ing"}});import{Bounce as SH,Slide as FH,Zoom as MH,Flip as LH}from"react-toastify";import{toast as AH,ToastContainer as NH}from"react-toastify";import{useContext as oH,useMemo as yH,useRef as mH}from"react";import{jsx as qf,Fragment as uH}from"react/jsx-runtime";var EH={bounce:SH,slide:FH,zoom:MH,flip:LH},kH=(f)=>{let U={...f,type:f.alertType,transition:f.transition?EH[f.transition]:void 0,position:f.position??"bottom-right",autoClose:f.autoClose??3000,style:{backgroundColor:"black",...f.sx}};AH(f.message,U)},jH=(f)=>{console.log("Log event",f)},xH=(f)=>{if(typeof window==="undefined"||!window.Notification){console.warn("[IOEventsCard] Notifications API is not available");return}let U=()=>{try{new window.Notification(f.title,{body:f.message??f.subtitle,icon:f.icon,silent:f.silent})}catch(H){console.error("[IOEventsCard] Failed to show notification",H)}},D=window.Notification.permission;if(D==="granted"){U();return}if(D==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((H)=>{if(H==="granted")U()})},dH=({data:f})=>{let{useCentrifugeSupport:U,useSocketioSupport:D,useMittSupport:H,centrifugeChannel:P}=f,z=oH(F),Z=mH(z);Z.current=z;let T=yH(()=>({alert:kH,log:jH,push:xH,redirect:($)=>{if($.to){let V=$.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(V))window.location.href=V;else Z.current?.(V)}else window.location.reload()},reload:($)=>{if($.to){let V=$.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(V))window.location.href=V;else Z.current?.(V)}else window.location.reload()}}),[]);return qf(uH,{children:qf(_,{card:"IOEventsCard",data:f,useCentrifugeSupport:U,useSocketioSupport:D,useMittSupport:H,centrifugeChannel:P,methods:T,children:qf(NH,{})})})},cf=dH;var bH=W({name:"IOEventsCard",component:cf,metadata:{author:"Swarm.ing"}});import{useEffect as hf,useState as gH}from"react";import{jsx as lf}from"react/jsx-runtime";var vH=({data:f})=>{let{name:U,key:D,value:H,useSocketioSupport:P,useCentrifugeSupport:z,useMittSupport:Z,centrifugeChannel:T}=f,[$,V]=gH(H);return hf(()=>{V(H)},[H]),hf(()=>{if(typeof window==="undefined")return;sessionStorage.setItem(D,$)},[D,$]),lf(_,{card:"SessionStorageCard",data:f,useSocketioSupport:P,useCentrifugeSupport:z,useMittSupport:Z,centrifugeChannel:T,methods:{update:({value:O})=>{V(O)},remove:()=>{sessionStorage.removeItem(D),V("")}},children:lf("input",{type:"hidden",id:U,name:U,value:$})})},rf=vH;var pH=W({name:"SessionStorageCard",component:rf,metadata:{author:"PieData"}});import{useEffect as nf,useState as cH}from"react";import{jsx as tf}from"react/jsx-runtime";var hH=({data:f})=>{let{name:U,key:D,value:H,useSocketioSupport:P,useCentrifugeSupport:z,useMittSupport:Z,centrifugeChannel:T}=f,[$,V]=cH(H);return nf(()=>{V(H)},[H]),nf(()=>{if(typeof window==="undefined")return;localStorage.setItem(D,$)},[D,$]),tf(_,{card:"DeviceStorageCard",data:f,useSocketioSupport:P,useCentrifugeSupport:z,useMittSupport:Z,centrifugeChannel:T,methods:{update:({value:O})=>{V(O)},remove:()=>{localStorage.removeItem(D),V("")}},children:tf("input",{type:"hidden",id:U,name:U,value:$})})},sf=hH;var lH=W({name:"DeviceStorageCard",component:sf,metadata:{author:"PieData"}});import{useEffect as af,useState as rH}from"react";import{jsx as ef}from"react/jsx-runtime";var nH=({data:f})=>{let{name:U,key:D,value:H,useSocketioSupport:P,useCentrifugeSupport:z,useMittSupport:Z,centrifugeChannel:T}=f,[$,V]=rH(H);return af(()=>{V(H)},[H]),af(()=>{if(typeof window==="undefined")return;let O=window.Telegram?.WebApp?.CloudStorage;if(!O)return;O.setItem(D,$)},[D,$]),ef(_,{card:"CloudStorageCard",data:f,useSocketioSupport:P,useCentrifugeSupport:z,useMittSupport:Z,centrifugeChannel:T,methods:{update:({value:O})=>{V(O)},remove:()=>{let O=window.Telegram?.WebApp?.CloudStorage;if(O)O.removeItem(D);V("")}},children:ef("input",{type:"hidden",id:U,name:U,value:$})})},fU=nH;var iH=W({name:"CloudStorageCard",component:fU,metadata:{author:"PieData"}});import{useEffect as UU,useState as tH}from"react";import{jsx as HU}from"react/jsx-runtime";var sH=({data:f})=>{let{name:U,key:D,value:H,useSocketioSupport:P,useCentrifugeSupport:z,useMittSupport:Z,centrifugeChannel:T}=f,[$,V]=tH(H);return UU(()=>{V(H)},[H]),UU(()=>{if(typeof window==="undefined")return;let O=window.Telegram?.WebApp?.SecureStorage;if(!O)return;O.setItem(D,$)},[D,$]),HU(_,{card:"SecureStorageCard",data:f,useSocketioSupport:P,useCentrifugeSupport:z,useMittSupport:Z,centrifugeChannel:T,methods:{update:({value:O})=>{V(O)},remove:()=>{let O=window.Telegram?.WebApp?.SecureStorage;if(O)O.removeItem(D);V("")}},children:HU("input",{type:"hidden",id:U,name:U,value:$})})},PU=sH;var aH=W({name:"SecureStorageCard",component:PU,metadata:{author:"PieData"}});import{useCallback as Bf,useContext as Wf,useEffect as eH,useRef as fP,useState as DU}from"react";import{jsx as ZU}from"react/jsx-runtime";var UP=({data:f,content:U})=>{let{useLoader:D,noReturn:H,returnType:P,useSocketioSupport:z,useCentrifugeSupport:Z,useMittSupport:T,centrifugeChannel:$}=f,V=Wf(K),O=Wf(o)??w,[X,G]=DU(!1),[J,I]=DU(null),Y=fP(U),C=Wf(S),q=Bf((R)=>{if(R===null)G(!0);else if(G(!1),!H)Y.current=R;if(!H)I(R)},[H]),B=Bf((R)=>{Y.current=R.content,I(R.content)},[]),Q=Bf((R)=>{if(R===null)G(!0);else if(G(!1),!H)for(let s of R)C?.emit(s.name,s.data)},[H,C]);if(eH(()=>{I(U),G(!1)},[U]),!J&&D)return V;return ZU(_,{card:"AjaxGroupCard",data:f,methods:{changeContent:B},useSocketioSupport:z,useCentrifugeSupport:Z,useMittSupport:T,centrifugeChannel:$,children:ZU(O,{uiConfig:J??Y.current,setUiAjaxConfiguration:P==="events"?Q:q})})},$U=UP;var HP=W({name:"AjaxGroupCard",component:$U,metadata:{author:"Swarm.ing",description:"Group card with AJAX support"}});import{useContext as zU}from"react";import{jsx as Qf}from"react/jsx-runtime";var PP=({data:f,content:U,setUiAjaxConfiguration:D})=>{let{name:H,url:P,sx:z}=f,Z=zU(F),T=zU(o)??w;return Qf(_,{card:H,data:f,children:Qf("div",{style:z,id:H,onClick:(V)=>{if(P)if(V.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(P))window.location.href=P;else Z?.(P)},children:Qf(T,{setUiAjaxConfiguration:D,uiConfig:U})})})},TU=PP;var DP=W({name:"BoxCard",component:TU,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});import{useContext as ZP}from"react";import{jsx as Rf}from"react/jsx-runtime";var $P=({data:f,content:U,setUiAjaxConfiguration:D})=>{let{name:H,sx:P}=f,z=ZP(o)??w;return Rf(_,{card:H,data:f,children:Rf("div",{style:P,id:H,children:U.map((Z,T)=>{return Rf(z,{uiConfig:Z,setUiAjaxConfiguration:D},`children-${T}`)})})})},VU=$P;var zP=W({name:"OneOfCard",component:VU,metadata:{author:"Swarm.ing",description:"Different variants"}});import{useMemo as n}from"react";import{QueryClient as qP,QueryClientProvider as BP,useQuery as WP}from"@tanstack/react-query";import{useContext as IP,useEffect as CP}from"react";import{useEffect as TP,useState as VP}from"react";var Pf=new Map,Df=new Map;function Zf(f,U){let D=`${f}::${U}`,H=f?Pf.get(D):void 0,[P,z]=VP(H??null);return TP(()=>{if(!f)return;if(Pf.has(D)){z(Pf.get(D));return}let Z=Df.get(D);if(!Z)Z=fetch(f+`api/support/${U}`,{method:"GET"}).then(($)=>$.json()).then(($)=>{return Pf.set(D,$),Df.delete(D),$}).catch(($)=>{throw Df.delete(D),$}),Df.set(D,Z);let T=!1;return Z.then(($)=>{if(!T)z($)}).catch(()=>{}),()=>{T=!0}},[f,U,D]),P}var _f=null,IU=null;function CU(){IU?.()}function wf(){if(typeof window==="undefined")return Promise.resolve();if(typeof window.sid!=="undefined")return Promise.resolve();if(!_f)_f=new Promise((f)=>{IU=()=>{f()}});return _f}var JP=({children:f})=>{let U=IP(m),D=e(),H=Zf(D,"socketIO"),P=(z)=>{if(typeof window!=="undefined")window.sid=z.sid,CU(),console.log(`SocketIO initialized: ${window.sid}`)};return CP(()=>{if(!U)return;let z=()=>{console.log("SocketIO connected")},Z=(T)=>{console.log(`SocketIO disconnected: ${T}`),U.connect()};if(H)U.on("pieinit",P),U.on("connect",z),U.on("disconnect",Z),U.connect();return()=>{if(H)U.off("pieinit",P),U.off("connect",z),U.off("disconnect",Z),U.disconnect()}},[U,H]),f},v=JP;import{useContext as YP,useEffect as OP}from"react";var XP=({children:f})=>{let U=YP(y),D=e(),H=Zf(D,"centrifuge");return OP(()=>{if(!U)return;let P=()=>{console.log("Centrifuge connected")},z=(Z)=>{console.log("Centrifuge disconnected:",Z)};if(H)U.on("connected",P),U.on("disconnected",z),U.connect();return()=>{if(H)U.disconnect()}},[U,H]),f},p=XP;import{createAxiosDateTransformer as QP}from"axios-date-transformer";import{jsx as GP}from"react/jsx-runtime";function l(f,U,D){if(!U)return D;let H=f.replace(/^\//,""),P=U[H];if(!P)return D;return GP(Of,{uiConfig:P})}import{jsx as M,Fragment as wP}from"react/jsx-runtime";var RP=({location:f,fallback:U,piecache:D,onError:H,queryOptions:P,disableGlobalForm:z})=>{let Z=x(),T=d(),$=N(),V=n(()=>QP({baseURL:Z||""}),[Z]),O=n(()=>E(),[]),X=n(()=>Z?b(Z):null,[Z]),G=n(()=>Z?u(Z,T):null,[Z,T]),{data:J,isLoading:I,error:Y}=WP({queryKey:["uiConfig",f.pathname+f.search,Z],enabled:!!Z,queryFn:async()=>{let q=new URLSearchParams(f.search);q.set("__pieroot","web");let B="/api/content"+f.pathname+"?"+q.toString();if($)console.log("[PieRoot] Fetching UI configuration from:",B);let Q=await V.get(B,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if($)console.log("[PieRoot] Received UI configuration:",Q.data);return Q.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(q)=>Math.min(1000*2**q,30000),...P}),C=l(f.pathname,D,U);if(!Z)return C??null;if($)console.log("[PieRoot] Rendering with location:",f),console.log("[PieRoot] API_SERVER:",Z),console.log("[PieRoot] CENTRIFUGE_SERVER:",T),console.log("[PieRoot] Fallback provided:",!!U),console.log("[PieRoot] Piecache provided:",!!D);if(Y){if($)console.error("[PieRoot] Error fetching UI configuration:",Y),console.error("[PieRoot] Error details:",{message:Y.message,status:Y.response?.status,data:Y.response?.data});return H?.(),C}if(I||!J){if($)console.log("[PieRoot] Loading state:",{isLoading:I,hasUiConfiguration:!!J});return C}if($)console.log("[PieRoot] UI configuration loaded successfully:",J),console.log("[PieRoot] Rendering UI with configuration");return M(S.Provider,{value:O,children:M(m.Provider,{value:X,children:M(y.Provider,{value:G,children:M(K.Provider,{value:U??M(wP,{}),children:M(v,{children:M(p,{children:z?M(w,{uiConfig:J}):M("form",{id:"piedata_global_form",action:Z+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:M(w,{uiConfig:J})})})})})})})})},_P=(f)=>{let U=n(()=>new qP,[]);return M(F.Provider,{value:f.onNavigate,children:M(j.Provider,{value:f.config,children:M(BP,{client:U,children:M(RP,{...f})})})})},KP=_P;import{useMemo as i}from"react";import{QueryClient as MP,QueryClientProvider as LP,useQuery as AP}from"@tanstack/react-query";import{createAxiosDateTransformer as NP}from"axios-date-transformer";import{useEffect as SP,useState as FP}from"react";var Kf=({onError:f}={})=>{let[U,D]=FP(null),H=Af();return SP(()=>{if(typeof window==="undefined")return;let P=window.Telegram?.WebApp;if(!P)return;try{P.ready?.()}catch(z){f?.()}if(H==="telegram_expanded"&&(P.platform==="ios"||P.platform==="android"))P.expand();D(P)},[]),U};import{jsx as L,Fragment as mP}from"react/jsx-runtime";var oP=({location:f,fallback:U,piecache:D,onError:H,queryOptions:P,disableGlobalForm:z})=>{let Z=x(),T=d(),$=N(),V=i(()=>NP({baseURL:Z}),[Z]),O=i(()=>E(),[]),X=i(()=>Z?b(Z):null,[Z]),G=i(()=>Z?u(Z,T):null,[Z,T]),J=Kf({onError:H}),{data:I,isLoading:Y,error:C}=AP({queryKey:["uiConfig",f.pathname+f.search,J?.initData],enabled:!!J?.initData,queryFn:async()=>{let B=new URLSearchParams(f.search);if(B.set("__pieroot","telegram"),J?.initData)B.set("initData",J.initData);let Q="/api/content"+f.pathname+"?"+B.toString();if($)console.log("[PieRoot] Fetching UI configuration from:",Q);let R=await V.get(Q,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if($)console.log("[PieRoot] Received UI configuration:",R.data);return R.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(B)=>Math.min(1000*2**B,30000),...P}),q=l(f.pathname,D,U);if(!Z)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(C&&$)return console.error("[PieRoot] Error fetching UI configuration:",C),console.error("[PieRoot] Error details:",{message:C.message,status:C.response?.status,data:C.response?.data}),H?.(),q;if(Y||!I){if($)console.log("[PieRoot] Loading state:",{isLoading:Y,hasUiConfiguration:!!I});return q}if($)console.log("[PieRoot] UI configuration loaded successfully:",I),console.log("[PieRoot] Rendering UI with configuration");return L(S.Provider,{value:O,children:L(m.Provider,{value:X,children:L(y.Provider,{value:G,children:L(K.Provider,{value:U??L(mP,{}),children:L(v,{children:L(p,{children:z?L(w,{uiConfig:I}):L("form",{id:"piedata_global_form",action:Z+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:L(w,{uiConfig:I})})})})})})})})},yP=(f)=>{let U=i(()=>new MP,[]);return L(F.Provider,{value:f.onNavigate,children:L(j.Provider,{value:f.config,children:L(LP,{client:U,children:L(oP,{...f})})})})},EP=yP;import{useMemo as Sf,useState as kP}from"react";import{QueryClient as jP,QueryClientProvider as xP}from"@tanstack/react-query";import{jsx as k,Fragment as bP}from"react/jsx-runtime";var dP=({location:f,fallback:U,children:D,disableGlobalForm:H})=>{let P=x(),z=d(),Z=N(),T=Sf(()=>E(),[]),$=Sf(()=>P?b(P):null,[P]),V=Sf(()=>P?u(P,z):null,[P,z]);if(Z)console.log("[PieRoot] Rendering with location:",f),console.log("[PieRoot] API_SERVER:",P),console.log("[PieRoot] CENTRIFUGE_SERVER:",z),console.log("[PieRoot] Fallback provided:",!!U);return k(S.Provider,{value:T,children:k(m.Provider,{value:$,children:k(y.Provider,{value:V,children:k(K.Provider,{value:U??k(bP,{}),children:k(v,{children:k(p,{children:H?D:k("form",{id:"piedata_global_form",action:P+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:D})})})})})})})},uP=(f)=>{let[U]=kP(()=>new jP);return k(F.Provider,{value:f.onNavigate,children:k(j.Provider,{value:f.config,children:k(xP,{client:U,children:k(dP,{...f})})})})},gP=uP;import{useMemo as t}from"react";import{QueryClient as cP,QueryClientProvider as hP,useQuery as lP}from"@tanstack/react-query";import{createAxiosDateTransformer as rP}from"axios-date-transformer";import{useEffect as vP,useState as pP}from"react";var Ff=()=>{let[f,U]=pP(null);return vP(()=>{if(typeof window==="undefined")return;let D=window.WebApp;if(!D)return;D.ready(),U(D)},[]),f};import{jsx as A,Fragment as tP}from"react/jsx-runtime";var nP=({location:f,fallback:U,piecache:D,onError:H,queryOptions:P,disableGlobalForm:z})=>{let Z=x(),T=d(),$=N(),V=t(()=>rP({baseURL:Z}),[Z]),O=t(()=>E(),[]),X=t(()=>Z?b(Z):null,[Z]),G=t(()=>Z?u(Z,T):null,[Z,T]),J=Ff(),{data:I,isLoading:Y,error:C}=lP({queryKey:["uiConfig",f.pathname+f.search,J?.initData],queryFn:async()=>{let B=new URLSearchParams(f.search);if(B.set("__pieroot","max"),J?.initData)B.set("initData",J.initData);let Q="/api/content"+f.pathname+"?"+B.toString();if($)console.log("[PieRoot] Fetching UI configuration from:",Q);let R=await V.get(Q,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if($)console.log("[PieRoot] Received UI configuration:",R.data);return R.data},enabled:!!J?.initData,staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(B)=>Math.min(1000*2**B,30000),...P}),q=l(f.pathname,D,U);if(!Z)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(C&&$)return console.error("[PieRoot] Error fetching UI configuration:",C),console.error("[PieRoot] Error details:",{message:C.message,status:C.response?.status,data:C.response?.data}),H?.(),q;if(Y||!I){if($)console.log("[PieRoot] Loading state:",{isLoading:Y,hasUiConfiguration:!!I});return q}if($)console.log("[PieRoot] UI configuration loaded successfully:",I),console.log("[PieRoot] Rendering UI with configuration");return A(S.Provider,{value:O,children:A(m.Provider,{value:X,children:A(y.Provider,{value:G,children:A(K.Provider,{value:U??A(tP,{}),children:A(v,{children:A(p,{children:z?A(w,{uiConfig:I}):A("form",{id:"piedata_global_form",action:Z+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:A(w,{uiConfig:I})})})})})})})})},iP=(f)=>{let U=t(()=>new cP,[]);return A(F.Provider,{value:f.onNavigate,children:A(j.Provider,{value:f.config,children:A(hP,{client:U,children:A(nP,{...f})})})})},sP=iP;import{useMemo as aP}from"react";var JU=(f,U=!1)=>{if(f==="sid"){if(!window.sid)throw new Error("SocketIO isn't initialized properly");return[window.sid]}let D=document.getElementsByName(f);if(!D.length){if(U)console.warn(`No input found with name ${f}`);return[]}let H=D[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[]},eP=(f,U={},D=[],H,P)=>{let z=P?.renderingLogEnabled??!1,Z=P?.timeout,T=P?.retryPolicy,$=T?.maxRetries??0,V=T?.baseDelay??1000,O=T?.retryOn??[502,503,504];if(z)console.log("Registering AJAX: ",H,U,D);return async(X={})=>{if(typeof window==="undefined"||typeof document==="undefined"){if(z)console.warn("getAjaxSubmit called on server, skipping DOM-dependent logic");return}let G=P?.apiServer;if(!G){if(z)console.warn("AJAX skipped: apiServer is missing");return}if(!H||!f){if(z)console.warn("AJAX skipped: pathname or setUiAjaxConfiguration is missing");return}if(D.includes("sid"))await wf();let J=new FormData;for(let[C,q]of Object.entries({...U,...X}))J.append(C,q);for(let C of D)for(let q of JU(C,z))J.append(C,q);let I=G+"api/ajax_content"+H;f(null);let Y;for(let C=0;C<=$;C++){if(C>0){let Q=V*2**(C-1);if(z)console.log(`AJAX retry ${C}/${$} after ${Q}ms`);await new Promise((R)=>setTimeout(R,Q))}let q=Z!=null?new AbortController:null,B=q&&setTimeout(()=>q.abort(),Z);try{let Q=await fetch(I,{method:"POST",body:J,signal:q?.signal});if(B)clearTimeout(B);if(!Q.ok&&O.includes(Q.status)&&C<$){Y=new Error(`HTTP ${Q.status}`);continue}let s=(Q.headers.get("content-type")||"").includes("application/json");if(!!Q.body?.getReader&&!s){let a=Q.body.getReader(),XU=new TextDecoder,c="";while(!0){let{done:$f,value:GU}=await a.read();if($f)break;c+=XU.decode(GU,{stream:!0});let Mf=c.split(`
3
- `);c=Mf.pop()??"";for(let qU of Mf){let zf=qU.trim();if(!zf)continue;try{let BU=JSON.parse(zf);f([BU])}catch{if(z)console.warn("Failed to parse streamed line:",zf)}}}if(c.trim())try{let $f=JSON.parse(c);f([$f])}catch{if(z)console.warn("Failed to parse final streamed line:",c)}return{}}else{let a=await Q.json();return f(a),a}}catch(Q){if(B)clearTimeout(B);if(Y=Q,C<$)continue;if(z)console.error("AJAX request failed:",Q);return f(null),Q}}if(z)console.error("AJAX request failed after retries:",Y);return f(null),Y}},fD=(f,U={},D=[],H,P)=>{let{apiServer:z,enableRenderingLog:Z}=h(),T=JSON.stringify(U),$=JSON.stringify(D),V=JSON.stringify(P);return aP(()=>eP(f,U,D,H,{apiServer:z,renderingLogEnabled:Z,timeout:P?.timeout,retryPolicy:P?.retryPolicy}),[f,T,$,H,z,Z,V])};import{tool as UD}from"@openai/agents";import{useContext as HD,useMemo as PD}from"react";var YU=/^pie(.+?)_(.+)$/;function OU(f=E(),U={}){let D=[],H=new Set;for(let P of f.all.keys()){if(typeof P!=="string")continue;let z=P.match(YU);if(!z)continue;let[,Z,T]=z,$={methodName:Z,cardName:T,eventName:P};if(U.filter&&!U.filter($))continue;let V=U.nameFor?.($)??`${T}_${Z}`;if(H.has(V))continue;H.add(V);let O=U.describe?.($)??`Invokes the "${Z}" method on the PieCard "${T}" by emitting the in-process mitt event "${P}". The optional "payload" argument is forwarded verbatim to the card's handler.`;D.push(UD({name:V,description:O,strict:!1,parameters:{type:"object",properties:{payload:{description:"Arbitrary JSON payload forwarded to the PieCard method handler. Omit for fire-and-forget calls."}},required:[],additionalProperties:!0},execute:async(X)=>{let G=X?.payload;return f.emit(P,G),`Emitted "${P}"`}}))}return D}function DD(f={}){let D=HD(S)??E(),H=[];for(let $ of D.all.keys())if(typeof $==="string"&&YU.test($))H.push($);H.sort();let P=H.join("|"),{filter:z,describe:Z,nameFor:T}=f;return PD(()=>OU(D,{filter:z,describe:Z,nameFor:T}),[D,P,z,Z,T])}import{clsx as ZD}from"clsx";import{twMerge as $D}from"tailwind-merge";function zD(...f){return $D(ZD(f))}var TD=()=>{if(typeof document==="undefined")return;let f=document.getElementById("piedata_global_form");f&&f.submit()};var VD=(f,U)=>`${f}${Tf}${U}`;export{Kf as useWebApp,DD as usePieMittAgentTools,NU as usePieEmit,Hf as useOpenAIWebRTC,Ff as useMaxWebApp,fD as useAjaxSubmit,jU as unregisterComponent,TD as submitGlobalForm,g as registry,W as registerPieComponent,kU as registerMultipleComponents,JU as readAjaxKey,VD as pieName,xU as hasComponent,bU as getRegistrySize,r as getRegistryEntry,OU as getMittAgentTools,dU as getComponentMeta,uU as getAllRegisteredComponents,zD as cn,DH as UnionCard,o as UIRendererContext,Of as UILoading,w as UI,pH as SessionStorageCard,UH as SequenceCard,aH as SecureStorageCard,EP as PieTelegramRoot,KP as PieRoot,sP as PieMaxRoot,_ as PieCard,gP as PieBaseRoot,Tf as PIEBREAK,zP as OneOfCard,bH as IOEventsCard,qH as HiddenCard,YH as HTMLEmbedCard,lH as DeviceStorageCard,iH as CloudStorageCard,DP as BoxCard,KH as AutoRedirectCard,HP as AjaxGroupCard};
2
+ import{useContext as If,useEffect as Cf,useRef as yU}from"react";import{createContext as WU,useContext as QU}from"react";var j=WU(null),h=()=>{let f=QU(j);if(!f)throw new Error("usePieConfig must be used within PieConfigProvider");return f},x=()=>{let{apiServer:f}=h();return f},e=x,u=()=>{let{centrifugeServer:f}=h();return f};var N=()=>{let{enableRenderingLog:f}=h();return f},Lf=N,Af=()=>{let{pageProcessor:f}=h();return f};var Tf="__piedemo__";import{createContext as RU}from"react";import{Centrifuge as Nf}from"centrifuge";var yf=new Map,d=(f,U)=>{if(!U)return null;let D=`${f}::${U}`,H=yf.get(D);if(H)return H;async function P(){let Z=await fetch(f+"api/centrifuge/gen_token");if(!Z.ok){if(Z.status===403)throw new Nf.UnauthorizedError("Backend is not answering");throw new Error(`Unexpected status code ${Z.status}`)}return(await Z.json()).token}let $=new Nf(U,{getToken:P});return yf.set(D,$),$},_U=RU(null),o=_U;import{io as wU}from"socket.io-client";import{createContext as KU}from"react";var of=new Map,b=(f)=>{let U=of.get(f);if(U)return U;let D=wU(f,{autoConnect:!1,transports:["websocket"]});return of.set(f,D),D},SU=KU(null),m=SU;import FU from"mitt";import{createContext as MU,useCallback as LU,useContext as AU}from"react";var Vf=null;function E(){if(!Vf)Vf=FU();return Vf}var mf=MU(null);function NU(f){let U=AU(mf);return LU((D,H)=>{(U??E()).emit(`pie${D}_${f}`,H)},[f,U])}var S=mf;import{jsx as EU,jsxs as kU,Fragment as mU}from"react/jsx-runtime";var oU=({card:f,data:U,children:D,useSocketioSupport:H=!1,useCentrifugeSupport:P=!1,useMittSupport:$=!1,centrifugeChannel:Z=void 0,methods:V=void 0,stored:z=void 0})=>{let T=Lf(),I=yU(V);if(I.current=V,T)console.log("[PieCard] Rendering card:",f),console.log("[PieCard] Card data:",U),console.log("[PieCard] Component name:",U?.name),console.log("[PieCard] Real-time support:",{socketio:H,centrifuge:P,mitt:$,centrifugeChannel:Z}),console.log("[PieCard] Methods:",V?Object.keys(V):"none"),console.log("[PieCard] Has children:",!!D);let X=If(m),G=If(o),J=If(S);if(Cf(()=>{if(!X||!H||!I.current||!U.name){if(T&&H)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!X,useSocketioSupport:H,hasMethods:!!I.current,hasDataName:!!U?.name});return}let q=Object.keys(I.current??{}).map((C)=>{let O=`pie${C}_${U.name}`;if(T)console.log(`[PieCard] Socket.IO registering event: ${O}`);let W=(B)=>{I.current?.[C]?.(B)};return X.on(O,W),[O,W]});return()=>{q.forEach(([C,O])=>{if(T)console.log(`[PieCard] Socket.IO unregistering event: ${C}`);X.off(C,O)})}},[X,U.name,H]),Cf(()=>{if(!G||!P||!Z||!U.name){if(T&&P)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!G,useCentrifugeSupport:P,hasCentrifugeChannel:!!Z,hasMethods:!!I.current,hasDataName:!!U?.name});return}let q=Object.keys(I.current??{}).map((C)=>{let O=`pie${C}_${U.name}_${Z}`;if(T)console.log(`[PieCard] Centrifuge subscribing to channel: ${O}`);let W=G.newSubscription(O);return W.on("publication",(B)=>{if(T)console.log(`[PieCard] Centrifuge received data on ${O}:`,B.data);I.current?.[C]?.(B.data)}),W.subscribe(),W});return()=>{q.forEach((C)=>{if(T)console.log("[PieCard] Centrifuge unsubscribing from channel");C.unsubscribe(),G.removeSubscription(C)})}},[G,Z,U.name,P]),Cf(()=>{if(!J||!$||!U.name){if(T&&$)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!J,useMittSupport:$,hasMethods:!!I.current,hasDataName:!!U?.name});return}let Y=Object.keys(I.current??{}),q={};return Y.forEach((C)=>{let O=`pie${C}_${U.name}`,W=(B)=>{if(T)console.log(`[PieCard] Mitt registering event: ${O}`);I.current?.[C]?.(B)};q[O]=W,J.on(O,W)}),()=>{Object.entries(q).forEach(([C,O])=>{if(T)console.log(`[PieCard] Mitt unregistering event: ${C}`);J.off(C,O)})}},[J,U.name,$]),T)console.log("[PieCard] Rendering complete, returning children");if(z!==void 0)return kU(mU,{children:[EU("input",{type:"hidden",name:U.name,value:JSON.stringify(z)}),D]});return D},_=oU;import{lazy as jU}from"react";var Jf=new Map;function Ef(f,U){return jU(()=>{if(Jf.has(U))return Jf.get(U);let D=f().then((H)=>H);return Jf.set(U,D),D})}var g=new Map,xU=(f)=>{if(!f.name)throw new Error("Component registration requires a name");if(!f.component&&!f.loader)throw new Error(`Component "${f.name}" requires component or loader`);let U={name:f.name,component:f.component,loader:f.loader,metadata:f.metadata,fallback:f.fallback,isLazy:!1};if(!U.component&&U.loader)U.component=Ef(U.loader,f.name),U.loader=void 0,U.isLazy=!0;return U};function Q(f){let U=xU(f);return g.set(U.name,U),U.component}var uU=(f)=>{f.forEach((U)=>Q(U))},dU=(f)=>{g.delete(f)},bU=(f)=>{return g.has(f)},gU=(f)=>{return g.get(f)?.metadata},r=(f)=>{return g.get(f)},vU=()=>{return Array.from(g.keys())},pU=()=>{return g.size};import{Suspense as nU,useContext as iU,memo as tU}from"react";import{createContext as cU}from"react";import{jsx as rU,Fragment as lU}from"react/jsx-runtime";var hU=cU(rU(lU,{})),K=hU;import{jsx as Yf}from"react/jsx-runtime";function sU({uiConfig:f,setUiAjaxConfiguration:U}){let D=iU(K),H=N();if(H)console.log("[UI] Rendering component:",f.card),console.log("[UI] Component data:",f.data),console.log("[UI] Component content:",f.content),console.log("[UI] Has setUiAjaxConfiguration:",!!U);let P=r(f.card);if(!P?.component){if(H)console.warn(`[UI] Component not found in registry: ${f.card}`),console.log("[UI] Returning fallback component");return D}if(H)console.log("[UI] Found component in registry:",{name:P.name,isLazy:P.isLazy,hasMetadata:!!P.metadata});let $=P.component,Z=Yf($,{data:f.data,content:f.content,setUiAjaxConfiguration:U});if(P.isLazy){if(H)console.log("[UI] Rendering lazy component with Suspense:",P.name);return Yf(nU,{fallback:P.fallback?Yf(P.fallback,{}):D,children:Z},`${P.name}`)}if(H)console.log("[UI] Rendering component directly:",P.name);return Z}var w=tU(sU);import{Suspense as fH,useContext as UH}from"react";import{createContext as aU}from"react";var eU=aU(null),y=eU;import{jsx as ff}from"react/jsx-runtime";function kf({uiConfig:f,setUiAjaxConfiguration:U}){let D=UH(K),H=N();if(H)console.log("[UILoading] Rendering fallback for:",f.card),console.log("[UILoading] Component data:",f.data),console.log("[UILoading] Component content:",f.content),console.log("[UILoading] Has setUiAjaxConfiguration:",!!U);let P=r(f.card);if(!P?.component){if(H)console.warn(`[UILoading] Component not found in registry: ${f.card}`),console.log("[UILoading] Returning fallback component");return D}if(H)console.log("[UILoading] Found component in registry:",{name:P.name,isLazy:P.isLazy,hasMetadata:!!P.metadata,hasFallback:!!P.fallback});if(P.fallback){if(H)console.log("[UILoading] Rendering fallback for:",P.name);let V=P.fallback;return ff(V,{})}if(H)console.log("[UILoading] No fallback, rendering full component:",P.name);let $=P.component,Z=ff(y.Provider,{value:kf,children:ff($,{data:f.data,content:f.content,setUiAjaxConfiguration:U})});if(P.isLazy)return ff(fH,{fallback:D,children:Z},`${P.name}`);return Z}var Of=kf;import{useContext as HH}from"react";import{jsx as Xf}from"react/jsx-runtime";var PH=({data:f,content:U,setUiAjaxConfiguration:D})=>{let{name:H,sx:P}=f,$=HH(y)??w;return Xf(_,{card:H,data:f,children:Xf("div",{style:P,id:H,children:U.map((Z,V)=>{return Xf($,{uiConfig:Z,setUiAjaxConfiguration:D},`children-${V}`)})})})},jf=PH;var DH=Q({name:"SequenceCard",component:jf,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});import{useContext as ZH}from"react";import{jsx as xf}from"react/jsx-runtime";var $H=({data:f,content:U,setUiAjaxConfiguration:D})=>{let{name:H}=f,P=ZH(y)??w;return xf(_,{card:H,data:f,children:U.map(($,Z)=>{return xf(P,{uiConfig:$,setUiAjaxConfiguration:D},`children-${Z}`)})})},uf=$H;var zH=Q({name:"UnionCard",component:uf,metadata:{author:"Swarm.ing",description:"Renders one of many components"}});import{useEffect as CH,useState as JH}from"react";import YH from"html-react-parser";import{useCallback as Uf,useEffect as TH,useRef as Gf,useState as VH}from"react";function IH(){let f=new AudioContext,U=f.createOscillator(),D=U.connect(f.createMediaStreamDestination());U.start();let H=D.stream.getAudioTracks()[0];return H.enabled=!1,H}function Hf(f=null,U){let[D,H]=VH(!1),P=Gf(null),$=Gf(null),Z=Gf(null),V=Uf(async(X,G=!0)=>{if(P.current)z();let J=new RTCPeerConnection;if(J.onconnectionstatechange=()=>{if(J.connectionState==="connected")H(!0);else if(["disconnected","failed","closed"].includes(J.connectionState))H(!1)},J.ontrack=(R)=>{if(f)f.srcObject=R.streams[0]},G){let R=await navigator.mediaDevices.getUserMedia({audio:!0});J.addTrack(R.getTracks()[0],R)}else{let R=IH();J.addTrack(R)}let Y=J.createDataChannel("oai-events");$.current=Y,Z.current=new Promise((R)=>{Y.addEventListener("open",()=>{R()})});let q=await J.createOffer();await J.setLocalDescription(q);let B=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:q.sdp,headers:{Authorization:`Bearer ${X}`,"Content-Type":"application/sdp"}})).text();await J.setRemoteDescription({type:"answer",sdp:B}),P.current=J,await Z.current},[f]),z=Uf(()=>{let X=$.current;if(X)X.close();P.current?.getSenders()?.forEach((G)=>G.track?.stop()),P.current?.close(),H(!1),P.current=null,$.current=null,Z.current=null},[f]),T=Uf((X)=>{let G=$.current;if(!G){console.error("Data channel is not ready",X);return}let J=new Date().toLocaleTimeString();if(X.event_id=X.event_id||crypto.randomUUID(),G.send(JSON.stringify(X)),!X.timestamp)X.timestamp=J;U?.(X)},[U,f]),I=Uf((X)=>{if(!$.current){console.error("Data channel is not ready");return}let J=()=>{T({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:X}]}}),T({type:"response.create"})};if(Z.current)Z.current.then(J);else J()},[U,f]);return TH(()=>{let X=$.current;if(!X)return;let G=(J)=>{let Y=JSON.parse(J.data);if(!Y.timestamp)Y.timestamp=new Date().toLocaleTimeString();U?.(Y)};return X.addEventListener("message",G),()=>{X.removeEventListener("message",G)}},[U,f]),{isSessionActive:D,startSession:V,stopSession:z,sendTextMessage:I}}import{jsx as XH}from"react/jsx-runtime";var OH=({data:f})=>{let{html:U,useSocketioSupport:D,useCentrifugeSupport:H,useMittSupport:P,centrifugeChannel:$}=f,[Z,V]=JH(U),{isSessionActive:z,startSession:T,sendTextMessage:I}=Hf(null,(Y)=>{if(console.log(Y.type,Y.type==="response.output_text.delta"&&Y.delta),Y.type==="response.output_text.delta"&&Y.delta)V((q)=>q+Y.delta)});return CH(()=>{V(U)},[U]),XH(_,{card:"HTMLEmbedCard",data:f,methods:{update:(Y)=>{V(Y.value)},generateUsingAI:async(Y)=>{try{if(!z&&Y.token)await T(Y.token,!1);I(Y.prompt)}catch(q){console.error("Failed to generate using AI",q)}},initializeAI:async(Y)=>{if(!z&&Y.token)await T(Y.token,!1)}},useCentrifugeSupport:H,useSocketioSupport:D,useMittSupport:P,centrifugeChannel:$,children:YH(Z)})},df=OH;var GH=Q({name:"HTMLEmbedCard",component:df,metadata:{author:"Swarm.ing"}});import{useEffect as qH,useState as BH}from"react";import{jsx as bf}from"react/jsx-runtime";var WH=({data:f})=>{let{name:U,value:D,useSocketioSupport:H,useCentrifugeSupport:P,useMittSupport:$,centrifugeChannel:Z}=f,[V,z]=BH(D);return qH(()=>{z(D)},[D]),bf(_,{card:"HiddenCard",data:f,useSocketioSupport:H,useCentrifugeSupport:P,useMittSupport:$,centrifugeChannel:Z,methods:{update:({value:T})=>{z(T)}},children:bf("input",{type:"hidden",id:U,name:U,value:V})})},gf=WH;var QH=Q({name:"HiddenCard",component:gf,metadata:{author:"Swarm.ing"}});import{useContext as vf,useEffect as wH}from"react";import{createContext as RH}from"react";var _H=RH(void 0),F=_H;import{jsx as FH,Fragment as SH}from"react/jsx-runtime";var KH=({data:f})=>{let{url:U}=f,D=vf(F),H=vf(K);return wH(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(U))window.location.href=U;else D?.(U)},[U,D]),FH(SH,{children:H})},pf=KH;var MH=Q({name:"AutoRedirectCard",component:pf,metadata:{author:"Swarm.ing"}});import{Bounce as LH,Slide as AH,Zoom as NH,Flip as yH}from"react-toastify";import{toast as oH,ToastContainer as mH}from"react-toastify";import{useContext as EH,useMemo as kH,useRef as jH}from"react";import{jsx as qf,Fragment as vH}from"react/jsx-runtime";var xH={bounce:LH,slide:AH,zoom:NH,flip:yH},uH=(f)=>{let U={...f,type:f.alertType,transition:f.transition?xH[f.transition]:void 0,position:f.position??"bottom-right",autoClose:f.autoClose??3000,style:{backgroundColor:"black",...f.sx}};oH(f.message,U)},dH=(f)=>{console.log("Log event",f)},bH=(f)=>{if(typeof window==="undefined"||!window.Notification){console.warn("[IOEventsCard] Notifications API is not available");return}let U=()=>{try{new window.Notification(f.title,{body:f.message??f.subtitle,icon:f.icon,silent:f.silent})}catch(H){console.error("[IOEventsCard] Failed to show notification",H)}},D=window.Notification.permission;if(D==="granted"){U();return}if(D==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((H)=>{if(H==="granted")U()})},gH=({data:f})=>{let{useCentrifugeSupport:U,useSocketioSupport:D,useMittSupport:H,centrifugeChannel:P}=f,$=EH(F),Z=jH($);Z.current=$;let V=kH(()=>({alert:uH,log:dH,push:bH,redirect:(z)=>{if(z.to){let T=z.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(T))window.location.href=T;else Z.current?.(T)}else window.location.reload()},reload:(z)=>{if(z.to){let T=z.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(T))window.location.href=T;else Z.current?.(T)}else window.location.reload()}}),[]);return qf(vH,{children:qf(_,{card:"IOEventsCard",data:f,useCentrifugeSupport:U,useSocketioSupport:D,useMittSupport:H,centrifugeChannel:P,methods:V,children:qf(mH,{})})})},cf=gH;var pH=Q({name:"IOEventsCard",component:cf,metadata:{author:"Swarm.ing"}});import{useEffect as hf,useState as cH}from"react";import{jsx as lf}from"react/jsx-runtime";var hH=({data:f})=>{let{name:U,key:D,value:H,useSocketioSupport:P,useCentrifugeSupport:$,useMittSupport:Z,centrifugeChannel:V}=f,[z,T]=cH(H);return hf(()=>{T(H)},[H]),hf(()=>{if(typeof window==="undefined")return;sessionStorage.setItem(D,z)},[D,z]),lf(_,{card:"SessionStorageCard",data:f,useSocketioSupport:P,useCentrifugeSupport:$,useMittSupport:Z,centrifugeChannel:V,methods:{update:({value:I})=>{T(I)},remove:()=>{sessionStorage.removeItem(D),T("")}},children:lf("input",{type:"hidden",id:U,name:U,value:z})})},rf=hH;var lH=Q({name:"SessionStorageCard",component:rf,metadata:{author:"PieData"}});import{useEffect as nf,useState as rH}from"react";import{jsx as tf}from"react/jsx-runtime";var nH=({data:f})=>{let{name:U,key:D,value:H,useSocketioSupport:P,useCentrifugeSupport:$,useMittSupport:Z,centrifugeChannel:V}=f,[z,T]=rH(H);return nf(()=>{T(H)},[H]),nf(()=>{if(typeof window==="undefined")return;localStorage.setItem(D,z)},[D,z]),tf(_,{card:"DeviceStorageCard",data:f,useSocketioSupport:P,useCentrifugeSupport:$,useMittSupport:Z,centrifugeChannel:V,methods:{update:({value:I})=>{T(I)},remove:()=>{localStorage.removeItem(D),T("")}},children:tf("input",{type:"hidden",id:U,name:U,value:z})})},sf=nH;var iH=Q({name:"DeviceStorageCard",component:sf,metadata:{author:"PieData"}});import{useEffect as af,useState as tH}from"react";import{jsx as ef}from"react/jsx-runtime";var sH=({data:f})=>{let{name:U,key:D,value:H,useSocketioSupport:P,useCentrifugeSupport:$,useMittSupport:Z,centrifugeChannel:V}=f,[z,T]=tH(H);return af(()=>{T(H)},[H]),af(()=>{if(typeof window==="undefined")return;let I=window.Telegram?.WebApp?.CloudStorage;if(!I)return;I.setItem(D,z)},[D,z]),ef(_,{card:"CloudStorageCard",data:f,useSocketioSupport:P,useCentrifugeSupport:$,useMittSupport:Z,centrifugeChannel:V,methods:{update:({value:I})=>{T(I)},remove:()=>{let I=window.Telegram?.WebApp?.CloudStorage;if(I)I.removeItem(D);T("")}},children:ef("input",{type:"hidden",id:U,name:U,value:z})})},fU=sH;var aH=Q({name:"CloudStorageCard",component:fU,metadata:{author:"PieData"}});import{useEffect as UU,useState as eH}from"react";import{jsx as HU}from"react/jsx-runtime";var fP=({data:f})=>{let{name:U,key:D,value:H,useSocketioSupport:P,useCentrifugeSupport:$,useMittSupport:Z,centrifugeChannel:V}=f,[z,T]=eH(H);return UU(()=>{T(H)},[H]),UU(()=>{if(typeof window==="undefined")return;let I=window.Telegram?.WebApp?.SecureStorage;if(!I)return;I.setItem(D,z)},[D,z]),HU(_,{card:"SecureStorageCard",data:f,useSocketioSupport:P,useCentrifugeSupport:$,useMittSupport:Z,centrifugeChannel:V,methods:{update:({value:I})=>{T(I)},remove:()=>{let I=window.Telegram?.WebApp?.SecureStorage;if(I)I.removeItem(D);T("")}},children:HU("input",{type:"hidden",id:U,name:U,value:z})})},PU=fP;var UP=Q({name:"SecureStorageCard",component:PU,metadata:{author:"PieData"}});import{useCallback as Bf,useContext as Wf,useEffect as HP,useRef as PP,useState as DU}from"react";import{jsx as ZU}from"react/jsx-runtime";var DP=({data:f,content:U})=>{let{useLoader:D,noReturn:H,returnType:P,useSocketioSupport:$,useCentrifugeSupport:Z,useMittSupport:V,centrifugeChannel:z}=f,T=Wf(K),I=Wf(y)??w,[X,G]=DU(!1),[J,Y]=DU(null),q=PP(U),C=Wf(S),O=Bf((R)=>{if(R===null)G(!0);else if(G(!1),!H)q.current=R;if(!H)Y(R)},[H]),W=Bf((R)=>{q.current=R.content,Y(R.content)},[]),B=Bf((R)=>{if(R===null)G(!0);else if(G(!1),!H)for(let s of R)C?.emit(s.name,s.data)},[H,C]);if(HP(()=>{Y(U),G(!1)},[U]),!J&&D)return T;return ZU(_,{card:"AjaxGroupCard",data:f,methods:{changeContent:W},useSocketioSupport:$,useCentrifugeSupport:Z,useMittSupport:V,centrifugeChannel:z,children:ZU(I,{uiConfig:J??q.current,setUiAjaxConfiguration:P==="events"?B:O})})},$U=DP;var ZP=Q({name:"AjaxGroupCard",component:$U,metadata:{author:"Swarm.ing",description:"Group card with AJAX support"}});import{useContext as zU}from"react";import{jsx as Qf}from"react/jsx-runtime";var $P=({data:f,content:U,setUiAjaxConfiguration:D})=>{let{name:H,url:P,sx:$}=f,Z=zU(F),V=zU(y)??w;return Qf(_,{card:H,data:f,children:Qf("div",{style:$,id:H,onClick:(T)=>{if(P)if(T.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(P))window.location.href=P;else Z?.(P)},children:Qf(V,{setUiAjaxConfiguration:D,uiConfig:U})})})},TU=$P;var zP=Q({name:"BoxCard",component:TU,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});import{useContext as TP}from"react";import{jsx as Rf}from"react/jsx-runtime";var VP=({data:f,content:U,setUiAjaxConfiguration:D})=>{let{name:H,sx:P}=f,$=TP(y)??w;return Rf(_,{card:H,data:f,children:Rf("div",{style:P,id:H,children:U.map((Z,V)=>{return Rf($,{uiConfig:Z,setUiAjaxConfiguration:D},`children-${V}`)})})})},VU=VP;var IP=Q({name:"OneOfCard",component:VU,metadata:{author:"Swarm.ing",description:"Different variants"}});import{useMemo as n}from"react";import{QueryClient as QP,QueryClientProvider as RP,useQuery as _P}from"@tanstack/react-query";import{useContext as YP,useEffect as OP}from"react";import{useEffect as CP,useState as JP}from"react";var Pf=new Map,Df=new Map;function Zf(f,U){let D=`${f}::${U}`,H=f?Pf.get(D):void 0,[P,$]=JP(H??null);return CP(()=>{if(!f)return;if(Pf.has(D)){$(Pf.get(D));return}let Z=Df.get(D);if(!Z)Z=fetch(f+`api/support/${U}`,{method:"GET"}).then((z)=>z.json()).then((z)=>{return Pf.set(D,z),Df.delete(D),z}).catch((z)=>{throw Df.delete(D),z}),Df.set(D,Z);let V=!1;return Z.then((z)=>{if(!V)$(z)}).catch(()=>{}),()=>{V=!0}},[f,U,D]),P}var _f=null,IU=null;function CU(){IU?.()}function wf(){if(typeof window==="undefined")return Promise.resolve();if(typeof window.sid!=="undefined")return Promise.resolve();if(!_f)_f=new Promise((f)=>{IU=()=>{f()}});return _f}var XP=({children:f})=>{let U=YP(m),D=e(),H=Zf(D,"socketIO"),P=($)=>{if(typeof window!=="undefined")window.sid=$.sid,CU(),console.log(`SocketIO initialized: ${window.sid}`)};return OP(()=>{if(!U)return;let $=()=>{console.log("SocketIO connected")},Z=(V)=>{console.log(`SocketIO disconnected: ${V}`),U.connect()};if(H)U.on("pieinit",P),U.on("connect",$),U.on("disconnect",Z),U.connect();return()=>{if(H)U.off("pieinit",P),U.off("connect",$),U.off("disconnect",Z),U.disconnect()}},[U,H]),f},v=XP;import{useContext as GP,useEffect as qP}from"react";var BP=({children:f})=>{let U=GP(o),D=e(),H=Zf(D,"centrifuge");return qP(()=>{if(!U)return;let P=()=>{console.log("Centrifuge connected")},$=(Z)=>{console.log("Centrifuge disconnected:",Z)};if(H)U.on("connected",P),U.on("disconnected",$),U.connect();return()=>{if(H)U.disconnect()}},[U,H]),f},p=BP;import{createAxiosDateTransformer as wP}from"axios-date-transformer";import{jsx as WP}from"react/jsx-runtime";function l(f,U,D){if(!U)return D;let H=f.replace(/^\//,""),P=U[H];if(!P)return D;return WP(Of,{uiConfig:P})}import{jsx as M,Fragment as FP}from"react/jsx-runtime";var KP=({location:f,fallback:U,piecache:D,onError:H,queryOptions:P,disableGlobalForm:$})=>{let Z=x(),V=u(),z=N(),T=n(()=>wP({baseURL:Z||""}),[Z]),I=n(()=>E(),[]),X=n(()=>Z?b(Z):null,[Z]),G=n(()=>Z?d(Z,V):null,[Z,V]),{data:J,isLoading:Y,error:q}=_P({queryKey:["uiConfig",f.pathname+f.search,Z],enabled:!!Z,queryFn:async()=>{let O=new URLSearchParams(f.search);O.set("__pieroot","web");let W="/api/content"+f.pathname+"?"+O.toString();if(z)console.log("[PieRoot] Fetching UI configuration from:",W);let B=await T.get(W,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(z)console.log("[PieRoot] Received UI configuration:",B.data);return B.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(O)=>Math.min(1000*2**O,30000),...P}),C=l(f.pathname,D,U);if(!Z)return C??null;if(z)console.log("[PieRoot] Rendering with location:",f),console.log("[PieRoot] API_SERVER:",Z),console.log("[PieRoot] CENTRIFUGE_SERVER:",V),console.log("[PieRoot] Fallback provided:",!!U),console.log("[PieRoot] Piecache provided:",!!D);if(q){if(z)console.error("[PieRoot] Error fetching UI configuration:",q),console.error("[PieRoot] Error details:",{message:q.message,status:q.response?.status,data:q.response?.data});return H?.(),C}if(Y||!J){if(z)console.log("[PieRoot] Loading state:",{isLoading:Y,hasUiConfiguration:!!J});return C}if(z)console.log("[PieRoot] UI configuration loaded successfully:",J),console.log("[PieRoot] Rendering UI with configuration");return M(S.Provider,{value:I,children:M(m.Provider,{value:X,children:M(o.Provider,{value:G,children:M(K.Provider,{value:U??M(FP,{}),children:M(v,{children:M(p,{children:$?M(w,{uiConfig:J}):M("form",{id:"piedata_global_form",action:Z+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:M(w,{uiConfig:J})})})})})})})})},SP=(f)=>{let U=n(()=>new QP,[]);return M(F.Provider,{value:f.onNavigate,children:M(j.Provider,{value:f.config,children:M(RP,{client:U,children:M(KP,{...f})})})})},MP=SP;import{useMemo as i}from"react";import{QueryClient as NP,QueryClientProvider as yP,useQuery as oP}from"@tanstack/react-query";import{createAxiosDateTransformer as mP}from"axios-date-transformer";import{useEffect as LP,useState as AP}from"react";var Kf=({onError:f}={})=>{let[U,D]=AP(null),H=Af();return LP(()=>{if(typeof window==="undefined")return;let P=window.Telegram?.WebApp;if(!P)return;try{P.ready?.()}catch($){f?.()}if(H==="telegram_expanded"&&(P.platform==="ios"||P.platform==="android"))P.expand();D(P)},[]),U};import{jsx as L,Fragment as jP}from"react/jsx-runtime";var EP=({location:f,fallback:U,piecache:D,onError:H,queryOptions:P,disableGlobalForm:$})=>{let Z=x(),V=u(),z=N(),T=i(()=>mP({baseURL:Z}),[Z]),I=i(()=>E(),[]),X=i(()=>Z?b(Z):null,[Z]),G=i(()=>Z?d(Z,V):null,[Z,V]),J=Kf({onError:H}),{data:Y,isLoading:q,error:C}=oP({queryKey:["uiConfig",f.pathname+f.search,J?.initData],enabled:!!J?.initData,queryFn:async()=>{let W=new URLSearchParams(f.search);if(W.set("__pieroot","telegram"),J?.initData)W.set("initData",J.initData);let B="/api/content"+f.pathname+"?"+W.toString();if(z)console.log("[PieRoot] Fetching UI configuration from:",B);let R=await T.get(B,{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:",R.data);return R.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(W)=>Math.min(1000*2**W,30000),...P}),O=l(f.pathname,D,U);if(!Z)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(C&&z)return console.error("[PieRoot] Error fetching UI configuration:",C),console.error("[PieRoot] Error details:",{message:C.message,status:C.response?.status,data:C.response?.data}),H?.(),O;if(q||!Y){if(z)console.log("[PieRoot] Loading state:",{isLoading:q,hasUiConfiguration:!!Y});return O}if(z)console.log("[PieRoot] UI configuration loaded successfully:",Y),console.log("[PieRoot] Rendering UI with configuration");return L(S.Provider,{value:I,children:L(m.Provider,{value:X,children:L(o.Provider,{value:G,children:L(K.Provider,{value:U??L(jP,{}),children:L(v,{children:L(p,{children:$?L(w,{uiConfig:Y}):L("form",{id:"piedata_global_form",action:Z+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:L(w,{uiConfig:Y})})})})})})})})},kP=(f)=>{let U=i(()=>new NP,[]);return L(F.Provider,{value:f.onNavigate,children:L(j.Provider,{value:f.config,children:L(yP,{client:U,children:L(EP,{...f})})})})},xP=kP;import{useMemo as Sf,useState as uP}from"react";import{QueryClient as dP,QueryClientProvider as bP}from"@tanstack/react-query";import{jsx as k,Fragment as pP}from"react/jsx-runtime";var gP=({location:f,fallback:U,children:D,disableGlobalForm:H})=>{let P=x(),$=u(),Z=N(),V=Sf(()=>E(),[]),z=Sf(()=>P?b(P):null,[P]),T=Sf(()=>P?d(P,$):null,[P,$]);if(Z)console.log("[PieRoot] Rendering with location:",f),console.log("[PieRoot] API_SERVER:",P),console.log("[PieRoot] CENTRIFUGE_SERVER:",$),console.log("[PieRoot] Fallback provided:",!!U);return k(S.Provider,{value:V,children:k(m.Provider,{value:z,children:k(o.Provider,{value:T,children:k(K.Provider,{value:U??k(pP,{}),children:k(v,{children:k(p,{children:H?D:k("form",{id:"piedata_global_form",action:P+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:D})})})})})})})},vP=(f)=>{let[U]=uP(()=>new dP);return k(F.Provider,{value:f.onNavigate,children:k(j.Provider,{value:f.config,children:k(bP,{client:U,children:k(gP,{...f})})})})},cP=vP;import{useMemo as t}from"react";import{QueryClient as rP,QueryClientProvider as nP,useQuery as iP}from"@tanstack/react-query";import{createAxiosDateTransformer as tP}from"axios-date-transformer";import{useEffect as hP,useState as lP}from"react";var Ff=()=>{let[f,U]=lP(null);return hP(()=>{if(typeof window==="undefined")return;let D=window.WebApp;if(!D)return;D.ready(),U(D)},[]),f};import{jsx as A,Fragment as eP}from"react/jsx-runtime";var sP=({location:f,fallback:U,piecache:D,onError:H,queryOptions:P,disableGlobalForm:$})=>{let Z=x(),V=u(),z=N(),T=t(()=>tP({baseURL:Z}),[Z]),I=t(()=>E(),[]),X=t(()=>Z?b(Z):null,[Z]),G=t(()=>Z?d(Z,V):null,[Z,V]),J=Ff(),{data:Y,isLoading:q,error:C}=iP({queryKey:["uiConfig",f.pathname+f.search,J?.initData],queryFn:async()=>{let W=new URLSearchParams(f.search);if(W.set("__pieroot","max"),J?.initData)W.set("initData",J.initData);let B="/api/content"+f.pathname+"?"+W.toString();if(z)console.log("[PieRoot] Fetching UI configuration from:",B);let R=await T.get(B,{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:",R.data);return R.data},enabled:!!J?.initData,staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(W)=>Math.min(1000*2**W,30000),...P}),O=l(f.pathname,D,U);if(!Z)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(C&&z)return console.error("[PieRoot] Error fetching UI configuration:",C),console.error("[PieRoot] Error details:",{message:C.message,status:C.response?.status,data:C.response?.data}),H?.(),O;if(q||!Y){if(z)console.log("[PieRoot] Loading state:",{isLoading:q,hasUiConfiguration:!!Y});return O}if(z)console.log("[PieRoot] UI configuration loaded successfully:",Y),console.log("[PieRoot] Rendering UI with configuration");return A(S.Provider,{value:I,children:A(m.Provider,{value:X,children:A(o.Provider,{value:G,children:A(K.Provider,{value:U??A(eP,{}),children:A(v,{children:A(p,{children:$?A(w,{uiConfig:Y}):A("form",{id:"piedata_global_form",action:Z+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:A(w,{uiConfig:Y})})})})})})})})},aP=(f)=>{let U=t(()=>new rP,[]);return A(F.Provider,{value:f.onNavigate,children:A(j.Provider,{value:f.config,children:A(nP,{client:U,children:A(sP,{...f})})})})},fD=aP;import{useMemo as UD}from"react";var JU=(f,U=!1)=>{if(f==="sid"){if(!window.sid)throw new Error("SocketIO isn't initialized properly");return[window.sid]}let D=document.getElementsByName(f);if(!D.length){if(U)console.warn(`No input found with name ${f}`);return[]}let H=D[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[]},HD=(f,U={},D=[],H,P)=>{let $=P?.renderingLogEnabled??!1,Z=P?.timeout,V=P?.retryPolicy,z=V?.maxRetries??0,T=V?.baseDelay??1000,I=V?.retryOn??[502,503,504];if($)console.log("Registering AJAX: ",H,U,D);return async(X={})=>{if(typeof window==="undefined"||typeof document==="undefined"){if($)console.warn("getAjaxSubmit called on server, skipping DOM-dependent logic");return}let G=P?.apiServer;if(!G){if($)console.warn("AJAX skipped: apiServer is missing");return}if(!H||!f){if($)console.warn("AJAX skipped: pathname or setUiAjaxConfiguration is missing");return}if(D.includes("sid"))await wf();let J=new FormData;for(let[C,O]of Object.entries({...U,...X}))J.append(C,O);for(let C of D)for(let O of JU(C,$))J.append(C,O);let Y=G+"api/ajax_content"+H;f(null);let q;for(let C=0;C<=z;C++){if(C>0){let B=T*2**(C-1);if($)console.log(`AJAX retry ${C}/${z} after ${B}ms`);await new Promise((R)=>setTimeout(R,B))}let O=Z!=null?new AbortController:null,W=O&&setTimeout(()=>O.abort(),Z);try{let B=await fetch(Y,{method:"POST",body:J,signal:O?.signal});if(W)clearTimeout(W);if(!B.ok&&I.includes(B.status)&&C<z){q=new Error(`HTTP ${B.status}`);continue}let s=(B.headers.get("content-type")||"").includes("application/json");if(!!B.body?.getReader&&!s){let a=B.body.getReader(),XU=new TextDecoder,c="";while(!0){let{done:$f,value:GU}=await a.read();if($f)break;c+=XU.decode(GU,{stream:!0});let Mf=c.split(`
3
+ `);c=Mf.pop()??"";for(let qU of Mf){let zf=qU.trim();if(!zf)continue;try{let BU=JSON.parse(zf);f([BU])}catch{if($)console.warn("Failed to parse streamed line:",zf)}}}if(c.trim())try{let $f=JSON.parse(c);f([$f])}catch{if($)console.warn("Failed to parse final streamed line:",c)}return{}}else{let a=await B.json();return f(a),a}}catch(B){if(W)clearTimeout(W);if(q=B,C<z)continue;if($)console.error("AJAX request failed:",B);return f(null),B}}if($)console.error("AJAX request failed after retries:",q);return f(null),q}},PD=(f,U={},D=[],H,P)=>{let{apiServer:$,enableRenderingLog:Z}=h(),V=JSON.stringify(U),z=JSON.stringify(D),T=JSON.stringify(P);return UD(()=>HD(f,U,D,H,{apiServer:$,renderingLogEnabled:Z,timeout:P?.timeout,retryPolicy:P?.retryPolicy}),[f,V,z,H,$,Z,T])};import{tool as DD}from"@openai/agents";import{useContext as ZD,useMemo as $D}from"react";var YU=/^pie(.+?)_(.+)$/;function OU(f=E(),U={}){let D=[],H=new Set;for(let P of f.all.keys()){if(typeof P!=="string")continue;let $=P.match(YU);if(!$)continue;let[,Z,V]=$,z={methodName:Z,cardName:V,eventName:P};if(U.filter&&!U.filter(z))continue;let T=U.nameFor?.(z)??`${V}_${Z}`;if(H.has(T))continue;H.add(T);let I=U.describe?.(z)??`Invokes the "${Z}" method on the PieCard "${V}" by emitting the in-process mitt event "${P}". The optional "payload" argument is forwarded verbatim to the card's handler.`;D.push(DD({name:T,description:I,strict:!1,parameters:{type:"object",properties:{payload:{description:"Arbitrary JSON payload forwarded to the PieCard method handler. Omit for fire-and-forget calls."}},required:[],additionalProperties:!0},execute:async(X)=>{let G=X?.payload;return f.emit(P,G),`Emitted "${P}"`}}))}return D}function zD(f={}){let D=ZD(S)??E(),H=[];for(let z of D.all.keys())if(typeof z==="string"&&YU.test(z))H.push(z);H.sort();let P=H.join("|"),{filter:$,describe:Z,nameFor:V}=f;return $D(()=>OU(D,{filter:$,describe:Z,nameFor:V}),[D,P,$,Z,V])}import{clsx as TD}from"clsx";import{twMerge as VD}from"tailwind-merge";function ID(...f){return VD(TD(f))}var CD=()=>{if(typeof document==="undefined")return;let f=document.getElementById("piedata_global_form");f&&f.submit()};var JD=(f,U)=>`${f}${Tf}${U}`;export{Kf as useWebApp,zD as usePieMittAgentTools,NU as usePieEmit,Hf as useOpenAIWebRTC,Ff as useMaxWebApp,PD as useAjaxSubmit,dU as unregisterComponent,CD as submitGlobalForm,g as registry,Q as registerPieComponent,uU as registerMultipleComponents,JU as readAjaxKey,JD as pieName,bU as hasComponent,pU as getRegistrySize,r as getRegistryEntry,OU as getMittAgentTools,gU as getComponentMeta,vU as getAllRegisteredComponents,ID as cn,zH as UnionCard,y as UIRendererContext,Of as UILoading,w as UI,lH as SessionStorageCard,DH as SequenceCard,UP as SecureStorageCard,xP as PieTelegramRoot,MP as PieRoot,fD as PieMaxRoot,_ as PieCard,cP as PieBaseRoot,Tf as PIEBREAK,IP as OneOfCard,pH as IOEventsCard,QH as HiddenCard,GH as HTMLEmbedCard,iH as DeviceStorageCard,aH as CloudStorageCard,zP as BoxCard,MH as AutoRedirectCard,ZP as AjaxGroupCard};