signer-test-sdk-react 0.0.1

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 (70) hide show
  1. package/README.md +114 -0
  2. package/dist/src/AbstraxnProvider.d.ts +20 -0
  3. package/dist/src/AbstraxnProvider.js +2213 -0
  4. package/dist/src/AbstraxnProvider.js.map +1 -0
  5. package/dist/src/ConnectButton.css +217 -0
  6. package/dist/src/ConnectButton.d.ts +71 -0
  7. package/dist/src/ConnectButton.js +102 -0
  8. package/dist/src/ConnectButton.js.map +1 -0
  9. package/dist/src/ExternalWalletButtons.css +319 -0
  10. package/dist/src/ExternalWalletButtons.d.ts +56 -0
  11. package/dist/src/ExternalWalletButtons.js +245 -0
  12. package/dist/src/ExternalWalletButtons.js.map +1 -0
  13. package/dist/src/OnboardingUI.d.ts +63 -0
  14. package/dist/src/OnboardingUI.js +66 -0
  15. package/dist/src/OnboardingUI.js.map +1 -0
  16. package/dist/src/WalletModal.css +549 -0
  17. package/dist/src/WalletModal.d.ts +6 -0
  18. package/dist/src/WalletModal.js +89 -0
  19. package/dist/src/WalletModal.js.map +1 -0
  20. package/dist/src/components/OnboardingUI/OnboardingUI.css +727 -0
  21. package/dist/src/components/OnboardingUI/OnboardingUIReact.d.ts +15 -0
  22. package/dist/src/components/OnboardingUI/OnboardingUIReact.js +65 -0
  23. package/dist/src/components/OnboardingUI/OnboardingUIReact.js.map +1 -0
  24. package/dist/src/components/OnboardingUI/OnboardingUIWeb.d.ts +257 -0
  25. package/dist/src/components/OnboardingUI/OnboardingUIWeb.js +3454 -0
  26. package/dist/src/components/OnboardingUI/OnboardingUIWeb.js.map +1 -0
  27. package/dist/src/components/OnboardingUI/components/EmailForm.d.ts +16 -0
  28. package/dist/src/components/OnboardingUI/components/EmailForm.js +19 -0
  29. package/dist/src/components/OnboardingUI/components/EmailForm.js.map +1 -0
  30. package/dist/src/components/OnboardingUI/components/Modal.d.ts +15 -0
  31. package/dist/src/components/OnboardingUI/components/Modal.js +68 -0
  32. package/dist/src/components/OnboardingUI/components/Modal.js.map +1 -0
  33. package/dist/src/components/OnboardingUI/components/OtpForm.d.ts +19 -0
  34. package/dist/src/components/OnboardingUI/components/OtpForm.js +58 -0
  35. package/dist/src/components/OnboardingUI/components/OtpForm.js.map +1 -0
  36. package/dist/src/components/OnboardingUI/components/PasskeyButton.d.ts +14 -0
  37. package/dist/src/components/OnboardingUI/components/PasskeyButton.js +22 -0
  38. package/dist/src/components/OnboardingUI/components/PasskeyButton.js.map +1 -0
  39. package/dist/src/components/OnboardingUI/components/SocialButtons.d.ts +15 -0
  40. package/dist/src/components/OnboardingUI/components/SocialButtons.js +15 -0
  41. package/dist/src/components/OnboardingUI/components/SocialButtons.js.map +1 -0
  42. package/dist/src/components/OnboardingUI/components/index.d.ts +13 -0
  43. package/dist/src/components/OnboardingUI/components/index.js +9 -0
  44. package/dist/src/components/OnboardingUI/components/index.js.map +1 -0
  45. package/dist/src/components/OnboardingUI/hooks/index.d.ts +7 -0
  46. package/dist/src/components/OnboardingUI/hooks/index.js +6 -0
  47. package/dist/src/components/OnboardingUI/hooks/index.js.map +1 -0
  48. package/dist/src/components/OnboardingUI/hooks/useAuthMethods.d.ts +11 -0
  49. package/dist/src/components/OnboardingUI/hooks/useAuthMethods.js +146 -0
  50. package/dist/src/components/OnboardingUI/hooks/useAuthMethods.js.map +1 -0
  51. package/dist/src/components/OnboardingUI/hooks/useOnboarding.d.ts +21 -0
  52. package/dist/src/components/OnboardingUI/hooks/useOnboarding.js +135 -0
  53. package/dist/src/components/OnboardingUI/hooks/useOnboarding.js.map +1 -0
  54. package/dist/src/components/OnboardingUI/index.d.ts +12 -0
  55. package/dist/src/components/OnboardingUI/index.js +15 -0
  56. package/dist/src/components/OnboardingUI/index.js.map +1 -0
  57. package/dist/src/hooks.d.ts +204 -0
  58. package/dist/src/hooks.js +394 -0
  59. package/dist/src/hooks.js.map +1 -0
  60. package/dist/src/index.d.ts +14 -0
  61. package/dist/src/index.js +11 -0
  62. package/dist/src/index.js.map +1 -0
  63. package/dist/src/types.d.ts +181 -0
  64. package/dist/src/types.js +2 -0
  65. package/dist/src/types.js.map +1 -0
  66. package/dist/src/wagmiConfig.d.ts +147 -0
  67. package/dist/src/wagmiConfig.js +81 -0
  68. package/dist/src/wagmiConfig.js.map +1 -0
  69. package/dist/tsconfig.tsbuildinfo +1 -0
  70. package/package.json +68 -0
