@whop/embedded-components-react-js 0.0.5-beta.1 → 0.0.5-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -10,6 +10,8 @@ export { TotalBalanceBreakdownElement } from './payouts/elements/total-balance-b
10
10
  export { PendingBalanceBreakdownElement } from './payouts/elements/pending-balance-breakdown.js';
11
11
  export { RegularReserveBalanceBreakdownElement } from './payouts/elements/regular-reserve-balance-breakdown.js';
12
12
  export { BnplReserveBalanceBreakdownElement } from './payouts/elements/bnpl-reserve-balance-breakdown.js';
13
+ export { GenerateWithdrawalReceiptElement } from './payouts/elements/generate-withdrawal-receipt.js';
14
+ export { StatusBannerElement } from './payouts/elements/status-banner.js';
13
15
  export { usePayoutsSessionRef } from './payouts/use-session-ref.js';
14
16
  export { Elements, useElements } from './provider.js';
15
17
  import '@whop/embedded-components-vanilla-js/types';
@@ -0,0 +1,16 @@
1
+ import { GenerateWithdrawalReceiptElementOptions } from '@whop/embedded-components-vanilla-js/types';
2
+ import React__default from 'react';
3
+
4
+ declare function GenerateWithdrawalReceiptElement({ options, className, style, onReady, fallback, }: {
5
+ options: GenerateWithdrawalReceiptElementOptions;
6
+ className?: string;
7
+ style?: React__default.CSSProperties;
8
+ onReady?: () => void;
9
+ fallback?: React__default.ReactNode;
10
+ }): React__default.JSX.Element;
11
+ declare namespace GenerateWithdrawalReceiptElement {
12
+ var displayName: string;
13
+ var type: "generate-withdrawal-receipt-element";
14
+ }
15
+
16
+ export { GenerateWithdrawalReceiptElement };
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ "use client";
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __export = (target, all) => {
10
+ for (var name in all)
11
+ __defProp(target, name, { get: all[name], enumerable: true });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from))
16
+ if (!__hasOwnProp.call(to, key) && key !== except)
17
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
+ }
19
+ return to;
20
+ };
21
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
+ // If the importer is in node compatibility mode or this is not an ESM
23
+ // file that has been converted to a CommonJS file using a Babel-
24
+ // compatible transform (i.e. "__esModule" has not been set), then set
25
+ // "default" to the CommonJS "module.exports" for node compatibility.
26
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
+ mod
28
+ ));
29
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
+ var generate_withdrawal_receipt_exports = {};
31
+ __export(generate_withdrawal_receipt_exports, {
32
+ GenerateWithdrawalReceiptElement: () => GenerateWithdrawalReceiptElement
33
+ });
34
+ module.exports = __toCommonJS(generate_withdrawal_receipt_exports);
35
+ var import_react = __toESM(require("react"));
36
+ var import_use_element_snapshot = require("../../lib/use-element-snapshot");
37
+ var import_session = require("../session");
38
+ function GenerateWithdrawalReceiptElement({
39
+ options,
40
+ className,
41
+ style,
42
+ onReady,
43
+ fallback
44
+ }) {
45
+ const payoutsSession = (0, import_session.usePayoutsSession)();
46
+ const ref = (0, import_react.useRef)(null);
47
+ const element = (0, import_react.useMemo)(() => {
48
+ if (!payoutsSession) return null;
49
+ const createdElement = payoutsSession.createElement(
50
+ GenerateWithdrawalReceiptElement,
51
+ options
52
+ );
53
+ return createdElement;
54
+ }, [payoutsSession]);
55
+ const elementSnapshot = (0, import_use_element_snapshot.useElementSnapshot)(element);
56
+ const isReady = elementSnapshot?.state === "ready";
57
+ (0, import_react.useEffect)(() => {
58
+ if (!element) return;
59
+ element.updateOptions(options);
60
+ }, [options, element]);
61
+ (0, import_react.useEffect)(() => {
62
+ if (!element || !onReady) return;
63
+ element.on("ready", onReady);
64
+ return () => {
65
+ element.off("ready", onReady);
66
+ };
67
+ }, [element, onReady]);
68
+ (0, import_react.useLayoutEffect)(() => {
69
+ if (!element || !ref.current) return;
70
+ element.mount(ref.current);
71
+ return () => {
72
+ element.unmount();
73
+ };
74
+ }, [element, ref.current]);
75
+ return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(
76
+ "div",
77
+ {
78
+ style: { ...style, visibility: isReady ? void 0 : "hidden" },
79
+ className,
80
+ ref
81
+ }
82
+ ), !isReady && (fallback ?? null));
83
+ }
84
+ GenerateWithdrawalReceiptElement.displayName = "GenerateWithdrawalReceiptElement";
85
+ GenerateWithdrawalReceiptElement.type = "generate-withdrawal-receipt-element";
86
+ //# sourceMappingURL=generate-withdrawal-receipt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/payouts/elements/generate-withdrawal-receipt.tsx"],"sourcesContent":["\"use client\";\n\nimport type { GenerateWithdrawalReceiptElementOptions } from \"@whop/embedded-components-vanilla-js/types\";\n\nimport React, { useEffect, useLayoutEffect, useMemo, useRef } from \"react\";\nimport { useElementSnapshot } from \"../../lib/use-element-snapshot\";\nimport { usePayoutsSession } from \"../session\";\n\nexport function GenerateWithdrawalReceiptElement({\n\toptions,\n\tclassName,\n\tstyle,\n\tonReady,\n\tfallback,\n}: {\n\toptions: GenerateWithdrawalReceiptElementOptions;\n\tclassName?: string;\n\tstyle?: React.CSSProperties;\n\tonReady?: () => void;\n\tfallback?: React.ReactNode;\n}) {\n\tconst payoutsSession = usePayoutsSession();\n\tconst ref = useRef<HTMLDivElement>(null);\n\tconst element = useMemo(() => {\n\t\tif (!payoutsSession) return null;\n\t\tconst createdElement = payoutsSession.createElement(\n\t\t\tGenerateWithdrawalReceiptElement,\n\t\t\toptions,\n\t\t);\n\t\treturn createdElement;\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [payoutsSession]);\n\n\tconst elementSnapshot = useElementSnapshot(element);\n\n\tconst isReady = elementSnapshot?.state === \"ready\";\n\n\tuseEffect(() => {\n\t\tif (!element) return;\n\t\telement.updateOptions(options);\n\t}, [options, element]);\n\n\tuseEffect(() => {\n\t\tif (!element || !onReady) return;\n\t\telement.on(\"ready\", onReady);\n\t\treturn () => {\n\t\t\telement.off(\"ready\", onReady);\n\t\t};\n\t}, [element, onReady]);\n\n\tuseLayoutEffect(() => {\n\t\tif (!element || !ref.current) return;\n\t\telement.mount(ref.current);\n\t\treturn () => {\n\t\t\telement.unmount();\n\t\t};\n\t}, [element, ref.current]);\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tstyle={{ ...style, visibility: isReady ? undefined : \"hidden\" }}\n\t\t\t\tclassName={className}\n\t\t\t\tref={ref}\n\t\t\t/>\n\t\t\t{!isReady && (fallback ?? null)}\n\t\t</>\n\t);\n}\n\nGenerateWithdrawalReceiptElement.displayName =\n\t\"GenerateWithdrawalReceiptElement\";\nGenerateWithdrawalReceiptElement.type =\n\t\"generate-withdrawal-receipt-element\" as const;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,mBAAmE;AACnE,kCAAmC;AACnC,qBAAkC;AAE3B,SAAS,iCAAiC;AAAA,EAChD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAMG;AACF,QAAM,qBAAiB,kCAAkB;AACzC,QAAM,UAAM,qBAAuB,IAAI;AACvC,QAAM,cAAU,sBAAQ,MAAM;AAC7B,QAAI,CAAC,eAAgB,QAAO;AAC5B,UAAM,iBAAiB,eAAe;AAAA,MACrC;AAAA,MACA;AAAA,IACD;AACA,WAAO;AAAA,EAER,GAAG,CAAC,cAAc,CAAC;AAEnB,QAAM,sBAAkB,gDAAmB,OAAO;AAElD,QAAM,UAAU,iBAAiB,UAAU;AAE3C,8BAAU,MAAM;AACf,QAAI,CAAC,QAAS;AACd,YAAQ,cAAc,OAAO;AAAA,EAC9B,GAAG,CAAC,SAAS,OAAO,CAAC;AAErB,8BAAU,MAAM;AACf,QAAI,CAAC,WAAW,CAAC,QAAS;AAC1B,YAAQ,GAAG,SAAS,OAAO;AAC3B,WAAO,MAAM;AACZ,cAAQ,IAAI,SAAS,OAAO;AAAA,IAC7B;AAAA,EACD,GAAG,CAAC,SAAS,OAAO,CAAC;AAErB,oCAAgB,MAAM;AACrB,QAAI,CAAC,WAAW,CAAC,IAAI,QAAS;AAC9B,YAAQ,MAAM,IAAI,OAAO;AACzB,WAAO,MAAM;AACZ,cAAQ,QAAQ;AAAA,IACjB;AAAA,EACD,GAAG,CAAC,SAAS,IAAI,OAAO,CAAC;AAEzB,SACC,6BAAAA,QAAA,2BAAAA,QAAA,gBACC,6BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACA,OAAO,EAAE,GAAG,OAAO,YAAY,UAAU,SAAY,SAAS;AAAA,MAC9D;AAAA,MACA;AAAA;AAAA,EACD,GACC,CAAC,YAAY,YAAY,KAC3B;AAEF;AAEA,iCAAiC,cAChC;AACD,iCAAiC,OAChC;","names":["React"]}
@@ -0,0 +1,56 @@
1
+ "use client";
2
+ import "../../chunk-NSSMTXJJ.mjs";
3
+ import React, { useEffect, useLayoutEffect, useMemo, useRef } from "react";
4
+ import { useElementSnapshot } from "../../lib/use-element-snapshot.mjs";
5
+ import { usePayoutsSession } from "../session.mjs";
6
+ function GenerateWithdrawalReceiptElement({ options, className, style, onReady, fallback }) {
7
+ const payoutsSession = usePayoutsSession();
8
+ const ref = useRef(null);
9
+ const element = useMemo(()=>{
10
+ if (!payoutsSession) return null;
11
+ const createdElement = payoutsSession.createElement(GenerateWithdrawalReceiptElement, options);
12
+ return createdElement;
13
+ }, [
14
+ payoutsSession
15
+ ]);
16
+ const elementSnapshot = useElementSnapshot(element);
17
+ const isReady = elementSnapshot?.state === "ready";
18
+ useEffect(()=>{
19
+ if (!element) return;
20
+ element.updateOptions(options);
21
+ }, [
22
+ options,
23
+ element
24
+ ]);
25
+ useEffect(()=>{
26
+ if (!element || !onReady) return;
27
+ element.on("ready", onReady);
28
+ return ()=>{
29
+ element.off("ready", onReady);
30
+ };
31
+ }, [
32
+ element,
33
+ onReady
34
+ ]);
35
+ useLayoutEffect(()=>{
36
+ if (!element || !ref.current) return;
37
+ element.mount(ref.current);
38
+ return ()=>{
39
+ element.unmount();
40
+ };
41
+ }, [
42
+ element,
43
+ ref.current
44
+ ]);
45
+ return React.createElement(React.Fragment, null, React.createElement("div", {
46
+ style: {
47
+ ...style,
48
+ visibility: isReady ? void 0 : "hidden"
49
+ },
50
+ className,
51
+ ref
52
+ }), !isReady && (fallback ?? null));
53
+ }
54
+ GenerateWithdrawalReceiptElement.displayName = "GenerateWithdrawalReceiptElement";
55
+ GenerateWithdrawalReceiptElement.type = "generate-withdrawal-receipt-element";
56
+ export { GenerateWithdrawalReceiptElement };
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/payouts/elements/generate-withdrawal-receipt.tsx"],"sourcesContent":["\"use client\";\n\nimport type { GenerateWithdrawalReceiptElementOptions } from \"@whop/embedded-components-vanilla-js/types\";\n\nimport React, { useEffect, useLayoutEffect, useMemo, useRef } from \"react\";\nimport { useElementSnapshot } from \"../../lib/use-element-snapshot\";\nimport { usePayoutsSession } from \"../session\";\n\nexport function GenerateWithdrawalReceiptElement({\n\toptions,\n\tclassName,\n\tstyle,\n\tonReady,\n\tfallback,\n}: {\n\toptions: GenerateWithdrawalReceiptElementOptions;\n\tclassName?: string;\n\tstyle?: React.CSSProperties;\n\tonReady?: () => void;\n\tfallback?: React.ReactNode;\n}) {\n\tconst payoutsSession = usePayoutsSession();\n\tconst ref = useRef<HTMLDivElement>(null);\n\tconst element = useMemo(() => {\n\t\tif (!payoutsSession) return null;\n\t\tconst createdElement = payoutsSession.createElement(\n\t\t\tGenerateWithdrawalReceiptElement,\n\t\t\toptions,\n\t\t);\n\t\treturn createdElement;\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [payoutsSession]);\n\n\tconst elementSnapshot = useElementSnapshot(element);\n\n\tconst isReady = elementSnapshot?.state === \"ready\";\n\n\tuseEffect(() => {\n\t\tif (!element) return;\n\t\telement.updateOptions(options);\n\t}, [options, element]);\n\n\tuseEffect(() => {\n\t\tif (!element || !onReady) return;\n\t\telement.on(\"ready\", onReady);\n\t\treturn () => {\n\t\t\telement.off(\"ready\", onReady);\n\t\t};\n\t}, [element, onReady]);\n\n\tuseLayoutEffect(() => {\n\t\tif (!element || !ref.current) return;\n\t\telement.mount(ref.current);\n\t\treturn () => {\n\t\t\telement.unmount();\n\t\t};\n\t}, [element, ref.current]);\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tstyle={{ ...style, visibility: isReady ? undefined : \"hidden\" }}\n\t\t\t\tclassName={className}\n\t\t\t\tref={ref}\n\t\t\t/>\n\t\t\t{!isReady && (fallback ?? null)}\n\t\t</>\n\t);\n}\n\nGenerateWithdrawalReceiptElement.displayName =\n\t\"GenerateWithdrawalReceiptElement\";\nGenerateWithdrawalReceiptElement.type =\n\t\"generate-withdrawal-receipt-element\" as const;\n"],"mappings":";;AAIA,OAAO,SAAS,WAAW,iBAAiB,SAAS,cAAc;AACnE,SAAS,0BAA0B;AACnC,SAAS,yBAAyB;AAE3B,SAAS,iCAAiC;AAAA,EAChD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAMG;AACF,QAAM,iBAAiB,kBAAkB;AACzC,QAAM,MAAM,OAAuB,IAAI;AACvC,QAAM,UAAU,QAAQ,MAAM;AAC7B,QAAI,CAAC,eAAgB,QAAO;AAC5B,UAAM,iBAAiB,eAAe;AAAA,MACrC;AAAA,MACA;AAAA,IACD;AACA,WAAO;AAAA,EAER,GAAG,CAAC,cAAc,CAAC;AAEnB,QAAM,kBAAkB,mBAAmB,OAAO;AAElD,QAAM,UAAU,iBAAiB,UAAU;AAE3C,YAAU,MAAM;AACf,QAAI,CAAC,QAAS;AACd,YAAQ,cAAc,OAAO;AAAA,EAC9B,GAAG,CAAC,SAAS,OAAO,CAAC;AAErB,YAAU,MAAM;AACf,QAAI,CAAC,WAAW,CAAC,QAAS;AAC1B,YAAQ,GAAG,SAAS,OAAO;AAC3B,WAAO,MAAM;AACZ,cAAQ,IAAI,SAAS,OAAO;AAAA,IAC7B;AAAA,EACD,GAAG,CAAC,SAAS,OAAO,CAAC;AAErB,kBAAgB,MAAM;AACrB,QAAI,CAAC,WAAW,CAAC,IAAI,QAAS;AAC9B,YAAQ,MAAM,IAAI,OAAO;AACzB,WAAO,MAAM;AACZ,cAAQ,QAAQ;AAAA,IACjB;AAAA,EACD,GAAG,CAAC,SAAS,IAAI,OAAO,CAAC;AAEzB,SACC,0DACC;AAAA,IAAC;AAAA;AAAA,MACA,OAAO,EAAE,GAAG,OAAO,YAAY,UAAU,SAAY,SAAS;AAAA,MAC9D;AAAA,MACA;AAAA;AAAA,EACD,GACC,CAAC,YAAY,YAAY,KAC3B;AAEF;AAEA,iCAAiC,cAChC;AACD,iCAAiC,OAChC;","names":[]}
@@ -9,5 +9,7 @@ export { TotalBalanceBreakdownElement } from './total-balance-breakdown.js';
9
9
  export { PendingBalanceBreakdownElement } from './pending-balance-breakdown.js';
