@elevasis/ui 2.39.1 → 2.39.3

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 (77) hide show
  1. package/dist/api/index.js +3 -3
  2. package/dist/app/index.css +12 -2
  3. package/dist/app/index.d.ts +18 -0
  4. package/dist/app/index.js +10 -10
  5. package/dist/auth/index.js +5 -5
  6. package/dist/charts/index.js +8 -8
  7. package/dist/{chunk-N4IO4CQO.js → chunk-4DRI3G36.js} +2 -2
  8. package/dist/{chunk-D3EWFGLF.js → chunk-7MTWRSUZ.js} +3 -3
  9. package/dist/{chunk-GTTMOKIB.js → chunk-7PHY5ONQ.js} +1 -1
  10. package/dist/{chunk-AIP3GC2N.js → chunk-CTJBPF3Z.js} +1 -1
  11. package/dist/{chunk-MEOXQKW6.js → chunk-EEG6ALQR.js} +270 -213
  12. package/dist/{chunk-AVQPF7PE.js → chunk-IUQAP4IO.js} +2 -2
  13. package/dist/{chunk-2XBCYJS3.js → chunk-J3FLIZY4.js} +2 -2
  14. package/dist/{chunk-FZIPSE3S.js → chunk-K7GKKETO.js} +1 -1
  15. package/dist/{chunk-MWRFFGOH.js → chunk-LJDYY3XB.js} +1 -1
  16. package/dist/{chunk-PRMWQA5R.js → chunk-LY3YTQC6.js} +4 -4
  17. package/dist/{chunk-ZPRCGNZT.js → chunk-NKEXXL4O.js} +5 -5
  18. package/dist/{chunk-PE3FAAW3.js → chunk-RH5VWWSC.js} +3 -1
  19. package/dist/{chunk-PFPM654Z.js → chunk-RXH4D6TY.js} +1 -1
  20. package/dist/{chunk-IOSJHARH.js → chunk-TE4P6OSJ.js} +1 -1
  21. package/dist/components/index.css +12 -2
  22. package/dist/components/index.d.ts +18 -0
  23. package/dist/components/index.js +13 -13
  24. package/dist/components/navigation/index.js +4 -4
  25. package/dist/features/auth/index.css +12 -2
  26. package/dist/features/auth/index.d.ts +18 -0
  27. package/dist/features/auth/index.js +14 -14
  28. package/dist/features/clients/index.css +12 -2
  29. package/dist/features/clients/index.js +13 -13
  30. package/dist/features/crm/index.css +12 -2
  31. package/dist/features/crm/index.d.ts +18 -0
  32. package/dist/features/crm/index.js +13 -13
  33. package/dist/features/dashboard/index.css +12 -2
  34. package/dist/features/dashboard/index.js +13 -13
  35. package/dist/features/delivery/index.css +12 -2
  36. package/dist/features/delivery/index.d.ts +18 -0
  37. package/dist/features/delivery/index.js +13 -13
  38. package/dist/features/knowledge/index.js +4 -4
  39. package/dist/features/lead-gen/index.css +12 -2
  40. package/dist/features/lead-gen/index.js +13 -13
  41. package/dist/features/monitoring/index.css +12 -2
  42. package/dist/features/monitoring/index.js +13 -13
  43. package/dist/features/monitoring/requests/index.css +12 -2
  44. package/dist/features/monitoring/requests/index.js +13 -13
  45. package/dist/features/operations/index.css +12 -2
  46. package/dist/features/operations/index.js +13 -13
  47. package/dist/features/settings/index.css +12 -2
  48. package/dist/features/settings/index.d.ts +27 -3
  49. package/dist/features/settings/index.js +13 -13
  50. package/dist/hooks/access/index.js +4 -4
  51. package/dist/hooks/delivery/index.css +12 -2
  52. package/dist/hooks/delivery/index.d.ts +18 -0
  53. package/dist/hooks/delivery/index.js +13 -13
  54. package/dist/hooks/index.css +12 -2
  55. package/dist/hooks/index.d.ts +18 -0
  56. package/dist/hooks/index.js +13 -13
  57. package/dist/hooks/published.css +12 -2
  58. package/dist/hooks/published.d.ts +18 -0
  59. package/dist/hooks/published.js +13 -13
  60. package/dist/index.css +12 -2
  61. package/dist/index.d.ts +18 -0
  62. package/dist/index.js +13 -13
  63. package/dist/initialization/index.d.ts +18 -0
  64. package/dist/knowledge/index.js +5 -5
  65. package/dist/organization/index.css +12 -2
  66. package/dist/organization/index.js +13 -13
  67. package/dist/profile/index.d.ts +18 -0
  68. package/dist/provider/index.css +12 -2
  69. package/dist/provider/index.d.ts +18 -0
  70. package/dist/provider/index.js +10 -10
  71. package/dist/provider/published.d.ts +18 -0
  72. package/dist/provider/published.js +9 -9
  73. package/dist/supabase/index.d.ts +36 -0
  74. package/dist/test-utils/index.js +3 -3
  75. package/dist/types/index.d.ts +18 -0
  76. package/dist/utils/index.js +2 -2
  77. package/package.json +4 -4
@@ -1,8 +1,8 @@
1
1
  import { useAvailablePresets } from './chunk-B2DZLPDL.js';
2
2
  import { useSupabase } from './chunk-BRXELOHC.js';
3
- import { useBreadcrumbs } from './chunk-GTTMOKIB.js';
3
+ import { useBreadcrumbs } from './chunk-7PHY5ONQ.js';
4
4
  import { ChatHeader, ChatSidebar } from './chunk-CXY7FMUM.js';
5
- import { observabilityKeys, useCyberColors, CyberLegendItem, CyberAreaChart, CyberDonut, HeroStatsRow, CostTrendChart, ActivityTrendChart } from './chunk-N4IO4CQO.js';
5
+ import { observabilityKeys, useCyberColors, CyberLegendItem, CyberAreaChart, CyberDonut, HeroStatsRow, CostTrendChart, ActivityTrendChart } from './chunk-4DRI3G36.js';
6
6
  import { DEFAULT_ORGANIZATION_GRAPH_FILTERS, ORGANIZATION_GRAPH_NODE_KIND_ORDER, ORGANIZATION_GRAPH_NODE_KIND_LABELS, ORGANIZATION_GRAPH_EDGE_KIND_LABELS, ORGANIZATION_GRAPH_NODE_KIND_DETAIL_LABELS, ORGANIZATION_GRAPH_NODE_KIND_MEANINGS, ORGANIZATION_GRAPH_EDGE_KIND_MEANINGS } from './chunk-5EYJ2GIN.js';
7
7
  import { AppShellLoader, SubshellSidebarLoader, PageContainer, SubshellLoader, AppShellCenteredContainer } from './chunk-DA6I5VEY.js';
8
8
  import { SubshellNavItem } from './chunk-X4WBGKJQ.js';
@@ -10,25 +10,25 @@ import { SubshellSidebarSection } from './chunk-IIMU5YAJ.js';
10
10
  import { Graph_module_css_default, useDirectedChainHighlighting, useNodeSelection, useFitViewTrigger, useGraphHighlighting, calculateGraphHeight, GRAPH_CONSTANTS } from './chunk-HENXLGVD.js';
11
11
  import { STATUS_COLORS, getStatusIcon, formatDuration, getStatusColors, AGENT_CONSTANTS, shouldAnimateEdge, TIMELINE_CONSTANTS, calculateBarPosition, CONTAINER_CONSTANTS, useExecutionPath, useUnifiedWorkflowLayout, WORKFLOW_CONSTANTS, useReactFlowAgent, getResourceStatusColor, useMergedExecution, useTimelineData, useAgentIterationData } from './chunk-7FPLLSHN.js';
12
12
  import { glassBase } from './chunk-5JYKCULK.js';
13
- import { useNotificationAdapter, useCrmActions, useListActions } from './chunk-PRMWQA5R.js';
14
- import { EmptyState, CenteredErrorState, StatsCardSkeleton, TrendIndicator, DetailCardSkeleton, GlowDot, JsonViewer, ListSkeleton, PageTitleCaption, StatCard, APIErrorAlert, CollapsibleSection, ActivityTimeline, ContextViewer, StatusBadge, TabCountBadge, ResourceCard } from './chunk-AIP3GC2N.js';
13
+ import { useNotificationAdapter, useCrmActions, useListActions } from './chunk-LY3YTQC6.js';
14
+ import { EmptyState, CenteredErrorState, StatsCardSkeleton, TrendIndicator, DetailCardSkeleton, GlowDot, JsonViewer, ListSkeleton, PageTitleCaption, StatCard, APIErrorAlert, CollapsibleSection, ActivityTimeline, ContextViewer, StatusBadge, TabCountBadge, ResourceCard } from './chunk-CTJBPF3Z.js';
15
15
  import { StyledMarkdown } from './chunk-3KMDHCAR.js';
16
16
  import { CardHeader } from './chunk-S3XR4II4.js';
17
17
  import { useAppearance, SubshellContentContainer } from './chunk-A7IG36LB.js';
18
- import { HTTP_HEADERS } from './chunk-IOSJHARH.js';
18
+ import { HTTP_HEADERS } from './chunk-TE4P6OSJ.js';
19
19
  import { topbarHeight } from './chunk-DT3QYZVU.js';
20
20
  import { useRouterContext } from './chunk-Q7DJKLEN.js';
