@touchvue/chat 1.0.0-beta.2 → 1.0.0-beta.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 (191) hide show
  1. package/es/package.json.mjs +1 -1
  2. package/es/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/HelloChat.vue2.mjs +3 -3
  3. package/es/packages/components/touchchat/component/AiRobot/HelloChat.vue2.mjs.map +1 -0
  4. package/es/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/face.vue2.mjs +3 -1
  5. package/es/packages/components/touchchat/component/AiRobot/face.vue2.mjs.map +1 -0
  6. package/es/packages/components/touchchat/component/AiRobot/letter.vue2.mjs.map +1 -0
  7. package/es/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/meterialPrepare.vue2.mjs +9 -6
  8. package/es/packages/components/touchchat/component/AiRobot/meterialPrepare.vue2.mjs.map +1 -0
  9. package/es/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/start.vue2.mjs +1 -1
  10. package/es/packages/components/touchchat/component/AiRobot/start.vue2.mjs.map +1 -0
  11. package/es/packages/components/touchchat/component/CardView.vue2.mjs.map +1 -1
  12. package/es/packages/components/touchchat/component/HelloChat.vue2.mjs +2 -2
  13. package/es/packages/components/touchchat/component/HelloChat.vue2.mjs.map +1 -1
  14. package/es/packages/components/touchchat/img/aiAvatar.png.mjs +4 -0
  15. package/es/packages/components/touchchat/img/aiAvatar.png.mjs.map +1 -0
  16. package/es/packages/components/touchchat/img/icon.png.mjs.map +1 -0
  17. package/es/packages/components/touchchat/img/userAvatar.png.mjs +4 -0
  18. package/es/packages/components/touchchat/img/userAvatar.png.mjs.map +1 -0
  19. package/es/packages/components/touchchat/index.mjs +1 -1
  20. package/es/packages/components/touchchat/index.mjs.map +1 -1
  21. package/es/packages/components/touchchat/src/AiChat/AiMessage.vue2.mjs +115 -199
  22. package/es/packages/components/touchchat/src/AiChat/AiMessage.vue2.mjs.map +1 -1
  23. package/es/packages/components/touchchat/src/AiChat/ChatInput.vue2.mjs +43 -137
  24. package/es/packages/components/touchchat/src/AiChat/ChatInput.vue2.mjs.map +1 -1
  25. package/es/packages/components/touchchat/src/AiChat/HistoryList.vue2.mjs +90 -127
  26. package/es/packages/components/touchchat/src/AiChat/HistoryList.vue2.mjs.map +1 -1
  27. package/es/packages/components/touchchat/src/AiChat/HistorySidebar.vue2.mjs +17 -39
  28. package/es/packages/components/touchchat/src/AiChat/HistorySidebar.vue2.mjs.map +1 -1
  29. package/es/packages/components/touchchat/src/AiChat/MessageActions.vue2.mjs +41 -181
  30. package/es/packages/components/touchchat/src/AiChat/MessageActions.vue2.mjs.map +1 -1
  31. package/es/packages/components/touchchat/src/{AiRobot → AiChat}/Scene.vue2.mjs +1 -1
  32. package/es/packages/components/touchchat/src/AiChat/Scene.vue2.mjs.map +1 -0
  33. package/es/packages/components/touchchat/src/AiChat/SiderBarView.vue.mjs +6 -0
  34. package/es/packages/components/touchchat/src/AiChat/SiderBarView.vue.mjs.map +1 -0
  35. package/es/packages/components/touchchat/src/AiChat/SiderBarView.vue2.mjs +25 -0
  36. package/es/packages/components/touchchat/src/AiChat/SiderBarView.vue2.mjs.map +1 -0
  37. package/es/packages/components/touchchat/src/AiChat/TouchChat.vue2.mjs +618 -390
  38. package/es/packages/components/touchchat/src/AiChat/TouchChat.vue2.mjs.map +1 -1
  39. package/es/packages/components/touchchat/src/AiChat/TouchHistory.vue2.mjs +200 -89
  40. package/es/packages/components/touchchat/src/AiChat/TouchHistory.vue2.mjs.map +1 -1
  41. package/es/packages/components/touchchat/src/AiChat/UserMessage.vue2.mjs +42 -37
  42. package/es/packages/components/touchchat/src/AiChat/UserMessage.vue2.mjs.map +1 -1
  43. package/es/packages/components/touchchat/src/index.vue2.mjs +54 -29
  44. package/es/packages/components/touchchat/src/index.vue2.mjs.map +1 -1
  45. package/lib/package.json.js +1 -1
  46. package/lib/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/HelloChat.vue2.js +3 -3
  47. package/lib/packages/components/touchchat/component/AiRobot/HelloChat.vue2.js.map +1 -0
  48. package/lib/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/face.vue2.js +3 -1
  49. package/lib/packages/components/touchchat/component/AiRobot/face.vue2.js.map +1 -0
  50. package/lib/packages/components/touchchat/component/AiRobot/letter.vue2.js.map +1 -0
  51. package/lib/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/meterialPrepare.vue2.js +8 -5
  52. package/lib/packages/components/touchchat/component/AiRobot/meterialPrepare.vue2.js.map +1 -0
  53. package/lib/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/start.vue2.js +1 -1
  54. package/lib/packages/components/touchchat/component/AiRobot/start.vue2.js.map +1 -0
  55. package/lib/packages/components/touchchat/component/CardView.vue2.js.map +1 -1
  56. package/lib/packages/components/touchchat/component/HelloChat.vue2.js +2 -2
  57. package/lib/packages/components/touchchat/component/HelloChat.vue2.js.map +1 -1
  58. package/lib/packages/components/touchchat/img/aiAvatar.png.js +8 -0
  59. package/lib/packages/components/touchchat/img/aiAvatar.png.js.map +1 -0
  60. package/lib/packages/components/touchchat/img/icon.png.js.map +1 -0
  61. package/lib/packages/components/touchchat/img/userAvatar.png.js +8 -0
  62. package/lib/packages/components/touchchat/img/userAvatar.png.js.map +1 -0
  63. package/lib/packages/components/touchchat/index.js +1 -1
  64. package/lib/packages/components/touchchat/index.js.map +1 -1
  65. package/lib/packages/components/touchchat/src/AiChat/AiMessage.vue2.js +107 -191
  66. package/lib/packages/components/touchchat/src/AiChat/AiMessage.vue2.js.map +1 -1
  67. package/lib/packages/components/touchchat/src/AiChat/ChatInput.vue2.js +43 -137
  68. package/lib/packages/components/touchchat/src/AiChat/ChatInput.vue2.js.map +1 -1
  69. package/lib/packages/components/touchchat/src/AiChat/HistoryList.vue2.js +89 -126
  70. package/lib/packages/components/touchchat/src/AiChat/HistoryList.vue2.js.map +1 -1
  71. package/lib/packages/components/touchchat/src/AiChat/HistorySidebar.vue2.js +16 -38
  72. package/lib/packages/components/touchchat/src/AiChat/HistorySidebar.vue2.js.map +1 -1
  73. package/lib/packages/components/touchchat/src/AiChat/MessageActions.vue2.js +41 -181
  74. package/lib/packages/components/touchchat/src/AiChat/MessageActions.vue2.js.map +1 -1
  75. package/lib/packages/components/touchchat/src/{AiRobot → AiChat}/Scene.vue2.js +1 -1
  76. package/lib/packages/components/touchchat/src/AiChat/Scene.vue2.js.map +1 -0
  77. package/lib/packages/components/touchchat/src/AiChat/SiderBarView.vue.js +10 -0
  78. package/lib/packages/components/touchchat/src/AiChat/SiderBarView.vue.js.map +1 -0
  79. package/lib/packages/components/touchchat/src/AiChat/SiderBarView.vue2.js +29 -0
  80. package/lib/packages/components/touchchat/src/AiChat/SiderBarView.vue2.js.map +1 -0
  81. package/lib/packages/components/touchchat/src/AiChat/TouchChat.vue2.js +615 -387
  82. package/lib/packages/components/touchchat/src/AiChat/TouchChat.vue2.js.map +1 -1
  83. package/lib/packages/components/touchchat/src/AiChat/TouchHistory.vue2.js +199 -88
  84. package/lib/packages/components/touchchat/src/AiChat/TouchHistory.vue2.js.map +1 -1
  85. package/lib/packages/components/touchchat/src/AiChat/UserMessage.vue2.js +41 -36
  86. package/lib/packages/components/touchchat/src/AiChat/UserMessage.vue2.js.map +1 -1
  87. package/lib/packages/components/touchchat/src/index.vue2.js +53 -28
  88. package/lib/packages/components/touchchat/src/index.vue2.js.map +1 -1
  89. package/package.json +81 -81
  90. package/theme/components/index.css +1447 -2004
  91. package/theme/img/aiArrow.png +0 -0
  92. package/theme/img/loading.png +0 -0
  93. package/theme/img/logo.png +0 -0
  94. package/theme/img/userArrow.png +0 -0
  95. package/theme/index.css +1448 -2005
  96. package/theme/skin/default.css +1448 -2005
  97. package/es/packages/components/touchchat/img/AI.png.mjs +0 -4
  98. package/es/packages/components/touchchat/img/AI.png.mjs.map +0 -1
  99. package/es/packages/components/touchchat/img/asir.png.mjs +0 -4
  100. package/es/packages/components/touchchat/img/asir.png.mjs.map +0 -1
  101. package/es/packages/components/touchchat/src/AiRobot/ChatPanel.vue.mjs +0 -6
  102. package/es/packages/components/touchchat/src/AiRobot/ChatPanel.vue.mjs.map +0 -1
  103. package/es/packages/components/touchchat/src/AiRobot/ChatPanel.vue2.mjs +0 -620
  104. package/es/packages/components/touchchat/src/AiRobot/ChatPanel.vue2.mjs.map +0 -1
  105. package/es/packages/components/touchchat/src/AiRobot/Content.vue.mjs +0 -6
  106. package/es/packages/components/touchchat/src/AiRobot/Content.vue.mjs.map +0 -1
  107. package/es/packages/components/touchchat/src/AiRobot/Content.vue2.mjs +0 -224
  108. package/es/packages/components/touchchat/src/AiRobot/Content.vue2.mjs.map +0 -1
  109. package/es/packages/components/touchchat/src/AiRobot/Header.vue.mjs +0 -6
  110. package/es/packages/components/touchchat/src/AiRobot/Header.vue.mjs.map +0 -1
  111. package/es/packages/components/touchchat/src/AiRobot/Header.vue2.mjs +0 -188
  112. package/es/packages/components/touchchat/src/AiRobot/Header.vue2.mjs.map +0 -1
  113. package/es/packages/components/touchchat/src/AiRobot/Input.vue.mjs +0 -6
  114. package/es/packages/components/touchchat/src/AiRobot/Input.vue.mjs.map +0 -1
  115. package/es/packages/components/touchchat/src/AiRobot/Input.vue2.mjs +0 -69
  116. package/es/packages/components/touchchat/src/AiRobot/Input.vue2.mjs.map +0 -1
  117. package/es/packages/components/touchchat/src/AiRobot/Scene.vue2.mjs.map +0 -1
  118. package/es/packages/components/touchchat/src/AiRobot/component/HelloChat.vue2.mjs.map +0 -1
  119. package/es/packages/components/touchchat/src/AiRobot/component/face.vue2.mjs.map +0 -1
  120. package/es/packages/components/touchchat/src/AiRobot/component/letter.vue2.mjs.map +0 -1
  121. package/es/packages/components/touchchat/src/AiRobot/component/meterialPrepare.vue2.mjs.map +0 -1
  122. package/es/packages/components/touchchat/src/AiRobot/component/start.vue2.mjs.map +0 -1
  123. package/es/packages/components/touchchat/src/AiRobot/img/Avatar-AI.png.mjs +0 -4
  124. package/es/packages/components/touchchat/src/AiRobot/img/Avatar-AI.png.mjs.map +0 -1
  125. package/es/packages/components/touchchat/src/AiRobot/img/icon.png.mjs.map +0 -1
  126. package/es/packages/components/touchchat/src/AiRobot/index.vue.mjs +0 -6
  127. package/es/packages/components/touchchat/src/AiRobot/index.vue.mjs.map +0 -1
  128. package/es/packages/components/touchchat/src/AiRobot/index.vue2.mjs +0 -67
  129. package/es/packages/components/touchchat/src/AiRobot/index.vue2.mjs.map +0 -1
  130. package/lib/packages/components/touchchat/img/AI.png.js +0 -8
  131. package/lib/packages/components/touchchat/img/AI.png.js.map +0 -1
  132. package/lib/packages/components/touchchat/img/asir.png.js +0 -8
  133. package/lib/packages/components/touchchat/img/asir.png.js.map +0 -1
  134. package/lib/packages/components/touchchat/src/AiRobot/ChatPanel.vue.js +0 -10
  135. package/lib/packages/components/touchchat/src/AiRobot/ChatPanel.vue.js.map +0 -1
  136. package/lib/packages/components/touchchat/src/AiRobot/ChatPanel.vue2.js +0 -624
  137. package/lib/packages/components/touchchat/src/AiRobot/ChatPanel.vue2.js.map +0 -1
  138. package/lib/packages/components/touchchat/src/AiRobot/Content.vue.js +0 -10
  139. package/lib/packages/components/touchchat/src/AiRobot/Content.vue.js.map +0 -1
  140. package/lib/packages/components/touchchat/src/AiRobot/Content.vue2.js +0 -228
  141. package/lib/packages/components/touchchat/src/AiRobot/Content.vue2.js.map +0 -1
  142. package/lib/packages/components/touchchat/src/AiRobot/Header.vue.js +0 -10
  143. package/lib/packages/components/touchchat/src/AiRobot/Header.vue.js.map +0 -1
  144. package/lib/packages/components/touchchat/src/AiRobot/Header.vue2.js +0 -192
  145. package/lib/packages/components/touchchat/src/AiRobot/Header.vue2.js.map +0 -1
  146. package/lib/packages/components/touchchat/src/AiRobot/Input.vue.js +0 -10
  147. package/lib/packages/components/touchchat/src/AiRobot/Input.vue.js.map +0 -1
  148. package/lib/packages/components/touchchat/src/AiRobot/Input.vue2.js +0 -73
  149. package/lib/packages/components/touchchat/src/AiRobot/Input.vue2.js.map +0 -1
  150. package/lib/packages/components/touchchat/src/AiRobot/Scene.vue2.js.map +0 -1
  151. package/lib/packages/components/touchchat/src/AiRobot/component/HelloChat.vue2.js.map +0 -1
  152. package/lib/packages/components/touchchat/src/AiRobot/component/face.vue2.js.map +0 -1
  153. package/lib/packages/components/touchchat/src/AiRobot/component/letter.vue2.js.map +0 -1
  154. package/lib/packages/components/touchchat/src/AiRobot/component/meterialPrepare.vue2.js.map +0 -1
  155. package/lib/packages/components/touchchat/src/AiRobot/component/start.vue2.js.map +0 -1
  156. package/lib/packages/components/touchchat/src/AiRobot/img/Avatar-AI.png.js +0 -8
  157. package/lib/packages/components/touchchat/src/AiRobot/img/Avatar-AI.png.js.map +0 -1
  158. package/lib/packages/components/touchchat/src/AiRobot/img/icon.png.js.map +0 -1
  159. package/lib/packages/components/touchchat/src/AiRobot/index.vue.js +0 -10
  160. package/lib/packages/components/touchchat/src/AiRobot/index.vue.js.map +0 -1
  161. package/lib/packages/components/touchchat/src/AiRobot/index.vue2.js +0 -71
  162. package/lib/packages/components/touchchat/src/AiRobot/index.vue2.js.map +0 -1
  163. package/theme/img/default.png +0 -0
  164. /package/es/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/HelloChat.vue.mjs +0 -0
  165. /package/es/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/HelloChat.vue.mjs.map +0 -0
  166. /package/es/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/face.vue.mjs +0 -0
  167. /package/es/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/face.vue.mjs.map +0 -0
  168. /package/es/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/letter.vue.mjs +0 -0
  169. /package/es/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/letter.vue.mjs.map +0 -0
  170. /package/es/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/letter.vue2.mjs +0 -0
  171. /package/es/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/meterialPrepare.vue.mjs +0 -0
  172. /package/es/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/meterialPrepare.vue.mjs.map +0 -0
  173. /package/es/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/start.vue.mjs +0 -0
  174. /package/es/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/start.vue.mjs.map +0 -0
  175. /package/es/packages/components/touchchat/{src/AiRobot/img → img}/icon.png.mjs +0 -0
  176. /package/es/packages/components/touchchat/src/{AiRobot → AiChat}/Scene.vue.mjs +0 -0
  177. /package/es/packages/components/touchchat/src/{AiRobot → AiChat}/Scene.vue.mjs.map +0 -0
  178. /package/lib/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/HelloChat.vue.js +0 -0
  179. /package/lib/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/HelloChat.vue.js.map +0 -0
  180. /package/lib/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/face.vue.js +0 -0
  181. /package/lib/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/face.vue.js.map +0 -0
  182. /package/lib/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/letter.vue.js +0 -0
  183. /package/lib/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/letter.vue.js.map +0 -0
  184. /package/lib/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/letter.vue2.js +0 -0
  185. /package/lib/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/meterialPrepare.vue.js +0 -0
  186. /package/lib/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/meterialPrepare.vue.js.map +0 -0
  187. /package/lib/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/start.vue.js +0 -0
  188. /package/lib/packages/components/touchchat/{src/AiRobot/component → component/AiRobot}/start.vue.js.map +0 -0
  189. /package/lib/packages/components/touchchat/{src/AiRobot/img → img}/icon.png.js +0 -0
  190. /package/lib/packages/components/touchchat/src/{AiRobot → AiChat}/Scene.vue.js +0 -0
  191. /package/lib/packages/components/touchchat/src/{AiRobot → AiChat}/Scene.vue.js.map +0 -0
package/theme/index.css CHANGED
@@ -1,1959 +1,1577 @@
1
1
  :root {
2
2
  --ui-color-primary: #409eff;
3
3
  }
