@ibiz-template/vue3-components 0.7.41-alpha.40 → 0.7.41-alpha.41

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 (66) hide show
  1. package/dist/ibiz-markdown-editor-DEV-iSvz.js +1 -0
  2. package/dist/index-Bv2fgePf.js +11 -0
  3. package/dist/{index-BewO9StC.js → index-CD2XM6M6.js} +1 -1
  4. package/dist/{index-ClxO69TM.js → index-CaWTEUU1.js} +1 -1
  5. package/dist/index.min.css +1 -1
  6. package/dist/index.system.min.js +1 -1
  7. package/dist/wang-editor-4cNAgOaJ.js +1 -0
  8. package/dist/{xlsx-util-Cg5zMYCC.js → xlsx-util-Dvg2kWh7.js} +1 -1
  9. package/es/control/form/form-detail/form-item/composite-form-item-ex/composite-form-item-ex.controller.mjs +2 -1
  10. package/es/control/form/form-detail/form-item/composite-form-item-ex/composite-form-item-ex.css +1 -1
  11. package/es/control/form/form-detail/form-item/composite-form-item-ex/composite-form-item-ex.mjs +12 -2
  12. package/es/editor/code/monaco-editor/monaco-editor.mjs +41 -32
  13. package/es/editor/html/wang-editor/config/index.mjs +3 -0
  14. package/es/editor/html/wang-editor/config/toolbar.mjs +90 -0
  15. package/es/editor/html/wang-editor/constants/svg.mjs +8 -0
  16. package/es/editor/html/wang-editor/wang-editor.css +1 -1
  17. package/es/editor/html/wang-editor/wang-editor.mjs +52 -39
  18. package/es/editor/markdown/ibiz-markdown-editor/custom-menu.mjs +264 -2
  19. package/es/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.css +1 -1
  20. package/es/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.mjs +38 -6
  21. package/es/editor/markdown/ibiz-markdown-editor/render-util.mjs +33 -4
  22. package/es/editor/text-box/input/input.mjs +41 -32
  23. package/es/index.mjs +1 -1
  24. package/es/locale/en/index.mjs +3 -1
  25. package/es/locale/zh-CN/index.mjs +3 -1
  26. package/es/util/ai-chat-util/ai-chat-util.mjs +216 -0
  27. package/es/util/app-util/app-util.mjs +20 -48
  28. package/es/util/index.mjs +1 -1
  29. package/es/util/inline-ai-util/inline-ai-textarea/icon.mjs +75 -1
  30. package/es/util/inline-ai-util/inline-ai-textarea/inline-ai-textarea.css +1 -1
  31. package/es/util/inline-ai-util/inline-ai-textarea/inline-ai-textarea.hook.mjs +136 -43
  32. package/es/util/inline-ai-util/inline-ai-textarea/inline-ai-textarea.mjs +130 -48
  33. package/es/util/inline-ai-util/inline-ai-util.mjs +2 -1
  34. package/es/web-app/main.mjs +2 -0
  35. package/lib/control/form/form-detail/form-item/composite-form-item-ex/composite-form-item-ex.cjs +12 -2
  36. package/lib/control/form/form-detail/form-item/composite-form-item-ex/composite-form-item-ex.controller.cjs +2 -1
  37. package/lib/control/form/form-detail/form-item/composite-form-item-ex/composite-form-item-ex.css +1 -1
  38. package/lib/editor/code/monaco-editor/monaco-editor.cjs +40 -31
  39. package/lib/editor/html/wang-editor/config/index.cjs +7 -0
  40. package/lib/editor/html/wang-editor/config/toolbar.cjs +92 -0
  41. package/lib/editor/html/wang-editor/constants/svg.cjs +14 -0
  42. package/lib/editor/html/wang-editor/wang-editor.cjs +51 -38
  43. package/lib/editor/html/wang-editor/wang-editor.css +1 -1
  44. package/lib/editor/markdown/ibiz-markdown-editor/custom-menu.cjs +264 -2
  45. package/lib/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.cjs +38 -6
  46. package/lib/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.css +1 -1
  47. package/lib/editor/markdown/ibiz-markdown-editor/render-util.cjs +33 -4
  48. package/lib/editor/text-box/input/input.cjs +40 -31
  49. package/lib/index.cjs +2 -2
  50. package/lib/locale/en/index.cjs +3 -1
  51. package/lib/locale/zh-CN/index.cjs +3 -1
  52. package/lib/util/ai-chat-util/ai-chat-util.cjs +218 -0
  53. package/lib/util/app-util/app-util.cjs +19 -47
  54. package/lib/util/index.cjs +2 -2
  55. package/lib/util/inline-ai-util/inline-ai-textarea/icon.cjs +78 -0
  56. package/lib/util/inline-ai-util/inline-ai-textarea/inline-ai-textarea.cjs +129 -47
  57. package/lib/util/inline-ai-util/inline-ai-textarea/inline-ai-textarea.css +1 -1
  58. package/lib/util/inline-ai-util/inline-ai-textarea/inline-ai-textarea.hook.cjs +135 -42
  59. package/lib/util/inline-ai-util/inline-ai-util.cjs +2 -1
  60. package/lib/web-app/main.cjs +2 -0
  61. package/package.json +5 -5
  62. package/dist/ibiz-markdown-editor-CxFS8frQ.js +0 -1
  63. package/dist/index-2eZnbrr4.js +0 -11
  64. package/dist/wang-editor-BPl509oX.js +0 -1
  65. package/es/util/ai-util/ai-util.mjs +0 -68
  66. package/lib/util/ai-util/ai-util.cjs +0 -71