10
10
  export { RegularReserveBalanceBreakdownElement } from './regular-reserve-balance-breakdown.js';
11
11
  export { BnplReserveBalanceBreakdownElement } from './bnpl-reserve-balance-breakdown.js';
12
+ export { GenerateWithdrawalReceiptElement } from './generate-withdrawal-receipt.js';
13
+ export { StatusBannerElement } from './status-banner.js';
12
14
  import '@whop/embedded-components-vanilla-js/types';
13
15
  import 'react';
@@ -26,4 +26,6 @@ __reExport(elements_exports, require("./total-balance-breakdown"), module.export
26
26
  __reExport(elements_exports, require("./pending-balance-breakdown"), module.exports);
27
27
  __reExport(elements_exports, require("./regular-reserve-balance-breakdown"), module.exports);
28
28
  __reExport(elements_exports, require("./bnpl-reserve-balance-breakdown"), module.exports);
29
+ __reExport(elements_exports, require("./generate-withdrawal-receipt"), module.exports);
30
+ __reExport(elements_exports, require("./status-banner"), module.exports);
29
31
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/payouts/elements/index.tsx"],"sourcesContent":["export * from \"./balance\";\nexport * from \"./change-account-country\";\nexport * from \"./reset-account\";\nexport * from \"./verify\";\nexport * from \"./withdraw-button\";\nexport * from \"./withdrawal-breakdown\";\nexport * from \"./withdrawals\";\nexport * from \"./total-balance-breakdown\";\nexport * from \"./pending-balance-breakdown\";\nexport * from \"./regular-reserve-balance-breakdown\";\nexport * from \"./bnpl-reserve-balance-breakdown\";\n"],"mappings":";;;;;;;;;;;;;;;AAAA;AAAA;AAAA,6BAAc,sBAAd;AACA,6BAAc,qCADd;AAEA,6BAAc,4BAFd;AAGA,6BAAc,qBAHd;AAIA,6BAAc,8BAJd;AAKA,6BAAc,mCALd;AAMA,6BAAc,0BANd;AAOA,6BAAc,sCAPd;AAQA,6BAAc,wCARd;AASA,6BAAc,gDATd;AAUA,6BAAc,6CAVd;","names":[]}
1
+ {"version":3,"sources":["../../../src/payouts/elements/index.tsx"],"sourcesContent":["export * from \"./balance\";\nexport * from \"./change-account-country\";\nexport * from \"./reset-account\";\nexport * from \"./verify\";\nexport * from \"./withdraw-button\";\nexport * from \"./withdrawal-breakdown\";\nexport * from \"./withdrawals\";\nexport * from \"./total-balance-breakdown\";\nexport * from \"./pending-balance-breakdown\";\nexport * from \"./regular-reserve-balance-breakdown\";\nexport * from \"./bnpl-reserve-balance-breakdown\";\nexport * from \"./generate-withdrawal-receipt\";\nexport * from \"./status-banner\";\n"],"mappings":";;;;;;;;;;;;;;;AAAA;AAAA;AAAA,6BAAc,sBAAd;AACA,6BAAc,qCADd;AAEA,6BAAc,4BAFd;AAGA,6BAAc,qBAHd;AAIA,6BAAc,8BAJd;AAKA,6BAAc,mCALd;AAMA,6BAAc,0BANd;AAOA,6BAAc,sCAPd;AAQA,6BAAc,wCARd;AASA,6BAAc,gDATd;AAUA,6BAAc,6CAVd;AAWA,6BAAc,0CAXd;AAYA,6BAAc,4BAZd;","names":[]}
@@ -9,3 +9,5 @@ export * from "./total-balance-breakdown.mjs";
9
9
  export * from "./pending-balance-breakdown.mjs";
