@szjy/ai-coms 0.1.12 → 0.1.14

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.
@@ -70,7 +70,32 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
70
70
  type: BooleanConstructor;
71
71
  default: boolean;
72
72
  };
73
- }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
73
+ /**
74
+ * szjy-ui fence 自定义 UI 配置,透传给动作处理器。
75
+ * 例如:{ postMessage: { target: () => sandboxIframe.contentWindow, targetOrigin: 'http://...' } }
76
+ */
77
+ customUi: {
78
+ type: ObjectConstructor;
79
+ default: null;
80
+ };
81
+ /**
82
+ * szjy-ui 动作拦截钩子:(action, params, triggerEl) => false 可阻止内置动作执行
83
+ */
84
+ uiActionHandler: {
85
+ type: FunctionConstructor;
86
+ default: null;
87
+ };
88
+ /**
89
+ * Mock 响应内容:llmName 为 standard(模拟数据模型)时不请求真实后端,
90
+ * 将该内容流式输出,用于联调 szjy-ui fence / postMessage 动作
91
+ */
92
+ mockResponse: {
93
+ type: StringConstructor;
94
+ default: string;
95
+ };
96
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
97
+ "ui-action": (...args: any[]) => void;
98
+ }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
74
99
  token: {
75
100
  type: StringConstructor;
76
101
  default: string;
@@ -142,11 +167,36 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
142
167
  type: BooleanConstructor;
143
168
  default: boolean;
144
169
  };
145
- }>> & Readonly<{}>, {
170
+ /**
171
+ * szjy-ui fence 自定义 UI 配置,透传给动作处理器。
172
+ * 例如:{ postMessage: { target: () => sandboxIframe.contentWindow, targetOrigin: 'http://...' } }
173
+ */
174
+ customUi: {
175
+ type: ObjectConstructor;
176
+ default: null;
177
+ };
178
+ /**
179
+ * szjy-ui 动作拦截钩子:(action, params, triggerEl) => false 可阻止内置动作执行
180
+ */
181
+ uiActionHandler: {
182
+ type: FunctionConstructor;
183
+ default: null;
184
+ };
185
+ /**
186
+ * Mock 响应内容:llmName 为 standard(模拟数据模型)时不请求真实后端,
187
+ * 将该内容流式输出,用于联调 szjy-ui fence / postMessage 动作
188
+ */
189
+ mockResponse: {
190
+ type: StringConstructor;
191
+ default: string;
192
+ };
193
+ }>> & Readonly<{
194
+ "onUi-action"?: ((...args: any[]) => any) | undefined;
195
+ }>, {
196
+ title: string;
146
197
  baseUrl: string;
147
198
  token: string;
148
199
  identifier: string;
149
- title: string;
150
200
  llmName: string;
151
201
  messagePostRender: Function;
152
202
  extraConfig: Record<string, any>;
@@ -154,5 +204,8 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
154
204
  workerUrl: string;
155
205
  enableVoiceInput: boolean;
156
206
  enableVoiceUpload: boolean;
207
+ customUi: Record<string, any>;
208
+ uiActionHandler: Function;
209
+ mockResponse: string;
157
210
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
158
211
  export default _default;
@@ -1,4 +1,5 @@
1
1
  import { createSparkStylized } from '../../../../api/ai';
2
+ import { createMockStylized } from '../../../../api/mock';
2
3
 
3
4
  /**
4
5
  * 转义处理响应值为 data: 的 json 字符串
@@ -23,7 +24,7 @@ export declare const parseThinking: (raw: string) => {
23
24
  export declare const LLMTypes: ({
24
25
  label: string;
25
26
  modelName: string;
26
- api: null;
27
+ api: typeof createMockStylized;
27
28
  } | {
28
29
  label: string;
29
30
  modelName: string;
@@ -70,8 +70,32 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
70
70
  type: BooleanConstructor;
71
71
  default: boolean;
72
72
  };
73
+ /**
74
+ * szjy-ui fence 自定义 UI 配置,透传给动作处理器。
75
+ * 例如:{ postMessage: { target: () => sandboxIframe.contentWindow, targetOrigin: 'http://...' } }
76
+ */
77
+ customUi: {
78
+ type: ObjectConstructor;
79
+ default: null;
80
+ };
81
+ /**
82
+ * szjy-ui 动作拦截钩子:(action, params, triggerEl) => false 可阻止内置动作执行
83
+ */
84
+ uiActionHandler: {
85
+ type: FunctionConstructor;
86
+ default: null;
87
+ };
88
+ /**
89
+ * Mock 响应内容:llmName 为 standard(模拟数据模型)时不请求真实后端,
90
+ * 将该内容流式输出,用于联调 szjy-ui fence / postMessage 动作
91
+ */
92
+ mockResponse: {
93
+ type: StringConstructor;
94
+ default: string;
95
+ };
73
96
  }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
74
97
  submit: (...args: any[]) => void;
98
+ "ui-action": (...args: any[]) => void;
75
99
  }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
76
100
  token: {
77
101
  type: StringConstructor;
@@ -144,13 +168,37 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
144
168
  type: BooleanConstructor;
145
169
  default: boolean;
146
170
  };