21
- import { getErrorInfo, formatErrorMessage, getErrorTitle, isAPIClientError, getTimeRangeDates, formatBucketTime, PAGE_SIZE_DEFAULT, REFETCH_INTERVAL_DASHBOARD, REFETCH_INTERVAL_RUNNING, WS_MAX_RETRIES_BEFORE_ERROR, WS_RECONNECT_BASE_DELAY, WS_RECONNECT_MAX_DELAY, APIClientError, formatDateTime, getResourceIcon, formatTimeAgo, LEAD_GEN_API_INTERFACE, computeInterfaceReadiness, formatDate, formatRelativeTime, debounce, OAUTH_FLOW_TIMEOUT } from './chunk-PFPM654Z.js';
21
+ import { getErrorInfo, formatErrorMessage, getErrorTitle, isAPIClientError, getTimeRangeDates, formatBucketTime, PAGE_SIZE_DEFAULT, REFETCH_INTERVAL_DASHBOARD, REFETCH_INTERVAL_RUNNING, WS_MAX_RETRIES_BEFORE_ERROR, WS_RECONNECT_BASE_DELAY, WS_RECONNECT_MAX_DELAY, APIClientError, formatDateTime, getResourceIcon, formatTimeAgo, LEAD_GEN_API_INTERFACE, computeInterfaceReadiness, formatDate, formatRelativeTime, debounce, OAUTH_FLOW_TIMEOUT } from './chunk-RXH4D6TY.js';
22
22
  import { ResourceStatusColors, toWorkflowLogMessages } from './chunk-KRWALB24.js';
23
- import { useStableAccessToken } from './chunk-MWRFFGOH.js';
24
- import { useAccess, AccessKeys } from './chunk-D3EWFGLF.js';
25
- import { useOptionalElevasisSystems, useElevasisSystems } from './chunk-2XBCYJS3.js';
23
+ import { useStableAccessToken, AccessGuard } from './chunk-LJDYY3XB.js';
24
+ import { useAccess, AccessKeys } from './chunk-7MTWRSUZ.js';
25
+ import { useOptionalElevasisSystems, useElevasisSystems } from './chunk-J3FLIZY4.js';
26
26
  import { useInitialization } from './chunk-6DO4PE3O.js';
27
- import { defineEntities, OrgKnowledgeNodeSchema, defineResources, defineActions, defineTopology, topologyRef, topologyRelationship, resolveOrganizationModel, projectOrganizationSurfaces, PROJECTS_VIEW_ACTION_ID, resolveSemanticIconComponent, buildOrganizationGraph, SemanticIcon } from './chunk-FZIPSE3S.js';
27
+ import { defineEntities, OrgKnowledgeNodeSchema, defineResources, defineActions, defineTopology, topologyRef, topologyRelationship, resolveOrganizationModel, projectOrganizationSurfaces, PROJECTS_VIEW_ACTION_ID, resolveSemanticIconComponent, buildOrganizationGraph, SemanticIcon } from './chunk-K7GKKETO.js';
28
28
  import { useOrganization } from './chunk-DD3CCMCZ.js';
29
29
  import { useUserProfile } from './chunk-W2SFTXMT.js';
30
30
  import { STALE_TIME_MONITORING, STALE_TIME_DEFAULT, STALE_TIME_ADMIN, GC_TIME_MEDIUM, GC_TIME_SHORT } from './chunk-6ROXVZ3L.js';
31
- import { listAllSystems, getSystem, getAllBuildTemplates, getLeadGenStageCatalog, getResourcesForSystem, compileOrganizationOntology, getSystemAncestors } from './chunk-PE3FAAW3.js';
31
+ import { listAllSystems, getSystem, getAllBuildTemplates, getLeadGenStageCatalog, getResourcesForSystem, compileOrganizationOntology, getSystemAncestors } from './chunk-RH5VWWSC.js';
32
32
  import { useElevasisServices } from './chunk-2FTX4WO2.js';
33
33
  import { brandWorkOsOrgId, brandSupabaseOrgId } from './chunk-MQZE7SUI.js';
34
34
  import { ResourceTypeSchema, NonEmptyStringSchema, OriginResourceTypeSchema, UuidSchema, CredentialNameSchema } from './chunk-TVTSASST.js';
@@ -36,7 +36,7 @@ import { useAuthContext } from './chunk-BRJ3QZ4E.js';
36
36
  import { z } from 'zod';
37
37
  import { memo, useMemo, useRef, useEffect, cloneElement, useState, useCallback, useId, Fragment as Fragment$1, useDeferredValue, useEffectEvent } from 'react';
38
38
  import { createUseExternalEvents, Paper, Stack, Text, Group, Badge, Box, useComputedColorScheme, Card, Title, Checkbox, Tooltip, Center, Modal, TextInput, Textarea, Loader, Alert, Button, Space, Table, Select, ActionIcon, SegmentedControl, NumberFormatter, Switch, Pagination, UnstyledButton, Divider, ScrollArea, Popover, Indicator, Collapse, ThemeIcon, SimpleGrid, Code, CopyButton, PasswordInput, Anchor, Menu, Timeline, useMantineTheme, RangeSlider, Progress, Tabs, Breadcrumbs as Breadcrumbs$1, NumberInput, ColorSwatch, RingProgress, Grid, LoadingOverlay, Accordion, MultiSelect, Radio, Pill, Drawer, Chip, JsonInput, TagsInput } from '@mantine/core';
39
- import { IconPlayerPlay, IconPlayerStop, IconArrowsSplit, IconSquare, IconBrain, IconFileText, IconLayoutGrid, IconColumns, IconFileInvoice, IconNotes, IconBriefcase, IconChecklist, IconFlag, IconList, IconBuilding, IconAddressBook, IconMail, IconSend, IconClock, IconArrowUp, IconMessageCircle, IconRocket, IconEye, IconEdit, IconAlertTriangle, IconRefresh, IconX, IconCheck, IconTarget, IconActivity, IconCode, IconSettings, IconLock, IconShieldOff, IconChevronUp, IconChevronDown, IconSelector, IconTrash, IconChartBar, IconCircleCheck, IconThumbDown, IconThumbUp, IconCircleX, IconSearch, IconFilterOff, IconArrowUpRight, IconAlertCircle, IconExternalLink, IconChartPie, IconHeartbeat, IconDownload, IconCpu, IconTrendingUp, IconCash, IconInfoCircle, IconExclamationCircle, IconBug, IconChecks, IconCircle, IconCircleFilled, IconBell, IconFocus2, IconChevronRight, IconTool, IconClockHour4, IconVersions, IconNetwork, IconSitemap, IconPencil, IconKey, IconCalendar, IconExclamationMark, IconShieldLock, IconCopy, IconPlus, IconPower, IconTag, IconUsers, IconWebhook, IconReload, IconTerminal2, IconMessage, IconArrowLeft, IconCalendarRepeat, IconCalendarEvent, IconCalendarTime, IconRobot, IconGitBranch, IconDotsVertical, IconPlayerPause, IconCalendarDue, IconCalendarStats, IconCalendarOff, IconListCheck, IconFilter, IconCategory, IconDatabase, IconTrophy, IconClockExclamation, IconUser, IconHistory, IconCurrencyDollar, IconTargetArrow, IconMessages, IconInbox, IconBolt, IconRestore, IconArrowRight, IconSparkles, IconListDetails, IconLayoutDashboard, IconBuildingFactory2, IconFileDescription, IconApps, IconRoute, IconHandStop, IconAdjustmentsHorizontal, IconCircleDashed, IconFolders, IconBraces, IconTopologyStar3, IconLayoutSidebarRightExpand, IconNote, IconArchive, IconTimeline, IconPalette, IconBrandDropbox, IconBrandGoogleDrive, IconPlug, IconMailForward, IconArrowDown, IconUserX, IconUserCheck, IconFileOff, IconCheckbox, IconPhone, IconActivityHeartbeat, IconClockPause, IconArrowsMaximize, IconShare2, IconFolder, IconScript, IconPlugConnected } from '@tabler/icons-react';
39
+ import { IconPlayerPlay, IconPlayerStop, IconArrowsSplit, IconSquare, IconBrain, IconFileText, IconLayoutGrid, IconColumns, IconFileInvoice, IconNotes, IconBriefcase, IconChecklist, IconFlag, IconList, IconBuilding, IconAddressBook, IconMail, IconSend, IconClock, IconArrowUp, IconMessageCircle, IconRocket, IconEye, IconEdit, IconAlertTriangle, IconRefresh, IconX, IconCheck, IconTarget, IconActivity, IconCode, IconSettings, IconLock, IconShieldOff, IconChevronUp, IconChevronDown, IconSelector, IconTrash, IconChartBar, IconCircleCheck, IconThumbDown, IconThumbUp, IconCircleX, IconSearch, IconFilterOff, IconArrowUpRight, IconAlertCircle, IconExternalLink, IconChartPie, IconHeartbeat, IconDownload, IconCpu, IconTrendingUp, IconCash, IconInfoCircle, IconExclamationCircle, IconBug, IconChecks, IconCircle, IconCircleFilled, IconBell, IconFocus2, IconChevronRight, IconTool, IconClockHour4, IconVersions, IconNetwork, IconSitemap, IconPencil, IconKey, IconCalendar, IconExclamationMark, IconShieldLock, IconCopy, IconPlus, IconPower, IconTag, IconUsers, IconWebhook, IconReload, IconTerminal2, IconMessage, IconArrowLeft, IconCalendarRepeat, IconCalendarEvent, IconCalendarTime, IconRobot, IconGitBranch, IconDotsVertical, IconPlayerPause, IconCalendarDue, IconCalendarStats, IconCalendarOff, IconListCheck, IconFilter, IconCategory, IconDatabase, IconTrophy, IconClockExclamation, IconUser, IconHistory, IconCurrencyDollar, IconTargetArrow, IconMessages, IconInbox, IconBolt, IconRestore, IconArrowRight, IconSparkles, IconListDetails, IconLayoutDashboard, IconBuildingFactory2, IconFileDescription, IconApps, IconRoute, IconHandStop, IconAdjustmentsHorizontal, IconCircleDashed, IconFolders, IconBraces, IconTopologyStar3, IconLayoutSidebarRightExpand, IconNote, IconArchive, IconTimeline, IconPalette, IconStar, IconUserCog, IconUsersGroup, IconBrandDropbox, IconBrandGoogleDrive, IconPlug, IconMailForward, IconArrowDown, IconUserX, IconUserCheck, IconFileOff, IconCheckbox, IconPhone, IconActivityHeartbeat, IconClockPause, IconArrowsMaximize, IconShare2, IconFolder, IconScript, IconPlugConnected } from '@tabler/icons-react';
40
40
  import * as runtime from 'react/jsx-runtime';
