@huyooo/ai-chat-frontend-react 0.2.12 → 0.2.14

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 (110) hide show
  1. package/README.md +99 -84
  2. package/dist/KaTeX_AMS-Regular-CYEKBG2K.woff +0 -0
  3. package/dist/KaTeX_AMS-Regular-JKX5W2C4.ttf +0 -0
  4. package/dist/KaTeX_AMS-Regular-U6PRYMIZ.woff2 +0 -0
  5. package/dist/KaTeX_Caligraphic-Bold-5QL5CMTE.woff2 +0 -0
  6. package/dist/KaTeX_Caligraphic-Bold-WZ3QSGD3.woff +0 -0
  7. package/dist/KaTeX_Caligraphic-Bold-ZTS3R3HK.ttf +0 -0
  8. package/dist/KaTeX_Caligraphic-Regular-3LKEU76G.woff +0 -0
  9. package/dist/KaTeX_Caligraphic-Regular-A7XRTZ5Q.ttf +0 -0
  10. package/dist/KaTeX_Caligraphic-Regular-KX5MEWCF.woff2 +0 -0
  11. package/dist/KaTeX_Fraktur-Bold-2QVFK6NQ.woff2 +0 -0
  12. package/dist/KaTeX_Fraktur-Bold-T4SWXBMT.woff +0 -0
  13. package/dist/KaTeX_Fraktur-Bold-WGHVTYOR.ttf +0 -0
  14. package/dist/KaTeX_Fraktur-Regular-2PEIFJSJ.woff2 +0 -0
  15. package/dist/KaTeX_Fraktur-Regular-5U4OPH2X.ttf +0 -0
  16. package/dist/KaTeX_Fraktur-Regular-PQMHCIK6.woff +0 -0
  17. package/dist/KaTeX_Main-Bold-2GA4IZIN.woff +0 -0
  18. package/dist/KaTeX_Main-Bold-W5FBVCZM.ttf +0 -0
  19. package/dist/KaTeX_Main-Bold-YP5VVQRP.woff2 +0 -0
  20. package/dist/KaTeX_Main-BoldItalic-4P4C7HJH.woff +0 -0
  21. package/dist/KaTeX_Main-BoldItalic-N4V3DX7S.woff2 +0 -0
  22. package/dist/KaTeX_Main-BoldItalic-ODMLBJJQ.ttf +0 -0
  23. package/dist/KaTeX_Main-Italic-I43T2HSR.ttf +0 -0
  24. package/dist/KaTeX_Main-Italic-RELBIK7M.woff2 +0 -0
  25. package/dist/KaTeX_Main-Italic-SASNQFN2.woff +0 -0
  26. package/dist/KaTeX_Main-Regular-ARRPAO67.woff2 +0 -0
  27. package/dist/KaTeX_Main-Regular-P5I74A2A.woff +0 -0
  28. package/dist/KaTeX_Main-Regular-W74P5G27.ttf +0 -0
  29. package/dist/KaTeX_Math-BoldItalic-6EBV3DK5.woff +0 -0
  30. package/dist/KaTeX_Math-BoldItalic-K4WTGH3J.woff2 +0 -0
  31. package/dist/KaTeX_Math-BoldItalic-VB447A4D.ttf +0 -0
  32. package/dist/KaTeX_Math-Italic-6KGCHLFN.woff2 +0 -0
  33. package/dist/KaTeX_Math-Italic-KKK3USB2.woff +0 -0
  34. package/dist/KaTeX_Math-Italic-SON4MRCA.ttf +0 -0
  35. package/dist/KaTeX_SansSerif-Bold-RRNVJFFW.woff2 +0 -0
  36. package/dist/KaTeX_SansSerif-Bold-STQ6RXC7.ttf +0 -0
  37. package/dist/KaTeX_SansSerif-Bold-X5M5EMOD.woff +0 -0
  38. package/dist/KaTeX_SansSerif-Italic-HMPFTM52.woff2 +0 -0
  39. package/dist/KaTeX_SansSerif-Italic-PSN4QKYX.woff +0 -0
  40. package/dist/KaTeX_SansSerif-Italic-WTBAZBGY.ttf +0 -0
  41. package/dist/KaTeX_SansSerif-Regular-2TL3USAE.ttf +0 -0
  42. package/dist/KaTeX_SansSerif-Regular-OQCII6EP.woff +0 -0
  43. package/dist/KaTeX_SansSerif-Regular-XIQ62X4E.woff2 +0 -0
  44. package/dist/KaTeX_Script-Regular-72OLXYNA.ttf +0 -0
  45. package/dist/KaTeX_Script-Regular-A5IFOEBS.woff +0 -0
  46. package/dist/KaTeX_Script-Regular-APUWIHLP.woff2 +0 -0
  47. package/dist/KaTeX_Size1-Regular-4HRHTS65.woff +0 -0
  48. package/dist/KaTeX_Size1-Regular-5LRUTBFT.woff2 +0 -0
  49. package/dist/KaTeX_Size1-Regular-7K6AASVL.ttf +0 -0
  50. package/dist/KaTeX_Size2-Regular-222HN3GT.ttf +0 -0
  51. package/dist/KaTeX_Size2-Regular-K5ZHAIS6.woff +0 -0
  52. package/dist/KaTeX_Size2-Regular-LELKET5D.woff2 +0 -0
  53. package/dist/KaTeX_Size3-Regular-TLFPAHDE.woff +0 -0
  54. package/dist/KaTeX_Size3-Regular-UFCO6WCA.ttf +0 -0
  55. package/dist/KaTeX_Size3-Regular-WQRQ47UD.woff2 +0 -0
  56. package/dist/KaTeX_Size4-Regular-7PGNVPQK.ttf +0 -0
  57. package/dist/KaTeX_Size4-Regular-CDMV7U5C.woff2 +0 -0
  58. package/dist/KaTeX_Size4-Regular-PKMWZHNC.woff +0 -0
  59. package/dist/KaTeX_Typewriter-Regular-3F5K6SQ6.ttf +0 -0
  60. package/dist/KaTeX_Typewriter-Regular-MJMFSK64.woff +0 -0
  61. package/dist/KaTeX_Typewriter-Regular-VBYJ4NRC.woff2 +0 -0
  62. package/dist/index.css +2156 -603
  63. package/dist/index.css.map +1 -1
  64. package/dist/index.d.ts +126 -92
  65. package/dist/index.js +1605 -976
  66. package/dist/index.js.map +1 -1
  67. package/dist/style.css +130 -0
  68. package/package.json +3 -3
  69. package/src/components/ChatPanel.tsx +82 -19
  70. package/src/components/common/SettingsPanel.css +81 -0
  71. package/src/components/common/SettingsPanel.tsx +96 -1
  72. package/src/components/input/ChatInput.css +0 -1
  73. package/src/components/input/ChatInput.tsx +48 -26
  74. package/src/components/input/DropdownSelector.css +66 -0
  75. package/src/components/input/DropdownSelector.tsx +157 -19
  76. package/src/components/message/MessageBubble.css +5 -2
  77. package/src/components/message/MessageBubble.tsx +44 -35
  78. package/src/components/message/PartsRenderer.css +8 -0
  79. package/src/components/message/PartsRenderer.tsx +137 -83
  80. package/src/components/message/parts/CollapsibleCard.css +4 -2
  81. package/src/components/message/parts/CollapsibleCard.tsx +4 -1
  82. package/src/components/message/parts/ImagePart.css +0 -1
  83. package/src/components/message/parts/TextPart.css +574 -5
  84. package/src/components/message/parts/TextPart.tsx +201 -8
  85. package/src/components/message/parts/ToolCallPart.css +139 -115
  86. package/src/components/message/parts/ToolCallPart.tsx +138 -134
  87. package/src/components/message/parts/ToolResultPart.css +0 -1
  88. package/src/components/message/parts/index.ts +3 -1
  89. package/src/components/message/parts/visual-predicate.ts +43 -0
  90. package/src/components/message/parts/visual-render.ts +19 -0
  91. package/src/components/message/parts/visual.ts +12 -0
  92. package/src/context/RenderersContext.tsx +19 -25
  93. package/src/hooks/useChat.ts +567 -79
  94. package/src/hooks/useImageUpload.ts +104 -12
  95. package/src/hooks/useVoiceInput.ts +17 -0
  96. package/src/index.ts +19 -16
  97. package/src/styles.css +130 -0
  98. package/src/types/index.ts +52 -68
  99. package/src/components/message/ContentRenderer.tsx +0 -63
  100. package/src/components/message/ToolResultRenderer.tsx +0 -21
  101. package/src/components/message/blocks/CodeBlock.tsx +0 -60
  102. package/src/components/message/blocks/TextBlock.tsx +0 -15
  103. package/src/components/message/blocks/blocks.css +0 -141
  104. package/src/components/message/blocks/index.ts +0 -6
  105. package/src/components/message/parts/ToolResultPart.tsx +0 -96
  106. package/src/components/message/tool-results/DefaultToolResult.tsx +0 -26
  107. package/src/components/message/tool-results/SearchResults.tsx +0 -69
  108. package/src/components/message/tool-results/WeatherCard.tsx +0 -63
  109. package/src/components/message/tool-results/index.ts +0 -7
  110. package/src/components/message/tool-results/tool-results.css +0 -181
package/dist/index.css CHANGED
@@ -11,6 +11,7 @@
11
11
  --chat-muted-hover: #e6e5e0;
12
12
  --chat-border: #26251e1a;
13
13
  --chat-text: #26251eeb;
14
+ --chat-text-strong: #26251e;
14
15
  --chat-text-muted: #26251e99;
15
16
  --chat-primary: #54a9ff;
16
17
  --chat-primary-hover: #2f90ff;
@@ -24,6 +25,34 @@
24
25
  --chat-fab-bg: #ffffff;
25
26
  --chat-fab-bg-hover: var(--chat-input-bg);
26
27
  --chat-fab-shadow: 0 10px 24px rgba(0, 0, 0, 0.12);
28
+ --chat-hljs-keyword: #cf222e;
29
+ --chat-hljs-built-in: #953800;
30
+ --chat-hljs-type: #953800;
31
+ --chat-hljs-function: #8250df;
32
+ --chat-hljs-string: #0a3069;
33
+ --chat-hljs-number: #0550ae;
34
+ --chat-hljs-literal: #0550ae;
35
+ --chat-hljs-comment: #6e7781;
36
+ --chat-hljs-variable: #953800;
37
+ --chat-hljs-attr: #0550ae;
38
+ --chat-hljs-property: #116329;
39
+ --chat-hljs-operator: #cf222e;
40
+ --chat-hljs-punctuation: #24292f;
41
+ --chat-hljs-params: #24292f;
42
+ --chat-hljs-regexp: #116329;
43
+ --chat-hljs-selector: #116329;
44
+ --chat-hljs-tag: #116329;
45
+ --chat-hljs-name: #116329;
46
+ --chat-hljs-deletion: #82071e;
47
+ --chat-hljs-deletion-bg: rgba(255, 129, 130, 0.15);
48
+ --chat-hljs-addition: #116329;
49
+ --chat-hljs-addition-bg: rgba(46, 160, 67, 0.15);
50
+ --chat-hljs-meta: #6e7781;
51
+ --chat-hljs-link: #0a3069;
52
+ --chat-hljs-symbol: #0550ae;
53
+ --chat-hljs-subst: #24292f;
54
+ --chat-hljs-section: #0550ae;
55
+ --chat-hljs-bullet: #953800;
27
56
  }
28
57
  @media (prefers-color-scheme: dark) {
29
58
  :root {
@@ -36,6 +65,7 @@
36
65
  --chat-muted-hover: #3c3c3c;
37
66
  --chat-border: #333;
38
67
  --chat-text: #ccc;
68
+ --chat-text-strong: #fff;
39
69
  --chat-text-muted: #888;
40
70
  --chat-primary: #54a9ff;
41
71
  --chat-primary-hover: #2f90ff;
@@ -49,6 +79,34 @@
49
79
  --chat-fab-bg: var(--chat-muted);
50
80
  --chat-fab-bg-hover: var(--chat-muted-hover);
51
81
  --chat-fab-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
82
+ --chat-hljs-keyword: #ff7b72;
83
+ --chat-hljs-built-in: #ffa657;
84
+ --chat-hljs-type: #ffa657;
85
+ --chat-hljs-function: #d2a8ff;
86
+ --chat-hljs-string: #a5d6ff;
87
+ --chat-hljs-number: #79c0ff;
88
+ --chat-hljs-literal: #79c0ff;
89
+ --chat-hljs-comment: #8b949e;
90
+ --chat-hljs-variable: #ffa657;
91
+ --chat-hljs-attr: #79c0ff;
92
+ --chat-hljs-property: #7ee787;
93
+ --chat-hljs-operator: #ff7b72;
94
+ --chat-hljs-punctuation: #e6edf3;
95
+ --chat-hljs-params: #e6edf3;
96
+ --chat-hljs-regexp: #7ee787;
97
+ --chat-hljs-selector: #7ee787;
98
+ --chat-hljs-tag: #7ee787;
99
+ --chat-hljs-name: #7ee787;
100
+ --chat-hljs-deletion: #ffa198;
101
+ --chat-hljs-deletion-bg: rgba(248, 81, 73, 0.15);
102
+ --chat-hljs-addition: #7ee787;
103
+ --chat-hljs-addition-bg: rgba(46, 160, 67, 0.15);
104
+ --chat-hljs-meta: #8b949e;
105
+ --chat-hljs-link: #a5d6ff;
106
+ --chat-hljs-symbol: #79c0ff;
107
+ --chat-hljs-subst: #e6edf3;
108
+ --chat-hljs-section: #79c0ff;
109
+ --chat-hljs-bullet: #ffa657;
52
110
  }
53
111
  }
54
112
  :root[data-theme=light] {
@@ -61,6 +119,7 @@
61
119
  --chat-muted-hover: #e6e5e0;
62
120
  --chat-border: #26251e1a;
63
121
  --chat-text: #26251eeb;
122
+ --chat-text-strong: #26251e;
64
123
  --chat-text-muted: #26251e99;
65
124
  --chat-primary: #54a9ff;
66
125
  --chat-primary-hover: #2f90ff;
@@ -74,6 +133,34 @@
74
133
  --chat-fab-bg: #ffffff;
75
134
  --chat-fab-bg-hover: var(--chat-input-bg);
76
135
  --chat-fab-shadow: 0 10px 24px rgba(0, 0, 0, 0.12);
136
+ --chat-hljs-keyword: #cf222e;
137
+ --chat-hljs-built-in: #953800;
138
+ --chat-hljs-type: #953800;
139
+ --chat-hljs-function: #8250df;
140
+ --chat-hljs-string: #0a3069;
141
+ --chat-hljs-number: #0550ae;
142
+ --chat-hljs-literal: #0550ae;
143
+ --chat-hljs-comment: #6e7781;
144
+ --chat-hljs-variable: #953800;
145
+ --chat-hljs-attr: #0550ae;
146
+ --chat-hljs-property: #116329;
147
+ --chat-hljs-operator: #cf222e;
148
+ --chat-hljs-punctuation: #24292f;
149
+ --chat-hljs-params: #24292f;
150
+ --chat-hljs-regexp: #116329;
151
+ --chat-hljs-selector: #116329;
152
+ --chat-hljs-tag: #116329;
153
+ --chat-hljs-name: #116329;
154
+ --chat-hljs-deletion: #82071e;
155
+ --chat-hljs-deletion-bg: rgba(255, 129, 130, 0.15);
156
+ --chat-hljs-addition: #116329;
157
+ --chat-hljs-addition-bg: rgba(46, 160, 67, 0.15);
158
+ --chat-hljs-meta: #6e7781;
159
+ --chat-hljs-link: #0a3069;
160
+ --chat-hljs-symbol: #0550ae;
161
+ --chat-hljs-subst: #24292f;
162
+ --chat-hljs-section: #0550ae;
163
+ --chat-hljs-bullet: #953800;
77
164
  }
