@stableops/wallet-ui 0.1.6 → 0.3.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.
- package/dist/index.css +77 -1
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +25 -4
- package/dist/index.d.ts +25 -4
- package/dist/index.js +140 -44
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +139 -44
- package/dist/index.mjs.map +1 -1
- package/dist/walletconnect-dialog.css +77 -1
- package/dist/walletconnect-dialog.css.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -23,19 +23,15 @@ __export(index_exports, {
|
|
|
23
23
|
WALLET_LOGOS: () => WALLET_LOGOS,
|
|
24
24
|
WalletConnectDialog: () => WalletConnectDialog,
|
|
25
25
|
WalletIcon: () => WalletIcon,
|
|
26
|
+
createWalletConnectDialogCopy: () => createWalletConnectDialogCopy,
|
|
26
27
|
walletConnectDialogClassNames: () => walletConnectDialogClassNames,
|
|
27
28
|
walletLink: () => walletLink
|
|
28
29
|
});
|
|
29
30
|
module.exports = __toCommonJS(index_exports);
|
|
30
31
|
|
|
31
32
|
// src/walletconnect-dialog.tsx
|
|
32
|
-
var import_react = require("react");
|
|
33
|
-
var import_react_dom = require("react-dom");
|
|
34
33
|
var import_lucide_react = require("lucide-react");
|
|
35
34
|
|
|
36
|
-
// src/walletconnect-dialog-css.ts
|
|
37
|
-
var WALLETCONNECT_DIALOG_CSS = "/* \u8BED\u4E49\u8272 token\uFF1A\u4F18\u5148\u8BFB\u53D6 dashboard/shadcn \u7684 CSS \u53D8\u91CF\uFF1B\u672A\u63A5\u5165\u8FD9\u4E9B\u53D8\u91CF\u7684\u5BBF\u4E3B\u4F7F\u7528\n dashboard \u5F53\u524D light/dark \u9ED8\u8BA4\u503C\u4F5C\u4E3A fallback\u3002\u4E3B\u9898\u8272\u53EA\u6709 --stableops-wc-brand\n \u4E00\u4E2A\uFF0C\u53EF\u88AB themeColor prop \u5185\u8054\u8986\u76D6\u3002 */\n:root {\n --stableops-wc-backdrop: rgb(0 0 0 / 80%);\n --stableops-wc-surface: var(--background, oklch(1 0 0));\n --stableops-wc-text: var(--foreground, oklch(0.141 0.005 285.823));\n --stableops-wc-muted: var(--muted-foreground, oklch(0.552 0.016 285.938));\n --stableops-wc-border: var(--border, oklch(0.92 0.004 286.32));\n --stableops-wc-strong-border: var(--input, oklch(0.92 0.004 286.32));\n --stableops-wc-subtle: var(--muted, oklch(0.967 0.001 286.375));\n --stableops-wc-hover: var(--accent, #e8faf7);\n --stableops-wc-hover-text: var(--accent-foreground, #0f766e);\n --stableops-wc-shade: #000000;\n --stableops-wc-brand: var(--primary, #12233a);\n --stableops-wc-brand-text: var(--primary-foreground, oklch(0.985 0 0));\n --stableops-wc-copy-done-bg: var(--accent, #e8faf7);\n --stableops-wc-danger: var(--destructive, oklch(0.577 0.245 27.325));\n --stableops-wc-danger-text: var(--destructive-foreground, oklch(0.985 0 0));\n --stableops-wc-danger-border: color-mix(in oklab, var(--stableops-wc-danger) 25%, transparent);\n --stableops-wc-danger-bg: color-mix(\n in oklab,\n var(--stableops-wc-danger) 8%,\n var(--stableops-wc-surface)\n );\n}\n\n@media (prefers-color-scheme: dark) {\n :root {\n --stableops-wc-surface: var(--background, oklch(0.141 0.005 285.823));\n --stableops-wc-text: var(--foreground, oklch(0.985 0 0));\n --stableops-wc-muted: var(--muted-foreground, oklch(0.705 0.015 286.067));\n --stableops-wc-border: var(--border, oklch(1 0 0 / 10%));\n --stableops-wc-strong-border: var(--input, oklch(1 0 0 / 15%));\n --stableops-wc-subtle: var(--muted, oklch(0.274 0.006 286.033));\n --stableops-wc-hover: var(--accent, oklch(0.274 0.006 286.033));\n --stableops-wc-hover-text: var(--accent-foreground, oklch(0.985 0 0));\n --stableops-wc-shade: #ffffff;\n --stableops-wc-brand: var(--primary, oklch(0.92 0.004 286.32));\n --stableops-wc-brand-text: var(--primary-foreground, oklch(0.21 0.006 285.885));\n --stableops-wc-copy-done-bg: var(--accent, oklch(0.274 0.006 286.033));\n --stableops-wc-danger: var(--destructive, oklch(0.704 0.191 22.216));\n --stableops-wc-danger-text: var(--destructive-foreground, oklch(0.985 0 0));\n }\n}\n\n@keyframes stableops-walletconnect-backdrop-in {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n@keyframes stableops-walletconnect-sheet-in {\n from {\n opacity: 0;\n transform: translateY(1.25rem);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@media (min-width: 640px) {\n @keyframes stableops-walletconnect-sheet-in {\n from {\n opacity: 0;\n transform: translateY(0.375rem) scale(0.98);\n }\n to {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n }\n}\n\n.stableops-wc-backdrop {\n position: fixed;\n inset: 0;\n z-index: 50;\n display: flex;\n align-items: flex-end;\n justify-content: center;\n margin: 0;\n padding: 0;\n background: var(--stableops-wc-backdrop);\n animation: stableops-walletconnect-backdrop-in 160ms ease-out both;\n}\n\n.stableops-wc-sheet {\n position: relative;\n width: 100%;\n max-width: 28rem;\n max-height: min(90dvh, calc(100vh - 1rem));\n overflow: hidden;\n border: 1px solid var(--stableops-wc-border);\n border-radius: 1rem 1rem 0 0;\n padding-bottom: max(0.75rem, env(safe-area-inset-bottom));\n background: var(--stableops-wc-surface);\n color: var(--stableops-wc-text);\n box-shadow:\n 0 10px 15px -3px rgb(0 0 0 / 10%),\n 0 4px 6px -4px rgb(0 0 0 / 10%);\n animation: stableops-walletconnect-sheet-in 220ms cubic-bezier(0.2, 0, 0, 1) both;\n}\n\n.stableops-wc-sheet,\n.stableops-wc-sheet * {\n box-sizing: border-box;\n}\n\n.stableops-wc-sheet :where(button, a, p, img) {\n margin: 0;\n font: inherit;\n color: inherit;\n text-decoration: none;\n}\n\n.stableops-wc-sheet :where(img) {\n display: block;\n max-width: 100%;\n height: auto;\n}\n\n.stableops-wc-header {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 1.5rem 1.5rem 0;\n}\n\n.stableops-wc-title {\n min-width: 0;\n flex: 1;\n overflow: hidden;\n text-align: center;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 0.875rem;\n font-weight: 600;\n}\n\n.stableops-wc-icon-button {\n position: absolute;\n display: flex;\n width: 2rem;\n height: 2rem;\n cursor: pointer;\n align-items: center;\n justify-content: center;\n border: 0;\n border-radius: 0.375rem;\n background: transparent;\n color: var(--stableops-wc-muted);\n}\n\n.stableops-wc-icon-button:hover {\n background: var(--stableops-wc-hover);\n color: var(--stableops-wc-text);\n}\n\n.stableops-wc-back-button {\n left: 1.25rem;\n}\n\n.stableops-wc-close-button {\n right: 1.25rem;\n}\n\n.stableops-wc-icon,\n.stableops-wc-action-icon {\n width: 1rem;\n height: 1rem;\n}\n\n.stableops-wc-body {\n padding: 1.5rem;\n}\n\n.stableops-wc-qr-frame {\n position: relative;\n width: 100%;\n max-width: 12rem;\n aspect-ratio: 1 / 1;\n margin: 0 auto;\n border: 1px solid rgb(15 28 46 / 8%);\n border-radius: 1rem;\n padding: 1rem;\n background: #ffffff;\n overflow: hidden;\n}\n\n.stableops-wc-qr-image {\n width: 100%;\n height: 100%;\n object-fit: contain;\n}\n\n.stableops-wc-qr-placeholder {\n opacity: 0.9;\n}\n\n.stableops-wc-centered-overlay,\n.stableops-wc-loading-overlay {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.stableops-wc-loading-overlay {\n inset: 0.5rem;\n border-radius: 0.5rem;\n background: rgb(255 255 255 / 60%);\n backdrop-filter: blur(4px);\n}\n\n.stableops-wc-wallet-chip {\n border-radius: 0.75rem;\n padding: 0.25rem;\n background: #ffffff;\n box-shadow:\n 0 4px 6px -1px rgb(0 0 0 / 10%),\n 0 2px 4px -2px rgb(0 0 0 / 10%);\n outline: 1px solid rgb(0 0 0 / 5%);\n}\n\n.stableops-wc-refresh-button {\n display: inline-flex;\n min-width: 6.5rem;\n cursor: pointer;\n align-items: center;\n justify-content: center;\n gap: 0.375rem;\n border: 1px solid rgb(0 0 0 / 8%);\n border-radius: 0.75rem;\n padding: 0.625rem 0.75rem;\n background: #ffffff;\n color: var(--stableops-wc-text);\n box-shadow:\n 0 4px 6px -1px rgb(0 0 0 / 10%),\n 0 2px 4px -2px rgb(0 0 0 / 10%);\n font-size: 0.8125rem;\n font-weight: 600;\n}\n\n.stableops-wc-refresh-button:hover {\n background: var(--stableops-wc-hover);\n}\n\n.stableops-wc-refresh-icon {\n width: 1rem;\n height: 1rem;\n color: var(--stableops-wc-brand);\n}\n\n.stableops-wc-wallet-logo,\n.stableops-wc-wallet-fallback {\n display: flex;\n width: 3rem;\n height: 3rem;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n border-radius: 0.5rem;\n box-shadow: 0 1px 2px 0 rgb(0 0 0 / 5%);\n outline: 1px solid rgb(0 0 0 / 5%);\n}\n\n.stableops-wc-wallet-logo {\n object-fit: cover;\n}\n\n.stableops-wc-wallet-chip .stableops-wc-wallet-logo,\n.stableops-wc-wallet-chip .stableops-wc-wallet-fallback {\n width: 2.25rem;\n height: 2.25rem;\n border-radius: 0.375rem;\n}\n\n.stableops-wc-wallet-fallback {\n color: #ffffff;\n font-size: 0.75rem;\n font-weight: 600;\n}\n\n.stableops-wc-empty-qr {\n display: flex;\n width: 100%;\n height: 100%;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 0.5rem;\n padding: 0 0.75rem;\n text-align: center;\n font-size: 0.75rem;\n color: var(--stableops-wc-muted);\n}\n\n.stableops-wc-spinner {\n width: 1.5rem;\n height: 1.5rem;\n animation: stableops-wc-spin 1s linear infinite;\n}\n\n@keyframes stableops-wc-spin {\n to {\n transform: rotate(360deg);\n }\n}\n\n.stableops-wc-muted-spinner {\n color: #9ca3af;\n}\n\n.stableops-wc-error-icon {\n width: 1.75rem;\n height: 1.75rem;\n color: var(--stableops-wc-danger);\n}\n\n.stableops-wc-help-text {\n margin: 1.25rem 0 0;\n text-align: center;\n font-size: 0.875rem;\n font-weight: 500;\n}\n\n.stableops-wc-separator {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n margin: 1rem 0;\n font-size: 0.75rem;\n color: var(--stableops-wc-muted);\n}\n\n.stableops-wc-line {\n height: 1px;\n flex: 1;\n background: var(--stableops-wc-border);\n}\n\n.stableops-wc-spacer {\n height: 1rem;\n}\n\n.stableops-wc-actions {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.stableops-wc-primary-action,\n.stableops-wc-secondary-action {\n display: inline-flex;\n min-height: 2.5rem;\n flex: 1;\n cursor: pointer;\n align-items: center;\n justify-content: center;\n gap: 0.5rem;\n border-radius: 0.5rem;\n padding: 0.5rem 1rem;\n text-align: center;\n font-size: 0.875rem;\n font-weight: 500;\n text-decoration: none;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.stableops-wc-primary-action {\n border: 1px solid transparent;\n background: var(--stableops-wc-brand);\n color: var(--stableops-wc-brand-text);\n box-shadow:\n 0 1px 3px 0 rgb(0 0 0 / 10%),\n 0 1px 2px -1px rgb(0 0 0 / 10%);\n}\n\n.stableops-wc-button-action {\n font: inherit;\n}\n\n.stableops-wc-primary-action:hover {\n background: color-mix(in srgb, var(--stableops-wc-brand) 82%, var(--stableops-wc-shade));\n}\n\n.stableops-wc-secondary-action {\n border: 1px solid var(--stableops-wc-strong-border);\n background: var(--stableops-wc-surface);\n color: var(--stableops-wc-text);\n}\n\n.stableops-wc-secondary-action:hover {\n background: var(--stableops-wc-hover);\n color: var(--stableops-wc-hover-text);\n}\n\n.stableops-wc-secondary-action:disabled,\n.stableops-wc-disabled-link {\n cursor: not-allowed;\n opacity: 0.5;\n pointer-events: none;\n}\n\n.stableops-wc-check-icon {\n color: color-mix(in srgb, var(--stableops-wc-brand) 82%, var(--stableops-wc-shade));\n}\n\n.stableops-wc-copy-done {\n border-color: color-mix(in srgb, var(--stableops-wc-brand) 35%, transparent);\n background: var(--stableops-wc-copy-done-bg);\n color: color-mix(in srgb, var(--stableops-wc-brand) 82%, var(--stableops-wc-shade));\n}\n\n.stableops-wc-wallet-grid {\n display: grid;\n grid-template-columns: repeat(3, minmax(0, 1fr));\n gap: 0.5rem 1rem;\n overflow-y: auto;\n padding: 1rem;\n}\n\n.stableops-wc-wallet-button {\n display: flex;\n cursor: pointer;\n flex-direction: column;\n align-items: center;\n gap: 0.5rem;\n border: 1px solid transparent;\n border-radius: 0.75rem;\n background: transparent;\n padding: 1rem 0.5rem;\n text-align: center;\n color: var(--stableops-wc-text);\n}\n\n.stableops-wc-wallet-button:hover {\n border-color: color-mix(in srgb, var(--stableops-wc-brand) 40%, transparent);\n background: var(--stableops-wc-hover);\n color: var(--stableops-wc-hover-text);\n}\n\n.stableops-wc-wallet-button:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n.stableops-wc-wallet-button span {\n width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 0.75rem;\n font-weight: 500;\n}\n\n.stableops-wc-error-box {\n margin: 0 1.25rem 1.25rem;\n border: 1px solid var(--stableops-wc-danger-border);\n border-radius: 0.5rem;\n background: var(--stableops-wc-danger-bg);\n padding: 0.625rem;\n text-align: center;\n font-size: 0.75rem;\n color: var(--stableops-wc-danger);\n}\n\n@media (min-width: 640px) {\n .stableops-wc-backdrop {\n align-items: center;\n padding: 1rem;\n }\n\n .stableops-wc-sheet {\n max-height: calc(100vh - 2rem);\n border-radius: 1rem;\n padding-bottom: 0;\n }\n\n .stableops-wc-actions {\n flex-direction: row;\n }\n}\n";
|
|
38
|
-
|
|
39
35
|
// src/wallet-icon.tsx
|
|
40
36
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
41
37
|
function WalletIcon({ wallet }) {
|
|
@@ -53,6 +49,126 @@ function WalletIcon({ wallet }) {
|
|
|
53
49
|
);
|
|
54
50
|
}
|
|
55
51
|
|
|
52
|
+
// src/walletconnect-dialog-copy.ts
|
|
53
|
+
var copy = {
|
|
54
|
+
zh: {
|
|
55
|
+
heading: "\u7528\u624B\u673A\u94B1\u5305\u652F\u4ED8",
|
|
56
|
+
back: "\u8FD4\u56DE",
|
|
57
|
+
close: "\u5173\u95ED",
|
|
58
|
+
qrAlt: "\u652F\u4ED8\u4E8C\u7EF4\u7801",
|
|
59
|
+
payWith: "\u7528 {wallet} \u652F\u4ED8",
|
|
60
|
+
scanWithWallet: "\u7528\u624B\u673A\u4E0A\u7684 {wallet} \u626B\u7801",
|
|
61
|
+
scanAnyWallet: "\u7528\u4EFB\u610F\u624B\u673A\u94B1\u5305\u626B\u7801",
|
|
62
|
+
openWallet: "\u6253\u5F00 {wallet}",
|
|
63
|
+
paymentPrompt: "\u5DF2\u8FDE\u63A5 {wallet}\uFF0C\u8BF7\u5728\u94B1\u5305 App \u5185\u786E\u8BA4\u4EA4\u6613\uFF1B\u5982\u679C\u6CA1\u6709\u5F39\u51FA\u652F\u4ED8\u754C\u9762\uFF0C\u53EF\u518D\u6B21\u89E6\u53D1\u652F\u4ED8\u3002",
|
|
64
|
+
retryPayment: "\u518D\u6B21\u6253\u5F00 {wallet} \u652F\u4ED8",
|
|
65
|
+
retryingPayment: "\u6B63\u5728\u6253\u5F00\u652F\u4ED8\u2026",
|
|
66
|
+
refreshConnection: "\u5237\u65B0\u4E8C\u7EF4\u7801",
|
|
67
|
+
copyUri: "\u590D\u5236\u94FE\u63A5",
|
|
68
|
+
copied: "\u5DF2\u590D\u5236",
|
|
69
|
+
or: "\u6216",
|
|
70
|
+
connectFailed: "\u8FDE\u63A5\u5931\u8D25",
|
|
71
|
+
errors: {
|
|
72
|
+
dependencyMissing: "\u5F53\u524D\u73AF\u5883\u672A\u52A0\u8F7D WalletConnect \u4F9D\u8D56\uFF0C\u8BF7\u5237\u65B0\u540E\u91CD\u8BD5\u3002",
|
|
73
|
+
projectIdMissing: "\u672A\u914D\u7F6E WalletConnect projectId\uFF0C\u65E0\u6CD5\u6253\u5F00\u624B\u673A\u94B1\u5305\u652F\u4ED8\u3002",
|
|
74
|
+
initFailed: "WalletConnect \u521D\u59CB\u5316\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u7F51\u7EDC\u540E\u91CD\u8BD5\u3002",
|
|
75
|
+
connectFailed: "WalletConnect \u8FDE\u63A5\u5931\u8D25\uFF0C\u8BF7\u8FD4\u56DE\u94B1\u5305\u5217\u8868\u540E\u91CD\u8BD5\u3002",
|
|
76
|
+
noAuthorizedChains: "\u94B1\u5305\u6CA1\u6709\u6388\u6743\u8BA2\u5355\u9700\u8981\u7684\u7F51\u7EDC\uFF0C\u8BF7\u8FD4\u56DE\u91CD\u8FDE\u5E76\u52FE\u9009\u5BF9\u5E94\u7F51\u7EDC\u3002",
|
|
77
|
+
tronUnsupported: "WalletConnect \u6682\u4E0D\u652F\u6301 TRON \u652F\u4ED8\uFF0C\u8BF7\u6539\u7528\u652F\u6301\u7684\u624B\u673A\u94B1\u5305 App \u6216\u624B\u52A8\u8F6C\u8D26\u3002",
|
|
78
|
+
providerMismatch: "\u94B1\u5305\u8FD4\u56DE\u7684\u7F51\u7EDC\u548C\u8BA2\u5355\u7F51\u7EDC\u4E0D\u4E00\u81F4\uFF0C\u8BF7\u5207\u6362\u5230\u6B63\u786E\u7F51\u7EDC\u540E\u91CD\u8BD5\u3002",
|
|
79
|
+
providerNotFound: "\u672A\u627E\u5230\u53EF\u7528\u4E8E\u672C\u8BA2\u5355\u7F51\u7EDC\u7684\u94B1\u5305\u6388\u6743\uFF0C\u8BF7\u8FD4\u56DE\u91CD\u8FDE\u5E76\u6388\u6743\u7F51\u7EDC\u3002",
|
|
80
|
+
txReverted: "\u94FE\u4E0A\u4EA4\u6613\u53D1\u751F\u56DE\u6EDA\uFF0C\u8BF7\u91CD\u65B0\u4ED8\u6B3E\u6216\u8054\u7CFB\u5546\u6237\u3002",
|
|
81
|
+
tokenContractNotFound: "\u5F53\u524D\u7F51\u7EDC\u7F3A\u5C11\u9ED8\u8BA4\u4EE3\u5E01\u5408\u7EA6\u914D\u7F6E\uFF0C\u8BF7\u68C0\u67E5\u6D4B\u8BD5\u7F51\u914D\u7F6E\u3002",
|
|
82
|
+
paymentInstructionNotFound: "\u5F53\u524D\u8BA2\u5355\u6CA1\u6709\u53EF\u7528\u7684\u94FE\u4E0A\u652F\u4ED8\u6307\u4EE4\u3002",
|
|
83
|
+
unsupportedChain: "\u94B1\u5305 SDK \u6682\u4E0D\u652F\u6301\u5F53\u524D\u652F\u4ED8\u7F51\u7EDC\u3002"
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
en: {
|
|
87
|
+
heading: "Pay with mobile wallet",
|
|
88
|
+
back: "Back",
|
|
89
|
+
close: "Close",
|
|
90
|
+
qrAlt: "Payment QR code",
|
|
91
|
+
payWith: "Pay with {wallet}",
|
|
92
|
+
scanWithWallet: "Scan with {wallet} on your phone",
|
|
93
|
+
scanAnyWallet: "Scan with any mobile wallet",
|
|
94
|
+
openWallet: "Open {wallet}",
|
|
95
|
+
paymentPrompt: "{wallet} is connected. Confirm the transaction in your wallet app; if no payment screen appears, trigger payment again.",
|
|
96
|
+
retryPayment: "Trigger {wallet} payment again",
|
|
97
|
+
retryingPayment: "Opening payment\u2026",
|
|
98
|
+
refreshConnection: "Refresh QR",
|
|
99
|
+
copyUri: "Copy link",
|
|
100
|
+
copied: "Copied",
|
|
101
|
+
or: "or",
|
|
102
|
+
connectFailed: "Connection failed",
|
|
103
|
+
errors: {
|
|
104
|
+
dependencyMissing: "WalletConnect is not loaded in this environment. Refresh the page and try again.",
|
|
105
|
+
projectIdMissing: "WalletConnect projectId is not configured, so mobile wallet pay cannot open.",
|
|
106
|
+
initFailed: "WalletConnect failed to initialize. Check your connection and retry.",
|
|
107
|
+
connectFailed: "WalletConnect failed to connect. Go back to the wallet list and retry.",
|
|
108
|
+
noAuthorizedChains: "Your wallet did not authorize the required networks. Reconnect and select the requested network.",
|
|
109
|
+
tronUnsupported: "WalletConnect does not support TRON payments yet. Use a supported mobile wallet app or manual transfer.",
|
|
110
|
+
providerMismatch: "The wallet returned a different network than the order requires. Switch networks and retry.",
|
|
111
|
+
providerNotFound: "No wallet authorization was found for this order network. Go back, reconnect, and authorize it.",
|
|
112
|
+
txReverted: "The on-chain transaction was reverted. Pay again or contact the merchant.",
|
|
113
|
+
tokenContractNotFound: "The default token contract is not configured for this network. Check the testnet config.",
|
|
114
|
+
paymentInstructionNotFound: "This order does not have an available on-chain payment instruction.",
|
|
115
|
+
unsupportedChain: "The wallet SDK does not support this payment network."
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
function createWalletConnectDialogCopy(locale, copiedLabel) {
|
|
120
|
+
const t = copy[locale];
|
|
121
|
+
const errors = t.errors;
|
|
122
|
+
return {
|
|
123
|
+
heading: t.heading,
|
|
124
|
+
back: t.back,
|
|
125
|
+
close: t.close,
|
|
126
|
+
qrAlt: t.qrAlt,
|
|
127
|
+
payWith: (wallet) => t.payWith.replace("{wallet}", wallet),
|
|
128
|
+
scanWithWallet: (wallet) => t.scanWithWallet.replace("{wallet}", wallet),
|
|
129
|
+
scanAnyWallet: t.scanAnyWallet,
|
|
130
|
+
openWallet: (wallet) => t.openWallet.replace("{wallet}", wallet),
|
|
131
|
+
paymentPrompt: (wallet) => t.paymentPrompt.replace("{wallet}", wallet),
|
|
132
|
+
retryPayment: (wallet) => t.retryPayment.replace("{wallet}", wallet),
|
|
133
|
+
retryingPayment: t.retryingPayment,
|
|
134
|
+
refreshConnection: t.refreshConnection,
|
|
135
|
+
copyUri: t.copyUri,
|
|
136
|
+
copied: copiedLabel ?? t.copied,
|
|
137
|
+
or: t.or,
|
|
138
|
+
connectFailed: t.connectFailed,
|
|
139
|
+
errorMessage: (code) => {
|
|
140
|
+
switch (code) {
|
|
141
|
+
case "walletconnect_dependency_missing":
|
|
142
|
+
return errors.dependencyMissing;
|
|
143
|
+
case "walletconnect_project_id_missing":
|
|
144
|
+
return errors.projectIdMissing;
|
|
145
|
+
case "walletconnect_init_failed":
|
|
146
|
+
return errors.initFailed;
|
|
147
|
+
case "walletconnect_connect_failed":
|
|
148
|
+
return errors.connectFailed;
|
|
149
|
+
case "walletconnect_no_authorized_chains":
|
|
150
|
+
return errors.noAuthorizedChains;
|
|
151
|
+
case "walletconnect_tron_unsupported":
|
|
152
|
+
return errors.tronUnsupported;
|
|
153
|
+
case "wallet_provider_mismatch":
|
|
154
|
+
return errors.providerMismatch;
|
|
155
|
+
case "wallet_provider_not_found":
|
|
156
|
+
return errors.providerNotFound;
|
|
157
|
+
case "wallet_tx_reverted":
|
|
158
|
+
return errors.txReverted;
|
|
159
|
+
case "token_contract_not_found":
|
|
160
|
+
return errors.tokenContractNotFound;
|
|
161
|
+
case "payment_instruction_not_found":
|
|
162
|
+
return errors.paymentInstructionNotFound;
|
|
163
|
+
case "unsupported_chain":
|
|
164
|
+
return errors.unsupportedChain;
|
|
165
|
+
default:
|
|
166
|
+
return null;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
|
|
56
172
|
// src/walletconnect-dialog.tsx
|
|
57
173
|
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
58
174
|
var PLACEHOLDER_QR_CODE = "data:image/png;base64,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";
|
|
@@ -64,37 +180,15 @@ var walletConnectDialogClassNames = {
|
|
|
64
180
|
function walletLink(prefix, uri) {
|
|
65
181
|
return `${prefix}${encodeURIComponent(uri)}`;
|
|
66
182
|
}
|
|
67
|
-
function formatWalletConnectDialogError(error,
|
|
183
|
+
function formatWalletConnectDialogError(error, copy2) {
|
|
68
184
|
if (typeof error === "string") return error;
|
|
69
|
-
if (error.code) return
|
|
185
|
+
if (error.code) return copy2.errorMessage(error.code) ?? error.message;
|
|
70
186
|
return error.message;
|
|
71
187
|
}
|
|
72
188
|
function WalletConnectDialog({
|
|
73
|
-
useShadowRoot = false,
|
|
74
|
-
...props
|
|
75
|
-
}) {
|
|
76
|
-
if (useShadowRoot) return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(ShadowRootWalletConnectDialog, { ...props });
|
|
77
|
-
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(WalletConnectDialogContent, { ...props });
|
|
78
|
-
}
|
|
79
|
-
function ShadowRootWalletConnectDialog(props) {
|
|
80
|
-
const hostRef = (0, import_react.useRef)(null);
|
|
81
|
-
const [shadowRoot, setShadowRoot] = (0, import_react.useState)(null);
|
|
82
|
-
(0, import_react.useEffect)(() => {
|
|
83
|
-
const host = hostRef.current;
|
|
84
|
-
if (!host) return;
|
|
85
|
-
setShadowRoot(host.shadowRoot ?? host.attachShadow({ mode: "open" }));
|
|
86
|
-
}, []);
|
|
87
|
-
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { ref: hostRef, children: shadowRoot ? (0, import_react_dom.createPortal)(
|
|
88
|
-
/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
|
|
89
|
-
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("style", { children: WALLETCONNECT_DIALOG_CSS }),
|
|
90
|
-
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(WalletConnectDialogContent, { ...props })
|
|
91
|
-
] }),
|
|
92
|
-
shadowRoot
|
|
93
|
-
) : null });
|
|
94
|
-
}
|
|
95
|
-
function WalletConnectDialogContent({
|
|
96
189
|
open,
|
|
97
|
-
copy,
|
|
190
|
+
copy: copyProp,
|
|
191
|
+
locale = "en",
|
|
98
192
|
projectId,
|
|
99
193
|
available,
|
|
100
194
|
wallets,
|
|
@@ -116,6 +210,7 @@ function WalletConnectDialogContent({
|
|
|
116
210
|
onCopyUri
|
|
117
211
|
}) {
|
|
118
212
|
if (!open) return null;
|
|
213
|
+
const copy2 = copyProp ?? createWalletConnectDialogCopy(locale);
|
|
119
214
|
const appLink = selectedWallet?.links?.native ?? selectedWallet?.links?.universal ?? null;
|
|
120
215
|
const appLinkIsUniversal = !selectedWallet?.links?.native && Boolean(selectedWallet?.links?.universal);
|
|
121
216
|
const readyUri = state.status === "uri_ready" ? state.uri : null;
|
|
@@ -127,7 +222,7 @@ function WalletConnectDialogContent({
|
|
|
127
222
|
const disabledList = !walletLinkMode && !projectId || !available;
|
|
128
223
|
const renderIcon = renderWalletIcon ?? ((wallet) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(WalletIcon, { wallet }));
|
|
129
224
|
const themeStyle = themeColor ? { "--stableops-wc-brand": themeColor } : void 0;
|
|
130
|
-
const visibleError = error !== null ? formatWalletConnectDialogError(error,
|
|
225
|
+
const visibleError = error !== null ? formatWalletConnectDialogError(error, copy2) : state.status === "failed" ? formatWalletConnectDialogError(state.error, copy2) : null;
|
|
131
226
|
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: walletConnectDialogClassNames.backdrop, style: themeStyle, onClick: onClose, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
|
|
132
227
|
"div",
|
|
133
228
|
{
|
|
@@ -142,19 +237,19 @@ function WalletConnectDialogContent({
|
|
|
142
237
|
"button",
|
|
143
238
|
{
|
|
144
239
|
type: "button",
|
|
145
|
-
"aria-label":
|
|
240
|
+
"aria-label": copy2.back,
|
|
146
241
|
onClick: onBack,
|
|
147
242
|
className: "stableops-wc-icon-button stableops-wc-back-button",
|
|
148
243
|
children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_lucide_react.ArrowLeft, { className: "stableops-wc-icon" })
|
|
149
244
|
}
|
|
150
245
|
),
|
|
151
|
-
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "stableops-wc-title", children:
|
|
152
|
-
] }) : /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "stableops-wc-title", children:
|
|
246
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "stableops-wc-title", children: copy2.payWith(selectedWallet.name) })
|
|
247
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "stableops-wc-title", children: copy2.heading }),
|
|
153
248
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
154
249
|
"button",
|
|
155
250
|
{
|
|
156
251
|
type: "button",
|
|
157
|
-
"aria-label":
|
|
252
|
+
"aria-label": copy2.close,
|
|
158
253
|
onClick: onClose,
|
|
159
254
|
className: "stableops-wc-icon-button stableops-wc-close-button",
|
|
160
255
|
children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_lucide_react.X, { className: "stableops-wc-icon" })
|
|
@@ -163,7 +258,7 @@ function WalletConnectDialogContent({
|
|
|
163
258
|
] }),
|
|
164
259
|
selectedWallet ? /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "stableops-wc-body", children: [
|
|
165
260
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: walletConnectDialogClassNames.qrFrame, children: visibleQrCode ? /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
|
|
166
|
-
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("img", { src: visibleQrCode, alt:
|
|
261
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("img", { src: visibleQrCode, alt: copy2.qrAlt, className: "stableops-wc-qr-image" }),
|
|
167
262
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "stableops-wc-centered-overlay", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "stableops-wc-wallet-chip", children: renderIcon(selectedWallet) }) })
|
|
168
263
|
] }) : qrLoading ? /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
|
|
169
264
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
|
|
@@ -197,16 +292,16 @@ function WalletConnectDialogContent({
|
|
|
197
292
|
},
|
|
198
293
|
children: [
|
|
199
294
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_lucide_react.RotateCw, { className: "stableops-wc-refresh-icon" }),
|
|
200
|
-
|
|
295
|
+
copy2.refreshConnection
|
|
201
296
|
]
|
|
202
297
|
}
|
|
203
298
|
) : /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "stableops-wc-wallet-chip", children: renderIcon(selectedWallet) }) }),
|
|
204
299
|
state.status === "failed" && !showRefreshControl ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "stableops-wc-loading-overlay", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_lucide_react.CircleAlert, { className: "stableops-wc-error-icon", "aria-hidden": "true" }) }) : null
|
|
205
300
|
] }) }),
|
|
206
|
-
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { className: "stableops-wc-help-text", children: paymentReady ?
|
|
301
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { className: "stableops-wc-help-text", children: paymentReady ? copy2.paymentPrompt(selectedWallet.name) : walletLinkMode || selectedWallet.links ? copy2.scanWithWallet(selectedWallet.name) : copy2.scanAnyWallet }),
|
|
207
302
|
walletLinkMode || appLink ? /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "stableops-wc-separator", children: [
|
|
208
303
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "stableops-wc-line" }),
|
|
209
|
-
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { children:
|
|
304
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { children: copy2.or }),
|
|
210
305
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "stableops-wc-line" })
|
|
211
306
|
] }) : /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "stableops-wc-spacer" }),
|
|
212
307
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "stableops-wc-actions", children: [
|
|
@@ -220,7 +315,7 @@ function WalletConnectDialogContent({
|
|
|
220
315
|
},
|
|
221
316
|
children: [
|
|
222
317
|
paymentPending ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_lucide_react.Loader2, { className: "stableops-wc-action-icon stableops-wc-spinner" }) : /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_lucide_react.ExternalLink, { className: "stableops-wc-action-icon" }),
|
|
223
|
-
paymentPending ?
|
|
318
|
+
paymentPending ? copy2.retryingPayment : copy2.retryPayment(selectedWallet.name)
|
|
224
319
|
]
|
|
225
320
|
}
|
|
226
321
|
) : null,
|
|
@@ -233,7 +328,7 @@ function WalletConnectDialogContent({
|
|
|
233
328
|
...(walletLinkMode || appLinkIsUniversal) && walletHref ? { target: "_blank", rel: "noreferrer" } : {},
|
|
234
329
|
children: [
|
|
235
330
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_lucide_react.ExternalLink, { className: "stableops-wc-action-icon" }),
|
|
236
|
-
|
|
331
|
+
copy2.openWallet(selectedWallet.name)
|
|
237
332
|
]
|
|
238
333
|
}
|
|
239
334
|
) : null,
|
|
@@ -254,10 +349,10 @@ function WalletConnectDialogContent({
|
|
|
254
349
|
strokeWidth: 3
|
|
255
350
|
}
|
|
256
351
|
),
|
|
257
|
-
|
|
352
|
+
copy2.copied
|
|
258
353
|
] }) : /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
|
|
259
354
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_lucide_react.Copy, { className: "stableops-wc-action-icon" }),
|
|
260
|
-
|
|
355
|
+
copy2.copyUri
|
|
261
356
|
] })
|
|
262
357
|
}
|
|
263
358
|
)
|
|
@@ -301,6 +396,7 @@ var WALLET_LOGOS = {
|
|
|
301
396
|
WALLET_LOGOS,
|
|
302
397
|
WalletConnectDialog,
|
|
303
398
|
WalletIcon,
|
|
399
|
+
createWalletConnectDialogCopy,
|
|
304
400
|
walletConnectDialogClassNames,
|
|
305
401
|
walletLink
|
|
306
402
|
});
|