@paymanai/payman-ask-sdk 1.2.17 → 1.2.18

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);
@@ -309,21 +315,21 @@
309
315
  opacity: var(--payman-otp-disabled-opacity);
310
316
  }
311
317
  .payman-scrollbar::-webkit-scrollbar {
312
- width: 6px;
318
+ width: 5px;
313
319
  }
314
320
  .payman-scrollbar::-webkit-scrollbar-track {
315
- background: transparent;
321
+ background: var(--payman-scrollbar-track, transparent);
316
322
  }
317
323
  .payman-scrollbar::-webkit-scrollbar-thumb {
318
- background: color-mix(in srgb, var(--payman-muted-foreground, #71717a) 20%, transparent);
324
+ background: var(--payman-scrollbar-thumb);
319
325
  border-radius: 9999px;
320
326
  }
321
327
  .payman-scrollbar::-webkit-scrollbar-thumb:hover {
322
- background: color-mix(in srgb, var(--payman-muted-foreground, #71717a) 35%, transparent);
328
+ background: var(--payman-scrollbar-thumb-hover);
323
329
  }
324
330
  .payman-scrollbar {
325
331
  scrollbar-width: thin;
326
- scrollbar-color: color-mix(in srgb, var(--payman-muted-foreground, #71717a) 20%, transparent) transparent;
332
+ scrollbar-color: var(--payman-scrollbar-thumb) var(--payman-scrollbar-track, transparent);
327
333
  }
328
334
  @keyframes shimmer {
329
335
  0% {
@@ -413,22 +419,83 @@
413
419
  "Courier New",
414
420
  monospace;
415
421
  }
422
+ .payman-chat-root {
423
+ --payman-recording-bg: var(--payman-input-bg);
424
+ --payman-recording-border: var(--payman-input-border);
425
+ --payman-recording-dot-bg: var(--payman-destructive, #ef4444);
426
+ --payman-recording-timer-fg: var(--payman-foreground, #18181b);
427
+ --payman-recording-cancel-fg: var(--payman-muted-foreground, #71717a);
428
+ --payman-recording-cancel-hover-fg: var(--payman-foreground, #18181b);
429
+ --payman-recording-confirm-bg: var(--payman-foreground, #18181b);
430
+ --payman-recording-confirm-fg: var(--payman-background, #ffffff);
431
+ --payman-recording-transcript-fg: var(--payman-foreground, #18181b);
432
+ --payman-recording-transcript-placeholder-fg: var(--payman-input-placeholder);
433
+ --payman-recording-cursor-bg: var(--payman-primary, #18181b);
434
+ }
435
+ .payman-chat-input-wrapper {
436
+ flex-shrink: 0;
437
+ width: 100%;
438
+ }
439
+ .payman-chat-input-container {
440
+ padding: 8px 16px 16px;
441
+ width: 100%;
442
+ }
443
+ .payman-chat-input-inner {
444
+ position: relative;
445
+ width: 100%;
446
+ max-width: 42rem;
447
+ margin-left: auto;
448
+ margin-right: auto;
449
+ }
416
450
  .payman-chat-input {
451
+ display: flex;
452
+ flex-direction: column;
417
453
  background: var(--payman-input-bg);
418
454
  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;
455
+ border-radius: var(--payman-input-radius, 22px);
456
+ box-shadow: var(--payman-input-shadow);
457
+ transition: border-color 0.25s ease, box-shadow 0.25s ease;
423
458
  }
424
- .payman-chat-input:focus-within {
459
+ .payman-chat-input--focused {
425
460
  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);
461
+ box-shadow: var(--payman-input-shadow-focus);
462
+ }
463
+ .payman-chat-input--recording {
464
+ background: var(--payman-recording-bg);
465
+ border-color: var(--payman-recording-border);
427
466
  }
428
467
  .payman-chat-input-field {
468
+ width: 100%;
469
+ min-width: 0;
429
470
  background: transparent;
430
471
  color: var(--payman-input-text);
431
- font-size: 0.875rem;
472
+ font-size: 0.9rem;
473
+ line-height: 1.55;
474
+ padding: 14px 18px 0 18px;
475
+ border: none;
476
+ outline: none;
477
+ resize: none;
478
+ overflow-y: auto;
479
+ min-height: 42px;
480
+ max-height: 160px;
481
+ font-family: inherit;
482
+ }
483
+ .payman-chat-input-field::-webkit-scrollbar {
484
+ width: 4px;
485
+ }
486
+ .payman-chat-input-field::-webkit-scrollbar-track {
487
+ background: var(--payman-scrollbar-track, transparent);
488
+ }
489
+ .payman-chat-input-field::-webkit-scrollbar-thumb {
490
+ background: var(--payman-scrollbar-thumb);
491
+ border-radius: 9999px;
492
+ }
493
+ .payman-chat-input-field::-webkit-scrollbar-thumb:hover {
494
+ background: var(--payman-scrollbar-thumb-hover);
495
+ }
496
+ .payman-chat-input-field {
497
+ scrollbar-width: thin;
498
+ scrollbar-color: var(--payman-scrollbar-thumb) var(--payman-scrollbar-track, transparent);
432
499
  }
433
500
  .payman-chat-input-field::-moz-placeholder {
434
501
  color: var(--payman-input-placeholder);
@@ -440,37 +507,306 @@
440
507
  opacity: var(--payman-input-disabled-opacity);
441
508
  cursor: not-allowed;
442
509
  }
510
+ .payman-chat-input-bottom {
511
+ display: flex;
512
+ align-items: center;
513
+ justify-content: space-between;
514
+ padding: 6px 10px 10px;
515
+ }
516
+ .payman-chat-input-actions-left {
517
+ display: flex;
518
+ align-items: center;
519
+ gap: 4px;
520
+ }
521
+ .payman-chat-input-actions {
522
+ display: flex;
523
+ align-items: center;
524
+ gap: 4px;
525
+ }
526
+ .payman-chat-input-btn-reset {
527
+ position: relative;
528
+ display: flex;
529
+ align-items: center;
530
+ justify-content: center;
531
+ width: 32px;
532
+ height: 32px;
533
+ border-radius: 50%;
534
+ border: none;
535
+ background: var(--payman-input-btn-send-bg);
536
+ color: var(--payman-input-btn-send-fg);
537
+ cursor: pointer;
538
+ transition:
539
+ transform 0.15s cubic-bezier(0.25, 0.46, 0.45, 0.94),
540
+ opacity 0.15s ease,
541
+ background 0.2s ease;
542
+ }
543
+ .payman-chat-input-btn-reset:hover:not(:disabled) {
544
+ opacity: 0.88;
545
+ transform: scale(1.05);
546
+ }
547
+ .payman-chat-input-btn-reset:active:not(:disabled) {
548
+ transform: scale(0.93);
549
+ }
550
+ .payman-chat-input-btn-reset:disabled {
551
+ background: var(--payman-input-btn-send-disabled-bg);
552
+ color: var(--payman-input-btn-send-disabled-fg);
553
+ cursor: default;
554
+ transform: none;
555
+ }
556
+ .payman-chat-input-btn-reset-tooltip {
557
+ position: absolute;
558
+ left: calc(100% + 8px);
559
+ top: 50%;
560
+ transform: translateY(-50%) translateX(-4px);
561
+ background: var(--payman-foreground, #18181b);
562
+ color: var(--payman-background, #ffffff);
563
+ font-size: 0.75rem;
564
+ font-weight: 500;
565
+ line-height: 1;
566
+ white-space: nowrap;
567
+ padding: 6px 10px;
568
+ border-radius: 6px;
569
+ pointer-events: none;
570
+ opacity: 0;
571
+ transition: opacity 0.15s ease, transform 0.15s ease;
572
+ z-index: 10;
573
+ }
574
+ .payman-chat-input-btn-reset-tooltip::before {
575
+ content: "";
576
+ position: absolute;
577
+ right: 100%;
578
+ top: 50%;
579
+ transform: translateY(-50%);
580
+ border: 4px solid transparent;
581
+ border-right-color: var(--payman-foreground, #18181b);
582
+ }
583
+ .payman-chat-input-btn-reset:hover .payman-chat-input-btn-reset-tooltip {
584
+ opacity: 1;
585
+ transform: translateY(-50%) translateX(0);
586
+ }
443
587
  .payman-chat-input-btn-send {
588
+ display: flex;
589
+ align-items: center;
590
+ justify-content: center;
591
+ width: 32px;
592
+ height: 32px;
593
+ border-radius: 50%;
594
+ border: none;
444
595
  background: var(--payman-input-btn-send-bg);
445
596
  color: var(--payman-input-btn-send-fg);
597
+ cursor: pointer;
598
+ transition:
599
+ transform 0.15s cubic-bezier(0.25, 0.46, 0.45, 0.94),
600
+ opacity 0.15s ease,
601
+ background 0.2s ease;
446
602
  }
447
603
  .payman-chat-input-btn-send:hover:not(:disabled) {
448
- opacity: 0.9;
604
+ opacity: 0.88;
605
+ transform: scale(1.05);
606
+ }
607
+ .payman-chat-input-btn-send:active:not(:disabled) {
608
+ transform: scale(0.93);
449
609
  }
450
610
  .payman-chat-input-btn-send:disabled {
451
611
  background: var(--payman-input-btn-send-disabled-bg);
452
612
  color: var(--payman-input-btn-send-disabled-fg);
453
- cursor: not-allowed;
613
+ cursor: default;
614
+ transform: none;
454
615
  }
455
616
  .payman-chat-input-btn-voice {
617
+ display: flex;
618
+ align-items: center;
619
+ justify-content: center;
620
+ width: 32px;
621
+ height: 32px;
622
+ border-radius: 50%;
623
+ border: none;
624
+ background: transparent;
456
625
  color: var(--payman-input-btn-voice-fg);
626
+ cursor: pointer;
627
+ transition:
628
+ color 0.15s ease,
629
+ background 0.15s ease,
630
+ transform 0.15s ease;
457
631
  }
458
632
  .payman-chat-input-btn-voice:hover:not(:disabled) {
459
633
  color: var(--payman-input-btn-voice-hover-fg);
460
634
  background: var(--payman-input-btn-voice-hover-bg);
635
+ transform: scale(1.05);
636
+ }
637
+ .payman-chat-input-btn-voice:active:not(:disabled) {
638
+ transform: scale(0.93);
461
639
  }
462
640
  .payman-chat-input-btn-voice:disabled {
463
641
  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);
642
+ cursor: default;
470
643
  }
471
644
  .payman-chat-input-btn-pause {
645
+ display: flex;
646
+ align-items: center;
647
+ justify-content: center;
648
+ width: 32px;
649
+ height: 32px;
650
+ border-radius: 50%;
651
+ border: none;
472
652
  background: var(--payman-input-btn-pause-bg);
473
653
  color: var(--payman-input-btn-pause-fg);
654
+ cursor: pointer;
655
+ }
656
+ .payman-recording-transcript-area {
657
+ padding: 14px 18px 4px;
658
+ min-height: 42px;
659
+ max-height: 120px;
660
+ overflow-y: auto;
661
+ display: flex;
662
+ align-items: flex-start;
663
+ }
664
+ .payman-recording-transcript-area::-webkit-scrollbar {
665
+ width: 4px;
666
+ }
667
+ .payman-recording-transcript-area::-webkit-scrollbar-track {
668
+ background: var(--payman-scrollbar-track, transparent);
669
+ }
670
+ .payman-recording-transcript-area::-webkit-scrollbar-thumb {
671
+ background: var(--payman-scrollbar-thumb);
672
+ border-radius: 9999px;
673
+ }
674
+ .payman-recording-transcript-area {
675
+ scrollbar-width: thin;
676
+ scrollbar-color: var(--payman-scrollbar-thumb) var(--payman-scrollbar-track, transparent);
677
+ }
678
+ .payman-recording-transcript-text {
679
+ font-size: 0.9rem;
680
+ line-height: 1.55;
681
+ color: var(--payman-recording-transcript-fg);
682
+ margin: 0;
683
+ word-break: break-word;
684
+ }
685
+ .payman-recording-transcript-placeholder {
686
+ font-size: 0.9rem;
687
+ line-height: 1.55;
688
+ color: var(--payman-recording-transcript-placeholder-fg, var(--payman-input-placeholder));
689
+ margin: 0;
690
+ }
691
+ .payman-recording-cursor {
692
+ display: inline-block;
693
+ width: 2px;
694
+ height: 1.1em;
695
+ background: var(--payman-recording-cursor-bg);
696
+ margin-left: 2px;
697
+ vertical-align: text-bottom;
698
+ border-radius: 1px;
699
+ }
700
+ .payman-recording-bar {
701
+ display: flex;
702
+ align-items: center;
703
+ justify-content: space-between;
704
+ padding: 6px 10px 10px;
705
+ gap: 12px;
706
+ }
707
+ .payman-recording-btn-cancel {
708
+ display: flex;
709
+ align-items: center;
710
+ justify-content: center;
711
+ background: none;
712
+ border: none;
713
+ color: var(--payman-recording-cancel-fg);
714
+ font-size: 0.8125rem;
715
+ font-weight: 500;
716
+ cursor: pointer;
717
+ padding: 6px 14px;
718
+ border-radius: 999px;
719
+ transition: color 0.15s ease, background 0.15s ease;
720
+ font-family: inherit;
721
+ }
722
+ .payman-recording-btn-cancel:hover {
723
+ color: var(--payman-recording-cancel-hover-fg);
724
+ background: color-mix(in srgb, var(--payman-muted, #f4f4f5) 80%, transparent);
725
+ }
726
+ .payman-recording-indicator {
727
+ display: flex;
728
+ align-items: center;
729
+ gap: 8px;
730
+ }
731
+ .payman-recording-dot {
732
+ width: 8px;
733
+ height: 8px;
734
+ border-radius: 50%;
735
+ background: var(--payman-recording-dot-bg);
736
+ animation: payman-recording-pulse 1.5s ease-in-out infinite;
737
+ }
738
+ @keyframes payman-recording-pulse {
739
+ 0%, 100% {
740
+ opacity: 1;
741
+ transform: scale(1);
742
+ }
743
+ 50% {
744
+ opacity: 0.4;
745
+ transform: scale(0.85);
746
+ }
747
+ }
748
+ .payman-recording-timer {
749
+ font-size: 0.8125rem;
750
+ font-weight: 600;
751
+ font-variant-numeric: tabular-nums;
752
+ color: var(--payman-recording-timer-fg);
753
+ letter-spacing: 0.02em;
754
+ }
755
+ .payman-recording-btn-confirm {
756
+ display: flex;
757
+ align-items: center;
758
+ justify-content: center;
759
+ width: 32px;
760
+ height: 32px;
761
+ border-radius: 50%;
762
+ border: none;
763
+ background: var(--payman-recording-confirm-bg);
764
+ color: var(--payman-recording-confirm-fg);
765
+ cursor: pointer;
766
+ transition: transform 0.15s ease, opacity 0.15s ease;
767
+ }
768
+ .payman-recording-btn-confirm:hover {
769
+ opacity: 0.88;
770
+ transform: scale(1.05);
771
+ }
772
+ .payman-recording-btn-confirm:active {
773
+ transform: scale(0.93);
774
+ }
775
+ .payman-empty-centered-layout {
776
+ display: flex;
777
+ flex: 1;
778
+ flex-direction: column;
779
+ align-items: center;
780
+ justify-content: center;
781
+ min-height: 0;
782
+ }
783
+ .payman-empty-centered-inner {
784
+ display: flex;
785
+ flex-direction: column;
786
+ align-items: center;
787
+ gap: 32px;
788
+ width: 100%;
789
+ }
790
+ .payman-empty-centered-input {
791
+ width: 100%;
792
+ }
793
+ @media (max-width: 640px) {
794
+ .payman-empty-centered-layout {
795
+ justify-content: flex-end;
796
+ }
797
+ .payman-empty-centered-inner {
798
+ flex: 1;
799
+ justify-content: flex-end;
800
+ gap: 24px;
801
+ }
802
+ .payman-empty-centered-inner .payman-empty-root {
803
+ flex: 1;
804
+ justify-content: center;
805
+ }
806
+ .payman-empty-centered-input {
807
+ flex-shrink: 0;
808
+ padding-bottom: 8px;
809
+ }
474
810
  }
475
811
  .payman-chat-input-disclaimer {
476
812
  margin-top: 8px;
@@ -619,20 +955,25 @@
619
955
  }
620
956
  .payman-empty-root {
621
957
  display: flex;
622
- flex: 1;
623
958
  flex-direction: column;
624
959
  align-items: center;
625
960
  justify-content: center;
626
961
  text-align: center;
627
962
  min-height: 0;
628
- overflow-y: auto;
963
+ flex: 1;
629
964
  }
630
965
  .payman-empty-content {
631
966
  display: flex;
632
967
  flex-direction: column;
633
968
  align-items: center;
634
- gap: 1.25rem;
635
- max-width: 22rem;
969
+ gap: 1rem;
970
+ max-width: 26rem;
971
+ }
972
+ .payman-empty-custom-component {
973
+ display: flex;
974
+ align-items: center;
975
+ justify-content: center;
976
+ margin-bottom: 8px;
636
977
  }
637
978
  .payman-empty-icon-wrap {
638
979
  display: flex;
@@ -648,11 +989,17 @@
648
989
  .payman-empty-icon {
649
990
  color: var(--payman-empty-icon-fg);
650
991
  }
992
+ .payman-empty-text-group {
993
+ display: flex;
994
+ flex-direction: column;
995
+ align-items: center;
996
+ gap: 6px;
997
+ }
651
998
  .payman-empty-title {
652
999
  color: var(--payman-empty-title-fg);
653
- font-size: 1.25rem;
1000
+ font-size: 1.5rem;
654
1001
  font-weight: 600;
655
- line-height: 1.4;
1002
+ line-height: 1.3;
656
1003
  letter-spacing: -0.02em;
657
1004
  }
658
1005
  .payman-empty-subtitle {