78
165
  :root[data-theme=dark] {
79
166
  color-scheme: dark;
@@ -85,6 +172,7 @@
85
172
  --chat-muted-hover: #3c3c3c;
86
173
  --chat-border: #333;
87
174
  --chat-text: #ccc;
175
+ --chat-text-strong: #fff;
88
176
  --chat-text-muted: #888;
89
177
  --chat-primary: #54a9ff;
90
178
  --chat-primary-hover: #2f90ff;
@@ -98,6 +186,34 @@
98
186
  --chat-fab-bg: var(--chat-muted);
99
187
  --chat-fab-bg-hover: var(--chat-muted-hover);
100
188
  --chat-fab-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
189
+ --chat-hljs-keyword: #ff7b72;
190
+ --chat-hljs-built-in: #ffa657;
191
+ --chat-hljs-type: #ffa657;
192
+ --chat-hljs-function: #d2a8ff;
193
+ --chat-hljs-string: #a5d6ff;
194
+ --chat-hljs-number: #79c0ff;
195
+ --chat-hljs-literal: #79c0ff;
196
+ --chat-hljs-comment: #8b949e;
197
+ --chat-hljs-variable: #ffa657;
198
+ --chat-hljs-attr: #79c0ff;
199
+ --chat-hljs-property: #7ee787;
200
+ --chat-hljs-operator: #ff7b72;
201
+ --chat-hljs-punctuation: #e6edf3;
202
+ --chat-hljs-params: #e6edf3;
203
+ --chat-hljs-regexp: #7ee787;
204
+ --chat-hljs-selector: #7ee787;
205
+ --chat-hljs-tag: #7ee787;
206
+ --chat-hljs-name: #7ee787;
207
+ --chat-hljs-deletion: #ffa198;
208
+ --chat-hljs-deletion-bg: rgba(248, 81, 73, 0.15);
209
+ --chat-hljs-addition: #7ee787;
210
+ --chat-hljs-addition-bg: rgba(46, 160, 67, 0.15);
211
+ --chat-hljs-meta: #8b949e;
212
+ --chat-hljs-link: #a5d6ff;
213
+ --chat-hljs-symbol: #79c0ff;
214
+ --chat-hljs-subst: #e6edf3;
215
+ --chat-hljs-section: #79c0ff;
216
+ --chat-hljs-bullet: #ffa657;
101
217
  }
102
218
  .chat-scrollbar::-webkit-scrollbar {
103
219
  width: 6px;
@@ -133,6 +249,9 @@
133
249
  overflow-y: auto;
134
250
  padding: 12px;
135
251
  scroll-behavior: smooth;
252
+ display: flex;
253
+ flex-direction: column;
254
+ gap: 8px;
136
255
  }
