@elevasis/ui 2.25.0 → 2.25.1
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.
- package/dist/app/index.css +11 -0
- package/dist/app/index.d.ts +457 -357
- package/dist/app/index.js +8 -7
- package/dist/auth/index.js +4 -4
- package/dist/charts/index.js +7 -7
- package/dist/{chunk-DDZOHLHB.js → chunk-26HQMR7S.js} +1 -1
- package/dist/{chunk-ZMXZ476Y.js → chunk-3AHEHVJ6.js} +3 -3
- package/dist/{chunk-LJWV4TWV.js → chunk-4ZFBVND2.js} +2 -2
- package/dist/{chunk-7D2HSSIW.js → chunk-7LJUTTXU.js} +5 -5
- package/dist/{chunk-ABV5LDDC.js → chunk-AZQY7AJR.js} +13 -24
- package/dist/{chunk-BIWHHWCJ.js → chunk-DWK2QIAK.js} +2 -1
- package/dist/{chunk-ZDKQNQ4X.js → chunk-GESXCQWY.js} +1 -1
- package/dist/{chunk-Z6FAH4XV.js → chunk-HKBEURCV.js} +1 -1
- package/dist/{chunk-HC2KV6BU.js → chunk-HOIT677G.js} +1 -1
- package/dist/chunk-IS53MXE4.js +230 -0
- package/dist/{chunk-WSC5LU3U.js → chunk-IX7LWINC.js} +6 -5
- package/dist/{chunk-AXXTN44Z.js → chunk-IYIZYMIE.js} +2 -2
- package/dist/{chunk-WWVSPOJY.js → chunk-JDQSCEEF.js} +1237 -642
- package/dist/{chunk-AZXSFDG2.js → chunk-JMI7L7Y7.js} +113 -63
- package/dist/{chunk-TSSKOQBX.js → chunk-KMAXFJPH.js} +2 -2
- package/dist/{chunk-HQ7M6PBW.js → chunk-KU7ZDWQ7.js} +1 -1
- package/dist/{chunk-ZGZZIR6K.js → chunk-L4RT57WU.js} +7 -7
- package/dist/{chunk-LK4MPIMK.js → chunk-MU4VPAMR.js} +2 -2
- package/dist/{chunk-3JCMO7SD.js → chunk-N55DVMAG.js} +1 -1
- package/dist/{chunk-EIOJNUPL.js → chunk-PNLJIPV5.js} +1 -1
- package/dist/{chunk-6Z3G4U2R.js → chunk-Q5BEODAT.js} +3 -2
- package/dist/{chunk-HVC2BTFO.js → chunk-QB2CC4VH.js} +1979 -257
- package/dist/{chunk-QJLRDTYS.js → chunk-RSG2O3HF.js} +932 -707
- package/dist/{chunk-M25JL54Z.js → chunk-RYTEQBAO.js} +1 -1
- package/dist/{chunk-XUYBOO32.js → chunk-U36X6NZM.js} +15 -7
- package/dist/{chunk-QSTH6T77.js → chunk-VKMNWHTL.js} +1 -1
- package/dist/{chunk-V3UOW2HG.js → chunk-VOVZLL23.js} +4 -4
- package/dist/{chunk-SLH2QLKV.js → chunk-WFTNY755.js} +1 -1
- package/dist/{chunk-DK2HVHCY.js → chunk-WKJ47GIW.js} +1 -1
- package/dist/chunk-X4WBGKJQ.js +138 -0
- package/dist/{chunk-QHSW4WHM.js → chunk-XTVZFT7U.js} +1 -1
- package/dist/components/index.css +11 -0
- package/dist/components/index.d.ts +478 -386
- package/dist/components/index.js +138 -336
- package/dist/components/navigation/index.css +11 -0
- package/dist/components/navigation/index.js +8 -8
- package/dist/features/auth/index.css +11 -0
- package/dist/features/auth/index.d.ts +369 -363
- package/dist/features/auth/index.js +7 -7
- package/dist/features/crm/index.css +11 -0
- package/dist/features/crm/index.d.ts +551 -360
- package/dist/features/crm/index.js +19 -19
- package/dist/features/dashboard/index.css +11 -0
- package/dist/features/dashboard/index.js +20 -20
- package/dist/features/delivery/index.css +11 -0
- package/dist/features/delivery/index.d.ts +363 -357
- package/dist/features/delivery/index.js +19 -19
- package/dist/features/lead-gen/index.css +11 -0
- package/dist/features/lead-gen/index.d.ts +160 -2
- package/dist/features/lead-gen/index.js +20 -19
- package/dist/features/monitoring/index.css +11 -0
- package/dist/features/monitoring/index.js +21 -21
- package/dist/features/monitoring/requests/index.css +11 -0
- package/dist/features/monitoring/requests/index.js +17 -17
- package/dist/features/operations/index.css +11 -0
- package/dist/features/operations/index.js +24 -23
- package/dist/features/seo/index.js +2 -2
- package/dist/features/settings/index.css +11 -0
- package/dist/features/settings/index.d.ts +369 -363
- package/dist/features/settings/index.js +19 -19
- package/dist/hooks/delivery/index.css +11 -0
- package/dist/hooks/delivery/index.d.ts +363 -357
- package/dist/hooks/delivery/index.js +2 -2
- package/dist/hooks/index.css +11 -0
- package/dist/hooks/index.d.ts +746 -399
- package/dist/hooks/index.js +17 -17
- package/dist/hooks/published.css +11 -0
- package/dist/hooks/published.d.ts +746 -399
- package/dist/hooks/published.js +17 -17
- package/dist/index.css +11 -0
- package/dist/index.d.ts +862 -381
- package/dist/index.js +17 -17
- package/dist/initialization/index.d.ts +369 -363
- package/dist/initialization/index.js +4 -4
- package/dist/layout/index.d.ts +6 -0
- package/dist/layout/index.js +5 -5
- package/dist/organization/index.css +11 -0
- package/dist/organization/index.js +4 -4
- package/dist/profile/index.d.ts +369 -363
- package/dist/profile/index.js +2 -2
- package/dist/provider/ElevasisServiceContext.d.ts +1 -0
- package/dist/provider/ElevasisServiceContext.js +1 -1
- package/dist/provider/index.css +11 -0
- package/dist/provider/index.d.ts +503 -362
- package/dist/provider/index.js +14 -14
- package/dist/provider/published.css +11 -0
- package/dist/provider/published.d.ts +494 -359
- package/dist/provider/published.js +12 -12
- package/dist/supabase/index.d.ts +369 -357
- package/dist/test-utils/index.js +1 -1
- package/dist/typeform/index.js +49 -20
- package/dist/types/index.d.ts +382 -363
- package/package.json +4 -4
- package/dist/chunk-CEWTOKE7.js +0 -109
- /package/dist/{chunk-IRW7JMQ4.js → chunk-5WWZXCS5.js} +0 -0
- /package/dist/{chunk-QJ2KCHKX.js → chunk-E565XMTQ.js} +0 -0
package/dist/components/index.js
CHANGED
|
@@ -1,28 +1,29 @@
|
|
|
1
|
-
import { useBreadcrumbs } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
export { AllTasksPage, HealthStatusCard, MilestoneTimeline, ProjectDetailPage, ProjectsListPage, ProjectsSidebar, ProjectsSidebarMiddle, ProjectsSidebarTop, TaskCard, UpcomingMilestonesPage, calculateProgress, deliveryManifest, formatStatusLabel, milestoneStatusColors, noteTypeColors, projectStatusColors, taskStatusColors, taskTypeColors } from '../chunk-
|
|
4
|
-
export { LEAD_GEN_ROUTE_LINKS, LeadGenCompaniesPage, LeadGenContactsPage, LeadGenListDetailPage, LeadGenListsPage, LeadGenOverviewPage, LeadGenRouteShell, LeadGenSidebar, LeadGenSidebarMiddle, LeadGenSidebarTop, getEnrichmentColor, getStatusColor, leadGenManifest, useDeleteLists } from '../chunk-
|
|
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-
|
|
1
|
+
import { useBreadcrumbs } from '../chunk-26HQMR7S.js';
|
|
2
|
+
import '../chunk-Q5BEODAT.js';
|
|
3
|
+
export { AllTasksPage, HealthStatusCard, MilestoneTimeline, ProjectDetailPage, ProjectsListPage, ProjectsSidebar, ProjectsSidebarMiddle, ProjectsSidebarTop, TaskCard, UpcomingMilestonesPage, calculateProgress, deliveryManifest, formatStatusLabel, milestoneStatusColors, noteTypeColors, projectStatusColors, taskStatusColors, taskTypeColors } from '../chunk-IX7LWINC.js';
|
|
4
|
+
export { LEAD_GEN_ROUTE_LINKS, LeadGenCompaniesPage, LeadGenContactsPage, LeadGenListDetailPage, LeadGenListsPage, LeadGenOverviewPage, LeadGenRouteShell, LeadGenSidebar, LeadGenSidebarMiddle, LeadGenSidebarTop, getEnrichmentColor, getStatusColor, leadGenManifest, useDeleteLists } from '../chunk-QB2CC4VH.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-AZQY7AJR.js';
|
|
6
6
|
import '../chunk-ROSMICXG.js';
|
|
7
|
-
import '../chunk-
|
|
7
|
+
import '../chunk-N55DVMAG.js';
|
|
8
8
|
import '../chunk-ZTWA5H77.js';
|
|
9
|
-
import { BaseNode, useGraphTheme, BaseEdge, GraphBackground, GraphLegend, GraphFitViewButton } from '../chunk-
|
|
10
|
-
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-
|
|
9
|
+
import { BaseNode, useGraphTheme, BaseEdge, GraphBackground, GraphLegend, GraphFitViewButton } from '../chunk-7LJUTTXU.js';
|
|
10
|
+
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-7LJUTTXU.js';
|
|
11
11
|
import '../chunk-442LZPIR.js';
|
|
12
|
-
import
|
|
13
|
-
|
|
14
|
-
export {
|
|
12
|
+
import '../chunk-IS53MXE4.js';
|
|
13
|
+
import { NotificationList } from '../chunk-VOVZLL23.js';
|
|
14
|
+
export { ActivityCard, ActivityFilters as ActivityFiltersBar, ActivityTable, BusinessImpactCard, CostBreakdownCard, CostByModelTable, CostMetricsCard, ErrorAnalysisCard, ErrorBreakdownTable, ExecutionBreakdownTable, ExecutionHealthCard, ExecutionLogsFilters as ExecutionLogsFilterBar, ExecutionLogsTable, NotificationItem, NotificationList, monitoringManifest } from '../chunk-VOVZLL23.js';
|
|
15
|
+
export { ResourceHealthPanel } from '../chunk-3AHEHVJ6.js';
|
|
15
16
|
export { ResourceHealthChart, getHealthColor } from '../chunk-LGKLC5MG.js';
|
|
16
|
-
import '../chunk-
|
|
17
|
-
export { SEOSidebar, SEOSidebarMiddle, SEOSidebarTop, seoManifest } from '../chunk-
|
|
18
|
-
import { showAuthError } from '../chunk-
|
|
19
|
-
export { CreateCredentialModal, CredentialList, CredentialSettings, MembershipFeaturePanel, MembershipStatusBadge, OAuthConnectModal, OrganizationMembershipsList, WebhookUrlDisplayModal, settingsManifest, showAuthError } from '../chunk-
|
|
20
|
-
import { AppShellLoader } from '../chunk-
|
|
21
|
-
import {
|
|
22
|
-
export { ActivityFeedWidget, CrmOverview, CrmSidebar, CrmSidebarMiddle, CrmSidebarTop, DealDetailPage, DealsListPage, MetricsStrip, MyTasksPanel, PIPELINE_FUNNEL_ORDER, PipelineFunnelWidget, QuickCreateActions, SAVED_VIEW_PRESETS, SavedViewsPanel, crmManifest, useCrmPipelineSummary, useCrmQuickMetrics, useRecentCrmActivity } from '../chunk-
|
|
17
|
+
import '../chunk-KMAXFJPH.js';
|
|
18
|
+
export { SEOSidebar, SEOSidebarMiddle, SEOSidebarTop, seoManifest } from '../chunk-DWK2QIAK.js';
|
|
19
|
+
import { showAuthError } from '../chunk-L4RT57WU.js';
|
|
20
|
+
export { CreateCredentialModal, CredentialList, CredentialSettings, MembershipFeaturePanel, MembershipStatusBadge, OAuthConnectModal, OrganizationMembershipsList, WebhookUrlDisplayModal, settingsManifest, showAuthError } from '../chunk-L4RT57WU.js';
|
|
21
|
+
import { AppShellLoader } from '../chunk-RYTEQBAO.js';
|
|
22
|
+
import { setDealReferrer, compareDealsByPriority } from '../chunk-JDQSCEEF.js';
|
|
23
|
+
export { ActivityFeedWidget, CrmOverview, CrmSidebar, CrmSidebarMiddle, CrmSidebarTop, DealDetailPage, DealsListPage, MetricsStrip, MyTasksPanel, PIPELINE_FUNNEL_ORDER, PipelineFunnelWidget, QuickCreateActions, SAVED_VIEW_PRESETS, SavedViewsPanel, crmManifest, useCrmPipelineSummary, useCrmQuickMetrics, useRecentCrmActivity } from '../chunk-JDQSCEEF.js';
|
|
23
24
|
import '../chunk-BZZCNLT6.js';
|
|
24
25
|
export { SortableHeader, TableSelectionToolbar } from '../chunk-TUMSNGTX.js';
|
|
25
|
-
import '../chunk-
|
|
26
|
+
import '../chunk-X4WBGKJQ.js';
|
|
26
27
|
import '../chunk-IIMU5YAJ.js';
|
|
27
28
|
import { FilterBar } from '../chunk-PDHTXPSF.js';
|
|
28
29
|
export { FilterBar } from '../chunk-PDHTXPSF.js';
|
|
@@ -31,48 +32,48 @@ export { ConfirmationInputModal, ConfirmationModal, CustomModal } from '../chunk
|
|
|
31
32
|
import '../chunk-SNHGSCKH.js';
|
|
32
33
|
export { CONTAINER_CONSTANTS, SHARED_VIZ_CONSTANTS } from '../chunk-E4WQGJNS.js';
|
|
33
34
|
import '../chunk-7M2VOCYN.js';
|
|
34
|
-
import { useCommandViewLayout, useOrganizationPermissions, useCreateOrgRole, usePermissionCatalog, useUpdateApiKey, useDeleteApiKey, useCreateApiKey, useListApiKeys, usePaginationState, useActivateDeployment, useDeactivateDeployment, useDeleteDeployment, useListDeployments, useResources, useCreateSchedule, useListSchedules, usePauseSchedule, useResumeSchedule, useCancelSchedule, useDeleteSchedule,
|
|
35
|
+
import { useCommandViewLayout, useOrganizationPermissions, useCreateOrgRole, usePermissionCatalog, useUpdateApiKey, useDeleteApiKey, useCreateApiKey, useListApiKeys, usePaginationState, useActivateDeployment, useDeactivateDeployment, useDeleteDeployment, useListDeployments, useResources, useCreateSchedule, useListSchedules, usePauseSchedule, useResumeSchedule, useCancelSchedule, useDeleteSchedule, useDeals, useTransitionItem, dealKeys, useMarkAllAsRead, useNotifications } from '../chunk-RSG2O3HF.js';
|
|
35
36
|
import '../chunk-BRXELOHC.js';
|
|
36
|
-
import '../chunk-
|
|
37
|
-
import { showSuccessNotification, showErrorNotification, showApiErrorNotification } from '../chunk-
|
|
38
|
-
export { showApiErrorNotification, showErrorNotification, showInfoNotification, showSuccessNotification, showWarningNotification } from '../chunk-
|
|
37
|
+
import '../chunk-VKMNWHTL.js';
|
|
38
|
+
import { showSuccessNotification, showErrorNotification, showApiErrorNotification } from '../chunk-HKBEURCV.js';
|
|
39
|
+
export { showApiErrorNotification, showErrorNotification, showInfoNotification, showSuccessNotification, showWarningNotification } from '../chunk-HKBEURCV.js';
|
|
39
40
|
import { Graph_module_css_default, useDirectedChainHighlighting, useNodeSelection, GRAPH_CONSTANTS } from '../chunk-22UVE3RA.js';
|
|
40
41
|
export { Graph_module_css_default as graphStyles } from '../chunk-22UVE3RA.js';
|
|
41
42
|
import '../chunk-3ZMAGTWF.js';
|
|
42
|
-
import '../chunk-
|
|
43
|
-
import '../chunk-
|
|
43
|
+
import '../chunk-PNLJIPV5.js';
|
|
44
|
+
import '../chunk-MU4VPAMR.js';
|
|
44
45
|
import '../chunk-QIW6OCEI.js';
|
|
45
46
|
import '../chunk-WLOQ4IBG.js';
|
|
46
|
-
import '../chunk-
|
|
47
|
-
import
|
|
48
|
-
import '../chunk-
|
|
47
|
+
import '../chunk-IYIZYMIE.js';
|
|
48
|
+
import '../chunk-JMI7L7Y7.js';
|
|
49
|
+
import '../chunk-4ZFBVND2.js';
|
|
49
50
|
import { SubshellContentContainer } from '../chunk-TKAYX2SP.js';
|
|
50
|
-
import { ListSkeleton, EmptyState, PageTitleCaption, StatCard, CenteredErrorState, CardHeader
|
|
51
|
-
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-
|
|
51
|
+
import { ListSkeleton, EmptyState, PageTitleCaption, StatCard, CenteredErrorState, CardHeader } from '../chunk-U36X6NZM.js';
|
|
52
|
+
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-U36X6NZM.js';
|
|
52
53
|
export { ElevasisLoader } from '../chunk-SZHARWKU.js';
|
|
53
54
|
export { StyledMarkdown } from '../chunk-3KMDHCAR.js';
|
|
54
55
|
export { NavigationButton } from '../chunk-NYBEU5TE.js';
|
|
55
56
|
import '../chunk-T6INEVX6.js';
|
|
56
57
|
import '../chunk-2IFYDILW.js';
|
|
57
58
|
import { useRouterContext } from '../chunk-Q7DJKLEN.js';
|
|
58
|
-
export { RoleBadge } from '../chunk-
|
|
59
|
-
import '../chunk-
|
|
60
|
-
import { useAppearance } from '../chunk-
|
|
61
|
-
import '../chunk-
|
|
59
|
+
export { RoleBadge } from '../chunk-GESXCQWY.js';
|
|
60
|
+
import '../chunk-HOIT677G.js';
|
|
61
|
+
import { useAppearance } from '../chunk-E565XMTQ.js';
|
|
62
|
+
import '../chunk-KU7ZDWQ7.js';
|
|
62
63
|
import '../chunk-DT3QYZVU.js';
|
|
63
64
|
import '../chunk-RNP5R5I3.js';
|
|
64
65
|
import { getResourceIcon, getResourceColor, formatDateTime, PAGE_SIZE_DEFAULT, formatTimeAgo } from '../chunk-SGXXJE52.js';
|
|
65
66
|
import '../chunk-KRWALB24.js';
|
|
66
|
-
import '../chunk-
|
|
67
|
-
import { useInitialization } from '../chunk-
|
|
67
|
+
import '../chunk-WFTNY755.js';
|
|
68
|
+
import { useInitialization } from '../chunk-WKJ47GIW.js';
|
|
68
69
|
import '../chunk-DD3CCMCZ.js';
|
|
69
|
-
import '../chunk-
|
|
70
|
-
import { useElevasisServices } from '../chunk-
|
|
70
|
+
import '../chunk-XTVZFT7U.js';
|
|
71
|
+
import { useElevasisServices } from '../chunk-5WWZXCS5.js';
|
|
71
72
|
import '../chunk-BRJ3QZ4E.js';
|
|
72
73
|
import '../chunk-I2KLQ2HA.js';
|
|
73
74
|
import * as runtime from 'react/jsx-runtime';
|
|
74
75
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
75
|
-
import { Stack, Group, ThemeIcon, Text, Badge, Box, Card, Title, Checkbox, Tooltip, Center, TextInput, Textarea, Loader, Alert, Button, Table, ActionIcon, Paper, Code, CopyButton, SimpleGrid, Pagination, SegmentedControl, Switch, Select, Divider, Menu, Timeline, Tabs, ScrollArea, Breadcrumbs as Breadcrumbs$1,
|
|
76
|
+
import { Stack, Group, ThemeIcon, Text, Badge, Box, Card, Title, Checkbox, Tooltip, Center, TextInput, Textarea, Loader, Alert, Button, Table, ActionIcon, Paper, Code, CopyButton, SimpleGrid, Pagination, SegmentedControl, Switch, Select, Divider, Menu, Timeline, Tabs, ScrollArea, Breadcrumbs as Breadcrumbs$1, Popover, Indicator } from '@mantine/core';
|
|
76
77
|
import { IconBrain, IconDatabase, IconMessage, IconAlertCircle, IconCircleX, IconCircleCheck, IconBolt, IconHandClick, IconClock, IconWebhook, IconExternalLink, IconLock, 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';
|
|
77
78
|
import { useForm } from '@mantine/form';
|
|
78
79
|
import { memo, forwardRef, useMemo, useImperativeHandle, useRef, useEffect, useState, useCallback, Component } from 'react';
|
|
@@ -87,6 +88,7 @@ import Placeholder from '@tiptap/extension-placeholder';
|
|
|
87
88
|
import StarterKit from '@tiptap/starter-kit';
|
|
88
89
|
import { Prism } from 'react-syntax-highlighter';
|
|
89
90
|
import { oneDark } from 'react-syntax-highlighter/dist/esm/styles/prism';
|
|
91
|
+
import { useNavigate } from '@tanstack/react-router';
|
|
90
92
|
|
|
91
93
|
function Can({ permission, fallback = null, children }) {
|
|
92
94
|
const { hasPermission, isReady } = useOrganizationPermissions();
|
|
@@ -3326,7 +3328,19 @@ function DealKanbanCard({ deal, config, onClick, onDragStart, onDragEnd }) {
|
|
|
3326
3328
|
onDragEnd,
|
|
3327
3329
|
onClick: () => onClick(deal),
|
|
3328
3330
|
children: /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
|
|
3329
|
-
/* @__PURE__ */
|
|
3331
|
+
/* @__PURE__ */ jsxs(Group, { justify: "space-between", align: "flex-start", gap: "xs", wrap: "nowrap", children: [
|
|
3332
|
+
/* @__PURE__ */ jsx(Text, { size: "sm", fw: 600, lineClamp: 1, style: { minWidth: 0, flex: 1 }, children: displayName }),
|
|
3333
|
+
/* @__PURE__ */ jsx(Tooltip, { label: deal.priority.reason, withArrow: true, children: /* @__PURE__ */ jsx(
|
|
3334
|
+
Badge,
|
|
3335
|
+
{
|
|
3336
|
+
variant: "light",
|
|
3337
|
+
size: "xs",
|
|
3338
|
+
color: deal.priority.color,
|
|
3339
|
+
style: { flexShrink: 0, maxWidth: 112, textTransform: "none" },
|
|
3340
|
+
children: /* @__PURE__ */ jsx(Box, { component: "span", style: { display: "block", maxWidth: 88, overflow: "hidden", textOverflow: "ellipsis" }, children: deal.priority.label })
|
|
3341
|
+
}
|
|
3342
|
+
) })
|
|
3343
|
+
] }),
|
|
3330
3344
|
/* @__PURE__ */ jsxs(Text, { size: "xs", c: "dimmed", lineClamp: 1, children: [
|
|
3331
3345
|
"State: ",
|
|
3332
3346
|
stateLabel
|
|
@@ -3348,214 +3362,9 @@ function DealKanbanCard({ deal, config, onClick, onDragStart, onDragEnd }) {
|
|
|
3348
3362
|
}
|
|
3349
3363
|
);
|
|
3350
3364
|
}
|
|
3351
|
-
function formatStageLabel(stage) {
|
|
3352
|
-
if (!stage) return "Unstaged";
|
|
3353
|
-
return stage.split("_").map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join(" ");
|
|
3354
|
-
}
|
|
3355
|
-
function DealDrawer({ deal, config, opened, onClose, renderActions }) {
|
|
3356
|
-
const [noteBody, setNoteBody] = useState("");
|
|
3357
|
-
const [stagingStage, setStagingStage] = useState("interested");
|
|
3358
|
-
const [stagingState, setStagingState] = useState(null);
|
|
3359
|
-
const { data: notes, isLoading: notesLoading } = useDealNotes(deal?.id ?? "");
|
|
3360
|
-
const createNote = useCreateDealNote();
|
|
3361
|
-
const crmActions = useCrmActions();
|
|
3362
|
-
const actions = useMemo(() => deal ? deriveActions(deal, crmActions) : [], [deal, crmActions]);
|
|
3363
|
-
const transitionState = useTransitionState();
|
|
3364
|
-
const transitionItem = useTransitionItem();
|
|
3365
|
-
if (!deal) return null;
|
|
3366
|
-
const contactFirstName = deal.contact?.first_name || "";
|
|
3367
|
-
const contactLastName = deal.contact?.last_name || "";
|
|
3368
|
-
const contactName = [contactFirstName, contactLastName].filter(Boolean).join(" ");
|
|
3369
|
-
const displayName = contactName || deal.contact_email || "Unknown";
|
|
3370
|
-
const email = deal.contact?.email || deal.contact_email || null;
|
|
3371
|
-
const companyName = deal.contact?.company?.name || deal.discovery_data?.company || null;
|
|
3372
|
-
const stage = deal.stage_key;
|
|
3373
|
-
const badgeColor = (stage ? config?.[stage]?.color : null) ?? "gray";
|
|
3374
|
-
const activityLog = deal.activity_log || [];
|
|
3375
|
-
const hasInitialFee = typeof deal.initial_fee === "number" && deal.initial_fee > 0;
|
|
3376
|
-
const hasMonthlyFee = typeof deal.monthly_fee === "number" && deal.monthly_fee > 0;
|
|
3377
|
-
function handleAddNote() {
|
|
3378
|
-
if (!noteBody.trim() || !deal) return;
|
|
3379
|
-
createNote.mutate(
|
|
3380
|
-
{ dealId: deal.id, body: noteBody.trim() },
|
|
3381
|
-
{
|
|
3382
|
-
onSuccess: () => setNoteBody("")
|
|
3383
|
-
}
|
|
3384
|
-
);
|
|
3385
|
-
}
|
|
3386
|
-
return /* @__PURE__ */ jsx(
|
|
3387
|
-
Drawer,
|
|
3388
|
-
{
|
|
3389
|
-
opened,
|
|
3390
|
-
onClose,
|
|
3391
|
-
position: "right",
|
|
3392
|
-
size: "lg",
|
|
3393
|
-
title: /* @__PURE__ */ jsxs(Group, { gap: "sm", wrap: "nowrap", children: [
|
|
3394
|
-
/* @__PURE__ */ jsx(Title, { order: 4, style: { margin: 0 }, children: displayName }),
|
|
3395
|
-
/* @__PURE__ */ jsx(Badge, { variant: "light", color: badgeColor, size: "sm", children: formatStageLabel(stage) })
|
|
3396
|
-
] }),
|
|
3397
|
-
scrollAreaComponent: ScrollArea.Autosize,
|
|
3398
|
-
children: /* @__PURE__ */ jsxs(Stack, { gap: "md", children: [
|
|
3399
|
-
email && /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: email }),
|
|
3400
|
-
companyName && /* @__PURE__ */ jsx(Text, { size: "sm", fw: 500, children: companyName }),
|
|
3401
|
-
/* @__PURE__ */ jsx(Divider, {}),
|
|
3402
|
-
/* @__PURE__ */ jsxs(Stack, { gap: 6, children: [
|
|
3403
|
-
/* @__PURE__ */ jsx(Title, { order: 5, children: "Summary" }),
|
|
3404
|
-
/* @__PURE__ */ jsxs(Group, { gap: "xl", wrap: "wrap", children: [
|
|
3405
|
-
hasInitialFee && /* @__PURE__ */ jsxs(Stack, { gap: 2, children: [
|
|
3406
|
-
/* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", children: "Initial Fee" }),
|
|
3407
|
-
/* @__PURE__ */ jsxs(Text, { size: "sm", fw: 500, children: [
|
|
3408
|
-
"$",
|
|
3409
|
-
deal.initial_fee.toLocaleString()
|
|
3410
|
-
] })
|
|
3411
|
-
] }),
|
|
3412
|
-
hasMonthlyFee && /* @__PURE__ */ jsxs(Stack, { gap: 2, children: [
|
|
3413
|
-
/* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", children: "Monthly Fee" }),
|
|
3414
|
-
/* @__PURE__ */ jsxs(Text, { size: "sm", fw: 500, children: [
|
|
3415
|
-
"$",
|
|
3416
|
-
deal.monthly_fee.toLocaleString(),
|
|
3417
|
-
"/mo"
|
|
3418
|
-
] })
|
|
3419
|
-
] }),
|
|
3420
|
-
/* @__PURE__ */ jsxs(Stack, { gap: 2, children: [
|
|
3421
|
-
/* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", children: "Last Updated" }),
|
|
3422
|
-
/* @__PURE__ */ jsx(Text, { size: "sm", fw: 500, children: formatTimeAgo(deal.updated_at) })
|
|
3423
|
-
] }),
|
|
3424
|
-
/* @__PURE__ */ jsxs(Stack, { gap: 2, children: [
|
|
3425
|
-
/* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", children: "Deal ID" }),
|
|
3426
|
-
/* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", ff: "monospace", children: deal.id })
|
|
3427
|
-
] })
|
|
3428
|
-
] })
|
|
3429
|
-
] }),
|
|
3430
|
-
deal.stage_key === null ? /* @__PURE__ */ jsxs(Stack, { gap: "xs", children: [
|
|
3431
|
-
/* @__PURE__ */ jsx(Title, { order: 5, children: "Stage this deal" }),
|
|
3432
|
-
/* @__PURE__ */ jsx(
|
|
3433
|
-
Select,
|
|
3434
|
-
{
|
|
3435
|
-
label: "Stage",
|
|
3436
|
-
data: CRM_PIPELINE_DEFINITION.stages.map((s) => ({
|
|
3437
|
-
value: s.stageKey,
|
|
3438
|
-
label: s.label
|
|
3439
|
-
})),
|
|
3440
|
-
value: stagingStage,
|
|
3441
|
-
onChange: (val) => {
|
|
3442
|
-
setStagingStage(val ?? "interested");
|
|
3443
|
-
setStagingState(null);
|
|
3444
|
-
}
|
|
3445
|
-
}
|
|
3446
|
-
),
|
|
3447
|
-
getValidStatesForStage(CRM_PIPELINE_DEFINITION, stagingStage).length > 0 && /* @__PURE__ */ jsx(
|
|
3448
|
-
Select,
|
|
3449
|
-
{
|
|
3450
|
-
label: "State",
|
|
3451
|
-
clearable: true,
|
|
3452
|
-
data: getValidStatesForStage(CRM_PIPELINE_DEFINITION, stagingStage).map((s) => ({
|
|
3453
|
-
value: s.stateKey,
|
|
3454
|
-
label: s.label
|
|
3455
|
-
})),
|
|
3456
|
-
value: stagingState,
|
|
3457
|
-
onChange: (val) => setStagingState(val)
|
|
3458
|
-
}
|
|
3459
|
-
),
|
|
3460
|
-
/* @__PURE__ */ jsx(Group, { justify: "flex-end", children: /* @__PURE__ */ jsx(
|
|
3461
|
-
Button,
|
|
3462
|
-
{
|
|
3463
|
-
size: "xs",
|
|
3464
|
-
variant: "light",
|
|
3465
|
-
loading: transitionItem.isPending,
|
|
3466
|
-
onClick: () => transitionItem.mutate({
|
|
3467
|
-
dealId: deal.id,
|
|
3468
|
-
pipelineKey: "crm",
|
|
3469
|
-
stageKey: stagingStage,
|
|
3470
|
-
stateKey: stagingState ?? void 0,
|
|
3471
|
-
expectedUpdatedAt: deal.updated_at
|
|
3472
|
-
}),
|
|
3473
|
-
children: "Stage deal"
|
|
3474
|
-
}
|
|
3475
|
-
) })
|
|
3476
|
-
] }) : (() => {
|
|
3477
|
-
const validStates = getValidStatesForStage(CRM_PIPELINE_DEFINITION, deal.stage_key);
|
|
3478
|
-
return validStates.length > 0 ? /* @__PURE__ */ jsx(
|
|
3479
|
-
Select,
|
|
3480
|
-
{
|
|
3481
|
-
label: "State",
|
|
3482
|
-
data: validStates.map((s) => ({ value: s.stateKey, label: s.label })),
|
|
3483
|
-
value: deal.state_key ?? null,
|
|
3484
|
-
disabled: transitionState.isPending,
|
|
3485
|
-
onChange: (val) => {
|
|
3486
|
-
if (val)
|
|
3487
|
-
transitionState.mutate({
|
|
3488
|
-
dealId: deal.id,
|
|
3489
|
-
stateKey: val,
|
|
3490
|
-
expectedUpdatedAt: deal.updated_at
|
|
3491
|
-
});
|
|
3492
|
-
}
|
|
3493
|
-
}
|
|
3494
|
-
) : null;
|
|
3495
|
-
})(),
|
|
3496
|
-
(actions.length > 0 || renderActions) && /* @__PURE__ */ jsxs(Stack, { gap: "xs", children: [
|
|
3497
|
-
/* @__PURE__ */ jsx(Title, { order: 5, children: "Actions" }),
|
|
3498
|
-
actions.length > 0 && /* @__PURE__ */ jsx(Group, { gap: "xs", wrap: "wrap", children: actions.map(
|
|
3499
|
-
(action) => action.payloadSchema ? /* @__PURE__ */ jsx(ActionFormButton, { action, dealId: deal.id }, action.key) : /* @__PURE__ */ jsx(ActionButton, { action, dealId: deal.id }, action.key)
|
|
3500
|
-
) }),
|
|
3501
|
-
renderActions && renderActions()
|
|
3502
|
-
] }),
|
|
3503
|
-
/* @__PURE__ */ jsx(Divider, {}),
|
|
3504
|
-
/* @__PURE__ */ jsxs(Stack, { gap: "sm", children: [
|
|
3505
|
-
/* @__PURE__ */ jsx(Title, { order: 5, children: "Notes" }),
|
|
3506
|
-
/* @__PURE__ */ jsxs(Stack, { gap: "xs", children: [
|
|
3507
|
-
/* @__PURE__ */ jsx(
|
|
3508
|
-
Textarea,
|
|
3509
|
-
{
|
|
3510
|
-
placeholder: "Add a note...",
|
|
3511
|
-
minRows: 2,
|
|
3512
|
-
autosize: true,
|
|
3513
|
-
value: noteBody,
|
|
3514
|
-
onChange: (e) => setNoteBody(e.currentTarget.value)
|
|
3515
|
-
}
|
|
3516
|
-
),
|
|
3517
|
-
/* @__PURE__ */ jsx(Group, { justify: "flex-end", children: /* @__PURE__ */ jsx(
|
|
3518
|
-
Button,
|
|
3519
|
-
{
|
|
3520
|
-
size: "xs",
|
|
3521
|
-
variant: "light",
|
|
3522
|
-
loading: createNote.isPending,
|
|
3523
|
-
disabled: !noteBody.trim(),
|
|
3524
|
-
onClick: handleAddNote,
|
|
3525
|
-
children: "Add note"
|
|
3526
|
-
}
|
|
3527
|
-
) })
|
|
3528
|
-
] }),
|
|
3529
|
-
notesLoading ? /* @__PURE__ */ jsx(Center, { p: "sm", children: /* @__PURE__ */ jsx(Loader, { size: "sm" }) }) : notes && notes.length > 0 ? /* @__PURE__ */ jsx(Stack, { gap: "xs", children: notes.map((note) => /* @__PURE__ */ jsxs(
|
|
3530
|
-
Stack,
|
|
3531
|
-
{
|
|
3532
|
-
gap: 4,
|
|
3533
|
-
style: {
|
|
3534
|
-
padding: "8px 12px",
|
|
3535
|
-
borderRadius: 6,
|
|
3536
|
-
backgroundColor: "var(--color-surface)",
|
|
3537
|
-
border: "1px solid var(--color-border)"
|
|
3538
|
-
},
|
|
3539
|
-
children: [
|
|
3540
|
-
/* @__PURE__ */ jsx(Text, { size: "sm", children: note.body }),
|
|
3541
|
-
/* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", children: formatTimeAgo(note.createdAt) })
|
|
3542
|
-
]
|
|
3543
|
-
},
|
|
3544
|
-
note.id
|
|
3545
|
-
)) }) : /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: "No notes yet." })
|
|
3546
|
-
] }),
|
|
3547
|
-
/* @__PURE__ */ jsx(Divider, {}),
|
|
3548
|
-
/* @__PURE__ */ jsxs(Stack, { gap: "sm", children: [
|
|
3549
|
-
/* @__PURE__ */ jsx(Title, { order: 5, children: "Activity" }),
|
|
3550
|
-
/* @__PURE__ */ jsx(ActivityTimeline, { activities: activityLog })
|
|
3551
|
-
] })
|
|
3552
|
-
] })
|
|
3553
|
-
}
|
|
3554
|
-
);
|
|
3555
|
-
}
|
|
3556
3365
|
var UNSTAGED_KEY = "unstaged";
|
|
3557
3366
|
var KANBAN_FETCH_LIMIT = 250;
|
|
3558
|
-
function
|
|
3367
|
+
function formatStageLabel(stage) {
|
|
3559
3368
|
if (stage === UNSTAGED_KEY) return "Unstaged";
|
|
3560
3369
|
return stage.split("_").map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join(" ");
|
|
3561
3370
|
}
|
|
@@ -3571,9 +3380,13 @@ function groupDealsByStage(deals, columns) {
|
|
|
3571
3380
|
map.get(UNSTAGED_KEY).push(deal);
|
|
3572
3381
|
}
|
|
3573
3382
|
}
|
|
3383
|
+
for (const bucket of map.values()) {
|
|
3384
|
+
bucket.sort((a, b) => compareDealsByPriority(a, b));
|
|
3385
|
+
}
|
|
3574
3386
|
return map;
|
|
3575
3387
|
}
|
|
3576
|
-
function KanbanBoard({ config
|
|
3388
|
+
function KanbanBoard({ config }) {
|
|
3389
|
+
const navigate = useNavigate();
|
|
3577
3390
|
const {
|
|
3578
3391
|
data: deals,
|
|
3579
3392
|
total,
|
|
@@ -3585,8 +3398,6 @@ function KanbanBoard({ config, renderDrawerActions }) {
|
|
|
3585
3398
|
});
|
|
3586
3399
|
const transitionItem = useTransitionItem();
|
|
3587
3400
|
const queryClient = useQueryClient();
|
|
3588
|
-
const [selectedDeal, setSelectedDeal] = useState(null);
|
|
3589
|
-
const [drawerOpen, setDrawerOpen] = useState(false);
|
|
3590
3401
|
const [dragOverColumn, setDragOverColumn] = useState(null);
|
|
3591
3402
|
const draggingDealRef = useRef(null);
|
|
3592
3403
|
const resolvedConfig = config ?? {};
|
|
@@ -3637,10 +3448,13 @@ function KanbanBoard({ config, renderDrawerActions }) {
|
|
|
3637
3448
|
draggingDealRef.current = null;
|
|
3638
3449
|
setDragOverColumn(null);
|
|
3639
3450
|
}, []);
|
|
3640
|
-
const handleCardClick = useCallback(
|
|
3641
|
-
|
|
3642
|
-
|
|
3643
|
-
|
|
3451
|
+
const handleCardClick = useCallback(
|
|
3452
|
+
(deal) => {
|
|
3453
|
+
setDealReferrer("pipeline");
|
|
3454
|
+
void navigate({ to: "/crm/deals/$dealId", params: { dealId: deal.id } });
|
|
3455
|
+
},
|
|
3456
|
+
[navigate]
|
|
3457
|
+
);
|
|
3644
3458
|
if (isLoading) {
|
|
3645
3459
|
return /* @__PURE__ */ jsx(SubshellContentContainer, { children: /* @__PURE__ */ jsx(Center, { style: { flex: 1 }, children: /* @__PURE__ */ jsx(Loader, {}) }) });
|
|
3646
3460
|
}
|
|
@@ -3656,93 +3470,81 @@ function KanbanBoard({ config, renderDrawerActions }) {
|
|
|
3656
3470
|
] }) }) })
|
|
3657
3471
|
] }) });
|
|
3658
3472
|
}
|
|
3659
|
-
return /* @__PURE__ */
|
|
3660
|
-
/* @__PURE__ */
|
|
3661
|
-
|
|
3662
|
-
|
|
3663
|
-
|
|
3664
|
-
|
|
3665
|
-
|
|
3666
|
-
|
|
3667
|
-
" deals in the board. This view is temporarily bounded to the list endpoint until full-board pagination lands."
|
|
3668
|
-
] }),
|
|
3669
|
-
/* @__PURE__ */ jsx(
|
|
3670
|
-
Paper,
|
|
3671
|
-
{
|
|
3672
|
-
p: "lg",
|
|
3673
|
-
style: {
|
|
3674
|
-
border: "1px solid var(--color-border)",
|
|
3675
|
-
overflow: "hidden"
|
|
3676
|
-
},
|
|
3677
|
-
children: /* @__PURE__ */ jsx(ScrollArea, { scrollbarSize: 8, type: "auto", children: /* @__PURE__ */ jsx(Group, { align: "flex-start", wrap: "nowrap", gap: "sm", style: { paddingBottom: 16, minWidth: "max-content" }, children: columns.map((columnKey) => {
|
|
3678
|
-
const columnDeals = groupedDeals.get(columnKey) ?? [];
|
|
3679
|
-
const isUnstaged = columnKey === UNSTAGED_KEY;
|
|
3680
|
-
const isDragTarget = dragOverColumn === columnKey;
|
|
3681
|
-
const badgeColor = isUnstaged ? "gray" : resolvedConfig[columnKey]?.color ?? "gray";
|
|
3682
|
-
return /* @__PURE__ */ jsx(
|
|
3683
|
-
Box,
|
|
3684
|
-
{
|
|
3685
|
-
style: {
|
|
3686
|
-
width: 260,
|
|
3687
|
-
minWidth: 260,
|
|
3688
|
-
borderRadius: 8,
|
|
3689
|
-
padding: "10px 8px",
|
|
3690
|
-
backgroundColor: isDragTarget ? "color-mix(in srgb, var(--color-primary) 6%, transparent)" : "transparent",
|
|
3691
|
-
border: isDragTarget ? "1px solid var(--color-primary)" : "1px solid transparent",
|
|
3692
|
-
transition: `background-color var(--duration-fast) var(--easing), border-color var(--duration-fast) var(--easing)`
|
|
3693
|
-
},
|
|
3694
|
-
onDragOver: (e) => handleDragOver(e, columnKey),
|
|
3695
|
-
onDragLeave: handleDragLeave,
|
|
3696
|
-
onDrop: (e) => handleDrop(e, columnKey),
|
|
3697
|
-
children: /* @__PURE__ */ jsxs(Stack, { gap: "xs", children: [
|
|
3698
|
-
/* @__PURE__ */ jsx(Group, { justify: "space-between", wrap: "nowrap", children: /* @__PURE__ */ jsxs(Group, { gap: 6, children: [
|
|
3699
|
-
/* @__PURE__ */ jsx(
|
|
3700
|
-
Box,
|
|
3701
|
-
{
|
|
3702
|
-
w: 10,
|
|
3703
|
-
h: 10,
|
|
3704
|
-
style: {
|
|
3705
|
-
borderRadius: "50%",
|
|
3706
|
-
background: `var(--mantine-color-${badgeColor}-6)`,
|
|
3707
|
-
flexShrink: 0
|
|
3708
|
-
}
|
|
3709
|
-
}
|
|
3710
|
-
),
|
|
3711
|
-
/* @__PURE__ */ jsx(Text, { size: "sm", fw: 600, lineClamp: 1, children: formatStageLabel2(columnKey) }),
|
|
3712
|
-
/* @__PURE__ */ jsx(Badge, { size: "xs", variant: "light", color: badgeColor, children: columnDeals.length })
|
|
3713
|
-
] }) }),
|
|
3714
|
-
/* @__PURE__ */ jsx(Divider, {}),
|
|
3715
|
-
columnDeals.length === 0 && /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", ta: "center", py: "md", style: { opacity: 0.5 }, children: isUnstaged ? "No unstaged deals" : "Drop here" }),
|
|
3716
|
-
/* @__PURE__ */ jsx(Stack, { gap: "xs", children: columnDeals.map((deal) => /* @__PURE__ */ jsx(
|
|
3717
|
-
DealKanbanCard,
|
|
3718
|
-
{
|
|
3719
|
-
deal,
|
|
3720
|
-
config: resolvedConfig,
|
|
3721
|
-
onClick: handleCardClick,
|
|
3722
|
-
onDragStart: handleDragStart,
|
|
3723
|
-
onDragEnd: handleDragEnd
|
|
3724
|
-
},
|
|
3725
|
-
deal.id
|
|
3726
|
-
)) })
|
|
3727
|
-
] })
|
|
3728
|
-
},
|
|
3729
|
-
columnKey
|
|
3730
|
-
);
|
|
3731
|
-
}) }) })
|
|
3732
|
-
}
|
|
3733
|
-
)
|
|
3473
|
+
return /* @__PURE__ */ jsx(SubshellContentContainer, { children: /* @__PURE__ */ jsxs(Stack, { children: [
|
|
3474
|
+
/* @__PURE__ */ jsx(PageTitleCaption, { title: "Pipeline", caption: "Kanban view of your deal pipeline" }),
|
|
3475
|
+
total > deals.length && /* @__PURE__ */ jsxs(Alert, { color: "yellow", variant: "light", children: [
|
|
3476
|
+
"Showing the first ",
|
|
3477
|
+
deals.length,
|
|
3478
|
+
" of ",
|
|
3479
|
+
total,
|
|
3480
|
+
" deals in the board. This view is temporarily bounded to the list endpoint until full-board pagination lands."
|
|
3734
3481
|
] }),
|
|
3735
3482
|
/* @__PURE__ */ jsx(
|
|
3736
|
-
|
|
3483
|
+
Paper,
|
|
3737
3484
|
{
|
|
3738
|
-
|
|
3739
|
-
|
|
3740
|
-
|
|
3741
|
-
|
|
3742
|
-
|
|
3485
|
+
p: "lg",
|
|
3486
|
+
style: {
|
|
3487
|
+
border: "1px solid var(--color-border)",
|
|
3488
|
+
overflow: "hidden"
|
|
3489
|
+
},
|
|
3490
|
+
children: /* @__PURE__ */ jsx(ScrollArea, { scrollbarSize: 8, type: "auto", children: /* @__PURE__ */ jsx(Group, { align: "flex-start", wrap: "nowrap", gap: "sm", style: { paddingBottom: 16, minWidth: "max-content" }, children: columns.map((columnKey) => {
|
|
3491
|
+
const columnDeals = groupedDeals.get(columnKey) ?? [];
|
|
3492
|
+
const isUnstaged = columnKey === UNSTAGED_KEY;
|
|
3493
|
+
const isDragTarget = dragOverColumn === columnKey;
|
|
3494
|
+
const badgeColor = isUnstaged ? "gray" : resolvedConfig[columnKey]?.color ?? "gray";
|
|
3495
|
+
return /* @__PURE__ */ jsx(
|
|
3496
|
+
Box,
|
|
3497
|
+
{
|
|
3498
|
+
style: {
|
|
3499
|
+
width: 260,
|
|
3500
|
+
minWidth: 260,
|
|
3501
|
+
borderRadius: 8,
|
|
3502
|
+
padding: "10px 8px",
|
|
3503
|
+
backgroundColor: isDragTarget ? "color-mix(in srgb, var(--color-primary) 6%, transparent)" : "transparent",
|
|
3504
|
+
border: isDragTarget ? "1px solid var(--color-primary)" : "1px solid transparent",
|
|
3505
|
+
transition: `background-color var(--duration-fast) var(--easing), border-color var(--duration-fast) var(--easing)`
|
|
3506
|
+
},
|
|
3507
|
+
onDragOver: (e) => handleDragOver(e, columnKey),
|
|
3508
|
+
onDragLeave: handleDragLeave,
|
|
3509
|
+
onDrop: (e) => handleDrop(e, columnKey),
|
|
3510
|
+
children: /* @__PURE__ */ jsxs(Stack, { gap: "xs", children: [
|
|
3511
|
+
/* @__PURE__ */ jsx(Group, { justify: "space-between", wrap: "nowrap", children: /* @__PURE__ */ jsxs(Group, { gap: 6, children: [
|
|
3512
|
+
/* @__PURE__ */ jsx(
|
|
3513
|
+
Box,
|
|
3514
|
+
{
|
|
3515
|
+
w: 10,
|
|
3516
|
+
h: 10,
|
|
3517
|
+
style: {
|
|
3518
|
+
borderRadius: "50%",
|
|
3519
|
+
background: `var(--mantine-color-${badgeColor}-6)`,
|
|
3520
|
+
flexShrink: 0
|
|
3521
|
+
}
|
|
3522
|
+
}
|
|
3523
|
+
),
|
|
3524
|
+
/* @__PURE__ */ jsx(Text, { size: "sm", fw: 600, lineClamp: 1, children: formatStageLabel(columnKey) }),
|
|
3525
|
+
/* @__PURE__ */ jsx(Badge, { size: "xs", variant: "light", color: badgeColor, children: columnDeals.length })
|
|
3526
|
+
] }) }),
|
|
3527
|
+
/* @__PURE__ */ jsx(Divider, {}),
|
|
3528
|
+
columnDeals.length === 0 && /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", ta: "center", py: "md", style: { opacity: 0.5 }, children: isUnstaged ? "No unstaged deals" : "Drop here" }),
|
|
3529
|
+
/* @__PURE__ */ jsx(Stack, { gap: "xs", children: columnDeals.map((deal) => /* @__PURE__ */ jsx(
|
|
3530
|
+
DealKanbanCard,
|
|
3531
|
+
{
|
|
3532
|
+
deal,
|
|
3533
|
+
config: resolvedConfig,
|
|
3534
|
+
onClick: handleCardClick,
|
|
3535
|
+
onDragStart: handleDragStart,
|
|
3536
|
+
onDragEnd: handleDragEnd
|
|
3537
|
+
},
|
|
3538
|
+
deal.id
|
|
3539
|
+
)) })
|
|
3540
|
+
] })
|
|
3541
|
+
},
|
|
3542
|
+
columnKey
|
|
3543
|
+
);
|
|
3544
|
+
}) }) })
|
|
3743
3545
|
}
|
|
3744
3546
|
)
|
|
3745
|
-
] });
|
|
3547
|
+
] }) });
|
|
3746
3548
|
}
|
|
3747
3549
|
|
|
3748
3550
|
// src/components/acquisition/kanban/constants.ts
|
|
@@ -3807,4 +3609,4 @@ function NotificationBell({ unreadCount, onNavigate }) {
|
|
|
3807
3609
|
] });
|
|
3808
3610
|
}
|
|
3809
3611
|
|
|
3810
|
-
export { AbsoluteScheduleForm, ApiKeyDisplayModal, ApiKeyList, ApiKeySettings, AppErrorBoundary, Breadcrumbs, Can, CommandViewEdge, CommandViewGraph, CommandViewNode, CrashErrorFallback, CreateApiKeyModal, CreateRoleModal, CreateScheduleModal, DEAL_STAGES, DEFAULT_KANBAN_CONFIG,
|
|
3612
|
+
export { AbsoluteScheduleForm, ApiKeyDisplayModal, ApiKeyList, ApiKeySettings, AppErrorBoundary, Breadcrumbs, Can, CommandViewEdge, CommandViewGraph, CommandViewNode, CrashErrorFallback, CreateApiKeyModal, CreateRoleModal, CreateScheduleModal, DEAL_STAGES, DEFAULT_KANBAN_CONFIG, DealKanbanCard, DeleteScheduleModal, DeploymentDetailModal, DeploymentList, DeploymentSettings, DeploymentStatusBadge, EditApiKeyModal, ErrorReportCard, KanbanBoard, MdxRenderer, NoAccessState, NotificationBell, NotificationPanel, PermissionMatrix, RecurringScheduleForm, RelativeScheduleForm, RichTextEditor, ScheduleCard, ScheduleDetailModal, ScheduleTypeSelector, TaskScheduler, buildErrorReport, mdxComponents };
|
|
@@ -136,6 +136,17 @@
|
|
|
136
136
|
.mantine-Button-root[data-variant=default]:hover {
|
|
137
137
|
background-color: var(--color-surface-hover);
|
|
138
138
|
}
|
|
139
|
+
.lead-gen-build-action-button:disabled,
|
|
140
|
+
.lead-gen-build-action-button[data-disabled] {
|
|
141
|
+
background-color: color-mix(in srgb, var(--mantine-color-gray-8) 48%, var(--color-surface) 52%) !important;
|
|
142
|
+
border-color: color-mix(in srgb, var(--mantine-color-gray-8) 58%, var(--color-surface) 42%) !important;
|
|
143
|
+
color: color-mix(in srgb, var(--color-text-subtle) 88%, var(--color-text-dimmed) 12%) !important;
|
|
144
|
+
opacity: 0.78;
|
|
145
|
+
}
|
|
146
|
+
.lead-gen-build-action-button:disabled:hover,
|
|
147
|
+
.lead-gen-build-action-button[data-disabled]:hover {
|
|
148
|
+
background-color: color-mix(in srgb, var(--mantine-color-gray-8) 48%, var(--color-surface) 52%) !important;
|
|
149
|
+
}
|
|
139
150
|
.mantine-Accordion-control:hover {
|
|
140
151
|
background-color: var(--color-surface-hover);
|
|
141
152
|
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
export { useBreadcrumbs } from '../../chunk-
|
|
2
|
-
import '../../chunk-
|
|
1
|
+
export { useBreadcrumbs } from '../../chunk-26HQMR7S.js';
|
|
2
|
+
import '../../chunk-4ZFBVND2.js';
|
|
3
3
|
import '../../chunk-Q7DJKLEN.js';
|
|
4
|
-
import '../../chunk-
|
|
5
|
-
import '../../chunk-
|
|
6
|
-
import '../../chunk-
|
|
4
|
+
import '../../chunk-GESXCQWY.js';
|
|
5
|
+
import '../../chunk-HOIT677G.js';
|
|
6
|
+
import '../../chunk-KU7ZDWQ7.js';
|
|
7
7
|
import '../../chunk-RNP5R5I3.js';
|
|
8
|
-
import '../../chunk-
|
|
8
|
+
import '../../chunk-WKJ47GIW.js';
|
|
9
9
|
import '../../chunk-DD3CCMCZ.js';
|
|
10
|
-
import '../../chunk-
|
|
11
|
-
import '../../chunk-
|
|
10
|
+
import '../../chunk-XTVZFT7U.js';
|
|
11
|
+
import '../../chunk-5WWZXCS5.js';
|
|
12
12
|
import '../../chunk-BRJ3QZ4E.js';
|
|
13
13
|
import '../../chunk-I2KLQ2HA.js';
|
|
@@ -136,6 +136,17 @@
|
|
|
136
136
|
.mantine-Button-root[data-variant=default]:hover {
|
|
137
137
|
background-color: var(--color-surface-hover);
|
|
138
138
|
}
|
|
139
|
+
.lead-gen-build-action-button:disabled,
|
|
140
|
+
.lead-gen-build-action-button[data-disabled] {
|
|
141
|
+
background-color: color-mix(in srgb, var(--mantine-color-gray-8) 48%, var(--color-surface) 52%) !important;
|
|
142
|
+
border-color: color-mix(in srgb, var(--mantine-color-gray-8) 58%, var(--color-surface) 42%) !important;
|
|
143
|
+
color: color-mix(in srgb, var(--color-text-subtle) 88%, var(--color-text-dimmed) 12%) !important;
|
|
144
|
+
opacity: 0.78;
|
|
145
|
+
}
|
|
146
|
+
.lead-gen-build-action-button:disabled:hover,
|
|
147
|
+
.lead-gen-build-action-button[data-disabled]:hover {
|
|
148
|
+
background-color: color-mix(in srgb, var(--mantine-color-gray-8) 48%, var(--color-surface) 52%) !important;
|
|
149
|
+
}
|
|
139
150
|
.mantine-Accordion-control:hover {
|
|
140
151
|
background-color: var(--color-surface-hover);
|
|
141
152
|
}
|