@elevasis/ui 2.45.2 → 2.47.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/api/index.js +3 -3
- package/dist/app/index.d.ts +2 -2
- package/dist/app/index.js +3 -3
- package/dist/auth/index.js +3 -3
- package/dist/charts/index.js +3 -3
- package/dist/{chunk-HQPJ6TGV.js → chunk-CDZB24OR.js} +6 -9
- package/dist/{chunk-FLQKWUSH.js → chunk-FVI3AMBM.js} +472 -40
- package/dist/{chunk-L4RIHGPO.js → chunk-OFLWSKSC.js} +1 -1
- package/dist/{chunk-SDUMVYGI.js → chunk-SOGPJFO6.js} +1 -1
- package/dist/components/index.d.ts +1 -1
- package/dist/components/index.js +3 -3
- package/dist/components/navigation/index.js +3 -3
- package/dist/features/auth/index.js +4 -4
- package/dist/features/clients/index.js +3 -3
- package/dist/features/crm/index.js +3 -3
- package/dist/features/dashboard/index.d.ts +1 -1
- package/dist/features/dashboard/index.js +3 -3
- package/dist/features/delivery/index.js +3 -3
- package/dist/features/knowledge/index.js +3 -3
- package/dist/features/lead-gen/index.d.ts +2 -2
- package/dist/features/lead-gen/index.js +3 -3
- package/dist/features/monitoring/index.js +3 -3
- package/dist/features/monitoring/requests/index.js +4 -4
- package/dist/features/operations/index.d.ts +2 -2
- package/dist/features/operations/index.js +3 -3
- package/dist/features/settings/index.js +3 -3
- package/dist/hooks/access/index.js +3 -3
- package/dist/hooks/delivery/index.js +3 -3
- package/dist/hooks/index.d.ts +1 -1
- package/dist/hooks/index.js +3 -3
- package/dist/hooks/operations/command-view/utils/transformCommandViewData.d.ts +1 -1
- package/dist/hooks/published.d.ts +1 -1
- package/dist/hooks/published.js +3 -3
- package/dist/index.d.ts +2 -2
- package/dist/index.js +4 -4
- package/dist/knowledge/index.d.ts +68 -6
- package/dist/knowledge/index.js +348 -79
- package/dist/layout/index.js +3 -3
- package/dist/organization/index.js +3 -3
- package/dist/provider/index.d.ts +2 -2
- package/dist/provider/index.js +3 -3
- package/dist/provider/published.d.ts +2 -2
- package/dist/provider/published.js +3 -3
- package/dist/test-utils/index.js +3 -3
- package/dist/types/index.d.ts +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.js +1 -1
- package/package.json +5 -5
package/dist/knowledge/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { SemanticIcon, getKnowledgeIconToken, PageContainer, getKnowledgeGraphNodeCommand, IdentityDomainSchema, WorkflowResourceEntrySchema, AgentResourceEntrySchema, IntegrationResourceEntrySchema, ScriptResourceEntrySchema, getKnowledgeNodeReadCommand, getKnowledgeOntologyProjection, getPrimaryOntologyItemsForDomain, projectNavigationSurfaces, projectNavigationGroups, SurfaceDefinitionSchema, RoleSchema, PolicySchema, getOntologyDomainLabel, getKnowledgeDomainFolderCommand, getKnowledgeTreeFolderCommand, KNOWLEDGE_DOMAINS_WITH_PANELS } from '../chunk-
|
|
2
|
-
export { KNOWLEDGE_ICON_TOKEN_BY_KIND, KnowledgeSearchBar, KnowledgeTree, OM_NESTED_TREE_GROUPS, OM_TREE_GROUPS, SemanticIcon, extendSemanticIconRegistry, findOmTreeGroup, getKnowledgeIconToken, getSemanticIconComponent, getSharedOrganizationGraph, resolveSemanticIconComponent } from '../chunk-
|
|
1
|
+
import { getConceptDefinition, normaliseConceptKey, SemanticIcon, getKnowledgeIconToken, PageContainer, getKnowledgeGraphNodeCommand, IdentityDomainSchema, WorkflowResourceEntrySchema, AgentResourceEntrySchema, IntegrationResourceEntrySchema, ScriptResourceEntrySchema, getKnowledgeNodeReadCommand, getKnowledgeOntologyProjection, getPrimaryOntologyItemsForDomain, projectNavigationSurfaces, projectNavigationGroups, SurfaceDefinitionSchema, RoleSchema, PolicySchema, getOntologyDomainLabel, getKnowledgeDomainFolderCommand, getKnowledgeTreeFolderCommand, KNOWLEDGE_DOMAINS_WITH_PANELS } from '../chunk-FVI3AMBM.js';
|
|
2
|
+
export { FILTERABLE_DOMAIN_KEYS, KNOWLEDGE_DOMAINS_WITH_PANELS, KNOWLEDGE_ICON_TOKEN_BY_KIND, KnowledgeSearchBar, KnowledgeTree, OM_NESTED_TREE_GROUPS, OM_TREE_GROUPS, SemanticIcon, buildKnowledgeOmTreeData, extendSemanticIconRegistry, findKnowledgeTreeNodeByValue, findOmTreeGroup, getKnowledgeIconToken, getSemanticIconComponent, getSharedOrganizationGraph, resolveSemanticIconComponent } from '../chunk-FVI3AMBM.js';
|
|
3
3
|
import { usePresetsContext } from '../chunk-NZ2F5RQ4.js';
|
|
4
4
|
import '../chunk-OJJK27GC.js';
|
|
5
5
|
import '../chunk-AUDNF2Q7.js';
|
|
@@ -10,7 +10,7 @@ import '../chunk-SJHM4WDG.js';
|
|
|
10
10
|
import '../chunk-ZTWA5H77.js';
|
|
11
11
|
import '../chunk-S3XR4II4.js';
|
|
12
12
|
import '../chunk-6DO4PE3O.js';
|
|
13
|
-
import '../chunk-
|
|
13
|
+
import '../chunk-OFLWSKSC.js';
|
|
14
14
|
import '../chunk-DD3CCMCZ.js';
|
|
15
15
|
import '../chunk-GMXGDO3I.js';
|
|
16
16
|
import '../chunk-2IFYDILW.js';
|
|
@@ -19,7 +19,7 @@ import '../chunk-HENXLGVD.js';
|
|
|
19
19
|
import '../chunk-7FPLLSHN.js';
|
|
20
20
|
import '../chunk-RNP5R5I3.js';
|
|
21
21
|
import '../chunk-W2SFTXMT.js';
|
|
22
|
-
import { getSystem, SystemEntrySchema, EntitySchema, ActionSchema, OntologyIdSchema, ontologyGraphNodeId, compileOrganizationOntology, parseOntologyId } from '../chunk-
|
|
22
|
+
import { getSystem, SystemEntrySchema, EntitySchema, ActionSchema, OntologyIdSchema, ontologyGraphNodeId, compileOrganizationOntology, parseOntologyId } from '../chunk-CDZB24OR.js';
|
|
23
23
|
import '../chunk-KRWALB24.js';
|
|
24
24
|
import '../chunk-2FTX4WO2.js';
|
|
25
25
|
import '../chunk-MQZE7SUI.js';
|
|
@@ -27,7 +27,7 @@ import '../chunk-TVTSASST.js';
|
|
|
27
27
|
import '../chunk-BRJ3QZ4E.js';
|
|
28
28
|
import '../chunk-I2KLQ2HA.js';
|
|
29
29
|
import { createContext, Children, isValidElement, cloneElement, useMemo, useContext, useRef, useState, useEffect } from 'react';
|
|
30
|
-
import { Card, Text, SimpleGrid, Group, Stack, Alert, Tabs, Box, Table, CopyButton, Tooltip, ActionIcon, Title, Badge, Divider, Button, Paper, TableOfContents, ThemeIcon, UnstyledButton, List, Code, Progress, Loader } from '@mantine/core';
|
|
30
|
+
import { Card, Text, SimpleGrid, Group, Stack, Alert, Tabs, Box, Table, CopyButton, Tooltip, ActionIcon, Title, Badge, Divider, Button, Paper, TableOfContents, ThemeIcon, UnstyledButton, List, Code, Progress, Loader, Spoiler } from '@mantine/core';
|
|
31
31
|
import { IconBook, IconCheck, IconCopy, IconExternalLink, IconCircleX, IconAlertTriangle, IconInfoCircle } from '@tabler/icons-react';
|
|
32
32
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
33
33
|
import { Highlight, themes } from 'prism-react-renderer';
|
|
@@ -6897,6 +6897,19 @@ function useKnowledgeAllowlist() {
|
|
|
6897
6897
|
}
|
|
6898
6898
|
return ctx;
|
|
6899
6899
|
}
|
|
6900
|
+
function ConceptTooltip({ conceptKey, variant = "chip", children }) {
|
|
6901
|
+
const definition = getConceptDefinition(conceptKey);
|
|
6902
|
+
if (!definition) {
|
|
6903
|
+
return /* @__PURE__ */ jsx(Fragment, { children });
|
|
6904
|
+
}
|
|
6905
|
+
if (variant === "label") {
|
|
6906
|
+
return /* @__PURE__ */ jsxs(Group, { gap: 4, wrap: "nowrap", align: "center", style: { display: "inline-flex" }, children: [
|
|
6907
|
+
children,
|
|
6908
|
+
/* @__PURE__ */ jsx(Tooltip, { label: definition.description, withArrow: true, multiline: true, maw: 260, children: /* @__PURE__ */ jsx(IconInfoCircle, { size: 12, style: { color: "var(--color-text-subtle)", cursor: "help", flexShrink: 0 } }) })
|
|
6909
|
+
] });
|
|
6910
|
+
}
|
|
6911
|
+
return /* @__PURE__ */ jsx(Tooltip, { label: definition.description, withArrow: true, multiline: true, maw: 260, children: /* @__PURE__ */ jsx("span", { style: { cursor: "help", display: "inline-flex", width: "fit-content" }, children }) });
|
|
6912
|
+
}
|
|
6900
6913
|
var KIND_CHIP_TONE_STYLES = {
|
|
6901
6914
|
subtle: {
|
|
6902
6915
|
backgroundColor: "var(--color-surface-hover)",
|
|
@@ -6915,7 +6928,7 @@ var KIND_CHIP_TONE_STYLES = {
|
|
|
6915
6928
|
}
|
|
6916
6929
|
};
|
|
6917
6930
|
function KindChip({ kind, tone = "subtle", style, ...spanProps }) {
|
|
6918
|
-
|
|
6931
|
+
const chip = /* @__PURE__ */ jsx(
|
|
6919
6932
|
"span",
|
|
6920
6933
|
{
|
|
6921
6934
|
...spanProps,
|
|
@@ -6942,6 +6955,9 @@ function KindChip({ kind, tone = "subtle", style, ...spanProps }) {
|
|
|
6942
6955
|
children: kind
|
|
6943
6956
|
}
|
|
6944
6957
|
);
|
|
6958
|
+
const hasDefinition = Boolean(getConceptDefinition(normaliseConceptKey(kind)));
|
|
6959
|
+
if (!hasDefinition) return chip;
|
|
6960
|
+
return /* @__PURE__ */ jsx(ConceptTooltip, { conceptKey: kind, variant: "chip", children: chip });
|
|
6945
6961
|
}
|
|
6946
6962
|
function NodeHeader({
|
|
6947
6963
|
title,
|
|
@@ -6996,7 +7012,7 @@ function EdgeChip({ id, onClick }) {
|
|
|
6996
7012
|
}
|
|
6997
7013
|
function EdgeGroup({ label, ids, onNavigateToNode }) {
|
|
6998
7014
|
return /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
|
|
6999
|
-
/* @__PURE__ */ jsx(Text, { size: "xs", fw: 500, style: { color: "var(--color-text-subtle)" }, children: label }),
|
|
7015
|
+
/* @__PURE__ */ jsx(Text, { component: "span", size: "xs", fw: 500, style: { color: "var(--color-text-subtle)", display: "block" }, children: /* @__PURE__ */ jsx(ConceptTooltip, { conceptKey: label, variant: "label", children: label }) }),
|
|
7000
7016
|
ids.map((id) => /* @__PURE__ */ jsx(EdgeChip, { id, onClick: onNavigateToNode ? () => onNavigateToNode(id) : void 0 }, id))
|
|
7001
7017
|
] });
|
|
7002
7018
|
}
|
|
@@ -7789,7 +7805,7 @@ function SystemDescribeView({
|
|
|
7789
7805
|
const ontologyObjectIds = getPrimaryOntologyNodeIds(systemSourceId, organizationModel, "ontology-objects") ?? getContainedOntologyNodeIds(node, graph, "object");
|
|
7790
7806
|
const ontologyActionIds = getPrimaryOntologyNodeIds(systemSourceId, organizationModel, "ontology-actions") ?? getContainedOntologyNodeIds(node, graph, "action");
|
|
7791
7807
|
const ontologyCatalogIds = getPrimaryOntologyNodeIds(systemSourceId, organizationModel, "ontology-catalogs") ?? getContainedOntologyNodeIds(node, graph, "catalog");
|
|
7792
|
-
const
|
|
7808
|
+
const ontologyEndpointIds = getPrimaryOntologyNodeIds(systemSourceId, organizationModel, "ontology-endpoints") ?? getContainedOntologyNodeIds(node, graph, "endpoint");
|
|
7793
7809
|
const uiIcon = system?.ui?.icon ?? system?.icon;
|
|
7794
7810
|
const uiPath = system?.ui?.path ?? system?.path;
|
|
7795
7811
|
const uiSurfaces = system?.ui?.surfaces;
|
|
@@ -7906,11 +7922,11 @@ function SystemDescribeView({
|
|
|
7906
7922
|
onNavigateToNode
|
|
7907
7923
|
}
|
|
7908
7924
|
),
|
|
7909
|
-
|
|
7925
|
+
ontologyEndpointIds.length > 0 && /* @__PURE__ */ jsx(
|
|
7910
7926
|
EdgeGroup,
|
|
7911
7927
|
{
|
|
7912
|
-
label: `Ontology
|
|
7913
|
-
ids:
|
|
7928
|
+
label: `Ontology endpoints (${ontologyEndpointIds.length})`,
|
|
7929
|
+
ids: ontologyEndpointIds,
|
|
7914
7930
|
onNavigateToNode
|
|
7915
7931
|
}
|
|
7916
7932
|
),
|
|
@@ -8885,31 +8901,66 @@ function SurfaceDescribeView({
|
|
|
8885
8901
|
}
|
|
8886
8902
|
);
|
|
8887
8903
|
}
|
|
8888
|
-
|
|
8889
|
-
|
|
8890
|
-
|
|
8891
|
-
|
|
8904
|
+
var NESTED_BLOCK_STYLE = {
|
|
8905
|
+
borderLeft: "2px solid var(--color-border)",
|
|
8906
|
+
paddingLeft: "var(--mantine-spacing-sm)"
|
|
8907
|
+
};
|
|
8908
|
+
function isScalar(value) {
|
|
8909
|
+
return typeof value === "string" || typeof value === "number" || typeof value === "boolean";
|
|
8910
|
+
}
|
|
8911
|
+
function isEmpty(value) {
|
|
8912
|
+
if (value === null || value === void 0 || value === "") return true;
|
|
8913
|
+
if (Array.isArray(value)) return value.length === 0;
|
|
8914
|
+
if (typeof value === "object") return Object.keys(value).length === 0;
|
|
8915
|
+
return false;
|
|
8916
|
+
}
|
|
8917
|
+
function isComplex(value) {
|
|
8918
|
+
if (Array.isArray(value)) return !value.every(isScalar);
|
|
8919
|
+
return typeof value === "object" && value !== null;
|
|
8920
|
+
}
|
|
8921
|
+
function hasRenderableEntries(record) {
|
|
8922
|
+
if (!record) return false;
|
|
8923
|
+
return Object.values(record).some((value) => !isEmpty(value));
|
|
8924
|
+
}
|
|
8925
|
+
function JsonValueView({ value, depth = 0 }) {
|
|
8926
|
+
if (isEmpty(value)) return null;
|
|
8927
|
+
if (isScalar(value)) {
|
|
8928
|
+
return /* @__PURE__ */ jsx(Text, { size: "sm", style: { whiteSpace: "pre-wrap", wordBreak: "break-word" }, children: String(value) });
|
|
8929
|
+
}
|
|
8892
8930
|
if (Array.isArray(value)) {
|
|
8893
|
-
|
|
8894
|
-
(
|
|
8895
|
-
|
|
8896
|
-
return
|
|
8931
|
+
if (value.every(isScalar)) {
|
|
8932
|
+
return /* @__PURE__ */ jsx(Group, { gap: 6, wrap: "wrap", children: value.map((item, idx) => /* @__PURE__ */ jsx(KindChip, { kind: String(item), tone: "muted" }, idx)) });
|
|
8933
|
+
}
|
|
8934
|
+
return /* @__PURE__ */ jsx(Stack, { gap: "xs", children: value.map((item, idx) => /* @__PURE__ */ jsx(Box, { style: NESTED_BLOCK_STYLE, children: /* @__PURE__ */ jsx(JsonValueView, { value: item, depth: depth + 1 }) }, idx)) });
|
|
8935
|
+
}
|
|
8936
|
+
return /* @__PURE__ */ jsx(RecordRows, { record: value, gap: 6 });
|
|
8937
|
+
}
|
|
8938
|
+
function NestedRow({ label, value, depth }) {
|
|
8939
|
+
if (!isComplex(value)) {
|
|
8940
|
+
return /* @__PURE__ */ jsxs("div", { style: { display: "flex", gap: 8 }, children: [
|
|
8941
|
+
/* @__PURE__ */ jsx(Text, { size: "sm", fw: 500, c: "dimmed", style: { minWidth: 140, flexShrink: 0 }, children: label }),
|
|
8942
|
+
/* @__PURE__ */ jsx("div", { style: { flex: 1, minWidth: 0 }, children: /* @__PURE__ */ jsx(JsonValueView, { value, depth: depth + 1 }) })
|
|
8943
|
+
] });
|
|
8897
8944
|
}
|
|
8898
|
-
return
|
|
8945
|
+
return /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
|
|
8946
|
+
/* @__PURE__ */ jsx(Text, { size: "sm", fw: 500, c: "dimmed", children: label }),
|
|
8947
|
+
/* @__PURE__ */ jsx(Box, { style: { paddingLeft: "var(--mantine-spacing-xs)" }, children: /* @__PURE__ */ jsx(JsonValueView, { value, depth: depth + 1 }) })
|
|
8948
|
+
] });
|
|
8949
|
+
}
|
|
8950
|
+
function RecordRows({ record, gap = "xs", depth = 0 }) {
|
|
8951
|
+
if (!record) return null;
|
|
8952
|
+
const entries = Object.entries(record).filter(([, value]) => !isEmpty(value));
|
|
8953
|
+
if (entries.length === 0) return null;
|
|
8954
|
+
return /* @__PURE__ */ jsx(Stack, { gap, children: entries.map(([key, value]) => /* @__PURE__ */ jsx(NestedRow, { label: key, value, depth }, key)) });
|
|
8899
8955
|
}
|
|
8900
8956
|
function AdditionalProperties({ domain, knownKeys }) {
|
|
8901
8957
|
const knownSet = new Set(knownKeys);
|
|
8902
|
-
const extras = Object.entries(domain).filter(
|
|
8903
|
-
|
|
8904
|
-
);
|
|
8905
|
-
if (extras.length === 0) return null;
|
|
8958
|
+
const extras = Object.fromEntries(Object.entries(domain).filter(([key]) => !knownSet.has(key)));
|
|
8959
|
+
if (!hasRenderableEntries(extras)) return null;
|
|
8906
8960
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
8907
8961
|
/* @__PURE__ */ jsx(Divider, {}),
|
|
8908
8962
|
/* @__PURE__ */ jsx(Text, { size: "sm", fw: 600, c: "dimmed", tt: "uppercase", style: { letterSpacing: "0.05em" }, children: "Additional Properties" }),
|
|
8909
|
-
/* @__PURE__ */ jsx(
|
|
8910
|
-
/* @__PURE__ */ jsx(Text, { size: "sm", fw: 500, c: "dimmed", style: { minWidth: 140, flexShrink: 0 }, children: key }),
|
|
8911
|
-
/* @__PURE__ */ jsx(Text, { size: "sm", style: { flex: 1, whiteSpace: "pre-wrap", wordBreak: "break-word" }, children: formatValue(value) })
|
|
8912
|
-
] }, key)) })
|
|
8963
|
+
/* @__PURE__ */ jsx(RecordRows, { record: extras })
|
|
8913
8964
|
] });
|
|
8914
8965
|
}
|
|
8915
8966
|
var BRANDING_KNOWN_KEYS = [
|
|
@@ -9076,10 +9127,167 @@ function ThemeSwatchRow({ tokens }) {
|
|
|
9076
9127
|
/* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", ta: "center", children: label })
|
|
9077
9128
|
] }, label)) });
|
|
9078
9129
|
}
|
|
9130
|
+
function RecordSection({ title, record }) {
|
|
9131
|
+
if (!record) return null;
|
|
9132
|
+
if (!hasRenderableEntries(record)) return null;
|
|
9133
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
9134
|
+
/* @__PURE__ */ jsx(Divider, {}),
|
|
9135
|
+
/* @__PURE__ */ jsx(Text, { size: "sm", fw: 600, c: "dimmed", tt: "uppercase", style: { letterSpacing: "0.05em" }, children: title }),
|
|
9136
|
+
/* @__PURE__ */ jsx(RecordRows, { record })
|
|
9137
|
+
] });
|
|
9138
|
+
}
|
|
9139
|
+
var IDENTITY_KNOWN_KEYS = [
|
|
9140
|
+
"organizationName",
|
|
9141
|
+
"shortName",
|
|
9142
|
+
"clientBrief",
|
|
9143
|
+
"geographicFocus",
|
|
9144
|
+
"timeZone"
|
|
9145
|
+
];
|
|
9146
|
+
var BRANDING_KNOWN_KEYS2 = ["voice", "tagline", "values", "palette", "typography"];
|
|
9147
|
+
var PROMPTS_KNOWN_KEYS = ["defaultContext"];
|
|
9079
9148
|
function formatLabel(value) {
|
|
9080
9149
|
return value.split(/[-_]/).filter(Boolean).map((part) => part.charAt(0).toUpperCase() + part.slice(1)).join(" ");
|
|
9081
9150
|
}
|
|
9082
|
-
function
|
|
9151
|
+
function ClientDetail({ client, onNavigateToNode }) {
|
|
9152
|
+
const identity = client.identity;
|
|
9153
|
+
const branding = client.branding;
|
|
9154
|
+
const prompts = client.prompts;
|
|
9155
|
+
const links = client.links;
|
|
9156
|
+
const brandingRecord = branding;
|
|
9157
|
+
const palette = brandingRecord["palette"];
|
|
9158
|
+
const typography = brandingRecord["typography"];
|
|
9159
|
+
const hasBrandingSection = branding.tagline || branding.voice || branding.values && branding.values.length > 0 || palette || typography;
|
|
9160
|
+
const hasLinksSection = links.projectIds && links.projectIds.length > 0 || links.primaryCompanyId || links.primaryContactId || links.sourceDealId;
|
|
9161
|
+
return /* @__PURE__ */ jsxs(Stack, { p: "md", gap: "md", children: [
|
|
9162
|
+
/* @__PURE__ */ jsx(
|
|
9163
|
+
KnowledgePageHeader,
|
|
9164
|
+
{
|
|
9165
|
+
title: client.name,
|
|
9166
|
+
kind: "Client",
|
|
9167
|
+
tone: "subtle",
|
|
9168
|
+
copyCommand: getKnowledgeDomainFolderCommand("clients")
|
|
9169
|
+
}
|
|
9170
|
+
),
|
|
9171
|
+
/* @__PURE__ */ jsxs(Group, { gap: "xs", wrap: "wrap", children: [
|
|
9172
|
+
/* @__PURE__ */ jsx(Badge, { variant: "light", size: "sm", children: formatLabel(client.status) }),
|
|
9173
|
+
client.source ? /* @__PURE__ */ jsx(Badge, { variant: "outline", size: "sm", children: formatLabel(client.source) }) : null,
|
|
9174
|
+
/* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", children: client.slug })
|
|
9175
|
+
] }),
|
|
9176
|
+
/* @__PURE__ */ jsx(Divider, {}),
|
|
9177
|
+
/* @__PURE__ */ jsx(Text, { size: "sm", fw: 600, c: "dimmed", tt: "uppercase", style: { letterSpacing: "0.05em" }, children: "Identity" }),
|
|
9178
|
+
/* @__PURE__ */ jsxs(Stack, { gap: "xs", children: [
|
|
9179
|
+
identity.organizationName ? /* @__PURE__ */ jsx(FieldRow, { label: "Organization", value: identity.organizationName }) : null,
|
|
9180
|
+
identity.shortName ? /* @__PURE__ */ jsx(FieldRow, { label: "Short Name", value: identity.shortName }) : null,
|
|
9181
|
+
identity.geographicFocus && identity.geographicFocus.length > 0 ? /* @__PURE__ */ jsx(FieldRow, { label: "Geographic Focus", value: identity.geographicFocus.join(", ") }) : null,
|
|
9182
|
+
identity.timeZone && identity.timeZone !== "UTC" ? /* @__PURE__ */ jsx(FieldRow, { label: "Time Zone", value: identity.timeZone }) : null,
|
|
9183
|
+
identity.clientBrief ? /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
|
|
9184
|
+
/* @__PURE__ */ jsx(Text, { size: "sm", fw: 500, c: "dimmed", children: "Brief" }),
|
|
9185
|
+
/* @__PURE__ */ jsx(Card, { withBorder: true, padding: "sm", style: { background: "var(--color-surface)" }, children: /* @__PURE__ */ jsx(Text, { size: "sm", style: { whiteSpace: "pre-wrap", lineHeight: 1.6 }, children: identity.clientBrief }) })
|
|
9186
|
+
] }) : null
|
|
9187
|
+
] }),
|
|
9188
|
+
/* @__PURE__ */ jsx(AdditionalProperties, { domain: identity, knownKeys: IDENTITY_KNOWN_KEYS }),
|
|
9189
|
+
hasBrandingSection ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
9190
|
+
/* @__PURE__ */ jsx(Divider, {}),
|
|
9191
|
+
/* @__PURE__ */ jsx(Text, { size: "sm", fw: 600, c: "dimmed", tt: "uppercase", style: { letterSpacing: "0.05em" }, children: "Branding" }),
|
|
9192
|
+
/* @__PURE__ */ jsxs(Stack, { gap: "xs", children: [
|
|
9193
|
+
branding.tagline ? /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
|
|
9194
|
+
/* @__PURE__ */ jsx(Text, { size: "sm", fw: 500, c: "dimmed", children: "Tagline" }),
|
|
9195
|
+
/* @__PURE__ */ jsx(Text, { size: "sm", children: branding.tagline })
|
|
9196
|
+
] }) : null,
|
|
9197
|
+
branding.voice ? /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
|
|
9198
|
+
/* @__PURE__ */ jsx(Text, { size: "sm", fw: 500, c: "dimmed", children: "Voice" }),
|
|
9199
|
+
/* @__PURE__ */ jsx(Text, { size: "sm", children: branding.voice })
|
|
9200
|
+
] }) : null,
|
|
9201
|
+
branding.values && branding.values.length > 0 ? /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
|
|
9202
|
+
/* @__PURE__ */ jsx(Text, { size: "sm", fw: 500, c: "dimmed", children: "Values" }),
|
|
9203
|
+
/* @__PURE__ */ jsx(Group, { gap: "xs", wrap: "wrap", children: branding.values.map((v) => /* @__PURE__ */ jsx(Badge, { variant: "light", size: "sm", children: v }, v)) })
|
|
9204
|
+
] }) : null,
|
|
9205
|
+
palette ? /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
|
|
9206
|
+
/* @__PURE__ */ jsx(Text, { size: "sm", fw: 500, c: "dimmed", children: "Palette" }),
|
|
9207
|
+
/* @__PURE__ */ jsx(PaletteSwatches, { palette })
|
|
9208
|
+
] }) : null,
|
|
9209
|
+
typography ? /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
|
|
9210
|
+
/* @__PURE__ */ jsx(Text, { size: "sm", fw: 500, c: "dimmed", children: "Typography" }),
|
|
9211
|
+
/* @__PURE__ */ jsx(TypographyRows, { typography })
|
|
9212
|
+
] }) : null
|
|
9213
|
+
] }),
|
|
9214
|
+
/* @__PURE__ */ jsx(AdditionalProperties, { domain: brandingRecord, knownKeys: BRANDING_KNOWN_KEYS2 })
|
|
9215
|
+
] }) : null,
|
|
9216
|
+
prompts.defaultContext ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
9217
|
+
/* @__PURE__ */ jsx(Divider, {}),
|
|
9218
|
+
/* @__PURE__ */ jsx(Text, { size: "sm", fw: 600, c: "dimmed", tt: "uppercase", style: { letterSpacing: "0.05em" }, children: "Prompts" }),
|
|
9219
|
+
/* @__PURE__ */ jsx(Spoiler, { maxHeight: 200, showLabel: "Show more", hideLabel: "Show less", children: /* @__PURE__ */ jsx(Text, { size: "sm", style: { whiteSpace: "pre-wrap", lineHeight: 1.6 }, children: prompts.defaultContext }) }),
|
|
9220
|
+
/* @__PURE__ */ jsx(AdditionalProperties, { domain: prompts, knownKeys: PROMPTS_KNOWN_KEYS })
|
|
9221
|
+
] }) : null,
|
|
9222
|
+
hasLinksSection ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
9223
|
+
/* @__PURE__ */ jsx(Divider, {}),
|
|
9224
|
+
/* @__PURE__ */ jsx(Text, { size: "sm", fw: 600, c: "dimmed", tt: "uppercase", style: { letterSpacing: "0.05em" }, children: "Links" }),
|
|
9225
|
+
/* @__PURE__ */ jsxs(Stack, { gap: "sm", children: [
|
|
9226
|
+
links.projectIds && links.projectIds.length > 0 ? /* @__PURE__ */ jsx(
|
|
9227
|
+
EdgeGroup,
|
|
9228
|
+
{
|
|
9229
|
+
label: `Project IDs (${links.projectIds.length})`,
|
|
9230
|
+
ids: links.projectIds,
|
|
9231
|
+
onNavigateToNode
|
|
9232
|
+
}
|
|
9233
|
+
) : null,
|
|
9234
|
+
links.primaryCompanyId ? /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
|
|
9235
|
+
/* @__PURE__ */ jsx(Text, { size: "xs", fw: 500, style: { color: "var(--color-text-subtle)" }, children: "Primary Company" }),
|
|
9236
|
+
/* @__PURE__ */ jsx(
|
|
9237
|
+
EdgeChip,
|
|
9238
|
+
{
|
|
9239
|
+
id: links.primaryCompanyId,
|
|
9240
|
+
onClick: onNavigateToNode ? () => onNavigateToNode(links.primaryCompanyId) : void 0
|
|
9241
|
+
}
|
|
9242
|
+
)
|
|
9243
|
+
] }) : null,
|
|
9244
|
+
links.primaryContactId ? /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
|
|
9245
|
+
/* @__PURE__ */ jsx(Text, { size: "xs", fw: 500, style: { color: "var(--color-text-subtle)" }, children: "Primary Contact" }),
|
|
9246
|
+
/* @__PURE__ */ jsx(
|
|
9247
|
+
EdgeChip,
|
|
9248
|
+
{
|
|
9249
|
+
id: links.primaryContactId,
|
|
9250
|
+
onClick: onNavigateToNode ? () => onNavigateToNode(links.primaryContactId) : void 0
|
|
9251
|
+
}
|
|
9252
|
+
)
|
|
9253
|
+
] }) : null,
|
|
9254
|
+
links.sourceDealId ? /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
|
|
9255
|
+
/* @__PURE__ */ jsx(Text, { size: "xs", fw: 500, style: { color: "var(--color-text-subtle)" }, children: "Source Deal" }),
|
|
9256
|
+
/* @__PURE__ */ jsx(
|
|
9257
|
+
EdgeChip,
|
|
9258
|
+
{
|
|
9259
|
+
id: links.sourceDealId,
|
|
9260
|
+
onClick: onNavigateToNode ? () => onNavigateToNode(links.sourceDealId) : void 0
|
|
9261
|
+
}
|
|
9262
|
+
)
|
|
9263
|
+
] }) : null
|
|
9264
|
+
] })
|
|
9265
|
+
] }) : null,
|
|
9266
|
+
/* @__PURE__ */ jsx(RecordSection, { title: "Config", record: client.config }),
|
|
9267
|
+
/* @__PURE__ */ jsx(RecordSection, { title: "Custom Values", record: client.customValues })
|
|
9268
|
+
] });
|
|
9269
|
+
}
|
|
9270
|
+
function ClientSummaryCard({ client }) {
|
|
9271
|
+
return /* @__PURE__ */ jsx(Card, { withBorder: true, padding: "md", style: { background: "var(--color-surface)" }, children: /* @__PURE__ */ jsxs(Stack, { gap: "sm", children: [
|
|
9272
|
+
/* @__PURE__ */ jsxs(Group, { gap: "xs", justify: "space-between", wrap: "nowrap", children: [
|
|
9273
|
+
/* @__PURE__ */ jsxs(Stack, { gap: 2, style: { minWidth: 0 }, children: [
|
|
9274
|
+
/* @__PURE__ */ jsx(Text, { fw: 600, size: "sm", lineClamp: 1, children: client.name }),
|
|
9275
|
+
/* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", lineClamp: 1, children: client.slug })
|
|
9276
|
+
] }),
|
|
9277
|
+
/* @__PURE__ */ jsxs(Group, { gap: "xs", wrap: "nowrap", style: { flexShrink: 0 }, children: [
|
|
9278
|
+
/* @__PURE__ */ jsx(Badge, { variant: "light", size: "sm", children: formatLabel(client.status) }),
|
|
9279
|
+
client.source ? /* @__PURE__ */ jsx(Badge, { variant: "outline", size: "sm", children: formatLabel(client.source) }) : null
|
|
9280
|
+
] })
|
|
9281
|
+
] }),
|
|
9282
|
+
client.identity.clientBrief ? /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: client.identity.clientBrief }) : null,
|
|
9283
|
+
/* @__PURE__ */ jsxs(Group, { gap: "xs", wrap: "wrap", children: [
|
|
9284
|
+
client.workspace.kind ? /* @__PURE__ */ jsx(Badge, { variant: "light", color: "gray", size: "sm", children: formatLabel(client.workspace.kind) }) : null,
|
|
9285
|
+
client.workspace.owner ? /* @__PURE__ */ jsx(Badge, { variant: "light", color: "gray", size: "sm", children: formatLabel(client.workspace.owner) }) : null,
|
|
9286
|
+
client.workspace.projectId ? /* @__PURE__ */ jsx(Badge, { variant: "light", color: "gray", size: "sm", children: client.workspace.projectId }) : null
|
|
9287
|
+
] })
|
|
9288
|
+
] }) }, client.id);
|
|
9289
|
+
}
|
|
9290
|
+
function ClientsPanel({ model, filterToItemId, onNavigateToNode }) {
|
|
9083
9291
|
const clients = Object.values(model.clients).filter((client) => !filterToItemId || client.id === filterToItemId).sort((left, right) => left.slug.localeCompare(right.slug));
|
|
9084
9292
|
if (clients.length === 0) {
|
|
9085
9293
|
return /* @__PURE__ */ jsxs(Stack, { p: "md", gap: "sm", children: [
|
|
@@ -9095,6 +9303,9 @@ function ClientsPanel({ model, filterToItemId }) {
|
|
|
9095
9303
|
/* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: filterToItemId ? "Client profile not found." : "No client profiles defined yet." })
|
|
9096
9304
|
] });
|
|
9097
9305
|
}
|
|
9306
|
+
if (filterToItemId) {
|
|
9307
|
+
return /* @__PURE__ */ jsx(ClientDetail, { client: clients[0], onNavigateToNode });
|
|
9308
|
+
}
|
|
9098
9309
|
return /* @__PURE__ */ jsxs(Stack, { p: "md", gap: "md", children: [
|
|
9099
9310
|
/* @__PURE__ */ jsx(
|
|
9100
9311
|
KnowledgePageHeader,
|
|
@@ -9112,26 +9323,43 @@ function ClientsPanel({ model, filterToItemId }) {
|
|
|
9112
9323
|
" defined."
|
|
9113
9324
|
] }),
|
|
9114
9325
|
/* @__PURE__ */ jsx(Divider, {}),
|
|
9115
|
-
/* @__PURE__ */ jsx(Stack, { gap: "md", children: clients.map((client) => /* @__PURE__ */ jsx(
|
|
9116
|
-
/* @__PURE__ */ jsxs(Group, { gap: "xs", justify: "space-between", wrap: "nowrap", children: [
|
|
9117
|
-
/* @__PURE__ */ jsxs(Stack, { gap: 2, style: { minWidth: 0 }, children: [
|
|
9118
|
-
/* @__PURE__ */ jsx(Text, { fw: 600, size: "sm", lineClamp: 1, children: client.name }),
|
|
9119
|
-
/* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", lineClamp: 1, children: client.slug })
|
|
9120
|
-
] }),
|
|
9121
|
-
/* @__PURE__ */ jsxs(Group, { gap: "xs", wrap: "nowrap", style: { flexShrink: 0 }, children: [
|
|
9122
|
-
/* @__PURE__ */ jsx(Badge, { variant: "light", size: "sm", children: formatLabel(client.status) }),
|
|
9123
|
-
client.source ? /* @__PURE__ */ jsx(Badge, { variant: "outline", size: "sm", children: formatLabel(client.source) }) : null
|
|
9124
|
-
] })
|
|
9125
|
-
] }),
|
|
9126
|
-
client.identity.clientBrief ? /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: client.identity.clientBrief }) : null,
|
|
9127
|
-
/* @__PURE__ */ jsxs(Group, { gap: "xs", wrap: "wrap", children: [
|
|
9128
|
-
client.workspace.kind ? /* @__PURE__ */ jsx(Badge, { variant: "light", color: "gray", size: "sm", children: formatLabel(client.workspace.kind) }) : null,
|
|
9129
|
-
client.workspace.owner ? /* @__PURE__ */ jsx(Badge, { variant: "light", color: "gray", size: "sm", children: formatLabel(client.workspace.owner) }) : null,
|
|
9130
|
-
client.workspace.projectId ? /* @__PURE__ */ jsx(Badge, { variant: "light", color: "gray", size: "sm", children: client.workspace.projectId }) : null
|
|
9131
|
-
] })
|
|
9132
|
-
] }) }, client.id)) })
|
|
9326
|
+
/* @__PURE__ */ jsx(Stack, { gap: "md", children: clients.map((client) => /* @__PURE__ */ jsx(ClientSummaryCard, { client }, client.id)) })
|
|
9133
9327
|
] });
|
|
9134
9328
|
}
|
|
9329
|
+
function FieldRow({ label, value }) {
|
|
9330
|
+
return /* @__PURE__ */ jsxs("div", { style: { display: "flex", gap: 8 }, children: [
|
|
9331
|
+
/* @__PURE__ */ jsx(Text, { size: "sm", fw: 500, c: "dimmed", style: { minWidth: 140, flexShrink: 0 }, children: label }),
|
|
9332
|
+
/* @__PURE__ */ jsx(Text, { size: "sm", children: value })
|
|
9333
|
+
] });
|
|
9334
|
+
}
|
|
9335
|
+
function PaletteSwatches({ palette }) {
|
|
9336
|
+
const entries = Object.entries(palette).filter(([, v]) => typeof v === "string" && v.trim().length > 0);
|
|
9337
|
+
if (entries.length === 0) return null;
|
|
9338
|
+
return /* @__PURE__ */ jsx(Group, { gap: "sm", wrap: "wrap", children: entries.map(([name, color]) => /* @__PURE__ */ jsxs(Stack, { gap: 4, align: "center", style: { minWidth: 56 }, children: [
|
|
9339
|
+
/* @__PURE__ */ jsx(
|
|
9340
|
+
"div",
|
|
9341
|
+
{
|
|
9342
|
+
style: {
|
|
9343
|
+
width: 32,
|
|
9344
|
+
height: 32,
|
|
9345
|
+
borderRadius: 6,
|
|
9346
|
+
backgroundColor: color,
|
|
9347
|
+
border: "1px solid var(--color-border, rgba(0,0,0,0.12))"
|
|
9348
|
+
},
|
|
9349
|
+
title: color
|
|
9350
|
+
}
|
|
9351
|
+
),
|
|
9352
|
+
/* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", ta: "center", children: name })
|
|
9353
|
+
] }, name)) });
|
|
9354
|
+
}
|
|
9355
|
+
function TypographyRows({ typography }) {
|
|
9356
|
+
const entries = Object.entries(typography).filter(([, v]) => typeof v === "string" && v.trim().length > 0);
|
|
9357
|
+
if (entries.length === 0) return null;
|
|
9358
|
+
return /* @__PURE__ */ jsx(Stack, { gap: "xs", children: entries.map(([name, fontValue]) => /* @__PURE__ */ jsxs(Group, { gap: "xs", children: [
|
|
9359
|
+
/* @__PURE__ */ jsx(Text, { size: "sm", fw: 500, c: "dimmed", style: { minWidth: 140 }, children: name }),
|
|
9360
|
+
/* @__PURE__ */ jsx(Text, { size: "sm", style: { fontFamily: fontValue }, children: fontValue })
|
|
9361
|
+
] }, name)) });
|
|
9362
|
+
}
|
|
9135
9363
|
function CustomersPanel({ model, filterToItemId }) {
|
|
9136
9364
|
const customers = model.customers;
|
|
9137
9365
|
const segments = Object.values(customers).filter((segment) => !filterToItemId || segment.id === filterToItemId).sort((a, b) => a.order - b.order);
|
|
@@ -9276,7 +9504,7 @@ function GoalsPanel({ model, filterToItemId }) {
|
|
|
9276
9504
|
] });
|
|
9277
9505
|
}
|
|
9278
9506
|
var DAYS_OF_WEEK = ["monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday"];
|
|
9279
|
-
var
|
|
9507
|
+
var IDENTITY_KNOWN_KEYS2 = [
|
|
9280
9508
|
"organizationName",
|
|
9281
9509
|
"productName",
|
|
9282
9510
|
"shortName",
|
|
@@ -9295,7 +9523,7 @@ var IDENTITY_KNOWN_KEYS = [
|
|
|
9295
9523
|
function capitalize(s) {
|
|
9296
9524
|
return s.charAt(0).toUpperCase() + s.slice(1);
|
|
9297
9525
|
}
|
|
9298
|
-
function
|
|
9526
|
+
function FieldRow2({ label, value }) {
|
|
9299
9527
|
return /* @__PURE__ */ jsxs("div", { style: { display: "flex", gap: 8 }, children: [
|
|
9300
9528
|
/* @__PURE__ */ jsx(Text, { size: "sm", fw: 500, c: "dimmed", style: { minWidth: 140, flexShrink: 0 }, children: label }),
|
|
9301
9529
|
/* @__PURE__ */ jsx(Text, { size: "sm", children: value })
|
|
@@ -9321,7 +9549,7 @@ function IdentityPanel({ model }) {
|
|
|
9321
9549
|
}
|
|
9322
9550
|
),
|
|
9323
9551
|
/* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "No identity configured." }),
|
|
9324
|
-
/* @__PURE__ */ jsx(AdditionalProperties, { domain: identity, knownKeys:
|
|
9552
|
+
/* @__PURE__ */ jsx(AdditionalProperties, { domain: identity, knownKeys: IDENTITY_KNOWN_KEYS2 })
|
|
9325
9553
|
] });
|
|
9326
9554
|
}
|
|
9327
9555
|
const businessHoursRows = DAYS_OF_WEEK.map((day) => {
|
|
@@ -9343,10 +9571,10 @@ function IdentityPanel({ model }) {
|
|
|
9343
9571
|
(organizationName || productName || shortName || description) && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
9344
9572
|
/* @__PURE__ */ jsx(Text, { size: "sm", fw: 600, c: "dimmed", tt: "uppercase", style: { letterSpacing: "0.05em" }, children: "Naming" }),
|
|
9345
9573
|
/* @__PURE__ */ jsxs(Stack, { gap: "xs", children: [
|
|
9346
|
-
organizationName && /* @__PURE__ */ jsx(
|
|
9347
|
-
productName && /* @__PURE__ */ jsx(
|
|
9348
|
-
shortName && /* @__PURE__ */ jsx(
|
|
9349
|
-
description && /* @__PURE__ */ jsx(
|
|
9574
|
+
organizationName && /* @__PURE__ */ jsx(FieldRow2, { label: "Organization Name", value: organizationName }),
|
|
9575
|
+
productName && /* @__PURE__ */ jsx(FieldRow2, { label: "Product Name", value: productName }),
|
|
9576
|
+
shortName && /* @__PURE__ */ jsx(FieldRow2, { label: "Short Name", value: shortName }),
|
|
9577
|
+
description && /* @__PURE__ */ jsx(FieldRow2, { label: "Description", value: description })
|
|
9350
9578
|
] })
|
|
9351
9579
|
] }),
|
|
9352
9580
|
/* @__PURE__ */ jsxs(Stack, { gap: "xs", children: [
|
|
@@ -9363,12 +9591,12 @@ function IdentityPanel({ model }) {
|
|
|
9363
9591
|
/* @__PURE__ */ jsx(Divider, {}),
|
|
9364
9592
|
/* @__PURE__ */ jsx(Text, { size: "sm", fw: 600, c: "dimmed", tt: "uppercase", style: { letterSpacing: "0.05em" }, children: "Legal & Operational" }),
|
|
9365
9593
|
/* @__PURE__ */ jsxs(Stack, { gap: "xs", children: [
|
|
9366
|
-
identity.legalName && /* @__PURE__ */ jsx(
|
|
9367
|
-
identity.entityType && /* @__PURE__ */ jsx(
|
|
9368
|
-
identity.jurisdiction && /* @__PURE__ */ jsx(
|
|
9369
|
-
identity.industryCategory && /* @__PURE__ */ jsx(
|
|
9370
|
-
identity.geographicFocus && /* @__PURE__ */ jsx(
|
|
9371
|
-
identity.timeZone && /* @__PURE__ */ jsx(
|
|
9594
|
+
identity.legalName && /* @__PURE__ */ jsx(FieldRow2, { label: "Legal Name", value: identity.legalName }),
|
|
9595
|
+
identity.entityType && /* @__PURE__ */ jsx(FieldRow2, { label: "Entity Type", value: identity.entityType }),
|
|
9596
|
+
identity.jurisdiction && /* @__PURE__ */ jsx(FieldRow2, { label: "Jurisdiction", value: identity.jurisdiction }),
|
|
9597
|
+
identity.industryCategory && /* @__PURE__ */ jsx(FieldRow2, { label: "Industry", value: identity.industryCategory }),
|
|
9598
|
+
identity.geographicFocus && /* @__PURE__ */ jsx(FieldRow2, { label: "Geographic Focus", value: identity.geographicFocus }),
|
|
9599
|
+
identity.timeZone && /* @__PURE__ */ jsx(FieldRow2, { label: "Timezone", value: identity.timeZone })
|
|
9372
9600
|
] })
|
|
9373
9601
|
] }),
|
|
9374
9602
|
hasBusinessHours && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
@@ -9392,7 +9620,7 @@ function IdentityPanel({ model }) {
|
|
|
9392
9620
|
/* @__PURE__ */ jsx(Text, { size: "sm", fw: 600, c: "dimmed", tt: "uppercase", style: { letterSpacing: "0.05em" }, children: "Client Brief" }),
|
|
9393
9621
|
/* @__PURE__ */ jsx(Card, { withBorder: true, padding: "sm", style: { background: "var(--color-surface)" }, children: /* @__PURE__ */ jsx(Text, { size: "sm", style: { whiteSpace: "pre-wrap", lineHeight: 1.6 }, children: identity.clientBrief }) })
|
|
9394
9622
|
] }),
|
|
9395
|
-
/* @__PURE__ */ jsx(AdditionalProperties, { domain: identity, knownKeys:
|
|
9623
|
+
/* @__PURE__ */ jsx(AdditionalProperties, { domain: identity, knownKeys: IDENTITY_KNOWN_KEYS2 })
|
|
9396
9624
|
] });
|
|
9397
9625
|
}
|
|
9398
9626
|
var SURFACE_TYPE_COLORS = {
|
|
@@ -9969,16 +10197,14 @@ var SOURCE_COLORS = {
|
|
|
9969
10197
|
function formatSource(source) {
|
|
9970
10198
|
return source === "legacy-bridge" ? "legacy bridge" : source;
|
|
9971
10199
|
}
|
|
9972
|
-
function OntologyStats({
|
|
9973
|
-
projection
|
|
9974
|
-
}) {
|
|
10200
|
+
function OntologyStats({ projection }) {
|
|
9975
10201
|
const primaryStats = [
|
|
9976
10202
|
"ontology-objects",
|
|
9977
10203
|
"ontology-links",
|
|
9978
10204
|
"ontology-actions",
|
|
9979
10205
|
"ontology-catalogs",
|
|
9980
10206
|
"ontology-events",
|
|
9981
|
-
"ontology-
|
|
10207
|
+
"ontology-endpoints"
|
|
9982
10208
|
];
|
|
9983
10209
|
const optionalStats = [
|
|
9984
10210
|
"ontology-interfaces",
|
|
@@ -10016,9 +10242,24 @@ function MetadataSummary({ item }) {
|
|
|
10016
10242
|
function OntologyPanel({ model, domainKey, filterToItemId }) {
|
|
10017
10243
|
const projection = getKnowledgeOntologyProjection(model);
|
|
10018
10244
|
const label = getOntologyDomainLabel(domainKey);
|
|
10019
|
-
const
|
|
10020
|
-
|
|
10021
|
-
|
|
10245
|
+
const decodedFilterId = filterToItemId ? (() => {
|
|
10246
|
+
try {
|
|
10247
|
+
return decodeURIComponent(filterToItemId);
|
|
10248
|
+
} catch {
|
|
10249
|
+
return filterToItemId;
|
|
10250
|
+
}
|
|
10251
|
+
})() : void 0;
|
|
10252
|
+
const items = getPrimaryOntologyItemsForDomain(projection, domainKey).filter((item) => {
|
|
10253
|
+
if (!decodedFilterId) return true;
|
|
10254
|
+
const decodedItemId = (() => {
|
|
10255
|
+
try {
|
|
10256
|
+
return decodeURIComponent(item.id);
|
|
10257
|
+
} catch {
|
|
10258
|
+
return item.id;
|
|
10259
|
+
}
|
|
10260
|
+
})();
|
|
10261
|
+
return item.id === decodedFilterId || decodedItemId === decodedFilterId;
|
|
10262
|
+
});
|
|
10022
10263
|
return /* @__PURE__ */ jsxs(Stack, { p: "md", gap: "md", children: [
|
|
10023
10264
|
/* @__PURE__ */ jsx(
|
|
10024
10265
|
KnowledgePageHeader,
|
|
@@ -10118,7 +10359,7 @@ function DomainPanel({
|
|
|
10118
10359
|
case "ontology-value-types":
|
|
10119
10360
|
case "ontology-properties":
|
|
10120
10361
|
case "ontology-groups":
|
|
10121
|
-
case "ontology-
|
|
10362
|
+
case "ontology-endpoints":
|
|
10122
10363
|
case "ontology-resources":
|
|
10123
10364
|
return /* @__PURE__ */ jsx(OntologyPanel, { model, domainKey, filterToItemId });
|
|
10124
10365
|
default:
|
|
@@ -10139,7 +10380,10 @@ function childSummary(child) {
|
|
|
10139
10380
|
const count = child.children?.length ?? 0;
|
|
10140
10381
|
return count > 0 ? `${count} child${count === 1 ? "" : "ren"}` : "No child nodes";
|
|
10141
10382
|
}
|
|
10142
|
-
function GroupOverviewPanel({
|
|
10383
|
+
function GroupOverviewPanel({
|
|
10384
|
+
node,
|
|
10385
|
+
onNavigateToNode
|
|
10386
|
+
}) {
|
|
10143
10387
|
const children = node.children ?? [];
|
|
10144
10388
|
const copyCommand = node.value ? getKnowledgeTreeFolderCommand(node.value) : void 0;
|
|
10145
10389
|
return /* @__PURE__ */ jsxs(Stack, { p: "md", gap: "md", children: [
|
|
@@ -10154,13 +10398,38 @@ function GroupOverviewPanel({ node }) {
|
|
|
10154
10398
|
}
|
|
10155
10399
|
),
|
|
10156
10400
|
/* @__PURE__ */ jsx(Divider, {}),
|
|
10157
|
-
children.length === 0 ? /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "No child branches available." }) : /* @__PURE__ */ jsx(Stack, { gap: "sm", children: children.map((child) =>
|
|
10158
|
-
|
|
10159
|
-
|
|
10160
|
-
|
|
10161
|
-
|
|
10162
|
-
|
|
10163
|
-
|
|
10401
|
+
children.length === 0 ? /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "No child branches available." }) : /* @__PURE__ */ jsx(Stack, { gap: "sm", children: children.map((child) => {
|
|
10402
|
+
const routeId = child.value;
|
|
10403
|
+
const navigable = Boolean(routeId && onNavigateToNode);
|
|
10404
|
+
const cardKey = routeId ?? child.id ?? `${child.nodeType}:${child.label}`;
|
|
10405
|
+
const cardBody = /* @__PURE__ */ jsxs(Group, { justify: "space-between", align: "start", gap: "md", wrap: "nowrap", children: [
|
|
10406
|
+
/* @__PURE__ */ jsxs(Stack, { gap: 4, style: { minWidth: 0 }, children: [
|
|
10407
|
+
/* @__PURE__ */ jsx(Text, { fw: 650, size: "sm", lineClamp: 1, children: child.label }),
|
|
10408
|
+
/* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", lineClamp: 2, children: childSummary(child) })
|
|
10409
|
+
] }),
|
|
10410
|
+
/* @__PURE__ */ jsx(Badge, { variant: "light", color: "gray", style: { flexShrink: 0 }, children: child.nodeType })
|
|
10411
|
+
] });
|
|
10412
|
+
if (navigable) {
|
|
10413
|
+
return /* @__PURE__ */ jsx(
|
|
10414
|
+
UnstyledButton,
|
|
10415
|
+
{
|
|
10416
|
+
role: "button",
|
|
10417
|
+
tabIndex: 0,
|
|
10418
|
+
onClick: () => onNavigateToNode(routeId),
|
|
10419
|
+
onKeyDown: (e) => {
|
|
10420
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
10421
|
+
e.preventDefault();
|
|
10422
|
+
onNavigateToNode(routeId);
|
|
10423
|
+
}
|
|
10424
|
+
},
|
|
10425
|
+
style: { cursor: "pointer", width: "100%", textAlign: "left", display: "block" },
|
|
10426
|
+
children: /* @__PURE__ */ jsx(Card, { withBorder: true, padding: "md", children: cardBody })
|
|
10427
|
+
},
|
|
10428
|
+
cardKey
|
|
10429
|
+
);
|
|
10430
|
+
}
|
|
10431
|
+
return /* @__PURE__ */ jsx(Card, { withBorder: true, padding: "md", children: cardBody }, cardKey);
|
|
10432
|
+
}) })
|
|
10164
10433
|
] });
|
|
10165
10434
|
}
|
|
10166
10435
|
function OntologyDescribeView({
|
|
@@ -10213,7 +10482,7 @@ function OntologyDescribeView({
|
|
|
10213
10482
|
}
|
|
10214
10483
|
function renderTreeSelection(node, organizationModel, onNavigateToNode) {
|
|
10215
10484
|
if (node.nodeType === "group") {
|
|
10216
|
-
return /* @__PURE__ */ jsx(GroupOverviewPanel, { node });
|
|
10485
|
+
return /* @__PURE__ */ jsx(GroupOverviewPanel, { node, onNavigateToNode });
|
|
10217
10486
|
}
|
|
10218
10487
|
if ((node.nodeType === "domain-collection" || node.nodeType === "domain") && node.domainKey) {
|
|
10219
10488
|
return /* @__PURE__ */ jsx(DomainPanel, { domainKey: node.domainKey, model: organizationModel, onNavigateToNode });
|
|
@@ -10803,7 +11072,7 @@ function DomainPanelDispatcher({
|
|
|
10803
11072
|
case "ontology-value-types":
|
|
10804
11073
|
case "ontology-properties":
|
|
10805
11074
|
case "ontology-groups":
|
|
10806
|
-
case "ontology-
|
|
11075
|
+
case "ontology-endpoints":
|
|
10807
11076
|
case "ontology-resources":
|
|
10808
11077
|
return /* @__PURE__ */ jsx(DomainPanelFrame, { children: /* @__PURE__ */ jsx(OntologyPanel, { model, domainKey, filterToItemId }) });
|
|
10809
11078
|
default:
|