@swarm.ing/pieui 2.0.32 → 2.0.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/agent/index.d.ts +11 -0
  2. package/dist/agent/index.d.ts.map +1 -0
  3. package/dist/agent/index.esm.js +2 -0
  4. package/dist/agent/index.js +2 -0
  5. package/dist/cli.js +159 -138
  6. package/dist/components/Common/AutoRedirectCard/ui/AutoRedirectCard.d.ts +1 -1
  7. package/dist/components/Common/AutoRedirectCard/ui/AutoRedirectCard.d.ts.map +1 -1
  8. package/dist/components/Common/CloudStorageCard/ui/CloudStorageCard.d.ts +1 -1
  9. package/dist/components/Common/CloudStorageCard/ui/CloudStorageCard.d.ts.map +1 -1
  10. package/dist/components/Common/DeviceStorageCard/ui/DeviceStorageCard.d.ts +1 -1
  11. package/dist/components/Common/DeviceStorageCard/ui/DeviceStorageCard.d.ts.map +1 -1
  12. package/dist/components/Common/HTMLEmbedCard/ui/HTMLEmbedCard.d.ts +1 -1
  13. package/dist/components/Common/HTMLEmbedCard/ui/HTMLEmbedCard.d.ts.map +1 -1
  14. package/dist/components/Common/HiddenCard/ui/HiddenCard.d.ts +1 -1
  15. package/dist/components/Common/HiddenCard/ui/HiddenCard.d.ts.map +1 -1
  16. package/dist/components/Common/IOEventsCard/ui/IOEventsCard.d.ts +1 -1
  17. package/dist/components/Common/IOEventsCard/ui/IOEventsCard.d.ts.map +1 -1
  18. package/dist/components/Common/SecureStorageCard/ui/SecureStorageCard.d.ts +1 -1
  19. package/dist/components/Common/SecureStorageCard/ui/SecureStorageCard.d.ts.map +1 -1
  20. package/dist/components/Common/SessionStorageCard/ui/SessionStorageCard.d.ts +1 -1
  21. package/dist/components/Common/SessionStorageCard/ui/SessionStorageCard.d.ts.map +1 -1
  22. package/dist/components/Containers/AjaxGroupCard/ui/AjaxGroupCard.d.ts +1 -1
  23. package/dist/components/Containers/AjaxGroupCard/ui/AjaxGroupCard.d.ts.map +1 -1
  24. package/dist/components/Containers/BoxCard/ui/BoxCard.d.ts +1 -1
  25. package/dist/components/Containers/BoxCard/ui/BoxCard.d.ts.map +1 -1
  26. package/dist/components/Containers/OneOfCard/ui/OneOfCard.d.ts +1 -1
  27. package/dist/components/Containers/OneOfCard/ui/OneOfCard.d.ts.map +1 -1
  28. package/dist/components/Containers/SequenceCard/ui/SequenceCard.d.ts +1 -1
  29. package/dist/components/Containers/SequenceCard/ui/SequenceCard.d.ts.map +1 -1
  30. package/dist/components/Containers/UnionCard/ui/UnionCard.d.ts +1 -1
  31. package/dist/components/Containers/UnionCard/ui/UnionCard.d.ts.map +1 -1
  32. package/dist/components/PieBaseRoot/index.d.ts +1 -1
  33. package/dist/components/PieBaseRoot/index.d.ts.map +1 -1
  34. package/dist/components/PieCard/index.d.ts +1 -1
  35. package/dist/components/PieCard/index.d.ts.map +1 -1
  36. package/dist/components/PieRoot/index.d.ts +1 -1
  37. package/dist/components/PieRoot/index.d.ts.map +1 -1
  38. package/dist/components/UI/index.d.ts +1 -1
  39. package/dist/components/UI/index.d.ts.map +1 -1
  40. package/dist/components/UILoading/index.d.ts +1 -1
  41. package/dist/components/UILoading/index.d.ts.map +1 -1
  42. package/dist/components/index.esm.js +1 -1
  43. package/dist/components/index.js +1 -1
  44. package/dist/index.d.ts +0 -1
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.esm.js +2 -1
  47. package/dist/index.js +2 -1
  48. package/dist/storybook/addon/index.esm.js +1 -1
  49. package/dist/storybook/addon/index.js +1 -1
  50. package/dist/storybook/index.d.ts +3 -3
  51. package/dist/storybook/index.d.ts.map +1 -1
  52. package/dist/storybook/index.js +1 -1
  53. package/package.json +10 -3
@@ -1 +1 @@
1
- {"version":3,"file":"SessionStorageCard.d.ts","sourceRoot":"","sources":["../../../../../src/components/Common/SessionStorageCard/ui/SessionStorageCard.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAGlD,QAAA,MAAM,kBAAkB,GAAI,UAAU,uBAAuB,4CA0C5D,CAAA;AAED,eAAe,kBAAkB,CAAA"}
1
+ {"version":3,"file":"SessionStorageCard.d.ts","sourceRoot":"","sources":["../../../../../src/components/Common/SessionStorageCard/ui/SessionStorageCard.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAGlD,QAAA,MAAM,kBAAkB,GAAI,UAAU,uBAAuB,gCA0C5D,CAAA;AAED,eAAe,kBAAkB,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { AjaxGroupCardProps } from '../types';
3
- declare const AjaxGroupCard: ({ data, content }: AjaxGroupCardProps) => string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null | undefined;
3
+ declare const AjaxGroupCard: ({ data, content }: AjaxGroupCardProps) => string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | import("react").JSX.Element | null | undefined;
4
4
  export default AjaxGroupCard;
5
5
  //# sourceMappingURL=AjaxGroupCard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AjaxGroupCard.d.ts","sourceRoot":"","sources":["../../../../../src/components/Containers/AjaxGroupCard/ui/AjaxGroupCard.tsx"],"names":[],"mappings":"AAAA,OAAO,EACH,SAAS,EAMZ,MAAM,OAAO,CAAA;AAEd,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAO7C,QAAA,MAAM,aAAa,GAAI,mBAAmB,kBAAkB,4UAuF3D,CAAA;AAED,eAAe,aAAa,CAAA"}
1
+ {"version":3,"file":"AjaxGroupCard.d.ts","sourceRoot":"","sources":["../../../../../src/components/Containers/AjaxGroupCard/ui/AjaxGroupCard.tsx"],"names":[],"mappings":"AAAA,OAAO,EACH,SAAS,EAMZ,MAAM,OAAO,CAAA;AAEd,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAO7C,QAAA,MAAM,aAAa,GAAI,mBAAmB,kBAAkB,gUAuF3D,CAAA;AAED,eAAe,aAAa,CAAA"}
@@ -4,6 +4,6 @@ declare const BoxCard: ({ data, content, setUiAjaxConfiguration, }: {
4
4
  data: BoxCardData;
5
5
  content: UIConfigType;
6
6
  setUiAjaxConfiguration?: SetUiAjaxConfigurationType;
7
- }) => import("react/jsx-runtime").JSX.Element;
7
+ }) => import("react").JSX.Element;
8
8
  export default BoxCard;
9
9
  //# sourceMappingURL=BoxCard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BoxCard.d.ts","sourceRoot":"","sources":["../../../../../src/components/Containers/BoxCard/ui/BoxCard.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAEtC,OAAO,EAAE,0BAA0B,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAM5E,QAAA,MAAM,OAAO,GAAI,4CAId;IACC,IAAI,EAAE,WAAW,CAAA;IACjB,OAAO,EAAE,YAAY,CAAA;IACrB,sBAAsB,CAAC,EAAE,0BAA0B,CAAA;CACtD,4CA4BA,CAAA;AAED,eAAe,OAAO,CAAA"}
1
+ {"version":3,"file":"BoxCard.d.ts","sourceRoot":"","sources":["../../../../../src/components/Containers/BoxCard/ui/BoxCard.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAEtC,OAAO,EAAE,0BAA0B,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAM5E,QAAA,MAAM,OAAO,GAAI,4CAId;IACC,IAAI,EAAE,WAAW,CAAA;IACjB,OAAO,EAAE,YAAY,CAAA;IACrB,sBAAsB,CAAC,EAAE,0BAA0B,CAAA;CACtD,gCA4BA,CAAA;AAED,eAAe,OAAO,CAAA"}
@@ -1,4 +1,4 @@
1
1
  import { OneOfCardProps } from '../types';
2
- declare const OneOfCard: ({ data, content, setUiAjaxConfiguration, }: OneOfCardProps) => import("react/jsx-runtime").JSX.Element;
2
+ declare const OneOfCard: ({ data, content, setUiAjaxConfiguration, }: OneOfCardProps) => import("react").JSX.Element;
3
3
  export default OneOfCard;
4
4
  //# sourceMappingURL=OneOfCard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OneOfCard.d.ts","sourceRoot":"","sources":["../../../../../src/components/Containers/OneOfCard/ui/OneOfCard.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAKzC,QAAA,MAAM,SAAS,GAAI,4CAIhB,cAAc,4CAkBhB,CAAA;AAED,eAAe,SAAS,CAAA"}
1
+ {"version":3,"file":"OneOfCard.d.ts","sourceRoot":"","sources":["../../../../../src/components/Containers/OneOfCard/ui/OneOfCard.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAKzC,QAAA,MAAM,SAAS,GAAI,4CAIhB,cAAc,gCAkBhB,CAAA;AAED,eAAe,SAAS,CAAA"}
@@ -1,4 +1,4 @@
1
1
  import { SequenceCardProps } from '../types';
2
- declare const SequenceCard: ({ data, content, setUiAjaxConfiguration, }: SequenceCardProps) => import("react/jsx-runtime").JSX.Element;
2
+ declare const SequenceCard: ({ data, content, setUiAjaxConfiguration, }: SequenceCardProps) => import("react").JSX.Element;
3
3
  export default SequenceCard;
4
4
  //# sourceMappingURL=SequenceCard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SequenceCard.d.ts","sourceRoot":"","sources":["../../../../../src/components/Containers/SequenceCard/ui/SequenceCard.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAK5C,QAAA,MAAM,YAAY,GAAI,4CAInB,iBAAiB,4CAkBnB,CAAA;AAED,eAAe,YAAY,CAAA"}
1
+ {"version":3,"file":"SequenceCard.d.ts","sourceRoot":"","sources":["../../../../../src/components/Containers/SequenceCard/ui/SequenceCard.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAK5C,QAAA,MAAM,YAAY,GAAI,4CAInB,iBAAiB,gCAkBnB,CAAA;AAED,eAAe,YAAY,CAAA"}
@@ -1,4 +1,4 @@
1
1
  import { UnionCardProps } from '../types';
2
- declare const UnionCard: ({ data, content, setUiAjaxConfiguration, }: UnionCardProps) => import("react/jsx-runtime").JSX.Element;
2
+ declare const UnionCard: ({ data, content, setUiAjaxConfiguration, }: UnionCardProps) => import("react").JSX.Element;
3
3
  export default UnionCard;
4
4
  //# sourceMappingURL=UnionCard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"UnionCard.d.ts","sourceRoot":"","sources":["../../../../../src/components/Containers/UnionCard/ui/UnionCard.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAKzC,QAAA,MAAM,SAAS,GAAI,4CAIhB,cAAc,4CAgBhB,CAAA;AAED,eAAe,SAAS,CAAA"}
1
+ {"version":3,"file":"UnionCard.d.ts","sourceRoot":"","sources":["../../../../../src/components/Containers/UnionCard/ui/UnionCard.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAKzC,QAAA,MAAM,SAAS,GAAI,4CAIhB,cAAc,gCAgBhB,CAAA;AAED,eAAe,SAAS,CAAA"}
@@ -10,6 +10,6 @@ import { PieBaseRootProps } from './types';
10
10
  * that tree. Use this when you want full control over what is rendered or
11
11
  * when combining a PieUI widget with a non-PieUI application shell.
12
12
  */
13
- declare const PieBaseRoot: (props: PieBaseRootProps) => import("react/jsx-runtime").JSX.Element;
13
+ declare const PieBaseRoot: (props: PieBaseRootProps) => import("react").JSX.Element;
14
14
  export default PieBaseRoot;
15
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/PieBaseRoot/index.tsx"],"names":[],"mappings":"AAmBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AA6D1C;;;;;;;;;;GAUG;AACH,QAAA,MAAM,WAAW,GAAI,OAAO,gBAAgB,4CAY3C,CAAA;AAED,eAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/PieBaseRoot/index.tsx"],"names":[],"mappings":"AAmBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AA6D1C;;;;;;;;;;GAUG;AACH,QAAA,MAAM,WAAW,GAAI,OAAO,gBAAgB,gCAY3C,CAAA;AAED,eAAe,WAAW,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: <TStored = unknown>({ card, data, children, useSocketioSupport, useCentrifugeSupport, useMittSupport, centrifugeChannel, methods, stored, }: PieCardProps<TStored>) => 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;
20
+ declare const PieCard: <TStored = unknown>({ card, data, children, useSocketioSupport, useCentrifugeSupport, useMittSupport, centrifugeChannel, methods, stored, }: PieCardProps<TStored>) => 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.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,OAAO,GAAG,OAAO,EAAG,yHAUlC,YAAY,CAAC,OAAO,CAAC,4WAiMvB,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,OAAO,GAAG,OAAO,EAAG,yHAUlC,YAAY,CAAC,OAAO,CAAC,gWAiMvB,CAAA;AAED,eAAe,OAAO,CAAA"}
@@ -16,6 +16,6 @@ import { PieRootProps } from './types';
16
16
  * (`staleTime: Infinity`); supply `queryOptions` to override the
17
17
  * react-query behaviour.
18
18
  */
19
- declare const PieRoot: (props: PieRootProps) => import("react/jsx-runtime").JSX.Element;
19
+ declare const PieRoot: (props: PieRootProps) => import("react").JSX.Element;
20
20
  export default PieRoot;
21
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/PieRoot/index.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAmLtC;;;;;;;;;;;;;;;;GAgBG;AACH,QAAA,MAAM,OAAO,GAAI,OAAO,YAAY,4CAYnC,CAAA;AAED,eAAe,OAAO,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/PieRoot/index.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAmLtC;;;;;;;;;;;;;;;;GAgBG;AACH,QAAA,MAAM,OAAO,GAAI,OAAO,YAAY,gCAYnC,CAAA;AAED,eAAe,OAAO,CAAA"}
@@ -3,7 +3,7 @@ import { ReactNode } from 'react';
3
3
  declare function UI({ uiConfig, setUiAjaxConfiguration, }: {
4
4
  uiConfig: UIConfigType;
5
5
  setUiAjaxConfiguration?: SetUiAjaxConfigurationType;
6
- }): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null | undefined;
6
+ }): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | import("react").JSX.Element | null | undefined;
7
7
  declare const _default: import("react").MemoExoticComponent<typeof UI>;
8
8
  export default _default;
9
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/UI/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAA;AAEtE,OAAO,EAAwB,SAAS,EAAQ,MAAM,OAAO,CAAA;AAI7D,iBAAS,EAAE,CAAC,EACR,QAAQ,EACR,sBAAsB,GACzB,EAAE;IACC,QAAQ,EAAE,YAAY,CAAA;IACtB,sBAAsB,CAAC,EAAE,0BAA0B,CAAA;CACtD,2UAiEA;;AAED,wBAAuB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/UI/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAA;AAEtE,OAAO,EAAwB,SAAS,EAAQ,MAAM,OAAO,CAAA;AAI7D,iBAAS,EAAE,CAAC,EACR,QAAQ,EACR,sBAAsB,GACzB,EAAE;IACC,QAAQ,EAAE,YAAY,CAAA;IACtB,sBAAsB,CAAC,EAAE,0BAA0B,CAAA;CACtD,+TAiEA;;AAED,wBAAuB"}
@@ -3,6 +3,6 @@ import { ReactNode } from 'react';
3
3
  declare function UILoading({ uiConfig, setUiAjaxConfiguration, }: {
4
4
  uiConfig: UIConfigType;
5
5
  setUiAjaxConfiguration?: SetUiAjaxConfigurationType;
6
- }): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null | undefined;
6
+ }): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | import("react").JSX.Element | null | undefined;
7
7
  export default UILoading;
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/UILoading/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAA;AAEtE,OAAO,EAAwB,SAAS,EAAE,MAAM,OAAO,CAAA;AAKvD,iBAAS,SAAS,CAAC,EACf,QAAQ,EACR,sBAAsB,GACzB,EAAE;IACC,QAAQ,EAAE,YAAY,CAAA;IACtB,sBAAsB,CAAC,EAAE,0BAA0B,CAAA;CACtD,2UAsEA;AAED,eAAe,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/UILoading/index.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAA;AAEtE,OAAO,EAAwB,SAAS,EAAE,MAAM,OAAO,CAAA;AAKvD,iBAAS,SAAS,CAAC,EACf,QAAQ,EACR,sBAAsB,GACzB,EAAE;IACC,QAAQ,EAAE,YAAY,CAAA;IACtB,sBAAsB,CAAC,EAAE,0BAA0B,CAAA;CACtD,+TAsEA;AAED,eAAe,SAAS,CAAA"}
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{l as UnionCard,f as UILoading,t as UI,O as SessionStorageCard,s as SequenceCard,L as SecureStorageCard,e as PieCard,G as OneOfCard,c as IOEventsCard,n as HiddenCard,p as HTMLEmbedCard,v as DeviceStorageCard,E as CloudStorageCard,B as BoxCard,S as AutoRedirectCard,j 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 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 Error("Component registration requires a name");if(!o.component&&!o.loader)throw 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>"u"||!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>"u")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>"u")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>"u")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>"u")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 B=Object.create;var{getPrototypeOf:D,defineProperty:d,getOwnPropertyNames:m,getOwnPropertyDescriptor:G}=Object,p=Object.prototype.hasOwnProperty;function C(r){return this[r]}var M,P,e=(r,a,o)=>{var t=r!=null&&typeof r==="object";if(t){var s=a?M??=new WeakMap:P??=new WeakMap,x=s.get(r);if(x)return x}o=r!=null?B(D(r)):{};let f=a||!r||!r.__esModule?d(o,"default",{value:r,enumerable:!0}):o;for(let u of m(r))if(!p.call(f,u))d(f,u,{get:C.bind(r,u),enumerable:!0});if(t)s.set(r,f);return f},R=(r)=>{var a=(l??=new WeakMap).get(r),o;if(a)return a;if(a=d({},"__esModule",{value:!0}),r&&typeof r==="object"||typeof r==="function"){for(var t of m(r))if(!p.call(a,t))d(a,t,{get:C.bind(r,t),enumerable:!(o=G(r,t))||o.enumerable})}return l.set(r,a),a},l;var T=(r)=>r;function h(r,a){this[r]=T.bind(null,a)}var k=(r,a)=>{for(var o in a)d(r,o,{get:a[o],enumerable:!0,configurable:!0,set:h.bind(a,o)})};var w={};k(w,{UnionCard:()=>c.default,UILoading:()=>S.default,UI:()=>i.default,SessionStorageCard:()=>A.default,SequenceCard:()=>g.default,SecureStorageCard:()=>L.default,PieCard:()=>n.default,OneOfCard:()=>q.default,IOEventsCard:()=>v.default,HiddenCard:()=>O.default,HTMLEmbedCard:()=>I.default,DeviceStorageCard:()=>E.default,CloudStorageCard:()=>H.default,BoxCard:()=>j.default,AutoRedirectCard:()=>U.default,AjaxGroupCard:()=>b.default});module.exports=R(w);
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 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 Error("Component registration requires a name");if(!o.component&&!o.loader)throw 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>"u"||!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>"u")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>"u")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>"u")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>"u")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.d.ts CHANGED
@@ -18,7 +18,6 @@ export { default as SocketIOContext } from './util/socket';
18
18
  export { default as CentrifugeIOContext } from './util/centrifuge';
