@next-bricks/ai-portal 0.70.0 → 0.70.2

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 (148) hide show
  1. package/dist/bricks.json +42 -42
  2. package/dist/chunks/7202.a893b0e6.js.map +1 -1
  3. package/dist/chunks/action-buttons.68666920.js.map +1 -1
  4. package/dist/chunks/activity-timeline.96e7aaea.js.map +1 -1
  5. package/dist/chunks/ai-agents.cffd08a0.js.map +1 -1
  6. package/dist/chunks/ai-employees.267c3626.js.map +1 -1
  7. package/dist/chunks/blank-state.648eea95.js.map +1 -1
  8. package/dist/chunks/chat-input.444c80bb.js.map +1 -1
  9. package/dist/chunks/chat-panel-welcome.2f7c6c8b.js.map +1 -1
  10. package/dist/chunks/chat-panel.3160f2e8.js.map +1 -1
  11. package/dist/chunks/chat-stream.393c8241.js.map +1 -1
  12. package/dist/chunks/cruise-canvas.bfae3138.js.map +1 -1
  13. package/dist/chunks/dropdown-select.336442ba.js.map +1 -1
  14. package/dist/chunks/elevo-card.49b42ed0.js.map +1 -1
  15. package/dist/chunks/elevo-logo.25e3b889.js.map +1 -1
  16. package/dist/chunks/elevo-sidebar.a197a77f.js.map +1 -1
  17. package/dist/chunks/flow-tabs.ee1290c2.js.map +1 -1
  18. package/dist/chunks/goal-card-list.74ab5767.js.map +1 -1
  19. package/dist/chunks/home-container.f1829834.js.map +1 -1
  20. package/dist/chunks/icon-button.545ffb24.js.map +1 -1
  21. package/dist/chunks/mcp-tools.f132c502.js.map +1 -1
  22. package/dist/chunks/notice-dropdown.63cb2415.js.map +1 -1
  23. package/dist/chunks/page-container.2185f2e0.js.map +1 -1
  24. package/dist/chunks/preview-container.a0ca6e2f.js.map +1 -1
  25. package/dist/chunks/project-knowledges.51731410.js.map +1 -1
  26. package/dist/chunks/running-flow.37a428cf.js.map +1 -1
  27. package/dist/chunks/show-case.44e995fc.js.map +1 -1
  28. package/dist/chunks/show-cases.c3921ea0.js.map +1 -1
  29. package/dist/chunks/space-chat-guide.84f4a1e7.js.map +1 -1
  30. package/dist/chunks/space-logo.994f7a25.js.map +1 -1
  31. package/dist/chunks/space-workbench.8c064898.js.map +1 -1
  32. package/dist/chunks/stage-flow.9b6fad93.js.map +1 -1
  33. package/dist/chunks/stat-with-mini-chart.1509cf8c.js.map +1 -1
  34. package/dist/chunks/sticky-container.d3f7054e.js.map +1 -1
  35. package/dist/chunks/tab-list.ee97567f.js.map +1 -1
  36. package/dist/examples.json +52 -40
  37. package/dist/{index.8e0adc27.js → index.94998c36.js} +2 -2
  38. package/dist/{index.8e0adc27.js.map → index.94998c36.js.map} +1 -1
  39. package/dist/manifest.json +594 -313
  40. package/dist/types.json +796 -796
  41. package/dist-types/action-buttons/index.d.ts +10 -1
  42. package/dist-types/activity-timeline/index.d.ts +10 -1
  43. package/dist-types/ai-agents/index.d.ts +10 -1
  44. package/dist-types/ai-employees/index.d.ts +16 -1
  45. package/dist-types/blank-state/index.d.ts +10 -1
  46. package/dist-types/chat-input/index.d.ts +37 -1
  47. package/dist-types/chat-panel/index.d.ts +45 -3
  48. package/dist-types/chat-stream/index.d.ts +62 -1
  49. package/dist-types/cruise-canvas/index.d.ts +71 -1
  50. package/dist-types/dropdown-select/index.d.ts +3 -1
  51. package/dist-types/elevo-card/index.d.ts +5 -1
  52. package/dist-types/elevo-logo/index.d.ts +3 -1
  53. package/dist-types/elevo-sidebar/index.d.ts +19 -2
  54. package/dist-types/flow-tabs/index.d.ts +5 -1
  55. package/dist-types/gantt-chart/index.d.ts +3 -1
  56. package/dist-types/goal-card-list/index.d.ts +8 -1
  57. package/dist-types/home-container/index.d.ts +4 -1
  58. package/dist-types/icon-button/index.d.ts +4 -1
  59. package/dist-types/mcp-tools/index.d.ts +3 -1
  60. package/dist-types/page-container/index.d.ts +7 -0
  61. package/dist-types/preview-container/index.d.ts +4 -0
  62. package/dist-types/project-knowledges/index.d.ts +5 -0
  63. package/dist-types/running-flow/index.d.ts +3 -0
  64. package/dist-types/show-case/index.d.ts +5 -0
  65. package/dist-types/show-cases/index.d.ts +4 -0
  66. package/dist-types/space-workbench/chat-panel-welcome/index.d.ts +3 -0
  67. package/dist-types/space-workbench/index.d.ts +7 -0
  68. package/dist-types/space-workbench/space-chat-guide/index.d.ts +3 -0
  69. package/dist-types/space-workbench/space-logo/index.d.ts +1 -0
  70. package/dist-types/stage-flow/index.d.ts +21 -0
  71. package/dist-types/stat-with-mini-chart/index.d.ts +10 -0
  72. package/dist-types/sticky-container/index.d.ts +3 -0
  73. package/dist-types/tab-list/index.d.ts +4 -0
  74. package/docs/action-buttons.md +59 -10
  75. package/docs/action-buttons.react.md +80 -0
  76. package/docs/activity-timeline.md +51 -7
  77. package/docs/activity-timeline.react.md +109 -0
  78. package/docs/ai-agents.md +62 -2
  79. package/docs/ai-agents.react.md +73 -0
  80. package/docs/ai-employees.md +76 -2
  81. package/docs/ai-employees.react.md +106 -0
  82. package/docs/blank-state.md +62 -2
  83. package/docs/blank-state.react.md +77 -0
  84. package/docs/chat-box.md +134 -52
  85. package/docs/chat-box.react.md +142 -0
  86. package/docs/chat-input.md +117 -1
  87. package/docs/chat-input.react.md +117 -0
  88. package/docs/chat-panel-welcome.md +39 -0
  89. package/docs/chat-panel-welcome.react.md +41 -0
  90. package/docs/chat-panel.md +86 -3
  91. package/docs/chat-panel.react.md +109 -0
  92. package/docs/chat-stream.md +149 -2
  93. package/docs/chat-stream.react.md +155 -0
  94. package/docs/cruise-canvas.md +159 -0
  95. package/docs/cruise-canvas.react.md +159 -0
  96. package/docs/dropdown-select.md +37 -8
  97. package/docs/dropdown-select.react.md +144 -0
  98. package/docs/elevo-card.md +75 -1
  99. package/docs/elevo-card.react.md +104 -0
  100. package/docs/elevo-logo.md +13 -1
  101. package/docs/elevo-logo.react.md +27 -0
  102. package/docs/elevo-sidebar.md +150 -1
  103. package/docs/elevo-sidebar.react.md +149 -0
  104. package/docs/flow-tabs.md +97 -2
  105. package/docs/flow-tabs.react.md +102 -0
  106. package/docs/gantt-chart.md +101 -0
  107. package/docs/gantt-chart.react.md +125 -0
  108. package/docs/goal-card-list.md +149 -13
  109. package/docs/goal-card-list.react.md +185 -0
  110. package/docs/home-container.md +48 -2
  111. package/docs/home-container.react.md +51 -0
  112. package/docs/icon-button.md +128 -2
  113. package/docs/icon-button.react.md +120 -0
  114. package/docs/mcp-tools.md +105 -2
  115. package/docs/mcp-tools.react.md +117 -0
  116. package/docs/notice-dropdown.md +53 -10
  117. package/docs/notice-dropdown.react.md +167 -0
  118. package/docs/notice-list.md +53 -5
  119. package/docs/notice-list.react.md +121 -0
  120. package/docs/page-container.md +80 -3
  121. package/docs/page-container.react.md +83 -0
  122. package/docs/preview-container.md +22 -32
  123. package/docs/preview-container.react.md +71 -0
  124. package/docs/project-conversations.md +85 -4
  125. package/docs/project-conversations.react.md +110 -0
  126. package/docs/project-knowledges.md +73 -8
  127. package/docs/project-knowledges.react.md +85 -0
  128. package/docs/running-flow.md +57 -2
  129. package/docs/running-flow.react.md +90 -0
  130. package/docs/show-case.md +48 -3
  131. package/docs/show-case.react.md +60 -0
  132. package/docs/show-cases.md +52 -2
  133. package/docs/show-cases.react.md +92 -0
  134. package/docs/space-chat-guide.md +32 -0
  135. package/docs/space-chat-guide.react.md +39 -0
  136. package/docs/space-logo.md +53 -0
  137. package/docs/space-logo.react.md +46 -0
  138. package/docs/space-workbench.md +45 -2
  139. package/docs/space-workbench.react.md +102 -0
  140. package/docs/stage-flow.md +122 -26
  141. package/docs/stage-flow.react.md +112 -0
  142. package/docs/stat-with-mini-chart.md +64 -159
  143. package/docs/stat-with-mini-chart.react.md +113 -0
  144. package/docs/sticky-container.md +56 -3
  145. package/docs/sticky-container.react.md +60 -0
  146. package/docs/tab-list.md +74 -3
  147. package/docs/tab-list.react.md +73 -0
  148. package/package.json +2 -2