41
41
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
42
42
  import { useForm } from '@mantine/form';
@@ -382,6 +382,8 @@ function getProspectingBuildTemplateOptions(templates) {
382
382
  }));
383
383
  }
384
384
  function createBuildPlanSnapshotFromTemplate(template) {
385
+ const stepIdByStageKey = new Map(template.steps.map((step) => [step.stageKey, step.id]));
386
+ const stepIds = new Set(template.steps.map((step) => step.id));
385
387
  return {
386
388
  templateId: template.id,
387
389
  templateLabel: template.label,
@@ -401,7 +403,11 @@ function createBuildPlanSnapshotFromTemplate(template) {
401
403
  };
402
404
  if (step.description) snapshotStep.description = step.description;
403
405
  if (step.recordEntity) snapshotStep.recordEntity = step.recordEntity;
404
- if (step.dependsOn?.length) snapshotStep.dependsOn = [...step.dependsOn];
406
+ if (step.dependsOn?.length) {
407
+ snapshotStep.dependsOn = step.dependsOn.map(
408
+ (dependency) => stepIds.has(dependency) ? dependency : stepIdByStageKey.get(dependency) ?? dependency
409
+ );
410
+ }
405
411
  if (step.credentialRequirements?.length) {
406
412
  snapshotStep.credentialRequirements = step.credentialRequirements.map((requirement) => ({
407
413
  ...requirement
@@ -7535,18 +7541,18 @@ function NotificationItem({ notification, onClose, onNavigate }) {
7535
7541
  }
7536
7542
  );
7537
7543
  }
7538
- function NotificationList({ notifications: notifications15, isLoading, onClose, onNavigate }) {
7544
+ function NotificationList({ notifications: notifications14, isLoading, onClose, onNavigate }) {
7539
7545
  if (isLoading) {
7540
7546
  return /* @__PURE__ */ jsx(Center, { p: "xl", children: /* @__PURE__ */ jsx(Loader, { size: "sm" }) });
7541
7547
  }
7542
- if (notifications15.length === 0) {
7548
+ if (notifications14.length === 0) {
7543
7549
  return /* @__PURE__ */ jsx(Center, { p: "xl", children: /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "No notifications" }) });
7544
7550
  }
7545
- return /* @__PURE__ */ jsx(Stack, { gap: 0, children: notifications15.map((notification) => /* @__PURE__ */ jsx(NotificationItem, { notification, onClose, onNavigate }, notification.id)) });
7551
+ return /* @__PURE__ */ jsx(Stack, { gap: 0, children: notifications14.map((notification) => /* @__PURE__ */ jsx(NotificationItem, { notification, onClose, onNavigate }, notification.id)) });
7546
7552
  }
7547
- function NotificationPanel({ notifications: notifications15, isLoading, onClose, onNavigate }) {
7553
+ function NotificationPanel({ notifications: notifications14, isLoading, onClose, onNavigate }) {
7548
7554
  const markAllAsRead = useMarkAllAsRead();
7549
- const hasUnread = notifications15.some((n) => !n.read);
7555
+ const hasUnread = notifications14.some((n) => !n.read);
7550
7556
  const handleMarkAllAsRead = async () => {
7551
7557
  await markAllAsRead.mutateAsync();
7552
7558
  };
@@ -7559,7 +7565,7 @@ function NotificationPanel({ notifications: notifications15, isLoading, onClose,
7559
7565
  /* @__PURE__ */ jsx(ScrollArea, { h: 400, type: "auto", children: /* @__PURE__ */ jsx(
7560
7566
  NotificationList,
7561
7567
  {
7562
- notifications: notifications15,
7568
+ notifications: notifications14,
7563
7569
  isLoading,
7564
7570
  onClose,
7565
7571
  onNavigate
@@ -7580,14 +7586,14 @@ function NotificationBell({ unreadCount, onNavigate }) {
7580
7586
  staleTime: 3e4
7581
7587
  });
7582
7588
  const { data, isLoading } = useNotifications({ limit: 20 });
7583
- const notifications15 = data?.notifications ?? [];
7589
+ const notifications14 = data?.notifications ?? [];
7584
7590
  const count = unreadCount ?? apiCount;
7585
7591
  return /* @__PURE__ */ jsxs(Popover, { opened, onChange: toggle, position: "bottom-end", width: 400, children: [
7586
7592
  /* @__PURE__ */ jsx(Tooltip, { label: "Notifications", disabled: opened, children: /* @__PURE__ */ jsx(Popover.Target, { children: /* @__PURE__ */ jsx(Indicator, { label: count > 99 ? "99+" : count, disabled: count === 0, size: 16, offset: 4, children: /* @__PURE__ */ jsx(ActionIcon, { variant: "subtle", size: "lg", onClick: toggle, children: /* @__PURE__ */ jsx(IconBell, { size: 20, color: "var(--color-text-subtle)" }) }) }) }) }),
7587
7593
  /* @__PURE__ */ jsx(Popover.Dropdown, { p: 0, children: /* @__PURE__ */ jsx(
7588
7594
  NotificationPanel,
7589
7595
  {
7590
- notifications: notifications15,
7596
+ notifications: notifications14,
7591
7597
  isLoading,
7592
7598
  onClose: close,
7593
7599
  onNavigate
@@ -21301,6 +21307,127 @@ function useLeadGenConfig() {
21301
21307
  };
21302
21308
  }, [organizationModel2]);
21303
21309
  }
21310
+ var DATA_MODE_OPTIONS = [
21311
+ { value: "mock", label: "Mock data" },
21312
+ { value: "live", label: "Live data" }
21313
+ ];
21314
+ function CreateListModal({ opened, onClose, canCreate, onCreated }) {
21315
+ const leadGenConfig = useLeadGenConfig();
21316
+ const createListMutation = useCreateList();
21317
+ const buildTemplateOptions = useMemo(
21318
+ () => getProspectingBuildTemplateOptions(leadGenConfig.buildTemplates ?? []).map((template) => ({
21319
+ value: template.id,
21320
+ label: template.label
21321
+ })),
21322
+ [leadGenConfig.buildTemplates]
21323
+ );
21324
+ const defaultBuildTemplateId = leadGenConfig.defaultBuildTemplateId ?? buildTemplateOptions[0]?.value ?? "";
21325
+ const [newListName, setNewListName] = useState("");
21326
+ const [newListDescription, setNewListDescription] = useState("");
21327
+ const [newBuildTemplateId, setNewBuildTemplateId] = useState("");
21328
+ const [newDataMode, setNewDataMode] = useState("mock");
21329
+ const selectedBuildTemplateId = newBuildTemplateId || defaultBuildTemplateId;
21330
+ const selectedBuildTemplate = leadGenConfig.buildTemplates?.find((template) => template.id === selectedBuildTemplateId);
21331
+ function resetForm() {
21332
+ setNewListName("");
21333
+ setNewListDescription("");
21334
+ setNewBuildTemplateId("");
21335
+ setNewDataMode("mock");
21336
+ }
21337
+ function handleClose() {
21338
+ if (createListMutation.isPending) return;
21339
+ resetForm();
21340
+ onClose();
21341
+ }
21342
+ function handleCreateList() {
21343
+ if (!canCreate) return;
21344
+ const trimmedName = newListName.trim();
21345
+ if (!trimmedName) return;
21346
+ const body = {
21347
+ name: trimmedName,
21348
+ description: newListDescription.trim() || null,
21349
+ ...selectedBuildTemplateId ? { buildTemplateId: selectedBuildTemplateId } : {},
21350
+ pipelineConfig: {
21351
+ dataMode: newDataMode
21352
+ }
21353
+ };
21354
+ createListMutation.mutate(body, {
21355
+ onSuccess: (list) => {
21356
+ resetForm();
21357
+ onClose();
21358
+ onCreated?.(list);
21359
+ }
21360
+ });
21361
+ }
21362
+ return /* @__PURE__ */ jsx(CustomModal, { opened, onClose: handleClose, size: "md", loading: createListMutation.isPending, children: /* @__PURE__ */ jsxs(Stack, { gap: "md", children: [
21363
+ /* @__PURE__ */ jsxs(Group, { gap: "sm", children: [
21364
+ /* @__PURE__ */ jsx(IconSparkles, { size: 24 }),
21365
+ /* @__PURE__ */ jsx(Title, { order: 4, children: "Create List" })
21366
+ ] }),
21367
+ /* @__PURE__ */ jsx(
21368
+ TextInput,
21369
+ {
21370
+ label: "List Name",
21371
+ placeholder: "e.g. Orange County Vets Q2",
21372
+ value: newListName,
21373
+ onChange: (event) => setNewListName(event.currentTarget.value),
21374
+ disabled: createListMutation.isPending,
21375
+ required: true
21376
+ }
21377
+ ),
21378
+ /* @__PURE__ */ jsx(
21379
+ Textarea,
21380
+ {
21381
+ label: "Description",
21382
+ placeholder: "Optional context for this list",
21383
+ value: newListDescription,
21384
+ onChange: (event) => setNewListDescription(event.currentTarget.value),
21385
+ disabled: createListMutation.isPending,
21386
+ minRows: 3
21387
+ }
21388
+ ),
21389
+ /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
21390
+ /* @__PURE__ */ jsx(
21391
+ Select,
21392
+ {
21393
+ label: "Build Pipeline",
21394
+ description: "Choose the sequence this list should follow.",
21395
+ data: buildTemplateOptions,
21396
+ value: selectedBuildTemplateId || null,
21397
+ onChange: (value) => setNewBuildTemplateId(value ?? ""),
21398
+ disabled: createListMutation.isPending || buildTemplateOptions.length === 0,
21399
+ required: true
21400
+ }
21401
+ ),
21402
+ selectedBuildTemplate?.description ? /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", children: selectedBuildTemplate.description }) : null
21403
+ ] }),
21404
+ /* @__PURE__ */ jsx(
21405
+ Select,
21406
+ {
21407
+ label: "Data Mode",
21408
+ description: "Choose whether sourcing and enrichment use demo fixtures or live providers.",
21409
+ data: DATA_MODE_OPTIONS,
21410
+ value: newDataMode,
21411
+ onChange: (value) => setNewDataMode(value ?? "mock"),
21412
+ disabled: createListMutation.isPending,
21413
+ required: true
21414
+ }
21415
+ ),
21416
+ /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "The list will open in draft mode after creation so you can review configuration and run build steps from the list workspace." }),
21417
+ /* @__PURE__ */ jsxs(Group, { justify: "flex-end", children: [
21418
+ /* @__PURE__ */ jsx(Button, { variant: "light", onClick: handleClose, disabled: createListMutation.isPending, children: "Cancel" }),
21419
+ /* @__PURE__ */ jsx(
21420
+ Button,
21421
+ {
21422
+ onClick: handleCreateList,
21423
+ loading: createListMutation.isPending,
21424
+ disabled: !newListName.trim() || !canCreate,
21425
+ children: "Create List"
21426
+ }
21427
+ )
21428
+ ] })
21429
+ ] }) });
21430
+ }
21304
21431
  function computeBacklog(current, completed) {
21305
21432
  return Math.max(current - completed, 0);
21306
21433
  }
@@ -21423,6 +21550,9 @@ function LeadGenOverviewPage() {
21423
21550
  const navigate = useNavigate();
21424
21551
  const telemetryQuery = useListsTelemetry();
21425
21552
  const listsQuery = useLists();
21553
+ const leadGenConfig = useLeadGenConfig();
21554
+ const canManageLeadGen = useAccess(AccessKeys.leadGenManage);
21555
+ const [showCreateList, setShowCreateList] = useState(false);
21426
21556
  const data = telemetryQuery.data;
21427
21557
  const listMetaById = new Map((listsQuery.data ?? []).map((list) => [list.id, list]));
21428
21558
  const stageTotals = data?.reduce(
@@ -21453,6 +21583,9 @@ function LeadGenOverviewPage() {
21453
21583
  const uploadBacklog = computeBacklog(stageTotals.personalized, stageTotals.uploaded);
21454
21584
  const deliverabilityRiskCount = deliverabilityTotals.risky + deliverabilityTotals.invalid + deliverabilityTotals.bounced;
21455
21585
  const totalLists = data?.length ?? 0;
21586
+ const canUseApiActions = leadGenConfig.canUseLeadGenApiActions;
21587
+ const canCreateLists = canManageLeadGen.allowed && canUseApiActions;
21588
+ const apiDisabledReason = leadGenConfig.leadGenApiInterface.reason;
21456
21589
  const summaryLine = [
21457
21590
  `${totalLists} total ${totalLists === 1 ? "list" : "lists"}`,
21458
21591
  `${formatCountLabel(uploadBacklog, "contact")} ready for upload`,
@@ -21513,14 +21646,27 @@ function LeadGenOverviewPage() {
21513
21646
  ] })
21514
21647
  ] }) }),
21515
21648
  /* @__PURE__ */ jsx(Paper, { withBorder: true, p: "md", children: /* @__PURE__ */ jsxs(Stack, { gap: "md", children: [
21516
- /* @__PURE__ */ jsx(
21517
- CardHeader,
21518
- {
21519
- icon: /* @__PURE__ */ jsx(IconListDetails, { size: 18 }),
21520
- title: "List Snapshot",
21521
- subtitle: "Ranked to surface active work first, then the largest unresolved backlogs."
21522
- }
21523
- ),
21649
+ /* @__PURE__ */ jsxs(Group, { justify: "space-between", align: "flex-start", gap: "md", children: [
21650
+ /* @__PURE__ */ jsx(
21651
+ CardHeader,
21652
+ {
21653
+ icon: /* @__PURE__ */ jsx(IconListDetails, { size: 18 }),
21654
+ title: "List Snapshot",
21655
+ subtitle: "Ranked to surface active work first, then the largest unresolved backlogs."
21656
+ }
21657
+ ),
21658
+ canManageLeadGen.allowed ? /* @__PURE__ */ jsx(
21659
+ Button,
21660
+ {
21661
+ leftSection: /* @__PURE__ */ jsx(IconPlus, { size: 16 }),
21662
+ onClick: () => setShowCreateList(true),
21663
+ size: "xs",
21664
+ disabled: !canUseApiActions,
21665
+ title: !canUseApiActions ? apiDisabledReason : void 0,
21666
+ children: "Create List"
21667
+ }
21668
+ ) : null
21669
+ ] }),
21524
21670
  /* @__PURE__ */ jsxs(Table, { children: [
21525
21671
  /* @__PURE__ */ jsx(Table.Thead, { children: /* @__PURE__ */ jsxs(Table.Tr, { children: [
21526
21672
  /* @__PURE__ */ jsx(Table.Th, { children: "List" }),
@@ -21552,14 +21698,19 @@ function LeadGenOverviewPage() {
21552
21698
  )) })
21553
21699
  ] })
21554
21700
  ] }) })
21555
- ] })
21701
+ ] }),
21702
+ /* @__PURE__ */ jsx(
21703
+ CreateListModal,
21704
+ {
21705
+ opened: showCreateList,
21706
+ onClose: () => setShowCreateList(false),
21707
+ canCreate: canCreateLists,
21708
+ onCreated: (list) => navigate({ to: "/lead-gen/lists/$listId", params: { listId: list.id } })
21709
+ }
21710
+ )
21556
21711
  ] }) }) });
