@webless/agent 0.13.0 → 0.13.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.
package/dist/react.css CHANGED
@@ -18,6 +18,22 @@
18
18
  --as-radius-sm: 8px;
19
19
  --as-radius-md: 12px;
20
20
  --as-radius-lg: 16px;
21
+ --as-brand-mark-size: 24px;
22
+ --as-brand-mark-size-compact: 22px;
23
+ --as-brand-wordmark-header-height: 20px;
24
+ --as-brand-wordmark-header-max-width: 96px;
25
+ --as-brand-wordmark-message-height: 18px;
26
+ --as-brand-wordmark-message-max-width: 80px;
27
+ --as-brand-identity-gap: 6px;
28
+ --as-discovery-row-min-height: 46px;
29
+ --as-discovery-row-padding: 12px 16px;
30
+ --as-discovery-row-gap: 10px;
31
+ --as-discovery-row-font-size: 14px;
32
+ --as-discovery-row-font-weight: 400;
33
+ --as-discovery-row-line-height: 1.5;
34
+ --as-focus-inset-ring: inset 0 0 0 2px var(--as-brand);
35
+ --as-focus-link-padding-block: 2px;
36
+ --as-focus-link-padding-inline: 4px;
21
37
  --as-font-body:
22
38
  "Mulish",
23
39
  "Avenir Next",
@@ -39,11 +55,26 @@
39
55
  color: var(--as-text);
40
56
  -webkit-font-smoothing: antialiased;
41
57
  }
58
+ .webless-agent-root img.as-brand-logo-img {
59
+ display: block;
60
+ flex-shrink: 0;
61
+ object-fit: contain;
62
+ object-position: left center;
63
+ image-rendering: -webkit-optimize-contrast;
64
+ image-rendering: high-quality;
65
+ }
42
66
  .webless-agent-root button,
43
67
  .webless-agent-root input,
44
68
  .webless-agent-root textarea {
45
69
  font: inherit;
46
70
  }
