@elevasis/ui 2.14.1 → 2.15.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 (35) hide show
  1. package/dist/{chunk-IO75JNQE.js → chunk-32NXXCQU.js} +1 -1
  2. package/dist/{chunk-F2GI5TQT.js → chunk-5SXYCICG.js} +1 -1
  3. package/dist/{chunk-JL7RHMV2.js → chunk-D7HBX5US.js} +2 -2
  4. package/dist/{chunk-C56A2MAS.js → chunk-FFXHKADZ.js} +12 -5
  5. package/dist/{chunk-NPWJYY4B.js → chunk-SFW573HS.js} +1 -1
  6. package/dist/{chunk-JAUU6TZU.js → chunk-U2RXVZGY.js} +2 -41
  7. package/dist/{chunk-A7346I7H.js → chunk-X75JEGHS.js} +1 -1
  8. package/dist/{chunk-TAUPDLQ7.js → chunk-XJ7KC54A.js} +1 -1
  9. package/dist/{chunk-ETQRV5A6.js → chunk-YNPVQDNB.js} +1 -1
  10. package/dist/components/index.d.ts +141 -49
  11. package/dist/components/index.js +20 -394
  12. package/dist/features/auth/index.d.ts +70 -6
  13. package/dist/features/crm/index.d.ts +70 -6
  14. package/dist/features/crm/index.js +2 -2
  15. package/dist/features/dashboard/index.js +2 -2
  16. package/dist/features/delivery/index.d.ts +70 -6
  17. package/dist/features/delivery/index.js +2 -2
  18. package/dist/features/lead-gen/index.js +5 -5
  19. package/dist/features/monitoring/index.js +3 -3
  20. package/dist/features/monitoring/requests/index.js +1 -1
  21. package/dist/features/operations/index.js +4 -4
  22. package/dist/features/settings/index.d.ts +70 -6
  23. package/dist/features/settings/index.js +2 -2
  24. package/dist/hooks/index.d.ts +142 -40
  25. package/dist/hooks/index.js +1 -1
  26. package/dist/hooks/published.d.ts +142 -40
  27. package/dist/hooks/published.js +1 -1
  28. package/dist/index.d.ts +142 -40
  29. package/dist/index.js +1 -1
  30. package/dist/initialization/index.d.ts +70 -6
  31. package/dist/profile/index.d.ts +70 -6
  32. package/dist/supabase/index.d.ts +130 -12
  33. package/dist/types/index.d.ts +70 -6
  34. package/package.json +2 -2
  35. package/src/hooks/README.md +1 -2
@@ -1,35 +1,35 @@
1
1
  import { useBreadcrumbs } from '../chunk-MG3NF7QL.js';
2
- import { CollapsibleSidebarGroup } from '../chunk-4BF74JVD.js';
3
- export { AllTasksPage, HealthStatusCard, MilestoneTimeline, ProjectDetailPage, ProjectsListPage, ProjectsSidebar, ProjectsSidebarMiddle, ProjectsSidebarTop, TaskCard, UpcomingMilestonesPage, calculateProgress, deliveryManifest, formatStatusLabel, milestoneStatusColors, noteTypeColors, projectStatusColors, taskStatusColors, taskTypeColors } from '../chunk-F2GI5TQT.js';
4
- export { LEAD_GEN_ROUTE_LINKS, LIST_TEMPLATE_OPTIONS, LeadGenCompaniesPage, LeadGenContactsPage, LeadGenDeliverabilityPage, LeadGenListDetailPage, LeadGenListsPage, LeadGenOverviewPage, LeadGenRouteShell, LeadGenSidebar, LeadGenSidebarMiddle, LeadGenSidebarTop, buildListConfig, getEnrichmentColor, getStatusColor, leadGenManifest, useDeleteLists } from '../chunk-JL7RHMV2.js';
5
- export { ActionModal, AgentDefinitionDisplay, AgentExecutionLogs, BaseExecutionLogs, BaseExecutionLogsHeader, BaseExecutionLogsStates, CheckpointGroup, CollapsibleJsonSection, CommandQueueSidebar, CommandQueueSidebarMiddle, CommandQueueSidebarTop, CommandQueueTaskRow, ConfigCard, ContentSections, ContextUsageBadge, ContractDisplay, ExecutionErrorSection, LogEntry, LogGroup, NewKnowledgeMapEdge, NewKnowledgeMapGraph, NewKnowledgeMapNode, OperationsSidebar, OperationsSidebarMiddle, OperationsSidebarTop, ResourceDefinitionSection, ResourceErrorState, ResourceFilter, ResourceHeader, ResourceNotFoundState, SessionMemory, ToolsListDisplay, WorkflowDefinitionDisplay, WorkflowExecutionLogs, getExecutionStatusConfig, getIcon, getLogLevelConfig, iconMap, operationsManifest, useNewKnowledgeMapLayout } from '../chunk-C56A2MAS.js';
2
+ import '../chunk-4BF74JVD.js';
3
+ export { AllTasksPage, HealthStatusCard, MilestoneTimeline, ProjectDetailPage, ProjectsListPage, ProjectsSidebar, ProjectsSidebarMiddle, ProjectsSidebarTop, TaskCard, UpcomingMilestonesPage, calculateProgress, deliveryManifest, formatStatusLabel, milestoneStatusColors, noteTypeColors, projectStatusColors, taskStatusColors, taskTypeColors } from '../chunk-5SXYCICG.js';
4
+ export { LEAD_GEN_ROUTE_LINKS, LIST_TEMPLATE_OPTIONS, LeadGenCompaniesPage, LeadGenContactsPage, LeadGenDeliverabilityPage, LeadGenListDetailPage, LeadGenListsPage, LeadGenOverviewPage, LeadGenRouteShell, LeadGenSidebar, LeadGenSidebarMiddle, LeadGenSidebarTop, buildListConfig, getEnrichmentColor, getStatusColor, leadGenManifest, useDeleteLists } from '../chunk-D7HBX5US.js';
5
+ export { ActionModal, AgentDefinitionDisplay, AgentExecutionLogs, BaseExecutionLogs, BaseExecutionLogsHeader, BaseExecutionLogsStates, CheckpointGroup, CollapsibleJsonSection, CommandQueueSidebar, CommandQueueSidebarMiddle, CommandQueueSidebarTop, CommandQueueTaskRow, ConfigCard, ContentSections, ContextUsageBadge, ContractDisplay, ExecutionErrorSection, LogEntry, LogGroup, NewKnowledgeMapEdge, NewKnowledgeMapGraph, NewKnowledgeMapNode, OperationsSidebar, OperationsSidebarMiddle, OperationsSidebarTop, ResourceDefinitionSection, ResourceErrorState, ResourceFilter, ResourceHeader, ResourceNotFoundState, SessionMemory, ToolsListDisplay, WorkflowDefinitionDisplay, WorkflowExecutionLogs, getExecutionStatusConfig, getIcon, getLogLevelConfig, iconMap, operationsManifest, useNewKnowledgeMapLayout } from '../chunk-FFXHKADZ.js';
6
6
  import '../chunk-ROSMICXG.js';