10
10
  export * from "./regular-reserve-balance-breakdown.mjs";
11
11
  export * from "./bnpl-reserve-balance-breakdown.mjs";
12
+ export * from "./generate-withdrawal-receipt.mjs";
13
+ export * from "./status-banner.mjs";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/payouts/elements/index.tsx"],"sourcesContent":["export * from \"./balance\";\nexport * from \"./change-account-country\";\nexport * from \"./reset-account\";\nexport * from \"./verify\";\nexport * from \"./withdraw-button\";\nexport * from \"./withdrawal-breakdown\";\nexport * from \"./withdrawals\";\nexport * from \"./total-balance-breakdown\";\nexport * from \"./pending-balance-breakdown\";\nexport * from \"./regular-reserve-balance-breakdown\";\nexport * from \"./bnpl-reserve-balance-breakdown\";\n"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
1
+ {"version":3,"sources":["../../../src/payouts/elements/index.tsx"],"sourcesContent":["export * from \"./balance\";\nexport * from \"./change-account-country\";\nexport * from \"./reset-account\";\nexport * from \"./verify\";\nexport * from \"./withdraw-button\";\nexport * from \"./withdrawal-breakdown\";\nexport * from \"./withdrawals\";\nexport * from \"./total-balance-breakdown\";\nexport * from \"./pending-balance-breakdown\";\nexport * from \"./regular-reserve-balance-breakdown\";\nexport * from \"./bnpl-reserve-balance-breakdown\";\nexport * from \"./generate-withdrawal-receipt\";\nexport * from \"./status-banner\";\n"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
@@ -0,0 +1,18 @@
1
+ import { StatusBannerElementOptions, StatusBannerType } from '@whop/embedded-components-vanilla-js/types';
2
+ import React__default from 'react';
3
+
4
+ declare function StatusBannerElement({ options, className, style, onReady, onVerifyClick, onBannerChange, fallback, }: {
5
+ options?: StatusBannerElementOptions;
6
+ className?: string;
7
+ style?: React__default.CSSProperties;
8
+ onReady?: () => void;
9
+ onVerifyClick?: (ev: CustomEvent) => void;
10
+ onBannerChange?: (ev: CustomEvent, bannerType: StatusBannerType) => void;
11
+ fallback?: React__default.ReactNode;
12
+ }): React__default.JSX.Element;
13
+ declare namespace StatusBannerElement {
14
+ var displayName: string;
15
+ var type: "status-banner-element";
16
+ }
17
+
18
+ export { StatusBannerElement };
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ "use client";
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __export = (target, all) => {
10
+ for (var name in all)
11
+ __defProp(target, name, { get: all[name], enumerable: true });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from))
16
+ if (!__hasOwnProp.call(to, key) && key !== except)
17
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
+ }
19
+ return to;
20
+ };
21
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
+ // If the importer is in node compatibility mode or this is not an ESM
23
+ // file that has been converted to a CommonJS file using a Babel-
24
+ // compatible transform (i.e. "__esModule" has not been set), then set
25
+ // "default" to the CommonJS "module.exports" for node compatibility.
26
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
+ mod
28
+ ));
29
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
+ var status_banner_exports = {};
31
+ __export(status_banner_exports, {
32
+ StatusBannerElement: () => StatusBannerElement
33
+ });
34
+ module.exports = __toCommonJS(status_banner_exports);
35
+ var import_react = __toESM(require("react"));
36
+ var import_use_element_snapshot = require("../../lib/use-element-snapshot");
37
+ var import_session = require("../session");
38
+ function StatusBannerElement({
39
+ options = {},
40
+ className,
41
+ style,
42
+ onReady,
43
+ onVerifyClick,
44
+ onBannerChange,
45
+ fallback
46
+ }) {
47
+ const payoutsSession = (0, import_session.usePayoutsSession)();
48
+ const ref = (0, import_react.useRef)(null);
49
+ const element = (0, import_react.useMemo)(() => {
50
+ if (!payoutsSession) return null;
51
+ const createdElement = payoutsSession.createElement(
52
+ StatusBannerElement,
53
+ options
54
+ );
55
+ return createdElement;
56
+ }, [payoutsSession]);
57
+ const elementSnapshot = (0, import_use_element_snapshot.useElementSnapshot)(element);
58
+ const isReady = elementSnapshot?.state === "ready";
59
+ (0, import_react.useEffect)(() => {
60
+ if (!element) return;
61
+ element.updateOptions(options);
62
+ }, [options, element]);
63
+ (0, import_react.useEffect)(() => {
64
+ if (!element || !onReady) return;
65
+ element.on("ready", onReady);
66
+ return () => {
67
+ element.off("ready", onReady);
68
+ };
69
+ }, [element, onReady]);
70
+ (0, import_react.useEffect)(() => {
71
+ if (!element || !onVerifyClick) return;
72
+ element.on("verifyClick", onVerifyClick);
73
+ return () => {
74
+ element.off("verifyClick", onVerifyClick);
75
+ };
76
+ }, [element, onVerifyClick]);
77
+ (0, import_react.useEffect)(() => {
78
+ if (!element || !onBannerChange) return;
79
+ element.on("bannerChange", onBannerChange);
80
+ return () => {
81
+ element.off("bannerChange", onBannerChange);
82
+ };
83
+ }, [element, onBannerChange]);
84
+ (0, import_react.useLayoutEffect)(() => {
85
+ if (!element || !ref.current) return;
86
+ element.mount(ref.current);
87
+ return () => {
88
+ element.unmount();
89
+ };
90
+ }, [element, ref.current]);
91
+ return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(
92
+ "div",
93
+ {
94
+ style: { ...style, visibility: isReady ? void 0 : "hidden" },
95
+ className,
96
+ ref
97
+ }
98
+ ), !isReady && (fallback ?? null));
99
+ }
100
+ StatusBannerElement.displayName = "StatusBannerElement";
101
+ StatusBannerElement.type = "status-banner-element";
102
+ //# sourceMappingURL=status-banner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/payouts/elements/status-banner.tsx"],"sourcesContent":["\"use client\";\n\nimport type {\n\tStatusBannerElementOptions,\n\tStatusBannerType,\n} from \"@whop/embedded-components-vanilla-js/types\";\n\nimport React, { useEffect, useLayoutEffect, useMemo, useRef } from \"react\";\nimport { useElementSnapshot } from \"../../lib/use-element-snapshot\";\nimport { usePayoutsSession } from \"../session\";\n\nexport function StatusBannerElement({\n\toptions = {},\n\tclassName,\n\tstyle,\n\tonReady,\n\tonVerifyClick,\n\tonBannerChange,\n\tfallback,\n}: {\n\toptions?: StatusBannerElementOptions;\n\tclassName?: string;\n\tstyle?: React.CSSProperties;\n\tonReady?: () => void;\n\tonVerifyClick?: (ev: CustomEvent) => void;\n\tonBannerChange?: (ev: CustomEvent, bannerType: StatusBannerType) => void;\n\tfallback?: React.ReactNode;\n}) {\n\tconst payoutsSession = usePayoutsSession();\n\tconst ref = useRef<HTMLDivElement>(null);\n\tconst element = useMemo(() => {\n\t\tif (!payoutsSession) return null;\n\t\tconst createdElement = payoutsSession.createElement(\n\t\t\tStatusBannerElement,\n\t\t\toptions,\n\t\t);\n\t\treturn createdElement;\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [payoutsSession]);\n\n\tconst elementSnapshot = useElementSnapshot(element);\n\n\tconst isReady = elementSnapshot?.state === \"ready\";\n\n\tuseEffect(() => {\n\t\tif (!element) return;\n\t\telement.updateOptions(options);\n\t}, [options, element]);\n\n\tuseEffect(() => {\n\t\tif (!element || !onReady) return;\n\t\telement.on(\"ready\", onReady);\n\t\treturn () => {\n\t\t\telement.off(\"ready\", onReady);\n\t\t};\n\t}, [element, onReady]);\n\n\tuseEffect(() => {\n\t\tif (!element || !onVerifyClick) return;\n\t\telement.on(\"verifyClick\", onVerifyClick);\n\t\treturn () => {\n\t\t\telement.off(\"verifyClick\", onVerifyClick);\n\t\t};\n\t}, [element, onVerifyClick]);\n\n\tuseEffect(() => {\n\t\tif (!element || !onBannerChange) return;\n\t\telement.on(\"bannerChange\", onBannerChange);\n\t\treturn () => {\n\t\t\telement.off(\"bannerChange\", onBannerChange);\n\t\t};\n\t}, [element, onBannerChange]);\n\n\tuseLayoutEffect(() => {\n\t\tif (!element || !ref.current) return;\n\t\telement.mount(ref.current);\n\t\treturn () => {\n\t\t\telement.unmount();\n\t\t};\n\t}, [element, ref.current]);\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tstyle={{ ...style, visibility: isReady ? undefined : \"hidden\" }}\n\t\t\t\tclassName={className}\n\t\t\t\tref={ref}\n\t\t\t/>\n\t\t\t{!isReady && (fallback ?? null)}\n\t\t</>\n\t);\n}\n\nStatusBannerElement.displayName = \"StatusBannerElement\";\nStatusBannerElement.type = \"status-banner-element\" as const;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,mBAAmE;AACnE,kCAAmC;AACnC,qBAAkC;AAE3B,SAAS,oBAAoB;AAAA,EACnC,UAAU,CAAC;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAQG;AACF,QAAM,qBAAiB,kCAAkB;AACzC,QAAM,UAAM,qBAAuB,IAAI;AACvC,QAAM,cAAU,sBAAQ,MAAM;AAC7B,QAAI,CAAC,eAAgB,QAAO;AAC5B,UAAM,iBAAiB,eAAe;AAAA,MACrC;AAAA,MACA;AAAA,IACD;AACA,WAAO;AAAA,EAER,GAAG,CAAC,cAAc,CAAC;AAEnB,QAAM,sBAAkB,gDAAmB,OAAO;AAElD,QAAM,UAAU,iBAAiB,UAAU;AAE3C,8BAAU,MAAM;AACf,QAAI,CAAC,QAAS;AACd,YAAQ,cAAc,OAAO;AAAA,EAC9B,GAAG,CAAC,SAAS,OAAO,CAAC;AAErB,8BAAU,MAAM;AACf,QAAI,CAAC,WAAW,CAAC,QAAS;AAC1B,YAAQ,GAAG,SAAS,OAAO;AAC3B,WAAO,MAAM;AACZ,cAAQ,IAAI,SAAS,OAAO;AAAA,IAC7B;AAAA,EACD,GAAG,CAAC,SAAS,OAAO,CAAC;AAErB,8BAAU,MAAM;AACf,QAAI,CAAC,WAAW,CAAC,cAAe;AAChC,YAAQ,GAAG,eAAe,aAAa;AACvC,WAAO,MAAM;AACZ,cAAQ,IAAI,eAAe,aAAa;AAAA,IACzC;AAAA,EACD,GAAG,CAAC,SAAS,aAAa,CAAC;AAE3B,8BAAU,MAAM;AACf,QAAI,CAAC,WAAW,CAAC,eAAgB;AACjC,YAAQ,GAAG,gBAAgB,cAAc;AACzC,WAAO,MAAM;AACZ,cAAQ,IAAI,gBAAgB,cAAc;AAAA,IAC3C;AAAA,EACD,GAAG,CAAC,SAAS,cAAc,CAAC;AAE5B,oCAAgB,MAAM;AACrB,QAAI,CAAC,WAAW,CAAC,IAAI,QAAS;AAC9B,YAAQ,MAAM,IAAI,OAAO;AACzB,WAAO,MAAM;AACZ,cAAQ,QAAQ;AAAA,IACjB;AAAA,EACD,GAAG,CAAC,SAAS,IAAI,OAAO,CAAC;AAEzB,SACC,6BAAAA,QAAA,2BAAAA,QAAA,gBACC,6BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACA,OAAO,EAAE,GAAG,OAAO,YAAY,UAAU,SAAY,SAAS;AAAA,MAC9D;AAAA,MACA;AAAA;AAAA,EACD,GACC,CAAC,YAAY,YAAY,KAC3B;AAEF;AAEA,oBAAoB,cAAc;AAClC,oBAAoB,OAAO;","names":["React"]}
@@ -0,0 +1,76 @@
1
+ "use client";
2
+ import "../../chunk-NSSMTXJJ.mjs";
3
+ import React, { useEffect, useLayoutEffect, useMemo, useRef } from "react";
4
+ import { useElementSnapshot } from "../../lib/use-element-snapshot.mjs";
5
+ import { usePayoutsSession } from "../session.mjs";
6
+ function StatusBannerElement({ options = {}, className, style, onReady, onVerifyClick, onBannerChange, fallback }) {
7
+ const payoutsSession = usePayoutsSession();
8
+ const ref = useRef(null);
9
+ const element = useMemo(()=>{
10
+ if (!payoutsSession) return null;
11
+ const createdElement = payoutsSession.createElement(StatusBannerElement, options);
12
+ return createdElement;
13
+ }, [
14
+ payoutsSession
15
+ ]);
16
+ const elementSnapshot = useElementSnapshot(element);
17
+ const isReady = elementSnapshot?.state === "ready";
18
+ useEffect(()=>{
19
+ if (!element) return;
20
+ element.updateOptions(options);
21
+ }, [
22
+ options,
23
+ element
24
+ ]);
25
+ useEffect(()=>{
26
+ if (!element || !onReady) return;
27
+ element.on("ready", onReady);
28
+ return ()=>{
29
+ element.off("ready", onReady);
30
+ };
31
+ }, [
32
+ element,
33
+ onReady
34
+ ]);
35
+ useEffect(()=>{
36
+ if (!element || !onVerifyClick) return;
37
+ element.on("verifyClick", onVerifyClick);
38
+ return ()=>{
39
+ element.off("verifyClick", onVerifyClick);
40
+ };
41
+ }, [
42
+ element,
43
+ onVerifyClick
44
+ ]);
45
+ useEffect(()=>{
46
+ if (!element || !onBannerChange) return;
47
+ element.on("bannerChange", onBannerChange);
48
+ return ()=>{
49
+ element.off("bannerChange", onBannerChange);
50
+ };
51
+ }, [
52
+ element,
53
+ onBannerChange
54
+ ]);
55
+ useLayoutEffect(()=>{
56
+ if (!element || !ref.current) return;
57
+ element.mount(ref.current);
58
+ return ()=>{
59
+ element.unmount();
60
+ };
61
+ }, [
62
+ element,
63
+ ref.current
64
+ ]);
65
+ return React.createElement(React.Fragment, null, React.createElement("div", {
66
+ style: {
67
+ ...style,
68
+ visibility: isReady ? void 0 : "hidden"
69
+ },
70
+ className,
71
+ ref
72
+ }), !isReady && (fallback ?? null));
73
+ }
74
+ StatusBannerElement.displayName = "StatusBannerElement";
75
+ StatusBannerElement.type = "status-banner-element";
76
+ export { StatusBannerElement };
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/payouts/elements/status-banner.tsx"],"sourcesContent":["\"use client\";\n\nimport type {\n\tStatusBannerElementOptions,\n\tStatusBannerType,\n} from \"@whop/embedded-components-vanilla-js/types\";\n\nimport React, { useEffect, useLayoutEffect, useMemo, useRef } from \"react\";\nimport { useElementSnapshot } from \"../../lib/use-element-snapshot\";\nimport { usePayoutsSession } from \"../session\";\n\nexport function StatusBannerElement({\n\toptions = {},\n\tclassName,\n\tstyle,\n\tonReady,\n\tonVerifyClick,\n\tonBannerChange,\n\tfallback,\n}: {\n\toptions?: StatusBannerElementOptions;\n\tclassName?: string;\n\tstyle?: React.CSSProperties;\n\tonReady?: () => void;\n\tonVerifyClick?: (ev: CustomEvent) => void;\n\tonBannerChange?: (ev: CustomEvent, bannerType: StatusBannerType) => void;\n\tfallback?: React.ReactNode;\n}) {\n\tconst payoutsSession = usePayoutsSession();\n\tconst ref = useRef<HTMLDivElement>(null);\n\tconst element = useMemo(() => {\n\t\tif (!payoutsSession) return null;\n\t\tconst createdElement = payoutsSession.createElement(\n\t\t\tStatusBannerElement,\n\t\t\toptions,\n\t\t);\n\t\treturn createdElement;\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [payoutsSession]);\n\n\tconst elementSnapshot = useElementSnapshot(element);\n\n\tconst isReady = elementSnapshot?.state === \"ready\";\n\n\tuseEffect(() => {\n\t\tif (!element) return;\n\t\telement.updateOptions(options);\n\t}, [options, element]);\n\n\tuseEffect(() => {\n\t\tif (!element || !onReady) return;\n\t\telement.on(\"ready\", onReady);\n\t\treturn () => {\n\t\t\telement.off(\"ready\", onReady);\n\t\t};\n\t}, [element, onReady]);\n\n\tuseEffect(() => {\n\t\tif (!element || !onVerifyClick) return;\n\t\telement.on(\"verifyClick\", onVerifyClick);\n\t\treturn () => {\n\t\t\telement.off(\"verifyClick\", onVerifyClick);\n\t\t};\n\t}, [element, onVerifyClick]);\n\n\tuseEffect(() => {\n\t\tif (!element || !onBannerChange) return;\n\t\telement.on(\"bannerChange\", onBannerChange);\n\t\treturn () => {\n\t\t\telement.off(\"bannerChange\", onBannerChange);\n\t\t};\n\t}, [element, onBannerChange]);\n\n\tuseLayoutEffect(() => {\n\t\tif (!element || !ref.current) return;\n\t\telement.mount(ref.current);\n\t\treturn () => {\n\t\t\telement.unmount();\n\t\t};\n\t}, [element, ref.current]);\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tstyle={{ ...style, visibility: isReady ? undefined : \"hidden\" }}\n\t\t\t\tclassName={className}\n\t\t\t\tref={ref}\n\t\t\t/>\n\t\t\t{!isReady && (fallback ?? null)}\n\t\t</>\n\t);\n}\n\nStatusBannerElement.displayName = \"StatusBannerElement\";\nStatusBannerElement.type = \"status-banner-element\" as const;\n"],"mappings":";;AAOA,OAAO,SAAS,WAAW,iBAAiB,SAAS,cAAc;AACnE,SAAS,0BAA0B;AACnC,SAAS,yBAAyB;AAE3B,SAAS,oBAAoB;AAAA,EACnC,UAAU,CAAC;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAQG;AACF,QAAM,iBAAiB,kBAAkB;AACzC,QAAM,MAAM,OAAuB,IAAI;AACvC,QAAM,UAAU,QAAQ,MAAM;AAC7B,QAAI,CAAC,eAAgB,QAAO;AAC5B,UAAM,iBAAiB,eAAe;AAAA,MACrC;AAAA,MACA;AAAA,IACD;AACA,WAAO;AAAA,EAER,GAAG,CAAC,cAAc,CAAC;AAEnB,QAAM,kBAAkB,mBAAmB,OAAO;AAElD,QAAM,UAAU,iBAAiB,UAAU;AAE3C,YAAU,MAAM;AACf,QAAI,CAAC,QAAS;AACd,YAAQ,cAAc,OAAO;AAAA,EAC9B,GAAG,CAAC,SAAS,OAAO,CAAC;AAErB,YAAU,MAAM;AACf,QAAI,CAAC,WAAW,CAAC,QAAS;AAC1B,YAAQ,GAAG,SAAS,OAAO;AAC3B,WAAO,MAAM;AACZ,cAAQ,IAAI,SAAS,OAAO;AAAA,IAC7B;AAAA,EACD,GAAG,CAAC,SAAS,OAAO,CAAC;AAErB,YAAU,MAAM;AACf,QAAI,CAAC,WAAW,CAAC,cAAe;AAChC,YAAQ,GAAG,eAAe,aAAa;AACvC,WAAO,MAAM;AACZ,cAAQ,IAAI,eAAe,aAAa;AAAA,IACzC;AAAA,EACD,GAAG,CAAC,SAAS,aAAa,CAAC;AAE3B,YAAU,MAAM;AACf,QAAI,CAAC,WAAW,CAAC,eAAgB;AACjC,YAAQ,GAAG,gBAAgB,cAAc;AACzC,WAAO,MAAM;AACZ,cAAQ,IAAI,gBAAgB,cAAc;AAAA,IAC3C;AAAA,EACD,GAAG,CAAC,SAAS,cAAc,CAAC;AAE5B,kBAAgB,MAAM;AACrB,QAAI,CAAC,WAAW,CAAC,IAAI,QAAS;AAC9B,YAAQ,MAAM,IAAI,OAAO;AACzB,WAAO,MAAM;AACZ,cAAQ,QAAQ;AAAA,IACjB;AAAA,EACD,GAAG,CAAC,SAAS,IAAI,OAAO,CAAC;AAEzB,SACC,0DACC;AAAA,IAAC;AAAA;AAAA,MACA,OAAO,EAAE,GAAG,OAAO,YAAY,UAAU,SAAY,SAAS;AAAA,MAC9D;AAAA,MACA;AAAA;AAAA,EACD,GACC,CAAC,YAAY,YAAY,KAC3B;AAEF;AAEA,oBAAoB,cAAc;AAClC,oBAAoB,OAAO;","names":[]}
@@ -10,5 +10,7 @@ export { TotalBalanceBreakdownElement } from './elements/total-balance-breakdown
10
10
  export { PendingBalanceBreakdownElement } from './elements/pending-balance-breakdown.js';
