@elevasis/ui 2.29.0 → 2.31.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 (125) hide show
  1. package/dist/{CoreAuthKitInner-QC62UHTZ.js → CoreAuthKitInner-KSEGSB67.js} +1 -1
  2. package/dist/api/index.js +3 -3
  3. package/dist/app/index.d.ts +176 -1
  4. package/dist/app/index.js +11 -11
  5. package/dist/auth/context.js +1 -1
  6. package/dist/auth/index.js +5 -5
  7. package/dist/charts/index.d.ts +2 -1
  8. package/dist/charts/index.js +9 -9
  9. package/dist/{chunk-XTVZFT7U.js → chunk-2Q2JQSQO.js} +1 -1
  10. package/dist/{chunk-LH4GPYDX.js → chunk-3BAPR3KA.js} +19 -3
  11. package/dist/{chunk-HLFFKKT3.js → chunk-3FV6HBXS.js} +17 -17
  12. package/dist/{chunk-WKJ47GIW.js → chunk-533DUEQY.js} +1 -1
  13. package/dist/{chunk-SZWXQHKO.js → chunk-542WPQU2.js} +9 -8
  14. package/dist/{chunk-5CW2HXQA.js → chunk-5LJAEZMA.js} +7 -28
  15. package/dist/{chunk-V3HUIZJX.js → chunk-6IXOKUBC.js} +1 -1
  16. package/dist/{chunk-VKMNWHTL.js → chunk-6YT4IKJ7.js} +3 -3
  17. package/dist/{chunk-CEHUFNAL.js → chunk-7HMCB26R.js} +12 -12
  18. package/dist/chunk-7KC4P3AU.js +357 -0
  19. package/dist/{chunk-OWESKPTJ.js → chunk-CQZ3DNQY.js} +30 -11
  20. package/dist/{chunk-ROSMICXG.js → chunk-CXY7FMUM.js} +35 -20
  21. package/dist/{chunk-I2KLQ2HA.js → chunk-DZTG5IAC.js} +7 -1
  22. package/dist/{chunk-JCGD4GM6.js → chunk-GRDLB6LM.js} +1 -0
  23. package/dist/{chunk-FGDUK74A.js → chunk-HQGF4ATG.js} +10 -56
  24. package/dist/{chunk-HOIT677G.js → chunk-HUJCU55S.js} +1 -1
  25. package/dist/{chunk-OIMPGKDB.js → chunk-HYNYEBHM.js} +4 -4
  26. package/dist/{chunk-GESXCQWY.js → chunk-JA5ECJJB.js} +1 -1
  27. package/dist/{chunk-KU7ZDWQ7.js → chunk-JBWJ6WHZ.js} +1 -1
  28. package/dist/{chunk-HNFQCOD2.js → chunk-JKSUN5GN.js} +1107 -370
  29. package/dist/{chunk-5WWZXCS5.js → chunk-KJ3QUBNU.js} +9 -2
  30. package/dist/{chunk-OHGNCWJP.js → chunk-L2NVFLXU.js} +3 -3
  31. package/dist/{chunk-6WXDE5LZ.js → chunk-L3BVJWML.js} +1 -1
  32. package/dist/{chunk-3DUOPXOJ.js → chunk-MVFCLZSK.js} +691 -222
  33. package/dist/{chunk-A7R2URMV.js → chunk-ND42LPY4.js} +44 -10
  34. package/dist/{chunk-CLUP5H3C.js → chunk-O2QOPJI5.js} +360 -126
  35. package/dist/{chunk-VMJVQAFZ.js → chunk-OAVTMITG.js} +1 -1
  36. package/dist/{chunk-X2SUMO3P.js → chunk-P55BJZZW.js} +2 -1
  37. package/dist/{chunk-QNL7UI5G.js → chunk-Q6OYNEGR.js} +6 -6
  38. package/dist/{chunk-Y3YJKKEB.js → chunk-QDEETKYT.js} +5 -2
  39. package/dist/{chunk-XBMCDGHA.js → chunk-QHEWXU7I.js} +1 -1
  40. package/dist/chunk-R2XR4FCV.js +48 -0
  41. package/dist/chunk-R66W5UDG.js +26 -0
  42. package/dist/{chunk-65RQE3XF.js → chunk-SHQXMW4F.js} +1051 -380
  43. package/dist/{chunk-AK5E6ILJ.js → chunk-T3IPHEYJ.js} +1893 -305
  44. package/dist/{chunk-7E3FUTND.js → chunk-TOIXUWR6.js} +1 -1
  45. package/dist/{chunk-FFDAE2QI.js → chunk-TVRQ6AQI.js} +172 -26
  46. package/dist/{chunk-CN2HC4D4.js → chunk-UFTM5SZZ.js} +2 -2
  47. package/dist/{chunk-WFTNY755.js → chunk-VKIZUUPM.js} +1 -1
  48. package/dist/{chunk-KVJ3LFH2.js → chunk-VNFR57DF.js} +4 -24
  49. package/dist/{chunk-S66IQSSR.js → chunk-WF227UBV.js} +1 -1
  50. package/dist/{chunk-6NHCE7JM.js → chunk-Y4FWCG7Y.js} +159 -314
  51. package/dist/components/chat/index.d.ts +2 -1
  52. package/dist/components/chat/index.js +2 -2
  53. package/dist/components/index.d.ts +205 -11
  54. package/dist/components/index.js +51 -48
  55. package/dist/components/navigation/index.js +9 -9
  56. package/dist/execution/index.d.ts +2 -1
  57. package/dist/execution/index.js +1 -1
  58. package/dist/features/auth/index.d.ts +121 -0
  59. package/dist/features/auth/index.js +6 -6
  60. package/dist/features/clients/index.css +611 -0
  61. package/dist/features/clients/index.d.ts +86 -0
  62. package/dist/features/clients/index.js +719 -0
  63. package/dist/features/crm/index.d.ts +148 -2
  64. package/dist/features/crm/index.js +27 -25
  65. package/dist/features/dashboard/index.d.ts +36 -1
  66. package/dist/features/dashboard/index.js +23 -23
  67. package/dist/features/delivery/index.d.ts +121 -0
  68. package/dist/features/delivery/index.js +27 -25
  69. package/dist/features/knowledge/index.js +52 -29
  70. package/dist/features/lead-gen/index.d.ts +116 -12
  71. package/dist/features/lead-gen/index.js +28 -26
  72. package/dist/features/monitoring/index.js +26 -25
  73. package/dist/features/monitoring/requests/index.js +23 -22
  74. package/dist/features/operations/index.d.ts +38 -2
  75. package/dist/features/operations/index.js +32 -31
  76. package/dist/features/seo/index.js +1 -1
  77. package/dist/features/settings/index.d.ts +121 -0
  78. package/dist/features/settings/index.js +25 -24
  79. package/dist/graph/index.js +1 -1
  80. package/dist/hooks/delivery/index.d.ts +140 -0
  81. package/dist/hooks/delivery/index.js +4 -4
  82. package/dist/hooks/index.d.ts +844 -21
  83. package/dist/hooks/index.js +21 -21
  84. package/dist/hooks/operations/command-view/utils/transformCommandViewData.d.ts +82 -1
  85. package/dist/hooks/operations/command-view/utils/transformCommandViewData.js +1 -1
  86. package/dist/hooks/published.d.ts +844 -21
  87. package/dist/hooks/published.js +21 -21
  88. package/dist/index.d.ts +1056 -27
  89. package/dist/index.js +22 -22
  90. package/dist/initialization/index.d.ts +121 -0
  91. package/dist/initialization/index.js +5 -5
  92. package/dist/knowledge/index.d.ts +151 -1
  93. package/dist/knowledge/index.js +1692 -1039
  94. package/dist/layout/index.d.ts +6 -0
  95. package/dist/layout/index.js +4 -4
  96. package/dist/organization/index.js +5 -5
  97. package/dist/profile/index.d.ts +121 -0
  98. package/dist/profile/index.js +3 -3
  99. package/dist/provider/ElevasisServiceContext.d.ts +11 -5
  100. package/dist/provider/ElevasisServiceContext.js +2 -2
  101. package/dist/provider/index.d.ts +337 -7
  102. package/dist/provider/index.js +18 -18
  103. package/dist/provider/published.d.ts +337 -7
  104. package/dist/provider/published.js +14 -14
  105. package/dist/router/context.js +1 -1
  106. package/dist/router/index.js +1 -1
  107. package/dist/sse/index.js +1 -1
  108. package/dist/supabase/index.d.ts +232 -0
  109. package/dist/supabase/index.js +1 -1
  110. package/dist/test-utils/index.d.ts +3 -0
  111. package/dist/test-utils/index.js +31 -7
  112. package/dist/test-utils/setup-integration.js +1 -1
  113. package/dist/test-utils/setup.js +2 -2
  114. package/dist/theme/index.js +4 -4
  115. package/dist/theme/presets/index.js +2 -2
  116. package/dist/typeform/index.js +1 -1
  117. package/dist/typeform/schemas.js +1 -1
  118. package/dist/types/index.d.ts +204 -1
  119. package/dist/utils/index.d.ts +36 -1
  120. package/dist/utils/index.js +2 -2
  121. package/dist/vite/index.js +3 -3
  122. package/dist/vite-plugin-knowledge/index.js +2 -2
  123. package/dist/zustand/index.js +1 -1
  124. package/package.json +14 -5
  125. /package/dist/{chunk-HXZQWMKE.js → chunk-XQHZBA65.js} +0 -0
