vue-element-ui-x 0.2.1 → 1.0.1

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 (81) hide show
  1. package/README.md +8 -8
  2. package/lib/components/Attachments/index.js +8 -8
  3. package/lib/components/Bubble/index.js +116 -113
  4. package/lib/components/BubbleList/index.js +137 -134
  5. package/lib/components/Conversations/index.js +14368 -14360
  6. package/lib/components/FilesCard/index.js +4 -4
  7. package/lib/components/Prompts/index.js +4 -4
  8. package/lib/components/Sender/index.js +1594 -1448
  9. package/lib/components/Thinking/index.js +155 -15
  10. package/lib/components/ThoughtChain/index.js +121 -118
  11. package/lib/components/Typewriter/index.js +111 -108
  12. package/lib/components/Welcome/index.js +4 -4
  13. package/lib/index.common.js +1 -1
  14. package/lib/index.esm.js +1 -1
  15. package/lib/index.js +704 -236
  16. package/lib/index.umd.js +1 -1
  17. package/lib/locale/index.js +97 -0
  18. package/lib/locale/lang/ar-SA.js +18 -0
  19. package/lib/locale/lang/ar-SA.umd.js +26 -0
  20. package/lib/locale/lang/ar.js +18 -0
  21. package/lib/locale/lang/ar.umd.js +26 -0
  22. package/lib/locale/lang/de-DE.js +18 -0
  23. package/lib/locale/lang/de-DE.umd.js +26 -0
  24. package/lib/locale/lang/de.js +18 -0
  25. package/lib/locale/lang/de.umd.js +26 -0
  26. package/lib/locale/lang/en.js +18 -0
  27. package/lib/locale/lang/en.umd.js +26 -0
  28. package/lib/locale/lang/es-ES.js +18 -0
  29. package/lib/locale/lang/es-ES.umd.js +26 -0
  30. package/lib/locale/lang/es.js +18 -0
  31. package/lib/locale/lang/es.umd.js +26 -0
  32. package/lib/locale/lang/fr-FR.js +18 -0
  33. package/lib/locale/lang/fr-FR.umd.js +26 -0
  34. package/lib/locale/lang/fr.js +18 -0
  35. package/lib/locale/lang/fr.umd.js +26 -0
  36. package/lib/locale/lang/index.js +50 -0
  37. package/lib/locale/lang/it-IT.js +18 -0
  38. package/lib/locale/lang/it-IT.umd.js +26 -0
  39. package/lib/locale/lang/it.js +18 -0
  40. package/lib/locale/lang/it.umd.js +26 -0
  41. package/lib/locale/lang/ja-JP.js +18 -0
  42. package/lib/locale/lang/ja-JP.umd.js +26 -0
  43. package/lib/locale/lang/ja.js +18 -0
  44. package/lib/locale/lang/ja.umd.js +26 -0
  45. package/lib/locale/lang/ko-KR.js +18 -0
  46. package/lib/locale/lang/ko-KR.umd.js +26 -0
  47. package/lib/locale/lang/ko.js +18 -0
  48. package/lib/locale/lang/ko.umd.js +26 -0
  49. package/lib/locale/lang/pt-BR.js +18 -0
  50. package/lib/locale/lang/pt-BR.umd.js +26 -0
  51. package/lib/locale/lang/ru-RU.js +18 -0
  52. package/lib/locale/lang/ru-RU.umd.js +26 -0
  53. package/lib/locale/lang/zh-CN.js +18 -0
  54. package/lib/locale/lang/zh-CN.umd.js +26 -0
  55. package/lib/locale/lang/zh-TW.js +18 -0
  56. package/lib/locale/lang/zh-TW.umd.js +26 -0
  57. package/lib/locale/mixin.js +9 -0
  58. package/package.json +6 -4
  59. package/src/components/Bubble/src/main.vue +299 -299
  60. package/src/components/Conversations/src/main.vue +9 -3
  61. package/src/components/Sender/src/main.vue +12 -3
  62. package/src/components/Thinking/src/main.vue +10 -5
  63. package/src/index.js +25 -10
  64. package/src/locale/index.js +97 -0
  65. package/src/locale/lang/ar.js +18 -0
  66. package/src/locale/lang/de.js +18 -0
  67. package/src/locale/lang/en.js +18 -0
  68. package/src/locale/lang/es.js +18 -0
  69. package/src/locale/lang/fr.js +18 -0
  70. package/src/locale/lang/index.js +62 -0
  71. package/src/locale/lang/it.js +18 -0
  72. package/src/locale/lang/ja.js +18 -0
  73. package/src/locale/lang/ko.js +18 -0
  74. package/src/locale/lang/pt-br.js +18 -0
  75. package/src/locale/lang/ru-RU.js +18 -0
  76. package/src/locale/lang/zh-CN.js +18 -0
  77. package/src/locale/lang/zh-TW.js +18 -0
  78. package/src/locale/mixin.js +9 -0
  79. package/src/styles/Bubble.scss +157 -157
  80. package/src/styles/Conversations.scss +260 -260
  81. package/src/styles/Sender.scss +196 -199