@@ -0,0 +1,142 @@
1
+ ---
2
+ tagName: ai-portal.chat-box
3
+ displayName: WrappedAiPortalChatBox
4
+ description: 大型聊天输入框,用于首页,支持命令联想、@提及数字人、文件上传等功能。
5
+ category: ai-portal
6
+ source: "@next-bricks/ai-portal"
7
+ ---
8
+
9
+ # WrappedAiPortalChatBox
10
+
11
+ > 大型聊天输入框,用于首页,支持命令联想、@提及数字人、文件上传等功能。
12
+
13
+ ## 导入
14
+
15
+ ```tsx
16
+ import { WrappedAiPortalChatBox } from "@easyops/wrapped-components";
17
+ ```
18
+
19
+ ## Props
20
+
21
+ | 属性 | 类型 | 必填 | 默认值 | 说明 |
22
+ | ------------- | ---------------------------- | ---- | ------ | ----------------------------------- |
23
+ | disabled | `boolean \| undefined` | 否 | - | 是否禁用输入框 |
24
+ | placeholder | `string \| undefined` | 否 | - | 输入框占位文字 |
25
+ | autoFocus | `boolean \| undefined` | 否 | - | 是否自动聚焦 |
26
+ | aiEmployees | `AIEmployee[] \| undefined` | 否 | - | 可 @ 提及的数字人列表 |
27
+ | commands | `Command[] \| undefined` | 否 | - | 命令列表,支持通过 / 或搜索触发联想 |
28
+ | uploadOptions | `UploadOptions \| undefined` | 否 | - | 文件上传配置 |
29
+
30
+ ## Events
31
+
32
+ | 事件 | detail | 说明 |
33
+ | --------------- | ----------------------------------------------------------------------------------------------------------- | ------------------------------------------------- |
34
+ | onMessageSubmit | `string` — 用户输入的消息文本内容 | 用户提交消息时触发(已废弃,请使用 onChatSubmit) |
35
+ | onChatSubmit | `ChatPayload` — { content: 消息内容, files: 上传的文件列表, cmd: 命令载荷, aiEmployeeId: @提及的数字人 ID } | 用户提交聊天消息时触发 |
36
+
37
+ ## Methods
38
+
39
+ | 方法 | 参数 | 返回值 | 说明 |
40
+ | ------------ | ------------------------- | ------ | ------------------ |
41
+ | setValue | `(value: string) => void` | `void` | 设置输入框的值 |
42
+ | getValue | `() => void` | `void` | 获取输入框当前的值 |
43
+ | focusOnInput | `() => void` | `void` | 使输入框获得焦点 |
44
+
45
+ ## Slots
46
+
47
+ | 名称 | 说明 |
48
+ | ------- | -------------------------------------------- |
49
+ | actions | 操作栏左侧插槽,用于放置动作按钮等自定义内容 |
50
+
51
+ ## Examples
52
+
53
+ ### Basic
54
+
55
+ 展示大型聊天输入框的基本用法,配置占位文字和提交事件监听。
56
+
57
+ ```tsx
58
+ <WrappedAiPortalChatBox
59
+ placeholder="请输入您的问题,按 Enter 发送"
60
+ onChatSubmit={(e) => console.log(e.detail)}
61
+ />
62
+ ```
63
+
64
+ ### With Action Buttons
65
+
66
+ 通过 actions 插槽添加动作按钮,实现深度思考和联网搜索等功能入口。
67
+
68
+ ```tsx
69
+ <WrappedAiPortalChatBox
70
+ placeholder="请输入您的问题"
71
+ onChatSubmit={(e) => console.log(e.detail)}
72
+ >
73
+ <WrappedAiPortalActionButtons
74
+ slot="actions"
75
+ items={[
76
+ {
77
+ key: "think",
78
+ text: "深度思考",
79
+ icon: { lib: "antd", theme: "outlined", icon: "reddit" },
80
+ },
81
+ {
82
+ key: "networking",
83
+ text: "联网搜索",
84
+ icon: { lib: "antd", theme: "outlined", icon: "global" },
85
+ },
86
+ ]}
87
+ />
88
+ </WrappedAiPortalChatBox>
89
+ ```
90
+
91
+ ### With File Upload
92
+
93
+ 配置 uploadOptions 属性,启用文件上传功能。
94
+
95
+ ```tsx
96
+ <WrappedAiPortalChatBox
97
+ placeholder="请输入您的问题,或拖入文件"
98
+ uploadOptions={{
99
+ enabled: true,
100
+ accept: "image/*,.pdf",
101
+ maxFiles: 5,
102
+ maxSize: 10485760,
103
+ readableAccept: "图片或 PDF",
104
+ readableMaxSize: "10MB",
105
+ }}
106
+ onChatSubmit={(e) => console.log(e.detail)}
107
+ />
108
+ ```
109
+
110
+ ### With AI Employees
111
+
112
+ 配置 aiEmployees 属性,支持在输入时 @ 提及数字人。
113
+
114
+ ```tsx
115
+ <WrappedAiPortalChatBox
116
+ placeholder="输入 @ 可提及数字人"
117
+ aiEmployees={[
118
+ { employeeId: "emp001", name: "运维工程师小李" },
119
+ { employeeId: "emp002", name: "数据分析师小张" },
120
+ ]}
121
+ onChatSubmit={(e) => console.log(e.detail)}
122
+ />
123
+ ```
124
+
125
+ ### Programmatic Control
126
+
127
+ 通过方法调用控制输入框,实现预填内容和焦点管理。
128
+
129
+ ```tsx
130
+ const ref = useRef<any>();
131
+
132
+ <>
133
+ <button onClick={() => ref.current?.setValue("如何优化服务器性能?")}>
134
+ 填写示例问题
135
+ </button>
136
+ <WrappedAiPortalChatBox
137
+ ref={ref}
138
+ placeholder="请输入您的问题"
139
+ onChatSubmit={(e) => console.log(e.detail)}
140
+ />
141
+ </>;
142
+ ```
@@ -1,9 +1,125 @@
1
- 构件 `ai-portal.chat-input`
1
+ ---
2
+ tagName: ai-portal.chat-input
3
+ displayName: WrappedAiPortalChatInput
4
+ description: 小型聊天输入框,用于对话等页面,支持命令联想、@提及数字人、文件上传及终止任务等功能。
5
+ category: ai-portal
6
+ source: "@next-bricks/ai-portal"
7
+ ---
8
+
9
+ # ai-portal.chat-input
10
+
11
+ > 小型聊天输入框,用于对话等页面,支持命令联想、@提及数字人、文件上传及终止任务等功能。
12
+
13
+ ## Props
14
+
15
+ | 属性 | 类型 | 必填 | 默认值 | 说明 |
16
+ | -------------------- | -------------------------------- | ---- | ---------- | ------------------------------------------------------- |
17
+ | placeholder | `string \| undefined` | 否 | - | 输入框占位文字 |
18
+ | autoFocus | `boolean \| undefined` | 否 | - | 是否自动聚焦 |
19
+ | submitDisabled | `boolean \| undefined` | 否 | - | 是否禁用发送按钮,通常在 AI 正在处理时设为 true |
20
+ | supportsTerminate | `boolean \| undefined` | 否 | - | 是否显示终止任务按钮,需与 submitDisabled 配合使用 |
21
+ | terminating | `boolean \| undefined` | 否 | - | 是否正在终止任务,为 true 时显示加载状态 |
22
+ | autoFade | `boolean \| undefined` | 否 | - | 是否在输入框为空时自动淡出,通过 CSS 属性选择器控制样式 |
23
+ | uploadOptions | `UploadOptions \| undefined` | 否 | - | 文件上传配置 |
24
+ | aiEmployees | `AIEmployee[] \| undefined` | 否 | - | 可 @ 提及的数字人列表 |
25
+ | commands | `Command[] \| undefined` | 否 | - | 命令列表,支持通过 / 或搜索触发联想 |
26
+ | suggestionsPlacement | `"top" \| "bottom" \| undefined` | 否 | `"bottom"` | 命令/提及联想弹出层的显示位置 |
27
+
28
+ ## Events
29
+
30
+ | 事件 | detail | 说明 |
31
+ | -------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- |
32
+ | message.submit | `string` — 用户输入的消息文本内容 | 用户提交消息时触发(已废弃,请使用 chat.submit 事件) |
33
+ | chat.submit | `ChatPayload` — { content: 消息内容, files: 上传的文件列表, cmd: 命令载荷, aiEmployeeId: @提及的数字人 ID } | 用户提交聊天消息时触发 |
34
+ | terminate | `void` | 点击终止按钮时触发 |
35
+
36
+ ## Methods
37
+
38
+ | 方法 | 参数 | 返回值 | 说明 |
39
+ | -------- | ------------------------- | ------ | -------------------- |
40
+ | setValue | `(value: string) => void` | `void` | 设置输入框的值并聚焦 |
2
41
 
