@webless/agent 0.4.1 → 0.5.0

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/embed.css CHANGED
@@ -322,9 +322,9 @@ html.webless-agent-page-shift {
322
322
  }
323
323
  .agent-activity-bubble__details {
324
324
  overflow: hidden;
325
- border: 1px solid var(--as-border);
325
+ border: 1px solid color-mix(in srgb, var(--as-border) 72%, var(--as-surface));
326
326
  border-radius: 14px;
327
- background: color-mix(in srgb, var(--as-surface-muted) 48%, var(--as-surface));
327
+ background: color-mix(in srgb, var(--as-surface-muted) 72%, var(--as-surface));
328
328
  }
329
329
  .agent-activity-bubble__details summary {
330
330
  display: flex;
@@ -493,9 +493,9 @@ html.webless-agent-page-shift {
493
493
  align-items: flex-end;
494
494
  gap: 6px;
495
495
  padding: 6px;
496
- border: 1px solid var(--as-border);
496
+ border: 1px solid color-mix(in srgb, var(--as-border) 72%, var(--as-surface));
497
497
  border-radius: 16px;
498
- background: var(--as-surface);
498
+ background: color-mix(in srgb, var(--as-surface-muted) 72%, var(--as-surface));
499
499
  box-shadow: 0 1px 2px color-mix(in srgb, var(--as-text) 5%, transparent);
500
500
  }
501
501
  .composer__field:focus-within {
@@ -549,8 +549,8 @@ html.webless-agent-page-shift {
549
549
  .composer--dock .composer__field {
550
550
  align-items: center;
551
551
  padding: 5px 5px 5px 13px;
552
- background: var(--as-surface);
553
- border: 1px solid var(--as-border);
552
+ background: color-mix(in srgb, var(--as-surface-muted) 72%, var(--as-surface));
553
+ border: 1px solid color-mix(in srgb, var(--as-border) 72%, var(--as-surface));
554
554
  border-radius: 999px;
555
555
  box-shadow: none;
556
556
  }
@@ -661,6 +661,211 @@ html.webless-agent-page-shift {
661
661
  display: none;
662
662
  }
663
663
 
664
+ /* src/react/components/BookingCard/BookingCard.css */
665
+ .booking-card {
666
+ width: 100%;
667
+ box-sizing: border-box;
668
+ overflow: visible;
669
+ border: 1px solid var(--as-border);
670
+ border-radius: var(--as-radius-md);
671
+ background: var(--as-surface);
672
+ }
673
+ .booking-card__form,
674
+ .booking-card__step,
675
+ .booking-card__identity,
676
+ .booking-card__field {
677
+ display: flex;
678
+ flex-direction: column;
679
+ gap: 16px;
680
+ min-width: 0;
681
+ }
682
+ .booking-card__form {
683
+ padding: 16px;
684
+ }
685
+ .booking-card__step {
686
+ gap: 16px;
687
+ }
688
+ .booking-card__identity,
689
+ .booking-card__field {
690
+ gap: 8px;
691
+ }
692
+ .booking-card__title {
693
+ margin: 0;
694
+ font-size: 14px;
695
+ font-weight: 650;
696
+ color: var(--as-text);
697
+ text-wrap: balance;
698
+ }
699
+ .booking-card__tz,
700
+ .booking-card__field span {
701
+ margin: 0;
702
+ font-size: 12px;
703
+ font-weight: 600;
704
+ color: var(--as-text-muted, var(--as-text));
705
+ }
706
+ .booking-card__step-bar {
707
+ display: flex;
708
+ align-items: center;
709
+ gap: 8px;
710
+ }
711
+ .booking-card__month {
712
+ display: grid;
713
+ grid-template-columns: 32px 1fr 32px;
714
+ align-items: center;
715
+ gap: 8px;
716
+ }
717
+ .booking-card__month-title {
718
+ margin: 0;
719
+ text-align: center;
720
+ font-size: 14px;
721
+ font-weight: 650;
722
+ color: var(--as-text);
723
+ }
724
+ .booking-card__nav {
725
+ appearance: none;
726
+ display: grid;
727
+ place-items: center;
728
+ flex: 0 0 auto;
729
+ width: 32px;
730
+ height: 32px;
731
+ padding: 0;
732
+ border: 0;
733
+ border-radius: 8px;
734
+ background: transparent;
735
+ color: var(--as-text);
736
+ font: inherit;
737
+ font-size: 18px;
738
+ line-height: 1;
739
+ cursor: pointer;
740
+ }
741
+ .booking-card__nav:hover:not(:disabled) {
742
+ background: var(--as-surface-muted, #f4f6fb);
743
+ }
744
+ .booking-card__nav:disabled {
745
+ color: var(--as-text-subtle);
746
+ cursor: default;
747
+ }
748
+ .booking-card__nav:focus-visible,
749
+ .booking-card__day:focus-visible,
750
+ .booking-card__time:focus-visible,
751
+ .booking-card__field input:focus-visible,
752
+ .booking-card__field select:focus-visible,
753
+ .booking-card__submit:focus-visible {
754
+ outline: 2px solid var(--as-brand);
755
+ outline-offset: 2px;
756
+ }
757
+ .booking-card__weekdays,
758
+ .booking-card__calendar {
759
+ display: grid;
760
+ grid-template-columns: repeat(7, minmax(0, 1fr));
761
+ gap: 4px;
762
+ }
763
+ .booking-card__calendar {
764
+ min-height: calc((36px * 6) + (4px * 5));
765
+ }
766
+ .booking-card__weekdays span {
767
+ min-height: 24px;
768
+ color: var(--as-text-muted, var(--as-text));
769
+ font-size: 11px;
770
+ font-weight: 600;
771
+ text-align: center;
772
+ }
773
+ .booking-card__day {
774
+ appearance: none;
775
+ display: grid;
776
+ place-items: center;
777
+ width: 100%;
778
+ aspect-ratio: 1;
779
+ min-height: 36px;
780
+ padding: 0;
781
+ border: 0;
782
+ border-radius: 999px;
783
+ background: transparent;
784
+ color: var(--as-text-subtle);
785
+ font: inherit;
786
+ font-size: 13px;
787
+ font-weight: 600;
788
+ cursor: default;
789
+ }
790
+ .booking-card__day--available {
791
+ background: var(--as-brand-soft);
792
+ color: var(--as-text);
793
+ cursor: pointer;
794
+ }
795
+ .booking-card__day--available:hover {
796
+ background: var(--as-brand-light);
797
+ }
798
+ .booking-card__day--selected,
799
+ .booking-card__day--selected:hover {
800
+ background: var(--as-visitor-bubble, var(--as-brand));
801
+ color: var(--as-visitor-text, #fff);
802
+ }
803
+ .booking-card__times {
804
+ display: flex;
805
+ flex-direction: column;
806
+ gap: 8px;
807
+ }
808
+ .booking-card__times:has(:nth-child(7)) {
809
+ display: grid;
810
+ grid-template-columns: 1fr 1fr;
811
+ }
812
+ .booking-card__time {
813
+ appearance: none;
814
+ width: 100%;
815
+ min-height: 44px;
816
+ padding: 8px 12px;
817
+ border: 1px solid var(--as-brand);
818
+ border-radius: var(--as-radius-sm);
819
+ background: var(--as-surface);
820
+ color: var(--as-text);
821
+ font: inherit;
822
+ font-size: 14px;
823
+ font-weight: 650;
824
+ cursor: pointer;
825
+ transition: background 180ms cubic-bezier(0.16, 1, 0.3, 1), color 180ms cubic-bezier(0.16, 1, 0.3, 1);
826
+ }
827
+ .booking-card__time:hover {
828
+ background: var(--as-brand-soft);
829
+ }
830
+ .booking-card__time--selected {
831
+ background: var(--as-visitor-bubble, var(--as-brand));
832
+ color: var(--as-visitor-text, #fff);
833
+ }
834
+ .booking-card__field input,
835
+ .booking-card__field select {
836
+ width: 100%;
837
+ min-width: 0;
838
+ min-height: 44px;
839
+ padding: 8px 12px;
840
+ border: 1px solid var(--as-border);
841
+ border-radius: var(--as-radius-md);
842
+ background: var(--as-surface);
843
+ color: var(--as-text);
844
+ font: inherit;
845
+ font-size: 13px;
846
+ }
847
+ .booking-card__submit {
848
+ width: 100%;
849
+ min-height: 44px;
850
+ padding: 8px 12px;
851
+ border: 0;
852
+ border-radius: var(--as-radius-md);
853
+ background: var(--as-visitor-bubble, #111);
854
+ color: var(--as-visitor-text, #fff);
855
+ font: inherit;
856
+ font-size: 13px;
857
+ font-weight: 600;
858
+ cursor: pointer;
859
+ }
860
+ .booking-card__submit:hover {
861
+ filter: brightness(1.04);
862
+ }
863
+ @media (prefers-reduced-motion: reduce) {
864
+ .booking-card__time {
865
+ transition: none;
866
+ }
867
+ }
868
+
664
869
  /* src/react/components/MessageBubble/MessageBubble.css */
665
870
  .message-bubble {
666
871
  display: flex;
@@ -668,6 +873,16 @@ html.webless-agent-page-shift {
668
873
  gap: 8px;
669
874
  max-width: 86%;
670
875
  }
876
+ .message-bubble--agent:has(.booking-card) {
877
+ align-self: stretch;
878
+ width: 100%;
879
+ max-width: 100%;
880
+ }
881
+ .message-bubble .booking-card {
882
+ width: 100%;
883
+ max-width: none;
884
+ box-sizing: border-box;
885
+ }
671
886
  .message-bubble--visitor {
672
887
  align-self: flex-end;
673
888
  align-items: flex-end;
@@ -692,10 +907,10 @@ html.webless-agent-page-shift {
692
907
  }
693
908
  .message-bubble--agent .message-bubble__text {
694
909
  width: 100%;
695
- padding: 0;
696
- border: none;
697
- border-radius: 0;
698
- background: transparent;
910
+ padding: 12px;
911
+ border: 1px solid color-mix(in srgb, var(--as-border) 72%, var(--as-surface));
912
+ border-radius: 11px;
913
+ background: color-mix(in srgb, var(--as-surface-muted) 72%, var(--as-surface));
699
914
  color: var(--as-text);
700
915
  }
701
916
  .message-bubble__markdown > :first-child {
@@ -802,8 +1017,7 @@ html.webless-agent-page-shift {
802
1017
  text-overflow: ellipsis;
803
1018
  white-space: nowrap;
804
1019
  }
805
- .agent-rail__brand-mark,
806
- .agent-rail__welcome-mark {
1020
+ .agent-rail__brand-mark {
807
1021
  position: relative;
808
1022
  display: inline-flex;
809
1023
  align-items: center;
@@ -820,8 +1034,7 @@ html.webless-agent-page-shift {
820
1034
  border-radius: 8px;
821
1035
  font-size: 11px;
822
1036
  }
823
- .agent-rail__brand-logo,
824
- .agent-rail__welcome-logo {
1037
+ .agent-rail__brand-logo {
825
1038
  position: absolute;
826
1039
  inset: 0;
827
1040
  width: 100%;
@@ -917,39 +1130,9 @@ html.webless-agent-page-shift {
917
1130
  }
918
1131
  .agent-rail__welcome {
919
1132
  display: flex;
920
- min-height: 100%;
921
- flex: 1 0 auto;
922
1133
  flex-direction: column;
923
- justify-content: center;
924
- gap: 22px;
925
- padding: 28px 2px 18px;
926
- }
927
- .agent-rail__welcome-mark {
928
- width: 42px;
929
- height: 42px;
930
- border-radius: 13px;
931
- box-shadow: 0 8px 24px -14px color-mix(in srgb, var(--as-brand) 70%, transparent);
932
- font-size: 16px;
933
- }
934
- .agent-rail__welcome-copy {
935
- display: grid;
936
- gap: 9px;
937
- }
938
- .agent-rail__welcome-copy h2 {
939
- margin: 0;
940
- color: var(--as-text);
941
- font-family: var(--as-font-display);
942
- font-size: clamp(21px, 3vw, 25px);
943
- font-weight: 650;
944
- letter-spacing: -0.035em;
945
- line-height: 1.15;
946
- }
947
- .agent-rail__welcome-copy p {
948
- max-width: 42ch;
949
- margin: 0;
950
- color: var(--as-text-muted);
951
- font-size: 13px;
952
- line-height: 1.55;
1134
+ flex-shrink: 0;
1135
+ gap: 16px;
953
1136
  }
954
1137
  .agent-rail__timeline-slot,
955
1138
  .agent-rail__followups-slot {
@@ -1012,6 +1195,8 @@ html.webless-agent-page-shift {
1012
1195
  margin-top: 7px;
1013
1196
  }
1014
1197
  .agent-rail__footer p {
1198
+ display: grid;
1199
+ gap: 2px;
1015
1200
  margin: 0;
1016
1201
  color: var(--as-text-subtle);
1017
1202
  font-size: 10.5px;
@@ -1023,10 +1208,10 @@ html.webless-agent-page-shift {
1023
1208
  top: 50%;
1024
1209
  left: 50%;
1025
1210
  z-index: calc(var(--as-z-mobile) + 1);
1026
- width: min(960px, calc(100vw - 48px));
1211
+ width: min(var(--rail-width), calc(100vw - 48px));
1027
1212
  min-width: 0;
1028
- max-width: 960px;
1029
- height: min(860px, calc(100dvh - 48px));
1213
+ max-width: var(--rail-width);
1214
+ height: min(720px, calc(100dvh - 48px));
1030
1215
  max-height: calc(100dvh - 48px);
1031
1216
  overflow: hidden;
1032
1217
  transform: translate(-50%, -50%);
@@ -1042,25 +1227,17 @@ html.webless-agent-page-shift {
1042
1227
  box-shadow 320ms cubic-bezier(0.22, 1, 0.36, 1);
1043
1228
  }
1044
1229
  .agent-rail--expanded .agent-rail__thread {
1045
- max-width: 760px;
1046
- padding: 28px 24px 36px;
1230
+ max-width: none;
1231
+ padding: 20px 16px 26px;
1047
1232
  }
1048
1233
  .agent-rail--expanded .agent-rail__welcome {
1049
1234
  width: 100%;
1050
- max-width: 680px;
1051
- margin: 0 auto;
1052
1235
  }
1053
1236
  .agent-rail--expanded .agent-rail__composer-wrap {
1054
- padding: 16px 24px 18px;
1055
- }
1056
- .agent-rail--expanded .agent-rail__composer-wrap > .composer,
1057
- .agent-rail--expanded .agent-rail__footer {
1058
- width: min(712px, 100%);
1059
- margin-right: auto;
1060
- margin-left: auto;
1237
+ padding: 12px 14px 13px;
1061
1238
  }
1062
1239
  .agent-rail--expanded .agent-rail__footer {
1063
- margin-top: 8px;
1240
+ margin-top: 7px;
1064
1241
  }
1065
1242
  .agent-rail--mobile-fullscreen {
1066
1243
  position: fixed;
@@ -1142,9 +1319,6 @@ html.webless-agent-page-shift {
1142
1319
  .agent-rail .agent-rail__expand {
1143
1320
  display: none;
1144
1321
  }
1145
- .agent-rail__welcome-copy h2 {
1146
- font-size: 23px;
1147
- }
1148
1322
  .agent-rail__error {
1149
1323
  align-items: flex-start;
1150
1324
  flex-direction: column;
@@ -1234,6 +1408,12 @@ html.webless-agent-page-shift {
1234
1408
  background: var(--tab-fill);
1235
1409
  object-fit: contain;
1236
1410
  }
1411
+ .assist-edge-tab__custom-icon {
1412
+ width: 18px;
1413
+ height: 18px;
1414
+ flex-shrink: 0;
1415
+ object-fit: contain;
1416
+ }
1237
1417
  .assist-edge-tab__label {
1238
1418
  font-family: var(--as-font-display);
1239
1419
  font-size: 13px;