vue-element-ui-x 0.2.0 → 0.2.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 (70) hide show
  1. package/lib/components/Attachments/index.js +2 -2
  2. package/lib/components/Bubble/index.js +23 -28
  3. package/lib/components/BubbleList/index.js +24 -29
  4. package/lib/components/Conversations/index.js +1 -1
  5. package/lib/components/FilesCard/index.js +1 -1
  6. package/lib/components/Prompts/index.js +21 -21
  7. package/lib/components/Sender/index.js +4 -4
  8. package/lib/components/Thinking/index.js +1 -1
  9. package/lib/components/ThoughtChain/index.js +23 -28
  10. package/lib/components/Typewriter/index.js +22 -27
  11. package/lib/components/Welcome/index.js +1 -1
  12. package/lib/index.common.js +1 -1
  13. package/lib/index.esm.js +1 -1
  14. package/lib/index.js +56 -61
  15. package/lib/index.umd.js +1 -1
  16. package/package.json +1 -1
  17. package/src/components/Attachments/index.js +8 -8
  18. package/src/components/Bubble/index.js +6 -6
  19. package/src/components/Bubble/src/main.vue +299 -299
  20. package/src/components/BubbleList/index.js +8 -8
  21. package/src/components/BubbleList/src/loading.vue +75 -75
  22. package/src/components/Conversations/index.js +8 -8
  23. package/src/components/FilesCard/index.js +8 -8
  24. package/src/components/FilesCard/src/fileSvg/audio.vue +38 -38
  25. package/src/components/FilesCard/src/fileSvg/code.vue +35 -35
  26. package/src/components/FilesCard/src/fileSvg/database.vue +94 -94
  27. package/src/components/FilesCard/src/fileSvg/excel.vue +38 -38
  28. package/src/components/FilesCard/src/fileSvg/file.vue +40 -40
  29. package/src/components/FilesCard/src/fileSvg/image.vue +40 -40
  30. package/src/components/FilesCard/src/fileSvg/index.js +46 -46
  31. package/src/components/FilesCard/src/fileSvg/link.vue +54 -54
  32. package/src/components/FilesCard/src/fileSvg/mark.vue +38 -38
  33. package/src/components/FilesCard/src/fileSvg/pdf.vue +38 -38
  34. package/src/components/FilesCard/src/fileSvg/ppt.vue +38 -38
  35. package/src/components/FilesCard/src/fileSvg/three.vue +38 -38
  36. package/src/components/FilesCard/src/fileSvg/txt.vue +38 -38
  37. package/src/components/FilesCard/src/fileSvg/unknown.vue +54 -54
  38. package/src/components/FilesCard/src/fileSvg/video.vue +38 -38
  39. package/src/components/FilesCard/src/fileSvg/word.vue +38 -38
  40. package/src/components/FilesCard/src/fileSvg/zip.vue +38 -38
  41. package/src/components/FilesCard/src/options.js +18 -18
  42. package/src/components/Prompts/index.js +8 -8
  43. package/src/components/Prompts/src/main.vue +248 -248
  44. package/src/components/Sender/index.js +8 -8
  45. package/src/components/Sender/src/components/ClearButton.vue +28 -28
  46. package/src/components/Sender/src/components/Loading.vue +53 -53
  47. package/src/components/Sender/src/components/LoadingButton.vue +39 -39
  48. package/src/components/Sender/src/components/SendButton.vue +26 -26
  49. package/src/components/Sender/src/components/SpeechButton.vue +24 -24
  50. package/src/components/Sender/src/components/SpeechLoading.vue +87 -87
  51. package/src/components/Sender/src/components/SpeechLoadingButton.vue +43 -43
  52. package/src/components/Thinking/index.js +8 -8
  53. package/src/components/ThoughtChain/index.js +8 -8
  54. package/src/components/Typewriter/index.js +8 -8
  55. package/src/components/Welcome/index.js +8 -8
  56. package/src/components/Welcome/src/main.vue +151 -151
  57. package/src/index.js +0 -1
  58. package/src/styles/Attachments.scss +236 -236
  59. package/src/styles/Bubble.scss +157 -157
  60. package/src/styles/BubbleList.scss +148 -148
  61. package/src/styles/Conversations.scss +260 -260
  62. package/src/styles/FilesCard.scss +221 -221
  63. package/src/styles/Prompts.scss +195 -195
  64. package/src/styles/Sender.scss +199 -199
  65. package/src/styles/ThoughtChain.scss +113 -113
  66. package/src/styles/Typewriter.scss +66 -66
  67. package/src/styles/button.scss +302 -0
  68. package/src/styles/var.scss +1052 -0
  69. package/src/theme/var.scss +72 -72
  70. package/lib/components/Think/index.js +0 -799
