thirdweb 5.112.4 → 5.114.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/dist/cjs/exports/react.js +4 -1
  2. package/dist/cjs/exports/react.js.map +1 -1
  3. package/dist/cjs/exports/react.native.js +4 -1
  4. package/dist/cjs/exports/react.native.js.map +1 -1
  5. package/dist/cjs/react/core/hooks/x402/useFetchWithPaymentCore.js +110 -0
  6. package/dist/cjs/react/core/hooks/x402/useFetchWithPaymentCore.js.map +1 -0
  7. package/dist/cjs/react/native/hooks/x402/useFetchWithPayment.js +89 -0
  8. package/dist/cjs/react/native/hooks/x402/useFetchWithPayment.js.map +1 -0
  9. package/dist/cjs/react/web/hooks/x402/useFetchWithPayment.js +168 -0
  10. package/dist/cjs/react/web/hooks/x402/useFetchWithPayment.js.map +1 -0
  11. package/dist/cjs/react/web/ui/components/basic.js +1 -1
  12. package/dist/cjs/react/web/ui/x402/PaymentErrorModal.js +107 -0
  13. package/dist/cjs/react/web/ui/x402/PaymentErrorModal.js.map +1 -0
  14. package/dist/cjs/react/web/ui/x402/SignInRequiredModal.js +28 -0
  15. package/dist/cjs/react/web/ui/x402/SignInRequiredModal.js.map +1 -0
  16. package/dist/cjs/version.js +1 -1
  17. package/dist/cjs/wallets/coinbase/coinbase-web.js +9 -0
  18. package/dist/cjs/wallets/coinbase/coinbase-web.js.map +1 -1
  19. package/dist/cjs/x402/common.js +2 -10
  20. package/dist/cjs/x402/common.js.map +1 -1
  21. package/dist/cjs/x402/facilitator.js +2 -1
  22. package/dist/cjs/x402/facilitator.js.map +1 -1
  23. package/dist/cjs/x402/fetchWithPayment.js +13 -14
  24. package/dist/cjs/x402/fetchWithPayment.js.map +1 -1
  25. package/dist/cjs/x402/schemas.js +4 -1
  26. package/dist/cjs/x402/schemas.js.map +1 -1
  27. package/dist/cjs/x402/settle-payment.js +13 -2
  28. package/dist/cjs/x402/settle-payment.js.map +1 -1
  29. package/dist/cjs/x402/types.js +6 -1
  30. package/dist/cjs/x402/types.js.map +1 -1
  31. package/dist/cjs/x402/verify-payment.js +12 -2
  32. package/dist/cjs/x402/verify-payment.js.map +1 -1
  33. package/dist/esm/exports/react.js +2 -0
  34. package/dist/esm/exports/react.js.map +1 -1
  35. package/dist/esm/exports/react.native.js +2 -0
  36. package/dist/esm/exports/react.native.js.map +1 -1
  37. package/dist/esm/react/core/hooks/x402/useFetchWithPaymentCore.js +107 -0
  38. package/dist/esm/react/core/hooks/x402/useFetchWithPaymentCore.js.map +1 -0
  39. package/dist/esm/react/native/hooks/x402/useFetchWithPayment.js +86 -0
  40. package/dist/esm/react/native/hooks/x402/useFetchWithPayment.js.map +1 -0
  41. package/dist/esm/react/web/hooks/x402/useFetchWithPayment.js +165 -0
  42. package/dist/esm/react/web/hooks/x402/useFetchWithPayment.js.map +1 -0
  43. package/dist/esm/react/web/ui/components/basic.js +1 -1
  44. package/dist/esm/react/web/ui/x402/PaymentErrorModal.js +104 -0
  45. package/dist/esm/react/web/ui/x402/PaymentErrorModal.js.map +1 -0
  46. package/dist/esm/react/web/ui/x402/SignInRequiredModal.js +25 -0
  47. package/dist/esm/react/web/ui/x402/SignInRequiredModal.js.map +1 -0
  48. package/dist/esm/version.js +1 -1
  49. package/dist/esm/wallets/coinbase/coinbase-web.js +9 -0
  50. package/dist/esm/wallets/coinbase/coinbase-web.js.map +1 -1
  51. package/dist/esm/x402/common.js +2 -10
  52. package/dist/esm/x402/common.js.map +1 -1
  53. package/dist/esm/x402/facilitator.js +2 -1
  54. package/dist/esm/x402/facilitator.js.map +1 -1
  55. package/dist/esm/x402/fetchWithPayment.js +13 -14
  56. package/dist/esm/x402/fetchWithPayment.js.map +1 -1
  57. package/dist/esm/x402/schemas.js +4 -1
  58. package/dist/esm/x402/schemas.js.map +1 -1
  59. package/dist/esm/x402/settle-payment.js +13 -2
  60. package/dist/esm/x402/settle-payment.js.map +1 -1
  61. package/dist/esm/x402/types.js +5 -0
  62. package/dist/esm/x402/types.js.map +1 -1
  63. package/dist/esm/x402/verify-payment.js +12 -2
  64. package/dist/esm/x402/verify-payment.js.map +1 -1
  65. package/dist/scripts/bridge-widget.js +50 -50
  66. package/dist/types/exports/react.d.ts +1 -0
  67. package/dist/types/exports/react.d.ts.map +1 -1
  68. package/dist/types/exports/react.native.d.ts +1 -0
  69. package/dist/types/exports/react.native.d.ts.map +1 -1
  70. package/dist/types/react/core/hooks/x402/useFetchWithPaymentCore.d.ts +131 -0
  71. package/dist/types/react/core/hooks/x402/useFetchWithPaymentCore.d.ts.map +1 -0
  72. package/dist/types/react/native/hooks/x402/useFetchWithPayment.d.ts +189 -0
  73. package/dist/types/react/native/hooks/x402/useFetchWithPayment.d.ts.map +1 -0
  74. package/dist/types/react/web/hooks/x402/useFetchWithPayment.d.ts +248 -0
  75. package/dist/types/react/web/hooks/x402/useFetchWithPayment.d.ts.map +1 -0
  76. package/dist/types/react/web/ui/x402/PaymentErrorModal.d.ts +20 -0
  77. package/dist/types/react/web/ui/x402/PaymentErrorModal.d.ts.map +1 -0
  78. package/dist/types/react/web/ui/x402/SignInRequiredModal.d.ts +12 -0
  79. package/dist/types/react/web/ui/x402/SignInRequiredModal.d.ts.map +1 -0
  80. package/dist/types/version.d.ts +1 -1
  81. package/dist/types/x402/common.d.ts.map +1 -1
  82. package/dist/types/x402/facilitator.d.ts +1 -1
  83. package/dist/types/x402/facilitator.d.ts.map +1 -1
  84. package/dist/types/x402/fetchWithPayment.d.ts +7 -3
  85. package/dist/types/x402/fetchWithPayment.d.ts.map +1 -1
  86. package/dist/types/x402/schemas.d.ts +17 -17
  87. package/dist/types/x402/schemas.d.ts.map +1 -1
  88. package/dist/types/x402/settle-payment.d.ts +13 -2
  89. package/dist/types/x402/settle-payment.d.ts.map +1 -1
  90. package/dist/types/x402/types.d.ts +13 -1
  91. package/dist/types/x402/types.d.ts.map +1 -1
  92. package/dist/types/x402/verify-payment.d.ts +12 -2
  93. package/dist/types/x402/verify-payment.d.ts.map +1 -1
  94. package/package.json +3 -3
  95. package/src/exports/react.native.ts +5 -0
  96. package/src/exports/react.ts +5 -0
  97. package/src/react/core/hooks/x402/useFetchWithPaymentCore.ts +160 -0
  98. package/src/react/native/hooks/x402/useFetchWithPayment.ts +96 -0
  99. package/src/react/web/hooks/x402/useFetchWithPayment.tsx +238 -0
  100. package/src/react/web/ui/components/basic.tsx +1 -1
  101. package/src/react/web/ui/x402/PaymentErrorModal.tsx +261 -0
  102. package/src/react/web/ui/x402/SignInRequiredModal.tsx +75 -0
  103. package/src/version.ts +1 -1
  104. package/src/wallets/coinbase/coinbase-web.ts +10 -0
  105. package/src/x402/common.ts +2 -20
  106. package/src/x402/facilitator.ts +2 -1
  107. package/src/x402/fetchWithPayment.ts +23 -22
  108. package/src/x402/schemas.ts +4 -1
  109. package/src/x402/settle-payment.ts +13 -2
  110. package/src/x402/types.ts +16 -1
  111. package/src/x402/verify-payment.ts +12 -2
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useWalletImage = exports.useEnsName = exports.useEnsAvatar = exports.getDefaultToken = exports.defaultTokens = exports.createContractQuery = exports.useSocialProfiles = exports.useConnectionManager = exports.useWaitForCallsReceipt = exports.useSwitchActiveWalletChain = exports.useSetActiveWalletConnectionStatus = exports.useSetActiveWallet = exports.useSendCalls = exports.useSendAndConfirmCalls = exports.useIsAutoConnecting = exports.useDisconnect = exports.useConnectedWallets = exports.useConnect = exports.useCapabilities = exports.useAuthToken = exports.useAdminWallet = exports.useAddConnectedWallet = exports.useActiveWalletConnectionStatus = exports.useActiveWalletChain = exports.useActiveWallet = exports.useActiveAccount = exports.useSimulateTransaction = exports.useSendBatchTransaction = exports.useEstimateGasCost = exports.useEstimateGas = exports.useBlockNumber = exports.usePostOnRampQuote = exports.useBuyWithFiatStatus = exports.useBuyWithFiatQuote = exports.useBuyWithFiatHistory = exports.useBuyWithCryptoStatus = exports.useBuyWithCryptoQuote = exports.useBuyWithCryptoHistory = exports.useBuyHistory = exports.useWalletBalance = exports.useInvalidateContractQuery = exports.useInvalidateBalances = exports.useChainMetadata = exports.useWaitForReceipt = exports.useReadContract = exports.useContractEvents = exports.useSiweAuth = exports.lightTheme = exports.darkTheme = exports.AccountProvider = void 0;
4
- exports.getLastAuthProvider = exports.TransactionButton = exports.SiteLink = exports.SiteEmbed = exports.WalletName = exports.WalletIcon = exports.SocialIcon = exports.CreateDirectListingButton = exports.ClaimButton = exports.BuyDirectListingButton = exports.TokenSymbol = exports.TokenProvider = exports.TokenName = exports.TokenIcon = exports.NFTProvider = exports.NFTName = exports.NFTMedia = exports.NFTDescription = exports.ChainProvider = exports.ChainName = exports.ChainIcon = exports.AccountName = exports.AccountBlobbie = exports.AccountBalance = exports.AccountAvatar = exports.AccountAddress = exports.PayEmbed = exports.MediaRenderer = exports.useConnectModal = exports.useNetworkSwitcherModal = exports.ConnectEmbed = exports.useWalletDetailsModal = exports.ConnectButton = exports.Blobbie = exports.TransactionWidget = exports.SwapWidget = exports.CheckoutWidget = exports.BridgeWidget = exports.BuyWidget = exports.AutoConnect = exports.ThirdwebProvider = exports.useUnlinkProfile = exports.useProfiles = exports.useLinkProfile = exports.useAutoConnect = exports.useSendTransaction = exports.useSendAndConfirmTransaction = exports.WalletProvider = exports.useWalletInfo = void 0;
4
+ exports.getLastAuthProvider = exports.TransactionButton = exports.SiteLink = exports.SiteEmbed = exports.WalletName = exports.WalletIcon = exports.SocialIcon = exports.CreateDirectListingButton = exports.ClaimButton = exports.BuyDirectListingButton = exports.TokenSymbol = exports.TokenProvider = exports.TokenName = exports.TokenIcon = exports.NFTProvider = exports.NFTName = exports.NFTMedia = exports.NFTDescription = exports.ChainProvider = exports.ChainName = exports.ChainIcon = exports.AccountName = exports.AccountBlobbie = exports.AccountBalance = exports.AccountAvatar = exports.AccountAddress = exports.PayEmbed = exports.MediaRenderer = exports.useConnectModal = exports.useNetworkSwitcherModal = exports.ConnectEmbed = exports.useWalletDetailsModal = exports.ConnectButton = exports.Blobbie = exports.TransactionWidget = exports.SwapWidget = exports.CheckoutWidget = exports.BridgeWidget = exports.BuyWidget = exports.AutoConnect = exports.ThirdwebProvider = exports.useFetchWithPayment = exports.useUnlinkProfile = exports.useProfiles = exports.useLinkProfile = exports.useAutoConnect = exports.useSendTransaction = exports.useSendAndConfirmTransaction = exports.WalletProvider = exports.useWalletInfo = void 0;
5
5
  var provider_js_1 = require("../react/core/account/provider.js");