137
256
  .scroll-to-bottom-btn {
138
257
  position: absolute;
@@ -597,7 +716,6 @@
597
716
 
598
717
  /* src/components/message/MessageBubble.css */
599
718
  .message-bubble {
600
- padding: 8px 0;
601
719
  animation: fadeIn 0.2s ease;
602
720
  }
603
721
  @keyframes fadeIn {
@@ -659,7 +777,9 @@
659
777
  background: var(--chat-muted, #2a2a2a);
660
778
  border-radius: 8px;
661
779
  overflow: hidden;
662
- margin: 8px 0;
780
+ }
781
+ .loading-indicator.has-content-above {
782
+ margin-top: 8px;
663
783
  }
664
784
  .loading-text {
665
785
  font-size: 13px;
@@ -755,7 +875,6 @@
755
875
 
756
876
  /* src/components/message/parts/CollapsibleCard.css */
757
877
  .collapsible-card {
758
- margin: 8px 0;
759
878
  border-radius: 8px;
760
879
  background: var(--chat-muted, #2a2a2a);
761
880
  border: 1px solid var(--chat-border, #333);
@@ -774,6 +893,8 @@
774
893
  align-items: center;
775
894
  gap: 8px;
776
895
  flex: 1;
896
+ }
897
+ .card-header-left.clickable {
777
898
  cursor: pointer;
778
899
  }
779
900
  .card-header-right {
@@ -817,365 +938,1970 @@
817
938
  transform: rotate(180deg);
818
939
  }
819
940
  .card-content {
820
- padding: 12px;
941
+ padding: 0 12px 12px;
821
942
  min-width: 0;
822
943
  overflow: hidden;
823
944
  }
824
945
 
825
- /* src/components/message/parts/TextPart.css */
826
- .text-part {
827
- font-size: 14px;
828
- line-height: 1.7;
829
- color: var(--chat-text, #ccc);
830
- word-break: break-word;
831
- overflow-wrap: break-word;
946
+ /* ../../node_modules/katex/dist/katex.min.css */
947
+ @font-face {
948
+ font-display: block;
949
+ font-family: KaTeX_AMS;
950
+ font-style: normal;
951
+ font-weight: 400;
952
+ src:
953
+ url("./KaTeX_AMS-Regular-U6PRYMIZ.woff2") format("woff2"),
954
+ url("./KaTeX_AMS-Regular-CYEKBG2K.woff") format("woff"),
955
+ url("./KaTeX_AMS-Regular-JKX5W2C4.ttf") format("truetype");
956
+ }
957
+ @font-face {
958
+ font-display: block;
959
+ font-family: KaTeX_Caligraphic;
960
+ font-style: normal;
961
+ font-weight: 700;
962
+ src:
963
+ url("./KaTeX_Caligraphic-Bold-5QL5CMTE.woff2") format("woff2"),
964
+ url("./KaTeX_Caligraphic-Bold-WZ3QSGD3.woff") format("woff"),
965
+ url("./KaTeX_Caligraphic-Bold-ZTS3R3HK.ttf") format("truetype");
966
+ }
967
+ @font-face {
968
+ font-display: block;
969
+ font-family: KaTeX_Caligraphic;
970
+ font-style: normal;
971
+ font-weight: 400;
972
+ src:
973
+ url("./KaTeX_Caligraphic-Regular-KX5MEWCF.woff2") format("woff2"),
974
+ url("./KaTeX_Caligraphic-Regular-3LKEU76G.woff") format("woff"),
975
+ url("./KaTeX_Caligraphic-Regular-A7XRTZ5Q.ttf") format("truetype");
976
+ }
977
+ @font-face {
978
+ font-display: block;
979
+ font-family: KaTeX_Fraktur;
980
+ font-style: normal;
981
+ font-weight: 700;
982
+ src:
983
+ url("./KaTeX_Fraktur-Bold-2QVFK6NQ.woff2") format("woff2"),
984
+ url("./KaTeX_Fraktur-Bold-T4SWXBMT.woff") format("woff"),
985
+ url("./KaTeX_Fraktur-Bold-WGHVTYOR.ttf") format("truetype");
986
+ }
987
+ @font-face {
988
+ font-display: block;
989
+ font-family: KaTeX_Fraktur;
990
+ font-style: normal;
991
+ font-weight: 400;
992
+ src:
993
+ url("./KaTeX_Fraktur-Regular-2PEIFJSJ.woff2") format("woff2"),
994
+ url("./KaTeX_Fraktur-Regular-PQMHCIK6.woff") format("woff"),
995
+ url("./KaTeX_Fraktur-Regular-5U4OPH2X.ttf") format("truetype");
996
+ }
997
+ @font-face {
998
+ font-display: block;
999
+ font-family: KaTeX_Main;
1000
+ font-style: normal;
1001
+ font-weight: 700;
1002
+ src:
1003
+ url("./KaTeX_Main-Bold-YP5VVQRP.woff2") format("woff2"),
1004
+ url("./KaTeX_Main-Bold-2GA4IZIN.woff") format("woff"),
1005
+ url("./KaTeX_Main-Bold-W5FBVCZM.ttf") format("truetype");
1006
+ }
1007
+ @font-face {
1008
+ font-display: block;
1009
+ font-family: KaTeX_Main;
1010
+ font-style: italic;
1011
+ font-weight: 700;
1012
+ src:
1013
+ url("./KaTeX_Main-BoldItalic-N4V3DX7S.woff2") format("woff2"),
1014
+ url("./KaTeX_Main-BoldItalic-4P4C7HJH.woff") format("woff"),
1015
+ url("./KaTeX_Main-BoldItalic-ODMLBJJQ.ttf") format("truetype");
1016
+ }
1017
+ @font-face {
1018
+ font-display: block;
1019
+ font-family: KaTeX_Main;
1020
+ font-style: italic;
1021
+ font-weight: 400;
1022
+ src:
1023
+ url("./KaTeX_Main-Italic-RELBIK7M.woff2") format("woff2"),
1024
+ url("./KaTeX_Main-Italic-SASNQFN2.woff") format("woff"),
1025
+ url("./KaTeX_Main-Italic-I43T2HSR.ttf") format("truetype");
1026
+ }
1027
+ @font-face {
1028
+ font-display: block;
1029
+ font-family: KaTeX_Main;
1030
+ font-style: normal;
1031
+ font-weight: 400;
1032
+ src:
1033
+ url("./KaTeX_Main-Regular-ARRPAO67.woff2") format("woff2"),
1034
+ url("./KaTeX_Main-Regular-P5I74A2A.woff") format("woff"),
1035
+ url("./KaTeX_Main-Regular-W74P5G27.ttf") format("truetype");
1036
+ }
1037
+ @font-face {
1038
+ font-display: block;
1039
+ font-family: KaTeX_Math;
1040
+ font-style: italic;
1041
+ font-weight: 700;
1042
+ src:
1043
+ url("./KaTeX_Math-BoldItalic-K4WTGH3J.woff2") format("woff2"),
1044
+ url("./KaTeX_Math-BoldItalic-6EBV3DK5.woff") format("woff"),
1045
+ url("./KaTeX_Math-BoldItalic-VB447A4D.ttf") format("truetype");
1046
+ }
1047
+ @font-face {
1048
+ font-display: block;
1049
+ font-family: KaTeX_Math;
1050
+ font-style: italic;
1051
+ font-weight: 400;
1052
+ src:
1053
+ url("./KaTeX_Math-Italic-6KGCHLFN.woff2") format("woff2"),
1054
+ url("./KaTeX_Math-Italic-KKK3USB2.woff") format("woff"),
1055
+ url("./KaTeX_Math-Italic-SON4MRCA.ttf") format("truetype");
1056
+ }
1057
+ @font-face {
1058
+ font-display: block;
1059
+ font-family: "KaTeX_SansSerif";
1060
+ font-style: normal;
1061
+ font-weight: 700;
1062
+ src:
1063
+ url("./KaTeX_SansSerif-Bold-RRNVJFFW.woff2") format("woff2"),
1064
+ url("./KaTeX_SansSerif-Bold-X5M5EMOD.woff") format("woff"),
1065
+ url("./KaTeX_SansSerif-Bold-STQ6RXC7.ttf") format("truetype");
1066
+ }
1067
+ @font-face {
1068
+ font-display: block;
1069
+ font-family: "KaTeX_SansSerif";
1070
+ font-style: italic;
1071
+ font-weight: 400;
1072
+ src:
1073
+ url("./KaTeX_SansSerif-Italic-HMPFTM52.woff2") format("woff2"),
1074
+ url("./KaTeX_SansSerif-Italic-PSN4QKYX.woff") format("woff"),
1075
+ url("./KaTeX_SansSerif-Italic-WTBAZBGY.ttf") format("truetype");
1076
+ }
1077
+ @font-face {
1078
+ font-display: block;
1079
+ font-family: "KaTeX_SansSerif";
1080
+ font-style: normal;
1081
+ font-weight: 400;
1082
+ src:
1083
+ url("./KaTeX_SansSerif-Regular-XIQ62X4E.woff2") format("woff2"),
1084
+ url("./KaTeX_SansSerif-Regular-OQCII6EP.woff") format("woff"),
1085
+ url("./KaTeX_SansSerif-Regular-2TL3USAE.ttf") format("truetype");
1086
+ }
1087
+ @font-face {
1088
+ font-display: block;
1089
+ font-family: KaTeX_Script;
1090
+ font-style: normal;
1091
+ font-weight: 400;
1092
+ src:
1093
+ url("./KaTeX_Script-Regular-APUWIHLP.woff2") format("woff2"),
1094
+ url("./KaTeX_Script-Regular-A5IFOEBS.woff") format("woff"),
1095
+ url("./KaTeX_Script-Regular-72OLXYNA.ttf") format("truetype");
1096
+ }
1097
+ @font-face {
1098
+ font-display: block;
1099
+ font-family: KaTeX_Size1;
1100
+ font-style: normal;
1101
+ font-weight: 400;
1102
+ src:
1103
+ url("./KaTeX_Size1-Regular-5LRUTBFT.woff2") format("woff2"),
1104
+ url("./KaTeX_Size1-Regular-4HRHTS65.woff") format("woff"),
1105
+ url("./KaTeX_Size1-Regular-7K6AASVL.ttf") format("truetype");
1106
+ }
1107
+ @font-face {
1108
+ font-display: block;
1109
+ font-family: KaTeX_Size2;
1110
+ font-style: normal;
1111
+ font-weight: 400;
1112
+ src:
1113
+ url("./KaTeX_Size2-Regular-LELKET5D.woff2") format("woff2"),
1114
+ url("./KaTeX_Size2-Regular-K5ZHAIS6.woff") format("woff"),
1115
+ url("./KaTeX_Size2-Regular-222HN3GT.ttf") format("truetype");
1116
+ }
1117
+ @font-face {
1118
+ font-display: block;
1119
+ font-family: KaTeX_Size3;
1120
+ font-style: normal;
1121
+ font-weight: 400;
1122
+ src:
1123
+ url("./KaTeX_Size3-Regular-WQRQ47UD.woff2") format("woff2"),
1124
+ url("./KaTeX_Size3-Regular-TLFPAHDE.woff") format("woff"),
1125
+ url("./KaTeX_Size3-Regular-UFCO6WCA.ttf") format("truetype");
1126
+ }
1127
+ @font-face {
1128
+ font-display: block;
1129
+ font-family: KaTeX_Size4;
1130
+ font-style: normal;
1131
+ font-weight: 400;
1132
+ src:
1133
+ url("./KaTeX_Size4-Regular-CDMV7U5C.woff2") format("woff2"),
1134
+ url("./KaTeX_Size4-Regular-PKMWZHNC.woff") format("woff"),
1135
+ url("./KaTeX_Size4-Regular-7PGNVPQK.ttf") format("truetype");
1136
+ }
1137
+ @font-face {
1138
+ font-display: block;
1139
+ font-family: KaTeX_Typewriter;
1140
+ font-style: normal;
1141
+ font-weight: 400;
1142
+ src:
1143
+ url("./KaTeX_Typewriter-Regular-VBYJ4NRC.woff2") format("woff2"),
1144
+ url("./KaTeX_Typewriter-Regular-MJMFSK64.woff") format("woff"),
1145
+ url("./KaTeX_Typewriter-Regular-3F5K6SQ6.ttf") format("truetype");
1146
+ }
1147
+ .katex {
1148
+ font:
1149
+ normal 1.21em KaTeX_Main,
1150
+ Times New Roman,
1151
+ serif;
1152
+ line-height: 1.2;
1153
+ text-indent: 0;
1154
+ text-rendering: auto;
1155
+ }
1156
+ .katex * {
1157
+ -ms-high-contrast-adjust: none !important;
1158
+ border-color: currentColor;
1159
+ }
1160
+ .katex .katex-version:after {
1161
+ content: "0.16.27";
1162
+ }
1163
+ .katex .katex-mathml {
1164
+ clip: rect(1px, 1px, 1px, 1px);
1165
+ border: 0;
1166
+ height: 1px;
1167
+ overflow: hidden;
1168
+ padding: 0;
1169
+ position: absolute;
1170
+ width: 1px;
832
1171
  }
833
-
834
- /* src/components/message/parts/ThinkingPart.css */
835
- .thinking-content {
836
- font-size: 13px;
837
- line-height: 1.5;
838
- color: var(--chat-text-muted, #999);
839
- white-space: pre-wrap;
840
- word-break: break-word;
841
- overflow-wrap: break-word;
842
- margin: 0;
1172
+ .katex .katex-html > .newline {
1173
+ display: block;
843
1174
  }
844
-
845
- /* src/components/message/parts/SearchPart.css */
846
- .search-results {
847
- display: flex;
848
- flex-direction: column;
849
- gap: 8px;
1175
+ .katex .base {
1176
+ position: relative;
1177
+ white-space: nowrap;
1178
+ width: -webkit-min-content;
1179
+ width: -moz-min-content;
1180
+ width: min-content;
850
1181
  }
851
- .search-item {
852
- display: block;
853
- padding: 8px;
854
- border-radius: 6px;
855
- background: var(--chat-bg, #1e1e1e);
856
- text-decoration: none;
857
- transition: background 0.15s;
1182
+ .katex .base,
1183
+ .katex .strut {
1184
+ display: inline-block;
858
1185
  }
859
- .search-item:hover {
860
- background: var(--chat-hover, #333);
1186
+ .katex .textbf {
1187
+ font-weight: 700;
861
1188
  }
862
- .search-item-title {
863
- font-size: 13px;
864
- font-weight: 500;
865
- color: var(--chat-accent, #3b82f6);
866
- margin-bottom: 4px;
1189
+ .katex .textit {
1190
+ font-style: italic;
867
1191
  }
868
- .search-item-snippet {
869
- font-size: 12px;
870
- color: var(--chat-text-muted, #888);
871
- line-height: 1.4;
872
- margin-bottom: 4px;
873
- display: -webkit-box;
874
- -webkit-line-clamp: 2;
875
- -webkit-box-orient: vertical;
876
- overflow: hidden;
1192
+ .katex .textrm {
1193
+ font-family: KaTeX_Main;
877
1194
  }
878
- .search-item-url {
879
- font-size: 11px;
880
- color: var(--chat-text-muted, #666);
881
- overflow: hidden;
882
- text-overflow: ellipsis;
883
- white-space: nowrap;
1195
+ .katex .textsf {
1196
+ font-family: KaTeX_SansSerif;
884
1197
  }
885
-
886
- /* src/components/input/DropdownSelector.css */
887
- .dropdown-selector {
888
- position: relative;
889
- display: flex;
890
- align-items: center;
891
- gap: 4px;
892
- height: 28px;
893
- padding: 0 8px;
894
- background: rgba(0, 0, 0, 0.04);
895
- background: color-mix(in srgb, var(--chat-text, #ccc) 6%, transparent);
896
- border: none;
897
- border-radius: 6px;
898
- font-size: 14px;
899
- color: var(--chat-text-muted, #888);
900
- cursor: pointer;
901
- transition: all 0.15s;
1198
+ .katex .texttt {
1199
+ font-family: KaTeX_Typewriter;
902
1200
  }
903
- .dropdown-selector:hover:not(.disabled) {
904
- background: rgba(0, 0, 0, 0.06);
905
- background: color-mix(in srgb, var(--chat-text, #ccc) 10%, transparent);
906
- color: var(--chat-text, #ccc);
1201
+ .katex .mathnormal {
1202
+ font-family: KaTeX_Math;
1203
+ font-style: italic;
907
1204
  }
908
- .dropdown-selector.disabled {
909
- opacity: 0.6;
910
- cursor: not-allowed;
1205
+ .katex .mathit {
1206
+ font-family: KaTeX_Main;
1207
+ font-style: italic;
911
1208
  }
912
- .dropdown-selector .chevron {
913
- color: var(--chat-text-muted, #666);
1209
+ .katex .mathrm {
1210
+ font-style: normal;
914
1211
  }
915
- .dropdown-selector .dropdown-menu {
916
- position: absolute;
917
- left: 0;
918
- right: auto;
919
- min-width: 180px;
920
- max-height: 320px;
921
- overflow-y: auto;
922
- background: var(--chat-dropdown-bg, #252526);
923
- border: 1px solid rgba(255, 255, 255, 0.1);
924
- border-radius: 8px;
925
- box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
926
- z-index: 9999;
927
- padding: 4px 8px 4px 4px;
928
- display: flex;
929
- flex-direction: column;
930
- gap: 2px;
1212
+ .katex .mathbf {
1213
+ font-family: KaTeX_Main;
1214
+ font-weight: 700;
931
1215
  }
932
- .dropdown-selector .dropdown-menu.dropdown-up {
933
- bottom: 100%;
934
- top: auto;
935
- margin-bottom: 4px;
1216
+ .katex .boldsymbol {
1217
+ font-family: KaTeX_Math;
1218
+ font-style: italic;
1219
+ font-weight: 700;
936
1220
  }
937
- .dropdown-selector .dropdown-menu.dropdown-down {
938
- top: 100%;
939
- bottom: auto;
940
- margin-top: 4px;
1221
+ .katex .amsrm,
1222
+ .katex .mathbb,
1223
+ .katex .textbb {
1224
+ font-family: KaTeX_AMS;
941
1225
  }
942
- .dropdown-selector .dropdown-menu.dropdown-align-right {
943
- left: auto;
944
- right: 0;
1226
+ .katex .mathcal {
1227
+ font-family: KaTeX_Caligraphic;
945
1228
  }
946
- .dropdown-selector .dropdown-item {
947
- display: flex;
948
- align-items: center;
949
- gap: 8px;
950
- width: 100%;
951
- padding: 8px 10px;
952
- border: none;
953
- background: transparent;
954
- border-radius: 4px;
955
- font-size: 14px;
956
- color: var(--chat-text-muted, #999);
957
- cursor: pointer;
958
- transition: all 0.15s;
959
- white-space: nowrap;
1229
+ .katex .mathfrak,
1230
+ .katex .textfrak {
1231
+ font-family: KaTeX_Fraktur;
960
1232
  }
961
- .dropdown-selector .dropdown-item:hover {
962
- background: rgba(0, 0, 0, 0.06);
963
- background: color-mix(in srgb, var(--chat-text, #ccc) 10%, transparent);
964
- color: var(--chat-text, #ccc);
1233
+ .katex .mathboldfrak,
1234
+ .katex .textboldfrak {
1235
+ font-family: KaTeX_Fraktur;
1236
+ font-weight: 700;
965
1237
  }
966
- .dropdown-selector .dropdown-item.active {
967
- background: rgba(0, 0, 0, 0.08);
968
- background: color-mix(in srgb, var(--chat-text, #ccc) 14%, transparent);
969
- color: var(--chat-text, #fff);
1238
+ .katex .mathtt {
1239
+ font-family: KaTeX_Typewriter;
970
1240
  }
971
- .dropdown-selector .check-icon {
972
- margin-left: auto;
973
- color: var(--chat-text, #ccc);
974
- flex-shrink: 0;
1241
+ .katex .mathscr,
1242
+ .katex .textscr {
1243
+ font-family: KaTeX_Script;
975
1244
  }
976
- .dropdown-selector .selector-text {
977
- overflow: hidden;
978
- text-overflow: ellipsis;
979
- white-space: nowrap;
1245
+ .katex .mathsf,
1246
+ .katex .textsf {
1247
+ font-family: KaTeX_SansSerif;
980
1248
  }
981
- .dropdown-selector .dropdown-empty {
982
- padding: 12px 10px;
983
- font-size: 12px;
984
- color: var(--chat-text-muted, #666);
985
- text-align: center;
1249
+ .katex .mathboldsf,
1250
+ .katex .textboldsf {
1251
+ font-family: KaTeX_SansSerif;
1252
+ font-weight: 700;
986
1253
  }
987
- .dropdown-selector .group-title {
988
- padding: 8px 10px 4px;
989
- margin-top: 4px;
990
- font-size: 11px;
991
- color: var(--chat-text-muted, #666);
1254
+ .katex .mathitsf,
1255
+ .katex .mathsfit,
1256
+ .katex .textitsf {
1257
+ font-family: KaTeX_SansSerif;
1258
+ font-style: italic;
992
1259
  }
993
- .dropdown-selector .group-title:first-child {
994
- margin-top: 0;
1260
+ .katex .mainrm {
1261
+ font-family: KaTeX_Main;
1262
+ font-style: normal;
995
1263
  }
996
- .dropdown-selector .option-label {
997
- flex: 1;
998
- text-align: left;
1264
+ .katex .vlist-t {
1265
+ border-collapse: collapse;
1266
+ display: inline-table;
1267
+ table-layout: fixed;
999
1268
  }
1000
- .dropdown-selector .option-right {
1001
- display: flex;
1002
- align-items: center;
1003
- gap: 8px;
1004
- margin-left: auto;
1269
+ .katex .vlist-r {
1270
+ display: table-row;
1005
1271
  }
1006
- .dropdown-selector .provider-badge {
1007
- padding: 2px 6px;
1008
- font-size: 11px;
1009
- font-weight: 500;
1010
- color: var(--chat-text-muted, #999);
1011
- background: rgba(255, 255, 255, 0.08);
1012
- border-radius: 3px;
1013
- white-space: nowrap;
1272
+ .katex .vlist {
1273
+ display: table-cell;
1274
+ position: relative;
1275
+ vertical-align: bottom;
1014
1276
  }
1015
- .dropdown-selector .provider-badge.native {
1016
- color: var(--chat-text-muted, #999);
1277
+ .katex .vlist > span {
1278
+ display: block;
1279
+ height: 0;
1280
+ position: relative;
1017
1281
  }
1018
-
1019
- /* src/components/common/CopyButton.css */
1020
- .copy-btn {
1021
- display: flex;
1022
- align-items: center;
1023
- justify-content: center;
1024
- padding: 4px;
1025
- background: transparent;
1026
- border: none;
1027
- color: var(--chat-text-muted, #888);
1028
- cursor: pointer;
1029
- border-radius: 4px;
1030
- transition: all 0.2s;
1282
+ .katex .vlist > span > span {
1283
+ display: inline-block;
1031
1284
  }
1032
- .copy-btn:hover {
1033
- background: rgba(255, 255, 255, 0.1);
1034
- color: var(--chat-text, #fff);
1285
+ .katex .vlist > span > .pstrut {
1286
+ overflow: hidden;
1287
+ width: 0;
1035
1288
  }
1036
- .copy-btn.copied {
1037
- color: var(--chat-success, #22c55e);
1289
+ .katex .vlist-t2 {
1290
+ margin-right: -2px;
1038
1291
  }
1039
-
1040
- /* src/components/message/parts/ToolCallPart.css */
1041
- .tool-call-content {
1042
- display: flex;
1292
+ .katex .vlist-s {
1293
+ display: table-cell;
1294
+ font-size: 1px;
1295
+ min-width: 2px;
1296
+ vertical-align: bottom;
1297
+ width: 2px;
1298
+ }
1299
+ .katex .vbox {
1300
+ align-items: baseline;
1301
+ display: inline-flex;
1043
1302
  flex-direction: column;
1044
1303
  }
1045
- .tool-call-command {
1046
- margin-bottom: 12px;
1304
+ .katex .hbox {
1305
+ width: 100%;
1047
1306
  }
1048
- .command-header,
1049
- .result-header {
1050
- display: block;
1051
- margin-bottom: 8px;
1052
- padding: 0;
1053
- cursor: default;
1054
- user-select: none;
1055
- font-size: 12px;
1056
- line-height: 1.5;
1307
+ .katex .hbox,
1308
+ .katex .thinbox {
1309
+ display: inline-flex;
1310
+ flex-direction: row;
1057
1311
  }
1058
- .command-header:hover,
1059
- .result-header:hover,
1060
- .command-label:hover,
1061
- .result-label:hover,
1062
- .command-name:hover,
1063
- .result-name:hover {
1064
- background: transparent !important;
1312
+ .katex .thinbox {
1313
+ max-width: 0;
1314
+ width: 0;
1065
1315
  }
1066
- .command-code {
1067
- display: block;
1068
- padding: 10px;
1069
- background: var(--chat-code-bg, rgba(0, 0, 0, 0.3));
1070
- border: 1px solid var(--chat-border, #333);
1071
- border-radius: 6px;
1072
- font-family:
1073
- "Monaco",
1074
- "Menlo",
1075
- "Courier New",
1076
- monospace;
1077
- font-size: 13px;
1078
- color: var(--chat-code-text, var(--chat-text, #ccc));
1079
- white-space: pre-wrap;
1080
- word-break: break-all;
1081
- overflow-x: auto;
1316
+ .katex .msupsub {
1317
+ text-align: left;
1082
1318
  }
1083
- .tool-call-result {
1084
- margin-bottom: 12px;
1319
+ .katex .mfrac > span > span {
1320
+ text-align: center;
1085
1321
  }
1086
- .result-label,
1087
- .command-label {
1088
- color: var(--chat-text-muted, #888);
1089
- font-weight: 500;
1322
+ .katex .mfrac .frac-line {
1323
+ border-bottom-style: solid;
1324
+ display: inline-block;
1325
+ width: 100%;
1090
1326
  }
1091
- .result-name,
1092
- .command-name {
1093
- color: var(--chat-text, #ccc);
1327
+ .katex .hdashline,
1328
+ .katex .hline,
1329
+ .katex .mfrac .frac-line,
1330
+ .katex .overline .overline-line,
1331
+ .katex .rule,
1332
+ .katex .underline .underline-line {
1333
+ min-height: 1px;
1094
1334
  }
1095
- .result-content {
1096
- display: block;
1097
- padding: 10px;
1098
- background: var(--chat-code-bg, rgba(0, 0, 0, 0.3));
1099
- border: 1px solid var(--chat-border, #333);
1100
- border-radius: 6px;
1101
- font-family:
1102
- "Monaco",
1335
+ .katex .mspace {
1336
+ display: inline-block;
1337
+ }
1338
+ .katex .clap,
1339
+ .katex .llap,
1340
+ .katex .rlap {
1341
+ position: relative;
1342
+ width: 0;
1343
+ }
1344
+ .katex .clap > .inner,
1345
+ .katex .llap > .inner,
1346
+ .katex .rlap > .inner {
1347
+ position: absolute;
1348
+ }
1349
+ .katex .clap > .fix,
1350
+ .katex .llap > .fix,
1351
+ .katex .rlap > .fix {
1352
+ display: inline-block;
1353
+ }
1354
+ .katex .llap > .inner {
1355
+ right: 0;
1356
+ }
1357
+ .katex .clap > .inner,
1358
+ .katex .rlap > .inner {
1359
+ left: 0;
1360
+ }
1361
+ .katex .clap > .inner > span {
1362
+ margin-left: -50%;
1363
+ margin-right: 50%;
1364
+ }
1365
+ .katex .rule {
1366
+ border: 0 solid;
1367
+ display: inline-block;
1368
+ position: relative;
1369
+ }
1370
+ .katex .hline,
1371
+ .katex .overline .overline-line,
1372
+ .katex .underline .underline-line {
1373
+ border-bottom-style: solid;
1374
+ display: inline-block;
1375
+ width: 100%;
1376
+ }
1377
+ .katex .hdashline {
1378
+ border-bottom-style: dashed;
1379
+ display: inline-block;
1380
+ width: 100%;
1381
+ }
1382
+ .katex .sqrt > .root {
1383
+ margin-left: .2777777778em;
1384
+ margin-right: -.5555555556em;
1385
+ }
1386
+ .katex .fontsize-ensurer.reset-size1.size1,
1387
+ .katex .sizing.reset-size1.size1 {
1388
+ font-size: 1em;
1389
+ }
1390
+ .katex .fontsize-ensurer.reset-size1.size2,
1391
+ .katex .sizing.reset-size1.size2 {
1392
+ font-size: 1.2em;
1393
+ }
1394
+ .katex .fontsize-ensurer.reset-size1.size3,
1395
+ .katex .sizing.reset-size1.size3 {
1396
+ font-size: 1.4em;
1397
+ }
1398
+ .katex .fontsize-ensurer.reset-size1.size4,
1399
+ .katex .sizing.reset-size1.size4 {
1400
+ font-size: 1.6em;
1401
+ }
1402
+ .katex .fontsize-ensurer.reset-size1.size5,
1403
+ .katex .sizing.reset-size1.size5 {
1404
+ font-size: 1.8em;
1405
+ }
1406
+ .katex .fontsize-ensurer.reset-size1.size6,
1407
+ .katex .sizing.reset-size1.size6 {
1408
+ font-size: 2em;
1409
+ }
1410
+ .katex .fontsize-ensurer.reset-size1.size7,
1411
+ .katex .sizing.reset-size1.size7 {
1412
+ font-size: 2.4em;
1413
+ }
1414
+ .katex .fontsize-ensurer.reset-size1.size8,
1415
+ .katex .sizing.reset-size1.size8 {
1416
+ font-size: 2.88em;
1417
+ }
1418
+ .katex .fontsize-ensurer.reset-size1.size9,
1419
+ .katex .sizing.reset-size1.size9 {
1420
+ font-size: 3.456em;
1421
+ }
1422
+ .katex .fontsize-ensurer.reset-size1.size10,
1423
+ .katex .sizing.reset-size1.size10 {
1424
+ font-size: 4.148em;
1425
+ }
1426
+ .katex .fontsize-ensurer.reset-size1.size11,
1427
+ .katex .sizing.reset-size1.size11 {
1428
+ font-size: 4.976em;
1429
+ }
1430
+ .katex .fontsize-ensurer.reset-size2.size1,
1431
+ .katex .sizing.reset-size2.size1 {
1432
+ font-size: .8333333333em;
1433
+ }
1434
+ .katex .fontsize-ensurer.reset-size2.size2,
1435
+ .katex .sizing.reset-size2.size2 {
1436
+ font-size: 1em;
1437
+ }
1438
+ .katex .fontsize-ensurer.reset-size2.size3,
1439
+ .katex .sizing.reset-size2.size3 {
1440
+ font-size: 1.1666666667em;
1441
+ }
1442
+ .katex .fontsize-ensurer.reset-size2.size4,
1443
+ .katex .sizing.reset-size2.size4 {
1444
+ font-size: 1.3333333333em;
1445
+ }
1446
+ .katex .fontsize-ensurer.reset-size2.size5,
1447
+ .katex .sizing.reset-size2.size5 {
1448
+ font-size: 1.5em;
1449
+ }
1450
+ .katex .fontsize-ensurer.reset-size2.size6,
1451
+ .katex .sizing.reset-size2.size6 {
1452
+ font-size: 1.6666666667em;
1453
+ }
1454
+ .katex .fontsize-ensurer.reset-size2.size7,
1455
+ .katex .sizing.reset-size2.size7 {
1456
+ font-size: 2em;
1457
+ }
1458
+ .katex .fontsize-ensurer.reset-size2.size8,
1459
+ .katex .sizing.reset-size2.size8 {
1460
+ font-size: 2.4em;
1461
+ }
1462
+ .katex .fontsize-ensurer.reset-size2.size9,
1463
+ .katex .sizing.reset-size2.size9 {
1464
+ font-size: 2.88em;
1465
+ }
1466
+ .katex .fontsize-ensurer.reset-size2.size10,
1467
+ .katex .sizing.reset-size2.size10 {
1468
+ font-size: 3.4566666667em;
1469
+ }
1470
+ .katex .fontsize-ensurer.reset-size2.size11,
1471
+ .katex .sizing.reset-size2.size11 {
1472
+ font-size: 4.1466666667em;
1473
+ }
1474
+ .katex .fontsize-ensurer.reset-size3.size1,
1475
+ .katex .sizing.reset-size3.size1 {
1476
+ font-size: .7142857143em;
1477
+ }
1478
+ .katex .fontsize-ensurer.reset-size3.size2,
1479
+ .katex .sizing.reset-size3.size2 {
1480
+ font-size: .8571428571em;
1481
+ }
1482
+ .katex .fontsize-ensurer.reset-size3.size3,
1483
+ .katex .sizing.reset-size3.size3 {
1484
+ font-size: 1em;
1485
+ }
1486
+ .katex .fontsize-ensurer.reset-size3.size4,
1487
+ .katex .sizing.reset-size3.size4 {
1488
+ font-size: 1.1428571429em;
1489
+ }
1490
+ .katex .fontsize-ensurer.reset-size3.size5,
1491
+ .katex .sizing.reset-size3.size5 {
1492
+ font-size: 1.2857142857em;
1493
+ }
1494
+ .katex .fontsize-ensurer.reset-size3.size6,
1495
+ .katex .sizing.reset-size3.size6 {
1496
+ font-size: 1.4285714286em;
1497
+ }
1498
+ .katex .fontsize-ensurer.reset-size3.size7,
1499
+ .katex .sizing.reset-size3.size7 {
1500
+ font-size: 1.7142857143em;
1501
+ }
1502
+ .katex .fontsize-ensurer.reset-size3.size8,
1503
+ .katex .sizing.reset-size3.size8 {
1504
+ font-size: 2.0571428571em;
1505
+ }
1506
+ .katex .fontsize-ensurer.reset-size3.size9,
1507
+ .katex .sizing.reset-size3.size9 {
1508
+ font-size: 2.4685714286em;
1509
+ }
1510
+ .katex .fontsize-ensurer.reset-size3.size10,
1511
+ .katex .sizing.reset-size3.size10 {
1512
+ font-size: 2.9628571429em;
1513
+ }
1514
+ .katex .fontsize-ensurer.reset-size3.size11,
1515
+ .katex .sizing.reset-size3.size11 {
1516
+ font-size: 3.5542857143em;
1517
+ }
1518
+ .katex .fontsize-ensurer.reset-size4.size1,
1519
+ .katex .sizing.reset-size4.size1 {
1520
+ font-size: .625em;
1521
+ }
1522
+ .katex .fontsize-ensurer.reset-size4.size2,
1523
+ .katex .sizing.reset-size4.size2 {
1524
+ font-size: .75em;
1525
+ }
1526
+ .katex .fontsize-ensurer.reset-size4.size3,
1527
+ .katex .sizing.reset-size4.size3 {
1528
+ font-size: .875em;
1529
+ }
1530
+ .katex .fontsize-ensurer.reset-size4.size4,
1531
+ .katex .sizing.reset-size4.size4 {
1532
+ font-size: 1em;
1533
+ }
1534
+ .katex .fontsize-ensurer.reset-size4.size5,
1535
+ .katex .sizing.reset-size4.size5 {
1536
+ font-size: 1.125em;
1537
+ }
1538
+ .katex .fontsize-ensurer.reset-size4.size6,
1539
+ .katex .sizing.reset-size4.size6 {
1540
+ font-size: 1.25em;
1541
+ }
1542
+ .katex .fontsize-ensurer.reset-size4.size7,
1543
+ .katex .sizing.reset-size4.size7 {
1544
+ font-size: 1.5em;
1545
+ }
1546
+ .katex .fontsize-ensurer.reset-size4.size8,
1547
+ .katex .sizing.reset-size4.size8 {
1548
+ font-size: 1.8em;
1549
+ }
1550
+ .katex .fontsize-ensurer.reset-size4.size9,
1551
+ .katex .sizing.reset-size4.size9 {
1552
+ font-size: 2.16em;
1553
+ }
1554
+ .katex .fontsize-ensurer.reset-size4.size10,
1555
+ .katex .sizing.reset-size4.size10 {
1556
+ font-size: 2.5925em;
1557
+ }
1558
+ .katex .fontsize-ensurer.reset-size4.size11,
1559
+ .katex .sizing.reset-size4.size11 {
1560
+ font-size: 3.11em;
1561
+ }
1562
+ .katex .fontsize-ensurer.reset-size5.size1,
1563
+ .katex .sizing.reset-size5.size1 {
1564
+ font-size: .5555555556em;
1565
+ }
1566
+ .katex .fontsize-ensurer.reset-size5.size2,
1567
+ .katex .sizing.reset-size5.size2 {
1568
+ font-size: .6666666667em;
1569
+ }
1570
+ .katex .fontsize-ensurer.reset-size5.size3,
1571
+ .katex .sizing.reset-size5.size3 {
1572
+ font-size: .7777777778em;
1573
+ }
1574
+ .katex .fontsize-ensurer.reset-size5.size4,
1575
+ .katex .sizing.reset-size5.size4 {
1576
+ font-size: .8888888889em;
1577
+ }
1578
+ .katex .fontsize-ensurer.reset-size5.size5,
1579
+ .katex .sizing.reset-size5.size5 {
1580
+ font-size: 1em;
1581
+ }
1582
+ .katex .fontsize-ensurer.reset-size5.size6,
1583
+ .katex .sizing.reset-size5.size6 {
1584
+ font-size: 1.1111111111em;
1585
+ }
1586
+ .katex .fontsize-ensurer.reset-size5.size7,
1587
+ .katex .sizing.reset-size5.size7 {
1588
+ font-size: 1.3333333333em;
1589
+ }
1590
+ .katex .fontsize-ensurer.reset-size5.size8,
1591
+ .katex .sizing.reset-size5.size8 {
1592
+ font-size: 1.6em;
1593
+ }
1594
+ .katex .fontsize-ensurer.reset-size5.size9,
1595
+ .katex .sizing.reset-size5.size9 {
1596
+ font-size: 1.92em;
1597
+ }
1598
+ .katex .fontsize-ensurer.reset-size5.size10,
1599
+ .katex .sizing.reset-size5.size10 {
1600
+ font-size: 2.3044444444em;
1601
+ }
1602
+ .katex .fontsize-ensurer.reset-size5.size11,
1603
+ .katex .sizing.reset-size5.size11 {
1604
+ font-size: 2.7644444444em;
1605
+ }
1606
+ .katex .fontsize-ensurer.reset-size6.size1,
1607
+ .katex .sizing.reset-size6.size1 {
1608
+ font-size: .5em;
1609
+ }
1610
+ .katex .fontsize-ensurer.reset-size6.size2,
1611
+ .katex .sizing.reset-size6.size2 {
1612
+ font-size: .6em;
1613
+ }
1614
+ .katex .fontsize-ensurer.reset-size6.size3,
1615
+ .katex .sizing.reset-size6.size3 {
1616
+ font-size: .7em;
1617
+ }
1618
+ .katex .fontsize-ensurer.reset-size6.size4,
1619
+ .katex .sizing.reset-size6.size4 {
1620
+ font-size: .8em;
1621
+ }
1622
+ .katex .fontsize-ensurer.reset-size6.size5,
1623
+ .katex .sizing.reset-size6.size5 {
1624
+ font-size: .9em;
1625
+ }
1626
+ .katex .fontsize-ensurer.reset-size6.size6,
1627
+ .katex .sizing.reset-size6.size6 {
1628
+ font-size: 1em;
1629
+ }
1630
+ .katex .fontsize-ensurer.reset-size6.size7,
1631
+ .katex .sizing.reset-size6.size7 {
1632
+ font-size: 1.2em;
1633
+ }
1634
+ .katex .fontsize-ensurer.reset-size6.size8,
1635
+ .katex .sizing.reset-size6.size8 {
1636
+ font-size: 1.44em;
1637
+ }
1638
+ .katex .fontsize-ensurer.reset-size6.size9,
1639
+ .katex .sizing.reset-size6.size9 {
1640
+ font-size: 1.728em;
1641
+ }
1642
+ .katex .fontsize-ensurer.reset-size6.size10,
1643
+ .katex .sizing.reset-size6.size10 {
1644
+ font-size: 2.074em;
1645
+ }
1646
+ .katex .fontsize-ensurer.reset-size6.size11,
1647
+ .katex .sizing.reset-size6.size11 {
1648
+ font-size: 2.488em;
1649
+ }
1650
+ .katex .fontsize-ensurer.reset-size7.size1,
1651
+ .katex .sizing.reset-size7.size1 {
1652
+ font-size: .4166666667em;
1653
+ }
1654
+ .katex .fontsize-ensurer.reset-size7.size2,
1655
+ .katex .sizing.reset-size7.size2 {
1656
+ font-size: .5em;
1657
+ }
1658
+ .katex .fontsize-ensurer.reset-size7.size3,
1659
+ .katex .sizing.reset-size7.size3 {
1660
+ font-size: .5833333333em;
1661
+ }
1662
+ .katex .fontsize-ensurer.reset-size7.size4,
1663
+ .katex .sizing.reset-size7.size4 {
1664
+ font-size: .6666666667em;
1665
+ }
1666
+ .katex .fontsize-ensurer.reset-size7.size5,
1667
+ .katex .sizing.reset-size7.size5 {
1668
+ font-size: .75em;
1669
+ }
1670
+ .katex .fontsize-ensurer.reset-size7.size6,
1671
+ .katex .sizing.reset-size7.size6 {
1672
+ font-size: .8333333333em;
1673
+ }
1674
+ .katex .fontsize-ensurer.reset-size7.size7,
1675
+ .katex .sizing.reset-size7.size7 {
1676
+ font-size: 1em;
1677
+ }
1678
+ .katex .fontsize-ensurer.reset-size7.size8,
1679
+ .katex .sizing.reset-size7.size8 {
1680
+ font-size: 1.2em;
1681
+ }
1682
+ .katex .fontsize-ensurer.reset-size7.size9,
1683
+ .katex .sizing.reset-size7.size9 {
1684
+ font-size: 1.44em;
1685
+ }
1686
+ .katex .fontsize-ensurer.reset-size7.size10,
1687
+ .katex .sizing.reset-size7.size10 {
1688
+ font-size: 1.7283333333em;
1689
+ }
1690
+ .katex .fontsize-ensurer.reset-size7.size11,
1691
+ .katex .sizing.reset-size7.size11 {
1692
+ font-size: 2.0733333333em;
1693
+ }
1694
+ .katex .fontsize-ensurer.reset-size8.size1,
1695
+ .katex .sizing.reset-size8.size1 {
1696
+ font-size: .3472222222em;
1697
+ }
1698
+ .katex .fontsize-ensurer.reset-size8.size2,
1699
+ .katex .sizing.reset-size8.size2 {
1700
+ font-size: .4166666667em;
1701
+ }
1702
+ .katex .fontsize-ensurer.reset-size8.size3,
1703
+ .katex .sizing.reset-size8.size3 {
1704
+ font-size: .4861111111em;
1705
+ }
1706
+ .katex .fontsize-ensurer.reset-size8.size4,
1707
+ .katex .sizing.reset-size8.size4 {
1708
+ font-size: .5555555556em;
1709
+ }
1710
+ .katex .fontsize-ensurer.reset-size8.size5,
1711
+ .katex .sizing.reset-size8.size5 {
1712
+ font-size: .625em;
1713
+ }
1714
+ .katex .fontsize-ensurer.reset-size8.size6,
1715
+ .katex .sizing.reset-size8.size6 {
1716
+ font-size: .6944444444em;
1717
+ }
1718
+ .katex .fontsize-ensurer.reset-size8.size7,
1719
+ .katex .sizing.reset-size8.size7 {
1720
+ font-size: .8333333333em;
1721
+ }
1722
+ .katex .fontsize-ensurer.reset-size8.size8,
1723
+ .katex .sizing.reset-size8.size8 {
1724
+ font-size: 1em;
1725
+ }
1726
+ .katex .fontsize-ensurer.reset-size8.size9,
1727
+ .katex .sizing.reset-size8.size9 {
1728
+ font-size: 1.2em;
1729
+ }
1730
+ .katex .fontsize-ensurer.reset-size8.size10,
1731
+ .katex .sizing.reset-size8.size10 {
1732
+ font-size: 1.4402777778em;
1733
+ }
1734
+ .katex .fontsize-ensurer.reset-size8.size11,
1735
+ .katex .sizing.reset-size8.size11 {
1736
+ font-size: 1.7277777778em;
1737
+ }
1738
+ .katex .fontsize-ensurer.reset-size9.size1,
1739
+ .katex .sizing.reset-size9.size1 {
1740
+ font-size: .2893518519em;
1741
+ }
1742
+ .katex .fontsize-ensurer.reset-size9.size2,
1743
+ .katex .sizing.reset-size9.size2 {
1744
+ font-size: .3472222222em;
1745
+ }
1746
+ .katex .fontsize-ensurer.reset-size9.size3,
1747
+ .katex .sizing.reset-size9.size3 {
1748
+ font-size: .4050925926em;
1749
+ }
1750
+ .katex .fontsize-ensurer.reset-size9.size4,
1751
+ .katex .sizing.reset-size9.size4 {
1752
+ font-size: .462962963em;
1753
+ }
1754
+ .katex .fontsize-ensurer.reset-size9.size5,
1755
+ .katex .sizing.reset-size9.size5 {
1756
+ font-size: .5208333333em;
1757
+ }
1758
+ .katex .fontsize-ensurer.reset-size9.size6,
1759
+ .katex .sizing.reset-size9.size6 {
1760
+ font-size: .5787037037em;
1761
+ }
1762
+ .katex .fontsize-ensurer.reset-size9.size7,
1763
+ .katex .sizing.reset-size9.size7 {
1764
+ font-size: .6944444444em;
1765
+ }
1766
+ .katex .fontsize-ensurer.reset-size9.size8,
1767
+ .katex .sizing.reset-size9.size8 {
1768
+ font-size: .8333333333em;
1769
+ }
1770
+ .katex .fontsize-ensurer.reset-size9.size9,
1771
+ .katex .sizing.reset-size9.size9 {
1772
+ font-size: 1em;
1773
+ }
1774
+ .katex .fontsize-ensurer.reset-size9.size10,
1775
+ .katex .sizing.reset-size9.size10 {
1776
+ font-size: 1.2002314815em;
1777
+ }
1778
+ .katex .fontsize-ensurer.reset-size9.size11,
1779
+ .katex .sizing.reset-size9.size11 {
1780
+ font-size: 1.4398148148em;
1781
+ }
1782
+ .katex .fontsize-ensurer.reset-size10.size1,
1783
+ .katex .sizing.reset-size10.size1 {
1784
+ font-size: .2410800386em;
1785
+ }
1786
+ .katex .fontsize-ensurer.reset-size10.size2,
1787
+ .katex .sizing.reset-size10.size2 {
1788
+ font-size: .2892960463em;
1789
+ }
1790
+ .katex .fontsize-ensurer.reset-size10.size3,
1791
+ .katex .sizing.reset-size10.size3 {
1792
+ font-size: .337512054em;
1793
+ }
1794
+ .katex .fontsize-ensurer.reset-size10.size4,
1795
+ .katex .sizing.reset-size10.size4 {
1796
+ font-size: .3857280617em;
1797
+ }
1798
+ .katex .fontsize-ensurer.reset-size10.size5,
1799
+ .katex .sizing.reset-size10.size5 {
1800
+ font-size: .4339440694em;
1801
+ }
1802
+ .katex .fontsize-ensurer.reset-size10.size6,
1803
+ .katex .sizing.reset-size10.size6 {
1804
+ font-size: .4821600771em;
1805
+ }
1806
+ .katex .fontsize-ensurer.reset-size10.size7,
1807
+ .katex .sizing.reset-size10.size7 {
1808
+ font-size: .5785920926em;
1809
+ }
1810
+ .katex .fontsize-ensurer.reset-size10.size8,
1811
+ .katex .sizing.reset-size10.size8 {
1812
+ font-size: .6943105111em;
1813
+ }
1814
+ .katex .fontsize-ensurer.reset-size10.size9,
1815
+ .katex .sizing.reset-size10.size9 {
1816
+ font-size: .8331726133em;
1817
+ }
1818
+ .katex .fontsize-ensurer.reset-size10.size10,
1819
+ .katex .sizing.reset-size10.size10 {
1820
+ font-size: 1em;
1821
+ }
1822
+ .katex .fontsize-ensurer.reset-size10.size11,
1823
+ .katex .sizing.reset-size10.size11 {
1824
+ font-size: 1.1996142719em;
1825
+ }
1826
+ .katex .fontsize-ensurer.reset-size11.size1,
1827
+ .katex .sizing.reset-size11.size1 {
1828
+ font-size: .2009646302em;
1829
+ }
1830
+ .katex .fontsize-ensurer.reset-size11.size2,
1831
+ .katex .sizing.reset-size11.size2 {
1832
+ font-size: .2411575563em;
1833
+ }
1834
+ .katex .fontsize-ensurer.reset-size11.size3,
1835
+ .katex .sizing.reset-size11.size3 {
1836
+ font-size: .2813504823em;
1837
+ }
1838
+ .katex .fontsize-ensurer.reset-size11.size4,
1839
+ .katex .sizing.reset-size11.size4 {
1840
+ font-size: .3215434084em;
1841
+ }
1842
+ .katex .fontsize-ensurer.reset-size11.size5,
1843
+ .katex .sizing.reset-size11.size5 {
1844
+ font-size: .3617363344em;
1845
+ }
1846
+ .katex .fontsize-ensurer.reset-size11.size6,
1847
+ .katex .sizing.reset-size11.size6 {
1848
+ font-size: .4019292605em;
1849
+ }
1850
+ .katex .fontsize-ensurer.reset-size11.size7,
1851
+ .katex .sizing.reset-size11.size7 {
1852
+ font-size: .4823151125em;
1853
+ }
1854
+ .katex .fontsize-ensurer.reset-size11.size8,
1855
+ .katex .sizing.reset-size11.size8 {
1856
+ font-size: .578778135em;
1857
+ }
1858
+ .katex .fontsize-ensurer.reset-size11.size9,
1859
+ .katex .sizing.reset-size11.size9 {
1860
+ font-size: .6945337621em;
1861
+ }
1862
+ .katex .fontsize-ensurer.reset-size11.size10,
1863
+ .katex .sizing.reset-size11.size10 {
1864
+ font-size: .8336012862em;
1865
+ }
1866
+ .katex .fontsize-ensurer.reset-size11.size11,
1867
+ .katex .sizing.reset-size11.size11 {
1868
+ font-size: 1em;
1869
+ }
1870
+ .katex .delimsizing.size1 {
1871
+ font-family: KaTeX_Size1;
1872
+ }
1873
+ .katex .delimsizing.size2 {
1874
+ font-family: KaTeX_Size2;
1875
+ }
1876
+ .katex .delimsizing.size3 {
1877
+ font-family: KaTeX_Size3;
1878
+ }
1879
+ .katex .delimsizing.size4 {
1880
+ font-family: KaTeX_Size4;
1881
+ }
1882
+ .katex .delimsizing.mult .delim-size1 > span {
1883
+ font-family: KaTeX_Size1;
1884
+ }
1885
+ .katex .delimsizing.mult .delim-size4 > span {
1886
+ font-family: KaTeX_Size4;
1887
+ }
1888
+ .katex .nulldelimiter {
1889
+ display: inline-block;
1890
+ width: .12em;
1891
+ }
1892
+ .katex .delimcenter,
1893
+ .katex .op-symbol {
1894
+ position: relative;
1895
+ }
1896
+ .katex .op-symbol.small-op {
1897
+ font-family: KaTeX_Size1;
1898
+ }
1899
+ .katex .op-symbol.large-op {
1900
+ font-family: KaTeX_Size2;
1901
+ }
1902
+ .katex .accent > .vlist-t,
1903
+ .katex .op-limits > .vlist-t {
1904
+ text-align: center;
1905
+ }
1906
+ .katex .accent .accent-body {
1907
+ position: relative;
1908
+ }
1909
+ .katex .accent .accent-body:not(.accent-full) {
1910
+ width: 0;
1911
+ }
1912
+ .katex .overlay {
1913
+ display: block;
1914
+ }
1915
+ .katex .mtable .vertical-separator {
1916
+ display: inline-block;
1917
+ min-width: 1px;
1918
+ }
1919
+ .katex .mtable .arraycolsep {
1920
+ display: inline-block;
1921
+ }
1922
+ .katex .mtable .col-align-c > .vlist-t {
1923
+ text-align: center;
1924
+ }
1925
+ .katex .mtable .col-align-l > .vlist-t {
1926
+ text-align: left;
1927
+ }
1928
+ .katex .mtable .col-align-r > .vlist-t {
1929
+ text-align: right;
1930
+ }
1931
+ .katex .svg-align {
1932
+ text-align: left;
1933
+ }
1934
+ .katex svg {
1935
+ fill: currentColor;
1936
+ stroke: currentColor;
1937
+ fill-rule: nonzero;
1938
+ fill-opacity: 1;
1939
+ stroke-width: 1;
1940
+ stroke-linecap: butt;
1941
+ stroke-linejoin: miter;
1942
+ stroke-miterlimit: 4;
1943
+ stroke-dasharray: none;
1944
+ stroke-dashoffset: 0;
1945
+ stroke-opacity: 1;
1946
+ display: block;
1947
+ height: inherit;
1948
+ position: absolute;
1949
+ width: 100%;
1950
+ }
1951
+ .katex svg path {
1952
+ stroke: none;
1953
+ }
1954
+ .katex img {
1955
+ border-style: none;
1956
+ max-height: none;
1957
+ max-width: none;
1958
+ min-height: 0;
1959
+ min-width: 0;
1960
+ }
1961
+ .katex .stretchy {
1962
+ display: block;
1963
+ overflow: hidden;
1964
+ position: relative;
1965
+ width: 100%;
1966
+ }
1967
+ .katex .stretchy:after,
1968
+ .katex .stretchy:before {
1969
+ content: "";
1970
+ }
1971
+ .katex .hide-tail {
1972
+ overflow: hidden;
1973
+ position: relative;
1974
+ width: 100%;
1975
+ }
1976
+ .katex .halfarrow-left {
1977
+ left: 0;
1978
+ overflow: hidden;
1979
+ position: absolute;
1980
+ width: 50.2%;
1981
+ }
1982
+ .katex .halfarrow-right {
1983
+ overflow: hidden;
1984
+ position: absolute;
1985
+ right: 0;
1986
+ width: 50.2%;
1987
+ }
1988
+ .katex .brace-left {
1989
+ left: 0;
1990
+ overflow: hidden;
1991
+ position: absolute;
1992
+ width: 25.1%;
1993
+ }
1994
+ .katex .brace-center {
1995
+ left: 25%;
1996
+ overflow: hidden;
1997
+ position: absolute;
1998
+ width: 50%;
1999
+ }
2000
+ .katex .brace-right {
2001
+ overflow: hidden;
2002
+ position: absolute;
2003
+ right: 0;
2004
+ width: 25.1%;
2005
+ }
2006
+ .katex .x-arrow-pad {
2007
+ padding: 0 .5em;
2008
+ }
2009
+ .katex .cd-arrow-pad {
2010
+ padding: 0 .55556em 0 .27778em;
2011
+ }
2012
+ .katex .mover,
2013
+ .katex .munder,
2014
+ .katex .x-arrow {
2015
+ text-align: center;
2016
+ }
2017
+ .katex .boxpad {
2018
+ padding: 0 .3em;
2019
+ }
2020
+ .katex .fbox,
2021
+ .katex .fcolorbox {
2022
+ border: .04em solid;
2023
+ box-sizing: border-box;
2024
+ }
2025
+ .katex .cancel-pad {
2026
+ padding: 0 .2em;
2027
+ }
2028
+ .katex .cancel-lap {
2029
+ margin-left: -.2em;
2030
+ margin-right: -.2em;
2031
+ }
2032
+ .katex .sout {
2033
+ border-bottom-style: solid;
2034
+ border-bottom-width: .08em;
2035
+ }
2036
+ .katex .angl {
2037
+ border-right: .049em solid;
2038
+ border-top: .049em solid;
2039
+ box-sizing: border-box;
2040
+ margin-right: .03889em;
2041
+ }
2042
+ .katex .anglpad {
2043
+ padding: 0 .03889em;
2044
+ }
2045
+ .katex .eqn-num:before {
2046
+ content: "(" counter(katexEqnNo) ")";
2047
+ counter-increment: katexEqnNo;
2048
+ }
2049
+ .katex .mml-eqn-num:before {
2050
+ content: "(" counter(mmlEqnNo) ")";
2051
+ counter-increment: mmlEqnNo;
2052
+ }
2053
+ .katex .mtr-glue {
2054
+ width: 50%;
2055
+ }
2056
+ .katex .cd-vert-arrow {
2057
+ display: inline-block;
2058
+ position: relative;
2059
+ }
2060
+ .katex .cd-label-left {
2061
+ display: inline-block;
2062
+ position: absolute;
2063
+ right: calc(50% + .3em);
2064
+ text-align: left;
2065
+ }
2066
+ .katex .cd-label-right {
2067
+ display: inline-block;
2068
+ left: calc(50% + .3em);
2069
+ position: absolute;
2070
+ text-align: right;
2071
+ }
2072
+ .katex-display {
2073
+ display: block;
2074
+ margin: 1em 0;
2075
+ text-align: center;
2076
+ }
2077
+ .katex-display > .katex {
2078
+ display: block;
2079
+ text-align: center;
2080
+ white-space: nowrap;
2081
+ }
2082
+ .katex-display > .katex > .katex-html {
2083
+ display: block;
2084
+ position: relative;
2085
+ }
2086
+ .katex-display > .katex > .katex-html > .tag {
2087
+ position: absolute;
2088
+ right: 0;
2089
+ }
2090
+ .katex-display.leqno > .katex > .katex-html > .tag {
2091
+ left: 0;
2092
+ right: auto;
2093
+ }
2094
+ .katex-display.fleqn > .katex {
2095
+ padding-left: 2em;
2096
+ text-align: left;
2097
+ }
2098
+ body {
2099
+ counter-reset: katexEqnNo mmlEqnNo;
2100
+ }
2101
+
2102
+ /* src/components/message/parts/TextPart.css */
2103
+ .text-part {
2104
+ max-width: 100%;
2105
+ }
2106
+ .text-block {
2107
+ font-size: 14px;
2108
+ line-height: 1.75;
2109
+ color: var(--chat-text, #e5e7eb);
2110
+ word-break: break-word;
2111
+ letter-spacing: 0.01em;
2112
+ }
2113
+ .text-block p {
2114
+ margin: 0.75em 0;
2115
+ }
2116
+ .text-block p:first-child {
2117
+ margin-top: 0;
2118
+ }
2119
+ .text-block p:last-child {
2120
+ margin-bottom: 0;
2121
+ }
2122
+ .text-block h1 {
2123
+ font-size: 1.5em;
2124
+ font-weight: 700;
2125
+ margin: 1.5em 0 0.75em;
2126
+ padding-bottom: 0.4em;
2127
+ border-bottom: 1px solid var(--chat-border, rgba(255, 255, 255, 0.1));
2128
+ color: var(--chat-text-strong, #fff);
2129
+ letter-spacing: -0.02em;
2130
+ }
2131
+ .text-block h2 {
2132
+ font-size: 1.3em;
2133
+ font-weight: 600;
2134
+ margin: 1.25em 0 0.6em;
2135
+ padding-bottom: 0.3em;
2136
+ border-bottom: 1px solid var(--chat-border, rgba(255, 255, 255, 0.08));
2137
+ color: var(--chat-text-strong, #fff);
2138
+ letter-spacing: -0.01em;
2139
+ }
2140
+ .text-block h3 {
2141
+ font-size: 1.15em;
2142
+ font-weight: 600;
2143
+ margin: 1em 0 0.5em;
2144
+ color: var(--chat-text-strong, #fff);
2145
+ }
2146
+ .text-block h4,
2147
+ .text-block h5,
2148
+ .text-block h6 {
2149
+ font-size: 1em;
2150
+ font-weight: 600;
2151
+ margin: 0.8em 0 0.4em;
2152
+ color: var(--chat-text, #e5e7eb);
2153
+ }
2154
+ .text-block h1:first-child,
2155
+ .text-block h2:first-child,
2156
+ .text-block h3:first-child {
2157
+ margin-top: 0;
2158
+ }
2159
+ .text-block ul,
2160
+ .text-block ol {
2161
+ margin: 0.75em 0;
2162
+ padding-left: 1.5em;
2163
+ }
2164
+ .text-block li {
2165
+ margin: 0.4em 0;
2166
+ line-height: 1.6;
2167
+ }
2168
+ .text-block li::marker {
2169
+ color: var(--chat-text-muted, #9ca3af);
2170
+ }
2171
+ .text-block li ul,
2172
+ .text-block li ol {
2173
+ margin: 0.25em 0;
2174
+ }
2175
+ .text-block .markdown-task-item {
2176
+ list-style: none;
2177
+ margin-left: -1.5em;
2178
+ padding-left: 0;
2179
+ }
2180
+ .text-block .markdown-task-checkbox {
2181
+ display: inline-block;
2182
+ width: 1.2em;
2183
+ margin-right: 0.4em;
2184
+ font-family:
2185
+ "Monaco",
2186
+ "Menlo",
2187
+ monospace;
2188
+ font-size: 0.85em;
2189
+ color: var(--chat-accent, #60a5fa);
2190
+ }
2191
+ .text-block a {
2192
+ color: var(--chat-accent, #60a5fa);
2193
+ text-decoration: none;
2194
+ background-image: linear-gradient(var(--chat-accent, #60a5fa), var(--chat-accent, #60a5fa));
2195
+ background-size: 0% 1px;
2196
+ background-position: 0 100%;
2197
+ background-repeat: no-repeat;
2198
+ transition: background-size 0.25s ease-out;
2199
+ }
2200
+ .text-block a:hover {
2201
+ background-size: 100% 1px;
2202
+ }
2203
+ .text-block strong {
2204
+ font-weight: 600;
2205
+ color: var(--chat-text-strong, #fff);
2206
+ }
2207
+ .text-block em {
2208
+ font-style: italic;
2209
+ color: var(--chat-text, #e5e7eb);
2210
+ }
2211
+ .text-block s,
2212
+ .text-block del {
2213
+ text-decoration: line-through;
2214
+ color: var(--chat-text-muted, #9ca3af);
2215
+ }
2216
+ .text-block code {
2217
+ font-family:
2218
+ "JetBrains Mono",
2219
+ "Fira Code",
2220
+ "Monaco",
2221
+ "Menlo",
2222
+ "Consolas",
2223
+ monospace;
2224
+ font-size: 0.875em;
2225
+ background: var(--chat-inline-code-bg, rgba(110, 118, 129, 0.25));
2226
+ padding: 0.2em 0.45em;
2227
+ border-radius: 6px;
2228
+ color: var(--chat-inline-code-text, #f472b6);
2229
+ font-weight: 500;
2230
+ }
2231
+ .text-block blockquote {
2232
+ margin: 1em 0;
2233
+ padding: 0.75em 1em;
2234
+ border-left: 4px solid var(--chat-accent, #60a5fa);
2235
+ background: var(--chat-blockquote-bg, rgba(96, 165, 250, 0.08));
2236
+ border-radius: 0 8px 8px 0;
2237
+ color: var(--chat-text-muted, #d1d5db);
2238
+ }
2239
+ .text-block blockquote p {
2240
+ margin: 0.25em 0;
2241
+ }
2242
+ .text-block blockquote p:first-child {
2243
+ margin-top: 0;
2244
+ }
2245
+ .text-block blockquote p:last-child {
2246
+ margin-bottom: 0;
2247
+ }
2248
+ .text-block hr {
2249
+ border: none;
2250
+ height: 1px;
2251
+ margin: 1.5em 0;
2252
+ background:
2253
+ linear-gradient(
2254
+ 90deg,
2255
+ transparent,
2256
+ var(--chat-border, rgba(255, 255, 255, 0.15)) 20%,
2257
+ var(--chat-border, rgba(255, 255, 255, 0.15)) 80%,
2258
+ transparent);
2259
+ }
2260
+ .text-block .markdown-table-wrapper {
2261
+ margin: 1em 0;
2262
+ overflow-x: auto;
2263
+ border-radius: 8px;
2264
+ border: 1px solid var(--chat-border, rgba(255, 255, 255, 0.1));
2265
+ scrollbar-gutter: stable;
2266
+ }
2267
+ .text-block .markdown-table {
2268
+ min-width: 100%;
2269
+ width: max-content;
2270
+ border-collapse: collapse;
2271
+ font-size: 0.9em;
2272
+ }
2273
+ .text-block .markdown-table th {
2274
+ background: var(--chat-table-header-bg, rgba(255, 255, 255, 0.06));
2275
+ font-weight: 600;
2276
+ text-align: left;
2277
+ padding: 0.75em 1em;
2278
+ border-bottom: 1px solid var(--chat-border, rgba(255, 255, 255, 0.1));
2279
+ color: var(--chat-text-strong, #fff);
2280
+ }
2281
+ .text-block .markdown-table td {
2282
+ padding: 0.65em 1em;
2283
+ border-bottom: 1px solid var(--chat-border, rgba(255, 255, 255, 0.06));
2284
+ }
2285
+ .text-block .markdown-table tr:last-child td {
2286
+ border-bottom: none;
2287
+ }
2288
+ .text-block .markdown-table tbody tr:hover {
2289
+ background: var(--chat-table-row-hover-bg, rgba(255, 255, 255, 0.05));
2290
+ }
2291
+ .text-block img {
2292
+ max-width: 100%;
2293
+ height: auto;
2294
+ border-radius: 8px;
2295
+ margin: 0.75em 0;
2296
+ }
2297
+ .code-block-wrapper {
2298
+ margin: 1em 0;
2299
+ border-radius: 8px;
2300
+ overflow: hidden;
2301
+ border: 1px solid var(--chat-border, rgba(255, 255, 255, 0.15));
2302
+ background: transparent;
2303
+ }
2304
+ .code-header {
2305
+ display: flex;
2306
+ justify-content: space-between;
2307
+ align-items: center;
2308
+ padding: 8px 14px;
2309
+ border-bottom: 1px solid var(--chat-border, rgba(255, 255, 255, 0.08));
2310
+ }
2311
+ .code-language {
2312
+ font-size: 12px;
2313
+ font-weight: 500;
2314
+ color: var(--chat-text-muted, #8b949e);
2315
+ text-transform: lowercase;
2316
+ letter-spacing: 0.03em;
2317
+ }
2318
+ .code-actions {
2319
+ display: flex;
2320
+ align-items: center;
2321
+ gap: 4px;
2322
+ }
2323
+ .code-action-btn {
2324
+ display: flex;
2325
+ align-items: center;
2326
+ gap: 5px;
2327
+ padding: 4px 8px;
2328
+ font-size: 12px;
2329
+ font-weight: 500;
2330
+ color: var(--chat-text-muted, #8b949e);
2331
+ background: transparent;
2332
+ border: 1px solid transparent;
2333
+ border-radius: 5px;
2334
+ cursor: pointer;
2335
+ appearance: none;
2336
+ -webkit-appearance: none;
2337
+ line-height: 1;
2338
+ transition: all 0.15s ease;
2339
+ }
2340
+ .code-action-btn:hover {
2341
+ color: var(--chat-text, #e5e7eb);
2342
+ background: var(--chat-hover-bg, rgba(255, 255, 255, 0.08));
2343
+ border-color: var(--chat-border, rgba(255, 255, 255, 0.1));
2344
+ }
2345
+ .code-action-btn:active {
2346
+ transform: scale(0.97);
2347
+ }
2348
+ .code-action-btn svg {
2349
+ flex-shrink: 0;
2350
+ width: 14px;
2351
+ height: 14px;
2352
+ }
2353
+ .code-block {
2354
+ margin: 0;
2355
+ padding: 14px 18px;
2356
+ overflow-x: auto;
2357
+ font-family:
2358
+ "JetBrains Mono",
2359
+ "Fira Code",
2360
+ "Monaco",
1103
2361
  "Menlo",
1104
- "Courier New",
2362
+ "Consolas",
1105
2363
  monospace;
1106
2364
  font-size: 13px;
1107
- color: var(--chat-code-text, var(--chat-text, #ccc));
1108
- white-space: pre-wrap;
1109
- word-break: break-all;
2365
+ line-height: 1.6;
2366
+ color: var(--chat-code-text, #e6edf3);
2367
+ background: transparent;
2368
+ border: none;
2369
+ border-radius: 0;
2370
+ -webkit-font-smoothing: antialiased;
2371
+ }
2372
+ .code-block code {
2373
+ display: block;
2374
+ white-space: pre;
2375
+ tab-size: 2;
2376
+ }
2377
+ .code-block::-webkit-scrollbar {
2378
+ height: 6px;
2379
+ }
2380
+ .code-block::-webkit-scrollbar-track {
2381
+ background: transparent;
2382
+ }
2383
+ .code-block::-webkit-scrollbar-thumb {
2384
+ background: var(--chat-scrollbar, rgba(255, 255, 255, 0.2));
2385
+ border-radius: 3px;
2386
+ }
2387
+ .code-block::-webkit-scrollbar-thumb:hover {
2388
+ background: var(--chat-scrollbar-hover, rgba(255, 255, 255, 0.3));
2389
+ }
2390
+ .code-block .hljs-keyword,
2391
+ .code-block .hljs-selector-tag {
2392
+ color: var(--chat-hljs-keyword, #ff7b72);
2393
+ }
2394
+ .code-block .hljs-built_in {
2395
+ color: var(--chat-hljs-built-in, #ffa657);
2396
+ }
2397
+ .code-block .hljs-type,
2398
+ .code-block .hljs-class {
2399
+ color: var(--chat-hljs-type, #ffa657);
2400
+ }
2401
+ .code-block .hljs-title,
2402
+ .code-block .hljs-title.function_,
2403
+ .code-block .hljs-function {
2404
+ color: var(--chat-hljs-function, #d2a8ff);
2405
+ }
2406
+ .code-block .hljs-string,
2407
+ .code-block .hljs-template-variable {
2408
+ color: var(--chat-hljs-string, #a5d6ff);
2409
+ }
2410
+ .code-block .hljs-number {
2411
+ color: var(--chat-hljs-number, #79c0ff);
2412
+ }
2413
+ .code-block .hljs-literal,
2414
+ .code-block .hljs-null {
2415
+ color: var(--chat-hljs-literal, #79c0ff);
2416
+ }
2417
+ .code-block .hljs-comment,
2418
+ .code-block .hljs-quote {
2419
+ color: var(--chat-hljs-comment, #8b949e);
2420
+ font-style: italic;
2421
+ }
2422
+ .code-block .hljs-variable,
2423
+ .code-block .hljs-template-tag {
2424
+ color: var(--chat-hljs-variable, #ffa657);
2425
+ }
2426
+ .code-block .hljs-attr,
2427
+ .code-block .hljs-attribute {
2428
+ color: var(--chat-hljs-attr, #79c0ff);
2429
+ }
2430
+ .code-block .hljs-property {
2431
+ color: var(--chat-hljs-property, #7ee787);
2432
+ }
2433
+ .code-block .hljs-operator {
2434
+ color: var(--chat-hljs-operator, #ff7b72);
2435
+ }
2436
+ .code-block .hljs-punctuation {
2437
+ color: var(--chat-hljs-punctuation, #e6edf3);
2438
+ }
2439
+ .code-block .hljs-params {
2440
+ color: var(--chat-hljs-params, #e6edf3);
2441
+ }
2442
+ .code-block .hljs-regexp {
2443
+ color: var(--chat-hljs-regexp, #7ee787);
2444
+ }
2445
+ .code-block .hljs-selector-class,
2446
+ .code-block .hljs-selector-id {
2447
+ color: var(--chat-hljs-selector, #7ee787);
2448
+ }
2449
+ .code-block .hljs-tag {
2450
+ color: var(--chat-hljs-tag, #7ee787);
2451
+ }
2452
+ .code-block .hljs-name {
2453
+ color: var(--chat-hljs-name, #7ee787);
2454
+ }
2455
+ .code-block .hljs-deletion {
2456
+ color: var(--chat-hljs-deletion, #ffa198);
2457
+ background: var(--chat-hljs-deletion-bg, rgba(248, 81, 73, 0.15));
2458
+ }
2459
+ .code-block .hljs-addition {
2460
+ color: var(--chat-hljs-addition, #7ee787);
2461
+ background: var(--chat-hljs-addition-bg, rgba(46, 160, 67, 0.15));
2462
+ }
2463
+ .code-block .hljs-meta {
2464
+ color: var(--chat-hljs-meta, #8b949e);
2465
+ }
2466
+ .code-block .hljs-link {
2467
+ color: var(--chat-hljs-link, #a5d6ff);
2468
+ text-decoration: underline;
2469
+ }
2470
+ .code-block .hljs-symbol {
2471
+ color: var(--chat-hljs-symbol, #79c0ff);
2472
+ }
2473
+ .code-block .hljs-subst {
2474
+ color: var(--chat-hljs-subst, #e6edf3);
2475
+ }
2476
+ .code-block .hljs-section {
2477
+ color: var(--chat-hljs-section, #79c0ff);
2478
+ font-weight: bold;
2479
+ }
2480
+ .code-block .hljs-bullet {
2481
+ color: var(--chat-hljs-bullet, #ffa657);
2482
+ }
2483
+ .code-block .hljs-emphasis {
2484
+ font-style: italic;
2485
+ }
2486
+ .code-block .hljs-strong {
2487
+ font-weight: bold;
2488
+ }
2489
+ .text-block .latex-block {
2490
+ display: block;
2491
+ margin: 1em 0;
2492
+ padding: 0.75em 1em;
2493
+ overflow-x: auto;
2494
+ background: var(--chat-latex-bg, rgba(255, 255, 255, 0.02));
2495
+ border-radius: 8px;
2496
+ border: 1px solid var(--chat-border, rgba(255, 255, 255, 0.08));
2497
+ }
2498
+ .text-block .latex-block .katex-display {
2499
+ margin: 0;
1110
2500
  overflow-x: auto;
2501
+ overflow-y: hidden;
2502
+ text-align: left;
2503
+ }
2504
+ .text-block .latex-block .katex {
2505
+ text-align: left;
2506
+ }
2507
+ .text-block .latex-inline {
2508
+ display: inline;
2509
+ padding: 0 0.15em;
2510
+ }
2511
+ .text-block .latex-error {
2512
+ color: var(--chat-error, #ef4444);
2513
+ background: rgba(239, 68, 68, 0.1);
2514
+ padding: 0.2em 0.4em;
2515
+ border-radius: 4px;
2516
+ font-family: monospace;
2517
+ font-size: 0.9em;
2518
+ }
2519
+ .text-block .katex {
2520
+ font-size: 1.1em;
2521
+ color: var(--chat-text, #e5e7eb);
2522
+ }
2523
+ .text-block .katex .frac-line {
2524
+ background: var(--chat-text, #e5e7eb);
2525
+ }
2526
+ .text-block .katex .sqrt > .sqrt-sign {
2527
+ color: var(--chat-text, #e5e7eb);
2528
+ }
2529
+ .text-block .latex-block::-webkit-scrollbar {
2530
+ height: 6px;
2531
+ }
2532
+ .text-block .latex-block::-webkit-scrollbar-track {
2533
+ background: transparent;
2534
+ }
2535
+ .text-block .latex-block::-webkit-scrollbar-thumb {
2536
+ background: var(--chat-scrollbar, rgba(255, 255, 255, 0.2));
2537
+ border-radius: 3px;
2538
+ }
2539
+ .text-block .latex-block::-webkit-scrollbar-thumb:hover {
2540
+ background: var(--chat-scrollbar-hover, rgba(255, 255, 255, 0.3));
2541
+ }
2542
+
2543
+ /* src/components/message/parts/ThinkingPart.css */
2544
+ .thinking-content {
2545
+ font-size: 13px;
2546
+ line-height: 1.5;
2547
+ color: var(--chat-text-muted, #999);
2548
+ white-space: pre-wrap;
2549
+ word-break: break-word;
2550
+ overflow-wrap: break-word;
2551
+ margin: 0;
2552
+ }
2553
+
2554
+ /* src/components/message/parts/SearchPart.css */
2555
+ .search-results {
2556
+ display: flex;
2557
+ flex-direction: column;
2558
+ gap: 8px;
2559
+ }
2560
+ .search-item {
2561
+ display: block;
2562
+ padding: 8px;
2563
+ border-radius: 6px;
2564
+ background: var(--chat-bg, #1e1e1e);
2565
+ text-decoration: none;
2566
+ transition: background 0.15s;
2567
+ }
2568
+ .search-item:hover {
2569
+ background: var(--chat-hover, #333);
2570
+ }
2571
+ .search-item-title {
2572
+ font-size: 13px;
2573
+ font-weight: 500;
2574
+ color: var(--chat-accent, #3b82f6);
2575
+ margin-bottom: 4px;
2576
+ }
2577
+ .search-item-snippet {
2578
+ font-size: 12px;
2579
+ color: var(--chat-text-muted, #888);
2580
+ line-height: 1.4;
2581
+ margin-bottom: 4px;
2582
+ display: -webkit-box;
2583
+ -webkit-line-clamp: 2;
2584
+ -webkit-box-orient: vertical;
2585
+ overflow: hidden;
2586
+ }
2587
+ .search-item-url {
2588
+ font-size: 11px;
2589
+ color: var(--chat-text-muted, #666);
2590
+ overflow: hidden;
2591
+ text-overflow: ellipsis;
2592
+ white-space: nowrap;
2593
+ }
2594
+
2595
+ /* src/components/input/DropdownSelector.css */
2596
+ .dropdown-selector {
2597
+ position: relative;
2598
+ display: flex;
2599
+ align-items: center;
2600
+ gap: 4px;
2601
+ height: 28px;
2602
+ padding: 0 8px;
2603
+ background: rgba(0, 0, 0, 0.04);
2604
+ background: color-mix(in srgb, var(--chat-text, #ccc) 6%, transparent);
2605
+ border: none;
2606
+ border-radius: 6px;
2607
+ font-size: 14px;
2608
+ color: var(--chat-text-muted, #888);
2609
+ cursor: pointer;
2610
+ transition: all 0.15s;
2611
+ }
2612
+ .dropdown-selector:hover:not(.disabled) {
2613
+ background: rgba(0, 0, 0, 0.06);
2614
+ background: color-mix(in srgb, var(--chat-text, #ccc) 10%, transparent);
2615
+ color: var(--chat-text, #ccc);
2616
+ }
2617
+ .dropdown-selector.disabled {
2618
+ opacity: 0.6;
2619
+ cursor: not-allowed;
2620
+ }
2621
+ .dropdown-selector .chevron {
2622
+ color: var(--chat-text-muted, #666);
2623
+ }
2624
+ .dropdown-selector .dropdown-menu {
2625
+ position: absolute;
2626
+ left: 0;
2627
+ right: auto;
2628
+ min-width: 180px;
2629
+ max-height: 320px;
2630
+ overflow-y: auto;
2631
+ background: var(--chat-dropdown-bg, #252526);
2632
+ border: 1px solid rgba(255, 255, 255, 0.1);
2633
+ border-radius: 8px;
2634
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
2635
+ z-index: 9999;
2636
+ padding: 4px 8px 4px 4px;
2637
+ display: flex;
2638
+ flex-direction: column;
2639
+ gap: 2px;
2640
+ }
2641
+ .dropdown-selector .dropdown-menu.dropdown-up {
2642
+ bottom: 100%;
2643
+ top: auto;
2644
+ margin-bottom: 4px;
2645
+ }
2646
+ .dropdown-selector .dropdown-menu.dropdown-down {
2647
+ top: 100%;
2648
+ bottom: auto;
2649
+ margin-top: 4px;
1111
2650
  }
1112
- .execution-stats {
2651
+ .dropdown-selector .dropdown-menu.dropdown-align-right {
2652
+ left: auto;
2653
+ right: 0;
2654
+ }
2655
+ .dropdown-selector .dropdown-item {
1113
2656
  display: flex;
1114
- gap: 16px;
1115
- margin-bottom: 12px;
1116
- padding-top: 8px;
1117
- border-top: 1px solid var(--chat-border, #333);
2657
+ align-items: center;
2658
+ gap: 8px;
2659
+ width: 100%;
2660
+ padding: 8px 10px;
2661
+ border: none;
2662
+ background: transparent;
2663
+ border-radius: 4px;
2664
+ font-size: 14px;
2665
+ color: var(--chat-text-muted, #999);
2666
+ cursor: pointer;
2667
+ transition: all 0.15s;
2668
+ white-space: nowrap;
1118
2669
  }
1119
- .stat-item {
2670
+ .dropdown-selector .dropdown-item:hover {
2671
+ background: rgba(0, 0, 0, 0.06);
2672
+ background: color-mix(in srgb, var(--chat-text, #ccc) 10%, transparent);
2673
+ color: var(--chat-text, #ccc);
2674
+ }
2675
+ .dropdown-selector .dropdown-item.active {
2676
+ background: rgba(0, 0, 0, 0.08);
2677
+ background: color-mix(in srgb, var(--chat-text, #ccc) 14%, transparent);
2678
+ color: var(--chat-text, #fff);
2679
+ }
2680
+ .dropdown-selector .check-icon {
2681
+ margin-left: auto;
2682
+ color: var(--chat-text, #ccc);
2683
+ flex-shrink: 0;
2684
+ }
2685
+ .dropdown-selector .selector-text {
2686
+ overflow: hidden;
2687
+ text-overflow: ellipsis;
2688
+ white-space: nowrap;
2689
+ }
2690
+ .dropdown-selector .dropdown-empty {
2691
+ padding: 12px 10px;
2692
+ font-size: 12px;
2693
+ color: var(--chat-text-muted, #666);
2694
+ text-align: center;
2695
+ }
2696
+ .dropdown-selector .group-title {
2697
+ padding: 8px 10px 4px;
2698
+ margin-top: 4px;
2699
+ font-size: 11px;
2700
+ color: var(--chat-text-muted, #666);
2701
+ }
2702
+ .dropdown-selector .group-title:first-child {
2703
+ margin-top: 0;
2704
+ }
2705
+ .dropdown-selector .option-label {
2706
+ flex: 1;
2707
+ text-align: left;
2708
+ }
2709
+ .dropdown-selector .option-right {
2710
+ display: flex;
2711
+ align-items: center;
2712
+ gap: 8px;
2713
+ margin-left: auto;
2714
+ }
2715
+ .dropdown-selector .provider-badge {
2716
+ padding: 2px 6px;
2717
+ font-size: 11px;
2718
+ font-weight: 500;
2719
+ color: var(--chat-text-muted, #999);
2720
+ background: rgba(255, 255, 255, 0.08);
2721
+ border-radius: 3px;
2722
+ white-space: nowrap;
2723
+ }
2724
+ .dropdown-selector .provider-badge.native {
2725
+ color: var(--chat-text-muted, #999);
2726
+ }
2727
+ .dropdown-selector .dropdown-item-wrapper {
2728
+ position: relative;
2729
+ }
2730
+ .ai-chat-model-tooltip {
2731
+ min-width: 160px;
2732
+ max-width: 240px;
2733
+ width: max-content;
2734
+ padding: 12px;
2735
+ background: var(--chat-dropdown-bg, #252526);
2736
+ border: 1px solid rgba(255, 255, 255, 0.15);
2737
+ border-radius: 8px;
2738
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.5);
2739
+ pointer-events: none;
2740
+ }
2741
+ .ai-chat-model-tooltip__section {
2742
+ margin-bottom: 10px;
2743
+ }
2744
+ .ai-chat-model-tooltip__section:last-child {
2745
+ margin-bottom: 0;
2746
+ }
2747
+ .ai-chat-model-tooltip__title {
2748
+ font-size: 11px;
2749
+ font-weight: 500;
2750
+ color: var(--chat-text-muted, #888);
2751
+ margin-bottom: 6px;
2752
+ text-transform: uppercase;
2753
+ letter-spacing: 0.5px;
2754
+ }
2755
+ .ai-chat-model-tooltip__features {
1120
2756
  display: flex;
2757
+ flex-direction: column;
1121
2758
  gap: 4px;
2759
+ }
2760
+ .ai-chat-model-tooltip__feature {
2761
+ display: flex;
2762
+ align-items: center;
2763
+ gap: 6px;
2764
+ font-size: 13px;
2765
+ color: var(--chat-text, #ccc);
2766
+ }
2767
+ .ai-chat-model-tooltip__check {
2768
+ color: #4ade80;
2769
+ flex-shrink: 0;
2770
+ }
2771
+ .ai-chat-model-tooltip__cost {
2772
+ font-size: 13px;
2773
+ color: var(--chat-text, #ccc);
2774
+ }
2775
+ .ai-chat-model-tooltip__description {
1122
2776
  font-size: 12px;
2777
+ color: var(--chat-text-muted, #999);
2778
+ line-height: 1.5;
1123
2779
  }
1124
- .stat-label {
2780
+
2781
+ /* src/components/common/CopyButton.css */
2782
+ .copy-btn {
2783
+ display: flex;
2784
+ align-items: center;
2785
+ justify-content: center;
2786
+ padding: 4px;
2787
+ background: transparent;
2788
+ border: none;
1125
2789
  color: var(--chat-text-muted, #888);
2790
+ cursor: pointer;
2791
+ border-radius: 4px;
2792
+ transition: all 0.2s;
1126
2793
  }
1127
- .stat-value {
1128
- color: var(--chat-text, #ccc);
2794
+ .copy-btn:hover {
2795
+ background: rgba(255, 255, 255, 0.1);
2796
+ color: var(--chat-text, #fff);
2797
+ }
2798
+ .copy-btn.copied {
2799
+ color: var(--chat-success, #22c55e);
2800
+ }
2801
+
2802
+ /* src/components/message/parts/ToolCallPart.css */
2803
+ .tool-args {
2804
+ margin: 0 0 12px 0;
2805
+ padding: 0.75em 1em;
2806
+ background: var(--chat-bg, #1e1e1e);
2807
+ border: 1px solid var(--chat-border, rgba(255, 255, 255, 0.08));
2808
+ border-radius: 8px;
2809
+ font-size: 13px;
2810
+ line-height: 1.6;
2811
+ color: var(--chat-text-muted, #999);
2812
+ white-space: pre-wrap;
2813
+ word-break: break-word;
2814
+ overflow-x: auto;
2815
+ }
2816
+ .tool-args.json {
2817
+ font-family:
2818
+ "Monaco",
2819
+ "Menlo",
2820
+ "Courier New",
2821
+ monospace;
2822
+ font-size: 12px;
2823
+ line-height: 1.8;
2824
+ white-space: pre;
2825
+ word-break: normal;
2826
+ overflow-x: auto;
2827
+ }
2828
+ .tool-args.json::-webkit-scrollbar {
2829
+ height: 6px;
2830
+ }
2831
+ .tool-args.json::-webkit-scrollbar-track {
2832
+ background: transparent;
2833
+ }
2834
+ .tool-args.json::-webkit-scrollbar-thumb {
2835
+ background: var(--chat-scrollbar, rgba(255, 255, 255, 0.2));
2836
+ border-radius: 3px;
2837
+ }
2838
+ .tool-args.json::-webkit-scrollbar-thumb:hover {
2839
+ background: var(--chat-scrollbar-hover, rgba(255, 255, 255, 0.3));
2840
+ }
2841
+ .tool-args.json .hljs-attr,
2842
+ .tool-args.json .hljs-attribute {
2843
+ color: var(--chat-hljs-attr, #79c0ff);
2844
+ }
2845
+ .tool-args.json .hljs-string,
2846
+ .tool-args.json .hljs-template-variable {
2847
+ color: var(--chat-hljs-string, #a5d6ff);
2848
+ }
2849
+ .tool-args.json .hljs-number {
2850
+ color: var(--chat-hljs-number, #79c0ff);
1129
2851
  }
1130
- .tool-call-footer {
2852
+ .tool-args.json .hljs-literal,
2853
+ .tool-args.json .hljs-null {
2854
+ color: var(--chat-hljs-literal, #79c0ff);
2855
+ }
2856
+ .tool-args.json .hljs-punctuation {
2857
+ color: var(--chat-hljs-punctuation, #e6edf3);
2858
+ }
2859
+ .tool-args.command {
2860
+ font-family:
2861
+ "Monaco",
2862
+ "Menlo",
2863
+ "Courier New",
2864
+ monospace;
2865
+ font-size: 12px;
2866
+ line-height: 1.6;
2867
+ }
2868
+ .tool-args.text {
2869
+ font-size: 13px;
2870
+ line-height: 1.5;
2871
+ }
2872
+ .tool-footer {
1131
2873
  display: flex;
1132
2874
  align-items: center;
1133
2875
  justify-content: space-between;
1134
2876
  gap: 12px;
1135
- padding-top: 12px;
1136
- border-top: 1px solid var(--chat-border, #333);
1137
- }
1138
- .footer-left {
1139
- flex-shrink: 0;
1140
- position: relative;
1141
- z-index: 10;
1142
2877
  }
1143
- .footer-right {
2878
+ .tool-actions {
1144
2879
  display: flex;
1145
2880
  align-items: center;
1146
- gap: 12px;
2881
+ gap: 8px;
1147
2882
  }
1148
- .execution-status {
2883
+ .status-text {
1149
2884
  display: flex;
1150
2885
  align-items: center;
1151
2886
  gap: 6px;
1152
2887
  font-size: 12px;
1153
2888
  font-weight: 500;
1154
2889
  }
1155
- .execution-status.success {
2890
+ .status-text.done {
1156
2891
  color: var(--chat-success, #22c55e);
1157
2892
  }
1158
- .execution-status.error {
1159
- color: #ef4444;
2893
+ .status-text.error {
2894
+ color: var(--chat-error, #ef4444);
1160
2895
  }
1161
- .execution-status.running {
2896
+ .status-text.running {
1162
2897
  color: var(--chat-accent, #3b82f6);
1163
2898
  }
1164
- .execution-status.pending {
1165
- color: var(--chat-text-muted, #888);
1166
- }
1167
- .mode-display {
1168
- display: flex;
1169
- align-items: center;
1170
- gap: 6px;
1171
- font-size: 12px;
2899
+ .status-text.cancelled {
2900
+ color: var(--chat-warning, #f59e0b);
1172
2901
  }
1173
- .mode-label {
2902
+ .status-text.skipped {
1174
2903
  color: var(--chat-text-muted, #888);
1175
2904
  }
1176
- .mode-value {
1177
- color: var(--chat-text, #ccc);
1178
- }
1179
2905
  .spinning {
1180
2906
  animation: spin 1s linear infinite;
1181
2907
  }
@@ -1187,10 +2913,6 @@
1187
2913
  transform: rotate(360deg);
1188
2914
  }
1189
2915
  }
1190
- .action-buttons {
1191
- display: flex;
1192
- gap: 8px;
1193
- }
1194
2916
  .btn {
1195
2917
  padding: 6px 12px;
1196
2918
  border-radius: 6px;
@@ -1228,76 +2950,82 @@
1228
2950
  color: #ef4444;
1229
2951
  border-color: #ef4444;
1230
2952
  }
1231
- .execution-status.cancelled {
1232
- color: var(--chat-warning, #f59e0b);
1233
- }
1234
-
1235
- /* src/components/message/parts/ToolResultPart.css */
1236
- .tool-result-part {
1237
- margin: 8px 0;
1238
- }
1239
- .default-result {
2953
+ .output-panel {
2954
+ margin: 0 0 12px 0;
2955
+ border: 1px solid var(--chat-border, rgba(255, 255, 255, 0.08));
1240
2956
  border-radius: 8px;
1241
- background: var(--chat-muted, #2a2a2a);
1242
- border: 1px solid var(--chat-border, #333);
2957
+ background: var(--chat-bg, #1e1e1e);
1243
2958
  overflow: hidden;
1244
2959
  }
1245
- .default-result .result-header {
2960
+ .output-header {
1246
2961
  display: flex;
1247
2962
  align-items: center;
1248
- gap: 8px;
1249
- padding: 8px 12px;
1250
- cursor: pointer;
1251
- user-select: none;
1252
- }
1253
- .default-result .result-header:hover {
1254
- background: var(--chat-hover, #333);
2963
+ justify-content: space-between;
2964
+ gap: 12px;
2965
+ padding: 8px 10px;
2966
+ border-bottom: 1px solid var(--chat-border, rgba(255, 255, 255, 0.08));
1255
2967
  }
1256
- .default-result .result-icon {
2968
+ .output-tabs {
1257
2969
  display: flex;
1258
- align-items: center;
1259
- justify-content: center;
1260
- }
1261
- .default-result .result-icon .success {
1262
- color: var(--chat-success, #22c55e);
2970
+ gap: 6px;
1263
2971
  }
1264
- .default-result .result-icon .error {
1265
- color: var(--chat-error, #ef4444);
2972
+ .tab {
2973
+ padding: 4px 8px;
2974
+ border-radius: 6px;
2975
+ border: 1px solid var(--chat-border, #333);
2976
+ background: var(--chat-muted, #2a2a2a);
2977
+ color: var(--chat-text-muted, #999);
2978
+ font-size: 11px;
2979
+ cursor: pointer;
1266
2980
  }
1267
- .default-result .result-name {
1268
- font-size: 13px;
1269
- font-weight: 500;
2981
+ .tab.active {
2982
+ background: rgba(59, 130, 246, 0.15);
2983
+ border-color: rgba(59, 130, 246, 0.35);
1270
2984
  color: var(--chat-text, #ccc);
1271
2985
  }
1272
- .default-result .result-chevron {
1273
- margin-left: auto;
1274
- color: var(--chat-text-muted, #666);
1275
- transition: transform 0.2s;
2986
+ .output-actions {
2987
+ display: flex;
2988
+ align-items: center;
2989
+ gap: 8px;
1276
2990
  }
1277
- .default-result.expanded .result-chevron {
1278
- transform: rotate(180deg);
2991
+ .btn-save {
2992
+ padding: 6px 10px;
2993
+ border-radius: 6px;
2994
+ font-size: 12px;
2995
+ font-weight: 500;
2996
+ cursor: pointer;
2997
+ border: 1px solid var(--chat-border, #333);
2998
+ background: transparent;
2999
+ color: var(--chat-text-muted, #888);
3000
+ display: flex;
3001
+ align-items: center;
3002
+ gap: 6px;
3003
+ transition: all 0.2s;
1279
3004
  }
1280
- .default-result .result-content {
1281
- padding: 12px;
1282
- padding-top: 0;
3005
+ .btn-save:hover {
3006
+ background: var(--chat-muted-hover, #333);
3007
+ color: var(--chat-text, #ccc);
1283
3008
  }
1284
- .default-result .result-content pre {
3009
+ .output-body {
1285
3010
  margin: 0;
1286
- font-size: 12px;
3011
+ padding: 10px 12px;
1287
3012
  font-family:
1288
- "SF Mono",
1289
- Monaco,
1290
- "Cascadia Code",
3013
+ "Monaco",
3014
+ "Menlo",
3015
+ "Courier New",
1291
3016
  monospace;
1292
- color: var(--chat-code-text, var(--chat-text-muted, #999));
3017
+ font-size: 12px;
3018
+ line-height: 1.6;
3019
+ color: var(--chat-text-muted, #999);
1293
3020
  white-space: pre-wrap;
1294
3021
  word-break: break-word;
3022
+ max-height: 260px;
3023
+ overflow: auto;
1295
3024
  }
1296
3025
 
1297
3026
  /* src/components/message/parts/ImagePart.css */
1298
3027
  .image-part {
1299
3028
  position: relative;
1300
- margin: 8px 0;
1301
3029
  max-width: 100%;
1302
3030
  display: inline-block;
1303
3031
  }
@@ -1356,6 +3084,12 @@
1356
3084
  display: flex;
1357
3085
  flex-direction: column;
1358
3086
  }
3087
+ .part-item {
3088
+ margin-top: 8px;
3089
+ }
3090
+ .part-item:first-child {
3091
+ margin-top: 0;
3092
+ }
1359
3093
 
1360
3094
  /* src/components/input/ChatInput.css */
1361
3095
  .chat-input {
@@ -1363,7 +3097,6 @@
1363
3097
  }
1364
3098
  .chat-input.message-variant {
1365
3099
  padding: 0;
1366
- margin-bottom: 16px;
1367
3100
  }
1368
3101
  .input-container {
1369
3102
  display: flex;
@@ -2113,6 +3846,54 @@
2113
3846
  }
2114
3847
  }
2115
3848
 
3849
+ /* src/components/common/ToggleSwitch.css */
3850
+ .toggle-switch {
3851
+ position: relative;
3852
+ display: inline-block;
3853
+ width: 44px;
3854
+ height: 24px;
3855
+ cursor: pointer;
3856
+ }
3857
+ .toggle-switch input {
3858
+ opacity: 0;
3859
+ width: 0;
3860
+ height: 0;
3861
+ }
3862
+ .toggle-slider {
3863
+ position: absolute;
3864
+ top: 0;
3865
+ left: 0;
3866
+ right: 0;
3867
+ bottom: 0;
3868
+ background-color: var(--chat-muted, #3c3c3c);
3869
+ border-radius: 24px;
3870
+ transition: all 0.2s;
3871
+ border: 1px solid rgba(255, 255, 255, 0.1);
3872
+ }
3873
+ .toggle-slider::before {
3874
+ position: absolute;
3875
+ content: "";
3876
+ height: 18px;
3877
+ width: 18px;
3878
+ left: 3px;
3879
+ top: 50%;
3880
+ transform: translateY(-50%);
3881
+ background-color: #fff;
3882
+ border-radius: 50%;
3883
+ transition: all 0.2s;
3884
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
3885
+ }
3886
+ .toggle-switch input:checked + .toggle-slider {
3887
+ background-color: rgb(153, 207, 140);
3888
+ border-color: rgba(255, 255, 255, 0.2);
3889
+ }
3890
+ .toggle-switch input:checked + .toggle-slider::before {
3891
+ transform: translate(20px, -50%);
3892
+ }
3893
+ .toggle-switch input:focus + .toggle-slider {
3894
+ box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.2);
3895
+ }
3896
+
2116
3897
  /* src/components/common/IndexingSettings.css */
2117
3898
  .indexing-settings {
2118
3899
  display: flex;
@@ -2506,300 +4287,72 @@
2506
4287
  .toggle-switch input:focus + .toggle-slider {
2507
4288
  box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.2);
2508
4289
  }
2509
-
2510
- /* src/components/message/blocks/blocks.css */
2511
- .text-block {
2512
- font-size: 14px;
2513
- line-height: 1.7;
2514
- color: var(--chat-text, #ccc);
2515
- white-space: pre-wrap;
2516
- word-break: break-word;
2517
- }
2518
- .code-block {
2519
- background: var(--chat-code-bg, #1f2937);
2520
- border-radius: 8px;
2521
- overflow: hidden;
2522
- margin: 8px 0;
2523
- }
2524
- .code-header {
4290
+ .setting-section-header {
2525
4291
  display: flex;
2526
- align-items: center;
4292
+ align-items: flex-start;
2527
4293
  justify-content: space-between;
2528
- padding: 8px 12px;
2529
- background: rgba(0, 0, 0, 0.2);
2530
- border-bottom: 1px solid rgba(255, 255, 255, 0.1);
2531
- }
2532
- .code-language {
2533
- font-size: 12px;
2534
- color: var(--chat-text-muted, #888);
2535
- font-family:
2536
- "SF Mono",
2537
- Monaco,
2538
- monospace;
2539
- }
2540
- .code-actions {
2541
- display: flex;
2542
- gap: 4px;
4294
+ gap: 16px;
4295
+ padding: 16px 0 8px;
4296
+ border-bottom: 1px solid var(--chat-border, #333);
2543
4297
  }
2544
- .code-action-btn {
2545
- display: flex;
2546
- align-items: center;
2547
- justify-content: center;
2548
- width: 28px;
2549
- height: 28px;
2550
- border: none;
2551
- background: transparent;
2552
- border-radius: 4px;
2553
- color: var(--chat-text-muted, #888);
4298
+ .disable-all-btn {
4299
+ flex-shrink: 0;
4300
+ height: 32px;
4301
+ padding: 0 12px;
4302
+ border-radius: 8px;
4303
+ border: 1px solid var(--chat-border, #333);
4304
+ background: rgba(255, 255, 255, 0.06);
4305
+ color: var(--chat-text, #fff);
4306
+ font-size: 13px;
2554
4307
  cursor: pointer;
2555
- transition: all 0.15s;
4308
+ transition: all 0.15s ease;
2556
4309
  }
2557
- .code-action-btn:hover {
4310
+ .disable-all-btn:hover {
2558
4311
  background: rgba(255, 255, 255, 0.1);
2559
- color: var(--chat-text, #ccc);
2560
- }
2561
- .code-content {
2562
- margin: 0;
2563
- padding: 12px;
2564
- overflow-x: auto;
2565
- font-family:
2566
- "SF Mono",
2567
- Monaco,
2568
- Consolas,
2569
- monospace;
2570
- font-size: 13px;
2571
- line-height: 1.5;
2572
- color: var(--chat-code-text, #e5e7eb);
2573
- }
2574
- .code-content::-webkit-scrollbar {
2575
- width: 6px;
2576
- height: 6px;
2577
- }
2578
- .code-content::-webkit-scrollbar-track {
2579
- background: transparent;
2580
- }
2581
- .code-content::-webkit-scrollbar-thumb {
2582
- background: var(--chat-scrollbar, rgba(255, 255, 255, 0.2));
2583
- border-radius: 3px;
2584
- }
2585
- .code-content::-webkit-scrollbar-thumb:hover {
2586
- background: var(--chat-scrollbar-hover, rgba(255, 255, 255, 0.3));
2587
- }
2588
- .code-content code {
2589
- font-family: inherit;
2590
- }
2591
- .code-content .hljs-keyword {
2592
- color: #c678dd;
2593
- }
2594
- .code-content .hljs-string {
2595
- color: #98c379;
2596
- }
2597
- .code-content .hljs-number {
2598
- color: #d19a66;
2599
- }
2600
- .code-content .hljs-comment {
2601
- color: #5c6370;
2602
- font-style: italic;
2603
- }
2604
- .code-content .hljs-function {
2605
- color: #61afef;
2606
- }
2607
- .code-content .hljs-class {
2608
- color: #e5c07b;
2609
- }
2610
- .code-content .hljs-variable {
2611
- color: #e06c75;
2612
4312
  }
2613
- .code-content .hljs-operator {
2614
- color: #56b6c2;
2615
- }
2616
- .code-content .hljs-punctuation {
2617
- color: #abb2bf;
2618
- }
2619
- .code-content .hljs-property {
2620
- color: #e06c75;
2621
- }
2622
- .code-content .hljs-attr {
2623
- color: #d19a66;
2624
- }
2625
- .code-content .hljs-built_in {
2626
- color: #e5c07b;
2627
- }
2628
- .code-content .hljs-title {
2629
- color: #61afef;
2630
- }
2631
- .code-content .hljs-params {
2632
- color: #abb2bf;
2633
- }
2634
- .code-content .hljs-literal {
2635
- color: #56b6c2;
2636
- }
2637
- .code-content .hljs-type {
2638
- color: #e5c07b;
4313
+ .disable-all-btn:disabled {
4314
+ opacity: 0.5;
4315
+ cursor: not-allowed;
2639
4316
  }
2640
-
2641
- /* src/components/message/ContentRenderer.css */
2642
- .content-renderer {
4317
+ .tools-list {
2643
4318
  display: flex;
2644
4319
  flex-direction: column;
2645
- gap: 4px;
2646
- }
2647
-
2648
- /* src/components/message/tool-results/tool-results.css */
2649
- .default-tool-result {
2650
- background: var(--chat-bg, #1e1e1e);
2651
- border-radius: 6px;
2652
- overflow: hidden;
2653
- }
2654
- .result-content {
2655
- margin: 0;
2656
- padding: 8px;
2657
- font-size: 13px;
2658
- line-height: 1.5;
2659
- color: var(--chat-code-text, var(--chat-text, #999));
2660
- font-family:
2661
- "SF Mono",
2662
- Monaco,
2663
- monospace;
2664
- white-space: pre-wrap;
2665
- word-break: break-word;
2666
- overflow-x: auto;
2667
- background: var(--chat-code-bg);
2668
- border-top: 1px solid var(--chat-border);
2669
- }
2670
- .weather-card {
2671
- background:
2672
- linear-gradient(
2673
- 135deg,
2674
- #667eea 0%,
2675
- #764ba2 100%);
2676
- border-radius: 12px;
2677
- padding: 16px;
2678
- color: #fff;
2679
- min-width: 200px;
2680
4320
  }
2681
- .weather-header {
4321
+ .tool-item {
2682
4322
  display: flex;
2683
4323
  align-items: center;
2684
- gap: 8px;
2685
- margin-bottom: 12px;
2686
- }
2687
- .weather-icon {
2688
- opacity: 0.9;
2689
- }
2690
- .weather-location {
2691
- font-size: 14px;
2692
- font-weight: 500;
2693
- }
2694
- .weather-main {
2695
- margin-bottom: 12px;
2696
- }
2697
- .weather-temp {
2698
- font-size: 48px;
2699
- font-weight: 300;
2700
- line-height: 1;
2701
- }
2702
- .weather-condition {
2703
- font-size: 14px;
2704
- opacity: 0.9;
2705
- margin-top: 4px;
2706
- }
2707
- .weather-details {
2708
- display: flex;
4324
+ justify-content: space-between;
2709
4325
  gap: 16px;
2710
- padding-top: 12px;
2711
- border-top: 1px solid rgba(255, 255, 255, 0.2);
2712
- }
2713
- .weather-detail {
2714
- display: flex;
2715
- align-items: center;
2716
- gap: 4px;
2717
- font-size: 13px;
2718
- opacity: 0.9;
4326
+ padding: 14px 0;
4327
+ border-bottom: 1px solid var(--chat-border, #333);
2719
4328
  }
2720
- .weather-forecast {
2721
- margin-top: 12px;
2722
- padding-top: 12px;
2723
- border-top: 1px solid rgba(255, 255, 255, 0.2);
2724
- display: flex;
2725
- gap: 12px;
2726
- overflow-x: auto;
4329
+ .tool-item:last-child {
4330
+ border-bottom: none;
2727
4331
  }
2728
- .forecast-item {
2729
- text-align: center;
2730
- min-width: 60px;
4332
+ .tool-info {
4333
+ flex: 1;
4334
+ min-width: 0;
2731
4335
  }
2732
- .forecast-date {
2733
- font-size: 12px;
2734
- opacity: 0.8;
4336
+ .tool-name {
4337
+ font-size: 14px;
4338
+ font-weight: 500;
4339
+ color: var(--chat-text, #fff);
2735
4340
  margin-bottom: 4px;
4341
+ word-break: break-all;
2736
4342
  }
2737
- .forecast-temp {
4343
+ .tool-description {
2738
4344
  font-size: 13px;
2739
- font-weight: 500;
2740
- }
2741
- .forecast-condition {
2742
- font-size: 11px;
2743
- opacity: 0.8;
2744
- margin-top: 2px;
2745
- }
2746
- .search-results-card {
2747
- background: var(--chat-muted, #2d2d2d);
2748
- border-radius: 8px;
2749
- overflow: hidden;
2750
- }
2751
- .search-header {
2752
- display: flex;
2753
- align-items: center;
2754
- gap: 8px;
2755
- padding: 10px 12px;
2756
- background: rgba(0, 0, 0, 0.2);
2757
4345
  color: var(--chat-text-muted, #888);
2758
- font-size: 13px;
2759
- }
2760
- .search-count {
2761
- margin-left: auto;
2762
- font-size: 12px;
2763
- opacity: 0.7;
2764
- }
2765
- .search-list {
2766
- display: flex;
2767
- flex-direction: column;
2768
- }
2769
- .search-item {
2770
- display: block;
2771
- padding: 10px 12px;
2772
- text-decoration: none;
2773
- border-bottom: 1px solid rgba(255, 255, 255, 0.05);
2774
- transition: background 0.15s;
2775
- }
2776
- .search-item:last-child {
2777
- border-bottom: none;
2778
- }
2779
- .search-item:hover {
2780
- background: rgba(255, 255, 255, 0.05);
4346
+ line-height: 1.5;
4347
+ word-break: break-word;
2781
4348
  }
2782
- .item-title {
2783
- font-size: 14px;
2784
- color: var(--chat-text, #ccc);
2785
- font-weight: 500;
2786
- margin-bottom: 4px;
2787
- overflow: hidden;
2788
- text-overflow: ellipsis;
2789
- white-space: nowrap;
4349
+ .no-tools {
4350
+ padding: 16px 0;
4351
+ color: var(--chat-text, #fff);
2790
4352
  }
2791
- .item-snippet {
4353
+ .no-tools-hint {
2792
4354
  font-size: 12px;
2793
4355
  color: var(--chat-text-muted, #888);
2794
- line-height: 1.4;
2795
- margin-bottom: 4px;
2796
- display: -webkit-box;
2797
- -webkit-line-clamp: 2;
2798
- -webkit-box-orient: vertical;
2799
- overflow: hidden;
2800
- }
2801
- .item-url {
2802
- font-size: 11px;
2803
- color: var(--chat-text-muted, #666);
4356
+ margin-top: 8px;
2804
4357
  }
2805
4358
  /*# sourceMappingURL=index.css.map */