open-chat-studio-widget 0.4.1 → 0.4.3

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.
Files changed (35) hide show
  1. package/README.md +78 -9
  2. package/dist/cjs/{index-b700441a.js → index-bcb28089.js} +3 -1
  3. package/dist/cjs/index-bcb28089.js.map +1 -0
  4. package/dist/cjs/loader.cjs.js +2 -2
  5. package/dist/cjs/open-chat-studio-widget.cjs.entry.js +97 -38
  6. package/dist/cjs/open-chat-studio-widget.cjs.entry.js.map +1 -1
  7. package/dist/cjs/open-chat-studio-widget.cjs.js +2 -2
  8. package/dist/collection/components/ocs-chat/ocs-chat.css +569 -386
  9. package/dist/collection/components/ocs-chat/ocs-chat.js +105 -36
  10. package/dist/collection/components/ocs-chat/ocs-chat.js.map +1 -1
  11. package/dist/collection/utils/utils.js +30 -0
  12. package/dist/collection/utils/utils.js.map +1 -0
  13. package/dist/components/open-chat-studio-widget.js +99 -37
  14. package/dist/components/open-chat-studio-widget.js.map +1 -1
  15. package/dist/esm/{index-b188b488.js → index-205c77bc.js} +3 -2
  16. package/dist/{open-chat-studio-widget/p-a0fbe1b4.js.map → esm/index-205c77bc.js.map} +1 -1
  17. package/dist/esm/loader.js +3 -3
  18. package/dist/esm/open-chat-studio-widget.entry.js +97 -38
  19. package/dist/esm/open-chat-studio-widget.entry.js.map +1 -1
  20. package/dist/esm/open-chat-studio-widget.js +3 -3
  21. package/dist/open-chat-studio-widget/open-chat-studio-widget.esm.js +1 -1
  22. package/dist/open-chat-studio-widget/open-chat-studio-widget.esm.js.map +1 -1
  23. package/dist/open-chat-studio-widget/p-6c3059b7.entry.js +3 -0
  24. package/dist/open-chat-studio-widget/p-6c3059b7.entry.js.map +1 -0
  25. package/dist/open-chat-studio-widget/p-78d09c6b.js +3 -0
  26. package/dist/open-chat-studio-widget/p-78d09c6b.js.map +1 -0
  27. package/dist/types/components/ocs-chat/ocs-chat.d.ts +14 -3
  28. package/dist/types/components.d.ts +16 -0
  29. package/dist/types/utils/utils.d.ts +7 -0
  30. package/package.json +3 -2
  31. package/dist/cjs/index-b700441a.js.map +0 -1
  32. package/dist/esm/index-b188b488.js.map +0 -1
  33. package/dist/open-chat-studio-widget/p-a0fbe1b4.js +0 -3
  34. package/dist/open-chat-studio-widget/p-eb89e6d7.entry.js +0 -3
  35. package/dist/open-chat-studio-widget/p-eb89e6d7.entry.js.map +0 -1
@@ -500,23 +500,18 @@ video {
500
500
  display: none;
501
501
  }
502
502
  .starter-question {
503
- margin-left: 3rem;
504
503
  border-radius: 0.5rem;
505
- border-width: 1px;
506
- --tw-border-opacity: 1;
507
- border-color: rgb(59 130 246 / var(--tw-border-opacity, 1));
508
- padding: 0.75rem;
509
504
  text-align: left;
510
- --tw-text-opacity: 1;
511
- color: rgb(37 99 235 / var(--tw-text-opacity, 1));
512
505
  transition-duration: 200ms;
506
+ padding: var(--starter-question-padding, 0.75em);
507
+ background-color: var(--starter-question-bg-color);
508
+ border: 1px solid var(--starter-question-border-color);
509
+ color: var(--starter-question-text-color);
513
510
  }
514
511
  .starter-question:hover {
515
- --tw-border-opacity: 1;
516
- border-color: rgb(37 99 235 / var(--tw-border-opacity, 1));
517
- --tw-bg-opacity: 1;
518
- background-color: rgb(239 246 255 / var(--tw-bg-opacity, 1));
519
- }
512
+ background-color: var(--starter-question-bg-hover-color);
513
+ border-color: var(--starter-question-border-hover-color);
514
+ }
520
515
  .chat-btn-text,
521
516
  .chat-btn-icon {
522
517
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
@@ -535,17 +530,6 @@ video {
535
530
  --tw-scale-y: 1.05;
536
531
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
537
532
  }
538
- .chat-btn-text:focus,
539
- .chat-btn-icon:focus {
540
- outline: 2px solid transparent;
541
- outline-offset: 2px;
542
- --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
543
- --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
544
- box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
545
- --tw-ring-opacity: 1;
546
- --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1));
547
- --tw-ring-offset-width: 2px;
548
- }
549
533
  .chat-btn-text,
