@joclaim/browser-extension-sdk 0.3.2 → 0.3.4

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.
@@ -0,0 +1,666 @@
1
+ .reclaim-popup {
2
+ position: fixed;
3
+ bottom: 20px;
4
+ right: 20px;
5
+ width: 320px;
6
+ max-height: 85vh;
7
+ background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
8
+ color: #ffffff;
9
+ border-radius: 16px;
10
+ padding: 0;
11
+ font-family:
12
+ "SF Pro Display",
13
+ -apple-system,
14
+ BlinkMacSystemFont,
15
+ "Segoe UI",
16
+ Roboto,
17
+ Oxygen,
18
+ Ubuntu,
19
+ Cantarell,
20
+ "Open Sans",
21
+ "Helvetica Neue",
22
+ sans-serif;
23
+ z-index: 9999;
24
+ box-shadow:
25
+ 0 12px 32px rgba(0, 0, 0, 0.4),
26
+ 0 0 0 1px rgba(255, 255, 255, 0.1);
27
+ font-size: 13px;
28
+ opacity: 1;
29
+ transform: translateY(0);
30
+ will-change: transform, opacity;
31
+ backdrop-filter: blur(20px);
32
+ -webkit-backdrop-filter: blur(20px);
33
+ border: 1px solid rgba(255, 255, 255, 0.1);
34
+ overflow: hidden;
35
+ }
36
+
37
+ .reclaim-popup::before {
38
+ content: "";
39
+ position: absolute;
40
+ top: 0;
41
+ left: 0;
42
+ right: 0;
43
+ height: 1px;
44
+ background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
45
+ }
46
+
47
+ .reclaim-popup.dragging {
48
+ cursor: grabbing;
49
+ user-select: none;
50
+ box-shadow:
51
+ 0 20px 48px rgba(0, 0, 0, 0.5),
52
+ 0 0 0 1px rgba(255, 255, 255, 0.15);
53
+ transform: scale(1.01);
54
+ }
55
+
56
+ .reclaim-popup-header {
57
+ display: flex;
58
+ align-items: center;
59
+ padding: 12px 18px 8px 18px;
60
+ margin-bottom: 0;
61
+ cursor: grab;
62
+ user-select: none;
63
+ border-radius: 16px 16px 0 0;
64
+ transition: all 0.2s ease;
65
+ background: linear-gradient(135deg, rgba(255, 255, 255, 0.05) 0%, rgba(255, 255, 255, 0.02) 100%);
66
+ border-bottom: 1px solid rgba(255, 255, 255, 0.05);
67
+ }
68
+
69
+ .reclaim-popup-header:hover {
70
+ background: linear-gradient(135deg, rgba(255, 255, 255, 0.08) 0%, rgba(255, 255, 255, 0.04) 100%);
71
+ }
72
+
73
+ .reclaim-popup-header:active {
74
+ cursor: grabbing;
75
+ }
76
+
77
+ .reclaim-popup-content {
78
+ padding: 8px 18px 16px 18px;
79
+ display: flex;
80
+ flex-direction: column;
81
+ justify-content: center;
82
+ min-height: 280px;
83
+ max-height: 400px;
84
+ overflow-y: auto;
85
+ }
86
+
87
+ .reclaim-popup-logo {
88
+ width: 24px;
89
+ height: 24px;
90
+ margin-right: 10px;
91
+ pointer-events: none;
92
+ border-radius: 4px;
93
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
94
+ }
95
+
96
+ .reclaim-popup-title {
97
+ margin: 0;
98
+ font-size: 16px;
99
+ font-weight: 700;
100
+ pointer-events: none;
101
+ background: linear-gradient(135deg, #ffffff 0%, #e0e0e0 100%);
102
+ -webkit-background-clip: text;
103
+ -webkit-text-fill-color: transparent;
104
+ background-clip: text;
105
+ letter-spacing: -0.01em;
106
+ }
107
+
108
+ /* Compact info grid */
109
+ .reclaim-info-grid {
110
+ display: flex;
111
+ flex-direction: column;
112
+ gap: 8px;
113
+ margin-bottom: 12px;
114
+ }
115
+
116
+ .reclaim-info-item {
117
+ display: flex;
118
+ align-items: center;
119
+ justify-content: space-between;
120
+ padding: 10px 12px;
121
+ background: rgba(255, 255, 255, 0.02);
122
+ border-radius: 8px;
123
+ border: 1px solid rgba(255, 255, 255, 0.05);
124
+ transition: all 0.2s ease;
125
+ }
126
+
127
+ .reclaim-info-item:hover {
128
+ background: rgba(255, 255, 255, 0.04);
129
+ border-color: rgba(255, 255, 255, 0.08);
130
+ }
131
+
132
+ .reclaim-info-label {
133
+ color: rgba(255, 255, 255, 0.6);
134
+ font-size: 9px;
135
+ font-weight: 500;
136
+ text-transform: uppercase;
137
+ letter-spacing: 0.5px;
138
+ flex-shrink: 0;
139
+ margin-right: 8px;
140
+ width: 90px;
141
+ }
142
+
143
+ .reclaim-info-value {
144
+ color: #ffffff;
145
+ font-size: 13px;
146
+ font-weight: 600;
147
+ text-align: right;
148
+ line-height: 1.3;
149
+ max-width: 180px;
150
+ overflow: hidden;
151
+ text-overflow: ellipsis;
152
+ white-space: nowrap;
153
+ cursor: pointer;
154
+ transition: all 0.2s ease;
155
+ position: relative;
156
+ flex: 1;
157
+ }
158
+
159
+ .reclaim-info-value:hover {
160
+ color: #3b82f6;
161
+ }
162
+
163
+ .reclaim-info-value.expandable {
164
+ cursor: pointer;
165
+ }
166
+
167
+ .reclaim-info-value.expanded {
168
+ white-space: normal;
169
+ word-break: break-word;
170
+ text-overflow: clip;
171
+ overflow: visible;
172
+ max-width: none;
173
+ }
174
+
175
+ .reclaim-info-tooltip {
176
+ position: absolute;
177
+ background: linear-gradient(135deg, #1f2937 0%, #111827 100%);
178
+ color: #ffffff;
179
+ padding: 8px 12px;
180
+ border-radius: 8px;
181
+ font-size: 12px;
182
+ font-weight: 500;
183
+ white-space: normal;
184
+ word-break: break-word;
185
+ max-width: 280px;
186
+ right: 0;
187
+ top: 100%;
188
+ margin-top: 8px;
189
+ opacity: 0;
190
+ pointer-events: none;
191
+ transition: all 0.2s ease;
192
+ z-index: 10001;
193
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
194
+ border: 1px solid rgba(255, 255, 255, 0.1);
195
+ }
196
+
197
+ .reclaim-info-tooltip.show {
198
+ opacity: 1;
199
+ pointer-events: auto;
200
+ }
201
+
202
+ .reclaim-info-tooltip::before {
203
+ content: "";
204
+ position: absolute;
205
+ top: -6px;
206
+ right: 12px;
207
+ width: 0;
208
+ height: 0;
209
+ border-left: 6px solid transparent;
210
+ border-right: 6px solid transparent;
211
+ border-bottom: 6px solid #1f2937;
212
+ }
213
+
214
+ /* Session section */
215
+ .reclaim-session-section {
216
+ display: flex;
217
+ align-items: center;
218
+ justify-content: space-between;
219
+ padding: 12px;
220
+ background: linear-gradient(135deg, rgba(16, 185, 129, 0.08) 0%, rgba(5, 150, 105, 0.04) 100%);
221
+ border-radius: 8px;
222
+ border: 1px solid rgba(16, 185, 129, 0.15);
223
+ margin-bottom: 12px;
224
+ position: relative;
225
+ }
226
+
227
+ .reclaim-session-content {
228
+ display: flex;
229
+ flex-direction: column;
230
+ flex: 1;
231
+ min-width: 0;
232
+ }
233
+
234
+ .reclaim-session-content .reclaim-info-label {
235
+ margin-bottom: 4px;
236
+ }
237
+
238
+ .reclaim-session-content .reclaim-info-value {
239
+ text-align: left;
240
+ font-size: 12px;
241
+ font-family: "SF Mono", "Monaco", "Menlo", monospace;
242
+ word-break: break-all;
243
+ }
244
+
245
+ .reclaim-copy-icon {
246
+ cursor: pointer;
247
+ padding: 6px;
248
+ border-radius: 6px;
249
+ transition: all 0.2s ease;
250
+ display: flex;
251
+ align-items: center;
252
+ justify-content: center;
253
+ background: rgba(255, 255, 255, 0.05);
254
+ border: 1px solid rgba(255, 255, 255, 0.1);
255
+ margin-left: 8px;
256
+ flex-shrink: 0;
257
+ }
258
+
259
+ .reclaim-copy-icon:hover {
260
+ background: rgba(255, 255, 255, 0.1);
261
+ border-color: rgba(255, 255, 255, 0.2);
262
+ transform: translateY(-1px);
263
+ }
264
+
265
+ .reclaim-copy-icon:active {
266
+ transform: translateY(0);
267
+ }
268
+
269
+ .reclaim-copy-icon svg {
270
+ width: 14px;
271
+ height: 14px;
272
+ fill: rgba(255, 255, 255, 0.8);
273
+ transition: fill 0.2s ease;
274
+ }
275
+
276
+ .reclaim-copy-icon:hover svg {
277
+ fill: #ffffff;
278
+ }
279
+
280
+ .reclaim-copy-feedback {
281
+ position: absolute;
282
+ background: linear-gradient(135deg, #10b981 0%, #059669 100%);
283
+ color: #ffffff;
284
+ padding: 4px 8px;
285
+ border-radius: 6px;
286
+ font-size: 11px;
287
+ font-weight: 500;
288
+ transform: translateX(-50%);
289
+ white-space: nowrap;
290
+ pointer-events: none;
291
+ opacity: 0;
292
+ transition: all 0.2s ease;
293
+ z-index: 10000;
294
+ box-shadow: 0 4px 12px rgba(16, 185, 129, 0.3);
295
+ top: -32px;
296
+ left: 50%;
297
+ }
298
+
299
+ .reclaim-copy-feedback.show {
300
+ opacity: 1;
301
+ transform: translateX(-50%) translateY(-2px);
302
+ }
303
+
304
+ /* Combined verification container */
305
+ .reclaim-verification-container {
306
+ margin-bottom: 4px;
307
+ transform: translateY(0);
308
+ opacity: 1;
309
+ will-change: transform, opacity;
310
+ transition: all 0.3s ease;
311
+ }
312
+
313
+ /* Compact steps */
314
+ .reclaim-steps-container {
315
+ padding: 12px;
316
+ background: linear-gradient(135deg, rgba(59, 130, 246, 0.08) 0%, rgba(37, 99, 235, 0.04) 100%);
317
+ border-radius: 10px;
318
+ border: 1px solid rgba(59, 130, 246, 0.15);
319
+ transform: translateY(0);
320
+ opacity: 1;
321
+ will-change: transform, opacity;
322
+ transition: all 0.3s ease;
323
+ }
324
+
325
+ .reclaim-steps-container.hidden {
326
+ display: none;
327
+ }
328
+
329
+ .reclaim-steps-header {
330
+ display: flex;
331
+ align-items: center;
332
+ margin-bottom: 8px;
333
+ }
334
+
335
+ .reclaim-steps-icon {
336
+ font-size: 12px;
337
+ margin-right: 6px;
338
+ }
339
+
340
+ .reclaim-steps-title {
341
+ font-size: 13px;
342
+ font-weight: 600;
343
+ color: #ffffff;
344
+ }
345
+
346
+ .reclaim-steps-list {
347
+ display: flex;
348
+ flex-direction: column;
349
+ gap: 6px;
350
+ }
351
+
352
+ .reclaim-step {
353
+ display: flex;
354
+ align-items: center;
355
+ padding: 8px 10px;
356
+ background: rgba(255, 255, 255, 0.02);
357
+ border-radius: 6px;
358
+ border: 1px solid rgba(255, 255, 255, 0.05);
359
+ transition: all 0.2s ease;
360
+ }
361
+
362
+ .reclaim-step:hover {
363
+ background: rgba(255, 255, 255, 0.04);
364
+ border-color: rgba(255, 255, 255, 0.08);
365
+ }
366
+
367
+ .reclaim-step-number {
368
+ background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
369
+ color: white;
370
+ border-radius: 50%;
371
+ width: 18px;
372
+ height: 18px;
373
+ display: flex;
374
+ align-items: center;
375
+ justify-content: center;
376
+ font-size: 10px;
377
+ font-weight: 600;
378
+ margin-right: 8px;
379
+ flex-shrink: 0;
380
+ box-shadow: 0 2px 6px rgba(59, 130, 246, 0.3);
381
+ }
382
+
383
+ .reclaim-step-text {
384
+ font-size: 12px;
385
+ line-height: 1.4;
386
+ color: rgba(255, 255, 255, 0.9);
387
+ font-weight: 500;
388
+ }
389
+
390
+ /* Status container */
391
+ .reclaim-status-container {
392
+ padding: 12px;
393
+ background: linear-gradient(135deg, rgba(16, 185, 129, 0.08) 0%, rgba(5, 150, 105, 0.04) 100%);
394
+ border-radius: 10px;
395
+ border: 1px solid rgba(16, 185, 129, 0.15);
396
+ transform: translateY(8px);
397
+ opacity: 0;
398
+ will-change: transform, opacity;
399
+ transition: all 0.3s ease;
400
+ margin-top: 12px;
401
+ display: none;
402
+ }
403
+
404
+ .reclaim-status-container.visible {
405
+ transform: translateY(0);
406
+ opacity: 1;
407
+ display: block;
408
+ }
409
+
410
+ /* Adjust content spacing when status is visible */
411
+ .reclaim-popup-content:has(.reclaim-status-container.visible) {
412
+ justify-content: flex-start;
413
+ padding-top: 20px;
414
+ }
415
+
416
+ /* Alternative for browsers that don't support :has() */
417
+ .reclaim-popup-content.status-active {
418
+ justify-content: flex-start;
419
+ padding-top: 20px;
420
+ }
421
+
422
+ .reclaim-status-progress {
423
+ display: flex;
424
+ flex-direction: column;
425
+ margin-bottom: 10px;
426
+ }
427
+
428
+ .reclaim-progress-header {
429
+ display: flex;
430
+ justify-content: space-between;
431
+ align-items: center;
432
+ margin-bottom: 6px;
433
+ }
434
+
435
+ .reclaim-status-text {
436
+ font-size: 13px;
437
+ font-weight: 600;
438
+ color: #ffffff;
439
+ }
440
+
441
+ .reclaim-progress-counter {
442
+ font-size: 11px;
443
+ color: rgba(255, 255, 255, 0.7);
444
+ font-weight: 500;
445
+ padding: 2px 6px;
446
+ background: rgba(255, 255, 255, 0.1);
447
+ border-radius: 4px;
448
+ }
449
+
450
+ .reclaim-progress-bar-container {
451
+ height: 4px;
452
+ width: 100%;
453
+ background: rgba(255, 255, 255, 0.1);
454
+ border-radius: 2px;
455
+ overflow: hidden;
456
+ position: relative;
457
+ }
458
+
459
+ .reclaim-progress-bar-container::before {
460
+ content: "";
461
+ position: absolute;
462
+ top: 0;
463
+ left: 0;
464
+ height: 100%;
465
+ width: 100%;
466
+ background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
467
+ animation: reclaim-shimmer 2s infinite;
468
+ }
469
+
470
+ .reclaim-progress-bar {
471
+ height: 100%;
472
+ width: 0%;
473
+ background: linear-gradient(90deg, #3b82f6 0%, #06b6d4 100%);
474
+ border-radius: 2px;
475
+ transform: scaleX(0);
476
+ transform-origin: left;
477
+ will-change: transform;
478
+ transition: transform 0.3s ease;
479
+ position: relative;
480
+ overflow: hidden;
481
+ }
482
+
483
+ .reclaim-progress-bar::after {
484
+ content: "";
485
+ position: absolute;
486
+ top: 0;
487
+ left: 0;
488
+ height: 100%;
489
+ width: 100%;
490
+ background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
491
+ animation: reclaim-progress-shine 2s infinite;
492
+ }
493
+
494
+ .reclaim-progress-bar.success {
495
+ background: linear-gradient(90deg, #10b981 0%, #059669 100%);
496
+ }
497
+
498
+ .reclaim-progress-bar.error {
499
+ background: linear-gradient(90deg, #ef4444 0%, #dc2626 100%);
500
+ }
501
+
502
+ .reclaim-status-message {
503
+ margin-top: 8px;
504
+ font-size: 12px;
505
+ color: rgba(255, 255, 255, 0.8);
506
+ font-weight: 500;
507
+ line-height: 1.3;
508
+ }
509
+
510
+ .reclaim-status-icon {
511
+ display: flex;
512
+ justify-content: center;
513
+ margin: 8px 0;
514
+ }
515
+
516
+ .reclaim-icon-circle {
517
+ background: linear-gradient(135deg, #10b981 0%, #059669 100%);
518
+ border-radius: 50%;
519
+ width: 32px;
520
+ height: 32px;
521
+ display: flex;
522
+ justify-content: center;
523
+ align-items: center;
524
+ transition: all 0.3s ease;
525
+ box-shadow: 0 4px 12px rgba(16, 185, 129, 0.4);
526
+ animation: reclaim-success-pulse 2s infinite;
527
+ }
528
+
529
+ .reclaim-icon-circle.error {
530
+ background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
531
+ box-shadow: 0 4px 12px rgba(239, 68, 68, 0.4);
532
+ }
533
+
534
+ .reclaim-circular-loader {
535
+ display: flex;
536
+ justify-content: center;
537
+ align-items: center;
538
+ margin: 8px 0;
539
+ }
540
+
541
+ .reclaim-circular-loader svg {
542
+ width: 40px;
543
+ height: 40px;
544
+ animation: reclaim-rotate 2s linear infinite;
545
+ }
546
+
547
+ .reclaim-circular-loader circle {
548
+ stroke: url(#progressGradient);
549
+ stroke-width: 3;
550
+ stroke-dasharray: 150, 200;
551
+ stroke-dashoffset: -10;
552
+ stroke-linecap: round;
553
+ fill: none;
554
+ animation: reclaim-dash 1.5s ease-in-out infinite;
555
+ }
556
+
557
+ @keyframes reclaim-rotate {
558
+ 100% {
559
+ transform: rotate(360deg);
560
+ }
561
+ }
562
+
563
+ @keyframes reclaim-dash {
564
+ 0% {
565
+ stroke-dasharray: 1, 200;
566
+ stroke-dashoffset: 0;
567
+ }
568
+ 50% {
569
+ stroke-dasharray: 89, 200;
570
+ stroke-dashoffset: -35;
571
+ }
572
+ 100% {
573
+ stroke-dasharray: 89, 200;
574
+ stroke-dashoffset: -124;
575
+ }
576
+ }
577
+
578
+ @keyframes reclaim-shimmer {
579
+ 0% {
580
+ transform: translateX(-100%);
581
+ }
582
+ 100% {
583
+ transform: translateX(100%);
584
+ }
585
+ }
586
+
587
+ @keyframes reclaim-progress-shine {
588
+ 0% {
589
+ transform: translateX(-100%);
590
+ }
591
+ 100% {
592
+ transform: translateX(100%);
593
+ }
594
+ }
595
+
596
+ @keyframes reclaim-success-pulse {
597
+ 0% {
598
+ transform: scale(1);
599
+ }
600
+ 50% {
601
+ transform: scale(1.05);
602
+ }
603
+ 100% {
604
+ transform: scale(1);
605
+ }
606
+ }
607
+
608
+ @keyframes reclaim-appear {
609
+ 0% {
610
+ opacity: 0;
611
+ transform: translateY(20px) scale(0.95);
612
+ }
613
+ 100% {
614
+ opacity: 1;
615
+ transform: translateY(0) scale(1);
616
+ }
617
+ }
618
+
619
+ @keyframes reclaim-success-checkmark {
620
+ 0% {
621
+ stroke-dashoffset: 24;
622
+ }
623
+ 100% {
624
+ stroke-dashoffset: 0;
625
+ }
626
+ }
627
+
628
+ .reclaim-success-checkmark {
629
+ stroke-dasharray: 24;
630
+ stroke-dashoffset: 24;
631
+ animation: reclaim-success-checkmark 0.5s ease forwards;
632
+ }
633
+
634
+ /* For small screens */
635
+ @media (max-width: 400px) {
636
+ .reclaim-popup {
637
+ width: calc(100% - 24px);
638
+ bottom: 12px;
639
+ right: 12px;
640
+ left: 12px;
641
+ max-width: 100%;
642
+ max-height: 90vh;
643
+ }
644
+
645
+ .reclaim-popup-content {
646
+ min-height: 240px;
647
+ max-height: calc(90vh - 80px);
648
+ }
649
+
650
+ .reclaim-info-value {
651
+ max-width: 150px;
652
+ }
653
+
654
+ .reclaim-info-tooltip {
655
+ max-width: calc(100vw - 60px);
656
+ right: -20px;
657
+ }
658
+ }
659
+
660
+ /* Dark mode enhancements */
661
+ @media (prefers-color-scheme: dark) {
662
+ .reclaim-popup {
663
+ background: linear-gradient(135deg, #0f0f23 0%, #1a1a2e 100%);
664
+ border-color: rgba(255, 255, 255, 0.15);
665
+ }
666
+ }