4
- .ai-message {
4
+ .touchchat {
5
+ --ai-gap: 0.5em;
6
+ --ai-justify: flex-start;
7
+ --ai-content-gap: 0.25em;
8
+ --ai-content-max-width: 75%;
9
+ --ai-avatar-pic-width: 2.5em;
10
+ --ai-avatar-pic-height: auto;
11
+ --ai-avatar-pic-radius: 50%;
12
+ --ai-bubble-bg: #fff;
13
+ --ai-bubble-color: #000;
14
+ --ai-bubble-padding: 1em 1.5em;
15
+ --ai-bubble-lh: 1.8em;
16
+ --ai-bubble-radius: 0.5em 0 0.5em 0.5em;
17
+ --ai-bubble-border: 1px solid #eaecf0;
18
+ --ai-bubble-arrow-left: calc(-0.5em + 1px);
19
+ --ai-bubble-arrow-top: 0;
20
+ --ai-bubble-arrow-width: 0.5em;
21
+ --ai-bubble-arrow-height: 1em;
22
+ --ai-bubble-arrow-bg: url(./img/aiArrow.png);
23
+ --ai-bubble-arrow-bg-size: 100% 100%;
24
+ --ai-bubble-text-size: 1.1em;
25
+ --ai-bubble-text-weight: normal;
26
+ --ai-bubble-text-family: inherit;
27
+ --ai-think-padding: 1em;
28
+ --ai-think-radius: 0.5em;
29
+ --ai-think-bg: #f7f8fa;
30
+ --ai-think-gap: 1em;
31
+ --ai-think-state-gap: 0.5em;
32
+ --ai-think-state-weight: bold;
33
+ --ai-think-state-color: inherit;
34
+ --ai-think-state-icon-size: 1em;
35
+ --ai-think-state-icon-family: 'touchchat-icon';
36
+ --ai-think-state-icon-color: var(--color-primary);
37
+ --ai-think-state-icon-content: '\e607';
38
+ --ai-think-toggle-width: 2em;
39
+ --ai-think-toggle-height: 2em;
40
+ --ai-think-toggle-radius: 0.25em;
41
+ --ai-think-toggle-color: inherit;
42
+ --ai-think-toggle-border: none;
43
+ --ai-think-toggle-bg: transparent;
44
+ --ai-think-toggle-size: 1em;
45
+ --ai-think-toggle-family: 'touchchat-icon';
46
+ --ai-think-toggle-content: '\e60b';
47
+ --ai-think-toggle-hover-color: var(--ai-think-toggle-color);
48
+ --ai-think-toggle-hover-bg: rgba(0, 0, 0, 0.1);
49
+ --ai-think-toggle-hover-border: var(--ai-think-toggle-border);
50
+ --ai-think-toggle-active-color: var(--ai-think-toggle-color);
51
+ --ai-think-toggle-active-bg: rgba(0, 0, 0, 0.3);
52
+ --ai-think-toggle-active-border: var(--ai-think-toggle-border);
53
+ --ai-think-toggle-expand-content: '\e60c';
54
+ --ai-loading-gap: 0.5em;
55
+ --ai-loading-color: var(--color-primary);
56
+ --ai-loading-width: 6em;
57
+ --ai-loading-icon-width: 1.5em;
58
+ --ai-loading-icon-height: 1.5em;
59
+ --ai-loading-icon-bg: url(./img/loading.png);
60
+ --ai-loading-icon-bg-size: 100% 100%;
61
+ --ai-loading-text-size: 1em;
62
+ --ai-loading-text-weight: normal;
63
+ --ai-loading-text-family: inherit;
64
+ --code-copy-border: 0 none;
65
+ --code-copy-top: 0.5em;
66
+ --code-copy-right: 0.5em;
67
+ --code-copy-padding: 0 0.5em;
68
+ --code-copy-height: 2em;
69
+ --code-copy-radius: 0.25em;
70
+ --code-copy-display-gap: 0.5em;
71
+ --code-copy-bg: none;
72
+ --code-copy-color: inherit;
73
+ --code-copy-icon-family: 'touchchat-icon';
74
+ --code-copy-icon-size: 1em;
75
+ --code-copy-icon-content: '\e603';
76
+ --code-copy-hover-bg: rgba(0, 0, 0, 0.1);
77
+ --code-copy-hover-color: var(--code-copy-color);
78
+ --code-copy-hover-border: var(--code-copy-border);
79
+ --code-copy-active-bg: rgba(0, 0, 0, 0.3);
80
+ --code-copy-active-color: var(--code-copy-color);
81
+ --code-copy-active-border: var(--code-copy-border);
82
+ }
83
+ .touchchat-ai {
84
+ display: flex;
85
+ gap: var(--ai-gap);
86
+ justify-content: var(--ai-justify);
87
+ }
88
+ .touchchat-ai-content {
89
+ order: 1;
5
90
  display: flex;
6
- justify-content: flex-start;
7
- margin-right: auto;
91
+ flex-direction: column;
92
+ gap: var(--ai-content-gap);
93
+ max-width: var(--ai-content-max-width);
8
94
  }
9
- .ai-message .message-content {
10
- flex-direction: row;
11
- display: flex;
12
- align-items: flex-start;
95
+ .touchchat-ai-content.is-full {
96
+ flex: 1;
13
97
  }
14
- .ai-message .text-content {
15
- background-color: #ffffff;
16
- display: flex;
98
+ .touchchat-ai-bubble {
99
+ flex: 1;
100
+ background: var(--ai-bubble-bg);
101
+ color: var(--ai-bubble-color);
102
+ padding: var(--ai-bubble-padding);
103
+ line-height: var(--ai-bubble-lh);
104
+ border-radius: var(--ai-bubble-radius);
17
105
  position: relative;
18
- border-radius: 0 0.75em 0.75em 0.75em;
19
- border: 1px solid var(--Border-Border-, #eaecf0);
20
- margin-right: 0;
21
- margin-left: 0.5em;
22
- padding: 0.75em 1em;
23
- }
24
- .ai-message .text-content::after {
25
- background: url('./components/aiChat/img/left.png') no-repeat;
106
+ }
107
+ .touchchat-ai-bubble:before {
108
+ content: '';
109
+ position: absolute;
110
+ display: block;
111
+ left: var(--ai-bubble-arrow-left);
112
+ z-index: 2;
113
+ top: var(--ai-bubble-arrow-top);
114
+ width: var(--ai-bubble-arrow-width);
115
+ height: var(--ai-bubble-arrow-height);
116
+ background: var(--ai-bubble-arrow-bg);
117
+ background-size: var(--ai-bubble-arrow-bg-size);
118
+ }
119
+ .touchchat-ai-bubble:after {
120
+ pointer-events: none;
26
121
  content: '';
27
- background-size: 100% 100%;
28
- width: 1em;
29
- height: 0.75em;
30
- display: inline-block;
31
122
  position: absolute;
32
- top: -0.0625em;
33
- left: -1em;
34
- border: 0;
35
- transform: rotate(0);
123
+ inset: 0;
124
+ border-radius: 0 0.5em 0.5em 0.5em;
125
+ border: var(--ai-bubble-border);
126
+ }
127
+ .touchchat-ai-avatar-pic {
128
+ width: var(--ai-avatar-pic-width);
129
+ height: var(--ai-avatar-pic-height);
130
+ border-radius: var(--ai-avatar-pic-radius);
131
+ order: 2;
132
+ }
133
+ .touchchat-ai-bubble-text {
134
+ font-size: var(--ai-bubble-text-size);
135
+ font-weight: var(--ai-bubble-text-weight);
136
+ font-family: var(--ai-bubble-text-family);
137
+ }
138
+ .touchchat-markdown hr {
139
+ margin: 1em 0;
140
+ border: 0 none;
141
+ border-top: 1px solid #eee;
142
+ }
143
+ .touchchat-markdown p:not(:first-child):not(:last-child) {
144
+ margin: 1em 0;
145
+ }
146
+ .touchchat-markdown ol,
147
+ .touchchat-markdown ul {
148
+ margin: 1em 0 1em 2em;
149
+ }
150
+ .touchchat-markdown ol li:not(:first-child),
151
+ .touchchat-markdown ul li:not(:first-child) {
152
+ margin-top: 0.5em;
153
+ }
154
+ .touchchat-markdown pre {
155
+ margin: 1em 0;
36
156
  }
37
- .reasoning-content {
157
+ .touchchat-markdown h1 {
158
+ margin: 0.5em 0;
159
+ }
160
+ .touchchat-markdown h2 {
161
+ margin: 1em 0 0.5em 0;
162
+ }
163
+ .touchchat-ai-think {
164
+ padding: var(--ai-think-padding);
165
+ margin-top: 0.5em;
166
+ margin-bottom: 1em;
167
+ border-radius: var(--ai-think-radius);
168
+ background: var(--ai-think-bg);
38
169
  display: flex;
39
- justify-content: center;
40
- align-items: flex-start;
41
170
  flex-direction: column;
42
- padding: 0.875em;
43
- gap: 0.875em;
44
- border-radius: 0.5em;
45
- background: var(--Fill-Fill--, #f7f8fa);
46
- margin-bottom: 0.5em;
47
- color: var(--text-icon-text-icon, #1d2129);
48
- /* Body 正文/Medium */
49
- font-family: 'PingFang SC';
50
- font-size: 0.875em;
51
- font-style: normal;
52
- font-weight: 400;
53
- line-height: 1.375em;
54
- /* 157.143% */
171
+ gap: var(--ai-think-gap);
172
+ }
173
+ .touchchat-ai-think p:not(:first-child):not(:last-child) {
174
+ margin: 1em 0;
55
175
  }
56
- .reasoning-content .reasoning-header {
176
+ .touchchat-ai-think-header {
57
177
  display: flex;
58
- justify-content: space-between;
59
- align-items: center;
60
- flex-direction: row;
61
- align-self: stretch;
62
- min-width: 12em;
63
178
  }
64
- .reasoning-content .reasoning-header .reasoning-status {
179
+ .touchchat-ai-think-state {
65
180
  display: flex;
66
- justify-content: flex-start;
181
+ flex: 1;
67
182
  align-items: center;
68
- flex-direction: row;
69
- }
70
- .reasoning-content .reasoning-header .status-text {
71
- color: var(--text-icon-text-icon, #1d2129);
72
- text-align: center;
73
- font-family: 'PingFang SC';
74
- font-size: 0.75em;
75
- font-style: normal;
76
- font-weight: 500;
77
- line-height: 0.875em;
78
- /* 116.667% */
79
- margin-left: 0.125em;
183
+ gap: var(--ai-think-state-gap);
184
+ font-weight: var(--ai-think-state-weight);
185
+ color: var(--ai-think-state-color);
186
+ }
187
+ .touchchat-ai-think-state:before {
188
+ font-weight: normal;
189
+ font-family: var(--ai-think-state-icon-family);
190
+ color: var(--ai-think-state-icon-color);
191
+ content: var(--ai-think-state-icon-content);
192
+ font-size: var(--ai-think-state-icon-size);
193
+ }
194
+ .touchchat-ai-think-toggle {
195
+ width: var(--ai-think-toggle-width);
196
+ height: var(--ai-think-toggle-height);
197
+ display: inline-flex;
198
+ align-items: center;
199
+ justify-content: center;
200
+ border-radius: var(--ai-think-toggle-radius);
201
+ color: var(--ai-think-toggle-color);
202
+ border: var(--ai-think-toggle-border);
203
+ background: var(--ai-think-toggle-bg);
80
204
  }
81
- .reasoning-content .reasoning-header .folding {
82
- cursor: pointer;
83
- transition: transform 0.3s ease;
205
+ .touchchat-ai-think-toggle:hover {
206
+ color: var(--ai-think-toggle-hover-color);
207
+ background: var(--ai-think-toggle-hover-bg);
208
+ border: var(--ai-think-toggle-hover-border);
84
209
  }
85
- .reasoning-content .reasoning-header .folding.rotate {
86
- transform: rotate(180deg);
210
+ .touchchat-ai-think-toggle:active {
211
+ color: var(--ai-think-toggle-active-color);
212
+ background: var(--ai-think-toggle-active-bg);
213
+ border: var(--ai-think-toggle-active-border);
87
214
  }
88
- .reasoning-content .reasoning-header .folding:hover {
89
- opacity: 0.8;
90
- background-color: #eeeeee;
215
+ .touchchat-ai-think-toggle.is-expand:before {
216
+ content: var(--ai-think-toggle-expand-content);
91
217
  }
92
- .reasoning-content .reasoning-header .folding.fold-active {
93
- transform: rotate(180deg);
218
+ .touchchat-ai-think-toggle-icon:before {
219
+ font-family: var(--ai-think-toggle-family);
220
+ content: var(--ai-think-toggle-content);
221
+ font-size: var(--ai-think-toggle-size);
94
222
  }
95
- .reasoning-content ul,
96
- .reasoning-content ol {
97
- padding-left: 1.5em;
98
- margin: 0.5em 0;
223
+ .touchchat-ai-loading {
224
+ display: flex;
225
+ gap: var(--ai-loading-gap);
226
+ align-items: center;
227
+ color: var(--ai-loading-color);
228
+ width: var(--ai-loading-width);
99
229
  }
100
- .reasoning-content ul li,
101
- .reasoning-content ol li {
102
- margin-left: 0;
103
- padding-left: 0.5em;
104
- word-wrap: break-word;
230
+ .touchchat-ai-loading-icon {
231
+ content: '';
232
+ display: inline-block;
233
+ width: var(--ai-loading-icon-width);
234
+ height: var(--ai-loading-icon-height);
235
+ background: var(--ai-loading-icon-bg);
236
+ background-size: var(--ai-loading-icon-bg-size);
237
+ animation: 0.5s loading steps(32) infinite;
238
+ }
239
+ .touchchat-ai-loading-text {
240
+ font-size: var(--ai-loading-text-size);
241
+ font-weight: var(--ai-loading-text-weight);
242
+ font-family: var(--ai-loading-text-family);
243
+ }
244
+ .touchchat-code-copy {
245
+ border: var(--code-copy-border);
246
+ position: absolute;
247
+ top: var(--code-copy-top);
248
+ right: var(--code-copy-right);
249
+ padding: var(--code-copy-padding);
250
+ height: var(--code-copy-height);
251
+ border-radius: var(--code-copy-radius);
252
+ display: flex;
253
+ align-items: center;
254
+ justify-content: center;
255
+ background: var(--code-copy-bg);
256
+ gap: var(--code-copy-display-gap);
257
+ cursor: default;
258
+ color: var(--code-copy-color);
105
259
  }
106
- .reasoning-content p {
107
- margin: 0 0 0.5em 0;
108
- line-height: 1.5;
260
+ .touchchat-code-copy:before {
261
+ content: var(--code-copy-icon-content);
262
+ font-family: var(--code-copy-icon-family);
263
+ font-size: var(--code-copy-icon-size);
109
264
  }
110
- .reasoning-content p:last-child {
111
- margin-bottom: 0;
265
+ .touchchat-code-copy:hover {
266
+ background: var(--code-copy-hover-bg);
267
+ color: var(--code-copy-hover-color);
268
+ border: var(--code-copy-hover-border);
112
269
  }
113
- .reasoning-content > div {
114
- width: 100%;
115
- box-sizing: border-box;
270
+ .touchchat-code-copy:active {
271
+ background: var(--code-copy-active-bg);
272
+ color: var(--code-copy-active-color);
273
+ border: var(--code-copy-active-border);
116
274
  }
117
- .reasoning-collapse-enter-active,
118
- .reasoning-collapse-leave-active {
275
+ .touchchat-ai-think-collpase-enter-active,
276
+ .touchchat-ai-think-collpase-leave-active {
119
277
  transition: max-height 0.3s ease, opacity 0.3s ease;
120
- max-height: 31.25em;
278
+ max-height: 30em;
121
279
  overflow: hidden;
122
280
  }
123
- .reasoning-collapse-enter-from,
124
- .reasoning-collapse-leave-to {
281
+ .touchchat-ai-think-collpase-enter-from,
282
+ .touchchat-ai-think-collpase-leave-to {
125
283
  max-height: 0;
126
284
  opacity: 0;
127
285
  overflow: hidden;
128
286
  }
129
- .ai-message .loading-indicator {
287
+ @keyframes loading {
288
+ 0% {
289
+ transform: rotate(0deg);
290
+ }
291
+ 100% {
292
+ transform: rotate(360deg);
293
+ }
294
+ }
295
+ .hljs {
296
+ border-radius: 0.5em;
297
+ padding: 0.5em 1em;
298
+ }
299
+ .touchchat {
300
+ --edit-margin: 1em;
301
+ --edit-gap: 1em;
302
+ --edit-border: 1px solid #ddd;
303
+ --edit-radius: 0.5em;
304
+ --edit-focus-border: 1px solid var(--color-primary);
305
+ --edit-input-size: 1em;
306
+ --edit-input-bg: none;
307
+ --edit-input-lh: 1.5em;
308
+ --edit-input-padding: 1em;
309
+ --edit-submit-padding: 0 0.5em 0.5em;
310
+ --edit-submit-gap: 0.5em;
311
+ --edit-attach-width: 2.5em;
312
+ --edit-attach-height: 2.5em;
313
+ --edit-attach-bg: #fff;
314
+ --edit-attach-border: 1px solid #ddd;
315
+ --edit-attach-radius: 0.25em;
316
+ --edit-attach-color: inherit;
317
+ --edit-attach-size: 1em;
318
+ --edit-attach-family: 'touchchat-icon';
319
+ --edit-attach-content: '\e610';
320
+ --edit-attach-hover-bg: rgba(0, 0, 0, 0.1);
321
+ --edit-attach-hover-color: var(--edit-attach-color);
322
+ --edit-attach-hover-border: var(--edit-attach-border);
323
+ --edit-attach-active-bg: rgba(0, 0, 0, 0.3);
324
+ --edit-attach-active-color: var(--edit-attach-color);
325
+ --edit-attach-active-border: var(--edit-attach-border);
326
+ --edit-think-height: 2.5em;
327
+ --edit-think-padding: 0 1em;
328
+ --edit-think-bg: #fff;
329
+ --edit-think-border: 1px solid #ddd;
330
+ --edit-think-radius: 0.25em;
331
+ --edit-think-color: inherit;
332
+ --edit-think-gap: 0.5em;
333
+ --edit-think-size: 1em;
334
+ --edit-think-icon-size: var(--edit-think-size);
335
+ --edit-think-family: 'touchchat-icon';
336
+ --edit-think-content: '\e607';
337
+ --edit-think-hover-bg: rgba(0, 0, 0, 0.1);
338
+ --edit-think-hover-color: var(--edit-think-color);
339
+ --edit-think-hover-border: var(--edit-think-border);
340
+ --edit-think-active-bg: rgba(0, 0, 0, 0.3);
341
+ --edit-think-active-color: var(--edit-think-color);
342
+ --edit-think-active-border: var(--edit-think-border);
343
+ --edit-think-on-border: 1px solid var(--color-primary);
344
+ --edit-think-on-color: var(--color-primary);
345
+ --edit-think-on-bg: var(--edit-think-bg);
346
+ --edit-think-on-hover-bg: var(--edit-think-hover-bg);
347
+ --edit-think-on-hover-color: var(--edit-think-on-color);
348
+ --edit-think-on-hover-border: var(--edit-think-on-border);
349
+ --edit-think-on-active-bg: var(--edit-think-active-bg);
350
+ --edit-think-on-active-color: var(--edit-think-on-color);
351
+ --edit-think-on-active-border: var(--edit-think-on-border);
352
+ --edit-send-width: 2.5em;
353
+ --edit-send-height: 2.5em;
354
+ --edit-send-bg: var(--color-primary);
355
+ --edit-send-border: 0 none;
356
+ --edit-send-radius: 0.25em;
357
+ --edit-send-color: #fff;
358
+ --edit-send-size: 1em;
359
+ --edit-send-family: 'touchchat-icon';
360
+ --edit-send-content: '\e609';
361
+ --edit-send-hover-bg: #2e91ff;
362
+ --edit-send-hover-color: var(--edit-send-color);
363
+ --edit-send-hover-border: var(--edit-send-border);
364
+ --edit-send-active-bg: #005fc7;
365
+ --edit-send-active-color: var(--edit-send-color);
366
+ --edit-send-active-border: var(--edit-send-border);
367
+ --edit-stop-width: 2.5em;
368
+ --edit-stop-height: 2.5em;
369
+ --edit-stop-bg: var(--color-primary);
370
+ --edit-stop-border: 0 none;
371
+ --edit-stop-radius: 0.25em;
372
+ --edit-stop-color: #fff;
373
+ --edit-stop-size: 1em;
374
+ --edit-stop-family: 'touchchat-icon';
375
+ --edit-stop-content: '\e60f';
376
+ --edit-stop-hover-bg: #2e91ff;
377
+ --edit-stop-hover-color: var(--edit-stop-color);
378
+ --edit-stop-hover-border: var(--edit-stop-border);
379
+ --edit-stop-active-bg: #005fc7;
380
+ --edit-stop-active-color: var(--edit-stop-color);
381
+ --edit-stop-active-border: var(--edit-stop-border);
382
+ }
383
+ .touchchat-edit {
384
+ margin: var(--edit-margin);
130
385
  display: flex;
131
- justify-content: center;
132
- padding: 0.625em 0;
133
- margin-top: 0.625em;
386
+ flex-direction: column;
387
+ gap: var(--edit-gap);
388
+ border: var(--edit-border);
389
+ border-radius: var(--edit-radius);
390
+ overflow: hidden;
134
391
  }
135
- .ai-message .loading-indicator svg {
136
- width: 1.5em;
137
- height: 1.5em;
138
- opacity: 0.6;
139
- color: #10b981 !important;
392
+ .touchchat-edit:has(textarea:focus) {
393
+ border: var(--edit-focus-border);
140
394
  }
141
- .ai-message .msg-rich-text.markdown {
142
- color: var(--text-icon-text-icon, #1d2129);
143
- /* Body 正文/Medium */
144
- font-family: 'PingFang SC';
145
- font-size: 0.875em;
146
- font-style: normal;
147
- font-weight: 400;
148
- line-height: 1.375em;
149
- /* 157.143% */
395
+ .touchchat-edit-input {
396
+ border: 0 none;
397
+ background: var(--edit-input-bg);
150
398
  }
151
- .ai-message .msg-rich-text.markdown h1,
152
- .reasoning-content h1 {
153
- margin: 1.5em 0;
399
+ .touchchat-edit-input textarea {
400
+ padding: var(--edit-input-padding);
401
+ resize: none;
402
+ vertical-align: top;
403
+ font-family: inherit;
404
+ width: 100%;
405
+ height: 100%;
406
+ box-sizing: border-box;
407
+ border: 0 none;
408
+ line-height: var(--edit-input-lh);
409
+ font-size: var(--edit-input-size);
154
410
  }
155
- .ai-message .msg-rich-text.markdown h2,
156
- .reasoning-content h2 {
157
- margin: 1.2em 0;
411
+ .touchchat-edit-submit {
412
+ padding: var(--edit-submit-padding);
413
+ display: flex;
414
+ justify-content: space-between;
158
415
  }
159
- .ai-message .msg-rich-text.markdown h3,
160
- .reasoning-content h3 {
161
- margin: 1em 0;
416
+ .touchchat-edit-submit-left {
417
+ display: inline-flex;
418
+ gap: var(--edit-submit-gap);
162
419
  }
163
- .ai-message .msg-rich-text.markdown h4,
164
- .ai-message .msg-rich-text.markdown h5,
165
- .ai-message .msg-rich-text.markdown h6,
166
- .reasoning-content h4,
167
- .reasoning-content h5,
168
- .reasoning-content h6 {
169
- margin: 0.8em 0;
420
+ .touchchat-edit-submit-right {
421
+ display: inline-flex;
422
+ gap: var(--edit-submit-gap);
170
423
  }
171
- .loading-indicator {
172
- display: flex;
424
+ .touchchat-edit-attach {
425
+ border: var(--edit-attach-border);
426
+ width: var(--edit-attach-width);
427
+ height: var(--edit-attach-height);
428
+ background: var(--edit-attach-bg);
429
+ display: inline-flex;
173
430
  align-items: center;
174
- margin-left: 1.5em;
175
- margin-top: 0.25em;
176
- color: #86909c;
177
- font-size: 0.75em;
431
+ justify-content: center;
432
+ border-radius: var(--edit-attach-radius);
433
+ color: var(--edit-attach-color);
178
434
  }
179
- .loading-indicator .loading-spin {
180
- animation: spin 1.5s linear infinite;
181
- margin-right: 0.25em;
435
+ .touchchat-edit-attach:hover {
436
+ background: var(--edit-attach-hover-bg);
437
+ color: var(--edit-attach-hover-color);
438
+ border: var(--edit-attach-hover-border);
182
439
  }
183
- @keyframes spin {
184
- from {
185
- transform: rotate(0deg);
186
- }
187
- to {
188
- transform: rotate(360deg);
189
- }
440
+ .touchchat-edit-attach:active {
441
+ background: var(--edit-attach-active-bg);
442
+ color: var(--edit-attach-active-color);
443
+ border: var(--edit-attach-active-border);
190
444
  }
191
- .loading-text {
192
- color: var(--Brand-Brand-, #0077fa);
193
- /* Body 正文/Medium */
194
- font-family: 'PingFang SC';
195
- font-size: 0.75em;
196
- font-style: normal;
197
- font-weight: 400;
198
- line-height: 1.375em;
199
- /* 157.143% */
445
+ .touchchat-edit-attach.is-dis {
446
+ opacity: 0.4;
447
+ pointer-events: none;
448
+ }
449
+ .touchchat-edit-attach-icon:before {
450
+ font-size: var(--edit-attach-size);
451
+ font-family: var(--edit-attach-family);
452
+ content: var(--edit-attach-content);
453
+ }
454
+ .touchchat-edit-think {
455
+ border: var(--edit-think-border);
456
+ height: var(--edit-think-height);
457
+ padding: var(--edit-think-padding);
458
+ background: var(--edit-think-bg);
459
+ display: inline-flex;
460
+ align-items: center;
461
+ justify-content: center;
462
+ border-radius: var(--edit-think-radius);
463
+ color: var(--edit-think-color);
464
+ gap: var(--edit-think-gap);
465
+ }
466
+ .touchchat-edit-think:hover {
467
+ background: var(--edit-think-hover-bg);
468
+ color: var(--edit-think-hover-color);
469
+ border: var(--edit-think-hover-border);
470
+ }
471
+ .touchchat-edit-think:active {
472
+ background: var(--edit-think-active-bg);
473
+ color: var(--edit-think-active-color);
474
+ border: var(--edit-think-active-border);
475
+ }
476
+ .touchchat-edit-think.is-dis {
477
+ opacity: 0.4;
478
+ pointer-events: none;
479
+ }
480
+ .touchchat-edit-think.is-on {
481
+ background: var(--edit-think-on-bg);
482
+ color: var(--edit-think-on-color);
483
+ border: var(--edit-think-on-border);
484
+ }
485
+ .touchchat-edit-think.is-on:hover {
486
+ background: var(--edit-think-on-hover-bg);
487
+ color: var(--edit-think-on-hover-color);
488
+ border: var(--edit-think-on-hover-border);
489
+ }
490
+ .touchchat-edit-think.is-on:active {
491
+ background: var(--edit-think-on-active-bg);
492
+ color: var(--edit-think-on-active-color);
493
+ border: var(--edit-think-on-active-border);
494
+ }
495
+ .touchchat-edit-think-icon:before {
496
+ font-size: var(--edit-think-icon-size);
497
+ font-family: var(--edit-think-family);
498
+ content: var(--edit-think-content);
499
+ }
500
+ .touchchat-edit-think-text {
501
+ font-size: var(--edit-think-size);
502
+ }
503
+ .touchchat-edit-send {
504
+ border: var(--edit-send-border);
505
+ height: var(--edit-send-height);
506
+ width: var(--edit-send-width);
507
+ font-size: var(--edit-send-size);
508
+ background: var(--edit-send-bg);
509
+ color: var(--edit-send-color);
510
+ display: inline-flex;
511
+ align-items: center;
512
+ justify-content: center;
513
+ border-radius: var(--edit-send-radius);
514
+ }
515
+ .touchchat-edit-send:hover {
516
+ background: var(--edit-send-hover-bg);
517
+ color: var(--edit-send-hover-color);
518
+ border: var(--edit-send-hover-border);
519
+ }
520
+ .touchchat-edit-send:active {
521
+ background: var(--edit-send-active-bg);
522
+ color: var(--edit-send-active-color);
523
+ border: var(--edit-send-active-border);
524
+ }
525
+ .touchchat-edit-send-icon:before {
526
+ font-size: var(--edit-send-size);
527
+ font-family: var(--edit-send-family);
528
+ content: var(--edit-send-content);
529
+ }
530
+ .touchchat-edit-stop {
531
+ border: var(--edit-stop-border);
532
+ height: var(--edit-stop-height);
533
+ width: var(--edit-stop-width);
534
+ font-size: var(--edit-stop-size);
535
+ background: var(--edit-stop-bg);
536
+ color: var(--edit-stop-color);
537
+ display: inline-flex;
538
+ align-items: center;
539
+ justify-content: center;
540
+ border-radius: var(--edit-stop-radius);
200
541
  }
201
- .ai-actions-container {
202
- padding: 0.5em;
542
+ .touchchat-edit-stop:hover {
543
+ background: var(--edit-stop-hover-bg);
544
+ color: var(--edit-stop-hover-color);
545
+ border: var(--edit-stop-hover-border);
203
546
  }
204
- .ai-actions-container .ai-actions {
547
+ .touchchat-edit-stop:active {
548
+ background: var(--edit-stop-active-bg);
549
+ color: var(--edit-stop-active-color);
550
+ border: var(--edit-stop-active-border);
551
+ }
552
+ .touchchat-edit-stop-icon:before {
553
+ font-size: var(--edit-stop-size);
554
+ font-family: var(--edit-stop-family);
555
+ content: var(--edit-stop-content);
556
+ }
557
+ .touchchat-dialog {
558
+ flex: 1;
559
+ overflow-y: auto;
560
+ padding: 1em;
205
561
  display: flex;
206
- justify-content: flex-start;
207
- flex-wrap: wrap;
562
+ flex-direction: column;
563
+ }
564
+ .touchchat-welcome {
565
+ width: 100%;
566
+ height: 100%;
567
+ display: flex;
568
+ justify-content: center;
569
+ align-items: center;
570
+ }
571
+ .touchchat-dialog-content {
572
+ margin: 0 auto;
573
+ width: 100%;
574
+ display: flex;
575
+ flex-direction: column;
576
+ gap: 1em;
208
577
  }
209
- .ai-actions-container .ai-actions .action-btn {
578
+ .touchchat {
579
+ --action-item-width: 1.5em;
580
+ --action-item-height: 1.5em;
581
+ --action-item-radius: 0.25em;
582
+ --action-item-size: 1em;
583
+ --action-item-family: 'touchchat-icon';
584
+ --action-item-color: #86909c;
585
+ --action-item-bg: transparent;
586
+ --action-item-border: none;
587
+ --action-item-hover-color: var(--action-item-color);
588
+ --action-item-hover-bg: rgba(0, 0, 0, 0.1);
589
+ --action-item-hover-border: var(--action-item-border);
590
+ --action-item-active-color: var(--action-item-color);
591
+ --action-item-active-bg: rgba(0, 0, 0, 0.3);
592
+ --action-item-active-border: var(--action-item-border);
593
+ --action-copy-content: '\e603';
594
+ --action-edit-content: '\e602';
595
+ --action-remove-content: '\e605';
596
+ --action-refresh-content: '\e606';
597
+ --action-good-content: '\e60a';
598
+ --action-bad-content: '\e601';
599
+ --action-good-on-content: '\e60e';
600
+ --action-bad-on-content: '\e60d';
601
+ --action-good-on-color: red;
602
+ --action-bad-on-color: red;
603
+ --action-tip-padding: 0.5em 1em;
604
+ --action-tip-bg: rgba(0, 0, 0, 0.9);
605
+ --action-tip-color: #fff;
606
+ --action-tip-lh: 1.3em;
607
+ --action-tip-radius: 0.25em;
608
+ --action-tip-arrow-size: 0.4em;
609
+ }
610
+ .touchchat-action-item {
210
611
  position: relative;
211
- /* 新增:作为定位容器 */
212
612
  display: inline-flex;
613
+ width: var(--action-item-width);
614
+ height: var(--action-item-height);
213
615
  align-items: center;
214
616
  justify-content: center;
215
- /* 新增:确保图标居中 */
216
- cursor: pointer;
217
- transition: all 0.2s ease;
218
- /* 确保SVG图标居中且不影响定位 */
617
+ cursor: default;
618
+ border-radius: var(--action-item-radius);
619
+ font-family: var(--action-item-family);
620
+ color: var(--action-item-color);
621
+ background: var(--action-item-bg);
622
+ border: var(--action-item-border);
623
+ }
624
+ .touchchat-action-item:before {
625
+ font-size: var(--action-item-size);
626
+ content: var(--action-icon-content);
627
+ }
628
+ .touchchat-action-item.value-copy {
629
+ --action-icon-content: var(--action-copy-content);
630
+ }
631
+ .touchchat-action-item.value-edit {
632
+ --action-icon-content: var(--action-edit-content);
633
+ }
634
+ .touchchat-action-item.value-remove {
635
+ --action-icon-content: var(--action-remove-content);
636
+ }
637
+ .touchchat-action-item.value-good {
638
+ --action-icon-content: var(--action-good-content);
639
+ }
640
+ .touchchat-action-item.value-bad {
641
+ --action-icon-content: var(--action-bad-content);
642
+ }
643
+ .touchchat-action-item.value-refresh {
644
+ --action-icon-content: var(--action-refresh-content);
645
+ }
646
+ .touchchat-action-item.value-good.is-on {
647
+ --action-icon-content: var(--action-good-on-content);
648
+ color: var(--action-good-on-color);
649
+ }
650
+ .touchchat-action-item.value-bad.is-on {
651
+ --action-icon-content: var(--action-bad-on-content);
652
+ color: var(--action-bad-on-color);
653
+ }
654
+ .touchchat-action-item:hover {
655
+ color: var(--action-item-hover-color);
656
+ background: var(--action-item-hover-bg);
657
+ border: var(--action-item-hover-border);
219
658
  }
220
- .ai-actions-container .ai-actions .action-btn .btn-text {
221
- /* 修改:从默认隐藏改为绝对定位 */
659
+ .touchchat-action-item:hover .touchchat-action-tip {
660
+ display: block;
661
+ }
662
+ .touchchat-action-item:active {
663
+ color: var(--action-item-active-color);
664
+ background: var(--action-item-active-bg);
665
+ border: var(--action-item-active-border);
666
+ }
667
+ .touchchat-action-tip {
222
668
  position: absolute;
223
- top: -2.2em;
224
- /* 向上偏移显示 */
225
669
  left: 50%;
670
+ bottom: calc(var(--action-item-height) + var(--action-tip-arrow-size));
226
671
  transform: translateX(-50%);
227
- /* 水平居中 */
228
672
  display: none;
229
- padding: 0.25em 0.5em;
230
- background-color: #000;
231
- /* 黑色背景 */
232
- color: #fff;
233
- /* 白色文字 */
234
- font-size: 0.75em;
235
- border-radius: 0.25em;
236
- /* 圆角效果 */
673
+ padding: var(--action-tip-padding);
674
+ background-color: var(--action-tip-bg);
675
+ color: var(--action-tip-color);
676
+ line-height: var(--action-tip-lh);
677
+ border-radius: var(--action-tip-radius);
237
678
  white-space: nowrap;
238
- box-shadow: 0 0.125em 0.25em rgba(0, 0, 0, 0.2);
239
- /* 可选:添加阴影增强立体感 */
240
679
  z-index: 10;
241
- /* 确保显示在最上层 */
242
680
  }
243
- .ai-actions-container .ai-actions .action-btn .btn-text::after {
681
+ .touchchat-action-tip:before {
244
682
  content: '';
245
683
  position: absolute;
246
- bottom: -0.2em;
247
- /* 定位在提示框底部 */
684
+ top: 100%;
248
685
  left: 50%;
249
- transform: translateX(-50%);
250
- border-width: 0.25em 0.25em 0;
686
+ margin-left: calc(-1 * var(--action-tip-arrow-size));
687
+ border-width: var(--action-tip-arrow-size);
251
688
  border-style: solid;
252
- border-color: #000 transparent transparent;
253
- }
254
- .ai-actions-container .ai-actions .action-btn:hover {
255
- /* 保留SVG原有悬浮效果 */
689
+ border-color: var(--action-tip-bg) transparent transparent transparent;
256
690
  }
257
- .ai-actions-container .ai-actions .action-btn:hover .btn-text {
258
- display: inline-block;
259
- /* 悬浮时显示文字 */
691
+ .sider-bar-view {
692
+ width: 40%;
693
+ height: 100%;
694
+ overflow-y: scroll;
695
+ }
696
+ .sider-bar-view-flag {
697
+ width: 60%;
698
+ }
699
+ .touchchat {
700
+ --tooltip-bg: rgba(0, 0, 0, 0.9);
701
+ --tooltip-color: #fff;
702
+ --tooltip-padding: 0.5em 1em;
703
+ --tooltip-radius: 0.25em;
704
+ --tooltip-lh: 1.3em;
705
+ --tooltip-arrow-size: 0.4em;
706
+ --side-width: 18em;
707
+ --side-bg: #f7f8fa;
708
+ --side-padding: 1em;
709
+ --side-gap: 1em;
710
+ --logo-gap: 0.5em;
711
+ --logo-pic-width: 2.3em;
712
+ --logo-pic-height: 2em;
713
+ --logo-pic-bg: url(./img/logo.png);
714
+ --logo-text-weight: bold;
715
+ --logo-text-size: 1.5em;
716
+ --logo-text-color: var(--color-primary);
717
+ --add-size: 1em;
718
+ --add-width: 100%;
719
+ --add-height: 3em;
720
+ --add-gap: 0.5em;
721
+ --add-border: 1px solid var(--color-primary);
722
+ --add-color: var(--color-primary);
723
+ --add-radius: 0.25em;
724
+ --add-icon-size: 1em;
725
+ --add-icon-family: 'touchchat-icon';
726
+ --add-icon-content: '\e600';
727
+ --add-hover-bg: #f0f7ff;
728
+ --add-hover-color: var(--add-color);
729
+ --add-hover-border: var(--add-border);
730
+ --add-active-bg: #c7e2ff;
731
+ --add-active-color: var(--add-color);
732
+ --add-active-border: var(--add-border);
733
+ --hidemenu-width: 2em;
734
+ --hidemenu-height: 2em;
735
+ --hidemenu-radius: 0.25em;
736
+ --hidemenu-size: 1em;
737
+ --hidemenu-family: 'touchchat-icon';
738
+ --hidemenu-icon-size: var(--hidemenu-size);
739
+ --hidemenu-icon-family: var(--hidemenu-family);
740
+ --hidemenu-icon-content: '\e604';
741
+ --hidemenu-color: inherit;
742
+ --hidemenu-border: none;
743
+ --hidemenu-hover-bg: rgba(0, 0, 0, 0.1);
744
+ --hidemenu-hover-color: var(--hidemenu-color);
745
+ --hidemenu-hover-border: var(--hidemenu-border);
746
+ --hidemenu-active-bg: rgba(0, 0, 0, 0.3);
747
+ --hidemenu-active-color: var(--hidemenu-color);
748
+ --hidemenu-active-border: var(--hidemenu-border);
749
+ --showmenu-width: 2em;
750
+ --showmenu-height: 2em;
751
+ --showmenu-radius: 0.25em;
752
+ --showmenu-size: 1em;
753
+ --showmenu-family: 'touchchat-icon';
754
+ --showmenu-icon-size: var(--showmenu-size);
755
+ --showmenu-icon-family: var(--showmenu-family);
756
+ --showmenu-icon-content: '\e608';
757
+ --showmenu-color: inherit;
758
+ --showmenu-border: none;
759
+ --showmenu-hover-bg: rgba(0, 0, 0, 0.1);
760
+ --showmenu-hover-color: var(--showmenu-color);
761
+ --showmenu-hover-border: var(--showmenu-border);
762
+ --showmenu-active-bg: rgba(0, 0, 0, 0.3);
763
+ --showmenu-active-color: var(--showmenu-color);
764
+ --showmenu-active-border: var(--showmenu-border);
765
+ --header-padding: 1em;
766
+ --header-gap: 1em;
767
+ --add-lite-width: 2em;
768
+ --add-lite-height: 2em;
769
+ --add-lite-radius: 0.25em;
770
+ --add-lite-size: 1em;
771
+ --add-lite-family: 'touchchat-icon';
772
+ --add-lite-icon-size: var(--add-lite-size);
773
+ --add-lite-icon-family: var(--add-lite-family);
774
+ --add-lite-icon-content: '\e600';
775
+ --add-lite-color: inherit;
776
+ --add-lite-border: none;
777
+ --add-lite-hover-bg: rgba(0, 0, 0, 0.1);
778
+ --add-lite-hover-color: var(--add-lite-color);
779
+ --add-lite-hover-border: var(--add-lite-border);
780
+ --add-lite-active-bg: rgba(0, 0, 0, 0.3);
781
+ --add-lite-active-color: var(--add-lite-color);
782
+ --add-lite-active-border: var(--add-lite-border);
783
+ --history-gap: 1em;
784
+ --history-group-gap: 0.5em;
785
+ --history-content-gap: 0;
786
+ --history-title-weight: bold;
787
+ --history-title-gap: 0.5em;
788
+ --history-title-padding: 0 1em;
789
+ --history-title-icon-size: 1em;
790
+ --history-title-icon-family: 'touchchat-icon';
791
+ --history-title-icon-content: '\e613';
792
+ --history-item-padding: 0 1em;
793
+ --history-item-radius: 0.25em;
794
+ --history-item-gap: 0.5em;
795
+ --history-item-height: 2.5em;
796
+ --history-item-color: inherit;
797
+ --history-item-bg: transparent;
798
+ --history-item-border: none;
799
+ --history-item-hover-color: var(--history-item-color);
800
+ --history-item-hover-bg: rgba(0, 0, 0, 0.1);
801
+ --history-item-hover-border: var(--history-item-border);
802
+ --history-item-active-color: var(--history-item-color);
803
+ --history-item-active-bg: rgba(0, 0, 0, 0.3);
804
+ --history-item-active-border: var(--history-item-border);
805
+ --history-item-on-color: var(--color-primary);
806
+ --history-item-on-bg: #eaf5ff;
807
+ --history-item-on-border: var(--history-item-border);
808
+ --history-item-on-hover-color: var(--history-item-on-color);
809
+ --history-item-on-hover-bg: var(--history-item-on-bg);
810
+ --history-item-on-hover-border: var(--history-item-on-border);
811
+ --history-item-on-active-color: var(--history-item-on-color);
812
+ --history-item-on-active-bg: var(--history-item-on-bg);
813
+ --history-item-on-active-border: var(--history-item-on-border);
814
+ --history-item-input-width: 100%;
815
+ --history-item-input-height: 2.5em;
816
+ --history-item-input-padding: 0 calc(1em - 1px);
817
+ --history-item-input-border: 1px solid #ccc;
818
+ --history-item-input-radius: 0.25em;
819
+ --history-item-input-size: 1em;
820
+ --history-item-input-focus-border-color: #0077fa;
821
+ --history-more-width: 1.5em;
822
+ --history-more-height: 1.5em;
823
+ --history-more-radius: 50%;
824
+ --history-more-color: #000000;
825
+ --history-more-bg: none;
826
+ --history-more-border: 0 none;
827
+ --history-more-hover-bg: rgba(0, 0, 0, 0.1);
828
+ --history-more-active-bg: rgba(0, 0, 0, 0.3);
829
+ --history-more-icon-size: 1em;
830
+ --history-more-icon-family: 'touchchat-icon';
831
+ --history-more-icon-content: '\e612';
832
+ --history-float-width: 7.5em;
833
+ --history-float-bg: #fff;
834
+ --history-float-radius: 0.25em;
835
+ --history-float-shadow: 0 0.125em 0.625em rgba(0, 0, 0, 0.1);
836
+ --history-rename-padding: 0 1em;
837
+ --history-rename-height: 2.5em;
838
+ --history-rename-gap: 0.5em;
839
+ --history-rename-color: #000;
840
+ --history-rename-size: 1em;
841
+ --history-rename-family: 'touchchat-icon';
842
+ --history-rename-icon: '\e602';
843
+ --history-rename-icon-size: 1em;
844
+ --history-rename-icon-family: var(--history-rename-family);
845
+ --history-rename-hover-color: var(--history-rename-color);
846
+ --history-rename-hover-border: var(--history-rename-border);
847
+ --history-rename-hover-bg: rgba(0, 0, 0, 0.1);
848
+ --history-rename-active-color: var(--history-rename-color);
849
+ --history-rename-active-border: var(--history-rename-border);
850
+ --history-rename-active-bg: rgba(0, 0, 0, 0.3);
851
+ --history-remove-padding: 0 1em;
852
+ --history-remove-height: 2.5em;
853
+ --history-remove-gap: 0.5em;
854
+ --history-remove-color: red;
855
+ --history-remove-size: 1em;
856
+ --history-remove-family: 'touchchat-icon';
857
+ --history-remove-icon: '\e605';
858
+ --history-remove-icon-size: 1em;
859
+ --history-remove-icon-family: var(--history-remove-family);
860
+ --history-remove-hover-color: var(--history-remove-color);
861
+ --history-remove-hover-border: var(--history-remove-border);
862
+ --history-remove-hover-bg: rgba(0, 0, 0, 0.1);
863
+ --history-remove-active-color: var(--history-remove-color);
864
+ --history-remove-active-border: var(--history-remove-border);
865
+ --history-remove-active-bg: rgba(0, 0, 0, 0.3);
866
+ }
867
+ .touchchat button {
868
+ font-size: 100%;
869
+ cursor: pointer;
870
+ outline: 0 none;
260
871
  }
261
- .ai-actions-container .ai-actions .action-btn:hover svg {
262
- background-color: #eeeeee;
263
- border-radius: 50%;
872
+ .touchchat input,
873
+ .touchchat textarea {
874
+ font-size: 100%;
875
+ outline: 0 none;
264
876
  }
265
- .ai-actions-container .ai-actions .action-btn svg {
266
- flex-shrink: 0;
267
- transition: all 0.2s ease;
877
+ .touchchat {
878
+ display: flex;
879
+ flex-direction: column;
880
+ height: 100%;
268
881
  }
269
- .input-area-fixed {
882
+ .touchchat-header {
883
+ padding: var(--header-padding);
884
+ display: flex;
885
+ align-items: center;
886
+ gap: var(--header-gap);
887
+ position: fixed;
888
+ top: 0;
889
+ left: 0;
270
890
  background-color: #ffffff;
271
- padding: 1em;
272
- flex-shrink: 0;
891
+ z-index: 86;
273
892
  }
274
- .input-area {
893
+ .touchchat-content {
894
+ flex: 1;
895
+ display: flex;
896
+ min-height: 0;
897
+ }
898
+ .touchchat-side {
899
+ box-sizing: border-box;
900
+ height: 100%;
275
901
  display: flex;
276
902
  flex-direction: column;
277
- gap: 0.5em;
903
+ width: var(--side-width);
904
+ background: var(--side-bg);
905
+ padding: var(--side-padding);
906
+ gap: var(--side-gap);
278
907
  }
279
- .input-container {
908
+ .touchchat-side-header {
280
909
  display: flex;
281
910
  align-items: center;
282
- gap: 0.5em;
911
+ gap: var(--header-gap);
283
912
  }
284
- textarea {
913
+ .touchchat-logo {
285
914
  flex: 1;
286
- padding: 0.5em;
287
- border: 1px solid #d8dce4;
288
- border-radius: 0.25em;
289
- resize: none;
290
- }
291
- textarea:focus {
292
- border: 1px solid #0077fa;
293
- outline: none;
294
- }
295
- .send-button {
296
- padding: 0.5em 0.75em;
297
- color: white;
298
- border: none;
299
- border-radius: 0.25em;
300
- cursor: pointer;
301
- white-space: nowrap;
302
- background-color: #0077fa;
915
+ display: flex;
916
+ align-items: center;
917
+ gap: var(--logo-gap);
303
918
  }
304
- .send-button:disabled {
305
- background-color: #b0bec5;
306
- cursor: not-allowed;
307
- opacity: 0.6;
919
+ .touchchat-logo-pic {
920
+ width: var(--logo-pic-width);
921
+ height: var(--logo-pic-height);
922
+ background: var(--logo-pic-bg);
923
+ background-size: 100% 100%;
308
924
  }
309
- .stop-button {
310
- padding: 0.5em 0.75em;
311
- color: white;
312
- border: none;
313
- border-radius: 0.25em;
314
- cursor: pointer;
315
- white-space: nowrap;
316
- background-color: #ef4444;
317
- margin-top: 0.5em;
925
+ .touchchat-logo-text {
926
+ font-weight: var(--logo-text-weight);
927
+ font-size: var(--logo-text-size);
928
+ color: var(--logo-text-color);
318
929
  }
319
- .square-icon-btn {
320
- width: 2em;
321
- height: 2em;
322
- border-radius: 0.5em;
323
- background-color: #0077fa;
324
- color: white;
930
+ .touchchat-add {
931
+ flex-shrink: 0;
932
+ width: var(--add-width);
933
+ background: none;
325
934
  display: flex;
326
935
  align-items: center;
327
936
  justify-content: center;
328
- border: none;
937
+ gap: var(--add-gap);
938
+ border: var(--add-border);
939
+ color: var(--add-color);
940
+ height: var(--add-height);
941
+ box-sizing: border-box;
942
+ border-radius: var(--add-radius);
329
943
  cursor: pointer;
330
- transition: background-color 0.2s;
331
- padding: 0;
332
- margin-left: 0.5em;
333
944
  }
334
- .square-icon-btn:hover {
335
- background-color: #0055cc;
945
+ .touchchat-add:hover {
946
+ color: var(--add-hover-color);
947
+ background: var(--add-hover-bg);
948
+ border: var(--add-hover-border);
336
949
  }
337
- .vertical-input-group {
338
- display: flex;
339
- flex-direction: column;
340
- gap: 0.625em;
341
- width: 100%;
342
- padding: 0.75em;
343
- background-color: #ffffff;
344
- border: 1px solid #e5e5e5;
345
- border-radius: 0.5em;
346
- border: 0.5px solid var(--Border-Border-, #d8dce4);
347
- box-shadow: 0 0.125em 0.375em 0 rgba(0, 0, 0, 0.1);
950
+ .touchchat-add:active {
951
+ color: var(--add-active-color);
952
+ background: var(--add-active-bg);
953
+ border: var(--add-active-border);
348
954
  }
349
- .input-buttons {
350
- display: flex;
351
- justify-content: flex-end;
955
+ .touchchat-add-icon:before {
956
+ font-size: var(--add-icon-size);
957
+ font-family: var(--add-icon-family);
958
+ content: var(--add-icon-content);
959
+ vertical-align: top;
352
960
  }
353
- .rounded-input {
354
- border: none !important;
355
- outline: none;
356
- line-height: 1.375 !important;
357
- resize: none !important;
358
- box-shadow: none !important;
961
+ .touchchat-add-text {
962
+ font-size: var(--add-size);
359
963
  }
360
- .deep-thinking-btn {
964
+ .touchchat-hidemenu {
965
+ box-sizing: border-box;
966
+ width: var(--hidemenu-width);
967
+ height: var(--hidemenu-height);
361
968
  display: inline-flex;
362
969
  align-items: center;
363
970
  justify-content: center;
364
- padding: 0.375em 0.75em;
365
- border-radius: 0.25em;
366
- border: 1px solid #e5e6eb;
367
- background-color: #ffffff;
368
- color: #4e5969;
369
- font-size: 0.875em;
370
- cursor: pointer;
371
- transition: all 0.2s ease;
372
- margin-right: 0.75em;
373
- }
374
- .deep-thinking-btn svg {
375
- margin-right: 0.25em;
971
+ border-radius: var(--hidemenu-radius);
972
+ color: var(--hidemenu-color);
973
+ border: var(--hidemenu-border);
974
+ }
975
+ .touchchat-hidemenu:hover {
976
+ color: var(--hidemenu-hover-color);
977
+ background: var(--hidemenu-hover-bg);
978
+ border: var(--hidemenu-hover-border);
979
+ }
980
+ .touchchat-hidemenu:active {
981
+ color: var(--hidemenu-active-color);
982
+ background: var(--hidemenu-active-bg);
983
+ border: var(--hidemenu-active-border);
984
+ }
985
+ .touchchat-hidemenu-icon:before {
986
+ font-size: var(--hidemenu-icon-size);
987
+ font-family: var(--hidemenu-icon-family);
988
+ content: var(--hidemenu-icon-content);
989
+ }
990
+ .touchchat-showmenu {
991
+ box-sizing: border-box;
992
+ width: var(--showmenu-width);
993
+ height: var(--showmenu-height);
994
+ display: inline-flex;
995
+ align-items: center;
996
+ justify-content: center;
997
+ border-radius: var(--showmenu-radius);
998
+ color: var(--showmenu-color);
999
+ border: var(--showmenu-border);
1000
+ }
1001
+ .touchchat-showmenu:hover {
1002
+ color: var(--showmenu-hover-color);
1003
+ background: var(--showmenu-hover-bg);
1004
+ border: var(--showmenu-hover-border);
1005
+ }
1006
+ .touchchat-showmenu:active {
1007
+ color: var(--showmenu-active-color);
1008
+ background: var(--showmenu-active-bg);
1009
+ border: var(--showmenu-active-border);
1010
+ }
1011
+ .touchchat-showmenu-icon:before {
1012
+ font-size: var(--showmenu-icon-size);
1013
+ font-family: var(--showmenu-icon-family);
1014
+ content: var(--showmenu-icon-content);
1015
+ }
1016
+ .touchchat-add-lite {
1017
+ box-sizing: border-box;
1018
+ width: var(--add-lite-width);
1019
+ height: var(--add-lite-height);
1020
+ display: inline-flex;
1021
+ align-items: center;
1022
+ justify-content: center;
1023
+ border-radius: var(--add-lite-radius);
1024
+ color: var(--add-lite-color);
1025
+ border: var(--add-lite-border);
1026
+ }
1027
+ .touchchat-add-lite:hover {
1028
+ color: var(--add-lite-hover-color);
1029
+ background: var(--add-lite-hover-bg);
1030
+ border: var(--add-lite-hover-border);
1031
+ }
1032
+ .touchchat-add-lite:active {
1033
+ color: var(--add-lite-active-color);
1034
+ background: var(--add-lite-active-bg);
1035
+ border: var(--add-lite-active-border);
1036
+ }
1037
+ .touchchat-add-lite-icon:before {
1038
+ font-size: var(--add-lite-icon-size);
1039
+ font-family: var(--add-lite-icon-family);
1040
+ content: var(--add-lite-icon-content);
1041
+ }
1042
+ .touchchat-main {
1043
+ flex: 1;
1044
+ display: flex;
1045
+ flex-direction: column;
1046
+ height: 100%;
376
1047
  }
377
- .deep-thinking-btn.active {
378
- border: 1px solid var(--Brand-Brand-, #0062d6);
379
- background: var(--Neutral-colors-White, #fff);
380
- color: var(--Brand-Brand-, #0062d6);
1048
+ .touchchat-history {
1049
+ flex: 1;
1050
+ overflow: auto;
1051
+ min-height: 0;
1052
+ display: flex;
1053
+ flex-direction: column;
1054
+ gap: var(--history-gap);
381
1055
  }
382
- .deep-thinking-btn.disabled {
383
- color: #c9cdd4;
384
- cursor: not-allowed;
385
- border: 1px solid var(--Border-Border-, #d8dce4);
386
- background: var(--Fill-Fill--, #f7f8fa);
1056
+ .touchchat-history-group {
1057
+ display: flex;
1058
+ flex-direction: column;
1059
+ gap: var(--history-group-gap);
387
1060
  }
388
- .controls-container {
1061
+ .touchchat-history-title {
1062
+ font-weight: var(--history-title-weight);
389
1063
  display: flex;
390
1064
  align-items: center;
391
- justify-content: space-between;
392
- padding: 0.5em 0 0;
393
- }
394
- .not-is-thinking {
395
- justify-content: flex-end;
1065
+ gap: var(--history-title-gap);
1066
+ padding: var(--history-title-padding);
396
1067
  }
397
- .deep-thinking-btn:hover {
398
- opacity: 0.8;
1068
+ .touchchat-history-title-icon:before {
1069
+ content: var(--history-title-icon-content);
1070
+ font-family: var(--history-title-icon-family);
1071
+ font-size: var(--history-title-icon-size);
399
1072
  }
400
- .chat-container {
1073
+ .touchchat-history-content {
401
1074
  display: flex;
402
1075
  flex-direction: column;
403
- height: 100vh;
404
- width: 100%;
405
- overflow: hidden;
1076
+ gap: var(--history-content-gap);
406
1077
  }
407
- .chat-messages {
408
- flex: 1;
409
- overflow-y: auto;
410
- padding: 1em;
1078
+ .touchchat-history-item {
411
1079
  display: flex;
412
- flex-direction: column;
413
- }
414
- .ai-message,
415
- .user-message {
416
- width: 100%;
417
- box-sizing: border-box;
418
- }
419
- .ai-message .message-content,
420
- .user-message .message-content {
421
- height: 100%;
422
- overflow-y: auto;
423
- width: 100%;
424
- padding-right: 0.5em;
425
- max-width: 90%;
426
- }
427
- .ai-message .text-content {
428
- border-radius: 0 0.75em 0.75em 0.75em;
429
- }
430
- .user-message .text-content {
431
- border-radius: 0.75em 0 0.75em 0.75em;
432
- }
433
- .to-chat-item {
434
- margin-bottom: 1.25em;
435
- }
436
- .message-content {
437
- display: flex;
438
- align-items: flex-start;
439
- max-width: 80%;
440
- }
441
- .avatar {
442
- width: 2.5em;
443
- height: 2.5em;
444
- border-radius: 50%;
445
- }
446
- .text-content {
447
- padding: 0.5em 0.75em;
448
- border-radius: 0.5em;
449
- margin: 0;
450
- }
451
- @keyframes spin {
452
- from {
453
- transform: rotate(0deg);
454
- }
455
- to {
456
- transform: rotate(360deg);
457
- }
458
- }
459
- @keyframes blink {
460
- 0% {
461
- opacity: 1;
462
- }
463
- 50% {
464
- opacity: 0;
465
- }
466
- 100% {
467
- opacity: 1;
468
- }
469
- }
470
- .loading-icon {
471
- width: 1.25em;
472
- height: 1.25em;
473
- animation: spin 1s linear infinite;
474
- }
475
- .cursor-blink {
476
- animation: blink 1s infinite;
477
- display: inline-block;
478
- vertical-align: bottom;
479
- }
480
- .msg-rich-text {
481
- word-break: break-word;
482
- padding-left: 1em;
483
- margin-left: -1em;
484
- }
485
- .msg-rich-text ul,
486
- .msg-rich-text ol {
487
- padding-left: 1.5em;
488
- margin-left: 0;
489
- margin-bottom: 1em;
490
- }
491
- .msg-rich-text li {
492
- margin-bottom: 0.5em;
493
- }
494
- .msg-rich-text p {
495
- line-height: 1.6;
496
- }
497
- .msg-rich-text table {
498
- width: 100%;
499
- border-collapse: separate;
500
- margin: 1em 0;
501
- font-size: 0.9em;
502
- }
503
- .msg-rich-text table th,
504
- .msg-rich-text table td {
505
- padding: 0.75em 1em;
506
- border: 1px solid #ddd;
507
- text-align: left;
508
- vertical-align: top;
509
- }
510
- .msg-rich-text table th {
511
- background-color: #f5f5f5;
512
- font-weight: bold;
513
- }
514
- .msg-rich-text table tr:nth-child(even) {
515
- background-color: #f9f9f9;
516
- }
517
- .msg-rich-text table tr:hover {
518
- background-color: #f1f1f1;
519
- }
520
- pre {
521
- position: relative;
522
- margin-top: 2.5em;
523
- }
524
- .copy-code-btn {
525
- position: absolute;
526
- top: 0.5em;
527
- right: 0.5em;
528
- padding: 0.25em 0.5em;
529
- background-color: rgba(0, 0, 0, 0.7);
530
- color: white;
531
- border: none;
532
- border-radius: 0.25em;
533
- font-size: 0.75em;
1080
+ padding: var(--history-item-padding);
534
1081
  cursor: pointer;
535
- z-index: 1;
536
- transition: background-color 0.2s;
537
- }
538
- .copy-code-btn:hover {
539
- background-color: rgba(0, 0, 0, 0.9);
540
- }
541
- .action-btn {
542
- display: inline-flex;
1082
+ border-radius: var(--history-item-radius);
1083
+ gap: var(--history-item-gap);
543
1084
  align-items: center;
544
- padding: 0.25em 0.25em;
545
- border: none;
546
- border-radius: 1em;
547
- cursor: pointer;
548
- font-size: 0.75;
549
- color: #666666;
550
- transition: all 0.3s ease;
551
- }
552
- .action-btn svg {
553
- width: 0.875em;
554
- height: 0.875em;
555
- }
556
- .action-btn:hover {
557
- background: #eaeaea;
558
- }
559
- .like-btn.liked {
560
- color: #007bff;
561
- }
562
- .dislike-btn.disliked {
563
- color: #ff4d4f;
564
- }
565
- .retry-btn,
566
- .copy-btn {
567
- color: #666666;
568
- }
569
- .ai-actions .like-btn.liked,
570
- .ai-actions .dislike-btn.disliked {
571
- background-color: #f0f5ff;
1085
+ height: var(--history-item-height);
1086
+ color: var(--history-item-color);
1087
+ background: var(--history-item-bg);
1088
+ border: var(--history-item-border);
1089
+ }
1090
+ .touchchat-history-item:hover {
1091
+ color: var(--history-item-hover-color);
1092
+ background: var(--history-item-hover-bg);
1093
+ border: var(--history-item-hover-border);
1094
+ }
1095
+ .touchchat-history-item:active {
1096
+ color: var(--history-item-active-color);
1097
+ background: var(--history-item-active-bg);
1098
+ border: var(--history-item-active-border);
1099
+ }
1100
+ .touchchat-history-item.is-on {
1101
+ color: var(--history-item-on-color);
1102
+ background: var(--history-item-on-bg);
1103
+ border: var(--history-item-on-border);
1104
+ }
1105
+ .touchchat-history-item.is-on:hover {
1106
+ color: var(--history-item-on-hover-color);
1107
+ background: var(--history-item-on-hover-bg);
1108
+ border: var(--history-item-on-hover-border);
1109
+ }
1110
+ .touchchat-history-item.is-on:active {
1111
+ color: var(--history-item-on-active-color);
1112
+ background: var(--history-item-on-active-bg);
1113
+ border: var(--history-item-on-active-border);
1114
+ }
1115
+ .touchchat-history-item:has(.touchchat-history-input) {
1116
+ padding: 0;
572
1117
  }
573
- .ai-actions .like-btn.liked:hover,
574
- .ai-actions .dislike-btn.disliked:hover {
575
- box-shadow: 0 0.25em 0.75em rgba(0, 120, 255, 0.15);
576
- transform: translateY(-0.125em);
1118
+ .touchchat-history-input {
1119
+ width: var(--history-item-input-width);
1120
+ height: var(--history-item-input-height);
1121
+ padding: var(--history-item-input-padding);
1122
+ border: var(--history-item-input-border);
1123
+ border-radius: var(--history-item-input-radius);
1124
+ box-sizing: border-box;
1125
+ margin: 0;
577
1126
  }
578
- .hello-chat-content {
1127
+ .touchchat-history-input input {
579
1128
  width: 100%;
580
1129
  height: 100%;
581
- display: flex;
582
- justify-content: center;
583
- align-items: center;
584
- }
585
- .history-list {
586
- flex: 1;
587
- overflow-y: auto;
588
- list-style: none;
589
- padding: 0;
590
- margin: 0;
591
- }
592
- .history-list li {
593
- padding: 0.75em 1em;
594
- cursor: pointer;
595
- display: flex;
596
- justify-content: space-between;
597
- align-items: center;
598
- }
599
- .history-list li:hover {
600
- background: var(--Neutral-colors-White, #f2f3f5);
601
- box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.1);
602
- }
603
- .history-list li.active {
604
- border-radius: 0.25em;
605
- background: var(--Info-Info--, #eaf5ff);
1130
+ font-size: var(--history-item-input-size);
1131
+ border: 0 none;
1132
+ background: none;
606
1133
  }
607
- .history-list li.active .history-title {
608
- color: #0077fa !important;
1134
+ .touchchat-history-input:has(input:focus) {
1135
+ border-color: var(--history-item-input-focus-border-color);
609
1136
  }
610
- .history-list li .history-item {
1137
+ .touchchat-history-item-text {
1138
+ position: relative;
611
1139
  flex: 1;
1140
+ white-space: nowrap;
612
1141
  overflow: hidden;
1142
+ text-overflow: ellipsis;
613
1143
  }
614
- .history-list li .history-item .tooltip-container {
615
- position: relative;
616
- display: inline-block;
617
- max-width: 100%;
618
- }
619
- .history-list li .history-item .custom-tooltip {
1144
+ .touchchat-tooltip {
1145
+ pointer-events: none;
1146
+ z-index: 1000;
620
1147
  visibility: hidden;
621
1148
  opacity: 0;
622
1149
  position: fixed;
623
1150
  transform: translateX(0%) translateY(-4em);
624
- background-color: #000 !important;
625
- color: #fff !important;
1151
+ background-color: var(--tooltip-bg);
1152
+ color: var(--tooltip-color);
626
1153
  text-align: center;
627
- padding: 0.375em 0.625em;
628
- border-radius: 0.25em;
629
- font-size: 0.75em;
1154
+ padding: var(--tooltip-padding);
1155
+ border-radius: var(--tooltip-radius);
630
1156
  white-space: nowrap;
631
1157
  transition: opacity 0.2s, visibility 0.2s;
632
- box-shadow: 0 0.125em 0.625em rgba(0, 0, 0, 0.2);
1158
+ line-height: var(--tooltip-lh);
633
1159
  }
634
- .history-list li .history-item .custom-tooltip::after {
1160
+ .touchchat-tooltip:after {
635
1161
  content: '';
636
1162
  position: absolute;
637
1163
  top: 100%;
638
1164
  left: 50%;
639
- margin-left: -0.3125em;
640
- border-width: 0.3125em;
1165
+ margin-left: calc(-1 * var(--tooltip-arrow-size));
1166
+ border-width: var(--tooltip-arrow-size);
641
1167
  border-style: solid;
642
- border-color: #000 transparent transparent transparent;
643
- }
644
- .history-list li .history-item .history-title {
645
- display: block;
646
- font-size: 0.875em;
647
- white-space: nowrap;
648
- overflow: hidden;
649
- text-overflow: ellipsis;
650
- width: 100%;
651
- font-family: 'PingFang SC';
652
- font-style: normal;
653
- line-height: 1.375em;
654
- color: #1d2129;
1168
+ border-color: var(--tooltip-bg) transparent transparent transparent;
655
1169
  }
656
- .history-list li .history-item .history-time {
657
- display: block;
658
- font-size: 0.75em;
659
- color: #86909c;
660
- margin-top: 0.25em;
1170
+ .touchchat-history-item:hover .touchchat-history-fn .touchchat-history-more {
1171
+ opacity: 1;
1172
+ visibility: visible;
661
1173
  }
662
- .history-list li .item-actions {
663
- position: relative;
664
- height: 1.5em;
1174
+ .touchchat-history-item:hover .touchchat-tooltip {
1175
+ visibility: visible !important;
1176
+ opacity: 1 !important;
665
1177
  }
666
- .history-list li .item-actions .more-btn {
667
- background-color: #ffffff;
668
- border: none;
669
- width: 1.5em;
670
- height: 1.5em;
671
- line-height: 1.5em;
672
- border-radius: 50%;
673
- cursor: pointer;
674
- display: flex;
1178
+ .touchchat-history-more {
1179
+ border: var(--history-more-border);
1180
+ width: var(--history-more-width);
1181
+ height: var(--history-more-height);
1182
+ display: inline-flex;
675
1183
  align-items: center;
1184
+ vertical-align: top;
676
1185
  justify-content: center;
677
- color: #000000;
678
- opacity: 0;
679
- transition: opacity 0.2s, background-color 0.2s;
1186
+ border-radius: var(--history-more-radius);
1187
+ cursor: pointer;
1188
+ color: var(--history-more-color);
1189
+ background: var(--history-more-bg);
680
1190
  visibility: hidden;
681
1191
  }
682
- .history-list li .item-actions:hover .more-btn {
683
- opacity: 1;
1192
+ .touchchat-history-more:hover {
1193
+ background: var(--history-more-hover-bg);
1194
+ }
1195
+ .touchchat-history-more:active {
1196
+ background: var(--history-more-active-bg);
1197
+ }
1198
+ .touchchat-history-more-icon:before {
1199
+ font-family: var(--history-more-icon-family);
1200
+ font-size: var(--history-more-icon-size);
1201
+ content: var(--history-more-icon-content);
684
1202
  }
685
- .history-list li .item-actions .action-menu {
1203
+ .touchchat-history-fn {
1204
+ position: relative;
1205
+ flex-shrink: 0;
1206
+ }
1207
+ .touchchat-history-float {
686
1208
  position: absolute;
1209
+ overflow: hidden;
687
1210
  right: 0;
688
1211
  top: 100%;
689
- margin-top: 0.25em;
690
- min-width: 7.5em;
691
- background: #fff;
692
- border-radius: 0.25em;
693
- box-shadow: 0 0.125em 0.625em rgba(0, 0, 0, 0.1);
1212
+ width: var(--history-float-width);
1213
+ background: var(--history-float-bg);
1214
+ border-radius: var(--history-float-radius);
1215
+ box-shadow: var(--history-float-shadow);
694
1216
  z-index: 100;
695
1217
  transition: opacity 0.2s, visibility 0.2s;
696
1218
  }
697
- .history-list li .item-actions .menu-item {
1219
+ .touchchat-history-rename {
698
1220
  display: flex;
699
1221
  align-items: center;
700
- padding: 0.5em 0.75em;
1222
+ padding: var(--history-rename-padding);
1223
+ height: var(--history-rename-height);
701
1224
  cursor: pointer;
702
- transition: background-color 0.2s;
703
- }
704
- .history-list li .item-actions .menu-item:hover {
705
- background-color: #f3f4f6;
706
- }
707
- .history-list li .item-actions .menu-item svg {
708
- margin-right: 0.5em;
709
- }
710
- .history-list li .item-actions .menu-item.delete-btn {
711
- color: #ef4444;
712
- }
713
- .history-list .history-item-container:hover .item-actions .more-btn {
714
- opacity: 1;
715
- visibility: visible;
716
- }
717
- .history-list .history-item-container:hover .custom-tooltip {
718
- visibility: visible !important;
719
- opacity: 1 !important;
1225
+ color: var(--history-rename-color);
1226
+ gap: var(--history-rename-gap);
720
1227
  }
721
- .history-group-header {
722
- padding: 0.5em 1em;
723
- pointer-events: none;
724
- user-select: none;
725
- }
726
- .history-group-header .history-item .history-title {
727
- color: #86909c;
728
- /* 保持灰色标题 */
729
- font-size: 0.75em;
730
- font-weight: 500;
731
- margin-left: 0.5em;
1228
+ .touchchat-history-rename:hover {
1229
+ color: var(--history-rename-hover-color);
1230
+ background: var(--history-rename-hover-bg);
1231
+ border: var(--history-rename-hover-border);
732
1232
  }
733
- .history-group-header .history-item:hover {
734
- background: none !important;
735
- cursor: default;
1233
+ .touchchat-history-rename:active {
1234
+ color: var(--history-rename-active-color);
1235
+ background: var(--history-rename-active-bg);
1236
+ border: var(--history-rename-active-border);
736
1237
  }
737
- .edit-title-input {
738
- width: 100%;
739
- padding: 0.25em 0.5em;
740
- border: 1px solid #ccc;
741
- border-radius: 0.25em;
742
- font-size: 0.875em;
743
- outline: none;
744
- box-sizing: border-box;
745
- /* 添加样式确保填满容器 */
746
- margin: 0;
1238
+ .touchchat-history-rename-icon:before {
1239
+ font-family: var(--history-rename-icon-family);
1240
+ font-size: var(--history-rename-icon-size);
1241
+ content: var(--history-rename-icon);
747
1242
  }
748
- /* 添加聚焦时的边框样式 */
749
- .edit-title-input:focus {
750
- border-color: #0077fa;
1243
+ .touchchat-history-rename-text {
1244
+ font-size: var(--history-rename-size);
751
1245
  }
752
- /* 修改历史项容器样式 */
753
- .history-item-container .history-item {
1246
+ .touchchat-history-remove {
754
1247
  display: flex;
755
- flex: 1;
756
- }
757
- .tooltip-container {
758
- min-width: 0;
759
- /* 允许内容收缩 */
1248
+ align-items: center;
1249
+ padding: var(--history-remove-padding);
1250
+ height: var(--history-remove-height);
1251
+ cursor: pointer;
1252
+ color: var(--history-remove-color);
1253
+ gap: var(--history-remove-gap);
1254
+ }
1255
+ .touchchat-history-remove:hover {
1256
+ color: var(--history-remove-hover-color);
1257
+ background: var(--history-remove-hover-bg);
1258
+ border: var(--history-remove-hover-border);
1259
+ }
1260
+ .touchchat-history-remove:active {
1261
+ color: var(--history-remove-active-color);
1262
+ background: var(--history-remove-active-bg);
1263
+ border: var(--history-remove-active-border);
1264
+ }
1265
+ .touchchat-history-remove-icon:before {
1266
+ font-family: var(--history-remove-icon-family);
1267
+ font-size: var(--history-remove-icon-size);
1268
+ content: var(--history-remove-icon);
1269
+ }
1270
+ .touchchat-history-remove-text {
1271
+ font-size: var(--history-remove-size);
1272
+ }
1273
+ .touchchat {
1274
+ --user-gap: 0.5em;
1275
+ --user-align: flex-end;
1276
+ --user-content-gap: 0.25em;
1277
+ --user-content-max-width: 75%;
1278
+ --user-avatar-pic-width: 2.5em;
1279
+ --user-avatar-pic-height: auto;
1280
+ --user-avatar-pic-radius: 50%;
1281
+ --user-bubble-bg: var(--color-primary);
1282
+ --user-bubble-color: #fff;
1283
+ --user-bubble-padding: 1em 1.5em;
1284
+ --user-bubble-lh: 1.8em;
1285
+ --user-bubble-radius: 0.5em 0 0.5em 0.5em;
1286
+ --user-bubble-border: none;
1287
+ --user-bubble-arrow-width: 0.5em;
1288
+ --user-bubble-arrow-height: 1em;
1289
+ --user-bubble-arrow-bg: url(./img/userArrow.png);
1290
+ --user-bubble-arrow-bg-size: 100% 100%;
1291
+ --user-bubble-text-size: 1.1em;
1292
+ --user-bubble-text-weight: normal;
1293
+ --user-bubble-text-family: inherit;
1294
+ --user-edit-border: 1px solid #ddd;
1295
+ --user-edit-radius: 0.25em;
1296
+ --user-edit-padding: 1em;
1297
+ --user-edit-focus-border-color: var(--color-primary);
1298
+ --user-edit-input-size: 1em;
1299
+ --user-edit-input-width: 40em;
1300
+ --user-edit-input-height: 8em;
1301
+ --user-edit-input-border: 0 none;
1302
+ --user-edit-input-lh: normal;
1303
+ --user-edit-submit-gap: 0.5em;
1304
+ --user-edit-submit-margin-top: 0.5em;
1305
+ --user-cancel-border: 1px solid #ddd;
1306
+ --user-cancel-height: 2.5em;
1307
+ --user-cancel-padding: 0 1.5em;
1308
+ --user-cancel-size: 1em;
1309
+ --user-cancel-radius: 0.25em;
1310
+ --user-cancel-bg: #fff;
1311
+ --user-cancel-color: inherit;
1312
+ --user-cancel-hover-bg: rgba(0, 0, 0, 0.1);
1313
+ --user-cancel-hover-color: var(--user-cancel-color);
1314
+ --user-cancel-hover-border: var(--user-cancel-border);
1315
+ --user-cancel-active-bg: rgba(0, 0, 0, 0.3);
1316
+ --user-cancel-active-color: var(--user-cancel-color);
1317
+ --user-cancel-active-border: var(--user-cancel-border);
1318
+ --user-send-height: 2.5em;
1319
+ --user-send-padding: 0 1.5em;
1320
+ --user-send-size: 1em;
1321
+ --user-send-radius: 0.25em;
1322
+ --user-send-bg: var(--color-primary);
1323
+ --user-send-border: 0 none;
1324
+ --user-send-color: #fff;
1325
+ --user-send-hover-bg: #2e91ff;
1326
+ --user-send-hover-color: var(--user-send-color);
1327
+ --user-send-hover-border: var(--user-send-border);
1328
+ --user-send-active-bg: #005fc7;
1329
+ --user-send-active-color: var(--user-send-color);
1330
+ --user-send-active-border: var(--user-send-border);
1331
+ }
1332
+ .touchchat-user {
1333
+ display: flex;
1334
+ gap: var(--user-gap);
1335
+ justify-content: var(--user-align);
1336
+ }
1337
+ .touchchat-user-content {
1338
+ order: 1;
1339
+ display: flex;
1340
+ flex-direction: column;
1341
+ align-items: flex-end;
1342
+ gap: var(--user-content-gap);
1343
+ max-width: var(--user-content-max-width);
760
1344
  }
761
- .actions-container {
762
- padding: 0 0.5em;
1345
+ .touchchat-user-content.is-full {
1346
+ flex: 1;
763
1347
  }
764
- .actions {
765
- display: flex;
766
- justify-content: flex-end;
767
- flex-wrap: wrap;
768
- gap: 0.25em;
1348
+ .touchchat-user-avatar {
1349
+ order: 2;
769
1350
  }
770
- .ai-actions-container .actions {
771
- justify-content: flex-start;
1351
+ .touchchat-user-avatar-pic {
1352
+ width: var(--user-avatar-pic-width);
1353
+ height: var(--user-avatar-pic-height);
1354
+ border-radius: var(--user-avatar-pic-radius);
1355
+ order: 2;
772
1356
  }
773
- .action-btn {
1357
+ .touchchat-user-bubble {
1358
+ flex: 1;
1359
+ background: var(--user-bubble-bg);
1360
+ color: var(--user-bubble-color);
1361
+ padding: var(--user-bubble-padding);
1362
+ line-height: var(--user-bubble-lh);
1363
+ border-radius: var(--user-bubble-radius);
1364
+ border: var(--user-bubble-border);
774
1365
  position: relative;
775
- /* 作为定位容器 */
776
- display: inline-flex;
777
- align-items: center;
778
- justify-content: center;
779
- /* 确保图标居中 */
780
- cursor: pointer;
781
- transition: all 0.2s ease;
782
- /* 确保SVG图标居中且不影响定位 */
783
1366
  }
784
- .action-btn .btn-text {
785
- position: absolute;
786
- top: -2.2em;
787
- /* 向上偏移显示 */
788
- left: 50%;
789
- transform: translateX(-50%);
790
- /* 水平居中 */
791
- display: none;
792
- padding: 0.25em 0.5em;
793
- background-color: #000;
794
- /* 黑色背景 */
795
- color: #fff;
796
- /* 白色文字 */
797
- font-size: 0.75em;
798
- border-radius: 0.25em;
799
- /* 圆角效果 */
800
- white-space: nowrap;
801
- box-shadow: 0 0.125em 0.25em rgba(0, 0, 0, 0.2);
802
- /* 添加阴影增强立体感 */
803
- z-index: 10;
804
- /* 确保显示在最上层 */
805
- }
806
- .action-btn .btn-text::after {
1367
+ .touchchat-user-bubble:before {
807
1368
  content: '';
808
1369
  position: absolute;
809
- bottom: -0.2em;
810
- /* 定位在提示框底部 */
811
- left: 50%;
812
- transform: translateX(-50%);
813
- border-width: 0.25em 0.25em 0;
814
- border-style: solid;
815
- border-color: #000 transparent transparent;
816
- }
817
- .action-btn:hover {
818
- /* 保留SVG原有悬浮效果 */
1370
+ display: block;
1371
+ right: calc(-1 * var(--user-bubble-arrow-width));
1372
+ top: 0;
1373
+ width: var(--user-bubble-arrow-width);
1374
+ height: var(--user-bubble-arrow-height);
1375
+ background: var(--user-bubble-arrow-bg);
1376
+ background-size: var(--user-bubble-arrow-bg-size);
1377
+ }
1378
+ .touchchat-user-bubble-text {
1379
+ font-size: var(--user-bubble-text-size);
1380
+ font-weight: var(--user-bubble-text-weight);
1381
+ font-family: var(--user-bubble-text-family);
1382
+ }
1383
+ .touchchat-user-edit {
1384
+ border: var(--user-edit-border);
1385
+ overflow: hidden;
1386
+ border-radius: var(--user-edit-radius);
1387
+ padding: var(--user-edit-padding);
819
1388
  }
820
- .action-btn:hover .btn-text {
821
- display: inline-block;
822
- /* 悬浮时显示文字 */
1389
+ .touchchat-user-edit:has(textarea:focus) {
1390
+ border-color: var(--user-edit-focus-border-color);
823
1391
  }
824
- .action-btn:hover svg {
825
- background-color: #eeeeee;
826
- border-radius: 50%;
1392
+ .touchchat-user-edit-input {
1393
+ width: var(--user-edit-input-width);
1394
+ height: var(--user-edit-input-height);
1395
+ border: var(--user-edit-input-border);
827
1396
  }
828
- .action-btn svg {
829
- flex-shrink: 0;
830
- transition: all 0.2s ease;
1397
+ .touchchat-user-edit-input textarea {
1398
+ resize: none;
1399
+ vertical-align: top;
1400
+ font-family: inherit;
1401
+ width: 100%;
1402
+ height: 100%;
1403
+ border: 0 none;
1404
+ line-height: var(--user-edit-input-lh);
1405
+ font-size: var(--user-edit-input-size);
831
1406
  }
832
- .message-type-user .action-btn.edit-btn:hover svg path {
833
- fill: #0077fa;
1407
+ .touchchat-user-edit-submit {
1408
+ margin-top: var(--user-edit-submit-margin-top);
1409
+ display: flex;
1410
+ justify-content: flex-end;
1411
+ gap: var(--user-edit-submit-gap);
834
1412
  }
835
- .message-type-user .action-btn.delete-btn:hover svg path {
836
- fill: #ff4d4f;
1413
+ .touchchat-user-cancel {
1414
+ border: var(--user-cancel-border);
1415
+ height: var(--user-cancel-height);
1416
+ padding: var(--user-cancel-padding);
1417
+ border-radius: var(--user-cancel-radius);
1418
+ cursor: pointer;
1419
+ background: var(--user-cancel-bg);
1420
+ color: var(--user-cancel-color);
1421
+ }
1422
+ .touchchat-user-cancel:hover {
1423
+ background: var(--user-cancel-hover-bg);
1424
+ color: var(--user-cancel-hover-color);
1425
+ border: var(--user-cancel-hover-border);
1426
+ }
1427
+ .touchchat-user-cancel:active {
1428
+ background: var(--user-cancel-active-bg);
1429
+ color: var(--user-cancel-active-color);
1430
+ border: var(--user-cancel-active-border);
1431
+ }
1432
+ .touchchat-user-cancel-text {
1433
+ font-size: var(--user-cancel-size);
1434
+ }
1435
+ .touchchat-user-send {
1436
+ height: var(--user-send-height);
1437
+ padding: var(--user-send-padding);
1438
+ border-radius: var(--user-send-radius);
1439
+ cursor: pointer;
1440
+ background: var(--user-send-bg);
1441
+ border: var(--user-send-border);
1442
+ color: var(--user-send-color);
837
1443
  }
838
- .action-btn.retry-btn:hover svg path {
839
- fill: #0077fa;
1444
+ .touchchat-user-send:hover {
1445
+ background: var(--user-send-hover-bg);
1446
+ color: var(--user-send-hover-color);
1447
+ border: var(--user-send-hover-border);
840
1448
  }
841
- .action-btn.like-btn.liked svg path {
842
- fill: #ff4d4f;
1449
+ .touchchat-user-send:active {
1450
+ background: var(--user-send-active-bg);
1451
+ color: var(--user-send-active-color);
1452
+ border: var(--user-send-active-border);
843
1453
  }
844
- .action-btn.dislike-btn.disliked svg path {
845
- fill: #faad14;
1454
+ .touchchat-user-send-text {
1455
+ font-size: var(--user-send-size);
846
1456
  }
847
- .history-container {
848
- display: flex;
849
- flex-direction: column;
850
- height: 100%;
851
- background-color: #f7f8fa;
852
- position: relative;
1457
+ .card-container {
1458
+ padding-top: 0.75em;
853
1459
  }
854
- .history-container .app-header {
855
- padding: 0.75em 0 0.75em 0.5em;
1460
+ .card-header {
856
1461
  display: flex;
857
1462
  justify-content: space-between;
858
1463
  align-items: center;
1464
+ margin-bottom: 1em;
1465
+ padding-bottom: 0.5em;
859
1466
  }
860
- .history-container .app-header h1 {
861
- margin: 0;
862
- font-size: 1.125em;
863
- font-weight: 600;
864
- color: #374151;
865
- }
866
- .history-container .app-header .header-actions {
867
- display: flex;
868
- gap: 0.75em;
1467
+ .header-text {
1468
+ font-size: 0.875em;
1469
+ color: #1d2129;
869
1470
  }
870
- .history-container .app-header .header-actions .settings-btn {
871
- background: none;
1471
+ .switch-btn {
872
1472
  border: none;
1473
+ background: none;
1474
+ color: #0077fa;
1475
+ font-size: 0.875em;
873
1476
  cursor: pointer;
874
- color: #86909c;
1477
+ padding: 0.25em 0.5em;
875
1478
  }
876
- .history-container .app-header .header-actions .settings-btn:hover {
1479
+ .switch-btn span {
1480
+ margin-right: 0.5em;
1481
+ }
1482
+ .switch-btn:hover {
877
1483
  opacity: 0.8;
878
1484
  background-color: #eeeeee;
879
1485
  }
880
- .history-container .main-content {
1486
+ .cards-wrapper {
881
1487
  display: flex;
882
- position: relative;
883
- flex: 1;
884
- overflow: hidden;
885
- background-color: #ffffff;
1488
+ gap: 0.75em;
1489
+ overflow-x: auto;
886
1490
  }
887
- .history-container .main-content .history-sidebar {
888
- flex: 0 0 16.25em;
889
- display: flex;
890
- flex-direction: column;
891
- overflow: hidden;
892
- transition: transform 0.3s ease, width 0.3s ease;
893
- z-index: 10;
894
- padding: 0.375em;
895
- border-radius: 0.375em;
896
- background: var(--Fill-Fill--, #f7f8fa);
1491
+ .card-item {
1492
+ flex: 1;
1493
+ min-width: 12.5em;
1494
+ border: 1px solid #d8dce4;
1495
+ border-radius: 0.5em;
1496
+ padding: 1em;
1497
+ cursor: pointer;
897
1498
  position: relative;
898
- }
899
- .history-container .main-content .history-sidebar.collapsed {
900
- transform: translateX(-100%);
901
- width: 0;
902
- border-right: none;
903
- padding: 0;
904
- position: absolute;
905
- }
906
- .history-container .main-content .history-sidebar.collapsed ~ .chat-area {
907
- margin: 0 6.25em;
908
- }
909
- .history-container .main-content .history-sidebar .new-chat-btn {
910
- padding: 0.5em 0.75em;
911
- cursor: pointer;
912
- width: 100%;
913
- border-radius: 0.25em;
914
- border: 1px solid #0077fa;
915
- color: #0077fa;
916
- text-align: center;
917
- font-family: 'PingFang SC';
918
- font-size: 0.875em;
919
- font-style: normal;
920
- font-weight: 400;
921
- line-height: 1.375em;
922
- background-color: var(--Fill-Fill--, #f7f8fa);
923
- display: flex;
924
- align-items: center;
925
- justify-content: center;
926
- }
927
- .history-container .main-content .history-sidebar .new-chat-btn .add {
928
- font-size: 1.5em;
929
- margin-right: 0.25em;
930
- }
931
- .history-container .main-content .history-sidebar .new-chat-btn:hover {
932
- background-color: #0e4cd3;
933
- color: #ffffff;
934
- }
935
- .history-container .chat-area {
936
- flex: 1;
937
- display: flex;
938
- flex-direction: column;
939
- overflow: hidden;
940
- transition: margin 0.3s ease;
941
- }
942
- .history-container .floating {
943
- position: absolute;
944
- top: 1em;
945
- left: 1em;
946
- padding: 0.5em 0.75em;
947
- background-color: #ffffff;
948
- border: none;
949
- border-radius: 0.375em;
950
- cursor: pointer;
951
- font-size: 0.875em;
952
- transition: all 0.3s ease;
953
- z-index: 1000;
954
- display: flex;
955
- align-items: center;
956
- gap: 0.5em;
957
- }
958
- .history-container .floating svg:hover,
959
- .history-container .floating span:hover {
960
- background-color: #eeeeee;
961
- opacity: 0.8;
962
- }
963
- .history-container .floating span {
964
- font-size: 1.5em;
965
- }
966
- .context-menu {
967
- position: absolute;
968
- width: 9.375em;
969
- background: white;
970
- border-radius: 0.375em;
971
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
972
- z-index: 1000;
973
- }
974
- .context-menu .context-menu-item {
975
- padding: 0.5em 0.75em;
976
- cursor: pointer;
977
- transition: background-color 0.2s;
978
- }
979
- .context-menu .context-menu-item:hover {
980
- background-color: #f3f4f6;
981
- }
982
- .search-box {
983
- padding: 0.75em;
984
- border-bottom: 1px solid #eaecf0;
985
- display: flex;
986
- gap: 0.5em;
987
- }
988
- .search-box input {
989
- flex: 1;
990
- padding: 0.5em 0.75em;
991
- border: 1px solid #eaecf0;
992
- border-radius: 0.375em;
993
- outline: none;
994
- }
995
- .search-box input:focus {
996
- border-color: #10b981;
997
- }
998
- .history-group-header {
999
- padding: 0.5em 1em;
1000
- pointer-events: none;
1001
- user-select: none;
1002
- }
1003
- .history-group-header .history-item .history-title {
1004
- color: #86909c;
1005
- /* 保持灰色标题 */
1006
- font-size: 0.75em;
1007
- font-weight: 500;
1008
- margin-left: 0.5em;
1009
- }
1010
- .history-group-header .history-item:hover {
1011
- cursor: default;
1012
- }
1013
- .user-message {
1014
- display: flex;
1015
- justify-content: flex-end;
1016
- margin-left: auto;
1017
- }
1018
- .user-message .message-content {
1019
- flex-direction: row-reverse;
1020
- display: flex;
1021
- align-items: flex-start;
1022
- }
1023
- .user-message .text-content {
1024
- background-color: #0077fa;
1025
- color: white;
1026
- position: relative;
1027
- font-size: 0.875em;
1028
- border-radius: 0.75em 0 0.75em 0.75em;
1029
- margin-left: 0;
1030
- margin-right: 0.5em;
1031
- padding: 0.75em 1em;
1032
- }
1033
- .user-message .text-content::after {
1034
- background: url('./components/aiChat/img/corner.png') no-repeat;
1035
- content: '';
1036
- background-size: 100% 100%;
1037
- width: 0.625em;
1038
- height: 0.625em;
1039
- display: inline-block;
1040
- position: absolute;
1041
- top: 0;
1042
- right: -0.625em;
1043
- border: 0;
1044
- transform: rotate(0);
1045
- }
1046
- .edit-textarea {
1047
- width: calc(100% - 1em);
1048
- min-height: 5em;
1049
- padding: 0.5em;
1050
- border: 1px solid #ddd;
1051
- border-radius: 0.25em;
1052
- resize: vertical;
1053
- }
1054
- .edit-buttons {
1055
- display: flex;
1056
- gap: 0.625em;
1057
- margin-top: 0.5em;
1058
- }
1059
- .edit-buttons .save-btn,
1060
- .edit-buttons .cancel-btn {
1061
- padding: 0.375em 0.75em;
1062
- border: none;
1063
- border-radius: 0.25em;
1064
- cursor: pointer;
1065
- }
1066
- .edit-buttons .save-btn:hover,
1067
- .edit-buttons .cancel-btn:hover {
1068
- opacity: 0.8;
1069
- }
1070
- .edit-buttons .save-btn {
1071
- background-color: #42b983;
1072
- color: white;
1073
- }
1074
- .edit-buttons .save-btn:disabled {
1075
- opacity: 0.8;
1076
- cursor: not-allowed;
1077
- }
1078
- .edit-buttons .cancel-btn {
1079
- background-color: #f5f5f5;
1080
- }
1081
- .user-message-wrapper {
1082
- display: flex;
1083
- flex-direction: column;
1084
- gap: 0.5em;
1085
- }
1086
- .user-message-wrapper .msg-content-container .msg-rich-text .line {
1087
- color: #fff;
1088
- text-shadow: 0 0.125em 0.25em #1d77ff;
1089
- /* Body 正文/Medium */
1090
- font-family: 'PingFang SC';
1091
- font-size: 0.875em;
1092
- font-style: normal;
1093
- font-weight: 400;
1094
- line-height: 1.375em;
1095
- /* 157.143% */
1096
- }
1097
- .edit-input-container {
1098
- width: 100%;
1099
- overflow: hidden;
1100
- border-radius: 0.5em;
1101
- border: 1px solid var(--Brand-Brand-, #0077fa);
1102
- background: #fff;
1103
- box-shadow: 0 0 0 0.125em rgba(0, 119, 250, 0.15);
1104
- margin: 0 0.5em 0.625em 0.5em;
1105
- }
1106
- .edit-input-container .edit-textarea {
1107
- width: 100%;
1108
- min-height: 6.25em;
1109
- padding: 0.75em;
1110
- border: none;
1111
- resize: vertical;
1112
- outline: none;
1113
- font-size: 0.875em;
1114
- line-height: 1.5;
1115
- }
1116
- .edit-input-container .edit-controls {
1117
- display: flex;
1118
- justify-content: flex-end;
1119
- padding: 0.5em;
1120
- gap: 0.5em;
1121
- }
1122
- .edit-input-container .edit-controls .btn {
1123
- padding: 0.375em 1em;
1124
- border-radius: 0.25em;
1125
- font-size: 0.875em;
1126
- cursor: pointer;
1127
- }
1128
- .edit-input-container .edit-controls .btn.cancel-btn {
1129
- background-color: #ffffff;
1130
- color: #4e5969;
1131
- border: 1px solid #e5e6eb;
1132
- }
1133
- .edit-input-container .edit-controls .btn.send-btn {
1134
- background-color: #1890ff;
1135
- color: #ffffff;
1136
- border: none;
1137
- }
1138
- .edit-input-container .edit-controls .btn.send-btn:disabled {
1139
- background-color: #e8f3ff;
1140
- cursor: not-allowed;
1141
- }
1142
- .edit-input-container .edit-controls .btn:hover {
1143
- opacity: 0.8;
1144
- }
1145
- .card-container {
1146
- padding-top: 0.75em;
1147
- }
1148
- .card-header {
1149
- display: flex;
1150
- justify-content: space-between;
1151
- align-items: center;
1152
- margin-bottom: 1em;
1153
- padding-bottom: 0.5em;
1154
- }
1155
- .header-text {
1156
- font-size: 0.875em;
1157
- color: #1d2129;
1158
- }
1159
- .switch-btn {
1160
- border: none;
1161
- background: none;
1162
- color: #0077fa;
1163
- font-size: 0.875em;
1164
- cursor: pointer;
1165
- padding: 0.25em 0.5em;
1166
- }
1167
- .switch-btn span {
1168
- margin-right: 0.5em;
1169
- }
1170
- .switch-btn:hover {
1171
- opacity: 0.8;
1172
- background-color: #eeeeee;
1173
- }
1174
- .cards-wrapper {
1175
- display: flex;
1176
- gap: 0.75em;
1177
- overflow-x: auto;
1178
- }
1179
- .card-item {
1180
- flex: 1;
1181
- min-width: 12.5em;
1182
- border: 1px solid #d8dce4;
1183
- border-radius: 0.5em;
1184
- padding: 1em;
1185
- cursor: pointer;
1186
- position: relative;
1187
- transition: all 0.2s ease;
1499
+ transition: all 0.2s ease;
1188
1500
  }
1189
1501
  .card-item.selected {
1190
- border-color: #0077fa;
1191
- background-color: #f0f7ff;
1192
- }
1193
- .card-title {
1194
- font-size: 1em;
1195
- font-weight: 500;
1196
- color: #1d2129;
1197
- margin: 0 0 0.5em 0;
1198
- }
1199
- .card-desc {
1200
- font-size: 0.875em;
1201
- color: #4e5969;
1202
- line-height: 1.5;
1203
- word-break: break-word;
1204
- }
1205
- .check-mark {
1206
- position: absolute;
1207
- top: 0;
1208
- right: 0;
1209
- }
1210
- .file-view {
1211
- margin: 0.5em 0;
1212
- display: flex;
1213
- width: 15em;
1214
- padding: 0.5em 0.75em;
1215
- align-items: center;
1216
- gap: 0.5em;
1217
- border-radius: 0.5em;
1218
- border: 1px solid #eaecf0;
1219
- background: #f7f8fa;
1220
- cursor: pointer;
1221
- transition: all 0.2s ease;
1222
- }
1223
- .file-view:hover {
1224
- border-color: #0077ff;
1225
- background-color: #f0f7ff;
1226
- }
1227
- .file-icon {
1228
- width: 1.5em;
1229
- height: 1.5em;
1230
- flex-shrink: 0;
1231
- }
1232
- .file-info {
1233
- flex: 1;
1234
- min-width: 0;
1235
- }
1236
- .file-name {
1237
- font-size: 0.875em;
1238
- color: #1d2129;
1239
- white-space: nowrap;
1240
- overflow: hidden;
1241
- text-overflow: ellipsis;
1242
- }
1243
- .file-size {
1244
- font-size: 0.75em;
1245
- color: #86909c;
1246
- }
1247
- .file-action {
1248
- color: #4e5969;
1249
- transition: color 0.2s ease;
1250
- }
1251
- .file-view:hover .file-action {
1252
- color: #0077ff;
1253
- }
1254
- .hello-chat {
1255
- display: flex;
1256
- flex-direction: column;
1257
- padding: 1em;
1258
- align-items: flex-start;
1259
- gap: 1em;
1260
- }
1261
- .hello-chat .title {
1262
- color: var(--text-icon-text-icon, #1d2129);
1263
- font-family: 'PingFang SC';
1264
- font-size: 1.75em;
1265
- font-style: normal;
1266
- font-weight: 600;
1267
- line-height: 2.25em;
1268
- /* 128.571% */
1269
- }
1270
- .hello-chat .sub-info {
1271
- color: var(--text-icon-text-icon, #434c59);
1272
- /* Body 正文/Large */
1273
- font-family: 'PingFang SC';
1274
- font-size: 1em;
1275
- font-style: normal;
1276
- font-weight: 400;
1277
- line-height: 1.5em;
1278
- /* 150% */
1279
- }
1280
- .function-buttons {
1281
- width: calc(100% - 2em);
1282
- padding: 0 1em 1em;
1283
- }
1284
- .function-buttons ul {
1285
- display: flex;
1286
- flex-wrap: wrap;
1287
- gap: 1em;
1288
- list-style: none;
1289
- padding: 0;
1290
- margin: 0;
1291
- }
1292
- .function-buttons ul li {
1293
- display: flex;
1294
- align-items: center;
1295
- justify-content: flex-start;
1296
- width: calc(28% - 0.57em);
1297
- padding: 0 0.75em;
1298
- cursor: pointer;
1299
- transition: all 0.2s ease;
1300
- border-radius: 0.5em;
1301
- border: 1px solid #d8dce4;
1302
- background: #fff;
1303
- }
1304
- .function-buttons ul li:hover {
1305
- transform: translateY(-0.125em);
1306
- border: 1px solid var(--Brand-Brand-, #0077fa);
1307
- background: var(--Brand-Brand--, #eaf5ff);
1308
- }
1309
- .function-buttons ul li .icon {
1310
- width: 1.625em;
1311
- height: 1.625em;
1312
- margin-top: 0.5em;
1313
- margin-right: 0.2em;
1314
- object-fit: contain;
1315
- }
1316
- .function-buttons ul li span {
1317
- color: var(--text-icon-text-icon, #1d2129);
1318
- font-family: 'PingFang SC';
1319
- font-size: 0.875em;
1320
- font-style: normal;
1321
- font-weight: 400;
1322
- text-align: center;
1323
- white-space: nowrap;
1324
- overflow: hidden;
1325
- text-overflow: ellipsis;
1326
- max-width: calc(100% - 2em);
1327
- }
1328
- .image-view {
1329
- display: flex;
1330
- height: 28.635em;
1331
- justify-content: center;
1332
- align-items: center;
1333
- align-self: stretch;
1334
- aspect-ratio: 847.5/458.16;
1335
- overflow: hidden;
1336
- position: relative;
1337
- }
1338
- .image-content {
1339
- max-width: 100%;
1340
- max-height: 100%;
1341
- object-fit: contain;
1342
- object-position: center;
1343
- transition: transform 0.2s ease;
1344
- }
1345
- .image-view:hover .image-content {
1346
- transform: scale(1.02);
1347
- }
1348
- .link-container {
1349
- max-width: 35em;
1350
- display: flex;
1351
- padding: 0.75em;
1352
- flex-direction: column;
1353
- align-items: flex-start;
1354
- gap: 0.75em;
1355
- align-self: stretch;
1356
- margin: 0.5em 0;
1357
- border-radius: 0.5em;
1358
- border: 0.5px solid #d8dce4;
1359
- background: #f7f8fa;
1360
- }
1361
- .link-url {
1362
- display: flex;
1363
- align-items: center;
1364
- gap: 0.5em;
1365
- margin-bottom: 0.75em;
1366
- color: #0077fa;
1367
- font-size: 0.875em;
1368
- cursor: pointer;
1369
- }
1370
- .link-icon {
1371
- width: 0.75em;
1372
- height: 0.75em;
1373
- flex-shrink: 0;
1374
- }
1375
- .url-text {
1376
- white-space: nowrap;
1377
- overflow: hidden;
1378
- text-overflow: ellipsis;
1379
- color: inherit;
1380
- text-decoration: none;
1381
- }
1382
- .link-content {
1383
- display: flex;
1384
- gap: 0.75em;
1385
- }
1386
- .content-image {
1387
- width: 2.8125em;
1388
- flex-shrink: 0;
1389
- align-self: flex-start;
1390
- aspect-ratio: 15/14;
1391
- background: url('./components/aiChat/img/link.png') lightgray center center / contain no-repeat;
1392
- }
1393
- .info-content {
1394
- flex: 1;
1395
- min-width: 0;
1396
- }
1397
- .link-title {
1398
- font-size: 1em;
1399
- font-weight: 500;
1400
- color: #1d2129;
1401
- margin: 0 0 0.25em 0;
1402
- display: -webkit-box;
1403
- -webkit-line-clamp: 1;
1404
- -webkit-box-orient: vertical;
1405
- overflow: hidden;
1406
- display: -moz-box;
1407
- -moz-line-clamp: 1;
1408
- -moz-box-orient: vertical;
1409
- line-clamp: 1;
1410
- }
1411
- .link-desc {
1412
- font-size: 0.875em;
1413
- color: #4e5969;
1414
- margin: 0;
1415
- display: -webkit-box;
1416
- -webkit-line-clamp: 2;
1417
- -webkit-box-orient: vertical;
1418
- overflow: hidden;
1419
- display: -moz-box;
1420
- -moz-line-clamp: 2;
1421
- -moz-box-orient: vertical;
1422
- line-clamp: 2;
1423
- }
1424
- .text-content-wrapper {
1425
- display: flex;
1426
- flex-direction: column;
1427
- }
1428
- .is-editing {
1429
- width: 100%;
1430
- }
1431
- .is-editing .edit-input-container {
1432
- margin-left: -10px;
1433
- }
1434
- .message-item {
1435
- display: flex;
1436
- flex-direction: row;
1437
- align-items: flex-start;
1438
- margin-bottom: 15px;
1439
- }
1440
- .edit-input-container {
1441
- width: 100%;
1442
- padding: 10px;
1443
- box-sizing: border-box;
1444
- margin-top: 0.25em;
1445
- /* 如果是用户消息的编辑区域,增加与头像方向的间距 */
1446
- }
1447
- :deep(.user-message) .edit-input-container {
1448
- margin-left: -0.625em;
1449
- /* 增加左侧间距,远离用户头像 */
1450
- }
1451
- .edit-input-container .edit-textarea {
1452
- width: 100%;
1453
- min-height: 5em;
1454
- padding: 0.625em;
1455
- border: none;
1456
- resize: vertical;
1457
- outline: none;
1458
- font-size: 0.875em;
1459
- box-sizing: border-box;
1460
- }
1461
- .edit-input-container .edit-textarea:focus {
1462
- border-color: #4096ff;
1463
- }
1464
- .edit-input-container .edit-controls {
1465
- display: flex;
1466
- justify-content: flex-end;
1467
- margin-top: 0.625em;
1468
- gap: 0.625em;
1469
- }
1470
- .edit-input-container .edit-controls .btn {
1471
- padding: 0.375em 1em;
1472
- border-radius: 0.25em;
1473
- border: none;
1474
- cursor: pointer;
1475
- font-size: 0.875em;
1476
- }
1477
- .edit-input-container .edit-controls .btn.cancel-btn {
1478
- background-color: #f5f5f5;
1479
- color: #666;
1480
- }
1481
- .edit-input-container .edit-controls .btn.cancel-btn:hover {
1482
- background-color: #e8e8e8;
1483
- }
1484
- .edit-input-container .edit-controls .btn.send-btn {
1485
- background-color: #4096ff;
1486
- color: white;
1487
- }
1488
- .edit-input-container .edit-controls .btn.send-btn:hover {
1489
- background-color: #66b1ff;
1490
- }
1491
- .edit-input-container .edit-controls .btn.send-btn:disabled {
1492
- background-color: #a0cfff;
1493
- cursor: not-allowed;
1494
- }
1495
- .header-container {
1496
- position: relative;
1497
- }
1498
- .chat-header {
1499
- display: flex;
1500
- justify-content: space-between;
1501
- align-items: center;
1502
- }
1503
- .close-btn {
1504
- cursor: pointer;
1505
- color: #666;
1506
- display: flex;
1507
- align-items: center;
1508
- justify-content: center;
1509
- padding: 0.5em;
1510
- border-radius: 0.25em;
1511
- transition: all 0.2s ease;
1512
- }
1513
- .close-btn:hover {
1514
- color: #333;
1515
- transform: scale(1.1);
1516
- background-color: #f0f0f0;
1517
- }
1518
- .close-btn:hover svg path {
1519
- fill: #ff4d4f;
1520
- }
1521
- .header-title {
1522
- font-size: 1em;
1523
- font-weight: bold;
1524
- color: #333;
1525
- }
1526
- .header-actions {
1527
- display: flex;
1528
- gap: 1em;
1529
- }
1530
- .action-icon {
1531
- cursor: pointer;
1532
- background-size: contain;
1533
- background-repeat: no-repeat;
1534
- background-position: center;
1535
- transition: all 0.2s ease;
1536
- display: flex;
1537
- align-items: center;
1538
- justify-content: center;
1539
- padding: 0.5em;
1540
- border-radius: 0.25em;
1541
- }
1542
- .action-icon:hover {
1543
- background-color: #f0f0f0;
1544
- transform: scale(1.1);
1545
- }
1546
- .new-chat:hover svg path {
1547
- fill: #1890ff;
1548
- }
1549
- .history:hover svg path {
1550
- fill: #1890ff;
1551
- }
1552
- /* 历史记录悬浮窗样式 */
1553
- .history-dropdown {
1554
- position: absolute;
1555
- top: 3.2em;
1556
- /* 调整位置以适应您的布局 */
1557
- right: 1em;
1558
- width: 18.75em;
1559
- background-color: white;
1560
- border-radius: 0.5em;
1561
- box-shadow: 0 0.25em 0.75em rgba(0, 0, 0, 0.15);
1562
- z-index: 100;
1563
- overflow: hidden;
1564
- }
1565
- .dropdown-header {
1566
- display: flex;
1567
- justify-content: space-between;
1568
- align-items: center;
1569
- padding: 0.625em 1em;
1570
- border-bottom: 1px solid #f0f0f0;
1571
- }
1572
- .dropdown-title {
1573
- font-weight: 600;
1574
- color: #1d2129;
1575
- }
1576
- .dropdown-actions {
1577
- display: flex;
1578
- gap: 0.5em;
1579
- }
1580
- .new-chat-btn {
1581
- width: 2em;
1582
- height: 2em;
1583
- border-radius: 0.25em;
1584
- border: none;
1585
- background-color: #f7f8fa;
1586
- cursor: pointer;
1587
- display: flex;
1588
- align-items: center;
1589
- justify-content: center;
1590
- }
1591
- .new-chat-btn:hover {
1592
- background-color: #e8ebef;
1593
- }
1594
- .history-list.is-robot {
1595
- max-height: 31.25em;
1596
- overflow-y: auto;
1597
- }
1598
- .history-group {
1599
- padding: 0.5em 0;
1600
- }
1601
- .group-header {
1602
- padding: 0.375em 1em;
1603
- font-size: 0.75em;
1604
- color: #86909c;
1605
- }
1606
- .group-items {
1607
- list-style: none;
1608
- padding: 0;
1609
- margin: 0;
1610
- }
1611
- .history-item {
1612
- display: flex;
1613
- justify-content: space-between;
1614
- align-items: center;
1615
- cursor: pointer;
1616
- }
1617
- .history-item.active {
1618
- background-color: #e6f7ff;
1619
- border-left: 0.25em solid #1890ff;
1620
- }
1621
- .item-content {
1622
- flex: 1;
1623
- color: #1d2129;
1624
- font-size: 0.875em;
1625
- white-space: nowrap;
1626
- overflow: hidden;
1627
- text-overflow: ellipsis;
1628
- }
1629
- .item-actions {
1630
- margin-left: 0.5em;
1631
- }
1632
- .more-btn {
1633
- width: 1.5em;
1634
- height: 1.5em;
1635
- border: none;
1636
- background: none;
1637
- cursor: pointer;
1638
- color: #86909c;
1639
- font-size: 0.875em;
1640
- line-height: 1.5em;
1641
- }
1642
- .more-btn:hover {
1643
- color: #1d2129;
1644
- background-color: #f0f0f0;
1645
- border-radius: 0.25em;
1646
- }
1647
- .ai-robot-container,
1648
- .ai-robot-container-not-header {
1649
- display: flex;
1650
- flex-direction: column;
1651
- height: 100vh;
1652
- background-color: #f5f7fa;
1653
- padding: 1em;
1654
- box-sizing: border-box;
1655
- }
1656
- .header h1 {
1657
- font-size: 1.25em;
1658
- color: #333;
1659
- margin-bottom: 1.25em;
1660
- font-weight: 600;
1661
- }
1662
- .chat-container {
1663
- flex: 1;
1664
- overflow: hidden;
1665
- }
1666
- .chat-container .message-list {
1667
- height: 100%;
1668
- overflow-y: auto;
1669
- padding-right: 0.625em;
1670
- }
1671
- .chat-container .message-list::-webkit-scrollbar {
1672
- width: 0.375em;
1673
- }
1674
- .chat-container .message-list::-webkit-scrollbar-thumb {
1675
- background-color: #ddd;
1676
- border-radius: 0.25em;
1677
- }
1678
- .message-item {
1679
- display: flex;
1680
- margin-bottom: 1em;
1681
- max-width: 75%;
1682
- align-items: flex-start;
1683
- }
1684
- .message-item.ai-message {
1685
- align-self: flex-start;
1686
- }
1687
- .message-item.user-message {
1688
- margin-left: auto;
1689
- }
1690
- .action-button {
1691
- margin-left: 0.5em;
1692
- flex-shrink: 0;
1693
- align-self: flex-end;
1694
- }
1695
- .continuous-btn {
1696
- background-color: #0077fa;
1697
- color: white;
1698
- border: none;
1699
- border-radius: 1.25em;
1700
- padding: 0.25em 0.75em;
1701
- font-size: 0.875em;
1702
- cursor: pointer;
1703
- }
1704
- .confirm-btn {
1705
- background-color: #0077fa;
1706
- color: white;
1707
- border: none;
1708
- border-radius: 1.25em;
1709
- padding: 0.25em 0.75em;
1710
- font-size: 0.875em;
1711
- cursor: pointer;
1712
- }
1713
- .bottom-area {
1714
- display: flex;
1715
- flex-direction: column;
1716
- gap: 0.625em;
1717
- padding-top: 0.75em;
1718
- }
1719
- .bottom-area .scene-buttons {
1720
- display: flex;
1721
- gap: 0.625em;
1722
- }
1723
- .bottom-area .scene-buttons .scene-btn {
1724
- display: flex;
1725
- padding: 0.375em 1em;
1726
- justify-content: center;
1727
- align-items: center;
1728
- gap: 0.375em;
1729
- border-radius: 0.375em;
1730
- border: 1px solid var(--Border-Border-, #d8dce4);
1731
- background: var(--Neutral-colors-White, #fff);
1732
- color: var(--text-icon-text-icon, #1d2129);
1733
- text-align: center;
1734
- /* Body 正文/Medium */
1735
- font-family: 'PingFang SC';
1736
- font-size: 0.875em;
1737
- font-style: normal;
1738
- font-weight: 400;
1739
- line-height: 1.375em;
1740
- /* 157.143% */
1741
- cursor: pointer;
1742
- transition: all 0.2s;
1743
- }
1744
- .bottom-area .scene-buttons .scene-btn:hover {
1745
- border-color: #0077fa;
1746
- color: #0077fa;
1747
- }
1748
- .bottom-area .scene-buttons .scene-btn:disabled {
1749
- background-color: #f5f5f5;
1750
- color: #ccc;
1751
- border-color: #e0e0e0;
1752
- cursor: not-allowed;
1753
- }
1754
- .bottom-area .scene-buttons .scene-btn:disabled:hover {
1755
- border-color: #e0e0e0;
1756
- color: #ccc;
1757
- }
1758
- .bottom-area .scene-buttons .scene-btn.active {
1759
- background-color: #0077fa;
1760
- color: white;
1761
- border-color: #0077fa;
1762
- }
1763
- .bottom-area .scene-buttons .scene-btn.active:hover {
1764
- background-color: #0055cc;
1765
- border-color: #0055cc;
1766
- color: white;
1767
- }
1768
- .bottom-area .input-container {
1769
- display: flex;
1770
- flex-direction: column;
1771
- gap: 0.625em;
1772
- background: #ffffff;
1773
- padding: 0.5em;
1774
- justify-content: space-between;
1775
- align-items: flex-end;
1776
- align-self: stretch;
1777
- border-radius: 0.5em;
1778
- border: 0.5px solid var(--Border-Border-, #d8dce4);
1779
- background: #fff;
1780
- box-shadow: 0 0.125em 0.375em 0 rgba(0, 0, 0, 0.1);
1781
- }
1782
- .bottom-area .input-container textarea {
1783
- width: calc(100% - 1.5em);
1784
- border: 0;
1785
- padding: 0.75em;
1786
- resize: none;
1787
- height: 3.125em;
1788
- font-size: 0.875em;
1789
- outline: none;
1790
- }
1791
- .bottom-area .input-container textarea:focus {
1792
- border-color: #0077fa;
1793
- }
1794
- .floating-avatar-container {
1795
- position: fixed;
1796
- bottom: 1.25em;
1797
- right: 1.25em;
1798
- z-index: 1000;
1799
- }
1800
- .floating-avatar {
1801
- width: 2.875em;
1802
- height: 3.625em;
1803
- border-radius: 50%;
1804
- box-shadow: 0 0.125em 0.625em rgba(0, 0, 0, 0.2);
1805
- cursor: pointer;
1806
- transition: all 0.3s ease;
1807
- }
1808
- .floating-avatar:hover {
1809
- transform: scale(1.1);
1810
- box-shadow: 0 0.25em 1em rgba(0, 0, 0, 0.3);
1811
- }
1812
- .slide-up-enter-active,
1813
- .slide-up-leave-active {
1814
- transition: all 0.3s ease;
1815
- }
1816
- .slide-up-enter-from,
1817
- .slide-up-leave-to {
1818
- transform: translateY(100%);
1819
- opacity: 0;
1820
- }
1821
- .ai-robot-container {
1822
- position: fixed;
1823
- bottom: 0;
1824
- right: 0;
1825
- width: 37.5em;
1826
- height: 100%;
1827
- background: white;
1828
- box-shadow: 0 0.25em 1.25em rgba(0, 0, 0, 0.15);
1829
- z-index: 999;
1830
- overflow: hidden;
1831
- }
1832
- .chat-container {
1833
- display: flex;
1834
- flex-direction: column;
1835
- height: 100%;
1836
- }
1837
- .bottom-area {
1838
- padding: 0.625em;
1839
- }
1840
- .slide-right-enter-from,
1841
- .slide-right-leave-to {
1842
- transform: translateX(100%);
1843
- opacity: 0;
1844
- }
1845
- .slide-right-enter-active,
1846
- .slide-right-leave-active {
1847
- transition: all 0.3s ease;
1502
+ border-color: #0077fa;
1503
+ background-color: #f0f7ff;
1848
1504
  }
1849
- .floating-avatar-container {
1850
- position: fixed;
1851
- bottom: 1.25em;
1852
- right: 1.25em;
1853
- /* 保持悬浮按钮在右下角 */
1854
- z-index: 1000;
1855
- cursor: pointer;
1505
+ .card-title {
1506
+ font-size: 1em;
1507
+ font-weight: 500;
1508
+ color: #1d2129;
1509
+ margin: 0 0 0.5em 0;
1856
1510
  }
1857
- .floating-avatar {
1858
- width: 3.75em;
1859
- height: 3.75em;
1860
- border-radius: 50%;
1861
- box-shadow: 0 0.25em 0.625em rgba(0, 0, 0, 0.2);
1862
- transition: all 0.3s ease;
1863
- }
1864
- .floating-avatar:hover {
1865
- transform: scale(1.1);
1866
- box-shadow: 0 0.375em 1em rgba(0, 0, 0, 0.3);
1867
- }
1868
- .apply-btn {
1869
- background-color: #0077fa;
1870
- /* 使用项目主色调 */
1871
- color: white;
1872
- /* 白色文字 */
1873
- border: none;
1874
- /* 移除默认边框 */
1875
- border-radius: 1.25em;
1876
- /* 圆角设计 */
1877
- padding: 0.375em 1.25em;
1878
- /* 内边距 */
1511
+ .card-desc {
1879
1512
  font-size: 0.875em;
1880
- /* 字体大小 */
1881
- cursor: pointer;
1882
- /* 鼠标指针样式 */
1883
- transition: all 0.3s ease;
1884
- /* 过渡效果 */
1885
- box-shadow: 0 0.125em 0.375em rgba(0, 0, 0, 0.1);
1886
- /* 轻微阴影 */
1887
- margin-top: 1em;
1888
- /* 顶部间距 */
1889
- }
1890
- .apply-btn:hover {
1891
- background-color: #0055cc;
1892
- /* hover时深色 */
1893
- box-shadow: 0 0.25em 0.5em rgba(0, 0, 0, 0.15);
1894
- /* 增强阴影 */
1895
- transform: translateY(-1px);
1896
- /* 轻微上浮 */
1897
- }
1898
- .apply-btn:active {
1899
- transform: translateY(1px);
1900
- /* 点击时下沉 */
1901
- box-shadow: 0 0.125em 0.25em rgba(0, 0, 0, 0.1);
1902
- /* 减小阴影 */
1903
- }
1904
- /* 人脸识别弹窗样式 */
1905
- .face-modal-overlay {
1906
- position: fixed;
1513
+ color: #4e5969;
1514
+ line-height: 1.5;
1515
+ word-break: break-word;
1516
+ }
1517
+ .check-mark {
1518
+ position: absolute;
1907
1519
  top: 0;
1908
- left: 0;
1909
1520
  right: 0;
1910
- bottom: 0;
1911
- background-color: rgba(0, 0, 0, 0.5);
1912
- display: flex;
1913
- align-items: center;
1914
- justify-content: center;
1915
- z-index: 1000;
1916
1521
  }
1917
- .face-modal {
1918
- width: 18.75em;
1919
- height: 12.5em;
1920
- background-color: white;
1921
- border-radius: 0.75em;
1522
+ .file-view {
1523
+ margin: 0.5em 0;
1922
1524
  display: flex;
1923
- flex-direction: column;
1525
+ width: 15em;
1526
+ padding: 0.5em 0.75em;
1924
1527
  align-items: center;
1925
- justify-content: space-around;
1926
- padding: 1.25em;
1528
+ gap: 0.5em;
1529
+ border-radius: 0.5em;
1530
+ border: 1px solid #eaecf0;
1531
+ background: #f7f8fa;
1532
+ cursor: pointer;
1533
+ transition: all 0.2s ease;
1927
1534
  }
1928
- .recognition-header {
1929
- font-size: 1.125em;
1930
- color: #0077fa;
1931
- font-weight: 600;
1535
+ .file-view:hover {
1536
+ border-color: #0077ff;
1537
+ background-color: #f0f7ff;
1932
1538
  }
1933
- .recognition-timer {
1934
- font-size: 3em;
1935
- color: #0077fa;
1936
- font-weight: bold;
1539
+ .file-icon {
1540
+ width: 1.5em;
1541
+ height: 1.5em;
1542
+ flex-shrink: 0;
1543
+ }
1544
+ .file-info {
1545
+ flex: 1;
1546
+ min-width: 0;
1937
1547
  }
1938
- .recognition-footer {
1548
+ .file-name {
1939
1549
  font-size: 0.875em;
1940
- color: #666;
1550
+ color: #1d2129;
1551
+ white-space: nowrap;
1552
+ overflow: hidden;
1553
+ text-overflow: ellipsis;
1554
+ }
1555
+ .file-size {
1556
+ font-size: 0.75em;
1557
+ color: #86909c;
1558
+ }
1559
+ .file-action {
1560
+ color: #4e5969;
1561
+ transition: color 0.2s ease;
1562
+ }
1563
+ .file-view:hover .file-action {
1564
+ color: #0077ff;
1941
1565
  }
1942
1566
  .hello-chat {
1943
1567
  display: flex;
1944
- justify-content: center;
1945
- align-items: center;
1946
1568
  flex-direction: column;
1947
- padding: 1em 0.875em;
1948
- align-self: stretch;
1949
- }
1950
- .hello-chat img {
1951
- width: 2.875em;
1952
- height: 3.625em;
1569
+ padding: 1em;
1570
+ align-items: flex-start;
1571
+ gap: 1em;
1953
1572
  }
1954
1573
  .hello-chat .title {
1955
1574
  color: var(--text-icon-text-icon, #1d2129);
1956
- text-align: center;
1957
1575
  font-family: 'PingFang SC';
1958
1576
  font-size: 1.75em;
1959
1577
  font-style: normal;
@@ -1963,7 +1581,7 @@ pre {
1963
1581
  }
1964
1582
  .hello-chat .sub-info {
1965
1583
  color: var(--text-icon-text-icon, #434c59);
1966
- text-align: center;
1584
+ /* Body 正文/Large */
1967
1585
  font-family: 'PingFang SC';
1968
1586
  font-size: 1em;
1969
1587
  font-style: normal;
@@ -1996,7 +1614,7 @@ pre {
1996
1614
  background: #fff;
1997
1615
  }
1998
1616
  .function-buttons ul li:hover {
1999
- transform: translateY(-2px);
1617
+ transform: translateY(-0.125em);
2000
1618
  border: 1px solid var(--Brand-Brand-, #0077fa);
2001
1619
  background: var(--Brand-Brand--, #eaf5ff);
2002
1620
  }
@@ -2019,283 +1637,108 @@ pre {
2019
1637
  text-overflow: ellipsis;
2020
1638
  max-width: calc(100% - 2em);
2021
1639
  }
2022
- .option-conter {
2023
- display: flex;
2024
- gap: 1em;
2025
- }
2026
- .option-conter .option-item {
2027
- display: flex;
2028
- justify-content: flex-start;
2029
- align-items: unset;
2030
- flex-direction: column;
2031
- padding: 0.75em;
2032
- gap: 0.5em;
2033
- flex: 1 0 0;
2034
- border-radius: 1em;
2035
- border: 1px solid #fff;
2036
- background: linear-gradient(180deg, #f3f8ff 0%, #ebebff 100%);
2037
- }
2038
- .option-conter .item-1 .item-top {
2039
- display: flex;
2040
- align-items: center;
2041
- justify-content: space-between;
2042
- }
2043
- .option-conter .item-1 .item-top .item-1-left p {
2044
- font-family: 'PingFang SC';
2045
- font-size: 0.875em;
2046
- font-style: normal;
2047
- font-weight: 600;
2048
- line-height: 1.375em;
2049
- /* 157.143% */
2050
- background: linear-gradient(266deg, #0079ff 6.83%, #5b4fff 95.21%);
2051
- background-clip: text;
2052
- -webkit-background-clip: text;
2053
- -webkit-text-fill-color: transparent;
2054
- }
2055
- .option-conter .item-1 .item-top .item-1-right {
1640
+ .image-view {
2056
1641
  display: flex;
2057
- align-items: center;
1642
+ height: 28.635em;
2058
1643
  justify-content: center;
2059
- cursor: pointer;
2060
- }
2061
- .option-conter .item-1 .item-top .item-1-right span {
2062
- margin-left: 0.25em;
2063
- color: var(--Brand-Brand-, #0077fa);
2064
- font-family: 'PingFang SC';
2065
- font-size: 0.75em;
2066
- font-style: normal;
2067
- font-weight: 400;
2068
- line-height: normal;
2069
- }
2070
- .option-conter .item-1 .item-top .item-1-right:hover span {
2071
- opacity: 0.8;
2072
- }
2073
- .option-conter .item-1 .item-bottom {
2074
- display: flex;
2075
- flex-direction: column;
2076
- align-items: flex-start;
2077
- justify-content: space-between;
2078
- padding: 0.75em;
2079
- flex-shrink: 0;
1644
+ align-items: center;
2080
1645
  align-self: stretch;
2081
- border-radius: 0.5em;
2082
- background: linear-gradient(0deg, #fff 0%, #fff 100%), linear-gradient(180deg, #f2f7fe 0%, #eef0fe 100%);
2083
- }
2084
- .option-conter .item-1 .item-bottom ul {
2085
- list-style: none;
2086
- padding: 0;
2087
- margin: 0;
2088
- }
2089
- .option-conter .item-1 .item-bottom ul li {
2090
- cursor: pointer;
1646
+ aspect-ratio: 847.5/458.16;
1647
+ overflow: hidden;
1648
+ position: relative;
2091
1649
  }
2092
- .option-conter .item-1 .item-bottom ul li:hover {
2093
- opacity: 0.8;
1650
+ .image-content {
1651
+ max-width: 100%;
1652
+ max-height: 100%;
1653
+ object-fit: contain;
1654
+ object-position: center;
1655
+ transition: transform 0.2s ease;
2094
1656
  }
2095
- .option-conter .item-1 .item-bottom ul li span {
2096
- color: var(--text-icon-text-icon, #1d2129);
2097
- /* Body 正文/Small */
2098
- font-family: 'PingFang SC';
2099
- font-size: 0.75em;
2100
- font-style: normal;
2101
- font-weight: 400;
2102
- line-height: 1.25em;
2103
- /* 166.667% */
2104
- white-space: nowrap;
2105
- overflow: hidden;
2106
- text-overflow: ellipsis;
2107
- max-width: 10em;
2108
- display: inline-block;
1657
+ .image-view:hover .image-content {
1658
+ transform: scale(1.02);
2109
1659
  }
2110
- .option-conter .item-2 ul {
2111
- list-style: none;
2112
- padding: 0;
2113
- margin: 0;
2114
- height: 100%;
1660
+ .link-container {
1661
+ max-width: 35em;
2115
1662
  display: flex;
2116
- justify-content: space-between;
2117
- align-items: flex-start;
1663
+ padding: 0.75em;
2118
1664
  flex-direction: column;
2119
- }
2120
- .option-conter .item-2 ul li {
2121
- cursor: pointer;
2122
- display: flex;
2123
- justify-content: center;
2124
1665
  align-items: flex-start;
2125
- flex-direction: column;
1666
+ gap: 0.75em;
2126
1667
  align-self: stretch;
2127
- padding: 0.25em 0.75em;
1668
+ margin: 0.5em 0;
2128
1669
  border-radius: 0.5em;
2129
- background: linear-gradient(0deg, #fff 0%, #fff 100%), linear-gradient(180deg, #f2f7fe 0%, #eef0fe 100%);
2130
- }
2131
- .option-conter .item-2 ul li:hover {
2132
- opacity: 0.8;
2133
- }
2134
- .option-conter .item-2 ul li p {
2135
- width: 100%;
2136
- }
2137
- .option-conter .item-2 ul li .title {
2138
- color: var(--text-icon-text-icon, #1d2129);
2139
- /* Title 标题/Small */
2140
- font-family: 'PingFang SC';
2141
- font-size: 0.875em;
2142
- font-style: normal;
2143
- font-weight: 600;
2144
- line-height: 1.375em;
2145
- /* 157.143% */
1670
+ border: 0.5px solid #d8dce4;
1671
+ background: #f7f8fa;
2146
1672
  }
2147
- .option-conter .item-2 ul li .team {
1673
+ .link-url {
2148
1674
  display: flex;
2149
1675
  align-items: center;
2150
- justify-content: space-between;
1676
+ gap: 0.5em;
1677
+ margin-bottom: 0.75em;
1678
+ color: #0077fa;
1679
+ font-size: 0.875em;
1680
+ cursor: pointer;
2151
1681
  }
2152
- .option-conter .item-2 ul li .content {
2153
- color: var(--text-icon-text-icon, #86909c);
2154
- /* Body 正文/Small */
2155
- font-family: 'PingFang SC';
2156
- font-size: 0.75em;
2157
- font-style: normal;
2158
- font-weight: 400;
2159
- line-height: 1.25em;
2160
- /* 166.667% */
1682
+ .link-icon {
1683
+ width: 0.75em;
1684
+ height: 0.75em;
1685
+ flex-shrink: 0;
1686
+ }
1687
+ .url-text {
2161
1688
  white-space: nowrap;
2162
1689
  overflow: hidden;
2163
1690
  text-overflow: ellipsis;
2164
- max-width: 9em;
2165
- }
2166
- .option-conter .item-3 {
2167
- padding: 0;
1691
+ color: inherit;
1692
+ text-decoration: none;
2168
1693
  }
2169
- .option-conter .item-3 ul {
2170
- background: url('./components/aiRobot/img/bg.png') no-repeat center center;
2171
- background-size: cover;
2172
- background-position: center 75%;
2173
- list-style: none;
2174
- padding: 0.75em;
2175
- margin: 0;
2176
- height: 100%;
1694
+ .link-content {
2177
1695
  display: flex;
2178
- justify-content: flex-start;
2179
- align-items: flex-start;
2180
- flex-direction: column;
1696
+ gap: 0.75em;
2181
1697
  }
2182
- .option-conter .item-3 ul li {
2183
- cursor: pointer;
2184
- display: flex;
2185
- height: 1.75em;
2186
- justify-content: center;
2187
- align-items: center;
2188
- align-self: stretch;
2189
- border-radius: 6.25em;
2190
- border: 1px solid #fff;
2191
- background: #fff;
2192
- margin-bottom: 0.625em;
1698
+ .content-image {
1699
+ width: 2.8125em;
1700
+ flex-shrink: 0;
1701
+ align-self: flex-start;
1702
+ aspect-ratio: 15/14;
1703
+ background: url('./components/aiChat/img/link.png') lightgray center center / contain no-repeat;
2193
1704
  }
2194
- .option-conter .item-3 ul li:hover {
2195
- opacity: 0.8;
1705
+ .info-content {
1706
+ flex: 1;
1707
+ min-width: 0;
2196
1708
  }
2197
- .option-conter .item-3 ul li span {
2198
- color: var(--text-icon-text-icon, #434c59);
2199
- /* Body 正文/Small */
2200
- font-family: 'PingFang SC';
2201
- font-size: 0.75em;
2202
- font-style: normal;
2203
- font-weight: 400;
2204
- line-height: 1.25em;
2205
- /* 166.667% */
1709
+ .link-title {
1710
+ font-size: 1em;
1711
+ font-weight: 500;
1712
+ color: #1d2129;
1713
+ margin: 0 0 0.25em 0;
1714
+ display: -webkit-box;
1715
+ -webkit-line-clamp: 1;
1716
+ -webkit-box-orient: vertical;
1717
+ overflow: hidden;
1718
+ display: -moz-box;
1719
+ -moz-line-clamp: 1;
1720
+ -moz-box-orient: vertical;
1721
+ line-clamp: 1;
2206
1722
  }
2207
- .letter-container .data-content {
2208
- display: inline-block;
2209
- position: relative;
1723
+ .link-desc {
2210
1724
  font-size: 0.875em;
1725
+ color: #4e5969;
1726
+ margin: 0;
1727
+ display: -webkit-box;
1728
+ -webkit-line-clamp: 2;
1729
+ -webkit-box-orient: vertical;
1730
+ overflow: hidden;
1731
+ display: -moz-box;
1732
+ -moz-line-clamp: 2;
1733
+ -moz-box-orient: vertical;
1734
+ line-clamp: 2;
2211
1735
  }
2212
- .letter-container .data-content .cursor {
2213
- animation: blink 1s step-end infinite;
2214
- margin-left: 0.1em;
2215
- font-weight: bold;
2216
- vertical-align: text-bottom;
2217
- }
2218
- @keyframes blink {
2219
- from,
2220
- to {
2221
- opacity: 1;
2222
- }
2223
- 50% {
2224
- opacity: 0;
2225
- }
1736
+ :root {
1737
+ --color-primary: #0077fa;
1738
+ --color-primary-plain: #f0f7ff;
1739
+ --color-bg: #fff;
2226
1740
  }
2227
- .apply-btn {
2228
- background-color: #0077fa;
2229
- /* 使用项目主色调 */
2230
- color: white;
2231
- /* 白色文字 */
2232
- border: none;
2233
- /* 移除默认边框 */
2234
- border-radius: 1.25em;
2235
- /* 圆角设计 */
2236
- padding: 0.5em 1.25em;
2237
- /* 内边距 */
2238
- font-size: 0.875em;
2239
- /* 字体大小 */
2240
- cursor: pointer;
2241
- /* 鼠标指针样式 */
2242
- transition: all 0.3s ease;
2243
- /* 过渡效果 */
2244
- box-shadow: 0 0.125em 0.25em rgba(0, 0, 0, 0.1);
2245
- /* 轻微阴影 */
2246
- margin-top: 1em;
2247
- /* 顶部间距 */
2248
- }
2249
- .apply-btn:hover {
2250
- background-color: #0055cc;
2251
- /* hover时深色 */
2252
- box-shadow: 0 0.25em 0.5em rgba(0, 0, 0, 0.15);
2253
- /* 增强阴影 */
2254
- transform: translateY(-1px);
2255
- /* 轻微上浮 */
2256
- }
2257
- .apply-btn:active {
2258
- transform: translateY(1px);
2259
- /* 点击时下沉 */
2260
- box-shadow: 0 0.125em 0.25em rgba(0, 0, 0, 0.1);
2261
- /* 减小阴影 */
2262
- }
2263
- .apply-btn {
2264
- background-color: #0077fa;
2265
- /* 使用项目主色调 */
2266
- color: white;
2267
- /* 白色文字 */
2268
- border: none;
2269
- /* 移除默认边框 */
2270
- border-radius: 1.25em;
2271
- /* 圆角设计 */
2272
- padding: 0.5em 1.25em;
2273
- /* 内边距 */
2274
- font-size: 0.875em;
2275
- /* 字体大小 */
2276
- cursor: pointer;
2277
- /* 鼠标指针样式 */
2278
- transition: all 0.3s ease;
2279
- /* 过渡效果 */
2280
- box-shadow: 0 0.125em 0.25em rgba(0, 0, 0, 0.1);
2281
- /* 轻微阴影 */
2282
- margin-top: 1em;
2283
- /* 顶部间距 */
2284
- }
2285
- .apply-btn:hover {
2286
- background-color: #0055cc;
2287
- /* hover时深色 */
2288
- box-shadow: 0 0.25em 0.5em rgba(0, 0, 0, 0.15);
2289
- /* 增强阴影 */
2290
- transform: translateY(-1px);
2291
- /* 轻微上浮 */
2292
- }
2293
- .apply-btn:active {
2294
- transform: translateY(1px);
2295
- /* 点击时下沉 */
2296
- box-shadow: 0 0.125em 0.25em rgba(0, 0, 0, 0.1);
2297
- /* 减小阴影 */
2298
- }
2299
- .img-test {
2300
- background: url('./img/default.png');
1741
+ @font-face {
1742
+ font-family: 'touchchat-icon';
1743
+ src: url('./font/iconfont.woff2') format('woff2'), url('./font/iconfont.woff') format('woff');
2301
1744
  }