@elevasis/ui 2.74.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-GO4XJ5D4.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-CRA7WQZH.js → chunk-3RK2NNJX.js} +1 -1
  10. package/dist/{chunk-R6NMRXNO.js → chunk-4WLAVUPS.js} +1 -1
  11. package/dist/{chunk-GPQQGQGT.js → chunk-5R4I2PAN.js} +9 -43
  12. package/dist/{chunk-R5UGIFYU.js → chunk-5ZK7K7YP.js} +25 -1
  13. package/dist/chunk-6B4ZPBQJ.js +7 -0
  14. package/dist/{chunk-ARAFQBNI.js → chunk-73G3I5HJ.js} +160 -160
  15. package/dist/{chunk-ZWI62BQ6.js → chunk-BFLYDVEN.js} +32 -42
  16. package/dist/{chunk-W2QRBQQA.js → chunk-BG6PWDJ3.js} +381 -381
  17. package/dist/{chunk-7ARBBELS.js → chunk-BV2RNLPP.js} +1 -1
  18. package/dist/{chunk-FA7LMNQO.js → chunk-CTT4RDXE.js} +150 -151
  19. package/dist/chunk-E2LJ3FRA.js +237 -0
  20. package/dist/{chunk-E6YGA5WH.js → chunk-EFQLXRYT.js} +1 -2
  21. package/dist/{chunk-FZSG6M6W.js → chunk-EVNLJHDD.js} +3 -3
  22. package/dist/{chunk-ZYNVCWDZ.js → chunk-GDQQX5SL.js} +4 -42
  23. package/dist/{chunk-DCQKTDIG.js → chunk-GFSOQH3N.js} +1 -1
  24. package/dist/{chunk-3LOKYZJC.js → chunk-H5AEYSVX.js} +164 -3
  25. package/dist/{chunk-ZFISGKYW.js → chunk-IIEZXXDD.js} +1 -1
  26. package/dist/{chunk-3QHX4ZKV.js → chunk-INCEZAM3.js} +1 -1
  27. package/dist/{chunk-O32UQ26A.js → chunk-JZQNUQE4.js} +1 -1
  28. package/dist/{chunk-6JN2TLV2.js → chunk-K55TU6CC.js} +2023 -1700
  29. package/dist/chunk-KB5CAN5D.js +33 -0
  30. package/dist/{chunk-2MRRDF32.js → chunk-KMA4FOSV.js} +5682 -5675
  31. package/dist/{chunk-HYQOGRWG.js → chunk-KXNRTJAE.js} +1 -1
  32. package/dist/{chunk-7RJ7P6S6.js → chunk-MGAELVTZ.js} +12 -12
  33. package/dist/chunk-MKH2KOAO.js +39 -0
  34. package/dist/{chunk-4MXNHJTA.js → chunk-NAPXMYFW.js} +939 -1570
  35. package/dist/{chunk-CQPULKKL.js → chunk-OGG3QJYW.js} +14 -5
  36. package/dist/{chunk-4M2BSHVT.js → chunk-P6HHXMLJ.js} +1 -1
  37. package/dist/{chunk-WZU3MCKI.js → chunk-QAILYRC2.js} +1 -1
  38. package/dist/{chunk-RBGVNPA6.js → chunk-RXZ3XDBM.js} +1 -1
  39. package/dist/{chunk-BA3AZJUR.js → chunk-SPW6UA6B.js} +1 -1
  40. package/dist/{chunk-RFNJ2PTO.js → chunk-SVZR4GYA.js} +1 -1
  41. package/dist/{chunk-5A6KCFS5.js → chunk-UEY4AB3R.js} +789 -66
  42. package/dist/{chunk-LN4UW6S4.js → chunk-UL6MPMKY.js} +1 -1
  43. package/dist/{chunk-ZFA56VSR.js → chunk-WELN7DDV.js} +2 -2
  44. package/dist/{chunk-43LC6XAX.js → chunk-WJN2VVVJ.js} +1 -1
  45. package/dist/{chunk-BRTGCFBH.js → chunk-XODQUPFW.js} +11 -11
  46. package/dist/components/index.d.ts +181 -34
  47. package/dist/components/index.js +2249 -1804
  48. package/dist/components/navigation/index.js +7 -8
  49. package/dist/features/auth/index.d.ts +35 -3716
  50. package/dist/features/auth/index.js +9 -10
  51. package/dist/features/clients/index.js +18 -12
  52. package/dist/features/content/index.js +34 -31
  53. package/dist/features/crm/index.css +59 -59
  54. package/dist/features/crm/index.d.ts +18 -1
  55. package/dist/features/crm/index.js +13 -11
  56. package/dist/features/dashboard/index.css +59 -59
  57. package/dist/features/dashboard/index.js +8 -9
  58. package/dist/features/delivery/index.d.ts +3 -0
  59. package/dist/features/delivery/index.js +21 -20
  60. package/dist/features/knowledge/index.js +6 -7
  61. package/dist/features/lead-gen/index.css +59 -59
  62. package/dist/features/lead-gen/index.d.ts +3903 -2
  63. package/dist/features/lead-gen/index.js +15 -13
  64. package/dist/features/monitoring/index.js +10 -11
  65. package/dist/features/monitoring/requests/index.css +59 -59
  66. package/dist/features/monitoring/requests/index.js +8 -9
  67. package/dist/features/notes/index.js +4 -4
  68. package/dist/features/operations/index.css +59 -59
  69. package/dist/features/operations/index.js +13 -15
  70. package/dist/features/seo/index.css +659 -0
  71. package/dist/features/seo/index.d.ts +3962 -1
  72. package/dist/features/seo/index.js +31 -2
  73. package/dist/features/settings/index.css +59 -59
  74. package/dist/features/settings/index.d.ts +87 -3745
  75. package/dist/features/settings/index.js +10 -12
  76. package/dist/hooks/access/index.js +6 -7
  77. package/dist/hooks/delivery/index.css +59 -59
  78. package/dist/hooks/delivery/index.d.ts +13 -4
  79. package/dist/hooks/delivery/index.js +3 -3
  80. package/dist/hooks/published.d.ts +69 -27
  81. package/dist/hooks/published.js +19 -19
  82. package/dist/initialization/index.d.ts +35 -3716
  83. package/dist/knowledge/index.js +11 -11
  84. package/dist/layout/index.d.ts +55 -2
  85. package/dist/layout/index.js +10 -10
  86. package/dist/organization/index.css +59 -59
  87. package/dist/profile/index.d.ts +64 -3716
  88. package/dist/provider/index.d.ts +3 -0
  89. package/dist/provider/index.js +6 -7
  90. package/dist/provider/published.d.ts +3 -0
  91. package/dist/provider/published.js +6 -7
  92. package/dist/test-utils/index.js +3 -3
  93. package/dist/theme/index.js +3 -3
  94. package/dist/theme/presets/index.js +1 -1
  95. package/dist/types/index.d.ts +312 -251
  96. package/dist/utils/index.d.ts +1 -1
  97. package/dist/utils/index.js +1 -1
  98. package/package.json +9 -9
  99. package/src/hooks/README.md +22 -23
  100. package/dist/chunk-6ZAP3FOA.js +0 -93
  101. package/dist/chunk-AH52XQB7.js +0 -1
  102. package/dist/chunk-GDOR57D7.js +0 -165
  103. package/dist/chunk-MISHPEJX.js +0 -244
  104. package/dist/hooks/operations/command-view/utils/transformCommandViewData.d.ts +0 -879
  105. package/dist/hooks/operations/command-view/utils/transformCommandViewData.js +0 -2