7
- import { SubshellLoader } from '../chunk-ADSSLKKP.js';
7
+ import '../chunk-ADSSLKKP.js';
8
8
  import '../chunk-442LZPIR.js';
9
- import { NotificationList } from '../chunk-IO75JNQE.js';
10
- export { ActivityCard, ActivityFilters as ActivityFiltersBar, ActivityTable, BusinessImpactCard, CostBreakdownCard, CostByModelTable, CostMetricsCard, ErrorAnalysisCard, ErrorBreakdownTable, ExecutionBreakdownTable, ExecutionHealthCard, ExecutionLogsFilters as ExecutionLogsFilterBar, ExecutionLogsTable, NotificationItem, NotificationList, monitoringManifest } from '../chunk-IO75JNQE.js';
11
- export { ResourceHealthPanel } from '../chunk-ETQRV5A6.js';
9
+ import { NotificationList } from '../chunk-32NXXCQU.js';
10
+ export { ActivityCard, ActivityFilters as ActivityFiltersBar, ActivityTable, BusinessImpactCard, CostBreakdownCard, CostByModelTable, CostMetricsCard, ErrorAnalysisCard, ErrorBreakdownTable, ExecutionBreakdownTable, ExecutionHealthCard, ExecutionLogsFilters as ExecutionLogsFilterBar, ExecutionLogsTable, NotificationItem, NotificationList, monitoringManifest } from '../chunk-32NXXCQU.js';
11
+ export { ResourceHealthPanel } from '../chunk-YNPVQDNB.js';
12
12
  export { SEOSidebar, SEOSidebarMiddle, SEOSidebarTop, seoManifest } from '../chunk-AL23U6C3.js';
13
- export { CreateCredentialModal, CredentialList, CredentialSettings, MembershipFeaturePanel, MembershipStatusBadge, OAuthConnectModal, OrganizationMembershipsList, WebhookUrlDisplayModal, settingsManifest } from '../chunk-A7346I7H.js';
14
- export { ActivityFeedWidget, CrmOverview, CrmSidebar, CrmSidebarMiddle, CrmSidebarTop, DealDetailPage, DealsListPage, MetricsStrip, MyTasksPanel, PIPELINE_FUNNEL_ORDER, PipelineFunnelWidget, QuickCreateActions, SAVED_VIEW_PRESETS, SavedViewsPanel, TasksDueWidget, crmManifest, useCrmPipelineSummary, useCrmQuickMetrics, useRecentCrmActivity } from '../chunk-NPWJYY4B.js';
15
- import { PageContainer } from '../chunk-BZZCNLT6.js';
13
+ export { CreateCredentialModal, CredentialList, CredentialSettings, MembershipFeaturePanel, MembershipStatusBadge, OAuthConnectModal, OrganizationMembershipsList, WebhookUrlDisplayModal, settingsManifest } from '../chunk-X75JEGHS.js';
14
+ export { ActivityFeedWidget, CrmOverview, CrmSidebar, CrmSidebarMiddle, CrmSidebarTop, DealDetailPage, DealsListPage, MetricsStrip, MyTasksPanel, PIPELINE_FUNNEL_ORDER, PipelineFunnelWidget, QuickCreateActions, SAVED_VIEW_PRESETS, SavedViewsPanel, TasksDueWidget, crmManifest, useCrmPipelineSummary, useCrmQuickMetrics, useRecentCrmActivity } from '../chunk-SFW573HS.js';
15
+ import '../chunk-BZZCNLT6.js';
16
16
  export { SortableHeader, TableSelectionToolbar } from '../chunk-TUMSNGTX.js';
17
- import { SubshellNavItem } from '../chunk-CEWTOKE7.js';
17
+ import '../chunk-CEWTOKE7.js';
18
18
  import '../chunk-IIMU5YAJ.js';
19
19
  import { FilterBar } from '../chunk-PDHTXPSF.js';
20
20
  export { FilterBar } from '../chunk-PDHTXPSF.js';
21
21
  import { CustomModal } from '../chunk-GBMNCNHX.js';
22
22
  export { ConfirmationInputModal, ConfirmationModal, CustomModal } from '../chunk-GBMNCNHX.js';