@@ -1,260 +1,260 @@
1
- /* ElXConversations 组件样式 */
2
-
3
- /* 主容器 */
4
- .el-x-conversations-container {
5
- display: flex;
6
- flex-direction: column;
7
- height: 100%;
8
- position: relative;
9
- width: fit-content;
10
- box-sizing: border-box;
11
- overflow: hidden;
12
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
13
- }
14
-
15
- .el-x-conversations-list {
16
- list-style: none;
17
- margin: 0;
18
- padding: 0;
19
- flex: 1;
20
- display: flex;
21
- flex-direction: column;
22
- box-sizing: border-box;
23
- }
24
-
25
- .el-x-conversations-scroll-wrapper {
26
- flex: 1;
27
- overflow: hidden;
28
- position: relative;
29
-
30
- /* 在右侧添加留白区域 */
31
- &::after {
32
- content: '';
33
- position: absolute;
34
- top: 0;
35
- right: 0;
36
- width: 8px;
37
- /* 右侧留白宽度 */
38
- height: 100%;
39
- background-color: transparent;
40
- pointer-events: none;
41
- /* 确保不影响交互 */
42
- }
43
- }
44
-
45
- // 加载更多
46
- .el-x-conversations-load-more {
47
- display: flex;
48
- width: calc(100% - 20px);
49
- padding: 14px 10px;
50
- justify-content: center;
51
- align-items: center;
52
- font-size: 12px;
53
- gap: 3px;
54
- color: #909399;
55
- background-color: var(--conversation-list-auto-bg-color, #fff);
56
- margin-right: 20px;
57
- border-radius: 8px;
58
- height: auto;
59
- min-height: var(--conversation-label-height, 20px);
60
- box-sizing: border-box;
61
- }
62
-
63
- // 加载动画
64
- .el-x-conversations-load-more-is-loading {
65
- margin-top: 2px;
66
- animation: spinloading 2s linear infinite;
67
- }
68
-
69
- @keyframes spinloading {
70
- 0% {
71
- transform: rotate(0deg);
72
- }
73
-
74
- 100% {
75
- transform: rotate(360deg);
76
- }
77
- }
78
-
79
- .scroll-content {
80
- min-height: 100%;
81
- }
82
-
83
- .loading-more {
84
- text-align: center;
85
- padding: 10px 0;
86
- color: #909399;
87
- font-size: 14px;
88
- }
89
-
90
- .el-x-conversation-group {
91
- position: relative;
92
-
93
- &:last-child {
94
- margin-bottom: 0;
95
- }
96
-
97
- .el-x-conversation-group-title {
98
- font-size: 14px;
99
- color: #909399;
100
- padding: 8px 0;
101
- font-weight: 500;
102
- margin-bottom: 4px;
103
- border-radius: 4px;
104
- border-top-left-radius: 0px;
105
- border-top-right-radius: 0px;
106
- // 预留滚动条宽度
107
- width: calc(100% - 10px);
108
- box-sizing: border-box;
109
- }
110
-
111
- .sticky-title {
112
- position: sticky;
113
- top: 0;
114
- z-index: 20;
115
- background-color: var(--conversation-list-auto-bg-color, #fff);
116
- }
117
-
118
- .active-sticky {
119
- z-index: 10;
120
- }
121
-
122
- .el-x-conversation-group-items {
123
- padding-top: 0;
124
- }
125
- }
126
-
127
- .scroll-to-top-btn {
128
- position: absolute;
129
- right: 16px;
130
- bottom: 16px;
131
- z-index: 99;
132
- opacity: 0.8;
133
- transition: opacity 0.3s;
134
-
135
- &:hover {
136
- opacity: 1;
137
- }
138
- }
139
-
140
- /* 项目样式 */
141
- .el-x-conversation-item {
142
- padding: 14px 10px;
143
- margin-right: 20px;
144
- border-radius: 8px;
145
- cursor: pointer;
146
- transition: background-color 0.2s ease;
147
-
148
- & + & {
149
- margin-top: 4px;
150
- }
151
-
152
- &.disabled {
153
- opacity: 0.5;
154
- cursor: not-allowed;
155
- color: #c0c4cc;
156
- }
157
-
158
- &.active {
159
- background-color: #f0f0f0;
160
- }
161
-
162
- &.hovered,
163
- &:hover {
164
- background-color: #f0f0f0;
165
- }
166
-
167
- &.menu-opened {
168
- background-color: #f0f0f0;
169
- }
170
- }
171
-
172
- .el-x-conversation-content {
173
- display: flex;
174
- align-items: center;
175
- height: var(--conversation-label-height, 20px);
176
-
177
- .el-x-conversation-prefix-icon {
178
- margin-right: 8px;
179
- display: flex;
180
- justify-content: center;
181
- align-items: center;
182
- }
183
-
184
- .el-x-conversation-content-main {
185
- flex: 1;
186
- display: flex;
187
- align-items: center;
188
- position: relative;
189
- overflow: hidden;
190
- }
191
-
192
- .el-x-conversation-label-container {
193
- flex: 1;
194
- display: flex;
195
- justify-content: space-between;
196
- align-items: center;
197
- overflow: hidden;
198
- }
199
-
200
- .el-x-conversation-label {
201
- font-size: 14px;
202
- color: #303133;
203
- position: relative;
204
- white-space: nowrap;
205
-
206
- &.text-gradient {
207
- mask-image: linear-gradient(to right, black 60%, transparent 100%);
208
- -webkit-mask-image: linear-gradient(to right, black 60%, transparent 100%);
209
- }
210
- }
211
-
212
- .el-x-conversation-timestamp {
213
- font-size: 14px;
214
- color: #909399;
215
- margin-left: 8px;
216
- }
217
-
218
- .el-x-conversation-suffix-icon {
219
- margin-left: 8px;
220
- display: flex;
221
- justify-content: center;
222
- align-items: center;
223
- }
224
-
225
- .el-x-conversation-dropdown-more {
226
- justify-self: center;
227
- height: 100%;
228
- display: flex;
229
- align-items: center;
230
- }
231
-
232
- .el-x-conversation-dropdown-more-icon {
233
- font-size: 16px;
234
- padding: 2px;
235
- border-radius: 5px;
236
-
237
- &:hover {
238
- background-color: #d3d3d3;
239
- }
240
- }
241
-
242
- .el-x-conversation-menu {
243
- margin-left: 8px;
244
- display: flex;
245
- align-items: center;
246
- opacity: 0;
247
- transition: opacity 0.2s ease;
248
-
249
- .hovered &,
250
- .active & {
251
- opacity: 1;
252
- }
253
- }
254
- }
255
-
256
- // Dropdown菜单样式
257
- .el-x-conversation-dropdown-menu {
258
- max-height: 300px;
259
- overflow-y: auto;
260
- }
1
+ /* ElXConversations 组件样式 */
2
+
3
+ /* 主容器 */
4
+ .el-x-conversations-container {
5
+ display: flex;
6
+ flex-direction: column;
7
+ height: 100%;
8
+ position: relative;
9
+ width: fit-content;
10
+ box-sizing: border-box;
11
+ overflow: hidden;
12
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
13
+ }
14
+
15
+ .el-x-conversations-list {
16
+ list-style: none;
17
+ margin: 0;
18
+ padding: 0;
19
+ flex: 1;
20
+ display: flex;
21
+ flex-direction: column;
22
+ box-sizing: border-box;
23
+ }
24
+
25
+ .el-x-conversations-scroll-wrapper {
26
+ flex: 1;
27
+ overflow: hidden;
28
+ position: relative;
29
+
30
+ /* 在右侧添加留白区域 */
31
+ &::after {
32
+ content: '';
33
+ position: absolute;
34
+ top: 0;
35
+ right: 0;
36
+ width: 8px;
37
+ /* 右侧留白宽度 */
38
+ height: 100%;
39
+ background-color: transparent;
40
+ pointer-events: none;
41
+ /* 确保不影响交互 */
42
+ }
43
+ }
44
+
45
+ // 加载更多
46
+ .el-x-conversations-load-more {
47
+ display: flex;
48
+ width: calc(100% - 20px);
49
+ padding: 4px 0;
50
+ justify-content: center;
51
+ align-items: center;
52
+ font-size: 12px;
53
+ gap: 3px;
54
+ color: #909399;
55
+ background-color: var(--conversation-list-auto-bg-color, #fff);
56
+ margin-right: 20px;
57
+ border-radius: 8px;
58
+ height: auto;
59
+ min-height: var(--conversation-label-height, 20px);
60
+ box-sizing: border-box;
61
+ }
62
+
63
+ // 加载动画
64
+ .el-x-conversations-load-more-is-loading {
65
+ margin-top: 2px;
66
+ animation: spinloading 2s linear infinite;
67
+ }
68
+
69
+ @keyframes spinloading {
70
+ 0% {
71
+ transform: rotate(0deg);
72
+ }
73
+
74
+ 100% {
75
+ transform: rotate(360deg);
76
+ }
77
+ }
78
+
79
+ .scroll-content {
80
+ min-height: 100%;
81
+ }
82
+
83
+ .loading-more {
84
+ text-align: center;
85
+ padding: 10px 0;
86
+ color: #909399;
87
+ font-size: 14px;
88
+ }
89
+
90
+ .el-x-conversation-group {
91
+ position: relative;
92
+
93
+ &:last-child {
94
+ margin-bottom: 0;
95
+ }
96
+
97
+ .el-x-conversation-group-title {
98
+ font-size: 14px;
99
+ color: #909399;
100
+ padding: 8px 0;
101
+ font-weight: 500;
102
+ margin-bottom: 4px;
103
+ border-radius: 4px;
104
+ border-top-left-radius: 0px;
105
+ border-top-right-radius: 0px;
106
+ // 预留滚动条宽度
107
+ width: calc(100% - 10px);
108
+ box-sizing: border-box;
109
+ }
110
+
111
+ .sticky-title {
112
+ position: sticky;
113
+ top: 0;
114
+ z-index: 20;
115
+ background-color: var(--conversation-list-auto-bg-color, #fff);
116
+ }
117
+
118
+ .active-sticky {
119
+ z-index: 10;
120
+ }
121
+
122
+ .el-x-conversation-group-items {
123
+ padding-top: 0;
124
+ }
125
+ }
126
+
127
+ .scroll-to-top-btn {
128
+ position: absolute;
129
+ right: 16px;
130
+ bottom: 16px;
131
+ z-index: 99;
132
+ opacity: 0.8;
133
+ transition: opacity 0.3s;
134
+
135
+ &:hover {
136
+ opacity: 1;
137
+ }
138
+ }
139
+
140
+ /* 项目样式 */
141
+ .el-x-conversation-item {
142
+ padding: 14px 10px;
143
+ margin-right: 20px;
144
+ border-radius: 8px;
145
+ cursor: pointer;
146
+ transition: background-color 0.2s ease;
147
+
148
+ & + & {
149
+ margin-top: 4px;
150
+ }
151
+
152
+ &.disabled {
153
+ opacity: 0.5;
154
+ cursor: not-allowed;
155
+ color: #c0c4cc;
156
+ }
157
+
158
+ &.active {
159
+ background-color: #f0f0f0;
160
+ }
161
+
162
+ &.hovered,
163
+ &:hover {
164
+ background-color: #f0f0f0;
165
+ }
166
+
167
+ &.menu-opened {
168
+ background-color: #f0f0f0;
169
+ }
170
+ }
171
+
172
+ .el-x-conversation-content {
173
+ display: flex;
174
+ align-items: center;
175
+ height: var(--conversation-label-height, 20px);
176
+
177
+ .el-x-conversation-prefix-icon {
178
+ margin-right: 8px;
179
+ display: flex;
180
+ justify-content: center;
181
+ align-items: center;
182
+ }
183
+
184
+ .el-x-conversation-content-main {
185
+ flex: 1;
186
+ display: flex;
187
+ align-items: center;
188
+ position: relative;
189
+ overflow: hidden;
190
+ }
191
+
192
+ .el-x-conversation-label-container {
193
+ flex: 1;
194
+ display: flex;
195
+ justify-content: space-between;
196
+ align-items: center;
197
+ overflow: hidden;
198
+ }
199
+
200
+ .el-x-conversation-label {
201
+ font-size: 14px;
202
+ color: #303133;
203
+ position: relative;
204
+ white-space: nowrap;
205
+
206
+ &.text-gradient {
207
+ mask-image: linear-gradient(to right, black 60%, transparent 100%);
208
+ -webkit-mask-image: linear-gradient(to right, black 60%, transparent 100%);
209
+ }
210
+ }
211
+
212
+ .el-x-conversation-timestamp {
213
+ font-size: 14px;
214
+ color: #909399;
215
+ margin-left: 8px;
216
+ }
217
+
218
+ .el-x-conversation-suffix-icon {
219
+ margin-left: 8px;
220
+ display: flex;
221
+ justify-content: center;
222
+ align-items: center;
223
+ }
224
+
225
+ .el-x-conversation-dropdown-more {
226
+ justify-self: center;
227
+ height: 100%;
228
+ display: flex;
229
+ align-items: center;
230
+ }
231
+
232
+ .el-x-conversation-dropdown-more-icon {
233
+ font-size: 16px;
234
+ padding: 2px;
235
+ border-radius: 5px;
236
+
237
+ &:hover {
238
+ background-color: #d3d3d3;
239
+ }
240
+ }
241
+
242
+ .el-x-conversation-menu {
243
+ margin-left: 8px;
244
+ display: flex;
245
+ align-items: center;
246
+ opacity: 0;
247
+ transition: opacity 0.2s ease;
248
+
249
+ .hovered &,
250
+ .active & {
251
+ opacity: 1;
252
+ }
253
+ }
254
+ }
255
+
256
+ // Dropdown菜单样式
257
+ .el-x-conversation-dropdown-menu {
258
+ max-height: 300px;
259
+ overflow-y: auto;
260
+ }