@citron-systems/citron-ui 1.3.0 → 1.5.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.js +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +1 -1
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 re=Object.defineProperty;var Te=Object.getOwnPropertyDescriptor;var De=Object.getOwnPropertyNames;var Ve=Object.prototype.hasOwnProperty;var He=(t,e)=>{for(var r in e)re(t,r,{get:e[r],enumerable:!0})},_e=(t,e,r,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of De(e))!Ve.call(t,n)&&n!==r&&re(t,n,{get:()=>e[n],enumerable:!(i=Te(e,n))||i.enumerable});return t};var Oe=t=>_e(re({},"__esModule",{value:!0}),t);var it={};He(it,{ActivityStream:()=>J,AppNavigationRail:()=>de,Button:()=>F,ChatFeed:()=>me,CommandBar:()=>pe,CommandInterface:()=>O,EntityCard:()=>$,EntityCommandCard:()=>oe,ErrorBoundary:()=>U,EventRow:()=>j,EventStreamFeed:()=>ne,EventStreamSidebar:()=>ue,Input:()=>K,IntelligenceLab:()=>ve,IntelligenceScoreCard:()=>Z,MainShell:()=>be,MetricComparisonList:()=>le,ModuleContainer:()=>q,ModuleErrorBoundary:()=>l,ModuleSkeleton:()=>G,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"},F=(0,he.forwardRef)(({className:t,variant:e="primary",disabled:r,...i},n)=>(0,Ne.jsx)("button",{ref:n,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),...i}));F.displayName="Button";var Ee=require("react"),D=require("lucide-react");var m=require("react/jsx-runtime");function O({promptValue:t="",onPromptChange:e,onPromptSubmit:r,onFilesAttach:i,isProcessing:n=!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&&i&&i(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)]",n&&"pointer-events-none"),children:[(0,m.jsx)("input",{ref:A,type:"file",accept:k,multiple:b,onChange:ee,className:"sr-only","aria-hidden":!0}),(0,m.jsx)("button",{type:"button",onClick:Q,disabled:n,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":n,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:t,onChange:C=>e?.(C.target.value),onKeyDown:E,placeholder:a,rows:2,disabled:n,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)]",n?"pointer-events-none bg-[var(--inkblot-semantic-color-interactive-primary)] opacity-90":""),children:n?(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:n,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"),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 $({name:t,entityType:e,metadata:r,edges:i=[],className:n}){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],n),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,i.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:i.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,...i},n)=>(0,Se.jsx)("input",{ref:n,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),...i}));K.displayName="Input";var we=require("react");var z=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,z.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,z.jsx)("p",{className:"text-base font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:"This module failed to load"}),(0,z.jsx)("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:this.state.error.message}),(0,z.jsx)(F,{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:i="",onCommandChange:n,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:i,onChange:b=>n?.(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 ze(t){return t>=.8?"success":t>=.5?"info":t>=.2?"warning":"error"}function j({event:t,className:e}){let r=ze(t.confidence_score),i=`${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:i,variant:r})]})}var y=require("react/jsx-runtime"),$e={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",$e[r.status]),"aria-hidden":!0}):null]},r.id))})})}var p=require("react/jsx-runtime"),se=36,ie=2*Math.PI*se;function Z({label:t,value:e,subtext:r,trend:i,className:n}){let s=Math.min(100,Math.max(0,e)),a=ie-s/100*ie;return(0,p.jsx)(l,{className:n,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:se,fill:"none",stroke:"var(--inkblot-semantic-color-background-tertiary)",strokeWidth:"4"}),(0,p.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,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,"%",i==="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"})}):i==="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:t}),r?(0,p.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 je({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,i)=>(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)(je,{})})]},i))})})}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 V=require("react/jsx-runtime");function G({className:t,...e}){return(0,V.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,V.jsx)(B,{className:"h-5 w-3/4"}),(0,V.jsx)(B,{className:"h-4 w-full"}),(0,V.jsx)(B,{className:"h-4 w-5/6"}),(0,V.jsx)(B,{className:"h-4 w-4/5"}),(0,V.jsx)(B,{className:"h-4 w-3/4"})]})}var H=require("react/jsx-runtime");function q({children:t,loading:e=!1,title:r,className:i,onRetry:n}){return(0,H.jsx)(l,{className:i,onRetry:n,children:e?(0,H.jsxs)("div",{className:o("flex flex-col gap-4",i),children:[r?(0,H.jsx)("h2",{className:"text-lg font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:r}):null,(0,H.jsx)(G,{})]}):(0,H.jsxs)("div",{className:o("flex flex-col gap-4",i),children:[r?(0,H.jsx)("h2",{className:"text-lg font-semibold text-[var(--inkblot-semantic-color-text-primary)]",children:r}):null,t]})})}var _=require("react/jsx-runtime");function ce({items:t,className:e}){return(0,_.jsx)(l,{className:e,children:(0,_.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,_.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,_.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,_.jsx)("div",{className:"flex h-8 w-8 items-center justify-center [&>svg]:h-5 [&>svg]:w-5",children:r.icon}),r.label?(0,_.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 Ze(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:i="No hay actividad reciente",className:n}){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",n),children:t.length===0?(0,u.jsx)("p",{className:"py-6 text-center text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:i}):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 ${Ze(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:i}){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",i),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(n=>{let s=n.icon;return(0,M.jsx)(Re.NavLink,{to:n.path,end:n.path==="/","aria-label":n.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})},n.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)($,{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)(j,{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:i,placeholder:n="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=i?.(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,i]);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)(G,{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)(O,{promptValue:k,onPromptChange:b,onPromptSubmit:Le,isProcessing:E,placeholder:n})})]})}var Be=require("lucide-react");var L=require("react/jsx-runtime");function pe({prompt:t,onPromptChange:e,onSubmit:r,isProcessing:i,placeholder:n="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)(O,{promptValue:t,onPromptChange:e,onPromptSubmit:r,isProcessing:i,placeholder:n})})]}),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:i}){return(0,N.jsx)(l,{children:(0,N.jsxs)("div",{className:o("flex h-full flex-col bg-[var(--inkblot-semantic-color-background-secondary)]",i),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:i="Intelligence Lab",subtitle:n="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:i}),(0,d.jsx)("p",{className:"text-sm text-[var(--inkblot-semantic-color-text-tertiary)]",children:n})]}),(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)(Z,{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:i,className:n,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)]",n),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:i}),(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});
|
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 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 Ve}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)=>Ve("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 He}from"react";import{Loader2 as _e,Paperclip as Oe,Send as Ge,Sparkles as Fe}from"lucide-react";import{jsx as p,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:u,multiple:d=!0,className:y}){let N=He(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: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:te,className:"sr-only","aria-hidden":!0}),p("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:p(Oe,{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)]"),"aria-busy":i,children:[p("div",{className:"flex shrink-0 items-center opacity-[var(--inkblot-opacity-subtle)]","aria-hidden":!0,children:p(Fe,{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(_e,{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(Ge,{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 Ke={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: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",Ke[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 ze}from"react";import{jsx as $e}from"react/jsx-runtime";var D=ze(({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 Ue}from"react";import{jsx as ae,jsxs as We}from"react/jsx-runtime";var l=class extends Ue{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?We("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 u=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:u,placeholder:"Ask about this entity...",className:"rounded-[var(--inkblot-radius-md)]"})})]})})}import{Component as je}from"react";import{jsx as ve}from"react/jsx-runtime";var U=class extends je{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 qe}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 qe("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 Qe}from"react/jsx-runtime";function Je(t){return t>=.8?"success":t>=.5?"info":t>=.2?"warning":"error"}function j({event:t,className:e}){let r=Je(t.confidence_score),n=`${Math.round(t.confidence_score*100)}%`;return Qe("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 Xe={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 Ye(){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(Ye,{})}),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",Xe[r.status]),"aria-hidden":!0}):null]},r.id))})})}import{jsx as x,jsxs as V}from"react/jsx-runtime";var se=36,ie=2*Math.PI*se;function Z({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:V("div",{className:"flex flex-col items-center gap-4 rounded-[var(--inkblot-radius-lg)] bg-[var(--inkblot-semantic-color-background-secondary)] p-4",children:[V("div",{className:"relative",children:[V("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:V("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]})})]}),V("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 rt}from"react/jsx-runtime";var et={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 tt({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)=>rt("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",et[r.variant??"default"]),children:r.value!=null?r.value:S(tt,{})})]},n))})})}import{jsx as ot}from"react/jsx-runtime";function C({className:t,...e}){return ot("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 H,jsxs as at}from"react/jsx-runtime";function L({className:t,...e}){return at("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:[H(C,{className:"h-5 w-3/4"}),H(C,{className:"h-4 w-full"}),H(C,{className:"h-4 w-5/6"}),H(C,{className:"h-4 w-4/5"}),H(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 _,jsxs as nt}from"react/jsx-runtime";function ye({items:t,className:e}){return _(l,{className:e,children:_("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=>nt("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?_("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,_("div",{className:"flex h-8 w-8 items-center justify-center [&>svg]:h-5 [&>svg]:w-5",children:r.icon}),r.label?_("span",{className:"text-[10px] font-medium",children:r.label}):null]},r.id))})})}import{Mail as ke,FileText as Q,Zap as it,Phone as he,Link2 as st}from"lucide-react";import{jsx as v,jsxs as Ne}from"react/jsx-runtime";function lt(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 ct={EMAIL_OPENED:ke,EMAIL_SENT:ke,INVOICE_PAID:Q,INVOICE_OVERDUE:Q,CONTRACT_SIGNED:Q,STAGE_CHANGED:it,CALL_COMPLETED:he,PHONE_CALL:he,RELATIONSHIP_DETECTED:st};function dt(t){return ct[t]??Q}function mt(t){return t.metadata?.description??t.event_type.replace(/_/g," ").toLowerCase()}function pt(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 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,y=dt(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 ${lt(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:mt(a)}),v("p",{className:"text-xs text-[var(--inkblot-semantic-color-text-secondary)]",children:pt(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 ut}from"react-router-dom";import{ClipboardList as vt,Brain as bt,BarChart3 as ft,Network as gt,Activity as xt,Settings as yt,Sparkles as kt}from"lucide-react";import{jsx as w,jsxs as Nt}from"react/jsx-runtime";var ht=[{id:"home",path:"/",icon:vt,label:"Home"},{id:"intelligence",path:"/intelligence",icon:bt,label:"Intelligence"},{id:"pipeline",path:"/pipeline",icon:ft,label:"Pipeline"},{id:"graph",path:"/graph",icon:gt,label:"Graph"},{id:"events",path:"/events",icon:xt,label:"Events"},{id:"settings",path:"/settings",icon:yt,label:"Settings"}];function Ee({items:t=ht,brandLogo:e,brandTitle:r="Command Canvas \u2014 AI-native Interface",className:n}){return w(l,{children:Nt("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(kt,{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(ut,{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 Et,useRef as Ct,useEffect as St}from"react";import{jsx as c,jsxs as ee}from"react/jsx-runtime";function wt(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 Mt({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($,{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 Pt({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(j,{event:e},e.id??`${e.actor}-${e.subject}-${e.timestamp}`))]})}function It(){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[u,d]=Y(""),[y,N]=Y([]),[b,F]=Y(!1),[te,f]=Y(new Map),E=Ct(null);St(()=>{E.current&&(E.current.scrollTop=E.current.scrollHeight)},[y,b]);let Re=Et(()=>{let g=u.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=wt(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()},z;switch(me){case"entity":z=c(Mt,{entities:t});break;case"event":z=c(Pt,{events:e});break;default:z=c(It,{})}f(re=>{let pe=new Map(re);return pe.set(K.id,z),pe}),N(re=>[...re,K]),F(!1)},1e3)},[u,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:u,onPromptChange:d,onPromptSubmit:Re,isProcessing:b,placeholder:i})})]})}import{Sparkles as Rt}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(Rt,{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 Bt=[{label:"Pipeline Health",value:76},{label:"Churn Risk",value:28},{label:"Expansion Signal",value:64},{label:"Team Velocity",value:83}],Lt=[{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=Bt,aiInsights:r=Lt,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(Z,{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,$ as EntityCard,ue as EntityCommandCard,U as ErrorBoundary,j as EventRow,fe as EventStreamFeed,Me as EventStreamSidebar,D as Input,Pe as IntelligenceLab,Z 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};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@citron-systems/citron-ui",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.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",
|