@reevit/react 0.4.2 → 0.4.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.
package/dist/styles.css CHANGED
@@ -21,8 +21,8 @@
21
21
  --reevit-error: #dc2626;
22
22
  --reevit-warning: #f59e0b;
23
23
  --reevit-radius: 0.75rem;
24
- --reevit-radius-sm: 0.6rem;
25
- --reevit-radius-lg: 1rem;
24
+ --reevit-radius-sm: 0.5rem;
25
+ --reevit-radius-lg: 1.25rem;
26
26
  --reevit-font: 'Space Grotesk', 'Avenir Next', 'Segoe UI', sans-serif;
27
27
  --reevit-shadow: 0 30px 60px -30px rgba(15, 23, 42, 0.35);
28
28
  --reevit-shadow-sm: 0 12px 24px -18px rgba(15, 23, 42, 0.3);
@@ -98,12 +98,14 @@
98
98
  box-shadow: var(--reevit-shadow);
99
99
  width: 100%;
100
100
  max-width: 440px;
101
+ min-height: 380px;
101
102
  max-height: 90vh;
102
103
  overflow: hidden;
103
104
  display: flex;
104
105
  flex-direction: column;
105
106
  font-family: var(--reevit-font);
106
- animation: reevit-slide-up 0.25s cubic-bezier(0.22, 1, 0.36, 1);
107
+ animation: reevit-slide-up 0.3s cubic-bezier(0.22, 1, 0.36, 1);
108
+ transition: min-height 0.4s cubic-bezier(0.16, 1, 0.3, 1);
107
109
  }
108
110
 
109
111
  @keyframes reevit-slide-up {
@@ -317,85 +319,284 @@
317
319
  color: var(--reevit-primary);
318
320
  }
319
321
 
322
+
323
+ /* ===== ANIMATIONS ===== */
324
+ @keyframes reevit-fade-in {
325
+ from { opacity: 0; }
326
+ to { opacity: 1; }
327
+ }
328
+
329
+ @keyframes reevit-slide-up {
330
+ from {
331
+ opacity: 0;
332
+ transform: translateY(12px);
333
+ }
334
+ to {
335
+ opacity: 1;
336
+ transform: translateY(0);
337
+ }
338
+ }
339
+
340
+ @keyframes reevit-accordion-expand {
341
+ from {
342
+ opacity: 0;
343
+ max-height: 0;
344
+ transform: scale(0.98) translateY(-8px);
345
+ }
346
+ to {
347
+ opacity: 1;
348
+ max-height: 1000px;
349
+ transform: scale(1) translateY(0);
350
+ }
351
+ }
352
+
353
+ .reevit-animate-slide-up {
354
+ animation: reevit-slide-up 0.5s cubic-bezier(0.16, 1, 0.3, 1);
355
+ }
356
+
357
+ .reevit-animate-fade-in {
358
+ animation: reevit-fade-in 0.4s ease-out;
359
+ }
360
+
361
+ /* ===== PSP ACCORDION ===== */
362
+ .reevit-psp-accordion {
363
+ display: flex;
364
+ flex-direction: column;
365
+ gap: 0;
366
+ margin-bottom: 12px;
367
+ }
368
+
369
+ .reevit-psp-accordion:last-child {
370
+ margin-bottom: 0;
371
+ }
372
+
373
+ .reevit-psp-option {
374
+ display: flex;
375
+ align-items: center;
376
+ gap: 14px;
377
+ padding: 14px 16px;
378
+ border-radius: 12px;
379
+ border: 1px solid var(--reevit-border);
380
+ background: var(--reevit-surface);
381
+ cursor: pointer;
382
+ transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
383
+ text-align: left;
384
+ width: 100%;
385
+ position: relative;
386
+ }
387
+
388
+ .reevit-psp-option:hover:not(.reevit-psp-option--disabled):not(.reevit-psp-option--selected) {
389
+ border-color: color-mix(in srgb, var(--reevit-primary) 50%, var(--reevit-border));
390
+ background: color-mix(in srgb, var(--reevit-primary) 4%, var(--reevit-surface));
391
+ transform: translateY(-1px);
392
+ }
393
+
394
+ .reevit-psp-option--selected {
395
+ border-radius: 12px 12px 0 0 !important;
396
+ box-shadow: none;
397
+ border-color: color-mix(in srgb, var(--reevit-primary) 40%, var(--reevit-border));
398
+ border-bottom-color: transparent;
399
+ background: color-mix(in srgb, var(--reevit-primary) 5%, var(--reevit-surface));
400
+ position: relative;
401
+ z-index: 1;
402
+ }
403
+
404
+ .reevit-psp-accordion__content {
405
+ padding: 16px;
406
+ background: transparent;
407
+ border: 1px solid color-mix(in srgb, var(--reevit-primary) 40%, var(--reevit-border));
408
+ border-top: none;
409
+ border-radius: 0 0 12px 12px;
410
+ margin-top: 0;
411
+ overflow: hidden;
412
+ animation: reevit-accordion-expand 0.4s cubic-bezier(0.16, 1, 0.3, 1);
413
+ transform-origin: top;
414
+ position: relative;
415
+ }
416
+
320
417
  /* ===== PAYMENT METHOD SELECTOR ===== */
