signer-test-sdk-react 0.0.14 → 0.0.15

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.
@@ -94,43 +94,6 @@
94
94
  transform: scale(0.95);
95
95
  }
96
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
97
  /* Modal container adjustments */
135
98
  .onboarding-modal-content .onboarding-container {
136
99
  min-height: auto;
@@ -150,17 +113,32 @@
150
113
  .onboarding-card {
151
114
  width: 100%;
152
115
  max-width: 420px;
153
- padding: 40px;
116
+ padding: 20px;
154
117
  border-radius: 16px;
155
118
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12), 0 2px 8px rgba(0, 0, 0, 0.08);
156
119
  background-color: inherit;
157
120
  position: relative;
158
121
  overflow-y: auto;
159
- overflow-x: hidden;
122
+ overflow-x: visible;
160
123
  max-height: calc(100vh - 32px);
161
124
  overscroll-behavior: contain;
162
125
  }
163
126
 
127
+ .onboarding-card.onboarding-card-otp,
128
+ .onboarding-card.onboarding-otp-active {
129
+ overflow-x: visible;
130
+ overflow-y: visible;
131
+ }
132
+
133
+ .onboarding-card.onboarding-card-otp .onboarding-otp-back-button,
134
+ .onboarding-card.onboarding-otp-active .onboarding-otp-back-button {
135
+ position: absolute !important;
136
+ top: 0 !important;
137
+ left: 0 !important;
138
+ right: auto !important;
139
+ bottom: auto !important;
140
+ }
141
+
164
142
  .onboarding-card::-webkit-scrollbar {
165
143
  width: 6px;
166
144
  }
@@ -180,7 +158,7 @@
180
158
 
