vue-element-ui-x 0.1.6-beta → 0.1.8-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 (92) hide show
  1. package/lib/attachments.js +3082 -0
  2. package/lib/bubble-list.js +13840 -0
  3. package/lib/bubble.js +13125 -0
  4. package/lib/components/Attachments/index.js +2 -2
  5. package/lib/components/Bubble/index.js +74 -79
  6. package/lib/components/BubbleList/index.js +75 -80
  7. package/lib/components/Conversations/index.js +6 -6
  8. package/lib/components/FilesCard/index.js +1 -1
  9. package/lib/components/Prompts/index.js +21 -21
  10. package/lib/components/Sender/index.js +4 -4
  11. package/lib/components/Think/index.js +1 -1
  12. package/lib/components/Thinking/index.js +11 -11
  13. package/lib/components/ThoughtChain/index.js +77 -82
  14. package/lib/components/Typewriter/index.js +73 -78
  15. package/lib/components/Welcome/index.js +1 -1
  16. package/lib/conversations.js +18825 -0
  17. package/lib/files-card.js +2471 -0
  18. package/lib/index.common.js +1 -1
  19. package/lib/index.esm.js +1 -1
  20. package/lib/index.js +1463 -1457
  21. package/lib/index.umd.js +1 -1
  22. package/lib/mixins/index.js +2 -2
  23. package/lib/mixins.js +1016 -0
  24. package/lib/prompts.js +832 -0
  25. package/lib/sender.js +1911 -0
  26. package/lib/think.js +799 -0
  27. package/lib/thinking.js +809 -0
  28. package/lib/thought-chain.js +30391 -0
  29. package/lib/typewriter.js +12788 -0
  30. package/lib/welcome.js +755 -0
  31. package/package.json +1 -2
  32. package/src/components/Attachments/index.js +8 -8
  33. package/src/components/Bubble/index.js +6 -6
  34. package/src/components/Bubble/src/main.vue +299 -299
  35. package/src/components/BubbleList/index.js +8 -8
  36. package/src/components/BubbleList/src/loading.vue +75 -75
  37. package/src/components/BubbleList/src/main.vue +466 -466
  38. package/src/components/Conversations/index.js +8 -8
  39. package/src/components/Conversations/src/main.vue +635 -635
  40. package/src/components/FilesCard/index.js +8 -8
  41. package/src/components/FilesCard/src/fileSvg/audio.vue +38 -38
  42. package/src/components/FilesCard/src/fileSvg/code.vue +35 -35
  43. package/src/components/FilesCard/src/fileSvg/database.vue +94 -94
  44. package/src/components/FilesCard/src/fileSvg/excel.vue +38 -38
  45. package/src/components/FilesCard/src/fileSvg/file.vue +40 -40
  46. package/src/components/FilesCard/src/fileSvg/image.vue +40 -40
  47. package/src/components/FilesCard/src/fileSvg/index.js +46 -46
  48. package/src/components/FilesCard/src/fileSvg/link.vue +54 -54
  49. package/src/components/FilesCard/src/fileSvg/mark.vue +38 -38
  50. package/src/components/FilesCard/src/fileSvg/pdf.vue +38 -38
  51. package/src/components/FilesCard/src/fileSvg/ppt.vue +38 -38
  52. package/src/components/FilesCard/src/fileSvg/three.vue +38 -38
  53. package/src/components/FilesCard/src/fileSvg/txt.vue +38 -38
  54. package/src/components/FilesCard/src/fileSvg/unknown.vue +54 -54
  55. package/src/components/FilesCard/src/fileSvg/video.vue +38 -38
  56. package/src/components/FilesCard/src/fileSvg/word.vue +38 -38
  57. package/src/components/FilesCard/src/fileSvg/zip.vue +38 -38
  58. package/src/components/FilesCard/src/options.js +18 -18
  59. package/src/components/Prompts/index.js +8 -8
  60. package/src/components/Prompts/src/main.vue +248 -248
  61. package/src/components/Sender/index.js +8 -8
  62. package/src/components/Sender/src/components/ClearButton.vue +28 -28
  63. package/src/components/Sender/src/components/Loading.vue +53 -53
  64. package/src/components/Sender/src/components/LoadingButton.vue +39 -39
  65. package/src/components/Sender/src/components/SendButton.vue +26 -26
  66. package/src/components/Sender/src/components/SpeechButton.vue +24 -24
  67. package/src/components/Sender/src/components/SpeechLoading.vue +87 -87
  68. package/src/components/Sender/src/components/SpeechLoadingButton.vue +43 -43
  69. package/src/components/Think/index.js +8 -8
  70. package/src/components/Think/src/main.vue +190 -190
  71. package/src/components/Thinking/index.js +8 -8
  72. package/src/components/Thinking/src/main.vue +1 -1
  73. package/src/components/ThoughtChain/index.js +8 -8
  74. package/src/components/ThoughtChain/src/main.vue +293 -293
  75. package/src/components/Typewriter/index.js +8 -8
  76. package/src/components/Welcome/index.js +8 -8
  77. package/src/components/Welcome/src/main.vue +151 -151
  78. package/src/index.js +23 -3
  79. package/src/styles/Attachments.scss +236 -236
  80. package/src/styles/Bubble.scss +157 -157
  81. package/src/styles/BubbleList.scss +148 -148
  82. package/src/styles/Conversations.scss +260 -260
  83. package/src/styles/FilesCard.scss +221 -221
  84. package/src/styles/Prompts.scss +195 -195
  85. package/src/styles/Sender.scss +199 -199
  86. package/src/styles/Think.scss +134 -134
  87. package/src/styles/Thinking.scss +2 -2
  88. package/src/styles/ThoughtChain.scss +113 -113
  89. package/src/styles/Typewriter.scss +66 -66
  90. package/src/styles/button.scss +302 -0
  91. package/src/styles/var.scss +1052 -0
  92. package/src/theme/var.scss +72 -72
@@ -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;
@@ -59,7 +59,7 @@
59
59
  <transition name="rotate">
60
60
  <span
61
61
  v-if="!disabled"
62
- class="arrow el-icon-center"
62
+ class="thinking-arrow el-icon-center"
63
63
  :class="{ expanded: isExpanded }"
64
64
  >
65
65
  <slot name="arrow">
@@ -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;