321
418
  .reevit-method-selector {
322
- margin-bottom: 20px;
419
+ margin-bottom: 24px;
420
+ width: 100%;
323
421
  }
324
422
 
325
423
  .reevit-method-selector__label {
326
- font-size: 12px;
327
- font-weight: 500;
424
+ font-size: 13px;
425
+ font-weight: 600;
328
426
  color: var(--reevit-text);
329
- margin-bottom: 12px;
330
- letter-spacing: 0.02em;
427
+ margin-bottom: 16px;
428
+ letter-spacing: -0.01em;
429
+ opacity: 0.8;
331
430
  }
332
431
 
333
- .reevit-method-selector__options {
432
+ .reevit-method-selector__options--grid {
433
+ display: grid;
434
+ grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
435
+ gap: 12px;
436
+ width: 100%;
437
+ }
438
+
439
+ .reevit-method-selector__options--list {
334
440
  display: flex;
335
441
  flex-direction: column;
336
- gap: 8px;
442
+ gap: 12px;
443
+ width: 100%;
337
444
  }
338
445
 
339
- .reevit-method-option {
446
+ /* Grid layout styles */
447
+ .reevit-method-option--grid {
340
448
  display: flex;
449
+ flex-direction: column;
341
450
  align-items: center;
342
- gap: 12px;
343
- padding: 14px 16px;
451
+ justify-content: center;
452
+ gap: 14px;
453
+ padding: 24px 16px;
454
+ min-height: 120px;
344
455
  background: var(--reevit-surface);
345
456
  border: 1px solid var(--reevit-border);
346
457
  border-radius: var(--reevit-radius);
347
458
  cursor: pointer;
348
- transition: all 0.15s ease;
349
- text-align: left;
459
+ transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
460
+ text-align: center;
350
461
  width: 100%;
351
462
  }
352
463
 
353
- .reevit-method-option:hover {
354
- border-color: color-mix(in srgb, var(--reevit-text) 25%, var(--reevit-border));
355
- box-shadow: var(--reevit-shadow-sm);
464
+ .reevit-method-option--grid:hover:not(.reevit-method-option--disabled) {
465
+ border-color: var(--reevit-primary);
466
+ transform: translateY(-3px);
467
+ box-shadow: 0 12px 24px -10px color-mix(in srgb, var(--reevit-primary) 30%, transparent);
356
468
  }
357
469
 
358
- .reevit-method-option--selected {
470
+ .reevit-method-option--grid.reevit-method-option--selected {
359
471
  border-color: var(--reevit-primary);
360
- box-shadow: 0 10px 18px -14px rgba(14, 165, 233, 0.6);
472
+ background: color-mix(in srgb, var(--reevit-primary) 8%, var(--reevit-surface));
473
+ border-width: 2px;
474
+ box-shadow: 0 8px 20px -6px color-mix(in srgb, var(--reevit-primary) 35%, transparent);
361
475
  }
362
476
 
363
- .reevit-method-option--disabled {
364
- opacity: 0.5;
365
- cursor: not-allowed;
477
+ .reevit-method-option--grid .reevit-method-option__icon-wrapper {
478
+ display: flex;
479
+ align-items: center;
480
+ justify-content: center;
481
+ width: 56px;
482
+ height: 56px;
483
+ background: color-mix(in srgb, var(--reevit-text) 5%, transparent);
484
+ border-radius: 18px;
485
+ transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
486
+ }
487
+
488
+ .reevit-method-option--grid:hover .reevit-method-option__icon-wrapper {
489
+ transform: scale(1.15) rotate(5deg);
490
+ background: color-mix(in srgb, var(--reevit-primary) 15%, transparent);
491
+ }
492
+
493
+ .reevit-method-option--grid.reevit-method-option--selected .reevit-method-option__icon-wrapper {
494
+ background: color-mix(in srgb, var(--reevit-primary) 25%, transparent);
495
+ color: var(--reevit-primary);
496
+ transform: scale(1.1);
497
+ }
498
+
499
+ .reevit-method-option--grid .reevit-method-option__icon {
500
+ font-size: 36px;
366
501
  }
367
502
 
368
- .reevit-method-option__icon {
369
- font-size: 20px;
503
+ .reevit-method-option--grid .reevit-method-option__label {
504
+ font-size: 13px;
505
+ font-weight: 800;
506
+ color: var(--reevit-text);
507
+ text-transform: uppercase;
508
+ letter-spacing: 0.12em;
509
+ }
510
+
511
+ /* List layout styles */
512
+ .reevit-method-option--list {
513
+ display: flex;
514
+ flex-direction: row;
515
+ align-items: center;
516
+ gap: 16px;
517
+ padding: 14px 16px;
518
+ background: color-mix(in srgb, var(--reevit-text) 4%, transparent);
519
+ border: 1px solid transparent;
520
+ border-radius: 12px;
521
+ box-shadow: none;
522
+ cursor: pointer;
523
+ transition: all 0.2s ease;
524
+ text-align: left;
525
+ width: 100%;
526
+ position: relative;
527
+ overflow: hidden;
528
+ }
529
+
530
+ .reevit-method-option--list:hover:not(.reevit-method-option--disabled) {
531
+ border-color: color-mix(in srgb, var(--reevit-primary) 60%, var(--reevit-border));
532
+ background: color-mix(in srgb, var(--reevit-primary) 8%, var(--reevit-surface));
533
+ transform: translateY(-1px);
534
+ box-shadow: 0 10px 24px -18px rgba(15, 23, 42, 0.35);
535
+ }
536
+
537
+ .reevit-method-option--list.reevit-method-option--selected {
538
+ border-color: var(--reevit-primary);
539
+ background: color-mix(in srgb, var(--reevit-primary) 12%, var(--reevit-surface));
540
+ box-shadow: 0 8px 20px -16px color-mix(in srgb, var(--reevit-primary) 40%, transparent);
541
+ }
542
+
543
+ .reevit-method-option--list .reevit-method-option__icon-wrapper {
544
+ display: flex;
545
+ align-items: center;
546
+ justify-content: center;
547
+ width: 50px;
548
+ height: 50px;
549
+ background: color-mix(in srgb, var(--reevit-text) 5%, transparent);
550
+ border-radius: 14px;
370
551
  flex-shrink: 0;
371
- opacity: 0.8;
552
+ transition: all 0.2s ease;
553
+ font-size: 24px;
554
+ }
555
+
556
+ .reevit-method-option--list:hover .reevit-method-option__icon-wrapper {
557
+ background: color-mix(in srgb, var(--reevit-primary) 12%, transparent);
558
+ transform: scale(1.03);
559
+ }
560
+
561
+ .reevit-method-option--list.reevit-method-option--selected .reevit-method-option__icon-wrapper {
562
+ background: color-mix(in srgb, var(--reevit-primary) 16%, transparent);
563
+ transform: scale(1.05);
372
564
  }
373
565
 
374
- .reevit-method-option__content {
566
+ .reevit-method-option--list .reevit-method-option__content {
375
567
  flex: 1;
376
568
  min-width: 0;
377
569
  }
378
570
 
379
- .reevit-method-option__label {
571
+ .reevit-method-option--list .reevit-method-option__label {
380
572
  display: block;
381
- font-size: 13px;
382
- font-weight: 600;
573
+ font-size: 16px;
574
+ font-weight: 700;
383
575
  color: var(--reevit-text);
576
+ margin-bottom: 4px;
384
577
  letter-spacing: -0.01em;
385
578
  }
386
579
 
387
- .reevit-method-option__description {
580
+ .reevit-method-option--list .reevit-method-option__description {
388
581
  display: block;
389
- font-size: 11px;
390
- color: var(--reevit-text-secondary);
391
- margin-top: 2px;
392
- letter-spacing: 0.01em;
582
+ font-size: 14px;
583
+ color: var(--reevit-text);
584
+ opacity: 0.6;
585
+ line-height: 1.4;
393
586
  }
394
587
 
395
- .reevit-method-option__check {
396
- color: var(--reevit-text);
588
+ .reevit-method-option--list .reevit-method-option__chevron {
589
+ color: var(--reevit-primary);
590
+ opacity: 0;
591
+ transform: translateX(-10px);
592
+ transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
397
593
  flex-shrink: 0;
398
- font-size: 14px;
594
+ }
595
+
596
+ .reevit-method-option--list:hover .reevit-method-option__chevron,
597
+ .reevit-method-option--list.reevit-method-option--selected .reevit-method-option__chevron {
598
+ opacity: 1;
599
+ transform: translateX(0);
399
600
  }
400
601
 
401
602
  /* ===== MOBILE MONEY FORM ===== */
@@ -403,89 +604,87 @@
403
604
  display: flex;
404
605
  flex-direction: column;
405
606
  gap: 16px;
607
+ width: 100%;
406
608
  }
407
609
 
408
610
  .reevit-momo-form__field {
409
611
  display: flex;
410
612
  flex-direction: column;
411
- gap: 6px;
613
+ gap: 8px;
412
614
  }
413
615
 
414
616
  .reevit-momo-form__label {
415
- font-size: 12px;
416
- font-weight: 500;
617
+ font-size: 13px;
618
+ font-weight: 600;
417
619
  color: var(--reevit-text);
418
- letter-spacing: 0.02em;
620
+ letter-spacing: -0.01em;
419
621
  }
420
622
 
421
623
  .reevit-momo-form__input {
422
- padding: 10px 14px;
423
- font-size: 14px;
624
+ padding: 14px 16px;
625
+ font-size: 15px;
424
626
  border: 1px solid var(--reevit-border);
425
627
  border-radius: var(--reevit-radius);
426
628
  background: var(--reevit-surface);
427
629
  color: var(--reevit-text);
428
- transition: all 0.15s ease;
630
+ transition: all 0.2s ease;
429
631
  font-family: var(--reevit-font);
632
+ width: 100%;
430
633
  }
431
634
 
432
635
  .reevit-momo-form__input:focus {
433
636
  outline: none;
434
- border-color: var(--reevit-text-secondary);
435
- background: var(--reevit-surface);
637
+ border-color: var(--reevit-primary);
638
+ border-width: 1.5px;
639
+ box-shadow: 0 0 0 4px color-mix(in srgb, var(--reevit-primary) 10%, transparent);
436
640
  }
437
641
 
438
642
  .reevit-momo-form__input--error {
439
643
  border-color: var(--reevit-error);
440
644
  }
441
645
 
442
- .reevit-momo-form__input--error:focus {
443
- border-color: var(--reevit-error);
444
- }
445
-
446
646
  .reevit-momo-form__formatted {
447
- font-size: 11px;
647
+ font-size: 12px;
448
648
  color: var(--reevit-text-secondary);
649
+ font-family: var(--reevit-font-mono, monospace);
650
+ margin-top: 2px;
449
651
  }
450
652
 
451
653
  .reevit-momo-form__error {
452
- font-size: 11px;
654
+ font-size: 12px;
453
655
  color: var(--reevit-error);
656
+ margin-top: 4px;
454
657
  }
455
658
 
456
659
  .reevit-momo-form__networks {
457
660
  display: flex;
458
- gap: 8px;
661
+ gap: 10px;
459
662
  }
460
663
 
461
664
  .reevit-network-btn {
462
665
  flex: 1;
463
- padding: 10px 14px;
666
+ padding: 12px;
464
667
  font-size: 12px;
465
- font-weight: 600;
668
+ font-weight: 700;
466
669
  border: 1px solid var(--reevit-border);
467
- border-radius: var(--reevit-radius);
670
+ border-radius: var(--reevit-radius-sm);
468
671
  background: transparent;
469
672
  color: var(--reevit-text);
470
673
  cursor: pointer;
471
- transition: all 0.15s ease;
472
- font-family: var(--reevit-font);
473
- }
474
-
475
- .reevit-network-btn:hover {
476
- border-color: var(--reevit-text);
477
- background: transparent;
674
+ transition: all 0.2s ease;
675
+ text-transform: uppercase;
676
+ letter-spacing: 0.5px;
478
677
  }
479
678
 
480
- .reevit-network-btn:focus {
481
- outline: none;
482
- border-color: var(--reevit-text);
483
- box-shadow: 0 0 0 2px var(--reevit-border);
679
+ .reevit-network-btn:hover:not(:disabled) {
680
+ border-color: var(--reevit-text-secondary);
681
+ background: rgba(255, 255, 255, 0.02);
484
682
  }
485
683
 
486
684
  .reevit-network-btn--selected {
487
685
  border-color: var(--network-color, var(--reevit-primary));
488
- background: var(--network-color, var(--reevit-primary));
686
+ background: color-mix(in srgb, var(--network-color, var(--reevit-primary)) 10%, transparent);
687
+ color: var(--reevit-text);
489
688
  color: #ffffff;
490
689
  }
491
690
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reevit/react",
3
- "version": "0.4.2",
3
+ "version": "0.4.4",
4
4
  "description": "Reevit React SDK - Unified Payment Widget",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",