@@ -1,12 +1,11 @@
1
- import { AppShellError } from '../../chunk-E6YGA5WH.js';
2
- import { computeProtectedRouteGate, DEFAULT_WAIT_FOR_ORGANIZATION, ProtectedRoute, AppearanceContext, AccessGuard, SystemUnavailableState, useAppearance } from '../../chunk-6JN2TLV2.js';
3
- export { AccessGuard } from '../../chunk-6JN2TLV2.js';
4
- import '../../chunk-R6NMRXNO.js';
5
- import '../../chunk-RBGVNPA6.js';
6
- import '../../chunk-O32UQ26A.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-HYQOGRWG.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-R5UGIFYU.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-4M2BSHVT.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-6JN2TLV2.js';
7
- export { clientsManifest } from '../../chunk-6JN2TLV2.js';
8
- import '../../chunk-R6NMRXNO.js';
9
- import '../../chunk-RBGVNPA6.js';
10
- import '../../chunk-O32UQ26A.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-HYQOGRWG.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-R5UGIFYU.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-3QHX4ZKV.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-6JN2TLV2.js';
6
- export { CONTENT_ITEMS, ContentSidebar, ContentSidebarMiddle, DEFAULT_CONTENT_VOCABULARY, MyReviewQueuePanel, contentManifest, deriveContentBoard, getContentItemIdentity, resolveContentStepResource, resolveContentVocabulary, useContentConfig } from '../../chunk-6JN2TLV2.js';
7
- import '../../chunk-R6NMRXNO.js';
8
- import '../../chunk-RBGVNPA6.js';
9
- import '../../chunk-O32UQ26A.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-HYQOGRWG.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-R5UGIFYU.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';
@@ -961,10 +961,13 @@ function SourceAssetsPanel({ itemId }) {
961
961
  size: "xs",
962
962
  placeholder: "Describe this slide",
963
963
  value: draft ?? storedAltText,
964
- onChange: (event) => setAltDrafts((drafts) => ({
965
- ...drafts,
966
- [membership.sourceAssetId]: event.currentTarget.value
967
- }))
964
+ onChange: (event) => {
965
+ const value = event.currentTarget.value;
966
+ setAltDrafts((drafts) => ({
967
+ ...drafts,
968
+ [membership.sourceAssetId]: value
969
+ }));
970
+ }
968
971
  }