181
159
  @media (max-width: 480px) {
182
160
  .onboarding-card {
183
- padding: 32px 24px;
161
+ padding: 24px 20px;
184
162
  border-radius: 0;
185
163
  max-height: 100vh;
186
164
  }
@@ -200,14 +178,14 @@
200
178
 
201
179
  .onboarding-header {
202
180
  text-align: center;
203
- margin-bottom: 32px;
181
+ margin-bottom: 20px;
204
182
  }
205
183
 
206
184
  .onboarding-logo-section {
207
185
  display: flex;
208
186
  flex-direction: column;
209
187
  align-items: center;
210
- margin-bottom: 24px;
188
+ margin-bottom: 12px;
211
189
  }
212
190
 
213
191
  .onboarding-logo-container {
@@ -231,9 +209,9 @@
231
209
  margin: 0;
232
210
  color: inherit;
233
211
  text-align: center;
234
- margin-bottom: 28px;
212
+ margin-bottom: 4px;
235
213
  letter-spacing: -0.01em;
236
- line-height: 1.4;
214
+ line-height: 1.2;
237
215
  }
238
216
 
239
217
  @media (max-width: 480px) {
@@ -256,7 +234,7 @@
256
234
  }
257
235
 
258
236
  .onboarding-input-group {
259
- margin-bottom: 16px;
237
+ margin-bottom: 8px;
260
238
  }
261
239
 
262
240
  .onboarding-input-label {
@@ -264,7 +242,7 @@
264
242
  font-size: 14px;
265
243
  font-weight: 500;
266
244
  color: #374151;
267
- margin-bottom: 8px;
245
+ margin-bottom: 4px;
268
246
  letter-spacing: -0.01em;
269
247
  line-height: 1.5;
270
248
  text-align: left;
@@ -315,8 +293,28 @@
315
293
  border-color: #e5e7eb;
316
294
  }
317
295
 
296
+ .onboarding-theme-light .onboarding-input:-webkit-autofill,
297
+ .onboarding-theme-light .onboarding-input:-webkit-autofill:hover,
298
+ .onboarding-theme-light .onboarding-input:-webkit-autofill:focus,
299
+ .onboarding-theme-light .onboarding-input:-webkit-autofill:active {
300
+ -webkit-box-shadow: 0 0 0 30px #ffffff inset !important;
301
+ -webkit-text-fill-color: #111827 !important;
302
+ transition: background-color 5000s ease-in-out 0s;
303
+ }
304
+
318
305
  .onboarding-theme-dark .onboarding-input {
319
306
  background-color: #374151;
307
+ color: #ffffff;
308
+ }
309
+
310
+ .onboarding-theme-dark .onboarding-input:-webkit-autofill,
311
+ .onboarding-theme-dark .onboarding-input:-webkit-autofill:hover,
312
+ .onboarding-theme-dark .onboarding-input:-webkit-autofill:focus,
313
+ .onboarding-theme-dark .onboarding-input:-webkit-autofill:active {
314
+ -webkit-box-shadow: 0 0 0 30px #374151 inset !important;
315
+ -webkit-text-fill-color: #ffffff !important;
316
+ color: #ffffff !important;
317
+ transition: background-color 5000s ease-in-out 0s;
320
318
  }
321
319
 
322
320
  .onboarding-input:focus {
@@ -337,7 +335,47 @@
337
335
  .onboarding-theme-dark .onboarding-input:focus {
338
336
  border-color: #9ca3af;
339
337
  box-shadow: 0 0 0 3px rgba(156, 163, 175, 0.2);
340
- background-color: #4b5563;
338
+ background-color: #374151;
339
+ }
340
+
341
+ .onboarding-input-arrow-button {
342
+ position: absolute;
343
+ right: 8px;
344
+ top: 50%;
345
+ transform: translateY(-50%);
346
+ width: 32px;
347
+ height: 32px;
348
+ border: none;
349
+ background: transparent;
350
+ display: flex;
351
+ align-items: center;
352
+ justify-content: center;
353
+ cursor: pointer;
354
+ color: #9ca3af;
355
+ transition: all 0.2s ease;
356
+ border-radius: 6px;
357
+ padding: 0;
358
+ z-index: 2;
359
+ }
360
+
361
+ .onboarding-input-arrow-button:hover:not(:disabled) {
362
+ color: #111827;
363
+ background-color: rgba(0, 0, 0, 0.05);
364
+ }
365
+
366
+ .onboarding-theme-dark .onboarding-input-arrow-button:hover:not(:disabled) {
367
+ color: #ffffff;
368
+ background-color: rgba(255, 255, 255, 0.1);
369
+ }
370
+
371
+ .onboarding-input-arrow-button:disabled {
372
+ opacity: 0.3;
373
+ cursor: not-allowed;
374
+ }
375
+
376
+ .onboarding-input-arrow-icon {
377
+ width: 20px;
378
+ height: 20px;
341
379
  }
342
380
 
343
381
  .onboarding-input:disabled {
@@ -346,16 +384,21 @@
346
384
  }
347
385
 
348
386
  .onboarding-error {
349
- padding: 12px;
350
- margin-bottom: 16px;
351
- background-color: #fee2e2;
387
+ padding: 0;
388
+ margin-top: 8px;
389
+ margin-bottom: 12px;
390
+ background-color: transparent !important;
352
391
  color: #dc2626;
353
- border-radius: 8px;
354
- font-size: 14px;
392
+ font-size: 13px;
393
+ text-align: center;
394
+ width: 100%;
395
+ font-weight: 500;
396
+ line-height: 1.4;
397
+ word-break: break-word;
355
398
  }
356
399
 
357
400
  .onboarding-theme-dark .onboarding-error {
358
- background-color: #7f1d1d;
401
+ background-color: transparent !important;
359
402
  color: #fca5a5;
360
403
  }
361
404
 
@@ -372,7 +415,7 @@
372
415
  align-items: center;
373
416
  justify-content: center;
374
417
  gap: 8px;
375
- margin-bottom: 12px;
418
+ margin-bottom: 6px;
376
419
  letter-spacing: 0;
377
420
  line-height: 1.5;
378
421
  box-shadow: none;
@@ -515,7 +558,7 @@
515
558
  .onboarding-divider {
516
559
  display: flex;
517
560
  align-items: center;
518
- margin: 20px 0;
561
+ margin: 10px 0;
519
562
  position: relative;
520
563
  }
521
564
 
@@ -617,47 +660,140 @@
617
660
  width: 100%;
618
661
  visibility: visible;
619
662
  opacity: 1;
663
+ position: relative;
664
+ padding-top: 0;
665
+ }
666
+
667
+ .onboarding-otp-back-button {
668
+ position: absolute;
669
+ top: 0;
670
+ left: 0;
671
+ width: 40px;
672
+ height: 40px;
673
+ min-width: 40px;
674
+ min-height: 40px;
675
+ display: flex !important;
676
+ align-items: center;
677
+ justify-content: center;
678
+ background-color: transparent !important;
679
+ border: none;
680
+ border-radius: 8px;
681
+ cursor: pointer;
682
+ transition: all 0.2s ease;
683
+ color: #6b7280 !important;
684
+ padding: 0;
685
+ margin: 0;
686
+ z-index: 100;
687
+ box-shadow: none !important;
688
+ visibility: visible !important;
689
+ opacity: 1 !important;
690
+ pointer-events: auto !important;
691
+ }
692
+
693
+ .onboarding-otp-back-button svg {
694
+ width: 20px;
695
+ height: 20px;
696
+ flex-shrink: 0;
697
+ }
698
+
699
+ @media (max-width: 480px) {
700
+ .onboarding-otp-back-button {
701
+ width: 36px;
702
+ height: 36px;
703
+ }
704
+
705
+ .onboarding-otp-back-button svg {
706
+ width: 18px;
707
+ height: 18px;
708
+ }
709
+ }
710
+
711
+ .onboarding-otp-back-button:hover:not(:disabled) {
712
+ background-color: #f3f4f6 !important;
713
+ color: #111827 !important;
714
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05) !important;
715
+ }
716
+
717
+ .onboarding-otp-back-button:active:not(:disabled) {
718
+ background-color: #e5e7eb !important;
719
+ transform: scale(0.95);
720
+ }
721
+
722
+ .onboarding-otp-back-button:disabled {
723
+ opacity: 0.3;
724
+ cursor: not-allowed;
725
+ }
726
+
727
+ .onboarding-theme-dark .onboarding-otp-back-button {
728
+ background-color: transparent !important;
729
+ color: #9ca3af !important;
730
+ box-shadow: none !important;
731
+ }
732
+
733
+ .onboarding-theme-dark .onboarding-otp-back-button:hover:not(:disabled) {
734
+ background-color: rgba(255, 255, 255, 0.1) !important;
735
+ color: #ffffff !important;
736
+ }
737
+
738
+ .onboarding-theme-dark .onboarding-otp-back-button:active:not(:disabled) {
739
+ background-color: rgba(255, 255, 255, 0.15) !important;
620
740
  }