21557
21712
  }
21558
21713
  var PAGE_SIZE_DEFAULT2 = 20;
21559
- var DATA_MODE_OPTIONS = [
21560
- { value: "mock", label: "Mock data" },
21561
- { value: "live", label: "Live data" }
21562
- ];
21563
21714
  var STATUS_FILTER_OPTIONS = [
21564
21715
  { value: "", label: "All statuses" },
21565
21716
  { value: "draft", label: "Draft" },
@@ -21571,26 +21722,13 @@ var STATUS_FILTER_OPTIONS = [
21571
21722
  function LeadGenListsPage() {
21572
21723
  const navigate = useNavigate();
21573
21724
  const leadGenConfig = useLeadGenConfig();
21574
- const buildTemplateOptions = useMemo(
21575
- () => getProspectingBuildTemplateOptions(leadGenConfig.buildTemplates ?? []).map((template) => ({
21576
- value: template.id,
21577
- label: template.label
21578
- })),
21579
- [leadGenConfig.buildTemplates]
21580
- );
21581
- const defaultBuildTemplateId = leadGenConfig.defaultBuildTemplateId ?? buildTemplateOptions[0]?.value ?? "";
21582
21725
  const [searchQuery, setSearchQuery] = useState("");
21583
21726
  const [statusFilter, setStatusFilter] = useState("");
21584
21727
  const [showCreateList, setShowCreateList] = useState(false);
21585
- const [newListName, setNewListName] = useState("");
21586
- const [newListDescription, setNewListDescription] = useState("");
21587
- const [newBuildTemplateId, setNewBuildTemplateId] = useState("");
21588
- const [newDataMode, setNewDataMode] = useState("mock");
21589
21728
  const [showBatchDelete, setShowBatchDelete] = useState(false);
21590
21729
  const { data: lists, isLoading: listsLoading } = useLists();
21591
21730
  const { data: telemetry, isLoading: telemetryLoading } = useListsTelemetry();
21592
21731
  const canManageLeadGen = useAccess(AccessKeys.leadGenManage);
21593
- const createListMutation = useCreateList();
21594
21732
  const deleteListsMutation = useDeleteLists();
21595
21733
  const { sort, toggleSort } = useTableSort("created");
21596
21734
  const contactCountByListId = useMemo(
@@ -21627,37 +21765,9 @@ function LeadGenListsPage() {
21627
21765
  [sortedLists, pagination.offset]
21628
21766
  );
21629
21767
  const selection = useTableSelection(paginatedLists, sortedLists);
21630
- const selectedBuildTemplateId = newBuildTemplateId || defaultBuildTemplateId;
21631
- const selectedBuildTemplate = leadGenConfig.buildTemplates?.find((template) => template.id === selectedBuildTemplateId);
21632
21768
  const canUseApiActions = leadGenConfig.canUseLeadGenApiActions;
21633
21769
  const apiDisabledReason = leadGenConfig.leadGenApiInterface.reason;
21634
21770
  const canCreateOrDeleteLists = canManageLeadGen.allowed && canUseApiActions;
21635
- function resetCreateListModal() {
21636
- setNewListName("");
21637
- setNewListDescription("");
21638
- setNewBuildTemplateId("");
21639
- setNewDataMode("mock");
21640
- setShowCreateList(false);
21641
- }
21642
- function handleCreateList() {
21643
- if (!canCreateOrDeleteLists) return;
21644
- const trimmedName = newListName.trim();
21645
- if (!trimmedName) return;
21646
- const body = {
21647
- name: trimmedName,
21648
- description: newListDescription.trim() || null,
21649
- ...selectedBuildTemplateId ? { buildTemplateId: selectedBuildTemplateId } : {},
21650
- pipelineConfig: {
21651
- dataMode: newDataMode
21652
- }
21653
- };
21654
- createListMutation.mutate(body, {
21655
- onSuccess: (list) => {
21656
- resetCreateListModal();
21657
- navigate({ to: "/lead-gen/lists/$listId", params: { listId: list.id } });
21658
- }
21659
- });
21660
- }
21661
21771
  return /* @__PURE__ */ jsx(SubshellContentContainer, { children: /* @__PURE__ */ jsxs(PageContainer, { children: [
21662
21772
  /* @__PURE__ */ jsx(Stack, { children: /* @__PURE__ */ jsx(
21663
21773
  PageTitleCaption,
@@ -21810,80 +21920,12 @@ function LeadGenListsPage() {
21810
21920
  ) })
21811
21921
  ] }) }),
21812
21922
  /* @__PURE__ */ jsx(
21813
- CustomModal,
21923
+ CreateListModal,
21814
21924
  {
21815
21925
  opened: showCreateList,
21816
- onClose: () => !createListMutation.isPending && resetCreateListModal(),
21817
- size: "md",
21818
- loading: createListMutation.isPending,
21819
- children: /* @__PURE__ */ jsxs(Stack, { gap: "md", children: [
21820
- /* @__PURE__ */ jsxs(Group, { gap: "sm", children: [
21821
- /* @__PURE__ */ jsx(IconSparkles, { size: 24 }),
21822
- /* @__PURE__ */ jsx(Title, { order: 4, children: "Create List" })
21823
- ] }),
21824
- /* @__PURE__ */ jsx(
21825
- TextInput,
21826
- {
21827
- label: "List Name",
21828
- placeholder: "e.g. Orange County Vets Q2",
21829
- value: newListName,
21830
- onChange: (event) => setNewListName(event.currentTarget.value),
21831
- disabled: createListMutation.isPending,
21832
- required: true
21833
- }
21834
- ),
21835
- /* @__PURE__ */ jsx(
21836
- Textarea,
21837
- {
21838
- label: "Description",
21839
- placeholder: "Optional context for this list",
21840
- value: newListDescription,
21841
- onChange: (event) => setNewListDescription(event.currentTarget.value),
21842
- disabled: createListMutation.isPending,
21843
- minRows: 3
21844
- }
21845
- ),
21846
- /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
21847
- /* @__PURE__ */ jsx(
21848
- Select,
21849
- {
21850
- label: "Build Pipeline",
21851
- description: "Choose the sequence this list should follow.",
21852
- data: buildTemplateOptions,
21853
- value: selectedBuildTemplateId || null,
21854
- onChange: (value) => setNewBuildTemplateId(value ?? ""),
21855
- disabled: createListMutation.isPending || buildTemplateOptions.length === 0,
21856
- required: true
21857
- }
21858
- ),
21859
- selectedBuildTemplate?.description ? /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", children: selectedBuildTemplate.description }) : null
21860
- ] }),
21861
- /* @__PURE__ */ jsx(
21862
- Select,
21863
- {
21864
- label: "Data Mode",
21865
- description: "Choose whether sourcing and enrichment use demo fixtures or live providers.",
21866
- data: DATA_MODE_OPTIONS,
21867
- value: newDataMode,
21868
- onChange: (value) => setNewDataMode(value ?? "mock"),
21869
- disabled: createListMutation.isPending,
21870
- required: true
21871
- }
21872
- ),
21873
- /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "The list will open in draft mode after creation so you can review configuration and run build steps from the list workspace." }),
21874
- /* @__PURE__ */ jsxs(Group, { justify: "flex-end", children: [
21875
- /* @__PURE__ */ jsx(Button, { variant: "light", onClick: resetCreateListModal, disabled: createListMutation.isPending, children: "Cancel" }),
21876
- /* @__PURE__ */ jsx(
21877
- Button,
21878
- {
21879
- onClick: handleCreateList,
21880
- loading: createListMutation.isPending,
21881
- disabled: !newListName.trim() || !canCreateOrDeleteLists,
21882
- children: "Create List"
21883
- }
21884
- )
21885
- ] })
21886
- ] })
21926
+ onClose: () => setShowCreateList(false),
21927
+ canCreate: canCreateOrDeleteLists,
21928
+ onCreated: (list) => navigate({ to: "/lead-gen/lists/$listId", params: { listId: list.id } })
21887
21929
  }
21888
21930
  ),
