@citron-systems/citron-ui 1.3.0 → 1.7.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 +13 -2
- package/dist/index.d.ts +13 -2
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +3 -1
package/dist/index.d.cts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
|
-
import { ButtonHTMLAttributes, ReactNode, Component, InputHTMLAttributes, HTMLAttributes } from 'react';
|
|
2
|
+
import { ButtonHTMLAttributes, ReactNode, Component, InputHTMLAttributes, ComponentType, HTMLAttributes } from 'react';
|
|
3
3
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
4
|
+
import { FallbackProps } from 'react-error-boundary';
|
|
4
5
|
import { LucideIcon } from 'lucide-react';
|
|
5
6
|
|
|
6
7
|
type ButtonVariant = 'primary' | 'secondary';
|
|
@@ -146,6 +147,16 @@ declare class ModuleErrorBoundary extends Component<ModuleErrorBoundaryProps, Mo
|
|
|
146
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;
|
|
147
148
|
}
|
|
148
149
|
|
|
150
|
+
interface PageErrorFallbackProps extends FallbackProps {
|
|
151
|
+
}
|
|
152
|
+
declare function PageErrorFallback({ resetErrorBoundary, }: PageErrorFallbackProps): react_jsx_runtime.JSX.Element;
|
|
153
|
+
|
|
154
|
+
interface RouteWithErrorBoundaryProps {
|
|
155
|
+
children: ReactNode;
|
|
156
|
+
fallback?: ComponentType<FallbackProps>;
|
|
157
|
+
}
|
|
158
|
+
declare function RouteWithErrorBoundary({ children, fallback, }: RouteWithErrorBoundaryProps): react_jsx_runtime.JSX.Element;
|
|
159
|
+
|
|
149
160
|
interface SkeletonProps extends HTMLAttributes<HTMLDivElement> {
|
|
150
161
|
}
|
|
151
162
|
declare function Skeleton({ className, ...props }: SkeletonProps): react_jsx_runtime.JSX.Element;
|
|
@@ -276,4 +287,4 @@ interface MainShellProps {
|
|
|
276
287
|
}
|
|
277
288
|
declare function MainShell({ navigation, eventStream, commandBar, children, className, eventStreamWidth, }: MainShellProps): react_jsx_runtime.JSX.Element;
|
|
278
289
|
|
|
279
|
-
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, Skeleton, type SkeletonProps, StatusBadge, type StatusBadgeProps, type StatusBadgeVariant };
|
|
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 };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
|
-
import { ButtonHTMLAttributes, ReactNode, Component, InputHTMLAttributes, HTMLAttributes } from 'react';
|
|
2
|
+
import { ButtonHTMLAttributes, ReactNode, Component, InputHTMLAttributes, ComponentType, HTMLAttributes } from 'react';
|
|
3
3
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
4
|
+
import { FallbackProps } from 'react-error-boundary';
|
|
4
5
|
import { LucideIcon } from 'lucide-react';
|
|
5
6
|
|
|
6
7
|
type ButtonVariant = 'primary' | 'secondary';
|
|
@@ -146,6 +147,16 @@ declare class ModuleErrorBoundary extends Component<ModuleErrorBoundaryProps, Mo
|
|
|
146
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;
|
|
147
148
|
}
|
|
148
149
|
|
|
150
|
+
interface PageErrorFallbackProps extends FallbackProps {
|
|
151
|
+
}
|
|
152
|
+
declare function PageErrorFallback({ resetErrorBoundary, }: PageErrorFallbackProps): react_jsx_runtime.JSX.Element;
|
|
153
|
+
|
|
154
|
+
interface RouteWithErrorBoundaryProps {
|
|
155
|
+
children: ReactNode;
|
|
156
|
+
fallback?: ComponentType<FallbackProps>;
|
|
157
|
+
}
|
|
158
|
+
declare function RouteWithErrorBoundary({ children, fallback, }: RouteWithErrorBoundaryProps): react_jsx_runtime.JSX.Element;
|
|
159
|
+
|
|
149
160
|
interface SkeletonProps extends HTMLAttributes<HTMLDivElement> {
|
|
150
161
|
}
|
|
151
162
|
declare function Skeleton({ className, ...props }: SkeletonProps): react_jsx_runtime.JSX.Element;
|
|
@@ -276,4 +287,4 @@ interface MainShellProps {
|
|
|
276
287
|
}
|
|
277
288
|
declare function MainShell({ navigation, eventStream, commandBar, children, className, eventStreamWidth, }: MainShellProps): react_jsx_runtime.JSX.Element;
|
|
278
289
|
|
|
279
|
-
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, Skeleton, type SkeletonProps, StatusBadge, type StatusBadgeProps, type StatusBadgeVariant };
|
|
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 };
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var re=Object.defineProperty;var Te=Object.getOwnPropertyDescriptor;var De=Object.getOwnPropertyNames;var _e=Object.prototype.hasOwnProperty;var Ve=(t,e)=>{for(var r in e)re(t,r,{get:e[r],enumerable:!0})},He=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of De(e))!_e.call(t,i)&&i!==r&&re(t,i,{get:()=>e[i],enumerable:!(n=Te(e,i))||n.enumerable});return t};var Oe=t=>He(re({},"__esModule",{value:!0}),t);var it={};Ve(it,{ActivityStream:()=>J,AppNavigationRail:()=>de,Button:()=>G,ChatFeed:()=>me,CommandBar:()=>pe,CommandInterface:()=>H,EntityCard:()=>z,EntityCommandCard:()=>oe,ErrorBoundary:()=>U,EventRow:()=>Z,EventStreamFeed:()=>ne,EventStreamSidebar:()=>ue,Input:()=>K,IntelligenceLab:()=>ve,IntelligenceScoreCard:()=>j,MainShell:()=>be,MetricComparisonList:()=>le,ModuleContainer:()=>q,ModuleErrorBoundary:()=>l,ModuleSkeleton:()=>O,OSNavigationRail:()=>ce,Skeleton:()=>B,StatusBadge:()=>W});module.exports=Oe(it);var he=require("react");var ye=require("clsx"),ke=require("tailwind-merge");function o(...t){return(0,ke.twMerge)((0,ye.clsx)(t))}var Ne=require("react/jsx-runtime"),Ge={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"},G=(0,he.forwardRef)(({className:t,variant:e="primary",disabled:r,...n},i)=>(0,Ne.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)]",Ge[e],t),...n}));G.displayName="Button";var Ee=require("react"),F=require("lucide-react");var p=require("react/jsx-runtime");function H({promptValue:t="",onPromptChange:e,onPromptSubmit:r,onFilesAttach:n,isProcessing:i=!1,response:s,placeholder:a="Ask Citron Intelligence...",accept:k,multiple:b=!0,className:I}){let A=(0,Ee.useRef)(null),E=C=>{C.key==="Enter"&&!C.shiftKey&&(C.preventDefault(),r?.())},Q=()=>{A.current?.click()},ee=C=>{let T=C.target.files;T&&T.length>0&&n&&n(Array.from(T)),C.target.value=""};return(0,p.jsxs)("div",{className:o("flex w-full max-w-[80rem] flex-col gap-[var(--inkblot-spacing-2)]",I),children:[(0,p.jsxs)("div",{className:"flex items-center gap-[var(--inkblot-spacing-2)]",children:[(0,p.jsx)("input",{ref:A,type:"file",accept:k,multiple:b,onChange:ee,className:"sr-only","aria-hidden":!0}),(0,p.jsx)("button",{type:"button",onClick:Q,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,p.jsx)(F.Paperclip,{size:20,strokeWidth:1.5,className:"text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0})}),(0,p.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)]"),children:[(0,p.jsx)("div",{className:"flex shrink-0 items-center opacity-[var(--inkblot-opacity-subtle)]","aria-hidden":!0,children:(0,p.jsx)(F.Sparkles,{size:20,strokeWidth:1.5,className:"text-[var(--inkblot-semantic-color-text-tertiary)]"})}),(0,p.jsx)("textarea",{value:t,onChange:C=>e?.(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,p.jsx)("button",{type:"button",onClick:r,disabled:i,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)] 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)]","disabled:pointer-events-none disabled:opacity-[var(--inkblot-opacity-disabled)]"),"aria-label":"Enviar",children:(0,p.jsx)(F.Send,{size:16,strokeWidth:2,className:"text-[var(--inkblot-semantic-color-text-inverse)]","aria-hidden":!0})})]})]}),i?(0,p.jsx)("div",{className:o("min-h-[80px] animate-shimmer rounded-[var(--inkblot-radius-full)] 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%)]")}):s?(0,p.jsx)("div",{className:"flex flex-col gap-[var(--inkblot-spacing-4)]",children:(0,p.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"),Fe={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 z({name:t,entityType:e,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",Fe[e],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:e}),(0,f.jsx)("h3",{className:"text-base font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:t})]}),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 Ce=require("react");var Se=require("react/jsx-runtime"),K=(0,Ce.forwardRef)(({className:t,error:e,disabled:r,...n},i)=>(0,Se.jsx)("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}));K.displayName="Input";var we=require("react");var $=require("react/jsx-runtime"),l=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,$.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,$.jsx)("p",{className:"text-base font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:"This module failed to load"}),(0,$.jsx)("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:this.state.error.message}),(0,$.jsx)(G,{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 oe({title:t,insights:e,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:t}),e?(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:e}):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)(K,{type:"text",value:n,onChange:b=>i?.(b.target.value),onKeyDown:k,placeholder:"Ask about this entity...",className:"rounded-[var(--inkblot-radius-md)]"})})]})})}var Me=require("react");var ae=require("react/jsx-runtime"),U=class extends Me.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,ae.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,ae.jsx)("span",{className:"text-sm font-medium",children:"Something went wrong"})}):this.props.children}};var Pe=require("react/jsx-runtime"),Ke={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 W({label:t,variant:e="info",className:r}){return(0,Pe.jsx)("span",{className:o("inline-flex items-center rounded-[var(--inkblot-radius-md)] border px-2 py-0.5 text-xs font-medium",Ke[e],r),children:t})}var R=require("react/jsx-runtime");function $e(t){return t>=.8?"success":t>=.5?"info":t>=.2?"warning":"error"}function Z({event:t,className:e}){let r=$e(t.confidence_score),n=`${Math.round(t.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",e),children:[(0,R.jsx)("span",{className:"text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:t.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:t.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:t.event_type}),(0,R.jsx)("span",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:t.timestamp}),(0,R.jsx)(W,{label:n,variant:r})]})}var y=require("react/jsx-runtime"),ze={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 Ue(){return(0,y.jsx)("svg",{viewBox:"0 0 16 16",className:"h-4 w-4 text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0,children:(0,y.jsx)("circle",{cx:"8",cy:"8",r:"2",fill:"currentColor"})})}function ne({events:t,className:e}){return(0,y.jsx)(l,{className:e,children:(0,y.jsx)("div",{className:o("flex flex-col gap-4 border-l-2 border-[var(--inkblot-semantic-color-border-default)] pl-4"),children:t.map(r=>(0,y.jsxs)("div",{className:"flex items-start gap-3",children:[(0,y.jsx)("div",{className:"flex shrink-0 items-center pt-0.5",children:r.icon??(0,y.jsx)(Ue,{})}),(0,y.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,y.jsx)("p",{className:"text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:r.title}),(0,y.jsx)("p",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:r.timestamp})]}),r.status?(0,y.jsx)("div",{className:o("mt-1.5 h-2 w-2 shrink-0 rounded-full",ze[r.status]),"aria-hidden":!0}):null]},r.id))})})}var m=require("react/jsx-runtime"),se=36,ie=2*Math.PI*se;function j({label:t,value:e,subtext:r,trend:n,className:i}){let s=Math.min(100,Math.max(0,e)),a=ie-s/100*ie;return(0,m.jsx)(l,{className:i,children:(0,m.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,m.jsxs)("div",{className:"relative",children:[(0,m.jsxs)("svg",{width:"96",height:"96",viewBox:"0 0 96 96",className:"-rotate-90",children:[(0,m.jsx)("circle",{cx:"48",cy:"48",r:se,fill:"none",stroke:"var(--inkblot-semantic-color-background-tertiary)",strokeWidth:"4"}),(0,m.jsx)("circle",{cx:"48",cy:"48",r:se,fill:"none",stroke:"var(--inkblot-semantic-color-interactive-primary)",strokeWidth:"4",strokeDasharray:ie,strokeDashoffset:a,strokeLinecap:"round",className:"transition-[stroke-dashoffset] duration-[var(--inkblot-duration-fast)]"})]}),(0,m.jsx)("div",{className:"absolute inset-0 flex flex-col items-center justify-center",children:(0,m.jsxs)("span",{className:"flex items-center gap-1 text-lg font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:[s,"%",n==="up"?(0,m.jsx)("svg",{viewBox:"0 0 16 16",className:"h-4 w-4 text-[var(--inkblot-semantic-color-status-success)]","aria-hidden":!0,children:(0,m.jsx)("path",{fill:"currentColor",d:"M8 4l4 6H4l4-6z"})}):n==="down"?(0,m.jsx)("svg",{viewBox:"0 0 16 16",className:"h-4 w-4 text-[var(--inkblot-semantic-color-status-error)]","aria-hidden":!0,children:(0,m.jsx)("path",{fill:"currentColor",d:"M8 12l4-6H4l4 6z"})}):null]})})]}),(0,m.jsxs)("div",{className:"text-center",children:[(0,m.jsx)("p",{className:"text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:t}),r?(0,m.jsx)("p",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:r}):null]})]})})}var w=require("react/jsx-runtime"),We={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 Ze({className:t}){return(0,w.jsx)("svg",{viewBox:"0 0 16 16",className:o("h-4 w-4",t),"aria-hidden":!0,children:(0,w.jsx)("path",{fill:"currentColor",d:"M6 4l4 4-4 4V4z"})})}function le({items:t,className:e}){return(0,w.jsx)(l,{className:e,children:(0,w.jsx)("ul",{className:o("flex flex-col gap-4 py-2"),children:t.map((r,n)=>(0,w.jsxs)("li",{className:"flex items-center justify-between gap-4",children:[(0,w.jsx)("span",{className:"text-sm text-[var(--inkblot-semantic-color-text-secondary)]",children:r.label}),(0,w.jsx)("span",{className:o("flex items-center gap-1 text-sm font-medium",We[r.variant??"default"]),children:r.value!=null?r.value:(0,w.jsx)(Ze,{})})]},n))})})}var Ie=require("react/jsx-runtime");function B({className:t,...e}){return(0,Ie.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%)]",t),...e})}var D=require("react/jsx-runtime");function O({className:t,...e}){return(0,D.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",t),...e,children:[(0,D.jsx)(B,{className:"h-5 w-3/4"}),(0,D.jsx)(B,{className:"h-4 w-full"}),(0,D.jsx)(B,{className:"h-4 w-5/6"}),(0,D.jsx)(B,{className:"h-4 w-4/5"}),(0,D.jsx)(B,{className:"h-4 w-3/4"})]})}var _=require("react/jsx-runtime");function q({children:t,loading:e=!1,title:r,className:n,onRetry:i}){return(0,_.jsx)(l,{className:n,onRetry:i,children:e?(0,_.jsxs)("div",{className:o("flex flex-col gap-4",n),children:[r?(0,_.jsx)("h2",{className:"text-lg font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:r}):null,(0,_.jsx)(O,{})]}):(0,_.jsxs)("div",{className:o("flex flex-col gap-4",n),children:[r?(0,_.jsx)("h2",{className:"text-lg font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:r}):null,t]})})}var V=require("react/jsx-runtime");function ce({items:t,className:e}){return(0,V.jsx)(l,{className:e,children:(0,V.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:t.map(r=>(0,V.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,V.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,V.jsx)("div",{className:"flex h-8 w-8 items-center justify-center [&>svg]:h-5 [&>svg]:w-5",children:r.icon}),r.label?(0,V.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 je(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 qe={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 Je(t){return qe[t]??v.FileText}function Qe(t){return t.metadata?.description??t.event_type.replace(/_/g," ").toLowerCase()}function Xe(t){return t.metadata?.details??`${t.actor} - ${t.subject}`}function J({events:t,onEntitySelect:e,findEntity:r,emptyMessage:n="No hay actividad reciente",className:i}){let s=e?a=>{let k=r?.(a.subject)??r?.(a.actor);k&&e(k)}:void 0;return(0,u.jsx)(l,{children:(0,u.jsx)("div",{className:o("space-y-2",i),children:t.length===0?(0,u.jsx)("p",{className:"py-6 text-center text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:n}):t.map(a=>{let b=!!(r?.(a.subject)??r?.(a.actor))&&!!s,I=Je(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 ${je(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:Qe(a)}),(0,u.jsx)("p",{className:"text-xs text-[var(--inkblot-semantic-color-text-secondary)]",children:Xe(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 Re=require("react-router-dom"),x=require("lucide-react");var M=require("react/jsx-runtime"),Ye=[{id:"home",path:"/",icon:x.ClipboardList,label:"Home"},{id:"intelligence",path:"/intelligence",icon:x.Brain,label:"Intelligence"},{id:"pipeline",path:"/pipeline",icon:x.BarChart3,label:"Pipeline"},{id:"graph",path:"/graph",icon:x.Network,label:"Graph"},{id:"events",path:"/events",icon:x.Activity,label:"Events"},{id:"settings",path:"/settings",icon:x.Settings,label:"Settings"}];function de({items:t=Ye,brandLogo:e,brandTitle:r="Command Canvas \u2014 AI-native Interface",className:n}){return(0,M.jsx)(l,{children:(0,M.jsxs)("nav",{className:o("flex h-full flex-col gap-4 bg-[var(--inkblot-semantic-color-background-secondary)] p-3",n),children:[(0,M.jsx)("div",{className:"flex flex-col items-center gap-2",children:(0,M.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:e??(0,M.jsx)(x.Sparkles,{className:"h-5 w-5 text-[var(--inkblot-semantic-color-text-primary)]","aria-hidden":!0})})}),(0,M.jsx)("div",{className:"flex flex-1 flex-col gap-2",children:t.map(i=>{let s=i.icon;return(0,M.jsx)(Re.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,M.jsx)(s,{size:20,"aria-hidden":!0})},i.id)})})]})})}var h=require("react");var c=require("react/jsx-runtime");function et(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 tt({entities:t}){let e=t[0];return e?(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)(z,{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 rt({events:t}){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:"}),t.slice(0,5).map(e=>(0,c.jsx)(Z,{event:e},e.id??`${e.actor}-${e.subject}-${e.timestamp}`))]})}function ot(){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 me({entities:t,events:e,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,Q]=(0,h.useState)(!1),[ee,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 Le=(0,h.useCallback)(()=>{let S=k.trim();if(!S||E)return;let fe=n?.(S);fe&&r&&r(fe);let Ae={id:`msg-${Date.now()}`,role:"user",content:S,timestamp:new Date().toISOString()},ge=et(S);A(X=>[...X,Ae]),b(""),Q(!0),setTimeout(()=>{let X={id:`msg-${Date.now()}-res`,role:"assistant",content:"",intent:ge,timestamp:new Date().toISOString()},Y;switch(ge){case"entity":Y=(0,c.jsx)(tt,{entities:t});break;case"event":Y=(0,c.jsx)(rt,{events:e});break;default:Y=(0,c.jsx)(ot,{})}C(te=>{let xe=new Map(te);return xe.set(X.id,Y),xe}),A(te=>[...te,X]),Q(!1)},1e3)},[k,E,t,e,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:ee.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)(H,{promptValue:k,onPromptChange:b,onPromptSubmit:Le,isProcessing:E,placeholder:i})})]})}var Be=require("lucide-react");var L=require("react/jsx-runtime");function pe({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(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)(Be.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)(H,{promptValue:t,onPromptChange:e,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 ue({events:t,title:e="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:e}),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)(J,{events:t})})]})})}var d=require("react/jsx-runtime"),at=[{label:"Pipeline Health",value:76},{label:"Churn Risk",value:28},{label:"Expansion Signal",value:64},{label:"Team Velocity",value:83}],nt=[{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 ve({loading:t,kpiCards:e=at,aiInsights:r=nt,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)(q,{loading:t,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:e.map(a=>(0,d.jsx)(j,{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 P=require("react/jsx-runtime");function be({navigation:t,eventStream:e,commandBar:r,children:n,className:i,eventStreamWidth:s="w-80"}){return(0,P.jsxs)("div",{className:o("flex h-screen w-screen overflow-hidden bg-[var(--inkblot-semantic-color-background-primary)]",i),children:[(0,P.jsx)("aside",{className:"flex h-full w-16 shrink-0 flex-col border-r border-[var(--inkblot-semantic-color-border-default)]",children:t}),(0,P.jsx)("main",{className:"flex flex-1 flex-col overflow-hidden",children:(0,P.jsxs)("div",{className:"flex min-h-0 flex-1",children:[(0,P.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col overflow-hidden bg-[var(--inkblot-semantic-color-background-primary)]",children:[(0,P.jsx)("div",{className:"flex-1 overflow-auto",children:n}),(0,P.jsx)("div",{className:"shrink-0",children:r})]}),e&&(0,P.jsx)("aside",{className:o("flex h-full shrink-0 flex-col border-l border-[var(--inkblot-semantic-color-border-default)]",s),children:e})]})})]})}0&&(module.exports={ActivityStream,AppNavigationRail,Button,ChatFeed,CommandBar,CommandInterface,EntityCard,EntityCommandCard,ErrorBoundary,EventRow,EventStreamFeed,EventStreamSidebar,Input,IntelligenceLab,IntelligenceScoreCard,MainShell,MetricComparisonList,ModuleContainer,ModuleErrorBoundary,ModuleSkeleton,OSNavigationRail,Skeleton,StatusBadge});
|
|
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});
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{forwardRef as Te}from"react";import{clsx as Le}from"clsx";import{twMerge as Ae}from"tailwind-merge";function o(...t){return Ae(Le(t))}import{jsx as _e}from"react/jsx-runtime";var De={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=Te(({className:t,variant:e="primary",disabled:r,...n},i)=>_e("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)]",De[e],t),...n}));T.displayName="Button";import{useRef as Ve}from"react";import{Paperclip as He,Send as Oe,Sparkles as Ge}from"lucide-react";import{jsx as u,jsxs as oe}from"react/jsx-runtime";function P({promptValue:t="",onPromptChange:e,onPromptSubmit:r,onFilesAttach:n,isProcessing:i=!1,response:s,placeholder:a="Ask Citron Intelligence...",accept:p,multiple:d=!0,className:y}){let N=Ve(null),b=f=>{f.key==="Enter"&&!f.shiftKey&&(f.preventDefault(),r?.())},F=()=>{N.current?.click()},te=f=>{let E=f.target.files;E&&E.length>0&&n&&n(Array.from(E)),f.target.value=""};return oe("div",{className:o("flex w-full max-w-[80rem] flex-col gap-[var(--inkblot-spacing-2)]",y),children:[oe("div",{className:"flex items-center gap-[var(--inkblot-spacing-2)]",children:[u("input",{ref:N,type:"file",accept:p,multiple:d,onChange:te,className:"sr-only","aria-hidden":!0}),u("button",{type:"button",onClick:F,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:u(He,{size:20,strokeWidth:1.5,className:"text-[var(--inkblot-semantic-color-text-tertiary)]","aria-hidden":!0})}),oe("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)]"),children:[u("div",{className:"flex shrink-0 items-center opacity-[var(--inkblot-opacity-subtle)]","aria-hidden":!0,children:u(Ge,{size:20,strokeWidth:1.5,className:"text-[var(--inkblot-semantic-color-text-tertiary)]"})}),u("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)]")}),u("button",{type:"button",onClick:r,disabled:i,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)] 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)]","disabled:pointer-events-none disabled:opacity-[var(--inkblot-opacity-disabled)]"),"aria-label":"Enviar",children:u(Oe,{size:16,strokeWidth:2,className:"text-[var(--inkblot-semantic-color-text-inverse)]","aria-hidden":!0})})]})]}),i?u("div",{className:o("min-h-[80px] animate-shimmer rounded-[var(--inkblot-radius-full)] 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%)]")}):s?u("div",{className:"flex flex-col gap-[var(--inkblot-spacing-4)]",children:u("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 Fe={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 z({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",Fe[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 Ke}from"react";import{jsx as $e}from"react/jsx-runtime";var D=Ke(({className:t,error:e,disabled:r,...n},i)=>$e("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 ze}from"react";import{jsx as ae,jsxs as Ue}from"react/jsx-runtime";var l=class extends ze{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?Ue("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:[ae("p",{className:"text-base font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:"This module failed to load"}),ae("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:this.state.error.message}),ae(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 ne}from"react/jsx-runtime";function ue({title:t,insights:e,stats:r=[],commandValue:n="",onCommandChange:i,onCommandSubmit:s,className:a}){let p=d=>{d.key==="Enter"&&(d.preventDefault(),s?.())};return k(l,{className:a,children:ne("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?ne("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,y)=>ne("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})]},y))})]}):null,k("div",{className:"mt-2",children:k(D,{type:"text",value:n,onChange:d=>i?.(d.target.value),onKeyDown:p,placeholder:"Ask about this entity...",className:"rounded-[var(--inkblot-radius-md)]"})})]})})}import{Component as We}from"react";import{jsx as ve}from"react/jsx-runtime";var U=class extends We{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:ve("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:ve("span",{className:"text-sm font-medium",children:"Something went wrong"})}):this.props.children}};import{jsx as je}from"react/jsx-runtime";var Ze={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 W({label:t,variant:e="info",className:r}){return je("span",{className:o("inline-flex items-center rounded-[var(--inkblot-radius-md)] border px-2 py-0.5 text-xs font-medium",Ze[e],r),children:t})}import{jsx as B,jsxs as Je}from"react/jsx-runtime";function qe(t){return t>=.8?"success":t>=.5?"info":t>=.2?"warning":"error"}function Z({event:t,className:e}){let r=qe(t.confidence_score),n=`${Math.round(t.confidence_score*100)}%`;return Je("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(W,{label:n,variant:r})]})}import{jsx as h,jsxs as be}from"react/jsx-runtime";var Qe={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 Xe(){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 fe({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=>be("div",{className:"flex items-start gap-3",children:[h("div",{className:"flex shrink-0 items-center pt-0.5",children:r.icon??h(Xe,{})}),be("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",Qe[r.status]),"aria-hidden":!0}):null]},r.id))})})}import{jsx as x,jsxs as _}from"react/jsx-runtime";var se=36,ie=2*Math.PI*se;function j({label:t,value:e,subtext:r,trend:n,className:i}){let s=Math.min(100,Math.max(0,e)),a=ie-s/100*ie;return x(l,{className:i,children:_("div",{className:"flex flex-col items-center gap-4 rounded-[var(--inkblot-radius-lg)] bg-[var(--inkblot-semantic-color-background-secondary)] p-4",children:[_("div",{className:"relative",children:[_("svg",{width:"96",height:"96",viewBox:"0 0 96 96",className:"-rotate-90",children:[x("circle",{cx:"48",cy:"48",r:se,fill:"none",stroke:"var(--inkblot-semantic-color-background-tertiary)",strokeWidth:"4"}),x("circle",{cx:"48",cy:"48",r:se,fill:"none",stroke:"var(--inkblot-semantic-color-interactive-primary)",strokeWidth:"4",strokeDasharray:ie,strokeDashoffset:a,strokeLinecap:"round",className:"transition-[stroke-dashoffset] duration-[var(--inkblot-duration-fast)]"})]}),x("div",{className:"absolute inset-0 flex flex-col items-center justify-center",children:_("span",{className:"flex items-center gap-1 text-lg font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:[s,"%",n==="up"?x("svg",{viewBox:"0 0 16 16",className:"h-4 w-4 text-[var(--inkblot-semantic-color-status-success)]","aria-hidden":!0,children:x("path",{fill:"currentColor",d:"M8 4l4 6H4l4-6z"})}):n==="down"?x("svg",{viewBox:"0 0 16 16",className:"h-4 w-4 text-[var(--inkblot-semantic-color-status-error)]","aria-hidden":!0,children:x("path",{fill:"currentColor",d:"M8 12l4-6H4l4 6z"})}):null]})})]}),_("div",{className:"text-center",children:[x("p",{className:"text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:t}),r?x("p",{className:"text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:r}):null]})]})})}import{jsx as S,jsxs as tt}from"react/jsx-runtime";var Ye={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 et({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 ge({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)=>tt("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",Ye[r.variant??"default"]),children:r.value!=null?r.value:S(et,{})})]},n))})})}import{jsx as rt}from"react/jsx-runtime";function C({className:t,...e}){return rt("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 ot}from"react/jsx-runtime";function L({className:t,...e}){return ot("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 xe}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?xe("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,{})]}):xe("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{jsx as H,jsxs as at}from"react/jsx-runtime";function ye({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=>at("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 ke,FileText as Q,Zap as nt,Phone as he,Link2 as it}from"lucide-react";import{jsx as v,jsxs as Ne}from"react/jsx-runtime";function st(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 lt={EMAIL_OPENED:ke,EMAIL_SENT:ke,INVOICE_PAID:Q,INVOICE_OVERDUE:Q,CONTRACT_SIGNED:Q,STAGE_CHANGED:nt,CALL_COMPLETED:he,PHONE_CALL:he,RELATIONSHIP_DETECTED:it};function ct(t){return lt[t]??Q}function dt(t){return t.metadata?.description??t.event_type.replace(/_/g," ").toLowerCase()}function mt(t){return t.metadata?.details??`${t.actor} - ${t.subject}`}function X({events:t,onEntitySelect:e,findEntity:r,emptyMessage:n="No hay actividad reciente",className:i}){let s=e?a=>{let p=r?.(a.subject)??r?.(a.actor);p&&e(p)}: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,y=ct(a.event_type),N=Ne("div",{className:"flex flex-1 items-center gap-3",children:[v(y,{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 ${st(a.confidence_score)}`,"aria-hidden":!0}),Ne("div",{className:"min-w-0 flex-1",children:[v("p",{className:"text-sm font-medium text-[var(--inkblot-semantic-color-text-primary)]",children:dt(a)}),v("p",{className:"text-xs text-[var(--inkblot-semantic-color-text-secondary)]",children:mt(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 pt}from"react-router-dom";import{ClipboardList as ut,Brain as vt,BarChart3 as bt,Network as ft,Activity as gt,Settings as xt,Sparkles as yt}from"lucide-react";import{jsx as w,jsxs as ht}from"react/jsx-runtime";var kt=[{id:"home",path:"/",icon:ut,label:"Home"},{id:"intelligence",path:"/intelligence",icon:vt,label:"Intelligence"},{id:"pipeline",path:"/pipeline",icon:bt,label:"Pipeline"},{id:"graph",path:"/graph",icon:ft,label:"Graph"},{id:"events",path:"/events",icon:gt,label:"Events"},{id:"settings",path:"/settings",icon:xt,label:"Settings"}];function Ee({items:t=kt,brandLogo:e,brandTitle:r="Command Canvas \u2014 AI-native Interface",className:n}){return w(l,{children:ht("nav",{className:o("flex h-full flex-col gap-4 bg-[var(--inkblot-semantic-color-background-secondary)] p-3",n),children:[w("div",{className:"flex flex-col items-center gap-2",children:w("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??w(yt,{className:"h-5 w-5 text-[var(--inkblot-semantic-color-text-primary)]","aria-hidden":!0})})}),w("div",{className:"flex flex-1 flex-col gap-2",children:t.map(i=>{let s=i.icon;return w(pt,{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:w(s,{size:20,"aria-hidden":!0})},i.id)})})]})})}import{useState as Y,useCallback as Nt,useRef as Et,useEffect as Ct}from"react";import{jsx as c,jsxs as ee}from"react/jsx-runtime";function St(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 wt({entities:t}){let e=t[0];return e?ee("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(z,{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 Mt({events:t}){return ee("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(Z,{event:e},e.id??`${e.actor}-${e.subject}-${e.timestamp}`))]})}function Pt(){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 Ce({entities:t,events:e,onFocusEntity:r,findEntity:n,placeholder:i="Ask anything \u2014 deals, contacts, forecasts...",emptyMessage:s="Escribe para comenzar...",className:a}){let[p,d]=Y(""),[y,N]=Y([]),[b,F]=Y(!1),[te,f]=Y(new Map),E=Et(null);Ct(()=>{E.current&&(E.current.scrollTop=E.current.scrollHeight)},[y,b]);let Re=Nt(()=>{let g=p.trim();if(!g||b)return;let de=n?.(g);de&&r&&r(de);let Be={id:`msg-${Date.now()}`,role:"user",content:g,timestamp:new Date().toISOString()},me=St(g);N(K=>[...K,Be]),d(""),F(!0),setTimeout(()=>{let K={id:`msg-${Date.now()}-res`,role:"assistant",content:"",intent:me,timestamp:new Date().toISOString()},$;switch(me){case"entity":$=c(wt,{entities:t});break;case"event":$=c(Mt,{events:e});break;default:$=c(Pt,{})}f(re=>{let pe=new Map(re);return pe.set(K.id,$),pe}),N(re=>[...re,K]),F(!1)},1e3)},[p,b,t,e,r,n]);return ee("div",{className:o("flex h-full flex-col",a),children:[ee("div",{ref:E,className:"flex-1 space-y-4 overflow-y-auto p-4",children:[y.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})}):y.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:te.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(P,{promptValue:p,onPromptChange:d,onPromptSubmit:Re,isProcessing:b,placeholder:i})})]})}import{Sparkles as It}from"lucide-react";import{jsx as O,jsxs as Se}from"react/jsx-runtime";function we({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 Se("div",{className:o("border-t border-[var(--inkblot-semantic-color-border-default)] bg-[var(--inkblot-semantic-color-background-secondary)] p-4",a),children:[Se("div",{className:"flex items-center gap-3",children:[O("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:O(It,{className:"h-5 w-5 text-[var(--inkblot-semantic-color-text-primary)]","aria-hidden":!0})}),O("div",{className:"flex-1",children:O(P,{promptValue:t,onPromptChange:e,onPromptSubmit:r,isProcessing:n,placeholder:i})})]}),s&&O("p",{className:"mt-2 text-xs text-[var(--inkblot-semantic-color-text-tertiary)]",children:s})]})}import{jsx as A,jsxs as le}from"react/jsx-runtime";function Me({events:t,title:e="Event Stream",showLive:r=!0,className:n}){return A(l,{children:le("div",{className:o("flex h-full flex-col bg-[var(--inkblot-semantic-color-background-secondary)]",n),children:[le("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&&le("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(X,{events:t})})]})})}import{jsx as m,jsxs as M}from"react/jsx-runtime";var Rt=[{label:"Pipeline Health",value:76},{label:"Churn Risk",value:28},{label:"Expansion Signal",value:64},{label:"Team Velocity",value:83}],Bt=[{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 Pe({loading:t,kpiCards:e=Rt,aiInsights:r=Bt,title:n="Intelligence Lab",subtitle:i="AI-generated insights - Updated 3 min ago",className:s}){return M("div",{className:o("flex h-full flex-col gap-4 overflow-y-auto p-4",s),children:[M("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:M("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(j,{label:a.label,value:a.value,subtext:a.subtext,trend:a.trend},a.label))}),M("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:M("div",{className:"flex items-start justify-between gap-4 rounded-[var(--inkblot-radius-lg)] bg-[var(--inkblot-semantic-color-background-secondary)] p-4",children:[M("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})]}),M("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 G,jsxs as ce}from"react/jsx-runtime";function Ie({navigation:t,eventStream:e,commandBar:r,children:n,className:i,eventStreamWidth:s="w-80"}){return ce("div",{className:o("flex h-screen w-screen overflow-hidden bg-[var(--inkblot-semantic-color-background-primary)]",i),children:[G("aside",{className:"flex h-full w-16 shrink-0 flex-col border-r border-[var(--inkblot-semantic-color-border-default)]",children:t}),G("main",{className:"flex flex-1 flex-col overflow-hidden",children:ce("div",{className:"flex min-h-0 flex-1",children:[ce("div",{className:"flex min-h-0 flex-1 flex-col overflow-hidden bg-[var(--inkblot-semantic-color-background-primary)]",children:[G("div",{className:"flex-1 overflow-auto",children:n}),G("div",{className:"shrink-0",children:r})]}),e&&G("aside",{className:o("flex h-full shrink-0 flex-col border-l border-[var(--inkblot-semantic-color-border-default)]",s),children:e})]})})]})}export{X as ActivityStream,Ee as AppNavigationRail,T as Button,Ce as ChatFeed,we as CommandBar,P as CommandInterface,z as EntityCard,ue as EntityCommandCard,U as ErrorBoundary,Z as EventRow,fe as EventStreamFeed,Me as EventStreamSidebar,D as Input,Pe as IntelligenceLab,j as IntelligenceScoreCard,Ie as MainShell,ge as MetricComparisonList,J as ModuleContainer,l as ModuleErrorBoundary,L as ModuleSkeleton,ye as OSNavigationRail,C as Skeleton,W as StatusBadge};
|
|
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};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@citron-systems/citron-ui",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.7.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",
|
|
@@ -40,6 +40,7 @@
|
|
|
40
40
|
"peerDependencies": {
|
|
41
41
|
"@citron-systems/citron-ds": "^1.0.0",
|
|
42
42
|
"react": "^19.0.0",
|
|
43
|
+
"react-error-boundary": "^5.0.0",
|
|
43
44
|
"react-dom": "^19.0.0",
|
|
44
45
|
"react-router-dom": "^7.0.0"
|
|
45
46
|
},
|
|
@@ -71,6 +72,7 @@
|
|
|
71
72
|
},
|
|
72
73
|
"dependencies": {
|
|
73
74
|
"@citron-systems/citron-ds": "^1.0.0",
|
|
75
|
+
"react-error-boundary": "^5.0.0",
|
|
74
76
|
"clsx": "^2.1.1",
|
|
75
77
|
"lucide-react": "^0.460.0",
|
|
76
78
|
"react": "^19.2.4",
|