@huyooo/ai-chat-frontend-react 0.2.45 → 0.3.6
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.
- package/dist/adapter.d.ts +58 -0
- package/dist/adapter.d.ts.map +1 -0
- package/dist/components/ChatPanel.d.ts +71 -0
- package/dist/components/ChatPanel.d.ts.map +1 -0
- package/dist/components/common/ConfirmDialog.d.ts +27 -0
- package/dist/components/common/ConfirmDialog.d.ts.map +1 -0
- package/dist/components/common/CopyButton.d.ts +15 -0
- package/dist/components/common/CopyButton.d.ts.map +1 -0
- package/dist/components/common/IndexingSettings.d.ts +3 -0
- package/dist/components/common/IndexingSettings.d.ts.map +1 -0
- package/dist/components/common/Toast.d.ts +12 -0
- package/dist/components/common/Toast.d.ts.map +1 -0
- package/dist/components/common/ToggleSwitch.d.ts +9 -0
- package/dist/components/common/ToggleSwitch.d.ts.map +1 -0
- package/dist/components/header/ChatHeader.d.ts +42 -0
- package/dist/components/header/ChatHeader.d.ts.map +1 -0
- package/dist/components/input/AtFilePicker.d.ts +16 -0
- package/dist/components/input/AtFilePicker.d.ts.map +1 -0
- package/dist/components/input/ChatInput.d.ts +49 -0
- package/dist/components/input/ChatInput.d.ts.map +1 -0
- package/dist/components/input/DropdownSelector.d.ts +46 -0
- package/dist/components/input/DropdownSelector.d.ts.map +1 -0
- package/dist/components/input/ImagePreviewModal.d.ts +11 -0
- package/dist/components/input/ImagePreviewModal.d.ts.map +1 -0
- package/dist/components/input/QueuedMessageList.d.ts +11 -0
- package/dist/components/input/QueuedMessageList.d.ts.map +1 -0
- package/dist/components/input/at-views/AtChatsView.d.ts +17 -0
- package/dist/components/input/at-views/AtChatsView.d.ts.map +1 -0
- package/dist/components/input/at-views/AtDocsView.d.ts +17 -0
- package/dist/components/input/at-views/AtDocsView.d.ts.map +1 -0
- package/dist/components/input/at-views/AtFilesView.d.ts +26 -0
- package/dist/components/input/at-views/AtFilesView.d.ts.map +1 -0
- package/dist/components/input/at-views/AtTerminalsView.d.ts +17 -0
- package/dist/components/input/at-views/AtTerminalsView.d.ts.map +1 -0
- package/dist/components/input/at-views/index.d.ts +9 -0
- package/dist/components/input/at-views/index.d.ts.map +1 -0
- package/dist/components/input/at-views/useAtViewTooltip.d.ts +12 -0
- package/dist/components/input/at-views/useAtViewTooltip.d.ts.map +1 -0
- package/dist/components/input/atContextItems.d.ts +9 -0
- package/dist/components/input/atContextItems.d.ts.map +1 -0
- package/dist/components/input/atContextToolHints.d.ts +2 -0
- package/dist/components/input/atContextToolHints.d.ts.map +1 -0
- package/dist/components/message/MessageBubble.d.ts +69 -0
- package/dist/components/message/MessageBubble.d.ts.map +1 -0
- package/dist/components/message/PartsRenderer.d.ts +22 -0
- package/dist/components/message/PartsRenderer.d.ts.map +1 -0
- package/dist/components/message/WelcomeMessage.d.ts +16 -0
- package/dist/components/message/WelcomeMessage.d.ts.map +1 -0
- package/dist/components/message/parts/CollapsibleCard.d.ts +29 -0
- package/dist/components/message/parts/CollapsibleCard.d.ts.map +1 -0
- package/dist/components/message/parts/CompactPart.d.ts +14 -0
- package/dist/components/message/parts/CompactPart.d.ts.map +1 -0
- package/dist/components/message/parts/ContentCompressPart.d.ts +13 -0
- package/dist/components/message/parts/ContentCompressPart.d.ts.map +1 -0
- package/dist/components/message/parts/ErrorPart.d.ts +10 -0
- package/dist/components/message/parts/ErrorPart.d.ts.map +1 -0
- package/dist/components/message/parts/ExtensionPartHost.d.ts +15 -0
- package/dist/components/message/parts/ExtensionPartHost.d.ts.map +1 -0
- package/dist/components/message/parts/ImagePart.d.ts +9 -0
- package/dist/components/message/parts/ImagePart.d.ts.map +1 -0
- package/dist/components/message/parts/PlanPart.d.ts +11 -0
- package/dist/components/message/parts/PlanPart.d.ts.map +1 -0
- package/dist/components/message/parts/TavilySearchPart.d.ts +18 -0
- package/dist/components/message/parts/TavilySearchPart.d.ts.map +1 -0
- package/dist/components/message/parts/TextPart.d.ts +9 -0
- package/dist/components/message/parts/TextPart.d.ts.map +1 -0
- package/dist/components/message/parts/ThinkingPart.d.ts +12 -0
- package/dist/components/message/parts/ThinkingPart.d.ts.map +1 -0
- package/dist/components/message/parts/ToolCallPart.d.ts +35 -0
- package/dist/components/message/parts/ToolCallPart.d.ts.map +1 -0
- package/dist/components/message/parts/ZhipuSearchPart.d.ts +20 -0
- package/dist/components/message/parts/ZhipuSearchPart.d.ts.map +1 -0
- package/dist/components/message/parts/index.d.ts +20 -0
- package/dist/components/message/parts/index.d.ts.map +1 -0
- package/dist/components/message/parts/tool-call-display.d.ts +26 -0
- package/dist/components/message/parts/tool-call-display.d.ts.map +1 -0
- package/dist/components/message/parts/visual-predicate.d.ts +7 -0
- package/dist/components/message/parts/visual-predicate.d.ts.map +1 -0
- package/dist/components/message/parts/visual-render.d.ts +2 -0
- package/dist/components/message/parts/visual-render.d.ts.map +1 -0
- package/dist/components/message/parts/visual.d.ts +3 -0
- package/dist/components/message/parts/visual.d.ts.map +1 -0
- package/dist/components/message/welcome-types.d.ts +28 -0
- package/dist/components/message/welcome-types.d.ts.map +1 -0
- package/dist/context/AutoRunConfigContext.d.ts +8 -0
- package/dist/context/AutoRunConfigContext.d.ts.map +1 -0
- package/dist/context/ChatAdapterContext.d.ts +4 -0
- package/dist/context/ChatAdapterContext.d.ts.map +1 -0
- package/dist/context/ChatInputContext.d.ts +51 -0
- package/dist/context/ChatInputContext.d.ts.map +1 -0
- package/dist/context/PartLoaderContext.d.ts +25 -0
- package/dist/context/PartLoaderContext.d.ts.map +1 -0
- package/dist/context/RenderersContext.d.ts +22 -0
- package/dist/context/RenderersContext.d.ts.map +1 -0
- package/dist/hooks/chat/types.d.ts +109 -0
- package/dist/hooks/chat/types.d.ts.map +1 -0
- package/dist/hooks/chat/useCapabilityConfig.d.ts +35 -0
- package/dist/hooks/chat/useCapabilityConfig.d.ts.map +1 -0
- package/dist/hooks/chat/useMessageActions.d.ts +13 -0
- package/dist/hooks/chat/useMessageActions.d.ts.map +1 -0
- package/dist/hooks/chat/useMessageSender.d.ts +15 -0
- package/dist/hooks/chat/useMessageSender.d.ts.map +1 -0
- package/dist/hooks/chat/useSessionManager.d.ts +18 -0
- package/dist/hooks/chat/useSessionManager.d.ts.map +1 -0
- package/dist/hooks/chat/utils.d.ts +20 -0
- package/dist/hooks/chat/utils.d.ts.map +1 -0
- package/dist/hooks/useChat.d.ts +105 -0
- package/dist/hooks/useChat.d.ts.map +1 -0
- package/dist/hooks/useImageUpload.d.ts +56 -0
- package/dist/hooks/useImageUpload.d.ts.map +1 -0
- package/dist/hooks/useVoiceInput.d.ts +26 -0
- package/dist/hooks/useVoiceInput.d.ts.map +1 -0
- package/dist/hooks/useVoiceToTextInput.d.ts +22 -0
- package/dist/hooks/useVoiceToTextInput.d.ts.map +1 -0
- package/dist/icons.d.ts +2 -0
- package/dist/icons.d.ts.map +1 -0
- package/dist/index.d.ts +55 -684
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +34 -1
- package/dist/style.css +103 -0
- package/dist/types/index.d.ts +251 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/utils/applyToolCallResult.d.ts +8 -0
- package/dist/utils/applyToolCallResult.d.ts.map +1 -0
- package/dist/utils/applyToolCallResult.test.d.ts +2 -0
- package/dist/utils/applyToolCallResult.test.d.ts.map +1 -0
- package/package.json +19 -11
- package/dist/KaTeX_AMS-Regular-CYEKBG2K.woff +0 -0
- package/dist/KaTeX_AMS-Regular-JKX5W2C4.ttf +0 -0
- package/dist/KaTeX_AMS-Regular-U6PRYMIZ.woff2 +0 -0
- package/dist/KaTeX_Caligraphic-Bold-5QL5CMTE.woff2 +0 -0
- package/dist/KaTeX_Caligraphic-Bold-WZ3QSGD3.woff +0 -0
- package/dist/KaTeX_Caligraphic-Bold-ZTS3R3HK.ttf +0 -0
- package/dist/KaTeX_Caligraphic-Regular-3LKEU76G.woff +0 -0
- package/dist/KaTeX_Caligraphic-Regular-A7XRTZ5Q.ttf +0 -0
- package/dist/KaTeX_Caligraphic-Regular-KX5MEWCF.woff2 +0 -0
- package/dist/KaTeX_Fraktur-Bold-2QVFK6NQ.woff2 +0 -0
- package/dist/KaTeX_Fraktur-Bold-T4SWXBMT.woff +0 -0
- package/dist/KaTeX_Fraktur-Bold-WGHVTYOR.ttf +0 -0
- package/dist/KaTeX_Fraktur-Regular-2PEIFJSJ.woff2 +0 -0
- package/dist/KaTeX_Fraktur-Regular-5U4OPH2X.ttf +0 -0
- package/dist/KaTeX_Fraktur-Regular-PQMHCIK6.woff +0 -0
- package/dist/KaTeX_Main-Bold-2GA4IZIN.woff +0 -0
- package/dist/KaTeX_Main-Bold-W5FBVCZM.ttf +0 -0
- package/dist/KaTeX_Main-Bold-YP5VVQRP.woff2 +0 -0
- package/dist/KaTeX_Main-BoldItalic-4P4C7HJH.woff +0 -0
- package/dist/KaTeX_Main-BoldItalic-N4V3DX7S.woff2 +0 -0
- package/dist/KaTeX_Main-BoldItalic-ODMLBJJQ.ttf +0 -0
- package/dist/KaTeX_Main-Italic-I43T2HSR.ttf +0 -0
- package/dist/KaTeX_Main-Italic-RELBIK7M.woff2 +0 -0
- package/dist/KaTeX_Main-Italic-SASNQFN2.woff +0 -0
- package/dist/KaTeX_Main-Regular-ARRPAO67.woff2 +0 -0
- package/dist/KaTeX_Main-Regular-P5I74A2A.woff +0 -0
- package/dist/KaTeX_Main-Regular-W74P5G27.ttf +0 -0
- package/dist/KaTeX_Math-BoldItalic-6EBV3DK5.woff +0 -0
- package/dist/KaTeX_Math-BoldItalic-K4WTGH3J.woff2 +0 -0
- package/dist/KaTeX_Math-BoldItalic-VB447A4D.ttf +0 -0
- package/dist/KaTeX_Math-Italic-6KGCHLFN.woff2 +0 -0
- package/dist/KaTeX_Math-Italic-KKK3USB2.woff +0 -0
- package/dist/KaTeX_Math-Italic-SON4MRCA.ttf +0 -0
- package/dist/KaTeX_SansSerif-Bold-RRNVJFFW.woff2 +0 -0
- package/dist/KaTeX_SansSerif-Bold-STQ6RXC7.ttf +0 -0
- package/dist/KaTeX_SansSerif-Bold-X5M5EMOD.woff +0 -0
- package/dist/KaTeX_SansSerif-Italic-HMPFTM52.woff2 +0 -0
- package/dist/KaTeX_SansSerif-Italic-PSN4QKYX.woff +0 -0
- package/dist/KaTeX_SansSerif-Italic-WTBAZBGY.ttf +0 -0
- package/dist/KaTeX_SansSerif-Regular-2TL3USAE.ttf +0 -0
- package/dist/KaTeX_SansSerif-Regular-OQCII6EP.woff +0 -0
- package/dist/KaTeX_SansSerif-Regular-XIQ62X4E.woff2 +0 -0
- package/dist/KaTeX_Script-Regular-72OLXYNA.ttf +0 -0
- package/dist/KaTeX_Script-Regular-A5IFOEBS.woff +0 -0
- package/dist/KaTeX_Script-Regular-APUWIHLP.woff2 +0 -0
- package/dist/KaTeX_Size1-Regular-4HRHTS65.woff +0 -0
- package/dist/KaTeX_Size1-Regular-5LRUTBFT.woff2 +0 -0
- package/dist/KaTeX_Size1-Regular-7K6AASVL.ttf +0 -0
- package/dist/KaTeX_Size2-Regular-222HN3GT.ttf +0 -0
- package/dist/KaTeX_Size2-Regular-K5ZHAIS6.woff +0 -0
- package/dist/KaTeX_Size2-Regular-LELKET5D.woff2 +0 -0
- package/dist/KaTeX_Size3-Regular-TLFPAHDE.woff +0 -0
- package/dist/KaTeX_Size3-Regular-UFCO6WCA.ttf +0 -0
- package/dist/KaTeX_Size3-Regular-WQRQ47UD.woff2 +0 -0
- package/dist/KaTeX_Size4-Regular-7PGNVPQK.ttf +0 -0
- package/dist/KaTeX_Size4-Regular-CDMV7U5C.woff2 +0 -0
- package/dist/KaTeX_Size4-Regular-PKMWZHNC.woff +0 -0
- package/dist/KaTeX_Typewriter-Regular-3F5K6SQ6.ttf +0 -0
- package/dist/KaTeX_Typewriter-Regular-MJMFSK64.woff +0 -0
- package/dist/KaTeX_Typewriter-Regular-VBYJ4NRC.woff2 +0 -0
- package/dist/index.css +0 -4017
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Chat Adapter 辅助类型和工具
|
|
3
|
+
* 核心 ChatAdapter 接口从 bridge-electron 导入
|
|
4
|
+
*/
|
|
5
|
+
import type { ChatAdapter, ChatMode, ThinkingMode, FileInfo, MessagePartInput } from '@huyooo/ai-chat-bridge-electron/renderer';
|
|
6
|
+
/**
|
|
7
|
+
* 重新导出 ChatAdapter 类型供内部组件使用
|
|
8
|
+
*/
|
|
9
|
+
export type { ChatAdapter, FileInfo };
|
|
10
|
+
/** 思考数据 */
|
|
11
|
+
export interface ThinkingData {
|
|
12
|
+
content: string;
|
|
13
|
+
isComplete: boolean;
|
|
14
|
+
}
|
|
15
|
+
/** 工具调用数据 */
|
|
16
|
+
export interface ToolCallData {
|
|
17
|
+
name: string;
|
|
18
|
+
args: Record<string, unknown>;
|
|
19
|
+
}
|
|
20
|
+
/** 工具结果数据 */
|
|
21
|
+
export interface ToolResultData {
|
|
22
|
+
name: string;
|
|
23
|
+
result: string;
|
|
24
|
+
}
|
|
25
|
+
/** 图片数据 */
|
|
26
|
+
export interface ImageData {
|
|
27
|
+
base64: string;
|
|
28
|
+
mimeType: string;
|
|
29
|
+
}
|
|
30
|
+
/** 发送消息选项 */
|
|
31
|
+
export interface SendMessageOptions {
|
|
32
|
+
mode: ChatMode;
|
|
33
|
+
model: string;
|
|
34
|
+
enableWebSearch: boolean;
|
|
35
|
+
/** 深度思考开关(每个 provider 内部使用最优参数) */
|
|
36
|
+
thinkingMode: ThinkingMode;
|
|
37
|
+
}
|
|
38
|
+
/** 创建会话选项 */
|
|
39
|
+
export interface CreateSessionOptions {
|
|
40
|
+
title: string;
|
|
41
|
+
model: string;
|
|
42
|
+
mode: ChatMode;
|
|
43
|
+
}
|
|
44
|
+
/** 更新会话选项 */
|
|
45
|
+
export interface UpdateSessionOptions {
|
|
46
|
+
title?: string;
|
|
47
|
+
model?: string;
|
|
48
|
+
mode?: ChatMode;
|
|
49
|
+
}
|
|
50
|
+
/** 保存消息选项 */
|
|
51
|
+
export interface SaveMessageOptions {
|
|
52
|
+
sessionId: string;
|
|
53
|
+
role: 'user' | 'assistant';
|
|
54
|
+
content: string;
|
|
55
|
+
parts?: MessagePartInput[];
|
|
56
|
+
operationIds?: string;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAA;AAE/H;;GAEG;AACH,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAA;AAErC,WAAW;AACX,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,aAAa;AACb,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC9B;AAED,aAAa;AACb,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;CACf;AAED,WAAW;AACX,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,aAAa;AACb,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,QAAQ,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,eAAe,EAAE,OAAO,CAAA;IACxB,mCAAmC;IACnC,YAAY,EAAE,YAAY,CAAA;CAC3B;AAED,aAAa;AACb,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,QAAQ,CAAA;CACf;AAED,aAAa;AACb,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,QAAQ,CAAA;CAChB;AAED,aAAa;AACb,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ChatPanel Component
|
|
3
|
+
* 与 Vue 版本 ChatPanel.vue 保持一致
|
|
4
|
+
*/
|
|
5
|
+
import { type ChatRuntime, type ToolCompleteEvent } from '../hooks/useChat';
|
|
6
|
+
import type { ChatAdapter, ModelOption, ChatMode } from '@huyooo/ai-chat-bridge-electron/renderer';
|
|
7
|
+
import type { WelcomeConfig } from './message/welcome-types';
|
|
8
|
+
import { type PartRenderers } from '../context/RenderersContext';
|
|
9
|
+
/** ChatPanel 暴露给外部的方法 */
|
|
10
|
+
export interface ChatPanelHandle {
|
|
11
|
+
/** 设置输入框内容 */
|
|
12
|
+
setInputText: (text: string) => void;
|
|
13
|
+
/** 在当前光标位置插入文本 */
|
|
14
|
+
insertInputText: (text: string) => void;
|
|
15
|
+
/** 聚焦输入框 */
|
|
16
|
+
focusInput: () => void;
|
|
17
|
+
/** 发送消息 */
|
|
18
|
+
sendMessage: (text: string) => void;
|
|
19
|
+
/** 设置当前工作目录 */
|
|
20
|
+
setCwd: (dir: string) => void;
|
|
21
|
+
/** 重新加载聊天能力快照 */
|
|
22
|
+
loadCapabilities: () => Promise<void>;
|
|
23
|
+
/** 重新从宿主拉取聊天能力与偏好 */
|
|
24
|
+
reloadCapabilities: () => Promise<void>;
|
|
25
|
+
}
|
|
26
|
+
interface ChatPanelProps {
|
|
27
|
+
/** Adapter 实例 */
|
|
28
|
+
adapter: ChatAdapter;
|
|
29
|
+
/** 外部持久化聊天运行时;未传入时组件内部自行创建 */
|
|
30
|
+
runtime?: ChatRuntime;
|
|
31
|
+
/** 默认模型 */
|
|
32
|
+
defaultModel?: string;
|
|
33
|
+
/** 默认模式 */
|
|
34
|
+
defaultMode?: ChatMode;
|
|
35
|
+
/** 可用模型列表 */
|
|
36
|
+
models?: ModelOption[];
|
|
37
|
+
/** 隐藏标题栏 */
|
|
38
|
+
hideHeader?: boolean;
|
|
39
|
+
/** 面板当前是否可见 */
|
|
40
|
+
visible?: boolean;
|
|
41
|
+
/** 关闭回调(有此属性时显示关闭按钮) */
|
|
42
|
+
onClose?: () => void;
|
|
43
|
+
/** 工具执行完成回调 */
|
|
44
|
+
onToolComplete?: (event: ToolCompleteEvent) => void;
|
|
45
|
+
/** 显示会话审计入口 */
|
|
46
|
+
showAuditAction?: boolean;
|
|
47
|
+
/** 点击审计入口 */
|
|
48
|
+
onAuditSession?: (sessionId: string) => void;
|
|
49
|
+
/** 自定义类名 */
|
|
50
|
+
className?: string;
|
|
51
|
+
/** 欢迎页配置 */
|
|
52
|
+
welcomeConfig?: Partial<WelcomeConfig>;
|
|
53
|
+
/** 自定义 Part 渲染器 - 根据 part.type 选择渲染组件(如 weather, stock 等) */
|
|
54
|
+
partRenderers?: PartRenderers;
|
|
55
|
+
/**
|
|
56
|
+
* 执行步骤折叠模式
|
|
57
|
+
* - 'open': 始终展开
|
|
58
|
+
* - 'close': 始终折叠
|
|
59
|
+
* - 'auto': 执行时展开,完成后折叠
|
|
60
|
+
*/
|
|
61
|
+
stepsExpandedType?: 'open' | 'close' | 'auto';
|
|
62
|
+
/** 打开 Skills 目录回调(宿主应用处理) */
|
|
63
|
+
onOpenSkillsDir?: () => void;
|
|
64
|
+
/** 当前浏览目录(用于 @ 文件面板默认定位) */
|
|
65
|
+
currentPath?: string;
|
|
66
|
+
/** @ 文件面板的回退根目录 */
|
|
67
|
+
rootDir?: string;
|
|
68
|
+
}
|
|
69
|
+
export declare const ChatPanel: import("react").ForwardRefExoticComponent<ChatPanelProps & import("react").RefAttributes<ChatPanelHandle>>;
|
|
70
|
+
export {};
|
|
71
|
+
//# sourceMappingURL=ChatPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatPanel.d.ts","sourceRoot":"","sources":["../../src/components/ChatPanel.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAW,KAAK,WAAW,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAEpF,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,0CAA0C,CAAA;AAIlG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAI5D,OAAO,EAAyB,KAAK,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAKvF,yBAAyB;AACzB,MAAM,WAAW,eAAe;IAC9B,cAAc;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACpC,kBAAkB;IAClB,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,YAAY;IACZ,UAAU,EAAE,MAAM,IAAI,CAAA;IACtB,WAAW;IACX,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACnC,eAAe;IACf,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7B,iBAAiB;IACjB,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACrC,qBAAqB;IACrB,kBAAkB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CACxC;AAED,UAAU,cAAc;IACtB,iBAAiB;IACjB,OAAO,EAAE,WAAW,CAAA;IACpB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,WAAW,CAAA;IACrB,WAAW;IACX,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW;IACX,WAAW,CAAC,EAAE,QAAQ,CAAA;IACtB,aAAa;IACb,MAAM,CAAC,EAAE,WAAW,EAAE,CAAA;IACtB,YAAY;IACZ,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,eAAe;IACf,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,wBAAwB;IACxB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,eAAe;IACf,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAA;IACnD,eAAe;IACf,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,aAAa;IACb,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IAC5C,YAAY;IACZ,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY;IACZ,aAAa,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA;IACtC,6DAA6D;IAC7D,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAA;IAC7C,6BAA6B;IAC7B,eAAe,CAAC,EAAE,MAAM,IAAI,CAAA;IAC5B,4BAA4B;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,mBAAmB;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,eAAO,MAAM,SAAS,4GAyjBpB,CAAA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ConfirmDialog Component
|
|
3
|
+
* 自定义确认弹窗组件
|
|
4
|
+
*/
|
|
5
|
+
import { type FC } from 'react';
|
|
6
|
+
import './ConfirmDialog.css';
|
|
7
|
+
interface ConfirmDialogProps {
|
|
8
|
+
/** 是否显示 */
|
|
9
|
+
visible: boolean;
|
|
10
|
+
/** 标题 */
|
|
11
|
+
title?: string;
|
|
12
|
+
/** 消息内容 */
|
|
13
|
+
message: string;
|
|
14
|
+
/** 类型:info | warning | danger */
|
|
15
|
+
type?: 'info' | 'warning' | 'danger';
|
|
16
|
+
/** 确认按钮文字 */
|
|
17
|
+
confirmText?: string;
|
|
18
|
+
/** 取消按钮文字 */
|
|
19
|
+
cancelText?: string;
|
|
20
|
+
/** 确认回调 */
|
|
21
|
+
onConfirm?: () => void;
|
|
22
|
+
/** 取消回调 */
|
|
23
|
+
onCancel?: () => void;
|
|
24
|
+
}
|
|
25
|
+
export declare const ConfirmDialog: FC<ConfirmDialogProps>;
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=ConfirmDialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfirmDialog.d.ts","sourceRoot":"","sources":["../../../src/components/common/ConfirmDialog.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAE,EAAa,MAAM,OAAO,CAAA;AAG1C,OAAO,qBAAqB,CAAA;AAE5B,UAAU,kBAAkB;IAC1B,WAAW;IACX,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS;IACT,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW;IACX,OAAO,EAAE,MAAM,CAAA;IACf,iCAAiC;IACjC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAA;IACpC,aAAa;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW;IACX,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,WAAW;IACX,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;CACtB;AAED,eAAO,MAAM,aAAa,EAAE,EAAE,CAAC,kBAAkB,CA6DhD,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
import './CopyButton.css';
|
|
3
|
+
interface CopyButtonProps {
|
|
4
|
+
/** 要复制的文本 */
|
|
5
|
+
text: string;
|
|
6
|
+
/** 按钮标题 */
|
|
7
|
+
title?: string;
|
|
8
|
+
/** 图标大小 */
|
|
9
|
+
size?: number;
|
|
10
|
+
/** 复制成功回调 */
|
|
11
|
+
onCopy?: (text: string) => void;
|
|
12
|
+
}
|
|
13
|
+
export declare const CopyButton: FC<CopyButtonProps>;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=CopyButton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CopyButton.d.ts","sourceRoot":"","sources":["../../../src/components/common/CopyButton.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAyB,MAAM,OAAO,CAAA;AAEjD,OAAO,kBAAkB,CAAA;AAEzB,UAAU,eAAe;IACvB,aAAa;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,aAAa;IACb,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAChC;AAED,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CA6B1C,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IndexingSettings.d.ts","sourceRoot":"","sources":["../../../src/components/common/IndexingSettings.tsx"],"names":[],"mappings":"AAGA,OAAO,wBAAwB,CAAA;AAE/B,wBAAgB,gBAAgB,4CAuY/B"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
import './Toast.css';
|
|
3
|
+
interface ToastProps {
|
|
4
|
+
visible: boolean;
|
|
5
|
+
message: string;
|
|
6
|
+
type?: 'info' | 'success' | 'warning' | 'error';
|
|
7
|
+
duration?: number;
|
|
8
|
+
onClose: () => void;
|
|
9
|
+
}
|
|
10
|
+
export declare const Toast: FC<ToastProps>;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=Toast.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Toast.d.ts","sourceRoot":"","sources":["../../../src/components/common/Toast.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAa,MAAM,OAAO,CAAA;AAErC,OAAO,aAAa,CAAA;AAEpB,UAAU,UAAU;IAClB,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,CAAA;IAC/C,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAED,eAAO,MAAM,KAAK,EAAE,EAAE,CAAC,UAAU,CAyBhC,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { FC } from 'react';
|
|
2
|
+
import './ToggleSwitch.css';
|
|
3
|
+
interface ToggleSwitchProps {
|
|
4
|
+
checked?: boolean;
|
|
5
|
+
onChange: (value: boolean) => void;
|
|
6
|
+
}
|
|
7
|
+
export declare const ToggleSwitch: FC<ToggleSwitchProps>;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=ToggleSwitch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToggleSwitch.d.ts","sourceRoot":"","sources":["../../../src/components/common/ToggleSwitch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAC/B,OAAO,oBAAoB,CAAA;AAE3B,UAAU,iBAAiB;IACzB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CACnC;AAED,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,iBAAiB,CAW9C,CAAA"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ChatHeader Component
|
|
3
|
+
* 与 Vue 版本 ChatHeader.vue 保持一致
|
|
4
|
+
*/
|
|
5
|
+
import { type FC } from 'react';
|
|
6
|
+
import './ChatHeader.css';
|
|
7
|
+
import type { SessionRecord } from '../../types';
|
|
8
|
+
interface ChatHeaderProps {
|
|
9
|
+
/** 当前会话列表 */
|
|
10
|
+
sessions: SessionRecord[];
|
|
11
|
+
/** 当前会话 ID */
|
|
12
|
+
currentSessionId?: string | null;
|
|
13
|
+
/** 是否显示关闭按钮 */
|
|
14
|
+
showClose?: boolean;
|
|
15
|
+
/** 是否显示审计入口 */
|
|
16
|
+
showAudit?: boolean;
|
|
17
|
+
/** 创建新会话 */
|
|
18
|
+
onNewSession?: () => void;
|
|
19
|
+
/** 切换会话 */
|
|
20
|
+
onSwitchSession?: (sessionId: string) => void;
|
|
21
|
+
/** 删除会话 */
|
|
22
|
+
onDeleteSession?: (sessionId: string) => void;
|
|
23
|
+
/** 隐藏/显示会话(在 tab 栏关闭但不删除) */
|
|
24
|
+
onHideSession?: (sessionId: string, hidden: boolean) => void;
|
|
25
|
+
/** 关闭面板 */
|
|
26
|
+
onClose?: () => void;
|
|
27
|
+
/** 清空所有对话 */
|
|
28
|
+
onClearAll?: () => void;
|
|
29
|
+
/** 关闭其他对话 */
|
|
30
|
+
onCloseOthers?: () => void;
|
|
31
|
+
/** 导出对话 */
|
|
32
|
+
onExport?: () => void;
|
|
33
|
+
/** 复制会话 ID */
|
|
34
|
+
onCopyId?: () => void;
|
|
35
|
+
/** 打开会话审计 */
|
|
36
|
+
onAudit?: () => void;
|
|
37
|
+
/** 反馈 */
|
|
38
|
+
onFeedback?: () => void;
|
|
39
|
+
}
|
|
40
|
+
export declare const ChatHeader: FC<ChatHeaderProps>;
|
|
41
|
+
export {};
|
|
42
|
+
//# sourceMappingURL=ChatHeader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatHeader.d.ts","sourceRoot":"","sources":["../../../src/components/header/ChatHeader.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAqD,KAAK,EAAE,EAAE,MAAM,OAAO,CAAA;AAClF,OAAO,kBAAkB,CAAA;AAEzB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD,UAAU,eAAe;IACvB,aAAa;IACb,QAAQ,EAAE,aAAa,EAAE,CAAA;IACzB,cAAc;IACd,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,eAAe;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,eAAe;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,YAAY;IACZ,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;IACzB,WAAW;IACX,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7C,WAAW;IACX,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7C,6BAA6B;IAC7B,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAA;IAC5D,WAAW;IACX,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,aAAa;IACb,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;IACvB,aAAa;IACb,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;IAC1B,WAAW;IACX,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB,cAAc;IACd,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB,aAAa;IACb,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,SAAS;IACT,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;CACxB;AA4DD,eAAO,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CAma1C,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ChatAdapter } from '../../adapter';
|
|
2
|
+
import type { AtContextItem } from '@huyooo/ai-chat-types';
|
|
3
|
+
import './AtFilePicker.css';
|
|
4
|
+
export interface AtFilePickerProps {
|
|
5
|
+
visible: boolean;
|
|
6
|
+
adapter: ChatAdapter;
|
|
7
|
+
initialDir?: string;
|
|
8
|
+
rootDir?: string;
|
|
9
|
+
selectedMentions?: string[];
|
|
10
|
+
/** 锚点元素(用于定位下拉面板) */
|
|
11
|
+
anchorEl?: HTMLElement | null;
|
|
12
|
+
onClose: () => void;
|
|
13
|
+
onSelect: (item: AtContextItem) => void;
|
|
14
|
+
}
|
|
15
|
+
export declare function AtFilePicker({ visible, adapter, initialDir, rootDir, selectedMentions, anchorEl, onClose, onSelect, }: AtFilePickerProps): import("react").ReactPortal | null;
|
|
16
|
+
//# sourceMappingURL=AtFilePicker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AtFilePicker.d.ts","sourceRoot":"","sources":["../../../src/components/input/AtFilePicker.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD,OAAO,KAAK,EACV,aAAa,EAMd,MAAM,uBAAuB,CAAA;AAO9B,OAAO,oBAAoB,CAAA;AAE3B,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,WAAW,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,qBAAqB;IACrB,QAAQ,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IAC7B,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,QAAQ,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAA;CACxC;AA0ED,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,OAAO,EACP,UAAU,EACV,OAAO,EACP,gBAAgB,EAChB,QAAQ,EACR,OAAO,EACP,QAAQ,GACT,EAAE,iBAAiB,sCAu+BnB"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ChatInput Component
|
|
3
|
+
* 与 Vue 版本 ChatInput.vue 保持一致
|
|
4
|
+
*/
|
|
5
|
+
import './ChatInput.css';
|
|
6
|
+
import type { ChatMode, ModelOption } from '../../types';
|
|
7
|
+
import type { ImageData } from '../../adapter';
|
|
8
|
+
import type { AtContextItem } from '@huyooo/ai-chat-types';
|
|
9
|
+
/** ChatInput 暴露给外部的方法 */
|
|
10
|
+
export interface ChatInputHandle {
|
|
11
|
+
/** 设置输入框内容 */
|
|
12
|
+
setText: (text: string) => void;
|
|
13
|
+
/** 聚焦输入框 */
|
|
14
|
+
focus: () => void;
|
|
15
|
+
/** 清空输入框 */
|
|
16
|
+
clear: () => void;
|
|
17
|
+
/** 在当前光标位置插入文本 */
|
|
18
|
+
insertText: (text: string) => void;
|
|
19
|
+
/** 添加图片 */
|
|
20
|
+
addImages: (files: File[]) => void;
|
|
21
|
+
}
|
|
22
|
+
interface ChatInputProps {
|
|
23
|
+
/** 变体模式:input-底部输入框,message-历史消息 */
|
|
24
|
+
variant?: 'input' | 'message';
|
|
25
|
+
/** 受控值(用于历史消息编辑) */
|
|
26
|
+
value?: string;
|
|
27
|
+
/** 受控提及资源(用于历史消息编辑) */
|
|
28
|
+
atContextItems?: AtContextItem[];
|
|
29
|
+
/** 图片数据(用于历史消息编辑) */
|
|
30
|
+
images?: string[];
|
|
31
|
+
isLoading?: boolean;
|
|
32
|
+
currentPath?: string;
|
|
33
|
+
rootDir?: string;
|
|
34
|
+
mode?: ChatMode;
|
|
35
|
+
model?: string;
|
|
36
|
+
/** 模型列表(tooltip 由后端下发,前端仅透传渲染) */
|
|
37
|
+
models?: ModelOption[];
|
|
38
|
+
webSearchEnabled?: boolean;
|
|
39
|
+
thinkingEnabled?: boolean;
|
|
40
|
+
onSend?: (text: string, images?: ImageData[], atContextItems?: AtContextItem[]) => void;
|
|
41
|
+
onCancel?: () => void;
|
|
42
|
+
onModeChange?: (mode: ChatMode) => void;
|
|
43
|
+
onModelChange?: (model: string) => void;
|
|
44
|
+
onWebSearchChange?: (enabled: boolean) => void;
|
|
45
|
+
onThinkingChange?: (enabled: boolean) => void;
|
|
46
|
+
}
|
|
47
|
+
export declare const ChatInput: import("react").ForwardRefExoticComponent<ChatInputProps & import("react").RefAttributes<ChatInputHandle>>;
|
|
48
|
+
export {};
|
|
49
|
+
//# sourceMappingURL=ChatInput.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatInput.d.ts","sourceRoot":"","sources":["../../../src/components/input/ChatInput.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAQzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAI3D,yBAAyB;AACzB,MAAM,WAAW,eAAe;IAC9B,cAAc;IACd,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,YAAY;IACZ,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,YAAY;IACZ,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,kBAAkB;IAClB,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,WAAW;IACX,SAAS,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;CACpC;AAED,UAAU,cAAc;IACtB,oCAAoC;IACpC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,qBAAqB;IACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,EAAE,cAAc,CAAC,EAAE,aAAa,EAAE,KAAK,IAAI,CAAC;IACxF,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACxC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/C,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CAC/C;AAmBD,eAAO,MAAM,SAAS,4GA+oBrB,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DropdownSelector Component
|
|
3
|
+
* 与 Vue 版本 DropdownSelector.vue 保持一致
|
|
4
|
+
* 前端只负责渲染,分组数据由后端提供
|
|
5
|
+
*/
|
|
6
|
+
import './DropdownSelector.css';
|
|
7
|
+
/** 下拉选项 */
|
|
8
|
+
export interface DropdownOption {
|
|
9
|
+
value: string;
|
|
10
|
+
label: string;
|
|
11
|
+
icon?: string;
|
|
12
|
+
/** 分组名称(由后端决定,前端只负责渲染) */
|
|
13
|
+
group?: string;
|
|
14
|
+
/** 模型特性信息(用于 hover 提示) */
|
|
15
|
+
tooltip?: {
|
|
16
|
+
/** 可用功能列表 */
|
|
17
|
+
features?: string[];
|
|
18
|
+
/** 开销信息(数组,分行显示) */
|
|
19
|
+
cost?: string[];
|
|
20
|
+
/** 其他描述信息 */
|
|
21
|
+
description?: string;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
/** 分组后的选项(由后端提供) */
|
|
25
|
+
export interface GroupedOptions {
|
|
26
|
+
[groupName: string]: DropdownOption[];
|
|
27
|
+
}
|
|
28
|
+
interface DropdownSelectorProps {
|
|
29
|
+
/** 当前选中的值 */
|
|
30
|
+
value: string;
|
|
31
|
+
/** 选项列表(扁平列表) */
|
|
32
|
+
options?: DropdownOption[];
|
|
33
|
+
/** 分组后的选项(优先级高于 options,由后端提供) */
|
|
34
|
+
groupedOptions?: GroupedOptions;
|
|
35
|
+
/** 占位符文本 */
|
|
36
|
+
placeholder?: string;
|
|
37
|
+
/** 选择回调 */
|
|
38
|
+
onSelect?: (value: string) => void;
|
|
39
|
+
/** 是否禁用 */
|
|
40
|
+
disabled?: boolean;
|
|
41
|
+
/** 下拉菜单对齐方式 */
|
|
42
|
+
align?: 'left' | 'right';
|
|
43
|
+
}
|
|
44
|
+
export declare function DropdownSelector({ value, options, groupedOptions, placeholder, onSelect, disabled, align, }: DropdownSelectorProps): import("react/jsx-runtime").JSX.Element;
|
|
45
|
+
export {};
|
|
46
|
+
//# sourceMappingURL=DropdownSelector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DropdownSelector.d.ts","sourceRoot":"","sources":["../../../src/components/input/DropdownSelector.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,wBAAwB,CAAC;AAEhC,WAAW;AACX,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0BAA0B;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0BAA0B;IAC1B,OAAO,CAAC,EAAE;QACR,aAAa;QACb,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,oBAAoB;QACpB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,aAAa;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,oBAAoB;AACpB,MAAM,WAAW,cAAc;IAC7B,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,EAAE,CAAC;CACvC;AAED,UAAU,qBAAqB;IAC7B,aAAa;IACb,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB;IACjB,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;IAC3B,kCAAkC;IAClC,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,YAAY;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW;IACX,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,WAAW;IACX,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe;IACf,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,OAAO,EACP,cAAc,EACd,WAAmB,EACnB,QAAQ,EACR,QAAgB,EAChB,KAAc,GACf,EAAE,qBAAqB,2CA8RvB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import './ImagePreviewModal.css';
|
|
2
|
+
interface ImagePreviewModalProps {
|
|
3
|
+
visible: boolean;
|
|
4
|
+
images: string[];
|
|
5
|
+
initialIndex?: number;
|
|
6
|
+
onClose: () => void;
|
|
7
|
+
onIndexChange?: (index: number) => void;
|
|
8
|
+
}
|
|
9
|
+
export declare function ImagePreviewModal({ visible, images, initialIndex, onClose, onIndexChange, }: ImagePreviewModalProps): import("react").ReactPortal | null;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=ImagePreviewModal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImagePreviewModal.d.ts","sourceRoot":"","sources":["../../../src/components/input/ImagePreviewModal.tsx"],"names":[],"mappings":"AAGA,OAAO,yBAAyB,CAAA;AAEhC,UAAU,sBAAsB;IAC9B,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CACxC;AAED,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,EACP,MAAM,EACN,YAAgB,EAChB,OAAO,EACP,aAAa,GACd,EAAE,sBAAsB,sCAkGxB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { QueuedMessage } from '../../hooks/useChat';
|
|
2
|
+
import './QueuedMessageList.css';
|
|
3
|
+
interface QueuedMessageListProps {
|
|
4
|
+
messages: QueuedMessage[];
|
|
5
|
+
onRemove: (id: string) => void;
|
|
6
|
+
onEdit: (id: string, text: string) => void;
|
|
7
|
+
onClear: () => void;
|
|
8
|
+
}
|
|
9
|
+
export declare function QueuedMessageList({ messages, onRemove, onEdit, onClear }: QueuedMessageListProps): import("react/jsx-runtime").JSX.Element | null;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=QueuedMessageList.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueuedMessageList.d.ts","sourceRoot":"","sources":["../../../src/components/input/QueuedMessageList.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,yBAAyB,CAAA;AAEhC,UAAU,sBAAsB;IAC9B,QAAQ,EAAE,aAAa,EAAE,CAAA;IACzB,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9B,MAAM,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC1C,OAAO,EAAE,MAAM,IAAI,CAAA;CACpB;AAED,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,sBAAsB,kDA8FhG"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ChatAdapter } from '../../../adapter';
|
|
2
|
+
import type { AtContextItem } from '@huyooo/ai-chat-types';
|
|
3
|
+
import './AtViewStyles.css';
|
|
4
|
+
export interface AtChatsViewProps {
|
|
5
|
+
adapter: ChatAdapter;
|
|
6
|
+
query: string;
|
|
7
|
+
activeIndex: number;
|
|
8
|
+
onSelect: (item: AtContextItem) => void;
|
|
9
|
+
onSetActive: (index: number) => void;
|
|
10
|
+
onUpdateCount: (count: number) => void;
|
|
11
|
+
}
|
|
12
|
+
export interface AtChatsViewHandle {
|
|
13
|
+
getActivePath: () => string | null;
|
|
14
|
+
confirmActive: () => void;
|
|
15
|
+
}
|
|
16
|
+
export declare const AtChatsView: import("react").ForwardRefExoticComponent<AtChatsViewProps & import("react").RefAttributes<AtChatsViewHandle>>;
|
|
17
|
+
//# sourceMappingURL=AtChatsView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AtChatsView.d.ts","sourceRoot":"","sources":["../../../../src/components/input/at-views/AtChatsView.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAqB,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAI7E,OAAO,oBAAoB,CAAA;AAE3B,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,WAAW,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAA;IACvC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACpC,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CACvC;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,MAAM,MAAM,GAAG,IAAI,CAAA;IAClC,aAAa,EAAE,MAAM,IAAI,CAAA;CAC1B;AAED,eAAO,MAAM,WAAW,gHAwGtB,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ChatAdapter } from '../../../adapter';
|
|
2
|
+
import './AtViewStyles.css';
|
|
3
|
+
import type { AtContextItem } from '@huyooo/ai-chat-types';
|
|
4
|
+
export interface AtDocsViewProps {
|
|
5
|
+
adapter: ChatAdapter;
|
|
6
|
+
query: string;
|
|
7
|
+
activeIndex: number;
|
|
8
|
+
onSelect: (item: AtContextItem) => void;
|
|
9
|
+
onSetActive: (index: number) => void;
|
|
10
|
+
onUpdateCount: (count: number) => void;
|
|
11
|
+
}
|
|
12
|
+
export interface AtResourceViewHandle {
|
|
13
|
+
getActivePath: () => string | null;
|
|
14
|
+
confirmActive: () => void;
|
|
15
|
+
}
|
|
16
|
+
export declare const AtDocsView: import("react").ForwardRefExoticComponent<AtDocsViewProps & import("react").RefAttributes<AtResourceViewHandle>>;
|
|
17
|
+
//# sourceMappingURL=AtDocsView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AtDocsView.d.ts","sourceRoot":"","sources":["../../../../src/components/input/at-views/AtDocsView.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAKnD,OAAO,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAE1D,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,WAAW,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAA;IACvC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACpC,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CACvC;AAED,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,MAAM,MAAM,GAAG,IAAI,CAAA;IAClC,aAAa,EAAE,MAAM,IAAI,CAAA;CAC1B;AAOD,eAAO,MAAM,UAAU,kHAwNrB,CAAA"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ChatAdapter } from '../../../adapter';
|
|
2
|
+
import type { AtFileContextItem } from '@huyooo/ai-chat-types';
|
|
3
|
+
import './AtViewStyles.css';
|
|
4
|
+
export interface AtFilesViewProps {
|
|
5
|
+
adapter: ChatAdapter;
|
|
6
|
+
initialDir?: string;
|
|
7
|
+
rootDir?: string;
|
|
8
|
+
selectedMentions?: string[];
|
|
9
|
+
query: string;
|
|
10
|
+
activeIndex: number;
|
|
11
|
+
onSelect: (item: AtFileContextItem) => void;
|
|
12
|
+
onSetActive: (index: number) => void;
|
|
13
|
+
onUpdateCount: (count: number) => void;
|
|
14
|
+
onFocusSearch?: () => void;
|
|
15
|
+
}
|
|
16
|
+
export interface AtFilesViewHandle {
|
|
17
|
+
getActivePath: () => string | null;
|
|
18
|
+
confirmActive: (options?: {
|
|
19
|
+
selectDirectory?: boolean;
|
|
20
|
+
}) => void;
|
|
21
|
+
goToParentDir: () => Promise<boolean | void>;
|
|
22
|
+
syncToInitialDir: () => Promise<void>;
|
|
23
|
+
enterActiveDirectory: () => void;
|
|
24
|
+
}
|
|
25
|
+
export declare const AtFilesView: import("react").ForwardRefExoticComponent<AtFilesViewProps & import("react").RefAttributes<AtFilesViewHandle>>;
|
|
26
|
+
//# sourceMappingURL=AtFilesView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AtFilesView.d.ts","sourceRoot":"","sources":["../../../../src/components/input/at-views/AtFilesView.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAY,MAAM,uBAAuB,CAAA;AAUxE,OAAO,oBAAoB,CAAA;AAI3B,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,WAAW,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAA;IAC3C,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACpC,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACtC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,MAAM,MAAM,GAAG,IAAI,CAAA;IAClC,aAAa,EAAE,CAAC,OAAO,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAA;IAChE,aAAa,EAAE,MAAM,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAA;IAC5C,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACrC,oBAAoB,EAAE,MAAM,IAAI,CAAA;CACjC;AAED,eAAO,MAAM,WAAW,gHAsZtB,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ChatAdapter } from '../../../adapter';
|
|
2
|
+
import type { AtContextItem } from '@huyooo/ai-chat-types';
|
|
3
|
+
import './AtViewStyles.css';
|
|
4
|
+
export interface AtTerminalsViewProps {
|
|
5
|
+
adapter: ChatAdapter;
|
|
6
|
+
query: string;
|
|
7
|
+
activeIndex: number;
|
|
8
|
+
onSelect: (item: AtContextItem) => void;
|
|
9
|
+
onSetActive: (index: number) => void;
|
|
10
|
+
onUpdateCount: (count: number) => void;
|
|
11
|
+
}
|
|
12
|
+
export interface AtTerminalsViewHandle {
|
|
13
|
+
getActivePath: () => string | null;
|
|
14
|
+
confirmActive: () => void;
|
|
15
|
+
}
|
|
16
|
+
export declare const AtTerminalsView: import("react").ForwardRefExoticComponent<AtTerminalsViewProps & import("react").RefAttributes<AtTerminalsViewHandle>>;
|
|
17
|
+
//# sourceMappingURL=AtTerminalsView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AtTerminalsView.d.ts","sourceRoot":"","sources":["../../../../src/components/input/at-views/AtTerminalsView.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAE,aAAa,EAAyB,MAAM,uBAAuB,CAAA;AAIjF,OAAO,oBAAoB,CAAA;AAE3B,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,WAAW,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAA;IACvC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACpC,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CACvC;AAED,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,MAAM,MAAM,GAAG,IAAI,CAAA;IAClC,aAAa,EAAE,MAAM,IAAI,CAAA;CAC1B;AAED,eAAO,MAAM,eAAe,wHAwG1B,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { AtFilesView } from './AtFilesView';
|
|
2
|
+
export type { AtFilesViewProps, AtFilesViewHandle } from './AtFilesView';
|
|
3
|
+
export { AtDocsView } from './AtDocsView';
|
|
4
|
+
export type { AtDocsViewProps, AtResourceViewHandle } from './AtDocsView';
|
|
5
|
+
export { AtTerminalsView } from './AtTerminalsView';
|
|
6
|
+
export type { AtTerminalsViewProps, AtTerminalsViewHandle } from './AtTerminalsView';
|
|
7
|
+
export { AtChatsView } from './AtChatsView';
|
|
8
|
+
export type { AtChatsViewProps, AtChatsViewHandle } from './AtChatsView';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/input/at-views/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAExE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,YAAY,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AACpF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare function useAtViewTooltip(): {
|
|
2
|
+
tooltipRef: import("react").RefObject<HTMLDivElement>;
|
|
3
|
+
tooltipText: string | null;
|
|
4
|
+
tooltipPosition: {
|
|
5
|
+
top: number;
|
|
6
|
+
left: number;
|
|
7
|
+
};
|
|
8
|
+
tooltipSide: "left" | "right";
|
|
9
|
+
hideTooltip: () => void;
|
|
10
|
+
showTooltip: (event: React.MouseEvent<HTMLElement>, text: string) => void;
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=useAtViewTooltip.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAtViewTooltip.d.ts","sourceRoot":"","sources":["../../../../src/components/input/at-views/useAtViewTooltip.ts"],"names":[],"mappings":"AAEA,wBAAgB,gBAAgB;;;;;;;;;yBAmCU,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,QAAQ,MAAM;EAgBpF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { AtContextItem } from '@huyooo/ai-chat-types';
|
|
2
|
+
export declare function uniqueAtContextItems(items: AtContextItem[]): AtContextItem[];
|
|
3
|
+
export declare function extractAtContextItems(text: string): AtContextItem[];
|
|
4
|
+
export declare function extractAtContextState(text: string): {
|
|
5
|
+
items: AtContextItem[];
|
|
6
|
+
cleanedText: string;
|
|
7
|
+
};
|
|
8
|
+
export declare function removeAtContextMention(text: string, item: AtContextItem): string;
|
|
9
|
+
//# sourceMappingURL=atContextItems.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"atContextItems.d.ts","sourceRoot":"","sources":["../../../src/components/input/atContextItems.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAiE1D,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,aAAa,EAAE,mBAS1D;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,mBAMjD;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM;;;EASjD;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,UAOvE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"atContextToolHints.d.ts","sourceRoot":"","sources":["../../../src/components/input/atContextToolHints.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,wBAAwB,CAAA"}
|