@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.
Files changed (105) hide show
  1. package/dist/api/index.js +3 -3
  2. package/dist/app/index.d.ts +277 -249
  3. package/dist/app/index.js +12 -11
  4. package/dist/auth/index.js +6 -7
  5. package/dist/charts/index.js +6 -7
  6. package/dist/{chunk-CRPH5AAB.js → chunk-2GIHWU5O.js} +4 -3
  7. package/dist/chunk-2Y6AKWGU.js +42 -0
  8. package/dist/chunk-3QYRZSHP.js +854 -0
  9. package/dist/{chunk-L3NBMLRN.js → chunk-3RK2NNJX.js} +1 -1
  10. package/dist/{chunk-R6NMRXNO.js → chunk-4WLAVUPS.js} +1 -1
  11. package/dist/{chunk-DTEGVSJ6.js → chunk-5R4I2PAN.js} +9 -43
  12. package/dist/chunk-6B4ZPBQJ.js +7 -0
  13. package/dist/{chunk-QFS2GZMV.js → chunk-73G3I5HJ.js} +160 -160
  14. package/dist/{chunk-7OOFMEX6.js → chunk-BFLYDVEN.js} +28 -41
  15. package/dist/{chunk-VWGCURZF.js → chunk-BG6PWDJ3.js} +381 -381
  16. package/dist/{chunk-5VF5LPYS.js → chunk-BV2RNLPP.js} +1 -1
  17. package/dist/{chunk-NMHQAYZU.js → chunk-CTT4RDXE.js} +150 -151
  18. package/dist/chunk-E2LJ3FRA.js +237 -0
  19. package/dist/{chunk-5RH6NYZH.js → chunk-EFQLXRYT.js} +1 -2
  20. package/dist/{chunk-M6VAZAQW.js → chunk-EVNLJHDD.js} +3 -3
  21. package/dist/{chunk-NYIIRZSA.js → chunk-GDQQX5SL.js} +4 -42
  22. package/dist/{chunk-IYATYH5I.js → chunk-GFSOQH3N.js} +1 -1
  23. package/dist/{chunk-G7O4CBMC.js → chunk-H5AEYSVX.js} +164 -3
  24. package/dist/{chunk-ZFISGKYW.js → chunk-IIEZXXDD.js} +1 -1
  25. package/dist/{chunk-5SLRGUC4.js → chunk-INCEZAM3.js} +1 -1
  26. package/dist/{chunk-ZG6YJUT4.js → chunk-JZQNUQE4.js} +1 -1
  27. package/dist/{chunk-SB3IHM5Y.js → chunk-K55TU6CC.js} +2023 -1700
  28. package/dist/chunk-KB5CAN5D.js +33 -0
  29. package/dist/{chunk-OGHTJKBV.js → chunk-KMA4FOSV.js} +5682 -5675
  30. package/dist/{chunk-ICHDIVQO.js → chunk-KXNRTJAE.js} +1 -1
  31. package/dist/{chunk-MLHZUN2X.js → chunk-MGAELVTZ.js} +12 -12
  32. package/dist/chunk-MKH2KOAO.js +39 -0
  33. package/dist/{chunk-6BJ5HMMC.js → chunk-NAPXMYFW.js} +35 -362
  34. package/dist/{chunk-GDTK33QT.js → chunk-OGG3QJYW.js} +14 -5
  35. package/dist/{chunk-SN7X5N2A.js → chunk-P6HHXMLJ.js} +1 -1
  36. package/dist/{chunk-SEYOVNS5.js → chunk-QAILYRC2.js} +1 -1
  37. package/dist/{chunk-RBGVNPA6.js → chunk-RXZ3XDBM.js} +1 -1
  38. package/dist/{chunk-2ZRY3ARL.js → chunk-SPW6UA6B.js} +1 -1
  39. package/dist/{chunk-3H5DIJN7.js → chunk-SVZR4GYA.js} +1 -1
  40. package/dist/{chunk-47YJVIZE.js → chunk-UEY4AB3R.js} +789 -66
  41. package/dist/{chunk-LFLM723H.js → chunk-UL6MPMKY.js} +1 -1
  42. package/dist/{chunk-TX3UHDL5.js → chunk-WELN7DDV.js} +2 -2
  43. package/dist/{chunk-D3XXPCCK.js → chunk-WJN2VVVJ.js} +1 -1
  44. package/dist/{chunk-DMSTDZCJ.js → chunk-XODQUPFW.js} +11 -11
  45. package/dist/components/index.d.ts +135 -25
  46. package/dist/components/index.js +2165 -1996
  47. package/dist/components/navigation/index.js +7 -8
  48. package/dist/features/auth/index.d.ts +35 -3716
  49. package/dist/features/auth/index.js +9 -10
  50. package/dist/features/clients/index.js +18 -12
  51. package/dist/features/content/index.js +27 -27
  52. package/dist/features/crm/index.css +59 -59
  53. package/dist/features/crm/index.d.ts +18 -1
  54. package/dist/features/crm/index.js +13 -11
  55. package/dist/features/dashboard/index.css +59 -59
  56. package/dist/features/dashboard/index.js +8 -9
  57. package/dist/features/delivery/index.d.ts +3 -0
  58. package/dist/features/delivery/index.js +21 -20
  59. package/dist/features/knowledge/index.js +6 -7
  60. package/dist/features/lead-gen/index.css +59 -59
  61. package/dist/features/lead-gen/index.d.ts +3903 -2
  62. package/dist/features/lead-gen/index.js +15 -13
  63. package/dist/features/monitoring/index.js +10 -11
  64. package/dist/features/monitoring/requests/index.css +59 -59
  65. package/dist/features/monitoring/requests/index.js +8 -9
  66. package/dist/features/notes/index.js +4 -4
  67. package/dist/features/operations/index.css +59 -59
  68. package/dist/features/operations/index.js +13 -15
  69. package/dist/features/seo/index.css +659 -0
  70. package/dist/features/seo/index.d.ts +3962 -1
  71. package/dist/features/seo/index.js +31 -2
  72. package/dist/features/settings/index.css +59 -59
  73. package/dist/features/settings/index.d.ts +79 -3742
  74. package/dist/features/settings/index.js +10 -12
  75. package/dist/hooks/access/index.js +6 -7
  76. package/dist/hooks/delivery/index.css +59 -59
  77. package/dist/hooks/delivery/index.d.ts +13 -4
  78. package/dist/hooks/delivery/index.js +3 -3
  79. package/dist/hooks/published.d.ts +63 -25
  80. package/dist/hooks/published.js +19 -19
  81. package/dist/initialization/index.d.ts +35 -3716
  82. package/dist/knowledge/index.js +11 -11
  83. package/dist/layout/index.d.ts +55 -2
  84. package/dist/layout/index.js +10 -10
  85. package/dist/organization/index.css +59 -59
  86. package/dist/profile/index.d.ts +64 -3716
  87. package/dist/provider/index.d.ts +3 -0
  88. package/dist/provider/index.js +6 -7
  89. package/dist/provider/published.d.ts +3 -0
  90. package/dist/provider/published.js +6 -7
  91. package/dist/test-utils/index.js +3 -3
  92. package/dist/theme/index.js +3 -3
  93. package/dist/theme/presets/index.js +1 -1
  94. package/dist/types/index.d.ts +298 -251
  95. package/dist/utils/index.d.ts +1 -1
  96. package/dist/utils/index.js +1 -1
  97. package/package.json +5 -9
  98. package/src/hooks/README.md +22 -23
  99. package/dist/chunk-6ZAP3FOA.js +0 -93
  100. package/dist/chunk-AH52XQB7.js +0 -1
  101. package/dist/chunk-DVAOCHIF.js +0 -165
  102. package/dist/chunk-MISHPEJX.js +0 -244
  103. package/dist/hooks/operations/command-view/utils/transformCommandViewData.d.ts +0 -879
  104. package/dist/hooks/operations/command-view/utils/transformCommandViewData.js +0 -2
  105. /package/dist/{chunk-A2SB32YV.js → chunk-5ZK7K7YP.js} +0 -0