23
- import { BaseNode, useGraphTheme, BaseEdge, GraphBackground, GraphLegend, GraphFitViewButton } from '../chunk-TAUPDLQ7.js';
24
- export { AgentExecutionTimeline, AgentExecutionVisualizer, AgentIterationEdge, AgentIterationNode, BaseEdge, BaseNode, EmptyVisualizer, ExecutionStats, ExecutionStatusBadge, FormFieldRenderer, GraphBackground, GraphContainer, GraphFitViewButton, GraphFitViewHandler, GraphLegend, RunResourceButton, TimelineAxis, TimelineBar, TimelineContainer, TimelineRow, UnifiedWorkflowEdge, UnifiedWorkflowGraph, UnifiedWorkflowNode, VisualizerContainer, WorkflowExecutionTimeline, ZodFormRenderer, getGraphBackgroundStyles, useGraphBackgroundStyles, useGraphTheme } from '../chunk-TAUPDLQ7.js';
23
+ import { BaseNode, useGraphTheme, BaseEdge, GraphBackground, GraphLegend, GraphFitViewButton } from '../chunk-XJ7KC54A.js';
24
+ export { AgentExecutionTimeline, AgentExecutionVisualizer, AgentIterationEdge, AgentIterationNode, BaseEdge, BaseNode, EmptyVisualizer, ExecutionStats, ExecutionStatusBadge, FormFieldRenderer, GraphBackground, GraphContainer, GraphFitViewButton, GraphFitViewHandler, GraphLegend, RunResourceButton, TimelineAxis, TimelineBar, TimelineContainer, TimelineRow, UnifiedWorkflowEdge, UnifiedWorkflowGraph, UnifiedWorkflowNode, VisualizerContainer, WorkflowExecutionTimeline, ZodFormRenderer, getGraphBackgroundStyles, useGraphBackgroundStyles, useGraphTheme } from '../chunk-XJ7KC54A.js';
25
25
  export { ResourceHealthChart, getHealthColor } from '../chunk-LGKLC5MG.js';
26
26
  import '../chunk-STZJ7SY5.js';
27
27
  import { AppShellLoader } from '../chunk-M25JL54Z.js';
28
28
  import '../chunk-6RWMRQN5.js';
29
29
  export { CONTAINER_CONSTANTS, SHARED_VIZ_CONSTANTS } from '../chunk-GHIPBT5V.js';
30
30
  import '../chunk-7M2VOCYN.js';
31
- import { useCommandViewLayout, useUpdateApiKey, useDeleteApiKey, useCreateApiKey, useListApiKeys, usePaginationState, useActivateDeployment, useDeactivateDeployment, useDeleteDeployment, useListDeployments, useDeploymentDocs, useResources, useCreateSchedule, useListSchedules, usePauseSchedule, useResumeSchedule, useCancelSchedule, useDeleteSchedule, useDealNotes, useCreateDealNote, useDeals, useSyncDealStage, dealKeys, useMarkAllAsRead, useNotifications, showErrorNotification, showSuccessNotification, showApiErrorNotification } from '../chunk-JAUU6TZU.js';
32
- export { showApiErrorNotification, showErrorNotification, showInfoNotification, showSuccessNotification, showWarningNotification } from '../chunk-JAUU6TZU.js';
31
+ import { useCommandViewLayout, useUpdateApiKey, useDeleteApiKey, useCreateApiKey, useListApiKeys, usePaginationState, useActivateDeployment, useDeactivateDeployment, useDeleteDeployment, useListDeployments, useResources, useCreateSchedule, useListSchedules, usePauseSchedule, useResumeSchedule, useCancelSchedule, useDeleteSchedule, useDealNotes, useCreateDealNote, useDeals, useSyncDealStage, dealKeys, useMarkAllAsRead, useNotifications, showErrorNotification, showSuccessNotification, showApiErrorNotification } from '../chunk-U2RXVZGY.js';
32
+ export { showApiErrorNotification, showErrorNotification, showInfoNotification, showSuccessNotification, showWarningNotification } from '../chunk-U2RXVZGY.js';
33
33
  import '../chunk-LXHZYSMQ.js';
34
34
  import '../chunk-BRXELOHC.js';
35
35
  import { Graph_module_css_default, useDirectedChainHighlighting, useNodeSelection, GRAPH_CONSTANTS } from '../chunk-22UVE3RA.js';
@@ -40,7 +40,7 @@ import '../chunk-5IBTTMWX.js';
40
40
  import '../chunk-R73EHHPN.js';
41
41
  import '../chunk-WLOQ4IBG.js';
42
42
  import '../chunk-C7BX547M.js';
43
- import { SubshellContainer, SubshellSidebar, SubshellRightSideContainer, SubshellContentContainer } from '../chunk-RX4UWZZR.js';
43
+ import { SubshellContentContainer } from '../chunk-RX4UWZZR.js';
44
44
  import { ListSkeleton, EmptyState, PageTitleCaption, StatCard, CenteredErrorState, CardHeader, ActivityTimeline } from '../chunk-SQQGLGHW.js';
45
45
  export { APIErrorAlert, ActivityTimeline, CardHeader, CenteredErrorState, CollapsibleSection, ContextViewer, CustomSelector, DetailCardSkeleton, EmptyState, FeatureUnavailableState, GlowDot, JsonViewer, ListSkeleton, PageNotFound, PageTitleCaption, ResourceCard, StatCard, StatCardSkeleton, StatsCardSkeleton, StatusBadge, TabCountBadge, TimeRangeSelector, TrendIndicator, catalogItemToResourceDefinition } from '../chunk-SQQGLGHW.js';
