@peers-app/peers-ui 0.13.5 → 0.14.0
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/components/left-bar.js +0 -9
- package/dist/components/router.js +0 -44
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/mention-configs.d.ts +0 -2
- package/dist/mention-configs.js +1 -38
- package/dist/screens/groups/group-details.js +1 -0
- package/dist/screens/search/global-search.js +2 -4
- package/dist/screens/workflows/workflow-details.js +5 -56
- package/dist/system-apps/index.d.ts +0 -4
- package/dist/system-apps/index.js +1 -18
- package/dist/tabs-layout/tabs-layout.js +12 -2
- package/dist/ui-defaults/index.d.ts +0 -1
- package/dist/ui-defaults/index.js +0 -1
- package/dist/ui-defaults/list-screen.js +0 -1
- package/docs/tabs-ui.md +6 -21
- package/package.json +3 -3
- package/src/components/left-bar.tsx +0 -12
- package/src/components/router.tsx +0 -48
- package/src/index.tsx +2 -2
- package/src/mention-configs.ts +1 -40
- package/src/screens/groups/group-details.tsx +2 -1
- package/src/screens/search/global-search.tsx +2 -6
- package/src/screens/workflows/workflow-details.tsx +3 -28
- package/src/system-apps/index.ts +0 -14
- package/src/tabs-layout/tabs-layout.tsx +17 -3
- package/src/ui-defaults/index.ts +0 -1
- package/src/ui-defaults/list-screen.tsx +0 -1
- package/dist/screens/events/cron.d.ts +0 -3
- package/dist/screens/events/cron.js +0 -77
- package/dist/screens/events/event-details.d.ts +0 -6
- package/dist/screens/events/event-details.js +0 -112
- package/dist/screens/events/event-handlers.d.ts +0 -7
- package/dist/screens/events/event-handlers.js +0 -84
- package/dist/screens/events/event-info.d.ts +0 -5
- package/dist/screens/events/event-info.js +0 -19
- package/dist/screens/events/event-list.d.ts +0 -2
- package/dist/screens/events/event-list.js +0 -107
- package/dist/screens/events/event-schedule.d.ts +0 -5
- package/dist/screens/events/event-schedule.js +0 -124
- package/dist/screens/knowledge/knowledge-frame-details.bk.d.ts +0 -6
- package/dist/screens/knowledge/knowledge-frame-details.bk.js +0 -84
- package/dist/screens/knowledge/knowledge-frame-details.d.ts +0 -8
- package/dist/screens/knowledge/knowledge-frame-details.js +0 -143
- package/dist/screens/knowledge/knowledge-frame-list.d.ts +0 -2
- package/dist/screens/knowledge/knowledge-frame-list.js +0 -45
- package/dist/screens/knowledge/knowledge-value-details.d.ts +0 -6
- package/dist/screens/knowledge/knowledge-value-details.js +0 -150
- package/dist/screens/knowledge/knowledge-value-list-item.d.ts +0 -5
- package/dist/screens/knowledge/knowledge-value-list-item.js +0 -39
- package/dist/screens/knowledge/knowledge-value-list.d.ts +0 -3
- package/dist/screens/knowledge/knowledge-value-list.js +0 -123
- package/dist/screens/predicates/predicate-details.d.ts +0 -6
- package/dist/screens/predicates/predicate-details.js +0 -103
- package/dist/screens/predicates/predicate-list.d.ts +0 -2
- package/dist/screens/predicates/predicate-list.js +0 -46
- package/dist/screens/workflows/workflow-subscriptions.d.ts +0 -6
- package/dist/screens/workflows/workflow-subscriptions.js +0 -81
- package/dist/system-apps/events.app.d.ts +0 -2
- package/dist/system-apps/events.app.js +0 -8
- package/dist/system-apps/knowledge-frames.app.d.ts +0 -2
- package/dist/system-apps/knowledge-frames.app.js +0 -9
- package/dist/system-apps/knowledge-values.app.d.ts +0 -2
- package/dist/system-apps/knowledge-values.app.js +0 -9
- package/dist/system-apps/predicates.app.d.ts +0 -2
- package/dist/system-apps/predicates.app.js +0 -8
- package/dist/ui-defaults/notes-editor.d.ts +0 -7
- package/dist/ui-defaults/notes-editor.js +0 -41
- package/src/screens/events/cron.ts +0 -74
- package/src/screens/events/event-details.tsx +0 -117
- package/src/screens/events/event-handlers.tsx +0 -61
- package/src/screens/events/event-info.tsx +0 -29
- package/src/screens/events/event-list.tsx +0 -104
- package/src/screens/events/event-schedule.tsx +0 -130
- package/src/screens/knowledge/knowledge-frame-details.bk.tsx +0 -160
- package/src/screens/knowledge/knowledge-frame-details.tsx +0 -176
- package/src/screens/knowledge/knowledge-frame-list.tsx +0 -49
- package/src/screens/knowledge/knowledge-value-details.tsx +0 -181
- package/src/screens/knowledge/knowledge-value-list-item.tsx +0 -48
- package/src/screens/knowledge/knowledge-value-list.tsx +0 -131
- package/src/screens/predicates/predicate-details.tsx +0 -125
- package/src/screens/predicates/predicate-list.tsx +0 -50
- package/src/screens/workflows/workflow-subscriptions.tsx +0 -58
- package/src/system-apps/events.app.ts +0 -7
- package/src/system-apps/knowledge-frames.app.ts +0 -8
- package/src/system-apps/knowledge-values.app.ts +0 -8
- package/src/system-apps/predicates.app.ts +0 -7
- package/src/ui-defaults/notes-editor.tsx +0 -51
|
@@ -112,19 +112,12 @@ const LeftBar = () => {
|
|
|
112
112
|
};
|
|
113
113
|
exports.LeftBar = LeftBar;
|
|
114
114
|
const LeftBarContent = ({ width } = {}) => {
|
|
115
|
-
const [contentPath] = (0, hooks_1.useObservable)(globals_1.mainContentPath);
|
|
116
115
|
const [_isDesktop] = (0, hooks_1.useObservable)(globals_1.isDesktop);
|
|
117
116
|
const barWidth = width ?? DEFAULT_LEFT_BAR_WIDTH;
|
|
118
117
|
const packagesWithNavItems = (0, hooks_1.usePromise)(async () => {
|
|
119
118
|
const packages = await (0, peers_sdk_1.Packages)().list();
|
|
120
119
|
return packages.filter(pkg => pkg.appNavs?.length);
|
|
121
120
|
}, []);
|
|
122
|
-
const knowledgeSublinks = [
|
|
123
|
-
{ text: "Frames", icon: "bi bi-window-dock", path: "knowledge-frames", left: 15 },
|
|
124
|
-
{ text: "Predicates", icon: "bi bi-node-plus-fill", left: 15 },
|
|
125
|
-
{ text: "Graph", icon: "bi bi-diagram-3-fill", left: 15 },
|
|
126
|
-
];
|
|
127
|
-
const knowledgeSublinkActive = contentPath.startsWith('knowledge-') || knowledgeSublinks.find(ks => contentPath.startsWith(ks.path || ks.text.toLowerCase()));
|
|
128
121
|
const containerClassName = `d-flex flex-column flex-shrink-0 p-2 text-white ` + (_isDesktop ? 'bg-dark-subtle' : 'bg-dark');
|
|
129
122
|
const content = (react_1.default.createElement("div", { className: containerClassName, style: { width: barWidth, height: "calc(100vh - 25px)" } },
|
|
130
123
|
react_1.default.createElement("div", { className: "clearfix" },
|
|
@@ -157,8 +150,6 @@ const LeftBarContent = ({ width } = {}) => {
|
|
|
157
150
|
react_1.default.createElement("hr", null),
|
|
158
151
|
react_1.default.createElement(MenuSection, { menuItems: [
|
|
159
152
|
{ text: "Threads", icon: "bi bi-cpu", path: "shell" },
|
|
160
|
-
{ text: `Knowledge ${knowledgeSublinkActive ? '' : '+'}`, icon: "bi bi-journal-bookmark-fill", path: "knowledge-values" },
|
|
161
|
-
...(knowledgeSublinkActive && knowledgeSublinks || []),
|
|
162
153
|
] }),
|
|
163
154
|
(packagesWithNavItems?.length ?? 0) > 0 && packagesWithNavItems?.map(p => react_1.default.createElement(PackageNavItems, { key: p.packageId, pkg: p }))));
|
|
164
155
|
return content;
|
|
@@ -49,22 +49,14 @@ const tool_test_details_1 = require("../screens/tools/tool-test-details");
|
|
|
49
49
|
const workflow_details_1 = require("../screens/workflows/workflow-details");
|
|
50
50
|
const workflow_list_1 = require("../screens/workflows/workflow-list");
|
|
51
51
|
const channel_view_1 = require("./messages/channel-view");
|
|
52
|
-
const event_list_1 = require("../screens/events/event-list");
|
|
53
|
-
const event_details_1 = require("../screens/events/event-details");
|
|
54
52
|
const settings_page_1 = require("../screens/settings/settings-page");
|
|
55
53
|
const package_details_1 = require("../screens/packages/package-details");
|
|
56
54
|
const package_list_1 = require("../screens/packages/package-list");
|
|
57
55
|
const package_new_local_1 = require("../screens/packages/package-new-local");
|
|
58
56
|
const variable_list_1 = require("../screens/variables/variable-list");
|
|
59
57
|
const variable_details_1 = require("../screens/variables/variable-details");
|
|
60
|
-
const knowledge_frame_list_1 = require("../screens/knowledge/knowledge-frame-list");
|
|
61
|
-
const knowledge_frame_details_1 = require("../screens/knowledge/knowledge-frame-details");
|
|
62
58
|
const peer_type_list_1 = require("../screens/peer-types/peer-type-list");
|
|
63
59
|
const peer_type_details_1 = require("../screens/peer-types/peer-type-details");
|
|
64
|
-
const predicate_list_1 = require("../screens/predicates/predicate-list");
|
|
65
|
-
const predicate_details_1 = require("../screens/predicates/predicate-details");
|
|
66
|
-
const knowledge_value_list_1 = require("../screens/knowledge/knowledge-value-list");
|
|
67
|
-
const knowledge_value_details_1 = require("../screens/knowledge/knowledge-value-details");
|
|
68
60
|
const ui_loader_1 = require("../ui-router/ui-loader");
|
|
69
61
|
const hooks_1 = require("../hooks");
|
|
70
62
|
const thread_message_list_1 = require("./messages/thread-message-list");
|
|
@@ -154,15 +146,6 @@ function Router({ path: providedPath } = {}) {
|
|
|
154
146
|
const toolId = parts[0];
|
|
155
147
|
return react_1.default.createElement(tool_details_1.ToolDetails, { toolId: toolId });
|
|
156
148
|
}
|
|
157
|
-
if (path === 'events') {
|
|
158
|
-
return react_1.default.createElement(event_list_1.PeerEventList, null);
|
|
159
|
-
}
|
|
160
|
-
if (path.match(/^events\//)) {
|
|
161
|
-
const parts = path.split('/');
|
|
162
|
-
parts.shift();
|
|
163
|
-
const id = parts[0];
|
|
164
|
-
return react_1.default.createElement(event_details_1.PeerEventDetails, { peerEventTypeId: id });
|
|
165
|
-
}
|
|
166
149
|
if (path === 'packages') {
|
|
167
150
|
return react_1.default.createElement(package_list_1.PackageList, null);
|
|
168
151
|
}
|
|
@@ -184,24 +167,6 @@ function Router({ path: providedPath } = {}) {
|
|
|
184
167
|
const id = parts[0];
|
|
185
168
|
return react_1.default.createElement(variable_details_1.VariableDetails, { persistentVarId: id });
|
|
186
169
|
}
|
|
187
|
-
if (path === 'knowledge-values') {
|
|
188
|
-
return react_1.default.createElement(knowledge_value_list_1.KnowledgeValueList, null);
|
|
189
|
-
}
|
|
190
|
-
if (path.match(/^knowledge-values\/([a-zA-Z0-9]{25})/)) {
|
|
191
|
-
const parts = path.split('/');
|
|
192
|
-
parts.shift();
|
|
193
|
-
const id = parts[0];
|
|
194
|
-
return react_1.default.createElement(knowledge_value_details_1.KnowledgeValueDetails, { knowledgeValueId: id });
|
|
195
|
-
}
|
|
196
|
-
if (path === 'knowledge-frames') {
|
|
197
|
-
return react_1.default.createElement(knowledge_frame_list_1.KnowledgeFrameList, null);
|
|
198
|
-
}
|
|
199
|
-
if (path.match(/^knowledge-frames\//)) {
|
|
200
|
-
const parts = path.split('/');
|
|
201
|
-
parts.shift();
|
|
202
|
-
const id = parts[0];
|
|
203
|
-
return react_1.default.createElement(knowledge_frame_details_1.KnowledgeFrameDetails, { knowledgeFrameId: id });
|
|
204
|
-
}
|
|
205
170
|
if (path === 'peer-types') {
|
|
206
171
|
return react_1.default.createElement(peer_type_list_1.PeerTypeLists, null);
|
|
207
172
|
}
|
|
@@ -211,15 +176,6 @@ function Router({ path: providedPath } = {}) {
|
|
|
211
176
|
const id = parts[0];
|
|
212
177
|
return react_1.default.createElement(peer_type_details_1.PeerTypeDetails, { peerTypeId: id });
|
|
213
178
|
}
|
|
214
|
-
if (path === 'predicates') {
|
|
215
|
-
return react_1.default.createElement(predicate_list_1.PredicateList, null);
|
|
216
|
-
}
|
|
217
|
-
if (path.match(/^predicates\//)) {
|
|
218
|
-
const parts = path.split('/');
|
|
219
|
-
parts.shift();
|
|
220
|
-
const id = parts[0];
|
|
221
|
-
return react_1.default.createElement(predicate_details_1.PredicateDetails, { predicateId: id });
|
|
222
|
-
}
|
|
223
179
|
if (path.match(/^threads\//)) {
|
|
224
180
|
const parts = path.split('/');
|
|
225
181
|
parts.shift();
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
export * from "./hooks";
|
|
2
|
-
export * from "./screens/events/cron";
|
|
3
2
|
export * from "./tabs-layout/tabs-layout";
|
|
4
3
|
export { activeTabId, activeTabs, TabState, updateActiveTabTitle, closeCurrentTab, goToTabPath } from "./tabs-layout/tabs-state";
|
|
5
4
|
export { mainContentPath } from "./globals";
|
|
@@ -10,3 +9,4 @@ export * from "./components/tabs";
|
|
|
10
9
|
export * from "./components/inverse-lazy-list";
|
|
11
10
|
export * from "./components/markdown-editor/editor-inline";
|
|
12
11
|
export * from "./components/markdown-editor/editor";
|
|
12
|
+
export * from "./components/markdown-with-mentions";
|
package/dist/index.js
CHANGED
|
@@ -16,7 +16,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
exports.mainContentPath = exports.goToTabPath = exports.closeCurrentTab = exports.updateActiveTabTitle = exports.activeTabs = exports.activeTabId = void 0;
|
|
18
18
|
__exportStar(require("./hooks"), exports);
|
|
19
|
-
__exportStar(require("./screens/events/cron"), exports);
|
|
20
19
|
__exportStar(require("./tabs-layout/tabs-layout"), exports);
|
|
21
20
|
var tabs_state_1 = require("./tabs-layout/tabs-state");
|
|
22
21
|
Object.defineProperty(exports, "activeTabId", { enumerable: true, get: function () { return tabs_state_1.activeTabId; } });
|
|
@@ -33,3 +32,4 @@ __exportStar(require("./components/tabs"), exports);
|
|
|
33
32
|
__exportStar(require("./components/inverse-lazy-list"), exports);
|
|
34
33
|
__exportStar(require("./components/markdown-editor/editor-inline"), exports);
|
|
35
34
|
__exportStar(require("./components/markdown-editor/editor"), exports);
|
|
35
|
+
__exportStar(require("./components/markdown-with-mentions"), exports);
|
|
@@ -12,7 +12,5 @@ export declare const toolMentionConfig: IMentionConfig;
|
|
|
12
12
|
export declare const userMentionConfig: IMentionConfig;
|
|
13
13
|
export declare const assistantMentionConfig: IMentionConfig;
|
|
14
14
|
export declare const workflowMentionConfig: IMentionConfig;
|
|
15
|
-
export declare const peerEventTypeMentionConfig: IMentionConfig;
|
|
16
|
-
export declare const predicateMentionConfig: IMentionConfig;
|
|
17
15
|
export declare const valueTypeMentionConfig: IMentionConfig;
|
|
18
16
|
export declare const mentionConfigs: IMentionConfig[];
|
package/dist/mention-configs.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.mentionConfigs = exports.valueTypeMentionConfig = exports.
|
|
3
|
+
exports.mentionConfigs = exports.valueTypeMentionConfig = exports.workflowMentionConfig = exports.assistantMentionConfig = exports.userMentionConfig = exports.toolMentionConfig = void 0;
|
|
4
4
|
const peers_sdk_1 = require("@peers-app/peers-sdk");
|
|
5
5
|
// import { MENTIONS_MAX_RESULTS } from "../client/components/markdown-editor/mentions-plugin";
|
|
6
6
|
const MENTIONS_MAX_RESULTS = 10;
|
|
@@ -76,41 +76,6 @@ exports.workflowMentionConfig = {
|
|
|
76
76
|
name: item.name
|
|
77
77
|
}),
|
|
78
78
|
};
|
|
79
|
-
exports.peerEventTypeMentionConfig = {
|
|
80
|
-
kind: 'event',
|
|
81
|
-
iconClass: 'bi bi-lightning-charge-fill',
|
|
82
|
-
styleClass: 'mention-event',
|
|
83
|
-
query: async (search) => {
|
|
84
|
-
return (0, peers_sdk_1.PeerEventTypes)().list({ name: { $matchWords: search } }, { pageSize: MENTIONS_MAX_RESULTS })
|
|
85
|
-
.then((events) => events.map((event) => ({
|
|
86
|
-
kind: 'event',
|
|
87
|
-
id: event.peerEventTypeId,
|
|
88
|
-
name: event.name,
|
|
89
|
-
})));
|
|
90
|
-
},
|
|
91
|
-
getById: id => (0, peers_sdk_1.PeerEventTypes)().get(id).then(item => item && {
|
|
92
|
-
kind: 'event',
|
|
93
|
-
id: item.peerEventTypeId,
|
|
94
|
-
name: item.name
|
|
95
|
-
}),
|
|
96
|
-
};
|
|
97
|
-
exports.predicateMentionConfig = {
|
|
98
|
-
kind: 'predicate',
|
|
99
|
-
iconClass: 'bi bi-node-plus-fill',
|
|
100
|
-
query: async (search) => {
|
|
101
|
-
const results = await (0, peers_sdk_1.Predicates)().list({ name: { $matchWords: search } }, { pageSize: MENTIONS_MAX_RESULTS });
|
|
102
|
-
return results.map(p => ({
|
|
103
|
-
kind: 'predicate',
|
|
104
|
-
id: p.predicateId,
|
|
105
|
-
name: p.name
|
|
106
|
-
}));
|
|
107
|
-
},
|
|
108
|
-
getById: id => (0, peers_sdk_1.Predicates)().get(id).then(item => item && {
|
|
109
|
-
kind: 'predicate',
|
|
110
|
-
id: item.predicateId,
|
|
111
|
-
name: item.name
|
|
112
|
-
}),
|
|
113
|
-
};
|
|
114
79
|
exports.valueTypeMentionConfig = {
|
|
115
80
|
kind: 'type',
|
|
116
81
|
iconClass: 'bi bi-code-square',
|
|
@@ -143,7 +108,5 @@ exports.mentionConfigs = [
|
|
|
143
108
|
exports.userMentionConfig,
|
|
144
109
|
exports.assistantMentionConfig,
|
|
145
110
|
exports.workflowMentionConfig,
|
|
146
|
-
exports.peerEventTypeMentionConfig,
|
|
147
|
-
exports.predicateMentionConfig,
|
|
148
111
|
exports.valueTypeMentionConfig,
|
|
149
112
|
];
|
|
@@ -70,6 +70,7 @@ const GroupDetails = (props) => {
|
|
|
70
70
|
const deleteResult = await originalDelete();
|
|
71
71
|
userContext.defaultDataContext(userContext.userDataContext);
|
|
72
72
|
await (0, peers_sdk_1.sleep)(100);
|
|
73
|
+
await peers_sdk_1.rpcServerCalls.flushDatabases();
|
|
73
74
|
window.location.reload();
|
|
74
75
|
return deleteResult;
|
|
75
76
|
};
|
|
@@ -61,8 +61,6 @@ function GlobalSearch() {
|
|
|
61
61
|
{ config: mention_configs_1.toolMentionConfig, category: 'Tools', navigationPath: 'tools' },
|
|
62
62
|
{ config: mention_configs_1.assistantMentionConfig, category: 'Assistants', navigationPath: 'assistants' },
|
|
63
63
|
{ config: mention_configs_1.workflowMentionConfig, category: 'Workflows', navigationPath: 'workflows' },
|
|
64
|
-
{ config: mention_configs_1.peerEventTypeMentionConfig, category: 'Events', navigationPath: 'events' },
|
|
65
|
-
{ config: mention_configs_1.predicateMentionConfig, category: 'Predicates', navigationPath: 'predicates' },
|
|
66
64
|
{ config: mention_configs_1.valueTypeMentionConfig, category: 'Types', navigationPath: 'peer-types' },
|
|
67
65
|
{ config: mention_configs_1.userMentionConfig, category: 'Users', navigationPath: 'profile' },
|
|
68
66
|
];
|
|
@@ -172,7 +170,7 @@ function GlobalSearch() {
|
|
|
172
170
|
zIndex: 1,
|
|
173
171
|
fontSize: '18px'
|
|
174
172
|
} }),
|
|
175
|
-
react_1.default.createElement("input", { ref: inputRef, type: "text", className: `form-control form-control-lg ${isDark ? 'bg-dark text-light border-secondary' : ''}`, placeholder: "Search across apps, tools, assistants, workflows,
|
|
173
|
+
react_1.default.createElement("input", { ref: inputRef, type: "text", className: `form-control form-control-lg ${isDark ? 'bg-dark text-light border-secondary' : ''}`, placeholder: "Search across apps, tools, assistants, workflows, and more...", value: searchQuery, onChange: (e) => setSearchQuery(e.target.value), style: {
|
|
176
174
|
paddingLeft: '50px',
|
|
177
175
|
fontSize: '18px',
|
|
178
176
|
borderRadius: '12px',
|
|
@@ -253,7 +251,7 @@ function GlobalSearch() {
|
|
|
253
251
|
!searchQuery && (react_1.default.createElement("div", { className: "text-center py-5" },
|
|
254
252
|
react_1.default.createElement("i", { className: "bi-search mb-3 d-block text-muted", style: { fontSize: '64px' } }),
|
|
255
253
|
react_1.default.createElement("h3", { className: "text-muted mb-3" }, "Search across everything"),
|
|
256
|
-
react_1.default.createElement("p", { className: "text-muted mb-4", style: { maxWidth: '400px', margin: '0 auto' } }, "Find apps, tools, assistants, workflows,
|
|
254
|
+
react_1.default.createElement("p", { className: "text-muted mb-4", style: { maxWidth: '400px', margin: '0 auto' } }, "Find apps, tools, assistants, workflows, types, and users all in one place."),
|
|
257
255
|
react_1.default.createElement("div", { className: "d-flex flex-wrap justify-content-center gap-2" }, searchConfigs.map(({ config, category }) => (react_1.default.createElement("span", { key: category, className: `badge ${isDark ? 'bg-secondary' : 'bg-light text-dark'} px-3 py-2 d-flex align-items-center`, style: { fontSize: '12px' } },
|
|
258
256
|
react_1.default.createElement("i", { className: `${config.iconClass} me-2` }),
|
|
259
257
|
category))))))));
|
|
@@ -1,41 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
35
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
6
|
exports.WorkflowDetails = void 0;
|
|
37
7
|
const peers_sdk_1 = require("@peers-app/peers-sdk");
|
|
38
|
-
const react_1 =
|
|
8
|
+
const react_1 = __importDefault(require("react"));
|
|
39
9
|
const input_1 = require("../../components/input");
|
|
40
10
|
const loading_indicator_1 = require("../../components/loading-indicator");
|
|
41
11
|
const save_button_1 = require("../../components/save-button");
|
|
@@ -45,7 +15,6 @@ const hooks_1 = require("../../hooks");
|
|
|
45
15
|
const tabs_state_1 = require("../../tabs-layout/tabs-state");
|
|
46
16
|
const workflow_info_1 = require("./workflow-info");
|
|
47
17
|
const workflow_instructions_1 = require("./workflow-instructions");
|
|
48
|
-
const workflow_subscriptions_1 = require("./workflow-subscriptions");
|
|
49
18
|
const WorkflowDetails = (props) => {
|
|
50
19
|
const workflow = (0, hooks_1.usePromise)(async () => {
|
|
51
20
|
const workflow = await (0, peers_sdk_1.Workflows)().get(props.workflowId);
|
|
@@ -55,16 +24,7 @@ const WorkflowDetails = (props) => {
|
|
|
55
24
|
(0, tabs_state_1.updateActiveTabTitle)(workflow.name || "Workflow");
|
|
56
25
|
return (0, peers_sdk_1.Workflows)().initDoc(workflow);
|
|
57
26
|
}, undefined, [props.workflowId]);
|
|
58
|
-
|
|
59
|
-
const handlersLoaded = (0, hooks_1.usePromise)(async () => {
|
|
60
|
-
if (!workflow)
|
|
61
|
-
return false;
|
|
62
|
-
const _handlers = await (0, peers_sdk_1.PeerEventHandlers)().list({ handlerWorkflowId: workflow.workflowId });
|
|
63
|
-
handlers(_handlers);
|
|
64
|
-
return true;
|
|
65
|
-
}, false, [workflow]);
|
|
66
|
-
const allLoaded = !!(workflow && handlersLoaded);
|
|
67
|
-
if (!allLoaded) {
|
|
27
|
+
if (!workflow) {
|
|
68
28
|
return react_1.default.createElement(loading_indicator_1.LoadingIndicator, null);
|
|
69
29
|
}
|
|
70
30
|
async function saveChanges() {
|
|
@@ -74,13 +34,6 @@ const WorkflowDetails = (props) => {
|
|
|
74
34
|
const assistantsMentioned = await (0, peers_sdk_1.getAllAssistantIdsMentioned)(workflow.instructions[0].markdown ?? '');
|
|
75
35
|
workflow.defaultAssistantId = assistantsMentioned[0] || peers_sdk_1.defaultAssistantId;
|
|
76
36
|
workflow.save();
|
|
77
|
-
const oldHandlers = await (0, peers_sdk_1.PeerEventHandlers)().list({ handlerWorkflowId: workflow.workflowId });
|
|
78
|
-
for (const oldHandler of oldHandlers) {
|
|
79
|
-
await (0, peers_sdk_1.PeerEventHandlers)().delete(oldHandler.peerEventHandlerId);
|
|
80
|
-
}
|
|
81
|
-
for (const handler of handlers()) {
|
|
82
|
-
(0, peers_sdk_1.PeerEventHandlers)().save(handler, { restoreIfDeleted: true });
|
|
83
|
-
}
|
|
84
37
|
}
|
|
85
38
|
return (react_1.default.createElement("div", { className: "container-fluid p-3" },
|
|
86
39
|
react_1.default.createElement("div", { className: "d-flex" },
|
|
@@ -105,10 +58,6 @@ const WorkflowDetails = (props) => {
|
|
|
105
58
|
name: 'Instructions', content: react_1.default.createElement(tabs_1.ScreenTabBody, null,
|
|
106
59
|
react_1.default.createElement(workflow_instructions_1.WorkflowInstructions, { workflow: workflow }))
|
|
107
60
|
},
|
|
108
|
-
{
|
|
109
|
-
name: 'Subscriptions', content: react_1.default.createElement(tabs_1.ScreenTabBody, null,
|
|
110
|
-
react_1.default.createElement(workflow_subscriptions_1.WorkflowEventSubscriptions, { workflow: workflow, eventSubscriptions: handlers }))
|
|
111
|
-
},
|
|
112
61
|
] })));
|
|
113
62
|
};
|
|
114
63
|
exports.WorkflowDetails = WorkflowDetails;
|
|
@@ -3,14 +3,10 @@ export { searchApp } from './search.app';
|
|
|
3
3
|
export { assistantsApp } from './assistants.app';
|
|
4
4
|
export { toolsApp } from './tools.app';
|
|
5
5
|
export { workflowsApp } from './workflows.app';
|
|
6
|
-
export { eventsApp } from './events.app';
|
|
7
6
|
export { variablesApp } from './variables.app';
|
|
8
7
|
export { typesApp } from './types.app';
|
|
9
8
|
export { packagesApp } from './packages.app';
|
|
10
9
|
export { threadsApp } from './threads.app';
|
|
11
|
-
export { knowledgeValuesApp } from './knowledge-values.app';
|
|
12
|
-
export { knowledgeFramesApp } from './knowledge-frames.app';
|
|
13
|
-
export { predicatesApp } from './predicates.app';
|
|
14
10
|
export { settingsApp } from './settings.app';
|
|
15
11
|
export { groupsApp } from './groups.app';
|
|
16
12
|
export { joinGroupApp } from './join-group.app';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.systemPackage = exports.systemApps = exports.mobileSettingsApp = exports.dataExplorerApp = exports.networkViewerApp = exports.consoleLogsApp = exports.contactsApp = exports.joinGroupApp = exports.groupsApp = exports.settingsApp = exports.
|
|
3
|
+
exports.systemPackage = exports.systemApps = exports.mobileSettingsApp = exports.dataExplorerApp = exports.networkViewerApp = exports.consoleLogsApp = exports.contactsApp = exports.joinGroupApp = exports.groupsApp = exports.settingsApp = exports.threadsApp = exports.packagesApp = exports.typesApp = exports.variablesApp = exports.workflowsApp = exports.toolsApp = exports.assistantsApp = exports.searchApp = void 0;
|
|
4
4
|
// Import all system apps
|
|
5
5
|
var search_app_1 = require("./search.app");
|
|
6
6
|
Object.defineProperty(exports, "searchApp", { enumerable: true, get: function () { return search_app_1.searchApp; } });
|
|
@@ -10,8 +10,6 @@ var tools_app_1 = require("./tools.app");
|
|
|
10
10
|
Object.defineProperty(exports, "toolsApp", { enumerable: true, get: function () { return tools_app_1.toolsApp; } });
|
|
11
11
|
var workflows_app_1 = require("./workflows.app");
|
|
12
12
|
Object.defineProperty(exports, "workflowsApp", { enumerable: true, get: function () { return workflows_app_1.workflowsApp; } });
|
|
13
|
-
var events_app_1 = require("./events.app");
|
|
14
|
-
Object.defineProperty(exports, "eventsApp", { enumerable: true, get: function () { return events_app_1.eventsApp; } });
|
|
15
13
|
var variables_app_1 = require("./variables.app");
|
|
16
14
|
Object.defineProperty(exports, "variablesApp", { enumerable: true, get: function () { return variables_app_1.variablesApp; } });
|
|
17
15
|
var types_app_1 = require("./types.app");
|
|
@@ -20,12 +18,6 @@ var packages_app_1 = require("./packages.app");
|
|
|
20
18
|
Object.defineProperty(exports, "packagesApp", { enumerable: true, get: function () { return packages_app_1.packagesApp; } });
|
|
21
19
|
var threads_app_1 = require("./threads.app");
|
|
22
20
|
Object.defineProperty(exports, "threadsApp", { enumerable: true, get: function () { return threads_app_1.threadsApp; } });
|
|
23
|
-
var knowledge_values_app_1 = require("./knowledge-values.app");
|
|
24
|
-
Object.defineProperty(exports, "knowledgeValuesApp", { enumerable: true, get: function () { return knowledge_values_app_1.knowledgeValuesApp; } });
|
|
25
|
-
var knowledge_frames_app_1 = require("./knowledge-frames.app");
|
|
26
|
-
Object.defineProperty(exports, "knowledgeFramesApp", { enumerable: true, get: function () { return knowledge_frames_app_1.knowledgeFramesApp; } });
|
|
27
|
-
var predicates_app_1 = require("./predicates.app");
|
|
28
|
-
Object.defineProperty(exports, "predicatesApp", { enumerable: true, get: function () { return predicates_app_1.predicatesApp; } });
|
|
29
21
|
var settings_app_1 = require("./settings.app");
|
|
30
22
|
Object.defineProperty(exports, "settingsApp", { enumerable: true, get: function () { return settings_app_1.settingsApp; } });
|
|
31
23
|
var groups_app_1 = require("./groups.app");
|
|
@@ -47,14 +39,10 @@ const search_app_2 = require("./search.app");
|
|
|
47
39
|
const assistants_app_2 = require("./assistants.app");
|
|
48
40
|
const tools_app_2 = require("./tools.app");
|
|
49
41
|
const workflows_app_2 = require("./workflows.app");
|
|
50
|
-
const events_app_2 = require("./events.app");
|
|
51
42
|
const variables_app_2 = require("./variables.app");
|
|
52
43
|
const types_app_2 = require("./types.app");
|
|
53
44
|
const packages_app_2 = require("./packages.app");
|
|
54
45
|
const threads_app_2 = require("./threads.app");
|
|
55
|
-
const knowledge_values_app_2 = require("./knowledge-values.app");
|
|
56
|
-
const knowledge_frames_app_2 = require("./knowledge-frames.app");
|
|
57
|
-
const predicates_app_2 = require("./predicates.app");
|
|
58
46
|
const settings_app_2 = require("./settings.app");
|
|
59
47
|
const groups_app_2 = require("./groups.app");
|
|
60
48
|
const join_group_app_2 = require("./join-group.app");
|
|
@@ -72,17 +60,12 @@ exports.systemApps = [
|
|
|
72
60
|
// Core Navigation & Search
|
|
73
61
|
search_app_2.searchApp,
|
|
74
62
|
threads_app_2.threadsApp,
|
|
75
|
-
// Knowledge & Data
|
|
76
|
-
knowledge_values_app_2.knowledgeValuesApp,
|
|
77
|
-
knowledge_frames_app_2.knowledgeFramesApp,
|
|
78
|
-
predicates_app_2.predicatesApp,
|
|
79
63
|
// Core Management Apps
|
|
80
64
|
variables_app_2.variablesApp,
|
|
81
65
|
types_app_2.typesApp,
|
|
82
66
|
assistants_app_2.assistantsApp,
|
|
83
67
|
tools_app_2.toolsApp,
|
|
84
68
|
workflows_app_2.workflowsApp,
|
|
85
|
-
events_app_2.eventsApp,
|
|
86
69
|
packages_app_2.packagesApp,
|
|
87
70
|
groups_app_2.groupsApp,
|
|
88
71
|
join_group_app_2.joinGroupApp,
|
|
@@ -128,14 +128,16 @@ function TabsLayoutInternal() {
|
|
|
128
128
|
const [tabs] = (0, hooks_1.useObservable)(tabs_state_1.activeTabs);
|
|
129
129
|
const [activeTab] = (0, hooks_1.useObservable)(tabs_state_1.activeTabId);
|
|
130
130
|
const [currentlyActiveGroupId, setCurrentlyActiveGroupId] = (0, react_1.useState)('');
|
|
131
|
+
const [switchingGroup, setSwitchingGroup] = (0, react_1.useState)(false);
|
|
131
132
|
(0, react_1.useEffect)(() => {
|
|
132
133
|
let sub;
|
|
133
134
|
(0, peers_sdk_1.getUserContext)().then(userContext => {
|
|
134
135
|
setCurrentlyActiveGroupId(userContext.currentlyActiveGroupId() || userContext.userId);
|
|
135
136
|
sub = userContext.currentlyActiveGroupId.subscribe(async (groupId) => {
|
|
136
137
|
setCurrentlyActiveGroupId(userContext.currentlyActiveGroupId() || userContext.userId);
|
|
137
|
-
|
|
138
|
-
await
|
|
138
|
+
setSwitchingGroup(true);
|
|
139
|
+
await userContext.waitForActiveGroupPersistence();
|
|
140
|
+
await peers_sdk_1.rpcServerCalls.flushDatabases();
|
|
139
141
|
window.location.reload();
|
|
140
142
|
});
|
|
141
143
|
});
|
|
@@ -172,6 +174,14 @@ function TabsLayoutInternal() {
|
|
|
172
174
|
(0, tabs_state_1.activeTabId)(tabId);
|
|
173
175
|
};
|
|
174
176
|
return (react_1.default.createElement("div", { key: currentlyActiveGroupId, className: "d-flex flex-column", style: { height: 'calc(100vh - 25px)', overflow: 'hidden' } },
|
|
177
|
+
switchingGroup && (react_1.default.createElement("div", { style: {
|
|
178
|
+
position: 'fixed', inset: 0, zIndex: 9999,
|
|
179
|
+
display: 'flex', alignItems: 'center', justifyContent: 'center',
|
|
180
|
+
backgroundColor: _colorMode === 'light' ? 'rgba(255,255,255,0.85)' : 'rgba(0,0,0,0.85)',
|
|
181
|
+
} },
|
|
182
|
+
react_1.default.createElement("div", { className: "text-center" },
|
|
183
|
+
react_1.default.createElement("div", { className: "spinner-border text-secondary mb-3", role: "status" }),
|
|
184
|
+
react_1.default.createElement("div", { className: `small ${_colorMode === 'light' ? 'text-muted' : 'text-secondary'}` }, "Switching group...")))),
|
|
175
185
|
react_1.default.createElement("div", { className: `border-bottom ${_colorMode === 'light' ? 'bg-light' : 'bg-dark'}`, style: {
|
|
176
186
|
borderBottomWidth: '1px',
|
|
177
187
|
borderBottomColor: _colorMode === 'light' ? '#dee2e6' : '#495057'
|
|
@@ -17,7 +17,6 @@ const DefaultListScreen = (props) => {
|
|
|
17
17
|
const path = (0, globals_1.mainContentPath)().toLowerCase().trim().split('?')[0].split('#').pop()?.split('/')[0] || '';
|
|
18
18
|
const fuzzyTableName = ({
|
|
19
19
|
variables: 'persistent_vars',
|
|
20
|
-
"events": 'peer_event_types',
|
|
21
20
|
}[path] || path).replace(/[_-]/g, '').trim();
|
|
22
21
|
const allTables = (0, peers_sdk_1.getAllTables)();
|
|
23
22
|
const tableName = Object.keys(allTables).find(t => t.toLowerCase().replace(/[_-]/g, '').trim() === fuzzyTableName);
|
package/docs/tabs-ui.md
CHANGED
|
@@ -456,14 +456,10 @@ const systemApps = [
|
|
|
456
456
|
{ name: 'Assistants', icon: 'bi-person-fill-gear', path: 'assistants' },
|
|
457
457
|
{ name: 'Tools', icon: 'bi-tools', path: 'tools' },
|
|
458
458
|
{ name: 'Workflows', icon: 'bi-database-fill-gear', path: 'workflows' },
|
|
459
|
-
{ name: 'Events', icon: 'bi-lightning-charge-fill', path: 'events' },
|
|
460
459
|
{ name: 'Packages', icon: 'bi-box-fill', path: 'packages' },
|
|
461
460
|
|
|
462
|
-
//
|
|
461
|
+
// Communication
|
|
463
462
|
{ name: 'Threads', icon: 'bi-cpu', path: 'shell' },
|
|
464
|
-
{ name: 'Knowledge Values', icon: 'bi-journal-bookmark-fill', path: 'knowledge-values' },
|
|
465
|
-
{ name: 'Knowledge Frames', icon: 'bi-window-dock', path: 'knowledge-frames' },
|
|
466
|
-
{ name: 'Predicates', icon: 'bi-node-plus-fill', path: 'predicates' },
|
|
467
463
|
|
|
468
464
|
// User & Settings Apps
|
|
469
465
|
{ name: 'Profile', icon: 'bi-person-circle', path: 'profile' },
|
|
@@ -472,7 +468,7 @@ const systemApps = [
|
|
|
472
468
|
```
|
|
473
469
|
|
|
474
470
|
### App Categorization Logic
|
|
475
|
-
- **System Apps**: Built-in core functionality (
|
|
471
|
+
- **System Apps**: Built-in core functionality (search, threads, variables, types, assistants, tools, workflows, packages, groups, settings, and debugging tools)
|
|
476
472
|
- **User Apps**: All other packages with nav items
|
|
477
473
|
- **Recently Used**: Cross-category recent apps section
|
|
478
474
|
- **Dynamic Updates**: Automatically reflects package changes
|
|
@@ -487,30 +483,23 @@ src/system-apps/
|
|
|
487
483
|
├── assistants.app.ts # AI Assistant management
|
|
488
484
|
├── tools.app.ts # Tool management
|
|
489
485
|
├── workflows.app.ts # Workflow builder
|
|
490
|
-
├── events.app.ts # Event monitoring
|
|
491
486
|
├── variables.app.ts # Variable management
|
|
492
487
|
├── types.app.ts # Peer type definitions
|
|
493
488
|
├── packages.app.ts # Package management
|
|
494
489
|
├── threads.app.ts # Shell/communication
|
|
495
|
-
├── knowledge-values.app.ts # Knowledge data
|
|
496
|
-
├── knowledge-frames.app.ts # Knowledge structure
|
|
497
|
-
├── predicates.app.ts # Predicate logic
|
|
498
490
|
├── profile.app.ts # User profile
|
|
499
491
|
└── settings.app.ts # Application settings
|
|
500
492
|
```
|
|
501
493
|
|
|
502
494
|
### Migration from Left Sidebar
|
|
503
|
-
- **
|
|
504
|
-
- **Enhanced Experience**: System functions now benefit from tabs (multiple instances, persistence)
|
|
495
|
+
- **Enhanced Experience**: System functions benefit from tabs (multiple instances, persistence)
|
|
505
496
|
- **Modular Design**: Each app independently maintainable
|
|
506
|
-
- **Consistent Interface**:
|
|
507
|
-
- **No Functionality Loss**: All existing routing and features intact
|
|
497
|
+
- **Consistent Interface**: Icons and paths align with the main navigation where applicable
|
|
508
498
|
|
|
509
499
|
### Recent Improvements (Latest)
|
|
510
500
|
|
|
511
501
|
#### Display Name Enhancement
|
|
512
502
|
- **Name Truncation Solution**: Added `displayName` field to `IAppNav` interface
|
|
513
|
-
- **Shorter Labels**: Knowledge apps now use "K-Values" and "K-Frames" instead of truncated full names
|
|
514
503
|
- **Tooltip Support**: Full app names still visible on hover for context
|
|
515
504
|
- **Visual Polish**: Increased spacing between app launcher sections for better visual separation
|
|
516
505
|
|
|
@@ -520,7 +509,7 @@ src/system-apps/
|
|
|
520
509
|
|
|
521
510
|
#### System Apps Expansion
|
|
522
511
|
- **Profile & Settings**: Added Profile and Settings as system apps to restore old left bar functionality
|
|
523
|
-
- **Complete Coverage**:
|
|
512
|
+
- **Complete Coverage**: Core left bar items are available as individual apps
|
|
524
513
|
- **Familiar Icons**: Used `bi-person-circle` for Profile and `bi-gear-fill` for Settings
|
|
525
514
|
|
|
526
515
|
#### Smart Tab Management
|
|
@@ -616,12 +605,8 @@ const parseSystemAppTitle = (path: string, originalTitle: string): string => {
|
|
|
616
605
|
'assistants': 'Assistant Details',
|
|
617
606
|
'tools': segments[2] === 'tests' ? 'Tool Test Details' : 'Tool Details',
|
|
618
607
|
'workflows': 'Workflow Details',
|
|
619
|
-
'events': 'Event Details',
|
|
620
608
|
'variables': 'Variable Details',
|
|
621
|
-
'packages': 'Package Details'
|
|
622
|
-
'knowledge-values': 'Knowledge Value Details',
|
|
623
|
-
'knowledge-frames': 'Knowledge Frame Details',
|
|
624
|
-
'predicates': 'Predicate Details'
|
|
609
|
+
'packages': 'Package Details'
|
|
625
610
|
};
|
|
626
611
|
|
|
627
612
|
return patterns[segments[0]] || `${originalTitle} - Details`;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@peers-app/peers-ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.14.0",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/peers-app/peers-ui.git"
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"test:coverage": "jest --coverage"
|
|
27
27
|
},
|
|
28
28
|
"peerDependencies": {
|
|
29
|
-
"@peers-app/peers-sdk": "^0.
|
|
29
|
+
"@peers-app/peers-sdk": "^0.14.0",
|
|
30
30
|
"bootstrap": "^5.3.3",
|
|
31
31
|
"react": "^18.0.0",
|
|
32
32
|
"react-dom": "^18.0.0"
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"@babel/preset-env": "^7.24.5",
|
|
37
37
|
"@babel/preset-react": "^7.24.1",
|
|
38
38
|
"@babel/preset-typescript": "^7.27.1",
|
|
39
|
-
"@peers-app/peers-sdk": "0.
|
|
39
|
+
"@peers-app/peers-sdk": "0.14.0",
|
|
40
40
|
"@testing-library/dom": "^10.4.0",
|
|
41
41
|
"@testing-library/jest-dom": "^6.6.3",
|
|
42
42
|
"@testing-library/react": "^16.3.0",
|
|
@@ -101,7 +101,6 @@ export const LeftBar = () => {
|
|
|
101
101
|
}
|
|
102
102
|
|
|
103
103
|
export const LeftBarContent = ({ width }: { width?: number } = {}) => {
|
|
104
|
-
const [contentPath] = useObservable(mainContentPath);
|
|
105
104
|
const [_isDesktop] = useObservable(isDesktop);
|
|
106
105
|
const barWidth = width ?? DEFAULT_LEFT_BAR_WIDTH;
|
|
107
106
|
|
|
@@ -110,14 +109,6 @@ export const LeftBarContent = ({ width }: { width?: number } = {}) => {
|
|
|
110
109
|
return packages.filter(pkg => pkg.appNavs?.length);
|
|
111
110
|
}, []);
|
|
112
111
|
|
|
113
|
-
const knowledgeSublinks = [
|
|
114
|
-
{ text: "Frames", icon: "bi bi-window-dock", path: "knowledge-frames", left: 15 },
|
|
115
|
-
{ text: "Predicates", icon: "bi bi-node-plus-fill", left: 15 },
|
|
116
|
-
{ text: "Graph", icon: "bi bi-diagram-3-fill", left: 15 },
|
|
117
|
-
]
|
|
118
|
-
|
|
119
|
-
const knowledgeSublinkActive = contentPath.startsWith('knowledge-') || knowledgeSublinks.find(ks => contentPath.startsWith(ks.path || ks.text.toLowerCase()));
|
|
120
|
-
|
|
121
112
|
const containerClassName = `d-flex flex-column flex-shrink-0 p-2 text-white ` + (_isDesktop ? 'bg-dark-subtle' : 'bg-dark');
|
|
122
113
|
|
|
123
114
|
const content = (
|
|
@@ -177,9 +168,6 @@ export const LeftBarContent = ({ width }: { width?: number } = {}) => {
|
|
|
177
168
|
<MenuSection
|
|
178
169
|
menuItems={[
|
|
179
170
|
{ text: "Threads", icon: "bi bi-cpu", path: "shell" },
|
|
180
|
-
|
|
181
|
-
{ text: `Knowledge ${knowledgeSublinkActive ? '' : '+'}`, icon: "bi bi-journal-bookmark-fill", path: "knowledge-values" },
|
|
182
|
-
...(knowledgeSublinkActive && knowledgeSublinks || []),
|
|
183
171
|
]}
|
|
184
172
|
/>
|
|
185
173
|
|