@citron-systems/citron-ui 1.7.0 → 1.9.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.
package/dist/index.d.cts CHANGED
@@ -1,15 +1,79 @@
1
- import * as react from 'react';
2
- import { ButtonHTMLAttributes, ReactNode, Component, InputHTMLAttributes, ComponentType, HTMLAttributes } from 'react';
3
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as react from 'react';
3
+ import { ReactNode, TextareaHTMLAttributes, ButtonHTMLAttributes, Component, InputHTMLAttributes, ComponentType, HTMLAttributes } from 'react';
4
4
  import { FallbackProps } from 'react-error-boundary';
5
5
  import { LucideIcon } from 'lucide-react';
6
6
 
7
+ interface ActionButtonItem {
8
+ id: string;
9
+ label: string;
10
+ variant: 'primary' | 'secondary';
11
+ icon?: ReactNode;
12
+ onClick?: () => void;
13
+ disabled?: boolean;
14
+ }
15
+ interface ActionButtonsProps {
16
+ buttons: ActionButtonItem[];
17
+ className?: string;
18
+ }
19
+ declare function ActionButtons({ buttons, className }: ActionButtonsProps): react_jsx_runtime.JSX.Element;
20
+ declare function EmailComposeActionButtons({ onSendNow, onSchedule, onSaveDraft, className, }: {
21
+ onSendNow?: () => void;
22
+ onSchedule?: () => void;
23
+ onSaveDraft?: () => void;
24
+ className?: string;
25
+ }): react_jsx_runtime.JSX.Element;
26
+
27
+ interface AIComposeInputProps extends Omit<TextareaHTMLAttributes<HTMLTextAreaElement>, 'className'> {
28
+ label?: string;
29
+ loading?: boolean;
30
+ onWriteWithAI?: () => void | Promise<void>;
31
+ className?: string;
32
+ }
33
+ declare const AIComposeInput: react.ForwardRefExoticComponent<AIComposeInputProps & react.RefAttributes<HTMLTextAreaElement>>;
34
+
7
35
  type ButtonVariant = 'primary' | 'secondary';
8
36
  interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
9
37
  variant?: ButtonVariant;
10
38
  }
11
39
  declare const Button: react.ForwardRefExoticComponent<ButtonProps & react.RefAttributes<HTMLButtonElement>>;
12
40
 
