@directcryptopay/sdk 0.2.3 → 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.
Files changed (127) hide show
  1. package/README.md +51 -87
  2. package/dist/core/config.d.ts +9 -46
  3. package/dist/core/iframe.d.ts +16 -0
  4. package/dist/dcp-sdk.umd.js +1 -12811
  5. package/dist/dcp.d.ts +12 -5
  6. package/dist/index.d.ts +1 -1
  7. package/dist/index.js +219 -2
  8. package/dist/types.d.ts +26 -164
  9. package/package.json +3 -13
  10. package/dist/ExchangeController-CPMQq6Q-.js +0 -217
  11. package/dist/HelpersUtil-DfMFC7Bf.js +0 -120
  12. package/dist/NavigationUtil-kj9LEOOd.js +0 -8
  13. package/dist/PhArrowCircleDown-lsK25DCk.js +0 -73
  14. package/dist/PhArrowClockwise-NeKHZ1co.js +0 -73
  15. package/dist/PhArrowDown-C9AkNvLs.js +0 -73
  16. package/dist/PhArrowLeft-RNfIQP1X.js +0 -73
  17. package/dist/PhArrowRight-DM1tna0G.js +0 -73
  18. package/dist/PhArrowSquareOut-S5XYbAZj.js +0 -73
  19. package/dist/PhArrowUp-DmktzOWy.js +0 -73
  20. package/dist/PhArrowUpRight-BkNeW_5i.js +0 -73
  21. package/dist/PhArrowsClockwise-CQ4pG76b.js +0 -73
  22. package/dist/PhArrowsDownUp-H6gxaNM6.js +0 -73
  23. package/dist/PhArrowsLeftRight-DZSsfMR6.js +0 -73
  24. package/dist/PhBank-4_9QzqIB.js +0 -73
  25. package/dist/PhBrowser-B-JSznId.js +0 -73
  26. package/dist/PhCaretDown-vV5oHMNi.js +0 -73
  27. package/dist/PhCaretLeft-BLo6Y_f4.js +0 -73
  28. package/dist/PhCaretRight-CqQN4TT3.js +0 -73
  29. package/dist/PhCaretUp-Df7UCAHy.js +0 -73
  30. package/dist/PhCheck-gtpfK4ed.js +0 -73
  31. package/dist/PhCircleHalf-Uq7dwDYw.js +0 -73
  32. package/dist/PhClock-SDCW-NmF.js +0 -73
  33. package/dist/PhCompass-B7hgtdx-.js +0 -73
  34. package/dist/PhCopy-BcnhyXCy.js +0 -73
  35. package/dist/PhCreditCard-BJjByVgu.js +0 -73
  36. package/dist/PhCurrencyDollar-B7ZXqXBy.js +0 -73
  37. package/dist/PhDesktop-B3VKPuJx.js +0 -73
  38. package/dist/PhDeviceMobile-Bnd0TYEH.js +0 -73
  39. package/dist/PhDotsThree-yyMWyZ-R.js +0 -73
  40. package/dist/PhEnvelope-67uzHbI9.js +0 -73
  41. package/dist/PhFunnelSimple-B-DCsloI.js +0 -73
  42. package/dist/PhGlobe-TMm_6qGk.js +0 -73
  43. package/dist/PhIdentificationCard-CePPD2xc.js +0 -73
  44. package/dist/PhImage-gY96WtHR.js +0 -73
  45. package/dist/PhInfo-DRQM_ZDP.js +0 -73
  46. package/dist/PhLightbulb-B0TxPfZ1.js +0 -73
  47. package/dist/PhMagnifyingGlass-B8si5_6W.js +0 -73
  48. package/dist/PhPaperPlaneRight-DVu5PLYd.js +0 -73
  49. package/dist/PhPlus-BfTsQnUz.js +0 -73
  50. package/dist/PhPower-CxYUGOWn.js +0 -73
  51. package/dist/PhPuzzlePiece-CQ4wh0gV.js +0 -73
  52. package/dist/PhQrCode-BuJ97NYJ.js +0 -73
  53. package/dist/PhQuestion-kJoP8Mja.js +0 -73
  54. package/dist/PhQuestionMark-C46ZkFpu.js +0 -73
  55. package/dist/PhSealCheck-Eh8jVqSN.js +0 -73
  56. package/dist/PhSignOut-jk97OSVt.js +0 -73
  57. package/dist/PhSpinner-CiYOhwMg.js +0 -73
  58. package/dist/PhTrash-pxerMqzd.js +0 -73
  59. package/dist/PhUser-BMg0VV4A.js +0 -73
  60. package/dist/PhVault-DYQvx5A-.js +0 -73
  61. package/dist/PhWarning-NLC5Mj87.js +0 -73
  62. package/dist/PhWarningCircle-Ch2jU9fA.js +0 -73
  63. package/dist/PhX-Bx4wpwm3.js +0 -73
  64. package/dist/SwapController-Cti0Cyxa.js +0 -457
  65. package/dist/ccip-CKZd2XJ7.js +0 -150
  66. package/dist/core/api.d.ts +0 -39
  67. package/dist/core/logic.d.ts +0 -2
  68. package/dist/core/wallet.d.ts +0 -55
  69. package/dist/data-capture-7D5CL385.js +0 -490
  70. package/dist/email-AmK0INbZ.js +0 -344
  71. package/dist/embedded-wallet-Pn0I_XLn.js +0 -820
  72. package/dist/features-x8XNprEe.js +0 -274
  73. package/dist/hashTypedData-B50-z0AA.js +0 -197
  74. package/dist/if-defined-CdZSZ6UL.js +0 -10
  75. package/dist/index-4ewUtPPp.js +0 -7981
  76. package/dist/index-51l86yqx.js +0 -276
  77. package/dist/index-B6K56LF_.js +0 -85
  78. package/dist/index-BAmv9PxJ.js +0 -257
  79. package/dist/index-BEswjY9r.js +0 -117
  80. package/dist/index-BSKRq56S.js +0 -355
  81. package/dist/index-BaygXQxx.js +0 -172
  82. package/dist/index-BcPxaHr5.js +0 -118
  83. package/dist/index-Bjt7nGaJ.js +0 -199
  84. package/dist/index-BkTSyAJb.js +0 -21991
  85. package/dist/index-Bmnl7l2U.js +0 -555
  86. package/dist/index-BvPvouSq.js +0 -56
  87. package/dist/index-C-6iznUO.js +0 -174
  88. package/dist/index-C1QEJL-2.js +0 -572
  89. package/dist/index-C4M5s_AM.js +0 -228
  90. package/dist/index-CEqcN8QP.js +0 -1175
  91. package/dist/index-CM3YaYca.js +0 -8189
  92. package/dist/index-CclBLA5r.js +0 -517
  93. package/dist/index-ChTxJOiF.js +0 -46
  94. package/dist/index-CmAv0Tzr.js +0 -86
  95. package/dist/index-CmvoKY4x.js +0 -125
  96. package/dist/index-D7PmdQ9B.js +0 -1750
  97. package/dist/index-D7k2Pc4e.js +0 -1083
  98. package/dist/index-D7lmgqUR.js +0 -153
  99. package/dist/index-DG_-qYze.js +0 -107
  100. package/dist/index-DHot9Fdb.js +0 -218
  101. package/dist/index-DV2LrPtU.js +0 -123
  102. package/dist/index-DYBaJQ2W.js +0 -65
  103. package/dist/index-D_8VUmn1.js +0 -41543
  104. package/dist/index-D_gLn3rT.js +0 -100
  105. package/dist/index-DqcVUSC9.js +0 -62
  106. package/dist/index-I7VDqINw.js +0 -128
  107. package/dist/index-Oz72I9VP.js +0 -209
  108. package/dist/index-UclsHkJ0.js +0 -118
  109. package/dist/index-X8zir_1j.js +0 -110
  110. package/dist/index-XvlWKGCu.js +0 -1281
  111. package/dist/index-dO97xPlt.js +0 -171
  112. package/dist/index-uBeF6OAB.js +0 -387
  113. package/dist/index-zeA_RiCV.js +0 -159
  114. package/dist/localBatchGatewayRequest-BUZHGdjw.js +0 -91
  115. package/dist/onramp-CdnBuF0r.js +0 -855
  116. package/dist/parseSignature-CcyTNGr4.js +0 -3304
  117. package/dist/pay-with-exchange-CSM6WCOV.js +0 -525
  118. package/dist/property-Bd8U3_QP.js +0 -618
  119. package/dist/receive-DooMu4Dx.js +0 -232
  120. package/dist/ref-CpgjXAw7.js +0 -107
  121. package/dist/send-3T7CyYic.js +0 -1166
  122. package/dist/socials-Dt-iHL17.js +0 -620
  123. package/dist/swaps-CjA9Es42.js +0 -1760
  124. package/dist/transactions-nRm9DVzn.js +0 -37
  125. package/dist/ui/Modal.d.ts +0 -9
  126. package/dist/ui/index.d.ts +0 -6
  127. package/dist/w3m-modal-NV25AXhM.js +0 -1706
