@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.
Files changed (68) hide show
  1. package/dist/app/index.css +2 -6
  2. package/dist/app/index.d.ts +63 -56
  3. package/dist/app/index.js +3 -2
  4. package/dist/charts/index.js +1 -1
  5. package/dist/chunk-5RLYII6P.js +314 -0
  6. package/dist/chunk-6U7AIIHF.js +880 -0
  7. package/dist/{chunk-5O5VC4HB.js → chunk-7F3IQMLI.js} +1 -1
  8. package/dist/{chunk-ZBRRVDYJ.js → chunk-ARJPZ66V.js} +42 -760
  9. package/dist/{chunk-IS53MXE4.js → chunk-BDKM56TP.js} +1 -1
  10. package/dist/{chunk-FVXM2MN6.js → chunk-C7IBFI5B.js} +1 -1
  11. package/dist/{chunk-DUUH3CHC.js → chunk-CPAJXBTL.js} +10 -6
  12. package/dist/{chunk-3FBCFSDF.js → chunk-ECNNI3NT.js} +2 -1
  13. package/dist/chunk-HAEJ4M54.js +94 -0
  14. package/dist/{chunk-7RPH2VXV.js → chunk-JXSBOG2R.js} +1 -1
  15. package/dist/{chunk-E7WTCAVX.js → chunk-KNISO652.js} +2 -2
  16. package/dist/{chunk-5PLAJ6IS.js → chunk-L7D6KNHV.js} +457 -335
  17. package/dist/{chunk-JMI7L7Y7.js → chunk-LPM7O6XM.js} +2 -233
  18. package/dist/{chunk-2XWXFT2Z.js → chunk-QARSVM7Q.js} +1 -1
  19. package/dist/{chunk-FYT6LYJP.js → chunk-SBQ4MYQV.js} +3 -2
  20. package/dist/{chunk-MU4VPAMR.js → chunk-YRKQNPK2.js} +1 -1
  21. package/dist/components/index.css +2 -6
  22. package/dist/components/index.d.ts +11 -2
  23. package/dist/components/index.js +25 -23
  24. package/dist/components/navigation/index.css +2 -6
  25. package/dist/features/auth/index.css +2 -6
  26. package/dist/features/crm/index.css +2 -6
  27. package/dist/features/crm/index.js +9 -8
  28. package/dist/features/dashboard/index.css +2 -6
  29. package/dist/features/dashboard/index.js +9 -8
  30. package/dist/features/delivery/index.css +2 -6
  31. package/dist/features/delivery/index.js +10 -9
  32. package/dist/features/knowledge/index.d.ts +33 -0
  33. package/dist/features/knowledge/index.js +406 -0
  34. package/dist/features/lead-gen/index.css +2 -6
  35. package/dist/features/lead-gen/index.d.ts +158 -151
  36. package/dist/features/lead-gen/index.js +10 -9
  37. package/dist/features/monitoring/index.css +2 -6
  38. package/dist/features/monitoring/index.js +10 -9
  39. package/dist/features/monitoring/requests/index.css +2 -6
  40. package/dist/features/monitoring/requests/index.js +8 -7
  41. package/dist/features/operations/index.css +2 -6
  42. package/dist/features/operations/index.js +15 -13
  43. package/dist/features/settings/index.css +2 -6
  44. package/dist/features/settings/index.js +9 -8
  45. package/dist/hooks/delivery/index.css +2 -6
  46. package/dist/hooks/index.css +2 -6
  47. package/dist/hooks/index.d.ts +14 -3
  48. package/dist/hooks/index.js +8 -7
  49. package/dist/hooks/published.css +2 -6
  50. package/dist/hooks/published.d.ts +14 -3
  51. package/dist/hooks/published.js +8 -7
  52. package/dist/index.css +2 -6
  53. package/dist/index.d.ts +611 -593
  54. package/dist/index.js +8 -7
  55. package/dist/knowledge/index.d.ts +643 -0
  56. package/dist/knowledge/index.js +496 -0
  57. package/dist/organization/index.css +2 -6
  58. package/dist/provider/index.css +2 -6
  59. package/dist/provider/index.d.ts +346 -339
  60. package/dist/provider/index.js +6 -5
  61. package/dist/provider/published.css +2 -6
  62. package/dist/provider/published.d.ts +346 -339
  63. package/dist/provider/published.js +5 -4
  64. package/dist/vite-plugin-knowledge/index.d.ts +37 -0
  65. package/dist/vite-plugin-knowledge/index.js +67 -0
  66. package/package.json +45 -33
  67. package/src/knowledge/README.md +31 -0
  68. package/dist/{chunk-U2KJXTTV.js → chunk-TAIX4NO3.js} +1 -1