6
6
  Object.defineProperty(exports, "AccountProvider", { enumerable: true, get: function () { return provider_js_1.AccountProvider; } });
7
7
  var index_js_1 = require("../react/core/design-system/index.js");
@@ -124,6 +124,9 @@ var useProfiles_js_1 = require("../react/web/hooks/wallets/useProfiles.js");
124
124
  Object.defineProperty(exports, "useProfiles", { enumerable: true, get: function () { return useProfiles_js_1.useProfiles; } });
125
125
  var useUnlinkProfile_js_1 = require("../react/web/hooks/wallets/useUnlinkProfile.js");
126
126
  Object.defineProperty(exports, "useUnlinkProfile", { enumerable: true, get: function () { return useUnlinkProfile_js_1.useUnlinkProfile; } });
127
+ // x402
128
+ var useFetchWithPayment_js_1 = require("../react/web/hooks/x402/useFetchWithPayment.js");
129
+ Object.defineProperty(exports, "useFetchWithPayment", { enumerable: true, get: function () { return useFetchWithPayment_js_1.useFetchWithPayment; } });
127
130
  var thirdweb_provider_js_1 = require("../react/web/providers/thirdweb-provider.js");
128
131
  Object.defineProperty(exports, "ThirdwebProvider", { enumerable: true, get: function () { return thirdweb_provider_js_1.ThirdwebProvider; } });