19
19
  export { default as FallbackContext } from './util/fallback';
20
20
  export { PieConfigContext } from './util/pieConfig';
21
- export { getMittAgentTools, usePieMittAgentTools, type MittAgentTool, type MittAgentToolDescriptor, type MittAgentToolsOptions, } from './util/mittAgentTools';
22
21
  export { default as useOpenAIWebRTC, type OpenAIEvent, type UseOpenAIWebRTCReturn, } from './util/useOpenAIWebRTC';
23
22
  export { cn } from './util/tailwindCommonUtils';
24
23
  export { PIEBREAK } from './util/pieConfig';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,cAAc,CAAA;AAE5B,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EACH,OAAO,IAAI,iBAAiB,EAC5B,KAAK,eAAe,GACvB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EACH,oBAAoB,EACpB,0BAA0B,EAC1B,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,0BAA0B,EAC1B,mBAAmB,GACtB,MAAM,iBAAiB,CAAA;AAExB,YAAY,EACR,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,0BAA0B,EAC1B,iCAAiC,EACjC,4BAA4B,EAC5B,6BAA6B,EAC7B,+BAA+B,EAC/B,sCAAsC,EACtC,SAAS,EACT,YAAY,EACZ,0BAA0B,GAC7B,MAAM,SAAS,CAAA;AAEhB,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAEjE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACnE,YAAY,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAChE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,eAAe,CAAA;AAC1D,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EACH,iBAAiB,EACjB,oBAAoB,EACpB,KAAK,aAAa,EAClB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,GAC7B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACH,OAAO,IAAI,eAAe,EAC1B,KAAK,WAAW,EAChB,KAAK,qBAAqB,GAC7B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,EAAE,EAAE,MAAM,4BAA4B,CAAA;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,cAAc,cAAc,CAAA;AAE5B,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EACH,OAAO,IAAI,iBAAiB,EAC5B,KAAK,eAAe,GACvB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EACH,oBAAoB,EACpB,0BAA0B,EAC1B,eAAe,EACf,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,0BAA0B,EAC1B,mBAAmB,GACtB,MAAM,iBAAiB,CAAA;AAExB,YAAY,EACR,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,0BAA0B,EAC1B,iCAAiC,EACjC,4BAA4B,EAC5B,6BAA6B,EAC7B,+BAA+B,EAC/B,sCAAsC,EACtC,SAAS,EACT,YAAY,EACZ,0BAA0B,GAC7B,MAAM,SAAS,CAAA;AAEhB,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAEjE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACnE,YAAY,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAChE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,eAAe,CAAA;AAC1D,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAKnD,OAAO,EACH,OAAO,IAAI,eAAe,EAC1B,KAAK,WAAW,EAChB,KAAK,qBAAqB,GAC7B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,EAAE,EAAE,MAAM,4BAA4B,CAAA;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA"}
package/dist/index.esm.js CHANGED
@@ -1,2 +1,3 @@
1
1
  "use client";
