@elevasis/ui 2.75.0 → 2.76.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 +277 -249
- package/dist/app/index.js +12 -11
- package/dist/auth/index.js +6 -7
- package/dist/charts/index.js +6 -7
- package/dist/{chunk-CRPH5AAB.js → chunk-2GIHWU5O.js} +4 -3
- package/dist/chunk-2Y6AKWGU.js +42 -0
- package/dist/chunk-3QYRZSHP.js +854 -0
- package/dist/{chunk-L3NBMLRN.js → chunk-3RK2NNJX.js} +1 -1
- package/dist/{chunk-R6NMRXNO.js → chunk-4WLAVUPS.js} +1 -1
- package/dist/{chunk-DTEGVSJ6.js → chunk-5R4I2PAN.js} +9 -43
- package/dist/chunk-6B4ZPBQJ.js +7 -0
- package/dist/{chunk-QFS2GZMV.js → chunk-73G3I5HJ.js} +160 -160
- package/dist/{chunk-7OOFMEX6.js → chunk-BFLYDVEN.js} +28 -41
- package/dist/{chunk-VWGCURZF.js → chunk-BG6PWDJ3.js} +381 -381
- package/dist/{chunk-5VF5LPYS.js → chunk-BV2RNLPP.js} +1 -1
- package/dist/{chunk-NMHQAYZU.js → chunk-CTT4RDXE.js} +150 -151
- package/dist/chunk-E2LJ3FRA.js +237 -0
- package/dist/{chunk-5RH6NYZH.js → chunk-EFQLXRYT.js} +1 -2
- package/dist/{chunk-M6VAZAQW.js → chunk-EVNLJHDD.js} +3 -3
- package/dist/{chunk-NYIIRZSA.js → chunk-GDQQX5SL.js} +4 -42
- package/dist/{chunk-IYATYH5I.js → chunk-GFSOQH3N.js} +1 -1
- package/dist/{chunk-G7O4CBMC.js → chunk-H5AEYSVX.js} +164 -3
- package/dist/{chunk-ZFISGKYW.js → chunk-IIEZXXDD.js} +1 -1
- package/dist/{chunk-5SLRGUC4.js → chunk-INCEZAM3.js} +1 -1
- package/dist/{chunk-ZG6YJUT4.js → chunk-JZQNUQE4.js} +1 -1
- package/dist/{chunk-SB3IHM5Y.js → chunk-K55TU6CC.js} +2023 -1700
- package/dist/chunk-KB5CAN5D.js +33 -0
- package/dist/{chunk-OGHTJKBV.js → chunk-KMA4FOSV.js} +5682 -5675
- package/dist/{chunk-ICHDIVQO.js → chunk-KXNRTJAE.js} +1 -1
- package/dist/{chunk-MLHZUN2X.js → chunk-MGAELVTZ.js} +12 -12
- package/dist/chunk-MKH2KOAO.js +39 -0
- package/dist/{chunk-6BJ5HMMC.js → chunk-NAPXMYFW.js} +35 -362
- package/dist/{chunk-GDTK33QT.js → chunk-OGG3QJYW.js} +14 -5
- package/dist/{chunk-SN7X5N2A.js → chunk-P6HHXMLJ.js} +1 -1
- package/dist/{chunk-SEYOVNS5.js → chunk-QAILYRC2.js} +1 -1
- package/dist/{chunk-RBGVNPA6.js → chunk-RXZ3XDBM.js} +1 -1
- package/dist/{chunk-2ZRY3ARL.js → chunk-SPW6UA6B.js} +1 -1
- package/dist/{chunk-3H5DIJN7.js → chunk-SVZR4GYA.js} +1 -1
- package/dist/{chunk-47YJVIZE.js → chunk-UEY4AB3R.js} +789 -66
- package/dist/{chunk-LFLM723H.js → chunk-UL6MPMKY.js} +1 -1
- package/dist/{chunk-TX3UHDL5.js → chunk-WELN7DDV.js} +2 -2
- package/dist/{chunk-D3XXPCCK.js → chunk-WJN2VVVJ.js} +1 -1
- package/dist/{chunk-DMSTDZCJ.js → chunk-XODQUPFW.js} +11 -11
- package/dist/components/index.d.ts +135 -25
- package/dist/components/index.js +2165 -1996
- package/dist/components/navigation/index.js +7 -8
- package/dist/features/auth/index.d.ts +35 -3716
- package/dist/features/auth/index.js +9 -10
- package/dist/features/clients/index.js +18 -12
- package/dist/features/content/index.js +27 -27
- package/dist/features/crm/index.css +59 -59
- package/dist/features/crm/index.d.ts +18 -1
- package/dist/features/crm/index.js +13 -11
- package/dist/features/dashboard/index.css +59 -59
- package/dist/features/dashboard/index.js +8 -9
- package/dist/features/delivery/index.d.ts +3 -0
- package/dist/features/delivery/index.js +21 -20
- package/dist/features/knowledge/index.js +6 -7
- package/dist/features/lead-gen/index.css +59 -59
- package/dist/features/lead-gen/index.d.ts +3903 -2
- package/dist/features/lead-gen/index.js +15 -13
- package/dist/features/monitoring/index.js +10 -11
- package/dist/features/monitoring/requests/index.css +59 -59
- package/dist/features/monitoring/requests/index.js +8 -9
- package/dist/features/notes/index.js +4 -4
- package/dist/features/operations/index.css +59 -59
- package/dist/features/operations/index.js +13 -15
- package/dist/features/seo/index.css +659 -0
- package/dist/features/seo/index.d.ts +3962 -1
- package/dist/features/seo/index.js +31 -2
- package/dist/features/settings/index.css +59 -59
- package/dist/features/settings/index.d.ts +79 -3742
- package/dist/features/settings/index.js +10 -12
- package/dist/hooks/access/index.js +6 -7
- package/dist/hooks/delivery/index.css +59 -59
- package/dist/hooks/delivery/index.d.ts +13 -4
- package/dist/hooks/delivery/index.js +3 -3
- package/dist/hooks/published.d.ts +63 -25
- package/dist/hooks/published.js +19 -19
- package/dist/initialization/index.d.ts +35 -3716
- package/dist/knowledge/index.js +11 -11
- package/dist/layout/index.d.ts +55 -2
- package/dist/layout/index.js +10 -10
- package/dist/organization/index.css +59 -59
- package/dist/profile/index.d.ts +64 -3716
- package/dist/provider/index.d.ts +3 -0
- package/dist/provider/index.js +6 -7
- package/dist/provider/published.d.ts +3 -0
- package/dist/provider/published.js +6 -7
- package/dist/test-utils/index.js +3 -3
- package/dist/theme/index.js +3 -3
- package/dist/theme/presets/index.js +1 -1
- package/dist/types/index.d.ts +298 -251
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.js +1 -1
- package/package.json +5 -9
- package/src/hooks/README.md +22 -23
- package/dist/chunk-6ZAP3FOA.js +0 -93
- package/dist/chunk-AH52XQB7.js +0 -1
- package/dist/chunk-DVAOCHIF.js +0 -165
- package/dist/chunk-MISHPEJX.js +0 -244
- package/dist/hooks/operations/command-view/utils/transformCommandViewData.d.ts +0 -879
- package/dist/hooks/operations/command-view/utils/transformCommandViewData.js +0 -2
- /package/dist/{chunk-A2SB32YV.js → chunk-5ZK7K7YP.js} +0 -0
package/dist/utils/index.d.ts
CHANGED
|
@@ -553,7 +553,7 @@ declare const GC_TIME_LONG = 1800000;
|
|
|
553
553
|
declare const REFETCH_INTERVAL_DASHBOARD = 60000;
|
|
554
554
|
/** Near-real-time data polling for logs and activities (30s). */
|
|
555
555
|
declare const REFETCH_INTERVAL_REALTIME = 30000;
|
|
556
|
-
/**
|
|
556
|
+
/** Execution detail polling while the run has not reached a terminal status (2s). */
|
|
557
557
|
declare const REFETCH_INTERVAL_RUNNING = 2000;
|
|
558
558
|
/** Execution runner list polling when executions are active (1s). */
|
|
559
559
|
declare const REFETCH_INTERVAL_RUNNING_FAST = 1000;
|
package/dist/utils/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { APIClientError, API_URL, DEBOUNCE_FILTER, DEBOUNCE_SLIDER, GC_TIME_LONG, GC_TIME_MEDIUM, GC_TIME_SHORT, LIMIT_ACTIVITY_FEED, OAUTH_FLOW_TIMEOUT, PAGE_SIZE_DEFAULT, STALE_TIME_ADMIN, STALE_TIME_DEFAULT, STALE_TIME_MONITORING, formatChartAxisDate, formatDate, formatDateTime, formatErrorMessage, formatRelativeTime, formatTimeAgo, getErrorInfo, getErrorTitle, getResourceColor, getResourceIcon, getSystemReadinessServerErrorDetails, isAPIClientError, restoreConsole, setupBrowserMocks, suppressKnownWarnings, validateEmail } from '../chunk-
|
|
1
|
+
export { APIClientError, API_URL, DEBOUNCE_FILTER, DEBOUNCE_SLIDER, GC_TIME_LONG, GC_TIME_MEDIUM, GC_TIME_SHORT, LIMIT_ACTIVITY_FEED, OAUTH_FLOW_TIMEOUT, PAGE_SIZE_DEFAULT, STALE_TIME_ADMIN, STALE_TIME_DEFAULT, STALE_TIME_MONITORING, formatChartAxisDate, formatDate, formatDateTime, formatErrorMessage, formatRelativeTime, formatTimeAgo, getErrorInfo, getErrorTitle, getResourceColor, getResourceIcon, getSystemReadinessServerErrorDetails, isAPIClientError, restoreConsole, setupBrowserMocks, suppressKnownWarnings, validateEmail } from '../chunk-5ZK7K7YP.js';
|
|
2
2
|
export { REFETCH_INTERVAL_DASHBOARD, REFETCH_INTERVAL_REALTIME, REFETCH_INTERVAL_RUNNING, REFETCH_INTERVAL_RUNNING_FAST, SSE_CLOSE_GRACE_PERIOD, SSE_TOKEN_REFRESH_DELAY, WS_MAX_RETRIES_BEFORE_ERROR, WS_RECONNECT_BASE_DELAY, WS_RECONNECT_MAX_DELAY, debounce, getTimeRangeDates, getTimeRangeLabel } from '../chunk-Y6I3IC45.js';
|
|
3
3
|
export { ResourceStatusColors } from '../chunk-6SSQGWK7.js';
|
|
4
4
|
import '../chunk-TVTSASST.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elevasis/ui",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.76.0",
|
|
4
4
|
"description": "UI components and platform-aware hooks for building custom frontends on the Elevasis platform",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -208,10 +208,6 @@
|
|
|
208
208
|
"types": "./dist/hooks/delivery/index.d.ts",
|
|
209
209
|
"import": "./dist/hooks/delivery/index.js"
|
|
210
210
|
},
|
|
211
|
-
"./hooks/operations/command-view/utils/transformCommandViewData": {
|
|
212
|
-
"types": "./dist/hooks/operations/command-view/utils/transformCommandViewData.d.ts",
|
|
213
|
-
"import": "./dist/hooks/operations/command-view/utils/transformCommandViewData.js"
|
|
214
|
-
},
|
|
215
211
|
"./test-utils": {
|
|
216
212
|
"types": "./dist/test-utils/index.d.ts",
|
|
217
213
|
"import": "./dist/test-utils/index.js"
|
|
@@ -282,11 +278,11 @@
|
|
|
282
278
|
"typescript": "5.9.2",
|
|
283
279
|
"vite": "^7.0.0",
|
|
284
280
|
"vitest": "^3.2.4",
|
|
285
|
-
"@elevasis/sdk": "1.
|
|
286
|
-
"@repo/
|
|
287
|
-
"@repo/core": "0.67.0",
|
|
281
|
+
"@elevasis/sdk": "1.51.0",
|
|
282
|
+
"@repo/eslint-config": "0.0.0",
|
|
288
283
|
"@repo/typescript-config": "0.0.0",
|
|
289
|
-
"@repo/
|
|
284
|
+
"@repo/elevasis-core": "1.0.0",
|
|
285
|
+
"@repo/core": "0.68.0"
|
|
290
286
|
},
|
|
291
287
|
"dependencies": {
|
|
292
288
|
"@dagrejs/dagre": "^1.1.4",
|
package/src/hooks/README.md
CHANGED
|
@@ -1,23 +1,22 @@
|
|
|
1
|
-
# Hooks
|
|
2
|
-
|
|
3
|
-
The hooks barrel is the published headless hook surface for the UI package.
|
|
4
|
-
|
|
5
|
-
## Grouped Areas
|
|
6
|
-
|
|
7
|
-
- Execution and workflow hooks
|
|
8
|
-
- Scheduling hooks
|
|
9
|
-
- Monitoring, observability, and notification hooks
|
|
10
|
-
- Session and SSE hooks
|
|
11
|
-
- Operations hooks, including command-view helpers
|
|
12
|
-
- Feature access, table state, and service helpers
|
|
13
|
-
- Acquisition and delivery hooks
|
|
14
|
-
|
|
15
|
-
## Published Subpaths
|
|
16
|
-
|
|
17
|
-
- `./hooks`
|
|
18
|
-
- `./hooks/delivery`
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
- This barrel is intentionally headless. It should not pull in the visual component layer.
|
|
1
|
+
# Hooks
|
|
2
|
+
|
|
3
|
+
The hooks barrel is the published headless hook surface for the UI package.
|
|
4
|
+
|
|
5
|
+
## Grouped Areas
|
|
6
|
+
|
|
7
|
+
- Execution and workflow hooks
|
|
8
|
+
- Scheduling hooks
|
|
9
|
+
- Monitoring, observability, and notification hooks
|
|
10
|
+
- Session and SSE hooks
|
|
11
|
+
- Operations hooks, including command-view helpers
|
|
12
|
+
- Feature access, table state, and service helpers
|
|
13
|
+
- Acquisition and delivery hooks
|
|
14
|
+
|
|
15
|
+
## Published Subpaths
|
|
16
|
+
|
|
17
|
+
- `./hooks`
|
|
18
|
+
- `./hooks/delivery`
|
|
19
|
+
|
|
20
|
+
## Notes
|
|
21
|
+
|
|
22
|
+
- This barrel is intentionally headless. It should not pull in the visual component layer.
|
package/dist/chunk-6ZAP3FOA.js
DELETED
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
// src/hooks/operations/command-view/utils/transformCommandViewData.ts
|
|
2
|
-
function transformCommandViewData(data) {
|
|
3
|
-
const nodes = [
|
|
4
|
-
// Map triggers (resourceId -> id)
|
|
5
|
-
...data.triggers.map((trigger) => ({
|
|
6
|
-
id: trigger.resourceId,
|
|
7
|
-
type: "trigger",
|
|
8
|
-
name: trigger.name,
|
|
9
|
-
description: trigger.description,
|
|
10
|
-
status: trigger.status,
|
|
11
|
-
triggerType: trigger.triggerType,
|
|
12
|
-
webhookPath: trigger.webhookPath,
|
|
13
|
-
schedule: trigger.schedule
|
|
14
|
-
})),
|
|
15
|
-
// Map agents (resourceId -> id)
|
|
16
|
-
...data.agents.map((agent) => {
|
|
17
|
-
const agentWithStats = agent;
|
|
18
|
-
return {
|
|
19
|
-
id: agent.resourceId,
|
|
20
|
-
type: "agent",
|
|
21
|
-
name: agent.name,
|
|
22
|
-
description: agent.description,
|
|
23
|
-
status: agent.status,
|
|
24
|
-
modelProvider: agent.modelProvider,
|
|
25
|
-
modelId: agent.modelId,
|
|
26
|
-
toolCount: agent.toolCount,
|
|
27
|
-
hasMemory: agent.hasMemory,
|
|
28
|
-
stats: agentWithStats.stats || null
|
|
29
|
-
// Preserve stats if present
|
|
30
|
-
};
|
|
31
|
-
}),
|
|
32
|
-
// Map workflows (resourceId -> id)
|
|
33
|
-
...data.workflows.map((workflow) => {
|
|
34
|
-
const workflowWithStats = workflow;
|
|
35
|
-
return {
|
|
36
|
-
id: workflow.resourceId,
|
|
37
|
-
type: "workflow",
|
|
38
|
-
name: workflow.name,
|
|
39
|
-
description: workflow.description,
|
|
40
|
-
status: workflow.status,
|
|
41
|
-
stepCount: workflow.stepCount,
|
|
42
|
-
entryPoint: workflow.entryPoint,
|
|
43
|
-
stats: workflowWithStats.stats || null
|
|
44
|
-
// Preserve stats if present
|
|
45
|
-
};
|
|
46
|
-
}),
|
|
47
|
-
// Map integrations (resourceId -> id)
|
|
48
|
-
...data.integrations.map((integration) => ({
|
|
49
|
-
id: integration.resourceId,
|
|
50
|
-
type: "integration",
|
|
51
|
-
name: integration.name,
|
|
52
|
-
description: integration.description,
|
|
53
|
-
status: integration.status,
|
|
54
|
-
provider: integration.provider,
|
|
55
|
-
connectionStatus: "connected",
|
|
56
|
-
// Default - runtime status not yet available
|
|
57
|
-
credentialName: integration.credentialName
|
|
58
|
-
})),
|
|
59
|
-
// Map external resources (resourceId -> id)
|
|
60
|
-
...(data.externalResources ?? []).map((external) => ({
|
|
61
|
-
id: external.resourceId,
|
|
62
|
-
type: "external",
|
|
63
|
-
name: external.name,
|
|
64
|
-
description: external.description,
|
|
65
|
-
status: external.status,
|
|
66
|
-
platform: external.platform,
|
|
67
|
-
platformUrl: external.platformUrl,
|
|
68
|
-
externalId: external.externalId
|
|
69
|
-
})),
|
|
70
|
-
// Map human checkpoints to human nodes (resourceId -> id)
|
|
71
|
-
...(data.humanCheckpoints ?? []).map((humanCheckpoint) => {
|
|
72
|
-
const checkpointWithStats = humanCheckpoint;
|
|
73
|
-
return {
|
|
74
|
-
id: humanCheckpoint.resourceId,
|
|
75
|
-
type: "human",
|
|
76
|
-
name: humanCheckpoint.name,
|
|
77
|
-
description: humanCheckpoint.description ?? "",
|
|
78
|
-
status: humanCheckpoint.status,
|
|
79
|
-
stats: checkpointWithStats.stats || null
|
|
80
|
-
// Preserve stats if present
|
|
81
|
-
};
|
|
82
|
-
})
|
|
83
|
-
];
|
|
84
|
-
const edges = data.edges.map((edge, index) => ({
|
|
85
|
-
id: edge.id || `edge-${index}`,
|
|
86
|
-
source: edge.source,
|
|
87
|
-
target: edge.target,
|
|
88
|
-
relationship: edge.relationship
|
|
89
|
-
}));
|
|
90
|
-
return { nodes, edges };
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
export { transformCommandViewData };
|
package/dist/chunk-AH52XQB7.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
|
package/dist/chunk-DVAOCHIF.js
DELETED
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
import { deriveActions } from './chunk-NYIIRZSA.js';
|
|
2
|
-
import { acquisitionListKeys } from './chunk-SB3IHM5Y.js';
|
|
3
|
-
import { showApiErrorNotification, showSuccessNotification } from './chunk-ICHDIVQO.js';
|
|
4
|
-
import { useElevasisServices } from './chunk-BI5VDO2K.js';
|
|
5
|
-
import { useQuery, useQueryClient, useMutation } from '@tanstack/react-query';
|
|
6
|
-
import { useMemo } from 'react';
|
|
7
|
-
|
|
8
|
-
var leadGenArtifactKeys = {
|
|
9
|
-
all: ["lead-gen-artifacts"],
|
|
10
|
-
// ownerId is nullable/undefined here to match CreateArtifactRequest -- an
|
|
11
|
-
// 'organization'-owned artifact has no single owning entity row. See
|
|
12
|
-
// CreateArtifactRequestSchema (business/acquisition/api-schemas.ts).
|
|
13
|
-
list: (organizationId, ownerKind, ownerId) => [...leadGenArtifactKeys.all, organizationId, ownerKind, ownerId]
|
|
14
|
-
};
|
|
15
|
-
function useArtifacts({ ownerKind, ownerId }) {
|
|
16
|
-
const { apiRequest, isReady, workOSOrganizationId } = useElevasisServices();
|
|
17
|
-
return useQuery({
|
|
18
|
-
queryKey: leadGenArtifactKeys.list(workOSOrganizationId, ownerKind, ownerId),
|
|
19
|
-
queryFn: () => apiRequest(
|
|
20
|
-
`/acquisition/artifacts?ownerKind=${encodeURIComponent(ownerKind)}&ownerId=${encodeURIComponent(ownerId)}`
|
|
21
|
-
),
|
|
22
|
-
enabled: isReady && !!ownerId
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
function useCreateArtifact() {
|
|
26
|
-
const { apiRequest, workOSOrganizationId } = useElevasisServices();
|
|
27
|
-
const queryClient = useQueryClient();
|
|
28
|
-
return useMutation({
|
|
29
|
-
mutationFn: (body) => apiRequest("/acquisition/artifacts", {
|
|
30
|
-
method: "POST",
|
|
31
|
-
body: JSON.stringify(body)
|
|
32
|
-
}),
|
|
33
|
-
onSuccess: (_, variables) => {
|
|
34
|
-
queryClient.invalidateQueries({
|
|
35
|
-
queryKey: leadGenArtifactKeys.list(workOSOrganizationId, variables.ownerKind, variables.ownerId)
|
|
36
|
-
});
|
|
37
|
-
showSuccessNotification("Artifact created");
|
|
38
|
-
},
|
|
39
|
-
onError: (error) => {
|
|
40
|
-
showApiErrorNotification(error);
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
var leadGenListMemberKeys = {
|
|
45
|
-
all: ["lead-gen-list-members"],
|
|
46
|
-
list: (organizationId, listId) => [...leadGenListMemberKeys.all, organizationId, "list", listId],
|
|
47
|
-
detail: (organizationId, memberId) => [...leadGenListMemberKeys.all, organizationId, "detail", memberId]
|
|
48
|
-
};
|
|
49
|
-
function useListMembers({ listId }) {
|
|
50
|
-
const { apiRequest, isReady, workOSOrganizationId } = useElevasisServices();
|
|
51
|
-
return useQuery({
|
|
52
|
-
queryKey: leadGenListMemberKeys.list(workOSOrganizationId, listId),
|
|
53
|
-
queryFn: () => apiRequest(`/acquisition/lists/${listId}/members`),
|
|
54
|
-
enabled: isReady && !!listId
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
function useListMember(memberId) {
|
|
58
|
-
const { apiRequest, isReady, workOSOrganizationId } = useElevasisServices();
|
|
59
|
-
return useQuery({
|
|
60
|
-
queryKey: leadGenListMemberKeys.detail(workOSOrganizationId, memberId),
|
|
61
|
-
queryFn: () => apiRequest(`/acquisition/list-members/${memberId}`),
|
|
62
|
-
enabled: isReady && !!memberId
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
function useTransitionListMember() {
|
|
66
|
-
const { apiRequest, workOSOrganizationId } = useElevasisServices();
|
|
67
|
-
const queryClient = useQueryClient();
|
|
68
|
-
return useMutation({
|
|
69
|
-
mutationFn: async (input) => {
|
|
70
|
-
const { memberId, pipelineKey, stageKey, stateKey, reason, expectedUpdatedAt } = input;
|
|
71
|
-
await apiRequest(`/acquisition/list-members/${memberId}/transition`, {
|
|
72
|
-
method: "PATCH",
|
|
73
|
-
body: JSON.stringify({
|
|
74
|
-
pipelineKey,
|
|
75
|
-
stageKey,
|
|
76
|
-
...stateKey !== void 0 ? { stateKey } : {},
|
|
77
|
-
...reason !== void 0 ? { reason } : {},
|
|
78
|
-
...expectedUpdatedAt !== void 0 ? { expectedUpdatedAt } : {}
|
|
79
|
-
})
|
|
80
|
-
});
|
|
81
|
-
},
|
|
82
|
-
onSuccess: (_, variables) => {
|
|
83
|
-
queryClient.invalidateQueries({
|
|
84
|
-
queryKey: leadGenListMemberKeys.detail(workOSOrganizationId, variables.memberId)
|
|
85
|
-
});
|
|
86
|
-
if (variables.listId) {
|
|
87
|
-
queryClient.invalidateQueries({ queryKey: leadGenListMemberKeys.list(workOSOrganizationId, variables.listId) });
|
|
88
|
-
}
|
|
89
|
-
},
|
|
90
|
-
onError: (error) => {
|
|
91
|
-
queryClient.invalidateQueries({ queryKey: leadGenListMemberKeys.all });
|
|
92
|
-
showApiErrorNotification(error);
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
function useDeriveActions(item) {
|
|
97
|
-
return useMemo(() => {
|
|
98
|
-
if (!item) return [];
|
|
99
|
-
if (item.pipeline_key !== "lead-gen") {
|
|
100
|
-
return deriveActions(item);
|
|
101
|
-
}
|
|
102
|
-
return [];
|
|
103
|
-
}, [item]);
|
|
104
|
-
}
|
|
105
|
-
function useUpdateListStatus() {
|
|
106
|
-
const { apiRequest, workOSOrganizationId } = useElevasisServices();
|
|
107
|
-
const queryClient = useQueryClient();
|
|
108
|
-
return useMutation({
|
|
109
|
-
mutationFn: async (input) => {
|
|
110
|
-
await apiRequest(`/acquisition/lists/${input.listId}/status`, {
|
|
111
|
-
method: "PATCH",
|
|
112
|
-
body: JSON.stringify({ status: input.status })
|
|
113
|
-
});
|
|
114
|
-
},
|
|
115
|
-
onSuccess: (_, variables) => {
|
|
116
|
-
queryClient.invalidateQueries({ queryKey: acquisitionListKeys.list(workOSOrganizationId) });
|
|
117
|
-
queryClient.invalidateQueries({ queryKey: acquisitionListKeys.detail(workOSOrganizationId, variables.listId) });
|
|
118
|
-
queryClient.invalidateQueries({ queryKey: acquisitionListKeys.telemetry(workOSOrganizationId) });
|
|
119
|
-
},
|
|
120
|
-
onError: (error) => {
|
|
121
|
-
queryClient.invalidateQueries({ queryKey: acquisitionListKeys.all });
|
|
122
|
-
showApiErrorNotification(error);
|
|
123
|
-
}
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
// src/hooks/lead-gen/useTransitionListCompany.ts
|
|
128
|
-
var leadGenListCompanyKeys = {
|
|
129
|
-
all: ["lead-gen-list-companies"],
|
|
130
|
-
detail: (organizationId, listCompanyId) => [...leadGenListCompanyKeys.all, organizationId, "detail", listCompanyId]
|
|
131
|
-
};
|
|
132
|
-
function useTransitionListCompany() {
|
|
133
|
-
const { apiRequest, workOSOrganizationId } = useElevasisServices();
|
|
134
|
-
const queryClient = useQueryClient();
|
|
135
|
-
return useMutation({
|
|
136
|
-
mutationFn: async (input) => {
|
|
137
|
-
const { listCompanyId, pipelineKey, stageKey, stateKey, reason, expectedUpdatedAt } = input;
|
|
138
|
-
await apiRequest(`/acquisition/list-companies/${listCompanyId}/transition`, {
|
|
139
|
-
method: "PATCH",
|
|
140
|
-
body: JSON.stringify({
|
|
141
|
-
pipelineKey,
|
|
142
|
-
stageKey,
|
|
143
|
-
...stateKey !== void 0 ? { stateKey } : {},
|
|
144
|
-
...reason !== void 0 ? { reason } : {},
|
|
145
|
-
...expectedUpdatedAt !== void 0 ? { expectedUpdatedAt } : {}
|
|
146
|
-
})
|
|
147
|
-
});
|
|
148
|
-
},
|
|
149
|
-
onSuccess: (_, variables) => {
|
|
150
|
-
queryClient.invalidateQueries({
|
|
151
|
-
queryKey: leadGenListCompanyKeys.detail(workOSOrganizationId, variables.listCompanyId)
|
|
152
|
-
});
|
|
153
|
-
if (variables.listId) {
|
|
154
|
-
queryClient.invalidateQueries({ queryKey: acquisitionListKeys.telemetry(workOSOrganizationId) });
|
|
155
|
-
queryClient.invalidateQueries({ queryKey: acquisitionListKeys.detail(workOSOrganizationId, variables.listId) });
|
|
156
|
-
}
|
|
157
|
-
},
|
|
158
|
-
onError: (error) => {
|
|
159
|
-
queryClient.invalidateQueries({ queryKey: leadGenListCompanyKeys.all });
|
|
160
|
-
showApiErrorNotification(error);
|
|
161
|
-
}
|
|
162
|
-
});
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
export { leadGenArtifactKeys, leadGenListCompanyKeys, leadGenListMemberKeys, useArtifacts, useCreateArtifact, useDeriveActions, useListMember, useListMembers, useTransitionListCompany, useTransitionListMember, useUpdateListStatus };
|
package/dist/chunk-MISHPEJX.js
DELETED
|
@@ -1,244 +0,0 @@
|
|
|
1
|
-
import { useRouterContext } from './chunk-Q7DJKLEN.js';
|
|
2
|
-
import { UnstyledButton, Box, Group, ThemeIcon, Stack, Text } from '@mantine/core';
|
|
3
|
-
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
4
|
-
import { IconSearch, IconChartBar, IconTrendingUp } from '@tabler/icons-react';
|
|
5
|
-
|
|
6
|
-
// src/components/layout/constants.ts
|
|
7
|
-
var sidebarWidth = 240;
|
|
8
|
-
var sidebarCollapsedWidth = 72;
|
|
9
|
-
var sidebarTransitionDuration = 200;
|
|
10
|
-
var sidebarHoverDelay = 100;
|
|
11
|
-
var topbarHeight = 54;
|
|
12
|
-
var sidebarBottomSectionHeight = 71;
|
|
13
|
-
var sidebarBottomSectionCollapsedHeight = 59;
|
|
14
|
-
var sidebarItemHeight = 42;
|
|
15
|
-
var sidebarItemPadding = 10;
|
|
16
|
-
var sidebarItemGap = 4;
|
|
17
|
-
var sidebarSectionPadding = "var(--mantine-spacing-sm)";
|
|
18
|
-
var sidebarSubLinkIndent = 44;
|
|
19
|
-
var sidebarIconSize = 24;
|
|
20
|
-
var sidebarIconStroke = 1.6;
|
|
21
|
-
var sidebarIconInnerSize = 20;
|
|
22
|
-
var sidebarToggleIconSize = 20;
|
|
23
|
-
var sidebarSubLinkPaddingY = 6;
|
|
24
|
-
var sidebarSubLinkPaddingX = 10;
|
|
25
|
-
var sidebarGroupChevronSize = 14;
|
|
26
|
-
var subshellNavItemIconSize = 14;
|
|
27
|
-
var activeColor = "var(--color-primary)";
|
|
28
|
-
var defaultColor = "var(--color-text-subtle)";
|
|
29
|
-
var hoverColor = "var(--color-text)";
|
|
30
|
-
var activeBg = `color-mix(in srgb, ${activeColor} 10%, transparent)`;
|
|
31
|
-
var SubshellNavItem = ({
|
|
32
|
-
icon: Icon,
|
|
33
|
-
label,
|
|
34
|
-
isActive = false,
|
|
35
|
-
onClick,
|
|
36
|
-
description,
|
|
37
|
-
badge,
|
|
38
|
-
disabled = false,
|
|
39
|
-
href
|
|
40
|
-
}) => {
|
|
41
|
-
const handleAnchorClick = disabled ? void 0 : (event) => {
|
|
42
|
-
if (event.metaKey || event.ctrlKey || event.shiftKey || event.altKey || event.button !== 0) {
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
event.preventDefault();
|
|
46
|
-
onClick();
|
|
47
|
-
};
|
|
48
|
-
const sharedStyle = {
|
|
49
|
-
width: "100%",
|
|
50
|
-
padding: "var(--mantine-spacing-xs)",
|
|
51
|
-
backgroundColor: isActive ? activeBg : "transparent",
|
|
52
|
-
borderRadius: "var(--mantine-radius-default)",
|
|
53
|
-
transition: `all var(--duration-fast) var(--easing)`,
|
|
54
|
-
cursor: disabled ? "not-allowed" : "pointer",
|
|
55
|
-
opacity: disabled ? 0.5 : 1,
|
|
56
|
-
color: "inherit",
|
|
57
|
-
textDecoration: "none",
|
|
58
|
-
display: "block"
|
|
59
|
-
};
|
|
60
|
-
const handleMouseEnter = (e) => {
|
|
61
|
-
if (!isActive && !disabled) {
|
|
62
|
-
e.currentTarget.style.backgroundColor = "var(--color-surface-hover)";
|
|
63
|
-
const textElements = e.currentTarget.querySelectorAll("[data-text-element]");
|
|
64
|
-
textElements.forEach((el) => {
|
|
65
|
-
el.style.color = hoverColor;
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
};
|
|
69
|
-
const handleMouseLeave = (e) => {
|
|
70
|
-
if (!isActive && !disabled) {
|
|
71
|
-
e.currentTarget.style.backgroundColor = "transparent";
|
|
72
|
-
const textElements = e.currentTarget.querySelectorAll("[data-text-element]");
|
|
73
|
-
textElements.forEach((el) => {
|
|
74
|
-
el.style.color = defaultColor;
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
};
|
|
78
|
-
const inner = /* @__PURE__ */ jsxs(Stack, { gap: 2, children: [
|
|
79
|
-
/* @__PURE__ */ jsxs(Group, { gap: "xs", wrap: "nowrap", children: [
|
|
80
|
-
/* @__PURE__ */ jsx(
|
|
81
|
-
Icon,
|
|
82
|
-
{
|
|
83
|
-
size: subshellNavItemIconSize,
|
|
84
|
-
style: {
|
|
85
|
-
flexShrink: 0,
|
|
86
|
-
opacity: isActive ? 1 : 0.6,
|
|
87
|
-
color: isActive ? activeColor : defaultColor
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
),
|
|
91
|
-
/* @__PURE__ */ jsx(
|
|
92
|
-
Text,
|
|
93
|
-
{
|
|
94
|
-
size: "sm",
|
|
95
|
-
fw: isActive ? 600 : 400,
|
|
96
|
-
style: {
|
|
97
|
-
overflow: "hidden",
|
|
98
|
-
textOverflow: "ellipsis",
|
|
99
|
-
whiteSpace: "nowrap",
|
|
100
|
-
flex: 1,
|
|
101
|
-
fontFamily: "var(--elevasis-font-family-subtitle)",
|
|
102
|
-
color: isActive ? activeColor : defaultColor,
|
|
103
|
-
transition: `color var(--duration-fast) var(--easing)`
|
|
104
|
-
},
|
|
105
|
-
"data-text-element": true,
|
|
106
|
-
children: label
|
|
107
|
-
}
|
|
108
|
-
),
|
|
109
|
-
badge && /* @__PURE__ */ jsx("div", { style: { flexShrink: 0 }, children: badge })
|
|
110
|
-
] }),
|
|
111
|
-
description && /* @__PURE__ */ jsx(
|
|
112
|
-
Text,
|
|
113
|
-
{
|
|
114
|
-
size: "xs",
|
|
115
|
-
c: "dimmed",
|
|
116
|
-
style: {
|
|
117
|
-
paddingLeft: "22px",
|
|
118
|
-
lineHeight: 1.2,
|
|
119
|
-
color: isActive ? activeColor : defaultColor,
|
|
120
|
-
opacity: isActive ? 0.8 : 0.6,
|
|
121
|
-
transition: `all var(--duration-fast) var(--easing)`,
|
|
122
|
-
display: "-webkit-box",
|
|
123
|
-
WebkitLineClamp: 2,
|
|
124
|
-
WebkitBoxOrient: "vertical",
|
|
125
|
-
overflow: "hidden",
|
|
126
|
-
textOverflow: "ellipsis"
|
|
127
|
-
},
|
|
128
|
-
"data-text-element": true,
|
|
129
|
-
children: description
|
|
130
|
-
}
|
|
131
|
-
)
|
|
132
|
-
] });
|
|
133
|
-
if (href) {
|
|
134
|
-
return /* @__PURE__ */ jsx(
|
|
135
|
-
UnstyledButton,
|
|
136
|
-
{
|
|
137
|
-
component: "a",
|
|
138
|
-
href,
|
|
139
|
-
onClick: handleAnchorClick,
|
|
140
|
-
style: sharedStyle,
|
|
141
|
-
onMouseEnter: handleMouseEnter,
|
|
142
|
-
onMouseLeave: handleMouseLeave,
|
|
143
|
-
children: inner
|
|
144
|
-
}
|
|
145
|
-
);
|
|
146
|
-
}
|
|
147
|
-
return /* @__PURE__ */ jsx(
|
|
148
|
-
UnstyledButton,
|
|
149
|
-
{
|
|
150
|
-
onClick: disabled ? void 0 : onClick,
|
|
151
|
-
disabled,
|
|
152
|
-
style: sharedStyle,
|
|
153
|
-
onMouseEnter: handleMouseEnter,
|
|
154
|
-
onMouseLeave: handleMouseLeave,
|
|
155
|
-
children: inner
|
|
156
|
-
}
|
|
157
|
-
);
|
|
158
|
-
};
|
|
159
|
-
var SubshellSidebarSection = ({
|
|
160
|
-
icon: Icon,
|
|
161
|
-
label,
|
|
162
|
-
rightSection,
|
|
163
|
-
withTopBorder = false
|
|
164
|
-
}) => {
|
|
165
|
-
return /* @__PURE__ */ jsx(
|
|
166
|
-
Box,
|
|
167
|
-
{
|
|
168
|
-
p: "sm",
|
|
169
|
-
style: {
|
|
170
|
-
borderTop: withTopBorder ? "1px solid var(--color-border)" : void 0,
|
|
171
|
-
borderBottom: "1px solid var(--color-border)"
|
|
172
|
-
},
|
|
173
|
-
children: /* @__PURE__ */ jsxs(Group, { gap: "xs", children: [
|
|
174
|
-
/* @__PURE__ */ jsx(
|
|
175
|
-
ThemeIcon,
|
|
176
|
-
{
|
|
177
|
-
variant: "light",
|
|
178
|
-
size: sidebarIconSize,
|
|
179
|
-
style: {
|
|
180
|
-
backgroundColor: "var(--color-surface)",
|
|
181
|
-
color: "var(--color-primary)",
|
|
182
|
-
flexShrink: 0
|
|
183
|
-
},
|
|
184
|
-
children: /* @__PURE__ */ jsx(Icon, { size: sidebarIconInnerSize, stroke: sidebarIconStroke })
|
|
185
|
-
}
|
|
186
|
-
),
|
|
187
|
-
/* @__PURE__ */ jsx(
|
|
188
|
-
Box,
|
|
189
|
-
{
|
|
190
|
-
c: "var(--color-text)",
|
|
191
|
-
style: {
|
|
192
|
-
fontFamily: "var(--elevasis-font-family-subtitle)",
|
|
193
|
-
flex: 1,
|
|
194
|
-
fontSize: "var(--mantine-font-size-md)",
|
|
195
|
-
fontWeight: 500,
|
|
196
|
-
lineHeight: 1.2
|
|
197
|
-
},
|
|
198
|
-
children: label
|
|
199
|
-
}
|
|
200
|
-
),
|
|
201
|
-
rightSection
|
|
202
|
-
] })
|
|
203
|
-
}
|
|
204
|
-
);
|
|
205
|
-
};
|
|
206
|
-
var SEOSidebarTop = () => {
|
|
207
|
-
return /* @__PURE__ */ jsx(SubshellSidebarSection, { icon: IconSearch, label: "SEO" });
|
|
208
|
-
};
|
|
209
|
-
var NAV_ITEMS = [
|
|
210
|
-
{ label: "SEO Pages", to: "/seo", icon: IconChartBar, exact: true },
|
|
211
|
-
{ label: "Metrics", to: "/seo/metrics", icon: IconTrendingUp, exact: false }
|
|
212
|
-
];
|
|
213
|
-
var SEOSidebarMiddle = () => {
|
|
214
|
-
const { currentPath, navigate } = useRouterContext();
|
|
215
|
-
return /* @__PURE__ */ jsx(Stack, { gap: "xs", p: "sm", style: { flex: 1, overflowY: "auto" }, children: NAV_ITEMS.map((item) => {
|
|
216
|
-
const isActive = item.exact ? currentPath === item.to || currentPath === `${item.to}/` : currentPath.startsWith(item.to);
|
|
217
|
-
return /* @__PURE__ */ jsx(
|
|
218
|
-
SubshellNavItem,
|
|
219
|
-
{
|
|
220
|
-
icon: item.icon,
|
|
221
|
-
label: item.label,
|
|
222
|
-
isActive,
|
|
223
|
-
href: item.to,
|
|
224
|
-
onClick: () => navigate(item.to)
|
|
225
|
-
},
|
|
226
|
-
item.to
|
|
227
|
-
);
|
|
228
|
-
}) });
|
|
229
|
-
};
|
|
230
|
-
var SEOSidebar = () => {
|
|
231
|
-
return /* @__PURE__ */ jsxs(Stack, { gap: 0, style: { height: "100%", display: "flex", flexDirection: "column" }, children: [
|
|
232
|
-
/* @__PURE__ */ jsx(SEOSidebarTop, {}),
|
|
233
|
-
/* @__PURE__ */ jsx(SEOSidebarMiddle, {})
|
|
234
|
-
] });
|
|
235
|
-
};
|
|
236
|
-
|
|
237
|
-
// src/features/seo/manifest.ts
|
|
238
|
-
var seoManifest = {
|
|
239
|
-
key: "seo",
|
|
240
|
-
systemId: "seo",
|
|
241
|
-
sidebar: SEOSidebar
|
|
242
|
-
};
|
|
243
|
-
|
|
244
|
-
export { SEOSidebar, SEOSidebarMiddle, SEOSidebarTop, SubshellNavItem, SubshellSidebarSection, seoManifest, sidebarBottomSectionCollapsedHeight, sidebarBottomSectionHeight, sidebarCollapsedWidth, sidebarGroupChevronSize, sidebarHoverDelay, sidebarIconInnerSize, sidebarIconSize, sidebarIconStroke, sidebarItemGap, sidebarItemHeight, sidebarItemPadding, sidebarSectionPadding, sidebarSubLinkIndent, sidebarSubLinkPaddingX, sidebarSubLinkPaddingY, sidebarToggleIconSize, sidebarTransitionDuration, sidebarWidth, subshellNavItemIconSize, topbarHeight };
|