3
42
  ## Examples
4
43
 
5
44
  ### Basic
6
45
 
46
+ 展示小型聊天输入框的基本用法。
47
+
48
+ ```yaml preview
49
+ brick: ai-portal.chat-input
50
+ properties:
51
+ placeholder: 请输入您的问题
52
+ events:
53
+ chat.submit:
54
+ action: console.log
55
+ ```
56
+
57
+ ### With Terminate Support
58
+
59
+ 配置终止任务按钮,在 AI 处理时显示停止操作。
60
+
61
+ ```yaml preview
62
+ brick: ai-portal.chat-input
63
+ properties:
64
+ placeholder: 请输入您的问题
65
+ submitDisabled: true
66
+ supportsTerminate: true
67
+ terminating: false
68
+ events:
69
+ chat.submit:
70
+ action: console.log
71
+ terminate:
72
+ action: console.log
73
+ ```
74
+
75
+ ### With File Upload
76
+
77
+ 配置 uploadOptions 属性,启用文件上传功能。
78
+
79
+ ```yaml preview
80
+ brick: ai-portal.chat-input
81
+ properties:
82
+ placeholder: 请输入您的问题,或拖入文件
83
+ uploadOptions:
84
+ enabled: true
85
+ accept: image/*,.pdf
86
+ maxFiles: 3
87
+ readableAccept: 图片或 PDF
88
+ events:
89
+ chat.submit:
90
+ action: console.log
91
+ ```
92
+
93
+ ### With AI Employees and Commands
94
+
95
+ 同时配置 aiEmployees 和 commands,支持 @ 提及和 / 命令联想。
96
+
97
+ ```yaml preview
98
+ brick: ai-portal.chat-input
99
+ properties:
100
+ placeholder: 输入 / 或 @ 触发联想
101
+ suggestionsPlacement: top
102
+ aiEmployees:
103
+ - employeeId: emp001
104
+ name: 运维工程师小李
105
+ commands:
106
+ - command: analyze
107
+ description: 分析数据
108
+ events:
109
+ chat.submit:
110
+ action: console.log
111
+ ```
112
+
113
+ ### With Auto Fade
114
+
115
+ 启用 autoFade 属性,使输入框在空内容时通过 CSS 淡出。
116
+
7
117
  ```yaml preview
8
118
  brick: ai-portal.chat-input
119
+ properties:
120
+ placeholder: 请输入您的问题
121
+ autoFade: true
122
+ events:
123
+ chat.submit:
124
+ action: console.log
9
125
  ```