@@ -0,0 +1,643 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { z } from 'zod';
3
+ import { ComponentType, ReactNode } from 'react';
4
+
5
+ /**
6
+ * Command View Types
7
+ *
8
+ * Unified type definitions for the Command View graph visualization.
9
+ * These types are used by both backend serialization and frontend rendering.
10
+ *
11
+ * Command View shows the resource graph: agents, workflows, triggers, integrations,
12
+ * external resources, and human checkpoints with their relationships.
13
+ */
14
+
15
+ /**
16
+ * Relationship types between resources
17
+ *
18
+ * - triggers: Resource initiates/starts another resource (orange)
19
+ * - uses: Resource uses an integration (teal)
20
+ * - approval: Resource requires human approval (yellow)
21
+ */
22
+ type RelationshipType = 'triggers' | 'uses' | 'approval';
23
+
24
+ declare const OrgKnowledgeNodeSchema: z.ZodObject<{
25
+ id: z.ZodString;
26
+ kind: z.ZodEnum<{
27
+ playbook: "playbook";
28
+ strategy: "strategy";
29
+ reference: "reference";
30
+ }>;
31
+ title: z.ZodString;
32
+ summary: z.ZodString;
33
+ body: z.ZodString;
34
+ links: z.ZodDefault<z.ZodArray<z.ZodObject<{
35
+ nodeId: z.ZodString;
36
+ }, z.core.$strip>>>;
37
+ ownerIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
38
+ updatedAt: z.ZodString;
39
+ }, z.core.$strip>;
40
+
41
+ declare const OrganizationModelSchema: z.ZodObject<{
42
+ version: z.ZodDefault<z.ZodLiteral<1>>;
43
+ features: z.ZodDefault<z.ZodArray<z.ZodObject<{
44
+ id: z.ZodString;
45
+ label: z.ZodString;
46
+ description: z.ZodOptional<z.ZodString>;
47
+ enabled: z.ZodDefault<z.ZodBoolean>;
48
+ path: z.ZodOptional<z.ZodString>;
49
+ icon: z.ZodOptional<z.ZodString>;
50
+ color: z.ZodOptional<z.ZodString>;
51
+ uiPosition: z.ZodOptional<z.ZodEnum<{
52
+ "sidebar-primary": "sidebar-primary";
53
+ "sidebar-bottom": "sidebar-bottom";
54
+ }>>;
55
+ requiresAdmin: z.ZodOptional<z.ZodBoolean>;
56
+ devOnly: z.ZodOptional<z.ZodBoolean>;
57
+ }, z.core.$strip>>>;
58
+ branding: z.ZodObject<{
59
+ organizationName: z.ZodString;
60
+ productName: z.ZodString;
61
+ shortName: z.ZodString;
62
+ description: z.ZodOptional<z.ZodString>;
63
+ logos: z.ZodDefault<z.ZodObject<{
64
+ light: z.ZodOptional<z.ZodString>;
65
+ dark: z.ZodOptional<z.ZodString>;
66
+ }, z.core.$strip>>;
67
+ }, z.core.$strip>;
68
+ navigation: z.ZodDefault<z.ZodObject<{
69
+ defaultSurfaceId: z.ZodOptional<z.ZodString>;
70
+ surfaces: z.ZodDefault<z.ZodArray<z.ZodObject<{
71
+ id: z.ZodString;
72
+ label: z.ZodString;
73
+ path: z.ZodString;
74
+ surfaceType: z.ZodEnum<{
75
+ settings: "settings";
76
+ page: "page";
77
+ dashboard: "dashboard";
78
+ graph: "graph";
79
+ detail: "detail";
80
+ list: "list";
81
+ }>;
82
+ description: z.ZodOptional<z.ZodString>;
83
+ enabled: z.ZodDefault<z.ZodBoolean>;
84
+ devOnly: z.ZodOptional<z.ZodBoolean>;
85
+ icon: z.ZodOptional<z.ZodString>;
86
+ featureId: z.ZodOptional<z.ZodString>;
87
+ featureIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
88
+ entityIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
89
+ resourceIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
90
+ capabilityIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
91
+ parentId: z.ZodOptional<z.ZodString>;
92
+ }, z.core.$strip>>>;
93
+ groups: z.ZodDefault<z.ZodArray<z.ZodObject<{
94
+ id: z.ZodString;
95
+ label: z.ZodString;
96
+ placement: z.ZodString;
97
+ surfaceIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
98
+ }, z.core.$strip>>>;
99
+ }, z.core.$strip>>;
100
+ sales: z.ZodObject<{
101
+ entityId: z.ZodString;
102
+ defaultPipelineId: z.ZodString;
103
+ pipelines: z.ZodArray<z.ZodObject<{
104
+ id: z.ZodString;
105
+ label: z.ZodString;
106
+ description: z.ZodOptional<z.ZodString>;
107
+ entityId: z.ZodString;
108
+ stages: z.ZodArray<z.ZodObject<{
109
+ label: z.ZodString;
110
+ description: z.ZodOptional<z.ZodString>;
111
+ color: z.ZodOptional<z.ZodString>;
112
+ icon: z.ZodOptional<z.ZodString>;
113
+ id: z.ZodString;
114
+ order: z.ZodNumber;
115
+ semanticClass: z.ZodEnum<{
116
+ open: "open";
117
+ active: "active";
118
+ nurturing: "nurturing";
119
+ closed_won: "closed_won";
120
+ closed_lost: "closed_lost";
121
+ }>;
122
+ surfaceIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
123
+ resourceIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
124
+ }, z.core.$strip>>;
125
+ }, z.core.$strip>>;
126
+ }, z.core.$strip>;
127
+ prospecting: z.ZodObject<{
128
+ listEntityId: z.ZodString;
129
+ companyEntityId: z.ZodString;
130
+ contactEntityId: z.ZodString;
131
+ description: z.ZodOptional<z.ZodString>;
132
+ companyStages: z.ZodArray<z.ZodObject<{
133
+ label: z.ZodString;
134
+ description: z.ZodOptional<z.ZodString>;
135
+ color: z.ZodOptional<z.ZodString>;
136
+ icon: z.ZodOptional<z.ZodString>;
137
+ id: z.ZodString;
138
+ order: z.ZodNumber;
139
+ }, z.core.$strip>>;
140
+ contactStages: z.ZodArray<z.ZodObject<{
141
+ label: z.ZodString;
142
+ description: z.ZodOptional<z.ZodString>;
143
+ color: z.ZodOptional<z.ZodString>;
144
+ icon: z.ZodOptional<z.ZodString>;
145
+ id: z.ZodString;
146
+ order: z.ZodNumber;
147
+ }, z.core.$strip>>;
148
+ defaultBuildTemplateId: z.ZodString;
149
+ buildTemplates: z.ZodArray<z.ZodObject<{
150
+ label: z.ZodString;
151
+ description: z.ZodOptional<z.ZodString>;
152
+ color: z.ZodOptional<z.ZodString>;
153
+ icon: z.ZodOptional<z.ZodString>;
154
+ id: z.ZodString;
155
+ steps: z.ZodArray<z.ZodObject<{
156
+ label: z.ZodString;
157
+ description: z.ZodOptional<z.ZodString>;
158
+ color: z.ZodOptional<z.ZodString>;
159
+ icon: z.ZodOptional<z.ZodString>;
160
+ id: z.ZodString;
161
+ primaryEntity: z.ZodEnum<{
162
+ company: "company";
163
+ contact: "contact";
164
+ }>;
165
+ outputs: z.ZodArray<z.ZodEnum<{
166
+ company: "company";
167
+ contact: "contact";
168
+ export: "export";
169
+ }>>;
170
+ stageKey: z.ZodString;
171
+ dependsOn: z.ZodOptional<z.ZodArray<z.ZodString>>;
172
+ dependencyMode: z.ZodLiteral<"per-record-eligibility">;
173
+ capabilityKey: z.ZodString;
174
+ defaultBatchSize: z.ZodNumber;
175
+ maxBatchSize: z.ZodNumber;
176
+ }, z.core.$strip>>;
177
+ }, z.core.$strip>>;
178
+ }, z.core.$strip>;
179
+ projects: z.ZodObject<{
180
+ projectEntityId: z.ZodString;
181
+ milestoneEntityId: z.ZodString;
182
+ taskEntityId: z.ZodString;
183
+ projectStatuses: z.ZodArray<z.ZodObject<{
184
+ label: z.ZodString;
185
+ description: z.ZodOptional<z.ZodString>;
186
+ color: z.ZodOptional<z.ZodString>;
187
+ icon: z.ZodOptional<z.ZodString>;
188
+ id: z.ZodString;
189
+ order: z.ZodNumber;
190
+ }, z.core.$strip>>;
191
+ milestoneStatuses: z.ZodArray<z.ZodObject<{
192
+ label: z.ZodString;
193
+ description: z.ZodOptional<z.ZodString>;
194
+ color: z.ZodOptional<z.ZodString>;
195
+ icon: z.ZodOptional<z.ZodString>;
196
+ id: z.ZodString;
197
+ order: z.ZodNumber;
198
+ }, z.core.$strip>>;
199
+ taskStatuses: z.ZodArray<z.ZodObject<{
200
+ label: z.ZodString;
201
+ description: z.ZodOptional<z.ZodString>;
202
+ color: z.ZodOptional<z.ZodString>;
203
+ icon: z.ZodOptional<z.ZodString>;
204
+ id: z.ZodString;
205
+ order: z.ZodNumber;
206
+ }, z.core.$strip>>;
207
+ }, z.core.$strip>;
208
+ identity: z.ZodDefault<z.ZodObject<{
209
+ mission: z.ZodDefault<z.ZodString>;
210
+ vision: z.ZodDefault<z.ZodString>;
211
+ legalName: z.ZodDefault<z.ZodString>;
212
+ entityType: z.ZodDefault<z.ZodString>;
213
+ jurisdiction: z.ZodDefault<z.ZodString>;
214
+ industryCategory: z.ZodDefault<z.ZodString>;
215
+ geographicFocus: z.ZodDefault<z.ZodString>;
216
+ timeZone: z.ZodDefault<z.ZodString>;
217
+ businessHours: z.ZodDefault<z.ZodObject<{
218
+ monday: z.ZodOptional<z.ZodObject<{
219
+ open: z.ZodString;
220
+ close: z.ZodString;
221
+ }, z.core.$strip>>;
222
+ tuesday: z.ZodOptional<z.ZodObject<{
223
+ open: z.ZodString;
224
+ close: z.ZodString;
225
+ }, z.core.$strip>>;
226
+ wednesday: z.ZodOptional<z.ZodObject<{
227
+ open: z.ZodString;
228
+ close: z.ZodString;
229
+ }, z.core.$strip>>;
230
+ thursday: z.ZodOptional<z.ZodObject<{
231
+ open: z.ZodString;
232
+ close: z.ZodString;
233
+ }, z.core.$strip>>;
234
+ friday: z.ZodOptional<z.ZodObject<{
235
+ open: z.ZodString;
236
+ close: z.ZodString;
237
+ }, z.core.$strip>>;
238
+ saturday: z.ZodOptional<z.ZodObject<{
239
+ open: z.ZodString;
240
+ close: z.ZodString;
241
+ }, z.core.$strip>>;
242
+ sunday: z.ZodOptional<z.ZodObject<{
243
+ open: z.ZodString;
244
+ close: z.ZodString;
245
+ }, z.core.$strip>>;
246
+ }, z.core.$strip>>;
247
+ clientBrief: z.ZodDefault<z.ZodString>;
248
+ }, z.core.$strip>>;
249
+ customers: z.ZodDefault<z.ZodObject<{
250
+ segments: z.ZodDefault<z.ZodArray<z.ZodObject<{
251
+ id: z.ZodString;
252
+ name: z.ZodDefault<z.ZodString>;
253
+ description: z.ZodDefault<z.ZodString>;
254
+ jobsToBeDone: z.ZodDefault<z.ZodString>;
255
+ pains: z.ZodDefault<z.ZodArray<z.ZodString>>;
256
+ gains: z.ZodDefault<z.ZodArray<z.ZodString>>;
257
+ firmographics: z.ZodDefault<z.ZodObject<{
258
+ industry: z.ZodOptional<z.ZodString>;
259
+ companySize: z.ZodOptional<z.ZodString>;
260
+ region: z.ZodOptional<z.ZodString>;
261
+ }, z.core.$strip>>;
262
+ valueProp: z.ZodDefault<z.ZodString>;
263
+ }, z.core.$strip>>>;
264
+ }, z.core.$strip>>;
265
+ offerings: z.ZodDefault<z.ZodObject<{
266
+ products: z.ZodDefault<z.ZodArray<z.ZodObject<{
267
+ id: z.ZodString;
268
+ name: z.ZodDefault<z.ZodString>;
269
+ description: z.ZodDefault<z.ZodString>;
270
+ pricingModel: z.ZodDefault<z.ZodEnum<{
271
+ custom: "custom";
272
+ "one-time": "one-time";
273
+ subscription: "subscription";
274
+ "usage-based": "usage-based";
275
+ }>>;
276
+ price: z.ZodDefault<z.ZodNumber>;
277
+ currency: z.ZodDefault<z.ZodString>;
278
+ targetSegmentIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
279
+ deliveryFeatureId: z.ZodOptional<z.ZodString>;
280
+ }, z.core.$strip>>>;
281
+ }, z.core.$strip>>;
282
+ roles: z.ZodDefault<z.ZodObject<{
283
+ roles: z.ZodDefault<z.ZodArray<z.ZodObject<{
284
+ id: z.ZodString;
285
+ title: z.ZodString;
286
+ responsibilities: z.ZodDefault<z.ZodArray<z.ZodString>>;
287
+ reportsToId: z.ZodOptional<z.ZodString>;
288
+ heldBy: z.ZodOptional<z.ZodString>;
289
+ }, z.core.$strip>>>;
290
+ }, z.core.$strip>>;
291
+ goals: z.ZodDefault<z.ZodObject<{
292
+ objectives: z.ZodDefault<z.ZodArray<z.ZodObject<{
293
+ id: z.ZodString;
294
+ description: z.ZodString;
295
+ periodStart: z.ZodString;
296
+ periodEnd: z.ZodString;
297
+ keyResults: z.ZodDefault<z.ZodArray<z.ZodObject<{
298
+ id: z.ZodString;
299
+ description: z.ZodString;
300
+ targetMetric: z.ZodString;
301
+ currentValue: z.ZodDefault<z.ZodNumber>;
302
+ targetValue: z.ZodOptional<z.ZodNumber>;
303
+ }, z.core.$strip>>>;
304
+ }, z.core.$strip>>>;
305
+ }, z.core.$strip>>;
306
+ statuses: z.ZodDefault<z.ZodObject<{
307
+ entries: z.ZodDefault<z.ZodArray<z.ZodObject<{
308
+ id: z.ZodString;
309
+ label: z.ZodString;
310
+ semanticClass: z.ZodEnum<{
311
+ "delivery.project": "delivery.project";
312
+ "delivery.milestone": "delivery.milestone";
313
+ "delivery.task": "delivery.task";
314
+ queue: "queue";
315
+ execution: "execution";
316
+ schedule: "schedule";
317
+ "schedule.run": "schedule.run";
318
+ request: "request";
319
+ }>;
320
+ category: z.ZodOptional<z.ZodString>;
321
+ }, z.core.$strip>>>;
322
+ }, z.core.$strip>>;
323
+ operations: z.ZodDefault<z.ZodObject<{
324
+ entries: z.ZodDefault<z.ZodArray<z.ZodObject<{
325
+ id: z.ZodString;
326
+ label: z.ZodString;
327
+ semanticClass: z.ZodEnum<{
328
+ queue: "queue";
329
+ executions: "executions";
330
+ sessions: "sessions";
331
+ notifications: "notifications";
332
+ schedules: "schedules";
333
+ }>;
334
+ featureId: z.ZodOptional<z.ZodString>;
335
+ supportedStatusSemanticClass: z.ZodOptional<z.ZodArray<z.ZodString>>;
336
+ }, z.core.$strip>>>;
337
+ }, z.core.$strip>>;
338
+ knowledge: z.ZodDefault<z.ZodObject<{
339
+ nodes: z.ZodDefault<z.ZodArray<z.ZodObject<{
340
+ id: z.ZodString;
341
+ kind: z.ZodEnum<{
342
+ playbook: "playbook";
343
+ strategy: "strategy";
344
+ reference: "reference";
345
+ }>;
346
+ title: z.ZodString;
347
+ summary: z.ZodString;
348
+ body: z.ZodString;
349
+ links: z.ZodDefault<z.ZodArray<z.ZodObject<{
350
+ nodeId: z.ZodString;
351
+ }, z.core.$strip>>>;
352
+ ownerIds: z.ZodDefault<z.ZodArray<z.ZodString>>;
353
+ updatedAt: z.ZodString;
354
+ }, z.core.$strip>>>;
355
+ }, z.core.$strip>>;
356
+ }, z.core.$strip>;
357
+
358
+ type OrganizationModel = z.infer<typeof OrganizationModelSchema>;
359
+ type OrgKnowledgeNode = z.infer<typeof OrgKnowledgeNodeSchema>;
360
+
361
+ type OrganizationGraphNodeKind = 'organization' | 'feature' | 'surface' | 'entity' | 'capability' | 'resource' | 'knowledge';
362
+ type OrganizationGraphEdgeKind = 'contains' | 'references' | 'exposes' | 'maps_to' | 'operates-on' | 'uses' | 'governs';
363
+
364
+ interface OrganizationGraphNode {
365
+ id: string;
366
+ kind: OrganizationGraphNodeKind;
367
+ label: string;
368
+ sourceId?: string;
369
+ description?: string;
370
+ enabled?: boolean;
371
+ featureId?: string;
372
+ resourceType?: 'workflow' | 'agent' | 'trigger' | 'integration' | 'external' | 'human_checkpoint';
373
+ }
374
+ interface OrganizationGraphEdge {
375
+ id: string;
376
+ kind: OrganizationGraphEdgeKind;
377
+ sourceId: string;
378
+ targetId: string;
379
+ label?: string;
380
+ relationshipType?: RelationshipType;
381
+ }
382
+ interface OrganizationGraph {
383
+ version: 1;
384
+ organizationModelVersion: OrganizationModel['version'];
385
+ nodes: OrganizationGraphNode[];
386
+ edges: OrganizationGraphEdge[];
387
+ }
388
+
389
+ interface KnowledgeBrowserProps {
390
+ /** Built organization graph. */
391
+ graph: OrganizationGraph;
392
+ /** All knowledge nodes (OM authoring shape). */
393
+ knowledgeNodes: OrgKnowledgeNode[];
394
+ /** Optional id of the node to render in the right pane on first mount. */
395
+ initialNodeId?: string;
396
+ /** Optional callback invoked when a graph edge chip is clicked in the node view. */
397
+ onNavigateToNode?: (graphNodeId: string) => void;
398
+ }
399
+ /**
400
+ * Composed default browser for the knowledge map.
401
+ *
402
+ * Layout: search bar at top; content area shows either the search-results list
403
+ * (when a search is active) or the selected node detail. The file-system tree
404
+ * nav lives in the subshell sidebar (KnowledgeSidebar / KnowledgeSidebarMiddle).
405
+ * Selection is URL-driven via `initialNodeId` (sourced from route params).
406
+ */
407
+ declare function KnowledgeBrowser({ graph, knowledgeNodes, initialNodeId, onNavigateToNode }: KnowledgeBrowserProps): react_jsx_runtime.JSX.Element;
408
+
409
+ interface KnowledgeTreeProps {
410
+ /** Built organization graph — used to enumerate features and resolve `governs` edges. */
411
+ graph: OrganizationGraph;
412
+ /** All knowledge nodes (the OM authoring shape; queries need this for body/links). */
413
+ knowledgeNodes: OrgKnowledgeNode[];
414
+ /** Called when a knowledge node is selected. */
415
+ onSelectNode: (node: OrgKnowledgeNode) => void;
416
+ /** Currently selected node id (highlights the active row). */
417
+ selectedNodeId?: string;
418
+ }
419
+ /**
420
+ * By-feature primary tree. Renders each feature in the graph with its governing
421
+ * knowledge nodes nested underneath. Features with no governing nodes are
422
+ * omitted to keep the tree focused.
423
+ */
424
+ declare function KnowledgeTree({ graph, knowledgeNodes, onSelectNode, selectedNodeId }: KnowledgeTreeProps): react_jsx_runtime.JSX.Element;
425
+
426
+ interface KnowledgeNodeListProps {
427
+ /** Nodes to render. Usually the result of a query (byFeature, byKind, search). */
428
+ nodes: OrgKnowledgeNode[];
429
+ /** Called when the user selects a node. */
430
+ onSelect: (node: OrgKnowledgeNode) => void;
431
+ /** Id of the currently selected node (highlights the active card). */
432
+ selectedNodeId?: string;
433
+ /** Optional label shown above the list (e.g. "Playbooks" or "3 results"). */
434
+ label?: string;
435
+ }
436
+ /**
437
+ * Flat list of knowledge node cards.
438
+ *
439
+ * Each card shows title, kind badge, and summary. Clicking a card calls
440
+ * `onSelect`. The active card (matching `selectedNodeId`) is highlighted
441
+ * using the `--active-background` token.
442
+ */
443
+ declare function KnowledgeNodeList({ nodes, onSelect, selectedNodeId, label }: KnowledgeNodeListProps): react_jsx_runtime.JSX.Element;
444
+
445
+ interface KnowledgeNodeViewProps {
446
+ /** The knowledge node to display. */
447
+ node: OrgKnowledgeNode;
448
+ /** The organization graph — used to resolve edge relationships. */
449
+ graph: OrganizationGraph;
450
+ /**
451
+ * Optional callback when the user clicks a graph edge chip (e.g. to navigate
452
+ * to the related node or feature). The raw graph node id is passed.
453
+ */
454
+ onNavigateToNode?: (graphNodeId: string) => void;
455
+ /**
456
+ * Optional extra components to merge into the MDX allowlist for this view.
457
+ * Passed directly to the internal `KnowledgeMDXProvider` wrapper.
458
+ */
459
+ extraComponents?: Record<string, React.ComponentType<any>>;
460
+ }
461
+ /**
462
+ * Full single-node view: title, kind badge, summary, compiled MDX body, and
463
+ * an edge sidecar listing outgoing `governs` and incoming `governedBy` links.
464
+ *
465
+ * Internally wraps the MDX body in a `KnowledgeMDXProvider` so `KNOWLEDGE_BODIES`
466
+ * components receive the standard allowlist. Pass `extraComponents` to extend
467
+ * or override allowlist entries for this view only.
468
+ *
469
+ * @example
470
+ * ```tsx
471
+ * <KnowledgeNodeView
472
+ * node={selectedNode}
473
+ * graph={graph}
474
+ * onNavigateToNode={(id) => navigate(`/knowledge/${id}`)}
475
+ * />
476
+ * ```
477
+ */
478
+ declare function KnowledgeNodeView({ node, graph, onNavigateToNode, extraComponents }: KnowledgeNodeViewProps): react_jsx_runtime.JSX.Element;
479
+
480
+ interface KnowledgeSearchBarProps {
481
+ /** All available knowledge nodes — used to resolve hit ids to nodes. */
482
+ knowledgeNodes: OrgKnowledgeNode[];
483
+ /**
484
+ * Called with the ranked subset of nodes matching the current query.
485
+ * Called with `null` when the search bar is cleared (parent restores default view).
486
+ */
487
+ onResults: (nodes: OrgKnowledgeNode[] | null) => void;
488
+ /** Placeholder text. Defaults to "Search knowledge…". */
489
+ placeholder?: string;
490
+ }
491
+ /**
492
+ * Client-side full-text search bar over the knowledge index.
493
+ *
494
+ * On mount, builds an in-memory index from `_generated/knowledge-search-index.json`
495
+ * (title, summary, bodyText). As the user types, calls `onResults` with ranked
496
+ * `OrgKnowledgeNode[]`. Clearing the input calls `onResults(null)` so the parent
497
+ * can restore its default tree/list view.
498
+ *
499
+ * The index is intentionally scoped to the generated snapshot — it does not
500
+ * re-index on `knowledgeNodes` changes at runtime (Phase 1 is read-only).
501
+ */
502
+ declare function KnowledgeSearchBar({ knowledgeNodes, onResults, placeholder }: KnowledgeSearchBarProps): react_jsx_runtime.JSX.Element;
503
+
504
+ /**
505
+ * Shared nav-item shape used by feature sidebar middle components.
506
+ *
507
+ * Matches the subset of {@link SubshellNavItemProps} that the existing
508
+ * hardcoded item arrays use. Consumers import this type alongside the
509
+ * exported item arrays (e.g. `CRM_ITEMS`) to type their custom arrays.
510
+ *
511
+ * @example
512
+ * import { NavItem, CRM_ITEMS } from '@elevasis/ui/features/crm'
513
+ *
514
+ * const customItems: NavItem[] = [
515
+ * ...CRM_ITEMS,
516
+ * { label: 'Reports', to: '/crm/reports', icon: IconFileText, exact: false },
517
+ * ]
518
+ */
519
+ interface NavItem {
520
+ /** Display label for the nav entry. */
521
+ label: string;
522
+ /** Route path the item links to. */
523
+ to: string;
524
+ /** Tabler icon component (or any component accepting `size` + `style`). */
525
+ icon: ComponentType<{
526
+ size?: number;
527
+ style?: React.CSSProperties;
528
+ }>;
529
+ /**
530
+ * When `true`, the item is only active when the path matches exactly.
531
+ * When `false`, it is active for any path that starts with `to`.
532
+ */
533
+ exact: boolean;
534
+ }
535
+
536
+ interface KnowledgeSidebarMiddleProps {
537
+ /** Override the default nav items. Defaults to {@link KNOWLEDGE_ITEMS}. */
538
+ items?: NavItem[];
539
+ }
540
+ /**
541
+ * @deprecated Use `KnowledgeSidebarMiddle` from `features/knowledge/sidebar` instead.
542
+ * This legacy nav-items sidebar is retained as a published API surface for external
543
+ * consumers that compose custom sidebars using `KNOWLEDGE_ITEMS`. The canonical
544
+ * subshell sidebar now lives at `packages/ui/src/features/knowledge/sidebar/`.
545
+ *
546
+ * Sidebar middle section for the Knowledge feature (legacy nav-items variant).
547
+ *
548
+ * Mirrors the `CrmSidebarMiddle` pattern. Pass `items` to extend or replace
549
+ * the default nav entries (e.g. add owner-scoped sections for a specific org).
550
+ *
551
+ * @example
552
+ * ```tsx
553
+ * <KnowledgeSidebarMiddle items={[...KNOWLEDGE_ITEMS, { label: 'Runbooks', ... }]} />
554
+ * ```
555
+ */
556
+ declare const KnowledgeSidebarMiddle: ({ items }?: KnowledgeSidebarMiddleProps) => react_jsx_runtime.JSX.Element;
557
+
558
+ /**
559
+ * @deprecated Used by the legacy `KnowledgeSidebarMiddle` (nav-items variant).
560
+ * Retained as a published API surface for external consumers. The canonical
561
+ * subshell sidebar is `KnowledgeSidebarMiddle` from `features/knowledge/sidebar/`.
562
+ *
563
+ * Default sidebar nav items for the Knowledge feature.
564
+ *
565
+ * Mirrors the `CRM_ITEMS` shape so it can be used directly with
566
+ * `KnowledgeSidebarMiddle` or spread into a custom items array.
567
+ *
568
+ * @example
569
+ * ```ts
570
+ * import { KNOWLEDGE_ITEMS } from '@elevasis/ui/knowledge'
571
+ * const customItems: NavItem[] = [
572
+ * ...KNOWLEDGE_ITEMS,
573
+ * { label: 'Internal Runbooks', to: '/knowledge/by-owner/internal', icon: IconBook, exact: false },
574
+ * ]
575
+ * ```
576
+ */
577
+ declare const KNOWLEDGE_ITEMS: NavItem[];
578
+
579
+ /**
580
+ * Default v1 component allowlist for knowledge MDX bodies.
581
+ *
582
+ * Knowledge authors may use these components inside `body` strings.
583
+ * Code blocks (`pre` / `code`) are handled by the MDX runtime's default
584
+ * element mapping and do not need an explicit entry here; they receive
585
+ * standard Mantine `Code` / `pre` wrappers via the provider's MDX config.
586
+ *
587
+ * Consumers may extend this map via `KnowledgeMDXProvider`'s
588
+ * `extraComponents` prop. Extra entries override matching default keys.
589
+ */
590
+ declare const KNOWLEDGE_ALLOWLIST: Record<string, ComponentType<any>>;
591
+
592
+ /**
593
+ * The shape of the merged component map available to knowledge MDX renderers.
594
+ * Keys are MDX component names (e.g. "Card", "Callout"); values are React component types.
595
+ */
596
+ type KnowledgeAllowlistMap = Record<string, ComponentType<any>>;
597
+ interface KnowledgeMDXProviderProps {
598
+ /**
599
+ * Additional components to merge into the default allowlist.
600
+ * Extra entries take precedence over the defaults, enabling consumers
601
+ * to replace (e.g.) the default `Card` with a project-specific variant.
602
+ */
603
+ extraComponents?: Record<string, ComponentType<any>>;
604
+ children: ReactNode;
605
+ }
606
+ /**
607
+ * Provides the knowledge MDX component allowlist to its subtree via React context.
608
+ *
609
+ * Wrap any `KnowledgeNodeView` (or custom renderer that renders compiled MDX bodies)
610
+ * with this provider. The merged allowlist is available via `useKnowledgeAllowlist()`.
611
+ *
612
+ * Merge order: `KNOWLEDGE_ALLOWLIST` defaults, then `extraComponents` override.
613
+ *
614
+ * @example
615
+ * ```tsx
616
+ * <KnowledgeMDXProvider extraComponents={{ Card: MyCustomCard }}>
617
+ * <KnowledgeNodeView node={node} />
618
+ * </KnowledgeMDXProvider>
619
+ * ```
620
+ */
621
+ declare function KnowledgeMDXProvider({ extraComponents, children }: KnowledgeMDXProviderProps): react_jsx_runtime.JSX.Element;
622
+ /**
623
+ * Returns the merged knowledge MDX component allowlist from the nearest
624
+ * `KnowledgeMDXProvider` in the tree.
625
+ *
626
+ * Throws if called outside a `KnowledgeMDXProvider`.
627
+ *
628
+ * @example
629
+ * ```tsx
630
+ * const components = useKnowledgeAllowlist()
631
+ * const Body = KNOWLEDGE_BODIES[node.id]
632
+ * return <Body components={components} />
633
+ * ```
634
+ */
635
+ declare function useKnowledgeAllowlist(): KnowledgeAllowlistMap;
636
+
637
+ type KnowledgeBodyProps = {
638
+ components?: Record<string, ComponentType>;
639
+ };
640
+ declare const KNOWLEDGE_BODIES: Record<string, ComponentType<KnowledgeBodyProps>>;
641
+
642
+ export { KNOWLEDGE_ALLOWLIST, KNOWLEDGE_BODIES, KNOWLEDGE_ITEMS, KnowledgeBrowser, KnowledgeMDXProvider, KnowledgeNodeList, KnowledgeNodeView, KnowledgeSearchBar, KnowledgeSidebarMiddle, KnowledgeTree, useKnowledgeAllowlist };
643
+ export type { KnowledgeBrowserProps, KnowledgeNodeListProps, KnowledgeNodeViewProps, KnowledgeSearchBarProps, KnowledgeSidebarMiddleProps, KnowledgeTreeProps };