@@ -0,0 +1,216 @@
1
+ import { UtilService } from '@ibiz-template/runtime';
2
+ import { StringUtil } from '@ibiz-template/core';
3
+
4
+ "use strict";
5
+ class AIChatUtil {
6
+ /**
7
+ * 获取AI聊天对象
8
+ */
9
+ async getAIChat() {
10
+ const module = await import('@ibiz-template-plugin/ai-chat');
11
+ const chatInstance = module.chat || module.default.chat;
12
+ return chatInstance;
13
+ }
14
+ /**
15
+ * 添加资源
16
+ * @param resource
17
+ */
18
+ addResource(resource) {
19
+ throw new Error("Method not implemented.");
20
+ }
21
+ /**
22
+ * 获取编辑器扩展AI聊天参数
23
+ * @param editorParams
24
+ * @param context
25
+ * @param params
26
+ * @param data
27
+ */
28
+ getEditorExAIChatParams(editorParams, context, params, data) {
29
+ const containerOptions = {};
30
+ if (editorParams.enableaiminimize) {
31
+ containerOptions.enableAIMinimize = editorParams.enableaiminimize === "true";
32
+ }
33
+ if (editorParams.openmode) {
34
+ containerOptions.openMode = containerOptions.enableAIMinimize ? editorParams.openmode : "default";
35
+ } else {
36
+ containerOptions.enableAIMinimize = ibiz.config.common.enableAIMinimize;
37
+ }
38
+ if (editorParams.autoclose) {
39
+ try {
40
+ const autoClose = JSON.parse(editorParams.autoclose);
41
+ if (!containerOptions.enableAIMinimize && autoClose && autoClose.mode === "minimize") {
42
+ autoClose.mode = "close";
43
+ }
44
+ containerOptions.autoClose = autoClose;
45
+ } catch (error) {
46
+ ibiz.log.error(error);
47
+ }
48
+ }
49
+ const chatOptions = {};
50
+ if (editorParams.srfaiappendcurdata) {
51
+ chatOptions.appendCurData = editorParams.srfaiappendcurdata === "true" ? data : void 0;
52
+ }
53
+ chatOptions.appendCurContent = editorParams.srfaiappendcurcontent ? StringUtil.fill(
54
+ editorParams.srfaiappendcurcontent,
55
+ context,
56
+ params,
57
+ data
58
+ ) : void 0;
59
+ chatOptions.autoQuestion = editorParams.autoquestion !== "false";
60
+ chatOptions.autoFill = editorParams.autofill === "true";
61
+ chatOptions.appendCurResource = editorParams.srfaiappendresource ? StringUtil.fill(editorParams.srfaiappendresource, context, params, data) : void 0;
62
+ if (editorParams.srfmode) {
63
+ chatOptions.srfMode = editorParams.srfmode;
64
+ }
65
+ return { containerOptions, chatOptions };
66
+ }
67
+ /**
68
+ * 获取界面行为扩展AI聊天参数
69
+ * @param context
70
+ * @param params
71
+ * @param data
72
+ */
73
+ getUIActionExAIChatParams(context, params, data) {
74
+ const containerOptions = {};
75
+ if (params.hasOwnProperty("enableaiminimize")) {
76
+ containerOptions.enableAIMinimize = params.enableaiminimize === "true";
77
+ delete params.disableminimize;
78
+ } else {
79
+ containerOptions.enableAIMinimize = ibiz.config.common.enableAIMinimize;
80
+ }
81
+ if (params.hasOwnProperty("openmode")) {
82
+ containerOptions.openMode = containerOptions.enableAIMinimize ? params.openmode : "default";
83
+ delete params.openmode;
84
+ }
85
+ if (params.hasOwnProperty("autoclose")) {
86
+ try {
87
+ const autoClose = JSON.parse(params.autoclose);
88
+ if (!containerOptions.enableAIMinimize && autoClose && autoClose.mode === "minimize") {
89
+ autoClose.mode = "close";
90
+ }
91
+ containerOptions.autoClose = autoClose;
92
+ delete params.autoclose;
93
+ } catch (error) {
94
+ ibiz.log.error(error);
95
+ }
96
+ }
97
+ const chatOptions = {};
98
+ if (context.srfaiappendcurdata === "true") {
99
+ chatOptions.appendCurData = data;
100
+ } else if (params.hasOwnProperty("srfaiappendcurdata")) {
101
+ chatOptions.appendCurData = params.srfaiappendcurdata === "true" ? data : void 0;
102
+ delete params.srfaiappendcurdata;
103
+ }
104
+ if (params.hasOwnProperty("srfaiappendcurcontent")) {
105
+ chatOptions.appendCurContent = StringUtil.fill(
106
+ params.srfaiappendcurcontent,
107
+ context,
108
+ params,
109
+ data
110
+ );
111
+ delete params.srfaiappendcurcontent;
112
+ }
113
+ if (params.hasOwnProperty("autoquestion")) {
114
+ chatOptions.autoQuestion = params.autoquestion !== "false";
115
+ delete params.autoquestion;
116
+ }
117
+ if (params.hasOwnProperty("srfaiappendresource")) {
118
+ chatOptions.appendCurResource = StringUtil.fill(
119
+ params.srfaiappendresource,
120
+ context,
121
+ params,
122
+ data
123
+ );
124
+ delete params.srfaiappendresource;
125
+ }
126
+ if (params.hasOwnProperty("srfmode")) {
127
+ chatOptions.srfMode = params.srfmode;
128
+ delete params.srfmode;
129
+ }
130
+ return { containerOptions, chatOptions };
131
+ }
132
+ /**
133
+ * 计算界面行为扩展AI聊天工具栏项
134
+ * @param deACMode 自填模式
135
+ */
136
+ calcAiToolbarItemsByAc(deACMode) {
137
+ var _a;
138
+ const contentToolbarItems = [];
139
+ const footerToolbarItems = [];
140
+ const questionToolbarItems = [];
141
+ const functionToolbarItems = [];
142
+ const inlineToolbarItems = [];
143
+ const otherToolbarItems = [];
144
+ if (!deACMode || !deACMode.deuiactionGroup) {
145
+ return {
146
+ contentToolbarItems,
147
+ footerToolbarItems,
148
+ questionToolbarItems,
149
+ otherToolbarItems,
150
+ functionToolbarItems,
151
+ inlineToolbarItems
152
+ };
153
+ }
154
+ (_a = deACMode.deuiactionGroup.uiactionGroupDetails) == null ? void 0 : _a.forEach(
155
+ (item) => {
156
+ var _a2, _b, _c, _d, _e, _f, _g, _h;
157
+ const toolbarItem = {
158
+ appId: item.appId,
159
+ id: item.uiactionId,
160
+ label: item.showCaption ? item.caption : "",
161
+ title: item.tooltip,
162
+ icon: {
163
+ showIcon: item.showIcon,
164
+ cssClass: (_a2 = item.sysImage) == null ? void 0 : _a2.cssClass,
165
+ imagePath: (_b = item.sysImage) == null ? void 0 : _b.imagePath
166
+ }
167
+ };
168
+ if (item.sysImage && item.sysImage.imagePath && !item.sysImage.imagePath.startsWith("http")) {
169
+ toolbarItem.icon.imagePath = "".concat(ibiz.env.assetsUrl, "/images/").concat(item.sysImage.imagePath);
170
+ }
171
+ if ((_c = item.uiactionId) == null ? void 0 : _c.startsWith("msg_content_")) {
172
+ contentToolbarItems.push(toolbarItem);
173
+ } else if ((_d = item.uiactionId) == null ? void 0 : _d.startsWith("msg_footer_")) {
174
+ footerToolbarItems.push(toolbarItem);
175
+ } else if ((_e = item.uiactionId) == null ? void 0 : _e.startsWith("question_")) {
176
+ questionToolbarItems.push(toolbarItem);
177
+ } else if ((_f = item.uiactionId) == null ? void 0 : _f.startsWith("function_")) {
178
+ functionToolbarItems.push(toolbarItem);
179
+ } else if (((_g = item.uiactionId) == null ? void 0 : _g.startsWith("inline")) || item.refUIActionGroup && ((_h = item.refUIActionGroup.id) == null ? void 0 : _h.startsWith("inline"))) {
180
+ inlineToolbarItems.push(toolbarItem);
181
+ } else {
182
+ otherToolbarItems.push(toolbarItem);
183
+ }
184
+ }
185
+ );
186
+ return {
187
+ contentToolbarItems,
188
+ footerToolbarItems,
189
+ questionToolbarItems,
190
+ otherToolbarItems,
191
+ functionToolbarItems,
192
+ inlineToolbarItems
193
+ };
194
+ }
195
+ /**
196
+ * 获取AI代理列表
197
+ * @param context
198
+ * @param params
199
+ */
200
+ async getAIAgentList(context, params) {
201
+ const emptyList = [];
202
+ const app = ibiz.hub.getApp(ibiz.env.appId);
203
+ const aiAgentUtil = app.getAppUtil("DYNAMICAIGENT", "CUSTOM");
204
+ if (!aiAgentUtil) {
205
+ return emptyList;
206
+ }
207
+ const utilService = new UtilService(aiAgentUtil);
208
+ const data = await utilService.load("", context, params);
209
+ if (!data || data.length === 0) {
210
+ return emptyList;
211
+ }
212
+ return data;
213
+ }
214
+ }
215
+
216
+ export { AIChatUtil };
@@ -1,8 +1,7 @@
1
1
  import { getDeACMode, calcDeCodeNameById, UIActionUtil, SysUIActionTag, ConfigService } from '@ibiz-template/runtime';