@@ -0,0 +1,117 @@
1
+ ---
2
+ tagName: ai-portal.chat-input
3
+ displayName: WrappedAiPortalChatInput
4
+ description: 小型聊天输入框,用于对话等页面,支持命令联想、@提及数字人、文件上传及终止任务等功能。
5
+ category: ai-portal
6
+ source: "@next-bricks/ai-portal"
7
+ ---
8
+
9
+ # WrappedAiPortalChatInput
10
+
11
+ > 小型聊天输入框,用于对话等页面,支持命令联想、@提及数字人、文件上传及终止任务等功能。
12
+
13
+ ## 导入
14
+
15
+ ```tsx
16
+ import { WrappedAiPortalChatInput } from "@easyops/wrapped-components";
17
+ ```
18
+
19
+ ## Props
20
+
21
+ | 属性 | 类型 | 必填 | 默认值 | 说明 |
22
+ | -------------------- | -------------------------------- | ---- | ---------- | ------------------------------------------------------- |
23
+ | placeholder | `string \| undefined` | 否 | - | 输入框占位文字 |
24
+ | autoFocus | `boolean \| undefined` | 否 | - | 是否自动聚焦 |
25
+ | submitDisabled | `boolean \| undefined` | 否 | - | 是否禁用发送按钮,通常在 AI 正在处理时设为 true |
26
+ | supportsTerminate | `boolean \| undefined` | 否 | - | 是否显示终止任务按钮,需与 submitDisabled 配合使用 |
27
+ | terminating | `boolean \| undefined` | 否 | - | 是否正在终止任务,为 true 时显示加载状态 |
28
+ | autoFade | `boolean \| undefined` | 否 | - | 是否在输入框为空时自动淡出,通过 CSS 属性选择器控制样式 |
29
+ | uploadOptions | `UploadOptions \| undefined` | 否 | - | 文件上传配置 |
30
+ | aiEmployees | `AIEmployee[] \| undefined` | 否 | - | 可 @ 提及的数字人列表 |
31
+ | commands | `Command[] \| undefined` | 否 | - | 命令列表,支持通过 / 或搜索触发联想 |
32
+ | suggestionsPlacement | `"top" \| "bottom" \| undefined` | 否 | `"bottom"` | 命令/提及联想弹出层的显示位置 |
33
+
34
+ ## Events
35
+
36
+ | 事件 | detail | 说明 |
37
+ | --------------- | ----------------------------------------------------------------------------------------------------------- | ------------------------------------------------- |
38
+ | onMessageSubmit | `string` — 用户输入的消息文本内容 | 用户提交消息时触发(已废弃,请使用 onChatSubmit) |
39
+ | onChatSubmit | `ChatPayload` — { content: 消息内容, files: 上传的文件列表, cmd: 命令载荷, aiEmployeeId: @提及的数字人 ID } | 用户提交聊天消息时触发 |
40
+ | onTerminate | `void` | 点击终止按钮时触发 |
41
+
42
+ ## Methods
43
+
44
+ | 方法 | 参数 | 返回值 | 说明 |
45
+ | -------- | ------------------------- | ------ | -------------------- |
46
+ | setValue | `(value: string) => void` | `void` | 设置输入框的值并聚焦 |
47
+
48
+ ## Examples
49
+
50
+ ### Basic
51
+
52
+ 展示小型聊天输入框的基本用法。
53
+
54
+ ```tsx
55
+ <WrappedAiPortalChatInput
56
+ placeholder="请输入您的问题"
57
+ onChatSubmit={(e) => console.log(e.detail)}
58
+ />
59
+ ```
60
+
61
+ ### With Terminate Support
62
+
63
+ 配置终止任务按钮,在 AI 处理时显示停止操作。
64
+
65
+ ```tsx
66
+ <WrappedAiPortalChatInput
67
+ placeholder="请输入您的问题"
68
+ submitDisabled={true}
69
+ supportsTerminate={true}
70
+ terminating={false}
71
+ onChatSubmit={(e) => console.log(e.detail)}
72
+ onTerminate={(e) => console.log(e.detail)}
73
+ />
74
+ ```
75
+
76
+ ### With File Upload
77
+
78
+ 配置 uploadOptions 属性,启用文件上传功能。
79
+
80
+ ```tsx
81
+ <WrappedAiPortalChatInput
82
+ placeholder="请输入您的问题,或拖入文件"
83
+ uploadOptions={{
84
+ enabled: true,
85
+ accept: "image/*,.pdf",
86
+ maxFiles: 3,
87
+ readableAccept: "图片或 PDF",
88
+ }}
89
+ onChatSubmit={(e) => console.log(e.detail)}
90
+ />
91
+ ```
92
+
93
+ ### With AI Employees and Commands
94
+
95
+ 同时配置 aiEmployees 和 commands,支持 @ 提及和 / 命令联想。
96
+
97
+ ```tsx
98
+ <WrappedAiPortalChatInput
99
+ placeholder="输入 / 或 @ 触发联想"
100
+ suggestionsPlacement="top"
101
+ aiEmployees={[{ employeeId: "emp001", name: "运维工程师小李" }]}
102
+ commands={[{ command: "analyze", description: "分析数据" }]}
103
+ onChatSubmit={(e) => console.log(e.detail)}
104
+ />
105
+ ```
106
+
107
+ ### With Auto Fade
108
+
109
+ 启用 autoFade 属性,使输入框在空内容时通过 CSS 淡出。
110
+
111
+ ```tsx
112
+ <WrappedAiPortalChatInput
113
+ placeholder="请输入您的问题"
114
+ autoFade={true}
115
+ onChatSubmit={(e) => console.log(e.detail)}
116
+ />
117
+ ```
@@ -0,0 +1,39 @@
1
+ ---
2
+ tagName: ai-portal.chat-panel-welcome
3
+ displayName: WrappedAiPortalChatPanelWelcome
4
+ description: 聊天面板欢迎语构件,展示带有 Elevo 头像的欢迎消息。
5
+ category: ""
6
+ source: "@next-bricks/ai-portal"
7
+ ---
8
+
9
+ # ai-portal.chat-panel-welcome
10
+
11
+ > 聊天面板欢迎语构件,展示带有 Elevo 头像的欢迎消息。
12
+
13
+ ## Props
14
+
15
+ | 属性 | 类型 | 必填 | 默认值 | 说明 |
16
+ | ---- | -------- | ---- | ------ | -------------- |
17
+ | text | `string` | 否 | - | 欢迎语文本内容 |
18
+
19
+ ## Examples
20
+
21
+ ### 基础使用
22
+
23
+ 展示带 Elevo 头像和欢迎语文本的欢迎消息。
24
+
25
+ ```yaml preview
26
+ brick: ai-portal.chat-panel-welcome
27
+ properties:
28
+ text: "你好!我是 Elevo,你的 AI 助手。有什么可以帮助你的吗?"
29
+ ```
30
+
31
+ ### 自定义欢迎语
32
+
33
+ 根据业务场景配置个性化的欢迎文案。
34
+
35
+ ```yaml preview
36
+ brick: ai-portal.chat-panel-welcome
37
+ properties:
38
+ text: "欢迎来到产品设计空间!我可以帮助你进行需求分析、流程设计和问题排查。"
39
+ ```
@@ -0,0 +1,41 @@
1
+ ---
2
+ tagName: ai-portal.chat-panel-welcome
3
+ displayName: WrappedAiPortalChatPanelWelcome
4
+ description: 聊天面板欢迎语构件,展示带有 Elevo 头像的欢迎消息。
5
+ category: ""
6
+ source: "@next-bricks/ai-portal"
7
+ ---
8
+
9
+ # WrappedAiPortalChatPanelWelcome
10
+
11
+ > 聊天面板欢迎语构件,展示带有 Elevo 头像的欢迎消息。
12
+
13
+ ## 导入
14
+
15
+ ```tsx
16
+ import { WrappedAiPortalChatPanelWelcome } from "@easyops/wrapped-components";
17
+ ```
18
+
19
+ ## Props
20
+
21
+ | 属性 | 类型 | 必填 | 默认值 | 说明 |
22
+ | ---- | -------- | ---- | ------ | -------------- |
23
+ | text | `string` | 否 | - | 欢迎语文本内容 |
24
+
25
+ ## Examples
26
+
27
+ ### 基础使用
28
+
29
+ 展示带 Elevo 头像和欢迎语文本的欢迎消息。
30
+
31
+ ```tsx
32
+ <WrappedAiPortalChatPanelWelcome text="你好!我是 Elevo,你的 AI 助手。有什么可以帮助你的吗?" />
33
+ ```
34
+
35
+ ### 自定义欢迎语
36
+
37
+ 根据业务场景配置个性化的欢迎文案。
38
+
39
+ ```tsx
40
+ <WrappedAiPortalChatPanelWelcome text="欢迎来到产品设计空间!我可以帮助你进行需求分析、流程设计和问题排查。" />
41
+ ```
@@ -1,13 +1,45 @@
1
- 构件 `ai-portal.chat-panel`
1
+ ---
2
+ tagName: ai-portal.chat-panel
3
+ displayName: WrappedAiPortalChatPanel
4
+ description: 弹出式 AI 对话面板,以模态框形式展示对话界面,支持与 AI 助手进行多轮对话。
5
+ category: ai-portal
6
+ source: "@next-bricks/ai-portal"
7
+ ---
2
8
 