550
534
  .chat-btn-icon {
551
535
  background-color: var(--button-background-color, white);
@@ -555,11 +539,8 @@ video {
555
539
  .chat-btn-text {
556
540
  display: flex;
557
541
  align-items: center;
558
- gap: 0.5rem;
559
- padding-left: 0.75rem;
560
- padding-right: 0.75rem;
561
- padding-top: 0.75rem;
562
- padding-bottom: 0.75rem;
542
+ gap: 8px;
543
+ padding: var(--button-padding, 0.75em);
563
544
  color: var(--button-text-color, #111827);
564
545
  }
565
546
  .chat-btn-text:hover {
@@ -567,23 +548,22 @@ video {
567
548
  }
568
549
  .chat-btn-text span {
569
550
  white-space: nowrap;
570
- font-size: 0.875rem;
571
- line-height: 1.25rem;
572
551
  font-weight: 500;
552
+ font-size: var(--button-font-size);
573
553
  }
574
554
  .chat-btn-text img {
575
- height: 1.5rem;
576
- width: 1.5rem;
577
555
  flex-shrink: 0;
578
556
  -o-object-fit: contain;
579
557
  object-fit: contain;
558
+ width: var(--button-icon-width, 1.5em);
559
+ height: var(--button-icon-height, 1.5em);
580
560
  }
581
561
  /* Icon-only button */
582
562
  .chat-btn-icon {
583
- padding: 0.75rem;
563
+ padding: var(--button-padding, 0.75em);
584
564
  width: 56px;
585
565
  height: 56px;
586
- }
566
+ }
587
567
  .chat-btn-icon img {
588
568
  height: 100%;
589
569
  width: 100%;
@@ -594,104 +574,249 @@ video {
594
574
  .chat-btn-icon.round {
595
575
  border-radius: 9999px;
596
576
  }
597
- .pointer-events-none {
598
- pointer-events: none;
577
+ /* Error message styling */
578
+ .error-message {
579
+ padding: var(--error-message-padding, 0.5em);
580
+ color: var(--error-text-color);
581
+ }
582
+ /* Chat window positioning classes */
583
+ .chat-window-fullscreen {
584
+ position: fixed;
585
+ inset: 0px;
586
+ z-index: 9999;
587
+ display: flex;
588
+ height: 100%;
589
+ max-height: 100%;
590
+ width: 100%;
591
+ flex-direction: column;
592
+ overflow: hidden;
593
+ border-radius: 0px;
594
+ border-width: 0px;
595
+ --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
596
+ --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
597
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
598
+ transition-property: box-shadow;
599
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
600
+ transition-duration: 200ms;
601
+ background-color: var(--chat-window-bg-color);
602
+ font-size: var(--chat-window-font-size);
603
+ max-width: var(--chat-window-fullscreen-width);
599
604
  }
600
- .visible {
601
- visibility: visible;
605
+ .chat-window-normal {
606
+ position: fixed;
607
+ display: flex;
608
+ height: 100vh;
609
+ min-height: 300px;
610
+ width: 100vw;
611
+ min-width: 300px;
612
+ max-width: 1024px;
613
+ flex-direction: column;
614
+ overflow: hidden;
615
+ border-radius: 0.5rem;
602
616
  }
603
- .static {
604
- position: static;
617
+ @media (min-width: 640px) {
618
+
619
+ .chat-window-normal {
620
+ height: var(--chat-window-height);
621
+ width: var(--chat-window-width);
622
+ }
605
623
  }
606
- .fixed {
607
- position: fixed;
624
+ .chat-window-normal {
625
+ background-color: var(--chat-window-bg-color);
626
+ border: 1px solid var(--chat-window-border-color);
627
+ }
628
+ .chat-window-dragging {
629
+ cursor: grabbing;
630
+ --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
631
+ --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
632
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
608
633
  }
609
- .relative {
610
- position: relative;
634
+ .chat-window-normal:not(.chat-window-dragging) {
635
+ --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
636
+ --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
637
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
638
+ transition-property: box-shadow;
639
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
640
+ transition-duration: 200ms;
611
641
  }
612
- .inset-0 {
613
- inset: 0px;
642
+ /* Header/drag bar classes */
643
+ .chat-header {
644
+ display: flex;
645
+ align-items: center;
646
+ justify-content: space-between;
647
+ transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
648
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
649
+ transition-duration: 150ms;
650
+ padding: var(--header-padding, 0.5em);
651
+ background-color: var(--header-bg-color);
652
+ border-bottom: 1px solid var(--header-border-color);
614
653
  }
615
- .z-\[9999\] {
616
- z-index: 9999;
654
+ .chat-header:hover,
655
+ .chat-header:active {
656
+ background-color: var(--header-bg-hover-color);
657
+ }
658
+ .chat-header-draggable {
659
+ cursor: grab;
617
660
  }
618
- .ml-2 {
619
- margin-left: 0.5rem;
661
+ .chat-header-dragging {
662
+ cursor: grabbing;
620
663
  }
621
- .mt-1 {
622
- margin-top: 0.25rem;
664
+ .drag-indicator {
665
+ display: none;
623
666
  }
624
- .mt-2 {
625
- margin-top: 0.5rem;
667
+ @media (min-width: 640px) {
668
+
669
+ .drag-indicator {
670
+ display: flex;
671
+ }
626
672
  }
627
- .block {
628
- display: block;
673
+ .drag-dots {
674
+ pointer-events: none;
675
+ margin-left: 2px;
676
+ display: flex;
677
+ gap: 2px;
629
678
  }
630
- .flex {
679
+ @media (min-width: 640px) {
680
+
681
+ .drag-spacer {
682
+ display: none;
683
+ }
684
+ }
685
+ .header-buttons {
631
686
  display: flex;
687
+ align-items: center;
688
+ gap: 4px;
632
689
  }
633
- .table {
634
- display: table;
690
+ /* Header button classes */
691
+ .header-button {
692
+ border-radius: 0.375rem;
693
+ transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
694
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
695
+ transition-duration: 200ms;
696
+ padding: var(--button-padding-sm, 0.375em);
697
+ color: var(--header-button-text-color);
635
698
  }
636
- .hidden {
699
+ .header-button:hover {
700
+ background-color: var(--header-button-bg-hover-color);
701
+ }
702
+ .fullscreen-button {
637
703
  display: none;
638
704
  }
639
- .size-6 {
640
- width: 1.5rem;
641
- height: 1.5rem;
642
- }
643
- .h-1\.5 {
644
- height: 0.375rem;
705
+ @media (min-width: 640px) {
706
+
707
+ .fullscreen-button {
708
+ display: block;
709
+ }
645
710
  }
646
- .h-5\/6 {
647
- height: 83.333333%;
711
+ /* Chat content area */
712
+ .chat-content {
713
+ display: flex;
714
+ flex-grow: 1;
715
+ flex-direction: column;
716
+ overflow: hidden;
648
717
  }
649
- .h-full {
650
- height: 100%;
718
+ /* Loading state */
719
+ .loading-container {
720
+ display: flex;
721
+ flex-grow: 1;
722
+ align-items: center;
723
+ justify-content: center;
651
724
  }
652
- .max-h-full {
653
- max-height: 100%;
725
+ .loading-text {
726
+ margin-left: 2px;
727
+ color: var(--loading-text-color);
728
+ }
729
+ /* Messages container */
730
+ .messages-container {
731
+ flex-grow: 1;
654
732
  }
655
- .w-full {
656
- width: 100%;
733
+ .messages-container > :not([hidden]) ~ :not([hidden]) {
734
+ --tw-space-y-reverse: 0;
735
+ margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
736
+ margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
657
737
  }
658
- .max-w-screen-lg {
659
- max-width: 1024px;
738
+ .messages-container {
739
+ overflow-y: auto;
660
740
  }
661
- .max-w-xs {
662
- max-width: 20rem;
741
+ .messages-container::-webkit-scrollbar {
742
+ width: 0.375rem;
663
743
  }
664
- .flex-grow {
665
- flex-grow: 1;
744
+ .messages-container::-webkit-scrollbar-track {
745
+ border-radius: 0.25rem;
746
+ background-color: var(--scrollbar-track-color);
666
747
  }
667
- .origin-left-right {
668
- transform-origin: 0% 50%;
748
+ .messages-container::-webkit-scrollbar-thumb {
749
+ border-radius: 0.25rem;
750
+ background-color: var(--scrollbar-thumb-color);
669
751
  }
670
- .transform {
671
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
752
+ .messages-container::-webkit-scrollbar-thumb:hover {
753
+ background-color: var(--scrollbar-thumb-hover-color);
672
754
  }
673
- @keyframes dots {
674
-
675
- 0%, 20% {
676
- color: rgba(0,0,0,0);
677
- text-shadow: .25em 0 0 rgba(0,0,0,0), .5em 0 0 rgba(0,0,0,0);
755
+ .messages-container {
756
+ padding: var(--container-padding, 1em);
678
757
  }
679
-
680
- 40% {
681
- color: black;
682
- text-shadow: .25em 0 0 rgba(0,0,0,0), .5em 0 0 rgba(0,0,0,0);
758
+ /* Message bubbles */
759
+ .message-row {
760
+ display: flex;
761
+ }
762
+ .message-row-user {
763
+ justify-content: flex-end;
764
+ }
765
+ .message-row-assistant {
766
+ justify-content: flex-start;
767
+ }
768
+ .message-bubble {
769
+ border-radius: 0.5rem;
770
+ padding: var(--message-padding-y, 0.5em) var(--message-padding-x, 1em);
771
+ }
772
+ .message-bubble-user {
773
+ background-color: var(--message-user-bg-color);
774
+ color: var(--message-user-text-color);
683
775
  }
684
-
685
- 60% {
686
- text-shadow: .25em 0 0 black, .5em 0 0 rgba(0,0,0,0);
776
+ .message-bubble-assistant {
777
+ background-color: var(--message-assistant-bg-color);
778
+ color: var(--message-assistant-text-color);
687
779
  }
688
-
689
- 80%, 100% {
690
- text-shadow: .25em 0 0 black, .5em 0 0 black;
780
+ .message-bubble-system {
781
+ background-color: var(--message-system-bg-color);
782
+ color: var(--message-system-text-color);
691
783
  }
784
+ .message-timestamp {
785
+ margin-top: 4px;
786
+ opacity: 0.7;
787
+ font-size: var(--chat-window-font-size-sm);
692
788
  }
693
- .animate-dots {
694
- animation: dots 1s steps(5, end) infinite;
789
+ .message-attachments {
790
+ margin-top: 8px;
791
+ }
792
+ .message-attachments > :not([hidden]) ~ :not([hidden]) {
793
+ --tw-space-y-reverse: 0;
794
+ margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
795
+ margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));
796
+ }
797
+ .attachment-link {
798
+ display: block;
799
+ text-decoration-line: underline;
800
+ }
801
+ .attachment-link:hover {
802
+ text-decoration-line: none;
803
+ }
804
+ /* Welcome messages */
805
+ .welcome-messages > :not([hidden]) ~ :not([hidden]) {
806
+ --tw-space-y-reverse: 0;
807
+ margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
808
+ margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
809
+ }
810
+ /* Typing indicator */
811
+ .typing-indicator {
812
+ height: 0.375rem;
813
+ width: 100%;
814
+ overflow: hidden;
815
+ }
816
+ .typing-progress {
817
+ height: 100%;
818
+ width: 100%;
819
+ transform-origin: 0% 50%;
695
820
  }
696
821
  @keyframes progress {
697
822
 
@@ -715,233 +840,335 @@ video {
715
840
  transform: translateX(0) scaleX(0);
716
841
  }
717
842
  }
718
- .animate-progress {
843
+ .typing-progress {
719
844
  animation: progress 3s infinite linear;
845
+ border-radius: 0.5rem;
846
+ background-color: var(--typing-progress-bg-color);
720
847
  }
721
- .cursor-grab {
722
- cursor: grab;
723
- }
724
- .cursor-grabbing {
725
- cursor: grabbing;
726
- }
727
- .cursor-not-allowed {
728
- cursor: not-allowed;
729
- }
730
- .resize-none {
731
- resize: none;
732
- }
733
- .resize {
734
- resize: both;
735
- }
736
- .flex-col {
737
- flex-direction: column;
738
- }
739
- .items-center {
740
- align-items: center;
741
- }
742
- .justify-start {
743
- justify-content: flex-start;
744
- }
745
- .justify-end {
746
- justify-content: flex-end;
747
- }
748
- .justify-center {
848
+ .typing-text {
849
+ width: 100%;
749
850
  justify-content: center;
851
+ opacity: 0.7;
852
+ font-size: var(--chat-window-font-size-sm);
750
853
  }
751
- .justify-between {
752
- justify-content: space-between;
753
- }
754
- .gap-0\.5 {
755
- gap: 0.125rem;
756
- }
757
- .gap-1 {
758
- gap: 0.25rem;
854
+ @keyframes dots {
855
+
856
+ 0%, 20% {
857
+ color: rgba(0,0,0,0);
858
+ text-shadow: .25em 0 0 rgba(0,0,0,0), .5em 0 0 rgba(0,0,0,0);
859
+ }
860
+
861
+ 40% {
862
+ color: black;
863
+ text-shadow: .25em 0 0 rgba(0,0,0,0), .5em 0 0 rgba(0,0,0,0);
864
+ }
865
+
866
+ 60% {
867
+ text-shadow: .25em 0 0 black, .5em 0 0 rgba(0,0,0,0);
868
+ }
869
+
870
+ 80%, 100% {
871
+ text-shadow: .25em 0 0 black, .5em 0 0 black;
872
+ }
759
873
  }
760
- .gap-2 {
761
- gap: 0.5rem;
874
+ .typing-dots {
875
+ animation: dots 1s steps(5, end) infinite;
762
876
  }
763
- .space-y-1 > :not([hidden]) ~ :not([hidden]) {
764
- --tw-space-y-reverse: 0;
765
- margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
766
- margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));
877
+ .typing-dots:after {
878
+ content: ' .';
767
879
  }
768
- .space-y-2 > :not([hidden]) ~ :not([hidden]) {
880
+ /* Starter questions */
881
+ .starter-questions > :not([hidden]) ~ :not([hidden]) {
769
882
  --tw-space-y-reverse: 0;
770
883
  margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
771
884
  margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
772
885
  }
773
- .overflow-hidden {
774
- overflow: hidden;
775
- }
776
- .overflow-y-auto {
777
- overflow-y: auto;
886
+ .starter-questions {
887
+ padding: var(--container-padding, 1em);
888
+ font-size: var(--chat-window-font-size);
889
+ }
890
+ .starter-question-row {
891
+ display: flex;
892
+ justify-content: flex-end;
778
893
  }
779
- .rounded-lg {
780
- border-radius: 0.5rem;
894
+ /* Input area */
895
+ .input-area {
896
+ padding: var(--container-padding, 1em);
897
+ background-color: var(--input-bg-color);
898
+ border-top: 1px solid var(--input-border-color);
899
+ font-size: var(--chat-window-font-size);
900
+ }
901
+ .input-container {
902
+ display: flex;
903
+ gap: 8px;
781
904
  }
782
- .rounded-md {
905
+ .message-textarea {
906
+ flex-grow: 1;
907
+ resize: none;
783
908
  border-radius: 0.375rem;
784
- }
785
- .rounded-none {
786
- border-radius: 0px;
787
- }
788
- .border {
789
909
  border-width: 1px;
790
- }
791
- .border-0 {
792
- border-width: 0px;
793
- }
794
- .border-b {
795
- border-bottom-width: 1px;
796
- }
797
- .border-t {
798
- border-top-width: 1px;
799
- }
800
- .border-gray-100 {
801
- --tw-border-opacity: 1;
802
- border-color: rgb(243 244 246 / var(--tw-border-opacity, 1));
803
- }
804
- .border-gray-200 {
805
- --tw-border-opacity: 1;
806
- border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));
807
- }
808
- .border-gray-300 {
809
910
  --tw-border-opacity: 1;
810
911
  border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));
811
912
  }
812
- .bg-blue-200 {
813
- --tw-bg-opacity: 1;
814
- background-color: rgb(191 219 254 / var(--tw-bg-opacity, 1));
815
- }
816
- .bg-blue-500 {
817
- --tw-bg-opacity: 1;
818
- background-color: rgb(59 130 246 / var(--tw-bg-opacity, 1));
819
- }
820
- .bg-gray-100 {
821
- --tw-bg-opacity: 1;
822
- background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
823
- }
824
- .bg-gray-200 {
825
- --tw-bg-opacity: 1;
826
- background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1));
827
- }
828
- .bg-gray-300 {
829
- --tw-bg-opacity: 1;
830
- background-color: rgb(209 213 219 / var(--tw-bg-opacity, 1));
831
- }
832
- .bg-white {
833
- --tw-bg-opacity: 1;
834
- background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
835
- }
836
- .p-1\.5 {
837
- padding: 0.375rem;
838
- }
839
- .p-2 {
840
- padding: 0.5rem;
913
+ .message-textarea:focus {
914
+ outline-color: #93c5fd;
841
915
  }
842
- .p-4 {
843
- padding: 1rem;
844
- }
845
- .px-2 {
846
- padding-left: 0.5rem;
847
- padding-right: 0.5rem;
848
- }
849
- .px-3 {
850
- padding-left: 0.75rem;
851
- padding-right: 0.75rem;
852
- }
853
- .px-4 {
854
- padding-left: 1rem;
855
- padding-right: 1rem;
856
- }
857
- .py-2 {
858
- padding-top: 0.5rem;
859
- padding-bottom: 0.5rem;
860
- }
861
- .text-sm {
862
- font-size: 0.875rem;
863
- line-height: 1.25rem;
864
- }
865
- .text-xs {
866
- font-size: 0.75rem;
867
- line-height: 1rem;
868
- }
869
- .font-medium {
916
+ .message-textarea {
917
+ padding: var(--input-textarea-padding-y, 0.5em) var(--input-textarea-padding-x, 0.75em);
918
+ color: var(--input-text-color);
919
+ border: 1px solid var(--input-border-color);
920
+ }
921
+ .message-textarea:focus {
922
+ outline-color: var(--input-outline-focus-color);
923
+ }
924
+ .send-button {
925
+ border-radius: 0.375rem;
870
926
  font-weight: 500;
927
+ transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
928
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
929
+ transition-duration: 200ms;
930
+ padding: var(--send-button-padding-y, 0.5em) var(--send-button-padding-x, 1em);
931
+ font-size: var(--chat-window-font-size);
871
932
  }
872
- .text-gray-500 {
873
- --tw-text-opacity: 1;
874
- color: rgb(107 114 128 / var(--tw-text-opacity, 1));
933
+ .send-button-enabled {
934
+ background-color: var(--send-button-bg-color);
935
+ color: var(--send-button-text-color);
936
+ }
937
+ .send-button-enabled:hover {
938
+ background-color: var(--send-button-bg-hover-color);
939
+ }
940
+ .send-button-disabled {
941
+ cursor: not-allowed;
942
+ background-color: var(--send-button-bg-disabled-color);
943
+ color: var(--send-button-text-disabled-color);
875
944
  }
876
- .text-gray-600 {
877
- --tw-text-opacity: 1;
878
- color: rgb(75 85 99 / var(--tw-text-opacity, 1));
945
+ .visible {
946
+ visibility: visible;
879
947
  }
880
- .text-gray-800 {
881
- --tw-text-opacity: 1;
882
- color: rgb(31 41 55 / var(--tw-text-opacity, 1));
948
+ .static {
949
+ position: static;
883
950
  }
884
- .text-red-500 {
885
- --tw-text-opacity: 1;
886
- color: rgb(239 68 68 / var(--tw-text-opacity, 1));
951
+ .relative {
952
+ position: relative;
887
953
  }
888
- .text-white {
889
- --tw-text-opacity: 1;
890
- color: rgb(255 255 255 / var(--tw-text-opacity, 1));
954
+ .table {
955
+ display: table;
891
956
  }
892
- .underline {
893
- text-decoration-line: underline;
957
+ .size-6 {
958
+ width: 1.5rem;
959
+ height: 1.5rem;
894
960
  }
895
- .opacity-70 {
896
- opacity: 0.7;
961
+ .transform {
962
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
963
+ }
964
+ .resize {
965
+ resize: both;
897
966
  }
898
967
  .shadow {
899
968
  --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
900
969
  --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
901
970
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
902
971
  }
903
- .shadow-2xl {
904
- --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
905
- --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
906
- box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
907
- }
908
- .shadow-lg {
909
- --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
910
- --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
911
- box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
912
- }
913
- .transition-colors {
914
- transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
915
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
916
- transition-duration: 150ms;
917
- }
918
- .transition-shadow {
919
- transition-property: box-shadow;
920
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
921
- transition-duration: 150ms;
922
- }
923
- .duration-150 {
924
- transition-duration: 150ms;
925
- }
926
- .duration-200 {
927
- transition-duration: 200ms;
928
- }
929
972
  :host {
930
973
  /**
931
- * @prop --button-background-color: Button background color
932
- * @prop --button-background-color-hover: Button background color on hover
933
- * @prop --button-text-color: Button text color
934
- * @prop --button-text-color-hover: Button text color on hover
935
- * @prop --button-border-color: Button border color
936
- * @prop --button-border-color-hover: Button border color on hover
974
+ * Global Variables
975
+ * @prop --chat-z-index: Z-index for chat widget (50)
976
+ * @prop --container-padding: General container padding (1em)
977
+ *
978
+ * Button Variables
979
+ * @prop --button-background-color: Button background color (#ffffff)
980
+ * @prop --button-background-color-hover: Button background color on hover (#f3f4f6)
981
+ * @prop --button-text-color: Button text color (#111827)
982
+ * @prop --button-text-color-hover: Button text color on hover (#1d4ed8)
983
+ * @prop --button-border-color: Button border color (#6b7280)
984
+ * @prop --button-border-color-hover: Button border color on hover (#374151)
985
+ * @prop --button-padding: Button padding (0.75em)
986
+ * @prop --button-padding-sm: Small button padding (0.375em)
987
+ * @prop --button-font-size: Button text font size (0.875em)
988
+ * @prop --button-icon-width: Button icon width (1.5em)
989
+ * @prop --button-icon-height: Button icon height (1.5em)
990
+ *
991
+ * Chat Window Variables
992
+ * @prop --chat-window-height: Chat window height in pixels or percent (60%)
993
+ * @prop --chat-window-width: Chat window width in pixels or percent (25%)
994
+ * @prop --chat-window-fullscreen-width: Chat window fullscreen width in pixels or percent (80%)
995
+ * @prop --chat-window-bg-color: Chat window background color (#ffffff)
996
+ * @prop --chat-window-border-color: Chat window border color (#d1d5db)
997
+ * @prop --chat-window-shadow-color: Chat window shadow color (rgba(0, 0, 0, 0.1))
998
+ * @prop --chat-window-font-size: Default font size for text in the chat window (0.875em)
999
+ * @prop --chat-window-font-size-sm: Font size for small text in the chat window (0.75em)
1000
+ *
1001
+ * Header Variables
1002
+ * @prop --header-bg-color: Header background color (transparent)
1003
+ * @prop --header-bg-hover-color: Header background color on hover (#f9fafb)
1004
+ * @prop --header-border-color: Header border color (#f3f4f6)
1005
+ * @prop --header-button-text-color: Header button text color (#6b7280)
1006
+ * @prop --header-button-bg-hover-color: Header button background on hover (#f3f4f6)
1007
+ * @prop --header-padding: Header padding (0.5em)
1008
+ *
1009
+ * Starter Question Variables
1010
+ * @prop --starter-question-bg-color: Starter question background color (transparent)
1011
+ * @prop --starter-question-bg-hover-color: Starter question background on hover (#eff6ff)
1012
+ * @prop --starter-question-text-color: Starter question text color (#3b82f6)
1013
+ * @prop --starter-question-border-color: Starter question border color (#3b82f6)
1014
+ * @prop --starter-question-border-hover-color: Starter question border on hover (#2563eb)
1015
+ * @prop --starter-question-padding: Starter question padding (0.75em)
1016
+ *
1017
+ * Message Bubble Variables
1018
+ * @prop --message-user-bg-color: User message background color (#3b82f6)
1019
+ * @prop --message-user-text-color: User message text color (#ffffff)
1020
+ * @prop --message-assistant-bg-color: Assistant message background color (#e5e7eb)
1021
+ * @prop --message-assistant-text-color: Assistant message text color (#1f2937)
1022
+ * @prop --message-system-bg-color: System message background color (#f3f4f6)
1023
+ * @prop --message-system-text-color: System message text color (#4b5563)
1024
+ * @prop --message-timestamp-color: User message timestamp color (rgba(255, 255, 255, 0.7))
1025
+ * @prop --message-timestamp-assistant-color: Assistant message timestamp color (rgba(75, 85, 99, 0.7))
1026
+ * @prop --message-padding-x: Message horizontal padding (1em)
1027
+ * @prop --message-padding-y: Message vertical padding (0.5em)
1028
+ *
1029
+ * Input Area Variables
1030
+ * @prop --input-bg-color: Input area background color (transparent)
1031
+ * @prop --input-border-color: Input field border color (#d1d5db)
1032
+ * @prop --input-text-color: Input text color (#111827)
1033
+ * @prop --input-placeholder-color: Input placeholder text color (#6b7280)
1034
+ * @prop --input-outline-focus-color: Input field focus ring color (#3b82f6)
1035
+ * @prop --input-textarea-padding-x: Input textarea horizontal padding (0.75em)
1036
+ * @prop --input-textarea-padding-y: Input textarea vertical padding (0.5em)
1037
+ *
1038
+ * Send Button Variables
1039
+ * @prop --send-button-bg-color: Send button background color (#3b82f6)
1040
+ * @prop --send-button-bg-hover-color: Send button background on hover (#2563eb)
1041
+ * @prop --send-button-text-color: Send button text color (#ffffff)
1042
+ * @prop --send-button-bg-disabled-color: Send button background when disabled (#d1d5db)
1043
+ * @prop --send-button-text-disabled-color: Send button text when disabled (#6b7280)
1044
+ * @prop --send-button-padding-x: Send button horizontal padding (1em)
1045
+ * @prop --send-button-padding-y: Send button vertical padding (0.5em)
1046
+ *
1047
+ * Loading Variables
1048
+ * @prop --loading-text-color: Loading text color (#6b7280)
1049
+ * @prop --loading-spinner-track-color: Loading spinner track color (#e5e7eb)
1050
+ * @prop --loading-spinner-fill-color: Loading spinner fill color (#3b82f6)
1051
+ * @prop --loading-spinner-size: Loading spinner size (1.25em)
1052
+ *
1053
+ * Typing Indicator Variables
1054
+ * @prop --typing-progress-bg-color: Typing progress bar background color (#ade3ff)
1055
+ *
1056
+ * Scrollbar Variables
1057
+ * @prop --scrollbar-track-color: Scrollbar track color (#f3f4f6)
1058
+ * @prop --scrollbar-thumb-color: Scrollbar thumb color (#d1d5db)
1059
+ * @prop --scrollbar-thumb-hover-color: Scrollbar thumb hover color (#9ca3af)
1060
+ *
1061
+ * Error Variables
1062
+ * @prop --error-text-color: Error text color (#ef4444)
1063
+ * @prop --error-message-padding: Error message padding (0.5em)
1064
+ *
1065
+ * Markdown Code Variables
1066
+ * @prop --code-bg-user-color: Code background in user messages (--message-user-bg-color + 20% white)
1067
+ * @prop --code-text-user-color: Code text color in user messages (--message-user-text-color)
1068
+ * @prop --code-border-user-color: Code border in user messages (--message-user-bg-color + 20% black)
1069
+ * @prop --code-bg-assistant-color: Code background in assistant messages (--message-assistant-bg-color + 50% white)
1070
+ * @prop --code-text-assistant-color: Code text color in assistant messages (--message-assistant-text-color)
1071
+ * @prop --code-border-assistant-color: Code border in assistant messages (--message-assistant-bg-color + 10% black)
937
1072
  */
938
- --button-background-color: white;
1073
+ /* Global variables */
1074
+ --chat-z-index: 50;
1075
+ --container-padding: 1em;
1076
+
1077
+ /* Button variables */
1078
+ --button-background-color: #ffffff;
939
1079
  --button-background-color-hover: #f3f4f6;
940
1080
  --button-text-color: #111827;
941
1081
  --button-text-color-hover: #1d4ed8;
942
1082
  --button-border-color: #6b7280;
943
1083
  --button-border-color-hover: #374151;
944
- --chat-z-index: 50;
1084
+ --button-padding: 0.75em;
1085
+ --button-padding-sm: 0.375em;
1086
+ --button-font-size: 0.875em; /* text-sm */
1087
+ --button-icon-width: 1.5em;
1088
+ --button-icon-height: 1.5em;
1089
+
1090
+ /* Chat window variables */
1091
+ --chat-window-height: 60%;
1092
+ --chat-window-width: 25%;
1093
+ --chat-window-fullscreen-width: 80%;
1094
+ --chat-window-bg-color: #ffffff;
1095
+ --chat-window-border-color: #d1d5db;
1096
+ --chat-window-shadow-color: rgba(0, 0, 0, 0.1);
1097
+ --chat-window-font-size: 0.875em; /* text-sm */
1098
+ --chat-window-font-size-sm: 0.75em; /* text-xs */
1099
+
1100
+ /* Header variables */
1101
+ --header-bg-color: transparent;
1102
+ --header-bg-hover-color: #f9fafb;
1103
+ --header-border-color: #f3f4f6;
1104
+ --header-button-text-color: #6b7280;
1105
+ --header-button-bg-hover-color: #f3f4f6;
1106
+ --header-padding: 0.5em;
1107
+
1108
+ /* Starter question variables */
1109
+ --starter-question-bg-color: transparent;
1110
+ --starter-question-bg-hover-color: #eff6ff;
1111
+ --starter-question-text-color: #3b82f6;
1112
+ --starter-question-border-color: #3b82f6;
1113
+ --starter-question-border-hover-color: #2563eb;
1114
+ --starter-question-padding: 0.75em;
1115
+
1116
+ /* Message bubble variables */
1117
+ --message-user-bg-color: #3b82f6;
1118
+ --message-user-text-color: #ffffff;
1119
+ --message-assistant-bg-color: #e5e7eb;
1120
+ --message-assistant-text-color: #1f2937;
1121
+ --message-system-bg-color: #f3f4f6;
1122
+ --message-system-text-color: #4b5563;
1123
+ --message-timestamp-color: rgba(255, 255, 255, 0.7);
1124
+ --message-timestamp-assistant-color: rgba(75, 85, 99, 0.7);
1125
+ --message-padding-x: 1em;
1126
+ --message-padding-y: 0.5em;
1127
+
1128
+ /* Input area variables */
1129
+ --input-bg-color: transparent;
1130
+ --input-border-color: #d1d5db;
1131
+ --input-text-color: #111827;
1132
+ --input-placeholder-color: #6b7280;
1133
+ --input-outline-focus-color: #3b82f6;
1134
+ --input-textarea-padding-x: 0.75em;
1135
+ --input-textarea-padding-y: 0.5em;
1136
+
1137
+ /* Send button variables */
1138
+ --send-button-bg-color: #3b82f6;
1139
+ --send-button-bg-hover-color: #2563eb;
1140
+ --send-button-text-color: #ffffff;
1141
+ --send-button-bg-disabled-color: #d1d5db;
1142
+ --send-button-text-disabled-color: #6b7280;
1143
+ --send-button-padding-x: 1em;
1144
+ --send-button-padding-y: 0.5em;
1145
+
1146
+ /* Loading variables */
1147
+ --loading-text-color: #6b7280;
1148
+ --loading-spinner-track-color: #e5e7eb;
1149
+ --loading-spinner-fill-color: #3b82f6;
1150
+ --loading-spinner-size: 1.25em;
1151
+
1152
+ /* Typing indicator variables */
1153
+ --typing-progress-bg-color: #ade3ff;
1154
+
1155
+ /* Scrollbar variables */
1156
+ --scrollbar-track-color: #f3f4f6;
1157
+ --scrollbar-thumb-color: #d1d5db;
1158
+ --scrollbar-thumb-hover-color: #9ca3af;
1159
+
1160
+ /* Error variables */
1161
+ --error-text-color: #ef4444;
1162
+ --error-message-padding: 0.5em;
1163
+
1164
+ /* Markdown code variables */
1165
+ --code-bg-user-color: color-mix(in srgb, var(--message-user-bg-color) 80%, white 20%);
1166
+ --code-text-user-color: var(--message-user-text-color);
1167
+ --code-border-user-color: color-mix(in srgb, var(--message-user-bg-color) 90%, black 10%);
1168
+ --code-bg-assistant-color: color-mix(in srgb, var(--message-assistant-bg-color) 50%, white 50%);
1169
+ --code-text-assistant-color: var(--message-assistant-text-color);
1170
+ --code-border-assistant-color: color-mix(in srgb, var(--message-assistant-bg-color) 90%, black 10%);;
1171
+
945
1172
  display: block;
946
1173
  position: fixed;
947
1174
  right: 20px;
@@ -961,21 +1188,14 @@ textarea::-webkit-scrollbar {
961
1188
  }
962
1189
  textarea::-webkit-scrollbar-track {
963
1190
  border-radius: 0.25rem;
964
- --tw-bg-opacity: 1;
965
- background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
1191
+ background-color: var(--scrollbar-track-color);
966
1192
  }
967
1193
  textarea::-webkit-scrollbar-thumb {
968
1194
  border-radius: 0.25rem;
969
- --tw-bg-opacity: 1;
970
- background-color: rgb(209 213 219 / var(--tw-bg-opacity, 1));
1195
+ background-color: var(--scrollbar-thumb-color);
971
1196
  }
972
1197
  textarea::-webkit-scrollbar-thumb:hover {
973
- --tw-bg-opacity: 1;
974
- background-color: rgb(156 163 175 / var(--tw-bg-opacity, 1));
975
- }
976
- .loading-spinner {
977
- height: 1.25rem;
978
- width: 1.25rem;
1198
+ background-color: var(--scrollbar-thumb-hover-color);
979
1199
  }
980
1200
  @keyframes spin {
981
1201
 
@@ -987,26 +1207,24 @@ textarea::-webkit-scrollbar-thumb:hover {
987
1207
  animation: spin 1s linear infinite;
988
1208
  border-radius: 9999px;
989
1209
  border-width: 2px;
990
- border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));
991
- --tw-border-opacity: 1;
992
- border-top-color: rgb(59 130 246 / var(--tw-border-opacity, 1));
1210
+ border-color: var(--loading-spinner-track-color);
1211
+ border-top-color: var(--loading-spinner-fill-color);
1212
+ width: var(--loading-spinner-size, 1.25em);
1213
+ height: var(--loading-spinner-size, 1.25em);
993
1214
  }
994
1215
  .overflow-y-auto::-webkit-scrollbar {
995
1216
  width: 0.375rem;
996
1217
  }
997
1218
  .overflow-y-auto::-webkit-scrollbar-track {
998
1219
  border-radius: 0.25rem;
999
- --tw-bg-opacity: 1;
1000
- background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
1220
+ background-color: var(--scrollbar-track-color);
1001
1221
  }
1002
1222
  .overflow-y-auto::-webkit-scrollbar-thumb {
1003
1223
  border-radius: 0.25rem;
1004
- --tw-bg-opacity: 1;
1005
- background-color: rgb(209 213 219 / var(--tw-bg-opacity, 1));
1224
+ background-color: var(--scrollbar-thumb-color);
1006
1225
  }
1007
1226
  .overflow-y-auto::-webkit-scrollbar-thumb:hover {
1008
- --tw-bg-opacity: 1;
1009
- background-color: rgb(156 163 175 / var(--tw-bg-opacity, 1));
1227
+ background-color: var(--scrollbar-thumb-hover-color);
1010
1228
  }
1011
1229
  /* Markdown content styling for chat messages */
1012
1230
  .chat-markdown {
@@ -1663,13 +1881,51 @@ textarea::-webkit-scrollbar-thumb:hover {
1663
1881
  --tw-prose-invert-th-borders: #4b5563;
1664
1882
  --tw-prose-invert-td-borders: #374151;
1665
1883
  max-width: none;
1884
+ font-size: var(--chat-window-font-size);
1885
+ --tw-prose-body: var(--message-assistant-text-color);
1886
+ --tw-prose-headings: var(--message-assistant-text-color);
1887
+ --tw-prose-lead: var(--message-assistant-text-color);
1888
+ --tw-prose-links: var(--message-assistant-text-color);
1889
+ --tw-prose-bold: var(--message-assistant-text-color);
1890
+ --tw-prose-counters: var(--message-assistant-text-color);
1891
+ --tw-prose-bullets: var(--message-assistant-text-color);
1892
+ --tw-prose-hr: var(--message-assistant-text-color);
1893
+ --tw-prose-quotes: var(--message-assistant-text-color);
1894
+ --tw-prose-quote-borders: var(--message-assistant-text-color);
1895
+ --tw-prose-captions: var(--message-assistant-text-color);
1896
+ --tw-prose-kbd: var(--message-assistant-text-color);
1897
+ --tw-prose-kbd-shadows: var(--message-assistant-text-color);
1898
+ --tw-prose-code: var(--code-text-assistant-color);
1899
+ --tw-prose-pre-code: var(--code-text-assistant-color);
1900
+ --tw-prose-pre-bg: var(--code-bg-assistant-color);
1901
+ --tw-prose-th-borders: var(--message-assistant-text-color);
1902
+ --tw-prose-td-borders: var(--message-assistant-text-color);
1903
+
1904
+ --tw-prose-invert-body: var(--message-user-text-color);
1905
+ --tw-prose-invert-headings: var(--message-user-text-color);
1906
+ --tw-prose-invert-lead: var(--message-user-text-color);
1907
+ --tw-prose-invert-links: var(--message-user-text-color);
1908
+ --tw-prose-invert-bold: var(--message-user-text-color);
1909
+ --tw-prose-invert-counters: var(--message-user-text-color);
1910
+ --tw-prose-invert-bullets: var(--message-user-text-color);
1911
+ --tw-prose-invert-hr: var(--message-user-text-color);
1912
+ --tw-prose-invert-quotes: var(--message-user-text-color);
1913
+ --tw-prose-invert-quote-borders: var(--message-user-text-color);
1914
+ --tw-prose-invert-captions: var(--message-user-text-color);
1915
+ --tw-prose-invert-kbd: var(--message-user-text-color);
1916
+ --tw-prose-invert-kbd-shadows: var(--message-user-text-color);
1917
+ --tw-prose-invert-code: var(--code-text-user-color);
1918
+ --tw-prose-invert-pre-code: var(--code-text-user-color);
1919
+ --tw-prose-invert-pre-bg: var(--code-bg-user-color);
1920
+ --tw-prose-invert-th-borders: var(--message-user-text-color);
1921
+ --tw-prose-invert-td-borders: var(--message-user-text-color);
1666
1922
  }
1667
1923
  /* override spacing */
1668
1924
  .chat-markdown > * {
1669
- margin-top: 0.1rem;
1670
- margin-bottom: 0.1rem;
1925
+ margin-top: 0.1em;
1926
+ margin-bottom: 0.1em;
1671
1927
  }
1672
- .bg-blue-500 .chat-markdown {
1928
+ .message-bubble-user .chat-markdown {
1673
1929
  --tw-prose-body: var(--tw-prose-invert-body);
1674
1930
  --tw-prose-headings: var(--tw-prose-invert-headings);
1675
1931
  --tw-prose-lead: var(--tw-prose-invert-lead);
@@ -1689,85 +1945,12 @@ textarea::-webkit-scrollbar-thumb:hover {
1689
1945
  --tw-prose-th-borders: var(--tw-prose-invert-th-borders);
1690
1946
  --tw-prose-td-borders: var(--tw-prose-invert-td-borders);
1691
1947
  }
1692
- .bg-blue-500 .chat-markdown code {
1693
- background-color: rgb(96 165 250 / 0.5);
1694
- --tw-text-opacity: 1;
1695
- color: rgb(239 246 255 / var(--tw-text-opacity, 1));
1696
- }
1697
- .bg-blue-500 .chat-markdown pre {
1698
- --tw-border-opacity: 1;
1699
- border-color: rgb(96 165 250 / var(--tw-border-opacity, 1));
1700
- background-color: rgb(96 165 250 / 0.5);
1701
- }
1702
- .bg-gray-200 .chat-markdown code {
1703
- border-width: 1px;
1704
- --tw-border-opacity: 1;
1705
- border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));
1706
- --tw-bg-opacity: 1;
1707
- background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
1948
+ .message-bubble-user .chat-markdown pre {
1949
+ border: 1px solid var(--code-border-user-color);
1708
1950
  }
1709
- .bg-gray-200 .chat-markdown pre {
1710
- border-width: 1px;
1711
- --tw-border-opacity: 1;
1712
- border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));
1713
- --tw-bg-opacity: 1;
1714
- background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
1951
+ .message-bubble-assistant .chat-markdown pre {
1952
+ border: 1px solid var(--code-border-assistant-color);
1715
1953
  }
1716
1954
  .loading:after {
1717
1955
  content: ' .';
1718
1956
  }
1719
- .hover\:bg-blue-600:hover {
1720
- --tw-bg-opacity: 1;
1721
- background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1));
1722
- }
1723
- .hover\:bg-gray-100:hover {
1724
- --tw-bg-opacity: 1;
1725
- background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));
1726
- }
1727
- .hover\:no-underline:hover {
1728
- text-decoration-line: none;
1729
- }
1730
- .focus\:border-transparent:focus {
1731
- border-color: transparent;
1732
- }
1733
- .focus\:outline-none:focus {
1734
- outline: 2px solid transparent;
1735
- outline-offset: 2px;
1736
- }
1737
- .focus\:ring-2:focus {
1738
- --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
1739
- --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
1740
- box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
1741
- }
1742
- .focus\:ring-blue-500:focus {
1743
- --tw-ring-opacity: 1;
1744
- --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1));
1745
- }
1746
- .active\:bg-gray-50:active {
1747
- --tw-bg-opacity: 1;
1748
- background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1));
1749
- }
1750
- @media (min-width: 640px) {
1751
-
1752
- .sm\:block {
1753
- display: block;
1754
- }
1755
-
1756
- .sm\:flex {
1757
- display: flex;
1758
- }
1759
-
1760
- .sm\:hidden {
1761
- display: none;
1762
- }
1763
-
1764
- .sm\:w-\[450px\] {
1765
- width: 450px;
1766
- }
1767
- }
1768
- @media (min-width: 1024px) {
1769
-
1770
- .lg\:max-w-md {
1771
- max-width: 28rem;
1772
- }
1773
- }