@@ -1,7 +1,7 @@
1
1
  import { CyberAreaChart, useCyberColors, CyberLegendItem } from './chunk-CW3UNAF2.js';
2
- import { useErrorTrends } from './chunk-VKMNWHTL.js';
3
- import { CardHeader, CenteredErrorState, TrendIndicator, EmptyState, StatCard } from './chunk-6WXDE5LZ.js';
4
- import { getTimeRangeLabel, getTimeRangeDates, formatBucketTime } from './chunk-HXZQWMKE.js';
2
+ import { useErrorTrends } from './chunk-6YT4IKJ7.js';
3
+ import { CardHeader, CenteredErrorState, TrendIndicator, EmptyState, StatCard } from './chunk-L3BVJWML.js';
4
+ import { getTimeRangeLabel, getTimeRangeDates, formatBucketTime } from './chunk-XQHZBA65.js';
5
5
  import { useRef, useState, useLayoutEffect, useEffect, useMemo, useCallback } from 'react';
6
6
  import { jsx, jsxs } from 'react/jsx-runtime';
7
7
  import { Center, Loader, Paper, Button, Group, Text, NumberFormatter, Badge, Space, Tooltip, SimpleGrid, Alert, SegmentedControl, Box } from '@mantine/core';
@@ -302,7 +302,8 @@ function CombinedTrendChart({
302
302
  isLoading,
303
303
  error,
304
304
  timeRange,
305
- navigationAction
305
+ navigationAction,
306
+ compact = false
306
307
  }) {
307
308
  const [activeTab, setActiveTab] = useState("success");
308
309
  const colors = useCyberColors();
@@ -363,7 +364,7 @@ function CombinedTrendChart({
363
364
  ] })
364
365
  }
365
366
  ),