21889
21931
  /* @__PURE__ */ jsx(
@@ -37872,15 +37914,15 @@ function ActivityFeed({
37872
37914
  function NotificationCenter({ pageSize = 20 }) {
37873
37915
  const { page, setPage, offset, totalPages } = usePaginationState(pageSize);
37874
37916
  const { data, isLoading } = useNotifications({ limit: pageSize, offset });
37875
- const notifications15 = data?.notifications ?? [];
37917
+ const notifications14 = data?.notifications ?? [];
37876
37918
  const markAllAsRead = useMarkAllAsRead();
37877
- const hasUnread = notifications15.some((n) => !n.read);
37919
+ const hasUnread = notifications14.some((n) => !n.read);
37878
37920
  const handleMarkAllAsRead = async () => {
37879
37921
  await markAllAsRead.mutateAsync();
37880
37922
  };
37881
37923
  return /* @__PURE__ */ jsxs(Fragment, { children: [
37882
37924
  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" }) }),
37883
- /* @__PURE__ */ jsx(Paper, { children: /* @__PURE__ */ jsx(NotificationList, { notifications: notifications15, isLoading }) }),
37925
+ /* @__PURE__ */ jsx(Paper, { children: /* @__PURE__ */ jsx(NotificationList, { notifications: notifications14, isLoading }) }),
37884
37926
  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 }) })
37885
37927
  ] });
37886
37928
  }
@@ -37890,49 +37932,12 @@ var monitoringManifest = {
37890
37932
  icon: IconActivity
37891
37933
  };
37892
37934
  function AccountSettings({
37893
- user,
37894
- userProfile,
37895
- profileLoading,
37896
- onRefetchProfile,
37897
- onNavigate
37935
+ user
37936
+ // userProfile,
37937
+ // profileLoading,
37938
+ // onRefetchProfile,
37939
+ // onNavigate
37898
37940
  }) {
37899
- const { apiRequest } = useElevasisServices();
37900
- const userConfig = userProfile?.config;
37901
- const hasCompletedOnboarding = userConfig?.onboarding?.completed;
37902
- const resetWelcomeFlow = useMutation({
37903
- mutationFn: async () => {
37904
- return apiRequest("/users/me", {
37905
- method: "PATCH",
37906
- body: JSON.stringify({
37907
- config: {
37908
- onboarding: {
37909
- completed: false,
37910
- completedAt: null,
37911
- role: null,
37912
- primaryUseCase: null,
37913
- experienceLevel: null
37914
- }
37915
- }
37916
- })
37917
- });
37918
- },
37919
- onSuccess: async () => {
37920
- notifications.show({
37921
- title: "Welcome Flow Reset",
37922
- message: "Redirecting to the welcome flow...",
37923
- color: "teal"
37924
- });
37925
- await onRefetchProfile();
37926
- onNavigate("/welcome");
37927
- },
37928
- onError: (err) => {
37929
- notifications.show({
37930
- title: "Error",
37931
- message: err instanceof Error ? err.message : "Failed to reset welcome flow",
37932
- color: "red"
37933
- });
37934
- }
37935
- });
37936
37941
  const { data: memberships = [], isLoading, error } = useUserMemberships(user?.id || "");
37937
37942
  return /* @__PURE__ */ jsxs(Stack, { children: [
37938
37943
  /* @__PURE__ */ jsx(PageTitleCaption, { title: "Account Settings", caption: "Manage your account and organization memberships" }),
@@ -37967,26 +37972,6 @@ function AccountSettings({
37967
37972
  /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", children: "Email" }),
37968
37973
  /* @__PURE__ */ jsx(Text, { size: "lg", fw: 600, style: { fontFamily: "var(--elevasis-font-family-subtitle)" }, children: user.email })
37969
37974
  ] })
37970
- ] }),
37971
- /* @__PURE__ */ jsxs(Group, { justify: "space-between", align: "center", children: [
37972
- /* @__PURE__ */ jsxs(Group, { gap: "sm", children: [
37973
- /* @__PURE__ */ jsx(ThemeIcon, { size: "lg", variant: "light", color: "teal", children: /* @__PURE__ */ jsx(IconRefresh, { size: 18 }) }),
37974
- /* @__PURE__ */ jsxs(Stack, { gap: 2, children: [
37975
- /* @__PURE__ */ jsx(Text, { fw: 600, children: "Welcome Flow" }),
37976
- /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: hasCompletedOnboarding ? "Re-run the onboarding flow to update your preferences" : "You have not completed the welcome flow yet" })
37977
- ] })
37978
- ] }),
37979
- /* @__PURE__ */ jsx(
37980
- Button,
37981
- {
37982
- variant: "light",
37983
- leftSection: profileLoading ? void 0 : /* @__PURE__ */ jsx(IconRefresh, { size: 16 }),
37984
- onClick: () => resetWelcomeFlow.mutate(),
37985
- loading: profileLoading || resetWelcomeFlow.isPending,
37986
- disabled: profileLoading,
37987
- children: profileLoading ? "" : hasCompletedOnboarding ? "Reset & Redo" : "Start"
37988
- }
37989
- )
37990
37975
  ] })
37991
37976
  ] }) }),
37992
37977
  /* @__PURE__ */ jsx(OrganizationMembershipsList, { memberships, loading: isLoading, error }),
@@ -38889,6 +38874,78 @@ function OrganizationSettings({ user, currentMembership, isOrgAdmin }) {
38889
38874
  ] }) })
38890
38875
  ] });
38891
38876
  }