969
972
  ),
970
973
  draft !== void 0 && draft !== storedAltText && /* @__PURE__ */ jsx(
@@ -1298,7 +1301,7 @@ function CaptionPanel({ itemId, body, onDraftChange }) {
1298
1301
  return rows.map((row, index) => ({ ...row, displayNumber: rows.length - index }));
1299
1302
  }, [attemptsQuery.data]);
1300
1303
  const status = execution.data?.status;
1301
- const isRunning = executeAsync.isPending || executionId !== null && (status === void 0 || status === "running");
1304
+ const isRunning = executeAsync.isPending || executionId !== null && (status === void 0 || isExecutionInFlight(status));
1302
1305
  const lastSyncedRef = useRef(savedBody);
1303
1306
  const [debouncedDraft] = useDebouncedValue(draft, AUTOSAVE_DELAY_MS);
1304
1307
  useEffect(() => {
@@ -1316,7 +1319,7 @@ function CaptionPanel({ itemId, body, onDraftChange }) {
1316
1319
  }, [draft, onDraftChange]);
1317
1320
  const isDirty = draft !== lastSyncedRef.current;
1318
1321
  useEffect(() => {
1319
- if (executionId === null || status === void 0 || status === "running") return;
1322
+ if (executionId === null || status === void 0 || isExecutionInFlight(status)) return;
1320
1323
  if (status === "failed") {
1321
1324
  setFailure(execution.data?.error ?? "The caption workflow failed. Check the execution log for details.");
1322
1325
  }
@@ -1463,13 +1466,13 @@ function SlideAnalysisPanel({ itemId }) {
1463
1466
  const executeAsync = useExecuteAsync();
1464
1467
  const execution = useExecution(IMAGE_ANALYSIS_WORKFLOW_ID, executionId ?? "");
1465
1468
  const status = execution.data?.status;
1466
- const isRunning = executeAsync.isPending || executionId !== null && (status === void 0 || status === "running");
1469
+ const isRunning = executeAsync.isPending || executionId !== null && (status === void 0 || isExecutionInFlight(status));
1467
1470
  const analyzedCount = useMemo(
1468
1471
  () => memberships.filter((detail) => readStoredAnalysis(detail.asset) !== null).length,
1469
1472
  [memberships]
1470
1473
  );
1471
1474
  useEffect(() => {
1472
- if (executionId === null || status === void 0 || status === "running") return;
1475
+ if (executionId === null || status === void 0 || isExecutionInFlight(status)) return;
1473
1476
  if (status === "failed") {
1474
1477
  setFailure(execution.data?.error ?? "The analysis workflow failed. Check the execution log for details.");
1475
1478
  }
@@ -1748,7 +1751,7 @@ function ContentItemsPage({ headerActions } = {}) {
1748
1751
  { value: "", label: "All pillars" },
1749
1752
  ...(contentConfig.stagesByCatalog.pillar ?? []).map((entry) => ({ value: entry.key, label: entry.label }))
1750
1753
  ];
1751
- return /* @__PURE__ */ jsx(SubshellContentContainer, { children: /* @__PURE__ */ jsx(PageContainer, { children: /* @__PURE__ */ jsxs(Stack, { children: [
1754
+ return /* @__PURE__ */ jsx(SubshellPageLayout, { children: /* @__PURE__ */ jsxs(Stack, { children: [
1752
1755
  /* @__PURE__ */ jsx(
1753
1756
  PageTitleCaption,
1754
1757
  {
@@ -1840,7 +1843,7 @@ function ContentItemsPage({ headerActions } = {}) {
1840
1843
  }
1841
1844
  ) })
1842
1845
  ] }) })
1843
- ] }) }) });
1846
+ ] }) });
1844
1847
  }
