@elevasis/ui 2.28.1 → 2.29.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 +2 -2
- package/dist/app/index.js +4 -4
- package/dist/charts/index.js +3 -3
- package/dist/{chunk-PBNIW7KV.js → chunk-3DUOPXOJ.js} +139 -8
- package/dist/{chunk-5R27NFOI.js → chunk-5CW2HXQA.js} +4 -4
- package/dist/{chunk-UOHOKDKL.js → chunk-65RQE3XF.js} +5 -5
- package/dist/{chunk-TVJROM2V.js → chunk-6NHCE7JM.js} +49 -28
- package/dist/{chunk-GJXAAYZ3.js → chunk-6WXDE5LZ.js} +1 -1
- package/dist/{chunk-ZPXV5KI3.js → chunk-7E3FUTND.js} +1 -1
- package/dist/{chunk-M6OJ43NL.js → chunk-A7R2URMV.js} +60 -25
- package/dist/{chunk-YNYGUVGW.js → chunk-AK5E6ILJ.js} +8 -7
- package/dist/{chunk-MZCDRBSI.js → chunk-CEHUFNAL.js} +1 -1
- package/dist/{chunk-CT5IR4ZA.js → chunk-CLUP5H3C.js} +6 -9
- package/dist/{chunk-MYEOTM7D.js → chunk-CN2HC4D4.js} +5 -1
- package/dist/{chunk-JS7VBTC4.js → chunk-FFDAE2QI.js} +82 -2
- package/dist/{chunk-MCRKFDKB.js → chunk-FGDUK74A.js} +4 -4
- package/dist/{chunk-N63RKL3L.js → chunk-HNFQCOD2.js} +4 -4
- package/dist/{chunk-SRNIHB7Y.js → chunk-HXZQWMKE.js} +1 -2
- package/dist/{chunk-3HCTCMAS.js → chunk-OHGNCWJP.js} +3 -3
- package/dist/{chunk-AYSO5A3R.js → chunk-OIMPGKDB.js} +2 -2
- package/dist/{chunk-NU5FNTOB.js → chunk-OWESKPTJ.js} +58 -7
- package/dist/{chunk-K4Q5QUHZ.js → chunk-QNL7UI5G.js} +4 -4
- package/dist/{chunk-HNN3QALL.js → chunk-SZWXQHKO.js} +2 -2
- package/dist/{chunk-MJMFIWEB.js → chunk-Y3YJKKEB.js} +1 -1
- package/dist/components/index.js +25 -25
- package/dist/features/crm/index.js +9 -9
- package/dist/features/dashboard/index.js +10 -10
- package/dist/features/delivery/index.js +9 -9
- package/dist/features/knowledge/index.js +33 -19
- package/dist/features/lead-gen/index.d.ts +17 -1
- package/dist/features/lead-gen/index.js +10 -10
- package/dist/features/monitoring/index.js +11 -11
- package/dist/features/monitoring/requests/index.js +8 -8
- package/dist/features/operations/index.js +14 -14
- package/dist/features/settings/index.js +9 -9
- package/dist/hooks/delivery/index.js +2 -2
- package/dist/hooks/index.js +8 -8
- package/dist/hooks/published.js +8 -8
- package/dist/index.d.ts +1 -3
- package/dist/index.js +8 -8
- package/dist/knowledge/index.d.ts +1 -1
- package/dist/knowledge/index.js +102 -2
- package/dist/provider/index.js +6 -6
- package/dist/provider/published.js +5 -5
- package/dist/test-utils/index.js +2 -2
- package/dist/utils/index.d.ts +1 -3
- package/dist/utils/index.js +1 -1
- package/dist/vite/index.js +2 -2
- package/dist/vite-plugin-knowledge/index.js +1 -1
- package/package.json +4 -4
package/dist/api/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import '../chunk-XCYKC6OZ.js';
|
|
2
|
-
export { ApiClientProvider, useApiClient, useApiClientContext } from '../chunk-
|
|
3
|
-
import '../chunk-
|
|
2
|
+
export { ApiClientProvider, useApiClient, useApiClientContext } from '../chunk-7E3FUTND.js';
|
|
3
|
+
import '../chunk-HXZQWMKE.js';
|
|
4
4
|
import '../chunk-KRWALB24.js';
|
|
5
5
|
import '../chunk-DD3CCMCZ.js';
|
|
6
6
|
import '../chunk-I2KLQ2HA.js';
|
package/dist/app/index.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { ElevasisUIProvider } from '../chunk-
|
|
1
|
+
import { ElevasisUIProvider } from '../chunk-OIMPGKDB.js';
|
|
2
2
|
import '../chunk-LH4GPYDX.js';
|
|
3
3
|
import '../chunk-HLFFKKT3.js';
|
|
4
4
|
import '../chunk-WLOQ4IBG.js';
|
|
5
|
-
import '../chunk-
|
|
5
|
+
import '../chunk-OWESKPTJ.js';
|
|
6
6
|
import '../chunk-SZHARWKU.js';
|
|
7
|
-
import '../chunk-
|
|
7
|
+
import '../chunk-7E3FUTND.js';
|
|
8
8
|
import '../chunk-HOIT677G.js';
|
|
9
9
|
import '../chunk-E565XMTQ.js';
|
|
10
|
-
import '../chunk-
|
|
10
|
+
import '../chunk-HXZQWMKE.js';
|
|
11
11
|
import '../chunk-KRWALB24.js';
|
|
12
12
|
import { useInitialization } from '../chunk-WKJ47GIW.js';
|
|
13
13
|
import '../chunk-DD3CCMCZ.js';
|
package/dist/charts/index.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
export { ActivityTrendChart, ChartFrame, CombinedTrendChart, CostTrendChart, HeroStatsRow } from '../chunk-
|
|
1
|
+
export { ActivityTrendChart, ChartFrame, CombinedTrendChart, CostTrendChart, HeroStatsRow } from '../chunk-SZWXQHKO.js';
|
|
2
2
|
export { CyberAreaChart, CyberDonut, CyberDonutTooltip, CyberLegendItem, getSeriesColor, useCyberColors } from '../chunk-CW3UNAF2.js';
|
|
3
3
|
import '../chunk-VKMNWHTL.js';
|
|
4
|
-
import '../chunk-
|
|
4
|
+
import '../chunk-6WXDE5LZ.js';
|
|
5
5
|
import '../chunk-3KMDHCAR.js';
|
|
6
6
|
import '../chunk-SZHARWKU.js';
|
|
7
7
|
import '../chunk-NYBEU5TE.js';
|
|
8
8
|
import '../chunk-2IFYDILW.js';
|
|
9
9
|
import '../chunk-Q7DJKLEN.js';
|
|
10
10
|
import '../chunk-DT3QYZVU.js';
|
|
11
|
-
import '../chunk-
|
|
11
|
+
import '../chunk-HXZQWMKE.js';
|
|
12
12
|
import '../chunk-KRWALB24.js';
|
|
13
13
|
import '../chunk-WFTNY755.js';
|
|
14
14
|
import '../chunk-WKJ47GIW.js';
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { SemanticIcon } from './chunk-JCGD4GM6.js';
|
|
2
2
|
import { SubshellSidebarLoader } from './chunk-XQQEKWTL.js';
|
|
3
|
-
import { OrganizationModelProspectingSchema } from './chunk-
|
|
3
|
+
import { OrganizationModelProspectingSchema, CAPABILITY_REGISTRY } from './chunk-FFDAE2QI.js';
|
|
4
4
|
import { useCyberColors, CyberDonut } from './chunk-CW3UNAF2.js';
|
|
5
5
|
import { SubshellSidebarSection } from './chunk-IIMU5YAJ.js';
|
|
6
|
-
import { collectResourceFilterFacets, useCommandViewStore, useCommandViewData, useCommandViewStats, usePaginationState, useResourceExecutions, useCheckpointTasks } from './chunk-
|
|
7
|
-
import { EmptyState, APIErrorAlert } from './chunk-
|
|
8
|
-
import { LabelSchema, ColorTokenSchema, IconNameSchema, PathSchema, DescriptionSchema, DisplayMetadataSchema, ModelIdSchema, ReferenceIdsSchema, OrganizationModelSalesSchema } from './chunk-
|
|
6
|
+
import { collectResourceFilterFacets, useCommandViewStore, useCommandViewData, useCommandViewStats, usePaginationState, useResourceExecutions, useCheckpointTasks } from './chunk-HNFQCOD2.js';
|
|
7
|
+
import { EmptyState, APIErrorAlert } from './chunk-6WXDE5LZ.js';
|
|
8
|
+
import { LabelSchema, ColorTokenSchema, IconNameSchema, PathSchema, DescriptionSchema, DisplayMetadataSchema, ModelIdSchema, ReferenceIdsSchema, OrganizationModelSalesSchema } from './chunk-OWESKPTJ.js';
|
|
9
9
|
import { useElevasisFeatures } from './chunk-V3HUIZJX.js';
|
|
10
|
-
import { getNodeId } from './chunk-
|
|
10
|
+
import { getNodeId } from './chunk-HXZQWMKE.js';
|
|
11
11
|
import { useRef, useEffect, useMemo } from 'react';
|
|
12
12
|
import { Paper, Stack, Group, Text, Button, Badge, SimpleGrid, Divider, Select, NumberInput, MultiSelect, Switch, Card, Checkbox, UnstyledButton, useMantineTheme, Box, Title, Space, Center, Loader, Pagination, TextInput, SegmentedControl } from '@mantine/core';
|
|
13
13
|
import { IconShare2, IconTopologyStar3, IconRefresh, IconCircleX, IconCircleCheck, IconCircleDashed, IconSitemap, IconExternalLink, IconSearch } from '@tabler/icons-react';
|
|
@@ -587,8 +587,12 @@ var LEGACY_FEATURE_ALIASES = /* @__PURE__ */ new Map([
|
|
|
587
587
|
function hasFeature(featuresById, featureId) {
|
|
588
588
|
return featuresById.has(featureId) || featuresById.has(LEGACY_FEATURE_ALIASES.get(featureId) ?? "");
|
|
589
589
|
}
|
|
590
|
+
function defaultFeaturePathFor(id) {
|
|
591
|
+
return `/${id.replaceAll(".", "/")}`;
|
|
592
|
+
}
|
|
590
593
|
var OrganizationModelSchema = OrganizationModelSchemaBase.superRefine((model, ctx) => {
|
|
591
594
|
const featuresById = collectIds(model.features, ctx, ["features"], "Feature");
|
|
595
|
+
const featureIdsByEffectivePath = /* @__PURE__ */ new Map();
|
|
592
596
|
model.features.forEach((feature, featureIndex) => {
|
|
593
597
|
const segments = feature.id.split(".");
|
|
594
598
|
if (segments.length > 1) {
|
|
@@ -604,6 +608,20 @@ var OrganizationModelSchema = OrganizationModelSchemaBase.superRefine((model, ct
|
|
|
604
608
|
const hasChildren = model.features.some(
|
|
605
609
|
(candidate) => candidate.id.startsWith(`${feature.id}.`) && candidate.id !== feature.id
|
|
606
610
|
);
|
|
611
|
+
const contributesRoutePath = feature.path !== void 0 || !hasChildren;
|
|
612
|
+
if (contributesRoutePath) {
|
|
613
|
+
const effectivePath = feature.path ?? defaultFeaturePathFor(feature.id);
|
|
614
|
+
const existingFeatureId = featureIdsByEffectivePath.get(effectivePath);
|
|
615
|
+
if (existingFeatureId !== void 0) {
|
|
616
|
+
addIssue(
|
|
617
|
+
ctx,
|
|
618
|
+
["features", featureIndex, feature.path === void 0 ? "id" : "path"],
|
|
619
|
+
`Feature "${feature.id}" effective path "${effectivePath}" duplicates feature "${existingFeatureId}"`
|
|
620
|
+
);
|
|
621
|
+
} else {
|
|
622
|
+
featureIdsByEffectivePath.set(effectivePath, feature.id);
|
|
623
|
+
}
|
|
624
|
+
}
|
|
607
625
|
if (hasChildren && feature.enabled) {
|
|
608
626
|
const hasEnabledDescendant = model.features.some(
|
|
609
627
|
(candidate) => candidate.id.startsWith(`${feature.id}.`) && candidate.enabled
|
|
@@ -617,6 +635,43 @@ var OrganizationModelSchema = OrganizationModelSchemaBase.superRefine((model, ct
|
|
|
617
635
|
}
|
|
618
636
|
}
|
|
619
637
|
});
|
|
638
|
+
const surfacesById = collectIds(model.navigation.surfaces, ctx, ["navigation", "surfaces"], "Navigation surface");
|
|
639
|
+
if (model.navigation.defaultSurfaceId !== void 0 && !surfacesById.has(model.navigation.defaultSurfaceId)) {
|
|
640
|
+
addIssue(
|
|
641
|
+
ctx,
|
|
642
|
+
["navigation", "defaultSurfaceId"],
|
|
643
|
+
`Navigation defaultSurfaceId references unknown surface "${model.navigation.defaultSurfaceId}"`
|
|
644
|
+
);
|
|
645
|
+
}
|
|
646
|
+
model.navigation.groups.forEach((group, groupIndex) => {
|
|
647
|
+
group.surfaceIds.forEach((surfaceId, surfaceIndex) => {
|
|
648
|
+
if (!surfacesById.has(surfaceId)) {
|
|
649
|
+
addIssue(
|
|
650
|
+
ctx,
|
|
651
|
+
["navigation", "groups", groupIndex, "surfaceIds", surfaceIndex],
|
|
652
|
+
`Navigation group "${group.id}" references unknown surface "${surfaceId}"`
|
|
653
|
+
);
|
|
654
|
+
}
|
|
655
|
+
});
|
|
656
|
+
});
|
|
657
|
+
model.navigation.surfaces.forEach((surface, surfaceIndex) => {
|
|
658
|
+
if (surface.featureId !== void 0 && !hasFeature(featuresById, surface.featureId)) {
|
|
659
|
+
addIssue(
|
|
660
|
+
ctx,
|
|
661
|
+
["navigation", "surfaces", surfaceIndex, "featureId"],
|
|
662
|
+
`Navigation surface "${surface.id}" references unknown feature "${surface.featureId}"`
|
|
663
|
+
);
|
|
664
|
+
}
|
|
665
|
+
surface.featureIds.forEach((featureId, featureIndex) => {
|
|
666
|
+
if (!hasFeature(featuresById, featureId)) {
|
|
667
|
+
addIssue(
|
|
668
|
+
ctx,
|
|
669
|
+
["navigation", "surfaces", surfaceIndex, "featureIds", featureIndex],
|
|
670
|
+
`Navigation surface "${surface.id}" references unknown feature "${featureId}"`
|
|
671
|
+
);
|
|
672
|
+
}
|
|
673
|
+
});
|
|
674
|
+
});
|
|
620
675
|
const segmentsById = new Map(model.customers.segments.map((seg) => [seg.id, seg]));
|
|
621
676
|
model.offerings.products.forEach((product, productIndex) => {
|
|
622
677
|
product.targetSegmentIds.forEach((segmentId, segmentIndex) => {
|
|
@@ -664,6 +719,7 @@ var OrganizationGraphNodeKindSchema = z.enum([
|
|
|
664
719
|
"surface",
|
|
665
720
|
"entity",
|
|
666
721
|
"capability",
|
|
722
|
+
"stage",
|
|
667
723
|
"resource",
|
|
668
724
|
"knowledge"
|
|
669
725
|
]);
|
|
@@ -845,6 +901,75 @@ function buildOrganizationGraph(input) {
|
|
|
845
901
|
});
|
|
846
902
|
}
|
|
847
903
|
}
|
|
904
|
+
const allStages = [
|
|
905
|
+
...organizationModel.prospecting.companyStages,
|
|
906
|
+
...organizationModel.prospecting.contactStages
|
|
907
|
+
].sort((a, b) => a.order - b.order || a.id.localeCompare(b.id));
|
|
908
|
+
for (const stage of allStages) {
|
|
909
|
+
const id = nodeId("stage", stage.id);
|
|
910
|
+
pushUniqueNode(nodes, nodeIds, {
|
|
911
|
+
id,
|
|
912
|
+
kind: "stage",
|
|
913
|
+
label: stage.label,
|
|
914
|
+
sourceId: stage.id,
|
|
915
|
+
...stage.description ? { description: stage.description } : {},
|
|
916
|
+
...stage.icon ? { icon: stage.icon } : {}
|
|
917
|
+
});
|
|
918
|
+
pushUniqueEdge(edges, edgeIds, {
|
|
919
|
+
id: edgeId("contains", organizationNode.id, id),
|
|
920
|
+
kind: "contains",
|
|
921
|
+
sourceId: organizationNode.id,
|
|
922
|
+
targetId: id
|
|
923
|
+
});
|
|
924
|
+
}
|
|
925
|
+
for (const cap of [...CAPABILITY_REGISTRY].sort((a, b) => a.id.localeCompare(b.id))) {
|
|
926
|
+
const id = nodeId("capability", cap.id);
|
|
927
|
+
pushUniqueNode(nodes, nodeIds, {
|
|
928
|
+
id,
|
|
929
|
+
kind: "capability",
|
|
930
|
+
label: cap.label,
|
|
931
|
+
sourceId: cap.id,
|
|
932
|
+
description: cap.description
|
|
933
|
+
});
|
|
934
|
+
pushUniqueEdge(edges, edgeIds, {
|
|
935
|
+
id: edgeId("contains", organizationNode.id, id),
|
|
936
|
+
kind: "contains",
|
|
937
|
+
sourceId: organizationNode.id,
|
|
938
|
+
targetId: id
|
|
939
|
+
});
|
|
940
|
+
const resourceNode = ensureResourceNode(nodes, nodeIds, resourceNodesById, cap.resourceId);
|
|
941
|
+
pushUniqueEdge(edges, edgeIds, {
|
|
942
|
+
id: edgeId("maps_to", id, resourceNode.id),
|
|
943
|
+
kind: "maps_to",
|
|
944
|
+
sourceId: id,
|
|
945
|
+
targetId: resourceNode.id
|
|
946
|
+
});
|
|
947
|
+
}
|
|
948
|
+
for (const template of [...organizationModel.prospecting.buildTemplates].sort((a, b) => a.id.localeCompare(b.id))) {
|
|
949
|
+
const stepById = new Map(template.steps.map((s) => [s.id, s]));
|
|
950
|
+
for (const step of [...template.steps].sort((a, b) => a.id.localeCompare(b.id))) {
|
|
951
|
+
const stageNodeId = nodeId("stage", step.stageKey);
|
|
952
|
+
const capNodeId = nodeId("capability", step.capabilityKey);
|
|
953
|
+
pushUniqueEdge(edges, edgeIds, {
|
|
954
|
+
id: edgeId("uses", stageNodeId, capNodeId, step.id),
|
|
955
|
+
kind: "uses",
|
|
956
|
+
sourceId: stageNodeId,
|
|
957
|
+
targetId: capNodeId
|
|
958
|
+
});
|
|
959
|
+
for (const depId of step.dependsOn ?? []) {
|
|
960
|
+
const depStep = stepById.get(depId);
|
|
961
|
+
if (depStep) {
|
|
962
|
+
const depStageNodeId = nodeId("stage", depStep.stageKey);
|
|
963
|
+
pushUniqueEdge(edges, edgeIds, {
|
|
964
|
+
id: edgeId("references", stageNodeId, depStageNodeId, step.id),
|
|
965
|
+
kind: "references",
|
|
966
|
+
sourceId: stageNodeId,
|
|
967
|
+
targetId: depStageNodeId
|
|
968
|
+
});
|
|
969
|
+
}
|
|
970
|
+
}
|
|
971
|
+
}
|
|
972
|
+
}
|
|
848
973
|
if (commandViewData) {
|
|
849
974
|
const commandViewResources = collectCommandViewResources(commandViewData).sort(
|
|
850
975
|
(a, b) => a.resourceId.localeCompare(b.resourceId)
|
|
@@ -908,6 +1033,7 @@ var NODE_KIND_LABELS = {
|
|
|
908
1033
|
surface: "Surface",
|
|
909
1034
|
entity: "Entity",
|
|
910
1035
|
capability: "Capability",
|
|
1036
|
+
stage: "Stage",
|
|
911
1037
|
resource: "Resource",
|
|
912
1038
|
knowledge: "Knowledge"
|
|
913
1039
|
};
|
|
@@ -917,6 +1043,7 @@ var NODE_KIND_MEANINGS = {
|
|
|
917
1043
|
surface: "A user-facing or operational surface that exposes feature behavior in the model.",
|
|
918
1044
|
entity: "A shared business concept that can be referenced by surfaces, resources, or capabilities.",
|
|
919
1045
|
capability: "A reusable capability that can be attached to a feature or surface.",
|
|
1046
|
+
stage: "A lifecycle stage that records progress for an entity through a build pipeline.",
|
|
920
1047
|
resource: "A concrete command-view or mapped resource that bridges execution topology into the model.",
|
|
921
1048
|
knowledge: "An operational knowledge node that documents a process, strategy, or runbook in the org model."
|
|
922
1049
|
};
|
|
@@ -1576,6 +1703,7 @@ var ORGANIZATION_GRAPH_NODE_KIND_ORDER = [
|
|
|
1576
1703
|
"surface",
|
|
1577
1704
|
"entity",
|
|
1578
1705
|
"capability",
|
|
1706
|
+
"stage",
|
|
1579
1707
|
"resource",
|
|
1580
1708
|
"knowledge"
|
|
1581
1709
|
];
|
|
@@ -1585,6 +1713,7 @@ var ORGANIZATION_GRAPH_NODE_KIND_LABELS = {
|
|
|
1585
1713
|
surface: "Surface",
|
|
1586
1714
|
entity: "Entity",
|
|
1587
1715
|
capability: "Capability",
|
|
1716
|
+
stage: "Stage",
|
|
1588
1717
|
resource: "Resource",
|
|
1589
1718
|
knowledge: "Knowledge"
|
|
1590
1719
|
};
|
|
@@ -2480,15 +2609,17 @@ var NODE_KIND_ORDER = {
|
|
|
2480
2609
|
feature: 1,
|
|
2481
2610
|
surface: 2,
|
|
2482
2611
|
capability: 3,
|
|
2483
|
-
|
|
2484
|
-
|
|
2485
|
-
|
|
2612
|
+
stage: 4,
|
|
2613
|
+
entity: 5,
|
|
2614
|
+
resource: 6,
|
|
2615
|
+
knowledge: 7
|
|
2486
2616
|
};
|
|
2487
2617
|
var NODE_KIND_LABEL = {
|
|
2488
2618
|
organization: "Organization",
|
|
2489
2619
|
feature: "Feature",
|
|
2490
2620
|
surface: "Surface",
|
|
2491
2621
|
capability: "Capability",
|
|
2622
|
+
stage: "Stage",
|
|
2492
2623
|
entity: "Entity",
|
|
2493
2624
|
resource: "Resource",
|
|
2494
2625
|
knowledge: "Knowledge"
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { CostTrendChart, ActivityTrendChart } from './chunk-
|
|
1
|
+
import { CostTrendChart, ActivityTrendChart } from './chunk-SZWXQHKO.js';
|
|
2
2
|
import { CyberAreaChart } from './chunk-CW3UNAF2.js';
|
|
3
3
|
import { AppShellLoader } from './chunk-RYTEQBAO.js';
|
|
4
4
|
import { FilterBar } from './chunk-PDHTXPSF.js';
|
|
5
5
|
import { CustomModal } from './chunk-KVJ3LFH2.js';
|
|
6
6
|
import { formatDuration } from './chunk-E4WQGJNS.js';
|
|
7
|
-
import { useResolveError, useResolveAllErrors, usePaginationState, useErrorDetails, useMarkAsRead, useExecutionLogsFilters, useExecutionLogs, useExecutionHealth, useErrorAnalysis, useTimeRangeDates, useErrorDetail, useResolveErrorsByExecution, useResources, useCostTrends, useCostSummary, useCostByModel, useCostBreakdown, useActivityFilters, useActivityTrend, useActivities, useNotifications, useMarkAllAsRead, useTestNotification } from './chunk-
|
|
8
|
-
import { CenteredErrorState, CardHeader, StatsCardSkeleton, TrendIndicator, DetailCardSkeleton, EmptyState, PageTitleCaption, JsonViewer } from './chunk-
|
|
7
|
+
import { useResolveError, useResolveAllErrors, usePaginationState, useErrorDetails, useMarkAsRead, useExecutionLogsFilters, useExecutionLogs, useExecutionHealth, useErrorAnalysis, useTimeRangeDates, useErrorDetail, useResolveErrorsByExecution, useResources, useCostTrends, useCostSummary, useCostByModel, useCostBreakdown, useActivityFilters, useActivityTrend, useActivities, useNotifications, useMarkAllAsRead, useTestNotification } from './chunk-HNFQCOD2.js';
|
|
8
|
+
import { CenteredErrorState, CardHeader, StatsCardSkeleton, TrendIndicator, DetailCardSkeleton, EmptyState, PageTitleCaption, JsonViewer } from './chunk-6WXDE5LZ.js';
|
|
9
9
|
import { useRouterContext } from './chunk-Q7DJKLEN.js';
|
|
10
|
-
import { formatBucketTime, PAGE_SIZE_DEFAULT, getTimeRangeDates } from './chunk-
|
|
10
|
+
import { formatBucketTime, PAGE_SIZE_DEFAULT, getTimeRangeDates } from './chunk-HXZQWMKE.js';
|
|
11
11
|
import { useState, useMemo, useCallback } from 'react';
|
|
12
12
|
import { Table, Text, Badge, Tooltip, Card, Group, Select, SegmentedControl, Button, TextInput, Stack, Paper, Center, Loader, ActionIcon, NumberFormatter, Box, Alert, Switch, Pagination, UnstyledButton, Title, Divider, Code, CopyButton, Accordion } from '@mantine/core';
|
|
13
13
|
import { IconActivity, IconFilterOff, IconCircleCheck, IconThumbDown, IconThumbUp, IconClock, IconCircleX, IconSearch, IconArrowUpRight, IconAlertTriangle, IconAlertCircle, IconExternalLink, IconChartPie, IconHeartbeat, IconDownload, IconCpu, IconTrendingUp, IconChartBar, IconCash, IconInfoCircle, IconExclamationCircle, IconBug, IconChecks, IconCircle, IconCircleFilled, IconCheck, IconCopy, IconCircleDashed, IconPlus, IconArrowUp, IconArrowDown, IconFileOff, IconRobot, IconKey, IconUser } from '@tabler/icons-react';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DEFAULT_ORGANIZATION_MODEL_PROSPECTING, PROSPECTING_STEPS } from './chunk-
|
|
1
|
+
import { DEFAULT_ORGANIZATION_MODEL_PROSPECTING, PROSPECTING_STEPS } from './chunk-FFDAE2QI.js';
|
|
2
2
|
import { sanitizeInput } from './chunk-3MEXPLWT.js';
|
|
3
3
|
import { PageContainer } from './chunk-BZZCNLT6.js';
|
|
4
4
|
import { TableSelectionToolbar, SortableHeader } from './chunk-TUMSNGTX.js';
|
|
@@ -6,10 +6,10 @@ import { SubshellNavItem } from './chunk-X4WBGKJQ.js';
|
|
|
6
6
|
import { SubshellSidebarSection } from './chunk-IIMU5YAJ.js';
|
|
7
7
|
import { FilterBar } from './chunk-PDHTXPSF.js';
|
|
8
8
|
import { CustomModal } from './chunk-KVJ3LFH2.js';
|
|
9
|
-
import { acquisitionListKeys, useListsTelemetry, useLists, useCreateList, useTableSort, sortData, usePaginationState, useTableSelection, useWorkflowExecution, useList, useListProgress, useListExecutions, useDeleteList, useCompanyFacets, useCompanies, useDeleteCompanies, useContacts, useDeleteContacts, useListMembers, useListMember, useTransitionListMember, useDeriveActions, useArtifacts } from './chunk-
|
|
10
|
-
import { showApiErrorNotification, showSuccessNotification } from './chunk-
|
|
11
|
-
import { PageTitleCaption, CenteredErrorState, StatCard, CardHeader, EmptyState, JsonViewer } from './chunk-
|
|
12
|
-
import { useListActions, LEAD_GEN_STAGE_CATALOG, LEAD_GEN_PIPELINE_DEFINITIONS, findPipeline } from './chunk-
|
|
9
|
+
import { acquisitionListKeys, useListsTelemetry, useLists, useCreateList, useTableSort, sortData, usePaginationState, useTableSelection, useWorkflowExecution, useList, useListProgress, useListExecutions, useDeleteList, useCompanyFacets, useCompanies, useDeleteCompanies, useContacts, useDeleteContacts, useListMembers, useListMember, useTransitionListMember, useDeriveActions, useArtifacts } from './chunk-HNFQCOD2.js';
|
|
10
|
+
import { showApiErrorNotification, showSuccessNotification } from './chunk-CEHUFNAL.js';
|
|
11
|
+
import { PageTitleCaption, CenteredErrorState, StatCard, CardHeader, EmptyState, JsonViewer } from './chunk-6WXDE5LZ.js';
|
|
12
|
+
import { useListActions, LEAD_GEN_STAGE_CATALOG, LEAD_GEN_PIPELINE_DEFINITIONS, findPipeline } from './chunk-OWESKPTJ.js';
|
|
13
13
|
import { SubshellContentContainer } from './chunk-TKAYX2SP.js';
|
|
14
14
|
import { useRouterContext } from './chunk-Q7DJKLEN.js';
|
|
15
15
|
import { useElevasisServices } from './chunk-5WWZXCS5.js';
|
|
@@ -4,13 +4,13 @@ import { SubshellNavItem } from './chunk-X4WBGKJQ.js';
|
|
|
4
4
|
import { SubshellSidebarSection } from './chunk-IIMU5YAJ.js';
|
|
5
5
|
import { FilterBar } from './chunk-PDHTXPSF.js';
|
|
6
6
|
import { CustomModal } from './chunk-KVJ3LFH2.js';
|
|
7
|
-
import { useDealTasksDue, useDealsLookup, useCreateDealTask, useDealsSummary, useDeleteDeal, usePaginationState, useDeals, useTableSort, sortData, useTableSelection, useDealDetail, useCompany, dealKeys, useExecuteAction } from './chunk-
|
|
8
|
-
import { showApiErrorNotification, showSuccessNotification } from './chunk-
|
|
9
|
-
import { CenteredErrorState, CardHeader, StatCard, PageTitleCaption, EmptyState, ActivityTimeline } from './chunk-
|
|
10
|
-
import { useCrmActions, DEFAULT_CRM_PRIORITY_RULE_CONFIG, deriveActions, CRM_PRIORITY_BUCKETS } from './chunk-
|
|
7
|
+
import { useDealTasksDue, useDealsLookup, useCreateDealTask, useDealsSummary, useDeleteDeal, usePaginationState, useDeals, useTableSort, sortData, useTableSelection, useDealDetail, useCompany, dealKeys, useExecuteAction } from './chunk-HNFQCOD2.js';
|
|
8
|
+
import { showApiErrorNotification, showSuccessNotification } from './chunk-CEHUFNAL.js';
|
|
9
|
+
import { CenteredErrorState, CardHeader, StatCard, PageTitleCaption, EmptyState, ActivityTimeline } from './chunk-6WXDE5LZ.js';
|
|
10
|
+
import { CRM_PIPELINE_DEFINITION, useCrmActions, DEFAULT_CRM_PRIORITY_RULE_CONFIG, deriveActions, CRM_PRIORITY_BUCKETS } from './chunk-OWESKPTJ.js';
|
|
11
11
|
import { SubshellContentContainer } from './chunk-TKAYX2SP.js';
|
|
12
12
|
import { useRouterContext } from './chunk-Q7DJKLEN.js';
|
|
13
|
-
import { PAGE_SIZE_DEFAULT, formatTimeAgo } from './chunk-
|
|
13
|
+
import { PAGE_SIZE_DEFAULT, formatTimeAgo } from './chunk-HXZQWMKE.js';
|
|
14
14
|
import { useElevasisServices } from './chunk-5WWZXCS5.js';
|
|
15
15
|
import { Box, Stack, Group, Text, Badge, Center, Loader, UnstyledButton, Button, Modal, Title, Select, TextInput, Textarea, Paper, Alert, Table, SimpleGrid, Tabs, Checkbox, Tooltip, Pagination, Code, Card, Switch, NumberInput, ColorSwatch, Popover, ActionIcon, CopyButton, Divider } from '@mantine/core';
|
|
16
16
|
import { IconLayoutGrid, IconColumns, IconFileInvoice, IconAddressBook, IconTrophy, IconClockExclamation, IconUser, IconPlus, IconChecklist, IconHistory, IconAlertCircle, IconCurrencyDollar, IconChartBar, IconBriefcase, IconSearch, IconTargetArrow, IconAlertTriangle, IconMessages, IconArrowLeft, IconFileText, IconInbox, IconBolt, IconBuilding, IconSettings, IconRestore, IconInfoCircle, IconMailForward, IconCheckbox, IconCalendar, IconMail, IconPhone, IconArrowRight, IconNote, IconCheck, IconCopy } from '@tabler/icons-react';
|
|
@@ -47,6 +47,43 @@ var SAVED_VIEW_PRESETS = [
|
|
|
47
47
|
}
|
|
48
48
|
];
|
|
49
49
|
|
|
50
|
+
// src/lib/crm/pipeline.ts
|
|
51
|
+
function getCrmStageOptions() {
|
|
52
|
+
return CRM_PIPELINE_DEFINITION.stages.map((stage) => ({
|
|
53
|
+
value: stage.stageKey,
|
|
54
|
+
label: stage.label
|
|
55
|
+
}));
|
|
56
|
+
}
|
|
57
|
+
function getCrmStageColors() {
|
|
58
|
+
return CRM_PIPELINE_DEFINITION.stages.reduce((colors, stage) => {
|
|
59
|
+
if (stage.color) colors[stage.stageKey] = stage.color;
|
|
60
|
+
return colors;
|
|
61
|
+
}, {});
|
|
62
|
+
}
|
|
63
|
+
function getCrmStageLabel(stageKey) {
|
|
64
|
+
const normalized = normalizeCatalogKey(stageKey);
|
|
65
|
+
if (!normalized) return "Unknown";
|
|
66
|
+
return CRM_PIPELINE_DEFINITION.stages.find((stage) => stage.stageKey.toLowerCase() === normalized.toLowerCase())?.label ?? formatReadableKey(normalized);
|
|
67
|
+
}
|
|
68
|
+
function getCrmStateLabel(stateKey) {
|
|
69
|
+
const normalized = normalizeCatalogKey(stateKey);
|
|
70
|
+
if (!normalized) return "Unknown";
|
|
71
|
+
for (const stage of CRM_PIPELINE_DEFINITION.stages) {
|
|
72
|
+
const state = stage.states.find((candidate) => candidate.stateKey.toLowerCase() === normalized.toLowerCase());
|
|
73
|
+
if (state) return state.label;
|
|
74
|
+
}
|
|
75
|
+
return formatReadableKey(normalized);
|
|
76
|
+
}
|
|
77
|
+
function normalizeCatalogKey(value) {
|
|
78
|
+
const normalized = value?.trim();
|
|
79
|
+
return normalized ? normalized : null;
|
|
80
|
+
}
|
|
81
|
+
function formatReadableKey(value) {
|
|
82
|
+
const words = value.split("_").map((word) => word.trim().toLowerCase()).filter(Boolean);
|
|
83
|
+
if (!words.length) return "Unknown";
|
|
84
|
+
return words.map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join(" ");
|
|
85
|
+
}
|
|
86
|
+
|
|
50
87
|
// src/features/crm/pages/shared.ts
|
|
51
88
|
var DEAL_REFERRER_STORAGE_KEY = "crm:dealReferrer";
|
|
52
89
|
function setDealReferrer(referrer) {
|
|
@@ -65,22 +102,11 @@ function getDealReferrer() {
|
|
|
65
102
|
return "deals";
|
|
66
103
|
}
|
|
67
104
|
}
|
|
68
|
-
var DEAL_STAGE_COLORS =
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
closed_lost: "red",
|
|
74
|
-
nurturing: "grape"
|
|
75
|
-
};
|
|
76
|
-
var DEAL_STAGE_OPTIONS = [
|
|
77
|
-
{ value: "interested", label: "Interested" },
|
|
78
|
-
{ value: "proposal", label: "Proposal" },
|
|
79
|
-
{ value: "closing", label: "Closing" },
|
|
80
|
-
{ value: "closed_won", label: "Closed Won" },
|
|
81
|
-
{ value: "closed_lost", label: "Closed Lost" },
|
|
82
|
-
{ value: "nurturing", label: "Nurturing" }
|
|
83
|
-
];
|
|
105
|
+
var DEAL_STAGE_COLORS = getCrmStageColors();
|
|
106
|
+
var DEAL_STAGE_OPTIONS = getCrmStageOptions().map((option) => ({
|
|
107
|
+
value: option.value,
|
|
108
|
+
label: option.label
|
|
109
|
+
}));
|
|
84
110
|
var DEAL_PRIORITY_OPTIONS = [
|
|
85
111
|
{ value: "needs_response", label: "Needs response" },
|
|
86
112
|
{ value: "follow_up_due", label: "Follow-up due" },
|
|
@@ -101,15 +127,10 @@ function compareDealsByPriorityThenUpdated(a, b, direction = "asc") {
|
|
|
101
127
|
return getUpdatedTimestamp(b) - getUpdatedTimestamp(a);
|
|
102
128
|
}
|
|
103
129
|
function formatDealStageLabel(stage) {
|
|
104
|
-
return
|
|
130
|
+
return getCrmStageLabel(stage);
|
|
105
131
|
}
|
|
106
132
|
function formatDealStateLabel(state) {
|
|
107
|
-
return
|
|
108
|
-
}
|
|
109
|
-
function formatDealWorkflowLabel(value) {
|
|
110
|
-
const words = value?.trim().split("_").map((word) => word.trim().toLowerCase()).filter(Boolean);
|
|
111
|
-
if (!words?.length) return "Unknown";
|
|
112
|
-
return words.map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join(" ");
|
|
133
|
+
return getCrmStateLabel(state);
|
|
113
134
|
}
|
|
114
135
|
function comparePriorityRank(a, b, direction) {
|
|
115
136
|
const comparison = a.rank - b.rank;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { StyledMarkdown } from './chunk-3KMDHCAR.js';
|
|
2
2
|
import { useRouterContext } from './chunk-Q7DJKLEN.js';
|
|
3
|
-
import { getErrorInfo, getErrorTitle, getResourceIcon, formatTimeAgo } from './chunk-
|
|
3
|
+
import { getErrorInfo, getErrorTitle, getResourceIcon, formatTimeAgo } from './chunk-HXZQWMKE.js';
|
|
4
4
|
import { ResourceStatusColors } from './chunk-KRWALB24.js';
|
|
5
5
|
import { useAuthContext } from './chunk-BRJ3QZ4E.js';
|
|
6
6
|
import { Center, Stack, Title, Text, Button, Box, Loader, Badge, Group, Collapse, ScrollArea, Card, Select, Alert, Code, ThemeIcon, Paper, Grid, Timeline, Space } from '@mantine/core';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { APIClientError } from './chunk-
|
|
1
|
+
import { APIClientError } from './chunk-HXZQWMKE.js';
|
|
2
2
|
import { OrganizationContext } from './chunk-DD3CCMCZ.js';
|
|
3
3
|
import { createContext, useContext, useMemo, useCallback } from 'react';
|
|
4
4
|
import { jsx } from 'react/jsx-runtime';
|
|
@@ -2,11 +2,11 @@ import { AppShellLoader } from './chunk-RYTEQBAO.js';
|
|
|
2
2
|
import { FilterBar } from './chunk-PDHTXPSF.js';
|
|
3
3
|
import { CustomModal } from './chunk-KVJ3LFH2.js';
|
|
4
4
|
import { useAvailablePresets } from './chunk-XBMCDGHA.js';
|
|
5
|
-
import { useDeleteCredential, useCreateCredential, useCredentials, MEMBERSHIP_STATUS_COLORS, transformMembershipToTableRow, useUserMemberships, useUpdateWebhookEndpoint, useResources, useDeleteWebhookEndpoint, useCreateWebhookEndpoint, useListWebhookEndpoints, useOrgRoles, useAssignRole, useRevokeRole, useHasPermission, useUpdateMemberConfig, useOrganizationMembers, useUpdateCredential, CredentialSchemas } from './chunk-
|
|
6
|
-
import { showApiErrorNotification, showErrorNotification, showSuccessNotification } from './chunk-
|
|
7
|
-
import { ListSkeleton, EmptyState, PageTitleCaption, CardHeader, APIErrorAlert, StatCard } from './chunk-
|
|
5
|
+
import { useDeleteCredential, useCreateCredential, useCredentials, MEMBERSHIP_STATUS_COLORS, transformMembershipToTableRow, useUserMemberships, useUpdateWebhookEndpoint, useResources, useDeleteWebhookEndpoint, useCreateWebhookEndpoint, useListWebhookEndpoints, useOrgRoles, useAssignRole, useRevokeRole, useHasPermission, useUpdateMemberConfig, useOrganizationMembers, useUpdateCredential, CredentialSchemas } from './chunk-HNFQCOD2.js';
|
|
6
|
+
import { showApiErrorNotification, showErrorNotification, showSuccessNotification } from './chunk-CEHUFNAL.js';
|
|
7
|
+
import { ListSkeleton, EmptyState, PageTitleCaption, CardHeader, APIErrorAlert, StatCard } from './chunk-6WXDE5LZ.js';
|
|
8
8
|
import { RoleBadge } from './chunk-GESXCQWY.js';
|
|
9
|
-
import { isAPIClientError, formatDateTime,
|
|
9
|
+
import { isAPIClientError, formatDateTime, OAUTH_FLOW_TIMEOUT } from './chunk-HXZQWMKE.js';
|
|
10
10
|
import { useInitialization } from './chunk-WKJ47GIW.js';
|
|
11
11
|
import { useOrganization } from './chunk-DD3CCMCZ.js';
|
|
12
12
|
import { useElevasisServices } from './chunk-5WWZXCS5.js';
|
|
@@ -1874,6 +1874,8 @@ function MemberConfigModal({ opened, onClose, member }) {
|
|
|
1874
1874
|
] })
|
|
1875
1875
|
] }) });
|
|
1876
1876
|
}
|
|
1877
|
+
var OAUTH_COMPLETION_CHANNEL = "elevasis-oauth";
|
|
1878
|
+
var OAUTH_COMPLETION_STORAGE_KEY = "elevasis:oauth-complete";
|
|
1877
1879
|
function useOAuthFlow({ apiUrl }) {
|
|
1878
1880
|
const [isAuthorizing, setIsAuthorizing] = useState(false);
|
|
1879
1881
|
const [error, setError] = useState(null);
|
|
@@ -1903,15 +1905,15 @@ function useOAuthFlow({ apiUrl }) {
|
|
|
1903
1905
|
if (!popup) {
|
|
1904
1906
|
throw new Error("popup_blocked");
|
|
1905
1907
|
}
|
|
1906
|
-
await waitForOAuthCallback(popup);
|
|
1908
|
+
await waitForOAuthCallback(popup, Date.now());
|
|
1907
1909
|
} catch (err) {
|
|
1908
1910
|
const rawError = err instanceof Error ? err.message : "unknown";
|
|
1909
1911
|
if (rawError.includes("popup_blocked")) {
|
|
1910
1912
|
setError("Please enable popups and try again");
|
|
1911
|
-
} else if (rawError.includes("cancelled")) {
|
|
1912
|
-
setError("Authorization cancelled");
|
|
1913
1913
|
} else if (rawError.includes("timeout")) {
|
|
1914
1914
|
setError("Authorization timed out. Please try again.");
|
|
1915
|
+
} else if (rawError.includes("popup_closed")) {
|
|
1916
|
+
setError("Authorization was cancelled.");
|
|
1915
1917
|
} else if (rawError.includes("token_exchange_failed")) {
|
|
1916
1918
|
setError("Failed to obtain access token. Please try again.");
|
|
1917
1919
|
} else if (rawError.includes("invalid_state")) {
|
|
@@ -1928,43 +1930,76 @@ function useOAuthFlow({ apiUrl }) {
|
|
|
1928
1930
|
},
|
|
1929
1931
|
[isReady, organizationId, apiUrl]
|
|
1930
1932
|
);
|
|
1931
|
-
const waitForOAuthCallback = (popup) => {
|
|
1933
|
+
const waitForOAuthCallback = (popup, startedAt) => {
|
|
1932
1934
|
return new Promise((resolve, reject) => {
|
|
1933
|
-
|
|
1934
|
-
|
|
1935
|
-
|
|
1936
|
-
|
|
1935
|
+
let broadcastChannel = null;
|
|
1936
|
+
const complete = (data) => {
|
|
1937
|
+
const payload = parseOAuthCompletionPayload(data, startedAt);
|
|
1938
|
+
if (!payload) return;
|
|
1939
|
+
cleanup();
|
|
1940
|
+
if (payload.status === "success") {
|
|
1941
|
+
resolve();
|
|
1942
|
+
} else {
|
|
1943
|
+
reject(new Error(payload.error || "oauth_failed"));
|
|
1937
1944
|
}
|
|
1938
|
-
|
|
1939
|
-
|
|
1940
|
-
|
|
1941
|
-
|
|
1942
|
-
|
|
1943
|
-
|
|
1944
|
-
|
|
1945
|
+
};
|
|
1946
|
+
const messageHandler = (event) => {
|
|
1947
|
+
if (!isTrustedCallbackOrigin(event.origin)) return;
|
|
1948
|
+
complete(event.data);
|
|
1949
|
+
};
|
|
1950
|
+
const storageHandler = (event) => {
|
|
1951
|
+
if (event.key !== OAUTH_COMPLETION_STORAGE_KEY || !event.newValue) return;
|
|
1952
|
+
try {
|
|
1953
|
+
complete(JSON.parse(event.newValue));
|
|
1954
|
+
} catch {
|
|
1945
1955
|
}
|
|
1946
1956
|
};
|
|
1947
|
-
|
|
1948
|
-
const checkClosed = setInterval(() => {
|
|
1957
|
+
const rejectIfPopupClosed = () => {
|
|
1949
1958
|
if (popup.closed) {
|
|
1950
1959
|
cleanup();
|
|
1951
|
-
reject(new Error("
|
|
1960
|
+
reject(new Error("popup_closed"));
|
|
1952
1961
|
}
|
|
1953
|
-
}
|
|
1962
|
+
};
|
|
1963
|
+
window.addEventListener("message", messageHandler);
|
|
1964
|
+
window.addEventListener("storage", storageHandler);
|
|
1965
|
+
window.addEventListener("focus", rejectIfPopupClosed);
|
|
1966
|
+
if ("BroadcastChannel" in window) {
|
|
1967
|
+
broadcastChannel = new BroadcastChannel(OAUTH_COMPLETION_CHANNEL);
|
|
1968
|
+
broadcastChannel.onmessage = (event) => complete(event.data);
|
|
1969
|
+
}
|
|
1954
1970
|
const timeout = setTimeout(() => {
|
|
1955
1971
|
cleanup();
|
|
1956
|
-
popup.close();
|
|
1957
1972
|
reject(new Error("timeout"));
|
|
1958
1973
|
}, OAUTH_FLOW_TIMEOUT);
|
|
1959
1974
|
const cleanup = () => {
|
|
1960
|
-
clearInterval(checkClosed);
|
|
1961
1975
|
clearTimeout(timeout);
|
|
1976
|
+
broadcastChannel?.close();
|
|
1977
|
+
window.removeEventListener("focus", rejectIfPopupClosed);
|
|
1978
|
+
window.removeEventListener("storage", storageHandler);
|
|
1962
1979
|
window.removeEventListener("message", messageHandler);
|
|
1963
1980
|
};
|
|
1964
1981
|
});
|
|
1965
1982
|
};
|
|
1966
1983
|
return { authorize, isAuthorizing, error };
|
|
1967
1984
|
}
|
|
1985
|
+
function parseOAuthCompletionPayload(data, startedAt) {
|
|
1986
|
+
if (!data || typeof data !== "object") return null;
|
|
1987
|
+
const payload = data;
|
|
1988
|
+
if (payload.type !== "oauth-complete") return null;
|
|
1989
|
+
if (payload.completedAt && payload.completedAt < startedAt) return null;
|
|
1990
|
+
return payload;
|
|
1991
|
+
}
|
|
1992
|
+
function isTrustedCallbackOrigin(origin) {
|
|
1993
|
+
if (origin === window.location.origin || origin === "https://app.elevasis.io") {
|
|
1994
|
+
return true;
|
|
1995
|
+
}
|
|
1996
|
+
try {
|
|
1997
|
+
const url = new URL(origin);
|
|
1998
|
+
return url.protocol === "http:" && ["localhost", "127.0.0.1", "[::1]"].includes(url.hostname);
|
|
1999
|
+
} catch {
|
|
2000
|
+
return false;
|
|
2001
|
+
}
|
|
2002
|
+
}
|
|
1968
2003
|
function EditCredentialModal({ apiUrl, credential, onClose }) {
|
|
1969
2004
|
const [credentialName, setCredentialName] = useState("");
|
|
1970
2005
|
const [nameError, setNameError] = useState(null);
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { ChatHeader, ChatSidebar } from './chunk-ROSMICXG.js';
|
|
2
|
-
import { getOrganizationGraphLensConfig, useOrganizationGraphFilters, createOrganizationGraphFilters, buildOrganizationGraph, filterOrganizationGraph, getCommandViewVisibilityProjection, resolveOrganizationGraphPathTrace, getCommandViewOperationalOverview, getCommandViewSelectionOperationalSummary, buildCommandViewDrillDownSections, expandAroundGraph, getConnectedHiddenResourceIds, FilterPanel, OrganizationGraphDetailPanel, ExpandAroundPanel, CommandViewSidebarContent, getOrganizationGraphTraceNodeOptions, formatOrganizationGraphTraceNodeOptionLabel } from './chunk-
|
|
2
|
+
import { getOrganizationGraphLensConfig, useOrganizationGraphFilters, createOrganizationGraphFilters, buildOrganizationGraph, filterOrganizationGraph, getCommandViewVisibilityProjection, resolveOrganizationGraphPathTrace, getCommandViewOperationalOverview, getCommandViewSelectionOperationalSummary, buildCommandViewDrillDownSections, expandAroundGraph, getConnectedHiddenResourceIds, FilterPanel, OrganizationGraphDetailPanel, ExpandAroundPanel, CommandViewSidebarContent, getOrganizationGraphTraceNodeOptions, formatOrganizationGraphTraceNodeOptionLabel } from './chunk-3DUOPXOJ.js';
|
|
3
3
|
import { SubshellLoader } from './chunk-JDNEWB5F.js';
|
|
4
4
|
import { resolveSemanticIconComponent } from './chunk-JCGD4GM6.js';
|
|
5
5
|
import { SubshellSidebarLoader } from './chunk-XQQEKWTL.js';
|
|
6
|
-
import { BaseNode, useGraphTheme, BaseEdge, ExecutionStats, UnifiedWorkflowGraph, WorkflowExecutionTimeline, AgentExecutionVisualizer, AgentExecutionTimeline, GraphBackground, GraphFitViewButton, GraphFitViewHandler } from './chunk-
|
|
6
|
+
import { BaseNode, useGraphTheme, BaseEdge, ExecutionStats, UnifiedWorkflowGraph, WorkflowExecutionTimeline, AgentExecutionVisualizer, AgentExecutionTimeline, GraphBackground, GraphFitViewButton, GraphFitViewHandler } from './chunk-QNL7UI5G.js';
|
|
7
7
|
import { FormFieldRenderer } from './chunk-3MEXPLWT.js';
|
|
8
|
-
import { ResourceHealthPanel } from './chunk-
|
|
8
|
+
import { ResourceHealthPanel } from './chunk-OHGNCWJP.js';
|
|
9
9
|
import { useCyberColors, CyberDonut } from './chunk-CW3UNAF2.js';
|
|
10
10
|
import { AppShellLoader } from './chunk-RYTEQBAO.js';
|
|
11
11
|
import { PageContainer } from './chunk-BZZCNLT6.js';
|
|
@@ -13,10 +13,10 @@ import { SubshellSidebarSection } from './chunk-IIMU5YAJ.js';
|
|
|
13
13
|
import { CustomModal, ConfirmationModal } from './chunk-KVJ3LFH2.js';
|
|
14
14
|
import { useGraphHighlighting, calculateGraphHeight, Graph_module_css_default, GRAPH_CONSTANTS } from './chunk-22UVE3RA.js';
|
|
15
15
|
import { getResourceStatusColor, useTimelineData, useAgentIterationData, getStatusIcon } from './chunk-E4WQGJNS.js';
|
|
16
|
-
import { useErrorDetail, useExecution, useArchivedLogs, useDeleteExecution, useRetryExecution, useCancelExecution, useCommandQueueTotals, useStatusFilter, useResourceSearch, useResourcesDomainFilters, usePaginationState, useResources, useRecentExecutionsByResource, filterByDomainFilters, collectResourceFilterFacets, useResourceDefinition, isSessionCapable, useDeleteTask, useCommandQueue, useSubmitAction, useCommandViewData, useCommandViewStats, useCommandViewStore, useResourceExecutions, useCheckpointTasks, COMMAND_VIEW_VISUALIZATION_MODES, useExecutionPanelState, useDeleteSession, useCreateSession, useSessions, useSessionExecutions, useSession, useBulkDeleteExecutions, getCommandViewGraphPositions } from './chunk-
|
|
17
|
-
import { showApiErrorNotification, showSuccessNotification } from './chunk-
|
|
16
|
+
import { useErrorDetail, useExecution, useArchivedLogs, useDeleteExecution, useRetryExecution, useCancelExecution, useCommandQueueTotals, useStatusFilter, useResourceSearch, useResourcesDomainFilters, usePaginationState, useResources, useRecentExecutionsByResource, filterByDomainFilters, collectResourceFilterFacets, useResourceDefinition, isSessionCapable, useDeleteTask, useCommandQueue, useSubmitAction, useCommandViewData, useCommandViewStats, useCommandViewStore, useResourceExecutions, useCheckpointTasks, COMMAND_VIEW_VISUALIZATION_MODES, useExecutionPanelState, useDeleteSession, useCreateSession, useSessions, useSessionExecutions, useSession, useBulkDeleteExecutions, getCommandViewGraphPositions } from './chunk-HNFQCOD2.js';
|
|
17
|
+
import { showApiErrorNotification, showSuccessNotification } from './chunk-CEHUFNAL.js';
|
|
18
18
|
import { useMergedExecution } from './chunk-3ZMAGTWF.js';
|
|
19
|
-
import { JsonViewer, CardHeader, PageTitleCaption, CollapsibleSection, TabCountBadge, ResourceCard, ContextViewer, EmptyState, APIErrorAlert } from './chunk-
|
|
19
|
+
import { JsonViewer, CardHeader, PageTitleCaption, CollapsibleSection, TabCountBadge, ResourceCard, ContextViewer, EmptyState, APIErrorAlert } from './chunk-6WXDE5LZ.js';
|
|
20
20
|
import { StyledMarkdown } from './chunk-3KMDHCAR.js';
|
|
21
21
|
import { useOptionalElevasisFeatures, useElevasisFeatures } from './chunk-V3HUIZJX.js';
|
|
22
22
|
import { SubshellContentContainer } from './chunk-TKAYX2SP.js';
|
|
@@ -24,7 +24,7 @@ import { NavigationButton } from './chunk-NYBEU5TE.js';
|
|
|
24
24
|
import { useRouterContext } from './chunk-Q7DJKLEN.js';
|
|
25
25
|
import { useAppearance } from './chunk-E565XMTQ.js';
|
|
26
26
|
import { topbarHeight } from './chunk-DT3QYZVU.js';
|
|
27
|
-
import { getErrorInfo, formatErrorMessage, getResourceIcon, formatRelativeTime, PAGE_SIZE_DEFAULT, debounce } from './chunk-
|
|
27
|
+
import { getErrorInfo, formatErrorMessage, getResourceIcon, formatRelativeTime, PAGE_SIZE_DEFAULT, debounce } from './chunk-HXZQWMKE.js';
|
|
28
28
|
import { ResourceStatusColors, toWorkflowLogMessages } from './chunk-KRWALB24.js';
|
|
29
29
|
import { useInitialization } from './chunk-WKJ47GIW.js';
|
|
30
30
|
import { useOrganization } from './chunk-DD3CCMCZ.js';
|
|
@@ -3826,6 +3826,7 @@ function getNodeThemeByKind(tokens) {
|
|
|
3826
3826
|
surface: mixColors(tokens.primary, tokens.success, 0.48),
|
|
3827
3827
|
entity: mixColors(tokens.primary, tokens.error, 0.4),
|
|
3828
3828
|
capability: mixColors(tokens.primary, tokens.success, 0.72),
|
|
3829
|
+
stage: mixColors(tokens.primary, tokens.warning, 0.32),
|
|
3829
3830
|
resource: mixColors(tokens.primary, tokens.warning, 0.58),
|
|
3830
3831
|
knowledge: mixColors(tokens.primary, tokens.text, 0.6)
|
|
3831
3832
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getErrorInfo, formatErrorMessage, getErrorTitle } from './chunk-
|
|
1
|
+
import { getErrorInfo, formatErrorMessage, getErrorTitle } from './chunk-HXZQWMKE.js';
|
|
2
2
|
import { useElevasisServices } from './chunk-5WWZXCS5.js';
|
|
3
3
|
import { useQuery, useQueryClient, useMutation } from '@tanstack/react-query';
|
|
4
4
|
import { notifications } from '@mantine/notifications';
|