@opentiny/tiny-robot 0.5.1-alpha.1 → 0.5.1-alpha.3

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 (272) hide show
  1. package/dist/attachments/index.js +261 -258
  2. package/dist/index.d.ts +5533 -51
  3. package/dist/index.js +30 -28
  4. package/dist/sender/index.js +1114 -1077
  5. package/dist/style.css +1 -1
  6. package/dist/theme-provider/index.js +41 -32
  7. package/dist/useSenderContentRegistration.js +8 -0
  8. package/package.json +3 -22
  9. package/dist/action-group/ActionGroup.vue.d.ts +0 -26
  10. package/dist/action-group/ActionGroupItem.vue.d.ts +0 -18
  11. package/dist/action-group/index.d.ts +0 -12
  12. package/dist/action-group/index.type.d.ts +0 -17
  13. package/dist/anchor/components/AnchorItem.vue.d.ts +0 -24
  14. package/dist/anchor/components/AnchorList.vue.d.ts +0 -20
  15. package/dist/anchor/components/AnchorOverlay.vue.d.ts +0 -33
  16. package/dist/anchor/components/AnchorSearch.vue.d.ts +0 -7
  17. package/dist/anchor/composables/index.d.ts +0 -5
  18. package/dist/anchor/composables/useActiveSync.d.ts +0 -10
  19. package/dist/anchor/composables/useFloatingOffset.d.ts +0 -6
  20. package/dist/anchor/composables/useNavController.d.ts +0 -12
  21. package/dist/anchor/composables/useOverlayInteractions.d.ts +0 -6
  22. package/dist/anchor/composables/useTargetFeedback.d.ts +0 -5
  23. package/dist/anchor/defaults.d.ts +0 -16
  24. package/dist/anchor/index.d.ts +0 -7
  25. package/dist/anchor/index.type.d.ts +0 -60
  26. package/dist/anchor/index.vue.d.ts +0 -159
  27. package/dist/anchor/internal.type.d.ts +0 -103
  28. package/dist/anchor/utils/scroll.d.ts +0 -7
  29. package/dist/anchor/utils/target.d.ts +0 -6
  30. package/dist/attachments/components/FileCard.vue.d.ts +0 -18
  31. package/dist/attachments/components/ImagePreview.vue.d.ts +0 -17
  32. package/dist/attachments/components/index.d.ts +0 -2
  33. package/dist/attachments/composables/index.d.ts +0 -5
  34. package/dist/attachments/composables/useFileCard.d.ts +0 -15
  35. package/dist/attachments/composables/useFileType.d.ts +0 -20
  36. package/dist/attachments/composables/useImagePreview.d.ts +0 -18
  37. package/dist/attachments/composables/useListType.d.ts +0 -11
  38. package/dist/attachments/index.d.ts +0 -7
  39. package/dist/attachments/index.type.d.ts +0 -70
  40. package/dist/attachments/index.vue.d.ts +0 -27
  41. package/dist/attachments/utils.d.ts +0 -3
  42. package/dist/base-popper/components/Popper.vue.d.ts +0 -28
  43. package/dist/base-popper/index.d.ts +0 -2
  44. package/dist/base-popper/index.vue.d.ts +0 -41
  45. package/dist/bubble/Bubble.vue.d.ts +0 -47
  46. package/dist/bubble/BubbleBoxWrapper.vue.d.ts +0 -22
  47. package/dist/bubble/BubbleContentWrapper.vue.d.ts +0 -22
  48. package/dist/bubble/BubbleItem.vue.d.ts +0 -44
  49. package/dist/bubble/BubbleList.vue.d.ts +0 -43
  50. package/dist/bubble/BubbleProvider.vue.d.ts +0 -18
  51. package/dist/bubble/composables/index.d.ts +0 -11
  52. package/dist/bubble/composables/useBubbleBoxRenderer.d.ts +0 -18
  53. package/dist/bubble/composables/useBubbleContentRenderer.d.ts +0 -18
  54. package/dist/bubble/composables/useBubbleEvent.d.ts +0 -3
  55. package/dist/bubble/composables/useBubbleStateChange.d.ts +0 -1
  56. package/dist/bubble/composables/useBubbleStore.d.ts +0 -16
  57. package/dist/bubble/composables/useContentResolver.d.ts +0 -5
  58. package/dist/bubble/composables/useCopyCleanup.d.ts +0 -6
  59. package/dist/bubble/composables/useMessageContent.d.ts +0 -5
  60. package/dist/bubble/composables/useMessageGroup.d.ts +0 -4
  61. package/dist/bubble/composables/useOmitMessageFields.d.ts +0 -12
  62. package/dist/bubble/composables/useToolCall.d.ts +0 -25
  63. package/dist/bubble/constants.d.ts +0 -42
  64. package/dist/bubble/index.d.ts +0 -19
  65. package/dist/bubble/index.type.d.ts +0 -185
  66. package/dist/bubble/renderers/Box.vue.d.ts +0 -18
  67. package/dist/bubble/renderers/Image.vue.d.ts +0 -4
  68. package/dist/bubble/renderers/Loading.vue.d.ts +0 -4
  69. package/dist/bubble/renderers/Markdown.vue.d.ts +0 -4
  70. package/dist/bubble/renderers/Reasoning.vue.d.ts +0 -9
  71. package/dist/bubble/renderers/Text.vue.d.ts +0 -4
  72. package/dist/bubble/renderers/Tool.vue.d.ts +0 -14
  73. package/dist/bubble/renderers/ToolRole.vue.d.ts +0 -4
  74. package/dist/bubble/renderers/Tools.vue.d.ts +0 -4
  75. package/dist/bubble/renderers/allRenderers.d.ts +0 -93
  76. package/dist/bubble/renderers/defaultRenderers.d.ts +0 -27
  77. package/dist/bubble/utils.d.ts +0 -7
  78. package/dist/chat/components/ChatConversation.vue.d.ts +0 -305
  79. package/dist/chat/components/ChatLauncherButton.vue.d.ts +0 -12
  80. package/dist/chat/components/ChatMcpTrigger.vue.d.ts +0 -30
  81. package/dist/chat/components/ChatThemeToggleButton.vue.d.ts +0 -6
  82. package/dist/chat/components/ChatWelcome.vue.d.ts +0 -14
  83. package/dist/chat/components/icons/IconModelAliyunBailian.vue.d.ts +0 -7
  84. package/dist/chat/components/icons/IconModelDeepseek.vue.d.ts +0 -7
  85. package/dist/chat/components/icons/index.d.ts +0 -5
  86. package/dist/chat/composables/useChatConversation.d.ts +0 -37
  87. package/dist/chat/composables/useChatMcp.d.ts +0 -29
  88. package/dist/chat/composables/useChatModel.d.ts +0 -27
  89. package/dist/chat/index.d.ts +0 -9
  90. package/dist/chat/index.js +0 -13904
  91. package/dist/chat/index.type.d.ts +0 -92
  92. package/dist/chat/index.vue.d.ts +0 -51
  93. package/dist/chat/locale.d.ts +0 -12
  94. package/dist/chat/mcpServers.d.ts +0 -3
  95. package/dist/container/index.d.ts +0 -7
  96. package/dist/container/index.type.d.ts +0 -20
  97. package/dist/container/index.vue.d.ts +0 -32
  98. package/dist/conversations/index.d.ts +0 -7
  99. package/dist/conversations/index.vue.d.ts +0 -2
  100. package/dist/drag-overlay/constants.d.ts +0 -17
  101. package/dist/drag-overlay/directives/vDropzone.d.ts +0 -14
  102. package/dist/drag-overlay/index.d.ts +0 -7
  103. package/dist/drag-overlay/index.type.d.ts +0 -105
  104. package/dist/drag-overlay/index.vue.d.ts +0 -20
  105. package/dist/dropdown-menu/composables/usePopperHover.d.ts +0 -6
  106. package/dist/dropdown-menu/index.d.ts +0 -7
  107. package/dist/dropdown-menu/index.type.d.ts +0 -42
  108. package/dist/dropdown-menu/index.vue.d.ts +0 -217
  109. package/dist/feedback/components/SourceList.vue.d.ts +0 -11
  110. package/dist/feedback/components/index.d.ts +0 -1
  111. package/dist/feedback/index.d.ts +0 -7
  112. package/dist/feedback/index.type.d.ts +0 -25
  113. package/dist/feedback/index.vue.d.ts +0 -13
  114. package/dist/flow-layout-buttons/index.d.ts +0 -7
  115. package/dist/flow-layout-buttons/index.type.d.ts +0 -35
  116. package/dist/flow-layout-buttons/index.vue.d.ts +0 -22
  117. package/dist/history/components/Empty.vue.d.ts +0 -7
  118. package/dist/history/components/MenuList.vue.d.ts +0 -24
  119. package/dist/history/composables/useRenameEditor.d.ts +0 -22
  120. package/dist/history/constants.d.ts +0 -1
  121. package/dist/history/index.d.ts +0 -7
  122. package/dist/history/index.type.d.ts +0 -33
  123. package/dist/history/index.vue.d.ts +0 -18
  124. package/dist/icon-button/index.d.ts +0 -7
  125. package/dist/icon-button/index.type.d.ts +0 -7
  126. package/dist/icon-button/index.vue.d.ts +0 -6
  127. package/dist/layout/Layout.vue.d.ts +0 -246
  128. package/dist/layout/LayoutAsideToggle.vue.d.ts +0 -20
  129. package/dist/layout/LayoutProxyScrollbar.vue.d.ts +0 -6
  130. package/dist/layout/components/AsideContent.vue.d.ts +0 -35
  131. package/dist/layout/components/AsideResizeTrigger.vue.d.ts +0 -20
  132. package/dist/layout/components/FloatingDragBar.vue.d.ts +0 -18
  133. package/dist/layout/components/FloatingResizeTrigger.vue.d.ts +0 -17
  134. package/dist/layout/components/FloatingResizeTriggers.vue.d.ts +0 -14
  135. package/dist/layout/components/LayoutSurface.vue.d.ts +0 -41
  136. package/dist/layout/composables/useLayoutAsideStates.d.ts +0 -21
  137. package/dist/layout/composables/useLayoutContext.d.ts +0 -4
  138. package/dist/layout/composables/usePointerDrag.d.ts +0 -19
  139. package/dist/layout/index.d.ts +0 -22
  140. package/dist/layout/index.type.d.ts +0 -111
  141. package/dist/layout/internal.type.d.ts +0 -43
  142. package/dist/layout/utils/asideEventEmitters.d.ts +0 -6
  143. package/dist/layout/utils/asidePresets.d.ts +0 -5
  144. package/dist/layout/utils/cssLength.d.ts +0 -2
  145. package/dist/layout/utils/domInteraction.d.ts +0 -1
  146. package/dist/layout/utils/number.d.ts +0 -1
  147. package/dist/layout/utils/surfaceGeometry.d.ts +0 -87
  148. package/dist/layout/utils/surfaceResize.d.ts +0 -10
  149. package/dist/mcp-add-form/components/CodeEditor.vue.d.ts +0 -9
  150. package/dist/mcp-add-form/components/FormEditor.vue.d.ts +0 -10
  151. package/dist/mcp-add-form/components/index.d.ts +0 -2
  152. package/dist/mcp-add-form/index.d.ts +0 -7
  153. package/dist/mcp-add-form/index.type.d.ts +0 -19
  154. package/dist/mcp-add-form/index.vue.d.ts +0 -13
  155. package/dist/mcp-server-picker/components/NoData.vue.d.ts +0 -7
  156. package/dist/mcp-server-picker/components/PluginCard.vue.d.ts +0 -40
  157. package/dist/mcp-server-picker/components/PluginModal.vue.d.ts +0 -15
  158. package/dist/mcp-server-picker/components/index.d.ts +0 -3
  159. package/dist/mcp-server-picker/index.d.ts +0 -7
  160. package/dist/mcp-server-picker/index.type.d.ts +0 -99
  161. package/dist/mcp-server-picker/index.vue.d.ts +0 -71
  162. package/dist/prompts/index.d.ts +0 -12
  163. package/dist/prompts/index.type.d.ts +0 -59
  164. package/dist/prompts/prompt.vue.d.ts +0 -5
  165. package/dist/prompts/prompts.vue.d.ts +0 -20
  166. package/dist/sender/components/editor-content/index.vue.d.ts +0 -4
  167. package/dist/sender/components/footer/index.vue.d.ts +0 -38
  168. package/dist/sender/components/layouts/MultiLineLayout.vue.d.ts +0 -43
  169. package/dist/sender/components/layouts/SingleLineLayout.vue.d.ts +0 -32
  170. package/dist/sender/composables/index.d.ts +0 -7
  171. package/dist/sender/composables/useAutoSize.d.ts +0 -5
  172. package/dist/sender/composables/useEditor.d.ts +0 -13
  173. package/dist/sender/composables/useKeyboardShortcuts.d.ts +0 -7
  174. package/dist/sender/composables/useModeSwitch.d.ts +0 -4
  175. package/dist/sender/composables/useSenderCore.d.ts +0 -31
  176. package/dist/sender/composables/useSlotScope.d.ts +0 -10
  177. package/dist/sender/context/index.d.ts +0 -6
  178. package/dist/sender/context/types.d.ts +0 -7
  179. package/dist/sender/extensions/constants.d.ts +0 -94
  180. package/dist/sender/extensions/index.d.ts +0 -12
  181. package/dist/sender/extensions/mention/commands.d.ts +0 -20
  182. package/dist/sender/extensions/mention/components/mention-list.vue.d.ts +0 -18
  183. package/dist/sender/extensions/mention/components/mention-view.vue.d.ts +0 -19
  184. package/dist/sender/extensions/mention/extension.d.ts +0 -6
  185. package/dist/sender/extensions/mention/index.d.ts +0 -22
  186. package/dist/sender/extensions/mention/plugin.d.ts +0 -16
  187. package/dist/sender/extensions/mention/types.d.ts +0 -126
  188. package/dist/sender/extensions/mention/utils.d.ts +0 -34
  189. package/dist/sender/extensions/suggestion/extension.d.ts +0 -8
  190. package/dist/sender/extensions/suggestion/index.d.ts +0 -20
  191. package/dist/sender/extensions/suggestion/plugin.d.ts +0 -21
  192. package/dist/sender/extensions/suggestion/suggestion-list.vue.d.ts +0 -46
  193. package/dist/sender/extensions/suggestion/types.d.ts +0 -254
  194. package/dist/sender/extensions/suggestion/utils/filter.d.ts +0 -29
  195. package/dist/sender/extensions/suggestion/utils/highlight.d.ts +0 -73
  196. package/dist/sender/extensions/template/block/extension.d.ts +0 -6
  197. package/dist/sender/extensions/template/block/plugins.d.ts +0 -13
  198. package/dist/sender/extensions/template/block/template-block-view.vue.d.ts +0 -14
  199. package/dist/sender/extensions/template/commands.d.ts +0 -31
  200. package/dist/sender/extensions/template/extension.d.ts +0 -6
  201. package/dist/sender/extensions/template/index.d.ts +0 -21
  202. package/dist/sender/extensions/template/select/dropdown-manager.d.ts +0 -23
  203. package/dist/sender/extensions/template/select/extension.d.ts +0 -5
  204. package/dist/sender/extensions/template/select/plugins.d.ts +0 -34
  205. package/dist/sender/extensions/template/select/template-select-view.vue.d.ts +0 -20
  206. package/dist/sender/extensions/template/types.d.ts +0 -100
  207. package/dist/sender/extensions/template/utils.d.ts +0 -20
  208. package/dist/sender/extensions/utils/id-generator.d.ts +0 -16
  209. package/dist/sender/extensions/utils/index.d.ts +0 -7
  210. package/dist/sender/extensions/utils/keyboard.d.ts +0 -49
  211. package/dist/sender/extensions/utils/position.d.ts +0 -25
  212. package/dist/sender/index.d.ts +0 -139
  213. package/dist/sender/index.type.d.ts +0 -311
  214. package/dist/sender/index.vue.d.ts +0 -93
  215. package/dist/sender/types/base.d.ts +0 -239
  216. package/dist/sender/types/components.d.ts +0 -68
  217. package/dist/sender/types/composables.d.ts +0 -122
  218. package/dist/sender/types/context.d.ts +0 -138
  219. package/dist/sender/types/slots.d.ts +0 -67
  220. package/dist/sender/utils/countGraphemes.d.ts +0 -1
  221. package/dist/sender-actions/action-button/index.vue.d.ts +0 -23
  222. package/dist/sender-actions/clear-button/index.vue.d.ts +0 -2
  223. package/dist/sender-actions/clear-button/useClearButtonState.d.ts +0 -6
  224. package/dist/sender-actions/default-actions/index.vue.d.ts +0 -17
  225. package/dist/sender-actions/index.d.ts +0 -21
  226. package/dist/sender-actions/index.type.d.ts +0 -7
  227. package/dist/sender-actions/submit-button/index.vue.d.ts +0 -2
  228. package/dist/sender-actions/types/common.d.ts +0 -40
  229. package/dist/sender-actions/types/index.d.ts +0 -5
  230. package/dist/sender-actions/types/tooltip.d.ts +0 -7
  231. package/dist/sender-actions/upload-button/index.type.d.ts +0 -57
  232. package/dist/sender-actions/upload-button/index.vue.d.ts +0 -16
  233. package/dist/sender-actions/utils/tooltip.d.ts +0 -8
  234. package/dist/sender-actions/voice-button/index.type.d.ts +0 -78
  235. package/dist/sender-actions/voice-button/index.vue.d.ts +0 -43
  236. package/dist/sender-actions/voice-button/speech.types.d.ts +0 -40
  237. package/dist/sender-actions/voice-button/useSpeechHandler.d.ts +0 -10
  238. package/dist/sender-actions/voice-button/webSpeechHandler.d.ts +0 -40
  239. package/dist/sender-actions/word-counter/index.vue.d.ts +0 -2
  240. package/dist/sender-compat/index.d.ts +0 -7
  241. package/dist/sender-compat/index.type.d.ts +0 -91
  242. package/dist/sender-compat/index.vue.d.ts +0 -538
  243. package/dist/shared/composables/createTeleport.d.ts +0 -2
  244. package/dist/shared/composables/index.d.ts +0 -6
  245. package/dist/shared/composables/useAutoScroll.d.ts +0 -25
  246. package/dist/shared/composables/useControllableState.d.ts +0 -20
  247. package/dist/shared/composables/useSlotRefs.d.ts +0 -12
  248. package/dist/shared/composables/useTeleportTarget.d.ts +0 -11
  249. package/dist/shared/composables/useTouchDevice.d.ts +0 -3
  250. package/dist/shared/utils.d.ts +0 -7
  251. package/dist/suggestion-pills/components/PillButton.vue.d.ts +0 -16
  252. package/dist/suggestion-pills/components/index.d.ts +0 -1
  253. package/dist/suggestion-pills/index.d.ts +0 -13
  254. package/dist/suggestion-pills/index.type.d.ts +0 -45
  255. package/dist/suggestion-pills/index.vue.d.ts +0 -44
  256. package/dist/suggestion-popover/components/Backdrop.vue.d.ts +0 -5
  257. package/dist/suggestion-popover/components/Header.vue.d.ts +0 -4
  258. package/dist/suggestion-popover/components/Loading.vue.d.ts +0 -17
  259. package/dist/suggestion-popover/components/NoData.vue.d.ts +0 -17
  260. package/dist/suggestion-popover/components/Tooltip.vue.d.ts +0 -19
  261. package/dist/suggestion-popover/index.d.ts +0 -7
  262. package/dist/suggestion-popover/index.type.d.ts +0 -80
  263. package/dist/suggestion-popover/index.vue.d.ts +0 -262
  264. package/dist/theme-provider/constants.d.ts +0 -6
  265. package/dist/theme-provider/index.d.ts +0 -9
  266. package/dist/theme-provider/index.type.d.ts +0 -18
  267. package/dist/theme-provider/index.vue.d.ts +0 -32
  268. package/dist/theme-provider/useTheme.d.ts +0 -11
  269. package/dist/useTheme.js +0 -22
  270. package/dist/welcome/index.d.ts +0 -7
  271. package/dist/welcome/index.type.d.ts +0 -10
  272. package/dist/welcome/index.vue.d.ts +0 -18