@@ -1,12 +1,11 @@
1
- import { AppShellError } from '../../chunk-5RH6NYZH.js';
2
- import { computeProtectedRouteGate, DEFAULT_WAIT_FOR_ORGANIZATION, ProtectedRoute, AppearanceContext, AccessGuard, SystemUnavailableState, useAppearance } from '../../chunk-SB3IHM5Y.js';
3
- export { AccessGuard } from '../../chunk-SB3IHM5Y.js';
4
- import '../../chunk-R6NMRXNO.js';
5
- import '../../chunk-RBGVNPA6.js';
6
- import '../../chunk-ZG6YJUT4.js';
1
+ import { ServiceUnavailableScreen } from '../../chunk-E2LJ3FRA.js';
2
+ import { computeProtectedRouteGate, DEFAULT_WAIT_FOR_ORGANIZATION, ProtectedRoute, AppearanceContext, AccessGuard, SystemUnavailableState, useAppearance } from '../../chunk-K55TU6CC.js';
3
+ export { AccessGuard } from '../../chunk-K55TU6CC.js';
4
+ import '../../chunk-4WLAVUPS.js';
5
+ import '../../chunk-RXZ3XDBM.js';
6
+ import '../../chunk-JZQNUQE4.js';
7
7
  import '../../chunk-L7BZZ4SI.js';
8
- import '../../chunk-ICHDIVQO.js';
9
- import '../../chunk-MISHPEJX.js';
8
+ import '../../chunk-KXNRTJAE.js';
10
9
  import '../../chunk-62GVNH5U.js';
11
10
  import { useInitialization } from '../../chunk-P45GQ3ZW.js';
12
11
  import '../../chunk-2GIJBHZT.js';
@@ -17,7 +16,7 @@ import '../../chunk-UD657ICS.js';
17
16
  import '../../chunk-DD3CCMCZ.js';
18
17
  import '../../chunk-RNP5R5I3.js';
19
18
  export { USER_PROFILE_QUERY_KEY, useUserProfile } from '../../chunk-RT4KRGZT.js';
20
- import '../../chunk-A2SB32YV.js';
19
+ import '../../chunk-5ZK7K7YP.js';
21
20
  import '../../chunk-Y6I3IC45.js';
22
21
  import '../../chunk-6SSQGWK7.js';
23
22
  import '../../chunk-BI5VDO2K.js';
@@ -93,7 +92,7 @@ function ProtectedRoute2({
93
92
  error,
94
93
  waitForOrganization
95
94
  });