2
2
  import { createUUID } from 'qx-util';
3
- import { StringUtil, IBizContext } from '@ibiz-template/core';
3
+ import { IBizContext } from '@ibiz-template/core';
4
4
  import { route2routePath, useUIStore, routePath2string } from '@ibiz-template/vue3-util';
5
- import { getAIAgentList, calcAiToolbarItemsByAc } from '../ai-util/ai-util.mjs';
6
5
 
7
6
  "use strict";
8
7
  var __defProp = Object.defineProperty;
@@ -184,42 +183,6 @@ class AppUtil {
184
183
  }
185
184
  return true;
186
185
  }
187
- /**
188
- * 计算AI扩展参数
189
- *
190
- * @private
191
- * @param {IData} params
192
- * @return {*} {IData}
193
- */
194
- computeAiExParams(context, params, data) {
195
- const exParams = {};
196
- if (params.hasOwnProperty("autoquestion")) {
197
- exParams.autoQuestion = params.autoquestion !== "false";
198
- delete params.autoquestion;
199
- }
200
- if (params.hasOwnProperty("openmode")) {
201
- exParams.openMode = params.openmode;
202
- delete params.openmode;
203
- }
204
- if (params.hasOwnProperty("autoclose")) {
205
- try {
206
- exParams.autoClose = JSON.parse(params.autoclose);
207
- delete params.autoclose;
208
- } catch (error) {
209
- ibiz.log.error(error);
210
- }
211
- }
212
- if (params.hasOwnProperty("srfaiappendcurcontent")) {
213
- exParams.appendCurContent = StringUtil.fill(
214
- params.srfaiappendcurcontent,
215
- context,
216
- params,
217
- data
218
- );
219
- delete params.srfaiappendcurcontent;
220
- }
221
- return exParams;
222
- }
223
186
  /**
224
187
  * 打开AI聊天
225
188
  *
@@ -237,8 +200,11 @@ class AppUtil {
237
200
  appDEACModeId,
238
201
  appDataEntityId
239
202
  } = chartParams;
240
- const aiAgentlist = await getAIAgentList(context, params);
241
- const exParams = this.computeAiExParams(context, params, data);
203
+ const { containerOptions, chatOptions } = ibiz.aiChatUtil.getUIActionExAIChatParams(context, params, data);
204
+ const aiAgentlist = await ibiz.aiChatUtil.getAIAgentList(
205
+ context,
206
+ params
207
+ );
242
208
  const deACMode = await getDeACMode(
243
209
  appDEACModeId,
244
210
  appDataEntityId,
@@ -251,9 +217,8 @@ class AppUtil {
251
217
  footerToolbarItems,
252
218
  questionToolbarItems,
253
219
  otherToolbarItems
254
- } = calcAiToolbarItemsByAc(deACMode);
255
- const module = await import('@ibiz-template-plugin/ai-chat');
256
- const chatInstance = module.chat || module.default.chat;
220
+ } = ibiz.aiChatUtil.calcAiToolbarItemsByAc(deACMode);
221
+ const chatInstance = await ibiz.aiChatUtil.getAIChat();
257
222
  const messages = [];
258
223
  const appDataEntityName = calcDeCodeNameById(appDataEntityId);
259
224
  let topicId = "".concat(context.srfsystemid, "_").concat(context.srfappid, "_").concat(appDataEntityId, "_").concat(appDEACModeId, "_");
@@ -269,7 +234,8 @@ class AppUtil {
269
234
  mode: "TOPIC",
270
235
  containerOptions: {
271
236
  zIndex: containerZIndex,
272
- enableBackFill: false
237
+ enableBackFill: false,
238
+ ...containerOptions
273
239
  },
274
240
  topicOptions: {
275
241
  appid: ibiz.env.appId,
@@ -303,15 +269,13 @@ class AppUtil {
303
269
  caption: deACMode.logicName,
304
270
  context: { ...context },
305
271
  params: tempParams,
306
- // 界面行为导航上下文参数srfaiappendcurdata,是否传入对象参数,用于历史查询传参
307
- appendCurData: context.srfaiappendcurdata === "true" ? data : void 0,
308
272
  appDataEntityId,
309
273
  contentToolbarItems,
310
274
  footerToolbarItems,
311
275
  questionToolbarItems,
312
276
  otherToolbarItems,
313
277
  aiAgentlist,
314
- question: async (aiChat, ctx, param, other, arr, sessionid, srfaiagent) => {
278
+ question: async (aiChat, ctx, param, other, arr, sessionid, srfaiagent, srfmode) => {
315
279
  id = createUUID();
316
280
  abortController = new AbortController();
317
281
  const deService = await ibiz.hub.getApp(ctx.srfappid).deService.getService(ctx, other.appDataEntityId);
@@ -323,6 +287,9 @@ class AppUtil {
323
287
  if (srfaiagent) {
324
288
  questionRequestData.srfaiagent = srfaiagent;
325
289
  }
290
+ if (srfmode) {
291
+ questionRequestData.mode = srfmode;
292
+ }
326
293
  await deService.aiChatSse(
327
294
  (msg) => {
328
295
  if (msg.actionstate === 20 && msg.actionresult) {
@@ -401,6 +368,11 @@ class AppUtil {
401
368
  srfaiagent: other.srfaiagent
402
369
  });
403
370
  }
371
+ if (other.srfmode) {
372
+ Object.assign(historyRequestData, {
373
+ mode: other.srfmode
374
+ });
375
+ }
404
376
  const result = await deService.aiChatHistory(
405
377
  ctx,
406
378
  param,
@@ -504,7 +476,7 @@ class AppUtil {
504
476
  return result;
505
477
  },
506
478
  // 扩展参数
507
- ...exParams
479
+ ...chatOptions
508
480
  }
509
481
  });
510
482
  });
package/es/util/index.mjs CHANGED
@@ -12,9 +12,9 @@ export { AppUtil } from './app-util/app-util.mjs';
12
12
  export { FullscreenUtil } from './fullscreen/fullscreen-util.mjs';
13
13
  export { parseHtml } from './wang-editor-util/wang-editor-util.mjs';
14
14
  export { useFocusByEnter } from './keydown-util/keydown-util.mjs';
15
- export { calcAiToolbarItemsByAc } from './ai-util/ai-util.mjs';
16
15
  export { convertBtnType } from './button-util/button-util.mjs';
17
16
  export { ArrowLeftBold, ArrowRightBold } from './icon/icon.mjs';
18
17
  export { InLineAIUtil } from './inline-ai-util/inline-ai-util.mjs';
18
+ export { AIChatUtil } from './ai-chat-util/ai-chat-util.mjs';
19
19
 
20
20
  "use strict";
@@ -138,5 +138,79 @@ const CancelIcon = createVNode("svg", {
138
138
  "d": "M4.002 3.403V1a1 1 0 011-1h6.003a1 1 0 011 1v2.403h3.396a.6.6 0 110 1.2h-1.395V15a1 1 0 01-1 1H3a1 1 0 01-1-1V4.603H.6a.6.6 0 110-1.2h3.4zm8.804 1.205H3.2V14.8h9.605V4.608zM5.202 1.2v2.155h5.603V1.2H5.202zm.6 6.417a.6.6 0 011.201 0v4.758a.6.6 0 01-1.2 0V7.617zm3.202 0a.6.6 0 011.2 0v4.758a.6.6 0 01-1.2 0V7.617z",
139
139
  "id": "bbh\u5220\u9664"
140
140
  }, null)])]);
141
+ const LoadingIcon = createVNode("svg", {
142
+ "width": "16",
143
+ "height": "16",
144
+ "viewBox": "0 0 50 50",
145
+ "xmlns": "http://www.w3.org/2000/svg"
146
+ }, [createVNode("circle", {
147
+ "cx": "25",
148
+ "cy": "25",
149
+ "r": "20",
150
+ "fill": "none",
151
+ "stroke": "currentColor",
152
+ "stroke-width": "5",
153
+ "stroke-dasharray": "31.415, 31.415",
154
+ "stroke-linecap": "round"
155
+ }, [createVNode("animateTransform", {
156
+ "attributeName": "transform",
157
+ "type": "rotate",
158
+ "from": "0 25 25",
159
+ "to": "360 25 25",
160
+ "dur": "1s",
161
+ "repeatCount": "indefinite"
162
+ }, null)])]);
163
+ const ThinkSuccessIcon = createVNode("svg", {
164
+ "viewBox": "0 0 16 16",
165
+ "xmlns": "http://www.w3.org/2000/svg",
166
+ "width": "16",
167
+ "height": "16",
168
+ "fill": "currentColor",
169
+ "preserveAspectRatio": "xMidYMid meet",
170
+ "focusable": "false"
171
+ }, [createVNode("g", {
172
+ "id": "agptips/check-circle",
173
+ "stroke-width": "1",
174
+ "fill-rule": "evenodd"
175
+ }, [createVNode("path", {
176
+ "d": "M8 16A8 8 0 118 0a8 8 0 010 16zm0-1.2A6.8 6.8 0 108 1.2a6.8 6.8 0 000 13.6zM5.666 7.207l1.8 1.845 3.482-3.554.857.84-4.34 4.43-2.658-2.723.86-.838z",
177
+ "id": "agp\u5F62\u72B6\u7ED3\u5408"
178
+ }, null)])]);
179
+ const UpIcon = createVNode("svg", {
180
+ "viewBox": "0 0 16 16",
181
+ "xmlns": "http://www.w3.org/2000/svg",
182
+ "width": "16",
183
+ "height": "16",
184
+ "fill": "currentColor",
185
+ "preserveAspectRatio": "xMidYMid meet",
186
+ "focusable": "false",
187
+ "style": "transform: rotate(-90deg);"
188
+ }, [createVNode("g", {
189
+ "id": "abfnavigation/angle-right",
190
+ "stroke-width": "1",
191
+ "fill-rule": "evenodd"
192
+ }, [createVNode("path", {
193
+ "d": "M7.978 11.498l-.005.005L2.3 5.831 3.13 5l4.848 4.848L12.826 5l.83.831-5.673 5.672-.005-.005z",
194
+ "id": "abf\u5F62\u72B6\u7ED3\u5408",
195
+ "transform": "rotate(-90 7.978 8.252)"
196
+ }, null)])]);
197
+ const DownIcon = createVNode("svg", {
198
+ "viewBox": "0 0 16 16",
199
+ "xmlns": "http://www.w3.org/2000/svg",
200
+ "width": "16",
201
+ "height": "16",
202
+ "fill": "currentColor",
203
+ "preserveAspectRatio": "xMidYMid meet",
204
+ "focusable": "false",
205
+ "style": "transform: rotate(90deg);"
206
+ }, [createVNode("g", {
207
+ "id": "abfnavigation/angle-right",
208
+ "stroke-width": "1",
209
+ "fill-rule": "evenodd"
210
+ }, [createVNode("path", {
211
+ "d": "M7.978 11.498l-.005.005L2.3 5.831 3.13 5l4.848 4.848L12.826 5l.83.831-5.673 5.672-.005-.005z",
212
+ "id": "abf\u5F62\u72B6\u7ED3\u5408",
213
+ "transform": "rotate(-90 7.978 8.252)"
214
+ }, null)])]);
141
215
 
142
- export { AIIcon, CancelIcon, CopyTextIcon, RegenerateIcon, ReplaceTextIcon, SendIcon, StopIcon, insertTextIcon };
216
+ export { AIIcon, CancelIcon, CopyTextIcon, DownIcon, LoadingIcon, RegenerateIcon, ReplaceTextIcon, SendIcon, StopIcon, ThinkSuccessIcon, UpIcon, insertTextIcon };
@@ -1 +1 @@
1
- .ibiz-inline-ai-container-context-menu{--ibiz-inline-ai-context-menu-color-bg:var(--ibiz-color-bg-2);--ibiz-inline-ai-context-menu-color-text:var(--ibiz-color-text-0);--ibiz-inline-ai-context-menu-color-bg-active:var(--ibiz-color-fill-0);--mx-menu-text:var(--ibiz-inline-ai-context-menu-color-text);--mx-menu-backgroud:var(--ibiz-inline-ai-context-menu-color-bg);--mx-menu-hover-backgroud:var(--ibiz-inline-ai-context-menu-color-bg-active);--mx-menu-hover-text:var(--ibiz-inline-ai-context-menu-color-text);--mx-menu-open-text:var(--ibiz-inline-ai-context-menu-color-text);--mx-menu-open-backgroud:var(--ibiz-inline-ai-context-menu-color-bg-active);--mx-menu-open-hover-text:var(--ibiz-inline-ai-context-menu-color-text);--mx-menu-open-hover-backgroud:var(--ibiz-inline-ai-context-menu-color-bg-active);--mx-menu-active-backgroud:var(--ibiz-inline-ai-context-menu-color-bg-active);--mx-menu-active-text:var(--ibiz-inline-ai-context-menu-color-text);--mx-menu-backgroud-radius:0}.ibiz-inline-ai-container-context-menu .scroll-content{pointer-events:unset}.ibiz-inline-ai-container-context-menu .mx-context-menu-item{cursor:pointer}.ibiz-inline-ai-textarea-container{--ibiz-inline-ai-textarea-container-color-bg-0:rgb(255, 255, 255);--ibiz-inline-ai-textarea-container-color-bg-1:rgb(249, 249, 249);--ibiz-inline-ai-textarea-container-color-border:rgba(29, 31, 35, 0.1);--ibiz-inline-ai-textarea-container-color-text-0:rgb(29, 31, 35);--ibiz-inline-ai-textarea-container-color-text-1:rgba(29, 31, 35, 0.35);--ibiz-inline-ai-textarea-container-color-text-2:rgb(85, 125, 165);--ibiz-inline-ai-textarea-container-color-text-hove-1:rgb(105, 148, 190);--ibiz-inline-ai-textarea-container-color-bg-hover-1:rgb(217, 236, 255);--ibiz-inline-ai-textarea-container-color-bg-hover-2:rgba(46, 50, 55, 0.05);--ibiz-inline-ai-textarea-container-color-loading:#65b3fc}.ibiz-inline-ai-textarea-container--dark{--ibiz-inline-ai-textarea-container-color-bg-0:rgb(28, 28, 28);--ibiz-inline-ai-textarea-container-color-bg-1:rgb(53, 54, 60);--ibiz-inline-ai-textarea-container-color-border:rgba(255, 255, 255, 0.08);--ibiz-inline-ai-textarea-container-color-text-0:rgb(255, 255, 255);--ibiz-inline-ai-textarea-container-color-text-1:rgba(249, 249, 249, 0.35);--ibiz-inline-ai-textarea-container-color-text-2:rgb(70, 107, 144);--ibiz-inline-ai-textarea-container-color-text-hove-1:rgb(105, 148, 190);--ibiz-inline-ai-textarea-container-color-bg-hover-1:rgba(85, 125, 165, 0.2);--ibiz-inline-ai-textarea-container-color-bg-hover-2:rgb(67, 68, 74);--ibiz-inline-ai-textarea-container-color-loading:rgba(204, 204, 204, 0.6)}.ibiz-inline-ai-textarea-container{position:absolute;z-index:2000;color:var(--ibiz-inline-ai-textarea-container-color-text-0);-webkit-user-select:none;-moz-user-select:none;user-select:none}.ibiz-inline-ai-textarea-container .ibiz-inline-ai-textarea-container__content{border:1px solid var(--ibiz-inline-ai-textarea-container-color-border);border-radius:var(--ibiz-border-radius-small);box-shadow:0 0 16px var(--ibiz-color-shadow)}.ibiz-inline-ai-textarea-container.is-show-ai{border:1px solid var(--ibiz-inline-ai-textarea-container-color-border);border-radius:var(--ibiz-border-radius-small);box-shadow:0 0 16px var(--ibiz-color-shadow)}.ibiz-inline-ai-textarea-container.is-show-ai .ibiz-inline-ai-textarea-container__content{border:none;border-radius:var(--ibiz-border-radius-small) var(--ibiz-border-radius-small) 0 0;box-shadow:none}.ibiz-inline-ai-textarea-container.is-show-ai .ibiz-inline-ai-textarea-container__footer{border-radius:0 0 var(--ibiz-border-radius-small) var(--ibiz-border-radius-small)}.ibiz-inline-ai-textarea-container__content{position:relative;display:flex;gap:var(--ibiz-spacing-tight);padding:var(--ibiz-spacing-base-tight);background-color:var(--ibiz-inline-ai-textarea-container-color-bg-0)}.ibiz-inline-ai-textarea-container__content--prefix{flex-shrink:0;color:var(--ibiz-inline-ai-textarea-container-color-text-1)}.ibiz-inline-ai-textarea-container__content--textarea{position:relative;flex-grow:1}.ibiz-inline-ai-textarea-container__content--textarea textarea{width:100%;height:100%;padding:0;color:var(--ibiz-inline-ai-textarea-container-color-text-0);resize:none;background-color:var(--ibiz-inline-ai-textarea-container-color-bg-0);border:none;outline:0}.ibiz-inline-ai-textarea-container__content--textarea textarea:disabled{background-color:var(--ibiz-inline-ai-textarea-container-color-bg-0)}.ibiz-inline-ai-textarea-container__content--suffix{display:flex;flex-direction:column-reverse;flex-shrink:0}.ibiz-inline-ai-textarea-container__content--sand-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;color:var(--ibiz-inline-ai-textarea-container-color-text-2);cursor:pointer;border-radius:var(--ibiz-spacing-extra-tight)}.ibiz-inline-ai-textarea-container__content--sand-icon:hover{background-color:var(--ibiz-inline-ai-textarea-container-color-bg-hover-1)}.ibiz-inline-ai-textarea-container__content--stop-icon{display:flex;gap:var(--ibiz-spacing-extra-tight);align-items:center;font-size:var(--ibiz-font-size-small);color:var(--ibiz-inline-ai-textarea-container-color-text-1);cursor:pointer}.ibiz-inline-ai-textarea-container__content--stop-icon:hover{color:var(--ibiz-inline-ai-textarea-container-color-text-hove-1)}.ibiz-inline-ai-textarea-container__footer{padding:var(--ibiz-spacing-base-tight) var(--ibiz-spacing-base);font-size:var(--ibiz-font-size-small);color:var(--ibiz-inline-ai-textarea-container-color-text-1);visibility:hidden;background-color:var(--ibiz-inline-ai-textarea-container-color-bg-1);border-top:1px solid var(--ibiz-inline-ai-textarea-container-color-border)}.ibiz-inline-ai-textarea-container__footer.is-show{visibility:visible}.ibiz-inline-ai-textarea-container__actions{position:absolute;width:240px;padding:var(--ibiz-spacing-base-tight) 0;font-size:var(--ibiz-font-size-regular);visibility:hidden;background-color:var(--ibiz-inline-ai-textarea-container-color-bg-0);border:1px solid var(--ibiz-inline-ai-textarea-container-color-border);border-radius:var(--ibiz-border-radius-small);box-shadow:0 0 16px var(--ibiz-color-shadow)}.ibiz-inline-ai-textarea-container__actions.is-show{visibility:visible}.ibiz-inline-ai-textarea-container__actions--action{display:flex;gap:var(--ibiz-spacing-tight);align-items:center;padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base-loose);cursor:pointer}.ibiz-inline-ai-textarea-container__actions--action:hover{background-color:var(--ibiz-inline-ai-textarea-container-color-bg-hover-2)}.ibiz-inline-ai-textarea-container__actions--action.is-danger:hover{color:var(--ibiz-color-danger)}.ibiz-inline-ai-textarea-container__actions--divider{margin:var(--ibiz-spacing-extra-tight) var(--ibiz-spacing-base-loose);border-top:1px solid var(--ibiz-inline-ai-textarea-container-color-border)}.ibiz-inline-ai-textarea-container__loading{position:absolute;top:0;left:0;display:flex;gap:8px;align-items:center;width:100%;height:100%;overflow:hidden}@keyframes bounce{0%,100%,80%{transform:scale(0)}40%{transform:scale(1)}}.ibiz-inline-ai-textarea-container__loading--dot{width:12px;height:12px;background:var(--ibiz-inline-ai-textarea-container-color-loading);border-radius:50%;animation:bounce 1.5s infinite ease-in-out}.ibiz-inline-ai-textarea-container__loading--dot:nth-child(2){animation-delay:.2s}.ibiz-inline-ai-textarea-container__loading--dot:nth-child(3){animation-delay:.4s}
1
+ .ibiz-inline-ai-container-context-menu{--ibiz-inline-ai-context-menu-color-bg:var(--ibiz-color-bg-2);--ibiz-inline-ai-context-menu-color-text:var(--ibiz-color-text-0);--ibiz-inline-ai-context-menu-color-bg-active:var(--ibiz-color-fill-0);--mx-menu-text:var(--ibiz-inline-ai-context-menu-color-text);--mx-menu-backgroud:var(--ibiz-inline-ai-context-menu-color-bg);--mx-menu-hover-backgroud:var(--ibiz-inline-ai-context-menu-color-bg-active);--mx-menu-hover-text:var(--ibiz-inline-ai-context-menu-color-text);--mx-menu-open-text:var(--ibiz-inline-ai-context-menu-color-text);--mx-menu-open-backgroud:var(--ibiz-inline-ai-context-menu-color-bg-active);--mx-menu-open-hover-text:var(--ibiz-inline-ai-context-menu-color-text);--mx-menu-open-hover-backgroud:var(--ibiz-inline-ai-context-menu-color-bg-active);--mx-menu-active-backgroud:var(--ibiz-inline-ai-context-menu-color-bg-active);--mx-menu-active-text:var(--ibiz-inline-ai-context-menu-color-text);--mx-menu-backgroud-radius:0}.ibiz-inline-ai-container-context-menu .scroll-content{pointer-events:unset}.ibiz-inline-ai-container-context-menu .mx-context-menu-item{cursor:pointer}.ibiz-inline-ai-textarea-container{--ibiz-inline-ai-textarea-container-color-bg-0:rgb(255, 255, 255);--ibiz-inline-ai-textarea-container-color-bg-1:rgb(249, 249, 249);--ibiz-inline-ai-textarea-container-color-border:rgba(29, 31, 35, 0.1);--ibiz-inline-ai-textarea-container-color-text-0:rgb(29, 31, 35);--ibiz-inline-ai-textarea-container-color-text-1:rgba(0, 0, 0, 0.45);--ibiz-inline-ai-textarea-container-color-text-2:rgb(85, 125, 165);--ibiz-inline-ai-textarea-container-color-text-hove-1:rgb(105, 148, 190);--ibiz-inline-ai-textarea-container-color-bg-hover-1:rgb(217, 236, 255);--ibiz-inline-ai-textarea-container-color-bg-hover-2:rgba(46, 50, 55, 0.05);--ibiz-inline-ai-textarea-container-color-loading:#65b3fc}.ibiz-inline-ai-textarea-container--dark{--ibiz-inline-ai-textarea-container-color-bg-0:rgb(28, 28, 28);--ibiz-inline-ai-textarea-container-color-bg-1:rgb(53, 54, 60);--ibiz-inline-ai-textarea-container-color-border:rgba(255, 255, 255, 0.08);--ibiz-inline-ai-textarea-container-color-text-0:rgb(255, 255, 255);--ibiz-inline-ai-textarea-container-color-text-1:rgba(249, 249, 249, 0.35);--ibiz-inline-ai-textarea-container-color-text-2:rgb(70, 107, 144);--ibiz-inline-ai-textarea-container-color-text-hove-1:rgb(105, 148, 190);--ibiz-inline-ai-textarea-container-color-bg-hover-1:rgba(85, 125, 165, 0.2);--ibiz-inline-ai-textarea-container-color-bg-hover-2:rgb(67, 68, 74);--ibiz-inline-ai-textarea-container-color-loading:rgba(204, 204, 204, 0.6)}.ibiz-inline-ai-textarea-container{position:absolute;color:var(--ibiz-inline-ai-textarea-container-color-text-0);-webkit-user-select:none;-moz-user-select:none;user-select:none}.ibiz-inline-ai-textarea-container .ibiz-inline-ai-textarea-container__content{border:1px solid var(--ibiz-inline-ai-textarea-container-color-border);border-radius:var(--ibiz-border-radius-small);box-shadow:0 0 16px var(--ibiz-color-shadow)}.ibiz-inline-ai-textarea-container.is-show-ai{border:1px solid var(--ibiz-inline-ai-textarea-container-color-border);border-radius:var(--ibiz-border-radius-small);box-shadow:0 0 16px var(--ibiz-color-shadow)}.ibiz-inline-ai-textarea-container.is-show-ai .ibiz-inline-ai-textarea-container__content{border:none;border-radius:var(--ibiz-border-radius-small) var(--ibiz-border-radius-small) 0 0;box-shadow:none}.ibiz-inline-ai-textarea-container.is-show-ai .ibiz-inline-ai-textarea-container__footer{border-radius:0 0 var(--ibiz-border-radius-small) var(--ibiz-border-radius-small)}.ibiz-inline-ai-textarea-container__content{position:relative;display:flex;gap:var(--ibiz-spacing-tight);padding:var(--ibiz-spacing-base-tight);background-color:var(--ibiz-inline-ai-textarea-container-color-bg-0)}.ibiz-inline-ai-textarea-container__content--prefix{flex-shrink:0;color:var(--ibiz-inline-ai-textarea-container-color-text-1)}.ibiz-inline-ai-textarea-container__content--textarea{position:relative;display:flex;flex-direction:column;flex-grow:1;gap:var(--ibiz-spacing-tight);overflow-y:auto}.ibiz-inline-ai-textarea-container__content--textarea textarea{flex-shrink:0;padding:0;overflow:hidden;color:var(--ibiz-inline-ai-textarea-container-color-text-0);resize:none;background-color:var(--ibiz-inline-ai-textarea-container-color-bg-0);border:none;outline:0;transition:height .3s cubic-bezier(.4,0,.2,1),opacity .3s cubic-bezier(.4,0,.2,1)}.ibiz-inline-ai-textarea-container__content--textarea textarea:disabled{background-color:var(--ibiz-inline-ai-textarea-container-color-bg-0)}.ibiz-inline-ai-textarea-container__content--textarea textarea.is-hidden{display:none}.ibiz-inline-ai-textarea-container__content--suffix{display:flex;flex-direction:column-reverse;flex-shrink:0}.ibiz-inline-ai-textarea-container__content--sand-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;color:var(--ibiz-inline-ai-textarea-container-color-text-2);cursor:pointer;border-radius:var(--ibiz-spacing-extra-tight)}.ibiz-inline-ai-textarea-container__content--sand-icon:hover{background-color:var(--ibiz-inline-ai-textarea-container-color-bg-hover-1)}.ibiz-inline-ai-textarea-container__content--stop-icon{display:flex;gap:var(--ibiz-spacing-extra-tight);align-items:center;font-size:var(--ibiz-font-size-small);color:var(--ibiz-inline-ai-textarea-container-color-text-1);cursor:pointer}.ibiz-inline-ai-textarea-container__content--stop-icon:hover{color:var(--ibiz-inline-ai-textarea-container-color-text-hove-1)}.ibiz-inline-ai-textarea-container__footer{padding:var(--ibiz-spacing-base-tight) var(--ibiz-spacing-base);font-size:var(--ibiz-font-size-small);color:var(--ibiz-inline-ai-textarea-container-color-text-1);background-color:var(--ibiz-inline-ai-textarea-container-color-bg-1);border-top:1px solid var(--ibiz-inline-ai-textarea-container-color-border)}.ibiz-inline-ai-textarea-container__actions{position:absolute;width:240px;padding:var(--ibiz-spacing-base-tight) 0;font-size:var(--ibiz-font-size-regular);background-color:var(--ibiz-inline-ai-textarea-container-color-bg-0);border:1px solid var(--ibiz-inline-ai-textarea-container-color-border);border-radius:var(--ibiz-border-radius-small);box-shadow:0 0 16px var(--ibiz-color-shadow)}.ibiz-inline-ai-textarea-container__actions--action{display:flex;gap:var(--ibiz-spacing-tight);align-items:center;padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base-loose);cursor:pointer}.ibiz-inline-ai-textarea-container__actions--action:hover{background-color:var(--ibiz-inline-ai-textarea-container-color-bg-hover-2)}.ibiz-inline-ai-textarea-container__actions--action.is-danger:hover{color:var(--ibiz-color-danger)}.ibiz-inline-ai-textarea-container__actions--divider{margin:var(--ibiz-spacing-extra-tight) var(--ibiz-spacing-base-loose);border-top:1px solid var(--ibiz-inline-ai-textarea-container-color-border)}.ibiz-inline-ai-textarea-container__error{flex-grow:1;color:var(--ibiz-color-danger)}.ibiz-inline-ai-textarea-container__think{flex-shrink:0;width:100%;height:auto;font-size:var(--ibiz-font-size-small);color:var(--ibiz-inline-ai-textarea-container-color-text-1)}.ibiz-inline-ai-textarea-container__think--header{display:flex;gap:var(--ibiz-spacing-extra-tight);align-items:center;margin-bottom:var(--ibiz-spacing-tight);cursor:pointer}.ibiz-inline-ai-textarea-container__think--header:hover{color:var(--ibiz-inline-ai-textarea-container-color-text-hove-1)}.ibiz-inline-ai-textarea-container__think--state-icon{display:flex;align-items:center;color:var(--ibiz-color-success)}.ibiz-inline-ai-textarea-container__think--state-icon.is-loading{color:var(--ibiz-inline-ai-textarea-container-color-loading)}.ibiz-inline-ai-textarea-container__think--collapse-icon{display:flex;align-items:center}.ibiz-inline-ai-textarea-container__think--content{position:relative;padding-left:var(--ibiz-spacing-tight);word-wrap:break-word;white-space:pre-wrap;transition:height .3s cubic-bezier(.4,0,.2,1),opacity .3s cubic-bezier(.4,0,.2,1)}.ibiz-inline-ai-textarea-container__think--content::before{position:absolute;top:0;bottom:0;left:0;width:2px;content:"";background-color:var(--ibiz-inline-ai-textarea-container-color-border)}.ibiz-inline-ai-textarea-container__loading{position:absolute;top:0;left:0;display:flex;gap:8px;align-items:center;width:100%;height:100%;overflow:hidden}@keyframes bounce{0%,100%,80%{transform:scale(0)}40%{transform:scale(1)}}.ibiz-inline-ai-textarea-container__loading--dot{width:12px;height:12px;background:var(--ibiz-inline-ai-textarea-container-color-loading);border-radius:50%;animation:bounce 1.5s infinite ease-in-out}.ibiz-inline-ai-textarea-container__loading--dot:nth-child(2){animation-delay:.2s}.ibiz-inline-ai-textarea-container__loading--dot:nth-child(3){animation-delay:.4s}