@elevasis/ui 2.42.0 → 2.43.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 (54) hide show
  1. package/dist/api/index.js +3 -3
  2. package/dist/app/index.d.ts +69 -2
  3. package/dist/app/index.js +3 -3
  4. package/dist/auth/index.js +3 -3
  5. package/dist/charts/index.js +3 -3
  6. package/dist/{chunk-3MTAHV5M.js → chunk-FUKNHVUV.js} +204 -67
  7. package/dist/{chunk-MA7YCY7C.js → chunk-NVVAQNKE.js} +1 -1
  8. package/dist/{chunk-EDVZ3AHA.js → chunk-UECAFQKT.js} +1 -1
  9. package/dist/{chunk-YEGMSADG.js → chunk-XDEUR36B.js} +14 -2
  10. package/dist/components/index.d.ts +3 -0
  11. package/dist/components/index.js +3 -3
  12. package/dist/components/navigation/index.js +3 -3
  13. package/dist/features/auth/index.d.ts +3 -0
  14. package/dist/features/auth/index.js +4 -4
  15. package/dist/features/clients/index.d.ts +6 -3
  16. package/dist/features/clients/index.js +80 -19
  17. package/dist/features/crm/index.d.ts +3 -0
  18. package/dist/features/crm/index.js +3 -3
  19. package/dist/features/dashboard/index.js +3 -3
  20. package/dist/features/delivery/index.d.ts +3 -0
  21. package/dist/features/delivery/index.js +3 -3
  22. package/dist/features/knowledge/index.js +3 -3
  23. package/dist/features/lead-gen/index.d.ts +72 -3
  24. package/dist/features/lead-gen/index.js +3 -3
  25. package/dist/features/monitoring/index.js +3 -3
  26. package/dist/features/monitoring/requests/index.js +4 -4
  27. package/dist/features/operations/index.d.ts +66 -2
  28. package/dist/features/operations/index.js +3 -3
  29. package/dist/features/settings/index.d.ts +3 -0
  30. package/dist/features/settings/index.js +3 -3
  31. package/dist/hooks/access/index.js +3 -3
  32. package/dist/hooks/delivery/index.d.ts +3 -0
  33. package/dist/hooks/delivery/index.js +3 -3
  34. package/dist/hooks/index.d.ts +33 -18
  35. package/dist/hooks/index.js +3 -3
  36. package/dist/hooks/published.d.ts +33 -18
  37. package/dist/hooks/published.js +3 -3
  38. package/dist/index.d.ts +99 -20
  39. package/dist/index.js +4 -4
  40. package/dist/initialization/index.d.ts +3 -0
  41. package/dist/knowledge/index.d.ts +71 -6
  42. package/dist/knowledge/index.js +68 -8
  43. package/dist/layout/index.js +3 -3
  44. package/dist/organization/index.js +3 -3
  45. package/dist/profile/index.d.ts +3 -0
  46. package/dist/provider/index.d.ts +69 -2
  47. package/dist/provider/index.js +3 -3
  48. package/dist/provider/published.d.ts +69 -2
  49. package/dist/provider/published.js +3 -3
  50. package/dist/supabase/index.d.ts +6 -0
  51. package/dist/test-utils/index.js +3 -3
  52. package/dist/types/index.d.ts +3 -0
  53. package/dist/utils/index.js +1 -1
  54. package/package.json +4 -4