@@ -1,55 +0,0 @@
1
- import { type Config as WagmiConfig } from '@wagmi/core';
2
- interface AccountState {
3
- address: `0x${string}`;
4
- chainId: number;
5
- isConnected: boolean;
6
- }
7
- export declare class WalletManager {
8
- private adapter;
9
- private kit;
10
- wagmiConfig: WagmiConfig | null;
11
- private currentAccount;
12
- private unwatchAccount;
13
- private connectionListeners;
14
- init(projectId: string): void;
15
- /**
16
- * Connect wallet via AppKit modal.
17
- * Returns a Promise that resolves when the user actually connects
18
- * (not just when the modal opens).
19
- */
20
- connect(): Promise<AccountState>;
21
- /**
22
- * Get current account state (reactively tracked).
23
- */
24
- getAccount(): AccountState;
25
- /**
26
- * Switch network with verification that the switch actually succeeded.
27
- */
28
- switchNetwork(chainId: number): Promise<void>;
29
- sendTransaction(tx: any): Promise<`0x${string}`>;
30
- waitForReceipt(hash: `0x${string}`): Promise<{
31
- blobGasPrice?: bigint | undefined;
32
- blobGasUsed?: bigint | undefined;
33
- blockHash: import("viem").Hash;
34
- blockNumber: bigint;
35
- contractAddress: import("viem").Address | null | undefined;
36
- cumulativeGasUsed: bigint;
37
- effectiveGasPrice: bigint;
38
- from: import("viem").Address;
39
- gasUsed: bigint;
40
- logs: import("viem").Log<bigint, number, false>[];
41
- logsBloom: import("viem").Hex;
42
- root?: `0x${string}` | undefined;
43
- status: "success" | "reverted";
44
- to: import("viem").Address | null;
45
- transactionHash: import("viem").Hash;
46
- transactionIndex: number;
47
- type: import("viem").TransactionType;
48
- chainId: number;
49
- }>;
50
- isConnected(): boolean;
51
- disconnect(): void;
52
- destroy(): void;
53
- }
54
- export declare const walletManager: WalletManager;
55
- export {};
@@ -1,490 +0,0 @@
1
- import { c_ as y, cX as $, cY as l, cM as m, d0 as p, cE as f, cH as h, dt as E, du as C } from "./index-D_8VUmn1.js";
2
- import { n as S, c as x, r as u, U as _ } from "./index-CEqcN8QP.js";
3
- import { W as R } from "./index-BSKRq56S.js";
4
- import { ReownAuthentication as v } from "./features-x8XNprEe.js";
5
- const D = y`
6
- .email-sufixes {
7
- display: flex;
8
- flex-direction: row;
9
- gap: var(--wui-spacing-3xs);
10
- overflow-x: auto;
11
- max-width: 100%;
12
- margin-top: var(--wui-spacing-s);
13
- margin-bottom: calc(-1 * var(--wui-spacing-m));
14
- padding-bottom: var(--wui-spacing-m);
15
- margin-left: calc(-1 * var(--wui-spacing-m));
16
- margin-right: calc(-1 * var(--wui-spacing-m));
17
- padding-left: var(--wui-spacing-m);
18
- padding-right: var(--wui-spacing-m);
19
-
20
- &::-webkit-scrollbar {
21
- display: none;
22
- }
23
- }
24
- `;
25
- var O = function(o, t, i, a) {
26
- var n = arguments.length, e = n < 3 ? t : a === null ? a = Object.getOwnPropertyDescriptor(t, i) : a, r;
27
- if (typeof Reflect == "object" && typeof Reflect.decorate == "function") e = Reflect.decorate(o, t, i, a);
28
- else for (var s = o.length - 1; s >= 0; s--) (r = o[s]) && (e = (n < 3 ? r(e) : n > 3 ? r(t, i, e) : r(t, i)) || e);
29
- return n > 3 && e && Object.defineProperty(t, i, e), e;
30
- };
31
- const I = [
32
- "@gmail.com",
33
- "@outlook.com",
34
- "@yahoo.com",
35
- "@hotmail.com",
36
- "@aol.com",
37
- "@icloud.com",
38
- "@zoho.com"
39
- ];
40
- let g = class extends $ {
41
- constructor() {
42
- super(...arguments), this.email = "";
43
- }
44
- render() {
45
- const t = I.filter(this.filter.bind(this)).map(this.item.bind(this));
46
- return t.length === 0 ? null : l`<div class="email-sufixes">${t}</div>`;
47
- }
48
- filter(t) {
49
- if (!this.email)
50
- return !1;
51
- const i = this.email.split("@");
52
- if (i.length < 2)
53
- return !0;
54
- const a = i.pop();
55
- return t.includes(a) && t !== `@${a}`;
56
- }
57
- item(t) {
58
- return l`<wui-button variant="neutral" size="sm" @click=${() => {
59
- const a = this.email.split("@");
60
- a.length > 1 && a.pop();
61
- const n = a[0] + t;
62
- this.dispatchEvent(new CustomEvent("change", {
63
- detail: n,
64
- bubbles: !0,
65
- composed: !0
66
- }));
67
- }}
68
- >${t}</wui-button
69
- >`;
70
- }
71
- };
72
- g.styles = [D];
73
- O([
74
- S()
75
- ], g.prototype, "email", void 0);
76
- g = O([
77
- x("w3m-email-suffixes-widget")
78
- ], g);
79
- const j = y`
80
- .recent-emails {
81
- display: flex;
82
- flex-direction: column;
83
- padding: var(--wui-spacing-s) 0;
84
- border-top: 1px solid var(--wui-color-gray-glass-005);
85
- border-bottom: 1px solid var(--wui-color-gray-glass-005);
86
- }
87
-
88
- .recent-emails-heading {
89
- margin-bottom: var(--wui-spacing-s);
90
- }
91
-
92
- .recent-emails-list-item {
93
- --wui-color-gray-glass-002: transparent;
94
- }
95
- `;
96
- var W = function(o, t, i, a) {
97
- var n = arguments.length, e = n < 3 ? t : a === null ? a = Object.getOwnPropertyDescriptor(t, i) : a, r;
98
- if (typeof Reflect == "object" && typeof Reflect.decorate == "function") e = Reflect.decorate(o, t, i, a);
99
- else for (var s = o.length - 1; s >= 0; s--) (r = o[s]) && (e = (n < 3 ? r(e) : n > 3 ? r(t, i, e) : r(t, i)) || e);
100
- return n > 3 && e && Object.defineProperty(t, i, e), e;
101
- };
102
- let w = class extends $ {
103
- constructor() {
104
- super(...arguments), this.emails = [];
105
- }
106
- render() {
107
- return this.emails.length === 0 ? null : l`<div class="recent-emails">
108
- <wui-text variant="micro-600" color="fg-200" class="recent-emails-heading"
109
- >Recently used emails</wui-text
110
- >
111
- ${this.emails.map(this.item.bind(this))}
112
- </div>`;
113
- }
114
- item(t) {
115
- return l`<wui-list-item
116
- @click=${() => {
117
- this.dispatchEvent(new CustomEvent("select", {
118
- detail: t,
119
- bubbles: !0,
120
- composed: !0
121
- }));
122
- }}
123
- ?chevron=${!0}
124
- icon="mail"
125
- iconVariant="overlay"
126
- class="recent-emails-list-item"
127
- >
128
- <wui-text variant="paragraph-500" color="fg-100">${t}</wui-text>
129
- </wui-list-item>`;
130
- }
131
- };
132
- w.styles = [j];
133
- W([
134
- S()
135
- ], w.prototype, "emails", void 0);
136
- w = W([
137
- x("w3m-recent-emails-widget")
138
- ], w);
139
- var A = function(o, t, i, a) {
140
- var n = arguments.length, e = n < 3 ? t : a === null ? a = Object.getOwnPropertyDescriptor(t, i) : a, r;
141
- if (typeof Reflect == "object" && typeof Reflect.decorate == "function") e = Reflect.decorate(o, t, i, a);
142
- else for (var s = o.length - 1; s >= 0; s--) (r = o[s]) && (e = (n < 3 ? r(e) : n > 3 ? r(t, i, e) : r(t, i)) || e);
143
- return n > 3 && e && Object.defineProperty(t, i, e), e;
144
- };
145
- let b = class extends R {
146
- constructor() {
147
- super(...arguments), this.siwx = m.state.siwx, this.onOtpSubmit = async (t) => {
148
- await this.siwx.confirmEmailOtp({ code: t }), p.replace("SIWXSignMessage");
149
- }, this.onOtpResend = async (t) => {
150
- const i = f.getAccountData();
151
- if (!(i != null && i.caipAddress))
152
- throw new Error("No account data found");
153
- await this.siwx.requestEmailOtp({
154
- email: t,
155
- account: i.caipAddress
156
- });
157
- };
158
- }
159
- connectedCallback() {
160
- (!this.siwx || !(this.siwx instanceof v)) && h.showError("ReownAuthentication is not initialized."), super.connectedCallback();
161
- }
162
- shouldSubmitOnOtpChange() {
163
- return this.otp.length === R.OTP_LENGTH;
164
- }
165
- };
166
- A([
167
- u()
168
- ], b.prototype, "siwx", void 0);
169
- b = A([
170
- x("w3m-data-capture-otp-confirm-view")
171
- ], b);
172
- const P = y`
173
- .hero {
174
- display: flex;
175
- flex-direction: column;
176
- align-items: center;
177
- justify-content: center;
178
- gap: var(--wui-spacing-3xs);
179
-
180
- transition-property: margin, height;
181
- transition-duration: var(--wui-duration-md);
182
- transition-timing-function: var(--wui-ease-out-power-1);
183
- margin-top: -100px;
184
-
185
- &[data-state='loading'] {
186
- margin-top: 0px;
187
- }
188
-
189
- position: relative;
190
- &:after {
191
- content: '';
192
- position: absolute;
193
- bottom: 0;
194
- height: 252px;
195
- width: 360px;
196
- background: radial-gradient(
197
- 96.11% 53.95% at 50% 51.28%,
198
- transparent 0%,
199
- color-mix(in srgb, var(--wui-color-bg-100) 5%, transparent) 49%,
200
- color-mix(in srgb, var(--wui-color-bg-100) 65%, transparent) 99.43%
201
- );
202
- }
203
- }
204
-
205
- .hero-main-icon {
206
- width: 176px;
207
- transition-property: background-color;
208
- transition-duration: var(--wui-duration-lg);
209
- transition-timing-function: var(--wui-ease-out-power-1);
210
-
211
- &[data-state='loading'] {
212
- width: 56px;
213
- }
214
- }
215
-
216
- .hero-row {
217
- display: flex;
218
- flex-direction: row;
219
- align-items: center;
220
- justify-content: center;
221
- gap: var(--wui-spacing-3xs);
222
- flex-wrap: nowrap;
223
- min-width: fit-content;
224
-
225
- &:nth-child(1) {
226
- transform: translateX(-30px);
227
- }
228
-
229
- &:nth-child(2) {
230
- transform: translateX(30px);
231
- }
232
-
233
- &:nth-child(4) {
234
- transform: translateX(40px);
235
- }
236
-
237
- transition-property: height;
238
- transition-duration: var(--wui-duration-md);
239
- transition-timing-function: var(--wui-ease-out-power-1);
240
- height: 68px;
241
-
242
- &[data-state='loading'] {
243
- height: 0px;
244
- }
245
- }
246
-
247
- .hero-row-icon {
248
- opacity: 0.1;
249
- transition-property: opacity;
250
- transition-duration: var(--wui-duration-md);
251
- transition-timing-function: var(--wui-ease-out-power-1);
252
-
253
- &[data-state='loading'] {
254
- opacity: 0;
255
- }
256
- }
257
- `;
258
- var d = function(o, t, i, a) {
259
- var n = arguments.length, e = n < 3 ? t : a === null ? a = Object.getOwnPropertyDescriptor(t, i) : a, r;
260
- if (typeof Reflect == "object" && typeof Reflect.decorate == "function") e = Reflect.decorate(o, t, i, a);
261
- else for (var s = o.length - 1; s >= 0; s--) (r = o[s]) && (e = (n < 3 ? r(e) : n > 3 ? r(t, i, e) : r(t, i)) || e);
262
- return n > 3 && e && Object.defineProperty(t, i, e), e;
263
- };
264
- let c = class extends $ {
265
- constructor() {
266
- var t, i, a, n, e, r, s;
267
- super(...arguments), this.email = ((t = p.state.data) == null ? void 0 : t.email) ?? ((a = (i = f.getAccountData()) == null ? void 0 : i.user) == null ? void 0 : a.email) ?? "", this.address = ((n = f.getAccountData()) == null ? void 0 : n.address) ?? "", this.loading = !1, this.appName = ((e = m.state.metadata) == null ? void 0 : e.name) ?? "AppKit", this.siwx = m.state.siwx, this.isRequired = Array.isArray((r = m.state.remoteFeatures) == null ? void 0 : r.emailCapture) && ((s = m.state.remoteFeatures) == null ? void 0 : s.emailCapture.includes("required")), this.recentEmails = this.getRecentEmails();
268
- }
269
- connectedCallback() {
270
- (!this.siwx || !(this.siwx instanceof v)) && h.showError("ReownAuthentication is not initialized. Please contact support."), super.connectedCallback();
271
- }
272
- firstUpdated() {
273
- this.loading = !1, this.recentEmails = this.getRecentEmails(), this.email && this.onSubmit();
274
- }
275
- render() {
276
- return l`
277
- <wui-flex flexDirection="column" .padding=${["3xs", "m", "m", "m"]} gap="l">
278
- ${this.hero()} ${this.paragraph()} ${this.emailInput()} ${this.recentEmailsWidget()}
279
- ${this.footerActions()}
280
- </wui-flex>
281
- `;
282
- }
283
- hero() {
284
- return l`
285
- <div class="hero" data-state=${this.loading ? "loading" : "default"}>
286
- ${this.heroRow(["id", "mail", "wallet", "x", "solana", "qrCode"])}
287
- ${this.heroRow(["mail", "farcaster", "wallet", "discord", "mobile", "qrCode"])}
288
- <div class="hero-row">
289
- ${this.heroIcon("github")} ${this.heroIcon("bank")}
290
- <wui-icon-box
291
- size="xl"
292
- iconSize="xxl"
293
- iconColor=${this.loading ? "fg-100" : "accent-100"}
294
- backgroundColor=${this.loading ? "fg-100" : "accent-100"}
295
- icon=${this.loading ? "id" : "user"}
296
- isOpaque
297
- class="hero-main-icon"
298
- data-state=${this.loading ? "loading" : "default"}
299
- >
300
- </wui-icon-box>
301
- ${this.heroIcon("id")} ${this.heroIcon("card")}
302
- </div>
303
- ${this.heroRow(["google", "id", "github", "verify", "apple", "mobile"])}
304
- </div>
305
- `;
306
- }
307
- heroRow(t) {
308
- return l`
309
- <div class="hero-row" data-state=${this.loading ? "loading" : "default"}>
310
- ${t.map(this.heroIcon.bind(this))}
311
- </div>
312
- `;
313
- }
314
- heroIcon(t) {
315
- return l`
316
- <wui-icon-box
317
- size="xl"
318
- iconSize="xxl"
319
- iconColor="fg-100"
320
- backgroundColor="fg-100"
321
- icon=${t}
322
- data-state=${this.loading ? "loading" : "default"}
323
- isOpaque
324
- class="hero-row-icon"
325
- >
326
- </wui-icon-box>
327
- `;
328
- }
329
- paragraph() {
330
- return this.loading ? l`
331
- <wui-text variant="paragraph-400" color="fg-200" align="center"
332
- >We are verifying your account with email
333
- <wui-text variant="paragraph-600" color="accent-100">${this.email}</wui-text> and address
334
- <wui-text variant="paragraph-600" color="fg-100">
335
- ${_.getTruncateString({
336
- string: this.address,
337
- charsEnd: 4,
338
- charsStart: 4,
339
- truncate: "middle"
340
- })} </wui-text
341
- >, please wait a moment.</wui-text
342
- >
343
- ` : this.isRequired ? l`
344
- <wui-text variant="paragraph-600" color="fg-100" align="center">
345
- ${this.appName} requires your email for authentication.
346
- </wui-text>
347
- ` : l`
348
- <wui-flex flexDirection="column" gap="xs" alignItems="center">
349
- <wui-text variant="paragraph-600" color="fg-100" align="center" size>
350
- ${this.appName} would like to collect your email.
351
- </wui-text>
352
-
353
- <wui-text variant="small-400" color="fg-200" align="center">
354
- Don't worry, it's optional&mdash;you can skip this step.
355
- </wui-text>
356
- </wui-flex>
357
- `;
358
- }
359
- emailInput() {
360
- if (this.loading)
361
- return null;
362
- const t = (a) => {
363
- a.key === "Enter" && this.onSubmit();
364
- }, i = (a) => {
365
- this.email = a.detail;
366
- };
367
- return l`
368
- <wui-flex flexDirection="column">
369
- <wui-email-input
370
- .value=${this.email}
371
- .disabled=${this.loading}
372
- @inputChange=${i}
373
- @keydown=${t}
374
- ></wui-email-input>
375
-
376
- <w3m-email-suffixes-widget
377
- .email=${this.email}
378
- @change=${i}
379
- ></w3m-email-suffixes-widget>
380
- </wui-flex>
381
- `;
382
- }
383
- recentEmailsWidget() {
384
- if (this.recentEmails.length === 0 || this.loading)
385
- return null;
386
- const t = (i) => {
387
- this.email = i.detail, this.onSubmit();
388
- };
389
- return l`
390
- <w3m-recent-emails-widget
391
- .emails=${this.recentEmails}
392
- @select=${t}
393
- ></w3m-recent-emails-widget>
394
- `;
395
- }
396
- footerActions() {
397
- return l`
398
- <wui-flex flexDirection="row" fullWidth gap="s">
399
- ${this.isRequired ? null : l`<wui-button
400
- size="lg"
401
- variant="neutral"
402
- fullWidth
403
- .disabled=${this.loading}
404
- @click=${this.onSkip.bind(this)}
405
- >Skip this step</wui-button
406
- >`}
407
-
408
- <wui-button
409
- size="lg"
410
- variant="main"
411
- type="submit"
412
- fullWidth
413
- .disabled=${!this.email || !this.isValidEmail(this.email)}
414
- .loading=${this.loading}
415
- @click=${this.onSubmit.bind(this)}
416
- >
417
- Continue
418
- </wui-button>
419
- </wui-flex>
420
- `;
421
- }
422
- async onSubmit() {
423
- if (!(this.siwx instanceof v)) {
424
- h.showError("ReownAuthentication is not initialized. Please contact support.");
425
- return;
426
- }
427
- const t = f.getActiveCaipAddress();
428
- if (!t)
429
- throw new Error("Account is not connected.");
430
- if (!this.isValidEmail(this.email)) {
431
- h.showError("Please provide a valid email.");
432
- return;
433
- }
434
- try {
435
- this.loading = !0;
436
- const i = await this.siwx.requestEmailOtp({
437
- email: this.email,
438
- account: t
439
- });
440
- this.pushRecentEmail(this.email), i.uuid === null ? p.replace("SIWXSignMessage") : p.replace("DataCaptureOtpConfirm", { email: this.email });
441
- } catch {
442
- h.showError("Failed to send email OTP"), this.loading = !1;
443
- }
444
- }
445
- onSkip() {
446
- p.replace("SIWXSignMessage");
447
- }
448
- getRecentEmails() {
449
- const t = E.getItem(C.RECENT_EMAILS);
450
- return (t ? t.split(",") : []).filter(this.isValidEmail.bind(this)).slice(0, 3);
451
- }
452
- pushRecentEmail(t) {
453
- const i = this.getRecentEmails(), a = Array.from(/* @__PURE__ */ new Set([t, ...i])).slice(0, 3);
454
- E.setItem(C.RECENT_EMAILS, a.join(","));
455
- }
456
- isValidEmail(t) {
457
- return /^\S+@\S+\.\S+$/u.test(t);
458
- }
459
- };
460
- c.styles = [P];
461
- d([
462
- u()
463
- ], c.prototype, "email", void 0);
464
- d([
465
- u()
466
- ], c.prototype, "address", void 0);
467
- d([
468
- u()
469
- ], c.prototype, "loading", void 0);
470
- d([
471
- u()
472
- ], c.prototype, "appName", void 0);
473
- d([
474
- u()
475
- ], c.prototype, "siwx", void 0);
476
- d([
477
- u()
478
- ], c.prototype, "isRequired", void 0);
479
- d([
480
- u()
481
- ], c.prototype, "recentEmails", void 0);
482
- c = d([
483
- x("w3m-data-capture-view")
484
- ], c);
485
- export {
486
- b as W3mDataCaptureOtpConfirmView,
487
- c as W3mDataCaptureView,
488
- g as W3mEmailSuffixesWidget,
489
- w as W3mRecentEmailsWidget
490
- };