129
132
  var AutoConnect_js_1 = require("../react/web/ui/AutoConnect/AutoConnect.js");
@@ -1 +1 @@
1
- {"version":3,"file":"react.js","sourceRoot":"","sources":["../../../src/exports/react.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"react.js","sourceRoot":"","sources":["../../../src/exports/react.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useAutoConnect = exports.useSendTransaction = exports.WalletProvider = exports.useWalletInfo = exports.useWalletImage = exports.createContractQuery = exports.useSocialProfiles = exports.useConnectionManager = exports.useWaitForCallsReceipt = exports.useSwitchActiveWalletChain = exports.useSetActiveWalletConnectionStatus = exports.useSetActiveWallet = exports.useSendCalls = exports.useSendAndConfirmCalls = exports.useIsAutoConnecting = exports.useDisconnect = exports.useConnectedWallets = exports.useConnect = exports.useCapabilities = exports.useAuthToken = exports.useAdminWallet = exports.useAddConnectedWallet = exports.useActiveWalletConnectionStatus = exports.useActiveWalletChain = exports.useActiveWallet = exports.useActiveAccount = exports.useSimulateTransaction = exports.useSendBatchTransaction = exports.useSendAndConfirmTransaction = exports.useEstimateGasCost = exports.useEstimateGas = exports.useBlockNumber = exports.usePostOnRampQuote = exports.useBuyWithFiatStatus = exports.useBuyWithFiatQuote = exports.useBuyWithFiatHistory = exports.useBuyWithCryptoStatus = exports.useBuyWithCryptoQuote = exports.useBuyWithCryptoHistory = exports.useBuyHistory = exports.useWalletBalance = exports.useInvalidateContractQuery = exports.useInvalidateBalances = exports.useWaitForReceipt = exports.useReadContract = exports.useContractEvents = exports.useSiweAuth = exports.lightTheme = exports.darkTheme = exports.AccountProvider = void 0;
4
- exports.TransactionButton = exports.WalletName = exports.WalletIcon = exports.SocialIcon = exports.AccountName = exports.Blobbie = exports.AccountBlobbie = exports.AccountBalance = exports.AccountAvatar = exports.AccountAddress = exports.ConnectEmbed = exports.ConnectButton = exports.AutoConnect = exports.ThirdwebProvider = exports.useUnlinkProfile = exports.useProfiles = exports.useLinkProfile = void 0;
4
+ exports.TransactionButton = exports.WalletName = exports.WalletIcon = exports.SocialIcon = exports.AccountName = exports.Blobbie = exports.AccountBlobbie = exports.AccountBalance = exports.AccountAvatar = exports.AccountAddress = exports.ConnectEmbed = exports.ConnectButton = exports.AutoConnect = exports.ThirdwebProvider = exports.useFetchWithPayment = exports.useUnlinkProfile = exports.useProfiles = exports.useLinkProfile = void 0;
5
5
  var provider_js_1 = require("../react/core/account/provider.js");
6
6
  Object.defineProperty(exports, "AccountProvider", { enumerable: true, get: function () { return provider_js_1.AccountProvider; } });
7
7
  // theme
@@ -118,6 +118,9 @@ var useProfiles_js_1 = require("../react/native/hooks/wallets/useProfiles.js");
118
118
  Object.defineProperty(exports, "useProfiles", { enumerable: true, get: function () { return useProfiles_js_1.useProfiles; } });
119
119
  var useUnlinkProfile_js_1 = require("../react/native/hooks/wallets/useUnlinkProfile.js");
120
120
  Object.defineProperty(exports, "useUnlinkProfile", { enumerable: true, get: function () { return useUnlinkProfile_js_1.useUnlinkProfile; } });
121
+ // x402
122
+ var useFetchWithPayment_js_1 = require("../react/native/hooks/x402/useFetchWithPayment.js");
123
+ Object.defineProperty(exports, "useFetchWithPayment", { enumerable: true, get: function () { return useFetchWithPayment_js_1.useFetchWithPayment; } });
121
124
  var thirdweb_provider_js_1 = require("../react/native/providers/thirdweb-provider.js");
122
125
  Object.defineProperty(exports, "ThirdwebProvider", { enumerable: true, get: function () { return thirdweb_provider_js_1.ThirdwebProvider; } });
123
126
  // Components
@@ -1 +1 @@
1
- {"version":3,"file":"react.native.js","sourceRoot":"","sources":["../../../src/exports/react.native.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"react.native.js","sourceRoot":"","sources":["../../../src/exports/react.native.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ "use client";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.useFetchWithPaymentCore = useFetchWithPaymentCore;
5
+ const react_query_1 = require("@tanstack/react-query");
6
+ const fetchWithPayment_js_1 = require("../../../../x402/fetchWithPayment.js");
7
+ const useActiveWallet_js_1 = require("../wallets/useActiveWallet.js");
8
+ /**
9
+ * Core hook for fetch with payment functionality.
10
+ * This is the platform-agnostic implementation used by both web and native versions.
11
+ * @internal
12
+ */
13
+ function useFetchWithPaymentCore(client, options, showErrorModal, showConnectModal) {
14
+ const wallet = (0, useActiveWallet_js_1.useActiveWallet)();
15
+ const mutation = (0, react_query_1.useMutation)({
16
+ mutationFn: async ({ input, init, }) => {
17
+ // Recursive function that handles fetch + 402 error + retry
18
+ const executeFetch = async (currentWallet = wallet) => {
19
+ if (!currentWallet) {
20
+ // If a connect modal handler is provided, show the connect modal
21
+ if (showConnectModal) {
22
+ return new Promise((resolve, reject) => {
23
+ showConnectModal({
24
+ onConnect: async (newWallet) => {
25
+ // After connection, retry the fetch with the newly connected wallet
26
+ try {
27
+ const result = await executeFetch(newWallet);
28
+ resolve(result);
29
+ }
30
+ catch (error) {
31
+ reject(error);
32
+ }
33
+ },
34
+ onCancel: () => {
35
+ reject(new Error("Wallet connection cancelled by user"));
36
+ },
37
+ });
38
+ });
39
+ }
40
+ // If no connect modal handler, throw an error
41
+ throw new Error("No wallet connected. Please connect your wallet to make paid API calls.");
42
+ }
43
+ const wrappedFetch = (0, fetchWithPayment_js_1.wrapFetchWithPayment)(globalThis.fetch, client, currentWallet, options);
44
+ const response = await wrappedFetch(input, init);
45
+ // Check if we got a 402 response (payment error)
46
+ if (response.status === 402) {
47
+ try {
48
+ const errorBody = (await response.json());
49
+ // If a modal handler is provided, show the modal and handle retry/cancel
50
+ if (showErrorModal) {
51
+ return new Promise((resolve, reject) => {
52
+ showErrorModal({
53
+ errorData: errorBody,
54
+ onRetry: async () => {
55
+ // Retry the entire fetch+error handling logic recursively
56
+ try {
57
+ const result = await executeFetch();
58
+ resolve(result);
59
+ }
60
+ catch (error) {
61
+ reject(error);
62
+ }
63
+ },
64
+ onCancel: () => {
65
+ reject(new Error("Payment cancelled by user"));
66
+ },
67
+ });
68
+ });
69
+ }
70
+ // If no modal handler, throw the error with details
71
+ throw new Error(errorBody.errorMessage || `Payment failed: ${errorBody.error}`);
72
+ }
73
+ catch (_parseError) {
74
+ // If we can't parse the error body, throw a generic error
75
+ throw new Error("Payment failed with status 402");
76
+ }
77
+ }
78
+ if (!response.ok) {
79
+ const errorText = await response.text();
80
+ throw new Error(`Payment failed with status ${response.status} ${response.statusText} - ${errorText || "Unknown error"}`);
81
+ }
82
+ const parseAs = options?.parseAs ?? "json";
83
+ return parseResponse(response, parseAs);
84
+ };
85
+ // Start the fetch process
86
+ return executeFetch();
87
+ },
88
+ });
89
+ return {
90
+ fetchWithPayment: async (input, init) => {
91
+ return mutation.mutateAsync({ input, init });
92
+ },
93
+ ...mutation,
94
+ };
95
+ }
96
+ function parseResponse(response, parseAs) {
97
+ if (parseAs === "json") {
98
+ return response.json();
99
+ }
100
+ else if (parseAs === "text") {
101
+ return response.text();
102
+ }
103
+ else if (parseAs === "raw") {
104
+ return response;
105
+ }
106
+ else {
107
+ throw new Error(`Invalid parseAs option: ${parseAs}`);
108
+ }
109
+ }
110
+ //# sourceMappingURL=useFetchWithPaymentCore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFetchWithPaymentCore.js","sourceRoot":"","sources":["../../../../../../src/react/core/hooks/x402/useFetchWithPaymentCore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ "use client";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.useFetchWithPayment = useFetchWithPayment;
5
+ const useFetchWithPaymentCore_js_1 = require("../../../core/hooks/x402/useFetchWithPaymentCore.js");
6
+ /**
7
+ * A React hook that wraps the native fetch API to automatically handle 402 Payment Required responses
8
+ * using the x402 payment protocol with the currently connected wallet.
9
+ *
10
+ * This hook enables you to make API calls that require payment without manually handling the payment flow.
11
+ * Responses are automatically parsed as JSON by default (can be customized with `parseAs` option).
12
+ *
13
+ * When a 402 response is received, it will automatically:
14
+ * 1. Parse the payment requirements
15
+ * 2. Verify the payment amount is within the allowed maximum
16
+ * 3. Create a payment header using the connected wallet
17
+ * 4. Retry the request with the payment header
18
+ *
19
+ * Note: This is the React Native version which does not include modal UI.
20
+ * Payment errors will be thrown and should be handled by your application.
21
+ *
22
+ * @param client - The thirdweb client used to access RPC infrastructure
23
+ * @param options - Optional configuration for payment handling
24
+ * @param options.maxValue - The maximum allowed payment amount in base units
25
+ * @param options.paymentRequirementsSelector - Custom function to select payment requirements from available options
26
+ * @param options.parseAs - How to parse the response: "json" (default), "text", or "raw"
27
+ * @returns An object containing:
28
+ * - `fetchWithPayment`: Function to make fetch requests with automatic payment handling (returns parsed data)
29
+ * - `isPending`: Boolean indicating if a request is in progress
30
+ * - `error`: Any error that occurred during the request
31
+ * - `data`: The parsed response data (JSON by default, or based on `parseAs` option)
32
+ * - Other mutation properties from React Query
33
+ *
34
+ * @example
35
+ * ```tsx
36
+ * import { useFetchWithPayment } from "thirdweb/react";
37
+ * import { createThirdwebClient } from "thirdweb";
38
+ *
39
+ * const client = createThirdwebClient({ clientId: "your-client-id" });
40
+ *
41
+ * function MyComponent() {
42
+ * const { fetchWithPayment, isPending, error } = useFetchWithPayment(client);
43
+ *
44
+ * const handleApiCall = async () => {
45
+ * try {
46
+ * // Response is automatically parsed as JSON
47
+ * const data = await fetchWithPayment('https://api.example.com/paid-endpoint');
48
+ * console.log(data);
49
+ * } catch (err) {
50
+ * // Handle payment errors manually in React Native
51
+ * console.error("Payment failed:", err);
52
+ * }
53
+ * };
54
+ *
55
+ * return (
56
+ * <button onClick={handleApiCall} disabled={isPending}>
57
+ * {isPending ? 'Loading...' : 'Make Paid API Call'}
58
+ * </button>
59
+ * );
60
+ * }
61
+ * ```
62
+ *
63
+ * ### Customize response parsing
64
+ * ```tsx
65
+ * const { fetchWithPayment } = useFetchWithPayment(client, {
66
+ * parseAs: "text", // Get response as text instead of JSON
67
+ * });
68
+ *
69
+ * const textData = await fetchWithPayment('https://api.example.com/endpoint');
70
+ * ```
71
+ *
72
+ * ### Customize payment options
73
+ * ```tsx
74
+ * const { fetchWithPayment } = useFetchWithPayment(client, {
75
+ * maxValue: 5000000n, // 5 USDC in base units
76
+ * paymentRequirementsSelector: (requirements) => {
77
+ * // Custom logic to select preferred payment method
78
+ * return requirements[0];
79
+ * }
80
+ * });
81
+ * ```
82
+ *
83
+ * @x402
84
+ */
85
+ function useFetchWithPayment(client, options) {
86
+ // Native version doesn't show modal, errors bubble up naturally
87
+ return (0, useFetchWithPaymentCore_js_1.useFetchWithPaymentCore)(client, options);
88
+ }
89
+ //# sourceMappingURL=useFetchWithPayment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFetchWithPayment.js","sourceRoot":"","sources":["../../../../../../src/react/native/hooks/x402/useFetchWithPayment.ts"],"names":[],"mappings":";AAAA,YAAY,CAAC;;AAyFb,kDAMC;AA5FD,oGAG6D;AAI7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8EG;AACH,SAAgB,mBAAmB,CACjC,MAAsB,EACtB,OAAoC;IAEpC,gEAAgE;IAChE,OAAO,IAAA,oDAAuB,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC"}
@@ -0,0 +1,168 @@
1
+ "use strict";
2
+ "use client";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.useFetchWithPayment = useFetchWithPayment;
5
+ const jsx_runtime_1 = require("react/jsx-runtime");
6
+ const react_1 = require("react");
7
+ const useFetchWithPaymentCore_js_1 = require("../../../core/hooks/x402/useFetchWithPaymentCore.js");
8
+ const RootElementContext_js_1 = require("../../../core/providers/RootElementContext.js");
9
+ const useConnectModal_js_1 = require("../../ui/ConnectWallet/useConnectModal.js");
10
+ const PaymentErrorModal_js_1 = require("../../ui/x402/PaymentErrorModal.js");
11
+ const SignInRequiredModal_js_1 = require("../../ui/x402/SignInRequiredModal.js");
12
+ /**
13
+ * A React hook that wraps the native fetch API to automatically handle 402 Payment Required responses
14
+ * using the x402 payment protocol with the currently connected wallet.
15
+ *
16
+ * This hook enables you to make API calls that require payment without manually handling the payment flow.
17
+ * Responses are automatically parsed as JSON by default (can be customized with `parseAs` option).
18
+ *
19
+ * When a 402 response is received, it will automatically:
20
+ * 1. Parse the payment requirements
21
+ * 2. Verify the payment amount is within the allowed maximum
22
+ * 3. Create a payment header using the connected wallet
23
+ * 4. Retry the request with the payment header
24
+ *
25
+ * If payment fails (e.g. insufficient funds), a modal will be shown to help the user resolve the issue.
26
+ * If no wallet is connected, a sign-in modal will be shown to connect a wallet.
27
+ *
28
+ * @param client - The thirdweb client used to access RPC infrastructure
29
+ * @param options - Optional configuration for payment handling
30
+ * @param options.maxValue - The maximum allowed payment amount in base units
31
+ * @param options.paymentRequirementsSelector - Custom function to select payment requirements from available options
32
+ * @param options.parseAs - How to parse the response: "json" (default), "text", or "raw"
33
+ * @param options.uiEnabled - Whether to show the UI for connection, funding or payment retries (defaults to true). Set to false to handle errors yourself
34
+ * @param options.theme - Theme for the payment error modal (defaults to "dark")
35
+ * @param options.fundWalletOptions - Customize the BuyWidget shown when user needs to fund their wallet
36
+ * @param options.connectOptions - Customize the ConnectModal shown when user needs to sign in
37
+ * @returns An object containing:
38
+ * - `fetchWithPayment`: Function to make fetch requests with automatic payment handling (returns parsed data)
39
+ * - `isPending`: Boolean indicating if a request is in progress
40
+ * - `error`: Any error that occurred during the request
41
+ * - `data`: The parsed response data (JSON by default, or based on `parseAs` option)
42
+ * - Other mutation properties from React Query
43
+ *
44
+ * @example
45
+ * ```tsx
46
+ * import { useFetchWithPayment } from "thirdweb/react";
47
+ * import { createThirdwebClient } from "thirdweb";
48
+ *
49
+ * const client = createThirdwebClient({ clientId: "your-client-id" });
50
+ *
51
+ * function MyComponent() {
52
+ * const { fetchWithPayment, isPending } = useFetchWithPayment(client);
53
+ *
54
+ * const handleApiCall = async () => {
55
+ * // Response is automatically parsed as JSON
56
+ * const data = await fetchWithPayment('https://api.example.com/paid-endpoint');
57
+ * console.log(data);
58
+ * };
59
+ *
60
+ * return (
61
+ * <button onClick={handleApiCall} disabled={isPending}>
62
+ * {isPending ? 'Loading...' : 'Make Paid API Call'}
63
+ * </button>
64
+ * );
65
+ * }
66
+ * ```
67
+ *
68
+ * ### Customize response parsing
69
+ * ```tsx
70
+ * const { fetchWithPayment } = useFetchWithPayment(client, {
71
+ * parseAs: "text", // Get response as text instead of JSON
72
+ * });
73
+ *
74
+ * const textData = await fetchWithPayment('https://api.example.com/endpoint');
75
+ * ```
76
+ *
77
+ * ### Customize payment options
78
+ * ```tsx
79
+ * const { fetchWithPayment } = useFetchWithPayment(client, {
80
+ * maxValue: 5000000n, // 5 USDC in base units
81
+ * theme: "light",
82
+ * paymentRequirementsSelector: (requirements) => {
83
+ * // Custom logic to select preferred payment method
84
+ * return requirements[0];
85
+ * }
86
+ * });
87
+ * ```
88
+ *
89
+ * ### Customize the fund wallet widget
90
+ * ```tsx
91
+ * const { fetchWithPayment } = useFetchWithPayment(client, {
92
+ * fundWalletOptions: {
93
+ * title: "Add Funds",
94
+ * description: "You need more tokens to complete this payment",
95
+ * buttonLabel: "Get Tokens",
96
+ * }
97
+ * });
98
+ * ```
99
+ *
100
+ * ### Customize the connect modal
101
+ * ```tsx
102
+ * const { fetchWithPayment } = useFetchWithPayment(client, {
103
+ * connectOptions: {
104
+ * wallets: [inAppWallet(), createWallet("io.metamask")],
105
+ * title: "Sign in to continue",
106
+ * }
107
+ * });
108
+ * ```
109
+ *
110
+ * ### Disable the UI and handle errors yourself
111
+ * ```tsx
112
+ * const { fetchWithPayment, error } = useFetchWithPayment(client, {
113
+ * uiEnabled: false,
114
+ * });
115
+ *
116
+ * // Handle the error manually
117
+ * if (error) {
118
+ * console.error("Payment failed:", error);
119
+ * }
120
+ * ```
121
+ *
122
+ * @x402
123
+ */
124
+ function useFetchWithPayment(client, options) {
125
+ const setRootEl = (0, react_1.useContext)(RootElementContext_js_1.SetRootElementContext);
126
+ const { connect } = (0, useConnectModal_js_1.useConnectModal)();
127
+ const theme = options?.theme || "dark";
128
+ const showModal = options?.uiEnabled !== false; // Default to true
129
+ const showErrorModal = showModal
130
+ ? (data) => {
131
+ setRootEl((0, jsx_runtime_1.jsx)(PaymentErrorModal_js_1.PaymentErrorModal, { client: client, errorData: data.errorData, onCancel: () => {
132
+ setRootEl(null);
133
+ data.onCancel();
134
+ }, onRetry: () => {
135
+ setRootEl(null);
136
+ data.onRetry();
137
+ }, theme: theme, fundWalletOptions: options?.fundWalletOptions, paymentRequirementsSelector: options?.paymentRequirementsSelector }));
138
+ }
139
+ : undefined;
140
+ const showConnectModal = showModal
141
+ ? (data) => {
142
+ // First, show the SignInRequiredModal
143
+ setRootEl((0, jsx_runtime_1.jsx)(SignInRequiredModal_js_1.SignInRequiredModal, { theme: theme, onSignIn: async () => {
144
+ // Close the SignInRequiredModal
145
+ setRootEl(null);
146
+ // Open the ConnectModal
147
+ try {
148
+ const connectedWallet = await connect({
149
+ client,
150
+ theme,
151
+ ...options?.connectOptions,
152
+ });
153
+ // On successful connection, trigger onConnect callback with the wallet
154
+ data.onConnect(connectedWallet);
155
+ }
156
+ catch (_error) {
157
+ // User cancelled the connection
158
+ data.onCancel();
159
+ }
160
+ }, onCancel: () => {
161
+ setRootEl(null);
162
+ data.onCancel();
163
+ } }));
164
+ }
165
+ : undefined;
166
+ return (0, useFetchWithPaymentCore_js_1.useFetchWithPaymentCore)(client, options, showErrorModal, showConnectModal);
167
+ }
168
+ //# sourceMappingURL=useFetchWithPayment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFetchWithPayment.js","sourceRoot":"","sources":["../../../../../../src/react/web/hooks/x402/useFetchWithPayment.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;AAkKb,kDA2EC;;AA3OD,iCAAmC;AAInC,oGAG6D;AAC7D,yFAAsF;AAEtF,kFAGmD;AACnD,6EAAuE;AACvE,iFAA2E;AAiC3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+GG;AACH,SAAgB,mBAAmB,CACjC,MAAsB,EACtB,OAAmC;IAEnC,MAAM,SAAS,GAAG,IAAA,kBAAU,EAAC,6CAAqB,CAAC,CAAC;IACpD,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,oCAAe,GAAE,CAAC;IACtC,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,MAAM,CAAC;IACvC,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,KAAK,KAAK,CAAC,CAAC,kBAAkB;IAElE,MAAM,cAAc,GAAG,SAAS;QAC9B,CAAC,CAAC,CAAC,IAIA,EAAE,EAAE;YACH,SAAS,CACP,uBAAC,wCAAiB,IAChB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,QAAQ,EAAE,GAAG,EAAE;oBACb,SAAS,CAAC,IAAI,CAAC,CAAC;oBAChB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,CAAC,EACD,OAAO,EAAE,GAAG,EAAE;oBACZ,SAAS,CAAC,IAAI,CAAC,CAAC;oBAChB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,CAAC,EACD,KAAK,EAAE,KAAK,EACZ,iBAAiB,EAAE,OAAO,EAAE,iBAAiB,EAC7C,2BAA2B,EAAE,OAAO,EAAE,2BAA2B,GACjE,CACH,CAAC;QACJ,CAAC;QACH,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,gBAAgB,GAAG,SAAS;QAChC,CAAC,CAAC,CAAC,IAAmE,EAAE,EAAE;YACtE,sCAAsC;YACtC,SAAS,CACP,uBAAC,4CAAmB,IAClB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,KAAK,IAAI,EAAE;oBACnB,gCAAgC;oBAChC,SAAS,CAAC,IAAI,CAAC,CAAC;oBAEhB,wBAAwB;oBACxB,IAAI,CAAC;wBACH,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC;4BACpC,MAAM;4BACN,KAAK;4BACL,GAAG,OAAO,EAAE,cAAc;yBAC3B,CAAC,CAAC;wBAEH,uEAAuE;wBACvE,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;oBAClC,CAAC;oBAAC,OAAO,MAAM,EAAE,CAAC;wBAChB,gCAAgC;wBAChC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAClB,CAAC;gBACH,CAAC,EACD,QAAQ,EAAE,GAAG,EAAE;oBACb,SAAS,CAAC,IAAI,CAAC,CAAC;oBAChB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,CAAC,GACD,CACH,CAAC;QACJ,CAAC;QACH,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO,IAAA,oDAAuB,EAC5B,MAAM,EACN,OAAO,EACP,cAAc,EACd,gBAAgB,CACjB,CAAC;AACJ,CAAC"}
@@ -17,7 +17,7 @@ exports.ScreenBottomContainer = (0, elements_js_1.StyledDiv)((_) => {
17
17
  borderTop: `1px solid ${theme.colors.separatorLine}`,
18
18
  display: "flex",
19
19
  flexDirection: "column",
20
- gap: index_js_1.spacing.lg,
20
+ gap: index_js_1.spacing.md,
21
21
  padding: index_js_1.spacing.lg,
22
22
  };
23
23
  });
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ "use client";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.PaymentErrorModal = PaymentErrorModal;
5
+ const jsx_runtime_1 = require("react/jsx-runtime");
6
+ const react_1 = require("react");
7
+ const utils_js_1 = require("../../../../chains/utils.js");
8
+ const schemas_js_1 = require("../../../../x402/schemas.js");
9
+ const CustomThemeProvider_js_1 = require("../../../core/design-system/CustomThemeProvider.js");
10
+ const index_js_1 = require("../../../core/design-system/index.js");
11
+ const useActiveWallet_js_1 = require("../../../core/hooks/wallets/useActiveWallet.js");
12
+ const BuyWidget_js_1 = require("../Bridge/BuyWidget.js");
13
+ const basic_js_1 = require("../components/basic.js");
14
+ const buttons_js_1 = require("../components/buttons.js");
15
+ const Modal_js_1 = require("../components/Modal.js");
16
+ const text_js_1 = require("../components/text.js");
17
+ /**
18
+ * @internal
19
+ */
20
+ function PaymentErrorModal(props) {
21
+ const { client, errorData, onRetry, onCancel, theme, fundWalletOptions, paymentRequirementsSelector, } = props;
22
+ const [screen, setScreen] = (0, react_1.useState)("error");
23
+ const isInsufficientFunds = errorData.error === "insufficient_funds";
24
+ const wallet = (0, useActiveWallet_js_1.useActiveWallet)();
25
+ // Extract chain and token info from errorData for BuyWidget
26
+ const getBuyWidgetConfig = () => {
27
+ if (!errorData.accepts || errorData.accepts.length === 0) {
28
+ return null;
29
+ }
30
+ // Get payment requirements from errorData
31
+ const parsedPaymentRequirements = errorData.accepts;
32
+ // Get the current chain from wallet
33
+ const currentChain = wallet?.getChain();
34
+ const currentChainId = currentChain?.id;
35
+ // Select payment requirement using the same logic as wrapFetchWithPayment
36
+ const selectedRequirement = paymentRequirementsSelector
37
+ ? paymentRequirementsSelector(parsedPaymentRequirements)
38
+ : defaultPaymentRequirementsSelector(parsedPaymentRequirements, currentChainId, "exact", errorData.error);
39
+ if (!selectedRequirement)
40
+ return null;
41
+ const caip2ChainId = (0, schemas_js_1.networkToCaip2ChainId)(selectedRequirement.network);
42
+ const chainId = (0, schemas_js_1.extractEvmChainId)(caip2ChainId);
43
+ if (!chainId)
44
+ return null;
45
+ const chain = (0, utils_js_1.getCachedChain)(chainId);
46
+ const tokenAddress = selectedRequirement.asset;
47
+ return {
48
+ chain,
49
+ tokenAddress,
50
+ amount: undefined,
51
+ };
52
+ };
53
+ const buyWidgetConfig = isInsufficientFunds ? getBuyWidgetConfig() : null;
54
+ if (screen === "buy-widget" && buyWidgetConfig) {
55
+ return ((0, jsx_runtime_1.jsx)(CustomThemeProvider_js_1.CustomThemeProvider, { theme: theme, children: (0, jsx_runtime_1.jsx)(Modal_js_1.Modal, { className: "tw-payment-error-modal", hideCloseIcon: false, open: true, setOpen: (open) => {
56
+ if (!open) {
57
+ onCancel();
58
+ }
59
+ }, size: "compact", title: "Top up your wallet", crossContainerStyles: {
60
+ position: "absolute",
61
+ right: index_js_1.spacing.lg,
62
+ top: index_js_1.spacing.lg,
63
+ zIndex: 1,
64
+ }, children: (0, jsx_runtime_1.jsx)(BuyWidget_js_1.BuyWidget, { client: client, theme: theme, chain: buyWidgetConfig.chain, tokenAddress: buyWidgetConfig.tokenAddress, amount: buyWidgetConfig.amount, style: {
65
+ border: "none",
66
+ width: "100%",
67
+ }, buttonLabel: "Continue", title: "Get funds", description: "Top up your wallet to complete your payment.", ...fundWalletOptions, onSuccess: () => {
68
+ // Close modal and retry the payment
69
+ onRetry();
70
+ }, onCancel: () => {
71
+ // Go back to error screen
72
+ setScreen("error");
73
+ } }) }) }));
74
+ }
75
+ // Error screen (default)
76
+ return ((0, jsx_runtime_1.jsx)(CustomThemeProvider_js_1.CustomThemeProvider, { theme: theme, children: (0, jsx_runtime_1.jsxs)(Modal_js_1.Modal, { className: "tw-payment-error-modal", hideCloseIcon: true, open: true, setOpen: (open) => {
77
+ if (!open) {
78
+ onCancel();
79
+ }
80
+ }, size: "compact", title: "Payment Failed", children: [(0, jsx_runtime_1.jsxs)(basic_js_1.Container, { p: "lg", children: [(0, jsx_runtime_1.jsx)(basic_js_1.ModalHeader, { title: "Payment failed" }), (0, jsx_runtime_1.jsx)(basic_js_1.Container, { flex: "column", gap: "lg", style: {
81
+ paddingTop: index_js_1.spacing.lg,
82
+ }, children: (0, jsx_runtime_1.jsx)(text_js_1.Text, { size: "sm", style: {
83
+ color: "inherit",
84
+ lineHeight: 1.5,
85
+ }, children: isInsufficientFunds
86
+ ? "Your wallet doesn't have enough funds to complete this payment. Please top up your wallet and try again."
87
+ : errorData.errorMessage ||
88
+ "An error occurred while processing your payment." }) })] }), (0, jsx_runtime_1.jsx)(basic_js_1.ScreenBottomContainer, { children: isInsufficientFunds && buyWidgetConfig ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(buttons_js_1.Button, { fullWidth: true, gap: "xs", onClick: () => setScreen("buy-widget"), variant: "accent", children: "Top up your wallet" }), (0, jsx_runtime_1.jsx)(buttons_js_1.Button, { fullWidth: true, gap: "xs", onClick: onCancel, variant: "secondary", children: "Cancel" })] })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(buttons_js_1.Button, { fullWidth: true, gap: "xs", onClick: onRetry, variant: "accent", children: "Try Again" }), (0, jsx_runtime_1.jsx)(buttons_js_1.Button, { fullWidth: true, gap: "xs", onClick: onCancel, variant: "secondary", children: "Cancel" })] })) })] }) }));
89
+ }
90
+ // Default payment requirement selector - same logic as in fetchWithPayment.ts
91
+ function defaultPaymentRequirementsSelector(paymentRequirements, chainId, scheme, _error) {
92
+ if (!paymentRequirements.length) {
93
+ return undefined;
94
+ }
95
+ // If we have a chainId, find matching payment requirements
96
+ if (chainId !== undefined) {
97
+ const matchingPaymentRequirements = paymentRequirements.find((x) => (0, schemas_js_1.extractEvmChainId)((0, schemas_js_1.networkToCaip2ChainId)(x.network)) === chainId &&
98
+ x.scheme === scheme);
99
+ if (matchingPaymentRequirements) {
100
+ return matchingPaymentRequirements;
101
+ }
102
+ }
103
+ // If no matching payment requirements, use the first payment requirement
104
+ const firstPaymentRequirement = paymentRequirements.find((x) => x.scheme === scheme);
105
+ return firstPaymentRequirement;
106
+ }
107
+ //# sourceMappingURL=PaymentErrorModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PaymentErrorModal.js","sourceRoot":"","sources":["../../../../../../src/react/web/ui/x402/PaymentErrorModal.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ "use client";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.SignInRequiredModal = SignInRequiredModal;
5
+ const jsx_runtime_1 = require("react/jsx-runtime");
6
+ const CustomThemeProvider_js_1 = require("../../../core/design-system/CustomThemeProvider.js");
7
+ const index_js_1 = require("../../../core/design-system/index.js");
8
+ const basic_js_1 = require("../components/basic.js");
9
+ const buttons_js_1 = require("../components/buttons.js");
10
+ const Modal_js_1 = require("../components/Modal.js");
11
+ const text_js_1 = require("../components/text.js");
12
+ /**
13
+ * @internal
14
+ */
15
+ function SignInRequiredModal(props) {
16
+ const { theme, onSignIn, onCancel } = props;
17
+ return ((0, jsx_runtime_1.jsx)(CustomThemeProvider_js_1.CustomThemeProvider, { theme: theme, children: (0, jsx_runtime_1.jsxs)(Modal_js_1.Modal, { className: "tw-signin-required-modal", hideCloseIcon: true, open: true, setOpen: (open) => {
18
+ if (!open) {
19
+ onCancel();
20
+ }
21
+ }, size: "compact", title: "Sign in required", children: [(0, jsx_runtime_1.jsxs)(basic_js_1.Container, { p: "lg", children: [(0, jsx_runtime_1.jsx)(basic_js_1.ModalHeader, { title: "Sign in required" }), (0, jsx_runtime_1.jsx)(basic_js_1.Container, { flex: "column", gap: "lg", style: {
22
+ paddingTop: index_js_1.spacing.lg,
23
+ }, children: (0, jsx_runtime_1.jsx)(text_js_1.Text, { size: "sm", style: {
24
+ color: "inherit",
25
+ lineHeight: 1.5,
26
+ }, children: "Account required to complete payment, please sign in to continue." }) })] }), (0, jsx_runtime_1.jsxs)(basic_js_1.ScreenBottomContainer, { children: [(0, jsx_runtime_1.jsx)(buttons_js_1.Button, { fullWidth: true, gap: "xs", onClick: onSignIn, variant: "accent", children: "Sign in" }), (0, jsx_runtime_1.jsx)(buttons_js_1.Button, { fullWidth: true, gap: "xs", onClick: onCancel, variant: "secondary", children: "Cancel" })] })] }) }));
27
+ }
28
+ //# sourceMappingURL=SignInRequiredModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SignInRequiredModal.js","sourceRoot":"","sources":["../../../../../../src/react/web/ui/x402/SignInRequiredModal.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;AAsBb,kDAoDC;;AAzED,+FAAyF;AAEzF,mEAA+D;AAC/D,qDAIgC;AAChC,yDAAkD;AAClD,qDAA+C;AAC/C,mDAA6C;AAQ7C;;GAEG;AACH,SAAgB,mBAAmB,CAAC,KAA+B;IACjE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAE5C,OAAO,CACL,uBAAC,4CAAmB,IAAC,KAAK,EAAE,KAAK,YAC/B,wBAAC,gBAAK,IACJ,SAAS,EAAC,0BAA0B,EACpC,aAAa,EAAE,IAAI,EACnB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBAChB,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,QAAQ,EAAE,CAAC;gBACb,CAAC;YACH,CAAC,EACD,IAAI,EAAC,SAAS,EACd,KAAK,EAAC,kBAAkB,aAExB,wBAAC,oBAAS,IAAC,CAAC,EAAC,IAAI,aACf,uBAAC,sBAAW,IAAC,KAAK,EAAC,kBAAkB,GAAG,EAExC,uBAAC,oBAAS,IACR,IAAI,EAAC,QAAQ,EACb,GAAG,EAAC,IAAI,EACR,KAAK,EAAE;gCACL,UAAU,EAAE,kBAAO,CAAC,EAAE;6BACvB,YAGD,uBAAC,cAAI,IACH,IAAI,EAAC,IAAI,EACT,KAAK,EAAE;oCACL,KAAK,EAAE,SAAS;oCAChB,UAAU,EAAE,GAAG;iCAChB,kFAGI,GACG,IACF,EAGZ,wBAAC,gCAAqB,eACpB,uBAAC,mBAAM,IAAC,SAAS,QAAC,GAAG,EAAC,IAAI,EAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAC,QAAQ,wBAErD,EACT,uBAAC,mBAAM,IAAC,SAAS,QAAC,GAAG,EAAC,IAAI,EAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAC,WAAW,uBAExD,IACa,IAClB,GACY,CACvB,CAAC;AACJ,CAAC"}