71
+ .webless-agent-root :is(a[href], button:not(:disabled), summary) {
72
+ cursor: pointer;
73
+ }
74
+ .webless-agent-root :is(a[href], button:not(:disabled), summary) :is(*, svg) {
75
+ cursor: inherit;
76
+ pointer-events: none;
77
+ }
47
78
  @media (prefers-reduced-motion: reduce) {
48
79
  .webless-agent-root *,
49
80
  .webless-agent-root *::before,
@@ -549,65 +580,139 @@ html.webless-agent-page-shift {
549
580
 
550
581
  /* src/react/components/LearnMore/LearnMore.css */
551
582
  .learn-more {
552
- margin-top: 20px;
553
583
  width: 100%;
554
584
  min-width: 0;
555
585
  }
556
586
  .learn-more__heading {
557
- margin: 0 0 8px;
558
- color: var(--as-text-muted);
559
- font-size: 13px;
587
+ margin: 0;
588
+ font-size: 12.5px;
560
589
  font-weight: 650;
561
590
  line-height: 1.5;
562
591
  }
592
+ .learn-more__toggle {
593
+ appearance: none;
594
+ display: inline-flex;
595
+ align-items: center;
596
+ justify-content: flex-start;
597
+ gap: 4px;
598
+ min-height: 44px;
599
+ margin: 0;
600
+ padding: 10px 16px;
601
+ border: 0;
602
+ border-radius: 8px;
603
+ background: transparent;
604
+ color: var(--as-text-muted);
605
+ font: inherit;
606
+ font-size: 12.5px;
607
+ font-weight: 650;
608
+ text-align: left;
609
+ cursor: pointer;
610
+ transition: background 150ms ease, color 150ms ease;
611
+ }
612
+ .learn-more .learn-more__toggle {
613
+ width: auto;
614
+ background: transparent;
615
+ }
616
+ .learn-more .learn-more__toggle:hover {
617
+ color: var(--as-brand);
618
+ background: var(--as-brand-soft);
619
+ }
620
+ .learn-more__toggle:focus-visible {
621
+ outline: 2px solid var(--as-brand);
622
+ outline-offset: 2px;
623
+ }
624
+ .learn-more__chevron {
625
+ width: 14px;
626
+ height: 14px;
627
+ transition: transform 180ms cubic-bezier(0.22, 1, 0.36, 1);
628
+ }
629
+ .learn-more__toggle[aria-expanded=true] .learn-more__chevron {
630
+ transform: rotate(180deg);
631
+ }
632
+ .learn-more__panel {
633
+ display: grid;
634
+ grid-template-rows: 0fr;
635
+ visibility: hidden;
636
+ transition: grid-template-rows 220ms cubic-bezier(0.22, 1, 0.36, 1), visibility 0s linear 220ms;
637
+ }
638
+ .learn-more__panel--open {
639
+ grid-template-rows: 1fr;
640
+ visibility: visible;
641
+ transition: grid-template-rows 220ms cubic-bezier(0.22, 1, 0.36, 1);
642
+ }
643
+ .learn-more__panel-inner {
644
+ min-height: 0;
645
+ overflow: hidden;
646
+ }
563
647
  .learn-more__questions {
564
648
  margin: 0;
565
- padding: 0;
649
+ padding: 0 0 4px;
566
650
  list-style: none;
567
651
  }
568
652
  .learn-more__questions li {
569
653
  border-bottom: 1px solid var(--as-border);
570
654
  }
655
+ .learn-more__questions li:last-child {
656
+ border-bottom: 0;
657
+ }
571
658
  .learn-more__questions button {
572
659
  appearance: none;
573
660
  display: flex;
574
661
  align-items: center;
575
- justify-content: space-between;
576
- gap: 14px;
662
+ gap: var(--as-discovery-row-gap);
577
663
  width: 100%;
578
- min-height: 46px;
579
- padding: 12px;
664
+ min-height: var(--as-discovery-row-min-height);
665
+ padding: var(--as-discovery-row-padding);
580
666
  border: 0;
581
667
  border-radius: 6px;
582
668
  background: transparent;
583
669
  color: var(--as-text);
584
670
  text-align: left;
585
671
  font: inherit;
586
- font-size: 14px;
587
- line-height: 1.5;
672
+ font-size: var(--as-discovery-row-font-size);
673
+ font-weight: var(--as-discovery-row-font-weight);
674
+ line-height: var(--as-discovery-row-line-height);
588
675
  cursor: pointer;
589
676
  }
590
- .learn-more__questions span {
677
+ .learn-more__question-icon {
678
+ display: inline-flex;
679
+ flex: 0 0 18px;
680
+ color: var(--as-text-muted);
681
+ }
682
+ .learn-more__question-text {
591
683
  min-width: 0;
684
+ flex: 1;
592
685
  overflow-wrap: anywhere;
593
686
  }
594
- .learn-more__questions svg {
687
+ .learn-more__question-arrow {
595
688
  width: 18px;
596
689
  height: 18px;
597
690
  flex-shrink: 0;
598
- color: var(--as-brand);
691
+ color: var(--as-text-muted);
599
692
  }
600
- .learn-more__questions button:hover:not(:disabled) {
693
+ .learn-more .learn-more__questions button:hover:not(:disabled) {
601
694
  background: var(--as-brand-soft);
695
+ color: var(--as-brand);
696
+ }
697
+ .learn-more .learn-more__questions button:hover:not(:disabled) .learn-more__question-arrow {
698
+ color: var(--as-brand);
602
699
  }
603
700
  .learn-more__questions button:focus-visible {
604
- outline: 2px solid var(--as-brand);
605
- outline-offset: 2px;
701
+ outline: none;
702
+ box-shadow: var(--as-focus-inset-ring);
606
703
  }
607
704
  .learn-more__questions button:disabled {
608
705
  opacity: 0.5;
609
706
  cursor: default;
610
707
  }
708
+ @media (prefers-reduced-motion: reduce) {
709
+ .learn-more__panel {
710
+ transition: none;
711
+ }
712
+ .learn-more__chevron {
713
+ transition: none;
714
+ }
715
+ }
611
716
 
612
717
  /* src/react/components/SearchReferences/SearchReferences.css */
613
718
  .search-references {
@@ -634,22 +739,30 @@ html.webless-agent-page-shift {
634
739
  }
635
740
  .search-references__list {
636
741
  display: grid;
637
- gap: 6px;
638
742
  margin: 0;
639
743
  padding: 0;
640
744
  list-style: none;
641
745
  }
746
+ .search-references__list > li {
747
+ border-bottom: 1px solid var(--as-border);
748
+ }
749
+ .search-references__list > li:last-child {
750
+ border-bottom: 0;
751
+ }
642
752
  .search-references__source {
643
753
  display: flex;
644
754
  min-width: 0;
645
- min-height: 52px;
755
+ min-height: var(--as-discovery-row-min-height);
646
756
  box-sizing: border-box;
647
757
  align-items: center;
648
- gap: 10px;
649
- padding: 12px 0;
650
- border-bottom: 1px solid var(--as-border);
758
+ gap: var(--as-discovery-row-gap);
759
+ padding: var(--as-discovery-row-padding);
760
+ border-radius: 6px;
651
761
  background: transparent;
652
762
  color: var(--as-text);
763
+ font-size: var(--as-discovery-row-font-size);
764
+ font-weight: var(--as-discovery-row-font-weight);
765
+ line-height: var(--as-discovery-row-line-height);
653
766
  text-decoration: none;
654
767
  }
655
768
  .search-references__icon {
@@ -657,24 +770,17 @@ html.webless-agent-page-shift {
657
770
  flex: 0 0 18px;
658
771
  color: var(--as-text-muted);
659
772
  }
660
- .search-references__copy {
661
- display: grid;
773
+ .search-references__icon img {
774
+ width: 18px;
775
+ height: 18px;
776
+ border-radius: 4px;
777
+ object-fit: contain;
778
+ }
779
+ .search-references__title {
662
780
  min-width: 0;
663
781
  flex: 1;
664
- gap: 2px;
665
- }
666
- .search-references__title,
667
- .search-references__domain {
668
782
  overflow-wrap: anywhere;
669
- line-height: 1.4;
670
- }
671
- .search-references__title {
672
- font-size: 13px;
673
- font-weight: 500;
674
- }
675
- .search-references__domain {
676
- color: var(--as-text-muted);
677
- font-size: 11px;
783
+ font: inherit;
678
784
  }
679
785
  .search-references__actions {
680
786
  display: flex;
@@ -698,16 +804,23 @@ html.webless-agent-page-shift {
698
804
  overflow-wrap: anywhere;
699
805
  text-decoration: none;
700
806
  }
701
- .search-references__source[href]:hover,
702
- .search-references__cta:hover {
807
+ .search-references__list .search-references__source[href]:hover,
808
+ .search-references .search-references__cta:hover {
703
809
  background: var(--as-brand-soft);
704
810
  color: var(--as-brand);
705
811
  }
812
+ .search-references__list .search-references__source[href]:hover .search-references__row-arrow {
813
+ color: var(--as-brand);
814
+ }
706
815
  .search-references a:focus-visible,
707
816
  .search-references summary:focus-visible {
708
817
  outline: 2px solid var(--as-brand);
709
818
  outline-offset: 2px;
710
819
  }
820
+ .search-references__list .search-references__source:focus-visible {
821
+ outline: none;
822
+ box-shadow: var(--as-focus-inset-ring);
823
+ }
711
824
  .message-bubble__text:has(.search-references) {
712
825
  width: 100%;
713
826
  }
@@ -715,7 +828,7 @@ html.webless-agent-page-shift {
715
828
  .search-references__list > li {
716
829
  min-width: 0;
717
830
  }
718
- .search-references__external {
831
+ .search-references__row-arrow {
719
832
  width: 18px;
720
833
  height: 18px;
721
834
  flex-shrink: 0;
@@ -843,13 +956,17 @@ html.webless-agent-page-shift {
843
956
  }
844
957
  .composer__field {
845
958
  display: flex;
846
- align-items: center;
959
+ align-items: flex-end;
847
960
  gap: 6px;
848
961
  padding: 5px 5px 5px 14px;
849
962
  border: 1px solid var(--as-control-border, color-mix(in srgb, var(--as-text) 14%, transparent));
850
963
  border-radius: 999px;
851
964
  background: var(--as-surface);
852
965
  box-shadow: 0 1px 2px color-mix(in srgb, var(--as-text) 5%, transparent);
966
+ transition: border-radius 180ms cubic-bezier(0.22, 1, 0.36, 1);
967
+ }
968
+ .composer--multiline .composer__field {
969
+ border-radius: 20px;
853
970
  }
854
971
  .composer__field:focus-within {
855
972
  border-color: color-mix(in srgb, var(--as-brand) 42%, var(--as-border));
@@ -906,7 +1023,7 @@ html.webless-agent-page-shift {
906
1023
  outline-offset: 2px;
907
1024
  }
908
1025
  .composer--dock .composer__field {
909
- align-items: center;
1026
+ align-items: flex-end;
910
1027
  padding: 5px 5px 5px 14px;
911
1028
  background: var(--as-surface);
912
1029
  border: 1px solid var(--as-control-border, color-mix(in srgb, var(--as-text) 14%, transparent));
@@ -917,6 +1034,9 @@ html.webless-agent-page-shift {
917
1034
  border-color: color-mix(in srgb, var(--as-brand) 42%, var(--as-border));
918
1035
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--as-brand) 10%, transparent);
919
1036
  }
1037
+ .composer--dock.composer--multiline .composer__field {
1038
+ border-radius: 24px;
1039
+ }
920
1040
  .composer--dock .composer__input {
921
1041
  padding: 11px 0;
922
1042
  font-size: 15px;
@@ -1125,6 +1245,9 @@ html.webless-agent-page-shift {
1125
1245
  .composer--form .composer__sheet {
1126
1246
  animation: none;
1127
1247
  }
1248
+ .composer__field {
1249
+ transition: none;
1250
+ }
1128
1251
  .composer__send {
1129
1252
  transition: none;
1130
1253
  }
@@ -1210,7 +1333,10 @@ html.webless-agent-page-shift {
1210
1333
  color 0.15s ease;
1211
1334
  word-break: break-word;
1212
1335
  }
1213
- .followups__chip:hover:not(:disabled) {
1336
+ .followups .followups__chip {
1337
+ width: auto;
1338
+ }
1339
+ .followups .followups__chip:hover:not(:disabled) {
1214
1340
  border-color: color-mix(in srgb, var(--as-brand) 32%, var(--as-border));
1215
1341
  background: var(--as-brand-soft);
1216
1342
  color: var(--as-brand);
@@ -1570,26 +1696,25 @@ html.webless-agent-page-shift {
1570
1696
  width: 100%;
1571
1697
  max-width: 100%;
1572
1698
  }
1573
- .message-bubble__agent-row {
1574
- display: grid;
1699
+ .message-bubble__agent-stack {
1700
+ display: flex;
1575
1701
  width: 100%;
1576
- grid-template-columns: 24px minmax(0, 1fr);
1702
+ flex-direction: column;
1577
1703
  align-items: flex-start;
1578
- gap: 10px;
1704
+ gap: 8px;
1579
1705
  }
1580
1706
  .message-bubble__agent-avatar {
1581
1707
  position: relative;
1582
1708
  display: inline-flex;
1583
- width: 24px;
1584
- height: 24px;
1709
+ width: var(--as-brand-mark-size-compact);
1710
+ height: var(--as-brand-mark-size-compact);
1585
1711
  align-items: center;
1586
1712
  justify-content: center;
1587
1713
  overflow: hidden;
1588
- margin-top: 1px;
1589
1714
  border-radius: 8px;
1590
1715
  background: var(--as-surface-muted);
1591
1716
  }
1592
- .message-bubble__agent-avatar img {
1717
+ .message-bubble__agent-avatar:not(.message-bubble__agent-avatar--wide) img {
1593
1718
  position: absolute;
1594
1719
  inset: 0;
1595
1720
  width: 100%;
@@ -1598,6 +1723,28 @@ html.webless-agent-page-shift {
1598
1723
  background: var(--as-surface);
1599
1724
  object-fit: contain;
1600
1725
  }
1726
+ .message-bubble__agent-avatar--wide {
1727
+ width: auto;
1728
+ height: auto;
1729
+ min-width: 0;
1730
+ max-width: var(--as-brand-wordmark-message-max-width);
1731
+ flex-shrink: 1;
1732
+ padding: 0;
1733
+ overflow: hidden;
1734
+ border: 0;
1735
+ background: transparent;
1736
+ }
1737
+ .message-bubble__agent-avatar--wide img {
1738
+ position: static;
1739
+ display: block;
1740
+ width: auto;
1741
+ max-width: var(--as-brand-wordmark-message-max-width);
1742
+ height: var(--as-brand-wordmark-message-height);
1743
+ border-radius: 0;
1744
+ background: transparent;
1745
+ object-fit: contain;
1746
+ object-position: left center;
1747
+ }
1601
1748
  .message-bubble__text {
1602
1749
  margin: 0;
1603
1750
  padding: 10px 12px;
@@ -1626,24 +1773,35 @@ html.webless-agent-page-shift {
1626
1773
  }
1627
1774
  .message-bubble__sources {
1628
1775
  display: grid;
1629
- gap: 6px;
1776
+ gap: 0;
1630
1777
  margin: 10px 0 0;
1631
1778
  padding: 10px 0 0;
1632
1779
  border-top: 1px solid var(--as-border);
1633
1780
  list-style: none;
1634
1781
  }
1782
+ .message-bubble__sources > li {
1783
+ border-bottom: 1px solid var(--as-border);
1784
+ }
1785
+ .message-bubble__sources > li:last-child {
1786
+ border-bottom: 0;
1787
+ }
1635
1788
  .message-bubble__sources a {
1636
1789
  display: flex;
1637
1790
  min-width: 0;
1791
+ min-height: var(--as-discovery-row-min-height);
1638
1792
  align-items: center;
1639
- gap: 8px;
1793
+ gap: var(--as-discovery-row-gap);
1794
+ padding: var(--as-discovery-row-padding);
1795
+ border-radius: 6px;
1640
1796
  color: var(--as-text);
1641
- font-size: 12.5px;
1642
- font-weight: 600;
1797
+ font-size: var(--as-discovery-row-font-size);
1798
+ font-weight: var(--as-discovery-row-font-weight);
1799
+ line-height: var(--as-discovery-row-line-height);
1643
1800
  text-decoration: none;
1644
1801
  }
1645
1802
  .message-bubble__sources a:hover {
1646
1803
  color: var(--as-brand);
1804
+ background: var(--as-brand-soft);
1647
1805
  }
1648
1806
  .message-bubble__source-icon {
1649
1807
  display: grid;
@@ -1709,6 +1867,27 @@ html.webless-agent-page-shift {
1709
1867
  text-decoration: underline;
1710
1868
  text-underline-offset: 2px;
1711
1869
  }
1870
+ .message-bubble__markdown :is(a[href], [data-streamdown=link]):focus-visible {
1871
+ outline: none;
1872
+ border-radius: 4px;
1873
+ box-shadow: var(--as-focus-inset-ring);
1874
+ box-decoration-break: clone;
1875
+ -webkit-box-decoration-break: clone;
1876
+ padding: var(--as-focus-link-padding-block) var(--as-focus-link-padding-inline);
1877
+ margin: 0;
1878
+ }
1879
+ .message-bubble__markdown ul > li > :is(a[href], [data-streamdown=link]):focus-visible {
1880
+ border-radius: 6px;
1881
+ }
1882
+ .message-bubble__sources a:focus-visible {
1883
+ outline: none;
1884
+ border-radius: 6px;
1885
+ box-shadow: var(--as-focus-inset-ring);
1886
+ }
1887
+ .agent-rail .message-bubble__markdown :is(a[href], [data-streamdown=link]):focus-visible,
1888
+ .agent-rail .message-bubble__sources a:focus-visible {
1889
+ outline: none;
1890
+ }
1712
1891
  .message-bubble__markdown code {
1713
1892
  font-family:
1714
1893
  ui-monospace,
@@ -1738,10 +1917,18 @@ html.webless-agent-page-shift {
1738
1917
  color: var(--as-text-muted);
1739
1918
  }
1740
1919
  .message-bubble__speaker {
1741
- display: block;
1742
- margin-bottom: 0.25rem;
1743
- font-size: 0.75rem;
1744
- opacity: 0.75;
1920
+ margin: 0;
1921
+ font-size: 12px;
1922
+ font-weight: 650;
1923
+ letter-spacing: 0.01em;
1924
+ color: var(--as-text-muted);
1925
+ }
1926
+ .message-bubble__agent-header {
1927
+ display: inline-flex;
1928
+ max-width: 100%;
1929
+ min-height: var(--as-brand-mark-size-compact);
1930
+ align-items: center;
1931
+ gap: 4px;
1745
1932
  }
1746
1933
 
1747
1934
  /* src/react/components/MessageActions/MessageActions.css */
@@ -1844,7 +2031,7 @@ html.webless-agent-page-shift {
1844
2031
  line-height: 1.3;
1845
2032
  text-align: left;
1846
2033
  }
1847
- .agent-message-actions__menu-item:hover {
2034
+ .agent-message-actions__menu .agent-message-actions__menu-item:hover {
1848
2035
  background: var(--as-surface-muted);
1849
2036
  }
1850
2037
  .agent-message-actions__menu-item:focus-visible {
@@ -2571,6 +2758,13 @@ html.webless-agent-page-shift {
2571
2758
  .agent-rail :where(p, span, strong, button, label) {
2572
2759
  text-decoration: none;
2573
2760
  }
2761
+ .agent-rail :is(a[href], button:not(:disabled), summary) {
2762
+ cursor: pointer;
2763
+ }
2764
+ .agent-rail :is(a[href], button:not(:disabled), summary) :is(*, svg) {
2765
+ cursor: inherit;
2766
+ pointer-events: none;
2767
+ }
2574
2768
  .agent-rail:focus {
2575
2769
  outline: none;
2576
2770
  }
@@ -2602,7 +2796,7 @@ html.webless-agent-page-shift {
2602
2796
  min-width: 0;
2603
2797
  align-items: center;
2604
2798
  justify-content: center;
2605
- gap: 8px;
2799
+ gap: var(--as-brand-identity-gap);
2606
2800
  }
2607
2801
  .agent-rail__brand-label {
2608
2802
  overflow: hidden;
@@ -2624,10 +2818,10 @@ html.webless-agent-page-shift {
2624
2818
  background: var(--as-surface-muted);
2625
2819
  }
2626
2820
  .agent-rail__brand-mark {
2627
- width: 25px;
2628
- height: 25px;
2629
- flex-basis: 25px;
2630
- border-radius: 8px;
2821
+ width: var(--as-brand-mark-size);
2822
+ height: var(--as-brand-mark-size);
2823
+ flex-basis: var(--as-brand-mark-size);
2824
+ border-radius: var(--as-radius-sm);
2631
2825
  font-size: 11px;
2632
2826
  }
2633
2827
  .agent-rail__brand-logo {
@@ -2639,6 +2833,28 @@ html.webless-agent-page-shift {
2639
2833
  background: var(--as-surface);
2640
2834
  object-fit: contain;
2641
2835
  }
2836
+ .agent-rail__brand-mark--wide {
2837
+ width: auto;
2838
+ min-width: 0;
2839
+ max-width: var(--as-brand-wordmark-header-max-width);
2840
+ flex: 0 1 auto;
2841
+ flex-basis: auto;
2842
+ padding: 0;
2843
+ overflow: hidden;
2844
+ border: 0;
2845
+ background: transparent;
2846
+ }
2847
+ .agent-rail__brand-mark--wide .agent-rail__brand-logo {
2848
+ position: static;
2849
+ display: block;
2850
+ width: auto;
2851
+ max-width: var(--as-brand-wordmark-header-max-width);
2852
+ height: var(--as-brand-wordmark-header-height);
2853
+ border-radius: 0;
2854
+ background: transparent;
2855
+ object-fit: contain;
2856
+ object-position: left center;
2857
+ }
2642
2858
  .agent-rail__brand-spacer {
2643
2859
  width: 36px;
2644
2860
  height: 36px;
@@ -2721,7 +2937,7 @@ html.webless-agent-page-shift {
2721
2937
  flex-direction: column;
2722
2938
  gap: 20px;
2723
2939
  margin: 0 auto;
2724
- padding: 24px 20px 32px;
2940
+ padding: 16px 16px 32px;
2725
2941
  }
2726
2942
  .agent-rail__turn-block {
2727
2943
  display: flex;
@@ -2791,7 +3007,7 @@ html.webless-agent-page-shift {
2791
3007
  position: relative;
2792
3008
  z-index: 1;
2793
3009
  flex-shrink: 0;
2794
- padding: 13px 20px 14px;
3010
+ padding: 13px 16px 14px;
2795
3011
  border-top: 1px solid var(--as-hairline);
2796
3012
  background: var(--as-surface);
2797
3013
  }
@@ -2866,9 +3082,12 @@ html.webless-agent-page-shift {
2866
3082
  }
2867
3083
  .agent-rail__disclaimer {
2868
3084
  flex-shrink: 0;
2869
- padding: 10px 20px 8px;
3085
+ padding: 8px 16px 6px;
2870
3086
  background: var(--as-surface);
2871
3087
  }
3088
+ .agent-rail__handoff + .agent-rail__disclaimer {
3089
+ border-top: 1px solid var(--as-hairline);
3090
+ }
2872
3091
  .agent-rail__disclaimer p {
2873
3092
  margin: 0;
2874
3093
  color: var(--as-text-muted);
@@ -2916,13 +3135,13 @@ html.webless-agent-page-shift {
2916
3135
  }
2917
3136
  .agent-rail--expanded .agent-rail__thread {
2918
3137
  max-width: 760px;
2919
- padding: 36px 24px 48px;
3138
+ padding: 24px 24px 48px;
2920
3139
  }
2921
3140
  .agent-rail--expanded .agent-rail__welcome {
2922
3141
  width: 100%;
2923
3142
  }
2924
3143
  .agent-rail--expanded .agent-rail__composer-wrap {
2925
- padding: 16px 24px 18px;
3144
+ padding: 16px 24px 16px;
2926
3145
  }
2927
3146
  .agent-rail--expanded .agent-rail__disclaimer,
2928
3147
  .agent-rail--expanded .composer,
@@ -3038,47 +3257,84 @@ html.webless-agent-page-shift {
3038
3257
  animation: none;
3039
3258
  transition: none;
3040
3259
  }
3260
+ .agent-rail__sources-panel {
3261
+ transition: none;
3262
+ }
3263
+ .agent-rail__sources-button-chevron {
3264
+ transition: none;
3265
+ }
3041
3266
  }
3042
3267
  .agent-rail__handoff {
3043
- padding: 0.625rem 1rem;
3044
- border-top: 1px solid var(--as-border);
3045
3268
  display: flex;
3046
- gap: 0.5rem;
3047
3269
  align-items: center;
3048
- justify-content: space-between;
3049
- flex-wrap: wrap;
3050
- font-size: 0.8125rem;
3270
+ gap: 10px;
3271
+ padding: 10px 16px;
3272
+ border-top: 1px solid var(--as-hairline);
3273
+ background: transparent;
3274
+ font-size: 12px;
3275
+ line-height: 1.45;
3051
3276
  color: var(--as-text-muted);
3052
3277
  }
3053
- .agent-rail__handoff p {
3278
+ .agent-rail__handoff-dot {
3279
+ flex: 0 0 auto;
3280
+ width: 6px;
3281
+ height: 6px;
3282
+ border-radius: 999px;
3283
+ background: var(--as-success);
3284
+ }
3285
+ .agent-rail__handoff-status {
3054
3286
  margin: 0;
3287
+ min-width: 0;
3288
+ flex: 1;
3055
3289
  }
3056
- .agent-rail__handoff button {
3057
- border: 0;
3058
- border-radius: 0.375rem;
3290
+ .agent-rail__handoff-status strong {
3291
+ color: var(--as-text);
3292
+ font-weight: 650;
3293
+ }
3294
+ .agent-rail__handoff-cta,
3295
+ .agent-rail__handoff-action {
3296
+ appearance: none;
3297
+ flex: 0 0 auto;
3298
+ min-height: 32px;
3299
+ padding: 6px 12px;
3300
+ border: 1px solid var(--as-border);
3301
+ border-radius: 999px;
3059
3302
  background: transparent;
3060
3303
  color: var(--as-text);
3061
- cursor: pointer;
3062
3304
  font: inherit;
3063
- font-weight: 600;
3064
- padding: 0.5rem;
3065
- min-height: 2.5rem;
3305
+ font-size: 12px;
3306
+ font-weight: 650;
3307
+ cursor: pointer;
3308
+ transition: border-color 150ms ease, background 150ms ease;
3066
3309
  }
3067
- .agent-rail__handoff button:hover {
3310
+ .agent-rail__handoff-cta:hover:not(:disabled),
3311
+ .agent-rail__handoff-action:hover:not(:disabled) {
3312
+ border-color: color-mix(in srgb, var(--as-brand) 40%, var(--as-border));
3068
3313
  background: var(--as-surface-muted);
3069
3314
  }
3070
- .agent-rail__handoff button:focus-visible {
3315
+ .agent-rail__handoff-cta:focus-visible,
3316
+ .agent-rail__handoff-action:focus-visible {
3071
3317
  outline: 2px solid var(--as-brand);
3072
3318
  outline-offset: 2px;
3073
3319
  }
3074
- .agent-rail__handoff button:disabled {
3075
- opacity: 0.5;
3320
+ .agent-rail__handoff-cta:disabled,
3321
+ .agent-rail__handoff-action:disabled {
3322
+ opacity: 0.55;
3076
3323
  cursor: default;
3077
3324
  }
3078
- .agent-rail__handoff [role=alert] {
3079
- width: 100%;
3325
+ .agent-rail__handoff-error {
3326
+ display: flex;
3327
+ flex: 1;
3328
+ align-items: center;
3329
+ justify-content: space-between;
3330
+ gap: 8px;
3080
3331
  color: var(--as-danger);
3081
3332
  }
3333
+ .agent-rail__answer-footer {
3334
+ display: flex;
3335
+ flex-direction: column;
3336
+ width: 100%;
3337
+ }
3082
3338
  .agent-rail__answer-actions {
3083
3339
  display: flex;
3084
3340
  align-items: center;
@@ -3091,18 +3347,28 @@ html.webless-agent-page-shift {
3091
3347
  }
3092
3348
  .agent-rail__sources-button {
3093
3349
  appearance: none;
3350
+ display: inline-flex;
3351
+ align-items: center;
3352
+ justify-content: flex-start;
3353
+ gap: 3px;
3094
3354
  margin-left: auto;
3095
3355
  min-height: 44px;
3096
- padding: 8px 4px;
3356
+ padding: 10px 16px;
3097
3357
  border: 0;
3098
- border-radius: 6px;
3358
+ border-radius: 8px;
3099
3359
  background: transparent;
3100
3360
  color: var(--as-text-muted);
3101
3361
  font: inherit;
3102
- font-size: 12px;
3362
+ font-size: 12.5px;
3363
+ font-weight: 650;
3103
3364
  cursor: pointer;
3365
+ transition: background 150ms ease, color 150ms ease;
3104
3366
  }
3105
- .agent-rail__sources-button:hover {
3367
+ .agent-rail__answer-actions .agent-rail__sources-button {
3368
+ width: auto;
3369
+ background: transparent;
3370
+ }
3371
+ .agent-rail__answer-actions .agent-rail__sources-button:hover {
3106
3372
  color: var(--as-brand);
3107
3373
  background: var(--as-brand-soft);
3108
3374
  }
@@ -3110,14 +3376,44 @@ html.webless-agent-page-shift {
3110
3376
  outline: 2px solid var(--as-brand);
3111
3377
  outline-offset: 2px;
3112
3378
  }
3113
- .agent-receipt-dialog__count {
3114
- margin-left: 8px;
3115
- color: var(--as-text-muted);
3116
- font-weight: 400;
3379
+ .agent-rail__sources-button-chevron {
3380
+ display: inline-flex;
3381
+ transition: transform 180ms cubic-bezier(0.22, 1, 0.36, 1);
3382
+ }
3383
+ .agent-rail__sources-button-chevron svg {
3384
+ width: 14px;
3385
+ height: 14px;
3386
+ }
3387
+ .agent-rail__sources-button[aria-expanded=true] .agent-rail__sources-button-chevron {
3388
+ transform: rotate(180deg);
3389
+ }
3390
+ .agent-rail__sources-panel {
3391
+ display: grid;
3392
+ width: 100%;
3393
+ grid-template-rows: 0fr;
3394
+ visibility: hidden;
3395
+ transition: grid-template-rows 220ms cubic-bezier(0.22, 1, 0.36, 1), visibility 0s linear 220ms;
3117
3396
  }
3118
- .agent-rail__turn-block:has(.message-bubble__agent-row) > :is(.agent-rail__answer-actions, .learn-more, .search-references) {
3119
- margin-left: 34px;
3120
- width: calc(100% - 34px);
3397
+ .agent-rail__sources-panel--open {
3398
+ grid-template-rows: 1fr;
3399
+ visibility: visible;
3400
+ transition: grid-template-rows 220ms cubic-bezier(0.22, 1, 0.36, 1);
3401
+ }
3402
+ .agent-rail__sources-panel-inner {
3403
+ min-height: 0;
3404
+ overflow: hidden;
3405
+ }
3406
+ .agent-rail__sources-panel-inner > .search-references {
3407
+ margin-top: 2px;
3408
+ }
3409
+ .agent-rail .learn-more .learn-more__toggle {
3410
+ width: auto;
3411
+ background: transparent;
3412
+ padding-left: 0;
3413
+ }
3414
+ .agent-rail .learn-more .learn-more__toggle:hover {
3415
+ color: var(--as-brand);
3416
+ background: var(--as-brand-soft);
3121
3417
  }
3122
3418
 
3123
3419
  /* src/react/components/AssistEdgeTab/AssistEdgeTab.css */
@@ -3190,10 +3486,6 @@ html.webless-agent-page-shift {
3190
3486
  border-radius: inherit;
3191
3487
  background: var(--pill-orb-from, var(--tab-fill));
3192
3488
  }
3193
- .assist-edge-tab__mark--chip > .assist-edge-tab__logo {
3194
- width: 20px;
3195
- height: 20px;
3196
- }
3197
3489
  .assist-edge-tab__custom-icon {
3198
3490
  width: 18px;
3199
3491
  height: 18px;
@@ -3387,15 +3679,16 @@ html.webless-agent-page-shift {
3387
3679
  --tab-ink: #1f2937;
3388
3680
  --tab-line: transparent;
3389
3681
  --pill-brand: var(--as-brand, #6366f1);
3682
+ --pill-accent: var(--as-border, var(--as-brand, #6366f1));
3390
3683
  --pill-fill: #ffffff;
3391
3684
  --pill-title: #1f2937;
3392
3685
  --pill-subtitle: #9ca3af;
3393
- --pill-glow-strong: color-mix(in srgb, var(--pill-brand) 40%, transparent);
3394
- --pill-glow-soft: color-mix(in srgb, var(--pill-brand) 10%, transparent);
3395
- --pill-glow-shadow: color-mix(in srgb, var(--pill-brand) 15%, transparent);
3686
+ --pill-glow-strong: color-mix(in srgb, var(--pill-accent) 40%, transparent);
3687
+ --pill-glow-soft: color-mix(in srgb, var(--pill-accent) 10%, transparent);
3688
+ --pill-glow-shadow: color-mix(in srgb, var(--pill-accent) 15%, transparent);
3396
3689
  --pill-orb-end: color-mix(in srgb, var(--pill-brand) 45%, #3b82f6);
3397
3690
  gap: 12px;
3398
- border: 1.5px solid var(--pill-brand);
3691
+ border: 1.5px solid var(--pill-accent);
3399
3692
  background-color: #ffffff;
3400
3693
  background-image: none;
3401
3694
  color: var(--pill-title);
@@ -3437,9 +3730,9 @@ html.webless-agent-page-shift {
3437
3730
  }
3438
3731
  .assist-edge-tab__mark--chip {
3439
3732
  overflow: hidden;
3440
- width: 36px;
3441
- height: 36px;
3442
- flex-basis: 36px;
3733
+ width: 48px;
3734
+ height: 48px;
3735
+ flex: 0 0 48px;
3443
3736
  border: none;
3444
3737
  border-radius: 50%;
3445
3738
  background:
@@ -3450,11 +3743,33 @@ html.webless-agent-page-shift {
3450
3743
  color: #ffffff;
3451
3744
  box-shadow: none;
3452
3745
  }
3746
+ .assist-edge-tab__mark--chip:has(> .assist-edge-tab__logo),
3747
+ .assist-edge-tab__mark--chip:has(> .assist-edge-tab__custom-icon) {
3748
+ background: var(--pill-logo-surface, #ffffff);
3749
+ box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--pill-accent, var(--pill-brand)) 24%, transparent);
3750
+ }
3751
+ .assist-edge-tab__mark--chip:has(> .assist-edge-tab__logo--wide) {
3752
+ width: auto;
3753
+ min-width: 48px;
3754
+ max-width: 120px;
3755
+ padding: 0 8px;
3756
+ border-radius: 999px;
3757
+ }
3453
3758
  .assist-edge-tab__mark--chip > svg,
3454
3759
  .assist-edge-tab__mark--chip > .assist-edge-tab__custom-icon,
3455
3760
  .assist-edge-tab__mark--chip > .assist-edge-tab__logo {
3456
3761
  position: relative;
3457
3762
  z-index: 1;
3763
+ flex-shrink: 0;
3764
+ object-fit: contain;
3765
+ object-position: center;
3766
+ }
3767
+ .assist-edge-tab__mark--chip > .assist-edge-tab__logo--chip,
3768
+ .assist-edge-tab__mark--chip > .assist-edge-tab__custom-icon--chip {
3769
+ width: auto;
3770
+ height: auto;
3771
+ max-width: 100%;
3772
+ max-height: 100%;
3458
3773
  }
3459
3774
  .assist-edge-tab__mark--chip > .assist-edge-tab__chat-spark {
3460
3775
  color: #ffffff;