@@ -1,199 +1,199 @@
1
- @import '../theme/var.scss';
2
-
3
- // 设置全局CSS变量默认值
4
- :root {
5
- --el-x-sender-trigger-popover-width: fit-content;
6
- --el-x-sender-trigger-popover-left: 0px;
7
- }
8
-
9
- $--el-x-sender-box-shadow-tertiary: 0 1px 2px 0 rgba(0, 0, 0, 0.03),
10
- 0 1px 6px -1px rgba(0, 0, 0, 0.02), 0 2px 4px 0 rgba(0, 0, 0, 0.02);
11
- $--el-x-sender-input-font-size: 14px;
12
- $--el-x-sender-header-animation-duration: 300ms;
13
- $--el-x-border-width: $--border-width-base;
14
- $--el-x-padding-xs: 8px;
15
- $--el-x-padding-sm: 12px;
16
- $--el-x-padding: 16px;
17
- $--el-x-transition-duration: 0.3s;
18
- $--el-x-color-primary: $--color-primary;
19
- $--el-x-color-white: $--color-white;
20
- $--el-x-box-shadow: $--box-shadow-base;
21
- $--el-x-border-color: $--border-color-base;
22
- $--el-x-text-color-primary: $--color-text-primary;
23
- $--el-x-font-line-height-primary: $--font-line-height-primary;
24
- $--el-x-fill-color: $--background-color-base;
25
-
26
- .el-x-sender {
27
- width: 100%;
28
- display: flex;
29
- flex-direction: column;
30
-
31
- position: relative;
32
- box-sizing: border-box;
33
- box-shadow: $--el-x-sender-box-shadow-tertiary;
34
- transition: background $--el-x-transition-duration;
35
- border-radius: calc(#{$--border-radius-base} * 2);
36
- border-color: $--el-x-border-color;
37
- border-width: 0;
38
- border-style: solid;
39
- transition: width $--el-x-sender-header-animation-duration;
40
-
41
- &:after {
42
- content: '';
43
- position: absolute;
44
- inset: 0;
45
- pointer-events: none;
46
- transition: border-color $--el-x-transition-duration;
47
- border-radius: inherit;
48
- border-style: inherit;
49
- border-color: inherit;
50
- border-width: $--el-x-border-width;
51
- }
52
-
53
- &:focus-within {
54
- box-shadow: $--el-x-box-shadow;
55
- border-color: $--el-x-color-primary;
56
-
57
- &::after {
58
- border-width: 2px;
59
- }
60
- }
61
-
62
- .el-x-sender-header-wrap {
63
- display: flex;
64
- flex-direction: column;
65
- gap: $--el-x-padding-xs;
66
- width: 100%;
67
- margin: 0;
68
- padding: 0;
69
- }
70
-
71
- // 展开收起动画
72
- .slide-enter-active,
73
- .slide-leave-active {
74
- transition: height $--el-x-sender-header-animation-duration,
75
- opacity $--el-x-sender-header-animation-duration,
76
- border $--el-x-sender-header-animation-duration;
77
- overflow: hidden;
78
- }
79
-
80
- // .slide-enter-from,
81
- // .slide-leave-to {
82
- // height: 0;
83
- // opacity: 0;
84
- // }
85
-
86
- .slide-enter,
87
- .slide-leave-to {
88
- height: 0;
89
- opacity: 0;
90
- }
91
-
92
- .el-x-sender-header {
93
- border-bottom-width: $--el-x-border-width;
94
- border-bottom-style: solid;
95
- border-bottom-color: $--el-x-border-color;
96
- }
97
-
98
- .el-x-sender-content {
99
- display: flex;
100
- gap: $--el-x-padding-xs;
101
- width: 100%;
102
- padding-block: $--el-x-padding-sm;
103
- padding-inline-start: $--el-x-padding;
104
- padding-inline-end: $--el-x-padding-sm;
105
- box-sizing: border-box;
106
- align-items: flex-end;
107
-
108
- // 前缀
109
- .el-x-sender-prefix {
110
- flex: none;
111
- }
112
-
113
- // 输入框
114
- .el-x-sender-input {
115
- height: 100%;
116
- display: flex;
117
- align-items: center;
118
- align-self: center;
119
-
120
- ::v-deep .el-textarea__inner {
121
- padding: 0;
122
- margin: 0;
123
- color: $--el-x-text-color-primary;
124
- font-size: $--el-x-sender-input-font-size;
125
- line-height: $--el-x-font-line-height-primary;
126
- list-style: none;
127
- position: relative;
128
- display: inline-block;
129
- box-sizing: border-box;
130
- width: 100%;
131
- min-width: 0;
132
- max-width: 100%;
133
- height: auto;
134
- min-height: auto !important;
135
- border-radius: 0;
136
- border: none;
137
- flex: auto;
138
- align-self: center;
139
- vertical-align: bottom;
140
- resize: none;
141
- background-color: transparent;
142
- transition: all $--el-x-transition-duration, height 0s;
143
- box-shadow: none !important;
144
- }
145
- }
146
-
147
- // 操作列表
148
- .el-x-sender-action-list-presets {
149
- display: flex;
150
- gap: $--el-x-padding-xs;
151
- flex-direction: row-reverse;
152
- }
153
- }
154
-
155
- // 变体样式 --variant
156
- .content-variant-updown {
157
- display: flex;
158
- flex-direction: column;
159
- align-items: initial;
160
-
161
- .el-x-sender-updown-wrap {
162
- display: flex;
163
- justify-content: space-between;
164
- gap: 8px;
165
-
166
- // 前缀
167
- .el-x-sender-prefix {
168
- flex: initial;
169
- }
170
-
171
- .el-x-sender-action-list {
172
- margin-left: auto;
173
- }
174
- }
175
- }
176
-
177
- // 底部容器
178
- .el-x-sender-footer {
179
- border-top-width: $--el-x-border-width;
180
- border-top-style: solid;
181
- border-top-color: $--el-x-border-color;
182
- }
183
- }
184
-
185
- .el-x-sender-disabled {
186
- background-color: $--el-x-fill-color;
187
- pointer-events: none;
188
- }
189
-
190
- .el-x-sender-trigger-popover {
191
- // 设置默认值
192
- width: fit-content !important;
193
- margin-left: 0px !important;
194
- max-width: calc(100% - 54px) !important;
195
-
196
- // 应用自定义变量(如果存在)
197
- width: var(--el-x-sender-trigger-popover-width) !important;
198
- margin-left: var(--el-x-sender-trigger-popover-left) !important;
199
- }
1
+ @import '../theme/var.scss';
2
+
3
+ // 设置全局CSS变量默认值
4
+ :root {
5
+ --el-x-sender-trigger-popover-width: fit-content;
6
+ --el-x-sender-trigger-popover-left: 0px;
7
+ }
8
+
9
+ $--el-x-sender-box-shadow-tertiary: 0 1px 2px 0 rgba(0, 0, 0, 0.03),
10
+ 0 1px 6px -1px rgba(0, 0, 0, 0.02), 0 2px 4px 0 rgba(0, 0, 0, 0.02);
11
+ $--el-x-sender-input-font-size: 14px;
12
+ $--el-x-sender-header-animation-duration: 300ms;
13
+ $--el-x-border-width: $--border-width-base;
14
+ $--el-x-padding-xs: 8px;
15
+ $--el-x-padding-sm: 12px;
16
+ $--el-x-padding: 16px;
17
+ $--el-x-transition-duration: 0.3s;
18
+ $--el-x-color-primary: $--color-primary;
19
+ $--el-x-color-white: $--color-white;
20
+ $--el-x-box-shadow: $--box-shadow-base;
21
+ $--el-x-border-color: $--border-color-base;
22
+ $--el-x-text-color-primary: $--color-text-primary;
23
+ $--el-x-font-line-height-primary: $--font-line-height-primary;
24
+ $--el-x-fill-color: $--background-color-base;
25
+
26
+ .el-x-sender {
27
+ width: 100%;
28
+ display: flex;
29
+ flex-direction: column;
30
+
31
+ position: relative;
32
+ box-sizing: border-box;
33
+ box-shadow: $--el-x-sender-box-shadow-tertiary;
34
+ transition: background $--el-x-transition-duration;
35
+ border-radius: calc(#{$--border-radius-base} * 2);
36
+ border-color: $--el-x-border-color;
37
+ border-width: 0;
38
+ border-style: solid;
39
+ transition: width $--el-x-sender-header-animation-duration;
40
+
41
+ &:after {
42
+ content: '';
43
+ position: absolute;
44
+ inset: 0;
45
+ pointer-events: none;
46
+ transition: border-color $--el-x-transition-duration;
47
+ border-radius: inherit;
48
+ border-style: inherit;
49
+ border-color: inherit;
50
+ border-width: $--el-x-border-width;
51
+ }
52
+
53
+ &:focus-within {
54
+ box-shadow: $--el-x-box-shadow;
55
+ border-color: $--el-x-color-primary;
56
+
57
+ &::after {
58
+ border-width: 2px;
59
+ }
60
+ }
61
+
62
+ .el-x-sender-header-wrap {
63
+ display: flex;
64
+ flex-direction: column;
65
+ gap: $--el-x-padding-xs;
66
+ width: 100%;
67
+ margin: 0;
68
+ padding: 0;
69
+ }
70
+
71
+ // 展开收起动画
72
+ .slide-enter-active,
73
+ .slide-leave-active {
74
+ transition: height $--el-x-sender-header-animation-duration,
75
+ opacity $--el-x-sender-header-animation-duration,
76
+ border $--el-x-sender-header-animation-duration;
77
+ overflow: hidden;
78
+ }
79
+
80
+ // .slide-enter-from,
81
+ // .slide-leave-to {
82
+ // height: 0;
83
+ // opacity: 0;
84
+ // }
85
+
86
+ .slide-enter,
87
+ .slide-leave-to {
88
+ height: 0;
89
+ opacity: 0;
90
+ }
91
+
92
+ .el-x-sender-header {
93
+ border-bottom-width: $--el-x-border-width;
94
+ border-bottom-style: solid;
95
+ border-bottom-color: $--el-x-border-color;
96
+ }
97
+
98
+ .el-x-sender-content {
99
+ display: flex;
100
+ gap: $--el-x-padding-xs;
101
+ width: 100%;
102
+ padding-block: $--el-x-padding-sm;
103
+ padding-inline-start: $--el-x-padding;
104
+ padding-inline-end: $--el-x-padding-sm;
105
+ box-sizing: border-box;
106
+ align-items: flex-end;
107
+
108
+ // 前缀
109
+ .el-x-sender-prefix {
110
+ flex: none;
111
+ }
112
+
113
+ // 输入框
114
+ .el-x-sender-input {
115
+ height: 100%;
116
+ display: flex;
117
+ align-items: center;
118
+ align-self: center;
119
+
120
+ ::v-deep .el-textarea__inner {
121
+ padding: 0;
122
+ margin: 0;
123
+ color: $--el-x-text-color-primary;
124
+ font-size: $--el-x-sender-input-font-size;
125
+ line-height: $--el-x-font-line-height-primary;
126
+ list-style: none;
127
+ position: relative;
128
+ display: inline-block;
129
+ box-sizing: border-box;
130
+ width: 100%;
131
+ min-width: 0;
132
+ max-width: 100%;
133
+ height: auto;
134
+ min-height: auto !important;
135
+ border-radius: 0;
136
+ border: none;
137
+ flex: auto;
138
+ align-self: center;
139
+ vertical-align: bottom;
140
+ resize: none;
141
+ background-color: transparent;
142
+ transition: all $--el-x-transition-duration, height 0s;
143
+ box-shadow: none !important;
144
+ }
145
+ }
146
+
147
+ // 操作列表
148
+ .el-x-sender-action-list-presets {
149
+ display: flex;
150
+ gap: $--el-x-padding-xs;
151
+ flex-direction: row-reverse;
152
+ }
153
+ }
154
+
155
+ // 变体样式 --variant
156
+ .content-variant-updown {
157
+ display: flex;
158
+ flex-direction: column;
159
+ align-items: initial;
160
+
161
+ .el-x-sender-updown-wrap {
162
+ display: flex;
163
+ justify-content: space-between;
164
+ gap: 8px;
165
+
166
+ // 前缀
167
+ .el-x-sender-prefix {
168
+ flex: initial;
169
+ }
170
+
171
+ .el-x-sender-action-list {
172
+ margin-left: auto;
173
+ }
174
+ }
175
+ }
176
+
177
+ // 底部容器
178
+ .el-x-sender-footer {
179
+ border-top-width: $--el-x-border-width;
180
+ border-top-style: solid;
181
+ border-top-color: $--el-x-border-color;
182
+ }
183
+ }
184
+
185
+ .el-x-sender-disabled {
186
+ background-color: $--el-x-fill-color;
187
+ pointer-events: none;
188
+ }
189
+
190
+ .el-x-sender-trigger-popover {
191
+ // 设置默认值
192
+ width: fit-content !important;
193
+ margin-left: 0px !important;
194
+ max-width: calc(100% - 54px) !important;
195
+
196
+ // 应用自定义变量(如果存在)
197
+ width: var(--el-x-sender-trigger-popover-width) !important;
198
+ margin-left: var(--el-x-sender-trigger-popover-left) !important;
199
+ }
@@ -1,113 +1,113 @@
1
- @import '../theme/var';
2
-
3
- .el-x-thoughtchain {
4
- &-item-dot {
5
- display: flex;
6
- justify-content: center;
7
- align-items: center;
8
-
9
- .el-button {
10
- cursor: default !important;
11
-
12
- // &:active {
13
- // background-color: $--el-x-fill-color !important;
14
- // border-color: $--el-x-fill-color !important;
15
- // }
16
-
17
- // &:hover {
18
- // background-color: $--el-x-fill-color !important;
19
- // border-color: $--el-x-fill-color !important;
20
- // }
21
- }
22
- }
23
-
24
- .el-collapse {
25
- border: none;
26
-
27
- .el-collapse-item__header {
28
- height: 20px;
29
- font-weight: normal;
30
- }
31
-
32
- .el-collapse-item__arrow {
33
- margin: 0 0 0 8px;
34
- }
35
-
36
- .el-collapse-item__header {
37
- margin-bottom: 5px;
38
- }
39
-
40
- .el-collapse-item__header,
41
- .el-collapse-item__wrap {
42
- border: none;
43
- }
44
-
45
- .el-collapse-item__content {
46
- color: $--el-x-text-color-secondary;
47
- padding: 0;
48
- }
49
- }
50
-
51
- .el-timeline {
52
- padding: 10px 0 0 5px;
53
- }
54
-
55
- .el-timeline-item__timestamp {
56
- color: $--el-x-text-color-primary;
57
- }
58
-
59
- .el-timeline-item__content {
60
- color: $--el-x-text-color-secondary;
61
- }
62
-
63
- .el-timeline-item {
64
- // 清除 li 样式
65
- list-style: none !important;
66
- }
67
- }
68
-
69
- .thought-chain-move,
70
- .thought-chain-enter-active,
71
- .thought-chain-leave-active {
72
- transition: all 0.5s ease;
73
- }
74
-
75
- .thought-chain-enter,
76
- .thought-chain-leave-to {
77
- opacity: 0;
78
- transform: translateY(10px) scaleY(0.9);
79
- }
80
-
81
- .thought-chain-leave-active {
82
- position: absolute;
83
- }
84
-
85
- .el-x-thoughtchain-loading {
86
- animation: thoughtchain-rotating 1.5s linear infinite;
87
- transform-origin: center center;
88
- will-change: transform;
89
- backface-visibility: hidden;
90
- -webkit-font-smoothing: antialiased;
91
- }
92
-
93
- @keyframes thoughtchain-rotating {
94
- 0% {
95
- transform: rotate(0deg);
96
- }
97
-
98
- 25% {
99
- transform: rotate(90deg);
100
- }
101
-
102
- 50% {
103
- transform: rotate(180deg);
104
- }
105
-
106
- 75% {
107
- transform: rotate(270deg);
108
- }
109
-
110
- 100% {
111
- transform: rotate(360deg);
112
- }
113
- }
1
+ @import '../theme/var';
2
+
3
+ .el-x-thoughtchain {
4
+ &-item-dot {
5
+ display: flex;
6
+ justify-content: center;
7
+ align-items: center;
8
+
9
+ .el-button {
10
+ cursor: default !important;
11
+
12
+ // &:active {
13
+ // background-color: $--el-x-fill-color !important;
14
+ // border-color: $--el-x-fill-color !important;
15
+ // }
16
+
17
+ // &:hover {
18
+ // background-color: $--el-x-fill-color !important;
19
+ // border-color: $--el-x-fill-color !important;
20
+ // }
21
+ }
22
+ }
23
+
24
+ .el-collapse {
25
+ border: none;
26
+
27
+ .el-collapse-item__header {
28
+ height: 20px;
29
+ font-weight: normal;
30
+ }
31
+
32
+ .el-collapse-item__arrow {
33
+ margin: 0 0 0 8px;
34
+ }
35
+
36
+ .el-collapse-item__header {
37
+ margin-bottom: 5px;
38
+ }
39
+
40
+ .el-collapse-item__header,
41
+ .el-collapse-item__wrap {
42
+ border: none;
43
+ }
44
+
45
+ .el-collapse-item__content {
46
+ color: $--el-x-text-color-secondary;
47
+ padding: 0;
48
+ }
49
+ }
50
+
51
+ .el-timeline {
52
+ padding: 10px 0 0 5px;
53
+ }
54
+
55
+ .el-timeline-item__timestamp {
56
+ color: $--el-x-text-color-primary;
57
+ }
58
+
59
+ .el-timeline-item__content {
60
+ color: $--el-x-text-color-secondary;
61
+ }
62
+
63
+ .el-timeline-item {
64
+ // 清除 li 样式
65
+ list-style: none !important;
66
+ }
67
+ }
68
+
69
+ .thought-chain-move,
70
+ .thought-chain-enter-active,
71
+ .thought-chain-leave-active {
72
+ transition: all 0.5s ease;
73
+ }
74
+
75
+ .thought-chain-enter,
76
+ .thought-chain-leave-to {
77
+ opacity: 0;
78
+ transform: translateY(10px) scaleY(0.9);
79
+ }
80
+
81
+ .thought-chain-leave-active {
82
+ position: absolute;
83
+ }
84
+
85
+ .el-x-thoughtchain-loading {
86
+ animation: thoughtchain-rotating 1.5s linear infinite;
87
+ transform-origin: center center;
88
+ will-change: transform;
89
+ backface-visibility: hidden;
90
+ -webkit-font-smoothing: antialiased;
91
+ }
92
+
93
+ @keyframes thoughtchain-rotating {
94
+ 0% {
95
+ transform: rotate(0deg);
96
+ }
97
+
98
+ 25% {
99
+ transform: rotate(90deg);
100
+ }
101
+
102
+ 50% {
103
+ transform: rotate(180deg);
104
+ }
105
+
106
+ 75% {
107
+ transform: rotate(270deg);
108
+ }
109
+
110
+ 100% {
111
+ transform: rotate(360deg);
112
+ }
113
+ }