41
+ type CampaignStatus = 'sent' | 'active' | 'draft' | 'scheduled';
42
+ interface CampaignTableRow {
43
+ id: string;
44
+ campaignName: string;
45
+ recipients: string;
46
+ status: CampaignStatus;
47
+ statusSubtext?: string;
48
+ opens: string;
49
+ clicks: string;
50
+ date: string;
51
+ }
52
+ interface CampaignTableProps {
53
+ columns: {
54
+ key: string;
55
+ label: string;
56
+ }[];
57
+ rows: CampaignTableRow[];
58
+ className?: string;
59
+ }
60
+ declare function CampaignTable({ columns, rows, className, }: CampaignTableProps): react_jsx_runtime.JSX.Element;
61
+
62
+ interface EmailTemplateItem {
63
+ id: string;
64
+ category: string;
65
+ title: string;
66
+ uses: string;
67
+ }
68
+ interface EmailTemplatesSectionProps {
69
+ title?: string;
70
+ onGenerateWithAI?: () => void;
71
+ templates: EmailTemplateItem[];
72
+ onTemplateClick?: (template: EmailTemplateItem) => void;
73
+ className?: string;
74
+ }
75
+ declare function EmailTemplatesSection({ title, onGenerateWithAI, templates, onTemplateClick, className, }: EmailTemplatesSectionProps): react_jsx_runtime.JSX.Element;
76
+
13
77
  interface CommandInterfaceProps {
14
78
  promptValue?: string;
15
79
  onPromptChange?: (value: string) => void;
@@ -65,7 +129,7 @@ interface ErrorBoundaryState {
65
129
  declare class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {
66
130
  constructor(props: ErrorBoundaryProps);
67
131
  static getDerivedStateFromError(error: Error): ErrorBoundaryState;
68
- render(): string | number | bigint | boolean | react_jsx_runtime.JSX.Element | Iterable<ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | react.ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | null | undefined;
132
+ render(): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | react.ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | react_jsx_runtime.JSX.Element | null | undefined;
69
133
  }
70
134
 
71
135
  interface CitronEvent {
@@ -132,6 +196,22 @@ interface ModuleContainerProps {
132
196
  }
133
197
  declare function ModuleContainer({ children, loading, title, className, onRetry, }: ModuleContainerProps): react_jsx_runtime.JSX.Element;
134
198
 
199
+ interface PageHeaderProps {
200
+ title: string;
201
+ subtitle?: string;
202
+ icon?: ReactNode;
203
+ action?: ReactNode;
204
+ className?: string;
205
+ }
206
+ declare function PageHeader({ title, subtitle, icon, action, className, }: PageHeaderProps): react_jsx_runtime.JSX.Element;
207
+ interface PageHeaderActionButtonProps {
208
+ label: string;
209
+ onClick?: () => void;
210
+ icon?: ReactNode;
211
+ className?: string;
212
+ }
213
+ declare function PageHeaderActionButton({ label, onClick, icon, className, }: PageHeaderActionButtonProps): react_jsx_runtime.JSX.Element;
214
+
135
215
  interface ModuleErrorBoundaryProps {
136
216
  children: ReactNode;
137
217
  onRetry?: () => void;
@@ -144,7 +224,7 @@ interface ModuleErrorBoundaryState {
144
224
  declare class ModuleErrorBoundary extends Component<ModuleErrorBoundaryProps, ModuleErrorBoundaryState> {
145
225
  constructor(props: ModuleErrorBoundaryProps);
146
226
  static getDerivedStateFromError(error: Error): ModuleErrorBoundaryState;
147
- render(): string | number | bigint | boolean | react_jsx_runtime.JSX.Element | Iterable<ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | react.ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | null | undefined;
227
+ render(): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | react.ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | react_jsx_runtime.JSX.Element | null | undefined;
148
228
  }
149
229
 
150
230
  interface PageErrorFallbackProps extends FallbackProps {
@@ -157,6 +237,19 @@ interface RouteWithErrorBoundaryProps {
157
237
  }
158
238
  declare function RouteWithErrorBoundary({ children, fallback, }: RouteWithErrorBoundaryProps): react_jsx_runtime.JSX.Element;
159
239
 
240
+ interface SearchBarProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> {
241
+ label?: string;
242
+ error?: boolean;
243
+ }
244
+ declare const SearchBar: react.ForwardRefExoticComponent<SearchBarProps & react.RefAttributes<HTMLInputElement>>;
245
+
246
+ interface StatCardGridProps {
247
+ children: ReactNode;
248
+ columns?: 1 | 2 | 3 | 4;
249
+ className?: string;
250
+ }
251
+ declare function StatCardGrid({ children, columns, className, }: StatCardGridProps): react_jsx_runtime.JSX.Element;
252
+
160
253
  interface SkeletonProps extends HTMLAttributes<HTMLDivElement> {
161
254
  }
162
255
  declare function Skeleton({ className, ...props }: SkeletonProps): react_jsx_runtime.JSX.Element;
@@ -177,6 +270,27 @@ interface OSNavigationRailProps {
177
270
  }
178
271
  declare function OSNavigationRail({ items, className }: OSNavigationRailProps): react_jsx_runtime.JSX.Element;
179
272
 
273
+ type StatCardChangeVariant = 'success' | 'error' | 'neutral';
274
+ interface StatCardItem {
275
+ label: string;
276
+ value: string;
277
+ change?: string;
278
+ changeVariant?: StatCardChangeVariant;
279
+ }
280
+ interface StatCardsProps {
281
+ items: StatCardItem[];
282
+ className?: string;
283
+ }
284
+ declare function StatCards({ items, className }: StatCardsProps): react_jsx_runtime.JSX.Element;
285
+ interface StatCardWithChartItem extends StatCardItem {
286
+ chartData?: number[];
287
+ }
288
+ interface StatCardsWithChartProps {
289
+ items: StatCardWithChartItem[];
290
+ className?: string;
291
+ }
292
+ declare function StatCardsWithChart({ items, className, }: StatCardsWithChartProps): react_jsx_runtime.JSX.Element;
293
+
180
294
  type StatusBadgeVariant = 'success' | 'warning' | 'error' | 'info';
181
295
  interface StatusBadgeProps {
182
296
  label: string;
@@ -185,6 +299,68 @@ interface StatusBadgeProps {
185
299
  }
186
300
  declare function StatusBadge({ label, variant, className, }: StatusBadgeProps): react_jsx_runtime.JSX.Element;
187
301
 
302
+ interface TabItem {
303
+ id: string;
304
+ label: string;
305
+ }
306
+ interface TabSystemProps {
307
+ tabs: TabItem[];
308
+ activeTabId: string;
309
+ onTabChange: (tabId: string) => void;
310
+ className?: string;
311
+ }
312
+ declare function TabSystem({ tabs, activeTabId, onTabChange, className, }: TabSystemProps): react_jsx_runtime.JSX.Element;
313
+
314
+ type TaskStatus = 'todo' | 'in_progress' | 'done';
315
+ type TaskPriority = 'urgent' | 'high' | 'medium' | 'low';
316
+ interface TaskItemData {
317
+ id: string;
318
+ title: string;
319
+ company: string;
320
+ priority: TaskPriority;
321
+ date: string;
322
+ assignee: string;
323
+ completed?: boolean;
324
+ }
325
+ interface TaskWithStatus extends TaskItemData {
326
+ status: TaskStatus;
327
+ }
328
+ interface TaskSection {
329
+ id: TaskStatus;
330
+ label: string;
331
+ count: number;
332
+ tasks: TaskItemData[];
333
+ }
334
+ interface TaskCreatePayload {
335
+ title: string;
336
+ company?: string;
337
+ priority?: TaskPriority;
338
+ }
339
+
340
+ interface TaskItemProps extends TaskItemData {
341
+ onToggle?: (id: string) => void;
342
+ onClick?: (id: string) => void;
343
+ className?: string;
344
+ }
345
+ declare function TaskItem({ id, title, company, priority, date, assignee, completed, onToggle, onClick, className, }: TaskItemProps): react_jsx_runtime.JSX.Element;
346
+
347
+ interface TaskListProps {
348
+ sections: TaskSection[];
349
+ onTaskToggle?: (taskId: string) => void;
350
+ onTaskClick?: (taskId: string) => void;
351
+ className?: string;
352
+ }
353
+ declare function TaskList({ sections, onTaskToggle, onTaskClick, className, }: TaskListProps): react_jsx_runtime.JSX.Element;
354
+
355
+ interface TemplateCardProps {
356
+ category: string;
357
+ title: string;
358
+ uses: string;
359
+ onClick?: () => void;
360
+ className?: string;
361
+ }
362
+ declare function TemplateCard({ category, title, uses, onClick, className, }: TemplateCardProps): react_jsx_runtime.JSX.Element;
363
+
188
364
  interface GraphNode {
189
365
  id: string;
190
366
  type: EntityType;
@@ -287,4 +463,31 @@ interface MainShellProps {
287
463
  }
288
464
  declare function MainShell({ navigation, eventStream, commandBar, children, className, eventStreamWidth, }: MainShellProps): react_jsx_runtime.JSX.Element;
289
465
 
290
- export { ActivityStream, type ActivityStreamProps, AppNavigationRail, type AppNavigationRailItem, type AppNavigationRailProps, Button, type ButtonProps, type ButtonVariant, ChatFeed, type ChatFeedProps, type ChatMessage, type CitronEvent, CommandBar, type CommandBarProps, CommandInterface, type CommandInterfaceProps, type Edge, EntityCard, type EntityCardProps, EntityCommandCard, type EntityCommandCardProps, type EntityCommandCardStat, type EntityType, ErrorBoundary, type ErrorBoundaryProps, EventRow, type EventRowProps, type EventStreamEvent, EventStreamFeed, type EventStreamFeedProps, EventStreamSidebar, type EventStreamSidebarProps, type EventStreamStatus, type GraphNode, Input, type InputProps, IntelligenceLab, type IntelligenceLabInsight, type IntelligenceLabKpiCard, type IntelligenceLabProps, IntelligenceScoreCard, type IntelligenceScoreCardProps, MainShell, type MainShellProps, type MetricComparisonItem, MetricComparisonList, type MetricComparisonListProps, type MetricComparisonVariant, ModuleContainer, type ModuleContainerProps, ModuleErrorBoundary, type ModuleErrorBoundaryProps, ModuleSkeleton, type ModuleSkeletonProps, OSNavigationRail, type OSNavigationRailItem, type OSNavigationRailProps, PageErrorFallback, type PageErrorFallbackProps, RouteWithErrorBoundary, type RouteWithErrorBoundaryProps, Skeleton, type SkeletonProps, StatusBadge, type StatusBadgeProps, type StatusBadgeVariant };
466
+ interface TaskCreateFormProps {
467
+ onConfirm: (payload: TaskCreatePayload) => void;
468
+ onCancel: () => void;
469
+ className?: string;
470
+ }
471
+ declare function TaskCreateForm({ onConfirm, onCancel, className, }: TaskCreateFormProps): react_jsx_runtime.JSX.Element;
472
+
473
+ interface TasksViewProps {
474
+ initialTasks?: TaskWithStatus[];
475
+ onTaskCreate?: (payload: TaskCreatePayload) => void;
476
+ onTaskToggle?: (taskId: string) => void;
477
+ onTaskClick?: (taskId: string) => void;
478
+ className?: string;
479
+ }
480
+ declare function TasksView({ initialTasks, onTaskCreate, onTaskToggle, onTaskClick, className, }: TasksViewProps): react_jsx_runtime.JSX.Element;
481
+
482
+ interface EmailCampaignsViewProps {
483
+ onSendNow?: () => void;
484
+ onSchedule?: () => void;
485
+ onSaveDraft?: () => void;
486
+ onNewCampaign?: () => void;
487
+ onGenerateWithAI?: () => void;
488
+ onTemplateClick?: (template: EmailTemplateItem) => void;
489
+ className?: string;
490
+ }
491
+ declare function EmailCampaignsView({ onSendNow, onSchedule, onSaveDraft, onNewCampaign, onGenerateWithAI, onTemplateClick, className, }: EmailCampaignsViewProps): react_jsx_runtime.JSX.Element;
492
+
493
+ export { AIComposeInput, type AIComposeInputProps, type ActionButtonItem, ActionButtons, type ActionButtonsProps, ActivityStream, type ActivityStreamProps, AppNavigationRail, type AppNavigationRailItem, type AppNavigationRailProps, Button, type ButtonProps, type ButtonVariant, type CampaignStatus, CampaignTable, type CampaignTableProps, type CampaignTableRow, ChatFeed, type ChatFeedProps, type ChatMessage, type CitronEvent, CommandBar, type CommandBarProps, CommandInterface, type CommandInterfaceProps, type Edge, EmailCampaignsView, type EmailCampaignsViewProps, EmailComposeActionButtons, type EmailTemplateItem, EmailTemplatesSection, type EmailTemplatesSectionProps, EntityCard, type EntityCardProps, EntityCommandCard, type EntityCommandCardProps, type EntityCommandCardStat, type EntityType, ErrorBoundary, type ErrorBoundaryProps, EventRow, type EventRowProps, type EventStreamEvent, EventStreamFeed, type EventStreamFeedProps, EventStreamSidebar, type EventStreamSidebarProps, type EventStreamStatus, type GraphNode, Input, type InputProps, IntelligenceLab, type IntelligenceLabInsight, type IntelligenceLabKpiCard, type IntelligenceLabProps, IntelligenceScoreCard, type IntelligenceScoreCardProps, MainShell, type MainShellProps, type MetricComparisonItem, MetricComparisonList, type MetricComparisonListProps, type MetricComparisonVariant, ModuleContainer, type ModuleContainerProps, ModuleErrorBoundary, type ModuleErrorBoundaryProps, ModuleSkeleton, type ModuleSkeletonProps, OSNavigationRail, type OSNavigationRailItem, type OSNavigationRailProps, PageErrorFallback, type PageErrorFallbackProps, PageHeader, PageHeaderActionButton, type PageHeaderActionButtonProps, type PageHeaderProps, RouteWithErrorBoundary, type RouteWithErrorBoundaryProps, SearchBar, type SearchBarProps, Skeleton, type SkeletonProps, type StatCardChangeVariant, StatCardGrid, type StatCardGridProps, type StatCardItem, type StatCardWithChartItem, StatCards, type StatCardsProps, StatCardsWithChart, type StatCardsWithChartProps, StatusBadge, type StatusBadgeProps, type StatusBadgeVariant, type TabItem, TabSystem, type TabSystemProps, TaskCreateForm, type TaskCreateFormProps, type TaskCreatePayload, TaskItem, type TaskItemData, type TaskItemProps, TaskList, type TaskListProps, type TaskPriority, type TaskSection, type TaskStatus, type TaskWithStatus, TasksView, type TasksViewProps, TemplateCard, type TemplateCardProps };
package/dist/index.d.ts CHANGED
@@ -1,15 +1,79 @@
1
- import * as react from 'react';
2
- import { ButtonHTMLAttributes, ReactNode, Component, InputHTMLAttributes, ComponentType, HTMLAttributes } from 'react';
3
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as react from 'react';
3
+ import { ReactNode, TextareaHTMLAttributes, ButtonHTMLAttributes, Component, InputHTMLAttributes, ComponentType, HTMLAttributes } from 'react';
4
4
  import { FallbackProps } from 'react-error-boundary';
5
5
  import { LucideIcon } from 'lucide-react';
6
6
 
7
+ interface ActionButtonItem {
8
+ id: string;
9
+ label: string;
10
+ variant: 'primary' | 'secondary';
11
+ icon?: ReactNode;
12
+ onClick?: () => void;
13
+ disabled?: boolean;
14
+ }
15
+ interface ActionButtonsProps {
16
+ buttons: ActionButtonItem[];
17
+ className?: string;
18
+ }
19
+ declare function ActionButtons({ buttons, className }: ActionButtonsProps): react_jsx_runtime.JSX.Element;
20
+ declare function EmailComposeActionButtons({ onSendNow, onSchedule, onSaveDraft, className, }: {
21
+ onSendNow?: () => void;
22
+ onSchedule?: () => void;
23
+ onSaveDraft?: () => void;
24
+ className?: string;
25
+ }): react_jsx_runtime.JSX.Element;
26
+
27
+ interface AIComposeInputProps extends Omit<TextareaHTMLAttributes<HTMLTextAreaElement>, 'className'> {
28
+ label?: string;
29
+ loading?: boolean;
30
+ onWriteWithAI?: () => void | Promise<void>;
31
+ className?: string;
32
+ }
33
+ declare const AIComposeInput: react.ForwardRefExoticComponent<AIComposeInputProps & react.RefAttributes<HTMLTextAreaElement>>;
34
+
7
35
  type ButtonVariant = 'primary' | 'secondary';
8
36
  interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
9
37
  variant?: ButtonVariant;
10
38
  }
11
39
  declare const Button: react.ForwardRefExoticComponent<ButtonProps & react.RefAttributes<HTMLButtonElement>>;
12
40
 
41
+ type CampaignStatus = 'sent' | 'active' | 'draft' | 'scheduled';
42
+ interface CampaignTableRow {
43
+ id: string;
44
+ campaignName: string;
45
+ recipients: string;
46
+ status: CampaignStatus;
47
+ statusSubtext?: string;
48
+ opens: string;
49
+ clicks: string;
50
+ date: string;
51
+ }
52
+ interface CampaignTableProps {
53
+ columns: {
54
+ key: string;
55
+ label: string;
56
+ }[];
57
+ rows: CampaignTableRow[];
58
+ className?: string;
59
+ }
60
+ declare function CampaignTable({ columns, rows, className, }: CampaignTableProps): react_jsx_runtime.JSX.Element;
61
+
62
+ interface EmailTemplateItem {
63
+ id: string;
64
+ category: string;
65
+ title: string;
66
+ uses: string;
67
+ }
68
+ interface EmailTemplatesSectionProps {
69
+ title?: string;
70
+ onGenerateWithAI?: () => void;
71
+ templates: EmailTemplateItem[];
72
+ onTemplateClick?: (template: EmailTemplateItem) => void;
73
+ className?: string;
74
+ }
75
+ declare function EmailTemplatesSection({ title, onGenerateWithAI, templates, onTemplateClick, className, }: EmailTemplatesSectionProps): react_jsx_runtime.JSX.Element;
76
+
13
77
  interface CommandInterfaceProps {
14
78
  promptValue?: string;
15
79
  onPromptChange?: (value: string) => void;
@@ -65,7 +129,7 @@ interface ErrorBoundaryState {
65
129
  declare class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {
66
130
  constructor(props: ErrorBoundaryProps);
67
131
  static getDerivedStateFromError(error: Error): ErrorBoundaryState;
68
- render(): string | number | bigint | boolean | react_jsx_runtime.JSX.Element | Iterable<ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | react.ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | null | undefined;
132
+ render(): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | react.ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | react_jsx_runtime.JSX.Element | null | undefined;
69
133
  }
70
134
 
71
135
  interface CitronEvent {
@@ -132,6 +196,22 @@ interface ModuleContainerProps {
132
196
  }
133
197
  declare function ModuleContainer({ children, loading, title, className, onRetry, }: ModuleContainerProps): react_jsx_runtime.JSX.Element;
134
198
 
199
+ interface PageHeaderProps {
200
+ title: string;
201
+ subtitle?: string;
202
+ icon?: ReactNode;
203
+ action?: ReactNode;
204
+ className?: string;
205
+ }
206
+ declare function PageHeader({ title, subtitle, icon, action, className, }: PageHeaderProps): react_jsx_runtime.JSX.Element;
207
+ interface PageHeaderActionButtonProps {
208
+ label: string;
209
+ onClick?: () => void;
210
+ icon?: ReactNode;
211
+ className?: string;
212
+ }
213
+ declare function PageHeaderActionButton({ label, onClick, icon, className, }: PageHeaderActionButtonProps): react_jsx_runtime.JSX.Element;
214
+
135
215
  interface ModuleErrorBoundaryProps {
136
216
  children: ReactNode;
137
217
  onRetry?: () => void;
@@ -144,7 +224,7 @@ interface ModuleErrorBoundaryState {
144
224
  declare class ModuleErrorBoundary extends Component<ModuleErrorBoundaryProps, ModuleErrorBoundaryState> {
145
225
  constructor(props: ModuleErrorBoundaryProps);
146
226
  static getDerivedStateFromError(error: Error): ModuleErrorBoundaryState;
147
- render(): string | number | bigint | boolean | react_jsx_runtime.JSX.Element | Iterable<ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | react.ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | null | undefined;
227
+ render(): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | react.ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | react_jsx_runtime.JSX.Element | null | undefined;
148
228
  }
149
229
 
150
230
  interface PageErrorFallbackProps extends FallbackProps {
@@ -157,6 +237,19 @@ interface RouteWithErrorBoundaryProps {
157
237
  }
158
238
  declare function RouteWithErrorBoundary({ children, fallback, }: RouteWithErrorBoundaryProps): react_jsx_runtime.JSX.Element;
159
239
 
240
+ interface SearchBarProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type'> {
241
+ label?: string;
242
+ error?: boolean;
243
+ }
244
+ declare const SearchBar: react.ForwardRefExoticComponent<SearchBarProps & react.RefAttributes<HTMLInputElement>>;
245
+
246
+ interface StatCardGridProps {
247
+ children: ReactNode;
248
+ columns?: 1 | 2 | 3 | 4;
249
+ className?: string;
250
+ }
251
+ declare function StatCardGrid({ children, columns, className, }: StatCardGridProps): react_jsx_runtime.JSX.Element;
252
+
160
253
  interface SkeletonProps extends HTMLAttributes<HTMLDivElement> {
161
254
  }
162
255
  declare function Skeleton({ className, ...props }: SkeletonProps): react_jsx_runtime.JSX.Element;
@@ -177,6 +270,27 @@ interface OSNavigationRailProps {
177
270
  }
178
271
  declare function OSNavigationRail({ items, className }: OSNavigationRailProps): react_jsx_runtime.JSX.Element;
179
272
 
273
+ type StatCardChangeVariant = 'success' | 'error' | 'neutral';
274
+ interface StatCardItem {
275
+ label: string;
276
+ value: string;
277
+ change?: string;
278
+ changeVariant?: StatCardChangeVariant;
279
+ }
280
+ interface StatCardsProps {
281
+ items: StatCardItem[];
282
+ className?: string;
283
+ }
284
+ declare function StatCards({ items, className }: StatCardsProps): react_jsx_runtime.JSX.Element;
285
+ interface StatCardWithChartItem extends StatCardItem {
286
+ chartData?: number[];
287
+ }
288
+ interface StatCardsWithChartProps {
289
+ items: StatCardWithChartItem[];
290
+ className?: string;
291
+ }
292
+ declare function StatCardsWithChart({ items, className, }: StatCardsWithChartProps): react_jsx_runtime.JSX.Element;
293
+
180
294
  type StatusBadgeVariant = 'success' | 'warning' | 'error' | 'info';
181
295
  interface StatusBadgeProps {
182
296
  label: string;
@@ -185,6 +299,68 @@ interface StatusBadgeProps {
185
299
  }
186
300
  declare function StatusBadge({ label, variant, className, }: StatusBadgeProps): react_jsx_runtime.JSX.Element;
187
301
 
302
+ interface TabItem {
303
+ id: string;
304
+ label: string;
305
+ }
306
+ interface TabSystemProps {
307
+ tabs: TabItem[];
308
+ activeTabId: string;
309
+ onTabChange: (tabId: string) => void;
310
+ className?: string;
311
+ }
312
+ declare function TabSystem({ tabs, activeTabId, onTabChange, className, }: TabSystemProps): react_jsx_runtime.JSX.Element;
313
+
314
+ type TaskStatus = 'todo' | 'in_progress' | 'done';
315
+ type TaskPriority = 'urgent' | 'high' | 'medium' | 'low';
316
+ interface TaskItemData {
317
+ id: string;
318
+ title: string;
319
+ company: string;
320
+ priority: TaskPriority;
321
+ date: string;
322
+ assignee: string;
323
+ completed?: boolean;
324
+ }
325
+ interface TaskWithStatus extends TaskItemData {
326
+ status: TaskStatus;
327
+ }
328
+ interface TaskSection {
329
+ id: TaskStatus;
330
+ label: string;
331
+ count: number;
332
+ tasks: TaskItemData[];
333
+ }
334
+ interface TaskCreatePayload {
335
+ title: string;
336
+ company?: string;
337
+ priority?: TaskPriority;
338
+ }
339
+
340
+ interface TaskItemProps extends TaskItemData {
341
+ onToggle?: (id: string) => void;
342
+ onClick?: (id: string) => void;
343
+ className?: string;
344
+ }
345
+ declare function TaskItem({ id, title, company, priority, date, assignee, completed, onToggle, onClick, className, }: TaskItemProps): react_jsx_runtime.JSX.Element;
346
+
347
+ interface TaskListProps {
348
+ sections: TaskSection[];
349
+ onTaskToggle?: (taskId: string) => void;
350
+ onTaskClick?: (taskId: string) => void;
351
+ className?: string;
352
+ }
353
+ declare function TaskList({ sections, onTaskToggle, onTaskClick, className, }: TaskListProps): react_jsx_runtime.JSX.Element;
354
+
355
+ interface TemplateCardProps {
356
+ category: string;
357
+ title: string;
358
+ uses: string;
359
+ onClick?: () => void;
360
+ className?: string;
361
+ }
362
+ declare function TemplateCard({ category, title, uses, onClick, className, }: TemplateCardProps): react_jsx_runtime.JSX.Element;
363
+
188
364
  interface GraphNode {
189
365
  id: string;
190
366
  type: EntityType;
@@ -287,4 +463,31 @@ interface MainShellProps {
287
463
  }
288
464
  declare function MainShell({ navigation, eventStream, commandBar, children, className, eventStreamWidth, }: MainShellProps): react_jsx_runtime.JSX.Element;
289
465
 
290
- export { ActivityStream, type ActivityStreamProps, AppNavigationRail, type AppNavigationRailItem, type AppNavigationRailProps, Button, type ButtonProps, type ButtonVariant, ChatFeed, type ChatFeedProps, type ChatMessage, type CitronEvent, CommandBar, type CommandBarProps, CommandInterface, type CommandInterfaceProps, type Edge, EntityCard, type EntityCardProps, EntityCommandCard, type EntityCommandCardProps, type EntityCommandCardStat, type EntityType, ErrorBoundary, type ErrorBoundaryProps, EventRow, type EventRowProps, type EventStreamEvent, EventStreamFeed, type EventStreamFeedProps, EventStreamSidebar, type EventStreamSidebarProps, type EventStreamStatus, type GraphNode, Input, type InputProps, IntelligenceLab, type IntelligenceLabInsight, type IntelligenceLabKpiCard, type IntelligenceLabProps, IntelligenceScoreCard, type IntelligenceScoreCardProps, MainShell, type MainShellProps, type MetricComparisonItem, MetricComparisonList, type MetricComparisonListProps, type MetricComparisonVariant, ModuleContainer, type ModuleContainerProps, ModuleErrorBoundary, type ModuleErrorBoundaryProps, ModuleSkeleton, type ModuleSkeletonProps, OSNavigationRail, type OSNavigationRailItem, type OSNavigationRailProps, PageErrorFallback, type PageErrorFallbackProps, RouteWithErrorBoundary, type RouteWithErrorBoundaryProps, Skeleton, type SkeletonProps, StatusBadge, type StatusBadgeProps, type StatusBadgeVariant };
466
+ interface TaskCreateFormProps {
467
+ onConfirm: (payload: TaskCreatePayload) => void;
468
+ onCancel: () => void;
469
+ className?: string;
470
+ }
471
+ declare function TaskCreateForm({ onConfirm, onCancel, className, }: TaskCreateFormProps): react_jsx_runtime.JSX.Element;
472
+
473
+ interface TasksViewProps {
474
+ initialTasks?: TaskWithStatus[];
475
+ onTaskCreate?: (payload: TaskCreatePayload) => void;
476
+ onTaskToggle?: (taskId: string) => void;
477
+ onTaskClick?: (taskId: string) => void;
478
+ className?: string;
479
+ }
480
+ declare function TasksView({ initialTasks, onTaskCreate, onTaskToggle, onTaskClick, className, }: TasksViewProps): react_jsx_runtime.JSX.Element;
481
+
482
+ interface EmailCampaignsViewProps {
483
+ onSendNow?: () => void;
484
+ onSchedule?: () => void;
485
+ onSaveDraft?: () => void;
486
+ onNewCampaign?: () => void;
487
+ onGenerateWithAI?: () => void;
488
+ onTemplateClick?: (template: EmailTemplateItem) => void;
489
+ className?: string;
490
+ }
491
+ declare function EmailCampaignsView({ onSendNow, onSchedule, onSaveDraft, onNewCampaign, onGenerateWithAI, onTemplateClick, className, }: EmailCampaignsViewProps): react_jsx_runtime.JSX.Element;
492
+
493
+ export { AIComposeInput, type AIComposeInputProps, type ActionButtonItem, ActionButtons, type ActionButtonsProps, ActivityStream, type ActivityStreamProps, AppNavigationRail, type AppNavigationRailItem, type AppNavigationRailProps, Button, type ButtonProps, type ButtonVariant, type CampaignStatus, CampaignTable, type CampaignTableProps, type CampaignTableRow, ChatFeed, type ChatFeedProps, type ChatMessage, type CitronEvent, CommandBar, type CommandBarProps, CommandInterface, type CommandInterfaceProps, type Edge, EmailCampaignsView, type EmailCampaignsViewProps, EmailComposeActionButtons, type EmailTemplateItem, EmailTemplatesSection, type EmailTemplatesSectionProps, EntityCard, type EntityCardProps, EntityCommandCard, type EntityCommandCardProps, type EntityCommandCardStat, type EntityType, ErrorBoundary, type ErrorBoundaryProps, EventRow, type EventRowProps, type EventStreamEvent, EventStreamFeed, type EventStreamFeedProps, EventStreamSidebar, type EventStreamSidebarProps, type EventStreamStatus, type GraphNode, Input, type InputProps, IntelligenceLab, type IntelligenceLabInsight, type IntelligenceLabKpiCard, type IntelligenceLabProps, IntelligenceScoreCard, type IntelligenceScoreCardProps, MainShell, type MainShellProps, type MetricComparisonItem, MetricComparisonList, type MetricComparisonListProps, type MetricComparisonVariant, ModuleContainer, type ModuleContainerProps, ModuleErrorBoundary, type ModuleErrorBoundaryProps, ModuleSkeleton, type ModuleSkeletonProps, OSNavigationRail, type OSNavigationRailItem, type OSNavigationRailProps, PageErrorFallback, type PageErrorFallbackProps, PageHeader, PageHeaderActionButton, type PageHeaderActionButtonProps, type PageHeaderProps, RouteWithErrorBoundary, type RouteWithErrorBoundaryProps, SearchBar, type SearchBarProps, Skeleton, type SkeletonProps, type StatCardChangeVariant, StatCardGrid, type StatCardGridProps, type StatCardItem, type StatCardWithChartItem, StatCards, type StatCardsProps, StatCardsWithChart, type StatCardsWithChartProps, StatusBadge, type StatusBadgeProps, type StatusBadgeVariant, type TabItem, TabSystem, type TabSystemProps, TaskCreateForm, type TaskCreateFormProps, type TaskCreatePayload, TaskItem, type TaskItemData, type TaskItemProps, TaskList, type TaskListProps, type TaskPriority, type TaskSection, type TaskStatus, type TaskWithStatus, TasksView, type TasksViewProps, TemplateCard, type TemplateCardProps };
package/dist/index.js CHANGED
@@ -1 +1,20 @@
1
- "use strict";var at=Object.defineProperty;var Gt=Object.getOwnPropertyDescriptor;var zt=Object.getOwnPropertyNames;var Wt=Object.prototype.hasOwnProperty;var Kt=(e,t)=>{for(var r in t)at(e,r,{get:t[r],enumerable:!0})},$t=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of zt(t))!Wt.call(e,i)&&i!==r&&at(e,i,{get:()=>t[i],enumerable:!(n=Gt(t,i))||n.enumerable});return e};var Ut=e=>$t(at({},"__esModule",{value:!0}),e);var ue={};Kt(ue,{ActivityStream:()=>X,AppNavigationRail:()=>ut,Button:()=>z,ChatFeed:()=>vt,CommandBar:()=>bt,CommandInterface:()=>_,EntityCard:()=>$,EntityCommandCard:()=>nt,ErrorBoundary:()=>U,EventRow:()=>Z,EventStreamFeed:()=>st,EventStreamSidebar:()=>ft,Input:()=>W,IntelligenceLab:()=>gt,IntelligenceScoreCard:()=>q,MainShell:()=>yt,MetricComparisonList:()=>dt,ModuleContainer:()=>J,ModuleErrorBoundary:()=>l,ModuleSkeleton:()=>O,OSNavigationRail:()=>pt,PageErrorFallback:()=>Q,RouteWithErrorBoundary:()=>mt,Skeleton:()=>B,StatusBadge:()=>j});module.exports=Ut(ue);var Ct=require("react");var Nt=require("clsx"),Et=require("tailwind-merge");function o(...e){return(0,Et.twMerge)((0,Nt.clsx)(e))}var St=require("react/jsx-runtime"),jt={primary:"bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-primary)] hover:bg-[var(--inkblot-semantic-color-interactive-primary-hover)] active:bg-[var(--inkblot-semantic-color-interactive-primary-active)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--inkblot-semantic-color-border-focus)] focus-visible:outline-offset-2 disabled:opacity-[var(--inkblot-opacity-disabled)] disabled:pointer-events-none disabled:cursor-not-allowed",secondary:"bg-[var(--inkblot-semantic-color-interactive-secondary)] text-[var(--inkblot-semantic-color-text-primary)] border border-[var(--inkblot-semantic-color-border-default)] hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] hover:border-[var(--inkblot-semantic-color-border-strong)] active:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--inkblot-semantic-color-border-focus)] focus-visible:outline-offset-2 disabled:opacity-[var(--inkblot-opacity-disabled)] disabled:pointer-events-none disabled:cursor-not-allowed"},z=(0,Ct.forwardRef)(({className:e,variant:t="primary",disabled:r,...n},i)=>(0,St.jsx)("button",{ref:i,disabled:r,className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center rounded-[var(--inkblot-radius-lg)] px-4 py-2 font-semibold transition-[background,border-color] duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)]",jt[t],e),...n}));z.displayName="Button";var Pt=require("react"),D=require("lucide-react");var m=require("react/jsx-runtime");function _({promptValue:e="",onPromptChange:t,onPromptSubmit:r,onFilesAttach:n,isProcessing:i=!1,response:s,placeholder:a="Ask Citron Intelligence...",accept:k,multiple:b=!0,className:I}){let A=(0,Pt.useRef)(null),E=C=>{C.key==="Enter"&&!C.shiftKey&&(C.preventDefault(),r?.())},Y=()=>{A.current?.click()},rt=C=>{let T=C.target.files;T&&T.length>0&&n&&n(Array.from(T)),C.target.value=""};return(0,m.jsxs)("div",{className:o("flex w-full max-w-[80rem] flex-col gap-[var(--inkblot-spacing-2)]",I),children:[(0,m.jsxs)("div",{className:o("flex items-center gap-[var(--inkblot-spacing-2)]",i&&"pointer-events-none"),children:[(0,m.jsx)("input",{ref:A,type:"file",accept:k,multiple:b,onChange:rt,className:"sr-only","aria-hidden":!0}),(0,m.jsx)("button",{type:"button",onClick:Y,disabled:i,className:o("flex h-9 w-9 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-full)] text-[var(--inkblot-semantic-color-text-tertiary)] transition-colors duration-[var(--inkblot-duration-fast)]","hover:bg-[var(--inkblot-semantic-color-background-tertiary)] hover:text-[var(--inkblot-semantic-color-text-secondary)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]","disabled:pointer-events-none disabled:opacity-[var(--inkblot-opacity-disabled)]"),"aria-label":"Adjuntar archivos",children:(0,m.jsx)(D.Paperclip,{size:20,strokeWidth:1.5,className:"text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0})}),(0,m.jsxs)("div",{className:o("relative flex min-w-0 flex-1 items-center gap-[var(--inkblot-spacing-2)] rounded-[var(--inkblot-radius-full)] bg-[var(--inkblot-semantic-color-background-primary)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)] shadow-[var(--inkblot-shadow-sm)]","transition-shadow duration-[var(--inkblot-duration-fast)]"),"aria-busy":i,children:[(0,m.jsx)("div",{className:"flex shrink-0 items-center opacity-[var(--inkblot-opacity-subtle)]","aria-hidden":!0,children:(0,m.jsx)(D.Sparkles,{size:20,strokeWidth:1.5,className:"text-[var(--inkblot-semantic-color-text-tertiary)]"})}),(0,m.jsx)("textarea",{value:e,onChange:C=>t?.(C.target.value),onKeyDown:E,placeholder:a,rows:2,disabled:i,className:o("min-h-[2.5rem] min-w-0 flex-1 resize-none border-0 bg-transparent py-0 pr-[var(--inkblot-spacing-12)] [font:var(--inkblot-semantic-typography-body-small)] text-[var(--inkblot-semantic-color-text-primary)] placeholder:text-[var(--inkblot-semantic-color-text-tertiary)]","focus:outline-none focus:ring-0","disabled:cursor-not-allowed disabled:opacity-[var(--inkblot-opacity-disabled)]")}),(0,m.jsx)("div",{className:o("absolute right-[var(--inkblot-spacing-2)] top-[var(--inkblot-spacing-2)] flex h-8 w-8 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-full)] text-[var(--inkblot-semantic-color-text-inverse)]",i?"pointer-events-none bg-[var(--inkblot-semantic-color-interactive-primary)] opacity-90":""),children:i?(0,m.jsx)(D.Loader2,{size:16,strokeWidth:2,className:"animate-spin text-[var(--inkblot-semantic-color-text-inverse)]","aria-hidden":!0}):(0,m.jsx)("button",{type:"button",onClick:r,disabled:i,className:o("flex h-full w-full items-center justify-center rounded-[var(--inkblot-radius-full)] transition-colors duration-[var(--inkblot-duration-fast)]","bg-[var(--inkblot-semantic-color-interactive-primary)] hover:bg-[var(--inkblot-semantic-color-interactive-primary-hover)] active:bg-[var(--inkblot-semantic-color-interactive-primary-active)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]"),"aria-label":"Enviar",children:(0,m.jsx)(D.Send,{size:16,strokeWidth:2,className:"text-[var(--inkblot-semantic-color-text-inverse)]","aria-hidden":!0})})})]})]}),s?(0,m.jsx)("div",{className:"flex flex-col gap-[var(--inkblot-spacing-4)]",children:(0,m.jsx)("div",{className:"min-w-0 [font:var(--inkblot-semantic-typography-body-small)] text-[var(--inkblot-semantic-color-text-primary)]",children:s})}):null]})}var f=require("react/jsx-runtime"),Zt={Person:"border-l-[var(--inkblot-semantic-color-status-info)] bg-[var(--inkblot-semantic-color-background-secondary)]",Organization:"border-l-[var(--inkblot-semantic-color-status-warning)] bg-[var(--inkblot-semantic-color-background-secondary)]",Deal:"border-l-[var(--inkblot-semantic-color-status-success)] bg-[var(--inkblot-semantic-color-background-secondary)]"};function $({name:e,entityType:t,metadata:r,edges:n=[],className:i}){return(0,f.jsxs)("article",{className:o("flex flex-col gap-4 rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] border-l-4 p-4",Zt[t],i),children:[(0,f.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,f.jsx)("span",{className:"text-xs font-medium uppercase tracking-wide text-[var(--inkblot-semantic-color-text-tertiary)]",children:t}),(0,f.jsx)("h3",{className:"text-base font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:e})]}),r&&Object.keys(r).length>0?(0,f.jsx)("dl",{className:"flex flex-col gap-1",children:Object.entries(r).map(([s,a])=>(0,f.jsxs)("div",{className:"flex gap-2",children:[(0,f.jsxs)("dt",{className:"text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:[s,":"]}),(0,f.jsx)("dd",{className:"text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:a})]},s))}):null,n.length>0?(0,f.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,f.jsx)("h4",{className:"text-sm font-medium text-[var(--inkblot-semantic-color-text-secondary)]",children:"Edges"}),(0,f.jsx)("ul",{className:"flex flex-wrap gap-2",children:n.map((s,a)=>(0,f.jsxs)("li",{className:"rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-tertiary)] px-2 py-1 text-xs text-[var(--inkblot-semantic-color-text-secondary)]",children:[s.type,s.target?` \u2192 ${s.target}`:""]},a))})]}):null]})}var wt=require("react");var Mt=require("react/jsx-runtime"),W=(0,wt.forwardRef)(({className:e,error:t,disabled:r,...n},i)=>(0,Mt.jsx)("input",{ref:i,disabled:r,"aria-invalid":t,"aria-disabled":r,className:o("min-h-[var(--inkblot-size-touch-target-min)] w-full rounded-[var(--inkblot-radius-md)] border bg-[var(--inkblot-semantic-color-background-secondary)] px-4 py-2 text-[var(--inkblot-semantic-color-text-primary)] placeholder:text-[var(--inkblot-semantic-color-text-tertiary)] transition-[border-color,box-shadow] duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--inkblot-semantic-color-border-focus)] focus-visible:ring-offset-2 disabled:opacity-[var(--inkblot-opacity-disabled)] disabled:pointer-events-none disabled:cursor-not-allowed",t?"border-[var(--inkblot-semantic-color-status-error)] focus-visible:ring-[var(--inkblot-semantic-color-status-error)]":"border-[var(--inkblot-semantic-color-border-default)] hover:border-[var(--inkblot-semantic-color-border-strong)]",e),...n}));W.displayName="Input";var It=require("react");var K=require("react/jsx-runtime"),l=class extends It.Component{constructor(t){super(t),this.state={hasError:!1,error:null}}static getDerivedStateFromError(t){return{hasError:!0,error:t}}render(){return this.state.hasError&&this.state.error?(0,K.jsxs)("div",{role:"alert",className:o("flex flex-col gap-4 rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-4",this.props.className),children:[(0,K.jsx)("p",{className:"text-base font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:"This module failed to load"}),(0,K.jsx)("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:this.state.error.message}),(0,K.jsx)(z,{variant:"secondary",onClick:this.props.onRetry,className:"w-fit border-[var(--inkblot-semantic-color-status-error)]",children:"Retry"})]}):this.props.children}};var g=require("react/jsx-runtime");function nt({title:e,insights:t,stats:r=[],commandValue:n="",onCommandChange:i,onCommandSubmit:s,className:a}){let k=b=>{b.key==="Enter"&&(b.preventDefault(),s?.())};return(0,g.jsx)(l,{className:a,children:(0,g.jsxs)("div",{className:"flex flex-col gap-4 rounded-[var(--inkblot-radius-xl)] bg-[var(--inkblot-semantic-color-background-secondary)] p-4",children:[(0,g.jsx)("h2",{className:"text-xl font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:e}),t?(0,g.jsx)("div",{className:"rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-interactive-primary)] p-4",style:{boxShadow:"0 0 12px var(--inkblot-semantic-color-interactive-primary)"},children:t}):null,r.length>0?(0,g.jsxs)("div",{children:[(0,g.jsx)("h3",{className:"mb-2 text-sm font-medium text-[var(--inkblot-semantic-color-text-secondary)]",children:"Connected To"}),(0,g.jsx)("div",{className:"grid grid-cols-2 gap-2 sm:grid-cols-3",children:r.map((b,I)=>(0,g.jsxs)("div",{className:"rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-background-tertiary)] px-3 py-2",children:[(0,g.jsx)("span",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:b.label}),(0,g.jsx)("p",{className:"text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:b.value})]},I))})]}):null,(0,g.jsx)("div",{className:"mt-2",children:(0,g.jsx)(W,{type:"text",value:n,onChange:b=>i?.(b.target.value),onKeyDown:k,placeholder:"Ask about this entity...",className:"rounded-[var(--inkblot-radius-md)]"})})]})})}var Rt=require("react");var it=require("react/jsx-runtime"),U=class extends Rt.Component{constructor(t){super(t),this.state={hasError:!1,error:null}}static getDerivedStateFromError(t){return{hasError:!0,error:t}}render(){return this.state.hasError&&this.state.error?this.props.fallback?this.props.fallback:(0,it.jsx)("div",{className:o("inline-flex items-center gap-3 rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-tertiary)] px-4 py-3 text-[var(--inkblot-semantic-color-text-secondary)]",this.props.className),role:"alert",children:(0,it.jsx)("span",{className:"text-sm font-medium",children:"Something went wrong"})}):this.props.children}};var Bt=require("react/jsx-runtime"),qt={success:"border-[var(--inkblot-semantic-color-status-success)] bg-[var(--inkblot-semantic-color-status-success)]/10 text-[var(--inkblot-semantic-color-status-success)]",warning:"border-[var(--inkblot-semantic-color-status-warning)] bg-[var(--inkblot-semantic-color-status-warning)]/10 text-[var(--inkblot-semantic-color-status-warning)]",error:"border-[var(--inkblot-semantic-color-status-error)] bg-[var(--inkblot-semantic-color-status-error)]/10 text-[var(--inkblot-semantic-color-status-error)]",info:"border-[var(--inkblot-semantic-color-status-info)] bg-[var(--inkblot-semantic-color-status-info)]/10 text-[var(--inkblot-semantic-color-status-info)]"};function j({label:e,variant:t="info",className:r}){return(0,Bt.jsx)("span",{className:o("inline-flex items-center rounded-[var(--inkblot-radius-md)] border px-2 py-0.5 text-xs font-medium",qt[t],r),children:e})}var R=require("react/jsx-runtime");function Jt(e){return e>=.8?"success":e>=.5?"info":e>=.2?"warning":"error"}function Z({event:e,className:t}){let r=Jt(e.confidence_score),n=`${Math.round(e.confidence_score*100)}%`;return(0,R.jsxs)("div",{className:o("flex flex-wrap items-center gap-2 rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-4",t),children:[(0,R.jsx)("span",{className:"text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:e.actor}),(0,R.jsx)("span",{className:"text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:"\u2192"}),(0,R.jsx)("span",{className:"text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:e.subject}),(0,R.jsx)("span",{className:"rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-background-tertiary)] px-2 py-0.5 text-xs text-[var(--inkblot-semantic-color-text-secondary)]",children:e.event_type}),(0,R.jsx)("span",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:e.timestamp}),(0,R.jsx)(j,{label:n,variant:r})]})}var x=require("react/jsx-runtime"),Qt={success:"bg-[var(--inkblot-semantic-color-status-success)]",warning:"bg-[var(--inkblot-semantic-color-status-warning)]",error:"bg-[var(--inkblot-semantic-color-status-error)]",info:"bg-[var(--inkblot-semantic-color-status-info)]"};function Xt(){return(0,x.jsx)("svg",{viewBox:"0 0 16 16",className:"h-4 w-4 text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0,children:(0,x.jsx)("circle",{cx:"8",cy:"8",r:"2",fill:"currentColor"})})}function st({events:e,className:t}){return(0,x.jsx)(l,{className:t,children:(0,x.jsx)("div",{className:o("flex flex-col gap-4 border-l-2 border-[var(--inkblot-semantic-color-border-default)] pl-4"),children:e.map(r=>(0,x.jsxs)("div",{className:"flex items-start gap-3",children:[(0,x.jsx)("div",{className:"flex shrink-0 items-center pt-0.5",children:r.icon??(0,x.jsx)(Xt,{})}),(0,x.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,x.jsx)("p",{className:"text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:r.title}),(0,x.jsx)("p",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:r.timestamp})]}),r.status?(0,x.jsx)("div",{className:o("mt-1.5 h-2 w-2 shrink-0 rounded-full",Qt[r.status]),"aria-hidden":!0}):null]},r.id))})})}var p=require("react/jsx-runtime"),ct=36,lt=2*Math.PI*ct;function q({label:e,value:t,subtext:r,trend:n,className:i}){let s=Math.min(100,Math.max(0,t)),a=lt-s/100*lt;return(0,p.jsx)(l,{className:i,children:(0,p.jsxs)("div",{className:"flex flex-col items-center gap-4 rounded-[var(--inkblot-radius-lg)] bg-[var(--inkblot-semantic-color-background-secondary)] p-4",children:[(0,p.jsxs)("div",{className:"relative",children:[(0,p.jsxs)("svg",{width:"96",height:"96",viewBox:"0 0 96 96",className:"-rotate-90",children:[(0,p.jsx)("circle",{cx:"48",cy:"48",r:ct,fill:"none",stroke:"var(--inkblot-semantic-color-background-tertiary)",strokeWidth:"4"}),(0,p.jsx)("circle",{cx:"48",cy:"48",r:ct,fill:"none",stroke:"var(--inkblot-semantic-color-interactive-primary)",strokeWidth:"4",strokeDasharray:lt,strokeDashoffset:a,strokeLinecap:"round",className:"transition-[stroke-dashoffset] duration-[var(--inkblot-duration-fast)]"})]}),(0,p.jsx)("div",{className:"absolute inset-0 flex flex-col items-center justify-center",children:(0,p.jsxs)("span",{className:"flex items-center gap-1 text-lg font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:[s,"%",n==="up"?(0,p.jsx)("svg",{viewBox:"0 0 16 16",className:"h-4 w-4 text-[var(--inkblot-semantic-color-status-success)]","aria-hidden":!0,children:(0,p.jsx)("path",{fill:"currentColor",d:"M8 4l4 6H4l4-6z"})}):n==="down"?(0,p.jsx)("svg",{viewBox:"0 0 16 16",className:"h-4 w-4 text-[var(--inkblot-semantic-color-status-error)]","aria-hidden":!0,children:(0,p.jsx)("path",{fill:"currentColor",d:"M8 12l4-6H4l4 6z"})}):null]})})]}),(0,p.jsxs)("div",{className:"text-center",children:[(0,p.jsx)("p",{className:"text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:e}),r?(0,p.jsx)("p",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:r}):null]})]})})}var P=require("react/jsx-runtime"),Yt={default:"text-[var(--inkblot-semantic-color-text-primary)]",success:"text-[var(--inkblot-semantic-color-status-success)]",warning:"text-[var(--inkblot-semantic-color-status-warning)]",error:"text-[var(--inkblot-semantic-color-status-error)]"};function te({className:e}){return(0,P.jsx)("svg",{viewBox:"0 0 16 16",className:o("h-4 w-4",e),"aria-hidden":!0,children:(0,P.jsx)("path",{fill:"currentColor",d:"M6 4l4 4-4 4V4z"})})}function dt({items:e,className:t}){return(0,P.jsx)(l,{className:t,children:(0,P.jsx)("ul",{className:o("flex flex-col gap-4 py-2"),children:e.map((r,n)=>(0,P.jsxs)("li",{className:"flex items-center justify-between gap-4",children:[(0,P.jsx)("span",{className:"text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:r.label}),(0,P.jsx)("span",{className:o("flex items-center gap-1 text-sm font-medium",Yt[r.variant??"default"]),children:r.value!=null?r.value:(0,P.jsx)(te,{})})]},n))})})}var Lt=require("react/jsx-runtime");function B({className:e,...t}){return(0,Lt.jsx)("div",{className:o("animate-shimmer rounded-[var(--inkblot-radius-md)] bg-[length:200%_100%] bg-[linear-gradient(90deg,var(--inkblot-semantic-color-background-secondary)_0%,var(--inkblot-semantic-color-background-tertiary)_50%,var(--inkblot-semantic-color-background-secondary)_100%)]",e),...t})}var F=require("react/jsx-runtime");function O({className:e,...t}){return(0,F.jsxs)("div",{className:o("flex flex-col gap-2 rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-4",e),...t,children:[(0,F.jsx)(B,{className:"h-5 w-3/4"}),(0,F.jsx)(B,{className:"h-4 w-full"}),(0,F.jsx)(B,{className:"h-4 w-5/6"}),(0,F.jsx)(B,{className:"h-4 w-4/5"}),(0,F.jsx)(B,{className:"h-4 w-3/4"})]})}var V=require("react/jsx-runtime");function J({children:e,loading:t=!1,title:r,className:n,onRetry:i}){return(0,V.jsx)(l,{className:n,onRetry:i,children:t?(0,V.jsxs)("div",{className:o("flex flex-col gap-4",n),children:[r?(0,V.jsx)("h2",{className:"text-lg font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:r}):null,(0,V.jsx)(O,{})]}):(0,V.jsxs)("div",{className:o("flex flex-col gap-4",n),children:[r?(0,V.jsx)("h2",{className:"text-lg font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:r}):null,e]})})}var At=require("react-router-dom");var G=require("react/jsx-runtime");function Q({resetErrorBoundary:e}){return(0,G.jsxs)("div",{role:"alert",className:o("flex min-h-[50vh] flex-col items-center justify-center gap-[var(--inkblot-spacing-6)] px-[var(--inkblot-spacing-6)] py-[var(--inkblot-spacing-8)]","bg-[var(--inkblot-semantic-color-background-primary)]","[font:var(--inkblot-semantic-typography-body-small)]"),children:[(0,G.jsx)("p",{className:"text-center text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-heading-medium)]",children:"Esta p\xE1gina no est\xE1 disponible"}),(0,G.jsxs)("div",{className:"flex flex-col items-center gap-[var(--inkblot-spacing-4)] sm:flex-row",children:[(0,G.jsx)("button",{type:"button",onClick:e,className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center rounded-[var(--inkblot-radius-lg)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]","hover:bg-[var(--inkblot-semantic-color-interactive-primary-hover)] active:bg-[var(--inkblot-semantic-color-interactive-primary-active)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]","transition-colors duration-[var(--inkblot-duration-fast)]"),children:"Reintentar"}),(0,G.jsx)(At.Link,{to:"/",className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center rounded-[var(--inkblot-radius-lg)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","text-[var(--inkblot-semantic-color-interactive-primary)] underline-offset-4 hover:underline","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]","transition-colors duration-[var(--inkblot-duration-fast)]"),children:"Ir al inicio"})]})]})}var Tt=require("react-error-boundary"),Dt=require("react-router-dom");var Ft=require("react/jsx-runtime");function mt({children:e,fallback:t}){let r=(0,Dt.useNavigate)();return(0,Ft.jsx)(Tt.ErrorBoundary,{FallbackComponent:t??Q,onReset:()=>{r("/")},children:e})}var H=require("react/jsx-runtime");function pt({items:e,className:t}){return(0,H.jsx)(l,{className:t,children:(0,H.jsx)("nav",{className:o("flex w-14 flex-col items-center gap-1 border-r border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] py-4"),"aria-label":"Navigation",children:e.map(r=>(0,H.jsxs)("div",{className:o("relative flex w-full flex-col items-center gap-1 rounded-[var(--inkblot-radius-md)] px-2 py-2 transition-colors hover:text-[var(--inkblot-semantic-color-text-secondary)]",r.active?"text-[var(--inkblot-semantic-color-interactive-primary)]":"text-[var(--inkblot-semantic-color-text-tertiary)]"),children:[r.active?(0,H.jsx)("span",{className:"absolute left-0 top-1/2 h-6 w-0.5 -translate-y-1/2 rounded-r-full bg-[var(--inkblot-semantic-color-interactive-primary)]","aria-hidden":!0}):null,(0,H.jsx)("div",{className:"flex h-8 w-8 items-center justify-center [&>svg]:h-5 [&>svg]:w-5",children:r.icon}),r.label?(0,H.jsx)("span",{className:"text-[10px] font-medium",children:r.label}):null]},r.id))})})}var v=require("lucide-react");var u=require("react/jsx-runtime");function ee(e){return e>=.8?"bg-[var(--inkblot-semantic-color-status-success)]":e>=.5?"bg-[var(--inkblot-semantic-color-status-info)]":e>=.2?"bg-[var(--inkblot-semantic-color-status-warning)]":"bg-[var(--inkblot-semantic-color-status-error)]"}var re={EMAIL_OPENED:v.Mail,EMAIL_SENT:v.Mail,INVOICE_PAID:v.FileText,INVOICE_OVERDUE:v.FileText,CONTRACT_SIGNED:v.FileText,STAGE_CHANGED:v.Zap,CALL_COMPLETED:v.Phone,PHONE_CALL:v.Phone,RELATIONSHIP_DETECTED:v.Link2};function oe(e){return re[e]??v.FileText}function ae(e){return e.metadata?.description??e.event_type.replace(/_/g," ").toLowerCase()}function ne(e){return e.metadata?.details??`${e.actor} - ${e.subject}`}function X({events:e,onEntitySelect:t,findEntity:r,emptyMessage:n="No hay actividad reciente",className:i}){let s=t?a=>{let k=r?.(a.subject)??r?.(a.actor);k&&t(k)}:void 0;return(0,u.jsx)(l,{children:(0,u.jsx)("div",{className:o("space-y-2",i),children:e.length===0?(0,u.jsx)("p",{className:"py-6 text-center text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:n}):e.map(a=>{let b=!!(r?.(a.subject)??r?.(a.actor))&&!!s,I=oe(a.event_type),A=(0,u.jsxs)("div",{className:"flex flex-1 items-center gap-3",children:[(0,u.jsx)(I,{className:"h-4 w-4 shrink-0 text-[var(--inkblot-semantic-color-text-secondary)]","aria-hidden":!0}),(0,u.jsx)("div",{className:`h-2 w-2 shrink-0 rounded-full ${ee(a.confidence_score)}`,"aria-hidden":!0}),(0,u.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,u.jsx)("p",{className:"text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:ae(a)}),(0,u.jsx)("p",{className:"text-xs text-[var(--inkblot-semantic-color-text-secondary)]",children:ne(a)})]}),(0,u.jsx)("span",{className:"shrink-0 text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:a.timestamp})]}),E=a.id??`${a.actor}-${a.subject}-${a.timestamp}`;return(0,u.jsx)("div",{children:b?(0,u.jsx)("button",{type:"button",onClick:()=>s(a),className:"flex w-full items-center gap-3 rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-background-secondary)] p-3 text-left transition-colors duration-[var(--inkblot-duration-fast)] hover:bg-[var(--inkblot-semantic-color-background-tertiary)] focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]",children:A}):(0,u.jsx)("div",{className:"flex w-full items-center gap-3 rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-background-secondary)] p-3",children:A})},E)})})})}var Vt=require("react-router-dom"),y=require("lucide-react");var w=require("react/jsx-runtime"),ie=[{id:"home",path:"/",icon:y.ClipboardList,label:"Home"},{id:"intelligence",path:"/intelligence",icon:y.Brain,label:"Intelligence"},{id:"pipeline",path:"/pipeline",icon:y.BarChart3,label:"Pipeline"},{id:"graph",path:"/graph",icon:y.Network,label:"Graph"},{id:"events",path:"/events",icon:y.Activity,label:"Events"},{id:"settings",path:"/settings",icon:y.Settings,label:"Settings"}];function ut({items:e=ie,brandLogo:t,brandTitle:r="Command Canvas \u2014 AI-native Interface",className:n}){return(0,w.jsx)(l,{children:(0,w.jsxs)("nav",{className:o("flex h-full flex-col gap-4 bg-[var(--inkblot-semantic-color-background-secondary)] p-3",n),children:[(0,w.jsx)("div",{className:"flex flex-col items-center gap-2",children:(0,w.jsx)("div",{className:"flex h-10 w-10 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-interactive-primary)]",title:r,children:t??(0,w.jsx)(y.Sparkles,{className:"h-5 w-5 text-[var(--inkblot-semantic-color-text-primary)]","aria-hidden":!0})})}),(0,w.jsx)("div",{className:"flex flex-1 flex-col gap-2",children:e.map(i=>{let s=i.icon;return(0,w.jsx)(Vt.NavLink,{to:i.path,end:i.path==="/","aria-label":i.label,className:({isActive:a})=>`flex items-center justify-center gap-2 rounded-[var(--inkblot-radius-md)] border-l-2 px-3 py-2 transition-colors duration-[var(--inkblot-duration-fast)] ${a?"border-[var(--inkblot-semantic-color-interactive-primary)] bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-primary)]":"border-transparent text-[var(--inkblot-semantic-color-text-secondary)] hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)]"}`,children:(0,w.jsx)(s,{size:20,"aria-hidden":!0})},i.id)})})]})})}var h=require("react");var c=require("react/jsx-runtime");function se(e){let t=e.toLowerCase();return t.includes("entity")||t.includes("company")||t.includes("person")||t.includes("deal")||t.includes("profile")||t.includes("org")?"entity":t.includes("event")||t.includes("activity")||t.includes("recent")||t.includes("stream")||t.includes("log")?"event":"general"}function le({entities:e}){let t=e[0];return t?(0,c.jsxs)("div",{className:"space-y-3",children:[(0,c.jsx)("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:"Here's the entity profile and current intelligence scores:"}),(0,c.jsx)($,{name:t.name,entityType:t.type,metadata:t.metadata,edges:[{type:"WORKS_WITH",target:e[1]?.name},{type:"MANAGES",target:e[4]?.name}]})]}):null}function ce({events:e}){return(0,c.jsxs)("div",{className:"space-y-2",children:[(0,c.jsx)("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:"Latest activity from the event bus:"}),e.slice(0,5).map(t=>(0,c.jsx)(Z,{event:t},t.id??`${t.actor}-${t.subject}-${t.timestamp}`))]})}function de(){return(0,c.jsx)("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-primary)]",children:"Revenue confidence is trending upward at 78%. Momentum score increased 12% this week driven by 3 new meetings with Acme Corp. Churn risk remains low at 15% across the active pipeline."})}function vt({entities:e,events:t,onFocusEntity:r,findEntity:n,placeholder:i="Ask anything \u2014 deals, contacts, forecasts...",emptyMessage:s="Escribe para comenzar...",className:a}){let[k,b]=(0,h.useState)(""),[I,A]=(0,h.useState)([]),[E,Y]=(0,h.useState)(!1),[rt,C]=(0,h.useState)(new Map),T=(0,h.useRef)(null);(0,h.useEffect)(()=>{T.current&&(T.current.scrollTop=T.current.scrollHeight)},[I,E]);let _t=(0,h.useCallback)(()=>{let S=k.trim();if(!S||E)return;let xt=n?.(S);xt&&r&&r(xt);let Ot={id:`msg-${Date.now()}`,role:"user",content:S,timestamp:new Date().toISOString()},kt=se(S);A(tt=>[...tt,Ot]),b(""),Y(!0),setTimeout(()=>{let tt={id:`msg-${Date.now()}-res`,role:"assistant",content:"",intent:kt,timestamp:new Date().toISOString()},et;switch(kt){case"entity":et=(0,c.jsx)(le,{entities:e});break;case"event":et=(0,c.jsx)(ce,{events:t});break;default:et=(0,c.jsx)(de,{})}C(ot=>{let ht=new Map(ot);return ht.set(tt.id,et),ht}),A(ot=>[...ot,tt]),Y(!1)},1e3)},[k,E,e,t,r,n]);return(0,c.jsxs)("div",{className:o("flex h-full flex-col",a),children:[(0,c.jsxs)("div",{ref:T,className:"flex-1 space-y-4 overflow-y-auto p-4",children:[I.length===0&&!E?(0,c.jsx)("div",{className:"flex flex-1 items-center justify-center py-12",children:(0,c.jsx)("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:s})}):I.map(S=>(0,c.jsx)("div",{className:"flex flex-col gap-2",children:S.role==="user"?(0,c.jsx)("div",{className:"flex justify-end",children:(0,c.jsx)("div",{className:"max-w-[80%] rounded-[var(--inkblot-radius-lg)] bg-[var(--inkblot-semantic-color-interactive-primary)] px-4 py-3 text-sm text-[var(--inkblot-semantic-color-text-primary)]",children:S.content})}):(0,c.jsx)("div",{className:"max-w-[90%]",children:rt.get(S.id)??(0,c.jsx)("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-primary)]",children:S.content})})},S.id)),E&&(0,c.jsx)("div",{className:"max-w-[70%]",children:(0,c.jsx)(O,{className:"animate-shimmer"})})]}),(0,c.jsx)("div",{className:"shrink-0 border-t border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)] p-4",children:(0,c.jsx)(_,{promptValue:k,onPromptChange:b,onPromptSubmit:_t,isProcessing:E,placeholder:i})})]})}var Ht=require("lucide-react");var L=require("react/jsx-runtime");function bt({prompt:e,onPromptChange:t,onSubmit:r,isProcessing:n,placeholder:i="Ask anything \u2014 deals, contacts, forecasts...",subtitle:s="Citron OS v1.0 \u2014 AI-native Revenue & Operations Platform",className:a}){return(0,L.jsxs)("div",{className:o("border-t border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-4",a),children:[(0,L.jsxs)("div",{className:"flex items-center gap-3",children:[(0,L.jsx)("div",{className:"flex h-10 w-10 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-interactive-primary)]",children:(0,L.jsx)(Ht.Sparkles,{className:"h-5 w-5 text-[var(--inkblot-semantic-color-text-primary)]","aria-hidden":!0})}),(0,L.jsx)("div",{className:"flex-1",children:(0,L.jsx)(_,{promptValue:e,onPromptChange:t,onPromptSubmit:r,isProcessing:n,placeholder:i})})]}),s&&(0,L.jsx)("p",{className:"mt-2 text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:s})]})}var N=require("react/jsx-runtime");function ft({events:e,title:t="Event Stream",showLive:r=!0,className:n}){return(0,N.jsx)(l,{children:(0,N.jsxs)("div",{className:o("flex h-full flex-col bg-[var(--inkblot-semantic-color-background-secondary)]",n),children:[(0,N.jsxs)("div",{className:"flex shrink-0 items-center justify-between border-b border-[var(--inkblot-semantic-color-border-default)] px-4 py-3",children:[(0,N.jsx)("span",{className:"text-xs font-medium uppercase tracking-wider text-[var(--inkblot-semantic-color-text-secondary)]",children:t}),r&&(0,N.jsxs)("div",{className:"flex items-center gap-2",children:[(0,N.jsx)("div",{className:"h-2 w-2 rounded-full bg-[var(--inkblot-semantic-color-status-success)]"}),(0,N.jsx)("span",{className:"text-xs text-[var(--inkblot-semantic-color-status-success)]",children:"Live"})]})]}),(0,N.jsx)("div",{className:"flex-1 overflow-auto p-4",children:(0,N.jsx)(X,{events:e})})]})})}var d=require("react/jsx-runtime"),me=[{label:"Pipeline Health",value:76},{label:"Churn Risk",value:28},{label:"Expansion Signal",value:64},{label:"Team Velocity",value:83}],pe=[{title:"Acme Corp likely to close within 14 days",description:"Based on email sentiment, meeting cadence, and champion engagement patterns.",confidence:89},{title:"Churn risk detected: GlobalTech Inc",description:"Declining touchpoints and support ticket volume suggest potential churn.",confidence:74},{title:"Expansion opportunity: TechVentures",description:"Usage patterns and NPS scores indicate readiness for upsell conversation.",confidence:81}];function gt({loading:e,kpiCards:t=me,aiInsights:r=pe,title:n="Intelligence Lab",subtitle:i="AI-generated insights - Updated 3 min ago",className:s}){return(0,d.jsxs)("div",{className:o("flex h-full flex-col gap-4 overflow-y-auto p-4",s),children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h1",{className:"text-2xl font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:n}),(0,d.jsx)("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:i})]}),(0,d.jsx)(J,{loading:e,title:"",children:(0,d.jsx)(l,{children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsx)("div",{className:"grid grid-cols-2 gap-4 lg:grid-cols-4",children:t.map(a=>(0,d.jsx)(q,{label:a.label,value:a.value,subtext:a.subtext,trend:a.trend},a.label))}),(0,d.jsxs)("div",{children:[(0,d.jsx)("h2",{className:"mb-4 border-b border-[var(--inkblot-semantic-color-border-default)] pb-2 text-sm font-bold uppercase tracking-wider text-[var(--inkblot-semantic-color-text-primary)]",children:"AI Insights"}),(0,d.jsx)("div",{className:"flex flex-col gap-4",children:r.map(a=>(0,d.jsx)(l,{children:(0,d.jsxs)("div",{className:"flex items-start justify-between gap-4 rounded-[var(--inkblot-radius-lg)] bg-[var(--inkblot-semantic-color-background-secondary)] p-4",children:[(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("h3",{className:"font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:a.title}),(0,d.jsx)("p",{className:"mt-1 text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:a.description})]}),(0,d.jsxs)("div",{className:"flex shrink-0 flex-col items-center",children:[(0,d.jsx)("span",{className:"text-lg font-bold text-[var(--inkblot-semantic-color-text-primary)]",children:a.confidence}),(0,d.jsx)("span",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:"Conf."})]})]})},a.title))})]})]})})})]})}var M=require("react/jsx-runtime");function yt({navigation:e,eventStream:t,commandBar:r,children:n,className:i,eventStreamWidth:s="w-80"}){return(0,M.jsxs)("div",{className:o("flex h-screen w-screen overflow-hidden bg-[var(--inkblot-semantic-color-background-primary)]",i),children:[(0,M.jsx)("aside",{className:"flex h-full w-16 shrink-0 flex-col border-r border-[var(--inkblot-semantic-color-border-default)]",children:e}),(0,M.jsx)("main",{className:"flex flex-1 flex-col overflow-hidden",children:(0,M.jsxs)("div",{className:"flex min-h-0 flex-1",children:[(0,M.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col overflow-hidden bg-[var(--inkblot-semantic-color-background-primary)]",children:[(0,M.jsx)("div",{className:"flex-1 overflow-auto",children:n}),(0,M.jsx)("div",{className:"shrink-0",children:r})]}),t&&(0,M.jsx)("aside",{className:o("flex h-full shrink-0 flex-col border-l border-[var(--inkblot-semantic-color-border-default)]",s),children:t})]})})]})}0&&(module.exports={ActivityStream,AppNavigationRail,Button,ChatFeed,CommandBar,CommandInterface,EntityCard,EntityCommandCard,ErrorBoundary,EventRow,EventStreamFeed,EventStreamSidebar,Input,IntelligenceLab,IntelligenceScoreCard,MainShell,MetricComparisonList,ModuleContainer,ModuleErrorBoundary,ModuleSkeleton,OSNavigationRail,PageErrorFallback,RouteWithErrorBoundary,Skeleton,StatusBadge});
1
+ "use strict";var Yt=Object.defineProperty;var je=Object.getOwnPropertyDescriptor;var qe=Object.getOwnPropertyNames;var Qe=Object.prototype.hasOwnProperty;var Ye=(t,e)=>{for(var a in e)Yt(t,a,{get:e[a],enumerable:!0})},Ze=(t,e,a,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of qe(e))!Qe.call(t,n)&&n!==a&&Yt(t,n,{get:()=>e[n],enumerable:!(o=je(e,n))||o.enumerable});return t};var Xe=t=>Ze(Yt({},"__esModule",{value:!0}),t);var Rr={};Ye(Rr,{AIComposeInput:()=>kt,ActionButtons:()=>Ut,ActivityStream:()=>Gt,AppNavigationRail:()=>se,Button:()=>xt,CampaignTable:()=>Et,ChatFeed:()=>le,CommandBar:()=>ce,CommandInterface:()=>mt,EmailCampaignsView:()=>ue,EmailComposeActionButtons:()=>Pt,EmailTemplatesSection:()=>It,EntityCard:()=>Mt,EntityCommandCard:()=>Zt,ErrorBoundary:()=>Rt,EventRow:()=>At,EventStreamFeed:()=>Jt,EventStreamSidebar:()=>me,Input:()=>ht,IntelligenceLab:()=>de,IntelligenceScoreCard:()=>Lt,MainShell:()=>pe,MetricComparisonList:()=>re,ModuleContainer:()=>Dt,ModuleErrorBoundary:()=>d,ModuleSkeleton:()=>dt,OSNavigationRail:()=>ne,PageErrorFallback:()=>Vt,PageHeader:()=>pt,PageHeaderActionButton:()=>bt,RouteWithErrorBoundary:()=>ae,SearchBar:()=>Z,Skeleton:()=>Y,StatCardGrid:()=>oe,StatCards:()=>Ht,StatCardsWithChart:()=>ie,StatusBadge:()=>Bt,TabSystem:()=>Wt,TaskCreateForm:()=>zt,TaskItem:()=>Ot,TaskList:()=>_t,TasksView:()=>be,TemplateCard:()=>Tt});module.exports=Xe(Rr);var Kt=require("lucide-react");var ve=require("clsx"),ge=require("tailwind-merge");function r(...t){return(0,ge.twMerge)((0,ve.clsx)(t))}var ct=require("react/jsx-runtime"),Je={primary:["bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]","hover:bg-[var(--inkblot-semantic-color-interactive-primary-hover)] active:bg-[var(--inkblot-semantic-color-interactive-primary-active)]"],secondary:["bg-[var(--inkblot-semantic-color-interactive-secondary)] text-[var(--inkblot-semantic-color-text-primary)]","border border-[var(--inkblot-semantic-color-border-default)]","hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] hover:border-[var(--inkblot-semantic-color-border-strong)]","active:bg-[var(--inkblot-semantic-color-background-tertiary)]"]};function Ut({buttons:t,className:e}){return(0,ct.jsx)("div",{className:r("flex flex-wrap items-center gap-[var(--inkblot-spacing-3)]",e),children:t.map(a=>(0,ct.jsxs)("button",{type:"button",onClick:()=>{a.onClick?.()},disabled:a.disabled,className:r("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center gap-2 rounded-[var(--inkblot-radius-lg)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","[font:var(--inkblot-semantic-typography-body-medium)] font-medium","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]","transition-colors duration-[var(--inkblot-duration-fast)]","disabled:opacity-[var(--inkblot-opacity-disabled)] disabled:pointer-events-none disabled:cursor-not-allowed",Je[a.variant]),children:[a.icon??null,a.label]},a.id))})}function Pt({onSendNow:t,onSchedule:e,onSaveDraft:a,className:o}){return(0,ct.jsx)(Ut,{buttons:[{id:"send",label:"Send Now",variant:"primary",icon:(0,ct.jsx)(Kt.Send,{className:"h-4 w-4"}),onClick:t},{id:"schedule",label:"Schedule",variant:"secondary",icon:(0,ct.jsx)(Kt.Calendar,{className:"h-4 w-4"}),onClick:e},{id:"draft",label:"Save Draft",variant:"secondary",onClick:a}],className:o})}var fe=require("react"),jt=require("lucide-react");var V=require("react/jsx-runtime"),kt=(0,fe.forwardRef)(({label:t,loading:e=!1,onWriteWithAI:a,disabled:o,className:n,...s},i)=>{let l=o||e;return(0,V.jsxs)("div",{className:r("flex flex-col gap-[var(--inkblot-spacing-2)]",n),children:[(0,V.jsxs)("div",{className:"flex items-center justify-between",children:[t?(0,V.jsx)("label",{htmlFor:s.id,className:r("uppercase tracking-wider","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:t}):(0,V.jsx)("span",{}),a?(0,V.jsxs)("button",{type:"button",onClick:a,disabled:e,className:r("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center gap-2 rounded-[var(--inkblot-radius-lg)]","border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-interactive-secondary)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","[font:var(--inkblot-semantic-typography-body-medium)] font-medium","text-[var(--inkblot-semantic-color-text-primary)]","hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] hover:border-[var(--inkblot-semantic-color-border-strong)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]","transition-colors duration-[var(--inkblot-duration-fast)]","disabled:opacity-[var(--inkblot-opacity-disabled)] disabled:cursor-not-allowed disabled:pointer-events-none"),children:[e?(0,V.jsx)(jt.Loader2,{className:"h-4 w-4 shrink-0 animate-spin"}):(0,V.jsx)(jt.Sparkles,{className:"h-4 w-4 shrink-0",style:{color:"var(--inkblot-semantic-color-status-warning)"}}),e?"Generating...":"Write with AI"]}):null]}),(0,V.jsx)("div",{className:"relative",children:(0,V.jsx)("textarea",{ref:i,disabled:l,className:r("min-h-[12rem] w-full rounded-[var(--inkblot-radius-lg)]","border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-secondary)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]","[font:var(--inkblot-semantic-typography-body-medium)]","text-[var(--inkblot-semantic-color-text-primary)] placeholder:text-[var(--inkblot-semantic-color-text-tertiary)]","transition-colors duration-[var(--inkblot-duration-fast)]","hover:border-[var(--inkblot-semantic-color-border-strong)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]","disabled:opacity-[var(--inkblot-opacity-disabled)] disabled:cursor-not-allowed disabled:pointer-events-none"),...s})})]})});kt.displayName="AIComposeInput";var ye=require("react");var ke=require("react/jsx-runtime"),tr={primary:"bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-primary)] hover:bg-[var(--inkblot-semantic-color-interactive-primary-hover)] active:bg-[var(--inkblot-semantic-color-interactive-primary-active)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--inkblot-semantic-color-border-focus)] focus-visible:outline-offset-2 disabled:opacity-[var(--inkblot-opacity-disabled)] disabled:pointer-events-none disabled:cursor-not-allowed",secondary:"bg-[var(--inkblot-semantic-color-interactive-secondary)] text-[var(--inkblot-semantic-color-text-primary)] border border-[var(--inkblot-semantic-color-border-default)] hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] hover:border-[var(--inkblot-semantic-color-border-strong)] active:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--inkblot-semantic-color-border-focus)] focus-visible:outline-offset-2 disabled:opacity-[var(--inkblot-opacity-disabled)] disabled:pointer-events-none disabled:cursor-not-allowed"},xt=(0,ye.forwardRef)(({className:t,variant:e="primary",disabled:a,...o},n)=>(0,ke.jsx)("button",{ref:n,disabled:a,className:r("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center rounded-[var(--inkblot-radius-lg)] px-4 py-2 font-semibold transition-[background,border-color] duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)]",tr[e],t),...o}));xt.displayName="Button";var tt=require("lucide-react");var f=require("react/jsx-runtime"),er={sent:{icon:tt.CheckCircle,label:"Sent",colorClass:"text-[var(--inkblot-semantic-color-status-success)]"},active:{icon:tt.Zap,label:"Active",colorClass:"text-[var(--inkblot-semantic-color-status-warning)]"},draft:{icon:tt.FileText,label:"Draft",colorClass:"text-[var(--inkblot-semantic-color-text-secondary)]"},scheduled:{icon:tt.Clock,label:"Scheduled",colorClass:"text-[var(--inkblot-semantic-color-status-info)]"}};function Et({columns:t,rows:e,className:a}){return(0,f.jsx)("div",{className:r("overflow-x-auto rounded-[var(--inkblot-radius-lg)]","border border-[var(--inkblot-semantic-color-border-subtle)]","bg-[var(--inkblot-semantic-color-background-primary)]",a),children:(0,f.jsxs)("table",{className:"w-full min-w-[600px] border-collapse",children:[(0,f.jsx)("thead",{children:(0,f.jsx)("tr",{className:"bg-[var(--inkblot-semantic-color-background-secondary)]",children:t.map(o=>(0,f.jsx)("th",{className:r("px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)] text-left","uppercase tracking-wider","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]","border-b border-[var(--inkblot-semantic-color-border-subtle)]"),children:o.label},o.key))})}),(0,f.jsx)("tbody",{children:e.map(o=>(0,f.jsxs)("tr",{className:r("border-b border-[var(--inkblot-semantic-color-border-subtle)] last:border-b-0","transition-colors duration-[var(--inkblot-duration-fast)]","hover:bg-[var(--inkblot-semantic-color-background-secondary)]/50"),children:[(0,f.jsx)("td",{className:r("px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]","border-b border-[var(--inkblot-semantic-color-border-subtle)]"),children:(0,f.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,f.jsx)("span",{className:r("[font:var(--inkblot-semantic-typography-body-large-bold)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:o.campaignName}),(0,f.jsx)("span",{className:r("[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]"),children:o.recipients})]})}),(0,f.jsx)("td",{className:r("px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]","border-b border-[var(--inkblot-semantic-color-border-subtle)]"),children:(0,f.jsx)(rr,{status:o.status,subtext:o.statusSubtext})}),(0,f.jsx)("td",{className:r("px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]","[font:var(--inkblot-semantic-typography-body-medium)]","text-[var(--inkblot-semantic-color-text-primary)]","border-b border-[var(--inkblot-semantic-color-border-subtle)]"),children:o.opens}),(0,f.jsx)("td",{className:r("px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]","[font:var(--inkblot-semantic-typography-body-medium)]","text-[var(--inkblot-semantic-color-text-primary)]","border-b border-[var(--inkblot-semantic-color-border-subtle)]"),children:o.clicks}),(0,f.jsx)("td",{className:r("px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]","[font:var(--inkblot-semantic-typography-body-medium)]","text-[var(--inkblot-semantic-color-text-primary)]","border-b border-[var(--inkblot-semantic-color-border-subtle)]"),children:o.date})]},o.id))})]})})}function rr({status:t,subtext:e}){let a=er[t],o=a.icon;return(0,f.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,f.jsxs)("div",{className:r("inline-flex items-center gap-1.5","[font:var(--inkblot-semantic-typography-body-small)] font-medium",a.colorClass),children:[(0,f.jsx)(o,{className:"h-4 w-4 shrink-0"}),a.label]}),e?(0,f.jsx)("span",{className:r("[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]"),children:e}):null]})}var he=require("lucide-react");var xe=require("lucide-react");var j=require("react/jsx-runtime");function Tt({category:t,title:e,uses:a,onClick:o,className:n}){return(0,j.jsxs)("button",{type:"button",onClick:o,className:r("flex flex-col gap-[var(--inkblot-spacing-4)] rounded-[var(--inkblot-radius-lg)]","bg-[var(--inkblot-semantic-color-background-secondary)]","border border-[var(--inkblot-semantic-color-border-subtle)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-5)]","text-left transition-colors duration-[var(--inkblot-duration-fast)]","hover:border-[var(--inkblot-semantic-color-border-default)] hover:bg-[var(--inkblot-semantic-color-background-tertiary)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]",n),children:[(0,j.jsxs)("div",{className:"flex items-start justify-between gap-2",children:[(0,j.jsx)("span",{className:r("rounded-[var(--inkblot-radius-md)] px-[var(--inkblot-spacing-2)] py-[var(--inkblot-spacing-1)]","bg-[var(--inkblot-semantic-color-background-tertiary)]","[font:var(--inkblot-semantic-typography-body-small)] font-medium","text-[var(--inkblot-semantic-color-text-primary)]"),children:t}),(0,j.jsx)("span",{className:r("[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]"),children:a})]}),(0,j.jsx)("h3",{className:r("[font:var(--inkblot-semantic-typography-body-large-bold)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:e}),(0,j.jsx)("div",{className:"flex flex-1 items-end justify-center pt-[var(--inkblot-spacing-4)]",children:(0,j.jsx)(xe.File,{className:r("h-10 w-10","text-[var(--inkblot-semantic-color-text-tertiary)]")})})]})}var q=require("react/jsx-runtime");function It({title:t="EMAIL TEMPLATES",onGenerateWithAI:e,templates:a,onTemplateClick:o,className:n}){return(0,q.jsxs)("section",{className:r("flex flex-col gap-[var(--inkblot-spacing-6)]",n),children:[(0,q.jsxs)("div",{className:"flex flex-col gap-[var(--inkblot-spacing-4)] sm:flex-row sm:items-center sm:justify-between",children:[(0,q.jsx)("h2",{className:r("uppercase tracking-wider","[font:var(--inkblot-semantic-typography-body-medium)]","text-[var(--inkblot-semantic-color-text-secondary)]"),children:t}),e?(0,q.jsxs)("button",{type:"button",onClick:e,className:r("inline-flex min-h-[var(--inkblot-size-touch-target-min)] w-fit items-center justify-center gap-2 rounded-[var(--inkblot-radius-lg)]","border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-interactive-secondary)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","[font:var(--inkblot-semantic-typography-body-medium)] font-medium","text-[var(--inkblot-semantic-color-text-primary)]","hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] hover:border-[var(--inkblot-semantic-color-border-strong)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]","transition-colors duration-[var(--inkblot-duration-fast)]"),children:[(0,q.jsx)(he.Sparkles,{className:"h-4 w-4 shrink-0",style:{color:"var(--inkblot-semantic-color-status-warning)"}}),"Generate with AI"]}):null]}),(0,q.jsx)("div",{className:"grid grid-cols-1 gap-[var(--inkblot-spacing-6)] sm:grid-cols-2",children:a.map(s=>(0,q.jsx)(Tt,{category:s.category,title:s.title,uses:s.uses,onClick:()=>o?.(s)},s.id))})]})}var Ne=require("react"),et=require("lucide-react");var h=require("react/jsx-runtime");function mt({promptValue:t="",onPromptChange:e,onPromptSubmit:a,onFilesAttach:o,isProcessing:n=!1,response:s,placeholder:i="Ask Citron Intelligence...",accept:l,multiple:c=!0,className:b}){let m=(0,Ne.useRef)(null),v=S=>{S.key==="Enter"&&!S.shiftKey&&(S.preventDefault(),a?.())},J=()=>{m.current?.click()},st=S=>{let B=S.target.files;B&&B.length>0&&o&&o(Array.from(B)),S.target.value=""};return(0,h.jsxs)("div",{className:r("flex w-full max-w-[80rem] flex-col gap-[var(--inkblot-spacing-2)]",b),children:[(0,h.jsxs)("div",{className:r("flex items-center gap-[var(--inkblot-spacing-2)]",n&&"pointer-events-none"),children:[(0,h.jsx)("input",{ref:m,type:"file",accept:l,multiple:c,onChange:st,className:"sr-only","aria-hidden":!0}),(0,h.jsx)("button",{type:"button",onClick:J,disabled:n,className:r("flex h-9 w-9 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-full)] text-[var(--inkblot-semantic-color-text-tertiary)] transition-colors duration-[var(--inkblot-duration-fast)]","hover:bg-[var(--inkblot-semantic-color-background-tertiary)] hover:text-[var(--inkblot-semantic-color-text-secondary)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]","disabled:pointer-events-none disabled:opacity-[var(--inkblot-opacity-disabled)]"),"aria-label":"Adjuntar archivos",children:(0,h.jsx)(et.Paperclip,{size:20,strokeWidth:1.5,className:"text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0})}),(0,h.jsxs)("div",{className:r("relative flex min-w-0 flex-1 items-center gap-[var(--inkblot-spacing-2)] rounded-[var(--inkblot-radius-full)] bg-[var(--inkblot-semantic-color-background-primary)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)] shadow-[var(--inkblot-shadow-sm)]","transition-shadow duration-[var(--inkblot-duration-fast)]"),"aria-busy":n,children:[(0,h.jsx)("div",{className:"flex shrink-0 items-center opacity-[var(--inkblot-opacity-subtle)]","aria-hidden":!0,children:(0,h.jsx)(et.Sparkles,{size:20,strokeWidth:1.5,className:"text-[var(--inkblot-semantic-color-text-tertiary)]"})}),(0,h.jsx)("textarea",{value:t,onChange:S=>e?.(S.target.value),onKeyDown:v,placeholder:i,rows:2,disabled:n,className:r("min-h-[2.5rem] min-w-0 flex-1 resize-none border-0 bg-transparent py-0 pr-[var(--inkblot-spacing-12)] [font:var(--inkblot-semantic-typography-body-small)] text-[var(--inkblot-semantic-color-text-primary)] placeholder:text-[var(--inkblot-semantic-color-text-tertiary)]","focus:outline-none focus:ring-0","disabled:cursor-not-allowed disabled:opacity-[var(--inkblot-opacity-disabled)]")}),(0,h.jsx)("div",{className:r("absolute right-[var(--inkblot-spacing-2)] top-[var(--inkblot-spacing-2)] flex h-8 w-8 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-full)] text-[var(--inkblot-semantic-color-text-inverse)]",n?"pointer-events-none bg-[var(--inkblot-semantic-color-interactive-primary)] opacity-90":""),children:n?(0,h.jsx)(et.Loader2,{size:16,strokeWidth:2,className:"animate-spin text-[var(--inkblot-semantic-color-text-inverse)]","aria-hidden":!0}):(0,h.jsx)("button",{type:"button",onClick:a,disabled:n,className:r("flex h-full w-full items-center justify-center rounded-[var(--inkblot-radius-full)] transition-colors duration-[var(--inkblot-duration-fast)]","bg-[var(--inkblot-semantic-color-interactive-primary)] hover:bg-[var(--inkblot-semantic-color-interactive-primary-hover)] active:bg-[var(--inkblot-semantic-color-interactive-primary-active)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]"),"aria-label":"Enviar",children:(0,h.jsx)(et.Send,{size:16,strokeWidth:2,className:"text-[var(--inkblot-semantic-color-text-inverse)]","aria-hidden":!0})})})]})]}),s?(0,h.jsx)("div",{className:"flex flex-col gap-[var(--inkblot-spacing-4)]",children:(0,h.jsx)("div",{className:"min-w-0 [font:var(--inkblot-semantic-typography-body-small)] text-[var(--inkblot-semantic-color-text-primary)]",children:s})}):null]})}var E=require("react/jsx-runtime"),ar={Person:"border-l-[var(--inkblot-semantic-color-status-info)] bg-[var(--inkblot-semantic-color-background-secondary)]",Organization:"border-l-[var(--inkblot-semantic-color-status-warning)] bg-[var(--inkblot-semantic-color-background-secondary)]",Deal:"border-l-[var(--inkblot-semantic-color-status-success)] bg-[var(--inkblot-semantic-color-background-secondary)]"};function Mt({name:t,entityType:e,metadata:a,edges:o=[],className:n}){return(0,E.jsxs)("article",{className:r("flex flex-col gap-4 rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] border-l-4 p-4",ar[e],n),children:[(0,E.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,E.jsx)("span",{className:"text-xs font-medium uppercase tracking-wide text-[var(--inkblot-semantic-color-text-tertiary)]",children:e}),(0,E.jsx)("h3",{className:"text-base font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:t})]}),a&&Object.keys(a).length>0?(0,E.jsx)("dl",{className:"flex flex-col gap-1",children:Object.entries(a).map(([s,i])=>(0,E.jsxs)("div",{className:"flex gap-2",children:[(0,E.jsxs)("dt",{className:"text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:[s,":"]}),(0,E.jsx)("dd",{className:"text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:i})]},s))}):null,o.length>0?(0,E.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,E.jsx)("h4",{className:"text-sm font-medium text-[var(--inkblot-semantic-color-text-secondary)]",children:"Edges"}),(0,E.jsx)("ul",{className:"flex flex-wrap gap-2",children:o.map((s,i)=>(0,E.jsxs)("li",{className:"rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-tertiary)] px-2 py-1 text-xs text-[var(--inkblot-semantic-color-text-secondary)]",children:[s.type,s.target?` \u2192 ${s.target}`:""]},i))})]}):null]})}var Ce=require("react");var Se=require("react/jsx-runtime"),ht=(0,Ce.forwardRef)(({className:t,error:e,disabled:a,...o},n)=>(0,Se.jsx)("input",{ref:n,disabled:a,"aria-invalid":e,"aria-disabled":a,className:r("min-h-[var(--inkblot-size-touch-target-min)] w-full rounded-[var(--inkblot-radius-md)] border bg-[var(--inkblot-semantic-color-background-secondary)] px-4 py-2 text-[var(--inkblot-semantic-color-text-primary)] placeholder:text-[var(--inkblot-semantic-color-text-tertiary)] transition-[border-color,box-shadow] duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--inkblot-semantic-color-border-focus)] focus-visible:ring-offset-2 disabled:opacity-[var(--inkblot-opacity-disabled)] disabled:pointer-events-none disabled:cursor-not-allowed",e?"border-[var(--inkblot-semantic-color-status-error)] focus-visible:ring-[var(--inkblot-semantic-color-status-error)]":"border-[var(--inkblot-semantic-color-border-default)] hover:border-[var(--inkblot-semantic-color-border-strong)]",t),...o}));ht.displayName="Input";var we=require("react");var Nt=require("react/jsx-runtime"),d=class extends we.Component{constructor(e){super(e),this.state={hasError:!1,error:null}}static getDerivedStateFromError(e){return{hasError:!0,error:e}}render(){return this.state.hasError&&this.state.error?(0,Nt.jsxs)("div",{role:"alert",className:r("flex flex-col gap-4 rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-4",this.props.className),children:[(0,Nt.jsx)("p",{className:"text-base font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:"This module failed to load"}),(0,Nt.jsx)("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:this.state.error.message}),(0,Nt.jsx)(xt,{variant:"secondary",onClick:this.props.onRetry,className:"w-fit border-[var(--inkblot-semantic-color-status-error)]",children:"Retry"})]}):this.props.children}};var T=require("react/jsx-runtime");function Zt({title:t,insights:e,stats:a=[],commandValue:o="",onCommandChange:n,onCommandSubmit:s,className:i}){let l=c=>{c.key==="Enter"&&(c.preventDefault(),s?.())};return(0,T.jsx)(d,{className:i,children:(0,T.jsxs)("div",{className:"flex flex-col gap-4 rounded-[var(--inkblot-radius-xl)] bg-[var(--inkblot-semantic-color-background-secondary)] p-4",children:[(0,T.jsx)("h2",{className:"text-xl font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:t}),e?(0,T.jsx)("div",{className:"rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-interactive-primary)] p-4",style:{boxShadow:"0 0 12px var(--inkblot-semantic-color-interactive-primary)"},children:e}):null,a.length>0?(0,T.jsxs)("div",{children:[(0,T.jsx)("h3",{className:"mb-2 text-sm font-medium text-[var(--inkblot-semantic-color-text-secondary)]",children:"Connected To"}),(0,T.jsx)("div",{className:"grid grid-cols-2 gap-2 sm:grid-cols-3",children:a.map((c,b)=>(0,T.jsxs)("div",{className:"rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-background-tertiary)] px-3 py-2",children:[(0,T.jsx)("span",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:c.label}),(0,T.jsx)("p",{className:"text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:c.value})]},b))})]}):null,(0,T.jsx)("div",{className:"mt-2",children:(0,T.jsx)(ht,{type:"text",value:o,onChange:c=>n?.(c.target.value),onKeyDown:l,placeholder:"Ask about this entity...",className:"rounded-[var(--inkblot-radius-md)]"})})]})})}var Pe=require("react");var Xt=require("react/jsx-runtime"),Rt=class extends Pe.Component{constructor(e){super(e),this.state={hasError:!1,error:null}}static getDerivedStateFromError(e){return{hasError:!0,error:e}}render(){return this.state.hasError&&this.state.error?this.props.fallback?this.props.fallback:(0,Xt.jsx)("div",{className:r("inline-flex items-center gap-3 rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-tertiary)] px-4 py-3 text-[var(--inkblot-semantic-color-text-secondary)]",this.props.className),role:"alert",children:(0,Xt.jsx)("span",{className:"text-sm font-medium",children:"Something went wrong"})}):this.props.children}};var Ee=require("react/jsx-runtime"),or={success:"border-[var(--inkblot-semantic-color-status-success)] bg-[var(--inkblot-semantic-color-status-success)]/10 text-[var(--inkblot-semantic-color-status-success)]",warning:"border-[var(--inkblot-semantic-color-status-warning)] bg-[var(--inkblot-semantic-color-status-warning)]/10 text-[var(--inkblot-semantic-color-status-warning)]",error:"border-[var(--inkblot-semantic-color-status-error)] bg-[var(--inkblot-semantic-color-status-error)]/10 text-[var(--inkblot-semantic-color-status-error)]",info:"border-[var(--inkblot-semantic-color-status-info)] bg-[var(--inkblot-semantic-color-status-info)]/10 text-[var(--inkblot-semantic-color-status-info)]"};function Bt({label:t,variant:e="info",className:a}){return(0,Ee.jsx)("span",{className:r("inline-flex items-center rounded-[var(--inkblot-radius-md)] border px-2 py-0.5 text-xs font-medium",or[e],a),children:t})}var Q=require("react/jsx-runtime");function nr(t){return t>=.8?"success":t>=.5?"info":t>=.2?"warning":"error"}function At({event:t,className:e}){let a=nr(t.confidence_score),o=`${Math.round(t.confidence_score*100)}%`;return(0,Q.jsxs)("div",{className:r("flex flex-wrap items-center gap-2 rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-4",e),children:[(0,Q.jsx)("span",{className:"text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:t.actor}),(0,Q.jsx)("span",{className:"text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:"\u2192"}),(0,Q.jsx)("span",{className:"text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:t.subject}),(0,Q.jsx)("span",{className:"rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-background-tertiary)] px-2 py-0.5 text-xs text-[var(--inkblot-semantic-color-text-secondary)]",children:t.event_type}),(0,Q.jsx)("span",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:t.timestamp}),(0,Q.jsx)(Bt,{label:o,variant:a})]})}var R=require("react/jsx-runtime"),ir={success:"bg-[var(--inkblot-semantic-color-status-success)]",warning:"bg-[var(--inkblot-semantic-color-status-warning)]",error:"bg-[var(--inkblot-semantic-color-status-error)]",info:"bg-[var(--inkblot-semantic-color-status-info)]"};function sr(){return(0,R.jsx)("svg",{viewBox:"0 0 16 16",className:"h-4 w-4 text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0,children:(0,R.jsx)("circle",{cx:"8",cy:"8",r:"2",fill:"currentColor"})})}function Jt({events:t,className:e}){return(0,R.jsx)(d,{className:e,children:(0,R.jsx)("div",{className:r("flex flex-col gap-4 border-l-2 border-[var(--inkblot-semantic-color-border-default)] pl-4"),children:t.map(a=>(0,R.jsxs)("div",{className:"flex items-start gap-3",children:[(0,R.jsx)("div",{className:"flex shrink-0 items-center pt-0.5",children:a.icon??(0,R.jsx)(sr,{})}),(0,R.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,R.jsx)("p",{className:"text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:a.title}),(0,R.jsx)("p",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:a.timestamp})]}),a.status?(0,R.jsx)("div",{className:r("mt-1.5 h-2 w-2 shrink-0 rounded-full",ir[a.status]),"aria-hidden":!0}):null]},a.id))})})}var N=require("react/jsx-runtime"),ee=36,te=2*Math.PI*ee;function Lt({label:t,value:e,subtext:a,trend:o,className:n}){let s=Math.min(100,Math.max(0,e)),i=te-s/100*te;return(0,N.jsx)(d,{className:n,children:(0,N.jsxs)("div",{className:"flex flex-col items-center gap-4 rounded-[var(--inkblot-radius-lg)] bg-[var(--inkblot-semantic-color-background-secondary)] p-4",children:[(0,N.jsxs)("div",{className:"relative",children:[(0,N.jsxs)("svg",{width:"96",height:"96",viewBox:"0 0 96 96",className:"-rotate-90",children:[(0,N.jsx)("circle",{cx:"48",cy:"48",r:ee,fill:"none",stroke:"var(--inkblot-semantic-color-background-tertiary)",strokeWidth:"4"}),(0,N.jsx)("circle",{cx:"48",cy:"48",r:ee,fill:"none",stroke:"var(--inkblot-semantic-color-interactive-primary)",strokeWidth:"4",strokeDasharray:te,strokeDashoffset:i,strokeLinecap:"round",className:"transition-[stroke-dashoffset] duration-[var(--inkblot-duration-fast)]"})]}),(0,N.jsx)("div",{className:"absolute inset-0 flex flex-col items-center justify-center",children:(0,N.jsxs)("span",{className:"flex items-center gap-1 text-lg font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:[s,"%",o==="up"?(0,N.jsx)("svg",{viewBox:"0 0 16 16",className:"h-4 w-4 text-[var(--inkblot-semantic-color-status-success)]","aria-hidden":!0,children:(0,N.jsx)("path",{fill:"currentColor",d:"M8 4l4 6H4l4-6z"})}):o==="down"?(0,N.jsx)("svg",{viewBox:"0 0 16 16",className:"h-4 w-4 text-[var(--inkblot-semantic-color-status-error)]","aria-hidden":!0,children:(0,N.jsx)("path",{fill:"currentColor",d:"M8 12l4-6H4l4 6z"})}):null]})})]}),(0,N.jsxs)("div",{className:"text-center",children:[(0,N.jsx)("p",{className:"text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:t}),a?(0,N.jsx)("p",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:a}):null]})]})})}var G=require("react/jsx-runtime"),lr={default:"text-[var(--inkblot-semantic-color-text-primary)]",success:"text-[var(--inkblot-semantic-color-status-success)]",warning:"text-[var(--inkblot-semantic-color-status-warning)]",error:"text-[var(--inkblot-semantic-color-status-error)]"};function cr({className:t}){return(0,G.jsx)("svg",{viewBox:"0 0 16 16",className:r("h-4 w-4",t),"aria-hidden":!0,children:(0,G.jsx)("path",{fill:"currentColor",d:"M6 4l4 4-4 4V4z"})})}function re({items:t,className:e}){return(0,G.jsx)(d,{className:e,children:(0,G.jsx)("ul",{className:r("flex flex-col gap-4 py-2"),children:t.map((a,o)=>(0,G.jsxs)("li",{className:"flex items-center justify-between gap-4",children:[(0,G.jsx)("span",{className:"text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:a.label}),(0,G.jsx)("span",{className:r("flex items-center gap-1 text-sm font-medium",lr[a.variant??"default"]),children:a.value!=null?a.value:(0,G.jsx)(cr,{})})]},o))})})}var Te=require("react/jsx-runtime");function Y({className:t,...e}){return(0,Te.jsx)("div",{className:r("animate-shimmer rounded-[var(--inkblot-radius-md)] bg-[length:200%_100%] bg-[linear-gradient(90deg,var(--inkblot-semantic-color-background-secondary)_0%,var(--inkblot-semantic-color-background-tertiary)_50%,var(--inkblot-semantic-color-background-secondary)_100%)]",t),...e})}var rt=require("react/jsx-runtime");function dt({className:t,...e}){return(0,rt.jsxs)("div",{className:r("flex flex-col gap-2 rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-4",t),...e,children:[(0,rt.jsx)(Y,{className:"h-5 w-3/4"}),(0,rt.jsx)(Y,{className:"h-4 w-full"}),(0,rt.jsx)(Y,{className:"h-4 w-5/6"}),(0,rt.jsx)(Y,{className:"h-4 w-4/5"}),(0,rt.jsx)(Y,{className:"h-4 w-3/4"})]})}var at=require("react/jsx-runtime");function Dt({children:t,loading:e=!1,title:a,className:o,onRetry:n}){return(0,at.jsx)(d,{className:o,onRetry:n,children:e?(0,at.jsxs)("div",{className:r("flex flex-col gap-4",o),children:[a?(0,at.jsx)("h2",{className:"text-lg font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:a}):null,(0,at.jsx)(dt,{})]}):(0,at.jsxs)("div",{className:r("flex flex-col gap-4",o),children:[a?(0,at.jsx)("h2",{className:"text-lg font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:a}):null,t]})})}var Ie=require("lucide-react");var H=require("react/jsx-runtime");function pt({title:t,subtitle:e,icon:a,action:o,className:n}){return(0,H.jsxs)("header",{className:r("flex flex-col gap-2 sm:flex-row sm:items-start sm:justify-between","pb-[var(--inkblot-spacing-2)]",n),children:[(0,H.jsxs)("div",{className:"flex items-start gap-[var(--inkblot-spacing-3)]",children:[a?(0,H.jsx)("div",{className:r("flex h-10 w-10 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-lg)]","bg-[var(--inkblot-semantic-color-background-secondary)]","[color:var(--inkblot-semantic-color-status-warning)]"),children:a}):null,(0,H.jsxs)("div",{className:"min-w-0",children:[(0,H.jsx)("h1",{className:r("text-[var(--inkblot-semantic-color-text-primary)]","[font:var(--inkblot-semantic-typography-heading-medium)]"),children:t}),e?(0,H.jsx)("p",{className:r("mt-0.5 text-[var(--inkblot-semantic-color-text-secondary)]","[font:var(--inkblot-semantic-typography-body-small)]"),children:e}):null]})]}),o?(0,H.jsx)("div",{className:"mt-[var(--inkblot-spacing-4)] shrink-0 sm:mt-0",children:o}):null]})}function bt({label:t,onClick:e,icon:a,className:o}){return(0,H.jsxs)("button",{type:"button",onClick:e,className:r("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center gap-2 rounded-[var(--inkblot-radius-lg)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]","[font:var(--inkblot-semantic-typography-body-medium)] font-semibold","hover:bg-[var(--inkblot-semantic-color-interactive-primary-hover)] active:bg-[var(--inkblot-semantic-color-interactive-primary-active)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]","transition-colors duration-[var(--inkblot-duration-fast)]",o),children:[a??(0,H.jsx)(Ie.Plus,{className:"h-4 w-4"}),t]})}var Me=require("react-router-dom");var ut=require("react/jsx-runtime");function Vt({resetErrorBoundary:t}){return(0,ut.jsxs)("div",{role:"alert",className:r("flex min-h-[50vh] flex-col items-center justify-center gap-[var(--inkblot-spacing-6)] px-[var(--inkblot-spacing-6)] py-[var(--inkblot-spacing-8)]","bg-[var(--inkblot-semantic-color-background-primary)]","[font:var(--inkblot-semantic-typography-body-small)]"),children:[(0,ut.jsx)("p",{className:"text-center text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-heading-medium)]",children:"Esta p\xE1gina no est\xE1 disponible"}),(0,ut.jsxs)("div",{className:"flex flex-col items-center gap-[var(--inkblot-spacing-4)] sm:flex-row",children:[(0,ut.jsx)("button",{type:"button",onClick:t,className:r("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center rounded-[var(--inkblot-radius-lg)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]","hover:bg-[var(--inkblot-semantic-color-interactive-primary-hover)] active:bg-[var(--inkblot-semantic-color-interactive-primary-active)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]","transition-colors duration-[var(--inkblot-duration-fast)]"),children:"Reintentar"}),(0,ut.jsx)(Me.Link,{to:"/",className:r("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center rounded-[var(--inkblot-radius-lg)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","text-[var(--inkblot-semantic-color-interactive-primary)] underline-offset-4 hover:underline","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]","transition-colors duration-[var(--inkblot-duration-fast)]"),children:"Ir al inicio"})]})]})}var Re=require("react-error-boundary"),Be=require("react-router-dom");var Ae=require("react/jsx-runtime");function ae({children:t,fallback:e}){let a=(0,Be.useNavigate)();return(0,Ae.jsx)(Re.ErrorBoundary,{FallbackComponent:e??Vt,onReset:()=>{a("/")},children:t})}var Le=require("react"),De=require("lucide-react");var vt=require("react/jsx-runtime"),Z=(0,Le.forwardRef)(({className:t,label:e,error:a,disabled:o,...n},s)=>(0,vt.jsxs)("div",{className:"flex flex-col gap-1",children:[e?(0,vt.jsx)("label",{htmlFor:n.id,className:r("uppercase tracking-wider","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:e}):null,(0,vt.jsxs)("div",{className:r("flex items-center gap-2 rounded-[var(--inkblot-radius-full)]","bg-[var(--inkblot-semantic-color-background-secondary)]","border transition-colors duration-[var(--inkblot-duration-fast)]","focus-within:ring-2 focus-within:ring-[var(--inkblot-semantic-color-border-focus)] focus-within:ring-offset-2 focus-within:ring-offset-[var(--inkblot-semantic-color-background-primary)]",a?"border-[var(--inkblot-semantic-color-status-error)]":"border-[var(--inkblot-semantic-color-border-default)] hover:border-[var(--inkblot-semantic-color-border-strong)]",o&&"opacity-[var(--inkblot-opacity-disabled)] pointer-events-none cursor-not-allowed"),children:[(0,vt.jsx)(De.Search,{className:r("ml-[var(--inkblot-spacing-4)] h-4 w-4 shrink-0","text-[var(--inkblot-semantic-color-text-tertiary)]")}),(0,vt.jsx)("input",{ref:s,type:"search",disabled:o,"aria-invalid":a,"aria-label":e??"Search",className:r("min-h-[var(--inkblot-size-touch-target-min)] w-full flex-1 bg-transparent px-2 py-[var(--inkblot-spacing-2)] pr-[var(--inkblot-spacing-4)]","[font:var(--inkblot-semantic-typography-body-medium)]","text-[var(--inkblot-semantic-color-text-primary)] placeholder:text-[var(--inkblot-semantic-color-text-tertiary)]","focus:outline-none","disabled:cursor-not-allowed",t),...n})]})]}));Z.displayName="SearchBar";var Ve=require("react/jsx-runtime");function oe({children:t,columns:e=4,className:a}){return(0,Ve.jsx)("div",{className:r("grid gap-[var(--inkblot-spacing-4)]",{1:"grid-cols-1",2:"grid-cols-1 sm:grid-cols-2",3:"grid-cols-1 sm:grid-cols-2 lg:grid-cols-3",4:"grid-cols-1 sm:grid-cols-2 lg:grid-cols-4"}[e],a),children:t})}var ot=require("react/jsx-runtime");function ne({items:t,className:e}){return(0,ot.jsx)(d,{className:e,children:(0,ot.jsx)("nav",{className:r("flex w-14 flex-col items-center gap-1 border-r border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] py-4"),"aria-label":"Navigation",children:t.map(a=>(0,ot.jsxs)("div",{className:r("relative flex w-full flex-col items-center gap-1 rounded-[var(--inkblot-radius-md)] px-2 py-2 transition-colors hover:text-[var(--inkblot-semantic-color-text-secondary)]",a.active?"text-[var(--inkblot-semantic-color-interactive-primary)]":"text-[var(--inkblot-semantic-color-text-tertiary)]"),children:[a.active?(0,ot.jsx)("span",{className:"absolute left-0 top-1/2 h-6 w-0.5 -translate-y-1/2 rounded-r-full bg-[var(--inkblot-semantic-color-interactive-primary)]","aria-hidden":!0}):null,(0,ot.jsx)("div",{className:"flex h-8 w-8 items-center justify-center [&>svg]:h-5 [&>svg]:w-5",children:a.icon}),a.label?(0,ot.jsx)("span",{className:"text-[10px] font-medium",children:a.label}):null]},a.id))})})}var C=require("react/jsx-runtime"),He={success:"text-[var(--inkblot-semantic-color-status-success)]",error:"text-[var(--inkblot-semantic-color-status-error)]",neutral:"text-[var(--inkblot-semantic-color-text-secondary)]"};function Ht({items:t,className:e}){return(0,C.jsx)("div",{className:r("grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4",e),children:t.map(a=>(0,C.jsx)(mr,{item:a},a.label))})}function mr({item:t}){let e=t.changeVariant??"neutral",a=He[e];return(0,C.jsxs)("div",{className:r("flex flex-col gap-1 rounded-[var(--inkblot-radius-lg)]","bg-[var(--inkblot-semantic-color-background-secondary)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-4)]","border border-[var(--inkblot-semantic-color-border-subtle)]"),children:[(0,C.jsx)("span",{className:r("uppercase tracking-wider","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]"),children:t.label}),(0,C.jsx)("span",{className:r("[font:var(--inkblot-semantic-typography-heading-medium)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:t.value}),t.change?(0,C.jsx)("span",{className:r("[font:var(--inkblot-semantic-typography-body-small)]",a),children:t.change}):null]})}function ie({items:t,className:e}){return(0,C.jsx)("div",{className:r("grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4",e),children:t.map(a=>(0,C.jsx)(dr,{item:a},a.label))})}function dr({item:t}){let e=t.changeVariant??"neutral",a=He[e],o=t.chartData??[],n=Math.max(...o,1);return(0,C.jsxs)("div",{className:r("flex flex-col gap-2 rounded-[var(--inkblot-radius-lg)]","bg-[var(--inkblot-semantic-color-background-secondary)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-4)]","border border-[var(--inkblot-semantic-color-border-subtle)]"),children:[(0,C.jsx)("span",{className:r("uppercase tracking-wider","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]"),children:t.label}),(0,C.jsxs)("div",{className:"flex items-end justify-between gap-2",children:[(0,C.jsx)("span",{className:r("[font:var(--inkblot-semantic-typography-heading-medium)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:t.value}),o.length>0?(0,C.jsx)("div",{className:"flex h-8 items-end gap-0.5",children:o.map((s,i)=>(0,C.jsx)("div",{className:"w-1 min-w-[2px] rounded-sm bg-[var(--inkblot-semantic-color-interactive-primary)] opacity-80",style:{height:`${s/n*100}%`,minHeight:4}},i))}):null]}),t.change?(0,C.jsx)("span",{className:r("[font:var(--inkblot-semantic-typography-body-small)]",a),children:t.change}):null]})}var Ft=require("react/jsx-runtime");function Wt({tabs:t,activeTabId:e,onTabChange:a,className:o}){return(0,Ft.jsx)("nav",{role:"tablist","aria-label":"Tabs",className:r("flex gap-0 pt-[var(--inkblot-spacing-2)]",o),children:t.map(n=>{let s=n.id===e;return(0,Ft.jsxs)("button",{role:"tab","aria-selected":s,"aria-controls":`panel-${n.id}`,id:`tab-${n.id}`,type:"button",onClick:()=>a(n.id),className:r("relative px-[var(--inkblot-spacing-5)] py-[var(--inkblot-spacing-4)]","[font:var(--inkblot-semantic-typography-body-medium)]","transition-colors duration-[var(--inkblot-duration-fast)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]",s?["font-semibold text-[var(--inkblot-semantic-color-text-primary)]","bg-[var(--inkblot-semantic-color-background-secondary)]","rounded-t-[var(--inkblot-radius-lg)]"]:["text-[var(--inkblot-semantic-color-text-secondary)]","hover:text-[var(--inkblot-semantic-color-text-primary)]","hover:bg-[var(--inkblot-semantic-color-background-secondary)]/50"]),children:[n.label,s?(0,Ft.jsx)("span",{className:"absolute bottom-0 left-0 right-0 h-0.5 rounded-full bg-[var(--inkblot-semantic-color-interactive-primary)]","aria-hidden":!0}):null]},n.id)})})}var Ct=require("lucide-react");var I=require("react/jsx-runtime"),pr={urgent:"bg-[var(--inkblot-semantic-color-status-error)]/20 text-[var(--inkblot-semantic-color-status-error)] border-[var(--inkblot-semantic-color-status-error)]/30",high:"bg-[var(--inkblot-semantic-color-status-warning)]/20 text-[var(--inkblot-semantic-color-status-warning)] border-[var(--inkblot-semantic-color-status-warning)]/30",medium:"bg-[var(--inkblot-semantic-color-status-success)]/10 text-[var(--inkblot-semantic-color-status-success)] border-[var(--inkblot-semantic-color-status-success)]/30",low:"bg-[var(--inkblot-semantic-color-background-tertiary)] text-[var(--inkblot-semantic-color-text-secondary)] border-[var(--inkblot-semantic-color-border-subtle)]"};function Ot({id:t,title:e,company:a,priority:o,date:n,assignee:s,completed:i=!1,onToggle:l,onClick:c,className:b}){let m=pr[o];return(0,I.jsxs)("div",{role:"button",tabIndex:0,onClick:()=>c?.(t),onKeyDown:v=>{(v.key==="Enter"||v.key===" ")&&(v.preventDefault(),c?.(t))},className:r("flex items-center gap-[var(--inkblot-spacing-4)] rounded-[var(--inkblot-radius-lg)]","border border-[var(--inkblot-semantic-color-border-subtle)]","bg-[var(--inkblot-semantic-color-background-secondary)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]","transition-colors duration-[var(--inkblot-duration-fast)]","hover:border-[var(--inkblot-semantic-color-border-default)] hover:bg-[var(--inkblot-semantic-color-background-tertiary)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]","cursor-pointer",b),children:[(0,I.jsx)("button",{type:"button",onClick:v=>{v.stopPropagation(),l?.(t)},"aria-label":i?"Mark as incomplete":"Mark as complete","aria-pressed":i,className:r("flex h-5 w-5 shrink-0 items-center justify-center rounded-full","transition-colors duration-[var(--inkblot-duration-fast)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]",i?"bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]":"border-2 border-[var(--inkblot-semantic-color-border-default)] bg-transparent"),children:i?(0,I.jsx)(Ct.Check,{className:"h-3 w-3",strokeWidth:3}):null}),(0,I.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,I.jsx)("p",{className:r("[font:var(--inkblot-semantic-typography-body-large-bold)]","text-[var(--inkblot-semantic-color-text-primary)]",i&&"line-through text-[var(--inkblot-semantic-color-text-secondary)]"),children:e}),(0,I.jsx)("p",{className:r("mt-0.5 [font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]",i&&"line-through"),children:a})]}),(0,I.jsxs)("div",{className:"flex shrink-0 flex-wrap items-center justify-end gap-[var(--inkblot-spacing-3)]",children:[(0,I.jsx)("span",{className:r("rounded-[var(--inkblot-radius-md)] border px-[var(--inkblot-spacing-2)] py-[var(--inkblot-spacing-1)]","[font:var(--inkblot-semantic-typography-body-small)] font-medium",m),children:o.charAt(0).toUpperCase()+o.slice(1)}),(0,I.jsxs)("span",{className:r("flex items-center gap-1","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:[(0,I.jsx)(Ct.Calendar,{className:"h-4 w-4 shrink-0 text-[var(--inkblot-semantic-color-text-tertiary)]"}),n]}),(0,I.jsxs)("span",{className:r("flex items-center gap-1","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:[(0,I.jsx)(Ct.User,{className:"h-4 w-4 shrink-0 text-[var(--inkblot-semantic-color-text-tertiary)]"}),s]})]})]})}var St=require("lucide-react");var z=require("react/jsx-runtime"),br={todo:St.CircleDot,in_progress:St.Clock,done:St.CheckCircle};function _t({sections:t,onTaskToggle:e,onTaskClick:a,className:o}){return(0,z.jsx)("div",{className:r("flex flex-col gap-[var(--inkblot-spacing-8)]",o),children:t.map(n=>{let s=br[n.id],i=n.id==="done";return(0,z.jsxs)("section",{className:"flex flex-col gap-[var(--inkblot-spacing-4)]",children:[(0,z.jsxs)("div",{className:"flex items-center gap-[var(--inkblot-spacing-3)]",children:[(0,z.jsx)(s,{className:r("h-5 w-5 shrink-0",i?"text-[var(--inkblot-semantic-color-interactive-primary)]":"text-[var(--inkblot-semantic-color-text-secondary)]")}),(0,z.jsx)("h2",{className:r("[font:var(--inkblot-semantic-typography-body-large-bold)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:n.label}),(0,z.jsx)("span",{className:r("rounded-[var(--inkblot-radius-full)] px-[var(--inkblot-spacing-2)] py-[var(--inkblot-spacing-1)]","bg-[var(--inkblot-semantic-color-background-secondary)]","[font:var(--inkblot-semantic-typography-body-small)] font-medium","text-[var(--inkblot-semantic-color-text-primary)]"),children:n.count})]}),(0,z.jsx)("div",{className:"flex flex-col gap-[var(--inkblot-spacing-3)]",children:n.tasks.map(l=>(0,z.jsx)(Ot,{...l,completed:i,onToggle:e,onClick:a},l.id))})]},n.id)})})}var P=require("lucide-react");var w=require("react/jsx-runtime");function ur(t){return t>=.8?"bg-[var(--inkblot-semantic-color-status-success)]":t>=.5?"bg-[var(--inkblot-semantic-color-status-info)]":t>=.2?"bg-[var(--inkblot-semantic-color-status-warning)]":"bg-[var(--inkblot-semantic-color-status-error)]"}var vr={EMAIL_OPENED:P.Mail,EMAIL_SENT:P.Mail,INVOICE_PAID:P.FileText,INVOICE_OVERDUE:P.FileText,CONTRACT_SIGNED:P.FileText,STAGE_CHANGED:P.Zap,CALL_COMPLETED:P.Phone,PHONE_CALL:P.Phone,RELATIONSHIP_DETECTED:P.Link2};function gr(t){return vr[t]??P.FileText}function fr(t){return t.metadata?.description??t.event_type.replace(/_/g," ").toLowerCase()}function yr(t){return t.metadata?.details??`${t.actor} - ${t.subject}`}function Gt({events:t,onEntitySelect:e,findEntity:a,emptyMessage:o="No hay actividad reciente",className:n}){let s=e?i=>{let l=a?.(i.subject)??a?.(i.actor);l&&e(l)}:void 0;return(0,w.jsx)(d,{children:(0,w.jsx)("div",{className:r("space-y-2",n),children:t.length===0?(0,w.jsx)("p",{className:"py-6 text-center text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:o}):t.map(i=>{let c=!!(a?.(i.subject)??a?.(i.actor))&&!!s,b=gr(i.event_type),m=(0,w.jsxs)("div",{className:"flex flex-1 items-center gap-3",children:[(0,w.jsx)(b,{className:"h-4 w-4 shrink-0 text-[var(--inkblot-semantic-color-text-secondary)]","aria-hidden":!0}),(0,w.jsx)("div",{className:`h-2 w-2 shrink-0 rounded-full ${ur(i.confidence_score)}`,"aria-hidden":!0}),(0,w.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,w.jsx)("p",{className:"text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:fr(i)}),(0,w.jsx)("p",{className:"text-xs text-[var(--inkblot-semantic-color-text-secondary)]",children:yr(i)})]}),(0,w.jsx)("span",{className:"shrink-0 text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:i.timestamp})]}),v=i.id??`${i.actor}-${i.subject}-${i.timestamp}`;return(0,w.jsx)("div",{children:c?(0,w.jsx)("button",{type:"button",onClick:()=>s(i),className:"flex w-full items-center gap-3 rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-background-secondary)] p-3 text-left transition-colors duration-[var(--inkblot-duration-fast)] hover:bg-[var(--inkblot-semantic-color-background-tertiary)] focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]",children:m}):(0,w.jsx)("div",{className:"flex w-full items-center gap-3 rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-background-secondary)] p-3",children:m})},v)})})})}var Fe=require("react-router-dom"),M=require("lucide-react");var $=require("react/jsx-runtime"),kr=[{id:"home",path:"/",icon:M.ClipboardList,label:"Home"},{id:"intelligence",path:"/intelligence",icon:M.Brain,label:"Intelligence"},{id:"pipeline",path:"/pipeline",icon:M.BarChart3,label:"Pipeline"},{id:"graph",path:"/graph",icon:M.Network,label:"Graph"},{id:"events",path:"/events",icon:M.Activity,label:"Events"},{id:"settings",path:"/settings",icon:M.Settings,label:"Settings"}];function se({items:t=kr,brandLogo:e,brandTitle:a="Command Canvas \u2014 AI-native Interface",className:o}){return(0,$.jsx)(d,{children:(0,$.jsxs)("nav",{className:r("flex h-full flex-col gap-4 bg-[var(--inkblot-semantic-color-background-secondary)] p-3",o),children:[(0,$.jsx)("div",{className:"flex flex-col items-center gap-2",children:(0,$.jsx)("div",{className:"flex h-10 w-10 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-interactive-primary)]",title:a,children:e??(0,$.jsx)(M.Sparkles,{className:"h-5 w-5 text-[var(--inkblot-semantic-color-text-primary)]","aria-hidden":!0})})}),(0,$.jsx)("div",{className:"flex flex-1 flex-col gap-2",children:t.map(n=>{let s=n.icon;return(0,$.jsx)(Fe.NavLink,{to:n.path,end:n.path==="/","aria-label":n.label,className:({isActive:i})=>`flex items-center justify-center gap-2 rounded-[var(--inkblot-radius-md)] border-l-2 px-3 py-2 transition-colors duration-[var(--inkblot-duration-fast)] ${i?"border-[var(--inkblot-semantic-color-interactive-primary)] bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-primary)]":"border-transparent text-[var(--inkblot-semantic-color-text-secondary)] hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)]"}`,children:(0,$.jsx)(s,{size:20,"aria-hidden":!0})},n.id)})})]})})}var F=require("react");var u=require("react/jsx-runtime");function xr(t){let e=t.toLowerCase();return e.includes("entity")||e.includes("company")||e.includes("person")||e.includes("deal")||e.includes("profile")||e.includes("org")?"entity":e.includes("event")||e.includes("activity")||e.includes("recent")||e.includes("stream")||e.includes("log")?"event":"general"}function hr({entities:t}){let e=t[0];return e?(0,u.jsxs)("div",{className:"space-y-3",children:[(0,u.jsx)("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:"Here's the entity profile and current intelligence scores:"}),(0,u.jsx)(Mt,{name:e.name,entityType:e.type,metadata:e.metadata,edges:[{type:"WORKS_WITH",target:t[1]?.name},{type:"MANAGES",target:t[4]?.name}]})]}):null}function Nr({events:t}){return(0,u.jsxs)("div",{className:"space-y-2",children:[(0,u.jsx)("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:"Latest activity from the event bus:"}),t.slice(0,5).map(e=>(0,u.jsx)(At,{event:e},e.id??`${e.actor}-${e.subject}-${e.timestamp}`))]})}function Cr(){return(0,u.jsx)("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-primary)]",children:"Revenue confidence is trending upward at 78%. Momentum score increased 12% this week driven by 3 new meetings with Acme Corp. Churn risk remains low at 15% across the active pipeline."})}function le({entities:t,events:e,onFocusEntity:a,findEntity:o,placeholder:n="Ask anything \u2014 deals, contacts, forecasts...",emptyMessage:s="Escribe para comenzar...",className:i}){let[l,c]=(0,F.useState)(""),[b,m]=(0,F.useState)([]),[v,J]=(0,F.useState)(!1),[st,S]=(0,F.useState)(new Map),B=(0,F.useRef)(null);(0,F.useEffect)(()=>{B.current&&(B.current.scrollTop=B.current.scrollHeight)},[b,v]);let ft=(0,F.useCallback)(()=>{let x=l.trim();if(!x||v)return;let g=o?.(x);g&&a&&a(g);let _={id:`msg-${Date.now()}`,role:"user",content:x,timestamp:new Date().toISOString()},L=xr(x);m(D=>[...D,_]),c(""),J(!0),setTimeout(()=>{let D={id:`msg-${Date.now()}-res`,role:"assistant",content:"",intent:L,timestamp:new Date().toISOString()},yt;switch(L){case"entity":yt=(0,u.jsx)(hr,{entities:t});break;case"event":yt=(0,u.jsx)(Nr,{events:e});break;default:yt=(0,u.jsx)(Cr,{})}S(wt=>{let $t=new Map(wt);return $t.set(D.id,yt),$t}),m(wt=>[...wt,D]),J(!1)},1e3)},[l,v,t,e,a,o]);return(0,u.jsxs)("div",{className:r("flex h-full flex-col",i),children:[(0,u.jsxs)("div",{ref:B,className:"flex-1 space-y-4 overflow-y-auto p-4",children:[b.length===0&&!v?(0,u.jsx)("div",{className:"flex flex-1 items-center justify-center py-12",children:(0,u.jsx)("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:s})}):b.map(x=>(0,u.jsx)("div",{className:"flex flex-col gap-2",children:x.role==="user"?(0,u.jsx)("div",{className:"flex justify-end",children:(0,u.jsx)("div",{className:"max-w-[80%] rounded-[var(--inkblot-radius-lg)] bg-[var(--inkblot-semantic-color-interactive-primary)] px-4 py-3 text-sm text-[var(--inkblot-semantic-color-text-primary)]",children:x.content})}):(0,u.jsx)("div",{className:"max-w-[90%]",children:st.get(x.id)??(0,u.jsx)("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-primary)]",children:x.content})})},x.id)),v&&(0,u.jsx)("div",{className:"max-w-[70%]",children:(0,u.jsx)(dt,{className:"animate-shimmer"})})]}),(0,u.jsx)("div",{className:"shrink-0 border-t border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)] p-4",children:(0,u.jsx)(mt,{promptValue:l,onPromptChange:c,onPromptSubmit:ft,isProcessing:v,placeholder:n})})]})}var We=require("lucide-react");var X=require("react/jsx-runtime");function ce({prompt:t,onPromptChange:e,onSubmit:a,isProcessing:o,placeholder:n="Ask anything \u2014 deals, contacts, forecasts...",subtitle:s="Citron OS v1.0 \u2014 AI-native Revenue & Operations Platform",className:i}){return(0,X.jsxs)("div",{className:r("border-t border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-4",i),children:[(0,X.jsxs)("div",{className:"flex items-center gap-3",children:[(0,X.jsx)("div",{className:"flex h-10 w-10 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-interactive-primary)]",children:(0,X.jsx)(We.Sparkles,{className:"h-5 w-5 text-[var(--inkblot-semantic-color-text-primary)]","aria-hidden":!0})}),(0,X.jsx)("div",{className:"flex-1",children:(0,X.jsx)(mt,{promptValue:t,onPromptChange:e,onPromptSubmit:a,isProcessing:o,placeholder:n})})]}),s&&(0,X.jsx)("p",{className:"mt-2 text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:s})]})}var W=require("react/jsx-runtime");function me({events:t,title:e="Event Stream",showLive:a=!0,className:o}){return(0,W.jsx)(d,{children:(0,W.jsxs)("div",{className:r("flex h-full flex-col bg-[var(--inkblot-semantic-color-background-secondary)]",o),children:[(0,W.jsxs)("div",{className:"flex shrink-0 items-center justify-between border-b border-[var(--inkblot-semantic-color-border-default)] px-4 py-3",children:[(0,W.jsx)("span",{className:"text-xs font-medium uppercase tracking-wider text-[var(--inkblot-semantic-color-text-secondary)]",children:e}),a&&(0,W.jsxs)("div",{className:"flex items-center gap-2",children:[(0,W.jsx)("div",{className:"h-2 w-2 rounded-full bg-[var(--inkblot-semantic-color-status-success)]"}),(0,W.jsx)("span",{className:"text-xs text-[var(--inkblot-semantic-color-status-success)]",children:"Live"})]})]}),(0,W.jsx)("div",{className:"flex-1 overflow-auto p-4",children:(0,W.jsx)(Gt,{events:t})})]})})}var y=require("react/jsx-runtime"),Sr=[{label:"Pipeline Health",value:76},{label:"Churn Risk",value:28},{label:"Expansion Signal",value:64},{label:"Team Velocity",value:83}],wr=[{title:"Acme Corp likely to close within 14 days",description:"Based on email sentiment, meeting cadence, and champion engagement patterns.",confidence:89},{title:"Churn risk detected: GlobalTech Inc",description:"Declining touchpoints and support ticket volume suggest potential churn.",confidence:74},{title:"Expansion opportunity: TechVentures",description:"Usage patterns and NPS scores indicate readiness for upsell conversation.",confidence:81}];function de({loading:t,kpiCards:e=Sr,aiInsights:a=wr,title:o="Intelligence Lab",subtitle:n="AI-generated insights - Updated 3 min ago",className:s}){return(0,y.jsxs)("div",{className:r("flex h-full flex-col gap-4 overflow-y-auto p-4",s),children:[(0,y.jsxs)("div",{children:[(0,y.jsx)("h1",{className:"text-2xl font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:o}),(0,y.jsx)("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:n})]}),(0,y.jsx)(Dt,{loading:t,title:"",children:(0,y.jsx)(d,{children:(0,y.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,y.jsx)("div",{className:"grid grid-cols-2 gap-4 lg:grid-cols-4",children:e.map(i=>(0,y.jsx)(Lt,{label:i.label,value:i.value,subtext:i.subtext,trend:i.trend},i.label))}),(0,y.jsxs)("div",{children:[(0,y.jsx)("h2",{className:"mb-4 border-b border-[var(--inkblot-semantic-color-border-default)] pb-2 text-sm font-bold uppercase tracking-wider text-[var(--inkblot-semantic-color-text-primary)]",children:"AI Insights"}),(0,y.jsx)("div",{className:"flex flex-col gap-4",children:a.map(i=>(0,y.jsx)(d,{children:(0,y.jsxs)("div",{className:"flex items-start justify-between gap-4 rounded-[var(--inkblot-radius-lg)] bg-[var(--inkblot-semantic-color-background-secondary)] p-4",children:[(0,y.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,y.jsx)("h3",{className:"font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:i.title}),(0,y.jsx)("p",{className:"mt-1 text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:i.description})]}),(0,y.jsxs)("div",{className:"flex shrink-0 flex-col items-center",children:[(0,y.jsx)("span",{className:"text-lg font-bold text-[var(--inkblot-semantic-color-text-primary)]",children:i.confidence}),(0,y.jsx)("span",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:"Conf."})]})]})},i.title))})]})]})})})]})}var K=require("react/jsx-runtime");function pe({navigation:t,eventStream:e,commandBar:a,children:o,className:n,eventStreamWidth:s="w-80"}){return(0,K.jsxs)("div",{className:r("flex h-screen w-screen overflow-hidden bg-[var(--inkblot-semantic-color-background-primary)]",n),children:[(0,K.jsx)("aside",{className:"flex h-full w-16 shrink-0 flex-col border-r border-[var(--inkblot-semantic-color-border-default)]",children:t}),(0,K.jsx)("main",{className:"flex flex-1 flex-col overflow-hidden",children:(0,K.jsxs)("div",{className:"flex min-h-0 flex-1",children:[(0,K.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col overflow-hidden bg-[var(--inkblot-semantic-color-background-primary)]",children:[(0,K.jsx)("div",{className:"flex-1 overflow-auto",children:o}),(0,K.jsx)("div",{className:"shrink-0",children:a})]}),e&&(0,K.jsx)("aside",{className:r("flex h-full shrink-0 flex-col border-l border-[var(--inkblot-semantic-color-border-default)]",s),children:e})]})})]})}var qt=require("react"),Qt=require("lucide-react");var A=require("react/jsx-runtime"),Pr=["urgent","high","medium","low"];function zt({onConfirm:t,onCancel:e,className:a}){let[o,n]=(0,qt.useState)(""),[s,i]=(0,qt.useState)(""),[l,c]=(0,qt.useState)("medium");return(0,A.jsxs)("form",{onSubmit:m=>{m.preventDefault();let v=o.trim();v&&(t({title:v,company:s.trim()||void 0,priority:l}),n(""),i(""),c("medium"))},className:r("flex flex-col gap-[var(--inkblot-spacing-4)] rounded-[var(--inkblot-radius-lg)]","border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-secondary)]","p-[var(--inkblot-spacing-4)]",a),children:[(0,A.jsx)("input",{type:"text",value:o,onChange:m=>n(m.target.value),placeholder:"Task title...",autoFocus:!0,required:!0,className:r("min-h-[var(--inkblot-size-touch-target-min)] w-full rounded-[var(--inkblot-radius-md)]","border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-primary)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","[font:var(--inkblot-semantic-typography-body-medium)]","text-[var(--inkblot-semantic-color-text-primary)] placeholder:text-[var(--inkblot-semantic-color-text-tertiary)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)]")}),(0,A.jsx)("input",{type:"text",value:s,onChange:m=>i(m.target.value),placeholder:"Company (optional)",className:r("min-h-[var(--inkblot-size-touch-target-min)] w-full rounded-[var(--inkblot-radius-md)]","border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-primary)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","[font:var(--inkblot-semantic-typography-body-medium)]","text-[var(--inkblot-semantic-color-text-primary)] placeholder:text-[var(--inkblot-semantic-color-text-tertiary)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)]")}),(0,A.jsx)("div",{className:"flex flex-wrap gap-[var(--inkblot-spacing-2)]",children:Pr.map(m=>(0,A.jsx)("button",{type:"button",onClick:()=>c(m),className:r("rounded-[var(--inkblot-radius-md)] px-[var(--inkblot-spacing-2)] py-[var(--inkblot-spacing-1)]","[font:var(--inkblot-semantic-typography-body-small)] font-medium","transition-colors duration-[var(--inkblot-duration-fast)]",l===m?"bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]":"bg-[var(--inkblot-semantic-color-background-tertiary)] text-[var(--inkblot-semantic-color-text-secondary)] hover:bg-[var(--inkblot-semantic-color-background-tertiary)]/80"),children:m.charAt(0).toUpperCase()+m.slice(1)},m))}),(0,A.jsxs)("div",{className:"flex justify-end gap-[var(--inkblot-spacing-2)]",children:[(0,A.jsxs)("button",{type:"button",onClick:e,className:r("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center gap-2 rounded-[var(--inkblot-radius-lg)]","border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-interactive-secondary)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","[font:var(--inkblot-semantic-typography-body-medium)] font-medium","text-[var(--inkblot-semantic-color-text-primary)]","hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)]"),children:[(0,A.jsx)(Qt.X,{className:"h-4 w-4"}),"Cancel"]}),(0,A.jsxs)("button",{type:"submit",disabled:!o.trim(),className:r("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center gap-2 rounded-[var(--inkblot-radius-lg)]","bg-[var(--inkblot-semantic-color-interactive-primary)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","[font:var(--inkblot-semantic-typography-body-medium)] font-medium","text-[var(--inkblot-semantic-color-text-inverse)]","hover:bg-[var(--inkblot-semantic-color-interactive-primary-hover)] active:bg-[var(--inkblot-semantic-color-interactive-primary-active)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)]","disabled:opacity-[var(--inkblot-opacity-disabled)] disabled:cursor-not-allowed"),children:[(0,A.jsx)(Qt.Check,{className:"h-4 w-4"}),"Add Task"]})]})]})}var gt=require("react"),Oe=require("lucide-react");var U=require("react/jsx-runtime");function nt(t,e,a="You"){let n=new Date().toLocaleDateString("en-US",{month:"short",day:"numeric"})||"Today";return{id:e,title:t.title,company:t.company??"Unassigned",priority:t.priority??"medium",date:n,assignee:a,status:"todo"}}function Er(t){let e={todo:t.filter(a=>a.status==="todo"),in_progress:t.filter(a=>a.status==="in_progress"),done:t.filter(a=>a.status==="done")};return[{id:"todo",label:"TO DO",count:e.todo.length,tasks:e.todo},{id:"in_progress",label:"IN PROGRESS",count:e.in_progress.length,tasks:e.in_progress},{id:"done",label:"DONE",count:e.done.length,tasks:e.done}]}var it=[nt({title:"Follow up with Sarah Chen on proposal",company:"Acme Corp",priority:"high"},"1"),nt({title:"Schedule demo with engineering team",company:"TechStart Inc",priority:"medium"},"2"),nt({title:"Prepare quarterly report slides",company:"GlobalTech",priority:"low"},"3"),nt({title:"Review Q1 marketing budget",company:"TechStart Inc",priority:"medium"},"4"),nt({title:"Draft partnership agreement",company:"Enterprise Co",priority:"urgent"},"5"),nt({title:"Send contract to legal team",company:"GlobalTech",priority:"low"},"6"),nt({title:"Update CRM with new contacts",company:"Acme Corp",priority:"low"},"7")];it[0].status="todo";it[1].status="todo";it[2].status="todo";it[3].status="in_progress";it[4].status="in_progress";it[5].status="done";it[6].status="done";function be({initialTasks:t=it,onTaskCreate:e,onTaskToggle:a,onTaskClick:o,className:n}){let[s,i]=(0,gt.useState)(t),[l,c]=(0,gt.useState)(!1),[b,m]=(0,gt.useState)(""),v=(0,gt.useMemo)(()=>{if(!b.trim())return s;let g=b.toLowerCase();return s.filter(_=>_.title.toLowerCase().includes(g)||_.company.toLowerCase().includes(g))},[s,b]),J=(0,gt.useMemo)(()=>Er(v),[v]),st=s.filter(g=>g.status!=="done").length,S=s.filter(g=>g.priority==="urgent"&&g.status!=="done").length,B=`${st} pending${S>0?` \xB7 ${S} urgent`:""}`,ft=g=>{let _=`task-${Date.now()}`,L=nt(g,_);i(D=>[L,...D]),c(!1),e?.(g)},x=g=>{i(_=>_.map(L=>{if(L.id!==g)return L;let D=L.status==="done"?"todo":"done";return{...L,status:D}})),a?.(g)};return(0,U.jsx)("div",{className:r("flex min-h-screen flex-col bg-[var(--inkblot-semantic-color-background-primary)]",n),children:(0,U.jsxs)("div",{className:"flex flex-1 flex-col gap-8 px-8 py-8",children:[(0,U.jsx)(pt,{title:"Tasks",subtitle:B,icon:(0,U.jsx)(Oe.ClipboardList,{className:"h-5 w-5"}),action:(0,U.jsx)(bt,{label:"New Task",onClick:()=>c(g=>!g)})}),(0,U.jsx)(Z,{placeholder:"Search tasks...",value:b,onChange:g=>m(g.target.value)}),l?(0,U.jsx)(zt,{onConfirm:ft,onCancel:()=>c(!1)}):null,(0,U.jsx)(_t,{sections:J,onTaskToggle:x,onTaskClick:o})]})})}var O=require("react"),$e=require("lucide-react");var p=require("react/jsx-runtime"),Tr=`Hi [Name],
2
+
3
+ I hope this email finds you well. I wanted to reach out regarding our recent conversation about [Topic].
4
+
5
+ Based on our discussion, I've prepared a few options that I believe could add significant value to your organization:
6
+
7
+ 1. **Option A**: [Brief description]
8
+ 2. **Option B**: [Brief description]
9
+ 3. **Option C**: [Brief description]
10
+
11
+ I'd love to schedule a quick call this week to walk you through these in more detail. Would any of the following times work for you?
12
+
13
+ - Tuesday 2pm
14
+ - Wednesday 10am
15
+ - Thursday 4pm
16
+
17
+ Looking forward to hearing from you.
18
+
19
+ Best regards,
20
+ [Your name]`,_e=[{id:"1",campaignName:"Q1 Product Launch",recipients:"2840 recipients",status:"sent",opens:"68%",clicks:"24%",date:"Feb 12, 2026"},{id:"2",campaignName:"Welcome Series",recipients:"1200 recipients",status:"active",statusSubtext:"Running",opens:"-",clicks:"-",date:"Feb 28, 2026"},{id:"3",campaignName:"Re-engagement Campaign",recipients:"890 recipients",status:"draft",opens:"-",clicks:"-",date:"Feb 5, 2026"},{id:"4",campaignName:"Holiday Promo",recipients:"4500 recipients",status:"scheduled",opens:"-",clicks:"-",date:"Mar 1, 2026"}],Ge=[{id:"1",category:"Onboarding",title:"Welcome Series",uses:"34 uses"},{id:"2",category:"Marketing",title:"Product Announcement",uses:"12 uses"},{id:"3",category:"Retention",title:"Renewal Reminder",uses:"28 uses"},{id:"4",category:"Sales",title:"Meeting Follow-up",uses:"56 uses"}],ze=["Acme Corp - Sarah Chen","TechStart Inc - Mike Rodriguez","GlobalTech - Lisa Kim","Enterprise Co - John Smith","StartupXYZ - Emma Wilson"],Ir=[{key:"campaign",label:"Campaign"},{key:"status",label:"Status"},{key:"opens",label:"Opens"},{key:"clicks",label:"Clicks"},{key:"date",label:"Date"}],Mr=[{label:"Total Sent",value:"12.4K",change:"This month",changeVariant:"success"},{label:"Avg. Open Rate",value:"64%",change:"+8% vs prior",changeVariant:"success"},{label:"Avg. Click Rate",value:"22%",change:"+3% vs prior",changeVariant:"success"},{label:"Active Automations",value:"7",change:"3 paused",changeVariant:"error"}];function ue({onSendNow:t,onSchedule:e,onSaveDraft:a,onNewCampaign:o,onGenerateWithAI:n,onTemplateClick:s,className:i}){let[l,c]=(0,O.useState)("campaigns"),[b,m]=(0,O.useState)(""),[v,J]=(0,O.useState)(""),[st,S]=(0,O.useState)(""),[B,ft]=(0,O.useState)(!1),[x,g]=(0,O.useState)(""),_=(0,O.useMemo)(()=>{if(!b.trim())return _e;let k=b.toLowerCase();return _e.filter(lt=>lt.campaignName.toLowerCase().includes(k)||lt.recipients.toLowerCase().includes(k))},[b]),L=(0,O.useMemo)(()=>{if(!b.trim())return Ge;let k=b.toLowerCase();return Ge.filter(lt=>lt.title.toLowerCase().includes(k)||lt.category.toLowerCase().includes(k))},[b]),D=(0,O.useMemo)(()=>{if(!x.trim())return ze;let k=x.toLowerCase();return ze.filter(lt=>lt.toLowerCase().includes(k))},[x]),yt=async()=>{ft(!0),await new Promise(k=>setTimeout(k,1500)),S(Tr),ft(!1)},wt=()=>{console.log("Send Now clicked"),t?.()},$t=()=>{console.log("Schedule clicked"),e?.()},Ke=()=>{console.log("Save Draft clicked"),a?.()},Ue=l==="campaigns"||l==="templates";return(0,p.jsx)("div",{className:r("flex min-h-screen flex-col bg-[var(--inkblot-semantic-color-background-primary)]",i),children:(0,p.jsxs)("div",{className:"flex flex-1 flex-col gap-8 px-8 py-8",children:[(0,p.jsx)(pt,{title:"Email Campaigns",subtitle:"Automate outreach \xB7 AI-powered templates",icon:(0,p.jsx)($e.Mail,{className:"h-5 w-5"}),action:(0,p.jsx)(bt,{label:"New Campaign",onClick:()=>o?.()})}),(0,p.jsx)(Wt,{tabs:[{id:"campaigns",label:"Campaigns"},{id:"templates",label:"Templates"},{id:"compose",label:"Compose"}],activeTabId:l,onTabChange:c}),Ue?(0,p.jsx)(Z,{placeholder:l==="campaigns"?"Search campaigns...":"Search templates...",value:b,onChange:k=>m(k.target.value)}):null,l==="campaigns"?(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(Ht,{items:Mr}),(0,p.jsx)(Et,{columns:Ir,rows:_})]}):l==="templates"?(0,p.jsx)(It,{templates:L,onGenerateWithAI:n,onTemplateClick:s}):(0,p.jsxs)("div",{className:"flex max-w-2xl flex-col gap-6",children:[(0,p.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,p.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,p.jsx)("label",{className:"uppercase tracking-wider text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-body-small)]",children:"Subject"}),(0,p.jsx)("input",{type:"text",value:v,onChange:k=>J(k.target.value),placeholder:"Enter subject line...",className:r("min-h-[var(--inkblot-size-touch-target-min)] w-full rounded-[var(--inkblot-radius-lg)]","border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-secondary)]","px-4 py-2 text-[var(--inkblot-semantic-color-text-primary)] placeholder:text-[var(--inkblot-semantic-color-text-tertiary)]")})]}),(0,p.jsx)(kt,{label:"Body",value:st,onChange:k=>S(k.target.value),placeholder:"Compose your email or let AI generate content...",loading:B,onWriteWithAI:yt}),(0,p.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,p.jsx)(Z,{label:"Recipients",placeholder:"Search contacts, segments, or tags...",value:x,onChange:k=>g(k.target.value)}),D.length>0?(0,p.jsx)("ul",{className:"flex flex-wrap gap-2",children:D.slice(0,5).map(k=>(0,p.jsx)("li",{className:r("rounded-[var(--inkblot-radius-md)]","bg-[var(--inkblot-semantic-color-background-secondary)]","px-[var(--inkblot-spacing-2)] py-[var(--inkblot-spacing-1)]","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]"),children:k},k))}):null]})]}),(0,p.jsx)(Pt,{onSendNow:wt,onSchedule:$t,onSaveDraft:Ke})]})]})})}0&&(module.exports={AIComposeInput,ActionButtons,ActivityStream,AppNavigationRail,Button,CampaignTable,ChatFeed,CommandBar,CommandInterface,EmailCampaignsView,EmailComposeActionButtons,EmailTemplatesSection,EntityCard,EntityCommandCard,ErrorBoundary,EventRow,EventStreamFeed,EventStreamSidebar,Input,IntelligenceLab,IntelligenceScoreCard,MainShell,MetricComparisonList,ModuleContainer,ModuleErrorBoundary,ModuleSkeleton,OSNavigationRail,PageErrorFallback,PageHeader,PageHeaderActionButton,RouteWithErrorBoundary,SearchBar,Skeleton,StatCardGrid,StatCards,StatCardsWithChart,StatusBadge,TabSystem,TaskCreateForm,TaskItem,TaskList,TasksView,TemplateCard});
package/dist/index.mjs CHANGED
@@ -1 +1,20 @@
1
- import{forwardRef as Ht}from"react";import{clsx as Ft}from"clsx";import{twMerge as Vt}from"tailwind-merge";function o(...t){return Vt(Ft(t))}import{jsx as Ot}from"react/jsx-runtime";var _t={primary:"bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-primary)] hover:bg-[var(--inkblot-semantic-color-interactive-primary-hover)] active:bg-[var(--inkblot-semantic-color-interactive-primary-active)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--inkblot-semantic-color-border-focus)] focus-visible:outline-offset-2 disabled:opacity-[var(--inkblot-opacity-disabled)] disabled:pointer-events-none disabled:cursor-not-allowed",secondary:"bg-[var(--inkblot-semantic-color-interactive-secondary)] text-[var(--inkblot-semantic-color-text-primary)] border border-[var(--inkblot-semantic-color-border-default)] hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] hover:border-[var(--inkblot-semantic-color-border-strong)] active:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--inkblot-semantic-color-border-focus)] focus-visible:outline-offset-2 disabled:opacity-[var(--inkblot-opacity-disabled)] disabled:pointer-events-none disabled:cursor-not-allowed"},T=Ht(({className:t,variant:e="primary",disabled:r,...n},i)=>Ot("button",{ref:i,disabled:r,className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center rounded-[var(--inkblot-radius-lg)] px-4 py-2 font-semibold transition-[background,border-color] duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)]",_t[e],t),...n}));T.displayName="Button";import{useRef as Gt}from"react";import{Loader2 as zt,Paperclip as Wt,Send as Kt,Sparkles as $t}from"lucide-react";import{jsx as p,jsxs as at}from"react/jsx-runtime";function M({promptValue:t="",onPromptChange:e,onPromptSubmit:r,onFilesAttach:n,isProcessing:i=!1,response:s,placeholder:a="Ask Citron Intelligence...",accept:u,multiple:d=!0,className:x}){let N=Gt(null),b=f=>{f.key==="Enter"&&!f.shiftKey&&(f.preventDefault(),r?.())},G=()=>{N.current?.click()},rt=f=>{let E=f.target.files;E&&E.length>0&&n&&n(Array.from(E)),f.target.value=""};return at("div",{className:o("flex w-full max-w-[80rem] flex-col gap-[var(--inkblot-spacing-2)]",x),children:[at("div",{className:o("flex items-center gap-[var(--inkblot-spacing-2)]",i&&"pointer-events-none"),children:[p("input",{ref:N,type:"file",accept:u,multiple:d,onChange:rt,className:"sr-only","aria-hidden":!0}),p("button",{type:"button",onClick:G,disabled:i,className:o("flex h-9 w-9 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-full)] text-[var(--inkblot-semantic-color-text-tertiary)] transition-colors duration-[var(--inkblot-duration-fast)]","hover:bg-[var(--inkblot-semantic-color-background-tertiary)] hover:text-[var(--inkblot-semantic-color-text-secondary)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]","disabled:pointer-events-none disabled:opacity-[var(--inkblot-opacity-disabled)]"),"aria-label":"Adjuntar archivos",children:p(Wt,{size:20,strokeWidth:1.5,className:"text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0})}),at("div",{className:o("relative flex min-w-0 flex-1 items-center gap-[var(--inkblot-spacing-2)] rounded-[var(--inkblot-radius-full)] bg-[var(--inkblot-semantic-color-background-primary)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)] shadow-[var(--inkblot-shadow-sm)]","transition-shadow duration-[var(--inkblot-duration-fast)]"),"aria-busy":i,children:[p("div",{className:"flex shrink-0 items-center opacity-[var(--inkblot-opacity-subtle)]","aria-hidden":!0,children:p($t,{size:20,strokeWidth:1.5,className:"text-[var(--inkblot-semantic-color-text-tertiary)]"})}),p("textarea",{value:t,onChange:f=>e?.(f.target.value),onKeyDown:b,placeholder:a,rows:2,disabled:i,className:o("min-h-[2.5rem] min-w-0 flex-1 resize-none border-0 bg-transparent py-0 pr-[var(--inkblot-spacing-12)] [font:var(--inkblot-semantic-typography-body-small)] text-[var(--inkblot-semantic-color-text-primary)] placeholder:text-[var(--inkblot-semantic-color-text-tertiary)]","focus:outline-none focus:ring-0","disabled:cursor-not-allowed disabled:opacity-[var(--inkblot-opacity-disabled)]")}),p("div",{className:o("absolute right-[var(--inkblot-spacing-2)] top-[var(--inkblot-spacing-2)] flex h-8 w-8 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-full)] text-[var(--inkblot-semantic-color-text-inverse)]",i?"pointer-events-none bg-[var(--inkblot-semantic-color-interactive-primary)] opacity-90":""),children:i?p(zt,{size:16,strokeWidth:2,className:"animate-spin text-[var(--inkblot-semantic-color-text-inverse)]","aria-hidden":!0}):p("button",{type:"button",onClick:r,disabled:i,className:o("flex h-full w-full items-center justify-center rounded-[var(--inkblot-radius-full)] transition-colors duration-[var(--inkblot-duration-fast)]","bg-[var(--inkblot-semantic-color-interactive-primary)] hover:bg-[var(--inkblot-semantic-color-interactive-primary-hover)] active:bg-[var(--inkblot-semantic-color-interactive-primary-active)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]"),"aria-label":"Enviar",children:p(Kt,{size:16,strokeWidth:2,className:"text-[var(--inkblot-semantic-color-text-inverse)]","aria-hidden":!0})})})]})]}),s?p("div",{className:"flex flex-col gap-[var(--inkblot-spacing-4)]",children:p("div",{className:"min-w-0 [font:var(--inkblot-semantic-typography-body-small)] text-[var(--inkblot-semantic-color-text-primary)]",children:s})}):null]})}import{jsx as I,jsxs as R}from"react/jsx-runtime";var Ut={Person:"border-l-[var(--inkblot-semantic-color-status-info)] bg-[var(--inkblot-semantic-color-background-secondary)]",Organization:"border-l-[var(--inkblot-semantic-color-status-warning)] bg-[var(--inkblot-semantic-color-background-secondary)]",Deal:"border-l-[var(--inkblot-semantic-color-status-success)] bg-[var(--inkblot-semantic-color-background-secondary)]"};function K({name:t,entityType:e,metadata:r,edges:n=[],className:i}){return R("article",{className:o("flex flex-col gap-4 rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] border-l-4 p-4",Ut[e],i),children:[R("div",{className:"flex flex-col gap-1",children:[I("span",{className:"text-xs font-medium uppercase tracking-wide text-[var(--inkblot-semantic-color-text-tertiary)]",children:e}),I("h3",{className:"text-base font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:t})]}),r&&Object.keys(r).length>0?I("dl",{className:"flex flex-col gap-1",children:Object.entries(r).map(([s,a])=>R("div",{className:"flex gap-2",children:[R("dt",{className:"text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:[s,":"]}),I("dd",{className:"text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:a})]},s))}):null,n.length>0?R("div",{className:"flex flex-col gap-2",children:[I("h4",{className:"text-sm font-medium text-[var(--inkblot-semantic-color-text-secondary)]",children:"Edges"}),I("ul",{className:"flex flex-wrap gap-2",children:n.map((s,a)=>R("li",{className:"rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-tertiary)] px-2 py-1 text-xs text-[var(--inkblot-semantic-color-text-secondary)]",children:[s.type,s.target?` \u2192 ${s.target}`:""]},a))})]}):null]})}import{forwardRef as jt}from"react";import{jsx as Zt}from"react/jsx-runtime";var D=jt(({className:t,error:e,disabled:r,...n},i)=>Zt("input",{ref:i,disabled:r,"aria-invalid":e,"aria-disabled":r,className:o("min-h-[var(--inkblot-size-touch-target-min)] w-full rounded-[var(--inkblot-radius-md)] border bg-[var(--inkblot-semantic-color-background-secondary)] px-4 py-2 text-[var(--inkblot-semantic-color-text-primary)] placeholder:text-[var(--inkblot-semantic-color-text-tertiary)] transition-[border-color,box-shadow] duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--inkblot-semantic-color-border-focus)] focus-visible:ring-offset-2 disabled:opacity-[var(--inkblot-opacity-disabled)] disabled:pointer-events-none disabled:cursor-not-allowed",e?"border-[var(--inkblot-semantic-color-status-error)] focus-visible:ring-[var(--inkblot-semantic-color-status-error)]":"border-[var(--inkblot-semantic-color-border-default)] hover:border-[var(--inkblot-semantic-color-border-strong)]",t),...n}));D.displayName="Input";import{Component as qt}from"react";import{jsx as nt,jsxs as Jt}from"react/jsx-runtime";var l=class extends qt{constructor(e){super(e),this.state={hasError:!1,error:null}}static getDerivedStateFromError(e){return{hasError:!0,error:e}}render(){return this.state.hasError&&this.state.error?Jt("div",{role:"alert",className:o("flex flex-col gap-4 rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-4",this.props.className),children:[nt("p",{className:"text-base font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:"This module failed to load"}),nt("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:this.state.error.message}),nt(T,{variant:"secondary",onClick:this.props.onRetry,className:"w-fit border-[var(--inkblot-semantic-color-status-error)]",children:"Retry"})]}):this.props.children}};import{jsx as k,jsxs as it}from"react/jsx-runtime";function bt({title:t,insights:e,stats:r=[],commandValue:n="",onCommandChange:i,onCommandSubmit:s,className:a}){let u=d=>{d.key==="Enter"&&(d.preventDefault(),s?.())};return k(l,{className:a,children:it("div",{className:"flex flex-col gap-4 rounded-[var(--inkblot-radius-xl)] bg-[var(--inkblot-semantic-color-background-secondary)] p-4",children:[k("h2",{className:"text-xl font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:t}),e?k("div",{className:"rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-interactive-primary)] p-4",style:{boxShadow:"0 0 12px var(--inkblot-semantic-color-interactive-primary)"},children:e}):null,r.length>0?it("div",{children:[k("h3",{className:"mb-2 text-sm font-medium text-[var(--inkblot-semantic-color-text-secondary)]",children:"Connected To"}),k("div",{className:"grid grid-cols-2 gap-2 sm:grid-cols-3",children:r.map((d,x)=>it("div",{className:"rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-background-tertiary)] px-3 py-2",children:[k("span",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:d.label}),k("p",{className:"text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:d.value})]},x))})]}):null,k("div",{className:"mt-2",children:k(D,{type:"text",value:n,onChange:d=>i?.(d.target.value),onKeyDown:u,placeholder:"Ask about this entity...",className:"rounded-[var(--inkblot-radius-md)]"})})]})})}import{Component as Qt}from"react";import{jsx as ft}from"react/jsx-runtime";var $=class extends Qt{constructor(e){super(e),this.state={hasError:!1,error:null}}static getDerivedStateFromError(e){return{hasError:!0,error:e}}render(){return this.state.hasError&&this.state.error?this.props.fallback?this.props.fallback:ft("div",{className:o("inline-flex items-center gap-3 rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-tertiary)] px-4 py-3 text-[var(--inkblot-semantic-color-text-secondary)]",this.props.className),role:"alert",children:ft("span",{className:"text-sm font-medium",children:"Something went wrong"})}):this.props.children}};import{jsx as Yt}from"react/jsx-runtime";var Xt={success:"border-[var(--inkblot-semantic-color-status-success)] bg-[var(--inkblot-semantic-color-status-success)]/10 text-[var(--inkblot-semantic-color-status-success)]",warning:"border-[var(--inkblot-semantic-color-status-warning)] bg-[var(--inkblot-semantic-color-status-warning)]/10 text-[var(--inkblot-semantic-color-status-warning)]",error:"border-[var(--inkblot-semantic-color-status-error)] bg-[var(--inkblot-semantic-color-status-error)]/10 text-[var(--inkblot-semantic-color-status-error)]",info:"border-[var(--inkblot-semantic-color-status-info)] bg-[var(--inkblot-semantic-color-status-info)]/10 text-[var(--inkblot-semantic-color-status-info)]"};function U({label:t,variant:e="info",className:r}){return Yt("span",{className:o("inline-flex items-center rounded-[var(--inkblot-radius-md)] border px-2 py-0.5 text-xs font-medium",Xt[e],r),children:t})}import{jsx as B,jsxs as ee}from"react/jsx-runtime";function te(t){return t>=.8?"success":t>=.5?"info":t>=.2?"warning":"error"}function j({event:t,className:e}){let r=te(t.confidence_score),n=`${Math.round(t.confidence_score*100)}%`;return ee("div",{className:o("flex flex-wrap items-center gap-2 rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-4",e),children:[B("span",{className:"text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:t.actor}),B("span",{className:"text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:"\u2192"}),B("span",{className:"text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:t.subject}),B("span",{className:"rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-background-tertiary)] px-2 py-0.5 text-xs text-[var(--inkblot-semantic-color-text-secondary)]",children:t.event_type}),B("span",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:t.timestamp}),B(U,{label:n,variant:r})]})}import{jsx as h,jsxs as gt}from"react/jsx-runtime";var re={success:"bg-[var(--inkblot-semantic-color-status-success)]",warning:"bg-[var(--inkblot-semantic-color-status-warning)]",error:"bg-[var(--inkblot-semantic-color-status-error)]",info:"bg-[var(--inkblot-semantic-color-status-info)]"};function oe(){return h("svg",{viewBox:"0 0 16 16",className:"h-4 w-4 text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0,children:h("circle",{cx:"8",cy:"8",r:"2",fill:"currentColor"})})}function yt({events:t,className:e}){return h(l,{className:e,children:h("div",{className:o("flex flex-col gap-4 border-l-2 border-[var(--inkblot-semantic-color-border-default)] pl-4"),children:t.map(r=>gt("div",{className:"flex items-start gap-3",children:[h("div",{className:"flex shrink-0 items-center pt-0.5",children:r.icon??h(oe,{})}),gt("div",{className:"min-w-0 flex-1",children:[h("p",{className:"text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:r.title}),h("p",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:r.timestamp})]}),r.status?h("div",{className:o("mt-1.5 h-2 w-2 shrink-0 rounded-full",re[r.status]),"aria-hidden":!0}):null]},r.id))})})}import{jsx as y,jsxs as F}from"react/jsx-runtime";var lt=36,st=2*Math.PI*lt;function Z({label:t,value:e,subtext:r,trend:n,className:i}){let s=Math.min(100,Math.max(0,e)),a=st-s/100*st;return y(l,{className:i,children:F("div",{className:"flex flex-col items-center gap-4 rounded-[var(--inkblot-radius-lg)] bg-[var(--inkblot-semantic-color-background-secondary)] p-4",children:[F("div",{className:"relative",children:[F("svg",{width:"96",height:"96",viewBox:"0 0 96 96",className:"-rotate-90",children:[y("circle",{cx:"48",cy:"48",r:lt,fill:"none",stroke:"var(--inkblot-semantic-color-background-tertiary)",strokeWidth:"4"}),y("circle",{cx:"48",cy:"48",r:lt,fill:"none",stroke:"var(--inkblot-semantic-color-interactive-primary)",strokeWidth:"4",strokeDasharray:st,strokeDashoffset:a,strokeLinecap:"round",className:"transition-[stroke-dashoffset] duration-[var(--inkblot-duration-fast)]"})]}),y("div",{className:"absolute inset-0 flex flex-col items-center justify-center",children:F("span",{className:"flex items-center gap-1 text-lg font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:[s,"%",n==="up"?y("svg",{viewBox:"0 0 16 16",className:"h-4 w-4 text-[var(--inkblot-semantic-color-status-success)]","aria-hidden":!0,children:y("path",{fill:"currentColor",d:"M8 4l4 6H4l4-6z"})}):n==="down"?y("svg",{viewBox:"0 0 16 16",className:"h-4 w-4 text-[var(--inkblot-semantic-color-status-error)]","aria-hidden":!0,children:y("path",{fill:"currentColor",d:"M8 12l4-6H4l4 6z"})}):null]})})]}),F("div",{className:"text-center",children:[y("p",{className:"text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:t}),r?y("p",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:r}):null]})]})})}import{jsx as S,jsxs as ie}from"react/jsx-runtime";var ae={default:"text-[var(--inkblot-semantic-color-text-primary)]",success:"text-[var(--inkblot-semantic-color-status-success)]",warning:"text-[var(--inkblot-semantic-color-status-warning)]",error:"text-[var(--inkblot-semantic-color-status-error)]"};function ne({className:t}){return S("svg",{viewBox:"0 0 16 16",className:o("h-4 w-4",t),"aria-hidden":!0,children:S("path",{fill:"currentColor",d:"M6 4l4 4-4 4V4z"})})}function xt({items:t,className:e}){return S(l,{className:e,children:S("ul",{className:o("flex flex-col gap-4 py-2"),children:t.map((r,n)=>ie("li",{className:"flex items-center justify-between gap-4",children:[S("span",{className:"text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:r.label}),S("span",{className:o("flex items-center gap-1 text-sm font-medium",ae[r.variant??"default"]),children:r.value!=null?r.value:S(ne,{})})]},n))})})}import{jsx as se}from"react/jsx-runtime";function C({className:t,...e}){return se("div",{className:o("animate-shimmer rounded-[var(--inkblot-radius-md)] bg-[length:200%_100%] bg-[linear-gradient(90deg,var(--inkblot-semantic-color-background-secondary)_0%,var(--inkblot-semantic-color-background-tertiary)_50%,var(--inkblot-semantic-color-background-secondary)_100%)]",t),...e})}import{jsx as V,jsxs as le}from"react/jsx-runtime";function L({className:t,...e}){return le("div",{className:o("flex flex-col gap-2 rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-4",t),...e,children:[V(C,{className:"h-5 w-3/4"}),V(C,{className:"h-4 w-full"}),V(C,{className:"h-4 w-5/6"}),V(C,{className:"h-4 w-4/5"}),V(C,{className:"h-4 w-3/4"})]})}import{jsx as q,jsxs as kt}from"react/jsx-runtime";function J({children:t,loading:e=!1,title:r,className:n,onRetry:i}){return q(l,{className:n,onRetry:i,children:e?kt("div",{className:o("flex flex-col gap-4",n),children:[r?q("h2",{className:"text-lg font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:r}):null,q(L,{})]}):kt("div",{className:o("flex flex-col gap-4",n),children:[r?q("h2",{className:"text-lg font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:r}):null,t]})})}import{Link as ce}from"react-router-dom";import{jsx as ct,jsxs as ht}from"react/jsx-runtime";function Q({resetErrorBoundary:t}){return ht("div",{role:"alert",className:o("flex min-h-[50vh] flex-col items-center justify-center gap-[var(--inkblot-spacing-6)] px-[var(--inkblot-spacing-6)] py-[var(--inkblot-spacing-8)]","bg-[var(--inkblot-semantic-color-background-primary)]","[font:var(--inkblot-semantic-typography-body-small)]"),children:[ct("p",{className:"text-center text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-heading-medium)]",children:"Esta p\xE1gina no est\xE1 disponible"}),ht("div",{className:"flex flex-col items-center gap-[var(--inkblot-spacing-4)] sm:flex-row",children:[ct("button",{type:"button",onClick:t,className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center rounded-[var(--inkblot-radius-lg)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]","hover:bg-[var(--inkblot-semantic-color-interactive-primary-hover)] active:bg-[var(--inkblot-semantic-color-interactive-primary-active)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]","transition-colors duration-[var(--inkblot-duration-fast)]"),children:"Reintentar"}),ct(ce,{to:"/",className:o("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center rounded-[var(--inkblot-radius-lg)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","text-[var(--inkblot-semantic-color-interactive-primary)] underline-offset-4 hover:underline","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]","transition-colors duration-[var(--inkblot-duration-fast)]"),children:"Ir al inicio"})]})]})}import{ErrorBoundary as de}from"react-error-boundary";import{useNavigate as me}from"react-router-dom";import{jsx as pe}from"react/jsx-runtime";function Nt({children:t,fallback:e}){let r=me();return pe(de,{FallbackComponent:e??Q,onReset:()=>{r("/")},children:t})}import{jsx as H,jsxs as ue}from"react/jsx-runtime";function Et({items:t,className:e}){return H(l,{className:e,children:H("nav",{className:o("flex w-14 flex-col items-center gap-1 border-r border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] py-4"),"aria-label":"Navigation",children:t.map(r=>ue("div",{className:o("relative flex w-full flex-col items-center gap-1 rounded-[var(--inkblot-radius-md)] px-2 py-2 transition-colors hover:text-[var(--inkblot-semantic-color-text-secondary)]",r.active?"text-[var(--inkblot-semantic-color-interactive-primary)]":"text-[var(--inkblot-semantic-color-text-tertiary)]"),children:[r.active?H("span",{className:"absolute left-0 top-1/2 h-6 w-0.5 -translate-y-1/2 rounded-r-full bg-[var(--inkblot-semantic-color-interactive-primary)]","aria-hidden":!0}):null,H("div",{className:"flex h-8 w-8 items-center justify-center [&>svg]:h-5 [&>svg]:w-5",children:r.icon}),r.label?H("span",{className:"text-[10px] font-medium",children:r.label}):null]},r.id))})})}import{Mail as Ct,FileText as X,Zap as ve,Phone as St,Link2 as be}from"lucide-react";import{jsx as v,jsxs as Pt}from"react/jsx-runtime";function fe(t){return t>=.8?"bg-[var(--inkblot-semantic-color-status-success)]":t>=.5?"bg-[var(--inkblot-semantic-color-status-info)]":t>=.2?"bg-[var(--inkblot-semantic-color-status-warning)]":"bg-[var(--inkblot-semantic-color-status-error)]"}var ge={EMAIL_OPENED:Ct,EMAIL_SENT:Ct,INVOICE_PAID:X,INVOICE_OVERDUE:X,CONTRACT_SIGNED:X,STAGE_CHANGED:ve,CALL_COMPLETED:St,PHONE_CALL:St,RELATIONSHIP_DETECTED:be};function ye(t){return ge[t]??X}function xe(t){return t.metadata?.description??t.event_type.replace(/_/g," ").toLowerCase()}function ke(t){return t.metadata?.details??`${t.actor} - ${t.subject}`}function Y({events:t,onEntitySelect:e,findEntity:r,emptyMessage:n="No hay actividad reciente",className:i}){let s=e?a=>{let u=r?.(a.subject)??r?.(a.actor);u&&e(u)}:void 0;return v(l,{children:v("div",{className:o("space-y-2",i),children:t.length===0?v("p",{className:"py-6 text-center text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:n}):t.map(a=>{let d=!!(r?.(a.subject)??r?.(a.actor))&&!!s,x=ye(a.event_type),N=Pt("div",{className:"flex flex-1 items-center gap-3",children:[v(x,{className:"h-4 w-4 shrink-0 text-[var(--inkblot-semantic-color-text-secondary)]","aria-hidden":!0}),v("div",{className:`h-2 w-2 shrink-0 rounded-full ${fe(a.confidence_score)}`,"aria-hidden":!0}),Pt("div",{className:"min-w-0 flex-1",children:[v("p",{className:"text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:xe(a)}),v("p",{className:"text-xs text-[var(--inkblot-semantic-color-text-secondary)]",children:ke(a)})]}),v("span",{className:"shrink-0 text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:a.timestamp})]}),b=a.id??`${a.actor}-${a.subject}-${a.timestamp}`;return v("div",{children:d?v("button",{type:"button",onClick:()=>s(a),className:"flex w-full items-center gap-3 rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-background-secondary)] p-3 text-left transition-colors duration-[var(--inkblot-duration-fast)] hover:bg-[var(--inkblot-semantic-color-background-tertiary)] focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]",children:N}):v("div",{className:"flex w-full items-center gap-3 rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-background-secondary)] p-3",children:N})},b)})})})}import{NavLink as he}from"react-router-dom";import{ClipboardList as Ne,Brain as Ee,BarChart3 as Ce,Network as Se,Activity as Pe,Settings as we,Sparkles as Me}from"lucide-react";import{jsx as P,jsxs as Re}from"react/jsx-runtime";var Ie=[{id:"home",path:"/",icon:Ne,label:"Home"},{id:"intelligence",path:"/intelligence",icon:Ee,label:"Intelligence"},{id:"pipeline",path:"/pipeline",icon:Ce,label:"Pipeline"},{id:"graph",path:"/graph",icon:Se,label:"Graph"},{id:"events",path:"/events",icon:Pe,label:"Events"},{id:"settings",path:"/settings",icon:we,label:"Settings"}];function wt({items:t=Ie,brandLogo:e,brandTitle:r="Command Canvas \u2014 AI-native Interface",className:n}){return P(l,{children:Re("nav",{className:o("flex h-full flex-col gap-4 bg-[var(--inkblot-semantic-color-background-secondary)] p-3",n),children:[P("div",{className:"flex flex-col items-center gap-2",children:P("div",{className:"flex h-10 w-10 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-interactive-primary)]",title:r,children:e??P(Me,{className:"h-5 w-5 text-[var(--inkblot-semantic-color-text-primary)]","aria-hidden":!0})})}),P("div",{className:"flex flex-1 flex-col gap-2",children:t.map(i=>{let s=i.icon;return P(he,{to:i.path,end:i.path==="/","aria-label":i.label,className:({isActive:a})=>`flex items-center justify-center gap-2 rounded-[var(--inkblot-radius-md)] border-l-2 px-3 py-2 transition-colors duration-[var(--inkblot-duration-fast)] ${a?"border-[var(--inkblot-semantic-color-interactive-primary)] bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-primary)]":"border-transparent text-[var(--inkblot-semantic-color-text-secondary)] hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)]"}`,children:P(s,{size:20,"aria-hidden":!0})},i.id)})})]})})}import{useState as tt,useCallback as Be,useRef as Le,useEffect as Ae}from"react";import{jsx as c,jsxs as et}from"react/jsx-runtime";function Te(t){let e=t.toLowerCase();return e.includes("entity")||e.includes("company")||e.includes("person")||e.includes("deal")||e.includes("profile")||e.includes("org")?"entity":e.includes("event")||e.includes("activity")||e.includes("recent")||e.includes("stream")||e.includes("log")?"event":"general"}function De({entities:t}){let e=t[0];return e?et("div",{className:"space-y-3",children:[c("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:"Here's the entity profile and current intelligence scores:"}),c(K,{name:e.name,entityType:e.type,metadata:e.metadata,edges:[{type:"WORKS_WITH",target:t[1]?.name},{type:"MANAGES",target:t[4]?.name}]})]}):null}function Fe({events:t}){return et("div",{className:"space-y-2",children:[c("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:"Latest activity from the event bus:"}),t.slice(0,5).map(e=>c(j,{event:e},e.id??`${e.actor}-${e.subject}-${e.timestamp}`))]})}function Ve(){return c("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-primary)]",children:"Revenue confidence is trending upward at 78%. Momentum score increased 12% this week driven by 3 new meetings with Acme Corp. Churn risk remains low at 15% across the active pipeline."})}function Mt({entities:t,events:e,onFocusEntity:r,findEntity:n,placeholder:i="Ask anything \u2014 deals, contacts, forecasts...",emptyMessage:s="Escribe para comenzar...",className:a}){let[u,d]=tt(""),[x,N]=tt([]),[b,G]=tt(!1),[rt,f]=tt(new Map),E=Le(null);Ae(()=>{E.current&&(E.current.scrollTop=E.current.scrollHeight)},[x,b]);let Tt=Be(()=>{let g=u.trim();if(!g||b)return;let pt=n?.(g);pt&&r&&r(pt);let Dt={id:`msg-${Date.now()}`,role:"user",content:g,timestamp:new Date().toISOString()},ut=Te(g);N(z=>[...z,Dt]),d(""),G(!0),setTimeout(()=>{let z={id:`msg-${Date.now()}-res`,role:"assistant",content:"",intent:ut,timestamp:new Date().toISOString()},W;switch(ut){case"entity":W=c(De,{entities:t});break;case"event":W=c(Fe,{events:e});break;default:W=c(Ve,{})}f(ot=>{let vt=new Map(ot);return vt.set(z.id,W),vt}),N(ot=>[...ot,z]),G(!1)},1e3)},[u,b,t,e,r,n]);return et("div",{className:o("flex h-full flex-col",a),children:[et("div",{ref:E,className:"flex-1 space-y-4 overflow-y-auto p-4",children:[x.length===0&&!b?c("div",{className:"flex flex-1 items-center justify-center py-12",children:c("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:s})}):x.map(g=>c("div",{className:"flex flex-col gap-2",children:g.role==="user"?c("div",{className:"flex justify-end",children:c("div",{className:"max-w-[80%] rounded-[var(--inkblot-radius-lg)] bg-[var(--inkblot-semantic-color-interactive-primary)] px-4 py-3 text-sm text-[var(--inkblot-semantic-color-text-primary)]",children:g.content})}):c("div",{className:"max-w-[90%]",children:rt.get(g.id)??c("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-primary)]",children:g.content})})},g.id)),b&&c("div",{className:"max-w-[70%]",children:c(L,{className:"animate-shimmer"})})]}),c("div",{className:"shrink-0 border-t border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)] p-4",children:c(M,{promptValue:u,onPromptChange:d,onPromptSubmit:Tt,isProcessing:b,placeholder:i})})]})}import{Sparkles as He}from"lucide-react";import{jsx as _,jsxs as It}from"react/jsx-runtime";function Rt({prompt:t,onPromptChange:e,onSubmit:r,isProcessing:n,placeholder:i="Ask anything \u2014 deals, contacts, forecasts...",subtitle:s="Citron OS v1.0 \u2014 AI-native Revenue & Operations Platform",className:a}){return It("div",{className:o("border-t border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-4",a),children:[It("div",{className:"flex items-center gap-3",children:[_("div",{className:"flex h-10 w-10 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-interactive-primary)]",children:_(He,{className:"h-5 w-5 text-[var(--inkblot-semantic-color-text-primary)]","aria-hidden":!0})}),_("div",{className:"flex-1",children:_(M,{promptValue:t,onPromptChange:e,onPromptSubmit:r,isProcessing:n,placeholder:i})})]}),s&&_("p",{className:"mt-2 text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:s})]})}import{jsx as A,jsxs as dt}from"react/jsx-runtime";function Bt({events:t,title:e="Event Stream",showLive:r=!0,className:n}){return A(l,{children:dt("div",{className:o("flex h-full flex-col bg-[var(--inkblot-semantic-color-background-secondary)]",n),children:[dt("div",{className:"flex shrink-0 items-center justify-between border-b border-[var(--inkblot-semantic-color-border-default)] px-4 py-3",children:[A("span",{className:"text-xs font-medium uppercase tracking-wider text-[var(--inkblot-semantic-color-text-secondary)]",children:e}),r&&dt("div",{className:"flex items-center gap-2",children:[A("div",{className:"h-2 w-2 rounded-full bg-[var(--inkblot-semantic-color-status-success)]"}),A("span",{className:"text-xs text-[var(--inkblot-semantic-color-status-success)]",children:"Live"})]})]}),A("div",{className:"flex-1 overflow-auto p-4",children:A(Y,{events:t})})]})})}import{jsx as m,jsxs as w}from"react/jsx-runtime";var _e=[{label:"Pipeline Health",value:76},{label:"Churn Risk",value:28},{label:"Expansion Signal",value:64},{label:"Team Velocity",value:83}],Oe=[{title:"Acme Corp likely to close within 14 days",description:"Based on email sentiment, meeting cadence, and champion engagement patterns.",confidence:89},{title:"Churn risk detected: GlobalTech Inc",description:"Declining touchpoints and support ticket volume suggest potential churn.",confidence:74},{title:"Expansion opportunity: TechVentures",description:"Usage patterns and NPS scores indicate readiness for upsell conversation.",confidence:81}];function Lt({loading:t,kpiCards:e=_e,aiInsights:r=Oe,title:n="Intelligence Lab",subtitle:i="AI-generated insights - Updated 3 min ago",className:s}){return w("div",{className:o("flex h-full flex-col gap-4 overflow-y-auto p-4",s),children:[w("div",{children:[m("h1",{className:"text-2xl font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:n}),m("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:i})]}),m(J,{loading:t,title:"",children:m(l,{children:w("div",{className:"flex flex-col gap-4",children:[m("div",{className:"grid grid-cols-2 gap-4 lg:grid-cols-4",children:e.map(a=>m(Z,{label:a.label,value:a.value,subtext:a.subtext,trend:a.trend},a.label))}),w("div",{children:[m("h2",{className:"mb-4 border-b border-[var(--inkblot-semantic-color-border-default)] pb-2 text-sm font-bold uppercase tracking-wider text-[var(--inkblot-semantic-color-text-primary)]",children:"AI Insights"}),m("div",{className:"flex flex-col gap-4",children:r.map(a=>m(l,{children:w("div",{className:"flex items-start justify-between gap-4 rounded-[var(--inkblot-radius-lg)] bg-[var(--inkblot-semantic-color-background-secondary)] p-4",children:[w("div",{className:"min-w-0 flex-1",children:[m("h3",{className:"font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:a.title}),m("p",{className:"mt-1 text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:a.description})]}),w("div",{className:"flex shrink-0 flex-col items-center",children:[m("span",{className:"text-lg font-bold text-[var(--inkblot-semantic-color-text-primary)]",children:a.confidence}),m("span",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:"Conf."})]})]})},a.title))})]})]})})})]})}import{jsx as O,jsxs as mt}from"react/jsx-runtime";function At({navigation:t,eventStream:e,commandBar:r,children:n,className:i,eventStreamWidth:s="w-80"}){return mt("div",{className:o("flex h-screen w-screen overflow-hidden bg-[var(--inkblot-semantic-color-background-primary)]",i),children:[O("aside",{className:"flex h-full w-16 shrink-0 flex-col border-r border-[var(--inkblot-semantic-color-border-default)]",children:t}),O("main",{className:"flex flex-1 flex-col overflow-hidden",children:mt("div",{className:"flex min-h-0 flex-1",children:[mt("div",{className:"flex min-h-0 flex-1 flex-col overflow-hidden bg-[var(--inkblot-semantic-color-background-primary)]",children:[O("div",{className:"flex-1 overflow-auto",children:n}),O("div",{className:"shrink-0",children:r})]}),e&&O("aside",{className:o("flex h-full shrink-0 flex-col border-l border-[var(--inkblot-semantic-color-border-default)]",s),children:e})]})})]})}export{Y as ActivityStream,wt as AppNavigationRail,T as Button,Mt as ChatFeed,Rt as CommandBar,M as CommandInterface,K as EntityCard,bt as EntityCommandCard,$ as ErrorBoundary,j as EventRow,yt as EventStreamFeed,Bt as EventStreamSidebar,D as Input,Lt as IntelligenceLab,Z as IntelligenceScoreCard,At as MainShell,xt as MetricComparisonList,J as ModuleContainer,l as ModuleErrorBoundary,L as ModuleSkeleton,Et as OSNavigationRail,Q as PageErrorFallback,Nt as RouteWithErrorBoundary,C as Skeleton,U as StatusBadge};
1
+ import{Send as Ge,Calendar as ze}from"lucide-react";import{clsx as Oe}from"clsx";import{twMerge as _e}from"tailwind-merge";function e(...t){return _e(Oe(t))}import{jsx as kt,jsxs as Ke}from"react/jsx-runtime";var $e={primary:["bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]","hover:bg-[var(--inkblot-semantic-color-interactive-primary-hover)] active:bg-[var(--inkblot-semantic-color-interactive-primary-active)]"],secondary:["bg-[var(--inkblot-semantic-color-interactive-secondary)] text-[var(--inkblot-semantic-color-text-primary)]","border border-[var(--inkblot-semantic-color-border-default)]","hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] hover:border-[var(--inkblot-semantic-color-border-strong)]","active:bg-[var(--inkblot-semantic-color-background-tertiary)]"]};function $t({buttons:t,className:r}){return kt("div",{className:e("flex flex-wrap items-center gap-[var(--inkblot-spacing-3)]",r),children:t.map(a=>Ke("button",{type:"button",onClick:()=>{a.onClick?.()},disabled:a.disabled,className:e("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center gap-2 rounded-[var(--inkblot-radius-lg)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","[font:var(--inkblot-semantic-typography-body-medium)] font-medium","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]","transition-colors duration-[var(--inkblot-duration-fast)]","disabled:opacity-[var(--inkblot-opacity-disabled)] disabled:pointer-events-none disabled:cursor-not-allowed",$e[a.variant]),children:[a.icon??null,a.label]},a.id))})}function xt({onSendNow:t,onSchedule:r,onSaveDraft:a,className:o}){return kt($t,{buttons:[{id:"send",label:"Send Now",variant:"primary",icon:kt(Ge,{className:"h-4 w-4"}),onClick:t},{id:"schedule",label:"Schedule",variant:"secondary",icon:kt(ze,{className:"h-4 w-4"}),onClick:r},{id:"draft",label:"Save Draft",variant:"secondary",onClick:a}],className:o})}import{forwardRef as Ue}from"react";import{Loader2 as je,Sparkles as qe}from"lucide-react";import{jsx as U,jsxs as Kt}from"react/jsx-runtime";var it=Ue(({label:t,loading:r=!1,onWriteWithAI:a,disabled:o,className:n,...s},i)=>{let l=o||r;return Kt("div",{className:e("flex flex-col gap-[var(--inkblot-spacing-2)]",n),children:[Kt("div",{className:"flex items-center justify-between",children:[t?U("label",{htmlFor:s.id,className:e("uppercase tracking-wider","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:t}):U("span",{}),a?Kt("button",{type:"button",onClick:a,disabled:r,className:e("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center gap-2 rounded-[var(--inkblot-radius-lg)]","border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-interactive-secondary)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","[font:var(--inkblot-semantic-typography-body-medium)] font-medium","text-[var(--inkblot-semantic-color-text-primary)]","hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] hover:border-[var(--inkblot-semantic-color-border-strong)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]","transition-colors duration-[var(--inkblot-duration-fast)]","disabled:opacity-[var(--inkblot-opacity-disabled)] disabled:cursor-not-allowed disabled:pointer-events-none"),children:[r?U(je,{className:"h-4 w-4 shrink-0 animate-spin"}):U(qe,{className:"h-4 w-4 shrink-0",style:{color:"var(--inkblot-semantic-color-status-warning)"}}),r?"Generating...":"Write with AI"]}):null]}),U("div",{className:"relative",children:U("textarea",{ref:i,disabled:l,className:e("min-h-[12rem] w-full rounded-[var(--inkblot-radius-lg)]","border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-secondary)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]","[font:var(--inkblot-semantic-typography-body-medium)]","text-[var(--inkblot-semantic-color-text-primary)] placeholder:text-[var(--inkblot-semantic-color-text-tertiary)]","transition-colors duration-[var(--inkblot-duration-fast)]","hover:border-[var(--inkblot-semantic-color-border-strong)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]","disabled:opacity-[var(--inkblot-opacity-disabled)] disabled:cursor-not-allowed disabled:pointer-events-none"),...s})})]})});it.displayName="AIComposeInput";import{forwardRef as Qe}from"react";import{jsx as Ze}from"react/jsx-runtime";var Ye={primary:"bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-primary)] hover:bg-[var(--inkblot-semantic-color-interactive-primary-hover)] active:bg-[var(--inkblot-semantic-color-interactive-primary-active)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--inkblot-semantic-color-border-focus)] focus-visible:outline-offset-2 disabled:opacity-[var(--inkblot-opacity-disabled)] disabled:pointer-events-none disabled:cursor-not-allowed",secondary:"bg-[var(--inkblot-semantic-color-interactive-secondary)] text-[var(--inkblot-semantic-color-text-primary)] border border-[var(--inkblot-semantic-color-border-default)] hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] hover:border-[var(--inkblot-semantic-color-border-strong)] active:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-[var(--inkblot-semantic-color-border-focus)] focus-visible:outline-offset-2 disabled:opacity-[var(--inkblot-opacity-disabled)] disabled:pointer-events-none disabled:cursor-not-allowed"},st=Qe(({className:t,variant:r="primary",disabled:a,...o},n)=>Ze("button",{ref:n,disabled:a,className:e("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center rounded-[var(--inkblot-radius-lg)] px-4 py-2 font-semibold transition-[background,border-color] duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)]",Ye[r],t),...o}));st.displayName="Button";import{CheckCircle as Xe,Zap as Je,FileText as tr,Clock as er}from"lucide-react";import{jsx as x,jsxs as lt}from"react/jsx-runtime";var rr={sent:{icon:Xe,label:"Sent",colorClass:"text-[var(--inkblot-semantic-color-status-success)]"},active:{icon:Je,label:"Active",colorClass:"text-[var(--inkblot-semantic-color-status-warning)]"},draft:{icon:tr,label:"Draft",colorClass:"text-[var(--inkblot-semantic-color-text-secondary)]"},scheduled:{icon:er,label:"Scheduled",colorClass:"text-[var(--inkblot-semantic-color-status-info)]"}};function ht({columns:t,rows:r,className:a}){return x("div",{className:e("overflow-x-auto rounded-[var(--inkblot-radius-lg)]","border border-[var(--inkblot-semantic-color-border-subtle)]","bg-[var(--inkblot-semantic-color-background-primary)]",a),children:lt("table",{className:"w-full min-w-[600px] border-collapse",children:[x("thead",{children:x("tr",{className:"bg-[var(--inkblot-semantic-color-background-secondary)]",children:t.map(o=>x("th",{className:e("px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)] text-left","uppercase tracking-wider","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]","border-b border-[var(--inkblot-semantic-color-border-subtle)]"),children:o.label},o.key))})}),x("tbody",{children:r.map(o=>lt("tr",{className:e("border-b border-[var(--inkblot-semantic-color-border-subtle)] last:border-b-0","transition-colors duration-[var(--inkblot-duration-fast)]","hover:bg-[var(--inkblot-semantic-color-background-secondary)]/50"),children:[x("td",{className:e("px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]","border-b border-[var(--inkblot-semantic-color-border-subtle)]"),children:lt("div",{className:"flex flex-col gap-0.5",children:[x("span",{className:e("[font:var(--inkblot-semantic-typography-body-large-bold)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:o.campaignName}),x("span",{className:e("[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]"),children:o.recipients})]})}),x("td",{className:e("px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]","border-b border-[var(--inkblot-semantic-color-border-subtle)]"),children:x(ar,{status:o.status,subtext:o.statusSubtext})}),x("td",{className:e("px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]","[font:var(--inkblot-semantic-typography-body-medium)]","text-[var(--inkblot-semantic-color-text-primary)]","border-b border-[var(--inkblot-semantic-color-border-subtle)]"),children:o.opens}),x("td",{className:e("px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]","[font:var(--inkblot-semantic-typography-body-medium)]","text-[var(--inkblot-semantic-color-text-primary)]","border-b border-[var(--inkblot-semantic-color-border-subtle)]"),children:o.clicks}),x("td",{className:e("px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]","[font:var(--inkblot-semantic-typography-body-medium)]","text-[var(--inkblot-semantic-color-text-primary)]","border-b border-[var(--inkblot-semantic-color-border-subtle)]"),children:o.date})]},o.id))})]})})}function ar({status:t,subtext:r}){let a=rr[t],o=a.icon;return lt("div",{className:"flex flex-col gap-0.5",children:[lt("div",{className:e("inline-flex items-center gap-1.5","[font:var(--inkblot-semantic-typography-body-small)] font-medium",a.colorClass),children:[x(o,{className:"h-4 w-4 shrink-0"}),a.label]}),r?x("span",{className:e("[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]"),children:r}):null]})}import{Sparkles as nr}from"lucide-react";import{File as or}from"lucide-react";import{jsx as ct,jsxs as ie}from"react/jsx-runtime";function Nt({category:t,title:r,uses:a,onClick:o,className:n}){return ie("button",{type:"button",onClick:o,className:e("flex flex-col gap-[var(--inkblot-spacing-4)] rounded-[var(--inkblot-radius-lg)]","bg-[var(--inkblot-semantic-color-background-secondary)]","border border-[var(--inkblot-semantic-color-border-subtle)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-5)]","text-left transition-colors duration-[var(--inkblot-duration-fast)]","hover:border-[var(--inkblot-semantic-color-border-default)] hover:bg-[var(--inkblot-semantic-color-background-tertiary)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]",n),children:[ie("div",{className:"flex items-start justify-between gap-2",children:[ct("span",{className:e("rounded-[var(--inkblot-radius-md)] px-[var(--inkblot-spacing-2)] py-[var(--inkblot-spacing-1)]","bg-[var(--inkblot-semantic-color-background-tertiary)]","[font:var(--inkblot-semantic-typography-body-small)] font-medium","text-[var(--inkblot-semantic-color-text-primary)]"),children:t}),ct("span",{className:e("[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]"),children:a})]}),ct("h3",{className:e("[font:var(--inkblot-semantic-typography-body-large-bold)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:r}),ct("div",{className:"flex flex-1 items-end justify-center pt-[var(--inkblot-spacing-4)]",children:ct(or,{className:e("h-10 w-10","text-[var(--inkblot-semantic-color-text-tertiary)]")})})]})}import{jsx as Ct,jsxs as Ut}from"react/jsx-runtime";function St({title:t="EMAIL TEMPLATES",onGenerateWithAI:r,templates:a,onTemplateClick:o,className:n}){return Ut("section",{className:e("flex flex-col gap-[var(--inkblot-spacing-6)]",n),children:[Ut("div",{className:"flex flex-col gap-[var(--inkblot-spacing-4)] sm:flex-row sm:items-center sm:justify-between",children:[Ct("h2",{className:e("uppercase tracking-wider","[font:var(--inkblot-semantic-typography-body-medium)]","text-[var(--inkblot-semantic-color-text-secondary)]"),children:t}),r?Ut("button",{type:"button",onClick:r,className:e("inline-flex min-h-[var(--inkblot-size-touch-target-min)] w-fit items-center justify-center gap-2 rounded-[var(--inkblot-radius-lg)]","border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-interactive-secondary)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","[font:var(--inkblot-semantic-typography-body-medium)] font-medium","text-[var(--inkblot-semantic-color-text-primary)]","hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)] hover:border-[var(--inkblot-semantic-color-border-strong)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]","transition-colors duration-[var(--inkblot-duration-fast)]"),children:[Ct(nr,{className:"h-4 w-4 shrink-0",style:{color:"var(--inkblot-semantic-color-status-warning)"}}),"Generate with AI"]}):null]}),Ct("div",{className:"grid grid-cols-1 gap-[var(--inkblot-spacing-6)] sm:grid-cols-2",children:a.map(s=>Ct(Nt,{category:s.category,title:s.title,uses:s.uses,onClick:()=>o?.(s)},s.id))})]})}import{useRef as ir}from"react";import{Loader2 as sr,Paperclip as lr,Send as cr,Sparkles as mr}from"lucide-react";import{jsx as C,jsxs as jt}from"react/jsx-runtime";function j({promptValue:t="",onPromptChange:r,onPromptSubmit:a,onFilesAttach:o,isProcessing:n=!1,response:s,placeholder:i="Ask Citron Intelligence...",accept:l,multiple:c=!0,className:d}){let m=ir(null),b=y=>{y.key==="Enter"&&!y.shiftKey&&(y.preventDefault(),a?.())},B=()=>{m.current?.click()},H=y=>{let N=y.target.files;N&&N.length>0&&o&&o(Array.from(N)),y.target.value=""};return jt("div",{className:e("flex w-full max-w-[80rem] flex-col gap-[var(--inkblot-spacing-2)]",d),children:[jt("div",{className:e("flex items-center gap-[var(--inkblot-spacing-2)]",n&&"pointer-events-none"),children:[C("input",{ref:m,type:"file",accept:l,multiple:c,onChange:H,className:"sr-only","aria-hidden":!0}),C("button",{type:"button",onClick:B,disabled:n,className:e("flex h-9 w-9 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-full)] text-[var(--inkblot-semantic-color-text-tertiary)] transition-colors duration-[var(--inkblot-duration-fast)]","hover:bg-[var(--inkblot-semantic-color-background-tertiary)] hover:text-[var(--inkblot-semantic-color-text-secondary)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]","disabled:pointer-events-none disabled:opacity-[var(--inkblot-opacity-disabled)]"),"aria-label":"Adjuntar archivos",children:C(lr,{size:20,strokeWidth:1.5,className:"text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0})}),jt("div",{className:e("relative flex min-w-0 flex-1 items-center gap-[var(--inkblot-spacing-2)] rounded-[var(--inkblot-radius-full)] bg-[var(--inkblot-semantic-color-background-primary)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)] shadow-[var(--inkblot-shadow-sm)]","transition-shadow duration-[var(--inkblot-duration-fast)]"),"aria-busy":n,children:[C("div",{className:"flex shrink-0 items-center opacity-[var(--inkblot-opacity-subtle)]","aria-hidden":!0,children:C(mr,{size:20,strokeWidth:1.5,className:"text-[var(--inkblot-semantic-color-text-tertiary)]"})}),C("textarea",{value:t,onChange:y=>r?.(y.target.value),onKeyDown:b,placeholder:i,rows:2,disabled:n,className:e("min-h-[2.5rem] min-w-0 flex-1 resize-none border-0 bg-transparent py-0 pr-[var(--inkblot-spacing-12)] [font:var(--inkblot-semantic-typography-body-small)] text-[var(--inkblot-semantic-color-text-primary)] placeholder:text-[var(--inkblot-semantic-color-text-tertiary)]","focus:outline-none focus:ring-0","disabled:cursor-not-allowed disabled:opacity-[var(--inkblot-opacity-disabled)]")}),C("div",{className:e("absolute right-[var(--inkblot-spacing-2)] top-[var(--inkblot-spacing-2)] flex h-8 w-8 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-full)] text-[var(--inkblot-semantic-color-text-inverse)]",n?"pointer-events-none bg-[var(--inkblot-semantic-color-interactive-primary)] opacity-90":""),children:n?C(sr,{size:16,strokeWidth:2,className:"animate-spin text-[var(--inkblot-semantic-color-text-inverse)]","aria-hidden":!0}):C("button",{type:"button",onClick:a,disabled:n,className:e("flex h-full w-full items-center justify-center rounded-[var(--inkblot-radius-full)] transition-colors duration-[var(--inkblot-duration-fast)]","bg-[var(--inkblot-semantic-color-interactive-primary)] hover:bg-[var(--inkblot-semantic-color-interactive-primary-hover)] active:bg-[var(--inkblot-semantic-color-interactive-primary-active)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]"),"aria-label":"Enviar",children:C(cr,{size:16,strokeWidth:2,className:"text-[var(--inkblot-semantic-color-text-inverse)]","aria-hidden":!0})})})]})]}),s?C("div",{className:"flex flex-col gap-[var(--inkblot-spacing-4)]",children:C("div",{className:"min-w-0 [font:var(--inkblot-semantic-typography-body-small)] text-[var(--inkblot-semantic-color-text-primary)]",children:s})}):null]})}import{jsx as q,jsxs as Q}from"react/jsx-runtime";var dr={Person:"border-l-[var(--inkblot-semantic-color-status-info)] bg-[var(--inkblot-semantic-color-background-secondary)]",Organization:"border-l-[var(--inkblot-semantic-color-status-warning)] bg-[var(--inkblot-semantic-color-background-secondary)]",Deal:"border-l-[var(--inkblot-semantic-color-status-success)] bg-[var(--inkblot-semantic-color-background-secondary)]"};function wt({name:t,entityType:r,metadata:a,edges:o=[],className:n}){return Q("article",{className:e("flex flex-col gap-4 rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] border-l-4 p-4",dr[r],n),children:[Q("div",{className:"flex flex-col gap-1",children:[q("span",{className:"text-xs font-medium uppercase tracking-wide text-[var(--inkblot-semantic-color-text-tertiary)]",children:r}),q("h3",{className:"text-base font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:t})]}),a&&Object.keys(a).length>0?q("dl",{className:"flex flex-col gap-1",children:Object.entries(a).map(([s,i])=>Q("div",{className:"flex gap-2",children:[Q("dt",{className:"text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:[s,":"]}),q("dd",{className:"text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:i})]},s))}):null,o.length>0?Q("div",{className:"flex flex-col gap-2",children:[q("h4",{className:"text-sm font-medium text-[var(--inkblot-semantic-color-text-secondary)]",children:"Edges"}),q("ul",{className:"flex flex-wrap gap-2",children:o.map((s,i)=>Q("li",{className:"rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-tertiary)] px-2 py-1 text-xs text-[var(--inkblot-semantic-color-text-secondary)]",children:[s.type,s.target?` \u2192 ${s.target}`:""]},i))})]}):null]})}import{forwardRef as pr}from"react";import{jsx as br}from"react/jsx-runtime";var mt=pr(({className:t,error:r,disabled:a,...o},n)=>br("input",{ref:n,disabled:a,"aria-invalid":r,"aria-disabled":a,className:e("min-h-[var(--inkblot-size-touch-target-min)] w-full rounded-[var(--inkblot-radius-md)] border bg-[var(--inkblot-semantic-color-background-secondary)] px-4 py-2 text-[var(--inkblot-semantic-color-text-primary)] placeholder:text-[var(--inkblot-semantic-color-text-tertiary)] transition-[border-color,box-shadow] duration-[var(--inkblot-duration-fast)] ease-[var(--inkblot-easing-default)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--inkblot-semantic-color-border-focus)] focus-visible:ring-offset-2 disabled:opacity-[var(--inkblot-opacity-disabled)] disabled:pointer-events-none disabled:cursor-not-allowed",r?"border-[var(--inkblot-semantic-color-status-error)] focus-visible:ring-[var(--inkblot-semantic-color-status-error)]":"border-[var(--inkblot-semantic-color-border-default)] hover:border-[var(--inkblot-semantic-color-border-strong)]",t),...o}));mt.displayName="Input";import{Component as ur}from"react";import{jsx as qt,jsxs as vr}from"react/jsx-runtime";var p=class extends ur{constructor(r){super(r),this.state={hasError:!1,error:null}}static getDerivedStateFromError(r){return{hasError:!0,error:r}}render(){return this.state.hasError&&this.state.error?vr("div",{role:"alert",className:e("flex flex-col gap-4 rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-4",this.props.className),children:[qt("p",{className:"text-base font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:"This module failed to load"}),qt("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:this.state.error.message}),qt(st,{variant:"secondary",onClick:this.props.onRetry,className:"w-fit border-[var(--inkblot-semantic-color-status-error)]",children:"Retry"})]}):this.props.children}};import{jsx as M,jsxs as Qt}from"react/jsx-runtime";function se({title:t,insights:r,stats:a=[],commandValue:o="",onCommandChange:n,onCommandSubmit:s,className:i}){let l=c=>{c.key==="Enter"&&(c.preventDefault(),s?.())};return M(p,{className:i,children:Qt("div",{className:"flex flex-col gap-4 rounded-[var(--inkblot-radius-xl)] bg-[var(--inkblot-semantic-color-background-secondary)] p-4",children:[M("h2",{className:"text-xl font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:t}),r?M("div",{className:"rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-interactive-primary)] p-4",style:{boxShadow:"0 0 12px var(--inkblot-semantic-color-interactive-primary)"},children:r}):null,a.length>0?Qt("div",{children:[M("h3",{className:"mb-2 text-sm font-medium text-[var(--inkblot-semantic-color-text-secondary)]",children:"Connected To"}),M("div",{className:"grid grid-cols-2 gap-2 sm:grid-cols-3",children:a.map((c,d)=>Qt("div",{className:"rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-background-tertiary)] px-3 py-2",children:[M("span",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:c.label}),M("p",{className:"text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:c.value})]},d))})]}):null,M("div",{className:"mt-2",children:M(mt,{type:"text",value:o,onChange:c=>n?.(c.target.value),onKeyDown:l,placeholder:"Ask about this entity...",className:"rounded-[var(--inkblot-radius-md)]"})})]})})}import{Component as gr}from"react";import{jsx as le}from"react/jsx-runtime";var Pt=class extends gr{constructor(r){super(r),this.state={hasError:!1,error:null}}static getDerivedStateFromError(r){return{hasError:!0,error:r}}render(){return this.state.hasError&&this.state.error?this.props.fallback?this.props.fallback:le("div",{className:e("inline-flex items-center gap-3 rounded-[var(--inkblot-radius-md)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-tertiary)] px-4 py-3 text-[var(--inkblot-semantic-color-text-secondary)]",this.props.className),role:"alert",children:le("span",{className:"text-sm font-medium",children:"Something went wrong"})}):this.props.children}};import{jsx as yr}from"react/jsx-runtime";var fr={success:"border-[var(--inkblot-semantic-color-status-success)] bg-[var(--inkblot-semantic-color-status-success)]/10 text-[var(--inkblot-semantic-color-status-success)]",warning:"border-[var(--inkblot-semantic-color-status-warning)] bg-[var(--inkblot-semantic-color-status-warning)]/10 text-[var(--inkblot-semantic-color-status-warning)]",error:"border-[var(--inkblot-semantic-color-status-error)] bg-[var(--inkblot-semantic-color-status-error)]/10 text-[var(--inkblot-semantic-color-status-error)]",info:"border-[var(--inkblot-semantic-color-status-info)] bg-[var(--inkblot-semantic-color-status-info)]/10 text-[var(--inkblot-semantic-color-status-info)]"};function Et({label:t,variant:r="info",className:a}){return yr("span",{className:e("inline-flex items-center rounded-[var(--inkblot-radius-md)] border px-2 py-0.5 text-xs font-medium",fr[r],a),children:t})}import{jsx as Y,jsxs as xr}from"react/jsx-runtime";function kr(t){return t>=.8?"success":t>=.5?"info":t>=.2?"warning":"error"}function Tt({event:t,className:r}){let a=kr(t.confidence_score),o=`${Math.round(t.confidence_score*100)}%`;return xr("div",{className:e("flex flex-wrap items-center gap-2 rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-4",r),children:[Y("span",{className:"text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:t.actor}),Y("span",{className:"text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:"\u2192"}),Y("span",{className:"text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:t.subject}),Y("span",{className:"rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-background-tertiary)] px-2 py-0.5 text-xs text-[var(--inkblot-semantic-color-text-secondary)]",children:t.event_type}),Y("span",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:t.timestamp}),Y(Et,{label:o,variant:a})]})}import{jsx as R,jsxs as ce}from"react/jsx-runtime";var hr={success:"bg-[var(--inkblot-semantic-color-status-success)]",warning:"bg-[var(--inkblot-semantic-color-status-warning)]",error:"bg-[var(--inkblot-semantic-color-status-error)]",info:"bg-[var(--inkblot-semantic-color-status-info)]"};function Nr(){return R("svg",{viewBox:"0 0 16 16",className:"h-4 w-4 text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0,children:R("circle",{cx:"8",cy:"8",r:"2",fill:"currentColor"})})}function me({events:t,className:r}){return R(p,{className:r,children:R("div",{className:e("flex flex-col gap-4 border-l-2 border-[var(--inkblot-semantic-color-border-default)] pl-4"),children:t.map(a=>ce("div",{className:"flex items-start gap-3",children:[R("div",{className:"flex shrink-0 items-center pt-0.5",children:a.icon??R(Nr,{})}),ce("div",{className:"min-w-0 flex-1",children:[R("p",{className:"text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:a.title}),R("p",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:a.timestamp})]}),a.status?R("div",{className:e("mt-1.5 h-2 w-2 shrink-0 rounded-full",hr[a.status]),"aria-hidden":!0}):null]},a.id))})})}import{jsx as I,jsxs as dt}from"react/jsx-runtime";var Zt=36,Yt=2*Math.PI*Zt;function It({label:t,value:r,subtext:a,trend:o,className:n}){let s=Math.min(100,Math.max(0,r)),i=Yt-s/100*Yt;return I(p,{className:n,children:dt("div",{className:"flex flex-col items-center gap-4 rounded-[var(--inkblot-radius-lg)] bg-[var(--inkblot-semantic-color-background-secondary)] p-4",children:[dt("div",{className:"relative",children:[dt("svg",{width:"96",height:"96",viewBox:"0 0 96 96",className:"-rotate-90",children:[I("circle",{cx:"48",cy:"48",r:Zt,fill:"none",stroke:"var(--inkblot-semantic-color-background-tertiary)",strokeWidth:"4"}),I("circle",{cx:"48",cy:"48",r:Zt,fill:"none",stroke:"var(--inkblot-semantic-color-interactive-primary)",strokeWidth:"4",strokeDasharray:Yt,strokeDashoffset:i,strokeLinecap:"round",className:"transition-[stroke-dashoffset] duration-[var(--inkblot-duration-fast)]"})]}),I("div",{className:"absolute inset-0 flex flex-col items-center justify-center",children:dt("span",{className:"flex items-center gap-1 text-lg font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:[s,"%",o==="up"?I("svg",{viewBox:"0 0 16 16",className:"h-4 w-4 text-[var(--inkblot-semantic-color-status-success)]","aria-hidden":!0,children:I("path",{fill:"currentColor",d:"M8 4l4 6H4l4-6z"})}):o==="down"?I("svg",{viewBox:"0 0 16 16",className:"h-4 w-4 text-[var(--inkblot-semantic-color-status-error)]","aria-hidden":!0,children:I("path",{fill:"currentColor",d:"M8 12l4-6H4l4 6z"})}):null]})})]}),dt("div",{className:"text-center",children:[I("p",{className:"text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:t}),a?I("p",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:a}):null]})]})})}import{jsx as W,jsxs as wr}from"react/jsx-runtime";var Cr={default:"text-[var(--inkblot-semantic-color-text-primary)]",success:"text-[var(--inkblot-semantic-color-status-success)]",warning:"text-[var(--inkblot-semantic-color-status-warning)]",error:"text-[var(--inkblot-semantic-color-status-error)]"};function Sr({className:t}){return W("svg",{viewBox:"0 0 16 16",className:e("h-4 w-4",t),"aria-hidden":!0,children:W("path",{fill:"currentColor",d:"M6 4l4 4-4 4V4z"})})}function de({items:t,className:r}){return W(p,{className:r,children:W("ul",{className:e("flex flex-col gap-4 py-2"),children:t.map((a,o)=>wr("li",{className:"flex items-center justify-between gap-4",children:[W("span",{className:"text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:a.label}),W("span",{className:e("flex items-center gap-1 text-sm font-medium",Cr[a.variant??"default"]),children:a.value!=null?a.value:W(Sr,{})})]},o))})})}import{jsx as Pr}from"react/jsx-runtime";function A({className:t,...r}){return Pr("div",{className:e("animate-shimmer rounded-[var(--inkblot-radius-md)] bg-[length:200%_100%] bg-[linear-gradient(90deg,var(--inkblot-semantic-color-background-secondary)_0%,var(--inkblot-semantic-color-background-tertiary)_50%,var(--inkblot-semantic-color-background-secondary)_100%)]",t),...r})}import{jsx as pt,jsxs as Er}from"react/jsx-runtime";function Z({className:t,...r}){return Er("div",{className:e("flex flex-col gap-2 rounded-[var(--inkblot-radius-lg)] border border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-4",t),...r,children:[pt(A,{className:"h-5 w-3/4"}),pt(A,{className:"h-4 w-full"}),pt(A,{className:"h-4 w-5/6"}),pt(A,{className:"h-4 w-4/5"}),pt(A,{className:"h-4 w-3/4"})]})}import{jsx as Mt,jsxs as pe}from"react/jsx-runtime";function Rt({children:t,loading:r=!1,title:a,className:o,onRetry:n}){return Mt(p,{className:o,onRetry:n,children:r?pe("div",{className:e("flex flex-col gap-4",o),children:[a?Mt("h2",{className:"text-lg font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:a}):null,Mt(Z,{})]}):pe("div",{className:e("flex flex-col gap-4",o),children:[a?Mt("h2",{className:"text-lg font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:a}):null,t]})})}import{Plus as Tr}from"lucide-react";import{jsx as bt,jsxs as Bt}from"react/jsx-runtime";function X({title:t,subtitle:r,icon:a,action:o,className:n}){return Bt("header",{className:e("flex flex-col gap-2 sm:flex-row sm:items-start sm:justify-between","pb-[var(--inkblot-spacing-2)]",n),children:[Bt("div",{className:"flex items-start gap-[var(--inkblot-spacing-3)]",children:[a?bt("div",{className:e("flex h-10 w-10 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-lg)]","bg-[var(--inkblot-semantic-color-background-secondary)]","[color:var(--inkblot-semantic-color-status-warning)]"),children:a}):null,Bt("div",{className:"min-w-0",children:[bt("h1",{className:e("text-[var(--inkblot-semantic-color-text-primary)]","[font:var(--inkblot-semantic-typography-heading-medium)]"),children:t}),r?bt("p",{className:e("mt-0.5 text-[var(--inkblot-semantic-color-text-secondary)]","[font:var(--inkblot-semantic-typography-body-small)]"),children:r}):null]})]}),o?bt("div",{className:"mt-[var(--inkblot-spacing-4)] shrink-0 sm:mt-0",children:o}):null]})}function J({label:t,onClick:r,icon:a,className:o}){return Bt("button",{type:"button",onClick:r,className:e("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center gap-2 rounded-[var(--inkblot-radius-lg)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]","[font:var(--inkblot-semantic-typography-body-medium)] font-semibold","hover:bg-[var(--inkblot-semantic-color-interactive-primary-hover)] active:bg-[var(--inkblot-semantic-color-interactive-primary-active)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]","transition-colors duration-[var(--inkblot-duration-fast)]",o),children:[a??bt(Tr,{className:"h-4 w-4"}),t]})}import{Link as Ir}from"react-router-dom";import{jsx as Xt,jsxs as be}from"react/jsx-runtime";function At({resetErrorBoundary:t}){return be("div",{role:"alert",className:e("flex min-h-[50vh] flex-col items-center justify-center gap-[var(--inkblot-spacing-6)] px-[var(--inkblot-spacing-6)] py-[var(--inkblot-spacing-8)]","bg-[var(--inkblot-semantic-color-background-primary)]","[font:var(--inkblot-semantic-typography-body-small)]"),children:[Xt("p",{className:"text-center text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-heading-medium)]",children:"Esta p\xE1gina no est\xE1 disponible"}),be("div",{className:"flex flex-col items-center gap-[var(--inkblot-spacing-4)] sm:flex-row",children:[Xt("button",{type:"button",onClick:t,className:e("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center rounded-[var(--inkblot-radius-lg)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]","hover:bg-[var(--inkblot-semantic-color-interactive-primary-hover)] active:bg-[var(--inkblot-semantic-color-interactive-primary-active)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]","transition-colors duration-[var(--inkblot-duration-fast)]"),children:"Reintentar"}),Xt(Ir,{to:"/",className:e("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center rounded-[var(--inkblot-radius-lg)] px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","text-[var(--inkblot-semantic-color-interactive-primary)] underline-offset-4 hover:underline","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]","transition-colors duration-[var(--inkblot-duration-fast)]"),children:"Ir al inicio"})]})]})}import{ErrorBoundary as Mr}from"react-error-boundary";import{useNavigate as Rr}from"react-router-dom";import{jsx as Br}from"react/jsx-runtime";function ue({children:t,fallback:r}){let a=Rr();return Br(Mr,{FallbackComponent:r??At,onReset:()=>{a("/")},children:t})}import{forwardRef as Ar}from"react";import{Search as Lr}from"lucide-react";import{jsx as Jt,jsxs as ve}from"react/jsx-runtime";var L=Ar(({className:t,label:r,error:a,disabled:o,...n},s)=>ve("div",{className:"flex flex-col gap-1",children:[r?Jt("label",{htmlFor:n.id,className:e("uppercase tracking-wider","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:r}):null,ve("div",{className:e("flex items-center gap-2 rounded-[var(--inkblot-radius-full)]","bg-[var(--inkblot-semantic-color-background-secondary)]","border transition-colors duration-[var(--inkblot-duration-fast)]","focus-within:ring-2 focus-within:ring-[var(--inkblot-semantic-color-border-focus)] focus-within:ring-offset-2 focus-within:ring-offset-[var(--inkblot-semantic-color-background-primary)]",a?"border-[var(--inkblot-semantic-color-status-error)]":"border-[var(--inkblot-semantic-color-border-default)] hover:border-[var(--inkblot-semantic-color-border-strong)]",o&&"opacity-[var(--inkblot-opacity-disabled)] pointer-events-none cursor-not-allowed"),children:[Jt(Lr,{className:e("ml-[var(--inkblot-spacing-4)] h-4 w-4 shrink-0","text-[var(--inkblot-semantic-color-text-tertiary)]")}),Jt("input",{ref:s,type:"search",disabled:o,"aria-invalid":a,"aria-label":r??"Search",className:e("min-h-[var(--inkblot-size-touch-target-min)] w-full flex-1 bg-transparent px-2 py-[var(--inkblot-spacing-2)] pr-[var(--inkblot-spacing-4)]","[font:var(--inkblot-semantic-typography-body-medium)]","text-[var(--inkblot-semantic-color-text-primary)] placeholder:text-[var(--inkblot-semantic-color-text-tertiary)]","focus:outline-none","disabled:cursor-not-allowed",t),...n})]})]}));L.displayName="SearchBar";import{jsx as Dr}from"react/jsx-runtime";function ge({children:t,columns:r=4,className:a}){return Dr("div",{className:e("grid gap-[var(--inkblot-spacing-4)]",{1:"grid-cols-1",2:"grid-cols-1 sm:grid-cols-2",3:"grid-cols-1 sm:grid-cols-2 lg:grid-cols-3",4:"grid-cols-1 sm:grid-cols-2 lg:grid-cols-4"}[r],a),children:t})}import{jsx as ut,jsxs as Vr}from"react/jsx-runtime";function fe({items:t,className:r}){return ut(p,{className:r,children:ut("nav",{className:e("flex w-14 flex-col items-center gap-1 border-r border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] py-4"),"aria-label":"Navigation",children:t.map(a=>Vr("div",{className:e("relative flex w-full flex-col items-center gap-1 rounded-[var(--inkblot-radius-md)] px-2 py-2 transition-colors hover:text-[var(--inkblot-semantic-color-text-secondary)]",a.active?"text-[var(--inkblot-semantic-color-interactive-primary)]":"text-[var(--inkblot-semantic-color-text-tertiary)]"),children:[a.active?ut("span",{className:"absolute left-0 top-1/2 h-6 w-0.5 -translate-y-1/2 rounded-r-full bg-[var(--inkblot-semantic-color-interactive-primary)]","aria-hidden":!0}):null,ut("div",{className:"flex h-8 w-8 items-center justify-center [&>svg]:h-5 [&>svg]:w-5",children:a.icon}),a.label?ut("span",{className:"text-[10px] font-medium",children:a.label}):null]},a.id))})})}import{jsx as S,jsxs as te}from"react/jsx-runtime";var ye={success:"text-[var(--inkblot-semantic-color-status-success)]",error:"text-[var(--inkblot-semantic-color-status-error)]",neutral:"text-[var(--inkblot-semantic-color-text-secondary)]"};function Lt({items:t,className:r}){return S("div",{className:e("grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4",r),children:t.map(a=>S(Hr,{item:a},a.label))})}function Hr({item:t}){let r=t.changeVariant??"neutral",a=ye[r];return te("div",{className:e("flex flex-col gap-1 rounded-[var(--inkblot-radius-lg)]","bg-[var(--inkblot-semantic-color-background-secondary)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-4)]","border border-[var(--inkblot-semantic-color-border-subtle)]"),children:[S("span",{className:e("uppercase tracking-wider","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]"),children:t.label}),S("span",{className:e("[font:var(--inkblot-semantic-typography-heading-medium)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:t.value}),t.change?S("span",{className:e("[font:var(--inkblot-semantic-typography-body-small)]",a),children:t.change}):null]})}function ke({items:t,className:r}){return S("div",{className:e("grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4",r),children:t.map(a=>S(Fr,{item:a},a.label))})}function Fr({item:t}){let r=t.changeVariant??"neutral",a=ye[r],o=t.chartData??[],n=Math.max(...o,1);return te("div",{className:e("flex flex-col gap-2 rounded-[var(--inkblot-radius-lg)]","bg-[var(--inkblot-semantic-color-background-secondary)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-4)]","border border-[var(--inkblot-semantic-color-border-subtle)]"),children:[S("span",{className:e("uppercase tracking-wider","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]"),children:t.label}),te("div",{className:"flex items-end justify-between gap-2",children:[S("span",{className:e("[font:var(--inkblot-semantic-typography-heading-medium)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:t.value}),o.length>0?S("div",{className:"flex h-8 items-end gap-0.5",children:o.map((s,i)=>S("div",{className:"w-1 min-w-[2px] rounded-sm bg-[var(--inkblot-semantic-color-interactive-primary)] opacity-80",style:{height:`${s/n*100}%`,minHeight:4}},i))}):null]}),t.change?S("span",{className:e("[font:var(--inkblot-semantic-typography-body-small)]",a),children:t.change}):null]})}import{jsx as xe,jsxs as Wr}from"react/jsx-runtime";function Dt({tabs:t,activeTabId:r,onTabChange:a,className:o}){return xe("nav",{role:"tablist","aria-label":"Tabs",className:e("flex gap-0 pt-[var(--inkblot-spacing-2)]",o),children:t.map(n=>{let s=n.id===r;return Wr("button",{role:"tab","aria-selected":s,"aria-controls":`panel-${n.id}`,id:`tab-${n.id}`,type:"button",onClick:()=>a(n.id),className:e("relative px-[var(--inkblot-spacing-5)] py-[var(--inkblot-spacing-4)]","[font:var(--inkblot-semantic-typography-body-medium)]","transition-colors duration-[var(--inkblot-duration-fast)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]",s?["font-semibold text-[var(--inkblot-semantic-color-text-primary)]","bg-[var(--inkblot-semantic-color-background-secondary)]","rounded-t-[var(--inkblot-radius-lg)]"]:["text-[var(--inkblot-semantic-color-text-secondary)]","hover:text-[var(--inkblot-semantic-color-text-primary)]","hover:bg-[var(--inkblot-semantic-color-background-secondary)]/50"]),children:[n.label,s?xe("span",{className:"absolute bottom-0 left-0 right-0 h-0.5 rounded-full bg-[var(--inkblot-semantic-color-interactive-primary)]","aria-hidden":!0}):null]},n.id)})})}import{Calendar as Or,Check as _r,User as Gr}from"lucide-react";import{jsx as O,jsxs as vt}from"react/jsx-runtime";var zr={urgent:"bg-[var(--inkblot-semantic-color-status-error)]/20 text-[var(--inkblot-semantic-color-status-error)] border-[var(--inkblot-semantic-color-status-error)]/30",high:"bg-[var(--inkblot-semantic-color-status-warning)]/20 text-[var(--inkblot-semantic-color-status-warning)] border-[var(--inkblot-semantic-color-status-warning)]/30",medium:"bg-[var(--inkblot-semantic-color-status-success)]/10 text-[var(--inkblot-semantic-color-status-success)] border-[var(--inkblot-semantic-color-status-success)]/30",low:"bg-[var(--inkblot-semantic-color-background-tertiary)] text-[var(--inkblot-semantic-color-text-secondary)] border-[var(--inkblot-semantic-color-border-subtle)]"};function Vt({id:t,title:r,company:a,priority:o,date:n,assignee:s,completed:i=!1,onToggle:l,onClick:c,className:d}){let m=zr[o];return vt("div",{role:"button",tabIndex:0,onClick:()=>c?.(t),onKeyDown:b=>{(b.key==="Enter"||b.key===" ")&&(b.preventDefault(),c?.(t))},className:e("flex items-center gap-[var(--inkblot-spacing-4)] rounded-[var(--inkblot-radius-lg)]","border border-[var(--inkblot-semantic-color-border-subtle)]","bg-[var(--inkblot-semantic-color-background-secondary)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-3)]","transition-colors duration-[var(--inkblot-duration-fast)]","hover:border-[var(--inkblot-semantic-color-border-default)] hover:bg-[var(--inkblot-semantic-color-background-tertiary)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]","cursor-pointer",d),children:[O("button",{type:"button",onClick:b=>{b.stopPropagation(),l?.(t)},"aria-label":i?"Mark as incomplete":"Mark as complete","aria-pressed":i,className:e("flex h-5 w-5 shrink-0 items-center justify-center rounded-full","transition-colors duration-[var(--inkblot-duration-fast)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]",i?"bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]":"border-2 border-[var(--inkblot-semantic-color-border-default)] bg-transparent"),children:i?O(_r,{className:"h-3 w-3",strokeWidth:3}):null}),vt("div",{className:"min-w-0 flex-1",children:[O("p",{className:e("[font:var(--inkblot-semantic-typography-body-large-bold)]","text-[var(--inkblot-semantic-color-text-primary)]",i&&"line-through text-[var(--inkblot-semantic-color-text-secondary)]"),children:r}),O("p",{className:e("mt-0.5 [font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]",i&&"line-through"),children:a})]}),vt("div",{className:"flex shrink-0 flex-wrap items-center justify-end gap-[var(--inkblot-spacing-3)]",children:[O("span",{className:e("rounded-[var(--inkblot-radius-md)] border px-[var(--inkblot-spacing-2)] py-[var(--inkblot-spacing-1)]","[font:var(--inkblot-semantic-typography-body-small)] font-medium",m),children:o.charAt(0).toUpperCase()+o.slice(1)}),vt("span",{className:e("flex items-center gap-1","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:[O(Or,{className:"h-4 w-4 shrink-0 text-[var(--inkblot-semantic-color-text-tertiary)]"}),n]}),vt("span",{className:e("flex items-center gap-1","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:[O(Gr,{className:"h-4 w-4 shrink-0 text-[var(--inkblot-semantic-color-text-tertiary)]"}),s]})]})]})}import{CircleDot as $r,Clock as Kr,CheckCircle as Ur}from"lucide-react";import{jsx as tt,jsxs as he}from"react/jsx-runtime";var jr={todo:$r,in_progress:Kr,done:Ur};function Ht({sections:t,onTaskToggle:r,onTaskClick:a,className:o}){return tt("div",{className:e("flex flex-col gap-[var(--inkblot-spacing-8)]",o),children:t.map(n=>{let s=jr[n.id],i=n.id==="done";return he("section",{className:"flex flex-col gap-[var(--inkblot-spacing-4)]",children:[he("div",{className:"flex items-center gap-[var(--inkblot-spacing-3)]",children:[tt(s,{className:e("h-5 w-5 shrink-0",i?"text-[var(--inkblot-semantic-color-interactive-primary)]":"text-[var(--inkblot-semantic-color-text-secondary)]")}),tt("h2",{className:e("[font:var(--inkblot-semantic-typography-body-large-bold)]","text-[var(--inkblot-semantic-color-text-primary)]"),children:n.label}),tt("span",{className:e("rounded-[var(--inkblot-radius-full)] px-[var(--inkblot-spacing-2)] py-[var(--inkblot-spacing-1)]","bg-[var(--inkblot-semantic-color-background-secondary)]","[font:var(--inkblot-semantic-typography-body-small)] font-medium","text-[var(--inkblot-semantic-color-text-primary)]"),children:n.count})]}),tt("div",{className:"flex flex-col gap-[var(--inkblot-spacing-3)]",children:n.tasks.map(l=>tt(Vt,{...l,completed:i,onToggle:r,onClick:a},l.id))})]},n.id)})})}import{Mail as Ne,FileText as Ft,Zap as qr,Phone as Ce,Link2 as Qr}from"lucide-react";import{jsx as E,jsxs as Se}from"react/jsx-runtime";function Yr(t){return t>=.8?"bg-[var(--inkblot-semantic-color-status-success)]":t>=.5?"bg-[var(--inkblot-semantic-color-status-info)]":t>=.2?"bg-[var(--inkblot-semantic-color-status-warning)]":"bg-[var(--inkblot-semantic-color-status-error)]"}var Zr={EMAIL_OPENED:Ne,EMAIL_SENT:Ne,INVOICE_PAID:Ft,INVOICE_OVERDUE:Ft,CONTRACT_SIGNED:Ft,STAGE_CHANGED:qr,CALL_COMPLETED:Ce,PHONE_CALL:Ce,RELATIONSHIP_DETECTED:Qr};function Xr(t){return Zr[t]??Ft}function Jr(t){return t.metadata?.description??t.event_type.replace(/_/g," ").toLowerCase()}function ta(t){return t.metadata?.details??`${t.actor} - ${t.subject}`}function Wt({events:t,onEntitySelect:r,findEntity:a,emptyMessage:o="No hay actividad reciente",className:n}){let s=r?i=>{let l=a?.(i.subject)??a?.(i.actor);l&&r(l)}:void 0;return E(p,{children:E("div",{className:e("space-y-2",n),children:t.length===0?E("p",{className:"py-6 text-center text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:o}):t.map(i=>{let c=!!(a?.(i.subject)??a?.(i.actor))&&!!s,d=Xr(i.event_type),m=Se("div",{className:"flex flex-1 items-center gap-3",children:[E(d,{className:"h-4 w-4 shrink-0 text-[var(--inkblot-semantic-color-text-secondary)]","aria-hidden":!0}),E("div",{className:`h-2 w-2 shrink-0 rounded-full ${Yr(i.confidence_score)}`,"aria-hidden":!0}),Se("div",{className:"min-w-0 flex-1",children:[E("p",{className:"text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:Jr(i)}),E("p",{className:"text-xs text-[var(--inkblot-semantic-color-text-secondary)]",children:ta(i)})]}),E("span",{className:"shrink-0 text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:i.timestamp})]}),b=i.id??`${i.actor}-${i.subject}-${i.timestamp}`;return E("div",{children:c?E("button",{type:"button",onClick:()=>s(i),className:"flex w-full items-center gap-3 rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-background-secondary)] p-3 text-left transition-colors duration-[var(--inkblot-duration-fast)] hover:bg-[var(--inkblot-semantic-color-background-tertiary)] focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)] focus:ring-offset-2 focus:ring-offset-[var(--inkblot-semantic-color-background-primary)]",children:m}):E("div",{className:"flex w-full items-center gap-3 rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-background-secondary)] p-3",children:m})},b)})})})}import{NavLink as ea}from"react-router-dom";import{ClipboardList as ra,Brain as aa,BarChart3 as oa,Network as na,Activity as ia,Settings as sa,Sparkles as la}from"lucide-react";import{jsx as _,jsxs as ma}from"react/jsx-runtime";var ca=[{id:"home",path:"/",icon:ra,label:"Home"},{id:"intelligence",path:"/intelligence",icon:aa,label:"Intelligence"},{id:"pipeline",path:"/pipeline",icon:oa,label:"Pipeline"},{id:"graph",path:"/graph",icon:na,label:"Graph"},{id:"events",path:"/events",icon:ia,label:"Events"},{id:"settings",path:"/settings",icon:sa,label:"Settings"}];function we({items:t=ca,brandLogo:r,brandTitle:a="Command Canvas \u2014 AI-native Interface",className:o}){return _(p,{children:ma("nav",{className:e("flex h-full flex-col gap-4 bg-[var(--inkblot-semantic-color-background-secondary)] p-3",o),children:[_("div",{className:"flex flex-col items-center gap-2",children:_("div",{className:"flex h-10 w-10 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-interactive-primary)]",title:a,children:r??_(la,{className:"h-5 w-5 text-[var(--inkblot-semantic-color-text-primary)]","aria-hidden":!0})})}),_("div",{className:"flex flex-1 flex-col gap-2",children:t.map(n=>{let s=n.icon;return _(ea,{to:n.path,end:n.path==="/","aria-label":n.label,className:({isActive:i})=>`flex items-center justify-center gap-2 rounded-[var(--inkblot-radius-md)] border-l-2 px-3 py-2 transition-colors duration-[var(--inkblot-duration-fast)] ${i?"border-[var(--inkblot-semantic-color-interactive-primary)] bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-primary)]":"border-transparent text-[var(--inkblot-semantic-color-text-secondary)] hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)]"}`,children:_(s,{size:20,"aria-hidden":!0})},n.id)})})]})})}import{useState as Ot,useCallback as da,useRef as pa,useEffect as ba}from"react";import{jsx as g,jsxs as _t}from"react/jsx-runtime";function ua(t){let r=t.toLowerCase();return r.includes("entity")||r.includes("company")||r.includes("person")||r.includes("deal")||r.includes("profile")||r.includes("org")?"entity":r.includes("event")||r.includes("activity")||r.includes("recent")||r.includes("stream")||r.includes("log")?"event":"general"}function va({entities:t}){let r=t[0];return r?_t("div",{className:"space-y-3",children:[g("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:"Here's the entity profile and current intelligence scores:"}),g(wt,{name:r.name,entityType:r.type,metadata:r.metadata,edges:[{type:"WORKS_WITH",target:t[1]?.name},{type:"MANAGES",target:t[4]?.name}]})]}):null}function ga({events:t}){return _t("div",{className:"space-y-2",children:[g("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:"Latest activity from the event bus:"}),t.slice(0,5).map(r=>g(Tt,{event:r},r.id??`${r.actor}-${r.subject}-${r.timestamp}`))]})}function fa(){return g("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-primary)]",children:"Revenue confidence is trending upward at 78%. Momentum score increased 12% this week driven by 3 new meetings with Acme Corp. Churn risk remains low at 15% across the active pipeline."})}function Pe({entities:t,events:r,onFocusEntity:a,findEntity:o,placeholder:n="Ask anything \u2014 deals, contacts, forecasts...",emptyMessage:s="Escribe para comenzar...",className:i}){let[l,c]=Ot(""),[d,m]=Ot([]),[b,B]=Ot(!1),[H,y]=Ot(new Map),N=pa(null);ba(()=>{N.current&&(N.current.scrollTop=N.current.scrollHeight)},[d,b]);let $=da(()=>{let f=l.trim();if(!f||b)return;let u=o?.(f);u&&a&&a(u);let T={id:`msg-${Date.now()}`,role:"user",content:f,timestamp:new Date().toISOString()},w=ua(f);m(P=>[...P,T]),c(""),B(!0),setTimeout(()=>{let P={id:`msg-${Date.now()}-res`,role:"assistant",content:"",intent:w,timestamp:new Date().toISOString()},K;switch(w){case"entity":K=g(va,{entities:t});break;case"event":K=g(ga,{events:r});break;default:K=g(fa,{})}y(nt=>{let yt=new Map(nt);return yt.set(P.id,K),yt}),m(nt=>[...nt,P]),B(!1)},1e3)},[l,b,t,r,a,o]);return _t("div",{className:e("flex h-full flex-col",i),children:[_t("div",{ref:N,className:"flex-1 space-y-4 overflow-y-auto p-4",children:[d.length===0&&!b?g("div",{className:"flex flex-1 items-center justify-center py-12",children:g("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:s})}):d.map(f=>g("div",{className:"flex flex-col gap-2",children:f.role==="user"?g("div",{className:"flex justify-end",children:g("div",{className:"max-w-[80%] rounded-[var(--inkblot-radius-lg)] bg-[var(--inkblot-semantic-color-interactive-primary)] px-4 py-3 text-sm text-[var(--inkblot-semantic-color-text-primary)]",children:f.content})}):g("div",{className:"max-w-[90%]",children:H.get(f.id)??g("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-primary)]",children:f.content})})},f.id)),b&&g("div",{className:"max-w-[70%]",children:g(Z,{className:"animate-shimmer"})})]}),g("div",{className:"shrink-0 border-t border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-primary)] p-4",children:g(j,{promptValue:l,onPromptChange:c,onPromptSubmit:$,isProcessing:b,placeholder:n})})]})}import{Sparkles as ya}from"lucide-react";import{jsx as gt,jsxs as Ee}from"react/jsx-runtime";function Te({prompt:t,onPromptChange:r,onSubmit:a,isProcessing:o,placeholder:n="Ask anything \u2014 deals, contacts, forecasts...",subtitle:s="Citron OS v1.0 \u2014 AI-native Revenue & Operations Platform",className:i}){return Ee("div",{className:e("border-t border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-4",i),children:[Ee("div",{className:"flex items-center gap-3",children:[gt("div",{className:"flex h-10 w-10 shrink-0 items-center justify-center rounded-[var(--inkblot-radius-md)] bg-[var(--inkblot-semantic-color-interactive-primary)]",children:gt(ya,{className:"h-5 w-5 text-[var(--inkblot-semantic-color-text-primary)]","aria-hidden":!0})}),gt("div",{className:"flex-1",children:gt(j,{promptValue:t,onPromptChange:r,onPromptSubmit:a,isProcessing:o,placeholder:n})})]}),s&&gt("p",{className:"mt-2 text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:s})]})}import{jsx as et,jsxs as ee}from"react/jsx-runtime";function Ie({events:t,title:r="Event Stream",showLive:a=!0,className:o}){return et(p,{children:ee("div",{className:e("flex h-full flex-col bg-[var(--inkblot-semantic-color-background-secondary)]",o),children:[ee("div",{className:"flex shrink-0 items-center justify-between border-b border-[var(--inkblot-semantic-color-border-default)] px-4 py-3",children:[et("span",{className:"text-xs font-medium uppercase tracking-wider text-[var(--inkblot-semantic-color-text-secondary)]",children:r}),a&&ee("div",{className:"flex items-center gap-2",children:[et("div",{className:"h-2 w-2 rounded-full bg-[var(--inkblot-semantic-color-status-success)]"}),et("span",{className:"text-xs text-[var(--inkblot-semantic-color-status-success)]",children:"Live"})]})]}),et("div",{className:"flex-1 overflow-auto p-4",children:et(Wt,{events:t})})]})})}import{jsx as h,jsxs as G}from"react/jsx-runtime";var ka=[{label:"Pipeline Health",value:76},{label:"Churn Risk",value:28},{label:"Expansion Signal",value:64},{label:"Team Velocity",value:83}],xa=[{title:"Acme Corp likely to close within 14 days",description:"Based on email sentiment, meeting cadence, and champion engagement patterns.",confidence:89},{title:"Churn risk detected: GlobalTech Inc",description:"Declining touchpoints and support ticket volume suggest potential churn.",confidence:74},{title:"Expansion opportunity: TechVentures",description:"Usage patterns and NPS scores indicate readiness for upsell conversation.",confidence:81}];function Me({loading:t,kpiCards:r=ka,aiInsights:a=xa,title:o="Intelligence Lab",subtitle:n="AI-generated insights - Updated 3 min ago",className:s}){return G("div",{className:e("flex h-full flex-col gap-4 overflow-y-auto p-4",s),children:[G("div",{children:[h("h1",{className:"text-2xl font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:o}),h("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:n})]}),h(Rt,{loading:t,title:"",children:h(p,{children:G("div",{className:"flex flex-col gap-4",children:[h("div",{className:"grid grid-cols-2 gap-4 lg:grid-cols-4",children:r.map(i=>h(It,{label:i.label,value:i.value,subtext:i.subtext,trend:i.trend},i.label))}),G("div",{children:[h("h2",{className:"mb-4 border-b border-[var(--inkblot-semantic-color-border-default)] pb-2 text-sm font-bold uppercase tracking-wider text-[var(--inkblot-semantic-color-text-primary)]",children:"AI Insights"}),h("div",{className:"flex flex-col gap-4",children:a.map(i=>h(p,{children:G("div",{className:"flex items-start justify-between gap-4 rounded-[var(--inkblot-radius-lg)] bg-[var(--inkblot-semantic-color-background-secondary)] p-4",children:[G("div",{className:"min-w-0 flex-1",children:[h("h3",{className:"font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:i.title}),h("p",{className:"mt-1 text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:i.description})]}),G("div",{className:"flex shrink-0 flex-col items-center",children:[h("span",{className:"text-lg font-bold text-[var(--inkblot-semantic-color-text-primary)]",children:i.confidence}),h("span",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:"Conf."})]})]})},i.title))})]})]})})})]})}import{jsx as ft,jsxs as re}from"react/jsx-runtime";function Re({navigation:t,eventStream:r,commandBar:a,children:o,className:n,eventStreamWidth:s="w-80"}){return re("div",{className:e("flex h-screen w-screen overflow-hidden bg-[var(--inkblot-semantic-color-background-primary)]",n),children:[ft("aside",{className:"flex h-full w-16 shrink-0 flex-col border-r border-[var(--inkblot-semantic-color-border-default)]",children:t}),ft("main",{className:"flex flex-1 flex-col overflow-hidden",children:re("div",{className:"flex min-h-0 flex-1",children:[re("div",{className:"flex min-h-0 flex-1 flex-col overflow-hidden bg-[var(--inkblot-semantic-color-background-primary)]",children:[ft("div",{className:"flex-1 overflow-auto",children:o}),ft("div",{className:"shrink-0",children:a})]}),r&&ft("aside",{className:e("flex h-full shrink-0 flex-col border-l border-[var(--inkblot-semantic-color-border-default)]",s),children:r})]})})]})}import{useState as ae}from"react";import{Check as ha,X as Na}from"lucide-react";import{jsx as rt,jsxs as Gt}from"react/jsx-runtime";var Ca=["urgent","high","medium","low"];function zt({onConfirm:t,onCancel:r,className:a}){let[o,n]=ae(""),[s,i]=ae(""),[l,c]=ae("medium");return Gt("form",{onSubmit:m=>{m.preventDefault();let b=o.trim();b&&(t({title:b,company:s.trim()||void 0,priority:l}),n(""),i(""),c("medium"))},className:e("flex flex-col gap-[var(--inkblot-spacing-4)] rounded-[var(--inkblot-radius-lg)]","border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-secondary)]","p-[var(--inkblot-spacing-4)]",a),children:[rt("input",{type:"text",value:o,onChange:m=>n(m.target.value),placeholder:"Task title...",autoFocus:!0,required:!0,className:e("min-h-[var(--inkblot-size-touch-target-min)] w-full rounded-[var(--inkblot-radius-md)]","border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-primary)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","[font:var(--inkblot-semantic-typography-body-medium)]","text-[var(--inkblot-semantic-color-text-primary)] placeholder:text-[var(--inkblot-semantic-color-text-tertiary)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)]")}),rt("input",{type:"text",value:s,onChange:m=>i(m.target.value),placeholder:"Company (optional)",className:e("min-h-[var(--inkblot-size-touch-target-min)] w-full rounded-[var(--inkblot-radius-md)]","border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-primary)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","[font:var(--inkblot-semantic-typography-body-medium)]","text-[var(--inkblot-semantic-color-text-primary)] placeholder:text-[var(--inkblot-semantic-color-text-tertiary)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)]")}),rt("div",{className:"flex flex-wrap gap-[var(--inkblot-spacing-2)]",children:Ca.map(m=>rt("button",{type:"button",onClick:()=>c(m),className:e("rounded-[var(--inkblot-radius-md)] px-[var(--inkblot-spacing-2)] py-[var(--inkblot-spacing-1)]","[font:var(--inkblot-semantic-typography-body-small)] font-medium","transition-colors duration-[var(--inkblot-duration-fast)]",l===m?"bg-[var(--inkblot-semantic-color-interactive-primary)] text-[var(--inkblot-semantic-color-text-inverse)]":"bg-[var(--inkblot-semantic-color-background-tertiary)] text-[var(--inkblot-semantic-color-text-secondary)] hover:bg-[var(--inkblot-semantic-color-background-tertiary)]/80"),children:m.charAt(0).toUpperCase()+m.slice(1)},m))}),Gt("div",{className:"flex justify-end gap-[var(--inkblot-spacing-2)]",children:[Gt("button",{type:"button",onClick:r,className:e("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center gap-2 rounded-[var(--inkblot-radius-lg)]","border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-interactive-secondary)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","[font:var(--inkblot-semantic-typography-body-medium)] font-medium","text-[var(--inkblot-semantic-color-text-primary)]","hover:bg-[var(--inkblot-semantic-color-interactive-secondary-hover)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)]"),children:[rt(Na,{className:"h-4 w-4"}),"Cancel"]}),Gt("button",{type:"submit",disabled:!o.trim(),className:e("inline-flex min-h-[var(--inkblot-size-touch-target-min)] items-center justify-center gap-2 rounded-[var(--inkblot-radius-lg)]","bg-[var(--inkblot-semantic-color-interactive-primary)]","px-[var(--inkblot-spacing-4)] py-[var(--inkblot-spacing-2)]","[font:var(--inkblot-semantic-typography-body-medium)] font-medium","text-[var(--inkblot-semantic-color-text-inverse)]","hover:bg-[var(--inkblot-semantic-color-interactive-primary-hover)] active:bg-[var(--inkblot-semantic-color-interactive-primary-active)]","focus:outline-none focus:ring-2 focus:ring-[var(--inkblot-semantic-color-border-focus)]","disabled:opacity-[var(--inkblot-opacity-disabled)] disabled:cursor-not-allowed"),children:[rt(ha,{className:"h-4 w-4"}),"Add Task"]})]})]})}import{useState as oe,useMemo as Be}from"react";import{ClipboardList as Sa}from"lucide-react";import{jsx as z,jsxs as Pa}from"react/jsx-runtime";function D(t,r,a="You"){let n=new Date().toLocaleDateString("en-US",{month:"short",day:"numeric"})||"Today";return{id:r,title:t.title,company:t.company??"Unassigned",priority:t.priority??"medium",date:n,assignee:a,status:"todo"}}function wa(t){let r={todo:t.filter(a=>a.status==="todo"),in_progress:t.filter(a=>a.status==="in_progress"),done:t.filter(a=>a.status==="done")};return[{id:"todo",label:"TO DO",count:r.todo.length,tasks:r.todo},{id:"in_progress",label:"IN PROGRESS",count:r.in_progress.length,tasks:r.in_progress},{id:"done",label:"DONE",count:r.done.length,tasks:r.done}]}var V=[D({title:"Follow up with Sarah Chen on proposal",company:"Acme Corp",priority:"high"},"1"),D({title:"Schedule demo with engineering team",company:"TechStart Inc",priority:"medium"},"2"),D({title:"Prepare quarterly report slides",company:"GlobalTech",priority:"low"},"3"),D({title:"Review Q1 marketing budget",company:"TechStart Inc",priority:"medium"},"4"),D({title:"Draft partnership agreement",company:"Enterprise Co",priority:"urgent"},"5"),D({title:"Send contract to legal team",company:"GlobalTech",priority:"low"},"6"),D({title:"Update CRM with new contacts",company:"Acme Corp",priority:"low"},"7")];V[0].status="todo";V[1].status="todo";V[2].status="todo";V[3].status="in_progress";V[4].status="in_progress";V[5].status="done";V[6].status="done";function Ae({initialTasks:t=V,onTaskCreate:r,onTaskToggle:a,onTaskClick:o,className:n}){let[s,i]=oe(t),[l,c]=oe(!1),[d,m]=oe(""),b=Be(()=>{if(!d.trim())return s;let u=d.toLowerCase();return s.filter(T=>T.title.toLowerCase().includes(u)||T.company.toLowerCase().includes(u))},[s,d]),B=Be(()=>wa(b),[b]),H=s.filter(u=>u.status!=="done").length,y=s.filter(u=>u.priority==="urgent"&&u.status!=="done").length,N=`${H} pending${y>0?` \xB7 ${y} urgent`:""}`,$=u=>{let T=`task-${Date.now()}`,w=D(u,T);i(P=>[w,...P]),c(!1),r?.(u)},f=u=>{i(T=>T.map(w=>{if(w.id!==u)return w;let P=w.status==="done"?"todo":"done";return{...w,status:P}})),a?.(u)};return z("div",{className:e("flex min-h-screen flex-col bg-[var(--inkblot-semantic-color-background-primary)]",n),children:Pa("div",{className:"flex flex-1 flex-col gap-8 px-8 py-8",children:[z(X,{title:"Tasks",subtitle:N,icon:z(Sa,{className:"h-5 w-5"}),action:z(J,{label:"New Task",onClick:()=>c(u=>!u)})}),z(L,{placeholder:"Search tasks...",value:d,onChange:u=>m(u.target.value)}),l?z(zt,{onConfirm:$,onCancel:()=>c(!1)}):null,z(Ht,{sections:B,onTaskToggle:f,onTaskClick:o})]})})}import{useState as at,useMemo as ne}from"react";import{Mail as Ea}from"lucide-react";import{Fragment as Ra,jsx as k,jsxs as ot}from"react/jsx-runtime";var Ta=`Hi [Name],
2
+
3
+ I hope this email finds you well. I wanted to reach out regarding our recent conversation about [Topic].
4
+
5
+ Based on our discussion, I've prepared a few options that I believe could add significant value to your organization:
6
+
7
+ 1. **Option A**: [Brief description]
8
+ 2. **Option B**: [Brief description]
9
+ 3. **Option C**: [Brief description]
10
+
11
+ I'd love to schedule a quick call this week to walk you through these in more detail. Would any of the following times work for you?
12
+
13
+ - Tuesday 2pm
14
+ - Wednesday 10am
15
+ - Thursday 4pm
16
+
17
+ Looking forward to hearing from you.
18
+
19
+ Best regards,
20
+ [Your name]`,Le=[{id:"1",campaignName:"Q1 Product Launch",recipients:"2840 recipients",status:"sent",opens:"68%",clicks:"24%",date:"Feb 12, 2026"},{id:"2",campaignName:"Welcome Series",recipients:"1200 recipients",status:"active",statusSubtext:"Running",opens:"-",clicks:"-",date:"Feb 28, 2026"},{id:"3",campaignName:"Re-engagement Campaign",recipients:"890 recipients",status:"draft",opens:"-",clicks:"-",date:"Feb 5, 2026"},{id:"4",campaignName:"Holiday Promo",recipients:"4500 recipients",status:"scheduled",opens:"-",clicks:"-",date:"Mar 1, 2026"}],De=[{id:"1",category:"Onboarding",title:"Welcome Series",uses:"34 uses"},{id:"2",category:"Marketing",title:"Product Announcement",uses:"12 uses"},{id:"3",category:"Retention",title:"Renewal Reminder",uses:"28 uses"},{id:"4",category:"Sales",title:"Meeting Follow-up",uses:"56 uses"}],Ve=["Acme Corp - Sarah Chen","TechStart Inc - Mike Rodriguez","GlobalTech - Lisa Kim","Enterprise Co - John Smith","StartupXYZ - Emma Wilson"],Ia=[{key:"campaign",label:"Campaign"},{key:"status",label:"Status"},{key:"opens",label:"Opens"},{key:"clicks",label:"Clicks"},{key:"date",label:"Date"}],Ma=[{label:"Total Sent",value:"12.4K",change:"This month",changeVariant:"success"},{label:"Avg. Open Rate",value:"64%",change:"+8% vs prior",changeVariant:"success"},{label:"Avg. Click Rate",value:"22%",change:"+3% vs prior",changeVariant:"success"},{label:"Active Automations",value:"7",change:"3 paused",changeVariant:"error"}];function He({onSendNow:t,onSchedule:r,onSaveDraft:a,onNewCampaign:o,onGenerateWithAI:n,onTemplateClick:s,className:i}){let[l,c]=at("campaigns"),[d,m]=at(""),[b,B]=at(""),[H,y]=at(""),[N,$]=at(!1),[f,u]=at(""),T=ne(()=>{if(!d.trim())return Le;let v=d.toLowerCase();return Le.filter(F=>F.campaignName.toLowerCase().includes(v)||F.recipients.toLowerCase().includes(v))},[d]),w=ne(()=>{if(!d.trim())return De;let v=d.toLowerCase();return De.filter(F=>F.title.toLowerCase().includes(v)||F.category.toLowerCase().includes(v))},[d]),P=ne(()=>{if(!f.trim())return Ve;let v=f.toLowerCase();return Ve.filter(F=>F.toLowerCase().includes(v))},[f]),K=async()=>{$(!0),await new Promise(v=>setTimeout(v,1500)),y(Ta),$(!1)},nt=()=>{console.log("Send Now clicked"),t?.()},yt=()=>{console.log("Schedule clicked"),r?.()},Fe=()=>{console.log("Save Draft clicked"),a?.()},We=l==="campaigns"||l==="templates";return k("div",{className:e("flex min-h-screen flex-col bg-[var(--inkblot-semantic-color-background-primary)]",i),children:ot("div",{className:"flex flex-1 flex-col gap-8 px-8 py-8",children:[k(X,{title:"Email Campaigns",subtitle:"Automate outreach \xB7 AI-powered templates",icon:k(Ea,{className:"h-5 w-5"}),action:k(J,{label:"New Campaign",onClick:()=>o?.()})}),k(Dt,{tabs:[{id:"campaigns",label:"Campaigns"},{id:"templates",label:"Templates"},{id:"compose",label:"Compose"}],activeTabId:l,onTabChange:c}),We?k(L,{placeholder:l==="campaigns"?"Search campaigns...":"Search templates...",value:d,onChange:v=>m(v.target.value)}):null,l==="campaigns"?ot(Ra,{children:[k(Lt,{items:Ma}),k(ht,{columns:Ia,rows:T})]}):l==="templates"?k(St,{templates:w,onGenerateWithAI:n,onTemplateClick:s}):ot("div",{className:"flex max-w-2xl flex-col gap-6",children:[ot("div",{className:"flex flex-col gap-6",children:[ot("div",{className:"flex flex-col gap-2",children:[k("label",{className:"uppercase tracking-wider text-[var(--inkblot-semantic-color-text-primary)] [font:var(--inkblot-semantic-typography-body-small)]",children:"Subject"}),k("input",{type:"text",value:b,onChange:v=>B(v.target.value),placeholder:"Enter subject line...",className:e("min-h-[var(--inkblot-size-touch-target-min)] w-full rounded-[var(--inkblot-radius-lg)]","border border-[var(--inkblot-semantic-color-border-default)]","bg-[var(--inkblot-semantic-color-background-secondary)]","px-4 py-2 text-[var(--inkblot-semantic-color-text-primary)] placeholder:text-[var(--inkblot-semantic-color-text-tertiary)]")})]}),k(it,{label:"Body",value:H,onChange:v=>y(v.target.value),placeholder:"Compose your email or let AI generate content...",loading:N,onWriteWithAI:K}),ot("div",{className:"flex flex-col gap-2",children:[k(L,{label:"Recipients",placeholder:"Search contacts, segments, or tags...",value:f,onChange:v=>u(v.target.value)}),P.length>0?k("ul",{className:"flex flex-wrap gap-2",children:P.slice(0,5).map(v=>k("li",{className:e("rounded-[var(--inkblot-radius-md)]","bg-[var(--inkblot-semantic-color-background-secondary)]","px-[var(--inkblot-spacing-2)] py-[var(--inkblot-spacing-1)]","[font:var(--inkblot-semantic-typography-body-small)]","text-[var(--inkblot-semantic-color-text-secondary)]"),children:v},v))}):null]})]}),k(xt,{onSendNow:nt,onSchedule:yt,onSaveDraft:Fe})]})]})})}export{it as AIComposeInput,$t as ActionButtons,Wt as ActivityStream,we as AppNavigationRail,st as Button,ht as CampaignTable,Pe as ChatFeed,Te as CommandBar,j as CommandInterface,He as EmailCampaignsView,xt as EmailComposeActionButtons,St as EmailTemplatesSection,wt as EntityCard,se as EntityCommandCard,Pt as ErrorBoundary,Tt as EventRow,me as EventStreamFeed,Ie as EventStreamSidebar,mt as Input,Me as IntelligenceLab,It as IntelligenceScoreCard,Re as MainShell,de as MetricComparisonList,Rt as ModuleContainer,p as ModuleErrorBoundary,Z as ModuleSkeleton,fe as OSNavigationRail,At as PageErrorFallback,X as PageHeader,J as PageHeaderActionButton,ue as RouteWithErrorBoundary,L as SearchBar,A as Skeleton,ge as StatCardGrid,Lt as StatCards,ke as StatCardsWithChart,Et as StatusBadge,Dt as TabSystem,zt as TaskCreateForm,Vt as TaskItem,Ht as TaskList,Ae as TasksView,Nt as TemplateCard};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@citron-systems/citron-ui",
3
- "version": "1.7.0",
3
+ "version": "1.9.0",
4
4
  "description": "Core UI component library for Citron CRM. Accessible, design-token-driven React components built with consistency and scalability in mind.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",