@blueking/chat-x 0.0.50 → 0.0.51-beta.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 (147) hide show
  1. package/dist/ag-ui/types/contents.d.ts +2 -0
  2. package/dist/ag-ui/types/messages.d.ts +5 -0
  3. package/dist/common/constants.d.ts +1 -1
  4. package/dist/components/ai-buttons/file-upload-btn/file-upload-btn.vue.d.ts +0 -2
  5. package/dist/components/chat-content/file-content/file-content.vue.d.ts +5 -2
  6. package/dist/components/chat-content/file-content/upload-file-item.vue.d.ts +12 -0
  7. package/dist/components/chat-content/file-content/upload-image-item.vue.d.ts +21 -0
  8. package/dist/components/chat-input/ai-slash-editor/ai-slash-editor.vue.d.ts +1 -1
  9. package/dist/components/chat-input/build-default-placeholder.d.ts +7 -0
  10. package/dist/components/chat-input/chat-input.vue.d.ts +1 -1
  11. package/dist/components/chat-message/message-container/message-container.vue.d.ts +1 -0
  12. package/dist/components/chat-message/message-render/message-render.vue.d.ts +2 -0
  13. package/dist/components/chat-message/user-message/user-message.vue.d.ts +3 -1
  14. package/dist/components/index.d.ts +2 -1
  15. package/dist/components/message-tools/message-time/format-message-time.d.ts +8 -0
  16. package/dist/components/message-tools/message-time/message-time.vue.d.ts +8 -0
  17. package/dist/components/message-tools/message-tools.vue.d.ts +11 -1
  18. package/dist/composables/use-custom-tab.d.ts +5 -3
  19. package/dist/composables/use-global-config.d.ts +3 -0
  20. package/dist/composables/use-message-group.d.ts +150 -72
  21. package/dist/icons/execution.d.ts +6 -0
  22. package/dist/icons/tools.d.ts +3 -0
  23. package/dist/index.css +1 -1
  24. package/dist/index.js +3124 -2837
  25. package/dist/index.js.map +1 -1
  26. package/dist/lang/lang.d.ts +8 -7
  27. package/dist/mcp/generated/docs/ai-slash-input.md +2 -0
  28. package/dist/mcp/generated/docs/assistant-message.md +9 -7
  29. package/dist/mcp/generated/docs/chat-container.md +38 -32
  30. package/dist/mcp/generated/docs/chat-input.md +18 -12
  31. package/dist/mcp/generated/docs/cite-content.md +3 -3
  32. package/dist/mcp/generated/docs/desc-panel.md +32 -10
  33. package/dist/mcp/generated/docs/execution-summary.md +3 -3
  34. package/dist/mcp/generated/docs/file-artifact-panel.md +6 -4
  35. package/dist/mcp/generated/docs/file-content.md +89 -73
  36. package/dist/mcp/generated/docs/file-upload-btn.md +16 -18
  37. package/dist/mcp/generated/docs/message-container.md +3 -0
  38. package/dist/mcp/generated/docs/message-render.md +2 -1
  39. package/dist/mcp/generated/docs/message-time.md +180 -0
  40. package/dist/mcp/generated/docs/message-tools.md +47 -12
  41. package/dist/mcp/generated/docs/messages.md +9 -0
  42. package/dist/mcp/generated/docs/toolcall-render.md +82 -43
  43. package/dist/mcp/generated/docs/use-artifact-preview.md +19 -17
  44. package/dist/mcp/generated/docs/use-custom-tab.md +12 -8
  45. package/dist/mcp/generated/docs/use-global-config.md +15 -5
  46. package/dist/mcp/generated/docs/user-message.md +9 -0
  47. package/dist/mcp/generated/docs/user-question-card.md +2 -0
  48. package/dist/mcp/generated/index.json +46 -6
  49. package/dist/types/input.d.ts +6 -0
  50. package/dist/utils/file.d.ts +7 -1
  51. package/dist/utils/index.d.ts +2 -0
  52. package/dist/utils/merge-tools-by-id.d.ts +6 -0
  53. package/dist/utils/upload-file.d.ts +35 -0
  54. package/package.json +3 -2
  55. package/skills/blueking-chat-x/SKILL.md +139 -0
  56. package/skills/blueking-chat-x/references/_index.md +131 -0
  57. package/skills/blueking-chat-x/references/components/activity-layout.md +134 -0
  58. package/skills/blueking-chat-x/references/components/activity-message.md +486 -0
  59. package/skills/blueking-chat-x/references/components/ai-image.md +230 -0
  60. package/skills/blueking-chat-x/references/components/ai-loading.md +131 -0
  61. package/skills/blueking-chat-x/references/components/ai-prompt-list.md +44 -0
  62. package/skills/blueking-chat-x/references/components/ai-selection.md +439 -0
  63. package/skills/blueking-chat-x/references/components/ai-skill-list.md +73 -0
  64. package/skills/blueking-chat-x/references/components/ai-slash-editor.md +43 -0
  65. package/skills/blueking-chat-x/references/components/ai-slash-input.md +56 -0
  66. package/skills/blueking-chat-x/references/components/ai-slash-menu.md +42 -0
  67. package/skills/blueking-chat-x/references/components/animation-text.md +202 -0
  68. package/skills/blueking-chat-x/references/components/assistant-message.md +498 -0
  69. package/skills/blueking-chat-x/references/components/chat-container.md +869 -0
  70. package/skills/blueking-chat-x/references/components/chat-input.md +769 -0
  71. package/skills/blueking-chat-x/references/components/cite-content.md +142 -0
  72. package/skills/blueking-chat-x/references/components/code-content.md +211 -0
  73. package/skills/blueking-chat-x/references/components/common-error-content.md +73 -0
  74. package/skills/blueking-chat-x/references/components/content-render.md +233 -0
  75. package/skills/blueking-chat-x/references/components/delete-tool.md +191 -0
  76. package/skills/blueking-chat-x/references/components/desc-panel.md +162 -0
  77. package/skills/blueking-chat-x/references/components/detail-section.md +91 -0
  78. package/skills/blueking-chat-x/references/components/execution-summary.md +128 -0
  79. package/skills/blueking-chat-x/references/components/file-artifact-panel.md +289 -0
  80. package/skills/blueking-chat-x/references/components/file-content.md +319 -0
  81. package/skills/blueking-chat-x/references/components/file-icon.md +109 -0
  82. package/skills/blueking-chat-x/references/components/file-upload-btn.md +159 -0
  83. package/skills/blueking-chat-x/references/components/flow-agent-content.md +264 -0
  84. package/skills/blueking-chat-x/references/components/flow-agent-node-detail.md +236 -0
  85. package/skills/blueking-chat-x/references/components/highlight-keyword.md +146 -0
  86. package/skills/blueking-chat-x/references/components/image-content.md +182 -0
  87. package/skills/blueking-chat-x/references/components/image-preview-group.md +184 -0
  88. package/skills/blueking-chat-x/references/components/image-preview.md +226 -0
  89. package/skills/blueking-chat-x/references/components/info-message.md +144 -0
  90. package/skills/blueking-chat-x/references/components/input-attachment.md +49 -0
  91. package/skills/blueking-chat-x/references/components/input-info-alert.md +42 -0
  92. package/skills/blueking-chat-x/references/components/interrupt-message.md +212 -0
  93. package/skills/blueking-chat-x/references/components/key-value-content.md +128 -0
  94. package/skills/blueking-chat-x/references/components/knowledge-rag-content.md +122 -0
  95. package/skills/blueking-chat-x/references/components/latex-content.md +200 -0
  96. package/skills/blueking-chat-x/references/components/loading-message.md +192 -0
  97. package/skills/blueking-chat-x/references/components/markdown-content.md +232 -0
  98. package/skills/blueking-chat-x/references/components/mermaid-content.md +189 -0
  99. package/skills/blueking-chat-x/references/components/message-container.md +645 -0
  100. package/skills/blueking-chat-x/references/components/message-loading.md +118 -0
  101. package/skills/blueking-chat-x/references/components/message-render.md +327 -0
  102. package/skills/blueking-chat-x/references/components/message-time.md +177 -0
  103. package/skills/blueking-chat-x/references/components/message-tools.md +416 -0
  104. package/skills/blueking-chat-x/references/components/model-selector.md +155 -0
  105. package/skills/blueking-chat-x/references/components/preview-toolbar.md +42 -0
  106. package/skills/blueking-chat-x/references/components/questions-container.md +85 -0
  107. package/skills/blueking-chat-x/references/components/reasoning-message.md +232 -0
  108. package/skills/blueking-chat-x/references/components/reference-content.md +135 -0
  109. package/skills/blueking-chat-x/references/components/reference-doc-content.md +109 -0
  110. package/skills/blueking-chat-x/references/components/scroll-btn.md +159 -0
  111. package/skills/blueking-chat-x/references/components/selection-footer.md +78 -0
  112. package/skills/blueking-chat-x/references/components/selection-question.md +88 -0
  113. package/skills/blueking-chat-x/references/components/shortcut-btn.md +204 -0
  114. package/skills/blueking-chat-x/references/components/shortcut-btns.md +266 -0
  115. package/skills/blueking-chat-x/references/components/shortcut-render.md +424 -0
  116. package/skills/blueking-chat-x/references/components/simple-table.md +101 -0
  117. package/skills/blueking-chat-x/references/components/text-content.md +77 -0
  118. package/skills/blueking-chat-x/references/components/tool-approval-card.md +183 -0
  119. package/skills/blueking-chat-x/references/components/tool-btn.md +317 -0
  120. package/skills/blueking-chat-x/references/components/tool-message.md +235 -0
  121. package/skills/blueking-chat-x/references/components/toolcall-render.md +348 -0
  122. package/skills/blueking-chat-x/references/components/user-feedback.md +233 -0
  123. package/skills/blueking-chat-x/references/components/user-message.md +424 -0
  124. package/skills/blueking-chat-x/references/components/user-question-answered-card.md +104 -0
  125. package/skills/blueking-chat-x/references/components/user-question-card.md +231 -0
  126. package/skills/blueking-chat-x/references/components/user-question-choice.md +105 -0
  127. package/skills/blueking-chat-x/references/components/user-question-option.md +42 -0
  128. package/skills/blueking-chat-x/references/components/vnode-renderer.md +122 -0
  129. package/skills/blueking-chat-x/references/composables/use-animation-text.md +196 -0
  130. package/skills/blueking-chat-x/references/composables/use-artifact-preview.md +231 -0
  131. package/skills/blueking-chat-x/references/composables/use-clipboard.md +203 -0
  132. package/skills/blueking-chat-x/references/composables/use-command-selection.md +150 -0
  133. package/skills/blueking-chat-x/references/composables/use-container-scroll.md +57 -0
  134. package/skills/blueking-chat-x/references/composables/use-custom-tab.md +158 -0
  135. package/skills/blueking-chat-x/references/composables/use-flow-node-actions.md +157 -0
  136. package/skills/blueking-chat-x/references/composables/use-full-screen.md +112 -0
  137. package/skills/blueking-chat-x/references/composables/use-global-config.md +148 -0
  138. package/skills/blueking-chat-x/references/composables/use-menu-keydown.md +163 -0
  139. package/skills/blueking-chat-x/references/composables/use-message-group.md +247 -0
  140. package/skills/blueking-chat-x/references/composables/use-observer-visible-list.md +188 -0
  141. package/skills/blueking-chat-x/references/composables/use-parent-scrolling.md +46 -0
  142. package/skills/blueking-chat-x/references/theme/theme.md +431 -0
  143. package/skills/blueking-chat-x/references/types/constants.md +307 -0
  144. package/skills/blueking-chat-x/references/types/interrupt.md +379 -0
  145. package/skills/blueking-chat-x/references/types/messages.md +553 -0
  146. package/skills/blueking-chat-x/references/types/schema.md +91 -0
  147. package/skills/blueking-chat-x/scripts/generate-references.mjs +314 -0