@@ -0,0 +1,727 @@
1
+ /**
2
+ * OnboardingUI Component Styles
3
+ */
4
+
5
+ .onboarding-container {
6
+ display: flex;
7
+ flex-direction: column;
8
+ align-items: center;
9
+ justify-content: center;
10
+ min-height: 100vh;
11
+ padding: 20px;
12
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
13
+ 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
14
+ sans-serif;
15
+ -webkit-font-smoothing: antialiased;
16
+ -moz-osx-font-smoothing: grayscale;
17
+ }
18
+
19
+ /* Inline mode - no extra height */
20
+ .onboarding-container.onboarding-inline {
21
+ min-height: auto;
22
+ padding: 0;
23
+ /* width: 100%; */
24
+ }
25
+
26
+ /* Modal Styles */
27
+ .onboarding-modal-overlay {
28
+ position: fixed;
29
+ top: 0;
30
+ left: 0;
31
+ right: 0;
32
+ bottom: 0;
33
+ background-color: rgba(0, 0, 0, 0.6);
34
+ backdrop-filter: blur(8px);
35
+ -webkit-backdrop-filter: blur(8px);
36
+ display: none; /* Start hidden by default to prevent flicker */
37
+ align-items: center;
38
+ justify-content: center;
39
+ z-index: 9999;
40
+ opacity: 0;
41
+ transition: opacity 0.3s ease-in-out;
42
+ padding: 16px;
43
+ overflow: hidden;
44
+ overscroll-behavior: contain;
45
+ }
46
+
47
+ .onboarding-modal-overlay::-webkit-scrollbar {
48
+ display: none;
49
+ }
50
+
51
+ .onboarding-modal-overlay {
52
+ -ms-overflow-style: none;
53
+ scrollbar-width: none;
54
+ }
55
+
56
+ .onboarding-modal-overlay.onboarding-modal-open {
57
+ display: flex; /* Show when explicitly opened */
58
+ opacity: 1;
59
+ }
60
+
61
+ .onboarding-modal-overlay.onboarding-modal-closing {
62
+ opacity: 0;
63
+ }
64
+
65
+ .onboarding-modal-content {
66
+ position: relative;
67
+ width: 100%;
68
+ max-width: 420px;
69
+ max-height: calc(100vh - 32px);
70
+ overflow: hidden;
71
+ transform: scale(0.95);
72
+ transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
73
+ display: flex;
74
+ flex-direction: column;
75
+ }
76
+
77
+ @media (max-width: 480px) {
78
+ .onboarding-modal-content {
79
+ max-width: 100%;
80
+ max-height: 100vh;
81
+ border-radius: 0;
82
+ }
83
+
84
+ .onboarding-modal-overlay {
85
+ padding: 0;
86
+ }
87
+ }
88
+
89
+ .onboarding-modal-overlay.onboarding-modal-open .onboarding-modal-content {
90
+ transform: scale(1);
91
+ }
92
+
93
+ .onboarding-modal-overlay.onboarding-modal-closing .onboarding-modal-content {
94
+ transform: scale(0.95);
95
+ }
96
+
97
+ .onboarding-modal-close {
98
+ position: absolute;
99
+ top: 16px;
100
+ right: 16px;
101
+ width: 32px;
102
+ height: 32px;
103
+ border: none;
104
+ background-color: #f9fafb;
105
+ border-radius: 8px;
106
+ cursor: pointer;
107
+ display: flex;
108
+ align-items: center;
109
+ justify-content: center;
110
+ font-size: 20px;
111
+ line-height: 1;
112
+ color: #6b7280;
113
+ transition: all 0.15s ease;
114
+ z-index: 10;
115
+ padding: 0;
116
+ font-weight: 400;
117
+ }
118
+
119
+ .onboarding-theme-dark .onboarding-modal-close {
120
+ background-color: #374151;
121
+ color: #9ca3af;
122
+ }
123
+
124
+ .onboarding-modal-close:hover {
125
+ background-color: #f3f4f6;
126
+ color: #111827;
127
+ }
128
+
129
+ .onboarding-theme-dark .onboarding-modal-close:hover {
130
+ background-color: #4b5563;
131
+ color: #ffffff;
132
+ }
133
+
134
+ /* Modal container adjustments */
135
+ .onboarding-modal-content .onboarding-container {
136
+ min-height: auto;
137
+ padding: 0;
138
+ }
139
+
140
+ /* Light Theme */
141
+ .onboarding-theme-light {
142
+ color: #000000;
143
+ }
144
+
145
+ /* Dark Theme */
146
+ .onboarding-theme-dark {
147
+ color: #ffffff;
148
+ }
149
+
150
+ .onboarding-card {
151
+ width: 100%;
152
+ max-width: 420px;
153
+ padding: 40px;
154
+ border-radius: 16px;
155
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12), 0 2px 8px rgba(0, 0, 0, 0.08);
156
+ background-color: inherit;
157
+ position: relative;
158
+ overflow-y: auto;
159
+ overflow-x: hidden;
160
+ max-height: calc(100vh - 32px);
161
+ overscroll-behavior: contain;
162
+ }
163
+
164
+ .onboarding-card::-webkit-scrollbar {
165
+ width: 6px;
166
+ }
167
+
168
+ .onboarding-card::-webkit-scrollbar-track {
169
+ background: transparent;
170
+ }
171
+
172
+ .onboarding-card::-webkit-scrollbar-thumb {
173
+ background: rgba(0, 0, 0, 0.2);
174
+ border-radius: 3px;
175
+ }
176
+
177
+ .onboarding-theme-dark .onboarding-card::-webkit-scrollbar-thumb {
178
+ background: rgba(255, 255, 255, 0.2);
179
+ }
180
+
181
+ @media (max-width: 480px) {
182
+ .onboarding-card {
183
+ padding: 32px 24px;
184
+ border-radius: 0;
185
+ max-height: 100vh;
186
+ }
187
+ }
188
+
189
+ .onboarding-theme-light .onboarding-card {
190
+ background-color: #ffffff;
191
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12), 0 2px 8px rgba(0, 0, 0, 0.08);
192
+ border: 1px solid rgba(0, 0, 0, 0.06);
193
+ }
194
+
195
+ .onboarding-theme-dark .onboarding-card {
196
+ background-color: #1f2937;
197
+ box-shadow: 0 20px 60px rgba(0, 0, 0, 0.6), 0 0 1px rgba(255, 255, 255, 0.1);
198
+ border: 1px solid rgba(255, 255, 255, 0.1);
199
+ }
200
+
201
+ .onboarding-header {
202
+ text-align: center;
203
+ margin-bottom: 32px;
204
+ }
205
+
206
+ .onboarding-logo-section {
207
+ display: flex;
208
+ flex-direction: column;
209
+ align-items: center;
210
+ margin-bottom: 24px;
211
+ }
212
+
213
+ .onboarding-logo-container {
214
+ display: flex;
215
+ justify-content: center;
216
+ align-items: center;
217
+ margin-bottom: 6px;
218
+ gap: 10px;
219
+ }
220
+
221
+ .onboarding-logo-img {
222
+ max-width: 120px;
223
+ max-height: 60px;
224
+ object-fit: contain;
225
+ }
226
+
227
+
228
+ .onboarding-title {
229
+ font-size: 24px;
230
+ font-weight: 600;
231
+ margin: 0;
232
+ color: inherit;
233
+ text-align: center;
234
+ margin-bottom: 28px;
235
+ letter-spacing: -0.01em;
236
+ line-height: 1.4;
237
+ }
238
+
239
+ @media (max-width: 480px) {
240
+ .onboarding-title {
241
+ font-size: 24px;
242
+ margin-bottom: 24px;
243
+ }
244
+ }
245
+
246
+ .onboarding-theme-light .onboarding-title {
247
+ color: #111827;
248
+ }
249
+
250
+ .onboarding-theme-dark .onboarding-title {
251
+ color: #ffffff;
252
+ }
253
+
254
+ .onboarding-form {
255
+ width: 100%;
256
+ }
257
+
258
+ .onboarding-input-group {
259
+ margin-bottom: 16px;
260
+ }
261
+
262
+ .onboarding-input-label {
263
+ display: block;
264
+ font-size: 14px;
265
+ font-weight: 500;
266
+ color: #374151;
267
+ margin-bottom: 8px;
268
+ letter-spacing: -0.01em;
269
+ line-height: 1.5;
270
+ text-align: left;
271
+ width: 100%;
272
+ }
273
+
274
+ .onboarding-theme-dark .onboarding-input-label {
275
+ color: #e5e7eb;
276
+ }
277
+
278
+ .onboarding-input-wrapper {
279
+ position: relative;
280
+ display: flex;
281
+ align-items: center;
282
+ }
283
+
284
+ .onboarding-input-icon {
285
+ position: absolute;
286
+ left: 14px;
287
+ color: #9ca3af;
288
+ pointer-events: none;
289
+ z-index: 1;
290
+ width: 18px;
291
+ height: 18px;
292
+ }
293
+
294
+ .onboarding-theme-dark .onboarding-input-icon {
295
+ color: #9ca3af;
296
+ }
297
+
298
+ .onboarding-input {
299
+ width: 100%;
300
+ padding: 10px 14px 10px 44px;
301
+ font-size: 14px;
302
+ border: 1.5px solid #e5e7eb;
303
+ border-radius: 8px;
304
+ background-color: inherit;
305
+ color: inherit;
306
+ transition: all 0.15s ease;
307
+ box-sizing: border-box;
308
+ font-weight: 400;
309
+ letter-spacing: 0;
310
+ line-height: 1.5;
311
+ }
312
+
313
+ .onboarding-theme-light .onboarding-input {
314
+ background-color: #ffffff;
315
+ border-color: #e5e7eb;
316
+ }
317
+
318
+ .onboarding-theme-dark .onboarding-input {
319
+ background-color: #374151;
320
+ }
321
+
322
+ .onboarding-input:focus {
323
+ outline: none;
324
+ }
325
+
326
+ .onboarding-theme-light .onboarding-input:focus {
327
+ border-color: #111827;
328
+ box-shadow: 0 0 0 3px rgba(17, 24, 39, 0.1);
329
+ background-color: #ffffff;
330
+ }
331
+
332
+ .onboarding-theme-dark .onboarding-input {
333
+ border-color: #4b5563;
334
+ background-color: #374151;
335
+ }
336
+
337
+ .onboarding-theme-dark .onboarding-input:focus {
338
+ border-color: #9ca3af;
339
+ box-shadow: 0 0 0 3px rgba(156, 163, 175, 0.2);
340
+ background-color: #4b5563;
341
+ }
342
+
343
+ .onboarding-input:disabled {
344
+ opacity: 0.6;
345
+ cursor: not-allowed;
346
+ }
347
+
348
+ .onboarding-error {
349
+ padding: 12px;
350
+ margin-bottom: 16px;
351
+ background-color: #fee2e2;
352
+ color: #dc2626;
353
+ border-radius: 8px;
354
+ font-size: 14px;
355
+ }
356
+
357
+ .onboarding-theme-dark .onboarding-error {
358
+ background-color: #7f1d1d;
359
+ color: #fca5a5;
360
+ }
361
+
362
+ .onboarding-button {
363
+ width: 100%;
364
+ padding: 11px 20px;
365
+ font-size: 14px;
366
+ font-weight: 600;
367
+ border: none;
368
+ border-radius: 8px;
369
+ cursor: pointer;
370
+ transition: all 0.15s ease;
371
+ display: flex;
372
+ align-items: center;
373
+ justify-content: center;
374
+ gap: 8px;
375
+ margin-bottom: 12px;
376
+ letter-spacing: 0;
377
+ line-height: 1.5;
378
+ box-shadow: none;
379
+ min-height: 42px;
380
+ }
381
+
382
+ .onboarding-button:disabled {
383
+ opacity: 0.6;
384
+ cursor: not-allowed;
385
+ }
386
+
387
+ .onboarding-button-primary {
388
+ font-weight: 600;
389
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
390
+ }
391
+
392
+ /* Light theme button */
393
+ .onboarding-theme-light .onboarding-button-primary {
394
+ background-color: #111827;
395
+ color: #ffffff;
396
+ }
397
+
398
+ .onboarding-theme-light .onboarding-button-primary:hover:not(:disabled) {
399
+ background-color: #1f2937;
400
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
401
+ transform: translateY(-1px);
402
+ }
403
+
404
+ .onboarding-theme-light .onboarding-button-primary:active:not(:disabled) {
405
+ background-color: #374151;
406
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
407
+ transform: translateY(0);
408
+ }
409
+
410
+ /* Dark theme button */
411
+ .onboarding-theme-dark .onboarding-button-primary {
412
+ background-color: #4b5563;
413
+ color: #ffffff;
414
+ }
415
+
416
+ .onboarding-theme-dark .onboarding-button-primary:hover:not(:disabled) {
417
+ background-color: #6b7280;
418
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
419
+ transform: translateY(-1px);
420
+ }
421
+
422
+ .onboarding-theme-dark .onboarding-button-primary:active:not(:disabled) {
423
+ background-color: #6b7280;
424
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
425
+ transform: translateY(0);
426
+ }
427
+
428
+ .onboarding-button-google {
429
+ background-color: #ffffff;
430
+ color: #1f2937;
431
+ border: 1.5px solid #e5e7eb;
432
+ font-weight: 500;
433
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
434
+ font-size: 14px;
435
+ }
436
+
437
+ .onboarding-theme-dark .onboarding-button-google {
438
+ background-color: #374151;
439
+ color: #ffffff;
440
+ border-color: #4b5563;
441
+ }
442
+
443
+ .onboarding-button-google:hover:not(:disabled) {
444
+ background-color: #f9fafb;
445
+ border-color: #d1d5db;
446
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);
447
+ transform: translateY(-1px);
448
+ }
449
+
450
+ .onboarding-theme-dark .onboarding-button-google:hover:not(:disabled) {
451
+ background-color: #4b5563;
452
+ border-color: #6b7280;
453
+ }
454
+
455
+ .onboarding-google-icon {
456
+ width: 20px;
457
+ height: 20px;
458
+ }
459
+
460
+ .onboarding-divider {
461
+ display: flex;
462
+ align-items: center;
463
+ margin: 20px 0;
464
+ position: relative;
465
+ }
466
+
467
+ .onboarding-divider::before,
468
+ .onboarding-divider::after {
469
+ content: '';
470
+ flex: 1;
471
+ height: 1px;
472
+ background-color: #e5e7eb;
473
+ }
474
+
475
+ .onboarding-theme-dark .onboarding-divider::before,
476
+ .onboarding-theme-dark .onboarding-divider::after {
477
+ background-color: #4b5563;
478
+ }
479
+
480
+ .onboarding-divider-text {
481
+ padding: 0 14px;
482
+ font-size: 13px;
483
+ color: #9ca3af;
484
+ font-weight: 400;
485
+ }
486
+
487
+ .onboarding-theme-dark .onboarding-divider-text {
488
+ color: #9ca3af;
489
+ }
490
+
491
+
492
+ .onboarding-footer {
493
+ margin-top: 16px;
494
+ padding: 0;
495
+ text-align: center;
496
+ background: transparent;
497
+ border: none;
498
+ border-radius: 0;
499
+ }
500
+
501
+ .onboarding-footer-text {
502
+ font-size: 11px;
503
+ color: #9ca3af;
504
+ margin: 0;
505
+ line-height: 1.5;
506
+ font-weight: 400;
507
+ letter-spacing: 0.01em;
508
+ }
509
+
510
+ .onboarding-theme-dark .onboarding-footer-text {
511
+ color: #6b7280;
512
+ }
513
+
514
+ .onboarding-footer-brand {
515
+ font-weight: 700;
516
+ text-decoration: none;
517
+ margin-left: 2px;
518
+ cursor: pointer;
519
+ transition: opacity 0.15s ease;
520
+ }
521
+
522
+ .onboarding-theme-light .onboarding-footer-brand {
523
+ color: #111827;
524
+ }
525
+
526
+ .onboarding-theme-dark .onboarding-footer-brand {
527
+ color: #9ca3af;
528
+ }
529
+
530
+ .onboarding-footer-brand:hover {
531
+ text-decoration: none;
532
+ opacity: 0.8;
533
+ }
534
+
535
+ /* Modal container adjustments */
536
+ .onboarding-modal-content .onboarding-container {
537
+ min-height: auto;
538
+ padding: 0;
539
+ }
540
+
541
+ .onboarding-modal-content .onboarding-card {
542
+ margin: 0;
543
+ }
544
+
545
+ /* OTP Verification Screen */
546
+ .onboarding-otp-verification {
547
+ display: flex;
548
+ flex-direction: column;
549
+ align-items: center;
550
+ text-align: center;
551
+ width: 100%;
552
+ }
553
+
554
+ .onboarding-otp-icon-container {
555
+ width: 72px;
556
+ height: 72px;
557
+ border-radius: 50%;
558
+ display: flex;
559
+ align-items: center;
560
+ justify-content: center;
561
+ margin-bottom: 20px;
562
+ position: relative;
563
+ }
564
+
565
+ .onboarding-theme-light .onboarding-otp-icon-container {
566
+ background: linear-gradient(135deg, rgba(17, 24, 39, 0.1) 0%, rgba(17, 24, 39, 0.05) 100%);
567
+ }
568
+
569
+ .onboarding-theme-dark .onboarding-otp-icon-container {
570
+ background: linear-gradient(135deg, rgba(156, 163, 175, 0.2) 0%, rgba(156, 163, 175, 0.1) 100%);
571
+ }
572
+
573
+ .onboarding-otp-icon-inner {
574
+ width: 48px;
575
+ height: 48px;
576
+ background-color: #dc2626;
577
+ border-radius: 10px;
578
+ display: flex;
579
+ align-items: center;
580
+ justify-content: center;
581
+ }
582
+
583
+ .onboarding-otp-icon {
584
+ width: 24px;
585
+ height: 24px;
586
+ color: #ffffff;
587
+ }
588
+
589
+ .onboarding-otp-title {
590
+ font-size: 22px;
591
+ font-weight: 600;
592
+ margin: 0 0 12px 0;
593
+ color: inherit;
594
+ line-height: 1.4;
595
+ letter-spacing: -0.01em;
596
+ }
597
+
598
+ .onboarding-theme-light .onboarding-otp-title {
599
+ color: #111827;
600
+ }
601
+
602
+ .onboarding-theme-dark .onboarding-otp-title {
603
+ color: #ffffff;
604
+ }
605
+
606
+ .onboarding-otp-instruction {
607
+ font-size: 14px;
608
+ color: #6b7280;
609
+ margin: 0 0 4px 0;
610
+ line-height: 1.5;
611
+ font-weight: 400;
612
+ }
613
+
614
+ .onboarding-theme-dark .onboarding-otp-instruction {
615
+ color: #9ca3af;
616
+ }
617
+
618
+ .onboarding-otp-email {
619
+ font-size: 14px;
620
+ font-weight: 600;
621
+ color: inherit;
622
+ margin: 0 0 24px 0;
623
+ line-height: 1.5;
624
+ }
625
+
626
+ .onboarding-theme-light .onboarding-otp-email {
627
+ color: #111827;
628
+ }
629
+
630
+ .onboarding-theme-dark .onboarding-otp-email {
631
+ color: #ffffff;
632
+ }
633
+
634
+ .onboarding-otp-inputs-container {
635
+ display: flex;
636
+ gap: 10px;
637
+ justify-content: center;
638
+ margin-bottom: 24px;
639
+ width: 100%;
640
+ }
641
+
642
+ .onboarding-otp-input {
643
+ width: 44px;
644
+ height: 52px;
645
+ text-align: center;
646
+ font-size: 20px;
647
+ font-weight: 600;
648
+ border: 1.5px solid #e5e7eb;
649
+ border-radius: 8px;
650
+ background-color: inherit;
651
+ color: inherit;
652
+ transition: all 0.15s ease;
653
+ box-sizing: border-box;
654
+ line-height: 1;
655
+ }
656
+
657
+ .onboarding-theme-light .onboarding-otp-input {
658
+ background-color: #ffffff;
659
+ border-color: #e5e7eb;
660
+ }
661
+
662
+ .onboarding-otp-input:focus {
663
+ outline: none;
664
+ }
665
+
666
+ .onboarding-theme-light .onboarding-otp-input:focus {
667
+ border-color: #111827;
668
+ box-shadow: 0 0 0 3px rgba(17, 24, 39, 0.1);
669
+ background-color: #ffffff;
670
+ }
671
+
672
+ .onboarding-theme-dark .onboarding-otp-input {
673
+ border-color: #4b5563;
674
+ background-color: #374151;
675
+ }
676
+
677
+ .onboarding-theme-dark .onboarding-otp-input:focus {
678
+ border-color: #9ca3af;
679
+ box-shadow: 0 0 0 3px rgba(156, 163, 175, 0.2);
680
+ background-color: #4b5563;
681
+ }
682
+
683
+ .onboarding-otp-resend {
684
+ text-align: center;
685
+ margin-top: 20px;
686
+ line-height: 1.5;
687
+ }
688
+
689
+ .onboarding-otp-resend-text {
690
+ font-size: 13px;
691
+ color: #6b7280;
692
+ margin: 0;
693
+ line-height: 1.5;
694
+ font-weight: 400;
695
+ }
696
+
697
+ .onboarding-theme-dark .onboarding-otp-resend-text {
698
+ color: #9ca3af;
699
+ }
700
+
701
+ .onboarding-otp-resend-link {
702
+ color: #dc2626;
703
+ text-decoration: underline;
704
+ cursor: pointer;
705
+ font-weight: 500;
706
+ transition: color 0.15s ease;
707
+ font-size: 13px;
708
+ }
709
+
710
+ .onboarding-otp-resend-link:hover:not(:disabled) {
711
+ color: #b91c1c;
712
+ }
713
+
714
+ .onboarding-otp-resend-link:disabled {
715
+ color: #9ca3af;
716
+ cursor: not-allowed;
717
+ text-decoration: none;
718
+ }
719
+
720
+ .onboarding-theme-dark .onboarding-otp-resend-link:disabled {
721
+ color: #6b7280;
722
+ }
723
+
724
+ .onboarding-otp-verification .onboarding-error {
725
+ margin-bottom: 16px;
726
+ }
727
+
@@ -0,0 +1,15 @@
1
+ /**
2
+ * OnboardingUI React Component
3
+ * Pure React implementation of OnboardingUI
4
+ */
5
+ import React from 'react';
6
+ import type { OnboardingUIConfig } from 'signer-test-sdk-core';
7
+ import './OnboardingUI.css';
8
+ export interface OnboardingUIReactProps {
9
+ config?: Partial<OnboardingUIConfig>;
10
+ modal?: boolean;
11
+ onClose?: () => void;
12
+ externalWalletsEnabled?: boolean;
13
+ availableConnectors?: any[];
14
+ }
15
+ export declare const OnboardingUIReact: React.FC<OnboardingUIReactProps>;