621
741
 
622
742
  .onboarding-otp-icon-container {
623
- width: 72px;
624
- height: 72px;
743
+ width: 64px;
744
+ height: 64px;
625
745
  border-radius: 50%;
626
746
  display: flex;
627
747
  align-items: center;
628
748
  justify-content: center;
629
- margin-bottom: 20px;
749
+ margin-bottom: 24px;
630
750
  position: relative;
751
+ background: transparent;
752
+ border: 3px solid #eef2ff;
753
+ }
754
+
755
+ .onboarding-otp-icon-container::after {
756
+ content: '';
757
+ position: absolute;
758
+ top: -3px;
759
+ left: -3px;
760
+ right: -3px;
761
+ bottom: -3px;
762
+ border-radius: 50%;
763
+ border: 3px solid transparent;
764
+ border-top-color: #363ff9;
765
+ animation: onboarding-spin 2s linear infinite;
631
766
  }
632
767
 
633
- .onboarding-theme-light .onboarding-otp-icon-container {
634
- background: linear-gradient(135deg, rgba(17, 24, 39, 0.1) 0%, rgba(17, 24, 39, 0.05) 100%);
768
+ @keyframes onboarding-spin {
769
+ 0% { transform: rotate(0deg); }
770
+ 100% { transform: rotate(360deg); }
635
771
  }
636
772
 
637
773
  .onboarding-theme-dark .onboarding-otp-icon-container {
638
- background: linear-gradient(135deg, rgba(156, 163, 175, 0.2) 0%, rgba(156, 163, 175, 0.1) 100%);
774
+ border-color: rgba(156, 163, 175, 0.2);
639
775
  }
640
776
 
641
777
  .onboarding-otp-icon-inner {
642
- width: 48px;
643
- height: 48px;
644
- background-color: #dc2626;
645
- border-radius: 10px;
778
+ width: 100%;
779
+ height: 100%;
780
+ background-color: transparent;
646
781
  display: flex;
647
782
  align-items: center;
648
783
  justify-content: center;
784
+ z-index: 1;
649
785
  }
650
786
 
651
787
  .onboarding-otp-icon {
652
- width: 24px;
653
- height: 24px;
654
- color: #ffffff;
788
+ width: 28px;
789
+ height: 28px;
790
+ color: #363ff9;
655
791
  }
656
792
 
657
793
  .onboarding-otp-title {
658
794
  font-size: 22px;
659
795
  font-weight: 600;
660
- margin: 0 0 12px 0;
796
+ margin: 0 0 16px 0;
661
797
  color: inherit;
662
798
  line-height: 1.4;
663
799
  letter-spacing: -0.01em;
@@ -674,7 +810,7 @@
674
810
  .onboarding-otp-instruction {
675
811
  font-size: 14px;
676
812
  color: #6b7280;
677
- margin: 0 0 4px 0;
813
+ margin: 0 0 8px 0;
678
814
  line-height: 1.5;
679
815
  font-weight: 400;
680
816
  }
@@ -684,10 +820,10 @@
684
820
  }
685
821
 
686
822
  .onboarding-otp-email {
687
- font-size: 14px;
823
+ font-size: 15px;
688
824
  font-weight: 600;
689
825
  color: inherit;
690
- margin: 0 0 24px 0;
826
+ margin: 0 0 32px 0;
691
827
  line-height: 1.5;
692
828
  }
693
829
 
@@ -712,6 +848,16 @@
712
848
  flex-wrap: nowrap;
713
849
  }