3
- ## 介绍
9
+ # ai-portal.chat-panel
4
10
 
5
- 弹出式 AI 对话面板,提供一个模态框样式的聊天界面,支持与 AI 助手进行对话交互。
11
+ > 弹出式 AI 对话面板,以模态框形式展示对话界面,支持与 AI 助手进行多轮对话。
12
+
13
+ ## Props
14
+
15
+ | 属性 | 类型 | 必填 | 默认值 | 说明 |
16
+ | ------------- | ----------------------------------------- | ---- | ------- | ------------------------------------ |
17
+ | panelTitle | `string \| undefined` | 否 | - | 面板标题 |
18
+ | aiEmployeeId | `string \| undefined` | 否 | - | 预设数字人 ID,对话提交时会携带该 ID |
19
+ | cmd | `CommandPayload \| undefined` | 否 | - | 预设命令载荷,对话提交时会携带该命令 |
20
+ | width | `string \| number \| undefined` | 否 | - | 面板宽度 |
21
+ | height | `string \| number \| undefined` | 否 | - | 面板高度 |
22
+ | placeholder | `string \| undefined` | 否 | - | 输入框占位文字 |
23
+ | uploadOptions | `UploadOptions \| undefined` | 否 | - | 文件上传配置 |
24
+ | help | `{ useBrick: UseBrickConf } \| undefined` | 否 | - | 无对话时显示的帮助内容配置 |
25
+ | maskClosable | `boolean \| undefined` | 否 | `false` | 是否点击遮罩关闭面板 |
26
+
27
+ ## Methods
28
+
29
+ | 方法 | 参数 | 返回值 | 说明 |
30
+ | ------------- | -------------------------------- | ------ | -------------------- |
31
+ | open | `() => void` | `void` | 打开对话面板 |
32
+ | close | `() => void` | `void` | 关闭对话面板 |
33
+ | setInputValue | `(content: string) => void` | `void` | 设置输入框的内容 |
34
+ | send | `(payload: ChatPayload) => void` | `void` | 直接发送一条消息 |
35
+ | showFile | `(file: FileInfo) => void` | `void` | 在面板中显示文件预览 |
6
36
 