96
- const resolvedErrorFallback = errorFallback ?? ((err, retry) => /* @__PURE__ */ jsx(AppShellError, { message: err.message, retry }));
95
+ const resolvedErrorFallback = errorFallback ?? ((err, retry) => /* @__PURE__ */ jsx(ServiceUnavailableScreen, { message: err.message, error: err.originalError, retry }));
97
96
  return /* @__PURE__ */ jsxs(Fragment, { children: [
98
97
  fallback ? showLoader ? fallback : null : /* @__PURE__ */ jsx(AnimatedLoader, { showLoader }),
99
98
  /* @__PURE__ */ jsx(
@@ -1,16 +1,16 @@
1
1
  import '../../chunk-DLR4SDZW.js';
2
- import { useClientStatus, useCreateClient, useUpdateClient, useDeleteClient, useClients, useClient } from '../../chunk-SN7X5N2A.js';
2
+ import { useClientStatus, useCreateClient, useUpdateClient, useDeleteClient, useClients, useClient } from '../../chunk-P6HHXMLJ.js';
3
+ import { SubshellPageLayout } from '../../chunk-6B4ZPBQJ.js';
3
4
  import { PageContainer } from '../../chunk-BZZCNLT6.js';
4
5
  import '../../chunk-TUMSNGTX.js';
5
6
  import { FilterBar } from '../../chunk-PDHTXPSF.js';
6
- import { StatCard, EmptyState, CustomModal, usePaginationState, SubshellContentContainer, PageTitleCaption, CenteredErrorState } from '../../chunk-SB3IHM5Y.js';
7
- export { clientsManifest } from '../../chunk-SB3IHM5Y.js';
8
- import '../../chunk-R6NMRXNO.js';
9
- import '../../chunk-RBGVNPA6.js';
10
- import '../../chunk-ZG6YJUT4.js';
7
+ import { StatCard, EmptyState, CustomModal, usePaginationState, SubshellContentContainer, PageTitleCaption, CenteredErrorState } from '../../chunk-K55TU6CC.js';
8
+ export { clientsManifest } from '../../chunk-K55TU6CC.js';
9
+ import '../../chunk-4WLAVUPS.js';
10
+ import '../../chunk-RXZ3XDBM.js';
11
+ import '../../chunk-JZQNUQE4.js';
11
12
  import '../../chunk-L7BZZ4SI.js';
12
- import { showApiErrorNotification } from '../../chunk-ICHDIVQO.js';
13
- import '../../chunk-MISHPEJX.js';
13
+ import { showApiErrorNotification } from '../../chunk-KXNRTJAE.js';
14
14
  import { CardHeader } from '../../chunk-62GVNH5U.js';
15
15
  import '../../chunk-P45GQ3ZW.js';
16
16
  import '../../chunk-2GIJBHZT.js';
@@ -21,7 +21,7 @@ import '../../chunk-UD657ICS.js';
21
21
  import '../../chunk-DD3CCMCZ.js';
22
22
  import '../../chunk-RNP5R5I3.js';
23
23
  import '../../chunk-RT4KRGZT.js';
24
- import { PAGE_SIZE_DEFAULT, formatTimeAgo } from '../../chunk-A2SB32YV.js';
24
+ import { PAGE_SIZE_DEFAULT, formatTimeAgo } from '../../chunk-5ZK7K7YP.js';
25
25
  import '../../chunk-Y6I3IC45.js';
26
26
  import '../../chunk-6SSQGWK7.js';
27
27
  import '../../chunk-BI5VDO2K.js';
@@ -315,7 +315,13 @@ var EditClientSchema = z.object({
315
315
  name: z.string().trim().min(1).max(255),
316
316
  source: ClientSourceSchema
317
317
  });
318
- function EditClientNameModal({ opened, onClose, clientId, currentName, currentSource }) {
318
+ function EditClientNameModal({
319
+ opened,
320
+ onClose,
321
+ clientId,
322
+ currentName,
323
+ currentSource
324
+ }) {
319
325
  const updateClient = useUpdateClient();
320
326
  const form = useForm({
321
327
  initialValues: { name: currentName, source: currentSource },
@@ -599,10 +605,10 @@ function ClientDetailPage({ clientId }) {
599
605
  backButton
600
606
  ] });
601
607
  if (isLoading) {
602
- return /* @__PURE__ */ jsx(SubshellContentContainer, { children: /* @__PURE__ */ jsx(PageContainer, { children: /* @__PURE__ */ jsxs(Stack, { gap: "md", children: [
608
+ return /* @__PURE__ */ jsx(SubshellPageLayout, { children: /* @__PURE__ */ jsxs(Stack, { gap: "md", children: [
603
609
  /* @__PURE__ */ jsx(PageTitleCaption, { title: "Client Detail", caption: "Loading client details...", rightSection: backButton }),
604
610
  /* @__PURE__ */ jsx(Paper, { withBorder: true, children: /* @__PURE__ */ jsx(Center, { p: "xl", children: /* @__PURE__ */ jsx(Loader, {}) }) })
605
- ] }) }) });
611
+ ] }) });
606
612
  }
607
613
  if (error) {
608
614
  return /* @__PURE__ */ jsx(SubshellContentContainer, { children: /* @__PURE__ */ jsx(PageContainer, { children: /* @__PURE__ */ jsxs(Stack, { gap: "md", children: [
@@ -1,15 +1,15 @@
1
- import { useCloudStorageTemporaryLinks, useStorageSignedUrls, storageObjectRefKey } from '../../chunk-5SLRGUC4.js';
1
+ import { useCloudStorageTemporaryLinks, useStorageSignedUrls, storageObjectRefKey } from '../../chunk-INCEZAM3.js';
2
+ import { SubshellPageLayout } from '../../chunk-6B4ZPBQJ.js';
2
3
  import { PageContainer } from '../../chunk-BZZCNLT6.js';
3
4
  import '../../chunk-TUMSNGTX.js';
4
5
  import { FilterBar } from '../../chunk-PDHTXPSF.js';
5
- import { CustomModal, useContentItemSourceAssetDetails, useContentSourceAssets, useAddContentItemSourceAsset, useRemoveContentItemSourceAsset, useReorderContentItemSourceAssets, useUpdateContentItemSourceAsset, useContentItemAttempts, useExecuteAsync, useUpdateContentItem, useExecution, contentKeys, useContentItems, useContentDistributions, useContentConfig, isAwaitingReview, SubshellContentContainer, PageTitleCaption, CenteredErrorState, EmptyState, StatCard, getContentItemIdentity, usePaginationState, resolveCurrentContentStep, useContentItem, useReviewContentItem, resolveReviewTarget, useContentDistribution, useContentDistributionMetrics, useContentPipelineSummary, deriveContentBoard, resolveContentWorkspaceRoute, useExecutions } from '../../chunk-SB3IHM5Y.js';
6
- export { CONTENT_ITEMS, ContentSidebar, ContentSidebarMiddle, DEFAULT_CONTENT_VOCABULARY, MyReviewQueuePanel, contentManifest, deriveContentBoard, getContentItemIdentity, resolveContentStepResource, resolveContentVocabulary, useContentConfig } from '../../chunk-SB3IHM5Y.js';
7
- import '../../chunk-R6NMRXNO.js';
8
- import '../../chunk-RBGVNPA6.js';
9
- import '../../chunk-ZG6YJUT4.js';
6
+ import { CustomModal, useContentItemSourceAssetDetails, useContentSourceAssets, useAddContentItemSourceAsset, useRemoveContentItemSourceAsset, useReorderContentItemSourceAssets, useUpdateContentItemSourceAsset, useContentItemAttempts, useExecuteAsync, useUpdateContentItem, useExecution, isExecutionInFlight, contentKeys, useContentItems, useContentDistributions, useContentConfig, isAwaitingReview, SubshellContentContainer, PageTitleCaption, CenteredErrorState, EmptyState, StatCard, getContentItemIdentity, usePaginationState, resolveCurrentContentStep, useContentItem, useReviewContentItem, resolveReviewTarget, useContentDistribution, useContentDistributionMetrics, useContentPipelineSummary, deriveContentBoard, resolveContentWorkspaceRoute, useExecutions } from '../../chunk-K55TU6CC.js';
7
+ export { CONTENT_ITEMS, ContentSidebar, ContentSidebarMiddle, DEFAULT_CONTENT_VOCABULARY, MyReviewQueuePanel, contentManifest, deriveContentBoard, getContentItemIdentity, resolveContentStepResource, resolveContentVocabulary, useContentConfig } from '../../chunk-K55TU6CC.js';
8
+ import '../../chunk-4WLAVUPS.js';
9
+ import '../../chunk-RXZ3XDBM.js';
10
+ import '../../chunk-JZQNUQE4.js';
10
11
  import '../../chunk-L7BZZ4SI.js';
11
- import { showSuccessNotification } from '../../chunk-ICHDIVQO.js';
12
- import '../../chunk-MISHPEJX.js';
12
+ import { showSuccessNotification } from '../../chunk-KXNRTJAE.js';
13
13
  import { CardHeader } from '../../chunk-62GVNH5U.js';
14
14
  import '../../chunk-P45GQ3ZW.js';
15
15
  import '../../chunk-2GIJBHZT.js';
@@ -20,7 +20,7 @@ import '../../chunk-UD657ICS.js';
20
20
  import '../../chunk-DD3CCMCZ.js';
21
21
  import '../../chunk-RNP5R5I3.js';
22
22
  import '../../chunk-RT4KRGZT.js';
23
- import { formatTimeAgo, formatRelativeTime } from '../../chunk-A2SB32YV.js';
23
+ import { formatTimeAgo, formatRelativeTime } from '../../chunk-5ZK7K7YP.js';
24
24
  import '../../chunk-Y6I3IC45.js';
25
25
  import '../../chunk-6SSQGWK7.js';
26
26
  import '../../chunk-BI5VDO2K.js';
@@ -1301,7 +1301,7 @@ function CaptionPanel({ itemId, body, onDraftChange }) {
1301
1301
  return rows.map((row, index) => ({ ...row, displayNumber: rows.length - index }));
1302
1302
  }, [attemptsQuery.data]);
1303
1303
  const status = execution.data?.status;
1304
- const isRunning = executeAsync.isPending || executionId !== null && (status === void 0 || status === "running");
1304
+ const isRunning = executeAsync.isPending || executionId !== null && (status === void 0 || isExecutionInFlight(status));
1305
1305
  const lastSyncedRef = useRef(savedBody);
1306
1306
  const [debouncedDraft] = useDebouncedValue(draft, AUTOSAVE_DELAY_MS);
1307
1307
  useEffect(() => {
@@ -1319,7 +1319,7 @@ function CaptionPanel({ itemId, body, onDraftChange }) {
1319
1319
  }, [draft, onDraftChange]);
1320
1320
  const isDirty = draft !== lastSyncedRef.current;
1321
1321
  useEffect(() => {
1322
- if (executionId === null || status === void 0 || status === "running") return;
1322
+ if (executionId === null || status === void 0 || isExecutionInFlight(status)) return;
1323
1323
  if (status === "failed") {
1324
1324
  setFailure(execution.data?.error ?? "The caption workflow failed. Check the execution log for details.");
1325
1325
  }
@@ -1466,13 +1466,13 @@ function SlideAnalysisPanel({ itemId }) {
1466
1466
  const executeAsync = useExecuteAsync();
1467
1467
  const execution = useExecution(IMAGE_ANALYSIS_WORKFLOW_ID, executionId ?? "");
1468
1468
  const status = execution.data?.status;
1469
- const isRunning = executeAsync.isPending || executionId !== null && (status === void 0 || status === "running");
1469
+ const isRunning = executeAsync.isPending || executionId !== null && (status === void 0 || isExecutionInFlight(status));
1470
1470
  const analyzedCount = useMemo(
1471
1471
  () => memberships.filter((detail) => readStoredAnalysis(detail.asset) !== null).length,
1472
1472
  [memberships]
1473
1473
  );
1474
1474
  useEffect(() => {
1475
- if (executionId === null || status === void 0 || status === "running") return;
1475
+ if (executionId === null || status === void 0 || isExecutionInFlight(status)) return;
1476
1476
  if (status === "failed") {
1477
1477
  setFailure(execution.data?.error ?? "The analysis workflow failed. Check the execution log for details.");
1478
1478
  }
@@ -1751,7 +1751,7 @@ function ContentItemsPage({ headerActions } = {}) {
1751
1751
  { value: "", label: "All pillars" },
1752
1752
  ...(contentConfig.stagesByCatalog.pillar ?? []).map((entry) => ({ value: entry.key, label: entry.label }))
1753
1753
  ];
1754
- return /* @__PURE__ */ jsx(SubshellContentContainer, { children: /* @__PURE__ */ jsx(PageContainer, { children: /* @__PURE__ */ jsxs(Stack, { children: [
1754
+ return /* @__PURE__ */ jsx(SubshellPageLayout, { children: /* @__PURE__ */ jsxs(Stack, { children: [
1755
1755
  /* @__PURE__ */ jsx(
1756
1756
  PageTitleCaption,
1757
1757
  {
@@ -1843,7 +1843,7 @@ function ContentItemsPage({ headerActions } = {}) {
1843
1843
  }
1844
1844
  ) })
1845
1845
  ] }) })
1846
- ] }) }) });
1846
+ ] }) });
1847
1847
  }
1848
1848
 
1849
1849
  // src/lib/content/processing-state.ts
@@ -2043,7 +2043,7 @@ function ContentItemReviewPage({ itemId, headerActions }) {
2043
2043
  }
2044
2044
  );
2045
2045
  if (itemQuery.isLoading) {
2046
- return /* @__PURE__ */ jsx(SubshellContentContainer, { children: /* @__PURE__ */ jsx(PageContainer, { children: /* @__PURE__ */ jsxs(Stack, { children: [
2046
+ return /* @__PURE__ */ jsx(SubshellPageLayout, { children: /* @__PURE__ */ jsxs(Stack, { children: [
2047
2047
  /* @__PURE__ */ jsx(
2048
2048
  PageTitleCaption,
2049
2049
  {
@@ -2053,7 +2053,7 @@ function ContentItemReviewPage({ itemId, headerActions }) {
2053
2053
  }
2054
2054
  ),
2055
2055
  /* @__PURE__ */ jsx(Paper, { withBorder: true, children: /* @__PURE__ */ jsx(Center, { p: "xl", children: /* @__PURE__ */ jsx(Loader, {}) }) })
2056
- ] }) }) });
2056
+ ] }) });
2057
2057
  }
2058
2058
  if (itemQuery.isError || !item) {
2059
2059
  return /* @__PURE__ */ jsx(SubshellContentContainer, { children: /* @__PURE__ */ jsx(PageContainer, { children: /* @__PURE__ */ jsxs(Stack, { children: [
@@ -2291,7 +2291,7 @@ function ContentPipelinesPage({ headerActions } = {}) {
2291
2291
  const contentConfig = useContentConfig();
2292
2292
  const { vocabulary } = contentConfig;
2293
2293
  const statusEntries = contentConfig.stagesByCatalog.status ?? [];
2294
- return /* @__PURE__ */ jsx(SubshellContentContainer, { children: /* @__PURE__ */ jsx(PageContainer, { children: /* @__PURE__ */ jsxs(Stack, { children: [
2294
+ return /* @__PURE__ */ jsx(SubshellPageLayout, { children: /* @__PURE__ */ jsxs(Stack, { children: [
2295
2295
  /* @__PURE__ */ jsx(
2296
2296
  PageTitleCaption,
2297
2297
  {
@@ -2314,7 +2314,7 @@ function ContentPipelinesPage({ headerActions } = {}) {
2314
2314
  ] }) }),
2315
2315
  /* @__PURE__ */ jsx(Table.Tbody, { children: contentConfig.pipelines.map((pipeline) => /* @__PURE__ */ jsx(PipelineRow, { pipeline, statusEntries }, pipeline.id)) })
2316
2316
  ] }) })
2317
- ] }) }) });
2317
+ ] }) });
2318
2318
  }
2319
2319
  var ACTOR_LEAD = {
2320
2320
  vendor: "An outside service handles",
@@ -2701,7 +2701,7 @@ function ContentPipelineBoardPage({
2701
2701
  }
2702
2702
  );
2703
2703
  if (!pipeline) {
2704
- return /* @__PURE__ */ jsx(SubshellContentContainer, { children: /* @__PURE__ */ jsx(PageContainer, { children: /* @__PURE__ */ jsxs(Stack, { children: [
2704
+ return /* @__PURE__ */ jsx(SubshellPageLayout, { children: /* @__PURE__ */ jsxs(Stack, { children: [
2705
2705
  /* @__PURE__ */ jsx(
2706
2706
  PageTitleCaption,
2707
2707
  {
@@ -2715,7 +2715,7 @@ function ContentPipelineBoardPage({
2715
2715
  pipelineId,
2716
2716
  '" is declared on the content System.'
2717
2717
  ] }) }) })
2718
- ] }) }) });
2718
+ ] }) });
2719
2719
  }
2720
2720
  return /* @__PURE__ */ jsx(SubshellContentContainer, { children: /* @__PURE__ */ jsx(PageContainer, { children: /* @__PURE__ */ jsxs(Stack, { children: [
2721
2721
  /* @__PURE__ */ jsx(
@@ -2792,7 +2792,7 @@ function ContentDistributionsPage({ headerActions } = {}) {
2792
2792
  );
2793
2793
  const paginatedDistributions = filteredDistributions.slice(pagination.offset, pagination.offset + PAGE_SIZE3);
2794
2794
  const resolveTitle = (distribution) => itemTitleById.get(distribution.contentItemId) ?? distribution.contentItemId;
2795
- return /* @__PURE__ */ jsx(SubshellContentContainer, { children: /* @__PURE__ */ jsx(PageContainer, { children: /* @__PURE__ */ jsxs(Stack, { children: [
2795
+ return /* @__PURE__ */ jsx(SubshellPageLayout, { children: /* @__PURE__ */ jsxs(Stack, { children: [
2796
2796
  /* @__PURE__ */ jsx(
2797
2797
  PageTitleCaption,
2798
2798
  {
@@ -2911,7 +2911,7 @@ function ContentDistributionsPage({ headerActions } = {}) {
2911
2911
  }
2912
2912
  ) })
2913
2913
  ] }) })
2914
- ] }) }) });
2914
+ ] }) });
2915
2915
  }
2916
2916
  var COMMON_PLATFORM_FIELDS = [
2917
2917
  { key: "title", label: "Title" },
@@ -3025,10 +3025,10 @@ function ContentDistributionDetailPage({
3025
3025
  }
3026
3026
  );
3027
3027
  if (distributionQuery.isLoading) {
3028
- return /* @__PURE__ */ jsx(SubshellContentContainer, { children: /* @__PURE__ */ jsx(PageContainer, { children: /* @__PURE__ */ jsxs(Stack, { children: [
3028
+ return /* @__PURE__ */ jsx(SubshellPageLayout, { children: /* @__PURE__ */ jsxs(Stack, { children: [
3029
3029
  /* @__PURE__ */ jsx(PageTitleCaption, { title: "Distribution", caption: "Loading distribution", rightSection: backButton }),
3030
3030
  /* @__PURE__ */ jsx(Card, { withBorder: true, children: /* @__PURE__ */ jsx(Center, { p: "xl", children: /* @__PURE__ */ jsx(Loader, {}) }) })
3031
- ] }) }) });
3031
+ ] }) });
3032
3032
  }
3033
3033
  if (distributionQuery.isError || !dist) {
3034
3034
  return /* @__PURE__ */ jsx(SubshellContentContainer, { children: /* @__PURE__ */ jsx(PageContainer, { children: /* @__PURE__ */ jsxs(Stack, { children: [
@@ -3481,10 +3481,10 @@ function ContentWorkspaceShell({
3481
3481
  ] })
3482
3482
  ] });
3483
3483
  })();
3484
- return /* @__PURE__ */ jsx(SubshellContentContainer, { children: /* @__PURE__ */ jsx(PageContainer, { children: /* @__PURE__ */ jsxs(Stack, { "data-testid": testId, children: [
3484
+ return /* @__PURE__ */ jsx(SubshellPageLayout, { children: /* @__PURE__ */ jsxs(Stack, { "data-testid": testId, children: [
3485
3485
  /* @__PURE__ */ jsx(PageTitleCaption, { title, caption, rightSection: headerRight }),
3486
3486
  !isStarted && renderStart !== void 0 ? renderStart(startControls) : body
3487
- ] }) }) });
3487
+ ] }) });
3488
3488
  }
3489
3489
  function ContentAnalysisStepPanel(state) {
3490
3490
  const { item, stepIndex, steps, goToNextStep, goToPreviousStep } = state;
@@ -66,65 +66,6 @@
66
66
  color: var(--color-text-dimmed);
67
67
  }
68
68
 
69
- /* src/components/display/ElevasisLoader.module.css */
70
- .wrapper {
71
- display: inline-flex;
72
- align-items: center;
73
- justify-content: center;
74
- width: var(--loader-size);
75
- height: var(--loader-size);
76
- overflow: visible;
77
- }
78
- .loader {
79
- width: 100%;
80
- height: 100%;
81
- display: block;
82
- overflow: visible;
83
- }
84
- .chevron {
85
- stroke: var(--loader-color);
86
- stroke-width: 2;
87
- stroke-linecap: square;
88
- stroke-linejoin: miter;
89
- fill: none;
90
- opacity: 0.15;
91
- animation: chevronPulse 2s ease-in-out infinite;
92
- filter: drop-shadow(0 0 1.5px var(--loader-color));
93
- }
94
- [data-mantine-color-scheme=light] .chevron {
95
- filter: none;
96
- }
97
- .c1 {
98
- animation-delay: 0s;
99
- }
100
- .c2 {
101
- animation-delay: 0.2s;
102
- }
103
- .c3 {
104
- animation-delay: 0.4s;
105
- }
106
- @keyframes chevronPulse {
107
- 0%, 100% {
108
- opacity: 0.12;
109
- filter: drop-shadow(0 0 1px var(--loader-color));
110
- }
111
- 40%, 60% {
112
- opacity: 1;
113
- filter: drop-shadow(0 0 3px var(--loader-color));
114
- }
115
- }
116
- [data-mantine-color-scheme=light] .chevron {
117
- animation-name: chevronPulseLight;
118
- }
119
- @keyframes chevronPulseLight {
120
- 0%, 100% {
121
- opacity: 0.2;
122
- }
123
- 40%, 60% {
124
- opacity: 1;
125
- }
126
- }
127
-
128
69
  /* src/theme/custom.css */
129
70
  .mantine-Button-root[data-variant=default] {
130
71
  background-color: var(--color-surface);
@@ -274,6 +215,65 @@
274
215
  display: none;
275
216
  }
276
217
 
218
+ /* src/components/display/ElevasisLoader.module.css */
219
+ .wrapper {
220
+ display: inline-flex;
221
+ align-items: center;
222
+ justify-content: center;
223
+ width: var(--loader-size);
224
+ height: var(--loader-size);
225
+ overflow: visible;
226
+ }
227
+ .loader {
228
+ width: 100%;
229
+ height: 100%;
230
+ display: block;
231
+ overflow: visible;
232
+ }
233
+ .chevron {
234
+ stroke: var(--loader-color);
235
+ stroke-width: 2;
236
+ stroke-linecap: square;
237
+ stroke-linejoin: miter;
238
+ fill: none;
239
+ opacity: 0.15;
240
+ animation: chevronPulse 2s ease-in-out infinite;
241
+ filter: drop-shadow(0 0 1.5px var(--loader-color));
242
+ }
243
+ [data-mantine-color-scheme=light] .chevron {
244
+ filter: none;
245
+ }
246
+ .c1 {
247
+ animation-delay: 0s;
248
+ }
249
+ .c2 {
250
+ animation-delay: 0.2s;
251
+ }
252
+ .c3 {
253
+ animation-delay: 0.4s;
254
+ }
255
+ @keyframes chevronPulse {
256
+ 0%, 100% {
257
+ opacity: 0.12;
258
+ filter: drop-shadow(0 0 1px var(--loader-color));
259
+ }
260
+ 40%, 60% {
261
+ opacity: 1;
262
+ filter: drop-shadow(0 0 3px var(--loader-color));
263
+ }
264
+ }
265
+ [data-mantine-color-scheme=light] .chevron {
266
+ animation-name: chevronPulseLight;
267
+ }
268
+ @keyframes chevronPulseLight {
269
+ 0%, 100% {
270
+ opacity: 0.2;
271
+ }
272
+ 40%, 60% {
273
+ opacity: 1;
274
+ }
275
+ }
276
+
277
277
  /* src/graph/Graph.globals.css */
278
278
  .elevasis-graph-root .react-flow__node.selected,
279
279
  .elevasis-graph-root .react-flow__node:focus,
@@ -2155,6 +2155,7 @@ type Database = {
2155
2155
  created_at: string | null;
2156
2156
  error: string | null;
2157
2157
  execution_id: string;
2158
+ idempotency_key: string | null;
2158
2159
  input: Json | null;
2159
2160
  last_heartbeat_at: string | null;
2160
2161
  logs: Json | null;
@@ -2181,6 +2182,7 @@ type Database = {
2181
2182
  created_at?: string | null;
2182
2183
  error?: string | null;
2183
2184
  execution_id?: string;
2185
+ idempotency_key?: string | null;
2184
2186
  input?: Json | null;
2185
2187
  last_heartbeat_at?: string | null;
2186
2188
  logs?: Json | null;
@@ -2207,6 +2209,7 @@ type Database = {
2207
2209
  created_at?: string | null;
2208
2210
  error?: string | null;
2209
2211
  execution_id?: string;
2212
+ idempotency_key?: string | null;
2210
2213
  input?: Json | null;
2211
2214
  last_heartbeat_at?: string | null;
2212
2215
  logs?: Json | null;
@@ -3756,6 +3759,12 @@ type Database = {
3756
3759
  };
3757
3760
  };
3758
3761
 
3762
+ declare const workOsOrgIdBrand: unique symbol;
3763
+ /** A WorkOS organization id (`org_...`) -- the auth identity for API/SSE/query keys. */
3764
+ type WorkOsOrgId = string & {
3765
+ readonly [workOsOrgIdBrand]: true;
3766
+ };
3767
+
3759
3768
  /** One state within a stage: minimal shape of key + display label. */
3760
3769
  interface StatefulStateDefinition {
3761
3770
  /** Matches state_key values written by workflow steps. */
@@ -5457,7 +5466,7 @@ interface CrmPrioritySettingsResponse {
5457
5466
  }
5458
5467
  declare const crmPrioritySettingsKeys: {
5459
5468
  all: readonly ["crm-priority-settings"];
5460
- detail: (organizationId: string | null) => readonly ["crm-priority-settings", string | null];
5469
+ detail: (organizationId: WorkOsOrgId | null) => readonly ["crm-priority-settings", WorkOsOrgId | null];
5461
5470
  };
5462
5471
  declare function useCrmPrioritySettings(): _tanstack_react_query.UseQueryResult<CrmPrioritySettingsResponse, Error>;
5463
5472
  declare function useUpdateCrmPrioritySettings(): _tanstack_react_query.UseMutationResult<CrmPrioritySettingsResponse, Error, {
@@ -5494,6 +5503,14 @@ interface CrmPipelineConfig {
5494
5503
  crmApiInterface: CrmApiInterfaceReadiness;
5495
5504
  canUseCrmApiActions: boolean;
5496
5505
  }
5506
+ /**
5507
+ * CRM-shaped wrapper around the generic `getSystemApiInterfaceReadiness`
5508
+ * (`features/operations/systems/systemInterfaceReadiness.ts`) -- pins the
5509
+ * result's `systemPath` / `interfaceKey` / `readinessProfile` types to
5510
+ * `CRM_API_INTERFACE`'s literals so existing call sites keep their exact
5511
+ * types. Structural twin of `getLeadGenApiInterfaceReadiness`, which adopted
5512
+ * the generic helper first; CRM had kept its own copy of the computation.
5513
+ */
5497
5514
  declare function getCrmApiInterfaceReadiness(model: OrganizationModel | undefined): CrmApiInterfaceReadiness;
5498
5515
  /**
5499
5516
  * Reads the tenant's CRM pipeline configuration from the Organization Model.
@@ -1,18 +1,20 @@
1
- export { ActivityFeedWidget, CompanyDetailPage, ContactDetailPage, ConversationThread, CrmOverview, CrmSettingsPage, CrmSidebar, CrmSidebarTop, DealDetailPage, DealsListPage, MetricsStrip, PIPELINE_FUNNEL_ORDER, PipelineFunnelWidget, crmPrioritySettingsKeys, getCrmApiInterfaceReadiness, useCrmPipelineConfig, useCrmPipelineSummary, useCrmPrioritySettings, useCrmQuickMetrics, useRecentCrmActivity, useResetCrmPrioritySettings, useUpdateCrmPrioritySettings } from '../../chunk-7OOFMEX6.js';
2
- import '../../chunk-M6VAZAQW.js';
3
- import '../../chunk-TX3UHDL5.js';
4
- import '../../chunk-NYIIRZSA.js';
1
+ export { ActivityFeedWidget, CompanyDetailPage, ContactDetailPage, ConversationThread, CrmOverview, CrmSettingsPage, CrmSidebar, CrmSidebarTop, DealDetailPage, DealsListPage, MetricsStrip, PIPELINE_FUNNEL_ORDER, PipelineFunnelWidget, crmPrioritySettingsKeys, getCrmApiInterfaceReadiness, useCrmPipelineConfig, useCrmPipelineSummary, useCrmPrioritySettings, useCrmQuickMetrics, useRecentCrmActivity, useResetCrmPrioritySettings, useUpdateCrmPrioritySettings } from '../../chunk-BFLYDVEN.js';
2
+ import '../../chunk-EVNLJHDD.js';
3
+ import '../../chunk-WELN7DDV.js';
4
+ import '../../chunk-GDQQX5SL.js';
5
+ import '../../chunk-2Y6AKWGU.js';
6
+ import '../../chunk-3RK2NNJX.js';
5
7
  import '../../chunk-WDBNW44Z.js';
8
+ import '../../chunk-6B4ZPBQJ.js';
6
9
  import '../../chunk-BZZCNLT6.js';
7
10
  import '../../chunk-TUMSNGTX.js';
8
11
  import '../../chunk-PDHTXPSF.js';
9
- export { CRM_ITEMS, CrmSidebarMiddle, MyTasksPanel, QuickCreateActions, SAVED_VIEW_PRESETS, SavedViewsPanel, crmManifest } from '../../chunk-SB3IHM5Y.js';
10
- import '../../chunk-R6NMRXNO.js';
11
- import '../../chunk-RBGVNPA6.js';
12
- import '../../chunk-ZG6YJUT4.js';
12
+ export { CRM_ITEMS, CrmSidebarMiddle, MyTasksPanel, QuickCreateActions, SAVED_VIEW_PRESETS, SavedViewsPanel, crmManifest } from '../../chunk-K55TU6CC.js';
13
+ import '../../chunk-4WLAVUPS.js';
14
+ import '../../chunk-RXZ3XDBM.js';
15
+ import '../../chunk-JZQNUQE4.js';
13
16
  import '../../chunk-L7BZZ4SI.js';
14
- import '../../chunk-ICHDIVQO.js';
15
- import '../../chunk-MISHPEJX.js';
17
+ import '../../chunk-KXNRTJAE.js';
16
18
  import '../../chunk-62GVNH5U.js';
17
19
  import '../../chunk-P45GQ3ZW.js';
18
20
  import '../../chunk-2GIJBHZT.js';
@@ -23,7 +25,7 @@ import '../../chunk-UD657ICS.js';
23
25
  import '../../chunk-DD3CCMCZ.js';
24
26
  import '../../chunk-RNP5R5I3.js';
25
27
  import '../../chunk-RT4KRGZT.js';
26
- import '../../chunk-A2SB32YV.js';
28
+ import '../../chunk-5ZK7K7YP.js';
27
29
  import '../../chunk-Y6I3IC45.js';
28
30
  import '../../chunk-6SSQGWK7.js';
29
31
  import '../../chunk-BI5VDO2K.js';
@@ -66,65 +66,6 @@
66
66
  color: var(--color-text-dimmed);
67
67
  }
68
68
 
69
- /* src/components/display/ElevasisLoader.module.css */
70
- .wrapper {
71
- display: inline-flex;
72
- align-items: center;
73
- justify-content: center;
74
- width: var(--loader-size);
75
- height: var(--loader-size);
76
- overflow: visible;
77
- }
78
- .loader {
79
- width: 100%;
80
- height: 100%;
81
- display: block;
82
- overflow: visible;
83
- }
84
- .chevron {
85
- stroke: var(--loader-color);
86
- stroke-width: 2;
87
- stroke-linecap: square;
88
- stroke-linejoin: miter;
89
- fill: none;
90
- opacity: 0.15;
91
- animation: chevronPulse 2s ease-in-out infinite;
92
- filter: drop-shadow(0 0 1.5px var(--loader-color));
93
- }
94
- [data-mantine-color-scheme=light] .chevron {
95
- filter: none;
96
- }
97
- .c1 {
98
- animation-delay: 0s;
99
- }
100
- .c2 {
101
- animation-delay: 0.2s;
102
- }
103
- .c3 {
104
- animation-delay: 0.4s;
105
- }
106
- @keyframes chevronPulse {
107
- 0%, 100% {
108
- opacity: 0.12;
109
- filter: drop-shadow(0 0 1px var(--loader-color));
110
- }
111
- 40%, 60% {
112
- opacity: 1;
113
- filter: drop-shadow(0 0 3px var(--loader-color));
114
- }
115
- }
116
- [data-mantine-color-scheme=light] .chevron {
117
- animation-name: chevronPulseLight;
118
- }
119
- @keyframes chevronPulseLight {
120
- 0%, 100% {
121
- opacity: 0.2;
122
- }
123
- 40%, 60% {
124
- opacity: 1;
125
- }
126
- }
127
-
128
69
  /* src/theme/custom.css */
129
70
  .mantine-Button-root[data-variant=default] {
130
71
  background-color: var(--color-surface);
@@ -274,6 +215,65 @@
274
215
  display: none;
275
216
  }
276
217
 
218
+ /* src/components/display/ElevasisLoader.module.css */
219
+ .wrapper {
220
+ display: inline-flex;
221
+ align-items: center;
222
+ justify-content: center;
223
+ width: var(--loader-size);
224
+ height: var(--loader-size);
225
+ overflow: visible;
226
+ }
227
+ .loader {
228
+ width: 100%;
229
+ height: 100%;
230
+ display: block;
231
+ overflow: visible;
232
+ }
233
+ .chevron {
234
+ stroke: var(--loader-color);
235
+ stroke-width: 2;
236
+ stroke-linecap: square;
237
+ stroke-linejoin: miter;
238
+ fill: none;
239
+ opacity: 0.15;
240
+ animation: chevronPulse 2s ease-in-out infinite;
241
+ filter: drop-shadow(0 0 1.5px var(--loader-color));
242
+ }
243
+ [data-mantine-color-scheme=light] .chevron {
244
+ filter: none;
245
+ }
246
+ .c1 {
247
+ animation-delay: 0s;
248
+ }
249
+ .c2 {
250
+ animation-delay: 0.2s;
251
+ }
252
+ .c3 {
253
+ animation-delay: 0.4s;
254
+ }
255
+ @keyframes chevronPulse {
256
+ 0%, 100% {
257
+ opacity: 0.12;
258
+ filter: drop-shadow(0 0 1px var(--loader-color));
259
+ }
260
+ 40%, 60% {
261
+ opacity: 1;
262
+ filter: drop-shadow(0 0 3px var(--loader-color));
263
+ }
264
+ }
265
+ [data-mantine-color-scheme=light] .chevron {
266
+ animation-name: chevronPulseLight;
267
+ }
268
+ @keyframes chevronPulseLight {
269
+ 0%, 100% {
270
+ opacity: 0.2;
271
+ }
272
+ 40%, 60% {
273
+ opacity: 1;
274
+ }
275
+ }
276
+
277
277
  /* src/graph/Graph.globals.css */
278
278
  .elevasis-graph-root .react-flow__node.selected,
279
279
  .elevasis-graph-root .react-flow__node:focus,