38877
+ function capitalize(value) {
38878
+ return value.charAt(0).toUpperCase() + value.slice(1);
38879
+ }
38880
+ function MyRolesPage({ onManageMembers, onManageOrganizationRoles }) {
38881
+ const { currentMembership } = useOrganization();
38882
+ const orgName = currentMembership?.organization?.name ?? "this organization";
38883
+ const access = useAccess("platform");
38884
+ const { permissions, isReady: permissionsReady, isPlatformAdmin } = access;
38885
+ const catalogQuery = usePermissionCatalog();
38886
+ const catalogMap = new Map(
38887
+ (catalogQuery.data?.permissions ?? []).map((permission) => [permission.key, permission.description])
38888
+ );
38889
+ const roleSlug = currentMembership?.role?.slug ?? null;
38890
+ const isLoading = !permissionsReady || catalogQuery.isLoading;
38891
+ const showManagePanel = Boolean(onManageMembers || onManageOrganizationRoles);
38892
+ const groupedPermissions = permissions.reduce((groups, key) => {
38893
+ const domain = key.split(".")[0] ?? "general";
38894
+ groups[domain] ??= [];
38895
+ groups[domain].push(key);
38896
+ return groups;
38897
+ }, {});
38898
+ return /* @__PURE__ */ jsxs(Stack, { gap: "md", children: [
38899
+ /* @__PURE__ */ jsx(PageTitleCaption, { title: "My Roles", caption: `Roles assigned to you in ${orgName} and what each one lets you do.` }),
38900
+ /* @__PURE__ */ jsx(Paper, { withBorder: true, p: "md", children: /* @__PURE__ */ jsxs(Stack, { children: [
38901
+ /* @__PURE__ */ jsx(
38902
+ CardHeader,
38903
+ {
38904
+ icon: /* @__PURE__ */ jsx(IconShieldLock, { size: 18 }),
38905
+ title: "Your roles",
38906
+ subtitle: `Roles assigned to your membership in ${orgName}.`
38907
+ }
38908
+ ),
38909
+ /* @__PURE__ */ jsxs(Group, { gap: "xs", children: [
38910
+ roleSlug ? /* @__PURE__ */ jsx(RoleBadge, { slug: roleSlug, name: capitalize(roleSlug), isSystem: true }) : /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "No roles assigned yet." }),
38911
+ isPlatformAdmin && /* @__PURE__ */ jsx(Badge, { color: "grape", variant: "light", leftSection: /* @__PURE__ */ jsx(IconStar, { size: 12 }), children: "Platform admin" })
38912
+ ] }),
38913
+ isPlatformAdmin && /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", children: "Platform admin bypasses every org-level permission check; you have full access regardless of role." })
38914
+ ] }) }),
38915
+ /* @__PURE__ */ jsx(Paper, { withBorder: true, p: "md", children: /* @__PURE__ */ jsxs(Stack, { children: [
38916
+ /* @__PURE__ */ jsx(
38917
+ CardHeader,
38918
+ {
38919
+ icon: /* @__PURE__ */ jsx(IconCheck, { size: 18 }),
38920
+ title: "What you can do",
38921
+ subtitle: isPlatformAdmin ? "Showing all platform permissions (platform admin bypass)." : "Permissions granted by your assigned roles."
38922
+ }
38923
+ ),
38924
+ isLoading ? /* @__PURE__ */ jsx(Center, { children: /* @__PURE__ */ jsx(Loader, {}) }) : permissions.length === 0 ? /* @__PURE__ */ jsx(Alert, { color: "yellow", children: "You don't have any permissions in this organization yet. Ask an admin to assign you a role." }) : /* @__PURE__ */ jsx(Stack, { gap: "md", children: Object.entries(groupedPermissions).map(([domain, keys]) => /* @__PURE__ */ jsxs(Stack, { gap: "xs", children: [
38925
+ /* @__PURE__ */ jsx(Text, { size: "sm", fw: 600, children: capitalize(domain) }),
38926
+ keys.map((key) => /* @__PURE__ */ jsxs(Group, { gap: "xs", children: [
38927
+ /* @__PURE__ */ jsx(IconCheck, { size: 14, color: "var(--color-success)" }),
38928
+ /* @__PURE__ */ jsx(Code, { children: key }),
38929
+ /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: catalogMap.get(key) ?? "" })
38930
+ ] }, key))
38931
+ ] }, domain)) })
38932
+ ] }) }),
38933
+ showManagePanel && /* @__PURE__ */ jsx(AccessGuard, { accessKey: AccessKeys.membersManage, children: /* @__PURE__ */ jsx(Paper, { withBorder: true, p: "md", children: /* @__PURE__ */ jsxs(Stack, { children: [
38934
+ /* @__PURE__ */ jsx(
38935
+ CardHeader,
38936
+ {
38937
+ icon: /* @__PURE__ */ jsx(IconUserCog, { size: 18 }),
38938
+ title: "Manage roles & members",
38939
+ subtitle: "Assign roles to members, create custom roles, and edit permission sets."
38940
+ }
38941
+ ),
38942
+ /* @__PURE__ */ jsxs(Group, { children: [
38943
+ onManageMembers ? /* @__PURE__ */ jsx(Button, { variant: "light", leftSection: /* @__PURE__ */ jsx(IconUsersGroup, { size: 14 }), onClick: onManageMembers, children: "Members" }) : null,
38944
+ onManageOrganizationRoles ? /* @__PURE__ */ jsx(AccessGuard, { accessKey: AccessKeys.organizationManage, children: /* @__PURE__ */ jsx(Button, { variant: "light", leftSection: /* @__PURE__ */ jsx(IconShieldLock, { size: 14 }), onClick: onManageOrganizationRoles, children: "Organization roles" }) }) : null
38945
+ ] })
38946
+ ] }) }) })
38947
+ ] });
38948
+ }
38892
38949
  var OAUTH_COMPLETION_CHANNEL = "elevasis-oauth";
38893
38950
  var OAUTH_COMPLETION_STORAGE_KEY = "elevasis:oauth-complete";
38894
38951
  function useOAuthFlow({ apiUrl }) {
@@ -39631,4 +39688,4 @@ function createUseOrgInitialization(useOrganizations, useApiClient) {
39631
39688
  };
39632
39689
  }
39633
39690
 
