@huyooo/ai-chat-frontend-react 0.2.45 → 0.3.4

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 (188) hide show
  1. package/dist/adapter.d.ts +58 -0
  2. package/dist/adapter.d.ts.map +1 -0
  3. package/dist/components/ChatPanel.d.ts +71 -0
  4. package/dist/components/ChatPanel.d.ts.map +1 -0
  5. package/dist/components/common/ConfirmDialog.d.ts +27 -0
  6. package/dist/components/common/ConfirmDialog.d.ts.map +1 -0
  7. package/dist/components/common/CopyButton.d.ts +15 -0
  8. package/dist/components/common/CopyButton.d.ts.map +1 -0
  9. package/dist/components/common/IndexingSettings.d.ts +3 -0
  10. package/dist/components/common/IndexingSettings.d.ts.map +1 -0
  11. package/dist/components/common/Toast.d.ts +12 -0
  12. package/dist/components/common/Toast.d.ts.map +1 -0
  13. package/dist/components/common/ToggleSwitch.d.ts +9 -0
  14. package/dist/components/common/ToggleSwitch.d.ts.map +1 -0
  15. package/dist/components/header/ChatHeader.d.ts +42 -0
  16. package/dist/components/header/ChatHeader.d.ts.map +1 -0
  17. package/dist/components/input/AtFilePicker.d.ts +16 -0
  18. package/dist/components/input/AtFilePicker.d.ts.map +1 -0
  19. package/dist/components/input/ChatInput.d.ts +49 -0
  20. package/dist/components/input/ChatInput.d.ts.map +1 -0
  21. package/dist/components/input/DropdownSelector.d.ts +46 -0
  22. package/dist/components/input/DropdownSelector.d.ts.map +1 -0
  23. package/dist/components/input/ImagePreviewModal.d.ts +11 -0
  24. package/dist/components/input/ImagePreviewModal.d.ts.map +1 -0
  25. package/dist/components/input/QueuedMessageList.d.ts +11 -0
  26. package/dist/components/input/QueuedMessageList.d.ts.map +1 -0
  27. package/dist/components/input/at-views/AtChatsView.d.ts +17 -0
  28. package/dist/components/input/at-views/AtChatsView.d.ts.map +1 -0
  29. package/dist/components/input/at-views/AtDocsView.d.ts +17 -0
  30. package/dist/components/input/at-views/AtDocsView.d.ts.map +1 -0
  31. package/dist/components/input/at-views/AtFilesView.d.ts +26 -0
  32. package/dist/components/input/at-views/AtFilesView.d.ts.map +1 -0
  33. package/dist/components/input/at-views/AtTerminalsView.d.ts +17 -0
  34. package/dist/components/input/at-views/AtTerminalsView.d.ts.map +1 -0
  35. package/dist/components/input/at-views/index.d.ts +9 -0
  36. package/dist/components/input/at-views/index.d.ts.map +1 -0
  37. package/dist/components/input/at-views/useAtViewTooltip.d.ts +12 -0
  38. package/dist/components/input/at-views/useAtViewTooltip.d.ts.map +1 -0
  39. package/dist/components/input/atContextItems.d.ts +9 -0
  40. package/dist/components/input/atContextItems.d.ts.map +1 -0
  41. package/dist/components/input/atContextToolHints.d.ts +2 -0
  42. package/dist/components/input/atContextToolHints.d.ts.map +1 -0
  43. package/dist/components/message/MessageBubble.d.ts +69 -0
  44. package/dist/components/message/MessageBubble.d.ts.map +1 -0
  45. package/dist/components/message/PartsRenderer.d.ts +22 -0
  46. package/dist/components/message/PartsRenderer.d.ts.map +1 -0
  47. package/dist/components/message/WelcomeMessage.d.ts +16 -0
  48. package/dist/components/message/WelcomeMessage.d.ts.map +1 -0
  49. package/dist/components/message/parts/CollapsibleCard.d.ts +29 -0
  50. package/dist/components/message/parts/CollapsibleCard.d.ts.map +1 -0
  51. package/dist/components/message/parts/CompactPart.d.ts +14 -0
  52. package/dist/components/message/parts/CompactPart.d.ts.map +1 -0
  53. package/dist/components/message/parts/ContentCompressPart.d.ts +13 -0
  54. package/dist/components/message/parts/ContentCompressPart.d.ts.map +1 -0
  55. package/dist/components/message/parts/ErrorPart.d.ts +10 -0
  56. package/dist/components/message/parts/ErrorPart.d.ts.map +1 -0
  57. package/dist/components/message/parts/ExtensionPartHost.d.ts +15 -0
  58. package/dist/components/message/parts/ExtensionPartHost.d.ts.map +1 -0
  59. package/dist/components/message/parts/ImagePart.d.ts +9 -0
  60. package/dist/components/message/parts/ImagePart.d.ts.map +1 -0
  61. package/dist/components/message/parts/PlanPart.d.ts +11 -0
  62. package/dist/components/message/parts/PlanPart.d.ts.map +1 -0
  63. package/dist/components/message/parts/TavilySearchPart.d.ts +18 -0
  64. package/dist/components/message/parts/TavilySearchPart.d.ts.map +1 -0
  65. package/dist/components/message/parts/TextPart.d.ts +9 -0
  66. package/dist/components/message/parts/TextPart.d.ts.map +1 -0
  67. package/dist/components/message/parts/ThinkingPart.d.ts +12 -0
  68. package/dist/components/message/parts/ThinkingPart.d.ts.map +1 -0
  69. package/dist/components/message/parts/ToolCallPart.d.ts +35 -0
  70. package/dist/components/message/parts/ToolCallPart.d.ts.map +1 -0
  71. package/dist/components/message/parts/ZhipuSearchPart.d.ts +20 -0
  72. package/dist/components/message/parts/ZhipuSearchPart.d.ts.map +1 -0
  73. package/dist/components/message/parts/index.d.ts +20 -0
  74. package/dist/components/message/parts/index.d.ts.map +1 -0
  75. package/dist/components/message/parts/tool-call-display.d.ts +26 -0
  76. package/dist/components/message/parts/tool-call-display.d.ts.map +1 -0
  77. package/dist/components/message/parts/visual-predicate.d.ts +7 -0
  78. package/dist/components/message/parts/visual-predicate.d.ts.map +1 -0
  79. package/dist/components/message/parts/visual-render.d.ts +2 -0
  80. package/dist/components/message/parts/visual-render.d.ts.map +1 -0
  81. package/dist/components/message/parts/visual.d.ts +3 -0
  82. package/dist/components/message/parts/visual.d.ts.map +1 -0
  83. package/dist/components/message/welcome-types.d.ts +28 -0
  84. package/dist/components/message/welcome-types.d.ts.map +1 -0
  85. package/dist/context/AutoRunConfigContext.d.ts +8 -0
  86. package/dist/context/AutoRunConfigContext.d.ts.map +1 -0
  87. package/dist/context/ChatAdapterContext.d.ts +4 -0
  88. package/dist/context/ChatAdapterContext.d.ts.map +1 -0
  89. package/dist/context/ChatInputContext.d.ts +51 -0
  90. package/dist/context/ChatInputContext.d.ts.map +1 -0
  91. package/dist/context/PartLoaderContext.d.ts +25 -0
  92. package/dist/context/PartLoaderContext.d.ts.map +1 -0
  93. package/dist/context/RenderersContext.d.ts +22 -0
  94. package/dist/context/RenderersContext.d.ts.map +1 -0
  95. package/dist/hooks/chat/types.d.ts +109 -0
  96. package/dist/hooks/chat/types.d.ts.map +1 -0
  97. package/dist/hooks/chat/useCapabilityConfig.d.ts +35 -0
  98. package/dist/hooks/chat/useCapabilityConfig.d.ts.map +1 -0
  99. package/dist/hooks/chat/useMessageActions.d.ts +13 -0
  100. package/dist/hooks/chat/useMessageActions.d.ts.map +1 -0
  101. package/dist/hooks/chat/useMessageSender.d.ts +15 -0
  102. package/dist/hooks/chat/useMessageSender.d.ts.map +1 -0
  103. package/dist/hooks/chat/useSessionManager.d.ts +18 -0
  104. package/dist/hooks/chat/useSessionManager.d.ts.map +1 -0
  105. package/dist/hooks/chat/utils.d.ts +20 -0
  106. package/dist/hooks/chat/utils.d.ts.map +1 -0
  107. package/dist/hooks/useChat.d.ts +105 -0
  108. package/dist/hooks/useChat.d.ts.map +1 -0
  109. package/dist/hooks/useImageUpload.d.ts +56 -0
  110. package/dist/hooks/useImageUpload.d.ts.map +1 -0
  111. package/dist/hooks/useVoiceInput.d.ts +26 -0
  112. package/dist/hooks/useVoiceInput.d.ts.map +1 -0
  113. package/dist/hooks/useVoiceToTextInput.d.ts +22 -0
  114. package/dist/hooks/useVoiceToTextInput.d.ts.map +1 -0
  115. package/dist/icons.d.ts +2 -0
  116. package/dist/icons.d.ts.map +1 -0
  117. package/dist/index.d.ts +55 -684
  118. package/dist/index.d.ts.map +1 -0
  119. package/dist/index.js +34 -1
  120. package/dist/style.css +103 -0
  121. package/dist/types/index.d.ts +251 -0
  122. package/dist/types/index.d.ts.map +1 -0
  123. package/dist/utils/applyToolCallResult.d.ts +8 -0
  124. package/dist/utils/applyToolCallResult.d.ts.map +1 -0
  125. package/dist/utils/applyToolCallResult.test.d.ts +2 -0
  126. package/dist/utils/applyToolCallResult.test.d.ts.map +1 -0
  127. package/package.json +19 -11
  128. package/dist/KaTeX_AMS-Regular-CYEKBG2K.woff +0 -0
  129. package/dist/KaTeX_AMS-Regular-JKX5W2C4.ttf +0 -0
  130. package/dist/KaTeX_AMS-Regular-U6PRYMIZ.woff2 +0 -0
  131. package/dist/KaTeX_Caligraphic-Bold-5QL5CMTE.woff2 +0 -0
  132. package/dist/KaTeX_Caligraphic-Bold-WZ3QSGD3.woff +0 -0
  133. package/dist/KaTeX_Caligraphic-Bold-ZTS3R3HK.ttf +0 -0
  134. package/dist/KaTeX_Caligraphic-Regular-3LKEU76G.woff +0 -0
  135. package/dist/KaTeX_Caligraphic-Regular-A7XRTZ5Q.ttf +0 -0
  136. package/dist/KaTeX_Caligraphic-Regular-KX5MEWCF.woff2 +0 -0
  137. package/dist/KaTeX_Fraktur-Bold-2QVFK6NQ.woff2 +0 -0
  138. package/dist/KaTeX_Fraktur-Bold-T4SWXBMT.woff +0 -0
  139. package/dist/KaTeX_Fraktur-Bold-WGHVTYOR.ttf +0 -0
  140. package/dist/KaTeX_Fraktur-Regular-2PEIFJSJ.woff2 +0 -0
  141. package/dist/KaTeX_Fraktur-Regular-5U4OPH2X.ttf +0 -0
  142. package/dist/KaTeX_Fraktur-Regular-PQMHCIK6.woff +0 -0
  143. package/dist/KaTeX_Main-Bold-2GA4IZIN.woff +0 -0
  144. package/dist/KaTeX_Main-Bold-W5FBVCZM.ttf +0 -0
  145. package/dist/KaTeX_Main-Bold-YP5VVQRP.woff2 +0 -0
  146. package/dist/KaTeX_Main-BoldItalic-4P4C7HJH.woff +0 -0
  147. package/dist/KaTeX_Main-BoldItalic-N4V3DX7S.woff2 +0 -0
  148. package/dist/KaTeX_Main-BoldItalic-ODMLBJJQ.ttf +0 -0
  149. package/dist/KaTeX_Main-Italic-I43T2HSR.ttf +0 -0
  150. package/dist/KaTeX_Main-Italic-RELBIK7M.woff2 +0 -0
  151. package/dist/KaTeX_Main-Italic-SASNQFN2.woff +0 -0
  152. package/dist/KaTeX_Main-Regular-ARRPAO67.woff2 +0 -0
  153. package/dist/KaTeX_Main-Regular-P5I74A2A.woff +0 -0
  154. package/dist/KaTeX_Main-Regular-W74P5G27.ttf +0 -0
  155. package/dist/KaTeX_Math-BoldItalic-6EBV3DK5.woff +0 -0
  156. package/dist/KaTeX_Math-BoldItalic-K4WTGH3J.woff2 +0 -0
  157. package/dist/KaTeX_Math-BoldItalic-VB447A4D.ttf +0 -0
  158. package/dist/KaTeX_Math-Italic-6KGCHLFN.woff2 +0 -0
  159. package/dist/KaTeX_Math-Italic-KKK3USB2.woff +0 -0
  160. package/dist/KaTeX_Math-Italic-SON4MRCA.ttf +0 -0
  161. package/dist/KaTeX_SansSerif-Bold-RRNVJFFW.woff2 +0 -0
  162. package/dist/KaTeX_SansSerif-Bold-STQ6RXC7.ttf +0 -0
  163. package/dist/KaTeX_SansSerif-Bold-X5M5EMOD.woff +0 -0
  164. package/dist/KaTeX_SansSerif-Italic-HMPFTM52.woff2 +0 -0
  165. package/dist/KaTeX_SansSerif-Italic-PSN4QKYX.woff +0 -0
  166. package/dist/KaTeX_SansSerif-Italic-WTBAZBGY.ttf +0 -0
  167. package/dist/KaTeX_SansSerif-Regular-2TL3USAE.ttf +0 -0
  168. package/dist/KaTeX_SansSerif-Regular-OQCII6EP.woff +0 -0
  169. package/dist/KaTeX_SansSerif-Regular-XIQ62X4E.woff2 +0 -0
  170. package/dist/KaTeX_Script-Regular-72OLXYNA.ttf +0 -0
  171. package/dist/KaTeX_Script-Regular-A5IFOEBS.woff +0 -0
  172. package/dist/KaTeX_Script-Regular-APUWIHLP.woff2 +0 -0
  173. package/dist/KaTeX_Size1-Regular-4HRHTS65.woff +0 -0
  174. package/dist/KaTeX_Size1-Regular-5LRUTBFT.woff2 +0 -0
  175. package/dist/KaTeX_Size1-Regular-7K6AASVL.ttf +0 -0
  176. package/dist/KaTeX_Size2-Regular-222HN3GT.ttf +0 -0
  177. package/dist/KaTeX_Size2-Regular-K5ZHAIS6.woff +0 -0
  178. package/dist/KaTeX_Size2-Regular-LELKET5D.woff2 +0 -0
  179. package/dist/KaTeX_Size3-Regular-TLFPAHDE.woff +0 -0
  180. package/dist/KaTeX_Size3-Regular-UFCO6WCA.ttf +0 -0
  181. package/dist/KaTeX_Size3-Regular-WQRQ47UD.woff2 +0 -0
  182. package/dist/KaTeX_Size4-Regular-7PGNVPQK.ttf +0 -0
  183. package/dist/KaTeX_Size4-Regular-CDMV7U5C.woff2 +0 -0
  184. package/dist/KaTeX_Size4-Regular-PKMWZHNC.woff +0 -0
  185. package/dist/KaTeX_Typewriter-Regular-3F5K6SQ6.ttf +0 -0
  186. package/dist/KaTeX_Typewriter-Regular-MJMFSK64.woff +0 -0
  187. package/dist/KaTeX_Typewriter-Regular-VBYJ4NRC.woff2 +0 -0
  188. package/dist/index.css +0 -4017
