@paymanai/payman-ask-sdk 1.2.17 → 1.2.19

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
@@ -43,25 +43,31 @@
43
43
  --radius-md: calc(var(--payman-radius, 0.625rem) - 2px);
44
44
  --radius-lg: var(--payman-radius, 0.625rem);
45
45
  --radius-xl: calc(var(--payman-radius, 0.625rem) + 4px);
46
- --payman-input-bg: color-mix( in srgb, var(--payman-muted, #f4f4f5) 50%, transparent );
47
- --payman-input-border: color-mix( in srgb, var(--payman-border, #e4e4e7) 60%, transparent );
48
- --payman-input-border-focus: var(--payman-border, #e4e4e7);
46
+ --payman-input-bg: var(--payman-card, #ffffff);
47
+ --payman-input-border: var(--payman-border, #e4e4e7);
48
+ --payman-input-border-focus: var(--payman-primary, #18181b);
49
49
  --payman-input-text: var(--payman-foreground, #18181b);
50
- --payman-input-placeholder: color-mix( in srgb, var(--payman-muted-foreground, #71717a) 60%, transparent );
50
+ --payman-input-placeholder: var(--payman-muted-foreground, #71717a);
51
51
  --payman-input-disabled-opacity: 0.4;
52
- --payman-input-btn-send-bg: var(--payman-foreground, #18181b);
53
- --payman-input-btn-send-fg: var(--payman-background, #ffffff);
52
+ --payman-input-shadow: 0 1px 6px -1px rgb(0 0 0 / 0.06), 0 0 0 1px rgb(0 0 0 / 0.03);
53
+ --payman-input-shadow-focus: 0 2px 12px -2px rgb(0 0 0 / 0.1), 0 0 0 2px color-mix(in srgb, var(--payman-primary, #18181b) 12%, transparent);
54
+ --payman-input-radius: 22px;
55
+ --payman-input-btn-send-bg: var(--payman-primary, #18181b);
56
+ --payman-input-btn-send-fg: var(--payman-primary-foreground, #fafafa);
54
57
  --payman-input-btn-send-disabled-bg: var(--payman-muted, #f4f4f5);
55
58
  --payman-input-btn-send-disabled-fg: color-mix( in srgb, var(--payman-muted-foreground, #71717a) 40%, transparent );
56
59
  --payman-input-btn-voice-fg: var(--payman-muted-foreground, #71717a);
57
60
  --payman-input-btn-voice-hover-fg: var(--payman-foreground, #18181b);
58
61
  --payman-input-btn-voice-hover-bg: color-mix( in srgb, var(--payman-muted, #f4f4f5) 80%, transparent );
59
- --payman-input-btn-voice-recording-bg: var(--payman-destructive, #ef4444);
60
- --payman-input-btn-voice-recording-fg: var( --payman-destructive-foreground, #fafafa );
61
- --payman-input-btn-voice-recording-ring: var(--payman-destructive, #ef4444);
62
- --payman-input-btn-voice-recording-shadow: color-mix( in srgb, var(--payman-destructive, #ef4444) 30%, transparent );
62
+ --payman-input-btn-voice-recording-bg: color-mix(in srgb, var(--payman-destructive, #ef4444) 10%, transparent);
63
+ --payman-input-btn-voice-recording-fg: var(--payman-destructive, #ef4444);
64
+ --payman-input-btn-voice-recording-ring: color-mix(in srgb, var(--payman-destructive, #ef4444) 30%, transparent);
65
+ --payman-input-btn-voice-recording-shadow: 0 0 0 4px color-mix(in srgb, var(--payman-destructive, #ef4444) 10%, transparent);
63
66
  --payman-input-btn-pause-bg: var(--payman-foreground, #18181b);
64
67
  --payman-input-btn-pause-fg: var(--payman-background, #ffffff);
68
+ --payman-scrollbar-thumb: color-mix(in srgb, var(--payman-muted-foreground, #71717a) 20%, transparent);
69
+ --payman-scrollbar-thumb-hover: color-mix(in srgb, var(--payman-muted-foreground, #71717a) 35%, transparent);
70
+ --payman-scrollbar-track: transparent;
65
71
  --payman-agent-bubble-bg: color-mix( in srgb, var(--payman-muted, #f4f4f5) 60%, transparent );
66
72
  --payman-agent-bubble-border: var(--payman-border, #e4e4e7);
67
73
  --payman-agent-bubble-border-streaming: var(--payman-border, #e4e4e7);
@@ -236,6 +242,13 @@
236
242
  --payman-otp-disabled-bg: color-mix( in srgb, var(--payman-muted, #f4f4f5) 50%, transparent );
237
243
  --payman-otp-disabled-opacity: 0.5;
238
244
  --payman-otp-hover-border: color-mix( in srgb, var(--payman-border, #e4e4e7) 80%, transparent );
245
+ --payman-modal-brand-fg: #0a3b44;
246
+ --payman-modal-hero-fg: #0a3b44;
247
+ }
248
+ .dark .payman-modal-backdrop,
249
+ .payman-modal-backdrop.dark {
250
+ --payman-modal-brand-fg: #ffffff;
251
+ --payman-modal-hero-fg: #7dd3c0;
239
252
  }
240
253
  .payman-modal-backdrop-overlay {
241
254
  background: var(--payman-modal-backdrop-bg);
@@ -309,21 +322,21 @@
309
322
  opacity: var(--payman-otp-disabled-opacity);
310
323
  }
311
324
  .payman-scrollbar::-webkit-scrollbar {
312
- width: 6px;
325
+ width: 5px;
313
326
  }
314
327
  .payman-scrollbar::-webkit-scrollbar-track {
315
- background: transparent;
328
+ background: var(--payman-scrollbar-track, transparent);
316
329
  }
317
330
  .payman-scrollbar::-webkit-scrollbar-thumb {
318
- background: color-mix(in srgb, var(--payman-muted-foreground, #71717a) 20%, transparent);
331
+ background: var(--payman-scrollbar-thumb);
319
332
  border-radius: 9999px;
320
333
  }
321
334
  .payman-scrollbar::-webkit-scrollbar-thumb:hover {
322
- background: color-mix(in srgb, var(--payman-muted-foreground, #71717a) 35%, transparent);
335
+ background: var(--payman-scrollbar-thumb-hover);
323
336
  }
324
337
  .payman-scrollbar {
325
338
  scrollbar-width: thin;
326
- scrollbar-color: color-mix(in srgb, var(--payman-muted-foreground, #71717a) 20%, transparent) transparent;
339
+ scrollbar-color: var(--payman-scrollbar-thumb) var(--payman-scrollbar-track, transparent);
327
340
  }
328
341
  @keyframes shimmer {
329
342
  0% {
@@ -413,22 +426,83 @@
413
426
  "Courier New",
414
427
  monospace;
415
428
  }
429
+ .payman-chat-root {
430
+ --payman-recording-bg: var(--payman-input-bg);
431
+ --payman-recording-border: var(--payman-input-border);
432
+ --payman-recording-dot-bg: var(--payman-destructive, #ef4444);
433
+ --payman-recording-timer-fg: var(--payman-foreground, #18181b);
434
+ --payman-recording-cancel-fg: var(--payman-muted-foreground, #71717a);
435
+ --payman-recording-cancel-hover-fg: var(--payman-foreground, #18181b);
436
+ --payman-recording-confirm-bg: var(--payman-foreground, #18181b);
437
+ --payman-recording-confirm-fg: var(--payman-background, #ffffff);
438
+ --payman-recording-transcript-fg: var(--payman-foreground, #18181b);
439
+ --payman-recording-transcript-placeholder-fg: var(--payman-input-placeholder);
440
+ --payman-recording-cursor-bg: var(--payman-primary, #18181b);
441
+ }
442
+ .payman-chat-input-wrapper {
443
+ flex-shrink: 0;
444
+ width: 100%;
445
+ }
446
+ .payman-chat-input-container {
447
+ padding: 8px 16px 16px;
448
+ width: 100%;
449
+ }
450
+ .payman-chat-input-inner {
451
+ position: relative;
452
+ width: 100%;
453
+ max-width: 42rem;
454
+ margin-left: auto;
455
+ margin-right: auto;
456
+ }
416
457
  .payman-chat-input {
458
+ display: flex;
459
+ flex-direction: column;
417
460
  background: var(--payman-input-bg);
418
461
  border: 1px solid var(--payman-input-border);
419
- border-radius: 22px;
420
- min-height: 52px;
421
- box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
422
- transition: border-color 0.2s, box-shadow 0.2s;
462
+ border-radius: var(--payman-input-radius, 22px);
463
+ box-shadow: var(--payman-input-shadow);
464
+ transition: border-color 0.25s ease, box-shadow 0.25s ease;
423
465
  }
424
- .payman-chat-input:focus-within {
466
+ .payman-chat-input--focused {
425
467
  border-color: var(--payman-input-border-focus);
426
- box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
468
+ box-shadow: var(--payman-input-shadow-focus);
469
+ }
470
+ .payman-chat-input--recording {
471
+ background: var(--payman-recording-bg);
472
+ border-color: var(--payman-recording-border);
427
473
  }
428
474
  .payman-chat-input-field {
475
+ width: 100%;
476
+ min-width: 0;
429
477
  background: transparent;
430
478
  color: var(--payman-input-text);
431
- font-size: 0.875rem;
479
+ font-size: 0.9rem;
480
+ line-height: 1.55;
481
+ padding: 14px 18px 0 18px;
482
+ border: none;
483
+ outline: none;
484
+ resize: none;
485
+ overflow-y: auto;
486
+ min-height: 42px;
487
+ max-height: 160px;
488
+ font-family: inherit;
489
+ }
490
+ .payman-chat-input-field::-webkit-scrollbar {
491
+ width: 4px;
492
+ }
493
+ .payman-chat-input-field::-webkit-scrollbar-track {
494
+ background: var(--payman-scrollbar-track, transparent);
495
+ }
496
+ .payman-chat-input-field::-webkit-scrollbar-thumb {
497
+ background: var(--payman-scrollbar-thumb);
498
+ border-radius: 9999px;
499
+ }
500
+ .payman-chat-input-field::-webkit-scrollbar-thumb:hover {
501
+ background: var(--payman-scrollbar-thumb-hover);
502
+ }
503
+ .payman-chat-input-field {
504
+ scrollbar-width: thin;
505
+ scrollbar-color: var(--payman-scrollbar-thumb) var(--payman-scrollbar-track, transparent);
432
506
  }
433
507
  .payman-chat-input-field::-moz-placeholder {
434
508
  color: var(--payman-input-placeholder);
@@ -440,37 +514,306 @@
440
514
  opacity: var(--payman-input-disabled-opacity);
441
515
  cursor: not-allowed;
442
516
  }
517
+ .payman-chat-input-bottom {
518
+ display: flex;
519
+ align-items: center;
520
+ justify-content: space-between;
521
+ padding: 6px 10px 10px;
522
+ }
523
+ .payman-chat-input-actions-left {
524
+ display: flex;
525
+ align-items: center;
526
+ gap: 4px;
527
+ }
528
+ .payman-chat-input-actions {
529
+ display: flex;
530
+ align-items: center;
531
+ gap: 4px;
532
+ }
533
+ .payman-chat-input-btn-reset {
534
+ position: relative;
535
+ display: flex;
536
+ align-items: center;
537
+ justify-content: center;
538
+ width: 32px;
539
+ height: 32px;
540
+ border-radius: 50%;
541
+ border: none;
542
+ background: var(--payman-input-btn-send-bg);
543
+ color: var(--payman-input-btn-send-fg);
544
+ cursor: pointer;
545
+ transition:
546
+ transform 0.15s cubic-bezier(0.25, 0.46, 0.45, 0.94),
547
+ opacity 0.15s ease,
548
+ background 0.2s ease;
549
+ }
550
+ .payman-chat-input-btn-reset:hover:not(:disabled) {
551
+ opacity: 0.88;
552
+ transform: scale(1.05);
553
+ }
554
+ .payman-chat-input-btn-reset:active:not(:disabled) {
555
+ transform: scale(0.93);
556
+ }
557
+ .payman-chat-input-btn-reset:disabled {
558
+ background: var(--payman-input-btn-send-disabled-bg);
559
+ color: var(--payman-input-btn-send-disabled-fg);
560
+ cursor: default;
561
+ transform: none;
562
+ }
563
+ .payman-chat-input-btn-reset-tooltip {
564
+ position: absolute;
565
+ left: calc(100% + 8px);
566
+ top: 50%;
567
+ transform: translateY(-50%) translateX(-4px);
568
+ background: var(--payman-foreground, #18181b);
569
+ color: var(--payman-background, #ffffff);
570
+ font-size: 0.75rem;
571
+ font-weight: 500;
572
+ line-height: 1;
573
+ white-space: nowrap;
574
+ padding: 6px 10px;
575
+ border-radius: 6px;
576
+ pointer-events: none;
577
+ opacity: 0;
578
+ transition: opacity 0.15s ease, transform 0.15s ease;
579
+ z-index: 10;
580
+ }
581
+ .payman-chat-input-btn-reset-tooltip::before {
582
+ content: "";
583
+ position: absolute;
584
+ right: 100%;
585
+ top: 50%;
586
+ transform: translateY(-50%);
587
+ border: 4px solid transparent;
588
+ border-right-color: var(--payman-foreground, #18181b);
589
+ }
590
+ .payman-chat-input-btn-reset:hover .payman-chat-input-btn-reset-tooltip {
591
+ opacity: 1;
592
+ transform: translateY(-50%) translateX(0);
593
+ }
443
594
  .payman-chat-input-btn-send {
595
+ display: flex;
596
+ align-items: center;
597
+ justify-content: center;
598
+ width: 32px;
599
+ height: 32px;
600
+ border-radius: 50%;
601
+ border: none;
444
602
  background: var(--payman-input-btn-send-bg);
445
603
  color: var(--payman-input-btn-send-fg);
604
+ cursor: pointer;
605
+ transition:
606
+ transform 0.15s cubic-bezier(0.25, 0.46, 0.45, 0.94),
607
+ opacity 0.15s ease,
608
+ background 0.2s ease;
446
609
  }
447
610
  .payman-chat-input-btn-send:hover:not(:disabled) {
448
- opacity: 0.9;
611
+ opacity: 0.88;
612
+ transform: scale(1.05);
613
+ }
614
+ .payman-chat-input-btn-send:active:not(:disabled) {
615
+ transform: scale(0.93);
449
616
  }
450
617
  .payman-chat-input-btn-send:disabled {
451
618
  background: var(--payman-input-btn-send-disabled-bg);
452
619
  color: var(--payman-input-btn-send-disabled-fg);
453
- cursor: not-allowed;
620
+ cursor: default;
621
+ transform: none;
454
622
  }
455
623
  .payman-chat-input-btn-voice {
624
+ display: flex;
625
+ align-items: center;
626
+ justify-content: center;
627
+ width: 32px;
628
+ height: 32px;
629
+ border-radius: 50%;
630
+ border: none;
631
+ background: transparent;
456
632
  color: var(--payman-input-btn-voice-fg);
633
+ cursor: pointer;
634
+ transition:
635
+ color 0.15s ease,
636
+ background 0.15s ease,
637
+ transform 0.15s ease;
457
638
  }
458
639
  .payman-chat-input-btn-voice:hover:not(:disabled) {
459
640
  color: var(--payman-input-btn-voice-hover-fg);
460
641
  background: var(--payman-input-btn-voice-hover-bg);
642
+ transform: scale(1.05);
643
+ }
644
+ .payman-chat-input-btn-voice:active:not(:disabled) {
645
+ transform: scale(0.93);
461
646
  }
462
647
  .payman-chat-input-btn-voice:disabled {
463
648
  opacity: 0.3;
464
- cursor: not-allowed;
465
- }
466
- .payman-chat-input-btn-voice.recording {
467
- background: var(--payman-input-btn-voice-recording-bg);
468
- color: var(--payman-input-btn-voice-recording-fg);
469
- box-shadow: 0 1px 2px 0 var(--payman-input-btn-voice-recording-shadow);
649
+ cursor: default;
470
650
  }
471
651
  .payman-chat-input-btn-pause {
652
+ display: flex;
653
+ align-items: center;
654
+ justify-content: center;
655
+ width: 32px;
656
+ height: 32px;
657
+ border-radius: 50%;
658
+ border: none;
472
659
  background: var(--payman-input-btn-pause-bg);
473
660
  color: var(--payman-input-btn-pause-fg);
661
+ cursor: pointer;
662
+ }
663
+ .payman-recording-transcript-area {
664
+ padding: 14px 18px 4px;
665
+ min-height: 42px;
666
+ max-height: 120px;
667
+ overflow-y: auto;
668
+ display: flex;
669
+ align-items: flex-start;
670
+ }
671
+ .payman-recording-transcript-area::-webkit-scrollbar {
672
+ width: 4px;
673
+ }
674
+ .payman-recording-transcript-area::-webkit-scrollbar-track {
675
+ background: var(--payman-scrollbar-track, transparent);
676
+ }
677
+ .payman-recording-transcript-area::-webkit-scrollbar-thumb {
678
+ background: var(--payman-scrollbar-thumb);
679
+ border-radius: 9999px;
680
+ }
681
+ .payman-recording-transcript-area {
682
+ scrollbar-width: thin;
683
+ scrollbar-color: var(--payman-scrollbar-thumb) var(--payman-scrollbar-track, transparent);
684
+ }
685
+ .payman-recording-transcript-text {
686
+ font-size: 0.9rem;
687
+ line-height: 1.55;
688
+ color: var(--payman-recording-transcript-fg);
689
+ margin: 0;
690
+ word-break: break-word;
691
+ }
692
+ .payman-recording-transcript-placeholder {
693
+ font-size: 0.9rem;
694
+ line-height: 1.55;
695
+ color: var(--payman-recording-transcript-placeholder-fg, var(--payman-input-placeholder));
696
+ margin: 0;
697
+ }
698
+ .payman-recording-cursor {
699
+ display: inline-block;
700
+ width: 2px;
701
+ height: 1.1em;
702
+ background: var(--payman-recording-cursor-bg);
703
+ margin-left: 2px;
704
+ vertical-align: text-bottom;
705
+ border-radius: 1px;
706
+ }
707
+ .payman-recording-bar {
708
+ display: flex;
709
+ align-items: center;
710
+ justify-content: space-between;
711
+ padding: 6px 10px 10px;
712
+ gap: 12px;
713
+ }
714
+ .payman-recording-btn-cancel {
715
+ display: flex;
716
+ align-items: center;
717
+ justify-content: center;
718
+ background: none;
719
+ border: none;
720
+ color: var(--payman-recording-cancel-fg);
721
+ font-size: 0.8125rem;
722
+ font-weight: 500;
723
+ cursor: pointer;
724
+ padding: 6px 14px;
725
+ border-radius: 999px;
726
+ transition: color 0.15s ease, background 0.15s ease;
727
+ font-family: inherit;
728
+ }
729
+ .payman-recording-btn-cancel:hover {
730
+ color: var(--payman-recording-cancel-hover-fg);
731
+ background: color-mix(in srgb, var(--payman-muted, #f4f4f5) 80%, transparent);
732
+ }
733
+ .payman-recording-indicator {
734
+ display: flex;
735
+ align-items: center;
736
+ gap: 8px;
737
+ }
738
+ .payman-recording-dot {
739
+ width: 8px;
740
+ height: 8px;
741
+ border-radius: 50%;
742
+ background: var(--payman-recording-dot-bg);
743
+ animation: payman-recording-pulse 1.5s ease-in-out infinite;
744
+ }
745
+ @keyframes payman-recording-pulse {
746
+ 0%, 100% {
747
+ opacity: 1;
748
+ transform: scale(1);
749
+ }
750
+ 50% {
751
+ opacity: 0.4;
752
+ transform: scale(0.85);
753
+ }
754
+ }
755
+ .payman-recording-timer {
756
+ font-size: 0.8125rem;
757
+ font-weight: 600;
758
+ font-variant-numeric: tabular-nums;
759
+ color: var(--payman-recording-timer-fg);
760
+ letter-spacing: 0.02em;
761
+ }
762
+ .payman-recording-btn-confirm {
763
+ display: flex;
764
+ align-items: center;
765
+ justify-content: center;
766
+ width: 32px;
767
+ height: 32px;
768
+ border-radius: 50%;
769
+ border: none;
770
+ background: var(--payman-recording-confirm-bg);
771
+ color: var(--payman-recording-confirm-fg);
772
+ cursor: pointer;
773
+ transition: transform 0.15s ease, opacity 0.15s ease;
774
+ }
775
+ .payman-recording-btn-confirm:hover {
776
+ opacity: 0.88;
777
+ transform: scale(1.05);
778
+ }
779
+ .payman-recording-btn-confirm:active {
780
+ transform: scale(0.93);
781
+ }
782
+ .payman-empty-centered-layout {
783
+ display: flex;
784
+ flex: 1;
785
+ flex-direction: column;
786
+ align-items: center;
787
+ justify-content: center;
788
+ min-height: 0;
789
+ }
790
+ .payman-empty-centered-inner {
791
+ display: flex;
792
+ flex-direction: column;
793
+ align-items: center;
794
+ gap: 32px;
795
+ width: 100%;
796
+ }
797
+ .payman-empty-centered-input {
798
+ width: 100%;
799
+ }
800
+ @media (max-width: 640px) {
801
+ .payman-empty-centered-layout {
802
+ justify-content: flex-end;
803
+ }
804
+ .payman-empty-centered-inner {
805
+ flex: 1;
806
+ justify-content: flex-end;
807
+ gap: 24px;
808
+ }
809
+ .payman-empty-centered-inner .payman-empty-root {
810
+ flex: 1;
811
+ justify-content: center;
812
+ }
813
+ .payman-empty-centered-input {
814
+ flex-shrink: 0;
815
+ padding-bottom: 8px;
816
+ }
474
817
  }
475
818
  .payman-chat-input-disclaimer {
476
819
  margin-top: 8px;
@@ -619,20 +962,25 @@
619
962
  }
620
963
  .payman-empty-root {
621
964
  display: flex;
622
- flex: 1;
623
965
  flex-direction: column;
624
966
  align-items: center;
625
967
  justify-content: center;
626
968
  text-align: center;
627
969
  min-height: 0;
628
- overflow-y: auto;
970
+ flex: 1;
629
971
  }
630
972
  .payman-empty-content {
631
973
  display: flex;
632
974
  flex-direction: column;
633
975
  align-items: center;
634
- gap: 1.25rem;
635
- max-width: 22rem;
976
+ gap: 1rem;
977
+ max-width: 26rem;
978
+ }
979
+ .payman-empty-custom-component {
980
+ display: flex;
981
+ align-items: center;
982
+ justify-content: center;
983
+ margin-bottom: 8px;
636
984
  }
637
985
  .payman-empty-icon-wrap {
638
986
  display: flex;
@@ -648,11 +996,17 @@
648
996
  .payman-empty-icon {
649
997
  color: var(--payman-empty-icon-fg);
650
998
  }
999
+ .payman-empty-text-group {
1000
+ display: flex;
1001
+ flex-direction: column;
1002
+ align-items: center;
1003
+ gap: 6px;
1004
+ }
651
1005
  .payman-empty-title {
652
1006
  color: var(--payman-empty-title-fg);
653
- font-size: 1.25rem;
1007
+ font-size: 1.5rem;
654
1008
  font-weight: 600;
655
- line-height: 1.4;
1009
+ line-height: 1.3;
656
1010
  letter-spacing: -0.02em;
657
1011
  }
658
1012
  .payman-empty-subtitle {
@@ -726,6 +1080,69 @@
726
1080
  outline: 2px solid var(--payman-primary, #18181b);
727
1081
  outline-offset: -1px;
728
1082
  }
1083
+ .payman-otp-input--error {
1084
+ border-color: var(--payman-destructive, #ef4444) !important;
1085
+ box-shadow: 0 0 0 2px color-mix(in srgb, var(--payman-destructive, #ef4444) 20%, transparent) !important;
1086
+ }
1087
+ @keyframes payman-otp-shake {
1088
+ 0%, 100% {
1089
+ transform: translateX(0);
1090
+ }
1091
+ 15% {
1092
+ transform: translateX(-6px);
1093
+ }
1094
+ 30% {
1095
+ transform: translateX(5px);
1096
+ }
1097
+ 45% {
1098
+ transform: translateX(-4px);
1099
+ }
1100
+ 60% {
1101
+ transform: translateX(3px);
1102
+ }
1103
+ 75% {
1104
+ transform: translateX(-2px);
1105
+ }
1106
+ 90% {
1107
+ transform: translateX(1px);
1108
+ }
1109
+ }
1110
+ .payman-otp-shake {
1111
+ animation: payman-otp-shake 0.4s ease-out;
1112
+ }
1113
+ @keyframes payman-otp-complete-pulse {
1114
+ 0% {
1115
+ transform: scale(1);
1116
+ }
1117
+ 40% {
1118
+ transform: scale(1.03);
1119
+ }
1120
+ 100% {
1121
+ transform: scale(1);
1122
+ }
1123
+ }
1124
+ .payman-otp-complete-pulse {
1125
+ animation: payman-otp-complete-pulse 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
1126
+ }
1127
+ .payman-modal-link-resend:hover:not(:disabled) {
1128
+ color: var(--payman-modal-btn-resend-hover-fg, var(--payman-foreground, #18181b)) !important;
1129
+ }
1130
+ .payman-modal-link-cancel {
1131
+ color: var(--payman-modal-desc-fg, var(--payman-muted-foreground, #71717a));
1132
+ }
1133
+ .payman-modal-link-cancel:hover:not(:disabled) {
1134
+ color: var(--payman-modal-btn-resend-hover-fg, var(--payman-foreground, #18181b)) !important;
1135
+ }
1136
+ .payman-modal-close-btn {
1137
+ color: var(--payman-modal-desc-fg, var(--payman-muted-foreground, #71717a));
1138
+ transition: color 0.15s ease;
1139
+ }
1140
+ .payman-modal-close-btn:hover:not(:disabled) {
1141
+ color: var(--payman-modal-btn-resend-hover-fg, var(--payman-foreground, #18181b));
1142
+ }
1143
+ .payman-modal-close-btn:disabled {
1144
+ opacity: var(--payman-modal-btn-disabled-opacity, 0.4);
1145
+ }
729
1146
  @keyframes payman-modal-fadeIn {
730
1147
  from {
731
1148
  opacity: 0;