1845
1848
 
1846
1849
  // src/lib/content/processing-state.ts
@@ -2040,7 +2043,7 @@ function ContentItemReviewPage({ itemId, headerActions }) {
2040
2043
  }
2041
2044
  );
2042
2045
  if (itemQuery.isLoading) {
2043
- return /* @__PURE__ */ jsx(SubshellContentContainer, { children: /* @__PURE__ */ jsx(PageContainer, { children: /* @__PURE__ */ jsxs(Stack, { children: [
2046
+ return /* @__PURE__ */ jsx(SubshellPageLayout, { children: /* @__PURE__ */ jsxs(Stack, { children: [
2044
2047
  /* @__PURE__ */ jsx(
2045
2048
  PageTitleCaption,
2046
2049
  {
@@ -2050,7 +2053,7 @@ function ContentItemReviewPage({ itemId, headerActions }) {
2050
2053
  }
2051
2054
  ),
2052
2055
  /* @__PURE__ */ jsx(Paper, { withBorder: true, children: /* @__PURE__ */ jsx(Center, { p: "xl", children: /* @__PURE__ */ jsx(Loader, {}) }) })
2053
- ] }) }) });
2056
+ ] }) });
2054
2057
  }
2055
2058
  if (itemQuery.isError || !item) {
2056
2059
  return /* @__PURE__ */ jsx(SubshellContentContainer, { children: /* @__PURE__ */ jsx(PageContainer, { children: /* @__PURE__ */ jsxs(Stack, { children: [
@@ -2288,7 +2291,7 @@ function ContentPipelinesPage({ headerActions } = {}) {
2288
2291
  const contentConfig = useContentConfig();
2289
2292
  const { vocabulary } = contentConfig;
2290
2293
  const statusEntries = contentConfig.stagesByCatalog.status ?? [];
2291
- return /* @__PURE__ */ jsx(SubshellContentContainer, { children: /* @__PURE__ */ jsx(PageContainer, { children: /* @__PURE__ */ jsxs(Stack, { children: [
2294
+ return /* @__PURE__ */ jsx(SubshellPageLayout, { children: /* @__PURE__ */ jsxs(Stack, { children: [
2292
2295
  /* @__PURE__ */ jsx(
2293
2296
  PageTitleCaption,
2294
2297
  {
@@ -2311,7 +2314,7 @@ function ContentPipelinesPage({ headerActions } = {}) {
2311
2314
  ] }) }),
2312
2315
  /* @__PURE__ */ jsx(Table.Tbody, { children: contentConfig.pipelines.map((pipeline) => /* @__PURE__ */ jsx(PipelineRow, { pipeline, statusEntries }, pipeline.id)) })
2313
2316
  ] }) })
2314
- ] }) }) });
2317
+ ] }) });
2315
2318
  }
2316
2319
  var ACTOR_LEAD = {
2317
2320
  vendor: "An outside service handles",
@@ -2698,7 +2701,7 @@ function ContentPipelineBoardPage({
2698
2701
  }
2699
2702
  );
2700
2703
  if (!pipeline) {
2701
- return /* @__PURE__ */ jsx(SubshellContentContainer, { children: /* @__PURE__ */ jsx(PageContainer, { children: /* @__PURE__ */ jsxs(Stack, { children: [
2704
+ return /* @__PURE__ */ jsx(SubshellPageLayout, { children: /* @__PURE__ */ jsxs(Stack, { children: [
2702
2705
  /* @__PURE__ */ jsx(
2703
2706
  PageTitleCaption,
2704
2707
  {
@@ -2712,7 +2715,7 @@ function ContentPipelineBoardPage({
2712
2715
  pipelineId,
2713
2716
  '" is declared on the content System.'
2714
2717
  ] }) }) })
2715
- ] }) }) });
2718
+ ] }) });
2716
2719
  }
