@xcanwin/manyoyo 6.1.1 → 6.2.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.
@@ -14,8 +14,12 @@
14
14
  --line: #d9c7ad;
15
15
  --line-strong: #b59263;
16
16
  --line-soft: rgba(181, 146, 99, 0.26);
17
+ --line-medium: rgba(181, 146, 99, 0.4);
17
18
  --tree-guide: rgba(181, 146, 99, 0.44);
18
19
  --tree-guide-soft: rgba(181, 146, 99, 0.44);
20
+ --tree-active: #ecdfc8;
21
+
22
+ --surface-panel: linear-gradient(180deg, rgba(255, 255, 255, 0.88) 0%, rgba(252, 246, 236, 0.88) 100%);
19
23
 
20
24
  --text: #1f1a14;
21
25
  --muted: #6a5f52;
@@ -157,13 +161,6 @@ body::after {
157
161
  text-transform: uppercase;
158
162
  }
159
163
 
160
- .brand-sub {
161
- color: var(--muted);
162
- font-size: 11px;
163
- letter-spacing: 0.3px;
164
- text-transform: uppercase;
165
- }
166
-
167
164
  .sidebar-actions {
168
165
  display: inline-flex;
169
166
  gap: 8px;
@@ -255,12 +252,6 @@ textarea:focus-visible {
255
252
  display: none;
256
253
  }
257
254
 
258
- .mobile-actions-toggle {
259
- display: inline-flex;
260
- padding: 8px 12px;
261
- font-size: 13px;
262
- }
263
-
264
255
  .sidebar-backdrop[hidden] {
265
256
  display: none !important;
266
257
  }
@@ -594,7 +585,7 @@ textarea:focus-visible {
594
585
  }
595
586
 
596
587
  .session-status {
597
- border-radius: 99px;
588
+ border-radius: 999px;
598
589
  padding: 2px 8px;
599
590
  font-weight: 700;
600
591
  font-size: 11px;
@@ -679,9 +670,9 @@ button.tree-toggle:active {
679
670
  column-gap: 8px;
680
671
  }
681
672
 
682
- .tree-node-row.tree-node-row-container {
673
+ .tree-node-row.tree-node-row-container,
674
+ .tree-node-row.tree-node-row-agent {
683
675
  position: relative;
684
- grid-template-columns: auto minmax(0, 1fr);
685
676
  }
686
677
 
687
678
  .tree-prefix {
@@ -799,17 +790,17 @@ button.tree-toggle:active {
799
790
  .tree-node-button {
800
791
  width: 100%;
801
792
  text-align: left;
802
- border: 1px solid rgba(181, 146, 99, 0.38);
803
- background: rgba(255, 255, 255, 0.94);
793
+ border: 1px solid transparent;
794
+ background: transparent;
804
795
  color: var(--text);
805
- border-radius: 12px;
796
+ border-radius: 10px;
806
797
  padding: 10px 11px;
798
+ transition: background-color 120ms ease;
807
799
  }
808
800
 
809
801
  .tree-node-button:hover {
810
802
  transform: none;
811
- border-color: #d1aa7f;
812
- background: #fff8ef;
803
+ background: var(--panel-soft);
813
804
  }
814
805
 
815
806
  .tree-node-button:active {
@@ -822,9 +813,7 @@ button.tree-toggle:active {
822
813
  }
823
814
 
824
815
  .tree-node-button.active {
825
- border-color: #c68d5a;
826
- background: #fff3e8;
827
- box-shadow: inset 3px 0 0 var(--accent), 0 0 0 2px rgba(196, 85, 31, 0.14);
816
+ background: var(--tree-active);
828
817
  }
829
818
 
830
819
  .tree-node-button.tree-node-tone-history .tree-node-title,
@@ -833,17 +822,12 @@ button.tree-toggle:active {
833
822
  }
834
823
 
835
824
  .tree-node-block.has-active > .tree-node-row > .tree-node-button:not(.active) {
836
- border-color: #c68d5a;
837
- box-shadow: 0 0 0 2px rgba(196, 85, 31, 0.08);
838
- }
839
-
840
- .tree-node-button-directory,
841
- .tree-node-button-container {
842
- background: linear-gradient(180deg, rgba(255, 255, 255, 0.96) 0%, rgba(249, 242, 232, 0.98) 100%);
825
+ background: var(--panel-soft);
843
826
  }
844
827
 
845
- .tree-node-row-container .tree-node-button-container {
846
- padding-right: 52px;
828
+ .tree-node-row-container .tree-node-button-container,
829
+ .tree-node-row-agent .tree-node-button-agent {
830
+ padding-right: 38px;
847
831
  }
848
832
 
849
833
  .tree-node-main {
@@ -896,32 +880,95 @@ button.tree-toggle:active {
896
880
  color: var(--status-unknown-text);
897
881
  }
898
882
 
899
- .tree-node-hover-menu {
883
+ .tree-node-menu {
900
884
  position: absolute;
901
885
  top: 50%;
902
- right: 10px;
903
- display: inline-flex;
904
- align-items: center;
905
- gap: 6px;
886
+ right: 6px;
887
+ z-index: 9;
888
+ transform: translateY(-50%);
906
889
  opacity: 0;
907
890
  pointer-events: none;
908
- transform: translateY(-50%) translateX(4px);
909
- transition: opacity 140ms ease, transform 140ms ease;
891
+ transition: opacity 140ms ease;
910
892
  }
911
893
 
912
- .tree-node-row-container:hover .tree-node-hover-menu,
913
- .tree-node-hover-menu:focus-within {
894
+ .tree-node-row:hover .tree-node-menu,
895
+ .tree-node-menu:focus-within,
896
+ .tree-node-menu.is-open {
914
897
  opacity: 1;
915
898
  pointer-events: auto;
916
- transform: translateY(-50%) translateX(0);
917
899
  }
918
900
 
919
- .tree-node-menu-item {
920
- padding: 6px 9px;
921
- font-size: 11px;
922
- border-radius: 999px;
923
- white-space: nowrap;
924
- box-shadow: 0 10px 22px rgba(44, 31, 15, 0.12);
901
+ .tree-node-menu.is-open {
902
+ z-index: 20;
903
+ }
904
+
905
+ @media (hover: none) {
906
+ .tree-node-menu {
907
+ opacity: 1;
908
+ pointer-events: auto;
909
+ }
910
+ }
911
+
912
+ .tree-node-menu-trigger {
913
+ width: 26px;
914
+ height: 26px;
915
+ padding: 0;
916
+ display: inline-flex;
917
+ align-items: center;
918
+ justify-content: center;
919
+ border-radius: 8px;
920
+ }
921
+
922
+ .tree-node-menu-trigger svg {
923
+ width: 14px;
924
+ height: 14px;
925
+ fill: currentColor;
926
+ }
927
+
928
+ .tree-node-menu-panel {
929
+ position: absolute;
930
+ top: calc(100% + 4px);
931
+ right: 0;
932
+ z-index: 9;
933
+ width: max-content;
934
+ min-width: 140px;
935
+ padding: 6px;
936
+ border: 1px solid var(--line);
937
+ border-radius: 10px;
938
+ background: #fffaf2;
939
+ box-shadow: var(--shadow-strong);
940
+ display: flex;
941
+ flex-direction: column;
942
+ gap: 2px;
943
+ }
944
+
945
+ .tree-node-menu-panel[hidden] {
946
+ display: none;
947
+ }
948
+
949
+ .tree-node-menu-panel-item {
950
+ width: 100%;
951
+ text-align: left;
952
+ border: none;
953
+ background: transparent;
954
+ color: var(--text);
955
+ font-weight: 600;
956
+ font-size: 12px;
957
+ padding: 7px 9px;
958
+ border-radius: 6px;
959
+ }
960
+
961
+ .tree-node-menu-panel-item:hover {
962
+ transform: none;
963
+ background: var(--panel-soft);
964
+ }
965
+
966
+ .tree-node-menu-panel-item.is-danger {
967
+ color: var(--danger);
968
+ }
969
+
970
+ .tree-node-menu-panel-item.is-danger:hover {
971
+ background: var(--danger-soft);
925
972
  }
926
973
 
927
974
  .tree-node-children[hidden] {
@@ -993,8 +1040,9 @@ button.tree-toggle:active {
993
1040
  display: grid;
994
1041
  grid-template-rows: auto minmax(0, 1fr) auto;
995
1042
  gap: 0;
996
- background:
997
- linear-gradient(165deg, rgba(255, 251, 243, 0.95) 0%, rgba(247, 237, 223, 0.95) 100%);
1043
+ /* 和 #messages / .composer 用同一个 --surface-panel,避免包裹它们的这层
1044
+ 在缝隙处显得比内容区更深一截 */
1045
+ background: var(--surface-panel);
998
1046
  animation: panelIn 360ms ease 60ms both;
999
1047
  }
1000
1048
 
@@ -1005,81 +1053,81 @@ button.tree-toggle:active {
1005
1053
  align-items: flex-start;
1006
1054
  gap: 12px;
1007
1055
  padding: 6px 8px 12px;
1008
- border-bottom: 1px solid rgba(181, 146, 99, 0.48);
1056
+ border-bottom: 1px solid var(--line-medium);
1009
1057
  }
1010
1058
 
1011
1059
  .header-main {
1012
1060
  flex: 1;
1013
1061
  min-width: 0;
1014
1062
  display: flex;
1015
- flex-direction: column;
1016
- gap: 8px;
1017
1063
  }
1018
1064
 
1019
- .header-main-top {
1065
+ .workbench-tabs {
1066
+ flex: 1;
1020
1067
  display: flex;
1068
+ flex-wrap: wrap;
1021
1069
  align-items: center;
1022
1070
  gap: 8px;
1023
- min-width: 0;
1024
1071
  }
1025
1072
 
1026
- .header-menu {
1027
- position: relative;
1028
- flex: none;
1029
- }
1030
-
1031
- #activeTitle {
1032
- margin: 0;
1033
- font-family: var(--font-display);
1034
- font-size: 22px;
1035
- font-weight: 700;
1036
- line-height: 1.12;
1037
- letter-spacing: 0.4px;
1038
- word-break: break-all;
1073
+ .workbench-tabs button.is-active,
1074
+ .composer-options-panel button.is-active {
1075
+ color: #ffffff;
1076
+ background: var(--accent);
1077
+ border-color: var(--accent-strong);
1039
1078
  }
1040
1079
 
1041
- .header-main-top #activeTitle {
1042
- flex: 1;
1043
- min-width: 0;
1080
+ .workspace-switcher {
1081
+ position: relative;
1082
+ display: inline-flex;
1083
+ /* 始终贴住这一行的右侧:桌面端只有它自己时贴最右,移动端"会话"贴最左时它仍贴最右 */
1084
+ margin-left: auto;
1044
1085
  }
1045
1086
 
1046
- #activeMeta {
1047
- margin-top: 2px;
1048
- font-size: 12px;
1049
- color: var(--muted);
1087
+ .workspace-switcher-btn {
1088
+ width: 34px;
1089
+ height: 34px;
1090
+ padding: 0;
1091
+ display: inline-flex;
1092
+ align-items: center;
1093
+ justify-content: center;
1050
1094
  }
1051
1095
 
1052
- .workbench-tabs {
1053
- display: inline-flex;
1054
- flex-wrap: wrap;
1055
- gap: 8px;
1096
+ .workspace-switcher-btn svg {
1097
+ width: 16px;
1098
+ height: 16px;
1099
+ fill: currentColor;
1056
1100
  }
1057
1101
 
1058
- .workbench-tabs button.is-active,
1059
- .composer-mode-switch button.is-active {
1102
+ .workspace-switcher-btn.is-active {
1060
1103
  color: #ffffff;
1061
1104
  background: var(--accent);
1062
1105
  border-color: var(--accent-strong);
1063
1106
  }
1064
1107
 
1065
- .header-actions {
1108
+ .workspace-switcher-panel {
1066
1109
  display: none;
1067
1110
  position: absolute;
1068
1111
  top: calc(100% + 8px);
1112
+ /* 触发按钮固定贴住这一行右侧,面板也从右边缘向左展开,避免在宽屏下超出视口 */
1069
1113
  right: 0;
1070
1114
  z-index: 8;
1071
- width: min(240px, calc(100vw - 36px));
1115
+ width: max-content;
1072
1116
  padding: 8px;
1073
1117
  border: 1px solid var(--line);
1074
1118
  border-radius: 10px;
1075
1119
  background: #fffaf2;
1076
1120
  box-shadow: var(--shadow-strong);
1077
- grid-template-columns: 1fr;
1078
- gap: 8px;
1121
+ flex-direction: column;
1122
+ gap: 6px;
1079
1123
  }
1080
1124
 
1081
- body.mobile-actions-open .header-actions {
1082
- display: grid;
1125
+ body.workspace-switcher-open .workspace-switcher-panel {
1126
+ display: flex;
1127
+ }
1128
+
1129
+ .workspace-switcher-panel button {
1130
+ text-align: left;
1083
1131
  }
1084
1132
 
1085
1133
  .workspace-shell {
@@ -1113,15 +1161,13 @@ body.mobile-actions-open .header-actions {
1113
1161
  min-height: 0;
1114
1162
  overflow-y: auto;
1115
1163
  margin: 0;
1116
- padding: 14px;
1117
- border: 1px solid var(--line);
1164
+ padding: 14px 14px 44px;
1118
1165
  border-radius: 14px;
1119
1166
  display: flex;
1120
1167
  flex-direction: column;
1121
1168
  gap: 14px;
1122
1169
  scroll-behavior: smooth;
1123
- background:
1124
- linear-gradient(180deg, rgba(255, 255, 255, 0.88) 0%, rgba(252, 246, 236, 0.88) 100%);
1170
+ background: var(--surface-panel);
1125
1171
  }
1126
1172
 
1127
1173
  #terminalPanel {
@@ -1139,8 +1185,7 @@ body.mobile-actions-open .header-actions {
1139
1185
  border: 1px solid var(--line);
1140
1186
  border-radius: 14px;
1141
1187
  overflow: hidden;
1142
- background:
1143
- linear-gradient(180deg, rgba(255, 255, 255, 0.88) 0%, rgba(252, 246, 236, 0.88) 100%);
1188
+ background: var(--surface-panel);
1144
1189
  }
1145
1190
 
1146
1191
  .files-browser {
@@ -1382,8 +1427,7 @@ body.mobile-actions-open .header-actions {
1382
1427
  padding: 0;
1383
1428
  border: 1px solid var(--line);
1384
1429
  border-radius: 14px;
1385
- background:
1386
- linear-gradient(180deg, rgba(255, 255, 255, 0.88) 0%, rgba(252, 246, 236, 0.88) 100%);
1430
+ background: var(--surface-panel);
1387
1431
  }
1388
1432
 
1389
1433
  .inspector-stack {
@@ -1613,6 +1657,17 @@ body.terminal-mode .composer {
1613
1657
  gap: 6px;
1614
1658
  animation: msgIn 210ms ease both;
1615
1659
  animation-delay: 0ms;
1660
+ /* animation 会让每条消息各自建立独立的层叠上下文(transform/opacity 动画的副作用),
1661
+ 悬浮显示的 .msg-actions 浮层因此只能在本条消息内部比较 z-index,
1662
+ 会被后面消息按 DOM 序整体盖住;悬浮时显式提升本条消息的 z-index 才能穿透 */
1663
+ z-index: 0;
1664
+ }
1665
+
1666
+ .msg:hover,
1667
+ .msg:focus-within {
1668
+ /* 需要高于移动端 .composer 的 z-index: 3(position: sticky,悬浮在滚动内容之上),
1669
+ 否则最后一条消息的浮层会被吸底的输入框盖住 */
1670
+ z-index: 4;
1616
1671
  }
1617
1672
 
1618
1673
  .msg.user {
@@ -1657,6 +1712,75 @@ body.terminal-mode .composer {
1657
1712
  font-weight: 700;
1658
1713
  }
1659
1714
 
1715
+ .msg-actions {
1716
+ position: absolute;
1717
+ top: 100%;
1718
+ /* 用 padding-top 而不是 margin-top 留白:margin 在盒子外,鼠标从气泡移到按钮
1719
+ 之间会经过一段没有任何元素承接的"死区",:hover 提前丢失导致按钮还没碰到就消失;
1720
+ padding 仍属于本元素的可命中区域,鼠标全程都在同一个悬浮触发范围内 */
1721
+ padding-top: 4px;
1722
+ display: flex;
1723
+ gap: 6px;
1724
+ opacity: 0;
1725
+ pointer-events: none;
1726
+ transition: opacity 140ms ease;
1727
+ z-index: 1;
1728
+ }
1729
+
1730
+ .msg.user .msg-actions {
1731
+ right: 0;
1732
+ }
1733
+
1734
+ .msg.assistant .msg-actions,
1735
+ .msg.system .msg-actions {
1736
+ left: 0;
1737
+ }
1738
+
1739
+ .msg:hover .msg-actions,
1740
+ .msg:focus-within .msg-actions {
1741
+ opacity: 1;
1742
+ pointer-events: auto;
1743
+ }
1744
+
1745
+ @media (hover: none) {
1746
+ .msg-actions {
1747
+ opacity: 1;
1748
+ pointer-events: auto;
1749
+ }
1750
+
1751
+ /* 触屏设备没有真正的 :hover,上面 .msg:hover 提升 z-index 的规则永远不会触发;
1752
+ 这里常驻按住基础 z-index 之上,浮层才不会被吸底输入框(sticky, z-index: 3)盖住 */
1753
+ .msg {
1754
+ z-index: 4;
1755
+ }
1756
+ }
1757
+
1758
+ .msg-copy-btn {
1759
+ border: 1px solid var(--line);
1760
+ border-radius: 10px;
1761
+ background: var(--panel-soft);
1762
+ color: var(--muted);
1763
+ font-size: 11px;
1764
+ font-weight: 600;
1765
+ padding: 2px 8px;
1766
+ cursor: pointer;
1767
+ transition: color 140ms ease, border-color 140ms ease, background-color 140ms ease;
1768
+ }
1769
+
1770
+ .msg-copy-btn:hover {
1771
+ color: var(--accent-strong);
1772
+ /* 不显式设置背景色的话,通用 button:hover 规则的深色背景会覆盖进来,
1773
+ 和同色系的文字撞色看不清,这里只需要比默认背景微微变深 */
1774
+ background: #f0e6d3;
1775
+ border-color: var(--line-strong);
1776
+ }
1777
+
1778
+ .msg-copy-btn.is-copied {
1779
+ color: var(--subaccent-strong);
1780
+ border-color: var(--subaccent);
1781
+ background: var(--subaccent-soft);
1782
+ }
1783
+
1660
1784
  .msg-exit {
1661
1785
  font-family: var(--font-mono);
1662
1786
  font-size: 11px;
@@ -1676,6 +1800,7 @@ body.terminal-mode .composer {
1676
1800
  }
1677
1801
 
1678
1802
  .bubble {
1803
+ position: relative;
1679
1804
  border: 1px solid var(--line);
1680
1805
  border-radius: 10px;
1681
1806
  background: var(--assistant-bubble);
@@ -1731,6 +1856,7 @@ body.command-mode .msg.origin-agent .bubble {
1731
1856
  display: flex;
1732
1857
  flex-direction: column;
1733
1858
  gap: 10px;
1859
+ margin-bottom: 10px;
1734
1860
  }
1735
1861
 
1736
1862
  .trace-flow {
@@ -1739,6 +1865,52 @@ body.command-mode .msg.origin-agent .bubble {
1739
1865
  gap: 8px;
1740
1866
  }
1741
1867
 
1868
+ .trace-flow-toggle {
1869
+ border: 1px solid rgba(181, 146, 99, 0.26);
1870
+ border-radius: 10px;
1871
+ background: rgba(255, 250, 242, 0.7);
1872
+ overflow: hidden;
1873
+ }
1874
+
1875
+ .trace-flow-toggle[open] {
1876
+ background: transparent;
1877
+ border-color: transparent;
1878
+ }
1879
+
1880
+ .trace-flow-toggle-summary {
1881
+ list-style: none;
1882
+ display: flex;
1883
+ align-items: center;
1884
+ gap: 6px;
1885
+ padding: 8px 10px;
1886
+ cursor: pointer;
1887
+ font-size: 12px;
1888
+ color: var(--muted);
1889
+ }
1890
+
1891
+ .trace-flow-toggle-summary::-webkit-details-marker {
1892
+ display: none;
1893
+ }
1894
+
1895
+ .trace-flow-toggle-summary::before {
1896
+ content: '';
1897
+ width: 8px;
1898
+ height: 8px;
1899
+ flex: 0 0 auto;
1900
+ border-right: 1.6px solid currentColor;
1901
+ border-bottom: 1.6px solid currentColor;
1902
+ transform: rotate(-45deg);
1903
+ transition: transform 140ms ease;
1904
+ }
1905
+
1906
+ .trace-flow-toggle[open] > .trace-flow-toggle-summary::before {
1907
+ transform: rotate(45deg);
1908
+ }
1909
+
1910
+ .trace-flow-toggle > .trace-flow {
1911
+ padding: 0 10px 10px;
1912
+ }
1913
+
1742
1914
  .trace-card {
1743
1915
  border: 1px solid rgba(181, 146, 99, 0.32);
1744
1916
  border-left-width: 3px;
@@ -1861,39 +2033,61 @@ details.trace-card > .trace-card-summary {
1861
2033
  }
1862
2034
 
1863
2035
  .composer {
1864
- border-top: 1px solid rgba(181, 146, 99, 0.45);
1865
2036
  margin-top: 12px;
1866
2037
  padding: 12px 8px 4px;
2038
+ border-radius: 14px;
1867
2039
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.32) 0%, rgba(255, 249, 240, 0.78) 100%);
1868
2040
  }
1869
2041
 
1870
- .composer-toolbar {
1871
- display: flex;
1872
- align-items: center;
1873
- justify-content: space-between;
2042
+ .composer-inner {
2043
+ display: grid;
2044
+ grid-template-columns: 1fr auto;
2045
+ align-items: flex-end;
1874
2046
  gap: 10px;
1875
- margin-bottom: 10px;
1876
2047
  }
1877
2048
 
1878
- .composer-toolbar-meta {
1879
- display: inline-flex;
1880
- align-items: center;
1881
- gap: 10px;
1882
- margin-left: auto;
2049
+ .composer-actions {
2050
+ display: flex;
2051
+ flex-direction: column;
2052
+ gap: 8px;
1883
2053
  }
1884
2054
 
1885
- .composer-mode-switch {
1886
- display: inline-flex;
1887
- gap: 8px;
2055
+ .composer-options {
2056
+ position: relative;
2057
+ display: flex;
1888
2058
  }
1889
2059
 
1890
- .toolbar-mini-btn {
1891
- padding: 7px 12px;
1892
- font-size: 12px;
1893
- white-space: nowrap;
2060
+ #composerOptionsToggle {
2061
+ min-width: 92px;
1894
2062
  }
1895
2063
 
1896
- .toolbar-chip {
2064
+ .composer-options-panel {
2065
+ display: none;
2066
+ position: absolute;
2067
+ /* 触发按钮在 composer 底部,下拉框往下展开会跑出视口,改成往上展开 */
2068
+ bottom: calc(100% + 8px);
2069
+ right: 0;
2070
+ z-index: 8;
2071
+ width: max-content;
2072
+ min-width: 140px;
2073
+ padding: 8px;
2074
+ border: 1px solid var(--line);
2075
+ border-radius: 10px;
2076
+ background: #fffaf2;
2077
+ box-shadow: var(--shadow-strong);
2078
+ flex-direction: column;
2079
+ gap: 6px;
2080
+ }
2081
+
2082
+ body.composer-options-open .composer-options-panel {
2083
+ display: flex;
2084
+ }
2085
+
2086
+ .composer-options-panel button {
2087
+ text-align: left;
2088
+ }
2089
+
2090
+ .composer-options-info {
1897
2091
  display: inline-flex;
1898
2092
  align-items: center;
1899
2093
  min-height: 32px;
@@ -1907,19 +2101,6 @@ details.trace-card > .trace-card-summary {
1907
2101
  white-space: nowrap;
1908
2102
  }
1909
2103
 
1910
- .composer-inner {
1911
- display: grid;
1912
- grid-template-columns: 1fr auto;
1913
- align-items: flex-end;
1914
- gap: 10px;
1915
- }
1916
-
1917
- .composer-actions {
1918
- display: flex;
1919
- flex-direction: column;
1920
- gap: 8px;
1921
- }
1922
-
1923
2104
  #commandInput {
1924
2105
  width: 100%;
1925
2106
  min-height: 116px;
@@ -1939,29 +2120,6 @@ details.trace-card > .trace-card-summary {
1939
2120
  min-width: 92px;
1940
2121
  }
1941
2122
 
1942
- #stopBtn {
1943
- min-width: 92px;
1944
- }
1945
-
1946
- .composer-foot {
1947
- margin-top: 8px;
1948
- display: flex;
1949
- justify-content: space-between;
1950
- align-items: center;
1951
- gap: 10px;
1952
- color: var(--muted);
1953
- font-size: 12px;
1954
- }
1955
-
1956
- .send-state {
1957
- white-space: nowrap;
1958
- }
1959
-
1960
- .send-state.is-active {
1961
- color: var(--accent);
1962
- font-weight: 700;
1963
- }
1964
-
1965
2123
  @keyframes panelIn {
1966
2124
  from {
1967
2125
  opacity: 0;
@@ -2122,33 +2280,14 @@ details.trace-card > .trace-card-summary {
2122
2280
  }
2123
2281
 
2124
2282
  .header {
2125
- padding: 10px 12px 16px;
2126
- }
2127
-
2128
- #activeTitle {
2129
- font-size: 20px;
2130
- }
2131
-
2132
- #activeMeta {
2133
- display: none;
2283
+ padding: 4px 12px;
2284
+ border-bottom: none;
2134
2285
  }
2135
2286
 
2136
2287
  .workbench-tabs {
2137
- display: grid;
2138
- grid-template-columns: repeat(6, minmax(0, 1fr));
2139
2288
  gap: 6px;
2140
2289
  }
2141
2290
 
2142
- .workbench-tabs button {
2143
- padding: 8px 10px;
2144
- font-size: 12px;
2145
- }
2146
-
2147
- .composer-toolbar {
2148
- flex-direction: column;
2149
- align-items: flex-start;
2150
- }
2151
-
2152
2291
  .files-layout {
2153
2292
  grid-template-columns: minmax(0, 1fr);
2154
2293
  grid-template-rows: minmax(180px, 38%) minmax(0, 1fr);
@@ -2159,16 +2298,8 @@ details.trace-card > .trace-card-summary {
2159
2298
  border-bottom: 1px solid var(--line);
2160
2299
  }
2161
2300
 
2162
- .composer-toolbar-meta {
2163
- width: 100%;
2164
- justify-content: space-between;
2165
- margin-left: 0;
2166
- }
2167
-
2168
- .composer-mode-switch {
2169
- width: 100%;
2170
- display: grid;
2171
- grid-template-columns: repeat(2, minmax(0, 1fr));
2301
+ .composer-inner {
2302
+ align-items: stretch;
2172
2303
  }
2173
2304
 
2174
2305
  #commandInput {
@@ -2176,16 +2307,13 @@ details.trace-card > .trace-card-summary {
2176
2307
  max-height: 160px;
2177
2308
  }
2178
2309
 
2179
- #sendBtn {
2310
+ #sendBtn,
2311
+ #composerOptionsToggle {
2180
2312
  width: auto;
2181
2313
  min-width: 74px;
2182
2314
  align-self: stretch;
2183
2315
  }
2184
2316
 
2185
- .composer-foot {
2186
- display: none;
2187
- }
2188
-
2189
2317
  .composer {
2190
2318
  padding: 8px 8px 6px;
2191
2319
  }