open-chat-studio-widget 0.4.0 → 0.4.2

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