atlas-react-widget 0.1.2 → 0.1.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.es.js +8 -5
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.es.js
CHANGED
|
@@ -312,11 +312,14 @@ const oe = (o, f) => {
|
|
|
312
312
|
})
|
|
313
313
|
}
|
|
314
314
|
)).json();
|
|
315
|
-
n.valid
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
315
|
+
if (!n.valid) {
|
|
316
|
+
i({
|
|
317
|
+
status: "error",
|
|
318
|
+
message: "Failed to initialize payment",
|
|
319
|
+
error: n.error || "Invalid Auth Key"
|
|
320
|
+
});
|
|
321
|
+
return;
|
|
322
|
+
}
|
|
320
323
|
const y = await fetch(
|
|
321
324
|
"https://api.atlascard.xyz/api/credentials/get",
|
|
322
325
|
{
|
package/dist/index.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../node_modules/react/cjs/react-jsx-runtime.production.js","../node_modules/react/cjs/react-jsx-runtime.development.js","../node_modules/react/jsx-runtime.js","../src/hooks/useAtlasPayment.ts","../src/components/AtlasPaymentStatus.tsx","../src/components/AtlasPaymentForm.tsx","../src/assets/Icon.tsx","../src/components/AtlasPaymentButton.tsx"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Provider\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(\n type,\n key,\n self,\n source,\n owner,\n props,\n debugStack,\n debugTask\n ) {\n self = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== self ? self : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n source,\n self,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n self,\n source,\n getOwner(),\n maybeKey,\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_ELEMENT_TYPE &&\n node._store &&\n (node._store.validated = 1);\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n Symbol.for(\"react.provider\");\n var REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React.react_stack_bottom_frame.bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey, source, self) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.jsxs = function (type, config, maybeKey, source, self) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","// hooks/useAtlasPayment.ts\r\nimport { useState, useEffect, useCallback, useRef } from \"react\";\r\nimport type {\r\n PaymentType,\r\n ValidationResponse,\r\n DecryptedCredentials,\r\n} from \"../types\";\r\n\r\ninterface PaymentStatus {\r\n status:\r\n | \"idle\"\r\n | \"loading\"\r\n | \"validating\"\r\n | \"ready\"\r\n | \"popup_open\"\r\n | \"processing\"\r\n | \"success\"\r\n | \"error\";\r\n message: string;\r\n transactionHash?: string;\r\n error?: string;\r\n}\r\n\r\ninterface PaymentData {\r\n cardId?: string;\r\n businessAddress?: string;\r\n userAddress?: string;\r\n identifier?: string;\r\n credentials?: DecryptedCredentials;\r\n isValid: boolean;\r\n isLoading: boolean;\r\n}\r\n\r\ninterface PopupMessage {\r\n type: \"payment_result\" | \"payment_error\" | \"close_popup\";\r\n status?: \"success\" | \"failed\";\r\n transactionHash?: string;\r\n amount?: string;\r\n merchant?: string;\r\n paymentType?: string;\r\n error?: string;\r\n}\r\n\r\nexport const useAtlasPayment = (authKey: string, paymentType: PaymentType) => {\r\n const [status, setStatus] = useState<PaymentStatus>({\r\n status: \"idle\",\r\n message: \"Ready to pay\",\r\n });\r\n const [paymentData, setPaymentData] = useState<PaymentData>({\r\n isValid: false,\r\n isLoading: true,\r\n });\r\n const popupRef = useRef<Window | null>(null);\r\n const paymentPromiseRef = useRef<{\r\n resolve: (value: any) => void;\r\n reject: (reason?: any) => void;\r\n } | null>(null);\r\n\r\n // Automatically validate and fetch credentials when authKey or paymentType changes\r\n useEffect(() => {\r\n const initializePayment = async () => {\r\n if (!authKey) {\r\n setPaymentData({\r\n isValid: false,\r\n isLoading: false,\r\n });\r\n setStatus({\r\n status: \"error\",\r\n message: \"No auth key provided\",\r\n });\r\n return;\r\n }\r\n\r\n setPaymentData((prev) => ({ ...prev, isLoading: true }));\r\n setStatus({\r\n status: \"loading\",\r\n message: \"Loading payment information...\",\r\n });\r\n\r\n try {\r\n // Step 1: Validate auth key\r\n const validationResponse = await fetch(\r\n \"https://api.atlascard.xyz/api/auth/external/validate\",\r\n {\r\n method: \"POST\",\r\n headers: { \"Content-Type\": \"application/json\" },\r\n body: JSON.stringify({\r\n key: authKey,\r\n required_scopes: [paymentType],\r\n }),\r\n }\r\n );\r\n\r\n const validationData: ValidationResponse =\r\n await validationResponse.json();\r\n\r\n if (!validationData.valid) {\r\n setStatus({\r\n status: \"error\",\r\n message: \"Failed to initialize payment\",\r\n error: validationData.error || \"Invalid Auth Key\",\r\n });\r\n }\r\n\r\n // Step 2: Get credentials\r\n const credentialsResponse = await fetch(\r\n \"https://api.atlascard.xyz/api/credentials/get\",\r\n {\r\n method: \"POST\",\r\n headers: { \"Content-Type\": \"application/json\" },\r\n body: JSON.stringify({\r\n auth_key: authKey,\r\n required_scopes: [paymentType],\r\n }),\r\n }\r\n );\r\n\r\n if (!credentialsResponse.ok) {\r\n throw new Error(\"Failed to fetch credentials\");\r\n }\r\n\r\n const credentialsData: DecryptedCredentials =\r\n await credentialsResponse.json();\r\n\r\n const updatedPaymentData = {\r\n cardId: validationData.cardId,\r\n businessAddress: validationData.businessAddress,\r\n userAddress: credentialsData.address,\r\n identifier: credentialsData.identifier,\r\n credentials: credentialsData,\r\n isValid: true,\r\n isLoading: false,\r\n };\r\n\r\n setPaymentData(updatedPaymentData);\r\n setStatus({\r\n status: \"ready\",\r\n message: \"Ready to process payment\",\r\n });\r\n } catch (error) {\r\n console.error(\"Payment initialization error:\", error);\r\n const errorData = {\r\n isValid: false,\r\n isLoading: false,\r\n };\r\n setPaymentData(errorData);\r\n setStatus({\r\n status: \"error\",\r\n message: \"Failed to initialize payment\",\r\n error: error instanceof Error ? error.message : \"Unknown error\",\r\n });\r\n }\r\n };\r\n\r\n initializePayment();\r\n }, [authKey, paymentType]);\r\n\r\n // Listen for messages from popup\r\n useEffect(() => {\r\n const handleMessage = (event: MessageEvent) => {\r\n // Security: Only accept messages from Atlascard.xyz\r\n if (event.origin !== \"https://atlascard.xyz\") return;\r\n\r\n const data: PopupMessage = event.data;\r\n\r\n switch (data.type) {\r\n case \"payment_result\":\r\n if (data.status === \"success\") {\r\n setStatus({\r\n status: \"success\",\r\n message: \"Payment successful!\",\r\n transactionHash: data.transactionHash,\r\n });\r\n\r\n // Resolve the promise\r\n if (paymentPromiseRef.current) {\r\n paymentPromiseRef.current.resolve({\r\n success: true,\r\n transactionHash: data.transactionHash,\r\n amount: data.amount,\r\n merchant: data.merchant,\r\n type: data.paymentType,\r\n paymentData,\r\n });\r\n paymentPromiseRef.current = null;\r\n }\r\n\r\n // Close the popup\r\n if (popupRef.current) {\r\n setTimeout(() => {\r\n popupRef.current?.close();\r\n popupRef.current = null;\r\n }, 3000); // Give user time to see success message\r\n }\r\n } else {\r\n setStatus({\r\n status: \"error\",\r\n message: data.error || \"Payment failed\",\r\n error: data.error,\r\n });\r\n\r\n // Reject the promise\r\n if (paymentPromiseRef.current) {\r\n paymentPromiseRef.current.reject(\r\n new Error(data.error || \"Payment failed\")\r\n );\r\n paymentPromiseRef.current = null;\r\n }\r\n\r\n // Close the popup after a delay\r\n if (popupRef.current) {\r\n setTimeout(() => {\r\n popupRef.current?.close();\r\n popupRef.current = null;\r\n }, 3000);\r\n }\r\n }\r\n break;\r\n\r\n case \"payment_error\":\r\n setStatus({\r\n status: \"error\",\r\n message: data.error || \"Payment failed\",\r\n error: data.error,\r\n });\r\n\r\n if (paymentPromiseRef.current) {\r\n paymentPromiseRef.current.reject(\r\n new Error(data.error || \"Payment failed\")\r\n );\r\n paymentPromiseRef.current = null;\r\n }\r\n\r\n if (popupRef.current) {\r\n popupRef.current.close();\r\n popupRef.current = null;\r\n }\r\n break;\r\n\r\n case \"close_popup\":\r\n if (popupRef.current) {\r\n popupRef.current.close();\r\n popupRef.current = null;\r\n }\r\n\r\n // If still in popup_open status, user closed manually\r\n if (status.status === \"popup_open\") {\r\n setStatus({\r\n status: \"ready\",\r\n message: \"Payment cancelled\",\r\n });\r\n\r\n if (paymentPromiseRef.current) {\r\n paymentPromiseRef.current.reject(\r\n new Error(\"Payment cancelled by user\")\r\n );\r\n paymentPromiseRef.current = null;\r\n }\r\n }\r\n break;\r\n }\r\n };\r\n\r\n window.addEventListener(\"message\", handleMessage);\r\n return () => window.removeEventListener(\"message\", handleMessage);\r\n }, [paymentData, status.status]);\r\n\r\n // Check if popup was closed by user\r\n useEffect(() => {\r\n if (!popupRef.current) return;\r\n\r\n const checkPopup = setInterval(() => {\r\n if (popupRef.current?.closed) {\r\n clearInterval(checkPopup);\r\n\r\n // If still in popup_open status, user closed manually\r\n if (status.status === \"popup_open\") {\r\n setStatus({\r\n status: \"ready\",\r\n message: \"Payment cancelled\",\r\n });\r\n\r\n if (paymentPromiseRef.current) {\r\n paymentPromiseRef.current.reject(\r\n new Error(\"Payment cancelled by user\")\r\n );\r\n paymentPromiseRef.current = null;\r\n }\r\n }\r\n\r\n popupRef.current = null;\r\n }\r\n }, 500);\r\n\r\n return () => clearInterval(checkPopup);\r\n }, [status.status]);\r\n\r\n const openPaymentPopup = useCallback(\r\n async (merchantAddress: string, amount: string) => {\r\n if (!paymentData.isValid || !paymentData.credentials) {\r\n throw new Error(\"Payment data not validated\");\r\n }\r\n\r\n // Close any existing popup\r\n if (popupRef.current) {\r\n popupRef.current.close();\r\n popupRef.current = null;\r\n }\r\n\r\n // Build popup URL with all necessary parameters\r\n const params = new URLSearchParams({\r\n merchantAddress: merchantAddress,\r\n amount: amount,\r\n eoaAddress: paymentData.credentials.address,\r\n credentials: encodeURIComponent(\r\n JSON.stringify(paymentData.credentials)\r\n ),\r\n paymentType: paymentType,\r\n origin: window.location.origin,\r\n });\r\n\r\n const url = `https://atlascard.xyz/pay?${params.toString()}`;\r\n\r\n // Open popup window\r\n const popup = window.open(\r\n url,\r\n \"Atlascard Payment\",\r\n \"width=500,height=700,scrollbars=no,resizable=no,menubar=no,toolbar=no,location=no,status=no\"\r\n );\r\n\r\n if (!popup) {\r\n const error = \"Please allow popups to complete the payment\";\r\n setStatus({\r\n status: \"error\",\r\n message: error,\r\n error: error,\r\n });\r\n throw new Error(error);\r\n }\r\n\r\n popupRef.current = popup;\r\n setStatus({\r\n status: \"popup_open\",\r\n message: \"Complete payment in the popup window\",\r\n });\r\n },\r\n [paymentData, paymentType]\r\n );\r\n\r\n const processPayment = async (merchantAddress: string, amount: string) => {\r\n if (!paymentData.isValid) {\r\n throw new Error(\"Payment data not validated\");\r\n }\r\n\r\n // Create promise to handle payment result\r\n return new Promise((resolve, reject) => {\r\n paymentPromiseRef.current = { resolve, reject };\r\n\r\n // Open popup\r\n openPaymentPopup(merchantAddress, amount).catch(reject);\r\n });\r\n };\r\n\r\n const closePopup = () => {\r\n if (popupRef.current) {\r\n popupRef.current.close();\r\n popupRef.current = null;\r\n }\r\n\r\n if (status.status === \"popup_open\") {\r\n setStatus({\r\n status: \"ready\",\r\n message: \"Payment cancelled\",\r\n });\r\n }\r\n\r\n if (paymentPromiseRef.current) {\r\n paymentPromiseRef.current.reject(new Error(\"Payment cancelled\"));\r\n paymentPromiseRef.current = null;\r\n }\r\n };\r\n\r\n const reset = () => {\r\n setStatus({ status: \"idle\", message: \"Ready to pay\" });\r\n setPaymentData({\r\n isValid: false,\r\n isLoading: true,\r\n });\r\n\r\n if (popupRef.current) {\r\n popupRef.current.close();\r\n popupRef.current = null;\r\n }\r\n\r\n if (paymentPromiseRef.current) {\r\n paymentPromiseRef.current.reject(new Error(\"Payment reset\"));\r\n paymentPromiseRef.current = null;\r\n }\r\n };\r\n\r\n return {\r\n processPayment,\r\n status,\r\n paymentData,\r\n closePopup,\r\n reset,\r\n };\r\n};\r\n","import React from \"react\";\r\n\r\ninterface PaymentStatus {\r\n status:\r\n | \"idle\"\r\n | \"loading\"\r\n | \"validating\"\r\n | \"ready\"\r\n | \"popup_open\"\r\n | \"processing\"\r\n | \"success\"\r\n | \"error\";\r\n message: string;\r\n transactionHash?: string;\r\n error?: string;\r\n}\r\n\r\ninterface AtlasPaymentStatusProps {\r\n status: PaymentStatus;\r\n}\r\n\r\nexport const AtlasPaymentStatus: React.FC<AtlasPaymentStatusProps> = ({\r\n status,\r\n}) => {\r\n const getStatusIcon = () => {\r\n switch (status.status) {\r\n case \"processing\":\r\n return (\r\n <div className=\"atlas-spinner\">\r\n <div className=\"atlas-spinner-circle\"></div>\r\n </div>\r\n );\r\n case \"success\":\r\n return <div className=\"atlas-status-icon atlas-success\">✓</div>;\r\n case \"error\":\r\n return <div className=\"atlas-status-icon atlas-error\">✗</div>;\r\n default:\r\n return null;\r\n }\r\n };\r\n\r\n const getStatusColor = () => {\r\n switch (status.status) {\r\n case \"processing\":\r\n return \"atlas-status-processing\";\r\n case \"success\":\r\n return \"atlas-status-success\";\r\n case \"error\":\r\n return \"atlas-status-error\";\r\n default:\r\n return \"\";\r\n }\r\n };\r\n\r\n if (status.status === \"idle\") return null;\r\n\r\n return (\r\n <div className={`atlas-payment-status ${getStatusColor()}`}>\r\n <div className=\"atlas-status-content\">\r\n {getStatusIcon()}\r\n <div className=\"atlas-status-text\">\r\n <p className=\"atlas-status-message\">{status.message}</p>\r\n {status.transactionHash && (\r\n <p className=\"atlas-transaction-hash\">\r\n Tx: {status.transactionHash.slice(0, 10)}...\r\n {status.transactionHash.slice(-8)}\r\n </p>\r\n )}\r\n {status.error && (\r\n <p className=\"atlas-error-message\">{status.error}</p>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","\"use client\";\r\n\r\nimport React, { useEffect } from \"react\";\r\nimport { useAtlasPayment } from \"../hooks/useAtlasPayment\";\r\nimport { AtlasPaymentStatus } from \"./AtlasPaymentStatus\";\r\nimport type { PaymentType } from \"../types\";\r\n\r\ninterface AtlasPaymentFormProps {\r\n authKey: string;\r\n merchantPaymentAddress: string;\r\n amount?: string;\r\n paymentType?: PaymentType;\r\n onSuccess?: (receipt: any) => void;\r\n onError?: (error: Error) => void;\r\n className?: string;\r\n buttonText?: string;\r\n disabled?: boolean;\r\n chainId?: number;\r\n}\r\n\r\nexport const AtlasPaymentForm: React.FC<AtlasPaymentFormProps> = ({\r\n authKey,\r\n merchantPaymentAddress,\r\n amount = \"0\",\r\n paymentType = \"one_time_payment\",\r\n onSuccess,\r\n onError,\r\n className = \"\",\r\n buttonText = \"PAY NOW\",\r\n disabled = false,\r\n}) => {\r\n const { processPayment, status, paymentData, closePopup, reset } =\r\n useAtlasPayment(authKey, paymentType);\r\n\r\n const handleSubmit = async (e: React.FormEvent) => {\r\n e.preventDefault();\r\n\r\n if (!paymentData?.isValid || parseFloat(amount) <= 0) {\r\n return;\r\n }\r\n\r\n try {\r\n const receipt = await processPayment(merchantPaymentAddress, amount);\r\n onSuccess?.(receipt);\r\n } catch (error) {\r\n onError?.(error as Error);\r\n }\r\n };\r\n\r\n const handleReset = () => {\r\n reset();\r\n };\r\n\r\n // Call onSuccess when payment is successful\r\n useEffect(() => {\r\n if (status.status === \"success\" && status.transactionHash) {\r\n onSuccess?.({\r\n success: true,\r\n transactionHash: status.transactionHash,\r\n amount,\r\n merchant: merchantPaymentAddress,\r\n type: paymentType,\r\n paymentData,\r\n });\r\n }\r\n }, [status.status, status.transactionHash]);\r\n\r\n // Call onError when payment fails\r\n useEffect(() => {\r\n if (status.status === \"error\" && status.error) {\r\n onError?.(new Error(status.error));\r\n }\r\n }, [status.status, status.error]);\r\n\r\n const getPaymentTypeLabel = (type: PaymentType) => {\r\n return type === \"delegate\" ? \"Recurring Payment\" : \"One-time Payment\";\r\n };\r\n\r\n // Handle undefined paymentData gracefully\r\n if (!paymentData) {\r\n return (\r\n <div className={`atlas-container ${className}`}>\r\n <div className=\"atlas-loading\">\r\n <div className=\"atlas-spinner\"></div>\r\n <p>Initializing payment system...</p>\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n // Show loading state while initializing\r\n if (paymentData.isLoading) {\r\n return (\r\n <div className={`atlas-container ${className}`}>\r\n <div className=\"atlas-loading\">\r\n <div className=\"atlas-spinner\"></div>\r\n <p>Loading payment information...</p>\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n // Show error if initialization failed\r\n if (!paymentData.isValid && status.status === \"error\") {\r\n return (\r\n <div className={`atlas-container ${className}`}>\r\n <div className=\"atlas-error-state\">\r\n <div className=\"atlas-error-icon\">⚠️</div>\r\n <h3>Payment Setup Failed</h3>\r\n <p>{status.error || \"Unable to initialize payment\"}</p>\r\n <button onClick={reset} className=\"atlas-secondary-button\">\r\n Try Again\r\n </button>\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div className={`atlas-container ${className}`}>\r\n <div className=\"atlas-header\">\r\n <div className=\"atlas-payment-type-badge\">\r\n {getPaymentTypeLabel(paymentType)}\r\n </div>\r\n <div className=\"atlas-total\">\r\n Pay <span>{amount} USDC</span>\r\n </div>\r\n </div>\r\n\r\n <div className=\"atlas-divider\" />\r\n\r\n <form onSubmit={handleSubmit} className=\"atlas-form\">\r\n {/* Payment Information (fetched from APIs) */}\r\n <div className=\"atlas-validation-info\">\r\n <div className=\"atlas-info-section\">\r\n <h4>Payment Account</h4>\r\n <div className=\"atlas-info-grid\">\r\n <div className=\"atlas-info-item\">\r\n <span className=\"atlas-info-label\">Card ID:</span>\r\n <span className=\"atlas-info-value\">\r\n {paymentData.cardId || \"N/A\"}\r\n </span>\r\n </div>\r\n {paymentData.userAddress && (\r\n <div className=\"atlas-info-item\">\r\n <span className=\"atlas-info-label\">Payer Address:</span>\r\n <span className=\"atlas-info-value\">\r\n {paymentData.userAddress.slice(0, 8)}...\r\n {paymentData.userAddress.slice(-6)}\r\n </span>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"atlas-merchant-info\">\r\n <div className=\"atlas-info-item\">\r\n <span className=\"atlas-info-label\">Merchant:</span>\r\n <span className=\"atlas-info-value\">\r\n {merchantPaymentAddress.slice(0, 8)}...\r\n {merchantPaymentAddress.slice(-6)}\r\n </span>\r\n </div>\r\n </div>\r\n\r\n {/* Amount Display */}\r\n <div className=\"atlas-amount-display-section\">\r\n <div className=\"atlas-amount-main\">\r\n <span className=\"atlas-amount-label\">Amount to Pay:</span>\r\n <span className=\"atlas-amount-value\">\r\n {amount} <span className=\"atlas-amount-token\">USDC</span>\r\n </span>\r\n </div>\r\n </div>\r\n\r\n {/* Popup Status Display */}\r\n {status.status === \"popup_open\" && (\r\n <div className=\"atlas-popup-status\">\r\n <div className=\"atlas-popup-icon\">🪟</div>\r\n <div className=\"atlas-popup-content\">\r\n <h4>Complete Payment in Popup</h4>\r\n <p>A new window has opened to complete your payment.</p>\r\n <p className=\"atlas-popup-hint\">\r\n If you don't see the popup, please check your browser settings\r\n or allow popups for this site.\r\n </p>\r\n <div className=\"atlas-popup-actions\">\r\n <button\r\n type=\"button\"\r\n onClick={closePopup}\r\n className=\"atlas-secondary-button\"\r\n >\r\n Cancel Payment\r\n </button>\r\n <button\r\n type=\"button\"\r\n onClick={() => {\r\n // Try to focus the popup\r\n if (window.open(\"\", \"Atlascard Payment\")) {\r\n window.focus();\r\n }\r\n }}\r\n className=\"atlas-tertiary-button\"\r\n >\r\n Show Popup\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n\r\n <div className=\"atlas-form-actions\">\r\n {status.status === \"ready\" && (\r\n <button\r\n type=\"submit\"\r\n className=\"atlas-pay-button\"\r\n disabled={\r\n !paymentData.isValid || parseFloat(amount) <= 0 || disabled\r\n }\r\n >\r\n {buttonText}\r\n </button>\r\n )}\r\n\r\n {status.status !== \"ready\" &&\r\n status.status !== \"idle\" &&\r\n status.status !== \"popup_open\" && (\r\n <div className=\"atlas-status-wrapper\">\r\n <AtlasPaymentStatus status={status} />\r\n\r\n {status.status === \"success\" && (\r\n <button\r\n type=\"button\"\r\n onClick={handleReset}\r\n className=\"atlas-secondary-button\"\r\n >\r\n Make Another Payment\r\n </button>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n </form>\r\n </div>\r\n );\r\n};\r\n","const AtlasIcon = () => {\r\n return (\r\n <>\r\n <svg\r\n width=\"40\"\r\n height=\"40\"\r\n viewBox=\"0 0 40 40\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M2.95703 21.4442C2.72371 20.0639 2.75066 20.0321 3.3877 20.8817C3.75566 21.3763 4.4245 22.1637 4.86426 22.6268C5.3087 23.09 6.68217 23.9215 7.91602 24.4745C9.14997 25.0229 11.2674 25.7423 12.627 26.075C14.009 26.4078 17.3615 26.6555 20.2559 26.6375C23.572 26.6151 26.4573 26.3265 28.333 25.8319C29.9348 25.4093 31.8552 24.7578 32.5957 24.3846C33.3361 24.0069 34.5035 23.1704 35.1855 22.5184C35.8675 21.8665 36.4234 21.0796 36.4189 20.7694C36.4145 20.4593 36.6117 20.3113 36.8584 20.4325C37.1052 20.5584 37.2227 21.0125 37.124 21.4442C37.0208 21.876 36.8008 23.0406 36.3252 25.828L37.3252 24.9286C37.8771 24.434 38.703 23.2195 39.1562 22.2303C39.9773 20.4411 39.9821 20.4368 40 21.7811C40.009 22.523 39.6184 24.4474 39.1338 26.0526C38.6357 27.6892 37.4018 30.1537 36.3203 31.66C35.2567 33.1348 33.179 35.2212 31.6982 36.2957C30.1501 37.4198 27.7625 38.6246 26.0889 39.1327C24.3299 39.6632 21.8797 40.0043 19.9189 39.9998C17.8863 39.9953 15.6563 39.6537 13.9736 39.0916C12.4928 38.597 10.4735 37.6887 9.48633 37.0682C8.4991 36.4522 6.7802 35.0358 5.67188 33.9207C4.55907 32.8056 2.94764 30.4369 2.07715 28.6385C1.13932 26.6961 0.403864 24.3801 0 20.4325L0.866211 22.2303C1.34186 23.2195 2.18963 24.4341 3.76465 25.828L3.48242 24.3661C3.32987 23.5613 3.09164 22.2489 2.95703 21.4442ZM6.18652 27.0584C5.79164 26.8786 5.43257 26.9008 5.3877 27.1122C5.34286 27.3235 5.87657 28.3085 6.58105 29.2977C7.28115 30.2869 8.75343 31.86 9.84375 32.7997C10.9387 33.7349 12.8946 34.9 14.1914 35.3856C15.4882 35.8712 17.6065 36.3968 18.9033 36.5497C20.2809 36.716 22.2826 36.5992 23.7275 36.2664C25.0827 35.9517 26.9536 35.3174 27.8779 34.8543C28.8022 34.3957 30.3006 33.3622 31.207 32.5575C32.1134 31.7527 33.4331 30.2869 34.1377 29.2977C34.8416 28.3093 35.411 27.3968 35.3984 27.2743C35.3895 27.1529 33.6173 27.6293 31.459 28.3397C28.5468 29.3019 26.33 29.6975 22.8301 29.8729C20.0077 30.0123 16.6778 29.882 14.5283 29.5448C12.5539 29.23 10.0318 28.6186 8.91895 28.1825C7.80647 27.7465 6.57736 27.2429 6.18652 27.0584ZM19.8066 0.000823975C21.4085 -0.0171596 23.8317 0.257193 25.1914 0.603363C26.5466 0.954077 28.4679 1.69562 29.4551 2.25766C30.4423 2.81972 32.143 4.00237 33.2334 4.88364C34.3238 5.76942 35.8945 7.50556 36.7246 8.74203C37.5502 9.97862 38.6314 12.3079 39.125 13.9129C39.6141 15.5225 40.009 17.4426 40 18.1844C39.9821 19.5285 39.9774 19.5236 39.1562 17.7342C38.703 16.7451 37.8683 15.5313 36.2754 14.1375L36.5361 15.2616C36.6797 15.8821 36.9307 17.1951 37.3838 19.9823L36.2979 18.6336C35.701 17.8917 34.5252 16.8488 33.6816 16.3182C32.838 15.7876 31.1868 15.0273 30.0156 14.6317C28.8444 14.236 26.1163 13.7011 23.958 13.4403C21.2073 13.1075 18.8912 13.1075 16.2168 13.4403C14.1167 13.7011 11.0882 14.3582 9.48633 14.9022C7.87987 15.4462 5.91455 16.4578 5.11133 17.1502C4.30844 17.8424 3.65289 18.7139 3.65234 19.0829C3.65234 19.456 3.45083 19.6588 3.2041 19.5331C2.9573 19.4116 2.83624 18.953 2.93945 18.5213C3.04266 18.0897 3.25813 16.9251 3.71582 14.1375L2.55762 15.2616C1.92046 15.8821 1.09031 17.195 0.0224609 19.9823L0.250977 17.285C0.403546 15.4595 0.987496 13.5347 2.06445 11.327C3.04266 9.32176 4.5636 7.15914 6.02637 5.70688C7.33666 4.40744 9.40542 2.84709 10.626 2.24008C11.851 1.63308 13.7582 0.887039 14.8711 0.585785C15.9794 0.284556 18.2002 0.0188488 19.8066 0.000823975ZM21.2588 3.17368C19.6613 3.07031 17.5659 3.28152 16.0986 3.69516C14.7435 4.07733 12.9267 4.81969 12.0605 5.33676C11.1946 5.8583 9.71813 7.00901 8.78027 7.89926C7.83794 8.78503 6.67488 10.1696 6.19922 10.9745C5.71949 11.7786 5.37934 12.529 5.44141 12.6424C5.50423 12.7548 6.76528 12.3686 8.24609 11.784C9.72697 11.195 12.554 10.4663 14.5283 10.1561C16.6957 9.8189 19.9852 9.69815 22.8301 9.84653C26.2716 10.0309 28.5962 10.4445 31.459 11.3797C33.6152 12.0849 35.3861 12.5565 35.3984 12.4364C35.4119 12.315 34.847 11.402 34.1426 10.4129C33.4426 9.42374 31.9703 7.84974 30.8799 6.91C29.7851 5.97486 27.7751 4.78789 26.4199 4.27524C25.0647 3.76266 22.7396 3.2681 21.2588 3.17368Z\"\r\n fill=\"#E4A300\"\r\n />\r\n </svg>\r\n </>\r\n );\r\n};\r\n\r\nexport default AtlasIcon;\r\n","// AtlasPaymentButton.tsx\r\nimport React, { useState } from \"react\";\r\nimport { AtlasPaymentForm } from \"./AtlasPaymentForm\";\r\nimport type { PaymentType } from \"../types\";\r\nimport AtlasIcon from \"@/assets/Icon\";\r\n\r\ninterface AtlasPaymentButtonProps {\r\n authKey: string; // Auth key passed directly\r\n merchantPaymentAddress: string;\r\n onSuccess?: (receipt: any) => void;\r\n onError?: (error: Error) => void;\r\n className?: string;\r\n buttonText?: string;\r\n amount?: string;\r\n paymentType?: PaymentType;\r\n disabled?: boolean;\r\n chainId?: number;\r\n}\r\n\r\nexport const AtlasPaymentButton: React.FC<AtlasPaymentButtonProps> = ({\r\n authKey,\r\n merchantPaymentAddress,\r\n onSuccess,\r\n onError,\r\n className = \"\",\r\n buttonText = \"Pay Now\",\r\n amount = \"0\",\r\n paymentType = \"one_time_payment\",\r\n disabled = false,\r\n // chainId = 8453,\r\n}) => {\r\n const [showModal, setShowModal] = useState(false);\r\n\r\n const handleSuccess = (receipt: any) => {\r\n onSuccess?.(receipt);\r\n setTimeout(() => setShowModal(false), 2000);\r\n };\r\n\r\n const handleError = (error: Error) => {\r\n onError?.(error);\r\n };\r\n\r\n const handleButtonClick = () => {\r\n if (!authKey) {\r\n alert(\"Payment configuration error: No auth key provided\");\r\n return;\r\n }\r\n setShowModal(true);\r\n };\r\n\r\n return (\r\n <>\r\n <button\r\n className={`atlas-payment-button ${className}`}\r\n onClick={handleButtonClick}\r\n disabled={disabled || !authKey}\r\n >\r\n {buttonText}\r\n </button>\r\n\r\n {showModal && (\r\n <div\r\n className=\"atlas-modal-overlay\"\r\n onClick={() => setShowModal(false)}\r\n >\r\n <div className=\"atlas-modal\" onClick={(e) => e.stopPropagation()}>\r\n <div className=\"atlas-modal-header\">\r\n <div className=\"atlas-modal-header2\">\r\n <AtlasIcon />\r\n <h3>Pay with Atlas</h3>\r\n </div>\r\n <button\r\n className=\"atlas-modal-close\"\r\n onClick={() => setShowModal(false)}\r\n >\r\n ×\r\n </button>\r\n </div>\r\n <div className=\"atlas-modal-body\">\r\n <AtlasPaymentForm\r\n authKey={authKey}\r\n merchantPaymentAddress={merchantPaymentAddress}\r\n amount={amount}\r\n paymentType={paymentType}\r\n onSuccess={handleSuccess}\r\n onError={handleError}\r\n buttonText={buttonText}\r\n disabled={disabled}\r\n // chainId={chainId}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n </>\r\n );\r\n};\r\n"],"names":["REACT_ELEMENT_TYPE","REACT_FRAGMENT_TYPE","jsxProd","type","config","maybeKey","key","propName","reactJsxRuntime_production","getComponentNameFromType","REACT_CLIENT_REFERENCE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_ACTIVITY_TYPE","REACT_PORTAL_TYPE","REACT_CONTEXT_TYPE","REACT_CONSUMER_TYPE","REACT_FORWARD_REF_TYPE","innerType","REACT_MEMO_TYPE","REACT_LAZY_TYPE","testStringCoercion","value","checkKeyStringCoercion","JSCompiler_inline_result","JSCompiler_temp_const","JSCompiler_inline_result$jscomp$0","getTaskName","name","getOwner","dispatcher","ReactSharedInternals","UnknownOwner","hasValidKey","hasOwnProperty","getter","defineKeyPropWarningGetter","props","displayName","warnAboutAccessingKey","specialPropKeyWarningShown","elementRefGetterWithDeprecationWarning","componentName","didWarnAboutElementRef","ReactElement","self","source","owner","debugStack","debugTask","jsxDEVImpl","isStaticChildren","children","isArrayImpl","validateChildKeys","keys","k","didWarnAboutKeySpread","node","React","require$$0","createTask","callStackForError","unknownOwnerDebugStack","unknownOwnerDebugTask","reactJsxRuntime_development","trackActualOwner","jsxRuntimeModule","require$$1","useAtlasPayment","authKey","paymentType","status","setStatus","useState","paymentData","setPaymentData","popupRef","useRef","paymentPromiseRef","useEffect","prev","validationData","credentialsResponse","credentialsData","updatedPaymentData","error","handleMessage","event","data","_a","checkPopup","openPaymentPopup","useCallback","merchantAddress","amount","url","popup","resolve","reject","AtlasPaymentStatus","getStatusIcon","jsx","getStatusColor","jsxs","AtlasPaymentForm","merchantPaymentAddress","onSuccess","onError","className","buttonText","disabled","processPayment","closePopup","reset","handleSubmit","e","receipt","handleReset","getPaymentTypeLabel","AtlasIcon","Fragment","AtlasPaymentButton","showModal","setShowModal","handleSuccess","handleError","handleButtonClick"],"mappings":"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","x_google_ignoreList":[0,1,2]}
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../node_modules/react/cjs/react-jsx-runtime.production.js","../node_modules/react/cjs/react-jsx-runtime.development.js","../node_modules/react/jsx-runtime.js","../src/hooks/useAtlasPayment.ts","../src/components/AtlasPaymentStatus.tsx","../src/components/AtlasPaymentForm.tsx","../src/assets/Icon.tsx","../src/components/AtlasPaymentButton.tsx"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Provider\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(\n type,\n key,\n self,\n source,\n owner,\n props,\n debugStack,\n debugTask\n ) {\n self = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== self ? self : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n source,\n self,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n self,\n source,\n getOwner(),\n maybeKey,\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_ELEMENT_TYPE &&\n node._store &&\n (node._store.validated = 1);\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n Symbol.for(\"react.provider\");\n var REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React.react_stack_bottom_frame.bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey, source, self) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.jsxs = function (type, config, maybeKey, source, self) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","// hooks/useAtlasPayment.ts\r\nimport { useState, useEffect, useCallback, useRef } from \"react\";\r\nimport type {\r\n PaymentType,\r\n ValidationResponse,\r\n DecryptedCredentials,\r\n} from \"../types\";\r\n\r\ninterface PaymentStatus {\r\n status:\r\n | \"idle\"\r\n | \"loading\"\r\n | \"validating\"\r\n | \"ready\"\r\n | \"popup_open\"\r\n | \"processing\"\r\n | \"success\"\r\n | \"error\";\r\n message: string;\r\n transactionHash?: string;\r\n error?: string;\r\n}\r\n\r\ninterface PaymentData {\r\n cardId?: string;\r\n businessAddress?: string;\r\n userAddress?: string;\r\n identifier?: string;\r\n credentials?: DecryptedCredentials;\r\n isValid: boolean;\r\n isLoading: boolean;\r\n}\r\n\r\ninterface PopupMessage {\r\n type: \"payment_result\" | \"payment_error\" | \"close_popup\";\r\n status?: \"success\" | \"failed\";\r\n transactionHash?: string;\r\n amount?: string;\r\n merchant?: string;\r\n paymentType?: string;\r\n error?: string;\r\n}\r\n\r\nexport const useAtlasPayment = (authKey: string, paymentType: PaymentType) => {\r\n const [status, setStatus] = useState<PaymentStatus>({\r\n status: \"idle\",\r\n message: \"Ready to pay\",\r\n });\r\n const [paymentData, setPaymentData] = useState<PaymentData>({\r\n isValid: false,\r\n isLoading: true,\r\n });\r\n const popupRef = useRef<Window | null>(null);\r\n const paymentPromiseRef = useRef<{\r\n resolve: (value: any) => void;\r\n reject: (reason?: any) => void;\r\n } | null>(null);\r\n\r\n // Automatically validate and fetch credentials when authKey or paymentType changes\r\n useEffect(() => {\r\n const initializePayment = async () => {\r\n if (!authKey) {\r\n setPaymentData({\r\n isValid: false,\r\n isLoading: false,\r\n });\r\n setStatus({\r\n status: \"error\",\r\n message: \"No auth key provided\",\r\n });\r\n return;\r\n }\r\n\r\n setPaymentData((prev) => ({ ...prev, isLoading: true }));\r\n setStatus({\r\n status: \"loading\",\r\n message: \"Loading payment information...\",\r\n });\r\n\r\n try {\r\n // Step 1: Validate auth key\r\n const validationResponse = await fetch(\r\n \"https://api.atlascard.xyz/api/auth/external/validate\",\r\n {\r\n method: \"POST\",\r\n headers: { \"Content-Type\": \"application/json\" },\r\n body: JSON.stringify({\r\n key: authKey,\r\n required_scopes: [paymentType],\r\n }),\r\n }\r\n );\r\n\r\n const validationData: ValidationResponse =\r\n await validationResponse.json();\r\n\r\n if (!validationData.valid) {\r\n setStatus({\r\n status: \"error\",\r\n message: \"Failed to initialize payment\",\r\n error: validationData.error || \"Invalid Auth Key\",\r\n });\r\n return;\r\n }\r\n\r\n // Step 2: Get credentials\r\n const credentialsResponse = await fetch(\r\n \"https://api.atlascard.xyz/api/credentials/get\",\r\n {\r\n method: \"POST\",\r\n headers: { \"Content-Type\": \"application/json\" },\r\n body: JSON.stringify({\r\n auth_key: authKey,\r\n required_scopes: [paymentType],\r\n }),\r\n }\r\n );\r\n\r\n if (!credentialsResponse.ok) {\r\n throw new Error(\"Failed to fetch credentials\");\r\n }\r\n\r\n const credentialsData: DecryptedCredentials =\r\n await credentialsResponse.json();\r\n\r\n const updatedPaymentData = {\r\n cardId: validationData.cardId,\r\n businessAddress: validationData.businessAddress,\r\n userAddress: credentialsData.address,\r\n identifier: credentialsData.identifier,\r\n credentials: credentialsData,\r\n isValid: true,\r\n isLoading: false,\r\n };\r\n\r\n setPaymentData(updatedPaymentData);\r\n setStatus({\r\n status: \"ready\",\r\n message: \"Ready to process payment\",\r\n });\r\n } catch (error) {\r\n console.error(\"Payment initialization error:\", error);\r\n const errorData = {\r\n isValid: false,\r\n isLoading: false,\r\n };\r\n setPaymentData(errorData);\r\n setStatus({\r\n status: \"error\",\r\n message: \"Failed to initialize payment\",\r\n error: error instanceof Error ? error.message : \"Unknown error\",\r\n });\r\n }\r\n };\r\n\r\n initializePayment();\r\n }, [authKey, paymentType]);\r\n\r\n // Listen for messages from popup\r\n useEffect(() => {\r\n const handleMessage = (event: MessageEvent) => {\r\n // Security: Only accept messages from Atlascard.xyz\r\n if (event.origin !== \"https://atlascard.xyz\") return;\r\n\r\n const data: PopupMessage = event.data;\r\n\r\n switch (data.type) {\r\n case \"payment_result\":\r\n if (data.status === \"success\") {\r\n setStatus({\r\n status: \"success\",\r\n message: \"Payment successful!\",\r\n transactionHash: data.transactionHash,\r\n });\r\n\r\n // Resolve the promise\r\n if (paymentPromiseRef.current) {\r\n paymentPromiseRef.current.resolve({\r\n success: true,\r\n transactionHash: data.transactionHash,\r\n amount: data.amount,\r\n merchant: data.merchant,\r\n type: data.paymentType,\r\n paymentData,\r\n });\r\n paymentPromiseRef.current = null;\r\n }\r\n\r\n // Close the popup\r\n if (popupRef.current) {\r\n setTimeout(() => {\r\n popupRef.current?.close();\r\n popupRef.current = null;\r\n }, 3000); // Give user time to see success message\r\n }\r\n } else {\r\n setStatus({\r\n status: \"error\",\r\n message: data.error || \"Payment failed\",\r\n error: data.error,\r\n });\r\n\r\n // Reject the promise\r\n if (paymentPromiseRef.current) {\r\n paymentPromiseRef.current.reject(\r\n new Error(data.error || \"Payment failed\")\r\n );\r\n paymentPromiseRef.current = null;\r\n }\r\n\r\n // Close the popup after a delay\r\n if (popupRef.current) {\r\n setTimeout(() => {\r\n popupRef.current?.close();\r\n popupRef.current = null;\r\n }, 3000);\r\n }\r\n }\r\n break;\r\n\r\n case \"payment_error\":\r\n setStatus({\r\n status: \"error\",\r\n message: data.error || \"Payment failed\",\r\n error: data.error,\r\n });\r\n\r\n if (paymentPromiseRef.current) {\r\n paymentPromiseRef.current.reject(\r\n new Error(data.error || \"Payment failed\")\r\n );\r\n paymentPromiseRef.current = null;\r\n }\r\n\r\n if (popupRef.current) {\r\n popupRef.current.close();\r\n popupRef.current = null;\r\n }\r\n break;\r\n\r\n case \"close_popup\":\r\n if (popupRef.current) {\r\n popupRef.current.close();\r\n popupRef.current = null;\r\n }\r\n\r\n // If still in popup_open status, user closed manually\r\n if (status.status === \"popup_open\") {\r\n setStatus({\r\n status: \"ready\",\r\n message: \"Payment cancelled\",\r\n });\r\n\r\n if (paymentPromiseRef.current) {\r\n paymentPromiseRef.current.reject(\r\n new Error(\"Payment cancelled by user\")\r\n );\r\n paymentPromiseRef.current = null;\r\n }\r\n }\r\n break;\r\n }\r\n };\r\n\r\n window.addEventListener(\"message\", handleMessage);\r\n return () => window.removeEventListener(\"message\", handleMessage);\r\n }, [paymentData, status.status]);\r\n\r\n // Check if popup was closed by user\r\n useEffect(() => {\r\n if (!popupRef.current) return;\r\n\r\n const checkPopup = setInterval(() => {\r\n if (popupRef.current?.closed) {\r\n clearInterval(checkPopup);\r\n\r\n // If still in popup_open status, user closed manually\r\n if (status.status === \"popup_open\") {\r\n setStatus({\r\n status: \"ready\",\r\n message: \"Payment cancelled\",\r\n });\r\n\r\n if (paymentPromiseRef.current) {\r\n paymentPromiseRef.current.reject(\r\n new Error(\"Payment cancelled by user\")\r\n );\r\n paymentPromiseRef.current = null;\r\n }\r\n }\r\n\r\n popupRef.current = null;\r\n }\r\n }, 500);\r\n\r\n return () => clearInterval(checkPopup);\r\n }, [status.status]);\r\n\r\n const openPaymentPopup = useCallback(\r\n async (merchantAddress: string, amount: string) => {\r\n if (!paymentData.isValid || !paymentData.credentials) {\r\n throw new Error(\"Payment data not validated\");\r\n }\r\n\r\n // Close any existing popup\r\n if (popupRef.current) {\r\n popupRef.current.close();\r\n popupRef.current = null;\r\n }\r\n\r\n // Build popup URL with all necessary parameters\r\n const params = new URLSearchParams({\r\n merchantAddress: merchantAddress,\r\n amount: amount,\r\n eoaAddress: paymentData.credentials.address,\r\n credentials: encodeURIComponent(\r\n JSON.stringify(paymentData.credentials)\r\n ),\r\n paymentType: paymentType,\r\n origin: window.location.origin,\r\n });\r\n\r\n const url = `https://atlascard.xyz/pay?${params.toString()}`;\r\n\r\n // Open popup window\r\n const popup = window.open(\r\n url,\r\n \"Atlascard Payment\",\r\n \"width=500,height=700,scrollbars=no,resizable=no,menubar=no,toolbar=no,location=no,status=no\"\r\n );\r\n\r\n if (!popup) {\r\n const error = \"Please allow popups to complete the payment\";\r\n setStatus({\r\n status: \"error\",\r\n message: error,\r\n error: error,\r\n });\r\n throw new Error(error);\r\n }\r\n\r\n popupRef.current = popup;\r\n setStatus({\r\n status: \"popup_open\",\r\n message: \"Complete payment in the popup window\",\r\n });\r\n },\r\n [paymentData, paymentType]\r\n );\r\n\r\n const processPayment = async (merchantAddress: string, amount: string) => {\r\n if (!paymentData.isValid) {\r\n throw new Error(\"Payment data not validated\");\r\n }\r\n\r\n // Create promise to handle payment result\r\n return new Promise((resolve, reject) => {\r\n paymentPromiseRef.current = { resolve, reject };\r\n\r\n // Open popup\r\n openPaymentPopup(merchantAddress, amount).catch(reject);\r\n });\r\n };\r\n\r\n const closePopup = () => {\r\n if (popupRef.current) {\r\n popupRef.current.close();\r\n popupRef.current = null;\r\n }\r\n\r\n if (status.status === \"popup_open\") {\r\n setStatus({\r\n status: \"ready\",\r\n message: \"Payment cancelled\",\r\n });\r\n }\r\n\r\n if (paymentPromiseRef.current) {\r\n paymentPromiseRef.current.reject(new Error(\"Payment cancelled\"));\r\n paymentPromiseRef.current = null;\r\n }\r\n };\r\n\r\n const reset = () => {\r\n setStatus({ status: \"idle\", message: \"Ready to pay\" });\r\n setPaymentData({\r\n isValid: false,\r\n isLoading: true,\r\n });\r\n\r\n if (popupRef.current) {\r\n popupRef.current.close();\r\n popupRef.current = null;\r\n }\r\n\r\n if (paymentPromiseRef.current) {\r\n paymentPromiseRef.current.reject(new Error(\"Payment reset\"));\r\n paymentPromiseRef.current = null;\r\n }\r\n };\r\n\r\n return {\r\n processPayment,\r\n status,\r\n paymentData,\r\n closePopup,\r\n reset,\r\n };\r\n};\r\n","import React from \"react\";\r\n\r\ninterface PaymentStatus {\r\n status:\r\n | \"idle\"\r\n | \"loading\"\r\n | \"validating\"\r\n | \"ready\"\r\n | \"popup_open\"\r\n | \"processing\"\r\n | \"success\"\r\n | \"error\";\r\n message: string;\r\n transactionHash?: string;\r\n error?: string;\r\n}\r\n\r\ninterface AtlasPaymentStatusProps {\r\n status: PaymentStatus;\r\n}\r\n\r\nexport const AtlasPaymentStatus: React.FC<AtlasPaymentStatusProps> = ({\r\n status,\r\n}) => {\r\n const getStatusIcon = () => {\r\n switch (status.status) {\r\n case \"processing\":\r\n return (\r\n <div className=\"atlas-spinner\">\r\n <div className=\"atlas-spinner-circle\"></div>\r\n </div>\r\n );\r\n case \"success\":\r\n return <div className=\"atlas-status-icon atlas-success\">✓</div>;\r\n case \"error\":\r\n return <div className=\"atlas-status-icon atlas-error\">✗</div>;\r\n default:\r\n return null;\r\n }\r\n };\r\n\r\n const getStatusColor = () => {\r\n switch (status.status) {\r\n case \"processing\":\r\n return \"atlas-status-processing\";\r\n case \"success\":\r\n return \"atlas-status-success\";\r\n case \"error\":\r\n return \"atlas-status-error\";\r\n default:\r\n return \"\";\r\n }\r\n };\r\n\r\n if (status.status === \"idle\") return null;\r\n\r\n return (\r\n <div className={`atlas-payment-status ${getStatusColor()}`}>\r\n <div className=\"atlas-status-content\">\r\n {getStatusIcon()}\r\n <div className=\"atlas-status-text\">\r\n <p className=\"atlas-status-message\">{status.message}</p>\r\n {status.transactionHash && (\r\n <p className=\"atlas-transaction-hash\">\r\n Tx: {status.transactionHash.slice(0, 10)}...\r\n {status.transactionHash.slice(-8)}\r\n </p>\r\n )}\r\n {status.error && (\r\n <p className=\"atlas-error-message\">{status.error}</p>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","\"use client\";\r\n\r\nimport React, { useEffect } from \"react\";\r\nimport { useAtlasPayment } from \"../hooks/useAtlasPayment\";\r\nimport { AtlasPaymentStatus } from \"./AtlasPaymentStatus\";\r\nimport type { PaymentType } from \"../types\";\r\n\r\ninterface AtlasPaymentFormProps {\r\n authKey: string;\r\n merchantPaymentAddress: string;\r\n amount?: string;\r\n paymentType?: PaymentType;\r\n onSuccess?: (receipt: any) => void;\r\n onError?: (error: Error) => void;\r\n className?: string;\r\n buttonText?: string;\r\n disabled?: boolean;\r\n chainId?: number;\r\n}\r\n\r\nexport const AtlasPaymentForm: React.FC<AtlasPaymentFormProps> = ({\r\n authKey,\r\n merchantPaymentAddress,\r\n amount = \"0\",\r\n paymentType = \"one_time_payment\",\r\n onSuccess,\r\n onError,\r\n className = \"\",\r\n buttonText = \"PAY NOW\",\r\n disabled = false,\r\n}) => {\r\n const { processPayment, status, paymentData, closePopup, reset } =\r\n useAtlasPayment(authKey, paymentType);\r\n\r\n const handleSubmit = async (e: React.FormEvent) => {\r\n e.preventDefault();\r\n\r\n if (!paymentData?.isValid || parseFloat(amount) <= 0) {\r\n return;\r\n }\r\n\r\n try {\r\n const receipt = await processPayment(merchantPaymentAddress, amount);\r\n onSuccess?.(receipt);\r\n } catch (error) {\r\n onError?.(error as Error);\r\n }\r\n };\r\n\r\n const handleReset = () => {\r\n reset();\r\n };\r\n\r\n // Call onSuccess when payment is successful\r\n useEffect(() => {\r\n if (status.status === \"success\" && status.transactionHash) {\r\n onSuccess?.({\r\n success: true,\r\n transactionHash: status.transactionHash,\r\n amount,\r\n merchant: merchantPaymentAddress,\r\n type: paymentType,\r\n paymentData,\r\n });\r\n }\r\n }, [status.status, status.transactionHash]);\r\n\r\n // Call onError when payment fails\r\n useEffect(() => {\r\n if (status.status === \"error\" && status.error) {\r\n onError?.(new Error(status.error));\r\n }\r\n }, [status.status, status.error]);\r\n\r\n const getPaymentTypeLabel = (type: PaymentType) => {\r\n return type === \"delegate\" ? \"Recurring Payment\" : \"One-time Payment\";\r\n };\r\n\r\n // Handle undefined paymentData gracefully\r\n if (!paymentData) {\r\n return (\r\n <div className={`atlas-container ${className}`}>\r\n <div className=\"atlas-loading\">\r\n <div className=\"atlas-spinner\"></div>\r\n <p>Initializing payment system...</p>\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n // Show loading state while initializing\r\n if (paymentData.isLoading) {\r\n return (\r\n <div className={`atlas-container ${className}`}>\r\n <div className=\"atlas-loading\">\r\n <div className=\"atlas-spinner\"></div>\r\n <p>Loading payment information...</p>\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n // Show error if initialization failed\r\n if (!paymentData.isValid && status.status === \"error\") {\r\n return (\r\n <div className={`atlas-container ${className}`}>\r\n <div className=\"atlas-error-state\">\r\n <div className=\"atlas-error-icon\">⚠️</div>\r\n <h3>Payment Setup Failed</h3>\r\n <p>{status.error || \"Unable to initialize payment\"}</p>\r\n <button onClick={reset} className=\"atlas-secondary-button\">\r\n Try Again\r\n </button>\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div className={`atlas-container ${className}`}>\r\n <div className=\"atlas-header\">\r\n <div className=\"atlas-payment-type-badge\">\r\n {getPaymentTypeLabel(paymentType)}\r\n </div>\r\n <div className=\"atlas-total\">\r\n Pay <span>{amount} USDC</span>\r\n </div>\r\n </div>\r\n\r\n <div className=\"atlas-divider\" />\r\n\r\n <form onSubmit={handleSubmit} className=\"atlas-form\">\r\n {/* Payment Information (fetched from APIs) */}\r\n <div className=\"atlas-validation-info\">\r\n <div className=\"atlas-info-section\">\r\n <h4>Payment Account</h4>\r\n <div className=\"atlas-info-grid\">\r\n <div className=\"atlas-info-item\">\r\n <span className=\"atlas-info-label\">Card ID:</span>\r\n <span className=\"atlas-info-value\">\r\n {paymentData.cardId || \"N/A\"}\r\n </span>\r\n </div>\r\n {paymentData.userAddress && (\r\n <div className=\"atlas-info-item\">\r\n <span className=\"atlas-info-label\">Payer Address:</span>\r\n <span className=\"atlas-info-value\">\r\n {paymentData.userAddress.slice(0, 8)}...\r\n {paymentData.userAddress.slice(-6)}\r\n </span>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"atlas-merchant-info\">\r\n <div className=\"atlas-info-item\">\r\n <span className=\"atlas-info-label\">Merchant:</span>\r\n <span className=\"atlas-info-value\">\r\n {merchantPaymentAddress.slice(0, 8)}...\r\n {merchantPaymentAddress.slice(-6)}\r\n </span>\r\n </div>\r\n </div>\r\n\r\n {/* Amount Display */}\r\n <div className=\"atlas-amount-display-section\">\r\n <div className=\"atlas-amount-main\">\r\n <span className=\"atlas-amount-label\">Amount to Pay:</span>\r\n <span className=\"atlas-amount-value\">\r\n {amount} <span className=\"atlas-amount-token\">USDC</span>\r\n </span>\r\n </div>\r\n </div>\r\n\r\n {/* Popup Status Display */}\r\n {status.status === \"popup_open\" && (\r\n <div className=\"atlas-popup-status\">\r\n <div className=\"atlas-popup-icon\">🪟</div>\r\n <div className=\"atlas-popup-content\">\r\n <h4>Complete Payment in Popup</h4>\r\n <p>A new window has opened to complete your payment.</p>\r\n <p className=\"atlas-popup-hint\">\r\n If you don't see the popup, please check your browser settings\r\n or allow popups for this site.\r\n </p>\r\n <div className=\"atlas-popup-actions\">\r\n <button\r\n type=\"button\"\r\n onClick={closePopup}\r\n className=\"atlas-secondary-button\"\r\n >\r\n Cancel Payment\r\n </button>\r\n <button\r\n type=\"button\"\r\n onClick={() => {\r\n // Try to focus the popup\r\n if (window.open(\"\", \"Atlascard Payment\")) {\r\n window.focus();\r\n }\r\n }}\r\n className=\"atlas-tertiary-button\"\r\n >\r\n Show Popup\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n\r\n <div className=\"atlas-form-actions\">\r\n {status.status === \"ready\" && (\r\n <button\r\n type=\"submit\"\r\n className=\"atlas-pay-button\"\r\n disabled={\r\n !paymentData.isValid || parseFloat(amount) <= 0 || disabled\r\n }\r\n >\r\n {buttonText}\r\n </button>\r\n )}\r\n\r\n {status.status !== \"ready\" &&\r\n status.status !== \"idle\" &&\r\n status.status !== \"popup_open\" && (\r\n <div className=\"atlas-status-wrapper\">\r\n <AtlasPaymentStatus status={status} />\r\n\r\n {status.status === \"success\" && (\r\n <button\r\n type=\"button\"\r\n onClick={handleReset}\r\n className=\"atlas-secondary-button\"\r\n >\r\n Make Another Payment\r\n </button>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n </form>\r\n </div>\r\n );\r\n};\r\n","const AtlasIcon = () => {\r\n return (\r\n <>\r\n <svg\r\n width=\"40\"\r\n height=\"40\"\r\n viewBox=\"0 0 40 40\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M2.95703 21.4442C2.72371 20.0639 2.75066 20.0321 3.3877 20.8817C3.75566 21.3763 4.4245 22.1637 4.86426 22.6268C5.3087 23.09 6.68217 23.9215 7.91602 24.4745C9.14997 25.0229 11.2674 25.7423 12.627 26.075C14.009 26.4078 17.3615 26.6555 20.2559 26.6375C23.572 26.6151 26.4573 26.3265 28.333 25.8319C29.9348 25.4093 31.8552 24.7578 32.5957 24.3846C33.3361 24.0069 34.5035 23.1704 35.1855 22.5184C35.8675 21.8665 36.4234 21.0796 36.4189 20.7694C36.4145 20.4593 36.6117 20.3113 36.8584 20.4325C37.1052 20.5584 37.2227 21.0125 37.124 21.4442C37.0208 21.876 36.8008 23.0406 36.3252 25.828L37.3252 24.9286C37.8771 24.434 38.703 23.2195 39.1562 22.2303C39.9773 20.4411 39.9821 20.4368 40 21.7811C40.009 22.523 39.6184 24.4474 39.1338 26.0526C38.6357 27.6892 37.4018 30.1537 36.3203 31.66C35.2567 33.1348 33.179 35.2212 31.6982 36.2957C30.1501 37.4198 27.7625 38.6246 26.0889 39.1327C24.3299 39.6632 21.8797 40.0043 19.9189 39.9998C17.8863 39.9953 15.6563 39.6537 13.9736 39.0916C12.4928 38.597 10.4735 37.6887 9.48633 37.0682C8.4991 36.4522 6.7802 35.0358 5.67188 33.9207C4.55907 32.8056 2.94764 30.4369 2.07715 28.6385C1.13932 26.6961 0.403864 24.3801 0 20.4325L0.866211 22.2303C1.34186 23.2195 2.18963 24.4341 3.76465 25.828L3.48242 24.3661C3.32987 23.5613 3.09164 22.2489 2.95703 21.4442ZM6.18652 27.0584C5.79164 26.8786 5.43257 26.9008 5.3877 27.1122C5.34286 27.3235 5.87657 28.3085 6.58105 29.2977C7.28115 30.2869 8.75343 31.86 9.84375 32.7997C10.9387 33.7349 12.8946 34.9 14.1914 35.3856C15.4882 35.8712 17.6065 36.3968 18.9033 36.5497C20.2809 36.716 22.2826 36.5992 23.7275 36.2664C25.0827 35.9517 26.9536 35.3174 27.8779 34.8543C28.8022 34.3957 30.3006 33.3622 31.207 32.5575C32.1134 31.7527 33.4331 30.2869 34.1377 29.2977C34.8416 28.3093 35.411 27.3968 35.3984 27.2743C35.3895 27.1529 33.6173 27.6293 31.459 28.3397C28.5468 29.3019 26.33 29.6975 22.8301 29.8729C20.0077 30.0123 16.6778 29.882 14.5283 29.5448C12.5539 29.23 10.0318 28.6186 8.91895 28.1825C7.80647 27.7465 6.57736 27.2429 6.18652 27.0584ZM19.8066 0.000823975C21.4085 -0.0171596 23.8317 0.257193 25.1914 0.603363C26.5466 0.954077 28.4679 1.69562 29.4551 2.25766C30.4423 2.81972 32.143 4.00237 33.2334 4.88364C34.3238 5.76942 35.8945 7.50556 36.7246 8.74203C37.5502 9.97862 38.6314 12.3079 39.125 13.9129C39.6141 15.5225 40.009 17.4426 40 18.1844C39.9821 19.5285 39.9774 19.5236 39.1562 17.7342C38.703 16.7451 37.8683 15.5313 36.2754 14.1375L36.5361 15.2616C36.6797 15.8821 36.9307 17.1951 37.3838 19.9823L36.2979 18.6336C35.701 17.8917 34.5252 16.8488 33.6816 16.3182C32.838 15.7876 31.1868 15.0273 30.0156 14.6317C28.8444 14.236 26.1163 13.7011 23.958 13.4403C21.2073 13.1075 18.8912 13.1075 16.2168 13.4403C14.1167 13.7011 11.0882 14.3582 9.48633 14.9022C7.87987 15.4462 5.91455 16.4578 5.11133 17.1502C4.30844 17.8424 3.65289 18.7139 3.65234 19.0829C3.65234 19.456 3.45083 19.6588 3.2041 19.5331C2.9573 19.4116 2.83624 18.953 2.93945 18.5213C3.04266 18.0897 3.25813 16.9251 3.71582 14.1375L2.55762 15.2616C1.92046 15.8821 1.09031 17.195 0.0224609 19.9823L0.250977 17.285C0.403546 15.4595 0.987496 13.5347 2.06445 11.327C3.04266 9.32176 4.5636 7.15914 6.02637 5.70688C7.33666 4.40744 9.40542 2.84709 10.626 2.24008C11.851 1.63308 13.7582 0.887039 14.8711 0.585785C15.9794 0.284556 18.2002 0.0188488 19.8066 0.000823975ZM21.2588 3.17368C19.6613 3.07031 17.5659 3.28152 16.0986 3.69516C14.7435 4.07733 12.9267 4.81969 12.0605 5.33676C11.1946 5.8583 9.71813 7.00901 8.78027 7.89926C7.83794 8.78503 6.67488 10.1696 6.19922 10.9745C5.71949 11.7786 5.37934 12.529 5.44141 12.6424C5.50423 12.7548 6.76528 12.3686 8.24609 11.784C9.72697 11.195 12.554 10.4663 14.5283 10.1561C16.6957 9.8189 19.9852 9.69815 22.8301 9.84653C26.2716 10.0309 28.5962 10.4445 31.459 11.3797C33.6152 12.0849 35.3861 12.5565 35.3984 12.4364C35.4119 12.315 34.847 11.402 34.1426 10.4129C33.4426 9.42374 31.9703 7.84974 30.8799 6.91C29.7851 5.97486 27.7751 4.78789 26.4199 4.27524C25.0647 3.76266 22.7396 3.2681 21.2588 3.17368Z\"\r\n fill=\"#E4A300\"\r\n />\r\n </svg>\r\n </>\r\n );\r\n};\r\n\r\nexport default AtlasIcon;\r\n","// AtlasPaymentButton.tsx\r\nimport React, { useState } from \"react\";\r\nimport { AtlasPaymentForm } from \"./AtlasPaymentForm\";\r\nimport type { PaymentType } from \"../types\";\r\nimport AtlasIcon from \"@/assets/Icon\";\r\n\r\ninterface AtlasPaymentButtonProps {\r\n authKey: string; // Auth key passed directly\r\n merchantPaymentAddress: string;\r\n onSuccess?: (receipt: any) => void;\r\n onError?: (error: Error) => void;\r\n className?: string;\r\n buttonText?: string;\r\n amount?: string;\r\n paymentType?: PaymentType;\r\n disabled?: boolean;\r\n chainId?: number;\r\n}\r\n\r\nexport const AtlasPaymentButton: React.FC<AtlasPaymentButtonProps> = ({\r\n authKey,\r\n merchantPaymentAddress,\r\n onSuccess,\r\n onError,\r\n className = \"\",\r\n buttonText = \"Pay Now\",\r\n amount = \"0\",\r\n paymentType = \"one_time_payment\",\r\n disabled = false,\r\n // chainId = 8453,\r\n}) => {\r\n const [showModal, setShowModal] = useState(false);\r\n\r\n const handleSuccess = (receipt: any) => {\r\n onSuccess?.(receipt);\r\n setTimeout(() => setShowModal(false), 2000);\r\n };\r\n\r\n const handleError = (error: Error) => {\r\n onError?.(error);\r\n };\r\n\r\n const handleButtonClick = () => {\r\n if (!authKey) {\r\n alert(\"Payment configuration error: No auth key provided\");\r\n return;\r\n }\r\n setShowModal(true);\r\n };\r\n\r\n return (\r\n <>\r\n <button\r\n className={`atlas-payment-button ${className}`}\r\n onClick={handleButtonClick}\r\n disabled={disabled || !authKey}\r\n >\r\n {buttonText}\r\n </button>\r\n\r\n {showModal && (\r\n <div\r\n className=\"atlas-modal-overlay\"\r\n onClick={() => setShowModal(false)}\r\n >\r\n <div className=\"atlas-modal\" onClick={(e) => e.stopPropagation()}>\r\n <div className=\"atlas-modal-header\">\r\n <div className=\"atlas-modal-header2\">\r\n <AtlasIcon />\r\n <h3>Pay with Atlas</h3>\r\n </div>\r\n <button\r\n className=\"atlas-modal-close\"\r\n onClick={() => setShowModal(false)}\r\n >\r\n ×\r\n </button>\r\n </div>\r\n <div className=\"atlas-modal-body\">\r\n <AtlasPaymentForm\r\n authKey={authKey}\r\n merchantPaymentAddress={merchantPaymentAddress}\r\n amount={amount}\r\n paymentType={paymentType}\r\n onSuccess={handleSuccess}\r\n onError={handleError}\r\n buttonText={buttonText}\r\n disabled={disabled}\r\n // chainId={chainId}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n </>\r\n );\r\n};\r\n"],"names":["REACT_ELEMENT_TYPE","REACT_FRAGMENT_TYPE","jsxProd","type","config","maybeKey","key","propName","reactJsxRuntime_production","getComponentNameFromType","REACT_CLIENT_REFERENCE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_ACTIVITY_TYPE","REACT_PORTAL_TYPE","REACT_CONTEXT_TYPE","REACT_CONSUMER_TYPE","REACT_FORWARD_REF_TYPE","innerType","REACT_MEMO_TYPE","REACT_LAZY_TYPE","testStringCoercion","value","checkKeyStringCoercion","JSCompiler_inline_result","JSCompiler_temp_const","JSCompiler_inline_result$jscomp$0","getTaskName","name","getOwner","dispatcher","ReactSharedInternals","UnknownOwner","hasValidKey","hasOwnProperty","getter","defineKeyPropWarningGetter","props","displayName","warnAboutAccessingKey","specialPropKeyWarningShown","elementRefGetterWithDeprecationWarning","componentName","didWarnAboutElementRef","ReactElement","self","source","owner","debugStack","debugTask","jsxDEVImpl","isStaticChildren","children","isArrayImpl","validateChildKeys","keys","k","didWarnAboutKeySpread","node","React","require$$0","createTask","callStackForError","unknownOwnerDebugStack","unknownOwnerDebugTask","reactJsxRuntime_development","trackActualOwner","jsxRuntimeModule","require$$1","useAtlasPayment","authKey","paymentType","status","setStatus","useState","paymentData","setPaymentData","popupRef","useRef","paymentPromiseRef","useEffect","prev","validationData","credentialsResponse","credentialsData","updatedPaymentData","error","handleMessage","event","data","_a","checkPopup","openPaymentPopup","useCallback","merchantAddress","amount","url","popup","resolve","reject","AtlasPaymentStatus","getStatusIcon","jsx","getStatusColor","jsxs","AtlasPaymentForm","merchantPaymentAddress","onSuccess","onError","className","buttonText","disabled","processPayment","closePopup","reset","handleSubmit","e","receipt","handleReset","getPaymentTypeLabel","AtlasIcon","Fragment","AtlasPaymentButton","showModal","setShowModal","handleSuccess","handleError","handleButtonClick"],"mappings":";;;;;;;;;;;;;;;AAWA,MAAIA,IAAqB,OAAO,IAAI,4BAA4B,GAC9DC,IAAsB,OAAO,IAAI,gBAAgB;AACnD,WAASC,EAAQC,GAAMC,GAAQC,GAAU;AACvC,QAAIC,IAAM;AAGV,QAFWD,MAAX,WAAwBC,IAAM,KAAKD,IACxBD,EAAO,QAAlB,WAA0BE,IAAM,KAAKF,EAAO,MACxC,SAASA,GAAQ;AACnB,MAAAC,IAAW,CAAA;AACX,eAASE,KAAYH;AACnB,QAAUG,MAAV,UAAuBF,EAASE,CAAQ,IAAIH,EAAOG,CAAQ;AAAA,IACjE,MAAS,CAAAF,IAAWD;AAClB,WAAAA,IAASC,EAAS,KACX;AAAA,MACL,UAAUL;AAAA,MACV,MAAMG;AAAA,MACN,KAAKG;AAAA,MACL,KAAgBF,MAAX,SAAoBA,IAAS;AAAA,MAClC,OAAOC;AAAA,IACX;AAAA,EACA;AACA,SAAAG,EAAA,WAAmBP,GACnBO,EAAA,MAAcN,GACdM,EAAA,OAAeN;;;;;;;;;;;;;;sBCtBE,QAAQ,IAAI,aAA7B,gBACG,WAAY;AACX,aAASO,EAAyBN,GAAM;AACtC,UAAYA,KAAR,KAAc,QAAO;AACzB,UAAmB,OAAOA,KAAtB;AACF,eAAOA,EAAK,aAAaO,KACrB,OACAP,EAAK,eAAeA,EAAK,QAAQ;AACvC,UAAiB,OAAOA,KAApB,SAA0B,QAAOA;AACrC,cAAQA,GAAI;AAAA,QACV,KAAKF;AACH,iBAAO;AAAA,QACT,KAAKU;AACH,iBAAO;AAAA,QACT,KAAKC;AACH,iBAAO;AAAA,QACT,KAAKC;AACH,iBAAO;AAAA,QACT,KAAKC;AACH,iBAAO;AAAA,QACT,KAAKC;AACH,iBAAO;AAAA;AAEX,UAAiB,OAAOZ,KAApB;AACF,gBACgB,OAAOA,EAAK,OAAzB,YACC,QAAQ;AAAA,UACN;AAAA,WAEJA,EAAK,UACf;AAAA,UACU,KAAKa;AACH,mBAAO;AAAA,UACT,KAAKC;AACH,oBAAQd,EAAK,eAAe,aAAa;AAAA,UAC3C,KAAKe;AACH,oBAAQf,EAAK,SAAS,eAAe,aAAa;AAAA,UACpD,KAAKgB;AACH,gBAAIC,IAAYjB,EAAK;AACrB,mBAAAA,IAAOA,EAAK,aACZA,MACIA,IAAOiB,EAAU,eAAeA,EAAU,QAAQ,IACnDjB,IAAcA,MAAP,KAAc,gBAAgBA,IAAO,MAAM,eAC9CA;AAAA,UACT,KAAKkB;AACH,mBACGD,IAAYjB,EAAK,eAAe,MACxBiB,MAAT,OACIA,IACAX,EAAyBN,EAAK,IAAI,KAAK;AAAA,UAE/C,KAAKmB;AACH,YAAAF,IAAYjB,EAAK,UACjBA,IAAOA,EAAK;AACZ,gBAAI;AACF,qBAAOM,EAAyBN,EAAKiB,CAAS,CAAC;AAAA,YAC7D,QAAwB;AAAA,YAAA;AAAA;AAElB,aAAO;AAAA,IACb;AACI,aAASG,EAAmBC,GAAO;AACjC,aAAO,KAAKA;AAAA,IAClB;AACI,aAASC,EAAuBD,GAAO;AACrC,UAAI;AACF,QAAAD,EAAmBC,CAAK;AACxB,YAAIE,IAA2B;AAAA,MACvC,QAAkB;AACV,QAAAA,IAA2B;AAAA,MACnC;AACM,UAAIA,GAA0B;AAC5B,QAAAA,IAA2B;AAC3B,YAAIC,IAAwBD,EAAyB,OACjDE,IACc,OAAO,UAAtB,cACC,OAAO,eACPJ,EAAM,OAAO,WAAW,KAC1BA,EAAM,YAAY,QAClB;AACF,eAAAG,EAAsB;AAAA,UACpBD;AAAA,UACA;AAAA,UACAE;AAAA,QACV,GACeL,EAAmBC,CAAK;AAAA,MACvC;AAAA,IACA;AACI,aAASK,EAAY1B,GAAM;AACzB,UAAIA,MAASF,EAAqB,QAAO;AACzC,UACe,OAAOE,KAApB,YACSA,MAAT,QACAA,EAAK,aAAamB;AAElB,eAAO;AACT,UAAI;AACF,YAAIQ,IAAOrB,EAAyBN,CAAI;AACxC,eAAO2B,IAAO,MAAMA,IAAO,MAAM;AAAA,MACzC,QAAkB;AACV,eAAO;AAAA,MACf;AAAA,IACA;AACI,aAASC,IAAW;AAClB,UAAIC,IAAaC,EAAqB;AACtC,aAAgBD,MAAT,OAAsB,OAAOA,EAAW,SAAQ;AAAA,IAC7D;AACI,aAASE,IAAe;AACtB,aAAO,MAAM,uBAAuB;AAAA,IAC1C;AACI,aAASC,EAAY/B,GAAQ;AAC3B,UAAIgC,EAAe,KAAKhC,GAAQ,KAAK,GAAG;AACtC,YAAIiC,IAAS,OAAO,yBAAyBjC,GAAQ,KAAK,EAAE;AAC5D,YAAIiC,KAAUA,EAAO,eAAgB,QAAO;AAAA,MACpD;AACM,aAAkBjC,EAAO,QAAlB;AAAA,IACb;AACI,aAASkC,EAA2BC,GAAOC,GAAa;AACtD,eAASC,IAAwB;AAC/B,QAAAC,MACIA,IAA6B,IAC/B,QAAQ;AAAA,UACN;AAAA,UACAF;AAAA,QACZ;AAAA,MACA;AACM,MAAAC,EAAsB,iBAAiB,IACvC,OAAO,eAAeF,GAAO,OAAO;AAAA,QAClC,KAAKE;AAAA,QACL,cAAc;AAAA,MACtB,CAAO;AAAA,IACP;AACI,aAASE,IAAyC;AAChD,UAAIC,IAAgBnC,EAAyB,KAAK,IAAI;AACtD,aAAAoC,EAAuBD,CAAa,MAChCC,EAAuBD,CAAa,IAAI,IAC1C,QAAQ;AAAA,QACN;AAAA,MACV,IACMA,IAAgB,KAAK,MAAM,KACTA,MAAX,SAA2BA,IAAgB;AAAA,IACxD;AACI,aAASE,EACP3C,GACAG,GACAyC,GACAC,GACAC,GACAV,GACAW,GACAC,GACA;AACA,aAAAJ,IAAOR,EAAM,KACbpC,IAAO;AAAA,QACL,UAAUH;AAAA,QACV,MAAMG;AAAA,QACN,KAAKG;AAAA,QACL,OAAOiC;AAAA,QACP,QAAQU;AAAA,MAChB,IAC2BF,MAAX,SAAkBA,IAAO,UAAnC,OACI,OAAO,eAAe5C,GAAM,OAAO;AAAA,QACjC,YAAY;AAAA,QACZ,KAAKwC;AAAA,MACjB,CAAW,IACD,OAAO,eAAexC,GAAM,OAAO,EAAE,YAAY,IAAI,OAAO,MAAM,GACtEA,EAAK,SAAS,CAAA,GACd,OAAO,eAAeA,EAAK,QAAQ,aAAa;AAAA,QAC9C,cAAc;AAAA,QACd,YAAY;AAAA,QACZ,UAAU;AAAA,QACV,OAAO;AAAA,MACf,CAAO,GACD,OAAO,eAAeA,GAAM,cAAc;AAAA,QACxC,cAAc;AAAA,QACd,YAAY;AAAA,QACZ,UAAU;AAAA,QACV,OAAO;AAAA,MACf,CAAO,GACD,OAAO,eAAeA,GAAM,eAAe;AAAA,QACzC,cAAc;AAAA,QACd,YAAY;AAAA,QACZ,UAAU;AAAA,QACV,OAAO+C;AAAA,MACf,CAAO,GACD,OAAO,eAAe/C,GAAM,cAAc;AAAA,QACxC,cAAc;AAAA,QACd,YAAY;AAAA,QACZ,UAAU;AAAA,QACV,OAAOgD;AAAA,MACf,CAAO,GACD,OAAO,WAAW,OAAO,OAAOhD,EAAK,KAAK,GAAG,OAAO,OAAOA,CAAI,IACxDA;AAAA,IACb;AACI,aAASiD,EACPjD,GACAC,GACAC,GACAgD,GACAL,GACAD,GACAG,GACAC,GACA;AACA,UAAIG,IAAWlD,EAAO;AACtB,UAAekD,MAAX;AACF,YAAID;AACF,cAAIE,GAAYD,CAAQ,GAAG;AACzB,iBACED,IAAmB,GACnBA,IAAmBC,EAAS,QAC5BD;AAEA,cAAAG,EAAkBF,EAASD,CAAgB,CAAC;AAC9C,mBAAO,UAAU,OAAO,OAAOC,CAAQ;AAAA,UACnD;AACY,oBAAQ;AAAA,cACN;AAAA,YACd;AAAA,YACa,CAAAE,EAAkBF,CAAQ;AACjC,UAAIlB,EAAe,KAAKhC,GAAQ,KAAK,GAAG;AACtC,QAAAkD,IAAW7C,EAAyBN,CAAI;AACxC,YAAIsD,IAAO,OAAO,KAAKrD,CAAM,EAAE,OAAO,SAAUsD,IAAG;AACjD,iBAAiBA,OAAV;AAAA,QACjB,CAAS;AACD,QAAAL,IACE,IAAII,EAAK,SACL,oBAAoBA,EAAK,KAAK,SAAS,IAAI,WAC3C,kBACNE,EAAsBL,IAAWD,CAAgB,MAC7CI,IACA,IAAIA,EAAK,SAAS,MAAMA,EAAK,KAAK,SAAS,IAAI,WAAW,MAC5D,QAAQ;AAAA,UACN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UACAJ;AAAA,UACAC;AAAA,UACAG;AAAA,UACAH;AAAA,WAEDK,EAAsBL,IAAWD,CAAgB,IAAI;AAAA,MAChE;AAMM,UALAC,IAAW,MACAjD,MAAX,WACGoB,EAAuBpB,CAAQ,GAAIiD,IAAW,KAAKjD,IACtD8B,EAAY/B,CAAM,MACfqB,EAAuBrB,EAAO,GAAG,GAAIkD,IAAW,KAAKlD,EAAO,MAC3D,SAASA,GAAQ;AACnB,QAAAC,IAAW,CAAA;AACX,iBAASE,KAAYH;AACnB,UAAUG,MAAV,UAAuBF,EAASE,CAAQ,IAAIH,EAAOG,CAAQ;AAAA,MACrE,MAAa,CAAAF,IAAWD;AAClB,aAAAkD,KACEhB;AAAA,QACEjC;AAAA,QACe,OAAOF,KAAtB,aACIA,EAAK,eAAeA,EAAK,QAAQ,YACjCA;AAAA,MACd,GACa2C;AAAA,QACL3C;AAAA,QACAmD;AAAA,QACAP;AAAA,QACAC;AAAA,QACAjB,EAAQ;AAAA,QACR1B;AAAA,QACA6C;AAAA,QACAC;AAAA,MACR;AAAA,IACA;AACI,aAASK,EAAkBI,GAAM;AAC/B,MAAa,OAAOA,KAApB,YACWA,MAAT,QACAA,EAAK,aAAa5D,KAClB4D,EAAK,WACJA,EAAK,OAAO,YAAY;AAAA,IACjC;AACI,QAAIC,IAAQC,IACV9D,IAAqB,OAAO,IAAI,4BAA4B,GAC5DgB,IAAoB,OAAO,IAAI,cAAc,GAC7Cf,IAAsB,OAAO,IAAI,gBAAgB,GACjDW,IAAyB,OAAO,IAAI,mBAAmB,GACvDD,IAAsB,OAAO,IAAI,gBAAgB,GAE/CO,IAAsB,OAAO,IAAI,gBAAgB,GACnDD,IAAqB,OAAO,IAAI,eAAe,GAC/CE,IAAyB,OAAO,IAAI,mBAAmB,GACvDN,IAAsB,OAAO,IAAI,gBAAgB,GACjDC,IAA2B,OAAO,IAAI,qBAAqB,GAC3DO,IAAkB,OAAO,IAAI,YAAY,GACzCC,IAAkB,OAAO,IAAI,YAAY,GACzCP,IAAsB,OAAO,IAAI,gBAAgB,GACjDL,KAAyB,OAAO,IAAI,wBAAwB,GAC5DuB,IACE4B,EAAM,iEACRzB,IAAiB,OAAO,UAAU,gBAClCmB,KAAc,MAAM,SACpBQ,IAAa,QAAQ,aACjB,QAAQ,aACR,WAAY;AACV,aAAO;AAAA,IACnB;AACI,IAAAF,IAAQ;AAAA,MACN,0BAA0B,SAAUG,GAAmB;AACrD,eAAOA,EAAiB;AAAA,MAChC;AAAA,IACA;AACI,QAAItB,GACAG,IAAyB,CAAA,GACzBoB,IAAyBJ,EAAM,yBAAyB;AAAA,MAC1DA;AAAA,MACA3B;AAAA,IACN,EAAK,GACGgC,IAAwBH,EAAWlC,EAAYK,CAAY,CAAC,GAC5DyB,IAAwB,CAAA;AAC5B,IAAAQ,EAAA,WAAmBlE,GACnBkE,EAAA,MAAc,SAAUhE,GAAMC,GAAQC,GAAU2C,GAAQD,GAAM;AAC5D,UAAIqB,IACF,MAAMnC,EAAqB;AAC7B,aAAOmB;AAAA,QACLjD;AAAA,QACAC;AAAA,QACAC;AAAA,QACA;AAAA,QACA2C;AAAA,QACAD;AAAA,QACAqB,IACI,MAAM,uBAAuB,IAC7BH;AAAA,QACJG,IAAmBL,EAAWlC,EAAY1B,CAAI,CAAC,IAAI+D;AAAA,MAC3D;AAAA,IACA,GACIC,EAAA,OAAe,SAAUhE,GAAMC,GAAQC,GAAU2C,GAAQD,GAAM;AAC7D,UAAIqB,IACF,MAAMnC,EAAqB;AAC7B,aAAOmB;AAAA,QACLjD;AAAA,QACAC;AAAA,QACAC;AAAA,QACA;AAAA,QACA2C;AAAA,QACAD;AAAA,QACAqB,IACI,MAAM,uBAAuB,IAC7BH;AAAA,QACJG,IAAmBL,EAAWlC,EAAY1B,CAAI,CAAC,IAAI+D;AAAA,MAC3D;AAAA,IACA;AAAA,EACA,EAAG;;ACnWC,QAAQ,IAAI,aAAa,eAC3BG,EAAA,UAAiBP,GAAA,IAEjBO,EAAA,UAAiBC,GAAA;;ACsCZ,MAAMC,KAAkB,CAACC,GAAiBC,MAA6B;AAC5E,QAAM,CAACC,GAAQC,CAAS,IAAIC,EAAwB;AAAA,IAClD,QAAQ;AAAA,IACR,SAAS;AAAA,EAAA,CACV,GACK,CAACC,GAAaC,CAAc,IAAIF,EAAsB;AAAA,IAC1D,SAAS;AAAA,IACT,WAAW;AAAA,EAAA,CACZ,GACKG,IAAWC,EAAsB,IAAI,GACrCC,IAAoBD,EAGhB,IAAI;AAGd,EAAAE,EAAU,MAAM;AAgGd,KA/F0B,YAAY;AACpC,UAAI,CAACV,GAAS;AACZ,QAAAM,EAAe;AAAA,UACb,SAAS;AAAA,UACT,WAAW;AAAA,QAAA,CACZ,GACDH,EAAU;AAAA,UACR,QAAQ;AAAA,UACR,SAAS;AAAA,QAAA,CACV;AACD;AAAA,MACF;AAEA,MAAAG,EAAe,CAACK,OAAU,EAAE,GAAGA,GAAM,WAAW,KAAO,GACvDR,EAAU;AAAA,QACR,QAAQ;AAAA,QACR,SAAS;AAAA,MAAA,CACV;AAED,UAAI;AAcF,cAAMS,IACJ,OAbyB,MAAM;AAAA,UAC/B;AAAA,UACA;AAAA,YACE,QAAQ;AAAA,YACR,SAAS,EAAE,gBAAgB,mBAAA;AAAA,YAC3B,MAAM,KAAK,UAAU;AAAA,cACnB,KAAKZ;AAAA,cACL,iBAAiB,CAACC,CAAW;AAAA,YAAA,CAC9B;AAAA,UAAA;AAAA,QACH,GAIyB,KAAA;AAE3B,YAAI,CAACW,EAAe,OAAO;AACzB,UAAAT,EAAU;AAAA,YACR,QAAQ;AAAA,YACR,SAAS;AAAA,YACT,OAAOS,EAAe,SAAS;AAAA,UAAA,CAChC;AACD;AAAA,QACF;AAGA,cAAMC,IAAsB,MAAM;AAAA,UAChC;AAAA,UACA;AAAA,YACE,QAAQ;AAAA,YACR,SAAS,EAAE,gBAAgB,mBAAA;AAAA,YAC3B,MAAM,KAAK,UAAU;AAAA,cACnB,UAAUb;AAAA,cACV,iBAAiB,CAACC,CAAW;AAAA,YAAA,CAC9B;AAAA,UAAA;AAAA,QACH;AAGF,YAAI,CAACY,EAAoB;AACvB,gBAAM,IAAI,MAAM,6BAA6B;AAG/C,cAAMC,IACJ,MAAMD,EAAoB,KAAA,GAEtBE,IAAqB;AAAA,UACzB,QAAQH,EAAe;AAAA,UACvB,iBAAiBA,EAAe;AAAA,UAChC,aAAaE,EAAgB;AAAA,UAC7B,YAAYA,EAAgB;AAAA,UAC5B,aAAaA;AAAA,UACb,SAAS;AAAA,UACT,WAAW;AAAA,QAAA;AAGb,QAAAR,EAAeS,CAAkB,GACjCZ,EAAU;AAAA,UACR,QAAQ;AAAA,UACR,SAAS;AAAA,QAAA,CACV;AAAA,MACH,SAASa,GAAO;AACd,gBAAQ,MAAM,iCAAiCA,CAAK,GAKpDV,EAJkB;AAAA,UAChB,SAAS;AAAA,UACT,WAAW;AAAA,QAAA,CAEW,GACxBH,EAAU;AAAA,UACR,QAAQ;AAAA,UACR,SAAS;AAAA,UACT,OAAOa,aAAiB,QAAQA,EAAM,UAAU;AAAA,QAAA,CACjD;AAAA,MACH;AAAA,IACF,GAEA;AAAA,EACF,GAAG,CAAChB,GAASC,CAAW,CAAC,GAGzBS,EAAU,MAAM;AACd,UAAMO,IAAgB,CAACC,MAAwB;AAE7C,UAAIA,EAAM,WAAW,wBAAyB;AAE9C,YAAMC,IAAqBD,EAAM;AAEjC,cAAQC,EAAK,MAAA;AAAA,QACX,KAAK;AACH,UAAIA,EAAK,WAAW,aAClBhB,EAAU;AAAA,YACR,QAAQ;AAAA,YACR,SAAS;AAAA,YACT,iBAAiBgB,EAAK;AAAA,UAAA,CACvB,GAGGV,EAAkB,YACpBA,EAAkB,QAAQ,QAAQ;AAAA,YAChC,SAAS;AAAA,YACT,iBAAiBU,EAAK;AAAA,YACtB,QAAQA,EAAK;AAAA,YACb,UAAUA,EAAK;AAAA,YACf,MAAMA,EAAK;AAAA,YACX,aAAAd;AAAA,UAAA,CACD,GACDI,EAAkB,UAAU,OAI1BF,EAAS,WACX,WAAW,MAAM;;AACf,aAAAa,IAAAb,EAAS,YAAT,QAAAa,EAAkB,SAClBb,EAAS,UAAU;AAAA,UACrB,GAAG,GAAI,MAGTJ,EAAU;AAAA,YACR,QAAQ;AAAA,YACR,SAASgB,EAAK,SAAS;AAAA,YACvB,OAAOA,EAAK;AAAA,UAAA,CACb,GAGGV,EAAkB,YACpBA,EAAkB,QAAQ;AAAA,YACxB,IAAI,MAAMU,EAAK,SAAS,gBAAgB;AAAA,UAAA,GAE1CV,EAAkB,UAAU,OAI1BF,EAAS,WACX,WAAW,MAAM;;AACf,aAAAa,IAAAb,EAAS,YAAT,QAAAa,EAAkB,SAClBb,EAAS,UAAU;AAAA,UACrB,GAAG,GAAI;AAGX;AAAA,QAEF,KAAK;AACH,UAAAJ,EAAU;AAAA,YACR,QAAQ;AAAA,YACR,SAASgB,EAAK,SAAS;AAAA,YACvB,OAAOA,EAAK;AAAA,UAAA,CACb,GAEGV,EAAkB,YACpBA,EAAkB,QAAQ;AAAA,YACxB,IAAI,MAAMU,EAAK,SAAS,gBAAgB;AAAA,UAAA,GAE1CV,EAAkB,UAAU,OAG1BF,EAAS,YACXA,EAAS,QAAQ,MAAA,GACjBA,EAAS,UAAU;AAErB;AAAA,QAEF,KAAK;AACH,UAAIA,EAAS,YACXA,EAAS,QAAQ,MAAA,GACjBA,EAAS,UAAU,OAIjBL,EAAO,WAAW,iBACpBC,EAAU;AAAA,YACR,QAAQ;AAAA,YACR,SAAS;AAAA,UAAA,CACV,GAEGM,EAAkB,YACpBA,EAAkB,QAAQ;AAAA,YACxB,IAAI,MAAM,2BAA2B;AAAA,UAAA,GAEvCA,EAAkB,UAAU;AAGhC;AAAA,MAAA;AAAA,IAEN;AAEA,kBAAO,iBAAiB,WAAWQ,CAAa,GACzC,MAAM,OAAO,oBAAoB,WAAWA,CAAa;AAAA,EAClE,GAAG,CAACZ,GAAaH,EAAO,MAAM,CAAC,GAG/BQ,EAAU,MAAM;AACd,QAAI,CAACH,EAAS,QAAS;AAEvB,UAAMc,IAAa,YAAY,MAAM;;AACnC,OAAID,IAAAb,EAAS,YAAT,QAAAa,EAAkB,WACpB,cAAcC,CAAU,GAGpBnB,EAAO,WAAW,iBACpBC,EAAU;AAAA,QACR,QAAQ;AAAA,QACR,SAAS;AAAA,MAAA,CACV,GAEGM,EAAkB,YACpBA,EAAkB,QAAQ;AAAA,QACxB,IAAI,MAAM,2BAA2B;AAAA,MAAA,GAEvCA,EAAkB,UAAU,QAIhCF,EAAS,UAAU;AAAA,IAEvB,GAAG,GAAG;AAEN,WAAO,MAAM,cAAcc,CAAU;AAAA,EACvC,GAAG,CAACnB,EAAO,MAAM,CAAC;AAElB,QAAMoB,IAAmBC;AAAA,IACvB,OAAOC,GAAyBC,MAAmB;AACjD,UAAI,CAACpB,EAAY,WAAW,CAACA,EAAY;AACvC,cAAM,IAAI,MAAM,4BAA4B;AAI9C,MAAIE,EAAS,YACXA,EAAS,QAAQ,MAAA,GACjBA,EAAS,UAAU;AAerB,YAAMmB,IAAM,6BAXG,IAAI,gBAAgB;AAAA,QACjC,iBAAAF;AAAA,QACA,QAAAC;AAAA,QACA,YAAYpB,EAAY,YAAY;AAAA,QACpC,aAAa;AAAA,UACX,KAAK,UAAUA,EAAY,WAAW;AAAA,QAAA;AAAA,QAExC,aAAAJ;AAAA,QACA,QAAQ,OAAO,SAAS;AAAA,MAAA,CACzB,EAE+C,SAAA,CAAU,IAGpD0B,IAAQ,OAAO;AAAA,QACnBD;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAGF,UAAI,CAACC,GAAO;AACV,cAAMX,IAAQ;AACd,cAAAb,EAAU;AAAA,UACR,QAAQ;AAAA,UACR,SAASa;AAAA,UACT,OAAAA;AAAA,QAAA,CACD,GACK,IAAI,MAAMA,CAAK;AAAA,MACvB;AAEA,MAAAT,EAAS,UAAUoB,GACnBxB,EAAU;AAAA,QACR,QAAQ;AAAA,QACR,SAAS;AAAA,MAAA,CACV;AAAA,IACH;AAAA,IACA,CAACE,GAAaJ,CAAW;AAAA,EAAA;AAsD3B,SAAO;AAAA,IACL,gBApDqB,OAAOuB,GAAyBC,MAAmB;AACxE,UAAI,CAACpB,EAAY;AACf,cAAM,IAAI,MAAM,4BAA4B;AAI9C,aAAO,IAAI,QAAQ,CAACuB,GAASC,MAAW;AACtC,QAAApB,EAAkB,UAAU,EAAE,SAAAmB,GAAS,QAAAC,EAAA,GAGvCP,EAAiBE,GAAiBC,CAAM,EAAE,MAAMI,CAAM;AAAA,MACxD,CAAC;AAAA,IACH;AAAA,IAyCE,QAAA3B;AAAA,IACA,aAAAG;AAAA,IACA,YAzCiB,MAAM;AACvB,MAAIE,EAAS,YACXA,EAAS,QAAQ,MAAA,GACjBA,EAAS,UAAU,OAGjBL,EAAO,WAAW,gBACpBC,EAAU;AAAA,QACR,QAAQ;AAAA,QACR,SAAS;AAAA,MAAA,CACV,GAGCM,EAAkB,YACpBA,EAAkB,QAAQ,OAAO,IAAI,MAAM,mBAAmB,CAAC,GAC/DA,EAAkB,UAAU;AAAA,IAEhC;AAAA,IAyBE,OAvBY,MAAM;AAClB,MAAAN,EAAU,EAAE,QAAQ,QAAQ,SAAS,gBAAgB,GACrDG,EAAe;AAAA,QACb,SAAS;AAAA,QACT,WAAW;AAAA,MAAA,CACZ,GAEGC,EAAS,YACXA,EAAS,QAAQ,MAAA,GACjBA,EAAS,UAAU,OAGjBE,EAAkB,YACpBA,EAAkB,QAAQ,OAAO,IAAI,MAAM,eAAe,CAAC,GAC3DA,EAAkB,UAAU;AAAA,IAEhC;AAAA,EAOE;AAEJ,GCnYaqB,KAAwD,CAAC;AAAA,EACpE,QAAA5B;AACF,MAAM;AACJ,QAAM6B,IAAgB,MAAM;AAC1B,YAAQ7B,EAAO,QAAA;AAAA,MACb,KAAK;AACH,eACE8B,gBAAAA,MAAC,SAAI,WAAU,iBACb,gCAAC,OAAA,EAAI,WAAU,wBAAuB,EAAA,CACxC;AAAA,MAEJ,KAAK;AACH,eAAOA,gBAAAA,EAAAA,IAAC,OAAA,EAAI,WAAU,mCAAkC,UAAA,KAAC;AAAA,MAC3D,KAAK;AACH,eAAOA,gBAAAA,EAAAA,IAAC,OAAA,EAAI,WAAU,iCAAgC,UAAA,KAAC;AAAA,MACzD;AACE,eAAO;AAAA,IAAA;AAAA,EAEb,GAEMC,IAAiB,MAAM;AAC3B,YAAQ/B,EAAO,QAAA;AAAA,MACb,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT,KAAK;AACH,eAAO;AAAA,MACT;AACE,eAAO;AAAA,IAAA;AAAA,EAEb;AAEA,SAAIA,EAAO,WAAW,SAAe,OAGnC8B,gBAAAA,EAAAA,IAAC,OAAA,EAAI,WAAW,wBAAwBC,EAAA,CAAgB,IACtD,UAAAC,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,wBACZ,UAAA;AAAA,IAAAH,EAAA;AAAA,IACDG,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,qBACb,UAAA;AAAA,MAAAF,gBAAAA,EAAAA,IAAC,KAAA,EAAE,WAAU,wBAAwB,UAAA9B,EAAO,SAAQ;AAAA,MACnDA,EAAO,mBACNgC,gBAAAA,OAAC,KAAA,EAAE,WAAU,0BAAyB,UAAA;AAAA,QAAA;AAAA,QAC/BhC,EAAO,gBAAgB,MAAM,GAAG,EAAE;AAAA,QAAE;AAAA,QACxCA,EAAO,gBAAgB,MAAM,EAAE;AAAA,MAAA,GAClC;AAAA,MAEDA,EAAO,SACN8B,gBAAAA,EAAAA,IAAC,OAAE,WAAU,uBAAuB,YAAO,MAAA,CAAM;AAAA,IAAA,EAAA,CAErD;AAAA,EAAA,EAAA,CACF,EAAA,CACF;AAEJ,GCvDaG,KAAoD,CAAC;AAAA,EAChE,SAAAnC;AAAA,EACA,wBAAAoC;AAAA,EACA,QAAAX,IAAS;AAAA,EACT,aAAAxB,IAAc;AAAA,EACd,WAAAoC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,YAAAC,IAAa;AAAA,EACb,UAAAC,IAAW;AACb,MAAM;AACJ,QAAM,EAAE,gBAAAC,GAAgB,QAAAxC,GAAQ,aAAAG,GAAa,YAAAsC,GAAY,OAAAC,MACvD7C,GAAgBC,GAASC,CAAW,GAEhC4C,IAAe,OAAOC,MAAuB;AAGjD,QAFAA,EAAE,eAAA,GAEE,IAACzC,KAAA,QAAAA,EAAa,YAAW,WAAWoB,CAAM,KAAK;AAInD,UAAI;AACF,cAAMsB,IAAU,MAAML,EAAeN,GAAwBX,CAAM;AACnE,QAAAY,KAAA,QAAAA,EAAYU;AAAA,MACd,SAAS/B,GAAO;AACd,QAAAsB,KAAA,QAAAA,EAAUtB;AAAA,MACZ;AAAA,EACF,GAEMgC,IAAc,MAAM;AACxB,IAAAJ,EAAA;AAAA,EACF;AAGA,EAAAlC,EAAU,MAAM;AACd,IAAIR,EAAO,WAAW,aAAaA,EAAO,oBACxCmC,KAAA,QAAAA,EAAY;AAAA,MACV,SAAS;AAAA,MACT,iBAAiBnC,EAAO;AAAA,MACxB,QAAAuB;AAAA,MACA,UAAUW;AAAA,MACV,MAAMnC;AAAA,MACN,aAAAI;AAAA,IAAA;AAAA,EAGN,GAAG,CAACH,EAAO,QAAQA,EAAO,eAAe,CAAC,GAG1CQ,EAAU,MAAM;AACd,IAAIR,EAAO,WAAW,WAAWA,EAAO,UACtCoC,KAAA,QAAAA,EAAU,IAAI,MAAMpC,EAAO,KAAK;AAAA,EAEpC,GAAG,CAACA,EAAO,QAAQA,EAAO,KAAK,CAAC;AAEhC,QAAM+C,IAAsB,CAACtH,MACpBA,MAAS,aAAa,sBAAsB;AAIrD,SAAK0E,IAYDA,EAAY,YAEZ2B,gBAAAA,EAAAA,IAAC,SAAI,WAAW,mBAAmBO,CAAS,IAC1C,UAAAL,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,iBACb,UAAA;AAAA,IAAAF,gBAAAA,EAAAA,IAAC,OAAA,EAAI,WAAU,gBAAA,CAAgB;AAAA,IAC/BA,gBAAAA,EAAAA,IAAC,OAAE,UAAA,iCAAA,CAA8B;AAAA,EAAA,EAAA,CACnC,EAAA,CACF,IAKA,CAAC3B,EAAY,WAAWH,EAAO,WAAW,UAE1C8B,gBAAAA,EAAAA,IAAC,SAAI,WAAW,mBAAmBO,CAAS,IAC1C,UAAAL,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,qBACb,UAAA;AAAA,IAAAF,gBAAAA,EAAAA,IAAC,OAAA,EAAI,WAAU,oBAAmB,UAAA,MAAE;AAAA,IACpCA,gBAAAA,EAAAA,IAAC,QAAG,UAAA,uBAAA,CAAoB;AAAA,IACxBA,gBAAAA,EAAAA,IAAC,KAAA,EAAG,UAAA9B,EAAO,SAAS,gCAA+B;AAAA,0BAClD,UAAA,EAAO,SAAS0C,GAAO,WAAU,0BAAyB,UAAA,YAAA,CAE3D;AAAA,EAAA,EAAA,CACF,EAAA,CACF,IAKFV,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAW,mBAAmBK,CAAS,IAC1C,UAAA;AAAA,IAAAL,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,gBACb,UAAA;AAAA,MAAAF,gBAAAA,MAAC,OAAA,EAAI,WAAU,4BACZ,UAAAiB,EAAoBhD,CAAW,GAClC;AAAA,MACAiC,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,eAAc,UAAA;AAAA,QAAA;AAAA,+BACtB,QAAA,EAAM,UAAA;AAAA,UAAAT;AAAA,UAAO;AAAA,QAAA,EAAA,CAAK;AAAA,MAAA,EAAA,CACzB;AAAA,IAAA,GACF;AAAA,IAEAO,gBAAAA,EAAAA,IAAC,OAAA,EAAI,WAAU,gBAAA,CAAgB;AAAA,IAE/BE,gBAAAA,EAAAA,KAAC,QAAA,EAAK,UAAUW,GAAc,WAAU,cAEtC,UAAA;AAAA,MAAAb,gBAAAA,EAAAA,IAAC,SAAI,WAAU,yBACb,UAAAE,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,sBACb,UAAA;AAAA,QAAAF,gBAAAA,EAAAA,IAAC,QAAG,UAAA,kBAAA,CAAe;AAAA,QACnBE,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,mBACb,UAAA;AAAA,UAAAA,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,mBACb,UAAA;AAAA,YAAAF,gBAAAA,EAAAA,IAAC,QAAA,EAAK,WAAU,oBAAmB,UAAA,YAAQ;AAAA,kCAC1C,QAAA,EAAK,WAAU,oBACb,UAAA3B,EAAY,UAAU,MAAA,CACzB;AAAA,UAAA,GACF;AAAA,UACCA,EAAY,eACX6B,gBAAAA,OAAC,OAAA,EAAI,WAAU,mBACb,UAAA;AAAA,YAAAF,gBAAAA,EAAAA,IAAC,QAAA,EAAK,WAAU,oBAAmB,UAAA,kBAAc;AAAA,YACjDE,gBAAAA,EAAAA,KAAC,QAAA,EAAK,WAAU,oBACb,UAAA;AAAA,cAAA7B,EAAY,YAAY,MAAM,GAAG,CAAC;AAAA,cAAE;AAAA,cACpCA,EAAY,YAAY,MAAM,EAAE;AAAA,YAAA,EAAA,CACnC;AAAA,UAAA,EAAA,CACF;AAAA,QAAA,EAAA,CAEJ;AAAA,MAAA,EAAA,CACF,EAAA,CACF;AAAA,4BAEC,OAAA,EAAI,WAAU,uBACb,UAAA6B,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,mBACb,UAAA;AAAA,QAAAF,gBAAAA,EAAAA,IAAC,QAAA,EAAK,WAAU,oBAAmB,UAAA,aAAS;AAAA,QAC5CE,gBAAAA,EAAAA,KAAC,QAAA,EAAK,WAAU,oBACb,UAAA;AAAA,UAAAE,EAAuB,MAAM,GAAG,CAAC;AAAA,UAAE;AAAA,UACnCA,EAAuB,MAAM,EAAE;AAAA,QAAA,EAAA,CAClC;AAAA,MAAA,EAAA,CACF,EAAA,CACF;AAAA,4BAGC,OAAA,EAAI,WAAU,gCACb,UAAAF,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,qBACb,UAAA;AAAA,QAAAF,gBAAAA,EAAAA,IAAC,QAAA,EAAK,WAAU,sBAAqB,UAAA,kBAAc;AAAA,QACnDE,gBAAAA,EAAAA,KAAC,QAAA,EAAK,WAAU,sBACb,UAAA;AAAA,UAAAT;AAAA,UAAO;AAAA,UAACO,gBAAAA,EAAAA,IAAC,QAAA,EAAK,WAAU,sBAAqB,UAAA,OAAA,CAAI;AAAA,QAAA,EAAA,CACpD;AAAA,MAAA,EAAA,CACF,EAAA,CACF;AAAA,MAGC9B,EAAO,WAAW,gBACjBgC,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,sBACb,UAAA;AAAA,QAAAF,gBAAAA,EAAAA,IAAC,OAAA,EAAI,WAAU,oBAAmB,UAAA,MAAE;AAAA,QACpCE,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,uBACb,UAAA;AAAA,UAAAF,gBAAAA,EAAAA,IAAC,QAAG,UAAA,4BAAA,CAAyB;AAAA,UAC7BA,gBAAAA,EAAAA,IAAC,OAAE,UAAA,oDAAA,CAAiD;AAAA,UACpDA,gBAAAA,EAAAA,IAAC,KAAA,EAAE,WAAU,oBAAmB,UAAA,iGAGhC;AAAA,UACAE,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,uBACb,UAAA;AAAA,YAAAF,gBAAAA,EAAAA;AAAAA,cAAC;AAAA,cAAA;AAAA,gBACC,MAAK;AAAA,gBACL,SAASW;AAAA,gBACT,WAAU;AAAA,gBACX,UAAA;AAAA,cAAA;AAAA,YAAA;AAAA,YAGDX,gBAAAA,EAAAA;AAAAA,cAAC;AAAA,cAAA;AAAA,gBACC,MAAK;AAAA,gBACL,SAAS,MAAM;AAEb,kBAAI,OAAO,KAAK,IAAI,mBAAmB,KACrC,OAAO,MAAA;AAAA,gBAEX;AAAA,gBACA,WAAU;AAAA,gBACX,UAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UAED,EAAA,CACF;AAAA,QAAA,EAAA,CACF;AAAA,MAAA,GACF;AAAA,MAGFE,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,sBACZ,UAAA;AAAA,QAAAhC,EAAO,WAAW,WACjB8B,gBAAAA,EAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,WAAU;AAAA,YACV,UACE,CAAC3B,EAAY,WAAW,WAAWoB,CAAM,KAAK,KAAKgB;AAAA,YAGpD,UAAAD;AAAA,UAAA;AAAA,QAAA;AAAA,QAIJtC,EAAO,WAAW,WACjBA,EAAO,WAAW,UAClBA,EAAO,WAAW,gBAChBgC,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,wBACb,UAAA;AAAA,UAAAF,gBAAAA,MAACF,MAAmB,QAAA5B,GAAgB;AAAA,UAEnCA,EAAO,WAAW,aACjB8B,gBAAAA,EAAAA;AAAAA,YAAC;AAAA,YAAA;AAAA,cACC,MAAK;AAAA,cACL,SAASgB;AAAA,cACT,WAAU;AAAA,cACX,UAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QAED,EAAA,CAEJ;AAAA,MAAA,EAAA,CAEN;AAAA,IAAA,EAAA,CACF;AAAA,EAAA,GACF,IAnKEhB,gBAAAA,EAAAA,IAAC,SAAI,WAAW,mBAAmBO,CAAS,IAC1C,UAAAL,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,iBACb,UAAA;AAAA,IAAAF,gBAAAA,EAAAA,IAAC,OAAA,EAAI,WAAU,gBAAA,CAAgB;AAAA,IAC/BA,gBAAAA,EAAAA,IAAC,OAAE,UAAA,iCAAA,CAA8B;AAAA,EAAA,EAAA,CACnC,EAAA,CACF;AAgKN,GCtPMkB,KAAY,MAEdlB,gBAAAA,MAAAmB,EAAAA,UAAA,EACE,UAAAnB,gBAAAA,EAAAA;AAAAA,EAAC;AAAA,EAAA;AAAA,IACC,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,OAAM;AAAA,IAEN,UAAAA,gBAAAA,EAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,GAAE;AAAA,QACF,MAAK;AAAA,MAAA;AAAA,IAAA;AAAA,EACP;AAAA,GAEJ,GCISoB,KAAwD,CAAC;AAAA,EACpE,SAAApD;AAAA,EACA,wBAAAoC;AAAA,EACA,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,YAAAC,IAAa;AAAA,EACb,QAAAf,IAAS;AAAA,EACT,aAAAxB,IAAc;AAAA,EACd,UAAAwC,IAAW;AAAA;AAEb,MAAM;AACJ,QAAM,CAACY,GAAWC,CAAY,IAAIlD,EAAS,EAAK,GAE1CmD,IAAgB,CAACR,MAAiB;AACtC,IAAAV,KAAA,QAAAA,EAAYU,IACZ,WAAW,MAAMO,EAAa,EAAK,GAAG,GAAI;AAAA,EAC5C,GAEME,IAAc,CAACxC,MAAiB;AACpC,IAAAsB,KAAA,QAAAA,EAAUtB;AAAA,EACZ,GAEMyC,IAAoB,MAAM;AAC9B,QAAI,CAACzD,GAAS;AACZ,YAAM,mDAAmD;AACzD;AAAA,IACF;AACA,IAAAsD,EAAa,EAAI;AAAA,EACnB;AAEA,SACEpB,gBAAAA,EAAAA,KAAAiB,YAAA,EACE,UAAA;AAAA,IAAAnB,gBAAAA,EAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAW,wBAAwBO,CAAS;AAAA,QAC5C,SAASkB;AAAA,QACT,UAAUhB,KAAY,CAACzC;AAAA,QAEtB,UAAAwC;AAAA,MAAA;AAAA,IAAA;AAAA,IAGFa,KACCrB,gBAAAA,EAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,SAAS,MAAMsB,EAAa,EAAK;AAAA,QAEjC,UAAApB,gBAAAA,EAAAA,KAAC,SAAI,WAAU,eAAc,SAAS,CAACY,MAAMA,EAAE,gBAAA,GAC7C,UAAA;AAAA,UAAAZ,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,sBACb,UAAA;AAAA,YAAAA,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAU,uBACb,UAAA;AAAA,cAAAF,gBAAAA,EAAAA,IAACkB,IAAA,EAAU;AAAA,cACXlB,gBAAAA,EAAAA,IAAC,QAAG,UAAA,iBAAA,CAAc;AAAA,YAAA,GACpB;AAAA,YACAA,gBAAAA,EAAAA;AAAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAU;AAAA,gBACV,SAAS,MAAMsB,EAAa,EAAK;AAAA,gBAClC,UAAA;AAAA,cAAA;AAAA,YAAA;AAAA,UAED,GACF;AAAA,UACAtB,gBAAAA,EAAAA,IAAC,OAAA,EAAI,WAAU,oBACb,UAAAA,gBAAAA,EAAAA;AAAAA,YAACG;AAAA,YAAA;AAAA,cACC,SAAAnC;AAAA,cACA,wBAAAoC;AAAA,cACA,QAAAX;AAAA,cACA,aAAAxB;AAAA,cACA,WAAWsD;AAAA,cACX,SAASC;AAAA,cACT,YAAAhB;AAAA,cACA,UAAAC;AAAA,YAAA;AAAA,UAAA,EAEF,CACF;AAAA,QAAA,EAAA,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,EACF,GAEJ;AAEJ;","x_google_ignoreList":[0,1,2]}
|
package/dist/index.js
CHANGED
|
@@ -19,5 +19,5 @@
|
|
|
19
19
|
<%s {...props} />
|
|
20
20
|
React keys must be passed directly to JSX without using spread:
|
|
21
21
|
let props = %s;
|
|
22
|
-
<%s key={someKey} {...props} />`,C,x,R,x),Z[x+C]=!0)}if(x=null,f!==void 0&&(d(f),x=""+f),t(s)&&(d(s.key),x=""+s.key),"key"in s){f={};for(var D in s)D!=="key"&&(f[D]=s[D])}else f=s;return x&&r(f,typeof e=="function"?e.displayName||e.name||"Unknown":e),E(e,x,P,_,l(),f,I,F)}function v(e){typeof e=="object"&&e!==null&&e.$$typeof===m&&e._store&&(e._store.validated=1)}var h=j,m=Symbol.for("react.transitional.element"),n=Symbol.for("react.portal"),y=Symbol.for("react.fragment"),g=Symbol.for("react.strict_mode"),b=Symbol.for("react.profiler"),T=Symbol.for("react.consumer"),ee=Symbol.for("react.context"),ae=Symbol.for("react.forward_ref"),te=Symbol.for("react.suspense"),se=Symbol.for("react.suspense_list"),re=Symbol.for("react.memo"),U=Symbol.for("react.lazy"),ne=Symbol.for("react.activity"),le=Symbol.for("react.client.reference"),O=h.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,H=Object.prototype.hasOwnProperty,oe=Array.isArray,L=console.createTask?console.createTask:function(){return null};h={react_stack_bottom_frame:function(e){return e()}};var W,J={},B=h.react_stack_bottom_frame.bind(h,u)(),G=L(i(u)),Z={};A.Fragment=y,A.jsx=function(e,s,f,C,_){var P=1e4>O.recentlyCreatedOwnerStacks++;return c(e,s,f,!1,C,_,P?Error("react-stack-top-frame"):B,P?L(i(e)):G)},A.jsxs=function(e,s,f,C,_){var P=1e4>O.recentlyCreatedOwnerStacks++;return c(e,s,f,!0,C,_,P?Error("react-stack-top-frame"):B,P?L(i(e)):G)}}()),A}process.env.NODE_ENV==="production"?S.exports=X():S.exports=Q();var a=S.exports;const z=(o,p)=>{const[d,i]=j.useState({status:"idle",message:"Ready to pay"}),[l,u]=j.useState({isValid:!1,isLoading:!0}),t=j.useRef(null),r=j.useRef(null);j.useEffect(()=>{(async()=>{if(!o){u({isValid:!1,isLoading:!1}),i({status:"error",message:"No auth key provided"});return}u(m=>({...m,isLoading:!0})),i({status:"loading",message:"Loading payment information..."});try{const n=await(await fetch("https://api.atlascard.xyz/api/auth/external/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:o,required_scopes:[p]})})).json();n.valid||i({status:"error",message:"Failed to initialize payment",error:n.error||"Invalid Auth Key"});const y=await fetch("https://api.atlascard.xyz/api/credentials/get",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({auth_key:o,required_scopes:[p]})});if(!y.ok)throw new Error("Failed to fetch credentials");const g=await y.json(),b={cardId:n.cardId,businessAddress:n.businessAddress,userAddress:g.address,identifier:g.identifier,credentials:g,isValid:!0,isLoading:!1};u(b),i({status:"ready",message:"Ready to process payment"})}catch(m){console.error("Payment initialization error:",m),u({isValid:!1,isLoading:!1}),i({status:"error",message:"Failed to initialize payment",error:m instanceof Error?m.message:"Unknown error"})}})()},[o,p]),j.useEffect(()=>{const h=m=>{if(m.origin!=="https://atlascard.xyz")return;const n=m.data;switch(n.type){case"payment_result":n.status==="success"?(i({status:"success",message:"Payment successful!",transactionHash:n.transactionHash}),r.current&&(r.current.resolve({success:!0,transactionHash:n.transactionHash,amount:n.amount,merchant:n.merchant,type:n.paymentType,paymentData:l}),r.current=null),t.current&&setTimeout(()=>{var y;(y=t.current)==null||y.close(),t.current=null},3e3)):(i({status:"error",message:n.error||"Payment failed",error:n.error}),r.current&&(r.current.reject(new Error(n.error||"Payment failed")),r.current=null),t.current&&setTimeout(()=>{var y;(y=t.current)==null||y.close(),t.current=null},3e3));break;case"payment_error":i({status:"error",message:n.error||"Payment failed",error:n.error}),r.current&&(r.current.reject(new Error(n.error||"Payment failed")),r.current=null),t.current&&(t.current.close(),t.current=null);break;case"close_popup":t.current&&(t.current.close(),t.current=null),d.status==="popup_open"&&(i({status:"ready",message:"Payment cancelled"}),r.current&&(r.current.reject(new Error("Payment cancelled by user")),r.current=null));break}};return window.addEventListener("message",h),()=>window.removeEventListener("message",h)},[l,d.status]),j.useEffect(()=>{if(!t.current)return;const h=setInterval(()=>{var m;(m=t.current)!=null&&m.closed&&(clearInterval(h),d.status==="popup_open"&&(i({status:"ready",message:"Payment cancelled"}),r.current&&(r.current.reject(new Error("Payment cancelled by user")),r.current=null)),t.current=null)},500);return()=>clearInterval(h)},[d.status]);const w=j.useCallback(async(h,m)=>{if(!l.isValid||!l.credentials)throw new Error("Payment data not validated");t.current&&(t.current.close(),t.current=null);const y=`https://atlascard.xyz/pay?${new URLSearchParams({merchantAddress:h,amount:m,eoaAddress:l.credentials.address,credentials:encodeURIComponent(JSON.stringify(l.credentials)),paymentType:p,origin:window.location.origin}).toString()}`,g=window.open(y,"Atlascard Payment","width=500,height=700,scrollbars=no,resizable=no,menubar=no,toolbar=no,location=no,status=no");if(!g){const b="Please allow popups to complete the payment";throw i({status:"error",message:b,error:b}),new Error(b)}t.current=g,i({status:"popup_open",message:"Complete payment in the popup window"})},[l,p]);return{processPayment:async(h,m)=>{if(!l.isValid)throw new Error("Payment data not validated");return new Promise((n,y)=>{r.current={resolve:n,reject:y},w(h,m).catch(y)})},status:d,paymentData:l,closePopup:()=>{t.current&&(t.current.close(),t.current=null),d.status==="popup_open"&&i({status:"ready",message:"Payment cancelled"}),r.current&&(r.current.reject(new Error("Payment cancelled")),r.current=null)},reset:()=>{i({status:"idle",message:"Ready to pay"}),u({isValid:!1,isLoading:!0}),t.current&&(t.current.close(),t.current=null),r.current&&(r.current.reject(new Error("Payment reset")),r.current=null)}}},$=({status:o})=>{const p=()=>{switch(o.status){case"processing":return a.jsx("div",{className:"atlas-spinner",children:a.jsx("div",{className:"atlas-spinner-circle"})});case"success":return a.jsx("div",{className:"atlas-status-icon atlas-success",children:"✓"});case"error":return a.jsx("div",{className:"atlas-status-icon atlas-error",children:"✗"});default:return null}},d=()=>{switch(o.status){case"processing":return"atlas-status-processing";case"success":return"atlas-status-success";case"error":return"atlas-status-error";default:return""}};return o.status==="idle"?null:a.jsx("div",{className:`atlas-payment-status ${d()}`,children:a.jsxs("div",{className:"atlas-status-content",children:[p(),a.jsxs("div",{className:"atlas-status-text",children:[a.jsx("p",{className:"atlas-status-message",children:o.message}),o.transactionHash&&a.jsxs("p",{className:"atlas-transaction-hash",children:["Tx: ",o.transactionHash.slice(0,10),"...",o.transactionHash.slice(-8)]}),o.error&&a.jsx("p",{className:"atlas-error-message",children:o.error})]})]})})},V=({authKey:o,merchantPaymentAddress:p,amount:d="0",paymentType:i="one_time_payment",onSuccess:l,onError:u,className:t="",buttonText:r="PAY NOW",disabled:w=!1})=>{const{processPayment:E,status:c,paymentData:v,closePopup:h,reset:m}=z(o,i),n=async b=>{if(b.preventDefault(),!(!(v!=null&&v.isValid)||parseFloat(d)<=0))try{const T=await E(p,d);l==null||l(T)}catch(T){u==null||u(T)}},y=()=>{m()};j.useEffect(()=>{c.status==="success"&&c.transactionHash&&(l==null||l({success:!0,transactionHash:c.transactionHash,amount:d,merchant:p,type:i,paymentData:v}))},[c.status,c.transactionHash]),j.useEffect(()=>{c.status==="error"&&c.error&&(u==null||u(new Error(c.error)))},[c.status,c.error]);const g=b=>b==="delegate"?"Recurring Payment":"One-time Payment";return v?v.isLoading?a.jsx("div",{className:`atlas-container ${t}`,children:a.jsxs("div",{className:"atlas-loading",children:[a.jsx("div",{className:"atlas-spinner"}),a.jsx("p",{children:"Loading payment information..."})]})}):!v.isValid&&c.status==="error"?a.jsx("div",{className:`atlas-container ${t}`,children:a.jsxs("div",{className:"atlas-error-state",children:[a.jsx("div",{className:"atlas-error-icon",children:"⚠️"}),a.jsx("h3",{children:"Payment Setup Failed"}),a.jsx("p",{children:c.error||"Unable to initialize payment"}),a.jsx("button",{onClick:m,className:"atlas-secondary-button",children:"Try Again"})]})}):a.jsxs("div",{className:`atlas-container ${t}`,children:[a.jsxs("div",{className:"atlas-header",children:[a.jsx("div",{className:"atlas-payment-type-badge",children:g(i)}),a.jsxs("div",{className:"atlas-total",children:["Pay ",a.jsxs("span",{children:[d," USDC"]})]})]}),a.jsx("div",{className:"atlas-divider"}),a.jsxs("form",{onSubmit:n,className:"atlas-form",children:[a.jsx("div",{className:"atlas-validation-info",children:a.jsxs("div",{className:"atlas-info-section",children:[a.jsx("h4",{children:"Payment Account"}),a.jsxs("div",{className:"atlas-info-grid",children:[a.jsxs("div",{className:"atlas-info-item",children:[a.jsx("span",{className:"atlas-info-label",children:"Card ID:"}),a.jsx("span",{className:"atlas-info-value",children:v.cardId||"N/A"})]}),v.userAddress&&a.jsxs("div",{className:"atlas-info-item",children:[a.jsx("span",{className:"atlas-info-label",children:"Payer Address:"}),a.jsxs("span",{className:"atlas-info-value",children:[v.userAddress.slice(0,8),"...",v.userAddress.slice(-6)]})]})]})]})}),a.jsx("div",{className:"atlas-merchant-info",children:a.jsxs("div",{className:"atlas-info-item",children:[a.jsx("span",{className:"atlas-info-label",children:"Merchant:"}),a.jsxs("span",{className:"atlas-info-value",children:[p.slice(0,8),"...",p.slice(-6)]})]})}),a.jsx("div",{className:"atlas-amount-display-section",children:a.jsxs("div",{className:"atlas-amount-main",children:[a.jsx("span",{className:"atlas-amount-label",children:"Amount to Pay:"}),a.jsxs("span",{className:"atlas-amount-value",children:[d," ",a.jsx("span",{className:"atlas-amount-token",children:"USDC"})]})]})}),c.status==="popup_open"&&a.jsxs("div",{className:"atlas-popup-status",children:[a.jsx("div",{className:"atlas-popup-icon",children:"🪟"}),a.jsxs("div",{className:"atlas-popup-content",children:[a.jsx("h4",{children:"Complete Payment in Popup"}),a.jsx("p",{children:"A new window has opened to complete your payment."}),a.jsx("p",{className:"atlas-popup-hint",children:"If you don't see the popup, please check your browser settings or allow popups for this site."}),a.jsxs("div",{className:"atlas-popup-actions",children:[a.jsx("button",{type:"button",onClick:h,className:"atlas-secondary-button",children:"Cancel Payment"}),a.jsx("button",{type:"button",onClick:()=>{window.open("","Atlascard Payment")&&window.focus()},className:"atlas-tertiary-button",children:"Show Popup"})]})]})]}),a.jsxs("div",{className:"atlas-form-actions",children:[c.status==="ready"&&a.jsx("button",{type:"submit",className:"atlas-pay-button",disabled:!v.isValid||parseFloat(d)<=0||w,children:r}),c.status!=="ready"&&c.status!=="idle"&&c.status!=="popup_open"&&a.jsxs("div",{className:"atlas-status-wrapper",children:[a.jsx($,{status:c}),c.status==="success"&&a.jsx("button",{type:"button",onClick:y,className:"atlas-secondary-button",children:"Make Another Payment"})]})]})]})]}):a.jsx("div",{className:`atlas-container ${t}`,children:a.jsxs("div",{className:"atlas-loading",children:[a.jsx("div",{className:"atlas-spinner"}),a.jsx("p",{children:"Initializing payment system..."})]})})},q=()=>a.jsx(a.Fragment,{children:a.jsx("svg",{width:"40",height:"40",viewBox:"0 0 40 40",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:a.jsx("path",{d:"M2.95703 21.4442C2.72371 20.0639 2.75066 20.0321 3.3877 20.8817C3.75566 21.3763 4.4245 22.1637 4.86426 22.6268C5.3087 23.09 6.68217 23.9215 7.91602 24.4745C9.14997 25.0229 11.2674 25.7423 12.627 26.075C14.009 26.4078 17.3615 26.6555 20.2559 26.6375C23.572 26.6151 26.4573 26.3265 28.333 25.8319C29.9348 25.4093 31.8552 24.7578 32.5957 24.3846C33.3361 24.0069 34.5035 23.1704 35.1855 22.5184C35.8675 21.8665 36.4234 21.0796 36.4189 20.7694C36.4145 20.4593 36.6117 20.3113 36.8584 20.4325C37.1052 20.5584 37.2227 21.0125 37.124 21.4442C37.0208 21.876 36.8008 23.0406 36.3252 25.828L37.3252 24.9286C37.8771 24.434 38.703 23.2195 39.1562 22.2303C39.9773 20.4411 39.9821 20.4368 40 21.7811C40.009 22.523 39.6184 24.4474 39.1338 26.0526C38.6357 27.6892 37.4018 30.1537 36.3203 31.66C35.2567 33.1348 33.179 35.2212 31.6982 36.2957C30.1501 37.4198 27.7625 38.6246 26.0889 39.1327C24.3299 39.6632 21.8797 40.0043 19.9189 39.9998C17.8863 39.9953 15.6563 39.6537 13.9736 39.0916C12.4928 38.597 10.4735 37.6887 9.48633 37.0682C8.4991 36.4522 6.7802 35.0358 5.67188 33.9207C4.55907 32.8056 2.94764 30.4369 2.07715 28.6385C1.13932 26.6961 0.403864 24.3801 0 20.4325L0.866211 22.2303C1.34186 23.2195 2.18963 24.4341 3.76465 25.828L3.48242 24.3661C3.32987 23.5613 3.09164 22.2489 2.95703 21.4442ZM6.18652 27.0584C5.79164 26.8786 5.43257 26.9008 5.3877 27.1122C5.34286 27.3235 5.87657 28.3085 6.58105 29.2977C7.28115 30.2869 8.75343 31.86 9.84375 32.7997C10.9387 33.7349 12.8946 34.9 14.1914 35.3856C15.4882 35.8712 17.6065 36.3968 18.9033 36.5497C20.2809 36.716 22.2826 36.5992 23.7275 36.2664C25.0827 35.9517 26.9536 35.3174 27.8779 34.8543C28.8022 34.3957 30.3006 33.3622 31.207 32.5575C32.1134 31.7527 33.4331 30.2869 34.1377 29.2977C34.8416 28.3093 35.411 27.3968 35.3984 27.2743C35.3895 27.1529 33.6173 27.6293 31.459 28.3397C28.5468 29.3019 26.33 29.6975 22.8301 29.8729C20.0077 30.0123 16.6778 29.882 14.5283 29.5448C12.5539 29.23 10.0318 28.6186 8.91895 28.1825C7.80647 27.7465 6.57736 27.2429 6.18652 27.0584ZM19.8066 0.000823975C21.4085 -0.0171596 23.8317 0.257193 25.1914 0.603363C26.5466 0.954077 28.4679 1.69562 29.4551 2.25766C30.4423 2.81972 32.143 4.00237 33.2334 4.88364C34.3238 5.76942 35.8945 7.50556 36.7246 8.74203C37.5502 9.97862 38.6314 12.3079 39.125 13.9129C39.6141 15.5225 40.009 17.4426 40 18.1844C39.9821 19.5285 39.9774 19.5236 39.1562 17.7342C38.703 16.7451 37.8683 15.5313 36.2754 14.1375L36.5361 15.2616C36.6797 15.8821 36.9307 17.1951 37.3838 19.9823L36.2979 18.6336C35.701 17.8917 34.5252 16.8488 33.6816 16.3182C32.838 15.7876 31.1868 15.0273 30.0156 14.6317C28.8444 14.236 26.1163 13.7011 23.958 13.4403C21.2073 13.1075 18.8912 13.1075 16.2168 13.4403C14.1167 13.7011 11.0882 14.3582 9.48633 14.9022C7.87987 15.4462 5.91455 16.4578 5.11133 17.1502C4.30844 17.8424 3.65289 18.7139 3.65234 19.0829C3.65234 19.456 3.45083 19.6588 3.2041 19.5331C2.9573 19.4116 2.83624 18.953 2.93945 18.5213C3.04266 18.0897 3.25813 16.9251 3.71582 14.1375L2.55762 15.2616C1.92046 15.8821 1.09031 17.195 0.0224609 19.9823L0.250977 17.285C0.403546 15.4595 0.987496 13.5347 2.06445 11.327C3.04266 9.32176 4.5636 7.15914 6.02637 5.70688C7.33666 4.40744 9.40542 2.84709 10.626 2.24008C11.851 1.63308 13.7582 0.887039 14.8711 0.585785C15.9794 0.284556 18.2002 0.0188488 19.8066 0.000823975ZM21.2588 3.17368C19.6613 3.07031 17.5659 3.28152 16.0986 3.69516C14.7435 4.07733 12.9267 4.81969 12.0605 5.33676C11.1946 5.8583 9.71813 7.00901 8.78027 7.89926C7.83794 8.78503 6.67488 10.1696 6.19922 10.9745C5.71949 11.7786 5.37934 12.529 5.44141 12.6424C5.50423 12.7548 6.76528 12.3686 8.24609 11.784C9.72697 11.195 12.554 10.4663 14.5283 10.1561C16.6957 9.8189 19.9852 9.69815 22.8301 9.84653C26.2716 10.0309 28.5962 10.4445 31.459 11.3797C33.6152 12.0849 35.3861 12.5565 35.3984 12.4364C35.4119 12.315 34.847 11.402 34.1426 10.4129C33.4426 9.42374 31.9703 7.84974 30.8799 6.91C29.7851 5.97486 27.7751 4.78789 26.4199 4.27524C25.0647 3.76266 22.7396 3.2681 21.2588 3.17368Z",fill:"#E4A300"})})}),K=({authKey:o,merchantPaymentAddress:p,onSuccess:d,onError:i,className:l="",buttonText:u="Pay Now",amount:t="0",paymentType:r="one_time_payment",disabled:w=!1})=>{const[E,c]=j.useState(!1),v=n=>{d==null||d(n),setTimeout(()=>c(!1),2e3)},h=n=>{i==null||i(n)},m=()=>{if(!o){alert("Payment configuration error: No auth key provided");return}c(!0)};return a.jsxs(a.Fragment,{children:[a.jsx("button",{className:`atlas-payment-button ${l}`,onClick:m,disabled:w||!o,children:u}),E&&a.jsx("div",{className:"atlas-modal-overlay",onClick:()=>c(!1),children:a.jsxs("div",{className:"atlas-modal",onClick:n=>n.stopPropagation(),children:[a.jsxs("div",{className:"atlas-modal-header",children:[a.jsxs("div",{className:"atlas-modal-header2",children:[a.jsx(q,{}),a.jsx("h3",{children:"Pay with Atlas"})]}),a.jsx("button",{className:"atlas-modal-close",onClick:()=>c(!1),children:"×"})]}),a.jsx("div",{className:"atlas-modal-body",children:a.jsx(V,{authKey:o,merchantPaymentAddress:p,amount:t,paymentType:r,onSuccess:v,onError:h,buttonText:u,disabled:w})})]})})]})};N.AtlasPaymentButton=K,N.AtlasPaymentForm=V,N.useAtlasPayment=z,Object.defineProperty(N,Symbol.toStringTag,{value:"Module"})});
|
|
22
|
+
<%s key={someKey} {...props} />`,C,x,R,x),Z[x+C]=!0)}if(x=null,f!==void 0&&(d(f),x=""+f),t(s)&&(d(s.key),x=""+s.key),"key"in s){f={};for(var D in s)D!=="key"&&(f[D]=s[D])}else f=s;return x&&r(f,typeof e=="function"?e.displayName||e.name||"Unknown":e),E(e,x,P,_,l(),f,I,F)}function v(e){typeof e=="object"&&e!==null&&e.$$typeof===m&&e._store&&(e._store.validated=1)}var h=j,m=Symbol.for("react.transitional.element"),n=Symbol.for("react.portal"),y=Symbol.for("react.fragment"),g=Symbol.for("react.strict_mode"),b=Symbol.for("react.profiler"),T=Symbol.for("react.consumer"),ee=Symbol.for("react.context"),ae=Symbol.for("react.forward_ref"),te=Symbol.for("react.suspense"),se=Symbol.for("react.suspense_list"),re=Symbol.for("react.memo"),U=Symbol.for("react.lazy"),ne=Symbol.for("react.activity"),le=Symbol.for("react.client.reference"),O=h.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,H=Object.prototype.hasOwnProperty,oe=Array.isArray,L=console.createTask?console.createTask:function(){return null};h={react_stack_bottom_frame:function(e){return e()}};var W,J={},B=h.react_stack_bottom_frame.bind(h,u)(),G=L(i(u)),Z={};A.Fragment=y,A.jsx=function(e,s,f,C,_){var P=1e4>O.recentlyCreatedOwnerStacks++;return c(e,s,f,!1,C,_,P?Error("react-stack-top-frame"):B,P?L(i(e)):G)},A.jsxs=function(e,s,f,C,_){var P=1e4>O.recentlyCreatedOwnerStacks++;return c(e,s,f,!0,C,_,P?Error("react-stack-top-frame"):B,P?L(i(e)):G)}}()),A}process.env.NODE_ENV==="production"?S.exports=X():S.exports=Q();var a=S.exports;const z=(o,p)=>{const[d,i]=j.useState({status:"idle",message:"Ready to pay"}),[l,u]=j.useState({isValid:!1,isLoading:!0}),t=j.useRef(null),r=j.useRef(null);j.useEffect(()=>{(async()=>{if(!o){u({isValid:!1,isLoading:!1}),i({status:"error",message:"No auth key provided"});return}u(m=>({...m,isLoading:!0})),i({status:"loading",message:"Loading payment information..."});try{const n=await(await fetch("https://api.atlascard.xyz/api/auth/external/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:o,required_scopes:[p]})})).json();if(!n.valid){i({status:"error",message:"Failed to initialize payment",error:n.error||"Invalid Auth Key"});return}const y=await fetch("https://api.atlascard.xyz/api/credentials/get",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({auth_key:o,required_scopes:[p]})});if(!y.ok)throw new Error("Failed to fetch credentials");const g=await y.json(),b={cardId:n.cardId,businessAddress:n.businessAddress,userAddress:g.address,identifier:g.identifier,credentials:g,isValid:!0,isLoading:!1};u(b),i({status:"ready",message:"Ready to process payment"})}catch(m){console.error("Payment initialization error:",m),u({isValid:!1,isLoading:!1}),i({status:"error",message:"Failed to initialize payment",error:m instanceof Error?m.message:"Unknown error"})}})()},[o,p]),j.useEffect(()=>{const h=m=>{if(m.origin!=="https://atlascard.xyz")return;const n=m.data;switch(n.type){case"payment_result":n.status==="success"?(i({status:"success",message:"Payment successful!",transactionHash:n.transactionHash}),r.current&&(r.current.resolve({success:!0,transactionHash:n.transactionHash,amount:n.amount,merchant:n.merchant,type:n.paymentType,paymentData:l}),r.current=null),t.current&&setTimeout(()=>{var y;(y=t.current)==null||y.close(),t.current=null},3e3)):(i({status:"error",message:n.error||"Payment failed",error:n.error}),r.current&&(r.current.reject(new Error(n.error||"Payment failed")),r.current=null),t.current&&setTimeout(()=>{var y;(y=t.current)==null||y.close(),t.current=null},3e3));break;case"payment_error":i({status:"error",message:n.error||"Payment failed",error:n.error}),r.current&&(r.current.reject(new Error(n.error||"Payment failed")),r.current=null),t.current&&(t.current.close(),t.current=null);break;case"close_popup":t.current&&(t.current.close(),t.current=null),d.status==="popup_open"&&(i({status:"ready",message:"Payment cancelled"}),r.current&&(r.current.reject(new Error("Payment cancelled by user")),r.current=null));break}};return window.addEventListener("message",h),()=>window.removeEventListener("message",h)},[l,d.status]),j.useEffect(()=>{if(!t.current)return;const h=setInterval(()=>{var m;(m=t.current)!=null&&m.closed&&(clearInterval(h),d.status==="popup_open"&&(i({status:"ready",message:"Payment cancelled"}),r.current&&(r.current.reject(new Error("Payment cancelled by user")),r.current=null)),t.current=null)},500);return()=>clearInterval(h)},[d.status]);const w=j.useCallback(async(h,m)=>{if(!l.isValid||!l.credentials)throw new Error("Payment data not validated");t.current&&(t.current.close(),t.current=null);const y=`https://atlascard.xyz/pay?${new URLSearchParams({merchantAddress:h,amount:m,eoaAddress:l.credentials.address,credentials:encodeURIComponent(JSON.stringify(l.credentials)),paymentType:p,origin:window.location.origin}).toString()}`,g=window.open(y,"Atlascard Payment","width=500,height=700,scrollbars=no,resizable=no,menubar=no,toolbar=no,location=no,status=no");if(!g){const b="Please allow popups to complete the payment";throw i({status:"error",message:b,error:b}),new Error(b)}t.current=g,i({status:"popup_open",message:"Complete payment in the popup window"})},[l,p]);return{processPayment:async(h,m)=>{if(!l.isValid)throw new Error("Payment data not validated");return new Promise((n,y)=>{r.current={resolve:n,reject:y},w(h,m).catch(y)})},status:d,paymentData:l,closePopup:()=>{t.current&&(t.current.close(),t.current=null),d.status==="popup_open"&&i({status:"ready",message:"Payment cancelled"}),r.current&&(r.current.reject(new Error("Payment cancelled")),r.current=null)},reset:()=>{i({status:"idle",message:"Ready to pay"}),u({isValid:!1,isLoading:!0}),t.current&&(t.current.close(),t.current=null),r.current&&(r.current.reject(new Error("Payment reset")),r.current=null)}}},$=({status:o})=>{const p=()=>{switch(o.status){case"processing":return a.jsx("div",{className:"atlas-spinner",children:a.jsx("div",{className:"atlas-spinner-circle"})});case"success":return a.jsx("div",{className:"atlas-status-icon atlas-success",children:"✓"});case"error":return a.jsx("div",{className:"atlas-status-icon atlas-error",children:"✗"});default:return null}},d=()=>{switch(o.status){case"processing":return"atlas-status-processing";case"success":return"atlas-status-success";case"error":return"atlas-status-error";default:return""}};return o.status==="idle"?null:a.jsx("div",{className:`atlas-payment-status ${d()}`,children:a.jsxs("div",{className:"atlas-status-content",children:[p(),a.jsxs("div",{className:"atlas-status-text",children:[a.jsx("p",{className:"atlas-status-message",children:o.message}),o.transactionHash&&a.jsxs("p",{className:"atlas-transaction-hash",children:["Tx: ",o.transactionHash.slice(0,10),"...",o.transactionHash.slice(-8)]}),o.error&&a.jsx("p",{className:"atlas-error-message",children:o.error})]})]})})},V=({authKey:o,merchantPaymentAddress:p,amount:d="0",paymentType:i="one_time_payment",onSuccess:l,onError:u,className:t="",buttonText:r="PAY NOW",disabled:w=!1})=>{const{processPayment:E,status:c,paymentData:v,closePopup:h,reset:m}=z(o,i),n=async b=>{if(b.preventDefault(),!(!(v!=null&&v.isValid)||parseFloat(d)<=0))try{const T=await E(p,d);l==null||l(T)}catch(T){u==null||u(T)}},y=()=>{m()};j.useEffect(()=>{c.status==="success"&&c.transactionHash&&(l==null||l({success:!0,transactionHash:c.transactionHash,amount:d,merchant:p,type:i,paymentData:v}))},[c.status,c.transactionHash]),j.useEffect(()=>{c.status==="error"&&c.error&&(u==null||u(new Error(c.error)))},[c.status,c.error]);const g=b=>b==="delegate"?"Recurring Payment":"One-time Payment";return v?v.isLoading?a.jsx("div",{className:`atlas-container ${t}`,children:a.jsxs("div",{className:"atlas-loading",children:[a.jsx("div",{className:"atlas-spinner"}),a.jsx("p",{children:"Loading payment information..."})]})}):!v.isValid&&c.status==="error"?a.jsx("div",{className:`atlas-container ${t}`,children:a.jsxs("div",{className:"atlas-error-state",children:[a.jsx("div",{className:"atlas-error-icon",children:"⚠️"}),a.jsx("h3",{children:"Payment Setup Failed"}),a.jsx("p",{children:c.error||"Unable to initialize payment"}),a.jsx("button",{onClick:m,className:"atlas-secondary-button",children:"Try Again"})]})}):a.jsxs("div",{className:`atlas-container ${t}`,children:[a.jsxs("div",{className:"atlas-header",children:[a.jsx("div",{className:"atlas-payment-type-badge",children:g(i)}),a.jsxs("div",{className:"atlas-total",children:["Pay ",a.jsxs("span",{children:[d," USDC"]})]})]}),a.jsx("div",{className:"atlas-divider"}),a.jsxs("form",{onSubmit:n,className:"atlas-form",children:[a.jsx("div",{className:"atlas-validation-info",children:a.jsxs("div",{className:"atlas-info-section",children:[a.jsx("h4",{children:"Payment Account"}),a.jsxs("div",{className:"atlas-info-grid",children:[a.jsxs("div",{className:"atlas-info-item",children:[a.jsx("span",{className:"atlas-info-label",children:"Card ID:"}),a.jsx("span",{className:"atlas-info-value",children:v.cardId||"N/A"})]}),v.userAddress&&a.jsxs("div",{className:"atlas-info-item",children:[a.jsx("span",{className:"atlas-info-label",children:"Payer Address:"}),a.jsxs("span",{className:"atlas-info-value",children:[v.userAddress.slice(0,8),"...",v.userAddress.slice(-6)]})]})]})]})}),a.jsx("div",{className:"atlas-merchant-info",children:a.jsxs("div",{className:"atlas-info-item",children:[a.jsx("span",{className:"atlas-info-label",children:"Merchant:"}),a.jsxs("span",{className:"atlas-info-value",children:[p.slice(0,8),"...",p.slice(-6)]})]})}),a.jsx("div",{className:"atlas-amount-display-section",children:a.jsxs("div",{className:"atlas-amount-main",children:[a.jsx("span",{className:"atlas-amount-label",children:"Amount to Pay:"}),a.jsxs("span",{className:"atlas-amount-value",children:[d," ",a.jsx("span",{className:"atlas-amount-token",children:"USDC"})]})]})}),c.status==="popup_open"&&a.jsxs("div",{className:"atlas-popup-status",children:[a.jsx("div",{className:"atlas-popup-icon",children:"🪟"}),a.jsxs("div",{className:"atlas-popup-content",children:[a.jsx("h4",{children:"Complete Payment in Popup"}),a.jsx("p",{children:"A new window has opened to complete your payment."}),a.jsx("p",{className:"atlas-popup-hint",children:"If you don't see the popup, please check your browser settings or allow popups for this site."}),a.jsxs("div",{className:"atlas-popup-actions",children:[a.jsx("button",{type:"button",onClick:h,className:"atlas-secondary-button",children:"Cancel Payment"}),a.jsx("button",{type:"button",onClick:()=>{window.open("","Atlascard Payment")&&window.focus()},className:"atlas-tertiary-button",children:"Show Popup"})]})]})]}),a.jsxs("div",{className:"atlas-form-actions",children:[c.status==="ready"&&a.jsx("button",{type:"submit",className:"atlas-pay-button",disabled:!v.isValid||parseFloat(d)<=0||w,children:r}),c.status!=="ready"&&c.status!=="idle"&&c.status!=="popup_open"&&a.jsxs("div",{className:"atlas-status-wrapper",children:[a.jsx($,{status:c}),c.status==="success"&&a.jsx("button",{type:"button",onClick:y,className:"atlas-secondary-button",children:"Make Another Payment"})]})]})]})]}):a.jsx("div",{className:`atlas-container ${t}`,children:a.jsxs("div",{className:"atlas-loading",children:[a.jsx("div",{className:"atlas-spinner"}),a.jsx("p",{children:"Initializing payment system..."})]})})},q=()=>a.jsx(a.Fragment,{children:a.jsx("svg",{width:"40",height:"40",viewBox:"0 0 40 40",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:a.jsx("path",{d:"M2.95703 21.4442C2.72371 20.0639 2.75066 20.0321 3.3877 20.8817C3.75566 21.3763 4.4245 22.1637 4.86426 22.6268C5.3087 23.09 6.68217 23.9215 7.91602 24.4745C9.14997 25.0229 11.2674 25.7423 12.627 26.075C14.009 26.4078 17.3615 26.6555 20.2559 26.6375C23.572 26.6151 26.4573 26.3265 28.333 25.8319C29.9348 25.4093 31.8552 24.7578 32.5957 24.3846C33.3361 24.0069 34.5035 23.1704 35.1855 22.5184C35.8675 21.8665 36.4234 21.0796 36.4189 20.7694C36.4145 20.4593 36.6117 20.3113 36.8584 20.4325C37.1052 20.5584 37.2227 21.0125 37.124 21.4442C37.0208 21.876 36.8008 23.0406 36.3252 25.828L37.3252 24.9286C37.8771 24.434 38.703 23.2195 39.1562 22.2303C39.9773 20.4411 39.9821 20.4368 40 21.7811C40.009 22.523 39.6184 24.4474 39.1338 26.0526C38.6357 27.6892 37.4018 30.1537 36.3203 31.66C35.2567 33.1348 33.179 35.2212 31.6982 36.2957C30.1501 37.4198 27.7625 38.6246 26.0889 39.1327C24.3299 39.6632 21.8797 40.0043 19.9189 39.9998C17.8863 39.9953 15.6563 39.6537 13.9736 39.0916C12.4928 38.597 10.4735 37.6887 9.48633 37.0682C8.4991 36.4522 6.7802 35.0358 5.67188 33.9207C4.55907 32.8056 2.94764 30.4369 2.07715 28.6385C1.13932 26.6961 0.403864 24.3801 0 20.4325L0.866211 22.2303C1.34186 23.2195 2.18963 24.4341 3.76465 25.828L3.48242 24.3661C3.32987 23.5613 3.09164 22.2489 2.95703 21.4442ZM6.18652 27.0584C5.79164 26.8786 5.43257 26.9008 5.3877 27.1122C5.34286 27.3235 5.87657 28.3085 6.58105 29.2977C7.28115 30.2869 8.75343 31.86 9.84375 32.7997C10.9387 33.7349 12.8946 34.9 14.1914 35.3856C15.4882 35.8712 17.6065 36.3968 18.9033 36.5497C20.2809 36.716 22.2826 36.5992 23.7275 36.2664C25.0827 35.9517 26.9536 35.3174 27.8779 34.8543C28.8022 34.3957 30.3006 33.3622 31.207 32.5575C32.1134 31.7527 33.4331 30.2869 34.1377 29.2977C34.8416 28.3093 35.411 27.3968 35.3984 27.2743C35.3895 27.1529 33.6173 27.6293 31.459 28.3397C28.5468 29.3019 26.33 29.6975 22.8301 29.8729C20.0077 30.0123 16.6778 29.882 14.5283 29.5448C12.5539 29.23 10.0318 28.6186 8.91895 28.1825C7.80647 27.7465 6.57736 27.2429 6.18652 27.0584ZM19.8066 0.000823975C21.4085 -0.0171596 23.8317 0.257193 25.1914 0.603363C26.5466 0.954077 28.4679 1.69562 29.4551 2.25766C30.4423 2.81972 32.143 4.00237 33.2334 4.88364C34.3238 5.76942 35.8945 7.50556 36.7246 8.74203C37.5502 9.97862 38.6314 12.3079 39.125 13.9129C39.6141 15.5225 40.009 17.4426 40 18.1844C39.9821 19.5285 39.9774 19.5236 39.1562 17.7342C38.703 16.7451 37.8683 15.5313 36.2754 14.1375L36.5361 15.2616C36.6797 15.8821 36.9307 17.1951 37.3838 19.9823L36.2979 18.6336C35.701 17.8917 34.5252 16.8488 33.6816 16.3182C32.838 15.7876 31.1868 15.0273 30.0156 14.6317C28.8444 14.236 26.1163 13.7011 23.958 13.4403C21.2073 13.1075 18.8912 13.1075 16.2168 13.4403C14.1167 13.7011 11.0882 14.3582 9.48633 14.9022C7.87987 15.4462 5.91455 16.4578 5.11133 17.1502C4.30844 17.8424 3.65289 18.7139 3.65234 19.0829C3.65234 19.456 3.45083 19.6588 3.2041 19.5331C2.9573 19.4116 2.83624 18.953 2.93945 18.5213C3.04266 18.0897 3.25813 16.9251 3.71582 14.1375L2.55762 15.2616C1.92046 15.8821 1.09031 17.195 0.0224609 19.9823L0.250977 17.285C0.403546 15.4595 0.987496 13.5347 2.06445 11.327C3.04266 9.32176 4.5636 7.15914 6.02637 5.70688C7.33666 4.40744 9.40542 2.84709 10.626 2.24008C11.851 1.63308 13.7582 0.887039 14.8711 0.585785C15.9794 0.284556 18.2002 0.0188488 19.8066 0.000823975ZM21.2588 3.17368C19.6613 3.07031 17.5659 3.28152 16.0986 3.69516C14.7435 4.07733 12.9267 4.81969 12.0605 5.33676C11.1946 5.8583 9.71813 7.00901 8.78027 7.89926C7.83794 8.78503 6.67488 10.1696 6.19922 10.9745C5.71949 11.7786 5.37934 12.529 5.44141 12.6424C5.50423 12.7548 6.76528 12.3686 8.24609 11.784C9.72697 11.195 12.554 10.4663 14.5283 10.1561C16.6957 9.8189 19.9852 9.69815 22.8301 9.84653C26.2716 10.0309 28.5962 10.4445 31.459 11.3797C33.6152 12.0849 35.3861 12.5565 35.3984 12.4364C35.4119 12.315 34.847 11.402 34.1426 10.4129C33.4426 9.42374 31.9703 7.84974 30.8799 6.91C29.7851 5.97486 27.7751 4.78789 26.4199 4.27524C25.0647 3.76266 22.7396 3.2681 21.2588 3.17368Z",fill:"#E4A300"})})}),K=({authKey:o,merchantPaymentAddress:p,onSuccess:d,onError:i,className:l="",buttonText:u="Pay Now",amount:t="0",paymentType:r="one_time_payment",disabled:w=!1})=>{const[E,c]=j.useState(!1),v=n=>{d==null||d(n),setTimeout(()=>c(!1),2e3)},h=n=>{i==null||i(n)},m=()=>{if(!o){alert("Payment configuration error: No auth key provided");return}c(!0)};return a.jsxs(a.Fragment,{children:[a.jsx("button",{className:`atlas-payment-button ${l}`,onClick:m,disabled:w||!o,children:u}),E&&a.jsx("div",{className:"atlas-modal-overlay",onClick:()=>c(!1),children:a.jsxs("div",{className:"atlas-modal",onClick:n=>n.stopPropagation(),children:[a.jsxs("div",{className:"atlas-modal-header",children:[a.jsxs("div",{className:"atlas-modal-header2",children:[a.jsx(q,{}),a.jsx("h3",{children:"Pay with Atlas"})]}),a.jsx("button",{className:"atlas-modal-close",onClick:()=>c(!1),children:"×"})]}),a.jsx("div",{className:"atlas-modal-body",children:a.jsx(V,{authKey:o,merchantPaymentAddress:p,amount:t,paymentType:r,onSuccess:v,onError:h,buttonText:u,disabled:w})})]})})]})};N.AtlasPaymentButton=K,N.AtlasPaymentForm=V,N.useAtlasPayment=z,Object.defineProperty(N,Symbol.toStringTag,{value:"Module"})});
|
|
23
23
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../node_modules/react/cjs/react-jsx-runtime.production.js","../node_modules/react/cjs/react-jsx-runtime.development.js","../node_modules/react/jsx-runtime.js","../src/hooks/useAtlasPayment.ts","../src/components/AtlasPaymentStatus.tsx","../src/components/AtlasPaymentForm.tsx","../src/assets/Icon.tsx","../src/components/AtlasPaymentButton.tsx"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Provider\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(\n type,\n key,\n self,\n source,\n owner,\n props,\n debugStack,\n debugTask\n ) {\n self = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== self ? self : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n source,\n self,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n self,\n source,\n getOwner(),\n maybeKey,\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_ELEMENT_TYPE &&\n node._store &&\n (node._store.validated = 1);\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n Symbol.for(\"react.provider\");\n var REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React.react_stack_bottom_frame.bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey, source, self) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.jsxs = function (type, config, maybeKey, source, self) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","// hooks/useAtlasPayment.ts\r\nimport { useState, useEffect, useCallback, useRef } from \"react\";\r\nimport type {\r\n PaymentType,\r\n ValidationResponse,\r\n DecryptedCredentials,\r\n} from \"../types\";\r\n\r\ninterface PaymentStatus {\r\n status:\r\n | \"idle\"\r\n | \"loading\"\r\n | \"validating\"\r\n | \"ready\"\r\n | \"popup_open\"\r\n | \"processing\"\r\n | \"success\"\r\n | \"error\";\r\n message: string;\r\n transactionHash?: string;\r\n error?: string;\r\n}\r\n\r\ninterface PaymentData {\r\n cardId?: string;\r\n businessAddress?: string;\r\n userAddress?: string;\r\n identifier?: string;\r\n credentials?: DecryptedCredentials;\r\n isValid: boolean;\r\n isLoading: boolean;\r\n}\r\n\r\ninterface PopupMessage {\r\n type: \"payment_result\" | \"payment_error\" | \"close_popup\";\r\n status?: \"success\" | \"failed\";\r\n transactionHash?: string;\r\n amount?: string;\r\n merchant?: string;\r\n paymentType?: string;\r\n error?: string;\r\n}\r\n\r\nexport const useAtlasPayment = (authKey: string, paymentType: PaymentType) => {\r\n const [status, setStatus] = useState<PaymentStatus>({\r\n status: \"idle\",\r\n message: \"Ready to pay\",\r\n });\r\n const [paymentData, setPaymentData] = useState<PaymentData>({\r\n isValid: false,\r\n isLoading: true,\r\n });\r\n const popupRef = useRef<Window | null>(null);\r\n const paymentPromiseRef = useRef<{\r\n resolve: (value: any) => void;\r\n reject: (reason?: any) => void;\r\n } | null>(null);\r\n\r\n // Automatically validate and fetch credentials when authKey or paymentType changes\r\n useEffect(() => {\r\n const initializePayment = async () => {\r\n if (!authKey) {\r\n setPaymentData({\r\n isValid: false,\r\n isLoading: false,\r\n });\r\n setStatus({\r\n status: \"error\",\r\n message: \"No auth key provided\",\r\n });\r\n return;\r\n }\r\n\r\n setPaymentData((prev) => ({ ...prev, isLoading: true }));\r\n setStatus({\r\n status: \"loading\",\r\n message: \"Loading payment information...\",\r\n });\r\n\r\n try {\r\n // Step 1: Validate auth key\r\n const validationResponse = await fetch(\r\n \"https://api.atlascard.xyz/api/auth/external/validate\",\r\n {\r\n method: \"POST\",\r\n headers: { \"Content-Type\": \"application/json\" },\r\n body: JSON.stringify({\r\n key: authKey,\r\n required_scopes: [paymentType],\r\n }),\r\n }\r\n );\r\n\r\n const validationData: ValidationResponse =\r\n await validationResponse.json();\r\n\r\n if (!validationData.valid) {\r\n setStatus({\r\n status: \"error\",\r\n message: \"Failed to initialize payment\",\r\n error: validationData.error || \"Invalid Auth Key\",\r\n });\r\n }\r\n\r\n // Step 2: Get credentials\r\n const credentialsResponse = await fetch(\r\n \"https://api.atlascard.xyz/api/credentials/get\",\r\n {\r\n method: \"POST\",\r\n headers: { \"Content-Type\": \"application/json\" },\r\n body: JSON.stringify({\r\n auth_key: authKey,\r\n required_scopes: [paymentType],\r\n }),\r\n }\r\n );\r\n\r\n if (!credentialsResponse.ok) {\r\n throw new Error(\"Failed to fetch credentials\");\r\n }\r\n\r\n const credentialsData: DecryptedCredentials =\r\n await credentialsResponse.json();\r\n\r\n const updatedPaymentData = {\r\n cardId: validationData.cardId,\r\n businessAddress: validationData.businessAddress,\r\n userAddress: credentialsData.address,\r\n identifier: credentialsData.identifier,\r\n credentials: credentialsData,\r\n isValid: true,\r\n isLoading: false,\r\n };\r\n\r\n setPaymentData(updatedPaymentData);\r\n setStatus({\r\n status: \"ready\",\r\n message: \"Ready to process payment\",\r\n });\r\n } catch (error) {\r\n console.error(\"Payment initialization error:\", error);\r\n const errorData = {\r\n isValid: false,\r\n isLoading: false,\r\n };\r\n setPaymentData(errorData);\r\n setStatus({\r\n status: \"error\",\r\n message: \"Failed to initialize payment\",\r\n error: error instanceof Error ? error.message : \"Unknown error\",\r\n });\r\n }\r\n };\r\n\r\n initializePayment();\r\n }, [authKey, paymentType]);\r\n\r\n // Listen for messages from popup\r\n useEffect(() => {\r\n const handleMessage = (event: MessageEvent) => {\r\n // Security: Only accept messages from Atlascard.xyz\r\n if (event.origin !== \"https://atlascard.xyz\") return;\r\n\r\n const data: PopupMessage = event.data;\r\n\r\n switch (data.type) {\r\n case \"payment_result\":\r\n if (data.status === \"success\") {\r\n setStatus({\r\n status: \"success\",\r\n message: \"Payment successful!\",\r\n transactionHash: data.transactionHash,\r\n });\r\n\r\n // Resolve the promise\r\n if (paymentPromiseRef.current) {\r\n paymentPromiseRef.current.resolve({\r\n success: true,\r\n transactionHash: data.transactionHash,\r\n amount: data.amount,\r\n merchant: data.merchant,\r\n type: data.paymentType,\r\n paymentData,\r\n });\r\n paymentPromiseRef.current = null;\r\n }\r\n\r\n // Close the popup\r\n if (popupRef.current) {\r\n setTimeout(() => {\r\n popupRef.current?.close();\r\n popupRef.current = null;\r\n }, 3000); // Give user time to see success message\r\n }\r\n } else {\r\n setStatus({\r\n status: \"error\",\r\n message: data.error || \"Payment failed\",\r\n error: data.error,\r\n });\r\n\r\n // Reject the promise\r\n if (paymentPromiseRef.current) {\r\n paymentPromiseRef.current.reject(\r\n new Error(data.error || \"Payment failed\")\r\n );\r\n paymentPromiseRef.current = null;\r\n }\r\n\r\n // Close the popup after a delay\r\n if (popupRef.current) {\r\n setTimeout(() => {\r\n popupRef.current?.close();\r\n popupRef.current = null;\r\n }, 3000);\r\n }\r\n }\r\n break;\r\n\r\n case \"payment_error\":\r\n setStatus({\r\n status: \"error\",\r\n message: data.error || \"Payment failed\",\r\n error: data.error,\r\n });\r\n\r\n if (paymentPromiseRef.current) {\r\n paymentPromiseRef.current.reject(\r\n new Error(data.error || \"Payment failed\")\r\n );\r\n paymentPromiseRef.current = null;\r\n }\r\n\r\n if (popupRef.current) {\r\n popupRef.current.close();\r\n popupRef.current = null;\r\n }\r\n break;\r\n\r\n case \"close_popup\":\r\n if (popupRef.current) {\r\n popupRef.current.close();\r\n popupRef.current = null;\r\n }\r\n\r\n // If still in popup_open status, user closed manually\r\n if (status.status === \"popup_open\") {\r\n setStatus({\r\n status: \"ready\",\r\n message: \"Payment cancelled\",\r\n });\r\n\r\n if (paymentPromiseRef.current) {\r\n paymentPromiseRef.current.reject(\r\n new Error(\"Payment cancelled by user\")\r\n );\r\n paymentPromiseRef.current = null;\r\n }\r\n }\r\n break;\r\n }\r\n };\r\n\r\n window.addEventListener(\"message\", handleMessage);\r\n return () => window.removeEventListener(\"message\", handleMessage);\r\n }, [paymentData, status.status]);\r\n\r\n // Check if popup was closed by user\r\n useEffect(() => {\r\n if (!popupRef.current) return;\r\n\r\n const checkPopup = setInterval(() => {\r\n if (popupRef.current?.closed) {\r\n clearInterval(checkPopup);\r\n\r\n // If still in popup_open status, user closed manually\r\n if (status.status === \"popup_open\") {\r\n setStatus({\r\n status: \"ready\",\r\n message: \"Payment cancelled\",\r\n });\r\n\r\n if (paymentPromiseRef.current) {\r\n paymentPromiseRef.current.reject(\r\n new Error(\"Payment cancelled by user\")\r\n );\r\n paymentPromiseRef.current = null;\r\n }\r\n }\r\n\r\n popupRef.current = null;\r\n }\r\n }, 500);\r\n\r\n return () => clearInterval(checkPopup);\r\n }, [status.status]);\r\n\r\n const openPaymentPopup = useCallback(\r\n async (merchantAddress: string, amount: string) => {\r\n if (!paymentData.isValid || !paymentData.credentials) {\r\n throw new Error(\"Payment data not validated\");\r\n }\r\n\r\n // Close any existing popup\r\n if (popupRef.current) {\r\n popupRef.current.close();\r\n popupRef.current = null;\r\n }\r\n\r\n // Build popup URL with all necessary parameters\r\n const params = new URLSearchParams({\r\n merchantAddress: merchantAddress,\r\n amount: amount,\r\n eoaAddress: paymentData.credentials.address,\r\n credentials: encodeURIComponent(\r\n JSON.stringify(paymentData.credentials)\r\n ),\r\n paymentType: paymentType,\r\n origin: window.location.origin,\r\n });\r\n\r\n const url = `https://atlascard.xyz/pay?${params.toString()}`;\r\n\r\n // Open popup window\r\n const popup = window.open(\r\n url,\r\n \"Atlascard Payment\",\r\n \"width=500,height=700,scrollbars=no,resizable=no,menubar=no,toolbar=no,location=no,status=no\"\r\n );\r\n\r\n if (!popup) {\r\n const error = \"Please allow popups to complete the payment\";\r\n setStatus({\r\n status: \"error\",\r\n message: error,\r\n error: error,\r\n });\r\n throw new Error(error);\r\n }\r\n\r\n popupRef.current = popup;\r\n setStatus({\r\n status: \"popup_open\",\r\n message: \"Complete payment in the popup window\",\r\n });\r\n },\r\n [paymentData, paymentType]\r\n );\r\n\r\n const processPayment = async (merchantAddress: string, amount: string) => {\r\n if (!paymentData.isValid) {\r\n throw new Error(\"Payment data not validated\");\r\n }\r\n\r\n // Create promise to handle payment result\r\n return new Promise((resolve, reject) => {\r\n paymentPromiseRef.current = { resolve, reject };\r\n\r\n // Open popup\r\n openPaymentPopup(merchantAddress, amount).catch(reject);\r\n });\r\n };\r\n\r\n const closePopup = () => {\r\n if (popupRef.current) {\r\n popupRef.current.close();\r\n popupRef.current = null;\r\n }\r\n\r\n if (status.status === \"popup_open\") {\r\n setStatus({\r\n status: \"ready\",\r\n message: \"Payment cancelled\",\r\n });\r\n }\r\n\r\n if (paymentPromiseRef.current) {\r\n paymentPromiseRef.current.reject(new Error(\"Payment cancelled\"));\r\n paymentPromiseRef.current = null;\r\n }\r\n };\r\n\r\n const reset = () => {\r\n setStatus({ status: \"idle\", message: \"Ready to pay\" });\r\n setPaymentData({\r\n isValid: false,\r\n isLoading: true,\r\n });\r\n\r\n if (popupRef.current) {\r\n popupRef.current.close();\r\n popupRef.current = null;\r\n }\r\n\r\n if (paymentPromiseRef.current) {\r\n paymentPromiseRef.current.reject(new Error(\"Payment reset\"));\r\n paymentPromiseRef.current = null;\r\n }\r\n };\r\n\r\n return {\r\n processPayment,\r\n status,\r\n paymentData,\r\n closePopup,\r\n reset,\r\n };\r\n};\r\n","import React from \"react\";\r\n\r\ninterface PaymentStatus {\r\n status:\r\n | \"idle\"\r\n | \"loading\"\r\n | \"validating\"\r\n | \"ready\"\r\n | \"popup_open\"\r\n | \"processing\"\r\n | \"success\"\r\n | \"error\";\r\n message: string;\r\n transactionHash?: string;\r\n error?: string;\r\n}\r\n\r\ninterface AtlasPaymentStatusProps {\r\n status: PaymentStatus;\r\n}\r\n\r\nexport const AtlasPaymentStatus: React.FC<AtlasPaymentStatusProps> = ({\r\n status,\r\n}) => {\r\n const getStatusIcon = () => {\r\n switch (status.status) {\r\n case \"processing\":\r\n return (\r\n <div className=\"atlas-spinner\">\r\n <div className=\"atlas-spinner-circle\"></div>\r\n </div>\r\n );\r\n case \"success\":\r\n return <div className=\"atlas-status-icon atlas-success\">✓</div>;\r\n case \"error\":\r\n return <div className=\"atlas-status-icon atlas-error\">✗</div>;\r\n default:\r\n return null;\r\n }\r\n };\r\n\r\n const getStatusColor = () => {\r\n switch (status.status) {\r\n case \"processing\":\r\n return \"atlas-status-processing\";\r\n case \"success\":\r\n return \"atlas-status-success\";\r\n case \"error\":\r\n return \"atlas-status-error\";\r\n default:\r\n return \"\";\r\n }\r\n };\r\n\r\n if (status.status === \"idle\") return null;\r\n\r\n return (\r\n <div className={`atlas-payment-status ${getStatusColor()}`}>\r\n <div className=\"atlas-status-content\">\r\n {getStatusIcon()}\r\n <div className=\"atlas-status-text\">\r\n <p className=\"atlas-status-message\">{status.message}</p>\r\n {status.transactionHash && (\r\n <p className=\"atlas-transaction-hash\">\r\n Tx: {status.transactionHash.slice(0, 10)}...\r\n {status.transactionHash.slice(-8)}\r\n </p>\r\n )}\r\n {status.error && (\r\n <p className=\"atlas-error-message\">{status.error}</p>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","\"use client\";\r\n\r\nimport React, { useEffect } from \"react\";\r\nimport { useAtlasPayment } from \"../hooks/useAtlasPayment\";\r\nimport { AtlasPaymentStatus } from \"./AtlasPaymentStatus\";\r\nimport type { PaymentType } from \"../types\";\r\n\r\ninterface AtlasPaymentFormProps {\r\n authKey: string;\r\n merchantPaymentAddress: string;\r\n amount?: string;\r\n paymentType?: PaymentType;\r\n onSuccess?: (receipt: any) => void;\r\n onError?: (error: Error) => void;\r\n className?: string;\r\n buttonText?: string;\r\n disabled?: boolean;\r\n chainId?: number;\r\n}\r\n\r\nexport const AtlasPaymentForm: React.FC<AtlasPaymentFormProps> = ({\r\n authKey,\r\n merchantPaymentAddress,\r\n amount = \"0\",\r\n paymentType = \"one_time_payment\",\r\n onSuccess,\r\n onError,\r\n className = \"\",\r\n buttonText = \"PAY NOW\",\r\n disabled = false,\r\n}) => {\r\n const { processPayment, status, paymentData, closePopup, reset } =\r\n useAtlasPayment(authKey, paymentType);\r\n\r\n const handleSubmit = async (e: React.FormEvent) => {\r\n e.preventDefault();\r\n\r\n if (!paymentData?.isValid || parseFloat(amount) <= 0) {\r\n return;\r\n }\r\n\r\n try {\r\n const receipt = await processPayment(merchantPaymentAddress, amount);\r\n onSuccess?.(receipt);\r\n } catch (error) {\r\n onError?.(error as Error);\r\n }\r\n };\r\n\r\n const handleReset = () => {\r\n reset();\r\n };\r\n\r\n // Call onSuccess when payment is successful\r\n useEffect(() => {\r\n if (status.status === \"success\" && status.transactionHash) {\r\n onSuccess?.({\r\n success: true,\r\n transactionHash: status.transactionHash,\r\n amount,\r\n merchant: merchantPaymentAddress,\r\n type: paymentType,\r\n paymentData,\r\n });\r\n }\r\n }, [status.status, status.transactionHash]);\r\n\r\n // Call onError when payment fails\r\n useEffect(() => {\r\n if (status.status === \"error\" && status.error) {\r\n onError?.(new Error(status.error));\r\n }\r\n }, [status.status, status.error]);\r\n\r\n const getPaymentTypeLabel = (type: PaymentType) => {\r\n return type === \"delegate\" ? \"Recurring Payment\" : \"One-time Payment\";\r\n };\r\n\r\n // Handle undefined paymentData gracefully\r\n if (!paymentData) {\r\n return (\r\n <div className={`atlas-container ${className}`}>\r\n <div className=\"atlas-loading\">\r\n <div className=\"atlas-spinner\"></div>\r\n <p>Initializing payment system...</p>\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n // Show loading state while initializing\r\n if (paymentData.isLoading) {\r\n return (\r\n <div className={`atlas-container ${className}`}>\r\n <div className=\"atlas-loading\">\r\n <div className=\"atlas-spinner\"></div>\r\n <p>Loading payment information...</p>\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n // Show error if initialization failed\r\n if (!paymentData.isValid && status.status === \"error\") {\r\n return (\r\n <div className={`atlas-container ${className}`}>\r\n <div className=\"atlas-error-state\">\r\n <div className=\"atlas-error-icon\">⚠️</div>\r\n <h3>Payment Setup Failed</h3>\r\n <p>{status.error || \"Unable to initialize payment\"}</p>\r\n <button onClick={reset} className=\"atlas-secondary-button\">\r\n Try Again\r\n </button>\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div className={`atlas-container ${className}`}>\r\n <div className=\"atlas-header\">\r\n <div className=\"atlas-payment-type-badge\">\r\n {getPaymentTypeLabel(paymentType)}\r\n </div>\r\n <div className=\"atlas-total\">\r\n Pay <span>{amount} USDC</span>\r\n </div>\r\n </div>\r\n\r\n <div className=\"atlas-divider\" />\r\n\r\n <form onSubmit={handleSubmit} className=\"atlas-form\">\r\n {/* Payment Information (fetched from APIs) */}\r\n <div className=\"atlas-validation-info\">\r\n <div className=\"atlas-info-section\">\r\n <h4>Payment Account</h4>\r\n <div className=\"atlas-info-grid\">\r\n <div className=\"atlas-info-item\">\r\n <span className=\"atlas-info-label\">Card ID:</span>\r\n <span className=\"atlas-info-value\">\r\n {paymentData.cardId || \"N/A\"}\r\n </span>\r\n </div>\r\n {paymentData.userAddress && (\r\n <div className=\"atlas-info-item\">\r\n <span className=\"atlas-info-label\">Payer Address:</span>\r\n <span className=\"atlas-info-value\">\r\n {paymentData.userAddress.slice(0, 8)}...\r\n {paymentData.userAddress.slice(-6)}\r\n </span>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"atlas-merchant-info\">\r\n <div className=\"atlas-info-item\">\r\n <span className=\"atlas-info-label\">Merchant:</span>\r\n <span className=\"atlas-info-value\">\r\n {merchantPaymentAddress.slice(0, 8)}...\r\n {merchantPaymentAddress.slice(-6)}\r\n </span>\r\n </div>\r\n </div>\r\n\r\n {/* Amount Display */}\r\n <div className=\"atlas-amount-display-section\">\r\n <div className=\"atlas-amount-main\">\r\n <span className=\"atlas-amount-label\">Amount to Pay:</span>\r\n <span className=\"atlas-amount-value\">\r\n {amount} <span className=\"atlas-amount-token\">USDC</span>\r\n </span>\r\n </div>\r\n </div>\r\n\r\n {/* Popup Status Display */}\r\n {status.status === \"popup_open\" && (\r\n <div className=\"atlas-popup-status\">\r\n <div className=\"atlas-popup-icon\">🪟</div>\r\n <div className=\"atlas-popup-content\">\r\n <h4>Complete Payment in Popup</h4>\r\n <p>A new window has opened to complete your payment.</p>\r\n <p className=\"atlas-popup-hint\">\r\n If you don't see the popup, please check your browser settings\r\n or allow popups for this site.\r\n </p>\r\n <div className=\"atlas-popup-actions\">\r\n <button\r\n type=\"button\"\r\n onClick={closePopup}\r\n className=\"atlas-secondary-button\"\r\n >\r\n Cancel Payment\r\n </button>\r\n <button\r\n type=\"button\"\r\n onClick={() => {\r\n // Try to focus the popup\r\n if (window.open(\"\", \"Atlascard Payment\")) {\r\n window.focus();\r\n }\r\n }}\r\n className=\"atlas-tertiary-button\"\r\n >\r\n Show Popup\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n\r\n <div className=\"atlas-form-actions\">\r\n {status.status === \"ready\" && (\r\n <button\r\n type=\"submit\"\r\n className=\"atlas-pay-button\"\r\n disabled={\r\n !paymentData.isValid || parseFloat(amount) <= 0 || disabled\r\n }\r\n >\r\n {buttonText}\r\n </button>\r\n )}\r\n\r\n {status.status !== \"ready\" &&\r\n status.status !== \"idle\" &&\r\n status.status !== \"popup_open\" && (\r\n <div className=\"atlas-status-wrapper\">\r\n <AtlasPaymentStatus status={status} />\r\n\r\n {status.status === \"success\" && (\r\n <button\r\n type=\"button\"\r\n onClick={handleReset}\r\n className=\"atlas-secondary-button\"\r\n >\r\n Make Another Payment\r\n </button>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n </form>\r\n </div>\r\n );\r\n};\r\n","const AtlasIcon = () => {\r\n return (\r\n <>\r\n <svg\r\n width=\"40\"\r\n height=\"40\"\r\n viewBox=\"0 0 40 40\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M2.95703 21.4442C2.72371 20.0639 2.75066 20.0321 3.3877 20.8817C3.75566 21.3763 4.4245 22.1637 4.86426 22.6268C5.3087 23.09 6.68217 23.9215 7.91602 24.4745C9.14997 25.0229 11.2674 25.7423 12.627 26.075C14.009 26.4078 17.3615 26.6555 20.2559 26.6375C23.572 26.6151 26.4573 26.3265 28.333 25.8319C29.9348 25.4093 31.8552 24.7578 32.5957 24.3846C33.3361 24.0069 34.5035 23.1704 35.1855 22.5184C35.8675 21.8665 36.4234 21.0796 36.4189 20.7694C36.4145 20.4593 36.6117 20.3113 36.8584 20.4325C37.1052 20.5584 37.2227 21.0125 37.124 21.4442C37.0208 21.876 36.8008 23.0406 36.3252 25.828L37.3252 24.9286C37.8771 24.434 38.703 23.2195 39.1562 22.2303C39.9773 20.4411 39.9821 20.4368 40 21.7811C40.009 22.523 39.6184 24.4474 39.1338 26.0526C38.6357 27.6892 37.4018 30.1537 36.3203 31.66C35.2567 33.1348 33.179 35.2212 31.6982 36.2957C30.1501 37.4198 27.7625 38.6246 26.0889 39.1327C24.3299 39.6632 21.8797 40.0043 19.9189 39.9998C17.8863 39.9953 15.6563 39.6537 13.9736 39.0916C12.4928 38.597 10.4735 37.6887 9.48633 37.0682C8.4991 36.4522 6.7802 35.0358 5.67188 33.9207C4.55907 32.8056 2.94764 30.4369 2.07715 28.6385C1.13932 26.6961 0.403864 24.3801 0 20.4325L0.866211 22.2303C1.34186 23.2195 2.18963 24.4341 3.76465 25.828L3.48242 24.3661C3.32987 23.5613 3.09164 22.2489 2.95703 21.4442ZM6.18652 27.0584C5.79164 26.8786 5.43257 26.9008 5.3877 27.1122C5.34286 27.3235 5.87657 28.3085 6.58105 29.2977C7.28115 30.2869 8.75343 31.86 9.84375 32.7997C10.9387 33.7349 12.8946 34.9 14.1914 35.3856C15.4882 35.8712 17.6065 36.3968 18.9033 36.5497C20.2809 36.716 22.2826 36.5992 23.7275 36.2664C25.0827 35.9517 26.9536 35.3174 27.8779 34.8543C28.8022 34.3957 30.3006 33.3622 31.207 32.5575C32.1134 31.7527 33.4331 30.2869 34.1377 29.2977C34.8416 28.3093 35.411 27.3968 35.3984 27.2743C35.3895 27.1529 33.6173 27.6293 31.459 28.3397C28.5468 29.3019 26.33 29.6975 22.8301 29.8729C20.0077 30.0123 16.6778 29.882 14.5283 29.5448C12.5539 29.23 10.0318 28.6186 8.91895 28.1825C7.80647 27.7465 6.57736 27.2429 6.18652 27.0584ZM19.8066 0.000823975C21.4085 -0.0171596 23.8317 0.257193 25.1914 0.603363C26.5466 0.954077 28.4679 1.69562 29.4551 2.25766C30.4423 2.81972 32.143 4.00237 33.2334 4.88364C34.3238 5.76942 35.8945 7.50556 36.7246 8.74203C37.5502 9.97862 38.6314 12.3079 39.125 13.9129C39.6141 15.5225 40.009 17.4426 40 18.1844C39.9821 19.5285 39.9774 19.5236 39.1562 17.7342C38.703 16.7451 37.8683 15.5313 36.2754 14.1375L36.5361 15.2616C36.6797 15.8821 36.9307 17.1951 37.3838 19.9823L36.2979 18.6336C35.701 17.8917 34.5252 16.8488 33.6816 16.3182C32.838 15.7876 31.1868 15.0273 30.0156 14.6317C28.8444 14.236 26.1163 13.7011 23.958 13.4403C21.2073 13.1075 18.8912 13.1075 16.2168 13.4403C14.1167 13.7011 11.0882 14.3582 9.48633 14.9022C7.87987 15.4462 5.91455 16.4578 5.11133 17.1502C4.30844 17.8424 3.65289 18.7139 3.65234 19.0829C3.65234 19.456 3.45083 19.6588 3.2041 19.5331C2.9573 19.4116 2.83624 18.953 2.93945 18.5213C3.04266 18.0897 3.25813 16.9251 3.71582 14.1375L2.55762 15.2616C1.92046 15.8821 1.09031 17.195 0.0224609 19.9823L0.250977 17.285C0.403546 15.4595 0.987496 13.5347 2.06445 11.327C3.04266 9.32176 4.5636 7.15914 6.02637 5.70688C7.33666 4.40744 9.40542 2.84709 10.626 2.24008C11.851 1.63308 13.7582 0.887039 14.8711 0.585785C15.9794 0.284556 18.2002 0.0188488 19.8066 0.000823975ZM21.2588 3.17368C19.6613 3.07031 17.5659 3.28152 16.0986 3.69516C14.7435 4.07733 12.9267 4.81969 12.0605 5.33676C11.1946 5.8583 9.71813 7.00901 8.78027 7.89926C7.83794 8.78503 6.67488 10.1696 6.19922 10.9745C5.71949 11.7786 5.37934 12.529 5.44141 12.6424C5.50423 12.7548 6.76528 12.3686 8.24609 11.784C9.72697 11.195 12.554 10.4663 14.5283 10.1561C16.6957 9.8189 19.9852 9.69815 22.8301 9.84653C26.2716 10.0309 28.5962 10.4445 31.459 11.3797C33.6152 12.0849 35.3861 12.5565 35.3984 12.4364C35.4119 12.315 34.847 11.402 34.1426 10.4129C33.4426 9.42374 31.9703 7.84974 30.8799 6.91C29.7851 5.97486 27.7751 4.78789 26.4199 4.27524C25.0647 3.76266 22.7396 3.2681 21.2588 3.17368Z\"\r\n fill=\"#E4A300\"\r\n />\r\n </svg>\r\n </>\r\n );\r\n};\r\n\r\nexport default AtlasIcon;\r\n","// AtlasPaymentButton.tsx\r\nimport React, { useState } from \"react\";\r\nimport { AtlasPaymentForm } from \"./AtlasPaymentForm\";\r\nimport type { PaymentType } from \"../types\";\r\nimport AtlasIcon from \"@/assets/Icon\";\r\n\r\ninterface AtlasPaymentButtonProps {\r\n authKey: string; // Auth key passed directly\r\n merchantPaymentAddress: string;\r\n onSuccess?: (receipt: any) => void;\r\n onError?: (error: Error) => void;\r\n className?: string;\r\n buttonText?: string;\r\n amount?: string;\r\n paymentType?: PaymentType;\r\n disabled?: boolean;\r\n chainId?: number;\r\n}\r\n\r\nexport const AtlasPaymentButton: React.FC<AtlasPaymentButtonProps> = ({\r\n authKey,\r\n merchantPaymentAddress,\r\n onSuccess,\r\n onError,\r\n className = \"\",\r\n buttonText = \"Pay Now\",\r\n amount = \"0\",\r\n paymentType = \"one_time_payment\",\r\n disabled = false,\r\n // chainId = 8453,\r\n}) => {\r\n const [showModal, setShowModal] = useState(false);\r\n\r\n const handleSuccess = (receipt: any) => {\r\n onSuccess?.(receipt);\r\n setTimeout(() => setShowModal(false), 2000);\r\n };\r\n\r\n const handleError = (error: Error) => {\r\n onError?.(error);\r\n };\r\n\r\n const handleButtonClick = () => {\r\n if (!authKey) {\r\n alert(\"Payment configuration error: No auth key provided\");\r\n return;\r\n }\r\n setShowModal(true);\r\n };\r\n\r\n return (\r\n <>\r\n <button\r\n className={`atlas-payment-button ${className}`}\r\n onClick={handleButtonClick}\r\n disabled={disabled || !authKey}\r\n >\r\n {buttonText}\r\n </button>\r\n\r\n {showModal && (\r\n <div\r\n className=\"atlas-modal-overlay\"\r\n onClick={() => setShowModal(false)}\r\n >\r\n <div className=\"atlas-modal\" onClick={(e) => e.stopPropagation()}>\r\n <div className=\"atlas-modal-header\">\r\n <div className=\"atlas-modal-header2\">\r\n <AtlasIcon />\r\n <h3>Pay with Atlas</h3>\r\n </div>\r\n <button\r\n className=\"atlas-modal-close\"\r\n onClick={() => setShowModal(false)}\r\n >\r\n ×\r\n </button>\r\n </div>\r\n <div className=\"atlas-modal-body\">\r\n <AtlasPaymentForm\r\n authKey={authKey}\r\n merchantPaymentAddress={merchantPaymentAddress}\r\n amount={amount}\r\n paymentType={paymentType}\r\n onSuccess={handleSuccess}\r\n onError={handleError}\r\n buttonText={buttonText}\r\n disabled={disabled}\r\n // chainId={chainId}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n </>\r\n );\r\n};\r\n"],"names":["REACT_ELEMENT_TYPE","REACT_FRAGMENT_TYPE","jsxProd","type","config","maybeKey","key","propName","reactJsxRuntime_production","getComponentNameFromType","REACT_CLIENT_REFERENCE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_ACTIVITY_TYPE","REACT_PORTAL_TYPE","REACT_CONTEXT_TYPE","REACT_CONSUMER_TYPE","REACT_FORWARD_REF_TYPE","innerType","REACT_MEMO_TYPE","REACT_LAZY_TYPE","testStringCoercion","value","checkKeyStringCoercion","JSCompiler_inline_result","JSCompiler_temp_const","JSCompiler_inline_result$jscomp$0","getTaskName","name","getOwner","dispatcher","ReactSharedInternals","UnknownOwner","hasValidKey","hasOwnProperty","getter","defineKeyPropWarningGetter","props","displayName","warnAboutAccessingKey","specialPropKeyWarningShown","elementRefGetterWithDeprecationWarning","componentName","didWarnAboutElementRef","ReactElement","self","source","owner","debugStack","debugTask","jsxDEVImpl","isStaticChildren","children","isArrayImpl","validateChildKeys","keys","k","didWarnAboutKeySpread","node","React","require$$0","createTask","callStackForError","unknownOwnerDebugStack","unknownOwnerDebugTask","reactJsxRuntime_development","trackActualOwner","jsxRuntimeModule","require$$1","useAtlasPayment","authKey","paymentType","status","setStatus","useState","paymentData","setPaymentData","popupRef","useRef","paymentPromiseRef","useEffect","prev","validationData","credentialsResponse","credentialsData","updatedPaymentData","error","handleMessage","event","data","_a","checkPopup","openPaymentPopup","useCallback","merchantAddress","amount","url","popup","resolve","reject","AtlasPaymentStatus","getStatusIcon","jsx","getStatusColor","jsxs","AtlasPaymentForm","merchantPaymentAddress","onSuccess","onError","className","buttonText","disabled","processPayment","closePopup","reset","handleSubmit","e","receipt","handleReset","getPaymentTypeLabel","AtlasIcon","Fragment","AtlasPaymentButton","showModal","setShowModal","handleSuccess","handleError","handleButtonClick"],"mappings":"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","x_google_ignoreList":[0,1,2]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../node_modules/react/cjs/react-jsx-runtime.production.js","../node_modules/react/cjs/react-jsx-runtime.development.js","../node_modules/react/jsx-runtime.js","../src/hooks/useAtlasPayment.ts","../src/components/AtlasPaymentStatus.tsx","../src/components/AtlasPaymentForm.tsx","../src/assets/Icon.tsx","../src/components/AtlasPaymentButton.tsx"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Provider\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(\n type,\n key,\n self,\n source,\n owner,\n props,\n debugStack,\n debugTask\n ) {\n self = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== self ? self : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n source,\n self,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n self,\n source,\n getOwner(),\n maybeKey,\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_ELEMENT_TYPE &&\n node._store &&\n (node._store.validated = 1);\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n Symbol.for(\"react.provider\");\n var REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React.react_stack_bottom_frame.bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey, source, self) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.jsxs = function (type, config, maybeKey, source, self) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","// hooks/useAtlasPayment.ts\r\nimport { useState, useEffect, useCallback, useRef } from \"react\";\r\nimport type {\r\n PaymentType,\r\n ValidationResponse,\r\n DecryptedCredentials,\r\n} from \"../types\";\r\n\r\ninterface PaymentStatus {\r\n status:\r\n | \"idle\"\r\n | \"loading\"\r\n | \"validating\"\r\n | \"ready\"\r\n | \"popup_open\"\r\n | \"processing\"\r\n | \"success\"\r\n | \"error\";\r\n message: string;\r\n transactionHash?: string;\r\n error?: string;\r\n}\r\n\r\ninterface PaymentData {\r\n cardId?: string;\r\n businessAddress?: string;\r\n userAddress?: string;\r\n identifier?: string;\r\n credentials?: DecryptedCredentials;\r\n isValid: boolean;\r\n isLoading: boolean;\r\n}\r\n\r\ninterface PopupMessage {\r\n type: \"payment_result\" | \"payment_error\" | \"close_popup\";\r\n status?: \"success\" | \"failed\";\r\n transactionHash?: string;\r\n amount?: string;\r\n merchant?: string;\r\n paymentType?: string;\r\n error?: string;\r\n}\r\n\r\nexport const useAtlasPayment = (authKey: string, paymentType: PaymentType) => {\r\n const [status, setStatus] = useState<PaymentStatus>({\r\n status: \"idle\",\r\n message: \"Ready to pay\",\r\n });\r\n const [paymentData, setPaymentData] = useState<PaymentData>({\r\n isValid: false,\r\n isLoading: true,\r\n });\r\n const popupRef = useRef<Window | null>(null);\r\n const paymentPromiseRef = useRef<{\r\n resolve: (value: any) => void;\r\n reject: (reason?: any) => void;\r\n } | null>(null);\r\n\r\n // Automatically validate and fetch credentials when authKey or paymentType changes\r\n useEffect(() => {\r\n const initializePayment = async () => {\r\n if (!authKey) {\r\n setPaymentData({\r\n isValid: false,\r\n isLoading: false,\r\n });\r\n setStatus({\r\n status: \"error\",\r\n message: \"No auth key provided\",\r\n });\r\n return;\r\n }\r\n\r\n setPaymentData((prev) => ({ ...prev, isLoading: true }));\r\n setStatus({\r\n status: \"loading\",\r\n message: \"Loading payment information...\",\r\n });\r\n\r\n try {\r\n // Step 1: Validate auth key\r\n const validationResponse = await fetch(\r\n \"https://api.atlascard.xyz/api/auth/external/validate\",\r\n {\r\n method: \"POST\",\r\n headers: { \"Content-Type\": \"application/json\" },\r\n body: JSON.stringify({\r\n key: authKey,\r\n required_scopes: [paymentType],\r\n }),\r\n }\r\n );\r\n\r\n const validationData: ValidationResponse =\r\n await validationResponse.json();\r\n\r\n if (!validationData.valid) {\r\n setStatus({\r\n status: \"error\",\r\n message: \"Failed to initialize payment\",\r\n error: validationData.error || \"Invalid Auth Key\",\r\n });\r\n return;\r\n }\r\n\r\n // Step 2: Get credentials\r\n const credentialsResponse = await fetch(\r\n \"https://api.atlascard.xyz/api/credentials/get\",\r\n {\r\n method: \"POST\",\r\n headers: { \"Content-Type\": \"application/json\" },\r\n body: JSON.stringify({\r\n auth_key: authKey,\r\n required_scopes: [paymentType],\r\n }),\r\n }\r\n );\r\n\r\n if (!credentialsResponse.ok) {\r\n throw new Error(\"Failed to fetch credentials\");\r\n }\r\n\r\n const credentialsData: DecryptedCredentials =\r\n await credentialsResponse.json();\r\n\r\n const updatedPaymentData = {\r\n cardId: validationData.cardId,\r\n businessAddress: validationData.businessAddress,\r\n userAddress: credentialsData.address,\r\n identifier: credentialsData.identifier,\r\n credentials: credentialsData,\r\n isValid: true,\r\n isLoading: false,\r\n };\r\n\r\n setPaymentData(updatedPaymentData);\r\n setStatus({\r\n status: \"ready\",\r\n message: \"Ready to process payment\",\r\n });\r\n } catch (error) {\r\n console.error(\"Payment initialization error:\", error);\r\n const errorData = {\r\n isValid: false,\r\n isLoading: false,\r\n };\r\n setPaymentData(errorData);\r\n setStatus({\r\n status: \"error\",\r\n message: \"Failed to initialize payment\",\r\n error: error instanceof Error ? error.message : \"Unknown error\",\r\n });\r\n }\r\n };\r\n\r\n initializePayment();\r\n }, [authKey, paymentType]);\r\n\r\n // Listen for messages from popup\r\n useEffect(() => {\r\n const handleMessage = (event: MessageEvent) => {\r\n // Security: Only accept messages from Atlascard.xyz\r\n if (event.origin !== \"https://atlascard.xyz\") return;\r\n\r\n const data: PopupMessage = event.data;\r\n\r\n switch (data.type) {\r\n case \"payment_result\":\r\n if (data.status === \"success\") {\r\n setStatus({\r\n status: \"success\",\r\n message: \"Payment successful!\",\r\n transactionHash: data.transactionHash,\r\n });\r\n\r\n // Resolve the promise\r\n if (paymentPromiseRef.current) {\r\n paymentPromiseRef.current.resolve({\r\n success: true,\r\n transactionHash: data.transactionHash,\r\n amount: data.amount,\r\n merchant: data.merchant,\r\n type: data.paymentType,\r\n paymentData,\r\n });\r\n paymentPromiseRef.current = null;\r\n }\r\n\r\n // Close the popup\r\n if (popupRef.current) {\r\n setTimeout(() => {\r\n popupRef.current?.close();\r\n popupRef.current = null;\r\n }, 3000); // Give user time to see success message\r\n }\r\n } else {\r\n setStatus({\r\n status: \"error\",\r\n message: data.error || \"Payment failed\",\r\n error: data.error,\r\n });\r\n\r\n // Reject the promise\r\n if (paymentPromiseRef.current) {\r\n paymentPromiseRef.current.reject(\r\n new Error(data.error || \"Payment failed\")\r\n );\r\n paymentPromiseRef.current = null;\r\n }\r\n\r\n // Close the popup after a delay\r\n if (popupRef.current) {\r\n setTimeout(() => {\r\n popupRef.current?.close();\r\n popupRef.current = null;\r\n }, 3000);\r\n }\r\n }\r\n break;\r\n\r\n case \"payment_error\":\r\n setStatus({\r\n status: \"error\",\r\n message: data.error || \"Payment failed\",\r\n error: data.error,\r\n });\r\n\r\n if (paymentPromiseRef.current) {\r\n paymentPromiseRef.current.reject(\r\n new Error(data.error || \"Payment failed\")\r\n );\r\n paymentPromiseRef.current = null;\r\n }\r\n\r\n if (popupRef.current) {\r\n popupRef.current.close();\r\n popupRef.current = null;\r\n }\r\n break;\r\n\r\n case \"close_popup\":\r\n if (popupRef.current) {\r\n popupRef.current.close();\r\n popupRef.current = null;\r\n }\r\n\r\n // If still in popup_open status, user closed manually\r\n if (status.status === \"popup_open\") {\r\n setStatus({\r\n status: \"ready\",\r\n message: \"Payment cancelled\",\r\n });\r\n\r\n if (paymentPromiseRef.current) {\r\n paymentPromiseRef.current.reject(\r\n new Error(\"Payment cancelled by user\")\r\n );\r\n paymentPromiseRef.current = null;\r\n }\r\n }\r\n break;\r\n }\r\n };\r\n\r\n window.addEventListener(\"message\", handleMessage);\r\n return () => window.removeEventListener(\"message\", handleMessage);\r\n }, [paymentData, status.status]);\r\n\r\n // Check if popup was closed by user\r\n useEffect(() => {\r\n if (!popupRef.current) return;\r\n\r\n const checkPopup = setInterval(() => {\r\n if (popupRef.current?.closed) {\r\n clearInterval(checkPopup);\r\n\r\n // If still in popup_open status, user closed manually\r\n if (status.status === \"popup_open\") {\r\n setStatus({\r\n status: \"ready\",\r\n message: \"Payment cancelled\",\r\n });\r\n\r\n if (paymentPromiseRef.current) {\r\n paymentPromiseRef.current.reject(\r\n new Error(\"Payment cancelled by user\")\r\n );\r\n paymentPromiseRef.current = null;\r\n }\r\n }\r\n\r\n popupRef.current = null;\r\n }\r\n }, 500);\r\n\r\n return () => clearInterval(checkPopup);\r\n }, [status.status]);\r\n\r\n const openPaymentPopup = useCallback(\r\n async (merchantAddress: string, amount: string) => {\r\n if (!paymentData.isValid || !paymentData.credentials) {\r\n throw new Error(\"Payment data not validated\");\r\n }\r\n\r\n // Close any existing popup\r\n if (popupRef.current) {\r\n popupRef.current.close();\r\n popupRef.current = null;\r\n }\r\n\r\n // Build popup URL with all necessary parameters\r\n const params = new URLSearchParams({\r\n merchantAddress: merchantAddress,\r\n amount: amount,\r\n eoaAddress: paymentData.credentials.address,\r\n credentials: encodeURIComponent(\r\n JSON.stringify(paymentData.credentials)\r\n ),\r\n paymentType: paymentType,\r\n origin: window.location.origin,\r\n });\r\n\r\n const url = `https://atlascard.xyz/pay?${params.toString()}`;\r\n\r\n // Open popup window\r\n const popup = window.open(\r\n url,\r\n \"Atlascard Payment\",\r\n \"width=500,height=700,scrollbars=no,resizable=no,menubar=no,toolbar=no,location=no,status=no\"\r\n );\r\n\r\n if (!popup) {\r\n const error = \"Please allow popups to complete the payment\";\r\n setStatus({\r\n status: \"error\",\r\n message: error,\r\n error: error,\r\n });\r\n throw new Error(error);\r\n }\r\n\r\n popupRef.current = popup;\r\n setStatus({\r\n status: \"popup_open\",\r\n message: \"Complete payment in the popup window\",\r\n });\r\n },\r\n [paymentData, paymentType]\r\n );\r\n\r\n const processPayment = async (merchantAddress: string, amount: string) => {\r\n if (!paymentData.isValid) {\r\n throw new Error(\"Payment data not validated\");\r\n }\r\n\r\n // Create promise to handle payment result\r\n return new Promise((resolve, reject) => {\r\n paymentPromiseRef.current = { resolve, reject };\r\n\r\n // Open popup\r\n openPaymentPopup(merchantAddress, amount).catch(reject);\r\n });\r\n };\r\n\r\n const closePopup = () => {\r\n if (popupRef.current) {\r\n popupRef.current.close();\r\n popupRef.current = null;\r\n }\r\n\r\n if (status.status === \"popup_open\") {\r\n setStatus({\r\n status: \"ready\",\r\n message: \"Payment cancelled\",\r\n });\r\n }\r\n\r\n if (paymentPromiseRef.current) {\r\n paymentPromiseRef.current.reject(new Error(\"Payment cancelled\"));\r\n paymentPromiseRef.current = null;\r\n }\r\n };\r\n\r\n const reset = () => {\r\n setStatus({ status: \"idle\", message: \"Ready to pay\" });\r\n setPaymentData({\r\n isValid: false,\r\n isLoading: true,\r\n });\r\n\r\n if (popupRef.current) {\r\n popupRef.current.close();\r\n popupRef.current = null;\r\n }\r\n\r\n if (paymentPromiseRef.current) {\r\n paymentPromiseRef.current.reject(new Error(\"Payment reset\"));\r\n paymentPromiseRef.current = null;\r\n }\r\n };\r\n\r\n return {\r\n processPayment,\r\n status,\r\n paymentData,\r\n closePopup,\r\n reset,\r\n };\r\n};\r\n","import React from \"react\";\r\n\r\ninterface PaymentStatus {\r\n status:\r\n | \"idle\"\r\n | \"loading\"\r\n | \"validating\"\r\n | \"ready\"\r\n | \"popup_open\"\r\n | \"processing\"\r\n | \"success\"\r\n | \"error\";\r\n message: string;\r\n transactionHash?: string;\r\n error?: string;\r\n}\r\n\r\ninterface AtlasPaymentStatusProps {\r\n status: PaymentStatus;\r\n}\r\n\r\nexport const AtlasPaymentStatus: React.FC<AtlasPaymentStatusProps> = ({\r\n status,\r\n}) => {\r\n const getStatusIcon = () => {\r\n switch (status.status) {\r\n case \"processing\":\r\n return (\r\n <div className=\"atlas-spinner\">\r\n <div className=\"atlas-spinner-circle\"></div>\r\n </div>\r\n );\r\n case \"success\":\r\n return <div className=\"atlas-status-icon atlas-success\">✓</div>;\r\n case \"error\":\r\n return <div className=\"atlas-status-icon atlas-error\">✗</div>;\r\n default:\r\n return null;\r\n }\r\n };\r\n\r\n const getStatusColor = () => {\r\n switch (status.status) {\r\n case \"processing\":\r\n return \"atlas-status-processing\";\r\n case \"success\":\r\n return \"atlas-status-success\";\r\n case \"error\":\r\n return \"atlas-status-error\";\r\n default:\r\n return \"\";\r\n }\r\n };\r\n\r\n if (status.status === \"idle\") return null;\r\n\r\n return (\r\n <div className={`atlas-payment-status ${getStatusColor()}`}>\r\n <div className=\"atlas-status-content\">\r\n {getStatusIcon()}\r\n <div className=\"atlas-status-text\">\r\n <p className=\"atlas-status-message\">{status.message}</p>\r\n {status.transactionHash && (\r\n <p className=\"atlas-transaction-hash\">\r\n Tx: {status.transactionHash.slice(0, 10)}...\r\n {status.transactionHash.slice(-8)}\r\n </p>\r\n )}\r\n {status.error && (\r\n <p className=\"atlas-error-message\">{status.error}</p>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","\"use client\";\r\n\r\nimport React, { useEffect } from \"react\";\r\nimport { useAtlasPayment } from \"../hooks/useAtlasPayment\";\r\nimport { AtlasPaymentStatus } from \"./AtlasPaymentStatus\";\r\nimport type { PaymentType } from \"../types\";\r\n\r\ninterface AtlasPaymentFormProps {\r\n authKey: string;\r\n merchantPaymentAddress: string;\r\n amount?: string;\r\n paymentType?: PaymentType;\r\n onSuccess?: (receipt: any) => void;\r\n onError?: (error: Error) => void;\r\n className?: string;\r\n buttonText?: string;\r\n disabled?: boolean;\r\n chainId?: number;\r\n}\r\n\r\nexport const AtlasPaymentForm: React.FC<AtlasPaymentFormProps> = ({\r\n authKey,\r\n merchantPaymentAddress,\r\n amount = \"0\",\r\n paymentType = \"one_time_payment\",\r\n onSuccess,\r\n onError,\r\n className = \"\",\r\n buttonText = \"PAY NOW\",\r\n disabled = false,\r\n}) => {\r\n const { processPayment, status, paymentData, closePopup, reset } =\r\n useAtlasPayment(authKey, paymentType);\r\n\r\n const handleSubmit = async (e: React.FormEvent) => {\r\n e.preventDefault();\r\n\r\n if (!paymentData?.isValid || parseFloat(amount) <= 0) {\r\n return;\r\n }\r\n\r\n try {\r\n const receipt = await processPayment(merchantPaymentAddress, amount);\r\n onSuccess?.(receipt);\r\n } catch (error) {\r\n onError?.(error as Error);\r\n }\r\n };\r\n\r\n const handleReset = () => {\r\n reset();\r\n };\r\n\r\n // Call onSuccess when payment is successful\r\n useEffect(() => {\r\n if (status.status === \"success\" && status.transactionHash) {\r\n onSuccess?.({\r\n success: true,\r\n transactionHash: status.transactionHash,\r\n amount,\r\n merchant: merchantPaymentAddress,\r\n type: paymentType,\r\n paymentData,\r\n });\r\n }\r\n }, [status.status, status.transactionHash]);\r\n\r\n // Call onError when payment fails\r\n useEffect(() => {\r\n if (status.status === \"error\" && status.error) {\r\n onError?.(new Error(status.error));\r\n }\r\n }, [status.status, status.error]);\r\n\r\n const getPaymentTypeLabel = (type: PaymentType) => {\r\n return type === \"delegate\" ? \"Recurring Payment\" : \"One-time Payment\";\r\n };\r\n\r\n // Handle undefined paymentData gracefully\r\n if (!paymentData) {\r\n return (\r\n <div className={`atlas-container ${className}`}>\r\n <div className=\"atlas-loading\">\r\n <div className=\"atlas-spinner\"></div>\r\n <p>Initializing payment system...</p>\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n // Show loading state while initializing\r\n if (paymentData.isLoading) {\r\n return (\r\n <div className={`atlas-container ${className}`}>\r\n <div className=\"atlas-loading\">\r\n <div className=\"atlas-spinner\"></div>\r\n <p>Loading payment information...</p>\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n // Show error if initialization failed\r\n if (!paymentData.isValid && status.status === \"error\") {\r\n return (\r\n <div className={`atlas-container ${className}`}>\r\n <div className=\"atlas-error-state\">\r\n <div className=\"atlas-error-icon\">⚠️</div>\r\n <h3>Payment Setup Failed</h3>\r\n <p>{status.error || \"Unable to initialize payment\"}</p>\r\n <button onClick={reset} className=\"atlas-secondary-button\">\r\n Try Again\r\n </button>\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div className={`atlas-container ${className}`}>\r\n <div className=\"atlas-header\">\r\n <div className=\"atlas-payment-type-badge\">\r\n {getPaymentTypeLabel(paymentType)}\r\n </div>\r\n <div className=\"atlas-total\">\r\n Pay <span>{amount} USDC</span>\r\n </div>\r\n </div>\r\n\r\n <div className=\"atlas-divider\" />\r\n\r\n <form onSubmit={handleSubmit} className=\"atlas-form\">\r\n {/* Payment Information (fetched from APIs) */}\r\n <div className=\"atlas-validation-info\">\r\n <div className=\"atlas-info-section\">\r\n <h4>Payment Account</h4>\r\n <div className=\"atlas-info-grid\">\r\n <div className=\"atlas-info-item\">\r\n <span className=\"atlas-info-label\">Card ID:</span>\r\n <span className=\"atlas-info-value\">\r\n {paymentData.cardId || \"N/A\"}\r\n </span>\r\n </div>\r\n {paymentData.userAddress && (\r\n <div className=\"atlas-info-item\">\r\n <span className=\"atlas-info-label\">Payer Address:</span>\r\n <span className=\"atlas-info-value\">\r\n {paymentData.userAddress.slice(0, 8)}...\r\n {paymentData.userAddress.slice(-6)}\r\n </span>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"atlas-merchant-info\">\r\n <div className=\"atlas-info-item\">\r\n <span className=\"atlas-info-label\">Merchant:</span>\r\n <span className=\"atlas-info-value\">\r\n {merchantPaymentAddress.slice(0, 8)}...\r\n {merchantPaymentAddress.slice(-6)}\r\n </span>\r\n </div>\r\n </div>\r\n\r\n {/* Amount Display */}\r\n <div className=\"atlas-amount-display-section\">\r\n <div className=\"atlas-amount-main\">\r\n <span className=\"atlas-amount-label\">Amount to Pay:</span>\r\n <span className=\"atlas-amount-value\">\r\n {amount} <span className=\"atlas-amount-token\">USDC</span>\r\n </span>\r\n </div>\r\n </div>\r\n\r\n {/* Popup Status Display */}\r\n {status.status === \"popup_open\" && (\r\n <div className=\"atlas-popup-status\">\r\n <div className=\"atlas-popup-icon\">🪟</div>\r\n <div className=\"atlas-popup-content\">\r\n <h4>Complete Payment in Popup</h4>\r\n <p>A new window has opened to complete your payment.</p>\r\n <p className=\"atlas-popup-hint\">\r\n If you don't see the popup, please check your browser settings\r\n or allow popups for this site.\r\n </p>\r\n <div className=\"atlas-popup-actions\">\r\n <button\r\n type=\"button\"\r\n onClick={closePopup}\r\n className=\"atlas-secondary-button\"\r\n >\r\n Cancel Payment\r\n </button>\r\n <button\r\n type=\"button\"\r\n onClick={() => {\r\n // Try to focus the popup\r\n if (window.open(\"\", \"Atlascard Payment\")) {\r\n window.focus();\r\n }\r\n }}\r\n className=\"atlas-tertiary-button\"\r\n >\r\n Show Popup\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n\r\n <div className=\"atlas-form-actions\">\r\n {status.status === \"ready\" && (\r\n <button\r\n type=\"submit\"\r\n className=\"atlas-pay-button\"\r\n disabled={\r\n !paymentData.isValid || parseFloat(amount) <= 0 || disabled\r\n }\r\n >\r\n {buttonText}\r\n </button>\r\n )}\r\n\r\n {status.status !== \"ready\" &&\r\n status.status !== \"idle\" &&\r\n status.status !== \"popup_open\" && (\r\n <div className=\"atlas-status-wrapper\">\r\n <AtlasPaymentStatus status={status} />\r\n\r\n {status.status === \"success\" && (\r\n <button\r\n type=\"button\"\r\n onClick={handleReset}\r\n className=\"atlas-secondary-button\"\r\n >\r\n Make Another Payment\r\n </button>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n </form>\r\n </div>\r\n );\r\n};\r\n","const AtlasIcon = () => {\r\n return (\r\n <>\r\n <svg\r\n width=\"40\"\r\n height=\"40\"\r\n viewBox=\"0 0 40 40\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M2.95703 21.4442C2.72371 20.0639 2.75066 20.0321 3.3877 20.8817C3.75566 21.3763 4.4245 22.1637 4.86426 22.6268C5.3087 23.09 6.68217 23.9215 7.91602 24.4745C9.14997 25.0229 11.2674 25.7423 12.627 26.075C14.009 26.4078 17.3615 26.6555 20.2559 26.6375C23.572 26.6151 26.4573 26.3265 28.333 25.8319C29.9348 25.4093 31.8552 24.7578 32.5957 24.3846C33.3361 24.0069 34.5035 23.1704 35.1855 22.5184C35.8675 21.8665 36.4234 21.0796 36.4189 20.7694C36.4145 20.4593 36.6117 20.3113 36.8584 20.4325C37.1052 20.5584 37.2227 21.0125 37.124 21.4442C37.0208 21.876 36.8008 23.0406 36.3252 25.828L37.3252 24.9286C37.8771 24.434 38.703 23.2195 39.1562 22.2303C39.9773 20.4411 39.9821 20.4368 40 21.7811C40.009 22.523 39.6184 24.4474 39.1338 26.0526C38.6357 27.6892 37.4018 30.1537 36.3203 31.66C35.2567 33.1348 33.179 35.2212 31.6982 36.2957C30.1501 37.4198 27.7625 38.6246 26.0889 39.1327C24.3299 39.6632 21.8797 40.0043 19.9189 39.9998C17.8863 39.9953 15.6563 39.6537 13.9736 39.0916C12.4928 38.597 10.4735 37.6887 9.48633 37.0682C8.4991 36.4522 6.7802 35.0358 5.67188 33.9207C4.55907 32.8056 2.94764 30.4369 2.07715 28.6385C1.13932 26.6961 0.403864 24.3801 0 20.4325L0.866211 22.2303C1.34186 23.2195 2.18963 24.4341 3.76465 25.828L3.48242 24.3661C3.32987 23.5613 3.09164 22.2489 2.95703 21.4442ZM6.18652 27.0584C5.79164 26.8786 5.43257 26.9008 5.3877 27.1122C5.34286 27.3235 5.87657 28.3085 6.58105 29.2977C7.28115 30.2869 8.75343 31.86 9.84375 32.7997C10.9387 33.7349 12.8946 34.9 14.1914 35.3856C15.4882 35.8712 17.6065 36.3968 18.9033 36.5497C20.2809 36.716 22.2826 36.5992 23.7275 36.2664C25.0827 35.9517 26.9536 35.3174 27.8779 34.8543C28.8022 34.3957 30.3006 33.3622 31.207 32.5575C32.1134 31.7527 33.4331 30.2869 34.1377 29.2977C34.8416 28.3093 35.411 27.3968 35.3984 27.2743C35.3895 27.1529 33.6173 27.6293 31.459 28.3397C28.5468 29.3019 26.33 29.6975 22.8301 29.8729C20.0077 30.0123 16.6778 29.882 14.5283 29.5448C12.5539 29.23 10.0318 28.6186 8.91895 28.1825C7.80647 27.7465 6.57736 27.2429 6.18652 27.0584ZM19.8066 0.000823975C21.4085 -0.0171596 23.8317 0.257193 25.1914 0.603363C26.5466 0.954077 28.4679 1.69562 29.4551 2.25766C30.4423 2.81972 32.143 4.00237 33.2334 4.88364C34.3238 5.76942 35.8945 7.50556 36.7246 8.74203C37.5502 9.97862 38.6314 12.3079 39.125 13.9129C39.6141 15.5225 40.009 17.4426 40 18.1844C39.9821 19.5285 39.9774 19.5236 39.1562 17.7342C38.703 16.7451 37.8683 15.5313 36.2754 14.1375L36.5361 15.2616C36.6797 15.8821 36.9307 17.1951 37.3838 19.9823L36.2979 18.6336C35.701 17.8917 34.5252 16.8488 33.6816 16.3182C32.838 15.7876 31.1868 15.0273 30.0156 14.6317C28.8444 14.236 26.1163 13.7011 23.958 13.4403C21.2073 13.1075 18.8912 13.1075 16.2168 13.4403C14.1167 13.7011 11.0882 14.3582 9.48633 14.9022C7.87987 15.4462 5.91455 16.4578 5.11133 17.1502C4.30844 17.8424 3.65289 18.7139 3.65234 19.0829C3.65234 19.456 3.45083 19.6588 3.2041 19.5331C2.9573 19.4116 2.83624 18.953 2.93945 18.5213C3.04266 18.0897 3.25813 16.9251 3.71582 14.1375L2.55762 15.2616C1.92046 15.8821 1.09031 17.195 0.0224609 19.9823L0.250977 17.285C0.403546 15.4595 0.987496 13.5347 2.06445 11.327C3.04266 9.32176 4.5636 7.15914 6.02637 5.70688C7.33666 4.40744 9.40542 2.84709 10.626 2.24008C11.851 1.63308 13.7582 0.887039 14.8711 0.585785C15.9794 0.284556 18.2002 0.0188488 19.8066 0.000823975ZM21.2588 3.17368C19.6613 3.07031 17.5659 3.28152 16.0986 3.69516C14.7435 4.07733 12.9267 4.81969 12.0605 5.33676C11.1946 5.8583 9.71813 7.00901 8.78027 7.89926C7.83794 8.78503 6.67488 10.1696 6.19922 10.9745C5.71949 11.7786 5.37934 12.529 5.44141 12.6424C5.50423 12.7548 6.76528 12.3686 8.24609 11.784C9.72697 11.195 12.554 10.4663 14.5283 10.1561C16.6957 9.8189 19.9852 9.69815 22.8301 9.84653C26.2716 10.0309 28.5962 10.4445 31.459 11.3797C33.6152 12.0849 35.3861 12.5565 35.3984 12.4364C35.4119 12.315 34.847 11.402 34.1426 10.4129C33.4426 9.42374 31.9703 7.84974 30.8799 6.91C29.7851 5.97486 27.7751 4.78789 26.4199 4.27524C25.0647 3.76266 22.7396 3.2681 21.2588 3.17368Z\"\r\n fill=\"#E4A300\"\r\n />\r\n </svg>\r\n </>\r\n );\r\n};\r\n\r\nexport default AtlasIcon;\r\n","// AtlasPaymentButton.tsx\r\nimport React, { useState } from \"react\";\r\nimport { AtlasPaymentForm } from \"./AtlasPaymentForm\";\r\nimport type { PaymentType } from \"../types\";\r\nimport AtlasIcon from \"@/assets/Icon\";\r\n\r\ninterface AtlasPaymentButtonProps {\r\n authKey: string; // Auth key passed directly\r\n merchantPaymentAddress: string;\r\n onSuccess?: (receipt: any) => void;\r\n onError?: (error: Error) => void;\r\n className?: string;\r\n buttonText?: string;\r\n amount?: string;\r\n paymentType?: PaymentType;\r\n disabled?: boolean;\r\n chainId?: number;\r\n}\r\n\r\nexport const AtlasPaymentButton: React.FC<AtlasPaymentButtonProps> = ({\r\n authKey,\r\n merchantPaymentAddress,\r\n onSuccess,\r\n onError,\r\n className = \"\",\r\n buttonText = \"Pay Now\",\r\n amount = \"0\",\r\n paymentType = \"one_time_payment\",\r\n disabled = false,\r\n // chainId = 8453,\r\n}) => {\r\n const [showModal, setShowModal] = useState(false);\r\n\r\n const handleSuccess = (receipt: any) => {\r\n onSuccess?.(receipt);\r\n setTimeout(() => setShowModal(false), 2000);\r\n };\r\n\r\n const handleError = (error: Error) => {\r\n onError?.(error);\r\n };\r\n\r\n const handleButtonClick = () => {\r\n if (!authKey) {\r\n alert(\"Payment configuration error: No auth key provided\");\r\n return;\r\n }\r\n setShowModal(true);\r\n };\r\n\r\n return (\r\n <>\r\n <button\r\n className={`atlas-payment-button ${className}`}\r\n onClick={handleButtonClick}\r\n disabled={disabled || !authKey}\r\n >\r\n {buttonText}\r\n </button>\r\n\r\n {showModal && (\r\n <div\r\n className=\"atlas-modal-overlay\"\r\n onClick={() => setShowModal(false)}\r\n >\r\n <div className=\"atlas-modal\" onClick={(e) => e.stopPropagation()}>\r\n <div className=\"atlas-modal-header\">\r\n <div className=\"atlas-modal-header2\">\r\n <AtlasIcon />\r\n <h3>Pay with Atlas</h3>\r\n </div>\r\n <button\r\n className=\"atlas-modal-close\"\r\n onClick={() => setShowModal(false)}\r\n >\r\n ×\r\n </button>\r\n </div>\r\n <div className=\"atlas-modal-body\">\r\n <AtlasPaymentForm\r\n authKey={authKey}\r\n merchantPaymentAddress={merchantPaymentAddress}\r\n amount={amount}\r\n paymentType={paymentType}\r\n onSuccess={handleSuccess}\r\n onError={handleError}\r\n buttonText={buttonText}\r\n disabled={disabled}\r\n // chainId={chainId}\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n </>\r\n );\r\n};\r\n"],"names":["REACT_ELEMENT_TYPE","REACT_FRAGMENT_TYPE","jsxProd","type","config","maybeKey","key","propName","reactJsxRuntime_production","getComponentNameFromType","REACT_CLIENT_REFERENCE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_ACTIVITY_TYPE","REACT_PORTAL_TYPE","REACT_CONTEXT_TYPE","REACT_CONSUMER_TYPE","REACT_FORWARD_REF_TYPE","innerType","REACT_MEMO_TYPE","REACT_LAZY_TYPE","testStringCoercion","value","checkKeyStringCoercion","JSCompiler_inline_result","JSCompiler_temp_const","JSCompiler_inline_result$jscomp$0","getTaskName","name","getOwner","dispatcher","ReactSharedInternals","UnknownOwner","hasValidKey","hasOwnProperty","getter","defineKeyPropWarningGetter","props","displayName","warnAboutAccessingKey","specialPropKeyWarningShown","elementRefGetterWithDeprecationWarning","componentName","didWarnAboutElementRef","ReactElement","self","source","owner","debugStack","debugTask","jsxDEVImpl","isStaticChildren","children","isArrayImpl","validateChildKeys","keys","k","didWarnAboutKeySpread","node","React","require$$0","createTask","callStackForError","unknownOwnerDebugStack","unknownOwnerDebugTask","reactJsxRuntime_development","trackActualOwner","jsxRuntimeModule","require$$1","useAtlasPayment","authKey","paymentType","status","setStatus","useState","paymentData","setPaymentData","popupRef","useRef","paymentPromiseRef","useEffect","prev","validationData","credentialsResponse","credentialsData","updatedPaymentData","error","handleMessage","event","data","_a","checkPopup","openPaymentPopup","useCallback","merchantAddress","amount","url","popup","resolve","reject","AtlasPaymentStatus","getStatusIcon","jsx","getStatusColor","jsxs","AtlasPaymentForm","merchantPaymentAddress","onSuccess","onError","className","buttonText","disabled","processPayment","closePopup","reset","handleSubmit","e","receipt","handleReset","getPaymentTypeLabel","AtlasIcon","Fragment","AtlasPaymentButton","showModal","setShowModal","handleSuccess","handleError","handleButtonClick"],"mappings":"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","x_google_ignoreList":[0,1,2]}
|