@@ -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,139 +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
- hasExternalContent: boolean;
36
- extensions: import('@tiptap/core').Extension[] | any[];
37
- submitType: import('./index.type').SubmitTrigger;
38
- }, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, HTMLDivElement, import('vue').ComponentProvideOptions, {
39
- P: {};
40
- B: {};
41
- D: {};
42
- C: {};
43
- M: {};
44
- Defaults: {};
45
- }, Readonly<import('./index.type').SenderProps> & Readonly<{
46
- onClear?: (() => any) | undefined;
47
- onInput?: ((value: string) => any) | undefined;
48
- onBlur?: ((event: FocusEvent) => any) | undefined;
49
- onCancel?: (() => any) | undefined;
50
- onFocus?: ((event: FocusEvent) => any) | undefined;
51
- onSubmit?: ((textContent: string, structuredData?: import('./index.type').StructuredData | undefined) => any) | undefined;
52
- "onUpdate:modelValue"?: ((value: string) => any) | undefined;
53
- }>, {
54
- submit: () => void;
55
- clear: () => void;
56
- cancel: () => void;
57
- focus: () => void;
58
- blur: () => void;
59
- setContent: (content: string) => void;
60
- getContent: () => string;
61
- editor: import('./index.type').SenderContext["editor"];
62
- }, {}, {}, {}, {
63
- size: "normal" | "small";
64
- placeholder: string;
65
- mode: import('./index.type').InputMode;
66
- enterkeyhint: import('./index.type').EnterKeyHint;
67
- autoSize: import('./index.type').AutoSize;
68
- hasExternalContent: boolean;
69
- extensions: import('@tiptap/core').Extension[] | any[];
70
- submitType: import('./index.type').SubmitTrigger;
71
- }>;
72
- __isFragment?: never;
73
- __isTeleport?: never;
74
- __isSuspense?: never;
75
- } & import('vue').ComponentOptionsBase<Readonly<import('./index.type').SenderProps> & Readonly<{
76
- onClear?: (() => any) | undefined;
77
- onInput?: ((value: string) => any) | undefined;
78
- onBlur?: ((event: FocusEvent) => any) | undefined;
79
- onCancel?: (() => any) | undefined;
80
- onFocus?: ((event: FocusEvent) => any) | undefined;
81
- onSubmit?: ((textContent: string, structuredData?: import('./index.type').StructuredData | undefined) => any) | undefined;
82
- "onUpdate:modelValue"?: ((value: string) => any) | undefined;
83
- }>, {
84
- submit: () => void;
85
- clear: () => void;
86
- cancel: () => void;
87
- focus: () => void;
88
- blur: () => void;
89
- setContent: (content: string) => void;
90
- getContent: () => string;
91
- editor: import('./index.type').SenderContext["editor"];
92
- }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
93
- clear: () => any;
94
- input: (value: string) => any;
95
- blur: (event: FocusEvent) => any;
96
- cancel: () => any;
97
- focus: (event: FocusEvent) => any;
98
- submit: (textContent: string, structuredData?: import('./index.type').StructuredData | undefined) => any;
99
- "update:modelValue": (value: string) => any;
100
- }, string, {
101
- size: "normal" | "small";
102
- placeholder: string;
103
- mode: import('./index.type').InputMode;
104
- enterkeyhint: import('./index.type').EnterKeyHint;
105
- autoSize: import('./index.type').AutoSize;
106
- hasExternalContent: boolean;
107
- extensions: import('@tiptap/core').Extension[] | any[];
108
- submitType: import('./index.type').SubmitTrigger;
109
- }, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & (new () => {
110
- $slots: {
111
- header?(_: {}): any;
112
- header?(_: {}): any;
113
- prefix?(_: {}): any;
114
- prefix?(_: {}): any;
115
- content?(_: {
116
- editor: import('@tiptap/vue-3').Editor | undefined;
117
- }): any;
118
- content?(_: {
119
- editor: import('vue').Ref<import('@tiptap/vue-3').Editor | undefined, import('@tiptap/vue-3').Editor | undefined>;
120
- }): any;
121
- 'actions-inline'?(_: {}): any;
122
- footer?(_: {}): any;
123
- 'footer-right'?(_: {}): any;
124
- };
125
- }) & {
126
- install: <T>(app: App<T>) => void;
127
- Mention: import('@tiptap/core').Node<import('./extensions').MentionOptions, any>;
128
- Suggestion: import('@tiptap/core').Extension<import('./index.type').SuggestionOptions, any>;
129
- Template: import('@tiptap/core').Extension<import('./extensions').TemplateOptions, any>;
130
- mention: typeof mention;
131
- suggestion: typeof suggestion;
132
- template: typeof template;
133
- };
134
- export default Sender;
135
- export type { SenderProps, SenderEmits, SenderSlots, SenderContext, UseEditorReturn, UseModeSwitchReturn, UseSuggestionReturn, UseKeyboardShortcutsReturn, TemplateItem, MentionItem, DefaultActions, } from './index.type';
136
- export { useSenderContext } from './context';
137
- export type { TemplateAttrs, TemplateOptions } from './extensions/template';
138
- export type { MentionAttrs, MentionOptions } from './extensions/mention';
139
- export type { SenderSuggestionItem, SuggestionOptions, SuggestionState, SuggestionTextPart, HighlightFunction, } from './extensions/suggestion';
@@ -1,311 +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
- * 是否存在外部可提交内容
104
- *
105
- * 用于附件、图片、文件列表等不写入编辑器文本的内容场景。
106
- * 当编辑器文本为空但该值为 true 时,Sender 仍会认为存在可提交内容。
107
- *
108
- * @default false
109
- */
110
- hasExternalContent?: boolean;
111
- /**
112
- * Tiptap 扩展配置
113
- *
114
- * 用于添加增强输入能力,如 Template、Mention、Suggestion 等
115
- *
116
- * @example 基础使用
117
- * ```typescript
118
- * import { Template } from '@tiny-robot/components/sender/extensions'
119
- *
120
- * <Sender :extensions="[Template]" />
121
- * ```
122
- *
123
- * @example 带配置的扩展(响应式推荐)
124
- * ```typescript
125
- * import { Mention, Suggestion } from '@tiny-robot/components/sender/extensions'
126
- *
127
- * const mentions = ref([...])
128
- * const suggestions = ref([...])
129
- *
130
- * const extensions = [
131
- * Mention.configure({ items: mentions }),
132
- * Suggestion.configure({ items: suggestions })
133
- * ]
134
- *
135
- * <Sender :extensions="extensions" />
136
- * ```
137
- */
138
- extensions?: Extension[] | any[];
139
- /**
140
- * 组件尺寸
141
- *
142
- * - normal: 正常尺寸(默认)
143
- * - small: 紧凑模式,更小的字体、间距和图标
144
- *
145
- * @default 'normal'
146
- */
147
- size?: 'normal' | 'small';
148
- /**
149
- * 停止按钮文字
150
- *
151
- * @default '停止响应'
152
- */
153
- stopText?: string;
154
- /**
155
- * 默认操作按钮配置
156
- *
157
- * 用于统一配置默认按钮(Clear、Submit)的状态和提示
158
- *
159
- * @example 基础使用
160
- * ```vue
161
- * <Sender
162
- * :actions-config="{
163
- * submit: { disabled: !isValid, tooltip: '请完善表单' }
164
- * }"
165
- * />
166
- * ```
167
- *
168
- * @example 动态配置
169
- * ```vue
170
- * <script setup>
171
- * const defaultActions = computed(() => ({
172
- * submit: {
173
- * disabled: !canSubmit.value,
174
- * tooltip: canSubmit.value ? '发送' : '请输入内容'
175
- * },
176
- * clear: { tooltip: '清空输入' }
177
- * }))
178
- * </script>
179
- *
180
- * <template>
181
- * <Sender :actions-config="defaultActions" />
182
- * </template>
183
- * ```
184
- *
185
- * @default undefined
186
- */
187
- defaultActions?: DefaultActions;
188
- /**
189
- * 提交触发方式
190
- *
191
- * @default 'enter'
192
- */
193
- submitType?: SubmitTrigger;
194
- }
195
- /**
196
- * Sender 组件 Emits
197
- */
198
- export interface SenderEmits {
199
- /**
200
- * 更新输入内容
201
- *
202
- * @param e - 事件名
203
- * @param value - 新内容
204
- */
205
- (e: 'update:modelValue', value: string): void;
206
- /**
207
- * 提交内容(增强版)
208
- *
209
- * @param e - 事件名
210
- * @param textContent - 提交的内容(纯文本,如 "帮我分析 @张三 的周报")
211
- * @param structuredData - 结构化数据(可选)
212
- *
213
- * @example
214
- * ```typescript
215
- * function handleSubmit(text: string, data?: StructuredData) {
216
- * console.log('纯文本:', text)
217
- *
218
- * if (data?.template) {
219
- * // Template 场景
220
- * console.log('模板数据:', data.template)
221
- * }
222
- *
223
- * if (data?.mentions) {
224
- * // Mention 场景
225
- * console.log('提及的人:', data.mentions)
226
- * }
227
- * }
228
- * ```
229
- */
230
- (e: 'submit', textContent: string, structuredData?: StructuredData): void;
231
- /**
232
- * 聚焦事件
233
- *
234
- * @param e - 事件名
235
- * @param event - 原生事件
236
- */
237
- (e: 'focus', event: FocusEvent): void;
238
- /**
239
- * 失焦事件
240
- *
241
- * @param e - 事件名
242
- * @param event - 原生事件
243
- */
244
- (e: 'blur', event: FocusEvent): void;
245
- /**
246
- * 清空事件
247
- *
248
- * @param e - 事件名
249
- */
250
- (e: 'clear'): void;
251
- /**
252
- * 取消事件
253
- *
254
- * 在 loading 状态下点击停止按钮时触发
255
- * 用于取消正在进行的操作(如 AI 响应)
256
- *
257
- * @param e - 事件名
258
- */
259
- (e: 'cancel'): void;
260
- /**
261
- * 输入事件
262
- *
263
- * @param e - 事件名
264
- * @param value - 当前内容
265
- */
266
- (e: 'input', value: string): void;
267
- }
268
- /**
269
- * Sender 组件 Slots
270
- */
271
- export interface SenderSlots {
272
- /**
273
- * 头部插槽
274
- */
275
- header?: () => unknown;
276
- /**
277
- * 前缀插槽
278
- */
279
- prefix?: () => unknown;
280
- /**
281
- * 内容插槽
282
- *
283
- * @param props - 插槽属性
284
- * @param props.editor - 编辑器实例
285
- */
286
- content?: (props: {
287
- editor: unknown;
288
- }) => unknown;
289
- /**
290
- * 单行模式内联操作按钮插槽
291
- *
292
- * @example
293
- * ```vue
294
- * <sender>
295
- * <template #actions-inline="{ insert, focus, disabled }">
296
- * <voice-input @result="insert" :disabled="disabled" />
297
- * <file-upload @select="handleFiles" />
298
- * </template>
299
- * </sender>
300
- * ```
301
- */
302
- 'actions-inline'?: (scope: SenderSlotScope) => unknown;
303
- /**
304
- * 底部插槽(多行模式)
305
- */
306
- footer?: (scope: SenderSlotScope) => unknown;
307
- /**
308
- * 底部右侧插槽(多行模式)
309
- */
310
- 'footer-right'?: (scope: SenderSlotScope) => unknown;
311
- }
@@ -1,93 +0,0 @@
1
- import { SenderProps } from './index.type';
2
- declare const props: Readonly<{
3
- modelValue: string;
4
- defaultValue: string;
5
- disabled: boolean;
6
- loading: boolean;
7
- autofocus: boolean;
8
- maxLength: number;
9
- showWordLimit: boolean;
10
- clearable: boolean;
11
- stopText: string;
12
- defaultActions: import('./index.type').DefaultActions;
13
- }> & {
14
- readonly placeholder: string;
15
- readonly mode: import('./index.type').InputMode;
16
- readonly size: "small" | "normal";
17
- readonly submitType: import('./index.type').SubmitTrigger;
18
- readonly enterkeyhint: import('./index.type').EnterKeyHint;
19
- readonly hasExternalContent: boolean;
20
- readonly extensions: any[] | import('@tiptap/core').Extension<any, any>[];
21
- readonly autoSize: import('./index.type').AutoSize;
22
- } & {
23
- readonly disabled: boolean;
24
- readonly loading: boolean;
25
- readonly autofocus: boolean;
26
- readonly showWordLimit: boolean;
27
- readonly clearable: boolean;
28
- readonly hasExternalContent: boolean;
29
- };
30
- export type SenderPropsWithDefaults = typeof props;
31
- declare function __VLS_template(): {
32
- attrs: Partial<{}>;
33
- slots: {
34
- header?(_: {}): any;
35
- header?(_: {}): any;
36
- prefix?(_: {}): any;
37
- prefix?(_: {}): any;
38
- content?(_: {
39
- editor: import('@tiptap/vue-3').Editor | undefined;
40
- }): any;
41
- content?(_: {
42
- editor: import('vue').Ref<import('@tiptap/vue-3').Editor | undefined, import('@tiptap/vue-3').Editor | undefined>;
43
- }): any;
44
- 'actions-inline'?(_: {}): any;
45
- footer?(_: {}): any;
46
- 'footer-right'?(_: {}): any;
47
- };
48
- refs: {};
49
- rootEl: HTMLDivElement;
50
- };
51
- type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
52
- declare const __VLS_component: import('vue').DefineComponent<SenderProps, {
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
- }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
62
- clear: () => any;
63
- input: (value: string) => any;
64
- blur: (event: FocusEvent) => any;
65
- cancel: () => any;
66
- focus: (event: FocusEvent) => any;
67
- submit: (textContent: string, structuredData?: import('./index.type').StructuredData | undefined) => any;
68
- "update:modelValue": (value: string) => any;
69
- }, string, import('vue').PublicProps, Readonly<SenderProps> & Readonly<{
70
- onClear?: (() => any) | undefined;
71
- onInput?: ((value: string) => any) | undefined;
72
- onBlur?: ((event: FocusEvent) => any) | undefined;
73
- onCancel?: (() => any) | undefined;
74
- onFocus?: ((event: FocusEvent) => any) | undefined;
75
- onSubmit?: ((textContent: string, structuredData?: import('./index.type').StructuredData | undefined) => any) | undefined;
76
- "onUpdate:modelValue"?: ((value: string) => any) | undefined;
77
- }>, {
78
- size: "normal" | "small";
79
- placeholder: string;
80
- mode: import('./index.type').InputMode;
81
- enterkeyhint: import('./index.type').EnterKeyHint;
82
- autoSize: import('./index.type').AutoSize;
83
- hasExternalContent: boolean;
84
- extensions: import('@tiptap/core').Extension[] | any[];
85
- submitType: import('./index.type').SubmitTrigger;
86
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
87
- declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
88
- export default _default;
89
- type __VLS_WithTemplateSlots<T, S> = T & {
90
- new (): {
91
- $slots: S;
92
- };
93
- };