11
11
  export { RegularReserveBalanceBreakdownElement } from './elements/regular-reserve-balance-breakdown.js';
12
12
  export { BnplReserveBalanceBreakdownElement } from './elements/bnpl-reserve-balance-breakdown.js';
13
+ export { GenerateWithdrawalReceiptElement } from './elements/generate-withdrawal-receipt.js';
14
+ export { StatusBannerElement } from './elements/status-banner.js';
13
15
  import '@whop/embedded-components-vanilla-js/types';
14
16
  import 'react';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@whop/embedded-components-react-js",
3
- "version": "0.0.5-beta.1",
3
+ "version": "0.0.5-beta.3",
4
4
  "description": "React components for Whop.js",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",
@@ -21,7 +21,7 @@
21
21
  "access": "public"
22
22
  },
23
23
  "peerDependencies": {
24
- "@whop/embedded-components-vanilla-js": "^0.0.5-beta.1",
24
+ "@whop/embedded-components-vanilla-js": "^0.0.5-beta.3",
25
25
  "react": ">=16.8.0 <20.0.0",
26
26
  "react-dom": ">=16.8.0 <20.0.0"
27
27
  }
package/package.json.temp CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@whop/embedded-components-react-js",
3
3
  "private": true,
4
- "version": "0.0.5-beta.1",
4
+ "version": "0.0.5-beta.3",
5
5
  "description": "React components for Whop.js",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist/index.mjs",