39634
- export { AbsoluteScheduleForm, AccountSettings, ActionModal, ActivityCard, ActivityFeed, ActivityFeedWidget, ActivityFilters, ActivityLog, ActivityTable, AgentDefinitionDisplay, AgentExecutionLogs, AgentExecutionPanel, AgentExecutionTimeline, AgentExecutionVisualizer, AgentIterationEdge, AgentIterationNode, AgentSessionGroup, AllTasksPage, ApiKeyDisplayModal, ApiKeyList, ApiKeyService, ApiKeySettings, AppearanceSettings, BaseEdge, BaseExecutionLogs, BaseExecutionLogsHeader, BaseExecutionLogsStates, BaseNode, Breadcrumbs, BusinessImpactCard, CRM_ITEMS, Checklist, CheckpointGroup, CollapsibleJsonSection, CommandQueueDetailPage, CommandQueuePage, CommandQueueShell, CommandQueueSidebar, CommandQueueSidebarMiddle, CommandQueueSidebarTop, CommandQueueTaskRow, CommandViewPage, CompanyDetailPage, ConfigCard, ConfirmationInputModal, ConfirmationModal, ContactDetailPage, ContentSections, ContextUsageBadge, ContractDisplay, ConversationThread, CostAnalytics, CostBreakdownCard, CostByModelTable, CostMetricsCard, CreateApiKeyModal, CreateCredentialModal, CreateDeliveryEntityModal, CreateRoleModal, CreateScheduleModal, CreateWebhookEndpointModal, CredentialList, CredentialService, CredentialSettings, CrmOverview, CrmSettingsPage, CrmSidebar, CrmSidebarMiddle, CrmSidebarTop, CustomModal, DEAL_STAGES, DEAL_STAGE_COLORS, DEAL_STAGE_OPTIONS, DEFAULT_KANBAN_CONFIG, DELIVERY_COMMUNICATION_ITEMS, DELIVERY_PROJECT_ITEMS, DELIVERY_WORK_ITEMS, Dashboard, DashboardOperationsOverview, DealDetailPage, DealKanbanCard, DealsListPage, DeleteScheduleModal, DeploymentDetailModal, DeploymentList, DeploymentService, DeploymentSettings, DeploymentStatusBadge, EditApiKeyModal, EditCredentialModal, EditWebhookEndpointModal, EmptyVisualizer, ErrorAnalysisCard, ErrorBreakdownTable, ErrorDetailsModal, ExecuteWorkflowModal, ExecutionBreakdownTable, ExecutionErrorSection, ExecutionHealth, ExecutionHealthCard, ExecutionLogsFilters, ExecutionLogsPage, ExecutionLogsTable, ExecutionPanel, ExecutionStats, ExecutionStatusBadge, FilterBar, GraphBackground, GraphContainer, GraphFitViewButton, GraphFitViewHandler, GraphLegend, HealthStatusCard, KanbanBoard, LEAD_GEN_ITEMS, LEAD_GEN_ROUTE_LINKS, LeadGenCompaniesPage, LeadGenContactsPage, LeadGenListDetailPage, LeadGenListsPage, LeadGenOverviewPage, LeadGenRouteShell, LeadGenSidebar, LeadGenSidebarMiddle, LeadGenSidebarTop, ListBuilderIndexPage, ListBuilderPage, LogEntry, LogGroup, MdxRenderer, MemberAccessModal, MembershipStatusBadge, MetricsStrip, MilestoneTimeline, MyTasksPanel, NewKnowledgeMapEdge, NewKnowledgeMapGraph, NewKnowledgeMapNode, NoAccessState, NotificationBell, NotificationCenter, NotificationItem, NotificationList, NotificationPanel, OAuthConnectModal, OAuthIntegrationsCard, ORPHAN_STAGE_ORDER, OperationsOverview, OperationsService, OperationsSidebar, OperationsSidebarMiddle, OperationsSidebarTop, OrgMembersList, OrganizationGraphPage, OrganizationMembershipService, OrganizationMembershipsList, OrganizationSettings, OrganizationSwitcher, OrganizationSwitcherConnected, PIPELINE_FUNNEL_ORDER, PermissionMatrix, PipelineFunnelWidget, ProjectDetailPage, ProjectsListPage, ProjectsSidebar, ProjectsSidebarMiddle, ProjectsSidebarTop, QuickCreateActions, RecentExecutionsByResource, RecurringScheduleForm, RelativeScheduleForm, ResourceDefinitionSection, ResourceDetailPage, ResourceErrorState, ResourceFilter, ResourceHeader, ResourceHealthChart, ResourceHealthPanel, ResourceNotFoundState, ResourceOverview, ResourcesPage, ResourcesSidebar, RichTextEditor, RoleBadge, RunResourceButton, SAVED_VIEW_PRESETS, SavedViewsPanel, ScheduleCard, ScheduleDetailModal, ScheduleTypeSelector, SessionChatArea, SessionChatInterface, SessionChatPage, SessionDetailsSidebar, SessionExecutionLogs, SessionHeader, SessionListItem, SessionMemory, SessionsPage, SessionsSidebar, SortableHeader, StepConfigForm, SystemOpsView, TabSection, TableSelectionToolbar, TaskCard, TaskScheduler, TimelineAxis, TimelineBar, TimelineContainer, TimelineRow, ToolsListDisplay, UnifiedWorkflowEdge, UnifiedWorkflowGraph, UnifiedWorkflowNode, UnresolvedErrorsTeaser, UpcomingMilestonesPage, VisualizerContainer, WebhookEndpointList, WebhookEndpointService, WebhookEndpointSettings, WebhookUrlDisplayModal, WorkflowDefinitionDisplay, WorkflowExecutionLogs, WorkflowExecutionPanel, WorkflowExecutionTimeline, ZodFormRenderer, acquisitionListKeys, aggregateSystemMetrics, calculateProgress, clientsKeys, collectResourceFilterFacets, companyKeys, contactKeys, createOrganizationsSlice, createUseOrgInitialization, createUseOrganizations, crmManifest, crmPrioritySettingsKeys, dealKeys, dealNoteKeys, dealTaskKeys, deliveryManifest, deriveBusinessProgress, executionsKeys, filterByDomainFilters, formatDate3 as formatDate, formatDealStageLabel, formatResourceAttribution, formatStatusLabel, getEnrichmentColor, getEnrichmentStatus, getExecutionStatusConfig, getGraphBackgroundStyles, getHealthColor, getIcon, getLeadGenApiInterfaceReadiness, getLeadGenExportWorkflowId, getLogLevelConfig, getResourceFilterFacetIds, getStateKeyColor, getStatusColor4 as getStatusColor, getStepActionLabel, iconMap, isLeadGenExportAction, isSessionCapable, labelResourceFilterFacet, leadGenArtifactKeys, leadGenListCompanyKeys, leadGenListMemberKeys, leadGenManifest, mdxComponents, milestoneKeys, milestoneStatusColors, monitoringManifest, noteKeys, noteTypeColors, operationsKeys, operationsManifest, projectActivityKeys, projectKeys, projectStatusColors, requestsKeys, resolveBuildPlanSteps, resolveBuildState, scheduleKeys, sessionsKeys, settingsManifest, showApiErrorNotification, showAuthError, showErrorNotification, showInfoNotification, showSuccessNotification, showWarningNotification, sortData, sortStageKeys, taskKeys, taskStatusColors, taskTypeColors, useActivateDeployment, useActivities, useActivitiesRealtime, useActivityFilters, useActivityTrend, useAddCompaniesToList, useAddContactsToList, useArchiveSession, useArchivedLogs, useArtifacts, useAssignRole, useBatchDelete, useBatchTelemetry, useBatchedResourcesHealth, useBulkDeleteExecutions, useBusinessImpact, useCancelExecution, useCancelSchedule, useCheckpointTasks, useClient, useClientStatus, useClients, useCommandQueue, useCommandQueueTotals, useCommandViewData, useCommandViewDomainFilters, useCommandViewStats, useCommandViewStore, useCompanies, useCompany, useCompanyFacets, useCompleteDealTask, useContact, useContacts, useCostBreakdown, useCostByModel, useCostSummary, useCostTrends, useCreateApiKey, useCreateArtifact, useCreateClient, useCreateCompany, useCreateContact, useCreateCredential, useCreateDealNote, useCreateDealTask, useCreateList, useCreateMilestone, useCreateNote, useCreateOrgRole, useCreateProject, useCreateSchedule, useCreateSession, useCreateTask, useCreateWebhookEndpoint, useCredentials, useCrmPipelineSummary, useCrmPrioritySettings, useCrmQuickMetrics, useDashboardMetrics, useDeactivateDeployment, useDeactivateMembership, useDealDetail, useDealNotes, useDealTasks, useDealTasksDue, useDeals, useDealsLookup, useDealsSummary, useDeleteApiKey, useDeleteClient, useDeleteCompanies, useDeleteContacts, useDeleteCredential, useDeleteDeal, useDeleteDeployment, useDeleteExecution, useDeleteList, useDeleteLists, useDeleteMilestone, useDeleteOrgRole, useDeleteProject, useDeleteRequest, useDeleteSchedule, useDeleteSession, useDeleteTask, useDeleteTask2, useDeleteWebhookEndpoint, useDeriveActions, useEffectivePermissions, useErrorAnalysis, useErrorDetail, useErrorDetails, useErrorDistribution, useErrorNotification, useExecuteAction, useExecuteAsync, useExecuteResource, useExecution, useExecutionHealth, useExecutionLogSSE, useExecutionLogs, useExecutionLogsFilters, useExecutionPanelState, useExecutionSSE, useExecutions, useGetExecutionHistory, useGetSchedule, useGraphBackgroundStyles, useGraphTheme, useInFlightExecutions, useLeadGenConfig, useList, useListApiKeys, useListDeployments, useListExecutions, useListMember, useListMembers, useListProgress, useListRecords, useListSchedules, useListWebhookEndpoints, useLists, useListsTelemetry, useMarkAllAsRead, useMarkAsRead, useMilestones, useNewKnowledgeMapLayout, useNotificationCount, useNotifications, useOrgRoles, useOrganizationMembers, usePaginationState, usePatchTask, usePauseSchedule, usePermissionCatalog, useProject, useProjectActivities, useProjectMilestones, useProjectNotes, useProjectRealtime, useProjectTasks, useProjects, useReactivateMembership, useRecentCrmActivity, useRecentExecutionsByResource, useRemoveCompaniesFromList, useRequest, useRequestsList, useResetCrmPrioritySettings, useResolveAllErrors, useResolveError, useResolveErrorsByExecution, useResourceDefinition, useResourceErrors, useResourceExecutions, useResourceSearch, useResources, useResourcesDomainFilters, useResourcesHealth, useResumeSchedule, useRetryExecution, useRevokeRole, useSSEConnection, useScheduledTasks, useSession, useSessionExecution, useSessionExecutions, useSessionMessages, useSessionWebSocket, useSessions, useSortedData, useStatusFilter, useSubmitAction, useSuccessNotification, useSystemHealth, useTableSelection, useTableSort, useTasks, useTestNotification, useTimeRangeDates, useTopFailingResources, useTransitionItem, useTransitionListCompany, useTransitionListMember, useTransitionState, useUnresolveError, useUnresolvedErrors, useUpdateAnchor, useUpdateApiKey, useUpdateClient, useUpdateCompany, useUpdateContact, useUpdateCredential, useUpdateCrmPrioritySettings, useUpdateList, useUpdateListConfig, useUpdateListStatus, useUpdateMilestone, useUpdateOrgRole, useUpdateProject, useUpdateRequestStatus, useUpdateSchedule, useUpdateTask, useUpdateWebhookEndpoint, useUserMemberships, useVerifyCredential, useVisibleResources, useWarningNotification, useWorkflowExecution };
39691
+ export { AbsoluteScheduleForm, AccountSettings, ActionModal, ActivityCard, ActivityFeed, ActivityFeedWidget, ActivityFilters, ActivityLog, ActivityTable, AgentDefinitionDisplay, AgentExecutionLogs, AgentExecutionPanel, AgentExecutionTimeline, AgentExecutionVisualizer, AgentIterationEdge, AgentIterationNode, AgentSessionGroup, AllTasksPage, ApiKeyDisplayModal, ApiKeyList, ApiKeyService, ApiKeySettings, AppearanceSettings, BaseEdge, BaseExecutionLogs, BaseExecutionLogsHeader, BaseExecutionLogsStates, BaseNode, Breadcrumbs, BusinessImpactCard, CRM_ITEMS, Checklist, CheckpointGroup, CollapsibleJsonSection, CommandQueueDetailPage, CommandQueuePage, CommandQueueShell, CommandQueueSidebar, CommandQueueSidebarMiddle, CommandQueueSidebarTop, CommandQueueTaskRow, CommandViewPage, CompanyDetailPage, ConfigCard, ConfirmationInputModal, ConfirmationModal, ContactDetailPage, ContentSections, ContextUsageBadge, ContractDisplay, ConversationThread, CostAnalytics, CostBreakdownCard, CostByModelTable, CostMetricsCard, CreateApiKeyModal, CreateCredentialModal, CreateDeliveryEntityModal, CreateRoleModal, CreateScheduleModal, CreateWebhookEndpointModal, CredentialList, CredentialService, CredentialSettings, CrmOverview, CrmSettingsPage, CrmSidebar, CrmSidebarMiddle, CrmSidebarTop, CustomModal, DEAL_STAGES, DEAL_STAGE_COLORS, DEAL_STAGE_OPTIONS, DEFAULT_KANBAN_CONFIG, DELIVERY_COMMUNICATION_ITEMS, DELIVERY_PROJECT_ITEMS, DELIVERY_WORK_ITEMS, Dashboard, DashboardOperationsOverview, DealDetailPage, DealKanbanCard, DealsListPage, DeleteScheduleModal, DeploymentDetailModal, DeploymentList, DeploymentService, DeploymentSettings, DeploymentStatusBadge, EditApiKeyModal, EditCredentialModal, EditWebhookEndpointModal, EmptyVisualizer, ErrorAnalysisCard, ErrorBreakdownTable, ErrorDetailsModal, ExecuteWorkflowModal, ExecutionBreakdownTable, ExecutionErrorSection, ExecutionHealth, ExecutionHealthCard, ExecutionLogsFilters, ExecutionLogsPage, ExecutionLogsTable, ExecutionPanel, ExecutionStats, ExecutionStatusBadge, FilterBar, GraphBackground, GraphContainer, GraphFitViewButton, GraphFitViewHandler, GraphLegend, HealthStatusCard, KanbanBoard, LEAD_GEN_ITEMS, LEAD_GEN_ROUTE_LINKS, LeadGenCompaniesPage, LeadGenContactsPage, LeadGenListDetailPage, LeadGenListsPage, LeadGenOverviewPage, LeadGenRouteShell, LeadGenSidebar, LeadGenSidebarMiddle, LeadGenSidebarTop, ListBuilderIndexPage, ListBuilderPage, LogEntry, LogGroup, MdxRenderer, MemberAccessModal, MembershipStatusBadge, MetricsStrip, MilestoneTimeline, MyRolesPage, MyTasksPanel, NewKnowledgeMapEdge, NewKnowledgeMapGraph, NewKnowledgeMapNode, NoAccessState, NotificationBell, NotificationCenter, NotificationItem, NotificationList, NotificationPanel, OAuthConnectModal, OAuthIntegrationsCard, ORPHAN_STAGE_ORDER, OperationsOverview, OperationsService, OperationsSidebar, OperationsSidebarMiddle, OperationsSidebarTop, OrgMembersList, OrganizationGraphPage, OrganizationMembershipService, OrganizationMembershipsList, OrganizationSettings, OrganizationSwitcher, OrganizationSwitcherConnected, PIPELINE_FUNNEL_ORDER, PermissionMatrix, PipelineFunnelWidget, ProjectDetailPage, ProjectsListPage, ProjectsSidebar, ProjectsSidebarMiddle, ProjectsSidebarTop, QuickCreateActions, RecentExecutionsByResource, RecurringScheduleForm, RelativeScheduleForm, ResourceDefinitionSection, ResourceDetailPage, ResourceErrorState, ResourceFilter, ResourceHeader, ResourceHealthChart, ResourceHealthPanel, ResourceNotFoundState, ResourceOverview, ResourcesPage, ResourcesSidebar, RichTextEditor, RoleBadge, RunResourceButton, SAVED_VIEW_PRESETS, SavedViewsPanel, ScheduleCard, ScheduleDetailModal, ScheduleTypeSelector, SessionChatArea, SessionChatInterface, SessionChatPage, SessionDetailsSidebar, SessionExecutionLogs, SessionHeader, SessionListItem, SessionMemory, SessionsPage, SessionsSidebar, SortableHeader, StepConfigForm, SystemOpsView, TabSection, TableSelectionToolbar, TaskCard, TaskScheduler, TimelineAxis, TimelineBar, TimelineContainer, TimelineRow, ToolsListDisplay, UnifiedWorkflowEdge, UnifiedWorkflowGraph, UnifiedWorkflowNode, UnresolvedErrorsTeaser, UpcomingMilestonesPage, VisualizerContainer, WebhookEndpointList, WebhookEndpointService, WebhookEndpointSettings, WebhookUrlDisplayModal, WorkflowDefinitionDisplay, WorkflowExecutionLogs, WorkflowExecutionPanel, WorkflowExecutionTimeline, ZodFormRenderer, acquisitionListKeys, aggregateSystemMetrics, calculateProgress, clientsKeys, collectResourceFilterFacets, companyKeys, contactKeys, createOrganizationsSlice, createUseOrgInitialization, createUseOrganizations, crmManifest, crmPrioritySettingsKeys, dealKeys, dealNoteKeys, dealTaskKeys, deliveryManifest, deriveBusinessProgress, executionsKeys, filterByDomainFilters, formatDate3 as formatDate, formatDealStageLabel, formatResourceAttribution, formatStatusLabel, getEnrichmentColor, getEnrichmentStatus, getExecutionStatusConfig, getGraphBackgroundStyles, getHealthColor, getIcon, getLeadGenApiInterfaceReadiness, getLeadGenExportWorkflowId, getLogLevelConfig, getResourceFilterFacetIds, getStateKeyColor, getStatusColor4 as getStatusColor, getStepActionLabel, iconMap, isLeadGenExportAction, isSessionCapable, labelResourceFilterFacet, leadGenArtifactKeys, leadGenListCompanyKeys, leadGenListMemberKeys, leadGenManifest, mdxComponents, milestoneKeys, milestoneStatusColors, monitoringManifest, noteKeys, noteTypeColors, operationsKeys, operationsManifest, projectActivityKeys, projectKeys, projectStatusColors, requestsKeys, resolveBuildPlanSteps, resolveBuildState, scheduleKeys, sessionsKeys, settingsManifest, showApiErrorNotification, showAuthError, showErrorNotification, showInfoNotification, showSuccessNotification, showWarningNotification, sortData, sortStageKeys, taskKeys, taskStatusColors, taskTypeColors, useActivateDeployment, useActivities, useActivitiesRealtime, useActivityFilters, useActivityTrend, useAddCompaniesToList, useAddContactsToList, useArchiveSession, useArchivedLogs, useArtifacts, useAssignRole, useBatchDelete, useBatchTelemetry, useBatchedResourcesHealth, useBulkDeleteExecutions, useBusinessImpact, useCancelExecution, useCancelSchedule, useCheckpointTasks, useClient, useClientStatus, useClients, useCommandQueue, useCommandQueueTotals, useCommandViewData, useCommandViewDomainFilters, useCommandViewStats, useCommandViewStore, useCompanies, useCompany, useCompanyFacets, useCompleteDealTask, useContact, useContacts, useCostBreakdown, useCostByModel, useCostSummary, useCostTrends, useCreateApiKey, useCreateArtifact, useCreateClient, useCreateCompany, useCreateContact, useCreateCredential, useCreateDealNote, useCreateDealTask, useCreateList, useCreateMilestone, useCreateNote, useCreateOrgRole, useCreateProject, useCreateSchedule, useCreateSession, useCreateTask, useCreateWebhookEndpoint, useCredentials, useCrmPipelineSummary, useCrmPrioritySettings, useCrmQuickMetrics, useDashboardMetrics, useDeactivateDeployment, useDeactivateMembership, useDealDetail, useDealNotes, useDealTasks, useDealTasksDue, useDeals, useDealsLookup, useDealsSummary, useDeleteApiKey, useDeleteClient, useDeleteCompanies, useDeleteContacts, useDeleteCredential, useDeleteDeal, useDeleteDeployment, useDeleteExecution, useDeleteList, useDeleteLists, useDeleteMilestone, useDeleteOrgRole, useDeleteProject, useDeleteRequest, useDeleteSchedule, useDeleteSession, useDeleteTask, useDeleteTask2, useDeleteWebhookEndpoint, useDeriveActions, useEffectivePermissions, useErrorAnalysis, useErrorDetail, useErrorDetails, useErrorDistribution, useErrorNotification, useExecuteAction, useExecuteAsync, useExecuteResource, useExecution, useExecutionHealth, useExecutionLogSSE, useExecutionLogs, useExecutionLogsFilters, useExecutionPanelState, useExecutionSSE, useExecutions, useGetExecutionHistory, useGetSchedule, useGraphBackgroundStyles, useGraphTheme, useInFlightExecutions, useLeadGenConfig, useList, useListApiKeys, useListDeployments, useListExecutions, useListMember, useListMembers, useListProgress, useListRecords, useListSchedules, useListWebhookEndpoints, useLists, useListsTelemetry, useMarkAllAsRead, useMarkAsRead, useMilestones, useNewKnowledgeMapLayout, useNotificationCount, useNotifications, useOrgRoles, useOrganizationMembers, usePaginationState, usePatchTask, usePauseSchedule, usePermissionCatalog, useProject, useProjectActivities, useProjectMilestones, useProjectNotes, useProjectRealtime, useProjectTasks, useProjects, useReactivateMembership, useRecentCrmActivity, useRecentExecutionsByResource, useRemoveCompaniesFromList, useRequest, useRequestsList, useResetCrmPrioritySettings, useResolveAllErrors, useResolveError, useResolveErrorsByExecution, useResourceDefinition, useResourceErrors, useResourceExecutions, useResourceSearch, useResources, useResourcesDomainFilters, useResourcesHealth, useResumeSchedule, useRetryExecution, useRevokeRole, useSSEConnection, useScheduledTasks, useSession, useSessionExecution, useSessionExecutions, useSessionMessages, useSessionWebSocket, useSessions, useSortedData, useStatusFilter, useSubmitAction, useSuccessNotification, useSystemHealth, useTableSelection, useTableSort, useTasks, useTestNotification, useTimeRangeDates, useTopFailingResources, useTransitionItem, useTransitionListCompany, useTransitionListMember, useTransitionState, useUnresolveError, useUnresolvedErrors, useUpdateAnchor, useUpdateApiKey, useUpdateClient, useUpdateCompany, useUpdateContact, useUpdateCredential, useUpdateCrmPrioritySettings, useUpdateList, useUpdateListConfig, useUpdateListStatus, useUpdateMilestone, useUpdateOrgRole, useUpdateProject, useUpdateRequestStatus, useUpdateSchedule, useUpdateTask, useUpdateWebhookEndpoint, useUserMemberships, useVerifyCredential, useVisibleResources, useWarningNotification, useWorkflowExecution };