vue-element-ui-x 0.1.5 → 0.1.7-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 +6 -6
  5. package/lib/components/Bubble/index.js +188 -192
  6. package/lib/components/BubbleList/index.js +189 -194
  7. package/lib/components/Conversations/index.js +6 -6
  8. package/lib/components/FilesCard/index.js +5 -5
  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 +1 -1
  13. package/lib/components/ThoughtChain/index.js +186 -191
  14. package/lib/components/Typewriter/index.js +182 -186
  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 +1707 -1691
  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 +3 -4
  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 +195 -195
  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 +112 -112
  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,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,134 +1,134 @@
1
- @import '../theme/var.scss';
2
-
3
- .el-x-think {
4
- font-family: system-ui, sans-serif;
5
- margin: 0 auto;
6
-
7
- .trigger {
8
- display: flex;
9
- align-items: center;
10
- height: 100%;
11
- width: var(--el-x-think-button-width);
12
- gap: 8px;
13
- padding: $--el-x-padding-sm $--el-x-padding-sm + 4px;
14
- border: $--el-x-border-width solid $--el-x-border-color;
15
- border-radius: $--el-x-border-radius-md;
16
- background: $--color-white;
17
- cursor: pointer;
18
- margin-bottom: $--el-x-spacing-sm;
19
-
20
- /* 居中 */
21
- .el-icon-center {
22
- height: 100%;
23
- display: flex;
24
- align-items: center;
25
- }
26
-
27
- /* 开始颜色 */
28
- .start-color {
29
- color: $--color-warning;
30
- }
31
-
32
- /* 完成颜色 */
33
- .end-color {
34
- color: $--color-success;
35
- }
36
-
37
- /* 思考中颜色 */
38
- .is-loading {
39
- color: $--color-primary;
40
- }
41
-
42
- /* 思考失败颜色 */
43
- .error-color {
44
- color: $--color-danger;
45
- }
46
-
47
- &:hover {
48
- background: #f8f8f8;
49
- }
50
-
51
- &.disabled {
52
- cursor: pointer;
53
- }
54
-
55
- &:disabled {
56
- cursor: not-allowed;
57
- opacity: 0.7;
58
- }
59
- }
60
-
61
- .status-icon {
62
- font-size: 1.2em;
63
- }
64
-
65
- .arrow {
66
- margin-left: auto;
67
- transition: transform var(--el-x-think-animation-duration);
68
-
69
- &.expanded {
70
- transform: rotate(180deg);
71
- }
72
- }
73
-
74
- /* 滑动动画 */
75
- .slide-enter-active,
76
- .slide-leave-active {
77
- transition: height var(--el-x-think-animation-duration) ease-in-out,
78
- opacity var(--el-x-think-animation-duration) ease-in-out;
79
- overflow: hidden;
80
- }
81
-
82
- .slide-enter,
83
- .slide-leave-to {
84
- height: 0 !important;
85
- opacity: 0;
86
- }
87
-
88
- /* 内容区域样式 */
89
- .content-wrapper {
90
- box-sizing: border-box;
91
- min-width: 0;
92
-
93
- &.error-state {
94
- border-color: #ffd0d0;
95
- background: #fff0f0;
96
- }
97
- }
98
-
99
- .content {
100
- pre {
101
- border: $--el-x-border-width solid $--el-x-border-color;
102
- background: var(--el-x-think-content-wrapper-background-color);
103
- padding: $--el-x-padding-sm $--el-x-padding-sm + 4px;
104
- border-radius: $--el-x-border-radius-md;
105
- max-width: var(--el-x-think-content-wrapper-width);
106
- font-size: $--el-x-font-size-base;
107
- color: var(--el-x-think-content-wrapper-color);
108
- white-space: pre-wrap;
109
- font-family: system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue,
110
- sans-serif;
111
- margin: 0;
112
- line-height: $--el-x-font-line-height-primary;
113
- }
114
- }
115
-
116
- .error-message {
117
- color: $--color-danger;
118
- height: fit-content;
119
- padding: $--el-x-spacing-sm;
120
- background: #ffeef0;
121
- border-radius: $--el-x-border-radius-base;
122
- }
123
-
124
- /* 旋转动画 */
125
- .rotate-enter-active,
126
- .rotate-leave-active {
127
- transition: transform var(--el-x-think-animation-duration);
128
- }
129
-
130
- .rotate-enter,
131
- .rotate-leave-to {
132
- transform: rotate(0deg);
133
- }
134
- }
1
+ @import '../theme/var.scss';
2
+
3
+ .el-x-think {
4
+ font-family: system-ui, sans-serif;
5
+ margin: 0 auto;
6
+
7
+ .trigger {
8
+ display: flex;
9
+ align-items: center;
10
+ height: 100%;
11
+ width: var(--el-x-think-button-width);
12
+ gap: 8px;
13
+ padding: $--el-x-padding-sm $--el-x-padding-sm + 4px;
14
+ border: $--el-x-border-width solid $--el-x-border-color;
15
+ border-radius: $--el-x-border-radius-md;
16
+ background: $--color-white;
17
+ cursor: pointer;
18
+ margin-bottom: $--el-x-spacing-sm;
19
+
20
+ /* 居中 */
21
+ .el-icon-center {
22
+ height: 100%;
23
+ display: flex;
24
+ align-items: center;
25
+ }
26
+
27
+ /* 开始颜色 */
28
+ .start-color {
29
+ color: $--color-warning;
30
+ }
31
+
32
+ /* 完成颜色 */
33
+ .end-color {
34
+ color: $--color-success;
35
+ }
36
+
37
+ /* 思考中颜色 */
38
+ .is-loading {
39
+ color: $--color-primary;
40
+ }
41
+
42
+ /* 思考失败颜色 */
43
+ .error-color {
44
+ color: $--color-danger;
45
+ }
46
+
47
+ &:hover {
48
+ background: #f8f8f8;
49
+ }
50
+
51
+ &.disabled {
52
+ cursor: pointer;
53
+ }
54
+
55
+ &:disabled {
56
+ cursor: not-allowed;
57
+ opacity: 0.7;
58
+ }
59
+ }
60
+
61
+ .status-icon {
62
+ font-size: 1.2em;
63
+ }
64
+
65
+ .arrow {
66
+ margin-left: auto;
67
+ transition: transform var(--el-x-think-animation-duration);
68
+
69
+ &.expanded {
70
+ transform: rotate(180deg);
71
+ }
72
+ }
73
+
74
+ /* 滑动动画 */
75
+ .slide-enter-active,
76
+ .slide-leave-active {
77
+ transition: height var(--el-x-think-animation-duration) ease-in-out,
78
+ opacity var(--el-x-think-animation-duration) ease-in-out;
79
+ overflow: hidden;
80
+ }
81
+
82
+ .slide-enter,
83
+ .slide-leave-to {
84
+ height: 0 !important;
85
+ opacity: 0;
86
+ }
87
+
88
+ /* 内容区域样式 */
89
+ .content-wrapper {
90
+ box-sizing: border-box;
91
+ min-width: 0;
92
+
93
+ &.error-state {
94
+ border-color: #ffd0d0;
95
+ background: #fff0f0;
96
+ }
97
+ }
98
+
99
+ .content {
100
+ pre {
101
+ border: $--el-x-border-width solid $--el-x-border-color;
102
+ background: var(--el-x-think-content-wrapper-background-color);
103
+ padding: $--el-x-padding-sm $--el-x-padding-sm + 4px;
104
+ border-radius: $--el-x-border-radius-md;
105
+ max-width: var(--el-x-think-content-wrapper-width);
106
+ font-size: $--el-x-font-size-base;
107
+ color: var(--el-x-think-content-wrapper-color);
108
+ white-space: pre-wrap;
109
+ font-family: system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue,
110
+ sans-serif;
111
+ margin: 0;
112
+ line-height: $--el-x-font-line-height-primary;
113
+ }
114
+ }
115
+
116
+ .error-message {
117
+ color: $--color-danger;
118
+ height: fit-content;
119
+ padding: $--el-x-spacing-sm;
120
+ background: #ffeef0;
121
+ border-radius: $--el-x-border-radius-base;
122
+ }
123
+
124
+ /* 旋转动画 */
125
+ .rotate-enter-active,
126
+ .rotate-leave-active {
127
+ transition: transform var(--el-x-think-animation-duration);
128
+ }
129
+
130
+ .rotate-enter,
131
+ .rotate-leave-to {
132
+ transform: rotate(0deg);
133
+ }
134
+ }