@opentiny/tiny-robot 0.4.2-alpha.5 → 0.4.2-alpha.7

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 (255) hide show
  1. package/dist/action-group/index.js +4 -4
  2. package/dist/anchor/index.js +44 -44
  3. package/dist/drag-overlay/index.js +1 -1
  4. package/dist/dropdown-menu/index.js +1 -1
  5. package/dist/index.d.ts +5018 -49
  6. package/dist/index.js +3 -3
  7. package/dist/index2.js +2 -2
  8. package/dist/index4.js +20 -20
  9. package/dist/index6.js +142 -143
  10. package/dist/index7.js +28 -28
  11. package/dist/index8.js +8 -8
  12. package/dist/sender/index.js +2 -2
  13. package/dist/sender-actions/index.js +1 -1
  14. package/dist/style.css +1 -1
  15. package/dist/suggestion-pills/index.js +1 -1
  16. package/dist/suggestion-popover/index.js +1 -1
  17. package/dist/theme-provider/index.js +41 -32
  18. package/dist/useSlotRefs.js +1 -1
  19. package/dist/utils.js +1 -1
  20. package/package.json +3 -22
  21. package/dist/action-group/ActionGroup.vue.d.ts +0 -26
  22. package/dist/action-group/ActionGroupItem.vue.d.ts +0 -18
  23. package/dist/action-group/index.d.ts +0 -12
  24. package/dist/action-group/index.type.d.ts +0 -17
  25. package/dist/anchor/components/AnchorItem.vue.d.ts +0 -24
  26. package/dist/anchor/components/AnchorList.vue.d.ts +0 -20
  27. package/dist/anchor/components/AnchorOverlay.vue.d.ts +0 -33
  28. package/dist/anchor/components/AnchorSearch.vue.d.ts +0 -7
  29. package/dist/anchor/composables/index.d.ts +0 -5
  30. package/dist/anchor/composables/useActiveSync.d.ts +0 -10
  31. package/dist/anchor/composables/useFloatingOffset.d.ts +0 -6
  32. package/dist/anchor/composables/useNavController.d.ts +0 -12
  33. package/dist/anchor/composables/useOverlayInteractions.d.ts +0 -6
  34. package/dist/anchor/composables/useTargetFeedback.d.ts +0 -5
  35. package/dist/anchor/defaults.d.ts +0 -16
  36. package/dist/anchor/index.d.ts +0 -7
  37. package/dist/anchor/index.type.d.ts +0 -60
  38. package/dist/anchor/index.vue.d.ts +0 -159
  39. package/dist/anchor/internal.type.d.ts +0 -103
  40. package/dist/anchor/utils/scroll.d.ts +0 -7
  41. package/dist/anchor/utils/target.d.ts +0 -6
  42. package/dist/attachments/components/FileCard.vue.d.ts +0 -18
  43. package/dist/attachments/components/ImagePreview.vue.d.ts +0 -17
  44. package/dist/attachments/components/index.d.ts +0 -2
  45. package/dist/attachments/composables/index.d.ts +0 -5
  46. package/dist/attachments/composables/useFileCard.d.ts +0 -15
  47. package/dist/attachments/composables/useFileType.d.ts +0 -20
  48. package/dist/attachments/composables/useImagePreview.d.ts +0 -18
  49. package/dist/attachments/composables/useListType.d.ts +0 -11
  50. package/dist/attachments/index.d.ts +0 -7
  51. package/dist/attachments/index.type.d.ts +0 -70
  52. package/dist/attachments/index.vue.d.ts +0 -27
  53. package/dist/attachments/utils.d.ts +0 -3
  54. package/dist/base-popper/components/Popper.vue.d.ts +0 -28
  55. package/dist/base-popper/index.d.ts +0 -2
  56. package/dist/base-popper/index.vue.d.ts +0 -41
  57. package/dist/bubble/Bubble.vue.d.ts +0 -39
  58. package/dist/bubble/BubbleBoxWrapper.vue.d.ts +0 -22
  59. package/dist/bubble/BubbleContentWrapper.vue.d.ts +0 -16
  60. package/dist/bubble/BubbleItem.vue.d.ts +0 -36
  61. package/dist/bubble/BubbleList.vue.d.ts +0 -41
  62. package/dist/bubble/BubbleProvider.vue.d.ts +0 -18
  63. package/dist/bubble/composables/index.d.ts +0 -10
  64. package/dist/bubble/composables/useBubbleBoxRenderer.d.ts +0 -18
  65. package/dist/bubble/composables/useBubbleContentRenderer.d.ts +0 -18
  66. package/dist/bubble/composables/useBubbleStateChange.d.ts +0 -2
  67. package/dist/bubble/composables/useBubbleStore.d.ts +0 -16
  68. package/dist/bubble/composables/useContentResolver.d.ts +0 -5
  69. package/dist/bubble/composables/useCopyCleanup.d.ts +0 -6
  70. package/dist/bubble/composables/useMessageContent.d.ts +0 -5
  71. package/dist/bubble/composables/useMessageGroup.d.ts +0 -4
  72. package/dist/bubble/composables/useOmitMessageFields.d.ts +0 -12
  73. package/dist/bubble/composables/useToolCall.d.ts +0 -25
  74. package/dist/bubble/constants.d.ts +0 -42
  75. package/dist/bubble/index.d.ts +0 -19
  76. package/dist/bubble/index.type.d.ts +0 -171
  77. package/dist/bubble/renderers/Box.vue.d.ts +0 -18
  78. package/dist/bubble/renderers/Image.vue.d.ts +0 -4
  79. package/dist/bubble/renderers/Loading.vue.d.ts +0 -4
  80. package/dist/bubble/renderers/Markdown.vue.d.ts +0 -4
  81. package/dist/bubble/renderers/Reasoning.vue.d.ts +0 -9
  82. package/dist/bubble/renderers/Text.vue.d.ts +0 -4
  83. package/dist/bubble/renderers/Tool.vue.d.ts +0 -14
  84. package/dist/bubble/renderers/ToolRole.vue.d.ts +0 -4
  85. package/dist/bubble/renderers/Tools.vue.d.ts +0 -4
  86. package/dist/bubble/renderers/allRenderers.d.ts +0 -93
  87. package/dist/bubble/renderers/defaultRenderers.d.ts +0 -27
  88. package/dist/bubble/utils.d.ts +0 -7
  89. package/dist/chat/components/ChatConversation.vue.d.ts +0 -70
  90. package/dist/chat/components/ChatLauncherButton.vue.d.ts +0 -12
  91. package/dist/chat/components/ChatMcpTrigger.vue.d.ts +0 -30
  92. package/dist/chat/components/ChatThemeToggleButton.vue.d.ts +0 -2
  93. package/dist/chat/components/ChatWelcome.vue.d.ts +0 -13
  94. package/dist/chat/composables/useChatConversation.d.ts +0 -37
  95. package/dist/chat/composables/useChatMcp.d.ts +0 -29
  96. package/dist/chat/composables/useChatModel.d.ts +0 -27
  97. package/dist/chat/index.d.ts +0 -9
  98. package/dist/chat/index.js +0 -13701
  99. package/dist/chat/index.type.d.ts +0 -88
  100. package/dist/chat/index.vue.d.ts +0 -58
  101. package/dist/container/index.d.ts +0 -7
  102. package/dist/container/index.type.d.ts +0 -20
  103. package/dist/container/index.vue.d.ts +0 -32
  104. package/dist/conversations/index.d.ts +0 -7
  105. package/dist/conversations/index.vue.d.ts +0 -2
  106. package/dist/drag-overlay/constants.d.ts +0 -17
  107. package/dist/drag-overlay/directives/vDropzone.d.ts +0 -14
  108. package/dist/drag-overlay/index.d.ts +0 -7
  109. package/dist/drag-overlay/index.type.d.ts +0 -105
  110. package/dist/drag-overlay/index.vue.d.ts +0 -20
  111. package/dist/dropdown-menu/composables/usePopperHover.d.ts +0 -6
  112. package/dist/dropdown-menu/index.d.ts +0 -7
  113. package/dist/dropdown-menu/index.type.d.ts +0 -42
  114. package/dist/dropdown-menu/index.vue.d.ts +0 -217
  115. package/dist/feedback/components/SourceList.vue.d.ts +0 -11
  116. package/dist/feedback/components/index.d.ts +0 -1
  117. package/dist/feedback/index.d.ts +0 -7
  118. package/dist/feedback/index.type.d.ts +0 -25
  119. package/dist/feedback/index.vue.d.ts +0 -13
  120. package/dist/flow-layout-buttons/index.d.ts +0 -7
  121. package/dist/flow-layout-buttons/index.type.d.ts +0 -35
  122. package/dist/flow-layout-buttons/index.vue.d.ts +0 -22
  123. package/dist/history/components/Empty.vue.d.ts +0 -7
  124. package/dist/history/components/MenuList.vue.d.ts +0 -24
  125. package/dist/history/composables/useRenameEditor.d.ts +0 -22
  126. package/dist/history/constants.d.ts +0 -1
  127. package/dist/history/index.d.ts +0 -7
  128. package/dist/history/index.type.d.ts +0 -33
  129. package/dist/history/index.vue.d.ts +0 -18
  130. package/dist/icon-button/index.d.ts +0 -7
  131. package/dist/icon-button/index.type.d.ts +0 -7
  132. package/dist/icon-button/index.vue.d.ts +0 -6
  133. package/dist/mcp-add-form/components/CodeEditor.vue.d.ts +0 -9
  134. package/dist/mcp-add-form/components/FormEditor.vue.d.ts +0 -10
  135. package/dist/mcp-add-form/components/index.d.ts +0 -2
  136. package/dist/mcp-add-form/index.d.ts +0 -7
  137. package/dist/mcp-add-form/index.type.d.ts +0 -19
  138. package/dist/mcp-add-form/index.vue.d.ts +0 -13
  139. package/dist/mcp-server-picker/components/NoData.vue.d.ts +0 -7
  140. package/dist/mcp-server-picker/components/PluginCard.vue.d.ts +0 -40
  141. package/dist/mcp-server-picker/components/PluginModal.vue.d.ts +0 -15
  142. package/dist/mcp-server-picker/components/index.d.ts +0 -3
  143. package/dist/mcp-server-picker/index.d.ts +0 -7
  144. package/dist/mcp-server-picker/index.type.d.ts +0 -99
  145. package/dist/mcp-server-picker/index.vue.d.ts +0 -71
  146. package/dist/prompts/index.d.ts +0 -12
  147. package/dist/prompts/index.type.d.ts +0 -59
  148. package/dist/prompts/prompt.vue.d.ts +0 -5
  149. package/dist/prompts/prompts.vue.d.ts +0 -20
  150. package/dist/sender/components/editor-content/index.vue.d.ts +0 -4
  151. package/dist/sender/components/footer/index.vue.d.ts +0 -38
  152. package/dist/sender/components/layouts/MultiLineLayout.vue.d.ts +0 -43
  153. package/dist/sender/components/layouts/SingleLineLayout.vue.d.ts +0 -32
  154. package/dist/sender/composables/index.d.ts +0 -7
  155. package/dist/sender/composables/useAutoSize.d.ts +0 -5
  156. package/dist/sender/composables/useEditor.d.ts +0 -13
  157. package/dist/sender/composables/useKeyboardShortcuts.d.ts +0 -7
  158. package/dist/sender/composables/useModeSwitch.d.ts +0 -4
  159. package/dist/sender/composables/useSenderCore.d.ts +0 -31
  160. package/dist/sender/composables/useSlotScope.d.ts +0 -10
  161. package/dist/sender/context/index.d.ts +0 -6
  162. package/dist/sender/context/types.d.ts +0 -7
  163. package/dist/sender/extensions/constants.d.ts +0 -94
  164. package/dist/sender/extensions/index.d.ts +0 -12
  165. package/dist/sender/extensions/mention/commands.d.ts +0 -20
  166. package/dist/sender/extensions/mention/components/mention-list.vue.d.ts +0 -18
  167. package/dist/sender/extensions/mention/components/mention-view.vue.d.ts +0 -19
  168. package/dist/sender/extensions/mention/extension.d.ts +0 -6
  169. package/dist/sender/extensions/mention/index.d.ts +0 -22
  170. package/dist/sender/extensions/mention/plugin.d.ts +0 -16
  171. package/dist/sender/extensions/mention/types.d.ts +0 -126
  172. package/dist/sender/extensions/mention/utils.d.ts +0 -34
  173. package/dist/sender/extensions/suggestion/extension.d.ts +0 -8
  174. package/dist/sender/extensions/suggestion/index.d.ts +0 -20
  175. package/dist/sender/extensions/suggestion/plugin.d.ts +0 -21
  176. package/dist/sender/extensions/suggestion/suggestion-list.vue.d.ts +0 -46
  177. package/dist/sender/extensions/suggestion/types.d.ts +0 -254
  178. package/dist/sender/extensions/suggestion/utils/filter.d.ts +0 -29
  179. package/dist/sender/extensions/suggestion/utils/highlight.d.ts +0 -73
  180. package/dist/sender/extensions/template/block/extension.d.ts +0 -6
  181. package/dist/sender/extensions/template/block/plugins.d.ts +0 -13
  182. package/dist/sender/extensions/template/block/template-block-view.vue.d.ts +0 -14
  183. package/dist/sender/extensions/template/commands.d.ts +0 -31
  184. package/dist/sender/extensions/template/extension.d.ts +0 -6
  185. package/dist/sender/extensions/template/index.d.ts +0 -21
  186. package/dist/sender/extensions/template/select/dropdown-manager.d.ts +0 -23
  187. package/dist/sender/extensions/template/select/extension.d.ts +0 -5
  188. package/dist/sender/extensions/template/select/plugins.d.ts +0 -34
  189. package/dist/sender/extensions/template/select/template-select-view.vue.d.ts +0 -20
  190. package/dist/sender/extensions/template/types.d.ts +0 -100
  191. package/dist/sender/extensions/template/utils.d.ts +0 -20
  192. package/dist/sender/extensions/utils/id-generator.d.ts +0 -16
  193. package/dist/sender/extensions/utils/index.d.ts +0 -7
  194. package/dist/sender/extensions/utils/keyboard.d.ts +0 -49
  195. package/dist/sender/extensions/utils/position.d.ts +0 -25
  196. package/dist/sender/index.d.ts +0 -136
  197. package/dist/sender/index.type.d.ts +0 -302
  198. package/dist/sender/index.vue.d.ts +0 -90
  199. package/dist/sender/types/base.d.ts +0 -239
  200. package/dist/sender/types/components.d.ts +0 -68
  201. package/dist/sender/types/composables.d.ts +0 -122
  202. package/dist/sender/types/context.d.ts +0 -132
  203. package/dist/sender/types/slots.d.ts +0 -67
  204. package/dist/sender/utils/countGraphemes.d.ts +0 -1
  205. package/dist/sender-actions/action-button/index.vue.d.ts +0 -23
  206. package/dist/sender-actions/clear-button/index.vue.d.ts +0 -2
  207. package/dist/sender-actions/clear-button/useClearButtonState.d.ts +0 -6
  208. package/dist/sender-actions/default-actions/index.vue.d.ts +0 -17
  209. package/dist/sender-actions/index.d.ts +0 -21
  210. package/dist/sender-actions/index.type.d.ts +0 -7
  211. package/dist/sender-actions/submit-button/index.vue.d.ts +0 -2
  212. package/dist/sender-actions/types/common.d.ts +0 -40
  213. package/dist/sender-actions/types/index.d.ts +0 -5
  214. package/dist/sender-actions/types/tooltip.d.ts +0 -7
  215. package/dist/sender-actions/upload-button/index.type.d.ts +0 -57
  216. package/dist/sender-actions/upload-button/index.vue.d.ts +0 -16
  217. package/dist/sender-actions/utils/tooltip.d.ts +0 -8
  218. package/dist/sender-actions/voice-button/index.type.d.ts +0 -78
  219. package/dist/sender-actions/voice-button/index.vue.d.ts +0 -43
  220. package/dist/sender-actions/voice-button/speech.types.d.ts +0 -40
  221. package/dist/sender-actions/voice-button/useSpeechHandler.d.ts +0 -10
  222. package/dist/sender-actions/voice-button/webSpeechHandler.d.ts +0 -40
  223. package/dist/sender-actions/word-counter/index.vue.d.ts +0 -2
  224. package/dist/sender-compat/index.d.ts +0 -7
  225. package/dist/sender-compat/index.type.d.ts +0 -91
  226. package/dist/sender-compat/index.vue.d.ts +0 -532
  227. package/dist/shared/composables/createTeleport.d.ts +0 -2
  228. package/dist/shared/composables/index.d.ts +0 -5
  229. package/dist/shared/composables/useAutoScroll.d.ts +0 -25
  230. package/dist/shared/composables/useSlotRefs.d.ts +0 -12
  231. package/dist/shared/composables/useTeleportTarget.d.ts +0 -11
  232. package/dist/shared/composables/useTouchDevice.d.ts +0 -3
  233. package/dist/shared/utils.d.ts +0 -7
  234. package/dist/suggestion-pills/components/PillButton.vue.d.ts +0 -16
  235. package/dist/suggestion-pills/components/index.d.ts +0 -1
  236. package/dist/suggestion-pills/index.d.ts +0 -13
  237. package/dist/suggestion-pills/index.type.d.ts +0 -45
  238. package/dist/suggestion-pills/index.vue.d.ts +0 -44
  239. package/dist/suggestion-popover/components/Backdrop.vue.d.ts +0 -5
  240. package/dist/suggestion-popover/components/Header.vue.d.ts +0 -4
  241. package/dist/suggestion-popover/components/Loading.vue.d.ts +0 -17
  242. package/dist/suggestion-popover/components/NoData.vue.d.ts +0 -17
  243. package/dist/suggestion-popover/components/Tooltip.vue.d.ts +0 -19
  244. package/dist/suggestion-popover/index.d.ts +0 -7
  245. package/dist/suggestion-popover/index.type.d.ts +0 -80
  246. package/dist/suggestion-popover/index.vue.d.ts +0 -262
  247. package/dist/theme-provider/constants.d.ts +0 -6
  248. package/dist/theme-provider/index.d.ts +0 -9
  249. package/dist/theme-provider/index.type.d.ts +0 -18
  250. package/dist/theme-provider/index.vue.d.ts +0 -32
  251. package/dist/theme-provider/useTheme.d.ts +0 -11
  252. package/dist/useTheme.js +0 -22
  253. package/dist/welcome/index.d.ts +0 -7
  254. package/dist/welcome/index.type.d.ts +0 -10
  255. package/dist/welcome/index.vue.d.ts +0 -18