@@ -0,0 +1,230 @@
1
+ # AiImage 图片展示
2
+
3
+ > 能力域:媒体文件 | 导入:`import { AiImage } from '@blueking/chat-x'` | since 1.0.0
4
+
5
+ 图片展示组件,组合加载、错误、预览和 extra 插槽。 源码位置:src/components/image-preview/image.vue。
6
+
7
+ **关联**:image-preview(独立模式下内嵌全屏预览,单图预览入口)、image-preview-group(组内注册子图并统一打开多图预览)
8
+
9
+ ---
10
+
11
+ # AiImage 图片展示
12
+ ## 源码事实
13
+
14
+ - **源码位置**:`src/components/image-preview/image.vue`
15
+ - **能力域**:媒体文件
16
+ - **能力说明**:图片展示组件,组合加载、错误、预览和 extra 插槽。
17
+
18
+ > **能力域**:媒体文件
19
+
20
+ 图片展示组件,支持加载状态、加载失败重试、懒加载、点击预览等功能。可独立使用(单图预览),也可配合 `ImagePreviewGroup` 实现多图预览。
21
+
22
+ ## 组件结构
23
+
24
+ ```
25
+ .ai-image(display: inline-block,border-radius: 4px)
26
+ ├── <img>(v-if status !== 'error' && actualSrc,object-fit: cover)
27
+ ├── .ai-image-error(v-if status === 'error')
28
+ │ └── ImageErrorIcon(24×24,color: #c4c6cc)
29
+ ├── .ai-image-error-overlay(v-if status === 'error',hover 时显示)
30
+ │ ├── ReloadIcon(16×16)
31
+ │ └── <span>"重新加载"</span>
32
+ ├── <slot />
33
+ └── ImagePreview(v-if !groupContext && preview && previewVisible)
34
+ 独立模式下的内置全屏预览
35
+ ```
36
+
37
+ ## 基础用法
38
+
39
+ ```vue
40
+ <template>
41
+ <AiImage
42
+ src="https://images.unsplash.com/photo-1506744038136-46273834b3fb?w=400&h=300&fit=crop"
43
+ :width="200"
44
+ :height="150"
45
+ alt="风景图"
46
+ @load="handleLoad"
47
+ @error="handleError"
48
+ @preview="handlePreview"
49
+ />
50
+ </template>
51
+
52
+ <script setup lang="ts">
53
+ import { AiImage } from '@blueking/chat-x';
54
+
55
+ const handleLoad = (ev: Event) => {
56
+ console.log('图片加载成功', ev);
57
+ };
58
+
59
+ const handleError = (ev: Event) => {
60
+ console.log('图片加载失败', ev);
61
+ };
62
+
63
+ const handlePreview = () => {
64
+ console.log('触发预览');
65
+ };
66
+ </script>
67
+ ```
68
+
69
+ ## 加载失败与重新加载
70
+
71
+ 当图片加载失败时,显示错误占位图标,鼠标悬停后出现"重新加载"遮罩,点击可重新加载(内部通过追加时间戳参数实现缓存破坏):
72
+
73
+ ```vue
74
+ <template>
75
+ <AiImage
76
+ src="https://invalid-url.example.com/not-exist.png"
77
+ :width="200"
78
+ :height="150"
79
+ />
80
+ </template>
81
+ ```
82
+
83
+ ## 禁用预览
84
+
85
+ 将 `preview` 设为 `false` 可禁用点击预览功能,此时图片不显示 `zoom-in` 光标:
86
+
87
+ ```vue
88
+ <template>
89
+ <AiImage
90
+ src="https://images.unsplash.com/photo-1469474968028-56623f02e42e?w=400&h=300&fit=crop"
91
+ :width="200"
92
+ :height="150"
93
+ :preview="false"
94
+ />
95
+ </template>
96
+ ```
97
+
98
+ ## 预览属性配置
99
+
100
+ 通过 `previewProps` 可为预览弹窗配置不同的图片源(如高清原图)、名称、尺寸信息等:
101
+
102
+ ```vue
103
+ <template>
104
+ <AiImage
105
+ src="https://images.unsplash.com/photo-1447752875215-b2761acb3c5d?w=400&h=300&fit=crop"
106
+ :width="200"
107
+ :height="150"
108
+ :preview-props="{
109
+ src: 'https://images.unsplash.com/photo-1447752875215-b2761acb3c5d?w=1920',
110
+ name: '森林.jpg',
111
+ width: 1920,
112
+ resolution: '1920×1080',
113
+ }"
114
+ :show-info="true"
115
+ />
116
+ </template>
117
+ ```
118
+
119
+ ## 多图预览(配合 ImagePreviewGroup)
120
+
121
+ 将多个 `AiImage` 放在 `ImagePreviewGroup` 中,点击任意图片会打开多图预览模式,支持左右切换:
122
+
123
+ ```vue
124
+ <template>
125
+ <ImagePreviewGroup>
126
+ <AiImage
127
+ v-for="(src, i) in images"
128
+ :key="i"
129
+ :src="src"
130
+ :width="160"
131
+ :height="120"
132
+ />
133
+ </ImagePreviewGroup>
134
+ </template>
135
+
136
+ <script setup lang="ts">
137
+ import { AiImage, ImagePreviewGroup } from '@blueking/chat-x';
138
+
139
+ const images = [
140
+ 'https://images.unsplash.com/photo-1506744038136-46273834b3fb?w=400&h=300&fit=crop',
141
+ 'https://images.unsplash.com/photo-1469474968028-56623f02e42e?w=400&h=300&fit=crop',
142
+ 'https://images.unsplash.com/photo-1447752875215-b2761acb3c5d?w=400&h=300&fit=crop',
143
+ ];
144
+ </script>
145
+ ```
146
+
147
+ ## 自定义下载
148
+
149
+ 通过 `onDownload` 自定义下载行为(例如调用后端接口),不传时使用默认的 `<a>` 标签下载:
150
+
151
+ ```vue
152
+ <template>
153
+ <AiImage
154
+ src="https://images.unsplash.com/photo-1506744038136-46273834b3fb?w=400&h=300&fit=crop"
155
+ :width="200"
156
+ :height="150"
157
+ :on-download="handleDownload"
158
+ />
159
+ </template>
160
+
161
+ <script setup lang="ts">
162
+ import { AiImage } from '@blueking/chat-x';
163
+
164
+ const handleDownload = (url: string) => {
165
+ console.log('自定义下载:', url);
166
+ };
167
+ </script>
168
+ ```
169
+
170
+ ## API
171
+
172
+ ### Props
173
+
174
+ | 属性名 | 类型 | 默认值 | 说明 |
175
+ | ------------ | ----------------------- | ------- | --------------------------------------------------------------- |
176
+ | src | `string` | — | **必填**,图片地址 |
177
+ | alt | `string` | `''` | 图片 alt 属性 |
178
+ | width | `number \| string` | — | 容器宽度,数字时单位为 px |
179
+ | height | `number \| string` | — | 容器高度,数字时单位为 px |
180
+ | lazy | `boolean` | `false` | 是否懒加载(IntersectionObserver,rootMargin: 200px) |
181
+ | preview | `boolean` | `true` | 是否启用点击预览;为 `true` 且图片加载成功时显示 `zoom-in` 光标 |
182
+ | previewProps | `ImagePreviewConfig` | — | 预览弹窗配置(可指定高清源、名称、尺寸等) |
183
+ | showInfo | `boolean` | `false` | 预览工具栏是否显示图片尺寸信息 |
184
+ | onDownload | `(url: string) => void` | — | 自定义下载回调;不传时使用默认 `<a>` 标签下载 |
185
+
186
+ ### Events
187
+
188
+ | 事件名 | 参数 | 说明 |
189
+ | ------- | ------------- | ------------------ |
190
+ | load | `(ev: Event)` | 图片加载成功时触发 |
191
+ | error | `(ev: Event)` | 图片加载失败时触发 |
192
+ | preview | — | 点击触发预览时触发 |
193
+
194
+ ### Slots
195
+
196
+ | 插槽名 | 说明 |
197
+ | ------- | ----------------------------------------------- |
198
+ | default | 覆盖在图片上方的自定义内容 |
199
+ | extra | 预览工具栏的额外操作区域(透传给 ImagePreview) |
200
+
201
+ ### Expose
202
+
203
+ | 属性名 | 类型 | 说明 |
204
+ | -------------- | -------------- | -------------------------------- |
205
+ | previewVisible | `Ref<boolean>` | 当前预览弹窗是否可见(独立模式) |
206
+
207
+ ## 类型定义
208
+
209
+ ```typescript
210
+ interface ImagePreviewConfig {
211
+ src?: string;
212
+ name?: string;
213
+ width?: number;
214
+ height?: number;
215
+ resolution?: string;
216
+ downloadUrl?: string;
217
+ }
218
+ ```
219
+
220
+ ## 使用场景
221
+
222
+ - AI 对话中的图片消息展示
223
+ - 需要点击放大查看的缩略图
224
+ - 多图浏览场景(配合 `ImagePreviewGroup`)
225
+ - 懒加载长列表中的图片
226
+
227
+ ## 关联组件
228
+
229
+ - [ImagePreview](/components/medias/image-preview) — 独立模式下的全屏预览
230
+ - [ImagePreviewGroup](/components/medias/image-preview-group) — 多图注册与预览上下文
@@ -0,0 +1,131 @@
1
+ # AiLoading 三点加载
2
+
3
+ > 能力域:辅助能力 | 导入:`import { AiLoading } from '@blueking/chat-x'` | since 1.0.0
4
+
5
+ 小尺寸 AI 加载动效。 源码位置:src/components/ai-loading/ai-loading.vue。
6
+
7
+ **关联**:loading-message(列表末尾加载占位)、reasoning-message(推理进行中的加载指示)、activity-message(活动消息加载态指示)
8
+
9
+ ---
10
+
11
+ # AiLoading AI 加载动画
12
+ ## 源码事实
13
+
14
+ - **源码位置**:`src/components/ai-loading/ai-loading.vue`
15
+ - **能力域**:辅助能力
16
+ - **能力说明**:小尺寸 AI 加载动效。
17
+
18
+ > **能力域**:辅助能力
19
+
20
+ AI 加载动画基础组件。由两层 SVG 叠加构成:外层旋转光环(带渐变弧线)+ 内层脉冲星形图标,两者共用同一套蓝→紫→粉渐变色。
21
+
22
+ ## 组件结构
23
+
24
+ ```
25
+ .ai-loading(inline-flex,position: relative,width/height 由 size prop 控制)
26
+ │ CSS 同时定义 width/height: 1em 兜底,inline style 优先
27
+
28
+ ├── .ai-loading-ring(position: absolute,svg 100%×100%)
29
+ │ 旋转弧线:ai-loading-rotate 0.8s linear infinite
30
+ │ 渐变:#235DFA → #8A77EC → #EB8CEC(蓝 → 紫 → 粉)
31
+
32
+ └── .ai-loading-star(position: absolute,svg 100%×100%)
33
+ 脉冲星形:ai-loading-pulse 0.8s ease-in-out infinite
34
+ 关键帧:scale(0.5) → scale(1) → scale(0.5)(小→大→小)
35
+ 渐变:同上
36
+
37
+ stopLoading=true → 根元素加 .ai-loading-stopped
38
+ → .ai-loading-stopped .ai-loading-ring { animation-play-state: paused }
39
+ → .ai-loading-stopped .ai-loading-star { animation-play-state: paused }
40
+ ```
41
+
42
+ ## 基础用法
43
+
44
+ ```vue
45
+ <template>
46
+ <AiLoading />
47
+ </template>
48
+
49
+ <script setup lang="ts">
50
+ import { AiLoading } from '@blueking/chat-x';
51
+ </script>
52
+ ```
53
+
54
+ ## 自定义尺寸
55
+
56
+ 通过 `size` 属性控制图标大小(单位 px),默认 `16`:
57
+
58
+ ```vue
59
+ <template>
60
+ <AiLoading />
61
+ <!-- 16px(默认) -->
62
+ <AiLoading :size="24" />
63
+ <AiLoading :size="32" />
64
+ <AiLoading :size="48" />
65
+ </template>
66
+ ```
67
+
68
+ ## 暂停动画
69
+
70
+ `stopLoading` 为 `true` 时,组件根元素添加 `.ai-loading-stopped` class,两层动画同时进入 `paused` 状态(不移除元素,仅冻结帧):
71
+
72
+ ```vue
73
+ <template>
74
+ <AiLoading :stop-loading="isPaused" />
75
+ <button @click="isPaused = !isPaused">
76
+ {{ isPaused ? '恢复' : '暂停' }}
77
+ </button>
78
+ </template>
79
+
80
+ <script setup lang="ts">
81
+ import { ref } from 'vue';
82
+ import { AiLoading } from '@blueking/chat-x';
83
+
84
+ const isPaused = ref(false);
85
+ </script>
86
+ ```
87
+
88
+ ## 多实例渐变隔离
89
+
90
+ 每个 `AiLoading` 实例通过**模块级 `uid` 计数器**生成唯一的 SVG 渐变 ID:
91
+
92
+ ```
93
+ ai-loading-ring-{instanceId}
94
+ ai-loading-star-{instanceId}
95
+ ```
96
+
97
+ 同一页面挂载多个实例时,渐变互不影响。ring 和 star 的 `instanceId` 始终相同(同一组件内),SVG `<path fill="url(#...)" />` 正确引用各自实例的渐变定义。
98
+
99
+ ## 动画规格
100
+
101
+ | 层 | 动画名 | 时长 | 缓动 | 关键帧 |
102
+ | ------------------ | ------------------- | ---- | ----------- | --------------------------------------- |
103
+ | `.ai-loading-ring` | `ai-loading-rotate` | 0.8s | linear | `0deg → 360deg` 匀速旋转 |
104
+ | `.ai-loading-star` | `ai-loading-pulse` | 0.8s | ease-in-out | `0%/100%: scale(0.5)` → `50%: scale(1)` |
105
+
106
+ 脉冲动画节奏:以**半尺寸**起始 → 膨胀至**全尺寸**(0.4s)→ 收缩回**半尺寸**(0.4s),循环往复。
107
+
108
+ ## API
109
+
110
+ ### Props
111
+
112
+ | 属性名 | 类型 | 默认值 | 说明 |
113
+ | ----------- | --------- | ------- | -------------------------------------------------- |
114
+ | size | `number` | `16` | 图标尺寸(px),应用为 inline style,覆盖 CSS 默认 |
115
+ | stopLoading | `boolean` | `false` | `true` 时两层动画均 `paused`,图标停在当前帧 |
116
+
117
+ ## 使用场景
118
+
119
+ 组件库内部以下场景自动使用 `AiLoading`:
120
+
121
+ | 使用方 | 触发时机 | 固定尺寸 |
122
+ | ------------------ | ---------------------------------------------- | --------- |
123
+ | `LoadingMessage` | 等待 AI 首次响应(loading 消息占位) | 18px |
124
+ | `ReasoningMessage` | `status` 为 `pending`/`streaming` 时(思考中) | 默认 16px |
125
+ | `ActivityMessage` | 活动消息加载状态 | 默认 16px |
126
+
127
+ ## 关联组件
128
+
129
+ - [LoadingMessage](/components/message/loading-message) — 对话加载消息
130
+ - [ReasoningMessage](/components/message/reasoning-message) — 推理加载态
131
+ - [ActivityMessage](/components/message/activity-message) — 活动加载态
@@ -0,0 +1,44 @@
1
+ # AiPromptList Prompt 列表
2
+
3
+ > 能力域:输入交互 | 导入:`import { AiPromptList } from '@blueking/chat-x'` | since 1.0.0
4
+
5
+ \ Prompt 选择列表,供 AiSlashInput 插入模板文本。 源码位置:src/components/chat-input/ai-slash-input/ai-prompt-list/ai-prompt-list.vue。
6
+
7
+ **关联**:ai-slash-input(输入 \ 时由 AiSlashInput tippy 菜单渲染)
8
+
9
+ ---
10
+
11
+ # AiPromptList Prompt 列表
12
+
13
+ > **能力域**:输入交互
14
+
15
+ ## 源码事实
16
+
17
+ - **源码位置**:`src/components/chat-input/ai-slash-input/ai-prompt-list/ai-prompt-list.vue`
18
+ - **能力说明**:`\` Prompt 选择列表,供 AiSlashInput 插入模板文本。
19
+
20
+ ## API 摘要
21
+
22
+ ### Props
23
+
24
+ - `{ onSelect: (prompt: string) => void; prompts: string[]; }`
25
+
26
+ ### Emits
27
+
28
+ - 无。
29
+
30
+ ### Slots
31
+
32
+ - 无。
33
+
34
+ ### Expose
35
+
36
+ - 无。
37
+
38
+ ## 组件依赖
39
+
40
+ - 无组件依赖或仅依赖基础库。
41
+
42
+ ## 使用建议
43
+
44
+ - 优先通过上层组合组件使用;直接使用前请确认 props 数据结构来自对应类型定义。