2
- import{useContext as $,useEffect as y,useRef as Ro}from"react";import{createContext as Bo,useContext as Zo}from"react";var Vo=Bo(null),qo=()=>{let o=Zo(Vo);if(!o)throw Error("usePieConfig must be used within PieConfigProvider");return o};var M=()=>{let{enableRenderingLog:o}=qo();return o},E=M;import{createContext as zo}from"react";import{Centrifuge as tp}from"centrifuge";var Go=zo(null),a=Go;import{io as Ip}from"socket.io-client";import{createContext as Mo}from"react";var $o=Mo(null),b=$o;import xp from"mitt";import{createContext as yo,useCallback as gp,useContext as Dp}from"react";var Wo=yo(null);var z=Wo;import{jsx as Qo,jsxs as Xo,Fragment as Jo}from"react/jsx-runtime";var no=({card:o,data:r,children:f,useSocketioSupport:p=!1,useCentrifugeSupport:C=!1,useMittSupport:P=!1,centrifugeChannel:i=void 0,methods:S=void 0,stored:t=void 0})=>{let m=E(),u=Ro(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:p,centrifuge:C,mitt:P,centrifugeChannel:i}),console.log("[PieCard] Methods:",S?Object.keys(S):"none"),console.log("[PieCard] Has children:",!!f);let U=$(b),l=$(a),I=$(z);if(y(()=>{if(!U||!p||!u.current||!r.name){if(m&&p)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!U,useSocketioSupport:p,hasMethods:!!u.current,hasDataName:!!r?.name});return}let g=Object.keys(u.current??{}).map((x)=>{let T=`pie${x}_${r.name}`;if(m)console.log(`[PieCard] Socket.IO registering event: ${T}`);let D=(H)=>{u.current?.[x]?.(H)};return U.on(T,D),[T,D]});return()=>{g.forEach(([x,T])=>{if(m)console.log(`[PieCard] Socket.IO unregistering event: ${x}`);U.off(x,T)})}},[U,r.name,p]),y(()=>{if(!l||!C||!i||!r.name){if(m&&C)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!l,useCentrifugeSupport:C,hasCentrifugeChannel:!!i,hasMethods:!!u.current,hasDataName:!!r?.name});return}let g=Object.keys(u.current??{}).map((x)=>{let T=`pie${x}_${r.name}_${i}`;if(m)console.log(`[PieCard] Centrifuge subscribing to channel: ${T}`);let D=l.newSubscription(T);return D.on("publication",(H)=>{if(m)console.log(`[PieCard] Centrifuge received data on ${T}:`,H.data);u.current?.[x]?.(H.data)}),D.subscribe(),D});return()=>{g.forEach((x)=>{if(m)console.log("[PieCard] Centrifuge unsubscribing from channel");x.unsubscribe(),l.removeSubscription(x)})}},[l,i,r.name,C]),y(()=>{if(!I||!P||!r.name){if(m&&P)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!I,useMittSupport:P,hasMethods:!!u.current,hasDataName:!!r?.name});return}let d=Object.keys(u.current??{}),g={};return d.forEach((x)=>{let T=`pie${x}_${r.name}`,D=(H)=>{if(m)console.log(`[PieCard] Mitt registering event: ${T}`);u.current?.[x]?.(H)};g[T]=D,I.on(T,D)}),()=>{Object.entries(g).forEach(([x,T])=>{if(m)console.log(`[PieCard] Mitt unregistering event: ${x}`);I.off(x,T)})}},[I,r.name,P]),m)console.log("[PieCard] Rendering complete, returning children");if(t!==void 0)return Xo(Jo,{children:[Qo("input",{type:"hidden",name:r.name,value:JSON.stringify(t)}),f]});return f},w=no;import{lazy as Yo}from"react";var W=new Map;function k(o,r){return Yo(()=>{if(W.has(r))return W.get(r);let f=o().then((p)=>p);return W.set(r,f),f})}var N=new Map,Fo=(o)=>{if(!o.name)throw Error("Component registration requires a name");if(!o.component&&!o.loader)throw 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=k(r.loader,o.name),r.loader=void 0,r.isLazy=!0;return r};function A(o){let r=Fo(o);return N.set(r.name,r),r.component}var j=(o)=>{return N.get(o)};import{Suspense as ao,useContext as bo,memo as ko}from"react";import{createContext as Ko}from"react";import{jsx as Eo,Fragment as _o}from"react/jsx-runtime";var Lo=Ko(Eo(_o,{})),V=Lo;import{jsx as R}from"react/jsx-runtime";function No({uiConfig:o,setUiAjaxConfiguration:r}){let f=bo(V),p=M();if(p)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 C=j(o.card);if(!C?.component){if(p)console.warn(`[UI] Component not found in registry: ${o.card}`),console.log("[UI] Returning fallback component");return f}if(p)console.log("[UI] Found component in registry:",{name:C.name,isLazy:C.isLazy,hasMetadata:!!C.metadata});let P=C.component,i=R(P,{data:o.data,content:o.content,setUiAjaxConfiguration:r});if(C.isLazy){if(p)console.log("[UI] Rendering lazy component with Suspense:",C.name);return R(ao,{fallback:C.fallback?R(C.fallback,{}):f,children:i},`${C.name}`)}if(p)console.log("[UI] Rendering component directly:",C.name);return i}var B=ko(No);import{createContext as jo}from"react";var co=jo(null),Z=co;import{useContext as vo}from"react";import{jsx as n}from"react/jsx-runtime";var so=({data:o,content:r,setUiAjaxConfiguration:f})=>{let{name:p,sx:C}=o,P=vo(Z)??B;return n(w,{card:p,data:o,children:n("div",{style:C,id:p,children:r.map((i,S)=>{return n(P,{uiConfig:i,setUiAjaxConfiguration:f},`children-${S}`)})})})},c=so;var ho=A({name:"SequenceCard",component:c,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});import{useContext as eo}from"react";import{jsx as v}from"react/jsx-runtime";var or=({data:o,content:r,setUiAjaxConfiguration:f})=>{let{name:p}=o,C=eo(Z)??B;return v(w,{card:p,data:o,children:r.map((P,i)=>{return v(C,{uiConfig:P,setUiAjaxConfiguration:f},`children-${i}`)})})},s=or;var rr=A({name:"UnionCard",component:s,metadata:{author:"Swarm.ing",description:"Renders one of many components"}});import{useEffect as mr,useState as ir}from"react";import ur from"html-react-parser";import{useCallback as G,useEffect as pr,useRef as J,useState as fr}from"react";function Cr(){let o=new AudioContext,r=o.createOscillator(),f=r.connect(o.createMediaStreamDestination());r.start();let p=f.stream.getAudioTracks()[0];return p.enabled=!1,p}function Q(o=null,r){let[f,p]=fr(!1),C=J(null),P=J(null),i=J(null),S=G(async(U,l=!0)=>{if(C.current)t();let I=new RTCPeerConnection;if(I.onconnectionstatechange=()=>{if(I.connectionState==="connected")p(!0);else if(["disconnected","failed","closed"].includes(I.connectionState))p(!1)},I.ontrack=(O)=>{if(o)o.srcObject=O.streams[0]},l){let O=await navigator.mediaDevices.getUserMedia({audio:!0});I.addTrack(O.getTracks()[0],O)}else{let O=Cr();I.addTrack(O)}let d=I.createDataChannel("oai-events");P.current=d,i.current=new Promise((O)=>{d.addEventListener("open",()=>{O()})});let g=await I.createOffer();await I.setLocalDescription(g);let H=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:g.sdp,headers:{Authorization:`Bearer ${U}`,"Content-Type":"application/sdp"}})).text();await I.setRemoteDescription({type:"answer",sdp:H}),C.current=I,await i.current},[o]),t=G(()=>{let U=P.current;if(U)U.close();C.current?.getSenders()?.forEach((l)=>l.track?.stop()),C.current?.close(),p(!1),C.current=null,P.current=null,i.current=null},[o]),m=G((U)=>{let l=P.current;if(!l){console.error("Data channel is not ready",U);return}let I=new Date().toLocaleTimeString();if(U.event_id=U.event_id||crypto.randomUUID(),l.send(JSON.stringify(U)),!U.timestamp)U.timestamp=I;r?.(U)},[r,o]),u=G((U)=>{if(!P.current){console.error("Data channel is not ready");return}let I=()=>{m({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:U}]}}),m({type:"response.create"})};if(i.current)i.current.then(I);else I()},[r,o]);return pr(()=>{let U=P.current;if(!U)return;let l=(I)=>{let d=JSON.parse(I.data);if(!d.timestamp)d.timestamp=new Date().toLocaleTimeString();r?.(d)};return U.addEventListener("message",l),()=>{U.removeEventListener("message",l)}},[r,o]),{isSessionActive:f,startSession:S,stopSession:t,sendTextMessage:u}}import{jsx as tr}from"react/jsx-runtime";var Pr=({data:o})=>{let{html:r,useSocketioSupport:f,useCentrifugeSupport:p,useMittSupport:C,centrifugeChannel:P}=o,[i,S]=ir(r),{isSessionActive:t,startSession:m,sendTextMessage:u}=Q(null,(d)=>{if(console.log(d.type,d.type==="response.output_text.delta"&&d.delta),d.type==="response.output_text.delta"&&d.delta)S((g)=>g+d.delta)});return mr(()=>{S(r)},[r]),tr(w,{card:"HTMLEmbedCard",data:o,methods:{update:(d)=>{S(d.value)},generateUsingAI:async(d)=>{try{if(!t&&d.token)await m(d.token,!1);u(d.prompt)}catch(g){console.error("Failed to generate using AI",g)}},initializeAI:async(d)=>{if(!t&&d.token)await m(d.token,!1)}},useCentrifugeSupport:p,useSocketioSupport:f,useMittSupport:C,centrifugeChannel:P,children:ur(i)})},h=Pr;var dr=A({name:"HTMLEmbedCard",component:h,metadata:{author:"Swarm.ing"}});import{useEffect as Sr,useState as Ir}from"react";import{jsx as e}from"react/jsx-runtime";var Ur=({data:o})=>{let{name:r,value:f,useSocketioSupport:p,useCentrifugeSupport:C,useMittSupport:P,centrifugeChannel:i}=o,[S,t]=Ir(f);return Sr(()=>{t(f)},[f]),e(w,{card:"HiddenCard",data:o,useSocketioSupport:p,useCentrifugeSupport:C,useMittSupport:P,centrifugeChannel:i,methods:{update:({value:m})=>{t(m)}},children:e("input",{type:"hidden",id:r,name:r,value:S})})},oo=Ur;var Ar=A({name:"HiddenCard",component:oo,metadata:{author:"Swarm.ing"}});import{useContext as ro,useEffect as xr}from"react";import{createContext as wr}from"react";var lr=wr(void 0),q=lr;import{jsx as gr,Fragment as Or}from"react/jsx-runtime";var Tr=({data:o})=>{let{url:r}=o,f=ro(q),p=ro(V);return xr(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(r))window.location.href=r;else f?.(r)},[r,f]),gr(Or,{children:p})},po=Tr;var Dr=A({name:"AutoRedirectCard",component:po,metadata:{author:"Swarm.ing"}});import{Bounce as Hr,Slide as Br,Zoom as Zr,Flip as Vr}from"react-toastify";import{toast as qr,ToastContainer as zr}from"react-toastify";import{useContext as Gr,useMemo as Mr,useRef as $r}from"react";import{jsx as X,Fragment as Qr}from"react/jsx-runtime";var yr={bounce:Hr,slide:Br,zoom:Zr,flip:Vr},Wr=(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}};qr(o.message,r)},Rr=(o)=>{console.log("Log event",o)},nr=(o)=>{if(typeof window>"u"||!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(p){console.error("[IOEventsCard] Failed to show notification",p)}},f=window.Notification.permission;if(f==="granted"){r();return}if(f==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((p)=>{if(p==="granted")r()})},Jr=({data:o})=>{let{useCentrifugeSupport:r,useSocketioSupport:f,useMittSupport:p,centrifugeChannel:C}=o,P=Gr(q),i=$r(P);i.current=P;let S=Mr(()=>({alert:Wr,log:Rr,push:nr,redirect:(t)=>{if(t.to){let m=t.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(m))window.location.href=m;else i.current?.(m)}else window.location.reload()},reload:(t)=>{if(t.to){let m=t.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(m))window.location.href=m;else i.current?.(m)}else window.location.reload()}}),[]);return X(Qr,{children:X(w,{card:"IOEventsCard",data:o,useCentrifugeSupport:r,useSocketioSupport:f,useMittSupport:p,centrifugeChannel:C,methods:S,children:X(zr,{})})})},fo=Jr;var Xr=A({name:"IOEventsCard",component:fo,metadata:{author:"Swarm.ing"}});import{useEffect as Co,useState as Yr}from"react";import{jsx as mo}from"react/jsx-runtime";var Fr=({data:o})=>{let{name:r,key:f,value:p,useSocketioSupport:C,useCentrifugeSupport:P,useMittSupport:i,centrifugeChannel:S}=o,[t,m]=Yr(p);return Co(()=>{m(p)},[p]),Co(()=>{if(typeof window>"u")return;sessionStorage.setItem(f,t)},[f,t]),mo(w,{card:"SessionStorageCard",data:o,useSocketioSupport:C,useCentrifugeSupport:P,useMittSupport:i,centrifugeChannel:S,methods:{update:({value:u})=>{m(u)},remove:()=>{sessionStorage.removeItem(f),m("")}},children:mo("input",{type:"hidden",id:r,name:r,value:t})})},io=Fr;var Kr=A({name:"SessionStorageCard",component:io,metadata:{author:"PieData"}});import{useEffect as uo,useState as Lr}from"react";import{jsx as Po}from"react/jsx-runtime";var _r=({data:o})=>{let{name:r,key:f,value:p,useSocketioSupport:C,useCentrifugeSupport:P,useMittSupport:i,centrifugeChannel:S}=o,[t,m]=Lr(p);return uo(()=>{m(p)},[p]),uo(()=>{if(typeof window>"u")return;localStorage.setItem(f,t)},[f,t]),Po(w,{card:"DeviceStorageCard",data:o,useSocketioSupport:C,useCentrifugeSupport:P,useMittSupport:i,centrifugeChannel:S,methods:{update:({value:u})=>{m(u)},remove:()=>{localStorage.removeItem(f),m("")}},children:Po("input",{type:"hidden",id:r,name:r,value:t})})},to=_r;var Er=A({name:"DeviceStorageCard",component:to,metadata:{author:"PieData"}});import{useEffect as So,useState as ar}from"react";import{jsx as Io}from"react/jsx-runtime";var br=({data:o})=>{let{name:r,key:f,value:p,useSocketioSupport:C,useCentrifugeSupport:P,useMittSupport:i,centrifugeChannel:S}=o,[t,m]=ar(p);return So(()=>{m(p)},[p]),So(()=>{if(typeof window>"u")return;let u=window.Telegram?.WebApp?.CloudStorage;if(!u)return;u.setItem(f,t)},[f,t]),Io(w,{card:"CloudStorageCard",data:o,useSocketioSupport:C,useCentrifugeSupport:P,useMittSupport:i,centrifugeChannel:S,methods:{update:({value:u})=>{m(u)},remove:()=>{let u=window.Telegram?.WebApp?.CloudStorage;if(u)u.removeItem(f);m("")}},children:Io("input",{type:"hidden",id:r,name:r,value:t})})},Uo=br;var kr=A({name:"CloudStorageCard",component:Uo,metadata:{author:"PieData"}});import{useEffect as Ao,useState as Nr}from"react";import{jsx as wo}from"react/jsx-runtime";var jr=({data:o})=>{let{name:r,key:f,value:p,useSocketioSupport:C,useCentrifugeSupport:P,useMittSupport:i,centrifugeChannel:S}=o,[t,m]=Nr(p);return Ao(()=>{m(p)},[p]),Ao(()=>{if(typeof window>"u")return;let u=window.Telegram?.WebApp?.SecureStorage;if(!u)return;u.setItem(f,t)},[f,t]),wo(w,{card:"SecureStorageCard",data:o,useSocketioSupport:C,useCentrifugeSupport:P,useMittSupport:i,centrifugeChannel:S,methods:{update:({value:u})=>{m(u)},remove:()=>{let u=window.Telegram?.WebApp?.SecureStorage;if(u)u.removeItem(f);m("")}},children:wo("input",{type:"hidden",id:r,name:r,value:t})})},lo=jr;var cr=A({name:"SecureStorageCard",component:lo,metadata:{author:"PieData"}});import{useCallback as Y,useContext as F,useEffect as vr,useRef as sr,useState as xo}from"react";import{jsx as To}from"react/jsx-runtime";var hr=({data:o,content:r})=>{let{useLoader:f,noReturn:p,returnType:C,useSocketioSupport:P,useCentrifugeSupport:i,useMittSupport:S,centrifugeChannel:t}=o,m=F(V),u=F(Z)??B,[U,l]=xo(!1),[I,d]=xo(null),g=sr(r),x=F(z),T=Y((O)=>{if(O===null)l(!0);else if(l(!1),!p)g.current=O;if(!p)d(O)},[p]),D=Y((O)=>{g.current=O.content,d(O.content)},[]),H=Y((O)=>{if(O===null)l(!0);else if(l(!1),!p)for(let _ of O)x?.emit(_.name,_.data)},[p,x]);if(vr(()=>{d(r),l(!1)},[r]),!I&&f)return m;return To(w,{card:"AjaxGroupCard",data:o,methods:{changeContent:D},useSocketioSupport:P,useCentrifugeSupport:i,useMittSupport:S,centrifugeChannel:t,children:To(u,{uiConfig:I??g.current,setUiAjaxConfiguration:C==="events"?H:T})})},Oo=hr;var er=A({name:"AjaxGroupCard",component:Oo,metadata:{author:"Swarm.ing",description:"Group card with AJAX support"}});import{useContext as go}from"react";import{jsx as K}from"react/jsx-runtime";var op=({data:o,content:r,setUiAjaxConfiguration:f})=>{let{name:p,url:C,sx:P}=o,i=go(q),S=go(Z)??B;return K(w,{card:p,data:o,children:K("div",{style:P,id:p,onClick:(m)=>{if(C)if(m.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(C))window.location.href=C;else i?.(C)},children:K(S,{setUiAjaxConfiguration:f,uiConfig:r})})})},Do=op;var rp=A({name:"BoxCard",component:Do,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});import{useContext as pp}from"react";import{jsx as L}from"react/jsx-runtime";var fp=({data:o,content:r,setUiAjaxConfiguration:f})=>{let{name:p,sx:C}=o,P=pp(Z)??B;return L(w,{card:p,data:o,children:L("div",{style:C,id:p,children:r.map((i,S)=>{return L(P,{uiConfig:i,setUiAjaxConfiguration:f},`children-${S}`)})})})},Ho=fp;var Cp=A({name:"OneOfCard",component:Ho,metadata:{author:"Swarm.ing",description:"Different variants"}});export{Vi as useWebApp,Ui as usePieMittAgentTools,em as usePieEmit,wi as useOpenAIWebRTC,zi as useMaxWebApp,vm as useAjaxSubmit,jm as unregisterComponent,Di as submitGlobalForm,Em as registry,Km as registerPieComponent,Nm as registerMultipleComponents,sm as readAjaxKey,Bi as pieName,am as hasComponent,_m as getRegistrySize,bm as getRegistryEntry,Ii as getMittAgentTools,pi as getEmitter,km as getComponentMeta,Lm as getAllRegisteredComponents,xi as cn,rr as UnionCard,Gm as UIRendererContext,qm as UILoading,Zm as UI,Ci as SocketIOContext,Kr as SessionStorageCard,ho as SequenceCard,cr as SecureStorageCard,Wm as PieTelegramRoot,$m as PieRoot,Qm as PieMaxRoot,di as PieConfigContext,Ym as PieCard,nm as PieBaseRoot,Oi as PIEBREAK,Cp as OneOfCard,ri as MittContext,Xr as IOEventsCard,Ar as HiddenCard,dr as HTMLEmbedCard,Pi as FallbackContext,Er as DeviceStorageCard,kr as CloudStorageCard,ii as CentrifugeIOContext,rp as BoxCard,Dr as AutoRedirectCard,er as AjaxGroupCard};
2
+ import{useContext as Yf,useEffect as Xf,useRef as NH}from"react";import{createContext as _H,useContext as QH}from"react";var j=_H(null),p=()=>{let f=QH(j);if(!f)throw Error("usePieConfig must be used within PieConfigProvider");return f},x=()=>{let{apiServer:f}=p();return f},e=x,o=()=>{let{centrifugeServer:f}=p();return f};var N=()=>{let{enableRenderingLog:f}=p();return f},Mf=N,Nf=()=>{let{pageProcessor:f}=p();return f};var Tf="__piedemo__";import{createContext as KH}from"react";import{Centrifuge as Af}from"centrifuge";var yf=new Map,b=(f,H)=>{if(!H)return null;let Z=`${f}::${H}`,U=yf.get(Z);if(U)return U;async function $(){let D=await fetch(f+"api/centrifuge/gen_token");if(!D.ok){if(D.status===403)throw new Af.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${D.status}`)}return(await D.json()).token}let z=new Af(H,{getToken:$});return yf.set(Z,z),z},WH=KH(null),A=WH;import{io as PH}from"socket.io-client";import{createContext as wH}from"react";var Ef=new Map,u=(f)=>{let H=Ef.get(f);if(H)return H;let Z=PH(f,{autoConnect:!1,transports:["websocket"]});return Ef.set(f,Z),Z},CH=wH(null),y=CH;import FH from"mitt";import{createContext as RH,useCallback as SH,useContext as LH}from"react";var Jf=null;function d(){if(!Jf)Jf=FH();return Jf}var kf=RH(null);function MH(f){let H=LH(kf);return SH((Z,U)=>{(H??d()).emit(`pie${Z}_${f}`,U)},[f,H])}var E=kf;import{jsx as EH,jsxs as kH,Fragment as yH}from"react/jsx-runtime";var AH=({card:f,data:H,children:Z,useSocketioSupport:U=!1,useCentrifugeSupport:$=!1,useMittSupport:z=!1,centrifugeChannel:D=void 0,methods:J=void 0,stored:V=void 0})=>{let T=Mf(),X=NH(J);if(X.current=J,T)console.log("[PieCard] Rendering card:",f),console.log("[PieCard] Card data:",H),console.log("[PieCard] Component name:",H?.name),console.log("[PieCard] Real-time support:",{socketio:U,centrifuge:$,mitt:z,centrifugeChannel:D}),console.log("[PieCard] Methods:",J?Object.keys(J):"none"),console.log("[PieCard] Has children:",!!Z);let B=Yf(y),Q=Yf(A),q=Yf(E);if(Xf(()=>{if(!B||!U||!X.current||!H.name){if(T&&U)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!B,useSocketioSupport:U,hasMethods:!!X.current,hasDataName:!!H?.name});return}let I=Object.keys(X.current??{}).map((Y)=>{let O=`pie${Y}_${H.name}`;if(T)console.log(`[PieCard] Socket.IO registering event: ${O}`);let K=(_)=>{X.current?.[Y]?.(_)};return B.on(O,K),[O,K]});return()=>{I.forEach(([Y,O])=>{if(T)console.log(`[PieCard] Socket.IO unregistering event: ${Y}`);B.off(Y,O)})}},[B,H.name,U]),Xf(()=>{if(!Q||!$||!D||!H.name){if(T&&$)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!Q,useCentrifugeSupport:$,hasCentrifugeChannel:!!D,hasMethods:!!X.current,hasDataName:!!H?.name});return}let I=Object.keys(X.current??{}).map((Y)=>{let O=`pie${Y}_${H.name}_${D}`;if(T)console.log(`[PieCard] Centrifuge subscribing to channel: ${O}`);let K=Q.newSubscription(O);return K.on("publication",(_)=>{if(T)console.log(`[PieCard] Centrifuge received data on ${O}:`,_.data);X.current?.[Y]?.(_.data)}),K.subscribe(),K});return()=>{I.forEach((Y)=>{if(T)console.log("[PieCard] Centrifuge unsubscribing from channel");Y.unsubscribe(),Q.removeSubscription(Y)})}},[Q,D,H.name,$]),Xf(()=>{if(!q||!z||!H.name){if(T&&z)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!q,useMittSupport:z,hasMethods:!!X.current,hasDataName:!!H?.name});return}let G=Object.keys(X.current??{}),I={};return G.forEach((Y)=>{let O=`pie${Y}_${H.name}`,K=(_)=>{if(T)console.log(`[PieCard] Mitt registering event: ${O}`);X.current?.[Y]?.(_)};I[O]=K,q.on(O,K)}),()=>{Object.entries(I).forEach(([Y,O])=>{if(T)console.log(`[PieCard] Mitt unregistering event: ${Y}`);q.off(Y,O)})}},[q,H.name,z]),T)console.log("[PieCard] Rendering complete, returning children");if(V!==void 0)return kH(yH,{children:[EH("input",{type:"hidden",name:H.name,value:JSON.stringify(V)}),Z]});return Z},w=AH;import{lazy as mH}from"react";var qf=new Map;function mf(f,H){return mH(()=>{if(qf.has(H))return qf.get(H);let Z=f().then((U)=>U);return qf.set(H,Z),Z})}var v=new Map,jH=(f)=>{if(!f.name)throw Error("Component registration requires a name");if(!f.component&&!f.loader)throw Error(`Component "${f.name}" requires component or loader`);let H={name:f.name,component:f.component,loader:f.loader,metadata:f.metadata,fallback:f.fallback,isLazy:!1};if(!H.component&&H.loader)H.component=mf(H.loader,f.name),H.loader=void 0,H.isLazy=!0;return H};function W(f){let H=jH(f);return v.set(H.name,H),H.component}var dH=(f)=>{f.forEach((H)=>W(H))},xH=(f)=>{v.delete(f)},oH=(f)=>{return v.has(f)},bH=(f)=>{return v.get(f)?.metadata},r=(f)=>{return v.get(f)},uH=()=>{return Array.from(v.keys())},vH=()=>{return v.size};import{Suspense as lH,useContext as rH,memo as nH}from"react";import{createContext as gH}from"react";import{jsx as pH,Fragment as hH}from"react/jsx-runtime";var cH=gH(pH(hH,{})),F=cH;import{jsx as Gf}from"react/jsx-runtime";function sH({uiConfig:f,setUiAjaxConfiguration:H}){let Z=rH(F),U=N();if(U)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:",!!H);let $=r(f.card);if(!$?.component){if(U)console.warn(`[UI] Component not found in registry: ${f.card}`),console.log("[UI] Returning fallback component");return Z}if(U)console.log("[UI] Found component in registry:",{name:$.name,isLazy:$.isLazy,hasMetadata:!!$.metadata});let z=$.component,D=Gf(z,{data:f.data,content:f.content,setUiAjaxConfiguration:H});if($.isLazy){if(U)console.log("[UI] Rendering lazy component with Suspense:",$.name);return Gf(lH,{fallback:$.fallback?Gf($.fallback,{}):Z,children:D},`${$.name}`)}if(U)console.log("[UI] Rendering component directly:",$.name);return D}var C=nH(sH);import{Suspense as aH,useContext as eH}from"react";import{createContext as iH}from"react";var tH=iH(null),k=tH;import{jsx as ff}from"react/jsx-runtime";function jf({uiConfig:f,setUiAjaxConfiguration:H}){let Z=eH(F),U=N();if(U)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:",!!H);let $=r(f.card);if(!$?.component){if(U)console.warn(`[UILoading] Component not found in registry: ${f.card}`),console.log("[UILoading] Returning fallback component");return Z}if(U)console.log("[UILoading] Found component in registry:",{name:$.name,isLazy:$.isLazy,hasMetadata:!!$.metadata,hasFallback:!!$.fallback});if($.fallback){if(U)console.log("[UILoading] Rendering fallback for:",$.name);let J=$.fallback;return ff(J,{})}if(U)console.log("[UILoading] No fallback, rendering full component:",$.name);let z=$.component,D=ff(k.Provider,{value:jf,children:ff(z,{data:f.data,content:f.content,setUiAjaxConfiguration:H})});if($.isLazy)return ff(aH,{fallback:Z,children:D},`${$.name}`);return D}var Of=jf;import{useContext as fU}from"react";import{jsx as Bf}from"react/jsx-runtime";var HU=({data:f,content:H,setUiAjaxConfiguration:Z})=>{let{name:U,sx:$}=f,z=fU(k)??C;return Bf(w,{card:U,data:f,children:Bf("div",{style:$,id:U,children:H.map((D,J)=>{return Bf(z,{uiConfig:D,setUiAjaxConfiguration:Z},`children-${J}`)})})})},df=HU;var UU=W({name:"SequenceCard",component:df,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});import{useContext as ZU}from"react";import{jsx as xf}from"react/jsx-runtime";var $U=({data:f,content:H,setUiAjaxConfiguration:Z})=>{let{name:U}=f,$=ZU(k)??C;return xf(w,{card:U,data:f,children:H.map((z,D)=>{return xf($,{uiConfig:z,setUiAjaxConfiguration:Z},`children-${D}`)})})},of=$U;var DU=W({name:"UnionCard",component:of,metadata:{author:"Swarm.ing",description:"Renders one of many components"}});import{useEffect as JU,useState as YU}from"react";import XU from"html-react-parser";import{useCallback as Hf,useEffect as zU,useRef as If,useState as VU}from"react";function TU(){let f=new AudioContext,H=f.createOscillator(),Z=H.connect(f.createMediaStreamDestination());H.start();let U=Z.stream.getAudioTracks()[0];return U.enabled=!1,U}function Uf(f=null,H){let[Z,U]=VU(!1),$=If(null),z=If(null),D=If(null),J=Hf(async(B,Q=!0)=>{if($.current)V();let q=new RTCPeerConnection;if(q.onconnectionstatechange=()=>{if(q.connectionState==="connected")U(!0);else if(["disconnected","failed","closed"].includes(q.connectionState))U(!1)},q.ontrack=(P)=>{if(f)f.srcObject=P.streams[0]},Q){let P=await navigator.mediaDevices.getUserMedia({audio:!0});q.addTrack(P.getTracks()[0],P)}else{let P=TU();q.addTrack(P)}let G=q.createDataChannel("oai-events");z.current=G,D.current=new Promise((P)=>{G.addEventListener("open",()=>{P()})});let I=await q.createOffer();await q.setLocalDescription(I);let _=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:I.sdp,headers:{Authorization:`Bearer ${B}`,"Content-Type":"application/sdp"}})).text();await q.setRemoteDescription({type:"answer",sdp:_}),$.current=q,await D.current},[f]),V=Hf(()=>{let B=z.current;if(B)B.close();$.current?.getSenders()?.forEach((Q)=>Q.track?.stop()),$.current?.close(),U(!1),$.current=null,z.current=null,D.current=null},[f]),T=Hf((B)=>{let Q=z.current;if(!Q){console.error("Data channel is not ready",B);return}let q=new Date().toLocaleTimeString();if(B.event_id=B.event_id||crypto.randomUUID(),Q.send(JSON.stringify(B)),!B.timestamp)B.timestamp=q;H?.(B)},[H,f]),X=Hf((B)=>{if(!z.current){console.error("Data channel is not ready");return}let q=()=>{T({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:B}]}}),T({type:"response.create"})};if(D.current)D.current.then(q);else q()},[H,f]);return zU(()=>{let B=z.current;if(!B)return;let Q=(q)=>{let G=JSON.parse(q.data);if(!G.timestamp)G.timestamp=new Date().toLocaleTimeString();H?.(G)};return B.addEventListener("message",Q),()=>{B.removeEventListener("message",Q)}},[H,f]),{isSessionActive:Z,startSession:J,stopSession:V,sendTextMessage:X}}import{jsx as GU}from"react/jsx-runtime";var qU=({data:f})=>{let{html:H,useSocketioSupport:Z,useCentrifugeSupport:U,useMittSupport:$,centrifugeChannel:z}=f,[D,J]=YU(H),{isSessionActive:V,startSession:T,sendTextMessage:X}=Uf(null,(G)=>{if(console.log(G.type,G.type==="response.output_text.delta"&&G.delta),G.type==="response.output_text.delta"&&G.delta)J((I)=>I+G.delta)});return JU(()=>{J(H)},[H]),GU(w,{card:"HTMLEmbedCard",data:f,methods:{update:(G)=>{J(G.value)},generateUsingAI:async(G)=>{try{if(!V&&G.token)await T(G.token,!1);X(G.prompt)}catch(I){console.error("Failed to generate using AI",I)}},initializeAI:async(G)=>{if(!V&&G.token)await T(G.token,!1)}},useCentrifugeSupport:U,useSocketioSupport:Z,useMittSupport:$,centrifugeChannel:z,children:XU(D)})},bf=qU;var OU=W({name:"HTMLEmbedCard",component:bf,metadata:{author:"Swarm.ing"}});import{useEffect as BU,useState as IU}from"react";import{jsx as uf}from"react/jsx-runtime";var _U=({data:f})=>{let{name:H,value:Z,useSocketioSupport:U,useCentrifugeSupport:$,useMittSupport:z,centrifugeChannel:D}=f,[J,V]=IU(Z);return BU(()=>{V(Z)},[Z]),uf(w,{card:"HiddenCard",data:f,useSocketioSupport:U,useCentrifugeSupport:$,useMittSupport:z,centrifugeChannel:D,methods:{update:({value:T})=>{V(T)}},children:uf("input",{type:"hidden",id:H,name:H,value:J})})},vf=_U;var QU=W({name:"HiddenCard",component:vf,metadata:{author:"Swarm.ing"}});import{useContext as gf,useEffect as PU}from"react";import{createContext as KU}from"react";var WU=KU(void 0),R=WU;import{jsx as FU,Fragment as CU}from"react/jsx-runtime";var wU=({data:f})=>{let{url:H}=f,Z=gf(R),U=gf(F);return PU(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(H))window.location.href=H;else Z?.(H)},[H,Z]),FU(CU,{children:U})},cf=wU;var RU=W({name:"AutoRedirectCard",component:cf,metadata:{author:"Swarm.ing"}});import{Bounce as SU,Slide as LU,Zoom as MU,Flip as NU}from"react-toastify";import{toast as AU,ToastContainer as yU}from"react-toastify";import{useContext as EU,useMemo as kU,useRef as mU}from"react";import{jsx as _f,Fragment as uU}from"react/jsx-runtime";var jU={bounce:SU,slide:LU,zoom:MU,flip:NU},dU=(f)=>{let H={...f,type:f.alertType,transition:f.transition?jU[f.transition]:void 0,position:f.position??"bottom-right",autoClose:f.autoClose??3000,style:{backgroundColor:"black",...f.sx}};AU(f.message,H)},xU=(f)=>{console.log("Log event",f)},oU=(f)=>{if(typeof window>"u"||!window.Notification){console.warn("[IOEventsCard] Notifications API is not available");return}let H=()=>{try{new window.Notification(f.title,{body:f.message??f.subtitle,icon:f.icon,silent:f.silent})}catch(U){console.error("[IOEventsCard] Failed to show notification",U)}},Z=window.Notification.permission;if(Z==="granted"){H();return}if(Z==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((U)=>{if(U==="granted")H()})},bU=({data:f})=>{let{useCentrifugeSupport:H,useSocketioSupport:Z,useMittSupport:U,centrifugeChannel:$}=f,z=EU(R),D=mU(z);D.current=z;let J=kU(()=>({alert:dU,log:xU,push:oU,redirect:(V)=>{if(V.to){let T=V.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(T))window.location.href=T;else D.current?.(T)}else window.location.reload()},reload:(V)=>{if(V.to){let T=V.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(T))window.location.href=T;else D.current?.(T)}else window.location.reload()}}),[]);return _f(uU,{children:_f(w,{card:"IOEventsCard",data:f,useCentrifugeSupport:H,useSocketioSupport:Z,useMittSupport:U,centrifugeChannel:$,methods:J,children:_f(yU,{})})})},hf=bU;var vU=W({name:"IOEventsCard",component:hf,metadata:{author:"Swarm.ing"}});import{useEffect as pf,useState as gU}from"react";import{jsx as lf}from"react/jsx-runtime";var cU=({data:f})=>{let{name:H,key:Z,value:U,useSocketioSupport:$,useCentrifugeSupport:z,useMittSupport:D,centrifugeChannel:J}=f,[V,T]=gU(U);return pf(()=>{T(U)},[U]),pf(()=>{if(typeof window>"u")return;sessionStorage.setItem(Z,V)},[Z,V]),lf(w,{card:"SessionStorageCard",data:f,useSocketioSupport:$,useCentrifugeSupport:z,useMittSupport:D,centrifugeChannel:J,methods:{update:({value:X})=>{T(X)},remove:()=>{sessionStorage.removeItem(Z),T("")}},children:lf("input",{type:"hidden",id:H,name:H,value:V})})},rf=cU;var hU=W({name:"SessionStorageCard",component:rf,metadata:{author:"PieData"}});import{useEffect as nf,useState as pU}from"react";import{jsx as sf}from"react/jsx-runtime";var lU=({data:f})=>{let{name:H,key:Z,value:U,useSocketioSupport:$,useCentrifugeSupport:z,useMittSupport:D,centrifugeChannel:J}=f,[V,T]=pU(U);return nf(()=>{T(U)},[U]),nf(()=>{if(typeof window>"u")return;localStorage.setItem(Z,V)},[Z,V]),sf(w,{card:"DeviceStorageCard",data:f,useSocketioSupport:$,useCentrifugeSupport:z,useMittSupport:D,centrifugeChannel:J,methods:{update:({value:X})=>{T(X)},remove:()=>{localStorage.removeItem(Z),T("")}},children:sf("input",{type:"hidden",id:H,name:H,value:V})})},tf=lU;var rU=W({name:"DeviceStorageCard",component:tf,metadata:{author:"PieData"}});import{useEffect as af,useState as nU}from"react";import{jsx as ef}from"react/jsx-runtime";var sU=({data:f})=>{let{name:H,key:Z,value:U,useSocketioSupport:$,useCentrifugeSupport:z,useMittSupport:D,centrifugeChannel:J}=f,[V,T]=nU(U);return af(()=>{T(U)},[U]),af(()=>{if(typeof window>"u")return;let X=window.Telegram?.WebApp?.CloudStorage;if(!X)return;X.setItem(Z,V)},[Z,V]),ef(w,{card:"CloudStorageCard",data:f,useSocketioSupport:$,useCentrifugeSupport:z,useMittSupport:D,centrifugeChannel:J,methods:{update:({value:X})=>{T(X)},remove:()=>{let X=window.Telegram?.WebApp?.CloudStorage;if(X)X.removeItem(Z);T("")}},children:ef("input",{type:"hidden",id:H,name:H,value:V})})},fH=sU;var iU=W({name:"CloudStorageCard",component:fH,metadata:{author:"PieData"}});import{useEffect as HH,useState as tU}from"react";import{jsx as UH}from"react/jsx-runtime";var aU=({data:f})=>{let{name:H,key:Z,value:U,useSocketioSupport:$,useCentrifugeSupport:z,useMittSupport:D,centrifugeChannel:J}=f,[V,T]=tU(U);return HH(()=>{T(U)},[U]),HH(()=>{if(typeof window>"u")return;let X=window.Telegram?.WebApp?.SecureStorage;if(!X)return;X.setItem(Z,V)},[Z,V]),UH(w,{card:"SecureStorageCard",data:f,useSocketioSupport:$,useCentrifugeSupport:z,useMittSupport:D,centrifugeChannel:J,methods:{update:({value:X})=>{T(X)},remove:()=>{let X=window.Telegram?.WebApp?.SecureStorage;if(X)X.removeItem(Z);T("")}},children:UH("input",{type:"hidden",id:H,name:H,value:V})})},ZH=aU;var eU=W({name:"SecureStorageCard",component:ZH,metadata:{author:"PieData"}});import{useCallback as Qf,useContext as Kf,useEffect as fZ,useRef as HZ,useState as $H}from"react";import{jsx as DH}from"react/jsx-runtime";var UZ=({data:f,content:H})=>{let{useLoader:Z,noReturn:U,returnType:$,useSocketioSupport:z,useCentrifugeSupport:D,useMittSupport:J,centrifugeChannel:V}=f,T=Kf(F),X=Kf(k)??C,[B,Q]=$H(!1),[q,G]=$H(null),I=HZ(H),Y=Kf(E),O=Qf((P)=>{if(P===null)Q(!0);else if(Q(!1),!U)I.current=P;if(!U)G(P)},[U]),K=Qf((P)=>{I.current=P.content,G(P.content)},[]),_=Qf((P)=>{if(P===null)Q(!0);else if(Q(!1),!U)for(let t of P)Y?.emit(t.name,t.data)},[U,Y]);if(fZ(()=>{G(H),Q(!1)},[H]),!q&&Z)return T;return DH(w,{card:"AjaxGroupCard",data:f,methods:{changeContent:K},useSocketioSupport:z,useCentrifugeSupport:D,useMittSupport:J,centrifugeChannel:V,children:DH(X,{uiConfig:q??I.current,setUiAjaxConfiguration:$==="events"?_:O})})},zH=UZ;var ZZ=W({name:"AjaxGroupCard",component:zH,metadata:{author:"Swarm.ing",description:"Group card with AJAX support"}});import{useContext as VH}from"react";import{jsx as Wf}from"react/jsx-runtime";var $Z=({data:f,content:H,setUiAjaxConfiguration:Z})=>{let{name:U,url:$,sx:z}=f,D=VH(R),J=VH(k)??C;return Wf(w,{card:U,data:f,children:Wf("div",{style:z,id:U,onClick:(T)=>{if($)if(T.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test($))window.location.href=$;else D?.($)},children:Wf(J,{setUiAjaxConfiguration:Z,uiConfig:H})})})},TH=$Z;var DZ=W({name:"BoxCard",component:TH,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});import{useContext as zZ}from"react";import{jsx as Pf}from"react/jsx-runtime";var VZ=({data:f,content:H,setUiAjaxConfiguration:Z})=>{let{name:U,sx:$}=f,z=zZ(k)??C;return Pf(w,{card:U,data:f,children:Pf("div",{style:$,id:U,children:H.map((D,J)=>{return Pf(z,{uiConfig:D,setUiAjaxConfiguration:Z},`children-${J}`)})})})},JH=VZ;var TZ=W({name:"OneOfCard",component:JH,metadata:{author:"Swarm.ing",description:"Different variants"}});import{useMemo as n}from"react";import{QueryClient as QZ,QueryClientProvider as KZ,useQuery as WZ}from"@tanstack/react-query";import{useContext as XZ,useEffect as qZ}from"react";import{useEffect as JZ,useState as YZ}from"react";var Zf=new Map,$f=new Map;function Df(f,H){let Z=`${f}::${H}`,U=f?Zf.get(Z):void 0,[$,z]=YZ(U??null);return JZ(()=>{if(!f)return;if(Zf.has(Z)){z(Zf.get(Z));return}let D=$f.get(Z);if(!D)D=fetch(f+`api/support/${H}`,{method:"GET"}).then((V)=>V.json()).then((V)=>{return Zf.set(Z,V),$f.delete(Z),V}).catch((V)=>{throw $f.delete(Z),V}),$f.set(Z,D);let J=!1;return D.then((V)=>{if(!J)z(V)}).catch(()=>{}),()=>{J=!0}},[f,H,Z]),$}var wf=null,YH=null;function XH(){YH?.()}function Cf(){if(typeof window>"u")return Promise.resolve();if(typeof window.sid<"u")return Promise.resolve();if(!wf)wf=new Promise((f)=>{YH=()=>{f()}});return wf}var GZ=({children:f})=>{let H=XZ(y),Z=e(),U=Df(Z,"socketIO"),$=(z)=>{if(typeof window<"u")window.sid=z.sid,XH(),console.log(`SocketIO initialized: ${window.sid}`)};return qZ(()=>{if(!H)return;let z=()=>{console.log("SocketIO connected")},D=(J)=>{console.log(`SocketIO disconnected: ${J}`),H.connect()};if(U)H.on("pieinit",$),H.on("connect",z),H.on("disconnect",D),H.connect();return()=>{if(U)H.off("pieinit",$),H.off("connect",z),H.off("disconnect",D),H.disconnect()}},[H,U]),f},g=GZ;import{useContext as OZ,useEffect as BZ}from"react";var IZ=({children:f})=>{let H=OZ(A),Z=e(),U=Df(Z,"centrifuge");return BZ(()=>{if(!H)return;let $=()=>{console.log("Centrifuge connected")},z=(D)=>{console.log("Centrifuge disconnected:",D)};if(U)H.on("connected",$),H.on("disconnected",z),H.connect();return()=>{if(U)H.disconnect()}},[H,U]),f},c=IZ;import{createAxiosDateTransformer as PZ}from"axios-date-transformer";import{jsx as _Z}from"react/jsx-runtime";function l(f,H,Z){if(!H)return Z;let U=f.replace(/^\//,""),$=H[U];if(!$)return Z;return _Z(Of,{uiConfig:$})}import{jsx as S,Fragment as FZ}from"react/jsx-runtime";var wZ=({location:f,fallback:H,piecache:Z,onError:U,queryOptions:$,disableGlobalForm:z})=>{let D=x(),J=o(),V=N(),T=n(()=>PZ({baseURL:D||""}),[D]),X=n(()=>d(),[]),B=n(()=>D?u(D):null,[D]),Q=n(()=>D?b(D,J):null,[D,J]),{data:q,isLoading:G,error:I}=WZ({queryKey:["uiConfig",f.pathname+f.search,D],enabled:!!D,queryFn:async()=>{let O=new URLSearchParams(f.search);O.set("__pieroot","web");let K="/api/content"+f.pathname+"?"+O.toString();if(V)console.log("[PieRoot] Fetching UI configuration from:",K);let _=await T.get(K,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(V)console.log("[PieRoot] Received UI configuration:",_.data);return _.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(O)=>Math.min(1000*2**O,30000),...$}),Y=l(f.pathname,Z,H);if(!D)return Y??null;if(V)console.log("[PieRoot] Rendering with location:",f),console.log("[PieRoot] API_SERVER:",D),console.log("[PieRoot] CENTRIFUGE_SERVER:",J),console.log("[PieRoot] Fallback provided:",!!H),console.log("[PieRoot] Piecache provided:",!!Z);if(I){if(V)console.error("[PieRoot] Error fetching UI configuration:",I),console.error("[PieRoot] Error details:",{message:I.message,status:I.response?.status,data:I.response?.data});return U?.(),Y}if(G||!q){if(V)console.log("[PieRoot] Loading state:",{isLoading:G,hasUiConfiguration:!!q});return Y}if(V)console.log("[PieRoot] UI configuration loaded successfully:",q),console.log("[PieRoot] Rendering UI with configuration");return S(E.Provider,{value:X,children:S(y.Provider,{value:B,children:S(A.Provider,{value:Q,children:S(F.Provider,{value:H??S(FZ,{}),children:S(g,{children:S(c,{children:z?S(C,{uiConfig:q}):S("form",{id:"piedata_global_form",action:D+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:S(C,{uiConfig:q})})})})})})})})},CZ=(f)=>{let H=n(()=>new QZ,[]);return S(R.Provider,{value:f.onNavigate,children:S(j.Provider,{value:f.config,children:S(KZ,{client:H,children:S(wZ,{...f})})})})},RZ=CZ;import{useMemo as s}from"react";import{QueryClient as MZ,QueryClientProvider as NZ,useQuery as AZ}from"@tanstack/react-query";import{createAxiosDateTransformer as yZ}from"axios-date-transformer";import{useEffect as SZ,useState as LZ}from"react";var Ff=({onError:f}={})=>{let[H,Z]=LZ(null),U=Nf();return SZ(()=>{if(typeof window>"u")return;let $=window.Telegram?.WebApp;if(!$)return;try{$.ready?.()}catch(z){f?.()}if(U==="telegram_expanded"&&($.platform==="ios"||$.platform==="android"))$.expand();Z($)},[]),H};import{jsx as L,Fragment as mZ}from"react/jsx-runtime";var EZ=({location:f,fallback:H,piecache:Z,onError:U,queryOptions:$,disableGlobalForm:z})=>{let D=x(),J=o(),V=N(),T=s(()=>yZ({baseURL:D}),[D]),X=s(()=>d(),[]),B=s(()=>D?u(D):null,[D]),Q=s(()=>D?b(D,J):null,[D,J]),q=Ff({onError:U}),{data:G,isLoading:I,error:Y}=AZ({queryKey:["uiConfig",f.pathname+f.search,q?.initData],enabled:!!q?.initData,queryFn:async()=>{let K=new URLSearchParams(f.search);if(K.set("__pieroot","telegram"),q?.initData)K.set("initData",q.initData);let _="/api/content"+f.pathname+"?"+K.toString();if(V)console.log("[PieRoot] Fetching UI configuration from:",_);let P=await T.get(_,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(V)console.log("[PieRoot] Received UI configuration:",P.data);return P.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(K)=>Math.min(1000*2**K,30000),...$}),O=l(f.pathname,Z,H);if(!D)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(Y&&V)return console.error("[PieRoot] Error fetching UI configuration:",Y),console.error("[PieRoot] Error details:",{message:Y.message,status:Y.response?.status,data:Y.response?.data}),U?.(),O;if(I||!G){if(V)console.log("[PieRoot] Loading state:",{isLoading:I,hasUiConfiguration:!!G});return O}if(V)console.log("[PieRoot] UI configuration loaded successfully:",G),console.log("[PieRoot] Rendering UI with configuration");return L(E.Provider,{value:X,children:L(y.Provider,{value:B,children:L(A.Provider,{value:Q,children:L(F.Provider,{value:H??L(mZ,{}),children:L(g,{children:L(c,{children:z?L(C,{uiConfig:G}):L("form",{id:"piedata_global_form",action:D+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:L(C,{uiConfig:G})})})})})})})})},kZ=(f)=>{let H=s(()=>new MZ,[]);return L(R.Provider,{value:f.onNavigate,children:L(j.Provider,{value:f.config,children:L(NZ,{client:H,children:L(EZ,{...f})})})})},jZ=kZ;import{useMemo as Rf,useState as dZ}from"react";import{QueryClient as xZ,QueryClientProvider as oZ}from"@tanstack/react-query";import{jsx as m,Fragment as vZ}from"react/jsx-runtime";var bZ=({location:f,fallback:H,children:Z,disableGlobalForm:U})=>{let $=x(),z=o(),D=N(),J=Rf(()=>d(),[]),V=Rf(()=>$?u($):null,[$]),T=Rf(()=>$?b($,z):null,[$,z]);if(D)console.log("[PieRoot] Rendering with location:",f),console.log("[PieRoot] API_SERVER:",$),console.log("[PieRoot] CENTRIFUGE_SERVER:",z),console.log("[PieRoot] Fallback provided:",!!H);return m(E.Provider,{value:J,children:m(y.Provider,{value:V,children:m(A.Provider,{value:T,children:m(F.Provider,{value:H??m(vZ,{}),children:m(g,{children:m(c,{children:U?Z:m("form",{id:"piedata_global_form",action:$+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:Z})})})})})})})},uZ=(f)=>{let[H]=dZ(()=>new xZ);return m(R.Provider,{value:f.onNavigate,children:m(j.Provider,{value:f.config,children:m(oZ,{client:H,children:m(bZ,{...f})})})})},gZ=uZ;import{useMemo as i}from"react";import{QueryClient as pZ,QueryClientProvider as lZ,useQuery as rZ}from"@tanstack/react-query";import{createAxiosDateTransformer as nZ}from"axios-date-transformer";import{useEffect as cZ,useState as hZ}from"react";var Sf=()=>{let[f,H]=hZ(null);return cZ(()=>{if(typeof window>"u")return;let Z=window.WebApp;if(!Z)return;Z.ready(),H(Z)},[]),f};import{jsx as M,Fragment as tZ}from"react/jsx-runtime";var sZ=({location:f,fallback:H,piecache:Z,onError:U,queryOptions:$,disableGlobalForm:z})=>{let D=x(),J=o(),V=N(),T=i(()=>nZ({baseURL:D}),[D]),X=i(()=>d(),[]),B=i(()=>D?u(D):null,[D]),Q=i(()=>D?b(D,J):null,[D,J]),q=Sf(),{data:G,isLoading:I,error:Y}=rZ({queryKey:["uiConfig",f.pathname+f.search,q?.initData],queryFn:async()=>{let K=new URLSearchParams(f.search);if(K.set("__pieroot","max"),q?.initData)K.set("initData",q.initData);let _="/api/content"+f.pathname+"?"+K.toString();if(V)console.log("[PieRoot] Fetching UI configuration from:",_);let P=await T.get(_,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(V)console.log("[PieRoot] Received UI configuration:",P.data);return P.data},enabled:!!q?.initData,staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(K)=>Math.min(1000*2**K,30000),...$}),O=l(f.pathname,Z,H);if(!D)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(Y&&V)return console.error("[PieRoot] Error fetching UI configuration:",Y),console.error("[PieRoot] Error details:",{message:Y.message,status:Y.response?.status,data:Y.response?.data}),U?.(),O;if(I||!G){if(V)console.log("[PieRoot] Loading state:",{isLoading:I,hasUiConfiguration:!!G});return O}if(V)console.log("[PieRoot] UI configuration loaded successfully:",G),console.log("[PieRoot] Rendering UI with configuration");return M(E.Provider,{value:X,children:M(y.Provider,{value:B,children:M(A.Provider,{value:Q,children:M(F.Provider,{value:H??M(tZ,{}),children:M(g,{children:M(c,{children:z?M(C,{uiConfig:G}):M("form",{id:"piedata_global_form",action:D+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:M(C,{uiConfig:G})})})})})})})})},iZ=(f)=>{let H=i(()=>new pZ,[]);return M(R.Provider,{value:f.onNavigate,children:M(j.Provider,{value:f.config,children:M(lZ,{client:H,children:M(sZ,{...f})})})})},aZ=iZ;import{useMemo as eZ}from"react";var qH=(f,H=!1)=>{if(f==="sid"){if(!window.sid)throw Error("SocketIO isn't initialized properly");return[window.sid]}let Z=document.getElementsByName(f);if(!Z.length){if(H)console.warn(`No input found with name ${f}`);return[]}let U=Z[0];if(U instanceof HTMLInputElement){if(U.type==="file"&&U.files)return Array.from(U.files);return[U.value]}if(U instanceof HTMLTextAreaElement)return[U.value];return[]},f$=(f,H={},Z=[],U,$)=>{let z=$?.renderingLogEnabled??!1,D=$?.timeout,J=$?.retryPolicy,V=J?.maxRetries??0,T=J?.baseDelay??1000,X=J?.retryOn??[502,503,504];if(z)console.log("Registering AJAX: ",U,H,Z);return async(B={})=>{if(typeof window>"u"||typeof document>"u"){if(z)console.warn("getAjaxSubmit called on server, skipping DOM-dependent logic");return}let Q=$?.apiServer;if(!Q){if(z)console.warn("AJAX skipped: apiServer is missing");return}if(!U||!f){if(z)console.warn("AJAX skipped: pathname or setUiAjaxConfiguration is missing");return}if(Z.includes("sid"))await Cf();let q=new FormData;for(let[Y,O]of Object.entries({...H,...B}))q.append(Y,O);for(let Y of Z)for(let O of qH(Y,z))q.append(Y,O);let G=Q+"api/ajax_content"+U;f(null);let I;for(let Y=0;Y<=V;Y++){if(Y>0){let _=T*2**(Y-1);if(z)console.log(`AJAX retry ${Y}/${V} after ${_}ms`);await new Promise((P)=>setTimeout(P,_))}let O=D!=null?new AbortController:null,K=O&&setTimeout(()=>O.abort(),D);try{let _=await fetch(G,{method:"POST",body:q,signal:O?.signal});if(K)clearTimeout(K);if(!_.ok&&X.includes(_.status)&&Y<V){I=Error(`HTTP ${_.status}`);continue}let t=(_.headers.get("content-type")||"").includes("application/json");if(!!_.body?.getReader&&!t){let a=_.body.getReader(),GH=new TextDecoder,h="";while(!0){let{done:zf,value:OH}=await a.read();if(zf)break;h+=GH.decode(OH,{stream:!0});let Lf=h.split(`
3
+ `);h=Lf.pop()??"";for(let BH of Lf){let Vf=BH.trim();if(!Vf)continue;try{let IH=JSON.parse(Vf);f([IH])}catch{if(z)console.warn("Failed to parse streamed line:",Vf)}}}if(h.trim())try{let zf=JSON.parse(h);f([zf])}catch{if(z)console.warn("Failed to parse final streamed line:",h)}return{}}else{let a=await _.json();return f(a),a}}catch(_){if(K)clearTimeout(K);if(I=_,Y<V)continue;if(z)console.error("AJAX request failed:",_);return f(null),_}}if(z)console.error("AJAX request failed after retries:",I);return f(null),I}},H$=(f,H={},Z=[],U,$)=>{let{apiServer:z,enableRenderingLog:D}=p(),J=JSON.stringify(H),V=JSON.stringify(Z),T=JSON.stringify($);return eZ(()=>f$(f,H,Z,U,{apiServer:z,renderingLogEnabled:D,timeout:$?.timeout,retryPolicy:$?.retryPolicy}),[f,J,V,U,z,D,T])};import{clsx as U$}from"clsx";import{twMerge as Z$}from"tailwind-merge";function $$(...f){return Z$(U$(f))}var D$=()=>{if(typeof document>"u")return;let f=document.getElementById("piedata_global_form");f&&f.submit()};var z$=(f,H)=>`${f}${Tf}${H}`;export{Ff as useWebApp,MH as usePieEmit,Uf as useOpenAIWebRTC,Sf as useMaxWebApp,H$ as useAjaxSubmit,xH as unregisterComponent,D$ as submitGlobalForm,v as registry,W as registerPieComponent,dH as registerMultipleComponents,qH as readAjaxKey,z$ as pieName,oH as hasComponent,vH as getRegistrySize,r as getRegistryEntry,d as getEmitter,bH as getComponentMeta,uH as getAllRegisteredComponents,$$ as cn,DU as UnionCard,k as UIRendererContext,Of as UILoading,C as UI,y as SocketIOContext,hU as SessionStorageCard,UU as SequenceCard,eU as SecureStorageCard,jZ as PieTelegramRoot,RZ as PieRoot,aZ as PieMaxRoot,j as PieConfigContext,w as PieCard,gZ as PieBaseRoot,Tf as PIEBREAK,TZ as OneOfCard,E as MittContext,vU as IOEventsCard,QU as HiddenCard,OU as HTMLEmbedCard,F as FallbackContext,rU as DeviceStorageCard,iU as CloudStorageCard,A as CentrifugeIOContext,DZ as BoxCard,RU as AutoRedirectCard,ZZ as AjaxGroupCard};
package/dist/index.js CHANGED
@@ -1,2 +1,3 @@
1
1
  "use client";
2
- var $r=Object.create;var{getPrototypeOf:yr,defineProperty:X,getOwnPropertyNames:To,getOwnPropertyDescriptor:Wr}=Object,Oo=Object.prototype.hasOwnProperty;function go(o){return this[o]}var Rr,nr,H=(o,r,f)=>{var p=o!=null&&typeof o==="object";if(p){var C=r?Rr??=new WeakMap:nr??=new WeakMap,u=C.get(o);if(u)return u}f=o!=null?$r(yr(o)):{};let i=r||!o||!o.__esModule?X(f,"default",{value:o,enumerable:!0}):f;for(let d of To(o))if(!Oo.call(i,d))X(i,d,{get:go.bind(o,d),enumerable:!0});if(p)C.set(o,i);return i},Jr=(o)=>{var r=(xo??=new WeakMap).get(o),f;if(r)return r;if(r=X({},"__esModule",{value:!0}),o&&typeof o==="object"||typeof o==="function"){for(var p of To(o))if(!Oo.call(r,p))X(r,p,{get:go.bind(o,p),enumerable:!(f=Wr(o,p))||f.enumerable})}return xo.set(o,r),r},xo;var Qr=(o)=>o;function Xr(o,r){this[o]=Qr.bind(null,r)}var Yr=(o,r)=>{for(var f in r)X(o,f,{get:r[f],enumerable:!0,configurable:!0,set:Xr.bind(r,f)})};var xp={};Yr(xp,{useWebApp:()=>Gr.useWebApp,usePieMittAgentTools:()=>fo.usePieMittAgentTools,usePieEmit:()=>Tr.usePieEmit,useOpenAIWebRTC:()=>Br.default,useMaxWebApp:()=>Mr.useMaxWebApp,useAjaxSubmit:()=>ro.useAjaxSubmit,unregisterComponent:()=>g.unregisterComponent,submitGlobalForm:()=>qr.submitGlobalForm,registry:()=>g.registry,registerPieComponent:()=>g.registerPieComponent,registerMultipleComponents:()=>g.registerMultipleComponents,readAjaxKey:()=>ro.readAjaxKey,pieName:()=>zr.pieName,hasComponent:()=>g.hasComponent,getRegistrySize:()=>g.getRegistrySize,getRegistryEntry:()=>g.getRegistryEntry,getMittAgentTools:()=>fo.getMittAgentTools,getEmitter:()=>po.getEmitter,getComponentMeta:()=>g.getComponentMeta,getAllRegisteredComponents:()=>g.getAllRegisteredComponents,cn:()=>Zr.cn,UnionCard:()=>Xo,UIRendererContext:()=>Ir.default,UILoading:()=>Sr.default,UI:()=>dr.default,SocketIOContext:()=>Or.default,SessionStorageCard:()=>vo,SequenceCard:()=>no,SecureStorageCard:()=>pr,PieTelegramRoot:()=>Ar.default,PieRoot:()=>Ur.default,PieMaxRoot:()=>lr.default,PieConfigContext:()=>Hr.PieConfigContext,PieCard:()=>xr.default,PieBaseRoot:()=>wr.default,PIEBREAK:()=>Vr.PIEBREAK,OneOfCard:()=>tr,MittContext:()=>po.default,IOEventsCard:()=>jo,HiddenCard:()=>Eo,HTMLEmbedCard:()=>Lo,FallbackContext:()=>Dr.default,DeviceStorageCard:()=>ho,CloudStorageCard:()=>or,CentrifugeIOContext:()=>gr.default,BoxCard:()=>ir,AutoRedirectCard:()=>ko,AjaxGroupCard:()=>Cr});module.exports=Jr(xp);var z=require("react");var E=require("react"),Fr=E.createContext(null),Kr=()=>{let o=E.useContext(Fr);if(!o)throw Error("usePieConfig must be used within PieConfigProvider");return o};var Co=()=>{let{enableRenderingLog:o}=Kr();return o},Do=Co;var Ho=require("react"),Lr=require("centrifuge");var _r=Ho.createContext(null),Bo=_r;var Er=require("socket.io-client"),Zo=require("react");var ar=Zo.createContext(null),Vo=ar;var br=H(require("mitt")),a=require("react");var kr=a.createContext(null);var b=kr;var y=require("react/jsx-runtime"),Nr=({card:o,data:r,children:f,useSocketioSupport:p=!1,useCentrifugeSupport:C=!1,useMittSupport:u=!1,centrifugeChannel:i=void 0,methods:d=void 0,stored:t=void 0})=>{let m=Do(),P=z.useRef(d);if(P.current=d,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:p,centrifuge:C,mitt:u,centrifugeChannel:i}),console.log("[PieCard] Methods:",d?Object.keys(d):"none"),console.log("[PieCard] Has children:",!!f);let U=z.useContext(Vo),l=z.useContext(Bo),I=z.useContext(b);if(z.useEffect(()=>{if(!U||!p||!P.current||!r.name){if(m&&p)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!U,useSocketioSupport:p,hasMethods:!!P.current,hasDataName:!!r?.name});return}let D=Object.keys(P.current??{}).map((x)=>{let T=`pie${x}_${r.name}`;if(m)console.log(`[PieCard] Socket.IO registering event: ${T}`);let V=(q)=>{P.current?.[x]?.(q)};return U.on(T,V),[T,V]});return()=>{D.forEach(([x,T])=>{if(m)console.log(`[PieCard] Socket.IO unregistering event: ${x}`);U.off(x,T)})}},[U,r.name,p]),z.useEffect(()=>{if(!l||!C||!i||!r.name){if(m&&C)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!l,useCentrifugeSupport:C,hasCentrifugeChannel:!!i,hasMethods:!!P.current,hasDataName:!!r?.name});return}let D=Object.keys(P.current??{}).map((x)=>{let T=`pie${x}_${r.name}_${i}`;if(m)console.log(`[PieCard] Centrifuge subscribing to channel: ${T}`);let V=l.newSubscription(T);return V.on("publication",(q)=>{if(m)console.log(`[PieCard] Centrifuge received data on ${T}:`,q.data);P.current?.[x]?.(q.data)}),V.subscribe(),V});return()=>{D.forEach((x)=>{if(m)console.log("[PieCard] Centrifuge unsubscribing from channel");x.unsubscribe(),l.removeSubscription(x)})}},[l,i,r.name,C]),z.useEffect(()=>{if(!I||!u||!r.name){if(m&&u)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!I,useMittSupport:u,hasMethods:!!P.current,hasDataName:!!r?.name});return}let S=Object.keys(P.current??{}),D={};return S.forEach((x)=>{let T=`pie${x}_${r.name}`,V=(q)=>{if(m)console.log(`[PieCard] Mitt registering event: ${T}`);P.current?.[x]?.(q)};D[T]=V,I.on(T,V)}),()=>{Object.entries(D).forEach(([x,T])=>{if(m)console.log(`[PieCard] Mitt unregistering event: ${x}`);I.off(x,T)})}},[I,r.name,u]),m)console.log("[PieCard] Rendering complete, returning children");if(t!==void 0)return y.jsxs(y.Fragment,{children:[y.jsx("input",{type:"hidden",name:r.name,value:JSON.stringify(t)}),f]});return f},w=Nr;var qo=require("react"),mo=new Map;function zo(o,r){return qo.lazy(()=>{if(mo.has(r))return mo.get(r);let f=o().then((p)=>p);return mo.set(r,f),f})}var Go=new Map,jr=(o)=>{if(!o.name)throw Error("Component registration requires a name");if(!o.component&&!o.loader)throw 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=zo(r.loader,o.name),r.loader=void 0,r.isLazy=!0;return r};function A(o){let r=jr(o);return Go.set(r.name,r),r.component}var Mo=(o)=>{return Go.get(o)};var R=require("react");var $o=require("react"),k=require("react/jsx-runtime"),cr=$o.createContext(k.jsx(k.Fragment,{})),W=cr;var N=require("react/jsx-runtime");function vr({uiConfig:o,setUiAjaxConfiguration:r}){let f=R.useContext(W),p=Co();if(p)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 C=Mo(o.card);if(!C?.component){if(p)console.warn(`[UI] Component not found in registry: ${o.card}`),console.log("[UI] Returning fallback component");return f}if(p)console.log("[UI] Found component in registry:",{name:C.name,isLazy:C.isLazy,hasMetadata:!!C.metadata});let u=C.component,i=N.jsx(u,{data:o.data,content:o.content,setUiAjaxConfiguration:r});if(C.isLazy){if(p)console.log("[UI] Rendering lazy component with Suspense:",C.name);return N.jsx(R.Suspense,{fallback:C.fallback?N.jsx(C.fallback,{}):f,children:i},`${C.name}`)}if(p)console.log("[UI] Rendering component directly:",C.name);return i}var G=R.memo(vr);var yo=require("react"),sr=yo.createContext(null),M=sr;var Wo=require("react");var j=require("react/jsx-runtime"),hr=({data:o,content:r,setUiAjaxConfiguration:f})=>{let{name:p,sx:C}=o,u=Wo.useContext(M)??G;return j.jsx(w,{card:p,data:o,children:j.jsx("div",{style:C,id:p,children:r.map((i,d)=>{return j.jsx(u,{uiConfig:i,setUiAjaxConfiguration:f},`children-${d}`)})})})},Ro=hr;var no=A({name:"SequenceCard",component:Ro,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var Jo=require("react");var io=require("react/jsx-runtime"),er=({data:o,content:r,setUiAjaxConfiguration:f})=>{let{name:p}=o,C=Jo.useContext(M)??G;return io.jsx(w,{card:p,data:o,children:r.map((u,i)=>{return io.jsx(C,{uiConfig:u,setUiAjaxConfiguration:f},`children-${i}`)})})},Qo=er;var Xo=A({name:"UnionCard",component:Qo,metadata:{author:"Swarm.ing",description:"Renders one of many components"}});var c=require("react"),Yo=H(require("html-react-parser"));var Z=require("react");function op(){let o=new AudioContext,r=o.createOscillator(),f=r.connect(o.createMediaStreamDestination());r.start();let p=f.stream.getAudioTracks()[0];return p.enabled=!1,p}function uo(o=null,r){let[f,p]=Z.useState(!1),C=Z.useRef(null),u=Z.useRef(null),i=Z.useRef(null),d=Z.useCallback(async(U,l=!0)=>{if(C.current)t();let I=new RTCPeerConnection;if(I.onconnectionstatechange=()=>{if(I.connectionState==="connected")p(!0);else if(["disconnected","failed","closed"].includes(I.connectionState))p(!1)},I.ontrack=(O)=>{if(o)o.srcObject=O.streams[0]},l){let O=await navigator.mediaDevices.getUserMedia({audio:!0});I.addTrack(O.getTracks()[0],O)}else{let O=op();I.addTrack(O)}let S=I.createDataChannel("oai-events");u.current=S,i.current=new Promise((O)=>{S.addEventListener("open",()=>{O()})});let D=await I.createOffer();await I.setLocalDescription(D);let q=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:D.sdp,headers:{Authorization:`Bearer ${U}`,"Content-Type":"application/sdp"}})).text();await I.setRemoteDescription({type:"answer",sdp:q}),C.current=I,await i.current},[o]),t=Z.useCallback(()=>{let U=u.current;if(U)U.close();C.current?.getSenders()?.forEach((l)=>l.track?.stop()),C.current?.close(),p(!1),C.current=null,u.current=null,i.current=null},[o]),m=Z.useCallback((U)=>{let l=u.current;if(!l){console.error("Data channel is not ready",U);return}let I=new Date().toLocaleTimeString();if(U.event_id=U.event_id||crypto.randomUUID(),l.send(JSON.stringify(U)),!U.timestamp)U.timestamp=I;r?.(U)},[r,o]),P=Z.useCallback((U)=>{if(!u.current){console.error("Data channel is not ready");return}let I=()=>{m({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:U}]}}),m({type:"response.create"})};if(i.current)i.current.then(I);else I()},[r,o]);return Z.useEffect(()=>{let U=u.current;if(!U)return;let l=(I)=>{let S=JSON.parse(I.data);if(!S.timestamp)S.timestamp=new Date().toLocaleTimeString();r?.(S)};return U.addEventListener("message",l),()=>{U.removeEventListener("message",l)}},[r,o]),{isSessionActive:f,startSession:d,stopSession:t,sendTextMessage:P}}var Ko=require("react/jsx-runtime"),rp=({data:o})=>{let{html:r,useSocketioSupport:f,useCentrifugeSupport:p,useMittSupport:C,centrifugeChannel:u}=o,[i,d]=c.useState(r),{isSessionActive:t,startSession:m,sendTextMessage:P}=uo(null,(S)=>{if(console.log(S.type,S.type==="response.output_text.delta"&&S.delta),S.type==="response.output_text.delta"&&S.delta)d((D)=>D+S.delta)});return c.useEffect(()=>{d(r)},[r]),Ko.jsx(w,{card:"HTMLEmbedCard",data:o,methods:{update:(S)=>{d(S.value)},generateUsingAI:async(S)=>{try{if(!t&&S.token)await m(S.token,!1);P(S.prompt)}catch(D){console.error("Failed to generate using AI",D)}},initializeAI:async(S)=>{if(!t&&S.token)await m(S.token,!1)}},useCentrifugeSupport:p,useSocketioSupport:f,useMittSupport:C,centrifugeChannel:u,children:Yo.default(i)})},Fo=rp;var Lo=A({name:"HTMLEmbedCard",component:Fo,metadata:{author:"Swarm.ing"}});var v=require("react");var Po=require("react/jsx-runtime"),pp=({data:o})=>{let{name:r,value:f,useSocketioSupport:p,useCentrifugeSupport:C,useMittSupport:u,centrifugeChannel:i}=o,[d,t]=v.useState(f);return v.useEffect(()=>{t(f)},[f]),Po.jsx(w,{card:"HiddenCard",data:o,useSocketioSupport:p,useCentrifugeSupport:C,useMittSupport:u,centrifugeChannel:i,methods:{update:({value:m})=>{t(m)}},children:Po.jsx("input",{type:"hidden",id:r,name:r,value:d})})},_o=pp;var Eo=A({name:"HiddenCard",component:_o,metadata:{author:"Swarm.ing"}});var Y=require("react");var ao=require("react"),fp=ao.createContext(void 0),n=fp;var s=require("react/jsx-runtime"),Cp=({data:o})=>{let{url:r}=o,f=Y.useContext(n),p=Y.useContext(W);return Y.useEffect(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(r))window.location.href=r;else f?.(r)},[r,f]),s.jsx(s.Fragment,{children:p})},bo=Cp;var ko=A({name:"AutoRedirectCard",component:bo,metadata:{author:"Swarm.ing"}});var $=require("react-toastify"),h=require("react-toastify");var Q=require("react");var J=require("react/jsx-runtime"),mp={bounce:$.Bounce,slide:$.Slide,zoom:$.Zoom,flip:$.Flip},ip=(o)=>{let r={...o,type:o.alertType,transition:o.transition?mp[o.transition]:void 0,position:o.position??"bottom-right",autoClose:o.autoClose??3000,style:{backgroundColor:"black",...o.sx}};h.toast(o.message,r)},up=(o)=>{console.log("Log event",o)},Pp=(o)=>{if(typeof window>"u"||!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(p){console.error("[IOEventsCard] Failed to show notification",p)}},f=window.Notification.permission;if(f==="granted"){r();return}if(f==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((p)=>{if(p==="granted")r()})},tp=({data:o})=>{let{useCentrifugeSupport:r,useSocketioSupport:f,useMittSupport:p,centrifugeChannel:C}=o,u=Q.useContext(n),i=Q.useRef(u);i.current=u;let d=Q.useMemo(()=>({alert:ip,log:up,push:Pp,redirect:(t)=>{if(t.to){let m=t.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(m))window.location.href=m;else i.current?.(m)}else window.location.reload()},reload:(t)=>{if(t.to){let m=t.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(m))window.location.href=m;else i.current?.(m)}else window.location.reload()}}),[]);return J.jsx(J.Fragment,{children:J.jsx(w,{card:"IOEventsCard",data:o,useCentrifugeSupport:r,useSocketioSupport:f,useMittSupport:p,centrifugeChannel:C,methods:d,children:J.jsx(h.ToastContainer,{})})})},No=tp;var jo=A({name:"IOEventsCard",component:No,metadata:{author:"Swarm.ing"}});var F=require("react");var to=require("react/jsx-runtime"),dp=({data:o})=>{let{name:r,key:f,value:p,useSocketioSupport:C,useCentrifugeSupport:u,useMittSupport:i,centrifugeChannel:d}=o,[t,m]=F.useState(p);return F.useEffect(()=>{m(p)},[p]),F.useEffect(()=>{if(typeof window>"u")return;sessionStorage.setItem(f,t)},[f,t]),to.jsx(w,{card:"SessionStorageCard",data:o,useSocketioSupport:C,useCentrifugeSupport:u,useMittSupport:i,centrifugeChannel:d,methods:{update:({value:P})=>{m(P)},remove:()=>{sessionStorage.removeItem(f),m("")}},children:to.jsx("input",{type:"hidden",id:r,name:r,value:t})})},co=dp;var vo=A({name:"SessionStorageCard",component:co,metadata:{author:"PieData"}});var K=require("react");var So=require("react/jsx-runtime"),Sp=({data:o})=>{let{name:r,key:f,value:p,useSocketioSupport:C,useCentrifugeSupport:u,useMittSupport:i,centrifugeChannel:d}=o,[t,m]=K.useState(p);return K.useEffect(()=>{m(p)},[p]),K.useEffect(()=>{if(typeof window>"u")return;localStorage.setItem(f,t)},[f,t]),So.jsx(w,{card:"DeviceStorageCard",data:o,useSocketioSupport:C,useCentrifugeSupport:u,useMittSupport:i,centrifugeChannel:d,methods:{update:({value:P})=>{m(P)},remove:()=>{localStorage.removeItem(f),m("")}},children:So.jsx("input",{type:"hidden",id:r,name:r,value:t})})},so=Sp;var ho=A({name:"DeviceStorageCard",component:so,metadata:{author:"PieData"}});var L=require("react");var Io=require("react/jsx-runtime"),Ip=({data:o})=>{let{name:r,key:f,value:p,useSocketioSupport:C,useCentrifugeSupport:u,useMittSupport:i,centrifugeChannel:d}=o,[t,m]=L.useState(p);return L.useEffect(()=>{m(p)},[p]),L.useEffect(()=>{if(typeof window>"u")return;let P=window.Telegram?.WebApp?.CloudStorage;if(!P)return;P.setItem(f,t)},[f,t]),Io.jsx(w,{card:"CloudStorageCard",data:o,useSocketioSupport:C,useCentrifugeSupport:u,useMittSupport:i,centrifugeChannel:d,methods:{update:({value:P})=>{m(P)},remove:()=>{let P=window.Telegram?.WebApp?.CloudStorage;if(P)P.removeItem(f);m("")}},children:Io.jsx("input",{type:"hidden",id:r,name:r,value:t})})},eo=Ip;var or=A({name:"CloudStorageCard",component:eo,metadata:{author:"PieData"}});var _=require("react");var Uo=require("react/jsx-runtime"),Up=({data:o})=>{let{name:r,key:f,value:p,useSocketioSupport:C,useCentrifugeSupport:u,useMittSupport:i,centrifugeChannel:d}=o,[t,m]=_.useState(p);return _.useEffect(()=>{m(p)},[p]),_.useEffect(()=>{if(typeof window>"u")return;let P=window.Telegram?.WebApp?.SecureStorage;if(!P)return;P.setItem(f,t)},[f,t]),Uo.jsx(w,{card:"SecureStorageCard",data:o,useSocketioSupport:C,useCentrifugeSupport:u,useMittSupport:i,centrifugeChannel:d,methods:{update:({value:P})=>{m(P)},remove:()=>{let P=window.Telegram?.WebApp?.SecureStorage;if(P)P.removeItem(f);m("")}},children:Uo.jsx("input",{type:"hidden",id:r,name:r,value:t})})},rr=Up;var pr=A({name:"SecureStorageCard",component:rr,metadata:{author:"PieData"}});var B=require("react");var Ao=require("react/jsx-runtime"),Ap=({data:o,content:r})=>{let{useLoader:f,noReturn:p,returnType:C,useSocketioSupport:u,useCentrifugeSupport:i,useMittSupport:d,centrifugeChannel:t}=o,m=B.useContext(W),P=B.useContext(M)??G,[U,l]=B.useState(!1),[I,S]=B.useState(null),D=B.useRef(r),x=B.useContext(b),T=B.useCallback((O)=>{if(O===null)l(!0);else if(l(!1),!p)D.current=O;if(!p)S(O)},[p]),V=B.useCallback((O)=>{D.current=O.content,S(O.content)},[]),q=B.useCallback((O)=>{if(O===null)l(!0);else if(l(!1),!p)for(let lo of O)x?.emit(lo.name,lo.data)},[p,x]);if(B.useEffect(()=>{S(r),l(!1)},[r]),!I&&f)return m;return Ao.jsx(w,{card:"AjaxGroupCard",data:o,methods:{changeContent:V},useSocketioSupport:u,useCentrifugeSupport:i,useMittSupport:d,centrifugeChannel:t,children:Ao.jsx(P,{uiConfig:I??D.current,setUiAjaxConfiguration:C==="events"?q:T})})},fr=Ap;var Cr=A({name:"AjaxGroupCard",component:fr,metadata:{author:"Swarm.ing",description:"Group card with AJAX support"}});var wo=require("react");var e=require("react/jsx-runtime"),wp=({data:o,content:r,setUiAjaxConfiguration:f})=>{let{name:p,url:C,sx:u}=o,i=wo.useContext(n),d=wo.useContext(M)??G;return e.jsx(w,{card:p,data:o,children:e.jsx("div",{style:u,id:p,onClick:(m)=>{if(C)if(m.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(C))window.location.href=C;else i?.(C)},children:e.jsx(d,{setUiAjaxConfiguration:f,uiConfig:r})})})},mr=wp;var ir=A({name:"BoxCard",component:mr,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var ur=require("react");var oo=require("react/jsx-runtime"),lp=({data:o,content:r,setUiAjaxConfiguration:f})=>{let{name:p,sx:C}=o,u=ur.useContext(M)??G;return oo.jsx(w,{card:p,data:o,children:oo.jsx("div",{style:C,id:p,children:r.map((i,d)=>{return oo.jsx(u,{uiConfig:i,setUiAjaxConfiguration:f},`children-${d}`)})})})},Pr=lp;var tr=A({name:"OneOfCard",component:Pr,metadata:{author:"Swarm.ing",description:"Different variants"}});
2
+ var kU=Object.create;var{getPrototypeOf:mU,defineProperty:Yf,getOwnPropertyNames:YH,getOwnPropertyDescriptor:jU}=Object,XH=Object.prototype.hasOwnProperty;var qH=(f,H,Z)=>{Z=f!=null?kU(mU(f)):{};let U=H||!f||!f.__esModule?Yf(Z,"default",{value:f,enumerable:!0}):Z;for(let $ of YH(f))if(!XH.call(U,$))Yf(U,$,{get:()=>f[$],enumerable:!0});return U},JH=new WeakMap,dU=(f)=>{var H=JH.get(f),Z;if(H)return H;if(H=Yf({},"__esModule",{value:!0}),f&&typeof f==="object"||typeof f==="function")YH(f).map((U)=>!XH.call(H,U)&&Yf(H,U,{get:()=>f[U],enumerable:!(Z=jU(f,U))||Z.enumerable}));return JH.set(f,H),H};var xU=(f,H)=>{for(var Z in H)Yf(f,Z,{get:H[Z],enumerable:!0,configurable:!0,set:(U)=>H[Z]=()=>U})};var PZ={};xU(PZ,{useWebApp:()=>vf,usePieEmit:()=>wH,useOpenAIWebRTC:()=>qf,useMaxWebApp:()=>hf,useAjaxSubmit:()=>CU,unregisterComponent:()=>SH,submitGlobalForm:()=>LU,registry:()=>v,registerPieComponent:()=>W,registerMultipleComponents:()=>RH,readAjaxKey:()=>VH,pieName:()=>MU,hasComponent:()=>LH,getRegistrySize:()=>AH,getRegistryEntry:()=>a,getEmitter:()=>o,getComponentMeta:()=>MH,getAllRegisteredComponents:()=>NH,cn:()=>SU,UnionCard:()=>bH,UIRendererContext:()=>k,UILoading:()=>Sf,UI:()=>C,SocketIOContext:()=>y,SessionStorageCard:()=>aH,SequenceCard:()=>dH,SecureStorageCard:()=>$U,PieTelegramRoot:()=>QU,PieRoot:()=>IU,PieMaxRoot:()=>PU,PieConfigContext:()=>x,PieCard:()=>w,PieBaseRoot:()=>KU,PIEBREAK:()=>wf,OneOfCard:()=>XU,MittContext:()=>E,IOEventsCard:()=>iH,HiddenCard:()=>pH,HTMLEmbedCard:()=>cH,FallbackContext:()=>F,DeviceStorageCard:()=>fU,CloudStorageCard:()=>UU,CentrifugeIOContext:()=>A,BoxCard:()=>TU,AutoRedirectCard:()=>nH,AjaxGroupCard:()=>zU});module.exports=dU(PZ);var b=require("react");var Wf=require("react"),x=Wf.createContext(null),s=()=>{let f=Wf.useContext(x);if(!f)throw Error("usePieConfig must be used within PieConfigProvider");return f},u=()=>{let{apiServer:f}=s();return f},Pf=u,g=()=>{let{centrifugeServer:f}=s();return f};var j=()=>{let{enableRenderingLog:f}=s();return f},GH=j,OH=()=>{let{pageProcessor:f}=s();return f};var wf="__piedemo__";var IH=require("react"),rf=require("centrifuge"),BH=new Map,c=(f,H)=>{if(!H)return null;let Z=`${f}::${H}`,U=BH.get(Z);if(U)return U;async function $(){let D=await fetch(f+"api/centrifuge/gen_token");if(!D.ok){if(D.status===403)throw new rf.Centrifuge.UnauthorizedError("Backend is not answering");throw Error(`Unexpected status code ${D.status}`)}return(await D.json()).token}let z=new rf.Centrifuge(H,{getToken:$});return BH.set(Z,z),z},oU=IH.createContext(null),A=oU;var QH=require("socket.io-client"),KH=require("react"),_H=new Map,h=(f)=>{let H=_H.get(f);if(H)return H;let Z=QH.io(f,{autoConnect:!1,transports:["websocket"]});return _H.set(f,Z),Z},bU=KH.createContext(null),y=bU;var WH=qH(require("mitt")),i=require("react"),nf=null;function o(){if(!nf)nf=WH.default();return nf}var PH=i.createContext(null);function wH(f){let H=i.useContext(PH);return i.useCallback((Z,U)=>{(H??o()).emit(`pie${Z}_${f}`,U)},[f,H])}var E=PH;var t=require("react/jsx-runtime"),uU=({card:f,data:H,children:Z,useSocketioSupport:U=!1,useCentrifugeSupport:$=!1,useMittSupport:z=!1,centrifugeChannel:D=void 0,methods:J=void 0,stored:V=void 0})=>{let T=GH(),X=b.useRef(J);if(X.current=J,T)console.log("[PieCard] Rendering card:",f),console.log("[PieCard] Card data:",H),console.log("[PieCard] Component name:",H?.name),console.log("[PieCard] Real-time support:",{socketio:U,centrifuge:$,mitt:z,centrifugeChannel:D}),console.log("[PieCard] Methods:",J?Object.keys(J):"none"),console.log("[PieCard] Has children:",!!Z);let B=b.useContext(y),Q=b.useContext(A),q=b.useContext(E);if(b.useEffect(()=>{if(!B||!U||!X.current||!H.name){if(T&&U)console.log("[PieCard] Socket.IO setup skipped:",{hasSocket:!!B,useSocketioSupport:U,hasMethods:!!X.current,hasDataName:!!H?.name});return}let I=Object.keys(X.current??{}).map((Y)=>{let O=`pie${Y}_${H.name}`;if(T)console.log(`[PieCard] Socket.IO registering event: ${O}`);let K=(_)=>{X.current?.[Y]?.(_)};return B.on(O,K),[O,K]});return()=>{I.forEach(([Y,O])=>{if(T)console.log(`[PieCard] Socket.IO unregistering event: ${Y}`);B.off(Y,O)})}},[B,H.name,U]),b.useEffect(()=>{if(!Q||!$||!D||!H.name){if(T&&$)console.log("[PieCard] Centrifuge setup skipped:",{hasCentrifuge:!!Q,useCentrifugeSupport:$,hasCentrifugeChannel:!!D,hasMethods:!!X.current,hasDataName:!!H?.name});return}let I=Object.keys(X.current??{}).map((Y)=>{let O=`pie${Y}_${H.name}_${D}`;if(T)console.log(`[PieCard] Centrifuge subscribing to channel: ${O}`);let K=Q.newSubscription(O);return K.on("publication",(_)=>{if(T)console.log(`[PieCard] Centrifuge received data on ${O}:`,_.data);X.current?.[Y]?.(_.data)}),K.subscribe(),K});return()=>{I.forEach((Y)=>{if(T)console.log("[PieCard] Centrifuge unsubscribing from channel");Y.unsubscribe(),Q.removeSubscription(Y)})}},[Q,D,H.name,$]),b.useEffect(()=>{if(!q||!z||!H.name){if(T&&z)console.log("[PieCard] Mitt setup skipped:",{hasMitt:!!q,useMittSupport:z,hasMethods:!!X.current,hasDataName:!!H?.name});return}let G=Object.keys(X.current??{}),I={};return G.forEach((Y)=>{let O=`pie${Y}_${H.name}`,K=(_)=>{if(T)console.log(`[PieCard] Mitt registering event: ${O}`);X.current?.[Y]?.(_)};I[O]=K,q.on(O,K)}),()=>{Object.entries(I).forEach(([Y,O])=>{if(T)console.log(`[PieCard] Mitt unregistering event: ${Y}`);q.off(Y,O)})}},[q,H.name,z]),T)console.log("[PieCard] Rendering complete, returning children");if(V!==void 0)return t.jsxs(t.Fragment,{children:[t.jsx("input",{type:"hidden",name:H.name,value:JSON.stringify(V)}),Z]});return Z},w=uU;var CH=require("react"),sf=new Map;function FH(f,H){return CH.lazy(()=>{if(sf.has(H))return sf.get(H);let Z=f().then((U)=>U);return sf.set(H,Z),Z})}var v=new Map,vU=(f)=>{if(!f.name)throw Error("Component registration requires a name");if(!f.component&&!f.loader)throw Error(`Component "${f.name}" requires component or loader`);let H={name:f.name,component:f.component,loader:f.loader,metadata:f.metadata,fallback:f.fallback,isLazy:!1};if(!H.component&&H.loader)H.component=FH(H.loader,f.name),H.loader=void 0,H.isLazy=!0;return H};function W(f){let H=vU(f);return v.set(H.name,H),H.component}var RH=(f)=>{f.forEach((H)=>W(H))},SH=(f)=>{v.delete(f)},LH=(f)=>{return v.has(f)},MH=(f)=>{return v.get(f)?.metadata},a=(f)=>{return v.get(f)},NH=()=>{return Array.from(v.keys())},AH=()=>{return v.size};var e=require("react");var yH=require("react"),Cf=require("react/jsx-runtime"),gU=yH.createContext(Cf.jsx(Cf.Fragment,{})),F=gU;var Ff=require("react/jsx-runtime");function cU({uiConfig:f,setUiAjaxConfiguration:H}){let Z=e.useContext(F),U=j();if(U)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:",!!H);let $=a(f.card);if(!$?.component){if(U)console.warn(`[UI] Component not found in registry: ${f.card}`),console.log("[UI] Returning fallback component");return Z}if(U)console.log("[UI] Found component in registry:",{name:$.name,isLazy:$.isLazy,hasMetadata:!!$.metadata});let z=$.component,D=Ff.jsx(z,{data:f.data,content:f.content,setUiAjaxConfiguration:H});if($.isLazy){if(U)console.log("[UI] Rendering lazy component with Suspense:",$.name);return Ff.jsx(e.Suspense,{fallback:$.fallback?Ff.jsx($.fallback,{}):Z,children:D},`${$.name}`)}if(U)console.log("[UI] Rendering component directly:",$.name);return D}var C=e.memo(cU);var Rf=require("react");var EH=require("react"),hU=EH.createContext(null),k=hU;var Xf=require("react/jsx-runtime");function kH({uiConfig:f,setUiAjaxConfiguration:H}){let Z=Rf.useContext(F),U=j();if(U)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:",!!H);let $=a(f.card);if(!$?.component){if(U)console.warn(`[UILoading] Component not found in registry: ${f.card}`),console.log("[UILoading] Returning fallback component");return Z}if(U)console.log("[UILoading] Found component in registry:",{name:$.name,isLazy:$.isLazy,hasMetadata:!!$.metadata,hasFallback:!!$.fallback});if($.fallback){if(U)console.log("[UILoading] Rendering fallback for:",$.name);let J=$.fallback;return Xf.jsx(J,{})}if(U)console.log("[UILoading] No fallback, rendering full component:",$.name);let z=$.component,D=Xf.jsx(k.Provider,{value:kH,children:Xf.jsx(z,{data:f.data,content:f.content,setUiAjaxConfiguration:H})});if($.isLazy)return Xf.jsx(Rf.Suspense,{fallback:Z,children:D},`${$.name}`);return D}var Sf=kH;var mH=require("react");var Lf=require("react/jsx-runtime"),pU=({data:f,content:H,setUiAjaxConfiguration:Z})=>{let{name:U,sx:$}=f,z=mH.useContext(k)??C;return Lf.jsx(w,{card:U,data:f,children:Lf.jsx("div",{style:$,id:U,children:H.map((D,J)=>{return Lf.jsx(z,{uiConfig:D,setUiAjaxConfiguration:Z},`children-${J}`)})})})},jH=pU;var dH=W({name:"SequenceCard",component:jH,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var xH=require("react");var tf=require("react/jsx-runtime"),lU=({data:f,content:H,setUiAjaxConfiguration:Z})=>{let{name:U}=f,$=xH.useContext(k)??C;return tf.jsx(w,{card:U,data:f,children:H.map((z,D)=>{return tf.jsx($,{uiConfig:z,setUiAjaxConfiguration:Z},`children-${D}`)})})},oH=lU;var bH=W({name:"UnionCard",component:oH,metadata:{author:"Swarm.ing",description:"Renders one of many components"}});var Mf=require("react"),uH=qH(require("html-react-parser"));var d=require("react");function rU(){let f=new AudioContext,H=f.createOscillator(),Z=H.connect(f.createMediaStreamDestination());H.start();let U=Z.stream.getAudioTracks()[0];return U.enabled=!1,U}function qf(f=null,H){let[Z,U]=d.useState(!1),$=d.useRef(null),z=d.useRef(null),D=d.useRef(null),J=d.useCallback(async(B,Q=!0)=>{if($.current)V();let q=new RTCPeerConnection;if(q.onconnectionstatechange=()=>{if(q.connectionState==="connected")U(!0);else if(["disconnected","failed","closed"].includes(q.connectionState))U(!1)},q.ontrack=(P)=>{if(f)f.srcObject=P.streams[0]},Q){let P=await navigator.mediaDevices.getUserMedia({audio:!0});q.addTrack(P.getTracks()[0],P)}else{let P=rU();q.addTrack(P)}let G=q.createDataChannel("oai-events");z.current=G,D.current=new Promise((P)=>{G.addEventListener("open",()=>{P()})});let I=await q.createOffer();await q.setLocalDescription(I);let _=await(await fetch(`${"https://api.openai.com/v1/realtime/calls"}?model=${"gpt-realtime"}`,{method:"POST",body:I.sdp,headers:{Authorization:`Bearer ${B}`,"Content-Type":"application/sdp"}})).text();await q.setRemoteDescription({type:"answer",sdp:_}),$.current=q,await D.current},[f]),V=d.useCallback(()=>{let B=z.current;if(B)B.close();$.current?.getSenders()?.forEach((Q)=>Q.track?.stop()),$.current?.close(),U(!1),$.current=null,z.current=null,D.current=null},[f]),T=d.useCallback((B)=>{let Q=z.current;if(!Q){console.error("Data channel is not ready",B);return}let q=new Date().toLocaleTimeString();if(B.event_id=B.event_id||crypto.randomUUID(),Q.send(JSON.stringify(B)),!B.timestamp)B.timestamp=q;H?.(B)},[H,f]),X=d.useCallback((B)=>{if(!z.current){console.error("Data channel is not ready");return}let q=()=>{T({type:"conversation.item.create",item:{type:"message",role:"user",content:[{type:"input_text",text:B}]}}),T({type:"response.create"})};if(D.current)D.current.then(q);else q()},[H,f]);return d.useEffect(()=>{let B=z.current;if(!B)return;let Q=(q)=>{let G=JSON.parse(q.data);if(!G.timestamp)G.timestamp=new Date().toLocaleTimeString();H?.(G)};return B.addEventListener("message",Q),()=>{B.removeEventListener("message",Q)}},[H,f]),{isSessionActive:Z,startSession:J,stopSession:V,sendTextMessage:X}}var gH=require("react/jsx-runtime"),nU=({data:f})=>{let{html:H,useSocketioSupport:Z,useCentrifugeSupport:U,useMittSupport:$,centrifugeChannel:z}=f,[D,J]=Mf.useState(H),{isSessionActive:V,startSession:T,sendTextMessage:X}=qf(null,(G)=>{if(console.log(G.type,G.type==="response.output_text.delta"&&G.delta),G.type==="response.output_text.delta"&&G.delta)J((I)=>I+G.delta)});return Mf.useEffect(()=>{J(H)},[H]),gH.jsx(w,{card:"HTMLEmbedCard",data:f,methods:{update:(G)=>{J(G.value)},generateUsingAI:async(G)=>{try{if(!V&&G.token)await T(G.token,!1);X(G.prompt)}catch(I){console.error("Failed to generate using AI",I)}},initializeAI:async(G)=>{if(!V&&G.token)await T(G.token,!1)}},useCentrifugeSupport:U,useSocketioSupport:Z,useMittSupport:$,centrifugeChannel:z,children:uH.default(D)})},vH=nU;var cH=W({name:"HTMLEmbedCard",component:vH,metadata:{author:"Swarm.ing"}});var Nf=require("react");var af=require("react/jsx-runtime"),sU=({data:f})=>{let{name:H,value:Z,useSocketioSupport:U,useCentrifugeSupport:$,useMittSupport:z,centrifugeChannel:D}=f,[J,V]=Nf.useState(Z);return Nf.useEffect(()=>{V(Z)},[Z]),af.jsx(w,{card:"HiddenCard",data:f,useSocketioSupport:U,useCentrifugeSupport:$,useMittSupport:z,centrifugeChannel:D,methods:{update:({value:T})=>{V(T)}},children:af.jsx("input",{type:"hidden",id:H,name:H,value:J})})},hH=sU;var pH=W({name:"HiddenCard",component:hH,metadata:{author:"Swarm.ing"}});var Gf=require("react");var lH=require("react"),iU=lH.createContext(void 0),m=iU;var Af=require("react/jsx-runtime"),tU=({data:f})=>{let{url:H}=f,Z=Gf.useContext(m),U=Gf.useContext(F);return Gf.useEffect(()=>{if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(H))window.location.href=H;else Z?.(H)},[H,Z]),Af.jsx(Af.Fragment,{children:U})},rH=tU;var nH=W({name:"AutoRedirectCard",component:rH,metadata:{author:"Swarm.ing"}});var p=require("react-toastify"),yf=require("react-toastify");var Hf=require("react");var ff=require("react/jsx-runtime"),aU={bounce:p.Bounce,slide:p.Slide,zoom:p.Zoom,flip:p.Flip},eU=(f)=>{let H={...f,type:f.alertType,transition:f.transition?aU[f.transition]:void 0,position:f.position??"bottom-right",autoClose:f.autoClose??3000,style:{backgroundColor:"black",...f.sx}};yf.toast(f.message,H)},fZ=(f)=>{console.log("Log event",f)},HZ=(f)=>{if(typeof window>"u"||!window.Notification){console.warn("[IOEventsCard] Notifications API is not available");return}let H=()=>{try{new window.Notification(f.title,{body:f.message??f.subtitle,icon:f.icon,silent:f.silent})}catch(U){console.error("[IOEventsCard] Failed to show notification",U)}},Z=window.Notification.permission;if(Z==="granted"){H();return}if(Z==="denied"){console.warn("[IOEventsCard] Notification permission denied");return}window.Notification.requestPermission().then((U)=>{if(U==="granted")H()})},UZ=({data:f})=>{let{useCentrifugeSupport:H,useSocketioSupport:Z,useMittSupport:U,centrifugeChannel:$}=f,z=Hf.useContext(m),D=Hf.useRef(z);D.current=z;let J=Hf.useMemo(()=>({alert:eU,log:fZ,push:HZ,redirect:(V)=>{if(V.to){let T=V.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(T))window.location.href=T;else D.current?.(T)}else window.location.reload()},reload:(V)=>{if(V.to){let T=V.to;if(/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test(T))window.location.href=T;else D.current?.(T)}else window.location.reload()}}),[]);return ff.jsx(ff.Fragment,{children:ff.jsx(w,{card:"IOEventsCard",data:f,useCentrifugeSupport:H,useSocketioSupport:Z,useMittSupport:U,centrifugeChannel:$,methods:J,children:ff.jsx(yf.ToastContainer,{})})})},sH=UZ;var iH=W({name:"IOEventsCard",component:sH,metadata:{author:"Swarm.ing"}});var Of=require("react");var ef=require("react/jsx-runtime"),ZZ=({data:f})=>{let{name:H,key:Z,value:U,useSocketioSupport:$,useCentrifugeSupport:z,useMittSupport:D,centrifugeChannel:J}=f,[V,T]=Of.useState(U);return Of.useEffect(()=>{T(U)},[U]),Of.useEffect(()=>{if(typeof window>"u")return;sessionStorage.setItem(Z,V)},[Z,V]),ef.jsx(w,{card:"SessionStorageCard",data:f,useSocketioSupport:$,useCentrifugeSupport:z,useMittSupport:D,centrifugeChannel:J,methods:{update:({value:X})=>{T(X)},remove:()=>{sessionStorage.removeItem(Z),T("")}},children:ef.jsx("input",{type:"hidden",id:H,name:H,value:V})})},tH=ZZ;var aH=W({name:"SessionStorageCard",component:tH,metadata:{author:"PieData"}});var Bf=require("react");var fH=require("react/jsx-runtime"),$Z=({data:f})=>{let{name:H,key:Z,value:U,useSocketioSupport:$,useCentrifugeSupport:z,useMittSupport:D,centrifugeChannel:J}=f,[V,T]=Bf.useState(U);return Bf.useEffect(()=>{T(U)},[U]),Bf.useEffect(()=>{if(typeof window>"u")return;localStorage.setItem(Z,V)},[Z,V]),fH.jsx(w,{card:"DeviceStorageCard",data:f,useSocketioSupport:$,useCentrifugeSupport:z,useMittSupport:D,centrifugeChannel:J,methods:{update:({value:X})=>{T(X)},remove:()=>{localStorage.removeItem(Z),T("")}},children:fH.jsx("input",{type:"hidden",id:H,name:H,value:V})})},eH=$Z;var fU=W({name:"DeviceStorageCard",component:eH,metadata:{author:"PieData"}});var If=require("react");var HH=require("react/jsx-runtime"),DZ=({data:f})=>{let{name:H,key:Z,value:U,useSocketioSupport:$,useCentrifugeSupport:z,useMittSupport:D,centrifugeChannel:J}=f,[V,T]=If.useState(U);return If.useEffect(()=>{T(U)},[U]),If.useEffect(()=>{if(typeof window>"u")return;let X=window.Telegram?.WebApp?.CloudStorage;if(!X)return;X.setItem(Z,V)},[Z,V]),HH.jsx(w,{card:"CloudStorageCard",data:f,useSocketioSupport:$,useCentrifugeSupport:z,useMittSupport:D,centrifugeChannel:J,methods:{update:({value:X})=>{T(X)},remove:()=>{let X=window.Telegram?.WebApp?.CloudStorage;if(X)X.removeItem(Z);T("")}},children:HH.jsx("input",{type:"hidden",id:H,name:H,value:V})})},HU=DZ;var UU=W({name:"CloudStorageCard",component:HU,metadata:{author:"PieData"}});var _f=require("react");var UH=require("react/jsx-runtime"),zZ=({data:f})=>{let{name:H,key:Z,value:U,useSocketioSupport:$,useCentrifugeSupport:z,useMittSupport:D,centrifugeChannel:J}=f,[V,T]=_f.useState(U);return _f.useEffect(()=>{T(U)},[U]),_f.useEffect(()=>{if(typeof window>"u")return;let X=window.Telegram?.WebApp?.SecureStorage;if(!X)return;X.setItem(Z,V)},[Z,V]),UH.jsx(w,{card:"SecureStorageCard",data:f,useSocketioSupport:$,useCentrifugeSupport:z,useMittSupport:D,centrifugeChannel:J,methods:{update:({value:X})=>{T(X)},remove:()=>{let X=window.Telegram?.WebApp?.SecureStorage;if(X)X.removeItem(Z);T("")}},children:UH.jsx("input",{type:"hidden",id:H,name:H,value:V})})},ZU=zZ;var $U=W({name:"SecureStorageCard",component:ZU,metadata:{author:"PieData"}});var M=require("react");var ZH=require("react/jsx-runtime"),VZ=({data:f,content:H})=>{let{useLoader:Z,noReturn:U,returnType:$,useSocketioSupport:z,useCentrifugeSupport:D,useMittSupport:J,centrifugeChannel:V}=f,T=M.useContext(F),X=M.useContext(k)??C,[B,Q]=M.useState(!1),[q,G]=M.useState(null),I=M.useRef(H),Y=M.useContext(E),O=M.useCallback((P)=>{if(P===null)Q(!0);else if(Q(!1),!U)I.current=P;if(!U)G(P)},[U]),K=M.useCallback((P)=>{I.current=P.content,G(P.content)},[]),_=M.useCallback((P)=>{if(P===null)Q(!0);else if(Q(!1),!U)for(let Qf of P)Y?.emit(Qf.name,Qf.data)},[U,Y]);if(M.useEffect(()=>{G(H),Q(!1)},[H]),!q&&Z)return T;return ZH.jsx(w,{card:"AjaxGroupCard",data:f,methods:{changeContent:K},useSocketioSupport:z,useCentrifugeSupport:D,useMittSupport:J,centrifugeChannel:V,children:ZH.jsx(X,{uiConfig:q??I.current,setUiAjaxConfiguration:$==="events"?_:O})})},DU=VZ;var zU=W({name:"AjaxGroupCard",component:DU,metadata:{author:"Swarm.ing",description:"Group card with AJAX support"}});var $H=require("react");var Ef=require("react/jsx-runtime"),TZ=({data:f,content:H,setUiAjaxConfiguration:Z})=>{let{name:U,url:$,sx:z}=f,D=$H.useContext(m),J=$H.useContext(k)??C;return Ef.jsx(w,{card:U,data:f,children:Ef.jsx("div",{style:z,id:U,onClick:(T)=>{if($)if(T.stopPropagation(),/^[a-zA-Z][a-zA-Z\d+\-.]*:\/\//.test($))window.location.href=$;else D?.($)},children:Ef.jsx(J,{setUiAjaxConfiguration:Z,uiConfig:H})})})},VU=TZ;var TU=W({name:"BoxCard",component:VU,metadata:{author:"Swarm.ing",description:"Simple div with styles joining few components"}});var JU=require("react");var kf=require("react/jsx-runtime"),JZ=({data:f,content:H,setUiAjaxConfiguration:Z})=>{let{name:U,sx:$}=f,z=JU.useContext(k)??C;return kf.jsx(w,{card:U,data:f,children:kf.jsx("div",{style:$,id:U,children:H.map((D,J)=>{return kf.jsx(z,{uiConfig:D,setUiAjaxConfiguration:Z},`children-${J}`)})})})},YU=JZ;var XU=W({name:"OneOfCard",component:YU,metadata:{author:"Swarm.ing",description:"Different variants"}});var Zf=require("react"),$f=require("@tanstack/react-query");var of=require("react");var df=require("react"),mf=new Map,jf=new Map;function xf(f,H){let Z=`${f}::${H}`,U=f?mf.get(Z):void 0,[$,z]=df.useState(U??null);return df.useEffect(()=>{if(!f)return;if(mf.has(Z)){z(mf.get(Z));return}let D=jf.get(Z);if(!D)D=fetch(f+`api/support/${H}`,{method:"GET"}).then((V)=>V.json()).then((V)=>{return mf.set(Z,V),jf.delete(Z),V}).catch((V)=>{throw jf.delete(Z),V}),jf.set(Z,D);let J=!1;return D.then((V)=>{if(!J)z(V)}).catch(()=>{}),()=>{J=!0}},[f,H,Z]),$}var DH=null,qU=null;function GU(){qU?.()}function zH(){if(typeof window>"u")return Promise.resolve();if(typeof window.sid<"u")return Promise.resolve();if(!DH)DH=new Promise((f)=>{qU=()=>{f()}});return DH}var YZ=({children:f})=>{let H=of.useContext(y),Z=Pf(),U=xf(Z,"socketIO"),$=(z)=>{if(typeof window<"u")window.sid=z.sid,GU(),console.log(`SocketIO initialized: ${window.sid}`)};return of.useEffect(()=>{if(!H)return;let z=()=>{console.log("SocketIO connected")},D=(J)=>{console.log(`SocketIO disconnected: ${J}`),H.connect()};if(U)H.on("pieinit",$),H.on("connect",z),H.on("disconnect",D),H.connect();return()=>{if(U)H.off("pieinit",$),H.off("connect",z),H.off("disconnect",D),H.disconnect()}},[H,U]),f},l=YZ;var bf=require("react");var XZ=({children:f})=>{let H=bf.useContext(A),Z=Pf(),U=xf(Z,"centrifuge");return bf.useEffect(()=>{if(!H)return;let $=()=>{console.log("Centrifuge connected")},z=(D)=>{console.log("Centrifuge disconnected:",D)};if(U)H.on("connected",$),H.on("disconnected",z),H.connect();return()=>{if(U)H.disconnect()}},[H,U]),f},r=XZ;var BU=require("axios-date-transformer");var OU=require("react/jsx-runtime");function Uf(f,H,Z){if(!H)return Z;let U=f.replace(/^\//,""),$=H[U];if(!$)return Z;return OU.jsx(Sf,{uiConfig:$})}var R=require("react/jsx-runtime"),qZ=({location:f,fallback:H,piecache:Z,onError:U,queryOptions:$,disableGlobalForm:z})=>{let D=u(),J=g(),V=j(),T=Zf.useMemo(()=>BU.createAxiosDateTransformer({baseURL:D||""}),[D]),X=Zf.useMemo(()=>o(),[]),B=Zf.useMemo(()=>D?h(D):null,[D]),Q=Zf.useMemo(()=>D?c(D,J):null,[D,J]),{data:q,isLoading:G,error:I}=$f.useQuery({queryKey:["uiConfig",f.pathname+f.search,D],enabled:!!D,queryFn:async()=>{let O=new URLSearchParams(f.search);O.set("__pieroot","web");let K="/api/content"+f.pathname+"?"+O.toString();if(V)console.log("[PieRoot] Fetching UI configuration from:",K);let _=await T.get(K,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(V)console.log("[PieRoot] Received UI configuration:",_.data);return _.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(O)=>Math.min(1000*2**O,30000),...$}),Y=Uf(f.pathname,Z,H);if(!D)return Y??null;if(V)console.log("[PieRoot] Rendering with location:",f),console.log("[PieRoot] API_SERVER:",D),console.log("[PieRoot] CENTRIFUGE_SERVER:",J),console.log("[PieRoot] Fallback provided:",!!H),console.log("[PieRoot] Piecache provided:",!!Z);if(I){if(V)console.error("[PieRoot] Error fetching UI configuration:",I),console.error("[PieRoot] Error details:",{message:I.message,status:I.response?.status,data:I.response?.data});return U?.(),Y}if(G||!q){if(V)console.log("[PieRoot] Loading state:",{isLoading:G,hasUiConfiguration:!!q});return Y}if(V)console.log("[PieRoot] UI configuration loaded successfully:",q),console.log("[PieRoot] Rendering UI with configuration");return R.jsx(E.Provider,{value:X,children:R.jsx(y.Provider,{value:B,children:R.jsx(A.Provider,{value:Q,children:R.jsx(F.Provider,{value:H??R.jsx(R.Fragment,{}),children:R.jsx(l,{children:R.jsx(r,{children:z?R.jsx(C,{uiConfig:q}):R.jsx("form",{id:"piedata_global_form",action:D+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:R.jsx(C,{uiConfig:q})})})})})})})})},GZ=(f)=>{let H=Zf.useMemo(()=>new $f.QueryClient,[]);return R.jsx(m.Provider,{value:f.onNavigate,children:R.jsx(x.Provider,{value:f.config,children:R.jsx($f.QueryClientProvider,{client:H,children:R.jsx(qZ,{...f})})})})},IU=GZ;var Df=require("react"),zf=require("@tanstack/react-query");var _U=require("axios-date-transformer");var uf=require("react");var vf=({onError:f}={})=>{let[H,Z]=uf.useState(null),U=OH();return uf.useEffect(()=>{if(typeof window>"u")return;let $=window.Telegram?.WebApp;if(!$)return;try{$.ready?.()}catch(z){f?.()}if(U==="telegram_expanded"&&($.platform==="ios"||$.platform==="android"))$.expand();Z($)},[]),H};var S=require("react/jsx-runtime"),OZ=({location:f,fallback:H,piecache:Z,onError:U,queryOptions:$,disableGlobalForm:z})=>{let D=u(),J=g(),V=j(),T=Df.useMemo(()=>_U.createAxiosDateTransformer({baseURL:D}),[D]),X=Df.useMemo(()=>o(),[]),B=Df.useMemo(()=>D?h(D):null,[D]),Q=Df.useMemo(()=>D?c(D,J):null,[D,J]),q=vf({onError:U}),{data:G,isLoading:I,error:Y}=zf.useQuery({queryKey:["uiConfig",f.pathname+f.search,q?.initData],enabled:!!q?.initData,queryFn:async()=>{let K=new URLSearchParams(f.search);if(K.set("__pieroot","telegram"),q?.initData)K.set("initData",q.initData);let _="/api/content"+f.pathname+"?"+K.toString();if(V)console.log("[PieRoot] Fetching UI configuration from:",_);let P=await T.get(_,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(V)console.log("[PieRoot] Received UI configuration:",P.data);return P.data},staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(K)=>Math.min(1000*2**K,30000),...$}),O=Uf(f.pathname,Z,H);if(!D)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(Y&&V)return console.error("[PieRoot] Error fetching UI configuration:",Y),console.error("[PieRoot] Error details:",{message:Y.message,status:Y.response?.status,data:Y.response?.data}),U?.(),O;if(I||!G){if(V)console.log("[PieRoot] Loading state:",{isLoading:I,hasUiConfiguration:!!G});return O}if(V)console.log("[PieRoot] UI configuration loaded successfully:",G),console.log("[PieRoot] Rendering UI with configuration");return S.jsx(E.Provider,{value:X,children:S.jsx(y.Provider,{value:B,children:S.jsx(A.Provider,{value:Q,children:S.jsx(F.Provider,{value:H??S.jsx(S.Fragment,{}),children:S.jsx(l,{children:S.jsx(r,{children:z?S.jsx(C,{uiConfig:G}):S.jsx("form",{id:"piedata_global_form",action:D+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:S.jsx(C,{uiConfig:G})})})})})})})})},BZ=(f)=>{let H=Df.useMemo(()=>new zf.QueryClient,[]);return S.jsx(m.Provider,{value:f.onNavigate,children:S.jsx(x.Provider,{value:f.config,children:S.jsx(zf.QueryClientProvider,{client:H,children:S.jsx(OZ,{...f})})})})},QU=BZ;var Vf=require("react"),gf=require("@tanstack/react-query");var N=require("react/jsx-runtime"),IZ=({location:f,fallback:H,children:Z,disableGlobalForm:U})=>{let $=u(),z=g(),D=j(),J=Vf.useMemo(()=>o(),[]),V=Vf.useMemo(()=>$?h($):null,[$]),T=Vf.useMemo(()=>$?c($,z):null,[$,z]);if(D)console.log("[PieRoot] Rendering with location:",f),console.log("[PieRoot] API_SERVER:",$),console.log("[PieRoot] CENTRIFUGE_SERVER:",z),console.log("[PieRoot] Fallback provided:",!!H);return N.jsx(E.Provider,{value:J,children:N.jsx(y.Provider,{value:V,children:N.jsx(A.Provider,{value:T,children:N.jsx(F.Provider,{value:H??N.jsx(N.Fragment,{}),children:N.jsx(l,{children:N.jsx(r,{children:U?Z:N.jsx("form",{id:"piedata_global_form",action:$+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:Z})})})})})})})},_Z=(f)=>{let[H]=Vf.useState(()=>new gf.QueryClient);return N.jsx(m.Provider,{value:f.onNavigate,children:N.jsx(x.Provider,{value:f.config,children:N.jsx(gf.QueryClientProvider,{client:H,children:N.jsx(IZ,{...f})})})})},KU=_Z;var Tf=require("react"),Jf=require("@tanstack/react-query");var WU=require("axios-date-transformer");var cf=require("react"),hf=()=>{let[f,H]=cf.useState(null);return cf.useEffect(()=>{if(typeof window>"u")return;let Z=window.WebApp;if(!Z)return;Z.ready(),H(Z)},[]),f};var L=require("react/jsx-runtime"),QZ=({location:f,fallback:H,piecache:Z,onError:U,queryOptions:$,disableGlobalForm:z})=>{let D=u(),J=g(),V=j(),T=Tf.useMemo(()=>WU.createAxiosDateTransformer({baseURL:D}),[D]),X=Tf.useMemo(()=>o(),[]),B=Tf.useMemo(()=>D?h(D):null,[D]),Q=Tf.useMemo(()=>D?c(D,J):null,[D,J]),q=hf(),{data:G,isLoading:I,error:Y}=Jf.useQuery({queryKey:["uiConfig",f.pathname+f.search,q?.initData],queryFn:async()=>{let K=new URLSearchParams(f.search);if(K.set("__pieroot","max"),q?.initData)K.set("initData",q.initData);let _="/api/content"+f.pathname+"?"+K.toString();if(V)console.log("[PieRoot] Fetching UI configuration from:",_);let P=await T.get(_,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET,PUT,POST,DELETE,PATCH,OPTIONS","Content-type":"application/json"},withCredentials:!0});if(V)console.log("[PieRoot] Received UI configuration:",P.data);return P.data},enabled:!!q?.initData,staleTime:1/0,gcTime:1/0,refetchOnWindowFocus:!1,refetchOnMount:!1,refetchOnReconnect:!1,retry:!0,retryDelay:(K)=>Math.min(1000*2**K,30000),...$}),O=Uf(f.pathname,Z,H);if(!D)throw Error("Set PIE_API_SERVER and PIE_CENTRIFUGE_SERVER");if(Y&&V)return console.error("[PieRoot] Error fetching UI configuration:",Y),console.error("[PieRoot] Error details:",{message:Y.message,status:Y.response?.status,data:Y.response?.data}),U?.(),O;if(I||!G){if(V)console.log("[PieRoot] Loading state:",{isLoading:I,hasUiConfiguration:!!G});return O}if(V)console.log("[PieRoot] UI configuration loaded successfully:",G),console.log("[PieRoot] Rendering UI with configuration");return L.jsx(E.Provider,{value:X,children:L.jsx(y.Provider,{value:B,children:L.jsx(A.Provider,{value:Q,children:L.jsx(F.Provider,{value:H??L.jsx(L.Fragment,{}),children:L.jsx(l,{children:L.jsx(r,{children:z?L.jsx(C,{uiConfig:G}):L.jsx("form",{id:"piedata_global_form",action:D+"api/process"+f.pathname,method:"post",encType:"multipart/form-data",children:L.jsx(C,{uiConfig:G})})})})})})})})},KZ=(f)=>{let H=Tf.useMemo(()=>new Jf.QueryClient,[]);return L.jsx(m.Provider,{value:f.onNavigate,children:L.jsx(x.Provider,{value:f.config,children:L.jsx(Jf.QueryClientProvider,{client:H,children:L.jsx(QZ,{...f})})})})},PU=KZ;var wU=require("react"),VH=(f,H=!1)=>{if(f==="sid"){if(!window.sid)throw Error("SocketIO isn't initialized properly");return[window.sid]}let Z=document.getElementsByName(f);if(!Z.length){if(H)console.warn(`No input found with name ${f}`);return[]}let U=Z[0];if(U instanceof HTMLInputElement){if(U.type==="file"&&U.files)return Array.from(U.files);return[U.value]}if(U instanceof HTMLTextAreaElement)return[U.value];return[]},WZ=(f,H={},Z=[],U,$)=>{let z=$?.renderingLogEnabled??!1,D=$?.timeout,J=$?.retryPolicy,V=J?.maxRetries??0,T=J?.baseDelay??1000,X=J?.retryOn??[502,503,504];if(z)console.log("Registering AJAX: ",U,H,Z);return async(B={})=>{if(typeof window>"u"||typeof document>"u"){if(z)console.warn("getAjaxSubmit called on server, skipping DOM-dependent logic");return}let Q=$?.apiServer;if(!Q){if(z)console.warn("AJAX skipped: apiServer is missing");return}if(!U||!f){if(z)console.warn("AJAX skipped: pathname or setUiAjaxConfiguration is missing");return}if(Z.includes("sid"))await zH();let q=new FormData;for(let[Y,O]of Object.entries({...H,...B}))q.append(Y,O);for(let Y of Z)for(let O of VH(Y,z))q.append(Y,O);let G=Q+"api/ajax_content"+U;f(null);let I;for(let Y=0;Y<=V;Y++){if(Y>0){let _=T*2**(Y-1);if(z)console.log(`AJAX retry ${Y}/${V} after ${_}ms`);await new Promise((P)=>setTimeout(P,_))}let O=D!=null?new AbortController:null,K=O&&setTimeout(()=>O.abort(),D);try{let _=await fetch(G,{method:"POST",body:q,signal:O?.signal});if(K)clearTimeout(K);if(!_.ok&&X.includes(_.status)&&Y<V){I=Error(`HTTP ${_.status}`);continue}let Qf=(_.headers.get("content-type")||"").includes("application/json");if(!!_.body?.getReader&&!Qf){let Kf=_.body.getReader(),NU=new TextDecoder,n="";while(!0){let{done:pf,value:AU}=await Kf.read();if(pf)break;n+=NU.decode(AU,{stream:!0});let TH=n.split(`
3
+ `);n=TH.pop()??"";for(let yU of TH){let lf=yU.trim();if(!lf)continue;try{let EU=JSON.parse(lf);f([EU])}catch{if(z)console.warn("Failed to parse streamed line:",lf)}}}if(n.trim())try{let pf=JSON.parse(n);f([pf])}catch{if(z)console.warn("Failed to parse final streamed line:",n)}return{}}else{let Kf=await _.json();return f(Kf),Kf}}catch(_){if(K)clearTimeout(K);if(I=_,Y<V)continue;if(z)console.error("AJAX request failed:",_);return f(null),_}}if(z)console.error("AJAX request failed after retries:",I);return f(null),I}},CU=(f,H={},Z=[],U,$)=>{let{apiServer:z,enableRenderingLog:D}=s(),J=JSON.stringify(H),V=JSON.stringify(Z),T=JSON.stringify($);return wU.useMemo(()=>WZ(f,H,Z,U,{apiServer:z,renderingLogEnabled:D,timeout:$?.timeout,retryPolicy:$?.retryPolicy}),[f,J,V,U,z,D,T])};var FU=require("clsx"),RU=require("tailwind-merge");function SU(...f){return RU.twMerge(FU.clsx(f))}var LU=()=>{if(typeof document>"u")return;let f=document.getElementById("piedata_global_form");f&&f.submit()};var MU=(f,H)=>`${f}${wf}${H}`;
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- export{r as withPieCard,d as usePieStorybookEmitter,P as firePieMethod,i as PieStorybookProviders,t as PieStorybookChannelBridge,s as PieMethodTrigger,p as PIE_STORYBOOK_FIRE_EVENT,a as PIECARD_PARAM_KEY};
2
+ import{createContext as D,useContext as _,useEffect as K,useMemo as I,useRef as Y}from"react";import{QueryClient as z,QueryClientProvider as J}from"@tanstack/react-query";import U from"mitt";import{MittContext as V,SocketIOContext as W,CentrifugeIOContext as X,FallbackContext as Z,PieConfigContext as $}from"@swarm.ing/pieui";var h="piecard",A="piecard/fire";import{jsx as P,jsxs as L,Fragment as H}from"react/jsx-runtime";var g={apiServer:"",centrifugeServer:"",enableRenderingLog:!1,pageProcessor:""},M={current:null},q=()=>{if(!M.current)M.current=new z({defaultOptions:{queries:{retry:!1,staleTime:1/0}}});return M.current},R=D(null),k=()=>{let p=_(R);if(!p)throw Error("usePieStorybookEmitter must be used inside <PieStorybookProviders />");return p},b=({children:p,emitter:o,pieConfig:r})=>{let s=I(()=>o??U(),[o]),d=I(()=>({...g,...r??{}}),[r]);return P(J,{client:q(),children:P($.Provider,{value:d,children:P(Z.Provider,{value:P(H,{}),children:P(R.Provider,{value:s,children:P(V.Provider,{value:s,children:P(W.Provider,{value:null,children:P(X.Provider,{value:null,children:p})})})})})})})},G=(p)=>L(b,{children:[P(y,{}),P(p,{})]}),c=(p,o)=>`pie${o}_${p}`,T=(p,o,r,s)=>{p.emit(c(o,r),s)},i=({card:p,method:o,payload:r,label:s})=>{let d=k();return P("button",{type:"button",onClick:()=>T(d,p,o,r),style:{padding:"6px 12px",marginRight:8,marginBottom:8,fontSize:12,border:"1px solid #ccc",borderRadius:4,cursor:"pointer",background:"#f7f7f7"},children:s??`${p}.${o}`})},v=()=>{return globalThis.__STORYBOOK_ADDONS_CHANNEL__??null},y=()=>{let p=k(),o=Y(p);return o.current=p,K(()=>{let r=v();if(!r)return;let s=(...d)=>{let w=d[0];if(!w||!w.card||!w.method)return;T(o.current,w.card,w.method,w.payload)};return r.on(A,s),()=>r.off(A,s)},[]),null};export{G as withPieCard,k as usePieStorybookEmitter,T as firePieMethod,b as PieStorybookProviders,y as PieStorybookChannelBridge,i as PieMethodTrigger,A as PIE_STORYBOOK_FIRE_EVENT,h as PIECARD_PARAM_KEY};