46
46
  export { StyledMarkdown } from '../chunk-3KMDHCAR.js';
@@ -63,9 +63,9 @@ import '../chunk-DD3CCMCZ.js';
63
63
  import { useElevasisServices } from '../chunk-QEPXAWE2.js';
64
64
  import '../chunk-BRJ3QZ4E.js';
65
65
  import { useRouterContext } from '../chunk-Q7DJKLEN.js';
66
- import { Stack, Group, ThemeIcon, Text, Badge, Box, Title, TextInput, Alert, Button, Table, Tooltip, ActionIcon, Paper, Code, CopyButton, SimpleGrid, Loader, Pagination, useMantineTheme, ScrollArea, Select, Center, Card, SegmentedControl, Switch, Textarea, Divider, Menu, Timeline, Tabs, Breadcrumbs as Breadcrumbs$1, Drawer, Popover, Indicator } from '@mantine/core';
66
+ import { Stack, Group, ThemeIcon, Text, Badge, Box, Title, TextInput, Alert, Button, Table, Tooltip, ActionIcon, Paper, Code, CopyButton, SimpleGrid, Loader, Pagination, SegmentedControl, Switch, Select, Textarea, Divider, Card, Menu, Timeline, Tabs, ScrollArea, Breadcrumbs as Breadcrumbs$1, Drawer, Center, Popover, Indicator } from '@mantine/core';
67
67
  import { useDisclosure } from '@mantine/hooks';
68
- import { IconBrain, IconDatabase, IconMessage, IconAlertCircle, IconCircleX, IconCircleCheck, IconBolt, IconHandClick, IconClock, IconWebhook, IconExternalLink, IconPencil, IconKey, IconCalendar, IconTrash, IconAlertTriangle, IconExclamationMark, IconShieldLock, IconCheck, IconCopy, IconPlus, IconRocket, IconRefresh, IconPower, IconPlayerPlay, IconTag, IconBook2, IconFileOff, IconList, IconCalendarRepeat, IconCalendarEvent, IconCalendarTime, IconRobot, IconGitBranch, IconSettings, IconDotsVertical, IconPlayerPause, IconPlayerStop, IconCalendarDue, IconCalendarStats, IconCalendarOff, IconListCheck, IconBell, IconFolderOpen, IconFolder, IconFileText } from '@tabler/icons-react';
68
+ import { IconBrain, IconDatabase, IconMessage, IconAlertCircle, IconCircleX, IconCircleCheck, IconBolt, IconHandClick, IconClock, IconWebhook, IconExternalLink, IconPencil, IconKey, IconCalendar, IconTrash, IconAlertTriangle, IconExclamationMark, IconShieldLock, IconCheck, IconCopy, IconPlus, IconRocket, IconRefresh, IconPower, IconPlayerPlay, IconTag, IconCalendarRepeat, IconCalendarEvent, IconCalendarTime, IconRobot, IconGitBranch, IconSettings, IconDotsVertical, IconPlayerPause, IconPlayerStop, IconCalendarDue, IconCalendarStats, IconCalendarOff, IconListCheck, IconBell } from '@tabler/icons-react';
69
69
  import { useQueryClient, useQuery } from '@tanstack/react-query';
70
70
  import { memo, forwardRef, useMemo, useImperativeHandle, useState, useEffect, useCallback, useRef } from 'react';
71
71
  import * as runtime from 'react/jsx-runtime';
@@ -727,380 +727,6 @@ function DeploymentSettings() {
727
727
  /* @__PURE__ */ jsx(Paper, { withBorder: true, children: /* @__PURE__ */ jsx(DeploymentList, { deployments, isLoading }) })
728
728
  ] });
729
729
  }