@@ -1,100 +0,0 @@
1
- import { Ref } from 'vue';
2
- import { TemplateItem, SelectOption } from '../../index.type';
3
- export type { TemplateItem, SelectOption };
4
- /**
5
- * TemplateSelect 节点属性
6
- */
7
- export interface TemplateSelectAttrs {
8
- /**
9
- * 唯一标识
10
- */
11
- id: string;
12
- /**
13
- * 占位文字(未选择时显示)
14
- */
15
- placeholder: string;
16
- /**
17
- * 选项列表
18
- */
19
- options: SelectOption[];
20
- /**
21
- * 当前选中的值(可选)
22
- */
23
- value?: string;
24
- }
25
- /**
26
- * Template 节点属性
27
- */
28
- export interface TemplateAttrs {
29
- /**
30
- * 模板块 ID
31
- */
32
- id: string;
33
- /**
34
- * 模板块内容
35
- */
36
- content: string;
37
- }
38
- /**
39
- * Template 配置选项
40
- */
41
- export interface TemplateOptions {
42
- /**
43
- * 模板数据列表(推荐使用 ref 实现响应式)
44
- *
45
- * 支持两种配置方式:
46
- * 1. 传入 ref(推荐):自动双向绑定,解决时序问题
47
- * 2. 传入数组:仅用于静态初始化
48
- *
49
- * @example 响应式配置(推荐)
50
- * ```typescript
51
- * const items = ref<TemplateItem[]>([
52
- * { type: 'text', content: '帮我分析' },
53
- * { type: 'template', content: '' }
54
- * ])
55
- * Template.configure({ items }) // 传入 ref,自动双向绑定
56
- * ```
57
- *
58
- * @example 静态配置
59
- * ```typescript
60
- * Template.configure({
61
- * items: [
62
- * { type: 'text', content: '帮我分析' },
63
- * { type: 'template', content: '' }
64
- * ]
65
- * })
66
- * ```
67
- */
68
- items?: TemplateItem[] | Ref<TemplateItem[]>;
69
- /**
70
- * HTML 属性
71
- */
72
- HTMLAttributes?: Record<string, unknown>;
73
- }
74
- /**
75
- * 扩展 Tiptap Commands 接口
76
- *
77
- * 使 TypeScript 能够识别自定义命令
78
- */
79
- declare module '@tiptap/core' {
80
- interface Commands<ReturnType> {
81
- template: {
82
- /**
83
- * 设置模板数据(批量)
84
- */
85
- setTemplateData: (items: TemplateItem[]) => ReturnType;
86
- /**
87
- * 插入模板块
88
- */
89
- insertTemplate: (attrs: Partial<TemplateAttrs>) => ReturnType;
90
- /**
91
- * 聚焦到第一个模板块
92
- */
93
- focusFirstTemplate: () => ReturnType;
94
- /**
95
- * 插入选择器
96
- */
97
- insertTemplateSelect: (attrs: Partial<TemplateSelectAttrs>) => ReturnType;
98
- };
99
- }
100
- }
@@ -1,20 +0,0 @@
1
- import { Editor } from '@tiptap/core';
2
- import { TemplateItem } from '../../index.type';
3
- /**
4
- * 零宽字符常量
5
- * Unicode: U+200B (Zero Width Space)
6
- * HTML Entity: &#8203;
7
- */
8
- export declare const ZERO_WIDTH_CHAR = "\u200B";
9
- /**
10
- * 获取包含 template 的完整文本
11
- *
12
- * 例如:请帮我分析 [模板内容1] 和 [模板内容2]
13
- */
14
- export declare function getTextWithTemplates(editor: Editor): string;
15
- /**
16
- * 获取结构化数据(辅助函数)
17
- *
18
- * 返回包含文本和模板块的结构化数组
19
- */
20
- export declare function getTemplateStructuredData(editor: Editor): TemplateItem[];
@@ -1,16 +0,0 @@
1
- /**
2
- * 生成唯一 ID
3
- *
4
- * 用于所有扩展生成唯一标识符
5
- */
6
- /**
7
- * 生成唯一 ID
8
- *
9
- * @param prefix - ID 前缀
10
- * @returns 唯一 ID 字符串
11
- *
12
- * @example
13
- * generateId('mention') // mention_1701234567890_abc123def
14
- * generateId('template') // template_1701234567890_xyz789uvw
15
- */
16
- export declare function generateId(prefix: string): string;
@@ -1,7 +0,0 @@
1
- /**
2
- * 共享工具函数统一导出
3
- */
4
- export { generateId } from './id-generator';
5
- export { findTextRange } from './position';
6
- export { isKey, isAnyKey, isArrowKey, isDeleteKey } from './keyboard';
7
- export type { KeyboardKey } from './keyboard';
@@ -1,49 +0,0 @@
1
- import { KEYBOARD_KEYS } from '../constants';
2
- /**
3
- * 键盘按键类型
4
- */
5
- export type KeyboardKey = keyof typeof KEYBOARD_KEYS;
6
- /**
7
- * 检查是否按下指定按键
8
- *
9
- * @param event - 键盘事件
10
- * @param key - 按键名称
11
- * @returns 是否按下指定按键
12
- *
13
- * @example
14
- * if (isKey(event, 'ENTER')) { ... }
15
- * if (isKey(event, 'ARROW_UP')) { ... }
16
- */
17
- export declare const isKey: (event: KeyboardEvent, key: KeyboardKey) => boolean;
18
- /**
19
- * 检查是否按下多个按键中的任意一个
20
- *
21
- * @param event - 键盘事件
22
- * @param keys - 按键名称数组
23
- * @returns 是否按下指定按键之一
24
- *
25
- * @example
26
- * if (isAnyKey(event, ['ARROW_UP', 'ARROW_DOWN'])) { ... }
27
- * if (isAnyKey(event, ['ENTER', 'TAB'])) { ... }
28
- */
29
- export declare const isAnyKey: (event: KeyboardEvent, keys: KeyboardKey[]) => boolean;
30
- /**
31
- * 检查是否按下方向键
32
- *
33
- * @param event - 键盘事件
34
- * @returns 是否按下方向键
35
- *
36
- * @example
37
- * if (isArrowKey(event)) { ... }
38
- */
39
- export declare const isArrowKey: (event: KeyboardEvent) => boolean;
40
- /**
41
- * 检查是否按下删除键(Backspace 或 Delete)
42
- *
43
- * @param event - 键盘事件
44
- * @returns 是否按下删除键
45
- *
46
- * @example
47
- * if (isDeleteKey(event)) { ... }
48
- */
49
- export declare const isDeleteKey: (event: KeyboardEvent) => boolean;
@@ -1,25 +0,0 @@
1
- import { Selection } from '@tiptap/pm/state';
2
- /**
3
- * 查找触发字符的位置和查询文本
4
- *
5
- * 用于 mention 和 suggestion 扩展
6
- *
7
- * @param selection - 当前光标位置
8
- * @param char - 触发字符
9
- * @param allowSpaces - 是否允许空格
10
- * @returns 触发范围和查询文本,未找到返回 null
11
- *
12
- * @example
13
- * const result = findTextRange(selection, '@', false)
14
- * if (result) {
15
- * console.log(result.range) // { from: 10, to: 20 }
16
- * console.log(result.query) // 'user'
17
- * }
18
- */
19
- export declare function findTextRange(selection: Selection, char: string, allowSpaces?: boolean): {
20
- range: {
21
- from: number;
22
- to: number;
23
- };
24
- query: string;
25
- } | null;
@@ -1,136 +0,0 @@
1
- import { App } from 'vue';
2
- import { mention, suggestion, template } from './extensions';
3
- declare const Sender: {
4
- new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('./index.type').SenderProps> & Readonly<{
5
- onClear?: (() => any) | undefined;
6
- onInput?: ((value: string) => any) | undefined;
7
- onBlur?: ((event: FocusEvent) => any) | undefined;
8
- onCancel?: (() => any) | undefined;
9
- onFocus?: ((event: FocusEvent) => any) | undefined;
10
- onSubmit?: ((textContent: string, structuredData?: import('./index.type').StructuredData | undefined) => any) | undefined;
11
- "onUpdate:modelValue"?: ((value: string) => any) | undefined;
12
- }>, {
13
- submit: () => void;
14
- clear: () => void;
15
- cancel: () => void;
16
- focus: () => void;
17
- blur: () => void;
18
- setContent: (content: string) => void;
19
- getContent: () => string;
20
- editor: import('./index.type').SenderContext["editor"];
21
- }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
22
- clear: () => any;
23
- input: (value: string) => any;
24
- blur: (event: FocusEvent) => any;
25
- cancel: () => any;
26
- focus: (event: FocusEvent) => any;
27
- submit: (textContent: string, structuredData?: import('./index.type').StructuredData | undefined) => any;
28
- "update:modelValue": (value: string) => any;
29
- }, import('vue').PublicProps, {
30
- size: "normal" | "small";
31
- placeholder: string;
32
- mode: import('./index.type').InputMode;
33
- enterkeyhint: import('./index.type').EnterKeyHint;
34
- autoSize: import('./index.type').AutoSize;
35
- extensions: import('@tiptap/core').Extension[] | any[];
36
- submitType: import('./index.type').SubmitTrigger;
37
- }, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, HTMLDivElement, import('vue').ComponentProvideOptions, {
38
- P: {};
39
- B: {};
40
- D: {};
41
- C: {};
42
- M: {};
43
- Defaults: {};
44
- }, Readonly<import('./index.type').SenderProps> & Readonly<{
45
- onClear?: (() => any) | undefined;
46
- onInput?: ((value: string) => any) | undefined;
47
- onBlur?: ((event: FocusEvent) => any) | undefined;
48
- onCancel?: (() => any) | undefined;
49
- onFocus?: ((event: FocusEvent) => any) | undefined;
50
- onSubmit?: ((textContent: string, structuredData?: import('./index.type').StructuredData | undefined) => any) | undefined;
51
- "onUpdate:modelValue"?: ((value: string) => any) | undefined;
52
- }>, {
53
- submit: () => void;
54
- clear: () => void;
55
- cancel: () => void;
56
- focus: () => void;
57
- blur: () => void;
58
- setContent: (content: string) => void;
59
- getContent: () => string;
60
- editor: import('./index.type').SenderContext["editor"];
61
- }, {}, {}, {}, {
62
- size: "normal" | "small";
63
- placeholder: string;
64
- mode: import('./index.type').InputMode;
65
- enterkeyhint: import('./index.type').EnterKeyHint;
66
- autoSize: import('./index.type').AutoSize;
67
- extensions: import('@tiptap/core').Extension[] | any[];
68
- submitType: import('./index.type').SubmitTrigger;
69
- }>;
70
- __isFragment?: never;
71
- __isTeleport?: never;
72
- __isSuspense?: never;
73
- } & import('vue').ComponentOptionsBase<Readonly<import('./index.type').SenderProps> & Readonly<{
74
- onClear?: (() => any) | undefined;
75
- onInput?: ((value: string) => any) | undefined;
76
- onBlur?: ((event: FocusEvent) => any) | undefined;
77
- onCancel?: (() => any) | undefined;
78
- onFocus?: ((event: FocusEvent) => any) | undefined;
79
- onSubmit?: ((textContent: string, structuredData?: import('./index.type').StructuredData | undefined) => any) | undefined;
80
- "onUpdate:modelValue"?: ((value: string) => any) | undefined;
81
- }>, {
82
- submit: () => void;
83
- clear: () => void;
84
- cancel: () => void;
85
- focus: () => void;
86
- blur: () => void;
87
- setContent: (content: string) => void;
88
- getContent: () => string;
89
- editor: import('./index.type').SenderContext["editor"];
90
- }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
91
- clear: () => any;
92
- input: (value: string) => any;
93
- blur: (event: FocusEvent) => any;
94
- cancel: () => any;
95
- focus: (event: FocusEvent) => any;
96
- submit: (textContent: string, structuredData?: import('./index.type').StructuredData | undefined) => any;
97
- "update:modelValue": (value: string) => any;
98
- }, string, {
99
- size: "normal" | "small";
100
- placeholder: string;
101
- mode: import('./index.type').InputMode;
102
- enterkeyhint: import('./index.type').EnterKeyHint;
103
- autoSize: import('./index.type').AutoSize;
104
- extensions: import('@tiptap/core').Extension[] | any[];
105
- submitType: import('./index.type').SubmitTrigger;
106
- }, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & (new () => {
107
- $slots: {
108
- header?(_: {}): any;
109
- header?(_: {}): any;
110
- prefix?(_: {}): any;
111
- prefix?(_: {}): any;
112
- content?(_: {
113
- editor: import('@tiptap/vue-3').Editor | undefined;
114
- }): any;
115
- content?(_: {
116
- editor: import('vue').Ref<import('@tiptap/vue-3').Editor | undefined, import('@tiptap/vue-3').Editor | undefined>;
117
- }): any;
118
- 'actions-inline'?(_: {}): any;
119
- footer?(_: {}): any;
120
- 'footer-right'?(_: {}): any;
121
- };
122
- }) & {
123
- install: <T>(app: App<T>) => void;
124
- Mention: import('@tiptap/core').Node<import('./extensions').MentionOptions, any>;
125
- Suggestion: import('@tiptap/core').Extension<import('./index.type').SuggestionOptions, any>;
126
- Template: import('@tiptap/core').Extension<import('./extensions').TemplateOptions, any>;
127
- mention: typeof mention;
128
- suggestion: typeof suggestion;
129
- template: typeof template;
130
- };
131
- export default Sender;
132
- export type { SenderProps, SenderEmits, SenderSlots, SenderContext, UseEditorReturn, UseModeSwitchReturn, UseSuggestionReturn, UseKeyboardShortcutsReturn, TemplateItem, MentionItem, DefaultActions, } from './index.type';
133
- export { useSenderContext } from './context';
134
- export type { TemplateAttrs, TemplateOptions } from './extensions/template';
135
- export type { MentionAttrs, MentionOptions } from './extensions/mention';
136
- export type { SenderSuggestionItem, SuggestionOptions, SuggestionState, SuggestionTextPart, HighlightFunction, } from './extensions/suggestion';
@@ -1,302 +0,0 @@
1
- import { Extension } from '@tiptap/core';
2
- import { InputMode, SubmitTrigger, DefaultActions, AutoSize, StructuredData, EnterKeyHint } from './types/base';
3
- import { SenderSlotScope } from './types/slots';
4
- export * from './types/base';
5
- export * from './types/composables';
6
- export * from './types/components';
7
- export * from './types/context';
8
- export * from './types/slots';
9
- export type { MentionItem } from './extensions/mention';
10
- export type { SenderSuggestionItem, SuggestionOptions, SuggestionState, SuggestionTextPart, HighlightFunction, } from './extensions/suggestion';
11
- /**
12
- * Sender 组件 Props
13
- */
14
- export interface SenderProps {
15
- /**
16
- * 输入内容(双向绑定)
17
- *
18
- * 支持 v-model
19
- */
20
- modelValue?: string;
21
- /**
22
- * 默认值
23
- *
24
- * 仅在初始化时使用
25
- */
26
- defaultValue?: string;
27
- /**
28
- * 占位符文本
29
- *
30
- * @default '请输入内容...'
31
- */
32
- placeholder?: string;
33
- /**
34
- * 是否禁用
35
- *
36
- * @default false
37
- */
38
- disabled?: boolean;
39
- /**
40
- * 是否加载中
41
- *
42
- * 加载状态下显示停止按钮
43
- *
44
- * @default false
45
- */
46
- loading?: boolean;
47
- /**
48
- * 是否自动聚焦
49
- *
50
- * @default false
51
- */
52
- autofocus?: boolean;
53
- /**
54
- * 移动端虚拟键盘回车键提示
55
- *
56
- * 用于自定义移动端虚拟键盘上回车键的显示文本或图标
57
- *
58
- * @default 'send'
59
- */
60
- enterkeyhint?: EnterKeyHint;
61
- /**
62
- * 输入模式
63
- *
64
- * - single: 单行模式
65
- * - multiple: 多行模式
66
- *
67
- * @default 'single'
68
- */
69
- mode?: InputMode;
70
- /**
71
- * 自动调整高度
72
- *
73
- * - false: 不自动调整
74
- * - true: 自动调整(默认 1-3 行)
75
- * - { minRows, maxRows }: 自定义行数范围
76
- *
77
- * 仅在 mode === 'multiple' 时有效
78
- *
79
- * @default { minRows: 1, maxRows: 3 }
80
- */
81
- autoSize?: AutoSize;
82
- /**
83
- * 最大字符数
84
- *
85
- * @default Infinity
86
- */
87
- maxLength?: number;
88
- /**
89
- * 是否显示字数限制
90
- *
91
- * 仅在 maxLength 有值时有效
92
- *
93
- * @default false
94
- */
95
- showWordLimit?: boolean;
96
- /**
97
- * 是否显示清空按钮
98
- *
99
- * @default false
100
- */
101
- clearable?: boolean;
102
- /**
103
- * Tiptap 扩展配置
104
- *
105
- * 用于添加增强输入能力,如 Template、Mention、Suggestion 等
106
- *
107
- * @example 基础使用
108
- * ```typescript
109
- * import { Template } from '@tiny-robot/components/sender/extensions'
110
- *
111
- * <Sender :extensions="[Template]" />
112
- * ```
113
- *
114
- * @example 带配置的扩展(响应式推荐)
115
- * ```typescript
116
- * import { Mention, Suggestion } from '@tiny-robot/components/sender/extensions'
117
- *
118
- * const mentions = ref([...])
119
- * const suggestions = ref([...])
120
- *
121
- * const extensions = [
122
- * Mention.configure({ items: mentions }),
123
- * Suggestion.configure({ items: suggestions })
124
- * ]
125
- *
126
- * <Sender :extensions="extensions" />
127
- * ```
128
- */
129
- extensions?: Extension[] | any[];
130
- /**
131
- * 组件尺寸
132
- *
133
- * - normal: 正常尺寸(默认)
134
- * - small: 紧凑模式,更小的字体、间距和图标
135
- *
136
- * @default 'normal'
137
- */
138
- size?: 'normal' | 'small';
139
- /**
140
- * 停止按钮文字
141
- *
142
- * @default '停止响应'
143
- */
144
- stopText?: string;
145
- /**
146
- * 默认操作按钮配置
147
- *
148
- * 用于统一配置默认按钮(Clear、Submit)的状态和提示
149
- *
150
- * @example 基础使用
151
- * ```vue
152
- * <Sender
153
- * :actions-config="{
154
- * submit: { disabled: !isValid, tooltip: '请完善表单' }
155
- * }"
156
- * />
157
- * ```
158
- *
159
- * @example 动态配置
160
- * ```vue
161
- * <script setup>
162
- * const defaultActions = computed(() => ({
163
- * submit: {
164
- * disabled: !canSubmit.value,
165
- * tooltip: canSubmit.value ? '发送' : '请输入内容'
166
- * },
167
- * clear: { tooltip: '清空输入' }
168
- * }))
169
- * </script>
170
- *
171
- * <template>
172
- * <Sender :actions-config="defaultActions" />
173
- * </template>
174
- * ```
175
- *
176
- * @default undefined
177
- */
178
- defaultActions?: DefaultActions;
179
- /**
180
- * 提交触发方式
181
- *
182
- * @default 'enter'
183
- */
184
- submitType?: SubmitTrigger;
185
- }
186
- /**
187
- * Sender 组件 Emits
188
- */
189
- export interface SenderEmits {
190
- /**
191
- * 更新输入内容
192
- *
193
- * @param e - 事件名
194
- * @param value - 新内容
195
- */
196
- (e: 'update:modelValue', value: string): void;
197
- /**
198
- * 提交内容(增强版)
199
- *
200
- * @param e - 事件名
201
- * @param textContent - 提交的内容(纯文本,如 "帮我分析 @张三 的周报")
202
- * @param structuredData - 结构化数据(可选)
203
- *
204
- * @example
205
- * ```typescript
206
- * function handleSubmit(text: string, data?: StructuredData) {
207
- * console.log('纯文本:', text)
208
- *
209
- * if (data?.template) {
210
- * // Template 场景
211
- * console.log('模板数据:', data.template)
212
- * }
213
- *
214
- * if (data?.mentions) {
215
- * // Mention 场景
216
- * console.log('提及的人:', data.mentions)
217
- * }
218
- * }
219
- * ```
220
- */
221
- (e: 'submit', textContent: string, structuredData?: StructuredData): void;
222
- /**
223
- * 聚焦事件
224
- *
225
- * @param e - 事件名
226
- * @param event - 原生事件
227
- */
228
- (e: 'focus', event: FocusEvent): void;
229
- /**
230
- * 失焦事件
231
- *
232
- * @param e - 事件名
233
- * @param event - 原生事件
234
- */
235
- (e: 'blur', event: FocusEvent): void;
236
- /**
237
- * 清空事件
238
- *
239
- * @param e - 事件名
240
- */
241
- (e: 'clear'): void;
242
- /**
243
- * 取消事件
244
- *
245
- * 在 loading 状态下点击停止按钮时触发
246
- * 用于取消正在进行的操作(如 AI 响应)
247
- *
248
- * @param e - 事件名
249
- */
250
- (e: 'cancel'): void;
251
- /**
252
- * 输入事件
253
- *
254
- * @param e - 事件名
255
- * @param value - 当前内容
256
- */
257
- (e: 'input', value: string): void;
258
- }
259
- /**
260
- * Sender 组件 Slots
261
- */
262
- export interface SenderSlots {
263
- /**
264
- * 头部插槽
265
- */
266
- header?: () => unknown;
267
- /**
268
- * 前缀插槽
269
- */
270
- prefix?: () => unknown;
271
- /**
272
- * 内容插槽
273
- *
274
- * @param props - 插槽属性
275
- * @param props.editor - 编辑器实例
276
- */
277
- content?: (props: {
278
- editor: unknown;
279
- }) => unknown;
280
- /**
281
- * 单行模式内联操作按钮插槽
282
- *
283
- * @example
284
- * ```vue
285
- * <sender>
286
- * <template #actions-inline="{ insert, focus, disabled }">
287
- * <voice-input @result="insert" :disabled="disabled" />
288
- * <file-upload @select="handleFiles" />
289
- * </template>
290
- * </sender>
291
- * ```
292
- */
293
- 'actions-inline'?: (scope: SenderSlotScope) => unknown;
294
- /**
295
- * 底部插槽(多行模式)
296
- */
297
- footer?: (scope: SenderSlotScope) => unknown;
298
- /**
299
- * 底部右侧插槽(多行模式)
300
- */
301
- 'footer-right'?: (scope: SenderSlotScope) => unknown;
302
- }