@elevasis/ui 2.25.4 → 2.25.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/app/index.css +2 -6
- package/dist/app/index.d.ts +63 -56
- package/dist/app/index.js +3 -2
- package/dist/charts/index.js +1 -1
- package/dist/chunk-5RLYII6P.js +314 -0
- package/dist/chunk-6U7AIIHF.js +880 -0
- package/dist/{chunk-5O5VC4HB.js → chunk-7F3IQMLI.js} +1 -1
- package/dist/{chunk-ZBRRVDYJ.js → chunk-ARJPZ66V.js} +42 -760
- package/dist/{chunk-IS53MXE4.js → chunk-BDKM56TP.js} +1 -1
- package/dist/{chunk-FVXM2MN6.js → chunk-C7IBFI5B.js} +1 -1
- package/dist/{chunk-DUUH3CHC.js → chunk-CPAJXBTL.js} +10 -6
- package/dist/{chunk-3FBCFSDF.js → chunk-ECNNI3NT.js} +2 -1
- package/dist/chunk-HAEJ4M54.js +94 -0
- package/dist/{chunk-7RPH2VXV.js → chunk-JXSBOG2R.js} +1 -1
- package/dist/{chunk-E7WTCAVX.js → chunk-KNISO652.js} +2 -2
- package/dist/{chunk-5PLAJ6IS.js → chunk-L7D6KNHV.js} +457 -335
- package/dist/{chunk-JMI7L7Y7.js → chunk-LPM7O6XM.js} +2 -233
- package/dist/{chunk-2XWXFT2Z.js → chunk-QARSVM7Q.js} +1 -1
- package/dist/{chunk-FYT6LYJP.js → chunk-SBQ4MYQV.js} +3 -2
- package/dist/{chunk-MU4VPAMR.js → chunk-YRKQNPK2.js} +1 -1
- package/dist/components/index.css +2 -6
- package/dist/components/index.d.ts +11 -2
- package/dist/components/index.js +25 -23
- package/dist/components/navigation/index.css +2 -6
- package/dist/features/auth/index.css +2 -6
- package/dist/features/crm/index.css +2 -6
- package/dist/features/crm/index.js +9 -8
- package/dist/features/dashboard/index.css +2 -6
- package/dist/features/dashboard/index.js +9 -8
- package/dist/features/delivery/index.css +2 -6
- package/dist/features/delivery/index.js +10 -9
- package/dist/features/knowledge/index.d.ts +33 -0
- package/dist/features/knowledge/index.js +406 -0
- package/dist/features/lead-gen/index.css +2 -6
- package/dist/features/lead-gen/index.d.ts +158 -151
- package/dist/features/lead-gen/index.js +10 -9
- package/dist/features/monitoring/index.css +2 -6
- package/dist/features/monitoring/index.js +10 -9
- package/dist/features/monitoring/requests/index.css +2 -6
- package/dist/features/monitoring/requests/index.js +8 -7
- package/dist/features/operations/index.css +2 -6
- package/dist/features/operations/index.js +15 -13
- package/dist/features/settings/index.css +2 -6
- package/dist/features/settings/index.js +9 -8
- package/dist/hooks/delivery/index.css +2 -6
- package/dist/hooks/index.css +2 -6
- package/dist/hooks/index.d.ts +14 -3
- package/dist/hooks/index.js +8 -7
- package/dist/hooks/published.css +2 -6
- package/dist/hooks/published.d.ts +14 -3
- package/dist/hooks/published.js +8 -7
- package/dist/index.css +2 -6
- package/dist/index.d.ts +611 -593
- package/dist/index.js +8 -7
- package/dist/knowledge/index.d.ts +643 -0
- package/dist/knowledge/index.js +496 -0
- package/dist/organization/index.css +2 -6
- package/dist/provider/index.css +2 -6
- package/dist/provider/index.d.ts +346 -339
- package/dist/provider/index.js +6 -5
- package/dist/provider/published.css +2 -6
- package/dist/provider/published.d.ts +346 -339
- package/dist/provider/published.js +5 -4
- package/dist/vite-plugin-knowledge/index.d.ts +37 -0
- package/dist/vite-plugin-knowledge/index.js +67 -0
- package/package.json +45 -33
- package/src/knowledge/README.md +31 -0
- package/dist/{chunk-U2KJXTTV.js → chunk-TAIX4NO3.js} +1 -1
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { ComponentType } from 'react';
|
|
2
|
+
|
|
3
|
+
type FeatureSidebarComponent = ComponentType;
|
|
4
|
+
type FeatureIconComponent = ComponentType<{
|
|
5
|
+
size?: number;
|
|
6
|
+
stroke?: number;
|
|
7
|
+
}>;
|
|
8
|
+
type FeatureSidebarWidthResolver = number | ((context: {
|
|
9
|
+
currentPath: string;
|
|
10
|
+
}) => number);
|
|
11
|
+
interface FeatureModule {
|
|
12
|
+
/** Unique stable identifier for this feature module. */
|
|
13
|
+
key: string;
|
|
14
|
+
/** Organization Model feature id this module presents. */
|
|
15
|
+
featureId: string;
|
|
16
|
+
/** Capability identifiers contributed by this feature module. */
|
|
17
|
+
capabilityIds?: string[];
|
|
18
|
+
/** Icon used when this feature node appears in shell navigation. */
|
|
19
|
+
icon?: FeatureIconComponent;
|
|
20
|
+
/** Sidebar component rendered when this feature's subtree route is active. */
|
|
21
|
+
sidebar?: FeatureSidebarComponent;
|
|
22
|
+
/** Optional shell sidebar width override. Defaults to 250px. */
|
|
23
|
+
sidebarWidth?: FeatureSidebarWidthResolver;
|
|
24
|
+
/** Operations-only bridge connecting this feature to the organization graph node. */
|
|
25
|
+
organizationGraph?: OrganizationGraphFeatureBridge;
|
|
26
|
+
}
|
|
27
|
+
interface OrganizationGraphFeatureBridge {
|
|
28
|
+
featureId: string;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
declare const knowledgeManifest: FeatureModule;
|
|
32
|
+
|
|
33
|
+
export { knowledgeManifest };
|
|
@@ -0,0 +1,406 @@
|
|
|
1
|
+
import { KnowledgeTree } from '../../chunk-HAEJ4M54.js';
|
|
2
|
+
import { buildOrganizationGraph, OrganizationModelSchema, DEFAULT_ORGANIZATION_MODEL_OPERATIONS, DEFAULT_ORGANIZATION_MODEL_STATUSES, DEFAULT_ORGANIZATION_MODEL_GOALS, DEFAULT_ORGANIZATION_MODEL_ROLES, DEFAULT_ORGANIZATION_MODEL_OFFERINGS, DEFAULT_ORGANIZATION_MODEL_CUSTOMERS, DEFAULT_ORGANIZATION_MODEL_IDENTITY, DEFAULT_ORGANIZATION_MODEL_PROJECTS, DEFAULT_ORGANIZATION_MODEL_BRANDING } from '../../chunk-6U7AIIHF.js';
|
|
3
|
+
import { KNOWLEDGE_FEATURE_ID } from '../../chunk-ECNNI3NT.js';
|
|
4
|
+
import { DEFAULT_ORGANIZATION_MODEL_PROSPECTING } from '../../chunk-BDKM56TP.js';
|
|
5
|
+
import { SubshellSidebarSection } from '../../chunk-IIMU5YAJ.js';
|
|
6
|
+
import { DEFAULT_ORGANIZATION_MODEL_SALES } from '../../chunk-5RLYII6P.js';
|
|
7
|
+
import '../../chunk-2IFYDILW.js';
|
|
8
|
+
import { useRouterContext } from '../../chunk-Q7DJKLEN.js';
|
|
9
|
+
import '../../chunk-DT3QYZVU.js';
|
|
10
|
+
import '../../chunk-I2KLQ2HA.js';
|
|
11
|
+
import { IconBrain } from '@tabler/icons-react';
|
|
12
|
+
import { Stack } from '@mantine/core';
|
|
13
|
+
import { useMemo } from 'react';
|
|
14
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
15
|
+
|
|
16
|
+
// ../core/src/organization-model/defaults.ts
|
|
17
|
+
var DEFAULT_ORGANIZATION_MODEL_KNOWLEDGE = {
|
|
18
|
+
nodes: [
|
|
19
|
+
// --- playbook: outreach sequence SOP ---
|
|
20
|
+
{
|
|
21
|
+
id: "knowledge.outreach-playbook",
|
|
22
|
+
kind: "playbook",
|
|
23
|
+
title: "Outreach Sequence Playbook",
|
|
24
|
+
summary: "Step-by-step runbook for launching a cold outreach campaign: prospect sourcing, copy review, sending schedule, and reply handling.",
|
|
25
|
+
body: "## Overview\n\nThis playbook covers the end-to-end process for launching a cold outreach campaign using the Elevasis lead-gen pipeline.\n\n## Steps\n\n1. Source prospects via the Lead Gen feature.\n2. Review and approve copy in the CRM campaign editor.\n3. Schedule sends using the Task Scheduler.\n4. Monitor replies in the CRM inbox and route to the appropriate deal stage.",
|
|
26
|
+
links: [{ nodeId: "feature:sales.lead-gen" }, { nodeId: "feature:sales.crm" }],
|
|
27
|
+
ownerIds: [],
|
|
28
|
+
updatedAt: "2026-05-01"
|
|
29
|
+
},
|
|
30
|
+
// --- strategy: lead-gen targeting strategy ---
|
|
31
|
+
{
|
|
32
|
+
id: "knowledge.lead-gen-strategy",
|
|
33
|
+
kind: "strategy",
|
|
34
|
+
title: "Lead Gen Targeting Strategy",
|
|
35
|
+
summary: "Defines ICP signal prioritization, firmographic filters, and scoring thresholds used by the lead-gen pipeline.",
|
|
36
|
+
body: "## Strategy\n\nThe lead-gen pipeline targets SMBs with 10-200 employees in recession-resistant verticals (manufacturing, logistics, professional services). Firmographic filters: revenue \\>$1M, HQ in US/CA/AU, tech stack includes at least one SaaS CRM.\n\n## Scoring Thresholds\n\n- High priority: ICP score \\>= 80\n- Medium priority: ICP score 60-79\n- Low priority: \\< 60 (excluded from active outreach)",
|
|
37
|
+
links: [{ nodeId: "feature:sales.lead-gen" }],
|
|
38
|
+
ownerIds: [],
|
|
39
|
+
updatedAt: "2026-05-01"
|
|
40
|
+
},
|
|
41
|
+
// --- reference: organization model schema reference ---
|
|
42
|
+
{
|
|
43
|
+
id: "knowledge.org-model-reference",
|
|
44
|
+
kind: "reference",
|
|
45
|
+
title: "Organization Model Schema Reference",
|
|
46
|
+
summary: "Technical reference for the OrganizationModel Zod schema: all domains, field contracts, and versioning rules.",
|
|
47
|
+
body: "## Schema\n\nThe `OrganizationModel` schema is defined in `packages/core/src/organization-model/schema.ts`. It is versioned at `version: 1` and composed from domain sub-schemas.\n\n## Domains\n\n- `features` \u2014 flat array of FeatureSchema nodes (nav tree)\n- `knowledge` \u2014 flat array of KnowledgeNodeSchema nodes\n- `sales`, `prospecting`, `projects` \u2014 sales and GTM domains\n- `operations`, `statuses` \u2014 runtime entity domains\n- `customers`, `offerings`, `roles`, `goals` \u2014 business context domains",
|
|
48
|
+
links: [{ nodeId: "feature:knowledge.command-view" }],
|
|
49
|
+
ownerIds: [],
|
|
50
|
+
updatedAt: "2026-05-01"
|
|
51
|
+
},
|
|
52
|
+
// --- playbook: multi-feature governs (SEO + lead-gen) ---
|
|
53
|
+
{
|
|
54
|
+
id: "knowledge.seo-lead-gen-playbook",
|
|
55
|
+
kind: "playbook",
|
|
56
|
+
title: "SEO-to-Lead-Gen Handoff Playbook",
|
|
57
|
+
summary: "Runbook for promoting SEO-qualified prospects into the active lead-gen pipeline: signal capture, scoring override, and campaign assignment.",
|
|
58
|
+
body: "## Overview\n\nThis playbook governs the handoff from SEO-sourced traffic to the lead-gen pipeline.\n\n## Steps\n\n1. SEO feature captures visitor signal (form fill or intent data).\n2. Score the lead using the standard ICP scoring thresholds.\n3. If score >= 60, inject into the lead-gen prospect list.\n4. Assign to the appropriate outreach campaign in the CRM.",
|
|
59
|
+
links: [{ nodeId: "feature:seo" }, { nodeId: "feature:sales.lead-gen" }, { nodeId: "feature:sales.crm" }],
|
|
60
|
+
ownerIds: [],
|
|
61
|
+
updatedAt: "2026-05-01"
|
|
62
|
+
}
|
|
63
|
+
]
|
|
64
|
+
};
|
|
65
|
+
var DEFAULT_ORGANIZATION_MODEL = {
|
|
66
|
+
version: 1,
|
|
67
|
+
features: [
|
|
68
|
+
{
|
|
69
|
+
id: "dashboard",
|
|
70
|
+
label: "Dashboard",
|
|
71
|
+
enabled: true,
|
|
72
|
+
path: "/",
|
|
73
|
+
icon: "dashboard",
|
|
74
|
+
uiPosition: "sidebar-primary"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
id: "sales",
|
|
78
|
+
label: "Sales",
|
|
79
|
+
description: "Revenue workflows and customer acquisition",
|
|
80
|
+
enabled: true,
|
|
81
|
+
color: "blue",
|
|
82
|
+
icon: "crm",
|
|
83
|
+
uiPosition: "sidebar-primary"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
id: "sales.crm",
|
|
87
|
+
label: "CRM",
|
|
88
|
+
description: "Relationship pipeline and deal management",
|
|
89
|
+
enabled: true,
|
|
90
|
+
color: "blue",
|
|
91
|
+
icon: "crm",
|
|
92
|
+
path: "/crm"
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
id: "sales.lead-gen",
|
|
96
|
+
label: "Lead Gen",
|
|
97
|
+
description: "Prospecting, qualification, and outreach preparation",
|
|
98
|
+
enabled: true,
|
|
99
|
+
color: "cyan",
|
|
100
|
+
icon: "lead-gen",
|
|
101
|
+
path: "/lead-gen"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
id: "projects",
|
|
105
|
+
label: "Projects",
|
|
106
|
+
description: "Projects, milestones, and client work execution",
|
|
107
|
+
enabled: true,
|
|
108
|
+
color: "orange",
|
|
109
|
+
icon: "projects",
|
|
110
|
+
path: "/projects",
|
|
111
|
+
uiPosition: "sidebar-primary"
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
id: "operations",
|
|
115
|
+
label: "Operations",
|
|
116
|
+
description: "Operational resources, topology, and orchestration visibility",
|
|
117
|
+
enabled: true,
|
|
118
|
+
color: "violet",
|
|
119
|
+
icon: "operations",
|
|
120
|
+
uiPosition: "sidebar-primary"
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
id: "knowledge.command-view",
|
|
124
|
+
label: "Command View",
|
|
125
|
+
enabled: true,
|
|
126
|
+
path: "/knowledge/command-view",
|
|
127
|
+
devOnly: true
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
id: "operations.overview",
|
|
131
|
+
label: "Overview",
|
|
132
|
+
enabled: true,
|
|
133
|
+
path: "/operations"
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
id: "operations.resources",
|
|
137
|
+
label: "Resources",
|
|
138
|
+
enabled: true,
|
|
139
|
+
path: "/operations/resources"
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
id: "operations.command-queue",
|
|
143
|
+
label: "Command Queue",
|
|
144
|
+
enabled: true,
|
|
145
|
+
path: "/operations/command-queue"
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
id: "operations.sessions",
|
|
149
|
+
label: "Sessions",
|
|
150
|
+
enabled: false,
|
|
151
|
+
path: "/operations/sessions"
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
id: "operations.task-scheduler",
|
|
155
|
+
label: "Task Scheduler",
|
|
156
|
+
enabled: true,
|
|
157
|
+
path: "/operations/task-scheduler"
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
id: "monitoring",
|
|
161
|
+
label: "Monitoring",
|
|
162
|
+
enabled: true,
|
|
163
|
+
uiPosition: "sidebar-primary"
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
id: "monitoring.activity-log",
|
|
167
|
+
label: "Activity Log",
|
|
168
|
+
enabled: true,
|
|
169
|
+
path: "/monitoring/activity-log"
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
id: "monitoring.execution-logs",
|
|
173
|
+
label: "Execution Logs",
|
|
174
|
+
enabled: true,
|
|
175
|
+
path: "/monitoring/execution-logs"
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
id: "monitoring.execution-health",
|
|
179
|
+
label: "Execution Health",
|
|
180
|
+
enabled: true,
|
|
181
|
+
path: "/monitoring/execution-health"
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
id: "monitoring.cost-analytics",
|
|
185
|
+
label: "Cost Analytics",
|
|
186
|
+
enabled: false,
|
|
187
|
+
path: "/monitoring/cost-analytics"
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
id: "monitoring.notifications",
|
|
191
|
+
label: "Notifications",
|
|
192
|
+
enabled: true,
|
|
193
|
+
path: "/monitoring/notifications"
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
id: "monitoring.submitted-requests",
|
|
197
|
+
label: "Submitted Requests",
|
|
198
|
+
enabled: true,
|
|
199
|
+
path: "/monitoring/requests"
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
id: "settings",
|
|
203
|
+
label: "Settings",
|
|
204
|
+
enabled: true,
|
|
205
|
+
icon: "settings",
|
|
206
|
+
uiPosition: "sidebar-bottom"
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
id: "settings.account",
|
|
210
|
+
label: "Account",
|
|
211
|
+
enabled: true,
|
|
212
|
+
path: "/settings/account"
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
id: "settings.appearance",
|
|
216
|
+
label: "Appearance",
|
|
217
|
+
enabled: true,
|
|
218
|
+
path: "/settings/appearance"
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
id: "settings.roles",
|
|
222
|
+
label: "My Roles",
|
|
223
|
+
enabled: true,
|
|
224
|
+
path: "/settings/roles"
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
id: "settings.organization",
|
|
228
|
+
label: "Organization",
|
|
229
|
+
enabled: true,
|
|
230
|
+
path: "/settings/organization"
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
id: "settings.credentials",
|
|
234
|
+
label: "Credentials",
|
|
235
|
+
enabled: true,
|
|
236
|
+
path: "/settings/credentials"
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
id: "settings.api-keys",
|
|
240
|
+
label: "API Keys",
|
|
241
|
+
enabled: true,
|
|
242
|
+
path: "/settings/api-keys"
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
id: "settings.webhooks",
|
|
246
|
+
label: "Webhooks",
|
|
247
|
+
enabled: true,
|
|
248
|
+
path: "/settings/webhooks"
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
id: "settings.deployments",
|
|
252
|
+
label: "Deployments",
|
|
253
|
+
enabled: true,
|
|
254
|
+
path: "/settings/deployments"
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
id: "admin",
|
|
258
|
+
label: "Admin",
|
|
259
|
+
enabled: true,
|
|
260
|
+
path: "/admin",
|
|
261
|
+
icon: "settings",
|
|
262
|
+
uiPosition: "sidebar-bottom",
|
|
263
|
+
requiresAdmin: true
|
|
264
|
+
},
|
|
265
|
+
{
|
|
266
|
+
id: "admin.system-health",
|
|
267
|
+
label: "System Health",
|
|
268
|
+
enabled: true,
|
|
269
|
+
path: "/admin/system-health"
|
|
270
|
+
},
|
|
271
|
+
{
|
|
272
|
+
id: "admin.organizations",
|
|
273
|
+
label: "Organizations",
|
|
274
|
+
enabled: true,
|
|
275
|
+
path: "/admin/organizations"
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
id: "admin.users",
|
|
279
|
+
label: "Users",
|
|
280
|
+
enabled: true,
|
|
281
|
+
path: "/admin/users"
|
|
282
|
+
},
|
|
283
|
+
{
|
|
284
|
+
id: "admin.design-showcase",
|
|
285
|
+
label: "Design Showcase",
|
|
286
|
+
enabled: true,
|
|
287
|
+
path: "/admin/design-showcase"
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
id: "admin.debug",
|
|
291
|
+
label: "Debug",
|
|
292
|
+
enabled: true,
|
|
293
|
+
path: "/admin/debug"
|
|
294
|
+
},
|
|
295
|
+
{
|
|
296
|
+
id: "archive",
|
|
297
|
+
label: "Archive",
|
|
298
|
+
enabled: true,
|
|
299
|
+
path: "/archive",
|
|
300
|
+
icon: "archive",
|
|
301
|
+
uiPosition: "sidebar-bottom",
|
|
302
|
+
devOnly: true
|
|
303
|
+
},
|
|
304
|
+
{
|
|
305
|
+
id: "archive.agent-chat",
|
|
306
|
+
label: "Agent Chat",
|
|
307
|
+
enabled: true,
|
|
308
|
+
path: "/archive/agent-chat"
|
|
309
|
+
},
|
|
310
|
+
{
|
|
311
|
+
id: "archive.execution-runner",
|
|
312
|
+
label: "Execution Runner",
|
|
313
|
+
enabled: true,
|
|
314
|
+
path: "/archive/execution-runner"
|
|
315
|
+
},
|
|
316
|
+
{
|
|
317
|
+
id: "seo",
|
|
318
|
+
label: "SEO",
|
|
319
|
+
enabled: false,
|
|
320
|
+
path: "/seo"
|
|
321
|
+
},
|
|
322
|
+
{
|
|
323
|
+
id: "knowledge",
|
|
324
|
+
label: "Knowledge",
|
|
325
|
+
description: "Operational knowledge, playbooks, and strategy docs",
|
|
326
|
+
enabled: true,
|
|
327
|
+
color: "teal",
|
|
328
|
+
icon: "knowledge",
|
|
329
|
+
uiPosition: "sidebar-primary"
|
|
330
|
+
},
|
|
331
|
+
{
|
|
332
|
+
id: "knowledge.base",
|
|
333
|
+
label: "Knowledge Base",
|
|
334
|
+
enabled: true,
|
|
335
|
+
path: "/knowledge"
|
|
336
|
+
}
|
|
337
|
+
],
|
|
338
|
+
branding: DEFAULT_ORGANIZATION_MODEL_BRANDING,
|
|
339
|
+
navigation: { surfaces: [], groups: [] },
|
|
340
|
+
sales: DEFAULT_ORGANIZATION_MODEL_SALES,
|
|
341
|
+
prospecting: DEFAULT_ORGANIZATION_MODEL_PROSPECTING,
|
|
342
|
+
projects: DEFAULT_ORGANIZATION_MODEL_PROJECTS,
|
|
343
|
+
identity: DEFAULT_ORGANIZATION_MODEL_IDENTITY,
|
|
344
|
+
customers: DEFAULT_ORGANIZATION_MODEL_CUSTOMERS,
|
|
345
|
+
offerings: DEFAULT_ORGANIZATION_MODEL_OFFERINGS,
|
|
346
|
+
roles: DEFAULT_ORGANIZATION_MODEL_ROLES,
|
|
347
|
+
goals: DEFAULT_ORGANIZATION_MODEL_GOALS,
|
|
348
|
+
statuses: DEFAULT_ORGANIZATION_MODEL_STATUSES,
|
|
349
|
+
operations: DEFAULT_ORGANIZATION_MODEL_OPERATIONS,
|
|
350
|
+
knowledge: DEFAULT_ORGANIZATION_MODEL_KNOWLEDGE
|
|
351
|
+
};
|
|
352
|
+
function deepMerge(base, override) {
|
|
353
|
+
{
|
|
354
|
+
return base;
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
function resolveOrganizationModel(override, organizationId) {
|
|
358
|
+
const merged = deepMerge(DEFAULT_ORGANIZATION_MODEL);
|
|
359
|
+
const model = OrganizationModelSchema.parse(merged);
|
|
360
|
+
if (!model.sales?.pipelines || model.sales.pipelines.length === 0) {
|
|
361
|
+
const orgLabel = "Organization";
|
|
362
|
+
throw new Error(
|
|
363
|
+
`${orgLabel} has no sales pipeline configuration. This indicates an incomplete provisioning state. Run org provisioning to seed defaults.`
|
|
364
|
+
);
|
|
365
|
+
}
|
|
366
|
+
return model;
|
|
367
|
+
}
|
|
368
|
+
var ORG_MODEL = resolveOrganizationModel();
|
|
369
|
+
var KNOWLEDGE_GRAPH = buildOrganizationGraph({ organizationModel: ORG_MODEL });
|
|
370
|
+
var KnowledgeSidebarMiddle = () => {
|
|
371
|
+
const { navigate, currentPath } = useRouterContext();
|
|
372
|
+
const knowledgeNodes = useMemo(() => ORG_MODEL.knowledge.nodes, []);
|
|
373
|
+
const selectedNodeId = useMemo(() => {
|
|
374
|
+
const match = currentPath.match(/^\/knowledge\/([^/]+)/);
|
|
375
|
+
if (!match) return void 0;
|
|
376
|
+
const segment = match[1];
|
|
377
|
+
if (["by-feature", "by-kind", "by-owner", "graph", "command-view"].includes(segment)) return void 0;
|
|
378
|
+
return segment;
|
|
379
|
+
}, [currentPath]);
|
|
380
|
+
return /* @__PURE__ */ jsxs(Stack, { gap: 0, style: { flex: 1, overflow: "hidden", display: "flex", flexDirection: "column" }, children: [
|
|
381
|
+
/* @__PURE__ */ jsx(SubshellSidebarSection, { icon: IconBrain, label: "Knowledge", withTopBorder: false }),
|
|
382
|
+
/* @__PURE__ */ jsx(Stack, { gap: 0, style: { flex: 1, overflowY: "auto" }, children: /* @__PURE__ */ jsx(
|
|
383
|
+
KnowledgeTree,
|
|
384
|
+
{
|
|
385
|
+
graph: KNOWLEDGE_GRAPH,
|
|
386
|
+
knowledgeNodes,
|
|
387
|
+
onSelectNode: (node) => navigate(`/knowledge/${node.id}`),
|
|
388
|
+
selectedNodeId
|
|
389
|
+
}
|
|
390
|
+
) })
|
|
391
|
+
] });
|
|
392
|
+
};
|
|
393
|
+
var KnowledgeSidebar = () => /* @__PURE__ */ jsx(Stack, { gap: 0, style: { height: "100%", display: "flex", flexDirection: "column" }, children: /* @__PURE__ */ jsx(KnowledgeSidebarMiddle, {}) });
|
|
394
|
+
|
|
395
|
+
// src/features/knowledge/manifest.ts
|
|
396
|
+
var knowledgeSidebarWidth = 320;
|
|
397
|
+
var defaultSidebarWidth = 250;
|
|
398
|
+
var knowledgeManifest = {
|
|
399
|
+
key: "knowledge",
|
|
400
|
+
featureId: KNOWLEDGE_FEATURE_ID,
|
|
401
|
+
icon: IconBrain,
|
|
402
|
+
sidebar: KnowledgeSidebar,
|
|
403
|
+
sidebarWidth: ({ currentPath }) => currentPath.startsWith("/knowledge") ? knowledgeSidebarWidth : defaultSidebarWidth
|
|
404
|
+
};
|
|
405
|
+
|
|
406
|
+
export { knowledgeManifest };
|
|
@@ -159,12 +159,8 @@
|
|
|
159
159
|
[data-mantine-color-scheme=dark] .mantine-Tabs-root {
|
|
160
160
|
--tab-border-color: var(--color-border);
|
|
161
161
|
}
|
|
162
|
-
|
|
163
|
-
background-color:
|
|
164
|
-
}
|
|
165
|
-
[data-mantine-color-scheme] .mantine-Tabs-tab[data-active],
|
|
166
|
-
[data-mantine-color-scheme] .mantine-Tabs-tab[data-active]:hover {
|
|
167
|
-
background-color: transparent;
|
|
162
|
+
.mantine-Tabs-tab:hover {
|
|
163
|
+
background-color: var(--color-surface-hover);
|
|
168
164
|
}
|
|
169
165
|
.mantine-Pagination-control:not([data-active]) {
|
|
170
166
|
background: var(--color-surface);
|