2717
2720
  return /* @__PURE__ */ jsx(SubshellContentContainer, { children: /* @__PURE__ */ jsx(PageContainer, { children: /* @__PURE__ */ jsxs(Stack, { children: [
2718
2721
  /* @__PURE__ */ jsx(
@@ -2789,7 +2792,7 @@ function ContentDistributionsPage({ headerActions } = {}) {
2789
2792
  );
2790
2793
  const paginatedDistributions = filteredDistributions.slice(pagination.offset, pagination.offset + PAGE_SIZE3);
2791
2794
  const resolveTitle = (distribution) => itemTitleById.get(distribution.contentItemId) ?? distribution.contentItemId;
2792
- return /* @__PURE__ */ jsx(SubshellContentContainer, { children: /* @__PURE__ */ jsx(PageContainer, { children: /* @__PURE__ */ jsxs(Stack, { children: [
2795
+ return /* @__PURE__ */ jsx(SubshellPageLayout, { children: /* @__PURE__ */ jsxs(Stack, { children: [
2793
2796
  /* @__PURE__ */ jsx(
2794
2797
  PageTitleCaption,
2795
2798
  {
@@ -2908,7 +2911,7 @@ function ContentDistributionsPage({ headerActions } = {}) {
2908
2911
  }
2909
2912
  ) })
2910
2913
  ] }) })
2911
- ] }) }) });
2914
+ ] }) });
2912
2915
  }
2913
2916
  var COMMON_PLATFORM_FIELDS = [
2914
2917
  { key: "title", label: "Title" },
@@ -3022,10 +3025,10 @@ function ContentDistributionDetailPage({
3022
3025
  }
3023
3026
  );
3024
3027
  if (distributionQuery.isLoading) {
3025
- return /* @__PURE__ */ jsx(SubshellContentContainer, { children: /* @__PURE__ */ jsx(PageContainer, { children: /* @__PURE__ */ jsxs(Stack, { children: [
3028
+ return /* @__PURE__ */ jsx(SubshellPageLayout, { children: /* @__PURE__ */ jsxs(Stack, { children: [
3026
3029
  /* @__PURE__ */ jsx(PageTitleCaption, { title: "Distribution", caption: "Loading distribution", rightSection: backButton }),
3027
3030
  /* @__PURE__ */ jsx(Card, { withBorder: true, children: /* @__PURE__ */ jsx(Center, { p: "xl", children: /* @__PURE__ */ jsx(Loader, {}) }) })
3028
- ] }) }) });
3031
+ ] }) });
3029
3032
  }
3030
3033
  if (distributionQuery.isError || !dist) {
3031
3034
  return /* @__PURE__ */ jsx(SubshellContentContainer, { children: /* @__PURE__ */ jsx(PageContainer, { children: /* @__PURE__ */ jsxs(Stack, { children: [
@@ -3478,10 +3481,10 @@ function ContentWorkspaceShell({
3478
3481
  ] })
3479
3482
  ] });
3480
3483
  })();
3481
- 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: [
3482
3485
  /* @__PURE__ */ jsx(PageTitleCaption, { title, caption, rightSection: headerRight }),
3483
3486
  !isStarted && renderStart !== void 0 ? renderStart(startControls) : body
3484
- ] }) }) });
3487
+ ] }) });
3485
3488
  }
3486
3489
  function ContentAnalysisStepPanel(state) {
3487
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-ZWI62BQ6.js';
2
- import '../../chunk-FZSG6M6W.js';
3
- import '../../chunk-ZFA56VSR.js';
4
- import '../../chunk-ZYNVCWDZ.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-6JN2TLV2.js';
10
- import '../../chunk-R6NMRXNO.js';
11
- import '../../chunk-RBGVNPA6.js';
12
- import '../../chunk-O32UQ26A.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-HYQOGRWG.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-R5UGIFYU.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,