@directcryptopay/sdk 0.2.4 → 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-CbO41bcH.js +0 -217
  11. package/dist/HelpersUtil-DHm6EVSE.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-Ch0FFTEt.js +0 -457
  65. package/dist/ccip-BrGhNXIM.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-CpafmuCb.js +0 -490
  70. package/dist/email-Dcg4jlai.js +0 -344
  71. package/dist/embedded-wallet-DeoRdAPw.js +0 -820
  72. package/dist/features-B9Nde43h.js +0 -274
  73. package/dist/hashTypedData-a7b8tdkO.js +0 -197
  74. package/dist/if-defined-k21LutCn.js +0 -10
  75. package/dist/index-9vLw53Xl.js +0 -228
  76. package/dist/index-B5wUyynz.js +0 -107
  77. package/dist/index-B8LkUrww.js +0 -86
  78. package/dist/index-BA0VwKg0.js +0 -8189
  79. package/dist/index-BB9JJ24N.js +0 -125
  80. package/dist/index-BCkEvPQ6.js +0 -172
  81. package/dist/index-BDeO_csr.js +0 -171
  82. package/dist/index-Bb7babLF.js +0 -1281
  83. package/dist/index-BjOhprVS.js +0 -199
  84. package/dist/index-BjyMgZsf.js +0 -218
  85. package/dist/index-BkThIDLX.js +0 -159
  86. package/dist/index-BmFs6nb7.js +0 -209
  87. package/dist/index-C1QEJL-2.js +0 -572
  88. package/dist/index-C4qc4PdD.js +0 -387
  89. package/dist/index-CAPvUh14.js +0 -1750
  90. package/dist/index-CBMU3PTE.js +0 -65
  91. package/dist/index-CGwPkJLF.js +0 -355
  92. package/dist/index-CNGEqX3D.js +0 -153
  93. package/dist/index-CRlCq6IB.js +0 -7981
  94. package/dist/index-Cg_o-i9X.js +0 -118
  95. package/dist/index-D1BvhCbI.js +0 -62
  96. package/dist/index-DFi8TiHc.js +0 -128
  97. package/dist/index-DLwuveL9.js +0 -555
  98. package/dist/index-DMn7ktUQ.js +0 -56
  99. package/dist/index-DOXwtuwa.js +0 -117
  100. package/dist/index-DPPOW_Tp.js +0 -118
  101. package/dist/index-DQpzHpW-.js +0 -517
  102. package/dist/index-DXHg5C-W.js +0 -276
  103. package/dist/index-DcYjZV4H.js +0 -110
  104. package/dist/index-DeL88Lwc.js +0 -41655
  105. package/dist/index-DrWVlf8b.js +0 -46
  106. package/dist/index-Dsfuc4rB.js +0 -123
  107. package/dist/index-DuTny38n.js +0 -1175
  108. package/dist/index-Nfjb6bV0.js +0 -21991
  109. package/dist/index-WwwdQSN2.js +0 -85
  110. package/dist/index-Yha9Afch.js +0 -174
  111. package/dist/index-cbQHN7GC.js +0 -100
  112. package/dist/index-hyG3cYsv.js +0 -1083
  113. package/dist/index-qLxmmPaL.js +0 -257
  114. package/dist/localBatchGatewayRequest-vfcvRH0G.js +0 -91
  115. package/dist/onramp-BSiyOX4L.js +0 -855
  116. package/dist/parseSignature-CdCMAPZN.js +0 -3304
  117. package/dist/pay-with-exchange-CduNoMEz.js +0 -525
  118. package/dist/property-Bd8U3_QP.js +0 -618
  119. package/dist/receive-CrmptJlq.js +0 -232
  120. package/dist/ref-SOwYtCZb.js +0 -107
  121. package/dist/send-oMcHMEr6.js +0 -1166
  122. package/dist/socials-C0A4-FbY.js +0 -620
  123. package/dist/swaps-CbJJ9Ciu.js +0 -1760
  124. package/dist/transactions-BDfCoBS5.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-BjsTkny7.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-DeL88Lwc.js";
2
- import { n as S, c as x, r as u, U as _ } from "./index-DuTny38n.js";
3
- import { W as R } from "./index-CGwPkJLF.js";
4
- import { ReownAuthentication as v } from "./features-B9Nde43h.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
- };