366
- activeTab === "success" && /* @__PURE__ */ jsxs(Box, { style: { height: 280 }, children: [
367
+ activeTab === "success" && /* @__PURE__ */ jsxs(Box, { style: { height: compact ? 180 : 280 }, children: [
367
368
  /* @__PURE__ */ jsxs(Group, { gap: "lg", justify: "center", mb: "xs", h: 24, align: "center", children: [
368
369
  /* @__PURE__ */ jsx(CyberLegendItem, { color: colors.green, label: "Success Count" }),
369
370
  /* @__PURE__ */ jsx(CyberLegendItem, { color: colors.red, label: "Error Count" })
@@ -376,14 +377,14 @@ function CombinedTrendChart({
376
377
  { dataKey: "Error Count", color: "red" },
377
378
  { dataKey: "Success Count", color: "green", animationDuration: 1400 }
378
379
  ],
379
- height: 250,
380
+ height: compact ? 150 : 250,
380
381
  yAxisLabel: "Count",
381
382
  baselineColor: "green",
382
383
  xTickFormatter
383
384
  }
384
385
  )
385
386
  ] }),
386
- activeTab === "throughput" && /* @__PURE__ */ jsxs(Box, { style: { height: 280 }, children: [
387
+ activeTab === "throughput" && /* @__PURE__ */ jsxs(Box, { style: { height: compact ? 180 : 280 }, children: [
387
388
  /* @__PURE__ */ jsxs(Group, { gap: "lg", justify: "center", mb: "xs", h: 24, align: "center", children: [
388
389
  /* @__PURE__ */ jsxs(Group, { gap: 6, children: [
389
390
  /* @__PURE__ */ jsx(Text, { size: "sm", fw: 600, style: { color: colors.blue, fontVariantNumeric: "tabular-nums" }, children: totalExecutions.toLocaleString() }),
@@ -401,7 +402,7 @@ function CombinedTrendChart({
401
402
  {
402
403
  data: throughputData,
403
404
  series: [{ dataKey: "Executions", color: "blue" }],
404
- height: 250,
405
+ height: compact ? 150 : 250,
405
406
  xTickFormatter
406
407
  }
407
408
  )
@@ -1,16 +1,16 @@
1
- import { CostTrendChart, ActivityTrendChart } from './chunk-SZWXQHKO.js';
1
+ import { CostTrendChart, ActivityTrendChart } from './chunk-542WPQU2.js';
2
2
  import { CyberAreaChart } from './chunk-CW3UNAF2.js';
3
3
  import { AppShellLoader } from './chunk-RYTEQBAO.js';
4
4
  import { FilterBar } from './chunk-PDHTXPSF.js';
5
- import { CustomModal } from './chunk-KVJ3LFH2.js';
5
+ import { CustomModal } from './chunk-R66W5UDG.js';
6
6
  import { formatDuration } from './chunk-E4WQGJNS.js';
7
- import { useResolveError, useResolveAllErrors, usePaginationState, useErrorDetails, useMarkAsRead, useExecutionLogsFilters, useExecutionLogs, useExecutionHealth, useErrorAnalysis, useTimeRangeDates, useErrorDetail, useResolveErrorsByExecution, useResources, useCostTrends, useCostSummary, useCostByModel, useCostBreakdown, useActivityFilters, useActivityTrend, useActivities, useNotifications, useMarkAllAsRead, useTestNotification } from './chunk-HNFQCOD2.js';
8
- import { CenteredErrorState, CardHeader, StatsCardSkeleton, TrendIndicator, DetailCardSkeleton, EmptyState, PageTitleCaption, JsonViewer } from './chunk-6WXDE5LZ.js';
7
+ import { useResolveError, useResolveAllErrors, usePaginationState, useErrorDetails, useMarkAsRead, useExecutionLogsFilters, useExecutionLogs, useExecutionHealth, useErrorAnalysis, useTimeRangeDates, useErrorDetail, useResolveErrorsByExecution, useResources, useCostTrends, useCostSummary, useCostByModel, useCostBreakdown, useActivityFilters, useActivityTrend, useActivities, useNotifications, useMarkAllAsRead } from './chunk-JKSUN5GN.js';
8
+ import { CenteredErrorState, CardHeader, StatsCardSkeleton, TrendIndicator, DetailCardSkeleton, EmptyState, PageTitleCaption, JsonViewer } from './chunk-L3BVJWML.js';
9
9
  import { useRouterContext } from './chunk-Q7DJKLEN.js';
10
- import { formatBucketTime, PAGE_SIZE_DEFAULT, getTimeRangeDates } from './chunk-HXZQWMKE.js';
10
+ import { formatBucketTime, PAGE_SIZE_DEFAULT, getTimeRangeDates } from './chunk-XQHZBA65.js';
11
11
  import { useState, useMemo, useCallback } from 'react';
12
12
  import { Table, Text, Badge, Tooltip, Card, Group, Select, SegmentedControl, Button, TextInput, Stack, Paper, Center, Loader, ActionIcon, NumberFormatter, Box, Alert, Switch, Pagination, UnstyledButton, Title, Divider, Code, CopyButton, Accordion } from '@mantine/core';
13
- import { IconActivity, IconFilterOff, IconCircleCheck, IconThumbDown, IconThumbUp, IconClock, IconCircleX, IconSearch, IconArrowUpRight, IconAlertTriangle, IconAlertCircle, IconExternalLink, IconChartPie, IconHeartbeat, IconDownload, IconCpu, IconTrendingUp, IconChartBar, IconCash, IconInfoCircle, IconExclamationCircle, IconBug, IconChecks, IconCircle, IconCircleFilled, IconCheck, IconCopy, IconCircleDashed, IconPlus, IconArrowUp, IconArrowDown, IconFileOff, IconRobot, IconKey, IconUser } from '@tabler/icons-react';
13
+ import { IconActivity, IconFilterOff, IconCircleCheck, IconThumbDown, IconThumbUp, IconClock, IconCircleX, IconSearch, IconArrowUpRight, IconAlertTriangle, IconAlertCircle, IconExternalLink, IconChartPie, IconHeartbeat, IconDownload, IconCpu, IconTrendingUp, IconChartBar, IconCash, IconInfoCircle, IconExclamationCircle, IconBug, IconChecks, IconCircle, IconCircleFilled, IconCheck, IconCopy, IconCircleDashed, IconArrowUp, IconArrowDown, IconFileOff, IconRobot, IconKey, IconUser } from '@tabler/icons-react';
14
14
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
15
15
  import { formatDistanceToNow } from 'date-fns';
16
16
 
@@ -1760,33 +1760,12 @@ function NotificationCenter({ pageSize = 20 }) {
1760
1760
  const { data, isLoading } = useNotifications({ limit: pageSize, offset });
1761
1761
  const notifications = data?.notifications ?? [];
1762
1762
  const markAllAsRead = useMarkAllAsRead();
1763
- const testNotification = useTestNotification();
1764
1763
  const hasUnread = notifications.some((n) => !n.read);
1765
1764
  const handleMarkAllAsRead = async () => {
1766
1765
  await markAllAsRead.mutateAsync();
1767
1766
  };
1768
- const handleCreateTest = async () => {
1769
- await testNotification.mutateAsync();
1770
- };
1771
- const isDevelopment = process.env.NODE_ENV === "development";
1772
1767
  return /* @__PURE__ */ jsxs(Fragment, { children: [
1773
- /* @__PURE__ */ jsxs(Group, { justify: "space-between", children: [
1774
- /* @__PURE__ */ jsx(Title, { order: 1, children: "Notifications" }),
1775
- /* @__PURE__ */ jsxs(Group, { gap: "sm", children: [
1776
- isDevelopment && /* @__PURE__ */ jsx(
1777
- Button,
1778
- {
1779
- variant: "light",
1780
- size: "sm",
1781
- leftSection: /* @__PURE__ */ jsx(IconPlus, { size: 16 }),
1782
- onClick: handleCreateTest,
1783
- loading: testNotification.isPending,
1784
- children: "Create Test Notification"
1785
- }
1786
- ),
1787
- hasUnread && /* @__PURE__ */ jsx(Button, { variant: "light", size: "sm", onClick: handleMarkAllAsRead, loading: markAllAsRead.isPending, children: "Mark all as read" })
1788
- ] })
1789
- ] }),
1768
+ hasUnread && /* @__PURE__ */ jsx(Group, { justify: "flex-end", children: /* @__PURE__ */ jsx(Button, { variant: "light", size: "sm", onClick: handleMarkAllAsRead, loading: markAllAsRead.isPending, children: "Mark all as read" }) }),
1790
1769
  /* @__PURE__ */ jsx(Paper, { children: /* @__PURE__ */ jsx(NotificationList, { notifications, isLoading }) }),
1791
1770
  totalPages(data?.total ?? 0) > 1 && /* @__PURE__ */ jsx(Group, { justify: "flex-start", children: /* @__PURE__ */ jsx(Pagination, { value: page, onChange: setPage, total: totalPages(data?.total ?? 0), size: "sm", boundaries: 1 }) })
1792
1771
  ] });
@@ -1,4 +1,4 @@
1
- import { useInitialization } from './chunk-WKJ47GIW.js';
1
+ import { useInitialization } from './chunk-533DUEQY.js';
2
2
  import { useOrganization } from './chunk-DD3CCMCZ.js';
3
3
  import { createContext, useMemo, useCallback, useContext } from 'react';
4
4
  import { jsx } from 'react/jsx-runtime';
@@ -1,4 +1,4 @@
1
- import { useElevasisServices } from './chunk-5WWZXCS5.js';
1
+ import { useElevasisServices } from './chunk-KJ3QUBNU.js';
2
2
  import { useQuery } from '@tanstack/react-query';
3
3
 
4
4
  // src/hooks/observability/queryKeys.ts
@@ -34,9 +34,9 @@ var observabilityKeys = {
34
34
  recentExecutionsByResource: (organizationId, timeRange, limit) => [...observabilityKeys.all, "recent-executions-by-resource", organizationId, timeRange, limit]
35
35
  };
36
36
  function useErrorTrends({ startDate, endDate, granularity }) {
37
- const { apiRequest, isReady, organizationId } = useElevasisServices();
37
+ const { apiRequest, isReady, workOSOrganizationId } = useElevasisServices();
38
38
  return useQuery({
39
- queryKey: observabilityKeys.errorTrends(organizationId, startDate, endDate, granularity),
39
+ queryKey: observabilityKeys.errorTrends(workOSOrganizationId, startDate, endDate, granularity),
40
40
  queryFn: async () => {
41
41
  const params = new URLSearchParams({ startDate, endDate, granularity });
42
42
  return apiRequest(`/observability/error-analytics/trends?${params.toString()}`);
@@ -1,5 +1,5 @@
1
- import { getErrorInfo, formatErrorMessage, getErrorTitle } from './chunk-HXZQWMKE.js';
2
- import { useElevasisServices } from './chunk-5WWZXCS5.js';
1
+ import { getErrorInfo, formatErrorMessage, getErrorTitle } from './chunk-XQHZBA65.js';
2
+ import { useElevasisServices } from './chunk-KJ3QUBNU.js';
3
3
  import { useQuery, useQueryClient, useMutation } from '@tanstack/react-query';
4
4
  import { notifications } from '@mantine/notifications';
5
5
 
@@ -60,9 +60,9 @@ var milestoneKeys = {
60
60
  detail: (id) => [...milestoneKeys.all, "detail", id]
61
61
  };
62
62
  function useMilestones(filters = {}) {
63
- const { apiRequest, isReady, organizationId } = useElevasisServices();
63
+ const { apiRequest, isReady, workOSOrganizationId } = useElevasisServices();
64
64
  return useQuery({
65
- queryKey: milestoneKeys.list(organizationId, filters),
65
+ queryKey: milestoneKeys.list(workOSOrganizationId, filters),
66
66
  queryFn: async () => {
67
67
  const res = await apiRequest(`/projects/${filters.projectId}/milestones`);
68
68
  return res.milestones;
@@ -141,9 +141,9 @@ var taskKeys = {
141
141
  detail: (id) => [...taskKeys.all, "detail", id]
142
142
  };
143
143
  function useTasks(filters = {}) {
144
- const { apiRequest, isReady, organizationId } = useElevasisServices();
144
+ const { apiRequest, isReady, workOSOrganizationId } = useElevasisServices();
145
145
  return useQuery({
146
- queryKey: taskKeys.list(organizationId, filters),
146
+ queryKey: taskKeys.list(workOSOrganizationId, filters),
147
147
  queryFn: async () => {
148
148
  const params = new URLSearchParams();
149
149
  if (filters.status) params.set("status", filters.status);
@@ -226,9 +226,9 @@ var noteKeys = {
226
226
  detail: (id) => [...noteKeys.all, "detail", id]
227
227
  };
228
228
  function useProjectNotes(filters = {}) {
229
- const { apiRequest, isReady, organizationId } = useElevasisServices();
229
+ const { apiRequest, isReady, workOSOrganizationId } = useElevasisServices();
230
230
  return useQuery({
231
- queryKey: noteKeys.list(organizationId, filters),
231
+ queryKey: noteKeys.list(workOSOrganizationId, filters),
232
232
  queryFn: async () => {
233
233
  const res = await apiRequest(`/projects/${filters.projectId}/notes`);
234
234
  return res.notes;
@@ -269,9 +269,9 @@ var projectKeys = {
269
269
  tasks: (id) => [...projectKeys.all, id, "tasks"]
270
270
  };
271
271
  function useProjects(filters = {}) {
272
- const { apiRequest, isReady, organizationId } = useElevasisServices();
272
+ const { apiRequest, isReady, workOSOrganizationId } = useElevasisServices();
273
273
  return useQuery({
274
- queryKey: projectKeys.list(organizationId, filters),
274
+ queryKey: projectKeys.list(workOSOrganizationId, filters),
275
275
  queryFn: async () => {
276
276
  const params = new URLSearchParams();
277
277
  if (filters.kind) params.set("kind", filters.kind);
@@ -284,9 +284,9 @@ function useProjects(filters = {}) {
284
284
  });
285
285
  }
286
286
  function useProject(id) {
287
- const { apiRequest, isReady, organizationId } = useElevasisServices();
287
+ const { apiRequest, isReady, workOSOrganizationId } = useElevasisServices();
288
288
  return useQuery({
289
- queryKey: [...projectKeys.detail(id), organizationId],
289
+ queryKey: [...projectKeys.detail(id), workOSOrganizationId],
290
290
  queryFn: async () => {
291
291
  try {
292
292
  const res = await apiRequest(`/projects/${id}`);
@@ -0,0 +1,357 @@
1
+ import { SubshellNavItem } from './chunk-X4WBGKJQ.js';
2
+ import { SubshellSidebarSection } from './chunk-IIMU5YAJ.js';
3
+ import { useDealsLookup, useCreateDealTask, useDealTasksDue } from './chunk-JKSUN5GN.js';
4
+ import { useRouterContext } from './chunk-Q7DJKLEN.js';
5
+ import { Box, Stack, Text, UnstyledButton, Group, Button, Modal, Title, Select, TextInput, Textarea, Badge, Center, Loader } from '@mantine/core';
6
+ import { IconLayoutGrid, IconColumns, IconFileInvoice, IconList, IconBuilding, IconAddressBook, IconTrophy, IconClockExclamation, IconUser, IconPlus, IconChecklist, IconTarget, IconCheckbox, IconCalendar, IconMail, IconPhone } from '@tabler/icons-react';
7
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
8
+ import { useState } from 'react';
9
+
10
+ // src/features/crm/workbench/constants.ts
11
+ var SAVED_VIEW_PRESETS = [
12
+ {
13
+ id: "my-deals",
14
+ label: "My Deals",
15
+ iconName: "IconUser",
16
+ target: "/crm/deals"
17
+ },
18
+ {
19
+ id: "overdue",
20
+ label: "Overdue",
21
+ iconName: "IconClockExclamation",
22
+ target: "/crm/deals"
23
+ },
24
+ {
25
+ id: "won-this-month",
26
+ label: "Won this month",
27
+ iconName: "IconTrophy",
28
+ target: "/crm/deals",
29
+ urlFilters: { stage: "closed_won" }
30
+ }
31
+ ];
32
+ var ICON_MAP = {
33
+ IconUser,
34
+ IconClockExclamation,
35
+ IconTrophy
36
+ };
37
+ function SavedViewsPanel({ onViewClick, showSectionLabel = true }) {
38
+ return /* @__PURE__ */ jsx(Box, { children: /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
39
+ showSectionLabel && /* @__PURE__ */ jsx(Text, { fz: "xs", tt: "uppercase", c: "dimmed", fw: 600, mb: 4, children: "Saved Views" }),
40
+ SAVED_VIEW_PRESETS.map((preset) => {
41
+ const Icon = ICON_MAP[preset.iconName];
42
+ return /* @__PURE__ */ jsx(
43
+ UnstyledButton,
44
+ {
45
+ onClick: () => onViewClick(preset),
46
+ style: {
47
+ display: "block",
48
+ width: "100%",
49
+ padding: "4px 6px",
50
+ borderRadius: "var(--mantine-radius-sm)",
51
+ transition: `background-color var(--duration-fast) var(--easing)`
52
+ },
53
+ onMouseEnter: (e) => {
54
+ e.currentTarget.style.backgroundColor = "var(--color-surface-hover)";
55
+ },
56
+ onMouseLeave: (e) => {
57
+ e.currentTarget.style.backgroundColor = "transparent";
58
+ },
59
+ children: /* @__PURE__ */ jsxs(Group, { gap: "xs", wrap: "nowrap", children: [
60
+ /* @__PURE__ */ jsx(Icon, { size: 14, style: { color: "var(--color-text-dimmed)", flexShrink: 0 } }),
61
+ /* @__PURE__ */ jsx(Text, { size: "xs", children: preset.label })
62
+ ] })
63
+ },
64
+ preset.id
65
+ );
66
+ })
67
+ ] }) });
68
+ }
69
+ var KIND_OPTIONS = [
70
+ { value: "call", label: "Call" },
71
+ { value: "email", label: "Email" },
72
+ { value: "meeting", label: "Meeting" },
73
+ { value: "other", label: "Other" }
74
+ ];
75
+ function QuickCreateActions({ showSectionLabel = true }) {
76
+ const [open, setOpen] = useState(false);
77
+ const [dealId, setDealId] = useState(null);
78
+ const [dealSearch, setDealSearch] = useState("");
79
+ const [title, setTitle] = useState("");
80
+ const [description, setDescription] = useState("");
81
+ const [kind, setKind] = useState("other");
82
+ const [dueAt, setDueAt] = useState("");
83
+ const { data: deals, isLoading: isLoadingDeals } = useDealsLookup(
84
+ {
85
+ search: dealSearch || void 0,
86
+ limit: 25
87
+ },
88
+ { enabled: open }
89
+ );
90
+ const createTask = useCreateDealTask();
91
+ const dealOptions = (deals ?? []).map((deal) => ({
92
+ value: deal.id,
93
+ label: deal.displayLabel
94
+ }));
95
+ function resetForm() {
96
+ setDealId(null);
97
+ setDealSearch("");
98
+ setTitle("");
99
+ setDescription("");
100
+ setKind("other");
101
+ setDueAt("");
102
+ }
103
+ function handleClose() {
104
+ setOpen(false);
105
+ resetForm();
106
+ }
107
+ async function handleSubmit() {
108
+ if (!dealId || !title) return;
109
+ await createTask.mutateAsync({
110
+ dealId,
111
+ title,
112
+ description: description || null,
113
+ kind,
114
+ dueAt: dueAt ? new Date(dueAt).toISOString() : null
115
+ });
116
+ handleClose();
117
+ }
118
+ const isSubmitDisabled = !dealId || !title || createTask.isPending;
119
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
120
+ /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
121
+ showSectionLabel && /* @__PURE__ */ jsx(Text, { fz: "xs", tt: "uppercase", c: "dimmed", fw: 600, children: "TASKS" }),
122
+ /* @__PURE__ */ jsx(Button, { variant: "light", size: "xs", leftSection: /* @__PURE__ */ jsx(IconPlus, { size: 14 }), fullWidth: true, onClick: () => setOpen(true), children: "New Task" })
123
+ ] }),
124
+ /* @__PURE__ */ jsxs(Modal, { opened: open, onClose: handleClose, size: "md", children: [
125
+ /* @__PURE__ */ jsxs(Stack, { gap: "sm", children: [
126
+ /* @__PURE__ */ jsx(Title, { order: 3, children: "New Task" }),
127
+ /* @__PURE__ */ jsx(
128
+ Select,
129
+ {
130
+ label: "Deal",
131
+ placeholder: "Search deals",
132
+ data: dealOptions,
133
+ value: dealId,
134
+ onChange: setDealId,
135
+ searchValue: dealSearch,
136
+ onSearchChange: setDealSearch,
137
+ searchable: true,
138
+ nothingFoundMessage: dealSearch ? "No matching deals" : "No deals available",
139
+ disabled: isLoadingDeals,
140
+ required: true
141
+ }
142
+ ),
143
+ /* @__PURE__ */ jsx(
144
+ TextInput,
145
+ {
146
+ label: "Title",
147
+ placeholder: "Task title",
148
+ value: title,
149
+ onChange: (e) => setTitle(e.currentTarget.value),
150
+ required: true
151
+ }
152
+ ),
153
+ /* @__PURE__ */ jsx(
154
+ Textarea,
155
+ {
156
+ label: "Description",
157
+ placeholder: "Optional description",
158
+ value: description,
159
+ onChange: (e) => setDescription(e.currentTarget.value),
160
+ autosize: true,
161
+ minRows: 2,
162
+ maxRows: 5
163
+ }
164
+ ),
165
+ /* @__PURE__ */ jsx(
166
+ Select,
167
+ {
168
+ label: "Kind",
169
+ data: KIND_OPTIONS,
170
+ value: kind,
171
+ onChange: (v) => setKind(v ?? "other")
172
+ }
173
+ ),
174
+ /* @__PURE__ */ jsx(
175
+ TextInput,
176
+ {
177
+ type: "datetime-local",
178
+ label: "Due At",
179
+ value: dueAt,
180
+ onChange: (e) => setDueAt(e.currentTarget.value)
181
+ }
182
+ )
183
+ ] }),
184
+ /* @__PURE__ */ jsxs(Group, { justify: "flex-end", mt: "md", children: [
185
+ /* @__PURE__ */ jsx(Button, { variant: "default", onClick: handleClose, children: "Cancel" }),
186
+ /* @__PURE__ */ jsx(Button, { onClick: handleSubmit, loading: createTask.isPending, disabled: isSubmitDisabled, children: "Create" })
187
+ ] })
188
+ ] })
189
+ ] });
190
+ }
191
+ var CRM_ITEMS = [
192
+ { label: "Overview", to: "/crm", icon: IconLayoutGrid, exact: true },
193
+ { label: "Pipeline", to: "/crm/pipeline", icon: IconColumns, exact: false },
194
+ { label: "Deals", to: "/crm/deals", icon: IconFileInvoice, exact: false }
195
+ ];
196
+ var CrmSidebarMiddle = ({ items = CRM_ITEMS } = {}) => {
197
+ const { currentPath, navigate } = useRouterContext();
198
+ return /* @__PURE__ */ jsxs(Stack, { gap: 0, style: { flex: 1, overflowY: "auto" }, children: [
199
+ /* @__PURE__ */ jsx(Stack, { gap: 0, p: "sm", children: items.map((item) => {
200
+ const isActive = item.exact ? currentPath === item.to || currentPath === `${item.to}/` : currentPath.startsWith(item.to);
201
+ return /* @__PURE__ */ jsx(
202
+ SubshellNavItem,
203
+ {
204
+ icon: item.icon,
205
+ label: item.label,
206
+ isActive,
207
+ href: item.to,
208
+ onClick: () => navigate(item.to)
209
+ },
210
+ item.to
211
+ );
212
+ }) }),
213
+ /* @__PURE__ */ jsx(SubshellSidebarSection, { icon: IconChecklist, label: "My Tasks", withTopBorder: true }),
214
+ /* @__PURE__ */ jsx(Stack, { gap: 0, p: "sm", children: /* @__PURE__ */ jsx(
215
+ MyTasksPanel,
216
+ {
217
+ onTaskClick: (dealId) => navigate(`/crm/deals/${dealId}`),
218
+ onSeeAll: () => navigate("/crm/deals"),
219
+ showSectionLabel: false,
220
+ footer: /* @__PURE__ */ jsx(QuickCreateActions, { showSectionLabel: false })
221
+ }
222
+ ) })
223
+ ] });
224
+ };
225
+ var LEAD_GEN_ITEMS = [
226
+ { label: "Overview", to: "/lead-gen", icon: IconLayoutGrid, exact: true },
227
+ { label: "Lists", to: "/lead-gen/lists", icon: IconList, exact: false },
228
+ { label: "Companies", to: "/lead-gen/companies", icon: IconBuilding, exact: false },
229
+ { label: "Contacts", to: "/lead-gen/contacts", icon: IconAddressBook, exact: false }
230
+ ];
231
+ var LeadGenSidebarMiddle = ({ items = LEAD_GEN_ITEMS } = {}) => {
232
+ const { currentPath, navigate } = useRouterContext();
233
+ return /* @__PURE__ */ jsx(Stack, { gap: 0, style: { flex: 1, overflowY: "auto" }, children: /* @__PURE__ */ jsx(Stack, { gap: 0, p: "sm", children: items.map((item) => {
234
+ const isActive = item.exact ? currentPath === item.to || currentPath === `${item.to}/` : currentPath.startsWith(item.to);
235
+ return /* @__PURE__ */ jsx(
236
+ SubshellNavItem,
237
+ {
238
+ icon: item.icon,
239
+ label: item.label,
240
+ isActive,
241
+ href: item.to,
242
+ onClick: () => navigate(item.to)
243
+ },
244
+ item.to
245
+ );
246
+ }) }) });
247
+ };
248
+ var renderItems = (items, currentPath, navigate) => items.map((item) => {
249
+ const isActive = item.exact ? currentPath === item.to || currentPath === `${item.to}/` : currentPath.startsWith(item.to);
250
+ return /* @__PURE__ */ jsx(
251
+ SubshellNavItem,
252
+ {
253
+ icon: item.icon,
254
+ label: item.label,
255
+ isActive,
256
+ href: item.to,
257
+ onClick: () => navigate(item.to)
258
+ },
259
+ item.to
260
+ );
261
+ });
262
+ var SalesSidebar = () => {
263
+ const { currentPath, navigate } = useRouterContext();
264
+ return /* @__PURE__ */ jsx(Stack, { gap: 0, style: { height: "100%", display: "flex", flexDirection: "column" }, children: /* @__PURE__ */ jsxs(Stack, { gap: 0, style: { flex: 1, overflowY: "auto" }, children: [
265
+ /* @__PURE__ */ jsx(SubshellSidebarSection, { icon: IconTarget, label: "Lead Gen" }),
266
+ /* @__PURE__ */ jsx(Stack, { gap: 0, p: "sm", children: renderItems(LEAD_GEN_ITEMS, currentPath, navigate) }),
267
+ /* @__PURE__ */ jsx(SubshellSidebarSection, { icon: IconAddressBook, label: "CRM", withTopBorder: true }),
268
+ /* @__PURE__ */ jsx(Stack, { gap: 0, p: "sm", children: renderItems(CRM_ITEMS, currentPath, navigate) }),
269
+ /* @__PURE__ */ jsx(SubshellSidebarSection, { icon: IconChecklist, label: "My Tasks", withTopBorder: true }),
270
+ /* @__PURE__ */ jsx(Stack, { gap: 0, p: "sm", children: /* @__PURE__ */ jsx(
271
+ MyTasksPanel,
272
+ {
273
+ onTaskClick: (dealId) => navigate(`/crm/deals/${dealId}`),
274
+ onSeeAll: () => navigate("/crm/deals"),
275
+ showSectionLabel: false,
276
+ footer: /* @__PURE__ */ jsx(QuickCreateActions, { showSectionLabel: false })
277
+ }
278
+ ) })
279
+ ] }) });
280
+ };
281
+ var KIND_ICONS = {
282
+ call: IconPhone,
283
+ email: IconMail,
284
+ meeting: IconCalendar,
285
+ other: IconCheckbox
286
+ };
287
+ function formatDueLabel(dueAt) {
288
+ if (!dueAt) return "";
289
+ const date = new Date(dueAt);
290
+ const now = /* @__PURE__ */ new Date();
291
+ const today = new Date(now.getFullYear(), now.getMonth(), now.getDate());
292
+ const dueDay = new Date(date.getFullYear(), date.getMonth(), date.getDate());
293
+ const diffDays = Math.round((dueDay.getTime() - today.getTime()) / 864e5);
294
+ if (diffDays < 0) return `${Math.abs(diffDays)}d overdue`;
295
+ if (diffDays === 0) {
296
+ return date.toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" });
297
+ }
298
+ return `in ${diffDays}d`;
299
+ }
300
+ function TaskRow({ task, onClick }) {
301
+ const KindIcon = KIND_ICONS[task.kind];
302
+ const dueLabel = formatDueLabel(task.dueAt);
303
+ const isOverdue = task.dueAt !== null && new Date(task.dueAt) < /* @__PURE__ */ new Date();
304
+ return /* @__PURE__ */ jsx(
305
+ UnstyledButton,
306
+ {
307
+ onClick,
308
+ style: {
309
+ display: "block",
310
+ width: "100%",
311
+ padding: "4px 6px",
312
+ borderRadius: "var(--mantine-radius-sm)",
313
+ transition: `background-color var(--duration-fast) var(--easing)`
314
+ },
315
+ onMouseEnter: (e) => {
316
+ e.currentTarget.style.backgroundColor = "var(--color-surface-hover)";
317
+ },
318
+ onMouseLeave: (e) => {
319
+ e.currentTarget.style.backgroundColor = "transparent";
320
+ },
321
+ children: /* @__PURE__ */ jsxs(Group, { gap: "xs", wrap: "nowrap", children: [
322
+ /* @__PURE__ */ jsx(KindIcon, { size: 14, style: { color: "var(--color-text-dimmed)", flexShrink: 0 } }),
323
+ /* @__PURE__ */ jsx(Text, { size: "xs", truncate: true, style: { flex: 1, minWidth: 0 }, children: task.title }),
324
+ dueLabel && /* @__PURE__ */ jsx(Badge, { size: "xs", variant: "light", color: isOverdue ? "red" : "gray", style: { flexShrink: 0 }, children: dueLabel })
325
+ ] })
326
+ }
327
+ );
328
+ }
329
+ function MyTasksPanel({
330
+ onTaskClick,
331
+ onSeeAll,
332
+ footer,
333
+ showSectionLabel = true
334
+ }) {
335
+ const { data, isLoading, isError } = useDealTasksDue({ window: "today_and_overdue" });
336
+ const tasks = data ?? [];
337
+ const total = tasks.length;
338
+ const visible = tasks.slice(0, 5);
339
+ return /* @__PURE__ */ jsx(Box, { children: /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
340
+ showSectionLabel && /* @__PURE__ */ jsxs(Group, { justify: "space-between", mb: 4, children: [
341
+ /* @__PURE__ */ jsx(Text, { fz: "xs", tt: "uppercase", c: "dimmed", fw: 600, children: "My Tasks" }),
342
+ total > 0 && /* @__PURE__ */ jsx(Badge, { size: "xs", variant: "light", children: total })
343
+ ] }),
344
+ isLoading && /* @__PURE__ */ jsx(Center, { py: 4, children: /* @__PURE__ */ jsx(Loader, { size: "xs" }) }),
345
+ isError && /* @__PURE__ */ jsx(Text, { size: "xs", c: "red", children: "Failed to load tasks" }),
346
+ !isLoading && !isError && visible.length === 0 && /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", children: "No tasks due - you're caught up." }),
347
+ !isLoading && !isError && visible.map((task) => /* @__PURE__ */ jsx(TaskRow, { task, onClick: () => onTaskClick(task.dealId) }, task.id)),
348
+ onSeeAll && total > 5 && /* @__PURE__ */ jsx(UnstyledButton, { onClick: onSeeAll, mt: 2, style: { display: "inline-block" }, children: /* @__PURE__ */ jsxs(Text, { size: "xs", c: "dimmed", style: { textDecoration: "underline" }, children: [
349
+ "See all (",
350
+ total,
351
+ ")"
352
+ ] }) }),
353
+ footer
354
+ ] }) });
355
+ }
356
+
357
+ export { CRM_ITEMS, CrmSidebarMiddle, LEAD_GEN_ITEMS, LeadGenSidebarMiddle, MyTasksPanel, QuickCreateActions, SAVED_VIEW_PRESETS, SalesSidebar, SavedViewsPanel };
@@ -1,10 +1,10 @@
1
- import { ApiClientProvider, useApiClient } from './chunk-7E3FUTND.js';
2
- import { OrganizationProvider } from './chunk-HOIT677G.js';
3
- import { getErrorInfo, getErrorTitle, formatErrorMessage } from './chunk-HXZQWMKE.js';
4
- import { InitializationProvider } from './chunk-WKJ47GIW.js';
1
+ import { ApiClientProvider, useApiClient } from './chunk-TOIXUWR6.js';
2
+ import { OrganizationProvider } from './chunk-HUJCU55S.js';
3
+ import { getErrorInfo, getErrorTitle, formatErrorMessage } from './chunk-XQHZBA65.js';
4
+ import { InitializationProvider } from './chunk-533DUEQY.js';
5
5
  import { useOrganization } from './chunk-DD3CCMCZ.js';
6
- import { ProfileProvider } from './chunk-XTVZFT7U.js';
7
- import { ElevasisServiceProvider } from './chunk-5WWZXCS5.js';
6
+ import { ProfileProvider } from './chunk-2Q2JQSQO.js';
7
+ import { ElevasisServiceProvider } from './chunk-KJ3QUBNU.js';
8
8
  import { useAuthContext } from './chunk-BRJ3QZ4E.js';
9
9
  import { createContext, lazy, useContext, Suspense, useRef } from 'react';
10
10
  import { jsx } from 'react/jsx-runtime';
@@ -56,6 +56,7 @@ var ORGANIZATION_MODEL_ICON_TOKENS = [
56
56
  "knowledge.reference",
57
57
  "feature.dashboard",
58
58
  "feature.calendar",
59
+ "feature.business",
59
60
  "feature.sales",
60
61
  "feature.crm",
61
62
  "feature.finance",
@@ -364,7 +365,7 @@ var ACQ_LIST_COMPANIES_LEAD_GEN_PIPELINE = {
364
365
  {
365
366
  stageKey: "outreach",
366
367
  label: "Outreach",
367
- states: [PENDING_STATE]
368
+ states: [PENDING_STATE, { stateKey: "uploaded", label: "Uploaded" }]
368
369
  },
369
370
  {
370
371
  stageKey: "prospecting",
@@ -402,6 +403,13 @@ var LEAD_GEN_STAGE_CATALOG = {
402
403
  order: 2,
403
404
  entity: "company"
404
405
  },
406
+ crawled: {
407
+ key: "crawled",
408
+ label: "Websites crawled",
409
+ description: "Company websites have been crawled (e.g. via Apify) and raw page content stored for downstream LLM analysis.",
410
+ order: 2.5,
411
+ entity: "company"
412
+ },
405
413
  extracted: {
406
414
  key: "extracted",
407
415
  label: "Websites analyzed",
@@ -421,7 +429,9 @@ var LEAD_GEN_STAGE_CATALOG = {
421
429
  label: "Decision-makers found",
422
430
  description: "Decision-maker contacts discovered and attached to a qualified company.",
423
431
  order: 6,
424
- entity: "company"
432
+ entity: "company",
433
+ recordEntity: "contact",
434
+ recordStageKey: "discovered"
425
435
  },
426
436
  // Prospecting — contact discovery
427
437
  discovered: {
@@ -459,7 +469,8 @@ var LEAD_GEN_STAGE_CATALOG = {
459
469
  label: "Reviewed and exported",
460
470
  description: "Approved records have been reviewed and exported for handoff.",
461
471
  order: 10,
462
- entity: "contact"
472
+ entity: "company",
473
+ additionalEntities: ["contact"]
463
474
  },
464
475
  interested: {
465
476
  key: "interested",
@@ -627,7 +638,7 @@ function findListActionByCapability(registry, capabilityKey) {
627
638
  function getListActionWorkflowId(action) {
628
639
  return action.workflowId ?? action.resourceId;
629
640
  }
630
- var LazyCoreAuthKitInner = lazy(() => import('./CoreAuthKitInner-QC62UHTZ.js').then((m) => ({ default: m.CoreAuthKitInner })));
641
+ var LazyCoreAuthKitInner = lazy(() => import('./CoreAuthKitInner-KSEGSB67.js').then((m) => ({ default: m.CoreAuthKitInner })));
631
642
  var defaultQueryClient = null;
632
643
  function getDefaultQueryClient() {
633
644
  if (!defaultQueryClient) {
@@ -715,7 +726,15 @@ function OrgServiceBridge({
715
726
  const { currentWorkOSOrganizationId, isInitializing, isOrgRefreshing } = useOrganization();
716
727
  orgIdRef.current = currentWorkOSOrganizationId;
717
728
  const isReady = !!currentWorkOSOrganizationId && !isInitializing && !isOrgRefreshing;
718
- return /* @__PURE__ */ jsx(ElevasisServiceProvider, { apiRequest, organizationId: currentWorkOSOrganizationId, isReady, children: /* @__PURE__ */ jsx(NotificationProvider, { adapter: notifications, children: /* @__PURE__ */ jsx(InitializationProvider, { children }) }) });
729
+ return /* @__PURE__ */ jsx(
730
+ ElevasisServiceProvider,
731
+ {
732
+ apiRequest,
733
+ workOSOrganizationId: currentWorkOSOrganizationId,
734
+ isReady,
735
+ children: /* @__PURE__ */ jsx(NotificationProvider, { adapter: notifications, children: /* @__PURE__ */ jsx(InitializationProvider, { children }) })
736
+ }
737
+ );
719
738
  }
720
739
 
721
740
  export { CRM_PIPELINE_DEFINITION, CRM_PRIORITY_BUCKETS, ColorTokenSchema, CrmActionsProvider, DEFAULT_CRM_PRIORITY_RULE_CONFIG, DEFAULT_ORGANIZATION_MODEL_SALES, DescriptionSchema, DisplayMetadataSchema, EMPTY_LIST_ACTIONS, ElevasisCoreProvider, IconNameSchema, LEAD_GEN_PIPELINE_DEFINITIONS, LEAD_GEN_STAGE_CATALOG, LabelSchema, ListActionsProvider, ModelIdSchema, NotificationProvider, OrganizationModelSalesSchema, PathSchema, ReferenceIdsSchema, deriveActions, findListActionByCapability, findPipeline, getListActionWorkflowId, useCrmActions, useListActions, useNotificationAdapter };