vue-element-ui-x 0.1.8-beta → 0.1.10-beta

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 (97) hide show
  1. package/lib/components/Attachments/index.js +229 -237
  2. package/lib/components/Bubble/index.js +47 -34
  3. package/lib/components/BubbleList/index.js +57 -49
  4. package/lib/components/Conversations/index.js +32 -69
  5. package/lib/components/FilesCard/index.js +207 -211
  6. package/lib/components/Prompts/index.js +21 -21
  7. package/lib/components/Sender/index.js +18 -18
  8. package/lib/components/Think/index.js +1 -1
  9. package/lib/components/Thinking/index.js +1 -1
  10. package/lib/components/ThoughtChain/index.js +60 -47
  11. package/lib/components/Typewriter/index.js +46 -33
  12. package/lib/components/Welcome/index.js +1 -1
  13. package/lib/index.common.js +1 -1
  14. package/lib/index.esm.js +1 -1
  15. package/lib/index.js +479 -427
  16. package/lib/index.umd.js +1 -1
  17. package/lib/mixins/index.js +105 -16
  18. package/package.json +1 -1
  19. package/src/components/Attachments/index.js +8 -8
  20. package/src/components/Attachments/src/main.vue +10 -10
  21. package/src/components/Bubble/index.js +6 -6
  22. package/src/components/Bubble/src/main.vue +299 -299
  23. package/src/components/BubbleList/index.js +8 -8
  24. package/src/components/BubbleList/src/loading.vue +75 -75
  25. package/src/components/BubbleList/src/main.vue +461 -466
  26. package/src/components/Conversations/index.js +8 -8
  27. package/src/components/Conversations/src/components/item.vue +13 -34
  28. package/src/components/Conversations/src/main.vue +622 -635
  29. package/src/components/FilesCard/index.js +8 -8
  30. package/src/components/FilesCard/src/fileSvg/audio.vue +38 -38
  31. package/src/components/FilesCard/src/fileSvg/code.vue +35 -35
  32. package/src/components/FilesCard/src/fileSvg/database.vue +94 -94
  33. package/src/components/FilesCard/src/fileSvg/excel.vue +38 -38
  34. package/src/components/FilesCard/src/fileSvg/file.vue +40 -40
  35. package/src/components/FilesCard/src/fileSvg/image.vue +40 -40
  36. package/src/components/FilesCard/src/fileSvg/index.js +46 -46
  37. package/src/components/FilesCard/src/fileSvg/link.vue +54 -54
  38. package/src/components/FilesCard/src/fileSvg/mark.vue +38 -38
  39. package/src/components/FilesCard/src/fileSvg/pdf.vue +38 -38
  40. package/src/components/FilesCard/src/fileSvg/ppt.vue +38 -38
  41. package/src/components/FilesCard/src/fileSvg/three.vue +38 -38
  42. package/src/components/FilesCard/src/fileSvg/txt.vue +38 -38
  43. package/src/components/FilesCard/src/fileSvg/unknown.vue +54 -54
  44. package/src/components/FilesCard/src/fileSvg/video.vue +38 -38
  45. package/src/components/FilesCard/src/fileSvg/word.vue +38 -38
  46. package/src/components/FilesCard/src/fileSvg/zip.vue +38 -38
  47. package/src/components/FilesCard/src/main.vue +4 -8
  48. package/src/components/FilesCard/src/options.js +18 -18
  49. package/src/components/Prompts/index.js +8 -8
  50. package/src/components/Prompts/src/main.vue +248 -248
  51. package/src/components/Sender/index.js +8 -8
  52. package/src/components/Sender/src/components/ClearButton.vue +28 -28
  53. package/src/components/Sender/src/components/Loading.vue +53 -53
  54. package/src/components/Sender/src/components/LoadingButton.vue +39 -39
  55. package/src/components/Sender/src/components/SendButton.vue +26 -26
  56. package/src/components/Sender/src/components/SpeechButton.vue +24 -24
  57. package/src/components/Sender/src/components/SpeechLoading.vue +87 -87
  58. package/src/components/Sender/src/components/SpeechLoadingButton.vue +43 -43
  59. package/src/components/Sender/src/main.vue +4 -3
  60. package/src/components/Think/index.js +8 -8
  61. package/src/components/Think/src/main.vue +190 -190
  62. package/src/components/Thinking/index.js +8 -8
  63. package/src/components/ThoughtChain/index.js +8 -8
  64. package/src/components/ThoughtChain/src/main.vue +293 -293
  65. package/src/components/Typewriter/index.js +8 -8
  66. package/src/components/Typewriter/src/main.vue +10 -2
  67. package/src/components/Welcome/index.js +8 -8
  68. package/src/components/Welcome/src/main.vue +151 -151
  69. package/src/mixins/recordMixin.js +0 -1
  70. package/src/mixins/sendMixin.js +104 -11
  71. package/src/mixins/streamMixin.js +3 -5
  72. package/src/styles/Attachments.scss +236 -236
  73. package/src/styles/Bubble.scss +157 -157
  74. package/src/styles/BubbleList.scss +148 -148
  75. package/src/styles/Conversations.scss +260 -260
  76. package/src/styles/FilesCard.scss +221 -221
  77. package/src/styles/Prompts.scss +195 -195
  78. package/src/styles/Sender.scss +199 -199
  79. package/src/styles/Think.scss +134 -134
  80. package/src/styles/ThoughtChain.scss +113 -113
  81. package/src/styles/Typewriter.scss +66 -66
  82. package/src/theme/var.scss +72 -72
  83. package/lib/attachments.js +0 -3082
  84. package/lib/bubble-list.js +0 -13840
  85. package/lib/bubble.js +0 -13125
  86. package/lib/conversations.js +0 -18825
  87. package/lib/files-card.js +0 -2471
  88. package/lib/mixins.js +0 -1016
  89. package/lib/prompts.js +0 -832
  90. package/lib/sender.js +0 -1911
  91. package/lib/think.js +0 -799
  92. package/lib/thinking.js +0 -809
  93. package/lib/thought-chain.js +0 -30391
  94. package/lib/typewriter.js +0 -12788
  95. package/lib/welcome.js +0 -755
  96. package/src/styles/button.scss +0 -302
  97. package/src/styles/var.scss +0 -1052