7
37
  ## Examples
8
38
 
9
39
  ### Basic
10
40
 
41
+ 通过按钮触发打开 AI 对话面板。
42
+
11
43
  ```yaml preview
12
44
  - brick: eo-button
13
45
  properties:
@@ -25,3 +57,54 @@
25
57
  panelTitle: AI 助手
26
58
  placeholder: 请输入您的问题...
27
59
  ```
60
+
61
+ ### With Upload Options
62
+
63
+ 配置文件上传功能的对话面板。
64
+
65
+ ```yaml preview
66
+ - brick: eo-button
67
+ properties:
68
+ themeVariant: elevo
69
+ textContent: 打开对话面板
70
+ events:
71
+ click:
72
+ target: "#chatPanel"
73
+ method: open
74
+ - brick: ai-portal.chat-panel
75
+ properties:
76
+ id: chatPanel
77
+ panelTitle: AI 文档助手
78
+ placeholder: 请上传文件或输入问题
79
+ maskClosable: true
80
+ uploadOptions:
81
+ enabled: true
82
+ accept: .pdf,.docx
83
+ maxFiles: 3
84
+ readableAccept: PDF 或 Word 文档
85
+ ```
86
+
87
+ ### Programmatic Send
88
+
89
+ 通过调用 send 方法直接发起对话。
90
+
91
+ ```yaml preview
92
+ - brick: eo-button
93
+ properties:
94
+ themeVariant: elevo
95
+ textContent: 发起分析请求
96
+ events:
97
+ click:
98
+ - target: "#chatPanel"
99
+ method: open
100
+ - target: "#chatPanel"
101
+ method: send
102
+ args:
103
+ - content: 请帮我分析当前系统的性能瓶颈
104
+ - brick: ai-portal.chat-panel
105
+ properties:
106
+ id: chatPanel
107
+ panelTitle: AI 分析助手
108
+ width: 700
109
+ height: 600
110
+ ```
@@ -0,0 +1,109 @@
1
+ ---
2
+ tagName: ai-portal.chat-panel
3
+ displayName: WrappedAiPortalChatPanel
4
+ description: 弹出式 AI 对话面板,以模态框形式展示对话界面,支持与 AI 助手进行多轮对话。
5
+ category: ai-portal
6
+ source: "@next-bricks/ai-portal"
7
+ ---
8
+
9
+ # WrappedAiPortalChatPanel
10
+
11
+ > 弹出式 AI 对话面板,以模态框形式展示对话界面,支持与 AI 助手进行多轮对话。
12
+
13
+ ## 导入
14
+
15
+ ```tsx
16
+ import { WrappedAiPortalChatPanel } from "@easyops/wrapped-components";
17
+ ```
18
+
19
+ ## Props
20
+
21
+ | 属性 | 类型 | 必填 | 默认值 | 说明 |
22
+ | ------------- | ----------------------------------------- | ---- | ------- | ------------------------------------ |
23
+ | panelTitle | `string \| undefined` | 否 | - | 面板标题 |
24
+ | aiEmployeeId | `string \| undefined` | 否 | - | 预设数字人 ID,对话提交时会携带该 ID |
25
+ | cmd | `CommandPayload \| undefined` | 否 | - | 预设命令载荷,对话提交时会携带该命令 |
26
+ | width | `string \| number \| undefined` | 否 | - | 面板宽度 |
27
+ | height | `string \| number \| undefined` | 否 | - | 面板高度 |
28
+ | placeholder | `string \| undefined` | 否 | - | 输入框占位文字 |
29
+ | uploadOptions | `UploadOptions \| undefined` | 否 | - | 文件上传配置 |
30
+ | help | `{ useBrick: UseBrickConf } \| undefined` | 否 | - | 无对话时显示的帮助内容配置 |
31
+ | maskClosable | `boolean \| undefined` | 否 | `false` | 是否点击遮罩关闭面板 |
32
+
33
+ ## Methods
34
+
35
+ | 方法 | 参数 | 返回值 | 说明 |
36
+ | ------------- | -------------------------------- | ------ | -------------------- |
37
+ | open | `() => void` | `void` | 打开对话面板 |
38
+ | close | `() => void` | `void` | 关闭对话面板 |
39
+ | setInputValue | `(content: string) => void` | `void` | 设置输入框的内容 |
40
+ | send | `(payload: ChatPayload) => void` | `void` | 直接发送一条消息 |
41
+ | showFile | `(file: FileInfo) => void` | `void` | 在面板中显示文件预览 |
42
+
43
+ ## Examples
44
+
45
+ ### Basic
46
+
47
+ 通过按钮触发打开 AI 对话面板。
48
+
49
+ ```tsx
50
+ const ref = useRef<any>();
51
+
52
+ <>
53
+ <button onClick={() => ref.current?.open()}>打开对话面板</button>
54
+ <WrappedAiPortalChatPanel
55
+ ref={ref}
56
+ width={600}
57
+ height={800}
58
+ panelTitle="AI 助手"
59
+ placeholder="请输入您的问题..."
60
+ />
61
+ </>;
62
+ ```
63
+
64
+ ### With Upload Options
65
+
66
+ 配置文件上传功能的对话面板。
67
+
68
+ ```tsx
69
+ const ref = useRef<any>();
70
+
71
+ <>
72
+ <button onClick={() => ref.current?.open()}>打开对话面板</button>
73
+ <WrappedAiPortalChatPanel
74
+ ref={ref}
75
+ panelTitle="AI 文档助手"
76
+ placeholder="请上传文件或输入问题"
77
+ maskClosable={true}
78
+ uploadOptions={{
79
+ enabled: true,
80
+ accept: ".pdf,.docx",
81
+ maxFiles: 3,
82
+ readableAccept: "PDF 或 Word 文档",
83
+ }}
84
+ />
85
+ </>;
86
+ ```
87
+
88
+ ### Programmatic Send
89
+
90
+ 通过调用 send 方法直接发起对话。
91
+
92
+ ```tsx
93
+ const ref = useRef<any>();
94
+
95
+ const handleAnalyze = () => {
96
+ ref.current?.open();
97
+ ref.current?.send({ content: "请帮我分析当前系统的性能瓶颈" });
98
+ };
99
+
100
+ <>
101
+ <button onClick={handleAnalyze}>发起分析请求</button>
102
+ <WrappedAiPortalChatPanel
103
+ ref={ref}
104
+ panelTitle="AI 分析助手"
105
+ width={700}
106
+ height={600}
107
+ />
108
+ </>;
109
+ ```