171
+ /**
172
+ * szjy-ui fence 自定义 UI 配置,透传给动作处理器。
173
+ * 例如:{ postMessage: { target: () => sandboxIframe.contentWindow, targetOrigin: 'http://...' } }
174
+ */
175
+ customUi: {
176
+ type: ObjectConstructor;
177
+ default: null;
178
+ };
179
+ /**
180
+ * szjy-ui 动作拦截钩子:(action, params, triggerEl) => false 可阻止内置动作执行
181
+ */
182
+ uiActionHandler: {
183
+ type: FunctionConstructor;
184
+ default: null;
185
+ };
186
+ /**
187
+ * Mock 响应内容:llmName 为 standard(模拟数据模型)时不请求真实后端,
188
+ * 将该内容流式输出,用于联调 szjy-ui fence / postMessage 动作
189
+ */
190
+ mockResponse: {
191
+ type: StringConstructor;
192
+ default: string;
193
+ };
147
194
  }>> & Readonly<{
148
195
  onSubmit?: ((...args: any[]) => any) | undefined;
196
+ "onUi-action"?: ((...args: any[]) => any) | undefined;
149
197
  }>, {
198
+ title: string;
150
199
  baseUrl: string;
151
200
  token: string;
152
201
  identifier: string;
153
- title: string;
154
202
  llmName: string;
155
203
  messagePostRender: Function;
156
204
  extraConfig: Record<string, any>;
@@ -158,5 +206,8 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
158
206
  workerUrl: string;
159
207
  enableVoiceInput: boolean;
160
208
  enableVoiceUpload: boolean;
209
+ customUi: Record<string, any>;
210
+ uiActionHandler: Function;
211
+ mockResponse: string;
161
212
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
162
213
  export default _default;
package/dist/style.css CHANGED
@@ -1,4 +1,4 @@
1
- @charset "UTF-8";.svg-icon-wrapper[data-v-490b11c1]{position:relative;overflow:hidden;vertical-align:middle}.svg-icon[data-v-490b11c1]{width:1em;height:1em;fill:currentColor;vertical-align:middle;display:inline-block}.ai-copy-btn-wrapper{cursor:pointer;width:74px;height:24px;border-radius:12px;box-sizing:border-box;padding:10px 14px;border:1px solid #D9D9D9;display:flex;align-items:center;justify-content:center;font-size:12px;color:#666;line-height:20px;text-align:justify;margin-top:6px}.ai-copy-btn-wrapper .copy-text{margin-left:4px}.ai-thinking-block{margin-bottom:10px;border:1px solid #E8E8E8;border-radius:6px;background:#fafafa;overflow:hidden}.ai-thinking-block .thinking-header{display:flex;align-items:center;gap:6px;padding:7px 10px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:12px;color:#666;transition:background-color .2s ease}.ai-thinking-block .thinking-header:hover{background-color:#f0f7ff;color:#1677ff}.ai-thinking-block .thinking-header:hover .thinking-toggle-hint{color:#1677ff}.ai-thinking-block .thinking-header .thinking-arrow{flex-shrink:0;transition:transform .2s ease}.ai-thinking-block .thinking-header .thinking-title{flex:1;text-align:left;font-weight:500;line-height:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-thinking-block .thinking-header .thinking-toggle-hint{flex-shrink:0;color:#999}.ai-thinking-block.is-expanded .thinking-arrow{transform:rotate(90deg)}.ai-thinking-block.is-streaming{border-color:#bae0ff;background:linear-gradient(135deg,#f0f7ff,#e6f4ff)}.ai-thinking-block.is-streaming .thinking-header .thinking-title{color:#1677ff;animation:thinking-breathe 1.2s ease-in-out infinite}.ai-thinking-block .thinking-body{max-height:280px;overflow-y:auto;padding:8px 12px 10px;border-top:1px dashed #E8E8E8;font-size:13px;color:#8c8c8c;line-height:1.6;word-break:break-word}.ai-thinking-block .thinking-body p{margin:0 0 4px}.ai-thinking-block .thinking-body p:last-child{margin-bottom:0}@keyframes thinking-breathe{0%,to{opacity:1}50%{opacity:.55}}.markdown-wrapper{font-size:14px;line-height:1.75;color:#333;word-break:break-word}.markdown-wrapper p{margin:0 0 10px}.markdown-wrapper p:last-child{margin-bottom:0}.markdown-wrapper h1,.markdown-wrapper h2,.markdown-wrapper h3,.markdown-wrapper h4,.markdown-wrapper h5,.markdown-wrapper h6{margin:14px 0 10px;font-weight:600;line-height:1.4}.markdown-wrapper h1:first-child,.markdown-wrapper h2:first-child,.markdown-wrapper h3:first-child,.markdown-wrapper h4:first-child,.markdown-wrapper h5:first-child,.markdown-wrapper h6:first-child{margin-top:0}.markdown-wrapper h1{font-size:18px}.markdown-wrapper h2{font-size:17px}.markdown-wrapper h3{font-size:16px}.markdown-wrapper h4,.markdown-wrapper h5,.markdown-wrapper h6{font-size:15px}.markdown-wrapper ul,.markdown-wrapper ol{margin:0 0 10px;padding-left:1.5em}.markdown-wrapper ul:last-child,.markdown-wrapper ol:last-child{margin-bottom:0}.markdown-wrapper li{margin:4px 0;line-height:1.7}.markdown-wrapper li>p{margin:0;line-height:1.7}.markdown-wrapper hr{margin:14px 0;border:none;border-top:1px solid #e8e8e8}.markdown-wrapper a{color:#536fec;font-weight:bolder;text-decoration:underline;padding:0 3px}.markdown-wrapper strong{font-weight:600}.markdown-wrapper code{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace}.markdown-wrapper p>code,.markdown-wrapper li>code,.markdown-wrapper td>code{background:#536fec14;color:#4761c6;padding:2px 6px;border-radius:4px;font-size:12.5px;white-space:pre-wrap}.markdown-wrapper pre.md-code-block{margin:0 0 10px;padding:12px 14px;background:#f6f8fa;border:1px solid #e8ecf2;border-radius:8px;overflow:auto;max-height:380px;font-size:12.5px;line-height:1.6}.markdown-wrapper pre.md-code-block:last-child{margin-bottom:0}.markdown-wrapper pre.md-code-block code{display:block;padding:0;background:transparent;color:#333;white-space:pre;font-size:inherit;line-height:inherit}.markdown-wrapper blockquote{padding:10px 14px;margin:10px 0;border-left:4px solid #c9d4f0;background-color:#f7f9fd;border-radius:0 6px 6px 0;color:#555}.markdown-wrapper blockquote>p{margin:0}.markdown-wrapper table{width:100%;margin:10px 0;border-collapse:collapse;font-size:13px}.markdown-wrapper table th,.markdown-wrapper table td{border:1px solid #e0e6ef;padding:6px 10px;text-align:left}.markdown-wrapper table th{background:#f2f5fa;font-weight:600}.markdown-wrapper table tr:nth-child(2n) td{background:#fafbfd}.markdown-wrapper img{display:inline-block;max-width:100%}/*!
1
+ @charset "UTF-8";.svg-icon-wrapper[data-v-490b11c1]{position:relative;overflow:hidden;vertical-align:middle}.svg-icon[data-v-490b11c1]{width:1em;height:1em;fill:currentColor;vertical-align:middle;display:inline-block}.ai-copy-btn-wrapper{cursor:pointer;width:74px;height:24px;border-radius:12px;box-sizing:border-box;padding:10px 14px;border:1px solid #D9D9D9;display:flex;align-items:center;justify-content:center;font-size:12px;color:#666;line-height:20px;text-align:justify;margin-top:6px}.ai-copy-btn-wrapper .copy-text{margin-left:4px}.ai-thinking-block{margin-bottom:10px;border:1px solid #E8E8E8;border-radius:6px;background:#fafafa;overflow:hidden}.ai-thinking-block .thinking-header{display:flex;align-items:center;gap:6px;padding:7px 10px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:12px;color:#666;transition:background-color .2s ease}.ai-thinking-block .thinking-header:hover{background-color:#f0f7ff;color:#1677ff}.ai-thinking-block .thinking-header:hover .thinking-toggle-hint{color:#1677ff}.ai-thinking-block .thinking-header .thinking-arrow{flex-shrink:0;transition:transform .2s ease}.ai-thinking-block .thinking-header .thinking-title{flex:1;text-align:left;font-weight:500;line-height:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-thinking-block .thinking-header .thinking-toggle-hint{flex-shrink:0;color:#999}.ai-thinking-block.is-expanded .thinking-arrow{transform:rotate(90deg)}.ai-thinking-block.is-streaming{border-color:#bae0ff;background:linear-gradient(135deg,#f0f7ff,#e6f4ff)}.ai-thinking-block.is-streaming .thinking-header .thinking-title{color:#1677ff;animation:thinking-breathe 1.2s ease-in-out infinite}.ai-thinking-block .thinking-body{max-height:280px;overflow-y:auto;padding:8px 12px 10px;border-top:1px dashed #E8E8E8;font-size:13px;color:#8c8c8c;line-height:1.6;word-break:break-word}.ai-thinking-block .thinking-body p{margin:0 0 4px}.ai-thinking-block .thinking-body p:last-child{margin-bottom:0}@keyframes thinking-breathe{0%,to{opacity:1}50%{opacity:.55}}.markdown-wrapper{font-size:14px;line-height:1.75;color:#333;word-break:break-word}.markdown-wrapper p{margin:0 0 10px}.markdown-wrapper p:last-child{margin-bottom:0}.markdown-wrapper h1,.markdown-wrapper h2,.markdown-wrapper h3,.markdown-wrapper h4,.markdown-wrapper h5,.markdown-wrapper h6{margin:14px 0 10px;font-weight:600;line-height:1.4}.markdown-wrapper h1:first-child,.markdown-wrapper h2:first-child,.markdown-wrapper h3:first-child,.markdown-wrapper h4:first-child,.markdown-wrapper h5:first-child,.markdown-wrapper h6:first-child{margin-top:0}.markdown-wrapper h1{font-size:18px}.markdown-wrapper h2{font-size:17px}.markdown-wrapper h3{font-size:16px}.markdown-wrapper h4,.markdown-wrapper h5,.markdown-wrapper h6{font-size:15px}.markdown-wrapper ul,.markdown-wrapper ol{margin:0 0 10px;padding-left:1.5em}.markdown-wrapper ul:last-child,.markdown-wrapper ol:last-child{margin-bottom:0}.markdown-wrapper li{margin:4px 0;line-height:1.7}.markdown-wrapper li>p{margin:0;line-height:1.7}.markdown-wrapper hr{margin:14px 0;border:none;border-top:1px solid #e8e8e8}.markdown-wrapper a{color:#536fec;font-weight:bolder;text-decoration:underline;padding:0 3px}.markdown-wrapper strong{font-weight:600}.markdown-wrapper code{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace}.markdown-wrapper p>code,.markdown-wrapper li>code,.markdown-wrapper td>code{background:#536fec14;color:#4761c6;padding:2px 6px;border-radius:4px;font-size:12.5px;white-space:pre-wrap}.markdown-wrapper pre.md-code-block{margin:0 0 10px;padding:12px 14px;background:#f6f8fa;border:1px solid #e8ecf2;border-radius:8px;overflow:auto;max-height:380px;font-size:12.5px;line-height:1.6}.markdown-wrapper pre.md-code-block:last-child{margin-bottom:0}.markdown-wrapper pre.md-code-block code{display:block;padding:0;background:transparent;color:#333;white-space:pre;font-size:inherit;line-height:inherit}.markdown-wrapper blockquote{padding:10px 14px;margin:10px 0;border-left:4px solid #c9d4f0;background-color:#f7f9fd;border-radius:0 6px 6px 0;color:#555}.markdown-wrapper blockquote>p{margin:0}.markdown-wrapper table{width:100%;margin:10px 0;border-collapse:collapse;font-size:13px}.markdown-wrapper table th,.markdown-wrapper table td{border:1px solid #e0e6ef;padding:6px 10px;text-align:left}.markdown-wrapper table th{background:#f2f5fa;font-weight:600}.markdown-wrapper table tr:nth-child(2n) td{background:#fafbfd}.markdown-wrapper img{display:inline-block;max-width:100%}.szjy-ui{margin:10px 0;font-size:14px}.szjy-ui:last-child{margin-bottom:0}.szjy-ui-list__title{font-weight:600;font-size:13.5px;color:#333;margin-bottom:8px;line-height:20px}.szjy-ui-list__items{display:flex;flex-direction:column;align-items:stretch}.szjy-ui-list__item{display:block}.szjy-ui-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;box-sizing:border-box;width:100%;padding:7px 14px;border-radius:6px;border:1px solid #dcdfe6;background:#fff;color:#606266;font-size:13.5px;line-height:20px;font-family:inherit;cursor:pointer;transition:border-color .15s ease,background-color .15s ease,color .15s ease,opacity .15s ease}.szjy-ui-btn:hover:not(:disabled),.szjy-ui-btn:focus-visible:not(:disabled){border-color:#536fec;color:#536fec;outline:none}.szjy-ui-btn:disabled{cursor:not-allowed;opacity:.55}.szjy-ui-btn--small{padding:4px 10px;font-size:12.5px}.szjy-ui-btn--large{padding:10px 16px;font-size:14.5px}.szjy-ui-btn--primary{background:#409eff;border-color:#409eff;color:#fff}.szjy-ui-btn--primary:hover:not(:disabled),.szjy-ui-btn--primary:focus-visible:not(:disabled){background:#66b1ff;border-color:#66b1ff;color:#fff}.szjy-ui-btn--success{background:#67c23a;border-color:#67c23a;color:#fff}.szjy-ui-btn--success:hover:not(:disabled){background:#85ce61;border-color:#85ce61;color:#fff}.szjy-ui-btn--warning{background:#e6a23c;border-color:#e6a23c;color:#fff}.szjy-ui-btn--warning:hover:not(:disabled){background:#ebb563;border-color:#ebb563;color:#fff}.szjy-ui-btn--danger{background:#f56c6c;border-color:#f56c6c;color:#fff}.szjy-ui-btn--danger:hover:not(:disabled){background:#f78989;border-color:#f78989;color:#fff}.szjy-ui-btn--info{background:#909399;border-color:#909399;color:#fff}.szjy-ui-btn--info:hover:not(:disabled){background:#a6a9ad;border-color:#a6a9ad;color:#fff}.szjy-ui-btn--text{border-color:transparent;background:transparent;color:#536fec;padding-left:6px;padding-right:6px}.szjy-ui-btn--text:hover:not(:disabled){color:#7a8cf5;background:#536fec0f}.szjy-ui-btn__status{font-size:12px;line-height:18px;color:inherit;opacity:.85;text-align:left;word-break:break-all}.szjy-ui-btn__status:empty{display:none}.szjy-ui-btn.is-loading .szjy-ui-btn__status{opacity:.65}.szjy-ui-btn.is-success{border-color:#b3e19d}.szjy-ui-btn.is-success .szjy-ui-btn__status{color:#5daf34;opacity:1}.szjy-ui-btn.is-success.szjy-ui-btn--primary .szjy-ui-btn__status,.szjy-ui-btn.is-success.szjy-ui-btn--success .szjy-ui-btn__status,.szjy-ui-btn.is-success.szjy-ui-btn--warning .szjy-ui-btn__status,.szjy-ui-btn.is-success.szjy-ui-btn--danger .szjy-ui-btn__status,.szjy-ui-btn.is-success.szjy-ui-btn--info .szjy-ui-btn__status{color:#f3f9ee}.szjy-ui-btn.is-error{border-color:#fbc4c4}.szjy-ui-btn.is-error .szjy-ui-btn__status{color:#f56c6c;opacity:1}.szjy-ui-btn.is-error.szjy-ui-btn--primary .szjy-ui-btn__status,.szjy-ui-btn.is-error.szjy-ui-btn--success .szjy-ui-btn__status,.szjy-ui-btn.is-error.szjy-ui-btn--warning .szjy-ui-btn__status,.szjy-ui-btn.is-error.szjy-ui-btn--danger .szjy-ui-btn__status,.szjy-ui-btn.is-error.szjy-ui-btn--info .szjy-ui-btn__status{color:#fde2e2}.szjy-ui-btn.is-retrying .szjy-ui-btn__status{color:#b88230;opacity:1}/*!
2
2
  Theme: Default
3
3
  Description: Original highlight.js style
4
4
  Author: (c) Ivan Sagalaev <maniac@softwaremaniacs.org>
@@ -6,4 +6,4 @@
6
6
  Website: https://highlightjs.org/
7
7
  License: see project LICENSE
8
8
  Touched: 2021
9
- */pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#f3f3f3;color:#444}.hljs-comment{color:#697070}.hljs-punctuation,.hljs-tag{color:#444a}.hljs-tag .hljs-attr,.hljs-tag .hljs-name{color:#444}.hljs-attribute,.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-name,.hljs-selector-tag{font-weight:700}.hljs-deletion,.hljs-number,.hljs-quote,.hljs-selector-class,.hljs-selector-id,.hljs-string,.hljs-template-tag,.hljs-type{color:#800}.hljs-section,.hljs-title{color:#800;font-weight:700}.hljs-link,.hljs-operator,.hljs-regexp,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-symbol,.hljs-template-variable,.hljs-variable{color:#ab5656}.hljs-literal{color:#695}.hljs-addition,.hljs-built_in,.hljs-bullet,.hljs-code{color:#397300}.hljs-meta{color:#1f7199}.hljs-meta .hljs-string{color:#38a}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.slide-enter-active,.slide-leave-active{transition:transform .3s ease}.slide-enter-from,.slide-leave-to{transform:translate(30px)}.ai-panel{margin-right:20px;width:400px;height:804px;background:#fff;border-radius:8px;box-shadow:0 8px 24px #00000026;display:flex;flex-direction:column;overflow:hidden;background-image:url(/images/ai-panel-bg.png);background-size:100% auto;background-position:top;background-repeat:no-repeat;position:relative;transition:all .3s ease}.ai-panel :deep(.el-input-group__append){box-sizing:border-box}.ai-panel.drawer-mode{position:fixed;right:0;top:0;bottom:0;height:100vh;margin:0;border-radius:0;z-index:2000}.ai-panel.embedded-mode{width:100%;height:100%;margin:0;box-shadow:none;border-radius:0}.ai-panel .panel-header{padding:20px;background:transparent}.ai-panel .panel-header .header-actions{display:flex;justify-content:space-between;gap:12px;align-items:center}.ai-panel .panel-header .header-actions .header-title{font-family:PingFangSC,PingFang SC;font-weight:700;font-size:16px;color:#333;line-height:24px;text-align:left;font-style:normal}.ai-panel .panel-header .header-actions .action-icons{display:flex;gap:12px}.ai-panel .panel-header .header-actions .action-icon{font-size:20px;color:#666;cursor:pointer}.ai-panel .panel-header .header-actions .action-icon:hover{color:#333}.ai-panel .body-content{flex:1;overflow:hidden;padding:20px;display:flex;flex-direction:column}.ai-panel .body-content .welcome-content .title{display:flex;flex-direction:column;align-items:center;margin-bottom:8px}.ai-panel .body-content .welcome-content .title .panel-icon{width:64px;height:64px;margin-bottom:16px}.ai-panel .body-content .welcome-content .title .title-text{margin:0;font-size:24px;color:#333;font-weight:500}.ai-panel .body-content .welcome-content .subtitle{text-align:center;font-size:28px;color:#333;line-height:36px;letter-spacing:2px;margin-bottom:20px}.ai-panel .body-content .welcome-content .subtitle .highlight{margin-left:2px;background:linear-gradient(270deg,#e236ffcc,#0a84ff);-webkit-background-clip:text;color:transparent;font-weight:bolder}.ai-panel .body-content .quick-questions .question-item{padding:12px 16px;background:#f5f7fa;border-radius:8px;margin-bottom:12px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:all .3s}.ai-panel .body-content .quick-questions .question-item:hover{background:#e8f4ff;transform:translate(4px)}.ai-panel .body-content .quick-questions .question-item span{font-size:14px;color:#333}.ai-panel .body-content .quick-questions .question-item .el-icon{color:#666}.ai-panel .body-content .chat-messages{flex:1;overflow-y:auto;overflow-x:hidden;height:100%;display:flex;flex-direction:column}.ai-panel .body-content .chat-messages::-webkit-scrollbar{width:0;background:transparent}.ai-panel .body-content .chat-messages{scrollbar-width:none;-ms-overflow-style:none}.ai-panel .body-content .chat-messages .message-item{display:flex;align-items:flex-start;margin-bottom:20px;gap:12px}.ai-panel .body-content .chat-messages .message-item .message-avatar{width:40px;height:40px;border-radius:20px;flex-shrink:0}.ai-panel .body-content .chat-messages .message-item .user-avatar{background:#0a84ff;color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px}.ai-panel .body-content .chat-messages .message-item .message-content{padding:12px 16px;border-radius:2px;max-width:70%;word-break:break-word}.ai-panel .body-content .chat-messages .message-item.ai-message .message-content{background:#f5f7fa;font-size:14px}.ai-panel .body-content .chat-messages .message-item.user-message{flex-direction:row-reverse}.ai-panel .body-content .chat-messages .message-item.user-message .message-content{background:#f1f2f3;border-radius:4px 4px 0;color:#333;font-size:14px}.ai-panel .panel-footer{padding:24px;background:#fff;position:relative}.ai-panel .panel-footer .loading-icon{position:absolute;top:-13px}.ai-panel .panel-footer .voice-progress-banner{margin-bottom:12px;padding:10px 14px;background:linear-gradient(135deg,#f0f7ff,#e6f4ff);border:1px solid #bae0ff;border-radius:8px;display:flex;flex-direction:column;gap:6px}.ai-panel .panel-footer .voice-progress-banner .progress-info{display:flex;align-items:center;gap:8px;font-size:13px;color:#0958d9}.ai-panel .panel-footer .voice-progress-banner .progress-info .progress-icon{font-size:14px}.ai-panel .panel-footer .voice-progress-banner .progress-info .progress-text{flex:1;font-weight:500}.ai-panel .panel-footer .voice-progress-banner .progress-info .progress-percent{font-weight:700;font-family:monospace}.ai-panel .panel-footer .voice-progress-banner .progress-track{height:6px;background:#d9d9d9;border-radius:3px;overflow:hidden}.ai-panel .panel-footer .voice-progress-banner .progress-track .progress-bar{height:100%;background:linear-gradient(90deg,#1677ff,#4096ff);border-radius:3px;transition:width .2s ease}.ai-panel .panel-footer .voice-recording-panel{min-height:44px;padding:8px 14px;background:linear-gradient(135deg,#f6ffed,#e6f7ff);border:1px solid #91caff;border-radius:6px;display:flex;flex-direction:column;gap:8px;box-shadow:0 2px 8px #1677ff14}.ai-panel .panel-footer .voice-recording-panel .recording-main{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:28px}.ai-panel .panel-footer .voice-recording-panel .live-transcript{width:100%;max-height:72px;overflow-y:auto;padding:6px 8px;background:#ffffffc7;border-radius:4px;font-size:13px;line-height:1.55;color:#1677ff;word-break:break-all}.ai-panel .panel-footer .voice-recording-panel .live-transcript.empty{color:#8c8c8c}.ai-panel .panel-footer .voice-recording-panel .live-transcript .caret{display:inline-block;margin-left:1px;font-weight:400;color:#1677ff;animation:caret-blink 1s step-end infinite}.ai-panel .panel-footer .voice-recording-panel .recording-status{display:flex;align-items:center;gap:8px}.ai-panel .panel-footer .voice-recording-panel .recording-status .recording-pulse{width:10px;height:10px;border-radius:50%;background:#ff4d4f;box-shadow:0 0 #ff4d4f66;animation:pulse 1.5s infinite}.ai-panel .panel-footer .voice-recording-panel .recording-status .recording-pulse.transcribing{background:#1890ff;box-shadow:0 0 #1890ff66}.ai-panel .panel-footer .voice-recording-panel .recording-status .recording-time{font-family:monospace;font-weight:700;font-size:13px;color:#ff4d4f}.ai-panel .panel-footer .voice-recording-panel .recording-status .recording-hint{font-size:13px;color:#333}.ai-panel .panel-footer .voice-recording-panel .recording-status .volume-waves{display:flex;align-items:center;gap:3px;height:30px;margin-left:4px}.ai-panel .panel-footer .voice-recording-panel .recording-status .volume-waves .wave{width:3px;background:#1890ff;border-radius:2px;transition:height .08s ease}.ai-panel .panel-footer .voice-recording-panel .recording-actions{display:flex;align-items:center;gap:8px}.ai-panel .panel-footer .voice-recording-panel .recording-actions .voice-cancel-btn{color:#8c8c8c;border-color:#d9d9d9}.ai-panel .panel-footer .voice-recording-panel .recording-actions .voice-cancel-btn:hover{color:#ff4d4f;border-color:#ff4d4f;background:#fff1f0}.ai-panel .panel-footer .voice-recording-panel .recording-actions .voice-finish-btn{background:#1677ff;border-color:#1677ff;padding:6px 14px;font-weight:500}.ai-panel .panel-footer .voice-recording-panel .recording-actions .voice-cancel-transcribe-btn{color:#666;border-color:#d9d9d9;background:#fff;font-size:12px;padding:4px 10px;height:28px;transition:all .2s}.ai-panel .panel-footer .voice-recording-panel .recording-actions .voice-cancel-transcribe-btn:hover{color:#ff4d4f;border-color:#ff4d4f;background:#fff1f0}.ai-panel .panel-footer .voice-playback-bar{margin-bottom:8px;height:36px;padding:0 12px;background:#f0f7ff;border:1px solid #bae0ff;border-radius:6px;display:flex;align-items:center;justify-content:space-between;transition:all .2s ease}.ai-panel .panel-footer .voice-playback-bar .playback-main{display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.ai-panel .panel-footer .voice-playback-bar .playback-main .playback-play-icon{width:22px;height:22px;border-radius:50%;background:#1677ff;color:#fff;display:flex;align-items:center;justify-content:center;transition:transform .15s}.ai-panel .panel-footer .voice-playback-bar .playback-main .playback-play-icon:hover{transform:scale(1.1)}.ai-panel .panel-footer .voice-playback-bar .playback-main .playback-title{font-size:13px;color:#1677ff;font-weight:500}.ai-panel .panel-footer .voice-playback-bar .playback-main .playback-time{font-size:12px;color:#8c8c8c;font-family:monospace}.ai-panel .panel-footer .voice-playback-bar .playback-main .playback-waves{display:flex;align-items:flex-end;gap:2px;height:14px;margin-left:4px}.ai-panel .panel-footer .voice-playback-bar .playback-main .playback-waves .wave-bar{width:2px;background:#1677ff;border-radius:1px;animation:soundWave .8s ease-in-out infinite alternate}.ai-panel .panel-footer .voice-playback-bar .playback-main .playback-waves .wave-bar:nth-child(1){height:6px;animation-delay:0s}.ai-panel .panel-footer .voice-playback-bar .playback-main .playback-waves .wave-bar:nth-child(2){height:12px;animation-delay:.2s}.ai-panel .panel-footer .voice-playback-bar .playback-main .playback-waves .wave-bar:nth-child(3){height:8px;animation-delay:.4s}.ai-panel .panel-footer .voice-playback-bar .playback-main .playback-waves .wave-bar:nth-child(4){height:14px;animation-delay:.1s}.ai-panel .panel-footer .voice-playback-bar .playback-close{cursor:pointer;color:#8c8c8c;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .2s}.ai-panel .panel-footer .voice-playback-bar .playback-close:hover{color:#ff4d4f;background:#fff1f0}.ai-panel .panel-footer .input-box .el-input-group{height:40px;border-radius:4px}.ai-panel .panel-footer .input-box :deep(.el-input__wrapper){box-shadow:none}.ai-panel .panel-footer .input-box :deep(.el-input-group__append){box-shadow:none;background:transparent;padding:8px 12px}.ai-panel .panel-footer .input-box .input-actions-box{display:flex;align-items:center;gap:12px}.ai-panel .panel-footer .input-box .input-actions-box .voice-upload-btn{display:flex;align-items:center;justify-content:center;cursor:pointer;color:#666;transition:all .2s;padding:4px;border-radius:4px}.ai-panel .panel-footer .input-box .input-actions-box .voice-upload-btn:hover{color:#1677ff;background:#f0f7ff;transform:scale(1.08)}.ai-panel .panel-footer .input-box .input-actions-box .voice-mic-btn{display:flex;align-items:center;justify-content:center;cursor:pointer;color:#666;transition:all .2s;padding:4px;border-radius:4px}.ai-panel .panel-footer .input-box .input-actions-box .voice-mic-btn:hover{color:#1677ff;background:#f0f7ff;transform:scale(1.08)}.ai-panel .panel-footer .input-box .input-actions-box .voice-mic-btn.loading-anim{color:#1677ff}.ai-panel .panel-footer .input-box .input-actions-box .voice-mic-btn.loading-anim svg{animation:mic-breathe 1.2s ease-in-out infinite;transform-origin:center}.ai-panel .panel-footer .input-box .input-actions-box .send-icon-box{display:flex;align-items:center;justify-content:center;cursor:pointer}.ai-panel .panel-footer .input-box .el-input-group__append{background-color:transparent}@keyframes soundWave{0%{height:3px}to{height:14px}}@keyframes pulse{0%{box-shadow:0 0 #ff4d4fb3}70%{box-shadow:0 0 0 8px #ff4d4f00}to{box-shadow:0 0 #ff4d4f00}}@keyframes caret-blink{0%,to{opacity:1}50%{opacity:0}}@keyframes mic-breathe{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.22);opacity:.72}}.ai-assistant{box-sizing:border-box;position:fixed;right:20px;bottom:40px;z-index:1000;display:flex;align-items:flex-end}.ai-assistant div{box-sizing:border-box}.ai-assistant .ai-icon{box-sizing:border-box;display:flex;flex-direction:column;align-items:center;cursor:pointer;width:44px;padding:6px;transition:all .3s;height:114px;background-color:#fff;box-shadow:0 4px 16px 4px #00000008,0 2px 8px #0000000d,0 0 4px -2px #00000014;border-radius:22px;border:1px solid transparent;background-image:linear-gradient(#fff,#fff),linear-gradient(180deg,#60fffc,#0a84ff);background-origin:border-box;background-clip:padding-box,border-box}.ai-assistant .ai-icon:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00000026}.ai-assistant .ai-icon img{width:32px;height:32px;margin-bottom:6px}.ai-assistant .ai-icon .ai-icon-text{display:inline-block;width:20px;font-size:16px;line-height:18px;font-weight:700;color:#333}.ai-assistant .ai-icon:hover .close-icon{display:flex}.ai-assistant .ai-icon .close-icon{display:none;position:absolute;top:-6px;right:-6px;width:16px;height:16px;background:#fff;border-radius:50%;align-items:center;justify-content:center;box-shadow:0 2px 4px #0000001a;color:#666;cursor:pointer;z-index:1}.ai-assistant .ai-icon .close-icon:hover{color:#333;background:#f5f5f5}.ai-chat-plain{box-sizing:border-box;position:relative;width:100%;height:100%}.ai-chat-plain div{box-sizing:border-box}
9
+ */pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#f3f3f3;color:#444}.hljs-comment{color:#697070}.hljs-punctuation,.hljs-tag{color:#444a}.hljs-tag .hljs-attr,.hljs-tag .hljs-name{color:#444}.hljs-attribute,.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-name,.hljs-selector-tag{font-weight:700}.hljs-deletion,.hljs-number,.hljs-quote,.hljs-selector-class,.hljs-selector-id,.hljs-string,.hljs-template-tag,.hljs-type{color:#800}.hljs-section,.hljs-title{color:#800;font-weight:700}.hljs-link,.hljs-operator,.hljs-regexp,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-symbol,.hljs-template-variable,.hljs-variable{color:#ab5656}.hljs-literal{color:#695}.hljs-addition,.hljs-built_in,.hljs-bullet,.hljs-code{color:#397300}.hljs-meta{color:#1f7199}.hljs-meta .hljs-string{color:#38a}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.slide-enter-active,.slide-leave-active{transition:transform .3s ease}.slide-enter-from,.slide-leave-to{transform:translate(30px)}.ai-panel{margin-right:20px;width:400px;height:804px;background:#fff;border-radius:8px;box-shadow:0 8px 24px #00000026;display:flex;flex-direction:column;overflow:hidden;background-image:url(/images/ai-panel-bg.png);background-size:100% auto;background-position:top;background-repeat:no-repeat;position:relative;transition:all .3s ease}.ai-panel .el-input,.ai-panel .el-textarea{--el-input-text-color: #333333;--el-input-placeholder-color: #a8abb2;--el-input-bg-color: #ffffff}.ai-panel .el-input__inner,.ai-panel .el-textarea__inner{color:#333}.ai-panel .el-input__inner::placeholder,.ai-panel .el-textarea__inner::placeholder{color:#a8abb2}.ai-panel :deep(.el-input-group__append){box-sizing:border-box}.ai-panel.drawer-mode{position:fixed;right:0;top:0;bottom:0;height:100vh;margin:0;border-radius:0;z-index:2000}.ai-panel.embedded-mode{width:100%;height:100%;margin:0;box-shadow:none;border-radius:0}.ai-panel .panel-header{padding:20px;background:transparent}.ai-panel .panel-header .header-actions{display:flex;justify-content:space-between;gap:12px;align-items:center}.ai-panel .panel-header .header-actions .header-title{font-family:PingFangSC,PingFang SC;font-weight:700;font-size:16px;color:#333;line-height:24px;text-align:left;font-style:normal}.ai-panel .panel-header .header-actions .action-icons{display:flex;gap:12px}.ai-panel .panel-header .header-actions .action-icon{font-size:20px;color:#666;cursor:pointer}.ai-panel .panel-header .header-actions .action-icon:hover{color:#333}.ai-panel .body-content{flex:1;overflow:hidden;padding:20px;display:flex;flex-direction:column}.ai-panel .body-content .welcome-content .title{display:flex;flex-direction:column;align-items:center;margin-bottom:8px}.ai-panel .body-content .welcome-content .title .panel-icon{width:64px;height:64px;margin-bottom:16px}.ai-panel .body-content .welcome-content .title .title-text{margin:0;font-size:24px;color:#333;font-weight:500}.ai-panel .body-content .welcome-content .subtitle{text-align:center;font-size:28px;color:#333;line-height:36px;letter-spacing:2px;margin-bottom:20px}.ai-panel .body-content .welcome-content .subtitle .highlight{margin-left:2px;background:linear-gradient(270deg,#e236ffcc,#0a84ff);-webkit-background-clip:text;color:transparent;font-weight:bolder}.ai-panel .body-content .quick-questions .question-item{padding:12px 16px;background:#f5f7fa;border-radius:8px;margin-bottom:12px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:all .3s}.ai-panel .body-content .quick-questions .question-item:hover{background:#e8f4ff;transform:translate(4px)}.ai-panel .body-content .quick-questions .question-item span{font-size:14px;color:#333}.ai-panel .body-content .quick-questions .question-item .el-icon{color:#666}.ai-panel .body-content .chat-messages{flex:1;overflow-y:auto;overflow-x:hidden;height:100%;display:flex;flex-direction:column}.ai-panel .body-content .chat-messages::-webkit-scrollbar{width:0;background:transparent}.ai-panel .body-content .chat-messages{scrollbar-width:none;-ms-overflow-style:none}.ai-panel .body-content .chat-messages .message-item{display:flex;align-items:flex-start;margin-bottom:20px;gap:12px}.ai-panel .body-content .chat-messages .message-item .message-avatar{width:40px;height:40px;border-radius:20px;flex-shrink:0}.ai-panel .body-content .chat-messages .message-item .user-avatar{background:#0a84ff;color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px}.ai-panel .body-content .chat-messages .message-item .message-content{padding:12px 16px;border-radius:2px;max-width:70%;word-break:break-word}.ai-panel .body-content .chat-messages .message-item.ai-message .message-content{background:#f5f7fa;font-size:14px}.ai-panel .body-content .chat-messages .message-item.user-message{flex-direction:row-reverse}.ai-panel .body-content .chat-messages .message-item.user-message .message-content{background:#f1f2f3;border-radius:4px 4px 0;color:#333;font-size:14px}.ai-panel .panel-footer{padding:24px;background:#fff;position:relative}.ai-panel .panel-footer .loading-icon{position:absolute;top:-13px}.ai-panel .panel-footer .voice-progress-banner{margin-bottom:12px;padding:10px 14px;background:linear-gradient(135deg,#f0f7ff,#e6f4ff);border:1px solid #bae0ff;border-radius:8px;display:flex;flex-direction:column;gap:6px}.ai-panel .panel-footer .voice-progress-banner .progress-info{display:flex;align-items:center;gap:8px;font-size:13px;color:#0958d9}.ai-panel .panel-footer .voice-progress-banner .progress-info .progress-icon{font-size:14px}.ai-panel .panel-footer .voice-progress-banner .progress-info .progress-text{flex:1;font-weight:500}.ai-panel .panel-footer .voice-progress-banner .progress-info .progress-percent{font-weight:700;font-family:monospace}.ai-panel .panel-footer .voice-progress-banner .progress-track{height:6px;background:#d9d9d9;border-radius:3px;overflow:hidden}.ai-panel .panel-footer .voice-progress-banner .progress-track .progress-bar{height:100%;background:linear-gradient(90deg,#1677ff,#4096ff);border-radius:3px;transition:width .2s ease}.ai-panel .panel-footer .voice-recording-panel{min-height:44px;padding:8px 14px;background:linear-gradient(135deg,#f6ffed,#e6f7ff);border:1px solid #91caff;border-radius:6px;display:flex;flex-direction:column;gap:8px;box-shadow:0 2px 8px #1677ff14}.ai-panel .panel-footer .voice-recording-panel .recording-main{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:28px}.ai-panel .panel-footer .voice-recording-panel .live-transcript{width:100%;max-height:72px;overflow-y:auto;padding:6px 8px;background:#ffffffc7;border-radius:4px;font-size:13px;line-height:1.55;color:#1677ff;word-break:break-all}.ai-panel .panel-footer .voice-recording-panel .live-transcript.empty{color:#8c8c8c}.ai-panel .panel-footer .voice-recording-panel .live-transcript .caret{display:inline-block;margin-left:1px;font-weight:400;color:#1677ff;animation:caret-blink 1s step-end infinite}.ai-panel .panel-footer .voice-recording-panel .recording-status{display:flex;align-items:center;gap:8px}.ai-panel .panel-footer .voice-recording-panel .recording-status .recording-pulse{width:10px;height:10px;border-radius:50%;background:#ff4d4f;box-shadow:0 0 #ff4d4f66;animation:pulse 1.5s infinite}.ai-panel .panel-footer .voice-recording-panel .recording-status .recording-pulse.transcribing{background:#1890ff;box-shadow:0 0 #1890ff66}.ai-panel .panel-footer .voice-recording-panel .recording-status .recording-time{font-family:monospace;font-weight:700;font-size:13px;color:#ff4d4f}.ai-panel .panel-footer .voice-recording-panel .recording-status .recording-hint{font-size:13px;color:#333}.ai-panel .panel-footer .voice-recording-panel .recording-status .volume-waves{display:flex;align-items:center;gap:3px;height:30px;margin-left:4px}.ai-panel .panel-footer .voice-recording-panel .recording-status .volume-waves .wave{width:3px;background:#1890ff;border-radius:2px;transition:height .08s ease}.ai-panel .panel-footer .voice-recording-panel .recording-actions{display:flex;align-items:center;gap:8px}.ai-panel .panel-footer .voice-recording-panel .recording-actions .voice-cancel-btn{color:#8c8c8c;border-color:#d9d9d9}.ai-panel .panel-footer .voice-recording-panel .recording-actions .voice-cancel-btn:hover{color:#ff4d4f;border-color:#ff4d4f;background:#fff1f0}.ai-panel .panel-footer .voice-recording-panel .recording-actions .voice-finish-btn{background:#1677ff;border-color:#1677ff;padding:6px 14px;font-weight:500}.ai-panel .panel-footer .voice-recording-panel .recording-actions .voice-cancel-transcribe-btn{color:#666;border-color:#d9d9d9;background:#fff;font-size:12px;padding:4px 10px;height:28px;transition:all .2s}.ai-panel .panel-footer .voice-recording-panel .recording-actions .voice-cancel-transcribe-btn:hover{color:#ff4d4f;border-color:#ff4d4f;background:#fff1f0}.ai-panel .panel-footer .voice-playback-bar{margin-bottom:8px;height:36px;padding:0 12px;background:#f0f7ff;border:1px solid #bae0ff;border-radius:6px;display:flex;align-items:center;justify-content:space-between;transition:all .2s ease}.ai-panel .panel-footer .voice-playback-bar .playback-main{display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.ai-panel .panel-footer .voice-playback-bar .playback-main .playback-play-icon{width:22px;height:22px;border-radius:50%;background:#1677ff;color:#fff;display:flex;align-items:center;justify-content:center;transition:transform .15s}.ai-panel .panel-footer .voice-playback-bar .playback-main .playback-play-icon:hover{transform:scale(1.1)}.ai-panel .panel-footer .voice-playback-bar .playback-main .playback-title{font-size:13px;color:#1677ff;font-weight:500}.ai-panel .panel-footer .voice-playback-bar .playback-main .playback-time{font-size:12px;color:#8c8c8c;font-family:monospace}.ai-panel .panel-footer .voice-playback-bar .playback-main .playback-waves{display:flex;align-items:flex-end;gap:2px;height:14px;margin-left:4px}.ai-panel .panel-footer .voice-playback-bar .playback-main .playback-waves .wave-bar{width:2px;background:#1677ff;border-radius:1px;animation:soundWave .8s ease-in-out infinite alternate}.ai-panel .panel-footer .voice-playback-bar .playback-main .playback-waves .wave-bar:nth-child(1){height:6px;animation-delay:0s}.ai-panel .panel-footer .voice-playback-bar .playback-main .playback-waves .wave-bar:nth-child(2){height:12px;animation-delay:.2s}.ai-panel .panel-footer .voice-playback-bar .playback-main .playback-waves .wave-bar:nth-child(3){height:8px;animation-delay:.4s}.ai-panel .panel-footer .voice-playback-bar .playback-main .playback-waves .wave-bar:nth-child(4){height:14px;animation-delay:.1s}.ai-panel .panel-footer .voice-playback-bar .playback-close{cursor:pointer;color:#8c8c8c;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .2s}.ai-panel .panel-footer .voice-playback-bar .playback-close:hover{color:#ff4d4f;background:#fff1f0}.ai-panel .panel-footer .input-box .el-input-group{height:40px;border-radius:4px}.ai-panel .panel-footer .input-box :deep(.el-input__wrapper){box-shadow:none}.ai-panel .panel-footer .input-box :deep(.el-input-group__append){box-shadow:none;background:transparent;padding:8px 12px}.ai-panel .panel-footer .input-box .input-actions-box{display:flex;align-items:center;gap:12px}.ai-panel .panel-footer .input-box .input-actions-box .voice-upload-btn{display:flex;align-items:center;justify-content:center;cursor:pointer;color:#666;transition:all .2s;padding:4px;border-radius:4px}.ai-panel .panel-footer .input-box .input-actions-box .voice-upload-btn:hover{color:#1677ff;background:#f0f7ff;transform:scale(1.08)}.ai-panel .panel-footer .input-box .input-actions-box .voice-mic-btn{display:flex;align-items:center;justify-content:center;cursor:pointer;color:#666;transition:all .2s;padding:4px;border-radius:4px}.ai-panel .panel-footer .input-box .input-actions-box .voice-mic-btn:hover{color:#1677ff;background:#f0f7ff;transform:scale(1.08)}.ai-panel .panel-footer .input-box .input-actions-box .voice-mic-btn.loading-anim{color:#1677ff}.ai-panel .panel-footer .input-box .input-actions-box .voice-mic-btn.loading-anim svg{animation:mic-breathe 1.2s ease-in-out infinite;transform-origin:center}.ai-panel .panel-footer .input-box .input-actions-box .send-icon-box{display:flex;align-items:center;justify-content:center;cursor:pointer}.ai-panel .panel-footer .input-box .el-input-group__append{background-color:transparent}@keyframes soundWave{0%{height:3px}to{height:14px}}@keyframes pulse{0%{box-shadow:0 0 #ff4d4fb3}70%{box-shadow:0 0 0 8px #ff4d4f00}to{box-shadow:0 0 #ff4d4f00}}@keyframes caret-blink{0%,to{opacity:1}50%{opacity:0}}@keyframes mic-breathe{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.22);opacity:.72}}.ai-assistant{box-sizing:border-box;position:fixed;right:20px;bottom:40px;z-index:1000;display:flex;align-items:flex-end}.ai-assistant div{box-sizing:border-box}.ai-assistant .ai-icon{box-sizing:border-box;display:flex;flex-direction:column;align-items:center;cursor:pointer;width:44px;padding:6px;transition:all .3s;height:114px;background-color:#fff;box-shadow:0 4px 16px 4px #00000008,0 2px 8px #0000000d,0 0 4px -2px #00000014;border-radius:22px;border:1px solid transparent;background-image:linear-gradient(#fff,#fff),linear-gradient(180deg,#60fffc,#0a84ff);background-origin:border-box;background-clip:padding-box,border-box}.ai-assistant .ai-icon:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00000026}.ai-assistant .ai-icon img{width:32px;height:32px;margin-bottom:6px}.ai-assistant .ai-icon .ai-icon-text{display:inline-block;width:20px;font-size:16px;line-height:18px;font-weight:700;color:#333}.ai-assistant .ai-icon:hover .close-icon{display:flex}.ai-assistant .ai-icon .close-icon{display:none;position:absolute;top:-6px;right:-6px;width:16px;height:16px;background:#fff;border-radius:50%;align-items:center;justify-content:center;box-shadow:0 2px 4px #0000001a;color:#666;cursor:pointer;z-index:1}.ai-assistant .ai-icon .close-icon:hover{color:#333;background:#f5f5f5}.ai-chat-plain{box-sizing:border-box;position:relative;width:100%;height:100%}.ai-chat-plain div{box-sizing:border-box}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@szjy/ai-coms",
3
- "version": "0.1.12",
3
+ "version": "0.1.14",
4
4
  "description": "vue3 ai component",
5
5
  "main": "dist/index.umd.js",
6
6
  "module": "dist/index.mjs",