714
850
 
851
+ .onboarding-otp-verification .onboarding-form {
852
+ width: 100%;
853
+ margin-top: 0;
854
+ }
855
+
856
+ .onboarding-otp-verification .onboarding-button {
857
+ margin-top: 0;
858
+ margin-bottom: 0;
859
+ }
860
+
715
861
  .onboarding-otp-input {
716
862
  width: 44px !important;
717
863
  min-width: 44px !important;
@@ -772,7 +918,7 @@
772
918
 
773
919
  .onboarding-otp-resend {
774
920
  text-align: center;
775
- margin-top: 20px;
921
+ margin-top: 24px;
776
922
  line-height: 1.5;
777
923
  }
778
924
 
@@ -829,7 +975,9 @@
829
975
  }
830
976
 
831
977
  .onboarding-otp-verification .onboarding-error {
832
- margin-bottom: 16px;
978
+ margin-bottom: 24px;
979
+ margin-top: 0;
980
+ text-align: center;
833
981
  }
834
982
 
835
983
  /* Additional Responsive Styles */
@@ -871,7 +1019,9 @@
871
1019
 
872
1020
  .onboarding-otp-input {
873
1021
  width: 44px;
1022
+ min-width: 44px;
874
1023
  height: 56px;
1024
+ min-height: 56px;
875
1025
  font-size: 20px;
876
1026
  }
877
1027
 
@@ -900,7 +1050,9 @@
900
1050
 
901
1051
  .onboarding-otp-input {
902
1052
  width: 40px;
903
- height: 52px;
1053
+ min-width: 40px;
1054
+ height: 56px;
1055
+ min-height: 56px;
904
1056
  font-size: 18px;
905
1057
  }
906
1058
  }
@@ -2,9 +2,9 @@
2
2
  * OnboardingUI React Component
3
3
  * Pure React implementation of OnboardingUI
4
4
  */
5
- import React from 'react';
6
- import type { OnboardingUIConfig } from 'signer-test-sdk-core';
7
- import './OnboardingUI.css';
5
+ import React from "react";
6
+ import type { OnboardingUIConfig } from "signer-test-sdk-core";
7
+ import "./OnboardingUI.css";
8
8
  export interface OnboardingUIReactProps {
9
9
  config?: Partial<OnboardingUIConfig>;
10
10
  modal?: boolean;