730
- function buildTree(files) {
731
- const root = { label: "root", path: null, order: 0, isIndex: false, children: [] };
732
- for (const file of files) {
733
- const segments = file.path.split("/");
734
- let current = root;
735
- for (let i = 0; i < segments.length; i++) {
736
- const segment = segments[i];
737
- const isLastSegment = i === segments.length - 1;
738
- const isIndexFile = isLastSegment && (segment === "index.mdx" || segment === "index.md");
739
- if (isLastSegment) {
740
- if (isIndexFile) {
741
- current.path = file.path;
742
- current.label = file.frontmatter.title || current.label;
743
- current.order = file.frontmatter.order ?? current.order;
744
- current.isIndex = true;
745
- } else {
746
- current.children.push({
747
- label: file.frontmatter.title || segment.replace(/\.mdx?$/, ""),
748
- path: file.path,
749
- order: file.frontmatter.order ?? Infinity,
750
- isIndex: false,
751
- children: []
752
- });
753
- }
754
- } else {
755
- let child = current.children.find((c) => c.label === segment && c.path === null);
756
- if (!child) {
757
- child = {
758
- label: segment,
759
- path: null,
760
- order: Infinity,
761
- isIndex: false,
762
- children: []
763
- };
764
- current.children.push(child);
765
- }
766
- current = child;
767
- }
768
- }
769
- }
770
- return sortNodes(root.children);
771
- }
772
- function sortNodes(nodes) {
773
- return nodes.map((node) => ({
774
- ...node,
775
- children: sortNodes(node.children)
776
- })).sort((a, b) => {
777
- if (a.isIndex && !b.isIndex) return -1;
778
- if (!a.isIndex && b.isIndex) return 1;
779
- if (a.order !== b.order) return a.order - b.order;
780
- return a.label.localeCompare(b.label);
781
- });
782
- }
783
- function hasDescendant(node, targetPath) {
784
- if (!targetPath) return false;
785
- if (node.path === targetPath) return true;
786
- return node.children.some((child) => hasDescendant(child, targetPath));
787
- }
788
- function TreeNodeItem({
789
- node,
790
- selectedPath,
791
- onSelect,
792
- expandedPaths,
793
- onToggle
794
- }) {
795
- const isDirectory = node.children.length > 0;
796
- const key = node.path ?? node.label;
797
- if (isDirectory && node.path) {
798
- const isExpanded = expandedPaths[key] ?? true;
799
- const isActive = hasDescendant(node, selectedPath);
800
- return /* @__PURE__ */ jsx(
801
- CollapsibleSidebarGroup,
802
- {
803
- icon: isExpanded ? IconFolderOpen : IconFolder,
804
- label: node.label,
805
- isExpanded,
806
- onToggle: () => onToggle(key),
807
- isActive,
808
- onLabelClick: () => onSelect(node.path),
809
- children: node.children.map((child) => /* @__PURE__ */ jsx(
810
- TreeNodeItem,
811
- {
812
- node: child,
813
- selectedPath,
814
- onSelect,
815
- expandedPaths,
816
- onToggle
817
- },
818
- child.path ?? child.label
819
- ))
820
- }
821
- );
822
- }
823
- if (isDirectory) {
824
- const isExpanded = expandedPaths[key] ?? true;
825
- const isActive = hasDescendant(node, selectedPath);
826
- return /* @__PURE__ */ jsx(
827
- CollapsibleSidebarGroup,
828
- {
829
- icon: isExpanded ? IconFolderOpen : IconFolder,
830
- label: node.label,
831
- isExpanded,
832
- onToggle: () => onToggle(key),
833
- isActive,
834
- children: node.children.map((child) => /* @__PURE__ */ jsx(
835
- TreeNodeItem,
836
- {
837
- node: child,
838
- selectedPath,
839
- onSelect,
840
- expandedPaths,
841
- onToggle
842
- },
843
- child.path ?? child.label
844
- ))
845
- }
846
- );
847
- }
848
- return /* @__PURE__ */ jsx(
849
- SubshellNavItem,
850
- {
851
- icon: IconFileText,
852
- label: node.label,
853
- isActive: node.path === selectedPath,
854
- onClick: () => {
855
- if (node.path) onSelect(node.path);
856
- }
857
- }
858
- );
859
- }
860
- function DocTreeNav({ files, selectedPath, onSelect }) {
861
- const theme = useMantineTheme();
862
- const tree = useMemo(() => buildTree(files), [files]);
863
- const [expandedPaths, setExpandedPaths] = useState(() => {
864
- const expanded = {};
865
- function collectKeys(nodes) {
866
- for (const node of nodes) {
867
- if (node.children.length > 0) {
868
- expanded[node.path ?? node.label] = true;
869
- collectKeys(node.children);
870
- }
871
- }
872
- }
873
- collectKeys(tree);
874
- return expanded;
875
- });
876
- const handleToggle = (key) => {
877
- setExpandedPaths((prev) => ({ ...prev, [key]: !prev[key] }));
878
- };
879
- return /* @__PURE__ */ jsx(
880
- Box,
881
- {
882
- style: {
883
- flex: 1,
884
- minHeight: 0,
885
- padding: theme.spacing.sm,
886
- display: "flex",
887
- flexDirection: "column",
888
- overflow: "hidden"
889
- },
890
- children: /* @__PURE__ */ jsx(ScrollArea, { style: { flex: 1, minHeight: 0 }, scrollbarSize: 8, children: /* @__PURE__ */ jsx(Stack, { gap: 0, children: tree.map((node) => /* @__PURE__ */ jsx(
891
- TreeNodeItem,
892
- {
893
- node,
894
- selectedPath,
895
- onSelect,
896
- expandedPaths,
897
- onToggle: handleToggle
898
- },
899
- node.path ?? node.label
900
- )) }) })
901
- }
902
- );
903
- }
904
-
905
- // src/components/operations/knowledge-base/preferredDocPath.ts
906
- var PREFERRED_INDEX_PATHS = ["index.mdx", "index.md", "docs/index.mdx", "docs/index.md"];
907
- function getPreferredDocPath(files, selectedPath) {
908
- if (selectedPath && files.some((file) => file.path === selectedPath)) {
909
- return selectedPath;
910
- }
911
- if (files.length === 0) {
912
- return null;
913
- }
914
- const preferredIndexFile = files.find(
915
- (file) => PREFERRED_INDEX_PATHS.includes(file.path)
916
- );
917
- return preferredIndexFile?.path ?? files[0].path;
918
- }
919
- function KnowledgeBasePage({ mdxRenderer: MdxRenderer2 }) {
920
- const { organizationReady } = useInitialization();
921
- const [selectedDeploymentId, setSelectedDeploymentId] = useState(void 0);
922
- const [selectedPath, setSelectedPath] = useState(null);
923
- const { files, isLoading, error, activeDeployment, activeDeployments } = useDeploymentDocs(selectedDeploymentId);
924
- const effectivePath = useMemo(() => {
925
- return getPreferredDocPath(files, selectedPath);
926
- }, [selectedPath, files]);
927
- const selectedFile = useMemo(() => {
928
- if (!effectivePath) return null;
929
- return files.find((f) => f.path === effectivePath) ?? null;
930
- }, [effectivePath, files]);
931
- const handleSelect = useCallback((path) => {
932
- setSelectedPath(path);
933
- }, []);
934
- const contentRef = useRef(null);
935
- const [headings, setHeadings] = useState([]);
936
- const [activeHeadingId, setActiveHeadingId] = useState(null);
937
- useEffect(() => {
938
- if (!contentRef.current) {
939
- setHeadings([]);
940
- return;
941
- }
942
- const timer = setTimeout(() => {
943
- if (!contentRef.current) return;
944
- const elements = contentRef.current.querySelectorAll("h3[id], h4[id]");
945
- const items = Array.from(elements).map((el) => ({
946
- id: el.id,
947
- text: el.textContent || "",
948
- level: parseInt(el.tagName[1])
949
- }));
950
- setHeadings(items);
951
- setActiveHeadingId(items[0]?.id ?? null);
952
- }, 100);
953
- return () => clearTimeout(timer);
954
- }, [selectedFile?.compiledSource]);
955
- useEffect(() => {
956
- if (headings.length === 0) return;
957
- const scrollContainer = contentRef.current?.closest('[style*="overflow"]');
958
- if (!scrollContainer) return;
959
- const handleScroll = () => {
960
- if (!contentRef.current) return;
961
- const elements = contentRef.current.querySelectorAll("h3[id], h4[id]");
962
- let current = headings[0]?.id ?? null;
963
- for (const el of elements) {
964
- const rect = el.getBoundingClientRect();
965
- if (rect.top <= 120) {
966
- current = el.id;
967
- } else {
968
- break;
969
- }
970
- }
971
- setActiveHeadingId(current);
972
- };
973
- scrollContainer.addEventListener("scroll", handleScroll, { passive: true });
974
- return () => scrollContainer.removeEventListener("scroll", handleScroll);
975
- }, [headings]);
976
- if (!organizationReady || isLoading) return /* @__PURE__ */ jsx(SubshellLoader, {});
977
- const showError = !!error;
978
- const showNoDeployments = !error && !activeDeployment;
979
- const showNoDocs = !error && !!activeDeployment && files.length === 0;
980
- const showContent = !error && files.length > 0;
981
- return /* @__PURE__ */ jsxs(SubshellContainer, { children: [
982
- /* @__PURE__ */ jsxs(SubshellSidebar, { width: 250, children: [
983
- /* @__PURE__ */ jsx(
984
- Box,
985
- {
986
- p: "sm",
987
- style: { borderBottom: "1px solid var(--color-border)", borderRadius: "var(--mantine-radius-default)" },
988
- children: /* @__PURE__ */ jsxs(Stack, { gap: "xs", children: [
989
- /* @__PURE__ */ jsxs(Group, { justify: "space-between", children: [
990
- /* @__PURE__ */ jsxs(Group, { gap: "xs", children: [
991
- /* @__PURE__ */ jsx(IconBook2, { size: 16, color: "var(--color-text-subtle)" }),
992
- /* @__PURE__ */ jsx(
993
- Text,
994
- {
995
- size: "sm",
996
- fw: 600,
997
- c: "var(--color-text-subtle)",
998
- style: { fontFamily: "var(--mantine-font-family-headings)" },
999
- children: "Documentation"
1000
- }
1001
- )
1002
- ] }),
1003
- activeDeployment && /* @__PURE__ */ jsxs(Badge, { size: "xs", variant: "light", children: [
1004
- "v",
1005
- activeDeployment.sdkVersion
1006
- ] })
1007
- ] }),
1008
- activeDeployments.length > 1 && /* @__PURE__ */ jsx(
1009
- Select,
1010
- {
1011
- size: "xs",
1012
- placeholder: "Select deployment",
1013
- data: activeDeployments.map((d) => ({
1014
- value: d.id,
1015
- label: `${d.sdkVersion} -- ${new Date(d.createdAt).toLocaleDateString()}`
1016
- })),
1017
- value: activeDeployment?.id ?? null,
1018
- onChange: (value) => setSelectedDeploymentId(value ?? void 0)
1019
- }
1020
- )
1021
- ] })
1022
- }
1023
- ),
1024
- showContent && /* @__PURE__ */ jsx(DocTreeNav, { files, selectedPath: effectivePath, onSelect: handleSelect })
1025
- ] }),
1026
- /* @__PURE__ */ jsx(SubshellRightSideContainer, { children: /* @__PURE__ */ jsx(SubshellContentContainer, { children: /* @__PURE__ */ jsx(PageContainer, { children: /* @__PURE__ */ jsxs(Stack, { children: [
1027
- /* @__PURE__ */ jsx(PageTitleCaption, { title: "Knowledge Base" }),
1028
- showError && /* @__PURE__ */ jsx(Alert, { icon: /* @__PURE__ */ jsx(IconAlertCircle, { size: 16 }), title: "Failed to load documentation", color: "red", children: error instanceof Error ? error.message : "An unexpected error occurred" }),
1029
- showNoDeployments && /* @__PURE__ */ jsx(Center, { style: { flex: 1 }, children: /* @__PURE__ */ jsxs(Stack, { align: "center", gap: "sm", children: [
1030
- /* @__PURE__ */ jsx(IconFileOff, { size: 48, color: "var(--color-text-subtle)" }),
1031
- /* @__PURE__ */ jsx(Text, { c: "dimmed", size: "lg", children: "No active deployments" }),
1032
- /* @__PURE__ */ jsx(Text, { c: "dimmed", size: "sm", children: "Deploy your project using the Elevasis SDK to see documentation here." })
1033
- ] }) }),
1034
- showNoDocs && /* @__PURE__ */ jsx(Center, { style: { flex: 1 }, children: /* @__PURE__ */ jsxs(Stack, { align: "center", gap: "sm", children: [
1035
- /* @__PURE__ */ jsx(IconFileOff, { size: 48, color: "var(--color-text-subtle)" }),
1036
- /* @__PURE__ */ jsx(Text, { c: "dimmed", size: "lg", children: "No documentation found" }),
1037
- /* @__PURE__ */ jsx(Text, { c: "dimmed", size: "sm", children: "Add Markdown files (`.md` or `.mdx`) to your project's docs directory and redeploy." })
1038
- ] }) }),
1039
- showContent && selectedFile && /* @__PURE__ */ jsxs(Box, { style: { display: "flex", gap: "1rem", alignItems: "flex-start" }, children: [
1040
- /* @__PURE__ */ jsx(Box, { style: { flex: 1, minWidth: 0 }, children: /* @__PURE__ */ jsx(Card, { withBorder: true, children: /* @__PURE__ */ jsx("div", { ref: contentRef, children: MdxRenderer2 ? /* @__PURE__ */ jsx(MdxRenderer2, { compiledSource: selectedFile.compiledSource }) : /* @__PURE__ */ jsx(Text, { c: "dimmed", children: "No MDX renderer provided" }) }) }) }),
1041
- headings.length > 1 && /* @__PURE__ */ jsxs(
1042
- Box,
1043
- {
1044
- style: {
1045
- width: 200,
1046
- flexShrink: 0,
1047
- position: "sticky",
1048
- top: 70,
1049
- border: "1px solid var(--color-border)",
1050
- padding: "0.75rem",
1051
- background: "var(--glass-background)",
1052
- backdropFilter: "var(--glass-blur)",
1053
- borderRadius: "var(--mantine-radius-default)"
1054
- },
1055
- children: [
1056
- /* @__PURE__ */ jsxs(Group, { gap: 6, mb: "xs", children: [
1057
- /* @__PURE__ */ jsx(IconList, { size: 16, style: { opacity: 0.5 } }),
1058
- /* @__PURE__ */ jsx(Title, { order: 6, c: "dimmed", tt: "uppercase", children: "On this page" })
1059
- ] }),
1060
- /* @__PURE__ */ jsx(ScrollArea.Autosize, { mah: 400, scrollbarSize: 4, children: /* @__PURE__ */ jsx(Stack, { gap: 2, children: headings.map((heading) => /* @__PURE__ */ jsx(
1061
- Text,
1062
- {
1063
- component: "a",
1064
- href: `#${heading.id}`,
1065
- size: "sm",
1066
- onClick: (e) => {
1067
- e.preventDefault();
1068
- document.getElementById(heading.id)?.scrollIntoView({ behavior: "smooth", block: "start" });
1069
- },
1070
- style: {
1071
- display: "block",
1072
- padding: "3px 8px",
1073
- paddingLeft: heading.level === 4 ? "16px" : "8px",
1074
- borderLeft: activeHeadingId === heading.id ? "2px solid var(--color-primary)" : "2px solid transparent",
1075
- color: activeHeadingId === heading.id ? "var(--color-primary)" : "var(--color-text-subtle)",
1076
- textDecoration: "none",
1077
- borderRadius: 0,
1078
- transition: "all var(--duration-fast) var(--easing)",
1079
- cursor: "pointer",
1080
- lineHeight: 1.4
1081
- },
1082
- onMouseEnter: (e) => {
1083
- if (activeHeadingId !== heading.id) {
1084
- e.currentTarget.style.color = "var(--color-text)";
1085
- }
1086
- },
1087
- onMouseLeave: (e) => {
1088
- if (activeHeadingId !== heading.id) {
1089
- e.currentTarget.style.color = "var(--color-text-subtle)";
1090
- }
1091
- },
1092
- children: heading.text
1093
- },
1094
- heading.id
1095
- )) }) })
1096
- ]
1097
- }
1098
- )
1099
- ] }),
1100
- showContent && !selectedFile && /* @__PURE__ */ jsx(Center, { style: { flex: 1 }, children: /* @__PURE__ */ jsx(Text, { c: "dimmed", children: "Select a page from the navigation" }) })
1101
- ] }) }) }) })
1102
- ] });
1103
- }
1104
730
  function ScheduleTypeSelector({ value, onChange, disabled }) {
1105
731
  return /* @__PURE__ */ jsxs(Stack, { gap: "xs", children: [
1106
732
  /* @__PURE__ */ jsx(Text, { size: "sm", fw: 500, children: "Schedule Type" }),
@@ -3844,4 +3470,4 @@ function NotificationBell({ unreadCount, onNavigate }) {
3844
3470
  ] });
3845
3471
  }
3846
3472
 
3847
- export { AbsoluteScheduleForm, ApiKeyDisplayModal, ApiKeyList, ApiKeySettings, Breadcrumbs, CommandViewEdge, CommandViewGraph, CommandViewNode, CrashErrorFallback, CreateApiKeyModal, CreateScheduleModal, DEAL_STAGES, DEFAULT_KANBAN_CONFIG, DealDrawer, DealKanbanCard, DeleteScheduleModal, DeploymentDetailModal, DeploymentList, DeploymentSettings, DeploymentStatusBadge, DocTreeNav, EditApiKeyModal, ErrorReportCard, KanbanBoard, KnowledgeBasePage, MdxRenderer, NotificationBell, NotificationPanel, RecurringScheduleForm, RelativeScheduleForm, RichTextEditor, ScheduleCard, ScheduleDetailModal, ScheduleTypeSelector, TaskScheduler, buildErrorReport, mdxComponents };
3473
+ export { AbsoluteScheduleForm, ApiKeyDisplayModal, ApiKeyList, ApiKeySettings, Breadcrumbs, CommandViewEdge, CommandViewGraph, CommandViewNode, CrashErrorFallback, CreateApiKeyModal, CreateScheduleModal, DEAL_STAGES, DEFAULT_KANBAN_CONFIG, DealDrawer, DealKanbanCard, DeleteScheduleModal, DeploymentDetailModal, DeploymentList, DeploymentSettings, DeploymentStatusBadge, EditApiKeyModal, ErrorReportCard, KanbanBoard, MdxRenderer, NotificationBell, NotificationPanel, RecurringScheduleForm, RelativeScheduleForm, RichTextEditor, ScheduleCard, ScheduleDetailModal, ScheduleTypeSelector, TaskScheduler, buildErrorReport, mdxComponents };
@@ -1263,10 +1263,8 @@ type Database = {
1263
1263
  };
1264
1264
  deployments: {
1265
1265
  Row: {
1266
- compiled_docs: Json | null;
1267
1266
  created_at: string;
1268
1267
  deployment_version: string | null;
1269
- documentation: Json | null;
1270
1268
  error_message: string | null;
1271
1269
  id: string;
1272
1270
  organization_id: string;
@@ -1278,10 +1276,8 @@ type Database = {
1278
1276
  updated_at: string;
1279
1277
  };
1280
1278
  Insert: {
1281
- compiled_docs?: Json | null;
1282
1279
  created_at?: string;
1283
1280
  deployment_version?: string | null;
1284
- documentation?: Json | null;
1285
1281
  error_message?: string | null;
1286
1282
  id?: string;
1287
1283
  organization_id: string;
@@ -1293,10 +1289,8 @@ type Database = {
1293
1289
  updated_at?: string;
1294
1290
  };
1295
1291
  Update: {
1296
- compiled_docs?: Json | null;
1297
1292
  created_at?: string;
1298
1293
  deployment_version?: string | null;
1299
- documentation?: Json | null;
1300
1294
  error_message?: string | null;
1301
1295
  id?: string;
1302
1296
  organization_id?: string;
@@ -1808,6 +1802,13 @@ type Database = {
1808
1802
  updated_at?: string;
1809
1803
  };
1810
1804
  Relationships: [
1805
+ {
1806
+ foreignKeyName: "fk_milestones_project";
1807
+ columns: ["project_id"];
1808
+ isOneToOne: false;
1809
+ referencedRelation: "prj_projects";
1810
+ referencedColumns: ["id"];
1811
+ },
1811
1812
  {
1812
1813
  foreignKeyName: "prj_milestones_organization_id_fkey";
1813
1814
  columns: ["organization_id"];
@@ -1868,6 +1869,34 @@ type Database = {
1868
1869
  type?: string;
1869
1870
  };
1870
1871
  Relationships: [
1872
+ {
1873
+ foreignKeyName: "fk_notes_created_by";
1874
+ columns: ["created_by"];
1875
+ isOneToOne: false;
1876
+ referencedRelation: "users";
1877
+ referencedColumns: ["id"];
1878
+ },
1879
+ {
1880
+ foreignKeyName: "fk_notes_milestone";
1881
+ columns: ["milestone_id"];
1882
+ isOneToOne: false;
1883
+ referencedRelation: "prj_milestones";
1884
+ referencedColumns: ["id"];
1885
+ },
1886
+ {
1887
+ foreignKeyName: "fk_notes_project";
1888
+ columns: ["project_id"];
1889
+ isOneToOne: false;
1890
+ referencedRelation: "prj_projects";
1891
+ referencedColumns: ["id"];
1892
+ },
1893
+ {
1894
+ foreignKeyName: "fk_notes_task";
1895
+ columns: ["task_id"];
1896
+ isOneToOne: false;
1897
+ referencedRelation: "prj_tasks";
1898
+ referencedColumns: ["id"];
1899
+ },
1871
1900
  {
1872
1901
  foreignKeyName: "prj_notes_created_by_fkey";
1873
1902
  columns: ["created_by"];
@@ -1958,6 +1987,20 @@ type Database = {
1958
1987
  updated_at?: string;
1959
1988
  };
1960
1989
  Relationships: [
1990
+ {
1991
+ foreignKeyName: "fk_projects_company";
1992
+ columns: ["client_company_id"];
1993
+ isOneToOne: false;
1994
+ referencedRelation: "acq_companies";
1995
+ referencedColumns: ["id"];
1996
+ },
1997
+ {
1998
+ foreignKeyName: "fk_projects_deal";
1999
+ columns: ["deal_id"];
2000
+ isOneToOne: false;
2001
+ referencedRelation: "acq_deals";
2002
+ referencedColumns: ["id"];
2003
+ },
1961
2004
  {
1962
2005
  foreignKeyName: "prj_projects_client_company_id_fkey";
1963
2006
  columns: ["client_company_id"];
@@ -2040,6 +2083,27 @@ type Database = {
2040
2083
  updated_at?: string;
2041
2084
  };
2042
2085
  Relationships: [
2086
+ {
2087
+ foreignKeyName: "fk_tasks_milestone";
2088
+ columns: ["milestone_id"];
2089
+ isOneToOne: false;
2090
+ referencedRelation: "prj_milestones";
2091
+ referencedColumns: ["id"];
2092
+ },
2093
+ {
2094
+ foreignKeyName: "fk_tasks_parent";
2095
+ columns: ["parent_task_id"];
2096
+ isOneToOne: false;
2097
+ referencedRelation: "prj_tasks";
2098
+ referencedColumns: ["id"];
2099
+ },
2100
+ {
2101
+ foreignKeyName: "fk_tasks_project";
2102
+ columns: ["project_id"];
2103
+ isOneToOne: false;
2104
+ referencedRelation: "prj_projects";
2105
+ referencedColumns: ["id"];
2106
+ },
2043
2107
  {
2044
2108
  foreignKeyName: "prj_tasks_milestone_id_fkey";
2045
2109
  columns: ["milestone_id"];