@@ -1698,6 +1698,7 @@ type Database = {
1698
1698
  organization_id: string;
1699
1699
  primary_company_id: string | null;
1700
1700
  primary_contact_id: string | null;
1701
+ source: string;
1701
1702
  source_deal_id: string | null;
1702
1703
  status: string;
1703
1704
  updated_at: string;
@@ -1711,6 +1712,7 @@ type Database = {
1711
1712
  organization_id: string;
1712
1713
  primary_company_id?: string | null;
1713
1714
  primary_contact_id?: string | null;
1715
+ source?: string;
1714
1716
  source_deal_id?: string | null;
1715
1717
  status?: string;
1716
1718
  updated_at?: string;
@@ -1724,6 +1726,7 @@ type Database = {
1724
1726
  organization_id?: string;
1725
1727
  primary_company_id?: string | null;
1726
1728
  primary_contact_id?: string | null;
1729
+ source?: string;
1727
1730
  source_deal_id?: string | null;
1728
1731
  status?: string;
1729
1732
  updated_at?: string;
@@ -1,4 +1,4 @@
1
- export { APIErrorAlert, AbsoluteScheduleForm, ActionModal, ActivityCard, ActivityFeedWidget, ActivityFilters as ActivityFiltersBar, ActivityTable, ActivityTimeline, AgentDefinitionDisplay, AgentExecutionLogs, AgentExecutionTimeline, AgentExecutionVisualizer, AgentIterationEdge, AgentIterationNode, AllTasksPage, ApiKeyDisplayModal, ApiKeyList, ApiKeySettings, AppErrorBoundary, BaseEdge, BaseExecutionLogs, BaseExecutionLogsHeader, BaseExecutionLogsStates, BaseNode, Breadcrumbs, BusinessImpactCard, CenteredErrorState, CheckpointGroup, CollapsibleJsonSection, CollapsibleSection, CommandQueueSidebar, CommandQueueSidebarMiddle, CommandQueueSidebarTop, CommandQueueTaskRow, CompanyDetailPage, ConfigCard, ConfirmationInputModal, ConfirmationModal, ContactDetailPage, ContentSections, ContextUsageBadge, ContextViewer, ContractDisplay, CostBreakdownCard, CostByModelTable, CostMetricsCard, CrashErrorFallback, CreateApiKeyModal, CreateCredentialModal, CreateRoleModal, CreateScheduleModal, CredentialList, CredentialSettings, CrmOverview, CrmSidebar, CrmSidebarMiddle, CrmSidebarTop, CustomModal, CustomSelector, DEAL_STAGES, DEFAULT_KANBAN_CONFIG, DealDetailPage, DealKanbanCard, DealsListPage, DeleteScheduleModal, DeploymentDetailModal, DeploymentList, DeploymentSettings, DeploymentStatusBadge, DetailCardSkeleton, EditApiKeyModal, ElevasisLoader, EmptyState, EmptyVisualizer, ErrorAnalysisCard, ErrorBreakdownTable, ErrorReportCard, ExecutionBreakdownTable, ExecutionErrorSection, ExecutionHealthCard, ExecutionLogsFilters as ExecutionLogsFilterBar, ExecutionLogsTable, ExecutionStats, ExecutionStatusBadge, FeatureUnavailableState, FilterBar, GlowDot, GraphBackground, GraphContainer, GraphFitViewButton, GraphFitViewHandler, GraphLegend, HealthStatusCard, JsonViewer, KanbanBoard, LEAD_GEN_ROUTE_LINKS, LeadGenCompaniesPage, LeadGenContactsPage, LeadGenListDetailPage, LeadGenListsPage, LeadGenOverviewPage, LeadGenRouteShell, LeadGenSidebar, LeadGenSidebarMiddle, LeadGenSidebarTop, ListSkeleton, LogEntry, LogGroup, MdxRenderer, MembershipStatusBadge, MetricsStrip, MilestoneTimeline, MyTasksPanel, NavigationButton, NewKnowledgeMapEdge, NewKnowledgeMapGraph, NewKnowledgeMapNode, NoAccessState, NotificationBell, NotificationItem, NotificationList, NotificationPanel, OAuthConnectModal, OperationsSidebar, OperationsSidebarMiddle, OperationsSidebarTop, OrganizationMembershipsList, PIPELINE_FUNNEL_ORDER, PageNotFound, PageTitleCaption, PermissionMatrix, PipelineFunnelWidget, ProjectDetailPage, ProjectsListPage, ProjectsSidebar, ProjectsSidebarMiddle, ProjectsSidebarTop, QuickCreateActions, RecurringScheduleForm, RelativeScheduleForm, ResourceCard, ResourceDefinitionSection, ResourceErrorState, ResourceFilter, ResourceHeader, ResourceHealthChart, ResourceHealthPanel, ResourceNotFoundState, RichTextEditor, RoleBadge, RunResourceButton, SAVED_VIEW_PRESETS, SavedViewsPanel, ScheduleCard, ScheduleDetailModal, ScheduleTypeSelector, SessionMemory, SortableHeader, StatCard, StatCardSkeleton, StatsCardSkeleton, StatusBadge, StepConfigForm, TabCountBadge, TabSection, TableSelectionToolbar, TaskCard, TaskScheduler, TimeRangeSelector, TimelineAxis, TimelineBar, TimelineContainer, TimelineRow, ToolsListDisplay, TrendIndicator, UnifiedWorkflowEdge, UnifiedWorkflowGraph, UnifiedWorkflowNode, UpcomingMilestonesPage, VisualizerContainer, WebhookUrlDisplayModal, WorkflowDefinitionDisplay, WorkflowExecutionLogs, WorkflowExecutionTimeline, ZodFormRenderer, buildErrorReport, calculateProgress, crmManifest, deliveryManifest, formatStatusLabel, getEnrichmentColor, getExecutionStatusConfig, getGraphBackgroundStyles, getHealthColor, getIcon, getLogLevelConfig, getStatusColor, iconMap, leadGenManifest, mdxComponents, milestoneStatusColors, monitoringManifest, noteTypeColors, operationsManifest, projectStatusColors, settingsManifest, showApiErrorNotification, showAuthError, showErrorNotification, showInfoNotification, showSuccessNotification, showWarningNotification, taskStatusColors, taskTypeColors, useCrmPipelineSummary, useCrmQuickMetrics, useDeleteLists, useGraphBackgroundStyles, useGraphTheme, useNewKnowledgeMapLayout, useRecentCrmActivity } from '../chunk-3MTAHV5M.js';
1
+ export { APIErrorAlert, AbsoluteScheduleForm, ActionModal, ActivityCard, ActivityFeedWidget, ActivityFilters as ActivityFiltersBar, ActivityTable, ActivityTimeline, AgentDefinitionDisplay, AgentExecutionLogs, AgentExecutionTimeline, AgentExecutionVisualizer, AgentIterationEdge, AgentIterationNode, AllTasksPage, ApiKeyDisplayModal, ApiKeyList, ApiKeySettings, AppErrorBoundary, BaseEdge, BaseExecutionLogs, BaseExecutionLogsHeader, BaseExecutionLogsStates, BaseNode, Breadcrumbs, BusinessImpactCard, CenteredErrorState, CheckpointGroup, CollapsibleJsonSection, CollapsibleSection, CommandQueueSidebar, CommandQueueSidebarMiddle, CommandQueueSidebarTop, CommandQueueTaskRow, CompanyDetailPage, ConfigCard, ConfirmationInputModal, ConfirmationModal, ContactDetailPage, ContentSections, ContextUsageBadge, ContextViewer, ContractDisplay, CostBreakdownCard, CostByModelTable, CostMetricsCard, CrashErrorFallback, CreateApiKeyModal, CreateCredentialModal, CreateRoleModal, CreateScheduleModal, CredentialList, CredentialSettings, CrmOverview, CrmSidebar, CrmSidebarMiddle, CrmSidebarTop, CustomModal, CustomSelector, DEAL_STAGES, DEFAULT_KANBAN_CONFIG, DealDetailPage, DealKanbanCard, DealsListPage, DeleteScheduleModal, DeploymentDetailModal, DeploymentList, DeploymentSettings, DeploymentStatusBadge, DetailCardSkeleton, EditApiKeyModal, ElevasisLoader, EmptyState, EmptyVisualizer, ErrorAnalysisCard, ErrorBreakdownTable, ErrorReportCard, ExecutionBreakdownTable, ExecutionErrorSection, ExecutionHealthCard, ExecutionLogsFilters as ExecutionLogsFilterBar, ExecutionLogsTable, ExecutionStats, ExecutionStatusBadge, FeatureUnavailableState, FilterBar, GlowDot, GraphBackground, GraphContainer, GraphFitViewButton, GraphFitViewHandler, GraphLegend, HealthStatusCard, JsonViewer, KanbanBoard, LEAD_GEN_ROUTE_LINKS, LeadGenCompaniesPage, LeadGenContactsPage, LeadGenListDetailPage, LeadGenListsPage, LeadGenOverviewPage, LeadGenRouteShell, LeadGenSidebar, LeadGenSidebarMiddle, LeadGenSidebarTop, ListSkeleton, LogEntry, LogGroup, MdxRenderer, MembershipStatusBadge, MetricsStrip, MilestoneTimeline, MyTasksPanel, NavigationButton, NewKnowledgeMapEdge, NewKnowledgeMapGraph, NewKnowledgeMapNode, NoAccessState, NotificationBell, NotificationItem, NotificationList, NotificationPanel, OAuthConnectModal, OperationsSidebar, OperationsSidebarMiddle, OperationsSidebarTop, OrganizationMembershipsList, PIPELINE_FUNNEL_ORDER, PageNotFound, PageTitleCaption, PermissionMatrix, PipelineFunnelWidget, ProjectDetailPage, ProjectsListPage, ProjectsSidebar, ProjectsSidebarMiddle, ProjectsSidebarTop, QuickCreateActions, RecurringScheduleForm, RelativeScheduleForm, ResourceCard, ResourceDefinitionSection, ResourceErrorState, ResourceFilter, ResourceHeader, ResourceHealthChart, ResourceHealthPanel, ResourceNotFoundState, RichTextEditor, RoleBadge, RunResourceButton, SAVED_VIEW_PRESETS, SavedViewsPanel, ScheduleCard, ScheduleDetailModal, ScheduleTypeSelector, SessionMemory, SortableHeader, StatCard, StatCardSkeleton, StatsCardSkeleton, StatusBadge, StepConfigForm, TabCountBadge, TabSection, TableSelectionToolbar, TaskCard, TaskScheduler, TimeRangeSelector, TimelineAxis, TimelineBar, TimelineContainer, TimelineRow, ToolsListDisplay, TrendIndicator, UnifiedWorkflowEdge, UnifiedWorkflowGraph, UnifiedWorkflowNode, UpcomingMilestonesPage, VisualizerContainer, WebhookUrlDisplayModal, WorkflowDefinitionDisplay, WorkflowExecutionLogs, WorkflowExecutionTimeline, ZodFormRenderer, buildErrorReport, calculateProgress, crmManifest, deliveryManifest, formatStatusLabel, getEnrichmentColor, getExecutionStatusConfig, getGraphBackgroundStyles, getHealthColor, getIcon, getLogLevelConfig, getStatusColor, iconMap, leadGenManifest, mdxComponents, milestoneStatusColors, monitoringManifest, noteTypeColors, operationsManifest, projectStatusColors, settingsManifest, showApiErrorNotification, showAuthError, showErrorNotification, showInfoNotification, showSuccessNotification, showWarningNotification, taskStatusColors, taskTypeColors, useCrmPipelineSummary, useCrmQuickMetrics, useDeleteLists, useGraphBackgroundStyles, useGraphTheme, useNewKnowledgeMapLayout, useRecentCrmActivity } from '../chunk-FUKNHVUV.js';
2
2
  import '../chunk-NZ2F5RQ4.js';
3
3
  import '../chunk-OJJK27GC.js';
4
4
  import '../chunk-AUDNF2Q7.js';
@@ -9,7 +9,7 @@ import '../chunk-SJHM4WDG.js';
9
9
  import '../chunk-ZTWA5H77.js';
10
10
  export { CardHeader } from '../chunk-S3XR4II4.js';
11
11
  import '../chunk-6DO4PE3O.js';
12
- import '../chunk-MA7YCY7C.js';
12
+ import '../chunk-NVVAQNKE.js';
13
13
  import '../chunk-DD3CCMCZ.js';
14
14
  export { SEOSidebar, SEOSidebarMiddle, SEOSidebarTop, seoManifest } from '../chunk-GMXGDO3I.js';
15
15
  import '../chunk-2IFYDILW.js';
@@ -18,7 +18,7 @@ export { Graph_module_css_default as graphStyles } from '../chunk-HENXLGVD.js';
18
18
  export { CONTAINER_CONSTANTS, SHARED_VIZ_CONSTANTS } from '../chunk-7FPLLSHN.js';
19
19
  import '../chunk-RNP5R5I3.js';
20
20
  import '../chunk-W2SFTXMT.js';
21
- import '../chunk-YEGMSADG.js';
21
+ import '../chunk-XDEUR36B.js';
22
22
  import '../chunk-KRWALB24.js';
23
23
  import '../chunk-2FTX4WO2.js';
24
24
  import '../chunk-MQZE7SUI.js';
@@ -1,4 +1,4 @@
1
- export { useBreadcrumbs } from '../../chunk-3MTAHV5M.js';
1
+ export { useBreadcrumbs } from '../../chunk-FUKNHVUV.js';
2
2
  import '../../chunk-NZ2F5RQ4.js';
3
3
  import '../../chunk-OJJK27GC.js';
4
4
  import '../../chunk-AUDNF2Q7.js';
@@ -9,7 +9,7 @@ import '../../chunk-SJHM4WDG.js';
9
9
  import '../../chunk-ZTWA5H77.js';
10
10
  import '../../chunk-S3XR4II4.js';
11
11
  import '../../chunk-6DO4PE3O.js';
12
- import '../../chunk-MA7YCY7C.js';
12
+ import '../../chunk-NVVAQNKE.js';
13
13
  import '../../chunk-DD3CCMCZ.js';
14
14
  import '../../chunk-GMXGDO3I.js';
15
15
  import '../../chunk-2IFYDILW.js';
@@ -18,7 +18,7 @@ import '../../chunk-HENXLGVD.js';
18
18
  import '../../chunk-7FPLLSHN.js';
19
19
  import '../../chunk-RNP5R5I3.js';
20
20
  import '../../chunk-W2SFTXMT.js';
21
- import '../../chunk-YEGMSADG.js';
21
+ import '../../chunk-XDEUR36B.js';
22
22
  import '../../chunk-KRWALB24.js';
23
23
  import '../../chunk-2FTX4WO2.js';
24
24
  import '../../chunk-MQZE7SUI.js';
@@ -1253,6 +1253,7 @@ type Database = {
1253
1253
  organization_id: string;
1254
1254
  primary_company_id: string | null;
1255
1255
  primary_contact_id: string | null;
1256
+ source: string;
1256
1257
  source_deal_id: string | null;
1257
1258
  status: string;
1258
1259
  updated_at: string;
@@ -1266,6 +1267,7 @@ type Database = {
1266
1267
  organization_id: string;
1267
1268
  primary_company_id?: string | null;
1268
1269
  primary_contact_id?: string | null;
1270
+ source?: string;
1269
1271
  source_deal_id?: string | null;
1270
1272
  status?: string;
1271
1273
  updated_at?: string;
@@ -1279,6 +1281,7 @@ type Database = {
1279
1281
  organization_id?: string;
1280
1282
  primary_company_id?: string | null;
1281
1283
  primary_contact_id?: string | null;
1284
+ source?: string;
1282
1285
  source_deal_id?: string | null;
1283
1286
  status?: string;
1284
1287
  updated_at?: string;
@@ -1,5 +1,5 @@
1
- import { ProtectedRoute, AppearanceContext, AppShellError, useAppearance } from '../../chunk-3MTAHV5M.js';
2
- export { AccessGuard } from '../../chunk-3MTAHV5M.js';
1
+ import { ProtectedRoute, AppearanceContext, AppShellError, useAppearance } from '../../chunk-FUKNHVUV.js';
2
+ export { AccessGuard } from '../../chunk-FUKNHVUV.js';
3
3
  import '../../chunk-NZ2F5RQ4.js';
4
4
  import '../../chunk-OJJK27GC.js';
5
5
  import '../../chunk-AUDNF2Q7.js';
@@ -10,7 +10,7 @@ import '../../chunk-SJHM4WDG.js';
10
10
  import '../../chunk-ZTWA5H77.js';
11
11
  import '../../chunk-S3XR4II4.js';
12
12
  import { useInitialization } from '../../chunk-6DO4PE3O.js';
13
- import '../../chunk-MA7YCY7C.js';
13
+ import '../../chunk-NVVAQNKE.js';
14
14
  import '../../chunk-DD3CCMCZ.js';
15
15
  import '../../chunk-GMXGDO3I.js';
16
16
  import '../../chunk-2IFYDILW.js';
@@ -19,7 +19,7 @@ import '../../chunk-HENXLGVD.js';
19
19
  import '../../chunk-7FPLLSHN.js';
20
20
  import '../../chunk-RNP5R5I3.js';
21
21
  export { useUserProfile } from '../../chunk-W2SFTXMT.js';
22
- import '../../chunk-YEGMSADG.js';
22
+ import '../../chunk-XDEUR36B.js';
23
23
  import '../../chunk-KRWALB24.js';
24
24
  import '../../chunk-2FTX4WO2.js';
25
25
  import '../../chunk-MQZE7SUI.js';
@@ -4,12 +4,14 @@ import { ReactNode, ComponentType } from 'react';
4
4
 
5
5
  declare const ClientStatusSchema: z.ZodEnum<{
6
6
  active: "active";
7
- completed: "completed";
8
- paused: "paused";
9
7
  onboarding: "onboarding";
8
+ paused: "paused";
9
+ completed: "completed";
10
10
  churned: "churned";
11
11
  }>;
12
+ declare const ClientSourceSchema: z.ZodString;
12
13
  type ClientStatus = z.infer<typeof ClientStatusSchema>;
14
+ type ClientSource = z.infer<typeof ClientSourceSchema>;
13
15
 
14
16
  interface ClientStatusBadgeProps {
15
17
  status: ClientStatus;
@@ -48,8 +50,9 @@ interface EditClientNameModalProps {
48
50
  onClose: () => void;
49
51
  clientId: string;
50
52
  currentName: string;
53
+ currentSource: ClientSource;
51
54
  }
52
- declare function EditClientNameModal({ opened, onClose, clientId, currentName }: EditClientNameModalProps): react_jsx_runtime.JSX.Element;
55
+ declare function EditClientNameModal({ opened, onClose, clientId, currentName, currentSource }: EditClientNameModalProps): react_jsx_runtime.JSX.Element;
53
56
 
54
57
  interface UpdateClientStatusModalProps {
55
58
  opened: boolean;
@@ -1,4 +1,4 @@
1
- import { useClientStatus, StatCard, EmptyState, useCreateClient, CustomModal, useUpdateClient, useDeleteClient, usePaginationState, useClients, SubshellContentContainer, PageContainer, PageTitleCaption, FilterBar, CenteredErrorState, useClient, showApiErrorNotification } from '../../chunk-3MTAHV5M.js';
1
+ import { useClientStatus, StatCard, EmptyState, useCreateClient, CustomModal, useUpdateClient, useDeleteClient, usePaginationState, useClients, SubshellContentContainer, PageContainer, PageTitleCaption, FilterBar, CenteredErrorState, useClient, showApiErrorNotification } from '../../chunk-FUKNHVUV.js';
2
2
  import '../../chunk-NZ2F5RQ4.js';
3
3
  import '../../chunk-OJJK27GC.js';
4
4
  import '../../chunk-AUDNF2Q7.js';
@@ -9,7 +9,7 @@ import '../../chunk-SJHM4WDG.js';
9
9
  import '../../chunk-ZTWA5H77.js';
10
10
  import { CardHeader } from '../../chunk-S3XR4II4.js';
11
11
  import '../../chunk-6DO4PE3O.js';
12
- import '../../chunk-MA7YCY7C.js';
12
+ import '../../chunk-NVVAQNKE.js';
13
13
  import '../../chunk-DD3CCMCZ.js';
14
14
  import '../../chunk-GMXGDO3I.js';
15
15
  import '../../chunk-2IFYDILW.js';
@@ -18,7 +18,7 @@ import '../../chunk-HENXLGVD.js';
18
18
  import '../../chunk-7FPLLSHN.js';
19
19
  import '../../chunk-RNP5R5I3.js';
20
20
  import '../../chunk-W2SFTXMT.js';
21
- import { PAGE_SIZE_DEFAULT, formatTimeAgo } from '../../chunk-YEGMSADG.js';
21
+ import { PAGE_SIZE_DEFAULT, formatTimeAgo } from '../../chunk-XDEUR36B.js';
22
22
  import '../../chunk-KRWALB24.js';
23
23
  import '../../chunk-2FTX4WO2.js';
24
24
  import '../../chunk-MQZE7SUI.js';
@@ -46,15 +46,27 @@ var CLIENT_STATUS_COLORS = {
46
46
  function formatClientStatusLabel(status) {
47
47
  return status.charAt(0).toUpperCase() + status.slice(1);
48
48
  }
49
+ var CLIENT_SOURCE_OPTIONS = [
50
+ { value: "word_of_mouth", label: "Word of mouth" },
51
+ { value: "acquisition", label: "Acquisition" },
52
+ { value: "referral", label: "Referral" },
53
+ { value: "partner", label: "Partner" },
54
+ { value: "manual", label: "Manual" }
55
+ ];
56
+ function formatClientSourceLabel(source) {
57
+ return source.split("_").filter(Boolean).map((part) => part.charAt(0).toUpperCase() + part.slice(1)).join(" ");
58
+ }
49
59
  function ClientStatusBadge({ status }) {
50
60
  return /* @__PURE__ */ jsx(Badge, { variant: "light", color: CLIENT_STATUS_COLORS[status] ?? "gray", size: "sm", children: formatClientStatusLabel(status) });
51
61
  }
52
62
  var ClientStatusSchema = z.enum(["active", "onboarding", "paused", "completed", "churned"]);
63
+ var ClientSourceSchema = z.string().trim().min(1).max(64).regex(/^[a-z][a-z0-9_]*$/, "Source must use lowercase letters, numbers, and underscores");
53
64
  z.object({
54
65
  clientId: UuidSchema
55
66
  }).strict();
56
67
  z.object({
57
68
  status: ClientStatusSchema.optional(),
69
+ source: ClientSourceSchema.optional(),
58
70
  search: z.string().trim().min(1).max(255).optional(),
59
71
  limit: z.coerce.number().int().min(1).max(100).default(50),
60
72
  offset: z.coerce.number().int().min(0).default(0)
@@ -69,6 +81,7 @@ var ClientResponseSchema = z.object({
69
81
  organizationId: z.string(),
70
82
  name: z.string(),
71
83
  status: ClientStatusSchema,
84
+ source: ClientSourceSchema,
72
85
  sourceDealId: z.string().nullable(),
73
86
  primaryCompanyId: z.string().nullable(),
74
87
  primaryContactId: z.string().nullable(),
@@ -132,6 +145,7 @@ z.object({
132
145
  var CreateClientRequestSchema = z.object({
133
146
  name: z.string().trim().min(1).max(255),
134
147
  status: ClientStatusSchema.optional(),
148
+ source: ClientSourceSchema.optional(),
135
149
  sourceDealId: UuidSchema.nullable().optional(),
136
150
  primaryCompanyId: UuidSchema.nullable().optional(),
137
151
  primaryContactId: UuidSchema.nullable().optional(),
@@ -140,6 +154,7 @@ var CreateClientRequestSchema = z.object({
140
154
  z.object({
141
155
  name: z.string().trim().min(1).max(255).optional(),
142
156
  status: ClientStatusSchema.optional(),
157
+ source: ClientSourceSchema.optional(),
143
158
  sourceDealId: UuidSchema.nullable().optional(),
144
159
  primaryCompanyId: UuidSchema.nullable().optional(),
145
160
  primaryContactId: UuidSchema.nullable().optional(),
@@ -230,7 +245,8 @@ function CreateClientModal({ opened, onClose }) {
230
245
  const form = useForm({
231
246
  initialValues: {
232
247
  name: "",
233
- status: void 0
248
+ status: "onboarding",
249
+ source: "word_of_mouth"
234
250
  },
235
251
  validate: zod4Resolver(CreateClientRequestSchema)
236
252
  });
@@ -265,34 +281,49 @@ function CreateClientModal({ opened, onClose }) {
265
281
  Select,
266
282
  {
267
283
  label: "Status",
268
- placeholder: "Select status (optional)",
284
+ placeholder: "Select status",
269
285
  data: STATUS_OPTIONS,
270
- clearable: true,
271
286
  ...form.getInputProps("status"),
272
287
  disabled: createClient.isPending
273
288
  }
274
289
  ),
290
+ /* @__PURE__ */ jsx(
291
+ Select,
292
+ {
293
+ label: "Source",
294
+ placeholder: "Select source",
295
+ data: CLIENT_SOURCE_OPTIONS,
296
+ required: true,
297
+ value: form.values.source ?? null,
298
+ onChange: (value) => form.setFieldValue("source", value ?? "word_of_mouth"),
299
+ error: form.errors.source,
300
+ disabled: createClient.isPending
301
+ }
302
+ ),
275
303
  /* @__PURE__ */ jsxs(Group, { justify: "space-between", mt: "xs", children: [
276
304
  /* @__PURE__ */ jsx(Button, { variant: "light", onClick: handleClose, disabled: createClient.isPending, children: "Cancel" }),
277
305
  /* @__PURE__ */ jsx(Button, { type: "submit", loading: createClient.isPending, children: "Create Client" })
278
306
  ] })
279
307
  ] }) }) });
280
308
  }
281
- var EditNameSchema = z.object({ name: z.string().trim().min(1).max(255) });
282
- function EditClientNameModal({ opened, onClose, clientId, currentName }) {
309
+ var EditClientSchema = z.object({
310
+ name: z.string().trim().min(1).max(255),
311
+ source: ClientSourceSchema
312
+ });
313
+ function EditClientNameModal({ opened, onClose, clientId, currentName, currentSource }) {
283
314
  const updateClient = useUpdateClient();
284
315
  const form = useForm({
285
- initialValues: { name: currentName },
286
- validate: zod4Resolver(EditNameSchema)
316
+ initialValues: { name: currentName, source: currentSource },
317
+ validate: zod4Resolver(EditClientSchema)
287
318
  });
288
319
  useEffect(() => {
289
320
  if (opened) {
290
- form.setValues({ name: currentName });
321
+ form.setValues({ name: currentName, source: currentSource });
291
322
  }
292
- }, [opened, currentName]);
323
+ }, [opened, currentName, currentSource]);
293
324
  const handleSubmit = async (values) => {
294
325
  try {
295
- await updateClient.mutateAsync({ clientId, updates: { name: values.name } });
326
+ await updateClient.mutateAsync({ clientId, updates: { name: values.name, source: values.source } });
296
327
  onClose();
297
328
  } catch (error) {
298
329
  showApiErrorNotification(error);
@@ -305,7 +336,7 @@ function EditClientNameModal({ opened, onClose, clientId, currentName }) {
305
336
  }
306
337
  };
307
338
  return /* @__PURE__ */ jsx(CustomModal, { opened, onClose: handleClose, size: "sm", loading: updateClient.isPending, children: /* @__PURE__ */ jsx("form", { onSubmit: form.onSubmit(handleSubmit), children: /* @__PURE__ */ jsxs(Stack, { p: "md", children: [
308
- /* @__PURE__ */ jsx(Title, { order: 4, children: "Edit Client Name" }),
339
+ /* @__PURE__ */ jsx(Title, { order: 4, children: "Edit Client" }),
309
340
  /* @__PURE__ */ jsx(
310
341
  TextInput,
311
342
  {
@@ -316,6 +347,18 @@ function EditClientNameModal({ opened, onClose, clientId, currentName }) {
316
347
  disabled: updateClient.isPending
317
348
  }
318
349
  ),
350
+ /* @__PURE__ */ jsx(
351
+ Select,
352
+ {
353
+ label: "Source",
354
+ data: CLIENT_SOURCE_OPTIONS,
355
+ required: true,
356
+ value: form.values.source,
357
+ onChange: (value) => form.setFieldValue("source", value ?? currentSource),
358
+ error: form.errors.source,
359
+ disabled: updateClient.isPending
360
+ }
361
+ ),
319
362
  /* @__PURE__ */ jsxs(Group, { justify: "space-between", mt: "xs", children: [
320
363
  /* @__PURE__ */ jsx(Button, { variant: "light", onClick: handleClose, disabled: updateClient.isPending, children: "Cancel" }),
321
364
  /* @__PURE__ */ jsx(Button, { type: "submit", loading: updateClient.isPending, children: "Save" })
@@ -416,12 +459,14 @@ var STATUS_OPTIONS3 = [
416
459
  ];
417
460
  function ClientsListPage({ onClientClick } = {}) {
418
461
  const [statusFilter, setStatusFilter] = useState(null);
462
+ const [sourceFilter, setSourceFilter] = useState(null);
419
463
  const [searchQuery, setSearchQuery] = useState("");
420
464
  const [createOpened, { open: openCreate, close: closeCreate }] = useDisclosure(false);
421
465
  const [debouncedSearch] = useDebouncedValue(searchQuery, 300);
422
- const pagination = usePaginationState(PAGE_SIZE_DEFAULT, [statusFilter, debouncedSearch]);
466
+ const pagination = usePaginationState(PAGE_SIZE_DEFAULT, [statusFilter, sourceFilter, debouncedSearch]);
423
467
  const { data, isLoading, error } = useClients({
424
468
  status: statusFilter ?? void 0,
469
+ source: sourceFilter ?? void 0,
425
470
  search: debouncedSearch.trim() || void 0,
426
471
  limit: PAGE_SIZE_DEFAULT,
427
472
  offset: pagination.offset
@@ -434,7 +479,7 @@ function ClientsListPage({ onClientClick } = {}) {
434
479
  PageTitleCaption,
435
480
  {
436
481
  title: "Clients",
437
- caption: "Closed-won deals and ongoing engagements",
482
+ caption: "Direct clients, converted deals, and ongoing engagements",
438
483
  rightSection: /* @__PURE__ */ jsx(Button, { variant: "filled", size: "sm", leftSection: /* @__PURE__ */ jsx(IconPlus, { size: 16 }), onClick: openCreate, children: "New Client" })
439
484
  }
440
485
  ),
@@ -453,6 +498,18 @@ function ClientsListPage({ onClientClick } = {}) {
453
498
  style: { minWidth: 180 }
454
499
  }
455
500
  ),
501
+ /* @__PURE__ */ jsx(
502
+ Select,
503
+ {
504
+ placeholder: "All Sources",
505
+ data: CLIENT_SOURCE_OPTIONS,
506
+ value: sourceFilter,
507
+ onChange: (v) => setSourceFilter(v),
508
+ clearable: true,
509
+ size: "sm",
510
+ style: { minWidth: 180 }
511
+ }
512
+ ),
456
513
  /* @__PURE__ */ jsx(
457
514
  TextInput,
458
515
  {
@@ -470,12 +527,13 @@ function ClientsListPage({ onClientClick } = {}) {
470
527
  {
471
528
  icon: IconUsers,
472
529
  title: "No clients found",
473
- description: "Clients are created when a deal is closed-won."
530
+ description: "Create a direct client or convert a closed-won deal."
474
531
  }
475
532
  ) : /* @__PURE__ */ jsxs(Table, { children: [
476
533
  /* @__PURE__ */ jsx(Table.Thead, { children: /* @__PURE__ */ jsxs(Table.Tr, { children: [
477
534
  /* @__PURE__ */ jsx(Table.Th, { children: "Name" }),
478
535
  /* @__PURE__ */ jsx(Table.Th, { children: "Status" }),
536
+ /* @__PURE__ */ jsx(Table.Th, { children: "Source" }),
479
537
  /* @__PURE__ */ jsx(Table.Th, { children: "Converted" }),
480
538
  /* @__PURE__ */ jsx(Table.Th, { children: "Updated" })
481
539
  ] }) }),
@@ -487,6 +545,7 @@ function ClientsListPage({ onClientClick } = {}) {
487
545
  return /* @__PURE__ */ jsxs(Table.Tr, { ...rowProps, children: [
488
546
  /* @__PURE__ */ jsx(Table.Td, { children: /* @__PURE__ */ jsx(Text, { fw: 500, children: client.name }) }),
489
547
  /* @__PURE__ */ jsx(Table.Td, { children: /* @__PURE__ */ jsx(ClientStatusBadge, { status: client.status }) }),
548
+ /* @__PURE__ */ jsx(Table.Td, { children: /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: formatClientSourceLabel(client.source) }) }),
490
549
  /* @__PURE__ */ jsx(Table.Td, { children: /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: formatTimeAgo(client.convertedAt) }) }),
491
550
  /* @__PURE__ */ jsx(Table.Td, { children: /* @__PURE__ */ jsx(Text, { size: "sm", c: "dimmed", children: formatTimeAgo(client.updatedAt) }) })
492
551
  ] }, client.id);
@@ -559,7 +618,7 @@ function ClientDetailPage({ clientId }) {
559
618
  ) })
560
619
  ] }) }) });
561
620
  }
562
- const caption = client.convertedAt ? `Converted ${formatTimeAgo(client.convertedAt)}` : "Not yet converted";
621
+ const caption = client.convertedAt ? `Converted ${formatTimeAgo(client.convertedAt)}` : `${formatClientSourceLabel(client.source)} client`;
563
622
  return /* @__PURE__ */ jsxs(SubshellContentContainer, { children: [
564
623
  /* @__PURE__ */ jsx(PageContainer, { children: /* @__PURE__ */ jsxs(Stack, { gap: "md", children: [
565
624
  /* @__PURE__ */ jsx(PageTitleCaption, { title: client.name, caption, rightSection: headerActions }),
@@ -567,6 +626,7 @@ function ClientDetailPage({ clientId }) {
567
626
  /* @__PURE__ */ jsx(CardHeader, { icon: /* @__PURE__ */ jsx(IconUsers, { size: 18 }), title: "Client", mb: 0 }),
568
627
  /* @__PURE__ */ jsxs(SimpleGrid, { cols: { base: 1, sm: 2 }, spacing: "sm", children: [
569
628
  /* @__PURE__ */ jsx(DetailRow, { label: "Status", value: /* @__PURE__ */ jsx(ClientStatusBadge, { status: client.status }) }),
629
+ /* @__PURE__ */ jsx(DetailRow, { label: "Source", value: formatClientSourceLabel(client.source) }),
570
630
  /* @__PURE__ */ jsx(
571
631
  DetailRow,
572
632
  {
@@ -676,7 +736,8 @@ function ClientDetailPage({ clientId }) {
676
736
  opened: editNameOpened,
677
737
  onClose: closeEditName,
678
738
  clientId,
679
- currentName: client.name
739
+ currentName: client.name,
740
+ currentSource: client.source
680
741
  }
681
742
  ),
682
743
  /* @__PURE__ */ jsx(
@@ -1301,6 +1301,7 @@ type Database = {
1301
1301
  organization_id: string;
1302
1302
  primary_company_id: string | null;
1303
1303
  primary_contact_id: string | null;
1304
+ source: string;
1304
1305
  source_deal_id: string | null;
1305
1306
  status: string;
1306
1307
  updated_at: string;
@@ -1314,6 +1315,7 @@ type Database = {
1314
1315
  organization_id: string;
1315
1316
  primary_company_id?: string | null;
1316
1317
  primary_contact_id?: string | null;
1318
+ source?: string;
1317
1319
  source_deal_id?: string | null;
1318
1320
  status?: string;
1319
1321
  updated_at?: string;
@@ -1327,6 +1329,7 @@ type Database = {
1327
1329
  organization_id?: string;
1328
1330
  primary_company_id?: string | null;
1329
1331
  primary_contact_id?: string | null;
1332
+ source?: string;
1330
1333
  source_deal_id?: string | null;
1331
1334
  status?: string;
1332
1335
  updated_at?: string;
@@ -1,4 +1,4 @@
1
- export { ActivityFeedWidget, CRM_ITEMS, CompanyDetailPage, ContactDetailPage, ConversationThread, CrmOverview, CrmSettingsPage, CrmSidebar, CrmSidebarMiddle, CrmSidebarTop, DEAL_STAGE_COLORS, DEAL_STAGE_OPTIONS, DealDetailPage, DealsListPage, MetricsStrip, MyTasksPanel, PIPELINE_FUNNEL_ORDER, PipelineFunnelWidget, QuickCreateActions, SAVED_VIEW_PRESETS, SavedViewsPanel, crmManifest, crmPrioritySettingsKeys, formatDealStageLabel, useCrmPipelineSummary, useCrmPrioritySettings, useCrmQuickMetrics, useRecentCrmActivity, useResetCrmPrioritySettings, useUpdateCrmPrioritySettings } from '../../chunk-3MTAHV5M.js';
1
+ export { ActivityFeedWidget, CRM_ITEMS, CompanyDetailPage, ContactDetailPage, ConversationThread, CrmOverview, CrmSettingsPage, CrmSidebar, CrmSidebarMiddle, CrmSidebarTop, DEAL_STAGE_COLORS, DEAL_STAGE_OPTIONS, DealDetailPage, DealsListPage, MetricsStrip, MyTasksPanel, PIPELINE_FUNNEL_ORDER, PipelineFunnelWidget, QuickCreateActions, SAVED_VIEW_PRESETS, SavedViewsPanel, crmManifest, crmPrioritySettingsKeys, formatDealStageLabel, useCrmPipelineSummary, useCrmPrioritySettings, useCrmQuickMetrics, useRecentCrmActivity, useResetCrmPrioritySettings, useUpdateCrmPrioritySettings } from '../../chunk-FUKNHVUV.js';
2
2
  import '../../chunk-NZ2F5RQ4.js';
3
3
  import '../../chunk-OJJK27GC.js';
4
4
  import '../../chunk-AUDNF2Q7.js';
@@ -9,7 +9,7 @@ import '../../chunk-SJHM4WDG.js';
9
9
  import '../../chunk-ZTWA5H77.js';
10
10
  import '../../chunk-S3XR4II4.js';
11
11
  import '../../chunk-6DO4PE3O.js';
12
- import '../../chunk-MA7YCY7C.js';
12
+ import '../../chunk-NVVAQNKE.js';
13
13
  import '../../chunk-DD3CCMCZ.js';
14
14
  import '../../chunk-GMXGDO3I.js';
15
15
  import '../../chunk-2IFYDILW.js';
@@ -18,7 +18,7 @@ import '../../chunk-HENXLGVD.js';
18
18
  import '../../chunk-7FPLLSHN.js';
19
19
  import '../../chunk-RNP5R5I3.js';
20
20
  import '../../chunk-W2SFTXMT.js';
21
- import '../../chunk-YEGMSADG.js';
21
+ import '../../chunk-XDEUR36B.js';
22
22
  import '../../chunk-KRWALB24.js';
23
23
  import '../../chunk-2FTX4WO2.js';
24
24
  import '../../chunk-MQZE7SUI.js';
@@ -1,4 +1,4 @@
1
- export { Dashboard, DashboardOperationsOverview, OperationsOverview, RecentExecutionsByResource, ResourceOverview, UnresolvedErrorsTeaser } from '../../chunk-3MTAHV5M.js';
1
+ export { Dashboard, DashboardOperationsOverview, OperationsOverview, RecentExecutionsByResource, ResourceOverview, UnresolvedErrorsTeaser } from '../../chunk-FUKNHVUV.js';
2
2
  import '../../chunk-NZ2F5RQ4.js';
3
3
  import '../../chunk-OJJK27GC.js';
4
4
  import '../../chunk-AUDNF2Q7.js';
@@ -9,7 +9,7 @@ import '../../chunk-SJHM4WDG.js';
9
9
  import '../../chunk-ZTWA5H77.js';
10
10
  import '../../chunk-S3XR4II4.js';
11
11
  import '../../chunk-6DO4PE3O.js';
12
- import '../../chunk-MA7YCY7C.js';
12
+ import '../../chunk-NVVAQNKE.js';
13
13
  import '../../chunk-DD3CCMCZ.js';
14
14
  import '../../chunk-GMXGDO3I.js';
15
15
  import '../../chunk-2IFYDILW.js';
@@ -18,7 +18,7 @@ import '../../chunk-HENXLGVD.js';
18
18
  import '../../chunk-7FPLLSHN.js';
19
19
  import '../../chunk-RNP5R5I3.js';
20
20
  import '../../chunk-W2SFTXMT.js';
21
- import '../../chunk-YEGMSADG.js';
21
+ import '../../chunk-XDEUR36B.js';
22
22
  import '../../chunk-KRWALB24.js';
23
23
  import '../../chunk-2FTX4WO2.js';
24
24
  import '../../chunk-MQZE7SUI.js';
@@ -1252,6 +1252,7 @@ type Database = {
1252
1252
  organization_id: string;
1253
1253
  primary_company_id: string | null;
1254
1254
  primary_contact_id: string | null;
1255
+ source: string;
1255
1256
  source_deal_id: string | null;
1256
1257
  status: string;
1257
1258
  updated_at: string;
@@ -1265,6 +1266,7 @@ type Database = {
1265
1266
  organization_id: string;
1266
1267
  primary_company_id?: string | null;
1267
1268
  primary_contact_id?: string | null;
1269
+ source?: string;
1268
1270
  source_deal_id?: string | null;
1269
1271
  status?: string;
1270
1272
  updated_at?: string;
@@ -1278,6 +1280,7 @@ type Database = {
1278
1280
  organization_id?: string;
1279
1281
  primary_company_id?: string | null;
1280
1282
  primary_contact_id?: string | null;
1283
+ source?: string;
1281
1284
  source_deal_id?: string | null;
1282
1285
  status?: string;
1283
1286
  updated_at?: string;
@@ -1,4 +1,4 @@
1
- export { AllTasksPage, Checklist, CreateDeliveryEntityModal, DELIVERY_COMMUNICATION_ITEMS, DELIVERY_PROJECT_ITEMS, DELIVERY_WORK_ITEMS, HealthStatusCard, MilestoneTimeline, ProjectDetailPage, ProjectsListPage, ProjectsSidebar, ProjectsSidebarMiddle, ProjectsSidebarTop, TaskCard, UpcomingMilestonesPage, calculateProgress, deliveryManifest, formatStatusLabel, milestoneStatusColors, noteTypeColors, projectStatusColors, taskStatusColors, taskTypeColors } from '../../chunk-3MTAHV5M.js';
1
+ export { AllTasksPage, Checklist, CreateDeliveryEntityModal, DELIVERY_COMMUNICATION_ITEMS, DELIVERY_PROJECT_ITEMS, DELIVERY_WORK_ITEMS, HealthStatusCard, MilestoneTimeline, ProjectDetailPage, ProjectsListPage, ProjectsSidebar, ProjectsSidebarMiddle, ProjectsSidebarTop, TaskCard, UpcomingMilestonesPage, calculateProgress, deliveryManifest, formatStatusLabel, milestoneStatusColors, noteTypeColors, projectStatusColors, taskStatusColors, taskTypeColors } from '../../chunk-FUKNHVUV.js';
2
2
  import '../../chunk-NZ2F5RQ4.js';
3
3
  import '../../chunk-OJJK27GC.js';
4
4
  import '../../chunk-AUDNF2Q7.js';
@@ -9,7 +9,7 @@ import '../../chunk-SJHM4WDG.js';
9
9
  import '../../chunk-ZTWA5H77.js';
10
10
  import '../../chunk-S3XR4II4.js';
11
11
  import '../../chunk-6DO4PE3O.js';
12
- import '../../chunk-MA7YCY7C.js';
12
+ import '../../chunk-NVVAQNKE.js';
13
13
  import '../../chunk-DD3CCMCZ.js';
14
14
  import '../../chunk-GMXGDO3I.js';
15
15
  import '../../chunk-2IFYDILW.js';
@@ -18,7 +18,7 @@ import '../../chunk-HENXLGVD.js';
18
18
  import '../../chunk-7FPLLSHN.js';
19
19
  import '../../chunk-RNP5R5I3.js';
20
20
  import '../../chunk-W2SFTXMT.js';
21
- import '../../chunk-YEGMSADG.js';
21
+ import '../../chunk-XDEUR36B.js';
22
22
  import '../../chunk-KRWALB24.js';
23
23
  import '../../chunk-2FTX4WO2.js';
24
24
  import '../../chunk-MQZE7SUI.js';
@@ -1,4 +1,4 @@
1
- export { knowledgeManifest } from '../../chunk-3MTAHV5M.js';
1
+ export { knowledgeManifest } from '../../chunk-FUKNHVUV.js';
2
2
  import '../../chunk-NZ2F5RQ4.js';
3
3
  import '../../chunk-OJJK27GC.js';
4
4
  import '../../chunk-AUDNF2Q7.js';
@@ -9,7 +9,7 @@ import '../../chunk-SJHM4WDG.js';
9
9
  import '../../chunk-ZTWA5H77.js';
10
10
  import '../../chunk-S3XR4II4.js';
11
11
  import '../../chunk-6DO4PE3O.js';
12
- import '../../chunk-MA7YCY7C.js';
12
+ import '../../chunk-NVVAQNKE.js';
13
13
  import '../../chunk-DD3CCMCZ.js';
14
14
  import '../../chunk-GMXGDO3I.js';
15
15
  import '../../chunk-2IFYDILW.js';
@@ -18,7 +18,7 @@ import '../../chunk-HENXLGVD.js';
18
18
  import '../../chunk-7FPLLSHN.js';
19
19
  import '../../chunk-RNP5R5I3.js';
20
20
  import '../../chunk-W2SFTXMT.js';
21
- import '../../chunk-YEGMSADG.js';
21
+ import '../../chunk-XDEUR36B.js';
22
22
  import '../../chunk-KRWALB24.js';
23
23
  import '../../chunk-2FTX4WO2.js';
24
24
  import '../../chunk-MQZE7SUI.js';