@lemoncat7/dsh-knowledge 2.3.2 → 2.3.4
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/README.md +1 -1
- package/docs/ui-maintenance.md +97 -0
- package/lib/activity-control.d.ts +6 -0
- package/lib/activity-control.d.ts.map +1 -0
- package/lib/activity-control.js +118 -0
- package/lib/activity-control.js.map +1 -0
- package/lib/client.d.ts +17 -0
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +4030 -196
- package/lib/client.js.map +4 -4
- package/lib/design-tokens.d.ts +12 -0
- package/lib/design-tokens.d.ts.map +1 -0
- package/lib/design-tokens.js +58 -0
- package/lib/design-tokens.js.map +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +3 -0
- package/lib/index.js.map +1 -1
- package/lib/knowledge-activity-api.d.ts +35 -0
- package/lib/knowledge-activity-api.d.ts.map +1 -0
- package/lib/knowledge-activity-api.js +115 -0
- package/lib/knowledge-activity-api.js.map +1 -0
- package/lib/knowledge-activity-controller.d.ts +20 -0
- package/lib/knowledge-activity-controller.d.ts.map +1 -0
- package/lib/knowledge-activity-controller.js +138 -0
- package/lib/knowledge-activity-controller.js.map +1 -0
- package/lib/knowledge-activity-notes.d.ts +9 -0
- package/lib/knowledge-activity-notes.d.ts.map +1 -0
- package/lib/knowledge-activity-notes.js +150 -0
- package/lib/knowledge-activity-notes.js.map +1 -0
- package/lib/knowledge-activity-panel.d.ts +8 -0
- package/lib/knowledge-activity-panel.d.ts.map +1 -0
- package/lib/knowledge-activity-panel.js +245 -0
- package/lib/knowledge-activity-panel.js.map +1 -0
- package/lib/knowledge-activity-presentation.d.ts +14 -0
- package/lib/knowledge-activity-presentation.d.ts.map +1 -0
- package/lib/knowledge-activity-presentation.js +77 -0
- package/lib/knowledge-activity-presentation.js.map +1 -0
- package/lib/knowledge-activity-state.d.ts +17 -0
- package/lib/knowledge-activity-state.d.ts.map +1 -0
- package/lib/knowledge-activity-state.js +14 -0
- package/lib/knowledge-activity-state.js.map +1 -0
- package/lib/latest-request.d.ts +7 -0
- package/lib/latest-request.d.ts.map +1 -0
- package/lib/latest-request.js +14 -0
- package/lib/latest-request.js.map +1 -0
- package/lib/local-provider.d.ts +0 -2
- package/lib/local-provider.d.ts.map +1 -1
- package/lib/local-provider.js +2 -323
- package/lib/local-provider.js.map +1 -1
- package/lib/notes/share-page-styles.d.ts +2 -0
- package/lib/notes/share-page-styles.d.ts.map +1 -0
- package/lib/notes/share-page-styles.js +11 -0
- package/lib/notes/share-page-styles.js.map +1 -0
- package/lib/notes/share-page.d.ts.map +1 -1
- package/lib/notes/share-page.js +1 -8
- package/lib/notes/share-page.js.map +1 -1
- package/lib/storage/migrations.d.ts +5 -0
- package/lib/storage/migrations.d.ts.map +1 -0
- package/lib/storage/migrations.js +325 -0
- package/lib/storage/migrations.js.map +1 -0
- package/lib/theme-bridge.d.ts +9 -7
- package/lib/theme-bridge.d.ts.map +1 -1
- package/lib/theme-bridge.js +3 -23
- package/lib/theme-bridge.js.map +1 -1
- package/lib/web-note-editor-outline.js +2 -2
- package/lib/web-note-editor-outline.js.map +1 -1
- package/lib/web-note-editor-selection.d.ts.map +1 -1
- package/lib/web-note-editor-selection.js +51 -16
- package/lib/web-note-editor-selection.js.map +1 -1
- package/lib/web-note-editor.d.ts.map +1 -1
- package/lib/web-note-editor.js +15 -1
- package/lib/web-note-editor.js.map +1 -1
- package/lib/web.d.ts.map +1 -1
- package/lib/web.js +4 -0
- package/lib/web.js.map +1 -1
- package/package.json +4 -1
- package/web/app.js +111 -191
- package/web/design-tokens.css +1 -0
- package/web/dialogs.js +94 -0
- package/web/document-actions.js +68 -0
- package/web/index.html +1 -0
- package/web/model-catalog.js +22 -0
- package/web/note-editor.js +57 -57
- package/web/select-control.js +193 -0
- package/web/styles.css +162 -203
- package/web/ui-primitives.js +5 -0
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback, useEffect, useMemo, useState, useRef } from 'react';
|
|
3
|
+
import { IconChevronLeftOutline14, IconChevronRightOutline14, IconCloseOutline16, IconDataOutline16, IconFolderOpenOutline16, IconRefreshOutline14, IconSearchOutline16, } from '@deepseek-ai/dsh-client-ui-primitives';
|
|
4
|
+
import { loadNoteContent, loadNoteIndex } from './knowledge-activity-api.js';
|
|
5
|
+
import { LatestRequest } from './latest-request.js';
|
|
6
|
+
import { renderMarkdown } from './web-markdown-preview.js';
|
|
7
|
+
export function KnowledgeActivityNotes({ sessionId, projectId, controller }) {
|
|
8
|
+
const initial = controller.selection(sessionId);
|
|
9
|
+
const [folderId, setFolderId] = useState(initial.noteFolderId ?? null);
|
|
10
|
+
const [crumbs, setCrumbs] = useState(initial.noteCrumbs ?? [{ id: null, name: '全部笔记' }]);
|
|
11
|
+
const [selectedId, setSelectedId] = useState(initial.noteDocumentId);
|
|
12
|
+
const [nodes, setNodes] = useState([]);
|
|
13
|
+
const [content, setContent] = useState();
|
|
14
|
+
const [queryInput, setQueryInput] = useState('');
|
|
15
|
+
const [query, setQuery] = useState('');
|
|
16
|
+
const [listState, setListState] = useState('loading');
|
|
17
|
+
const [contentState, setContentState] = useState('idle');
|
|
18
|
+
const [error, setError] = useState('');
|
|
19
|
+
const listRequest = useRef(new LatestRequest());
|
|
20
|
+
const [refresh, setRefresh] = useState(0);
|
|
21
|
+
const loadNodes = useCallback(async () => {
|
|
22
|
+
const signal = listRequest.current.start();
|
|
23
|
+
setListState('loading');
|
|
24
|
+
setError('');
|
|
25
|
+
try {
|
|
26
|
+
const value = await loadNoteIndex({
|
|
27
|
+
sessionId,
|
|
28
|
+
...projectId === undefined ? {} : { projectId },
|
|
29
|
+
parentId: folderId,
|
|
30
|
+
query,
|
|
31
|
+
...signal === undefined ? {} : { signal },
|
|
32
|
+
});
|
|
33
|
+
if (signal.aborted)
|
|
34
|
+
return;
|
|
35
|
+
setNodes(value);
|
|
36
|
+
setListState('ready');
|
|
37
|
+
}
|
|
38
|
+
catch (reason) {
|
|
39
|
+
if (signal?.aborted)
|
|
40
|
+
return;
|
|
41
|
+
setListState('error');
|
|
42
|
+
setError(message(reason));
|
|
43
|
+
}
|
|
44
|
+
}, [folderId, projectId, query, sessionId]);
|
|
45
|
+
useEffect(() => {
|
|
46
|
+
void loadNodes();
|
|
47
|
+
return () => { listRequest.current.cancel(); };
|
|
48
|
+
}, [loadNodes, refresh]);
|
|
49
|
+
useEffect(() => {
|
|
50
|
+
if (selectedId === undefined) {
|
|
51
|
+
setContent(undefined);
|
|
52
|
+
setContentState('idle');
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
const abort = new AbortController();
|
|
56
|
+
setContentState('loading');
|
|
57
|
+
setError('');
|
|
58
|
+
void loadNoteContent({
|
|
59
|
+
id: selectedId,
|
|
60
|
+
sessionId,
|
|
61
|
+
...projectId === undefined ? {} : { projectId },
|
|
62
|
+
signal: abort.signal,
|
|
63
|
+
}).then(value => {
|
|
64
|
+
if (abort.signal.aborted)
|
|
65
|
+
return;
|
|
66
|
+
setContent(value);
|
|
67
|
+
setContentState('ready');
|
|
68
|
+
}).catch(reason => {
|
|
69
|
+
if (abort.signal.aborted)
|
|
70
|
+
return;
|
|
71
|
+
setContentState('error');
|
|
72
|
+
setError(message(reason));
|
|
73
|
+
});
|
|
74
|
+
return () => { abort.abort(); };
|
|
75
|
+
}, [projectId, refresh, selectedId, sessionId]);
|
|
76
|
+
const openFolder = (node) => {
|
|
77
|
+
setFolderId(node.id);
|
|
78
|
+
const nextCrumbs = [...crumbs, { id: node.id, name: node.name }];
|
|
79
|
+
setCrumbs(nextCrumbs);
|
|
80
|
+
setQuery('');
|
|
81
|
+
setQueryInput('');
|
|
82
|
+
controller.select(sessionId, { mode: 'notes', noteFolderId: node.id, noteDocumentId: undefined, noteCrumbs: nextCrumbs });
|
|
83
|
+
};
|
|
84
|
+
const openCrumb = (crumb, index) => {
|
|
85
|
+
setFolderId(crumb.id);
|
|
86
|
+
const nextCrumbs = crumbs.slice(0, index + 1);
|
|
87
|
+
setCrumbs(nextCrumbs);
|
|
88
|
+
setSelectedId(undefined);
|
|
89
|
+
controller.select(sessionId, { mode: 'notes', noteFolderId: crumb.id, noteDocumentId: undefined, noteCrumbs: nextCrumbs });
|
|
90
|
+
};
|
|
91
|
+
const openNode = (node) => {
|
|
92
|
+
if (node.kind === 'folder')
|
|
93
|
+
return openFolder(node);
|
|
94
|
+
if (!node.editable)
|
|
95
|
+
return;
|
|
96
|
+
setSelectedId(node.id);
|
|
97
|
+
controller.select(sessionId, { ...controller.selection(sessionId), mode: 'notes', noteFolderId: folderId, noteDocumentId: node.id });
|
|
98
|
+
};
|
|
99
|
+
const closeDocument = () => {
|
|
100
|
+
setSelectedId(undefined);
|
|
101
|
+
setContent(undefined);
|
|
102
|
+
controller.select(sessionId, { ...controller.selection(sessionId), mode: 'notes', noteFolderId: folderId, noteDocumentId: undefined });
|
|
103
|
+
};
|
|
104
|
+
const submitSearch = (event) => {
|
|
105
|
+
event.preventDefault();
|
|
106
|
+
setSelectedId(undefined);
|
|
107
|
+
setContent(undefined);
|
|
108
|
+
controller.select(sessionId, { noteDocumentId: undefined });
|
|
109
|
+
setQuery(queryInput.trim());
|
|
110
|
+
};
|
|
111
|
+
if (selectedId !== undefined)
|
|
112
|
+
return _jsx(NoteReader, { value: content, state: contentState, error: error, onBack: closeDocument, onRetry: () => setRefresh(value => value + 1) });
|
|
113
|
+
return _jsxs("div", { className: "dsh-knowledge-activity-browser", children: [_jsxs("form", { className: "dsh-knowledge-activity-search", role: "search", onSubmit: submitSearch, children: [_jsx(IconSearchOutline16, { size: 16, "aria-hidden": "true" }), _jsx("input", { "aria-label": "\u641C\u7D22\u7B14\u8BB0\u6587\u6863", value: queryInput, placeholder: "\u641C\u7D22\u7B14\u8BB0\u548C\u76EE\u5F55\u2026", onChange: event => setQueryInput(event.target.value) }), queryInput && _jsx("button", { type: "button", onClick: () => { setQueryInput(''); setQuery(''); }, "aria-label": "\u6E05\u9664\u641C\u7D22", children: _jsx(IconCloseOutline16, { size: 14 }) })] }), !query && _jsx("nav", { className: "dsh-knowledge-activity-breadcrumbs", "aria-label": "\u7B14\u8BB0\u76EE\u5F55\u8DEF\u5F84", children: crumbs.map((crumb, index) => _jsxs("span", { children: [index > 0 && _jsx(IconChevronRightOutline14, { size: 12 }), _jsx("button", { type: "button", "aria-current": index === crumbs.length - 1 ? 'location' : undefined, onClick: () => openCrumb(crumb, index), children: crumb.name })] }, `${crumb.id ?? 'root'}-${index}`)) }), _jsxs("div", { className: "dsh-knowledge-activity-list-heading", children: [_jsxs("span", { children: [_jsx("strong", { children: query ? `“${query}” 的结果` : crumbs.at(-1)?.name ?? '笔记文档' }), _jsx("small", { children: query ? '搜索全部笔记' : `当前显示 ${nodes.length} 项` })] }), _jsx("button", { type: "button", className: "dsh-knowledge-activity-icon-button", "aria-label": "\u5237\u65B0\u7B14\u8BB0", title: "\u5237\u65B0", onClick: () => setRefresh(value => value + 1), children: _jsx(IconRefreshOutline14, { size: 14 }) })] }), _jsx("div", { className: "dsh-knowledge-activity-list", "aria-busy": listState === 'loading', children: listState === 'loading' && nodes.length === 0 ? _jsx(ActivityState, { label: "\u6B63\u5728\u8BFB\u53D6\u7B14\u8BB0\u2026" })
|
|
114
|
+
: listState === 'error' ? _jsx(ActivityError, { error: error, onRetry: () => setRefresh(value => value + 1) })
|
|
115
|
+
: nodes.length === 0 ? _jsx(ActivityEmpty, { query: query })
|
|
116
|
+
: nodes.map(node => _jsxs("button", { type: "button", className: "dsh-knowledge-activity-row", disabled: node.kind !== 'folder' && !node.editable, onClick: () => openNode(node), children: [_jsx("span", { className: "dsh-knowledge-activity-row-icon", children: node.kind === 'folder' ? _jsx(IconFolderOpenOutline16, { size: 16 }) : _jsx(IconDataOutline16, { size: 16 }) }), _jsxs("span", { className: "dsh-knowledge-activity-row-copy", children: [_jsx("strong", { children: node.name }), _jsx("small", { children: node.kind === 'folder' ? '目录' : node.editable ? formatSize(node.size) : '暂不支持侧栏预览' })] }), _jsxs("span", { className: "dsh-knowledge-activity-row-meta", children: [_jsx("time", { dateTime: node.updatedAt, children: formatDate(node.updatedAt) }), node.kind === 'folder' && _jsx(IconChevronRightOutline14, { size: 13 })] })] }, node.id)) })] });
|
|
117
|
+
}
|
|
118
|
+
function NoteReader({ value, state, error, onBack, onRetry }) {
|
|
119
|
+
const html = useMemo(() => value === undefined ? '' : renderMarkdown(value.content), [value]);
|
|
120
|
+
return _jsxs("div", { className: "dsh-knowledge-activity-reader", children: [_jsxs("div", { className: "dsh-knowledge-activity-reader-bar", children: [_jsxs("button", { type: "button", className: "dsh-knowledge-activity-back", onClick: onBack, children: [_jsx(IconChevronLeftOutline14, { size: 14 }), "\u7B14\u8BB0\u76EE\u5F55"] }), value && _jsxs("span", { children: [formatDate(value.node.updatedAt), " \u66F4\u65B0"] })] }), state === 'loading' ? _jsx(ActivityState, { label: "\u6B63\u5728\u6253\u5F00\u7B14\u8BB0\u2026" })
|
|
121
|
+
: state === 'error' ? _jsx(ActivityError, { error: error, onRetry: onRetry })
|
|
122
|
+
: value === undefined ? _jsx(ActivityState, { label: "\u6B63\u5728\u51C6\u5907\u7B14\u8BB0\u2026" })
|
|
123
|
+
: _jsxs(_Fragment, { children: [_jsxs("div", { className: "dsh-knowledge-activity-document-heading", children: [_jsx("span", { className: "dsh-knowledge-activity-document-icon", children: _jsx(IconDataOutline16, { size: 18 }) }), _jsxs("div", { children: [_jsx("h2", { children: value.node.name }), _jsxs("p", { children: ["\u7B14\u8BB0\u6587\u6863 \u00B7 ", formatSize(value.node.size)] })] })] }), _jsx("article", { className: "dsh-knowledge-activity-markdown", dangerouslySetInnerHTML: { __html: html } })] })] });
|
|
124
|
+
}
|
|
125
|
+
function ActivityState({ label }) {
|
|
126
|
+
return _jsxs("p", { className: "dsh-knowledge-activity-state", role: "status", children: [_jsx("span", { "aria-hidden": "true" }), label] });
|
|
127
|
+
}
|
|
128
|
+
function ActivityError({ error, onRetry }) {
|
|
129
|
+
return _jsxs("div", { className: "dsh-knowledge-activity-error", role: "alert", children: [_jsx("strong", { children: "\u6682\u65F6\u65E0\u6CD5\u8BFB\u53D6" }), _jsx("p", { children: error }), _jsx("button", { type: "button", onClick: onRetry, children: "\u91CD\u8BD5" })] });
|
|
130
|
+
}
|
|
131
|
+
function ActivityEmpty({ query }) {
|
|
132
|
+
return _jsxs("div", { className: "dsh-knowledge-activity-empty", children: [_jsx("span", { children: _jsx(IconDataOutline16, { size: 20 }) }), _jsx("strong", { children: query ? '没有找到相关笔记' : '这个目录还是空的' }), _jsx("p", { children: query ? '换个关键词,或清除搜索后浏览目录。' : '可以在完整工作区中新建或导入笔记。' })] });
|
|
133
|
+
}
|
|
134
|
+
function formatDate(value) {
|
|
135
|
+
const date = new Date(value);
|
|
136
|
+
if (Number.isNaN(date.getTime()))
|
|
137
|
+
return '未知时间';
|
|
138
|
+
return new Intl.DateTimeFormat('zh-CN', { month: '2-digit', day: '2-digit' }).format(date);
|
|
139
|
+
}
|
|
140
|
+
function formatSize(value) {
|
|
141
|
+
if (value < 1024)
|
|
142
|
+
return `${value} B`;
|
|
143
|
+
if (value < 1024 * 1024)
|
|
144
|
+
return `${(value / 1024).toFixed(value < 10 * 1024 ? 1 : 0)} KB`;
|
|
145
|
+
return `${(value / 1024 / 1024).toFixed(1)} MB`;
|
|
146
|
+
}
|
|
147
|
+
function message(reason) {
|
|
148
|
+
return reason instanceof Error ? reason.message : String(reason);
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=knowledge-activity-notes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge-activity-notes.js","sourceRoot":"","sources":["../src/knowledge-activity-notes.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { PropsRuntime } from '@deepseek-ai/dsh-client-ui-slots';
|
|
2
|
+
import type { KnowledgeActivityController } from './knowledge-activity-controller.js';
|
|
3
|
+
type DetailsProps = PropsRuntime<'details'>;
|
|
4
|
+
export declare function KnowledgeActivityPanel(props: DetailsProps & {
|
|
5
|
+
controller: KnowledgeActivityController;
|
|
6
|
+
}): JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=knowledge-activity-panel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge-activity-panel.d.ts","sourceRoot":"","sources":["../src/knowledge-activity-panel.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAiBpE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAA;AAKrF,KAAK,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,CAAA;AAE3C,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,YAAY,GAAG;IAAE,UAAU,EAAE,2BAA2B,CAAA;CAAE,GAChE,GAAG,CAAC,OAAO,CAuQb"}
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
3
|
+
import { IconChevronLeftOutline14, IconChevronDownOutline14, IconCloseOutline16, IconDatabaseOutline16, IconDataOutline16, IconRefreshOutline14, IconSearchOutline16, IconFullscreenOutline16, } from '@deepseek-ai/dsh-client-ui-primitives';
|
|
4
|
+
import { loadKnowledgeDocument, loadKnowledgeDocumentIndex, loadMountedKnowledge, } from './knowledge-activity-api.js';
|
|
5
|
+
import { KnowledgeActivityNotes } from './knowledge-activity-notes.js';
|
|
6
|
+
import { LatestRequest } from './latest-request.js';
|
|
7
|
+
import { renderMarkdown } from './web-markdown-preview.js';
|
|
8
|
+
export function KnowledgeActivityPanel(props) {
|
|
9
|
+
const sessionId = String(props.sessionId);
|
|
10
|
+
const projectId = props.useSessions((state) => state.byId[sessionId]?.cwd);
|
|
11
|
+
const initial = props.controller.selection(sessionId);
|
|
12
|
+
const [mode, setMode] = useState(initial.mode ?? 'knowledge');
|
|
13
|
+
const [mounts, setMounts] = useState([]);
|
|
14
|
+
const [selectedBaseId, setSelectedBaseId] = useState(initial.knowledgeBaseId);
|
|
15
|
+
const [selectedDocumentId, setSelectedDocumentId] = useState(initial.documentId);
|
|
16
|
+
const [documents, setDocuments] = useState([]);
|
|
17
|
+
const [documentValue, setDocumentValue] = useState();
|
|
18
|
+
const [queryInput, setQueryInput] = useState('');
|
|
19
|
+
const [query, setQuery] = useState('');
|
|
20
|
+
const [mountState, setMountState] = useState('loading');
|
|
21
|
+
const [listState, setListState] = useState('idle');
|
|
22
|
+
const [documentState, setDocumentState] = useState('idle');
|
|
23
|
+
const [documentRefresh, setDocumentRefresh] = useState(0);
|
|
24
|
+
const [error, setError] = useState('');
|
|
25
|
+
const [nextCursor, setNextCursor] = useState();
|
|
26
|
+
const [baseMenuOpen, setBaseMenuOpen] = useState(false);
|
|
27
|
+
const indexRequest = useRef(new LatestRequest());
|
|
28
|
+
const mountRequest = useRef(new LatestRequest());
|
|
29
|
+
const scopeRef = useRef(null);
|
|
30
|
+
useEffect(() => {
|
|
31
|
+
if (!baseMenuOpen)
|
|
32
|
+
return;
|
|
33
|
+
const closeOutside = (event) => {
|
|
34
|
+
if (!scopeRef.current?.contains(event.target))
|
|
35
|
+
setBaseMenuOpen(false);
|
|
36
|
+
};
|
|
37
|
+
const closeOnEscape = (event) => {
|
|
38
|
+
if (event.key === 'Escape')
|
|
39
|
+
setBaseMenuOpen(false);
|
|
40
|
+
};
|
|
41
|
+
document.addEventListener('pointerdown', closeOutside);
|
|
42
|
+
document.addEventListener('keydown', closeOnEscape);
|
|
43
|
+
return () => {
|
|
44
|
+
document.removeEventListener('pointerdown', closeOutside);
|
|
45
|
+
document.removeEventListener('keydown', closeOnEscape);
|
|
46
|
+
};
|
|
47
|
+
}, [baseMenuOpen]);
|
|
48
|
+
const refreshMounts = useCallback(async () => {
|
|
49
|
+
const signal = mountRequest.current.start();
|
|
50
|
+
setMountState('loading');
|
|
51
|
+
setError('');
|
|
52
|
+
try {
|
|
53
|
+
const next = await loadMountedKnowledge(sessionId, projectId, signal);
|
|
54
|
+
if (signal.aborted)
|
|
55
|
+
return;
|
|
56
|
+
setMounts(next);
|
|
57
|
+
const current = props.controller.selection(sessionId);
|
|
58
|
+
const selected = next.some(item => item.knowledgeBaseId === current.knowledgeBaseId)
|
|
59
|
+
? current.knowledgeBaseId
|
|
60
|
+
: next[0]?.knowledgeBaseId;
|
|
61
|
+
props.controller.select(sessionId, {
|
|
62
|
+
knowledgeBaseId: selected,
|
|
63
|
+
documentId: selected === current.knowledgeBaseId ? current.documentId : undefined,
|
|
64
|
+
});
|
|
65
|
+
setSelectedBaseId(selected);
|
|
66
|
+
if (selected !== current.knowledgeBaseId) {
|
|
67
|
+
setSelectedDocumentId(undefined);
|
|
68
|
+
setDocumentValue(undefined);
|
|
69
|
+
}
|
|
70
|
+
setMountState('ready');
|
|
71
|
+
}
|
|
72
|
+
catch (reason) {
|
|
73
|
+
if (signal?.aborted)
|
|
74
|
+
return;
|
|
75
|
+
setMountState('error');
|
|
76
|
+
setError(message(reason));
|
|
77
|
+
}
|
|
78
|
+
}, [projectId, props.controller, sessionId]);
|
|
79
|
+
useEffect(() => {
|
|
80
|
+
void refreshMounts();
|
|
81
|
+
return () => { mountRequest.current.cancel(); };
|
|
82
|
+
}, [refreshMounts]);
|
|
83
|
+
const loadIndex = useCallback(async (cursor, append = false) => {
|
|
84
|
+
const signal = indexRequest.current.start();
|
|
85
|
+
if (mounts.length === 0 || (query.length === 0 && selectedBaseId === undefined)) {
|
|
86
|
+
setDocuments([]);
|
|
87
|
+
setNextCursor(undefined);
|
|
88
|
+
setListState('ready');
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
setListState('loading');
|
|
92
|
+
setError('');
|
|
93
|
+
try {
|
|
94
|
+
const result = await loadKnowledgeDocumentIndex({
|
|
95
|
+
sessionId,
|
|
96
|
+
...projectId === undefined ? {} : { projectId },
|
|
97
|
+
knowledgeBaseIds: query ? mounts.map(item => item.knowledgeBaseId) : [selectedBaseId],
|
|
98
|
+
...query ? { query } : {},
|
|
99
|
+
...cursor === undefined ? {} : { cursor },
|
|
100
|
+
...signal === undefined ? {} : { signal },
|
|
101
|
+
});
|
|
102
|
+
if (signal.aborted)
|
|
103
|
+
return;
|
|
104
|
+
setDocuments(current => append ? [...current, ...result.items] : result.items);
|
|
105
|
+
setNextCursor(result.nextCursor);
|
|
106
|
+
setListState('ready');
|
|
107
|
+
}
|
|
108
|
+
catch (reason) {
|
|
109
|
+
if (signal?.aborted)
|
|
110
|
+
return;
|
|
111
|
+
setListState('error');
|
|
112
|
+
setError(message(reason));
|
|
113
|
+
}
|
|
114
|
+
}, [mounts, projectId, query, selectedBaseId, sessionId]);
|
|
115
|
+
useEffect(() => {
|
|
116
|
+
void loadIndex();
|
|
117
|
+
return () => { indexRequest.current.cancel(); };
|
|
118
|
+
}, [loadIndex]);
|
|
119
|
+
useEffect(() => {
|
|
120
|
+
if (selectedDocumentId === undefined) {
|
|
121
|
+
setDocumentValue(undefined);
|
|
122
|
+
setDocumentState('idle');
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
const controller = new AbortController();
|
|
126
|
+
setDocumentState('loading');
|
|
127
|
+
setError('');
|
|
128
|
+
void loadKnowledgeDocument({
|
|
129
|
+
id: selectedDocumentId,
|
|
130
|
+
sessionId,
|
|
131
|
+
...projectId === undefined ? {} : { projectId },
|
|
132
|
+
signal: controller.signal,
|
|
133
|
+
}).then(value => {
|
|
134
|
+
if (controller.signal.aborted)
|
|
135
|
+
return;
|
|
136
|
+
setDocumentValue(value);
|
|
137
|
+
setDocumentState('ready');
|
|
138
|
+
}).catch(reason => {
|
|
139
|
+
if (controller.signal.aborted)
|
|
140
|
+
return;
|
|
141
|
+
setDocumentState('error');
|
|
142
|
+
setError(message(reason));
|
|
143
|
+
});
|
|
144
|
+
return () => { controller.abort(); };
|
|
145
|
+
}, [documentRefresh, projectId, selectedDocumentId, sessionId]);
|
|
146
|
+
const selectBase = (knowledgeBaseId) => {
|
|
147
|
+
setBaseMenuOpen(false);
|
|
148
|
+
setSelectedBaseId(knowledgeBaseId);
|
|
149
|
+
setSelectedDocumentId(undefined);
|
|
150
|
+
setDocumentValue(undefined);
|
|
151
|
+
setQueryInput('');
|
|
152
|
+
setQuery('');
|
|
153
|
+
props.controller.select(sessionId, { mode: 'knowledge', knowledgeBaseId, documentId: undefined });
|
|
154
|
+
};
|
|
155
|
+
const selectDocument = (document) => {
|
|
156
|
+
setSelectedBaseId(document.knowledgeBaseId);
|
|
157
|
+
setSelectedDocumentId(document.id);
|
|
158
|
+
props.controller.select(sessionId, {
|
|
159
|
+
mode: 'knowledge',
|
|
160
|
+
knowledgeBaseId: document.knowledgeBaseId,
|
|
161
|
+
documentId: document.id,
|
|
162
|
+
});
|
|
163
|
+
};
|
|
164
|
+
const closeDocument = () => {
|
|
165
|
+
setSelectedDocumentId(undefined);
|
|
166
|
+
setDocumentValue(undefined);
|
|
167
|
+
props.controller.select(sessionId, {
|
|
168
|
+
mode: 'knowledge',
|
|
169
|
+
documentId: undefined,
|
|
170
|
+
...selectedBaseId === undefined ? {} : { knowledgeBaseId: selectedBaseId },
|
|
171
|
+
});
|
|
172
|
+
};
|
|
173
|
+
const submitSearch = (event) => {
|
|
174
|
+
event.preventDefault();
|
|
175
|
+
setSelectedDocumentId(undefined);
|
|
176
|
+
setDocumentValue(undefined);
|
|
177
|
+
props.controller.select(sessionId, { documentId: undefined });
|
|
178
|
+
setQuery(queryInput.trim());
|
|
179
|
+
};
|
|
180
|
+
const clearSearch = () => {
|
|
181
|
+
setQueryInput('');
|
|
182
|
+
setQuery('');
|
|
183
|
+
};
|
|
184
|
+
const openWorkspace = () => {
|
|
185
|
+
const noteId = props.controller.selection(sessionId).noteDocumentId;
|
|
186
|
+
props.controller.openWorkspace(mode === 'notes'
|
|
187
|
+
? { view: 'notes', ...(noteId === undefined ? {} : { noteId }) }
|
|
188
|
+
: documentValue === undefined ? undefined : {
|
|
189
|
+
knowledgeBaseId: documentValue.knowledgeBaseId,
|
|
190
|
+
documentId: documentValue.id,
|
|
191
|
+
});
|
|
192
|
+
};
|
|
193
|
+
const selectMode = (nextMode) => {
|
|
194
|
+
setMode(nextMode);
|
|
195
|
+
setBaseMenuOpen(false);
|
|
196
|
+
props.controller.select(sessionId, { ...props.controller.selection(sessionId), mode: nextMode });
|
|
197
|
+
};
|
|
198
|
+
return _jsxs("section", { className: "dsh-knowledge-activity-panel", "data-knowledge-surface": "activity", "aria-label": "\u4F1A\u8BDD\u77E5\u8BC6\u5E93", children: [_jsxs("header", { className: "dsh-knowledge-activity-header", children: [_jsxs("div", { className: "dsh-knowledge-activity-title", children: [_jsx("span", { className: "dsh-knowledge-activity-mark", children: _jsx(IconDatabaseOutline16, { size: 17 }) }), _jsxs("span", { children: [_jsx("strong", { children: "\u77E5\u8BC6\u5E93" }), _jsxs("small", { children: ["\u5F53\u524D\u4F1A\u8BDD \u00B7 ", shortId(sessionId)] })] })] }), _jsxs("div", { className: "dsh-knowledge-activity-header-actions", children: [_jsx("button", { type: "button", className: "dsh-knowledge-activity-icon-button", "aria-label": "\u5728\u5B8C\u6574\u5DE5\u4F5C\u533A\u4E2D\u6253\u5F00", title: "\u5B8C\u6574\u5DE5\u4F5C\u533A", onClick: openWorkspace, children: _jsx(IconFullscreenOutline16, { size: 16 }) }), _jsx("button", { type: "button", className: "dsh-knowledge-activity-icon-button", "aria-label": "\u5173\u95ED\u4F1A\u8BDD\u77E5\u8BC6\u5E93", title: "\u5173\u95ED", onClick: () => props.controller.close(sessionId), children: _jsx(IconCloseOutline16, { size: 16 }) })] })] }), _jsxs("nav", { className: "dsh-knowledge-activity-tabs", "aria-label": "\u77E5\u8BC6\u5E93\u5185\u5BB9\u7C7B\u578B", children: [_jsxs("button", { type: "button", className: mode === 'knowledge' ? 'is-active' : '', "aria-pressed": mode === 'knowledge', onClick: () => selectMode('knowledge'), children: [_jsx(IconDatabaseOutline16, { size: 15 }), "\u77E5\u8BC6\u6587\u6863"] }), _jsxs("button", { type: "button", className: mode === 'notes' ? 'is-active' : '', "aria-pressed": mode === 'notes', onClick: () => selectMode('notes'), children: [_jsx(IconDataOutline16, { size: 15 }), "\u7B14\u8BB0\u6587\u6863"] })] }), mode === 'notes'
|
|
199
|
+
? _jsx(KnowledgeActivityNotes, { sessionId: sessionId, projectId: projectId, controller: props.controller })
|
|
200
|
+
: selectedDocumentId === undefined
|
|
201
|
+
? _jsxs("div", { className: "dsh-knowledge-activity-browser", children: [_jsxs("form", { className: "dsh-knowledge-activity-search", role: "search", onSubmit: submitSearch, children: [_jsx(IconSearchOutline16, { size: 16, "aria-hidden": "true" }), _jsx("input", { "aria-label": "\u641C\u7D22\u5F53\u524D\u4F1A\u8BDD\u77E5\u8BC6\u6587\u6863", value: queryInput, placeholder: "\u641C\u7D22\u5DF2\u6302\u8F7D\u77E5\u8BC6\u2026", onChange: event => setQueryInput(event.target.value) }), queryInput && _jsx("button", { type: "button", onClick: clearSearch, "aria-label": "\u6E05\u9664\u641C\u7D22", children: _jsx(IconCloseOutline16, { size: 14 }) })] }), mountState === 'loading' ? _jsx(ActivityState, { label: "\u6B63\u5728\u8BFB\u53D6\u4F1A\u8BDD\u6302\u8F7D\u2026" })
|
|
202
|
+
: mountState === 'error' ? _jsx(ActivityError, { message: error, onRetry: () => { void refreshMounts(); } })
|
|
203
|
+
: mounts.length === 0 ? _jsx(ActivityEmpty, { title: "\u5F53\u524D\u4F1A\u8BDD\u6CA1\u6709\u6302\u8F7D\u77E5\u8BC6\u5E93", description: "\u5728\u5B8C\u6574\u5DE5\u4F5C\u533A\u4E2D\u6302\u8F7D\u540E\uFF0C\u5C31\u80FD\u5728\u8FD9\u91CC\u968F\u624B\u67E5\u9605\u6587\u6863\u3002" })
|
|
204
|
+
: _jsxs(_Fragment, { children: [_jsxs("div", { ref: scopeRef, className: "dsh-knowledge-activity-scope", children: [_jsxs("button", { type: "button", className: "dsh-knowledge-activity-scope-trigger", "aria-haspopup": "listbox", "aria-expanded": baseMenuOpen, onClick: () => setBaseMenuOpen(value => !value), children: [_jsx("span", { className: "dsh-knowledge-activity-scope-icon", children: _jsx(IconDatabaseOutline16, { size: 15 }) }), _jsxs("span", { children: [_jsx("small", { children: "\u5F53\u524D\u77E5\u8BC6\u5E93" }), _jsx("strong", { children: mounts.find(item => item.knowledgeBaseId === selectedBaseId)?.base.name })] }), _jsx(IconChevronDownOutline14, { size: 14, className: baseMenuOpen ? 'is-open' : '' })] }), baseMenuOpen && _jsx("div", { className: "dsh-knowledge-activity-scope-menu", role: "listbox", "aria-label": "\u5207\u6362\u77E5\u8BC6\u5E93", children: mounts.map(mount => _jsxs("button", { type: "button", role: "option", "aria-selected": selectedBaseId === mount.knowledgeBaseId, className: selectedBaseId === mount.knowledgeBaseId ? 'is-active' : '', onClick: () => selectBase(mount.knowledgeBaseId), children: [_jsx(IconDataOutline16, { size: 15 }), _jsxs("span", { children: [_jsx("strong", { children: mount.base.name }), _jsx("small", { children: mount.inheritedFrom === 'project' ? '项目挂载' : '会话挂载' })] })] }, mount.knowledgeBaseId)) })] }), _jsxs("div", { className: "dsh-knowledge-activity-list-heading", children: [_jsxs("span", { children: [_jsx("strong", { children: query ? `“${query}” 的结果` : '知识文档' }), _jsx("small", { children: query ? '搜索全部已挂载知识库' : `当前显示 ${documents.length} 项` })] }), _jsx("button", { type: "button", className: "dsh-knowledge-activity-icon-button", "aria-label": "\u5237\u65B0\u6587\u6863", title: "\u5237\u65B0", onClick: () => { void loadIndex(); }, children: _jsx(IconRefreshOutline14, { size: 14 }) })] }), _jsx("div", { className: "dsh-knowledge-activity-list", "aria-busy": listState === 'loading', children: listState === 'loading' && documents.length === 0 ? _jsx(ActivityState, { label: "\u6B63\u5728\u8BFB\u53D6\u6587\u6863\u2026" })
|
|
205
|
+
: listState === 'error' ? _jsx(ActivityError, { message: error, onRetry: () => { void loadIndex(); } })
|
|
206
|
+
: documents.length === 0 ? _jsx(ActivityEmpty, { title: query ? '没有找到相关文档' : '这里还没有知识文档', description: query ? '换个关键词,或清除搜索后浏览目录。' : '审核通过或直接回写的知识会出现在这里。' })
|
|
207
|
+
: _jsxs(_Fragment, { children: [documents.map(document => _jsx(DocumentRow, { document: document, baseName: query ? mounts.find(item => item.knowledgeBaseId === document.knowledgeBaseId)?.base.name : undefined, onClick: () => selectDocument(document) }, document.id)), nextCursor && _jsx("button", { type: "button", className: "dsh-knowledge-activity-load-more", disabled: listState === 'loading', onClick: () => { void loadIndex(nextCursor, true); }, children: listState === 'loading' ? '正在加载…' : '加载更多' })] }) })] })] })
|
|
208
|
+
: _jsx(DocumentReader, { value: documentValue, state: documentState, error: error, onBack: closeDocument, onRetry: () => setDocumentRefresh(value => value + 1) })] });
|
|
209
|
+
}
|
|
210
|
+
function DocumentRow({ document, baseName, onClick }) {
|
|
211
|
+
const stateLabel = document.documentState === 'resolved' ? '已解决' : document.documentState === 'complete' ? '已完成' : undefined;
|
|
212
|
+
return _jsxs("button", { type: "button", className: "dsh-knowledge-activity-row", onClick: onClick, children: [_jsx("span", { className: "dsh-knowledge-activity-row-icon", children: _jsx(IconDataOutline16, { size: 16 }) }), _jsxs("span", { className: "dsh-knowledge-activity-row-copy", children: [_jsx("strong", { children: document.title }), _jsx("small", { children: baseName ? `${baseName} · ${document.relPath}` : document.relPath })] }), _jsxs("span", { className: "dsh-knowledge-activity-row-meta", children: [stateLabel && _jsx("em", { children: stateLabel }), _jsx("time", { dateTime: document.updatedAt, children: formatDate(document.updatedAt) })] })] });
|
|
213
|
+
}
|
|
214
|
+
function DocumentReader({ value, state, error, onBack, onRetry }) {
|
|
215
|
+
const html = useMemo(() => value === undefined ? '' : renderMarkdown(readableMarkdown(value.content)), [value]);
|
|
216
|
+
return _jsxs("div", { className: "dsh-knowledge-activity-reader", children: [_jsxs("div", { className: "dsh-knowledge-activity-reader-bar", children: [_jsxs("button", { type: "button", className: "dsh-knowledge-activity-back", onClick: onBack, children: [_jsx(IconChevronLeftOutline14, { size: 14 }), "\u6587\u6863\u76EE\u5F55"] }), value && _jsxs("span", { children: [formatDate(value.updatedAt), " \u66F4\u65B0"] })] }), state === 'loading' ? _jsx(ActivityState, { label: "\u6B63\u5728\u6253\u5F00\u6587\u6863\u2026" })
|
|
217
|
+
: state === 'error' ? _jsx(ActivityError, { message: error, onRetry: onRetry })
|
|
218
|
+
: value === undefined ? _jsx(ActivityState, { label: "\u6B63\u5728\u51C6\u5907\u6587\u6863\u2026" })
|
|
219
|
+
: _jsxs(_Fragment, { children: [_jsxs("div", { className: "dsh-knowledge-activity-document-heading", children: [_jsx("span", { className: "dsh-knowledge-activity-document-icon", children: _jsx(IconDataOutline16, { size: 18 }) }), _jsxs("div", { children: [_jsx("h2", { children: value.title }), _jsx("p", { children: value.relPath })] })] }), _jsx("article", { className: "dsh-knowledge-activity-markdown", dangerouslySetInnerHTML: { __html: html } })] })] });
|
|
220
|
+
}
|
|
221
|
+
function ActivityState({ label }) {
|
|
222
|
+
return _jsxs("p", { className: "dsh-knowledge-activity-state", role: "status", children: [_jsx("span", { "aria-hidden": "true" }), label] });
|
|
223
|
+
}
|
|
224
|
+
function ActivityError({ message, onRetry }) {
|
|
225
|
+
return _jsxs("div", { className: "dsh-knowledge-activity-error", role: "alert", children: [_jsx("strong", { children: "\u6682\u65F6\u65E0\u6CD5\u8BFB\u53D6" }), _jsx("p", { children: message }), _jsx("button", { type: "button", onClick: onRetry, children: "\u91CD\u8BD5" })] });
|
|
226
|
+
}
|
|
227
|
+
function ActivityEmpty({ title, description }) {
|
|
228
|
+
return _jsxs("div", { className: "dsh-knowledge-activity-empty", children: [_jsx("span", { children: _jsx(IconDatabaseOutline16, { size: 20 }) }), _jsx("strong", { children: title }), _jsx("p", { children: description })] });
|
|
229
|
+
}
|
|
230
|
+
function readableMarkdown(value) {
|
|
231
|
+
return value.replace(/^---\s*\n[\s\S]*?\n---\s*\n*/u, '').replace(/^#\s+[^\n]+\n*/u, '');
|
|
232
|
+
}
|
|
233
|
+
function shortId(value) {
|
|
234
|
+
return value.length <= 12 ? value : `${value.slice(0, 7)}…${value.slice(-5)}`;
|
|
235
|
+
}
|
|
236
|
+
function formatDate(value) {
|
|
237
|
+
const date = new Date(value);
|
|
238
|
+
if (Number.isNaN(date.getTime()))
|
|
239
|
+
return '未知时间';
|
|
240
|
+
return new Intl.DateTimeFormat('zh-CN', { month: '2-digit', day: '2-digit' }).format(date);
|
|
241
|
+
}
|
|
242
|
+
function message(reason) {
|
|
243
|
+
return reason instanceof Error ? reason.message : String(reason);
|
|
244
|
+
}
|
|
245
|
+
//# sourceMappingURL=knowledge-activity-panel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge-activity-panel.js","sourceRoot":"","sources":["../src/knowledge-activity-panel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import type { KnowledgeActivityController } from './knowledge-activity-controller.js';
|
|
3
|
+
/** Expand the requested host column once, then reveal our reader with a transform.
|
|
4
|
+
* Avoid reflowing the conversation on every opening frame. No host styles or
|
|
5
|
+
* transition settings are changed; only the in-flight column transition finishes.
|
|
6
|
+
* Closing retains a stable reader width until the host releases the column.
|
|
7
|
+
*/
|
|
8
|
+
export declare function KnowledgeActivityPresentation({ controller, sessionId, onClosed, children }: {
|
|
9
|
+
controller: KnowledgeActivityController;
|
|
10
|
+
sessionId: string;
|
|
11
|
+
onClosed(): void;
|
|
12
|
+
children: ReactNode;
|
|
13
|
+
}): JSX.Element;
|
|
14
|
+
//# sourceMappingURL=knowledge-activity-presentation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge-activity-presentation.d.ts","sourceRoot":"","sources":["../src/knowledge-activity-presentation.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AACrF,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,oCAAoC,CAAA;AAErF;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;IAC3F,UAAU,EAAE,2BAA2B,CAAA;IACvC,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,IAAI,IAAI,CAAA;IAChB,QAAQ,EAAE,SAAS,CAAA;CACpB,GAAG,GAAG,CAAC,OAAO,CA4Dd"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useLayoutEffect, useRef, useSyncExternalStore } from 'react';
|
|
3
|
+
/** Expand the requested host column once, then reveal our reader with a transform.
|
|
4
|
+
* Avoid reflowing the conversation on every opening frame. No host styles or
|
|
5
|
+
* transition settings are changed; only the in-flight column transition finishes.
|
|
6
|
+
* Closing retains a stable reader width until the host releases the column.
|
|
7
|
+
*/
|
|
8
|
+
export function KnowledgeActivityPresentation({ controller, sessionId, onClosed, children }) {
|
|
9
|
+
const root = useRef(null);
|
|
10
|
+
const open = useSyncExternalStore(controller.subscribe, () => controller.isOpen(sessionId));
|
|
11
|
+
useLayoutEffect(() => {
|
|
12
|
+
const viewport = root.current;
|
|
13
|
+
const panel = viewport?.firstElementChild;
|
|
14
|
+
if (!viewport || !panel)
|
|
15
|
+
return;
|
|
16
|
+
let cancelled = false;
|
|
17
|
+
let timeout;
|
|
18
|
+
let reveal;
|
|
19
|
+
const width = panel.getBoundingClientRect().width;
|
|
20
|
+
panel.style.width = `${width > 1 ? width : 360}px`;
|
|
21
|
+
viewport.toggleAttribute('inert', !open);
|
|
22
|
+
const settle = () => {
|
|
23
|
+
if (cancelled)
|
|
24
|
+
return;
|
|
25
|
+
cancelled = true;
|
|
26
|
+
if (timeout !== undefined)
|
|
27
|
+
clearTimeout(timeout);
|
|
28
|
+
reveal?.cancel();
|
|
29
|
+
panel.style.removeProperty('width');
|
|
30
|
+
if (!open)
|
|
31
|
+
onClosed();
|
|
32
|
+
};
|
|
33
|
+
const reducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
|
|
34
|
+
if (!open && reducedMotion) {
|
|
35
|
+
settle();
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
const frame = requestAnimationFrame(() => {
|
|
39
|
+
const transitions = [];
|
|
40
|
+
for (let parent = viewport.parentElement; parent; parent = parent.parentElement) {
|
|
41
|
+
for (const animation of parent.getAnimations()) {
|
|
42
|
+
if ('transitionProperty' in animation && animation.transitionProperty === 'grid-template-columns')
|
|
43
|
+
transitions.push(animation);
|
|
44
|
+
}
|
|
45
|
+
if (transitions.length > 0)
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
if (open && transitions.length > 0) {
|
|
49
|
+
// These are the ancestor column transitions initiated by openDetails().
|
|
50
|
+
// Do not alter unrelated animations, other slots, or future transitions.
|
|
51
|
+
for (const transition of transitions)
|
|
52
|
+
transition.finish();
|
|
53
|
+
panel.style.removeProperty('width');
|
|
54
|
+
if (!reducedMotion) {
|
|
55
|
+
reveal = panel.animate([
|
|
56
|
+
{ transform: 'translateX(100%)' },
|
|
57
|
+
{ transform: 'translateX(0)' },
|
|
58
|
+
], { duration: 180, easing: 'cubic-bezier(.22, 1, .36, 1)' });
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
// A bounded fallback covers detached/cancelled host transitions. It is not
|
|
62
|
+
// a fixed delay: no-motion layouts settle in the first animation frame.
|
|
63
|
+
timeout = setTimeout(settle, 1000);
|
|
64
|
+
void Promise.allSettled((reveal ? [reveal] : transitions).map(animation => animation.finished)).then(settle);
|
|
65
|
+
});
|
|
66
|
+
return () => {
|
|
67
|
+
cancelled = true;
|
|
68
|
+
cancelAnimationFrame(frame);
|
|
69
|
+
if (timeout !== undefined)
|
|
70
|
+
clearTimeout(timeout);
|
|
71
|
+
reveal?.cancel();
|
|
72
|
+
panel.style.removeProperty('width');
|
|
73
|
+
};
|
|
74
|
+
}, [open, onClosed]);
|
|
75
|
+
return _jsx("div", { ref: root, className: "dsh-knowledge-activity-viewport", "aria-hidden": !open || undefined, children: children });
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=knowledge-activity-presentation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge-activity-presentation.js","sourceRoot":"","sources":["../src/knowledge-activity-presentation.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { SessionListState } from '@deepseek-ai/dsh-api-session-controller/client';
|
|
2
|
+
/** DSH reserves the details column only for a loaded, non-blank session. */
|
|
3
|
+
export declare function availableActivitySession(state: Pick<SessionListState, 'current' | 'byId'>): string | undefined;
|
|
4
|
+
export interface KnowledgeActivitySelection {
|
|
5
|
+
mode?: 'knowledge' | 'notes';
|
|
6
|
+
knowledgeBaseId?: string | undefined;
|
|
7
|
+
documentId?: string | undefined;
|
|
8
|
+
noteFolderId?: string | null | undefined;
|
|
9
|
+
noteDocumentId?: string | undefined;
|
|
10
|
+
noteCrumbs?: {
|
|
11
|
+
id: string | null;
|
|
12
|
+
name: string;
|
|
13
|
+
}[];
|
|
14
|
+
}
|
|
15
|
+
/** A base change cannot carry the previous base's document into the next view. */
|
|
16
|
+
export declare function mergeActivitySelection(previous: KnowledgeActivitySelection, next: KnowledgeActivitySelection): KnowledgeActivitySelection;
|
|
17
|
+
//# sourceMappingURL=knowledge-activity-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge-activity-state.d.ts","sourceRoot":"","sources":["../src/knowledge-activity-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAA;AAEtF,4EAA4E;AAC5E,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,GAAG,MAAM,CAAC,GAAG,MAAM,GAAG,SAAS,CAG9G;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,CAAC,EAAE,WAAW,GAAG,OAAO,CAAA;IAC5B,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACpC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IACxC,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,UAAU,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CACnD;AAED,kFAAkF;AAClF,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,0BAA0B,EAAE,IAAI,EAAE,0BAA0B,GAAG,0BAA0B,CAMzI"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** DSH reserves the details column only for a loaded, non-blank session. */
|
|
2
|
+
export function availableActivitySession(state) {
|
|
3
|
+
const current = state.current;
|
|
4
|
+
return current !== undefined && state.byId[current]?.blank === false ? String(current) : undefined;
|
|
5
|
+
}
|
|
6
|
+
/** A base change cannot carry the previous base's document into the next view. */
|
|
7
|
+
export function mergeActivitySelection(previous, next) {
|
|
8
|
+
const merged = { ...previous, ...next };
|
|
9
|
+
if ('knowledgeBaseId' in next && next.knowledgeBaseId !== previous.knowledgeBaseId && !('documentId' in next)) {
|
|
10
|
+
merged.documentId = undefined;
|
|
11
|
+
}
|
|
12
|
+
return merged;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=knowledge-activity-state.js.map
|