package/dist/index.css DELETED
@@ -1,4017 +0,0 @@
1
- @import "@huyooo/ai-chat-shared/styles";
2
-
3
- /* src/styles.css */
4
- :root {
5
- color-scheme: light;
6
- --chat-bg: #f7f7f4;
7
- --chat-header-bg: var(--chat-bg);
8
- --chat-input-bg: #f0efeb;
9
- --chat-dropdown-bg: #f2f1ed;
10
- --chat-muted: #ebeae5;
11
- --chat-muted-hover: #e6e5e0;
12
- --chat-border: #26251e1a;
13
- --chat-text: #26251eeb;
14
- --chat-text-strong: #26251e;
15
- --chat-text-muted: #26251e99;
16
- --chat-primary: #54a9ff;
17
- --chat-primary-hover: #2f90ff;
18
- --chat-destructive: #cf2d56;
19
- --chat-destructive-hover: #b3003f;
20
- --chat-success: #1f8a65;
21
- --chat-code-bg: #f2f1ed;
22
- --chat-code-text: #26251eeb;
23
- --chat-scrollbar: rgba(38, 37, 30, 0.2);
24
- --chat-scrollbar-hover: rgba(38, 37, 30, 0.3);
25
- --chat-fab-bg: #ffffff;
26
- --chat-fab-bg-hover: var(--chat-input-bg);
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;
56
- }
57
- @media (prefers-color-scheme: dark) {
58
- :root {
59
- color-scheme: dark;
60
- --chat-bg: #1e1e1e;
61
- --chat-header-bg: #1e1e1e;
62
- --chat-input-bg: #2d2d2d;
63
- --chat-dropdown-bg: #252526;
64
- --chat-muted: #2d2d2d;
65
- --chat-muted-hover: #3c3c3c;
66
- --chat-border: #333;
67
- --chat-text: #ccc;
68
- --chat-text-strong: #fff;
69
- --chat-text-muted: #888;
70
- --chat-primary: #54a9ff;
71
- --chat-primary-hover: #2f90ff;
72
- --chat-destructive: #cf2d56;
73
- --chat-destructive-hover: #e33b67;
74
- --chat-success: #1f8a65;
75
- --chat-code-bg: #1f2937;
76
- --chat-code-text: #e5e7eb;
77
- --chat-scrollbar: rgba(255, 255, 255, 0.2);
78
- --chat-scrollbar-hover: rgba(255, 255, 255, 0.3);
79
- --chat-fab-bg: var(--chat-muted);
80
- --chat-fab-bg-hover: var(--chat-muted-hover);
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;
110
- }
111
- }
112
- :root[data-theme=light] {
113
- color-scheme: light;
114
- --chat-bg: #f7f7f4;
115
- --chat-header-bg: var(--chat-bg);
116
- --chat-input-bg: #f0efeb;
117
- --chat-dropdown-bg: #f2f1ed;
118
- --chat-muted: #ebeae5;
119
- --chat-muted-hover: #e6e5e0;
120
- --chat-border: #26251e1a;
121
- --chat-text: #26251eeb;
122
- --chat-text-strong: #26251e;
123
- --chat-text-muted: #26251e99;
124
- --chat-primary: #54a9ff;
125
- --chat-primary-hover: #2f90ff;
126
- --chat-destructive: #cf2d56;
127
- --chat-destructive-hover: #b3003f;
128
- --chat-success: #1f8a65;
129
- --chat-code-bg: #f2f1ed;
130
- --chat-code-text: #26251eeb;
131
- --chat-scrollbar: rgba(38, 37, 30, 0.2);
132
- --chat-scrollbar-hover: rgba(38, 37, 30, 0.3);
133
- --chat-fab-bg: #ffffff;
134
- --chat-fab-bg-hover: var(--chat-input-bg);
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;
164
- }
165
- :root[data-theme=dark] {
166
- color-scheme: dark;
167
- --chat-bg: #1e1e1e;
168
- --chat-header-bg: #1e1e1e;
169
- --chat-input-bg: #2d2d2d;
170
- --chat-dropdown-bg: #252526;
171
- --chat-muted: #2d2d2d;
172
- --chat-muted-hover: #3c3c3c;
173
- --chat-border: #333;
174
- --chat-text: #ccc;
175
- --chat-text-strong: #fff;
176
- --chat-text-muted: #888;
177
- --chat-primary: #54a9ff;
178
- --chat-primary-hover: #2f90ff;
179
- --chat-destructive: #cf2d56;
180
- --chat-destructive-hover: #e33b67;
181
- --chat-success: #1f8a65;
182
- --chat-code-bg: #1f2937;
183
- --chat-code-text: #e5e7eb;
184
- --chat-scrollbar: rgba(255, 255, 255, 0.2);
185
- --chat-scrollbar-hover: rgba(255, 255, 255, 0.3);
186
- --chat-fab-bg: var(--chat-muted);
187
- --chat-fab-bg-hover: var(--chat-muted-hover);
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;
217
- }
218
- .chat-scrollbar::-webkit-scrollbar {
219
- width: 6px;
220
- }
221
- .chat-scrollbar::-webkit-scrollbar-track {
222
- background: transparent;
223
- }
224
- .chat-scrollbar::-webkit-scrollbar-thumb {
225
- background: var(--chat-scrollbar, rgba(255, 255, 255, 0.2));
226
- border-radius: 3px;
227
- }
228
- .chat-scrollbar::-webkit-scrollbar-thumb:hover {
229
- background: var(--chat-scrollbar-hover, rgba(255, 255, 255, 0.3));
230
- }
231
- .chat-panel {
232
- display: flex;
233
- flex-direction: column;
234
- width: 100%;
235
- height: 100%;
236
- background: var(--chat-bg, #1e1e1e);
237
- overflow: hidden;
238
- }
239
- .messages-wrapper {
240
- flex: 1;
241
- min-height: 0;
242
- position: relative;
243
- display: flex;
244
- flex-direction: column;
245
- }
246
- .messages-container {
247
- flex: 1;
248
- min-height: 0;
249
- overflow-y: auto;
250
- padding: 12px;
251
- scroll-behavior: smooth;
252
- display: flex;
253
- flex-direction: column;
254
- gap: 8px;
255
- }
256
- .scroll-to-bottom-btn {
257
- position: absolute;
258
- bottom: 16px;
259
- right: 16px;
260
- display: flex;
261
- align-items: center;
262
- justify-content: center;
263
- width: 32px;
264
- height: 32px;
265
- border-radius: 50%;
266
- background: var(--chat-fab-bg, var(--chat-muted));
267
- border: 1px solid var(--chat-border);
268
- color: var(--chat-text-muted);
269
- cursor: pointer;
270
- transition: all 0.2s ease;
271
- box-shadow: var(--chat-fab-shadow, 0 2px 8px rgba(0, 0, 0, 0.3));
272
- z-index: 10;
273
- pointer-events: auto;
274
- }
275
- .scroll-to-bottom-btn:hover {
276
- background: var(--chat-fab-bg-hover, var(--chat-muted-hover));
277
- color: var(--chat-text);
278
- transform: scale(1.1);
279
- }
280
-
281
- /* src/components/header/ChatHeader.css */
282
- .chat-header {
283
- display: flex;
284
- align-items: center;
285
- height: 48px;
286
- padding: 0 12px;
287
- background: var(--chat-header-bg, #1e1e1e);
288
- border-bottom: 1px solid var(--chat-border, #333);
289
- flex-shrink: 0;
290
- }
291
- .tabs-container {
292
- display: flex;
293
- align-items: center;
294
- gap: 4px;
295
- flex: 1;
296
- overflow-x: auto;
297
- padding-right: 8px;
298
- }
299
- .tabs-container::-webkit-scrollbar {
300
- display: none;
301
- }
302
- .tab-item {
303
- position: relative;
304
- display: flex;
305
- align-items: center;
306
- padding: 4px 8px;
307
- background: transparent;
308
- border: none;
309
- border-radius: 4px;
310
- color: var(--chat-text-muted, #888);
311
- font-size: 14px;
312
- font-weight: 500;
313
- cursor: pointer;
314
- transition: all 0.15s;
315
- white-space: nowrap;
316
- max-width: 120px;
317
- flex-shrink: 0;
318
- }
319
- .tab-item:hover {
320
- color: var(--chat-text, #ccc);
321
- }
322
- .tab-item.active {
323
- background: var(--chat-muted, #3c3c3c);
324
- color: var(--chat-text, #fff);
325
- }
326
- .tab-title {
327
- overflow: hidden;
328
- text-overflow: ellipsis;
329
- white-space: nowrap;
330
- }
331
- .tab-close {
332
- position: absolute;
333
- right: 0;
334
- top: 0;
335
- bottom: 0;
336
- display: flex;
337
- align-items: center;
338
- justify-content: center;
339
- width: 32px;
340
- padding: 0;
341
- padding-left: 8px;
342
- background:
343
- linear-gradient(
344
- to right,
345
- transparent,
346
- var(--chat-bg, #1e1e1e) 50%);
347
- border: none;
348
- border-radius: 0 4px 4px 0;
349
- color: var(--chat-text-muted, #666);
350
- cursor: pointer;
351
- transition: all 0.15s;
352
- opacity: 0;
353
- }
354
- .tab-item:hover .tab-close {
355
- opacity: 1;
356
- }
357
- .tab-item.active .tab-close {
358
- background:
359
- linear-gradient(
360
- to right,
361
- transparent,
362
- var(--chat-muted, #3c3c3c) 50%);
363
- }
364
- .tab-close:hover {
365
- color: var(--chat-text, #fff);
366
- }
367
- .header-actions {
368
- display: flex;
369
- align-items: center;
370
- gap: 2px;
371
- flex-shrink: 0;
372
- }
373
- .header-actions .icon-btn {
374
- display: flex;
375
- align-items: center;
376
- justify-content: center;
377
- width: 24px;
378
- height: 24px;
379
- padding: 0;
380
- background: transparent;
381
- border: none;
382
- border-radius: 4px;
383
- color: var(--chat-text-muted, #888);
384
- cursor: pointer;
385
- transition: all 0.15s;
386
- }
387
- .header-actions .icon-btn:hover,
388
- .header-actions .icon-btn.active {
389
- color: var(--chat-text, #fff);
390
- }
391
- .header-actions .icon-btn.small {
392
- width: 20px;
393
- height: 20px;
394
- }
395
- .dropdown-container {
396
- position: relative;
397
- }
398
- .dropdown-panel {
399
- position: absolute;
400
- top: 100%;
401
- right: 0;
402
- margin-top: 4px;
403
- background: var(--chat-dropdown-bg, #252526);
404
- border: 1px solid rgba(255, 255, 255, 0.1);
405
- border-radius: 8px;
406
- box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
407
- z-index: 100;
408
- overflow: hidden;
409
- }
410
- .history-panel {
411
- width: 360px;
412
- }
413
- .more-panel {
414
- width: 200px;
415
- padding: 4px;
416
- display: flex;
417
- flex-direction: column;
418
- gap: 2px;
419
- }
420
- .panel-header {
421
- display: flex;
422
- align-items: center;
423
- justify-content: space-between;
424
- padding: 10px 12px;
425
- border-bottom: 1px solid var(--chat-border, #333);
426
- font-size: 14px;
427
- font-weight: 500;
428
- color: var(--chat-text-muted, #888);
429
- }
430
- .panel-content {
431
- max-height: 400px;
432
- overflow-y: auto;
433
- }
434
- .history-group-label {
435
- padding: 8px 12px 4px;
436
- font-size: 14px;
437
- font-weight: 500;
438
- color: var(--chat-text-muted, #666);
439
- }
440
- .history-group-label:not(:first-child) {
441
- border-top: 1px solid var(--chat-border, #333);
442
- margin-top: 4px;
443
- padding-top: 12px;
444
- }
445
- .history-item {
446
- display: flex;
447
- align-items: center;
448
- gap: 4px;
449
- padding: 6px 12px;
450
- cursor: pointer;
451
- transition: background 0.15s;
452
- }
453
- .history-item:hover {
454
- background: rgba(255, 255, 255, 0.08);
455
- }
456
- .history-item.active {
457
- background: rgba(255, 255, 255, 0.1);
458
- }
459
- .history-title {
460
- flex: 1;
461
- font-size: 14px;
462
- color: var(--chat-text, #ccc);
463
- overflow: hidden;
464
- text-overflow: ellipsis;
465
- white-space: nowrap;
466
- }
467
- .history-time {
468
- font-size: 14px;
469
- color: var(--chat-text-muted, #666);
470
- flex-shrink: 0;
471
- margin-right: 10px;
472
- }
473
- .history-actions {
474
- display: flex;
475
- align-items: center;
476
- gap: 2px;
477
- flex-shrink: 0;
478
- opacity: 0;
479
- transition: opacity 0.15s;
480
- }
481
- .history-item:hover .history-actions {
482
- opacity: 1;
483
- }
484
- .history-action-btn {
485
- display: flex;
486
- align-items: center;
487
- justify-content: center;
488
- width: 28px;
489
- height: 28px;
490
- padding: 0;
491
- background: transparent;
492
- border: none;
493
- border-radius: 6px;
494
- color: var(--chat-text-muted, #666);
495
- cursor: pointer;
496
- transition: all 0.15s;
497
- }
498
- .history-action-btn:hover {
499
- color: var(--chat-text, #fff);
500
- }
501
- .history-action-btn.delete:hover {
502
- color: var(--chat-destructive, #ef4444);
503
- }
504
- .empty-state {
505
- padding: 20px;
506
- text-align: center;
507
- font-size: 14px;
508
- color: var(--chat-text-muted, #666);
509
- }
510
- .menu-item {
511
- display: flex;
512
- align-items: center;
513
- gap: 8px;
514
- width: 100%;
515
- padding: 8px 10px;
516
- border: none;
517
- background: transparent;
518
- border-radius: 4px;
519
- font-size: 14px;
520
- color: var(--chat-text-muted, #999);
521
- cursor: pointer;
522
- transition: all 0.15s;
523
- text-align: left;
524
- }
525
- .menu-item:hover {
526
- background: rgba(255, 255, 255, 0.08);
527
- color: var(--chat-text, #ccc);
528
- }
529
- .menu-divider {
530
- height: 1px;
531
- background: var(--chat-border, #333);
532
- margin: 4px 0;
533
- }
534
-
535
- /* src/components/message/WelcomeMessage.css */
536
- .welcome-message {
537
- display: flex;
538
- flex-direction: column;
539
- align-items: center;
540
- justify-content: center;
541
- gap: 28px;
542
- padding: 40px 24px;
543
- max-width: 640px;
544
- margin: 0 auto;
545
- min-height: 100%;
546
- }
547
- .welcome-header {
548
- display: flex;
549
- flex-direction: column;
550
- align-items: center;
551
- text-align: center;
552
- gap: 8px;
553
- }
554
- .welcome-title-row {
555
- display: flex;
556
- align-items: center;
557
- gap: 10px;
558
- }
559
- .welcome-icon {
560
- color: var(--chat-text-muted, #888);
561
- }
562
- .welcome-title {
563
- font-size: 24px;
564
- font-weight: 600;
565
- color: var(--chat-text, #fff);
566
- margin: 0;
567
- }
568
- .welcome-subtitle {
569
- font-size: 13px;
570
- color: var(--chat-text-muted, #888);
571
- margin: 0;
572
- }
573
- .section-header {
574
- display: flex;
575
- align-items: center;
576
- gap: 6px;
577
- margin-bottom: 12px;
578
- padding-left: 2px;
579
- }
580
- .section-icon {
581
- color: var(--chat-text-muted, #666);
582
- }
583
- .section-title {
584
- font-size: 12px;
585
- font-weight: 500;
586
- color: var(--chat-text-muted, #888);
587
- text-transform: uppercase;
588
- letter-spacing: 0.5px;
589
- }
590
- .features-section {
591
- width: 100%;
592
- }
593
- .features-list {
594
- display: flex;
595
- flex-wrap: wrap;
596
- gap: 8px;
597
- justify-content: center;
598
- }
599
- .feature-tag {
600
- display: inline-flex;
601
- align-items: center;
602
- gap: 6px;
603
- padding: 6px 12px;
604
- background: var(--chat-muted, #2a2a2a);
605
- border: 1px solid var(--chat-border, #3a3a3a);
606
- border-radius: 20px;
607
- font-size: 12px;
608
- color: var(--chat-text, #ccc);
609
- transition: all 0.15s;
610
- }
611
- .feature-tag:hover {
612
- background: rgba(255, 255, 255, 0.08);
613
- border-color: rgba(255, 255, 255, 0.15);
614
- }
615
- .feature-icon {
616
- color: var(--chat-text-muted, #888);
617
- }
618
- .tasks-section {
619
- width: 100%;
620
- }
621
- .tasks-grid {
622
- display: grid;
623
- gap: 10px;
624
- }
625
- .tasks-single {
626
- grid-template-columns: minmax(200px, 320px);
627
- justify-content: center;
628
- }
629
- .tasks-two {
630
- grid-template-columns: repeat(2, 1fr);
631
- }
632
- .tasks-three {
633
- grid-template-columns: repeat(3, 1fr);
634
- }
635
- .tasks-multi {
636
- grid-template-columns: repeat(2, 1fr);
637
- }
638
- .task-card {
639
- display: flex;
640
- align-items: center;
641
- gap: 10px;
642
- padding: 12px 14px;
643
- background: var(--chat-muted, #2a2a2a);
644
- border: 1px solid var(--chat-border, #3a3a3a);
645
- border-radius: 10px;
646
- color: var(--chat-text, #ccc);
647
- text-align: left;
648
- cursor: pointer;
649
- transition: all 0.2s;
650
- }
651
- .task-card:hover {
652
- background: rgba(255, 255, 255, 0.08);
653
- border-color: rgba(59, 130, 246, 0.5);
654
- transform: translateY(-1px);
655
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
656
- }
657
- .task-icon {
658
- flex-shrink: 0;
659
- width: 32px;
660
- height: 32px;
661
- display: flex;
662
- align-items: center;
663
- justify-content: center;
664
- background: rgba(59, 130, 246, 0.15);
665
- border-radius: 8px;
666
- color: #60a5fa;
667
- }
668
- .task-card:hover .task-icon {
669
- background: rgba(59, 130, 246, 0.25);
670
- }
671
- .task-content {
672
- flex: 1;
673
- min-width: 0;
674
- }
675
- .task-name {
676
- font-size: 13px;
677
- font-weight: 500;
678
- color: var(--chat-text, #fff);
679
- margin-bottom: 2px;
680
- }
681
- .task-desc {
682
- font-size: 11px;
683
- color: var(--chat-text-muted, #888);
684
- white-space: nowrap;
685
- overflow: hidden;
686
- text-overflow: ellipsis;
687
- }
688
- .task-arrow {
689
- flex-shrink: 0;
690
- color: var(--chat-text-muted, #666);
691
- opacity: 0;
692
- transform: translateX(-4px);
693
- transition: all 0.2s;
694
- }
695
- .task-card:hover .task-arrow {
696
- opacity: 1;
697
- transform: translateX(0);
698
- }
699
- @media (max-width: 540px) {
700
- .welcome-message {
701
- padding: 32px 16px;
702
- gap: 24px;
703
- }
704
- .welcome-title {
705
- font-size: 24px;
706
- }
707
- .tasks-two,
708
- .tasks-three,
709
- .tasks-multi {
710
- grid-template-columns: 1fr;
711
- }
712
- .task-arrow {
713
- display: none;
714
- }
715
- }
716
-
717
- /* src/components/message/MessageBubble.css */
718
- .message-bubble {
719
- animation: fadeIn 0.2s ease;
720
- }
721
- @keyframes fadeIn {
722
- from {
723
- opacity: 0;
724
- transform: translateY(4px);
725
- }
726
- to {
727
- opacity: 1;
728
- transform: translateY(0);
729
- }
730
- }
731
- .message-bubble.user {
732
- width: 100%;
733
- }
734
- .user-content {
735
- width: 100%;
736
- background: var(--chat-muted, #2d2d2d);
737
- color: var(--chat-text, #ccc);
738
- padding: 12px;
739
- border-radius: 12px;
740
- border: 1px solid var(--chat-border, #444);
741
- }
742
- .user-text {
743
- font-size: 14px;
744
- line-height: 1.5;
745
- white-space: pre-wrap;
746
- word-break: break-word;
747
- }
748
- .user-images {
749
- display: flex;
750
- gap: 8px;
751
- margin-top: 8px;
752
- flex-wrap: wrap;
753
- }
754
- .user-image {
755
- width: 80px;
756
- height: 80px;
757
- object-fit: cover;
758
- border-radius: 8px;
759
- cursor: pointer;
760
- transition: transform 0.15s;
761
- }
762
- .user-image:hover {
763
- transform: scale(1.05);
764
- }
765
- .message-bubble.assistant {
766
- position: relative;
767
- }
768
- .assistant-content {
769
- max-width: 100%;
770
- }
771
- .loading-indicator {
772
- position: relative;
773
- display: flex;
774
- align-items: center;
775
- padding: 10px 16px;
776
- background: var(--chat-muted, #2a2a2a);
777
- border-radius: 8px;
778
- overflow: hidden;
779
- box-sizing: border-box;
780
- }
781
- .loading-indicator.has-content-above {
782
- margin-top: 8px;
783
- }
784
- .loading-text {
785
- font-size: 13px;
786
- color: var(--chat-text-muted, #888);
787
- position: relative;
788
- z-index: 1;
789
- }
790
- .loading-shimmer {
791
- position: absolute;
792
- top: 0;
793
- left: -100%;
794
- width: 100%;
795
- height: 100%;
796
- background:
797
- linear-gradient(
798
- 90deg,
799
- transparent 0%,
800
- rgba(255, 255, 255, 0.08) 50%,
801
- transparent 100%);
802
- animation: shimmer 1.5s ease-in-out infinite;
803
- }
804
- @keyframes shimmer {
805
- 0% {
806
- left: -100%;
807
- }
808
- 100% {
809
- left: 100%;
810
- }
811
- }
812
- .message-actions {
813
- display: flex;
814
- align-items: center;
815
- justify-content: space-between;
816
- margin-top: 8px;
817
- }
818
- .message-meta {
819
- display: flex;
820
- align-items: center;
821
- gap: 6px;
822
- }
823
- .model-name {
824
- font-size: 11px;
825
- color: var(--chat-text-muted, #888);
826
- background: var(--chat-muted, #2a2a2a);
827
- padding: 2px 8px;
828
- border-radius: 10px;
829
- border: 1px solid var(--chat-border, #333);
830
- }
831
- .mode-badge {
832
- font-size: 10px;
833
- color: var(--chat-text-muted, #888);
834
- background: var(--chat-muted, #2a2a2a);
835
- padding: 2px 6px;
836
- border-radius: 10px;
837
- border: 1px solid var(--chat-border, #333);
838
- }
839
- .token-usage,
840
- .response-duration {
841
- display: inline-flex;
842
- align-items: center;
843
- gap: 3px;
844
- font-size: 11px;
845
- color: var(--chat-text-muted, #888);
846
- cursor: default;
847
- }
848
- .token-usage {
849
- position: relative;
850
- }
851
- .token-usage:hover .usage-tooltip {
852
- opacity: 1;
853
- visibility: visible;
854
- transform: translateX(-50%) translateY(0);
855
- }
856
- .usage-tooltip {
857
- position: absolute;
858
- bottom: calc(100% + 6px);
859
- left: 50%;
860
- transform: translateX(-50%) translateY(4px);
861
- display: flex;
862
- flex-direction: column;
863
- gap: 2px;
864
- padding: 6px 10px;
865
- background: var(--chat-bg, #1e1e1e);
866
- border: 1px solid var(--chat-border, #444);
867
- border-radius: 6px;
868
- font-size: 11px;
869
- color: var(--chat-text-muted, #aaa);
870
- white-space: nowrap;
871
- opacity: 0;
872
- visibility: hidden;
873
- transition:
874
- opacity 0.15s,
875
- visibility 0.15s,
876
- transform 0.15s;
877
- pointer-events: none;
878
- z-index: 10;
879
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
880
- }
881
- .usage-tooltip::after {
882
- content: "";
883
- position: absolute;
884
- top: 100%;
885
- left: 50%;
886
- transform: translateX(-50%);
887
- border: 4px solid transparent;
888
- border-top-color: var(--chat-border, #444);
889
- }
890
- .usage-tooltip-total {
891
- border-top: 1px solid var(--chat-border, #333);
892
- padding-top: 2px;
893
- margin-top: 1px;
894
- color: var(--chat-text, #ccc);
895
- font-weight: 500;
896
- }
897
- .action-buttons {
898
- display: flex;
899
- align-items: center;
900
- gap: 4px;
901
- }
902
- .action-btn {
903
- display: flex;
904
- align-items: center;
905
- justify-content: center;
906
- width: 24px;
907
- height: 24px;
908
- border: none;
909
- background: transparent;
910
- border-radius: 4px;
911
- color: var(--chat-text-muted, #666);
912
- cursor: pointer;
913
- transition: all 0.15s;
914
- }
915
- .action-btn:hover {
916
- background: var(--chat-muted, #3c3c3c);
917
- color: var(--chat-text, #ccc);
918
- }
919
- .action-btn.copied {
920
- color: #22c55e;
921
- }
922
- .message-time {
923
- font-size: 12px;
924
- color: var(--chat-text-muted, #666);
925
- }
926
- .user-time {
927
- text-align: right;
928
- margin-top: 8px;
929
- }
930
- .assistant-time {
931
- margin-right: 8px;
932
- }
933
-
934
- /* src/components/message/parts/CollapsibleCard.css */
935
- .collapsible-card {
936
- border-radius: 8px;
937
- background: var(--chat-muted, #2a2a2a);
938
- border: 1px solid var(--chat-border, #333);
939
- overflow: hidden;
940
- }
941
- .card-header {
942
- display: flex;
943
- align-items: center;
944
- justify-content: space-between;
945
- gap: 8px;
946
- padding: 8px 12px;
947
- user-select: none;
948
- }
949
- .card-header-left {
950
- display: flex;
951
- align-items: center;
952
- gap: 8px;
953
- flex: 1;
954
- }
955
- .card-header-left.clickable {
956
- cursor: pointer;
957
- }
958
- .card-header-right {
959
- display: flex;
960
- align-items: center;
961
- gap: 4px;
962
- flex-shrink: 0;
963
- }
964
- .card-icon {
965
- display: flex;
966
- align-items: center;
967
- justify-content: center;
968
- flex-shrink: 0;
969
- }
970
- .spinning {
971
- animation: spin 1s linear infinite;
972
- }
973
- @keyframes spin {
974
- from {
975
- transform: rotate(0deg);
976
- }
977
- to {
978
- transform: rotate(360deg);
979
- }
980
- }
981
- .card-title {
982
- font-size: 13px;
983
- color: var(--chat-text-muted, #888);
984
- }
985
- .card-subtitle {
986
- font-size: 12px;
987
- color: var(--chat-text-muted, #666);
988
- }
989
- .card-chevron {
990
- color: var(--chat-text-muted, #666);
991
- transition: transform 0.2s;
992
- flex-shrink: 0;
993
- cursor: pointer;
994
- }
995
- .collapsible-card.expanded .card-chevron {
996
- transform: rotate(180deg);
997
- }
998
- .card-content {
999
- padding: 0 12px 12px;
1000
- min-width: 0;
1001
- overflow: hidden;
1002
- }
1003
-
1004
- /* ../../node_modules/katex/dist/katex.min.css */
1005
- @font-face {
1006
- font-display: block;
1007
- font-family: KaTeX_AMS;
1008
- font-style: normal;
1009
- font-weight: 400;
1010
- src:
1011
- url("./KaTeX_AMS-Regular-U6PRYMIZ.woff2") format("woff2"),
1012
- url("./KaTeX_AMS-Regular-CYEKBG2K.woff") format("woff"),
1013
- url("./KaTeX_AMS-Regular-JKX5W2C4.ttf") format("truetype");
1014
- }
1015
- @font-face {
1016
- font-display: block;
1017
- font-family: KaTeX_Caligraphic;
1018
- font-style: normal;
1019
- font-weight: 700;
1020
- src:
1021
- url("./KaTeX_Caligraphic-Bold-5QL5CMTE.woff2") format("woff2"),
1022
- url("./KaTeX_Caligraphic-Bold-WZ3QSGD3.woff") format("woff"),
1023
- url("./KaTeX_Caligraphic-Bold-ZTS3R3HK.ttf") format("truetype");
1024
- }
1025
- @font-face {
1026
- font-display: block;
1027
- font-family: KaTeX_Caligraphic;
1028
- font-style: normal;
1029
- font-weight: 400;
1030
- src:
1031
- url("./KaTeX_Caligraphic-Regular-KX5MEWCF.woff2") format("woff2"),
1032
- url("./KaTeX_Caligraphic-Regular-3LKEU76G.woff") format("woff"),
1033
- url("./KaTeX_Caligraphic-Regular-A7XRTZ5Q.ttf") format("truetype");
1034
- }
1035
- @font-face {
1036
- font-display: block;
1037
- font-family: KaTeX_Fraktur;
1038
- font-style: normal;
1039
- font-weight: 700;
1040
- src:
1041
- url("./KaTeX_Fraktur-Bold-2QVFK6NQ.woff2") format("woff2"),
1042
- url("./KaTeX_Fraktur-Bold-T4SWXBMT.woff") format("woff"),
1043
- url("./KaTeX_Fraktur-Bold-WGHVTYOR.ttf") format("truetype");
1044
- }
1045
- @font-face {
1046
- font-display: block;
1047
- font-family: KaTeX_Fraktur;
1048
- font-style: normal;
1049
- font-weight: 400;
1050
- src:
1051
- url("./KaTeX_Fraktur-Regular-2PEIFJSJ.woff2") format("woff2"),
1052
- url("./KaTeX_Fraktur-Regular-PQMHCIK6.woff") format("woff"),
1053
- url("./KaTeX_Fraktur-Regular-5U4OPH2X.ttf") format("truetype");
1054
- }
1055
- @font-face {
1056
- font-display: block;
1057
- font-family: KaTeX_Main;
1058
- font-style: normal;
1059
- font-weight: 700;
1060
- src:
1061
- url("./KaTeX_Main-Bold-YP5VVQRP.woff2") format("woff2"),
1062
- url("./KaTeX_Main-Bold-2GA4IZIN.woff") format("woff"),
1063
- url("./KaTeX_Main-Bold-W5FBVCZM.ttf") format("truetype");
1064
- }
1065
- @font-face {
1066
- font-display: block;
1067
- font-family: KaTeX_Main;
1068
- font-style: italic;
1069
- font-weight: 700;
1070
- src:
1071
- url("./KaTeX_Main-BoldItalic-N4V3DX7S.woff2") format("woff2"),
1072
- url("./KaTeX_Main-BoldItalic-4P4C7HJH.woff") format("woff"),
1073
- url("./KaTeX_Main-BoldItalic-ODMLBJJQ.ttf") format("truetype");
1074
- }
1075
- @font-face {
1076
- font-display: block;
1077
- font-family: KaTeX_Main;
1078
- font-style: italic;
1079
- font-weight: 400;
1080
- src:
1081
- url("./KaTeX_Main-Italic-RELBIK7M.woff2") format("woff2"),
1082
- url("./KaTeX_Main-Italic-SASNQFN2.woff") format("woff"),
1083
- url("./KaTeX_Main-Italic-I43T2HSR.ttf") format("truetype");
1084
- }
1085
- @font-face {
1086
- font-display: block;
1087
- font-family: KaTeX_Main;
1088
- font-style: normal;
1089
- font-weight: 400;
1090
- src:
1091
- url("./KaTeX_Main-Regular-ARRPAO67.woff2") format("woff2"),
1092
- url("./KaTeX_Main-Regular-P5I74A2A.woff") format("woff"),
1093
- url("./KaTeX_Main-Regular-W74P5G27.ttf") format("truetype");
1094
- }
1095
- @font-face {
1096
- font-display: block;
1097
- font-family: KaTeX_Math;
1098
- font-style: italic;
1099
- font-weight: 700;
1100
- src:
1101
- url("./KaTeX_Math-BoldItalic-K4WTGH3J.woff2") format("woff2"),
1102
- url("./KaTeX_Math-BoldItalic-6EBV3DK5.woff") format("woff"),
1103
- url("./KaTeX_Math-BoldItalic-VB447A4D.ttf") format("truetype");
1104
- }
1105
- @font-face {
1106
- font-display: block;
1107
- font-family: KaTeX_Math;
1108
- font-style: italic;
1109
- font-weight: 400;
1110
- src:
1111
- url("./KaTeX_Math-Italic-6KGCHLFN.woff2") format("woff2"),
1112
- url("./KaTeX_Math-Italic-KKK3USB2.woff") format("woff"),
1113
- url("./KaTeX_Math-Italic-SON4MRCA.ttf") format("truetype");
1114
- }
1115
- @font-face {
1116
- font-display: block;
1117
- font-family: "KaTeX_SansSerif";
1118
- font-style: normal;
1119
- font-weight: 700;
1120
- src:
1121
- url("./KaTeX_SansSerif-Bold-RRNVJFFW.woff2") format("woff2"),
1122
- url("./KaTeX_SansSerif-Bold-X5M5EMOD.woff") format("woff"),
1123
- url("./KaTeX_SansSerif-Bold-STQ6RXC7.ttf") format("truetype");
1124
- }
1125
- @font-face {
1126
- font-display: block;
1127
- font-family: "KaTeX_SansSerif";
1128
- font-style: italic;
1129
- font-weight: 400;
1130
- src:
1131
- url("./KaTeX_SansSerif-Italic-HMPFTM52.woff2") format("woff2"),
1132
- url("./KaTeX_SansSerif-Italic-PSN4QKYX.woff") format("woff"),
1133
- url("./KaTeX_SansSerif-Italic-WTBAZBGY.ttf") format("truetype");
1134
- }
1135
- @font-face {
1136
- font-display: block;
1137
- font-family: "KaTeX_SansSerif";
1138
- font-style: normal;
1139
- font-weight: 400;
1140
- src:
1141
- url("./KaTeX_SansSerif-Regular-XIQ62X4E.woff2") format("woff2"),
1142
- url("./KaTeX_SansSerif-Regular-OQCII6EP.woff") format("woff"),
1143
- url("./KaTeX_SansSerif-Regular-2TL3USAE.ttf") format("truetype");
1144
- }
1145
- @font-face {
1146
- font-display: block;
1147
- font-family: KaTeX_Script;
1148
- font-style: normal;
1149
- font-weight: 400;
1150
- src:
1151
- url("./KaTeX_Script-Regular-APUWIHLP.woff2") format("woff2"),
1152
- url("./KaTeX_Script-Regular-A5IFOEBS.woff") format("woff"),
1153
- url("./KaTeX_Script-Regular-72OLXYNA.ttf") format("truetype");
1154
- }
1155
- @font-face {
1156
- font-display: block;
1157
- font-family: KaTeX_Size1;
1158
- font-style: normal;
1159
- font-weight: 400;
1160
- src:
1161
- url("./KaTeX_Size1-Regular-5LRUTBFT.woff2") format("woff2"),
1162
- url("./KaTeX_Size1-Regular-4HRHTS65.woff") format("woff"),
1163
- url("./KaTeX_Size1-Regular-7K6AASVL.ttf") format("truetype");
1164
- }
1165
- @font-face {
1166
- font-display: block;
1167
- font-family: KaTeX_Size2;
1168
- font-style: normal;
1169
- font-weight: 400;
1170
- src:
1171
- url("./KaTeX_Size2-Regular-LELKET5D.woff2") format("woff2"),
1172
- url("./KaTeX_Size2-Regular-K5ZHAIS6.woff") format("woff"),
1173
- url("./KaTeX_Size2-Regular-222HN3GT.ttf") format("truetype");
1174
- }
1175
- @font-face {
1176
- font-display: block;
1177
- font-family: KaTeX_Size3;
1178
- font-style: normal;
1179
- font-weight: 400;
1180
- src:
1181
- url("./KaTeX_Size3-Regular-WQRQ47UD.woff2") format("woff2"),
1182
- url("./KaTeX_Size3-Regular-TLFPAHDE.woff") format("woff"),
1183
- url("./KaTeX_Size3-Regular-UFCO6WCA.ttf") format("truetype");
1184
- }
1185
- @font-face {
1186
- font-display: block;
1187
- font-family: KaTeX_Size4;
1188
- font-style: normal;
1189
- font-weight: 400;
1190
- src:
1191
- url("./KaTeX_Size4-Regular-CDMV7U5C.woff2") format("woff2"),
1192
- url("./KaTeX_Size4-Regular-PKMWZHNC.woff") format("woff"),
1193
- url("./KaTeX_Size4-Regular-7PGNVPQK.ttf") format("truetype");
1194
- }
1195
- @font-face {
1196
- font-display: block;
1197
- font-family: KaTeX_Typewriter;
1198
- font-style: normal;
1199
- font-weight: 400;
1200
- src:
1201
- url("./KaTeX_Typewriter-Regular-VBYJ4NRC.woff2") format("woff2"),
1202
- url("./KaTeX_Typewriter-Regular-MJMFSK64.woff") format("woff"),
1203
- url("./KaTeX_Typewriter-Regular-3F5K6SQ6.ttf") format("truetype");
1204
- }
1205
- .katex {
1206
- font:
1207
- normal 1.21em KaTeX_Main,
1208
- Times New Roman,
1209
- serif;
1210
- line-height: 1.2;
1211
- text-indent: 0;
1212
- text-rendering: auto;
1213
- }
1214
- .katex * {
1215
- -ms-high-contrast-adjust: none !important;
1216
- border-color: currentColor;
1217
- }
1218
- .katex .katex-version:after {
1219
- content: "0.16.27";
1220
- }
1221
- .katex .katex-mathml {
1222
- clip: rect(1px, 1px, 1px, 1px);
1223
- border: 0;
1224
- height: 1px;
1225
- overflow: hidden;
1226
- padding: 0;
1227
- position: absolute;
1228
- width: 1px;
1229
- }
1230
- .katex .katex-html > .newline {
1231
- display: block;
1232
- }
1233
- .katex .base {
1234
- position: relative;
1235
- white-space: nowrap;
1236
- width: -webkit-min-content;
1237
- width: -moz-min-content;
1238
- width: min-content;
1239
- }
1240
- .katex .base,
1241
- .katex .strut {
1242
- display: inline-block;
1243
- }
1244
- .katex .textbf {
1245
- font-weight: 700;
1246
- }
1247
- .katex .textit {
1248
- font-style: italic;
1249
- }
1250
- .katex .textrm {
1251
- font-family: KaTeX_Main;
1252
- }
1253
- .katex .textsf {
1254
- font-family: KaTeX_SansSerif;
1255
- }
1256
- .katex .texttt {
1257
- font-family: KaTeX_Typewriter;
1258
- }
1259
- .katex .mathnormal {
1260
- font-family: KaTeX_Math;
1261
- font-style: italic;
1262
- }
1263
- .katex .mathit {
1264
- font-family: KaTeX_Main;
1265
- font-style: italic;
1266
- }
1267
- .katex .mathrm {
1268
- font-style: normal;
1269
- }
1270
- .katex .mathbf {
1271
- font-family: KaTeX_Main;
1272
- font-weight: 700;
1273
- }
1274
- .katex .boldsymbol {
1275
- font-family: KaTeX_Math;
1276
- font-style: italic;
1277
- font-weight: 700;
1278
- }
1279
- .katex .amsrm,
1280
- .katex .mathbb,
1281
- .katex .textbb {
1282
- font-family: KaTeX_AMS;
1283
- }
1284
- .katex .mathcal {
1285
- font-family: KaTeX_Caligraphic;
1286
- }
1287
- .katex .mathfrak,
1288
- .katex .textfrak {
1289
- font-family: KaTeX_Fraktur;
1290
- }
1291
- .katex .mathboldfrak,
1292
- .katex .textboldfrak {
1293
- font-family: KaTeX_Fraktur;
1294
- font-weight: 700;
1295
- }
1296
- .katex .mathtt {
1297
- font-family: KaTeX_Typewriter;
1298
- }
1299
- .katex .mathscr,
1300
- .katex .textscr {
1301
- font-family: KaTeX_Script;
1302
- }
1303
- .katex .mathsf,
1304
- .katex .textsf {
1305
- font-family: KaTeX_SansSerif;
1306
- }
1307
- .katex .mathboldsf,
1308
- .katex .textboldsf {
1309
- font-family: KaTeX_SansSerif;
1310
- font-weight: 700;
1311
- }
1312
- .katex .mathitsf,
1313
- .katex .mathsfit,
1314
- .katex .textitsf {
1315
- font-family: KaTeX_SansSerif;
1316
- font-style: italic;
1317
- }
1318
- .katex .mainrm {
1319
- font-family: KaTeX_Main;
1320
- font-style: normal;
1321
- }
1322
- .katex .vlist-t {
1323
- border-collapse: collapse;
1324
- display: inline-table;
1325
- table-layout: fixed;
1326
- }
1327
- .katex .vlist-r {
1328
- display: table-row;
1329
- }
1330
- .katex .vlist {
1331
- display: table-cell;
1332
- position: relative;
1333
- vertical-align: bottom;
1334
- }
1335
- .katex .vlist > span {
1336
- display: block;
1337
- height: 0;
1338
- position: relative;
1339
- }
1340
- .katex .vlist > span > span {
1341
- display: inline-block;
1342
- }
1343
- .katex .vlist > span > .pstrut {
1344
- overflow: hidden;
1345
- width: 0;
1346
- }
1347
- .katex .vlist-t2 {
1348
- margin-right: -2px;
1349
- }
1350
- .katex .vlist-s {
1351
- display: table-cell;
1352
- font-size: 1px;
1353
- min-width: 2px;
1354
- vertical-align: bottom;
1355
- width: 2px;
1356
- }
1357
- .katex .vbox {
1358
- align-items: baseline;
1359
- display: inline-flex;
1360
- flex-direction: column;
1361
- }
1362
- .katex .hbox {
1363
- width: 100%;
1364
- }
1365
- .katex .hbox,
1366
- .katex .thinbox {
1367
- display: inline-flex;
1368
- flex-direction: row;
1369
- }
1370
- .katex .thinbox {
1371
- max-width: 0;
1372
- width: 0;
1373
- }
1374
- .katex .msupsub {
1375
- text-align: left;
1376
- }
1377
- .katex .mfrac > span > span {
1378
- text-align: center;
1379
- }
1380
- .katex .mfrac .frac-line {
1381
- border-bottom-style: solid;
1382
- display: inline-block;
1383
- width: 100%;
1384
- }
1385
- .katex .hdashline,
1386
- .katex .hline,
1387
- .katex .mfrac .frac-line,
1388
- .katex .overline .overline-line,
1389
- .katex .rule,
1390
- .katex .underline .underline-line {
1391
- min-height: 1px;
1392
- }
1393
- .katex .mspace {
1394
- display: inline-block;
1395
- }
1396
- .katex .clap,
1397
- .katex .llap,
1398
- .katex .rlap {
1399
- position: relative;
1400
- width: 0;
1401
- }
1402
- .katex .clap > .inner,
1403
- .katex .llap > .inner,
1404
- .katex .rlap > .inner {
1405
- position: absolute;
1406
- }
1407
- .katex .clap > .fix,
1408
- .katex .llap > .fix,
1409
- .katex .rlap > .fix {
1410
- display: inline-block;
1411
- }
1412
- .katex .llap > .inner {
1413
- right: 0;
1414
- }
1415
- .katex .clap > .inner,
1416
- .katex .rlap > .inner {
1417
- left: 0;
1418
- }
1419
- .katex .clap > .inner > span {
1420
- margin-left: -50%;
1421
- margin-right: 50%;
1422
- }
1423
- .katex .rule {
1424
- border: 0 solid;
1425
- display: inline-block;
1426
- position: relative;
1427
- }
1428
- .katex .hline,
1429
- .katex .overline .overline-line,
1430
- .katex .underline .underline-line {
1431
- border-bottom-style: solid;
1432
- display: inline-block;
1433
- width: 100%;
1434
- }
1435
- .katex .hdashline {
1436
- border-bottom-style: dashed;
1437
- display: inline-block;
1438
- width: 100%;
1439
- }
1440
- .katex .sqrt > .root {
1441
- margin-left: .2777777778em;
1442
- margin-right: -.5555555556em;
1443
- }
1444
- .katex .fontsize-ensurer.reset-size1.size1,
1445
- .katex .sizing.reset-size1.size1 {
1446
- font-size: 1em;
1447
- }
1448
- .katex .fontsize-ensurer.reset-size1.size2,
1449
- .katex .sizing.reset-size1.size2 {
1450
- font-size: 1.2em;
1451
- }
1452
- .katex .fontsize-ensurer.reset-size1.size3,
1453
- .katex .sizing.reset-size1.size3 {
1454
- font-size: 1.4em;
1455
- }
1456
- .katex .fontsize-ensurer.reset-size1.size4,
1457
- .katex .sizing.reset-size1.size4 {
1458
- font-size: 1.6em;
1459
- }
1460
- .katex .fontsize-ensurer.reset-size1.size5,
1461
- .katex .sizing.reset-size1.size5 {
1462
- font-size: 1.8em;
1463
- }
1464
- .katex .fontsize-ensurer.reset-size1.size6,
1465
- .katex .sizing.reset-size1.size6 {
1466
- font-size: 2em;
1467
- }
1468
- .katex .fontsize-ensurer.reset-size1.size7,
1469
- .katex .sizing.reset-size1.size7 {
1470
- font-size: 2.4em;
1471
- }
1472
- .katex .fontsize-ensurer.reset-size1.size8,
1473
- .katex .sizing.reset-size1.size8 {
1474
- font-size: 2.88em;
1475
- }
1476
- .katex .fontsize-ensurer.reset-size1.size9,
1477
- .katex .sizing.reset-size1.size9 {
1478
- font-size: 3.456em;
1479
- }
1480
- .katex .fontsize-ensurer.reset-size1.size10,
1481
- .katex .sizing.reset-size1.size10 {
1482
- font-size: 4.148em;
1483
- }
1484
- .katex .fontsize-ensurer.reset-size1.size11,
1485
- .katex .sizing.reset-size1.size11 {
1486
- font-size: 4.976em;
1487
- }
1488
- .katex .fontsize-ensurer.reset-size2.size1,
1489
- .katex .sizing.reset-size2.size1 {
1490
- font-size: .8333333333em;
1491
- }
1492
- .katex .fontsize-ensurer.reset-size2.size2,
1493
- .katex .sizing.reset-size2.size2 {
1494
- font-size: 1em;
1495
- }
1496
- .katex .fontsize-ensurer.reset-size2.size3,
1497
- .katex .sizing.reset-size2.size3 {
1498
- font-size: 1.1666666667em;
1499
- }
1500
- .katex .fontsize-ensurer.reset-size2.size4,
1501
- .katex .sizing.reset-size2.size4 {
1502
- font-size: 1.3333333333em;
1503
- }
1504
- .katex .fontsize-ensurer.reset-size2.size5,
1505
- .katex .sizing.reset-size2.size5 {
1506
- font-size: 1.5em;
1507
- }
1508
- .katex .fontsize-ensurer.reset-size2.size6,
1509
- .katex .sizing.reset-size2.size6 {
1510
- font-size: 1.6666666667em;
1511
- }
1512
- .katex .fontsize-ensurer.reset-size2.size7,
1513
- .katex .sizing.reset-size2.size7 {
1514
- font-size: 2em;
1515
- }
1516
- .katex .fontsize-ensurer.reset-size2.size8,
1517
- .katex .sizing.reset-size2.size8 {
1518
- font-size: 2.4em;
1519
- }
1520
- .katex .fontsize-ensurer.reset-size2.size9,
1521
- .katex .sizing.reset-size2.size9 {
1522
- font-size: 2.88em;
1523
- }
1524
- .katex .fontsize-ensurer.reset-size2.size10,
1525
- .katex .sizing.reset-size2.size10 {
1526
- font-size: 3.4566666667em;
1527
- }
1528
- .katex .fontsize-ensurer.reset-size2.size11,
1529
- .katex .sizing.reset-size2.size11 {
1530
- font-size: 4.1466666667em;
1531
- }
1532
- .katex .fontsize-ensurer.reset-size3.size1,
1533
- .katex .sizing.reset-size3.size1 {
1534
- font-size: .7142857143em;
1535
- }
1536
- .katex .fontsize-ensurer.reset-size3.size2,
1537
- .katex .sizing.reset-size3.size2 {
1538
- font-size: .8571428571em;
1539
- }
1540
- .katex .fontsize-ensurer.reset-size3.size3,
1541
- .katex .sizing.reset-size3.size3 {
1542
- font-size: 1em;
1543
- }
1544
- .katex .fontsize-ensurer.reset-size3.size4,
1545
- .katex .sizing.reset-size3.size4 {
1546
- font-size: 1.1428571429em;
1547
- }
1548
- .katex .fontsize-ensurer.reset-size3.size5,
1549
- .katex .sizing.reset-size3.size5 {
1550
- font-size: 1.2857142857em;
1551
- }
1552
- .katex .fontsize-ensurer.reset-size3.size6,
1553
- .katex .sizing.reset-size3.size6 {
1554
- font-size: 1.4285714286em;
1555
- }
1556
- .katex .fontsize-ensurer.reset-size3.size7,
1557
- .katex .sizing.reset-size3.size7 {
1558
- font-size: 1.7142857143em;
1559
- }
1560
- .katex .fontsize-ensurer.reset-size3.size8,
1561
- .katex .sizing.reset-size3.size8 {
1562
- font-size: 2.0571428571em;
1563
- }
1564
- .katex .fontsize-ensurer.reset-size3.size9,
1565
- .katex .sizing.reset-size3.size9 {
1566
- font-size: 2.4685714286em;
1567
- }
1568
- .katex .fontsize-ensurer.reset-size3.size10,
1569
- .katex .sizing.reset-size3.size10 {
1570
- font-size: 2.9628571429em;
1571
- }
1572
- .katex .fontsize-ensurer.reset-size3.size11,
1573
- .katex .sizing.reset-size3.size11 {
1574
- font-size: 3.5542857143em;
1575
- }
1576
- .katex .fontsize-ensurer.reset-size4.size1,
1577
- .katex .sizing.reset-size4.size1 {
1578
- font-size: .625em;
1579
- }
1580
- .katex .fontsize-ensurer.reset-size4.size2,
1581
- .katex .sizing.reset-size4.size2 {
1582
- font-size: .75em;
1583
- }
1584
- .katex .fontsize-ensurer.reset-size4.size3,
1585
- .katex .sizing.reset-size4.size3 {
1586
- font-size: .875em;
1587
- }
1588
- .katex .fontsize-ensurer.reset-size4.size4,
1589
- .katex .sizing.reset-size4.size4 {
1590
- font-size: 1em;
1591
- }
1592
- .katex .fontsize-ensurer.reset-size4.size5,
1593
- .katex .sizing.reset-size4.size5 {
1594
- font-size: 1.125em;
1595
- }
1596
- .katex .fontsize-ensurer.reset-size4.size6,
1597
- .katex .sizing.reset-size4.size6 {
1598
- font-size: 1.25em;
1599
- }
1600
- .katex .fontsize-ensurer.reset-size4.size7,
1601
- .katex .sizing.reset-size4.size7 {
1602
- font-size: 1.5em;
1603
- }
1604
- .katex .fontsize-ensurer.reset-size4.size8,
1605
- .katex .sizing.reset-size4.size8 {
1606
- font-size: 1.8em;
1607
- }
1608
- .katex .fontsize-ensurer.reset-size4.size9,
1609
- .katex .sizing.reset-size4.size9 {
1610
- font-size: 2.16em;
1611
- }
1612
- .katex .fontsize-ensurer.reset-size4.size10,
1613
- .katex .sizing.reset-size4.size10 {
1614
- font-size: 2.5925em;
1615
- }
1616
- .katex .fontsize-ensurer.reset-size4.size11,
1617
- .katex .sizing.reset-size4.size11 {
1618
- font-size: 3.11em;
1619
- }
1620
- .katex .fontsize-ensurer.reset-size5.size1,
1621
- .katex .sizing.reset-size5.size1 {
1622
- font-size: .5555555556em;
1623
- }
1624
- .katex .fontsize-ensurer.reset-size5.size2,
1625
- .katex .sizing.reset-size5.size2 {
1626
- font-size: .6666666667em;
1627
- }
1628
- .katex .fontsize-ensurer.reset-size5.size3,
1629
- .katex .sizing.reset-size5.size3 {
1630
- font-size: .7777777778em;
1631
- }
1632
- .katex .fontsize-ensurer.reset-size5.size4,
1633
- .katex .sizing.reset-size5.size4 {
1634
- font-size: .8888888889em;
1635
- }
1636
- .katex .fontsize-ensurer.reset-size5.size5,
1637
- .katex .sizing.reset-size5.size5 {
1638
- font-size: 1em;
1639
- }
1640
- .katex .fontsize-ensurer.reset-size5.size6,
1641
- .katex .sizing.reset-size5.size6 {
1642
- font-size: 1.1111111111em;
1643
- }
1644
- .katex .fontsize-ensurer.reset-size5.size7,
1645
- .katex .sizing.reset-size5.size7 {
1646
- font-size: 1.3333333333em;
1647
- }
1648
- .katex .fontsize-ensurer.reset-size5.size8,
1649
- .katex .sizing.reset-size5.size8 {
1650
- font-size: 1.6em;
1651
- }
1652
- .katex .fontsize-ensurer.reset-size5.size9,
1653
- .katex .sizing.reset-size5.size9 {
1654
- font-size: 1.92em;
1655
- }
1656
- .katex .fontsize-ensurer.reset-size5.size10,
1657
- .katex .sizing.reset-size5.size10 {
1658
- font-size: 2.3044444444em;
1659
- }
1660
- .katex .fontsize-ensurer.reset-size5.size11,
1661
- .katex .sizing.reset-size5.size11 {
1662
- font-size: 2.7644444444em;
1663
- }
1664
- .katex .fontsize-ensurer.reset-size6.size1,
1665
- .katex .sizing.reset-size6.size1 {
1666
- font-size: .5em;
1667
- }
1668
- .katex .fontsize-ensurer.reset-size6.size2,
1669
- .katex .sizing.reset-size6.size2 {
1670
- font-size: .6em;
1671
- }
1672
- .katex .fontsize-ensurer.reset-size6.size3,
1673
- .katex .sizing.reset-size6.size3 {
1674
- font-size: .7em;
1675
- }
1676
- .katex .fontsize-ensurer.reset-size6.size4,
1677
- .katex .sizing.reset-size6.size4 {
1678
- font-size: .8em;
1679
- }
1680
- .katex .fontsize-ensurer.reset-size6.size5,
1681
- .katex .sizing.reset-size6.size5 {
1682
- font-size: .9em;
1683
- }
1684
- .katex .fontsize-ensurer.reset-size6.size6,
1685
- .katex .sizing.reset-size6.size6 {
1686
- font-size: 1em;
1687
- }
1688
- .katex .fontsize-ensurer.reset-size6.size7,
1689
- .katex .sizing.reset-size6.size7 {
1690
- font-size: 1.2em;
1691
- }
1692
- .katex .fontsize-ensurer.reset-size6.size8,
1693
- .katex .sizing.reset-size6.size8 {
1694
- font-size: 1.44em;
1695
- }
1696
- .katex .fontsize-ensurer.reset-size6.size9,
1697
- .katex .sizing.reset-size6.size9 {
1698
- font-size: 1.728em;
1699
- }
1700
- .katex .fontsize-ensurer.reset-size6.size10,
1701
- .katex .sizing.reset-size6.size10 {
1702
- font-size: 2.074em;
1703
- }
1704
- .katex .fontsize-ensurer.reset-size6.size11,
1705
- .katex .sizing.reset-size6.size11 {
1706
- font-size: 2.488em;
1707
- }
1708
- .katex .fontsize-ensurer.reset-size7.size1,
1709
- .katex .sizing.reset-size7.size1 {
1710
- font-size: .4166666667em;
1711
- }
1712
- .katex .fontsize-ensurer.reset-size7.size2,
1713
- .katex .sizing.reset-size7.size2 {
1714
- font-size: .5em;
1715
- }
1716
- .katex .fontsize-ensurer.reset-size7.size3,
1717
- .katex .sizing.reset-size7.size3 {
1718
- font-size: .5833333333em;
1719
- }
1720
- .katex .fontsize-ensurer.reset-size7.size4,
1721
- .katex .sizing.reset-size7.size4 {
1722
- font-size: .6666666667em;
1723
- }
1724
- .katex .fontsize-ensurer.reset-size7.size5,
1725
- .katex .sizing.reset-size7.size5 {
1726
- font-size: .75em;
1727
- }
1728
- .katex .fontsize-ensurer.reset-size7.size6,
1729
- .katex .sizing.reset-size7.size6 {
1730
- font-size: .8333333333em;
1731
- }
1732
- .katex .fontsize-ensurer.reset-size7.size7,
1733
- .katex .sizing.reset-size7.size7 {
1734
- font-size: 1em;
1735
- }
1736
- .katex .fontsize-ensurer.reset-size7.size8,
1737
- .katex .sizing.reset-size7.size8 {
1738
- font-size: 1.2em;
1739
- }
1740
- .katex .fontsize-ensurer.reset-size7.size9,
1741
- .katex .sizing.reset-size7.size9 {
1742
- font-size: 1.44em;
1743
- }
1744
- .katex .fontsize-ensurer.reset-size7.size10,
1745
- .katex .sizing.reset-size7.size10 {
1746
- font-size: 1.7283333333em;
1747
- }
1748
- .katex .fontsize-ensurer.reset-size7.size11,
1749
- .katex .sizing.reset-size7.size11 {
1750
- font-size: 2.0733333333em;
1751
- }
1752
- .katex .fontsize-ensurer.reset-size8.size1,
1753
- .katex .sizing.reset-size8.size1 {
1754
- font-size: .3472222222em;
1755
- }
1756
- .katex .fontsize-ensurer.reset-size8.size2,
1757
- .katex .sizing.reset-size8.size2 {
1758
- font-size: .4166666667em;
1759
- }
1760
- .katex .fontsize-ensurer.reset-size8.size3,
1761
- .katex .sizing.reset-size8.size3 {
1762
- font-size: .4861111111em;
1763
- }
1764
- .katex .fontsize-ensurer.reset-size8.size4,
1765
- .katex .sizing.reset-size8.size4 {
1766
- font-size: .5555555556em;
1767
- }
1768
- .katex .fontsize-ensurer.reset-size8.size5,
1769
- .katex .sizing.reset-size8.size5 {
1770
- font-size: .625em;
1771
- }
1772
- .katex .fontsize-ensurer.reset-size8.size6,
1773
- .katex .sizing.reset-size8.size6 {
1774
- font-size: .6944444444em;
1775
- }
1776
- .katex .fontsize-ensurer.reset-size8.size7,
1777
- .katex .sizing.reset-size8.size7 {
1778
- font-size: .8333333333em;
1779
- }
1780
- .katex .fontsize-ensurer.reset-size8.size8,
1781
- .katex .sizing.reset-size8.size8 {
1782
- font-size: 1em;
1783
- }
1784
- .katex .fontsize-ensurer.reset-size8.size9,
1785
- .katex .sizing.reset-size8.size9 {
1786
- font-size: 1.2em;
1787
- }
1788
- .katex .fontsize-ensurer.reset-size8.size10,
1789
- .katex .sizing.reset-size8.size10 {
1790
- font-size: 1.4402777778em;
1791
- }
1792
- .katex .fontsize-ensurer.reset-size8.size11,
1793
- .katex .sizing.reset-size8.size11 {
1794
- font-size: 1.7277777778em;
1795
- }
1796
- .katex .fontsize-ensurer.reset-size9.size1,
1797
- .katex .sizing.reset-size9.size1 {
1798
- font-size: .2893518519em;
1799
- }
1800
- .katex .fontsize-ensurer.reset-size9.size2,
1801
- .katex .sizing.reset-size9.size2 {
1802
- font-size: .3472222222em;
1803
- }
1804
- .katex .fontsize-ensurer.reset-size9.size3,
1805
- .katex .sizing.reset-size9.size3 {
1806
- font-size: .4050925926em;
1807
- }
1808
- .katex .fontsize-ensurer.reset-size9.size4,
1809
- .katex .sizing.reset-size9.size4 {
1810
- font-size: .462962963em;
1811
- }
1812
- .katex .fontsize-ensurer.reset-size9.size5,
1813
- .katex .sizing.reset-size9.size5 {
1814
- font-size: .5208333333em;
1815
- }
1816
- .katex .fontsize-ensurer.reset-size9.size6,
1817
- .katex .sizing.reset-size9.size6 {
1818
- font-size: .5787037037em;
1819
- }
1820
- .katex .fontsize-ensurer.reset-size9.size7,
1821
- .katex .sizing.reset-size9.size7 {
1822
- font-size: .6944444444em;
1823
- }
1824
- .katex .fontsize-ensurer.reset-size9.size8,
1825
- .katex .sizing.reset-size9.size8 {
1826
- font-size: .8333333333em;
1827
- }
1828
- .katex .fontsize-ensurer.reset-size9.size9,
1829
- .katex .sizing.reset-size9.size9 {
1830
- font-size: 1em;
1831
- }
1832
- .katex .fontsize-ensurer.reset-size9.size10,
1833
- .katex .sizing.reset-size9.size10 {
1834
- font-size: 1.2002314815em;
1835
- }
1836
- .katex .fontsize-ensurer.reset-size9.size11,
1837
- .katex .sizing.reset-size9.size11 {
1838
- font-size: 1.4398148148em;
1839
- }
1840
- .katex .fontsize-ensurer.reset-size10.size1,
1841
- .katex .sizing.reset-size10.size1 {
1842
- font-size: .2410800386em;
1843
- }
1844
- .katex .fontsize-ensurer.reset-size10.size2,
1845
- .katex .sizing.reset-size10.size2 {
1846
- font-size: .2892960463em;
1847
- }
1848
- .katex .fontsize-ensurer.reset-size10.size3,
1849
- .katex .sizing.reset-size10.size3 {
1850
- font-size: .337512054em;
1851
- }
1852
- .katex .fontsize-ensurer.reset-size10.size4,
1853
- .katex .sizing.reset-size10.size4 {
1854
- font-size: .3857280617em;
1855
- }
1856
- .katex .fontsize-ensurer.reset-size10.size5,
1857
- .katex .sizing.reset-size10.size5 {
1858
- font-size: .4339440694em;
1859
- }
1860
- .katex .fontsize-ensurer.reset-size10.size6,
1861
- .katex .sizing.reset-size10.size6 {
1862
- font-size: .4821600771em;
1863
- }
1864
- .katex .fontsize-ensurer.reset-size10.size7,
1865
- .katex .sizing.reset-size10.size7 {
1866
- font-size: .5785920926em;
1867
- }
1868
- .katex .fontsize-ensurer.reset-size10.size8,
1869
- .katex .sizing.reset-size10.size8 {
1870
- font-size: .6943105111em;
1871
- }
1872
- .katex .fontsize-ensurer.reset-size10.size9,
1873
- .katex .sizing.reset-size10.size9 {
1874
- font-size: .8331726133em;
1875
- }
1876
- .katex .fontsize-ensurer.reset-size10.size10,
1877
- .katex .sizing.reset-size10.size10 {
1878
- font-size: 1em;
1879
- }
1880
- .katex .fontsize-ensurer.reset-size10.size11,
1881
- .katex .sizing.reset-size10.size11 {
1882
- font-size: 1.1996142719em;
1883
- }
1884
- .katex .fontsize-ensurer.reset-size11.size1,
1885
- .katex .sizing.reset-size11.size1 {
1886
- font-size: .2009646302em;
1887
- }
1888
- .katex .fontsize-ensurer.reset-size11.size2,
1889
- .katex .sizing.reset-size11.size2 {
1890
- font-size: .2411575563em;
1891
- }
1892
- .katex .fontsize-ensurer.reset-size11.size3,
1893
- .katex .sizing.reset-size11.size3 {
1894
- font-size: .2813504823em;
1895
- }
1896
- .katex .fontsize-ensurer.reset-size11.size4,
1897
- .katex .sizing.reset-size11.size4 {
1898
- font-size: .3215434084em;
1899
- }
1900
- .katex .fontsize-ensurer.reset-size11.size5,
1901
- .katex .sizing.reset-size11.size5 {
1902
- font-size: .3617363344em;
1903
- }
1904
- .katex .fontsize-ensurer.reset-size11.size6,
1905
- .katex .sizing.reset-size11.size6 {
1906
- font-size: .4019292605em;
1907
- }
1908
- .katex .fontsize-ensurer.reset-size11.size7,
1909
- .katex .sizing.reset-size11.size7 {
1910
- font-size: .4823151125em;
1911
- }
1912
- .katex .fontsize-ensurer.reset-size11.size8,
1913
- .katex .sizing.reset-size11.size8 {
1914
- font-size: .578778135em;
1915
- }
1916
- .katex .fontsize-ensurer.reset-size11.size9,
1917
- .katex .sizing.reset-size11.size9 {
1918
- font-size: .6945337621em;
1919
- }
1920
- .katex .fontsize-ensurer.reset-size11.size10,
1921
- .katex .sizing.reset-size11.size10 {
1922
- font-size: .8336012862em;
1923
- }
1924
- .katex .fontsize-ensurer.reset-size11.size11,
1925
- .katex .sizing.reset-size11.size11 {
1926
- font-size: 1em;
1927
- }
1928
- .katex .delimsizing.size1 {
1929
- font-family: KaTeX_Size1;
1930
- }
1931
- .katex .delimsizing.size2 {
1932
- font-family: KaTeX_Size2;
1933
- }
1934
- .katex .delimsizing.size3 {
1935
- font-family: KaTeX_Size3;
1936
- }
1937
- .katex .delimsizing.size4 {
1938
- font-family: KaTeX_Size4;
1939
- }
1940
- .katex .delimsizing.mult .delim-size1 > span {
1941
- font-family: KaTeX_Size1;
1942
- }
1943
- .katex .delimsizing.mult .delim-size4 > span {
1944
- font-family: KaTeX_Size4;
1945
- }
1946
- .katex .nulldelimiter {
1947
- display: inline-block;
1948
- width: .12em;
1949
- }
1950
- .katex .delimcenter,
1951
- .katex .op-symbol {
1952
- position: relative;
1953
- }
1954
- .katex .op-symbol.small-op {
1955
- font-family: KaTeX_Size1;
1956
- }
1957
- .katex .op-symbol.large-op {
1958
- font-family: KaTeX_Size2;
1959
- }
1960
- .katex .accent > .vlist-t,
1961
- .katex .op-limits > .vlist-t {
1962
- text-align: center;
1963
- }
1964
- .katex .accent .accent-body {
1965
- position: relative;
1966
- }
1967
- .katex .accent .accent-body:not(.accent-full) {
1968
- width: 0;
1969
- }
1970
- .katex .overlay {
1971
- display: block;
1972
- }
1973
- .katex .mtable .vertical-separator {
1974
- display: inline-block;
1975
- min-width: 1px;
1976
- }
1977
- .katex .mtable .arraycolsep {
1978
- display: inline-block;
1979
- }
1980
- .katex .mtable .col-align-c > .vlist-t {
1981
- text-align: center;
1982
- }
1983
- .katex .mtable .col-align-l > .vlist-t {
1984
- text-align: left;
1985
- }
1986
- .katex .mtable .col-align-r > .vlist-t {
1987
- text-align: right;
1988
- }
1989
- .katex .svg-align {
1990
- text-align: left;
1991
- }
1992
- .katex svg {
1993
- fill: currentColor;
1994
- stroke: currentColor;
1995
- fill-rule: nonzero;
1996
- fill-opacity: 1;
1997
- stroke-width: 1;
1998
- stroke-linecap: butt;
1999
- stroke-linejoin: miter;
2000
- stroke-miterlimit: 4;
2001
- stroke-dasharray: none;
2002
- stroke-dashoffset: 0;
2003
- stroke-opacity: 1;
2004
- display: block;
2005
- height: inherit;
2006
- position: absolute;
2007
- width: 100%;
2008
- }
2009
- .katex svg path {
2010
- stroke: none;
2011
- }
2012
- .katex img {
2013
- border-style: none;
2014
- max-height: none;
2015
- max-width: none;
2016
- min-height: 0;
2017
- min-width: 0;
2018
- }
2019
- .katex .stretchy {
2020
- display: block;
2021
- overflow: hidden;
2022
- position: relative;
2023
- width: 100%;
2024
- }
2025
- .katex .stretchy:after,
2026
- .katex .stretchy:before {
2027
- content: "";
2028
- }
2029
- .katex .hide-tail {
2030
- overflow: hidden;
2031
- position: relative;
2032
- width: 100%;
2033
- }
2034
- .katex .halfarrow-left {
2035
- left: 0;
2036
- overflow: hidden;
2037
- position: absolute;
2038
- width: 50.2%;
2039
- }
2040
- .katex .halfarrow-right {
2041
- overflow: hidden;
2042
- position: absolute;
2043
- right: 0;
2044
- width: 50.2%;
2045
- }
2046
- .katex .brace-left {
2047
- left: 0;
2048
- overflow: hidden;
2049
- position: absolute;
2050
- width: 25.1%;
2051
- }
2052
- .katex .brace-center {
2053
- left: 25%;
2054
- overflow: hidden;
2055
- position: absolute;
2056
- width: 50%;
2057
- }
2058
- .katex .brace-right {
2059
- overflow: hidden;
2060
- position: absolute;
2061
- right: 0;
2062
- width: 25.1%;
2063
- }
2064
- .katex .x-arrow-pad {
2065
- padding: 0 .5em;
2066
- }
2067
- .katex .cd-arrow-pad {
2068
- padding: 0 .55556em 0 .27778em;
2069
- }
2070
- .katex .mover,
2071
- .katex .munder,
2072
- .katex .x-arrow {
2073
- text-align: center;
2074
- }
2075
- .katex .boxpad {
2076
- padding: 0 .3em;
2077
- }
2078
- .katex .fbox,
2079
- .katex .fcolorbox {
2080
- border: .04em solid;
2081
- box-sizing: border-box;
2082
- }
2083
- .katex .cancel-pad {
2084
- padding: 0 .2em;
2085
- }
2086
- .katex .cancel-lap {
2087
- margin-left: -.2em;
2088
- margin-right: -.2em;
2089
- }
2090
- .katex .sout {
2091
- border-bottom-style: solid;
2092
- border-bottom-width: .08em;
2093
- }
2094
- .katex .angl {
2095
- border-right: .049em solid;
2096
- border-top: .049em solid;
2097
- box-sizing: border-box;
2098
- margin-right: .03889em;
2099
- }
2100
- .katex .anglpad {
2101
- padding: 0 .03889em;
2102
- }
2103
- .katex .eqn-num:before {
2104
- content: "(" counter(katexEqnNo) ")";
2105
- counter-increment: katexEqnNo;
2106
- }
2107
- .katex .mml-eqn-num:before {
2108
- content: "(" counter(mmlEqnNo) ")";
2109
- counter-increment: mmlEqnNo;
2110
- }
2111
- .katex .mtr-glue {
2112
- width: 50%;
2113
- }
2114
- .katex .cd-vert-arrow {
2115
- display: inline-block;
2116
- position: relative;
2117
- }
2118
- .katex .cd-label-left {
2119
- display: inline-block;
2120
- position: absolute;
2121
- right: calc(50% + .3em);
2122
- text-align: left;
2123
- }
2124
- .katex .cd-label-right {
2125
- display: inline-block;
2126
- left: calc(50% + .3em);
2127
- position: absolute;
2128
- text-align: right;
2129
- }
2130
- .katex-display {
2131
- display: block;
2132
- margin: 1em 0;
2133
- text-align: center;
2134
- }
2135
- .katex-display > .katex {
2136
- display: block;
2137
- text-align: center;
2138
- white-space: nowrap;
2139
- }
2140
- .katex-display > .katex > .katex-html {
2141
- display: block;
2142
- position: relative;
2143
- }
2144
- .katex-display > .katex > .katex-html > .tag {
2145
- position: absolute;
2146
- right: 0;
2147
- }
2148
- .katex-display.leqno > .katex > .katex-html > .tag {
2149
- left: 0;
2150
- right: auto;
2151
- }
2152
- .katex-display.fleqn > .katex {
2153
- padding-left: 2em;
2154
- text-align: left;
2155
- }
2156
- body {
2157
- counter-reset: katexEqnNo mmlEqnNo;
2158
- }
2159
-
2160
- /* src/components/message/parts/TextPart.css */
2161
- .text-part {
2162
- max-width: 100%;
2163
- }
2164
- .text-block {
2165
- font-size: 14px;
2166
- line-height: 1.75;
2167
- color: var(--chat-text, #e5e7eb);
2168
- word-break: break-word;
2169
- letter-spacing: 0.01em;
2170
- }
2171
- .text-block p {
2172
- margin: 0.75em 0;
2173
- }
2174
- .text-block p:first-child {
2175
- margin-top: 0;
2176
- }
2177
- .text-block p:last-child {
2178
- margin-bottom: 0;
2179
- }
2180
- .text-block h1 {
2181
- font-size: 1.5em;
2182
- font-weight: 700;
2183
- margin: 1.5em 0 0.75em;
2184
- padding-bottom: 0.4em;
2185
- border-bottom: 1px solid var(--chat-border, rgba(255, 255, 255, 0.1));
2186
- color: var(--chat-text-strong, #fff);
2187
- letter-spacing: -0.02em;
2188
- }
2189
- .text-block h2 {
2190
- font-size: 1.3em;
2191
- font-weight: 600;
2192
- margin: 1.25em 0 0.6em;
2193
- padding-bottom: 0.3em;
2194
- border-bottom: 1px solid var(--chat-border, rgba(255, 255, 255, 0.08));
2195
- color: var(--chat-text-strong, #fff);
2196
- letter-spacing: -0.01em;
2197
- }
2198
- .text-block h3 {
2199
- font-size: 1.15em;
2200
- font-weight: 600;
2201
- margin: 1em 0 0.5em;
2202
- color: var(--chat-text-strong, #fff);
2203
- }
2204
- .text-block h4,
2205
- .text-block h5,
2206
- .text-block h6 {
2207
- font-size: 1em;
2208
- font-weight: 600;
2209
- margin: 0.8em 0 0.4em;
2210
- color: var(--chat-text, #e5e7eb);
2211
- }
2212
- .text-block h1:first-child,
2213
- .text-block h2:first-child,
2214
- .text-block h3:first-child {
2215
- margin-top: 0;
2216
- }
2217
- .text-block ul,
2218
- .text-block ol {
2219
- margin: 0.75em 0;
2220
- padding-left: 1.5em;
2221
- }
2222
- .text-block li {
2223
- margin: 0.4em 0;
2224
- line-height: 1.6;
2225
- }
2226
- .text-block li::marker {
2227
- color: var(--chat-text-muted, #9ca3af);
2228
- }
2229
- .text-block li ul,
2230
- .text-block li ol {
2231
- margin: 0.25em 0;
2232
- }
2233
- .text-block .markdown-task-item {
2234
- list-style: none;
2235
- margin-left: -1.5em;
2236
- padding-left: 0;
2237
- }
2238
- .text-block .markdown-task-checkbox {
2239
- display: inline-block;
2240
- width: 1.2em;
2241
- margin-right: 0.4em;
2242
- font-family:
2243
- "Monaco",
2244
- "Menlo",
2245
- monospace;
2246
- font-size: 0.85em;
2247
- color: var(--chat-accent, #60a5fa);
2248
- }
2249
- .text-block a {
2250
- color: var(--chat-accent, #60a5fa);
2251
- text-decoration: none;
2252
- background-image: linear-gradient(var(--chat-accent, #60a5fa), var(--chat-accent, #60a5fa));
2253
- background-size: 0% 1px;
2254
- background-position: 0 100%;
2255
- background-repeat: no-repeat;
2256
- transition: background-size 0.25s ease-out;
2257
- }
2258
- .text-block a:hover {
2259
- background-size: 100% 1px;
2260
- }
2261
- .text-block strong {
2262
- font-weight: 600;
2263
- color: var(--chat-text-strong, #fff);
2264
- }
2265
- .text-block em {
2266
- font-style: italic;
2267
- color: var(--chat-text, #e5e7eb);
2268
- }
2269
- .text-block s,
2270
- .text-block del {
2271
- text-decoration: line-through;
2272
- color: var(--chat-text-muted, #9ca3af);
2273
- }
2274
- .text-block code {
2275
- font-family:
2276
- "JetBrains Mono",
2277
- "Fira Code",
2278
- "Monaco",
2279
- "Menlo",
2280
- "Consolas",
2281
- monospace;
2282
- font-size: 0.875em;
2283
- background: var(--chat-inline-code-bg, rgba(110, 118, 129, 0.25));
2284
- padding: 0.2em 0.45em;
2285
- border-radius: 6px;
2286
- color: var(--chat-inline-code-text, #f472b6);
2287
- font-weight: 500;
2288
- }
2289
- .text-block blockquote {
2290
- margin: 1em 0;
2291
- padding: 0.75em 1em;
2292
- border-left: 4px solid var(--chat-accent, #60a5fa);
2293
- background: var(--chat-blockquote-bg, rgba(96, 165, 250, 0.08));
2294
- border-radius: 0 8px 8px 0;
2295
- color: var(--chat-text-muted, #d1d5db);
2296
- }
2297
- .text-block blockquote p {
2298
- margin: 0.25em 0;
2299
- }
2300
- .text-block blockquote p:first-child {
2301
- margin-top: 0;
2302
- }
2303
- .text-block blockquote p:last-child {
2304
- margin-bottom: 0;
2305
- }
2306
- .text-block hr {
2307
- border: none;
2308
- height: 1px;
2309
- margin: 1.5em 0;
2310
- background:
2311
- linear-gradient(
2312
- 90deg,
2313
- transparent,
2314
- var(--chat-border, rgba(255, 255, 255, 0.15)) 20%,
2315
- var(--chat-border, rgba(255, 255, 255, 0.15)) 80%,
2316
- transparent);
2317
- }
2318
- .text-block .markdown-table-wrapper {
2319
- margin: 1em 0;
2320
- overflow-x: auto;
2321
- border-radius: 8px;
2322
- border: 1px solid var(--chat-border, rgba(255, 255, 255, 0.1));
2323
- scrollbar-gutter: stable;
2324
- }
2325
- .text-block .markdown-table {
2326
- min-width: 100%;
2327
- width: max-content;
2328
- border-collapse: collapse;
2329
- font-size: 0.9em;
2330
- }
2331
- .text-block .markdown-table th {
2332
- background: var(--chat-table-header-bg, rgba(255, 255, 255, 0.06));
2333
- font-weight: 600;
2334
- text-align: left;
2335
- padding: 0.75em 1em;
2336
- border-bottom: 1px solid var(--chat-border, rgba(255, 255, 255, 0.1));
2337
- color: var(--chat-text-strong, #fff);
2338
- }
2339
- .text-block .markdown-table td {
2340
- padding: 0.65em 1em;
2341
- border-bottom: 1px solid var(--chat-border, rgba(255, 255, 255, 0.06));
2342
- }
2343
- .text-block .markdown-table tr:last-child td {
2344
- border-bottom: none;
2345
- }
2346
- .text-block .markdown-table tbody tr:hover {
2347
- background: var(--chat-table-row-hover-bg, rgba(255, 255, 255, 0.05));
2348
- }
2349
- .text-block img {
2350
- max-width: 100%;
2351
- height: auto;
2352
- border-radius: 8px;
2353
- margin: 0.75em 0;
2354
- }
2355
- .code-block-wrapper {
2356
- margin: 1em 0;
2357
- border-radius: 8px;
2358
- overflow: hidden;
2359
- border: 1px solid var(--chat-border, rgba(255, 255, 255, 0.15));
2360
- background: transparent;
2361
- }
2362
- .code-header {
2363
- display: flex;
2364
- justify-content: space-between;
2365
- align-items: center;
2366
- padding: 8px 14px;
2367
- border-bottom: 1px solid var(--chat-border, rgba(255, 255, 255, 0.08));
2368
- }
2369
- .code-language {
2370
- font-size: 12px;
2371
- font-weight: 500;
2372
- color: var(--chat-text-muted, #8b949e);
2373
- text-transform: lowercase;
2374
- letter-spacing: 0.03em;
2375
- }
2376
- .code-actions {
2377
- display: flex;
2378
- align-items: center;
2379
- gap: 4px;
2380
- }
2381
- .code-action-btn {
2382
- display: flex;
2383
- align-items: center;
2384
- gap: 5px;
2385
- padding: 4px 8px;
2386
- font-size: 12px;
2387
- font-weight: 500;
2388
- color: var(--chat-text-muted, #8b949e);
2389
- background: transparent;
2390
- border: 1px solid transparent;
2391
- border-radius: 5px;
2392
- cursor: pointer;
2393
- appearance: none;
2394
- -webkit-appearance: none;
2395
- line-height: 1;
2396
- transition: all 0.15s ease;
2397
- }
2398
- .code-action-btn:hover {
2399
- color: var(--chat-text, #e5e7eb);
2400
- background: var(--chat-hover-bg, rgba(255, 255, 255, 0.08));
2401
- border-color: var(--chat-border, rgba(255, 255, 255, 0.1));
2402
- }
2403
- .code-action-btn:active {
2404
- transform: scale(0.97);
2405
- }
2406
- .code-action-btn svg {
2407
- flex-shrink: 0;
2408
- width: 14px;
2409
- height: 14px;
2410
- }
2411
- .code-block {
2412
- margin: 0;
2413
- padding: 14px 18px;
2414
- overflow-x: auto;
2415
- font-family:
2416
- "JetBrains Mono",
2417
- "Fira Code",
2418
- "Monaco",
2419
- "Menlo",
2420
- "Consolas",
2421
- monospace;
2422
- font-size: 13px;
2423
- line-height: 1.6;
2424
- color: var(--chat-code-text, #e6edf3);
2425
- background: transparent;
2426
- border: none;
2427
- border-radius: 0;
2428
- -webkit-font-smoothing: antialiased;
2429
- }
2430
- .code-block code {
2431
- display: block;
2432
- white-space: pre;
2433
- tab-size: 2;
2434
- }
2435
- .code-block::-webkit-scrollbar {
2436
- height: 6px;
2437
- }
2438
- .code-block::-webkit-scrollbar-track {
2439
- background: transparent;
2440
- }
2441
- .code-block::-webkit-scrollbar-thumb {
2442
- background: var(--chat-scrollbar, rgba(255, 255, 255, 0.2));
2443
- border-radius: 3px;
2444
- }
2445
- .code-block::-webkit-scrollbar-thumb:hover {
2446
- background: var(--chat-scrollbar-hover, rgba(255, 255, 255, 0.3));
2447
- }
2448
- .code-block .hljs-keyword,
2449
- .code-block .hljs-selector-tag {
2450
- color: var(--chat-hljs-keyword, #ff7b72);
2451
- }
2452
- .code-block .hljs-built_in {
2453
- color: var(--chat-hljs-built-in, #ffa657);
2454
- }
2455
- .code-block .hljs-type,
2456
- .code-block .hljs-class {
2457
- color: var(--chat-hljs-type, #ffa657);
2458
- }
2459
- .code-block .hljs-title,
2460
- .code-block .hljs-title.function_,
2461
- .code-block .hljs-function {
2462
- color: var(--chat-hljs-function, #d2a8ff);
2463
- }
2464
- .code-block .hljs-string,
2465
- .code-block .hljs-template-variable {
2466
- color: var(--chat-hljs-string, #a5d6ff);
2467
- }
2468
- .code-block .hljs-number {
2469
- color: var(--chat-hljs-number, #79c0ff);
2470
- }
2471
- .code-block .hljs-literal,
2472
- .code-block .hljs-null {
2473
- color: var(--chat-hljs-literal, #79c0ff);
2474
- }
2475
- .code-block .hljs-comment,
2476
- .code-block .hljs-quote {
2477
- color: var(--chat-hljs-comment, #8b949e);
2478
- font-style: italic;
2479
- }
2480
- .code-block .hljs-variable,
2481
- .code-block .hljs-template-tag {
2482
- color: var(--chat-hljs-variable, #ffa657);
2483
- }
2484
- .code-block .hljs-attr,
2485
- .code-block .hljs-attribute {
2486
- color: var(--chat-hljs-attr, #79c0ff);
2487
- }
2488
- .code-block .hljs-property {
2489
- color: var(--chat-hljs-property, #7ee787);
2490
- }
2491
- .code-block .hljs-operator {
2492
- color: var(--chat-hljs-operator, #ff7b72);
2493
- }
2494
- .code-block .hljs-punctuation {
2495
- color: var(--chat-hljs-punctuation, #e6edf3);
2496
- }
2497
- .code-block .hljs-params {
2498
- color: var(--chat-hljs-params, #e6edf3);
2499
- }
2500
- .code-block .hljs-regexp {
2501
- color: var(--chat-hljs-regexp, #7ee787);
2502
- }
2503
- .code-block .hljs-selector-class,
2504
- .code-block .hljs-selector-id {
2505
- color: var(--chat-hljs-selector, #7ee787);
2506
- }
2507
- .code-block .hljs-tag {
2508
- color: var(--chat-hljs-tag, #7ee787);
2509
- }
2510
- .code-block .hljs-name {
2511
- color: var(--chat-hljs-name, #7ee787);
2512
- }
2513
- .code-block .hljs-deletion {
2514
- color: var(--chat-hljs-deletion, #ffa198);
2515
- background: var(--chat-hljs-deletion-bg, rgba(248, 81, 73, 0.15));
2516
- }
2517
- .code-block .hljs-addition {
2518
- color: var(--chat-hljs-addition, #7ee787);
2519
- background: var(--chat-hljs-addition-bg, rgba(46, 160, 67, 0.15));
2520
- }
2521
- .code-block .hljs-meta {
2522
- color: var(--chat-hljs-meta, #8b949e);
2523
- }
2524
- .code-block .hljs-link {
2525
- color: var(--chat-hljs-link, #a5d6ff);
2526
- text-decoration: underline;
2527
- }
2528
- .code-block .hljs-symbol {
2529
- color: var(--chat-hljs-symbol, #79c0ff);
2530
- }
2531
- .code-block .hljs-subst {
2532
- color: var(--chat-hljs-subst, #e6edf3);
2533
- }
2534
- .code-block .hljs-section {
2535
- color: var(--chat-hljs-section, #79c0ff);
2536
- font-weight: bold;
2537
- }
2538
- .code-block .hljs-bullet {
2539
- color: var(--chat-hljs-bullet, #ffa657);
2540
- }
2541
- .code-block .hljs-emphasis {
2542
- font-style: italic;
2543
- }
2544
- .code-block .hljs-strong {
2545
- font-weight: bold;
2546
- }
2547
- .text-block .latex-block {
2548
- display: block;
2549
- margin: 1em 0;
2550
- padding: 0.75em 1em;
2551
- overflow-x: auto;
2552
- background: var(--chat-latex-bg, rgba(255, 255, 255, 0.02));
2553
- border-radius: 8px;
2554
- border: 1px solid var(--chat-border, rgba(255, 255, 255, 0.08));
2555
- }
2556
- .text-block .latex-block .katex-display {
2557
- margin: 0;
2558
- overflow-x: auto;
2559
- overflow-y: hidden;
2560
- text-align: left;
2561
- }
2562
- .text-block .latex-block .katex {
2563
- text-align: left;
2564
- }
2565
- .text-block .latex-inline {
2566
- display: inline;
2567
- padding: 0 0.15em;
2568
- }
2569
- .text-block .latex-error {
2570
- color: var(--chat-error, #ef4444);
2571
- background: rgba(239, 68, 68, 0.1);
2572
- padding: 0.2em 0.4em;
2573
- border-radius: 4px;
2574
- font-family: monospace;
2575
- font-size: 0.9em;
2576
- }
2577
- .text-block .katex {
2578
- font-size: 1.1em;
2579
- color: var(--chat-text, #e5e7eb);
2580
- }
2581
- .text-block .katex .frac-line {
2582
- background: var(--chat-text, #e5e7eb);
2583
- }
2584
- .text-block .katex .sqrt > .sqrt-sign {
2585
- color: var(--chat-text, #e5e7eb);
2586
- }
2587
- .text-block .latex-block::-webkit-scrollbar {
2588
- height: 6px;
2589
- }
2590
- .text-block .latex-block::-webkit-scrollbar-track {
2591
- background: transparent;
2592
- }
2593
- .text-block .latex-block::-webkit-scrollbar-thumb {
2594
- background: var(--chat-scrollbar, rgba(255, 255, 255, 0.2));
2595
- border-radius: 3px;
2596
- }
2597
- .text-block .latex-block::-webkit-scrollbar-thumb:hover {
2598
- background: var(--chat-scrollbar-hover, rgba(255, 255, 255, 0.3));
2599
- }
2600
-
2601
- /* src/components/message/parts/ThinkingPart.css */
2602
- .thinking-content {
2603
- font-size: 13px;
2604
- line-height: 1.5;
2605
- color: var(--chat-text-muted, #999);
2606
- white-space: pre-wrap;
2607
- word-break: break-word;
2608
- overflow-wrap: break-word;
2609
- margin: 0;
2610
- }
2611
-
2612
- /* src/components/message/parts/SearchPart.css */
2613
- .search-results {
2614
- display: flex;
2615
- flex-direction: column;
2616
- gap: 8px;
2617
- }
2618
- .search-item {
2619
- display: block;
2620
- padding: 8px;
2621
- border-radius: 6px;
2622
- background: var(--chat-bg, #1e1e1e);
2623
- text-decoration: none;
2624
- transition: background 0.15s;
2625
- }
2626
- .search-item:hover {
2627
- background: var(--chat-hover, #333);
2628
- }
2629
- .search-item-title {
2630
- font-size: 13px;
2631
- font-weight: 500;
2632
- color: var(--chat-accent, #3b82f6);
2633
- margin-bottom: 4px;
2634
- }
2635
- .search-item-snippet {
2636
- font-size: 12px;
2637
- color: var(--chat-text-muted, #888);
2638
- line-height: 1.4;
2639
- margin-bottom: 4px;
2640
- display: -webkit-box;
2641
- -webkit-line-clamp: 2;
2642
- -webkit-box-orient: vertical;
2643
- overflow: hidden;
2644
- }
2645
- .search-item-url {
2646
- font-size: 11px;
2647
- color: var(--chat-text-muted, #666);
2648
- overflow: hidden;
2649
- text-overflow: ellipsis;
2650
- white-space: nowrap;
2651
- }
2652
-
2653
- /* src/components/input/DropdownSelector.css */
2654
- .dropdown-selector {
2655
- position: relative;
2656
- }
2657
- .dropdown-selector .selector-trigger {
2658
- display: flex;
2659
- align-items: center;
2660
- gap: 4px;
2661
- height: 28px;
2662
- padding: 0 8px;
2663
- background: rgba(0, 0, 0, 0.04);
2664
- background: color-mix(in srgb, var(--chat-text, #ccc) 6%, transparent);
2665
- border: none;
2666
- border-radius: 6px;
2667
- font-size: 14px;
2668
- color: var(--chat-text-muted, #888);
2669
- cursor: pointer;
2670
- transition: all 0.15s;
2671
- }
2672
- .dropdown-selector:not(.disabled) .selector-trigger:hover {
2673
- background: rgba(0, 0, 0, 0.06);
2674
- background: color-mix(in srgb, var(--chat-text, #ccc) 10%, transparent);
2675
- color: var(--chat-text, #ccc);
2676
- }
2677
- .dropdown-selector.disabled .selector-trigger {
2678
- opacity: 0.6;
2679
- cursor: not-allowed;
2680
- }
2681
- .dropdown-selector .chevron {
2682
- color: var(--chat-text-muted, #666);
2683
- }
2684
- .dropdown-selector .dropdown-menu {
2685
- position: absolute;
2686
- left: 0;
2687
- right: auto;
2688
- min-width: 180px;
2689
- max-height: 320px;
2690
- overflow-y: auto;
2691
- background: var(--chat-dropdown-bg, #252526);
2692
- border: 1px solid rgba(255, 255, 255, 0.1);
2693
- border-radius: 8px;
2694
- box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
2695
- z-index: 9999;
2696
- padding: 4px 8px 4px 4px;
2697
- display: flex;
2698
- flex-direction: column;
2699
- gap: 2px;
2700
- }
2701
- .dropdown-selector .dropdown-menu.dropdown-up {
2702
- bottom: 100%;
2703
- top: auto;
2704
- margin-bottom: 4px;
2705
- }
2706
- .dropdown-selector .dropdown-menu.dropdown-down {
2707
- top: 100%;
2708
- bottom: auto;
2709
- margin-top: 4px;
2710
- }
2711
- .dropdown-selector .dropdown-menu.dropdown-align-right {
2712
- left: auto;
2713
- right: 0;
2714
- }
2715
- .dropdown-selector .dropdown-item {
2716
- display: flex;
2717
- align-items: center;
2718
- gap: 8px;
2719
- width: 100%;
2720
- padding: 8px 10px;
2721
- border: none;
2722
- background: transparent;
2723
- border-radius: 4px;
2724
- font-size: 14px;
2725
- color: var(--chat-text-muted, #999);
2726
- cursor: pointer;
2727
- transition: all 0.15s;
2728
- white-space: nowrap;
2729
- }
2730
- .dropdown-selector .dropdown-item:hover {
2731
- background: rgba(0, 0, 0, 0.06);
2732
- background: color-mix(in srgb, var(--chat-text, #ccc) 10%, transparent);
2733
- color: var(--chat-text, #ccc);
2734
- }
2735
- .dropdown-selector .dropdown-item.active {
2736
- background: rgba(0, 0, 0, 0.08);
2737
- background: color-mix(in srgb, var(--chat-text, #ccc) 14%, transparent);
2738
- color: var(--chat-text, #fff);
2739
- }
2740
- .dropdown-selector .check-icon {
2741
- margin-left: auto;
2742
- color: var(--chat-text, #ccc);
2743
- flex-shrink: 0;
2744
- }
2745
- .dropdown-selector .selector-text {
2746
- overflow: hidden;
2747
- text-overflow: ellipsis;
2748
- white-space: nowrap;
2749
- }
2750
- .dropdown-selector .dropdown-empty {
2751
- padding: 12px 10px;
2752
- font-size: 12px;
2753
- color: var(--chat-text-muted, #666);
2754
- text-align: center;
2755
- }
2756
- .dropdown-selector .group-title {
2757
- padding: 8px 10px 4px;
2758
- margin-top: 4px;
2759
- font-size: 11px;
2760
- color: var(--chat-text-muted, #666);
2761
- }
2762
- .dropdown-selector .group-title:first-child {
2763
- margin-top: 0;
2764
- }
2765
- .dropdown-selector .option-label {
2766
- flex: 1;
2767
- text-align: left;
2768
- }
2769
- .dropdown-selector .option-right {
2770
- display: flex;
2771
- align-items: center;
2772
- gap: 8px;
2773
- margin-left: auto;
2774
- }
2775
- .dropdown-selector .provider-badge {
2776
- padding: 2px 6px;
2777
- font-size: 11px;
2778
- font-weight: 500;
2779
- color: var(--chat-text-muted, #999);
2780
- background: rgba(255, 255, 255, 0.08);
2781
- border-radius: 3px;
2782
- white-space: nowrap;
2783
- }
2784
- .dropdown-selector .provider-badge.native {
2785
- color: var(--chat-text-muted, #999);
2786
- }
2787
- .dropdown-selector .dropdown-item-wrapper {
2788
- position: relative;
2789
- }
2790
- .ai-chat-model-tooltip {
2791
- min-width: 160px;
2792
- max-width: 240px;
2793
- width: max-content;
2794
- padding: 12px;
2795
- background: var(--chat-dropdown-bg, #252526);
2796
- border: 1px solid rgba(255, 255, 255, 0.15);
2797
- border-radius: 8px;
2798
- box-shadow: 0 4px 16px rgba(0, 0, 0, 0.5);
2799
- pointer-events: none;
2800
- }
2801
- .ai-chat-model-tooltip__section {
2802
- margin-bottom: 10px;
2803
- }
2804
- .ai-chat-model-tooltip__section:last-child {
2805
- margin-bottom: 0;
2806
- }
2807
- .ai-chat-model-tooltip__title {
2808
- font-size: 11px;
2809
- font-weight: 500;
2810
- color: var(--chat-text-muted, #888);
2811
- margin-bottom: 6px;
2812
- text-transform: uppercase;
2813
- letter-spacing: 0.5px;
2814
- }
2815
- .ai-chat-model-tooltip__features {
2816
- display: flex;
2817
- flex-direction: column;
2818
- gap: 4px;
2819
- }
2820
- .ai-chat-model-tooltip__feature {
2821
- display: flex;
2822
- align-items: center;
2823
- gap: 6px;
2824
- font-size: 13px;
2825
- color: var(--chat-text, #ccc);
2826
- }
2827
- .ai-chat-model-tooltip__check {
2828
- color: #4ade80;
2829
- flex-shrink: 0;
2830
- }
2831
- .ai-chat-model-tooltip__cost {
2832
- font-size: 13px;
2833
- color: var(--chat-text, #ccc);
2834
- }
2835
- .ai-chat-model-tooltip__description {
2836
- font-size: 12px;
2837
- color: var(--chat-text-muted, #999);
2838
- line-height: 1.5;
2839
- }
2840
-
2841
- /* src/components/common/CopyButton.css */
2842
- .copy-btn {
2843
- display: flex;
2844
- align-items: center;
2845
- justify-content: center;
2846
- padding: 4px;
2847
- background: transparent;
2848
- border: none;
2849
- color: var(--chat-text-muted, #888);
2850
- cursor: pointer;
2851
- border-radius: 4px;
2852
- transition: all 0.2s;
2853
- }
2854
- .copy-btn:hover {
2855
- background: rgba(255, 255, 255, 0.1);
2856
- color: var(--chat-text, #fff);
2857
- }
2858
- .copy-btn.copied {
2859
- color: var(--chat-success, #22c55e);
2860
- }
2861
-
2862
- /* src/components/message/parts/ToolCallPart.css */
2863
- .tool-args {
2864
- margin: 0 0 12px 0;
2865
- padding: 0.75em 1em;
2866
- background: var(--chat-bg, #1e1e1e);
2867
- border: 1px solid var(--chat-border, rgba(255, 255, 255, 0.08));
2868
- border-radius: 8px;
2869
- font-size: 13px;
2870
- line-height: 1.6;
2871
- color: var(--chat-text-muted, #999);
2872
- white-space: pre-wrap;
2873
- word-break: break-word;
2874
- overflow-x: auto;
2875
- }
2876
- .tool-args.json {
2877
- font-family:
2878
- "Monaco",
2879
- "Menlo",
2880
- "Courier New",
2881
- monospace;
2882
- font-size: 12px;
2883
- line-height: 1.8;
2884
- white-space: pre;
2885
- word-break: normal;
2886
- overflow-x: auto;
2887
- }
2888
- .tool-args.json::-webkit-scrollbar {
2889
- height: 6px;
2890
- }
2891
- .tool-args.json::-webkit-scrollbar-track {
2892
- background: transparent;
2893
- }
2894
- .tool-args.json::-webkit-scrollbar-thumb {
2895
- background: var(--chat-scrollbar, rgba(255, 255, 255, 0.2));
2896
- border-radius: 3px;
2897
- }
2898
- .tool-args.json::-webkit-scrollbar-thumb:hover {
2899
- background: var(--chat-scrollbar-hover, rgba(255, 255, 255, 0.3));
2900
- }
2901
- .tool-args.json .hljs-attr,
2902
- .tool-args.json .hljs-attribute {
2903
- color: var(--chat-hljs-attr, #79c0ff);
2904
- }
2905
- .tool-args.json .hljs-string,
2906
- .tool-args.json .hljs-template-variable {
2907
- color: var(--chat-hljs-string, #a5d6ff);
2908
- }
2909
- .tool-args.json .hljs-number {
2910
- color: var(--chat-hljs-number, #79c0ff);
2911
- }
2912
- .tool-args.json .hljs-literal,
2913
- .tool-args.json .hljs-null {
2914
- color: var(--chat-hljs-literal, #79c0ff);
2915
- }
2916
- .tool-args.json .hljs-punctuation {
2917
- color: var(--chat-hljs-punctuation, #e6edf3);
2918
- }
2919
- .tool-args.command {
2920
- font-family:
2921
- "Monaco",
2922
- "Menlo",
2923
- "Courier New",
2924
- monospace;
2925
- font-size: 12px;
2926
- line-height: 1.6;
2927
- }
2928
- .tool-args.text {
2929
- font-size: 13px;
2930
- line-height: 1.5;
2931
- }
2932
- .tool-footer {
2933
- display: flex;
2934
- align-items: center;
2935
- justify-content: space-between;
2936
- gap: 12px;
2937
- }
2938
- .tool-actions {
2939
- display: flex;
2940
- align-items: center;
2941
- gap: 8px;
2942
- }
2943
- .status-text {
2944
- display: flex;
2945
- align-items: center;
2946
- gap: 6px;
2947
- font-size: 12px;
2948
- font-weight: 500;
2949
- }
2950
- .status-text.done {
2951
- color: var(--chat-success, #22c55e);
2952
- }
2953
- .status-text.error {
2954
- color: var(--chat-error, #ef4444);
2955
- }
2956
- .status-text.running {
2957
- color: var(--chat-accent, #3b82f6);
2958
- }
2959
- .status-text.cancelled {
2960
- color: var(--chat-warning, #f59e0b);
2961
- }
2962
- .status-text.skipped {
2963
- color: var(--chat-text-muted, #888);
2964
- }
2965
- .spinning {
2966
- animation: spin 1s linear infinite;
2967
- }
2968
- @keyframes spin {
2969
- from {
2970
- transform: rotate(0deg);
2971
- }
2972
- to {
2973
- transform: rotate(360deg);
2974
- }
2975
- }
2976
- .btn {
2977
- padding: 6px 12px;
2978
- border-radius: 6px;
2979
- font-size: 12px;
2980
- font-weight: 500;
2981
- cursor: pointer;
2982
- border: none;
2983
- display: flex;
2984
- align-items: center;
2985
- gap: 6px;
2986
- transition: all 0.2s;
2987
- }
2988
- .btn-skip {
2989
- background: var(--chat-muted, #2a2a2a);
2990
- color: var(--chat-text, #ccc);
2991
- border: 1px solid var(--chat-border, #333);
2992
- }
2993
- .btn-skip:hover {
2994
- background: var(--chat-muted-hover, #333);
2995
- }
2996
- .btn-run {
2997
- background: var(--chat-accent, #3b82f6);
2998
- color: #fff;
2999
- }
3000
- .btn-run:hover {
3001
- background: var(--chat-accent-hover, #2563eb);
3002
- }
3003
- .btn-cancel {
3004
- background: transparent;
3005
- color: var(--chat-text-muted, #888);
3006
- border: 1px solid var(--chat-border, #333);
3007
- }
3008
- .btn-cancel:hover {
3009
- background: rgba(239, 68, 68, 0.1);
3010
- color: #ef4444;
3011
- border-color: #ef4444;
3012
- }
3013
- .output-panel {
3014
- margin: 0 0 12px 0;
3015
- border: 1px solid var(--chat-border, rgba(255, 255, 255, 0.08));
3016
- border-radius: 8px;
3017
- background: var(--chat-bg, #1e1e1e);
3018
- overflow: hidden;
3019
- }
3020
- .output-header {
3021
- display: flex;
3022
- align-items: center;
3023
- justify-content: space-between;
3024
- gap: 12px;
3025
- padding: 8px 10px;
3026
- border-bottom: 1px solid var(--chat-border, rgba(255, 255, 255, 0.08));
3027
- }
3028
- .output-tabs {
3029
- display: flex;
3030
- gap: 6px;
3031
- }
3032
- .tab {
3033
- padding: 4px 8px;
3034
- border-radius: 6px;
3035
- border: 1px solid var(--chat-border, #333);
3036
- background: var(--chat-muted, #2a2a2a);
3037
- color: var(--chat-text-muted, #999);
3038
- font-size: 11px;
3039
- cursor: pointer;
3040
- }
3041
- .tab.active {
3042
- background: rgba(59, 130, 246, 0.15);
3043
- border-color: rgba(59, 130, 246, 0.35);
3044
- color: var(--chat-text, #ccc);
3045
- }
3046
- .output-actions {
3047
- display: flex;
3048
- align-items: center;
3049
- gap: 8px;
3050
- }
3051
- .btn-save {
3052
- padding: 6px 10px;
3053
- border-radius: 6px;
3054
- font-size: 12px;
3055
- font-weight: 500;
3056
- cursor: pointer;
3057
- border: 1px solid var(--chat-border, #333);
3058
- background: transparent;
3059
- color: var(--chat-text-muted, #888);
3060
- display: flex;
3061
- align-items: center;
3062
- gap: 6px;
3063
- transition: all 0.2s;
3064
- }
3065
- .btn-save:hover {
3066
- background: var(--chat-muted-hover, #333);
3067
- color: var(--chat-text, #ccc);
3068
- }
3069
- .output-body {
3070
- margin: 0;
3071
- padding: 10px 12px;
3072
- font-family:
3073
- "Monaco",
3074
- "Menlo",
3075
- "Courier New",
3076
- monospace;
3077
- font-size: 12px;
3078
- line-height: 1.6;
3079
- color: var(--chat-text-muted, #999);
3080
- white-space: pre-wrap;
3081
- word-break: break-word;
3082
- max-height: 260px;
3083
- overflow: auto;
3084
- }
3085
-
3086
- /* src/components/message/parts/ImagePart.css */
3087
- .image-part {
3088
- position: relative;
3089
- max-width: 100%;
3090
- display: inline-block;
3091
- }
3092
- .image-content {
3093
- max-width: 100%;
3094
- max-height: 400px;
3095
- border-radius: 8px;
3096
- cursor: pointer;
3097
- transition: opacity 0.2s;
3098
- }
3099
- .image-content:hover {
3100
- opacity: 0.9;
3101
- }
3102
- .image-loading,
3103
- .image-error {
3104
- display: flex;
3105
- flex-direction: column;
3106
- align-items: center;
3107
- justify-content: center;
3108
- gap: 8px;
3109
- padding: 24px;
3110
- background: var(--chat-muted, #2a2a2a);
3111
- border-radius: 8px;
3112
- color: var(--chat-text-muted, #888);
3113
- min-width: 200px;
3114
- min-height: 150px;
3115
- }
3116
- .spinning {
3117
- animation: spin 1s linear infinite;
3118
- }
3119
- @keyframes spin {
3120
- from {
3121
- transform: rotate(0deg);
3122
- }
3123
- to {
3124
- transform: rotate(360deg);
3125
- }
3126
- }
3127
- .image-error span {
3128
- font-size: 13px;
3129
- }
3130
-
3131
- /* src/components/message/parts/ErrorPart.css */
3132
- .error-content {
3133
- font-size: 13px;
3134
- line-height: 1.5;
3135
- color: var(--chat-text-muted, #999);
3136
- white-space: pre-wrap;
3137
- word-break: break-word;
3138
- overflow-wrap: break-word;
3139
- margin: 0;
3140
- }
3141
-
3142
- /* src/components/message/parts/PlanPart.css */
3143
- .plan-steps {
3144
- display: flex;
3145
- flex-direction: column;
3146
- gap: 6px;
3147
- padding: 2px 0;
3148
- }
3149
- .plan-step {
3150
- display: flex;
3151
- align-items: center;
3152
- gap: 8px;
3153
- font-size: 13px;
3154
- line-height: 1.5;
3155
- color: var(--chat-text-muted, #999);
3156
- transition: color 0.2s ease;
3157
- }
3158
- .plan-step--done {
3159
- color: var(--chat-success, #22c55e);
3160
- }
3161
- .plan-step--in_progress {
3162
- color: var(--chat-plan-accent, #8b5cf6);
3163
- font-weight: 500;
3164
- }
3165
- .plan-step--failed {
3166
- color: var(--chat-error, #ef4444);
3167
- }
3168
- .plan-step--pending {
3169
- color: var(--chat-text-muted, #666);
3170
- }
3171
- .plan-step-icon {
3172
- display: flex;
3173
- align-items: center;
3174
- justify-content: center;
3175
- width: 16px;
3176
- height: 16px;
3177
- flex-shrink: 0;
3178
- font-size: 12px;
3179
- }
3180
- .plan-icon-done {
3181
- color: var(--chat-success, #22c55e);
3182
- font-weight: bold;
3183
- }
3184
- .plan-icon-progress {
3185
- display: flex;
3186
- align-items: center;
3187
- justify-content: center;
3188
- }
3189
- .plan-spinner {
3190
- width: 12px;
3191
- height: 12px;
3192
- border: 2px solid var(--chat-plan-accent, #8b5cf6);
3193
- border-top-color: transparent;
3194
- border-radius: 50%;
3195
- animation: plan-spin 0.8s linear infinite;
3196
- }
3197
- .plan-icon-failed {
3198
- color: var(--chat-error, #ef4444);
3199
- font-weight: bold;
3200
- }
3201
- .plan-icon-pending {
3202
- color: var(--chat-text-muted, #666);
3203
- font-size: 10px;
3204
- }
3205
- .plan-step-title {
3206
- flex: 1;
3207
- word-break: break-word;
3208
- }
3209
- @keyframes plan-spin {
3210
- to {
3211
- transform: rotate(360deg);
3212
- }
3213
- }
3214
-
3215
- /* src/components/message/parts/CompactPart.css */
3216
- .compact-detail {
3217
- display: flex;
3218
- flex-direction: column;
3219
- gap: 4px;
3220
- font-size: 12px;
3221
- color: var(--chat-text-muted, #999);
3222
- }
3223
- .compact-row {
3224
- display: flex;
3225
- justify-content: space-between;
3226
- }
3227
- .compact-label {
3228
- opacity: 0.7;
3229
- }
3230
- .compact-value {
3231
- font-variant-numeric: tabular-nums;
3232
- }
3233
-
3234
- /* src/components/message/PartsRenderer.css */
3235
- .parts-renderer {
3236
- display: flex;
3237
- flex-direction: column;
3238
- }
3239
- .part-item {
3240
- margin-top: 8px;
3241
- }
3242
- .part-item:first-child {
3243
- margin-top: 0;
3244
- }
3245
-
3246
- /* src/components/input/ChatInput.css */
3247
- .chat-input {
3248
- padding: 12px;
3249
- }
3250
- .chat-input.message-variant {
3251
- padding: 0;
3252
- }
3253
- .input-container {
3254
- display: flex;
3255
- flex-direction: column;
3256
- background: var(--chat-input-bg, #2d2d2d);
3257
- border: 1px solid var(--chat-border, #444);
3258
- border-radius: 12px;
3259
- padding: 12px;
3260
- transition: border-color 0.15s;
3261
- }
3262
- .input-container.focused {
3263
- border-color: rgba(255, 255, 255, 0.2);
3264
- }
3265
- .input-container.drag-over {
3266
- border-color: var(--chat-primary, #2563eb);
3267
- background: rgba(37, 99, 235, 0.1);
3268
- }
3269
- .images-preview {
3270
- display: flex;
3271
- flex-wrap: wrap;
3272
- gap: 6px;
3273
- margin-bottom: 8px;
3274
- }
3275
- .image-preview-item {
3276
- position: relative;
3277
- width: 48px;
3278
- height: 48px;
3279
- border-radius: 6px;
3280
- overflow: hidden;
3281
- background: rgba(0, 0, 0, 0.2);
3282
- }
3283
- .image-thumbnail {
3284
- width: 100%;
3285
- height: 100%;
3286
- object-fit: cover;
3287
- cursor: pointer;
3288
- transition: opacity 0.15s;
3289
- }
3290
- .image-thumbnail:hover {
3291
- opacity: 0.8;
3292
- }
3293
- .image-remove-btn {
3294
- position: absolute;
3295
- top: 2px;
3296
- right: 2px;
3297
- width: 16px;
3298
- height: 16px;
3299
- display: flex;
3300
- align-items: center;
3301
- justify-content: center;
3302
- background: rgba(0, 0, 0, 0.5);
3303
- border: none;
3304
- border-radius: 50%;
3305
- color: #fff;
3306
- cursor: pointer;
3307
- opacity: 0;
3308
- transition: all 0.15s;
3309
- }
3310
- .image-preview-item:hover .image-remove-btn {
3311
- opacity: 1;
3312
- }
3313
- .image-remove-btn:hover {
3314
- background: rgba(239, 68, 68, 0.9);
3315
- }
3316
- .hidden-input {
3317
- display: none;
3318
- }
3319
- .input-field-wrapper {
3320
- margin-bottom: 8px;
3321
- }
3322
- .input-field {
3323
- width: 100%;
3324
- background: transparent;
3325
- border: none;
3326
- padding: 0;
3327
- padding-right: 8px;
3328
- color: var(--chat-text, #ccc);
3329
- font-size: 14px;
3330
- resize: none;
3331
- min-height: 24px;
3332
- max-height: 150px;
3333
- line-height: 1.5;
3334
- font-family: inherit;
3335
- overflow-y: auto;
3336
- }
3337
- .input-field:focus {
3338
- outline: none;
3339
- }
3340
- .input-field::placeholder {
3341
- color: var(--chat-text-muted, #666);
3342
- }
3343
- .input-controls {
3344
- display: flex;
3345
- align-items: center;
3346
- justify-content: space-between;
3347
- gap: 8px;
3348
- }
3349
- .input-left {
3350
- display: flex;
3351
- align-items: center;
3352
- gap: 4px;
3353
- }
3354
- .input-right {
3355
- display: flex;
3356
- align-items: center;
3357
- gap: 2px;
3358
- }
3359
- .at-picker-wrapper {
3360
- position: relative;
3361
- }
3362
- .input-right .icon-btn {
3363
- display: flex;
3364
- align-items: center;
3365
- justify-content: center;
3366
- width: 28px;
3367
- height: 28px;
3368
- background: transparent;
3369
- border: none;
3370
- border-radius: 6px;
3371
- color: var(--chat-text-muted, #666);
3372
- cursor: pointer;
3373
- transition: all 0.15s;
3374
- }
3375
- .input-right .icon-btn:hover {
3376
- color: var(--chat-text, #ccc);
3377
- background: rgba(0, 0, 0, 0.06);
3378
- background: color-mix(in srgb, var(--chat-text, #ccc) 10%, transparent);
3379
- }
3380
- .input-right .voice-btn {
3381
- display: flex;
3382
- align-items: center;
3383
- justify-content: center;
3384
- width: 28px;
3385
- height: 28px;
3386
- background: transparent;
3387
- border: none;
3388
- border-radius: 6px;
3389
- color: var(--chat-text-muted, #666);
3390
- cursor: pointer;
3391
- transition: all 0.15s;
3392
- }
3393
- .input-right .voice-btn:hover {
3394
- color: var(--chat-text, #ccc);
3395
- background: rgba(0, 0, 0, 0.06);
3396
- background: color-mix(in srgb, var(--chat-text, #ccc) 10%, transparent);
3397
- }
3398
- .input-right .voice-btn.connecting {
3399
- color: #f59e0b;
3400
- background: transparent;
3401
- }
3402
- .input-right .voice-btn.connecting:hover {
3403
- color: #f59e0b;
3404
- background: rgba(0, 0, 0, 0.06);
3405
- background: color-mix(in srgb, var(--chat-text, #ccc) 10%, transparent);
3406
- }
3407
- .input-right .voice-btn .spin {
3408
- animation: spin 1s linear infinite;
3409
- }
3410
- .input-right .voice-btn:disabled {
3411
- opacity: 0.5;
3412
- cursor: not-allowed;
3413
- }
3414
- .input-right .voice-btn.recording {
3415
- color: #ef4444;
3416
- background: transparent;
3417
- animation: none;
3418
- }
3419
- .input-right .voice-btn.recording:hover {
3420
- color: #ef4444;
3421
- background: rgba(0, 0, 0, 0.06);
3422
- background: color-mix(in srgb, var(--chat-text, #ccc) 10%, transparent);
3423
- }
3424
- .toggle-btn {
3425
- display: flex;
3426
- align-items: center;
3427
- justify-content: center;
3428
- width: 28px;
3429
- height: 28px;
3430
- background: transparent;
3431
- border: none;
3432
- border-radius: 6px;
3433
- color: var(--chat-text-muted, #666);
3434
- cursor: pointer;
3435
- transition: all 0.15s;
3436
- }
3437
- .toggle-btn:hover {
3438
- color: var(--chat-text, #ccc);
3439
- background: rgba(0, 0, 0, 0.06);
3440
- background: color-mix(in srgb, var(--chat-text, #ccc) 10%, transparent);
3441
- }
3442
- .toggle-btn.active {
3443
- color: var(--chat-primary, #54a9ff);
3444
- background: rgba(84, 169, 255, 0.14);
3445
- background: color-mix(in srgb, var(--chat-primary, #54a9ff) 14%, transparent);
3446
- }
3447
- .toggle-btn.active:hover {
3448
- color: var(--chat-primary-hover, #2f90ff);
3449
- background: rgba(84, 169, 255, 0.2);
3450
- background: color-mix(in srgb, var(--chat-primary, #54a9ff) 20%, transparent);
3451
- }
3452
- .send-btn {
3453
- display: flex;
3454
- align-items: center;
3455
- justify-content: center;
3456
- width: 28px;
3457
- height: 28px;
3458
- background: transparent;
3459
- border: none;
3460
- border-radius: 6px;
3461
- color: var(--chat-text-muted, #666);
3462
- cursor: pointer;
3463
- transition: all 0.15s;
3464
- }
3465
- .send-btn:hover {
3466
- color: var(--chat-text, #ccc);
3467
- background: rgba(0, 0, 0, 0.06);
3468
- background: color-mix(in srgb, var(--chat-text, #ccc) 10%, transparent);
3469
- }
3470
- .send-btn:disabled {
3471
- opacity: 0.5;
3472
- cursor: not-allowed;
3473
- }
3474
- .send-btn:disabled:hover {
3475
- color: var(--chat-text-muted, #666);
3476
- }
3477
-
3478
- /* src/components/input/at-views/AtViewStyles.css */
3479
- .at-files-view {
3480
- display: flex;
3481
- flex-direction: column;
3482
- }
3483
- .at-view-section-title {
3484
- font-size: 11px;
3485
- color: var(--chat-text-muted, #888);
3486
- padding: 6px 8px 4px;
3487
- text-transform: uppercase;
3488
- letter-spacing: 0.5px;
3489
- }
3490
- .at-view-pathbar {
3491
- display: flex;
3492
- align-items: center;
3493
- gap: 4px;
3494
- padding: 4px 8px 8px;
3495
- }
3496
- .at-view-pathbtn {
3497
- width: 22px;
3498
- height: 22px;
3499
- border-radius: 4px;
3500
- background: transparent;
3501
- border: 1px solid var(--chat-border, rgba(255, 255, 255, 0.1));
3502
- color: var(--chat-text-muted, #999);
3503
- cursor: pointer;
3504
- display: flex;
3505
- align-items: center;
3506
- justify-content: center;
3507
- }
3508
- .at-view-pathbtn:hover {
3509
- background: var(--chat-muted-hover, rgba(255, 255, 255, 0.06));
3510
- color: var(--chat-text, #ccc);
3511
- }
3512
- .at-view-pathtext {
3513
- flex: 1;
3514
- min-width: 0;
3515
- font-size: 11px;
3516
- color: var(--chat-text-muted, #777);
3517
- white-space: nowrap;
3518
- overflow: hidden;
3519
- text-overflow: ellipsis;
3520
- }
3521
- .at-view-list {
3522
- display: flex;
3523
- flex-direction: column;
3524
- gap: 1px;
3525
- }
3526
- .at-view-item {
3527
- display: flex;
3528
- align-items: center;
3529
- gap: 8px;
3530
- text-align: left;
3531
- padding: 7px 10px;
3532
- border-radius: 6px;
3533
- border: 1px solid transparent;
3534
- background: transparent;
3535
- cursor: pointer;
3536
- color: var(--chat-text, #ccc);
3537
- width: 100%;
3538
- }
3539
- .at-view-item:hover {
3540
- background: var(--chat-muted-hover, rgba(255, 255, 255, 0.06));
3541
- }
3542
- .at-view-item.active {
3543
- background: rgba(59, 130, 246, 0.15);
3544
- border-color: rgba(59, 130, 246, 0.3);
3545
- }
3546
- .at-view-item-icon {
3547
- color: var(--chat-text-muted, #999);
3548
- flex-shrink: 0;
3549
- }
3550
- .at-view-item-name {
3551
- font-size: 13px;
3552
- color: var(--chat-text, #ddd);
3553
- flex-shrink: 0;
3554
- max-width: 160px;
3555
- overflow: hidden;
3556
- text-overflow: ellipsis;
3557
- white-space: nowrap;
3558
- }
3559
- .at-view-item-path {
3560
- font-size: 11px;
3561
- color: var(--chat-text-muted, #555);
3562
- min-width: 0;
3563
- overflow: hidden;
3564
- text-overflow: ellipsis;
3565
- white-space: nowrap;
3566
- flex: 1;
3567
- }
3568
- .at-view-empty {
3569
- padding: 12px 10px;
3570
- color: var(--chat-text-muted, #666);
3571
- font-size: 12px;
3572
- text-align: center;
3573
- }
3574
- .at-placeholder-view {
3575
- display: flex;
3576
- flex-direction: column;
3577
- align-items: center;
3578
- justify-content: center;
3579
- padding: 32px 16px;
3580
- text-align: center;
3581
- }
3582
- .at-placeholder-icon {
3583
- color: var(--chat-text-muted, #555);
3584
- margin-bottom: 12px;
3585
- }
3586
- .at-placeholder-title {
3587
- font-size: 14px;
3588
- font-weight: 500;
3589
- color: var(--chat-text-muted, #888);
3590
- margin-bottom: 8px;
3591
- }
3592
- .at-placeholder-desc {
3593
- font-size: 13px;
3594
- color: var(--chat-text-muted, #666);
3595
- margin-bottom: 4px;
3596
- }
3597
- .at-placeholder-hint {
3598
- font-size: 11px;
3599
- color: var(--chat-text-muted, #555);
3600
- }
3601
-
3602
- /* src/components/input/AtFilePicker.css */
3603
- .at-picker-dropdown {
3604
- position: fixed;
3605
- width: 332px;
3606
- background: var(--chat-dropdown-bg, #252526);
3607
- border: 1px solid var(--chat-border, rgba(0, 0, 0, 0.12));
3608
- border-radius: 10px;
3609
- box-shadow: 0 10px 28px rgba(0, 0, 0, 0.18);
3610
- z-index: 99999;
3611
- display: flex;
3612
- flex-direction: column;
3613
- overflow: hidden;
3614
- }
3615
- .at-picker-header {
3616
- display: flex;
3617
- align-items: center;
3618
- gap: 8px;
3619
- padding: 10px 12px;
3620
- border-bottom: 1px solid var(--chat-border, rgba(0, 0, 0, 0.12));
3621
- }
3622
- .at-picker-back {
3623
- width: 24px;
3624
- height: 24px;
3625
- display: flex;
3626
- align-items: center;
3627
- justify-content: center;
3628
- background: transparent;
3629
- border: none;
3630
- border-radius: 4px;
3631
- color: var(--chat-text-muted, #888);
3632
- cursor: pointer;
3633
- flex-shrink: 0;
3634
- }
3635
- .at-picker-back:hover {
3636
- background: var(--chat-muted-hover, rgba(0, 0, 0, 0.06));
3637
- color: var(--chat-text, #26251eeb);
3638
- }
3639
- .at-picker-search-icon {
3640
- color: var(--chat-text-muted, #888);
3641
- flex-shrink: 0;
3642
- }
3643
- .at-picker-search {
3644
- flex: 1;
3645
- background: transparent;
3646
- border: none;
3647
- outline: none;
3648
- color: var(--chat-text, #26251eeb);
3649
- font-size: 13px;
3650
- }
3651
- .at-picker-body {
3652
- padding: 6px;
3653
- flex: 1;
3654
- min-height: 0;
3655
- overflow-y: auto;
3656
- }
3657
- .at-picker-body.is-scrolling .at-picker-item,
3658
- .at-picker-body.is-scrolling .at-view-item {
3659
- pointer-events: none;
3660
- }
3661
- .at-picker-section {
3662
- margin-bottom: 2px;
3663
- }
3664
- .at-picker-recent {
3665
- padding-bottom: 6px;
3666
- margin-bottom: 6px;
3667
- border-bottom: 1px solid var(--chat-border, rgba(0, 0, 0, 0.12));
3668
- }
3669
- .at-picker-list {
3670
- display: flex;
3671
- flex-direction: column;
3672
- gap: 1px;
3673
- }
3674
- .at-picker-item {
3675
- display: flex;
3676
- align-items: center;
3677
- gap: 8px;
3678
- text-align: left;
3679
- padding: 7px 10px;
3680
- border-radius: 6px;
3681
- border: 1px solid transparent;
3682
- background: transparent;
3683
- cursor: pointer;
3684
- color: var(--chat-text, #26251eeb);
3685
- width: 100%;
3686
- }
3687
- .at-picker-item:hover {
3688
- background: var(--chat-muted-hover, rgba(0, 0, 0, 0.06));
3689
- }
3690
- .at-picker-item.active {
3691
- background: var(--chat-muted-hover, rgba(0, 0, 0, 0.06));
3692
- border-color: var(--chat-primary, #54a9ff);
3693
- }
3694
- .at-picker-item-icon {
3695
- color: var(--chat-text-muted, #888);
3696
- flex-shrink: 0;
3697
- }
3698
- .at-picker-item-name {
3699
- font-size: 13px;
3700
- color: var(--chat-text, #26251eeb);
3701
- flex-shrink: 0;
3702
- max-width: 160px;
3703
- overflow: hidden;
3704
- text-overflow: ellipsis;
3705
- white-space: nowrap;
3706
- }
3707
- .at-picker-item-path {
3708
- font-size: 11px;
3709
- color: var(--chat-text-muted, #888);
3710
- min-width: 0;
3711
- overflow: hidden;
3712
- text-overflow: ellipsis;
3713
- white-space: nowrap;
3714
- flex: 1;
3715
- }
3716
- .at-picker-category .at-picker-item-name {
3717
- flex: 1;
3718
- max-width: none;
3719
- }
3720
- .at-picker-chevron {
3721
- color: var(--chat-text-muted, #888);
3722
- flex-shrink: 0;
3723
- }
3724
- .at-picker-empty {
3725
- padding: 16px;
3726
- text-align: center;
3727
- color: var(--chat-text-muted, #888);
3728
- font-size: 13px;
3729
- }
3730
- .at-picker-skill .at-picker-item-name {
3731
- flex: 1;
3732
- max-width: none;
3733
- }
3734
- .at-picker-skill-check {
3735
- display: flex;
3736
- align-items: center;
3737
- flex-shrink: 0;
3738
- }
3739
- .at-picker-skill-enabled {
3740
- color: var(--chat-primary, #54a9ff);
3741
- }
3742
- .at-picker-footer {
3743
- padding: 8px 12px;
3744
- border-top: 1px solid var(--chat-border, rgba(0, 0, 0, 0.12));
3745
- color: var(--chat-text-muted, #888);
3746
- font-size: 11px;
3747
- }
3748
-
3749
- /* src/components/input/ImagePreviewModal.css */
3750
- .image-preview-modal {
3751
- position: fixed;
3752
- inset: 0;
3753
- z-index: 99999;
3754
- display: flex;
3755
- flex-direction: column;
3756
- background: rgb(61 61 61 / 40%);
3757
- backdrop-filter: blur(8px);
3758
- animation: fadeIn 0.2s ease;
3759
- }
3760
- @keyframes fadeIn {
3761
- from {
3762
- opacity: 0;
3763
- }
3764
- to {
3765
- opacity: 1;
3766
- }
3767
- }
3768
- .preview-header {
3769
- position: relative;
3770
- z-index: 10;
3771
- display: flex;
3772
- align-items: center;
3773
- justify-content: center;
3774
- gap: 12px;
3775
- padding: 16px 20px;
3776
- min-height: 52px;
3777
- }
3778
- .preview-counter {
3779
- color: rgba(255, 255, 255, 0.85);
3780
- font-size: 14px;
3781
- font-variant-numeric: tabular-nums;
3782
- }
3783
- .preview-close-btn {
3784
- position: absolute;
3785
- right: 16px;
3786
- top: 50%;
3787
- transform: translateY(-50%);
3788
- display: flex;
3789
- align-items: center;
3790
- justify-content: center;
3791
- height: 36px;
3792
- padding: 0 12px;
3793
- background: rgba(255, 255, 255, 0.1);
3794
- border: none;
3795
- border-radius: 8px;
3796
- color: #fff;
3797
- cursor: pointer;
3798
- transition: all 0.15s;
3799
- }
3800
- .preview-close-btn:hover {
3801
- background: rgba(255, 255, 255, 0.2);
3802
- transform: translateY(-50%) scale(1.05);
3803
- }
3804
- .preview-close-btn:active {
3805
- transform: translateY(-50%) scale(0.95);
3806
- }
3807
- .preview-nav-btn {
3808
- position: absolute;
3809
- top: 50%;
3810
- transform: translateY(-50%);
3811
- z-index: 10;
3812
- display: flex;
3813
- align-items: center;
3814
- justify-content: center;
3815
- height: 48px;
3816
- padding: 0 12px;
3817
- background: rgba(255, 255, 255, 0.1);
3818
- border: none;
3819
- border-radius: 8px;
3820
- color: #fff;
3821
- cursor: pointer;
3822
- transition: all 0.15s;
3823
- }
3824
- .preview-nav-btn:hover:not(.disabled) {
3825
- background: rgba(255, 255, 255, 0.2);
3826
- transform: translateY(-50%) scale(1.1);
3827
- }
3828
- .preview-nav-btn:active:not(.disabled) {
3829
- transform: translateY(-50%) scale(0.95);
3830
- }
3831
- .preview-nav-btn.disabled {
3832
- opacity: 0.4;
3833
- cursor: not-allowed;
3834
- }
3835
- .preview-nav-prev {
3836
- left: 24px;
3837
- }
3838
- .preview-nav-next {
3839
- right: 24px;
3840
- }
3841
- .preview-main {
3842
- flex: 1;
3843
- display: flex;
3844
- align-items: center;
3845
- justify-content: center;
3846
- overflow: hidden;
3847
- padding: 0 80px;
3848
- }
3849
- .preview-image {
3850
- max-width: calc(100% - 80px);
3851
- max-height: calc(100vh - 140px);
3852
- object-fit: contain;
3853
- border-radius: 8px;
3854
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);
3855
- }
3856
-
3857
- /* src/components/common/ConfirmDialog.css */
3858
- .confirm-dialog-overlay {
3859
- position: fixed;
3860
- inset: 0;
3861
- z-index: 1000;
3862
- display: flex;
3863
- align-items: center;
3864
- justify-content: center;
3865
- background: rgba(0, 0, 0, 0.5);
3866
- backdrop-filter: blur(2px);
3867
- animation: fadeIn 0.2s ease;
3868
- }
3869
- .confirm-dialog {
3870
- width: 100%;
3871
- max-width: 400px;
3872
- margin: 16px;
3873
- background: var(--chat-dropdown-bg, #252526);
3874
- border: 1px solid rgba(255, 255, 255, 0.1);
3875
- border-radius: 12px;
3876
- box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
3877
- overflow: hidden;
3878
- animation: scaleIn 0.2s ease;
3879
- }
3880
- .confirm-dialog-header {
3881
- display: flex;
3882
- align-items: center;
3883
- gap: 8px;
3884
- padding: 12px 16px;
3885
- border-bottom: 1px solid var(--chat-border, #333);
3886
- }
3887
- .confirm-dialog-header .icon {
3888
- flex-shrink: 0;
3889
- }
3890
- .confirm-dialog-header .icon.warning {
3891
- color: #f59e0b;
3892
- }
3893
- .confirm-dialog-header .icon.danger {
3894
- color: #ef4444;
3895
- }
3896
- .confirm-dialog-header .icon.info {
3897
- color: #3b82f6;
3898
- }
3899
- .confirm-dialog-header .title {
3900
- font-size: 14px;
3901
- font-weight: 600;
3902
- color: var(--chat-text, #fff);
3903
- }
3904
- .confirm-dialog-content {
3905
- padding: 16px;
3906
- font-size: 13px;
3907
- line-height: 1.6;
3908
- color: var(--chat-text-muted, #999);
3909
- }
3910
- .confirm-dialog-footer {
3911
- display: flex;
3912
- justify-content: flex-end;
3913
- gap: 8px;
3914
- padding: 12px 16px;
3915
- border-top: 1px solid var(--chat-border, #333);
3916
- }
3917
- .confirm-dialog-footer .btn {
3918
- padding: 6px 12px;
3919
- font-size: 13px;
3920
- font-weight: 500;
3921
- border: none;
3922
- border-radius: 4px;
3923
- cursor: pointer;
3924
- transition: all 0.15s;
3925
- }
3926
- .confirm-dialog-footer .btn-cancel {
3927
- background: transparent;
3928
- color: var(--chat-text-muted, #999);
3929
- border: 1px solid var(--chat-border, #444);
3930
- }
3931
- .confirm-dialog-footer .btn-cancel:hover {
3932
- background: rgba(255, 255, 255, 0.05);
3933
- color: var(--chat-text, #fff);
3934
- }
3935
- .confirm-dialog-footer .btn-info {
3936
- background: #3b82f6;
3937
- color: #fff;
3938
- }
3939
- .confirm-dialog-footer .btn-info:hover {
3940
- background: #2563eb;
3941
- }
3942
- .confirm-dialog-footer .btn-warning {
3943
- background: #f59e0b;
3944
- color: #000;
3945
- }
3946
- .confirm-dialog-footer .btn-warning:hover {
3947
- background: #d97706;
3948
- }
3949
- .confirm-dialog-footer .btn-danger {
3950
- background: #ef4444;
3951
- color: #fff;
3952
- }
3953
- .confirm-dialog-footer .btn-danger:hover {
3954
- background: #dc2626;
3955
- }
3956
- @keyframes fadeIn {
3957
- from {
3958
- opacity: 0;
3959
- }
3960
- to {
3961
- opacity: 1;
3962
- }
3963
- }
3964
- @keyframes scaleIn {
3965
- from {
3966
- transform: scale(0.95);
3967
- opacity: 0;
3968
- }
3969
- to {
3970
- transform: scale(1);
3971
- opacity: 1;
3972
- }
3973
- }
3974
-
3975
- /* src/components/common/Toast.css */
3976
- .toast-container {
3977
- position: fixed;
3978
- top: 60px;
3979
- left: 50%;
3980
- transform: translateX(-50%);
3981
- z-index: 10000;
3982
- pointer-events: none;
3983
- animation: toast-in 0.2s ease;
3984
- }
3985
- .toast {
3986
- padding: 8px 16px;
3987
- border-radius: 6px;
3988
- font-size: 13px;
3989
- border: 1px solid;
3990
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
3991
- }
3992
- .toast-info,
3993
- .toast-success {
3994
- background: var(--chat-bg-secondary, #2a2a2a);
3995
- color: var(--chat-text, #fff);
3996
- border-color: var(--chat-border, #444);
3997
- }
3998
- .toast-warning {
3999
- background: rgba(245, 158, 11, 0.15);
4000
- color: #f59e0b;
4001
- border-color: rgba(245, 158, 11, 0.3);
4002
- }
4003
- .toast-error {
4004
- background: rgba(239, 68, 68, 0.15);
4005
- color: #ef4444;
4006
- border-color: rgba(239, 68, 68, 0.3);
4007
- }
4008
- @keyframes toast-in {
4009
- from {
4010
- opacity: 0;
4011
- transform: translateX(-50%) translateY(-10px);
4012
- }
4013
- to {
4014
- opacity: 1;
4015
- transform: translateX(-50%) translateY(0);
4016
- }
4017
- }