@@ -1,190 +1,190 @@
1
- <template>
2
- <div
3
- class="el-x-think"
4
- :style="{
5
- '--el-x-think-button-width': buttonWidth,
6
- '--el-x-think-animation-duration': duration,
7
- '--el-x-think-content-wrapper-width': maxWidth,
8
- '--el-x-think-content-wrapper-background-color': backgroundColor,
9
- '--el-x-think-content-wrapper-color': color,
10
- }"
11
- >
12
- <!-- 触发按钮 -->
13
- <button
14
- class="trigger"
15
- :class="[status, { disabled: !disabled }]"
16
- :disabled="disabled"
17
- @click="changeExpand"
18
- >
19
- <span class="status-icon">
20
- <slot
21
- name="status-icon"
22
- :status="status"
23
- >
24
- <i
25
- v-if="status === 'thinking'"
26
- class="is-loading el-icon-center el-icon-loading"
27
- ></i>
28
-
29
- <i
30
- v-if="status === 'start'"
31
- class="el-icon-center start-color el-icon-opportunity"
32
- ></i>
33
-
34
- <i
35
- v-if="status === 'end'"
36
- class="el-icon-center end-color el-icon-success"
37
- ></i>
38
-
39
- <i
40
- v-if="status === 'error'"
41
- class="el-icon-center error-color el-icon-circle-close"
42
- ></i>
43
- </slot>
44
- </span>
45
-
46
- <span class="label">
47
- <slot
48
- name="label"
49
- :status="status"
50
- >
51
- {{
52
- status === 'thinking'
53
- ? '思考中...'
54
- : status === 'error'
55
- ? '思考遇到问题'
56
- : status === 'end'
57
- ? '思考完成'
58
- : '开始思考'
59
- }}
60
- </slot>
61
- </span>
62
-
63
- <transition name="rotate">
64
- <span
65
- v-if="!disabled"
66
- class="arrow el-icon-center"
67
- :class="{ expanded: isExpanded }"
68
- >
69
- <slot name="arrow">
70
- <i class="el-icon-center el-icon-arrow-up"></i>
71
- </slot>
72
- </span>
73
- </transition>
74
- </button>
75
-
76
- <!-- 内容区域 -->
77
- <transition name="slide">
78
- <div
79
- v-show="isExpanded"
80
- v-if="displayedContent"
81
- class="content-wrapper"
82
- :class="{ 'error-state': status === 'error' }"
83
- >
84
- <div class="content">
85
- <slot
86
- v-if="status !== 'error'"
87
- name="content"
88
- :content="displayedContent"
89
- >
90
- <pre>{{ displayedContent }}</pre>
91
- </slot>
92
-
93
- <slot
94
- v-else
95
- name="error"
96
- :error-content="displayedContent"
97
- >
98
- <div class="error-message">{{ displayedContent }}</div>
99
- </slot>
100
- </div>
101
- </div>
102
- </transition>
103
- </div>
104
- </template>
105
-
106
- <script>
107
- export default {
108
- name: 'ElXThink',
109
- props: {
110
- content: {
111
- type: String,
112
- default: '',
113
- },
114
- modelValue: {
115
- type: Boolean,
116
- default: true,
117
- },
118
- status: {
119
- type: String,
120
- default: 'start',
121
- validator: function (value) {
122
- return ['start', 'thinking', 'end', 'error'].indexOf(value) !== -1;
123
- },
124
- },
125
- disabled: {
126
- type: Boolean,
127
- default: false,
128
- },
129
- autoCollapse: {
130
- type: Boolean,
131
- default: false,
132
- },
133
- buttonWidth: {
134
- type: String,
135
- default: '160px',
136
- },
137
- duration: {
138
- type: String,
139
- default: '0.2s',
140
- },
141
- maxWidth: {
142
- type: String,
143
- default: '500px',
144
- },
145
- backgroundColor: {
146
- type: String,
147
- default: '#fcfcfc',
148
- },
149
- color: {
150
- type: String,
151
- default: 'var(--el-color-info)',
152
- },
153
- },
154
- data() {
155
- return {
156
- isExpanded: this.modelValue,
157
- };
158
- },
159
- computed: {
160
- displayedContent() {
161
- return this.status === 'error' ? '思考过程中出现错误' : this.content;
162
- },
163
- },
164
- watch: {
165
- modelValue(newVal) {
166
- this.isExpanded = newVal;
167
- },
168
- status(newVal) {
169
- if (newVal === 'end' && this.autoCollapse) {
170
- this.isExpanded = false;
171
- }
172
- },
173
- },
174
- methods: {
175
- changeExpand() {
176
- if (this.disabled) return;
177
- this.isExpanded = !this.isExpanded;
178
- this.$emit('change', {
179
- value: this.isExpanded,
180
- status: this.status,
181
- });
182
- this.$emit('update:expanded', this.isExpanded);
183
- },
184
- },
185
- };
186
- </script>
187
-
188
- <style lang="scss">
189
- @import '../../../styles/Think.scss';
190
- </style>
1
+ <template>
2
+ <div
3
+ class="el-x-think"
4
+ :style="{
5
+ '--el-x-think-button-width': buttonWidth,
6
+ '--el-x-think-animation-duration': duration,
7
+ '--el-x-think-content-wrapper-width': maxWidth,
8
+ '--el-x-think-content-wrapper-background-color': backgroundColor,
9
+ '--el-x-think-content-wrapper-color': color,
10
+ }"
11
+ >
12
+ <!-- 触发按钮 -->
13
+ <button
14
+ class="trigger"
15
+ :class="[status, { disabled: !disabled }]"
16
+ :disabled="disabled"
17
+ @click="changeExpand"
18
+ >
19
+ <span class="status-icon">
20
+ <slot
21
+ name="status-icon"
22
+ :status="status"
23
+ >
24
+ <i
25
+ v-if="status === 'thinking'"
26
+ class="is-loading el-icon-center el-icon-loading"
27
+ ></i>
28
+
29
+ <i
30
+ v-if="status === 'start'"
31
+ class="el-icon-center start-color el-icon-opportunity"
32
+ ></i>
33
+
34
+ <i
35
+ v-if="status === 'end'"
36
+ class="el-icon-center end-color el-icon-success"
37
+ ></i>
38
+
39
+ <i
40
+ v-if="status === 'error'"
41
+ class="el-icon-center error-color el-icon-circle-close"
42
+ ></i>
43
+ </slot>
44
+ </span>
45
+
46
+ <span class="label">
47
+ <slot
48
+ name="label"
49
+ :status="status"
50
+ >
51
+ {{
52
+ status === 'thinking'
53
+ ? '思考中...'
54
+ : status === 'error'
55
+ ? '思考遇到问题'
56
+ : status === 'end'
57
+ ? '思考完成'
58
+ : '开始思考'
59
+ }}
60
+ </slot>
61
+ </span>
62
+
63
+ <transition name="rotate">
64
+ <span
65
+ v-if="!disabled"
66
+ class="arrow el-icon-center"
67
+ :class="{ expanded: isExpanded }"
68
+ >
69
+ <slot name="arrow">
70
+ <i class="el-icon-center el-icon-arrow-up"></i>
71
+ </slot>
72
+ </span>
73
+ </transition>
74
+ </button>
75
+
76
+ <!-- 内容区域 -->
77
+ <transition name="slide">
78
+ <div
79
+ v-show="isExpanded"
80
+ v-if="displayedContent"
81
+ class="content-wrapper"
82
+ :class="{ 'error-state': status === 'error' }"
83
+ >
84
+ <div class="content">
85
+ <slot
86
+ v-if="status !== 'error'"
87
+ name="content"
88
+ :content="displayedContent"
89
+ >
90
+ <pre>{{ displayedContent }}</pre>
91
+ </slot>
92
+
93
+ <slot
94
+ v-else
95
+ name="error"
96
+ :error-content="displayedContent"
97
+ >
98
+ <div class="error-message">{{ displayedContent }}</div>
99
+ </slot>
100
+ </div>
101
+ </div>
102
+ </transition>
103
+ </div>
104
+ </template>
105
+
106
+ <script>
107
+ export default {
108
+ name: 'ElXThink',
109
+ props: {
110
+ content: {
111
+ type: String,
112
+ default: '',
113
+ },
114
+ modelValue: {
115
+ type: Boolean,
116
+ default: true,
117
+ },
118
+ status: {
119
+ type: String,
120
+ default: 'start',
121
+ validator: function (value) {
122
+ return ['start', 'thinking', 'end', 'error'].indexOf(value) !== -1;
123
+ },
124
+ },
125
+ disabled: {
126
+ type: Boolean,
127
+ default: false,
128
+ },
129
+ autoCollapse: {
130
+ type: Boolean,
131
+ default: false,
132
+ },
133
+ buttonWidth: {
134
+ type: String,
135
+ default: '160px',
136
+ },
137
+ duration: {
138
+ type: String,
139
+ default: '0.2s',
140
+ },
141
+ maxWidth: {
142
+ type: String,
143
+ default: '500px',
144
+ },
145
+ backgroundColor: {
146
+ type: String,
147
+ default: '#fcfcfc',
148
+ },
149
+ color: {
150
+ type: String,
151
+ default: 'var(--el-color-info)',
152
+ },
153
+ },
154
+ data() {
155
+ return {
156
+ isExpanded: this.modelValue,
157
+ };
158
+ },
159
+ computed: {
160
+ displayedContent() {
161
+ return this.status === 'error' ? '思考过程中出现错误' : this.content;
162
+ },
163
+ },
164
+ watch: {
165
+ modelValue(newVal) {
166
+ this.isExpanded = newVal;
167
+ },
168
+ status(newVal) {
169
+ if (newVal === 'end' && this.autoCollapse) {
170
+ this.isExpanded = false;
171
+ }
172
+ },
173
+ },
174
+ methods: {
175
+ changeExpand() {
176
+ if (this.disabled) return;
177
+ this.isExpanded = !this.isExpanded;
178
+ this.$emit('change', {
179
+ value: this.isExpanded,
180
+ status: this.status,
181
+ });
182
+ this.$emit('update:expanded', this.isExpanded);
183
+ },
184
+ },
185
+ };
186
+ </script>
187
+
188
+ <style lang="scss">
189
+ @import '../../../styles/Think.scss';
190
+ </style>
@@ -1,8 +1,8 @@
1
- import ElXThinking from './src/main.vue';
2
-
3
- /* istanbul ignore next */
4
- ElXThinking.install = function (Vue) {
5
- Vue.component(ElXThinking.name, ElXThinking);
6
- };
7
-
8
- export default ElXThinking;
1
+ import ElXThinking from './src/main.vue';
2
+
3
+ /* istanbul ignore next */
4
+ ElXThinking.install = function (Vue) {
5
+ Vue.component(ElXThinking.name, ElXThinking);
6
+ };
7
+
8
+ export default ElXThinking;
@@ -1,8 +1,8 @@
1
- import ElXThoughtChain from './src/main.vue';
2
-
3
- /* istanbul ignore next */
4
- ElXThoughtChain.install = function (Vue) {
5
- Vue.component(ElXThoughtChain.name, ElXThoughtChain);
6
- };
7
-
8
- export default ElXThoughtChain;
1
+ import ElXThoughtChain from './src/main.vue';
2
+
3
+ /* istanbul ignore next */
4
+ ElXThoughtChain.install = function (Vue) {
5
+ Vue.component(ElXThoughtChain.name, ElXThoughtChain);
6
+ };
7
+
8
+ export default ElXThoughtChain;